diff --git a/HISTORY.md b/HISTORY.md index 92b3463b..66f785ae 100644 --- a/HISTORY.md +++ b/HISTORY.md @@ -10,6 +10,11 @@ http://visjs.org - Fixed #1697: Timeline not drawn when used within the Angular.js directive. - Fixed #1774: Wrong initial scale when Timeline contains a single item. +### General + +- Created bundles for individual visualizations: `vis-graph3d.min.js`, + `vis-network.min.js`, and `vis-timeline-graph2d.min.js`. + ## 2016-03-08, version 4.15.1 diff --git a/dist/vis-graph3d.min.js b/dist/vis-graph3d.min.js new file mode 100644 index 00000000..636db665 --- /dev/null +++ b/dist/vis-graph3d.min.js @@ -0,0 +1,33 @@ +/** + * vis.js + * https://github.com/almende/vis + * + * A dynamic, browser-based visualization library. + * + * @version 4.15.2-SNAPSHOT + * @date 2016-04-06 + * + * @license + * Copyright (C) 2011-2016 Almende B.V, http://almende.com + * + * Vis.js is dual licensed under both + * + * * The Apache 2.0 License + * http://www.apache.org/licenses/LICENSE-2.0 + * + * and + * + * * The MIT License + * http://opensource.org/licenses/MIT + * + * Vis.js may be distributed under either license. + */ +"use strict";!function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?exports.vis=e():t.vis=e()}(this,function(){return function(t){function e(n){if(i[n])return i[n].exports;var r=i[n]={exports:{},id:n,loaded:!1};return t[n].call(r.exports,r,r.exports,e),r.loaded=!0,r.exports}var i={};return e.m=t,e.c=i,e.p="",e(0)}([function(t,e,i){e.util=i(1),e.DOMutil=i(7),e.DataSet=i(8),e.DataView=i(10),e.Queue=i(9),e.Graph3d=i(11),e.graph3d={Camera:i(15),Filter:i(16),Point2d:i(14),Point3d:i(13),Slider:i(17),StepNumber:i(18)},e.moment=i(2),e.Hammer=i(19),e.keycharm=i(22)},function(t,e,i){var n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol?"symbol":typeof t},r=i(2),s=i(6);e.isNumber=function(t){return t instanceof Number||"number"==typeof t},e.recursiveDOMDelete=function(t){if(t)for(;t.hasChildNodes()===!0;)e.recursiveDOMDelete(t.firstChild),t.removeChild(t.firstChild)},e.giveRange=function(t,e,i,n){if(e==t)return.5;var r=1/(e-t);return Math.max(0,(n-t)*r)},e.isString=function(t){return t instanceof String||"string"==typeof t},e.isDate=function(t){if(t instanceof Date)return!0;if(e.isString(t)){var i=o.exec(t);if(i)return!0;if(!isNaN(Date.parse(t)))return!0}return!1},e.randomUUID=function(){return s.v4()},e.assignAllKeys=function(t,e){for(var i in t)t.hasOwnProperty(i)&&"object"!==n(t[i])&&(t[i]=e)},e.fillIfDefined=function(t,i){var r=arguments.length<=2||void 0===arguments[2]?!1:arguments[2];for(var s in t)void 0!==i[s]&&("object"!==n(i[s])?void 0!==i[s]&&null!==i[s]||void 0===t[s]||r!==!0?t[s]=i[s]:delete t[s]:"object"===n(t[s])&&e.fillIfDefined(t[s],i[s],r))},e.protoExtend=function(t,e){for(var i=1;ii;i++)if(t[i]!=e[i])return!1;return!0},e.convert=function(t,i){var n;if(void 0!==t){if(null===t)return null;if(!i)return t;if("string"!=typeof i&&!(i instanceof String))throw new Error("Type must be a string");switch(i){case"boolean":case"Boolean":return Boolean(t);case"number":case"Number":return Number(t.valueOf());case"string":case"String":return String(t);case"Date":if(e.isNumber(t))return new Date(t);if(t instanceof Date)return new Date(t.valueOf());if(r.isMoment(t))return new Date(t.valueOf());if(e.isString(t))return n=o.exec(t),n?new Date(Number(n[1])):r(t).toDate();throw new Error("Cannot convert object of type "+e.getType(t)+" to type Date");case"Moment":if(e.isNumber(t))return r(t);if(t instanceof Date)return r(t.valueOf());if(r.isMoment(t))return r(t);if(e.isString(t))return n=o.exec(t),r(n?Number(n[1]):t);throw new Error("Cannot convert object of type "+e.getType(t)+" to type Date");case"ISODate":if(e.isNumber(t))return new Date(t);if(t instanceof Date)return t.toISOString();if(r.isMoment(t))return t.toDate().toISOString();if(e.isString(t))return n=o.exec(t),n?new Date(Number(n[1])).toISOString():new Date(t).toISOString();throw new Error("Cannot convert object of type "+e.getType(t)+" to type ISODate");case"ASPDate":if(e.isNumber(t))return"/Date("+t+")/";if(t instanceof Date)return"/Date("+t.valueOf()+")/";if(e.isString(t)){n=o.exec(t);var s;return s=n?new Date(Number(n[1])).valueOf():new Date(t).valueOf(),"/Date("+s+")/"}throw new Error("Cannot convert object of type "+e.getType(t)+" to type ASPDate");default:throw new Error('Unknown type "'+i+'"')}}};var o=/^\/?Date\((\-?\d+)/i;e.getType=function(t){var e="undefined"==typeof t?"undefined":n(t);return"object"==e?null===t?"null":t instanceof Boolean?"Boolean":t instanceof Number?"Number":t instanceof String?"String":Array.isArray(t)?"Array":t instanceof Date?"Date":"Object":"number"==e?"Number":"boolean"==e?"Boolean":"string"==e?"String":void 0===e?"undefined":e},e.copyAndExtendArray=function(t,e){for(var i=[],n=0;ni;i++)e(t[i],i,t);else for(i in t)t.hasOwnProperty(i)&&e(t[i],i,t)},e.toArray=function(t){var e=[];for(var i in t)t.hasOwnProperty(i)&&e.push(t[i]);return e},e.updateProperty=function(t,e,i){return t[e]!==i?(t[e]=i,!0):!1},e.throttle=function(t,e){var i=null,n=!1;return function r(){i?n=!0:(n=!1,t(),i=setTimeout(function(){i=null,n&&r()},e))}},e.addEventListener=function(t,e,i,n){t.addEventListener?(void 0===n&&(n=!1),"mousewheel"===e&&navigator.userAgent.indexOf("Firefox")>=0&&(e="DOMMouseScroll"),t.addEventListener(e,i,n)):t.attachEvent("on"+e,i)},e.removeEventListener=function(t,e,i,n){t.removeEventListener?(void 0===n&&(n=!1),"mousewheel"===e&&navigator.userAgent.indexOf("Firefox")>=0&&(e="DOMMouseScroll"),t.removeEventListener(e,i,n)):t.detachEvent("on"+e,i)},e.preventDefault=function(t){t||(t=window.event),t.preventDefault?t.preventDefault():t.returnValue=!1},e.getTarget=function(t){t||(t=window.event);var e;return t.target?e=t.target:t.srcElement&&(e=t.srcElement),void 0!=e.nodeType&&3==e.nodeType&&(e=e.parentNode),e},e.hasParent=function(t,e){for(var i=t;i;){if(i===e)return!0;i=i.parentNode}return!1},e.option={},e.option.asBoolean=function(t,e){return"function"==typeof t&&(t=t()),null!=t?0!=t:e||null},e.option.asNumber=function(t,e){return"function"==typeof t&&(t=t()),null!=t?Number(t)||e||null:e||null},e.option.asString=function(t,e){return"function"==typeof t&&(t=t()),null!=t?String(t):e||null},e.option.asSize=function(t,i){return"function"==typeof t&&(t=t()),e.isString(t)?t:e.isNumber(t)?t+"px":i||null},e.option.asElement=function(t,e){return"function"==typeof t&&(t=t()),t||e||null},e.hexToRGB=function(t){var e=/^#?([a-f\d])([a-f\d])([a-f\d])$/i;t=t.replace(e,function(t,e,i,n){return e+e+i+i+n+n});var i=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(t);return i?{r:parseInt(i[1],16),g:parseInt(i[2],16),b:parseInt(i[3],16)}:null},e.overrideOpacity=function(t,i){if(-1!=t.indexOf("rgba"))return t;if(-1!=t.indexOf("rgb")){var n=t.substr(t.indexOf("(")+1).replace(")","").split(",");return"rgba("+n[0]+","+n[1]+","+n[2]+","+i+")"}var n=e.hexToRGB(t);return null==n?t:"rgba("+n.r+","+n.g+","+n.b+","+i+")"},e.RGBToHex=function(t,e,i){return"#"+((1<<24)+(t<<16)+(e<<8)+i).toString(16).slice(1)},e.parseColor=function(t){var i;if(e.isString(t)===!0){if(e.isValidRGB(t)===!0){var n=t.substr(4).substr(0,t.length-5).split(",").map(function(t){return parseInt(t)});t=e.RGBToHex(n[0],n[1],n[2])}if(e.isValidHex(t)===!0){var r=e.hexToHSV(t),s={h:r.h,s:.8*r.s,v:Math.min(1,1.02*r.v)},o={h:r.h,s:Math.min(1,1.25*r.s),v:.8*r.v},a=e.HSVToHex(o.h,o.s,o.v),h=e.HSVToHex(s.h,s.s,s.v);i={background:t,border:a,highlight:{background:h,border:a},hover:{background:h,border:a}}}else i={background:t,border:t,highlight:{background:t,border:t},hover:{background:t,border:t}}}else i={},i.background=t.background||void 0,i.border=t.border||void 0,e.isString(t.highlight)?i.highlight={border:t.highlight,background:t.highlight}:(i.highlight={},i.highlight.background=t.highlight&&t.highlight.background||void 0,i.highlight.border=t.highlight&&t.highlight.border||void 0),e.isString(t.hover)?i.hover={border:t.hover,background:t.hover}:(i.hover={},i.hover.background=t.hover&&t.hover.background||void 0,i.hover.border=t.hover&&t.hover.border||void 0);return i},e.RGBToHSV=function(t,e,i){t/=255,e/=255,i/=255;var n=Math.min(t,Math.min(e,i)),r=Math.max(t,Math.max(e,i));if(n==r)return{h:0,s:0,v:n};var s=t==n?e-i:i==n?t-e:i-t,o=t==n?3:i==n?1:5,a=60*(o-s/(r-n))/360,h=(r-n)/r,l=r;return{h:a,s:h,v:l}};var a={split:function(t){var e={};return t.split(";").forEach(function(t){if(""!=t.trim()){var i=t.split(":"),n=i[0].trim(),r=i[1].trim();e[n]=r}}),e},join:function(t){return Object.keys(t).map(function(e){return e+": "+t[e]}).join("; ")}};e.addCssText=function(t,i){var n=a.split(t.style.cssText),r=a.split(i),s=e.extend(n,r);t.style.cssText=a.join(s)},e.removeCssText=function(t,e){var i=a.split(t.style.cssText),n=a.split(e);for(var r in n)n.hasOwnProperty(r)&&delete i[r];t.style.cssText=a.join(i)},e.HSVToRGB=function(t,e,i){var n,r,s,o=Math.floor(6*t),a=6*t-o,h=i*(1-e),l=i*(1-a*e),u=i*(1-(1-a)*e);switch(o%6){case 0:n=i,r=u,s=h;break;case 1:n=l,r=i,s=h;break;case 2:n=h,r=i,s=u;break;case 3:n=h,r=l,s=i;break;case 4:n=u,r=h,s=i;break;case 5:n=i,r=h,s=l}return{r:Math.floor(255*n),g:Math.floor(255*r),b:Math.floor(255*s)}},e.HSVToHex=function(t,i,n){var r=e.HSVToRGB(t,i,n);return e.RGBToHex(r.r,r.g,r.b)},e.hexToHSV=function(t){var i=e.hexToRGB(t);return e.RGBToHSV(i.r,i.g,i.b)},e.isValidHex=function(t){var e=/(^#[0-9A-F]{6}$)|(^#[0-9A-F]{3}$)/i.test(t);return e},e.isValidRGB=function(t){t=t.replace(" ","");var e=/rgb\((\d{1,3}),(\d{1,3}),(\d{1,3})\)/i.test(t);return e},e.isValidRGBA=function(t){t=t.replace(" ","");var e=/rgba\((\d{1,3}),(\d{1,3}),(\d{1,3}),(.{1,3})\)/i.test(t);return e},e.selectiveBridgeObject=function(t,i){if("object"==("undefined"==typeof i?"undefined":n(i))){for(var r=Object.create(i),s=0;s0&&e(n,t[r-1])<0;r--)t[r]=t[r-1];t[r]=n}return t},e.mergeOptions=function(t,e,i){var n=(arguments.length<=3||void 0===arguments[3]?!1:arguments[3],arguments.length<=4||void 0===arguments[4]?{}:arguments[4]);if(null===e[i])t[i]=Object.create(n[i]);else if(void 0!==e[i])if("boolean"==typeof e[i])t[i].enabled=e[i];else{void 0===e[i].enabled&&(t[i].enabled=!0);for(var r in e[i])e[i].hasOwnProperty(r)&&(t[i][r]=e[i][r])}},e.binarySearchCustom=function(t,e,i,n){for(var r=1e4,s=0,o=0,a=t.length-1;a>=o&&r>s;){var h=Math.floor((o+a)/2),l=t[h],u=void 0===n?l[i]:l[i][n],c=e(u);if(0==c)return h;-1==c?o=h+1:a=h-1,s++}return-1},e.binarySearchValue=function(t,e,i,n,r){for(var s,o,a,h,l=1e4,u=0,c=0,d=t.length-1,r=void 0!=r?r:function(t,e){return t==e?0:e>t?-1:1};d>=c&&l>u;){if(h=Math.floor(.5*(d+c)),s=t[Math.max(0,h-1)][i],o=t[h][i],a=t[Math.min(t.length-1,h+1)][i],0==r(o,e))return h;if(r(s,e)<0&&r(o,e)>0)return"before"==n?Math.max(0,h-1):h;if(r(o,e)<0&&r(a,e)>0)return"before"==n?h:Math.min(t.length-1,h+1);r(o,e)<0?c=h+1:d=h-1,u++}return-1},e.easingFunctions={linear:function(t){return t},easeInQuad:function(t){return t*t},easeOutQuad:function(t){return t*(2-t)},easeInOutQuad:function(t){return.5>t?2*t*t:-1+(4-2*t)*t},easeInCubic:function(t){return t*t*t},easeOutCubic:function(t){return--t*t*t+1},easeInOutCubic:function(t){return.5>t?4*t*t*t:(t-1)*(2*t-2)*(2*t-2)+1},easeInQuart:function(t){return t*t*t*t},easeOutQuart:function(t){return 1- --t*t*t*t},easeInOutQuart:function(t){return.5>t?8*t*t*t*t:1-8*--t*t*t*t},easeInQuint:function(t){return t*t*t*t*t},easeOutQuint:function(t){return 1+--t*t*t*t*t},easeInOutQuint:function(t){return.5>t?16*t*t*t*t*t:1+16*--t*t*t*t*t}}},function(t,e,i){t.exports="undefined"!=typeof window&&window.moment||i(3)},function(t,e,i){(function(t){!function(e,i){t.exports=i()}(this,function(){function e(){return Ji.apply(null,arguments)}function i(t){Ji=t}function n(t){return t instanceof Array||"[object Array]"===Object.prototype.toString.call(t)}function r(t){return t instanceof Date||"[object Date]"===Object.prototype.toString.call(t)}function s(t,e){var i,n=[];for(i=0;i0)for(i in Ki)n=Ki[i],r=e[n],f(r)||(t[n]=r);return t}function m(t){p(this,t),this._d=new Date(null!=t._d?t._d.getTime():NaN),tn===!1&&(tn=!0,e.updateOffset(this),tn=!1)}function v(t){return t instanceof m||null!=t&&null!=t._isAMomentObject}function y(t){return 0>t?Math.ceil(t):Math.floor(t)}function g(t){var e=+t,i=0;return 0!==e&&isFinite(e)&&(i=y(e)),i}function _(t,e,i){var n,r=Math.min(t.length,e.length),s=Math.abs(t.length-e.length),o=0;for(n=0;r>n;n++)(i&&t[n]!==e[n]||!i&&g(t[n])!==g(e[n]))&&o++;return o+s}function x(t){e.suppressDeprecationWarnings===!1&&"undefined"!=typeof console&&console.warn&&console.warn("Deprecation warning: "+t)}function b(t,e){var i=!0;return a(function(){return i&&(x(t+"\nArguments: "+Array.prototype.slice.call(arguments).join(", ")+"\n"+(new Error).stack),i=!1),e.apply(this,arguments)},e)}function w(t,e){en[t]||(x(e),en[t]=!0)}function M(t){return t instanceof Function||"[object Function]"===Object.prototype.toString.call(t)}function S(t){return"[object Object]"===Object.prototype.toString.call(t)}function T(t){var e,i;for(i in t)e=t[i],M(e)?this[i]=e:this["_"+i]=e;this._config=t,this._ordinalParseLenient=new RegExp(this._ordinalParse.source+"|"+/\d{1,2}/.source)}function D(t,e){var i,n=a({},t);for(i in e)o(e,i)&&(S(t[i])&&S(e[i])?(n[i]={},a(n[i],t[i]),a(n[i],e[i])):null!=e[i]?n[i]=e[i]:delete n[i]);return n}function C(t){null!=t&&this.set(t)}function k(t){return t?t.toLowerCase().replace("_","-"):t}function E(t){for(var e,i,n,r,s=0;s0;){if(n=O(r.slice(0,e).join("-")))return n;if(i&&i.length>=e&&_(r,i,!0)>=e-1)break;e--}s++}return null}function O(e){var i=null;if(!rn[e]&&"undefined"!=typeof t&&t&&t.exports)try{i=nn._abbr,!function(){var t=new Error('Cannot find module "./locale"');throw t.code="MODULE_NOT_FOUND",t}(),P(i)}catch(n){}return rn[e]}function P(t,e){var i;return t&&(i=f(e)?A(t):Y(t,e),i&&(nn=i)),nn._abbr}function Y(t,e){return null!==e?(e.abbr=t,null!=rn[t]?(w("defineLocaleOverride","use moment.updateLocale(localeName, config) to change an existing locale. moment.defineLocale(localeName, config) should only be used for creating a new locale"),e=D(rn[t]._config,e)):null!=e.parentLocale&&(null!=rn[e.parentLocale]?e=D(rn[e.parentLocale]._config,e):w("parentLocaleUndefined","specified parentLocale is not defined yet")),rn[t]=new C(e),P(t),rn[t]):(delete rn[t],null)}function L(t,e){if(null!=e){var i;null!=rn[t]&&(e=D(rn[t]._config,e)),i=new C(e),i.parentLocale=rn[t],rn[t]=i,P(t)}else null!=rn[t]&&(null!=rn[t].parentLocale?rn[t]=rn[t].parentLocale:null!=rn[t]&&delete rn[t]);return rn[t]}function A(t){var e;if(t&&t._locale&&t._locale._abbr&&(t=t._locale._abbr),!t)return nn;if(!n(t)){if(e=O(t))return e;t=[t]}return E(t)}function I(){return Object.keys(rn)}function z(t,e){var i=t.toLowerCase();sn[i]=sn[i+"s"]=sn[e]=t}function R(t){return"string"==typeof t?sn[t]||sn[t.toLowerCase()]:void 0}function W(t){var e,i,n={};for(i in t)o(t,i)&&(e=R(i),e&&(n[e]=t[i]));return n}function N(t,i){return function(n){return null!=n?(V(this,t,n),e.updateOffset(this,i),this):F(this,t)}}function F(t,e){return t.isValid()?t._d["get"+(t._isUTC?"UTC":"")+e]():NaN}function V(t,e,i){t.isValid()&&t._d["set"+(t._isUTC?"UTC":"")+e](i)}function B(t,e){var i;if("object"==typeof t)for(i in t)this.set(i,t[i]);else if(t=R(t),M(this[t]))return this[t](e);return this}function U(t,e,i){var n=""+Math.abs(t),r=e-n.length,s=t>=0;return(s?i?"+":"":"-")+Math.pow(10,Math.max(0,r)).toString().substr(1)+n}function H(t,e,i,n){var r=n;"string"==typeof n&&(r=function(){return this[n]()}),t&&(ln[t]=r),e&&(ln[e[0]]=function(){return U(r.apply(this,arguments),e[1],e[2])}),i&&(ln[i]=function(){return this.localeData().ordinal(r.apply(this,arguments),t)})}function j(t){return t.match(/\[[\s\S]/)?t.replace(/^\[|\]$/g,""):t.replace(/\\/g,"")}function G(t){var e,i,n=t.match(on);for(e=0,i=n.length;i>e;e++)ln[n[e]]?n[e]=ln[n[e]]:n[e]=j(n[e]);return function(r){var s="";for(e=0;i>e;e++)s+=n[e]instanceof Function?n[e].call(r,t):n[e];return s}}function X(t,e){return t.isValid()?(e=Z(e,t.localeData()),hn[e]=hn[e]||G(e),hn[e](t)):t.localeData().invalidDate()}function Z(t,e){function i(t){return e.longDateFormat(t)||t}var n=5;for(an.lastIndex=0;n>=0&&an.test(t);)t=t.replace(an,i),an.lastIndex=0,n-=1;return t}function q(t,e,i){Cn[t]=M(e)?e:function(t,n){return t&&i?i:e}}function $(t,e){return o(Cn,t)?Cn[t](e._strict,e._locale):new RegExp(Q(t))}function Q(t){return J(t.replace("\\","").replace(/\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g,function(t,e,i,n,r){return e||i||n||r}))}function J(t){return t.replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&")}function K(t,e){var i,n=e;for("string"==typeof t&&(t=[t]),"number"==typeof e&&(n=function(t,i){i[e]=g(t)}),i=0;in;n++){if(r=h([2e3,n]),i&&!this._longMonthsParse[n]&&(this._longMonthsParse[n]=new RegExp("^"+this.months(r,"").replace(".","")+"$","i"),this._shortMonthsParse[n]=new RegExp("^"+this.monthsShort(r,"").replace(".","")+"$","i")),i||this._monthsParse[n]||(s="^"+this.months(r,"")+"|^"+this.monthsShort(r,""),this._monthsParse[n]=new RegExp(s.replace(".",""),"i")),i&&"MMMM"===e&&this._longMonthsParse[n].test(t))return n;if(i&&"MMM"===e&&this._shortMonthsParse[n].test(t))return n;if(!i&&this._monthsParse[n].test(t))return n}}function ot(t,e){var i;if(!t.isValid())return t;if("string"==typeof e)if(/^\d+$/.test(e))e=g(e);else if(e=t.localeData().monthsParse(e),"number"!=typeof e)return t;return i=Math.min(t.date(),it(t.year(),e)),t._d["set"+(t._isUTC?"UTC":"")+"Month"](e,i),t}function at(t){return null!=t?(ot(this,t),e.updateOffset(this,!0),this):F(this,"Month")}function ht(){return it(this.year(),this.month())}function lt(t){return this._monthsParseExact?(o(this,"_monthsRegex")||ct.call(this),t?this._monthsShortStrictRegex:this._monthsShortRegex):this._monthsShortStrictRegex&&t?this._monthsShortStrictRegex:this._monthsShortRegex}function ut(t){return this._monthsParseExact?(o(this,"_monthsRegex")||ct.call(this),t?this._monthsStrictRegex:this._monthsRegex):this._monthsStrictRegex&&t?this._monthsStrictRegex:this._monthsRegex}function ct(){function t(t,e){return e.length-t.length}var e,i,n=[],r=[],s=[];for(e=0;12>e;e++)i=h([2e3,e]),n.push(this.monthsShort(i,"")),r.push(this.months(i,"")),s.push(this.months(i,"")),s.push(this.monthsShort(i,""));for(n.sort(t),r.sort(t),s.sort(t),e=0;12>e;e++)n[e]=J(n[e]),r[e]=J(r[e]),s[e]=J(s[e]);this._monthsRegex=new RegExp("^("+s.join("|")+")","i"),this._monthsShortRegex=this._monthsRegex,this._monthsStrictRegex=new RegExp("^("+r.join("|")+")$","i"),this._monthsShortStrictRegex=new RegExp("^("+n.join("|")+")$","i")}function dt(t){var e,i=t._a;return i&&-2===u(t).overflow&&(e=i[On]<0||i[On]>11?On:i[Pn]<1||i[Pn]>it(i[En],i[On])?Pn:i[Yn]<0||i[Yn]>24||24===i[Yn]&&(0!==i[Ln]||0!==i[An]||0!==i[In])?Yn:i[Ln]<0||i[Ln]>59?Ln:i[An]<0||i[An]>59?An:i[In]<0||i[In]>999?In:-1,u(t)._overflowDayOfYear&&(En>e||e>Pn)&&(e=Pn),u(t)._overflowWeeks&&-1===e&&(e=zn),u(t)._overflowWeekday&&-1===e&&(e=Rn),u(t).overflow=e),t}function ft(t){var e,i,n,r,s,o,a=t._i,h=Un.exec(a)||Hn.exec(a);if(h){for(u(t).iso=!0,e=0,i=Gn.length;i>e;e++)if(Gn[e][1].exec(h[1])){r=Gn[e][0],n=Gn[e][2]!==!1;break}if(null==r)return void(t._isValid=!1);if(h[3]){for(e=0,i=Xn.length;i>e;e++)if(Xn[e][1].exec(h[3])){s=(h[2]||" ")+Xn[e][0];break}if(null==s)return void(t._isValid=!1)}if(!n&&null!=s)return void(t._isValid=!1);if(h[4]){if(!jn.exec(h[4]))return void(t._isValid=!1);o="Z"}t._f=r+(s||"")+(o||""),kt(t)}else t._isValid=!1}function pt(t){var i=Zn.exec(t._i);return null!==i?void(t._d=new Date(+i[1])):(ft(t),void(t._isValid===!1&&(delete t._isValid,e.createFromInputFallback(t))))}function mt(t,e,i,n,r,s,o){var a=new Date(t,e,i,n,r,s,o);return 100>t&&t>=0&&isFinite(a.getFullYear())&&a.setFullYear(t),a}function vt(t){var e=new Date(Date.UTC.apply(null,arguments));return 100>t&&t>=0&&isFinite(e.getUTCFullYear())&&e.setUTCFullYear(t),e}function yt(t){return gt(t)?366:365}function gt(t){return t%4===0&&t%100!==0||t%400===0}function _t(){return gt(this.year())}function xt(t,e,i){var n=7+e-i,r=(7+vt(t,0,n).getUTCDay()-e)%7;return-r+n-1}function bt(t,e,i,n,r){var s,o,a=(7+i-n)%7,h=xt(t,n,r),l=1+7*(e-1)+a+h;return 0>=l?(s=t-1,o=yt(s)+l):l>yt(t)?(s=t+1,o=l-yt(t)):(s=t,o=l),{year:s,dayOfYear:o}}function wt(t,e,i){var n,r,s=xt(t.year(),e,i),o=Math.floor((t.dayOfYear()-s-1)/7)+1;return 1>o?(r=t.year()-1,n=o+Mt(r,e,i)):o>Mt(t.year(),e,i)?(n=o-Mt(t.year(),e,i),r=t.year()+1):(r=t.year(),n=o),{week:n,year:r}}function Mt(t,e,i){var n=xt(t,e,i),r=xt(t+1,e,i);return(yt(t)-n+r)/7}function St(t,e,i){return null!=t?t:null!=e?e:i}function Tt(t){var i=new Date(e.now());return t._useUTC?[i.getUTCFullYear(),i.getUTCMonth(),i.getUTCDate()]:[i.getFullYear(),i.getMonth(),i.getDate()]}function Dt(t){var e,i,n,r,s=[];if(!t._d){for(n=Tt(t),t._w&&null==t._a[Pn]&&null==t._a[On]&&Ct(t),t._dayOfYear&&(r=St(t._a[En],n[En]),t._dayOfYear>yt(r)&&(u(t)._overflowDayOfYear=!0),i=vt(r,0,t._dayOfYear),t._a[On]=i.getUTCMonth(),t._a[Pn]=i.getUTCDate()),e=0;3>e&&null==t._a[e];++e)t._a[e]=s[e]=n[e];for(;7>e;e++)t._a[e]=s[e]=null==t._a[e]?2===e?1:0:t._a[e];24===t._a[Yn]&&0===t._a[Ln]&&0===t._a[An]&&0===t._a[In]&&(t._nextDay=!0,t._a[Yn]=0),t._d=(t._useUTC?vt:mt).apply(null,s),null!=t._tzm&&t._d.setUTCMinutes(t._d.getUTCMinutes()-t._tzm),t._nextDay&&(t._a[Yn]=24)}}function Ct(t){var e,i,n,r,s,o,a,h;e=t._w,null!=e.GG||null!=e.W||null!=e.E?(s=1,o=4,i=St(e.GG,t._a[En],wt(zt(),1,4).year),n=St(e.W,1),r=St(e.E,1),(1>r||r>7)&&(h=!0)):(s=t._locale._week.dow,o=t._locale._week.doy,i=St(e.gg,t._a[En],wt(zt(),s,o).year),n=St(e.w,1),null!=e.d?(r=e.d,(0>r||r>6)&&(h=!0)):null!=e.e?(r=e.e+s,(e.e<0||e.e>6)&&(h=!0)):r=s),1>n||n>Mt(i,s,o)?u(t)._overflowWeeks=!0:null!=h?u(t)._overflowWeekday=!0:(a=bt(i,n,r,s,o),t._a[En]=a.year,t._dayOfYear=a.dayOfYear)}function kt(t){if(t._f===e.ISO_8601)return void ft(t);t._a=[],u(t).empty=!0;var i,n,r,s,o,a=""+t._i,h=a.length,l=0;for(r=Z(t._f,t._locale).match(on)||[],i=0;i0&&u(t).unusedInput.push(o),a=a.slice(a.indexOf(n)+n.length),l+=n.length),ln[s]?(n?u(t).empty=!1:u(t).unusedTokens.push(s),et(s,n,t)):t._strict&&!n&&u(t).unusedTokens.push(s);u(t).charsLeftOver=h-l,a.length>0&&u(t).unusedInput.push(a),u(t).bigHour===!0&&t._a[Yn]<=12&&t._a[Yn]>0&&(u(t).bigHour=void 0),t._a[Yn]=Et(t._locale,t._a[Yn],t._meridiem),Dt(t),dt(t)}function Et(t,e,i){var n;return null==i?e:null!=t.meridiemHour?t.meridiemHour(e,i):null!=t.isPM?(n=t.isPM(i),n&&12>e&&(e+=12),n||12!==e||(e=0),e):e}function Ot(t){var e,i,n,r,s;if(0===t._f.length)return u(t).invalidFormat=!0,void(t._d=new Date(NaN));for(r=0;rs)&&(n=s,i=e));a(t,i||e)}function Pt(t){if(!t._d){var e=W(t._i);t._a=s([e.year,e.month,e.day||e.date,e.hour,e.minute,e.second,e.millisecond],function(t){return t&&parseInt(t,10)}),Dt(t)}}function Yt(t){var e=new m(dt(Lt(t)));return e._nextDay&&(e.add(1,"d"),e._nextDay=void 0),e}function Lt(t){var e=t._i,i=t._f;return t._locale=t._locale||A(t._l),null===e||void 0===i&&""===e?d({nullInput:!0}):("string"==typeof e&&(t._i=e=t._locale.preparse(e)),v(e)?new m(dt(e)):(n(i)?Ot(t):i?kt(t):r(e)?t._d=e:At(t),c(t)||(t._d=null),t))}function At(t){var i=t._i;void 0===i?t._d=new Date(e.now()):r(i)?t._d=new Date(+i):"string"==typeof i?pt(t):n(i)?(t._a=s(i.slice(0),function(t){return parseInt(t,10)}),Dt(t)):"object"==typeof i?Pt(t):"number"==typeof i?t._d=new Date(i):e.createFromInputFallback(t)}function It(t,e,i,n,r){var s={};return"boolean"==typeof i&&(n=i,i=void 0),s._isAMomentObject=!0,s._useUTC=s._isUTC=r,s._l=i,s._i=t,s._f=e,s._strict=n,Yt(s)}function zt(t,e,i,n){return It(t,e,i,n,!1)}function Rt(t,e){var i,r;if(1===e.length&&n(e[0])&&(e=e[0]),!e.length)return zt();for(i=e[0],r=1;rt&&(t=-t,i="-"),i+U(~~(t/60),2)+e+U(~~t%60,2)})}function Ut(t,e){var i=(e||"").match(t)||[],n=i[i.length-1]||[],r=(n+"").match(Kn)||["-",0,0],s=+(60*r[1])+g(r[2]);return"+"===r[0]?s:-s}function Ht(t,i){var n,s;return i._isUTC?(n=i.clone(),s=(v(t)||r(t)?+t:+zt(t))-+n,n._d.setTime(+n._d+s),e.updateOffset(n,!1),n):zt(t).local()}function jt(t){return 15*-Math.round(t._d.getTimezoneOffset()/15)}function Gt(t,i){var n,r=this._offset||0;return this.isValid()?null!=t?("string"==typeof t?t=Ut(Sn,t):Math.abs(t)<16&&(t=60*t),!this._isUTC&&i&&(n=jt(this)),this._offset=t,this._isUTC=!0,null!=n&&this.add(n,"m"),r!==t&&(!i||this._changeInProgress?le(this,ne(t-r,"m"),1,!1):this._changeInProgress||(this._changeInProgress=!0,e.updateOffset(this,!0),this._changeInProgress=null)),this):this._isUTC?r:jt(this):null!=t?this:NaN}function Xt(t,e){return null!=t?("string"!=typeof t&&(t=-t),this.utcOffset(t,e),this):-this.utcOffset()}function Zt(t){return this.utcOffset(0,t)}function qt(t){return this._isUTC&&(this.utcOffset(0,t),this._isUTC=!1,t&&this.subtract(jt(this),"m")),this}function $t(){return this._tzm?this.utcOffset(this._tzm):"string"==typeof this._i&&this.utcOffset(Ut(Mn,this._i)),this}function Qt(t){return this.isValid()?(t=t?zt(t).utcOffset():0,(this.utcOffset()-t)%60===0):!1}function Jt(){return this.utcOffset()>this.clone().month(0).utcOffset()||this.utcOffset()>this.clone().month(5).utcOffset()}function Kt(){if(!f(this._isDSTShifted))return this._isDSTShifted;var t={};if(p(t,this),t=Lt(t),t._a){var e=t._isUTC?h(t._a):zt(t._a);this._isDSTShifted=this.isValid()&&_(t._a,e.toArray())>0}else this._isDSTShifted=!1;return this._isDSTShifted}function te(){return this.isValid()?!this._isUTC:!1}function ee(){return this.isValid()?this._isUTC:!1}function ie(){return this.isValid()?this._isUTC&&0===this._offset:!1}function ne(t,e){var i,n,r,s=t,a=null;return Vt(t)?s={ms:t._milliseconds,d:t._days,M:t._months}:"number"==typeof t?(s={},e?s[e]=t:s.milliseconds=t):(a=tr.exec(t))?(i="-"===a[1]?-1:1,s={y:0,d:g(a[Pn])*i,h:g(a[Yn])*i,m:g(a[Ln])*i,s:g(a[An])*i,ms:g(a[In])*i}):(a=er.exec(t))?(i="-"===a[1]?-1:1,s={y:re(a[2],i),M:re(a[3],i),w:re(a[4],i),d:re(a[5],i),h:re(a[6],i),m:re(a[7],i),s:re(a[8],i)}):null==s?s={}:"object"==typeof s&&("from"in s||"to"in s)&&(r=oe(zt(s.from),zt(s.to)),s={},s.ms=r.milliseconds,s.M=r.months),n=new Ft(s),Vt(t)&&o(t,"_locale")&&(n._locale=t._locale),n}function re(t,e){var i=t&&parseFloat(t.replace(",","."));return(isNaN(i)?0:i)*e}function se(t,e){var i={milliseconds:0,months:0};return i.months=e.month()-t.month()+12*(e.year()-t.year()),t.clone().add(i.months,"M").isAfter(e)&&--i.months,i.milliseconds=+e-+t.clone().add(i.months,"M"),i}function oe(t,e){var i;return t.isValid()&&e.isValid()?(e=Ht(e,t),t.isBefore(e)?i=se(t,e):(i=se(e,t),i.milliseconds=-i.milliseconds,i.months=-i.months),i):{milliseconds:0,months:0}}function ae(t){return 0>t?-1*Math.round(-1*t):Math.round(t)}function he(t,e){return function(i,n){var r,s;return null===n||isNaN(+n)||(w(e,"moment()."+e+"(period, number) is deprecated. Please use moment()."+e+"(number, period)."),s=i,i=n,n=s),i="string"==typeof i?+i:i,r=ne(i,n),le(this,r,t),this}}function le(t,i,n,r){var s=i._milliseconds,o=ae(i._days),a=ae(i._months);t.isValid()&&(r=null==r?!0:r,s&&t._d.setTime(+t._d+s*n),o&&V(t,"Date",F(t,"Date")+o*n),a&&ot(t,F(t,"Month")+a*n),r&&e.updateOffset(t,o||a))}function ue(t,e){var i=t||zt(),n=Ht(i,this).startOf("day"),r=this.diff(n,"days",!0),s=-6>r?"sameElse":-1>r?"lastWeek":0>r?"lastDay":1>r?"sameDay":2>r?"nextDay":7>r?"nextWeek":"sameElse",o=e&&(M(e[s])?e[s]():e[s]); +return this.format(o||this.localeData().calendar(s,this,zt(i)))}function ce(){return new m(this)}function de(t,e){var i=v(t)?t:zt(t);return this.isValid()&&i.isValid()?(e=R(f(e)?"millisecond":e),"millisecond"===e?+this>+i:+i<+this.clone().startOf(e)):!1}function fe(t,e){var i=v(t)?t:zt(t);return this.isValid()&&i.isValid()?(e=R(f(e)?"millisecond":e),"millisecond"===e?+i>+this:+this.clone().endOf(e)<+i):!1}function pe(t,e,i){return this.isAfter(t,i)&&this.isBefore(e,i)}function me(t,e){var i,n=v(t)?t:zt(t);return this.isValid()&&n.isValid()?(e=R(e||"millisecond"),"millisecond"===e?+this===+n:(i=+n,+this.clone().startOf(e)<=i&&i<=+this.clone().endOf(e))):!1}function ve(t,e){return this.isSame(t,e)||this.isAfter(t,e)}function ye(t,e){return this.isSame(t,e)||this.isBefore(t,e)}function ge(t,e,i){var n,r,s,o;return this.isValid()?(n=Ht(t,this),n.isValid()?(r=6e4*(n.utcOffset()-this.utcOffset()),e=R(e),"year"===e||"month"===e||"quarter"===e?(o=_e(this,n),"quarter"===e?o/=3:"year"===e&&(o/=12)):(s=this-n,o="second"===e?s/1e3:"minute"===e?s/6e4:"hour"===e?s/36e5:"day"===e?(s-r)/864e5:"week"===e?(s-r)/6048e5:s),i?o:y(o)):NaN):NaN}function _e(t,e){var i,n,r=12*(e.year()-t.year())+(e.month()-t.month()),s=t.clone().add(r,"months");return 0>e-s?(i=t.clone().add(r-1,"months"),n=(e-s)/(s-i)):(i=t.clone().add(r+1,"months"),n=(e-s)/(i-s)),-(r+n)}function xe(){return this.clone().locale("en").format("ddd MMM DD YYYY HH:mm:ss [GMT]ZZ")}function be(){var t=this.clone().utc();return 0s&&(e=s),Xe.call(this,t,e,i,n,r))}function Xe(t,e,i,n,r){var s=bt(t,e,i,n,r),o=vt(s.year,0,s.dayOfYear);return this.year(o.getUTCFullYear()),this.month(o.getUTCMonth()),this.date(o.getUTCDate()),this}function Ze(t){return null==t?Math.ceil((this.month()+1)/3):this.month(3*(t-1)+this.month()%3)}function qe(t){return wt(t,this._week.dow,this._week.doy).week}function $e(){return this._week.dow}function Qe(){return this._week.doy}function Je(t){var e=this.localeData().week(this);return null==t?e:this.add(7*(t-e),"d")}function Ke(t){var e=wt(this,1,4).week;return null==t?e:this.add(7*(t-e),"d")}function ti(t,e){return"string"!=typeof t?t:isNaN(t)?(t=e.weekdaysParse(t),"number"==typeof t?t:null):parseInt(t,10)}function ei(t,e){return n(this._weekdays)?this._weekdays[t.day()]:this._weekdays[this._weekdays.isFormat.test(e)?"format":"standalone"][t.day()]}function ii(t){return this._weekdaysShort[t.day()]}function ni(t){return this._weekdaysMin[t.day()]}function ri(t,e,i){var n,r,s;for(this._weekdaysParse||(this._weekdaysParse=[],this._minWeekdaysParse=[],this._shortWeekdaysParse=[],this._fullWeekdaysParse=[]),n=0;7>n;n++){if(r=zt([2e3,1]).day(n),i&&!this._fullWeekdaysParse[n]&&(this._fullWeekdaysParse[n]=new RegExp("^"+this.weekdays(r,"").replace(".",".?")+"$","i"),this._shortWeekdaysParse[n]=new RegExp("^"+this.weekdaysShort(r,"").replace(".",".?")+"$","i"),this._minWeekdaysParse[n]=new RegExp("^"+this.weekdaysMin(r,"").replace(".",".?")+"$","i")),this._weekdaysParse[n]||(s="^"+this.weekdays(r,"")+"|^"+this.weekdaysShort(r,"")+"|^"+this.weekdaysMin(r,""),this._weekdaysParse[n]=new RegExp(s.replace(".",""),"i")),i&&"dddd"===e&&this._fullWeekdaysParse[n].test(t))return n;if(i&&"ddd"===e&&this._shortWeekdaysParse[n].test(t))return n;if(i&&"dd"===e&&this._minWeekdaysParse[n].test(t))return n;if(!i&&this._weekdaysParse[n].test(t))return n}}function si(t){if(!this.isValid())return null!=t?this:NaN;var e=this._isUTC?this._d.getUTCDay():this._d.getDay();return null!=t?(t=ti(t,this.localeData()),this.add(t-e,"d")):e}function oi(t){if(!this.isValid())return null!=t?this:NaN;var e=(this.day()+7-this.localeData()._week.dow)%7;return null==t?e:this.add(t-e,"d")}function ai(t){return this.isValid()?null==t?this.day()||7:this.day(this.day()%7?t:t-7):null!=t?this:NaN}function hi(t){var e=Math.round((this.clone().startOf("day")-this.clone().startOf("year"))/864e5)+1;return null==t?e:this.add(t-e,"d")}function li(){return this.hours()%12||12}function ui(t,e){H(t,0,0,function(){return this.localeData().meridiem(this.hours(),this.minutes(),e)})}function ci(t,e){return e._meridiemParse}function di(t){return"p"===(t+"").toLowerCase().charAt(0)}function fi(t,e,i){return t>11?i?"pm":"PM":i?"am":"AM"}function pi(t,e){e[In]=g(1e3*("0."+t))}function mi(){return this._isUTC?"UTC":""}function vi(){return this._isUTC?"Coordinated Universal Time":""}function yi(t){return zt(1e3*t)}function gi(){return zt.apply(null,arguments).parseZone()}function _i(t,e,i){var n=this._calendar[t];return M(n)?n.call(e,i):n}function xi(t){var e=this._longDateFormat[t],i=this._longDateFormat[t.toUpperCase()];return e||!i?e:(this._longDateFormat[t]=i.replace(/MMMM|MM|DD|dddd/g,function(t){return t.slice(1)}),this._longDateFormat[t])}function bi(){return this._invalidDate}function wi(t){return this._ordinal.replace("%d",t)}function Mi(t){return t}function Si(t,e,i,n){var r=this._relativeTime[i];return M(r)?r(t,e,i,n):r.replace(/%d/i,t)}function Ti(t,e){var i=this._relativeTime[t>0?"future":"past"];return M(i)?i(e):i.replace(/%s/i,e)}function Di(t,e,i,n){var r=A(),s=h().set(n,e);return r[i](s,t)}function Ci(t,e,i,n,r){if("number"==typeof t&&(e=t,t=void 0),t=t||"",null!=e)return Di(t,e,i,r);var s,o=[];for(s=0;n>s;s++)o[s]=Di(t,s,i,r);return o}function ki(t,e){return Ci(t,e,"months",12,"month")}function Ei(t,e){return Ci(t,e,"monthsShort",12,"month")}function Oi(t,e){return Ci(t,e,"weekdays",7,"day")}function Pi(t,e){return Ci(t,e,"weekdaysShort",7,"day")}function Yi(t,e){return Ci(t,e,"weekdaysMin",7,"day")}function Li(){var t=this._data;return this._milliseconds=Tr(this._milliseconds),this._days=Tr(this._days),this._months=Tr(this._months),t.milliseconds=Tr(t.milliseconds),t.seconds=Tr(t.seconds),t.minutes=Tr(t.minutes),t.hours=Tr(t.hours),t.months=Tr(t.months),t.years=Tr(t.years),this}function Ai(t,e,i,n){var r=ne(e,i);return t._milliseconds+=n*r._milliseconds,t._days+=n*r._days,t._months+=n*r._months,t._bubble()}function Ii(t,e){return Ai(this,t,e,1)}function zi(t,e){return Ai(this,t,e,-1)}function Ri(t){return 0>t?Math.floor(t):Math.ceil(t)}function Wi(){var t,e,i,n,r,s=this._milliseconds,o=this._days,a=this._months,h=this._data;return s>=0&&o>=0&&a>=0||0>=s&&0>=o&&0>=a||(s+=864e5*Ri(Fi(a)+o),o=0,a=0),h.milliseconds=s%1e3,t=y(s/1e3),h.seconds=t%60,e=y(t/60),h.minutes=e%60,i=y(e/60),h.hours=i%24,o+=y(i/24),r=y(Ni(o)),a+=r,o-=Ri(Fi(r)),n=y(a/12),a%=12,h.days=o,h.months=a,h.years=n,this}function Ni(t){return 4800*t/146097}function Fi(t){return 146097*t/4800}function Vi(t){var e,i,n=this._milliseconds;if(t=R(t),"month"===t||"year"===t)return e=this._days+n/864e5,i=this._months+Ni(e),"month"===t?i:i/12;switch(e=this._days+Math.round(Fi(this._months)),t){case"week":return e/7+n/6048e5;case"day":return e+n/864e5;case"hour":return 24*e+n/36e5;case"minute":return 1440*e+n/6e4;case"second":return 86400*e+n/1e3;case"millisecond":return Math.floor(864e5*e)+n;default:throw new Error("Unknown unit "+t)}}function Bi(){return this._milliseconds+864e5*this._days+this._months%12*2592e6+31536e6*g(this._months/12)}function Ui(t){return function(){return this.as(t)}}function Hi(t){return t=R(t),this[t+"s"]()}function ji(t){return function(){return this._data[t]}}function Gi(){return y(this.days()/7)}function Xi(t,e,i,n,r){return r.relativeTime(e||1,!!i,t,n)}function Zi(t,e,i){var n=ne(t).abs(),r=Vr(n.as("s")),s=Vr(n.as("m")),o=Vr(n.as("h")),a=Vr(n.as("d")),h=Vr(n.as("M")),l=Vr(n.as("y")),u=r=s&&["m"]||s=o&&["h"]||o=a&&["d"]||a=h&&["M"]||h=l&&["y"]||["yy",l];return u[2]=e,u[3]=+t>0,u[4]=i,Xi.apply(null,u)}function qi(t,e){return void 0===Br[t]?!1:void 0===e?Br[t]:(Br[t]=e,!0)}function $i(t){var e=this.localeData(),i=Zi(this,!t,e);return t&&(i=e.pastFuture(+this,i)),e.postformat(i)}function Qi(){var t,e,i,n=Ur(this._milliseconds)/1e3,r=Ur(this._days),s=Ur(this._months);t=y(n/60),e=y(t/60),n%=60,t%=60,i=y(s/12),s%=12;var o=i,a=s,h=r,l=e,u=t,c=n,d=this.asSeconds();return d?(0>d?"-":"")+"P"+(o?o+"Y":"")+(a?a+"M":"")+(h?h+"D":"")+(l||u||c?"T":"")+(l?l+"H":"")+(u?u+"M":"")+(c?c+"S":""):"P0D"}var Ji,Ki=e.momentProperties=[],tn=!1,en={};e.suppressDeprecationWarnings=!1;var nn,rn={},sn={},on=/(\[[^\[]*\])|(\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|YYYYYY|YYYYY|YYYY|YY|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g,an=/(\[[^\[]*\])|(\\)?(LTS|LT|LL?L?L?|l{1,4})/g,hn={},ln={},un=/\d/,cn=/\d\d/,dn=/\d{3}/,fn=/\d{4}/,pn=/[+-]?\d{6}/,mn=/\d\d?/,vn=/\d\d\d\d?/,yn=/\d\d\d\d\d\d?/,gn=/\d{1,3}/,_n=/\d{1,4}/,xn=/[+-]?\d{1,6}/,bn=/\d+/,wn=/[+-]?\d+/,Mn=/Z|[+-]\d\d:?\d\d/gi,Sn=/Z|[+-]\d\d(?::?\d\d)?/gi,Tn=/[+-]?\d+(\.\d{1,3})?/,Dn=/[0-9]*['a-z\u00A0-\u05FF\u0700-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]+|[\u0600-\u06FF\/]+(\s*?[\u0600-\u06FF]+){1,2}/i,Cn={},kn={},En=0,On=1,Pn=2,Yn=3,Ln=4,An=5,In=6,zn=7,Rn=8;H("M",["MM",2],"Mo",function(){return this.month()+1}),H("MMM",0,0,function(t){return this.localeData().monthsShort(this,t)}),H("MMMM",0,0,function(t){return this.localeData().months(this,t)}),z("month","M"),q("M",mn),q("MM",mn,cn),q("MMM",function(t,e){return e.monthsShortRegex(t)}),q("MMMM",function(t,e){return e.monthsRegex(t)}),K(["M","MM"],function(t,e){e[On]=g(t)-1}),K(["MMM","MMMM"],function(t,e,i,n){var r=i._locale.monthsParse(t,n,i._strict);null!=r?e[On]=r:u(i).invalidMonth=t});var Wn=/D[oD]?(\[[^\[\]]*\]|\s+)+MMMM?/,Nn="January_February_March_April_May_June_July_August_September_October_November_December".split("_"),Fn="Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),Vn=Dn,Bn=Dn,Un=/^\s*((?:[+-]\d{6}|\d{4})-(?:\d\d-\d\d|W\d\d-\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?::\d\d(?::\d\d(?:[.,]\d+)?)?)?)([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?/,Hn=/^\s*((?:[+-]\d{6}|\d{4})(?:\d\d\d\d|W\d\d\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?:\d\d(?:\d\d(?:[.,]\d+)?)?)?)([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?/,jn=/Z|[+-]\d\d(?::?\d\d)?/,Gn=[["YYYYYY-MM-DD",/[+-]\d{6}-\d\d-\d\d/],["YYYY-MM-DD",/\d{4}-\d\d-\d\d/],["GGGG-[W]WW-E",/\d{4}-W\d\d-\d/],["GGGG-[W]WW",/\d{4}-W\d\d/,!1],["YYYY-DDD",/\d{4}-\d{3}/],["YYYY-MM",/\d{4}-\d\d/,!1],["YYYYYYMMDD",/[+-]\d{10}/],["YYYYMMDD",/\d{8}/],["GGGG[W]WWE",/\d{4}W\d{3}/],["GGGG[W]WW",/\d{4}W\d{2}/,!1],["YYYYDDD",/\d{7}/]],Xn=[["HH:mm:ss.SSSS",/\d\d:\d\d:\d\d\.\d+/],["HH:mm:ss,SSSS",/\d\d:\d\d:\d\d,\d+/],["HH:mm:ss",/\d\d:\d\d:\d\d/],["HH:mm",/\d\d:\d\d/],["HHmmss.SSSS",/\d\d\d\d\d\d\.\d+/],["HHmmss,SSSS",/\d\d\d\d\d\d,\d+/],["HHmmss",/\d\d\d\d\d\d/],["HHmm",/\d\d\d\d/],["HH",/\d\d/]],Zn=/^\/?Date\((\-?\d+)/i;e.createFromInputFallback=b("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":""))}),H("Y",0,0,function(){var t=this.year();return 9999>=t?""+t:"+"+t}),H(0,["YY",2],0,function(){return this.year()%100}),H(0,["YYYY",4],0,"year"),H(0,["YYYYY",5],0,"year"),H(0,["YYYYYY",6,!0],0,"year"),z("year","y"),q("Y",wn),q("YY",mn,cn),q("YYYY",_n,fn),q("YYYYY",xn,pn),q("YYYYYY",xn,pn),K(["YYYYY","YYYYYY"],En),K("YYYY",function(t,i){i[En]=2===t.length?e.parseTwoDigitYear(t):g(t)}),K("YY",function(t,i){i[En]=e.parseTwoDigitYear(t)}),K("Y",function(t,e){e[En]=parseInt(t,10)}),e.parseTwoDigitYear=function(t){return g(t)+(g(t)>68?1900:2e3)};var qn=N("FullYear",!1);e.ISO_8601=function(){};var $n=b("moment().min is deprecated, use moment.max instead. https://github.com/moment/moment/issues/1548",function(){var t=zt.apply(null,arguments);return this.isValid()&&t.isValid()?this>t?this:t:d()}),Qn=b("moment().max is deprecated, use moment.min instead. https://github.com/moment/moment/issues/1548",function(){var t=zt.apply(null,arguments);return this.isValid()&&t.isValid()?t>this?this:t:d()}),Jn=function(){return Date.now?Date.now():+new Date};Bt("Z",":"),Bt("ZZ",""),q("Z",Sn),q("ZZ",Sn),K(["Z","ZZ"],function(t,e,i){i._useUTC=!0,i._tzm=Ut(Sn,t)});var Kn=/([\+\-]|\d\d)/gi;e.updateOffset=function(){};var tr=/^(\-)?(?:(\d*)[. ])?(\d+)\:(\d+)(?:\:(\d+)\.?(\d{3})?\d*)?$/,er=/^(-)?P(?:([0-9,.]*)Y)?(?:([0-9,.]*)M)?(?:([0-9,.]*)W)?(?:([0-9,.]*)D)?(?:T(?:([0-9,.]*)H)?(?:([0-9,.]*)M)?(?:([0-9,.]*)S)?)?$/;ne.fn=Ft.prototype;var ir=he(1,"add"),nr=he(-1,"subtract");e.defaultFormat="YYYY-MM-DDTHH:mm:ssZ";var rr=b("moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.",function(t){return void 0===t?this.localeData():this.locale(t)});H(0,["gg",2],0,function(){return this.weekYear()%100}),H(0,["GG",2],0,function(){return this.isoWeekYear()%100}),Ve("gggg","weekYear"),Ve("ggggg","weekYear"),Ve("GGGG","isoWeekYear"),Ve("GGGGG","isoWeekYear"),z("weekYear","gg"),z("isoWeekYear","GG"),q("G",wn),q("g",wn),q("GG",mn,cn),q("gg",mn,cn),q("GGGG",_n,fn),q("gggg",_n,fn),q("GGGGG",xn,pn),q("ggggg",xn,pn),tt(["gggg","ggggg","GGGG","GGGGG"],function(t,e,i,n){e[n.substr(0,2)]=g(t)}),tt(["gg","GG"],function(t,i,n,r){i[r]=e.parseTwoDigitYear(t)}),H("Q",0,"Qo","quarter"),z("quarter","Q"),q("Q",un),K("Q",function(t,e){e[On]=3*(g(t)-1)}),H("w",["ww",2],"wo","week"),H("W",["WW",2],"Wo","isoWeek"),z("week","w"),z("isoWeek","W"),q("w",mn),q("ww",mn,cn),q("W",mn),q("WW",mn,cn),tt(["w","ww","W","WW"],function(t,e,i,n){e[n.substr(0,1)]=g(t)});var sr={dow:0,doy:6};H("D",["DD",2],"Do","date"),z("date","D"),q("D",mn),q("DD",mn,cn),q("Do",function(t,e){return t?e._ordinalParse:e._ordinalParseLenient}),K(["D","DD"],Pn),K("Do",function(t,e){e[Pn]=g(t.match(mn)[0],10)});var or=N("Date",!0);H("d",0,"do","day"),H("dd",0,0,function(t){return this.localeData().weekdaysMin(this,t)}),H("ddd",0,0,function(t){return this.localeData().weekdaysShort(this,t)}),H("dddd",0,0,function(t){return this.localeData().weekdays(this,t)}),H("e",0,0,"weekday"),H("E",0,0,"isoWeekday"),z("day","d"),z("weekday","e"),z("isoWeekday","E"),q("d",mn),q("e",mn),q("E",mn),q("dd",Dn),q("ddd",Dn),q("dddd",Dn),tt(["dd","ddd","dddd"],function(t,e,i,n){var r=i._locale.weekdaysParse(t,n,i._strict);null!=r?e.d=r:u(i).invalidWeekday=t}),tt(["d","e","E"],function(t,e,i,n){e[n]=g(t)});var ar="Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),hr="Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),lr="Su_Mo_Tu_We_Th_Fr_Sa".split("_");H("DDD",["DDDD",3],"DDDo","dayOfYear"),z("dayOfYear","DDD"),q("DDD",gn),q("DDDD",dn),K(["DDD","DDDD"],function(t,e,i){i._dayOfYear=g(t)}),H("H",["HH",2],0,"hour"),H("h",["hh",2],0,li),H("hmm",0,0,function(){return""+li.apply(this)+U(this.minutes(),2)}),H("hmmss",0,0,function(){return""+li.apply(this)+U(this.minutes(),2)+U(this.seconds(),2)}),H("Hmm",0,0,function(){return""+this.hours()+U(this.minutes(),2)}),H("Hmmss",0,0,function(){return""+this.hours()+U(this.minutes(),2)+U(this.seconds(),2)}),ui("a",!0),ui("A",!1),z("hour","h"),q("a",ci),q("A",ci),q("H",mn),q("h",mn),q("HH",mn,cn),q("hh",mn,cn),q("hmm",vn),q("hmmss",yn),q("Hmm",vn),q("Hmmss",yn),K(["H","HH"],Yn),K(["a","A"],function(t,e,i){i._isPm=i._locale.isPM(t),i._meridiem=t}),K(["h","hh"],function(t,e,i){e[Yn]=g(t),u(i).bigHour=!0}),K("hmm",function(t,e,i){var n=t.length-2;e[Yn]=g(t.substr(0,n)),e[Ln]=g(t.substr(n)),u(i).bigHour=!0}),K("hmmss",function(t,e,i){var n=t.length-4,r=t.length-2;e[Yn]=g(t.substr(0,n)),e[Ln]=g(t.substr(n,2)),e[An]=g(t.substr(r)),u(i).bigHour=!0}),K("Hmm",function(t,e,i){var n=t.length-2;e[Yn]=g(t.substr(0,n)),e[Ln]=g(t.substr(n))}),K("Hmmss",function(t,e,i){var n=t.length-4,r=t.length-2;e[Yn]=g(t.substr(0,n)),e[Ln]=g(t.substr(n,2)),e[An]=g(t.substr(r))});var ur=/[ap]\.?m?\.?/i,cr=N("Hours",!0);H("m",["mm",2],0,"minute"),z("minute","m"),q("m",mn),q("mm",mn,cn),K(["m","mm"],Ln);var dr=N("Minutes",!1);H("s",["ss",2],0,"second"),z("second","s"),q("s",mn),q("ss",mn,cn),K(["s","ss"],An);var fr=N("Seconds",!1);H("S",0,0,function(){return~~(this.millisecond()/100)}),H(0,["SS",2],0,function(){return~~(this.millisecond()/10)}),H(0,["SSS",3],0,"millisecond"),H(0,["SSSS",4],0,function(){return 10*this.millisecond()}),H(0,["SSSSS",5],0,function(){return 100*this.millisecond()}),H(0,["SSSSSS",6],0,function(){return 1e3*this.millisecond()}),H(0,["SSSSSSS",7],0,function(){return 1e4*this.millisecond()}),H(0,["SSSSSSSS",8],0,function(){return 1e5*this.millisecond()}),H(0,["SSSSSSSSS",9],0,function(){return 1e6*this.millisecond()}),z("millisecond","ms"),q("S",gn,un),q("SS",gn,cn),q("SSS",gn,dn);var pr;for(pr="SSSS";pr.length<=9;pr+="S")q(pr,bn);for(pr="S";pr.length<=9;pr+="S")K(pr,pi);var mr=N("Milliseconds",!1);H("z",0,0,"zoneAbbr"),H("zz",0,0,"zoneName");var vr=m.prototype;vr.add=ir,vr.calendar=ue,vr.clone=ce,vr.diff=ge,vr.endOf=Oe,vr.format=we,vr.from=Me,vr.fromNow=Se,vr.to=Te,vr.toNow=De,vr.get=B,vr.invalidAt=Ne,vr.isAfter=de,vr.isBefore=fe,vr.isBetween=pe,vr.isSame=me,vr.isSameOrAfter=ve,vr.isSameOrBefore=ye,vr.isValid=Re,vr.lang=rr,vr.locale=Ce,vr.localeData=ke,vr.max=Qn,vr.min=$n,vr.parsingFlags=We,vr.set=B,vr.startOf=Ee,vr.subtract=nr,vr.toArray=Ae,vr.toObject=Ie,vr.toDate=Le,vr.toISOString=be,vr.toJSON=ze,vr.toString=xe,vr.unix=Ye,vr.valueOf=Pe,vr.creationData=Fe,vr.year=qn,vr.isLeapYear=_t,vr.weekYear=Be,vr.isoWeekYear=Ue,vr.quarter=vr.quarters=Ze,vr.month=at,vr.daysInMonth=ht,vr.week=vr.weeks=Je,vr.isoWeek=vr.isoWeeks=Ke,vr.weeksInYear=je,vr.isoWeeksInYear=He,vr.date=or,vr.day=vr.days=si,vr.weekday=oi,vr.isoWeekday=ai,vr.dayOfYear=hi,vr.hour=vr.hours=cr,vr.minute=vr.minutes=dr,vr.second=vr.seconds=fr,vr.millisecond=vr.milliseconds=mr,vr.utcOffset=Gt,vr.utc=Zt,vr.local=qt,vr.parseZone=$t,vr.hasAlignedHourOffset=Qt,vr.isDST=Jt,vr.isDSTShifted=Kt,vr.isLocal=te,vr.isUtcOffset=ee,vr.isUtc=ie,vr.isUTC=ie,vr.zoneAbbr=mi,vr.zoneName=vi,vr.dates=b("dates accessor is deprecated. Use date instead.",or),vr.months=b("months accessor is deprecated. Use month instead",at),vr.years=b("years accessor is deprecated. Use year instead",qn),vr.zone=b("moment().zone is deprecated, use moment().utcOffset instead. https://github.com/moment/moment/issues/1779",Xt);var yr=vr,gr={sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},_r={LTS:"h:mm:ss A",LT:"h:mm A",L:"MM/DD/YYYY",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY h:mm A",LLLL:"dddd, MMMM D, YYYY h:mm A"},xr="Invalid date",br="%d",wr=/\d{1,2}/,Mr={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"},Sr=C.prototype;Sr._calendar=gr,Sr.calendar=_i,Sr._longDateFormat=_r,Sr.longDateFormat=xi,Sr._invalidDate=xr,Sr.invalidDate=bi,Sr._ordinal=br,Sr.ordinal=wi,Sr._ordinalParse=wr,Sr.preparse=Mi,Sr.postformat=Mi,Sr._relativeTime=Mr,Sr.relativeTime=Si,Sr.pastFuture=Ti,Sr.set=T,Sr.months=nt,Sr._months=Nn,Sr.monthsShort=rt,Sr._monthsShort=Fn,Sr.monthsParse=st,Sr._monthsRegex=Bn,Sr.monthsRegex=ut,Sr._monthsShortRegex=Vn,Sr.monthsShortRegex=lt,Sr.week=qe,Sr._week=sr,Sr.firstDayOfYear=Qe,Sr.firstDayOfWeek=$e,Sr.weekdays=ei,Sr._weekdays=ar,Sr.weekdaysMin=ni,Sr._weekdaysMin=lr,Sr.weekdaysShort=ii,Sr._weekdaysShort=hr,Sr.weekdaysParse=ri,Sr.isPM=di,Sr._meridiemParse=ur,Sr.meridiem=fi,P("en",{ordinalParse:/\d{1,2}(th|st|nd|rd)/,ordinal:function(t){var e=t%10,i=1===g(t%100/10)?"th":1===e?"st":2===e?"nd":3===e?"rd":"th";return t+i}}),e.lang=b("moment.lang is deprecated. Use moment.locale instead.",P),e.langData=b("moment.langData is deprecated. Use moment.localeData instead.",A);var Tr=Math.abs,Dr=Ui("ms"),Cr=Ui("s"),kr=Ui("m"),Er=Ui("h"),Or=Ui("d"),Pr=Ui("w"),Yr=Ui("M"),Lr=Ui("y"),Ar=ji("milliseconds"),Ir=ji("seconds"),zr=ji("minutes"),Rr=ji("hours"),Wr=ji("days"),Nr=ji("months"),Fr=ji("years"),Vr=Math.round,Br={s:45,m:45,h:22,d:26,M:11},Ur=Math.abs,Hr=Ft.prototype;Hr.abs=Li,Hr.add=Ii,Hr.subtract=zi,Hr.as=Vi,Hr.asMilliseconds=Dr,Hr.asSeconds=Cr,Hr.asMinutes=kr,Hr.asHours=Er,Hr.asDays=Or,Hr.asWeeks=Pr,Hr.asMonths=Yr,Hr.asYears=Lr,Hr.valueOf=Bi,Hr._bubble=Wi,Hr.get=Hi,Hr.milliseconds=Ar,Hr.seconds=Ir,Hr.minutes=zr,Hr.hours=Rr,Hr.days=Wr,Hr.weeks=Gi,Hr.months=Nr,Hr.years=Fr,Hr.humanize=$i,Hr.toISOString=Qi,Hr.toString=Qi,Hr.toJSON=Qi,Hr.locale=Ce,Hr.localeData=ke,Hr.toIsoString=b("toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)",Qi),Hr.lang=rr,H("X",0,0,"unix"),H("x",0,0,"valueOf"),q("x",wn),q("X",Tn),K("X",function(t,e,i){i._d=new Date(1e3*parseFloat(t,10))}),K("x",function(t,e,i){i._d=new Date(g(t))}),e.version="2.12.0",i(zt),e.fn=yr,e.min=Wt,e.max=Nt,e.now=Jn,e.utc=h,e.unix=yi,e.months=ki,e.isDate=r,e.locale=P,e.invalid=d,e.duration=ne,e.isMoment=v,e.weekdays=Oi,e.parseZone=gi,e.localeData=A,e.isDuration=Vt,e.monthsShort=Ei,e.weekdaysMin=Yi,e.defineLocale=Y,e.updateLocale=L,e.locales=I,e.weekdaysShort=Pi,e.normalizeUnits=R,e.relativeTimeThreshold=qi,e.prototype=yr;var jr=e;return jr})}).call(e,i(4)(t))},function(t,e){t.exports=function(t){return t.webpackPolyfill||(t.deprecate=function(){},t.paths=[],t.children=[],t.webpackPolyfill=1),t}},function(t,e){function i(t){throw new Error("Cannot find module '"+t+"'.")}i.keys=function(){return[]},i.resolve=i,t.exports=i,i.id=5},function(t,e){(function(e){function i(t,e,i){var n=e&&i||0,r=0;for(e=e||[],t.toLowerCase().replace(/[0-9a-f]{2}/g,function(t){16>r&&(e[n+r++]=c[t])});16>r;)e[n+r++]=0;return e}function n(t,e){var i=e||0,n=u;return n[t[i++]]+n[t[i++]]+n[t[i++]]+n[t[i++]]+"-"+n[t[i++]]+n[t[i++]]+"-"+n[t[i++]]+n[t[i++]]+"-"+n[t[i++]]+n[t[i++]]+"-"+n[t[i++]]+n[t[i++]]+n[t[i++]]+n[t[i++]]+n[t[i++]]+n[t[i++]]}function r(t,e,i){var r=e&&i||0,s=e||[];t=t||{};var o=void 0!==t.clockseq?t.clockseq:m,a=void 0!==t.msecs?t.msecs:(new Date).getTime(),h=void 0!==t.nsecs?t.nsecs:y+1,l=a-v+(h-y)/1e4;if(0>l&&void 0===t.clockseq&&(o=o+1&16383),(0>l||a>v)&&void 0===t.nsecs&&(h=0),h>=1e4)throw new Error("uuid.v1(): Can't create more than 10M uuids/sec");v=a,y=h,m=o,a+=122192928e5;var u=(1e4*(268435455&a)+h)%4294967296;s[r++]=u>>>24&255,s[r++]=u>>>16&255,s[r++]=u>>>8&255,s[r++]=255&u;var c=a/4294967296*1e4&268435455;s[r++]=c>>>8&255,s[r++]=255&c,s[r++]=c>>>24&15|16,s[r++]=c>>>16&255,s[r++]=o>>>8|128,s[r++]=255&o;for(var d=t.node||p,f=0;6>f;f++)s[r+f]=d[f];return e?e:n(s)}function s(t,e,i){var r=e&&i||0;"string"==typeof t&&(e="binary"==t?new Array(16):null,t=null),t=t||{};var s=t.random||(t.rng||o)();if(s[6]=15&s[6]|64,s[8]=63&s[8]|128,e)for(var a=0;16>a;a++)e[r+a]=s[a];return e||n(s)}var o,a="undefined"!=typeof window?window:"undefined"!=typeof e?e:null;if(a&&a.crypto&&crypto.getRandomValues){var h=new Uint8Array(16);o=function(){return crypto.getRandomValues(h),h}}if(!o){var l=new Array(16);o=function(){for(var t,e=0;16>e;e++)0===(3&e)&&(t=4294967296*Math.random()),l[e]=t>>>((3&e)<<3)&255;return l}}for(var u=[],c={},d=0;256>d;d++)u[d]=(d+256).toString(16).substr(1),c[u[d]]=d;var f=o(),p=[1|f[0],f[1],f[2],f[3],f[4],f[5]],m=16383&(f[6]<<8|f[7]),v=0,y=0,g=s;g.v1=r,g.v4=s,g.parse=i,g.unparse=n,t.exports=g}).call(e,function(){return this}())},function(t,e){e.prepareElements=function(t){for(var e in t)t.hasOwnProperty(e)&&(t[e].redundant=t[e].used,t[e].used=[])},e.cleanupElements=function(t){for(var e in t)if(t.hasOwnProperty(e)&&t[e].redundant){for(var i=0;i0?(n=e[t].redundant[0],e[t].redundant.shift()):(n=document.createElementNS("http://www.w3.org/2000/svg",t),i.appendChild(n)):(n=document.createElementNS("http://www.w3.org/2000/svg",t),e[t]={used:[],redundant:[]},i.appendChild(n)),e[t].used.push(n),n},e.getDOMElement=function(t,e,i,n){var r;return e.hasOwnProperty(t)?e[t].redundant.length>0?(r=e[t].redundant[0],e[t].redundant.shift()):(r=document.createElement(t),void 0!==n?i.insertBefore(r,n):i.appendChild(r)):(r=document.createElement(t),e[t]={used:[],redundant:[]},void 0!==n?i.insertBefore(r,n):i.appendChild(r)),e[t].used.push(r),r},e.drawPoint=function(t,i,n,r,s,o){var a;if("circle"==n.style?(a=e.getSVGElement("circle",r,s),a.setAttributeNS(null,"cx",t),a.setAttributeNS(null,"cy",i),a.setAttributeNS(null,"r",.5*n.size)):(a=e.getSVGElement("rect",r,s),a.setAttributeNS(null,"x",t-.5*n.size),a.setAttributeNS(null,"y",i-.5*n.size),a.setAttributeNS(null,"width",n.size),a.setAttributeNS(null,"height",n.size)),void 0!==n.styles&&a.setAttributeNS(null,"style",n.styles),a.setAttributeNS(null,"class",n.className+" vis-point"),o){var h=e.getSVGElement("text",r,s);o.xOffset&&(t+=o.xOffset),o.yOffset&&(i+=o.yOffset),o.content&&(h.textContent=o.content),o.className&&h.setAttributeNS(null,"class",o.className+" vis-label"),h.setAttributeNS(null,"x",t),h.setAttributeNS(null,"y",i)}return a},e.drawBar=function(t,i,n,r,s,o,a,h){if(0!=r){0>r&&(r*=-1,i-=r);var l=e.getSVGElement("rect",o,a);l.setAttributeNS(null,"x",t-.5*n),l.setAttributeNS(null,"y",i),l.setAttributeNS(null,"width",n),l.setAttributeNS(null,"height",r),l.setAttributeNS(null,"class",s),h&&l.setAttributeNS(null,"style",h)}}},function(t,e,i){function n(t,e){if(t&&!Array.isArray(t)&&(e=t,t=null),this._options=e||{},this._data={},this.length=0,this._fieldId=this._options.fieldId||"id",this._type={},this._options.type)for(var i=Object.keys(this._options.type),n=0,r=i.length;r>n;n++){var s=i[n],o=this._options.type[s];"Date"==o||"ISODate"==o||"ASPDate"==o?this._type[s]="Date":this._type[s]=o}if(this._options.convert)throw new Error('Option "convert" is deprecated. Use "type" instead.');this._subscribers={},t&&this.add(t),this.setOptions(e)}var r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol?"symbol":typeof t},s=i(1),o=i(9);n.prototype.setOptions=function(t){t&&void 0!==t.queue&&(t.queue===!1?this._queue&&(this._queue.destroy(),delete this._queue):(this._queue||(this._queue=o.extend(this,{replace:["add","update","remove"]})),"object"===r(t.queue)&&this._queue.setOptions(t.queue)))},n.prototype.on=function(t,e){var i=this._subscribers[t];i||(i=[],this._subscribers[t]=i),i.push({callback:e})},n.prototype.subscribe=function(){throw new Error("DataSet.subscribe is deprecated. Use DataSet.on instead.")},n.prototype.off=function(t,e){var i=this._subscribers[t];i&&(this._subscribers[t]=i.filter(function(t){return t.callback!=e}))},n.prototype.unsubscribe=function(){throw new Error("DataSet.unsubscribe is deprecated. Use DataSet.off instead.")},n.prototype._trigger=function(t,e,i){if("*"==t)throw new Error("Cannot trigger event *");var n=[];t in this._subscribers&&(n=n.concat(this._subscribers[t])),"*"in this._subscribers&&(n=n.concat(this._subscribers["*"]));for(var r=0,s=n.length;s>r;r++){var o=n[r];o.callback&&o.callback(t,e,i||null)}},n.prototype.add=function(t,e){var i,n=[],r=this;if(Array.isArray(t))for(var s=0,o=t.length;o>s;s++)i=r._addItem(t[s]),n.push(i);else{if(!(t instanceof Object))throw new Error("Unknown dataType");i=r._addItem(t),n.push(i)}return n.length&&this._trigger("add",{items:n},e),n},n.prototype.update=function(t,e){var i=[],n=[],r=[],o=[],a=this,h=a._fieldId,l=function(t){var e=t[h];if(a._data[e]){var l=s.extend({},a._data[e]);e=a._updateItem(t),n.push(e),o.push(t),r.push(l)}else e=a._addItem(t),i.push(e)};if(Array.isArray(t))for(var u=0,c=t.length;c>u;u++)t[u]instanceof Object?l(t[u]):console.warn("Ignoring input item, which is not an object at index "+u);else{if(!(t instanceof Object))throw new Error("Unknown dataType");l(t)}if(i.length&&this._trigger("add",{items:i},e),n.length){var d={items:n,oldData:r,data:o};this._trigger("update",d,e)}return i.concat(n)},n.prototype.get=function(t){var e,i,n,r=this,o=s.getType(arguments[0]);"String"==o||"Number"==o?(e=arguments[0],n=arguments[1]):"Array"==o?(i=arguments[0],n=arguments[1]):n=arguments[0];var a;if(n&&n.returnType){var h=["Array","Object"];a=-1==h.indexOf(n.returnType)?"Array":n.returnType}else a="Array";var l,u,c,d,f,p=n&&n.type||this._options.type,m=n&&n.filter,v=[];if(void 0!=e)l=r._getItem(e,p),l&&m&&!m(l)&&(l=null);else if(void 0!=i)for(d=0,f=i.length;f>d;d++)l=r._getItem(i[d],p),m&&!m(l)||v.push(l);else for(u=Object.keys(this._data),d=0,f=u.length;f>d;d++)c=u[d],l=r._getItem(c,p),m&&!m(l)||v.push(l);if(n&&n.order&&void 0==e&&this._sort(v,n.order),n&&n.fields){var y=n.fields;if(void 0!=e)l=this._filterFields(l,y);else for(d=0,f=v.length;f>d;d++)v[d]=this._filterFields(v[d],y)}if("Object"==a){var g,_={};for(d=0,f=v.length;f>d;d++)g=v[d],_[g.id]=g;return _}return void 0!=e?l:v},n.prototype.getIds=function(t){var e,i,n,r,s,o=this._data,a=t&&t.filter,h=t&&t.order,l=t&&t.type||this._options.type,u=Object.keys(o),c=[];if(a)if(h){for(s=[],e=0,i=u.length;i>e;e++)n=u[e],r=this._getItem(n,l),a(r)&&s.push(r);for(this._sort(s,h),e=0,i=s.length;i>e;e++)c.push(s[e][this._fieldId])}else for(e=0,i=u.length;i>e;e++)n=u[e],r=this._getItem(n,l),a(r)&&c.push(r[this._fieldId]);else if(h){for(s=[],e=0,i=u.length;i>e;e++)n=u[e],s.push(o[n]);for(this._sort(s,h),e=0,i=s.length;i>e;e++)c.push(s[e][this._fieldId])}else for(e=0,i=u.length;i>e;e++)n=u[e],r=o[n],c.push(r[this._fieldId]);return c},n.prototype.getDataSet=function(){return this},n.prototype.forEach=function(t,e){var i,n,r,s,o=e&&e.filter,a=e&&e.type||this._options.type,h=this._data,l=Object.keys(h);if(e&&e.order){var u=this.get(e);for(i=0,n=u.length;n>i;i++)r=u[i],s=r[this._fieldId],t(r,s)}else for(i=0,n=l.length;n>i;i++)s=l[i],r=this._getItem(s,a),o&&!o(r)||t(r,s)},n.prototype.map=function(t,e){var i,n,r,s,o=e&&e.filter,a=e&&e.type||this._options.type,h=[],l=this._data,u=Object.keys(l); +for(i=0,n=u.length;n>i;i++)r=u[i],s=this._getItem(r,a),o&&!o(s)||h.push(t(s,r));return e&&e.order&&this._sort(h,e.order),h},n.prototype._filterFields=function(t,e){if(!t)return t;var i,n,r={},s=Object.keys(t),o=s.length;if(Array.isArray(e))for(i=0;o>i;i++)n=s[i],-1!=e.indexOf(n)&&(r[n]=t[n]);else for(i=0;o>i;i++)n=s[i],e.hasOwnProperty(n)&&(r[e[n]]=t[n]);return r},n.prototype._sort=function(t,e){if(s.isString(e)){var i=e;t.sort(function(t,e){var n=t[i],r=e[i];return n>r?1:r>n?-1:0})}else{if("function"!=typeof e)throw new TypeError("Order must be a function or a string");t.sort(e)}},n.prototype.remove=function(t,e){var i,n,r,s=[];if(Array.isArray(t))for(i=0,n=t.length;n>i;i++)r=this._remove(t[i]),null!=r&&s.push(r);else r=this._remove(t),null!=r&&s.push(r);return s.length&&this._trigger("remove",{items:s},e),s},n.prototype._remove=function(t){if(s.isNumber(t)||s.isString(t)){if(this._data[t])return delete this._data[t],this.length--,t}else if(t instanceof Object){var e=t[this._fieldId];if(void 0!==e&&this._data[e])return delete this._data[e],this.length--,e}return null},n.prototype.clear=function(t){var e=Object.keys(this._data);return this._data={},this.length=0,this._trigger("remove",{items:e},t),e},n.prototype.max=function(t){var e,i,n=this._data,r=Object.keys(n),s=null,o=null;for(e=0,i=r.length;i>e;e++){var a=r[e],h=n[a],l=h[t];null!=l&&(!s||l>o)&&(s=h,o=l)}return s},n.prototype.min=function(t){var e,i,n=this._data,r=Object.keys(n),s=null,o=null;for(e=0,i=r.length;i>e;e++){var a=r[e],h=n[a],l=h[t];null!=l&&(!s||o>l)&&(s=h,o=l)}return s},n.prototype.distinct=function(t){var e,i,n,r=this._data,o=Object.keys(r),a=[],h=this._options.type&&this._options.type[t]||null,l=0;for(e=0,n=o.length;n>e;e++){var u=o[e],c=r[u],d=c[t],f=!1;for(i=0;l>i;i++)if(a[i]==d){f=!0;break}f||void 0===d||(a[l]=d,l++)}if(h)for(e=0,n=a.length;n>e;e++)a[e]=s.convert(a[e],h);return a},n.prototype._addItem=function(t){var e=t[this._fieldId];if(void 0!=e){if(this._data[e])throw new Error("Cannot add item: item with id "+e+" already exists")}else e=s.randomUUID(),t[this._fieldId]=e;var i,n,r={},o=Object.keys(t);for(i=0,n=o.length;n>i;i++){var a=o[i],h=this._type[a];r[a]=s.convert(t[a],h)}return this._data[e]=r,this.length++,e},n.prototype._getItem=function(t,e){var i,n,r,o,a=this._data[t];if(!a)return null;var h={},l=Object.keys(a);if(e)for(r=0,o=l.length;o>r;r++)i=l[r],n=a[i],h[i]=s.convert(n,e[i]);else for(r=0,o=l.length;o>r;r++)i=l[r],n=a[i],h[i]=n;return h},n.prototype._updateItem=function(t){var e=t[this._fieldId];if(void 0==e)throw new Error("Cannot update item: item has no id (item: "+JSON.stringify(t)+")");var i=this._data[e];if(!i)throw new Error("Cannot update item: no item with id "+e+" found");for(var n=Object.keys(t),r=0,o=n.length;o>r;r++){var a=n[r],h=this._type[a];i[a]=s.convert(t[a],h)}return e},t.exports=n},function(t,e){function i(t){this.delay=null,this.max=1/0,this._queue=[],this._timeout=null,this._extended=null,this.setOptions(t)}i.prototype.setOptions=function(t){t&&"undefined"!=typeof t.delay&&(this.delay=t.delay),t&&"undefined"!=typeof t.max&&(this.max=t.max),this._flushIfNeeded()},i.extend=function(t,e){var n=new i(e);if(void 0!==t.flush)throw new Error("Target object already has a property flush");t.flush=function(){n.flush()};var r=[{name:"flush",original:void 0}];if(e&&e.replace)for(var s=0;sthis.max&&this.flush(),clearTimeout(this._timeout),this.queue.length>0&&"number"==typeof this.delay){var t=this;this._timeout=setTimeout(function(){t.flush()},this.delay)}},i.prototype.flush=function(){for(;this._queue.length>0;){var t=this._queue.shift();t.fn.apply(t.context||t.fn,t.args||[])}},t.exports=i},function(t,e,i){function n(t,e){this._data=null,this._ids={},this.length=0,this._options=e||{},this._fieldId="id",this._subscribers={};var i=this;this.listener=function(){i._onEvent.apply(i,arguments)},this.setData(t)}var r=i(1),s=i(8);n.prototype.setData=function(t){var e,i,n,r;if(this._data&&(this._data.off&&this._data.off("*",this.listener),e=Object.keys(this._ids),this._ids={},this.length=0,this._trigger("remove",{items:e})),this._data=t,this._data){for(this._fieldId=this._options.fieldId||this._data&&this._data.options&&this._data.options.fieldId||"id",e=this._data.getIds({filter:this._options&&this._options.filter}),n=0,r=e.length;r>n;n++)i=e[n],this._ids[i]=!0;this.length=e.length,this._trigger("add",{items:e}),this._data.on&&this._data.on("*",this.listener)}},n.prototype.refresh=function(){var t,e,i,n=this._data.getIds({filter:this._options&&this._options.filter}),r=Object.keys(this._ids),s={},o=[],a=[];for(e=0,i=n.length;i>e;e++)t=n[e],s[t]=!0,this._ids[t]||(o.push(t),this._ids[t]=!0);for(e=0,i=r.length;i>e;e++)t=r[e],s[t]||(a.push(t),delete this._ids[t]);this.length+=o.length-a.length,o.length&&this._trigger("add",{items:o}),a.length&&this._trigger("remove",{items:a})},n.prototype.get=function(t){var e,i,n,s=this,o=r.getType(arguments[0]);"String"==o||"Number"==o||"Array"==o?(e=arguments[0],i=arguments[1],n=arguments[2]):(i=arguments[0],n=arguments[1]);var a=r.extend({},this._options,i);this._options.filter&&i&&i.filter&&(a.filter=function(t){return s._options.filter(t)&&i.filter(t)});var h=[];return void 0!=e&&h.push(e),h.push(a),h.push(n),this._data&&this._data.get.apply(this._data,h)},n.prototype.getIds=function(t){var e;if(this._data){var i,n=this._options.filter;i=t&&t.filter?n?function(e){return n(e)&&t.filter(e)}:t.filter:n,e=this._data.getIds({filter:i,order:t&&t.order})}else e=[];return e},n.prototype.map=function(t,e){var i=[];if(this._data){var n,r=this._options.filter;n=e&&e.filter?r?function(t){return r(t)&&e.filter(t)}:e.filter:r,i=this._data.map(t,{filter:n,order:e&&e.order})}else i=[];return i},n.prototype.getDataSet=function(){for(var t=this;t instanceof n;)t=t._data;return t||null},n.prototype._onEvent=function(t,e,i){var n,r,s,o,a=e&&e.items,h=this._data,l=[],u=[],c=[],d=[];if(a&&h){switch(t){case"add":for(n=0,r=a.length;r>n;n++)s=a[n],o=this.get(s),o&&(this._ids[s]=!0,u.push(s));break;case"update":for(n=0,r=a.length;r>n;n++)s=a[n],o=this.get(s),o?this._ids[s]?(c.push(s),l.push(e.data[n])):(this._ids[s]=!0,u.push(s)):this._ids[s]&&(delete this._ids[s],d.push(s));break;case"remove":for(n=0,r=a.length;r>n;n++)s=a[n],this._ids[s]&&(delete this._ids[s],d.push(s))}this.length+=u.length-d.length,u.length&&this._trigger("add",{items:u},i),c.length&&this._trigger("update",{items:c,data:l},i),d.length&&this._trigger("remove",{items:d},i)}},n.prototype.on=s.prototype.on,n.prototype.off=s.prototype.off,n.prototype._trigger=s.prototype._trigger,n.prototype.subscribe=n.prototype.on,n.prototype.unsubscribe=n.prototype.off,t.exports=n},function(t,e,i){function n(t,e,i){if(!(this instanceof n))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 r=function(t){return t};this.xValueLabel=r,this.yValueLabel=r,this.zValueLabel=r,this.filterLabel="time",this.legendLabel="value",this.style=n.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 f,this.camera.setArmRotation(1,.5),this.camera.setArmLength(1.7),this.eye=new c(0,0,-1),this.dataTable=null,this.dataPoints=null,this.colX=void 0,this.colY=void 0,this.colZ=void 0,this.colValue=void 0,this.colFilter=void 0,this.xMin=0,this.xStep=void 0,this.xMax=1,this.yMin=0,this.yStep=void 0,this.yMax=1,this.zMin=0,this.zStep=void 0,this.zMax=1,this.valueMin=0,this.valueMax=1,this.xBarWidth=1,this.yBarWidth=1,this.axisColor="#4D4D4D",this.gridColor="#D3D3D3",this.dataColor={fill:"#7DC1FF",stroke:"#3267D2",strokeWidth:1},this.dotSizeRatio=.02,this.create(),this.setOptions(i),e&&this.setData(e)}function r(t){return"clientX"in t?t.clientX:t.targetTouches[0]&&t.targetTouches[0].clientX||0}function s(t){return"clientY"in t?t.clientY:t.targetTouches[0]&&t.targetTouches[0].clientY||0}var o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol?"symbol":typeof t},a=i(12),h=i(8),l=i(10),u=i(1),c=i(13),d=i(14),f=i(15),p=i(16),m=i(17),v=i(18);a(n.prototype),n.prototype._setScale=function(){this.scale=new c(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!==n.STYLE.DOTCOLOR&&this.style!==n.STYLE.DOTSIZE&&this.style!==n.STYLE.BARCOLOR&&this.style!==n.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)}},n.prototype.getNumberOfRows=function(t){return t.length},n.prototype.getNumberOfColumns=function(t){var e=0;for(var i in t[0])t[0].hasOwnProperty(i)&&e++;return e},n.prototype.getDistinctValues=function(t,e){for(var i=[],n=0;nt[n][e]&&(i.min=t[n][e]),i.maxt;t++){var p=(t-d)/(f-d),m=240*p,y=this._hsv2rgb(m,1,1);c.strokeStyle=y,c.beginPath(),c.moveTo(h,o+t),c.lineTo(a,o+t),c.stroke()}c.strokeStyle=this.axisColor,c.strokeRect(h,o,i,s)}if(this.style===n.STYLE.DOTSIZE&&(c.strokeStyle=this.axisColor,c.fillStyle=this.dataColor.fill,c.beginPath(),c.moveTo(h,o),c.lineTo(a,o),c.lineTo(a-i+e,l),c.lineTo(h,l),c.closePath(),c.fill(),c.stroke()),this.style===n.STYLE.DOTCOLOR||this.style===n.STYLE.DOTSIZE){var g=5,_=new v(this.valueMin,this.valueMax,(this.valueMax-this.valueMin)/5,!0);for(_.start(),_.getCurrent()0?this.yMin:this.yMax,r=this._convert3Dto2D(new c(b,o,this.zMin)),Math.cos(2*x)>0?(m.textAlign="center",m.textBaseline="top",r.y+=_):Math.sin(2*x)<0?(m.textAlign="right",m.textBaseline="middle"):(m.textAlign="left",m.textBaseline="middle"),m.fillStyle=this.axisColor,m.fillText(" "+this.xValueLabel(i.getCurrent())+" ",r.x,r.y),i.next()}for(m.lineWidth=1,n=void 0===this.defaultYStep,i=new v(this.yMin,this.yMax,this.yStep,n),i.start(),i.getCurrent()0?this.xMin:this.xMax,r=this._convert3Dto2D(new c(s,i.getCurrent(),this.zMin)),Math.cos(2*x)<0?(m.textAlign="center",m.textBaseline="top",r.y+=_):Math.sin(2*x)>0?(m.textAlign="right",m.textBaseline="middle"):(m.textAlign="left",m.textBaseline="middle"),m.fillStyle=this.axisColor,m.fillText(" "+this.yValueLabel(i.getCurrent())+" ",r.x,r.y),i.next();for(m.lineWidth=1,n=void 0===this.defaultZStep,i=new v(this.zMin,this.zMax,this.zStep,n),i.start(),i.getCurrent()0?this.xMin:this.xMax,o=Math.sin(x)<0?this.yMin:this.yMax;!i.end();)t=this._convert3Dto2D(new c(s,o,i.getCurrent())),m.strokeStyle=this.axisColor,m.beginPath(),m.moveTo(t.x,t.y),m.lineTo(t.x-_,t.y),m.stroke(),m.textAlign="right",m.textBaseline="middle",m.fillStyle=this.axisColor,m.fillText(this.zValueLabel(i.getCurrent())+" ",t.x-5,t.y),i.next();m.lineWidth=1,t=this._convert3Dto2D(new c(s,o,this.zMin)),e=this._convert3Dto2D(new c(s,o,this.zMax)),m.strokeStyle=this.axisColor,m.beginPath(),m.moveTo(t.x,t.y),m.lineTo(e.x,e.y),m.stroke(),m.lineWidth=1,d=this._convert3Dto2D(new c(this.xMin,this.yMin,this.zMin)),f=this._convert3Dto2D(new c(this.xMax,this.yMin,this.zMin)),m.strokeStyle=this.axisColor,m.beginPath(),m.moveTo(d.x,d.y),m.lineTo(f.x,f.y),m.stroke(),d=this._convert3Dto2D(new c(this.xMin,this.yMax,this.zMin)),f=this._convert3Dto2D(new c(this.xMax,this.yMax,this.zMin)),m.strokeStyle=this.axisColor,m.beginPath(),m.moveTo(d.x,d.y),m.lineTo(f.x,f.y),m.stroke(),m.lineWidth=1,t=this._convert3Dto2D(new c(this.xMin,this.yMin,this.zMin)),e=this._convert3Dto2D(new c(this.xMin,this.yMax,this.zMin)),m.strokeStyle=this.axisColor,m.beginPath(),m.moveTo(t.x,t.y),m.lineTo(e.x,e.y),m.stroke(),t=this._convert3Dto2D(new c(this.xMax,this.yMin,this.zMin)),e=this._convert3Dto2D(new c(this.xMax,this.yMax,this.zMin)),m.strokeStyle=this.axisColor,m.beginPath(),m.moveTo(t.x,t.y),m.lineTo(e.x,e.y),m.stroke();var w=this.xLabel;w.length>0&&(u=.1/this.scale.y,s=(this.xMin+this.xMax)/2,o=Math.cos(x)>0?this.yMin-u:this.yMax+u,r=this._convert3Dto2D(new c(s,o,this.zMin)),Math.cos(2*x)>0?(m.textAlign="center",m.textBaseline="top"):Math.sin(2*x)<0?(m.textAlign="right",m.textBaseline="middle"):(m.textAlign="left",m.textBaseline="middle"),m.fillStyle=this.axisColor,m.fillText(w,r.x,r.y));var M=this.yLabel;M.length>0&&(l=.1/this.scale.x,s=Math.sin(x)>0?this.xMin-l:this.xMax+l,o=(this.yMin+this.yMax)/2,r=this._convert3Dto2D(new c(s,o,this.zMin)),Math.cos(2*x)<0?(m.textAlign="center",m.textBaseline="top"):Math.sin(2*x)>0?(m.textAlign="right",m.textBaseline="middle"):(m.textAlign="left",m.textBaseline="middle"),m.fillStyle=this.axisColor,m.fillText(M,r.x,r.y));var S=this.zLabel;S.length>0&&(h=30,s=Math.cos(x)>0?this.xMin:this.xMax,o=Math.sin(x)<0?this.yMin:this.yMax,a=(this.zMin+this.zMax)/2,r=this._convert3Dto2D(new c(s,o,a)),m.textAlign="right",m.textBaseline="middle",m.fillStyle=this.axisColor,m.fillText(S,r.x-h,r.y))},n.prototype._hsv2rgb=function(t,e,i){var n,r,s,o,a,h;switch(o=i*e,a=Math.floor(t/60),h=o*(1-Math.abs(t/60%2-1)),a){case 0:n=o,r=h,s=0;break;case 1:n=h,r=o,s=0;break;case 2:n=0,r=o,s=h;break;case 3:n=0,r=h,s=o;break;case 4:n=h,r=0,s=o;break;case 5:n=o,r=0,s=h;break;default:n=0,r=0,s=0}return"RGB("+parseInt(255*n)+","+parseInt(255*r)+","+parseInt(255*s)+")"},n.prototype._redrawDataGrid=function(){var t,e,i,r,s,o,a,h,l,u,d,f,p=this.frame.canvas,m=p.getContext("2d");if(m.lineJoin="round",m.lineCap="round",!(void 0===this.dataPoints||this.dataPoints.length<=0)){for(s=0;s0}else o=!0;o?(f=(t.point.z+e.point.z+i.point.z+r.point.z)/4,l=240*(1-(f-this.zMin)*this.scale.z/this.verticalRatio),u=1,this.showShadow?(d=Math.min(1+w.x/M/2,1),a=this._hsv2rgb(l,u,d),h=a):(d=1,a=this._hsv2rgb(l,u,d),h=this.axisColor)):(a="gray",h=this.axisColor),m.lineWidth=this._getStrokeWidth(t),m.fillStyle=a,m.strokeStyle=h,m.beginPath(),m.moveTo(t.screen.x,t.screen.y),m.lineTo(e.screen.x,e.screen.y),m.lineTo(r.screen.x,r.screen.y),m.lineTo(i.screen.x,i.screen.y), +m.closePath(),m.fill(),m.stroke()}}else for(s=0;sd&&(d=0);var f,p,m;this.style===n.STYLE.DOTCOLOR?(f=240*(1-(l.point.value-this.valueMin)*this.scale.value),p=this._hsv2rgb(f,1,1),m=this._hsv2rgb(f,1,.8)):this.style===n.STYLE.DOTSIZE?(p=this.dataColor.fill,m=this.dataColor.stroke):(f=240*(1-(l.point.z-this.zMin)*this.scale.z/this.verticalRatio),p=this._hsv2rgb(f,1,1),m=this._hsv2rgb(f,1,.8)),i.lineWidth=this._getStrokeWidth(l),i.strokeStyle=m,i.fillStyle=p,i.beginPath(),i.arc(l.screen.x,l.screen.y,d,0,2*Math.PI,!0),i.fill(),i.stroke()}}},n.prototype._redrawDataBar=function(){var t,e,i,r,s=this.frame.canvas,o=s.getContext("2d");if(!(void 0===this.dataPoints||this.dataPoints.length<=0)){for(t=0;t0){for(t=this.dataPoints[0],n.lineWidth=this._getStrokeWidth(t),n.lineJoin="round",n.lineCap="round",n.strokeStyle=this.dataColor.stroke,n.beginPath(),n.moveTo(t.screen.x,t.screen.y),e=1;e0?1:0>t?-1:0}var n=e[0],r=e[1],s=e[2],o=i((r.x-n.x)*(t.y-n.y)-(r.y-n.y)*(t.x-n.x)),a=i((s.x-r.x)*(t.y-r.y)-(s.y-r.y)*(t.x-r.x)),h=i((n.x-s.x)*(t.y-s.y)-(n.y-s.y)*(t.x-s.x));return!(0!=o&&0!=a&&o!=a||0!=a&&0!=h&&a!=h||0!=o&&0!=h&&o!=h)},n.prototype._dataPointFromXY=function(t,e){var i,r=100,s=null,o=null,a=null,h=new d(t,e);if(this.style===n.STYLE.BAR||this.style===n.STYLE.BARCOLOR||this.style===n.STYLE.BARSIZE)for(i=this.dataPoints.length-1;i>=0;i--){s=this.dataPoints[i];var l=s.surfaces;if(l)for(var u=l.length-1;u>=0;u--){var c=l[u],f=c.corners,p=[f[0].screen,f[1].screen,f[2].screen],m=[f[2].screen,f[3].screen,f[0].screen];if(this._insideTriangle(h,p)||this._insideTriangle(h,m))return s}}else for(i=0;i_)&&r>_&&(a=_,o=s)}}return o},n.prototype._showTooltip=function(t){var e,i,n;this.tooltip?(e=this.tooltip.dom.content,i=this.tooltip.dom.line,n=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",n=document.createElement("div"),n.style.position="absolute",n.style.height="0",n.style.width="0",n.style.border="5px solid #4d4d4d",n.style.borderRadius="5px",this.tooltip={dataPoint:null,dom:{content:e,line:i,dot:n}}),this._hideTooltip(),this.tooltip.dataPoint=t,"function"==typeof this.showTooltip?e.innerHTML=this.showTooltip(t.point):e.innerHTML="
"+this.xLabel+":"+t.point.x+"
"+this.yLabel+":"+t.point.y+"
"+this.zLabel+":"+t.point.z+"
",e.style.left="0",e.style.top="0",this.frame.appendChild(e),this.frame.appendChild(i),this.frame.appendChild(n);var r=e.offsetWidth,s=e.offsetHeight,o=i.offsetHeight,a=n.offsetWidth,h=n.offsetHeight,l=t.screen.x-r/2;l=Math.min(Math.max(l,10),this.frame.clientWidth-10-r),i.style.left=t.screen.x+"px",i.style.top=t.screen.y-o+"px",e.style.left=l+"px",e.style.top=t.screen.y-o-s+"px",n.style.left=t.screen.x-a/2+"px",n.style.top=t.screen.y-h/2+"px"},n.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=n},function(t,e){function i(t){return t?n(t):void 0}function n(t){for(var e in i.prototype)t[e]=i.prototype[e];return t}t.exports=i,i.prototype.on=i.prototype.addEventListener=function(t,e){return this._callbacks=this._callbacks||{},(this._callbacks[t]=this._callbacks[t]||[]).push(e),this},i.prototype.once=function(t,e){function i(){n.off(t,i),e.apply(this,arguments)}var n=this;return this._callbacks=this._callbacks||{},i.fn=e,this.on(t,i),this},i.prototype.off=i.prototype.removeListener=i.prototype.removeAllListeners=i.prototype.removeEventListener=function(t,e){if(this._callbacks=this._callbacks||{},0==arguments.length)return this._callbacks={},this;var i=this._callbacks[t];if(!i)return this;if(1==arguments.length)return delete this._callbacks[t],this;for(var n,r=0;rn;++n)i[n].apply(this,e)}return this},i.prototype.listeners=function(t){return this._callbacks=this._callbacks||{},this._callbacks[t]||[]},i.prototype.hasListeners=function(t){return!!this.listeners(t).length}},function(t,e){function i(t,e,i){this.x=void 0!==t?t:0,this.y=void 0!==e?e:0,this.z=void 0!==i?i:0}i.subtract=function(t,e){var n=new i;return n.x=t.x-e.x,n.y=t.y-e.y,n.z=t.z-e.z,n},i.add=function(t,e){var n=new i;return n.x=t.x+e.x,n.y=t.y+e.y,n.z=t.z+e.z,n},i.avg=function(t,e){return new i((t.x+e.x)/2,(t.y+e.y)/2,(t.z+e.z)/2)},i.crossProduct=function(t,e){var n=new i;return n.x=t.y*e.z-t.z*e.y,n.y=t.z*e.x-t.x*e.z,n.z=t.x*e.y-t.y*e.x,n},i.prototype.length=function(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z)},t.exports=i},function(t,e){function i(t,e){this.x=void 0!==t?t:0,this.y=void 0!==e?e:0}t.exports=i},function(t,e,i){function n(){this.armLocation=new r,this.armRotation={},this.armRotation.horizontal=0,this.armRotation.vertical=0,this.armLength=1.7,this.cameraLocation=new r,this.cameraRotation=new r(.5*Math.PI,0,0),this.calculateCameraOrientation()}var r=i(13);n.prototype.setArmLocation=function(t,e,i){this.armLocation.x=t,this.armLocation.y=e,this.armLocation.z=i,this.calculateCameraOrientation()},n.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()},n.prototype.getArmRotation=function(){var t={};return t.horizontal=this.armRotation.horizontal,t.vertical=this.armRotation.vertical,t},n.prototype.setArmLength=function(t){void 0!==t&&(this.armLength=t,this.armLength<.71&&(this.armLength=.71),this.armLength>5&&(this.armLength=5),this.calculateCameraOrientation())},n.prototype.getArmLength=function(){return this.armLength},n.prototype.getCameraLocation=function(){return this.cameraLocation},n.prototype.getCameraRotation=function(){return this.cameraRotation},n.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=n},function(t,e,i){function n(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 r=i(10);n.prototype.isLoaded=function(){return this.loaded},n.prototype.getLoadedProgress=function(){for(var t=this.values.length,e=0;this.dataPoints[e];)e++;return Math.round(e/t*100)},n.prototype.getLabel=function(){return this.graph.filterLabel},n.prototype.getColumn=function(){return this.column},n.prototype.getSelectedValue=function(){return void 0!==this.index?this.values[this.index]:void 0},n.prototype.getValues=function(){return this.values},n.prototype.getValue=function(t){if(t>=this.values.length)throw"Error: index out of range";return this.values[t]},n.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 n=new r(this.data,{filter:function(t){return t[i.column]==i.value}}).get();e=this.graph._getDataPoints(n),this.dataPoints[t]=e}return e},n.prototype.setOnLoadCallback=function(t){this.onLoadCallback=t},n.prototype.selectValue=function(t){if(t>=this.values.length)throw"Error: index out of range";this.index=t,this.value=this.values[t]},n.prototype.loadInBackground=function(t){void 0===t&&(t=0);var e=this.graph.frame;if(t0&&(t--,this.setIndex(t))},n.prototype.next=function(){var t=this.getIndex();t0?this.setIndex(0):this.index=void 0},n.prototype.setIndex=function(t){if(!(tn&&(n=0),n>this.values.length-1&&(n=this.values.length-1),n},n.prototype.indexToLeft=function(t){var e=parseFloat(this.frame.bar.style.width)-this.frame.slide.clientWidth-10,i=t/(this.values.length-1)*e,n=i+3;return n},n.prototype._onMouseMove=function(t){var e=t.clientX-this.startClientX,i=this.startSlideX+e,n=this.leftToIndex(i);this.setIndex(n),r.preventDefault()},n.prototype._onMouseUp=function(t){this.frame.style.cursor="auto",r.removeEventListener(document,"mousemove",this.onmousemove),r.removeEventListener(document,"mouseup",this.onmouseup),r.preventDefault()},t.exports=n},function(t,e){function i(t,e,i,n){this._start=0,this._end=0,this._step=1,this.prettyStep=!0,this.precision=5,this._current=0,this.setRange(t,e,i,n)}i.prototype.setRange=function(t,e,i,n){this._start=t?t:0,this._end=e?e:0,this.setStep(i,n)},i.prototype.setStep=function(t,e){void 0===t||0>=t||(void 0!==e&&(this.prettyStep=e),this.prettyStep===!0?this._step=i.calculatePrettyStep(t):this._step=t)},i.calculatePrettyStep=function(t){var e=function(t){return Math.log(t)/Math.LN10},i=Math.pow(10,Math.round(e(t))),n=2*Math.pow(10,Math.round(e(t/2))),r=5*Math.pow(10,Math.round(e(t/5))),s=i;return Math.abs(n-t)<=Math.abs(s-t)&&(s=n),Math.abs(r-t)<=Math.abs(s-t)&&(s=r),0>=s&&(s=1),s},i.prototype.getCurrent=function(){return parseFloat(this._current.toPrecision(this.precision))},i.prototype.getStep=function(){return this._step},i.prototype.start=function(){this._current=this._start-this._start%this._step},i.prototype.next=function(){this._current+=this._step},i.prototype.end=function(){return this._current>this._end},t.exports=i},function(t,e,i){if("undefined"!=typeof window){var n=i(20),r=window.Hammer||i(21);t.exports=n(r,{preventDefault:"mouse"})}else t.exports=function(){throw Error("hammer.js is only available in a browser, not in node.js.")}},function(t,e,i){var n,r,s;!function(i){r=[],n=i,s="function"==typeof n?n.apply(e,r):n,!(void 0!==s&&(t.exports=s))}(function(){var t=null;return function e(i,n){function r(t){return t.match(/[^ ]+/g)}function s(e){if("hammer.input"!==e.type){if(e.srcEvent._handled||(e.srcEvent._handled={}),e.srcEvent._handled[e.type])return;e.srcEvent._handled[e.type]=!0}var i=!1;e.stopPropagation=function(){i=!0};var n=e.srcEvent.stopPropagation.bind(e.srcEvent);"function"==typeof n&&(e.srcEvent.stopPropagation=function(){n(),e.stopPropagation()}),e.firstTarget=t;for(var r=t;r&&!i;){var s=r.hammer;if(s)for(var o,a=0;a0?l._handlers[t]=n:(i.off(t,s),delete l._handlers[t]))}),l},l.emit=function(e,n){t=n.target,i.emit(e,n)},l.destroy=function(){var t=i.element.hammer,e=t.indexOf(l);-1!==e&&t.splice(e,1),t.length||delete i.element.hammer,l._handlers={},i.destroy()},l}})},function(t,e,i){var n;/*! Hammer.JS - v2.0.6 - 2015-12-23 + * http://hammerjs.github.io/ + * + * Copyright (c) 2015 Jorik Tangelder; + * Licensed under the license */ +!function(r,s,o,a){function h(t,e,i){return setTimeout(f(t,i),e)}function l(t,e,i){return Array.isArray(t)?(u(t,i[e],i),!0):!1}function u(t,e,i){var n;if(t)if(t.forEach)t.forEach(e,i);else if(t.length!==a)for(n=0;n\s*\(/gm,"{anonymous}()@"):"Unknown Stack Trace",s=r.console&&(r.console.warn||r.console.log);return s&&s.call(r.console,n,i),t.apply(this,arguments)}}function d(t,e,i){var n,r=e.prototype;n=t.prototype=Object.create(r),n.constructor=t,n._super=r,i&&ct(n,i)}function f(t,e){return function(){return t.apply(e,arguments)}}function p(t,e){return typeof t==pt?t.apply(e?e[0]||a:a,e):t}function m(t,e){return t===a?e:t}function v(t,e,i){u(x(e),function(e){t.addEventListener(e,i,!1)})}function y(t,e,i){u(x(e),function(e){t.removeEventListener(e,i,!1)})}function g(t,e){for(;t;){if(t==e)return!0;t=t.parentNode}return!1}function _(t,e){return t.indexOf(e)>-1}function x(t){return t.trim().split(/\s+/g)}function b(t,e,i){if(t.indexOf&&!i)return t.indexOf(e);for(var n=0;ni[e]}):n.sort()),n}function S(t,e){for(var i,n,r=e[0].toUpperCase()+e.slice(1),s=0;s1&&!i.firstMultiple?i.firstMultiple=L(e):1===r&&(i.firstMultiple=!1);var s=i.firstInput,o=i.firstMultiple,a=o?o.center:s.center,h=e.center=A(n);e.timeStamp=yt(),e.deltaTime=e.timeStamp-s.timeStamp,e.angle=W(a,h),e.distance=R(a,h),P(i,e),e.offsetDirection=z(e.deltaX,e.deltaY);var l=I(e.deltaTime,e.deltaX,e.deltaY);e.overallVelocityX=l.x,e.overallVelocityY=l.y,e.overallVelocity=vt(l.x)>vt(l.y)?l.x:l.y,e.scale=o?F(o.pointers,n):1,e.rotation=o?N(o.pointers,n):0,e.maxPointers=i.prevInput?e.pointers.length>i.prevInput.maxPointers?e.pointers.length:i.prevInput.maxPointers:e.pointers.length,Y(i,e);var u=t.element;g(e.srcEvent.target,u)&&(u=e.srcEvent.target),e.target=u}function P(t,e){var i=e.center,n=t.offsetDelta||{},r=t.prevDelta||{},s=t.prevInput||{};e.eventType!==Ot&&s.eventType!==Yt||(r=t.prevDelta={x:s.deltaX||0,y:s.deltaY||0},n=t.offsetDelta={x:i.x,y:i.y}),e.deltaX=r.x+(i.x-n.x),e.deltaY=r.y+(i.y-n.y)}function Y(t,e){var i,n,r,s,o=t.lastInterval||e,h=e.timeStamp-o.timeStamp;if(e.eventType!=Lt&&(h>Et||o.velocity===a)){var l=e.deltaX-o.deltaX,u=e.deltaY-o.deltaY,c=I(h,l,u);n=c.x,r=c.y,i=vt(c.x)>vt(c.y)?c.x:c.y,s=z(l,u),t.lastInterval=e}else i=o.velocity,n=o.velocityX,r=o.velocityY,s=o.direction;e.velocity=i,e.velocityX=n,e.velocityY=r,e.direction=s}function L(t){for(var e=[],i=0;ir;)i+=t[r].clientX,n+=t[r].clientY,r++;return{x:mt(i/e),y:mt(n/e)}}function I(t,e,i){return{x:e/t||0,y:i/t||0}}function z(t,e){return t===e?At:vt(t)>=vt(e)?0>t?It:zt:0>e?Rt:Wt}function R(t,e,i){i||(i=Bt);var n=e[i[0]]-t[i[0]],r=e[i[1]]-t[i[1]];return Math.sqrt(n*n+r*r)}function W(t,e,i){i||(i=Bt);var n=e[i[0]]-t[i[0]],r=e[i[1]]-t[i[1]];return 180*Math.atan2(r,n)/Math.PI}function N(t,e){return W(e[1],e[0],Ut)+W(t[1],t[0],Ut)}function F(t,e){return R(e[0],e[1],Ut)/R(t[0],t[1],Ut)}function V(){this.evEl=jt,this.evWin=Gt,this.allow=!0,this.pressed=!1,C.apply(this,arguments)}function B(){this.evEl=qt,this.evWin=$t,C.apply(this,arguments),this.store=this.manager.session.pointerEvents=[]}function U(){this.evTarget=Jt,this.evWin=Kt,this.started=!1,C.apply(this,arguments)}function H(t,e){var i=w(t.touches),n=w(t.changedTouches);return e&(Yt|Lt)&&(i=M(i.concat(n),"identifier",!0)),[i,n]}function j(){this.evTarget=ee,this.targetIds={},C.apply(this,arguments)}function G(t,e){var i=w(t.touches),n=this.targetIds;if(e&(Ot|Pt)&&1===i.length)return n[i[0].identifier]=!0,[i,i];var r,s,o=w(t.changedTouches),a=[],h=this.target;if(s=i.filter(function(t){return g(t.target,h)}),e===Ot)for(r=0;ra&&(e.push(t),a=e.length-1):r&(Yt|Lt)&&(i=!0),0>a||(e[a]=t,this.callback(this.manager,r,{pointers:e,changedPointers:[t],pointerType:s,srcEvent:t}),i&&e.splice(a,1))}});var Qt={touchstart:Ot,touchmove:Pt,touchend:Yt,touchcancel:Lt},Jt="touchstart",Kt="touchstart touchmove touchend touchcancel";d(U,C,{handler:function(t){var e=Qt[t.type];if(e===Ot&&(this.started=!0),this.started){var i=H.call(this,t,e);e&(Yt|Lt)&&i[0].length-i[1].length===0&&(this.started=!1),this.callback(this.manager,e,{pointers:i[0],changedPointers:i[1],pointerType:Tt,srcEvent:t})}}});var te={touchstart:Ot,touchmove:Pt,touchend:Yt,touchcancel:Lt},ee="touchstart touchmove touchend touchcancel";d(j,C,{handler:function(t){var e=te[t.type],i=G.call(this,t,e);i&&this.callback(this.manager,e,{pointers:i[0],changedPointers:i[1],pointerType:Tt,srcEvent:t})}}),d(X,C,{handler:function(t,e,i){var n=i.pointerType==Tt,r=i.pointerType==Ct;if(n)this.mouse.allow=!1;else if(r&&!this.mouse.allow)return;e&(Yt|Lt)&&(this.mouse.allow=!0),this.callback(t,e,i)},destroy:function(){this.touch.destroy(),this.mouse.destroy()}});var ie=S(ft.style,"touchAction"),ne=ie!==a,re="compute",se="auto",oe="manipulation",ae="none",he="pan-x",le="pan-y";Z.prototype={set:function(t){t==re&&(t=this.compute()),ne&&this.manager.element.style&&(this.manager.element.style[ie]=t),this.actions=t.toLowerCase().trim()},update:function(){this.set(this.manager.options.touchAction)},compute:function(){var t=[];return u(this.manager.recognizers,function(e){p(e.options.enable,[e])&&(t=t.concat(e.getTouchAction()))}),q(t.join(" "))},preventDefaults:function(t){if(!ne){var e=t.srcEvent,i=t.offsetDirection;if(this.manager.session.prevented)return void e.preventDefault();var n=this.actions,r=_(n,ae),s=_(n,le),o=_(n,he);if(r){var a=1===t.pointers.length,h=t.distance<2,l=t.deltaTime<250;if(a&&h&&l)return}if(!o||!s)return r||s&&i&Nt||o&&i&Ft?this.preventSrc(e):void 0}},preventSrc:function(t){this.manager.session.prevented=!0,t.preventDefault()}};var ue=1,ce=2,de=4,fe=8,pe=fe,me=16,ve=32;$.prototype={defaults:{},set:function(t){return ct(this.options,t),this.manager&&this.manager.touchAction.update(),this},recognizeWith:function(t){if(l(t,"recognizeWith",this))return this;var e=this.simultaneous;return t=K(t,this),e[t.id]||(e[t.id]=t,t.recognizeWith(this)),this},dropRecognizeWith:function(t){return l(t,"dropRecognizeWith",this)?this:(t=K(t,this),delete this.simultaneous[t.id],this)},requireFailure:function(t){if(l(t,"requireFailure",this))return this;var e=this.requireFail;return t=K(t,this),-1===b(e,t)&&(e.push(t),t.requireFailure(this)),this},dropRequireFailure:function(t){if(l(t,"dropRequireFailure",this))return this;t=K(t,this);var e=b(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(e,t)}var i=this,n=this.state;fe>n&&e(i.options.event+Q(n)),e(i.options.event),t.additionalEvent&&e(t.additionalEvent),n>=fe&&e(i.options.event+Q(n))},tryEmit:function(t){return this.canEmit()?this.emit(t):void(this.state=ve)},canEmit:function(){for(var t=0;ts?It:zt,i=s!=this.pX,n=Math.abs(t.deltaX)):(r=0===o?At:0>o?Rt:Wt,i=o!=this.pY,n=Math.abs(t.deltaY))),t.direction=r,i&&n>e.threshold&&r&e.direction},attrTest:function(t){return tt.prototype.attrTest.call(this,t)&&(this.state&ce||!(this.state&ce)&&this.directionTest(t))},emit:function(t){this.pX=t.deltaX,this.pY=t.deltaY;var e=J(t.direction);e&&(t.additionalEvent=this.options.event+e),this._super.emit.call(this,t)}}),d(it,tt,{defaults:{event:"pinch",threshold:0,pointers:2},getTouchAction:function(){return[ae]},attrTest:function(t){return this._super.attrTest.call(this,t)&&(Math.abs(t.scale-1)>this.options.threshold||this.state&ce)},emit:function(t){if(1!==t.scale){var e=t.scale<1?"in":"out";t.additionalEvent=this.options.event+e}this._super.emit.call(this,t)}}),d(nt,$,{defaults:{event:"press",pointers:1,time:251,threshold:9},getTouchAction:function(){return[se]},process:function(t){var e=this.options,i=t.pointers.length===e.pointers,n=t.distancee.time;if(this._input=t,!n||!i||t.eventType&(Yt|Lt)&&!r)this.reset();else if(t.eventType&Ot)this.reset(),this._timer=h(function(){this.state=pe,this.tryEmit()},e.time,this);else if(t.eventType&Yt)return pe;return ve},reset:function(){clearTimeout(this._timer)},emit:function(t){this.state===pe&&(t&&t.eventType&Yt?this.manager.emit(this.options.event+"up",t):(this._input.timeStamp=yt(),this.manager.emit(this.options.event,this._input)))}}),d(rt,tt,{defaults:{event:"rotate",threshold:0,pointers:2},getTouchAction:function(){return[ae]},attrTest:function(t){return this._super.attrTest.call(this,t)&&(Math.abs(t.rotation)>this.options.threshold||this.state&ce)}}),d(st,tt,{defaults:{event:"swipe",threshold:10,velocity:.3,direction:Nt|Ft,pointers:1},getTouchAction:function(){return et.prototype.getTouchAction.call(this)},attrTest:function(t){var e,i=this.options.direction;return i&(Nt|Ft)?e=t.overallVelocity:i&Nt?e=t.overallVelocityX:i&Ft&&(e=t.overallVelocityY),this._super.attrTest.call(this,t)&&i&t.offsetDirection&&t.distance>this.options.threshold&&t.maxPointers==this.options.pointers&&vt(e)>this.options.velocity&&t.eventType&Yt},emit:function(t){var e=J(t.offsetDirection);e&&this.manager.emit(this.options.event+e,t),this.manager.emit(this.options.event,t)}}),d(ot,$,{defaults:{event:"tap",pointers:1,taps:1,interval:300,time:250,threshold:9,posThreshold:10},getTouchAction:function(){return[oe]},process:function(t){var e=this.options,i=t.pointers.length===e.pointers,n=t.distance=e;e++)o[String.fromCharCode(e)]={code:65+(e-97),shift:!1};for(e=65;90>=e;e++)o[String.fromCharCode(e)]={code:e,shift:!0};for(e=0;9>=e;e++)o[""+e]={code:48+e,shift:!1};for(e=1;12>=e;e++)o["F"+e]={code:111+e,shift:!1};for(e=0;9>=e;e++)o["num"+e]={code:96+e,shift:!1};o["num*"]={code:106,shift:!1},o["num+"]={code:107,shift:!1},o["num-"]={code:109,shift:!1},o["num/"]={code:111,shift:!1},o["num."]={code:110,shift:!1},o.left={code:37,shift:!1},o.up={code:38,shift:!1},o.right={code:39,shift:!1},o.down={code:40,shift:!1},o.space={code:32,shift:!1},o.enter={code:13,shift:!1},o.shift={code:16,shift:void 0},o.esc={code:27,shift:!1},o.backspace={code:8,shift:!1},o.tab={code:9,shift:!1},o.ctrl={code:17,shift:!1},o.alt={code:18,shift:!1},o["delete"]={code:46,shift:!1},o.pageup={code:33,shift:!1},o.pagedown={code:34,shift:!1},o["="]={code:187,shift:!1},o["-"]={code:189,shift:!1},o["]"]={code:221,shift:!1},o["["]={code:219,shift:!1};var a=function(t){l(t,"keydown")},h=function(t){l(t,"keyup")},l=function(t,e){if(void 0!==s[e][t.keyCode]){for(var n=s[e][t.keyCode],r=0;ri;i++)if(e[i]!=t[i])return!1;return!0},t.convert=function(e,i){var o;if(void 0!==e){if(null===e)return null;if(!i)return e;if("string"!=typeof i&&!(i instanceof String))throw new Error("Type must be a string");switch(i){case"boolean":case"Boolean":return Boolean(e);case"number":case"Number":return Number(e.valueOf());case"string":case"String":return String(e);case"Date":if(t.isNumber(e))return new Date(e);if(e instanceof Date)return new Date(e.valueOf());if(n.isMoment(e))return new Date(e.valueOf());if(t.isString(e))return o=r.exec(e),o?new Date(Number(o[1])):n(e).toDate();throw new Error("Cannot convert object of type "+t.getType(e)+" to type Date");case"Moment":if(t.isNumber(e))return n(e);if(e instanceof Date)return n(e.valueOf());if(n.isMoment(e))return n(e);if(t.isString(e))return o=r.exec(e),n(o?Number(o[1]):e);throw new Error("Cannot convert object of type "+t.getType(e)+" to type Date");case"ISODate":if(t.isNumber(e))return new Date(e);if(e instanceof Date)return e.toISOString();if(n.isMoment(e))return e.toDate().toISOString();if(t.isString(e))return o=r.exec(e),o?new Date(Number(o[1])).toISOString():new Date(e).toISOString();throw new Error("Cannot convert object of type "+t.getType(e)+" to type ISODate");case"ASPDate":if(t.isNumber(e))return"/Date("+e+")/";if(e instanceof Date)return"/Date("+e.valueOf()+")/";if(t.isString(e)){o=r.exec(e);var s;return s=o?new Date(Number(o[1])).valueOf():new Date(e).valueOf(),"/Date("+s+")/"}throw new Error("Cannot convert object of type "+t.getType(e)+" to type ASPDate");default:throw new Error('Unknown type "'+i+'"')}}};var r=/^\/?Date\((\-?\d+)/i;t.getType=function(e){var t="undefined"==typeof e?"undefined":o(e);return"object"==t?null===e?"null":e instanceof Boolean?"Boolean":e instanceof Number?"Number":e instanceof String?"String":Array.isArray(e)?"Array":e instanceof Date?"Date":"Object":"number"==t?"Number":"boolean"==t?"Boolean":"string"==t?"String":void 0===t?"undefined":t},t.copyAndExtendArray=function(e,t){for(var i=[],o=0;oi;i++)t(e[i],i,e);else for(i in e)e.hasOwnProperty(i)&&t(e[i],i,e)},t.toArray=function(e){var t=[];for(var i in e)e.hasOwnProperty(i)&&t.push(e[i]);return t},t.updateProperty=function(e,t,i){return e[t]!==i?(e[t]=i,!0):!1},t.throttle=function(e,t){var i=null,o=!1;return function n(){i?o=!0:(o=!1,e(),i=setTimeout(function(){i=null,o&&n()},t))}},t.addEventListener=function(e,t,i,o){e.addEventListener?(void 0===o&&(o=!1),"mousewheel"===t&&navigator.userAgent.indexOf("Firefox")>=0&&(t="DOMMouseScroll"),e.addEventListener(t,i,o)):e.attachEvent("on"+t,i)},t.removeEventListener=function(e,t,i,o){e.removeEventListener?(void 0===o&&(o=!1),"mousewheel"===t&&navigator.userAgent.indexOf("Firefox")>=0&&(t="DOMMouseScroll"),e.removeEventListener(t,i,o)):e.detachEvent("on"+t,i)},t.preventDefault=function(e){e||(e=window.event),e.preventDefault?e.preventDefault():e.returnValue=!1},t.getTarget=function(e){e||(e=window.event);var t;return e.target?t=e.target:e.srcElement&&(t=e.srcElement),void 0!=t.nodeType&&3==t.nodeType&&(t=t.parentNode),t},t.hasParent=function(e,t){for(var i=e;i;){if(i===t)return!0;i=i.parentNode}return!1},t.option={},t.option.asBoolean=function(e,t){return"function"==typeof e&&(e=e()),null!=e?0!=e:t||null},t.option.asNumber=function(e,t){return"function"==typeof e&&(e=e()),null!=e?Number(e)||t||null:t||null},t.option.asString=function(e,t){return"function"==typeof e&&(e=e()),null!=e?String(e):t||null},t.option.asSize=function(e,i){return"function"==typeof e&&(e=e()),t.isString(e)?e:t.isNumber(e)?e+"px":i||null},t.option.asElement=function(e,t){return"function"==typeof e&&(e=e()),e||t||null},t.hexToRGB=function(e){var t=/^#?([a-f\d])([a-f\d])([a-f\d])$/i;e=e.replace(t,function(e,t,i,o){return t+t+i+i+o+o});var i=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(e);return i?{r:parseInt(i[1],16),g:parseInt(i[2],16),b:parseInt(i[3],16)}:null},t.overrideOpacity=function(e,i){if(-1!=e.indexOf("rgba"))return e;if(-1!=e.indexOf("rgb")){var o=e.substr(e.indexOf("(")+1).replace(")","").split(",");return"rgba("+o[0]+","+o[1]+","+o[2]+","+i+")"}var o=t.hexToRGB(e);return null==o?e:"rgba("+o.r+","+o.g+","+o.b+","+i+")"},t.RGBToHex=function(e,t,i){return"#"+((1<<24)+(e<<16)+(t<<8)+i).toString(16).slice(1)},t.parseColor=function(e){var i;if(t.isString(e)===!0){if(t.isValidRGB(e)===!0){var o=e.substr(4).substr(0,e.length-5).split(",").map(function(e){return parseInt(e)});e=t.RGBToHex(o[0],o[1],o[2])}if(t.isValidHex(e)===!0){var n=t.hexToHSV(e),s={h:n.h,s:.8*n.s,v:Math.min(1,1.02*n.v)},r={h:n.h,s:Math.min(1,1.25*n.s),v:.8*n.v},a=t.HSVToHex(r.h,r.s,r.v),h=t.HSVToHex(s.h,s.s,s.v);i={background:e,border:a,highlight:{background:h,border:a},hover:{background:h,border:a}}}else i={background:e,border:e,highlight:{background:e,border:e},hover:{background:e,border:e}}}else i={},i.background=e.background||void 0,i.border=e.border||void 0,t.isString(e.highlight)?i.highlight={border:e.highlight,background:e.highlight}:(i.highlight={},i.highlight.background=e.highlight&&e.highlight.background||void 0,i.highlight.border=e.highlight&&e.highlight.border||void 0),t.isString(e.hover)?i.hover={border:e.hover,background:e.hover}:(i.hover={},i.hover.background=e.hover&&e.hover.background||void 0,i.hover.border=e.hover&&e.hover.border||void 0);return i},t.RGBToHSV=function(e,t,i){e/=255,t/=255,i/=255;var o=Math.min(e,Math.min(t,i)),n=Math.max(e,Math.max(t,i));if(o==n)return{h:0,s:0,v:o};var s=e==o?t-i:i==o?e-t:i-e,r=e==o?3:i==o?1:5,a=60*(r-s/(n-o))/360,h=(n-o)/n,d=n;return{h:a,s:h,v:d}};var a={split:function(e){var t={};return e.split(";").forEach(function(e){if(""!=e.trim()){var i=e.split(":"),o=i[0].trim(),n=i[1].trim();t[o]=n}}),t},join:function(e){return Object.keys(e).map(function(t){return t+": "+e[t]}).join("; ")}};t.addCssText=function(e,i){var o=a.split(e.style.cssText),n=a.split(i),s=t.extend(o,n);e.style.cssText=a.join(s)},t.removeCssText=function(e,t){var i=a.split(e.style.cssText),o=a.split(t);for(var n in o)o.hasOwnProperty(n)&&delete i[n];e.style.cssText=a.join(i)},t.HSVToRGB=function(e,t,i){var o,n,s,r=Math.floor(6*e),a=6*e-r,h=i*(1-t),d=i*(1-a*t),l=i*(1-(1-a)*t);switch(r%6){case 0:o=i,n=l,s=h;break;case 1:o=d,n=i,s=h;break;case 2:o=h,n=i,s=l;break;case 3:o=h,n=d,s=i;break;case 4:o=l,n=h,s=i;break;case 5:o=i,n=h,s=d}return{r:Math.floor(255*o),g:Math.floor(255*n),b:Math.floor(255*s)}},t.HSVToHex=function(e,i,o){var n=t.HSVToRGB(e,i,o);return t.RGBToHex(n.r,n.g,n.b)},t.hexToHSV=function(e){var i=t.hexToRGB(e);return t.RGBToHSV(i.r,i.g,i.b)},t.isValidHex=function(e){var t=/(^#[0-9A-F]{6}$)|(^#[0-9A-F]{3}$)/i.test(e);return t},t.isValidRGB=function(e){e=e.replace(" ","");var t=/rgb\((\d{1,3}),(\d{1,3}),(\d{1,3})\)/i.test(e);return t},t.isValidRGBA=function(e){e=e.replace(" ","");var t=/rgba\((\d{1,3}),(\d{1,3}),(\d{1,3}),(.{1,3})\)/i.test(e);return t},t.selectiveBridgeObject=function(e,i){if("object"==("undefined"==typeof i?"undefined":o(i))){for(var n=Object.create(i),s=0;s0&&t(o,e[n-1])<0;n--)e[n]=e[n-1];e[n]=o}return e},t.mergeOptions=function(e,t,i){var o=(arguments.length<=3||void 0===arguments[3]?!1:arguments[3],arguments.length<=4||void 0===arguments[4]?{}:arguments[4]);if(null===t[i])e[i]=Object.create(o[i]);else if(void 0!==t[i])if("boolean"==typeof t[i])e[i].enabled=t[i];else{void 0===t[i].enabled&&(e[i].enabled=!0);for(var n in t[i])t[i].hasOwnProperty(n)&&(e[i][n]=t[i][n])}},t.binarySearchCustom=function(e,t,i,o){for(var n=1e4,s=0,r=0,a=e.length-1;a>=r&&n>s;){var h=Math.floor((r+a)/2),d=e[h],l=void 0===o?d[i]:d[i][o],c=t(l);if(0==c)return h;-1==c?r=h+1:a=h-1,s++}return-1},t.binarySearchValue=function(e,t,i,o,n){for(var s,r,a,h,d=1e4,l=0,c=0,u=e.length-1,n=void 0!=n?n:function(e,t){return e==t?0:t>e?-1:1};u>=c&&d>l;){if(h=Math.floor(.5*(u+c)),s=e[Math.max(0,h-1)][i],r=e[h][i],a=e[Math.min(e.length-1,h+1)][i],0==n(r,t))return h;if(n(s,t)<0&&n(r,t)>0)return"before"==o?Math.max(0,h-1):h;if(n(r,t)<0&&n(a,t)>0)return"before"==o?h:Math.min(e.length-1,h+1);n(r,t)<0?c=h+1:u=h-1,l++}return-1},t.easingFunctions={linear:function(e){return e},easeInQuad:function(e){return e*e},easeOutQuad:function(e){return e*(2-e)},easeInOutQuad:function(e){return.5>e?2*e*e:-1+(4-2*e)*e},easeInCubic:function(e){return e*e*e},easeOutCubic:function(e){return--e*e*e+1},easeInOutCubic:function(e){return.5>e?4*e*e*e:(e-1)*(2*e-2)*(2*e-2)+1},easeInQuart:function(e){return e*e*e*e},easeOutQuart:function(e){return 1- --e*e*e*e},easeInOutQuart:function(e){return.5>e?8*e*e*e*e:1-8*--e*e*e*e},easeInQuint:function(e){return e*e*e*e*e},easeOutQuint:function(e){return 1+--e*e*e*e*e},easeInOutQuint:function(e){return.5>e?16*e*e*e*e*e:1+16*--e*e*e*e*e}}},function(e,t,i){e.exports="undefined"!=typeof window&&window.moment||i(3)},function(e,t,i){(function(e){!function(t,i){e.exports=i()}(this,function(){function t(){return $i.apply(null,arguments)}function i(e){$i=e}function o(e){return e instanceof Array||"[object Array]"===Object.prototype.toString.call(e)}function n(e){return e instanceof Date||"[object Date]"===Object.prototype.toString.call(e)}function s(e,t){var i,o=[];for(i=0;i0)for(i in Ji)o=Ji[i],n=t[o],f(n)||(e[o]=n);return e}function v(e){p(this,e),this._d=new Date(null!=e._d?e._d.getTime():NaN),eo===!1&&(eo=!0,t.updateOffset(this),eo=!1)}function y(e){return e instanceof v||null!=e&&null!=e._isAMomentObject}function g(e){return 0>e?Math.ceil(e):Math.floor(e)}function b(e){var t=+e,i=0;return 0!==t&&isFinite(t)&&(i=g(t)),i}function m(e,t,i){var o,n=Math.min(e.length,t.length),s=Math.abs(e.length-t.length),r=0;for(o=0;n>o;o++)(i&&e[o]!==t[o]||!i&&b(e[o])!==b(t[o]))&&r++;return r+s}function _(e){t.suppressDeprecationWarnings===!1&&"undefined"!=typeof console&&console.warn&&console.warn("Deprecation warning: "+e)}function w(e,t){var i=!0;return a(function(){return i&&(_(e+"\nArguments: "+Array.prototype.slice.call(arguments).join(", ")+"\n"+(new Error).stack),i=!1),t.apply(this,arguments)},t)}function k(e,t){to[e]||(_(t),to[e]=!0)}function x(e){return e instanceof Function||"[object Function]"===Object.prototype.toString.call(e)}function O(e){return"[object Object]"===Object.prototype.toString.call(e)}function E(e){var t,i;for(i in e)t=e[i],x(t)?this[i]=t:this["_"+i]=t;this._config=e,this._ordinalParseLenient=new RegExp(this._ordinalParse.source+"|"+/\d{1,2}/.source)}function M(e,t){var i,o=a({},e);for(i in t)r(t,i)&&(O(e[i])&&O(t[i])?(o[i]={},a(o[i],e[i]),a(o[i],t[i])):null!=t[i]?o[i]=t[i]:delete o[i]);return o}function D(e){null!=e&&this.set(e)}function S(e){return e?e.toLowerCase().replace("_","-"):e}function C(e){for(var t,i,o,n,s=0;s0;){if(o=T(n.slice(0,t).join("-")))return o;if(i&&i.length>=t&&m(n,i,!0)>=t-1)break;t--}s++}return null}function T(t){var i=null;if(!oo[t]&&"undefined"!=typeof e&&e&&e.exports)try{i=io._abbr,!function(){var e=new Error('Cannot find module "./locale"');throw e.code="MODULE_NOT_FOUND",e}(),P(i)}catch(o){}return oo[t]}function P(e,t){var i;return e&&(i=f(t)?I(e):B(e,t),i&&(io=i)),io._abbr}function B(e,t){return null!==t?(t.abbr=e,null!=oo[e]?(k("defineLocaleOverride","use moment.updateLocale(localeName, config) to change an existing locale. moment.defineLocale(localeName, config) should only be used for creating a new locale"),t=M(oo[e]._config,t)):null!=t.parentLocale&&(null!=oo[t.parentLocale]?t=M(oo[t.parentLocale]._config,t):k("parentLocaleUndefined","specified parentLocale is not defined yet")),oo[e]=new D(t),P(e),oo[e]):(delete oo[e],null)}function F(e,t){if(null!=t){var i;null!=oo[e]&&(t=M(oo[e]._config,t)),i=new D(t),i.parentLocale=oo[e],oo[e]=i,P(e)}else null!=oo[e]&&(null!=oo[e].parentLocale?oo[e]=oo[e].parentLocale:null!=oo[e]&&delete oo[e]);return oo[e]}function I(e){var t;if(e&&e._locale&&e._locale._abbr&&(e=e._locale._abbr),!e)return io;if(!o(e)){if(t=T(e))return t;e=[e]}return C(e)}function j(){return Object.keys(oo)}function N(e,t){var i=e.toLowerCase();no[i]=no[i+"s"]=no[t]=e}function z(e){return"string"==typeof e?no[e]||no[e.toLowerCase()]:void 0}function R(e){var t,i,o={};for(i in e)r(e,i)&&(t=z(i),t&&(o[t]=e[i]));return o}function A(e,i){return function(o){return null!=o?(L(this,e,o),t.updateOffset(this,i),this):H(this,e)}}function H(e,t){return e.isValid()?e._d["get"+(e._isUTC?"UTC":"")+t]():NaN}function L(e,t,i){e.isValid()&&e._d["set"+(e._isUTC?"UTC":"")+t](i)}function W(e,t){var i;if("object"==typeof e)for(i in e)this.set(i,e[i]);else if(e=z(e),x(this[e]))return this[e](t);return this}function Y(e,t,i){var o=""+Math.abs(e),n=t-o.length,s=e>=0;return(s?i?"+":"":"-")+Math.pow(10,Math.max(0,n)).toString().substr(1)+o}function U(e,t,i,o){var n=o;"string"==typeof o&&(n=function(){return this[o]()}),e&&(ho[e]=n),t&&(ho[t[0]]=function(){return Y(n.apply(this,arguments),t[1],t[2])}),i&&(ho[i]=function(){return this.localeData().ordinal(n.apply(this,arguments),e)})}function V(e){return e.match(/\[[\s\S]/)?e.replace(/^\[|\]$/g,""):e.replace(/\\/g,"")}function q(e){var t,i,o=e.match(so);for(t=0,i=o.length;i>t;t++)ho[o[t]]?o[t]=ho[o[t]]:o[t]=V(o[t]);return function(n){var s="";for(t=0;i>t;t++)s+=o[t]instanceof Function?o[t].call(n,e):o[t];return s}}function G(e,t){return e.isValid()?(t=X(t,e.localeData()),ao[t]=ao[t]||q(t),ao[t](e)):e.localeData().invalidDate()}function X(e,t){function i(e){return t.longDateFormat(e)||e}var o=5;for(ro.lastIndex=0;o>=0&&ro.test(e);)e=e.replace(ro,i),ro.lastIndex=0,o-=1;return e}function K(e,t,i){Do[e]=x(t)?t:function(e,o){return e&&i?i:t}}function Z(e,t){return r(Do,e)?Do[e](t._strict,t._locale):new RegExp(Q(e))}function Q(e){return $(e.replace("\\","").replace(/\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g,function(e,t,i,o,n){return t||i||o||n}))}function $(e){return e.replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&")}function J(e,t){var i,o=t;for("string"==typeof e&&(e=[e]),"number"==typeof t&&(o=function(e,i){i[t]=b(e)}),i=0;io;o++){if(n=h([2e3,o]),i&&!this._longMonthsParse[o]&&(this._longMonthsParse[o]=new RegExp("^"+this.months(n,"").replace(".","")+"$","i"),this._shortMonthsParse[o]=new RegExp("^"+this.monthsShort(n,"").replace(".","")+"$","i")),i||this._monthsParse[o]||(s="^"+this.months(n,"")+"|^"+this.monthsShort(n,""),this._monthsParse[o]=new RegExp(s.replace(".",""),"i")),i&&"MMMM"===t&&this._longMonthsParse[o].test(e))return o;if(i&&"MMM"===t&&this._shortMonthsParse[o].test(e))return o;if(!i&&this._monthsParse[o].test(e))return o}}function re(e,t){var i;if(!e.isValid())return e;if("string"==typeof t)if(/^\d+$/.test(t))t=b(t);else if(t=e.localeData().monthsParse(t),"number"!=typeof t)return e;return i=Math.min(e.date(),ie(e.year(),t)),e._d["set"+(e._isUTC?"UTC":"")+"Month"](t,i),e}function ae(e){return null!=e?(re(this,e),t.updateOffset(this,!0),this):H(this,"Month")}function he(){return ie(this.year(),this.month())}function de(e){return this._monthsParseExact?(r(this,"_monthsRegex")||ce.call(this),e?this._monthsShortStrictRegex:this._monthsShortRegex):this._monthsShortStrictRegex&&e?this._monthsShortStrictRegex:this._monthsShortRegex}function le(e){return this._monthsParseExact?(r(this,"_monthsRegex")||ce.call(this),e?this._monthsStrictRegex:this._monthsRegex):this._monthsStrictRegex&&e?this._monthsStrictRegex:this._monthsRegex}function ce(){function e(e,t){return t.length-e.length}var t,i,o=[],n=[],s=[];for(t=0;12>t;t++)i=h([2e3,t]),o.push(this.monthsShort(i,"")),n.push(this.months(i,"")),s.push(this.months(i,"")),s.push(this.monthsShort(i,""));for(o.sort(e),n.sort(e),s.sort(e),t=0;12>t;t++)o[t]=$(o[t]),n[t]=$(n[t]),s[t]=$(s[t]);this._monthsRegex=new RegExp("^("+s.join("|")+")","i"),this._monthsShortRegex=this._monthsRegex,this._monthsStrictRegex=new RegExp("^("+n.join("|")+")$","i"),this._monthsShortStrictRegex=new RegExp("^("+o.join("|")+")$","i")}function ue(e){var t,i=e._a;return i&&-2===l(e).overflow&&(t=i[To]<0||i[To]>11?To:i[Po]<1||i[Po]>ie(i[Co],i[To])?Po:i[Bo]<0||i[Bo]>24||24===i[Bo]&&(0!==i[Fo]||0!==i[Io]||0!==i[jo])?Bo:i[Fo]<0||i[Fo]>59?Fo:i[Io]<0||i[Io]>59?Io:i[jo]<0||i[jo]>999?jo:-1,l(e)._overflowDayOfYear&&(Co>t||t>Po)&&(t=Po),l(e)._overflowWeeks&&-1===t&&(t=No),l(e)._overflowWeekday&&-1===t&&(t=zo),l(e).overflow=t),e}function fe(e){var t,i,o,n,s,r,a=e._i,h=Yo.exec(a)||Uo.exec(a);if(h){for(l(e).iso=!0,t=0,i=qo.length;i>t;t++)if(qo[t][1].exec(h[1])){n=qo[t][0],o=qo[t][2]!==!1;break}if(null==n)return void(e._isValid=!1);if(h[3]){for(t=0,i=Go.length;i>t;t++)if(Go[t][1].exec(h[3])){s=(h[2]||" ")+Go[t][0];break}if(null==s)return void(e._isValid=!1)}if(!o&&null!=s)return void(e._isValid=!1);if(h[4]){if(!Vo.exec(h[4]))return void(e._isValid=!1);r="Z"}e._f=n+(s||"")+(r||""),Se(e)}else e._isValid=!1}function pe(e){var i=Xo.exec(e._i);return null!==i?void(e._d=new Date(+i[1])):(fe(e),void(e._isValid===!1&&(delete e._isValid,t.createFromInputFallback(e))))}function ve(e,t,i,o,n,s,r){var a=new Date(e,t,i,o,n,s,r);return 100>e&&e>=0&&isFinite(a.getFullYear())&&a.setFullYear(e),a}function ye(e){var t=new Date(Date.UTC.apply(null,arguments));return 100>e&&e>=0&&isFinite(t.getUTCFullYear())&&t.setUTCFullYear(e),t}function ge(e){return be(e)?366:365}function be(e){return e%4===0&&e%100!==0||e%400===0}function me(){return be(this.year())}function _e(e,t,i){var o=7+t-i,n=(7+ye(e,0,o).getUTCDay()-t)%7;return-n+o-1}function we(e,t,i,o,n){var s,r,a=(7+i-o)%7,h=_e(e,o,n),d=1+7*(t-1)+a+h;return 0>=d?(s=e-1,r=ge(s)+d):d>ge(e)?(s=e+1,r=d-ge(e)):(s=e,r=d),{year:s,dayOfYear:r}}function ke(e,t,i){var o,n,s=_e(e.year(),t,i),r=Math.floor((e.dayOfYear()-s-1)/7)+1;return 1>r?(n=e.year()-1,o=r+xe(n,t,i)):r>xe(e.year(),t,i)?(o=r-xe(e.year(),t,i),n=e.year()+1):(n=e.year(),o=r),{week:o,year:n}}function xe(e,t,i){var o=_e(e,t,i),n=_e(e+1,t,i);return(ge(e)-o+n)/7}function Oe(e,t,i){return null!=e?e:null!=t?t:i}function Ee(e){var i=new Date(t.now());return e._useUTC?[i.getUTCFullYear(),i.getUTCMonth(),i.getUTCDate()]:[i.getFullYear(),i.getMonth(),i.getDate()]}function Me(e){var t,i,o,n,s=[];if(!e._d){for(o=Ee(e),e._w&&null==e._a[Po]&&null==e._a[To]&&De(e),e._dayOfYear&&(n=Oe(e._a[Co],o[Co]),e._dayOfYear>ge(n)&&(l(e)._overflowDayOfYear=!0),i=ye(n,0,e._dayOfYear),e._a[To]=i.getUTCMonth(),e._a[Po]=i.getUTCDate()),t=0;3>t&&null==e._a[t];++t)e._a[t]=s[t]=o[t];for(;7>t;t++)e._a[t]=s[t]=null==e._a[t]?2===t?1:0:e._a[t];24===e._a[Bo]&&0===e._a[Fo]&&0===e._a[Io]&&0===e._a[jo]&&(e._nextDay=!0,e._a[Bo]=0),e._d=(e._useUTC?ye:ve).apply(null,s),null!=e._tzm&&e._d.setUTCMinutes(e._d.getUTCMinutes()-e._tzm),e._nextDay&&(e._a[Bo]=24)}}function De(e){var t,i,o,n,s,r,a,h;t=e._w,null!=t.GG||null!=t.W||null!=t.E?(s=1,r=4,i=Oe(t.GG,e._a[Co],ke(Ne(),1,4).year),o=Oe(t.W,1),n=Oe(t.E,1),(1>n||n>7)&&(h=!0)):(s=e._locale._week.dow,r=e._locale._week.doy,i=Oe(t.gg,e._a[Co],ke(Ne(),s,r).year),o=Oe(t.w,1),null!=t.d?(n=t.d,(0>n||n>6)&&(h=!0)):null!=t.e?(n=t.e+s,(t.e<0||t.e>6)&&(h=!0)):n=s),1>o||o>xe(i,s,r)?l(e)._overflowWeeks=!0:null!=h?l(e)._overflowWeekday=!0:(a=we(i,o,n,s,r),e._a[Co]=a.year,e._dayOfYear=a.dayOfYear)}function Se(e){if(e._f===t.ISO_8601)return void fe(e);e._a=[],l(e).empty=!0;var i,o,n,s,r,a=""+e._i,h=a.length,d=0;for(n=X(e._f,e._locale).match(so)||[],i=0;i0&&l(e).unusedInput.push(r),a=a.slice(a.indexOf(o)+o.length),d+=o.length),ho[s]?(o?l(e).empty=!1:l(e).unusedTokens.push(s),te(s,o,e)):e._strict&&!o&&l(e).unusedTokens.push(s);l(e).charsLeftOver=h-d,a.length>0&&l(e).unusedInput.push(a),l(e).bigHour===!0&&e._a[Bo]<=12&&e._a[Bo]>0&&(l(e).bigHour=void 0),e._a[Bo]=Ce(e._locale,e._a[Bo],e._meridiem),Me(e),ue(e)}function Ce(e,t,i){var o;return null==i?t:null!=e.meridiemHour?e.meridiemHour(t,i):null!=e.isPM?(o=e.isPM(i),o&&12>t&&(t+=12),o||12!==t||(t=0),t):t}function Te(e){var t,i,o,n,s;if(0===e._f.length)return l(e).invalidFormat=!0,void(e._d=new Date(NaN));for(n=0;ns)&&(o=s,i=t));a(e,i||t)}function Pe(e){if(!e._d){var t=R(e._i);e._a=s([t.year,t.month,t.day||t.date,t.hour,t.minute,t.second,t.millisecond],function(e){return e&&parseInt(e,10)}),Me(e)}}function Be(e){var t=new v(ue(Fe(e)));return t._nextDay&&(t.add(1,"d"),t._nextDay=void 0),t}function Fe(e){var t=e._i,i=e._f;return e._locale=e._locale||I(e._l),null===t||void 0===i&&""===t?u({nullInput:!0}):("string"==typeof t&&(e._i=t=e._locale.preparse(t)),y(t)?new v(ue(t)):(o(i)?Te(e):i?Se(e):n(t)?e._d=t:Ie(e),c(e)||(e._d=null),e))}function Ie(e){var i=e._i;void 0===i?e._d=new Date(t.now()):n(i)?e._d=new Date(+i):"string"==typeof i?pe(e):o(i)?(e._a=s(i.slice(0),function(e){return parseInt(e,10)}),Me(e)):"object"==typeof i?Pe(e):"number"==typeof i?e._d=new Date(i):t.createFromInputFallback(e)}function je(e,t,i,o,n){var s={};return"boolean"==typeof i&&(o=i,i=void 0),s._isAMomentObject=!0,s._useUTC=s._isUTC=n,s._l=i,s._i=e,s._f=t,s._strict=o,Be(s)}function Ne(e,t,i,o){return je(e,t,i,o,!1)}function ze(e,t){var i,n;if(1===t.length&&o(t[0])&&(t=t[0]),!t.length)return Ne();for(i=t[0],n=1;ne&&(e=-e,i="-"),i+Y(~~(e/60),2)+t+Y(~~e%60,2)})}function Ye(e,t){var i=(t||"").match(e)||[],o=i[i.length-1]||[],n=(o+"").match(Jo)||["-",0,0],s=+(60*n[1])+b(n[2]);return"+"===n[0]?s:-s}function Ue(e,i){var o,s;return i._isUTC?(o=i.clone(),s=(y(e)||n(e)?+e:+Ne(e))-+o,o._d.setTime(+o._d+s),t.updateOffset(o,!1),o):Ne(e).local()}function Ve(e){return 15*-Math.round(e._d.getTimezoneOffset()/15)}function qe(e,i){var o,n=this._offset||0;return this.isValid()?null!=e?("string"==typeof e?e=Ye(Oo,e):Math.abs(e)<16&&(e=60*e),!this._isUTC&&i&&(o=Ve(this)),this._offset=e,this._isUTC=!0,null!=o&&this.add(o,"m"),n!==e&&(!i||this._changeInProgress?dt(this,ot(e-n,"m"),1,!1):this._changeInProgress||(this._changeInProgress=!0,t.updateOffset(this,!0),this._changeInProgress=null)),this):this._isUTC?n:Ve(this):null!=e?this:NaN}function Ge(e,t){return null!=e?("string"!=typeof e&&(e=-e),this.utcOffset(e,t),this):-this.utcOffset()}function Xe(e){return this.utcOffset(0,e)}function Ke(e){return this._isUTC&&(this.utcOffset(0,e),this._isUTC=!1,e&&this.subtract(Ve(this),"m")),this}function Ze(){return this._tzm?this.utcOffset(this._tzm):"string"==typeof this._i&&this.utcOffset(Ye(xo,this._i)),this}function Qe(e){return this.isValid()?(e=e?Ne(e).utcOffset():0,(this.utcOffset()-e)%60===0):!1}function $e(){return this.utcOffset()>this.clone().month(0).utcOffset()||this.utcOffset()>this.clone().month(5).utcOffset()}function Je(){if(!f(this._isDSTShifted))return this._isDSTShifted;var e={};if(p(e,this),e=Fe(e),e._a){var t=e._isUTC?h(e._a):Ne(e._a);this._isDSTShifted=this.isValid()&&m(e._a,t.toArray())>0}else this._isDSTShifted=!1;return this._isDSTShifted}function et(){return this.isValid()?!this._isUTC:!1}function tt(){return this.isValid()?this._isUTC:!1}function it(){return this.isValid()?this._isUTC&&0===this._offset:!1}function ot(e,t){var i,o,n,s=e,a=null;return Le(e)?s={ms:e._milliseconds,d:e._days,M:e._months}:"number"==typeof e?(s={},t?s[t]=e:s.milliseconds=e):(a=en.exec(e))?(i="-"===a[1]?-1:1,s={y:0,d:b(a[Po])*i,h:b(a[Bo])*i,m:b(a[Fo])*i,s:b(a[Io])*i,ms:b(a[jo])*i}):(a=tn.exec(e))?(i="-"===a[1]?-1:1,s={y:nt(a[2],i),M:nt(a[3],i),w:nt(a[4],i),d:nt(a[5],i),h:nt(a[6],i),m:nt(a[7],i),s:nt(a[8],i)}):null==s?s={}:"object"==typeof s&&("from"in s||"to"in s)&&(n=rt(Ne(s.from),Ne(s.to)),s={},s.ms=n.milliseconds,s.M=n.months),o=new He(s),Le(e)&&r(e,"_locale")&&(o._locale=e._locale),o}function nt(e,t){var i=e&&parseFloat(e.replace(",","."));return(isNaN(i)?0:i)*t}function st(e,t){var i={milliseconds:0,months:0};return i.months=t.month()-e.month()+12*(t.year()-e.year()),e.clone().add(i.months,"M").isAfter(t)&&--i.months,i.milliseconds=+t-+e.clone().add(i.months,"M"),i}function rt(e,t){var i;return e.isValid()&&t.isValid()?(t=Ue(t,e),e.isBefore(t)?i=st(e,t):(i=st(t,e),i.milliseconds=-i.milliseconds,i.months=-i.months),i):{milliseconds:0,months:0}}function at(e){return 0>e?-1*Math.round(-1*e):Math.round(e)}function ht(e,t){return function(i,o){var n,s;return null===o||isNaN(+o)||(k(t,"moment()."+t+"(period, number) is deprecated. Please use moment()."+t+"(number, period)."),s=i,i=o,o=s),i="string"==typeof i?+i:i,n=ot(i,o),dt(this,n,e),this}}function dt(e,i,o,n){var s=i._milliseconds,r=at(i._days),a=at(i._months);e.isValid()&&(n=null==n?!0:n,s&&e._d.setTime(+e._d+s*o),r&&L(e,"Date",H(e,"Date")+r*o), +a&&re(e,H(e,"Month")+a*o),n&&t.updateOffset(e,r||a))}function lt(e,t){var i=e||Ne(),o=Ue(i,this).startOf("day"),n=this.diff(o,"days",!0),s=-6>n?"sameElse":-1>n?"lastWeek":0>n?"lastDay":1>n?"sameDay":2>n?"nextDay":7>n?"nextWeek":"sameElse",r=t&&(x(t[s])?t[s]():t[s]);return this.format(r||this.localeData().calendar(s,this,Ne(i)))}function ct(){return new v(this)}function ut(e,t){var i=y(e)?e:Ne(e);return this.isValid()&&i.isValid()?(t=z(f(t)?"millisecond":t),"millisecond"===t?+this>+i:+i<+this.clone().startOf(t)):!1}function ft(e,t){var i=y(e)?e:Ne(e);return this.isValid()&&i.isValid()?(t=z(f(t)?"millisecond":t),"millisecond"===t?+i>+this:+this.clone().endOf(t)<+i):!1}function pt(e,t,i){return this.isAfter(e,i)&&this.isBefore(t,i)}function vt(e,t){var i,o=y(e)?e:Ne(e);return this.isValid()&&o.isValid()?(t=z(t||"millisecond"),"millisecond"===t?+this===+o:(i=+o,+this.clone().startOf(t)<=i&&i<=+this.clone().endOf(t))):!1}function yt(e,t){return this.isSame(e,t)||this.isAfter(e,t)}function gt(e,t){return this.isSame(e,t)||this.isBefore(e,t)}function bt(e,t,i){var o,n,s,r;return this.isValid()?(o=Ue(e,this),o.isValid()?(n=6e4*(o.utcOffset()-this.utcOffset()),t=z(t),"year"===t||"month"===t||"quarter"===t?(r=mt(this,o),"quarter"===t?r/=3:"year"===t&&(r/=12)):(s=this-o,r="second"===t?s/1e3:"minute"===t?s/6e4:"hour"===t?s/36e5:"day"===t?(s-n)/864e5:"week"===t?(s-n)/6048e5:s),i?r:g(r)):NaN):NaN}function mt(e,t){var i,o,n=12*(t.year()-e.year())+(t.month()-e.month()),s=e.clone().add(n,"months");return 0>t-s?(i=e.clone().add(n-1,"months"),o=(t-s)/(s-i)):(i=e.clone().add(n+1,"months"),o=(t-s)/(i-s)),-(n+o)}function _t(){return this.clone().locale("en").format("ddd MMM DD YYYY HH:mm:ss [GMT]ZZ")}function wt(){var e=this.clone().utc();return 0s&&(t=s),Gt.call(this,e,t,i,o,n))}function Gt(e,t,i,o,n){var s=we(e,t,i,o,n),r=ye(s.year,0,s.dayOfYear);return this.year(r.getUTCFullYear()),this.month(r.getUTCMonth()),this.date(r.getUTCDate()),this}function Xt(e){return null==e?Math.ceil((this.month()+1)/3):this.month(3*(e-1)+this.month()%3)}function Kt(e){return ke(e,this._week.dow,this._week.doy).week}function Zt(){return this._week.dow}function Qt(){return this._week.doy}function $t(e){var t=this.localeData().week(this);return null==e?t:this.add(7*(e-t),"d")}function Jt(e){var t=ke(this,1,4).week;return null==e?t:this.add(7*(e-t),"d")}function ei(e,t){return"string"!=typeof e?e:isNaN(e)?(e=t.weekdaysParse(e),"number"==typeof e?e:null):parseInt(e,10)}function ti(e,t){return o(this._weekdays)?this._weekdays[e.day()]:this._weekdays[this._weekdays.isFormat.test(t)?"format":"standalone"][e.day()]}function ii(e){return this._weekdaysShort[e.day()]}function oi(e){return this._weekdaysMin[e.day()]}function ni(e,t,i){var o,n,s;for(this._weekdaysParse||(this._weekdaysParse=[],this._minWeekdaysParse=[],this._shortWeekdaysParse=[],this._fullWeekdaysParse=[]),o=0;7>o;o++){if(n=Ne([2e3,1]).day(o),i&&!this._fullWeekdaysParse[o]&&(this._fullWeekdaysParse[o]=new RegExp("^"+this.weekdays(n,"").replace(".",".?")+"$","i"),this._shortWeekdaysParse[o]=new RegExp("^"+this.weekdaysShort(n,"").replace(".",".?")+"$","i"),this._minWeekdaysParse[o]=new RegExp("^"+this.weekdaysMin(n,"").replace(".",".?")+"$","i")),this._weekdaysParse[o]||(s="^"+this.weekdays(n,"")+"|^"+this.weekdaysShort(n,"")+"|^"+this.weekdaysMin(n,""),this._weekdaysParse[o]=new RegExp(s.replace(".",""),"i")),i&&"dddd"===t&&this._fullWeekdaysParse[o].test(e))return o;if(i&&"ddd"===t&&this._shortWeekdaysParse[o].test(e))return o;if(i&&"dd"===t&&this._minWeekdaysParse[o].test(e))return o;if(!i&&this._weekdaysParse[o].test(e))return o}}function si(e){if(!this.isValid())return null!=e?this:NaN;var t=this._isUTC?this._d.getUTCDay():this._d.getDay();return null!=e?(e=ei(e,this.localeData()),this.add(e-t,"d")):t}function ri(e){if(!this.isValid())return null!=e?this:NaN;var t=(this.day()+7-this.localeData()._week.dow)%7;return null==e?t:this.add(e-t,"d")}function ai(e){return this.isValid()?null==e?this.day()||7:this.day(this.day()%7?e:e-7):null!=e?this:NaN}function hi(e){var t=Math.round((this.clone().startOf("day")-this.clone().startOf("year"))/864e5)+1;return null==e?t:this.add(e-t,"d")}function di(){return this.hours()%12||12}function li(e,t){U(e,0,0,function(){return this.localeData().meridiem(this.hours(),this.minutes(),t)})}function ci(e,t){return t._meridiemParse}function ui(e){return"p"===(e+"").toLowerCase().charAt(0)}function fi(e,t,i){return e>11?i?"pm":"PM":i?"am":"AM"}function pi(e,t){t[jo]=b(1e3*("0."+e))}function vi(){return this._isUTC?"UTC":""}function yi(){return this._isUTC?"Coordinated Universal Time":""}function gi(e){return Ne(1e3*e)}function bi(){return Ne.apply(null,arguments).parseZone()}function mi(e,t,i){var o=this._calendar[e];return x(o)?o.call(t,i):o}function _i(e){var t=this._longDateFormat[e],i=this._longDateFormat[e.toUpperCase()];return t||!i?t:(this._longDateFormat[e]=i.replace(/MMMM|MM|DD|dddd/g,function(e){return e.slice(1)}),this._longDateFormat[e])}function wi(){return this._invalidDate}function ki(e){return this._ordinal.replace("%d",e)}function xi(e){return e}function Oi(e,t,i,o){var n=this._relativeTime[i];return x(n)?n(e,t,i,o):n.replace(/%d/i,e)}function Ei(e,t){var i=this._relativeTime[e>0?"future":"past"];return x(i)?i(t):i.replace(/%s/i,t)}function Mi(e,t,i,o){var n=I(),s=h().set(o,t);return n[i](s,e)}function Di(e,t,i,o,n){if("number"==typeof e&&(t=e,e=void 0),e=e||"",null!=t)return Mi(e,t,i,n);var s,r=[];for(s=0;o>s;s++)r[s]=Mi(e,s,i,n);return r}function Si(e,t){return Di(e,t,"months",12,"month")}function Ci(e,t){return Di(e,t,"monthsShort",12,"month")}function Ti(e,t){return Di(e,t,"weekdays",7,"day")}function Pi(e,t){return Di(e,t,"weekdaysShort",7,"day")}function Bi(e,t){return Di(e,t,"weekdaysMin",7,"day")}function Fi(){var e=this._data;return this._milliseconds=Mn(this._milliseconds),this._days=Mn(this._days),this._months=Mn(this._months),e.milliseconds=Mn(e.milliseconds),e.seconds=Mn(e.seconds),e.minutes=Mn(e.minutes),e.hours=Mn(e.hours),e.months=Mn(e.months),e.years=Mn(e.years),this}function Ii(e,t,i,o){var n=ot(t,i);return e._milliseconds+=o*n._milliseconds,e._days+=o*n._days,e._months+=o*n._months,e._bubble()}function ji(e,t){return Ii(this,e,t,1)}function Ni(e,t){return Ii(this,e,t,-1)}function zi(e){return 0>e?Math.floor(e):Math.ceil(e)}function Ri(){var e,t,i,o,n,s=this._milliseconds,r=this._days,a=this._months,h=this._data;return s>=0&&r>=0&&a>=0||0>=s&&0>=r&&0>=a||(s+=864e5*zi(Hi(a)+r),r=0,a=0),h.milliseconds=s%1e3,e=g(s/1e3),h.seconds=e%60,t=g(e/60),h.minutes=t%60,i=g(t/60),h.hours=i%24,r+=g(i/24),n=g(Ai(r)),a+=n,r-=zi(Hi(n)),o=g(a/12),a%=12,h.days=r,h.months=a,h.years=o,this}function Ai(e){return 4800*e/146097}function Hi(e){return 146097*e/4800}function Li(e){var t,i,o=this._milliseconds;if(e=z(e),"month"===e||"year"===e)return t=this._days+o/864e5,i=this._months+Ai(t),"month"===e?i:i/12;switch(t=this._days+Math.round(Hi(this._months)),e){case"week":return t/7+o/6048e5;case"day":return t+o/864e5;case"hour":return 24*t+o/36e5;case"minute":return 1440*t+o/6e4;case"second":return 86400*t+o/1e3;case"millisecond":return Math.floor(864e5*t)+o;default:throw new Error("Unknown unit "+e)}}function Wi(){return this._milliseconds+864e5*this._days+this._months%12*2592e6+31536e6*b(this._months/12)}function Yi(e){return function(){return this.as(e)}}function Ui(e){return e=z(e),this[e+"s"]()}function Vi(e){return function(){return this._data[e]}}function qi(){return g(this.days()/7)}function Gi(e,t,i,o,n){return n.relativeTime(t||1,!!i,e,o)}function Xi(e,t,i){var o=ot(e).abs(),n=Wn(o.as("s")),s=Wn(o.as("m")),r=Wn(o.as("h")),a=Wn(o.as("d")),h=Wn(o.as("M")),d=Wn(o.as("y")),l=n=s&&["m"]||s=r&&["h"]||r=a&&["d"]||a=h&&["M"]||h=d&&["y"]||["yy",d];return l[2]=t,l[3]=+e>0,l[4]=i,Gi.apply(null,l)}function Ki(e,t){return void 0===Yn[e]?!1:void 0===t?Yn[e]:(Yn[e]=t,!0)}function Zi(e){var t=this.localeData(),i=Xi(this,!e,t);return e&&(i=t.pastFuture(+this,i)),t.postformat(i)}function Qi(){var e,t,i,o=Un(this._milliseconds)/1e3,n=Un(this._days),s=Un(this._months);e=g(o/60),t=g(e/60),o%=60,e%=60,i=g(s/12),s%=12;var r=i,a=s,h=n,d=t,l=e,c=o,u=this.asSeconds();return u?(0>u?"-":"")+"P"+(r?r+"Y":"")+(a?a+"M":"")+(h?h+"D":"")+(d||l||c?"T":"")+(d?d+"H":"")+(l?l+"M":"")+(c?c+"S":""):"P0D"}var $i,Ji=t.momentProperties=[],eo=!1,to={};t.suppressDeprecationWarnings=!1;var io,oo={},no={},so=/(\[[^\[]*\])|(\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|YYYYYY|YYYYY|YYYY|YY|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g,ro=/(\[[^\[]*\])|(\\)?(LTS|LT|LL?L?L?|l{1,4})/g,ao={},ho={},lo=/\d/,co=/\d\d/,uo=/\d{3}/,fo=/\d{4}/,po=/[+-]?\d{6}/,vo=/\d\d?/,yo=/\d\d\d\d?/,go=/\d\d\d\d\d\d?/,bo=/\d{1,3}/,mo=/\d{1,4}/,_o=/[+-]?\d{1,6}/,wo=/\d+/,ko=/[+-]?\d+/,xo=/Z|[+-]\d\d:?\d\d/gi,Oo=/Z|[+-]\d\d(?::?\d\d)?/gi,Eo=/[+-]?\d+(\.\d{1,3})?/,Mo=/[0-9]*['a-z\u00A0-\u05FF\u0700-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]+|[\u0600-\u06FF\/]+(\s*?[\u0600-\u06FF]+){1,2}/i,Do={},So={},Co=0,To=1,Po=2,Bo=3,Fo=4,Io=5,jo=6,No=7,zo=8;U("M",["MM",2],"Mo",function(){return this.month()+1}),U("MMM",0,0,function(e){return this.localeData().monthsShort(this,e)}),U("MMMM",0,0,function(e){return this.localeData().months(this,e)}),N("month","M"),K("M",vo),K("MM",vo,co),K("MMM",function(e,t){return t.monthsShortRegex(e)}),K("MMMM",function(e,t){return t.monthsRegex(e)}),J(["M","MM"],function(e,t){t[To]=b(e)-1}),J(["MMM","MMMM"],function(e,t,i,o){var n=i._locale.monthsParse(e,o,i._strict);null!=n?t[To]=n:l(i).invalidMonth=e});var Ro=/D[oD]?(\[[^\[\]]*\]|\s+)+MMMM?/,Ao="January_February_March_April_May_June_July_August_September_October_November_December".split("_"),Ho="Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),Lo=Mo,Wo=Mo,Yo=/^\s*((?:[+-]\d{6}|\d{4})-(?:\d\d-\d\d|W\d\d-\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?::\d\d(?::\d\d(?:[.,]\d+)?)?)?)([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?/,Uo=/^\s*((?:[+-]\d{6}|\d{4})(?:\d\d\d\d|W\d\d\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?:\d\d(?:\d\d(?:[.,]\d+)?)?)?)([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?/,Vo=/Z|[+-]\d\d(?::?\d\d)?/,qo=[["YYYYYY-MM-DD",/[+-]\d{6}-\d\d-\d\d/],["YYYY-MM-DD",/\d{4}-\d\d-\d\d/],["GGGG-[W]WW-E",/\d{4}-W\d\d-\d/],["GGGG-[W]WW",/\d{4}-W\d\d/,!1],["YYYY-DDD",/\d{4}-\d{3}/],["YYYY-MM",/\d{4}-\d\d/,!1],["YYYYYYMMDD",/[+-]\d{10}/],["YYYYMMDD",/\d{8}/],["GGGG[W]WWE",/\d{4}W\d{3}/],["GGGG[W]WW",/\d{4}W\d{2}/,!1],["YYYYDDD",/\d{7}/]],Go=[["HH:mm:ss.SSSS",/\d\d:\d\d:\d\d\.\d+/],["HH:mm:ss,SSSS",/\d\d:\d\d:\d\d,\d+/],["HH:mm:ss",/\d\d:\d\d:\d\d/],["HH:mm",/\d\d:\d\d/],["HHmmss.SSSS",/\d\d\d\d\d\d\.\d+/],["HHmmss,SSSS",/\d\d\d\d\d\d,\d+/],["HHmmss",/\d\d\d\d\d\d/],["HHmm",/\d\d\d\d/],["HH",/\d\d/]],Xo=/^\/?Date\((\-?\d+)/i;t.createFromInputFallback=w("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(e){e._d=new Date(e._i+(e._useUTC?" UTC":""))}),U("Y",0,0,function(){var e=this.year();return 9999>=e?""+e:"+"+e}),U(0,["YY",2],0,function(){return this.year()%100}),U(0,["YYYY",4],0,"year"),U(0,["YYYYY",5],0,"year"),U(0,["YYYYYY",6,!0],0,"year"),N("year","y"),K("Y",ko),K("YY",vo,co),K("YYYY",mo,fo),K("YYYYY",_o,po),K("YYYYYY",_o,po),J(["YYYYY","YYYYYY"],Co),J("YYYY",function(e,i){i[Co]=2===e.length?t.parseTwoDigitYear(e):b(e)}),J("YY",function(e,i){i[Co]=t.parseTwoDigitYear(e)}),J("Y",function(e,t){t[Co]=parseInt(e,10)}),t.parseTwoDigitYear=function(e){return b(e)+(b(e)>68?1900:2e3)};var Ko=A("FullYear",!1);t.ISO_8601=function(){};var Zo=w("moment().min is deprecated, use moment.max instead. https://github.com/moment/moment/issues/1548",function(){var e=Ne.apply(null,arguments);return this.isValid()&&e.isValid()?this>e?this:e:u()}),Qo=w("moment().max is deprecated, use moment.min instead. https://github.com/moment/moment/issues/1548",function(){var e=Ne.apply(null,arguments);return this.isValid()&&e.isValid()?e>this?this:e:u()}),$o=function(){return Date.now?Date.now():+new Date};We("Z",":"),We("ZZ",""),K("Z",Oo),K("ZZ",Oo),J(["Z","ZZ"],function(e,t,i){i._useUTC=!0,i._tzm=Ye(Oo,e)});var Jo=/([\+\-]|\d\d)/gi;t.updateOffset=function(){};var en=/^(\-)?(?:(\d*)[. ])?(\d+)\:(\d+)(?:\:(\d+)\.?(\d{3})?\d*)?$/,tn=/^(-)?P(?:([0-9,.]*)Y)?(?:([0-9,.]*)M)?(?:([0-9,.]*)W)?(?:([0-9,.]*)D)?(?:T(?:([0-9,.]*)H)?(?:([0-9,.]*)M)?(?:([0-9,.]*)S)?)?$/;ot.fn=He.prototype;var on=ht(1,"add"),nn=ht(-1,"subtract");t.defaultFormat="YYYY-MM-DDTHH:mm:ssZ";var sn=w("moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.",function(e){return void 0===e?this.localeData():this.locale(e)});U(0,["gg",2],0,function(){return this.weekYear()%100}),U(0,["GG",2],0,function(){return this.isoWeekYear()%100}),Lt("gggg","weekYear"),Lt("ggggg","weekYear"),Lt("GGGG","isoWeekYear"),Lt("GGGGG","isoWeekYear"),N("weekYear","gg"),N("isoWeekYear","GG"),K("G",ko),K("g",ko),K("GG",vo,co),K("gg",vo,co),K("GGGG",mo,fo),K("gggg",mo,fo),K("GGGGG",_o,po),K("ggggg",_o,po),ee(["gggg","ggggg","GGGG","GGGGG"],function(e,t,i,o){t[o.substr(0,2)]=b(e)}),ee(["gg","GG"],function(e,i,o,n){i[n]=t.parseTwoDigitYear(e)}),U("Q",0,"Qo","quarter"),N("quarter","Q"),K("Q",lo),J("Q",function(e,t){t[To]=3*(b(e)-1)}),U("w",["ww",2],"wo","week"),U("W",["WW",2],"Wo","isoWeek"),N("week","w"),N("isoWeek","W"),K("w",vo),K("ww",vo,co),K("W",vo),K("WW",vo,co),ee(["w","ww","W","WW"],function(e,t,i,o){t[o.substr(0,1)]=b(e)});var rn={dow:0,doy:6};U("D",["DD",2],"Do","date"),N("date","D"),K("D",vo),K("DD",vo,co),K("Do",function(e,t){return e?t._ordinalParse:t._ordinalParseLenient}),J(["D","DD"],Po),J("Do",function(e,t){t[Po]=b(e.match(vo)[0],10)});var an=A("Date",!0);U("d",0,"do","day"),U("dd",0,0,function(e){return this.localeData().weekdaysMin(this,e)}),U("ddd",0,0,function(e){return this.localeData().weekdaysShort(this,e)}),U("dddd",0,0,function(e){return this.localeData().weekdays(this,e)}),U("e",0,0,"weekday"),U("E",0,0,"isoWeekday"),N("day","d"),N("weekday","e"),N("isoWeekday","E"),K("d",vo),K("e",vo),K("E",vo),K("dd",Mo),K("ddd",Mo),K("dddd",Mo),ee(["dd","ddd","dddd"],function(e,t,i,o){var n=i._locale.weekdaysParse(e,o,i._strict);null!=n?t.d=n:l(i).invalidWeekday=e}),ee(["d","e","E"],function(e,t,i,o){t[o]=b(e)});var hn="Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),dn="Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),ln="Su_Mo_Tu_We_Th_Fr_Sa".split("_");U("DDD",["DDDD",3],"DDDo","dayOfYear"),N("dayOfYear","DDD"),K("DDD",bo),K("DDDD",uo),J(["DDD","DDDD"],function(e,t,i){i._dayOfYear=b(e)}),U("H",["HH",2],0,"hour"),U("h",["hh",2],0,di),U("hmm",0,0,function(){return""+di.apply(this)+Y(this.minutes(),2)}),U("hmmss",0,0,function(){return""+di.apply(this)+Y(this.minutes(),2)+Y(this.seconds(),2)}),U("Hmm",0,0,function(){return""+this.hours()+Y(this.minutes(),2)}),U("Hmmss",0,0,function(){return""+this.hours()+Y(this.minutes(),2)+Y(this.seconds(),2)}),li("a",!0),li("A",!1),N("hour","h"),K("a",ci),K("A",ci),K("H",vo),K("h",vo),K("HH",vo,co),K("hh",vo,co),K("hmm",yo),K("hmmss",go),K("Hmm",yo),K("Hmmss",go),J(["H","HH"],Bo),J(["a","A"],function(e,t,i){i._isPm=i._locale.isPM(e),i._meridiem=e}),J(["h","hh"],function(e,t,i){t[Bo]=b(e),l(i).bigHour=!0}),J("hmm",function(e,t,i){var o=e.length-2;t[Bo]=b(e.substr(0,o)),t[Fo]=b(e.substr(o)),l(i).bigHour=!0}),J("hmmss",function(e,t,i){var o=e.length-4,n=e.length-2;t[Bo]=b(e.substr(0,o)),t[Fo]=b(e.substr(o,2)),t[Io]=b(e.substr(n)),l(i).bigHour=!0}),J("Hmm",function(e,t,i){var o=e.length-2;t[Bo]=b(e.substr(0,o)),t[Fo]=b(e.substr(o))}),J("Hmmss",function(e,t,i){var o=e.length-4,n=e.length-2;t[Bo]=b(e.substr(0,o)),t[Fo]=b(e.substr(o,2)),t[Io]=b(e.substr(n))});var cn=/[ap]\.?m?\.?/i,un=A("Hours",!0);U("m",["mm",2],0,"minute"),N("minute","m"),K("m",vo),K("mm",vo,co),J(["m","mm"],Fo);var fn=A("Minutes",!1);U("s",["ss",2],0,"second"),N("second","s"),K("s",vo),K("ss",vo,co),J(["s","ss"],Io);var pn=A("Seconds",!1);U("S",0,0,function(){return~~(this.millisecond()/100)}),U(0,["SS",2],0,function(){return~~(this.millisecond()/10)}),U(0,["SSS",3],0,"millisecond"),U(0,["SSSS",4],0,function(){return 10*this.millisecond()}),U(0,["SSSSS",5],0,function(){return 100*this.millisecond()}),U(0,["SSSSSS",6],0,function(){return 1e3*this.millisecond()}),U(0,["SSSSSSS",7],0,function(){return 1e4*this.millisecond()}),U(0,["SSSSSSSS",8],0,function(){return 1e5*this.millisecond()}),U(0,["SSSSSSSSS",9],0,function(){return 1e6*this.millisecond()}),N("millisecond","ms"),K("S",bo,lo),K("SS",bo,co),K("SSS",bo,uo);var vn;for(vn="SSSS";vn.length<=9;vn+="S")K(vn,wo);for(vn="S";vn.length<=9;vn+="S")J(vn,pi);var yn=A("Milliseconds",!1);U("z",0,0,"zoneAbbr"),U("zz",0,0,"zoneName");var gn=v.prototype;gn.add=on,gn.calendar=lt,gn.clone=ct,gn.diff=bt,gn.endOf=Tt,gn.format=kt,gn.from=xt,gn.fromNow=Ot,gn.to=Et,gn.toNow=Mt,gn.get=W,gn.invalidAt=At,gn.isAfter=ut,gn.isBefore=ft,gn.isBetween=pt,gn.isSame=vt,gn.isSameOrAfter=yt,gn.isSameOrBefore=gt,gn.isValid=zt,gn.lang=sn,gn.locale=Dt,gn.localeData=St,gn.max=Qo,gn.min=Zo,gn.parsingFlags=Rt,gn.set=W,gn.startOf=Ct,gn.subtract=nn,gn.toArray=It,gn.toObject=jt,gn.toDate=Ft,gn.toISOString=wt,gn.toJSON=Nt,gn.toString=_t,gn.unix=Bt,gn.valueOf=Pt,gn.creationData=Ht,gn.year=Ko,gn.isLeapYear=me,gn.weekYear=Wt,gn.isoWeekYear=Yt,gn.quarter=gn.quarters=Xt,gn.month=ae,gn.daysInMonth=he,gn.week=gn.weeks=$t,gn.isoWeek=gn.isoWeeks=Jt,gn.weeksInYear=Vt,gn.isoWeeksInYear=Ut,gn.date=an,gn.day=gn.days=si,gn.weekday=ri,gn.isoWeekday=ai,gn.dayOfYear=hi,gn.hour=gn.hours=un,gn.minute=gn.minutes=fn,gn.second=gn.seconds=pn,gn.millisecond=gn.milliseconds=yn,gn.utcOffset=qe,gn.utc=Xe,gn.local=Ke,gn.parseZone=Ze,gn.hasAlignedHourOffset=Qe,gn.isDST=$e,gn.isDSTShifted=Je,gn.isLocal=et,gn.isUtcOffset=tt,gn.isUtc=it,gn.isUTC=it,gn.zoneAbbr=vi,gn.zoneName=yi,gn.dates=w("dates accessor is deprecated. Use date instead.",an),gn.months=w("months accessor is deprecated. Use month instead",ae),gn.years=w("years accessor is deprecated. Use year instead",Ko),gn.zone=w("moment().zone is deprecated, use moment().utcOffset instead. https://github.com/moment/moment/issues/1779",Ge);var bn=gn,mn={sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},_n={LTS:"h:mm:ss A",LT:"h:mm A",L:"MM/DD/YYYY",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY h:mm A",LLLL:"dddd, MMMM D, YYYY h:mm A"},wn="Invalid date",kn="%d",xn=/\d{1,2}/,On={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"},En=D.prototype;En._calendar=mn,En.calendar=mi,En._longDateFormat=_n,En.longDateFormat=_i,En._invalidDate=wn,En.invalidDate=wi,En._ordinal=kn,En.ordinal=ki,En._ordinalParse=xn,En.preparse=xi,En.postformat=xi,En._relativeTime=On,En.relativeTime=Oi,En.pastFuture=Ei,En.set=E,En.months=oe,En._months=Ao,En.monthsShort=ne,En._monthsShort=Ho,En.monthsParse=se,En._monthsRegex=Wo,En.monthsRegex=le,En._monthsShortRegex=Lo,En.monthsShortRegex=de,En.week=Kt,En._week=rn,En.firstDayOfYear=Qt,En.firstDayOfWeek=Zt,En.weekdays=ti,En._weekdays=hn,En.weekdaysMin=oi,En._weekdaysMin=ln,En.weekdaysShort=ii,En._weekdaysShort=dn,En.weekdaysParse=ni,En.isPM=ui,En._meridiemParse=cn,En.meridiem=fi,P("en",{ordinalParse:/\d{1,2}(th|st|nd|rd)/,ordinal:function(e){var t=e%10,i=1===b(e%100/10)?"th":1===t?"st":2===t?"nd":3===t?"rd":"th";return e+i}}),t.lang=w("moment.lang is deprecated. Use moment.locale instead.",P),t.langData=w("moment.langData is deprecated. Use moment.localeData instead.",I);var Mn=Math.abs,Dn=Yi("ms"),Sn=Yi("s"),Cn=Yi("m"),Tn=Yi("h"),Pn=Yi("d"),Bn=Yi("w"),Fn=Yi("M"),In=Yi("y"),jn=Vi("milliseconds"),Nn=Vi("seconds"),zn=Vi("minutes"),Rn=Vi("hours"),An=Vi("days"),Hn=Vi("months"),Ln=Vi("years"),Wn=Math.round,Yn={s:45,m:45,h:22,d:26,M:11},Un=Math.abs,Vn=He.prototype;Vn.abs=Fi,Vn.add=ji,Vn.subtract=Ni,Vn.as=Li,Vn.asMilliseconds=Dn,Vn.asSeconds=Sn,Vn.asMinutes=Cn,Vn.asHours=Tn,Vn.asDays=Pn,Vn.asWeeks=Bn,Vn.asMonths=Fn,Vn.asYears=In,Vn.valueOf=Wi,Vn._bubble=Ri,Vn.get=Ui,Vn.milliseconds=jn,Vn.seconds=Nn,Vn.minutes=zn,Vn.hours=Rn,Vn.days=An,Vn.weeks=qi,Vn.months=Hn,Vn.years=Ln,Vn.humanize=Zi,Vn.toISOString=Qi,Vn.toString=Qi,Vn.toJSON=Qi,Vn.locale=Dt,Vn.localeData=St,Vn.toIsoString=w("toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)",Qi),Vn.lang=sn,U("X",0,0,"unix"),U("x",0,0,"valueOf"),K("x",ko),K("X",Eo),J("X",function(e,t,i){i._d=new Date(1e3*parseFloat(e,10))}),J("x",function(e,t,i){i._d=new Date(b(e))}),t.version="2.12.0",i(Ne),t.fn=bn,t.min=Re,t.max=Ae,t.now=$o,t.utc=h,t.unix=gi,t.months=Si,t.isDate=n,t.locale=P,t.invalid=u,t.duration=ot,t.isMoment=y,t.weekdays=Ti,t.parseZone=bi,t.localeData=I,t.isDuration=Le,t.monthsShort=Ci,t.weekdaysMin=Bi,t.defineLocale=B,t.updateLocale=F,t.locales=j,t.weekdaysShort=Pi,t.normalizeUnits=z,t.relativeTimeThreshold=Ki,t.prototype=bn;var qn=t;return qn})}).call(t,i(4)(e))},function(e,t){e.exports=function(e){return e.webpackPolyfill||(e.deprecate=function(){},e.paths=[],e.children=[],e.webpackPolyfill=1),e}},function(e,t){function i(e){throw new Error("Cannot find module '"+e+"'.")}i.keys=function(){return[]},i.resolve=i,e.exports=i,i.id=5},function(e,t){(function(t){function i(e,t,i){var o=t&&i||0,n=0;for(t=t||[],e.toLowerCase().replace(/[0-9a-f]{2}/g,function(e){16>n&&(t[o+n++]=c[e])});16>n;)t[o+n++]=0;return t}function o(e,t){var i=t||0,o=l;return o[e[i++]]+o[e[i++]]+o[e[i++]]+o[e[i++]]+"-"+o[e[i++]]+o[e[i++]]+"-"+o[e[i++]]+o[e[i++]]+"-"+o[e[i++]]+o[e[i++]]+"-"+o[e[i++]]+o[e[i++]]+o[e[i++]]+o[e[i++]]+o[e[i++]]+o[e[i++]]}function n(e,t,i){var n=t&&i||0,s=t||[];e=e||{};var r=void 0!==e.clockseq?e.clockseq:v,a=void 0!==e.msecs?e.msecs:(new Date).getTime(),h=void 0!==e.nsecs?e.nsecs:g+1,d=a-y+(h-g)/1e4;if(0>d&&void 0===e.clockseq&&(r=r+1&16383),(0>d||a>y)&&void 0===e.nsecs&&(h=0),h>=1e4)throw new Error("uuid.v1(): Can't create more than 10M uuids/sec");y=a,g=h,v=r,a+=122192928e5;var l=(1e4*(268435455&a)+h)%4294967296;s[n++]=l>>>24&255,s[n++]=l>>>16&255,s[n++]=l>>>8&255,s[n++]=255&l;var c=a/4294967296*1e4&268435455;s[n++]=c>>>8&255,s[n++]=255&c,s[n++]=c>>>24&15|16,s[n++]=c>>>16&255,s[n++]=r>>>8|128,s[n++]=255&r;for(var u=e.node||p,f=0;6>f;f++)s[n+f]=u[f];return t?t:o(s)}function s(e,t,i){var n=t&&i||0;"string"==typeof e&&(t="binary"==e?new Array(16):null,e=null),e=e||{};var s=e.random||(e.rng||r)();if(s[6]=15&s[6]|64,s[8]=63&s[8]|128,t)for(var a=0;16>a;a++)t[n+a]=s[a];return t||o(s)}var r,a="undefined"!=typeof window?window:"undefined"!=typeof t?t:null;if(a&&a.crypto&&crypto.getRandomValues){var h=new Uint8Array(16);r=function(){return crypto.getRandomValues(h),h}}if(!r){var d=new Array(16);r=function(){for(var e,t=0;16>t;t++)0===(3&t)&&(e=4294967296*Math.random()),d[t]=e>>>((3&t)<<3)&255;return d}}for(var l=[],c={},u=0;256>u;u++)l[u]=(u+256).toString(16).substr(1),c[l[u]]=u;var f=r(),p=[1|f[0],f[1],f[2],f[3],f[4],f[5]],v=16383&(f[6]<<8|f[7]),y=0,g=0,b=s;b.v1=n,b.v4=s,b.parse=i,b.unparse=o,e.exports=b}).call(t,function(){return this}())},function(e,t){t.prepareElements=function(e){for(var t in e)e.hasOwnProperty(t)&&(e[t].redundant=e[t].used,e[t].used=[])},t.cleanupElements=function(e){for(var t in e)if(e.hasOwnProperty(t)&&e[t].redundant){for(var i=0;i0?(o=t[e].redundant[0],t[e].redundant.shift()):(o=document.createElementNS("http://www.w3.org/2000/svg",e),i.appendChild(o)):(o=document.createElementNS("http://www.w3.org/2000/svg",e),t[e]={used:[],redundant:[]},i.appendChild(o)),t[e].used.push(o),o},t.getDOMElement=function(e,t,i,o){var n;return t.hasOwnProperty(e)?t[e].redundant.length>0?(n=t[e].redundant[0],t[e].redundant.shift()):(n=document.createElement(e),void 0!==o?i.insertBefore(n,o):i.appendChild(n)):(n=document.createElement(e),t[e]={used:[],redundant:[]},void 0!==o?i.insertBefore(n,o):i.appendChild(n)),t[e].used.push(n),n},t.drawPoint=function(e,i,o,n,s,r){var a;if("circle"==o.style?(a=t.getSVGElement("circle",n,s),a.setAttributeNS(null,"cx",e),a.setAttributeNS(null,"cy",i),a.setAttributeNS(null,"r",.5*o.size)):(a=t.getSVGElement("rect",n,s),a.setAttributeNS(null,"x",e-.5*o.size),a.setAttributeNS(null,"y",i-.5*o.size),a.setAttributeNS(null,"width",o.size),a.setAttributeNS(null,"height",o.size)),void 0!==o.styles&&a.setAttributeNS(null,"style",o.styles),a.setAttributeNS(null,"class",o.className+" vis-point"),r){var h=t.getSVGElement("text",n,s);r.xOffset&&(e+=r.xOffset),r.yOffset&&(i+=r.yOffset),r.content&&(h.textContent=r.content),r.className&&h.setAttributeNS(null,"class",r.className+" vis-label"),h.setAttributeNS(null,"x",e),h.setAttributeNS(null,"y",i)}return a},t.drawBar=function(e,i,o,n,s,r,a,h){if(0!=n){0>n&&(n*=-1,i-=n);var d=t.getSVGElement("rect",r,a);d.setAttributeNS(null,"x",e-.5*o),d.setAttributeNS(null,"y",i),d.setAttributeNS(null,"width",o),d.setAttributeNS(null,"height",n),d.setAttributeNS(null,"class",s),h&&d.setAttributeNS(null,"style",h)}}},function(e,t,i){function o(e,t){if(e&&!Array.isArray(e)&&(t=e,e=null),this._options=t||{},this._data={},this.length=0,this._fieldId=this._options.fieldId||"id",this._type={},this._options.type)for(var i=Object.keys(this._options.type),o=0,n=i.length;n>o;o++){var s=i[o],r=this._options.type[s];"Date"==r||"ISODate"==r||"ASPDate"==r?this._type[s]="Date":this._type[s]=r}if(this._options.convert)throw new Error('Option "convert" is deprecated. Use "type" instead.');this._subscribers={},e&&this.add(e),this.setOptions(t)}var n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol?"symbol":typeof e},s=i(1),r=i(9);o.prototype.setOptions=function(e){e&&void 0!==e.queue&&(e.queue===!1?this._queue&&(this._queue.destroy(),delete this._queue):(this._queue||(this._queue=r.extend(this,{replace:["add","update","remove"]})),"object"===n(e.queue)&&this._queue.setOptions(e.queue)))},o.prototype.on=function(e,t){var i=this._subscribers[e];i||(i=[],this._subscribers[e]=i),i.push({callback:t})},o.prototype.subscribe=function(){throw new Error("DataSet.subscribe is deprecated. Use DataSet.on instead.")},o.prototype.off=function(e,t){var i=this._subscribers[e];i&&(this._subscribers[e]=i.filter(function(e){return e.callback!=t}))},o.prototype.unsubscribe=function(){throw new Error("DataSet.unsubscribe is deprecated. Use DataSet.off instead.")},o.prototype._trigger=function(e,t,i){if("*"==e)throw new Error("Cannot trigger event *");var o=[];e in this._subscribers&&(o=o.concat(this._subscribers[e])),"*"in this._subscribers&&(o=o.concat(this._subscribers["*"]));for(var n=0,s=o.length;s>n;n++){var r=o[n];r.callback&&r.callback(e,t,i||null)}},o.prototype.add=function(e,t){var i,o=[],n=this;if(Array.isArray(e))for(var s=0,r=e.length;r>s;s++)i=n._addItem(e[s]),o.push(i);else{if(!(e instanceof Object))throw new Error("Unknown dataType");i=n._addItem(e),o.push(i)}return o.length&&this._trigger("add",{items:o},t),o},o.prototype.update=function(e,t){var i=[],o=[],n=[],r=[],a=this,h=a._fieldId,d=function(e){var t=e[h];if(a._data[t]){var d=s.extend({},a._data[t]);t=a._updateItem(e),o.push(t),r.push(e),n.push(d)}else t=a._addItem(e),i.push(t)};if(Array.isArray(e))for(var l=0,c=e.length;c>l;l++)e[l]instanceof Object?d(e[l]):console.warn("Ignoring input item, which is not an object at index "+l);else{if(!(e instanceof Object))throw new Error("Unknown dataType");d(e)}if(i.length&&this._trigger("add",{items:i},t),o.length){var u={items:o,oldData:n,data:r};this._trigger("update",u,t)}return i.concat(o)},o.prototype.get=function(e){var t,i,o,n=this,r=s.getType(arguments[0]);"String"==r||"Number"==r?(t=arguments[0],o=arguments[1]):"Array"==r?(i=arguments[0],o=arguments[1]):o=arguments[0];var a;if(o&&o.returnType){var h=["Array","Object"];a=-1==h.indexOf(o.returnType)?"Array":o.returnType}else a="Array";var d,l,c,u,f,p=o&&o.type||this._options.type,v=o&&o.filter,y=[];if(void 0!=t)d=n._getItem(t,p),d&&v&&!v(d)&&(d=null);else if(void 0!=i)for(u=0,f=i.length;f>u;u++)d=n._getItem(i[u],p),v&&!v(d)||y.push(d);else for(l=Object.keys(this._data),u=0,f=l.length;f>u;u++)c=l[u],d=n._getItem(c,p),v&&!v(d)||y.push(d);if(o&&o.order&&void 0==t&&this._sort(y,o.order),o&&o.fields){var g=o.fields;if(void 0!=t)d=this._filterFields(d,g);else for(u=0,f=y.length;f>u;u++)y[u]=this._filterFields(y[u],g)}if("Object"==a){var b,m={};for(u=0,f=y.length;f>u;u++)b=y[u],m[b.id]=b;return m}return void 0!=t?d:y},o.prototype.getIds=function(e){var t,i,o,n,s,r=this._data,a=e&&e.filter,h=e&&e.order,d=e&&e.type||this._options.type,l=Object.keys(r),c=[];if(a)if(h){for(s=[],t=0,i=l.length;i>t;t++)o=l[t],n=this._getItem(o,d),a(n)&&s.push(n);for(this._sort(s,h),t=0,i=s.length;i>t;t++)c.push(s[t][this._fieldId])}else for(t=0,i=l.length;i>t;t++)o=l[t],n=this._getItem(o,d),a(n)&&c.push(n[this._fieldId]);else if(h){for(s=[],t=0,i=l.length;i>t;t++)o=l[t],s.push(r[o]);for(this._sort(s,h),t=0,i=s.length;i>t;t++)c.push(s[t][this._fieldId])}else for(t=0,i=l.length;i>t;t++)o=l[t],n=r[o],c.push(n[this._fieldId]);return c},o.prototype.getDataSet=function(){return this},o.prototype.forEach=function(e,t){var i,o,n,s,r=t&&t.filter,a=t&&t.type||this._options.type,h=this._data,d=Object.keys(h); +if(t&&t.order){var l=this.get(t);for(i=0,o=l.length;o>i;i++)n=l[i],s=n[this._fieldId],e(n,s)}else for(i=0,o=d.length;o>i;i++)s=d[i],n=this._getItem(s,a),r&&!r(n)||e(n,s)},o.prototype.map=function(e,t){var i,o,n,s,r=t&&t.filter,a=t&&t.type||this._options.type,h=[],d=this._data,l=Object.keys(d);for(i=0,o=l.length;o>i;i++)n=l[i],s=this._getItem(n,a),r&&!r(s)||h.push(e(s,n));return t&&t.order&&this._sort(h,t.order),h},o.prototype._filterFields=function(e,t){if(!e)return e;var i,o,n={},s=Object.keys(e),r=s.length;if(Array.isArray(t))for(i=0;r>i;i++)o=s[i],-1!=t.indexOf(o)&&(n[o]=e[o]);else for(i=0;r>i;i++)o=s[i],t.hasOwnProperty(o)&&(n[t[o]]=e[o]);return n},o.prototype._sort=function(e,t){if(s.isString(t)){var i=t;e.sort(function(e,t){var o=e[i],n=t[i];return o>n?1:n>o?-1:0})}else{if("function"!=typeof t)throw new TypeError("Order must be a function or a string");e.sort(t)}},o.prototype.remove=function(e,t){var i,o,n,s=[];if(Array.isArray(e))for(i=0,o=e.length;o>i;i++)n=this._remove(e[i]),null!=n&&s.push(n);else n=this._remove(e),null!=n&&s.push(n);return s.length&&this._trigger("remove",{items:s},t),s},o.prototype._remove=function(e){if(s.isNumber(e)||s.isString(e)){if(this._data[e])return delete this._data[e],this.length--,e}else if(e instanceof Object){var t=e[this._fieldId];if(void 0!==t&&this._data[t])return delete this._data[t],this.length--,t}return null},o.prototype.clear=function(e){var t=Object.keys(this._data);return this._data={},this.length=0,this._trigger("remove",{items:t},e),t},o.prototype.max=function(e){var t,i,o=this._data,n=Object.keys(o),s=null,r=null;for(t=0,i=n.length;i>t;t++){var a=n[t],h=o[a],d=h[e];null!=d&&(!s||d>r)&&(s=h,r=d)}return s},o.prototype.min=function(e){var t,i,o=this._data,n=Object.keys(o),s=null,r=null;for(t=0,i=n.length;i>t;t++){var a=n[t],h=o[a],d=h[e];null!=d&&(!s||r>d)&&(s=h,r=d)}return s},o.prototype.distinct=function(e){var t,i,o,n=this._data,r=Object.keys(n),a=[],h=this._options.type&&this._options.type[e]||null,d=0;for(t=0,o=r.length;o>t;t++){var l=r[t],c=n[l],u=c[e],f=!1;for(i=0;d>i;i++)if(a[i]==u){f=!0;break}f||void 0===u||(a[d]=u,d++)}if(h)for(t=0,o=a.length;o>t;t++)a[t]=s.convert(a[t],h);return a},o.prototype._addItem=function(e){var t=e[this._fieldId];if(void 0!=t){if(this._data[t])throw new Error("Cannot add item: item with id "+t+" already exists")}else t=s.randomUUID(),e[this._fieldId]=t;var i,o,n={},r=Object.keys(e);for(i=0,o=r.length;o>i;i++){var a=r[i],h=this._type[a];n[a]=s.convert(e[a],h)}return this._data[t]=n,this.length++,t},o.prototype._getItem=function(e,t){var i,o,n,r,a=this._data[e];if(!a)return null;var h={},d=Object.keys(a);if(t)for(n=0,r=d.length;r>n;n++)i=d[n],o=a[i],h[i]=s.convert(o,t[i]);else for(n=0,r=d.length;r>n;n++)i=d[n],o=a[i],h[i]=o;return h},o.prototype._updateItem=function(e){var t=e[this._fieldId];if(void 0==t)throw new Error("Cannot update item: item has no id (item: "+JSON.stringify(e)+")");var i=this._data[t];if(!i)throw new Error("Cannot update item: no item with id "+t+" found");for(var o=Object.keys(e),n=0,r=o.length;r>n;n++){var a=o[n],h=this._type[a];i[a]=s.convert(e[a],h)}return t},e.exports=o},function(e,t){function i(e){this.delay=null,this.max=1/0,this._queue=[],this._timeout=null,this._extended=null,this.setOptions(e)}i.prototype.setOptions=function(e){e&&"undefined"!=typeof e.delay&&(this.delay=e.delay),e&&"undefined"!=typeof e.max&&(this.max=e.max),this._flushIfNeeded()},i.extend=function(e,t){var o=new i(t);if(void 0!==e.flush)throw new Error("Target object already has a property flush");e.flush=function(){o.flush()};var n=[{name:"flush",original:void 0}];if(t&&t.replace)for(var s=0;sthis.max&&this.flush(),clearTimeout(this._timeout),this.queue.length>0&&"number"==typeof this.delay){var e=this;this._timeout=setTimeout(function(){e.flush()},this.delay)}},i.prototype.flush=function(){for(;this._queue.length>0;){var e=this._queue.shift();e.fn.apply(e.context||e.fn,e.args||[])}},e.exports=i},function(e,t,i){function o(e,t){this._data=null,this._ids={},this.length=0,this._options=t||{},this._fieldId="id",this._subscribers={};var i=this;this.listener=function(){i._onEvent.apply(i,arguments)},this.setData(e)}var n=i(1),s=i(8);o.prototype.setData=function(e){var t,i,o,n;if(this._data&&(this._data.off&&this._data.off("*",this.listener),t=Object.keys(this._ids),this._ids={},this.length=0,this._trigger("remove",{items:t})),this._data=e,this._data){for(this._fieldId=this._options.fieldId||this._data&&this._data.options&&this._data.options.fieldId||"id",t=this._data.getIds({filter:this._options&&this._options.filter}),o=0,n=t.length;n>o;o++)i=t[o],this._ids[i]=!0;this.length=t.length,this._trigger("add",{items:t}),this._data.on&&this._data.on("*",this.listener)}},o.prototype.refresh=function(){var e,t,i,o=this._data.getIds({filter:this._options&&this._options.filter}),n=Object.keys(this._ids),s={},r=[],a=[];for(t=0,i=o.length;i>t;t++)e=o[t],s[e]=!0,this._ids[e]||(r.push(e),this._ids[e]=!0);for(t=0,i=n.length;i>t;t++)e=n[t],s[e]||(a.push(e),delete this._ids[e]);this.length+=r.length-a.length,r.length&&this._trigger("add",{items:r}),a.length&&this._trigger("remove",{items:a})},o.prototype.get=function(e){var t,i,o,s=this,r=n.getType(arguments[0]);"String"==r||"Number"==r||"Array"==r?(t=arguments[0],i=arguments[1],o=arguments[2]):(i=arguments[0],o=arguments[1]);var a=n.extend({},this._options,i);this._options.filter&&i&&i.filter&&(a.filter=function(e){return s._options.filter(e)&&i.filter(e)});var h=[];return void 0!=t&&h.push(t),h.push(a),h.push(o),this._data&&this._data.get.apply(this._data,h)},o.prototype.getIds=function(e){var t;if(this._data){var i,o=this._options.filter;i=e&&e.filter?o?function(t){return o(t)&&e.filter(t)}:e.filter:o,t=this._data.getIds({filter:i,order:e&&e.order})}else t=[];return t},o.prototype.map=function(e,t){var i=[];if(this._data){var o,n=this._options.filter;o=t&&t.filter?n?function(e){return n(e)&&t.filter(e)}:t.filter:n,i=this._data.map(e,{filter:o,order:t&&t.order})}else i=[];return i},o.prototype.getDataSet=function(){for(var e=this;e instanceof o;)e=e._data;return e||null},o.prototype._onEvent=function(e,t,i){var o,n,s,r,a=t&&t.items,h=this._data,d=[],l=[],c=[],u=[];if(a&&h){switch(e){case"add":for(o=0,n=a.length;n>o;o++)s=a[o],r=this.get(s),r&&(this._ids[s]=!0,l.push(s));break;case"update":for(o=0,n=a.length;n>o;o++)s=a[o],r=this.get(s),r?this._ids[s]?(c.push(s),d.push(t.data[o])):(this._ids[s]=!0,l.push(s)):this._ids[s]&&(delete this._ids[s],u.push(s));break;case"remove":for(o=0,n=a.length;n>o;o++)s=a[o],this._ids[s]&&(delete this._ids[s],u.push(s))}this.length+=l.length-u.length,l.length&&this._trigger("add",{items:l},i),c.length&&this._trigger("update",{items:c,data:d},i),u.length&&this._trigger("remove",{items:u},i)}},o.prototype.on=s.prototype.on,o.prototype.off=s.prototype.off,o.prototype._trigger=s.prototype._trigger,o.prototype.subscribe=o.prototype.on,o.prototype.unsubscribe=o.prototype.off,e.exports=o},function(e,t,i){function o(e){return e&&e.__esModule?e:{"default":e}}function n(e,t,i){var o=this;if(!(this instanceof n))throw new SyntaxError("Constructor must be called with the new operator");this.options={},this.defaultOptions={locale:"en",locales:Y,clickToUse:!1},A.extend(this.options,this.defaultOptions),this.body={container:e,nodes:{},nodeIndices:[],edges:{},edgeIndices:[],emitter:{on:this.on.bind(this),off:this.off.bind(this),emit:this.emit.bind(this),once:this.once.bind(this)},eventListeners:{onTap:function(){},onTouch:function(){},onDoubleTap:function(){},onHold:function(){},onDragStart:function(){},onDrag:function(){},onDragEnd:function(){},onMouseWheel:function(){},onPinch:function(){},onMouseMove:function(){},onRelease:function(){},onContext:function(){}},data:{nodes:null,edges:null},functions:{createNode:function(){},createEdge:function(){},getPointer:function(){}},modules:{},view:{scale:1,translation:{x:0,y:0}}},this.bindEventListeners(),this.images=new r["default"](function(){return o.body.emitter.emit("_requestRedraw")}),this.groups=new h["default"],this.canvas=new _["default"](this.body),this.selectionHandler=new M["default"](this.body,this.canvas),this.interactionHandler=new O["default"](this.body,this.canvas,this.selectionHandler),this.view=new k["default"](this.body,this.canvas),this.renderer=new b["default"](this.body,this.canvas),this.physics=new p["default"](this.body),this.layoutEngine=new S["default"](this.body),this.clustering=new y["default"](this.body),this.manipulation=new T["default"](this.body,this.canvas,this.selectionHandler),this.nodesHandler=new l["default"](this.body,this.images,this.groups,this.layoutEngine),this.edgesHandler=new u["default"](this.body,this.images,this.groups),this.body.modules.kamadaKawai=new z["default"](this.body,150,.05),this.body.modules.clustering=this.clustering,this.canvas._create(),this.setOptions(i),this.setData(t)}var s=i(12),r=o(s),a=i(13),h=o(a),d=i(14),l=o(d),c=i(35),u=o(c),f=i(44),p=o(f),v=i(53),y=o(v),g=i(56),b=o(g),m=i(57),_=o(m),w=i(62),k=o(w),x=i(63),O=o(x),E=i(67),M=o(E),D=i(68),S=o(D),C=i(69),T=o(C),P=i(70),B=o(P),F=i(34),I=o(F),j=i(72),N=i(73),z=o(N);i(75);var R=i(76),A=i(1),H=(i(8),i(10),i(77)),L=i(78),W=i(79),Y=i(80);R(n.prototype),n.prototype.setOptions=function(e){var t=this;if(void 0!==e){var i=I["default"].validate(e,j.allOptions);i===!0&&console.log("%cErrors have been found in the supplied options object.",F.printStyle);var o=["locale","locales","clickToUse"];if(A.selectiveDeepExtend(o,this.options,e),e=this.layoutEngine.setOptions(e.layout,e),this.canvas.setOptions(e),this.groups.setOptions(e.groups),this.nodesHandler.setOptions(e.nodes),this.edgesHandler.setOptions(e.edges),this.physics.setOptions(e.physics),this.manipulation.setOptions(e.manipulation,e,this.options),this.interactionHandler.setOptions(e.interaction),this.renderer.setOptions(e.interaction),this.selectionHandler.setOptions(e.interaction),void 0!==e.groups&&this.body.emitter.emit("refreshNodes"),"configure"in e&&(this.configurator||(this.configurator=new B["default"](this,this.body.container,j.configureOptions,this.canvas.pixelRatio)),this.configurator.setOptions(e.configure)),this.configurator&&this.configurator.options.enabled===!0){var n={nodes:{},edges:{},layout:{},interaction:{},manipulation:{},physics:{},global:{}};A.deepExtend(n.nodes,this.nodesHandler.options),A.deepExtend(n.edges,this.edgesHandler.options),A.deepExtend(n.layout,this.layoutEngine.options),A.deepExtend(n.interaction,this.selectionHandler.options),A.deepExtend(n.interaction,this.renderer.options),A.deepExtend(n.interaction,this.interactionHandler.options),A.deepExtend(n.manipulation,this.manipulation.options),A.deepExtend(n.physics,this.physics.options),A.deepExtend(n.global,this.canvas.options),A.deepExtend(n.global,this.options),this.configurator.setModuleOptions(n)}void 0!==e.clickToUse?e.clickToUse===!0?void 0===this.activator&&(this.activator=new W(this.canvas.frame),this.activator.on("change",function(){t.body.emitter.emit("activate")})):(void 0!==this.activator&&(this.activator.destroy(),delete this.activator),this.body.emitter.emit("activate")):this.body.emitter.emit("activate"),this.canvas.setSize(),this.body.emitter.emit("startSimulation")}},n.prototype._updateVisibleIndices=function(){var e=this.body.nodes,t=this.body.edges;this.body.nodeIndices=[],this.body.edgeIndices=[];for(var i in e)e.hasOwnProperty(i)&&e[i].options.hidden===!1&&this.body.nodeIndices.push(e[i].id);for(var o in t)t.hasOwnProperty(o)&&t[o].options.hidden===!1&&this.body.edgeIndices.push(t[o].id)},n.prototype.bindEventListeners=function(){var e=this;this.body.emitter.on("_dataChanged",function(){e._updateVisibleIndices(),e.body.emitter.emit("_requestRedraw"),e.body.emitter.emit("_dataUpdated")}),this.body.emitter.on("_dataUpdated",function(){e._updateValueRange(e.body.nodes),e._updateValueRange(e.body.edges),e.body.emitter.emit("startSimulation"),e.body.emitter.emit("_requestRedraw")})},n.prototype.setData=function(e){if(this.body.emitter.emit("resetPhysics"),this.body.emitter.emit("_resetData"),this.selectionHandler.unselectAll(),e&&e.dot&&(e.nodes||e.edges))throw new SyntaxError('Data must contain either parameter "dot" or parameter pair "nodes" and "edges", but not both.');if(this.setOptions(e&&e.options),e&&e.dot){console.log("The dot property has been depricated. Please use the static convertDot method to convert DOT into vis.network format and use the normal data format with nodes and edges. This converter is used like this: var data = vis.network.convertDot(dotString);");var t=H.DOTToGraph(e.dot);return void this.setData(t)}if(e&&e.gephi){console.log("The gephi property has been depricated. Please use the static convertGephi method to convert gephi into vis.network format and use the normal data format with nodes and edges. This converter is used like this: var data = vis.network.convertGephi(gephiJson);");var i=L.parseGephi(e.gephi);return void this.setData(i)}this.nodesHandler.setData(e&&e.nodes,!0),this.edgesHandler.setData(e&&e.edges,!0),this.body.emitter.emit("_dataChanged"),this.body.emitter.emit("_dataLoaded"),this.body.emitter.emit("initPhysics")},n.prototype.destroy=function(){this.body.emitter.emit("destroy"),this.body.emitter.off(),this.off(),delete this.groups,delete this.canvas,delete this.selectionHandler,delete this.interactionHandler,delete this.view,delete this.renderer,delete this.physics,delete this.layoutEngine,delete this.clustering,delete this.manipulation,delete this.nodesHandler,delete this.edgesHandler,delete this.configurator,delete this.images;for(var e in this.body.nodes)delete this.body.nodes[e];for(var t in this.body.edges)delete this.body.edges[t];A.recursiveDOMDelete(this.body.container)},n.prototype._updateValueRange=function(e){var t,i=void 0,o=void 0,n=0;for(t in e)if(e.hasOwnProperty(t)){var s=e[t].getValue();void 0!==s&&(i=void 0===i?s:Math.min(s,i),o=void 0===o?s:Math.max(s,o),n+=s)}if(void 0!==i&&void 0!==o)for(t in e)e.hasOwnProperty(t)&&e[t].setValueRange(i,o,n)},n.prototype.isActive=function(){return!this.activator||this.activator.active},n.prototype.setSize=function(){return this.canvas.setSize.apply(this.canvas,arguments)},n.prototype.canvasToDOM=function(){return this.canvas.canvasToDOM.apply(this.canvas,arguments)},n.prototype.DOMtoCanvas=function(){return this.canvas.DOMtoCanvas.apply(this.canvas,arguments)},n.prototype.findNode=function(){return this.clustering.findNode.apply(this.clustering,arguments)},n.prototype.isCluster=function(){return this.clustering.isCluster.apply(this.clustering,arguments)},n.prototype.openCluster=function(){return this.clustering.openCluster.apply(this.clustering,arguments)},n.prototype.cluster=function(){return this.clustering.cluster.apply(this.clustering,arguments)},n.prototype.getNodesInCluster=function(){return this.clustering.getNodesInCluster.apply(this.clustering,arguments)},n.prototype.clusterByConnection=function(){return this.clustering.clusterByConnection.apply(this.clustering,arguments)},n.prototype.clusterByHubsize=function(){return this.clustering.clusterByHubsize.apply(this.clustering,arguments)},n.prototype.clusterOutliers=function(){return this.clustering.clusterOutliers.apply(this.clustering,arguments)},n.prototype.getSeed=function(){return this.layoutEngine.getSeed.apply(this.layoutEngine,arguments)},n.prototype.enableEditMode=function(){return this.manipulation.enableEditMode.apply(this.manipulation,arguments)},n.prototype.disableEditMode=function(){return this.manipulation.disableEditMode.apply(this.manipulation,arguments)},n.prototype.addNodeMode=function(){return this.manipulation.addNodeMode.apply(this.manipulation,arguments)},n.prototype.editNode=function(){return this.manipulation.editNode.apply(this.manipulation,arguments)},n.prototype.editNodeMode=function(){return console.log("Deprecated: Please use editNode instead of editNodeMode."),this.manipulation.editNode.apply(this.manipulation,arguments)},n.prototype.addEdgeMode=function(){return this.manipulation.addEdgeMode.apply(this.manipulation,arguments)},n.prototype.editEdgeMode=function(){return this.manipulation.editEdgeMode.apply(this.manipulation,arguments)},n.prototype.deleteSelected=function(){return this.manipulation.deleteSelected.apply(this.manipulation,arguments)},n.prototype.getPositions=function(){return this.nodesHandler.getPositions.apply(this.nodesHandler,arguments)},n.prototype.storePositions=function(){return this.nodesHandler.storePositions.apply(this.nodesHandler,arguments)},n.prototype.moveNode=function(){return this.nodesHandler.moveNode.apply(this.nodesHandler,arguments)},n.prototype.getBoundingBox=function(){return this.nodesHandler.getBoundingBox.apply(this.nodesHandler,arguments)},n.prototype.getConnectedNodes=function(e){return void 0!==this.body.nodes[e]?this.nodesHandler.getConnectedNodes.apply(this.nodesHandler,arguments):this.edgesHandler.getConnectedNodes.apply(this.edgesHandler,arguments)},n.prototype.getConnectedEdges=function(){return this.nodesHandler.getConnectedEdges.apply(this.nodesHandler,arguments)},n.prototype.startSimulation=function(){return this.physics.startSimulation.apply(this.physics,arguments)},n.prototype.stopSimulation=function(){return this.physics.stopSimulation.apply(this.physics,arguments)},n.prototype.stabilize=function(){return this.physics.stabilize.apply(this.physics,arguments)},n.prototype.getSelection=function(){return this.selectionHandler.getSelection.apply(this.selectionHandler,arguments)},n.prototype.setSelection=function(){return this.selectionHandler.setSelection.apply(this.selectionHandler,arguments)},n.prototype.getSelectedNodes=function(){return this.selectionHandler.getSelectedNodes.apply(this.selectionHandler,arguments)},n.prototype.getSelectedEdges=function(){return this.selectionHandler.getSelectedEdges.apply(this.selectionHandler,arguments)},n.prototype.getNodeAt=function(){var e=this.selectionHandler.getNodeAt.apply(this.selectionHandler,arguments);return void 0!==e&&void 0!==e.id?e.id:e},n.prototype.getEdgeAt=function(){var e=this.selectionHandler.getEdgeAt.apply(this.selectionHandler,arguments);return void 0!==e&&void 0!==e.id?e.id:e},n.prototype.selectNodes=function(){return this.selectionHandler.selectNodes.apply(this.selectionHandler,arguments)},n.prototype.selectEdges=function(){return this.selectionHandler.selectEdges.apply(this.selectionHandler,arguments)},n.prototype.unselectAll=function(){this.selectionHandler.unselectAll.apply(this.selectionHandler,arguments),this.redraw()},n.prototype.redraw=function(){return this.renderer.redraw.apply(this.renderer,arguments)},n.prototype.getScale=function(){return this.view.getScale.apply(this.view,arguments)},n.prototype.getViewPosition=function(){return this.view.getViewPosition.apply(this.view,arguments)},n.prototype.fit=function(){return this.view.fit.apply(this.view,arguments)},n.prototype.moveTo=function(){return this.view.moveTo.apply(this.view,arguments)},n.prototype.focus=function(){return this.view.focus.apply(this.view,arguments)},n.prototype.releaseNode=function(){return this.view.releaseNode.apply(this.view,arguments)},n.prototype.getOptionsFromConfigurator=function(){var e={};return this.configurator&&(e=this.configurator.getOptions.apply(this.configurator)),e},e.exports=n},function(e,t){function i(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(t,"__esModule",{value:!0});var o=function(){function e(e,t){for(var i=0;i0){var i=this.groupIndex%this.groupsArray.length;this.groupIndex++,t={},t.color=this.groups[this.groupsArray[i]],this.groups[e]=t}else{var o=this.defaultIndex%this.defaultGroups.length;this.defaultIndex++,t={},t.color=this.defaultGroups[o],this.groups[e]=t}return t}},{key:"add",value:function(e,t){return this.groups[e]=t,this.groupsArray.push(e),t}}]),e}();t["default"]=r},function(e,t,i){function o(e){return e&&e.__esModule?e:{"default":e}}function n(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(t,"__esModule",{value:!0});var s=function(){function e(e,t){for(var i=0;ie.left&&this.shape.tope.top}},{key:"isBoundingBoxOverlappingWith",value:function(e){return this.shape.boundingBox.lefte.left&&this.shape.boundingBox.tope.top}}],[{key:"parseOptions",value:function(e,t){var i=arguments.length<=2||void 0===arguments[2]?!1:arguments[2],o=arguments.length<=3||void 0===arguments[3]?{}:arguments[3],n=["color","font","fixed","shadow"];if(z.selectiveNotDeepExtend(n,e,t,i),z.mergeOptions(e,t,"shadow",i,o),void 0!==t.color&&null!==t.color){var s=z.parseColor(t.color);z.fillIfDefined(e.color,s)}else i===!0&&null===t.color&&(e.color=z.bridgeObject(o.color));void 0!==t.fixed&&null!==t.fixed&&("boolean"==typeof t.fixed?(e.fixed.x=t.fixed,e.fixed.y=t.fixed):(void 0!==t.fixed.x&&"boolean"==typeof t.fixed.x&&(e.fixed.x=t.fixed.x),void 0!==t.fixed.y&&"boolean"==typeof t.fixed.y&&(e.fixed.y=t.fixed.y))),void 0!==t.font&&null!==t.font?a["default"].parseOptions(e.font,t):i===!0&&null===t.font&&(e.font=z.bridgeObject(o.font)),void 0!==t.scaling&&z.mergeOptions(e.scaling,t.scaling,"label",i,o.scaling)}}]),e}();t["default"]=R},function(e,t,i){function o(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(t,"__esModule",{value:!0});var n=function(){function e(e,t){var i=[],o=!0,n=!1,s=void 0;try{for(var r,a=e[Symbol.iterator]();!(o=(r=a.next()).done)&&(i.push(r.value),!t||i.length!==t);o=!0);}catch(h){n=!0,s=h}finally{try{!o&&a["return"]&&a["return"]()}finally{if(n)throw s}}return i}return function(t,i){if(Array.isArray(t))return t;if(Symbol.iterator in Object(t))return e(t,i);throw new TypeError("Invalid attempt to destructure non-iterable instance")}}(),s="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol?"symbol":typeof e},r=function(){function e(e,t){for(var i=0;i=this.nodeOptions.scaling.label.maxVisible&&(r=Number(this.nodeOptions.scaling.label.maxVisible)/this.body.view.scale);var h=this.size.yLine,d=this._getColor(a),l=n(d,2),c=l[0],u=l[1],f=this._setAlignment(e,i,h,s),p=n(f,2);i=p[0],h=p[1],e.font=(t&&this.nodeOptions.labelHighlightBold?"bold ":"")+r+"px "+this.fontOptions.face,e.fillStyle=c,this.isEdgeLabel||"left"!==this.fontOptions.align?e.textAlign="center":(e.textAlign=this.fontOptions.align,i-=.5*this.size.width),this.fontOptions.strokeWidth>0&&(e.lineWidth=this.fontOptions.strokeWidth,e.strokeStyle=u,e.lineJoin="round");for(var v=0;v0&&e.strokeText(this.lines[v],i,h),e.fillText(this.lines[v],i,h),h+=r}},{key:"_setAlignment",value:function(e,t,i,o){if(this.isEdgeLabel&&"horizontal"!==this.fontOptions.align&&this.pointToSelf===!1){t=0,i=0;var n=2;"top"===this.fontOptions.align?(e.textBaseline="alphabetic",i-=2*n):"bottom"===this.fontOptions.align?(e.textBaseline="hanging",i+=2*n):e.textBaseline="middle"}else e.textBaseline=o;return[t,i]}},{key:"_getColor",value:function(e){var t=this.fontOptions.color||"#000000",i=this.fontOptions.strokeColor||"#ffffff";if(e<=this.nodeOptions.scaling.label.drawThreshold){var o=Math.max(0,Math.min(1,1-(this.nodeOptions.scaling.label.drawThreshold-e)));t=a.overrideOpacity(t,o),i=a.overrideOpacity(i,o)}return[t,i]}},{key:"getTextSize",value:function(e){var t=arguments.length<=1||void 0===arguments[1]?!1:arguments[1],i={width:this._processLabel(e,t),height:this.fontOptions.size*this.lineCount,lineCount:this.lineCount};return i}},{key:"calculateLabelSize",value:function(e,t){var i=arguments.length<=2||void 0===arguments[2]?0:arguments[2],o=arguments.length<=3||void 0===arguments[3]?0:arguments[3],n=arguments.length<=4||void 0===arguments[4]?"middle":arguments[4];this.labelDirty===!0&&(this.size.width=this._processLabel(e,t)),this.size.height=this.fontOptions.size*this.lineCount,this.size.left=i-.5*this.size.width,this.size.top=o-.5*this.size.height,this.size.yLine=o+.5*(1-this.lineCount)*this.fontOptions.size,"hanging"===n&&(this.size.top+=.5*this.fontOptions.size,this.size.top+=4,this.size.yLine+=4),this.labelDirty=!1}},{key:"_processLabel",value:function(e,t){var i=0,o=[""],n=0;if(void 0!==this.nodeOptions.label){o=String(this.nodeOptions.label).split("\n"),n=o.length,e.font=(t&&this.nodeOptions.labelHighlightBold?"bold ":"")+this.fontOptions.size+"px "+this.fontOptions.face,i=e.measureText(o[0]).width;for(var s=1;n>s;s++){var r=e.measureText(o[s]).width;i=r>i?r:i}}return this.lines=o,this.lineCount=n,i}}],[{key:"parseOptions",value:function(e,t){var i=arguments.length<=2||void 0===arguments[2]?!1:arguments[2];if("string"==typeof t.font){var o=t.font.split(" ");e.size=o[0].replace("px",""),e.face=o[1],e.color=o[2]}else"object"===s(t.font)&&a.fillIfDefined(e,t.font,i);e.size=Number(e.size)}}]),e}();t["default"]=h},function(e,t,i){function o(e){return e&&e.__esModule?e:{"default":e}}function n(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function s(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function r(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(t,"__esModule",{value:!0});var a=function(){function e(e,t){for(var i=0;i0&&(this.enableBorderDashes(e),e.stroke(),this.disableBorderDashes(e)),e.restore(),this.updateBoundingBox(t,i,e,o),this.labelModule.draw(e,t,i,o)}},{key:"updateBoundingBox",value:function(e,t,i,o){this.resize(i,o),this.left=e-.5*this.width,this.top=t-.5*this.height;var n=this.options.shapeProperties.borderRadius;this.boundingBox.left=this.left-n,this.boundingBox.top=this.top-n,this.boundingBox.bottom=this.top+this.height+n,this.boundingBox.right=this.left+this.width+n}},{key:"distanceToBorder",value:function(e,t){this.resize(e);var i=this.options.borderWidth;return Math.min(Math.abs(this.width/2/Math.cos(t)),Math.abs(this.height/2/Math.sin(t)))+i}}]),t}(d["default"]);t["default"]=l},function(e,t){function i(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(t,"__esModule",{value:!0});var o=function(){function e(e,t){for(var i=0;ithis.imageObj.height?(o=this.imageObj.width/this.imageObj.height,t=2*this.options.size*o||this.imageObj.width,i=2*this.options.size||this.imageObj.height):(o=this.imageObj.width&&this.imageObj.height?this.imageObj.height/this.imageObj.width:1,t=2*this.options.size,i=2*this.options.size*o):(t=this.imageObj.width,i=this.imageObj.height),this.width=t,this.height=i,this.radius=.5*this.width}}},{key:"_drawRawCircle",value:function(e,t,i,o,n,s){var r=this.options.borderWidth,a=this.options.borderWidthSelected||2*this.options.borderWidth,h=(o?a:r)/this.body.view.scale;e.lineWidth=Math.min(this.width,h),e.strokeStyle=o?this.options.color.highlight.border:n?this.options.color.hover.border:this.options.color.border,e.fillStyle=o?this.options.color.highlight.background:n?this.options.color.hover.background:this.options.color.background,e.circle(t,i,s),this.enableShadow(e),e.fill(),this.disableShadow(e),e.save(),h>0&&(this.enableBorderDashes(e),e.stroke(),this.disableBorderDashes(e)),e.restore()}},{key:"_drawImageAtPosition",value:function(e){if(0!=this.imageObj.width){e.globalAlpha=1,this.enableShadow(e);var t=this.imageObj.width/this.width/this.body.view.scale;if(t>2&&this.options.shapeProperties.interpolation===!0){var i=this.imageObj.width,o=this.imageObj.height,n=document.createElement("canvas");n.width=i,n.height=i;var s=n.getContext("2d");t*=.5,i*=.5,o*=.5,s.drawImage(this.imageObj,0,0,i,o);for(var r=0,a=1;t>2&&4>a;)s.drawImage(n,r,0,i,o,r+i,0,i/2,o/2),r+=i,t*=.5,i*=.5,o*=.5,a+=1;e.drawImage(n,r,0,i,o,this.left,this.top,this.width,this.height)}else e.drawImage(this.imageObj,this.left,this.top,this.width,this.height);this.disableShadow(e)}}},{key:"_drawImageLabel",value:function(e,t,i,o){var n,s=0;if(void 0!==this.height){s=.5*this.height;var r=this.labelModule.getTextSize(e);r.lineCount>=1&&(s+=r.height/2)}n=i+s,this.options.label&&(this.labelOffset=s),this.labelModule.draw(e,t,n,o,"hanging")}}]),t}(d["default"]);t["default"]=l},function(e,t,i){function o(e){return e&&e.__esModule?e:{"default":e}}function n(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function s(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function r(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(t,"__esModule",{value:!0});var a=function(){function e(e,t){for(var i=0;i0&&(this.enableBorderDashes(e),e.stroke(),this.disableBorderDashes(e)),e.restore(),this.updateBoundingBox(t,i,e,o),this.labelModule.draw(e,t,i,o)}},{key:"updateBoundingBox",value:function(e,t,i,o){this.resize(i,o),this.left=e-.5*this.width,this.top=t-.5*this.height,this.boundingBox.left=this.left,this.boundingBox.top=this.top,this.boundingBox.bottom=this.top+this.height,this.boundingBox.right=this.left+this.width}},{key:"distanceToBorder",value:function(e,t){return this._distanceToBorder(e,t)}}]),t}(d["default"]);t["default"]=l},function(e,t,i){function o(e){return e&&e.__esModule?e:{"default":e}}function n(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function s(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function r(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(t,"__esModule",{value:!0});var a=function(){function e(e,t){for(var i=0;i0&&(this.enableBorderDashes(e),e.stroke(),this.disableBorderDashes(e)),e.restore(),void 0!==this.options.label){var l=n+.5*this.height+3;this.labelModule.draw(e,o,l,s,"hanging")}this.updateBoundingBox(o,n)}},{key:"updateBoundingBox",value:function(e,t){this.boundingBox.top=t-this.options.size,this.boundingBox.left=e-this.options.size,this.boundingBox.right=e+this.options.size,this.boundingBox.bottom=t+this.options.size,void 0!==this.options.label&&this.labelModule.size.width>0&&(this.boundingBox.left=Math.min(this.boundingBox.left,this.labelModule.size.left),this.boundingBox.right=Math.max(this.boundingBox.right,this.labelModule.size.left+this.labelModule.size.width),this.boundingBox.bottom=Math.max(this.boundingBox.bottom,this.boundingBox.bottom+this.labelModule.size.height+3))}}]),t}(d["default"]);t["default"]=l},function(e,t,i){function o(e){return e&&e.__esModule?e:{"default":e}}function n(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function s(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function r(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(t,"__esModule",{value:!0});var a=function(){function e(e,t){for(var i=0;i0&&(this.enableBorderDashes(e),e.stroke(),this.disableBorderDashes(e)),e.restore(),this.updateBoundingBox(t,i,e,o),this.labelModule.draw(e,t,i,o)}},{key:"updateBoundingBox",value:function(e,t,i,o){this.resize(i,o),this.left=e-.5*this.width,this.top=t-.5*this.height,this.boundingBox.left=this.left,this.boundingBox.top=this.top,this.boundingBox.bottom=this.top+this.height,this.boundingBox.right=this.left+this.width}},{key:"distanceToBorder",value:function(e,t){this.resize(e);var i=.5*this.width,o=.5*this.height,n=Math.sin(t)*i,s=Math.cos(t)*o;return i*o/Math.sqrt(n*n+s*s)}}]),t}(d["default"]);t["default"]=l},function(e,t,i){function o(e){return e&&e.__esModule?e:{"default":e}}function n(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function s(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function r(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(t,"__esModule",{value:!0});var a=function(){function e(e,t){for(var i=0;i0){var i=5;this.boundingBox.left=Math.min(this.boundingBox.left,this.labelModule.size.left),this.boundingBox.right=Math.max(this.boundingBox.right,this.labelModule.size.left+this.labelModule.size.width),this.boundingBox.bottom=Math.max(this.boundingBox.bottom,this.boundingBox.bottom+this.labelModule.size.height+i)}}},{key:"_icon",value:function(e,t,i,o){var n=Number(this.options.icon.size);void 0!==this.options.icon.code?(e.font=(o?"bold ":"")+n+"px "+this.options.icon.face,e.fillStyle=this.options.icon.color||"black",e.textAlign="center",e.textBaseline="middle",this.enableShadow(e),e.fillText(this.options.icon.code,t,i),this.disableShadow(e)):console.error("When using the icon shape, you need to define the code in the icon options object. This can be done per node or globally.")}},{key:"distanceToBorder",value:function(e,t){return this._distanceToBorder(e,t)}}]),t}(d["default"]);t["default"]=l},function(e,t,i){function o(e){return e&&e.__esModule?e:{"default":e}}function n(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function s(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function r(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(t,"__esModule",{value:!0});var a=function(){function e(e,t){for(var i=0;i0&&(this.enableBorderDashes(e),e.stroke(),this.disableBorderDashes(e)),e.restore(),e.closePath()}this._drawImageAtPosition(e),this._drawImageLabel(e,t,i,o||n),this.updateBoundingBox(t,i)}},{key:"updateBoundingBox",value:function(e,t){this.resize(),this.left=e-this.width/2,this.top=t-this.height/2,this.boundingBox.top=this.top,this.boundingBox.left=this.left,this.boundingBox.right=this.left+this.width,this.boundingBox.bottom=this.top+this.height,void 0!==this.options.label&&this.labelModule.size.width>0&&(this.boundingBox.left=Math.min(this.boundingBox.left,this.labelModule.size.left),this.boundingBox.right=Math.max(this.boundingBox.right,this.labelModule.size.left+this.labelModule.size.width),this.boundingBox.bottom=Math.max(this.boundingBox.bottom,this.boundingBox.bottom+this.labelOffset))}},{key:"distanceToBorder",value:function(e,t){return this._distanceToBorder(e,t)}}]),t}(d["default"]);t["default"]=l},function(e,t,i){function o(e){return e&&e.__esModule?e:{"default":e}}function n(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function s(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function r(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(t,"__esModule",{value:!0});var a=function(){function e(e,t){for(var i=0;is.distance?console.log('%cUnknown option detected: "'+t+'" in '+e.printLocation(n.path,t,"")+"Perhaps it was misplaced? Matching option found at: "+e.printLocation(s.path,s.closestMatch,""),d):n.distance<=r?console.log('%cUnknown option detected: "'+t+'". Did you mean "'+n.closestMatch+'"?'+e.printLocation(n.path,t),d):console.log('%cUnknown option detected: "'+t+'". Did you mean one of these: '+e.print(Object.keys(i))+e.printLocation(o,t),d),a=!0}},{key:"findInOptions",value:function(t,i,o){var n=arguments.length<=3||void 0===arguments[3]?!1:arguments[3],s=1e9,a="",h=[],d=t.toLowerCase(),l=void 0;for(var c in i){var u=void 0;if(void 0!==i[c].__type__&&n===!0){var f=e.findInOptions(t,i[c],r.copyAndExtendArray(o,c));s>f.distance&&(a=f.closestMatch,h=f.path,s=f.distance,l=f.indexMatch)}else-1!==c.toLowerCase().indexOf(d)&&(l=c),u=e.levenshteinDistance(t,c),s>u&&(a=c,h=r.copyArray(o),s=u)}return{closestMatch:a,path:h,distance:s,indexMatch:l}}},{key:"printLocation",value:function(e,t){for(var i=arguments.length<=2||void 0===arguments[2]?"Problem value found at: \n":arguments[2],o="\n\n"+i+"options = {\n",n=0;ns;s++)o+=" ";o+=e[n]+": {\n"}for(var r=0;ri.shape.height?(r=i.x+.5*i.shape.width,a=i.y-h):(r=i.x+h,a=i.y-.5*i.shape.height),s=this._pointOnCircle(r,a,h,.125),this.labelModule.draw(e,s.x,s.y,n)}}}},{key:"isOverlappingWith",value:function(e){if(this.connected){var t=10,i=this.from.x,o=this.from.y,n=this.to.x,s=this.to.y,r=e.left,a=e.top,h=this.edgeType.getDistanceToEdge(i,o,n,s,r,a); +return t>h}return!1}},{key:"_rotateForLabelAlignment",value:function(e){var t=this.from.y-this.to.y,i=this.from.x-this.to.x,o=Math.atan2(t,i);(-1>o&&0>i||o>0&&0>i)&&(o+=Math.PI),e.rotate(o)}},{key:"_pointOnCircle",value:function(e,t,i,o){var n=2*o*Math.PI;return{x:e+i*Math.cos(n),y:t-i*Math.sin(n)}}},{key:"select",value:function(){this.selected=!0}},{key:"unselect",value:function(){this.selected=!1}},{key:"cleanup",value:function(){return this.edgeType.cleanup()}}],[{key:"parseOptions",value:function(e,t){var i=arguments.length<=2||void 0===arguments[2]?!1:arguments[2],o=arguments.length<=3||void 0===arguments[3]?{}:arguments[3],n=["arrowStrikethrough","id","from","hidden","hoverWidth","label","labelHighlightBold","length","line","opacity","physics","scaling","selectionWidth","selfReferenceSize","to","title","value","width"];if(g.selectiveDeepExtend(n,e,t,i),g.mergeOptions(e,t,"smooth",i,o),g.mergeOptions(e,t,"shadow",i,o),void 0!==t.dashes&&null!==t.dashes?e.dashes=t.dashes:i===!0&&null===t.dashes&&(e.dashes=Object.create(o.dashes)),void 0!==t.scaling&&null!==t.scaling?(void 0!==t.scaling.min&&(e.scaling.min=t.scaling.min),void 0!==t.scaling.max&&(e.scaling.max=t.scaling.max),g.mergeOptions(e.scaling,t.scaling,"label",i,o.scaling)):i===!0&&null===t.scaling&&(e.scaling=Object.create(o.scaling)),void 0!==t.arrows&&null!==t.arrows)if("string"==typeof t.arrows){var r=t.arrows.toLowerCase();-1!=r.indexOf("to")&&(e.arrows.to.enabled=!0),-1!=r.indexOf("middle")&&(e.arrows.middle.enabled=!0),-1!=r.indexOf("from")&&(e.arrows.from.enabled=!0)}else{if("object"!==s(t.arrows))throw new Error("The arrow newOptions can only be an object or a string. Refer to the documentation. You used:"+JSON.stringify(t.arrows));g.mergeOptions(e.arrows,t.arrows,"to",i,o.arrows),g.mergeOptions(e.arrows,t.arrows,"middle",i,o.arrows),g.mergeOptions(e.arrows,t.arrows,"from",i,o.arrows)}else i===!0&&null===t.arrows&&(e.arrows=Object.create(o.arrows));if(void 0!==t.color&&null!==t.color)if(e.color=g.deepExtend({},e.color,!0),g.isString(t.color))e.color.color=t.color,e.color.highlight=t.color,e.color.hover=t.color,e.color.inherit=!1;else{var a=!1;void 0!==t.color.color&&(e.color.color=t.color.color,a=!0),void 0!==t.color.highlight&&(e.color.highlight=t.color.highlight,a=!0),void 0!==t.color.hover&&(e.color.hover=t.color.hover,a=!0),void 0!==t.color.inherit&&(e.color.inherit=t.color.inherit),void 0!==t.color.opacity&&(e.color.opacity=Math.min(1,Math.max(0,t.color.opacity))),void 0===t.color.inherit&&a===!0&&(e.color.inherit=!1)}else i===!0&&null===t.color&&(e.color=g.bridgeObject(o.color));void 0!==t.font&&null!==t.font?h["default"].parseOptions(e.font,t):i===!0&&null===t.font&&(e.font=g.bridgeObject(o.font))}}]),e}();t["default"]=b},function(e,t,i){function o(e){return e&&e.__esModule?e:{"default":e}}function n(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function s(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function r(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(t,"__esModule",{value:!0});var a=function(){function e(e,t){var i=[],o=!0,n=!1,s=void 0;try{for(var r,a=e[Symbol.iterator]();!(o=(r=a.next()).done)&&(i.push(r.value),!t||i.length!==t);o=!0);}catch(h){n=!0,s=h}finally{try{!o&&a["return"]&&a["return"]()}finally{if(n)throw s}}return i}return function(t,i){if(Array.isArray(t))return t;if(Symbol.iterator in Object(t))return e(t,i);throw new TypeError("Invalid attempt to destructure non-iterable instance")}}(),h=function(){function e(e,t){for(var i=0;iMath.abs(t)||this.options.smooth.forceDirection===!0||"horizontal"===this.options.smooth.forceDirection)&&"vertical"!==this.options.smooth.forceDirection?(o=this.from.y,s=this.to.y,i=this.from.x-r*e,n=this.to.x+r*e):(o=this.from.y-r*t,s=this.to.y+r*t,i=this.from.x,n=this.to.x),[{x:i,y:o},{x:n,y:s}]}},{key:"getViaNode",value:function(){return this._getViaCoordinates()}},{key:"_findBorderPosition",value:function(e,t){return this._findBorderPositionBezier(e,t)}},{key:"_getDistanceToEdge",value:function(e,t,i,o,n,s){var r=arguments.length<=6||void 0===arguments[6]?this._getViaCoordinates():arguments[6],h=a(r,2),d=h[0],l=h[1];return this._getDistanceToBezierEdge(e,t,i,o,n,s,d,l)}},{key:"getPoint",value:function(e){var t=arguments.length<=1||void 0===arguments[1]?this._getViaCoordinates():arguments[1],i=a(t,2),o=i[0],n=i[1],s=e,r=[];r[0]=Math.pow(1-s,3),r[1]=3*s*Math.pow(1-s,2),r[2]=3*Math.pow(s,2)*(1-s),r[3]=Math.pow(s,3);var h=r[0]*this.fromPoint.x+r[1]*o.x+r[2]*n.x+r[3]*this.toPoint.x,d=r[0]*this.fromPoint.y+r[1]*o.y+r[2]*n.y+r[3]*this.toPoint.y;return{x:h,y:d}}}]),t}(l["default"]);t["default"]=c},function(e,t,i){function o(e){return e&&e.__esModule?e:{"default":e}}function n(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function s(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function r(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(t,"__esModule",{value:!0});var a=function(){function e(e,t){for(var i=0;il;l++)c=.1*l,y[0]=Math.pow(1-c,3),y[1]=3*c*Math.pow(1-c,2),y[2]=3*Math.pow(c,2)*(1-c),y[3]=Math.pow(c,3),u=y[0]*e+y[1]*r.x+y[2]*a.x+y[3]*i,f=y[0]*t+y[1]*r.y+y[2]*a.y+y[3]*o,l>0&&(d=this._getDistanceToLine(p,v,u,f,n,s),h=h>d?d:h),p=u,v=f;return h}}]),t}(d["default"]);t["default"]=l},function(e,t,i){function o(e){return e&&e.__esModule?e:{"default":e}}function n(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function s(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function r(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(t,"__esModule",{value:!0});var a=function(){function e(e,t){for(var i=0;i=l&&h>d;){var v=.5*(l+c);if(i=this.getPoint(v,a),o=Math.atan2(f.y-i.y,f.x-i.x),n=f.distanceToBorder(t,o),s=Math.sqrt(Math.pow(i.x-f.x,2)+Math.pow(i.y-f.y,2)),r=n-s,Math.abs(r)r?p===!1?l=v:c=v:p===!1?c=v:l=v,d++}return i.t=v,i}},{key:"_getDistanceToBezierEdge",value:function(e,t,i,o,n,s,r){var a=1e9,h=void 0,d=void 0,l=void 0,c=void 0,u=void 0,f=e,p=t;for(d=1;10>d;d++)l=.1*d,c=Math.pow(1-l,2)*e+2*l*(1-l)*r.x+Math.pow(l,2)*i,u=Math.pow(1-l,2)*t+2*l*(1-l)*r.y+Math.pow(l,2)*o,d>0&&(h=this._getDistanceToLine(f,p,c,u,n,s),a=a>h?h:a),f=c,p=u;return a}}]),t}(d["default"]);t["default"]=l},function(e,t,i){function o(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(t,"__esModule",{value:!0});var n=function(){function e(e,t){var i=[],o=!0,n=!1,s=void 0;try{for(var r,a=e[Symbol.iterator]();!(o=(r=a.next()).done)&&(i.push(r.value),!t||i.length!==t);o=!0);}catch(h){n=!0,s=h}finally{try{!o&&a["return"]&&a["return"]()}finally{if(n)throw s}}return i}return function(t,i){if(Array.isArray(t))return t;if(Symbol.iterator in Object(t))return e(t,i);throw new TypeError("Invalid attempt to destructure non-iterable instance")}}(),s=function(){function e(e,t){for(var i=0;io.shape.height?(t=o.x+.5*o.shape.width,i=o.y-n):(t=o.x+n,i=o.y-.5*o.shape.height),[t,i,n]}},{key:"_pointOnCircle",value:function(e,t,i,o){var n=2*o*Math.PI;return{x:e+i*Math.cos(n),y:t-i*Math.sin(n)}}},{key:"_findBorderPositionCircle",value:function(e,t,i){for(var o=i.x,n=i.y,s=i.low,r=i.high,a=i.direction,h=10,d=0,l=this.options.selfReferenceSize,c=void 0,u=void 0,f=void 0,p=void 0,v=void 0,y=.05,g=.5*(s+r);r>=s&&h>d&&(g=.5*(s+r),c=this._pointOnCircle(o,n,l,g),u=Math.atan2(e.y-c.y,e.x-c.x),f=e.distanceToBorder(t,u),p=Math.sqrt(Math.pow(c.x-e.x,2)+Math.pow(c.y-e.y,2)),v=f-p,!(Math.abs(v)0?a>0?s=g:r=g:a>0?r=g:s=g,d++;return c.t=g,c}},{key:"getLineWidth",value:function(e,t){return e===!0?Math.max(this.selectionWidth,.3/this.body.view.scale):t===!0?Math.max(this.hoverWidth,.3/this.body.view.scale):Math.max(this.options.width,.3/this.body.view.scale)}},{key:"getColor",value:function(e,t,i){var o=this.options.color;if(o.inherit!==!1){if("both"===o.inherit&&this.from.id!==this.to.id){var n=e.createLinearGradient(this.from.x,this.from.y,this.to.x,this.to.y),s=void 0,a=void 0;return s=this.from.options.color.highlight.border,a=this.to.options.color.highlight.border,this.from.selected===!1&&this.to.selected===!1?(s=r.overrideOpacity(this.from.options.color.border,this.options.color.opacity),a=r.overrideOpacity(this.to.options.color.border,this.options.color.opacity)):this.from.selected===!0&&this.to.selected===!1?a=this.to.options.color.border:this.from.selected===!1&&this.to.selected===!0&&(s=this.from.options.color.border),n.addColorStop(0,s),n.addColorStop(1,a),n}this.colorDirty===!0&&("to"===o.inherit?(this.color.highlight=this.to.options.color.highlight.border,this.color.hover=this.to.options.color.hover.border,this.color.color=r.overrideOpacity(this.to.options.color.border,o.opacity)):(this.color.highlight=this.from.options.color.highlight.border,this.color.hover=this.from.options.color.hover.border,this.color.color=r.overrideOpacity(this.from.options.color.border,o.opacity)))}else this.colorDirty===!0&&(this.color.highlight=o.highlight,this.color.hover=o.hover,this.color.color=r.overrideOpacity(o.color,o.opacity));return this.colorDirty=!1,t===!0?this.color.highlight:i===!0?this.color.hover:this.color.color}},{key:"_circle",value:function(e,t,i,o){this.enableShadow(e),e.beginPath(),e.arc(t,i,o,0,2*Math.PI,!1),e.stroke(),this.disableShadow(e)}},{key:"getDistanceToEdge",value:function(e,t,i,o,s,r,a){var h=0;if(this.from!=this.to)h=this._getDistanceToEdge(e,t,i,o,s,r,a);else{var d=this._getCircleData(),l=n(d,3),c=l[0],u=l[1],f=l[2],p=c-s,v=u-r;h=Math.abs(Math.sqrt(p*p+v*v)-f)}return this.labelModule.size.lefts&&this.labelModule.size.topr?0:h}},{key:"_getDistanceToLine",value:function(e,t,i,o,n,s){var r=i-e,a=o-t,h=r*r+a*a,d=((n-e)*r+(s-t)*a)/h;d>1?d=1:0>d&&(d=0);var l=e+d*r,c=t+d*a,u=l-n,f=c-s;return Math.sqrt(u*u+f*f)}},{key:"getArrowData",value:function(e,t,i,o,s){var r=void 0,a=void 0,h=void 0,d=void 0,l=void 0,c=void 0,u=this.getLineWidth(o,s);if("from"===t?(h=this.from,d=this.to,l=.1,c=this.options.arrows.from.scaleFactor):"to"===t?(h=this.to,d=this.from,l=-.1,c=this.options.arrows.to.scaleFactor):(h=this.to,d=this.from,c=this.options.arrows.middle.scaleFactor),h!=d)if("middle"!==t)if(this.options.smooth.enabled===!0){a=this.findBorderPosition(h,e,{via:i});var f=this.getPoint(Math.max(0,Math.min(1,a.t+l)),i);r=Math.atan2(a.y-f.y,a.x-f.x)}else r=Math.atan2(h.y-d.y,h.x-d.x),a=this.findBorderPosition(h,e);else r=Math.atan2(h.y-d.y,h.x-d.x),a=this.getPoint(.5,i);else{var p=this._getCircleData(e),v=n(p,3),y=v[0],g=v[1],b=v[2];"from"===t?(a=this.findBorderPosition(this.from,e,{x:y,y:g,low:.25,high:.6,direction:-1}),r=-2*a.t*Math.PI+1.5*Math.PI+.1*Math.PI):"to"===t?(a=this.findBorderPosition(this.from,e,{x:y,y:g,low:.6,high:1,direction:1}),r=-2*a.t*Math.PI+1.5*Math.PI-1.1*Math.PI):(a=this._pointOnCircle(y,g,b,.175),r=3.9269908169872414)}var m=15*c+3*u,_=a.x-.9*m*Math.cos(r),w=a.y-.9*m*Math.sin(r),k={x:_,y:w};return{point:a,core:k,angle:r,length:m}}},{key:"drawArrowHead",value:function(e,t,i,o){e.strokeStyle=this.getColor(e,t,i),e.fillStyle=e.strokeStyle,e.lineWidth=this.getLineWidth(t,i),e.arrow(o.point.x,o.point.y,o.angle,o.length),this.enableShadow(e),e.fill(),this.disableShadow(e)}},{key:"enableShadow",value:function(e){this.options.shadow.enabled===!0&&(e.shadowColor=this.options.shadow.color,e.shadowBlur=this.options.shadow.size,e.shadowOffsetX=this.options.shadow.x,e.shadowOffsetY=this.options.shadow.y)}},{key:"disableShadow",value:function(e){this.options.shadow.enabled===!0&&(e.shadowColor="rgba(0,0,0,0)",e.shadowBlur=0,e.shadowOffsetX=0,e.shadowOffsetY=0)}}]),e}();t["default"]=a},function(e,t,i){function o(e){return e&&e.__esModule?e:{"default":e}}function n(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function s(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function r(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(t,"__esModule",{value:!0});var a=function(){function e(e,t){for(var i=0;i=this.to.y?this.from.x<=this.to.x?(e=this.from.x+i*s,t=this.from.y-i*s):this.from.x>this.to.x&&(e=this.from.x-i*s,t=this.from.y-i*s):this.from.ythis.to.x&&(e=this.from.x-i*s,t=this.from.y+i*s)),"discrete"===o&&(e=i*s>n?this.from.x:e)):Math.abs(this.from.x-this.to.x)>Math.abs(this.from.y-this.to.y)&&(this.from.y>=this.to.y?this.from.x<=this.to.x?(e=this.from.x+i*n,t=this.from.y-i*n):this.from.x>this.to.x&&(e=this.from.x-i*n,t=this.from.y-i*n):this.from.ythis.to.x&&(e=this.from.x-i*n,t=this.from.y+i*n)),"discrete"===o&&(t=i*n>s?this.from.y:t));else if("straightCross"===o)Math.abs(this.from.x-this.to.x)<=Math.abs(this.from.y-this.to.y)?(e=this.from.x,t=this.from.yMath.abs(this.from.y-this.to.y)&&(e=this.from.x=this.to.y?this.from.x<=this.to.x?(e=this.from.x+i*s,t=this.from.y-i*s,e=this.to.xthis.to.x&&(e=this.from.x-i*s,t=this.from.y-i*s,e=this.to.x>e?this.to.x:e):this.from.ythis.to.x&&(e=this.from.x-i*s,t=this.from.y+i*s,e=this.to.x>e?this.to.x:e)):Math.abs(this.from.x-this.to.x)>Math.abs(this.from.y-this.to.y)&&(this.from.y>=this.to.y?this.from.x<=this.to.x?(e=this.from.x+i*n,t=this.from.y-i*n,t=this.to.y>t?this.to.y:t):this.from.x>this.to.x&&(e=this.from.x-i*n,t=this.from.y-i*n,t=this.to.y>t?this.to.y:t):this.from.ythis.to.x&&(e=this.from.x-i*n,t=this.from.y+i*n,t=this.to.y1||this.startedStabilization===!0)&&setTimeout(function(){e.body.emitter.emit("stabilized",{iterations:t}),e.startedStabilization=!1,e.stabilizationIterations=0},0)}},{key:"physicsTick",value:function(){if(this.startedStabilization===!1&&(this.body.emitter.emit("startStabilizing"),this.startedStabilization=!0),this.stabilized===!1){if(this.adaptiveTimestep===!0&&this.adaptiveTimestepEnabled===!0){var e=1.2;this.adaptiveCounter%this.adaptiveInterval===0?(this.timestep=2*this.timestep,this.calculateForces(),this.moveNodes(),this.revert(),this.timestep=.5*this.timestep,this.calculateForces(),this.moveNodes(),this.calculateForces(),this.moveNodes(),this._evaluateStepQuality()===!0?this.timestep=e*this.timestep:this.timestep/es))return!1;return!0}},{key:"moveNodes",value:function(){for(var e=this.physicsBody.physicsNodeIndices,t=this.options.maxVelocity?this.options.maxVelocity:1e9,i=0,o=0,n=5,s=0;st?s[e].x>0?t:-t:s[e].x,i.x+=s[e].x*o}else n[e].x=0,s[e].x=0;if(i.options.fixed.y===!1){var h=this.modelOptions.damping*s[e].y,d=(n[e].y-h)/i.options.mass;s[e].y+=d*o,s[e].y=Math.abs(s[e].y)>t?s[e].y>0?t:-t:s[e].y,i.y+=s[e].y*o}else n[e].y=0,s[e].y=0;var l=Math.sqrt(Math.pow(s[e].x,2)+Math.pow(s[e].y,2));return l}},{key:"calculateForces",value:function(){this.gravitySolver.solve(),this.nodesSolver.solve(),this.edgesSolver.solve()}},{key:"_freezeNodes",value:function(){var e=this.body.nodes;for(var t in e)e.hasOwnProperty(t)&&e[t].x&&e[t].y&&(this.freezeCache[t]={x:e[t].options.fixed.x,y:e[t].options.fixed.y},e[t].options.fixed.x=!0,e[t].options.fixed.y=!0)}},{key:"_restoreFrozenNodes",value:function(){var e=this.body.nodes;for(var t in e)e.hasOwnProperty(t)&&void 0!==this.freezeCache[t]&&(e[t].options.fixed.x=this.freezeCache[t].x,e[t].options.fixed.y=this.freezeCache[t].y);this.freezeCache={}}},{key:"stabilize",value:function(){var e=this,t=arguments.length<=0||void 0===arguments[0]?this.options.stabilization.iterations:arguments[0];return"number"!=typeof t&&(console.log("The stabilize method needs a numeric amount of iterations. Switching to default: ",this.options.stabilization.iterations),t=this.options.stabilization.iterations),0===this.physicsBody.physicsNodeIndices.length?void(this.ready=!0):(this.adaptiveTimestep=this.options.adaptiveTimestep,this.body.emitter.emit("_resizeNodes"),this.stopSimulation(),this.stabilized=!1,this.body.emitter.emit("_blockRedraw"),this.targetIterations=t,this.options.stabilization.onlyDynamicEdges===!0&&this._freezeNodes(),this.stabilizationIterations=0,void setTimeout(function(){return e._stabilizationBatch()},0))}},{key:"_stabilizationBatch",value:function(){this.startedStabilization===!1&&(this.body.emitter.emit("startStabilizing"),this.startedStabilization=!0);for(var e=0;this.stabilized===!1&&e0){var e=void 0,t=this.body.nodes,i=this.physicsBody.physicsNodeIndices,o=i.length,n=this._formBarnesHutTree(t,i);this.barnesHutTree=n;for(var s=0;o>s;s++)e=t[i[s]],e.options.mass>0&&(this._getForceContribution(n.root.children.NW,e),this._getForceContribution(n.root.children.NE,e),this._getForceContribution(n.root.children.SW,e),this._getForceContribution(n.root.children.SE,e))}}},{key:"_getForceContribution",value:function(e,t){if(e.childrenCount>0){var i=void 0,o=void 0,n=void 0;i=e.centerOfMass.x-t.x,o=e.centerOfMass.y-t.y,n=Math.sqrt(i*i+o*o),n*e.calcSize>this.thetaInversed?this._calculateForces(n,i,o,t,e):4===e.childrenCount?(this._getForceContribution(e.children.NW,t),this._getForceContribution(e.children.NE,t),this._getForceContribution(e.children.SW,t),this._getForceContribution(e.children.SE,t)):e.children.data.id!=t.id&&this._calculateForces(n,i,o,t,e)}}},{key:"_calculateForces",value:function(e,t,i,o,n){0===e&&(e=.1,t=e),this.overlapAvoidanceFactor<1&&(e=Math.max(.1+this.overlapAvoidanceFactor*o.shape.radius,e-o.shape.radius));var s=this.options.gravitationalConstant*n.mass*o.options.mass/Math.pow(e,3),r=t*s,a=i*s;this.physicsBody.forces[o.id].x+=r,this.physicsBody.forces[o.id].y+=a}},{key:"_formBarnesHutTree",value:function(e,t){for(var i=void 0,o=t.length,n=e[t[0]].x,s=e[t[0]].y,r=e[t[0]].x,a=e[t[0]].y,h=1;o>h;h++){var d=e[t[h]].x,l=e[t[h]].y;e[t[h]].options.mass>0&&(n>d&&(n=d),d>r&&(r=d),s>l&&(s=l),l>a&&(a=l))}var c=Math.abs(r-n)-Math.abs(a-s);c>0?(s-=.5*c,a+=.5*c):(n+=.5*c,r-=.5*c);var u=1e-5,f=Math.max(u,Math.abs(r-n)),p=.5*f,v=.5*(n+r),y=.5*(s+a),g={root:{centerOfMass:{x:0,y:0},mass:0,range:{minX:v-p,maxX:v+p,minY:y-p,maxY:y+p},size:f,calcSize:1/f,children:{data:null},maxWidth:0,level:0,childrenCount:4}};this._splitBranch(g.root);for(var b=0;o>b;b++)i=e[t[b]],i.options.mass>0&&this._placeInTree(g.root,i);return g}},{key:"_updateBranchMass",value:function(e,t){var i=e.mass+t.options.mass,o=1/i;e.centerOfMass.x=e.centerOfMass.x*e.mass+t.x*t.options.mass,e.centerOfMass.x*=o,e.centerOfMass.y=e.centerOfMass.y*e.mass+t.y*t.options.mass,e.centerOfMass.y*=o,e.mass=i;var n=Math.max(Math.max(t.height,t.radius),t.width);e.maxWidth=e.maxWidtht.x?e.children.NW.range.maxY>t.y?this._placeInRegion(e,t,"NW"):this._placeInRegion(e,t,"SW"):e.children.NW.range.maxY>t.y?this._placeInRegion(e,t,"NE"):this._placeInRegion(e,t,"SE")}},{key:"_placeInRegion",value:function(e,t,i){switch(e.children[i].childrenCount){case 0:e.children[i].children.data=t,e.children[i].childrenCount=1,this._updateBranchMass(e.children[i],t);break;case 1:e.children[i].children.data.x===t.x&&e.children[i].children.data.y===t.y?(t.x+=this.seededRandom(),t.y+=this.seededRandom()):(this._splitBranch(e.children[i]),this._placeInTree(e.children[i],t));break;case 4:this._placeInTree(e.children[i],t)}}},{key:"_splitBranch",value:function(e){var t=null;1===e.childrenCount&&(t=e.children.data,e.mass=0,e.centerOfMass.x=0,e.centerOfMass.y=0),e.childrenCount=4,e.children.data=null,this._insertRegion(e,"NW"),this._insertRegion(e,"NE"),this._insertRegion(e,"SW"),this._insertRegion(e,"SE"),null!=t&&this._placeInTree(e,t)}},{key:"_insertRegion",value:function(e,t){var i=void 0,o=void 0,n=void 0,s=void 0,r=.5*e.size;switch(t){case"NW":i=e.range.minX,o=e.range.minX+r,n=e.range.minY,s=e.range.minY+r;break;case"NE":i=e.range.minX+r,o=e.range.maxX,n=e.range.minY,s=e.range.minY+r;break;case"SW":i=e.range.minX,o=e.range.minX+r,n=e.range.minY+r,s=e.range.maxY;break;case"SE":i=e.range.minX+r,o=e.range.maxX,n=e.range.minY+r,s=e.range.maxY}e.children[t]={centerOfMass:{x:0,y:0},mass:0,range:{minX:i,maxX:o,minY:n,maxY:s},size:.5*e.size,calcSize:2*e.calcSize,children:{data:null},maxWidth:0,level:e.level+1,childrenCount:0}}},{key:"_debug",value:function(e,t){void 0!==this.barnesHutTree&&(e.lineWidth=1,this._drawBranch(this.barnesHutTree.root,e,t))}},{key:"_drawBranch",value:function(e,t,i){void 0===i&&(i="#FF0000"),4===e.childrenCount&&(this._drawBranch(e.children.NW,t),this._drawBranch(e.children.NE,t),this._drawBranch(e.children.SE,t),this._drawBranch(e.children.SW,t)),t.strokeStyle=i,t.beginPath(),t.moveTo(e.range.minX,e.range.minY),t.lineTo(e.range.maxX,e.range.minY),t.stroke(),t.beginPath(),t.moveTo(e.range.maxX,e.range.minY),t.lineTo(e.range.maxX,e.range.maxY),t.stroke(),t.beginPath(),t.moveTo(e.range.maxX,e.range.maxY),t.lineTo(e.range.minX,e.range.maxY),t.stroke(),t.beginPath(),t.moveTo(e.range.minX,e.range.maxY),t.lineTo(e.range.minX,e.range.minY),t.stroke()}}]),e}();t["default"]=n},function(e,t){function i(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(t,"__esModule",{value:!0});var o=function(){function e(e,t){for(var i=0;ii&&(s=.5*c>i?1:u*i+f,s/=i,o=e*s,n=t*s,l[r.id].x-=o,l[r.id].y-=n,l[a.id].x+=o,l[a.id].y+=n)}}}]),e}();t["default"]=n},function(e,t){function i(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(t,"__esModule",{value:!0});var o=function(){function e(e,t){for(var i=0;ii?-Math.pow(p*i,2)+Math.pow(p*f,2):0,0===i?i=.01:s/=i,o=e*s,n=t*s,u[r.id].x-=o,u[r.id].y-=n,u[a.id].x+=o,u[a.id].y+=n}}}]),e}();t["default"]=n},function(e,t){function i(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(t,"__esModule",{value:!0});var o=function(){function e(e,t){for(var i=0;i0){var s=n.edges.length+1,r=this.options.centralGravity*s*n.options.mass;o[n.id].x=t*r,o[n.id].y=i*r}}}]),t}(d["default"]);t["default"]=l},function(e,t,i){function o(e){return e&&e.__esModule?e:{"default":e}}function n(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(t,"__esModule",{value:!0});var s="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol?"symbol":typeof e},r=function(){function e(e,t){for(var i=0;i=e&&i.push(n.id)}for(var r=0;r0&&Object.keys(f).length>0&&v===!0&&o.push({nodes:u,edges:f})}}}for(var m=0;mo?r.x:o,n=r.ys?r.y:s;return{x:.5*(i+o),y:.5*(n+s)}}},{key:"openCluster",value:function(e,t){var i=arguments.length<=2||void 0===arguments[2]?!0:arguments[2];if(void 0===e)throw new Error("No clusterNodeId supplied to openCluster.");if(void 0===this.body.nodes[e])throw new Error("The clusterNodeId supplied to openCluster does not exist.");if(void 0===this.body.nodes[e].containedNodes)return void console.log("The node:"+e+" is not a cluster.");var o=this.body.nodes[e],n=o.containedNodes,s=o.containedEdges;if(void 0!==t&&void 0!==t.releaseFunction&&"function"==typeof t.releaseFunction){var r={},a={x:o.x,y:o.y};for(var d in n)if(n.hasOwnProperty(d)){var l=this.body.nodes[d];r[d]={x:l.x,y:l.y}}var u=t.releaseFunction(a,r);for(var f in n)if(n.hasOwnProperty(f)){var p=this.body.nodes[f];void 0!==u[f]&&(p.x=void 0===u[f].x?o.x:u[f].x,p.y=void 0===u[f].y?o.y:u[f].y)}}else for(var v in n)if(n.hasOwnProperty(v)){var y=this.body.nodes[v];y=n[v],y.options.fixed.x===!1&&(y.x=o.x),y.options.fixed.y===!1&&(y.y=o.y)}for(var g in n)if(n.hasOwnProperty(g)){var b=this.body.nodes[g];b.vx=o.vx,b.vy=o.vy,b.setOptions({hidden:!1,physics:!0}),delete this.clusteredNodes[g]}for(var m=[],_=0;_o;)t.push(this.body.nodes[e].id), +e=this.clusteredNodes[e].clusterId,o++;return t.push(this.body.nodes[e].id),t.reverse(),t}},{key:"_getConnectedId",value:function(e,t){return e.toId!=t?e.toId:e.fromId!=t?e.fromId:e.fromId}},{key:"_getHubSize",value:function(){for(var e=0,t=0,i=0,o=0,n=0;no&&(o=s.edges.length),e+=s.edges.length,t+=Math.pow(s.edges.length,2),i+=1}e/=i,t/=i;var r=t-Math.pow(e,2),a=Math.sqrt(r),h=Math.floor(e+2*a);return h>o&&(h=o),h}}]),e}();t["default"]=u},function(e,t,i){function o(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(t,"__esModule",{value:!0});var n=function(){function e(e,t){for(var i=0;i0)for(var a=0;at.shape.boundingBox.left&&(s=t.shape.boundingBox.left),rt.shape.boundingBox.top&&(o=t.shape.boundingBox.top),n0)for(var a=0;at.x&&(s=t.x),rt.y&&(o=t.y),n0,e.renderTimer=void 0}),this.body.emitter.on("destroy",function(){e.renderRequests=0,e.allowRedraw=!1,e.renderingActive=!1,e.requiresTimeout===!0?clearTimeout(e.renderTimer):cancelAnimationFrame(e.renderTimer),e.body.emitter.off()})}},{key:"setOptions",value:function(e){if(void 0!==e){var t=["hideEdgesOnDrag","hideNodesOnDrag"];s.selectiveDeepExtend(t,this.options,e)}}},{key:"_startRendering",value:function(){this.renderingActive===!0&&void 0===this.renderTimer&&(this.requiresTimeout===!0?this.renderTimer=window.setTimeout(this._renderStep.bind(this),this.simulationInterval):this.renderTimer=window.requestAnimationFrame(this._renderStep.bind(this)))}},{key:"_renderStep",value:function(){this.renderingActive===!0&&(this.renderTimer=void 0,this.requiresTimeout===!0&&this._startRendering(),this._redraw(),this.requiresTimeout===!1&&this._startRendering())}},{key:"redraw",value:function(){this.body.emitter.emit("setSize"),this._redraw()}},{key:"_requestRedraw",value:function(){var e=this;this.redrawRequested!==!0&&this.renderingActive===!1&&this.allowRedraw===!0&&(this.redrawRequested=!0,this.requiresTimeout===!0?window.setTimeout(function(){e._redraw(!1)},0):window.requestAnimationFrame(function(){e._redraw(!1)}))}},{key:"_redraw",value:function(){var e=arguments.length<=0||void 0===arguments[0]?!1:arguments[0];if(this.allowRedraw===!0){this.body.emitter.emit("initRedraw"),this.redrawRequested=!1;var t=this.canvas.frame.canvas.getContext("2d");0!==this.canvas.frame.canvas.width&&0!==this.canvas.frame.canvas.height||this.canvas.setSize(),this.pixelRatio=(window.devicePixelRatio||1)/(t.webkitBackingStorePixelRatio||t.mozBackingStorePixelRatio||t.msBackingStorePixelRatio||t.oBackingStorePixelRatio||t.backingStorePixelRatio||1),t.setTransform(this.pixelRatio,0,0,this.pixelRatio,0,0);var i=this.canvas.frame.canvas.clientWidth,o=this.canvas.frame.canvas.clientHeight;if(t.clearRect(0,0,i,o),0===this.canvas.frame.clientWidth)return;t.save(),t.translate(this.body.view.translation.x,this.body.view.translation.y),t.scale(this.body.view.scale,this.body.view.scale),t.beginPath(),this.body.emitter.emit("beforeDrawing",t),t.closePath(),e===!1&&(this.dragging===!1||this.dragging===!0&&this.options.hideEdgesOnDrag===!1)&&this._drawEdges(t),(this.dragging===!1||this.dragging===!0&&this.options.hideNodesOnDrag===!1)&&this._drawNodes(t,e),t.beginPath(),this.body.emitter.emit("afterDrawing",t),t.closePath(),t.restore(),e===!0&&t.clearRect(0,0,i,o)}}},{key:"_resizeNodes",value:function(){var e=this.canvas.frame.canvas.getContext("2d");void 0===this.pixelRatio&&(this.pixelRatio=(window.devicePixelRatio||1)/(e.webkitBackingStorePixelRatio||e.mozBackingStorePixelRatio||e.msBackingStorePixelRatio||e.oBackingStorePixelRatio||e.backingStorePixelRatio||1)),e.setTransform(this.pixelRatio,0,0,this.pixelRatio,0,0),e.save(),e.translate(this.body.view.translation.x,this.body.view.translation.y),e.scale(this.body.view.scale,this.body.view.scale);var t=this.body.nodes,i=void 0;for(var o in t)t.hasOwnProperty(o)&&(i=t[o],i.resize(e),i.updateBoundingBox(e,i.selected));e.restore()}},{key:"_drawNodes",value:function(e){for(var t=arguments.length<=1||void 0===arguments[1]?!1:arguments[1],i=this.body.nodes,o=this.body.nodeIndices,n=void 0,s=[],r=20,a=this.canvas.DOMtoCanvas({x:-r,y:-r}),h=this.canvas.DOMtoCanvas({x:this.canvas.frame.canvas.clientWidth+r,y:this.canvas.frame.canvas.clientHeight+r}),d={top:a.y,left:a.x,bottom:h.y,right:h.x},l=0;l0){var e=this.frame.canvas.width/this.pixelRatio/this.cameraState.previousWidth,t=this.frame.canvas.height/this.pixelRatio/this.cameraState.previousHeight,i=this.cameraState.scale;1!=e&&1!=t?i=.5*this.cameraState.scale*(e+t):1!=e?i=this.cameraState.scale*e:1!=t&&(i=this.cameraState.scale*t),this.body.view.scale=i;var o=this.DOMtoCanvas({x:.5*this.frame.canvas.clientWidth,y:.5*this.frame.canvas.clientHeight}),n={x:o.x-this.cameraState.position.x,y:o.y-this.cameraState.position.y};this.body.view.translation.x+=n.x*this.body.view.scale,this.body.view.translation.y+=n.y*this.body.view.scale}}},{key:"_prepareValue",value:function(e){if("number"==typeof e)return e+"px";if("string"==typeof e){if(-1!==e.indexOf("%")||-1!==e.indexOf("px"))return e;if(-1===e.indexOf("%"))return e+"px"}throw new Error("Could not use the value supplied for width or height:"+e)}},{key:"_create",value:function(){for(;this.body.container.hasChildNodes();)this.body.container.removeChild(this.body.container.firstChild);if(this.frame=document.createElement("div"),this.frame.className="vis-network",this.frame.style.position="relative",this.frame.style.overflow="hidden",this.frame.tabIndex=900,this.frame.canvas=document.createElement("canvas"),this.frame.canvas.style.position="relative",this.frame.appendChild(this.frame.canvas),this.frame.canvas.getContext){var e=this.frame.canvas.getContext("2d");this.pixelRatio=(window.devicePixelRatio||1)/(e.webkitBackingStorePixelRatio||e.mozBackingStorePixelRatio||e.msBackingStorePixelRatio||e.oBackingStorePixelRatio||e.backingStorePixelRatio||1),this.frame.canvas.getContext("2d").setTransform(this.pixelRatio,0,0,this.pixelRatio,0,0)}else{var t=document.createElement("DIV");t.style.color="red",t.style.fontWeight="bold",t.style.padding="10px",t.innerHTML="Error: your browser does not support HTML canvas",this.frame.canvas.appendChild(t)}this.body.container.appendChild(this.frame),this.body.view.scale=1,this.body.view.translation={x:.5*this.frame.canvas.clientWidth,y:.5*this.frame.canvas.clientHeight},this._bindHammer()}},{key:"_bindHammer",value:function(){var e=this;void 0!==this.hammer&&this.hammer.destroy(),this.drag={},this.pinch={},this.hammer=new s(this.frame.canvas),this.hammer.get("pinch").set({enable:!0}),this.hammer.get("pan").set({threshold:5,direction:s.DIRECTION_ALL}),r.onTouch(this.hammer,function(t){e.body.eventListeners.onTouch(t)}),this.hammer.on("tap",function(t){e.body.eventListeners.onTap(t)}),this.hammer.on("doubletap",function(t){e.body.eventListeners.onDoubleTap(t)}),this.hammer.on("press",function(t){e.body.eventListeners.onHold(t)}),this.hammer.on("panstart",function(t){e.body.eventListeners.onDragStart(t)}),this.hammer.on("panmove",function(t){e.body.eventListeners.onDrag(t)}),this.hammer.on("panend",function(t){e.body.eventListeners.onDragEnd(t)}),this.hammer.on("pinch",function(t){e.body.eventListeners.onPinch(t)}),this.frame.canvas.addEventListener("mousewheel",function(t){e.body.eventListeners.onMouseWheel(t)}),this.frame.canvas.addEventListener("DOMMouseScroll",function(t){e.body.eventListeners.onMouseWheel(t)}),this.frame.canvas.addEventListener("mousemove",function(t){e.body.eventListeners.onMouseMove(t)}),this.frame.canvas.addEventListener("contextmenu",function(t){e.body.eventListeners.onContext(t)}),this.hammerFrame=new s(this.frame),r.onRelease(this.hammerFrame,function(t){e.body.eventListeners.onRelease(t)})}},{key:"setSize",value:function(){var e=arguments.length<=0||void 0===arguments[0]?this.options.width:arguments[0],t=arguments.length<=1||void 0===arguments[1]?this.options.height:arguments[1];e=this._prepareValue(e),t=this._prepareValue(t);var i=!1,o=this.frame.canvas.width,n=this.frame.canvas.height,s=this.frame.canvas.getContext("2d"),r=this.pixelRatio;return this.pixelRatio=(window.devicePixelRatio||1)/(s.webkitBackingStorePixelRatio||s.mozBackingStorePixelRatio||s.msBackingStorePixelRatio||s.oBackingStorePixelRatio||s.backingStorePixelRatio||1),e!=this.options.width||t!=this.options.height||this.frame.style.width!=e||this.frame.style.height!=t?(this._getCameraState(r),this.frame.style.width=e,this.frame.style.height=t,this.frame.canvas.style.width="100%",this.frame.canvas.style.height="100%",this.frame.canvas.width=Math.round(this.frame.canvas.clientWidth*this.pixelRatio),this.frame.canvas.height=Math.round(this.frame.canvas.clientHeight*this.pixelRatio),this.options.width=e,this.options.height=t,i=!0):(this.frame.canvas.width==Math.round(this.frame.canvas.clientWidth*this.pixelRatio)&&this.frame.canvas.height==Math.round(this.frame.canvas.clientHeight*this.pixelRatio)||this._getCameraState(r),this.frame.canvas.width!=Math.round(this.frame.canvas.clientWidth*this.pixelRatio)&&(this.frame.canvas.width=Math.round(this.frame.canvas.clientWidth*this.pixelRatio),i=!0),this.frame.canvas.height!=Math.round(this.frame.canvas.clientHeight*this.pixelRatio)&&(this.frame.canvas.height=Math.round(this.frame.canvas.clientHeight*this.pixelRatio),i=!0)),i===!0&&(this.body.emitter.emit("resize",{width:Math.round(this.frame.canvas.width/this.pixelRatio),height:Math.round(this.frame.canvas.height/this.pixelRatio),oldWidth:Math.round(o/this.pixelRatio),oldHeight:Math.round(n/this.pixelRatio)}),this._setCameraState()),this.initialized=!0,i}},{key:"_XconvertDOMtoCanvas",value:function(e){return(e-this.body.view.translation.x)/this.body.view.scale}},{key:"_XconvertCanvasToDOM",value:function(e){return e*this.body.view.scale+this.body.view.translation.x}},{key:"_YconvertDOMtoCanvas",value:function(e){return(e-this.body.view.translation.y)/this.body.view.scale}},{key:"_YconvertCanvasToDOM",value:function(e){return e*this.body.view.scale+this.body.view.translation.y}},{key:"canvasToDOM",value:function(e){return{x:this._XconvertCanvasToDOM(e.x),y:this._YconvertCanvasToDOM(e.y)}}},{key:"DOMtoCanvas",value:function(e){return{x:this._XconvertDOMtoCanvas(e.x),y:this._YconvertDOMtoCanvas(e.y)}}}]),e}();t["default"]=h},function(e,t,i){if("undefined"!=typeof window){var o=i(59),n=window.Hammer||i(60);e.exports=o(n,{preventDefault:"mouse"})}else e.exports=function(){throw Error("hammer.js is only available in a browser, not in node.js.")}},function(e,t,i){var o,n,s;!function(i){n=[],o=i,s="function"==typeof o?o.apply(t,n):o,!(void 0!==s&&(e.exports=s))}(function(){var e=null;return function t(i,o){function n(e){return e.match(/[^ ]+/g)}function s(t){if("hammer.input"!==t.type){if(t.srcEvent._handled||(t.srcEvent._handled={}),t.srcEvent._handled[t.type])return;t.srcEvent._handled[t.type]=!0}var i=!1;t.stopPropagation=function(){i=!0};var o=t.srcEvent.stopPropagation.bind(t.srcEvent);"function"==typeof o&&(t.srcEvent.stopPropagation=function(){o(),t.stopPropagation()}),t.firstTarget=e;for(var n=e;n&&!i;){var s=n.hammer;if(s)for(var r,a=0;a0?d._handlers[e]=o:(i.off(e,s),delete d._handlers[e]))}),d},d.emit=function(t,o){e=o.target,i.emit(t,o)},d.destroy=function(){var e=i.element.hammer,t=e.indexOf(d);-1!==t&&e.splice(t,1),e.length||delete i.element.hammer,d._handlers={},i.destroy()},d}})},function(e,t,i){var o;/*! Hammer.JS - v2.0.6 - 2015-12-23 + * http://hammerjs.github.io/ + * + * Copyright (c) 2015 Jorik Tangelder; + * Licensed under the license */ +!function(n,s,r,a){function h(e,t,i){return setTimeout(f(e,i),t)}function d(e,t,i){return Array.isArray(e)?(l(e,i[t],i),!0):!1}function l(e,t,i){var o;if(e)if(e.forEach)e.forEach(t,i);else if(e.length!==a)for(o=0;o\s*\(/gm,"{anonymous}()@"):"Unknown Stack Trace",s=n.console&&(n.console.warn||n.console.log);return s&&s.call(n.console,o,i),e.apply(this,arguments)}}function u(e,t,i){var o,n=t.prototype;o=e.prototype=Object.create(n),o.constructor=e,o._super=n,i&&ce(o,i)}function f(e,t){return function(){return e.apply(t,arguments)}}function p(e,t){return typeof e==pe?e.apply(t?t[0]||a:a,t):e}function v(e,t){return e===a?t:e}function y(e,t,i){l(_(t),function(t){e.addEventListener(t,i,!1)})}function g(e,t,i){l(_(t),function(t){e.removeEventListener(t,i,!1)})}function b(e,t){for(;e;){if(e==t)return!0;e=e.parentNode}return!1}function m(e,t){return e.indexOf(t)>-1}function _(e){return e.trim().split(/\s+/g)}function w(e,t,i){if(e.indexOf&&!i)return e.indexOf(t);for(var o=0;oi[t]}):o.sort()),o}function O(e,t){for(var i,o,n=t[0].toUpperCase()+t.slice(1),s=0;s1&&!i.firstMultiple?i.firstMultiple=F(t):1===n&&(i.firstMultiple=!1);var s=i.firstInput,r=i.firstMultiple,a=r?r.center:s.center,h=t.center=I(o);t.timeStamp=ge(),t.deltaTime=t.timeStamp-s.timeStamp,t.angle=R(a,h),t.distance=z(a,h),P(i,t),t.offsetDirection=N(t.deltaX,t.deltaY);var d=j(t.deltaTime,t.deltaX,t.deltaY);t.overallVelocityX=d.x,t.overallVelocityY=d.y,t.overallVelocity=ye(d.x)>ye(d.y)?d.x:d.y,t.scale=r?H(r.pointers,o):1,t.rotation=r?A(r.pointers,o):0,t.maxPointers=i.prevInput?t.pointers.length>i.prevInput.maxPointers?t.pointers.length:i.prevInput.maxPointers:t.pointers.length,B(i,t);var l=e.element;b(t.srcEvent.target,l)&&(l=t.srcEvent.target),t.target=l}function P(e,t){var i=t.center,o=e.offsetDelta||{},n=e.prevDelta||{},s=e.prevInput||{};t.eventType!==Te&&s.eventType!==Be||(n=e.prevDelta={x:s.deltaX||0,y:s.deltaY||0},o=e.offsetDelta={x:i.x,y:i.y}),t.deltaX=n.x+(i.x-o.x),t.deltaY=n.y+(i.y-o.y)}function B(e,t){var i,o,n,s,r=e.lastInterval||t,h=t.timeStamp-r.timeStamp;if(t.eventType!=Fe&&(h>Ce||r.velocity===a)){var d=t.deltaX-r.deltaX,l=t.deltaY-r.deltaY,c=j(h,d,l);o=c.x,n=c.y,i=ye(c.x)>ye(c.y)?c.x:c.y,s=N(d,l),e.lastInterval=t}else i=r.velocity,o=r.velocityX,n=r.velocityY,s=r.direction;t.velocity=i,t.velocityX=o,t.velocityY=n,t.direction=s}function F(e){for(var t=[],i=0;in;)i+=e[n].clientX,o+=e[n].clientY,n++;return{x:ve(i/t),y:ve(o/t)}}function j(e,t,i){return{x:t/e||0,y:i/e||0}}function N(e,t){return e===t?Ie:ye(e)>=ye(t)?0>e?je:Ne:0>t?ze:Re}function z(e,t,i){i||(i=We);var o=t[i[0]]-e[i[0]],n=t[i[1]]-e[i[1]];return Math.sqrt(o*o+n*n)}function R(e,t,i){i||(i=We);var o=t[i[0]]-e[i[0]],n=t[i[1]]-e[i[1]];return 180*Math.atan2(n,o)/Math.PI}function A(e,t){return R(t[1],t[0],Ye)+R(e[1],e[0],Ye)}function H(e,t){return z(t[0],t[1],Ye)/z(e[0],e[1],Ye)}function L(){this.evEl=Ve,this.evWin=qe,this.allow=!0,this.pressed=!1,D.apply(this,arguments)}function W(){this.evEl=Ke,this.evWin=Ze,D.apply(this,arguments),this.store=this.manager.session.pointerEvents=[]}function Y(){this.evTarget=$e,this.evWin=Je,this.started=!1,D.apply(this,arguments)}function U(e,t){var i=k(e.touches),o=k(e.changedTouches);return t&(Be|Fe)&&(i=x(i.concat(o),"identifier",!0)),[i,o]}function V(){this.evTarget=tt,this.targetIds={},D.apply(this,arguments)}function q(e,t){var i=k(e.touches),o=this.targetIds;if(t&(Te|Pe)&&1===i.length)return o[i[0].identifier]=!0,[i,i];var n,s,r=k(e.changedTouches),a=[],h=this.target;if(s=i.filter(function(e){return b(e.target,h)}),t===Te)for(n=0;na&&(t.push(e),a=t.length-1):n&(Be|Fe)&&(i=!0),0>a||(t[a]=e,this.callback(this.manager,n,{pointers:t,changedPointers:[e],pointerType:s,srcEvent:e}),i&&t.splice(a,1))}});var Qe={touchstart:Te,touchmove:Pe,touchend:Be,touchcancel:Fe},$e="touchstart",Je="touchstart touchmove touchend touchcancel";u(Y,D,{handler:function(e){var t=Qe[e.type];if(t===Te&&(this.started=!0),this.started){var i=U.call(this,e,t);t&(Be|Fe)&&i[0].length-i[1].length===0&&(this.started=!1),this.callback(this.manager,t,{pointers:i[0],changedPointers:i[1],pointerType:Ee,srcEvent:e})}}});var et={touchstart:Te,touchmove:Pe,touchend:Be,touchcancel:Fe},tt="touchstart touchmove touchend touchcancel";u(V,D,{handler:function(e){var t=et[e.type],i=q.call(this,e,t);i&&this.callback(this.manager,t,{pointers:i[0],changedPointers:i[1],pointerType:Ee,srcEvent:e})}}),u(G,D,{handler:function(e,t,i){var o=i.pointerType==Ee,n=i.pointerType==De;if(o)this.mouse.allow=!1;else if(n&&!this.mouse.allow)return;t&(Be|Fe)&&(this.mouse.allow=!0),this.callback(e,t,i)},destroy:function(){this.touch.destroy(),this.mouse.destroy()}});var it=O(fe.style,"touchAction"),ot=it!==a,nt="compute",st="auto",rt="manipulation",at="none",ht="pan-x",dt="pan-y";X.prototype={set:function(e){e==nt&&(e=this.compute()),ot&&this.manager.element.style&&(this.manager.element.style[it]=e),this.actions=e.toLowerCase().trim()},update:function(){this.set(this.manager.options.touchAction)},compute:function(){var e=[];return l(this.manager.recognizers,function(t){p(t.options.enable,[t])&&(e=e.concat(t.getTouchAction()))}),K(e.join(" "))},preventDefaults:function(e){if(!ot){var t=e.srcEvent,i=e.offsetDirection;if(this.manager.session.prevented)return void t.preventDefault();var o=this.actions,n=m(o,at),s=m(o,dt),r=m(o,ht);if(n){var a=1===e.pointers.length,h=e.distance<2,d=e.deltaTime<250;if(a&&h&&d)return}if(!r||!s)return n||s&&i&Ae||r&&i&He?this.preventSrc(t):void 0}},preventSrc:function(e){this.manager.session.prevented=!0,e.preventDefault()}};var lt=1,ct=2,ut=4,ft=8,pt=ft,vt=16,yt=32;Z.prototype={defaults:{},set:function(e){return ce(this.options,e),this.manager&&this.manager.touchAction.update(),this},recognizeWith:function(e){if(d(e,"recognizeWith",this))return this;var t=this.simultaneous;return e=J(e,this),t[e.id]||(t[e.id]=e,e.recognizeWith(this)),this},dropRecognizeWith:function(e){return d(e,"dropRecognizeWith",this)?this:(e=J(e,this),delete this.simultaneous[e.id],this)},requireFailure:function(e){if(d(e,"requireFailure",this))return this;var t=this.requireFail;return e=J(e,this),-1===w(t,e)&&(t.push(e),e.requireFailure(this)),this},dropRequireFailure:function(e){if(d(e,"dropRequireFailure",this))return this;e=J(e,this);var t=w(this.requireFail,e);return t>-1&&this.requireFail.splice(t,1),this},hasRequireFailures:function(){return this.requireFail.length>0},canRecognizeWith:function(e){return!!this.simultaneous[e.id]},emit:function(e){function t(t){i.manager.emit(t,e)}var i=this,o=this.state;ft>o&&t(i.options.event+Q(o)),t(i.options.event),e.additionalEvent&&t(e.additionalEvent),o>=ft&&t(i.options.event+Q(o))},tryEmit:function(e){return this.canEmit()?this.emit(e):void(this.state=yt)},canEmit:function(){for(var e=0;es?je:Ne,i=s!=this.pX,o=Math.abs(e.deltaX)):(n=0===r?Ie:0>r?ze:Re,i=r!=this.pY,o=Math.abs(e.deltaY))),e.direction=n,i&&o>t.threshold&&n&t.direction},attrTest:function(e){return ee.prototype.attrTest.call(this,e)&&(this.state&ct||!(this.state&ct)&&this.directionTest(e))},emit:function(e){this.pX=e.deltaX,this.pY=e.deltaY;var t=$(e.direction);t&&(e.additionalEvent=this.options.event+t),this._super.emit.call(this,e)}}),u(ie,ee,{defaults:{event:"pinch",threshold:0,pointers:2},getTouchAction:function(){return[at]},attrTest:function(e){return this._super.attrTest.call(this,e)&&(Math.abs(e.scale-1)>this.options.threshold||this.state&ct)},emit:function(e){if(1!==e.scale){var t=e.scale<1?"in":"out";e.additionalEvent=this.options.event+t}this._super.emit.call(this,e)}}),u(oe,Z,{defaults:{event:"press",pointers:1,time:251,threshold:9},getTouchAction:function(){return[st]},process:function(e){var t=this.options,i=e.pointers.length===t.pointers,o=e.distancet.time;if(this._input=e,!o||!i||e.eventType&(Be|Fe)&&!n)this.reset();else if(e.eventType&Te)this.reset(),this._timer=h(function(){this.state=pt,this.tryEmit()},t.time,this);else if(e.eventType&Be)return pt;return yt},reset:function(){clearTimeout(this._timer)},emit:function(e){this.state===pt&&(e&&e.eventType&Be?this.manager.emit(this.options.event+"up",e):(this._input.timeStamp=ge(),this.manager.emit(this.options.event,this._input)))}}),u(ne,ee,{defaults:{event:"rotate",threshold:0,pointers:2},getTouchAction:function(){return[at]},attrTest:function(e){return this._super.attrTest.call(this,e)&&(Math.abs(e.rotation)>this.options.threshold||this.state&ct)}}),u(se,ee,{defaults:{event:"swipe",threshold:10,velocity:.3,direction:Ae|He,pointers:1},getTouchAction:function(){return te.prototype.getTouchAction.call(this)},attrTest:function(e){var t,i=this.options.direction;return i&(Ae|He)?t=e.overallVelocity:i&Ae?t=e.overallVelocityX:i&He&&(t=e.overallVelocityY),this._super.attrTest.call(this,e)&&i&e.offsetDirection&&e.distance>this.options.threshold&&e.maxPointers==this.options.pointers&&ye(t)>this.options.velocity&&e.eventType&Be},emit:function(e){var t=$(e.offsetDirection);t&&this.manager.emit(this.options.event+t,e),this.manager.emit(this.options.event,e)}}),u(re,Z,{defaults:{event:"tap",pointers:1,taps:1,interval:300,time:250,threshold:9,posThreshold:10},getTouchAction:function(){return[rt]},process:function(e){var t=this.options,i=e.pointers.length===t.pointers,o=e.distance.5*this.body.nodeIndices.length)return void this.fit(e,!1);i=a["default"].getRange(this.body.nodes,e.nodes);var h=this.body.nodeIndices.length;o=12.662/(h+7.4147)+.0964822;var d=Math.min(this.canvas.frame.canvas.clientWidth/600,this.canvas.frame.canvas.clientHeight/600);o*=d}else{this.body.emitter.emit("_resizeNodes"),i=a["default"].getRange(this.body.nodes,e.nodes);var l=1.1*Math.abs(i.maxX-i.minX),c=1.1*Math.abs(i.maxY-i.minY),u=this.canvas.frame.canvas.clientWidth/l,f=this.canvas.frame.canvas.clientHeight/c;o=f>=u?u:f}o>1?o=1:0===o&&(o=1);var p=a["default"].findCenter(i),v={position:p,scale:o,animation:e.animation};this.moveTo(v)}},{key:"focus",value:function(e){var t=arguments.length<=1||void 0===arguments[1]?{}:arguments[1];if(void 0!==this.body.nodes[e]){var i={x:this.body.nodes[e].x,y:this.body.nodes[e].y};t.position=i,t.lockedOnNode=e,this.moveTo(t)}else console.log("Node: "+e+" cannot be found.")}},{key:"moveTo",value:function(e){return void 0===e?void(e={}):(void 0===e.offset&&(e.offset={x:0,y:0}),void 0===e.offset.x&&(e.offset.x=0),void 0===e.offset.y&&(e.offset.y=0),void 0===e.scale&&(e.scale=this.body.view.scale),void 0===e.position&&(e.position=this.getViewPosition()),void 0===e.animation&&(e.animation={duration:0}),e.animation===!1&&(e.animation={duration:0}),e.animation===!0&&(e.animation={}),void 0===e.animation.duration&&(e.animation.duration=1e3),void 0===e.animation.easingFunction&&(e.animation.easingFunction="easeInOutQuad"),void this.animateView(e))}},{key:"animateView",value:function(e){if(void 0!==e){this.animationEasingFunction=e.animation.easingFunction,this.releaseNode(),e.locked===!0&&(this.lockedOnNodeId=e.lockedOnNode,this.lockedOnNodeOffset=e.offset),0!=this.easingTime&&this._transitionRedraw(!0),this.sourceScale=this.body.view.scale,this.sourceTranslation=this.body.view.translation,this.targetScale=e.scale,this.body.view.scale=this.targetScale;var t=this.canvas.DOMtoCanvas({x:.5*this.canvas.frame.canvas.clientWidth,y:.5*this.canvas.frame.canvas.clientHeight}),i={x:t.x-e.position.x,y:t.y-e.position.y};this.targetTranslation={x:this.sourceTranslation.x+i.x*this.targetScale+e.offset.x,y:this.sourceTranslation.y+i.y*this.targetScale+e.offset.y},0===e.animation.duration?void 0!=this.lockedOnNodeId?(this.viewFunction=this._lockedRedraw.bind(this),this.body.emitter.on("initRedraw",this.viewFunction)):(this.body.view.scale=this.targetScale,this.body.view.translation=this.targetTranslation,this.body.emitter.emit("_requestRedraw")):(this.animationSpeed=1/(60*e.animation.duration*.001)||1/60,this.animationEasingFunction=e.animation.easingFunction,this.viewFunction=this._transitionRedraw.bind(this),this.body.emitter.on("initRedraw",this.viewFunction),this.body.emitter.emit("_startRendering"))}}},{key:"_lockedRedraw",value:function(){var e={x:this.body.nodes[this.lockedOnNodeId].x,y:this.body.nodes[this.lockedOnNodeId].y},t=this.canvas.DOMtoCanvas({x:.5*this.canvas.frame.canvas.clientWidth,y:.5*this.canvas.frame.canvas.clientHeight}),i={x:t.x-e.x,y:t.y-e.y},o=this.body.view.translation,n={x:o.x+i.x*this.body.view.scale+this.lockedOnNodeOffset.x,y:o.y+i.y*this.body.view.scale+this.lockedOnNodeOffset.y};this.body.view.translation=n}},{key:"releaseNode",value:function(){void 0!==this.lockedOnNodeId&&void 0!==this.viewFunction&&(this.body.emitter.off("initRedraw",this.viewFunction),this.lockedOnNodeId=void 0,this.lockedOnNodeOffset=void 0)}},{key:"_transitionRedraw",value:function(){var e=arguments.length<=0||void 0===arguments[0]?!1:arguments[0];this.easingTime+=this.animationSpeed,this.easingTime=e===!0?1:this.easingTime;var t=h.easingFunctions[this.animationEasingFunction](this.easingTime);this.body.view.scale=this.sourceScale+(this.targetScale-this.sourceScale)*t,this.body.view.translation={x:this.sourceTranslation.x+(this.targetTranslation.x-this.sourceTranslation.x)*t,y:this.sourceTranslation.y+(this.targetTranslation.y-this.sourceTranslation.y)*t},this.easingTime>=1&&(this.body.emitter.off("initRedraw",this.viewFunction),this.easingTime=0,void 0!=this.lockedOnNodeId&&(this.viewFunction=this._lockedRedraw.bind(this),this.body.emitter.on("initRedraw",this.viewFunction)),this.body.emitter.emit("animationFinished"))}},{key:"getScale",value:function(){return this.body.view.scale}},{key:"getViewPosition",value:function(){return this.canvas.DOMtoCanvas({x:.5*this.canvas.frame.canvas.clientWidth,y:.5*this.canvas.frame.canvas.clientHeight})}}]),e}();t["default"]=d},function(e,t,i){function o(e){return e&&e.__esModule?e:{"default":e}}function n(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(t,"__esModule",{value:!0});var s=function(){function e(e,t){for(var i=0;i50&&(this.drag.pointer=this.getPointer(e.center),this.drag.pinched=!1,this.pinch.scale=this.body.view.scale,this.touchTime=(new Date).valueOf())}},{key:"onTap",value:function(e){var t=this.getPointer(e.center),i=this.selectionHandler.options.multiselect&&(e.changedPointers[0].ctrlKey||e.changedPointers[0].metaKey);this.checkSelectionChanges(t,e,i),this.selectionHandler._generateClickEvent("click",e,t)}},{key:"onDoubleTap",value:function(e){var t=this.getPointer(e.center);this.selectionHandler._generateClickEvent("doubleClick",e,t)}},{key:"onHold",value:function(e){var t=this.getPointer(e.center),i=this.selectionHandler.options.multiselect;this.checkSelectionChanges(t,e,i),this.selectionHandler._generateClickEvent("click",e,t),this.selectionHandler._generateClickEvent("hold",e,t)}},{key:"onRelease",value:function(e){if((new Date).valueOf()-this.touchTime>10){var t=this.getPointer(e.center);this.selectionHandler._generateClickEvent("release",e,t),this.touchTime=(new Date).valueOf()}}},{key:"onContext",value:function(e){var t=this.getPointer({x:e.clientX,y:e.clientY});this.selectionHandler._generateClickEvent("oncontext",e,t)}},{key:"checkSelectionChanges",value:function(e,t){var i=arguments.length<=2||void 0===arguments[2]?!1:arguments[2],o=this.selectionHandler._getSelectedEdgeCount(),n=this.selectionHandler._getSelectedNodeCount(),s=this.selectionHandler.getSelection(),r=void 0;r=i===!0?this.selectionHandler.selectAdditionalOnPoint(e):this.selectionHandler.selectOnPoint(e);var a=this.selectionHandler._getSelectedEdgeCount(),h=this.selectionHandler._getSelectedNodeCount(),d=this.selectionHandler.getSelection(),l=this._determineIfDifferent(s,d),c=l.nodesChanged,u=l.edgesChanged,f=!1;h-n>0?(this.selectionHandler._generateClickEvent("selectNode",t,e),r=!0,f=!0):c===!0&&h>0?(this.selectionHandler._generateClickEvent("deselectNode",t,e,s),this.selectionHandler._generateClickEvent("selectNode",t,e),f=!0,r=!0):0>h-n&&(this.selectionHandler._generateClickEvent("deselectNode",t,e,s),r=!0),a-o>0&&f===!1?(this.selectionHandler._generateClickEvent("selectEdge",t,e),r=!0):a>0&&u===!0?(this.selectionHandler._generateClickEvent("deselectEdge",t,e,s),this.selectionHandler._generateClickEvent("selectEdge",t,e),r=!0):0>a-o&&(this.selectionHandler._generateClickEvent("deselectEdge",t,e,s),r=!0),r===!0&&this.selectionHandler._generateClickEvent("select",t,e)}},{key:"_determineIfDifferent",value:function(e,t){for(var i=!1,o=!1,n=0;ne&&(e=1e-5),e>10&&(e=10);var o=void 0;void 0!==this.drag&&this.drag.dragging===!0&&(o=this.canvas.DOMtoCanvas(this.drag.pointer));var n=this.body.view.translation,s=e/i,r=(1-s)*t.x+n.x*s,a=(1-s)*t.y+n.y*s;if(this.body.view.scale=e,this.body.view.translation={x:r,y:a},void 0!=o){var h=this.canvas.canvasToDOM(o);this.drag.pointer.x=h.x,this.drag.pointer.y=h.y}this.body.emitter.emit("_requestRedraw"),e>i?this.body.emitter.emit("zoom",{direction:"+",scale:this.body.view.scale}):this.body.emitter.emit("zoom",{direction:"-",scale:this.body.view.scale})}}},{key:"onMouseWheel",value:function(e){if(this.options.zoomView===!0){var t=0;if(e.wheelDelta?t=e.wheelDelta/120:e.detail&&(t=-e.detail/3),0!==t){var i=this.body.view.scale,o=t/10;0>t&&(o/=1-o),i*=1+o;var n=this.getPointer({x:e.clientX,y:e.clientY});this.zoom(i,n)}e.preventDefault()}}},{key:"onMouseMove",value:function(e){var t=this,i=this.getPointer({x:e.clientX,y:e.clientY}),o=!1;if(void 0!==this.popup&&(this.popup.hidden===!1&&this._checkHidePopup(i),this.popup.hidden===!1&&(o=!0,this.popup.setPosition(i.x+3,i.y-5),this.popup.show())),this.options.keyboard.bindToWindow===!1&&this.options.keyboard.enabled===!0&&this.canvas.frame.focus(),o===!1&&(void 0!==this.popupTimer&&(clearInterval(this.popupTimer),this.popupTimer=void 0),this.drag.dragging||(this.popupTimer=setTimeout(function(){return t._checkShowPopup(i)},this.options.tooltipDelay))),this.options.hover===!0){var n=this.selectionHandler.getNodeAt(i);void 0===n&&(n=this.selectionHandler.getEdgeAt(i)),this.selectionHandler.hoverObject(n)}}},{key:"_checkShowPopup",value:function(e){var t=this.canvas._XconvertDOMtoCanvas(e.x),i=this.canvas._YconvertDOMtoCanvas(e.y),o={left:t,top:i,right:t,bottom:i},n=void 0===this.popupObj?void 0:this.popupObj.id,s=!1,r="node";if(void 0===this.popupObj){for(var a=this.body.nodeIndices,h=this.body.nodes,l=void 0,c=[],u=0;u0&&(this.popupObj=h[c[c.length-1]],s=!0)}if(void 0===this.popupObj&&s===!1){for(var f=this.body.edgeIndices,p=this.body.edges,v=void 0,y=[],g=0;g0&&(this.popupObj=p[y[y.length-1]],r="edge")}void 0!==this.popupObj?this.popupObj.id!==n&&(void 0===this.popup&&(this.popup=new d["default"](this.canvas.frame)),this.popup.popupTargetType=r,this.popup.popupTargetId=this.popupObj.id,this.popup.setPosition(e.x+3,e.y-5),this.popup.setText(this.popupObj.getTitle()),this.popup.show(),this.body.emitter.emit("showPopup",this.popupObj.id)):void 0!==this.popup&&(this.popup.hide(),this.body.emitter.emit("hidePopup"))}},{key:"_checkHidePopup",value:function(e){var t=this.selectionHandler._pointerToPositionObject(e),i=!1;if("node"===this.popup.popupTargetType){if(void 0!==this.body.nodes[this.popup.popupTargetId]&&(i=this.body.nodes[this.popup.popupTargetId].isOverlappingWith(t),i===!0)){var o=this.selectionHandler.getNodeAt(e);i=o.id===this.popup.popupTargetId}}else void 0===this.selectionHandler.getNodeAt(e)&&void 0!==this.body.edges[this.popup.popupTargetId]&&(i=this.body.edges[this.popup.popupTargetId].isOverlappingWith(t));i===!1&&(this.popupObj=void 0,this.popup.hide(),this.body.emitter.emit("hidePopup"))}}]),e}();t["default"]=c},function(e,t,i){function o(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(t,"__esModule",{value:!0});var n=function(){function e(e,t){for(var i=0;i700&&(this.body.emitter.emit("fit",{duration:700}),this.touchTime=(new Date).valueOf())}},{key:"_stopMovement",value:function(){for(var e in this.boundFunctions)this.boundFunctions.hasOwnProperty(e)&&(this.body.emitter.off("initRedraw",this.boundFunctions[e]),this.body.emitter.emit("_stopRendering"));this.boundFunctions={}}},{key:"_moveUp",value:function(){this.body.view.translation.y+=this.options.keyboard.speed.y}},{key:"_moveDown",value:function(){this.body.view.translation.y-=this.options.keyboard.speed.y}},{key:"_moveLeft",value:function(){this.body.view.translation.x+=this.options.keyboard.speed.x}},{key:"_moveRight",value:function(){this.body.view.translation.x-=this.options.keyboard.speed.x}},{key:"_zoomIn",value:function(){this.body.view.scale*=1+this.options.keyboard.speed.zoom,this.body.emitter.emit("zoom",{direction:"+",scale:this.body.view.scale})}},{key:"_zoomOut",value:function(){this.body.view.scale/=1+this.options.keyboard.speed.zoom,this.body.emitter.emit("zoom",{direction:"-",scale:this.body.view.scale})}},{key:"configureKeyboardBindings",value:function(){var e=this;void 0!==this.keycharm&&this.keycharm.destroy(),this.options.keyboard.enabled===!0&&(this.options.keyboard.bindToWindow===!0?this.keycharm=a({container:window,preventDefault:!0}):this.keycharm=a({container:this.canvas.frame,preventDefault:!0}),this.keycharm.reset(),this.activated===!0&&(this.keycharm.bind("up",function(){e.bindToRedraw("_moveUp")},"keydown"),this.keycharm.bind("down",function(){e.bindToRedraw("_moveDown")},"keydown"),this.keycharm.bind("left",function(){e.bindToRedraw("_moveLeft")},"keydown"),this.keycharm.bind("right",function(){e.bindToRedraw("_moveRight")},"keydown"),this.keycharm.bind("=",function(){e.bindToRedraw("_zoomIn")},"keydown"),this.keycharm.bind("num+",function(){e.bindToRedraw("_zoomIn")},"keydown"),this.keycharm.bind("num-",function(){e.bindToRedraw("_zoomOut")},"keydown"),this.keycharm.bind("-",function(){e.bindToRedraw("_zoomOut")},"keydown"),this.keycharm.bind("[",function(){e.bindToRedraw("_zoomOut")},"keydown"),this.keycharm.bind("]",function(){e.bindToRedraw("_zoomIn")},"keydown"),this.keycharm.bind("pageup",function(){e.bindToRedraw("_zoomIn")},"keydown"),this.keycharm.bind("pagedown",function(){e.bindToRedraw("_zoomOut")},"keydown"),this.keycharm.bind("up",function(){e.unbindFromRedraw("_moveUp")},"keyup"),this.keycharm.bind("down",function(){e.unbindFromRedraw("_moveDown")},"keyup"),this.keycharm.bind("left",function(){e.unbindFromRedraw("_moveLeft")},"keyup"),this.keycharm.bind("right",function(){e.unbindFromRedraw("_moveRight")},"keyup"),this.keycharm.bind("=",function(){e.unbindFromRedraw("_zoomIn")},"keyup"),this.keycharm.bind("num+",function(){e.unbindFromRedraw("_zoomIn")},"keyup"),this.keycharm.bind("num-",function(){e.unbindFromRedraw("_zoomOut")},"keyup"),this.keycharm.bind("-",function(){e.unbindFromRedraw("_zoomOut")},"keyup"),this.keycharm.bind("[",function(){e.unbindFromRedraw("_zoomOut")},"keyup"),this.keycharm.bind("]",function(){e.unbindFromRedraw("_zoomIn")},"keyup"),this.keycharm.bind("pageup",function(){e.unbindFromRedraw("_zoomIn")},"keyup"),this.keycharm.bind("pagedown",function(){e.unbindFromRedraw("_zoomOut")},"keyup")))}}]),e}();t["default"]=h},function(e,t,i){var o,n,s;!function(i,r){n=[],o=r,s="function"==typeof o?o.apply(t,n):o,!(void 0!==s&&(e.exports=s))}(this,function(){function e(e){var t,i=e&&e.preventDefault||!1,o=e&&e.container||window,n={},s={keydown:{},keyup:{}},r={};for(t=97;122>=t;t++)r[String.fromCharCode(t)]={code:65+(t-97),shift:!1};for(t=65;90>=t;t++)r[String.fromCharCode(t)]={code:t,shift:!0};for(t=0;9>=t;t++)r[""+t]={code:48+t,shift:!1};for(t=1;12>=t;t++)r["F"+t]={code:111+t,shift:!1};for(t=0;9>=t;t++)r["num"+t]={code:96+t,shift:!1};r["num*"]={code:106,shift:!1},r["num+"]={code:107,shift:!1},r["num-"]={code:109,shift:!1},r["num/"]={code:111,shift:!1},r["num."]={code:110,shift:!1},r.left={code:37,shift:!1},r.up={code:38,shift:!1},r.right={code:39,shift:!1},r.down={code:40,shift:!1},r.space={code:32,shift:!1},r.enter={code:13,shift:!1},r.shift={code:16,shift:void 0},r.esc={code:27,shift:!1},r.backspace={code:8,shift:!1},r.tab={code:9,shift:!1},r.ctrl={code:17,shift:!1},r.alt={code:18,shift:!1},r["delete"]={code:46,shift:!1},r.pageup={code:33,shift:!1},r.pagedown={code:34,shift:!1},r["="]={code:187,shift:!1},r["-"]={code:189,shift:!1},r["]"]={code:221,shift:!1},r["["]={code:219,shift:!1};var a=function(e){d(e,"keydown")},h=function(e){d(e,"keyup")},d=function(e,t){if(void 0!==s[t][e.keyCode]){for(var o=s[t][e.keyCode],n=0;no&&(s=o-t-this.padding),sn&&(r=n-i-this.padding),r0?t===!0?this.body.nodes[o[o.length-1]]:o[o.length-1]:void 0}},{key:"_getEdgesOverlappingWith",value:function(e,t){for(var i=this.body.edges,o=0;o0?t===!0?this.body.edges[o[o.length-1]]:o[o.length-1]:void 0}},{key:"_addToSelection",value:function(e){e instanceof a["default"]?this.selectionObj.nodes[e.id]=e:this.selectionObj.edges[e.id]=e}},{key:"_addToHover",value:function(e){e instanceof a["default"]?this.hoverObj.nodes[e.id]=e:this.hoverObj.edges[e.id]=e}},{key:"_removeFromSelection",value:function(e){e instanceof a["default"]?(delete this.selectionObj.nodes[e.id],this._unselectConnectedEdges(e)):delete this.selectionObj.edges[e.id]}},{key:"unselectAll",value:function(){for(var e in this.selectionObj.nodes)this.selectionObj.nodes.hasOwnProperty(e)&&this.selectionObj.nodes[e].unselect();for(var t in this.selectionObj.edges)this.selectionObj.edges.hasOwnProperty(t)&&this.selectionObj.edges[t].unselect();this.selectionObj={nodes:{},edges:{}}}},{key:"_getSelectedNodeCount",value:function(){var e=0;for(var t in this.selectionObj.nodes)this.selectionObj.nodes.hasOwnProperty(t)&&(e+=1);return e}},{key:"_getSelectedNode",value:function(){for(var e in this.selectionObj.nodes)if(this.selectionObj.nodes.hasOwnProperty(e))return this.selectionObj.nodes[e]}},{key:"_getSelectedEdge",value:function(){for(var e in this.selectionObj.edges)if(this.selectionObj.edges.hasOwnProperty(e))return this.selectionObj.edges[e]}},{key:"_getSelectedEdgeCount",value:function(){var e=0;for(var t in this.selectionObj.edges)this.selectionObj.edges.hasOwnProperty(t)&&(e+=1);return e}},{key:"_getSelectedObjectCount",value:function(){var e=0;for(var t in this.selectionObj.nodes)this.selectionObj.nodes.hasOwnProperty(t)&&(e+=1);for(var i in this.selectionObj.edges)this.selectionObj.edges.hasOwnProperty(i)&&(e+=1);return e}},{key:"_selectionIsEmpty",value:function(){for(var e in this.selectionObj.nodes)if(this.selectionObj.nodes.hasOwnProperty(e))return!1;for(var t in this.selectionObj.edges)if(this.selectionObj.edges.hasOwnProperty(t))return!1;return!0}},{key:"_clusterInSelection",value:function(){for(var e in this.selectionObj.nodes)if(this.selectionObj.nodes.hasOwnProperty(e)&&this.selectionObj.nodes[e].clusterSize>1)return!0;return!1}},{key:"_selectConnectedEdges",value:function(e){for(var t=0;t0&&(this.options.hierarchical.levelSeparation*=-1):this.options.hierarchical.levelSeparation<0&&(this.options.hierarchical.levelSeparation*=-1),this.body.emitter.emit("_resetHierarchicalLayout"),this.adaptAllOptionsForHierarchicalLayout(t);if(i===!0)return this.body.emitter.emit("refresh"),l.deepExtend(t,this.optionsBackup)}return t}},{key:"adaptAllOptionsForHierarchicalLayout",value:function(e){if(this.options.hierarchical.enabled===!0){void 0===e.physics||e.physics===!0?(e.physics={enabled:void 0===this.optionsBackup.physics.enabled?!0:this.optionsBackup.physics.enabled,solver:"hierarchicalRepulsion"},this.optionsBackup.physics.enabled=void 0===this.optionsBackup.physics.enabled?!0:this.optionsBackup.physics.enabled,this.optionsBackup.physics.solver=this.optionsBackup.physics.solver||"barnesHut"):"object"===r(e.physics)?(this.optionsBackup.physics.enabled=void 0===e.physics.enabled?!0:e.physics.enabled,this.optionsBackup.physics.solver=e.physics.solver||"barnesHut",e.physics.solver="hierarchicalRepulsion"):e.physics!==!1&&(this.optionsBackup.physics.solver="barnesHut",e.physics={solver:"hierarchicalRepulsion"});var t="horizontal";"RL"!==this.options.hierarchical.direction&&"LR"!==this.options.hierarchical.direction||(t="vertical"),void 0===e.edges?(this.optionsBackup.edges={smooth:{enabled:!0,type:"dynamic"}},e.edges={smooth:!1}):void 0===e.edges.smooth?(this.optionsBackup.edges={smooth:{enabled:!0,type:"dynamic"}},e.edges.smooth=!1):"boolean"==typeof e.edges.smooth?(this.optionsBackup.edges={smooth:e.edges.smooth},e.edges.smooth={enabled:e.edges.smooth,type:t}):(void 0!==e.edges.smooth.type&&"dynamic"!==e.edges.smooth.type&&(t=e.edges.smooth.type),this.optionsBackup.edges={smooth:void 0===e.edges.smooth.enabled?!0:e.edges.smooth.enabled,type:void 0===e.edges.smooth.type?"dynamic":e.edges.smooth.type,roundness:void 0===e.edges.smooth.roundness?.5:e.edges.smooth.roundness,forceDirection:void 0===e.edges.smooth.forceDirection?!1:e.edges.smooth.forceDirection},e.edges.smooth={enabled:void 0===e.edges.smooth.enabled?!0:e.edges.smooth.enabled,type:t,roundness:void 0===e.edges.smooth.roundness?.5:e.edges.smooth.roundness,forceDirection:void 0===e.edges.smooth.forceDirection?!1:e.edges.smooth.forceDirection}),this.body.emitter.emit("_forceDisableDynamicCurves",t)}return e}},{key:"seededRandom",value:function(){var e=1e4*Math.sin(this.randomSeed++);return e-Math.floor(e)}},{key:"positionInitially",value:function(e){if(this.options.hierarchical.enabled!==!0){this.randomSeed=this.initialRandomSeed;for(var t=0;ts){for(var r=this.body.nodeIndices.length;this.body.nodeIndices.length>s;){n+=1;var a=this.body.nodeIndices.length;n%3===0?this.body.modules.clustering.clusterBridges():this.body.modules.clustering.clusterOutliers();var h=this.body.nodeIndices.length;if(a==h&&n%3!==0||n>o)return this._declusterAll(),this.body.emitter.emit("_layoutFailed"),void console.info("This network could not be positioned by this version of the improved layout algorithm. Please disable improvedLayout for better performance.")}this.body.modules.kamadaKawai.setOptions({springLength:Math.max(150,2*r)})}this.body.modules.kamadaKawai.solve(this.body.nodeIndices,this.body.edgeIndices,!0),this._shiftToCenter();for(var d=70,l=0;l0){var e=void 0,t=void 0,i=!1,o=!0,n=!1;this.hierarchicalLevels={},this.lastNodeOnLevel={},this.hierarchicalChildrenReference={},this.hierarchicalParentReference={},this.hierarchicalTrees={},this.treeIndex=-1,this.distributionOrdering={},this.distributionIndex={},this.distributionOrderingPresence={};for(t in this.body.nodes)this.body.nodes.hasOwnProperty(t)&&(e=this.body.nodes[t],void 0===e.options.x&&void 0===e.options.y&&(o=!1),void 0!==e.options.level?(i=!0,this.hierarchicalLevels[t]=e.options.level):n=!0);if(n===!0&&i===!0)throw new Error("To use the hierarchical layout, nodes require either no predefined levels or levels have to be defined for all nodes."); +n===!0&&("hubsize"===this.options.hierarchical.sortMethod?this._determineLevelsByHubsize():"directed"===this.options.hierarchical.sortMethod?this._determineLevelsDirected():"custom"===this.options.hierarchical.sortMethod&&this._determineLevelsCustomCallback());for(var s in this.body.nodes)this.body.nodes.hasOwnProperty(s)&&void 0===this.hierarchicalLevels[s]&&(this.hierarchicalLevels[s]=0);var r=this._getDistribution();this._generateMap(),this._placeNodesByHierarchy(r),this._condenseHierarchy(),this._shiftToCenter()}}},{key:"_condenseHierarchy",value:function(){var e=this,t=!1,i={},o=function(){for(var t=a(),i=0;i0)for(var n=0;n=l&&(r=Math.min(c,r),a=Math.max(c,a))}return[r,a,o,n]},l=function w(t){var i=e.hierarchicalLevels[t];if(e.hierarchicalChildrenReference[t]){var o=e.hierarchicalChildrenReference[t];if(o.length>0)for(var n=0;n1)for(var a=0;ae.options.hierarchical.nodeSpacing){var u={};u[i.id]=!0;var f={};f[o.id]=!0,h(i,u),h(o,f);var p=c(i,o),v=d(u,p),y=s(v,4),g=(y[0],y[1]),b=(y[2],y[3],d(f,p)),m=s(b,4),_=m[0],w=(m[1],m[2]),k=(m[3],Math.abs(g-_));if(k>e.options.hierarchical.nodeSpacing){var x=g-_+e.options.hierarchical.nodeSpacing;x<-w+e.options.hierarchical.nodeSpacing&&(x=-w+e.options.hierarchical.nodeSpacing),0>x&&(e._shiftBlock(o.id,x),t=!0,n===!0&&e._centerParent(o))}}},v=function(o,n){for(var r=n.id,a=n.edges,l=e.hierarchicalLevels[n.id],c=e.options.hierarchical.levelSeparation*e.options.hierarchical.levelSeparation,u={},f=[],p=0;pr;r++){var a=g(o,i),h=b(o,i),d=40,l=Math.max(-d,Math.min(d,Math.round(a/h)));if(o-=l,void 0!==s[o])break;s[o]=r}return o},_=function(o){var r=e._getPositionForHierarchy(n);if(void 0===i[n.id]){var a={};a[n.id]=!0,h(n,a),i[n.id]=a}var l=d(i[n.id]),c=s(l,4),u=(c[0],c[1],c[2]),f=c[3],p=o-r,v=0;p>0?v=Math.min(p,f-e.options.hierarchical.nodeSpacing):0>p&&(v=-Math.min(-p,u-e.options.hierarchical.nodeSpacing)),0!=v&&(e._shiftBlock(n.id,v),t=!0)},w=function(i){var o=e._getPositionForHierarchy(n),r=e._getSpaceAroundNode(n),a=s(r,2),h=a[0],d=a[1],l=i-o,c=o;l>0?c=Math.min(o+(d-e.options.hierarchical.nodeSpacing),i):0>l&&(c=Math.max(o-(h-e.options.hierarchical.nodeSpacing),i)),c!==o&&(e._setPositionForHierarchy(n,c,void 0,!0),t=!0)},k=m(o,f);_(k),k=m(o,a),w(k)},y=function(i){var o=Object.keys(e.distributionOrdering);o=o.reverse();for(var n=0;i>n;n++){t=!1;for(var s=0;sn&&(t=!1,f(p,o,!0),t===!0);n++);},b=function(){for(var t in e.body.nodes)e.body.nodes.hasOwnProperty(t)&&e._centerParent(e.body.nodes[t])},m=function(){var t=Object.keys(e.distributionOrdering);t=t.reverse();for(var i=0;i0)for(var d=0;dg&&Math.abs(g)0&&Math.abs(g)0&&(r=this._getPositionForHierarchy(i[n-1])+this.options.hierarchical.nodeSpacing),this._setPositionForHierarchy(s,r,t),this._validataPositionAndContinue(s,t,r),o++}}}}},{key:"_placeBranchNodes",value:function(e,t){if(void 0!==this.hierarchicalChildrenReference[e]){for(var i=[],o=0;ot&&void 0===this.positionedNodes[s.id]))return;var a=void 0;a=0===n?this._getPositionForHierarchy(this.body.nodes[e]):this._getPositionForHierarchy(i[n-1])+this.options.hierarchical.nodeSpacing,this._setPositionForHierarchy(s,a,r),this._validataPositionAndContinue(s,r,a)}for(var h=1e9,d=-1e9,l=0;l0&&(t=this._getHubSize(),0!==t);)for(var o in this.body.nodes)if(this.body.nodes.hasOwnProperty(o)){var n=this.body.nodes[o];n.edges.length===t&&this._crawlNetwork(i,o)}}},{key:"_determineLevelsCustomCallback",value:function(){var e=this,t=1e5,i=function(e,t,i){},o=function(o,n,s){var r=e.hierarchicalLevels[o.id];void 0===r&&(e.hierarchicalLevels[o.id]=t);var a=i(d["default"].cloneOptions(o,"node"),d["default"].cloneOptions(n,"node"),d["default"].cloneOptions(s,"edge"));e.hierarchicalLevels[n.id]=e.hierarchicalLevels[o.id]+a};this._crawlNetwork(o),this._setMinLevelToZero()}},{key:"_determineLevelsDirected",value:function(){var e=this,t=1e4,i=function(i,o,n){var s=e.hierarchicalLevels[i.id];void 0===s&&(e.hierarchicalLevels[i.id]=t),n.toId==o.id?e.hierarchicalLevels[o.id]=e.hierarchicalLevels[i.id]+1:e.hierarchicalLevels[o.id]=e.hierarchicalLevels[i.id]-1};this._crawlNetwork(i),this._setMinLevelToZero()}},{key:"_setMinLevelToZero",value:function(){var e=1e9;for(var t in this.body.nodes)this.body.nodes.hasOwnProperty(t)&&void 0!==this.hierarchicalLevels[t]&&(e=Math.min(this.hierarchicalLevels[t],e));for(var i in this.body.nodes)this.body.nodes.hasOwnProperty(i)&&void 0!==this.hierarchicalLevels[i]&&(this.hierarchicalLevels[i]-=e)}},{key:"_generateMap",value:function(){var e=this,t=function(t,i){if(e.hierarchicalLevels[i.id]>e.hierarchicalLevels[t.id]){var o=t.id,n=i.id;void 0===e.hierarchicalChildrenReference[o]&&(e.hierarchicalChildrenReference[o]=[]),e.hierarchicalChildrenReference[o].push(n),void 0===e.hierarchicalParentReference[n]&&(e.hierarchicalParentReference[n]=[]),e.hierarchicalParentReference[n].push(o)}};this._crawlNetwork(t)}},{key:"_crawlNetwork",value:function(){var e=this,t=arguments.length<=0||void 0===arguments[0]?function(){}:arguments[0],i=arguments[1],o={},n=0,s=function d(i,n){if(void 0===o[i.id]){void 0===e.hierarchicalTrees[i.id]&&(e.hierarchicalTrees[i.id]=n,e.treeIndex=Math.max(n,e.treeIndex)),o[i.id]=!0;for(var s=void 0,r=0;r1&&("UD"===this.options.hierarchical.direction||"DU"===this.options.hierarchical.direction?e.sort(function(e,t){return e.x-t.x}):e.sort(function(e,t){return e.y-t.y}))}}]),e}();t["default"]=c},function(e,t,i){function o(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(t,"__esModule",{value:!0});var n=function(){function e(e,t){for(var i=0;i0&&this.options.deleteNode!==!1?(n===!0&&this._createSeperator(4),this._createDeleteButton(o)):0===e&&this.options.deleteEdge!==!1&&(n===!0&&this._createSeperator(4),this._createDeleteButton(o))),this._bindHammerToDiv(this.closeDiv,this.toggleEditMode.bind(this)),this._temporaryBindEvent("select",this.showManipulatorToolbar.bind(this))}this.body.emitter.emit("_redraw")}},{key:"addNodeMode",value:function(){if(this.editMode!==!0&&this.enableEditMode(),this._clean(),this.inMode="addNode",this.guiEnabled===!0){var e=this.options.locales[this.options.locale];this.manipulationDOM={},this._createBackButton(e),this._createSeperator(),this._createDescription(e.addDescription||this.options.locales.en.addDescription),this._bindHammerToDiv(this.closeDiv,this.toggleEditMode.bind(this))}this._temporaryBindEvent("click",this._performAddNode.bind(this))}},{key:"editNode",value:function(){var e=this;this.editMode!==!0&&this.enableEditMode(),this._clean();var t=this.selectionHandler._getSelectedNode();if(void 0!==t){if(this.inMode="editNode","function"!=typeof this.options.editNode)throw new Error("No function has been configured to handle the editing of nodes.");if(t.isCluster!==!0){var i=s.deepExtend({},t.options,!1);if(i.x=t.x,i.y=t.y,2!==this.options.editNode.length)throw new Error("The function for edit does not support two arguments (data, callback)");this.options.editNode(i,function(t){null!==t&&void 0!==t&&"editNode"===e.inMode&&e.body.data.nodes.getDataSet().update(t),e.showManipulatorToolbar()})}else alert(this.options.locales[this.options.locale].editClusterError||this.options.locales.en.editClusterError)}else this.showManipulatorToolbar()}},{key:"addEdgeMode",value:function(){if(this.editMode!==!0&&this.enableEditMode(),this._clean(),this.inMode="addEdge",this.guiEnabled===!0){var e=this.options.locales[this.options.locale];this.manipulationDOM={},this._createBackButton(e),this._createSeperator(),this._createDescription(e.edgeDescription||this.options.locales.en.edgeDescription),this._bindHammerToDiv(this.closeDiv,this.toggleEditMode.bind(this))}this._temporaryBindUI("onTouch",this._handleConnect.bind(this)),this._temporaryBindUI("onDragEnd",this._finishConnect.bind(this)),this._temporaryBindUI("onDrag",this._dragControlNode.bind(this)),this._temporaryBindUI("onRelease",this._finishConnect.bind(this)),this._temporaryBindUI("onDragStart",function(){}),this._temporaryBindUI("onHold",function(){})}},{key:"editEdgeMode",value:function(){var e=this;if(this.editMode!==!0&&this.enableEditMode(),this._clean(),this.inMode="editEdge",this.guiEnabled===!0){var t=this.options.locales[this.options.locale];this.manipulationDOM={},this._createBackButton(t),this._createSeperator(),this._createDescription(t.editEdgeDescription||this.options.locales.en.editEdgeDescription),this._bindHammerToDiv(this.closeDiv,this.toggleEditMode.bind(this))}this.edgeBeingEditedId=this.selectionHandler.getSelectedEdges()[0],void 0!==this.edgeBeingEditedId?!function(){var t=e.body.edges[e.edgeBeingEditedId],i=e._getNewTargetNode(t.from.x,t.from.y),o=e._getNewTargetNode(t.to.x,t.to.y);e.temporaryIds.nodes.push(i.id),e.temporaryIds.nodes.push(o.id),e.body.nodes[i.id]=i,e.body.nodeIndices.push(i.id),e.body.nodes[o.id]=o,e.body.nodeIndices.push(o.id),e._temporaryBindUI("onTouch",e._controlNodeTouch.bind(e)),e._temporaryBindUI("onTap",function(){}),e._temporaryBindUI("onHold",function(){}),e._temporaryBindUI("onDragStart",e._controlNodeDragStart.bind(e)),e._temporaryBindUI("onDrag",e._controlNodeDrag.bind(e)),e._temporaryBindUI("onDragEnd",e._controlNodeDragEnd.bind(e)),e._temporaryBindUI("onMouseMove",function(){}),e._temporaryBindEvent("beforeDrawing",function(e){var n=t.edgeType.findBorderPositions(e);i.selected===!1&&(i.x=n.from.x,i.y=n.from.y),o.selected===!1&&(o.x=n.to.x,o.y=n.to.y)}),e.body.emitter.emit("_redraw")}():this.showManipulatorToolbar()}},{key:"deleteSelected",value:function(){var e=this;this.editMode!==!0&&this.enableEditMode(),this._clean(),this.inMode="delete";var t=this.selectionHandler.getSelectedNodes(),i=this.selectionHandler.getSelectedEdges(),o=void 0;if(t.length>0){for(var n=0;n0&&"function"==typeof this.options.deleteEdge&&(o=this.options.deleteEdge);if("function"==typeof o){var s={nodes:t,edges:i};if(2!==o.length)throw new Error("The function for delete does not support two arguments (data, callback)");o(s,function(t){null!==t&&void 0!==t&&"delete"===e.inMode?(e.body.data.edges.getDataSet().remove(t.edges),e.body.data.nodes.getDataSet().remove(t.nodes),e.body.emitter.emit("startSimulation"),e.showManipulatorToolbar()):(e.body.emitter.emit("startSimulation"),e.showManipulatorToolbar())})}else this.body.data.edges.getDataSet().remove(i),this.body.data.nodes.getDataSet().remove(t),this.body.emitter.emit("startSimulation"),this.showManipulatorToolbar()}},{key:"_setup",value:function(){this.options.enabled===!0?(this.guiEnabled=!0,this._createWrappers(),this.editMode===!1?this._createEditButton():this.showManipulatorToolbar()):(this._removeManipulationDOM(),this.guiEnabled=!1)}},{key:"_createWrappers",value:function(){void 0===this.manipulationDiv&&(this.manipulationDiv=document.createElement("div"),this.manipulationDiv.className="vis-manipulation",this.editMode===!0?this.manipulationDiv.style.display="block":this.manipulationDiv.style.display="none",this.canvas.frame.appendChild(this.manipulationDiv)),void 0===this.editModeDiv&&(this.editModeDiv=document.createElement("div"),this.editModeDiv.className="vis-edit-mode",this.editMode===!0?this.editModeDiv.style.display="none":this.editModeDiv.style.display="block",this.canvas.frame.appendChild(this.editModeDiv)),void 0===this.closeDiv&&(this.closeDiv=document.createElement("div"),this.closeDiv.className="vis-close",this.closeDiv.style.display=this.manipulationDiv.style.display,this.canvas.frame.appendChild(this.closeDiv))}},{key:"_getNewTargetNode",value:function(e,t){var i=s.deepExtend({},this.options.controlNodeStyle);i.id="targetNode"+s.randomUUID(),i.hidden=!1,i.physics=!1,i.x=e,i.y=t;var o=this.body.functions.createNode(i);return o.shape.boundingBox={left:e,right:e,top:t,bottom:t},o}},{key:"_createEditButton",value:function(){this._clean(),this.manipulationDOM={},s.recursiveDOMDelete(this.editModeDiv);var e=this.options.locales[this.options.locale],t=this._createButton("editMode","vis-button vis-edit vis-edit-mode",e.edit||this.options.locales.en.edit);this.editModeDiv.appendChild(t),this._bindHammerToDiv(t,this.toggleEditMode.bind(this))}},{key:"_clean",value:function(){this.inMode=!1,this.guiEnabled===!0&&(s.recursiveDOMDelete(this.editModeDiv),s.recursiveDOMDelete(this.manipulationDiv),this._cleanManipulatorHammers()),this._cleanupTemporaryNodesAndEdges(),this._unbindTemporaryUIs(),this._unbindTemporaryEvents(),this.body.emitter.emit("restorePhysics")}},{key:"_cleanManipulatorHammers",value:function(){if(0!=this.manipulationHammers.length){for(var e=0;e=0;r--)if(n[r]!==this.selectedControlNode.id){s=this.body.nodes[n[r]];break}if(void 0!==s&&void 0!==this.selectedControlNode)if(s.isCluster===!0)alert(this.options.locales[this.options.locale].createEdgeError||this.options.locales.en.createEdgeError);else{var a=this.body.nodes[this.temporaryIds.nodes[0]];this.selectedControlNode.id===a.id?this._performEditEdge(s.id,o.to.id):this._performEditEdge(o.from.id,s.id)}else o.updateEdgeType(),this.body.emitter.emit("restorePhysics");this.body.emitter.emit("_redraw")}}},{key:"_handleConnect",value:function(e){if((new Date).valueOf()-this.touchTime>100){this.lastTouch=this.body.functions.getPointer(e.center),this.lastTouch.translation=s.extend({},this.body.view.translation);var t=this.lastTouch,i=this.selectionHandler.getNodeAt(t);if(void 0!==i)if(i.isCluster===!0)alert(this.options.locales[this.options.locale].createEdgeError||this.options.locales.en.createEdgeError);else{var o=this._getNewTargetNode(i.x,i.y);this.body.nodes[o.id]=o,this.body.nodeIndices.push(o.id);var n=this.body.functions.createEdge({id:"connectionEdge"+s.randomUUID(),from:i.id,to:o.id,physics:!1,smooth:{enabled:!0,type:"continuous",roundness:.5}});this.body.edges[n.id]=n,this.body.edgeIndices.push(n.id),this.temporaryIds.nodes.push(o.id),this.temporaryIds.edges.push(n.id)}this.touchTime=(new Date).valueOf()}}},{key:"_dragControlNode",value:function(e){var t=this.body.functions.getPointer(e.center);if(void 0!==this.temporaryIds.nodes[0]){var i=this.body.nodes[this.temporaryIds.nodes[0]];i.x=this.canvas._XconvertDOMtoCanvas(t.x),i.y=this.canvas._YconvertDOMtoCanvas(t.y),this.body.emitter.emit("_redraw")}else{var o=t.x-this.lastTouch.x,n=t.y-this.lastTouch.y; +this.body.view.translation={x:this.lastTouch.translation.x+o,y:this.lastTouch.translation.y+n}}}},{key:"_finishConnect",value:function(e){var t=this.body.functions.getPointer(e.center),i=this.selectionHandler._pointerToPositionObject(t),o=void 0;void 0!==this.temporaryIds.edges[0]&&(o=this.body.edges[this.temporaryIds.edges[0]].fromId);for(var n=this.selectionHandler._getAllNodesOverlappingWith(i),s=void 0,r=n.length-1;r>=0;r--)if(-1===this.temporaryIds.nodes.indexOf(n[r])){s=this.body.nodes[n[r]];break}this._cleanupTemporaryNodesAndEdges(),void 0!==s&&(s.isCluster===!0?alert(this.options.locales[this.options.locale].createEdgeError||this.options.locales.en.createEdgeError):void 0!==this.body.nodes[o]&&void 0!==this.body.nodes[s.id]&&this._performAddEdge(o,s.id)),this.body.emitter.emit("_redraw")}},{key:"_performAddNode",value:function(e){var t=this,i={id:s.randomUUID(),x:e.pointer.canvas.x,y:e.pointer.canvas.y,label:"new"};if("function"==typeof this.options.addNode){if(2!==this.options.addNode.length)throw new Error("The function for add does not support two arguments (data,callback)");this.options.addNode(i,function(e){null!==e&&void 0!==e&&"addNode"===t.inMode&&(t.body.data.nodes.getDataSet().add(e),t.showManipulatorToolbar())})}else this.body.data.nodes.getDataSet().add(i),this.showManipulatorToolbar()}},{key:"_performAddEdge",value:function(e,t){var i=this,o={from:e,to:t};if("function"==typeof this.options.addEdge){if(2!==this.options.addEdge.length)throw new Error("The function for connect does not support two arguments (data,callback)");this.options.addEdge(o,function(e){null!==e&&void 0!==e&&"addEdge"===i.inMode&&(i.body.data.edges.getDataSet().add(e),i.selectionHandler.unselectAll(),i.showManipulatorToolbar())})}else this.body.data.edges.getDataSet().add(o),this.selectionHandler.unselectAll(),this.showManipulatorToolbar()}},{key:"_performEditEdge",value:function(e,t){var i=this,o={id:this.edgeBeingEditedId,from:e,to:t};if("function"==typeof this.options.editEdge){if(2!==this.options.editEdge.length)throw new Error("The function for edit does not support two arguments (data, callback)");this.options.editEdge(o,function(e){null===e||void 0===e||"editEdge"!==i.inMode?(i.body.edges[o.id].updateEdgeType(),i.body.emitter.emit("_redraw")):(i.body.data.edges.getDataSet().update(e),i.selectionHandler.unselectAll(),i.showManipulatorToolbar())})}else this.body.data.edges.getDataSet().update(o),this.selectionHandler.unselectAll(),this.showManipulatorToolbar()}}]),e}();t["default"]=h},function(e,t,i){function o(e){return e&&e.__esModule?e:{"default":e}}function n(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(t,"__esModule",{value:!0});var s="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol?"symbol":typeof e},r=function(){function e(e,t){for(var i=0;i0&&this._makeItem([]),this._makeHeader(n),this._handleObject(this.configureOptions[n],[n])),i++);this.options.showButton===!0&&!function(){var t=document.createElement("div");t.className="vis-configuration vis-config-button",t.innerHTML="generate options",t.onclick=function(){e._printOptions()},t.onmouseover=function(){t.className="vis-configuration vis-config-button hover"},t.onmouseout=function(){t.className="vis-configuration vis-config-button"},e.optionsContainer=document.createElement("div"),e.optionsContainer.className="vis-configuration vis-config-option-container",e.domElements.push(e.optionsContainer),e.domElements.push(t)}(),this._push()}},{key:"_push",value:function(){this.wrapper=document.createElement("div"),this.wrapper.className="vis-configuration-wrapper",this.container.appendChild(this.wrapper);for(var e=0;e1?o-1:0),r=1;o>r;r++)n[r-1]=t[r];return n.forEach(function(e){s.appendChild(e)}),i.domElements.push(s),{v:i.domElements.length}}();if("object"===("undefined"==typeof a?"undefined":s(a)))return a.v}return 0}},{key:"_makeHeader",value:function(e){var t=document.createElement("div");t.className="vis-configuration vis-config-header",t.innerHTML=e,this._makeItem([],t)}},{key:"_makeLabel",value:function(e,t){var i=arguments.length<=2||void 0===arguments[2]?!1:arguments[2],o=document.createElement("div");return o.className="vis-configuration vis-config-label vis-config-s"+t.length,i===!0?o.innerHTML=""+e+":":o.innerHTML=e+":",o}},{key:"_makeDropdown",value:function(e,t,i){var o=document.createElement("select");o.className="vis-configuration vis-config-select";var n=0;void 0!==t&&-1!==e.indexOf(t)&&(n=e.indexOf(t));for(var s=0;st&&n>t*c?(a.min=Math.ceil(t*c),l=a.min,d="range increased"):n>t/c&&(a.min=Math.ceil(t/c),l=a.min,d="range increased"),t*c>s&&1!==s&&(a.max=Math.ceil(t*c),l=a.max,d="range increased"),a.value=t}else a.value=o;var u=document.createElement("input");u.className="vis-configuration vis-config-rangeinput",u.value=a.value;var f=this;a.onchange=function(){u.value=this.value,f._update(Number(this.value),i)},a.oninput=function(){u.value=this.value};var p=this._makeLabel(i[i.length-1],i),v=this._makeItem(i,p,a,u);""!==d&&this.popupHistory[v]!==l&&(this.popupHistory[v]=l,this._setupPopup(d,v))}},{key:"_setupPopup",value:function(e,t){var i=this;if(this.initialized===!0&&this.allowCreation===!0&&this.popupCountervar options = "+JSON.stringify(e,null,2)+""}},{key:"getOptions",value:function(){for(var e={},t=0;ts;s++)for(r=0;rf?f+1:f;var p=l/this.r,v=a.RGBToHSV(this.color.r,this.color.g,this.color.b);v.h=f,v.s=p;var y=a.HSVToRGB(v.h,v.s,v.v);y.a=this.color.a,this.color=y,this.initialColorDiv.style.backgroundColor="rgba("+this.initialColor.r+","+this.initialColor.g+","+this.initialColor.b+","+this.initialColor.a+")",this.newColorDiv.style.backgroundColor="rgba("+this.color.r+","+this.color.g+","+this.color.b+","+this.color.a+")"}}]),e}();t["default"]=h},function(e,t){Object.defineProperty(t,"__esModule",{value:!0});var i="string",o="boolean",n="number",s="array",r="object",a="dom",h="any",d={configure:{enabled:{"boolean":o},filter:{"boolean":o,string:i,array:s,"function":"function"},container:{dom:a},showButton:{"boolean":o},__type__:{object:r,"boolean":o,string:i,array:s,"function":"function"}},edges:{arrows:{to:{enabled:{"boolean":o},scaleFactor:{number:n},__type__:{object:r,"boolean":o}},middle:{enabled:{"boolean":o},scaleFactor:{number:n},__type__:{object:r,"boolean":o}},from:{enabled:{"boolean":o},scaleFactor:{number:n},__type__:{object:r,"boolean":o}},__type__:{string:["from","to","middle"],object:r}},arrowStrikethrough:{"boolean":o},color:{color:{string:i},highlight:{string:i},hover:{string:i},inherit:{string:["from","to","both"],"boolean":o},opacity:{number:n},__type__:{object:r,string:i}},dashes:{"boolean":o,array:s},font:{color:{string:i},size:{number:n},face:{string:i},background:{string:i},strokeWidth:{number:n},strokeColor:{string:i},align:{string:["horizontal","top","middle","bottom"]},__type__:{object:r,string:i}},hidden:{"boolean":o},hoverWidth:{"function":"function",number:n},label:{string:i,undefined:"undefined"},labelHighlightBold:{"boolean":o},length:{number:n,undefined:"undefined"},physics:{"boolean":o},scaling:{min:{number:n},max:{number:n},label:{enabled:{"boolean":o},min:{number:n},max:{number:n},maxVisible:{number:n},drawThreshold:{number:n},__type__:{object:r,"boolean":o}},customScalingFunction:{"function":"function"},__type__:{object:r}},selectionWidth:{"function":"function",number:n},selfReferenceSize:{number:n},shadow:{enabled:{"boolean":o},color:{string:i},size:{number:n},x:{number:n},y:{number:n},__type__:{object:r,"boolean":o}},smooth:{enabled:{"boolean":o},type:{string:["dynamic","continuous","discrete","diagonalCross","straightCross","horizontal","vertical","curvedCW","curvedCCW","cubicBezier"]},roundness:{number:n},forceDirection:{string:["horizontal","vertical","none"],"boolean":o},__type__:{object:r,"boolean":o}},title:{string:i,undefined:"undefined"},width:{number:n},value:{number:n,undefined:"undefined"},__type__:{object:r}},groups:{useDefaultGroups:{"boolean":o},__any__:"get from nodes, will be overwritten below",__type__:{object:r}},interaction:{dragNodes:{"boolean":o},dragView:{"boolean":o},hideEdgesOnDrag:{"boolean":o},hideNodesOnDrag:{"boolean":o},hover:{"boolean":o},keyboard:{enabled:{"boolean":o},speed:{x:{number:n},y:{number:n},zoom:{number:n},__type__:{object:r}},bindToWindow:{"boolean":o},__type__:{object:r,"boolean":o}},multiselect:{"boolean":o},navigationButtons:{"boolean":o},selectable:{"boolean":o},selectConnectedEdges:{"boolean":o},hoverConnectedEdges:{"boolean":o},tooltipDelay:{number:n},zoomView:{"boolean":o},__type__:{object:r}},layout:{randomSeed:{undefined:"undefined",number:n},improvedLayout:{"boolean":o},hierarchical:{enabled:{"boolean":o},levelSeparation:{number:n},nodeSpacing:{number:n},treeSpacing:{number:n},blockShifting:{"boolean":o},edgeMinimization:{"boolean":o},parentCentralization:{"boolean":o},direction:{string:["UD","DU","LR","RL"]},sortMethod:{string:["hubsize","directed"]},__type__:{object:r,"boolean":o}},__type__:{object:r}},manipulation:{enabled:{"boolean":o},initiallyActive:{"boolean":o},addNode:{"boolean":o,"function":"function"},addEdge:{"boolean":o,"function":"function"},editNode:{"function":"function"},editEdge:{"boolean":o,"function":"function"},deleteNode:{"boolean":o,"function":"function"},deleteEdge:{"boolean":o,"function":"function"},controlNodeStyle:"get from nodes, will be overwritten below",__type__:{object:r,"boolean":o}},nodes:{borderWidth:{number:n},borderWidthSelected:{number:n,undefined:"undefined"},brokenImage:{string:i,undefined:"undefined"},color:{border:{string:i},background:{string:i},highlight:{border:{string:i},background:{string:i},__type__:{object:r,string:i}},hover:{border:{string:i},background:{string:i},__type__:{object:r,string:i}},__type__:{object:r,string:i}},fixed:{x:{"boolean":o},y:{"boolean":o},__type__:{object:r,"boolean":o}},font:{color:{string:i},size:{number:n},face:{string:i},background:{string:i},strokeWidth:{number:n},strokeColor:{string:i},__type__:{object:r,string:i}}, +group:{string:i,number:n,undefined:"undefined"},hidden:{"boolean":o},icon:{face:{string:i},code:{string:i},size:{number:n},color:{string:i},__type__:{object:r}},id:{string:i,number:n},image:{string:i,undefined:"undefined"},label:{string:i,undefined:"undefined"},labelHighlightBold:{"boolean":o},level:{number:n,undefined:"undefined"},mass:{number:n},physics:{"boolean":o},scaling:{min:{number:n},max:{number:n},label:{enabled:{"boolean":o},min:{number:n},max:{number:n},maxVisible:{number:n},drawThreshold:{number:n},__type__:{object:r,"boolean":o}},customScalingFunction:{"function":"function"},__type__:{object:r}},shadow:{enabled:{"boolean":o},color:{string:i},size:{number:n},x:{number:n},y:{number:n},__type__:{object:r,"boolean":o}},shape:{string:["ellipse","circle","database","box","text","image","circularImage","diamond","dot","star","triangle","triangleDown","square","icon"]},shapeProperties:{borderDashes:{"boolean":o,array:s},borderRadius:{number:n},interpolation:{"boolean":o},useImageSize:{"boolean":o},useBorderWithImage:{"boolean":o},__type__:{object:r}},size:{number:n},title:{string:i,undefined:"undefined"},value:{number:n,undefined:"undefined"},x:{number:n},y:{number:n},__type__:{object:r}},physics:{enabled:{"boolean":o},barnesHut:{gravitationalConstant:{number:n},centralGravity:{number:n},springLength:{number:n},springConstant:{number:n},damping:{number:n},avoidOverlap:{number:n},__type__:{object:r}},forceAtlas2Based:{gravitationalConstant:{number:n},centralGravity:{number:n},springLength:{number:n},springConstant:{number:n},damping:{number:n},avoidOverlap:{number:n},__type__:{object:r}},repulsion:{centralGravity:{number:n},springLength:{number:n},springConstant:{number:n},nodeDistance:{number:n},damping:{number:n},__type__:{object:r}},hierarchicalRepulsion:{centralGravity:{number:n},springLength:{number:n},springConstant:{number:n},nodeDistance:{number:n},damping:{number:n},__type__:{object:r}},maxVelocity:{number:n},minVelocity:{number:n},solver:{string:["barnesHut","repulsion","hierarchicalRepulsion","forceAtlas2Based"]},stabilization:{enabled:{"boolean":o},iterations:{number:n},updateInterval:{number:n},onlyDynamicEdges:{"boolean":o},fit:{"boolean":o},__type__:{object:r,"boolean":o}},timestep:{number:n},adaptiveTimestep:{"boolean":o},__type__:{object:r,"boolean":o}},autoResize:{"boolean":o},clickToUse:{"boolean":o},locale:{string:i},locales:{__any__:{any:h},__type__:{object:r}},height:{string:i},width:{string:i},__type__:{object:r}};d.groups.__any__=d.nodes,d.manipulation.controlNodeStyle=d.nodes;var l={nodes:{borderWidth:[1,0,10,1],borderWidthSelected:[2,0,10,1],color:{border:["color","#2B7CE9"],background:["color","#97C2FC"],highlight:{border:["color","#2B7CE9"],background:["color","#D2E5FF"]},hover:{border:["color","#2B7CE9"],background:["color","#D2E5FF"]}},fixed:{x:!1,y:!1},font:{color:["color","#343434"],size:[14,0,100,1],face:["arial","verdana","tahoma"],background:["color","none"],strokeWidth:[0,0,50,1],strokeColor:["color","#ffffff"]},hidden:!1,labelHighlightBold:!0,physics:!0,scaling:{min:[10,0,200,1],max:[30,0,200,1],label:{enabled:!1,min:[14,0,200,1],max:[30,0,200,1],maxVisible:[30,0,200,1],drawThreshold:[5,0,20,1]}},shadow:{enabled:!1,color:"rgba(0,0,0,0.5)",size:[10,0,20,1],x:[5,-30,30,1],y:[5,-30,30,1]},shape:["ellipse","box","circle","database","diamond","dot","square","star","text","triangle","triangleDown"],shapeProperties:{borderDashes:!1,borderRadius:[6,0,20,1],interpolation:!0,useImageSize:!1},size:[25,0,200,1]},edges:{arrows:{to:{enabled:!1,scaleFactor:[1,0,3,.05]},middle:{enabled:!1,scaleFactor:[1,0,3,.05]},from:{enabled:!1,scaleFactor:[1,0,3,.05]}},arrowStrikethrough:!0,color:{color:["color","#848484"],highlight:["color","#848484"],hover:["color","#848484"],inherit:["from","to","both",!0,!1],opacity:[1,0,1,.05]},dashes:!1,font:{color:["color","#343434"],size:[14,0,100,1],face:["arial","verdana","tahoma"],background:["color","none"],strokeWidth:[2,0,50,1],strokeColor:["color","#ffffff"],align:["horizontal","top","middle","bottom"]},hidden:!1,hoverWidth:[1.5,0,5,.1],labelHighlightBold:!0,physics:!0,scaling:{min:[1,0,100,1],max:[15,0,100,1],label:{enabled:!0,min:[14,0,200,1],max:[30,0,200,1],maxVisible:[30,0,200,1],drawThreshold:[5,0,20,1]}},selectionWidth:[1.5,0,5,.1],selfReferenceSize:[20,0,200,1],shadow:{enabled:!1,color:"rgba(0,0,0,0.5)",size:[10,0,20,1],x:[5,-30,30,1],y:[5,-30,30,1]},smooth:{enabled:!0,type:["dynamic","continuous","discrete","diagonalCross","straightCross","horizontal","vertical","curvedCW","curvedCCW","cubicBezier"],forceDirection:["horizontal","vertical","none"],roundness:[.5,0,1,.05]},width:[1,0,30,1]},layout:{hierarchical:{enabled:!1,levelSeparation:[150,20,500,5],nodeSpacing:[100,20,500,5],treeSpacing:[200,20,500,5],blockShifting:!0,edgeMinimization:!0,parentCentralization:!0,direction:["UD","DU","LR","RL"],sortMethod:["hubsize","directed"]}},interaction:{dragNodes:!0,dragView:!0,hideEdgesOnDrag:!1,hideNodesOnDrag:!1,hover:!1,keyboard:{enabled:!1,speed:{x:[10,0,40,1],y:[10,0,40,1],zoom:[.02,0,.1,.005]},bindToWindow:!0},multiselect:!1,navigationButtons:!1,selectable:!0,selectConnectedEdges:!0,hoverConnectedEdges:!0,tooltipDelay:[300,0,1e3,25],zoomView:!0},manipulation:{enabled:!1,initiallyActive:!1},physics:{enabled:!0,barnesHut:{gravitationalConstant:[-2e3,-3e4,0,50],centralGravity:[.3,0,10,.05],springLength:[95,0,500,5],springConstant:[.04,0,1.2,.005],damping:[.09,0,1,.01],avoidOverlap:[0,0,1,.01]},forceAtlas2Based:{gravitationalConstant:[-50,-500,0,1],centralGravity:[.01,0,1,.005],springLength:[95,0,500,5],springConstant:[.08,0,1.2,.005],damping:[.4,0,1,.01],avoidOverlap:[0,0,1,.01]},repulsion:{centralGravity:[.2,0,10,.05],springLength:[200,0,500,5],springConstant:[.05,0,1.2,.005],nodeDistance:[100,0,500,5],damping:[.09,0,1,.01]},hierarchicalRepulsion:{centralGravity:[.2,0,10,.05],springLength:[100,0,500,5],springConstant:[.01,0,1.2,.005],nodeDistance:[120,0,500,5],damping:[.09,0,1,.01]},maxVelocity:[50,0,150,1],minVelocity:[.1,.01,.5,.01],solver:["barnesHut","forceAtlas2Based","repulsion","hierarchicalRepulsion"],timestep:[.5,.01,1,.01]},global:{locale:["en","nl"]}};t.allOptions=d,t.configureOptions=l},function(e,t,i){function o(e){return e&&e.__esModule?e:{"default":e}}function n(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(t,"__esModule",{value:!0});var s=function(){function e(e,t){var i=[],o=!0,n=!1,s=void 0;try{for(var r,a=e[Symbol.iterator]();!(o=(r=a.next()).done)&&(i.push(r.value),!t||i.length!==t);o=!0);}catch(h){n=!0,s=h}finally{try{!o&&a["return"]&&a["return"]()}finally{if(n)throw s}}return i}return function(t,i){if(Array.isArray(t))return t;if(Symbol.iterator in Object(t))return e(t,i);throw new TypeError("Invalid attempt to destructure non-iterable instance")}}(),r=function(){function e(e,t){for(var i=0;in&&h>a;){a+=1;var y=this._getHighestEnergyNode(i),g=s(y,4);for(c=g[0],l=g[1],u=g[2],f=g[3],p=l,v=0;p>r&&d>v;){v+=1,this._moveNode(c,u,f);var b=this._getEnergy(c),m=s(b,3);p=m[0],u=m[1],f=m[2]}}}},{key:"_getHighestEnergyNode",value:function(e){for(var t=this.body.nodeIndices,i=this.body.nodes,o=0,n=t[0],r=0,a=0,h=0;ho&&(o=u,n=d,r=f,a=p)}}return[n,o,r,a]}},{key:"_getEnergy",value:function(e){for(var t=this.body.nodeIndices,i=this.body.nodes,o=i[e].x,n=i[e].y,s=0,r=0,a=0;al;l++)for(var c=0;d-1>c;c++)for(var u=c+1;d>u;u++)o[t[c]][t[u]]=Math.min(o[t[c]][t[u]],o[t[c]][t[l]]+o[t[l]][t[u]]),o[t[u]][t[c]]=o[t[c]][t[u]];return o}}]),e}();t["default"]=n},function(e,t){"undefined"!=typeof CanvasRenderingContext2D&&(CanvasRenderingContext2D.prototype.circle=function(e,t,i){this.beginPath(),this.arc(e,t,i,0,2*Math.PI,!1),this.closePath()},CanvasRenderingContext2D.prototype.square=function(e,t,i){this.beginPath(),this.rect(e-i,t-i,2*i,2*i),this.closePath()},CanvasRenderingContext2D.prototype.triangle=function(e,t,i){this.beginPath(),i*=1.15,t+=.275*i;var o=2*i,n=o/2,s=Math.sqrt(3)/6*o,r=Math.sqrt(o*o-n*n);this.moveTo(e,t-(r-s)),this.lineTo(e+n,t+s),this.lineTo(e-n,t+s),this.lineTo(e,t-(r-s)),this.closePath()},CanvasRenderingContext2D.prototype.triangleDown=function(e,t,i){this.beginPath(),i*=1.15,t-=.275*i;var o=2*i,n=o/2,s=Math.sqrt(3)/6*o,r=Math.sqrt(o*o-n*n);this.moveTo(e,t+(r-s)),this.lineTo(e+n,t-s),this.lineTo(e-n,t-s),this.lineTo(e,t+(r-s)),this.closePath()},CanvasRenderingContext2D.prototype.star=function(e,t,i){this.beginPath(),i*=.82,t+=.1*i;for(var o=0;10>o;o++){var n=o%2===0?1.3*i:.5*i;this.lineTo(e+n*Math.sin(2*o*Math.PI/10),t-n*Math.cos(2*o*Math.PI/10))}this.closePath()},CanvasRenderingContext2D.prototype.diamond=function(e,t,i){this.beginPath(),this.lineTo(e,t+i),this.lineTo(e+i,t),this.lineTo(e,t-i),this.lineTo(e-i,t),this.closePath()},CanvasRenderingContext2D.prototype.roundRect=function(e,t,i,o,n){var s=Math.PI/180;0>i-2*n&&(n=i/2),0>o-2*n&&(n=o/2),this.beginPath(),this.moveTo(e+n,t),this.lineTo(e+i-n,t),this.arc(e+i-n,t+n,n,270*s,360*s,!1),this.lineTo(e+i,t+o-n),this.arc(e+i-n,t+o-n,n,0,90*s,!1),this.lineTo(e+n,t+o),this.arc(e+n,t+o-n,n,90*s,180*s,!1),this.lineTo(e,t+n),this.arc(e+n,t+n,n,180*s,270*s,!1),this.closePath()},CanvasRenderingContext2D.prototype.ellipse=function(e,t,i,o){var n=.5522848,s=i/2*n,r=o/2*n,a=e+i,h=t+o,d=e+i/2,l=t+o/2;this.beginPath(),this.moveTo(e,l),this.bezierCurveTo(e,l-r,d-s,t,d,t),this.bezierCurveTo(d+s,t,a,l-r,a,l),this.bezierCurveTo(a,l+r,d+s,h,d,h),this.bezierCurveTo(d-s,h,e,l+r,e,l),this.closePath()},CanvasRenderingContext2D.prototype.database=function(e,t,i,o){var n=1/3,s=i,r=o*n,a=.5522848,h=s/2*a,d=r/2*a,l=e+s,c=t+r,u=e+s/2,f=t+r/2,p=t+(o-r/2),v=t+o;this.beginPath(),this.moveTo(l,f),this.bezierCurveTo(l,f+d,u+h,c,u,c),this.bezierCurveTo(u-h,c,e,f+d,e,f),this.bezierCurveTo(e,f-d,u-h,t,u,t),this.bezierCurveTo(u+h,t,l,f-d,l,f),this.lineTo(l,p),this.bezierCurveTo(l,p+d,u+h,v,u,v),this.bezierCurveTo(u-h,v,e,p+d,e,p),this.lineTo(e,f)},CanvasRenderingContext2D.prototype.arrow=function(e,t,i,o){var n=e-o*Math.cos(i),s=t-o*Math.sin(i),r=e-.9*o*Math.cos(i),a=t-.9*o*Math.sin(i),h=n+o/3*Math.cos(i+.5*Math.PI),d=s+o/3*Math.sin(i+.5*Math.PI),l=n+o/3*Math.cos(i-.5*Math.PI),c=s+o/3*Math.sin(i-.5*Math.PI);this.beginPath(),this.moveTo(e,t),this.lineTo(h,d),this.lineTo(r,a),this.lineTo(l,c),this.closePath()},CanvasRenderingContext2D.prototype.dashedLine=function(e,t,i,o,n){this.beginPath(),this.moveTo(e,t);for(var s=n.length,r=i-e,a=o-t,h=a/r,d=Math.sqrt(r*r+a*a),l=0,c=!0,u=0,f=n[0];d>=.1;)f=n[l++%s],f>d&&(f=d),u=Math.sqrt(f*f/(1+h*h)),u=0>r?-u:u,e+=u,t+=h*u,c===!0?this.lineTo(e,t):this.moveTo(e,t),d-=f,c=!c})},function(e,t){function i(e){return e?o(e):void 0}function o(e){for(var t in i.prototype)e[t]=i.prototype[t];return e}e.exports=i,i.prototype.on=i.prototype.addEventListener=function(e,t){return this._callbacks=this._callbacks||{},(this._callbacks[e]=this._callbacks[e]||[]).push(t),this},i.prototype.once=function(e,t){function i(){o.off(e,i),t.apply(this,arguments)}var o=this;return this._callbacks=this._callbacks||{},i.fn=t,this.on(e,i),this},i.prototype.off=i.prototype.removeListener=i.prototype.removeAllListeners=i.prototype.removeEventListener=function(e,t){if(this._callbacks=this._callbacks||{},0==arguments.length)return this._callbacks={},this;var i=this._callbacks[e];if(!i)return this;if(1==arguments.length)return delete this._callbacks[e],this;for(var o,n=0;no;++o)i[o].apply(this,t)}return this},i.prototype.listeners=function(e){return this._callbacks=this._callbacks||{},this._callbacks[e]||[]},i.prototype.hasListeners=function(e){return!!this.listeners(e).length}},function(e,t){function i(e){return P=e,f()}function o(){B=0,F=P.charAt(0)}function n(){B++,F=P.charAt(B)}function s(){return P.charAt(B+1)}function r(e){return N.test(e)}function a(e,t){if(e||(e={}),t)for(var i in t)t.hasOwnProperty(i)&&(e[i]=t[i]);return e}function h(e,t,i){for(var o=t.split("."),n=e;o.length;){var s=o.shift();o.length?(n[s]||(n[s]={}),n=n[s]):n[s]=i}}function d(e,t){for(var i,o,n=null,s=[e],r=e;r.parent;)s.push(r.parent),r=r.parent;if(r.nodes)for(i=0,o=r.nodes.length;o>i;i++)if(t.id===r.nodes[i].id){n=r.nodes[i];break}for(n||(n={id:t.id},e.node&&(n.attr=a(n.attr,e.node))),i=s.length-1;i>=0;i--){var h=s[i];h.nodes||(h.nodes=[]),-1===h.nodes.indexOf(n)&&h.nodes.push(n)}t.attr&&(n.attr=a(n.attr,t.attr))}function l(e,t){if(e.edges||(e.edges=[]),e.edges.push(t),e.edge){var i=a({},e.edge);t.attr=a(i,t.attr)}}function c(e,t,i,o,n){var s={from:t,to:i,type:o};return e.edge&&(s.attr=a({},e.edge)),s.attr=a(s.attr||{},n),s}function u(){for(j=C.NULL,I="";" "===F||" "===F||"\n"===F||"\r"===F;)n();do{var e=!1;if("#"===F){for(var t=B-1;" "===P.charAt(t)||" "===P.charAt(t);)t--;if("\n"===P.charAt(t)||""===P.charAt(t)){for(;""!=F&&"\n"!=F;)n();e=!0}}if("/"===F&&"/"===s()){for(;""!=F&&"\n"!=F;)n();e=!0}if("/"===F&&"*"===s()){for(;""!=F;){if("*"===F&&"/"===s()){n(),n();break}n()}e=!0}for(;" "===F||" "===F||"\n"===F||"\r"===F;)n()}while(e);if(""===F)return void(j=C.DELIMITER);var i=F+s();if(T[i])return j=C.DELIMITER,I=i,n(),void n();if(T[F])return j=C.DELIMITER,I=F,void n();if(r(F)||"-"===F){for(I+=F,n();r(F);)I+=F,n();return"false"===I?I=!1:"true"===I?I=!0:isNaN(Number(I))||(I=Number(I)),void(j=C.IDENTIFIER)}if('"'===F){for(n();""!=F&&('"'!=F||'"'===F&&'"'===s());)I+=F,'"'===F&&n(),n();if('"'!=F)throw w('End of string " expected');return n(),void(j=C.IDENTIFIER)}for(j=C.UNKNOWN;""!=F;)I+=F,n();throw new SyntaxError('Syntax error in part "'+k(I,30)+'"')}function f(){var e={};if(o(),u(),"strict"===I&&(e.strict=!0,u()),"graph"!==I&&"digraph"!==I||(e.type=I,u()),j===C.IDENTIFIER&&(e.id=I,u()),"{"!=I)throw w("Angle bracket { expected");if(u(),p(e),"}"!=I)throw w("Angle bracket } expected");if(u(),""!==I)throw w("End of file expected");return u(),delete e.node,delete e.edge,delete e.graph,e}function p(e){for(;""!==I&&"}"!=I;)v(e),";"===I&&u()}function v(e){var t=y(e);if(t)return void m(e,t);var i=g(e);if(!i){if(j!=C.IDENTIFIER)throw w("Identifier expected");var o=I;if(u(),"="===I){if(u(),j!=C.IDENTIFIER)throw w("Identifier expected");e[o]=I,u()}else b(e,o)}}function y(e){var t=null;if("subgraph"===I&&(t={},t.type="subgraph",u(),j===C.IDENTIFIER&&(t.id=I,u())),"{"===I){if(u(),t||(t={}),t.parent=e,t.node=e.node,t.edge=e.edge,t.graph=e.graph,p(t),"}"!=I)throw w("Angle bracket } expected");u(),delete t.node,delete t.edge,delete t.graph,delete t.parent,e.subgraphs||(e.subgraphs=[]),e.subgraphs.push(t)}return t}function g(e){return"node"===I?(u(),e.node=_(),"node"):"edge"===I?(u(),e.edge=_(),"edge"):"graph"===I?(u(),e.graph=_(),"graph"):null}function b(e,t){var i={id:t},o=_();o&&(i.attr=o),d(e,i),m(e,t)}function m(e,t){for(;"->"===I||"--"===I;){var i,o=I;u();var n=y(e);if(n)i=n;else{if(j!=C.IDENTIFIER)throw w("Identifier or subgraph expected");i=I,d(e,{id:i}),u()}var s=_(),r=c(e,t,i,o,s);l(e,r),t=i}}function _(){for(var e=null;"["===I;){for(u(),e={};""!==I&&"]"!=I;){if(j!=C.IDENTIFIER)throw w("Attribute name expected");var t=I;if(u(),"="!=I)throw w("Equal sign = expected");if(u(),j!=C.IDENTIFIER)throw w("Attribute value expected");var i=I;h(e,t,i),u(),","==I&&u()}if("]"!=I)throw w("Bracket ] expected");u()}return e}function w(e){return new SyntaxError(e+', got "'+k(I,30)+'" (char '+B+")")}function k(e,t){return e.length<=t?e:e.substr(0,27)+"..."}function x(e,t,i){Array.isArray(e)?e.forEach(function(e){Array.isArray(t)?t.forEach(function(t){i(e,t)}):i(e,t)}):Array.isArray(t)?t.forEach(function(t){i(e,t)}):i(e,t)}function O(e,t,i){for(var o=t.split("."),n=o.pop(),s=e,r=0;r":!0,"--":!0},P="",B=0,F="",I="",j=C.NULL,N=/[a-zA-Z_0-9.:#]/;t.parseDOT=i,t.DOTToGraph=M},function(e,t){function i(e,t){var i=[],o=[],n={edges:{inheritColor:!1},nodes:{fixed:!1,parseColor:!1}};void 0!==t&&(void 0!==t.fixed&&(n.nodes.fixed=t.fixed),void 0!==t.parseColor&&(n.nodes.parseColor=t.parseColor),void 0!==t.inheritColor&&(n.edges.inheritColor=t.inheritColor));for(var s=e.edges,r=e.nodes,a=0;ai;i++)if(t[i]!=e[i])return!1;return!0},e.convert=function(t,i){var o;if(void 0!==t){if(null===t)return null;if(!i)return t;if("string"!=typeof i&&!(i instanceof String))throw new Error("Type must be a string");switch(i){case"boolean":case"Boolean":return Boolean(t);case"number":case"Number":return Number(t.valueOf());case"string":case"String":return String(t);case"Date":if(e.isNumber(t))return new Date(t);if(t instanceof Date)return new Date(t.valueOf());if(n.isMoment(t))return new Date(t.valueOf());if(e.isString(t))return o=r.exec(t),o?new Date(Number(o[1])):n(t).toDate();throw new Error("Cannot convert object of type "+e.getType(t)+" to type Date");case"Moment":if(e.isNumber(t))return n(t);if(t instanceof Date)return n(t.valueOf());if(n.isMoment(t))return n(t);if(e.isString(t))return o=r.exec(t),n(o?Number(o[1]):t);throw new Error("Cannot convert object of type "+e.getType(t)+" to type Date");case"ISODate":if(e.isNumber(t))return new Date(t);if(t instanceof Date)return t.toISOString();if(n.isMoment(t))return t.toDate().toISOString();if(e.isString(t))return o=r.exec(t),o?new Date(Number(o[1])).toISOString():new Date(t).toISOString();throw new Error("Cannot convert object of type "+e.getType(t)+" to type ISODate");case"ASPDate":if(e.isNumber(t))return"/Date("+t+")/";if(t instanceof Date)return"/Date("+t.valueOf()+")/";if(e.isString(t)){o=r.exec(t);var s;return s=o?new Date(Number(o[1])).valueOf():new Date(t).valueOf(),"/Date("+s+")/"}throw new Error("Cannot convert object of type "+e.getType(t)+" to type ASPDate");default:throw new Error('Unknown type "'+i+'"')}}};var r=/^\/?Date\((\-?\d+)/i;e.getType=function(t){var e="undefined"==typeof t?"undefined":o(t);return"object"==e?null===t?"null":t instanceof Boolean?"Boolean":t instanceof Number?"Number":t instanceof String?"String":Array.isArray(t)?"Array":t instanceof Date?"Date":"Object":"number"==e?"Number":"boolean"==e?"Boolean":"string"==e?"String":void 0===e?"undefined":e},e.copyAndExtendArray=function(t,e){for(var i=[],o=0;oi;i++)e(t[i],i,t);else for(i in t)t.hasOwnProperty(i)&&e(t[i],i,t)},e.toArray=function(t){var e=[];for(var i in t)t.hasOwnProperty(i)&&e.push(t[i]);return e},e.updateProperty=function(t,e,i){return t[e]!==i?(t[e]=i,!0):!1},e.throttle=function(t,e){var i=null,o=!1;return function n(){i?o=!0:(o=!1,t(),i=setTimeout(function(){i=null,o&&n()},e))}},e.addEventListener=function(t,e,i,o){t.addEventListener?(void 0===o&&(o=!1),"mousewheel"===e&&navigator.userAgent.indexOf("Firefox")>=0&&(e="DOMMouseScroll"),t.addEventListener(e,i,o)):t.attachEvent("on"+e,i)},e.removeEventListener=function(t,e,i,o){t.removeEventListener?(void 0===o&&(o=!1),"mousewheel"===e&&navigator.userAgent.indexOf("Firefox")>=0&&(e="DOMMouseScroll"),t.removeEventListener(e,i,o)):t.detachEvent("on"+e,i)},e.preventDefault=function(t){t||(t=window.event),t.preventDefault?t.preventDefault():t.returnValue=!1},e.getTarget=function(t){t||(t=window.event);var e;return t.target?e=t.target:t.srcElement&&(e=t.srcElement),void 0!=e.nodeType&&3==e.nodeType&&(e=e.parentNode),e},e.hasParent=function(t,e){for(var i=t;i;){if(i===e)return!0;i=i.parentNode}return!1},e.option={},e.option.asBoolean=function(t,e){return"function"==typeof t&&(t=t()),null!=t?0!=t:e||null},e.option.asNumber=function(t,e){return"function"==typeof t&&(t=t()),null!=t?Number(t)||e||null:e||null},e.option.asString=function(t,e){return"function"==typeof t&&(t=t()),null!=t?String(t):e||null},e.option.asSize=function(t,i){return"function"==typeof t&&(t=t()),e.isString(t)?t:e.isNumber(t)?t+"px":i||null},e.option.asElement=function(t,e){return"function"==typeof t&&(t=t()),t||e||null},e.hexToRGB=function(t){var e=/^#?([a-f\d])([a-f\d])([a-f\d])$/i;t=t.replace(e,function(t,e,i,o){return e+e+i+i+o+o});var i=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(t);return i?{r:parseInt(i[1],16),g:parseInt(i[2],16),b:parseInt(i[3],16)}:null},e.overrideOpacity=function(t,i){if(-1!=t.indexOf("rgba"))return t;if(-1!=t.indexOf("rgb")){var o=t.substr(t.indexOf("(")+1).replace(")","").split(",");return"rgba("+o[0]+","+o[1]+","+o[2]+","+i+")"}var o=e.hexToRGB(t);return null==o?t:"rgba("+o.r+","+o.g+","+o.b+","+i+")"},e.RGBToHex=function(t,e,i){return"#"+((1<<24)+(t<<16)+(e<<8)+i).toString(16).slice(1)},e.parseColor=function(t){var i;if(e.isString(t)===!0){if(e.isValidRGB(t)===!0){var o=t.substr(4).substr(0,t.length-5).split(",").map(function(t){return parseInt(t)});t=e.RGBToHex(o[0],o[1],o[2])}if(e.isValidHex(t)===!0){var n=e.hexToHSV(t),s={h:n.h,s:.8*n.s,v:Math.min(1,1.02*n.v)},r={h:n.h,s:Math.min(1,1.25*n.s),v:.8*n.v},a=e.HSVToHex(r.h,r.s,r.v),h=e.HSVToHex(s.h,s.s,s.v);i={background:t,border:a,highlight:{background:h,border:a},hover:{background:h,border:a}}}else i={background:t,border:t,highlight:{background:t,border:t},hover:{background:t,border:t}}}else i={},i.background=t.background||void 0,i.border=t.border||void 0,e.isString(t.highlight)?i.highlight={border:t.highlight,background:t.highlight}:(i.highlight={},i.highlight.background=t.highlight&&t.highlight.background||void 0,i.highlight.border=t.highlight&&t.highlight.border||void 0),e.isString(t.hover)?i.hover={border:t.hover,background:t.hover}:(i.hover={},i.hover.background=t.hover&&t.hover.background||void 0,i.hover.border=t.hover&&t.hover.border||void 0);return i},e.RGBToHSV=function(t,e,i){t/=255,e/=255,i/=255;var o=Math.min(t,Math.min(e,i)),n=Math.max(t,Math.max(e,i));if(o==n)return{h:0,s:0,v:o};var s=t==o?e-i:i==o?t-e:i-t,r=t==o?3:i==o?1:5,a=60*(r-s/(n-o))/360,h=(n-o)/n,d=n;return{h:a,s:h,v:d}};var a={split:function(t){var e={};return t.split(";").forEach(function(t){if(""!=t.trim()){var i=t.split(":"),o=i[0].trim(),n=i[1].trim();e[o]=n}}),e},join:function(t){return Object.keys(t).map(function(e){return e+": "+t[e]}).join("; ")}};e.addCssText=function(t,i){var o=a.split(t.style.cssText),n=a.split(i),s=e.extend(o,n);t.style.cssText=a.join(s)},e.removeCssText=function(t,e){var i=a.split(t.style.cssText),o=a.split(e);for(var n in o)o.hasOwnProperty(n)&&delete i[n];t.style.cssText=a.join(i)},e.HSVToRGB=function(t,e,i){var o,n,s,r=Math.floor(6*t),a=6*t-r,h=i*(1-e),d=i*(1-a*e),l=i*(1-(1-a)*e);switch(r%6){case 0:o=i,n=l,s=h;break;case 1:o=d,n=i,s=h;break;case 2:o=h,n=i,s=l;break;case 3:o=h,n=d,s=i;break;case 4:o=l,n=h,s=i;break;case 5:o=i,n=h,s=d}return{r:Math.floor(255*o),g:Math.floor(255*n),b:Math.floor(255*s)}},e.HSVToHex=function(t,i,o){var n=e.HSVToRGB(t,i,o);return e.RGBToHex(n.r,n.g,n.b)},e.hexToHSV=function(t){var i=e.hexToRGB(t);return e.RGBToHSV(i.r,i.g,i.b)},e.isValidHex=function(t){var e=/(^#[0-9A-F]{6}$)|(^#[0-9A-F]{3}$)/i.test(t);return e},e.isValidRGB=function(t){t=t.replace(" ","");var e=/rgb\((\d{1,3}),(\d{1,3}),(\d{1,3})\)/i.test(t);return e},e.isValidRGBA=function(t){t=t.replace(" ","");var e=/rgba\((\d{1,3}),(\d{1,3}),(\d{1,3}),(.{1,3})\)/i.test(t);return e},e.selectiveBridgeObject=function(t,i){if("object"==("undefined"==typeof i?"undefined":o(i))){for(var n=Object.create(i),s=0;s0&&e(o,t[n-1])<0;n--)t[n]=t[n-1];t[n]=o}return t},e.mergeOptions=function(t,e,i){var o=(arguments.length<=3||void 0===arguments[3]?!1:arguments[3],arguments.length<=4||void 0===arguments[4]?{}:arguments[4]);if(null===e[i])t[i]=Object.create(o[i]);else if(void 0!==e[i])if("boolean"==typeof e[i])t[i].enabled=e[i];else{void 0===e[i].enabled&&(t[i].enabled=!0);for(var n in e[i])e[i].hasOwnProperty(n)&&(t[i][n]=e[i][n])}},e.binarySearchCustom=function(t,e,i,o){for(var n=1e4,s=0,r=0,a=t.length-1;a>=r&&n>s;){var h=Math.floor((r+a)/2),d=t[h],l=void 0===o?d[i]:d[i][o],u=e(l);if(0==u)return h;-1==u?r=h+1:a=h-1,s++}return-1},e.binarySearchValue=function(t,e,i,o,n){for(var s,r,a,h,d=1e4,l=0,u=0,p=t.length-1,n=void 0!=n?n:function(t,e){return t==e?0:e>t?-1:1};p>=u&&d>l;){if(h=Math.floor(.5*(p+u)),s=t[Math.max(0,h-1)][i],r=t[h][i],a=t[Math.min(t.length-1,h+1)][i],0==n(r,e))return h;if(n(s,e)<0&&n(r,e)>0)return"before"==o?Math.max(0,h-1):h;if(n(r,e)<0&&n(a,e)>0)return"before"==o?h:Math.min(t.length-1,h+1);n(r,e)<0?u=h+1:p=h-1,l++}return-1},e.easingFunctions={linear:function(t){return t},easeInQuad:function(t){return t*t},easeOutQuad:function(t){return t*(2-t)},easeInOutQuad:function(t){return.5>t?2*t*t:-1+(4-2*t)*t},easeInCubic:function(t){return t*t*t},easeOutCubic:function(t){return--t*t*t+1},easeInOutCubic:function(t){return.5>t?4*t*t*t:(t-1)*(2*t-2)*(2*t-2)+1},easeInQuart:function(t){return t*t*t*t},easeOutQuart:function(t){return 1- --t*t*t*t},easeInOutQuart:function(t){return.5>t?8*t*t*t*t:1-8*--t*t*t*t},easeInQuint:function(t){return t*t*t*t*t},easeOutQuint:function(t){return 1+--t*t*t*t*t},easeInOutQuint:function(t){return.5>t?16*t*t*t*t*t:1+16*--t*t*t*t*t}}},function(t,e,i){t.exports="undefined"!=typeof window&&window.moment||i(3)},function(t,e,i){(function(t){!function(e,i){t.exports=i()}(this,function(){function e(){return $i.apply(null,arguments)}function i(t){$i=t}function o(t){return t instanceof Array||"[object Array]"===Object.prototype.toString.call(t)}function n(t){return t instanceof Date||"[object Date]"===Object.prototype.toString.call(t)}function s(t,e){var i,o=[];for(i=0;i0)for(i in Qi)o=Qi[i],n=e[o],c(n)||(t[o]=n);return t}function f(t){m(this,t),this._d=new Date(null!=t._d?t._d.getTime():NaN),to===!1&&(to=!0,e.updateOffset(this),to=!1)}function g(t){return t instanceof f||null!=t&&null!=t._isAMomentObject}function v(t){return 0>t?Math.ceil(t):Math.floor(t)}function y(t){var e=+t,i=0;return 0!==e&&isFinite(e)&&(i=v(e)),i}function b(t,e,i){var o,n=Math.min(t.length,e.length),s=Math.abs(t.length-e.length),r=0;for(o=0;n>o;o++)(i&&t[o]!==e[o]||!i&&y(t[o])!==y(e[o]))&&r++;return r+s}function _(t){e.suppressDeprecationWarnings===!1&&"undefined"!=typeof console&&console.warn&&console.warn("Deprecation warning: "+t)}function w(t,e){var i=!0;return a(function(){return i&&(_(t+"\nArguments: "+Array.prototype.slice.call(arguments).join(", ")+"\n"+(new Error).stack),i=!1),e.apply(this,arguments)},e)}function x(t,e){eo[t]||(_(e),eo[t]=!0)}function D(t){return t instanceof Function||"[object Function]"===Object.prototype.toString.call(t)}function S(t){return"[object Object]"===Object.prototype.toString.call(t)}function k(t){var e,i;for(i in t)e=t[i],D(e)?this[i]=e:this["_"+i]=e;this._config=t,this._ordinalParseLenient=new RegExp(this._ordinalParse.source+"|"+/\d{1,2}/.source)}function C(t,e){var i,o=a({},t);for(i in e)r(e,i)&&(S(t[i])&&S(e[i])?(o[i]={},a(o[i],t[i]),a(o[i],e[i])):null!=e[i]?o[i]=e[i]:delete o[i]);return o}function T(t){null!=t&&this.set(t)}function O(t){return t?t.toLowerCase().replace("_","-"):t}function M(t){for(var e,i,o,n,s=0;s0;){if(o=E(n.slice(0,e).join("-")))return o;if(i&&i.length>=e&&b(n,i,!0)>=e-1)break;e--}s++}return null}function E(e){var i=null;if(!oo[e]&&"undefined"!=typeof t&&t&&t.exports)try{i=io._abbr,!function(){var t=new Error('Cannot find module "./locale"');throw t.code="MODULE_NOT_FOUND",t}(),A(i)}catch(o){}return oo[e]}function A(t,e){var i;return t&&(i=c(e)?I(t):P(t,e),i&&(io=i)),io._abbr}function P(t,e){return null!==e?(e.abbr=t,null!=oo[t]?(x("defineLocaleOverride","use moment.updateLocale(localeName, config) to change an existing locale. moment.defineLocale(localeName, config) should only be used for creating a new locale"),e=C(oo[t]._config,e)):null!=e.parentLocale&&(null!=oo[e.parentLocale]?e=C(oo[e.parentLocale]._config,e):x("parentLocaleUndefined","specified parentLocale is not defined yet")),oo[t]=new T(e),A(t),oo[t]):(delete oo[t],null)}function N(t,e){if(null!=e){var i;null!=oo[t]&&(e=C(oo[t]._config,e)),i=new T(e),i.parentLocale=oo[t],oo[t]=i,A(t)}else null!=oo[t]&&(null!=oo[t].parentLocale?oo[t]=oo[t].parentLocale:null!=oo[t]&&delete oo[t]);return oo[t]}function I(t){var e;if(t&&t._locale&&t._locale._abbr&&(t=t._locale._abbr),!t)return io;if(!o(t)){if(e=E(t))return e;t=[t]}return M(t)}function R(){return Object.keys(oo)}function L(t,e){var i=t.toLowerCase();no[i]=no[i+"s"]=no[e]=t}function F(t){return"string"==typeof t?no[t]||no[t.toLowerCase()]:void 0}function H(t){var e,i,o={};for(i in t)r(t,i)&&(e=F(i),e&&(o[e]=t[i]));return o}function Y(t,i){return function(o){return null!=o?(G(this,t,o),e.updateOffset(this,i),this):j(this,t)}}function j(t,e){return t.isValid()?t._d["get"+(t._isUTC?"UTC":"")+e]():NaN}function G(t,e,i){t.isValid()&&t._d["set"+(t._isUTC?"UTC":"")+e](i)}function z(t,e){var i;if("object"==typeof t)for(i in t)this.set(i,t[i]);else if(t=F(t),D(this[t]))return this[t](e);return this}function W(t,e,i){var o=""+Math.abs(t),n=e-o.length,s=t>=0;return(s?i?"+":"":"-")+Math.pow(10,Math.max(0,n)).toString().substr(1)+o}function V(t,e,i,o){var n=o;"string"==typeof o&&(n=function(){return this[o]()}),t&&(ho[t]=n),e&&(ho[e[0]]=function(){return W(n.apply(this,arguments),e[1],e[2])}),i&&(ho[i]=function(){return this.localeData().ordinal(n.apply(this,arguments),t)})}function B(t){return t.match(/\[[\s\S]/)?t.replace(/^\[|\]$/g,""):t.replace(/\\/g,"")}function U(t){var e,i,o=t.match(so);for(e=0,i=o.length;i>e;e++)ho[o[e]]?o[e]=ho[o[e]]:o[e]=B(o[e]);return function(n){var s="";for(e=0;i>e;e++)s+=o[e]instanceof Function?o[e].call(n,t):o[e];return s}}function q(t,e){return t.isValid()?(e=X(e,t.localeData()),ao[e]=ao[e]||U(e),ao[e](t)):t.localeData().invalidDate()}function X(t,e){function i(t){return e.longDateFormat(t)||t}var o=5;for(ro.lastIndex=0;o>=0&&ro.test(t);)t=t.replace(ro,i),ro.lastIndex=0,o-=1;return t}function Z(t,e,i){To[t]=D(e)?e:function(t,o){return t&&i?i:e}}function K(t,e){return r(To,t)?To[t](e._strict,e._locale):new RegExp(J(t))}function J(t){return $(t.replace("\\","").replace(/\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g,function(t,e,i,o,n){return e||i||o||n}))}function $(t){return t.replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&")}function Q(t,e){var i,o=e;for("string"==typeof t&&(t=[t]),"number"==typeof e&&(o=function(t,i){i[e]=y(t)}),i=0;io;o++){if(n=h([2e3,o]),i&&!this._longMonthsParse[o]&&(this._longMonthsParse[o]=new RegExp("^"+this.months(n,"").replace(".","")+"$","i"),this._shortMonthsParse[o]=new RegExp("^"+this.monthsShort(n,"").replace(".","")+"$","i")),i||this._monthsParse[o]||(s="^"+this.months(n,"")+"|^"+this.monthsShort(n,""),this._monthsParse[o]=new RegExp(s.replace(".",""),"i")),i&&"MMMM"===e&&this._longMonthsParse[o].test(t))return o;if(i&&"MMM"===e&&this._shortMonthsParse[o].test(t))return o;if(!i&&this._monthsParse[o].test(t))return o}}function rt(t,e){var i;if(!t.isValid())return t;if("string"==typeof e)if(/^\d+$/.test(e))e=y(e);else if(e=t.localeData().monthsParse(e),"number"!=typeof e)return t;return i=Math.min(t.date(),it(t.year(),e)),t._d["set"+(t._isUTC?"UTC":"")+"Month"](e,i),t}function at(t){return null!=t?(rt(this,t),e.updateOffset(this,!0),this):j(this,"Month")}function ht(){return it(this.year(),this.month())}function dt(t){return this._monthsParseExact?(r(this,"_monthsRegex")||ut.call(this),t?this._monthsShortStrictRegex:this._monthsShortRegex):this._monthsShortStrictRegex&&t?this._monthsShortStrictRegex:this._monthsShortRegex}function lt(t){return this._monthsParseExact?(r(this,"_monthsRegex")||ut.call(this),t?this._monthsStrictRegex:this._monthsRegex):this._monthsStrictRegex&&t?this._monthsStrictRegex:this._monthsRegex}function ut(){function t(t,e){return e.length-t.length}var e,i,o=[],n=[],s=[];for(e=0;12>e;e++)i=h([2e3,e]),o.push(this.monthsShort(i,"")),n.push(this.months(i,"")),s.push(this.months(i,"")),s.push(this.monthsShort(i,""));for(o.sort(t),n.sort(t),s.sort(t),e=0;12>e;e++)o[e]=$(o[e]),n[e]=$(n[e]),s[e]=$(s[e]);this._monthsRegex=new RegExp("^("+s.join("|")+")","i"),this._monthsShortRegex=this._monthsRegex,this._monthsStrictRegex=new RegExp("^("+n.join("|")+")$","i"),this._monthsShortStrictRegex=new RegExp("^("+o.join("|")+")$","i")}function pt(t){var e,i=t._a;return i&&-2===l(t).overflow&&(e=i[Eo]<0||i[Eo]>11?Eo:i[Ao]<1||i[Ao]>it(i[Mo],i[Eo])?Ao:i[Po]<0||i[Po]>24||24===i[Po]&&(0!==i[No]||0!==i[Io]||0!==i[Ro])?Po:i[No]<0||i[No]>59?No:i[Io]<0||i[Io]>59?Io:i[Ro]<0||i[Ro]>999?Ro:-1,l(t)._overflowDayOfYear&&(Mo>e||e>Ao)&&(e=Ao),l(t)._overflowWeeks&&-1===e&&(e=Lo),l(t)._overflowWeekday&&-1===e&&(e=Fo),l(t).overflow=e),t}function ct(t){var e,i,o,n,s,r,a=t._i,h=Wo.exec(a)||Vo.exec(a);if(h){for(l(t).iso=!0,e=0,i=Uo.length;i>e;e++)if(Uo[e][1].exec(h[1])){n=Uo[e][0],o=Uo[e][2]!==!1;break}if(null==n)return void(t._isValid=!1);if(h[3]){for(e=0,i=qo.length;i>e;e++)if(qo[e][1].exec(h[3])){s=(h[2]||" ")+qo[e][0];break}if(null==s)return void(t._isValid=!1)}if(!o&&null!=s)return void(t._isValid=!1);if(h[4]){if(!Bo.exec(h[4]))return void(t._isValid=!1);r="Z"}t._f=n+(s||"")+(r||""),Ot(t)}else t._isValid=!1}function mt(t){var i=Xo.exec(t._i);return null!==i?void(t._d=new Date(+i[1])):(ct(t),void(t._isValid===!1&&(delete t._isValid,e.createFromInputFallback(t))))}function ft(t,e,i,o,n,s,r){var a=new Date(t,e,i,o,n,s,r);return 100>t&&t>=0&&isFinite(a.getFullYear())&&a.setFullYear(t),a}function gt(t){var e=new Date(Date.UTC.apply(null,arguments));return 100>t&&t>=0&&isFinite(e.getUTCFullYear())&&e.setUTCFullYear(t),e}function vt(t){return yt(t)?366:365}function yt(t){return t%4===0&&t%100!==0||t%400===0}function bt(){return yt(this.year())}function _t(t,e,i){var o=7+e-i,n=(7+gt(t,0,o).getUTCDay()-e)%7;return-n+o-1}function wt(t,e,i,o,n){var s,r,a=(7+i-o)%7,h=_t(t,o,n),d=1+7*(e-1)+a+h;return 0>=d?(s=t-1,r=vt(s)+d):d>vt(t)?(s=t+1,r=d-vt(t)):(s=t,r=d),{year:s,dayOfYear:r}}function xt(t,e,i){var o,n,s=_t(t.year(),e,i),r=Math.floor((t.dayOfYear()-s-1)/7)+1;return 1>r?(n=t.year()-1,o=r+Dt(n,e,i)):r>Dt(t.year(),e,i)?(o=r-Dt(t.year(),e,i),n=t.year()+1):(n=t.year(),o=r),{week:o,year:n}}function Dt(t,e,i){var o=_t(t,e,i),n=_t(t+1,e,i);return(vt(t)-o+n)/7}function St(t,e,i){return null!=t?t:null!=e?e:i}function kt(t){var i=new Date(e.now());return t._useUTC?[i.getUTCFullYear(),i.getUTCMonth(),i.getUTCDate()]:[i.getFullYear(),i.getMonth(),i.getDate()]}function Ct(t){var e,i,o,n,s=[];if(!t._d){for(o=kt(t),t._w&&null==t._a[Ao]&&null==t._a[Eo]&&Tt(t),t._dayOfYear&&(n=St(t._a[Mo],o[Mo]),t._dayOfYear>vt(n)&&(l(t)._overflowDayOfYear=!0),i=gt(n,0,t._dayOfYear),t._a[Eo]=i.getUTCMonth(),t._a[Ao]=i.getUTCDate()),e=0;3>e&&null==t._a[e];++e)t._a[e]=s[e]=o[e];for(;7>e;e++)t._a[e]=s[e]=null==t._a[e]?2===e?1:0:t._a[e];24===t._a[Po]&&0===t._a[No]&&0===t._a[Io]&&0===t._a[Ro]&&(t._nextDay=!0,t._a[Po]=0),t._d=(t._useUTC?gt:ft).apply(null,s),null!=t._tzm&&t._d.setUTCMinutes(t._d.getUTCMinutes()-t._tzm),t._nextDay&&(t._a[Po]=24)}}function Tt(t){var e,i,o,n,s,r,a,h;e=t._w,null!=e.GG||null!=e.W||null!=e.E?(s=1,r=4,i=St(e.GG,t._a[Mo],xt(Lt(),1,4).year),o=St(e.W,1),n=St(e.E,1),(1>n||n>7)&&(h=!0)):(s=t._locale._week.dow,r=t._locale._week.doy,i=St(e.gg,t._a[Mo],xt(Lt(),s,r).year),o=St(e.w,1),null!=e.d?(n=e.d,(0>n||n>6)&&(h=!0)):null!=e.e?(n=e.e+s,(e.e<0||e.e>6)&&(h=!0)):n=s),1>o||o>Dt(i,s,r)?l(t)._overflowWeeks=!0:null!=h?l(t)._overflowWeekday=!0:(a=wt(i,o,n,s,r),t._a[Mo]=a.year,t._dayOfYear=a.dayOfYear)}function Ot(t){if(t._f===e.ISO_8601)return void ct(t);t._a=[],l(t).empty=!0;var i,o,n,s,r,a=""+t._i,h=a.length,d=0;for(n=X(t._f,t._locale).match(so)||[],i=0;i0&&l(t).unusedInput.push(r),a=a.slice(a.indexOf(o)+o.length),d+=o.length),ho[s]?(o?l(t).empty=!1:l(t).unusedTokens.push(s),et(s,o,t)):t._strict&&!o&&l(t).unusedTokens.push(s);l(t).charsLeftOver=h-d,a.length>0&&l(t).unusedInput.push(a),l(t).bigHour===!0&&t._a[Po]<=12&&t._a[Po]>0&&(l(t).bigHour=void 0),t._a[Po]=Mt(t._locale,t._a[Po],t._meridiem),Ct(t),pt(t)}function Mt(t,e,i){var o;return null==i?e:null!=t.meridiemHour?t.meridiemHour(e,i):null!=t.isPM?(o=t.isPM(i),o&&12>e&&(e+=12),o||12!==e||(e=0),e):e}function Et(t){var e,i,o,n,s;if(0===t._f.length)return l(t).invalidFormat=!0,void(t._d=new Date(NaN));for(n=0;ns)&&(o=s,i=e));a(t,i||e)}function At(t){if(!t._d){var e=H(t._i);t._a=s([e.year,e.month,e.day||e.date,e.hour,e.minute,e.second,e.millisecond],function(t){return t&&parseInt(t,10)}),Ct(t)}}function Pt(t){var e=new f(pt(Nt(t)));return e._nextDay&&(e.add(1,"d"),e._nextDay=void 0),e}function Nt(t){var e=t._i,i=t._f;return t._locale=t._locale||I(t._l),null===e||void 0===i&&""===e?p({nullInput:!0}):("string"==typeof e&&(t._i=e=t._locale.preparse(e)),g(e)?new f(pt(e)):(o(i)?Et(t):i?Ot(t):n(e)?t._d=e:It(t),u(t)||(t._d=null),t))}function It(t){var i=t._i;void 0===i?t._d=new Date(e.now()):n(i)?t._d=new Date(+i):"string"==typeof i?mt(t):o(i)?(t._a=s(i.slice(0),function(t){return parseInt(t,10)}),Ct(t)):"object"==typeof i?At(t):"number"==typeof i?t._d=new Date(i):e.createFromInputFallback(t)}function Rt(t,e,i,o,n){var s={};return"boolean"==typeof i&&(o=i,i=void 0),s._isAMomentObject=!0,s._useUTC=s._isUTC=n,s._l=i,s._i=t,s._f=e,s._strict=o,Pt(s)}function Lt(t,e,i,o){return Rt(t,e,i,o,!1)}function Ft(t,e){var i,n;if(1===e.length&&o(e[0])&&(e=e[0]),!e.length)return Lt();for(i=e[0],n=1;nt&&(t=-t,i="-"),i+W(~~(t/60),2)+e+W(~~t%60,2)})}function Wt(t,e){var i=(e||"").match(t)||[],o=i[i.length-1]||[],n=(o+"").match(Qo)||["-",0,0],s=+(60*n[1])+y(n[2]);return"+"===n[0]?s:-s}function Vt(t,i){var o,s;return i._isUTC?(o=i.clone(),s=(g(t)||n(t)?+t:+Lt(t))-+o,o._d.setTime(+o._d+s),e.updateOffset(o,!1),o):Lt(t).local()}function Bt(t){return 15*-Math.round(t._d.getTimezoneOffset()/15)}function Ut(t,i){var o,n=this._offset||0;return this.isValid()?null!=t?("string"==typeof t?t=Wt(So,t):Math.abs(t)<16&&(t=60*t),!this._isUTC&&i&&(o=Bt(this)),this._offset=t,this._isUTC=!0,null!=o&&this.add(o,"m"),n!==t&&(!i||this._changeInProgress?de(this,oe(t-n,"m"),1,!1):this._changeInProgress||(this._changeInProgress=!0,e.updateOffset(this,!0),this._changeInProgress=null)),this):this._isUTC?n:Bt(this):null!=t?this:NaN}function qt(t,e){return null!=t?("string"!=typeof t&&(t=-t),this.utcOffset(t,e),this):-this.utcOffset()}function Xt(t){return this.utcOffset(0,t)}function Zt(t){return this._isUTC&&(this.utcOffset(0,t),this._isUTC=!1,t&&this.subtract(Bt(this),"m")),this}function Kt(){return this._tzm?this.utcOffset(this._tzm):"string"==typeof this._i&&this.utcOffset(Wt(Do,this._i)),this}function Jt(t){return this.isValid()?(t=t?Lt(t).utcOffset():0,(this.utcOffset()-t)%60===0):!1}function $t(){return this.utcOffset()>this.clone().month(0).utcOffset()||this.utcOffset()>this.clone().month(5).utcOffset()}function Qt(){if(!c(this._isDSTShifted))return this._isDSTShifted;var t={};if(m(t,this),t=Nt(t),t._a){var e=t._isUTC?h(t._a):Lt(t._a);this._isDSTShifted=this.isValid()&&b(t._a,e.toArray())>0}else this._isDSTShifted=!1;return this._isDSTShifted}function te(){return this.isValid()?!this._isUTC:!1}function ee(){return this.isValid()?this._isUTC:!1}function ie(){return this.isValid()?this._isUTC&&0===this._offset:!1}function oe(t,e){var i,o,n,s=t,a=null;return Gt(t)?s={ms:t._milliseconds,d:t._days,M:t._months}:"number"==typeof t?(s={},e?s[e]=t:s.milliseconds=t):(a=tn.exec(t))?(i="-"===a[1]?-1:1,s={y:0,d:y(a[Ao])*i,h:y(a[Po])*i,m:y(a[No])*i,s:y(a[Io])*i,ms:y(a[Ro])*i}):(a=en.exec(t))?(i="-"===a[1]?-1:1,s={y:ne(a[2],i),M:ne(a[3],i),w:ne(a[4],i),d:ne(a[5],i),h:ne(a[6],i),m:ne(a[7],i),s:ne(a[8],i)}):null==s?s={}:"object"==typeof s&&("from"in s||"to"in s)&&(n=re(Lt(s.from),Lt(s.to)),s={},s.ms=n.milliseconds,s.M=n.months),o=new jt(s),Gt(t)&&r(t,"_locale")&&(o._locale=t._locale),o}function ne(t,e){var i=t&&parseFloat(t.replace(",","."));return(isNaN(i)?0:i)*e}function se(t,e){var i={milliseconds:0,months:0};return i.months=e.month()-t.month()+12*(e.year()-t.year()),t.clone().add(i.months,"M").isAfter(e)&&--i.months,i.milliseconds=+e-+t.clone().add(i.months,"M"),i}function re(t,e){var i;return t.isValid()&&e.isValid()?(e=Vt(e,t),t.isBefore(e)?i=se(t,e):(i=se(e,t),i.milliseconds=-i.milliseconds,i.months=-i.months),i):{milliseconds:0,months:0}}function ae(t){return 0>t?-1*Math.round(-1*t):Math.round(t)}function he(t,e){return function(i,o){var n,s;return null===o||isNaN(+o)||(x(e,"moment()."+e+"(period, number) is deprecated. Please use moment()."+e+"(number, period)."),s=i,i=o,o=s),i="string"==typeof i?+i:i,n=oe(i,o),de(this,n,t),this}}function de(t,i,o,n){ +var s=i._milliseconds,r=ae(i._days),a=ae(i._months);t.isValid()&&(n=null==n?!0:n,s&&t._d.setTime(+t._d+s*o),r&&G(t,"Date",j(t,"Date")+r*o),a&&rt(t,j(t,"Month")+a*o),n&&e.updateOffset(t,r||a))}function le(t,e){var i=t||Lt(),o=Vt(i,this).startOf("day"),n=this.diff(o,"days",!0),s=-6>n?"sameElse":-1>n?"lastWeek":0>n?"lastDay":1>n?"sameDay":2>n?"nextDay":7>n?"nextWeek":"sameElse",r=e&&(D(e[s])?e[s]():e[s]);return this.format(r||this.localeData().calendar(s,this,Lt(i)))}function ue(){return new f(this)}function pe(t,e){var i=g(t)?t:Lt(t);return this.isValid()&&i.isValid()?(e=F(c(e)?"millisecond":e),"millisecond"===e?+this>+i:+i<+this.clone().startOf(e)):!1}function ce(t,e){var i=g(t)?t:Lt(t);return this.isValid()&&i.isValid()?(e=F(c(e)?"millisecond":e),"millisecond"===e?+i>+this:+this.clone().endOf(e)<+i):!1}function me(t,e,i){return this.isAfter(t,i)&&this.isBefore(e,i)}function fe(t,e){var i,o=g(t)?t:Lt(t);return this.isValid()&&o.isValid()?(e=F(e||"millisecond"),"millisecond"===e?+this===+o:(i=+o,+this.clone().startOf(e)<=i&&i<=+this.clone().endOf(e))):!1}function ge(t,e){return this.isSame(t,e)||this.isAfter(t,e)}function ve(t,e){return this.isSame(t,e)||this.isBefore(t,e)}function ye(t,e,i){var o,n,s,r;return this.isValid()?(o=Vt(t,this),o.isValid()?(n=6e4*(o.utcOffset()-this.utcOffset()),e=F(e),"year"===e||"month"===e||"quarter"===e?(r=be(this,o),"quarter"===e?r/=3:"year"===e&&(r/=12)):(s=this-o,r="second"===e?s/1e3:"minute"===e?s/6e4:"hour"===e?s/36e5:"day"===e?(s-n)/864e5:"week"===e?(s-n)/6048e5:s),i?r:v(r)):NaN):NaN}function be(t,e){var i,o,n=12*(e.year()-t.year())+(e.month()-t.month()),s=t.clone().add(n,"months");return 0>e-s?(i=t.clone().add(n-1,"months"),o=(e-s)/(s-i)):(i=t.clone().add(n+1,"months"),o=(e-s)/(i-s)),-(n+o)}function _e(){return this.clone().locale("en").format("ddd MMM DD YYYY HH:mm:ss [GMT]ZZ")}function we(){var t=this.clone().utc();return 0s&&(e=s),qe.call(this,t,e,i,o,n))}function qe(t,e,i,o,n){var s=wt(t,e,i,o,n),r=gt(s.year,0,s.dayOfYear);return this.year(r.getUTCFullYear()),this.month(r.getUTCMonth()),this.date(r.getUTCDate()),this}function Xe(t){return null==t?Math.ceil((this.month()+1)/3):this.month(3*(t-1)+this.month()%3)}function Ze(t){return xt(t,this._week.dow,this._week.doy).week}function Ke(){return this._week.dow}function Je(){return this._week.doy}function $e(t){var e=this.localeData().week(this);return null==t?e:this.add(7*(t-e),"d")}function Qe(t){var e=xt(this,1,4).week;return null==t?e:this.add(7*(t-e),"d")}function ti(t,e){return"string"!=typeof t?t:isNaN(t)?(t=e.weekdaysParse(t),"number"==typeof t?t:null):parseInt(t,10)}function ei(t,e){return o(this._weekdays)?this._weekdays[t.day()]:this._weekdays[this._weekdays.isFormat.test(e)?"format":"standalone"][t.day()]}function ii(t){return this._weekdaysShort[t.day()]}function oi(t){return this._weekdaysMin[t.day()]}function ni(t,e,i){var o,n,s;for(this._weekdaysParse||(this._weekdaysParse=[],this._minWeekdaysParse=[],this._shortWeekdaysParse=[],this._fullWeekdaysParse=[]),o=0;7>o;o++){if(n=Lt([2e3,1]).day(o),i&&!this._fullWeekdaysParse[o]&&(this._fullWeekdaysParse[o]=new RegExp("^"+this.weekdays(n,"").replace(".",".?")+"$","i"),this._shortWeekdaysParse[o]=new RegExp("^"+this.weekdaysShort(n,"").replace(".",".?")+"$","i"),this._minWeekdaysParse[o]=new RegExp("^"+this.weekdaysMin(n,"").replace(".",".?")+"$","i")),this._weekdaysParse[o]||(s="^"+this.weekdays(n,"")+"|^"+this.weekdaysShort(n,"")+"|^"+this.weekdaysMin(n,""),this._weekdaysParse[o]=new RegExp(s.replace(".",""),"i")),i&&"dddd"===e&&this._fullWeekdaysParse[o].test(t))return o;if(i&&"ddd"===e&&this._shortWeekdaysParse[o].test(t))return o;if(i&&"dd"===e&&this._minWeekdaysParse[o].test(t))return o;if(!i&&this._weekdaysParse[o].test(t))return o}}function si(t){if(!this.isValid())return null!=t?this:NaN;var e=this._isUTC?this._d.getUTCDay():this._d.getDay();return null!=t?(t=ti(t,this.localeData()),this.add(t-e,"d")):e}function ri(t){if(!this.isValid())return null!=t?this:NaN;var e=(this.day()+7-this.localeData()._week.dow)%7;return null==t?e:this.add(t-e,"d")}function ai(t){return this.isValid()?null==t?this.day()||7:this.day(this.day()%7?t:t-7):null!=t?this:NaN}function hi(t){var e=Math.round((this.clone().startOf("day")-this.clone().startOf("year"))/864e5)+1;return null==t?e:this.add(t-e,"d")}function di(){return this.hours()%12||12}function li(t,e){V(t,0,0,function(){return this.localeData().meridiem(this.hours(),this.minutes(),e)})}function ui(t,e){return e._meridiemParse}function pi(t){return"p"===(t+"").toLowerCase().charAt(0)}function ci(t,e,i){return t>11?i?"pm":"PM":i?"am":"AM"}function mi(t,e){e[Ro]=y(1e3*("0."+t))}function fi(){return this._isUTC?"UTC":""}function gi(){return this._isUTC?"Coordinated Universal Time":""}function vi(t){return Lt(1e3*t)}function yi(){return Lt.apply(null,arguments).parseZone()}function bi(t,e,i){var o=this._calendar[t];return D(o)?o.call(e,i):o}function _i(t){var e=this._longDateFormat[t],i=this._longDateFormat[t.toUpperCase()];return e||!i?e:(this._longDateFormat[t]=i.replace(/MMMM|MM|DD|dddd/g,function(t){return t.slice(1)}),this._longDateFormat[t])}function wi(){return this._invalidDate}function xi(t){return this._ordinal.replace("%d",t)}function Di(t){return t}function Si(t,e,i,o){var n=this._relativeTime[i];return D(n)?n(t,e,i,o):n.replace(/%d/i,t)}function ki(t,e){var i=this._relativeTime[t>0?"future":"past"];return D(i)?i(e):i.replace(/%s/i,e)}function Ci(t,e,i,o){var n=I(),s=h().set(o,e);return n[i](s,t)}function Ti(t,e,i,o,n){if("number"==typeof t&&(e=t,t=void 0),t=t||"",null!=e)return Ci(t,e,i,n);var s,r=[];for(s=0;o>s;s++)r[s]=Ci(t,s,i,n);return r}function Oi(t,e){return Ti(t,e,"months",12,"month")}function Mi(t,e){return Ti(t,e,"monthsShort",12,"month")}function Ei(t,e){return Ti(t,e,"weekdays",7,"day")}function Ai(t,e){return Ti(t,e,"weekdaysShort",7,"day")}function Pi(t,e){return Ti(t,e,"weekdaysMin",7,"day")}function Ni(){var t=this._data;return this._milliseconds=Cn(this._milliseconds),this._days=Cn(this._days),this._months=Cn(this._months),t.milliseconds=Cn(t.milliseconds),t.seconds=Cn(t.seconds),t.minutes=Cn(t.minutes),t.hours=Cn(t.hours),t.months=Cn(t.months),t.years=Cn(t.years),this}function Ii(t,e,i,o){var n=oe(e,i);return t._milliseconds+=o*n._milliseconds,t._days+=o*n._days,t._months+=o*n._months,t._bubble()}function Ri(t,e){return Ii(this,t,e,1)}function Li(t,e){return Ii(this,t,e,-1)}function Fi(t){return 0>t?Math.floor(t):Math.ceil(t)}function Hi(){var t,e,i,o,n,s=this._milliseconds,r=this._days,a=this._months,h=this._data;return s>=0&&r>=0&&a>=0||0>=s&&0>=r&&0>=a||(s+=864e5*Fi(ji(a)+r),r=0,a=0),h.milliseconds=s%1e3,t=v(s/1e3),h.seconds=t%60,e=v(t/60),h.minutes=e%60,i=v(e/60),h.hours=i%24,r+=v(i/24),n=v(Yi(r)),a+=n,r-=Fi(ji(n)),o=v(a/12),a%=12,h.days=r,h.months=a,h.years=o,this}function Yi(t){return 4800*t/146097}function ji(t){return 146097*t/4800}function Gi(t){var e,i,o=this._milliseconds;if(t=F(t),"month"===t||"year"===t)return e=this._days+o/864e5,i=this._months+Yi(e),"month"===t?i:i/12;switch(e=this._days+Math.round(ji(this._months)),t){case"week":return e/7+o/6048e5;case"day":return e+o/864e5;case"hour":return 24*e+o/36e5;case"minute":return 1440*e+o/6e4;case"second":return 86400*e+o/1e3;case"millisecond":return Math.floor(864e5*e)+o;default:throw new Error("Unknown unit "+t)}}function zi(){return this._milliseconds+864e5*this._days+this._months%12*2592e6+31536e6*y(this._months/12)}function Wi(t){return function(){return this.as(t)}}function Vi(t){return t=F(t),this[t+"s"]()}function Bi(t){return function(){return this._data[t]}}function Ui(){return v(this.days()/7)}function qi(t,e,i,o,n){return n.relativeTime(e||1,!!i,t,o)}function Xi(t,e,i){var o=oe(t).abs(),n=zn(o.as("s")),s=zn(o.as("m")),r=zn(o.as("h")),a=zn(o.as("d")),h=zn(o.as("M")),d=zn(o.as("y")),l=n=s&&["m"]||s=r&&["h"]||r=a&&["d"]||a=h&&["M"]||h=d&&["y"]||["yy",d];return l[2]=e,l[3]=+t>0,l[4]=i,qi.apply(null,l)}function Zi(t,e){return void 0===Wn[t]?!1:void 0===e?Wn[t]:(Wn[t]=e,!0)}function Ki(t){var e=this.localeData(),i=Xi(this,!t,e);return t&&(i=e.pastFuture(+this,i)),e.postformat(i)}function Ji(){var t,e,i,o=Vn(this._milliseconds)/1e3,n=Vn(this._days),s=Vn(this._months);t=v(o/60),e=v(t/60),o%=60,t%=60,i=v(s/12),s%=12;var r=i,a=s,h=n,d=e,l=t,u=o,p=this.asSeconds();return p?(0>p?"-":"")+"P"+(r?r+"Y":"")+(a?a+"M":"")+(h?h+"D":"")+(d||l||u?"T":"")+(d?d+"H":"")+(l?l+"M":"")+(u?u+"S":""):"P0D"}var $i,Qi=e.momentProperties=[],to=!1,eo={};e.suppressDeprecationWarnings=!1;var io,oo={},no={},so=/(\[[^\[]*\])|(\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|YYYYYY|YYYYY|YYYY|YY|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g,ro=/(\[[^\[]*\])|(\\)?(LTS|LT|LL?L?L?|l{1,4})/g,ao={},ho={},lo=/\d/,uo=/\d\d/,po=/\d{3}/,co=/\d{4}/,mo=/[+-]?\d{6}/,fo=/\d\d?/,go=/\d\d\d\d?/,vo=/\d\d\d\d\d\d?/,yo=/\d{1,3}/,bo=/\d{1,4}/,_o=/[+-]?\d{1,6}/,wo=/\d+/,xo=/[+-]?\d+/,Do=/Z|[+-]\d\d:?\d\d/gi,So=/Z|[+-]\d\d(?::?\d\d)?/gi,ko=/[+-]?\d+(\.\d{1,3})?/,Co=/[0-9]*['a-z\u00A0-\u05FF\u0700-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]+|[\u0600-\u06FF\/]+(\s*?[\u0600-\u06FF]+){1,2}/i,To={},Oo={},Mo=0,Eo=1,Ao=2,Po=3,No=4,Io=5,Ro=6,Lo=7,Fo=8;V("M",["MM",2],"Mo",function(){return this.month()+1}),V("MMM",0,0,function(t){return this.localeData().monthsShort(this,t)}),V("MMMM",0,0,function(t){return this.localeData().months(this,t)}),L("month","M"),Z("M",fo),Z("MM",fo,uo),Z("MMM",function(t,e){return e.monthsShortRegex(t)}),Z("MMMM",function(t,e){return e.monthsRegex(t)}),Q(["M","MM"],function(t,e){e[Eo]=y(t)-1}),Q(["MMM","MMMM"],function(t,e,i,o){var n=i._locale.monthsParse(t,o,i._strict);null!=n?e[Eo]=n:l(i).invalidMonth=t});var Ho=/D[oD]?(\[[^\[\]]*\]|\s+)+MMMM?/,Yo="January_February_March_April_May_June_July_August_September_October_November_December".split("_"),jo="Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),Go=Co,zo=Co,Wo=/^\s*((?:[+-]\d{6}|\d{4})-(?:\d\d-\d\d|W\d\d-\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?::\d\d(?::\d\d(?:[.,]\d+)?)?)?)([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?/,Vo=/^\s*((?:[+-]\d{6}|\d{4})(?:\d\d\d\d|W\d\d\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?:\d\d(?:\d\d(?:[.,]\d+)?)?)?)([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?/,Bo=/Z|[+-]\d\d(?::?\d\d)?/,Uo=[["YYYYYY-MM-DD",/[+-]\d{6}-\d\d-\d\d/],["YYYY-MM-DD",/\d{4}-\d\d-\d\d/],["GGGG-[W]WW-E",/\d{4}-W\d\d-\d/],["GGGG-[W]WW",/\d{4}-W\d\d/,!1],["YYYY-DDD",/\d{4}-\d{3}/],["YYYY-MM",/\d{4}-\d\d/,!1],["YYYYYYMMDD",/[+-]\d{10}/],["YYYYMMDD",/\d{8}/],["GGGG[W]WWE",/\d{4}W\d{3}/],["GGGG[W]WW",/\d{4}W\d{2}/,!1],["YYYYDDD",/\d{7}/]],qo=[["HH:mm:ss.SSSS",/\d\d:\d\d:\d\d\.\d+/],["HH:mm:ss,SSSS",/\d\d:\d\d:\d\d,\d+/],["HH:mm:ss",/\d\d:\d\d:\d\d/],["HH:mm",/\d\d:\d\d/],["HHmmss.SSSS",/\d\d\d\d\d\d\.\d+/],["HHmmss,SSSS",/\d\d\d\d\d\d,\d+/],["HHmmss",/\d\d\d\d\d\d/],["HHmm",/\d\d\d\d/],["HH",/\d\d/]],Xo=/^\/?Date\((\-?\d+)/i;e.createFromInputFallback=w("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":""))}),V("Y",0,0,function(){var t=this.year();return 9999>=t?""+t:"+"+t}),V(0,["YY",2],0,function(){return this.year()%100}),V(0,["YYYY",4],0,"year"),V(0,["YYYYY",5],0,"year"),V(0,["YYYYYY",6,!0],0,"year"),L("year","y"),Z("Y",xo),Z("YY",fo,uo),Z("YYYY",bo,co),Z("YYYYY",_o,mo),Z("YYYYYY",_o,mo),Q(["YYYYY","YYYYYY"],Mo),Q("YYYY",function(t,i){i[Mo]=2===t.length?e.parseTwoDigitYear(t):y(t)}),Q("YY",function(t,i){i[Mo]=e.parseTwoDigitYear(t)}),Q("Y",function(t,e){e[Mo]=parseInt(t,10)}),e.parseTwoDigitYear=function(t){return y(t)+(y(t)>68?1900:2e3)};var Zo=Y("FullYear",!1);e.ISO_8601=function(){};var Ko=w("moment().min is deprecated, use moment.max instead. https://github.com/moment/moment/issues/1548",function(){var t=Lt.apply(null,arguments);return this.isValid()&&t.isValid()?this>t?this:t:p()}),Jo=w("moment().max is deprecated, use moment.min instead. https://github.com/moment/moment/issues/1548",function(){var t=Lt.apply(null,arguments);return this.isValid()&&t.isValid()?t>this?this:t:p()}),$o=function(){return Date.now?Date.now():+new Date};zt("Z",":"),zt("ZZ",""),Z("Z",So),Z("ZZ",So),Q(["Z","ZZ"],function(t,e,i){i._useUTC=!0,i._tzm=Wt(So,t)});var Qo=/([\+\-]|\d\d)/gi;e.updateOffset=function(){};var tn=/^(\-)?(?:(\d*)[. ])?(\d+)\:(\d+)(?:\:(\d+)\.?(\d{3})?\d*)?$/,en=/^(-)?P(?:([0-9,.]*)Y)?(?:([0-9,.]*)M)?(?:([0-9,.]*)W)?(?:([0-9,.]*)D)?(?:T(?:([0-9,.]*)H)?(?:([0-9,.]*)M)?(?:([0-9,.]*)S)?)?$/;oe.fn=jt.prototype;var on=he(1,"add"),nn=he(-1,"subtract");e.defaultFormat="YYYY-MM-DDTHH:mm:ssZ";var sn=w("moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.",function(t){return void 0===t?this.localeData():this.locale(t)});V(0,["gg",2],0,function(){return this.weekYear()%100}),V(0,["GG",2],0,function(){return this.isoWeekYear()%100}),Ge("gggg","weekYear"),Ge("ggggg","weekYear"),Ge("GGGG","isoWeekYear"),Ge("GGGGG","isoWeekYear"),L("weekYear","gg"),L("isoWeekYear","GG"),Z("G",xo),Z("g",xo),Z("GG",fo,uo),Z("gg",fo,uo),Z("GGGG",bo,co),Z("gggg",bo,co),Z("GGGGG",_o,mo),Z("ggggg",_o,mo),tt(["gggg","ggggg","GGGG","GGGGG"],function(t,e,i,o){e[o.substr(0,2)]=y(t)}),tt(["gg","GG"],function(t,i,o,n){i[n]=e.parseTwoDigitYear(t)}),V("Q",0,"Qo","quarter"),L("quarter","Q"),Z("Q",lo),Q("Q",function(t,e){e[Eo]=3*(y(t)-1)}),V("w",["ww",2],"wo","week"),V("W",["WW",2],"Wo","isoWeek"),L("week","w"),L("isoWeek","W"),Z("w",fo),Z("ww",fo,uo),Z("W",fo),Z("WW",fo,uo),tt(["w","ww","W","WW"],function(t,e,i,o){e[o.substr(0,1)]=y(t)});var rn={dow:0,doy:6};V("D",["DD",2],"Do","date"),L("date","D"),Z("D",fo),Z("DD",fo,uo),Z("Do",function(t,e){return t?e._ordinalParse:e._ordinalParseLenient}),Q(["D","DD"],Ao),Q("Do",function(t,e){e[Ao]=y(t.match(fo)[0],10)});var an=Y("Date",!0);V("d",0,"do","day"),V("dd",0,0,function(t){return this.localeData().weekdaysMin(this,t)}),V("ddd",0,0,function(t){return this.localeData().weekdaysShort(this,t)}),V("dddd",0,0,function(t){return this.localeData().weekdays(this,t)}),V("e",0,0,"weekday"),V("E",0,0,"isoWeekday"),L("day","d"),L("weekday","e"),L("isoWeekday","E"),Z("d",fo),Z("e",fo),Z("E",fo),Z("dd",Co),Z("ddd",Co),Z("dddd",Co),tt(["dd","ddd","dddd"],function(t,e,i,o){var n=i._locale.weekdaysParse(t,o,i._strict);null!=n?e.d=n:l(i).invalidWeekday=t}),tt(["d","e","E"],function(t,e,i,o){e[o]=y(t)});var hn="Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),dn="Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),ln="Su_Mo_Tu_We_Th_Fr_Sa".split("_");V("DDD",["DDDD",3],"DDDo","dayOfYear"),L("dayOfYear","DDD"),Z("DDD",yo),Z("DDDD",po),Q(["DDD","DDDD"],function(t,e,i){i._dayOfYear=y(t)}),V("H",["HH",2],0,"hour"),V("h",["hh",2],0,di),V("hmm",0,0,function(){return""+di.apply(this)+W(this.minutes(),2)}),V("hmmss",0,0,function(){return""+di.apply(this)+W(this.minutes(),2)+W(this.seconds(),2)}),V("Hmm",0,0,function(){return""+this.hours()+W(this.minutes(),2)}),V("Hmmss",0,0,function(){return""+this.hours()+W(this.minutes(),2)+W(this.seconds(),2)}),li("a",!0),li("A",!1),L("hour","h"),Z("a",ui),Z("A",ui),Z("H",fo),Z("h",fo),Z("HH",fo,uo),Z("hh",fo,uo),Z("hmm",go),Z("hmmss",vo),Z("Hmm",go),Z("Hmmss",vo),Q(["H","HH"],Po),Q(["a","A"],function(t,e,i){i._isPm=i._locale.isPM(t),i._meridiem=t}),Q(["h","hh"],function(t,e,i){e[Po]=y(t),l(i).bigHour=!0}),Q("hmm",function(t,e,i){var o=t.length-2;e[Po]=y(t.substr(0,o)),e[No]=y(t.substr(o)),l(i).bigHour=!0}),Q("hmmss",function(t,e,i){var o=t.length-4,n=t.length-2;e[Po]=y(t.substr(0,o)),e[No]=y(t.substr(o,2)),e[Io]=y(t.substr(n)),l(i).bigHour=!0}),Q("Hmm",function(t,e,i){var o=t.length-2;e[Po]=y(t.substr(0,o)),e[No]=y(t.substr(o))}),Q("Hmmss",function(t,e,i){var o=t.length-4,n=t.length-2;e[Po]=y(t.substr(0,o)),e[No]=y(t.substr(o,2)),e[Io]=y(t.substr(n))});var un=/[ap]\.?m?\.?/i,pn=Y("Hours",!0);V("m",["mm",2],0,"minute"),L("minute","m"),Z("m",fo),Z("mm",fo,uo),Q(["m","mm"],No);var cn=Y("Minutes",!1);V("s",["ss",2],0,"second"),L("second","s"),Z("s",fo),Z("ss",fo,uo),Q(["s","ss"],Io);var mn=Y("Seconds",!1);V("S",0,0,function(){return~~(this.millisecond()/100)}),V(0,["SS",2],0,function(){return~~(this.millisecond()/10)}),V(0,["SSS",3],0,"millisecond"),V(0,["SSSS",4],0,function(){return 10*this.millisecond()}),V(0,["SSSSS",5],0,function(){return 100*this.millisecond()}),V(0,["SSSSSS",6],0,function(){return 1e3*this.millisecond()}),V(0,["SSSSSSS",7],0,function(){return 1e4*this.millisecond()}),V(0,["SSSSSSSS",8],0,function(){return 1e5*this.millisecond()}),V(0,["SSSSSSSSS",9],0,function(){return 1e6*this.millisecond()}),L("millisecond","ms"),Z("S",yo,lo),Z("SS",yo,uo),Z("SSS",yo,po);var fn;for(fn="SSSS";fn.length<=9;fn+="S")Z(fn,wo);for(fn="S";fn.length<=9;fn+="S")Q(fn,mi);var gn=Y("Milliseconds",!1);V("z",0,0,"zoneAbbr"),V("zz",0,0,"zoneName");var vn=f.prototype;vn.add=on,vn.calendar=le,vn.clone=ue,vn.diff=ye,vn.endOf=Ee,vn.format=xe,vn.from=De,vn.fromNow=Se,vn.to=ke,vn.toNow=Ce,vn.get=z,vn.invalidAt=Ye,vn.isAfter=pe,vn.isBefore=ce,vn.isBetween=me,vn.isSame=fe,vn.isSameOrAfter=ge,vn.isSameOrBefore=ve,vn.isValid=Fe,vn.lang=sn,vn.locale=Te,vn.localeData=Oe,vn.max=Jo,vn.min=Ko,vn.parsingFlags=He,vn.set=z,vn.startOf=Me,vn.subtract=nn,vn.toArray=Ie,vn.toObject=Re,vn.toDate=Ne,vn.toISOString=we,vn.toJSON=Le,vn.toString=_e,vn.unix=Pe,vn.valueOf=Ae,vn.creationData=je,vn.year=Zo,vn.isLeapYear=bt,vn.weekYear=ze,vn.isoWeekYear=We,vn.quarter=vn.quarters=Xe,vn.month=at,vn.daysInMonth=ht,vn.week=vn.weeks=$e,vn.isoWeek=vn.isoWeeks=Qe,vn.weeksInYear=Be,vn.isoWeeksInYear=Ve,vn.date=an,vn.day=vn.days=si,vn.weekday=ri,vn.isoWeekday=ai,vn.dayOfYear=hi,vn.hour=vn.hours=pn,vn.minute=vn.minutes=cn,vn.second=vn.seconds=mn,vn.millisecond=vn.milliseconds=gn,vn.utcOffset=Ut,vn.utc=Xt,vn.local=Zt,vn.parseZone=Kt,vn.hasAlignedHourOffset=Jt,vn.isDST=$t,vn.isDSTShifted=Qt,vn.isLocal=te,vn.isUtcOffset=ee,vn.isUtc=ie,vn.isUTC=ie,vn.zoneAbbr=fi,vn.zoneName=gi,vn.dates=w("dates accessor is deprecated. Use date instead.",an),vn.months=w("months accessor is deprecated. Use month instead",at),vn.years=w("years accessor is deprecated. Use year instead",Zo),vn.zone=w("moment().zone is deprecated, use moment().utcOffset instead. https://github.com/moment/moment/issues/1779",qt);var yn=vn,bn={sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},_n={LTS:"h:mm:ss A",LT:"h:mm A",L:"MM/DD/YYYY",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY h:mm A",LLLL:"dddd, MMMM D, YYYY h:mm A"},wn="Invalid date",xn="%d",Dn=/\d{1,2}/,Sn={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"},kn=T.prototype;kn._calendar=bn,kn.calendar=bi,kn._longDateFormat=_n,kn.longDateFormat=_i,kn._invalidDate=wn,kn.invalidDate=wi,kn._ordinal=xn,kn.ordinal=xi,kn._ordinalParse=Dn,kn.preparse=Di,kn.postformat=Di,kn._relativeTime=Sn,kn.relativeTime=Si,kn.pastFuture=ki,kn.set=k,kn.months=ot,kn._months=Yo,kn.monthsShort=nt,kn._monthsShort=jo,kn.monthsParse=st,kn._monthsRegex=zo,kn.monthsRegex=lt,kn._monthsShortRegex=Go,kn.monthsShortRegex=dt,kn.week=Ze,kn._week=rn,kn.firstDayOfYear=Je,kn.firstDayOfWeek=Ke,kn.weekdays=ei,kn._weekdays=hn,kn.weekdaysMin=oi,kn._weekdaysMin=ln,kn.weekdaysShort=ii,kn._weekdaysShort=dn,kn.weekdaysParse=ni,kn.isPM=pi,kn._meridiemParse=un,kn.meridiem=ci,A("en",{ordinalParse:/\d{1,2}(th|st|nd|rd)/,ordinal:function(t){var e=t%10,i=1===y(t%100/10)?"th":1===e?"st":2===e?"nd":3===e?"rd":"th";return t+i}}),e.lang=w("moment.lang is deprecated. Use moment.locale instead.",A),e.langData=w("moment.langData is deprecated. Use moment.localeData instead.",I);var Cn=Math.abs,Tn=Wi("ms"),On=Wi("s"),Mn=Wi("m"),En=Wi("h"),An=Wi("d"),Pn=Wi("w"),Nn=Wi("M"),In=Wi("y"),Rn=Bi("milliseconds"),Ln=Bi("seconds"),Fn=Bi("minutes"),Hn=Bi("hours"),Yn=Bi("days"),jn=Bi("months"),Gn=Bi("years"),zn=Math.round,Wn={s:45,m:45,h:22,d:26,M:11},Vn=Math.abs,Bn=jt.prototype;Bn.abs=Ni,Bn.add=Ri,Bn.subtract=Li,Bn.as=Gi,Bn.asMilliseconds=Tn,Bn.asSeconds=On,Bn.asMinutes=Mn,Bn.asHours=En,Bn.asDays=An,Bn.asWeeks=Pn,Bn.asMonths=Nn,Bn.asYears=In,Bn.valueOf=zi,Bn._bubble=Hi,Bn.get=Vi,Bn.milliseconds=Rn,Bn.seconds=Ln,Bn.minutes=Fn,Bn.hours=Hn,Bn.days=Yn,Bn.weeks=Ui,Bn.months=jn,Bn.years=Gn,Bn.humanize=Ki,Bn.toISOString=Ji,Bn.toString=Ji,Bn.toJSON=Ji,Bn.locale=Te,Bn.localeData=Oe,Bn.toIsoString=w("toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)",Ji),Bn.lang=sn,V("X",0,0,"unix"),V("x",0,0,"valueOf"),Z("x",xo),Z("X",ko),Q("X",function(t,e,i){i._d=new Date(1e3*parseFloat(t,10))}),Q("x",function(t,e,i){i._d=new Date(y(t))}),e.version="2.12.0",i(Lt),e.fn=yn,e.min=Ht,e.max=Yt,e.now=$o,e.utc=h,e.unix=vi,e.months=Oi,e.isDate=n,e.locale=A,e.invalid=p,e.duration=oe,e.isMoment=g,e.weekdays=Ei,e.parseZone=yi,e.localeData=I,e.isDuration=Gt,e.monthsShort=Mi,e.weekdaysMin=Pi,e.defineLocale=P,e.updateLocale=N,e.locales=R,e.weekdaysShort=Ai,e.normalizeUnits=F,e.relativeTimeThreshold=Zi,e.prototype=yn;var Un=e;return Un})}).call(e,i(4)(t))},function(t,e){t.exports=function(t){return t.webpackPolyfill||(t.deprecate=function(){},t.paths=[],t.children=[],t.webpackPolyfill=1),t}},function(t,e){function i(t){throw new Error("Cannot find module '"+t+"'.")}i.keys=function(){return[]},i.resolve=i,t.exports=i,i.id=5},function(t,e){(function(e){function i(t,e,i){var o=e&&i||0,n=0;for(e=e||[],t.toLowerCase().replace(/[0-9a-f]{2}/g,function(t){16>n&&(e[o+n++]=u[t])});16>n;)e[o+n++]=0;return e}function o(t,e){var i=e||0,o=l;return o[t[i++]]+o[t[i++]]+o[t[i++]]+o[t[i++]]+"-"+o[t[i++]]+o[t[i++]]+"-"+o[t[i++]]+o[t[i++]]+"-"+o[t[i++]]+o[t[i++]]+"-"+o[t[i++]]+o[t[i++]]+o[t[i++]]+o[t[i++]]+o[t[i++]]+o[t[i++]]}function n(t,e,i){var n=e&&i||0,s=e||[];t=t||{};var r=void 0!==t.clockseq?t.clockseq:f,a=void 0!==t.msecs?t.msecs:(new Date).getTime(),h=void 0!==t.nsecs?t.nsecs:v+1,d=a-g+(h-v)/1e4;if(0>d&&void 0===t.clockseq&&(r=r+1&16383),(0>d||a>g)&&void 0===t.nsecs&&(h=0),h>=1e4)throw new Error("uuid.v1(): Can't create more than 10M uuids/sec");g=a,v=h,f=r,a+=122192928e5;var l=(1e4*(268435455&a)+h)%4294967296;s[n++]=l>>>24&255,s[n++]=l>>>16&255,s[n++]=l>>>8&255,s[n++]=255&l;var u=a/4294967296*1e4&268435455;s[n++]=u>>>8&255,s[n++]=255&u,s[n++]=u>>>24&15|16,s[n++]=u>>>16&255,s[n++]=r>>>8|128,s[n++]=255&r;for(var p=t.node||m,c=0;6>c;c++)s[n+c]=p[c];return e?e:o(s)}function s(t,e,i){var n=e&&i||0;"string"==typeof t&&(e="binary"==t?new Array(16):null,t=null),t=t||{};var s=t.random||(t.rng||r)();if(s[6]=15&s[6]|64,s[8]=63&s[8]|128,e)for(var a=0;16>a;a++)e[n+a]=s[a];return e||o(s)}var r,a="undefined"!=typeof window?window:"undefined"!=typeof e?e:null;if(a&&a.crypto&&crypto.getRandomValues){var h=new Uint8Array(16);r=function(){return crypto.getRandomValues(h),h}}if(!r){var d=new Array(16);r=function(){for(var t,e=0;16>e;e++)0===(3&e)&&(t=4294967296*Math.random()),d[e]=t>>>((3&e)<<3)&255;return d}}for(var l=[],u={},p=0;256>p;p++)l[p]=(p+256).toString(16).substr(1),u[l[p]]=p;var c=r(),m=[1|c[0],c[1],c[2],c[3],c[4],c[5]],f=16383&(c[6]<<8|c[7]),g=0,v=0,y=s;y.v1=n,y.v4=s,y.parse=i,y.unparse=o,t.exports=y}).call(e,function(){return this}())},function(t,e){e.prepareElements=function(t){for(var e in t)t.hasOwnProperty(e)&&(t[e].redundant=t[e].used,t[e].used=[])},e.cleanupElements=function(t){for(var e in t)if(t.hasOwnProperty(e)&&t[e].redundant){for(var i=0;i0?(o=e[t].redundant[0],e[t].redundant.shift()):(o=document.createElementNS("http://www.w3.org/2000/svg",t),i.appendChild(o)):(o=document.createElementNS("http://www.w3.org/2000/svg",t),e[t]={used:[],redundant:[]},i.appendChild(o)),e[t].used.push(o),o},e.getDOMElement=function(t,e,i,o){var n;return e.hasOwnProperty(t)?e[t].redundant.length>0?(n=e[t].redundant[0],e[t].redundant.shift()):(n=document.createElement(t),void 0!==o?i.insertBefore(n,o):i.appendChild(n)):(n=document.createElement(t),e[t]={used:[],redundant:[]},void 0!==o?i.insertBefore(n,o):i.appendChild(n)),e[t].used.push(n),n},e.drawPoint=function(t,i,o,n,s,r){var a;if("circle"==o.style?(a=e.getSVGElement("circle",n,s),a.setAttributeNS(null,"cx",t),a.setAttributeNS(null,"cy",i),a.setAttributeNS(null,"r",.5*o.size)):(a=e.getSVGElement("rect",n,s),a.setAttributeNS(null,"x",t-.5*o.size),a.setAttributeNS(null,"y",i-.5*o.size),a.setAttributeNS(null,"width",o.size),a.setAttributeNS(null,"height",o.size)),void 0!==o.styles&&a.setAttributeNS(null,"style",o.styles),a.setAttributeNS(null,"class",o.className+" vis-point"),r){var h=e.getSVGElement("text",n,s);r.xOffset&&(t+=r.xOffset),r.yOffset&&(i+=r.yOffset),r.content&&(h.textContent=r.content),r.className&&h.setAttributeNS(null,"class",r.className+" vis-label"),h.setAttributeNS(null,"x",t),h.setAttributeNS(null,"y",i)}return a},e.drawBar=function(t,i,o,n,s,r,a,h){if(0!=n){0>n&&(n*=-1,i-=n);var d=e.getSVGElement("rect",r,a);d.setAttributeNS(null,"x",t-.5*o),d.setAttributeNS(null,"y",i),d.setAttributeNS(null,"width",o),d.setAttributeNS(null,"height",n),d.setAttributeNS(null,"class",s),h&&d.setAttributeNS(null,"style",h)}}},function(t,e,i){function o(t,e){if(t&&!Array.isArray(t)&&(e=t,t=null),this._options=e||{},this._data={},this.length=0,this._fieldId=this._options.fieldId||"id",this._type={},this._options.type)for(var i=Object.keys(this._options.type),o=0,n=i.length;n>o;o++){var s=i[o],r=this._options.type[s];"Date"==r||"ISODate"==r||"ASPDate"==r?this._type[s]="Date":this._type[s]=r}if(this._options.convert)throw new Error('Option "convert" is deprecated. Use "type" instead.');this._subscribers={},t&&this.add(t),this.setOptions(e)}var n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol?"symbol":typeof t},s=i(1),r=i(9);o.prototype.setOptions=function(t){t&&void 0!==t.queue&&(t.queue===!1?this._queue&&(this._queue.destroy(),delete this._queue):(this._queue||(this._queue=r.extend(this,{replace:["add","update","remove"]})),"object"===n(t.queue)&&this._queue.setOptions(t.queue)))},o.prototype.on=function(t,e){var i=this._subscribers[t];i||(i=[],this._subscribers[t]=i),i.push({callback:e})},o.prototype.subscribe=function(){throw new Error("DataSet.subscribe is deprecated. Use DataSet.on instead.")},o.prototype.off=function(t,e){var i=this._subscribers[t];i&&(this._subscribers[t]=i.filter(function(t){return t.callback!=e}))},o.prototype.unsubscribe=function(){throw new Error("DataSet.unsubscribe is deprecated. Use DataSet.off instead.")},o.prototype._trigger=function(t,e,i){if("*"==t)throw new Error("Cannot trigger event *");var o=[];t in this._subscribers&&(o=o.concat(this._subscribers[t])),"*"in this._subscribers&&(o=o.concat(this._subscribers["*"]));for(var n=0,s=o.length;s>n;n++){var r=o[n];r.callback&&r.callback(t,e,i||null)}},o.prototype.add=function(t,e){var i,o=[],n=this;if(Array.isArray(t))for(var s=0,r=t.length;r>s;s++)i=n._addItem(t[s]),o.push(i);else{if(!(t instanceof Object))throw new Error("Unknown dataType");i=n._addItem(t),o.push(i)}return o.length&&this._trigger("add",{items:o},e),o},o.prototype.update=function(t,e){var i=[],o=[],n=[],r=[],a=this,h=a._fieldId,d=function(t){var e=t[h];if(a._data[e]){var d=s.extend({},a._data[e]);e=a._updateItem(t),o.push(e),r.push(t),n.push(d)}else e=a._addItem(t),i.push(e)};if(Array.isArray(t))for(var l=0,u=t.length;u>l;l++)t[l]instanceof Object?d(t[l]):console.warn("Ignoring input item, which is not an object at index "+l);else{if(!(t instanceof Object))throw new Error("Unknown dataType");d(t)}if(i.length&&this._trigger("add",{items:i},e),o.length){var p={items:o,oldData:n,data:r};this._trigger("update",p,e)}return i.concat(o)},o.prototype.get=function(t){var e,i,o,n=this,r=s.getType(arguments[0]);"String"==r||"Number"==r?(e=arguments[0],o=arguments[1]):"Array"==r?(i=arguments[0],o=arguments[1]):o=arguments[0];var a;if(o&&o.returnType){var h=["Array","Object"];a=-1==h.indexOf(o.returnType)?"Array":o.returnType}else a="Array";var d,l,u,p,c,m=o&&o.type||this._options.type,f=o&&o.filter,g=[];if(void 0!=e)d=n._getItem(e,m),d&&f&&!f(d)&&(d=null);else if(void 0!=i)for(p=0,c=i.length;c>p;p++)d=n._getItem(i[p],m),f&&!f(d)||g.push(d);else for(l=Object.keys(this._data),p=0,c=l.length;c>p;p++)u=l[p],d=n._getItem(u,m),f&&!f(d)||g.push(d);if(o&&o.order&&void 0==e&&this._sort(g,o.order),o&&o.fields){var v=o.fields;if(void 0!=e)d=this._filterFields(d,v);else for(p=0,c=g.length;c>p;p++)g[p]=this._filterFields(g[p],v)}if("Object"==a){var y,b={};for(p=0,c=g.length;c>p;p++)y=g[p],b[y.id]=y;return b}return void 0!=e?d:g},o.prototype.getIds=function(t){var e,i,o,n,s,r=this._data,a=t&&t.filter,h=t&&t.order,d=t&&t.type||this._options.type,l=Object.keys(r),u=[];if(a)if(h){for(s=[],e=0,i=l.length;i>e;e++)o=l[e],n=this._getItem(o,d),a(n)&&s.push(n);for(this._sort(s,h),e=0,i=s.length;i>e;e++)u.push(s[e][this._fieldId])}else for(e=0,i=l.length;i>e;e++)o=l[e],n=this._getItem(o,d),a(n)&&u.push(n[this._fieldId]);else if(h){for(s=[],e=0,i=l.length;i>e;e++)o=l[e],s.push(r[o]);for(this._sort(s,h),e=0,i=s.length;i>e;e++)u.push(s[e][this._fieldId])}else for(e=0,i=l.length;i>e;e++)o=l[e],n=r[o],u.push(n[this._fieldId]);return u; +},o.prototype.getDataSet=function(){return this},o.prototype.forEach=function(t,e){var i,o,n,s,r=e&&e.filter,a=e&&e.type||this._options.type,h=this._data,d=Object.keys(h);if(e&&e.order){var l=this.get(e);for(i=0,o=l.length;o>i;i++)n=l[i],s=n[this._fieldId],t(n,s)}else for(i=0,o=d.length;o>i;i++)s=d[i],n=this._getItem(s,a),r&&!r(n)||t(n,s)},o.prototype.map=function(t,e){var i,o,n,s,r=e&&e.filter,a=e&&e.type||this._options.type,h=[],d=this._data,l=Object.keys(d);for(i=0,o=l.length;o>i;i++)n=l[i],s=this._getItem(n,a),r&&!r(s)||h.push(t(s,n));return e&&e.order&&this._sort(h,e.order),h},o.prototype._filterFields=function(t,e){if(!t)return t;var i,o,n={},s=Object.keys(t),r=s.length;if(Array.isArray(e))for(i=0;r>i;i++)o=s[i],-1!=e.indexOf(o)&&(n[o]=t[o]);else for(i=0;r>i;i++)o=s[i],e.hasOwnProperty(o)&&(n[e[o]]=t[o]);return n},o.prototype._sort=function(t,e){if(s.isString(e)){var i=e;t.sort(function(t,e){var o=t[i],n=e[i];return o>n?1:n>o?-1:0})}else{if("function"!=typeof e)throw new TypeError("Order must be a function or a string");t.sort(e)}},o.prototype.remove=function(t,e){var i,o,n,s=[];if(Array.isArray(t))for(i=0,o=t.length;o>i;i++)n=this._remove(t[i]),null!=n&&s.push(n);else n=this._remove(t),null!=n&&s.push(n);return s.length&&this._trigger("remove",{items:s},e),s},o.prototype._remove=function(t){if(s.isNumber(t)||s.isString(t)){if(this._data[t])return delete this._data[t],this.length--,t}else if(t instanceof Object){var e=t[this._fieldId];if(void 0!==e&&this._data[e])return delete this._data[e],this.length--,e}return null},o.prototype.clear=function(t){var e=Object.keys(this._data);return this._data={},this.length=0,this._trigger("remove",{items:e},t),e},o.prototype.max=function(t){var e,i,o=this._data,n=Object.keys(o),s=null,r=null;for(e=0,i=n.length;i>e;e++){var a=n[e],h=o[a],d=h[t];null!=d&&(!s||d>r)&&(s=h,r=d)}return s},o.prototype.min=function(t){var e,i,o=this._data,n=Object.keys(o),s=null,r=null;for(e=0,i=n.length;i>e;e++){var a=n[e],h=o[a],d=h[t];null!=d&&(!s||r>d)&&(s=h,r=d)}return s},o.prototype.distinct=function(t){var e,i,o,n=this._data,r=Object.keys(n),a=[],h=this._options.type&&this._options.type[t]||null,d=0;for(e=0,o=r.length;o>e;e++){var l=r[e],u=n[l],p=u[t],c=!1;for(i=0;d>i;i++)if(a[i]==p){c=!0;break}c||void 0===p||(a[d]=p,d++)}if(h)for(e=0,o=a.length;o>e;e++)a[e]=s.convert(a[e],h);return a},o.prototype._addItem=function(t){var e=t[this._fieldId];if(void 0!=e){if(this._data[e])throw new Error("Cannot add item: item with id "+e+" already exists")}else e=s.randomUUID(),t[this._fieldId]=e;var i,o,n={},r=Object.keys(t);for(i=0,o=r.length;o>i;i++){var a=r[i],h=this._type[a];n[a]=s.convert(t[a],h)}return this._data[e]=n,this.length++,e},o.prototype._getItem=function(t,e){var i,o,n,r,a=this._data[t];if(!a)return null;var h={},d=Object.keys(a);if(e)for(n=0,r=d.length;r>n;n++)i=d[n],o=a[i],h[i]=s.convert(o,e[i]);else for(n=0,r=d.length;r>n;n++)i=d[n],o=a[i],h[i]=o;return h},o.prototype._updateItem=function(t){var e=t[this._fieldId];if(void 0==e)throw new Error("Cannot update item: item has no id (item: "+JSON.stringify(t)+")");var i=this._data[e];if(!i)throw new Error("Cannot update item: no item with id "+e+" found");for(var o=Object.keys(t),n=0,r=o.length;r>n;n++){var a=o[n],h=this._type[a];i[a]=s.convert(t[a],h)}return e},t.exports=o},function(t,e){function i(t){this.delay=null,this.max=1/0,this._queue=[],this._timeout=null,this._extended=null,this.setOptions(t)}i.prototype.setOptions=function(t){t&&"undefined"!=typeof t.delay&&(this.delay=t.delay),t&&"undefined"!=typeof t.max&&(this.max=t.max),this._flushIfNeeded()},i.extend=function(t,e){var o=new i(e);if(void 0!==t.flush)throw new Error("Target object already has a property flush");t.flush=function(){o.flush()};var n=[{name:"flush",original:void 0}];if(e&&e.replace)for(var s=0;sthis.max&&this.flush(),clearTimeout(this._timeout),this.queue.length>0&&"number"==typeof this.delay){var t=this;this._timeout=setTimeout(function(){t.flush()},this.delay)}},i.prototype.flush=function(){for(;this._queue.length>0;){var t=this._queue.shift();t.fn.apply(t.context||t.fn,t.args||[])}},t.exports=i},function(t,e,i){function o(t,e){this._data=null,this._ids={},this.length=0,this._options=e||{},this._fieldId="id",this._subscribers={};var i=this;this.listener=function(){i._onEvent.apply(i,arguments)},this.setData(t)}var n=i(1),s=i(8);o.prototype.setData=function(t){var e,i,o,n;if(this._data&&(this._data.off&&this._data.off("*",this.listener),e=Object.keys(this._ids),this._ids={},this.length=0,this._trigger("remove",{items:e})),this._data=t,this._data){for(this._fieldId=this._options.fieldId||this._data&&this._data.options&&this._data.options.fieldId||"id",e=this._data.getIds({filter:this._options&&this._options.filter}),o=0,n=e.length;n>o;o++)i=e[o],this._ids[i]=!0;this.length=e.length,this._trigger("add",{items:e}),this._data.on&&this._data.on("*",this.listener)}},o.prototype.refresh=function(){var t,e,i,o=this._data.getIds({filter:this._options&&this._options.filter}),n=Object.keys(this._ids),s={},r=[],a=[];for(e=0,i=o.length;i>e;e++)t=o[e],s[t]=!0,this._ids[t]||(r.push(t),this._ids[t]=!0);for(e=0,i=n.length;i>e;e++)t=n[e],s[t]||(a.push(t),delete this._ids[t]);this.length+=r.length-a.length,r.length&&this._trigger("add",{items:r}),a.length&&this._trigger("remove",{items:a})},o.prototype.get=function(t){var e,i,o,s=this,r=n.getType(arguments[0]);"String"==r||"Number"==r||"Array"==r?(e=arguments[0],i=arguments[1],o=arguments[2]):(i=arguments[0],o=arguments[1]);var a=n.extend({},this._options,i);this._options.filter&&i&&i.filter&&(a.filter=function(t){return s._options.filter(t)&&i.filter(t)});var h=[];return void 0!=e&&h.push(e),h.push(a),h.push(o),this._data&&this._data.get.apply(this._data,h)},o.prototype.getIds=function(t){var e;if(this._data){var i,o=this._options.filter;i=t&&t.filter?o?function(e){return o(e)&&t.filter(e)}:t.filter:o,e=this._data.getIds({filter:i,order:t&&t.order})}else e=[];return e},o.prototype.map=function(t,e){var i=[];if(this._data){var o,n=this._options.filter;o=e&&e.filter?n?function(t){return n(t)&&e.filter(t)}:e.filter:n,i=this._data.map(t,{filter:o,order:e&&e.order})}else i=[];return i},o.prototype.getDataSet=function(){for(var t=this;t instanceof o;)t=t._data;return t||null},o.prototype._onEvent=function(t,e,i){var o,n,s,r,a=e&&e.items,h=this._data,d=[],l=[],u=[],p=[];if(a&&h){switch(t){case"add":for(o=0,n=a.length;n>o;o++)s=a[o],r=this.get(s),r&&(this._ids[s]=!0,l.push(s));break;case"update":for(o=0,n=a.length;n>o;o++)s=a[o],r=this.get(s),r?this._ids[s]?(u.push(s),d.push(e.data[o])):(this._ids[s]=!0,l.push(s)):this._ids[s]&&(delete this._ids[s],p.push(s));break;case"remove":for(o=0,n=a.length;n>o;o++)s=a[o],this._ids[s]&&(delete this._ids[s],p.push(s))}this.length+=l.length-p.length,l.length&&this._trigger("add",{items:l},i),u.length&&this._trigger("update",{items:u,data:d},i),p.length&&this._trigger("remove",{items:p},i)}},o.prototype.on=s.prototype.on,o.prototype.off=s.prototype.off,o.prototype._trigger=s.prototype._trigger,o.prototype.subscribe=o.prototype.on,o.prototype.unsubscribe=o.prototype.off,t.exports=o},function(t,e,i){function o(t){return t&&t.__esModule?t:{"default":t}}function n(t,e,i,o){if(!(this instanceof n))throw new SyntaxError("Constructor must be called with the new operator");if(!(Array.isArray(i)||i instanceof u||i instanceof p)&&i instanceof Object){var s=o;o=i,i=s}var r=this;this.defaultOptions={start:null,end:null,autoResize:!0,throttleRedraw:0,orientation:{axis:"bottom",item:"bottom"},rtl:!1,moment:d,width:null,height:null,maxHeight:null,minHeight:null},this.options=l.deepExtend({},this.defaultOptions),this._create(t),this.components=[],this.body={dom:this.dom,domProps:this.props,emitter:{on:this.on.bind(this),off:this.off.bind(this),emit:this.emit.bind(this)},hiddenDates:[],util:{getScale:function(){return r.timeAxis.step.scale},getStep:function(){return r.timeAxis.step.step},toScreen:r._toScreen.bind(r),toGlobalScreen:r._toGlobalScreen.bind(r),toTime:r._toTime.bind(r),toGlobalTime:r._toGlobalTime.bind(r)}},this.range=new c(this.body),this.components.push(this.range),this.body.range=this.range,this.timeAxis=new f(this.body),this.timeAxis2=null,this.components.push(this.timeAxis),this.currentTime=new g(this.body),this.components.push(this.currentTime),this.itemSet=new y(this.body,this.options),this.components.push(this.itemSet),this.itemsData=null,this.groupsData=null,this.on("tap",function(t){r.emit("click",r.getEventProperties(t))}),this.on("doubletap",function(t){r.emit("doubleClick",r.getEventProperties(t))}),this.dom.root.oncontextmenu=function(t){r.emit("contextmenu",r.getEventProperties(t))},this.fitDone=!1,this.on("changed",function(){if(null!=this.itemsData&&!r.fitDone)if(r.fitDone=!0,void 0!=r.options.start||void 0!=r.options.end){if(void 0==r.options.start||void 0==r.options.end)var t=r.getItemRange();var e=void 0!=r.options.start?r.options.start:t.min,i=void 0!=r.options.end?r.options.end:t.max;r.setWindow(e,i,{animation:!1})}else r.fit({animation:!1})}),o&&this.setOptions(o),i&&this.setGroups(i),e&&this.setItems(e),this._redraw()}var s=i(12),r=o(s),a=i(18),h=o(a),d=(i(19),i(14),i(2)),l=i(1),u=i(8),p=i(10),c=i(20),m=i(23),f=i(34),g=i(39),v=i(37),y=i(24),b=i(18).printStyle,_=i(40).allOptions,w=i(40).configureOptions;n.prototype=new m,n.prototype._createConfigurator=function(){return new r["default"](this,this.dom.container,w)},n.prototype.redraw=function(){this.itemSet&&this.itemSet.markDirty({refreshItems:!0}),this._redraw()},n.prototype.setOptions=function(t){var e=h["default"].validate(t,_);if(e===!0&&console.log("%cErrors have been found in the supplied options object.",b),m.prototype.setOptions.call(this,t),"type"in t&&t.type!==this.options.type){this.options.type=t.type;var i=this.itemsData;if(i){var o=this.getSelection();this.setItems(null),this.setItems(i),this.setSelection(o)}}},n.prototype.setItems=function(t){var e;e=t?t instanceof u||t instanceof p?t:new u(t,{type:{start:"Date",end:"Date"}}):null,this.itemsData=e,this.itemSet&&this.itemSet.setItems(e)},n.prototype.setGroups=function(t){var e;e=t?t instanceof u||t instanceof p?t:new u(t):null,this.groupsData=e,this.itemSet.setGroups(e)},n.prototype.setData=function(t){t&&t.groups&&this.setGroups(t.groups),t&&t.items&&this.setItems(t.items)},n.prototype.setSelection=function(t,e){this.itemSet&&this.itemSet.setSelection(t),e&&e.focus&&this.focus(t,e)},n.prototype.getSelection=function(){return this.itemSet&&this.itemSet.getSelection()||[]},n.prototype.focus=function(t,e){if(this.itemsData&&void 0!=t){var i=Array.isArray(t)?t:[t],o=this.itemsData.getDataSet().get(i,{type:{start:"Date",end:"Date"}}),n=null,s=null;if(o.forEach(function(t){var e=t.start.valueOf(),i="end"in t?t.end.valueOf():t.start.valueOf();(null===n||n>e)&&(n=e),(null===s||i>s)&&(s=i)}),null!==n&&null!==s){var r=(n+s)/2,a=Math.max(this.range.end-this.range.start,1.1*(s-n)),h=e&&void 0!==e.animation?e.animation:!0;this.range.setRange(r-a/2,r+a/2,h)}}},n.prototype.fit=function(t){var e,i=t&&void 0!==t.animation?t.animation:!0,o=this.itemsData&&this.itemsData.getDataSet();1===o.length&&void 0===o.get()[0].end?(e=this.getDataRange(),this.moveTo(e.min.valueOf(),{animation:i})):(e=this.getItemRange(),this.range.setRange(e.min,e.max,i))},n.prototype.getItemRange=function(){var t=this,e=this.getDataRange(),i=null!==e.min?e.min.valueOf():null,o=null!==e.max?e.max.valueOf():null,n=null,s=null;if(null!=i&&null!=o){var r,a,h,d,u;!function(){var e=function(t){return l.convert(t.data.start,"Date").valueOf()},p=function(t){var e=void 0!=t.data.end?t.data.end:t.data.start;return l.convert(e,"Date").valueOf()};r=o-i,0>=r&&(r=10),a=r/t.props.center.width,l.forEach(t.itemSet.items,function(t){t.show(),t.repositionX();var r=e(t),h=p(t);if(this.options.rtl)var d=r-(t.getWidthRight()+10)*a,l=h+(t.getWidthLeft()+10)*a;else var d=r-(t.getWidthLeft()+10)*a,l=h+(t.getWidthRight()+10)*a;i>d&&(i=d,n=t),l>o&&(o=l,s=t)}.bind(t)),n&&s&&(h=n.getWidthLeft()+10,d=s.getWidthRight()+10,u=t.props.center.width-h-d,u>0&&(t.options.rtl?(i=e(n)-d*r/u,o=p(s)+h*r/u):(i=e(n)-h*r/u,o=p(s)+d*r/u)))}()}return{min:null!=i?new Date(i):null,max:null!=o?new Date(o):null}},n.prototype.getDataRange=function(){var t=null,e=null,i=this.itemsData&&this.itemsData.getDataSet();return i&&i.forEach(function(i){var o=l.convert(i.start,"Date").valueOf(),n=l.convert(void 0!=i.end?i.end:i.start,"Date").valueOf();(null===t||t>o)&&(t=o),(null===e||n>e)&&(e=n)}),{min:null!=t?new Date(t):null,max:null!=e?new Date(e):null}},n.prototype.getEventProperties=function(t){var e=t.center?t.center.x:t.clientX,i=t.center?t.center.y:t.clientY;if(this.options.rtl)var o=l.getAbsoluteRight(this.dom.centerContainer)-e;else var o=e-l.getAbsoluteLeft(this.dom.centerContainer);var n=i-l.getAbsoluteTop(this.dom.centerContainer),s=this.itemSet.itemFromTarget(t),r=this.itemSet.groupFromTarget(t),a=v.customTimeFromTarget(t),h=this.itemSet.options.snap||null,d=this.body.util.getScale(),u=this.body.util.getStep(),p=this._toTime(o),c=h?h(p,d,u):p,m=l.getTarget(t),f=null;return null!=s?f="item":null!=a?f="custom-time":l.hasParent(m,this.timeAxis.dom.foreground)?f="axis":this.timeAxis2&&l.hasParent(m,this.timeAxis2.dom.foreground)?f="axis":l.hasParent(m,this.itemSet.dom.labelSet)?f="group-label":l.hasParent(m,this.currentTime.bar)?f="current-time":l.hasParent(m,this.dom.center)&&(f="background"),{event:t,item:s?s.id:null,group:r?r.groupId:null,what:f,pageX:t.srcEvent?t.srcEvent.pageX:t.pageX,pageY:t.srcEvent?t.srcEvent.pageY:t.pageY,x:o,y:n,time:p,snappedTime:c}},t.exports=n},function(t,e,i){function o(t){return t&&t.__esModule?t:{"default":t}}function n(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(e,"__esModule",{value:!0});var s="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol?"symbol":typeof t},r=function(){function t(t,e){for(var i=0;i0&&this._makeItem([]),this._makeHeader(n),this._handleObject(this.configureOptions[n],[n])),i++);this.options.showButton===!0&&!function(){var e=document.createElement("div");e.className="vis-configuration vis-config-button",e.innerHTML="generate options",e.onclick=function(){t._printOptions()},e.onmouseover=function(){e.className="vis-configuration vis-config-button hover"},e.onmouseout=function(){e.className="vis-configuration vis-config-button"},t.optionsContainer=document.createElement("div"),t.optionsContainer.className="vis-configuration vis-config-option-container",t.domElements.push(t.optionsContainer),t.domElements.push(e)}(),this._push()}},{key:"_push",value:function(){this.wrapper=document.createElement("div"),this.wrapper.className="vis-configuration-wrapper",this.container.appendChild(this.wrapper);for(var t=0;t1?o-1:0),r=1;o>r;r++)n[r-1]=e[r];return n.forEach(function(t){s.appendChild(t)}),i.domElements.push(s),{v:i.domElements.length}}();if("object"===("undefined"==typeof a?"undefined":s(a)))return a.v}return 0}},{key:"_makeHeader",value:function(t){var e=document.createElement("div");e.className="vis-configuration vis-config-header",e.innerHTML=t,this._makeItem([],e)}},{key:"_makeLabel",value:function(t,e){var i=arguments.length<=2||void 0===arguments[2]?!1:arguments[2],o=document.createElement("div");return o.className="vis-configuration vis-config-label vis-config-s"+e.length,i===!0?o.innerHTML=""+t+":":o.innerHTML=t+":",o}},{key:"_makeDropdown",value:function(t,e,i){var o=document.createElement("select");o.className="vis-configuration vis-config-select";var n=0;void 0!==e&&-1!==t.indexOf(e)&&(n=t.indexOf(e));for(var s=0;se&&n>e*u?(a.min=Math.ceil(e*u),l=a.min,d="range increased"):n>e/u&&(a.min=Math.ceil(e/u),l=a.min,d="range increased"),e*u>s&&1!==s&&(a.max=Math.ceil(e*u),l=a.max,d="range increased"),a.value=e}else a.value=o;var p=document.createElement("input");p.className="vis-configuration vis-config-rangeinput",p.value=a.value;var c=this;a.onchange=function(){p.value=this.value,c._update(Number(this.value),i)},a.oninput=function(){p.value=this.value};var m=this._makeLabel(i[i.length-1],i),f=this._makeItem(i,m,a,p);""!==d&&this.popupHistory[f]!==l&&(this.popupHistory[f]=l,this._setupPopup(d,f))}},{key:"_setupPopup",value:function(t,e){var i=this;if(this.initialized===!0&&this.allowCreation===!0&&this.popupCountervar options = "+JSON.stringify(t,null,2)+""}},{key:"getOptions",value:function(){for(var t={},e=0;es;s++)for(r=0;rc?c+1:c;var m=l/this.r,f=a.RGBToHSV(this.color.r,this.color.g,this.color.b);f.h=c,f.s=m;var g=a.HSVToRGB(f.h,f.s,f.v);g.a=this.color.a,this.color=g,this.initialColorDiv.style.backgroundColor="rgba("+this.initialColor.r+","+this.initialColor.g+","+this.initialColor.b+","+this.initialColor.a+")",this.newColorDiv.style.backgroundColor="rgba("+this.color.r+","+this.color.g+","+this.color.b+","+this.color.a+")"}}]),t}();e["default"]=h},function(t,e,i){if("undefined"!=typeof window){var o=i(15),n=window.Hammer||i(16);t.exports=o(n,{preventDefault:"mouse"})}else t.exports=function(){throw Error("hammer.js is only available in a browser, not in node.js.")}},function(t,e,i){var o,n,s;!function(i){n=[],o=i,s="function"==typeof o?o.apply(e,n):o,!(void 0!==s&&(t.exports=s))}(function(){var t=null;return function e(i,o){function n(t){return t.match(/[^ ]+/g)}function s(e){if("hammer.input"!==e.type){if(e.srcEvent._handled||(e.srcEvent._handled={}),e.srcEvent._handled[e.type])return;e.srcEvent._handled[e.type]=!0}var i=!1;e.stopPropagation=function(){i=!0};var o=e.srcEvent.stopPropagation.bind(e.srcEvent);"function"==typeof o&&(e.srcEvent.stopPropagation=function(){o(),e.stopPropagation()}),e.firstTarget=t;for(var n=t;n&&!i;){var s=n.hammer;if(s)for(var r,a=0;a0?d._handlers[t]=o:(i.off(t,s),delete d._handlers[t]))}),d},d.emit=function(e,o){t=o.target,i.emit(e,o)},d.destroy=function(){var t=i.element.hammer,e=t.indexOf(d);-1!==e&&t.splice(e,1),t.length||delete i.element.hammer,d._handlers={},i.destroy()},d}})},function(t,e,i){var o;/*! Hammer.JS - v2.0.6 - 2015-12-23 + * http://hammerjs.github.io/ + * + * Copyright (c) 2015 Jorik Tangelder; + * Licensed under the license */ +!function(n,s,r,a){function h(t,e,i){return setTimeout(c(t,i),e)}function d(t,e,i){return Array.isArray(t)?(l(t,i[e],i),!0):!1}function l(t,e,i){var o;if(t)if(t.forEach)t.forEach(e,i);else if(t.length!==a)for(o=0;o\s*\(/gm,"{anonymous}()@"):"Unknown Stack Trace",s=n.console&&(n.console.warn||n.console.log);return s&&s.call(n.console,o,i),t.apply(this,arguments)}}function p(t,e,i){var o,n=e.prototype;o=t.prototype=Object.create(n),o.constructor=t,o._super=n,i&&ut(o,i)}function c(t,e){return function(){return t.apply(e,arguments)}}function m(t,e){return typeof t==mt?t.apply(e?e[0]||a:a,e):t}function f(t,e){return t===a?e:t}function g(t,e,i){l(_(e),function(e){t.addEventListener(e,i,!1)})}function v(t,e,i){l(_(e),function(e){t.removeEventListener(e,i,!1)})}function y(t,e){for(;t;){if(t==e)return!0;t=t.parentNode}return!1}function b(t,e){return t.indexOf(e)>-1}function _(t){return t.trim().split(/\s+/g)}function w(t,e,i){if(t.indexOf&&!i)return t.indexOf(e);for(var o=0;oi[e]}):o.sort()),o}function S(t,e){for(var i,o,n=e[0].toUpperCase()+e.slice(1),s=0;s1&&!i.firstMultiple?i.firstMultiple=N(e):1===n&&(i.firstMultiple=!1);var s=i.firstInput,r=i.firstMultiple,a=r?r.center:s.center,h=e.center=I(o);e.timeStamp=vt(),e.deltaTime=e.timeStamp-s.timeStamp,e.angle=H(a,h),e.distance=F(a,h),A(i,e),e.offsetDirection=L(e.deltaX,e.deltaY);var d=R(e.deltaTime,e.deltaX,e.deltaY);e.overallVelocityX=d.x,e.overallVelocityY=d.y,e.overallVelocity=gt(d.x)>gt(d.y)?d.x:d.y,e.scale=r?j(r.pointers,o):1,e.rotation=r?Y(r.pointers,o):0,e.maxPointers=i.prevInput?e.pointers.length>i.prevInput.maxPointers?e.pointers.length:i.prevInput.maxPointers:e.pointers.length,P(i,e);var l=t.element;y(e.srcEvent.target,l)&&(l=e.srcEvent.target),e.target=l}function A(t,e){var i=e.center,o=t.offsetDelta||{},n=t.prevDelta||{},s=t.prevInput||{};e.eventType!==Et&&s.eventType!==Pt||(n=t.prevDelta={x:s.deltaX||0,y:s.deltaY||0},o=t.offsetDelta={x:i.x,y:i.y}),e.deltaX=n.x+(i.x-o.x),e.deltaY=n.y+(i.y-o.y)}function P(t,e){var i,o,n,s,r=t.lastInterval||e,h=e.timeStamp-r.timeStamp;if(e.eventType!=Nt&&(h>Mt||r.velocity===a)){var d=e.deltaX-r.deltaX,l=e.deltaY-r.deltaY,u=R(h,d,l);o=u.x,n=u.y,i=gt(u.x)>gt(u.y)?u.x:u.y,s=L(d,l),t.lastInterval=e}else i=r.velocity,o=r.velocityX,n=r.velocityY,s=r.direction;e.velocity=i,e.velocityX=o,e.velocityY=n,e.direction=s}function N(t){for(var e=[],i=0;in;)i+=t[n].clientX,o+=t[n].clientY,n++;return{x:ft(i/e),y:ft(o/e)}}function R(t,e,i){return{x:e/t||0,y:i/t||0}}function L(t,e){return t===e?It:gt(t)>=gt(e)?0>t?Rt:Lt:0>e?Ft:Ht}function F(t,e,i){i||(i=zt);var o=e[i[0]]-t[i[0]],n=e[i[1]]-t[i[1]];return Math.sqrt(o*o+n*n)}function H(t,e,i){i||(i=zt);var o=e[i[0]]-t[i[0]],n=e[i[1]]-t[i[1]];return 180*Math.atan2(n,o)/Math.PI}function Y(t,e){return H(e[1],e[0],Wt)+H(t[1],t[0],Wt)}function j(t,e){return F(e[0],e[1],Wt)/F(t[0],t[1],Wt)}function G(){this.evEl=Bt,this.evWin=Ut,this.allow=!0,this.pressed=!1,T.apply(this,arguments)}function z(){this.evEl=Zt,this.evWin=Kt,T.apply(this,arguments),this.store=this.manager.session.pointerEvents=[]}function W(){this.evTarget=$t,this.evWin=Qt,this.started=!1,T.apply(this,arguments)}function V(t,e){var i=x(t.touches),o=x(t.changedTouches);return e&(Pt|Nt)&&(i=D(i.concat(o),"identifier",!0)),[i,o]}function B(){this.evTarget=ee,this.targetIds={},T.apply(this,arguments)}function U(t,e){var i=x(t.touches),o=this.targetIds;if(e&(Et|At)&&1===i.length)return o[i[0].identifier]=!0,[i,i];var n,s,r=x(t.changedTouches),a=[],h=this.target;if(s=i.filter(function(t){return y(t.target,h)}),e===Et)for(n=0;na&&(e.push(t),a=e.length-1):n&(Pt|Nt)&&(i=!0),0>a||(e[a]=t,this.callback(this.manager,n,{pointers:e,changedPointers:[t],pointerType:s,srcEvent:t}),i&&e.splice(a,1))}});var Jt={touchstart:Et,touchmove:At,touchend:Pt,touchcancel:Nt},$t="touchstart",Qt="touchstart touchmove touchend touchcancel";p(W,T,{handler:function(t){var e=Jt[t.type];if(e===Et&&(this.started=!0),this.started){var i=V.call(this,t,e);e&(Pt|Nt)&&i[0].length-i[1].length===0&&(this.started=!1),this.callback(this.manager,e,{pointers:i[0],changedPointers:i[1],pointerType:kt,srcEvent:t})}}});var te={touchstart:Et,touchmove:At,touchend:Pt,touchcancel:Nt},ee="touchstart touchmove touchend touchcancel";p(B,T,{handler:function(t){var e=te[t.type],i=U.call(this,t,e);i&&this.callback(this.manager,e,{pointers:i[0],changedPointers:i[1],pointerType:kt,srcEvent:t})}}),p(q,T,{handler:function(t,e,i){var o=i.pointerType==kt,n=i.pointerType==Tt;if(o)this.mouse.allow=!1;else if(n&&!this.mouse.allow)return;e&(Pt|Nt)&&(this.mouse.allow=!0),this.callback(t,e,i)},destroy:function(){this.touch.destroy(),this.mouse.destroy()}});var ie=S(ct.style,"touchAction"),oe=ie!==a,ne="compute",se="auto",re="manipulation",ae="none",he="pan-x",de="pan-y";X.prototype={set:function(t){t==ne&&(t=this.compute()),oe&&this.manager.element.style&&(this.manager.element.style[ie]=t),this.actions=t.toLowerCase().trim()},update:function(){this.set(this.manager.options.touchAction)},compute:function(){var t=[];return l(this.manager.recognizers,function(e){m(e.options.enable,[e])&&(t=t.concat(e.getTouchAction()))}),Z(t.join(" "))},preventDefaults:function(t){if(!oe){var e=t.srcEvent,i=t.offsetDirection;if(this.manager.session.prevented)return void e.preventDefault();var o=this.actions,n=b(o,ae),s=b(o,de),r=b(o,he);if(n){var a=1===t.pointers.length,h=t.distance<2,d=t.deltaTime<250;if(a&&h&&d)return}if(!r||!s)return n||s&&i&Yt||r&&i&jt?this.preventSrc(e):void 0}},preventSrc:function(t){this.manager.session.prevented=!0,t.preventDefault()}};var le=1,ue=2,pe=4,ce=8,me=ce,fe=16,ge=32;K.prototype={defaults:{},set:function(t){return ut(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=Q(t,this),e[t.id]||(e[t.id]=t,t.recognizeWith(this)),this},dropRecognizeWith:function(t){return d(t,"dropRecognizeWith",this)?this:(t=Q(t,this),delete this.simultaneous[t.id],this)},requireFailure:function(t){if(d(t,"requireFailure",this))return this;var e=this.requireFail;return t=Q(t,this),-1===w(e,t)&&(e.push(t),t.requireFailure(this)),this},dropRequireFailure:function(t){if(d(t,"dropRequireFailure",this))return this;t=Q(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(e,t)}var i=this,o=this.state;ce>o&&e(i.options.event+J(o)),e(i.options.event),t.additionalEvent&&e(t.additionalEvent),o>=ce&&e(i.options.event+J(o))},tryEmit:function(t){return this.canEmit()?this.emit(t):void(this.state=ge)},canEmit:function(){for(var t=0;ts?Rt:Lt,i=s!=this.pX,o=Math.abs(t.deltaX)):(n=0===r?It:0>r?Ft:Ht,i=r!=this.pY,o=Math.abs(t.deltaY))),t.direction=n,i&&o>e.threshold&&n&e.direction},attrTest:function(t){return tt.prototype.attrTest.call(this,t)&&(this.state&ue||!(this.state&ue)&&this.directionTest(t))},emit:function(t){this.pX=t.deltaX,this.pY=t.deltaY;var e=$(t.direction);e&&(t.additionalEvent=this.options.event+e),this._super.emit.call(this,t)}}),p(it,tt,{defaults:{event:"pinch",threshold:0,pointers:2},getTouchAction:function(){return[ae]},attrTest:function(t){return this._super.attrTest.call(this,t)&&(Math.abs(t.scale-1)>this.options.threshold||this.state&ue)},emit:function(t){if(1!==t.scale){var e=t.scale<1?"in":"out";t.additionalEvent=this.options.event+e}this._super.emit.call(this,t)}}),p(ot,K,{defaults:{event:"press",pointers:1,time:251,threshold:9},getTouchAction:function(){return[se]},process:function(t){var e=this.options,i=t.pointers.length===e.pointers,o=t.distancee.time;if(this._input=t,!o||!i||t.eventType&(Pt|Nt)&&!n)this.reset();else if(t.eventType&Et)this.reset(),this._timer=h(function(){this.state=me,this.tryEmit()},e.time,this);else if(t.eventType&Pt)return me;return ge},reset:function(){clearTimeout(this._timer)},emit:function(t){this.state===me&&(t&&t.eventType&Pt?this.manager.emit(this.options.event+"up",t):(this._input.timeStamp=vt(),this.manager.emit(this.options.event,this._input)))}}),p(nt,tt,{defaults:{event:"rotate",threshold:0,pointers:2},getTouchAction:function(){return[ae]},attrTest:function(t){return this._super.attrTest.call(this,t)&&(Math.abs(t.rotation)>this.options.threshold||this.state&ue)}}),p(st,tt,{defaults:{event:"swipe",threshold:10,velocity:.3,direction:Yt|jt,pointers:1},getTouchAction:function(){return et.prototype.getTouchAction.call(this)},attrTest:function(t){var e,i=this.options.direction;return i&(Yt|jt)?e=t.overallVelocity:i&Yt?e=t.overallVelocityX:i&jt&&(e=t.overallVelocityY),this._super.attrTest.call(this,t)&&i&t.offsetDirection&&t.distance>this.options.threshold&&t.maxPointers==this.options.pointers&>(e)>this.options.velocity&&t.eventType&Pt},emit:function(t){var e=$(t.offsetDirection);e&&this.manager.emit(this.options.event+e,t),this.manager.emit(this.options.event,t)}}),p(rt,K,{defaults:{event:"tap",pointers:1,taps:1,interval:300,time:250,threshold:9,posThreshold:10},getTouchAction:function(){return[re]},process:function(t){var e=this.options,i=t.pointers.length===e.pointers,o=t.distances.distance?console.log('%cUnknown option detected: "'+e+'" in '+t.printLocation(n.path,e,"")+"Perhaps it was misplaced? Matching option found at: "+t.printLocation(s.path,s.closestMatch,""),d):n.distance<=r?console.log('%cUnknown option detected: "'+e+'". Did you mean "'+n.closestMatch+'"?'+t.printLocation(n.path,e),d):console.log('%cUnknown option detected: "'+e+'". Did you mean one of these: '+t.print(Object.keys(i))+t.printLocation(o,e),d),a=!0}},{key:"findInOptions",value:function(e,i,o){var n=arguments.length<=3||void 0===arguments[3]?!1:arguments[3],s=1e9,a="",h=[],d=e.toLowerCase(),l=void 0;for(var u in i){var p=void 0;if(void 0!==i[u].__type__&&n===!0){var c=t.findInOptions(e,i[u],r.copyAndExtendArray(o,u));s>c.distance&&(a=c.closestMatch,h=c.path,s=c.distance,l=c.indexMatch)}else-1!==u.toLowerCase().indexOf(d)&&(l=u),p=t.levenshteinDistance(e,u),s>p&&(a=u,h=r.copyArray(o),s=p)}return{closestMatch:a,path:h,distance:s,indexMatch:l}}},{key:"printLocation",value:function(t,e){for(var i=arguments.length<=2||void 0===arguments[2]?"Problem value found at: \n":arguments[2],o="\n\n"+i+"options = {\n",n=0;ns;s++)o+=" ";o+=t[n]+": {\n"}for(var r=0;ro;++o)i[o].apply(this,e)}return this},i.prototype.listeners=function(t){return this._callbacks=this._callbacks||{},this._callbacks[t]||[]},i.prototype.hasListeners=function(t){return!!this.listeners(t).length}},function(t,e,i){function o(t,e){var i=a().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={rtl:!1,start:null,end:null,moment:a,direction:"horizontal",moveable:!0,zoomable:!0,min:null,max:null,zoomMin:10,zoomMax:31536e10},this.options=r.extend({},this.defaultOptions),this.props={touch:{}},this.animationTimer=null,this.body.emitter.on("panstart",this._onDragStart.bind(this)),this.body.emitter.on("panmove",this._onDrag.bind(this)),this.body.emitter.on("panend",this._onDragEnd.bind(this)),this.body.emitter.on("mousewheel",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 n(t){if("horizontal"!=t&&"vertical"!=t)throw new TypeError('Unknown direction "'+t+'". Choose "horizontal" or "vertical".')}var s="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol?"symbol":typeof t},r=i(1),a=(i(17),i(2)),h=i(21),d=i(22);o.prototype=new h,o.prototype.setOptions=function(t){if(t){var e=["direction","min","max","zoomMin","zoomMax","moveable","zoomable","moment","activate","hiddenDates","zoomKey","rtl"];r.selectiveExtend(e,this.options,t),("start"in t||"end"in t)&&this.setRange(t.start,t.end)}},o.prototype.setRange=function(t,e,i,o){o!==!0&&(o=!1);var n=void 0!=t?r.convert(t,"Date").valueOf():null,a=void 0!=e?r.convert(e,"Date").valueOf():null;if(this._cancelAnimation(),i){var h=this,l=this.start,u=this.end,p="object"===("undefined"==typeof i?"undefined":s(i))&&"duration"in i?i.duration:500,c="object"===("undefined"==typeof i?"undefined":s(i))&&"easingFunction"in i?i.easingFunction:"easeInOutQuad",m=r.easingFunctions[c];if(!m)throw new Error("Unknown easing function "+JSON.stringify(c)+". Choose from: "+Object.keys(r.easingFunctions).join(", "));var f=(new Date).valueOf(),g=!1,v=function _(){if(!h.props.touch.dragging){var t=(new Date).valueOf(),e=t-f,i=m(e/p),s=e>p,r=s||null===n?n:l+(n-l)*i,c=s||null===a?a:u+(a-u)*i;y=h._applyRange(r,c),d.updateHiddenDates(h.options.moment,h.body,h.options.hiddenDates),g=g||y,y&&h.body.emitter.emit("rangechange",{start:new Date(h.start),end:new Date(h.end),byUser:o}),s?g&&h.body.emitter.emit("rangechanged",{start:new Date(h.start),end:new Date(h.end),byUser:o}):h.animationTimer=setTimeout(_,20)}};return v()}var y=this._applyRange(n,a);if(d.updateHiddenDates(this.options.moment,this.body,this.options.hiddenDates),y){var b={start:new Date(this.start),end:new Date(this.end),byUser:o};this.body.emitter.emit("rangechange",b),this.body.emitter.emit("rangechanged",b)}},o.prototype._cancelAnimation=function(){this.animationTimer&&(clearTimeout(this.animationTimer),this.animationTimer=null)},o.prototype._applyRange=function(t,e){var i,o=null!=t?r.convert(t,"Date").valueOf():this.start,n=null!=e?r.convert(e,"Date").valueOf():this.end,s=null!=this.options.max?r.convert(this.options.max,"Date").valueOf():null,a=null!=this.options.min?r.convert(this.options.min,"Date").valueOf():null;if(isNaN(o)||null===o)throw new Error('Invalid start "'+t+'"');if(isNaN(n)||null===n)throw new Error('Invalid end "'+e+'"');if(o>n&&(n=o),null!==a&&a>o&&(i=a-o,o+=i,n+=i,null!=s&&n>s&&(n=s)),null!==s&&n>s&&(i=n-s,o-=i,n-=i,null!=a&&a>o&&(o=a)),null!==this.options.zoomMin){var h=parseFloat(this.options.zoomMin);0>h&&(h=0),h>n-o&&(this.end-this.start===h&&o>this.start&&nd&&(d=0),n-o>d&&(this.end-this.start===d&&othis.end?(o=this.start,n=this.end):(i=n-o-d,o+=i/2,n-=i/2))}var l=this.start!=o||this.end!=n;return o>=this.start&&o<=this.end||n>=this.start&&n<=this.end||this.start>=o&&this.start<=n||this.end>=o&&this.end<=n||this.body.emitter.emit("checkRangedItems"),this.start=o,this.end=n,l},o.prototype.getRange=function(){return{start:this.start,end:this.end}},o.prototype.conversion=function(t,e){return o.conversion(this.start,this.end,t,e)},o.conversion=function(t,e,i,o){return void 0===o&&(o=0),0!=i&&e-t!=0?{offset:t,scale:i/(e-t-o)}:{offset:0,scale:1}},o.prototype._onDragStart=function(t){this.deltaDifference=0,this.previousDelta=0,this.options.moveable&&this._isInsideRange(t)&&this.props.touch.allowDragging&&(this.props.touch.start=this.start,this.props.touch.end=this.end,this.props.touch.dragging=!0,this.body.dom.root&&(this.body.dom.root.style.cursor="move"))},o.prototype._onDrag=function(t){if(this.props.touch.dragging&&this.options.moveable&&this.props.touch.allowDragging){var e=this.options.direction;n(e);var i="horizontal"==e?t.deltaX:t.deltaY;i-=this.deltaDifference;var o=this.props.touch.end-this.props.touch.start,s=d.getHiddenDurationBetween(this.body.hiddenDates,this.start,this.end);o-=s;var r="horizontal"==e?this.body.domProps.center.width:this.body.domProps.center.height;if(this.options.rtl)var a=i/r*o;else var a=-i/r*o;var h=this.props.touch.start+a,l=this.props.touch.end+a,u=d.snapAwayFromHidden(this.body.hiddenDates,h,this.previousDelta-i,!0),p=d.snapAwayFromHidden(this.body.hiddenDates,l,this.previousDelta-i,!0);if(u!=h||p!=l)return this.deltaDifference+=i,this.props.touch.start=u,this.props.touch.end=p,void this._onDrag(t);this.previousDelta=i,this._applyRange(h,l);var c=new Date(this.start),m=new Date(this.end);this.body.emitter.emit("rangechange",{start:c,end:m,byUser:!0})}},o.prototype._onDragEnd=function(t){this.props.touch.dragging&&this.options.moveable&&this.props.touch.allowDragging&&(this.props.touch.dragging=!1,this.body.dom.root&&(this.body.dom.root.style.cursor="auto"),this.body.emitter.emit("rangechanged",{start:new Date(this.start),end:new Date(this.end),byUser:!0}))},o.prototype._onMouseWheel=function(t){if(this.options.zoomable&&this.options.moveable&&this._isInsideRange(t)&&(!this.options.zoomKey||t[this.options.zoomKey])){var e=0;if(t.wheelDelta?e=t.wheelDelta/120:t.detail&&(e=-t.detail/3),e){var i;i=0>e?1-e/5:1/(1+e/5);var o=this.getPointer({x:t.clientX,y:t.clientY},this.body.dom.center),n=this._pointerToDate(o);this.zoom(i,n,e)}t.preventDefault()}},o.prototype._onTouch=function(t){this.props.touch.start=this.start,this.props.touch.end=this.end, +this.props.touch.allowDragging=!0,this.props.touch.center=null,this.scaleOffset=0,this.deltaDifference=0},o.prototype._onPinch=function(t){if(this.options.zoomable&&this.options.moveable){this.props.touch.allowDragging=!1,this.props.touch.center||(this.props.touch.center=this.getPointer(t.center,this.body.dom.center));var e=1/(t.scale+this.scaleOffset),i=this._pointerToDate(this.props.touch.center),o=d.getHiddenDurationBetween(this.body.hiddenDates,this.start,this.end),n=d.getHiddenDurationBefore(this.options.moment,this.body.hiddenDates,this,i),s=o-n,r=i-n+(this.props.touch.start-(i-n))*e,a=i+s+(this.props.touch.end-(i+s))*e;this.startToFront=0>=1-e,this.endToFront=0>=e-1;var h=d.snapAwayFromHidden(this.body.hiddenDates,r,1-e,!0),l=d.snapAwayFromHidden(this.body.hiddenDates,a,e-1,!0);h==r&&l==a||(this.props.touch.start=h,this.props.touch.end=l,this.scaleOffset=1-t.scale,r=h,a=l),this.setRange(r,a,!1,!0),this.startToFront=!1,this.endToFront=!0}},o.prototype._isInsideRange=function(t){var e=t.center?t.center.x:t.clientX;if(this.options.rtl)var i=e-r.getAbsoluteLeft(this.body.dom.centerContainer);else var i=r.getAbsoluteRight(this.body.dom.centerContainer)-e;var o=this.body.util.toTime(i);return o>=this.start&&o<=this.end},o.prototype._pointerToDate=function(t){var e,i=this.options.direction;if(n(i),"horizontal"==i)return this.body.util.toTime(t.x).valueOf();var o=this.body.domProps.center.height;return e=this.conversion(o),t.y/e.scale+e.offset},o.prototype.getPointer=function(t,e){return this.options.rtl?{x:r.getAbsoluteRight(e)-t.x,y:t.y-r.getAbsoluteTop(e)}:{x:t.x-r.getAbsoluteLeft(e),y:t.y-r.getAbsoluteTop(e)}},o.prototype.zoom=function(t,e,i){null==e&&(e=(this.start+this.end)/2);var o=d.getHiddenDurationBetween(this.body.hiddenDates,this.start,this.end),n=d.getHiddenDurationBefore(this.options.moment,this.body.hiddenDates,this,e),s=o-n,r=e-n+(this.start-(e-n))*t,a=e+s+(this.end-(e+s))*t;this.startToFront=!(i>0),this.endToFront=!(-i>0);var h=d.snapAwayFromHidden(this.body.hiddenDates,r,i,!0),l=d.snapAwayFromHidden(this.body.hiddenDates,a,-i,!0);h==r&&l==a||(r=h,a=l),this.setRange(r,a,!1,!0),this.startToFront=!1,this.endToFront=!0},o.prototype.move=function(t){var e=this.end-this.start,i=this.start+e*t,o=this.end+e*t;this.start=i,this.end=o},o.prototype.moveTo=function(t){var e=(this.start+this.end)/2,i=e-t,o=this.start-i,n=this.end-i;this.setRange(o,n)},t.exports=o},function(t,e){function i(t,e){this.options=null,this.props=null}i.prototype.setOptions=function(t){t&&util.extend(this.options,t)},i.prototype.redraw=function(){return!1},i.prototype.destroy=function(){},i.prototype._isResized=function(){var t=this.props._previousWidth!==this.props.width||this.props._previousHeight!==this.props.height;return this.props._previousWidth=this.props.width,this.props._previousHeight=this.props.height,t},t.exports=i},function(t,e){e.convertHiddenOptions=function(t,i,o){if(o&&!Array.isArray(o))return e.convertHiddenOptions(t,i,[o]);if(i.hiddenDates=[],o&&1==Array.isArray(o)){for(var n=0;n=4*a){var p=0,c=s.clone();switch(o[h].repeat){case"daily":d.day()!=l.day()&&(p=1),d.dayOfYear(n.dayOfYear()),d.year(n.year()),d.subtract(7,"days"),l.dayOfYear(n.dayOfYear()),l.year(n.year()),l.subtract(7-p,"days"),c.add(1,"weeks");break;case"weekly":var m=l.diff(d,"days"),f=d.day();d.date(n.date()),d.month(n.month()),d.year(n.year()),l=d.clone(),d.day(f),l.day(f),l.add(m,"days"),d.subtract(1,"weeks"),l.subtract(1,"weeks"),c.add(1,"weeks");break;case"monthly":d.month()!=l.month()&&(p=1),d.month(n.month()),d.year(n.year()),d.subtract(1,"months"),l.month(n.month()),l.year(n.year()),l.subtract(1,"months"),l.add(p,"months"),c.add(1,"months");break;case"yearly":d.year()!=l.year()&&(p=1),d.year(n.year()),d.subtract(1,"years"),l.year(n.year()),l.subtract(1,"years"),l.add(p,"years"),c.add(1,"years");break;default:return void console.log("Wrong repeat format, allowed are: daily, weekly, monthly, yearly. Given:",o[h].repeat)}for(;c>d;)switch(i.hiddenDates.push({start:d.valueOf(),end:l.valueOf()}),o[h].repeat){case"daily":d.add(1,"days"),l.add(1,"days");break;case"weekly":d.add(1,"weeks"),l.add(1,"weeks");break;case"monthly":d.add(1,"months"),l.add(1,"months");break;case"yearly":d.add(1,"y"),l.add(1,"y");break;default:return void console.log("Wrong repeat format, allowed are: daily, weekly, monthly, yearly. Given:",o[h].repeat)}i.hiddenDates.push({start:d.valueOf(),end:l.valueOf()})}}e.removeDuplicates(i);var g=e.isHidden(i.range.start,i.hiddenDates),v=e.isHidden(i.range.end,i.hiddenDates),y=i.range.start,b=i.range.end;1==g.hidden&&(y=1==i.range.startToFront?g.startDate-1:g.endDate+1),1==v.hidden&&(b=1==i.range.endToFront?v.startDate-1:v.endDate+1),1!=g.hidden&&1!=v.hidden||i.range._applyRange(y,b)}},e.removeDuplicates=function(t){for(var e=t.hiddenDates,i=[],o=0;o=e[o].start&&e[n].end<=e[o].end?e[n].remove=!0:e[n].start>=e[o].start&&e[n].start<=e[o].end?(e[o].end=e[n].end,e[n].remove=!0):e[n].end>=e[o].start&&e[n].end<=e[o].end&&(e[o].start=e[n].start,e[n].remove=!0));for(var o=0;o=r&&a>n){o=!0;break}}if(1==o&&n=e&&i>r&&(o+=r-s)}return o},e.correctTimeForHidden=function(t,i,o,n){return n=t(n).toDate().valueOf(),n-=e.getHiddenDurationBefore(t,i,o,n)},e.getHiddenDurationBefore=function(t,e,i,o){var n=0;o=t(o).toDate().valueOf();for(var s=0;s=i.start&&a=a&&(n+=a-r)}return n},e.getAccumulatedHiddenDuration=function(t,e,i){for(var o=0,n=0,s=e.start,r=0;r=e.start&&h=i)break;o+=h-a}}return o},e.snapAwayFromHidden=function(t,i,o,n){var s=e.isHidden(i,t);return 1==s.hidden?0>o?1==n?s.startDate-(s.endDate-i)-1:s.startDate-1:1==n?s.endDate+(i-s.startDate)+1:s.endDate+1:i},e.isHidden=function(t,e){for(var i=0;i=o&&n>t)return{hidden:!0,startDate:o,endDate:n}}return{hidden:!1,startDate:o,endDate:n}}},function(t,e,i){function o(){}var n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol?"symbol":typeof t},s=i(19),r=i(14),a=i(17),h=i(1),d=(i(8),i(10),i(20),i(24),i(34)),l=i(35),u=i(22),p=i(37);s(o.prototype),o.prototype._create=function(t){function e(t){i.isActive()&&i.emit("mousewheel",t)}this.dom={},this.dom.container=t,this.dom.root=document.createElement("div"),this.dom.background=document.createElement("div"),this.dom.backgroundVertical=document.createElement("div"),this.dom.backgroundHorizontal=document.createElement("div"),this.dom.centerContainer=document.createElement("div"),this.dom.leftContainer=document.createElement("div"),this.dom.rightContainer=document.createElement("div"),this.dom.center=document.createElement("div"),this.dom.left=document.createElement("div"),this.dom.right=document.createElement("div"),this.dom.top=document.createElement("div"),this.dom.bottom=document.createElement("div"),this.dom.shadowTop=document.createElement("div"),this.dom.shadowBottom=document.createElement("div"),this.dom.shadowTopLeft=document.createElement("div"),this.dom.shadowBottomLeft=document.createElement("div"),this.dom.shadowTopRight=document.createElement("div"),this.dom.shadowBottomRight=document.createElement("div"),this.dom.root.className="vis-timeline",this.dom.background.className="vis-panel vis-background",this.dom.backgroundVertical.className="vis-panel vis-background vis-vertical",this.dom.backgroundHorizontal.className="vis-panel vis-background vis-horizontal",this.dom.centerContainer.className="vis-panel vis-center",this.dom.leftContainer.className="vis-panel vis-left",this.dom.rightContainer.className="vis-panel vis-right",this.dom.top.className="vis-panel vis-top",this.dom.bottom.className="vis-panel vis-bottom",this.dom.left.className="vis-content",this.dom.center.className="vis-content",this.dom.right.className="vis-content",this.dom.shadowTop.className="vis-shadow vis-top",this.dom.shadowBottom.className="vis-shadow vis-bottom",this.dom.shadowTopLeft.className="vis-shadow vis-top",this.dom.shadowBottomLeft.className="vis-shadow vis-bottom",this.dom.shadowTopRight.className="vis-shadow vis-top",this.dom.shadowBottomRight.className="vis-shadow vis-bottom",this.dom.root.appendChild(this.dom.background),this.dom.root.appendChild(this.dom.backgroundVertical),this.dom.root.appendChild(this.dom.backgroundHorizontal),this.dom.root.appendChild(this.dom.centerContainer),this.dom.root.appendChild(this.dom.leftContainer),this.dom.root.appendChild(this.dom.rightContainer),this.dom.root.appendChild(this.dom.top),this.dom.root.appendChild(this.dom.bottom),this.dom.centerContainer.appendChild(this.dom.center),this.dom.leftContainer.appendChild(this.dom.left),this.dom.rightContainer.appendChild(this.dom.right),this.dom.centerContainer.appendChild(this.dom.shadowTop),this.dom.centerContainer.appendChild(this.dom.shadowBottom),this.dom.leftContainer.appendChild(this.dom.shadowTopLeft),this.dom.leftContainer.appendChild(this.dom.shadowBottomLeft),this.dom.rightContainer.appendChild(this.dom.shadowTopRight),this.dom.rightContainer.appendChild(this.dom.shadowBottomRight),this.on("rangechange",function(){this.initialDrawDone===!0&&this._redraw()}.bind(this)),this.on("touch",this._onTouch.bind(this)),this.on("pan",this._onDrag.bind(this));var i=this;this.on("_change",function(t){t&&1==t.queue?i._redrawTimer||(i._redrawTimer=setTimeout(function(){i._redrawTimer=null,i._redraw()},0)):i._redraw()}),this.hammer=new r(this.dom.root);var o=this.hammer.get("pinch").set({enable:!0});a.disablePreventDefaultVertically(o),this.hammer.get("pan").set({threshold:5,direction:r.DIRECTION_HORIZONTAL}),this.listeners={};var n=["tap","doubletap","press","pinch","pan","panstart","panmove","panend"];if(n.forEach(function(t){var e=function(e){i.isActive()&&i.emit(t,e)};i.hammer.on(t,e),i.listeners[t]=e}),a.onTouch(this.hammer,function(t){i.emit("touch",t)}.bind(this)),a.onRelease(this.hammer,function(t){i.emit("release",t)}.bind(this)),this.dom.root.addEventListener("mousewheel",e),this.dom.root.addEventListener("DOMMouseScroll",e),this.props={root:{},background:{},centerContainer:{},leftContainer:{},rightContainer:{},center:{},left:{},right:{},top:{},bottom:{},border:{},scrollTop:0,scrollTopMin:0},this.customTimes=[],this.touch={},this.redrawCount=0,this.initialDrawDone=!1,!t)throw new Error("No container provided");t.appendChild(this.dom.root)},o.prototype.setOptions=function(t){if(t){var e=["width","height","minHeight","maxHeight","autoResize","start","end","clickToUse","dataAttributes","hiddenDates","locale","locales","moment","rtl","throttleRedraw"];if(h.selectiveExtend(e,this.options,t),this.options.rtl){var i=this.dom.leftContainer;this.dom.leftContainer=this.dom.rightContainer,this.dom.rightContainer=i,this.dom.container.style.direction="rtl",this.dom.backgroundVertical.className="vis-panel vis-background vis-vertical-rtl"}if(this.options.orientation={item:void 0,axis:void 0},"orientation"in t&&("string"==typeof t.orientation?this.options.orientation={item:t.orientation,axis:t.orientation}:"object"===n(t.orientation)&&("item"in t.orientation&&(this.options.orientation.item=t.orientation.item),"axis"in t.orientation&&(this.options.orientation.axis=t.orientation.axis))),"both"===this.options.orientation.axis){if(!this.timeAxis2){var o=this.timeAxis2=new d(this.body);o.setOptions=function(t){var e=t?h.extend({},t):{};e.orientation="top",d.prototype.setOptions.call(o,e)},this.components.push(o)}}else if(this.timeAxis2){var s=this.components.indexOf(this.timeAxis2);-1!==s&&this.components.splice(s,1),this.timeAxis2.destroy(),this.timeAxis2=null}if("function"==typeof t.drawPoints&&(t.drawPoints={onRender:t.drawPoints}),"hiddenDates"in this.options&&u.convertHiddenOptions(this.options.moment,this.body,this.options.hiddenDates),"clickToUse"in t&&(t.clickToUse?this.activator||(this.activator=new l(this.dom.root)):this.activator&&(this.activator.destroy(),delete this.activator)),"showCustomTime"in t)throw new Error("Option `showCustomTime` is deprecated. Create a custom time bar via timeline.addCustomTime(time [, id])");this._initAutoResize()}if(this.components.forEach(function(e){return e.setOptions(t)}),"configure"in t){this.configurator||(this.configurator=this._createConfigurator()),this.configurator.setOptions(t.configure);var r=h.deepExtend({},this.options);this.components.forEach(function(t){h.deepExtend(r,t.options)}),this.configurator.setModuleOptions({global:r})}this._origRedraw?this._redraw():(this._origRedraw=this._redraw.bind(this),this._redraw=h.throttle(this._origRedraw,this.options.throttleRedraw))},o.prototype.isActive=function(){return!this.activator||this.activator.active},o.prototype.destroy=function(){this.setItems(null),this.setGroups(null),this.off(),this._stopAutoResize(),this.dom.root.parentNode&&this.dom.root.parentNode.removeChild(this.dom.root),this.dom=null,this.activator&&(this.activator.destroy(),delete this.activator);for(var t in this.listeners)this.listeners.hasOwnProperty(t)&&delete this.listeners[t];this.listeners=null,this.hammer=null,this.components.forEach(function(t){return t.destroy()}),this.body=null},o.prototype.setCustomTime=function(t,e){var i=this.customTimes.filter(function(t){return e===t.options.id});if(0===i.length)throw new Error("No custom time bar found with id "+JSON.stringify(e));i.length>0&&i[0].setCustomTime(t)},o.prototype.getCustomTime=function(t){var e=this.customTimes.filter(function(e){return e.options.id===t});if(0===e.length)throw new Error("No custom time bar found with id "+JSON.stringify(t));return e[0].getCustomTime()},o.prototype.setCustomTimeTitle=function(t,e){var i=this.customTimes.filter(function(t){return t.options.id===e});if(0===i.length)throw new Error("No custom time bar found with id "+JSON.stringify(e));return i.length>0?i[0].setCustomTitle(t):void 0},o.prototype.getEventProperties=function(t){return{event:t}},o.prototype.addCustomTime=function(t,e){var i=void 0!==t?h.convert(t,"Date").valueOf():new Date,o=this.customTimes.some(function(t){return t.options.id===e});if(o)throw new Error("A custom time with id "+JSON.stringify(e)+" already exists");var n=new p(this.body,h.extend({},this.options,{time:i,id:e}));return this.customTimes.push(n),this.components.push(n),this._redraw(),e},o.prototype.removeCustomTime=function(t){var e=this.customTimes.filter(function(e){return e.options.id===t});if(0===e.length)throw new Error("No custom time bar found with id "+JSON.stringify(t));e.forEach(function(t){this.customTimes.splice(this.customTimes.indexOf(t),1),this.components.splice(this.components.indexOf(t),1),t.destroy()}.bind(this))},o.prototype.getVisibleItems=function(){return this.itemSet&&this.itemSet.getVisibleItems()||[]},o.prototype.fit=function(t){var e=this.getDataRange();if(null!==e.min||null!==e.max){var i=e.max-e.min,o=new Date(e.min.valueOf()-.01*i),n=new Date(e.max.valueOf()+.01*i),s=t&&void 0!==t.animation?t.animation:!0;this.range.setRange(o,n,s)}},o.prototype.getDataRange=function(){throw new Error("Cannot invoke abstract method getDataRange")},o.prototype.setWindow=function(t,e,i){var o;if(1==arguments.length){var n=arguments[0];o=void 0!==n.animation?n.animation:!0,this.range.setRange(n.start,n.end,o)}else o=i&&void 0!==i.animation?i.animation:!0,this.range.setRange(t,e,o)},o.prototype.moveTo=function(t,e){var i=this.range.end-this.range.start,o=h.convert(t,"Date").valueOf(),n=o-i/2,s=o+i/2,r=e&&void 0!==e.animation?e.animation:!0;this.range.setRange(n,s,r)},o.prototype.getWindow=function(){var t=this.range.getRange();return{start:new Date(t.start),end:new Date(t.end)}},o.prototype.redraw=function(){this._redraw()},o.prototype._redraw=function(){this.redrawCount++;var t=!1,e=this.options,i=this.props,o=this.dom;if(o&&o.container&&0!=o.root.clientWidth){u.updateHiddenDates(this.options.moment,this.body,this.options.hiddenDates),"top"==e.orientation?(h.addClassName(o.root,"vis-top"),h.removeClassName(o.root,"vis-bottom")):(h.removeClassName(o.root,"vis-top"),h.addClassName(o.root,"vis-bottom")),o.root.style.maxHeight=h.option.asSize(e.maxHeight,""),o.root.style.minHeight=h.option.asSize(e.minHeight,""),o.root.style.width=h.option.asSize(e.width,""),i.border.left=(o.centerContainer.offsetWidth-o.centerContainer.clientWidth)/2,i.border.right=i.border.left,i.border.top=(o.centerContainer.offsetHeight-o.centerContainer.clientHeight)/2,i.border.bottom=i.border.top;var n=o.root.offsetHeight-o.root.clientHeight,s=o.root.offsetWidth-o.root.clientWidth;0===o.centerContainer.clientHeight&&(i.border.left=i.border.top,i.border.right=i.border.left),0===o.root.clientHeight&&(s=n),i.center.height=o.center.offsetHeight,i.left.height=o.left.offsetHeight,i.right.height=o.right.offsetHeight,i.top.height=o.top.clientHeight||-i.border.top,i.bottom.height=o.bottom.clientHeight||-i.border.bottom;var a=Math.max(i.left.height,i.center.height,i.right.height),d=i.top.height+a+i.bottom.height+n+i.border.top+i.border.bottom;o.root.style.height=h.option.asSize(e.height,d+"px"),i.root.height=o.root.offsetHeight,i.background.height=i.root.height-n;var l=i.root.height-i.top.height-i.bottom.height-n;i.centerContainer.height=l,i.leftContainer.height=l,i.rightContainer.height=i.leftContainer.height,i.root.width=o.root.offsetWidth,i.background.width=i.root.width-s,i.left.width=o.leftContainer.clientWidth||-i.border.left,i.leftContainer.width=i.left.width,i.right.width=o.rightContainer.clientWidth||-i.border.right,i.rightContainer.width=i.right.width;var p=i.root.width-i.left.width-i.right.width-s;i.center.width=p,i.centerContainer.width=p,i.top.width=p,i.bottom.width=p,o.background.style.height=i.background.height+"px",o.backgroundVertical.style.height=i.background.height+"px",o.backgroundHorizontal.style.height=i.centerContainer.height+"px",o.centerContainer.style.height=i.centerContainer.height+"px",o.leftContainer.style.height=i.leftContainer.height+"px",o.rightContainer.style.height=i.rightContainer.height+"px",o.background.style.width=i.background.width+"px",o.backgroundVertical.style.width=i.centerContainer.width+"px",o.backgroundHorizontal.style.width=i.background.width+"px",o.centerContainer.style.width=i.center.width+"px",o.top.style.width=i.top.width+"px",o.bottom.style.width=i.bottom.width+"px",o.background.style.left="0",o.background.style.top="0",o.backgroundVertical.style.left=i.left.width+i.border.left+"px",o.backgroundVertical.style.top="0",o.backgroundHorizontal.style.left="0",o.backgroundHorizontal.style.top=i.top.height+"px",o.centerContainer.style.left=i.left.width+"px",o.centerContainer.style.top=i.top.height+"px",o.leftContainer.style.left="0",o.leftContainer.style.top=i.top.height+"px",o.rightContainer.style.left=i.left.width+i.center.width+"px",o.rightContainer.style.top=i.top.height+"px",o.top.style.left=i.left.width+"px",o.top.style.top="0",o.bottom.style.left=i.left.width+"px",o.bottom.style.top=i.top.height+i.centerContainer.height+"px",this._updateScrollTop();var c=this.props.scrollTop;"top"!=e.orientation.item&&(c+=Math.max(this.props.centerContainer.height-this.props.center.height-this.props.border.top-this.props.border.bottom,0)),o.center.style.left="0",o.center.style.top=c+"px",o.left.style.left="0",o.left.style.top=c+"px",o.right.style.left="0",o.right.style.top=c+"px";var m=0==this.props.scrollTop?"hidden":"",f=this.props.scrollTop==this.props.scrollTopMin?"hidden":"";o.shadowTop.style.visibility=m,o.shadowBottom.style.visibility=f,o.shadowTopLeft.style.visibility=m,o.shadowBottomLeft.style.visibility=f,o.shadowTopRight.style.visibility=m,o.shadowBottomRight.style.visibility=f;var g=this.props.center.height>this.props.centerContainer.height;this.hammer.get("pan").set({direction:g?r.DIRECTION_ALL:r.DIRECTION_HORIZONTAL}),this.components.forEach(function(e){t=e.redraw()||t});var v=5;if(t){if(this.redrawCount0&&(this.props.scrollTop=0),this.props.scrollTope;e++)o=this.selection[e],n=this.items[o],n&&n.unselect();for(this.selection=[],e=0,i=t.length;i>e;e++)o=t[e],n=this.items[o],n&&(this.selection.push(o),n.select())},o.prototype.getSelection=function(){return this.selection.concat([])},o.prototype.getVisibleItems=function(){var t=this.body.range.getRange();if(this.options.rtl)var e=this.body.util.toScreen(t.start),i=this.body.util.toScreen(t.end);else var i=this.body.util.toScreen(t.start),e=this.body.util.toScreen(t.end);var o=[];for(var n in this.groups)if(this.groups.hasOwnProperty(n))for(var s=this.groups[n],r=s.visibleItems,a=0;ae&&o.push(h.id):h.lefti&&o.push(h.id)}return o},o.prototype._deselect=function(t){ +for(var e=this.selection,i=0,o=e.length;o>i;i++)if(e[i]==t){e.splice(i,1);break}},o.prototype.redraw=function(){var t=this.options.margin,e=this.body.range,i=r.option.asSize,o=this.options,n=o.orientation.item,s=!1,a=this.dom.frame;this.props.top=this.body.domProps.top.height+this.body.domProps.border.top,this.options.rtl?this.props.right=this.body.domProps.right.width+this.body.domProps.border.right:this.props.left=this.body.domProps.left.width+this.body.domProps.border.left,a.className="vis-itemset",s=this._orderGroups()||s;var h=e.end-e.start,d=h!=this.lastVisibleInterval||this.props.width!=this.props.lastWidth;d&&(this.stackDirty=!0),this.lastVisibleInterval=h,this.props.lastWidth=this.props.width;var l=this.stackDirty,u=this._firstGroup(),p={item:t.item,axis:t.axis},c={item:t.item,axis:t.item.vertical/2},m=0,f=t.axis+t.item.vertical;return this.groups[y].redraw(e,c,l),r.forEach(this.groups,function(t){var i=t==u?p:c,o=t.redraw(e,i,l);s=o||s,m+=t.height}),m=Math.max(m,f),this.stackDirty=!1,a.style.height=i(m),this.props.width=a.offsetWidth,this.props.height=m,this.dom.axis.style.top=i("top"==n?this.body.domProps.top.height+this.body.domProps.border.top:this.body.domProps.top.height+this.body.domProps.centerContainer.height),this.options.rtl?this.dom.axis.style.right="0":this.dom.axis.style.left="0",s=this._isResized()||s},o.prototype._firstGroup=function(){var t="top"==this.options.orientation.item?0:this.groupIds.length-1,e=this.groupIds[t],i=this.groups[e]||this.groups[v];return i||null},o.prototype._updateUngrouped=function(){var t,e,i=this.groups[v];this.groups[y];if(this.groupsData){if(i){i.hide(),delete this.groups[v];for(e in this.items)if(this.items.hasOwnProperty(e)){t=this.items[e],t.parent&&t.parent.remove(t);var o=this._getGroupId(t.data),n=this.groups[o];n&&n.add(t)||t.hide()}}}else if(!i){var s=null,r=null;i=new u(s,r,this),this.groups[v]=i;for(e in this.items)this.items.hasOwnProperty(e)&&(t=this.items[e],i.add(t));i.show()}},o.prototype.getLabelSet=function(){return this.dom.labelSet},o.prototype.setItems=function(t){var e,i=this,o=this.itemsData;if(t){if(!(t instanceof a||t instanceof h))throw new TypeError("Data must be an instance of DataSet or DataView");this.itemsData=t}else this.itemsData=null;if(o&&(r.forEach(this.itemListeners,function(t,e){o.off(e,t)}),e=o.getIds(),this._onRemove(e)),this.itemsData){var n=this.id;r.forEach(this.itemListeners,function(t,e){i.itemsData.on(e,t,n)}),e=this.itemsData.getIds(),this._onAdd(e),this._updateUngrouped()}this.body.emitter.emit("_change",{queue:!0})},o.prototype.getItems=function(){return this.itemsData},o.prototype.setGroups=function(t){var e,i=this;if(this.groupsData&&(r.forEach(this.groupListeners,function(t,e){i.groupsData.off(e,t)}),e=this.groupsData.getIds(),this.groupsData=null,this._onRemoveGroups(e)),t){if(!(t instanceof a||t instanceof h))throw new TypeError("Data must be an instance of DataSet or DataView");this.groupsData=t}else this.groupsData=null;if(this.groupsData){var o=this.id;r.forEach(this.groupListeners,function(t,e){i.groupsData.on(e,t,o)}),e=this.groupsData.getIds(),this._onAddGroups(e)}this._updateUngrouped(),this._order(),this.body.emitter.emit("_change",{queue:!0})},o.prototype.getGroups=function(){return this.groupsData},o.prototype.removeItem=function(t){var e=this.itemsData.get(t),i=this.itemsData.getDataSet();e&&this.options.onRemove(e,function(e){e&&i.remove(t)})},o.prototype._getType=function(t){return t.type||this.options.type||(t.end?"range":"box")},o.prototype._getGroupId=function(t){var e=this._getType(t);return"background"==e&&void 0==t.group?y:this.groupsData?t.group:v},o.prototype._onUpdate=function(t){var e=this;t.forEach(function(t){var i,n=e.itemsData.get(t,e.itemOptions),s=e.items[t],r=e._getType(n),a=o.types[r];if(s&&(a&&s instanceof a?e._updateItem(s,n):(i=s.selected,e._removeItem(s),s=null)),!s){if(!a)throw"rangeoverflow"==r?new TypeError('Item type "rangeoverflow" is deprecated. Use css styling instead: .vis-item.vis-range .vis-item-content {overflow: visible;}'):new TypeError('Unknown item type "'+r+'"');s=new a(n,e.conversion,e.options),s.id=t,e._addItem(s),i&&(this.selection.push(t),s.select())}}.bind(this)),this._order(),this.stackDirty=!0,this.body.emitter.emit("_change",{queue:!0})},o.prototype._onAdd=o.prototype._onUpdate,o.prototype._onRemove=function(t){var e=0,i=this;t.forEach(function(t){var o=i.items[t];o&&(e++,i._removeItem(o))}),e&&(this._order(),this.stackDirty=!0,this.body.emitter.emit("_change",{queue:!0}))},o.prototype._order=function(){r.forEach(this.groups,function(t){t.order()})},o.prototype._onUpdateGroups=function(t){this._onAddGroups(t)},o.prototype._onAddGroups=function(t){var e=this;t.forEach(function(t){var i=e.groupsData.get(t),o=e.groups[t];if(o)o.setData(i);else{if(t==v||t==y)throw new Error("Illegal group id. "+t+" is a reserved id.");var n=Object.create(e.options);r.extend(n,{height:null}),o=new u(t,i,e),e.groups[t]=o;for(var s in e.items)if(e.items.hasOwnProperty(s)){var a=e.items[s];a.data.group==t&&o.add(a)}o.order(),o.show()}}),this.body.emitter.emit("_change",{queue:!0})},o.prototype._onRemoveGroups=function(t){var e=this.groups;t.forEach(function(t){var i=e[t];i&&(i.hide(),delete e[t])}),this.markDirty(),this.body.emitter.emit("_change",{queue:!0})},o.prototype._orderGroups=function(){if(this.groupsData){var t=this.groupsData.getIds({order:this.options.groupOrder}),e=!r.equalArray(t,this.groupIds);if(e){var i=this.groups;t.forEach(function(t){i[t].hide()}),t.forEach(function(t){i[t].show()}),this.groupIds=t}return e}return!1},o.prototype._addItem=function(t){this.items[t.id]=t;var e=this._getGroupId(t.data),i=this.groups[e];i&&i.add(t)},o.prototype._updateItem=function(t,e){var i=t.data.group,o=t.data.subgroup;if(t.setData(e),i!=t.data.group||o!=t.data.subgroup){var n=this.groups[i];n&&n.remove(t);var s=this._getGroupId(t.data),r=this.groups[s];r&&r.add(t)}},o.prototype._removeItem=function(t){t.hide(),delete this.items[t.id];var e=this.selection.indexOf(t.id);-1!=e&&this.selection.splice(e,1),t.parent&&t.parent.remove(t)},o.prototype._constructByEndArray=function(t){for(var e=[],i=0;in+s)return}else{var a=e.height;if(n+a-s>o)return}}if(e&&e!=this.groupTouchParams.group){var h=this.groupsData,d=h.get(e.groupId),l=h.get(this.groupTouchParams.group.groupId);l&&d&&(this.options.groupOrderSwap(l,d,this.groupsData),this.groupsData.update(l),this.groupsData.update(d));var u=this.groupsData.getIds({order:this.options.groupOrder});if(!r.equalArray(u,this.groupTouchParams.originalOrder))for(var h=this.groupsData,p=this.groupTouchParams.originalOrder,c=this.groupTouchParams.group.groupId,m=Math.min(p.length,u.length),f=0,g=0,v=0;m>f;){for(;m>f+g&&m>f+v&&u[f+g]==p[f+v];)f++;if(f+g>=m)break;if(u[f+g]!=c)if(p[f+v]!=c){var y=u.indexOf(p[f+v]),b=h.get(u[f+g]),_=h.get(p[f+v]);this.options.groupOrderSwap(b,_,h),h.update(b),h.update(_);var w=u[f+g];u[f+g]=p[f+v],u[y]=w,f++}else v=1;else g=1}}}},o.prototype._onGroupDragEnd=function(t){if(this.options.groupEditable.order&&this.groupTouchParams.group){t.stopPropagation();var e=this,i=e.groupTouchParams.group.groupId,o=e.groupsData.getDataSet(),n=r.extend({},o.get(i));e.options.onMoveGroup(n,function(t){if(t)t[o._fieldId]=i,o.update(t);else{var n=o.getIds({order:e.options.groupOrder});if(!r.equalArray(n,e.groupTouchParams.originalOrder))for(var s=e.groupTouchParams.originalOrder,a=Math.min(s.length,n.length),h=0;a>h;){for(;a>h&&n[h]==s[h];)h++;if(h>=a)break;var d=n.indexOf(s[h]),l=o.get(n[h]),u=o.get(s[h]);e.options.groupOrderSwap(l,u,o),groupsData.update(l),groupsData.update(u);var p=n[h];n[h]=s[h],n[d]=p,h++}}}),e.body.emitter.emit("groupDragged",{groupId:i})}},o.prototype._onSelectItem=function(t){if(this.options.selectable){var e=t.srcEvent&&(t.srcEvent.ctrlKey||t.srcEvent.metaKey),i=t.srcEvent&&t.srcEvent.shiftKey;if(e||i)return void this._onMultiSelectItem(t);var o=this.getSelection(),n=this.itemFromTarget(t),s=n?[n.id]:[];this.setSelection(s);var r=this.getSelection();(r.length>0||o.length>0)&&this.body.emitter.emit("select",{items:r,event:t})}},o.prototype._onAddItem=function(t){if(this.options.selectable&&this.options.editable.add){var e=this,i=this.options.snap||null,o=this.itemFromTarget(t);if(o){var n=e.itemsData.get(o.id);this.options.onUpdate(n,function(t){t&&e.itemsData.getDataSet().update(t)})}else{if(this.options.rtl)var s=r.getAbsoluteRight(this.dom.frame),a=s-t.center.x;else var s=r.getAbsoluteLeft(this.dom.frame),a=t.center.x-s;var h=this.body.util.toTime(a),d=this.body.util.getScale(),l=this.body.util.getStep(),u={start:i?i(h,d,l):h,content:"new item"};if("range"===this.options.type){var p=this.body.util.toTime(a+this.props.width/5);u.end=i?i(p,d,l):p}u[this.itemsData._fieldId]=r.randomUUID();var c=this.groupFromTarget(t);c&&(u.group=c.groupId),u=this._cloneItemData(u),this.options.onAdd(u,function(t){t&&e.itemsData.getDataSet().add(t)})}}},o.prototype._onMultiSelectItem=function(t){if(this.options.selectable){var e=this.itemFromTarget(t);if(e){var i=this.options.multiselect?this.getSelection():[],n=t.srcEvent&&t.srcEvent.shiftKey||!1;if(n&&this.options.multiselect){var s=this.itemsData.get(e.id).group,r=void 0;this.options.multiselectPerGroup&&i.length>0&&(r=this.itemsData.get(i[0]).group),this.options.multiselectPerGroup&&void 0!=r&&r!=s||i.push(e.id);var a=o._getItemRange(this.itemsData.get(i,this.itemOptions));if(!this.options.multiselectPerGroup||r==s){i=[];for(var h in this.items)if(this.items.hasOwnProperty(h)){var d=this.items[h],l=d.data.start,u=void 0!==d.data.end?d.data.end:l;!(l>=a.min&&u<=a.max)||this.options.multiselectPerGroup&&r!=this.itemsData.get(d.id).group||d instanceof g||i.push(d.id)}}}else{var p=i.indexOf(e.id);-1==p?i.push(e.id):i.splice(p,1)}this.setSelection(i),this.body.emitter.emit("select",{items:this.getSelection(),event:t})}}},o._getItemRange=function(t){var e=null,i=null;return t.forEach(function(t){(null==i||t.starte)&&(e=t.end):(null==e||t.start>e)&&(e=t.start)}),{min:i,max:e}},o.prototype.itemFromTarget=function(t){for(var e=t.target;e;){if(e.hasOwnProperty("timeline-item"))return e["timeline-item"];e=e.parentNode}return null},o.prototype.groupFromTarget=function(t){for(var e=t.center?t.center.y:t.clientY,i=0;ia&&ea)return n}else if(0===i&&e0?t.step:1,this.autoScale=!1)},o.prototype.setAutoScale=function(t){this.autoScale=t},o.prototype.setMinimumStep=function(t){if(void 0!=t){var e=31104e6,i=2592e6,o=864e5,n=36e5,s=6e4,r=1e3,a=1;1e3*e>t&&(this.scale="year",this.step=1e3),500*e>t&&(this.scale="year",this.step=500),100*e>t&&(this.scale="year",this.step=100),50*e>t&&(this.scale="year",this.step=50),10*e>t&&(this.scale="year",this.step=10),5*e>t&&(this.scale="year",this.step=5),e>t&&(this.scale="year",this.step=1),3*i>t&&(this.scale="month",this.step=3),i>t&&(this.scale="month",this.step=1),5*o>t&&(this.scale="day",this.step=5),2*o>t&&(this.scale="day",this.step=2),o>t&&(this.scale="day",this.step=1),o/2>t&&(this.scale="weekday",this.step=1),4*n>t&&(this.scale="hour",this.step=4),n>t&&(this.scale="hour",this.step=1),15*s>t&&(this.scale="minute",this.step=15),10*s>t&&(this.scale="minute",this.step=10),5*s>t&&(this.scale="minute",this.step=5),s>t&&(this.scale="minute",this.step=1),15*r>t&&(this.scale="second",this.step=15),10*r>t&&(this.scale="second",this.step=10),5*r>t&&(this.scale="second",this.step=5),r>t&&(this.scale="second",this.step=1),200*a>t&&(this.scale="millisecond",this.step=200),100*a>t&&(this.scale="millisecond",this.step=100),50*a>t&&(this.scale="millisecond",this.step=50),10*a>t&&(this.scale="millisecond",this.step=10),5*a>t&&(this.scale="millisecond",this.step=5),a>t&&(this.scale="millisecond",this.step=1)}},o.snap=function(t,e,i){var o=n(t);if("year"==e){var s=o.year()+Math.round(o.month()/12);o.year(Math.round(s/i)*i),o.month(0),o.date(0),o.hours(0),o.minutes(0),o.seconds(0),o.milliseconds(0)}else if("month"==e)o.date()>15?(o.date(1),o.add(1,"month")):o.date(1),o.hours(0),o.minutes(0),o.seconds(0),o.milliseconds(0);else if("day"==e){switch(i){case 5:case 2:o.hours(24*Math.round(o.hours()/24));break;default:o.hours(12*Math.round(o.hours()/12))}o.minutes(0),o.seconds(0),o.milliseconds(0)}else if("weekday"==e){switch(i){case 5:case 2:o.hours(12*Math.round(o.hours()/12));break;default:o.hours(6*Math.round(o.hours()/6))}o.minutes(0),o.seconds(0),o.milliseconds(0)}else if("hour"==e){switch(i){case 4:o.minutes(60*Math.round(o.minutes()/60));break;default:o.minutes(30*Math.round(o.minutes()/30))}o.seconds(0),o.milliseconds(0)}else if("minute"==e){switch(i){case 15:case 10:o.minutes(5*Math.round(o.minutes()/5)),o.seconds(0);break;case 5:o.seconds(60*Math.round(o.seconds()/60));break;default:o.seconds(30*Math.round(o.seconds()/30))}o.milliseconds(0)}else if("second"==e)switch(i){case 15:case 10:o.seconds(5*Math.round(o.seconds()/5)),o.milliseconds(0);break;case 5:o.milliseconds(1e3*Math.round(o.milliseconds()/1e3));break;default:o.milliseconds(500*Math.round(o.milliseconds()/500))}else if("millisecond"==e){var r=i>5?i/2:1;o.milliseconds(Math.round(o.milliseconds()/r)*r)}return o},o.prototype.isMajor=function(){if(1==this.switchedYear)switch(this.switchedYear=!1,this.scale){case"year":case"month":case"weekday":case"day":case"hour":case"minute":case"second":case"millisecond":return!0;default:return!1}else if(1==this.switchedMonth)switch(this.switchedMonth=!1,this.scale){case"weekday":case"day":case"hour":case"minute":case"second":case"millisecond":return!0;default:return!1}else if(1==this.switchedDay)switch(this.switchedDay=!1,this.scale){case"millisecond":case"second":case"minute":case"hour":return!0;default:return!1}var t=this.moment(this.current);switch(this.scale){case"millisecond":return 0==t.milliseconds();case"second":return 0==t.seconds();case"minute":return 0==t.hours()&&0==t.minutes();case"hour":return 0==t.hours();case"weekday":case"day":return 1==t.date();case"month":return 0==t.month();case"year":return!1;default:return!1}},o.prototype.getLabelMinor=function(t){void 0==t&&(t=this.current);var e=this.format.minorLabels[this.scale];return e&&e.length>0?this.moment(t).format(e):""},o.prototype.getLabelMajor=function(t){void 0==t&&(t=this.current);var e=this.format.majorLabels[this.scale];return e&&e.length>0?this.moment(t).format(e):""},o.prototype.getClassName=function(){function t(t){return t/h%2==0?" vis-even":" vis-odd"}function e(t){return t.isSame(new Date,"day")?" vis-today":t.isSame(s().add(1,"day"),"day")?" vis-tomorrow":t.isSame(s().add(-1,"day"),"day")?" vis-yesterday":""}function i(t){return t.isSame(new Date,"week")?" vis-current-week":""}function o(t){return t.isSame(new Date,"month")?" vis-current-month":""}function n(t){return t.isSame(new Date,"year")?" vis-current-year":""}var s=this.moment,r=this.moment(this.current),a=r.locale?r.locale("en"):r.lang("en"),h=this.step;switch(this.scale){case"millisecond":return t(a.milliseconds()).trim();case"second":return t(a.seconds()).trim();case"minute":return t(a.minutes()).trim();case"hour":var d=a.hours();return 4==this.step&&(d=d+"-h"+(d+4)),"vis-h"+d+e(a)+t(a.hours());case"weekday":return"vis-"+a.format("dddd").toLowerCase()+e(a)+i(a)+t(a.date());case"day":var l=a.date(),u=a.format("MMMM").toLowerCase();return"vis-day"+l+" vis-"+u+o(a)+t(l-1);case"month":return"vis-"+a.format("MMMM").toLowerCase()+o(a)+t(a.month());case"year":var p=a.year();return"vis-year"+p+n(a)+t(p);default:return""}},t.exports=o},function(t,e,i){function o(t,e,i){this.groupId=t,this.subgroups={},this.subgroupIndex=0,this.subgroupOrderer=e&&e.subgroupOrder,this.itemSet=i,this.dom={},this.props={label:{width:0,height:0}},this.className=null,this.items={},this.visibleItems=[],this.orderedItems={byStart:[],byEnd:[]},this.checkRangedItems=!1;var o=this;this.itemSet.body.emitter.on("checkRangedItems",function(){o.checkRangedItems=!0}),this._create(),this.setData(e)}var n=i(1),s=i(27);i(28);o.prototype._create=function(){var t=document.createElement("div");this.itemSet.options.groupEditable.order?t.className="vis-label draggable":t.className="vis-label",this.dom.label=t;var e=document.createElement("div");e.className="vis-inner",t.appendChild(e),this.dom.inner=e;var i=document.createElement("div");i.className="vis-group",i["timeline-group"]=this,this.dom.foreground=i,this.dom.background=document.createElement("div"),this.dom.background.className="vis-group",this.dom.axis=document.createElement("div"),this.dom.axis.className="vis-group",this.dom.marker=document.createElement("div"),this.dom.marker.style.visibility="hidden",this.dom.marker.innerHTML="?",this.dom.background.appendChild(this.dom.marker)},o.prototype.setData=function(t){var e;if(e=this.itemSet.options&&this.itemSet.options.groupTemplate?this.itemSet.options.groupTemplate(t):t&&t.content,e instanceof Element){for(this.dom.inner.appendChild(e);this.dom.inner.firstChild;)this.dom.inner.removeChild(this.dom.inner.firstChild);this.dom.inner.appendChild(e)}else void 0!==e&&null!==e?this.dom.inner.innerHTML=e:this.dom.inner.innerHTML=this.groupId||"";this.dom.label.title=t&&t.title||"",this.dom.inner.firstChild?n.removeClassName(this.dom.inner,"vis-hidden"):n.addClassName(this.dom.inner,"vis-hidden");var i=t&&t.className||null;i!=this.className&&(this.className&&(n.removeClassName(this.dom.label,this.className),n.removeClassName(this.dom.foreground,this.className),n.removeClassName(this.dom.background,this.className),n.removeClassName(this.dom.axis,this.className)),n.addClassName(this.dom.label,i),n.addClassName(this.dom.foreground,i),n.addClassName(this.dom.background,i),n.addClassName(this.dom.axis,i),this.className=i),this.style&&(n.removeCssText(this.dom.label,this.style),this.style=null),t&&t.style&&(n.addCssText(this.dom.label,t.style),this.style=t.style)},o.prototype.getLabelWidth=function(){return this.props.label.width},o.prototype.redraw=function(t,e,i){var o=!1,r=this.dom.marker.clientHeight;if(r!=this.lastMarkerHeight&&(this.lastMarkerHeight=r,n.forEach(this.items,function(t){t.dirty=!0,t.displayed&&t.redraw()}),i=!0),this._calculateSubGroupHeights(),"function"==typeof this.itemSet.options.order){if(i){var a=this,h=!1;n.forEach(this.items,function(t){t.displayed||(t.redraw(),a.visibleItems.push(t)),t.repositionX(h)});var d=this.orderedItems.byStart.slice().sort(function(t,e){return a.itemSet.options.order(t.data,e.data)});s.stack(d,e,!0)}this.visibleItems=this._updateVisibleItems(this.orderedItems,this.visibleItems,t)}else this.visibleItems=this._updateVisibleItems(this.orderedItems,this.visibleItems,t),this.itemSet.options.stack?s.stack(this.visibleItems,e,i):s.nostack(this.visibleItems,e,this.subgroups);var l=this._calculateHeight(e),u=this.dom.foreground;this.top=u.offsetTop,this.right=u.offsetLeft,this.width=u.offsetWidth,o=n.updateProperty(this,"height",l)||o,o=n.updateProperty(this.props.label,"width",this.dom.inner.clientWidth)||o,o=n.updateProperty(this.props.label,"height",this.dom.inner.clientHeight)||o,this.dom.background.style.height=l+"px",this.dom.foreground.style.height=l+"px",this.dom.label.style.height=l+"px";for(var p=0,c=this.visibleItems.length;c>p;p++){var m=this.visibleItems[p];m.repositionY(e)}return o},o.prototype._calculateSubGroupHeights=function(){if(Object.keys(this.subgroups).length>0){var t=this;this.resetSubgroups(),n.forEach(this.visibleItems,function(e){void 0!==e.data.subgroup&&(t.subgroups[e.data.subgroup].height=Math.max(t.subgroups[e.data.subgroup].height,e.height),t.subgroups[e.data.subgroup].visible=!0)})}},o.prototype._calculateHeight=function(t){var e,i=this.visibleItems;if(i.length>0){var o=i[0].top,s=i[0].top+i[0].height;if(n.forEach(i,function(t){o=Math.min(o,t.top),s=Math.max(s,t.top+t.height)}),o>t.axis){var r=o-t.axis;s-=r,n.forEach(i,function(t){t.top-=r})}e=s+t.item.vertical/2}else e=0;return e=Math.max(e,this.props.label.height)},o.prototype.show=function(){this.dom.label.parentNode||this.itemSet.dom.labelSet.appendChild(this.dom.label),this.dom.foreground.parentNode||this.itemSet.dom.foreground.appendChild(this.dom.foreground),this.dom.background.parentNode||this.itemSet.dom.background.appendChild(this.dom.background),this.dom.axis.parentNode||this.itemSet.dom.axis.appendChild(this.dom.axis)},o.prototype.hide=function(){var t=this.dom.label;t.parentNode&&t.parentNode.removeChild(t);var e=this.dom.foreground;e.parentNode&&e.parentNode.removeChild(e);var i=this.dom.background;i.parentNode&&i.parentNode.removeChild(i);var o=this.dom.axis;o.parentNode&&o.parentNode.removeChild(o)},o.prototype.add=function(t){if(this.items[t.id]=t,t.setParent(this),void 0!==t.data.subgroup&&(void 0===this.subgroups[t.data.subgroup]&&(this.subgroups[t.data.subgroup]={height:0,visible:!1,index:this.subgroupIndex,items:[]},this.subgroupIndex++),this.subgroups[t.data.subgroup].items.push(t)),this.orderSubgroups(),-1==this.visibleItems.indexOf(t)){var e=this.itemSet.body.range;this._checkIfVisible(t,this.visibleItems,e)}},o.prototype.orderSubgroups=function(){if(void 0!==this.subgroupOrderer){var t=[];if("string"==typeof this.subgroupOrderer){for(var e in this.subgroups)t.push({subgroup:e,sortField:this.subgroups[e].items[0].data[this.subgroupOrderer]});t.sort(function(t,e){return t.sortField-e.sortField})}else if("function"==typeof this.subgroupOrderer){for(var e in this.subgroups)t.push(this.subgroups[e].items[0].data);t.sort(this.subgroupOrderer)}if(t.length>0)for(var i=0;it?-1:l>=t?0:1};if(e.length>0)for(s=0;sl}),1==this.checkRangedItems)for(this.checkRangedItems=!1,s=0;sl})}for(s=0;s=0&&(s=e[r],!n(s));r--)void 0===o[s.id]&&(o[s.id]=!0,i.push(s));for(r=t+1;rn;n++)t[n].top=null;for(n=0,s=t.length;s>n;n++){var r=t[n];if(r.stack&&null===r.top){r.top=i.axis;do{for(var a=null,h=0,d=t.length;d>h;h++){var l=t[h];if(null!==l.top&&l!==r&&l.stack&&e.collision(r,l,i.item,l.options.rtl)){a=l;break}}null!=a&&(r.top=a.top+a.height+i.item.vertical)}while(a)}}},e.nostack=function(t,e,i){var o,n,s;for(o=0,n=t.length;n>o;o++)if(void 0!==t[o].data.subgroup){s=e.axis;for(var r in i)i.hasOwnProperty(r)&&1==i[r].visible&&i[r].indexe.right&&t.top-o.vertical+ie.top:t.left-o.horizontal+ie.left&&t.top-o.vertical+ie.top}},function(t,e,i){function o(t,e,i){if(this.props={content:{width:0}},this.overflow=!1,this.options=i,t){if(void 0==t.start)throw new Error('Property "start" missing in item '+t.id);if(void 0==t.end)throw new Error('Property "end" missing in item '+t.id)}n.call(this,t,e,i)}var n=(i(14),i(29));o.prototype=new n(null,null,null),o.prototype.baseClassName="vis-item vis-range",o.prototype.isVisible=function(t){return this.data.startt.start},o.prototype.redraw=function(){var t=this.dom;if(t||(this.dom={},t=this.dom,t.box=document.createElement("div"),t.frame=document.createElement("div"),t.frame.className="vis-item-overflow",t.box.appendChild(t.frame),t.content=document.createElement("div"),t.content.className="vis-item-content",t.frame.appendChild(t.content),t.box["timeline-item"]=this,this.dirty=!0),!this.parent)throw new Error("Cannot redraw item: no parent attached");if(!t.box.parentNode){var e=this.parent.dom.foreground;if(!e)throw new Error("Cannot redraw item: parent has no foreground container element");e.appendChild(t.box)}if(this.displayed=!0,this.dirty){this._updateContents(this.dom.content),this._updateTitle(this.dom.box),this._updateDataAttributes(this.dom.box),this._updateStyle(this.dom.box);var i=(this.options.editable.updateTime||this.options.editable.updateGroup||this.editable===!0)&&this.editable!==!1,o=(this.data.className?" "+this.data.className:"")+(this.selected?" vis-selected":"")+(i?" vis-editable":" vis-readonly");t.box.className=this.baseClassName+o,this.overflow="hidden"!==window.getComputedStyle(t.frame).overflow,this.dom.content.style.maxWidth="none",this.props.content.width=this.dom.content.offsetWidth,this.height=this.dom.box.offsetHeight,this.dom.content.style.maxWidth="",this.dirty=!1}this._repaintDeleteButton(t.box),this._repaintDragLeft(),this._repaintDragRight()},o.prototype.show=function(){this.displayed||this.redraw()},o.prototype.hide=function(){if(this.displayed){var t=this.dom.box;t.parentNode&&t.parentNode.removeChild(t),this.displayed=!1}},o.prototype.repositionX=function(t){var e,i,o=this.parent.width,n=this.conversion.toScreen(this.data.start),s=this.conversion.toScreen(this.data.end);void 0!==t&&t!==!0||(-o>n&&(n=-o),s>2*o&&(s=2*o));var r=Math.max(s-n,1);switch(this.overflow?(this.options.rtl?this.right=n:this.left=n,this.width=r+this.props.content.width,i=this.props.content.width):(this.options.rtl?this.right=n:this.left=n,this.width=r,i=Math.min(s-n,this.props.content.width)),this.options.rtl?this.dom.box.style.right=this.right+"px":this.dom.box.style.left=this.left+"px",this.dom.box.style.width=r+"px",this.options.align){case"left":this.options.rtl?this.dom.content.style.right="0":this.dom.content.style.left="0";break;case"right":this.options.rtl?this.dom.content.style.right=Math.max(r-i,0)+"px":this.dom.content.style.left=Math.max(r-i,0)+"px";break;case"center":this.options.rtl?this.dom.content.style.right=Math.max((r-i)/2,0)+"px":this.dom.content.style.left=Math.max((r-i)/2,0)+"px";break;default:e=this.overflow?s>0?Math.max(-n,0):-i:0>n?-n:0,this.options.rtl?this.dom.content.style.right=e+"px":this.dom.content.style.left=e+"px"}},o.prototype.repositionY=function(){var t=this.options.orientation.item,e=this.dom.box;"top"==t?e.style.top=this.top+"px":e.style.top=this.parent.height-this.top-this.height+"px"},o.prototype._repaintDragLeft=function(){if(this.selected&&this.options.editable.updateTime&&!this.dom.dragLeft){var t=document.createElement("div");t.className="vis-drag-left",t.dragLeftItem=this,this.dom.box.appendChild(t),this.dom.dragLeft=t}else!this.selected&&this.dom.dragLeft&&(this.dom.dragLeft.parentNode&&this.dom.dragLeft.parentNode.removeChild(this.dom.dragLeft),this.dom.dragLeft=null)},o.prototype._repaintDragRight=function(){if(this.selected&&this.options.editable.updateTime&&!this.dom.dragRight){var t=document.createElement("div");t.className="vis-drag-right",t.dragRightItem=this,this.dom.box.appendChild(t),this.dom.dragRight=t}else!this.selected&&this.dom.dragRight&&(this.dom.dragRight.parentNode&&this.dom.dragRight.parentNode.removeChild(this.dom.dragRight),this.dom.dragRight=null)},t.exports=o},function(t,e,i){function o(t,e,i){this.id=null,this.parent=null,this.data=t,this.dom=null,this.conversion=e||{},this.options=i||{},this.selected=!1,this.displayed=!1,this.dirty=!0,this.top=null,this.right=null,this.left=null,this.width=null,this.height=null,this.editable=null,this.data&&this.data.hasOwnProperty("editable")&&"boolean"==typeof this.data.editable&&(this.editable=t.editable)}var n=i(14),s=i(1);o.prototype.stack=!0,o.prototype.select=function(){this.selected=!0,this.dirty=!0,this.displayed&&this.redraw()},o.prototype.unselect=function(){this.selected=!1,this.dirty=!0,this.displayed&&this.redraw()},o.prototype.setData=function(t){var e=void 0!=t.group&&this.data.group!=t.group;e&&this.parent.itemSet._moveToGroup(this,t.group),t.hasOwnProperty("editable")&&"boolean"==typeof t.editable&&(this.editable=t.editable),this.data=t,this.dirty=!0,this.displayed&&this.redraw()},o.prototype.setParent=function(t){this.displayed?(this.hide(),this.parent=t,this.parent&&this.show()):this.parent=t},o.prototype.isVisible=function(t){return!1},o.prototype.show=function(){return!1},o.prototype.hide=function(){return!1},o.prototype.redraw=function(){},o.prototype.repositionX=function(){},o.prototype.repositionY=function(){},o.prototype._repaintDeleteButton=function(t){var e=(this.options.editable.remove||this.data.editable===!0)&&this.data.editable!==!1;if(this.selected&&e&&!this.dom.deleteButton){var i=this,o=document.createElement("div");this.options.rtl?o.className="vis-delete-rtl":o.className="vis-delete",o.title="Delete this item",new n(o).on("tap",function(t){t.stopPropagation(),i.parent.removeFromDataSet(i)}),t.appendChild(o),this.dom.deleteButton=o}else!this.selected&&this.dom.deleteButton&&(this.dom.deleteButton.parentNode&&this.dom.deleteButton.parentNode.removeChild(this.dom.deleteButton),this.dom.deleteButton=null)},o.prototype._updateContents=function(t){var e;if(this.options.template){var i=this.parent.itemSet.itemsData.get(this.id);e=this.options.template(i)}else e=this.data.content;var o=this._contentToString(this.content)!==this._contentToString(e);if(o){if(e instanceof Element)t.innerHTML="",t.appendChild(e);else if(void 0!=e)t.innerHTML=e;else if("background"!=this.data.type||void 0!==this.data.content)throw new Error('Property "content" missing in item '+this.id);this.content=e}},o.prototype._updateTitle=function(t){null!=this.data.title?t.title=this.data.title||"":t.removeAttribute("vis-title")},o.prototype._updateDataAttributes=function(t){if(this.options.dataAttributes&&this.options.dataAttributes.length>0){var e=[];if(Array.isArray(this.options.dataAttributes))e=this.options.dataAttributes;else{if("all"!=this.options.dataAttributes)return;e=Object.keys(this.data)}for(var i=0;in;n++){var r=this.visibleItems[n];r.repositionY(e)}return o},o.prototype.show=function(){this.dom.background.parentNode||this.itemSet.dom.background.appendChild(this.dom.background)},t.exports=o},function(t,e,i){function o(t,e,i){if(this.props={dot:{width:0,height:0},line:{width:0,height:0}},this.options=i,t&&void 0==t.start)throw new Error('Property "start" missing in item '+t);n.call(this,t,e,i)}var n=i(29);i(1);o.prototype=new n(null,null,null),o.prototype.isVisible=function(t){var e=(t.end-t.start)/4;return this.data.start>t.start-e&&this.data.startt.start-e&&this.data.startt.start},o.prototype.redraw=function(){var t=this.dom;if(t||(this.dom={},t=this.dom,t.box=document.createElement("div"),t.frame=document.createElement("div"),t.frame.className="vis-item-overflow",t.box.appendChild(t.frame),t.content=document.createElement("div"),t.content.className="vis-item-content",t.frame.appendChild(t.content),this.dirty=!0),!this.parent)throw new Error("Cannot redraw item: no parent attached");if(!t.box.parentNode){var e=this.parent.dom.background;if(!e)throw new Error("Cannot redraw item: parent has no background container element");e.appendChild(t.box)}if(this.displayed=!0,this.dirty){this._updateContents(this.dom.content),this._updateTitle(this.dom.content),this._updateDataAttributes(this.dom.content),this._updateStyle(this.dom.box);var i=(this.data.className?" "+this.data.className:"")+(this.selected?" vis-selected":"");t.box.className=this.baseClassName+i,this.overflow="hidden"!==window.getComputedStyle(t.content).overflow,this.props.content.width=this.dom.content.offsetWidth,this.height=0,this.dirty=!1}},o.prototype.show=r.prototype.show,o.prototype.hide=r.prototype.hide,o.prototype.repositionX=r.prototype.repositionX,o.prototype.repositionY=function(t){var e="top"===this.options.orientation.item;this.dom.content.style.top=e?"":"0",this.dom.content.style.bottom=e?"0":"";var i;if(void 0!==this.data.subgroup){var o=this.data.subgroup,n=this.parent.subgroups,r=n[o].index;if(1==e){i=this.parent.subgroups[o].height+t.item.vertical,i+=0==r?t.axis-.5*t.item.vertical:0;var a=this.parent.top;for(var h in n)n.hasOwnProperty(h)&&1==n[h].visible&&n[h].indexr&&(a+=l)}i=this.parent.subgroups[o].height+t.item.vertical,this.dom.box.style.top=this.parent.height-d+a+"px",this.dom.box.style.bottom=""}}else this.parent instanceof s?(i=Math.max(this.parent.height,this.parent.itemSet.body.domProps.center.height,this.parent.itemSet.body.domProps.centerContainer.height),this.dom.box.style.top=e?"0":"",this.dom.box.style.bottom=e?"":"0"):(i=this.parent.height,this.dom.box.style.top=this.parent.top+"px",this.dom.box.style.bottom="");this.dom.box.style.height=i+"px"},t.exports=o},function(t,e,i){function o(t,e){this.dom={foreground:null,lines:[],majorTexts:[],minorTexts:[],redundant:{lines:[],majorTexts:[],minorTexts:[]}},this.props={range:{start:0,end:0,minimumStep:0},lineTop:0},this.defaultOptions={orientation:{axis:"bottom"},showMinorLabels:!0,showMajorLabels:!0,maxMinorChars:7,format:a.FORMAT,moment:d,timeAxis:null},this.options=s.extend({},this.defaultOptions),this.body=t,this._create(),this.setOptions(e)}var n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol?"symbol":typeof t},s=i(1),r=i(21),a=i(25),h=i(22),d=i(2);o.prototype=new r,o.prototype.setOptions=function(t){t&&(s.selectiveExtend(["showMinorLabels","showMajorLabels","maxMinorChars","hiddenDates","timeAxis","moment","rtl"],this.options,t),s.selectiveDeepExtend(["format"],this.options,t),"orientation"in t&&("string"==typeof t.orientation?this.options.orientation.axis=t.orientation:"object"===n(t.orientation)&&"axis"in t.orientation&&(this.options.orientation.axis=t.orientation.axis)),"locale"in t&&("function"==typeof d.locale?d.locale(t.locale):d.lang(t.locale)))},o.prototype._create=function(){this.dom.foreground=document.createElement("div"),this.dom.background=document.createElement("div"),this.dom.foreground.className="vis-time-axis vis-foreground",this.dom.background.className="vis-time-axis vis-background"},o.prototype.destroy=function(){this.dom.foreground.parentNode&&this.dom.foreground.parentNode.removeChild(this.dom.foreground),this.dom.background.parentNode&&this.dom.background.parentNode.removeChild(this.dom.background),this.body=null},o.prototype.redraw=function(){var t=this.props,e=this.dom.foreground,i=this.dom.background,o="top"==this.options.orientation.axis?this.body.dom.top:this.body.dom.bottom,n=e.parentNode!==o;this._calculateCharSize();var s=this.options.showMinorLabels&&"none"!==this.options.orientation.axis,r=this.options.showMajorLabels&&"none"!==this.options.orientation.axis;t.minorLabelHeight=s?t.minorCharHeight:0,t.majorLabelHeight=r?t.majorCharHeight:0,t.height=t.minorLabelHeight+t.majorLabelHeight,t.width=e.offsetWidth,t.minorLineHeight=this.body.domProps.root.height-t.majorLabelHeight-("top"==this.options.orientation.axis?this.body.domProps.bottom.height:this.body.domProps.top.height),t.minorLineWidth=1,t.majorLineHeight=t.minorLineHeight+t.majorLabelHeight,t.majorLineWidth=1;var a=e.nextSibling,h=i.nextSibling;return e.parentNode&&e.parentNode.removeChild(e),i.parentNode&&i.parentNode.removeChild(i),e.style.height=this.props.height+"px",this._repaintLabels(),a?o.insertBefore(e,a):o.appendChild(e),h?this.body.dom.backgroundVertical.insertBefore(i,h):this.body.dom.backgroundVertical.appendChild(i),this._isResized()||n},o.prototype._repaintLabels=function(){var t=this.options.orientation.axis,e=s.convert(this.body.range.start,"Number"),i=s.convert(this.body.range.end,"Number"),o=this.body.util.toTime((this.props.minorCharWidth||10)*this.options.maxMinorChars).valueOf(),n=o-h.getHiddenDurationBefore(this.options.moment,this.body.hiddenDates,this.body.range,o);n-=this.body.util.toTime(0).valueOf();var r=new a(new Date(e),new Date(i),n,this.body.hiddenDates);r.setMoment(this.options.moment),this.options.format&&r.setFormat(this.options.format),this.options.timeAxis&&r.setScale(this.options.timeAxis),this.step=r;var d=this.dom;d.redundant.lines=d.lines,d.redundant.majorTexts=d.majorTexts,d.redundant.minorTexts=d.minorTexts,d.lines=[],d.majorTexts=[],d.minorTexts=[];var u,p,c,m,f,g,v,y,b,_,w=0,x=void 0,D=0,S=1e3;for(r.start(),p=r.getCurrent(),m=this.body.util.toScreen(p);r.hasNext()&&S>D;){D++,f=r.isMajor(),_=r.getClassName(),b=r.getLabelMinor(),u=p,c=m,r.next(),p=r.getCurrent(),g=r.isMajor(),m=this.body.util.toScreen(p),v=w,w=m-c;var k=w>=.4*v;if(this.options.showMinorLabels&&k){var C=this._repaintMinorText(c,b,t,_);C.style.width=w+"px"}f&&this.options.showMajorLabels?(c>0&&(void 0==x&&(x=c),C=this._repaintMajorText(c,r.getLabelMajor(),t,_)),y=this._repaintMajorLine(c,w,t,_)):k?y=this._repaintMinorLine(c,w,t,_):y&&(y.style.width=parseInt(y.style.width)+w+"px")}if(D!==S||l||(console.warn("Something is wrong with the Timeline scale. Limited drawing of grid lines to "+S+" lines."),l=!0),this.options.showMajorLabels){var T=this.body.util.toTime(0),O=r.getLabelMajor(T),M=O.length*(this.props.majorCharWidth||10)+10;(void 0==x||x>M)&&this._repaintMajorText(0,O,t,_)}s.forEach(this.dom.redundant,function(t){for(;t.length;){var e=t.pop();e&&e.parentNode&&e.parentNode.removeChild(e)}})},o.prototype._repaintMinorText=function(t,e,i,o){var n=this.dom.redundant.minorTexts.shift();if(!n){var s=document.createTextNode("");n=document.createElement("div"),n.appendChild(s),this.dom.foreground.appendChild(n)}return this.dom.minorTexts.push(n),n.childNodes[0].nodeValue=e,n.style.top="top"==i?this.props.majorLabelHeight+"px":"0",this.options.rtl?(n.style.left="",n.style.right=t+"px"):n.style.left=t+"px",n.className="vis-text vis-minor "+o,n},o.prototype._repaintMajorText=function(t,e,i,o){var n=this.dom.redundant.majorTexts.shift();if(!n){var s=document.createTextNode(e);n=document.createElement("div"),n.appendChild(s),this.dom.foreground.appendChild(n)}return this.dom.majorTexts.push(n),n.childNodes[0].nodeValue=e,n.className="vis-text vis-major "+o,n.style.top="top"==i?"0":this.props.minorLabelHeight+"px",this.options.rtl?(n.style.left="",n.style.right=t+"px"):n.style.left=t+"px",n},o.prototype._repaintMinorLine=function(t,e,i,o){var n=this.dom.redundant.lines.shift();n||(n=document.createElement("div"),this.dom.background.appendChild(n)),this.dom.lines.push(n);var s=this.props;return"top"==i?n.style.top=s.majorLabelHeight+"px":n.style.top=this.body.domProps.top.height+"px",n.style.height=s.minorLineHeight+"px",this.options.rtl?(n.style.left="",n.style.right=t-s.minorLineWidth/2+"px",n.className="vis-grid vis-vertical-rtl vis-minor "+o):(n.style.left=t-s.minorLineWidth/2+"px",n.className="vis-grid vis-vertical vis-minor "+o),n.style.width=e+"px",n},o.prototype._repaintMajorLine=function(t,e,i,o){var n=this.dom.redundant.lines.shift();n||(n=document.createElement("div"),this.dom.background.appendChild(n)),this.dom.lines.push(n);var s=this.props;return"top"==i?n.style.top="0":n.style.top=this.body.domProps.top.height+"px",this.options.rtl?(n.style.left="",n.style.right=t-s.majorLineWidth/2+"px",n.className="vis-grid vis-vertical-rtl vis-major "+o):(n.style.left=t-s.majorLineWidth/2+"px",n.className="vis-grid vis-vertical vis-major "+o),n.style.height=s.majorLineHeight+"px",n.style.width=e+"px",n},o.prototype._calculateCharSize=function(){this.dom.measureCharMinor||(this.dom.measureCharMinor=document.createElement("DIV"),this.dom.measureCharMinor.className="vis-text vis-minor vis-measure",this.dom.measureCharMinor.style.position="absolute",this.dom.measureCharMinor.appendChild(document.createTextNode("0")),this.dom.foreground.appendChild(this.dom.measureCharMinor)),this.props.minorCharHeight=this.dom.measureCharMinor.clientHeight,this.props.minorCharWidth=this.dom.measureCharMinor.clientWidth,this.dom.measureCharMajor||(this.dom.measureCharMajor=document.createElement("DIV"),this.dom.measureCharMajor.className="vis-text vis-major vis-measure",this.dom.measureCharMajor.style.position="absolute",this.dom.measureCharMajor.appendChild(document.createTextNode("0")),this.dom.foreground.appendChild(this.dom.measureCharMajor)),this.props.majorCharHeight=this.dom.measureCharMajor.clientHeight,this.props.majorCharWidth=this.dom.measureCharMajor.clientWidth};var l=!1;t.exports=o},function(t,e,i){function o(t){this.active=!1,this.dom={container:t},this.dom.overlay=document.createElement("div"),this.dom.overlay.className="vis-overlay",this.dom.container.appendChild(this.dom.overlay),this.hammer=a(this.dom.overlay),this.hammer.on("tap",this._onTapOverlay.bind(this));var e=this,i=["tap","doubletap","press","pinch","pan","panstart","panmove","panend"];i.forEach(function(t){e.hammer.on(t,function(t){t.stopPropagation()})}),document&&document.body&&(this.onClick=function(i){n(i.target,t)||e.deactivate()},document.body.addEventListener("click",this.onClick)),void 0!==this.keycharm&&this.keycharm.destroy(),this.keycharm=s(),this.escListener=this.deactivate.bind(this)}function n(t,e){for(;t;){if(t===e)return!0;t=t.parentNode}return!1}var s=i(36),r=i(19),a=i(14),h=i(1);r(o.prototype),o.current=null,o.prototype.destroy=function(){this.deactivate(),this.dom.overlay.parentNode.removeChild(this.dom.overlay),this.onClick&&document.body.removeEventListener("click",this.onClick),this.hammer.destroy(),this.hammer=null},o.prototype.activate=function(){o.current&&o.current.deactivate(),o.current=this,this.active=!0,this.dom.overlay.style.display="none",h.addClassName(this.dom.container,"vis-active"),this.emit("change"),this.emit("activate"),this.keycharm.bind("esc",this.escListener)},o.prototype.deactivate=function(){this.active=!1,this.dom.overlay.style.display="",h.removeClassName(this.dom.container,"vis-active"),this.keycharm.unbind("esc",this.escListener),this.emit("change"),this.emit("deactivate")},o.prototype._onTapOverlay=function(t){this.activate(),t.stopPropagation()},t.exports=o},function(t,e,i){var o,n,s;!function(i,r){n=[],o=r,s="function"==typeof o?o.apply(e,n):o,!(void 0!==s&&(t.exports=s))}(this,function(){function t(t){var e,i=t&&t.preventDefault||!1,o=t&&t.container||window,n={},s={keydown:{},keyup:{}},r={};for(e=97;122>=e;e++)r[String.fromCharCode(e)]={code:65+(e-97),shift:!1};for(e=65;90>=e;e++)r[String.fromCharCode(e)]={code:e,shift:!0};for(e=0;9>=e;e++)r[""+e]={code:48+e,shift:!1};for(e=1;12>=e;e++)r["F"+e]={code:111+e,shift:!1};for(e=0;9>=e;e++)r["num"+e]={code:96+e,shift:!1};r["num*"]={code:106,shift:!1},r["num+"]={code:107,shift:!1},r["num-"]={code:109,shift:!1},r["num/"]={code:111,shift:!1},r["num."]={code:110,shift:!1},r.left={code:37,shift:!1},r.up={code:38,shift:!1},r.right={code:39,shift:!1},r.down={code:40,shift:!1},r.space={code:32,shift:!1},r.enter={code:13,shift:!1},r.shift={code:16,shift:void 0},r.esc={code:27,shift:!1},r.backspace={code:8,shift:!1},r.tab={code:9,shift:!1},r.ctrl={code:17,shift:!1},r.alt={code:18,shift:!1},r["delete"]={code:46,shift:!1},r.pageup={code:33,shift:!1},r.pagedown={code:34,shift:!1},r["="]={code:187,shift:!1},r["-"]={code:189,shift:!1},r["]"]={code:221,shift:!1},r["["]={code:219,shift:!1};var a=function(t){d(t,"keydown")},h=function(t){d(t,"keyup")},d=function(t,e){if(void 0!==s[e][t.keyCode]){for(var o=s[e][t.keyCode],n=0;no&&(o=30),o>1e3&&(o=1e3),e.redraw(),e.body.emitter.emit("currentTimeTick"),e.currentTimeTimer=setTimeout(t,o)}var e=this;t()},o.prototype.stop=function(){void 0!==this.currentTimeTimer&&(clearTimeout(this.currentTimeTimer),delete this.currentTimeTimer)},o.prototype.setCurrentTime=function(t){var e=n.convert(t,"Date").valueOf(),i=(new Date).valueOf();this.offset=e-i,this.redraw()},o.prototype.getCurrentTime=function(){return new Date((new Date).valueOf()+this.offset)},t.exports=o},function(t,e){Object.defineProperty(e,"__esModule",{value:!0});var i="string",o="boolean",n="number",s="array",r="date",a="object",h="dom",d="moment",l="any",u={configure:{enabled:{"boolean":o},filter:{"boolean":o,"function":"function"},container:{dom:h},__type__:{object:a,"boolean":o,"function":"function"}},align:{string:i},rtl:{"boolean":o,undefined:"undefined"},autoResize:{"boolean":o},throttleRedraw:{number:n},clickToUse:{"boolean":o},dataAttributes:{string:i,array:s},editable:{add:{"boolean":o,undefined:"undefined"},remove:{"boolean":o,undefined:"undefined"},updateGroup:{"boolean":o,undefined:"undefined"},updateTime:{"boolean":o,undefined:"undefined"},__type__:{"boolean":o,object:a}},end:{number:n,date:r,string:i,moment:d},format:{minorLabels:{millisecond:{string:i,undefined:"undefined"},second:{string:i,undefined:"undefined"},minute:{string:i,undefined:"undefined"},hour:{string:i,undefined:"undefined"},weekday:{string:i,undefined:"undefined"},day:{string:i,undefined:"undefined"},month:{string:i,undefined:"undefined"},year:{string:i,undefined:"undefined"},__type__:{object:a}},majorLabels:{millisecond:{string:i,undefined:"undefined"},second:{string:i,undefined:"undefined"},minute:{string:i,undefined:"undefined"},hour:{string:i,undefined:"undefined"},weekday:{string:i,undefined:"undefined"},day:{string:i,undefined:"undefined"},month:{string:i,undefined:"undefined"},year:{string:i,undefined:"undefined"},__type__:{object:a}},__type__:{object:a}},moment:{"function":"function"},groupOrder:{string:i,"function":"function"},groupEditable:{add:{"boolean":o,undefined:"undefined"},remove:{"boolean":o,undefined:"undefined"},order:{"boolean":o,undefined:"undefined"},__type__:{"boolean":o,object:a}},groupOrderSwap:{"function":"function"},height:{string:i,number:n},hiddenDates:{start:{date:r,number:n,string:i,moment:d},end:{date:r,number:n,string:i,moment:d},repeat:{string:i},__type__:{object:a,array:s}},itemsAlwaysDraggable:{"boolean":o},locale:{string:i},locales:{__any__:{any:l},__type__:{object:a}},margin:{axis:{number:n},item:{horizontal:{number:n,undefined:"undefined"},vertical:{number:n,undefined:"undefined"},__type__:{object:a,number:n}},__type__:{object:a,number:n}},max:{date:r,number:n,string:i,moment:d},maxHeight:{number:n,string:i},maxMinorChars:{number:n},min:{date:r,number:n,string:i,moment:d},minHeight:{number:n,string:i},moveable:{"boolean":o},multiselect:{"boolean":o},multiselectPerGroup:{"boolean":o},onAdd:{"function":"function"},onUpdate:{"function":"function"},onMove:{"function":"function"},onMoving:{"function":"function"},onRemove:{"function":"function"},onAddGroup:{"function":"function"},onMoveGroup:{"function":"function"},onRemoveGroup:{"function":"function"},order:{"function":"function"},orientation:{axis:{string:i,undefined:"undefined"},item:{string:i,undefined:"undefined"},__type__:{string:i,object:a}},selectable:{"boolean":o},showCurrentTime:{"boolean":o},showMajorLabels:{"boolean":o},showMinorLabels:{"boolean":o},stack:{"boolean":o},snap:{"function":"function","null":"null"},start:{date:r,number:n,string:i,moment:d},template:{"function":"function"},groupTemplate:{"function":"function"},timeAxis:{scale:{string:i,undefined:"undefined"},step:{number:n,undefined:"undefined"},__type__:{object:a}},type:{string:i},width:{string:i,number:n},zoomable:{"boolean":o},zoomKey:{string:["ctrlKey","altKey","metaKey",""]},zoomMax:{number:n},zoomMin:{number:n},__type__:{object:a}},p={global:{align:["center","left","right"],direction:!1,autoResize:!0,throttleRedraw:[10,0,1e3,10],clickToUse:!1,editable:{add:!1,remove:!1,updateGroup:!1,updateTime:!1},end:"",format:{minorLabels:{millisecond:"SSS",second:"s",minute:"HH:mm",hour:"HH:mm",weekday:"ddd D",day:"D",month:"MMM",year:"YYYY"},majorLabels:{millisecond:"HH:mm:ss",second:"D MMMM HH:mm",minute:"ddd D MMMM",hour:"ddd D MMMM",weekday:"MMMM YYYY",day:"MMMM YYYY",month:"YYYY",year:""}},groupsDraggable:!1,height:"",locale:"",margin:{axis:[20,0,100,1],item:{horizontal:[10,0,100,1],vertical:[10,0,100,1]}},max:"",maxHeight:"",maxMinorChars:[7,0,20,1],min:"",minHeight:"",moveable:!1,multiselect:!1,multiselectPerGroup:!1,orientation:{axis:["both","bottom","top"],item:["bottom","top"]},selectable:!0,showCurrentTime:!1,showMajorLabels:!0,showMinorLabels:!0,stack:!0,start:"",type:["box","point","range","background"],width:"100%",zoomable:!0,zoomKey:["ctrlKey","altKey","metaKey",""],zoomMax:[31536e10,10,31536e10,1],zoomMin:[10,10,31536e10,1]}};e.allOptions=u,e.configureOptions=p},function(t,e,i){function o(t){return t&&t.__esModule?t:{"default":t}}function n(t,e,i,o){if(!(Array.isArray(i)||i instanceof u||i instanceof p)&&i instanceof Object){var n=o;o=i,i=n}var s=this;this.defaultOptions={start:null,end:null,autoResize:!0,orientation:{axis:"bottom",item:"bottom"},moment:d,width:null,height:null,maxHeight:null,minHeight:null},this.options=l.deepExtend({},this.defaultOptions),this._create(t),this.components=[],this.body={dom:this.dom,domProps:this.props,emitter:{on:this.on.bind(this),off:this.off.bind(this),emit:this.emit.bind(this)},hiddenDates:[],util:{toScreen:s._toScreen.bind(s),toGlobalScreen:s._toGlobalScreen.bind(s),toTime:s._toTime.bind(s),toGlobalTime:s._toGlobalTime.bind(s)}},this.range=new c(this.body),this.components.push(this.range),this.body.range=this.range,this.timeAxis=new f(this.body),this.components.push(this.timeAxis),this.currentTime=new g(this.body),this.components.push(this.currentTime),this.linegraph=new y(this.body),this.components.push(this.linegraph),this.itemsData=null,this.groupsData=null,this.on("tap",function(t){s.emit("click",s.getEventProperties(t))}),this.on("doubletap",function(t){s.emit("doubleClick",s.getEventProperties(t))}),this.dom.root.oncontextmenu=function(t){s.emit("contextmenu",s.getEventProperties(t))},o&&this.setOptions(o),i&&this.setGroups(i),e&&this.setItems(e),this._redraw()}var s=i(12),r=o(s),a=i(18),h=o(a),d=(i(19),i(14),i(2)),l=i(1),u=i(8),p=i(10),c=i(20),m=i(23),f=i(34),g=i(39),v=i(37),y=i(42),b=i(18).printStyle,_=i(50).allOptions,w=i(50).configureOptions;n.prototype=new m,n.prototype.setOptions=function(t){var e=h["default"].validate(t,_);e===!0&&console.log("%cErrors have been found in the supplied options object.",b),m.prototype.setOptions.call(this,t)},n.prototype.setItems=function(t){var e,i=null==this.itemsData;if(e=t?t instanceof u||t instanceof p?t:new u(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 o=void 0!=this.options.start?this.options.start:null,n=void 0!=this.options.end?this.options.end:null;this.setWindow(o,n,{animation:!1})}else this.fit({animation:!1})},n.prototype.setGroups=function(t){var e;e=t?t instanceof u||t instanceof p?t:new u(t):null,this.groupsData=e,this.linegraph.setGroups(e)},n.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+"'"},n.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},n.prototype.getDataRange=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 o=0;os?s:t,e=null==e?s:s>e?s:e}return{min:null!=t?new Date(t):null,max:null!=e?new Date(e):null}},n.prototype.getEventProperties=function(t){var e=t.center?t.center.x:t.clientX,i=t.center?t.center.y:t.clientY,o=e-l.getAbsoluteLeft(this.dom.centerContainer),n=i-l.getAbsoluteTop(this.dom.centerContainer),s=this._toTime(o),r=v.customTimeFromTarget(t),a=l.getTarget(t),h=null;l.hasParent(a,this.timeAxis.dom.foreground)?h="axis":this.timeAxis2&&l.hasParent(a,this.timeAxis2.dom.foreground)?h="axis":l.hasParent(a,this.linegraph.yAxisLeft.dom.frame)?h="data-axis":l.hasParent(a,this.linegraph.yAxisRight.dom.frame)?h="data-axis":l.hasParent(a,this.linegraph.legendLeft.dom.frame)?h="legend":l.hasParent(a,this.linegraph.legendRight.dom.frame)?h="legend":null!=r?h="custom-time":l.hasParent(a,this.currentTime.bar)?h="current-time":l.hasParent(a,this.dom.center)&&(h="background");var d=[],u=this.linegraph.yAxisLeft,p=this.linegraph.yAxisRight;return u.hidden||d.push(u.screenToValue(n)),p.hidden||d.push(p.screenToValue(n)),{event:t,what:h,pageX:t.srcEvent?t.srcEvent.pageX:t.pageX,pageY:t.srcEvent?t.srcEvent.pageY:t.pageY,x:o,y:n,time:s,value:d}},n.prototype._createConfigurator=function(){return new r["default"](this,this.dom.container,w)},t.exports=n},function(t,e,i){function o(t,e){this.id=s.randomUUID(),this.body=t,this.defaultOptions={yAxisOrientation:"left",defaultGroup:"default",sort:!0,sampling:!0,stack:!1,graphHeight:"400px",shaded:{enabled:!1,orientation:"bottom"},style:"line",barChart:{width:50,sideBySide:!1,align:"center"},interpolation:{enabled:!0,parametrization:"centripetal",alpha:.5},drawPoints:{enabled:!0,size:6,style:"square"},dataAxis:{},legend:{},groups:{visibility:{}}},this.options=s.extend({},this.defaultOptions),this.dom={},this.props={},this.hammer=null,this.groups={},this.abortedGraphUpdate=!1,this.updateSVGheight=!1,this.updateSVGheightOnResize=!1,this.forceGraphUpdate=!0;var i=this;this.itemsData=null,this.groupsData=null,this.itemListeners={add:function(t,e,o){i._onAdd(e.items)},update:function(t,e,o){i._onUpdate(e.items)},remove:function(t,e,o){i._onRemove(e.items)}},this.groupListeners={add:function(t,e,o){i._onAddGroups(e.items)},update:function(t,e,o){i._onUpdateGroups(e.items)},remove:function(t,e,o){i._onRemoveGroups(e.items)}},this.items={},this.selection=[],this.lastStart=this.body.range.start,this.touchParams={},this.svgElements={},this.setOptions(e),this.groupsUsingDefaultStyles=[0],this.body.emitter.on("rangechanged",function(){i.lastStart=i.body.range.start,i.svg.style.left=s.option.asSize(-i.props.width),i.forceGraphUpdate=!0,i.redraw.call(i)}),this._create(),this.framework={svg:this.svg,svgElements:this.svgElements,options:this.options,groups:this.groups}}var n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol?"symbol":typeof t},s=i(1),r=i(7),a=i(8),h=i(10),d=i(21),l=i(43),u=i(45),p=i(49),c=i(46),m=i(48),f=i(47),g="__ungrouped__";o.prototype=new d,o.prototype._create=function(){var t=document.createElement("div");t.className="vis-line-graph",this.dom.frame=t,this.svg=document.createElementNS("http://www.w3.org/2000/svg","svg"),this.svg.style.position="relative",this.svg.style.height=(""+this.options.graphHeight).replace("px","")+"px",this.svg.style.display="block",t.appendChild(this.svg),this.options.dataAxis.orientation="left",this.yAxisLeft=new l(this.body,this.options.dataAxis,this.svg,this.options.groups),this.options.dataAxis.orientation="right",this.yAxisRight=new l(this.body,this.options.dataAxis,this.svg,this.options.groups),delete this.options.dataAxis.orientation,this.legendLeft=new p(this.body,this.options.legend,"left",this.options.groups),this.legendRight=new p(this.body,this.options.legend,"right",this.options.groups),this.show()},o.prototype.setOptions=function(t){if(t){var e=["sampling","defaultGroup","stack","height","graphHeight","yAxisOrientation","style","barChart","dataAxis","sort","groups"];void 0===t.graphHeight&&void 0!==t.height?(this.updateSVGheight=!0,this.updateSVGheightOnResize=!0):void 0!==this.body.domProps.centerContainer.height&&void 0!==t.graphHeight&&parseInt((t.graphHeight+"").replace("px",""))i?-1:1});for(var o=new Array(t.length),n=0;n0){var h={};for(this._getRelevantData(a,h,n,s),this._applySampling(a,h),e=0;e0)switch(t.options.style){case"line":l.hasOwnProperty(a[e])||(l[a[e]]=m.calcPath(h[a[e]],t)),m.draw(l[a[e]],t,this.framework);case"point":case"points":"point"!=t.options.style&&"points"!=t.options.style&&1!=t.options.drawPoints.enabled||f.draw(h[a[e]],t,this.framework);break;case"bar":}}}return r.cleanupElements(this.svgElements),!1},o.prototype._stack=function(t,e){var i,o,n,s,r;i=0;for(var a=0;at[a].x){r=e[h],s=0==h?r:e[h-1],i=h;break}}void 0===r&&(s=e[e.length-1],r=e[e.length-1]),o=r.x-s.x,n=r.y-s.y,0==o?t[a].y=t[a].orginalY+r.y:t[a].y=t[a].orginalY+n/o*(t[a].x-s.x)+s.y}},o.prototype._getRelevantData=function(t,e,i,o){var n,r,a,h;if(t.length>0)for(r=0;rt?-1:1},u=Math.max(0,s.binarySearchValue(d,i,"x","before",l)),p=Math.min(d.length,s.binarySearchValue(d,o,"x","after",l)+1);0>=p&&(p=d.length);var c=new Array(p-u);for(a=u;p>a;a++)h=n.itemsData[a],c[a-u]=h;e[t[r]]=c}else e[t[r]]=n.itemsData}},o.prototype._applySampling=function(t,e){var i;if(t.length>0)for(var o=0;o0){var s=1,r=n.length,a=this.body.util.toGlobalScreen(n[n.length-1].x)-this.body.util.toGlobalScreen(n[0].x),h=r/a;s=Math.min(Math.ceil(.2*r),Math.max(1,Math.round(h)));for(var d=new Array(r),l=0;r>l;l+=s){var u=Math.round(l/s);d[u]=n[l]}e[t[o]]=d.splice(0,Math.round(r/s))}}},o.prototype._getYRanges=function(t,e,i){var o,n,s,r,a=[],h=[];if(t.length>0){for(s=0;s0&&(n=this.groups[t[s]],r.stack===!0&&"bar"===r.style?"left"===r.yAxisOrientation?a=a.concat(n.getItems()):h=h.concat(n.getItems()):i[t[s]]=n.getYRange(o,t[s]));c.getStackedYRange(a,i,t,"__barStackLeft","left"),c.getStackedYRange(h,i,t,"__barStackRight","right")}},o.prototype._updateYAxis=function(t,e){var i,o,n=!1,s=!1,r=!1,a=1e9,h=1e9,d=-1e9,l=-1e9;if(t.length>0){for(var u=0;ui?i:a,d=o>d?o:d):(r=!0,h=h>i?i:h,l=o>l?o:l));1==s&&this.yAxisLeft.setRange(a,d),1==r&&this.yAxisRight.setRange(h,l)}n=this._toggleAxisVisiblity(s,this.yAxisLeft)||n,n=this._toggleAxisVisiblity(r,this.yAxisRight)||n,1==r&&1==s?(this.yAxisLeft.drawIcons=!0,this.yAxisRight.drawIcons=!0):(this.yAxisLeft.drawIcons=!1,this.yAxisRight.drawIcons=!1),this.yAxisRight.master=!s,this.yAxisRight.masterAxis=this.yAxisLeft,0==this.yAxisRight.master?(1==r?this.yAxisLeft.lineOffset=this.yAxisRight.width:this.yAxisLeft.lineOffset=0,n=this.yAxisLeft.redraw()||n,n=this.yAxisRight.redraw()||n):n=this.yAxisRight.redraw()||n;for(var c=["__barStackLeft","__barStackRight","__lineStackLeft","__lineStackRight"],u=0;ut?-1:1});for(var a=0;a=0&&t._redrawLabel(o-2,e.val,i,"vis-y-axis vis-major",t.props.majorCharHeight),t.master===!0&&(n?t._redrawLine(o,i,"vis-grid vis-horizontal vis-major",t.options.majorLinesOffset,t.props.majorLineWidth):t._redrawLine(o,i,"vis-grid vis-horizontal vis-minor",t.options.minorLinesOffset,t.props.minorLineWidth))});var d=0;void 0!==this.options[i].title&&void 0!==this.options[i].title.text&&(d=this.props.titleCharHeight);var l=this.options.icons===!0?Math.max(this.options.iconWidth,d)+this.options.labelOffsetX+15:d+this.options.labelOffsetX+15;return this.maxLabelSize>this.width-l&&this.options.visible===!0?(this.width=this.maxLabelSize+l,this.options.width=this.width+"px",s.cleanupElements(this.DOMelements.lines),s.cleanupElements(this.DOMelements.labels),this.redraw(),e=!0):this.maxLabelSizethis.minWidth?(this.width=Math.max(this.minWidth,this.maxLabelSize+l),this.options.width=this.width+"px",s.cleanupElements(this.DOMelements.lines),s.cleanupElements(this.DOMelements.labels),this.redraw(),e=!0):(s.cleanupElements(this.DOMelements.lines),s.cleanupElements(this.DOMelements.labels),e=!1),e},o.prototype.convertValue=function(t){return this.scale.convertValue(t)},o.prototype.screenToValue=function(t){return this.scale.screenToValue(t)},o.prototype._redrawLabel=function(t,e,i,o,n){var r=s.getDOMElement("div",this.DOMelements.labels,this.dom.frame);r.className=o,r.innerHTML=e,"left"===i?(r.style.left="-"+this.options.labelOffsetX+"px",r.style.textAlign="right"):(r.style.right="-"+this.options.labelOffsetX+"px",r.style.textAlign="left"),r.style.top=t-.5*n+this.options.labelOffsetY+"px",e+="";var a=Math.max(this.props.majorCharWidth,this.props.minorCharWidth);this.maxLabelSize.5*(h.magnitudefactor*h.minorSteps[h.minorStepIdx])?e+h.magnitudefactor*h.minorSteps[h.minorStepIdx]:e};i&&(this._start-=2*this.magnitudefactor*this.minorSteps[this.minorStepIdx],this._start=d(this._start)),o&&(this._end+=this.magnitudefactor*this.minorSteps[this.minorStepIdx],this._end=d(this._end)),this.determineScale()}}i.prototype.setCharHeight=function(t){this.majorCharHeight=t},i.prototype.setHeight=function(t){this.containerHeight=t},i.prototype.determineScale=function(){var t=this._end-this._start;this.scale=this.containerHeight/t;var e=this.majorCharHeight/this.scale,i=t>0?Math.round(Math.log(t)/Math.LN10):0;this.minorStepIdx=-1,this.magnitudefactor=Math.pow(10,i);var o=0;0>i&&(o=i);for(var n=!1,s=o;Math.abs(s)<=Math.abs(i);s++){this.magnitudefactor=Math.pow(10,s);for(var r=0;r=e){n=!0,this.minorStepIdx=r;break}}if(n===!0)break}},i.prototype.is_major=function(t){return t%(this.magnitudefactor*this.majorSteps[this.minorStepIdx])===0},i.prototype.getStep=function(){return this.magnitudefactor*this.minorSteps[this.minorStepIdx]},i.prototype.getFirstMajor=function(){var t=this.magnitudefactor*this.majorSteps[this.minorStepIdx];return this.convertValue(this._start+(t-this._start%t)%t)},i.prototype.formatValue=function(t){var e=t.toPrecision(5);return"function"==typeof this.formattingFunction&&(e=this.formattingFunction(t)),"number"==typeof e?""+e:"string"==typeof e?e:t.toPrecision(5)},i.prototype.getLines=function(){for(var t=[],e=this.getStep(),i=(e-this._start%e)%e,o=this._start+i;this._end-o>1e-5;o+=e)o!=this._start&&t.push({major:this.is_major(o),y:this.convertValue(o),val:this.formatValue(o)});return t},i.prototype.followScale=function(t){var e=this.minorStepIdx,i=this._start,o=this._end,n=this,s=function(){n.magnitudefactor*=2},r=function(){n.magnitudefactor/=2};t.minorStepIdx<=1&&this.minorStepIdx<=1||t.minorStepIdx>1&&this.minorStepIdx>1||(t.minorStepIdxo+1e-5)r(),d=!1;else{if(!this.autoScaleStart&&this._start=0)){r(),d=!1;continue}console.warn("Can't adhere to given 'min' range, due to zeroalign")}this.autoScaleStart&&this.autoScaleEnd&&o-i>u?(s(),d=!1):d=!0}}},i.prototype.convertValue=function(t){return this.containerHeight-(t-this._start)*this.scale},i.prototype.screenToValue=function(t){return(this.containerHeight-t)/this.scale+this._start},t.exports=i},function(t,e,i){function o(t,e,i,o){this.id=e;var n=["sampling","style","sort","yAxisOrientation","barChart","drawPoints","shaded","interpolation","zIndex","excludeFromStacking","excludeFromLegend"];this.options=s.selectiveBridgeObject(n,i),this.usingDefaultStyle=void 0===t.className,this.groupsUsingDefaultStyles=o,this.zeroPosition=0,this.update(t),1==this.usingDefaultStyle&&(this.groupsUsingDefaultStyles[0]+=1),this.itemsData=[],this.visible=void 0===t.visible?!0:t.visible}var n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol?"symbol":typeof t},s=i(1),r=(i(7),i(46)),a=i(48),h=i(47);o.prototype.setItems=function(t){null!=t?(this.itemsData=t,1==this.options.sort&&s.insertSort(this.itemsData,function(t,e){return t.x>e.x?1:-1})):this.itemsData=[]},o.prototype.getItems=function(){return this.itemsData},o.prototype.setZeroPosition=function(t){this.zeroPosition=t},o.prototype.setOptions=function(t){if(void 0!==t){var e=["sampling","style","sort","yAxisOrientation","barChart","zIndex","excludeFromStacking","excludeFromLegend"];s.selectiveDeepExtend(e,this.options,t),"function"==typeof t.drawPoints&&(t.drawPoints={onRender:t.drawPoints}),s.mergeOptions(this.options,t,"interpolation"),s.mergeOptions(this.options,t,"drawPoints"),s.mergeOptions(this.options,t,"shaded"),t.interpolation&&"object"==n(t.interpolation)&&t.interpolation.parametrization&&("uniform"==t.interpolation.parametrization?this.options.interpolation.alpha=0:"chordal"==t.interpolation.parametrization?this.options.interpolation.alpha=1:(this.options.interpolation.parametrization="centripetal",this.options.interpolation.alpha=.5))}},o.prototype.update=function(t){this.group=t,this.content=t.content||"graph",this.className=t.className||this.className||"vis-graph-group"+this.groupsUsingDefaultStyles[0]%10,this.visible=void 0===t.visible?!0:t.visible,this.style=t.style,this.setOptions(t.options)},o.prototype.getLegend=function(t,e,i,o,n){if(void 0==i||null==i){var s=document.createElementNS("http://www.w3.org/2000/svg","svg");i={svg:s,svgElements:{},options:this.options,groups:[this]}}switch(void 0!=o&&null!=o||(o=0),void 0!=n&&null!=n||(n=.5*e),this.options.style){case"line":a.drawIcon(this,o,n,t,e,i);break;case"points":case"point":h.drawIcon(this,o,n,t,e,i);break;case"bar":r.drawIcon(this,o,n,t,e,i)}return{icon:i.svg,label:this.content,orientation:this.options.yAxisOrientation}},o.prototype.getYRange=function(t){for(var e=t[0].y,i=t[0].y,o=0;ot[o].y?t[o].y:e,i=i0&&(i=Math.min(i,Math.abs(e[o-1].screen_x-e[o].screen_x))),0===i&&(void 0===t[e[o].screen_x]&&(t[e[o].screen_x]={amount:0,resolved:0,accumulatedPositive:0,accumulatedNegative:0}),t[e[o].screen_x].amount+=1)},o._getSafeDrawData=function(t,e,i){var o,n;return t0?(o=i>t?i:t,n=0,"left"===e.options.barChart.align?n-=.5*t:"right"===e.options.barChart.align&&(n+=.5*t)):(o=e.options.barChart.width,n=0,"left"===e.options.barChart.align?n-=.5*e.options.barChart.width:"right"===e.options.barChart.align&&(n+=.5*e.options.barChart.width)),{width:o,offset:n}},o.getStackedYRange=function(t,e,i,n,s){if(t.length>0){t.sort(function(t,e){return t.screen_x===e.screen_x?t.groupIde[s].screen_y?e[s].screen_y:o,n=nt[r].accumulatedNegative?t[r].accumulatedNegative:o,o=o>t[r].accumulatedPositive?t[r].accumulatedPositive:o,n=n0){var i=[];return i=1==e.options.interpolation.enabled?o._catmullRom(t,e):o._linear(t)}},o.drawIcon=function(t,e,i,o,s,r){var a,h,d=.5*s,l=n.getSVGElement("rect",r.svgElements,r.svg);if(l.setAttributeNS(null,"x",e),l.setAttributeNS(null,"y",i-d),l.setAttributeNS(null,"width",o),l.setAttributeNS(null,"height",2*d),l.setAttributeNS(null,"class","vis-outline"),a=n.getSVGElement("path",r.svgElements,r.svg),a.setAttributeNS(null,"class",t.className),void 0!==t.style&&a.setAttributeNS(null,"style",t.style),a.setAttributeNS(null,"d","M"+e+","+i+" L"+(e+o)+","+i),1==t.options.shaded.enabled&&(h=n.getSVGElement("path",r.svgElements,r.svg),"top"==t.options.shaded.orientation?h.setAttributeNS(null,"d","M"+e+", "+(i-d)+"L"+e+","+i+" L"+(e+o)+","+i+" L"+(e+o)+","+(i-d)):h.setAttributeNS(null,"d","M"+e+","+i+" L"+e+","+(i+d)+" L"+(e+o)+","+(i+d)+"L"+(e+o)+","+i),h.setAttributeNS(null,"class",t.className+" vis-icon-fill"),void 0!==t.options.shaded.style&&""!==t.options.shaded.style&&h.setAttributeNS(null,"style",t.options.shaded.style)),1==t.options.drawPoints.enabled){var u={style:t.options.drawPoints.style,styles:t.options.drawPoints.styles,size:t.options.drawPoints.size,className:t.className};n.drawPoint(e+.5*o,i,u,r.svgElements,r.svg)}},o.drawShading=function(t,e,i,o){if(1==e.options.shaded.enabled){var s=Number(o.svg.style.height.replace("px","")),r=n.getSVGElement("path",o.svgElements,o.svg),a="L";1==e.options.interpolation.enabled&&(a="C");var h,d=0;d="top"==e.options.shaded.orientation?0:"bottom"==e.options.shaded.orientation?s:Math.min(Math.max(0,e.zeroPosition),s),h="group"==e.options.shaded.orientation&&null!=i&&void 0!=i?"M"+t[0][0]+","+t[0][1]+" "+this.serializePath(t,a,!1)+" L"+i[i.length-1][0]+","+i[i.length-1][1]+" "+this.serializePath(i,a,!0)+i[0][0]+","+i[0][1]+" Z":"M"+t[0][0]+","+t[0][1]+" "+this.serializePath(t,a,!1)+" V"+d+" H"+t[0][0]+" Z",r.setAttributeNS(null,"class",e.className+" vis-fill"),void 0!==e.options.shaded.style&&r.setAttributeNS(null,"style",e.options.shaded.style),r.setAttributeNS(null,"d",h)}},o.draw=function(t,e,i){if(null!=t&&void 0!=t){var o=n.getSVGElement("path",i.svgElements,i.svg);o.setAttributeNS(null,"class",e.className),void 0!==e.style&&o.setAttributeNS(null,"style",e.style);var s="L";1==e.options.interpolation.enabled&&(s="C"),o.setAttributeNS(null,"d","M"+t[0][0]+","+t[0][1]+" "+this.serializePath(t,s,!1))}},o.serializePath=function(t,e,i){if(t.length<2)return"";var o=e;if(i)for(var n=t.length-2;n>0;n--)o+=t[n][0]+","+t[n][1]+" ";else for(var n=1;nl;l++)e=0==l?t[0]:t[l-1],i=t[l],o=t[l+1],n=d>l+2?t[l+2]:o,s={screen_x:(-e.screen_x+6*i.screen_x+o.screen_x)*h,screen_y:(-e.screen_y+6*i.screen_y+o.screen_y)*h},r={screen_x:(i.screen_x+6*o.screen_x-n.screen_x)*h,screen_y:(i.screen_y+6*o.screen_y-n.screen_y)*h},a.push([s.screen_x,s.screen_y]),a.push([r.screen_x,r.screen_y]),a.push([o.screen_x,o.screen_y]);return a},o._catmullRom=function(t,e){var i=e.options.interpolation.alpha;if(0==i||void 0===i)return this._catmullRomUniform(t);var o,n,s,r,a,h,d,l,u,p,c,m,f,g,v,y,b,_,w,x=[];x.push([Math.round(t[0].screen_x),Math.round(t[0].screen_y)]);for(var D=t.length,S=0;D-1>S;S++)o=0==S?t[0]:t[S-1],n=t[S],s=t[S+1],r=D>S+2?t[S+2]:s,d=Math.sqrt(Math.pow(o.screen_x-n.screen_x,2)+Math.pow(o.screen_y-n.screen_y,2)),l=Math.sqrt(Math.pow(n.screen_x-s.screen_x,2)+Math.pow(n.screen_y-s.screen_y,2)),u=Math.sqrt(Math.pow(s.screen_x-r.screen_x,2)+Math.pow(s.screen_y-r.screen_y,2)),g=Math.pow(u,i),y=Math.pow(u,2*i),v=Math.pow(l,i),b=Math.pow(l,2*i),w=Math.pow(d,i),_=Math.pow(d,2*i),p=2*_+3*w*v+b,c=2*y+3*g*v+b,m=3*w*(w+v),m>0&&(m=1/m),f=3*g*(g+v),f>0&&(f=1/f),a={screen_x:(-b*o.screen_x+p*n.screen_x+_*s.screen_x)*m,screen_y:(-b*o.screen_y+p*n.screen_y+_*s.screen_y)*m},h={screen_x:(y*n.screen_x+c*s.screen_x-b*r.screen_x)*f,screen_y:(y*n.screen_y+c*s.screen_y-b*r.screen_y)*f},0==a.screen_x&&0==a.screen_y&&(a=n),0==h.screen_x&&0==h.screen_y&&(h=s),x.push([a.screen_x,a.screen_y]),x.push([h.screen_x,h.screen_y]),x.push([s.screen_x,s.screen_y]);return x},o._linear=function(t){for(var e=[],i=0;it?-1:1});for(var i=0;i")}this.dom.textArea.innerHTML=s,this.dom.textArea.style.lineHeight=.75*this.options.iconSize+this.options.iconSpacing+"px"}},o.prototype.drawLegendIcons=function(){if(this.dom.frame.parentNode){var t=Object.keys(this.groups);t.sort(function(t,e){return e>t?-1:1}),s.resetElements(this.svgElements);var e=window.getComputedStyle(this.dom.frame).paddingTop,i=Number(e.replace("px","")),o=i,n=this.options.iconSize,r=.75*this.options.iconSize,a=i+.5*r+3;this.svg.style.width=n+5+i+"px";for(var h=0;h>} */ + wrapper._handlers = {}; - // Create the DOM, props, and emitter - this._create(container); + /** + * Register a handler for one or multiple events + * @param {String} events A space separated string with events + * @param {function} handler A callback function, called as handler(event) + * @returns {Hammer.Manager} Returns the hammer instance + */ + wrapper.on = function (events, handler) { + // register the handler + split(events).forEach(function (event) { + var _handlers = wrapper._handlers[event]; + if (!_handlers) { + wrapper._handlers[event] = _handlers = []; - // all components listed here will be repainted automatically - this.components = []; + // register the static, propagated handler + hammer.on(event, propagatedHandler); + } + _handlers.push(handler); + }); - this.body = { - dom: this.dom, - domProps: this.props, - emitter: { - on: this.on.bind(this), - off: this.off.bind(this), - emit: this.emit.bind(this) - }, - hiddenDates: [], - util: { - getScale: function getScale() { - return me.timeAxis.step.scale; - }, - getStep: function getStep() { - return me.timeAxis.step.step; - }, + return wrapper; + }; - toScreen: me._toScreen.bind(me), - toGlobalScreen: me._toGlobalScreen.bind(me), // this refers to the root.width - toTime: me._toTime.bind(me), - toGlobalTime: me._toGlobalTime.bind(me) - } - }; + /** + * Unregister a handler for one or multiple events + * @param {String} events A space separated string with events + * @param {function} [handler] Optional. The registered handler. If not + * provided, all handlers for given events + * are removed. + * @returns {Hammer.Manager} Returns the hammer instance + */ + wrapper.off = function (events, handler) { + // unregister the handler + split(events).forEach(function (event) { + var _handlers = wrapper._handlers[event]; + if (_handlers) { + _handlers = handler ? _handlers.filter(function (h) { + return h !== handler; + }) : []; - // range - this.range = new Range(this.body); - this.components.push(this.range); - this.body.range = this.range; + if (_handlers.length > 0) { + wrapper._handlers[event] = _handlers; + } + else { + // remove static, propagated handler + hammer.off(event, propagatedHandler); + delete wrapper._handlers[event]; + } + } + }); - // time axis - this.timeAxis = new TimeAxis(this.body); - this.timeAxis2 = null; // used in case of orientation option 'both' - this.components.push(this.timeAxis); + return wrapper; + }; - // current time bar - this.currentTime = new CurrentTime(this.body); - this.components.push(this.currentTime); + /** + * Emit to the event listeners + * @param {string} eventType + * @param {Event} event + */ + wrapper.emit = function(eventType, event) { + _firstTarget = event.target; + hammer.emit(eventType, event); + }; - // item set - this.itemSet = new ItemSet(this.body, this.options); - this.components.push(this.itemSet); + wrapper.destroy = function () { + // Detach from DOM element + var hammers = hammer.element.hammer; + var idx = hammers.indexOf(wrapper); + if(idx !== -1) hammers.splice(idx,1); + if(!hammers.length) delete hammer.element.hammer; - this.itemsData = null; // DataSet - this.groupsData = null; // DataSet + // clear all handlers + wrapper._handlers = {}; - this.on('tap', function (event) { - me.emit('click', me.getEventProperties(event)); - }); - this.on('doubletap', function (event) { - me.emit('doubleClick', me.getEventProperties(event)); - }); - this.dom.root.oncontextmenu = function (event) { - me.emit('contextmenu', me.getEventProperties(event)); - }; + // call original hammer destroy + hammer.destroy(); + }; - //Single time autoscale/fit - this.fitDone = false; - this.on('changed', function () { - if (this.itemsData == null) return; - if (!me.fitDone) { - me.fitDone = true; - if (me.options.start != undefined || me.options.end != undefined) { - if (me.options.start == undefined || me.options.end == undefined) { - var range = me.getItemRange(); + // split a string with space separated words + function split(events) { + return events.match(/[^ ]+/g); + } + + /** + * A static event handler, applying event propagation. + * @param {Object} event + */ + function propagatedHandler(event) { + // let only a single hammer instance handle this event + if (event.type !== 'hammer.input') { + // it is possible that the same srcEvent is used with multiple hammer events, + // we keep track on which events are handled in an object _handled + if (!event.srcEvent._handled) { + event.srcEvent._handled = {}; } - var start = me.options.start != undefined ? me.options.start : range.min; - var end = me.options.end != undefined ? me.options.end : range.max; + if (event.srcEvent._handled[event.type]) { + return; + } + else { + event.srcEvent._handled[event.type] = true; + } + } - me.setWindow(start, end, { animation: false }); - } else { - me.fit({ animation: false }); + // attach a stopPropagation function to the event + var stopped = false; + event.stopPropagation = function () { + stopped = true; + }; + + //wrap the srcEvent's stopPropagation to also stop hammer propagation: + var srcStop = event.srcEvent.stopPropagation.bind(event.srcEvent); + if(typeof srcStop == "function") { + event.srcEvent.stopPropagation = function(){ + srcStop(); + event.stopPropagation(); + } + } + + // attach firstTarget property to the event + event.firstTarget = _firstTarget; + + // propagate over all elements (until stopped) + var elem = _firstTarget; + while (elem && !stopped) { + var elemHammer = elem.hammer; + if(elemHammer){ + var _handlers; + for(var k = 0; k < elemHammer.length; k++){ + _handlers = elemHammer[k]._handlers[event.type]; + if(_handlers) for (var i = 0; i < _handlers.length && !stopped; i++) { + _handlers[i](event); + } + } + } + elem = elem.parentNode; } } - }); - // apply options - if (options) { - this.setOptions(options); - } + return wrapper; + }; + })); - // IMPORTANT: THIS HAPPENS BEFORE SET ITEMS! - if (groups) { - this.setGroups(groups); - } - // create itemset - if (items) { - this.setItems(items); - } +/***/ }, +/* 22 */ +/***/ function(module, exports, __webpack_require__) { - // draw for the first time - this._redraw(); - } + var __WEBPACK_AMD_DEFINE_RESULT__;/*! Hammer.JS - v2.0.6 - 2015-12-23 + * http://hammerjs.github.io/ + * + * Copyright (c) 2015 Jorik Tangelder; + * Licensed under the license */ + (function(window, document, exportName, undefined) { + 'use strict'; - // Extend the functionality from Core - Timeline.prototype = new Core(); + 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; /** - * Load a configurator - * @return {Object} - * @private + * set a timeout with a given scope + * @param {Function} fn + * @param {Number} timeout + * @param {Object} context + * @returns {number} */ - Timeline.prototype._createConfigurator = function () { - return new _Configurator2.default(this, this.dom.container, configureOptions); - }; + function setTimeoutContext(fn, timeout, context) { + return setTimeout(bindFn(fn, context), timeout); + } /** - * Force a redraw. The size of all items will be recalculated. - * Can be useful to manually redraw when option autoResize=false and the window - * has been resized, or when the items CSS has been changed. - * - * Note: this function will be overridden on construction with a trottled version + * 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} */ - Timeline.prototype.redraw = function () { - this.itemSet && this.itemSet.markDirty({ refreshItems: true }); - this._redraw(); - }; - - Timeline.prototype.setOptions = function (options) { - // validate options - var errorFound = _Validator2.default.validate(options, allOptions); - - if (errorFound === true) { - console.log('%cErrors have been found in the supplied options object.', printStyle); - } + function invokeArrayArg(arg, fn, context) { + if (Array.isArray(arg)) { + each(arg, context[fn], context); + return true; + } + return false; + } - Core.prototype.setOptions.call(this, options); + /** + * walk objects and arrays + * @param {Object} obj + * @param {Function} iterator + * @param {Object} context + */ + function each(obj, iterator, context) { + var i; - if ('type' in options) { - if (options.type !== this.options.type) { - this.options.type = options.type; + if (!obj) { + return; + } - // force recreation of all items - var itemsData = this.itemsData; - if (itemsData) { - var selection = this.getSelection(); - this.setItems(null); // remove all - this.setItems(itemsData); // add all - this.setSelection(selection); // restore selection - } + 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); + } } - } - }; + } /** - * Set items - * @param {vis.DataSet | Array | null} items + * wrap a method with a deprecation warning and stack trace + * @param {Function} method + * @param {String} name + * @param {String} message + * @returns {Function} A new function wrapping the supplied method. */ - Timeline.prototype.setItems = function (items) { - // convert to type DataSet when needed - var newDataSet; - if (!items) { - newDataSet = null; - } else if (items instanceof DataSet || items instanceof DataView) { - newDataSet = items; - } else { - // turn an array into a dataset - newDataSet = new DataSet(items, { - type: { - start: 'Date', - end: 'Date' - } - }); - } + function deprecate(method, name, message) { + var deprecationMessage = 'DEPRECATED METHOD: ' + name + '\n' + message + ' AT \n'; + return function() { + var e = new Error('get-stack-trace'); + var stack = e && e.stack ? e.stack.replace(/^[^\(]+?[\n$]/gm, '') + .replace(/^\s+at\s+/gm, '') + .replace(/^Object.\s*\(/gm, '{anonymous}()@') : 'Unknown Stack Trace'; - // set items - this.itemsData = newDataSet; - this.itemSet && this.itemSet.setItems(newDataSet); - }; + var log = window.console && (window.console.warn || window.console.log); + if (log) { + log.call(window.console, deprecationMessage, stack); + } + return method.apply(this, arguments); + }; + } /** - * Set groups - * @param {vis.DataSet | Array} groups + * extend object. + * means that properties in dest will be overwritten by the ones in src. + * @param {Object} target + * @param {...Object} objects_to_assign + * @returns {Object} target */ - Timeline.prototype.setGroups = function (groups) { - // convert to type DataSet when needed - var newDataSet; - if (!groups) { - newDataSet = null; - } else if (groups instanceof DataSet || groups instanceof DataView) { - newDataSet = groups; - } else { - // turn an array into a dataset - newDataSet = new DataSet(groups); - } + var assign; + if (typeof Object.assign !== 'function') { + assign = function assign(target) { + if (target === undefined || target === null) { + throw new TypeError('Cannot convert undefined or null to object'); + } - this.groupsData = newDataSet; - this.itemSet.setGroups(newDataSet); - }; + var output = Object(target); + for (var index = 1; index < arguments.length; index++) { + var source = arguments[index]; + if (source !== undefined && source !== null) { + for (var nextKey in source) { + if (source.hasOwnProperty(nextKey)) { + output[nextKey] = source[nextKey]; + } + } + } + } + return output; + }; + } else { + assign = Object.assign; + } /** - * Set both items and groups in one go - * @param {{items: Array | vis.DataSet, groups: Array | vis.DataSet}} data + * extend object. + * means that properties in dest will be overwritten by the ones in src. + * @param {Object} dest + * @param {Object} src + * @param {Boolean=false} [merge] + * @returns {Object} dest */ - Timeline.prototype.setData = function (data) { - if (data && data.groups) { - this.setGroups(data.groups); - } + var extend = deprecate(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; + }, 'extend', 'Use `assign`.'); - if (data && data.items) { - this.setItems(data.items); - } - }; + /** + * 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 + */ + var merge = deprecate(function merge(dest, src) { + return extend(dest, src, true); + }, 'merge', 'Use `assign`.'); /** - * Set selected items by their id. Replaces the current selection - * Unknown id's are silently ignored. - * @param {string[] | string} [ids] An array with zero or more id's of the items to be - * selected. If ids is an empty array, all items will be - * unselected. - * @param {Object} [options] Available options: - * `focus: boolean` - * If true, focus will be set to the selected item(s) - * `animation: boolean | {duration: number, easingFunction: string}` - * If true (default), the range is animated - * smoothly to the new window. An object can be - * provided to specify duration and easing function. - * Default duration is 500 ms, and default easing - * function is 'easeInOutQuad'. - * Only applicable when option focus is true. + * simple class inheritance + * @param {Function} child + * @param {Function} base + * @param {Object} [properties] */ - Timeline.prototype.setSelection = function (ids, options) { - this.itemSet && this.itemSet.setSelection(ids); + function inherit(child, base, properties) { + var baseP = base.prototype, + childP; - if (options && options.focus) { - this.focus(ids, options); - } - }; + childP = child.prototype = Object.create(baseP); + childP.constructor = child; + childP._super = baseP; + + if (properties) { + assign(childP, properties); + } + } /** - * Get the selected items by their id - * @return {Array} ids The ids of the selected items + * simple function bind + * @param {Function} fn + * @param {Object} context + * @returns {Function} */ - Timeline.prototype.getSelection = function () { - return this.itemSet && this.itemSet.getSelection() || []; - }; + function bindFn(fn, context) { + return function boundFn() { + return fn.apply(context, arguments); + }; + } /** - * Adjust the visible window such that the selected item (or multiple items) - * are centered on screen. - * @param {String | String[]} id An item id or array with item ids - * @param {Object} [options] Available options: - * `animation: boolean | {duration: number, easingFunction: string}` - * If true (default), the range is animated - * smoothly to the new window. An object can be - * provided to specify duration and easing function. - * Default duration is 500 ms, and default easing - * function is 'easeInOutQuad'. + * 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} */ - Timeline.prototype.focus = function (id, options) { - if (!this.itemsData || id == undefined) return; + function boolOrFn(val, args) { + if (typeof val == TYPE_FUNCTION) { + return val.apply(args ? args[0] || undefined : undefined, args); + } + return val; + } - var ids = Array.isArray(id) ? id : [id]; + /** + * use the val2 when val1 is undefined + * @param {*} val1 + * @param {*} val2 + * @returns {*} + */ + function ifUndefined(val1, val2) { + return (val1 === undefined) ? val2 : val1; + } - // get the specified item(s) - var itemsData = this.itemsData.getDataSet().get(ids, { - type: { - start: 'Date', - end: 'Date' + /** + * addEventListener with multiple events at once + * @param {EventTarget} target + * @param {String} types + * @param {Function} handler + */ + function addEventListeners(target, types, handler) { + each(splitStr(types), function(type) { + target.addEventListener(type, handler, false); + }); + } + + /** + * removeEventListener with multiple events at once + * @param {EventTarget} target + * @param {String} types + * @param {Function} handler + */ + function removeEventListeners(target, types, handler) { + each(splitStr(types), function(type) { + target.removeEventListener(type, handler, false); + }); + } + + /** + * find if a node is in the given parent + * @method hasParent + * @param {HTMLElement} node + * @param {HTMLElement} parent + * @return {Boolean} found + */ + function hasParent(node, parent) { + while (node) { + if (node == parent) { + return true; + } + node = node.parentNode; } - }); + return false; + } - // calculate minimum start and maximum end of specified items - var start = null; - var end = null; - itemsData.forEach(function (itemData) { - var s = itemData.start.valueOf(); - var e = 'end' in itemData ? itemData.end.valueOf() : itemData.start.valueOf(); + /** + * small indexOf wrapper + * @param {String} str + * @param {String} find + * @returns {Boolean} found + */ + function inStr(str, find) { + return str.indexOf(find) > -1; + } - if (start === null || s < start) { - start = s; + /** + * split string on whitespace + * @param {String} str + * @returns {Array} words + */ + function splitStr(str) { + return str.trim().split(/\s+/g); + } + + /** + * 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 + */ + 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; } + } - if (end === null || e > end) { - end = e; + /** + * convert array-like objects to real arrays + * @param {Object} obj + * @returns {Array} + */ + function toArray(obj) { + return Array.prototype.slice.call(obj, 0); + } + + /** + * 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 uniqueArray(src, key, sort) { + var results = []; + var values = []; + var i = 0; + + 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++; } - }); - if (start !== null && end !== null) { - // calculate the new middle and interval for the window - var middle = (start + end) / 2; - var interval = Math.max(this.range.end - this.range.start, (end - start) * 1.1); + if (sort) { + if (!key) { + results = results.sort(); + } else { + results = results.sort(function sortUniqueArray(a, b) { + return a[key] > b[key]; + }); + } + } - var animation = options && options.animation !== undefined ? options.animation : true; - this.range.setRange(middle - interval / 2, middle + interval / 2, animation); - } - }; + return results; + } /** - * Set Timeline window such that it fits all items - * @param {Object} [options] Available options: - * `animation: boolean | {duration: number, easingFunction: string}` - * If true (default), the range is animated - * smoothly to the new window. An object can be - * provided to specify duration and easing function. - * Default duration is 500 ms, and default easing - * function is 'easeInOutQuad'. + * get the prefixed property + * @param {Object} obj + * @param {String} property + * @returns {String|Undefined} prefixed */ - Timeline.prototype.fit = function (options) { - var animation = options && options.animation !== undefined ? options.animation : true; - var range; + function prefixed(obj, property) { + var prefix, prop; + var camelProp = property[0].toUpperCase() + property.slice(1); - var dataset = this.itemsData && this.itemsData.getDataSet(); - if (dataset.length === 1 && dataset.get()[0].end === undefined) { - // a single item -> don't fit, just show a range around the item from -4 to +3 days - range = this.getDataRange(); - this.moveTo(range.min.valueOf(), { animation: animation }); - } else { - // exactly fit the items (plus a small margin) - range = this.getItemRange(); - this.range.setRange(range.min, range.max, animation); - } - }; + var i = 0; + while (i < VENDOR_PREFIXES.length) { + prefix = VENDOR_PREFIXES[i]; + prop = (prefix) ? prefix + camelProp : property; + + if (prop in obj) { + return prop; + } + i++; + } + return undefined; + } /** - * Determine the range of the items, taking into account their actual width - * and a margin of 10 pixels on both sides. - * @return {{min: Date | null, max: Date | null}} + * get a unique id + * @returns {number} uniqueId */ - Timeline.prototype.getItemRange = function () { - var _this = this; + var _uniqueId = 1; + function uniqueId() { + return _uniqueId++; + } - // get a rough approximation for the range based on the items start and end dates - var range = this.getDataRange(); - var min = range.min !== null ? range.min.valueOf() : null; - var max = range.max !== null ? range.max.valueOf() : null; - var minItem = null; - var maxItem = null; + /** + * get the window object of an element + * @param {HTMLElement} element + * @returns {DocumentView|Window} + */ + function getWindowForElement(element) { + var doc = element.ownerDocument || element; + return (doc.defaultView || doc.parentWindow || window); + } - if (min != null && max != null) { - var interval; - var factor; - var lhs; - var rhs; - var delta; + var MOBILE_REGEX = /mobile|tablet|ip(ad|hone|od)|android/i; - (function () { - var getStart = function getStart(item) { - return util.convert(item.data.start, 'Date').valueOf(); - }; + 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); - var getEnd = function getEnd(item) { - var end = item.data.end != undefined ? item.data.end : item.data.start; - return util.convert(end, 'Date').valueOf(); - }; + var INPUT_TYPE_TOUCH = 'touch'; + var INPUT_TYPE_PEN = 'pen'; + var INPUT_TYPE_MOUSE = 'mouse'; + var INPUT_TYPE_KINECT = 'kinect'; - // calculate the date of the left side and right side of the items given + var COMPUTE_INTERVAL = 25; + var INPUT_START = 1; + var INPUT_MOVE = 2; + var INPUT_END = 4; + var INPUT_CANCEL = 8; - interval = max - min; // ms + var DIRECTION_NONE = 1; + var DIRECTION_LEFT = 2; + var DIRECTION_RIGHT = 4; + var DIRECTION_UP = 8; + var DIRECTION_DOWN = 16; - if (interval <= 0) { - interval = 10; - } - factor = interval / _this.props.center.width; - util.forEach(_this.itemSet.items, function (item) { - item.show(); - item.repositionX(); + var DIRECTION_HORIZONTAL = DIRECTION_LEFT | DIRECTION_RIGHT; + var DIRECTION_VERTICAL = DIRECTION_UP | DIRECTION_DOWN; + var DIRECTION_ALL = DIRECTION_HORIZONTAL | DIRECTION_VERTICAL; - var start = getStart(item); - var end = getEnd(item); + var PROPS_XY = ['x', 'y']; + var PROPS_CLIENT_XY = ['clientX', 'clientY']; - if (this.options.rtl) { - var startSide = start - (item.getWidthRight() + 10) * factor; - var endSide = end + (item.getWidthLeft() + 10) * factor; - } else { - var startSide = start - (item.getWidthLeft() + 10) * factor; - var endSide = end + (item.getWidthRight() + 10) * factor; - } + /** + * 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 (startSide < min) { - min = startSide; - minItem = item; - } - if (endSide > max) { - max = endSide; - maxItem = item; + // 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); } - }.bind(_this)); + }; - if (minItem && maxItem) { - lhs = minItem.getWidthLeft() + 10; - rhs = maxItem.getWidthRight() + 10; - delta = _this.props.center.width - lhs - rhs; // px + this.init(); - if (delta > 0) { - if (_this.options.rtl) { - min = getStart(minItem) - rhs * interval / delta; // ms - max = getEnd(maxItem) + lhs * interval / delta; // ms - } else { - min = getStart(minItem) - lhs * interval / delta; // ms - max = getEnd(maxItem) + rhs * interval / delta; // ms - } - } - } - })(); - } + } - return { - min: min != null ? new Date(min) : null, - max: max != null ? new Date(max) : null - }; + Input.prototype = { + /** + * should handle the inputEvent data and trigger the callback + * @virtual + */ + handler: function() { }, + + /** + * bind the events + */ + 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); + }, + + /** + * unbind the events + */ + 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); + } }; /** - * Calculate the data range of the items start and end dates - * @returns {{min: Date | null, max: Date | null}} + * create new input type manager + * called by the Manager constructor + * @param {Hammer} manager + * @returns {Input} */ - Timeline.prototype.getDataRange = function () { - var min = null; - var max = null; - - var dataset = this.itemsData && this.itemsData.getDataSet(); - if (dataset) { - dataset.forEach(function (item) { - var start = util.convert(item.start, 'Date').valueOf(); - var end = util.convert(item.end != undefined ? item.end : item.start, 'Date').valueOf(); - if (min === null || start < min) { - min = start; - } - if (max === null || end > max) { - max = end; - } - }); - } + function createInputInstance(manager) { + var Type; + var inputClass = manager.options.inputClass; - return { - min: min != null ? new Date(min) : null, - max: max != null ? new Date(max) : null - }; - }; + 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); + } /** - * Generate Timeline related information from an event - * @param {Event} event - * @return {Object} An object with related information, like on which area - * The event happened, whether clicked on an item, etc. + * handle input events + * @param {Manager} manager + * @param {String} eventType + * @param {Object} input */ - Timeline.prototype.getEventProperties = function (event) { - var clientX = event.center ? event.center.x : event.clientX; - var clientY = event.center ? event.center.y : event.clientY; - if (this.options.rtl) { - var x = util.getAbsoluteRight(this.dom.centerContainer) - clientX; - } else { - var x = clientX - util.getAbsoluteLeft(this.dom.centerContainer); - } - var y = clientY - util.getAbsoluteTop(this.dom.centerContainer); + 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)); - var item = this.itemSet.itemFromTarget(event); - var group = this.itemSet.groupFromTarget(event); - var customTime = CustomTime.customTimeFromTarget(event); + input.isFirst = !!isFirst; + input.isFinal = !!isFinal; - var snap = this.itemSet.options.snap || null; - var scale = this.body.util.getScale(); - var step = this.body.util.getStep(); - var time = this._toTime(x); - var snappedTime = snap ? snap(time, scale, step) : time; + if (isFirst) { + manager.session = {}; + } - var element = util.getTarget(event); - var what = null; - if (item != null) { - what = 'item'; - } else if (customTime != null) { - what = 'custom-time'; - } else if (util.hasParent(element, this.timeAxis.dom.foreground)) { - what = 'axis'; - } else if (this.timeAxis2 && util.hasParent(element, this.timeAxis2.dom.foreground)) { - what = 'axis'; - } else if (util.hasParent(element, this.itemSet.dom.labelSet)) { - what = 'group-label'; - } else if (util.hasParent(element, this.currentTime.bar)) { - what = 'current-time'; - } else if (util.hasParent(element, this.dom.center)) { - what = 'background'; - } + // source event is the normalized value of the domEvents + // like 'touchstart, mouseup, pointerdown' + input.eventType = eventType; - return { - event: event, - item: item ? item.id : null, - group: group ? group.groupId : null, - what: what, - pageX: event.srcEvent ? event.srcEvent.pageX : event.pageX, - pageY: event.srcEvent ? event.srcEvent.pageY : event.pageY, - x: x, - y: y, - time: time, - snappedTime: snappedTime - }; - }; + // compute scale, rotation etc + computeInputData(manager, input); - module.exports = Timeline; + // emit secret event + manager.emit('hammer.input', input); -/***/ }, -/* 20 */ -/***/ function(module, exports, __webpack_require__) { + manager.recognize(input); + manager.session.prevInput = input; + } - 'use strict'; + /** + * extend the data with some usable properties like scale, rotate, velocity etc + * @param {Object} manager + * @param {Object} input + */ + function computeInputData(manager, input) { + var session = manager.session; + var pointers = input.pointers; + var pointersLength = pointers.length; - Object.defineProperty(exports, "__esModule", { - value: true - }); + // store the first input to calculate the distance and direction + if (!session.firstInput) { + session.firstInput = simpleCloneInputData(input); + } - var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol ? "symbol" : typeof obj; }; + // 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; + } - var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); + var firstInput = session.firstInput; + var firstMultiple = session.firstMultiple; + var offsetCenter = firstMultiple ? firstMultiple.center : firstInput.center; - var _ColorPicker = __webpack_require__(21); + var center = input.center = getCenter(pointers); + input.timeStamp = now(); + input.deltaTime = input.timeStamp - firstInput.timeStamp; - var _ColorPicker2 = _interopRequireDefault(_ColorPicker); + input.angle = getAngle(offsetCenter, center); + input.distance = getDistance(offsetCenter, center); - function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + computeDeltaXY(session, input); + input.offsetDirection = getDirection(input.deltaX, input.deltaY); - function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + var overallVelocity = getVelocity(input.deltaTime, input.deltaX, input.deltaY); + input.overallVelocityX = overallVelocity.x; + input.overallVelocityY = overallVelocity.y; + input.overallVelocity = (abs(overallVelocity.x) > abs(overallVelocity.y)) ? overallVelocity.x : overallVelocity.y; - var util = __webpack_require__(1); + input.scale = firstMultiple ? getScale(firstMultiple.pointers, pointers) : 1; + input.rotation = firstMultiple ? getRotation(firstMultiple.pointers, pointers) : 0; - /** - * The way this works is for all properties of this.possible options, you can supply the property name in any form to list the options. - * Boolean options are recognised as Boolean - * Number options should be written as array: [default value, min value, max value, stepsize] - * Colors should be written as array: ['color', '#ffffff'] - * Strings with should be written as array: [option1, option2, option3, ..] - * - * The options are matched with their counterparts in each of the modules and the values used in the configuration are - * - * @param parentModule | the location where parentModule.setOptions() can be called - * @param defaultContainer | the default container of the module - * @param configureOptions | the fully configured and predefined options set found in allOptions.js - * @param pixelRatio | canvas pixel ratio - */ + input.maxPointers = !session.prevInput ? input.pointers.length : ((input.pointers.length > + session.prevInput.maxPointers) ? input.pointers.length : session.prevInput.maxPointers); - var Configurator = function () { - function Configurator(parentModule, defaultContainer, configureOptions) { - var pixelRatio = arguments.length <= 3 || arguments[3] === undefined ? 1 : arguments[3]; + computeIntervalInputData(session, input); - _classCallCheck(this, Configurator); + // find the correct target + var target = manager.element; + if (hasParent(input.srcEvent.target, target)) { + target = input.srcEvent.target; + } + input.target = target; + } - this.parent = parentModule; - this.changedOptions = []; - this.container = defaultContainer; - this.allowCreation = false; + function computeDeltaXY(session, input) { + var center = input.center; + var offset = session.offsetDelta || {}; + var prevDelta = session.prevDelta || {}; + var prevInput = session.prevInput || {}; - this.options = {}; - this.initialized = false; - this.popupCounter = 0; - this.defaultOptions = { - enabled: false, - filter: true, - container: undefined, - showButton: true - }; - util.extend(this.options, this.defaultOptions); + if (input.eventType === INPUT_START || prevInput.eventType === INPUT_END) { + prevDelta = session.prevDelta = { + x: prevInput.deltaX || 0, + y: prevInput.deltaY || 0 + }; - this.configureOptions = configureOptions; - this.moduleOptions = {}; - this.domElements = []; - this.popupDiv = {}; - this.popupLimit = 5; - this.popupHistory = {}; - this.colorPicker = new _ColorPicker2.default(pixelRatio); - this.wrapper = undefined; - } + offset = session.offsetDelta = { + x: center.x, + y: center.y + }; + } - /** - * refresh all options. - * Because all modules parse their options by themselves, we just use their options. We copy them here. - * - * @param options - */ + 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; - _createClass(Configurator, [{ - key: 'setOptions', - value: function setOptions(options) { - if (options !== undefined) { - // reset the popup history because the indices may have been changed. - this.popupHistory = {}; - this._removePopup(); + if (input.eventType != INPUT_CANCEL && (deltaTime > COMPUTE_INTERVAL || last.velocity === undefined)) { + var deltaX = input.deltaX - last.deltaX; + var deltaY = input.deltaY - last.deltaY; - var enabled = true; - if (typeof options === 'string') { - this.options.filter = options; - } else if (options instanceof Array) { - this.options.filter = options.join(); - } else if ((typeof options === 'undefined' ? 'undefined' : _typeof(options)) === 'object') { - if (options.container !== undefined) { - this.options.container = options.container; - } - if (options.filter !== undefined) { - this.options.filter = options.filter; - } - if (options.showButton !== undefined) { - this.options.showButton = options.showButton; - } - if (options.enabled !== undefined) { - enabled = options.enabled; - } - } else if (typeof options === 'boolean') { - this.options.filter = true; - enabled = options; - } else if (typeof options === 'function') { - this.options.filter = options; - enabled = true; - } - if (this.options.filter === false) { - enabled = false; - } + 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); - this.options.enabled = enabled; - } - this._clean(); - } - }, { - key: 'setModuleOptions', - value: function setModuleOptions(moduleOptions) { - this.moduleOptions = moduleOptions; - if (this.options.enabled === true) { - this._clean(); - if (this.options.container !== undefined) { - this.container = this.options.container; - } - this._create(); - } + 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; } - /** - * Create all DOM elements - * @private - */ + input.velocity = velocity; + input.velocityX = velocityX; + input.velocityY = velocityY; + input.direction = direction; + } - }, { - key: '_create', - value: function _create() { - var _this = this; + /** + * 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++; + } - this._clean(); - this.changedOptions = []; + return { + timeStamp: now(), + pointers: pointers, + center: getCenter(pointers), + deltaX: input.deltaX, + deltaY: input.deltaY + }; + } - var filter = this.options.filter; - var counter = 0; - var show = false; - for (var option in this.configureOptions) { - if (this.configureOptions.hasOwnProperty(option)) { - this.allowCreation = false; - show = false; - if (typeof filter === 'function') { - show = filter(option, []); - show = show || this._handleObject(this.configureOptions[option], [option], true); - } else if (filter === true || filter.indexOf(option) !== -1) { - show = true; - } + /** + * 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; - if (show !== false) { - this.allowCreation = true; + // no need to loop when only one touch + if (pointersLength === 1) { + return { + x: round(pointers[0].clientX), + y: round(pointers[0].clientY) + }; + } - // linebreak between categories - if (counter > 0) { - this._makeItem([]); - } - // a header for the category - this._makeHeader(option); + var x = 0, y = 0, i = 0; + while (i < pointersLength) { + x += pointers[i].clientX; + y += pointers[i].clientY; + i++; + } - // get the sub options - this._handleObject(this.configureOptions[option], [option]); - } - counter++; - } - } + return { + x: round(x / pointersLength), + y: round(y / pointersLength) + }; + } - if (this.options.showButton === true) { - (function () { - var generateButton = document.createElement('div'); - generateButton.className = 'vis-configuration vis-config-button'; - generateButton.innerHTML = 'generate options'; - generateButton.onclick = function () { - _this._printOptions(); - }; - generateButton.onmouseover = function () { - generateButton.className = 'vis-configuration vis-config-button hover'; - }; - generateButton.onmouseout = function () { - generateButton.className = 'vis-configuration vis-config-button'; - }; + /** + * 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 + }; + } - _this.optionsContainer = document.createElement('div'); - _this.optionsContainer.className = 'vis-configuration vis-config-option-container'; + /** + * 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; + } - _this.domElements.push(_this.optionsContainer); - _this.domElements.push(generateButton); - })(); - } + if (abs(x) >= abs(y)) { + return x < 0 ? DIRECTION_LEFT : DIRECTION_RIGHT; + } + return y < 0 ? DIRECTION_UP : DIRECTION_DOWN; + } - this._push(); - //~ this.colorPicker.insertTo(this.container); + /** + * 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]]; - /** - * draw all DOM elements on the screen - * @private - */ + return Math.sqrt((x * x) + (y * y)); + } - }, { - key: '_push', - value: function _push() { - this.wrapper = document.createElement('div'); - this.wrapper.className = 'vis-configuration-wrapper'; - this.container.appendChild(this.wrapper); - for (var i = 0; i < this.domElements.length; i++) { - this.wrapper.appendChild(this.domElements[i]); - } - - this._showPopupIfNeeded(); + /** + * 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; + } - /** - * delete all DOM elements - * @private - */ + /** + * 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); + } - }, { - key: '_clean', - value: function _clean() { - for (var i = 0; i < this.domElements.length; i++) { - this.wrapper.removeChild(this.domElements[i]); - } + /** + * 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); + } - if (this.wrapper !== undefined) { - this.container.removeChild(this.wrapper); - this.wrapper = undefined; - } - this.domElements = []; + var MOUSE_INPUT_MAP = { + mousedown: INPUT_START, + mousemove: INPUT_MOVE, + mouseup: INPUT_END + }; - this._removePopup(); - } + 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, { /** - * get the value from the actualOptions if it exists - * @param {array} path | where to look for the actual option - * @returns {*} - * @private + * handle mouse events + * @param {Object} ev */ + handler: function MEhandler(ev) { + var eventType = MOUSE_INPUT_MAP[ev.type]; - }, { - key: '_getValue', - value: function _getValue(path) { - var base = this.moduleOptions; - for (var i = 0; i < path.length; i++) { - if (base[path[i]] !== undefined) { - base = base[path[i]]; - } else { - base = undefined; - break; + // on start we want to have the left mouse button down + if (eventType & INPUT_START && ev.button === 0) { + this.pressed = true; } - } - return base; - } - /** - * all option elements are wrapped in an item - * @param path - * @param domElements - * @private - */ + if (eventType & INPUT_MOVE && ev.which !== 1) { + eventType = INPUT_END; + } - }, { - key: '_makeItem', - value: function _makeItem(path) { - var _arguments = arguments, - _this2 = this; + // mouse must be down, and mouse events are allowed (see the TouchMouse input) + if (!this.pressed || !this.allow) { + return; + } - if (this.allowCreation === true) { - var _len, domElements, _key; + if (eventType & INPUT_END) { + this.pressed = false; + } - var _ret2 = function () { - var item = document.createElement('div'); - item.className = 'vis-configuration vis-config-item vis-config-s' + path.length; + this.callback(this.manager, eventType, { + pointers: [ev], + changedPointers: [ev], + pointerType: INPUT_TYPE_MOUSE, + srcEvent: ev + }); + } + }); - for (_len = _arguments.length, domElements = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { - domElements[_key - 1] = _arguments[_key]; - } + var POINTER_INPUT_MAP = { + pointerdown: INPUT_START, + pointermove: INPUT_MOVE, + pointerup: INPUT_END, + pointercancel: INPUT_CANCEL, + pointerout: INPUT_CANCEL + }; - domElements.forEach(function (element) { - item.appendChild(element); - }); - _this2.domElements.push(item); - return { - v: _this2.domElements.length - }; - }(); + // 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 + }; - if ((typeof _ret2 === 'undefined' ? 'undefined' : _typeof(_ret2)) === "object") return _ret2.v; - } - return 0; - } + var POINTER_ELEMENT_EVENTS = 'pointerdown'; + var POINTER_WINDOW_EVENTS = 'pointermove pointerup pointercancel'; - /** - * header for major subjects - * @param name - * @private - */ + // IE10 has prefixed support, and case-sensitive + if (window.MSPointerEvent && !window.PointerEvent) { + POINTER_ELEMENT_EVENTS = 'MSPointerDown'; + POINTER_WINDOW_EVENTS = 'MSPointerMove MSPointerUp MSPointerCancel'; + } - }, { - key: '_makeHeader', - value: function _makeHeader(name) { - var div = document.createElement('div'); - div.className = 'vis-configuration vis-config-header'; - div.innerHTML = name; - this._makeItem([], div); - } + /** + * 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, { /** - * make a label, if it is an object label, it gets different styling. - * @param name - * @param path - * @param objectLabel - * @returns {HTMLElement} - * @private + * handle mouse events + * @param {Object} ev */ + handler: function PEhandler(ev) { + var store = this.store; + var removePointer = false; - }, { - key: '_makeLabel', - value: function _makeLabel(name, path) { - var objectLabel = arguments.length <= 2 || arguments[2] === undefined ? false : arguments[2]; + var eventTypeNormalized = ev.type.toLowerCase().replace('ms', ''); + var eventType = POINTER_INPUT_MAP[eventTypeNormalized]; + var pointerType = IE10_POINTER_TYPE_ENUM[ev.pointerType] || ev.pointerType; - var div = document.createElement('div'); - div.className = 'vis-configuration vis-config-label vis-config-s' + path.length; - if (objectLabel === true) { - div.innerHTML = '' + name + ':'; - } else { - div.innerHTML = name + ':'; - } - return div; - } + var isTouch = (pointerType == INPUT_TYPE_TOUCH); - /** - * make a dropdown list for multiple possible string optoins - * @param arr - * @param value - * @param path - * @private - */ + // get index of the event in the store + var storeIndex = inArray(store, ev.pointerId, 'pointerId'); - }, { - key: '_makeDropdown', - value: function _makeDropdown(arr, value, path) { - var select = document.createElement('select'); - select.className = 'vis-configuration vis-config-select'; - var selectedValue = 0; - if (value !== undefined) { - if (arr.indexOf(value) !== -1) { - selectedValue = arr.indexOf(value); + // 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; } - } - for (var i = 0; i < arr.length; i++) { - var option = document.createElement('option'); - option.value = arr[i]; - if (i === selectedValue) { - option.selected = 'selected'; + // it not found, so the pointer hasn't been down (so it's probably a hover) + if (storeIndex < 0) { + return; } - option.innerHTML = arr[i]; - select.appendChild(option); - } - var me = this; - select.onchange = function () { - me._update(this.value, path); - }; + // update the event in the store + store[storeIndex] = ev; - var label = this._makeLabel(path[path.length - 1], path); - this._makeItem(path, label, select); - } + this.callback(this.manager, eventType, { + pointers: store, + changedPointers: [ev], + pointerType: pointerType, + srcEvent: ev + }); - /** - * make a range object for numeric options - * @param arr - * @param value - * @param path - * @private - */ + if (removePointer) { + // remove from the store + store.splice(storeIndex, 1); + } + } + }); - }, { - key: '_makeRange', - value: function _makeRange(arr, value, path) { - var defaultValue = arr[0]; - var min = arr[1]; - var max = arr[2]; - var step = arr[3]; - var range = document.createElement('input'); - range.className = 'vis-configuration vis-config-range'; - try { - range.type = 'range'; // not supported on IE9 - range.min = min; - range.max = max; - } catch (err) {} - range.step = step; + var SINGLE_TOUCH_INPUT_MAP = { + touchstart: INPUT_START, + touchmove: INPUT_MOVE, + touchend: INPUT_END, + touchcancel: INPUT_CANCEL + }; - // set up the popup settings in case they are needed. - var popupString = ''; - var popupValue = 0; + var SINGLE_TOUCH_TARGET_EVENTS = 'touchstart'; + var SINGLE_TOUCH_WINDOW_EVENTS = 'touchstart touchmove touchend touchcancel'; - if (value !== undefined) { - var factor = 1.20; - if (value < 0 && value * factor < min) { - range.min = Math.ceil(value * factor); - popupValue = range.min; - popupString = 'range increased'; - } else if (value / factor < min) { - range.min = Math.ceil(value / factor); - popupValue = range.min; - popupString = 'range increased'; - } - if (value * factor > max && max !== 1) { - range.max = Math.ceil(value * factor); - popupValue = range.max; - popupString = 'range increased'; - } - range.value = value; - } else { - range.value = defaultValue; - } + /** + * Touch events input + * @constructor + * @extends Input + */ + function SingleTouchInput() { + this.evTarget = SINGLE_TOUCH_TARGET_EVENTS; + this.evWin = SINGLE_TOUCH_WINDOW_EVENTS; + this.started = false; - var input = document.createElement('input'); - input.className = 'vis-configuration vis-config-rangeinput'; - input.value = range.value; + Input.apply(this, arguments); + } - var me = this; - range.onchange = function () { - input.value = this.value;me._update(Number(this.value), path); - }; - range.oninput = function () { - input.value = this.value; - }; + inherit(SingleTouchInput, Input, { + handler: function TEhandler(ev) { + var type = SINGLE_TOUCH_INPUT_MAP[ev.type]; - var label = this._makeLabel(path[path.length - 1], path); - var itemIndex = this._makeItem(path, label, range, input); + // should we handle the touch events? + if (type === INPUT_START) { + this.started = true; + } - // if a popup is needed AND it has not been shown for this value, show it. - if (popupString !== '' && this.popupHistory[itemIndex] !== popupValue) { - this.popupHistory[itemIndex] = popupValue; - this._setupPopup(popupString, itemIndex); - } - } + if (!this.started) { + return; + } - /** - * prepare the popup - * @param string - * @param index - * @private - */ + var touches = normalizeSingleTouches.call(this, ev, type); - }, { - key: '_setupPopup', - value: function _setupPopup(string, index) { - var _this3 = this; + // when done, reset the started state + if (type & (INPUT_END | INPUT_CANCEL) && touches[0].length - touches[1].length === 0) { + this.started = false; + } - if (this.initialized === true && this.allowCreation === true && this.popupCounter < this.popupLimit) { - var div = document.createElement("div"); - div.id = "vis-configuration-popup"; - div.className = "vis-configuration-popup"; - div.innerHTML = string; - div.onclick = function () { - _this3._removePopup(); - }; - this.popupCounter += 1; - this.popupDiv = { html: div, index: index }; - } + this.callback(this.manager, type, { + pointers: touches[0], + changedPointers: touches[1], + pointerType: INPUT_TYPE_TOUCH, + srcEvent: ev + }); } + }); - /** - * remove the popup from the dom - * @private - */ + /** + * @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); - }, { - key: '_removePopup', - value: function _removePopup() { - if (this.popupDiv.html !== undefined) { - this.popupDiv.html.parentNode.removeChild(this.popupDiv.html); - clearTimeout(this.popupDiv.hideTimeout); - clearTimeout(this.popupDiv.deleteTimeout); - this.popupDiv = {}; - } + if (type & (INPUT_END | INPUT_CANCEL)) { + all = uniqueArray(all.concat(changed), 'identifier', true); } - /** - * Show the popup if it is needed. - * @private - */ + return [all, changed]; + } - }, { - key: '_showPopupIfNeeded', - value: function _showPopupIfNeeded() { - var _this4 = this; + var TOUCH_INPUT_MAP = { + touchstart: INPUT_START, + touchmove: INPUT_MOVE, + touchend: INPUT_END, + touchcancel: INPUT_CANCEL + }; - if (this.popupDiv.html !== undefined) { - var correspondingElement = this.domElements[this.popupDiv.index]; - var rect = correspondingElement.getBoundingClientRect(); - this.popupDiv.html.style.left = rect.left + "px"; - this.popupDiv.html.style.top = rect.top - 30 + "px"; // 30 is the height; - document.body.appendChild(this.popupDiv.html); - this.popupDiv.hideTimeout = setTimeout(function () { - _this4.popupDiv.html.style.opacity = 0; - }, 1500); - this.popupDiv.deleteTimeout = setTimeout(function () { - _this4._removePopup(); - }, 1800); - } - } + var TOUCH_TARGET_EVENTS = 'touchstart touchmove touchend touchcancel'; - /** - * make a checkbox for boolean options. - * @param defaultValue - * @param value - * @param path - * @private - */ + /** + * Multi-user touch events input + * @constructor + * @extends Input + */ + function TouchInput() { + this.evTarget = TOUCH_TARGET_EVENTS; + this.targetIds = {}; - }, { - key: '_makeCheckbox', - value: function _makeCheckbox(defaultValue, value, path) { - var checkbox = document.createElement('input'); - checkbox.type = 'checkbox'; - checkbox.className = 'vis-configuration vis-config-checkbox'; - checkbox.checked = defaultValue; - if (value !== undefined) { - checkbox.checked = value; - if (value !== defaultValue) { - if ((typeof defaultValue === 'undefined' ? 'undefined' : _typeof(defaultValue)) === 'object') { - if (value !== defaultValue.enabled) { - this.changedOptions.push({ path: path, value: value }); - } - } else { - this.changedOptions.push({ path: path, value: value }); - } - } - } + Input.apply(this, arguments); + } - var me = this; - checkbox.onchange = function () { - me._update(this.checked, path); - }; + inherit(TouchInput, Input, { + handler: function MTEhandler(ev) { + var type = TOUCH_INPUT_MAP[ev.type]; + var touches = getTouches.call(this, ev, type); + if (!touches) { + return; + } - var label = this._makeLabel(path[path.length - 1], path); - this._makeItem(path, label, checkbox); + this.callback(this.manager, type, { + pointers: touches[0], + changedPointers: touches[1], + pointerType: INPUT_TYPE_TOUCH, + srcEvent: ev + }); } + }); - /** - * make a text input field for string options. - * @param defaultValue - * @param value - * @param path - * @private - */ + /** + * @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; - }, { - key: '_makeTextInput', - value: function _makeTextInput(defaultValue, value, path) { - var checkbox = document.createElement('input'); - checkbox.type = 'text'; - checkbox.className = 'vis-configuration vis-config-text'; - checkbox.value = value; - if (value !== defaultValue) { - this.changedOptions.push({ path: path, value: value }); - } + // 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 me = this; - checkbox.onchange = function () { - me._update(this.value, path); - }; + var i, + targetTouches, + changedTouches = toArray(ev.changedTouches), + changedTargetTouches = [], + target = this.target; - var label = this._makeLabel(path[path.length - 1], path); - this._makeItem(path, label, checkbox); + // get target touches from touches + targetTouches = allTouches.filter(function(touch) { + return hasParent(touch.target, target); + }); + + // collect touches + if (type === INPUT_START) { + i = 0; + while (i < targetTouches.length) { + targetIds[targetTouches[i].identifier] = true; + i++; + } } - /** - * make a color field with a color picker for color fields - * @param arr - * @param value - * @param path - * @private - */ + // 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]); + } - }, { - key: '_makeColorField', - value: function _makeColorField(arr, value, path) { - var _this5 = this; + // cleanup removed touches + if (type & (INPUT_END | INPUT_CANCEL)) { + delete targetIds[changedTouches[i].identifier]; + } + i++; + } - var defaultColor = arr[1]; - var div = document.createElement('div'); - value = value === undefined ? defaultColor : value; + if (!changedTargetTouches.length) { + return; + } - if (value !== 'none') { - div.className = 'vis-configuration vis-config-colorBlock'; - div.style.backgroundColor = value; - } else { - div.className = 'vis-configuration vis-config-colorBlock none'; - } + return [ + // merge targetTouches with changedTargetTouches so it contains ALL touches, including 'end' and 'cancel' + uniqueArray(targetTouches.concat(changedTargetTouches), 'identifier', true), + changedTargetTouches + ]; + } - value = value === undefined ? defaultColor : value; - div.onclick = function () { - _this5._showColorPicker(value, div, path); - }; + /** + * 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 label = this._makeLabel(path[path.length - 1], path); - this._makeItem(path, label, div); - } + var handler = bindFn(this.handler, this); + this.touch = new TouchInput(this.manager, handler); + this.mouse = new MouseInput(this.manager, handler); + } + inherit(TouchMouseInput, Input, { /** - * used by the color buttons to call the color picker. - * @param event - * @param value - * @param div - * @param path - * @private + * handle mouse and touch events + * @param {Hammer} manager + * @param {String} inputEvent + * @param {Object} inputData */ + handler: function TMEhandler(manager, inputEvent, inputData) { + var isTouch = (inputData.pointerType == INPUT_TYPE_TOUCH), + isMouse = (inputData.pointerType == INPUT_TYPE_MOUSE); - }, { - key: '_showColorPicker', - value: function _showColorPicker(value, div, path) { - var _this6 = this; - - // clear the callback from this div - div.onclick = function () {}; + // 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; + } - this.colorPicker.insertTo(div); - this.colorPicker.show(); + // reset the allowMouse when we're done + if (inputEvent & (INPUT_END | INPUT_CANCEL)) { + this.mouse.allow = true; + } - this.colorPicker.setColor(value); - this.colorPicker.setUpdateCallback(function (color) { - var colorString = 'rgba(' + color.r + ',' + color.g + ',' + color.b + ',' + color.a + ')'; - div.style.backgroundColor = colorString; - _this6._update(colorString, path); - }); + this.callback(manager, inputEvent, inputData); + }, - // on close of the colorpicker, restore the callback. - this.colorPicker.setCloseCallback(function () { - div.onclick = function () { - _this6._showColorPicker(value, div, path); - }; - }); + /** + * 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'; + /** + * Touch Action + * sets the touchAction property or uses the js alternative + * @param {Manager} manager + * @param {String} value + * @constructor + */ + function TouchAction(manager, value) { + this.manager = manager; + this.set(value); + } + + TouchAction.prototype = { /** - * parse an object and draw the correct items - * @param obj - * @param path - * @private + * set the touchAction value on the element or enable the polyfill + * @param {String} value */ + set: function(value) { + // find out the touch-action by the event handlers + if (value == TOUCH_ACTION_COMPUTE) { + value = this.compute(); + } - }, { - key: '_handleObject', - value: function _handleObject(obj) { - var path = arguments.length <= 1 || arguments[1] === undefined ? [] : arguments[1]; - var checkOnly = arguments.length <= 2 || arguments[2] === undefined ? false : arguments[2]; + if (NATIVE_TOUCH_ACTION && this.manager.element.style) { + this.manager.element.style[PREFIXED_TOUCH_ACTION] = value; + } + this.actions = value.toLowerCase().trim(); + }, - var show = false; - var filter = this.options.filter; - var visibleInSet = false; - for (var subObj in obj) { - if (obj.hasOwnProperty(subObj)) { - show = true; - var item = obj[subObj]; - var newPath = util.copyAndExtendArray(path, subObj); - if (typeof filter === 'function') { - show = filter(subObj, path); + /** + * just re-set the touchAction value + */ + update: function() { + this.set(this.manager.options.touchAction); + }, - // if needed we must go deeper into the object. - if (show === false) { - if (!(item instanceof Array) && typeof item !== 'string' && typeof item !== 'boolean' && item instanceof Object) { - this.allowCreation = false; - show = this._handleObject(item, newPath, true); - this.allowCreation = checkOnly === false; - } + /** + * compute the value for the touchAction property based on the recognizer's settings + * @returns {String} value + */ + 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(' ')); + }, - if (show !== false) { - visibleInSet = true; - var value = this._getValue(newPath); + /** + * this method is called on each input cycle and provides the preventing of the browser behavior + * @param {Object} input + */ + preventDefaults: function(input) { + // not needed with native support for the touchAction property + if (NATIVE_TOUCH_ACTION) { + return; + } - if (item instanceof Array) { - this._handleArray(item, value, newPath); - } else if (typeof item === 'string') { - this._makeTextInput(item, value, newPath); - } else if (typeof item === 'boolean') { - this._makeCheckbox(item, value, newPath); - } else if (item instanceof Object) { - // collapse the physics options that are not enabled - var draw = true; - if (path.indexOf('physics') !== -1) { - if (this.moduleOptions.physics.solver !== subObj) { - draw = false; - } - } + var srcEvent = input.srcEvent; + var direction = input.offsetDirection; - if (draw === true) { - // initially collapse options with an disabled enabled option. - if (item.enabled !== undefined) { - var enabledPath = util.copyAndExtendArray(newPath, 'enabled'); - var enabledValue = this._getValue(enabledPath); - if (enabledValue === true) { - var label = this._makeLabel(subObj, newPath, true); - this._makeItem(newPath, label); - visibleInSet = this._handleObject(item, newPath) || visibleInSet; - } else { - this._makeCheckbox(item, enabledValue, newPath); - } - } else { - var _label = this._makeLabel(subObj, newPath, true); - this._makeItem(newPath, _label); - visibleInSet = this._handleObject(item, newPath) || visibleInSet; - } - } - } else { - console.error('dont know how to handle', item, subObj, newPath); - } - } + // if the touch action did prevented once this session + if (this.manager.session.prevented) { + srcEvent.preventDefault(); + return; } - } - return visibleInSet; - } - /** - * handle the array type of option - * @param optionName - * @param arr - * @param value - * @param path - * @private - */ + 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); - }, { - key: '_handleArray', - value: function _handleArray(arr, value, path) { - if (typeof arr[0] === 'string' && arr[0] === 'color') { - this._makeColorField(arr, value, path); - if (arr[1] !== value) { - this.changedOptions.push({ path: path, value: value }); + if (hasNone) { + //do not prevent defaults if this is a tap gesture + + var isTapPointer = input.pointers.length === 1; + var isTapMovement = input.distance < 2; + var isTapTouchTime = input.deltaTime < 250; + + if (isTapPointer && isTapMovement && isTapTouchTime) { + return; + } } - } else if (typeof arr[0] === 'string') { - this._makeDropdown(arr, value, path); - if (arr[0] !== value) { - this.changedOptions.push({ path: path, value: value }); + + if (hasPanX && hasPanY) { + // `pan-x pan-y` means browser handles all scrolling/panning, do not prevent + return; } - } else if (typeof arr[0] === 'number') { - this._makeRange(arr, value, path); - if (arr[0] !== value) { - this.changedOptions.push({ path: path, value: Number(value) }); + + if (hasNone || + (hasPanY && direction & DIRECTION_HORIZONTAL) || + (hasPanX && direction & DIRECTION_VERTICAL)) { + return this.preventSrc(srcEvent); } - } - } + }, /** - * called to update the network with the new settings. - * @param value - * @param path - * @private + * call preventDefault to prevent the browser's default behavior (scrolling in most cases) + * @param {Object} srcEvent */ - - }, { - key: '_update', - value: function _update(value, path) { - var options = this._constructOptions(value, path); - - if (this.parent.body && this.parent.body.emitter && this.parent.body.emitter.emit) { - this.parent.body.emitter.emit("configChange", options); - } - this.initialized = true; - this.parent.setOptions(options); + preventSrc: function(srcEvent) { + this.manager.session.prevented = true; + srcEvent.preventDefault(); } - }, { - key: '_constructOptions', - value: function _constructOptions(value, path) { - var optionsObj = arguments.length <= 2 || arguments[2] === undefined ? {} : arguments[2]; + }; - var pointer = optionsObj; + /** + * 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; + } - // when dropdown boxes can be string or boolean, we typecast it into correct types - value = value === 'true' ? true : value; - value = value === 'false' ? false : value; + var hasPanX = inStr(actions, TOUCH_ACTION_PAN_X); + var hasPanY = inStr(actions, TOUCH_ACTION_PAN_Y); - for (var i = 0; i < path.length; i++) { - if (path[i] !== 'global') { - if (pointer[path[i]] === undefined) { - pointer[path[i]] = {}; - } - if (i !== path.length - 1) { - pointer = pointer[path[i]]; - } else { - pointer[path[i]] = value; - } - } - } - return optionsObj; + // if both pan-x and pan-y are set (different recognizers + // for different directions, e.g. horizontal pan but vertical swipe?) + // we need none (as otherwise with pan-x pan-y combined none of these + // recognizers will work, since the browser would handle all panning + if (hasPanX && hasPanY) { + return TOUCH_ACTION_NONE; } - }, { - key: '_printOptions', - value: function _printOptions() { - var options = this.getOptions(); - this.optionsContainer.innerHTML = '
var options = ' + JSON.stringify(options, null, 2) + '
'; + + // pan-x OR pan-y + if (hasPanX || hasPanY) { + return hasPanX ? TOUCH_ACTION_PAN_X : TOUCH_ACTION_PAN_Y; } - }, { - key: 'getOptions', - value: function getOptions() { - var options = {}; - for (var i = 0; i < this.changedOptions.length; i++) { - this._constructOptions(this.changedOptions[i].value, this.changedOptions[i].path, options); - } - return options; + + // manipulation + if (inStr(actions, TOUCH_ACTION_MANIPULATION)) { + return TOUCH_ACTION_MANIPULATION; } - }]); - return Configurator; - }(); + return TOUCH_ACTION_AUTO; + } - exports.default = Configurator; + /** + * 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; -/***/ }, -/* 21 */ -/***/ function(module, exports, __webpack_require__) { + /** + * Recognizer + * Every recognizer needs to extend from this class. + * @constructor + * @param {Object} options + */ + function Recognizer(options) { + this.options = assign({}, this.defaults, options || {}); - 'use strict'; + this.id = uniqueId(); - Object.defineProperty(exports, "__esModule", { - value: true - }); + this.manager = null; - var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); + // default is enable true + this.options.enable = ifUndefined(this.options.enable, true); - function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + this.state = STATE_POSSIBLE; - var Hammer = __webpack_require__(22); - var hammerUtil = __webpack_require__(25); - var util = __webpack_require__(1); + this.simultaneous = {}; + this.requireFail = []; + } - var ColorPicker = function () { - function ColorPicker() { - var pixelRatio = arguments.length <= 0 || arguments[0] === undefined ? 1 : arguments[0]; + Recognizer.prototype = { + /** + * @virtual + * @type {Object} + */ + defaults: {}, - _classCallCheck(this, ColorPicker); + /** + * set options + * @param {Object} options + * @return {Recognizer} + */ + set: function(options) { + assign(this.options, options); - this.pixelRatio = pixelRatio; - this.generated = false; - this.centerCoordinates = { x: 289 / 2, y: 289 / 2 }; - this.r = 289 * 0.49; - this.color = { r: 255, g: 255, b: 255, a: 1.0 }; - this.hueCircle = undefined; - this.initialColor = { r: 255, g: 255, b: 255, a: 1.0 }; - this.previousColor = undefined; - this.applied = false; + // also update the touchAction, in case something changed about the directions/enabled state + this.manager && this.manager.touchAction.update(); + return this; + }, - // bound by - this.updateCallback = function () {}; - this.closeCallback = function () {}; + /** + * recognize simultaneous with an other recognizer. + * @param {Recognizer} otherRecognizer + * @returns {Recognizer} this + */ + recognizeWith: function(otherRecognizer) { + if (invokeArrayArg(otherRecognizer, 'recognizeWith', this)) { + return this; + } - // create all DOM elements - this._create(); - } + var simultaneous = this.simultaneous; + otherRecognizer = getRecognizerByNameIfManager(otherRecognizer, this); + if (!simultaneous[otherRecognizer.id]) { + simultaneous[otherRecognizer.id] = otherRecognizer; + otherRecognizer.recognizeWith(this); + } + return this; + }, - /** - * this inserts the colorPicker into a div from the DOM - * @param container - */ + /** + * 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; + } + otherRecognizer = getRecognizerByNameIfManager(otherRecognizer, this); + delete this.simultaneous[otherRecognizer.id]; + return this; + }, - _createClass(ColorPicker, [{ - key: 'insertTo', - value: function insertTo(container) { - if (this.hammer !== undefined) { - this.hammer.destroy(); - this.hammer = undefined; - } - this.container = container; - this.container.appendChild(this.frame); - this._bindHammer(); + /** + * recognizer can only run when an other is failing + * @param {Recognizer} otherRecognizer + * @returns {Recognizer} this + */ + requireFailure: function(otherRecognizer) { + if (invokeArrayArg(otherRecognizer, 'requireFailure', this)) { + return this; + } - this._setSize(); - } + var requireFail = this.requireFail; + otherRecognizer = getRecognizerByNameIfManager(otherRecognizer, this); + if (inArray(requireFail, otherRecognizer) === -1) { + requireFail.push(otherRecognizer); + otherRecognizer.requireFailure(this); + } + return this; + }, /** - * the callback is executed on apply and save. Bind it to the application - * @param callback + * 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; + } - }, { - key: 'setUpdateCallback', - value: function setUpdateCallback(callback) { - if (typeof callback === 'function') { - this.updateCallback = callback; - } else { - throw new Error("Function attempted to set as colorPicker update callback is not a function."); - } - } + otherRecognizer = getRecognizerByNameIfManager(otherRecognizer, this); + var index = inArray(this.requireFail, otherRecognizer); + if (index > -1) { + this.requireFail.splice(index, 1); + } + return this; + }, /** - * the callback is executed on apply and save. Bind it to the application - * @param callback + * has require failures boolean + * @returns {boolean} */ - - }, { - key: 'setCloseCallback', - value: function setCloseCallback(callback) { - if (typeof callback === 'function') { - this.closeCallback = callback; - } else { - throw new Error("Function attempted to set as colorPicker closing callback is not a function."); - } - } - }, { - key: '_isColorString', - value: function _isColorString(color) { - var htmlColors = { black: '#000000', navy: '#000080', darkblue: '#00008B', mediumblue: '#0000CD', blue: '#0000FF', darkgreen: '#006400', green: '#008000', teal: '#008080', darkcyan: '#008B8B', deepskyblue: '#00BFFF', darkturquoise: '#00CED1', mediumspringgreen: '#00FA9A', lime: '#00FF00', springgreen: '#00FF7F', aqua: '#00FFFF', cyan: '#00FFFF', midnightblue: '#191970', dodgerblue: '#1E90FF', lightseagreen: '#20B2AA', forestgreen: '#228B22', seagreen: '#2E8B57', darkslategray: '#2F4F4F', limegreen: '#32CD32', mediumseagreen: '#3CB371', turquoise: '#40E0D0', royalblue: '#4169E1', steelblue: '#4682B4', darkslateblue: '#483D8B', mediumturquoise: '#48D1CC', indigo: '#4B0082', darkolivegreen: '#556B2F', cadetblue: '#5F9EA0', cornflowerblue: '#6495ED', mediumaquamarine: '#66CDAA', dimgray: '#696969', slateblue: '#6A5ACD', olivedrab: '#6B8E23', slategray: '#708090', lightslategray: '#778899', mediumslateblue: '#7B68EE', lawngreen: '#7CFC00', chartreuse: '#7FFF00', aquamarine: '#7FFFD4', maroon: '#800000', purple: '#800080', olive: '#808000', gray: '#808080', skyblue: '#87CEEB', lightskyblue: '#87CEFA', blueviolet: '#8A2BE2', darkred: '#8B0000', darkmagenta: '#8B008B', saddlebrown: '#8B4513', darkseagreen: '#8FBC8F', lightgreen: '#90EE90', mediumpurple: '#9370D8', darkviolet: '#9400D3', palegreen: '#98FB98', darkorchid: '#9932CC', yellowgreen: '#9ACD32', sienna: '#A0522D', brown: '#A52A2A', darkgray: '#A9A9A9', lightblue: '#ADD8E6', greenyellow: '#ADFF2F', paleturquoise: '#AFEEEE', lightsteelblue: '#B0C4DE', powderblue: '#B0E0E6', firebrick: '#B22222', darkgoldenrod: '#B8860B', mediumorchid: '#BA55D3', rosybrown: '#BC8F8F', darkkhaki: '#BDB76B', silver: '#C0C0C0', mediumvioletred: '#C71585', indianred: '#CD5C5C', peru: '#CD853F', chocolate: '#D2691E', tan: '#D2B48C', lightgrey: '#D3D3D3', palevioletred: '#D87093', thistle: '#D8BFD8', orchid: '#DA70D6', goldenrod: '#DAA520', crimson: '#DC143C', gainsboro: '#DCDCDC', plum: '#DDA0DD', burlywood: '#DEB887', lightcyan: '#E0FFFF', lavender: '#E6E6FA', darksalmon: '#E9967A', violet: '#EE82EE', palegoldenrod: '#EEE8AA', lightcoral: '#F08080', khaki: '#F0E68C', aliceblue: '#F0F8FF', honeydew: '#F0FFF0', azure: '#F0FFFF', sandybrown: '#F4A460', wheat: '#F5DEB3', beige: '#F5F5DC', whitesmoke: '#F5F5F5', mintcream: '#F5FFFA', ghostwhite: '#F8F8FF', salmon: '#FA8072', antiquewhite: '#FAEBD7', linen: '#FAF0E6', lightgoldenrodyellow: '#FAFAD2', oldlace: '#FDF5E6', red: '#FF0000', fuchsia: '#FF00FF', magenta: '#FF00FF', deeppink: '#FF1493', orangered: '#FF4500', tomato: '#FF6347', hotpink: '#FF69B4', coral: '#FF7F50', darkorange: '#FF8C00', lightsalmon: '#FFA07A', orange: '#FFA500', lightpink: '#FFB6C1', pink: '#FFC0CB', gold: '#FFD700', peachpuff: '#FFDAB9', navajowhite: '#FFDEAD', moccasin: '#FFE4B5', bisque: '#FFE4C4', mistyrose: '#FFE4E1', blanchedalmond: '#FFEBCD', papayawhip: '#FFEFD5', lavenderblush: '#FFF0F5', seashell: '#FFF5EE', cornsilk: '#FFF8DC', lemonchiffon: '#FFFACD', floralwhite: '#FFFAF0', snow: '#FFFAFA', yellow: '#FFFF00', lightyellow: '#FFFFE0', ivory: '#FFFFF0', white: '#FFFFFF' }; - if (typeof color === 'string') { - return htmlColors[color]; - } - } + hasRequireFailures: function() { + return this.requireFail.length > 0; + }, /** - * Set the color of the colorPicker - * Supported formats: - * 'red' --> HTML color string - * '#ffffff' --> hex string - * 'rbg(255,255,255)' --> rgb string - * 'rgba(255,255,255,1.0)' --> rgba string - * {r:255,g:255,b:255} --> rgb object - * {r:255,g:255,b:255,a:1.0} --> rgba object - * @param color - * @param setInitial + * if the recognizer can recognize simultaneous with an other recognizer + * @param {Recognizer} otherRecognizer + * @returns {Boolean} */ + canRecognizeWith: function(otherRecognizer) { + return !!this.simultaneous[otherRecognizer.id]; + }, - }, { - key: 'setColor', - value: function setColor(color) { - var setInitial = arguments.length <= 1 || arguments[1] === undefined ? true : arguments[1]; + /** + * You should use `tryEmit` instead of `emit` directly to check + * that all the needed recognizers has failed before emitting. + * @param {Object} input + */ + emit: function(input) { + var self = this; + var state = this.state; - if (color === 'none') { - return; - } + function emit(event) { + self.manager.emit(event, input); + } - var rgba = void 0; + // 'panstart' and 'panmove' + if (state < STATE_ENDED) { + emit(self.options.event + stateStr(state)); + } - // if a html color shorthand is used, convert to hex - var htmlColor = this._isColorString(color); - if (htmlColor !== undefined) { - color = htmlColor; - } + emit(self.options.event); // simple 'eventName' events - // check format - if (util.isString(color) === true) { - if (util.isValidRGB(color) === true) { - var rgbaArray = color.substr(4).substr(0, color.length - 5).split(','); - rgba = { r: rgbaArray[0], g: rgbaArray[1], b: rgbaArray[2], a: 1.0 }; - } else if (util.isValidRGBA(color) === true) { - var _rgbaArray = color.substr(5).substr(0, color.length - 6).split(','); - rgba = { r: _rgbaArray[0], g: _rgbaArray[1], b: _rgbaArray[2], a: _rgbaArray[3] }; - } else if (util.isValidHex(color) === true) { - var rgbObj = util.hexToRGB(color); - rgba = { r: rgbObj.r, g: rgbObj.g, b: rgbObj.b, a: 1.0 }; - } - } else { - if (color instanceof Object) { - if (color.r !== undefined && color.g !== undefined && color.b !== undefined) { - var alpha = color.a !== undefined ? color.a : '1.0'; - rgba = { r: color.r, g: color.g, b: color.b, a: alpha }; - } + if (input.additionalEvent) { // additional event(panleft, panright, pinchin, pinchout...) + emit(input.additionalEvent); } - } - // set color - if (rgba === undefined) { - throw new Error("Unknown color passed to the colorPicker. Supported are strings: rgb, hex, rgba. Object: rgb ({r:r,g:g,b:b,[a:a]}). Supplied: " + JSON.stringify(color)); - } else { - this._setColor(rgba, setInitial); - } - } + // panend and pancancel + if (state >= STATE_ENDED) { + emit(self.options.event + stateStr(state)); + } + }, /** - * this shows the color picker. - * The hue circle is constructed once and stored. + * 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 */ - - }, { - key: 'show', - value: function show() { - if (this.closeCallback !== undefined) { - this.closeCallback(); - this.closeCallback = undefined; - } - - this.applied = false; - this.frame.style.display = 'block'; - this._generateHueCircle(); - } - - // ------------------------------------------ PRIVATE ----------------------------- // + tryEmit: function(input) { + if (this.canEmit()) { + return this.emit(input); + } + // it's failing anyway + this.state = STATE_FAILED; + }, /** - * Hide the picker. Is called by the cancel button. - * Optional boolean to store the previous color for easy access later on. - * @param storePrevious - * @private + * 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; + }, - }, { - key: '_hide', - value: function _hide() { - var _this = this; - - var storePrevious = arguments.length <= 0 || arguments[0] === undefined ? true : arguments[0]; + /** + * 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 = assign({}, inputData); - // store the previous color for next time; - if (storePrevious === true) { - this.previousColor = util.extend({}, this.color); - } + // is is enabled and allow recognizing? + if (!boolOrFn(this.options.enable, [this, inputDataClone])) { + this.reset(); + this.state = STATE_FAILED; + return; + } - if (this.applied === true) { - this.updateCallback(this.initialColor); - } + // reset when we've reached the end + if (this.state & (STATE_RECOGNIZED | STATE_CANCELLED | STATE_FAILED)) { + this.state = STATE_POSSIBLE; + } - this.frame.style.display = 'none'; + this.state = this.process(inputDataClone); - // call the closing callback, restoring the onclick method. - // this is in a setTimeout because it will trigger the show again before the click is done. - setTimeout(function () { - if (_this.closeCallback !== undefined) { - _this.closeCallback(); - _this.closeCallback = undefined; + // the recognizer has recognized a gesture + // so trigger an event + if (this.state & (STATE_BEGAN | STATE_CHANGED | STATE_ENDED | STATE_CANCELLED)) { + this.tryEmit(inputDataClone); } - }, 0); - } + }, /** - * bound to the save button. Saves and hides. - * @private + * return the state of the recognizer + * the actual recognizing happens in this method + * @virtual + * @param {Object} inputData + * @returns {Const} STATE */ - - }, { - key: '_save', - value: function _save() { - this.updateCallback(this.color); - this.applied = false; - this._hide(); - } + process: function(inputData) { }, // jshint ignore:line /** - * Bound to apply button. Saves but does not close. Is undone by the cancel button. - * @private + * return the preferred touch-action + * @virtual + * @returns {Array} */ - - }, { - key: '_apply', - value: function _apply() { - this.applied = true; - this.updateCallback(this.color); - this._updatePicker(this.color); - } + getTouchAction: function() { }, /** - * load the color from the previous session. - * @private + * called when the gesture isn't allowed to recognize + * like when another is being recognized or it is disabled + * @virtual */ + reset: function() { } + }; - }, { - key: '_loadLast', - value: function _loadLast() { - if (this.previousColor !== undefined) { - this.setColor(this.previousColor, false); - } else { - alert("There is no last color to load..."); - } + /** + * 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 ''; + } - /** - * set the color, place the picker - * @param rgba - * @param setInitial - * @private - */ - - }, { - key: '_setColor', - value: function _setColor(rgba) { - var setInitial = arguments.length <= 1 || arguments[1] === undefined ? true : arguments[1]; - - // store the initial color - if (setInitial === true) { - this.initialColor = util.extend({}, rgba); - } - - this.color = rgba; - var hsv = util.RGBToHSV(rgba.r, rgba.g, rgba.b); - - var angleConvert = 2 * Math.PI; - var radius = this.r * hsv.s; - var x = this.centerCoordinates.x + radius * Math.sin(angleConvert * hsv.h); - var y = this.centerCoordinates.y + radius * Math.cos(angleConvert * hsv.h); - - this.colorPickerSelector.style.left = x - 0.5 * this.colorPickerSelector.clientWidth + 'px'; - this.colorPickerSelector.style.top = y - 0.5 * this.colorPickerSelector.clientHeight + 'px'; + /** + * 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 ''; + } - this._updatePicker(rgba); + /** + * 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; + } + + /** + * This recognizer is just used as a base for the simple attribute recognizers. + * @constructor + * @extends Recognizer + */ + function AttrRecognizer() { + Recognizer.apply(this, arguments); + } + inherit(AttrRecognizer, Recognizer, { /** - * bound to opacity control - * @param value - * @private + * @namespace + * @memberof AttrRecognizer */ - - }, { - key: '_setOpacity', - value: function _setOpacity(value) { - this.color.a = value / 100; - this._updatePicker(this.color); - } + defaults: { + /** + * @type {Number} + * @default 1 + */ + pointers: 1 + }, /** - * bound to brightness control - * @param value - * @private + * Used to check if it the recognizer receives valid input, like input.distance > 10. + * @memberof AttrRecognizer + * @param {Object} input + * @returns {Boolean} recognized */ - - }, { - key: '_setBrightness', - value: function _setBrightness(value) { - var hsv = util.RGBToHSV(this.color.r, this.color.g, this.color.b); - hsv.v = value / 100; - var rgba = util.HSVToRGB(hsv.h, hsv.s, hsv.v); - rgba['a'] = this.color.a; - this.color = rgba; - this._updatePicker(); - } + attrTest: function(input) { + var optionPointers = this.options.pointers; + return optionPointers === 0 || input.pointers.length === optionPointers; + }, /** - * update the color picker. A black circle overlays the hue circle to mimic the brightness decreasing. - * @param rgba - * @private + * Process the input and return the state for the recognizer + * @memberof AttrRecognizer + * @param {Object} input + * @returns {*} State */ + process: function(input) { + var state = this.state; + var eventType = input.eventType; - }, { - key: '_updatePicker', - value: function _updatePicker() { - var rgba = arguments.length <= 0 || arguments[0] === undefined ? this.color : arguments[0]; - - var hsv = util.RGBToHSV(rgba.r, rgba.g, rgba.b); - var ctx = this.colorPickerCanvas.getContext('2d'); - if (this.pixelRation === undefined) { - this.pixelRatio = (window.devicePixelRatio || 1) / (ctx.webkitBackingStorePixelRatio || ctx.mozBackingStorePixelRatio || ctx.msBackingStorePixelRatio || ctx.oBackingStorePixelRatio || ctx.backingStorePixelRatio || 1); - } - ctx.setTransform(this.pixelRatio, 0, 0, this.pixelRatio, 0, 0); + var isRecognized = state & (STATE_BEGAN | STATE_CHANGED); + var isValid = this.attrTest(input); - // clear the canvas - var w = this.colorPickerCanvas.clientWidth; - var h = this.colorPickerCanvas.clientHeight; - ctx.clearRect(0, 0, w, h); - - ctx.putImageData(this.hueCircle, 0, 0); - ctx.fillStyle = 'rgba(0,0,0,' + (1 - hsv.v) + ')'; - ctx.circle(this.centerCoordinates.x, this.centerCoordinates.y, this.r); - ctx.fill(); - - this.brightnessRange.value = 100 * hsv.v; - this.opacityRange.value = 100 * rgba.a; - - this.initialColorDiv.style.backgroundColor = 'rgba(' + this.initialColor.r + ',' + this.initialColor.g + ',' + this.initialColor.b + ',' + this.initialColor.a + ')'; - this.newColorDiv.style.backgroundColor = 'rgba(' + this.color.r + ',' + this.color.g + ',' + this.color.b + ',' + this.color.a + ')'; + // 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; } + }); - /** - * used by create to set the size of the canvas. - * @private - */ - - }, { - key: '_setSize', - value: function _setSize() { - this.colorPickerCanvas.style.width = '100%'; - this.colorPickerCanvas.style.height = '100%'; + /** + * Pan + * Recognized when the pointer is down and moved in the allowed direction. + * @constructor + * @extends AttrRecognizer + */ + function PanRecognizer() { + AttrRecognizer.apply(this, arguments); - this.colorPickerCanvas.width = 289 * this.pixelRatio; - this.colorPickerCanvas.height = 289 * this.pixelRatio; - } + this.pX = null; + this.pY = null; + } + inherit(PanRecognizer, AttrRecognizer, { /** - * create all dom elements - * TODO: cleanup, lots of similar dom elements - * @private + * @namespace + * @memberof PanRecognizer */ + defaults: { + event: 'pan', + threshold: 10, + pointers: 1, + direction: DIRECTION_ALL + }, - }, { - key: '_create', - value: function _create() { - this.frame = document.createElement('div'); - this.frame.className = 'vis-color-picker'; + 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; + }, - this.colorPickerDiv = document.createElement('div'); - this.colorPickerSelector = document.createElement('div'); - this.colorPickerSelector.className = 'vis-selector'; - this.colorPickerDiv.appendChild(this.colorPickerSelector); + 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; - this.colorPickerCanvas = document.createElement('canvas'); - this.colorPickerDiv.appendChild(this.colorPickerCanvas); + // 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); + } + } + input.direction = direction; + return hasMoved && distance > options.threshold && direction & options.direction; + }, - if (!this.colorPickerCanvas.getContext) { - var noCanvas = document.createElement('DIV'); - noCanvas.style.color = 'red'; - noCanvas.style.fontWeight = 'bold'; - noCanvas.style.padding = '10px'; - noCanvas.innerHTML = 'Error: your browser does not support HTML canvas'; - this.colorPickerCanvas.appendChild(noCanvas); - } else { - var ctx = this.colorPickerCanvas.getContext("2d"); - this.pixelRatio = (window.devicePixelRatio || 1) / (ctx.webkitBackingStorePixelRatio || ctx.mozBackingStorePixelRatio || ctx.msBackingStorePixelRatio || ctx.oBackingStorePixelRatio || ctx.backingStorePixelRatio || 1); + attrTest: function(input) { + return AttrRecognizer.prototype.attrTest.call(this, input) && + (this.state & STATE_BEGAN || (!(this.state & STATE_BEGAN) && this.directionTest(input))); + }, - this.colorPickerCanvas.getContext("2d").setTransform(this.pixelRatio, 0, 0, this.pixelRatio, 0, 0); - } + emit: function(input) { - this.colorPickerDiv.className = 'vis-color'; + this.pX = input.deltaX; + this.pY = input.deltaY; - this.opacityDiv = document.createElement('div'); - this.opacityDiv.className = 'vis-opacity'; + var direction = directionStr(input.direction); - this.brightnessDiv = document.createElement('div'); - this.brightnessDiv.className = 'vis-brightness'; + if (direction) { + input.additionalEvent = this.options.event + direction; + } + this._super.emit.call(this, input); + } + }); - this.arrowDiv = document.createElement('div'); - this.arrowDiv.className = 'vis-arrow'; + /** + * 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); + } - this.opacityRange = document.createElement('input'); - try { - this.opacityRange.type = 'range'; // Not supported on IE9 - this.opacityRange.min = '0'; - this.opacityRange.max = '100'; - } catch (err) {} - this.opacityRange.value = '100'; - this.opacityRange.className = 'vis-range'; + inherit(PinchRecognizer, AttrRecognizer, { + /** + * @namespace + * @memberof PinchRecognizer + */ + defaults: { + event: 'pinch', + threshold: 0, + pointers: 2 + }, - this.brightnessRange = document.createElement('input'); - try { - this.brightnessRange.type = 'range'; // Not supported on IE9 - this.brightnessRange.min = '0'; - this.brightnessRange.max = '100'; - } catch (err) {} - this.brightnessRange.value = '100'; - this.brightnessRange.className = 'vis-range'; + getTouchAction: function() { + return [TOUCH_ACTION_NONE]; + }, - this.opacityDiv.appendChild(this.opacityRange); - this.brightnessDiv.appendChild(this.brightnessRange); + attrTest: function(input) { + return this._super.attrTest.call(this, input) && + (Math.abs(input.scale - 1) > this.options.threshold || this.state & STATE_BEGAN); + }, - var me = this; - this.opacityRange.onchange = function () { - me._setOpacity(this.value); - }; - this.opacityRange.oninput = function () { - me._setOpacity(this.value); - }; - this.brightnessRange.onchange = function () { - me._setBrightness(this.value); - }; - this.brightnessRange.oninput = function () { - me._setBrightness(this.value); - }; + emit: function(input) { + if (input.scale !== 1) { + var inOut = input.scale < 1 ? 'in' : 'out'; + input.additionalEvent = this.options.event + inOut; + } + this._super.emit.call(this, input); + } + }); - this.brightnessLabel = document.createElement("div"); - this.brightnessLabel.className = "vis-label vis-brightness"; - this.brightnessLabel.innerHTML = 'brightness:'; + /** + * Press + * Recognized when the pointer is down for x ms without any movement. + * @constructor + * @extends Recognizer + */ + function PressRecognizer() { + Recognizer.apply(this, arguments); - this.opacityLabel = document.createElement("div"); - this.opacityLabel.className = "vis-label vis-opacity"; - this.opacityLabel.innerHTML = 'opacity:'; + this._timer = null; + this._input = null; + } - this.newColorDiv = document.createElement("div"); - this.newColorDiv.className = "vis-new-color"; - this.newColorDiv.innerHTML = 'new'; + inherit(PressRecognizer, Recognizer, { + /** + * @namespace + * @memberof PressRecognizer + */ + defaults: { + event: 'press', + pointers: 1, + time: 251, // minimal time of the pointer to be pressed + threshold: 9 // a minimal movement is ok, but keep it low + }, - this.initialColorDiv = document.createElement("div"); - this.initialColorDiv.className = "vis-initial-color"; - this.initialColorDiv.innerHTML = 'initial'; + getTouchAction: function() { + return [TOUCH_ACTION_AUTO]; + }, - this.cancelButton = document.createElement("div"); - this.cancelButton.className = "vis-button vis-cancel"; - this.cancelButton.innerHTML = 'cancel'; - this.cancelButton.onclick = this._hide.bind(this, false); + 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.applyButton = document.createElement("div"); - this.applyButton.className = "vis-button vis-apply"; - this.applyButton.innerHTML = 'apply'; - this.applyButton.onclick = this._apply.bind(this); + this._input = input; - this.saveButton = document.createElement("div"); - this.saveButton.className = "vis-button vis-save"; - this.saveButton.innerHTML = 'save'; - this.saveButton.onclick = this._save.bind(this); + // 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; + }, - this.loadButton = document.createElement("div"); - this.loadButton.className = "vis-button vis-load"; - this.loadButton.innerHTML = 'load last'; - this.loadButton.onclick = this._loadLast.bind(this); + reset: function() { + clearTimeout(this._timer); + }, - this.frame.appendChild(this.colorPickerDiv); - this.frame.appendChild(this.arrowDiv); - this.frame.appendChild(this.brightnessLabel); - this.frame.appendChild(this.brightnessDiv); - this.frame.appendChild(this.opacityLabel); - this.frame.appendChild(this.opacityDiv); - this.frame.appendChild(this.newColorDiv); - this.frame.appendChild(this.initialColorDiv); + emit: function(input) { + if (this.state !== STATE_RECOGNIZED) { + return; + } - this.frame.appendChild(this.cancelButton); - this.frame.appendChild(this.applyButton); - this.frame.appendChild(this.saveButton); - this.frame.appendChild(this.loadButton); + 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); + } } + }); + + /** + * Rotate + * Recognized when two or more pointer are moving in a circular motion. + * @constructor + * @extends AttrRecognizer + */ + function RotateRecognizer() { + AttrRecognizer.apply(this, arguments); + } + inherit(RotateRecognizer, AttrRecognizer, { /** - * bind hammer to the color picker - * @private + * @namespace + * @memberof RotateRecognizer */ + defaults: { + event: 'rotate', + threshold: 0, + pointers: 2 + }, - }, { - key: '_bindHammer', - value: function _bindHammer() { - var _this2 = this; - - this.drag = {}; - this.pinch = {}; - this.hammer = new Hammer(this.colorPickerCanvas); - this.hammer.get('pinch').set({ enable: true }); + getTouchAction: function() { + return [TOUCH_ACTION_NONE]; + }, - hammerUtil.onTouch(this.hammer, function (event) { - _this2._moveSelector(event); - }); - this.hammer.on('tap', function (event) { - _this2._moveSelector(event); - }); - this.hammer.on('panstart', function (event) { - _this2._moveSelector(event); - }); - this.hammer.on('panmove', function (event) { - _this2._moveSelector(event); - }); - this.hammer.on('panend', function (event) { - _this2._moveSelector(event); - }); + attrTest: function(input) { + return this._super.attrTest.call(this, input) && + (Math.abs(input.rotation) > this.options.threshold || this.state & STATE_BEGAN); } + }); + + /** + * 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); + } + inherit(SwipeRecognizer, AttrRecognizer, { /** - * generate the hue circle. This is relatively heavy (200ms) and is done only once on the first time it is shown. - * @private + * @namespace + * @memberof SwipeRecognizer */ + defaults: { + event: 'swipe', + threshold: 10, + velocity: 0.3, + direction: DIRECTION_HORIZONTAL | DIRECTION_VERTICAL, + pointers: 1 + }, - }, { - key: '_generateHueCircle', - value: function _generateHueCircle() { - if (this.generated === false) { - var ctx = this.colorPickerCanvas.getContext('2d'); - if (this.pixelRation === undefined) { - this.pixelRatio = (window.devicePixelRatio || 1) / (ctx.webkitBackingStorePixelRatio || ctx.mozBackingStorePixelRatio || ctx.msBackingStorePixelRatio || ctx.oBackingStorePixelRatio || ctx.backingStorePixelRatio || 1); + getTouchAction: function() { + return PanRecognizer.prototype.getTouchAction.call(this); + }, + + attrTest: function(input) { + var direction = this.options.direction; + var velocity; + + if (direction & (DIRECTION_HORIZONTAL | DIRECTION_VERTICAL)) { + velocity = input.overallVelocity; + } else if (direction & DIRECTION_HORIZONTAL) { + velocity = input.overallVelocityX; + } else if (direction & DIRECTION_VERTICAL) { + velocity = input.overallVelocityY; } - ctx.setTransform(this.pixelRatio, 0, 0, this.pixelRatio, 0, 0); - // clear the canvas - var w = this.colorPickerCanvas.clientWidth; - var h = this.colorPickerCanvas.clientHeight; - ctx.clearRect(0, 0, w, h); + return this._super.attrTest.call(this, input) && + direction & input.offsetDirection && + input.distance > this.options.threshold && + input.maxPointers == this.options.pointers && + abs(velocity) > this.options.velocity && input.eventType & INPUT_END; + }, - // draw hue circle - var x = void 0, - y = void 0, - hue = void 0, - sat = void 0; - this.centerCoordinates = { x: w * 0.5, y: h * 0.5 }; - this.r = 0.49 * w; - var angleConvert = 2 * Math.PI / 360; - var hfac = 1 / 360; - var sfac = 1 / this.r; - var rgb = void 0; - for (hue = 0; hue < 360; hue++) { - for (sat = 0; sat < this.r; sat++) { - x = this.centerCoordinates.x + sat * Math.sin(angleConvert * hue); - y = this.centerCoordinates.y + sat * Math.cos(angleConvert * hue); - rgb = util.HSVToRGB(hue * hfac, sat * sfac, 1); - ctx.fillStyle = 'rgb(' + rgb.r + ',' + rgb.g + ',' + rgb.b + ')'; - ctx.fillRect(x - 0.5, y - 0.5, 2, 2); - } + emit: function(input) { + var direction = directionStr(input.offsetDirection); + if (direction) { + this.manager.emit(this.options.event + direction, input); } - ctx.strokeStyle = 'rgba(0,0,0,1)'; - ctx.circle(this.centerCoordinates.x, this.centerCoordinates.y, this.r); - ctx.stroke(); - this.hueCircle = ctx.getImageData(0, 0, w, h); - } - this.generated = true; + this.manager.emit(this.options.event, input); } + }); + + /** + * 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. + * + * 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); + + // previous time and center, + // used for tap counting + this.pTime = false; + this.pCenter = false; + + this._timer = null; + this._input = null; + this.count = 0; + } + inherit(TapRecognizer, Recognizer, { /** - * move the selector. This is called by hammer functions. - * - * @param event - * @private + * @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: 9, // a minimal movement is ok, but keep it low + posThreshold: 10 // a multi-tap can be a bit off the initial position + }, - }, { - key: '_moveSelector', - value: function _moveSelector(event) { - var rect = this.colorPickerDiv.getBoundingClientRect(); - var left = event.center.x - rect.left; - var top = event.center.y - rect.top; - - var centerY = 0.5 * this.colorPickerDiv.clientHeight; - var centerX = 0.5 * this.colorPickerDiv.clientWidth; + getTouchAction: function() { + return [TOUCH_ACTION_MANIPULATION]; + }, - var x = left - centerX; - var y = top - centerY; + process: function(input) { + var options = this.options; - var angle = Math.atan2(x, y); - var radius = 0.98 * Math.min(Math.sqrt(x * x + y * y), centerX); + var validPointers = input.pointers.length === options.pointers; + var validMovement = input.distance < options.threshold; + var validTouchTime = input.deltaTime < options.time; - var newTop = Math.cos(angle) * radius + centerY; - var newLeft = Math.sin(angle) * radius + centerX; + this.reset(); - this.colorPickerSelector.style.top = newTop - 0.5 * this.colorPickerSelector.clientHeight + 'px'; - this.colorPickerSelector.style.left = newLeft - 0.5 * this.colorPickerSelector.clientWidth + 'px'; + if ((input.eventType & INPUT_START) && (this.count === 0)) { + return this.failTimeout(); + } - // set color - var h = angle / (2 * Math.PI); - h = h < 0 ? h + 1 : h; - var s = radius / this.r; - var hsv = util.RGBToHSV(this.color.r, this.color.g, this.color.b); - hsv.h = h; - hsv.s = s; - var rgba = util.HSVToRGB(hsv.h, hsv.s, hsv.v); - rgba['a'] = this.color.a; - this.color = rgba; + // 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(); + } - // update previews - this.initialColorDiv.style.backgroundColor = 'rgba(' + this.initialColor.r + ',' + this.initialColor.g + ',' + this.initialColor.b + ',' + this.initialColor.a + ')'; - this.newColorDiv.style.backgroundColor = 'rgba(' + this.color.r + ',' + this.color.g + ',' + this.color.b + ',' + this.color.a + ')'; - } - }]); + var validInterval = this.pTime ? (input.timeStamp - this.pTime < options.interval) : true; + var validMultiTap = !this.pCenter || getDistance(this.pCenter, input.center) < options.posThreshold; - return ColorPicker; - }(); + this.pTime = input.timeStamp; + this.pCenter = input.center; - exports.default = ColorPicker; + if (!validMultiTap || !validInterval) { + this.count = 1; + } else { + this.count += 1; + } -/***/ }, -/* 22 */ -/***/ function(module, exports, __webpack_require__) { + this._input = input; - 'use strict'; + // 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; + }, - // Only load hammer.js when in a browser environment - // (loading hammer.js in a node.js environment gives errors) - if (typeof window !== 'undefined') { - var propagating = __webpack_require__(23); - var Hammer = window['Hammer'] || __webpack_require__(24); - module.exports = propagating(Hammer, { - preventDefault: 'mouse' - }); - } else { - module.exports = function () { - throw Error('hammer.js is only available in a browser, not in node.js.'); - }; + failTimeout: function() { + this._timer = setTimeoutContext(function() { + this.state = STATE_FAILED; + }, this.options.interval, this); + return STATE_FAILED; + }, + + reset: function() { + clearTimeout(this._timer); + }, + + emit: function() { + if (this.state == STATE_RECOGNIZED) { + this._input.tapCount = this.count; + this.manager.emit(this.options.event, this._input); + } + } + }); + + /** + * Simple way to create a 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); } -/***/ }, -/* 23 */ -/***/ function(module, exports, __webpack_require__) { + /** + * @const {string} + */ + Hammer.VERSION = '2.0.6'; - var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;'use strict'; + /** + * default settings + * @namespace + */ + 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, - (function (factory) { - if (true) { - // AMD. Register as an anonymous module. - !(__WEBPACK_AMD_DEFINE_ARRAY__ = [], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)); - } else if (typeof exports === 'object') { - // Node. Does not work with strict CommonJS, but - // only CommonJS-like environments that support module.exports, - // like Node. - module.exports = factory(); - } else { - // Browser globals (root is window) - window.propagating = factory(); - } - }(function () { - var _firstTarget = null; // singleton, will contain the target element where the touch event started + /** + * 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, - /** - * Extend an Hammer.js instance with event propagation. - * - * Features: - * - Events emitted by hammer will propagate in order from child to parent - * elements. - * - Events are extended with a function `event.stopPropagation()` to stop - * propagation to parent elements. - * - An option `preventDefault` to stop all default browser behavior. - * - * Usage: - * var hammer = propagatingHammer(new Hammer(element)); - * var hammer = propagatingHammer(new Hammer(element), {preventDefault: true}); - * - * @param {Hammer.Manager} hammer An hammer instance. - * @param {Object} [options] Available options: - * - `preventDefault: true | false | 'mouse' | 'touch' | 'pen'`. - * Enforce preventing the default browser behavior. - * Cannot be set to `false`. - * @return {Hammer.Manager} Returns the same hammer instance with extended - * functionality - */ - return function propagating(hammer, options) { - var _options = options || { - preventDefault: false - }; + /** + * @type {Boolean} + * @default true + */ + enable: true, - if (hammer.Manager) { - // This looks like the Hammer constructor. - // Overload the constructors with our own. - var Hammer = hammer; + /** + * 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, - var PropagatingHammer = function(element, options) { - var o = Object.create(_options); - if (options) Hammer.assign(o, options); - return propagating(new Hammer(element, o), o); - }; - Hammer.assign(PropagatingHammer, Hammer); + /** + * force an input class + * @type {Null|Function} + * @default null + */ + inputClass: null, - PropagatingHammer.Manager = function (element, options) { - var o = Object.create(_options); - if (options) Hammer.assign(o, options); - return propagating(new Hammer.Manager(element, o), o); - }; + /** + * 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] + ], - return PropagatingHammer; + /** + * 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: { + /** + * Disables text selection to improve the dragging gesture. Mainly for desktop browsers. + * @type {String} + * @default 'none' + */ + userSelect: 'none', + + /** + * Disable the Windows Phone grippers when pressing an element. + * @type {String} + * @default 'none' + */ + touchSelect: 'none', + + /** + * 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' + */ + touchCallout: 'none', + + /** + * Specifies whether zooming is enabled. Used by IE10> + * @type {String} + * @default 'none' + */ + contentZooming: 'none', + + /** + * Specifies that an entire element should be draggable instead of its contents. Mainly for desktop browsers. + * @type {String} + * @default 'none' + */ + userDrag: 'none', + + /** + * 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)' } + }; - // create a wrapper object which will override the functions - // `on`, `off`, `destroy`, and `emit` of the hammer instance - var wrapper = Object.create(hammer); + var STOP = 1; + var FORCED_STOP = 2; - // attach to DOM element - var element = hammer.element; + /** + * Manager + * @param {HTMLElement} element + * @param {Object} [options] + * @constructor + */ + function Manager(element, options) { + this.options = assign({}, Hammer.defaults, options || {}); - if(!element.hammer) element.hammer = []; - element.hammer.push(wrapper); + this.options.inputTarget = this.options.inputTarget || element; - // register an event to catch the start of a gesture and store the - // target in a singleton - hammer.on('hammer.input', function (event) { - if (_options.preventDefault === true || (_options.preventDefault === event.pointerType)) { - event.preventDefault(); - } - if (event.isFirst) { - _firstTarget = event.target; - } - }); + this.handlers = {}; + this.session = {}; + this.recognizers = []; - /** @type {Object.>} */ - wrapper._handlers = {}; + this.element = element; + this.input = createInputInstance(this); + this.touchAction = new TouchAction(this, this.options.touchAction); + + toggleCssProps(this, true); + + each(this.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 = { /** - * Register a handler for one or multiple events - * @param {String} events A space separated string with events - * @param {function} handler A callback function, called as handler(event) - * @returns {Hammer.Manager} Returns the hammer instance + * set options + * @param {Object} options + * @returns {Manager} */ - wrapper.on = function (events, handler) { - // register the handler - split(events).forEach(function (event) { - var _handlers = wrapper._handlers[event]; - if (!_handlers) { - wrapper._handlers[event] = _handlers = []; + set: function(options) { + assign(this.options, options); - // register the static, propagated handler - hammer.on(event, propagatedHandler); + // Options that need a little more setup + if (options.touchAction) { + this.touchAction.update(); } - _handlers.push(handler); - }); - - return wrapper; - }; + if (options.inputTarget) { + // Clean up existing event listeners and reinitialize + this.input.destroy(); + this.input.target = options.inputTarget; + this.input.init(); + } + return this; + }, /** - * Unregister a handler for one or multiple events - * @param {String} events A space separated string with events - * @param {function} [handler] Optional. The registered handler. If not - * provided, all handlers for given events - * are removed. - * @returns {Hammer.Manager} Returns the hammer instance + * 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] */ - wrapper.off = function (events, handler) { - // unregister the handler - split(events).forEach(function (event) { - var _handlers = wrapper._handlers[event]; - if (_handlers) { - _handlers = handler ? _handlers.filter(function (h) { - return h !== handler; - }) : []; + stop: function(force) { + this.session.stopped = force ? FORCED_STOP : STOP; + }, - if (_handlers.length > 0) { - wrapper._handlers[event] = _handlers; - } - else { - // remove static, propagated handler - hammer.off(event, propagatedHandler); - delete wrapper._handlers[event]; - } + /** + * 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; } - }); - return wrapper; - }; + // run the touch-action polyfill + this.touchAction.preventDefaults(inputData); - /** - * Emit to the event listeners - * @param {string} eventType - * @param {Event} event - */ - wrapper.emit = function(eventType, event) { - _firstTarget = event.target; - hammer.emit(eventType, event); - }; + var recognizer; + var recognizers = this.recognizers; - wrapper.destroy = function () { - // Detach from DOM element - var hammers = hammer.element.hammer; - var idx = hammers.indexOf(wrapper); - if(idx !== -1) hammers.splice(idx,1); - if(!hammers.length) delete hammer.element.hammer; + // 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; - // clear all handlers - wrapper._handlers = {}; + // 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; + } - // call original hammer destroy - hammer.destroy(); - }; + var i = 0; + while (i < recognizers.length) { + recognizer = recognizers[i]; - // split a string with space separated words - function split(events) { - return events.match(/[^ ]+/g); - } + // 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++; + } + }, /** - * A static event handler, applying event propagation. - * @param {Object} event + * get a recognizer by its event name. + * @param {Recognizer|String} recognizer + * @returns {Recognizer|Null} */ - function propagatedHandler(event) { - // let only a single hammer instance handle this event - if (event.type !== 'hammer.input') { - // it is possible that the same srcEvent is used with multiple hammer events, - // we keep track on which events are handled in an object _handled - if (!event.srcEvent._handled) { - event.srcEvent._handled = {}; + get: function(recognizer) { + if (recognizer instanceof Recognizer) { + return recognizer; } - if (event.srcEvent._handled[event.type]) { - return; - } - else { - event.srcEvent._handled[event.type] = true; + var recognizers = this.recognizers; + for (var i = 0; i < recognizers.length; i++) { + if (recognizers[i].options.event == recognizer) { + return recognizers[i]; + } } - } + return null; + }, - // attach a stopPropagation function to the event - var stopped = false; - event.stopPropagation = function () { - stopped = true; - }; + /** + * 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; + } - //wrap the srcEvent's stopPropagation to also stop hammer propagation: - var srcStop = event.srcEvent.stopPropagation.bind(event.srcEvent); - if(typeof srcStop == "function") { - event.srcEvent.stopPropagation = function(){ - srcStop(); - event.stopPropagation(); + // remove existing + var existing = this.get(recognizer.options.event); + if (existing) { + this.remove(existing); } - } - // attach firstTarget property to the event - event.firstTarget = _firstTarget; + this.recognizers.push(recognizer); + recognizer.manager = this; - // propagate over all elements (until stopped) - var elem = _firstTarget; - while (elem && !stopped) { - var elemHammer = elem.hammer; - if(elemHammer){ - var _handlers; - for(var k = 0; k < elemHammer.length; k++){ - _handlers = elemHammer[k]._handlers[event.type]; - if(_handlers) for (var i = 0; i < _handlers.length && !stopped; i++) { - _handlers[i](event); + this.touchAction.update(); + return recognizer; + }, + + /** + * remove a recognizer by name or instance + * @param {Recognizer|String} recognizer + * @returns {Manager} + */ + remove: function(recognizer) { + if (invokeArrayArg(recognizer, 'remove', this)) { + return this; + } + + recognizer = this.get(recognizer); + + // let's make sure this recognizer exists + if (recognizer) { + var recognizers = this.recognizers; + var index = inArray(recognizers, recognizer); + + if (index !== -1) { + recognizers.splice(index, 1); + this.touchAction.update(); } - } } - elem = elem.parentNode; - } - } - return wrapper; - }; - })); + return this; + }, + /** + * 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; + }, -/***/ }, -/* 24 */ -/***/ function(module, exports, __webpack_require__) { + /** + * 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] && handlers[event].splice(inArray(handlers[event], handler), 1); + } + }); + return this; + }, - var __WEBPACK_AMD_DEFINE_RESULT__;/*! Hammer.JS - v2.0.6 - 2015-12-23 - * http://hammerjs.github.io/ - * - * Copyright (c) 2015 Jorik Tangelder; - * Licensed under the license */ - (function(window, document, exportName, undefined) { - 'use strict'; + /** + * 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); + } - var VENDOR_PREFIXES = ['', 'webkit', 'Moz', 'MS', 'ms', 'o']; - var TEST_ELEMENT = document.createElement('div'); + // no handlers, so skip it all + var handlers = this.handlers[event] && this.handlers[event].slice(); + if (!handlers || !handlers.length) { + return; + } - var TYPE_FUNCTION = 'function'; + data.type = event; + data.preventDefault = function() { + data.srcEvent.preventDefault(); + }; - var round = Math.round; - var abs = Math.abs; - var now = Date.now; + var i = 0; + while (i < handlers.length) { + handlers[i](data); + i++; + } + }, - /** - * set a timeout with a given scope - * @param {Function} fn - * @param {Number} timeout - * @param {Object} context - * @returns {number} - */ - function setTimeoutContext(fn, timeout, context) { - return setTimeout(bindFn(fn, context), timeout); - } + /** + * 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); - /** - * 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} - */ - function invokeArrayArg(arg, fn, context) { - if (Array.isArray(arg)) { - each(arg, context[fn], context); - return true; + this.handlers = {}; + this.session = {}; + this.input.destroy(); + this.element = null; } - return false; - } + }; /** - * walk objects and arrays - * @param {Object} obj - * @param {Function} iterator - * @param {Object} context + * add/remove the css properties as defined in manager.options.cssProps + * @param {Manager} manager + * @param {Boolean} add */ - function each(obj, iterator, context) { - var i; - - if (!obj) { + function toggleCssProps(manager, add) { + var element = manager.element; + if (!element.style) { return; } - - 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); - } - } + each(manager.options.cssProps, function(value, name) { + element.style[prefixed(element.style, name)] = add ? value : ''; + }); } /** - * wrap a method with a deprecation warning and stack trace - * @param {Function} method - * @param {String} name - * @param {String} message - * @returns {Function} A new function wrapping the supplied method. + * trigger dom event + * @param {String} event + * @param {Object} data */ - function deprecate(method, name, message) { - var deprecationMessage = 'DEPRECATED METHOD: ' + name + '\n' + message + ' AT \n'; - return function() { - var e = new Error('get-stack-trace'); - var stack = e && e.stack ? e.stack.replace(/^[^\(]+?[\n$]/gm, '') - .replace(/^\s+at\s+/gm, '') - .replace(/^Object.\s*\(/gm, '{anonymous}()@') : 'Unknown Stack Trace'; - - var log = window.console && (window.console.warn || window.console.log); - if (log) { - log.call(window.console, deprecationMessage, stack); - } - return method.apply(this, arguments); - }; + function triggerDomEvent(event, data) { + var gestureEvent = document.createEvent('Event'); + gestureEvent.initEvent(event, true, true); + gestureEvent.gesture = data; + data.target.dispatchEvent(gestureEvent); } - /** - * extend object. - * means that properties in dest will be overwritten by the ones in src. - * @param {Object} target - * @param {...Object} objects_to_assign - * @returns {Object} target - */ - var assign; - if (typeof Object.assign !== 'function') { - assign = function assign(target) { - if (target === undefined || target === null) { - throw new TypeError('Cannot convert undefined or null to object'); - } + assign(Hammer, { + INPUT_START: INPUT_START, + INPUT_MOVE: INPUT_MOVE, + INPUT_END: INPUT_END, + INPUT_CANCEL: INPUT_CANCEL, - var output = Object(target); - for (var index = 1; index < arguments.length; index++) { - var source = arguments[index]; - if (source !== undefined && source !== null) { - for (var nextKey in source) { - if (source.hasOwnProperty(nextKey)) { - output[nextKey] = source[nextKey]; - } - } - } - } - return output; - }; + 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, + assign: assign, + inherit: inherit, + bindFn: bindFn, + prefixed: prefixed + }); + + // this prevents errors when Hammer is loaded in the presence of an AMD + // style loader but by script tag, not by the loader. + var freeGlobal = (typeof window !== 'undefined' ? window : (typeof self !== 'undefined' ? self : {})); // jshint ignore:line + freeGlobal.Hammer = Hammer; + + if (true) { + !(__WEBPACK_AMD_DEFINE_RESULT__ = function() { + return Hammer; + }.call(exports, __webpack_require__, exports, module), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)); + } else if (typeof module != 'undefined' && module.exports) { + module.exports = Hammer; } else { - assign = Object.assign; + window[exportName] = Hammer; } - /** - * extend object. - * means that properties in dest will be overwritten by the ones in src. - * @param {Object} dest - * @param {Object} src - * @param {Boolean=false} [merge] - * @returns {Object} dest - */ - var extend = deprecate(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; - }, 'extend', 'Use `assign`.'); + })(window, document, 'Hammer'); - /** - * 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 - */ - var merge = deprecate(function merge(dest, src) { - return extend(dest, src, true); - }, 'merge', 'Use `assign`.'); +/***/ }, +/* 23 */ +/***/ function(module, exports, __webpack_require__) { + + var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;"use strict"; /** - * simple class inheritance - * @param {Function} child - * @param {Function} base - * @param {Object} [properties] + * Created by Alex on 11/6/2014. */ - function inherit(child, base, properties) { - var baseP = base.prototype, - childP; - childP = child.prototype = Object.create(baseP); - childP.constructor = child; - childP._super = baseP; + // https://github.com/umdjs/umd/blob/master/returnExports.js#L40-L60 + // if the module has no dependencies, the above pattern can be simplified to + (function (root, factory) { + if (true) { + // AMD. Register as an anonymous module. + !(__WEBPACK_AMD_DEFINE_ARRAY__ = [], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)); + } else if (typeof exports === 'object') { + // Node. Does not work with strict CommonJS, but + // only CommonJS-like environments that support module.exports, + // like Node. + module.exports = factory(); + } else { + // Browser globals (root is window) + root.keycharm = factory(); + } + }(this, function () { - if (properties) { - assign(childP, properties); - } - } + function keycharm(options) { + var preventDefault = options && options.preventDefault || false; - /** - * simple function bind - * @param {Function} fn - * @param {Object} context - * @returns {Function} - */ - function bindFn(fn, context) { - return function boundFn() { - return fn.apply(context, arguments); - }; - } + var container = options && options.container || window; - /** - * 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} - */ - function boolOrFn(val, args) { - if (typeof val == TYPE_FUNCTION) { - return val.apply(args ? args[0] || undefined : undefined, args); - } - return val; - } + var _exportFunctions = {}; + var _bound = {keydown:{}, keyup:{}}; + var _keys = {}; + var i; - /** - * use the val2 when val1 is undefined - * @param {*} val1 - * @param {*} val2 - * @returns {*} - */ - function ifUndefined(val1, val2) { - return (val1 === undefined) ? val2 : val1; - } + // a - z + for (i = 97; i <= 122; i++) {_keys[String.fromCharCode(i)] = {code:65 + (i - 97), shift: false};} + // A - Z + for (i = 65; i <= 90; i++) {_keys[String.fromCharCode(i)] = {code:i, shift: true};} + // 0 - 9 + for (i = 0; i <= 9; i++) {_keys['' + i] = {code:48 + i, shift: false};} + // F1 - F12 + for (i = 1; i <= 12; i++) {_keys['F' + i] = {code:111 + i, shift: false};} + // num0 - num9 + for (i = 0; i <= 9; i++) {_keys['num' + i] = {code:96 + i, shift: false};} - /** - * addEventListener with multiple events at once - * @param {EventTarget} target - * @param {String} types - * @param {Function} handler - */ - function addEventListeners(target, types, handler) { - each(splitStr(types), function(type) { - target.addEventListener(type, handler, false); - }); - } + // numpad misc + _keys['num*'] = {code:106, shift: false}; + _keys['num+'] = {code:107, shift: false}; + _keys['num-'] = {code:109, shift: false}; + _keys['num/'] = {code:111, shift: false}; + _keys['num.'] = {code:110, shift: false}; + // arrows + _keys['left'] = {code:37, shift: false}; + _keys['up'] = {code:38, shift: false}; + _keys['right'] = {code:39, shift: false}; + _keys['down'] = {code:40, shift: false}; + // extra keys + _keys['space'] = {code:32, shift: false}; + _keys['enter'] = {code:13, shift: false}; + _keys['shift'] = {code:16, shift: undefined}; + _keys['esc'] = {code:27, shift: false}; + _keys['backspace'] = {code:8, shift: false}; + _keys['tab'] = {code:9, shift: false}; + _keys['ctrl'] = {code:17, shift: false}; + _keys['alt'] = {code:18, shift: false}; + _keys['delete'] = {code:46, shift: false}; + _keys['pageup'] = {code:33, shift: false}; + _keys['pagedown'] = {code:34, shift: false}; + // symbols + _keys['='] = {code:187, shift: false}; + _keys['-'] = {code:189, shift: false}; + _keys[']'] = {code:221, shift: false}; + _keys['['] = {code:219, shift: false}; - /** - * removeEventListener with multiple events at once - * @param {EventTarget} target - * @param {String} types - * @param {Function} handler - */ - function removeEventListeners(target, types, handler) { - each(splitStr(types), function(type) { - target.removeEventListener(type, handler, false); - }); - } - /** - * find if a node is in the given parent - * @method hasParent - * @param {HTMLElement} node - * @param {HTMLElement} parent - * @return {Boolean} found - */ - function hasParent(node, parent) { - while (node) { - if (node == parent) { - return true; - } - node = node.parentNode; - } - return false; - } - /** - * small indexOf wrapper - * @param {String} str - * @param {String} find - * @returns {Boolean} found - */ - function inStr(str, find) { - return str.indexOf(find) > -1; - } + var down = function(event) {handleEvent(event,'keydown');}; + var up = function(event) {handleEvent(event,'keyup');}; - /** - * split string on whitespace - * @param {String} str - * @returns {Array} words - */ - function splitStr(str) { - return str.trim().split(/\s+/g); - } + // handle the actualy bound key with the event + var handleEvent = function(event,type) { + if (_bound[type][event.keyCode] !== undefined) { + var bound = _bound[type][event.keyCode]; + for (var i = 0; i < bound.length; i++) { + if (bound[i].shift === undefined) { + bound[i].fn(event); + } + else if (bound[i].shift == true && event.shiftKey == true) { + bound[i].fn(event); + } + else if (bound[i].shift == false && event.shiftKey == false) { + bound[i].fn(event); + } + } - /** - * 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 - */ - 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++; + if (preventDefault == true) { + event.preventDefault(); } - return -1; - } - } + } + }; - /** - * convert array-like objects to real arrays - * @param {Object} obj - * @returns {Array} - */ - function toArray(obj) { - return Array.prototype.slice.call(obj, 0); - } + // bind a key to a callback + _exportFunctions.bind = function(key, callback, type) { + if (type === undefined) { + type = 'keydown'; + } + if (_keys[key] === undefined) { + throw new Error("unsupported key: " + key); + } + if (_bound[type][_keys[key].code] === undefined) { + _bound[type][_keys[key].code] = []; + } + _bound[type][_keys[key].code].push({fn:callback, shift:_keys[key].shift}); + }; - /** - * 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 uniqueArray(src, key, sort) { - var results = []; - var values = []; - var i = 0; - while (i < src.length) { - var val = key ? src[i][key] : src[i]; - if (inArray(values, val) < 0) { - results.push(src[i]); + // bind all keys to a call back (demo purposes) + _exportFunctions.bindAll = function(callback, type) { + if (type === undefined) { + type = 'keydown'; + } + for (var key in _keys) { + if (_keys.hasOwnProperty(key)) { + _exportFunctions.bind(key,callback,type); + } + } + }; + + // get the key label from an event + _exportFunctions.getKey = function(event) { + for (var key in _keys) { + if (_keys.hasOwnProperty(key)) { + if (event.shiftKey == true && _keys[key].shift == true && event.keyCode == _keys[key].code) { + return key; + } + else if (event.shiftKey == false && _keys[key].shift == false && event.keyCode == _keys[key].code) { + return key; + } + else if (event.keyCode == _keys[key].code && key == 'shift') { + return key; + } + } + } + return "unknown key, currently not supported"; + }; + + // unbind either a specific callback from a key or all of them (by leaving callback undefined) + _exportFunctions.unbind = function(key, callback, type) { + if (type === undefined) { + type = 'keydown'; + } + if (_keys[key] === undefined) { + throw new Error("unsupported key: " + key); + } + if (callback !== undefined) { + var newBindings = []; + var bound = _bound[type][_keys[key].code]; + if (bound !== undefined) { + for (var i = 0; i < bound.length; i++) { + if (!(bound[i].fn == callback && bound[i].shift == _keys[key].shift)) { + newBindings.push(_bound[type][_keys[key].code][i]); + } + } } - values[i] = val; - i++; - } + _bound[type][_keys[key].code] = newBindings; + } + else { + _bound[type][_keys[key].code] = []; + } + }; - if (sort) { - if (!key) { - results = results.sort(); - } else { - results = results.sort(function sortUniqueArray(a, b) { - return a[key] > b[key]; - }); - } - } + // reset all bound variables. + _exportFunctions.reset = function() { + _bound = {keydown:{}, keyup:{}}; + }; - return results; - } + // unbind all listeners and reset all variables. + _exportFunctions.destroy = function() { + _bound = {keydown:{}, keyup:{}}; + container.removeEventListener('keydown', down, true); + container.removeEventListener('keyup', up, true); + }; - /** - * get the prefixed property - * @param {Object} obj - * @param {String} property - * @returns {String|Undefined} prefixed - */ - function prefixed(obj, property) { - var prefix, prop; - var camelProp = property[0].toUpperCase() + property.slice(1); + // create listeners. + container.addEventListener('keydown',down,true); + container.addEventListener('keyup',up,true); - var i = 0; - while (i < VENDOR_PREFIXES.length) { - prefix = VENDOR_PREFIXES[i]; - prop = (prefix) ? prefix + camelProp : property; + // return the public functions. + return _exportFunctions; + } - if (prop in obj) { - return prop; - } - i++; - } - return undefined; - } + return keycharm; + })); - /** - * get a unique id - * @returns {number} uniqueId - */ - var _uniqueId = 1; - function uniqueId() { - return _uniqueId++; - } - /** - * get the window object of an element - * @param {HTMLElement} element - * @returns {DocumentView|Window} - */ - function getWindowForElement(element) { - var doc = element.ownerDocument || element; - return (doc.defaultView || doc.parentWindow || window); - } - var MOBILE_REGEX = /mobile|tablet|ip(ad|hone|od)|android/i; - 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); +/***/ }, +/* 24 */ +/***/ function(module, exports, __webpack_require__) { - var INPUT_TYPE_TOUCH = 'touch'; - var INPUT_TYPE_PEN = 'pen'; - var INPUT_TYPE_MOUSE = 'mouse'; - var INPUT_TYPE_KINECT = 'kinect'; + 'use strict'; - var COMPUTE_INTERVAL = 25; + // utils + exports.util = __webpack_require__(1); + exports.DOMutil = __webpack_require__(8); - var INPUT_START = 1; - var INPUT_MOVE = 2; - var INPUT_END = 4; - var INPUT_CANCEL = 8; + // data + exports.DataSet = __webpack_require__(9); + exports.DataView = __webpack_require__(11); + exports.Queue = __webpack_require__(10); - var DIRECTION_NONE = 1; - var DIRECTION_LEFT = 2; - var DIRECTION_RIGHT = 4; - var DIRECTION_UP = 8; - var DIRECTION_DOWN = 16; + // Timeline + exports.Timeline = __webpack_require__(25); + exports.Graph2d = __webpack_require__(50); + exports.timeline = { + Core: __webpack_require__(33), + DateUtil: __webpack_require__(32), + Range: __webpack_require__(30), + stack: __webpack_require__(37), + TimeStep: __webpack_require__(35), - var DIRECTION_HORIZONTAL = DIRECTION_LEFT | DIRECTION_RIGHT; - var DIRECTION_VERTICAL = DIRECTION_UP | DIRECTION_DOWN; - var DIRECTION_ALL = DIRECTION_HORIZONTAL | DIRECTION_VERTICAL; + components: { + items: { + Item: __webpack_require__(39), + BackgroundItem: __webpack_require__(43), + BoxItem: __webpack_require__(41), + PointItem: __webpack_require__(42), + RangeItem: __webpack_require__(38) + }, - var PROPS_XY = ['x', 'y']; - var PROPS_CLIENT_XY = ['clientX', 'clientY']; + BackgroundGroup: __webpack_require__(40), + Component: __webpack_require__(31), + CurrentTime: __webpack_require__(48), + CustomTime: __webpack_require__(46), + DataAxis: __webpack_require__(52), + DataScale: __webpack_require__(53), + GraphGroup: __webpack_require__(54), + Group: __webpack_require__(36), + ItemSet: __webpack_require__(34), + Legend: __webpack_require__(58), + LineGraph: __webpack_require__(51), + TimeAxis: __webpack_require__(44) + } + }; - /** - * 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; + // bundled external libraries + exports.moment = __webpack_require__(2); + exports.Hammer = __webpack_require__(20); + exports.keycharm = __webpack_require__(23); - // 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); - } - }; +/***/ }, +/* 25 */ +/***/ function(module, exports, __webpack_require__) { - this.init(); + 'use strict'; - } + var _Configurator = __webpack_require__(26); - Input.prototype = { - /** - * should handle the inputEvent data and trigger the callback - * @virtual - */ - handler: function() { }, + var _Configurator2 = _interopRequireDefault(_Configurator); - /** - * bind the events - */ - 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); - }, + var _Validator = __webpack_require__(29); - /** - * unbind the events - */ - 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); - } - }; + var _Validator2 = _interopRequireDefault(_Validator); - /** - * 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; + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - 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); - } + var Emitter = __webpack_require__(13); + var Hammer = __webpack_require__(20); + var moment = __webpack_require__(2); + var util = __webpack_require__(1); + var DataSet = __webpack_require__(9); + var DataView = __webpack_require__(11); + var Range = __webpack_require__(30); + var Core = __webpack_require__(33); + var TimeAxis = __webpack_require__(44); + var CurrentTime = __webpack_require__(48); + var CustomTime = __webpack_require__(46); + var ItemSet = __webpack_require__(34); + + var printStyle = __webpack_require__(29).printStyle; + var allOptions = __webpack_require__(49).allOptions; + var configureOptions = __webpack_require__(49).configureOptions; /** - * handle input events - * @param {Manager} manager - * @param {String} eventType - * @param {Object} input + * Create a timeline visualization + * @param {HTMLElement} container + * @param {vis.DataSet | vis.DataView | Array} [items] + * @param {vis.DataSet | vis.DataView | Array} [groups] + * @param {Object} [options] See Timeline.setOptions for the available options. + * @constructor + * @extends Core */ - 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)); + function Timeline(container, items, groups, options) { - input.isFirst = !!isFirst; - input.isFinal = !!isFinal; + if (!(this instanceof Timeline)) { + throw new SyntaxError('Constructor must be called with the new operator'); + } - if (isFirst) { - manager.session = {}; - } + // if the third element is options, the forth is groups (optionally); + if (!(Array.isArray(groups) || groups instanceof DataSet || groups instanceof DataView) && groups instanceof Object) { + var forthArgument = options; + options = groups; + groups = forthArgument; + } - // source event is the normalized value of the domEvents - // like 'touchstart, mouseup, pointerdown' - input.eventType = eventType; + var me = this; + this.defaultOptions = { + start: null, + end: null, - // compute scale, rotation etc - computeInputData(manager, input); + autoResize: true, + throttleRedraw: 0, // ms - // emit secret event - manager.emit('hammer.input', input); + orientation: { + axis: 'bottom', // axis orientation: 'bottom', 'top', or 'both' + item: 'bottom' // not relevant + }, + rtl: false, + moment: moment, - manager.recognize(input); - manager.session.prevInput = input; - } + width: null, + height: null, + maxHeight: null, + minHeight: null + }; + this.options = util.deepExtend({}, this.defaultOptions); - /** - * extend the data with some usable properties like scale, rotate, velocity etc - * @param {Object} manager - * @param {Object} input - */ - function computeInputData(manager, input) { - var session = manager.session; - var pointers = input.pointers; - var pointersLength = pointers.length; + // Create the DOM, props, and emitter + this._create(container); - // store the first input to calculate the distance and direction - if (!session.firstInput) { - session.firstInput = simpleCloneInputData(input); - } + // all components listed here will be repainted automatically + this.components = []; - // 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; + this.body = { + dom: this.dom, + domProps: this.props, + emitter: { + on: this.on.bind(this), + off: this.off.bind(this), + emit: this.emit.bind(this) + }, + hiddenDates: [], + util: { + getScale: function getScale() { + return me.timeAxis.step.scale; + }, + getStep: function getStep() { + return me.timeAxis.step.step; + }, + + toScreen: me._toScreen.bind(me), + toGlobalScreen: me._toGlobalScreen.bind(me), // this refers to the root.width + toTime: me._toTime.bind(me), + toGlobalTime: me._toGlobalTime.bind(me) } + }; - var firstInput = session.firstInput; - var firstMultiple = session.firstMultiple; - var offsetCenter = firstMultiple ? firstMultiple.center : firstInput.center; + // range + this.range = new Range(this.body); + this.components.push(this.range); + this.body.range = this.range; - var center = input.center = getCenter(pointers); - input.timeStamp = now(); - input.deltaTime = input.timeStamp - firstInput.timeStamp; + // time axis + this.timeAxis = new TimeAxis(this.body); + this.timeAxis2 = null; // used in case of orientation option 'both' + this.components.push(this.timeAxis); - input.angle = getAngle(offsetCenter, center); - input.distance = getDistance(offsetCenter, center); + // current time bar + this.currentTime = new CurrentTime(this.body); + this.components.push(this.currentTime); - computeDeltaXY(session, input); - input.offsetDirection = getDirection(input.deltaX, input.deltaY); + // item set + this.itemSet = new ItemSet(this.body, this.options); + this.components.push(this.itemSet); - var overallVelocity = getVelocity(input.deltaTime, input.deltaX, input.deltaY); - input.overallVelocityX = overallVelocity.x; - input.overallVelocityY = overallVelocity.y; - input.overallVelocity = (abs(overallVelocity.x) > abs(overallVelocity.y)) ? overallVelocity.x : overallVelocity.y; + this.itemsData = null; // DataSet + this.groupsData = null; // DataSet - input.scale = firstMultiple ? getScale(firstMultiple.pointers, pointers) : 1; - input.rotation = firstMultiple ? getRotation(firstMultiple.pointers, pointers) : 0; + this.on('tap', function (event) { + me.emit('click', me.getEventProperties(event)); + }); + this.on('doubletap', function (event) { + me.emit('doubleClick', me.getEventProperties(event)); + }); + this.dom.root.oncontextmenu = function (event) { + me.emit('contextmenu', me.getEventProperties(event)); + }; - input.maxPointers = !session.prevInput ? input.pointers.length : ((input.pointers.length > - session.prevInput.maxPointers) ? input.pointers.length : session.prevInput.maxPointers); + //Single time autoscale/fit + this.fitDone = false; + this.on('changed', function () { + if (this.itemsData == null) return; + if (!me.fitDone) { + me.fitDone = true; + if (me.options.start != undefined || me.options.end != undefined) { + if (me.options.start == undefined || me.options.end == undefined) { + var range = me.getItemRange(); + } - computeIntervalInputData(session, input); + var start = me.options.start != undefined ? me.options.start : range.min; + var end = me.options.end != undefined ? me.options.end : range.max; - // find the correct target - var target = manager.element; - if (hasParent(input.srcEvent.target, target)) { - target = input.srcEvent.target; + me.setWindow(start, end, { animation: false }); + } else { + me.fit({ animation: false }); + } } - input.target = target; - } + }); - function computeDeltaXY(session, input) { - var center = input.center; - var offset = session.offsetDelta || {}; - var prevDelta = session.prevDelta || {}; - var prevInput = session.prevInput || {}; + // apply options + if (options) { + this.setOptions(options); + } - if (input.eventType === INPUT_START || prevInput.eventType === INPUT_END) { - prevDelta = session.prevDelta = { - x: prevInput.deltaX || 0, - y: prevInput.deltaY || 0 - }; + // IMPORTANT: THIS HAPPENS BEFORE SET ITEMS! + if (groups) { + this.setGroups(groups); + } - offset = session.offsetDelta = { - x: center.x, - y: center.y - }; - } + // create itemset + if (items) { + this.setItems(items); + } - input.deltaX = prevDelta.x + (center.x - offset.x); - input.deltaY = prevDelta.y + (center.y - offset.y); + // draw for the first time + this._redraw(); } - /** - * 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 = input.deltaX - last.deltaX; - var deltaY = input.deltaY - last.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; - } + // Extend the functionality from Core + Timeline.prototype = new Core(); /** - * create a simple clone from the input used for storage of firstInput and firstMultiple - * @param {Object} input - * @returns {Object} clonedInputData + * Load a configurator + * @return {Object} + * @private */ - 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 - }; - } + Timeline.prototype._createConfigurator = function () { + return new _Configurator2.default(this, this.dom.container, configureOptions); + }; /** - * get the center of all the pointers - * @param {Array} pointers - * @return {Object} center contains `x` and `y` properties + * Force a redraw. The size of all items will be recalculated. + * Can be useful to manually redraw when option autoResize=false and the window + * has been resized, or when the items CSS has been changed. + * + * Note: this function will be overridden on construction with a trottled version */ - 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++; - } + Timeline.prototype.redraw = function () { + this.itemSet && this.itemSet.markDirty({ refreshItems: true }); + this._redraw(); + }; - return { - x: round(x / pointersLength), - y: round(y / pointersLength) - }; - } + Timeline.prototype.setOptions = function (options) { + // validate options + var errorFound = _Validator2.default.validate(options, allOptions); - /** - * 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 - }; - } + if (errorFound === true) { + console.log('%cErrors have been found in the supplied options object.', printStyle); + } - /** - * 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; - } + Core.prototype.setOptions.call(this, options); - if (abs(x) >= abs(y)) { - return x < 0 ? DIRECTION_LEFT : DIRECTION_RIGHT; + if ('type' in options) { + if (options.type !== this.options.type) { + this.options.type = options.type; + + // force recreation of all items + var itemsData = this.itemsData; + if (itemsData) { + var selection = this.getSelection(); + this.setItems(null); // remove all + this.setItems(itemsData); // add all + this.setSelection(selection); // restore selection + } } - 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 + * Set items + * @param {vis.DataSet | Array | null} items */ - 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]]; + Timeline.prototype.setItems = function (items) { + // convert to type DataSet when needed + var newDataSet; + if (!items) { + newDataSet = null; + } else if (items instanceof DataSet || items instanceof DataView) { + newDataSet = items; + } else { + // turn an array into a dataset + newDataSet = new DataSet(items, { + type: { + start: 'Date', + end: 'Date' + } + }); + } - return Math.sqrt((x * x) + (y * y)); - } + // set items + this.itemsData = newDataSet; + this.itemSet && this.itemSet.setItems(newDataSet); + }; /** - * calculate the angle between two coordinates - * @param {Object} p1 - * @param {Object} p2 - * @param {Array} [props] containing x and y keys - * @return {Number} angle + * Set groups + * @param {vis.DataSet | Array} groups */ - 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; - } + Timeline.prototype.setGroups = function (groups) { + // convert to type DataSet when needed + var newDataSet; + if (!groups) { + newDataSet = null; + } else if (groups instanceof DataSet || groups instanceof DataView) { + newDataSet = groups; + } else { + // turn an array into a dataset + newDataSet = new DataSet(groups); + } - /** - * 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); - } + this.groupsData = newDataSet; + this.itemSet.setGroups(newDataSet); + }; /** - * 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 + * Set both items and groups in one go + * @param {{items: Array | vis.DataSet, groups: Array | vis.DataSet}} data */ - function getScale(start, end) { - return getDistance(end[0], end[1], PROPS_CLIENT_XY) / getDistance(start[0], start[1], PROPS_CLIENT_XY); - } + Timeline.prototype.setData = function (data) { + if (data && data.groups) { + this.setGroups(data.groups); + } - var MOUSE_INPUT_MAP = { - mousedown: INPUT_START, - mousemove: INPUT_MOVE, - mouseup: INPUT_END + if (data && data.items) { + this.setItems(data.items); + } }; - var MOUSE_ELEMENT_EVENTS = 'mousedown'; - var MOUSE_WINDOW_EVENTS = 'mousemove mouseup'; - /** - * Mouse events input - * @constructor - * @extends Input + * Set selected items by their id. Replaces the current selection + * Unknown id's are silently ignored. + * @param {string[] | string} [ids] An array with zero or more id's of the items to be + * selected. If ids is an empty array, all items will be + * unselected. + * @param {Object} [options] Available options: + * `focus: boolean` + * If true, focus will be set to the selected item(s) + * `animation: boolean | {duration: number, easingFunction: string}` + * If true (default), the range is animated + * smoothly to the new window. An object can be + * provided to specify duration and easing function. + * Default duration is 500 ms, and default easing + * function is 'easeInOutQuad'. + * Only applicable when option focus is true. */ - function MouseInput() { - this.evEl = MOUSE_ELEMENT_EVENTS; - this.evWin = MOUSE_WINDOW_EVENTS; + Timeline.prototype.setSelection = function (ids, options) { + this.itemSet && this.itemSet.setSelection(ids); - this.allow = true; // used by Input.TouchMouse to disable mouse events - this.pressed = false; // mousedown state + if (options && options.focus) { + this.focus(ids, options); + } + }; - Input.apply(this, arguments); - } + /** + * Get the selected items by their id + * @return {Array} ids The ids of the selected items + */ + Timeline.prototype.getSelection = function () { + return this.itemSet && this.itemSet.getSelection() || []; + }; - inherit(MouseInput, Input, { - /** - * handle mouse events - * @param {Object} ev - */ - handler: function MEhandler(ev) { - var eventType = MOUSE_INPUT_MAP[ev.type]; + /** + * Adjust the visible window such that the selected item (or multiple items) + * are centered on screen. + * @param {String | String[]} id An item id or array with item ids + * @param {Object} [options] Available options: + * `animation: boolean | {duration: number, easingFunction: string}` + * If true (default), the range is animated + * smoothly to the new window. An object can be + * provided to specify duration and easing function. + * Default duration is 500 ms, and default easing + * function is 'easeInOutQuad'. + */ + Timeline.prototype.focus = function (id, options) { + if (!this.itemsData || id == undefined) return; - // on start we want to have the left mouse button down - if (eventType & INPUT_START && ev.button === 0) { - this.pressed = true; - } + var ids = Array.isArray(id) ? id : [id]; - if (eventType & INPUT_MOVE && ev.which !== 1) { - eventType = INPUT_END; - } + // get the specified item(s) + var itemsData = this.itemsData.getDataSet().get(ids, { + type: { + start: 'Date', + end: 'Date' + } + }); - // mouse must be down, and mouse events are allowed (see the TouchMouse input) - if (!this.pressed || !this.allow) { - return; - } + // calculate minimum start and maximum end of specified items + var start = null; + var end = null; + itemsData.forEach(function (itemData) { + var s = itemData.start.valueOf(); + var e = 'end' in itemData ? itemData.end.valueOf() : itemData.start.valueOf(); - if (eventType & INPUT_END) { - this.pressed = false; - } + if (start === null || s < start) { + start = s; + } - this.callback(this.manager, eventType, { - pointers: [ev], - changedPointers: [ev], - pointerType: INPUT_TYPE_MOUSE, - srcEvent: ev - }); + if (end === null || e > end) { + end = e; } - }); + }); - var POINTER_INPUT_MAP = { - pointerdown: INPUT_START, - pointermove: INPUT_MOVE, - pointerup: INPUT_END, - pointercancel: INPUT_CANCEL, - pointerout: INPUT_CANCEL - }; + if (start !== null && end !== null) { + // calculate the new middle and interval for the window + var middle = (start + end) / 2; + var interval = Math.max(this.range.end - this.range.start, (end - start) * 1.1); - // 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 + var animation = options && options.animation !== undefined ? options.animation : true; + this.range.setRange(middle - interval / 2, middle + interval / 2, animation); + } }; - var POINTER_ELEMENT_EVENTS = 'pointerdown'; - var POINTER_WINDOW_EVENTS = 'pointermove pointerup pointercancel'; + /** + * Set Timeline window such that it fits all items + * @param {Object} [options] Available options: + * `animation: boolean | {duration: number, easingFunction: string}` + * If true (default), the range is animated + * smoothly to the new window. An object can be + * provided to specify duration and easing function. + * Default duration is 500 ms, and default easing + * function is 'easeInOutQuad'. + */ + Timeline.prototype.fit = function (options) { + var animation = options && options.animation !== undefined ? options.animation : true; + var range; - // IE10 has prefixed support, and case-sensitive - if (window.MSPointerEvent && !window.PointerEvent) { - POINTER_ELEMENT_EVENTS = 'MSPointerDown'; - POINTER_WINDOW_EVENTS = 'MSPointerMove MSPointerUp MSPointerCancel'; - } + var dataset = this.itemsData && this.itemsData.getDataSet(); + if (dataset.length === 1 && dataset.get()[0].end === undefined) { + // a single item -> don't fit, just show a range around the item from -4 to +3 days + range = this.getDataRange(); + this.moveTo(range.min.valueOf(), { animation: animation }); + } else { + // exactly fit the items (plus a small margin) + range = this.getItemRange(); + this.range.setRange(range.min, range.max, animation); + } + }; /** - * Pointer events input - * @constructor - * @extends Input + * Determine the range of the items, taking into account their actual width + * and a margin of 10 pixels on both sides. + * @return {{min: Date | null, max: Date | null}} */ - function PointerEventInput() { - this.evEl = POINTER_ELEMENT_EVENTS; - this.evWin = POINTER_WINDOW_EVENTS; + Timeline.prototype.getItemRange = function () { + var _this = this; - Input.apply(this, arguments); + // get a rough approximation for the range based on the items start and end dates + var range = this.getDataRange(); + var min = range.min !== null ? range.min.valueOf() : null; + var max = range.max !== null ? range.max.valueOf() : null; + var minItem = null; + var maxItem = null; - this.store = (this.manager.session.pointerEvents = []); - } + if (min != null && max != null) { + var interval; + var factor; + var lhs; + var rhs; + var delta; - inherit(PointerEventInput, Input, { - /** - * handle mouse events - * @param {Object} ev - */ - handler: function PEhandler(ev) { - var store = this.store; - var removePointer = false; + (function () { + var getStart = function getStart(item) { + return util.convert(item.data.start, 'Date').valueOf(); + }; - var eventTypeNormalized = ev.type.toLowerCase().replace('ms', ''); - var eventType = POINTER_INPUT_MAP[eventTypeNormalized]; - var pointerType = IE10_POINTER_TYPE_ENUM[ev.pointerType] || ev.pointerType; + var getEnd = function getEnd(item) { + var end = item.data.end != undefined ? item.data.end : item.data.start; + return util.convert(end, 'Date').valueOf(); + }; - var isTouch = (pointerType == INPUT_TYPE_TOUCH); + // calculate the date of the left side and right side of the items given - // 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; - } + interval = max - min; // ms - // it not found, so the pointer hasn't been down (so it's probably a hover) - if (storeIndex < 0) { - return; + if (interval <= 0) { + interval = 10; + } + factor = interval / _this.props.center.width; + util.forEach(_this.itemSet.items, function (item) { + item.show(); + item.repositionX(); + + var start = getStart(item); + var end = getEnd(item); + + if (this.options.rtl) { + var startSide = start - (item.getWidthRight() + 10) * factor; + var endSide = end + (item.getWidthLeft() + 10) * factor; + } else { + var startSide = start - (item.getWidthLeft() + 10) * factor; + var endSide = end + (item.getWidthRight() + 10) * factor; } - // update the event in the store - store[storeIndex] = ev; + if (startSide < min) { + min = startSide; + minItem = item; + } + if (endSide > max) { + max = endSide; + maxItem = item; + } + }.bind(_this)); - this.callback(this.manager, eventType, { - pointers: store, - changedPointers: [ev], - pointerType: pointerType, - srcEvent: ev - }); + if (minItem && maxItem) { + lhs = minItem.getWidthLeft() + 10; + rhs = maxItem.getWidthRight() + 10; + delta = _this.props.center.width - lhs - rhs; // px - if (removePointer) { - // remove from the store - store.splice(storeIndex, 1); + if (delta > 0) { + if (_this.options.rtl) { + min = getStart(minItem) - rhs * interval / delta; // ms + max = getEnd(maxItem) + lhs * interval / delta; // ms + } else { + min = getStart(minItem) - lhs * interval / delta; // ms + max = getEnd(maxItem) + rhs * interval / delta; // ms + } } - } - }); + } + })(); + } - var SINGLE_TOUCH_INPUT_MAP = { - touchstart: INPUT_START, - touchmove: INPUT_MOVE, - touchend: INPUT_END, - touchcancel: INPUT_CANCEL + return { + min: min != null ? new Date(min) : null, + max: max != null ? new Date(max) : null + }; }; - var SINGLE_TOUCH_TARGET_EVENTS = 'touchstart'; - var SINGLE_TOUCH_WINDOW_EVENTS = 'touchstart touchmove touchend touchcancel'; - /** - * Touch events input - * @constructor - * @extends Input + * Calculate the data range of the items start and end dates + * @returns {{min: Date | null, max: Date | null}} */ - function SingleTouchInput() { - this.evTarget = SINGLE_TOUCH_TARGET_EVENTS; - this.evWin = SINGLE_TOUCH_WINDOW_EVENTS; - this.started = false; - - Input.apply(this, arguments); - } - - 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; - } - - if (!this.started) { - return; - } - - var touches = normalizeSingleTouches.call(this, ev, type); + Timeline.prototype.getDataRange = function () { + var min = null; + var max = null; - // when done, reset the started state - if (type & (INPUT_END | INPUT_CANCEL) && touches[0].length - touches[1].length === 0) { - this.started = false; - } + var dataset = this.itemsData && this.itemsData.getDataSet(); + if (dataset) { + dataset.forEach(function (item) { + var start = util.convert(item.start, 'Date').valueOf(); + var end = util.convert(item.end != undefined ? item.end : item.start, 'Date').valueOf(); + if (min === null || start < min) { + min = start; + } + if (max === null || end > max) { + max = end; + } + }); + } - this.callback(this.manager, type, { - pointers: touches[0], - changedPointers: touches[1], - pointerType: INPUT_TYPE_TOUCH, - srcEvent: ev - }); - } - }); + return { + min: min != null ? new Date(min) : null, + max: max != null ? new Date(max) : null + }; + }; /** - * @this {TouchInput} - * @param {Object} ev - * @param {Number} type flag - * @returns {undefined|Array} [all, changed] + * Generate Timeline related information from an event + * @param {Event} event + * @return {Object} An object with related information, like on which area + * The event happened, whether clicked on an item, etc. */ - function normalizeSingleTouches(ev, type) { - var all = toArray(ev.touches); - var changed = toArray(ev.changedTouches); + Timeline.prototype.getEventProperties = function (event) { + var clientX = event.center ? event.center.x : event.clientX; + var clientY = event.center ? event.center.y : event.clientY; + if (this.options.rtl) { + var x = util.getAbsoluteRight(this.dom.centerContainer) - clientX; + } else { + var x = clientX - util.getAbsoluteLeft(this.dom.centerContainer); + } + var y = clientY - util.getAbsoluteTop(this.dom.centerContainer); - if (type & (INPUT_END | INPUT_CANCEL)) { - all = uniqueArray(all.concat(changed), 'identifier', true); - } + var item = this.itemSet.itemFromTarget(event); + var group = this.itemSet.groupFromTarget(event); + var customTime = CustomTime.customTimeFromTarget(event); - return [all, changed]; - } + var snap = this.itemSet.options.snap || null; + var scale = this.body.util.getScale(); + var step = this.body.util.getStep(); + var time = this._toTime(x); + var snappedTime = snap ? snap(time, scale, step) : time; + + var element = util.getTarget(event); + var what = null; + if (item != null) { + what = 'item'; + } else if (customTime != null) { + what = 'custom-time'; + } else if (util.hasParent(element, this.timeAxis.dom.foreground)) { + what = 'axis'; + } else if (this.timeAxis2 && util.hasParent(element, this.timeAxis2.dom.foreground)) { + what = 'axis'; + } else if (util.hasParent(element, this.itemSet.dom.labelSet)) { + what = 'group-label'; + } else if (util.hasParent(element, this.currentTime.bar)) { + what = 'current-time'; + } else if (util.hasParent(element, this.dom.center)) { + what = 'background'; + } - var TOUCH_INPUT_MAP = { - touchstart: INPUT_START, - touchmove: INPUT_MOVE, - touchend: INPUT_END, - touchcancel: INPUT_CANCEL + return { + event: event, + item: item ? item.id : null, + group: group ? group.groupId : null, + what: what, + pageX: event.srcEvent ? event.srcEvent.pageX : event.pageX, + pageY: event.srcEvent ? event.srcEvent.pageY : event.pageY, + x: x, + y: y, + time: time, + snappedTime: snappedTime + }; }; - 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 = {}; + module.exports = Timeline; - Input.apply(this, arguments); - } +/***/ }, +/* 26 */ +/***/ function(module, exports, __webpack_require__) { - inherit(TouchInput, Input, { - handler: function MTEhandler(ev) { - var type = TOUCH_INPUT_MAP[ev.type]; - var touches = getTouches.call(this, ev, type); - if (!touches) { - return; - } + 'use strict'; - this.callback(this.manager, type, { - pointers: touches[0], - changedPointers: touches[1], - pointerType: INPUT_TYPE_TOUCH, - srcEvent: ev - }); - } + Object.defineProperty(exports, "__esModule", { + value: true }); - /** - * @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; - - // 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; + var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol ? "symbol" : typeof obj; }; - // get target touches from touches - targetTouches = allTouches.filter(function(touch) { - return hasParent(touch.target, target); - }); + var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); - // collect touches - if (type === INPUT_START) { - i = 0; - while (i < targetTouches.length) { - targetIds[targetTouches[i].identifier] = true; - i++; - } - } + var _ColorPicker = __webpack_require__(27); - // 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]); - } + var _ColorPicker2 = _interopRequireDefault(_ColorPicker); - // cleanup removed touches - if (type & (INPUT_END | INPUT_CANCEL)) { - delete targetIds[changedTouches[i].identifier]; - } - i++; - } + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - if (!changedTargetTouches.length) { - return; - } + function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - return [ - // merge targetTouches with changedTargetTouches so it contains ALL touches, including 'end' and 'cancel' - uniqueArray(targetTouches.concat(changedTargetTouches), 'identifier', true), - changedTargetTouches - ]; - } + var util = __webpack_require__(1); /** - * Combined touch and mouse input + * The way this works is for all properties of this.possible options, you can supply the property name in any form to list the options. + * Boolean options are recognised as Boolean + * Number options should be written as array: [default value, min value, max value, stepsize] + * Colors should be written as array: ['color', '#ffffff'] + * Strings with should be written as array: [option1, option2, option3, ..] * - * 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. + * The options are matched with their counterparts in each of the modules and the values used in the configuration are * - * @constructor - * @extends Input + * @param parentModule | the location where parentModule.setOptions() can be called + * @param defaultContainer | the default container of the module + * @param configureOptions | the fully configured and predefined options set found in allOptions.js + * @param pixelRatio | canvas pixel ratio */ - 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, { - /** - * handle mouse and touch events - * @param {Hammer} manager - * @param {String} inputEvent - * @param {Object} inputData - */ - handler: function TMEhandler(manager, inputEvent, inputData) { - var isTouch = (inputData.pointerType == INPUT_TYPE_TOUCH), - isMouse = (inputData.pointerType == INPUT_TYPE_MOUSE); + var Configurator = function () { + function Configurator(parentModule, defaultContainer, configureOptions) { + var pixelRatio = arguments.length <= 3 || arguments[3] === undefined ? 1 : arguments[3]; - // 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; - } + _classCallCheck(this, Configurator); - // reset the allowMouse when we're done - if (inputEvent & (INPUT_END | INPUT_CANCEL)) { - this.mouse.allow = true; - } + this.parent = parentModule; + this.changedOptions = []; + this.container = defaultContainer; + this.allowCreation = false; - this.callback(manager, inputEvent, inputData); - }, + this.options = {}; + this.initialized = false; + this.popupCounter = 0; + this.defaultOptions = { + enabled: false, + filter: true, + container: undefined, + showButton: true + }; + util.extend(this.options, this.defaultOptions); - /** - * remove the event listeners - */ - destroy: function destroy() { - this.touch.destroy(); - this.mouse.destroy(); - } - }); + this.configureOptions = configureOptions; + this.moduleOptions = {}; + this.domElements = []; + this.popupDiv = {}; + this.popupLimit = 5; + this.popupHistory = {}; + this.colorPicker = new _ColorPicker2.default(pixelRatio); + this.wrapper = undefined; + } - var PREFIXED_TOUCH_ACTION = prefixed(TEST_ELEMENT.style, 'touchAction'); - var NATIVE_TOUCH_ACTION = PREFIXED_TOUCH_ACTION !== undefined; + /** + * refresh all options. + * Because all modules parse their options by themselves, we just use their options. We copy them here. + * + * @param options + */ - // 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'; - /** - * Touch Action - * sets the touchAction property or uses the js alternative - * @param {Manager} manager - * @param {String} value - * @constructor - */ - function TouchAction(manager, value) { - this.manager = manager; - this.set(value); - } + _createClass(Configurator, [{ + key: 'setOptions', + value: function setOptions(options) { + if (options !== undefined) { + // reset the popup history because the indices may have been changed. + this.popupHistory = {}; + this._removePopup(); - TouchAction.prototype = { - /** - * set the touchAction value on the element or enable the polyfill - * @param {String} value - */ - set: function(value) { - // find out the touch-action by the event handlers - if (value == TOUCH_ACTION_COMPUTE) { - value = this.compute(); + var enabled = true; + if (typeof options === 'string') { + this.options.filter = options; + } else if (options instanceof Array) { + this.options.filter = options.join(); + } else if ((typeof options === 'undefined' ? 'undefined' : _typeof(options)) === 'object') { + if (options.container !== undefined) { + this.options.container = options.container; + } + if (options.filter !== undefined) { + this.options.filter = options.filter; + } + if (options.showButton !== undefined) { + this.options.showButton = options.showButton; + } + if (options.enabled !== undefined) { + enabled = options.enabled; + } + } else if (typeof options === 'boolean') { + this.options.filter = true; + enabled = options; + } else if (typeof options === 'function') { + this.options.filter = options; + enabled = true; } - - if (NATIVE_TOUCH_ACTION && this.manager.element.style) { - this.manager.element.style[PREFIXED_TOUCH_ACTION] = value; + if (this.options.filter === false) { + enabled = false; } - this.actions = value.toLowerCase().trim(); - }, - - /** - * just re-set the touchAction value - */ - update: function() { - this.set(this.manager.options.touchAction); - }, - /** - * compute the value for the touchAction property based on the recognizer's settings - * @returns {String} value - */ - 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(' ')); - }, + this.options.enabled = enabled; + } + this._clean(); + } + }, { + key: 'setModuleOptions', + value: function setModuleOptions(moduleOptions) { + this.moduleOptions = moduleOptions; + if (this.options.enabled === true) { + this._clean(); + if (this.options.container !== undefined) { + this.container = this.options.container; + } + this._create(); + } + } /** - * this method is called on each input cycle and provides the preventing of the browser behavior - * @param {Object} input + * Create all DOM elements + * @private */ - preventDefaults: function(input) { - // not needed with native support for the touchAction property - if (NATIVE_TOUCH_ACTION) { - return; - } - var srcEvent = input.srcEvent; - var direction = input.offsetDirection; - - // if the touch action did prevented once this session - if (this.manager.session.prevented) { - srcEvent.preventDefault(); - return; - } + }, { + key: '_create', + value: function _create() { + var _this = this; - 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); + this._clean(); + this.changedOptions = []; - if (hasNone) { - //do not prevent defaults if this is a tap gesture + var filter = this.options.filter; + var counter = 0; + var show = false; + for (var option in this.configureOptions) { + if (this.configureOptions.hasOwnProperty(option)) { + this.allowCreation = false; + show = false; + if (typeof filter === 'function') { + show = filter(option, []); + show = show || this._handleObject(this.configureOptions[option], [option], true); + } else if (filter === true || filter.indexOf(option) !== -1) { + show = true; + } - var isTapPointer = input.pointers.length === 1; - var isTapMovement = input.distance < 2; - var isTapTouchTime = input.deltaTime < 250; + if (show !== false) { + this.allowCreation = true; - if (isTapPointer && isTapMovement && isTapTouchTime) { - return; + // linebreak between categories + if (counter > 0) { + this._makeItem([]); } - } - - if (hasPanX && hasPanY) { - // `pan-x pan-y` means browser handles all scrolling/panning, do not prevent - return; - } + // a header for the category + this._makeHeader(option); - if (hasNone || - (hasPanY && direction & DIRECTION_HORIZONTAL) || - (hasPanX && direction & DIRECTION_VERTICAL)) { - return this.preventSrc(srcEvent); + // get the sub options + this._handleObject(this.configureOptions[option], [option]); + } + counter++; } - }, - - /** - * call preventDefault to prevent the browser's default behavior (scrolling in most cases) - * @param {Object} srcEvent - */ - 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); + if (this.options.showButton === true) { + (function () { + var generateButton = document.createElement('div'); + generateButton.className = 'vis-configuration vis-config-button'; + generateButton.innerHTML = 'generate options'; + generateButton.onclick = function () { + _this._printOptions(); + }; + generateButton.onmouseover = function () { + generateButton.className = 'vis-configuration vis-config-button hover'; + }; + generateButton.onmouseout = function () { + generateButton.className = 'vis-configuration vis-config-button'; + }; - // if both pan-x and pan-y are set (different recognizers - // for different directions, e.g. horizontal pan but vertical swipe?) - // we need none (as otherwise with pan-x pan-y combined none of these - // recognizers will work, since the browser would handle all panning - if (hasPanX && hasPanY) { - return TOUCH_ACTION_NONE; - } + _this.optionsContainer = document.createElement('div'); + _this.optionsContainer.className = 'vis-configuration vis-config-option-container'; - // pan-x OR pan-y - if (hasPanX || hasPanY) { - return hasPanX ? TOUCH_ACTION_PAN_X : TOUCH_ACTION_PAN_Y; - } + _this.domElements.push(_this.optionsContainer); + _this.domElements.push(generateButton); + })(); + } - // manipulation - if (inStr(actions, TOUCH_ACTION_MANIPULATION)) { - return TOUCH_ACTION_MANIPULATION; + this._push(); + //~ this.colorPicker.insertTo(this.container); } - return TOUCH_ACTION_AUTO; - } - - /** - * 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 - */ - function Recognizer(options) { - this.options = assign({}, this.defaults, options || {}); - - this.id = uniqueId(); - - this.manager = null; - - // default is enable true - this.options.enable = ifUndefined(this.options.enable, true); - - this.state = STATE_POSSIBLE; - - this.simultaneous = {}; - this.requireFail = []; - } - - Recognizer.prototype = { /** - * @virtual - * @type {Object} + * draw all DOM elements on the screen + * @private */ - defaults: {}, - /** - * set options - * @param {Object} options - * @return {Recognizer} - */ - set: function(options) { - assign(this.options, options); + }, { + key: '_push', + value: function _push() { + this.wrapper = document.createElement('div'); + this.wrapper.className = 'vis-configuration-wrapper'; + this.container.appendChild(this.wrapper); + for (var i = 0; i < this.domElements.length; i++) { + this.wrapper.appendChild(this.domElements[i]); + } - // also update the touchAction, in case something changed about the directions/enabled state - this.manager && this.manager.touchAction.update(); - return this; - }, + this._showPopupIfNeeded(); + } /** - * recognize simultaneous with an other recognizer. - * @param {Recognizer} otherRecognizer - * @returns {Recognizer} this + * delete all DOM elements + * @private */ - recognizeWith: function(otherRecognizer) { - if (invokeArrayArg(otherRecognizer, 'recognizeWith', this)) { - return this; - } - var simultaneous = this.simultaneous; - otherRecognizer = getRecognizerByNameIfManager(otherRecognizer, this); - if (!simultaneous[otherRecognizer.id]) { - simultaneous[otherRecognizer.id] = otherRecognizer; - otherRecognizer.recognizeWith(this); - } - return this; - }, + }, { + key: '_clean', + value: function _clean() { + for (var i = 0; i < this.domElements.length; i++) { + this.wrapper.removeChild(this.domElements[i]); + } - /** - * 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; - } + if (this.wrapper !== undefined) { + this.container.removeChild(this.wrapper); + this.wrapper = undefined; + } + this.domElements = []; - otherRecognizer = getRecognizerByNameIfManager(otherRecognizer, this); - delete this.simultaneous[otherRecognizer.id]; - return this; - }, + this._removePopup(); + } /** - * recognizer can only run when an other is failing - * @param {Recognizer} otherRecognizer - * @returns {Recognizer} this + * get the value from the actualOptions if it exists + * @param {array} path | where to look for the actual option + * @returns {*} + * @private */ - requireFailure: function(otherRecognizer) { - if (invokeArrayArg(otherRecognizer, 'requireFailure', this)) { - return this; - } - var requireFail = this.requireFail; - otherRecognizer = getRecognizerByNameIfManager(otherRecognizer, this); - if (inArray(requireFail, otherRecognizer) === -1) { - requireFail.push(otherRecognizer); - otherRecognizer.requireFailure(this); + }, { + key: '_getValue', + value: function _getValue(path) { + var base = this.moduleOptions; + for (var i = 0; i < path.length; i++) { + if (base[path[i]] !== undefined) { + base = base[path[i]]; + } else { + base = undefined; + break; } - return this; - }, + } + return base; + } /** - * drop the requireFailure link. it does not remove the link on the other recognizer. - * @param {Recognizer} otherRecognizer - * @returns {Recognizer} this + * all option elements are wrapped in an item + * @param path + * @param domElements + * @private */ - dropRequireFailure: function(otherRecognizer) { - if (invokeArrayArg(otherRecognizer, 'dropRequireFailure', this)) { - return this; - } - otherRecognizer = getRecognizerByNameIfManager(otherRecognizer, this); - var index = inArray(this.requireFail, otherRecognizer); - if (index > -1) { - this.requireFail.splice(index, 1); - } - return this; - }, + }, { + key: '_makeItem', + value: function _makeItem(path) { + var _arguments = arguments, + _this2 = this; + + if (this.allowCreation === true) { + var _len, domElements, _key; + + var _ret2 = function () { + var item = document.createElement('div'); + item.className = 'vis-configuration vis-config-item vis-config-s' + path.length; + + for (_len = _arguments.length, domElements = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { + domElements[_key - 1] = _arguments[_key]; + } + + domElements.forEach(function (element) { + item.appendChild(element); + }); + _this2.domElements.push(item); + return { + v: _this2.domElements.length + }; + }(); + + if ((typeof _ret2 === 'undefined' ? 'undefined' : _typeof(_ret2)) === "object") return _ret2.v; + } + return 0; + } /** - * has require failures boolean - * @returns {boolean} + * header for major subjects + * @param name + * @private */ - hasRequireFailures: function() { - return this.requireFail.length > 0; - }, + + }, { + key: '_makeHeader', + value: function _makeHeader(name) { + var div = document.createElement('div'); + div.className = 'vis-configuration vis-config-header'; + div.innerHTML = name; + this._makeItem([], div); + } /** - * if the recognizer can recognize simultaneous with an other recognizer - * @param {Recognizer} otherRecognizer - * @returns {Boolean} + * make a label, if it is an object label, it gets different styling. + * @param name + * @param path + * @param objectLabel + * @returns {HTMLElement} + * @private */ - canRecognizeWith: function(otherRecognizer) { - return !!this.simultaneous[otherRecognizer.id]; - }, + + }, { + key: '_makeLabel', + value: function _makeLabel(name, path) { + var objectLabel = arguments.length <= 2 || arguments[2] === undefined ? false : arguments[2]; + + var div = document.createElement('div'); + div.className = 'vis-configuration vis-config-label vis-config-s' + path.length; + if (objectLabel === true) { + div.innerHTML = '' + name + ':'; + } else { + div.innerHTML = name + ':'; + } + return div; + } /** - * You should use `tryEmit` instead of `emit` directly to check - * that all the needed recognizers has failed before emitting. - * @param {Object} input + * make a dropdown list for multiple possible string optoins + * @param arr + * @param value + * @param path + * @private */ - emit: function(input) { - var self = this; - var state = this.state; - function emit(event) { - self.manager.emit(event, input); + }, { + key: '_makeDropdown', + value: function _makeDropdown(arr, value, path) { + var select = document.createElement('select'); + select.className = 'vis-configuration vis-config-select'; + var selectedValue = 0; + if (value !== undefined) { + if (arr.indexOf(value) !== -1) { + selectedValue = arr.indexOf(value); } + } - // 'panstart' and 'panmove' - if (state < STATE_ENDED) { - emit(self.options.event + stateStr(state)); + for (var i = 0; i < arr.length; i++) { + var option = document.createElement('option'); + option.value = arr[i]; + if (i === selectedValue) { + option.selected = 'selected'; } + option.innerHTML = arr[i]; + select.appendChild(option); + } - emit(self.options.event); // simple 'eventName' events - - if (input.additionalEvent) { // additional event(panleft, panright, pinchin, pinchout...) - emit(input.additionalEvent); - } + var me = this; + select.onchange = function () { + me._update(this.value, path); + }; - // panend and pancancel - if (state >= STATE_ENDED) { - emit(self.options.event + stateStr(state)); - } - }, + var label = this._makeLabel(path[path.length - 1], path); + this._makeItem(path, label, select); + } /** - * 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 + * make a range object for numeric options + * @param arr + * @param value + * @param path + * @private */ - tryEmit: function(input) { - if (this.canEmit()) { - return this.emit(input); - } - // it's failing anyway - this.state = STATE_FAILED; - }, - /** - * 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; - }, + }, { + key: '_makeRange', + value: function _makeRange(arr, value, path) { + var defaultValue = arr[0]; + var min = arr[1]; + var max = arr[2]; + var step = arr[3]; + var range = document.createElement('input'); + range.className = 'vis-configuration vis-config-range'; + try { + range.type = 'range'; // not supported on IE9 + range.min = min; + range.max = max; + } catch (err) {} + range.step = step; - /** - * 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 = assign({}, inputData); + // set up the popup settings in case they are needed. + var popupString = ''; + var popupValue = 0; - // is is enabled and allow recognizing? - if (!boolOrFn(this.options.enable, [this, inputDataClone])) { - this.reset(); - this.state = STATE_FAILED; - return; + if (value !== undefined) { + var factor = 1.20; + if (value < 0 && value * factor < min) { + range.min = Math.ceil(value * factor); + popupValue = range.min; + popupString = 'range increased'; + } else if (value / factor < min) { + range.min = Math.ceil(value / factor); + popupValue = range.min; + popupString = 'range increased'; } - - // reset when we've reached the end - if (this.state & (STATE_RECOGNIZED | STATE_CANCELLED | STATE_FAILED)) { - this.state = STATE_POSSIBLE; + if (value * factor > max && max !== 1) { + range.max = Math.ceil(value * factor); + popupValue = range.max; + popupString = 'range increased'; } + range.value = value; + } else { + range.value = defaultValue; + } - this.state = this.process(inputDataClone); + var input = document.createElement('input'); + input.className = 'vis-configuration vis-config-rangeinput'; + input.value = range.value; - // the recognizer has recognized a gesture - // so trigger an event - if (this.state & (STATE_BEGAN | STATE_CHANGED | STATE_ENDED | STATE_CANCELLED)) { - this.tryEmit(inputDataClone); - } - }, + var me = this; + range.onchange = function () { + input.value = this.value;me._update(Number(this.value), path); + }; + range.oninput = function () { + input.value = this.value; + }; + + var label = this._makeLabel(path[path.length - 1], path); + var itemIndex = this._makeItem(path, label, range, input); + + // if a popup is needed AND it has not been shown for this value, show it. + if (popupString !== '' && this.popupHistory[itemIndex] !== popupValue) { + this.popupHistory[itemIndex] = popupValue; + this._setupPopup(popupString, itemIndex); + } + } /** - * return the state of the recognizer - * the actual recognizing happens in this method - * @virtual - * @param {Object} inputData - * @returns {Const} STATE + * prepare the popup + * @param string + * @param index + * @private */ - process: function(inputData) { }, // jshint ignore:line + + }, { + key: '_setupPopup', + value: function _setupPopup(string, index) { + var _this3 = this; + + if (this.initialized === true && this.allowCreation === true && this.popupCounter < this.popupLimit) { + var div = document.createElement("div"); + div.id = "vis-configuration-popup"; + div.className = "vis-configuration-popup"; + div.innerHTML = string; + div.onclick = function () { + _this3._removePopup(); + }; + this.popupCounter += 1; + this.popupDiv = { html: div, index: index }; + } + } /** - * return the preferred touch-action - * @virtual - * @returns {Array} + * remove the popup from the dom + * @private */ - getTouchAction: function() { }, + + }, { + key: '_removePopup', + value: function _removePopup() { + if (this.popupDiv.html !== undefined) { + this.popupDiv.html.parentNode.removeChild(this.popupDiv.html); + clearTimeout(this.popupDiv.hideTimeout); + clearTimeout(this.popupDiv.deleteTimeout); + this.popupDiv = {}; + } + } /** - * called when the gesture isn't allowed to recognize - * like when another is being recognized or it is disabled - * @virtual + * Show the popup if it is needed. + * @private */ - reset: function() { } - }; - /** - * 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 ''; - } + }, { + key: '_showPopupIfNeeded', + value: function _showPopupIfNeeded() { + var _this4 = this; - /** - * 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'; + if (this.popupDiv.html !== undefined) { + var correspondingElement = this.domElements[this.popupDiv.index]; + var rect = correspondingElement.getBoundingClientRect(); + this.popupDiv.html.style.left = rect.left + "px"; + this.popupDiv.html.style.top = rect.top - 30 + "px"; // 30 is the height; + document.body.appendChild(this.popupDiv.html); + this.popupDiv.hideTimeout = setTimeout(function () { + _this4.popupDiv.html.style.opacity = 0; + }, 1500); + this.popupDiv.deleteTimeout = setTimeout(function () { + _this4._removePopup(); + }, 1800); + } } - return ''; - } - /** - * 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); + /** + * make a checkbox for boolean options. + * @param defaultValue + * @param value + * @param path + * @private + */ + + }, { + key: '_makeCheckbox', + value: function _makeCheckbox(defaultValue, value, path) { + var checkbox = document.createElement('input'); + checkbox.type = 'checkbox'; + checkbox.className = 'vis-configuration vis-config-checkbox'; + checkbox.checked = defaultValue; + if (value !== undefined) { + checkbox.checked = value; + if (value !== defaultValue) { + if ((typeof defaultValue === 'undefined' ? 'undefined' : _typeof(defaultValue)) === 'object') { + if (value !== defaultValue.enabled) { + this.changedOptions.push({ path: path, value: value }); + } + } else { + this.changedOptions.push({ path: path, value: value }); + } + } + } + + var me = this; + checkbox.onchange = function () { + me._update(this.checked, path); + }; + + var label = this._makeLabel(path[path.length - 1], path); + this._makeItem(path, label, checkbox); } - return otherRecognizer; - } - /** - * This recognizer is just used as a base for the simple attribute recognizers. - * @constructor - * @extends Recognizer - */ - function AttrRecognizer() { - Recognizer.apply(this, arguments); - } + /** + * make a text input field for string options. + * @param defaultValue + * @param value + * @param path + * @private + */ + + }, { + key: '_makeTextInput', + value: function _makeTextInput(defaultValue, value, path) { + var checkbox = document.createElement('input'); + checkbox.type = 'text'; + checkbox.className = 'vis-configuration vis-config-text'; + checkbox.value = value; + if (value !== defaultValue) { + this.changedOptions.push({ path: path, value: value }); + } + + var me = this; + checkbox.onchange = function () { + me._update(this.value, path); + }; - inherit(AttrRecognizer, Recognizer, { - /** - * @namespace - * @memberof AttrRecognizer - */ - defaults: { - /** - * @type {Number} - * @default 1 - */ - pointers: 1 - }, + var label = this._makeLabel(path[path.length - 1], path); + this._makeItem(path, label, checkbox); + } /** - * Used to check if it the recognizer receives valid input, like input.distance > 10. - * @memberof AttrRecognizer - * @param {Object} input - * @returns {Boolean} recognized + * make a color field with a color picker for color fields + * @param arr + * @param value + * @param path + * @private */ - attrTest: function(input) { - var optionPointers = this.options.pointers; - return optionPointers === 0 || input.pointers.length === optionPointers; - }, + + }, { + key: '_makeColorField', + value: function _makeColorField(arr, value, path) { + var _this5 = this; + + var defaultColor = arr[1]; + var div = document.createElement('div'); + value = value === undefined ? defaultColor : value; + + if (value !== 'none') { + div.className = 'vis-configuration vis-config-colorBlock'; + div.style.backgroundColor = value; + } else { + div.className = 'vis-configuration vis-config-colorBlock none'; + } + + value = value === undefined ? defaultColor : value; + div.onclick = function () { + _this5._showColorPicker(value, div, path); + }; + + var label = this._makeLabel(path[path.length - 1], path); + this._makeItem(path, label, div); + } /** - * Process the input and return the state for the recognizer - * @memberof AttrRecognizer - * @param {Object} input - * @returns {*} State + * used by the color buttons to call the color picker. + * @param event + * @param value + * @param div + * @param path + * @private */ - process: function(input) { - var state = this.state; - var eventType = input.eventType; - var isRecognized = state & (STATE_BEGAN | STATE_CHANGED); - var isValid = this.attrTest(input); + }, { + key: '_showColorPicker', + value: function _showColorPicker(value, div, path) { + var _this6 = this; - // 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; - } - }); + // clear the callback from this div + div.onclick = function () {}; - /** - * Pan - * Recognized when the pointer is down and moved in the allowed direction. - * @constructor - * @extends AttrRecognizer - */ - function PanRecognizer() { - AttrRecognizer.apply(this, arguments); + this.colorPicker.insertTo(div); + this.colorPicker.show(); - this.pX = null; - this.pY = null; - } + this.colorPicker.setColor(value); + this.colorPicker.setUpdateCallback(function (color) { + var colorString = 'rgba(' + color.r + ',' + color.g + ',' + color.b + ',' + color.a + ')'; + div.style.backgroundColor = colorString; + _this6._update(colorString, path); + }); + + // on close of the colorpicker, restore the callback. + this.colorPicker.setCloseCallback(function () { + div.onclick = function () { + _this6._showColorPicker(value, div, path); + }; + }); + } - inherit(PanRecognizer, AttrRecognizer, { /** - * @namespace - * @memberof PanRecognizer + * parse an object and draw the correct items + * @param obj + * @param path + * @private */ - defaults: { - event: 'pan', - threshold: 10, - pointers: 1, - direction: DIRECTION_ALL - }, - 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; - }, + }, { + key: '_handleObject', + value: function _handleObject(obj) { + var path = arguments.length <= 1 || arguments[1] === undefined ? [] : arguments[1]; + var checkOnly = arguments.length <= 2 || arguments[2] === undefined ? false : arguments[2]; - 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; + var show = false; + var filter = this.options.filter; + var visibleInSet = false; + for (var subObj in obj) { + if (obj.hasOwnProperty(subObj)) { + show = true; + var item = obj[subObj]; + var newPath = util.copyAndExtendArray(path, subObj); + if (typeof filter === 'function') { + show = filter(subObj, path); - // 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); + // if needed we must go deeper into the object. + if (show === false) { + if (!(item instanceof Array) && typeof item !== 'string' && typeof item !== 'boolean' && item instanceof Object) { + this.allowCreation = false; + show = this._handleObject(item, newPath, true); + this.allowCreation = checkOnly === false; + } } - } - input.direction = direction; - return hasMoved && distance > options.threshold && direction & options.direction; - }, + } - attrTest: function(input) { - return AttrRecognizer.prototype.attrTest.call(this, input) && - (this.state & STATE_BEGAN || (!(this.state & STATE_BEGAN) && this.directionTest(input))); - }, + if (show !== false) { + visibleInSet = true; + var value = this._getValue(newPath); - emit: function(input) { + if (item instanceof Array) { + this._handleArray(item, value, newPath); + } else if (typeof item === 'string') { + this._makeTextInput(item, value, newPath); + } else if (typeof item === 'boolean') { + this._makeCheckbox(item, value, newPath); + } else if (item instanceof Object) { + // collapse the physics options that are not enabled + var draw = true; + if (path.indexOf('physics') !== -1) { + if (this.moduleOptions.physics.solver !== subObj) { + draw = false; + } + } - this.pX = input.deltaX; - this.pY = input.deltaY; + if (draw === true) { + // initially collapse options with an disabled enabled option. + if (item.enabled !== undefined) { + var enabledPath = util.copyAndExtendArray(newPath, 'enabled'); + var enabledValue = this._getValue(enabledPath); + if (enabledValue === true) { + var label = this._makeLabel(subObj, newPath, true); + this._makeItem(newPath, label); + visibleInSet = this._handleObject(item, newPath) || visibleInSet; + } else { + this._makeCheckbox(item, enabledValue, newPath); + } + } else { + var _label = this._makeLabel(subObj, newPath, true); + this._makeItem(newPath, _label); + visibleInSet = this._handleObject(item, newPath) || visibleInSet; + } + } + } else { + console.error('dont know how to handle', item, subObj, newPath); + } + } + } + } + return visibleInSet; + } - var direction = directionStr(input.direction); + /** + * handle the array type of option + * @param optionName + * @param arr + * @param value + * @param path + * @private + */ - if (direction) { - input.additionalEvent = this.options.event + direction; + }, { + key: '_handleArray', + value: function _handleArray(arr, value, path) { + if (typeof arr[0] === 'string' && arr[0] === 'color') { + this._makeColorField(arr, value, path); + if (arr[1] !== value) { + this.changedOptions.push({ path: path, value: value }); } - this._super.emit.call(this, input); + } else if (typeof arr[0] === 'string') { + this._makeDropdown(arr, value, path); + if (arr[0] !== value) { + this.changedOptions.push({ path: path, value: value }); + } + } else if (typeof arr[0] === 'number') { + this._makeRange(arr, value, path); + if (arr[0] !== value) { + this.changedOptions.push({ path: path, value: Number(value) }); + } + } } - }); - - /** - * 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, { /** - * @namespace - * @memberof PinchRecognizer + * called to update the network with the new settings. + * @param value + * @param path + * @private */ - defaults: { - event: 'pinch', - threshold: 0, - pointers: 2 - }, - getTouchAction: function() { - return [TOUCH_ACTION_NONE]; - }, + }, { + key: '_update', + value: function _update(value, path) { + var options = this._constructOptions(value, path); - attrTest: function(input) { - return this._super.attrTest.call(this, input) && - (Math.abs(input.scale - 1) > this.options.threshold || this.state & STATE_BEGAN); - }, + if (this.parent.body && this.parent.body.emitter && this.parent.body.emitter.emit) { + this.parent.body.emitter.emit("configChange", options); + } + this.initialized = true; + this.parent.setOptions(options); + } + }, { + key: '_constructOptions', + value: function _constructOptions(value, path) { + var optionsObj = arguments.length <= 2 || arguments[2] === undefined ? {} : arguments[2]; - emit: function(input) { - if (input.scale !== 1) { - var inOut = input.scale < 1 ? 'in' : 'out'; - input.additionalEvent = this.options.event + inOut; + var pointer = optionsObj; + + // when dropdown boxes can be string or boolean, we typecast it into correct types + value = value === 'true' ? true : value; + value = value === 'false' ? false : value; + + for (var i = 0; i < path.length; i++) { + if (path[i] !== 'global') { + if (pointer[path[i]] === undefined) { + pointer[path[i]] = {}; + } + if (i !== path.length - 1) { + pointer = pointer[path[i]]; + } else { + pointer[path[i]] = value; + } } - this._super.emit.call(this, input); + } + return optionsObj; + } + }, { + key: '_printOptions', + value: function _printOptions() { + var options = this.getOptions(); + this.optionsContainer.innerHTML = '
var options = ' + JSON.stringify(options, null, 2) + '
'; + } + }, { + key: 'getOptions', + value: function getOptions() { + var options = {}; + for (var i = 0; i < this.changedOptions.length; i++) { + this._constructOptions(this.changedOptions[i].value, this.changedOptions[i].path, options); + } + return options; } + }]); + + return Configurator; + }(); + + exports.default = Configurator; + +/***/ }, +/* 27 */ +/***/ function(module, exports, __webpack_require__) { + + 'use strict'; + + Object.defineProperty(exports, "__esModule", { + value: true }); - /** - * Press - * Recognized when the pointer is down for x ms without any movement. - * @constructor - * @extends Recognizer - */ - function PressRecognizer() { - Recognizer.apply(this, arguments); + var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); - this._timer = null; - this._input = null; - } + function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - inherit(PressRecognizer, Recognizer, { - /** - * @namespace - * @memberof PressRecognizer - */ - defaults: { - event: 'press', - pointers: 1, - time: 251, // minimal time of the pointer to be pressed - threshold: 9 // a minimal movement is ok, but keep it low - }, + var Hammer = __webpack_require__(20); + var hammerUtil = __webpack_require__(28); + var util = __webpack_require__(1); - getTouchAction: function() { - return [TOUCH_ACTION_AUTO]; - }, + var ColorPicker = function () { + function ColorPicker() { + var pixelRatio = arguments.length <= 0 || arguments[0] === undefined ? 1 : arguments[0]; - 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; + _classCallCheck(this, ColorPicker); - this._input = input; + this.pixelRatio = pixelRatio; + this.generated = false; + this.centerCoordinates = { x: 289 / 2, y: 289 / 2 }; + this.r = 289 * 0.49; + this.color = { r: 255, g: 255, b: 255, a: 1.0 }; + this.hueCircle = undefined; + this.initialColor = { r: 255, g: 255, b: 255, a: 1.0 }; + this.previousColor = undefined; + this.applied = false; - // 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; - }, + // bound by + this.updateCallback = function () {}; + this.closeCallback = function () {}; - reset: function() { - clearTimeout(this._timer); - }, + // create all DOM elements + this._create(); + } - emit: function(input) { - if (this.state !== STATE_RECOGNIZED) { - return; - } + /** + * this inserts the colorPicker into a div from the DOM + * @param container + */ - 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); - } - } - }); - /** - * Rotate - * Recognized when two or more pointer are moving in a circular motion. - * @constructor - * @extends AttrRecognizer - */ - function RotateRecognizer() { - AttrRecognizer.apply(this, arguments); - } + _createClass(ColorPicker, [{ + key: 'insertTo', + value: function insertTo(container) { + if (this.hammer !== undefined) { + this.hammer.destroy(); + this.hammer = undefined; + } + this.container = container; + this.container.appendChild(this.frame); + this._bindHammer(); + + this._setSize(); + } - inherit(RotateRecognizer, AttrRecognizer, { /** - * @namespace - * @memberof RotateRecognizer + * the callback is executed on apply and save. Bind it to the application + * @param callback */ - defaults: { - event: 'rotate', - threshold: 0, - pointers: 2 - }, - getTouchAction: function() { - return [TOUCH_ACTION_NONE]; - }, + }, { + key: 'setUpdateCallback', + value: function setUpdateCallback(callback) { + if (typeof callback === 'function') { + this.updateCallback = callback; + } else { + throw new Error("Function attempted to set as colorPicker update callback is not a function."); + } + } - attrTest: function(input) { - return this._super.attrTest.call(this, input) && - (Math.abs(input.rotation) > this.options.threshold || this.state & STATE_BEGAN); + /** + * the callback is executed on apply and save. Bind it to the application + * @param callback + */ + + }, { + key: 'setCloseCallback', + value: function setCloseCallback(callback) { + if (typeof callback === 'function') { + this.closeCallback = callback; + } else { + throw new Error("Function attempted to set as colorPicker closing callback is not a function."); + } + } + }, { + key: '_isColorString', + value: function _isColorString(color) { + var htmlColors = { black: '#000000', navy: '#000080', darkblue: '#00008B', mediumblue: '#0000CD', blue: '#0000FF', darkgreen: '#006400', green: '#008000', teal: '#008080', darkcyan: '#008B8B', deepskyblue: '#00BFFF', darkturquoise: '#00CED1', mediumspringgreen: '#00FA9A', lime: '#00FF00', springgreen: '#00FF7F', aqua: '#00FFFF', cyan: '#00FFFF', midnightblue: '#191970', dodgerblue: '#1E90FF', lightseagreen: '#20B2AA', forestgreen: '#228B22', seagreen: '#2E8B57', darkslategray: '#2F4F4F', limegreen: '#32CD32', mediumseagreen: '#3CB371', turquoise: '#40E0D0', royalblue: '#4169E1', steelblue: '#4682B4', darkslateblue: '#483D8B', mediumturquoise: '#48D1CC', indigo: '#4B0082', darkolivegreen: '#556B2F', cadetblue: '#5F9EA0', cornflowerblue: '#6495ED', mediumaquamarine: '#66CDAA', dimgray: '#696969', slateblue: '#6A5ACD', olivedrab: '#6B8E23', slategray: '#708090', lightslategray: '#778899', mediumslateblue: '#7B68EE', lawngreen: '#7CFC00', chartreuse: '#7FFF00', aquamarine: '#7FFFD4', maroon: '#800000', purple: '#800080', olive: '#808000', gray: '#808080', skyblue: '#87CEEB', lightskyblue: '#87CEFA', blueviolet: '#8A2BE2', darkred: '#8B0000', darkmagenta: '#8B008B', saddlebrown: '#8B4513', darkseagreen: '#8FBC8F', lightgreen: '#90EE90', mediumpurple: '#9370D8', darkviolet: '#9400D3', palegreen: '#98FB98', darkorchid: '#9932CC', yellowgreen: '#9ACD32', sienna: '#A0522D', brown: '#A52A2A', darkgray: '#A9A9A9', lightblue: '#ADD8E6', greenyellow: '#ADFF2F', paleturquoise: '#AFEEEE', lightsteelblue: '#B0C4DE', powderblue: '#B0E0E6', firebrick: '#B22222', darkgoldenrod: '#B8860B', mediumorchid: '#BA55D3', rosybrown: '#BC8F8F', darkkhaki: '#BDB76B', silver: '#C0C0C0', mediumvioletred: '#C71585', indianred: '#CD5C5C', peru: '#CD853F', chocolate: '#D2691E', tan: '#D2B48C', lightgrey: '#D3D3D3', palevioletred: '#D87093', thistle: '#D8BFD8', orchid: '#DA70D6', goldenrod: '#DAA520', crimson: '#DC143C', gainsboro: '#DCDCDC', plum: '#DDA0DD', burlywood: '#DEB887', lightcyan: '#E0FFFF', lavender: '#E6E6FA', darksalmon: '#E9967A', violet: '#EE82EE', palegoldenrod: '#EEE8AA', lightcoral: '#F08080', khaki: '#F0E68C', aliceblue: '#F0F8FF', honeydew: '#F0FFF0', azure: '#F0FFFF', sandybrown: '#F4A460', wheat: '#F5DEB3', beige: '#F5F5DC', whitesmoke: '#F5F5F5', mintcream: '#F5FFFA', ghostwhite: '#F8F8FF', salmon: '#FA8072', antiquewhite: '#FAEBD7', linen: '#FAF0E6', lightgoldenrodyellow: '#FAFAD2', oldlace: '#FDF5E6', red: '#FF0000', fuchsia: '#FF00FF', magenta: '#FF00FF', deeppink: '#FF1493', orangered: '#FF4500', tomato: '#FF6347', hotpink: '#FF69B4', coral: '#FF7F50', darkorange: '#FF8C00', lightsalmon: '#FFA07A', orange: '#FFA500', lightpink: '#FFB6C1', pink: '#FFC0CB', gold: '#FFD700', peachpuff: '#FFDAB9', navajowhite: '#FFDEAD', moccasin: '#FFE4B5', bisque: '#FFE4C4', mistyrose: '#FFE4E1', blanchedalmond: '#FFEBCD', papayawhip: '#FFEFD5', lavenderblush: '#FFF0F5', seashell: '#FFF5EE', cornsilk: '#FFF8DC', lemonchiffon: '#FFFACD', floralwhite: '#FFFAF0', snow: '#FFFAFA', yellow: '#FFFF00', lightyellow: '#FFFFE0', ivory: '#FFFFF0', white: '#FFFFFF' }; + if (typeof color === 'string') { + return htmlColors[color]; + } } - }); - - /** - * 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); - } - inherit(SwipeRecognizer, AttrRecognizer, { /** - * @namespace - * @memberof SwipeRecognizer + * Set the color of the colorPicker + * Supported formats: + * 'red' --> HTML color string + * '#ffffff' --> hex string + * 'rbg(255,255,255)' --> rgb string + * 'rgba(255,255,255,1.0)' --> rgba string + * {r:255,g:255,b:255} --> rgb object + * {r:255,g:255,b:255,a:1.0} --> rgba object + * @param color + * @param setInitial */ - defaults: { - event: 'swipe', - threshold: 10, - velocity: 0.3, - direction: DIRECTION_HORIZONTAL | DIRECTION_VERTICAL, - pointers: 1 - }, - getTouchAction: function() { - return PanRecognizer.prototype.getTouchAction.call(this); - }, + }, { + key: 'setColor', + value: function setColor(color) { + var setInitial = arguments.length <= 1 || arguments[1] === undefined ? true : arguments[1]; - attrTest: function(input) { - var direction = this.options.direction; - var velocity; + if (color === 'none') { + return; + } - if (direction & (DIRECTION_HORIZONTAL | DIRECTION_VERTICAL)) { - velocity = input.overallVelocity; - } else if (direction & DIRECTION_HORIZONTAL) { - velocity = input.overallVelocityX; - } else if (direction & DIRECTION_VERTICAL) { - velocity = input.overallVelocityY; - } + var rgba = void 0; - return this._super.attrTest.call(this, input) && - direction & input.offsetDirection && - input.distance > this.options.threshold && - input.maxPointers == this.options.pointers && - abs(velocity) > this.options.velocity && input.eventType & INPUT_END; - }, + // if a html color shorthand is used, convert to hex + var htmlColor = this._isColorString(color); + if (htmlColor !== undefined) { + color = htmlColor; + } - emit: function(input) { - var direction = directionStr(input.offsetDirection); - if (direction) { - this.manager.emit(this.options.event + direction, input); + // check format + if (util.isString(color) === true) { + if (util.isValidRGB(color) === true) { + var rgbaArray = color.substr(4).substr(0, color.length - 5).split(','); + rgba = { r: rgbaArray[0], g: rgbaArray[1], b: rgbaArray[2], a: 1.0 }; + } else if (util.isValidRGBA(color) === true) { + var _rgbaArray = color.substr(5).substr(0, color.length - 6).split(','); + rgba = { r: _rgbaArray[0], g: _rgbaArray[1], b: _rgbaArray[2], a: _rgbaArray[3] }; + } else if (util.isValidHex(color) === true) { + var rgbObj = util.hexToRGB(color); + rgba = { r: rgbObj.r, g: rgbObj.g, b: rgbObj.b, a: 1.0 }; + } + } else { + if (color instanceof Object) { + if (color.r !== undefined && color.g !== undefined && color.b !== undefined) { + var alpha = color.a !== undefined ? color.a : '1.0'; + rgba = { r: color.r, g: color.g, b: color.b, a: alpha }; + } } + } - this.manager.emit(this.options.event, input); + // set color + if (rgba === undefined) { + throw new Error("Unknown color passed to the colorPicker. Supported are strings: rgb, hex, rgba. Object: rgb ({r:r,g:g,b:b,[a:a]}). Supplied: " + JSON.stringify(color)); + } else { + this._setColor(rgba, setInitial); + } } - }); - - /** - * 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. - * - * 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); - - // previous time and center, - // used for tap counting - this.pTime = false; - this.pCenter = false; - - this._timer = null; - this._input = null; - this.count = 0; - } - inherit(TapRecognizer, Recognizer, { /** - * @namespace - * @memberof PinchRecognizer + * this shows the color picker. + * The hue circle is constructed once and stored. */ - 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: 9, // a minimal movement is ok, but keep it low - posThreshold: 10 // a multi-tap can be a bit off the initial position - }, - - getTouchAction: function() { - return [TOUCH_ACTION_MANIPULATION]; - }, - - process: function(input) { - var options = this.options; - var validPointers = input.pointers.length === options.pointers; - var validMovement = input.distance < options.threshold; - var validTouchTime = input.deltaTime < options.time; - - this.reset(); - - if ((input.eventType & INPUT_START) && (this.count === 0)) { - return this.failTimeout(); - } + }, { + key: 'show', + value: function show() { + if (this.closeCallback !== undefined) { + this.closeCallback(); + this.closeCallback = undefined; + } - // 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(); - } + this.applied = false; + this.frame.style.display = 'block'; + this._generateHueCircle(); + } - var validInterval = this.pTime ? (input.timeStamp - this.pTime < options.interval) : true; - var validMultiTap = !this.pCenter || getDistance(this.pCenter, input.center) < options.posThreshold; + // ------------------------------------------ PRIVATE ----------------------------- // - this.pTime = input.timeStamp; - this.pCenter = input.center; + /** + * Hide the picker. Is called by the cancel button. + * Optional boolean to store the previous color for easy access later on. + * @param storePrevious + * @private + */ - if (!validMultiTap || !validInterval) { - this.count = 1; - } else { - this.count += 1; - } + }, { + key: '_hide', + value: function _hide() { + var _this = this; - this._input = input; + var storePrevious = arguments.length <= 0 || arguments[0] === undefined ? true : arguments[0]; - // 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; - }, + // store the previous color for next time; + if (storePrevious === true) { + this.previousColor = util.extend({}, this.color); + } - failTimeout: function() { - this._timer = setTimeoutContext(function() { - this.state = STATE_FAILED; - }, this.options.interval, this); - return STATE_FAILED; - }, + if (this.applied === true) { + this.updateCallback(this.initialColor); + } - reset: function() { - clearTimeout(this._timer); - }, + this.frame.style.display = 'none'; - emit: function() { - if (this.state == STATE_RECOGNIZED) { - this._input.tapCount = this.count; - this.manager.emit(this.options.event, this._input); + // call the closing callback, restoring the onclick method. + // this is in a setTimeout because it will trigger the show again before the click is done. + setTimeout(function () { + if (_this.closeCallback !== undefined) { + _this.closeCallback(); + _this.closeCallback = undefined; } + }, 0); } - }); - - /** - * Simple way to create a 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); - } - - /** - * @const {string} - */ - Hammer.VERSION = '2.0.6'; - /** - * default settings - * @namespace - */ - 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 + * bound to the save button. Saves and hides. + * @private */ - 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, + }, { + key: '_save', + value: function _save() { + this.updateCallback(this.color); + this.applied = false; + this._hide(); + } /** - * @type {Boolean} - * @default true + * Bound to apply button. Saves but does not close. Is undone by the cancel button. + * @private */ - 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, + }, { + key: '_apply', + value: function _apply() { + this.applied = true; + this.updateCallback(this.color); + this._updatePicker(this.color); + } /** - * force an input class - * @type {Null|Function} - * @default null + * load the color from the previous session. + * @private */ - 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] - ], + }, { + key: '_loadLast', + value: function _loadLast() { + if (this.previousColor !== undefined) { + this.setColor(this.previousColor, false); + } else { + alert("There is no last color to load..."); + } + } /** - * 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 + * set the color, place the picker + * @param rgba + * @param setInitial + * @private */ - cssProps: { - /** - * Disables text selection to improve the dragging gesture. Mainly for desktop browsers. - * @type {String} - * @default 'none' - */ - userSelect: 'none', - /** - * Disable the Windows Phone grippers when pressing an element. - * @type {String} - * @default 'none' - */ - touchSelect: 'none', + }, { + key: '_setColor', + value: function _setColor(rgba) { + var setInitial = arguments.length <= 1 || arguments[1] === undefined ? true : arguments[1]; - /** - * 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' - */ - touchCallout: 'none', + // store the initial color + if (setInitial === true) { + this.initialColor = util.extend({}, rgba); + } - /** - * Specifies whether zooming is enabled. Used by IE10> - * @type {String} - * @default 'none' - */ - contentZooming: 'none', + this.color = rgba; + var hsv = util.RGBToHSV(rgba.r, rgba.g, rgba.b); - /** - * Specifies that an entire element should be draggable instead of its contents. Mainly for desktop browsers. - * @type {String} - * @default 'none' - */ - userDrag: 'none', + var angleConvert = 2 * Math.PI; + var radius = this.r * hsv.s; + var x = this.centerCoordinates.x + radius * Math.sin(angleConvert * hsv.h); + var y = this.centerCoordinates.y + radius * Math.cos(angleConvert * hsv.h); - /** - * 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)' + this.colorPickerSelector.style.left = x - 0.5 * this.colorPickerSelector.clientWidth + 'px'; + this.colorPickerSelector.style.top = y - 0.5 * this.colorPickerSelector.clientHeight + 'px'; + + this._updatePicker(rgba); } - }; - var STOP = 1; - var FORCED_STOP = 2; + /** + * bound to opacity control + * @param value + * @private + */ - /** - * Manager - * @param {HTMLElement} element - * @param {Object} [options] - * @constructor - */ - function Manager(element, options) { - this.options = assign({}, Hammer.defaults, options || {}); + }, { + key: '_setOpacity', + value: function _setOpacity(value) { + this.color.a = value / 100; + this._updatePicker(this.color); + } - this.options.inputTarget = this.options.inputTarget || element; + /** + * bound to brightness control + * @param value + * @private + */ - this.handlers = {}; - this.session = {}; - this.recognizers = []; + }, { + key: '_setBrightness', + value: function _setBrightness(value) { + var hsv = util.RGBToHSV(this.color.r, this.color.g, this.color.b); + hsv.v = value / 100; + var rgba = util.HSVToRGB(hsv.h, hsv.s, hsv.v); + rgba['a'] = this.color.a; + this.color = rgba; + this._updatePicker(); + } - this.element = element; - this.input = createInputInstance(this); - this.touchAction = new TouchAction(this, this.options.touchAction); + /** + * update the color picker. A black circle overlays the hue circle to mimic the brightness decreasing. + * @param rgba + * @private + */ - toggleCssProps(this, true); + }, { + key: '_updatePicker', + value: function _updatePicker() { + var rgba = arguments.length <= 0 || arguments[0] === undefined ? this.color : arguments[0]; - each(this.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); - } + var hsv = util.RGBToHSV(rgba.r, rgba.g, rgba.b); + var ctx = this.colorPickerCanvas.getContext('2d'); + if (this.pixelRation === undefined) { + this.pixelRatio = (window.devicePixelRatio || 1) / (ctx.webkitBackingStorePixelRatio || ctx.mozBackingStorePixelRatio || ctx.msBackingStorePixelRatio || ctx.oBackingStorePixelRatio || ctx.backingStorePixelRatio || 1); + } + ctx.setTransform(this.pixelRatio, 0, 0, this.pixelRatio, 0, 0); - Manager.prototype = { - /** - * set options - * @param {Object} options - * @returns {Manager} - */ - set: function(options) { - assign(this.options, options); + // clear the canvas + var w = this.colorPickerCanvas.clientWidth; + var h = this.colorPickerCanvas.clientHeight; + ctx.clearRect(0, 0, w, h); - // 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; - }, + ctx.putImageData(this.hueCircle, 0, 0); + ctx.fillStyle = 'rgba(0,0,0,' + (1 - hsv.v) + ')'; + ctx.circle(this.centerCoordinates.x, this.centerCoordinates.y, this.r); + ctx.fill(); + + this.brightnessRange.value = 100 * hsv.v; + this.opacityRange.value = 100 * rgba.a; + + this.initialColorDiv.style.backgroundColor = 'rgba(' + this.initialColor.r + ',' + this.initialColor.g + ',' + this.initialColor.b + ',' + this.initialColor.a + ')'; + this.newColorDiv.style.backgroundColor = 'rgba(' + this.color.r + ',' + this.color.g + ',' + this.color.b + ',' + this.color.a + ')'; + } /** - * 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] + * used by create to set the size of the canvas. + * @private */ - stop: function(force) { - this.session.stopped = force ? FORCED_STOP : STOP; - }, + + }, { + key: '_setSize', + value: function _setSize() { + this.colorPickerCanvas.style.width = '100%'; + this.colorPickerCanvas.style.height = '100%'; + + this.colorPickerCanvas.width = 289 * this.pixelRatio; + this.colorPickerCanvas.height = 289 * this.pixelRatio; + } /** - * 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 + * create all dom elements + * TODO: cleanup, lots of similar dom elements + * @private */ - recognize: function(inputData) { - var session = this.session; - if (session.stopped) { - return; - } - // run the touch-action polyfill - this.touchAction.preventDefaults(inputData); + }, { + key: '_create', + value: function _create() { + this.frame = document.createElement('div'); + this.frame.className = 'vis-color-picker'; - var recognizer; - var recognizers = this.recognizers; + this.colorPickerDiv = document.createElement('div'); + this.colorPickerSelector = document.createElement('div'); + this.colorPickerSelector.className = 'vis-selector'; + this.colorPickerDiv.appendChild(this.colorPickerSelector); - // 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; + this.colorPickerCanvas = document.createElement('canvas'); + this.colorPickerDiv.appendChild(this.colorPickerCanvas); - // 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; - } + if (!this.colorPickerCanvas.getContext) { + var noCanvas = document.createElement('DIV'); + noCanvas.style.color = 'red'; + noCanvas.style.fontWeight = 'bold'; + noCanvas.style.padding = '10px'; + noCanvas.innerHTML = 'Error: your browser does not support HTML canvas'; + this.colorPickerCanvas.appendChild(noCanvas); + } else { + var ctx = this.colorPickerCanvas.getContext("2d"); + this.pixelRatio = (window.devicePixelRatio || 1) / (ctx.webkitBackingStorePixelRatio || ctx.mozBackingStorePixelRatio || ctx.msBackingStorePixelRatio || ctx.oBackingStorePixelRatio || ctx.backingStorePixelRatio || 1); - var i = 0; - while (i < recognizers.length) { - recognizer = recognizers[i]; + this.colorPickerCanvas.getContext("2d").setTransform(this.pixelRatio, 0, 0, this.pixelRatio, 0, 0); + } - // 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(); - } + this.colorPickerDiv.className = 'vis-color'; - // 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++; - } - }, + this.opacityDiv = document.createElement('div'); + this.opacityDiv.className = 'vis-opacity'; - /** - * get a recognizer by its event name. - * @param {Recognizer|String} recognizer - * @returns {Recognizer|Null} - */ - get: function(recognizer) { - if (recognizer instanceof Recognizer) { - return recognizer; - } + this.brightnessDiv = document.createElement('div'); + this.brightnessDiv.className = 'vis-brightness'; - var recognizers = this.recognizers; - for (var i = 0; i < recognizers.length; i++) { - if (recognizers[i].options.event == recognizer) { - return recognizers[i]; - } - } - return null; - }, + this.arrowDiv = document.createElement('div'); + this.arrowDiv.className = 'vis-arrow'; - /** - * 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; - } + this.opacityRange = document.createElement('input'); + try { + this.opacityRange.type = 'range'; // Not supported on IE9 + this.opacityRange.min = '0'; + this.opacityRange.max = '100'; + } catch (err) {} + this.opacityRange.value = '100'; + this.opacityRange.className = 'vis-range'; - // remove existing - var existing = this.get(recognizer.options.event); - if (existing) { - this.remove(existing); - } + this.brightnessRange = document.createElement('input'); + try { + this.brightnessRange.type = 'range'; // Not supported on IE9 + this.brightnessRange.min = '0'; + this.brightnessRange.max = '100'; + } catch (err) {} + this.brightnessRange.value = '100'; + this.brightnessRange.className = 'vis-range'; - this.recognizers.push(recognizer); - recognizer.manager = this; + this.opacityDiv.appendChild(this.opacityRange); + this.brightnessDiv.appendChild(this.brightnessRange); - this.touchAction.update(); - return recognizer; - }, + var me = this; + this.opacityRange.onchange = function () { + me._setOpacity(this.value); + }; + this.opacityRange.oninput = function () { + me._setOpacity(this.value); + }; + this.brightnessRange.onchange = function () { + me._setBrightness(this.value); + }; + this.brightnessRange.oninput = function () { + me._setBrightness(this.value); + }; - /** - * remove a recognizer by name or instance - * @param {Recognizer|String} recognizer - * @returns {Manager} - */ - remove: function(recognizer) { - if (invokeArrayArg(recognizer, 'remove', this)) { - return this; - } + this.brightnessLabel = document.createElement("div"); + this.brightnessLabel.className = "vis-label vis-brightness"; + this.brightnessLabel.innerHTML = 'brightness:'; - recognizer = this.get(recognizer); + this.opacityLabel = document.createElement("div"); + this.opacityLabel.className = "vis-label vis-opacity"; + this.opacityLabel.innerHTML = 'opacity:'; - // let's make sure this recognizer exists - if (recognizer) { - var recognizers = this.recognizers; - var index = inArray(recognizers, recognizer); + this.newColorDiv = document.createElement("div"); + this.newColorDiv.className = "vis-new-color"; + this.newColorDiv.innerHTML = 'new'; - if (index !== -1) { - recognizers.splice(index, 1); - this.touchAction.update(); - } - } + this.initialColorDiv = document.createElement("div"); + this.initialColorDiv.className = "vis-initial-color"; + this.initialColorDiv.innerHTML = 'initial'; - return this; - }, + this.cancelButton = document.createElement("div"); + this.cancelButton.className = "vis-button vis-cancel"; + this.cancelButton.innerHTML = 'cancel'; + this.cancelButton.onclick = this._hide.bind(this, false); - /** - * 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; - }, + this.applyButton = document.createElement("div"); + this.applyButton.className = "vis-button vis-apply"; + this.applyButton.innerHTML = 'apply'; + this.applyButton.onclick = this._apply.bind(this); - /** - * 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] && handlers[event].splice(inArray(handlers[event], handler), 1); - } - }); - return this; - }, + this.saveButton = document.createElement("div"); + this.saveButton.className = "vis-button vis-save"; + this.saveButton.innerHTML = 'save'; + this.saveButton.onclick = this._save.bind(this); + + this.loadButton = document.createElement("div"); + this.loadButton.className = "vis-button vis-load"; + this.loadButton.innerHTML = 'load last'; + this.loadButton.onclick = this._loadLast.bind(this); + + this.frame.appendChild(this.colorPickerDiv); + this.frame.appendChild(this.arrowDiv); + this.frame.appendChild(this.brightnessLabel); + this.frame.appendChild(this.brightnessDiv); + this.frame.appendChild(this.opacityLabel); + this.frame.appendChild(this.opacityDiv); + this.frame.appendChild(this.newColorDiv); + this.frame.appendChild(this.initialColorDiv); + + this.frame.appendChild(this.cancelButton); + this.frame.appendChild(this.applyButton); + this.frame.appendChild(this.saveButton); + this.frame.appendChild(this.loadButton); + } /** - * emit event to the listeners - * @param {String} event - * @param {Object} data + * bind hammer to the color picker + * @private */ - emit: function(event, data) { - // we also want to trigger dom events - if (this.options.domEvents) { - triggerDomEvent(event, data); - } - // no handlers, so skip it all - var handlers = this.handlers[event] && this.handlers[event].slice(); - if (!handlers || !handlers.length) { - return; - } + }, { + key: '_bindHammer', + value: function _bindHammer() { + var _this2 = this; - data.type = event; - data.preventDefault = function() { - data.srcEvent.preventDefault(); - }; + this.drag = {}; + this.pinch = {}; + this.hammer = new Hammer(this.colorPickerCanvas); + this.hammer.get('pinch').set({ enable: true }); - var i = 0; - while (i < handlers.length) { - handlers[i](data); - i++; - } - }, + hammerUtil.onTouch(this.hammer, function (event) { + _this2._moveSelector(event); + }); + this.hammer.on('tap', function (event) { + _this2._moveSelector(event); + }); + this.hammer.on('panstart', function (event) { + _this2._moveSelector(event); + }); + this.hammer.on('panmove', function (event) { + _this2._moveSelector(event); + }); + this.hammer.on('panend', function (event) { + _this2._moveSelector(event); + }); + } /** - * destroy the manager and unbinds all events - * it doesn't unbind dom events, that is the user own responsibility + * generate the hue circle. This is relatively heavy (200ms) and is done only once on the first time it is shown. + * @private */ - destroy: function() { - this.element && toggleCssProps(this, false); - this.handlers = {}; - this.session = {}; - this.input.destroy(); - this.element = null; - } - }; + }, { + key: '_generateHueCircle', + value: function _generateHueCircle() { + if (this.generated === false) { + var ctx = this.colorPickerCanvas.getContext('2d'); + if (this.pixelRation === undefined) { + this.pixelRatio = (window.devicePixelRatio || 1) / (ctx.webkitBackingStorePixelRatio || ctx.mozBackingStorePixelRatio || ctx.msBackingStorePixelRatio || ctx.oBackingStorePixelRatio || ctx.backingStorePixelRatio || 1); + } + ctx.setTransform(this.pixelRatio, 0, 0, this.pixelRatio, 0, 0); - /** - * 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; - if (!element.style) { - return; - } - each(manager.options.cssProps, function(value, name) { - element.style[prefixed(element.style, name)] = add ? value : ''; - }); - } + // clear the canvas + var w = this.colorPickerCanvas.clientWidth; + var h = this.colorPickerCanvas.clientHeight; + ctx.clearRect(0, 0, w, h); - /** - * 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); - } + // draw hue circle + var x = void 0, + y = void 0, + hue = void 0, + sat = void 0; + this.centerCoordinates = { x: w * 0.5, y: h * 0.5 }; + this.r = 0.49 * w; + var angleConvert = 2 * Math.PI / 360; + var hfac = 1 / 360; + var sfac = 1 / this.r; + var rgb = void 0; + for (hue = 0; hue < 360; hue++) { + for (sat = 0; sat < this.r; sat++) { + x = this.centerCoordinates.x + sat * Math.sin(angleConvert * hue); + y = this.centerCoordinates.y + sat * Math.cos(angleConvert * hue); + rgb = util.HSVToRGB(hue * hfac, sat * sfac, 1); + ctx.fillStyle = 'rgb(' + rgb.r + ',' + rgb.g + ',' + rgb.b + ')'; + ctx.fillRect(x - 0.5, y - 0.5, 2, 2); + } + } + ctx.strokeStyle = 'rgba(0,0,0,1)'; + ctx.circle(this.centerCoordinates.x, this.centerCoordinates.y, this.r); + ctx.stroke(); - assign(Hammer, { - INPUT_START: INPUT_START, - INPUT_MOVE: INPUT_MOVE, - INPUT_END: INPUT_END, - INPUT_CANCEL: INPUT_CANCEL, + this.hueCircle = ctx.getImageData(0, 0, w, h); + } + this.generated = true; + } - 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, + /** + * move the selector. This is called by hammer functions. + * + * @param event + * @private + */ - 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, + }, { + key: '_moveSelector', + value: function _moveSelector(event) { + var rect = this.colorPickerDiv.getBoundingClientRect(); + var left = event.center.x - rect.left; + var top = event.center.y - rect.top; - Manager: Manager, - Input: Input, - TouchAction: TouchAction, + var centerY = 0.5 * this.colorPickerDiv.clientHeight; + var centerX = 0.5 * this.colorPickerDiv.clientWidth; - TouchInput: TouchInput, - MouseInput: MouseInput, - PointerEventInput: PointerEventInput, - TouchMouseInput: TouchMouseInput, - SingleTouchInput: SingleTouchInput, + var x = left - centerX; + var y = top - centerY; - Recognizer: Recognizer, - AttrRecognizer: AttrRecognizer, - Tap: TapRecognizer, - Pan: PanRecognizer, - Swipe: SwipeRecognizer, - Pinch: PinchRecognizer, - Rotate: RotateRecognizer, - Press: PressRecognizer, + var angle = Math.atan2(x, y); + var radius = 0.98 * Math.min(Math.sqrt(x * x + y * y), centerX); - on: addEventListeners, - off: removeEventListeners, - each: each, - merge: merge, - extend: extend, - assign: assign, - inherit: inherit, - bindFn: bindFn, - prefixed: prefixed - }); + var newTop = Math.cos(angle) * radius + centerY; + var newLeft = Math.sin(angle) * radius + centerX; - // this prevents errors when Hammer is loaded in the presence of an AMD - // style loader but by script tag, not by the loader. - var freeGlobal = (typeof window !== 'undefined' ? window : (typeof self !== 'undefined' ? self : {})); // jshint ignore:line - freeGlobal.Hammer = Hammer; + this.colorPickerSelector.style.top = newTop - 0.5 * this.colorPickerSelector.clientHeight + 'px'; + this.colorPickerSelector.style.left = newLeft - 0.5 * this.colorPickerSelector.clientWidth + 'px'; - if (true) { - !(__WEBPACK_AMD_DEFINE_RESULT__ = function() { - return Hammer; - }.call(exports, __webpack_require__, exports, module), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)); - } else if (typeof module != 'undefined' && module.exports) { - module.exports = Hammer; - } else { - window[exportName] = Hammer; - } + // set color + var h = angle / (2 * Math.PI); + h = h < 0 ? h + 1 : h; + var s = radius / this.r; + var hsv = util.RGBToHSV(this.color.r, this.color.g, this.color.b); + hsv.h = h; + hsv.s = s; + var rgba = util.HSVToRGB(hsv.h, hsv.s, hsv.v); + rgba['a'] = this.color.a; + this.color = rgba; - })(window, document, 'Hammer'); + // update previews + this.initialColorDiv.style.backgroundColor = 'rgba(' + this.initialColor.r + ',' + this.initialColor.g + ',' + this.initialColor.b + ',' + this.initialColor.a + ')'; + this.newColorDiv.style.backgroundColor = 'rgba(' + this.color.r + ',' + this.color.g + ',' + this.color.b + ',' + this.color.a + ')'; + } + }]); + return ColorPicker; + }(); + + exports.default = ColorPicker; /***/ }, -/* 25 */ +/* 28 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; - var Hammer = __webpack_require__(22); + var Hammer = __webpack_require__(20); /** * Register a touch event, taking place before a gesture @@ -15559,7 +15780,7 @@ return /******/ (function(modules) { // webpackBootstrap }; /***/ }, -/* 26 */ +/* 29 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; @@ -15883,7 +16104,7 @@ return /******/ (function(modules) { // webpackBootstrap exports.printStyle = printStyle; /***/ }, -/* 27 */ +/* 30 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; @@ -15891,10 +16112,10 @@ return /******/ (function(modules) { // webpackBootstrap var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol ? "symbol" : typeof obj; }; var util = __webpack_require__(1); - var hammerUtil = __webpack_require__(25); + var hammerUtil = __webpack_require__(28); var moment = __webpack_require__(2); - var Component = __webpack_require__(28); - var DateUtil = __webpack_require__(29); + var Component = __webpack_require__(31); + var DateUtil = __webpack_require__(32); /** * @constructor Range @@ -16613,7 +16834,7 @@ return /******/ (function(modules) { // webpackBootstrap module.exports = Range; /***/ }, -/* 28 */ +/* 31 */ /***/ function(module, exports) { "use strict"; @@ -16673,7 +16894,7 @@ return /******/ (function(modules) { // webpackBootstrap module.exports = Component; /***/ }, -/* 29 */ +/* 32 */ /***/ function(module, exports) { "use strict"; @@ -17144,25 +17365,25 @@ return /******/ (function(modules) { // webpackBootstrap }; /***/ }, -/* 30 */ +/* 33 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol ? "symbol" : typeof obj; }; - var Emitter = __webpack_require__(12); - var Hammer = __webpack_require__(22); - var hammerUtil = __webpack_require__(25); + var Emitter = __webpack_require__(13); + var Hammer = __webpack_require__(20); + var hammerUtil = __webpack_require__(28); var util = __webpack_require__(1); - var DataSet = __webpack_require__(8); - var DataView = __webpack_require__(10); - var Range = __webpack_require__(27); - var ItemSet = __webpack_require__(31); - var TimeAxis = __webpack_require__(41); - var Activator = __webpack_require__(42); - var DateUtil = __webpack_require__(29); - var CustomTime = __webpack_require__(44); + var DataSet = __webpack_require__(9); + var DataView = __webpack_require__(11); + var Range = __webpack_require__(30); + var ItemSet = __webpack_require__(34); + var TimeAxis = __webpack_require__(44); + var Activator = __webpack_require__(45); + var DateUtil = __webpack_require__(32); + var CustomTime = __webpack_require__(46); /** * Create a timeline visualization @@ -18190,25 +18411,25 @@ return /******/ (function(modules) { // webpackBootstrap module.exports = Core; /***/ }, -/* 31 */ +/* 34 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol ? "symbol" : typeof obj; }; - var Hammer = __webpack_require__(22); + var Hammer = __webpack_require__(20); var util = __webpack_require__(1); - var DataSet = __webpack_require__(8); - var DataView = __webpack_require__(10); - var TimeStep = __webpack_require__(32); - var Component = __webpack_require__(28); - var Group = __webpack_require__(33); - var BackgroundGroup = __webpack_require__(37); - var BoxItem = __webpack_require__(38); - var PointItem = __webpack_require__(39); - var RangeItem = __webpack_require__(35); - var BackgroundItem = __webpack_require__(40); + var DataSet = __webpack_require__(9); + var DataView = __webpack_require__(11); + var TimeStep = __webpack_require__(35); + var Component = __webpack_require__(31); + var Group = __webpack_require__(36); + var BackgroundGroup = __webpack_require__(40); + var BoxItem = __webpack_require__(41); + var PointItem = __webpack_require__(42); + var RangeItem = __webpack_require__(38); + var BackgroundItem = __webpack_require__(43); var UNGROUPED = '__ungrouped__'; // reserved group id for ungrouped items var BACKGROUND = '__background__'; // reserved group id for background items without group @@ -20169,13 +20390,13 @@ return /******/ (function(modules) { // webpackBootstrap module.exports = ItemSet; /***/ }, -/* 32 */ +/* 35 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; var moment = __webpack_require__(2); - var DateUtil = __webpack_require__(29); + var DateUtil = __webpack_require__(32); var util = __webpack_require__(1); /** @@ -20879,14 +21100,14 @@ return /******/ (function(modules) { // webpackBootstrap module.exports = TimeStep; /***/ }, -/* 33 */ +/* 36 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; var util = __webpack_require__(1); - var stack = __webpack_require__(34); - var RangeItem = __webpack_require__(35); + var stack = __webpack_require__(37); + var RangeItem = __webpack_require__(38); /** * @constructor Group @@ -21503,7 +21724,7 @@ return /******/ (function(modules) { // webpackBootstrap module.exports = Group; /***/ }, -/* 34 */ +/* 37 */ /***/ function(module, exports) { 'use strict'; @@ -21619,26 +21840,25 @@ return /******/ (function(modules) { // webpackBootstrap * @param {{horizontal: number, vertical: number}} margin * An object containing a horizontal and vertical * minimum required margin. + * @param {boolean} rtl * @return {boolean} true if a and b collide, else false */ exports.collision = function (a, b, margin, rtl) { - var isCollision = null; if (rtl) { - isCollision = a.right - margin.horizontal + EPSILON < b.right + b.width && a.right + a.width + margin.horizontal - EPSILON > b.right && a.top - margin.vertical + EPSILON < b.top + b.height && a.top + a.height + margin.vertical - EPSILON > b.top; + return a.right - margin.horizontal + EPSILON < b.right + b.width && a.right + a.width + margin.horizontal - EPSILON > b.right && a.top - margin.vertical + EPSILON < b.top + b.height && a.top + a.height + margin.vertical - EPSILON > b.top; } else { - a.left - margin.horizontal + EPSILON < b.left + b.width && a.left + a.width + margin.horizontal - EPSILON > b.left && a.top - margin.vertical + EPSILON < b.top + b.height && a.top + a.height + margin.vertical - EPSILON > b.top; + return a.left - margin.horizontal + EPSILON < b.left + b.width && a.left + a.width + margin.horizontal - EPSILON > b.left && a.top - margin.vertical + EPSILON < b.top + b.height && a.top + a.height + margin.vertical - EPSILON > b.top; } - return isCollision; }; /***/ }, -/* 35 */ +/* 38 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; - var Hammer = __webpack_require__(22); - var Item = __webpack_require__(36); + var Hammer = __webpack_require__(20); + var Item = __webpack_require__(39); /** * @constructor RangeItem @@ -21956,12 +22176,12 @@ return /******/ (function(modules) { // webpackBootstrap module.exports = RangeItem; /***/ }, -/* 36 */ +/* 39 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; - var Hammer = __webpack_require__(22); + var Hammer = __webpack_require__(20); var util = __webpack_require__(1); /** @@ -22263,13 +22483,13 @@ return /******/ (function(modules) { // webpackBootstrap module.exports = Item; /***/ }, -/* 37 */ +/* 40 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; var util = __webpack_require__(1); - var Group = __webpack_require__(33); + var Group = __webpack_require__(36); /** * @constructor BackgroundGroup @@ -22327,12 +22547,12 @@ return /******/ (function(modules) { // webpackBootstrap module.exports = BackgroundGroup; /***/ }, -/* 38 */ +/* 41 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; - var Item = __webpack_require__(36); + var Item = __webpack_require__(39); var util = __webpack_require__(1); /** @@ -22599,12 +22819,12 @@ return /******/ (function(modules) { // webpackBootstrap module.exports = BoxItem; /***/ }, -/* 39 */ +/* 42 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; - var Item = __webpack_require__(36); + var Item = __webpack_require__(39); /** * @constructor PointItem @@ -22820,15 +23040,15 @@ return /******/ (function(modules) { // webpackBootstrap module.exports = PointItem; /***/ }, -/* 40 */ +/* 43 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; - var Hammer = __webpack_require__(22); - var Item = __webpack_require__(36); - var BackgroundGroup = __webpack_require__(37); - var RangeItem = __webpack_require__(35); + var Hammer = __webpack_require__(20); + var Item = __webpack_require__(39); + var BackgroundGroup = __webpack_require__(40); + var RangeItem = __webpack_require__(38); /** * @constructor BackgroundItem @@ -23041,7 +23261,7 @@ return /******/ (function(modules) { // webpackBootstrap module.exports = BackgroundItem; /***/ }, -/* 41 */ +/* 44 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; @@ -23049,9 +23269,9 @@ return /******/ (function(modules) { // webpackBootstrap var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol ? "symbol" : typeof obj; }; var util = __webpack_require__(1); - var Component = __webpack_require__(28); - var TimeStep = __webpack_require__(32); - var DateUtil = __webpack_require__(29); + var Component = __webpack_require__(31); + var TimeStep = __webpack_require__(35); + var DateUtil = __webpack_require__(32); var moment = __webpack_require__(2); /** @@ -23542,14 +23762,14 @@ return /******/ (function(modules) { // webpackBootstrap module.exports = TimeAxis; /***/ }, -/* 42 */ +/* 45 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; - var keycharm = __webpack_require__(43); - var Emitter = __webpack_require__(12); - var Hammer = __webpack_require__(22); + var keycharm = __webpack_require__(23); + var Emitter = __webpack_require__(13); + var Hammer = __webpack_require__(20); var util = __webpack_require__(1); /** @@ -23701,215 +23921,16 @@ return /******/ (function(modules) { // webpackBootstrap module.exports = Activator; /***/ }, -/* 43 */ -/***/ function(module, exports, __webpack_require__) { - - var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;"use strict"; - /** - * Created by Alex on 11/6/2014. - */ - - // https://github.com/umdjs/umd/blob/master/returnExports.js#L40-L60 - // if the module has no dependencies, the above pattern can be simplified to - (function (root, factory) { - if (true) { - // AMD. Register as an anonymous module. - !(__WEBPACK_AMD_DEFINE_ARRAY__ = [], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)); - } else if (typeof exports === 'object') { - // Node. Does not work with strict CommonJS, but - // only CommonJS-like environments that support module.exports, - // like Node. - module.exports = factory(); - } else { - // Browser globals (root is window) - root.keycharm = factory(); - } - }(this, function () { - - function keycharm(options) { - var preventDefault = options && options.preventDefault || false; - - var container = options && options.container || window; - - var _exportFunctions = {}; - var _bound = {keydown:{}, keyup:{}}; - var _keys = {}; - var i; - - // a - z - for (i = 97; i <= 122; i++) {_keys[String.fromCharCode(i)] = {code:65 + (i - 97), shift: false};} - // A - Z - for (i = 65; i <= 90; i++) {_keys[String.fromCharCode(i)] = {code:i, shift: true};} - // 0 - 9 - for (i = 0; i <= 9; i++) {_keys['' + i] = {code:48 + i, shift: false};} - // F1 - F12 - for (i = 1; i <= 12; i++) {_keys['F' + i] = {code:111 + i, shift: false};} - // num0 - num9 - for (i = 0; i <= 9; i++) {_keys['num' + i] = {code:96 + i, shift: false};} - - // numpad misc - _keys['num*'] = {code:106, shift: false}; - _keys['num+'] = {code:107, shift: false}; - _keys['num-'] = {code:109, shift: false}; - _keys['num/'] = {code:111, shift: false}; - _keys['num.'] = {code:110, shift: false}; - // arrows - _keys['left'] = {code:37, shift: false}; - _keys['up'] = {code:38, shift: false}; - _keys['right'] = {code:39, shift: false}; - _keys['down'] = {code:40, shift: false}; - // extra keys - _keys['space'] = {code:32, shift: false}; - _keys['enter'] = {code:13, shift: false}; - _keys['shift'] = {code:16, shift: undefined}; - _keys['esc'] = {code:27, shift: false}; - _keys['backspace'] = {code:8, shift: false}; - _keys['tab'] = {code:9, shift: false}; - _keys['ctrl'] = {code:17, shift: false}; - _keys['alt'] = {code:18, shift: false}; - _keys['delete'] = {code:46, shift: false}; - _keys['pageup'] = {code:33, shift: false}; - _keys['pagedown'] = {code:34, shift: false}; - // symbols - _keys['='] = {code:187, shift: false}; - _keys['-'] = {code:189, shift: false}; - _keys[']'] = {code:221, shift: false}; - _keys['['] = {code:219, shift: false}; - - - - var down = function(event) {handleEvent(event,'keydown');}; - var up = function(event) {handleEvent(event,'keyup');}; - - // handle the actualy bound key with the event - var handleEvent = function(event,type) { - if (_bound[type][event.keyCode] !== undefined) { - var bound = _bound[type][event.keyCode]; - for (var i = 0; i < bound.length; i++) { - if (bound[i].shift === undefined) { - bound[i].fn(event); - } - else if (bound[i].shift == true && event.shiftKey == true) { - bound[i].fn(event); - } - else if (bound[i].shift == false && event.shiftKey == false) { - bound[i].fn(event); - } - } - - if (preventDefault == true) { - event.preventDefault(); - } - } - }; - - // bind a key to a callback - _exportFunctions.bind = function(key, callback, type) { - if (type === undefined) { - type = 'keydown'; - } - if (_keys[key] === undefined) { - throw new Error("unsupported key: " + key); - } - if (_bound[type][_keys[key].code] === undefined) { - _bound[type][_keys[key].code] = []; - } - _bound[type][_keys[key].code].push({fn:callback, shift:_keys[key].shift}); - }; - - - // bind all keys to a call back (demo purposes) - _exportFunctions.bindAll = function(callback, type) { - if (type === undefined) { - type = 'keydown'; - } - for (var key in _keys) { - if (_keys.hasOwnProperty(key)) { - _exportFunctions.bind(key,callback,type); - } - } - }; - - // get the key label from an event - _exportFunctions.getKey = function(event) { - for (var key in _keys) { - if (_keys.hasOwnProperty(key)) { - if (event.shiftKey == true && _keys[key].shift == true && event.keyCode == _keys[key].code) { - return key; - } - else if (event.shiftKey == false && _keys[key].shift == false && event.keyCode == _keys[key].code) { - return key; - } - else if (event.keyCode == _keys[key].code && key == 'shift') { - return key; - } - } - } - return "unknown key, currently not supported"; - }; - - // unbind either a specific callback from a key or all of them (by leaving callback undefined) - _exportFunctions.unbind = function(key, callback, type) { - if (type === undefined) { - type = 'keydown'; - } - if (_keys[key] === undefined) { - throw new Error("unsupported key: " + key); - } - if (callback !== undefined) { - var newBindings = []; - var bound = _bound[type][_keys[key].code]; - if (bound !== undefined) { - for (var i = 0; i < bound.length; i++) { - if (!(bound[i].fn == callback && bound[i].shift == _keys[key].shift)) { - newBindings.push(_bound[type][_keys[key].code][i]); - } - } - } - _bound[type][_keys[key].code] = newBindings; - } - else { - _bound[type][_keys[key].code] = []; - } - }; - - // reset all bound variables. - _exportFunctions.reset = function() { - _bound = {keydown:{}, keyup:{}}; - }; - - // unbind all listeners and reset all variables. - _exportFunctions.destroy = function() { - _bound = {keydown:{}, keyup:{}}; - container.removeEventListener('keydown', down, true); - container.removeEventListener('keyup', up, true); - }; - - // create listeners. - container.addEventListener('keydown',down,true); - container.addEventListener('keyup',up,true); - - // return the public functions. - return _exportFunctions; - } - - return keycharm; - })); - - - - -/***/ }, -/* 44 */ +/* 46 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; - var Hammer = __webpack_require__(22); + var Hammer = __webpack_require__(20); var util = __webpack_require__(1); - var Component = __webpack_require__(28); + var Component = __webpack_require__(31); var moment = __webpack_require__(2); - var locales = __webpack_require__(45); + var locales = __webpack_require__(47); /** * A custom time bar @@ -24151,7 +24172,7 @@ return /******/ (function(modules) { // webpackBootstrap module.exports = CustomTime; /***/ }, -/* 45 */ +/* 47 */ /***/ function(module, exports) { 'use strict'; @@ -24173,15 +24194,15 @@ return /******/ (function(modules) { // webpackBootstrap exports['nl_BE'] = exports['nl']; /***/ }, -/* 46 */ +/* 48 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; var util = __webpack_require__(1); - var Component = __webpack_require__(28); + var Component = __webpack_require__(31); var moment = __webpack_require__(2); - var locales = __webpack_require__(45); + var locales = __webpack_require__(47); /** * A current time bar @@ -24356,7 +24377,7 @@ return /******/ (function(modules) { // webpackBootstrap module.exports = CurrentTime; /***/ }, -/* 47 */ +/* 49 */ /***/ function(module, exports) { 'use strict'; @@ -24599,37 +24620,37 @@ return /******/ (function(modules) { // webpackBootstrap exports.configureOptions = configureOptions; /***/ }, -/* 48 */ +/* 50 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; - var _Configurator = __webpack_require__(20); + var _Configurator = __webpack_require__(26); var _Configurator2 = _interopRequireDefault(_Configurator); - var _Validator = __webpack_require__(26); + var _Validator = __webpack_require__(29); var _Validator2 = _interopRequireDefault(_Validator); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - var Emitter = __webpack_require__(12); - var Hammer = __webpack_require__(22); + var Emitter = __webpack_require__(13); + var Hammer = __webpack_require__(20); var moment = __webpack_require__(2); var util = __webpack_require__(1); - var DataSet = __webpack_require__(8); - var DataView = __webpack_require__(10); - var Range = __webpack_require__(27); - var Core = __webpack_require__(30); - var TimeAxis = __webpack_require__(41); - var CurrentTime = __webpack_require__(46); - var CustomTime = __webpack_require__(44); - var LineGraph = __webpack_require__(49); + var DataSet = __webpack_require__(9); + var DataView = __webpack_require__(11); + var Range = __webpack_require__(30); + var Core = __webpack_require__(33); + var TimeAxis = __webpack_require__(44); + var CurrentTime = __webpack_require__(48); + var CustomTime = __webpack_require__(46); + var LineGraph = __webpack_require__(51); - var printStyle = __webpack_require__(26).printStyle; - var allOptions = __webpack_require__(57).allOptions; - var configureOptions = __webpack_require__(57).configureOptions; + var printStyle = __webpack_require__(29).printStyle; + var allOptions = __webpack_require__(59).allOptions; + var configureOptions = __webpack_require__(59).configureOptions; /** * Create a timeline visualization @@ -24947,7 +24968,7 @@ return /******/ (function(modules) { // webpackBootstrap module.exports = Graph2d; /***/ }, -/* 49 */ +/* 51 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; @@ -24955,16 +24976,16 @@ return /******/ (function(modules) { // webpackBootstrap var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol ? "symbol" : typeof obj; }; var util = __webpack_require__(1); - var DOMutil = __webpack_require__(7); - var DataSet = __webpack_require__(8); - var DataView = __webpack_require__(10); - var Component = __webpack_require__(28); - var DataAxis = __webpack_require__(50); - var GraphGroup = __webpack_require__(52); - var Legend = __webpack_require__(56); - var Bars = __webpack_require__(53); - var Lines = __webpack_require__(55); - var Points = __webpack_require__(54); + var DOMutil = __webpack_require__(8); + var DataSet = __webpack_require__(9); + var DataView = __webpack_require__(11); + var Component = __webpack_require__(31); + var DataAxis = __webpack_require__(52); + var GraphGroup = __webpack_require__(54); + var Legend = __webpack_require__(58); + var Bars = __webpack_require__(55); + var Lines = __webpack_require__(57); + var Points = __webpack_require__(56); var UNGROUPED = '__ungrouped__'; // reserved group id for ungrouped items @@ -25979,15 +26000,15 @@ return /******/ (function(modules) { // webpackBootstrap module.exports = LineGraph; /***/ }, -/* 50 */ +/* 52 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; var util = __webpack_require__(1); - var DOMutil = __webpack_require__(7); - var Component = __webpack_require__(28); - var DataScale = __webpack_require__(51); + var DOMutil = __webpack_require__(8); + var Component = __webpack_require__(31); + var DataScale = __webpack_require__(53); /** * A horizontal time axis * @param {Object} [options] See DataAxis.setOptions for the available @@ -26539,7 +26560,7 @@ return /******/ (function(modules) { // webpackBootstrap module.exports = DataAxis; /***/ }, -/* 51 */ +/* 53 */ /***/ function(module, exports) { 'use strict'; @@ -26781,7 +26802,7 @@ return /******/ (function(modules) { // webpackBootstrap module.exports = DataScale; /***/ }, -/* 52 */ +/* 54 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; @@ -26789,10 +26810,10 @@ return /******/ (function(modules) { // webpackBootstrap var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol ? "symbol" : typeof obj; }; var util = __webpack_require__(1); - var DOMutil = __webpack_require__(7); - var Bars = __webpack_require__(53); - var Lines = __webpack_require__(55); - var Points = __webpack_require__(54); + var DOMutil = __webpack_require__(8); + var Bars = __webpack_require__(55); + var Lines = __webpack_require__(57); + var Points = __webpack_require__(56); /** * /** @@ -26944,13 +26965,13 @@ return /******/ (function(modules) { // webpackBootstrap module.exports = GraphGroup; /***/ }, -/* 53 */ +/* 55 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; - var DOMutil = __webpack_require__(7); - var Points = __webpack_require__(54); + var DOMutil = __webpack_require__(8); + var Points = __webpack_require__(56); function Bargraph(groupId, options) {} @@ -27205,14 +27226,14 @@ return /******/ (function(modules) { // webpackBootstrap module.exports = Bargraph; /***/ }, -/* 54 */ +/* 56 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol ? "symbol" : typeof obj; }; - var DOMutil = __webpack_require__(7); + var DOMutil = __webpack_require__(8); function Points(groupId, options) {} @@ -27284,12 +27305,12 @@ return /******/ (function(modules) { // webpackBootstrap module.exports = Points; /***/ }, -/* 55 */ +/* 57 */ /***/ function(module, exports, __webpack_require__) { "use strict"; - var DOMutil = __webpack_require__(7); + var DOMutil = __webpack_require__(8); function Line(groupId, options) {} @@ -27573,14 +27594,14 @@ return /******/ (function(modules) { // webpackBootstrap module.exports = Line; /***/ }, -/* 56 */ +/* 58 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; var util = __webpack_require__(1); - var DOMutil = __webpack_require__(7); - var Component = __webpack_require__(28); + var DOMutil = __webpack_require__(8); + var Component = __webpack_require__(31); /** * Legend for Graph2d @@ -27792,7 +27813,7 @@ return /******/ (function(modules) { // webpackBootstrap module.exports = Legend; /***/ }, -/* 57 */ +/* 59 */ /***/ function(module, exports) { 'use strict'; @@ -28078,90 +28099,125 @@ return /******/ (function(modules) { // webpackBootstrap exports.configureOptions = configureOptions; /***/ }, -/* 58 */ +/* 60 */ +/***/ function(module, exports, __webpack_require__) { + + 'use strict'; + + // utils + exports.util = __webpack_require__(1); + exports.DOMutil = __webpack_require__(8); + + // data + exports.DataSet = __webpack_require__(9); + exports.DataView = __webpack_require__(11); + exports.Queue = __webpack_require__(10); + + // Network + exports.Network = __webpack_require__(61); + exports.network = { + Images: __webpack_require__(62), + dotparser: __webpack_require__(118), + gephiParser: __webpack_require__(119), + allOptions: __webpack_require__(114) + }; + exports.network.convertDot = function (input) { + return exports.network.dotparser.DOTToGraph(input); + }; + exports.network.convertGephi = function (input, options) { + return exports.network.gephiParser.parseGephi(input, options); + }; + + // bundled external libraries + exports.moment = __webpack_require__(2); + exports.Hammer = __webpack_require__(20); + exports.keycharm = __webpack_require__(23); + +/***/ }, +/* 61 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; - var _Images = __webpack_require__(59); + var _Images = __webpack_require__(62); var _Images2 = _interopRequireDefault(_Images); - var _Groups = __webpack_require__(60); + var _Groups = __webpack_require__(63); var _Groups2 = _interopRequireDefault(_Groups); - var _NodesHandler = __webpack_require__(61); + var _NodesHandler = __webpack_require__(64); var _NodesHandler2 = _interopRequireDefault(_NodesHandler); - var _EdgesHandler = __webpack_require__(81); + var _EdgesHandler = __webpack_require__(84); var _EdgesHandler2 = _interopRequireDefault(_EdgesHandler); - var _PhysicsEngine = __webpack_require__(90); + var _PhysicsEngine = __webpack_require__(93); var _PhysicsEngine2 = _interopRequireDefault(_PhysicsEngine); - var _Clustering = __webpack_require__(99); + var _Clustering = __webpack_require__(102); var _Clustering2 = _interopRequireDefault(_Clustering); - var _CanvasRenderer = __webpack_require__(102); + var _CanvasRenderer = __webpack_require__(105); var _CanvasRenderer2 = _interopRequireDefault(_CanvasRenderer); - var _Canvas = __webpack_require__(103); + var _Canvas = __webpack_require__(106); var _Canvas2 = _interopRequireDefault(_Canvas); - var _View = __webpack_require__(104); + var _View = __webpack_require__(107); var _View2 = _interopRequireDefault(_View); - var _InteractionHandler = __webpack_require__(105); + var _InteractionHandler = __webpack_require__(108); var _InteractionHandler2 = _interopRequireDefault(_InteractionHandler); - var _SelectionHandler = __webpack_require__(108); + var _SelectionHandler = __webpack_require__(111); var _SelectionHandler2 = _interopRequireDefault(_SelectionHandler); - var _LayoutEngine = __webpack_require__(109); + var _LayoutEngine = __webpack_require__(112); var _LayoutEngine2 = _interopRequireDefault(_LayoutEngine); - var _ManipulationSystem = __webpack_require__(110); + var _ManipulationSystem = __webpack_require__(113); var _ManipulationSystem2 = _interopRequireDefault(_ManipulationSystem); - var _Configurator = __webpack_require__(20); + var _Configurator = __webpack_require__(26); var _Configurator2 = _interopRequireDefault(_Configurator); - var _Validator = __webpack_require__(26); + var _Validator = __webpack_require__(29); var _Validator2 = _interopRequireDefault(_Validator); - var _options = __webpack_require__(111); + var _options = __webpack_require__(114); - var _KamadaKawai = __webpack_require__(112); + var _KamadaKawai = __webpack_require__(115); var _KamadaKawai2 = _interopRequireDefault(_KamadaKawai); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } // Load custom shapes into CanvasRenderingContext2D - __webpack_require__(114); + __webpack_require__(117); - var Emitter = __webpack_require__(12); + var Emitter = __webpack_require__(13); var util = __webpack_require__(1); - var DataSet = __webpack_require__(8); - var DataView = __webpack_require__(10); - var dotparser = __webpack_require__(115); - var gephiParser = __webpack_require__(116); - var Activator = __webpack_require__(42); - var locales = __webpack_require__(117); + var DataSet = __webpack_require__(9); + var DataView = __webpack_require__(11); + var dotparser = __webpack_require__(118); + var gephiParser = __webpack_require__(119); + var Activator = __webpack_require__(45); + var locales = __webpack_require__(120); /** * @constructor Network @@ -28713,7 +28769,7 @@ return /******/ (function(modules) { // webpackBootstrap module.exports = Network; /***/ }, -/* 59 */ +/* 62 */ /***/ function(module, exports) { "use strict"; @@ -28843,7 +28899,7 @@ return /******/ (function(modules) { // webpackBootstrap exports.default = Images; /***/ }, -/* 60 */ +/* 63 */ /***/ function(module, exports, __webpack_require__) { "use strict"; @@ -28987,7 +29043,7 @@ return /******/ (function(modules) { // webpackBootstrap exports.default = Groups; /***/ }, -/* 61 */ +/* 64 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; @@ -28998,11 +29054,11 @@ return /******/ (function(modules) { // webpackBootstrap var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); - var _Node = __webpack_require__(62); + var _Node = __webpack_require__(65); var _Node2 = _interopRequireDefault(_Node); - var _Label = __webpack_require__(63); + var _Label = __webpack_require__(66); var _Label2 = _interopRequireDefault(_Label); @@ -29011,8 +29067,8 @@ return /******/ (function(modules) { // webpackBootstrap function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } var util = __webpack_require__(1); - var DataSet = __webpack_require__(8); - var DataView = __webpack_require__(10); + var DataSet = __webpack_require__(9); + var DataView = __webpack_require__(11); var NodesHandler = function () { function NodesHandler(body, images, groups, layoutEngine) { @@ -29512,7 +29568,7 @@ return /******/ (function(modules) { // webpackBootstrap exports.default = NodesHandler; /***/ }, -/* 62 */ +/* 65 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; @@ -29523,67 +29579,67 @@ return /******/ (function(modules) { // webpackBootstrap var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); - var _Label = __webpack_require__(63); + var _Label = __webpack_require__(66); var _Label2 = _interopRequireDefault(_Label); - var _Box = __webpack_require__(64); + var _Box = __webpack_require__(67); var _Box2 = _interopRequireDefault(_Box); - var _Circle = __webpack_require__(66); + var _Circle = __webpack_require__(69); var _Circle2 = _interopRequireDefault(_Circle); - var _CircularImage = __webpack_require__(68); + var _CircularImage = __webpack_require__(71); var _CircularImage2 = _interopRequireDefault(_CircularImage); - var _Database = __webpack_require__(69); + var _Database = __webpack_require__(72); var _Database2 = _interopRequireDefault(_Database); - var _Diamond = __webpack_require__(70); + var _Diamond = __webpack_require__(73); var _Diamond2 = _interopRequireDefault(_Diamond); - var _Dot = __webpack_require__(72); + var _Dot = __webpack_require__(75); var _Dot2 = _interopRequireDefault(_Dot); - var _Ellipse = __webpack_require__(73); + var _Ellipse = __webpack_require__(76); var _Ellipse2 = _interopRequireDefault(_Ellipse); - var _Icon = __webpack_require__(74); + var _Icon = __webpack_require__(77); var _Icon2 = _interopRequireDefault(_Icon); - var _Image = __webpack_require__(75); + var _Image = __webpack_require__(78); var _Image2 = _interopRequireDefault(_Image); - var _Square = __webpack_require__(76); + var _Square = __webpack_require__(79); var _Square2 = _interopRequireDefault(_Square); - var _Star = __webpack_require__(77); + var _Star = __webpack_require__(80); var _Star2 = _interopRequireDefault(_Star); - var _Text = __webpack_require__(78); + var _Text = __webpack_require__(81); var _Text2 = _interopRequireDefault(_Text); - var _Triangle = __webpack_require__(79); + var _Triangle = __webpack_require__(82); var _Triangle2 = _interopRequireDefault(_Triangle); - var _TriangleDown = __webpack_require__(80); + var _TriangleDown = __webpack_require__(83); var _TriangleDown2 = _interopRequireDefault(_TriangleDown); - var _Validator = __webpack_require__(26); + var _Validator = __webpack_require__(29); var _Validator2 = _interopRequireDefault(_Validator); @@ -30057,7 +30113,7 @@ return /******/ (function(modules) { // webpackBootstrap exports.default = Node; /***/ }, -/* 63 */ +/* 66 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; @@ -30400,7 +30456,7 @@ return /******/ (function(modules) { // webpackBootstrap exports.default = Label; /***/ }, -/* 64 */ +/* 67 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; @@ -30411,7 +30467,7 @@ return /******/ (function(modules) { // webpackBootstrap var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); - var _NodeBase2 = __webpack_require__(65); + var _NodeBase2 = __webpack_require__(68); var _NodeBase3 = _interopRequireDefault(_NodeBase2); @@ -30514,7 +30570,7 @@ return /******/ (function(modules) { // webpackBootstrap exports.default = Box; /***/ }, -/* 65 */ +/* 68 */ /***/ function(module, exports) { "use strict"; @@ -30610,7 +30666,7 @@ return /******/ (function(modules) { // webpackBootstrap exports.default = NodeBase; /***/ }, -/* 66 */ +/* 69 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; @@ -30621,7 +30677,7 @@ return /******/ (function(modules) { // webpackBootstrap var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); - var _CircleImageBase2 = __webpack_require__(67); + var _CircleImageBase2 = __webpack_require__(70); var _CircleImageBase3 = _interopRequireDefault(_CircleImageBase2); @@ -30695,7 +30751,7 @@ return /******/ (function(modules) { // webpackBootstrap exports.default = Circle; /***/ }, -/* 67 */ +/* 70 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; @@ -30706,7 +30762,7 @@ return /******/ (function(modules) { // webpackBootstrap var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); - var _NodeBase2 = __webpack_require__(65); + var _NodeBase2 = __webpack_require__(68); var _NodeBase3 = _interopRequireDefault(_NodeBase2); @@ -30896,7 +30952,7 @@ return /******/ (function(modules) { // webpackBootstrap exports.default = CircleImageBase; /***/ }, -/* 68 */ +/* 71 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; @@ -30907,7 +30963,7 @@ return /******/ (function(modules) { // webpackBootstrap var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); - var _CircleImageBase2 = __webpack_require__(67); + var _CircleImageBase2 = __webpack_require__(70); var _CircleImageBase3 = _interopRequireDefault(_CircleImageBase2); @@ -31003,7 +31059,7 @@ return /******/ (function(modules) { // webpackBootstrap exports.default = CircularImage; /***/ }, -/* 69 */ +/* 72 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; @@ -31014,7 +31070,7 @@ return /******/ (function(modules) { // webpackBootstrap var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); - var _NodeBase2 = __webpack_require__(65); + var _NodeBase2 = __webpack_require__(68); var _NodeBase3 = _interopRequireDefault(_NodeBase2); @@ -31112,7 +31168,7 @@ return /******/ (function(modules) { // webpackBootstrap exports.default = Database; /***/ }, -/* 70 */ +/* 73 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; @@ -31123,7 +31179,7 @@ return /******/ (function(modules) { // webpackBootstrap var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); - var _ShapeBase2 = __webpack_require__(71); + var _ShapeBase2 = __webpack_require__(74); var _ShapeBase3 = _interopRequireDefault(_ShapeBase2); @@ -31167,7 +31223,7 @@ return /******/ (function(modules) { // webpackBootstrap exports.default = Diamond; /***/ }, -/* 71 */ +/* 74 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; @@ -31178,7 +31234,7 @@ return /******/ (function(modules) { // webpackBootstrap var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); - var _NodeBase2 = __webpack_require__(65); + var _NodeBase2 = __webpack_require__(68); var _NodeBase3 = _interopRequireDefault(_NodeBase2); @@ -31274,7 +31330,7 @@ return /******/ (function(modules) { // webpackBootstrap exports.default = ShapeBase; /***/ }, -/* 72 */ +/* 75 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; @@ -31285,7 +31341,7 @@ return /******/ (function(modules) { // webpackBootstrap var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); - var _ShapeBase2 = __webpack_require__(71); + var _ShapeBase2 = __webpack_require__(74); var _ShapeBase3 = _interopRequireDefault(_ShapeBase2); @@ -31330,7 +31386,7 @@ return /******/ (function(modules) { // webpackBootstrap exports.default = Dot; /***/ }, -/* 73 */ +/* 76 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; @@ -31341,7 +31397,7 @@ return /******/ (function(modules) { // webpackBootstrap var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); - var _NodeBase2 = __webpack_require__(65); + var _NodeBase2 = __webpack_require__(68); var _NodeBase3 = _interopRequireDefault(_NodeBase2); @@ -31448,7 +31504,7 @@ return /******/ (function(modules) { // webpackBootstrap exports.default = Ellipse; /***/ }, -/* 74 */ +/* 77 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; @@ -31459,7 +31515,7 @@ return /******/ (function(modules) { // webpackBootstrap var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); - var _NodeBase2 = __webpack_require__(65); + var _NodeBase2 = __webpack_require__(68); var _NodeBase3 = _interopRequireDefault(_NodeBase2); @@ -31562,7 +31618,7 @@ return /******/ (function(modules) { // webpackBootstrap exports.default = Icon; /***/ }, -/* 75 */ +/* 78 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; @@ -31573,7 +31629,7 @@ return /******/ (function(modules) { // webpackBootstrap var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); - var _CircleImageBase2 = __webpack_require__(67); + var _CircleImageBase2 = __webpack_require__(70); var _CircleImageBase3 = _interopRequireDefault(_CircleImageBase2); @@ -31679,7 +31735,7 @@ return /******/ (function(modules) { // webpackBootstrap exports.default = Image; /***/ }, -/* 76 */ +/* 79 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; @@ -31690,7 +31746,7 @@ return /******/ (function(modules) { // webpackBootstrap var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); - var _ShapeBase2 = __webpack_require__(71); + var _ShapeBase2 = __webpack_require__(74); var _ShapeBase3 = _interopRequireDefault(_ShapeBase2); @@ -31734,7 +31790,7 @@ return /******/ (function(modules) { // webpackBootstrap exports.default = Square; /***/ }, -/* 77 */ +/* 80 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; @@ -31745,7 +31801,7 @@ return /******/ (function(modules) { // webpackBootstrap var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); - var _ShapeBase2 = __webpack_require__(71); + var _ShapeBase2 = __webpack_require__(74); var _ShapeBase3 = _interopRequireDefault(_ShapeBase2); @@ -31789,7 +31845,7 @@ return /******/ (function(modules) { // webpackBootstrap exports.default = Star; /***/ }, -/* 78 */ +/* 81 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; @@ -31800,7 +31856,7 @@ return /******/ (function(modules) { // webpackBootstrap var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); - var _NodeBase2 = __webpack_require__(65); + var _NodeBase2 = __webpack_require__(68); var _NodeBase3 = _interopRequireDefault(_NodeBase2); @@ -31874,7 +31930,7 @@ return /******/ (function(modules) { // webpackBootstrap exports.default = Text; /***/ }, -/* 79 */ +/* 82 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; @@ -31885,7 +31941,7 @@ return /******/ (function(modules) { // webpackBootstrap var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); - var _ShapeBase2 = __webpack_require__(71); + var _ShapeBase2 = __webpack_require__(74); var _ShapeBase3 = _interopRequireDefault(_ShapeBase2); @@ -31929,7 +31985,7 @@ return /******/ (function(modules) { // webpackBootstrap exports.default = Triangle; /***/ }, -/* 80 */ +/* 83 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; @@ -31940,7 +31996,7 @@ return /******/ (function(modules) { // webpackBootstrap var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); - var _ShapeBase2 = __webpack_require__(71); + var _ShapeBase2 = __webpack_require__(74); var _ShapeBase3 = _interopRequireDefault(_ShapeBase2); @@ -31984,7 +32040,7 @@ return /******/ (function(modules) { // webpackBootstrap exports.default = TriangleDown; /***/ }, -/* 81 */ +/* 84 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; @@ -31995,11 +32051,11 @@ return /******/ (function(modules) { // webpackBootstrap var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); - var _Edge = __webpack_require__(82); + var _Edge = __webpack_require__(85); var _Edge2 = _interopRequireDefault(_Edge); - var _Label = __webpack_require__(63); + var _Label = __webpack_require__(66); var _Label2 = _interopRequireDefault(_Label); @@ -32008,8 +32064,8 @@ return /******/ (function(modules) { // webpackBootstrap function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } var util = __webpack_require__(1); - var DataSet = __webpack_require__(8); - var DataView = __webpack_require__(10); + var DataSet = __webpack_require__(9); + var DataView = __webpack_require__(11); var EdgesHandler = function () { function EdgesHandler(body, images, groups) { @@ -32430,7 +32486,7 @@ return /******/ (function(modules) { // webpackBootstrap exports.default = EdgesHandler; /***/ }, -/* 82 */ +/* 85 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; @@ -32443,23 +32499,23 @@ return /******/ (function(modules) { // webpackBootstrap var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); - var _Label = __webpack_require__(63); + var _Label = __webpack_require__(66); var _Label2 = _interopRequireDefault(_Label); - var _CubicBezierEdge = __webpack_require__(83); + var _CubicBezierEdge = __webpack_require__(86); var _CubicBezierEdge2 = _interopRequireDefault(_CubicBezierEdge); - var _BezierEdgeDynamic = __webpack_require__(87); + var _BezierEdgeDynamic = __webpack_require__(90); var _BezierEdgeDynamic2 = _interopRequireDefault(_BezierEdgeDynamic); - var _BezierEdgeStatic = __webpack_require__(88); + var _BezierEdgeStatic = __webpack_require__(91); var _BezierEdgeStatic2 = _interopRequireDefault(_BezierEdgeStatic); - var _StraightEdge = __webpack_require__(89); + var _StraightEdge = __webpack_require__(92); var _StraightEdge2 = _interopRequireDefault(_StraightEdge); @@ -33046,7 +33102,7 @@ return /******/ (function(modules) { // webpackBootstrap exports.default = Edge; /***/ }, -/* 83 */ +/* 86 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; @@ -33059,7 +33115,7 @@ return /******/ (function(modules) { // webpackBootstrap var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); - var _CubicBezierEdgeBase2 = __webpack_require__(84); + var _CubicBezierEdgeBase2 = __webpack_require__(87); var _CubicBezierEdgeBase3 = _interopRequireDefault(_CubicBezierEdgeBase2); @@ -33196,7 +33252,7 @@ return /******/ (function(modules) { // webpackBootstrap exports.default = CubicBezierEdge; /***/ }, -/* 84 */ +/* 87 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; @@ -33207,7 +33263,7 @@ return /******/ (function(modules) { // webpackBootstrap var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); - var _BezierEdgeBase2 = __webpack_require__(85); + var _BezierEdgeBase2 = __webpack_require__(88); var _BezierEdgeBase3 = _interopRequireDefault(_BezierEdgeBase2); @@ -33282,7 +33338,7 @@ return /******/ (function(modules) { // webpackBootstrap exports.default = CubicBezierEdgeBase; /***/ }, -/* 85 */ +/* 88 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; @@ -33293,7 +33349,7 @@ return /******/ (function(modules) { // webpackBootstrap var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); - var _EdgeBase2 = __webpack_require__(86); + var _EdgeBase2 = __webpack_require__(89); var _EdgeBase3 = _interopRequireDefault(_EdgeBase2); @@ -33426,7 +33482,7 @@ return /******/ (function(modules) { // webpackBootstrap exports.default = BezierEdgeBase; /***/ }, -/* 86 */ +/* 89 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; @@ -34024,7 +34080,7 @@ return /******/ (function(modules) { // webpackBootstrap exports.default = EdgeBase; /***/ }, -/* 87 */ +/* 90 */ /***/ function(module, exports, __webpack_require__) { "use strict"; @@ -34035,7 +34091,7 @@ return /******/ (function(modules) { // webpackBootstrap var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); - var _BezierEdgeBase2 = __webpack_require__(85); + var _BezierEdgeBase2 = __webpack_require__(88); var _BezierEdgeBase3 = _interopRequireDefault(_BezierEdgeBase2); @@ -34229,7 +34285,7 @@ return /******/ (function(modules) { // webpackBootstrap exports.default = BezierEdgeDynamic; /***/ }, -/* 88 */ +/* 91 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; @@ -34240,7 +34296,7 @@ return /******/ (function(modules) { // webpackBootstrap var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); - var _BezierEdgeBase2 = __webpack_require__(85); + var _BezierEdgeBase2 = __webpack_require__(88); var _BezierEdgeBase3 = _interopRequireDefault(_BezierEdgeBase2); @@ -34497,7 +34553,7 @@ return /******/ (function(modules) { // webpackBootstrap exports.default = BezierEdgeStatic; /***/ }, -/* 89 */ +/* 92 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; @@ -34508,7 +34564,7 @@ return /******/ (function(modules) { // webpackBootstrap var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); - var _EdgeBase2 = __webpack_require__(86); + var _EdgeBase2 = __webpack_require__(89); var _EdgeBase3 = _interopRequireDefault(_EdgeBase2); @@ -34607,7 +34663,7 @@ return /******/ (function(modules) { // webpackBootstrap exports.default = StraightEdge; /***/ }, -/* 90 */ +/* 93 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; @@ -34618,35 +34674,35 @@ return /******/ (function(modules) { // webpackBootstrap var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); - var _BarnesHutSolver = __webpack_require__(91); + var _BarnesHutSolver = __webpack_require__(94); var _BarnesHutSolver2 = _interopRequireDefault(_BarnesHutSolver); - var _RepulsionSolver = __webpack_require__(92); + var _RepulsionSolver = __webpack_require__(95); var _RepulsionSolver2 = _interopRequireDefault(_RepulsionSolver); - var _HierarchicalRepulsionSolver = __webpack_require__(93); + var _HierarchicalRepulsionSolver = __webpack_require__(96); var _HierarchicalRepulsionSolver2 = _interopRequireDefault(_HierarchicalRepulsionSolver); - var _SpringSolver = __webpack_require__(94); + var _SpringSolver = __webpack_require__(97); var _SpringSolver2 = _interopRequireDefault(_SpringSolver); - var _HierarchicalSpringSolver = __webpack_require__(95); + var _HierarchicalSpringSolver = __webpack_require__(98); var _HierarchicalSpringSolver2 = _interopRequireDefault(_HierarchicalSpringSolver); - var _CentralGravitySolver = __webpack_require__(96); + var _CentralGravitySolver = __webpack_require__(99); var _CentralGravitySolver2 = _interopRequireDefault(_CentralGravitySolver); - var _FA2BasedRepulsionSolver = __webpack_require__(97); + var _FA2BasedRepulsionSolver = __webpack_require__(100); var _FA2BasedRepulsionSolver2 = _interopRequireDefault(_FA2BasedRepulsionSolver); - var _FA2BasedCentralGravitySolver = __webpack_require__(98); + var _FA2BasedCentralGravitySolver = __webpack_require__(101); var _FA2BasedCentralGravitySolver2 = _interopRequireDefault(_FA2BasedCentralGravitySolver); @@ -35428,7 +35484,7 @@ return /******/ (function(modules) { // webpackBootstrap exports.default = PhysicsEngine; /***/ }, -/* 91 */ +/* 94 */ /***/ function(module, exports) { "use strict"; @@ -35940,7 +35996,7 @@ return /******/ (function(modules) { // webpackBootstrap exports.default = BarnesHutSolver; /***/ }, -/* 92 */ +/* 95 */ /***/ function(module, exports) { "use strict"; @@ -36034,7 +36090,7 @@ return /******/ (function(modules) { // webpackBootstrap exports.default = RepulsionSolver; /***/ }, -/* 93 */ +/* 96 */ /***/ function(module, exports) { "use strict"; @@ -36125,7 +36181,7 @@ return /******/ (function(modules) { // webpackBootstrap exports.default = HierarchicalRepulsionSolver; /***/ }, -/* 94 */ +/* 97 */ /***/ function(module, exports) { "use strict"; @@ -36236,7 +36292,7 @@ return /******/ (function(modules) { // webpackBootstrap exports.default = SpringSolver; /***/ }, -/* 95 */ +/* 98 */ /***/ function(module, exports) { "use strict"; @@ -36365,7 +36421,7 @@ return /******/ (function(modules) { // webpackBootstrap exports.default = HierarchicalSpringSolver; /***/ }, -/* 96 */ +/* 99 */ /***/ function(module, exports) { "use strict"; @@ -36434,7 +36490,7 @@ return /******/ (function(modules) { // webpackBootstrap exports.default = CentralGravitySolver; /***/ }, -/* 97 */ +/* 100 */ /***/ function(module, exports, __webpack_require__) { "use strict"; @@ -36445,7 +36501,7 @@ return /******/ (function(modules) { // webpackBootstrap var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); - var _BarnesHutSolver2 = __webpack_require__(91); + var _BarnesHutSolver2 = __webpack_require__(94); var _BarnesHutSolver3 = _interopRequireDefault(_BarnesHutSolver2); @@ -36508,7 +36564,7 @@ return /******/ (function(modules) { // webpackBootstrap exports.default = ForceAtlas2BasedRepulsionSolver; /***/ }, -/* 98 */ +/* 101 */ /***/ function(module, exports, __webpack_require__) { "use strict"; @@ -36519,7 +36575,7 @@ return /******/ (function(modules) { // webpackBootstrap var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); - var _CentralGravitySolver2 = __webpack_require__(96); + var _CentralGravitySolver2 = __webpack_require__(99); var _CentralGravitySolver3 = _interopRequireDefault(_CentralGravitySolver2); @@ -36564,7 +36620,7 @@ return /******/ (function(modules) { // webpackBootstrap exports.default = ForceAtlas2BasedCentralGravitySolver; /***/ }, -/* 99 */ +/* 102 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; @@ -36577,11 +36633,11 @@ return /******/ (function(modules) { // webpackBootstrap var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); - var _NetworkUtil = __webpack_require__(100); + var _NetworkUtil = __webpack_require__(103); var _NetworkUtil2 = _interopRequireDefault(_NetworkUtil); - var _Cluster = __webpack_require__(101); + var _Cluster = __webpack_require__(104); var _Cluster2 = _interopRequireDefault(_Cluster); @@ -37432,7 +37488,7 @@ return /******/ (function(modules) { // webpackBootstrap exports.default = ClusterEngine; /***/ }, -/* 100 */ +/* 103 */ /***/ function(module, exports, __webpack_require__) { "use strict"; @@ -37570,7 +37626,7 @@ return /******/ (function(modules) { // webpackBootstrap exports.default = NetworkUtil; /***/ }, -/* 101 */ +/* 104 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; @@ -37579,7 +37635,7 @@ return /******/ (function(modules) { // webpackBootstrap value: true }); - var _Node2 = __webpack_require__(62); + var _Node2 = __webpack_require__(65); var _Node3 = _interopRequireDefault(_Node2); @@ -37615,7 +37671,7 @@ return /******/ (function(modules) { // webpackBootstrap exports.default = Cluster; /***/ }, -/* 102 */ +/* 105 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; @@ -37988,7 +38044,7 @@ return /******/ (function(modules) { // webpackBootstrap exports.default = CanvasRenderer; /***/ }, -/* 103 */ +/* 106 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; @@ -38001,8 +38057,8 @@ return /******/ (function(modules) { // webpackBootstrap function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - var Hammer = __webpack_require__(22); - var hammerUtil = __webpack_require__(25); + var Hammer = __webpack_require__(20); + var hammerUtil = __webpack_require__(28); var util = __webpack_require__(1); @@ -38452,7 +38508,7 @@ return /******/ (function(modules) { // webpackBootstrap exports.default = Canvas; /***/ }, -/* 104 */ +/* 107 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; @@ -38463,7 +38519,7 @@ return /******/ (function(modules) { // webpackBootstrap var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); - var _NetworkUtil = __webpack_require__(100); + var _NetworkUtil = __webpack_require__(103); var _NetworkUtil2 = _interopRequireDefault(_NetworkUtil); @@ -38802,7 +38858,7 @@ return /******/ (function(modules) { // webpackBootstrap exports.default = View; /***/ }, -/* 105 */ +/* 108 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; @@ -38813,11 +38869,11 @@ return /******/ (function(modules) { // webpackBootstrap var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); - var _NavigationHandler = __webpack_require__(106); + var _NavigationHandler = __webpack_require__(109); var _NavigationHandler2 = _interopRequireDefault(_NavigationHandler); - var _Popup = __webpack_require__(107); + var _Popup = __webpack_require__(110); var _Popup2 = _interopRequireDefault(_Popup); @@ -39590,7 +39646,7 @@ return /******/ (function(modules) { // webpackBootstrap exports.default = InteractionHandler; /***/ }, -/* 106 */ +/* 109 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; @@ -39604,9 +39660,9 @@ return /******/ (function(modules) { // webpackBootstrap function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } var util = __webpack_require__(1); - var Hammer = __webpack_require__(22); - var hammerUtil = __webpack_require__(25); - var keycharm = __webpack_require__(43); + var Hammer = __webpack_require__(20); + var hammerUtil = __webpack_require__(28); + var keycharm = __webpack_require__(23); var NavigationHandler = function () { function NavigationHandler(body, canvas) { @@ -39919,7 +39975,7 @@ return /******/ (function(modules) { // webpackBootstrap exports.default = NavigationHandler; /***/ }, -/* 107 */ +/* 110 */ /***/ function(module, exports) { 'use strict'; @@ -40049,7 +40105,7 @@ return /******/ (function(modules) { // webpackBootstrap exports.default = Popup; /***/ }, -/* 108 */ +/* 111 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; @@ -40060,11 +40116,11 @@ return /******/ (function(modules) { // webpackBootstrap var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); - var _Node = __webpack_require__(62); + var _Node = __webpack_require__(65); var _Node2 = _interopRequireDefault(_Node); - var _Edge = __webpack_require__(82); + var _Edge = __webpack_require__(85); var _Edge2 = _interopRequireDefault(_Edge); @@ -40842,7 +40898,7 @@ return /******/ (function(modules) { // webpackBootstrap exports.default = SelectionHandler; /***/ }, -/* 109 */ +/* 112 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; @@ -40857,7 +40913,7 @@ return /******/ (function(modules) { // webpackBootstrap var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); - var _NetworkUtil = __webpack_require__(100); + var _NetworkUtil = __webpack_require__(103); var _NetworkUtil2 = _interopRequireDefault(_NetworkUtil); @@ -42337,7 +42393,7 @@ return /******/ (function(modules) { // webpackBootstrap exports.default = LayoutEngine; /***/ }, -/* 110 */ +/* 113 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; @@ -42351,8 +42407,8 @@ return /******/ (function(modules) { // webpackBootstrap function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } var util = __webpack_require__(1); - var Hammer = __webpack_require__(22); - var hammerUtil = __webpack_require__(25); + var Hammer = __webpack_require__(20); + var hammerUtil = __webpack_require__(28); /** * clears the toolbar div element of children @@ -43591,7 +43647,7 @@ return /******/ (function(modules) { // webpackBootstrap exports.default = ManipulationSystem; /***/ }, -/* 111 */ +/* 114 */ /***/ function(module, exports) { 'use strict'; @@ -44110,7 +44166,7 @@ return /******/ (function(modules) { // webpackBootstrap exports.configureOptions = configureOptions; /***/ }, -/* 112 */ +/* 115 */ /***/ function(module, exports, __webpack_require__) { "use strict"; @@ -44124,7 +44180,7 @@ return /******/ (function(modules) { // webpackBootstrap var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); // distance finding algorithm - var _FloydWarshall = __webpack_require__(113); + var _FloydWarshall = __webpack_require__(116); var _FloydWarshall2 = _interopRequireDefault(_FloydWarshall); @@ -44401,7 +44457,7 @@ return /******/ (function(modules) { // webpackBootstrap exports.default = KamadaKawai; /***/ }, -/* 113 */ +/* 116 */ /***/ function(module, exports) { "use strict"; @@ -44471,7 +44527,7 @@ return /******/ (function(modules) { // webpackBootstrap exports.default = FloydWarshall; /***/ }, -/* 114 */ +/* 117 */ /***/ function(module, exports) { 'use strict'; @@ -44758,7 +44814,7 @@ return /******/ (function(modules) { // webpackBootstrap } /***/ }, -/* 115 */ +/* 118 */ /***/ function(module, exports) { 'use strict'; @@ -45656,7 +45712,7 @@ return /******/ (function(modules) { // webpackBootstrap exports.DOTToGraph = DOTToGraph; /***/ }, -/* 116 */ +/* 119 */ /***/ function(module, exports) { 'use strict'; @@ -45734,7 +45790,7 @@ return /******/ (function(modules) { // webpackBootstrap exports.parseGephi = parseGephi; /***/ }, -/* 117 */ +/* 120 */ /***/ function(module, exports) { 'use strict'; diff --git a/dist/vis.map b/dist/vis.map index 6405e82b..688385a5 100644 --- a/dist/vis.map +++ b/dist/vis.map @@ -1 +1 @@ -{"version":3,"sources":["vis.js"],"names":["root","factory","exports","module","define","amd","this","modules","__webpack_require__","moduleId","installedModules","id","loaded","call","m","c","p","util","DOMutil","DataSet","DataView","Queue","Graph3d","graph3d","Camera","Filter","Point2d","Point3d","Slider","StepNumber","Timeline","Graph2d","timeline","Core","DateUtil","Range","stack","TimeStep","components","items","Item","BackgroundItem","BoxItem","PointItem","RangeItem","BackgroundGroup","Component","CurrentTime","CustomTime","DataAxis","DataScale","GraphGroup","Group","ItemSet","Legend","LineGraph","TimeAxis","Network","network","Images","dotparser","gephiParser","allOptions","convertDot","input","DOTToGraph","convertGephi","options","parseGephi","moment","Hammer","keycharm","_typeof","Symbol","iterator","obj","constructor","uuid","isNumber","object","Number","recursiveDOMDelete","DOMobject","hasChildNodes","firstChild","removeChild","giveRange","min","max","total","value","scale","Math","isString","String","isDate","Date","match","ASPDateRegex","exec","isNaN","parse","randomUUID","v4","assignAllKeys","prop","hasOwnProperty","fillIfDefined","a","b","allowDeletion","arguments","length","undefined","protoExtend","i","other","extend","selectiveExtend","props","Array","isArray","Error","selectiveDeepExtend","TypeError","Object","deepExtend","selectiveNotDeepExtend","indexOf","push","equalArray","len","convert","type","Boolean","valueOf","isMoment","toDate","getType","toISOString","copyAndExtendArray","arr","newValue","newArr","copyArray","getAbsoluteLeft","elem","getBoundingClientRect","left","getAbsoluteRight","right","getAbsoluteTop","top","addClassName","className","classes","split","join","removeClassName","index","splice","forEach","callback","toArray","array","updateProperty","key","throttle","fn","wait","timeout","needExecution","throttled","setTimeout","addEventListener","element","action","listener","useCapture","navigator","userAgent","attachEvent","removeEventListener","detachEvent","preventDefault","event","window","returnValue","getTarget","target","srcElement","nodeType","parentNode","hasParent","parent","e","option","asBoolean","defaultValue","asNumber","asString","asSize","asElement","hexToRGB","hex","shorthandRegex","replace","r","g","result","parseInt","overrideOpacity","color","opacity","rgb","substr","RGBToHex","red","green","blue","toString","slice","parseColor","isValidRGB","map","isValidHex","hsv","hexToHSV","lighterColorHSV","h","s","v","darkerColorHSV","darkerColorHex","HSVToHex","lighterColorHex","background","border","highlight","hover","RGBToHSV","minRGB","maxRGB","d","hue","saturation","cssUtil","cssText","styles","style","trim","parts","keys","addCssText","currentStyles","newStyles","removeCssText","removeStyles","HSVToRGB","floor","f","q","t","isOk","test","isValidRGBA","rgba","selectiveBridgeObject","fields","referenceObject","objectTo","create","bridgeObject","insertSort","compare","k","j","mergeOptions","mergeTarget","globalOptions","enabled","binarySearchCustom","orderedItems","comparator","field","field2","maxIterations","iteration","low","high","middle","item","searchResult","binarySearchValue","sidePreference","prevValue","nextValue","easingFunctions","linear","easeInQuad","easeOutQuad","easeInOutQuad","easeInCubic","easeOutCubic","easeInOutCubic","easeInQuart","easeOutQuart","easeInOutQuart","easeInQuint","easeOutQuint","easeInOutQuint","global","utils_hooks__hooks","hookCallback","apply","setHookCallback","prototype","res","hasOwnProp","create_utc__createUTC","format","locale","strict","createLocalOrUTC","utc","defaultParsingFlags","empty","unusedTokens","unusedInput","overflow","charsLeftOver","nullInput","invalidMonth","invalidFormat","userInvalidated","iso","getParsingFlags","_pf","valid__isValid","_isValid","flags","_d","getTime","invalidWeekday","_strict","bigHour","valid__createInvalid","NaN","isUndefined","copyConfig","to","from","val","_isAMomentObject","_i","_f","_l","_tzm","_isUTC","_offset","_locale","momentProperties","Moment","config","updateInProgress","updateOffset","absFloor","number","ceil","toInt","argumentForCoercion","coercedNumber","isFinite","compareArrays","array1","array2","dontConvert","lengthDiff","abs","diffs","warn","msg","suppressDeprecationWarnings","console","deprecate","firstTime","deprecateSimple","name","deprecations","isFunction","Function","isObject","locale_set__set","_config","_ordinalParseLenient","RegExp","_ordinalParse","source","mergeConfigs","parentConfig","childConfig","Locale","set","normalizeLocale","toLowerCase","chooseLocale","names","next","loadLocale","oldLocale","locales","globalLocale","_abbr","code","locale_locales__getSetGlobalLocale","values","data","locale_locales__getLocale","defineLocale","abbr","parentLocale","updateLocale","locale_locales__listLocales","addUnitAlias","unit","shorthand","lowerCase","aliases","normalizeUnits","units","normalizeObjectUnits","inputObject","normalizedProp","normalizedInput","makeGetSet","keepTime","get_set__set","get_set__get","mom","isValid","getSet","zeroFill","targetLength","forceSign","absNumber","zerosToFill","sign","pow","addFormatToken","token","padded","ordinal","func","formatTokenFunctions","localeData","removeFormattingTokens","makeFormatFunction","formattingTokens","output","formatMoment","expandFormat","formatFunctions","invalidDate","replaceLongDateFormatTokens","longDateFormat","localFormattingTokens","lastIndex","addRegexToken","regex","strictRegex","regexes","isStrict","getParseRegexForToken","unescapeFormat","regexEscape","matched","p1","p2","p3","p4","addParseToken","tokens","addWeekParseToken","_w","addTimeToArrayFromToken","_a","daysInMonth","year","month","UTC","getUTCDate","localeMonths","_months","MONTHS_IN_FORMAT","localeMonthsShort","_monthsShort","localeMonthsParse","monthName","_monthsParse","_longMonthsParse","_shortMonthsParse","months","monthsShort","setMonth","dayOfMonth","monthsParse","date","getSetMonth","getDaysInMonth","monthsShortRegex","_monthsParseExact","computeMonthsParse","_monthsShortStrictRegex","_monthsShortRegex","monthsRegex","_monthsStrictRegex","_monthsRegex","cmpLenRev","shortPieces","longPieces","mixedPieces","sort","checkOverflow","MONTH","DATE","YEAR","HOUR","MINUTE","SECOND","MILLISECOND","_overflowDayOfYear","_overflowWeeks","WEEK","_overflowWeekday","WEEKDAY","configFromISO","l","allowTime","dateFormat","timeFormat","tzFormat","string","extendedIsoRegex","basicIsoRegex","isoDates","isoTimes","tzRegex","configFromStringAndFormat","configFromString","aspNetJsonRegex","createFromInputFallback","createDate","y","M","ms","getFullYear","setFullYear","createUTCDate","getUTCFullYear","setUTCFullYear","daysInYear","isLeapYear","getIsLeapYear","firstWeekOffset","dow","doy","fwd","fwdlw","getUTCDay","dayOfYearFromWeeks","week","weekday","resYear","resDayOfYear","localWeekday","weekOffset","dayOfYear","weekOfYear","resWeek","weeksInYear","weekOffsetNext","defaults","currentDateArray","nowValue","now","_useUTC","getUTCMonth","getMonth","getDate","configFromArray","currentDate","yearToUse","dayOfYearFromWeekInfo","_dayOfYear","_nextDay","setUTCMinutes","getUTCMinutes","w","weekYear","temp","weekdayOverflow","GG","W","E","local__createLocal","_week","gg","ISO_8601","parsedInput","skipped","stringLength","totalParsedInputLength","meridiemFixWrap","_meridiem","hour","meridiem","isPm","meridiemHour","isPM","configFromStringAndArray","tempConfig","bestMoment","scoreToBeat","currentScore","score","configFromObject","day","minute","second","millisecond","createFromConfig","prepareConfig","add","preparse","configFromInput","isUTC","pickBy","moments","args","Duration","duration","years","quarters","quarter","weeks","days","hours","minutes","seconds","milliseconds","_milliseconds","_days","_data","_bubble","isDuration","offset","separator","utcOffset","offsetFromString","matcher","matches","chunk","chunkOffset","cloneWithOffset","model","diff","clone","setTime","local","getDateOffset","round","getTimezoneOffset","getSetOffset","keepLocalTime","localAdjust","matchShortOffset","_changeInProgress","add_subtract__addSubtract","create__createDuration","getSetZone","setOffsetToUTC","setOffsetToLocal","subtract","setOffsetToParsedOffset","matchOffset","hasAlignedHourOffset","isDaylightSavingTime","isDaylightSavingTimeShifted","_isDSTShifted","isLocal","isUtcOffset","isUtc","ret","diffRes","aspNetRegex","isoRegex","parseIso","momentsDifference","inp","parseFloat","positiveMomentsDifference","base","isAfter","isBefore","absRound","createAdder","direction","period","dur","tmp","isAdding","moment_calendar__calendar","time","formats","sod","startOf","calendar","localInput","endOf","isBetween","isSame","inputMs","isSameOrAfter","isSameOrBefore","asFloat","that","zoneDelta","delta","monthDiff","anchor2","adjust","wholeMonthDiff","anchor","moment_format__toISOString","inputString","defaultFormat","postformat","withoutSuffix","humanize","fromNow","toNow","newLocaleData","isoWeekday","to_type__valueOf","unix","toObject","toJSON","moment_valid__isValid","parsingFlags","invalidAt","creationData","addWeekYearFormatToken","getter","getSetWeekYear","getSetWeekYearHelper","getSetISOWeekYear","isoWeek","getISOWeeksInYear","getWeeksInYear","weekInfo","weeksTarget","setWeekAll","dayOfYearData","getSetQuarter","localeWeek","localeFirstDayOfWeek","localeFirstDayOfYear","getSetWeek","getSetISOWeek","parseWeekday","weekdaysParse","localeWeekdays","_weekdays","isFormat","localeWeekdaysShort","_weekdaysShort","localeWeekdaysMin","_weekdaysMin","localeWeekdaysParse","weekdayName","_weekdaysParse","_minWeekdaysParse","_shortWeekdaysParse","_fullWeekdaysParse","weekdays","weekdaysShort","weekdaysMin","getSetDayOfWeek","getDay","getSetLocaleDayOfWeek","getSetISODayOfWeek","getSetDayOfYear","hFormat","lowercase","matchMeridiem","_meridiemParse","localeIsPM","charAt","localeMeridiem","isLower","parseMs","getZoneAbbr","getZoneName","moment__createUnix","moment__createInZone","parseZone","locale_calendar__calendar","_calendar","_longDateFormat","formatUpper","toUpperCase","_invalidDate","_ordinal","preParsePostFormat","relative__relativeTime","isFuture","_relativeTime","pastFuture","lists__get","setter","list","count","out","lists__listMonths","lists__listMonthsShort","lists__listWeekdays","lists__listWeekdaysShort","lists__listWeekdaysMin","duration_abs__abs","mathAbs","duration_add_subtract__addSubtract","duration_add_subtract__add","duration_add_subtract__subtract","absCeil","bubble","monthsFromDays","monthsToDays","daysToMonths","as","duration_as__valueOf","makeAs","alias","duration_get__get","makeGetter","substituteTimeAgo","relativeTime","duration_humanize__relativeTime","posNegDuration","thresholds","duration_humanize__getSetRelativeTimeThreshold","threshold","limit","withSuffix","iso_string__toISOString","iso_string__abs","Y","D","asSeconds","match1","match2","match3","match4","match6","match1to2","match3to4","match5to6","match1to3","match1to4","match1to6","matchUnsigned","matchSigned","matchTimestamp","matchWord","defaultLocaleMonths","defaultLocaleMonthsShort","defaultMonthsShortRegex","defaultMonthsRegex","parseTwoDigitYear","getSetYear","prototypeMin","prototypeMax","add_subtract__add","add_subtract__subtract","lang","isoWeekYear","defaultLocaleWeek","getSetDayOfMonth","defaultLocaleWeekdays","defaultLocaleWeekdaysShort","defaultLocaleWeekdaysMin","_isPm","pos","pos1","pos2","defaultLocaleMeridiemParse","getSetHour","getSetMinute","getSetSecond","getSetMillisecond","momentPrototype__proto","get","isoWeeks","isoWeeksInYear","isDST","isDSTShifted","zoneAbbr","zoneName","dates","zone","momentPrototype","defaultCalendar","sameDay","nextDay","nextWeek","lastDay","lastWeek","sameElse","defaultLongDateFormat","LTS","LT","L","LL","LLL","LLLL","defaultInvalidDate","defaultOrdinal","defaultOrdinalParse","defaultRelativeTime","future","past","mm","hh","dd","MM","yy","prototype__proto","firstDayOfYear","firstDayOfWeek","ordinalParse","langData","asMilliseconds","asMinutes","asHours","asDays","asWeeks","asMonths","asYears","duration_prototype__proto","toIsoString","version","invalid","relativeTimeThreshold","_moment","webpackPolyfill","paths","children","webpackContext","req","resolve","buf","ii","oct","_hexToByte","unparse","bth","_byteToHex","v1","clockseq","_clockseq","msecs","nsecs","_lastNSecs","dt","_lastMSecs","tl","tmh","node","_nodeId","n","rnds","random","rng","_rng","globalVar","crypto","getRandomValues","_rnds8","Uint8Array","_rnds","_seedBytes","prepareElements","JSONcontainer","elementType","redundant","used","cleanupElements","resetElements","getSVGElement","svgContainer","shift","document","createElementNS","appendChild","getDOMElement","DOMContainer","insertBefore","createElement","drawPoint","x","groupTemplate","labelObj","point","setAttributeNS","size","label","xOffset","yOffset","content","textContent","drawBar","width","height","rect","_options","_fieldId","fieldId","_type","_subscribers","setOptions","queue","_queue","destroy","on","subscribers","subscribe","off","filter","unsubscribe","_trigger","params","senderId","concat","subscriber","addedIds","me","_addItem","update","updatedIds","oldData","updatedData","addOrUpdate","oldItem","_updateItem","ids","firstType","returnType","allowedValues","itemIds","itemId","_getItem","order","_sort","_filterFields","resultant","getIds","getDataSet","mappedItems","filteredItem","itemFields","av","bv","remove","removedId","removedIds","_remove","clear","maxField","itemField","minField","distinct","fieldType","exists","types","raw","converted","JSON","stringify","delay","Infinity","_timeout","_extended","_flushIfNeeded","flush","methods","original","method","context","entry","clearTimeout","_ids","_onEvent","setData","refresh","oldIds","newIds","added","removed","viewOptions","getArguments","defaultFilter","dataSet","updated","container","SyntaxError","containerElement","margin","defaultXCenter","defaultYCenter","xLabel","yLabel","zLabel","passValueFn","xValueLabel","yValueLabel","zValueLabel","filterLabel","legendLabel","STYLE","DOT","showPerspective","showGrid","keepAspectRatio","showShadow","showGrayBottom","showTooltip","verticalRatio","animationInterval","animationPreload","camera","setArmRotation","setArmLength","eye","dataTable","dataPoints","colX","colY","colZ","colValue","colFilter","xMin","xStep","xMax","yMin","yStep","yMax","zMin","zStep","zMax","valueMin","valueMax","xBarWidth","yBarWidth","axisColor","gridColor","dataColor","fill","stroke","strokeWidth","dotSizeRatio","getMouseX","clientX","targetTouches","getMouseY","clientY","Emitter","_setScale","z","xCenter","yCenter","zCenter","setArmLocation","_convert3Dto2D","point3d","translation","_convertPointToTranslation","_convertTranslationToScreen","ax","ay","az","cx","getCameraLocation","cy","cz","sinTx","sin","getCameraRotation","cosTx","cos","sinTy","cosTy","sinTz","cosTz","dx","dy","dz","bx","by","ex","ey","ez","getArmLength","xcenter","frame","canvas","clientWidth","ycenter","_setBackgroundColor","backgroundColor","borderColor","borderWidth","borderStyle","BAR","BARCOLOR","BARSIZE","DOTLINE","DOTCOLOR","DOTSIZE","GRID","LINE","SURFACE","_getStyleNumber","styleName","_determineColumnIndexes","getNumberOfColumns","getNumberOfRows","counter","column","getDistinctValues","distinctValues","getColumnRange","minMax","_dataInitialize","rawData","_onChange","dataFilter","setOnLoadCallback","redraw","withBars","defaultXBarWidth","dataX","defaultYBarWidth","dataY","xRange","defaultXMin","defaultXMax","defaultXStep","yRange","defaultYMin","defaultYMax","defaultYStep","zRange","defaultZMin","defaultZMax","defaultZStep","valueRange","defaultValueMin","defaultValueMax","_getDataPoints","sortNumber","dataMatrix","xIndex","yIndex","trans","screen","bottom","pointRight","pointTop","pointCross","position","noCanvas","fontWeight","padding","innerHTML","onmousedown","_onMouseDown","ontouchstart","_onTouchStart","onmousewheel","_onWheel","ontooltip","_onTooltip","onkeydown","setSize","_resizeCanvas","clientHeight","animationStart","slider","play","animationStop","stop","_resizeCenter","setCameraPosition","horizontal","vertical","distance","getCameraPosition","getArmRotation","_readData","_redrawFilter","animationAutoStart","cameraPosition","styleNumber","tooltip","showAnimationControls","_redrawSlider","_redrawClear","_redrawAxis","_redrawDataGrid","_redrawDataLine","_redrawDataBar","_redrawDataDot","_redrawInfo","_redrawLegend","ctx","getContext","clearRect","widthMin","widthMax","dotSize","lineWidth","font","ymin","ymax","_hsv2rgb","strokeStyle","beginPath","moveTo","lineTo","strokeRect","fillStyle","closePath","gridLineLen","step","start","getCurrent","end","textAlign","textBaseline","fillText","visible","setValues","setPlayInterval","onchange","getIndex","selectValue","setOnChangeCallback","lineStyle","getLabel","getSelectedValue","prettyStep","text","xText","yText","zText","xMin2d","xMax2d","gridLenX","gridLenY","textMargin","armAngle","H","S","V","R","G","B","C","Hi","X","cross","topSideVisible","zAvg","lineJoin","lineCap","transBottom","dist","sortDepth","aDiff","bDiff","crossproduct","crossProduct","_getStrokeWidth","radius","arc","PI","surface","corners","xWidth","yWidth","surfaces","center","avg","transCenter","leftButtonDown","_onMouseUp","which","button","touchDown","startMouseX","startMouseY","startStart","startEnd","startArmRotation","cursor","onmousemove","_onMouseMove","onmouseup","diffX","diffY","horizontalNew","verticalNew","snapAngle","snapValue","parameters","emit","boundingRect","mouseX","mouseY","tooltipTimeout","_hideTooltip","dataPoint","_dataPointFromXY","_showTooltip","ontouchmove","_onTouchMove","ontouchend","_onTouchEnd","wheelDelta","detail","oldLength","newLength","_insideTriangle","triangle","bs","cs","distMax","closestDataPoint","closestDist","triangle1","triangle2","distX","distY","sqrt","line","dot","dom","borderRadius","boxShadow","borderLeft","contentWidth","offsetWidth","contentHeight","offsetHeight","lineHeight","dotWidth","dotHeight","mixin","_callbacks","once","self","removeListener","removeAllListeners","callbacks","cb","listeners","hasListeners","sub","sum","armLocation","armRotation","armLength","cameraLocation","cameraRotation","calculateCameraOrientation","rot","graph","onLoadCallback","loadInBackground","isLoaded","getLoadedProgress","getColumn","getValues","getValue","dataView","progress","prev","bar","MozBorderRadius","slide","onclick","togglePlay","onChangeCallback","playTimeout","playInterval","playLoop","setIndex","playNext","interval","clearInterval","getPlayInterval","setPlayLoop","doLoop","onChange","indexToLeft","startClientX","startSlideX","leftToIndex","_start","_end","_step","precision","_current","setRange","setStep","calculatePrettyStep","log10","log","LN10","step1","step2","step5","toPrecision","getStep","_interopRequireDefault","__esModule","default","groups","forthArgument","defaultOptions","autoResize","throttleRedraw","orientation","axis","rtl","maxHeight","minHeight","_create","body","domProps","emitter","bind","hiddenDates","getScale","timeAxis","toScreen","_toScreen","toGlobalScreen","_toGlobalScreen","toTime","_toTime","toGlobalTime","_toGlobalTime","range","timeAxis2","currentTime","itemSet","itemsData","groupsData","getEventProperties","oncontextmenu","fitDone","getItemRange","setWindow","animation","fit","setGroups","setItems","_redraw","_Configurator","_Configurator2","_Validator","_Validator2","printStyle","configureOptions","_createConfigurator","markDirty","refreshItems","errorFound","validate","selection","getSelection","setSelection","newDataSet","focus","itemData","dataset","getDataRange","_this","minItem","maxItem","factor","lhs","rhs","getStart","getEnd","show","repositionX","startSide","getWidthRight","endSide","getWidthLeft","centerContainer","itemFromTarget","group","groupFromTarget","customTime","customTimeFromTarget","snap","snappedTime","what","foreground","labelSet","groupId","pageX","srcEvent","pageY","_classCallCheck","instance","Constructor","defineProperty","_createClass","defineProperties","descriptor","enumerable","configurable","writable","protoProps","staticProps","_ColorPicker","_ColorPicker2","Configurator","parentModule","defaultContainer","pixelRatio","changedOptions","allowCreation","initialized","popupCounter","showButton","moduleOptions","domElements","popupDiv","popupLimit","popupHistory","colorPicker","wrapper","_removePopup","_clean","_handleObject","_makeItem","_makeHeader","generateButton","_printOptions","onmouseover","onmouseout","optionsContainer","_push","_showPopupIfNeeded","path","_arguments","_this2","_len","_key","_ret2","div","objectLabel","select","selectedValue","selected","_update","_makeLabel","err","popupString","popupValue","oninput","itemIndex","_setupPopup","_this3","html","hideTimeout","deleteTimeout","_this4","correspondingElement","checkbox","checked","_this5","defaultColor","_showColorPicker","_this6","insertTo","setColor","setUpdateCallback","colorString","setCloseCallback","checkOnly","visibleInSet","subObj","newPath","_getValue","_handleArray","_makeTextInput","_makeCheckbox","draw","physics","solver","enabledPath","enabledValue","_label","error","_makeColorField","_makeDropdown","_makeRange","_constructOptions","optionsObj","pointer","getOptions","hammerUtil","ColorPicker","generated","centerCoordinates","hueCircle","initialColor","previousColor","applied","updateCallback","closeCallback","hammer","_bindHammer","_setSize","htmlColors","black","navy","darkblue","mediumblue","darkgreen","teal","darkcyan","deepskyblue","darkturquoise","mediumspringgreen","lime","springgreen","aqua","cyan","midnightblue","dodgerblue","lightseagreen","forestgreen","seagreen","darkslategray","limegreen","mediumseagreen","turquoise","royalblue","steelblue","darkslateblue","mediumturquoise","indigo","darkolivegreen","cadetblue","cornflowerblue","mediumaquamarine","dimgray","slateblue","olivedrab","slategray","lightslategray","mediumslateblue","lawngreen","chartreuse","aquamarine","maroon","purple","olive","gray","skyblue","lightskyblue","blueviolet","darkred","darkmagenta","saddlebrown","darkseagreen","lightgreen","mediumpurple","darkviolet","palegreen","darkorchid","yellowgreen","sienna","brown","darkgray","lightblue","greenyellow","paleturquoise","lightsteelblue","powderblue","firebrick","darkgoldenrod","mediumorchid","rosybrown","darkkhaki","silver","mediumvioletred","indianred","peru","chocolate","tan","lightgrey","palevioletred","thistle","orchid","goldenrod","crimson","gainsboro","plum","burlywood","lightcyan","lavender","darksalmon","violet","palegoldenrod","lightcoral","khaki","aliceblue","honeydew","azure","sandybrown","wheat","beige","whitesmoke","mintcream","ghostwhite","salmon","antiquewhite","linen","lightgoldenrodyellow","oldlace","fuchsia","magenta","deeppink","orangered","tomato","hotpink","coral","darkorange","lightsalmon","orange","lightpink","pink","gold","peachpuff","navajowhite","moccasin","bisque","mistyrose","blanchedalmond","papayawhip","lavenderblush","seashell","cornsilk","lemonchiffon","floralwhite","snow","yellow","lightyellow","ivory","white","setInitial","htmlColor","_isColorString","rgbaArray","_rgbaArray","rgbObj","alpha","_setColor","display","_generateHueCircle","storePrevious","_hide","_updatePicker","alert","angleConvert","colorPickerSelector","colorPickerCanvas","pixelRation","devicePixelRatio","webkitBackingStorePixelRatio","mozBackingStorePixelRatio","msBackingStorePixelRatio","oBackingStorePixelRatio","backingStorePixelRatio","setTransform","putImageData","circle","brightnessRange","opacityRange","initialColorDiv","newColorDiv","colorPickerDiv","opacityDiv","brightnessDiv","arrowDiv","_setOpacity","_setBrightness","brightnessLabel","opacityLabel","cancelButton","applyButton","_apply","saveButton","_save","loadButton","_loadLast","drag","pinch","enable","onTouch","_moveSelector","sat","hfac","sfac","fillRect","getImageData","centerY","centerX","angle","atan2","newTop","newLeft","propagating","__WEBPACK_AMD_DEFINE_FACTORY__","__WEBPACK_AMD_DEFINE_ARRAY__","__WEBPACK_AMD_DEFINE_RESULT__","_firstTarget","events","propagatedHandler","_handled","stopped","stopPropagation","srcStop","firstTarget","elemHammer","_handlers","Manager","PropagatingHammer","o","assign","pointerType","isFirst","handler","eventType","hammers","idx","exportName","setTimeoutContext","bindFn","invokeArrayArg","arg","each","message","deprecationMessage","inherit","child","properties","childP","baseP","_super","boolOrFn","TYPE_FUNCTION","ifUndefined","val1","val2","addEventListeners","splitStr","removeEventListeners","inStr","str","find","inArray","src","findByKey","uniqueArray","results","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","INPUT_START","isFinal","INPUT_END","INPUT_CANCEL","session","computeInputData","recognize","prevInput","pointersLength","firstInput","simpleCloneInputData","firstMultiple","offsetCenter","getCenter","timeStamp","deltaTime","getAngle","getDistance","computeDeltaXY","offsetDirection","getDirection","deltaX","deltaY","overallVelocity","getVelocity","overallVelocityX","overallVelocityY","rotation","getRotation","maxPointers","computeIntervalInputData","offsetDelta","prevDelta","velocity","velocityX","velocityY","last","lastInterval","COMPUTE_INTERVAL","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","touches","changed","changedTouches","TOUCH_TARGET_EVENTS","targetIds","getTouches","allTouches","INPUT_MOVE","identifier","changedTargetTouches","touch","mouse","TouchAction","cleanTouchActions","actions","TOUCH_ACTION_NONE","hasPanX","TOUCH_ACTION_PAN_X","hasPanY","TOUCH_ACTION_PAN_Y","TOUCH_ACTION_MANIPULATION","TOUCH_ACTION_AUTO","Recognizer","state","STATE_POSSIBLE","simultaneous","requireFail","stateStr","STATE_CANCELLED","STATE_ENDED","STATE_CHANGED","STATE_BEGAN","directionStr","getRecognizerByNameIfManager","otherRecognizer","recognizer","AttrRecognizer","PanRecognizer","pX","pY","PinchRecognizer","PressRecognizer","_timer","_input","RotateRecognizer","SwipeRecognizer","TapRecognizer","pTime","pCenter","recognizers","preset","handlers","touchAction","toggleCssProps","recognizeWith","requireFailure","cssProps","triggerDomEvent","gestureEvent","createEvent","initEvent","gesture","dispatchEvent","TEST_ELEMENT","nextKey","dest","merge","MOBILE_REGEX","INPUT_TYPE_TOUCH","INPUT_TYPE_PEN","INPUT_TYPE_MOUSE","INPUT_TYPE_KINECT","DIRECTION_HORIZONTAL","DIRECTION_VERTICAL","DIRECTION_ALL","MOUSE_INPUT_MAP","mousedown","mousemove","mouseup","POINTER_INPUT_MAP","pointerdown","pointermove","pointerup","pointercancel","pointerout","IE10_POINTER_TYPE_ENUM",2,3,4,5,"MSPointerEvent","PointerEvent","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","isTapPointer","isTapMovement","isTapTouchTime","preventSrc","STATE_RECOGNIZED","STATE_FAILED","dropRecognizeWith","dropRequireFailure","hasRequireFailures","canRecognizeWith","additionalEvent","tryEmit","canEmit","inputDataClone","process","reset","attrTest","optionPointers","isRecognized","directionTest","hasMoved","inOut","validPointers","validMovement","validTime","taps","posThreshold","validTouchTime","failTimeout","validInterval","validMultiTap","tapCount","VERSION","domEvents","userSelect","touchSelect","touchCallout","contentZooming","userDrag","tapHighlightColor","STOP","FORCED_STOP","force","curRecognizer","existing","Tap","Pan","Swipe","Pinch","Rotate","Press","freeGlobal","onRelease","offTouch","offRelease","disablePreventDefaultVertically","pinchRecognizer","Validator","referenceOptions","subObject","usedOptions","check","__any__","getSuggestion","__type__","checkFields","referenceOption","refOptionObj","optionType","refOptionType","print","printLocation","localSearch","findInOptions","globalSearch","localSearchThreshold","globalSearchThreshold","indexMatch","closestMatch","recursive","closestMatchPath","lowerCaseOption","op","levenshteinDistance","_j","_j2","matrix","deltaDifference","scaleOffset","startToFront","endToFront","moveable","zoomable","zoomMin","zoomMax","animationTimer","_onDragStart","_onDrag","_onDragEnd","_onMouseWheel","_onTouch","_onPinch","validateDirection","byUser","finalStart","finalEnd","_cancelAnimation","initStart","initEnd","easingName","easingFunction","initTime","anyChanged","dragging","ease","done","_applyRange","updateHiddenDates","newStart","newEnd","getRange","conversion","totalHidden","previousDelta","_isInsideRange","allowDragging","getHiddenDurationBetween","diffRange","safeStart","snapAwayFromHidden","safeEnd","startDate","endDate","zoomKey","getPointer","pointerDate","_pointerToDate","zoom","centerDate","hiddenDuration","hiddenDurationBefore","getHiddenDurationBefore","hiddenDurationAfter","move","_isResized","resized","_previousWidth","_previousHeight","convertHiddenOptions","repeat","dateItem","totalRange","pixelTime","runUntil","dayOffset","removeDuplicates","startHidden","isHidden","endHidden","rangeStart","rangeEnd","hidden","safeDates","printDates","stepOverHiddenDates","timeStep","previousTime","stepInHidden","currentValue","current","switchedYear","switchedMonth","switchedDay","correctTimeForHidden","totalDuration","partialDuration","accumulatedHiddenDuration","getAccumulatedHiddenDuration","newTime","timeOffset","requiredDuration","previousPoint","correctionEnabled","Activator","onMouseWheel","isActive","backgroundVertical","backgroundHorizontal","leftContainer","rightContainer","shadowTop","shadowBottom","shadowTopLeft","shadowBottomLeft","shadowTopRight","shadowBottomRight","initialDrawDone","_redrawTimer","scrollTop","scrollTopMin","customTimes","redrawCount","contentContainer","drawPoints","onRender","clickToUse","activator","_initAutoResize","component","configurator","configure","appliedOptions","setModuleOptions","_origRedraw","active","_stopAutoResize","setCustomTime","getCustomTime","setCustomTimeTitle","title","setCustomTitle","addCustomTime","timestamp","some","removeCustomTime","getVisibleItems","getWindow","borderRootHeight","borderRootWidth","autoHeight","containerHeight","centerWidth","_updateScrollTop","visibilityTop","visibilityBottom","visibility","contentsOverflow","MAX_REDRAW","repaint","setCurrentTime","getCurrentTime","_startAutoResize","_onResize","lastWidth","lastHeight","watchTimer","setInterval","initialScrollTop","oldScrollTop","_getScrollTop","newScrollTop","_setScrollTop","align","groupOrderSwap","fromGroup","toGroup","targetOrder","groupOrder","selectable","multiselect","itemsAlwaysDraggable","editable","updateTime","updateGroup","groupEditable","onAdd","onUpdate","onMove","onRemove","onMoving","onAddGroup","onMoveGroup","onRemoveGroup","itemOptions","itemListeners","_onAdd","_onUpdate","_onRemove","groupListeners","_onAddGroups","_onUpdateGroups","_onRemoveGroups","groupIds","stackDirty","touchParams","groupTouchParams","UNGROUPED","BACKGROUND","box","_updateUngrouped","backgroundGroup","_onSelectItem","_onMultiSelectItem","_onAddItem","groupHammer","_onGroupDragStart","_onGroupDrag","_onGroupDragEnd","addCallback","dirty","displayed","hide","unselect","rawVisibleItems","visibleItems","_deselect","_orderGroups","visibleInterval","zoomed","lastVisibleInterval","restack","firstGroup","_firstGroup","firstMargin","nonFirstMargin","groupMargin","groupResized","firstGroupIndex","firstGroupId","ungrouped","_getGroupId","getLabelSet","oldItemsData","getItems","_order","getGroups","removeItem","_getType","_removeItem","groupData","groupOptions","oldGroupId","oldSubGroupId","subgroup","oldGroup","_constructByEndArray","endArray","dragLeftItem","dragRightItem","itemProps","_getGroupIndex","initialX","dragLeft","_cloneItemData","dragRight","selectedItem","baseGroupIndex","itemsToDrag","groupIndex","groupOffset","ctrlKey","metaKey","_onDragStartAddItem","xAbs","newItem","offsetLeft","updateGroupAllowed","newGroupBase","initial","updateTimeAllowed","initialEnd","initialStart","newOffset","_moveToGroup","originalOrder","movingUp","targetGroupTop","draggedGroupHeight","targetGroupHeight","targetGroup","draggedGroup","newOrder","origOrder","draggedId","numGroups","curPos","orgOffset","slippedPosition","switchGroup","shouldBeGroup","switchGroupId","shiftKey","oldSelection","newSelection","newItemData","itemGroup","lastSelectedGroup","multiselectPerGroup","_getItemRange","_item","itemSetFromTarget","minimumStep","autoScale","FORMAT","minorLabels","majorLabels","setMoment","setFormat","setMinimumStep","roundToMinor","hasNext","setScale","setAutoScale","stepYear","stepMonth","stepDay","stepHour","stepMinute","stepSecond","stepMillisecond","isMajor","getLabelMinor","getLabelMajor","getClassName","even","today","currentWeek","currentMonth","currentYear","subgroups","subgroupIndex","subgroupOrderer","subgroupOrder","byStart","byEnd","checkRangedItems","inner","marker","Element","getLabelWidth","markerHeight","lastMarkerHeight","_calculateSubGroupHeights","limitSize","customOrderedItems","_updateVisibleItems","nostack","_calculateHeight","offsetTop","repositionY","resetSubgroups","setParent","orderSubgroups","_checkIfVisible","sortArray","sortField","removeFromDataSet","startArray","orderByStart","orderByEnd","oldVisibleItems","visibleItemsLookup","lowerBound","upperBound","searchFunction","_checkIfVisibleWithReference","initialPosByStart","_traceVisible","initialPosByEnd","initialPos","breakCondition","isVisible","EPSILON","aTime","bTime","iMax","collidingItem","jj","collision","isCollision","baseClassName","_updateContents","_updateTitle","_updateDataAttributes","_updateStyle","getComputedStyle","maxWidth","_repaintDeleteButton","_repaintDragLeft","_repaintDragRight","contentStartPosition","parentWidth","boxWidth","groupChanged","deleteButton","template","_contentToString","removeAttribute","dataAttributes","attributes","setAttribute","outerHTML","itemSetHeight","marginLeft","marginRight","onTop","itemSubgroup","totalHeight","newHeight","lines","majorTexts","minorTexts","lineTop","showMinorLabels","showMajorLabels","maxMinorChars","parentChanged","_calculateCharSize","minorLabelHeight","minorCharHeight","majorLabelHeight","majorCharHeight","minorLineHeight","minorLineWidth","majorLineHeight","majorLineWidth","foregroundNextSibling","nextSibling","backgroundNextSibling","_repaintLabels","timeLabelsize","minorCharWidth","xNext","nextIsMajor","prevWidth","labelMinor","xFirstMajorLabel","MAX","showMinorGrid","_repaintMinorText","_repaintMajorText","_repaintMajorLine","_repaintMinorLine","warnedForOverflow","leftTime","leftText","widthText","majorCharWidth","pop","createTextNode","childNodes","nodeValue","measureCharMinor","measureCharMajor","overlay","_onTapOverlay","onClick","_hasParent","deactivate","escListener","activate","unbind","_exportFunctions","_bound","keydown","keyup","_keys","fromCharCode","down","handleEvent","up","keyCode","bound","bindAll","getKey","newBindings","eventParams","warned","substring","showCurrentTime","currentTimeTimer","boolean","any","function","null","groupsDraggable","linegraph","initialLoad","getLegend","isGroupVisible","yAxisLeft","yAxisRight","legendLeft","legendRight","screenToValue","yAxisOrientation","defaultGroup","sampling","graphHeight","shaded","barChart","sideBySide","interpolation","parametrization","dataAxis","legend","abortedGraphUpdate","updateSVGheight","updateSVGheightOnResize","forceGraphUpdate","lastStart","svgElements","groupsUsingDefaultStyles","svg","framework","Bars","Lines","Points","_removeGroup","_updateAllGroupData","removeGroup","_updateGroup","addGroup","groupsContent","groupCounts","extended","orginalY","_updateGraph","rangePerPixelInv","_getSortedGroupIds","grouplist","zIndex","bz","groupRanges","changeCalled","minDate","maxDate","_getRelevantData","_applySampling","_convertXcoordinates","_getYRanges","_updateYAxis","below","excludeFromStacking","_stack","_convertYcoordinates","calcPath","subGroupId","drawShading","subData","subPrevPoint","subNextPoint","dateComparator","first","dataContainer","increment","amountOfPoints","xDistance","pointsPerPixel","sampledData","combinedDataLeft","combinedDataRight","getYRange","getStackedYRange","minVal","maxVal","yAxisLeftUsed","yAxisRightUsed","minLeft","minRight","maxLeft","maxRight","ignore","_toggleAxisVisiblity","drawIcons","master","masterAxis","lineOffset","tempGroups","axisUsed","datapoints","screen_x","screen_y","svgHeight","convertValue","setZeroPosition","linegraphOptions","icons","majorLinesOffset","minorLinesOffset","labelOffsetX","labelOffsetY","iconWidth","alignZeros","linegraphSVG","DOMelements","labels","conversionFactor","minWidth","stepPixels","zeroCrossing","amountOfSteps","iconsRemoved","amountOfGroups","lineContainer","graphOptions","_redrawGroupIcons","iconHeight","iconOffset","groupArray","_cleanupIcons","activeGroups","_redrawLabels","_redrawTitle","customRange","autoScaleEnd","autoScaleStart","followScale","maxLabelSize","getLines","major","_redrawLabel","_redrawLine","titleWidth","titleCharHeight","characterHeight","largestWidth","textMinor","textMajor","textTitle","measureCharTitle","titleCharWidth","zeroAlign","formattingFunction","majorSteps","minorSteps","customLines","minorStepIdx","magnitudefactor","determineScale","rounded","setCharHeight","setHeight","minimumStepValue","orderOfMagnitude","solutionFound","stepSize","is_major","getFirstMajor","majorStep","formatValue","bottomOffset","oldStepIdx","oldStart","oldEnd","increaseMagnitude","decreaseMagnitude","otherZero","otherStep","newRange","myOriginalZero","majorOffset","zeroOffset","pixels","usingDefaultStyle","zeroPosition","drawIcon","icon","Bargraph","fillHeight","outline","barWidth","originalWidth","bar1Height","bar2Height","processedGroupData","coreDistance","drawData","combinedData","intersections","barPoints","_getDataIntersections","heightOffset","_getSafeDrawData","amount","resolved","accumulatedNegative","accumulatedPositive","pointData","groupLabel","_getStackedYRange","xpos","getGroupTemplate","callbackResult","getCallback","Line","_catmullRom","_linear","fillPath","pathArray","subPathArray","dFill","zero","serializePath","inverse","_catmullRomUniform","p0","bp1","bp2","normalization","d1","d2","d3","A","N","d3powA","d2powA","d3pow2A","d2pow2A","d1pow2A","d1powA","side","iconSize","iconSpacing","excludeFromLegend","textArea","scrollableHeight","drawLegendIcons","paddingTop","nodes","nodeIndices","edges","edgeIndices","eventListeners","onTap","onDoubleTap","onHold","onDragStart","onDrag","onDragEnd","onPinch","onMouseMove","onContext","functions","createNode","createEdge","view","bindEventListeners","images","_Images2","_Groups2","_Canvas2","selectionHandler","_SelectionHandler2","interactionHandler","_InteractionHandler2","_View2","renderer","_CanvasRenderer2","_PhysicsEngine2","layoutEngine","_LayoutEngine2","clustering","_Clustering2","manipulation","_ManipulationSystem2","nodesHandler","_NodesHandler2","edgesHandler","_EdgesHandler2","_KamadaKawai2","_Images","_Groups","_NodesHandler","_EdgesHandler","_PhysicsEngine","_Clustering","_CanvasRenderer","_Canvas","_View","_InteractionHandler","_SelectionHandler","_LayoutEngine","_ManipulationSystem","_KamadaKawai","layout","interaction","networkOptions","_updateVisibleIndices","nodeId","edgeId","_updateValueRange","unselectAll","dotData","gephi","gephiData","valueTotal","setValueRange","canvasToDOM","DOMtoCanvas","findNode","isCluster","openCluster","cluster","getNodesInCluster","clusterByConnection","clusterByHubsize","clusterOutliers","getSeed","enableEditMode","disableEditMode","addNodeMode","editNode","editNodeMode","addEdgeMode","editEdgeMode","deleteSelected","getPositions","storePositions","moveNode","getBoundingBox","getConnectedNodes","objectId","getConnectedEdges","startSimulation","stopSimulation","stabilize","getSelectedNodes","getSelectedEdges","getNodeAt","getEdgeAt","edge","selectNodes","selectEdges","getViewPosition","releaseNode","getOptionsFromConfigurator","imageBroken","url","imageToCache","brokenUrl","imageToLoadBrokenUrlOn","onerror","_addImageToCache","Image","imageToRedrawWith","cachedImage","img","onload","_redrawWithImage","_tryloadBrokenUrl","Groups","defaultIndex","groupsArray","defaultGroups","useDefaultGroups","optionFields","groupName","groupname","_index","_Node","_Node2","_Label","_Label2","NodesHandler","nodesListeners","borderWidthSelected","brokenImage","fixed","face","strokeColor","image","labelHighlightBold","level","mass","scaling","maxVisible","drawThreshold","customScalingFunction","shadow","shape","shapeProperties","borderDashes","useImageSize","useBorderWithImage","parseOptions","updateShape","updateLabelModule","_reset","_nodeId2","doNotEmit","oldNodesData","newNodes","positionInitially","changedData","dataChanged","constructorClass","clearPositions","dataArray","_node","_node2","boundingBox","nodeList","nodeObj","toId","fromId","edgeList","_Box","_Box2","_Circle","_Circle2","_CircularImage","_CircularImage2","_Database","_Database2","_Diamond","_Diamond2","_Dot","_Dot2","_Ellipse","_Ellipse2","_Icon","_Icon2","_Image","_Image2","_Square","_Square2","_Star","_Star2","_Text","_Text2","_Triangle","_Triangle2","_TriangleDown","_TriangleDown2","Node","imagelist","baseSize","baseFontSize","predefinedPosition","labelModule","currentShape","groupObj","imageObj","load","distanceToBorder","sizeDiff","fontDiff","updateBoundingBox","resize","parentOptions","newOptions","parsedColor","_slicedToArray","sliceIterator","_arr","_n","_e","_s","Label","edgelabel","pointToSelf","fontOptions","yLine","isEdgeLabel","nodeOptions","labelDirty","baseline","viewFontSize","calculateLabelSize","_drawBackground","_drawText","lineMargin","fontSize","_getColor2","_getColor","_getColor3","fontColor","_setAlignment2","_setAlignment","_setAlignment3","lineCount","strokeText","_processLabel","measureText","newOptionsArray","_possibleConstructorReturn","ReferenceError","_inherits","subClass","superClass","setPrototypeOf","__proto__","_NodeBase2","_NodeBase3","Box","_NodeBase","getPrototypeOf","textSize","getTextSize","selectionLineWidth","roundRect","enableShadow","disableShadow","save","enableBorderDashes","disableBorderDashes","restore","NodeBase","shadowColor","shadowBlur","shadowOffsetX","shadowOffsetY","setLineDash","dashes","_CircleImageBase2","_CircleImageBase3","Circle","_CircleImageBase","diameter","_drawRawCircle","CircleImageBase","labelOffset","imageLoaded","ratio","neutralborderWidth","globalAlpha","can2","ctx2","drawImage","iterations","labelDimensions","CircularImage","_swapToImageResizeWhenImageLoaded","_resizeImage","clip","_drawImageAtPosition","_drawImageLabel","Database","database","_distanceToBorder","_ShapeBase2","_ShapeBase3","Diamond","_ShapeBase","_resizeShape","_drawShape","ShapeBase","sizeMultiplier","Dot","Ellipse","ellipse","Icon","_icon","iconTextSpacing","Square","Star","Text","Triangle","TriangleDown","_Edge","_Edge2","EdgesHandler","edgesListeners","arrows","scaleFactor","arrowStrikethrough","hoverWidth","selectionWidth","selfReferenceSize","smooth","forceDirection","roundness","emitChange","edgeData","edgeOptions","reconnectEdges","markAllEdgesAsDirty","updateEdgeType","_edgeId","oldEdgesData","edgesData","oldEdge","disconnect","showInternalIds","connect","cleanup","edgeType","colorDirty","_CubicBezierEdge","_CubicBezierEdge2","_BezierEdgeDynamic","_BezierEdgeDynamic2","_BezierEdgeStatic","_BezierEdgeStatic2","_StraightEdge","_StraightEdge2","Edge","baseWidth","connected","_setInteractionWidths","changeInType","attachEdge","detachEdge","widthDiff","viaNode","getViaNode","arrowData","fromPoint","toPoint","getArrowData","core","drawLine","drawArrows","drawLabel","drawArrowHead","node1","node2","getPoint","translate","_rotateForLabelAlignment","_pointOnCircle","xFrom","yFrom","xTo","yTo","xObj","yObj","getDistanceToEdge","angleInDegrees","rotate","percentage","colorsDefined","_CubicBezierEdgeBase2","_CubicBezierEdgeBase3","CubicBezierEdge","_CubicBezierEdgeBase","viaNodes","via1","via2","bezierCurveTo","x1","y1","x2","y2","_getViaCoordinates","nearNode","_findBorderPositionBezier","x3","y3","_ref","_ref2","_getDistanceToBezierEdge","_ref3","_ref4","vec","_BezierEdgeBase2","_BezierEdgeBase3","CubicBezierEdgeBase","_BezierEdgeBase","minDistance","lastX","lastY","_getDistanceToLine","_EdgeBase2","_EdgeBase3","BezierEdgeBase","_EdgeBase","distanceToPoint","difference","via","EdgeBase","getColor","getLineWidth","_drawDashedLine","_drawLine","_line","_getCircleData2","_getCircleData","_getCircleData3","_circle","pattern","lineDashOffset","_getCircleData4","_getCircleData5","dashedLine","_getCircleData6","_getCircleData7","_x","_y","_radius","_findBorderPosition","_findBorderPositionCircle","_getCircleData8","_getCircleData9","colorOptions","grd","createLinearGradient","fromColor","toColor","addColorStop","_getDistanceToEdge","_getCircleData10","_getCircleData11","px","py","something","u","arrowPoint","guideOffset","findBorderPosition","guidePos","_getCircleData12","_getCircleData13","xi","yi","arrowCore","arrow","BezierEdgeDynamic","_boundFunction","positionBezierNode","physicsChange","setupSupportNode","parentEdgeId","quadraticCurveTo","BezierEdgeStatic","xVia","yVia","pi","originalAngle","myAngle","_pi","_originalAngle","_myAngle","StraightEdge","edgeSegmentLength","toBorderDist","toBorderPoint","borderPos","_BarnesHutSolver","_BarnesHutSolver2","_RepulsionSolver","_RepulsionSolver2","_HierarchicalRepulsionSolver","_HierarchicalRepulsionSolver2","_SpringSolver","_SpringSolver2","_HierarchicalSpringSolver","_HierarchicalSpringSolver2","_CentralGravitySolver","_CentralGravitySolver2","_FA2BasedRepulsionSolver","_FA2BasedRepulsionSolver2","_FA2BasedCentralGravitySolver","_FA2BasedCentralGravitySolver2","PhysicsEngine","physicsBody","physicsNodeIndices","physicsEdgeIndices","forces","velocities","physicsEnabled","simulationInterval","requiresTimeout","previousStates","referenceState","freezeCache","renderTimer","adaptiveTimestep","adaptiveTimestepEnabled","adaptiveCounter","adaptiveInterval","stabilized","startedStabilization","stabilizationIterations","ready","barnesHut","theta","gravitationalConstant","centralGravity","springLength","springConstant","damping","avoidOverlap","forceAtlas2Based","repulsion","nodeDistance","hierarchicalRepulsion","maxVelocity","minVelocity","stabilization","updateInterval","onlyDynamicEdges","timestep","layoutFailed","initPhysics","updatePhysicsData","nodesSolver","edgesSolver","gravitySolver","modelOptions","viewFunction","simulationStep","_emitStabilized","startTime","physicsTick","physicsTime","runDoubleSpeed","amountOfIterations","calculateForces","moveNodes","revert","_evaluateStepQuality","nodeIds","positions","vx","vy","dpos","reference","maxNodeVelocity","averageNodeVelocity","velocityAdaptiveThreshold","nodeVelocity","_performStep","totalVelocity","solve","targetIterations","_freezeNodes","_stabilizationBatch","_finalizeStabilization","_restoreFrozenNodes","colorFactor","forceSize","arrowSize","BarnesHutSolver","barnesHutTree","randomSeed","thetaInversed","overlapAvoidanceFactor","nodeCount","_formBarnesHutTree","_getForceContribution","NW","NE","SW","SE","parentBranch","childrenCount","centerOfMass","calcSize","_calculateForces","gravityForce","fx","fy","minX","minY","maxX","maxY","minimumTreeSize","rootSize","halfRootSize","_splitBranch","_placeInTree","totalMass","totalMassInv","biggestSize","skipMassUpdate","_updateBranchMass","_placeInRegion","region","seededRandom","containedNode","_insertRegion","childSize","_drawBranch","branch","RepulsionSolver","repulsingForce","HierarchicalRepulsionSolver","steepness","SpringSolver","edgeLength","node3","_calculateSpringForce","springForce","HierarchicalSpringSolver","springFx","springFy","_i2","totalFx","totalFy","_i3","correctionFx","correctionFy","_i4","_nodeId3","CentralGravitySolver","_BarnesHutSolver3","ForceAtlas2BasedRepulsionSolver","degree","_CentralGravitySolver3","ForceAtlas2BasedCentralGravitySolver","_NetworkUtil","_NetworkUtil2","_Cluster","_Cluster2","ClusterEngine","clusteredNodes","clusteredEdges","hubsize","_getHubSize","_checkOptions","nodesToCluster","refreshData","joinCondition","childNodesObj","childEdgesObj","clonedOptions","cloneOptions","_cluster","edgeCount","clusters","usedNodes","relevantEdgeCount","gatheringSuccessful","childNodeId","_getConnectedId","clusterByEdgeCount","clusterNodeProperties","parentNodeId","parentClonedOptions","childClonedOptions","clusterEdgeProperties","childNode","otherNodeId","childKeys","createEdges","_edge","newEdge","clusteringEdgeReplacingId","_backupEdgeOptions","processProperties","childNodesOptions","childEdgesOptions","_clonedOptions","clusterId","_getClusterPosition","clusterNode","containedNodes","containedEdges","_createClusterEdges","originalOptions","clusterNodeId","releaseFunction","clusterPosition","newPositions","_containedNode","_nodeId4","_containedNode2","_nodeId5","_containedNode3","edgesToBeDeleted","otherCluster","transferEdge","replacedEdge","_restoreEdge","nodesArray","reverse","average","averageSquared","hubCounter","largestHub","variance","standardDeviation","hubThreshold","NetworkUtil","allNodes","specificNodes","amountOfConnections","_Node3","Cluster","requestAnimationFrame","mozRequestAnimationFrame","webkitRequestAnimationFrame","msRequestAnimationFrame","CanvasRenderer","redrawRequested","renderingActive","renderRequests","allowRedraw","hideEdgesOnDrag","hideNodesOnDrag","_determineBrowserMethod","_resizeNodes","_requestRedraw","_startRendering","cancelAnimationFrame","_renderStep","_drawEdges","_drawNodes","alwaysShow","topLeft","bottomRight","viewableArea","isSelected","isBoundingBoxOverlappingWith","browserType","Canvas","resizeTimer","resizeFunction","cameraState","hammerFrame","_cleanUp","previousWidth","previousHeight","widthRatio","heightRatio","newScale","currentViewCenter","distanceFromCenter","tabIndex","_prepareValue","emitEvent","oldWidth","oldHeight","previousRatio","_getCameraState","_setCameraState","_XconvertCanvasToDOM","_YconvertCanvasToDOM","_XconvertDOMtoCanvas","_YconvertDOMtoCanvas","View","animationSpeed","renderRefreshRate","animationEasingFunction","easingTime","sourceScale","targetScale","sourceTranslation","targetTranslation","lockedOnNodeId","lockedOnNodeOffset","touchTime","initialZoom","zoomLevel","positionDefined","numberOfNodes","yDistance","xZoomLevel","yZoomLevel","findCenter","animationOptions","nodePosition","lockedOnNode","animateView","locked","_transitionRedraw","viewCenter","_lockedRedraw","finished","_NavigationHandler","_NavigationHandler2","_Popup","_Popup2","InteractionHandler","navigationHandler","popup","popupObj","popupTimer","dragNodes","dragView","keyboard","speed","bindToWindow","navigationButtons","tooltipDelay","zoomView","pinched","checkSelectionChanges","_generateClickEvent","previouslySelectedEdgeCount","_getSelectedEdgeCount","previouslySelectedNodeCount","_getSelectedNodeCount","previousSelection","selectAdditionalOnPoint","selectOnPoint","selectedEdgesCount","selectedNodesCount","currentSelection","_determineIfDifferent2","_determineIfDifferent","nodesChanged","edgesChanged","nodeSelected","selectObject","selectionObj","xFixed","yFixed","scaleOld","preScaleDragPointer","scaleFrac","tx","ty","postScaleDragPointer","popupVisible","_checkHidePopup","setPosition","_checkShowPopup","hoverObject","pointerObj","previousPopupObjId","nodeUnderCursor","popupType","overlappingNodes","isOverlappingWith","getTitle","overlappingEdges","popupTargetType","popupTargetId","setText","_pointerToPositionObject","stillOnObj","overNode","NavigationHandler","iconsCreated","navigationHammers","boundFunctions","activated","configureKeyboardBindings","loadNavigationElements","cleanNavigation","navigationDOM","navigationDivs","navigationDivActions","_fit","bindToRedraw","_stopMovement","boundAction","unbindFromRedraw","Popup","doShow","SelectionHandler","hoverObj","selectConnectedEdges","hoverConnectedEdges","updateSelection","selectionChanged","deselectObject","emptySelection","DOM","highlightEdges","_selectConnectedEdges","_addToSelection","_removeFromSelection","canvasPos","returnNode","positionObject","_getAllNodesOverlappingWith","_getEdgesOverlappingWith","returnEdge","_getAllEdgesOverlappingWith","_unselectConnectedEdges","clusterSize","_addToHover","hoverChanged","blurObject","_hoverConnectedEdges","edgeIds","idArray","RangeError","LayoutEngine","initialRandomSeed","setPhysics","optionsBackup","improvedLayout","hierarchical","levelSeparation","nodeSpacing","treeSpacing","blockShifting","edgeMinimization","parentCentralization","sortMethod","setupHierarchicalLayout","layoutNetwork","prevHierarchicalState","adaptAllOptionsForHierarchicalLayout","MAX_LEVELS","clusterThreshold","startLength","before","clusterBridges","after","_declusterAll","info","kamadaKawai","_shiftToCenter","getRangeCore","clustersPresent","definedLevel","definedPositions","undefinedLevel","hierarchicalLevels","lastNodeOnLevel","hierarchicalChildrenReference","hierarchicalParentReference","hierarchicalTrees","treeIndex","distributionOrdering","distributionIndex","distributionOrderingPresence","_determineLevelsByHubsize","_determineLevelsDirected","_determineLevelsCustomCallback","distribution","_getDistribution","_generateMap","_placeNodesByHierarchy","_condenseHierarchy","stillShifting","branches","shiftTrees","treeSizes","getTreeSizes","shiftTree","_getPositionForHierarchy","_setPositionForHierarchy","getTreeSize","treeWidths","getBranchNodes","getBranchBoundary","branchMap","maxLevel","minSpace","maxSpace","branchNode","_getSpaceAroundNode2","_getSpaceAroundNode","_getSpaceAroundNode3","minSpaceNode","maxSpaceNode","getMaxLevel","getCollisionLevel","maxLevel1","maxLevel2","hasSameParent","parents1","parents2","shiftElementsCloser","levels","centerParents","levelNodes","branchShiftCallback","centerParent","diffAbs","branchNodes1","branchNodes2","_getBranchBoundary","_getBranchBoundary2","max1","_getBranchBoundary3","_getBranchBoundary4","min2","minSpace2","diffBranch","_shiftBlock","_centerParent","minimizeEdgeLength","allEdges","nodeLevel","C2","referenceNodes","aboveEdges","otherNode","getFx","getDFx","getGuess","guess","guessMap","dfx","moveBranch","branchNodes","_getBranchBoundary5","_getBranchBoundary6","minSpaceBranch","maxSpaceBranch","branchOffset","_getSpaceAroundNode4","_getSpaceAroundNode5","newPosition","minimizeEdgeLengthBottomUp","shiftBranchesCloserBottomUp","centerAllParents","centerAllParentsBottomUp","useMap","prevNode","prevPos","nextNode","nextPos","parents","parentId","minPos","maxPos","_i5","_getSpaceAroundNode6","_getSpaceAroundNode7","positionedNodes","nodeArray","_indexArrayToNodes","_sortNodeArray","handledNodeCount","_validataPositionAndContinue","parentLevel","_i6","childNodeLevel","_i7","previousPos","sharedParent","_findCommonParent","withChild","_placeBranchNodes","hubSize","levelDownstream","nodeA","nodeB","_crawlNetwork","minLevel","customCallback","levelByDirection","levelA","_setMinLevelToZero","fillInRelations","_this7","startingNodeId","crawler","tree","childA","childB","_this8","iterateParents","findParent","foundParent","doNotUpdate","ManipulationSystem","editMode","manipulationDiv","editModeDiv","closeDiv","manipulationHammers","temporaryUIFunctions","temporaryEventFunctions","temporaryIds","guiEnabled","inMode","selectedControlNode","initiallyActive","addNode","addEdge","editEdge","deleteNode","deleteEdge","controlNodeStyle","_restore","_setup","showManipulatorToolbar","_createEditButton","manipulationDOM","selectedNodeCount","selectedEdgeCount","selectedTotalCount","needSeperator","_createAddNodeButton","_createSeperator","_createAddEdgeButton","_createEditNodeButton","_createEditEdgeButton","_createDeleteButton","_bindHammerToDiv","toggleEditMode","_temporaryBindEvent","_createBackButton","_createDescription","_performAddNode","_getSelectedNode","finalizedData","_temporaryBindUI","_handleConnect","_finishConnect","_dragControlNode","edgeBeingEditedId","controlNodeFrom","_getNewTargetNode","controlNodeTo","_controlNodeTouch","_controlNodeDragStart","_controlNodeDrag","_controlNodeDragEnd","findBorderPositions","selectedNodes","selectedEdges","deleteFunction","_createWrappers","_removeManipulationDOM","_createButton","_cleanManipulatorHammers","_cleanupTemporaryNodesAndEdges","_unbindTemporaryUIs","_unbindTemporaryEvents","deleteBtnClass","labelClassName","newFunction","boundFunction","UIfunctionName","functionName","eventName","domElement","indexTempEdge","indexTempNode","lastTouch","fromSelect","toSelect","overlappingNodeIds","_performEditEdge","targetNode","connectionEdge","connectFromId","_performAddEdge","clickData","defaultData","sourceNodeId","targetNodeId","_FloydWarshall","_FloydWarshall2","KamadaKawai","edgeStrength","distanceSolver","edgesArray","ignoreClusters","D_matrix","getDistances","_createL_matrix","_createK_matrix","innerThreshold","maxInnerIterations","maxEnergy","highE_nodeId","dE_dx","dE_dy","delta_m","subIterations","_getHighestEnergyNode2","_getHighestEnergyNode","_getHighestEnergyNode3","_moveNode","_getEnergy2","_getEnergy","_getEnergy3","maxEnergyNodeId","dE_dx_max","dE_dy_max","nodeIdx","_getEnergy4","_getEnergy5","x_m","y_m","iIdx","x_i","y_i","denominator","K_matrix","L_matrix","d2E_dx2","d2E_dxdy","d2E_dy2","FloydWarshall","CanvasRenderingContext2D","square","s2","ir","triangleDown","star","diamond","r2d","kappa","ox","oy","xe","ye","xm","ym","wEllipse","hEllipse","ymb","yeb","xt","yt","xl","yl","xr","yr","patternLength","slope","distRemaining","patternIndex","dashLength","parseDOT","parseGraph","nextPreview","isAlphaNumeric","regexAlphaNumeric","setValue","graphs","attr","getToken","tokenType","TOKENTYPE","NULL","isComment","DELIMITER","c2","DELIMITERS","IDENTIFIER","newSyntaxError","UNKNOWN","chop","parseStatements","parseStatement","subgraph","parseSubgraph","parseEdge","parseAttributeStatement","parseNodeStatement","subgraphs","parseAttributeList","maxLength","forEach2","elem1","elem2","setProp","convertAttr","mapping","visProp","visPropI","graphData","dotNode","graphNode","NODE_ATTR_MAPPING","convertEdge","dotEdge","graphEdge","EDGE_ATTR_MAPPING","subEdge","fontsize","fontcolor","labelfontcolor","fontname","fillcolor","labeltooltip","{","}","[","]",";","=",",","->","--","gephiJSON","inheritColor","gEdges","gNodes","gEdge","gNode","edit","del","back","addDescription","edgeDescription","editEdgeDescription","createEdgeError","deleteClusterError","editClusterError"],"mappings":"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","file":"vis.map"} \ No newline at end of file +{"version":3,"sources":["vis.js"],"names":["root","factory","exports","module","define","amd","this","modules","__webpack_require__","moduleId","installedModules","id","loaded","call","m","c","p","util","extend","_typeof","Symbol","iterator","obj","constructor","moment","uuid","isNumber","object","Number","recursiveDOMDelete","DOMobject","hasChildNodes","firstChild","removeChild","giveRange","min","max","total","value","scale","Math","isString","String","isDate","Date","match","ASPDateRegex","exec","isNaN","parse","randomUUID","v4","assignAllKeys","prop","hasOwnProperty","fillIfDefined","a","b","allowDeletion","arguments","length","undefined","protoExtend","i","other","selectiveExtend","props","Array","isArray","Error","selectiveDeepExtend","TypeError","Object","deepExtend","selectiveNotDeepExtend","indexOf","push","equalArray","len","convert","type","Boolean","valueOf","isMoment","toDate","getType","toISOString","copyAndExtendArray","arr","newValue","newArr","copyArray","getAbsoluteLeft","elem","getBoundingClientRect","left","getAbsoluteRight","right","getAbsoluteTop","top","addClassName","className","classes","split","join","removeClassName","index","splice","forEach","callback","toArray","array","updateProperty","key","throttle","fn","wait","timeout","needExecution","throttled","setTimeout","addEventListener","element","action","listener","useCapture","navigator","userAgent","attachEvent","removeEventListener","detachEvent","preventDefault","event","window","returnValue","getTarget","target","srcElement","nodeType","parentNode","hasParent","parent","e","option","asBoolean","defaultValue","asNumber","asString","asSize","asElement","hexToRGB","hex","shorthandRegex","replace","r","g","result","parseInt","overrideOpacity","color","opacity","rgb","substr","RGBToHex","red","green","blue","toString","slice","parseColor","isValidRGB","map","isValidHex","hsv","hexToHSV","lighterColorHSV","h","s","v","darkerColorHSV","darkerColorHex","HSVToHex","lighterColorHex","background","border","highlight","hover","RGBToHSV","minRGB","maxRGB","d","hue","saturation","cssUtil","cssText","styles","style","trim","parts","keys","addCssText","currentStyles","newStyles","removeCssText","removeStyles","HSVToRGB","floor","f","q","t","isOk","test","isValidRGBA","rgba","selectiveBridgeObject","fields","referenceObject","objectTo","create","bridgeObject","insertSort","compare","k","j","mergeOptions","mergeTarget","options","globalOptions","enabled","binarySearchCustom","orderedItems","comparator","field","field2","maxIterations","iteration","low","high","middle","item","searchResult","binarySearchValue","sidePreference","prevValue","nextValue","easingFunctions","linear","easeInQuad","easeOutQuad","easeInOutQuad","easeInCubic","easeOutCubic","easeInOutCubic","easeInQuart","easeOutQuart","easeInOutQuart","easeInQuint","easeOutQuint","easeInOutQuint","global","utils_hooks__hooks","hookCallback","apply","setHookCallback","input","prototype","res","hasOwnProp","create_utc__createUTC","format","locale","strict","createLocalOrUTC","utc","defaultParsingFlags","empty","unusedTokens","unusedInput","overflow","charsLeftOver","nullInput","invalidMonth","invalidFormat","userInvalidated","iso","getParsingFlags","_pf","valid__isValid","_isValid","flags","_d","getTime","invalidWeekday","_strict","bigHour","valid__createInvalid","NaN","isUndefined","copyConfig","to","from","val","_isAMomentObject","_i","_f","_l","_tzm","_isUTC","_offset","_locale","momentProperties","Moment","config","updateInProgress","updateOffset","absFloor","number","ceil","toInt","argumentForCoercion","coercedNumber","isFinite","compareArrays","array1","array2","dontConvert","lengthDiff","abs","diffs","warn","msg","suppressDeprecationWarnings","console","deprecate","firstTime","stack","deprecateSimple","name","deprecations","isFunction","Function","isObject","locale_set__set","_config","_ordinalParseLenient","RegExp","_ordinalParse","source","mergeConfigs","parentConfig","childConfig","Locale","set","normalizeLocale","toLowerCase","chooseLocale","names","next","loadLocale","oldLocale","locales","globalLocale","_abbr","code","locale_locales__getSetGlobalLocale","values","data","locale_locales__getLocale","defineLocale","abbr","parentLocale","updateLocale","locale_locales__listLocales","addUnitAlias","unit","shorthand","lowerCase","aliases","normalizeUnits","units","normalizeObjectUnits","inputObject","normalizedProp","normalizedInput","makeGetSet","keepTime","get_set__set","get_set__get","mom","isValid","getSet","zeroFill","targetLength","forceSign","absNumber","zerosToFill","sign","pow","addFormatToken","token","padded","ordinal","func","formatTokenFunctions","localeData","removeFormattingTokens","makeFormatFunction","formattingTokens","output","formatMoment","expandFormat","formatFunctions","invalidDate","replaceLongDateFormatTokens","longDateFormat","localFormattingTokens","lastIndex","addRegexToken","regex","strictRegex","regexes","isStrict","getParseRegexForToken","unescapeFormat","regexEscape","matched","p1","p2","p3","p4","addParseToken","tokens","addWeekParseToken","_w","addTimeToArrayFromToken","_a","daysInMonth","year","month","UTC","getUTCDate","localeMonths","_months","MONTHS_IN_FORMAT","localeMonthsShort","_monthsShort","localeMonthsParse","monthName","_monthsParse","_longMonthsParse","_shortMonthsParse","months","monthsShort","setMonth","dayOfMonth","monthsParse","date","getSetMonth","getDaysInMonth","monthsShortRegex","_monthsParseExact","computeMonthsParse","_monthsShortStrictRegex","_monthsShortRegex","monthsRegex","_monthsStrictRegex","_monthsRegex","cmpLenRev","shortPieces","longPieces","mixedPieces","sort","checkOverflow","MONTH","DATE","YEAR","HOUR","MINUTE","SECOND","MILLISECOND","_overflowDayOfYear","_overflowWeeks","WEEK","_overflowWeekday","WEEKDAY","configFromISO","l","allowTime","dateFormat","timeFormat","tzFormat","string","extendedIsoRegex","basicIsoRegex","isoDates","isoTimes","tzRegex","configFromStringAndFormat","configFromString","aspNetJsonRegex","createFromInputFallback","createDate","y","M","ms","getFullYear","setFullYear","createUTCDate","getUTCFullYear","setUTCFullYear","daysInYear","isLeapYear","getIsLeapYear","firstWeekOffset","dow","doy","fwd","fwdlw","getUTCDay","dayOfYearFromWeeks","week","weekday","resYear","resDayOfYear","localWeekday","weekOffset","dayOfYear","weekOfYear","resWeek","weeksInYear","weekOffsetNext","defaults","currentDateArray","nowValue","now","_useUTC","getUTCMonth","getMonth","getDate","configFromArray","currentDate","yearToUse","dayOfYearFromWeekInfo","_dayOfYear","_nextDay","setUTCMinutes","getUTCMinutes","w","weekYear","temp","weekdayOverflow","GG","W","E","local__createLocal","_week","gg","ISO_8601","parsedInput","skipped","stringLength","totalParsedInputLength","meridiemFixWrap","_meridiem","hour","meridiem","isPm","meridiemHour","isPM","configFromStringAndArray","tempConfig","bestMoment","scoreToBeat","currentScore","score","configFromObject","day","minute","second","millisecond","createFromConfig","prepareConfig","add","preparse","configFromInput","isUTC","pickBy","moments","args","Duration","duration","years","quarters","quarter","weeks","days","hours","minutes","seconds","milliseconds","_milliseconds","_days","_data","_bubble","isDuration","offset","separator","utcOffset","offsetFromString","matcher","matches","chunk","chunkOffset","cloneWithOffset","model","diff","clone","setTime","local","getDateOffset","round","getTimezoneOffset","getSetOffset","keepLocalTime","localAdjust","matchShortOffset","_changeInProgress","add_subtract__addSubtract","create__createDuration","getSetZone","setOffsetToUTC","setOffsetToLocal","subtract","setOffsetToParsedOffset","matchOffset","hasAlignedHourOffset","isDaylightSavingTime","isDaylightSavingTimeShifted","_isDSTShifted","isLocal","isUtcOffset","isUtc","ret","diffRes","aspNetRegex","isoRegex","parseIso","momentsDifference","inp","parseFloat","positiveMomentsDifference","base","isAfter","isBefore","absRound","createAdder","direction","period","dur","tmp","isAdding","moment_calendar__calendar","time","formats","sod","startOf","calendar","localInput","endOf","isBetween","isSame","inputMs","isSameOrAfter","isSameOrBefore","asFloat","that","zoneDelta","delta","monthDiff","anchor2","adjust","wholeMonthDiff","anchor","moment_format__toISOString","inputString","defaultFormat","postformat","withoutSuffix","humanize","fromNow","toNow","newLocaleData","isoWeekday","to_type__valueOf","unix","toObject","toJSON","moment_valid__isValid","parsingFlags","invalidAt","creationData","addWeekYearFormatToken","getter","getSetWeekYear","getSetWeekYearHelper","getSetISOWeekYear","isoWeek","getISOWeeksInYear","getWeeksInYear","weekInfo","weeksTarget","setWeekAll","dayOfYearData","getSetQuarter","localeWeek","localeFirstDayOfWeek","localeFirstDayOfYear","getSetWeek","getSetISOWeek","parseWeekday","weekdaysParse","localeWeekdays","_weekdays","isFormat","localeWeekdaysShort","_weekdaysShort","localeWeekdaysMin","_weekdaysMin","localeWeekdaysParse","weekdayName","_weekdaysParse","_minWeekdaysParse","_shortWeekdaysParse","_fullWeekdaysParse","weekdays","weekdaysShort","weekdaysMin","getSetDayOfWeek","getDay","getSetLocaleDayOfWeek","getSetISODayOfWeek","getSetDayOfYear","hFormat","lowercase","matchMeridiem","_meridiemParse","localeIsPM","charAt","localeMeridiem","isLower","parseMs","getZoneAbbr","getZoneName","moment__createUnix","moment__createInZone","parseZone","locale_calendar__calendar","_calendar","_longDateFormat","formatUpper","toUpperCase","_invalidDate","_ordinal","preParsePostFormat","relative__relativeTime","isFuture","_relativeTime","pastFuture","lists__get","setter","list","count","out","lists__listMonths","lists__listMonthsShort","lists__listWeekdays","lists__listWeekdaysShort","lists__listWeekdaysMin","duration_abs__abs","mathAbs","duration_add_subtract__addSubtract","duration_add_subtract__add","duration_add_subtract__subtract","absCeil","bubble","monthsFromDays","monthsToDays","daysToMonths","as","duration_as__valueOf","makeAs","alias","duration_get__get","makeGetter","substituteTimeAgo","relativeTime","duration_humanize__relativeTime","posNegDuration","thresholds","duration_humanize__getSetRelativeTimeThreshold","threshold","limit","withSuffix","iso_string__toISOString","iso_string__abs","Y","D","asSeconds","match1","match2","match3","match4","match6","match1to2","match3to4","match5to6","match1to3","match1to4","match1to6","matchUnsigned","matchSigned","matchTimestamp","matchWord","defaultLocaleMonths","defaultLocaleMonthsShort","defaultMonthsShortRegex","defaultMonthsRegex","parseTwoDigitYear","getSetYear","prototypeMin","prototypeMax","add_subtract__add","add_subtract__subtract","lang","isoWeekYear","defaultLocaleWeek","getSetDayOfMonth","defaultLocaleWeekdays","defaultLocaleWeekdaysShort","defaultLocaleWeekdaysMin","_isPm","pos","pos1","pos2","defaultLocaleMeridiemParse","getSetHour","getSetMinute","getSetSecond","getSetMillisecond","momentPrototype__proto","get","isoWeeks","isoWeeksInYear","isDST","isDSTShifted","zoneAbbr","zoneName","dates","zone","momentPrototype","defaultCalendar","sameDay","nextDay","nextWeek","lastDay","lastWeek","sameElse","defaultLongDateFormat","LTS","LT","L","LL","LLL","LLLL","defaultInvalidDate","defaultOrdinal","defaultOrdinalParse","defaultRelativeTime","future","past","mm","hh","dd","MM","yy","prototype__proto","firstDayOfYear","firstDayOfWeek","ordinalParse","langData","asMilliseconds","asMinutes","asHours","asDays","asWeeks","asMonths","asYears","duration_prototype__proto","toIsoString","version","invalid","relativeTimeThreshold","_moment","webpackPolyfill","paths","children","webpackContext","req","resolve","buf","ii","oct","_hexToByte","unparse","bth","_byteToHex","v1","clockseq","_clockseq","msecs","nsecs","_lastNSecs","dt","_lastMSecs","tl","tmh","node","_nodeId","n","rnds","random","rng","_rng","globalVar","crypto","getRandomValues","_rnds8","Uint8Array","_rnds","_seedBytes","DOMutil","DataSet","DataView","Queue","Graph3d","graph3d","Camera","Filter","Point2d","Point3d","Slider","StepNumber","Hammer","keycharm","prepareElements","JSONcontainer","elementType","redundant","used","cleanupElements","resetElements","getSVGElement","svgContainer","shift","document","createElementNS","appendChild","getDOMElement","DOMContainer","insertBefore","createElement","drawPoint","x","groupTemplate","labelObj","point","setAttributeNS","size","label","xOffset","yOffset","content","textContent","drawBar","width","height","rect","_options","_fieldId","fieldId","_type","_subscribers","setOptions","queue","_queue","destroy","on","subscribers","subscribe","off","filter","unsubscribe","_trigger","params","senderId","concat","subscriber","addedIds","me","_addItem","items","update","updatedIds","oldData","updatedData","addOrUpdate","oldItem","_updateItem","ids","firstType","returnType","allowedValues","itemIds","itemId","_getItem","order","_sort","_filterFields","resultant","getIds","getDataSet","mappedItems","filteredItem","itemFields","av","bv","remove","removedId","removedIds","_remove","clear","maxField","itemField","minField","distinct","fieldType","exists","types","raw","converted","JSON","stringify","delay","Infinity","_timeout","_extended","_flushIfNeeded","flush","methods","original","method","context","entry","clearTimeout","_ids","_onEvent","setData","refresh","oldIds","newIds","added","removed","viewOptions","getArguments","defaultFilter","dataSet","updated","container","SyntaxError","containerElement","margin","defaultXCenter","defaultYCenter","xLabel","yLabel","zLabel","passValueFn","xValueLabel","yValueLabel","zValueLabel","filterLabel","legendLabel","STYLE","DOT","showPerspective","showGrid","keepAspectRatio","showShadow","showGrayBottom","showTooltip","verticalRatio","animationInterval","animationPreload","camera","setArmRotation","setArmLength","eye","dataTable","dataPoints","colX","colY","colZ","colValue","colFilter","xMin","xStep","xMax","yMin","yStep","yMax","zMin","zStep","zMax","valueMin","valueMax","xBarWidth","yBarWidth","axisColor","gridColor","dataColor","fill","stroke","strokeWidth","dotSizeRatio","getMouseX","clientX","targetTouches","getMouseY","clientY","Emitter","_setScale","z","xCenter","yCenter","zCenter","setArmLocation","_convert3Dto2D","point3d","translation","_convertPointToTranslation","_convertTranslationToScreen","ax","ay","az","cx","getCameraLocation","cy","cz","sinTx","sin","getCameraRotation","cosTx","cos","sinTy","cosTy","sinTz","cosTz","dx","dy","dz","bx","by","ex","ey","ez","getArmLength","xcenter","frame","canvas","clientWidth","ycenter","_setBackgroundColor","backgroundColor","borderColor","borderWidth","borderStyle","BAR","BARCOLOR","BARSIZE","DOTLINE","DOTCOLOR","DOTSIZE","GRID","LINE","SURFACE","_getStyleNumber","styleName","_determineColumnIndexes","getNumberOfColumns","getNumberOfRows","counter","column","getDistinctValues","distinctValues","getColumnRange","minMax","_dataInitialize","rawData","_onChange","dataFilter","setOnLoadCallback","redraw","withBars","defaultXBarWidth","dataX","defaultYBarWidth","dataY","xRange","defaultXMin","defaultXMax","defaultXStep","yRange","defaultYMin","defaultYMax","defaultYStep","zRange","defaultZMin","defaultZMax","defaultZStep","valueRange","defaultValueMin","defaultValueMax","_getDataPoints","sortNumber","dataMatrix","xIndex","yIndex","trans","screen","bottom","pointRight","pointTop","pointCross","position","noCanvas","fontWeight","padding","innerHTML","onmousedown","_onMouseDown","ontouchstart","_onTouchStart","onmousewheel","_onWheel","ontooltip","_onTooltip","onkeydown","setSize","_resizeCanvas","clientHeight","animationStart","slider","play","animationStop","stop","_resizeCenter","setCameraPosition","horizontal","vertical","distance","getCameraPosition","getArmRotation","_readData","_redrawFilter","animationAutoStart","cameraPosition","styleNumber","tooltip","showAnimationControls","_redrawSlider","_redrawClear","_redrawAxis","_redrawDataGrid","_redrawDataLine","_redrawDataBar","_redrawDataDot","_redrawInfo","_redrawLegend","ctx","getContext","clearRect","widthMin","widthMax","dotSize","lineWidth","font","ymin","ymax","_hsv2rgb","strokeStyle","beginPath","moveTo","lineTo","strokeRect","fillStyle","closePath","gridLineLen","step","start","getCurrent","end","textAlign","textBaseline","fillText","visible","setValues","setPlayInterval","onchange","getIndex","selectValue","setOnChangeCallback","lineStyle","getLabel","getSelectedValue","prettyStep","text","xText","yText","zText","xMin2d","xMax2d","gridLenX","gridLenY","textMargin","armAngle","H","S","V","R","G","B","C","Hi","X","cross","topSideVisible","zAvg","lineJoin","lineCap","transBottom","dist","sortDepth","aDiff","bDiff","crossproduct","crossProduct","_getStrokeWidth","radius","arc","PI","surface","corners","xWidth","yWidth","surfaces","center","avg","transCenter","leftButtonDown","_onMouseUp","which","button","touchDown","startMouseX","startMouseY","startStart","startEnd","startArmRotation","cursor","onmousemove","_onMouseMove","onmouseup","diffX","diffY","horizontalNew","verticalNew","snapAngle","snapValue","parameters","emit","boundingRect","mouseX","mouseY","tooltipTimeout","_hideTooltip","dataPoint","_dataPointFromXY","_showTooltip","ontouchmove","_onTouchMove","ontouchend","_onTouchEnd","wheelDelta","detail","oldLength","newLength","_insideTriangle","triangle","bs","cs","distMax","closestDataPoint","closestDist","triangle1","triangle2","distX","distY","sqrt","line","dot","dom","borderRadius","boxShadow","borderLeft","contentWidth","offsetWidth","contentHeight","offsetHeight","lineHeight","dotWidth","dotHeight","mixin","_callbacks","once","self","removeListener","removeAllListeners","callbacks","cb","listeners","hasListeners","sub","sum","armLocation","armRotation","armLength","cameraLocation","cameraRotation","calculateCameraOrientation","rot","graph","onLoadCallback","loadInBackground","isLoaded","getLoadedProgress","getColumn","getValues","getValue","dataView","progress","prev","bar","MozBorderRadius","slide","onclick","togglePlay","onChangeCallback","playTimeout","playInterval","playLoop","setIndex","playNext","interval","clearInterval","getPlayInterval","setPlayLoop","doLoop","onChange","indexToLeft","startClientX","startSlideX","leftToIndex","_start","_end","_step","precision","_current","setRange","setStep","calculatePrettyStep","log10","log","LN10","step1","step2","step5","toPrecision","getStep","propagating","__WEBPACK_AMD_DEFINE_FACTORY__","__WEBPACK_AMD_DEFINE_ARRAY__","__WEBPACK_AMD_DEFINE_RESULT__","_firstTarget","hammer","events","propagatedHandler","srcEvent","_handled","stopped","stopPropagation","srcStop","bind","firstTarget","elemHammer","_handlers","Manager","PropagatingHammer","o","assign","wrapper","pointerType","isFirst","handler","eventType","hammers","idx","exportName","setTimeoutContext","bindFn","invokeArrayArg","arg","each","message","deprecationMessage","inherit","child","properties","childP","baseP","_super","boolOrFn","TYPE_FUNCTION","ifUndefined","val1","val2","addEventListeners","splitStr","removeEventListeners","inStr","str","find","inArray","src","findByKey","uniqueArray","results","prefixed","property","prefix","camelProp","VENDOR_PREFIXES","uniqueId","_uniqueId","getWindowForElement","doc","ownerDocument","defaultView","parentWindow","Input","manager","inputTarget","domHandler","ev","enable","init","createInputInstance","Type","inputClass","SUPPORT_POINTER_EVENTS","PointerEventInput","SUPPORT_ONLY_TOUCH","TouchInput","SUPPORT_TOUCH","TouchMouseInput","MouseInput","inputHandler","pointersLen","pointers","changedPointersLen","changedPointers","INPUT_START","isFinal","INPUT_END","INPUT_CANCEL","session","computeInputData","recognize","prevInput","pointersLength","firstInput","simpleCloneInputData","firstMultiple","offsetCenter","getCenter","timeStamp","deltaTime","angle","getAngle","getDistance","computeDeltaXY","offsetDirection","getDirection","deltaX","deltaY","overallVelocity","getVelocity","overallVelocityX","overallVelocityY","getScale","rotation","getRotation","maxPointers","computeIntervalInputData","offsetDelta","prevDelta","velocity","velocityX","velocityY","last","lastInterval","COMPUTE_INTERVAL","DIRECTION_NONE","DIRECTION_LEFT","DIRECTION_RIGHT","DIRECTION_UP","DIRECTION_DOWN","PROPS_XY","atan2","PROPS_CLIENT_XY","evEl","MOUSE_ELEMENT_EVENTS","evWin","MOUSE_WINDOW_EVENTS","allow","pressed","POINTER_ELEMENT_EVENTS","POINTER_WINDOW_EVENTS","store","pointerEvents","SingleTouchInput","evTarget","SINGLE_TOUCH_TARGET_EVENTS","SINGLE_TOUCH_WINDOW_EVENTS","started","normalizeSingleTouches","all","touches","changed","changedTouches","TOUCH_TARGET_EVENTS","targetIds","getTouches","allTouches","INPUT_MOVE","identifier","changedTargetTouches","touch","mouse","TouchAction","cleanTouchActions","actions","TOUCH_ACTION_NONE","hasPanX","TOUCH_ACTION_PAN_X","hasPanY","TOUCH_ACTION_PAN_Y","TOUCH_ACTION_MANIPULATION","TOUCH_ACTION_AUTO","Recognizer","state","STATE_POSSIBLE","simultaneous","requireFail","stateStr","STATE_CANCELLED","STATE_ENDED","STATE_CHANGED","STATE_BEGAN","directionStr","getRecognizerByNameIfManager","otherRecognizer","recognizer","AttrRecognizer","PanRecognizer","pX","pY","PinchRecognizer","PressRecognizer","_timer","_input","RotateRecognizer","SwipeRecognizer","TapRecognizer","pTime","pCenter","recognizers","preset","handlers","touchAction","toggleCssProps","recognizeWith","requireFailure","cssProps","triggerDomEvent","gestureEvent","createEvent","initEvent","gesture","dispatchEvent","TEST_ELEMENT","nextKey","dest","merge","MOBILE_REGEX","INPUT_TYPE_TOUCH","INPUT_TYPE_PEN","INPUT_TYPE_MOUSE","INPUT_TYPE_KINECT","DIRECTION_HORIZONTAL","DIRECTION_VERTICAL","DIRECTION_ALL","MOUSE_INPUT_MAP","mousedown","mousemove","mouseup","POINTER_INPUT_MAP","pointerdown","pointermove","pointerup","pointercancel","pointerout","IE10_POINTER_TYPE_ENUM",2,3,4,5,"MSPointerEvent","PointerEvent","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","isTapPointer","isTapMovement","isTapTouchTime","preventSrc","STATE_RECOGNIZED","STATE_FAILED","dropRecognizeWith","dropRequireFailure","hasRequireFailures","canRecognizeWith","additionalEvent","tryEmit","canEmit","inputDataClone","process","reset","attrTest","optionPointers","isRecognized","directionTest","hasMoved","inOut","validPointers","validMovement","validTime","taps","posThreshold","validTouchTime","failTimeout","validInterval","validMultiTap","tapCount","VERSION","domEvents","userSelect","touchSelect","touchCallout","contentZooming","userDrag","tapHighlightColor","STOP","FORCED_STOP","force","curRecognizer","existing","Tap","Pan","Swipe","Pinch","Rotate","Press","freeGlobal","_exportFunctions","_bound","keydown","keyup","_keys","fromCharCode","down","handleEvent","up","keyCode","bound","shiftKey","bindAll","getKey","unbind","newBindings","Timeline","Graph2d","timeline","Core","DateUtil","Range","TimeStep","components","Item","BackgroundItem","BoxItem","PointItem","RangeItem","BackgroundGroup","Component","CurrentTime","CustomTime","DataAxis","DataScale","GraphGroup","Group","ItemSet","Legend","LineGraph","TimeAxis","_interopRequireDefault","__esModule","default","groups","forthArgument","defaultOptions","autoResize","throttleRedraw","orientation","axis","rtl","maxHeight","minHeight","_create","body","domProps","emitter","hiddenDates","timeAxis","toScreen","_toScreen","toGlobalScreen","_toGlobalScreen","toTime","_toTime","toGlobalTime","_toGlobalTime","range","timeAxis2","currentTime","itemSet","itemsData","groupsData","getEventProperties","oncontextmenu","fitDone","getItemRange","setWindow","animation","fit","setGroups","setItems","_redraw","_Configurator","_Configurator2","_Validator","_Validator2","printStyle","allOptions","configureOptions","_createConfigurator","markDirty","refreshItems","errorFound","validate","selection","getSelection","setSelection","newDataSet","focus","itemData","dataset","getDataRange","_this","minItem","maxItem","factor","lhs","rhs","getStart","getEnd","show","repositionX","startSide","getWidthRight","endSide","getWidthLeft","centerContainer","itemFromTarget","group","groupFromTarget","customTime","customTimeFromTarget","snap","snappedTime","what","foreground","labelSet","groupId","pageX","pageY","_classCallCheck","instance","Constructor","defineProperty","_createClass","defineProperties","descriptor","enumerable","configurable","writable","protoProps","staticProps","_ColorPicker","_ColorPicker2","Configurator","parentModule","defaultContainer","pixelRatio","changedOptions","allowCreation","initialized","popupCounter","showButton","moduleOptions","domElements","popupDiv","popupLimit","popupHistory","colorPicker","_removePopup","_clean","_handleObject","_makeItem","_makeHeader","generateButton","_printOptions","onmouseover","onmouseout","optionsContainer","_push","_showPopupIfNeeded","path","_arguments","_this2","_len","_key","_ret2","div","objectLabel","select","selectedValue","selected","_update","_makeLabel","err","popupString","popupValue","oninput","itemIndex","_setupPopup","_this3","html","hideTimeout","deleteTimeout","_this4","correspondingElement","checkbox","checked","_this5","defaultColor","_showColorPicker","_this6","insertTo","setColor","setUpdateCallback","colorString","setCloseCallback","checkOnly","visibleInSet","subObj","newPath","_getValue","_handleArray","_makeTextInput","_makeCheckbox","draw","physics","solver","enabledPath","enabledValue","_label","error","_makeColorField","_makeDropdown","_makeRange","_constructOptions","optionsObj","pointer","getOptions","hammerUtil","ColorPicker","generated","centerCoordinates","hueCircle","initialColor","previousColor","applied","updateCallback","closeCallback","_bindHammer","_setSize","htmlColors","black","navy","darkblue","mediumblue","darkgreen","teal","darkcyan","deepskyblue","darkturquoise","mediumspringgreen","lime","springgreen","aqua","cyan","midnightblue","dodgerblue","lightseagreen","forestgreen","seagreen","darkslategray","limegreen","mediumseagreen","turquoise","royalblue","steelblue","darkslateblue","mediumturquoise","indigo","darkolivegreen","cadetblue","cornflowerblue","mediumaquamarine","dimgray","slateblue","olivedrab","slategray","lightslategray","mediumslateblue","lawngreen","chartreuse","aquamarine","maroon","purple","olive","gray","skyblue","lightskyblue","blueviolet","darkred","darkmagenta","saddlebrown","darkseagreen","lightgreen","mediumpurple","darkviolet","palegreen","darkorchid","yellowgreen","sienna","brown","darkgray","lightblue","greenyellow","paleturquoise","lightsteelblue","powderblue","firebrick","darkgoldenrod","mediumorchid","rosybrown","darkkhaki","silver","mediumvioletred","indianred","peru","chocolate","tan","lightgrey","palevioletred","thistle","orchid","goldenrod","crimson","gainsboro","plum","burlywood","lightcyan","lavender","darksalmon","violet","palegoldenrod","lightcoral","khaki","aliceblue","honeydew","azure","sandybrown","wheat","beige","whitesmoke","mintcream","ghostwhite","salmon","antiquewhite","linen","lightgoldenrodyellow","oldlace","fuchsia","magenta","deeppink","orangered","tomato","hotpink","coral","darkorange","lightsalmon","orange","lightpink","pink","gold","peachpuff","navajowhite","moccasin","bisque","mistyrose","blanchedalmond","papayawhip","lavenderblush","seashell","cornsilk","lemonchiffon","floralwhite","snow","yellow","lightyellow","ivory","white","setInitial","htmlColor","_isColorString","rgbaArray","_rgbaArray","rgbObj","alpha","_setColor","display","_generateHueCircle","storePrevious","_hide","_updatePicker","alert","angleConvert","colorPickerSelector","colorPickerCanvas","pixelRation","devicePixelRatio","webkitBackingStorePixelRatio","mozBackingStorePixelRatio","msBackingStorePixelRatio","oBackingStorePixelRatio","backingStorePixelRatio","setTransform","putImageData","circle","brightnessRange","opacityRange","initialColorDiv","newColorDiv","colorPickerDiv","opacityDiv","brightnessDiv","arrowDiv","_setOpacity","_setBrightness","brightnessLabel","opacityLabel","cancelButton","applyButton","_apply","saveButton","_save","loadButton","_loadLast","drag","pinch","onTouch","_moveSelector","sat","hfac","sfac","fillRect","getImageData","centerY","centerX","newTop","newLeft","onRelease","offTouch","offRelease","disablePreventDefaultVertically","pinchRecognizer","Validator","referenceOptions","subObject","usedOptions","check","__any__","getSuggestion","__type__","checkFields","referenceOption","refOptionObj","optionType","refOptionType","print","printLocation","localSearch","findInOptions","globalSearch","localSearchThreshold","globalSearchThreshold","indexMatch","closestMatch","recursive","closestMatchPath","lowerCaseOption","op","levenshteinDistance","_j","_j2","matrix","deltaDifference","scaleOffset","startToFront","endToFront","moveable","zoomable","zoomMin","zoomMax","animationTimer","_onDragStart","_onDrag","_onDragEnd","_onMouseWheel","_onTouch","_onPinch","validateDirection","byUser","finalStart","finalEnd","_cancelAnimation","initStart","initEnd","easingName","easingFunction","initTime","anyChanged","dragging","ease","done","_applyRange","updateHiddenDates","newStart","newEnd","getRange","conversion","totalHidden","previousDelta","_isInsideRange","allowDragging","getHiddenDurationBetween","diffRange","safeStart","snapAwayFromHidden","safeEnd","startDate","endDate","zoomKey","getPointer","pointerDate","_pointerToDate","zoom","centerDate","hiddenDuration","hiddenDurationBefore","getHiddenDurationBefore","hiddenDurationAfter","move","_isResized","resized","_previousWidth","_previousHeight","convertHiddenOptions","repeat","dateItem","totalRange","pixelTime","runUntil","dayOffset","removeDuplicates","startHidden","isHidden","endHidden","rangeStart","rangeEnd","hidden","safeDates","printDates","stepOverHiddenDates","timeStep","previousTime","stepInHidden","currentValue","current","switchedYear","switchedMonth","switchedDay","correctTimeForHidden","totalDuration","partialDuration","accumulatedHiddenDuration","getAccumulatedHiddenDuration","newTime","timeOffset","requiredDuration","previousPoint","correctionEnabled","Activator","onMouseWheel","isActive","backgroundVertical","backgroundHorizontal","leftContainer","rightContainer","shadowTop","shadowBottom","shadowTopLeft","shadowBottomLeft","shadowTopRight","shadowBottomRight","initialDrawDone","_redrawTimer","scrollTop","scrollTopMin","customTimes","redrawCount","contentContainer","drawPoints","onRender","clickToUse","activator","_initAutoResize","component","configurator","configure","appliedOptions","setModuleOptions","_origRedraw","active","_stopAutoResize","setCustomTime","getCustomTime","setCustomTimeTitle","title","setCustomTitle","addCustomTime","timestamp","some","removeCustomTime","getVisibleItems","getWindow","borderRootHeight","borderRootWidth","autoHeight","containerHeight","centerWidth","_updateScrollTop","visibilityTop","visibilityBottom","visibility","contentsOverflow","MAX_REDRAW","repaint","setCurrentTime","getCurrentTime","_startAutoResize","_onResize","lastWidth","lastHeight","watchTimer","setInterval","initialScrollTop","oldScrollTop","_getScrollTop","newScrollTop","_setScrollTop","align","groupOrderSwap","fromGroup","toGroup","targetOrder","groupOrder","selectable","multiselect","itemsAlwaysDraggable","editable","updateTime","updateGroup","groupEditable","onAdd","onUpdate","onMove","onRemove","onMoving","onAddGroup","onMoveGroup","onRemoveGroup","itemOptions","itemListeners","_onAdd","_onUpdate","_onRemove","groupListeners","_onAddGroups","_onUpdateGroups","_onRemoveGroups","groupIds","stackDirty","touchParams","groupTouchParams","UNGROUPED","BACKGROUND","box","_updateUngrouped","backgroundGroup","_onSelectItem","_onMultiSelectItem","_onAddItem","groupHammer","_onGroupDragStart","_onGroupDrag","_onGroupDragEnd","addCallback","dirty","displayed","hide","unselect","rawVisibleItems","visibleItems","_deselect","_orderGroups","visibleInterval","zoomed","lastVisibleInterval","restack","firstGroup","_firstGroup","firstMargin","nonFirstMargin","groupMargin","groupResized","firstGroupIndex","firstGroupId","ungrouped","_getGroupId","getLabelSet","oldItemsData","getItems","_order","getGroups","removeItem","_getType","_removeItem","groupData","groupOptions","oldGroupId","oldSubGroupId","subgroup","oldGroup","_constructByEndArray","endArray","dragLeftItem","dragRightItem","itemProps","_getGroupIndex","initialX","dragLeft","_cloneItemData","dragRight","selectedItem","baseGroupIndex","itemsToDrag","groupIndex","groupOffset","ctrlKey","metaKey","_onDragStartAddItem","xAbs","newItem","offsetLeft","updateGroupAllowed","newGroupBase","initial","updateTimeAllowed","initialEnd","initialStart","newOffset","_moveToGroup","originalOrder","movingUp","targetGroupTop","draggedGroupHeight","targetGroupHeight","targetGroup","draggedGroup","newOrder","origOrder","draggedId","numGroups","curPos","orgOffset","slippedPosition","switchGroup","shouldBeGroup","switchGroupId","oldSelection","newSelection","newItemData","itemGroup","lastSelectedGroup","multiselectPerGroup","_getItemRange","_item","itemSetFromTarget","minimumStep","autoScale","FORMAT","minorLabels","majorLabels","setMoment","setFormat","setMinimumStep","roundToMinor","hasNext","setScale","setAutoScale","stepYear","stepMonth","stepDay","stepHour","stepMinute","stepSecond","stepMillisecond","isMajor","getLabelMinor","getLabelMajor","getClassName","even","today","currentWeek","currentMonth","currentYear","subgroups","subgroupIndex","subgroupOrderer","subgroupOrder","byStart","byEnd","checkRangedItems","inner","marker","Element","getLabelWidth","markerHeight","lastMarkerHeight","_calculateSubGroupHeights","limitSize","customOrderedItems","_updateVisibleItems","nostack","_calculateHeight","offsetTop","repositionY","resetSubgroups","setParent","orderSubgroups","_checkIfVisible","sortArray","sortField","removeFromDataSet","startArray","orderByStart","orderByEnd","oldVisibleItems","visibleItemsLookup","lowerBound","upperBound","searchFunction","_checkIfVisibleWithReference","initialPosByStart","_traceVisible","initialPosByEnd","initialPos","breakCondition","isVisible","EPSILON","aTime","bTime","iMax","collidingItem","jj","collision","baseClassName","_updateContents","_updateTitle","_updateDataAttributes","_updateStyle","getComputedStyle","maxWidth","_repaintDeleteButton","_repaintDragLeft","_repaintDragRight","contentStartPosition","parentWidth","boxWidth","groupChanged","deleteButton","template","_contentToString","removeAttribute","dataAttributes","attributes","setAttribute","outerHTML","itemSetHeight","marginLeft","marginRight","onTop","itemSubgroup","totalHeight","newHeight","lines","majorTexts","minorTexts","lineTop","showMinorLabels","showMajorLabels","maxMinorChars","parentChanged","_calculateCharSize","minorLabelHeight","minorCharHeight","majorLabelHeight","majorCharHeight","minorLineHeight","minorLineWidth","majorLineHeight","majorLineWidth","foregroundNextSibling","nextSibling","backgroundNextSibling","_repaintLabels","timeLabelsize","minorCharWidth","xNext","nextIsMajor","prevWidth","labelMinor","xFirstMajorLabel","MAX","showMinorGrid","_repaintMinorText","_repaintMajorText","_repaintMajorLine","_repaintMinorLine","warnedForOverflow","leftTime","leftText","widthText","majorCharWidth","pop","createTextNode","childNodes","nodeValue","measureCharMinor","measureCharMajor","overlay","_onTapOverlay","onClick","_hasParent","deactivate","escListener","activate","eventParams","warned","substring","showCurrentTime","currentTimeTimer","boolean","any","function","null","groupsDraggable","linegraph","initialLoad","getLegend","isGroupVisible","yAxisLeft","yAxisRight","legendLeft","legendRight","screenToValue","yAxisOrientation","defaultGroup","sampling","graphHeight","shaded","barChart","sideBySide","interpolation","parametrization","dataAxis","legend","abortedGraphUpdate","updateSVGheight","updateSVGheightOnResize","forceGraphUpdate","lastStart","svgElements","groupsUsingDefaultStyles","svg","framework","Bars","Lines","Points","_removeGroup","_updateAllGroupData","removeGroup","_updateGroup","addGroup","groupsContent","groupCounts","extended","orginalY","_updateGraph","rangePerPixelInv","_getSortedGroupIds","grouplist","zIndex","bz","groupRanges","changeCalled","minDate","maxDate","_getRelevantData","_applySampling","_convertXcoordinates","_getYRanges","_updateYAxis","below","excludeFromStacking","_stack","_convertYcoordinates","calcPath","subGroupId","drawShading","subData","subPrevPoint","subNextPoint","dateComparator","first","dataContainer","increment","amountOfPoints","xDistance","pointsPerPixel","sampledData","combinedDataLeft","combinedDataRight","getYRange","getStackedYRange","minVal","maxVal","yAxisLeftUsed","yAxisRightUsed","minLeft","minRight","maxLeft","maxRight","ignore","_toggleAxisVisiblity","drawIcons","master","masterAxis","lineOffset","tempGroups","axisUsed","datapoints","screen_x","screen_y","svgHeight","convertValue","setZeroPosition","linegraphOptions","icons","majorLinesOffset","minorLinesOffset","labelOffsetX","labelOffsetY","iconWidth","alignZeros","linegraphSVG","DOMelements","labels","conversionFactor","minWidth","stepPixels","zeroCrossing","amountOfSteps","iconsRemoved","amountOfGroups","lineContainer","graphOptions","_redrawGroupIcons","iconHeight","iconOffset","groupArray","_cleanupIcons","activeGroups","_redrawLabels","_redrawTitle","customRange","autoScaleEnd","autoScaleStart","followScale","maxLabelSize","getLines","major","_redrawLabel","_redrawLine","titleWidth","titleCharHeight","characterHeight","largestWidth","textMinor","textMajor","textTitle","measureCharTitle","titleCharWidth","zeroAlign","formattingFunction","majorSteps","minorSteps","customLines","minorStepIdx","magnitudefactor","determineScale","rounded","setCharHeight","setHeight","minimumStepValue","orderOfMagnitude","solutionFound","stepSize","is_major","getFirstMajor","majorStep","formatValue","bottomOffset","oldStepIdx","oldStart","oldEnd","increaseMagnitude","decreaseMagnitude","otherZero","otherStep","newRange","myOriginalZero","majorOffset","zeroOffset","pixels","usingDefaultStyle","zeroPosition","drawIcon","icon","Bargraph","fillHeight","outline","barWidth","originalWidth","bar1Height","bar2Height","processedGroupData","coreDistance","drawData","combinedData","intersections","barPoints","_getDataIntersections","heightOffset","_getSafeDrawData","amount","resolved","accumulatedNegative","accumulatedPositive","pointData","groupLabel","_getStackedYRange","xpos","getGroupTemplate","callbackResult","getCallback","Line","_catmullRom","_linear","fillPath","pathArray","subPathArray","dFill","zero","serializePath","inverse","_catmullRomUniform","p0","bp1","bp2","normalization","d1","d2","d3","A","N","d3powA","d2powA","d3pow2A","d2pow2A","d1pow2A","d1powA","side","iconSize","iconSpacing","excludeFromLegend","textArea","scrollableHeight","drawLegendIcons","paddingTop","Network","network","Images","dotparser","gephiParser","convertDot","DOTToGraph","convertGephi","parseGephi","nodes","nodeIndices","edges","edgeIndices","eventListeners","onTap","onDoubleTap","onHold","onDragStart","onDrag","onDragEnd","onPinch","onMouseMove","onContext","functions","createNode","createEdge","view","bindEventListeners","images","_Images2","_Groups2","_Canvas2","selectionHandler","_SelectionHandler2","interactionHandler","_InteractionHandler2","_View2","renderer","_CanvasRenderer2","_PhysicsEngine2","layoutEngine","_LayoutEngine2","clustering","_Clustering2","manipulation","_ManipulationSystem2","nodesHandler","_NodesHandler2","edgesHandler","_EdgesHandler2","_KamadaKawai2","_Images","_Groups","_NodesHandler","_EdgesHandler","_PhysicsEngine","_Clustering","_CanvasRenderer","_Canvas","_View","_InteractionHandler","_SelectionHandler","_LayoutEngine","_ManipulationSystem","_KamadaKawai","layout","interaction","networkOptions","_updateVisibleIndices","nodeId","edgeId","_updateValueRange","unselectAll","dotData","gephi","gephiData","valueTotal","setValueRange","canvasToDOM","DOMtoCanvas","findNode","isCluster","openCluster","cluster","getNodesInCluster","clusterByConnection","clusterByHubsize","clusterOutliers","getSeed","enableEditMode","disableEditMode","addNodeMode","editNode","editNodeMode","addEdgeMode","editEdgeMode","deleteSelected","getPositions","storePositions","moveNode","getBoundingBox","getConnectedNodes","objectId","getConnectedEdges","startSimulation","stopSimulation","stabilize","getSelectedNodes","getSelectedEdges","getNodeAt","getEdgeAt","edge","selectNodes","selectEdges","getViewPosition","releaseNode","getOptionsFromConfigurator","imageBroken","url","imageToCache","brokenUrl","imageToLoadBrokenUrlOn","onerror","_addImageToCache","Image","imageToRedrawWith","cachedImage","img","onload","_redrawWithImage","_tryloadBrokenUrl","Groups","defaultIndex","groupsArray","defaultGroups","useDefaultGroups","optionFields","groupName","groupname","_index","_Node","_Node2","_Label","_Label2","NodesHandler","nodesListeners","borderWidthSelected","brokenImage","fixed","face","strokeColor","image","labelHighlightBold","level","mass","scaling","maxVisible","drawThreshold","customScalingFunction","shadow","shape","shapeProperties","borderDashes","useImageSize","useBorderWithImage","parseOptions","updateShape","updateLabelModule","_reset","_nodeId2","doNotEmit","oldNodesData","newNodes","positionInitially","changedData","dataChanged","constructorClass","clearPositions","dataArray","_node","_node2","boundingBox","nodeList","nodeObj","toId","fromId","edgeList","_Box","_Box2","_Circle","_Circle2","_CircularImage","_CircularImage2","_Database","_Database2","_Diamond","_Diamond2","_Dot","_Dot2","_Ellipse","_Ellipse2","_Icon","_Icon2","_Image","_Image2","_Square","_Square2","_Star","_Star2","_Text","_Text2","_Triangle","_Triangle2","_TriangleDown","_TriangleDown2","Node","imagelist","baseSize","baseFontSize","predefinedPosition","labelModule","currentShape","groupObj","imageObj","load","distanceToBorder","sizeDiff","fontDiff","updateBoundingBox","resize","parentOptions","newOptions","parsedColor","_slicedToArray","sliceIterator","_arr","_n","_e","_s","Label","edgelabel","pointToSelf","fontOptions","yLine","isEdgeLabel","nodeOptions","labelDirty","baseline","viewFontSize","calculateLabelSize","_drawBackground","_drawText","lineMargin","fontSize","_getColor2","_getColor","_getColor3","fontColor","_setAlignment2","_setAlignment","_setAlignment3","lineCount","strokeText","_processLabel","measureText","newOptionsArray","_possibleConstructorReturn","ReferenceError","_inherits","subClass","superClass","setPrototypeOf","__proto__","_NodeBase2","_NodeBase3","Box","_NodeBase","getPrototypeOf","textSize","getTextSize","selectionLineWidth","roundRect","enableShadow","disableShadow","save","enableBorderDashes","disableBorderDashes","restore","NodeBase","shadowColor","shadowBlur","shadowOffsetX","shadowOffsetY","setLineDash","dashes","_CircleImageBase2","_CircleImageBase3","Circle","_CircleImageBase","diameter","_drawRawCircle","CircleImageBase","labelOffset","imageLoaded","ratio","neutralborderWidth","globalAlpha","can2","ctx2","drawImage","iterations","labelDimensions","CircularImage","_swapToImageResizeWhenImageLoaded","_resizeImage","clip","_drawImageAtPosition","_drawImageLabel","Database","database","_distanceToBorder","_ShapeBase2","_ShapeBase3","Diamond","_ShapeBase","_resizeShape","_drawShape","ShapeBase","sizeMultiplier","Dot","Ellipse","ellipse","Icon","_icon","iconTextSpacing","Square","Star","Text","Triangle","TriangleDown","_Edge","_Edge2","EdgesHandler","edgesListeners","arrows","scaleFactor","arrowStrikethrough","hoverWidth","selectionWidth","selfReferenceSize","smooth","forceDirection","roundness","emitChange","edgeData","edgeOptions","reconnectEdges","markAllEdgesAsDirty","updateEdgeType","_edgeId","oldEdgesData","edgesData","oldEdge","disconnect","showInternalIds","connect","cleanup","edgeType","colorDirty","_CubicBezierEdge","_CubicBezierEdge2","_BezierEdgeDynamic","_BezierEdgeDynamic2","_BezierEdgeStatic","_BezierEdgeStatic2","_StraightEdge","_StraightEdge2","Edge","baseWidth","connected","_setInteractionWidths","changeInType","attachEdge","detachEdge","widthDiff","viaNode","getViaNode","arrowData","fromPoint","toPoint","getArrowData","core","drawLine","drawArrows","drawLabel","drawArrowHead","node1","node2","getPoint","translate","_rotateForLabelAlignment","_pointOnCircle","xFrom","yFrom","xTo","yTo","xObj","yObj","getDistanceToEdge","angleInDegrees","rotate","percentage","colorsDefined","_CubicBezierEdgeBase2","_CubicBezierEdgeBase3","CubicBezierEdge","_CubicBezierEdgeBase","viaNodes","via1","via2","bezierCurveTo","x1","y1","x2","y2","_getViaCoordinates","nearNode","_findBorderPositionBezier","x3","y3","_ref","_ref2","_getDistanceToBezierEdge","_ref3","_ref4","vec","_BezierEdgeBase2","_BezierEdgeBase3","CubicBezierEdgeBase","_BezierEdgeBase","minDistance","lastX","lastY","_getDistanceToLine","_EdgeBase2","_EdgeBase3","BezierEdgeBase","_EdgeBase","distanceToPoint","difference","via","EdgeBase","getColor","getLineWidth","_drawDashedLine","_drawLine","_line","_getCircleData2","_getCircleData","_getCircleData3","_circle","pattern","lineDashOffset","_getCircleData4","_getCircleData5","dashedLine","_getCircleData6","_getCircleData7","_x","_y","_radius","_findBorderPosition","_findBorderPositionCircle","_getCircleData8","_getCircleData9","colorOptions","grd","createLinearGradient","fromColor","toColor","addColorStop","_getDistanceToEdge","_getCircleData10","_getCircleData11","px","py","something","u","arrowPoint","guideOffset","findBorderPosition","guidePos","_getCircleData12","_getCircleData13","xi","yi","arrowCore","arrow","BezierEdgeDynamic","_boundFunction","positionBezierNode","physicsChange","setupSupportNode","parentEdgeId","quadraticCurveTo","BezierEdgeStatic","xVia","yVia","pi","originalAngle","myAngle","_pi","_originalAngle","_myAngle","StraightEdge","edgeSegmentLength","toBorderDist","toBorderPoint","borderPos","_BarnesHutSolver","_BarnesHutSolver2","_RepulsionSolver","_RepulsionSolver2","_HierarchicalRepulsionSolver","_HierarchicalRepulsionSolver2","_SpringSolver","_SpringSolver2","_HierarchicalSpringSolver","_HierarchicalSpringSolver2","_CentralGravitySolver","_CentralGravitySolver2","_FA2BasedRepulsionSolver","_FA2BasedRepulsionSolver2","_FA2BasedCentralGravitySolver","_FA2BasedCentralGravitySolver2","PhysicsEngine","physicsBody","physicsNodeIndices","physicsEdgeIndices","forces","velocities","physicsEnabled","simulationInterval","requiresTimeout","previousStates","referenceState","freezeCache","renderTimer","adaptiveTimestep","adaptiveTimestepEnabled","adaptiveCounter","adaptiveInterval","stabilized","startedStabilization","stabilizationIterations","ready","barnesHut","theta","gravitationalConstant","centralGravity","springLength","springConstant","damping","avoidOverlap","forceAtlas2Based","repulsion","nodeDistance","hierarchicalRepulsion","maxVelocity","minVelocity","stabilization","updateInterval","onlyDynamicEdges","timestep","layoutFailed","initPhysics","updatePhysicsData","nodesSolver","edgesSolver","gravitySolver","modelOptions","viewFunction","simulationStep","_emitStabilized","startTime","physicsTick","physicsTime","runDoubleSpeed","amountOfIterations","calculateForces","moveNodes","revert","_evaluateStepQuality","nodeIds","positions","vx","vy","dpos","reference","maxNodeVelocity","averageNodeVelocity","velocityAdaptiveThreshold","nodeVelocity","_performStep","totalVelocity","solve","targetIterations","_freezeNodes","_stabilizationBatch","_finalizeStabilization","_restoreFrozenNodes","colorFactor","forceSize","arrowSize","BarnesHutSolver","barnesHutTree","randomSeed","thetaInversed","overlapAvoidanceFactor","nodeCount","_formBarnesHutTree","_getForceContribution","NW","NE","SW","SE","parentBranch","childrenCount","centerOfMass","calcSize","_calculateForces","gravityForce","fx","fy","minX","minY","maxX","maxY","minimumTreeSize","rootSize","halfRootSize","_splitBranch","_placeInTree","totalMass","totalMassInv","biggestSize","skipMassUpdate","_updateBranchMass","_placeInRegion","region","seededRandom","containedNode","_insertRegion","childSize","_drawBranch","branch","RepulsionSolver","repulsingForce","HierarchicalRepulsionSolver","steepness","SpringSolver","edgeLength","node3","_calculateSpringForce","springForce","HierarchicalSpringSolver","springFx","springFy","_i2","totalFx","totalFy","_i3","correctionFx","correctionFy","_i4","_nodeId3","CentralGravitySolver","_BarnesHutSolver3","ForceAtlas2BasedRepulsionSolver","degree","_CentralGravitySolver3","ForceAtlas2BasedCentralGravitySolver","_NetworkUtil","_NetworkUtil2","_Cluster","_Cluster2","ClusterEngine","clusteredNodes","clusteredEdges","hubsize","_getHubSize","_checkOptions","nodesToCluster","refreshData","joinCondition","childNodesObj","childEdgesObj","clonedOptions","cloneOptions","_cluster","edgeCount","clusters","usedNodes","relevantEdgeCount","gatheringSuccessful","childNodeId","_getConnectedId","clusterByEdgeCount","clusterNodeProperties","parentNodeId","parentClonedOptions","childClonedOptions","clusterEdgeProperties","childNode","otherNodeId","childKeys","createEdges","_edge","newEdge","clusteringEdgeReplacingId","_backupEdgeOptions","processProperties","childNodesOptions","childEdgesOptions","_clonedOptions","clusterId","_getClusterPosition","clusterNode","containedNodes","containedEdges","_createClusterEdges","originalOptions","clusterNodeId","releaseFunction","clusterPosition","newPositions","_containedNode","_nodeId4","_containedNode2","_nodeId5","_containedNode3","edgesToBeDeleted","otherCluster","transferEdge","replacedEdge","_restoreEdge","nodesArray","reverse","average","averageSquared","hubCounter","largestHub","variance","standardDeviation","hubThreshold","NetworkUtil","allNodes","specificNodes","amountOfConnections","_Node3","Cluster","requestAnimationFrame","mozRequestAnimationFrame","webkitRequestAnimationFrame","msRequestAnimationFrame","CanvasRenderer","redrawRequested","renderingActive","renderRequests","allowRedraw","hideEdgesOnDrag","hideNodesOnDrag","_determineBrowserMethod","_resizeNodes","_requestRedraw","_startRendering","cancelAnimationFrame","_renderStep","_drawEdges","_drawNodes","alwaysShow","topLeft","bottomRight","viewableArea","isSelected","isBoundingBoxOverlappingWith","browserType","Canvas","resizeTimer","resizeFunction","cameraState","hammerFrame","_cleanUp","previousWidth","previousHeight","widthRatio","heightRatio","newScale","currentViewCenter","distanceFromCenter","tabIndex","_prepareValue","emitEvent","oldWidth","oldHeight","previousRatio","_getCameraState","_setCameraState","_XconvertCanvasToDOM","_YconvertCanvasToDOM","_XconvertDOMtoCanvas","_YconvertDOMtoCanvas","View","animationSpeed","renderRefreshRate","animationEasingFunction","easingTime","sourceScale","targetScale","sourceTranslation","targetTranslation","lockedOnNodeId","lockedOnNodeOffset","touchTime","initialZoom","zoomLevel","positionDefined","numberOfNodes","yDistance","xZoomLevel","yZoomLevel","findCenter","animationOptions","nodePosition","lockedOnNode","animateView","locked","_transitionRedraw","viewCenter","_lockedRedraw","finished","_NavigationHandler","_NavigationHandler2","_Popup","_Popup2","InteractionHandler","navigationHandler","popup","popupObj","popupTimer","dragNodes","dragView","keyboard","speed","bindToWindow","navigationButtons","tooltipDelay","zoomView","pinched","checkSelectionChanges","_generateClickEvent","previouslySelectedEdgeCount","_getSelectedEdgeCount","previouslySelectedNodeCount","_getSelectedNodeCount","previousSelection","selectAdditionalOnPoint","selectOnPoint","selectedEdgesCount","selectedNodesCount","currentSelection","_determineIfDifferent2","_determineIfDifferent","nodesChanged","edgesChanged","nodeSelected","selectObject","selectionObj","xFixed","yFixed","scaleOld","preScaleDragPointer","scaleFrac","tx","ty","postScaleDragPointer","popupVisible","_checkHidePopup","setPosition","_checkShowPopup","hoverObject","pointerObj","previousPopupObjId","nodeUnderCursor","popupType","overlappingNodes","isOverlappingWith","getTitle","overlappingEdges","popupTargetType","popupTargetId","setText","_pointerToPositionObject","stillOnObj","overNode","NavigationHandler","iconsCreated","navigationHammers","boundFunctions","activated","configureKeyboardBindings","loadNavigationElements","cleanNavigation","navigationDOM","navigationDivs","navigationDivActions","_fit","bindToRedraw","_stopMovement","boundAction","unbindFromRedraw","Popup","doShow","SelectionHandler","hoverObj","selectConnectedEdges","hoverConnectedEdges","updateSelection","selectionChanged","deselectObject","emptySelection","DOM","highlightEdges","_selectConnectedEdges","_addToSelection","_removeFromSelection","canvasPos","returnNode","positionObject","_getAllNodesOverlappingWith","_getEdgesOverlappingWith","returnEdge","_getAllEdgesOverlappingWith","_unselectConnectedEdges","clusterSize","_addToHover","hoverChanged","blurObject","_hoverConnectedEdges","edgeIds","idArray","RangeError","LayoutEngine","initialRandomSeed","setPhysics","optionsBackup","improvedLayout","hierarchical","levelSeparation","nodeSpacing","treeSpacing","blockShifting","edgeMinimization","parentCentralization","sortMethod","setupHierarchicalLayout","layoutNetwork","prevHierarchicalState","adaptAllOptionsForHierarchicalLayout","MAX_LEVELS","clusterThreshold","startLength","before","clusterBridges","after","_declusterAll","info","kamadaKawai","_shiftToCenter","getRangeCore","clustersPresent","definedLevel","definedPositions","undefinedLevel","hierarchicalLevels","lastNodeOnLevel","hierarchicalChildrenReference","hierarchicalParentReference","hierarchicalTrees","treeIndex","distributionOrdering","distributionIndex","distributionOrderingPresence","_determineLevelsByHubsize","_determineLevelsDirected","_determineLevelsCustomCallback","distribution","_getDistribution","_generateMap","_placeNodesByHierarchy","_condenseHierarchy","stillShifting","branches","shiftTrees","treeSizes","getTreeSizes","shiftTree","_getPositionForHierarchy","_setPositionForHierarchy","getTreeSize","treeWidths","getBranchNodes","getBranchBoundary","branchMap","maxLevel","minSpace","maxSpace","branchNode","_getSpaceAroundNode2","_getSpaceAroundNode","_getSpaceAroundNode3","minSpaceNode","maxSpaceNode","getMaxLevel","getCollisionLevel","maxLevel1","maxLevel2","hasSameParent","parents1","parents2","shiftElementsCloser","levels","centerParents","levelNodes","branchShiftCallback","centerParent","diffAbs","branchNodes1","branchNodes2","_getBranchBoundary","_getBranchBoundary2","max1","_getBranchBoundary3","_getBranchBoundary4","min2","minSpace2","diffBranch","_shiftBlock","_centerParent","minimizeEdgeLength","allEdges","nodeLevel","C2","referenceNodes","aboveEdges","otherNode","getFx","getDFx","getGuess","guess","guessMap","dfx","moveBranch","branchNodes","_getBranchBoundary5","_getBranchBoundary6","minSpaceBranch","maxSpaceBranch","branchOffset","_getSpaceAroundNode4","_getSpaceAroundNode5","newPosition","minimizeEdgeLengthBottomUp","shiftBranchesCloserBottomUp","centerAllParents","centerAllParentsBottomUp","useMap","prevNode","prevPos","nextNode","nextPos","parents","parentId","minPos","maxPos","_i5","_getSpaceAroundNode6","_getSpaceAroundNode7","positionedNodes","nodeArray","_indexArrayToNodes","_sortNodeArray","handledNodeCount","_validataPositionAndContinue","parentLevel","_i6","childNodeLevel","_i7","previousPos","sharedParent","_findCommonParent","withChild","_placeBranchNodes","hubSize","levelDownstream","nodeA","nodeB","_crawlNetwork","minLevel","customCallback","levelByDirection","levelA","_setMinLevelToZero","fillInRelations","_this7","startingNodeId","crawler","tree","childA","childB","_this8","iterateParents","findParent","foundParent","doNotUpdate","ManipulationSystem","editMode","manipulationDiv","editModeDiv","closeDiv","manipulationHammers","temporaryUIFunctions","temporaryEventFunctions","temporaryIds","guiEnabled","inMode","selectedControlNode","initiallyActive","addNode","addEdge","editEdge","deleteNode","deleteEdge","controlNodeStyle","_restore","_setup","showManipulatorToolbar","_createEditButton","manipulationDOM","selectedNodeCount","selectedEdgeCount","selectedTotalCount","needSeperator","_createAddNodeButton","_createSeperator","_createAddEdgeButton","_createEditNodeButton","_createEditEdgeButton","_createDeleteButton","_bindHammerToDiv","toggleEditMode","_temporaryBindEvent","_createBackButton","_createDescription","_performAddNode","_getSelectedNode","finalizedData","_temporaryBindUI","_handleConnect","_finishConnect","_dragControlNode","edgeBeingEditedId","controlNodeFrom","_getNewTargetNode","controlNodeTo","_controlNodeTouch","_controlNodeDragStart","_controlNodeDrag","_controlNodeDragEnd","findBorderPositions","selectedNodes","selectedEdges","deleteFunction","_createWrappers","_removeManipulationDOM","_createButton","_cleanManipulatorHammers","_cleanupTemporaryNodesAndEdges","_unbindTemporaryUIs","_unbindTemporaryEvents","deleteBtnClass","labelClassName","newFunction","boundFunction","UIfunctionName","functionName","eventName","domElement","indexTempEdge","indexTempNode","lastTouch","fromSelect","toSelect","overlappingNodeIds","_performEditEdge","targetNode","connectionEdge","connectFromId","_performAddEdge","clickData","defaultData","sourceNodeId","targetNodeId","_FloydWarshall","_FloydWarshall2","KamadaKawai","edgeStrength","distanceSolver","edgesArray","ignoreClusters","D_matrix","getDistances","_createL_matrix","_createK_matrix","innerThreshold","maxInnerIterations","maxEnergy","highE_nodeId","dE_dx","dE_dy","delta_m","subIterations","_getHighestEnergyNode2","_getHighestEnergyNode","_getHighestEnergyNode3","_moveNode","_getEnergy2","_getEnergy","_getEnergy3","maxEnergyNodeId","dE_dx_max","dE_dy_max","nodeIdx","_getEnergy4","_getEnergy5","x_m","y_m","iIdx","x_i","y_i","denominator","K_matrix","L_matrix","d2E_dx2","d2E_dxdy","d2E_dy2","FloydWarshall","CanvasRenderingContext2D","square","s2","ir","triangleDown","star","diamond","r2d","kappa","ox","oy","xe","ye","xm","ym","wEllipse","hEllipse","ymb","yeb","xt","yt","xl","yl","xr","yr","patternLength","slope","distRemaining","patternIndex","dashLength","parseDOT","parseGraph","nextPreview","isAlphaNumeric","regexAlphaNumeric","setValue","graphs","attr","getToken","tokenType","TOKENTYPE","NULL","isComment","DELIMITER","c2","DELIMITERS","IDENTIFIER","newSyntaxError","UNKNOWN","chop","parseStatements","parseStatement","subgraph","parseSubgraph","parseEdge","parseAttributeStatement","parseNodeStatement","subgraphs","parseAttributeList","maxLength","forEach2","elem1","elem2","setProp","convertAttr","mapping","visProp","visPropI","graphData","dotNode","graphNode","NODE_ATTR_MAPPING","convertEdge","dotEdge","graphEdge","EDGE_ATTR_MAPPING","subEdge","fontsize","fontcolor","labelfontcolor","fontname","fillcolor","labeltooltip","{","}","[","]",";","=",",","->","--","gephiJSON","inheritColor","gEdges","gNodes","gEdge","gNode","edit","del","back","addDescription","edgeDescription","editEdgeDescription","createEdgeError","deleteClusterError","editClusterError"],"mappings":"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","file":"vis.map"} \ No newline at end of file diff --git a/dist/vis.min.js b/dist/vis.min.js index be1d1503..84d38998 100644 --- a/dist/vis.min.js +++ b/dist/vis.min.js @@ -5,7 +5,7 @@ * A dynamic, browser-based visualization library. * * @version 4.15.2-SNAPSHOT - * @date 2016-04-05 + * @date 2016-04-06 * * @license * Copyright (C) 2011-2016 Almende B.V, http://almende.com @@ -22,24 +22,24 @@ * * Vis.js may be distributed under either license. */ -"use strict";!function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?exports.vis=e():t.vis=e()}(this,function(){return function(t){function e(o){if(i[o])return i[o].exports;var n=i[o]={exports:{},id:o,loaded:!1};return t[o].call(n.exports,n,n.exports,e),n.loaded=!0,n.exports}var i={};return e.m=t,e.c=i,e.p="",e(0)}([function(t,e,i){e.util=i(1),e.DOMutil=i(7),e.DataSet=i(8),e.DataView=i(10),e.Queue=i(9),e.Graph3d=i(11),e.graph3d={Camera:i(15),Filter:i(16),Point2d:i(14),Point3d:i(13),Slider:i(17),StepNumber:i(18)},e.Timeline=i(19),e.Graph2d=i(48),e.timeline={Core:i(30),DateUtil:i(29),Range:i(27),stack:i(34),TimeStep:i(32),components:{items:{Item:i(36),BackgroundItem:i(40),BoxItem:i(38),PointItem:i(39),RangeItem:i(35)},BackgroundGroup:i(37),Component:i(28),CurrentTime:i(46),CustomTime:i(44),DataAxis:i(50),DataScale:i(51),GraphGroup:i(52),Group:i(33),ItemSet:i(31),Legend:i(56),LineGraph:i(49),TimeAxis:i(41)}},e.Network=i(58),e.network={Images:i(59),dotparser:i(115),gephiParser:i(116),allOptions:i(111)},e.network.convertDot=function(t){return e.network.dotparser.DOTToGraph(t)},e.network.convertGephi=function(t,i){return e.network.gephiParser.parseGephi(t,i)},e.moment=i(2),e.Hammer=i(22),e.keycharm=i(43)},function(t,e,i){var o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol?"symbol":typeof t},n=i(2),s=i(6);e.isNumber=function(t){return t instanceof Number||"number"==typeof t},e.recursiveDOMDelete=function(t){if(t)for(;t.hasChildNodes()===!0;)e.recursiveDOMDelete(t.firstChild),t.removeChild(t.firstChild)},e.giveRange=function(t,e,i,o){if(e==t)return.5;var n=1/(e-t);return Math.max(0,(o-t)*n)},e.isString=function(t){return t instanceof String||"string"==typeof t},e.isDate=function(t){if(t instanceof Date)return!0;if(e.isString(t)){var i=r.exec(t);if(i)return!0;if(!isNaN(Date.parse(t)))return!0}return!1},e.randomUUID=function(){return s.v4()},e.assignAllKeys=function(t,e){for(var i in t)t.hasOwnProperty(i)&&"object"!==o(t[i])&&(t[i]=e)},e.fillIfDefined=function(t,i){var n=arguments.length<=2||void 0===arguments[2]?!1:arguments[2];for(var s in t)void 0!==i[s]&&("object"!==o(i[s])?void 0!==i[s]&&null!==i[s]||void 0===t[s]||n!==!0?t[s]=i[s]:delete t[s]:"object"===o(t[s])&&e.fillIfDefined(t[s],i[s],n))},e.protoExtend=function(t,e){for(var i=1;ii;i++)if(t[i]!=e[i])return!1;return!0},e.convert=function(t,i){var o;if(void 0!==t){if(null===t)return null;if(!i)return t;if("string"!=typeof i&&!(i instanceof String))throw new Error("Type must be a string");switch(i){case"boolean":case"Boolean":return Boolean(t);case"number":case"Number":return Number(t.valueOf());case"string":case"String":return String(t);case"Date":if(e.isNumber(t))return new Date(t);if(t instanceof Date)return new Date(t.valueOf());if(n.isMoment(t))return new Date(t.valueOf());if(e.isString(t))return o=r.exec(t),o?new Date(Number(o[1])):n(t).toDate();throw new Error("Cannot convert object of type "+e.getType(t)+" to type Date");case"Moment":if(e.isNumber(t))return n(t);if(t instanceof Date)return n(t.valueOf());if(n.isMoment(t))return n(t);if(e.isString(t))return o=r.exec(t),n(o?Number(o[1]):t);throw new Error("Cannot convert object of type "+e.getType(t)+" to type Date");case"ISODate":if(e.isNumber(t))return new Date(t);if(t instanceof Date)return t.toISOString();if(n.isMoment(t))return t.toDate().toISOString();if(e.isString(t))return o=r.exec(t),o?new Date(Number(o[1])).toISOString():new Date(t).toISOString();throw new Error("Cannot convert object of type "+e.getType(t)+" to type ISODate");case"ASPDate":if(e.isNumber(t))return"/Date("+t+")/";if(t instanceof Date)return"/Date("+t.valueOf()+")/";if(e.isString(t)){o=r.exec(t);var s;return s=o?new Date(Number(o[1])).valueOf():new Date(t).valueOf(),"/Date("+s+")/"}throw new Error("Cannot convert object of type "+e.getType(t)+" to type ASPDate");default:throw new Error('Unknown type "'+i+'"')}}};var r=/^\/?Date\((\-?\d+)/i;e.getType=function(t){var e="undefined"==typeof t?"undefined":o(t);return"object"==e?null===t?"null":t instanceof Boolean?"Boolean":t instanceof Number?"Number":t instanceof String?"String":Array.isArray(t)?"Array":t instanceof Date?"Date":"Object":"number"==e?"Number":"boolean"==e?"Boolean":"string"==e?"String":void 0===e?"undefined":e},e.copyAndExtendArray=function(t,e){for(var i=[],o=0;oi;i++)e(t[i],i,t);else for(i in t)t.hasOwnProperty(i)&&e(t[i],i,t)},e.toArray=function(t){var e=[];for(var i in t)t.hasOwnProperty(i)&&e.push(t[i]);return e},e.updateProperty=function(t,e,i){return t[e]!==i?(t[e]=i,!0):!1},e.throttle=function(t,e){var i=null,o=!1;return function n(){i?o=!0:(o=!1,t(),i=setTimeout(function(){i=null,o&&n()},e))}},e.addEventListener=function(t,e,i,o){t.addEventListener?(void 0===o&&(o=!1),"mousewheel"===e&&navigator.userAgent.indexOf("Firefox")>=0&&(e="DOMMouseScroll"),t.addEventListener(e,i,o)):t.attachEvent("on"+e,i)},e.removeEventListener=function(t,e,i,o){t.removeEventListener?(void 0===o&&(o=!1),"mousewheel"===e&&navigator.userAgent.indexOf("Firefox")>=0&&(e="DOMMouseScroll"),t.removeEventListener(e,i,o)):t.detachEvent("on"+e,i)},e.preventDefault=function(t){t||(t=window.event),t.preventDefault?t.preventDefault():t.returnValue=!1},e.getTarget=function(t){t||(t=window.event);var e;return t.target?e=t.target:t.srcElement&&(e=t.srcElement),void 0!=e.nodeType&&3==e.nodeType&&(e=e.parentNode),e},e.hasParent=function(t,e){for(var i=t;i;){if(i===e)return!0;i=i.parentNode}return!1},e.option={},e.option.asBoolean=function(t,e){return"function"==typeof t&&(t=t()),null!=t?0!=t:e||null},e.option.asNumber=function(t,e){return"function"==typeof t&&(t=t()),null!=t?Number(t)||e||null:e||null},e.option.asString=function(t,e){return"function"==typeof t&&(t=t()),null!=t?String(t):e||null},e.option.asSize=function(t,i){return"function"==typeof t&&(t=t()),e.isString(t)?t:e.isNumber(t)?t+"px":i||null},e.option.asElement=function(t,e){return"function"==typeof t&&(t=t()),t||e||null},e.hexToRGB=function(t){var e=/^#?([a-f\d])([a-f\d])([a-f\d])$/i;t=t.replace(e,function(t,e,i,o){return e+e+i+i+o+o});var i=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(t);return i?{r:parseInt(i[1],16),g:parseInt(i[2],16),b:parseInt(i[3],16)}:null},e.overrideOpacity=function(t,i){if(-1!=t.indexOf("rgba"))return t;if(-1!=t.indexOf("rgb")){var o=t.substr(t.indexOf("(")+1).replace(")","").split(",");return"rgba("+o[0]+","+o[1]+","+o[2]+","+i+")"}var o=e.hexToRGB(t);return null==o?t:"rgba("+o.r+","+o.g+","+o.b+","+i+")"},e.RGBToHex=function(t,e,i){return"#"+((1<<24)+(t<<16)+(e<<8)+i).toString(16).slice(1)},e.parseColor=function(t){var i;if(e.isString(t)===!0){if(e.isValidRGB(t)===!0){var o=t.substr(4).substr(0,t.length-5).split(",").map(function(t){return parseInt(t)});t=e.RGBToHex(o[0],o[1],o[2])}if(e.isValidHex(t)===!0){var n=e.hexToHSV(t),s={h:n.h,s:.8*n.s,v:Math.min(1,1.02*n.v)},r={h:n.h,s:Math.min(1,1.25*n.s),v:.8*n.v},a=e.HSVToHex(r.h,r.s,r.v),h=e.HSVToHex(s.h,s.s,s.v);i={background:t,border:a,highlight:{background:h,border:a},hover:{background:h,border:a}}}else i={background:t,border:t,highlight:{background:t,border:t},hover:{background:t,border:t}}}else i={},i.background=t.background||void 0,i.border=t.border||void 0,e.isString(t.highlight)?i.highlight={border:t.highlight,background:t.highlight}:(i.highlight={},i.highlight.background=t.highlight&&t.highlight.background||void 0,i.highlight.border=t.highlight&&t.highlight.border||void 0),e.isString(t.hover)?i.hover={border:t.hover,background:t.hover}:(i.hover={},i.hover.background=t.hover&&t.hover.background||void 0,i.hover.border=t.hover&&t.hover.border||void 0);return i},e.RGBToHSV=function(t,e,i){t/=255,e/=255,i/=255;var o=Math.min(t,Math.min(e,i)),n=Math.max(t,Math.max(e,i));if(o==n)return{h:0,s:0,v:o};var s=t==o?e-i:i==o?t-e:i-t,r=t==o?3:i==o?1:5,a=60*(r-s/(n-o))/360,h=(n-o)/n,d=n;return{h:a,s:h,v:d}};var a={split:function(t){var e={};return t.split(";").forEach(function(t){if(""!=t.trim()){var i=t.split(":"),o=i[0].trim(),n=i[1].trim();e[o]=n}}),e},join:function(t){return Object.keys(t).map(function(e){return e+": "+t[e]}).join("; ")}};e.addCssText=function(t,i){var o=a.split(t.style.cssText),n=a.split(i),s=e.extend(o,n);t.style.cssText=a.join(s)},e.removeCssText=function(t,e){var i=a.split(t.style.cssText),o=a.split(e);for(var n in o)o.hasOwnProperty(n)&&delete i[n];t.style.cssText=a.join(i)},e.HSVToRGB=function(t,e,i){var o,n,s,r=Math.floor(6*t),a=6*t-r,h=i*(1-e),d=i*(1-a*e),l=i*(1-(1-a)*e);switch(r%6){case 0:o=i,n=l,s=h;break;case 1:o=d,n=i,s=h;break;case 2:o=h,n=i,s=l;break;case 3:o=h,n=d,s=i;break;case 4:o=l,n=h,s=i;break;case 5:o=i,n=h,s=d}return{r:Math.floor(255*o),g:Math.floor(255*n),b:Math.floor(255*s)}},e.HSVToHex=function(t,i,o){var n=e.HSVToRGB(t,i,o);return e.RGBToHex(n.r,n.g,n.b)},e.hexToHSV=function(t){var i=e.hexToRGB(t);return e.RGBToHSV(i.r,i.g,i.b)},e.isValidHex=function(t){var e=/(^#[0-9A-F]{6}$)|(^#[0-9A-F]{3}$)/i.test(t);return e},e.isValidRGB=function(t){t=t.replace(" ","");var e=/rgb\((\d{1,3}),(\d{1,3}),(\d{1,3})\)/i.test(t);return e},e.isValidRGBA=function(t){t=t.replace(" ","");var e=/rgba\((\d{1,3}),(\d{1,3}),(\d{1,3}),(.{1,3})\)/i.test(t);return e},e.selectiveBridgeObject=function(t,i){if("object"==("undefined"==typeof i?"undefined":o(i))){for(var n=Object.create(i),s=0;s0&&e(o,t[n-1])<0;n--)t[n]=t[n-1];t[n]=o}return t},e.mergeOptions=function(t,e,i){var o=(arguments.length<=3||void 0===arguments[3]?!1:arguments[3],arguments.length<=4||void 0===arguments[4]?{}:arguments[4]);if(null===e[i])t[i]=Object.create(o[i]);else if(void 0!==e[i])if("boolean"==typeof e[i])t[i].enabled=e[i];else{void 0===e[i].enabled&&(t[i].enabled=!0);for(var n in e[i])e[i].hasOwnProperty(n)&&(t[i][n]=e[i][n])}},e.binarySearchCustom=function(t,e,i,o){for(var n=1e4,s=0,r=0,a=t.length-1;a>=r&&n>s;){var h=Math.floor((r+a)/2),d=t[h],l=void 0===o?d[i]:d[i][o],c=e(l);if(0==c)return h;-1==c?r=h+1:a=h-1,s++}return-1},e.binarySearchValue=function(t,e,i,o,n){for(var s,r,a,h,d=1e4,l=0,c=0,u=t.length-1,n=void 0!=n?n:function(t,e){return t==e?0:e>t?-1:1};u>=c&&d>l;){if(h=Math.floor(.5*(u+c)),s=t[Math.max(0,h-1)][i],r=t[h][i],a=t[Math.min(t.length-1,h+1)][i],0==n(r,e))return h;if(n(s,e)<0&&n(r,e)>0)return"before"==o?Math.max(0,h-1):h;if(n(r,e)<0&&n(a,e)>0)return"before"==o?h:Math.min(t.length-1,h+1);n(r,e)<0?c=h+1:u=h-1,l++}return-1},e.easingFunctions={linear:function(t){return t},easeInQuad:function(t){return t*t},easeOutQuad:function(t){return t*(2-t)},easeInOutQuad:function(t){return.5>t?2*t*t:-1+(4-2*t)*t},easeInCubic:function(t){return t*t*t},easeOutCubic:function(t){return--t*t*t+1},easeInOutCubic:function(t){return.5>t?4*t*t*t:(t-1)*(2*t-2)*(2*t-2)+1},easeInQuart:function(t){return t*t*t*t},easeOutQuart:function(t){return 1- --t*t*t*t},easeInOutQuart:function(t){return.5>t?8*t*t*t*t:1-8*--t*t*t*t},easeInQuint:function(t){return t*t*t*t*t},easeOutQuint:function(t){return 1+--t*t*t*t*t},easeInOutQuint:function(t){return.5>t?16*t*t*t*t*t:1+16*--t*t*t*t*t}}},function(t,e,i){t.exports="undefined"!=typeof window&&window.moment||i(3)},function(t,e,i){(function(t){!function(e,i){t.exports=i()}(this,function(){function e(){return Qi.apply(null,arguments)}function i(t){Qi=t}function o(t){return t instanceof Array||"[object Array]"===Object.prototype.toString.call(t)}function n(t){return t instanceof Date||"[object Date]"===Object.prototype.toString.call(t)}function s(t,e){var i,o=[];for(i=0;i0)for(i in $i)o=$i[i],n=e[o],p(n)||(t[o]=n);return t}function m(t){f(this,t),this._d=new Date(null!=t._d?t._d.getTime():NaN),to===!1&&(to=!0,e.updateOffset(this),to=!1)}function v(t){return t instanceof m||null!=t&&null!=t._isAMomentObject}function g(t){return 0>t?Math.ceil(t):Math.floor(t)}function y(t){var e=+t,i=0;return 0!==e&&isFinite(e)&&(i=g(e)),i}function b(t,e,i){var o,n=Math.min(t.length,e.length),s=Math.abs(t.length-e.length),r=0;for(o=0;n>o;o++)(i&&t[o]!==e[o]||!i&&y(t[o])!==y(e[o]))&&r++;return r+s}function w(t){e.suppressDeprecationWarnings===!1&&"undefined"!=typeof console&&console.warn&&console.warn("Deprecation warning: "+t)}function _(t,e){var i=!0;return a(function(){return i&&(w(t+"\nArguments: "+Array.prototype.slice.call(arguments).join(", ")+"\n"+(new Error).stack),i=!1),e.apply(this,arguments)},e)}function x(t,e){eo[t]||(w(e),eo[t]=!0)}function k(t){return t instanceof Function||"[object Function]"===Object.prototype.toString.call(t)}function O(t){return"[object Object]"===Object.prototype.toString.call(t)}function M(t){var e,i;for(i in t)e=t[i],k(e)?this[i]=e:this["_"+i]=e;this._config=t,this._ordinalParseLenient=new RegExp(this._ordinalParse.source+"|"+/\d{1,2}/.source)}function D(t,e){var i,o=a({},t);for(i in e)r(e,i)&&(O(t[i])&&O(e[i])?(o[i]={},a(o[i],t[i]),a(o[i],e[i])):null!=e[i]?o[i]=e[i]:delete o[i]);return o}function S(t){null!=t&&this.set(t)}function C(t){return t?t.toLowerCase().replace("_","-"):t}function T(t){for(var e,i,o,n,s=0;s0;){if(o=E(n.slice(0,e).join("-")))return o;if(i&&i.length>=e&&b(n,i,!0)>=e-1)break;e--}s++}return null}function E(e){var i=null;if(!oo[e]&&"undefined"!=typeof t&&t&&t.exports)try{i=io._abbr,!function(){var t=new Error('Cannot find module "./locale"');throw t.code="MODULE_NOT_FOUND",t}(),P(i)}catch(o){}return oo[e]}function P(t,e){var i;return t&&(i=p(e)?z(t):I(t,e),i&&(io=i)),io._abbr}function I(t,e){return null!==e?(e.abbr=t,null!=oo[t]?(x("defineLocaleOverride","use moment.updateLocale(localeName, config) to change an existing locale. moment.defineLocale(localeName, config) should only be used for creating a new locale"),e=D(oo[t]._config,e)):null!=e.parentLocale&&(null!=oo[e.parentLocale]?e=D(oo[e.parentLocale]._config,e):x("parentLocaleUndefined","specified parentLocale is not defined yet")),oo[t]=new S(e),P(t),oo[t]):(delete oo[t],null)}function N(t,e){if(null!=e){var i;null!=oo[t]&&(e=D(oo[t]._config,e)),i=new S(e),i.parentLocale=oo[t],oo[t]=i,P(t)}else null!=oo[t]&&(null!=oo[t].parentLocale?oo[t]=oo[t].parentLocale:null!=oo[t]&&delete oo[t]);return oo[t]}function z(t){var e;if(t&&t._locale&&t._locale._abbr&&(t=t._locale._abbr),!t)return io;if(!o(t)){if(e=E(t))return e;t=[t]}return T(t)}function L(){return Object.keys(oo)}function R(t,e){var i=t.toLowerCase();no[i]=no[i+"s"]=no[e]=t}function A(t){return"string"==typeof t?no[t]||no[t.toLowerCase()]:void 0}function B(t){var e,i,o={};for(i in t)r(t,i)&&(e=A(i),e&&(o[e]=t[i]));return o}function F(t,i){return function(o){return null!=o?(H(this,t,o),e.updateOffset(this,i),this):j(this,t)}}function j(t,e){return t.isValid()?t._d["get"+(t._isUTC?"UTC":"")+e]():NaN}function H(t,e,i){t.isValid()&&t._d["set"+(t._isUTC?"UTC":"")+e](i)}function W(t,e){var i;if("object"==typeof t)for(i in t)this.set(i,t[i]);else if(t=A(t),k(this[t]))return this[t](e);return this}function Y(t,e,i){var o=""+Math.abs(t),n=e-o.length,s=t>=0;return(s?i?"+":"":"-")+Math.pow(10,Math.max(0,n)).toString().substr(1)+o}function G(t,e,i,o){var n=o;"string"==typeof o&&(n=function(){return this[o]()}),t&&(ho[t]=n),e&&(ho[e[0]]=function(){return Y(n.apply(this,arguments),e[1],e[2])}),i&&(ho[i]=function(){return this.localeData().ordinal(n.apply(this,arguments),t)})}function V(t){return t.match(/\[[\s\S]/)?t.replace(/^\[|\]$/g,""):t.replace(/\\/g,"")}function U(t){var e,i,o=t.match(so);for(e=0,i=o.length;i>e;e++)ho[o[e]]?o[e]=ho[o[e]]:o[e]=V(o[e]);return function(n){var s="";for(e=0;i>e;e++)s+=o[e]instanceof Function?o[e].call(n,t):o[e];return s}}function q(t,e){return t.isValid()?(e=X(e,t.localeData()),ao[e]=ao[e]||U(e),ao[e](t)):t.localeData().invalidDate()}function X(t,e){function i(t){return e.longDateFormat(t)||t}var o=5;for(ro.lastIndex=0;o>=0&&ro.test(t);)t=t.replace(ro,i),ro.lastIndex=0,o-=1;return t}function Z(t,e,i){So[t]=k(e)?e:function(t,o){return t&&i?i:e}}function K(t,e){return r(So,t)?So[t](e._strict,e._locale):new RegExp(J(t))}function J(t){return Q(t.replace("\\","").replace(/\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g,function(t,e,i,o,n){return e||i||o||n}))}function Q(t){return t.replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&")}function $(t,e){var i,o=e;for("string"==typeof t&&(t=[t]),"number"==typeof e&&(o=function(t,i){i[e]=y(t)}),i=0;io;o++){if(n=h([2e3,o]),i&&!this._longMonthsParse[o]&&(this._longMonthsParse[o]=new RegExp("^"+this.months(n,"").replace(".","")+"$","i"),this._shortMonthsParse[o]=new RegExp("^"+this.monthsShort(n,"").replace(".","")+"$","i")),i||this._monthsParse[o]||(s="^"+this.months(n,"")+"|^"+this.monthsShort(n,""),this._monthsParse[o]=new RegExp(s.replace(".",""),"i")),i&&"MMMM"===e&&this._longMonthsParse[o].test(t))return o;if(i&&"MMM"===e&&this._shortMonthsParse[o].test(t))return o;if(!i&&this._monthsParse[o].test(t))return o}}function rt(t,e){var i;if(!t.isValid())return t;if("string"==typeof e)if(/^\d+$/.test(e))e=y(e);else if(e=t.localeData().monthsParse(e),"number"!=typeof e)return t;return i=Math.min(t.date(),it(t.year(),e)),t._d["set"+(t._isUTC?"UTC":"")+"Month"](e,i),t}function at(t){return null!=t?(rt(this,t),e.updateOffset(this,!0),this):j(this,"Month")}function ht(){return it(this.year(),this.month())}function dt(t){return this._monthsParseExact?(r(this,"_monthsRegex")||ct.call(this),t?this._monthsShortStrictRegex:this._monthsShortRegex):this._monthsShortStrictRegex&&t?this._monthsShortStrictRegex:this._monthsShortRegex}function lt(t){return this._monthsParseExact?(r(this,"_monthsRegex")||ct.call(this),t?this._monthsStrictRegex:this._monthsRegex):this._monthsStrictRegex&&t?this._monthsStrictRegex:this._monthsRegex}function ct(){function t(t,e){return e.length-t.length}var e,i,o=[],n=[],s=[];for(e=0;12>e;e++)i=h([2e3,e]),o.push(this.monthsShort(i,"")),n.push(this.months(i,"")),s.push(this.months(i,"")),s.push(this.monthsShort(i,""));for(o.sort(t),n.sort(t),s.sort(t),e=0;12>e;e++)o[e]=Q(o[e]),n[e]=Q(n[e]),s[e]=Q(s[e]);this._monthsRegex=new RegExp("^("+s.join("|")+")","i"),this._monthsShortRegex=this._monthsRegex,this._monthsStrictRegex=new RegExp("^("+n.join("|")+")$","i"),this._monthsShortStrictRegex=new RegExp("^("+o.join("|")+")$","i")}function ut(t){var e,i=t._a;return i&&-2===l(t).overflow&&(e=i[Eo]<0||i[Eo]>11?Eo:i[Po]<1||i[Po]>it(i[To],i[Eo])?Po:i[Io]<0||i[Io]>24||24===i[Io]&&(0!==i[No]||0!==i[zo]||0!==i[Lo])?Io:i[No]<0||i[No]>59?No:i[zo]<0||i[zo]>59?zo:i[Lo]<0||i[Lo]>999?Lo:-1,l(t)._overflowDayOfYear&&(To>e||e>Po)&&(e=Po),l(t)._overflowWeeks&&-1===e&&(e=Ro),l(t)._overflowWeekday&&-1===e&&(e=Ao),l(t).overflow=e),t}function pt(t){var e,i,o,n,s,r,a=t._i,h=Yo.exec(a)||Go.exec(a);if(h){for(l(t).iso=!0,e=0,i=Uo.length;i>e;e++)if(Uo[e][1].exec(h[1])){n=Uo[e][0],o=Uo[e][2]!==!1;break}if(null==n)return void(t._isValid=!1);if(h[3]){for(e=0,i=qo.length;i>e;e++)if(qo[e][1].exec(h[3])){s=(h[2]||" ")+qo[e][0];break}if(null==s)return void(t._isValid=!1)}if(!o&&null!=s)return void(t._isValid=!1);if(h[4]){if(!Vo.exec(h[4]))return void(t._isValid=!1);r="Z"}t._f=n+(s||"")+(r||""),Ct(t)}else t._isValid=!1}function ft(t){var i=Xo.exec(t._i);return null!==i?void(t._d=new Date(+i[1])):(pt(t),void(t._isValid===!1&&(delete t._isValid,e.createFromInputFallback(t))))}function mt(t,e,i,o,n,s,r){var a=new Date(t,e,i,o,n,s,r);return 100>t&&t>=0&&isFinite(a.getFullYear())&&a.setFullYear(t),a}function vt(t){var e=new Date(Date.UTC.apply(null,arguments));return 100>t&&t>=0&&isFinite(e.getUTCFullYear())&&e.setUTCFullYear(t),e}function gt(t){return yt(t)?366:365}function yt(t){return t%4===0&&t%100!==0||t%400===0}function bt(){return yt(this.year())}function wt(t,e,i){var o=7+e-i,n=(7+vt(t,0,o).getUTCDay()-e)%7;return-n+o-1}function _t(t,e,i,o,n){var s,r,a=(7+i-o)%7,h=wt(t,o,n),d=1+7*(e-1)+a+h;return 0>=d?(s=t-1,r=gt(s)+d):d>gt(t)?(s=t+1,r=d-gt(t)):(s=t,r=d),{year:s,dayOfYear:r}}function xt(t,e,i){var o,n,s=wt(t.year(),e,i),r=Math.floor((t.dayOfYear()-s-1)/7)+1;return 1>r?(n=t.year()-1,o=r+kt(n,e,i)):r>kt(t.year(),e,i)?(o=r-kt(t.year(),e,i),n=t.year()+1):(n=t.year(),o=r),{week:o,year:n}}function kt(t,e,i){var o=wt(t,e,i),n=wt(t+1,e,i);return(gt(t)-o+n)/7}function Ot(t,e,i){return null!=t?t:null!=e?e:i}function Mt(t){var i=new Date(e.now());return t._useUTC?[i.getUTCFullYear(),i.getUTCMonth(),i.getUTCDate()]:[i.getFullYear(),i.getMonth(),i.getDate()]}function Dt(t){var e,i,o,n,s=[];if(!t._d){for(o=Mt(t),t._w&&null==t._a[Po]&&null==t._a[Eo]&&St(t),t._dayOfYear&&(n=Ot(t._a[To],o[To]),t._dayOfYear>gt(n)&&(l(t)._overflowDayOfYear=!0),i=vt(n,0,t._dayOfYear),t._a[Eo]=i.getUTCMonth(),t._a[Po]=i.getUTCDate()),e=0;3>e&&null==t._a[e];++e)t._a[e]=s[e]=o[e];for(;7>e;e++)t._a[e]=s[e]=null==t._a[e]?2===e?1:0:t._a[e];24===t._a[Io]&&0===t._a[No]&&0===t._a[zo]&&0===t._a[Lo]&&(t._nextDay=!0,t._a[Io]=0),t._d=(t._useUTC?vt:mt).apply(null,s),null!=t._tzm&&t._d.setUTCMinutes(t._d.getUTCMinutes()-t._tzm),t._nextDay&&(t._a[Io]=24)}}function St(t){var e,i,o,n,s,r,a,h;e=t._w,null!=e.GG||null!=e.W||null!=e.E?(s=1,r=4,i=Ot(e.GG,t._a[To],xt(Rt(),1,4).year),o=Ot(e.W,1),n=Ot(e.E,1),(1>n||n>7)&&(h=!0)):(s=t._locale._week.dow,r=t._locale._week.doy,i=Ot(e.gg,t._a[To],xt(Rt(),s,r).year),o=Ot(e.w,1),null!=e.d?(n=e.d,(0>n||n>6)&&(h=!0)):null!=e.e?(n=e.e+s,(e.e<0||e.e>6)&&(h=!0)):n=s),1>o||o>kt(i,s,r)?l(t)._overflowWeeks=!0:null!=h?l(t)._overflowWeekday=!0:(a=_t(i,o,n,s,r),t._a[To]=a.year,t._dayOfYear=a.dayOfYear)}function Ct(t){if(t._f===e.ISO_8601)return void pt(t);t._a=[],l(t).empty=!0;var i,o,n,s,r,a=""+t._i,h=a.length,d=0;for(n=X(t._f,t._locale).match(so)||[],i=0;i0&&l(t).unusedInput.push(r),a=a.slice(a.indexOf(o)+o.length),d+=o.length),ho[s]?(o?l(t).empty=!1:l(t).unusedTokens.push(s),et(s,o,t)):t._strict&&!o&&l(t).unusedTokens.push(s);l(t).charsLeftOver=h-d,a.length>0&&l(t).unusedInput.push(a),l(t).bigHour===!0&&t._a[Io]<=12&&t._a[Io]>0&&(l(t).bigHour=void 0),t._a[Io]=Tt(t._locale,t._a[Io],t._meridiem),Dt(t),ut(t)}function Tt(t,e,i){var o;return null==i?e:null!=t.meridiemHour?t.meridiemHour(e,i):null!=t.isPM?(o=t.isPM(i),o&&12>e&&(e+=12),o||12!==e||(e=0),e):e}function Et(t){var e,i,o,n,s;if(0===t._f.length)return l(t).invalidFormat=!0,void(t._d=new Date(NaN));for(n=0;ns)&&(o=s,i=e));a(t,i||e)}function Pt(t){if(!t._d){var e=B(t._i);t._a=s([e.year,e.month,e.day||e.date,e.hour,e.minute,e.second,e.millisecond],function(t){return t&&parseInt(t,10)}),Dt(t)}}function It(t){var e=new m(ut(Nt(t)));return e._nextDay&&(e.add(1,"d"),e._nextDay=void 0),e}function Nt(t){var e=t._i,i=t._f;return t._locale=t._locale||z(t._l),null===e||void 0===i&&""===e?u({nullInput:!0}):("string"==typeof e&&(t._i=e=t._locale.preparse(e)),v(e)?new m(ut(e)):(o(i)?Et(t):i?Ct(t):n(e)?t._d=e:zt(t),c(t)||(t._d=null),t))}function zt(t){var i=t._i;void 0===i?t._d=new Date(e.now()):n(i)?t._d=new Date(+i):"string"==typeof i?ft(t):o(i)?(t._a=s(i.slice(0),function(t){return parseInt(t,10)}),Dt(t)):"object"==typeof i?Pt(t):"number"==typeof i?t._d=new Date(i):e.createFromInputFallback(t)}function Lt(t,e,i,o,n){var s={};return"boolean"==typeof i&&(o=i,i=void 0),s._isAMomentObject=!0,s._useUTC=s._isUTC=n,s._l=i,s._i=t,s._f=e,s._strict=o,It(s)}function Rt(t,e,i,o){return Lt(t,e,i,o,!1)}function At(t,e){var i,n;if(1===e.length&&o(e[0])&&(e=e[0]),!e.length)return Rt();for(i=e[0],n=1;nt&&(t=-t,i="-"),i+Y(~~(t/60),2)+e+Y(~~t%60,2)})}function Yt(t,e){var i=(e||"").match(t)||[],o=i[i.length-1]||[],n=(o+"").match($o)||["-",0,0],s=+(60*n[1])+y(n[2]);return"+"===n[0]?s:-s}function Gt(t,i){var o,s;return i._isUTC?(o=i.clone(),s=(v(t)||n(t)?+t:+Rt(t))-+o,o._d.setTime(+o._d+s),e.updateOffset(o,!1),o):Rt(t).local()}function Vt(t){return 15*-Math.round(t._d.getTimezoneOffset()/15)}function Ut(t,i){var o,n=this._offset||0;return this.isValid()?null!=t?("string"==typeof t?t=Yt(Oo,t):Math.abs(t)<16&&(t=60*t),!this._isUTC&&i&&(o=Vt(this)),this._offset=t,this._isUTC=!0,null!=o&&this.add(o,"m"),n!==t&&(!i||this._changeInProgress?de(this,oe(t-n,"m"),1,!1):this._changeInProgress||(this._changeInProgress=!0,e.updateOffset(this,!0),this._changeInProgress=null)),this):this._isUTC?n:Vt(this):null!=t?this:NaN}function qt(t,e){return null!=t?("string"!=typeof t&&(t=-t),this.utcOffset(t,e),this):-this.utcOffset()}function Xt(t){return this.utcOffset(0,t)}function Zt(t){return this._isUTC&&(this.utcOffset(0,t),this._isUTC=!1,t&&this.subtract(Vt(this),"m")),this}function Kt(){return this._tzm?this.utcOffset(this._tzm):"string"==typeof this._i&&this.utcOffset(Yt(ko,this._i)),this}function Jt(t){return this.isValid()?(t=t?Rt(t).utcOffset():0,(this.utcOffset()-t)%60===0):!1}function Qt(){return this.utcOffset()>this.clone().month(0).utcOffset()||this.utcOffset()>this.clone().month(5).utcOffset()}function $t(){if(!p(this._isDSTShifted))return this._isDSTShifted;var t={};if(f(t,this),t=Nt(t),t._a){var e=t._isUTC?h(t._a):Rt(t._a);this._isDSTShifted=this.isValid()&&b(t._a,e.toArray())>0}else this._isDSTShifted=!1;return this._isDSTShifted}function te(){return this.isValid()?!this._isUTC:!1}function ee(){return this.isValid()?this._isUTC:!1}function ie(){return this.isValid()?this._isUTC&&0===this._offset:!1}function oe(t,e){var i,o,n,s=t,a=null;return Ht(t)?s={ms:t._milliseconds,d:t._days,M:t._months}:"number"==typeof t?(s={},e?s[e]=t:s.milliseconds=t):(a=tn.exec(t))?(i="-"===a[1]?-1:1,s={y:0,d:y(a[Po])*i,h:y(a[Io])*i,m:y(a[No])*i,s:y(a[zo])*i,ms:y(a[Lo])*i}):(a=en.exec(t))?(i="-"===a[1]?-1:1,s={y:ne(a[2],i),M:ne(a[3],i),w:ne(a[4],i),d:ne(a[5],i),h:ne(a[6],i),m:ne(a[7],i),s:ne(a[8],i)}):null==s?s={}:"object"==typeof s&&("from"in s||"to"in s)&&(n=re(Rt(s.from),Rt(s.to)),s={},s.ms=n.milliseconds,s.M=n.months),o=new jt(s),Ht(t)&&r(t,"_locale")&&(o._locale=t._locale),o}function ne(t,e){var i=t&&parseFloat(t.replace(",","."));return(isNaN(i)?0:i)*e}function se(t,e){var i={milliseconds:0,months:0};return i.months=e.month()-t.month()+12*(e.year()-t.year()),t.clone().add(i.months,"M").isAfter(e)&&--i.months,i.milliseconds=+e-+t.clone().add(i.months,"M"),i}function re(t,e){var i;return t.isValid()&&e.isValid()?(e=Gt(e,t),t.isBefore(e)?i=se(t,e):(i=se(e,t),i.milliseconds=-i.milliseconds, -i.months=-i.months),i):{milliseconds:0,months:0}}function ae(t){return 0>t?-1*Math.round(-1*t):Math.round(t)}function he(t,e){return function(i,o){var n,s;return null===o||isNaN(+o)||(x(e,"moment()."+e+"(period, number) is deprecated. Please use moment()."+e+"(number, period)."),s=i,i=o,o=s),i="string"==typeof i?+i:i,n=oe(i,o),de(this,n,t),this}}function de(t,i,o,n){var s=i._milliseconds,r=ae(i._days),a=ae(i._months);t.isValid()&&(n=null==n?!0:n,s&&t._d.setTime(+t._d+s*o),r&&H(t,"Date",j(t,"Date")+r*o),a&&rt(t,j(t,"Month")+a*o),n&&e.updateOffset(t,r||a))}function le(t,e){var i=t||Rt(),o=Gt(i,this).startOf("day"),n=this.diff(o,"days",!0),s=-6>n?"sameElse":-1>n?"lastWeek":0>n?"lastDay":1>n?"sameDay":2>n?"nextDay":7>n?"nextWeek":"sameElse",r=e&&(k(e[s])?e[s]():e[s]);return this.format(r||this.localeData().calendar(s,this,Rt(i)))}function ce(){return new m(this)}function ue(t,e){var i=v(t)?t:Rt(t);return this.isValid()&&i.isValid()?(e=A(p(e)?"millisecond":e),"millisecond"===e?+this>+i:+i<+this.clone().startOf(e)):!1}function pe(t,e){var i=v(t)?t:Rt(t);return this.isValid()&&i.isValid()?(e=A(p(e)?"millisecond":e),"millisecond"===e?+i>+this:+this.clone().endOf(e)<+i):!1}function fe(t,e,i){return this.isAfter(t,i)&&this.isBefore(e,i)}function me(t,e){var i,o=v(t)?t:Rt(t);return this.isValid()&&o.isValid()?(e=A(e||"millisecond"),"millisecond"===e?+this===+o:(i=+o,+this.clone().startOf(e)<=i&&i<=+this.clone().endOf(e))):!1}function ve(t,e){return this.isSame(t,e)||this.isAfter(t,e)}function ge(t,e){return this.isSame(t,e)||this.isBefore(t,e)}function ye(t,e,i){var o,n,s,r;return this.isValid()?(o=Gt(t,this),o.isValid()?(n=6e4*(o.utcOffset()-this.utcOffset()),e=A(e),"year"===e||"month"===e||"quarter"===e?(r=be(this,o),"quarter"===e?r/=3:"year"===e&&(r/=12)):(s=this-o,r="second"===e?s/1e3:"minute"===e?s/6e4:"hour"===e?s/36e5:"day"===e?(s-n)/864e5:"week"===e?(s-n)/6048e5:s),i?r:g(r)):NaN):NaN}function be(t,e){var i,o,n=12*(e.year()-t.year())+(e.month()-t.month()),s=t.clone().add(n,"months");return 0>e-s?(i=t.clone().add(n-1,"months"),o=(e-s)/(s-i)):(i=t.clone().add(n+1,"months"),o=(e-s)/(i-s)),-(n+o)}function we(){return this.clone().locale("en").format("ddd MMM DD YYYY HH:mm:ss [GMT]ZZ")}function _e(){var t=this.clone().utc();return 0s&&(e=s),qe.call(this,t,e,i,o,n))}function qe(t,e,i,o,n){var s=_t(t,e,i,o,n),r=vt(s.year,0,s.dayOfYear);return this.year(r.getUTCFullYear()),this.month(r.getUTCMonth()),this.date(r.getUTCDate()),this}function Xe(t){return null==t?Math.ceil((this.month()+1)/3):this.month(3*(t-1)+this.month()%3)}function Ze(t){return xt(t,this._week.dow,this._week.doy).week}function Ke(){return this._week.dow}function Je(){return this._week.doy}function Qe(t){var e=this.localeData().week(this);return null==t?e:this.add(7*(t-e),"d")}function $e(t){var e=xt(this,1,4).week;return null==t?e:this.add(7*(t-e),"d")}function ti(t,e){return"string"!=typeof t?t:isNaN(t)?(t=e.weekdaysParse(t),"number"==typeof t?t:null):parseInt(t,10)}function ei(t,e){return o(this._weekdays)?this._weekdays[t.day()]:this._weekdays[this._weekdays.isFormat.test(e)?"format":"standalone"][t.day()]}function ii(t){return this._weekdaysShort[t.day()]}function oi(t){return this._weekdaysMin[t.day()]}function ni(t,e,i){var o,n,s;for(this._weekdaysParse||(this._weekdaysParse=[],this._minWeekdaysParse=[],this._shortWeekdaysParse=[],this._fullWeekdaysParse=[]),o=0;7>o;o++){if(n=Rt([2e3,1]).day(o),i&&!this._fullWeekdaysParse[o]&&(this._fullWeekdaysParse[o]=new RegExp("^"+this.weekdays(n,"").replace(".",".?")+"$","i"),this._shortWeekdaysParse[o]=new RegExp("^"+this.weekdaysShort(n,"").replace(".",".?")+"$","i"),this._minWeekdaysParse[o]=new RegExp("^"+this.weekdaysMin(n,"").replace(".",".?")+"$","i")),this._weekdaysParse[o]||(s="^"+this.weekdays(n,"")+"|^"+this.weekdaysShort(n,"")+"|^"+this.weekdaysMin(n,""),this._weekdaysParse[o]=new RegExp(s.replace(".",""),"i")),i&&"dddd"===e&&this._fullWeekdaysParse[o].test(t))return o;if(i&&"ddd"===e&&this._shortWeekdaysParse[o].test(t))return o;if(i&&"dd"===e&&this._minWeekdaysParse[o].test(t))return o;if(!i&&this._weekdaysParse[o].test(t))return o}}function si(t){if(!this.isValid())return null!=t?this:NaN;var e=this._isUTC?this._d.getUTCDay():this._d.getDay();return null!=t?(t=ti(t,this.localeData()),this.add(t-e,"d")):e}function ri(t){if(!this.isValid())return null!=t?this:NaN;var e=(this.day()+7-this.localeData()._week.dow)%7;return null==t?e:this.add(t-e,"d")}function ai(t){return this.isValid()?null==t?this.day()||7:this.day(this.day()%7?t:t-7):null!=t?this:NaN}function hi(t){var e=Math.round((this.clone().startOf("day")-this.clone().startOf("year"))/864e5)+1;return null==t?e:this.add(t-e,"d")}function di(){return this.hours()%12||12}function li(t,e){G(t,0,0,function(){return this.localeData().meridiem(this.hours(),this.minutes(),e)})}function ci(t,e){return e._meridiemParse}function ui(t){return"p"===(t+"").toLowerCase().charAt(0)}function pi(t,e,i){return t>11?i?"pm":"PM":i?"am":"AM"}function fi(t,e){e[Lo]=y(1e3*("0."+t))}function mi(){return this._isUTC?"UTC":""}function vi(){return this._isUTC?"Coordinated Universal Time":""}function gi(t){return Rt(1e3*t)}function yi(){return Rt.apply(null,arguments).parseZone()}function bi(t,e,i){var o=this._calendar[t];return k(o)?o.call(e,i):o}function wi(t){var e=this._longDateFormat[t],i=this._longDateFormat[t.toUpperCase()];return e||!i?e:(this._longDateFormat[t]=i.replace(/MMMM|MM|DD|dddd/g,function(t){return t.slice(1)}),this._longDateFormat[t])}function _i(){return this._invalidDate}function xi(t){return this._ordinal.replace("%d",t)}function ki(t){return t}function Oi(t,e,i,o){var n=this._relativeTime[i];return k(n)?n(t,e,i,o):n.replace(/%d/i,t)}function Mi(t,e){var i=this._relativeTime[t>0?"future":"past"];return k(i)?i(e):i.replace(/%s/i,e)}function Di(t,e,i,o){var n=z(),s=h().set(o,e);return n[i](s,t)}function Si(t,e,i,o,n){if("number"==typeof t&&(e=t,t=void 0),t=t||"",null!=e)return Di(t,e,i,n);var s,r=[];for(s=0;o>s;s++)r[s]=Di(t,s,i,n);return r}function Ci(t,e){return Si(t,e,"months",12,"month")}function Ti(t,e){return Si(t,e,"monthsShort",12,"month")}function Ei(t,e){return Si(t,e,"weekdays",7,"day")}function Pi(t,e){return Si(t,e,"weekdaysShort",7,"day")}function Ii(t,e){return Si(t,e,"weekdaysMin",7,"day")}function Ni(){var t=this._data;return this._milliseconds=Dn(this._milliseconds),this._days=Dn(this._days),this._months=Dn(this._months),t.milliseconds=Dn(t.milliseconds),t.seconds=Dn(t.seconds),t.minutes=Dn(t.minutes),t.hours=Dn(t.hours),t.months=Dn(t.months),t.years=Dn(t.years),this}function zi(t,e,i,o){var n=oe(e,i);return t._milliseconds+=o*n._milliseconds,t._days+=o*n._days,t._months+=o*n._months,t._bubble()}function Li(t,e){return zi(this,t,e,1)}function Ri(t,e){return zi(this,t,e,-1)}function Ai(t){return 0>t?Math.floor(t):Math.ceil(t)}function Bi(){var t,e,i,o,n,s=this._milliseconds,r=this._days,a=this._months,h=this._data;return s>=0&&r>=0&&a>=0||0>=s&&0>=r&&0>=a||(s+=864e5*Ai(ji(a)+r),r=0,a=0),h.milliseconds=s%1e3,t=g(s/1e3),h.seconds=t%60,e=g(t/60),h.minutes=e%60,i=g(e/60),h.hours=i%24,r+=g(i/24),n=g(Fi(r)),a+=n,r-=Ai(ji(n)),o=g(a/12),a%=12,h.days=r,h.months=a,h.years=o,this}function Fi(t){return 4800*t/146097}function ji(t){return 146097*t/4800}function Hi(t){var e,i,o=this._milliseconds;if(t=A(t),"month"===t||"year"===t)return e=this._days+o/864e5,i=this._months+Fi(e),"month"===t?i:i/12;switch(e=this._days+Math.round(ji(this._months)),t){case"week":return e/7+o/6048e5;case"day":return e+o/864e5;case"hour":return 24*e+o/36e5;case"minute":return 1440*e+o/6e4;case"second":return 86400*e+o/1e3;case"millisecond":return Math.floor(864e5*e)+o;default:throw new Error("Unknown unit "+t)}}function Wi(){return this._milliseconds+864e5*this._days+this._months%12*2592e6+31536e6*y(this._months/12)}function Yi(t){return function(){return this.as(t)}}function Gi(t){return t=A(t),this[t+"s"]()}function Vi(t){return function(){return this._data[t]}}function Ui(){return g(this.days()/7)}function qi(t,e,i,o,n){return n.relativeTime(e||1,!!i,t,o)}function Xi(t,e,i){var o=oe(t).abs(),n=Wn(o.as("s")),s=Wn(o.as("m")),r=Wn(o.as("h")),a=Wn(o.as("d")),h=Wn(o.as("M")),d=Wn(o.as("y")),l=n=s&&["m"]||s=r&&["h"]||r=a&&["d"]||a=h&&["M"]||h=d&&["y"]||["yy",d];return l[2]=e,l[3]=+t>0,l[4]=i,qi.apply(null,l)}function Zi(t,e){return void 0===Yn[t]?!1:void 0===e?Yn[t]:(Yn[t]=e,!0)}function Ki(t){var e=this.localeData(),i=Xi(this,!t,e);return t&&(i=e.pastFuture(+this,i)),e.postformat(i)}function Ji(){var t,e,i,o=Gn(this._milliseconds)/1e3,n=Gn(this._days),s=Gn(this._months);t=g(o/60),e=g(t/60),o%=60,t%=60,i=g(s/12),s%=12;var r=i,a=s,h=n,d=e,l=t,c=o,u=this.asSeconds();return u?(0>u?"-":"")+"P"+(r?r+"Y":"")+(a?a+"M":"")+(h?h+"D":"")+(d||l||c?"T":"")+(d?d+"H":"")+(l?l+"M":"")+(c?c+"S":""):"P0D"}var Qi,$i=e.momentProperties=[],to=!1,eo={};e.suppressDeprecationWarnings=!1;var io,oo={},no={},so=/(\[[^\[]*\])|(\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|YYYYYY|YYYYY|YYYY|YY|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g,ro=/(\[[^\[]*\])|(\\)?(LTS|LT|LL?L?L?|l{1,4})/g,ao={},ho={},lo=/\d/,co=/\d\d/,uo=/\d{3}/,po=/\d{4}/,fo=/[+-]?\d{6}/,mo=/\d\d?/,vo=/\d\d\d\d?/,go=/\d\d\d\d\d\d?/,yo=/\d{1,3}/,bo=/\d{1,4}/,wo=/[+-]?\d{1,6}/,_o=/\d+/,xo=/[+-]?\d+/,ko=/Z|[+-]\d\d:?\d\d/gi,Oo=/Z|[+-]\d\d(?::?\d\d)?/gi,Mo=/[+-]?\d+(\.\d{1,3})?/,Do=/[0-9]*['a-z\u00A0-\u05FF\u0700-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]+|[\u0600-\u06FF\/]+(\s*?[\u0600-\u06FF]+){1,2}/i,So={},Co={},To=0,Eo=1,Po=2,Io=3,No=4,zo=5,Lo=6,Ro=7,Ao=8;G("M",["MM",2],"Mo",function(){return this.month()+1}),G("MMM",0,0,function(t){return this.localeData().monthsShort(this,t)}),G("MMMM",0,0,function(t){return this.localeData().months(this,t)}),R("month","M"),Z("M",mo),Z("MM",mo,co),Z("MMM",function(t,e){return e.monthsShortRegex(t)}),Z("MMMM",function(t,e){return e.monthsRegex(t)}),$(["M","MM"],function(t,e){e[Eo]=y(t)-1}),$(["MMM","MMMM"],function(t,e,i,o){var n=i._locale.monthsParse(t,o,i._strict);null!=n?e[Eo]=n:l(i).invalidMonth=t});var Bo=/D[oD]?(\[[^\[\]]*\]|\s+)+MMMM?/,Fo="January_February_March_April_May_June_July_August_September_October_November_December".split("_"),jo="Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),Ho=Do,Wo=Do,Yo=/^\s*((?:[+-]\d{6}|\d{4})-(?:\d\d-\d\d|W\d\d-\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?::\d\d(?::\d\d(?:[.,]\d+)?)?)?)([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?/,Go=/^\s*((?:[+-]\d{6}|\d{4})(?:\d\d\d\d|W\d\d\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?:\d\d(?:\d\d(?:[.,]\d+)?)?)?)([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?/,Vo=/Z|[+-]\d\d(?::?\d\d)?/,Uo=[["YYYYYY-MM-DD",/[+-]\d{6}-\d\d-\d\d/],["YYYY-MM-DD",/\d{4}-\d\d-\d\d/],["GGGG-[W]WW-E",/\d{4}-W\d\d-\d/],["GGGG-[W]WW",/\d{4}-W\d\d/,!1],["YYYY-DDD",/\d{4}-\d{3}/],["YYYY-MM",/\d{4}-\d\d/,!1],["YYYYYYMMDD",/[+-]\d{10}/],["YYYYMMDD",/\d{8}/],["GGGG[W]WWE",/\d{4}W\d{3}/],["GGGG[W]WW",/\d{4}W\d{2}/,!1],["YYYYDDD",/\d{7}/]],qo=[["HH:mm:ss.SSSS",/\d\d:\d\d:\d\d\.\d+/],["HH:mm:ss,SSSS",/\d\d:\d\d:\d\d,\d+/],["HH:mm:ss",/\d\d:\d\d:\d\d/],["HH:mm",/\d\d:\d\d/],["HHmmss.SSSS",/\d\d\d\d\d\d\.\d+/],["HHmmss,SSSS",/\d\d\d\d\d\d,\d+/],["HHmmss",/\d\d\d\d\d\d/],["HHmm",/\d\d\d\d/],["HH",/\d\d/]],Xo=/^\/?Date\((\-?\d+)/i;e.createFromInputFallback=_("moment construction falls back to js Date. This is discouraged and will be removed in upcoming major release. Please refer to https://github.com/moment/moment/issues/1407 for more info.",function(t){t._d=new Date(t._i+(t._useUTC?" UTC":""))}),G("Y",0,0,function(){var t=this.year();return 9999>=t?""+t:"+"+t}),G(0,["YY",2],0,function(){return this.year()%100}),G(0,["YYYY",4],0,"year"),G(0,["YYYYY",5],0,"year"),G(0,["YYYYYY",6,!0],0,"year"),R("year","y"),Z("Y",xo),Z("YY",mo,co),Z("YYYY",bo,po),Z("YYYYY",wo,fo),Z("YYYYYY",wo,fo),$(["YYYYY","YYYYYY"],To),$("YYYY",function(t,i){i[To]=2===t.length?e.parseTwoDigitYear(t):y(t)}),$("YY",function(t,i){i[To]=e.parseTwoDigitYear(t)}),$("Y",function(t,e){e[To]=parseInt(t,10)}),e.parseTwoDigitYear=function(t){return y(t)+(y(t)>68?1900:2e3)};var Zo=F("FullYear",!1);e.ISO_8601=function(){};var Ko=_("moment().min is deprecated, use moment.max instead. https://github.com/moment/moment/issues/1548",function(){var t=Rt.apply(null,arguments);return this.isValid()&&t.isValid()?this>t?this:t:u()}),Jo=_("moment().max is deprecated, use moment.min instead. https://github.com/moment/moment/issues/1548",function(){var t=Rt.apply(null,arguments);return this.isValid()&&t.isValid()?t>this?this:t:u()}),Qo=function(){return Date.now?Date.now():+new Date};Wt("Z",":"),Wt("ZZ",""),Z("Z",Oo),Z("ZZ",Oo),$(["Z","ZZ"],function(t,e,i){i._useUTC=!0,i._tzm=Yt(Oo,t)});var $o=/([\+\-]|\d\d)/gi;e.updateOffset=function(){};var tn=/^(\-)?(?:(\d*)[. ])?(\d+)\:(\d+)(?:\:(\d+)\.?(\d{3})?\d*)?$/,en=/^(-)?P(?:([0-9,.]*)Y)?(?:([0-9,.]*)M)?(?:([0-9,.]*)W)?(?:([0-9,.]*)D)?(?:T(?:([0-9,.]*)H)?(?:([0-9,.]*)M)?(?:([0-9,.]*)S)?)?$/;oe.fn=jt.prototype;var on=he(1,"add"),nn=he(-1,"subtract");e.defaultFormat="YYYY-MM-DDTHH:mm:ssZ";var sn=_("moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.",function(t){return void 0===t?this.localeData():this.locale(t)});G(0,["gg",2],0,function(){return this.weekYear()%100}),G(0,["GG",2],0,function(){return this.isoWeekYear()%100}),He("gggg","weekYear"),He("ggggg","weekYear"),He("GGGG","isoWeekYear"),He("GGGGG","isoWeekYear"),R("weekYear","gg"),R("isoWeekYear","GG"),Z("G",xo),Z("g",xo),Z("GG",mo,co),Z("gg",mo,co),Z("GGGG",bo,po),Z("gggg",bo,po),Z("GGGGG",wo,fo),Z("ggggg",wo,fo),tt(["gggg","ggggg","GGGG","GGGGG"],function(t,e,i,o){e[o.substr(0,2)]=y(t)}),tt(["gg","GG"],function(t,i,o,n){i[n]=e.parseTwoDigitYear(t)}),G("Q",0,"Qo","quarter"),R("quarter","Q"),Z("Q",lo),$("Q",function(t,e){e[Eo]=3*(y(t)-1)}),G("w",["ww",2],"wo","week"),G("W",["WW",2],"Wo","isoWeek"),R("week","w"),R("isoWeek","W"),Z("w",mo),Z("ww",mo,co),Z("W",mo),Z("WW",mo,co),tt(["w","ww","W","WW"],function(t,e,i,o){e[o.substr(0,1)]=y(t)});var rn={dow:0,doy:6};G("D",["DD",2],"Do","date"),R("date","D"),Z("D",mo),Z("DD",mo,co),Z("Do",function(t,e){return t?e._ordinalParse:e._ordinalParseLenient}),$(["D","DD"],Po),$("Do",function(t,e){e[Po]=y(t.match(mo)[0],10)});var an=F("Date",!0);G("d",0,"do","day"),G("dd",0,0,function(t){return this.localeData().weekdaysMin(this,t)}),G("ddd",0,0,function(t){return this.localeData().weekdaysShort(this,t)}),G("dddd",0,0,function(t){return this.localeData().weekdays(this,t)}),G("e",0,0,"weekday"),G("E",0,0,"isoWeekday"),R("day","d"),R("weekday","e"),R("isoWeekday","E"),Z("d",mo),Z("e",mo),Z("E",mo),Z("dd",Do),Z("ddd",Do),Z("dddd",Do),tt(["dd","ddd","dddd"],function(t,e,i,o){var n=i._locale.weekdaysParse(t,o,i._strict);null!=n?e.d=n:l(i).invalidWeekday=t}),tt(["d","e","E"],function(t,e,i,o){e[o]=y(t)});var hn="Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),dn="Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),ln="Su_Mo_Tu_We_Th_Fr_Sa".split("_");G("DDD",["DDDD",3],"DDDo","dayOfYear"),R("dayOfYear","DDD"),Z("DDD",yo),Z("DDDD",uo),$(["DDD","DDDD"],function(t,e,i){i._dayOfYear=y(t)}),G("H",["HH",2],0,"hour"),G("h",["hh",2],0,di),G("hmm",0,0,function(){return""+di.apply(this)+Y(this.minutes(),2)}),G("hmmss",0,0,function(){return""+di.apply(this)+Y(this.minutes(),2)+Y(this.seconds(),2)}),G("Hmm",0,0,function(){return""+this.hours()+Y(this.minutes(),2)}),G("Hmmss",0,0,function(){return""+this.hours()+Y(this.minutes(),2)+Y(this.seconds(),2)}),li("a",!0),li("A",!1),R("hour","h"),Z("a",ci),Z("A",ci),Z("H",mo),Z("h",mo),Z("HH",mo,co),Z("hh",mo,co),Z("hmm",vo),Z("hmmss",go),Z("Hmm",vo),Z("Hmmss",go),$(["H","HH"],Io),$(["a","A"],function(t,e,i){i._isPm=i._locale.isPM(t),i._meridiem=t}),$(["h","hh"],function(t,e,i){e[Io]=y(t),l(i).bigHour=!0}),$("hmm",function(t,e,i){var o=t.length-2;e[Io]=y(t.substr(0,o)),e[No]=y(t.substr(o)),l(i).bigHour=!0}),$("hmmss",function(t,e,i){var o=t.length-4,n=t.length-2;e[Io]=y(t.substr(0,o)),e[No]=y(t.substr(o,2)),e[zo]=y(t.substr(n)),l(i).bigHour=!0}),$("Hmm",function(t,e,i){var o=t.length-2;e[Io]=y(t.substr(0,o)),e[No]=y(t.substr(o))}),$("Hmmss",function(t,e,i){var o=t.length-4,n=t.length-2;e[Io]=y(t.substr(0,o)),e[No]=y(t.substr(o,2)),e[zo]=y(t.substr(n))});var cn=/[ap]\.?m?\.?/i,un=F("Hours",!0);G("m",["mm",2],0,"minute"),R("minute","m"),Z("m",mo),Z("mm",mo,co),$(["m","mm"],No);var pn=F("Minutes",!1);G("s",["ss",2],0,"second"),R("second","s"),Z("s",mo),Z("ss",mo,co),$(["s","ss"],zo);var fn=F("Seconds",!1);G("S",0,0,function(){return~~(this.millisecond()/100)}),G(0,["SS",2],0,function(){return~~(this.millisecond()/10)}),G(0,["SSS",3],0,"millisecond"),G(0,["SSSS",4],0,function(){return 10*this.millisecond()}),G(0,["SSSSS",5],0,function(){return 100*this.millisecond()}),G(0,["SSSSSS",6],0,function(){return 1e3*this.millisecond()}),G(0,["SSSSSSS",7],0,function(){return 1e4*this.millisecond()}),G(0,["SSSSSSSS",8],0,function(){return 1e5*this.millisecond()}),G(0,["SSSSSSSSS",9],0,function(){return 1e6*this.millisecond()}),R("millisecond","ms"),Z("S",yo,lo),Z("SS",yo,co),Z("SSS",yo,uo);var mn;for(mn="SSSS";mn.length<=9;mn+="S")Z(mn,_o);for(mn="S";mn.length<=9;mn+="S")$(mn,fi);var vn=F("Milliseconds",!1);G("z",0,0,"zoneAbbr"),G("zz",0,0,"zoneName");var gn=m.prototype;gn.add=on,gn.calendar=le,gn.clone=ce,gn.diff=ye,gn.endOf=Ee,gn.format=xe,gn.from=ke,gn.fromNow=Oe,gn.to=Me,gn.toNow=De,gn.get=W,gn.invalidAt=Fe,gn.isAfter=ue,gn.isBefore=pe,gn.isBetween=fe,gn.isSame=me,gn.isSameOrAfter=ve,gn.isSameOrBefore=ge,gn.isValid=Ae,gn.lang=sn,gn.locale=Se,gn.localeData=Ce,gn.max=Jo,gn.min=Ko,gn.parsingFlags=Be,gn.set=W,gn.startOf=Te,gn.subtract=nn,gn.toArray=ze,gn.toObject=Le,gn.toDate=Ne,gn.toISOString=_e,gn.toJSON=Re,gn.toString=we,gn.unix=Ie,gn.valueOf=Pe,gn.creationData=je,gn.year=Zo,gn.isLeapYear=bt,gn.weekYear=We,gn.isoWeekYear=Ye,gn.quarter=gn.quarters=Xe,gn.month=at,gn.daysInMonth=ht,gn.week=gn.weeks=Qe,gn.isoWeek=gn.isoWeeks=$e,gn.weeksInYear=Ve,gn.isoWeeksInYear=Ge,gn.date=an,gn.day=gn.days=si,gn.weekday=ri,gn.isoWeekday=ai,gn.dayOfYear=hi,gn.hour=gn.hours=un,gn.minute=gn.minutes=pn,gn.second=gn.seconds=fn,gn.millisecond=gn.milliseconds=vn,gn.utcOffset=Ut,gn.utc=Xt,gn.local=Zt,gn.parseZone=Kt,gn.hasAlignedHourOffset=Jt,gn.isDST=Qt,gn.isDSTShifted=$t,gn.isLocal=te,gn.isUtcOffset=ee,gn.isUtc=ie,gn.isUTC=ie,gn.zoneAbbr=mi,gn.zoneName=vi,gn.dates=_("dates accessor is deprecated. Use date instead.",an),gn.months=_("months accessor is deprecated. Use month instead",at),gn.years=_("years accessor is deprecated. Use year instead",Zo),gn.zone=_("moment().zone is deprecated, use moment().utcOffset instead. https://github.com/moment/moment/issues/1779",qt);var yn=gn,bn={sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},wn={LTS:"h:mm:ss A",LT:"h:mm A",L:"MM/DD/YYYY",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY h:mm A",LLLL:"dddd, MMMM D, YYYY h:mm A"},_n="Invalid date",xn="%d",kn=/\d{1,2}/,On={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"},Mn=S.prototype;Mn._calendar=bn,Mn.calendar=bi,Mn._longDateFormat=wn,Mn.longDateFormat=wi,Mn._invalidDate=_n,Mn.invalidDate=_i,Mn._ordinal=xn,Mn.ordinal=xi,Mn._ordinalParse=kn,Mn.preparse=ki,Mn.postformat=ki,Mn._relativeTime=On,Mn.relativeTime=Oi,Mn.pastFuture=Mi,Mn.set=M,Mn.months=ot,Mn._months=Fo,Mn.monthsShort=nt,Mn._monthsShort=jo,Mn.monthsParse=st,Mn._monthsRegex=Wo,Mn.monthsRegex=lt,Mn._monthsShortRegex=Ho,Mn.monthsShortRegex=dt,Mn.week=Ze,Mn._week=rn,Mn.firstDayOfYear=Je,Mn.firstDayOfWeek=Ke,Mn.weekdays=ei,Mn._weekdays=hn,Mn.weekdaysMin=oi,Mn._weekdaysMin=ln,Mn.weekdaysShort=ii,Mn._weekdaysShort=dn,Mn.weekdaysParse=ni,Mn.isPM=ui,Mn._meridiemParse=cn,Mn.meridiem=pi,P("en",{ordinalParse:/\d{1,2}(th|st|nd|rd)/,ordinal:function(t){var e=t%10,i=1===y(t%100/10)?"th":1===e?"st":2===e?"nd":3===e?"rd":"th";return t+i}}),e.lang=_("moment.lang is deprecated. Use moment.locale instead.",P),e.langData=_("moment.langData is deprecated. Use moment.localeData instead.",z);var Dn=Math.abs,Sn=Yi("ms"),Cn=Yi("s"),Tn=Yi("m"),En=Yi("h"),Pn=Yi("d"),In=Yi("w"),Nn=Yi("M"),zn=Yi("y"),Ln=Vi("milliseconds"),Rn=Vi("seconds"),An=Vi("minutes"),Bn=Vi("hours"),Fn=Vi("days"),jn=Vi("months"),Hn=Vi("years"),Wn=Math.round,Yn={s:45,m:45,h:22,d:26,M:11},Gn=Math.abs,Vn=jt.prototype;Vn.abs=Ni,Vn.add=Li,Vn.subtract=Ri,Vn.as=Hi,Vn.asMilliseconds=Sn,Vn.asSeconds=Cn,Vn.asMinutes=Tn,Vn.asHours=En,Vn.asDays=Pn,Vn.asWeeks=In,Vn.asMonths=Nn,Vn.asYears=zn,Vn.valueOf=Wi,Vn._bubble=Bi,Vn.get=Gi,Vn.milliseconds=Ln,Vn.seconds=Rn,Vn.minutes=An,Vn.hours=Bn,Vn.days=Fn,Vn.weeks=Ui,Vn.months=jn,Vn.years=Hn,Vn.humanize=Ki,Vn.toISOString=Ji,Vn.toString=Ji,Vn.toJSON=Ji,Vn.locale=Se,Vn.localeData=Ce,Vn.toIsoString=_("toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)",Ji),Vn.lang=sn,G("X",0,0,"unix"),G("x",0,0,"valueOf"),Z("x",xo),Z("X",Mo),$("X",function(t,e,i){i._d=new Date(1e3*parseFloat(t,10))}),$("x",function(t,e,i){i._d=new Date(y(t))}),e.version="2.12.0",i(Rt),e.fn=yn,e.min=Bt,e.max=Ft,e.now=Qo,e.utc=h,e.unix=gi,e.months=Ci,e.isDate=n,e.locale=P,e.invalid=u,e.duration=oe,e.isMoment=v,e.weekdays=Ei,e.parseZone=yi,e.localeData=z,e.isDuration=Ht,e.monthsShort=Ti,e.weekdaysMin=Ii,e.defineLocale=I,e.updateLocale=N,e.locales=L,e.weekdaysShort=Pi,e.normalizeUnits=A,e.relativeTimeThreshold=Zi,e.prototype=yn;var Un=e;return Un})}).call(e,i(4)(t))},function(t,e){t.exports=function(t){return t.webpackPolyfill||(t.deprecate=function(){},t.paths=[],t.children=[],t.webpackPolyfill=1),t}},function(t,e){function i(t){throw new Error("Cannot find module '"+t+"'.")}i.keys=function(){return[]},i.resolve=i,t.exports=i,i.id=5},function(t,e){(function(e){function i(t,e,i){var o=e&&i||0,n=0;for(e=e||[],t.toLowerCase().replace(/[0-9a-f]{2}/g,function(t){16>n&&(e[o+n++]=c[t])});16>n;)e[o+n++]=0;return e}function o(t,e){var i=e||0,o=l;return o[t[i++]]+o[t[i++]]+o[t[i++]]+o[t[i++]]+"-"+o[t[i++]]+o[t[i++]]+"-"+o[t[i++]]+o[t[i++]]+"-"+o[t[i++]]+o[t[i++]]+"-"+o[t[i++]]+o[t[i++]]+o[t[i++]]+o[t[i++]]+o[t[i++]]+o[t[i++]]}function n(t,e,i){var n=e&&i||0,s=e||[];t=t||{};var r=void 0!==t.clockseq?t.clockseq:m,a=void 0!==t.msecs?t.msecs:(new Date).getTime(),h=void 0!==t.nsecs?t.nsecs:g+1,d=a-v+(h-g)/1e4;if(0>d&&void 0===t.clockseq&&(r=r+1&16383),(0>d||a>v)&&void 0===t.nsecs&&(h=0),h>=1e4)throw new Error("uuid.v1(): Can't create more than 10M uuids/sec");v=a,g=h,m=r,a+=122192928e5;var l=(1e4*(268435455&a)+h)%4294967296;s[n++]=l>>>24&255,s[n++]=l>>>16&255,s[n++]=l>>>8&255,s[n++]=255&l;var c=a/4294967296*1e4&268435455;s[n++]=c>>>8&255,s[n++]=255&c,s[n++]=c>>>24&15|16,s[n++]=c>>>16&255,s[n++]=r>>>8|128,s[n++]=255&r;for(var u=t.node||f,p=0;6>p;p++)s[n+p]=u[p];return e?e:o(s)}function s(t,e,i){var n=e&&i||0;"string"==typeof t&&(e="binary"==t?new Array(16):null,t=null),t=t||{};var s=t.random||(t.rng||r)();if(s[6]=15&s[6]|64,s[8]=63&s[8]|128,e)for(var a=0;16>a;a++)e[n+a]=s[a];return e||o(s)}var r,a="undefined"!=typeof window?window:"undefined"!=typeof e?e:null;if(a&&a.crypto&&crypto.getRandomValues){var h=new Uint8Array(16);r=function(){return crypto.getRandomValues(h),h}}if(!r){var d=new Array(16);r=function(){for(var t,e=0;16>e;e++)0===(3&e)&&(t=4294967296*Math.random()),d[e]=t>>>((3&e)<<3)&255;return d}}for(var l=[],c={},u=0;256>u;u++)l[u]=(u+256).toString(16).substr(1),c[l[u]]=u;var p=r(),f=[1|p[0],p[1],p[2],p[3],p[4],p[5]],m=16383&(p[6]<<8|p[7]),v=0,g=0,y=s;y.v1=n,y.v4=s,y.parse=i,y.unparse=o,t.exports=y}).call(e,function(){return this}())},function(t,e){e.prepareElements=function(t){for(var e in t)t.hasOwnProperty(e)&&(t[e].redundant=t[e].used,t[e].used=[])},e.cleanupElements=function(t){for(var e in t)if(t.hasOwnProperty(e)&&t[e].redundant){for(var i=0;i0?(o=e[t].redundant[0],e[t].redundant.shift()):(o=document.createElementNS("http://www.w3.org/2000/svg",t),i.appendChild(o)):(o=document.createElementNS("http://www.w3.org/2000/svg",t),e[t]={used:[],redundant:[]},i.appendChild(o)),e[t].used.push(o),o},e.getDOMElement=function(t,e,i,o){var n;return e.hasOwnProperty(t)?e[t].redundant.length>0?(n=e[t].redundant[0],e[t].redundant.shift()):(n=document.createElement(t),void 0!==o?i.insertBefore(n,o):i.appendChild(n)):(n=document.createElement(t),e[t]={used:[],redundant:[]},void 0!==o?i.insertBefore(n,o):i.appendChild(n)),e[t].used.push(n),n},e.drawPoint=function(t,i,o,n,s,r){var a;if("circle"==o.style?(a=e.getSVGElement("circle",n,s),a.setAttributeNS(null,"cx",t),a.setAttributeNS(null,"cy",i),a.setAttributeNS(null,"r",.5*o.size)):(a=e.getSVGElement("rect",n,s),a.setAttributeNS(null,"x",t-.5*o.size),a.setAttributeNS(null,"y",i-.5*o.size),a.setAttributeNS(null,"width",o.size),a.setAttributeNS(null,"height",o.size)),void 0!==o.styles&&a.setAttributeNS(null,"style",o.styles),a.setAttributeNS(null,"class",o.className+" vis-point"),r){var h=e.getSVGElement("text",n,s);r.xOffset&&(t+=r.xOffset),r.yOffset&&(i+=r.yOffset),r.content&&(h.textContent=r.content),r.className&&h.setAttributeNS(null,"class",r.className+" vis-label"),h.setAttributeNS(null,"x",t),h.setAttributeNS(null,"y",i)}return a},e.drawBar=function(t,i,o,n,s,r,a,h){if(0!=n){0>n&&(n*=-1,i-=n);var d=e.getSVGElement("rect",r,a);d.setAttributeNS(null,"x",t-.5*o),d.setAttributeNS(null,"y",i),d.setAttributeNS(null,"width",o),d.setAttributeNS(null,"height",n),d.setAttributeNS(null,"class",s),h&&d.setAttributeNS(null,"style",h)}}},function(t,e,i){function o(t,e){if(t&&!Array.isArray(t)&&(e=t,t=null),this._options=e||{},this._data={},this.length=0,this._fieldId=this._options.fieldId||"id",this._type={},this._options.type)for(var i=Object.keys(this._options.type),o=0,n=i.length;n>o;o++){var s=i[o],r=this._options.type[s];"Date"==r||"ISODate"==r||"ASPDate"==r?this._type[s]="Date":this._type[s]=r}if(this._options.convert)throw new Error('Option "convert" is deprecated. Use "type" instead.');this._subscribers={},t&&this.add(t),this.setOptions(e)}var n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol?"symbol":typeof t},s=i(1),r=i(9);o.prototype.setOptions=function(t){t&&void 0!==t.queue&&(t.queue===!1?this._queue&&(this._queue.destroy(),delete this._queue):(this._queue||(this._queue=r.extend(this,{replace:["add","update","remove"]})),"object"===n(t.queue)&&this._queue.setOptions(t.queue)))},o.prototype.on=function(t,e){var i=this._subscribers[t];i||(i=[],this._subscribers[t]=i),i.push({callback:e})},o.prototype.subscribe=function(){throw new Error("DataSet.subscribe is deprecated. Use DataSet.on instead.")},o.prototype.off=function(t,e){var i=this._subscribers[t];i&&(this._subscribers[t]=i.filter(function(t){return t.callback!=e}))},o.prototype.unsubscribe=function(){throw new Error("DataSet.unsubscribe is deprecated. Use DataSet.off instead.")},o.prototype._trigger=function(t,e,i){if("*"==t)throw new Error("Cannot trigger event *");var o=[];t in this._subscribers&&(o=o.concat(this._subscribers[t])),"*"in this._subscribers&&(o=o.concat(this._subscribers["*"]));for(var n=0,s=o.length;s>n;n++){var r=o[n];r.callback&&r.callback(t,e,i||null)}},o.prototype.add=function(t,e){var i,o=[],n=this;if(Array.isArray(t))for(var s=0,r=t.length;r>s;s++)i=n._addItem(t[s]),o.push(i);else{if(!(t instanceof Object))throw new Error("Unknown dataType");i=n._addItem(t),o.push(i)}return o.length&&this._trigger("add",{items:o},e),o},o.prototype.update=function(t,e){var i=[],o=[],n=[],r=[],a=this,h=a._fieldId,d=function(t){var e=t[h];if(a._data[e]){var d=s.extend({},a._data[e]);e=a._updateItem(t),o.push(e),r.push(t),n.push(d)}else e=a._addItem(t),i.push(e)};if(Array.isArray(t))for(var l=0,c=t.length;c>l;l++)t[l]instanceof Object?d(t[l]):console.warn("Ignoring input item, which is not an object at index "+l);else{if(!(t instanceof Object))throw new Error("Unknown dataType");d(t)}if(i.length&&this._trigger("add",{items:i},e),o.length){var u={items:o,oldData:n,data:r};this._trigger("update",u,e)}return i.concat(o)},o.prototype.get=function(t){var e,i,o,n=this,r=s.getType(arguments[0]);"String"==r||"Number"==r?(e=arguments[0],o=arguments[1]):"Array"==r?(i=arguments[0],o=arguments[1]):o=arguments[0];var a;if(o&&o.returnType){var h=["Array","Object"];a=-1==h.indexOf(o.returnType)?"Array":o.returnType}else a="Array";var d,l,c,u,p,f=o&&o.type||this._options.type,m=o&&o.filter,v=[];if(void 0!=e)d=n._getItem(e,f),d&&m&&!m(d)&&(d=null);else if(void 0!=i)for(u=0,p=i.length;p>u;u++)d=n._getItem(i[u],f),m&&!m(d)||v.push(d);else for(l=Object.keys(this._data),u=0,p=l.length;p>u;u++)c=l[u],d=n._getItem(c,f),m&&!m(d)||v.push(d);if(o&&o.order&&void 0==e&&this._sort(v,o.order),o&&o.fields){var g=o.fields;if(void 0!=e)d=this._filterFields(d,g);else for(u=0,p=v.length;p>u;u++)v[u]=this._filterFields(v[u],g)}if("Object"==a){var y,b={};for(u=0,p=v.length;p>u;u++)y=v[u],b[y.id]=y;return b}return void 0!=e?d:v},o.prototype.getIds=function(t){var e,i,o,n,s,r=this._data,a=t&&t.filter,h=t&&t.order,d=t&&t.type||this._options.type,l=Object.keys(r),c=[];if(a)if(h){for(s=[],e=0,i=l.length;i>e;e++)o=l[e],n=this._getItem(o,d),a(n)&&s.push(n); -for(this._sort(s,h),e=0,i=s.length;i>e;e++)c.push(s[e][this._fieldId])}else for(e=0,i=l.length;i>e;e++)o=l[e],n=this._getItem(o,d),a(n)&&c.push(n[this._fieldId]);else if(h){for(s=[],e=0,i=l.length;i>e;e++)o=l[e],s.push(r[o]);for(this._sort(s,h),e=0,i=s.length;i>e;e++)c.push(s[e][this._fieldId])}else for(e=0,i=l.length;i>e;e++)o=l[e],n=r[o],c.push(n[this._fieldId]);return c},o.prototype.getDataSet=function(){return this},o.prototype.forEach=function(t,e){var i,o,n,s,r=e&&e.filter,a=e&&e.type||this._options.type,h=this._data,d=Object.keys(h);if(e&&e.order){var l=this.get(e);for(i=0,o=l.length;o>i;i++)n=l[i],s=n[this._fieldId],t(n,s)}else for(i=0,o=d.length;o>i;i++)s=d[i],n=this._getItem(s,a),r&&!r(n)||t(n,s)},o.prototype.map=function(t,e){var i,o,n,s,r=e&&e.filter,a=e&&e.type||this._options.type,h=[],d=this._data,l=Object.keys(d);for(i=0,o=l.length;o>i;i++)n=l[i],s=this._getItem(n,a),r&&!r(s)||h.push(t(s,n));return e&&e.order&&this._sort(h,e.order),h},o.prototype._filterFields=function(t,e){if(!t)return t;var i,o,n={},s=Object.keys(t),r=s.length;if(Array.isArray(e))for(i=0;r>i;i++)o=s[i],-1!=e.indexOf(o)&&(n[o]=t[o]);else for(i=0;r>i;i++)o=s[i],e.hasOwnProperty(o)&&(n[e[o]]=t[o]);return n},o.prototype._sort=function(t,e){if(s.isString(e)){var i=e;t.sort(function(t,e){var o=t[i],n=e[i];return o>n?1:n>o?-1:0})}else{if("function"!=typeof e)throw new TypeError("Order must be a function or a string");t.sort(e)}},o.prototype.remove=function(t,e){var i,o,n,s=[];if(Array.isArray(t))for(i=0,o=t.length;o>i;i++)n=this._remove(t[i]),null!=n&&s.push(n);else n=this._remove(t),null!=n&&s.push(n);return s.length&&this._trigger("remove",{items:s},e),s},o.prototype._remove=function(t){if(s.isNumber(t)||s.isString(t)){if(this._data[t])return delete this._data[t],this.length--,t}else if(t instanceof Object){var e=t[this._fieldId];if(void 0!==e&&this._data[e])return delete this._data[e],this.length--,e}return null},o.prototype.clear=function(t){var e=Object.keys(this._data);return this._data={},this.length=0,this._trigger("remove",{items:e},t),e},o.prototype.max=function(t){var e,i,o=this._data,n=Object.keys(o),s=null,r=null;for(e=0,i=n.length;i>e;e++){var a=n[e],h=o[a],d=h[t];null!=d&&(!s||d>r)&&(s=h,r=d)}return s},o.prototype.min=function(t){var e,i,o=this._data,n=Object.keys(o),s=null,r=null;for(e=0,i=n.length;i>e;e++){var a=n[e],h=o[a],d=h[t];null!=d&&(!s||r>d)&&(s=h,r=d)}return s},o.prototype.distinct=function(t){var e,i,o,n=this._data,r=Object.keys(n),a=[],h=this._options.type&&this._options.type[t]||null,d=0;for(e=0,o=r.length;o>e;e++){var l=r[e],c=n[l],u=c[t],p=!1;for(i=0;d>i;i++)if(a[i]==u){p=!0;break}p||void 0===u||(a[d]=u,d++)}if(h)for(e=0,o=a.length;o>e;e++)a[e]=s.convert(a[e],h);return a},o.prototype._addItem=function(t){var e=t[this._fieldId];if(void 0!=e){if(this._data[e])throw new Error("Cannot add item: item with id "+e+" already exists")}else e=s.randomUUID(),t[this._fieldId]=e;var i,o,n={},r=Object.keys(t);for(i=0,o=r.length;o>i;i++){var a=r[i],h=this._type[a];n[a]=s.convert(t[a],h)}return this._data[e]=n,this.length++,e},o.prototype._getItem=function(t,e){var i,o,n,r,a=this._data[t];if(!a)return null;var h={},d=Object.keys(a);if(e)for(n=0,r=d.length;r>n;n++)i=d[n],o=a[i],h[i]=s.convert(o,e[i]);else for(n=0,r=d.length;r>n;n++)i=d[n],o=a[i],h[i]=o;return h},o.prototype._updateItem=function(t){var e=t[this._fieldId];if(void 0==e)throw new Error("Cannot update item: item has no id (item: "+JSON.stringify(t)+")");var i=this._data[e];if(!i)throw new Error("Cannot update item: no item with id "+e+" found");for(var o=Object.keys(t),n=0,r=o.length;r>n;n++){var a=o[n],h=this._type[a];i[a]=s.convert(t[a],h)}return e},t.exports=o},function(t,e){function i(t){this.delay=null,this.max=1/0,this._queue=[],this._timeout=null,this._extended=null,this.setOptions(t)}i.prototype.setOptions=function(t){t&&"undefined"!=typeof t.delay&&(this.delay=t.delay),t&&"undefined"!=typeof t.max&&(this.max=t.max),this._flushIfNeeded()},i.extend=function(t,e){var o=new i(e);if(void 0!==t.flush)throw new Error("Target object already has a property flush");t.flush=function(){o.flush()};var n=[{name:"flush",original:void 0}];if(e&&e.replace)for(var s=0;sthis.max&&this.flush(),clearTimeout(this._timeout),this.queue.length>0&&"number"==typeof this.delay){var t=this;this._timeout=setTimeout(function(){t.flush()},this.delay)}},i.prototype.flush=function(){for(;this._queue.length>0;){var t=this._queue.shift();t.fn.apply(t.context||t.fn,t.args||[])}},t.exports=i},function(t,e,i){function o(t,e){this._data=null,this._ids={},this.length=0,this._options=e||{},this._fieldId="id",this._subscribers={};var i=this;this.listener=function(){i._onEvent.apply(i,arguments)},this.setData(t)}var n=i(1),s=i(8);o.prototype.setData=function(t){var e,i,o,n;if(this._data&&(this._data.off&&this._data.off("*",this.listener),e=Object.keys(this._ids),this._ids={},this.length=0,this._trigger("remove",{items:e})),this._data=t,this._data){for(this._fieldId=this._options.fieldId||this._data&&this._data.options&&this._data.options.fieldId||"id",e=this._data.getIds({filter:this._options&&this._options.filter}),o=0,n=e.length;n>o;o++)i=e[o],this._ids[i]=!0;this.length=e.length,this._trigger("add",{items:e}),this._data.on&&this._data.on("*",this.listener)}},o.prototype.refresh=function(){var t,e,i,o=this._data.getIds({filter:this._options&&this._options.filter}),n=Object.keys(this._ids),s={},r=[],a=[];for(e=0,i=o.length;i>e;e++)t=o[e],s[t]=!0,this._ids[t]||(r.push(t),this._ids[t]=!0);for(e=0,i=n.length;i>e;e++)t=n[e],s[t]||(a.push(t),delete this._ids[t]);this.length+=r.length-a.length,r.length&&this._trigger("add",{items:r}),a.length&&this._trigger("remove",{items:a})},o.prototype.get=function(t){var e,i,o,s=this,r=n.getType(arguments[0]);"String"==r||"Number"==r||"Array"==r?(e=arguments[0],i=arguments[1],o=arguments[2]):(i=arguments[0],o=arguments[1]);var a=n.extend({},this._options,i);this._options.filter&&i&&i.filter&&(a.filter=function(t){return s._options.filter(t)&&i.filter(t)});var h=[];return void 0!=e&&h.push(e),h.push(a),h.push(o),this._data&&this._data.get.apply(this._data,h)},o.prototype.getIds=function(t){var e;if(this._data){var i,o=this._options.filter;i=t&&t.filter?o?function(e){return o(e)&&t.filter(e)}:t.filter:o,e=this._data.getIds({filter:i,order:t&&t.order})}else e=[];return e},o.prototype.map=function(t,e){var i=[];if(this._data){var o,n=this._options.filter;o=e&&e.filter?n?function(t){return n(t)&&e.filter(t)}:e.filter:n,i=this._data.map(t,{filter:o,order:e&&e.order})}else i=[];return i},o.prototype.getDataSet=function(){for(var t=this;t instanceof o;)t=t._data;return t||null},o.prototype._onEvent=function(t,e,i){var o,n,s,r,a=e&&e.items,h=this._data,d=[],l=[],c=[],u=[];if(a&&h){switch(t){case"add":for(o=0,n=a.length;n>o;o++)s=a[o],r=this.get(s),r&&(this._ids[s]=!0,l.push(s));break;case"update":for(o=0,n=a.length;n>o;o++)s=a[o],r=this.get(s),r?this._ids[s]?(c.push(s),d.push(e.data[o])):(this._ids[s]=!0,l.push(s)):this._ids[s]&&(delete this._ids[s],u.push(s));break;case"remove":for(o=0,n=a.length;n>o;o++)s=a[o],this._ids[s]&&(delete this._ids[s],u.push(s))}this.length+=l.length-u.length,l.length&&this._trigger("add",{items:l},i),c.length&&this._trigger("update",{items:c,data:d},i),u.length&&this._trigger("remove",{items:u},i)}},o.prototype.on=s.prototype.on,o.prototype.off=s.prototype.off,o.prototype._trigger=s.prototype._trigger,o.prototype.subscribe=o.prototype.on,o.prototype.unsubscribe=o.prototype.off,t.exports=o},function(t,e,i){function o(t,e,i){if(!(this instanceof o))throw new SyntaxError("Constructor must be called with the new operator");this.containerElement=t,this.width="400px",this.height="400px",this.margin=10,this.defaultXCenter="55%",this.defaultYCenter="50%",this.xLabel="x",this.yLabel="y",this.zLabel="z";var n=function(t){return t};this.xValueLabel=n,this.yValueLabel=n,this.zValueLabel=n,this.filterLabel="time",this.legendLabel="value",this.style=o.STYLE.DOT,this.showPerspective=!0,this.showGrid=!0,this.keepAspectRatio=!0,this.showShadow=!1,this.showGrayBottom=!1,this.showTooltip=!1,this.verticalRatio=.5,this.animationInterval=1e3,this.animationPreload=!1,this.camera=new p,this.camera.setArmRotation(1,.5),this.camera.setArmLength(1.7),this.eye=new c(0,0,-1),this.dataTable=null,this.dataPoints=null,this.colX=void 0,this.colY=void 0,this.colZ=void 0,this.colValue=void 0,this.colFilter=void 0,this.xMin=0,this.xStep=void 0,this.xMax=1,this.yMin=0,this.yStep=void 0,this.yMax=1,this.zMin=0,this.zStep=void 0,this.zMax=1,this.valueMin=0,this.valueMax=1,this.xBarWidth=1,this.yBarWidth=1,this.axisColor="#4D4D4D",this.gridColor="#D3D3D3",this.dataColor={fill:"#7DC1FF",stroke:"#3267D2",strokeWidth:1},this.dotSizeRatio=.02,this.create(),this.setOptions(i),e&&this.setData(e)}function n(t){return"clientX"in t?t.clientX:t.targetTouches[0]&&t.targetTouches[0].clientX||0}function s(t){return"clientY"in t?t.clientY:t.targetTouches[0]&&t.targetTouches[0].clientY||0}var r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol?"symbol":typeof t},a=i(12),h=i(8),d=i(10),l=i(1),c=i(13),u=i(14),p=i(15),f=i(16),m=i(17),v=i(18);a(o.prototype),o.prototype._setScale=function(){this.scale=new c(1/(this.xMax-this.xMin),1/(this.yMax-this.yMin),1/(this.zMax-this.zMin)),this.keepAspectRatio&&(this.scale.x3&&(this.colFilter=3);else{if(this.style!==o.STYLE.DOTCOLOR&&this.style!==o.STYLE.DOTSIZE&&this.style!==o.STYLE.BARCOLOR&&this.style!==o.STYLE.BARSIZE)throw'Unknown style "'+this.style+'"';this.colX=0,this.colY=1,this.colZ=2,this.colValue=3,t.getNumberOfColumns()>4&&(this.colFilter=4)}},o.prototype.getNumberOfRows=function(t){return t.length},o.prototype.getNumberOfColumns=function(t){var e=0;for(var i in t[0])t[0].hasOwnProperty(i)&&e++;return e},o.prototype.getDistinctValues=function(t,e){for(var i=[],o=0;ot[o][e]&&(i.min=t[o][e]),i.maxt;t++){var f=(t-u)/(p-u),m=240*f,g=this._hsv2rgb(m,1,1);c.strokeStyle=g,c.beginPath(),c.moveTo(h,r+t),c.lineTo(a,r+t),c.stroke()}c.strokeStyle=this.axisColor,c.strokeRect(h,r,i,s)}if(this.style===o.STYLE.DOTSIZE&&(c.strokeStyle=this.axisColor,c.fillStyle=this.dataColor.fill,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===o.STYLE.DOTCOLOR||this.style===o.STYLE.DOTSIZE){var y=5,b=new v(this.valueMin,this.valueMax,(this.valueMax-this.valueMin)/5,!0);for(b.start(),b.getCurrent()0?this.yMin:this.yMax,n=this._convert3Dto2D(new c(_,r,this.zMin)),Math.cos(2*w)>0?(m.textAlign="center",m.textBaseline="top",n.y+=b):Math.sin(2*w)<0?(m.textAlign="right",m.textBaseline="middle"):(m.textAlign="left",m.textBaseline="middle"),m.fillStyle=this.axisColor,m.fillText(" "+this.xValueLabel(i.getCurrent())+" ",n.x,n.y),i.next()}for(m.lineWidth=1,o=void 0===this.defaultYStep,i=new v(this.yMin,this.yMax,this.yStep,o),i.start(),i.getCurrent()0?this.xMin:this.xMax,n=this._convert3Dto2D(new c(s,i.getCurrent(),this.zMin)),Math.cos(2*w)<0?(m.textAlign="center",m.textBaseline="top",n.y+=b):Math.sin(2*w)>0?(m.textAlign="right",m.textBaseline="middle"):(m.textAlign="left",m.textBaseline="middle"),m.fillStyle=this.axisColor,m.fillText(" "+this.yValueLabel(i.getCurrent())+" ",n.x,n.y),i.next();for(m.lineWidth=1,o=void 0===this.defaultZStep,i=new v(this.zMin,this.zMax,this.zStep,o),i.start(),i.getCurrent()0?this.xMin:this.xMax,r=Math.sin(w)<0?this.yMin:this.yMax;!i.end();)t=this._convert3Dto2D(new c(s,r,i.getCurrent())),m.strokeStyle=this.axisColor,m.beginPath(),m.moveTo(t.x,t.y),m.lineTo(t.x-b,t.y),m.stroke(),m.textAlign="right",m.textBaseline="middle",m.fillStyle=this.axisColor,m.fillText(this.zValueLabel(i.getCurrent())+" ",t.x-5,t.y),i.next();m.lineWidth=1,t=this._convert3Dto2D(new c(s,r,this.zMin)),e=this._convert3Dto2D(new c(s,r,this.zMax)),m.strokeStyle=this.axisColor,m.beginPath(),m.moveTo(t.x,t.y),m.lineTo(e.x,e.y),m.stroke(),m.lineWidth=1,u=this._convert3Dto2D(new c(this.xMin,this.yMin,this.zMin)),p=this._convert3Dto2D(new c(this.xMax,this.yMin,this.zMin)),m.strokeStyle=this.axisColor,m.beginPath(),m.moveTo(u.x,u.y),m.lineTo(p.x,p.y),m.stroke(),u=this._convert3Dto2D(new c(this.xMin,this.yMax,this.zMin)),p=this._convert3Dto2D(new c(this.xMax,this.yMax,this.zMin)),m.strokeStyle=this.axisColor,m.beginPath(),m.moveTo(u.x,u.y),m.lineTo(p.x,p.y),m.stroke(),m.lineWidth=1,t=this._convert3Dto2D(new c(this.xMin,this.yMin,this.zMin)),e=this._convert3Dto2D(new c(this.xMin,this.yMax,this.zMin)),m.strokeStyle=this.axisColor,m.beginPath(),m.moveTo(t.x,t.y),m.lineTo(e.x,e.y),m.stroke(),t=this._convert3Dto2D(new c(this.xMax,this.yMin,this.zMin)),e=this._convert3Dto2D(new c(this.xMax,this.yMax,this.zMin)),m.strokeStyle=this.axisColor,m.beginPath(),m.moveTo(t.x,t.y),m.lineTo(e.x,e.y),m.stroke();var x=this.xLabel;x.length>0&&(l=.1/this.scale.y,s=(this.xMin+this.xMax)/2,r=Math.cos(w)>0?this.yMin-l:this.yMax+l,n=this._convert3Dto2D(new c(s,r,this.zMin)),Math.cos(2*w)>0?(m.textAlign="center",m.textBaseline="top"):Math.sin(2*w)<0?(m.textAlign="right",m.textBaseline="middle"):(m.textAlign="left",m.textBaseline="middle"),m.fillStyle=this.axisColor,m.fillText(x,n.x,n.y));var k=this.yLabel;k.length>0&&(d=.1/this.scale.x,s=Math.sin(w)>0?this.xMin-d:this.xMax+d,r=(this.yMin+this.yMax)/2,n=this._convert3Dto2D(new c(s,r,this.zMin)),Math.cos(2*w)<0?(m.textAlign="center",m.textBaseline="top"):Math.sin(2*w)>0?(m.textAlign="right",m.textBaseline="middle"):(m.textAlign="left",m.textBaseline="middle"),m.fillStyle=this.axisColor,m.fillText(k,n.x,n.y));var O=this.zLabel;O.length>0&&(h=30,s=Math.cos(w)>0?this.xMin:this.xMax,r=Math.sin(w)<0?this.yMin:this.yMax,a=(this.zMin+this.zMax)/2,n=this._convert3Dto2D(new c(s,r,a)),m.textAlign="right",m.textBaseline="middle",m.fillStyle=this.axisColor,m.fillText(O,n.x-h,n.y))},o.prototype._hsv2rgb=function(t,e,i){var o,n,s,r,a,h;switch(r=i*e,a=Math.floor(t/60),h=r*(1-Math.abs(t/60%2-1)),a){case 0:o=r,n=h,s=0;break;case 1:o=h,n=r,s=0;break;case 2:o=0,n=r,s=h;break;case 3:o=0,n=h,s=r;break;case 4:o=h,n=0,s=r;break;case 5:o=r,n=0,s=h;break;default:o=0,n=0,s=0}return"RGB("+parseInt(255*o)+","+parseInt(255*n)+","+parseInt(255*s)+")"},o.prototype._redrawDataGrid=function(){var t,e,i,n,s,r,a,h,d,l,u,p,f=this.frame.canvas,m=f.getContext("2d");if(m.lineJoin="round",m.lineCap="round",!(void 0===this.dataPoints||this.dataPoints.length<=0)){for(s=0;s0}else r=!0;r?(p=(t.point.z+e.point.z+i.point.z+n.point.z)/4,d=240*(1-(p-this.zMin)*this.scale.z/this.verticalRatio),l=1,this.showShadow?(u=Math.min(1+x.x/k/2,1),a=this._hsv2rgb(d,l,u),h=a):(u=1,a=this._hsv2rgb(d,l,u),h=this.axisColor)):(a="gray",h=this.axisColor),m.lineWidth=this._getStrokeWidth(t),m.fillStyle=a,m.strokeStyle=h,m.beginPath(),m.moveTo(t.screen.x,t.screen.y),m.lineTo(e.screen.x,e.screen.y),m.lineTo(n.screen.x,n.screen.y),m.lineTo(i.screen.x,i.screen.y),m.closePath(),m.fill(),m.stroke()}}else for(s=0;su&&(u=0);var p,f,m;this.style===o.STYLE.DOTCOLOR?(p=240*(1-(d.point.value-this.valueMin)*this.scale.value),f=this._hsv2rgb(p,1,1),m=this._hsv2rgb(p,1,.8)):this.style===o.STYLE.DOTSIZE?(f=this.dataColor.fill,m=this.dataColor.stroke):(p=240*(1-(d.point.z-this.zMin)*this.scale.z/this.verticalRatio),f=this._hsv2rgb(p,1,1),m=this._hsv2rgb(p,1,.8)),i.lineWidth=this._getStrokeWidth(d),i.strokeStyle=m,i.fillStyle=f,i.beginPath(),i.arc(d.screen.x,d.screen.y,u,0,2*Math.PI,!0),i.fill(),i.stroke()}}},o.prototype._redrawDataBar=function(){var t,e,i,n,s=this.frame.canvas,r=s.getContext("2d");if(!(void 0===this.dataPoints||this.dataPoints.length<=0)){for(t=0;t0){for(t=this.dataPoints[0],o.lineWidth=this._getStrokeWidth(t),o.lineJoin="round",o.lineCap="round",o.strokeStyle=this.dataColor.stroke,o.beginPath(),o.moveTo(t.screen.x,t.screen.y),e=1;e0?1:0>t?-1:0}var o=e[0],n=e[1],s=e[2],r=i((n.x-o.x)*(t.y-o.y)-(n.y-o.y)*(t.x-o.x)),a=i((s.x-n.x)*(t.y-n.y)-(s.y-n.y)*(t.x-n.x)),h=i((o.x-s.x)*(t.y-s.y)-(o.y-s.y)*(t.x-s.x));return!(0!=r&&0!=a&&r!=a||0!=a&&0!=h&&a!=h||0!=r&&0!=h&&r!=h)},o.prototype._dataPointFromXY=function(t,e){var i,n=100,s=null,r=null,a=null,h=new u(t,e);if(this.style===o.STYLE.BAR||this.style===o.STYLE.BARCOLOR||this.style===o.STYLE.BARSIZE)for(i=this.dataPoints.length-1;i>=0;i--){s=this.dataPoints[i];var d=s.surfaces;if(d)for(var l=d.length-1;l>=0;l--){var c=d[l],p=c.corners,f=[p[0].screen,p[1].screen,p[2].screen],m=[p[2].screen,p[3].screen,p[0].screen];if(this._insideTriangle(h,f)||this._insideTriangle(h,m))return s}}else for(i=0;ib)&&n>b&&(a=b,r=s)}}return r},o.prototype._showTooltip=function(t){var e,i,o;this.tooltip?(e=this.tooltip.dom.content,i=this.tooltip.dom.line,o=this.tooltip.dom.dot):(e=document.createElement("div"),e.style.position="absolute",e.style.padding="10px",e.style.border="1px solid #4d4d4d",e.style.color="#1a1a1a",e.style.background="rgba(255,255,255,0.7)",e.style.borderRadius="2px",e.style.boxShadow="5px 5px 10px rgba(128,128,128,0.5)",i=document.createElement("div"),i.style.position="absolute",i.style.height="40px",i.style.width="0",i.style.borderLeft="1px solid #4d4d4d",o=document.createElement("div"),o.style.position="absolute",o.style.height="0",o.style.width="0",o.style.border="5px solid #4d4d4d",o.style.borderRadius="5px",this.tooltip={dataPoint:null,dom:{content:e,line:i,dot:o}}),this._hideTooltip(),this.tooltip.dataPoint=t,"function"==typeof this.showTooltip?e.innerHTML=this.showTooltip(t.point):e.innerHTML="
"+this.xLabel+":"+t.point.x+"
"+this.yLabel+":"+t.point.y+"
"+this.zLabel+":"+t.point.z+"
",e.style.left="0",e.style.top="0",this.frame.appendChild(e),this.frame.appendChild(i),this.frame.appendChild(o);var n=e.offsetWidth,s=e.offsetHeight,r=i.offsetHeight,a=o.offsetWidth,h=o.offsetHeight,d=t.screen.x-n/2;d=Math.min(Math.max(d,10),this.frame.clientWidth-10-n),i.style.left=t.screen.x+"px",i.style.top=t.screen.y-r+"px",e.style.left=d+"px",e.style.top=t.screen.y-r-s+"px",o.style.left=t.screen.x-a/2+"px",o.style.top=t.screen.y-h/2+"px"},o.prototype._hideTooltip=function(){if(this.tooltip){this.tooltip.dataPoint=null;for(var t in this.tooltip.dom)if(this.tooltip.dom.hasOwnProperty(t)){var e=this.tooltip.dom[t];e&&e.parentNode&&e.parentNode.removeChild(e)}}},t.exports=o},function(t,e){function i(t){return t?o(t):void 0}function o(t){for(var e in i.prototype)t[e]=i.prototype[e];return t}t.exports=i,i.prototype.on=i.prototype.addEventListener=function(t,e){return this._callbacks=this._callbacks||{},(this._callbacks[t]=this._callbacks[t]||[]).push(e),this},i.prototype.once=function(t,e){function i(){o.off(t,i),e.apply(this,arguments)}var o=this;return this._callbacks=this._callbacks||{},i.fn=e,this.on(t,i),this},i.prototype.off=i.prototype.removeListener=i.prototype.removeAllListeners=i.prototype.removeEventListener=function(t,e){if(this._callbacks=this._callbacks||{},0==arguments.length)return this._callbacks={},this;var i=this._callbacks[t];if(!i)return this;if(1==arguments.length)return delete this._callbacks[t],this;for(var o,n=0;no;++o)i[o].apply(this,e)}return this},i.prototype.listeners=function(t){return this._callbacks=this._callbacks||{},this._callbacks[t]||[]},i.prototype.hasListeners=function(t){return!!this.listeners(t).length}},function(t,e){function i(t,e,i){this.x=void 0!==t?t:0,this.y=void 0!==e?e:0,this.z=void 0!==i?i:0}i.subtract=function(t,e){var o=new i;return o.x=t.x-e.x,o.y=t.y-e.y,o.z=t.z-e.z,o},i.add=function(t,e){var o=new i;return o.x=t.x+e.x,o.y=t.y+e.y,o.z=t.z+e.z,o},i.avg=function(t,e){return new i((t.x+e.x)/2,(t.y+e.y)/2,(t.z+e.z)/2)},i.crossProduct=function(t,e){var o=new i;return o.x=t.y*e.z-t.z*e.y,o.y=t.z*e.x-t.x*e.z,o.z=t.x*e.y-t.y*e.x,o},i.prototype.length=function(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z)},t.exports=i},function(t,e){function i(t,e){this.x=void 0!==t?t:0,this.y=void 0!==e?e:0}t.exports=i},function(t,e,i){function o(){this.armLocation=new n,this.armRotation={},this.armRotation.horizontal=0,this.armRotation.vertical=0,this.armLength=1.7,this.cameraLocation=new n,this.cameraRotation=new n(.5*Math.PI,0,0),this.calculateCameraOrientation()}var n=i(13);o.prototype.setArmLocation=function(t,e,i){this.armLocation.x=t,this.armLocation.y=e,this.armLocation.z=i,this.calculateCameraOrientation()},o.prototype.setArmRotation=function(t,e){void 0!==t&&(this.armRotation.horizontal=t),void 0!==e&&(this.armRotation.vertical=e,this.armRotation.vertical<0&&(this.armRotation.vertical=0),this.armRotation.vertical>.5*Math.PI&&(this.armRotation.vertical=.5*Math.PI)),void 0===t&&void 0===e||this.calculateCameraOrientation()},o.prototype.getArmRotation=function(){var t={};return t.horizontal=this.armRotation.horizontal,t.vertical=this.armRotation.vertical,t},o.prototype.setArmLength=function(t){void 0!==t&&(this.armLength=t,this.armLength<.71&&(this.armLength=.71),this.armLength>5&&(this.armLength=5),this.calculateCameraOrientation())},o.prototype.getArmLength=function(){return this.armLength},o.prototype.getCameraLocation=function(){return this.cameraLocation},o.prototype.getCameraRotation=function(){return this.cameraRotation},o.prototype.calculateCameraOrientation=function(){this.cameraLocation.x=this.armLocation.x-this.armLength*Math.sin(this.armRotation.horizontal)*Math.cos(this.armRotation.vertical),this.cameraLocation.y=this.armLocation.y-this.armLength*Math.cos(this.armRotation.horizontal)*Math.cos(this.armRotation.vertical),this.cameraLocation.z=this.armLocation.z+this.armLength*Math.sin(this.armRotation.vertical),this.cameraRotation.x=Math.PI/2-this.armRotation.vertical,this.cameraRotation.y=0,this.cameraRotation.z=-this.armRotation.horizontal},t.exports=o},function(t,e,i){function o(t,e,i){this.data=t,this.column=e,this.graph=i,this.index=void 0,this.value=void 0,this.values=i.getDistinctValues(t.get(),this.column),this.values.sort(function(t,e){return t>e?1:e>t?-1:0}),this.values.length>0&&this.selectValue(0),this.dataPoints=[],this.loaded=!1,this.onLoadCallback=void 0,i.animationPreload?(this.loaded=!1,this.loadInBackground()):this.loaded=!0}var n=i(10);o.prototype.isLoaded=function(){return this.loaded},o.prototype.getLoadedProgress=function(){for(var t=this.values.length,e=0;this.dataPoints[e];)e++;return Math.round(e/t*100)},o.prototype.getLabel=function(){return this.graph.filterLabel},o.prototype.getColumn=function(){return this.column},o.prototype.getSelectedValue=function(){return void 0!==this.index?this.values[this.index]:void 0},o.prototype.getValues=function(){return this.values},o.prototype.getValue=function(t){if(t>=this.values.length)throw"Error: index out of range";return this.values[t]},o.prototype._getDataPoints=function(t){if(void 0===t&&(t=this.index),void 0===t)return[];var e;if(this.dataPoints[t])e=this.dataPoints[t];else{var i={};i.column=this.column,i.value=this.values[t];var o=new n(this.data,{filter:function(t){return t[i.column]==i.value}}).get();e=this.graph._getDataPoints(o),this.dataPoints[t]=e}return e},o.prototype.setOnLoadCallback=function(t){this.onLoadCallback=t},o.prototype.selectValue=function(t){if(t>=this.values.length)throw"Error: index out of range";this.index=t,this.value=this.values[t]},o.prototype.loadInBackground=function(t){void 0===t&&(t=0);var e=this.graph.frame;if(t0&&(t--,this.setIndex(t))},o.prototype.next=function(){var t=this.getIndex();t0?this.setIndex(0):this.index=void 0},o.prototype.setIndex=function(t){if(!(to&&(o=0),o>this.values.length-1&&(o=this.values.length-1),o},o.prototype.indexToLeft=function(t){var e=parseFloat(this.frame.bar.style.width)-this.frame.slide.clientWidth-10,i=t/(this.values.length-1)*e,o=i+3;return o},o.prototype._onMouseMove=function(t){var e=t.clientX-this.startClientX,i=this.startSlideX+e,o=this.leftToIndex(i);this.setIndex(o),n.preventDefault()},o.prototype._onMouseUp=function(t){this.frame.style.cursor="auto",n.removeEventListener(document,"mousemove",this.onmousemove),n.removeEventListener(document,"mouseup",this.onmouseup),n.preventDefault()},t.exports=o},function(t,e){function i(t,e,i,o){this._start=0,this._end=0,this._step=1,this.prettyStep=!0,this.precision=5,this._current=0,this.setRange(t,e,i,o)}i.prototype.setRange=function(t,e,i,o){this._start=t?t:0,this._end=e?e:0,this.setStep(i,o)},i.prototype.setStep=function(t,e){void 0===t||0>=t||(void 0!==e&&(this.prettyStep=e),this.prettyStep===!0?this._step=i.calculatePrettyStep(t):this._step=t)},i.calculatePrettyStep=function(t){var e=function(t){return Math.log(t)/Math.LN10},i=Math.pow(10,Math.round(e(t))),o=2*Math.pow(10,Math.round(e(t/2))),n=5*Math.pow(10,Math.round(e(t/5))),s=i;return Math.abs(o-t)<=Math.abs(s-t)&&(s=o),Math.abs(n-t)<=Math.abs(s-t)&&(s=n),0>=s&&(s=1),s},i.prototype.getCurrent=function(){return parseFloat(this._current.toPrecision(this.precision))},i.prototype.getStep=function(){return this._step},i.prototype.start=function(){this._current=this._start-this._start%this._step},i.prototype.next=function(){this._current+=this._step},i.prototype.end=function(){return this._current>this._end},t.exports=i},function(t,e,i){function o(t){return t&&t.__esModule?t:{"default":t}}function n(t,e,i,o){if(!(this instanceof n))throw new SyntaxError("Constructor must be called with the new operator");if(!(Array.isArray(i)||i instanceof c||i instanceof u)&&i instanceof Object){var s=o;o=i,i=s}var r=this;this.defaultOptions={start:null,end:null,autoResize:!0,throttleRedraw:0,orientation:{axis:"bottom",item:"bottom"},rtl:!1,moment:d,width:null,height:null,maxHeight:null,minHeight:null},this.options=l.deepExtend({},this.defaultOptions),this._create(t),this.components=[],this.body={dom:this.dom,domProps:this.props,emitter:{on:this.on.bind(this),off:this.off.bind(this),emit:this.emit.bind(this)},hiddenDates:[],util:{getScale:function(){return r.timeAxis.step.scale},getStep:function(){return r.timeAxis.step.step},toScreen:r._toScreen.bind(r),toGlobalScreen:r._toGlobalScreen.bind(r),toTime:r._toTime.bind(r),toGlobalTime:r._toGlobalTime.bind(r)}},this.range=new p(this.body),this.components.push(this.range),this.body.range=this.range,this.timeAxis=new m(this.body),this.timeAxis2=null,this.components.push(this.timeAxis),this.currentTime=new v(this.body),this.components.push(this.currentTime),this.itemSet=new y(this.body,this.options),this.components.push(this.itemSet),this.itemsData=null,this.groupsData=null,this.on("tap",function(t){r.emit("click",r.getEventProperties(t))}),this.on("doubletap",function(t){r.emit("doubleClick",r.getEventProperties(t))}),this.dom.root.oncontextmenu=function(t){r.emit("contextmenu",r.getEventProperties(t))},this.fitDone=!1,this.on("changed",function(){if(null!=this.itemsData&&!r.fitDone)if(r.fitDone=!0,void 0!=r.options.start||void 0!=r.options.end){if(void 0==r.options.start||void 0==r.options.end)var t=r.getItemRange();var e=void 0!=r.options.start?r.options.start:t.min,i=void 0!=r.options.end?r.options.end:t.max;r.setWindow(e,i,{animation:!1})}else r.fit({animation:!1})}),o&&this.setOptions(o),i&&this.setGroups(i),e&&this.setItems(e),this._redraw()}var s=i(20),r=o(s),a=i(26),h=o(a),d=(i(12),i(22),i(2)),l=i(1),c=i(8),u=i(10),p=i(27),f=i(30),m=i(41),v=i(46),g=i(44),y=i(31),b=i(26).printStyle,w=i(47).allOptions,_=i(47).configureOptions;n.prototype=new f,n.prototype._createConfigurator=function(){return new r["default"](this,this.dom.container,_)},n.prototype.redraw=function(){this.itemSet&&this.itemSet.markDirty({refreshItems:!0}),this._redraw()},n.prototype.setOptions=function(t){var e=h["default"].validate(t,w);if(e===!0&&console.log("%cErrors have been found in the supplied options object.",b),f.prototype.setOptions.call(this,t),"type"in t&&t.type!==this.options.type){this.options.type=t.type;var i=this.itemsData;if(i){var o=this.getSelection();this.setItems(null),this.setItems(i),this.setSelection(o)}}},n.prototype.setItems=function(t){var e;e=t?t instanceof c||t instanceof u?t:new c(t,{type:{start:"Date",end:"Date"}}):null,this.itemsData=e,this.itemSet&&this.itemSet.setItems(e)},n.prototype.setGroups=function(t){var e;e=t?t instanceof c||t instanceof u?t:new c(t):null,this.groupsData=e,this.itemSet.setGroups(e)},n.prototype.setData=function(t){t&&t.groups&&this.setGroups(t.groups),t&&t.items&&this.setItems(t.items)},n.prototype.setSelection=function(t,e){this.itemSet&&this.itemSet.setSelection(t),e&&e.focus&&this.focus(t,e)},n.prototype.getSelection=function(){return this.itemSet&&this.itemSet.getSelection()||[]},n.prototype.focus=function(t,e){if(this.itemsData&&void 0!=t){var i=Array.isArray(t)?t:[t],o=this.itemsData.getDataSet().get(i,{type:{start:"Date",end:"Date"}}),n=null,s=null;if(o.forEach(function(t){var e=t.start.valueOf(),i="end"in t?t.end.valueOf():t.start.valueOf();(null===n||n>e)&&(n=e),(null===s||i>s)&&(s=i)}),null!==n&&null!==s){var r=(n+s)/2,a=Math.max(this.range.end-this.range.start,1.1*(s-n)),h=e&&void 0!==e.animation?e.animation:!0;this.range.setRange(r-a/2,r+a/2,h)}}},n.prototype.fit=function(t){var e,i=t&&void 0!==t.animation?t.animation:!0,o=this.itemsData&&this.itemsData.getDataSet();1===o.length&&void 0===o.get()[0].end?(e=this.getDataRange(),this.moveTo(e.min.valueOf(),{animation:i})):(e=this.getItemRange(),this.range.setRange(e.min,e.max,i))},n.prototype.getItemRange=function(){var t=this,e=this.getDataRange(),i=null!==e.min?e.min.valueOf():null,o=null!==e.max?e.max.valueOf():null,n=null,s=null;if(null!=i&&null!=o){var r,a,h,d,c;!function(){var e=function(t){return l.convert(t.data.start,"Date").valueOf()},u=function(t){var e=void 0!=t.data.end?t.data.end:t.data.start;return l.convert(e,"Date").valueOf()};r=o-i,0>=r&&(r=10),a=r/t.props.center.width,l.forEach(t.itemSet.items,function(t){t.show(),t.repositionX();var r=e(t),h=u(t);if(this.options.rtl)var d=r-(t.getWidthRight()+10)*a,l=h+(t.getWidthLeft()+10)*a;else var d=r-(t.getWidthLeft()+10)*a,l=h+(t.getWidthRight()+10)*a;i>d&&(i=d,n=t),l>o&&(o=l,s=t)}.bind(t)),n&&s&&(h=n.getWidthLeft()+10,d=s.getWidthRight()+10,c=t.props.center.width-h-d,c>0&&(t.options.rtl?(i=e(n)-d*r/c,o=u(s)+h*r/c):(i=e(n)-h*r/c,o=u(s)+d*r/c)))}()}return{min:null!=i?new Date(i):null,max:null!=o?new Date(o):null}},n.prototype.getDataRange=function(){var t=null,e=null,i=this.itemsData&&this.itemsData.getDataSet();return i&&i.forEach(function(i){var o=l.convert(i.start,"Date").valueOf(),n=l.convert(void 0!=i.end?i.end:i.start,"Date").valueOf();(null===t||t>o)&&(t=o),(null===e||n>e)&&(e=n)}),{min:null!=t?new Date(t):null,max:null!=e?new Date(e):null}},n.prototype.getEventProperties=function(t){var e=t.center?t.center.x:t.clientX,i=t.center?t.center.y:t.clientY;if(this.options.rtl)var o=l.getAbsoluteRight(this.dom.centerContainer)-e;else var o=e-l.getAbsoluteLeft(this.dom.centerContainer);var n=i-l.getAbsoluteTop(this.dom.centerContainer),s=this.itemSet.itemFromTarget(t),r=this.itemSet.groupFromTarget(t),a=g.customTimeFromTarget(t),h=this.itemSet.options.snap||null,d=this.body.util.getScale(),c=this.body.util.getStep(),u=this._toTime(o),p=h?h(u,d,c):u,f=l.getTarget(t),m=null;return null!=s?m="item":null!=a?m="custom-time":l.hasParent(f,this.timeAxis.dom.foreground)?m="axis":this.timeAxis2&&l.hasParent(f,this.timeAxis2.dom.foreground)?m="axis":l.hasParent(f,this.itemSet.dom.labelSet)?m="group-label":l.hasParent(f,this.currentTime.bar)?m="current-time":l.hasParent(f,this.dom.center)&&(m="background"),{event:t,item:s?s.id:null,group:r?r.groupId:null,what:m,pageX:t.srcEvent?t.srcEvent.pageX:t.pageX,pageY:t.srcEvent?t.srcEvent.pageY:t.pageY,x:o,y:n,time:u,snappedTime:p}},t.exports=n},function(t,e,i){function o(t){return t&&t.__esModule?t:{"default":t}}function n(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(e,"__esModule",{value:!0});var s="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol?"symbol":typeof t},r=function(){function t(t,e){for(var i=0;i0&&this._makeItem([]),this._makeHeader(n),this._handleObject(this.configureOptions[n],[n])),i++);this.options.showButton===!0&&!function(){var e=document.createElement("div");e.className="vis-configuration vis-config-button",e.innerHTML="generate options",e.onclick=function(){t._printOptions()},e.onmouseover=function(){e.className="vis-configuration vis-config-button hover"},e.onmouseout=function(){e.className="vis-configuration vis-config-button"},t.optionsContainer=document.createElement("div"),t.optionsContainer.className="vis-configuration vis-config-option-container",t.domElements.push(t.optionsContainer),t.domElements.push(e)}(),this._push()}},{key:"_push",value:function(){this.wrapper=document.createElement("div"),this.wrapper.className="vis-configuration-wrapper",this.container.appendChild(this.wrapper);for(var t=0;t1?o-1:0),r=1;o>r;r++)n[r-1]=e[r];return n.forEach(function(t){s.appendChild(t)}),i.domElements.push(s),{v:i.domElements.length}}();if("object"===("undefined"==typeof a?"undefined":s(a)))return a.v}return 0}},{key:"_makeHeader",value:function(t){var e=document.createElement("div");e.className="vis-configuration vis-config-header",e.innerHTML=t,this._makeItem([],e)}},{key:"_makeLabel",value:function(t,e){var i=arguments.length<=2||void 0===arguments[2]?!1:arguments[2],o=document.createElement("div");return o.className="vis-configuration vis-config-label vis-config-s"+e.length,i===!0?o.innerHTML=""+t+":":o.innerHTML=t+":",o}},{key:"_makeDropdown",value:function(t,e,i){var o=document.createElement("select");o.className="vis-configuration vis-config-select";var n=0;void 0!==e&&-1!==t.indexOf(e)&&(n=t.indexOf(e));for(var s=0;se&&n>e*c?(a.min=Math.ceil(e*c),l=a.min,d="range increased"):n>e/c&&(a.min=Math.ceil(e/c),l=a.min,d="range increased"),e*c>s&&1!==s&&(a.max=Math.ceil(e*c),l=a.max,d="range increased"),a.value=e}else a.value=o;var u=document.createElement("input");u.className="vis-configuration vis-config-rangeinput",u.value=a.value;var p=this;a.onchange=function(){u.value=this.value,p._update(Number(this.value),i)},a.oninput=function(){u.value=this.value};var f=this._makeLabel(i[i.length-1],i),m=this._makeItem(i,f,a,u);""!==d&&this.popupHistory[m]!==l&&(this.popupHistory[m]=l,this._setupPopup(d,m))}},{key:"_setupPopup",value:function(t,e){var i=this;if(this.initialized===!0&&this.allowCreation===!0&&this.popupCountervar options = "+JSON.stringify(t,null,2)+""}},{key:"getOptions",value:function(){for(var t={},e=0;es;s++)for(r=0;rp?p+1:p;var f=l/this.r,m=a.RGBToHSV(this.color.r,this.color.g,this.color.b);m.h=p,m.s=f;var v=a.HSVToRGB(m.h,m.s,m.v);v.a=this.color.a,this.color=v,this.initialColorDiv.style.backgroundColor="rgba("+this.initialColor.r+","+this.initialColor.g+","+this.initialColor.b+","+this.initialColor.a+")",this.newColorDiv.style.backgroundColor="rgba("+this.color.r+","+this.color.g+","+this.color.b+","+this.color.a+")"}}]),t}();e["default"]=h},function(t,e,i){if("undefined"!=typeof window){var o=i(23),n=window.Hammer||i(24);t.exports=o(n,{preventDefault:"mouse"})}else t.exports=function(){throw Error("hammer.js is only available in a browser, not in node.js.")}},function(t,e,i){var o,n,s;!function(i){n=[],o=i,s="function"==typeof o?o.apply(e,n):o,!(void 0!==s&&(t.exports=s))}(function(){var t=null;return function e(i,o){function n(t){return t.match(/[^ ]+/g)}function s(e){if("hammer.input"!==e.type){if(e.srcEvent._handled||(e.srcEvent._handled={}),e.srcEvent._handled[e.type])return;e.srcEvent._handled[e.type]=!0}var i=!1;e.stopPropagation=function(){i=!0};var o=e.srcEvent.stopPropagation.bind(e.srcEvent);"function"==typeof o&&(e.srcEvent.stopPropagation=function(){o(),e.stopPropagation()}),e.firstTarget=t;for(var n=t;n&&!i;){var s=n.hammer;if(s)for(var r,a=0;a0?d._handlers[t]=o:(i.off(t,s),delete d._handlers[t]))}),d},d.emit=function(e,o){t=o.target,i.emit(e,o)},d.destroy=function(){var t=i.element.hammer,e=t.indexOf(d);-1!==e&&t.splice(e,1),t.length||delete i.element.hammer,d._handlers={},i.destroy()},d}})},function(t,e,i){var o;!function(n,s,r,a){function h(t,e,i){return setTimeout(p(t,i),e)}function d(t,e,i){return Array.isArray(t)?(l(t,i[e],i),!0):!1}function l(t,e,i){var o;if(t)if(t.forEach)t.forEach(e,i);else if(t.length!==a)for(o=0;o\s*\(/gm,"{anonymous}()@"):"Unknown Stack Trace",s=n.console&&(n.console.warn||n.console.log);return s&&s.call(n.console,o,i),t.apply(this,arguments)}}function u(t,e,i){var o,n=e.prototype;o=t.prototype=Object.create(n),o.constructor=t,o._super=n,i&&ct(o,i)}function p(t,e){return function(){return t.apply(e,arguments)}}function f(t,e){return typeof t==ft?t.apply(e?e[0]||a:a,e):t}function m(t,e){return t===a?e:t}function v(t,e,i){l(w(e),function(e){t.addEventListener(e,i,!1)})}function g(t,e,i){l(w(e),function(e){t.removeEventListener(e,i,!1)})}function y(t,e){for(;t;){if(t==e)return!0;t=t.parentNode}return!1}function b(t,e){return t.indexOf(e)>-1}function w(t){return t.trim().split(/\s+/g)}function _(t,e,i){if(t.indexOf&&!i)return t.indexOf(e);for(var o=0;oi[e]}):o.sort()),o}function O(t,e){for(var i,o,n=e[0].toUpperCase()+e.slice(1),s=0;s1&&!i.firstMultiple?i.firstMultiple=N(e):1===n&&(i.firstMultiple=!1);var s=i.firstInput,r=i.firstMultiple,a=r?r.center:s.center,h=e.center=z(o);e.timeStamp=gt(),e.deltaTime=e.timeStamp-s.timeStamp,e.angle=B(a,h),e.distance=A(a,h),P(i,e),e.offsetDirection=R(e.deltaX,e.deltaY);var d=L(e.deltaTime,e.deltaX,e.deltaY);e.overallVelocityX=d.x,e.overallVelocityY=d.y,e.overallVelocity=vt(d.x)>vt(d.y)?d.x:d.y,e.scale=r?j(r.pointers,o):1,e.rotation=r?F(r.pointers,o):0,e.maxPointers=i.prevInput?e.pointers.length>i.prevInput.maxPointers?e.pointers.length:i.prevInput.maxPointers:e.pointers.length,I(i,e);var l=t.element;y(e.srcEvent.target,l)&&(l=e.srcEvent.target),e.target=l}function P(t,e){var i=e.center,o=t.offsetDelta||{},n=t.prevDelta||{},s=t.prevInput||{};e.eventType!==Et&&s.eventType!==It||(n=t.prevDelta={x:s.deltaX||0,y:s.deltaY||0},o=t.offsetDelta={x:i.x,y:i.y}),e.deltaX=n.x+(i.x-o.x),e.deltaY=n.y+(i.y-o.y)}function I(t,e){var i,o,n,s,r=t.lastInterval||e,h=e.timeStamp-r.timeStamp;if(e.eventType!=Nt&&(h>Tt||r.velocity===a)){var d=e.deltaX-r.deltaX,l=e.deltaY-r.deltaY,c=L(h,d,l);o=c.x,n=c.y,i=vt(c.x)>vt(c.y)?c.x:c.y,s=R(d,l),t.lastInterval=e}else i=r.velocity,o=r.velocityX,n=r.velocityY,s=r.direction;e.velocity=i,e.velocityX=o,e.velocityY=n,e.direction=s}function N(t){for(var e=[],i=0;in;)i+=t[n].clientX,o+=t[n].clientY,n++;return{x:mt(i/e),y:mt(o/e)}}function L(t,e,i){return{x:e/t||0,y:i/t||0}}function R(t,e){return t===e?zt:vt(t)>=vt(e)?0>t?Lt:Rt:0>e?At:Bt}function A(t,e,i){i||(i=Wt);var o=e[i[0]]-t[i[0]],n=e[i[1]]-t[i[1]];return Math.sqrt(o*o+n*n)}function B(t,e,i){i||(i=Wt);var o=e[i[0]]-t[i[0]],n=e[i[1]]-t[i[1]];return 180*Math.atan2(n,o)/Math.PI}function F(t,e){return B(e[1],e[0],Yt)+B(t[1],t[0],Yt)}function j(t,e){return A(e[0],e[1],Yt)/A(t[0],t[1],Yt)}function H(){this.evEl=Vt,this.evWin=Ut,this.allow=!0,this.pressed=!1,S.apply(this,arguments)}function W(){this.evEl=Zt,this.evWin=Kt,S.apply(this,arguments),this.store=this.manager.session.pointerEvents=[]}function Y(){this.evTarget=Qt,this.evWin=$t,this.started=!1,S.apply(this,arguments)}function G(t,e){var i=x(t.touches),o=x(t.changedTouches);return e&(It|Nt)&&(i=k(i.concat(o),"identifier",!0)),[i,o]}function V(){this.evTarget=ee,this.targetIds={},S.apply(this,arguments)}function U(t,e){var i=x(t.touches),o=this.targetIds;if(e&(Et|Pt)&&1===i.length)return o[i[0].identifier]=!0,[i,i];var n,s,r=x(t.changedTouches),a=[],h=this.target;if(s=i.filter(function(t){return y(t.target,h)}),e===Et)for(n=0;na&&(e.push(t),a=e.length-1):n&(It|Nt)&&(i=!0),0>a||(e[a]=t,this.callback(this.manager,n,{pointers:e,changedPointers:[t],pointerType:s,srcEvent:t}),i&&e.splice(a,1))}});var Jt={touchstart:Et,touchmove:Pt,touchend:It,touchcancel:Nt},Qt="touchstart",$t="touchstart touchmove touchend touchcancel";u(Y,S,{handler:function(t){var e=Jt[t.type];if(e===Et&&(this.started=!0),this.started){var i=G.call(this,t,e);e&(It|Nt)&&i[0].length-i[1].length===0&&(this.started=!1),this.callback(this.manager,e,{pointers:i[0],changedPointers:i[1],pointerType:Mt,srcEvent:t})}}});var te={touchstart:Et,touchmove:Pt,touchend:It,touchcancel:Nt},ee="touchstart touchmove touchend touchcancel";u(V,S,{handler:function(t){var e=te[t.type],i=U.call(this,t,e);i&&this.callback(this.manager,e,{pointers:i[0],changedPointers:i[1],pointerType:Mt,srcEvent:t})}}),u(q,S,{handler:function(t,e,i){var o=i.pointerType==Mt,n=i.pointerType==St;if(o)this.mouse.allow=!1;else if(n&&!this.mouse.allow)return;e&(It|Nt)&&(this.mouse.allow=!0),this.callback(t,e,i)},destroy:function(){this.touch.destroy(),this.mouse.destroy()}});var ie=O(pt.style,"touchAction"),oe=ie!==a,ne="compute",se="auto",re="manipulation",ae="none",he="pan-x",de="pan-y";X.prototype={set:function(t){t==ne&&(t=this.compute()),oe&&this.manager.element.style&&(this.manager.element.style[ie]=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()))}),Z(t.join(" "))},preventDefaults:function(t){if(!oe){var e=t.srcEvent,i=t.offsetDirection;if(this.manager.session.prevented)return void e.preventDefault();var o=this.actions,n=b(o,ae),s=b(o,de),r=b(o,he);if(n){var a=1===t.pointers.length,h=t.distance<2,d=t.deltaTime<250;if(a&&h&&d)return}if(!r||!s)return n||s&&i&Ft||r&&i&jt?this.preventSrc(e):void 0}},preventSrc:function(t){this.manager.session.prevented=!0,t.preventDefault()}};var le=1,ce=2,ue=4,pe=8,fe=pe,me=16,ve=32;K.prototype={defaults:{},set:function(t){return ct(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=$(t,this),e[t.id]||(e[t.id]=t,t.recognizeWith(this)),this},dropRecognizeWith:function(t){return d(t,"dropRecognizeWith",this)?this:(t=$(t,this),delete this.simultaneous[t.id],this)},requireFailure:function(t){if(d(t,"requireFailure",this))return this;var e=this.requireFail;return t=$(t,this),-1===_(e,t)&&(e.push(t),t.requireFailure(this)),this},dropRequireFailure:function(t){if(d(t,"dropRequireFailure",this))return this;t=$(t,this);var e=_(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(e,t)}var i=this,o=this.state;pe>o&&e(i.options.event+J(o)),e(i.options.event),t.additionalEvent&&e(t.additionalEvent),o>=pe&&e(i.options.event+J(o))},tryEmit:function(t){return this.canEmit()?this.emit(t):void(this.state=ve)},canEmit:function(){for(var t=0;ts?Lt:Rt,i=s!=this.pX,o=Math.abs(t.deltaX)):(n=0===r?zt:0>r?At:Bt,i=r!=this.pY,o=Math.abs(t.deltaY))),t.direction=n,i&&o>e.threshold&&n&e.direction},attrTest:function(t){return tt.prototype.attrTest.call(this,t)&&(this.state&ce||!(this.state&ce)&&this.directionTest(t))},emit:function(t){this.pX=t.deltaX,this.pY=t.deltaY;var e=Q(t.direction);e&&(t.additionalEvent=this.options.event+e),this._super.emit.call(this,t)}}),u(it,tt,{defaults:{event:"pinch",threshold:0,pointers:2},getTouchAction:function(){return[ae]},attrTest:function(t){return this._super.attrTest.call(this,t)&&(Math.abs(t.scale-1)>this.options.threshold||this.state&ce)},emit:function(t){if(1!==t.scale){var e=t.scale<1?"in":"out";t.additionalEvent=this.options.event+e}this._super.emit.call(this,t)}}),u(ot,K,{defaults:{event:"press",pointers:1,time:251,threshold:9},getTouchAction:function(){return[se]},process:function(t){var e=this.options,i=t.pointers.length===e.pointers,o=t.distancee.time;if(this._input=t,!o||!i||t.eventType&(It|Nt)&&!n)this.reset();else if(t.eventType&Et)this.reset(),this._timer=h(function(){this.state=fe,this.tryEmit()},e.time,this);else if(t.eventType&It)return fe;return ve},reset:function(){clearTimeout(this._timer)},emit:function(t){this.state===fe&&(t&&t.eventType&It?this.manager.emit(this.options.event+"up",t):(this._input.timeStamp=gt(),this.manager.emit(this.options.event,this._input)))}}),u(nt,tt,{defaults:{event:"rotate",threshold:0,pointers:2},getTouchAction:function(){return[ae]},attrTest:function(t){return this._super.attrTest.call(this,t)&&(Math.abs(t.rotation)>this.options.threshold||this.state&ce)}}),u(st,tt,{defaults:{event:"swipe",threshold:10,velocity:.3,direction:Ft|jt,pointers:1},getTouchAction:function(){return et.prototype.getTouchAction.call(this)},attrTest:function(t){var e,i=this.options.direction;return i&(Ft|jt)?e=t.overallVelocity:i&Ft?e=t.overallVelocityX:i&jt&&(e=t.overallVelocityY),this._super.attrTest.call(this,t)&&i&t.offsetDirection&&t.distance>this.options.threshold&&t.maxPointers==this.options.pointers&&vt(e)>this.options.velocity&&t.eventType&It},emit:function(t){var e=Q(t.offsetDirection);e&&this.manager.emit(this.options.event+e,t),this.manager.emit(this.options.event,t)}}),u(rt,K,{defaults:{event:"tap",pointers:1,taps:1,interval:300,time:250,threshold:9,posThreshold:10},getTouchAction:function(){return[re]},process:function(t){var e=this.options,i=t.pointers.length===e.pointers,o=t.distances.distance?console.log('%cUnknown option detected: "'+e+'" in '+t.printLocation(n.path,e,"")+"Perhaps it was misplaced? Matching option found at: "+t.printLocation(s.path,s.closestMatch,""),d):n.distance<=r?console.log('%cUnknown option detected: "'+e+'". Did you mean "'+n.closestMatch+'"?'+t.printLocation(n.path,e),d):console.log('%cUnknown option detected: "'+e+'". Did you mean one of these: '+t.print(Object.keys(i))+t.printLocation(o,e),d),a=!0}},{key:"findInOptions",value:function(e,i,o){var n=arguments.length<=3||void 0===arguments[3]?!1:arguments[3],s=1e9,a="",h=[],d=e.toLowerCase(),l=void 0;for(var c in i){var u=void 0;if(void 0!==i[c].__type__&&n===!0){var p=t.findInOptions(e,i[c],r.copyAndExtendArray(o,c));s>p.distance&&(a=p.closestMatch,h=p.path,s=p.distance,l=p.indexMatch)}else-1!==c.toLowerCase().indexOf(d)&&(l=c),u=t.levenshteinDistance(e,c),s>u&&(a=c,h=r.copyArray(o),s=u)}return{closestMatch:a,path:h,distance:s,indexMatch:l}}},{key:"printLocation",value:function(t,e){for(var i=arguments.length<=2||void 0===arguments[2]?"Problem value found at: \n":arguments[2],o="\n\n"+i+"options = {\n",n=0;ns;s++)o+=" ";o+=t[n]+": {\n"}for(var r=0;ru,r=s||null===n?n:l+(n-l)*i,p=s||null===a?a:c+(a-c)*i;y=h._applyRange(r,p),d.updateHiddenDates(h.options.moment,h.body,h.options.hiddenDates),v=v||y,y&&h.body.emitter.emit("rangechange",{start:new Date(h.start),end:new Date(h.end),byUser:o}),s?v&&h.body.emitter.emit("rangechanged",{start:new Date(h.start),end:new Date(h.end),byUser:o}):h.animationTimer=setTimeout(w,20)}};return g()}var y=this._applyRange(n,a);if(d.updateHiddenDates(this.options.moment,this.body,this.options.hiddenDates),y){var b={start:new Date(this.start),end:new Date(this.end),byUser:o};this.body.emitter.emit("rangechange",b),this.body.emitter.emit("rangechanged",b)}},o.prototype._cancelAnimation=function(){this.animationTimer&&(clearTimeout(this.animationTimer),this.animationTimer=null)},o.prototype._applyRange=function(t,e){var i,o=null!=t?r.convert(t,"Date").valueOf():this.start,n=null!=e?r.convert(e,"Date").valueOf():this.end,s=null!=this.options.max?r.convert(this.options.max,"Date").valueOf():null,a=null!=this.options.min?r.convert(this.options.min,"Date").valueOf():null;if(isNaN(o)||null===o)throw new Error('Invalid start "'+t+'"');if(isNaN(n)||null===n)throw new Error('Invalid end "'+e+'"');if(o>n&&(n=o),null!==a&&a>o&&(i=a-o,o+=i,n+=i,null!=s&&n>s&&(n=s)),null!==s&&n>s&&(i=n-s,o-=i,n-=i,null!=a&&a>o&&(o=a)),null!==this.options.zoomMin){var h=parseFloat(this.options.zoomMin);0>h&&(h=0),h>n-o&&(this.end-this.start===h&&o>this.start&&nd&&(d=0),n-o>d&&(this.end-this.start===d&&othis.end?(o=this.start,n=this.end):(i=n-o-d,o+=i/2,n-=i/2))}var l=this.start!=o||this.end!=n;return o>=this.start&&o<=this.end||n>=this.start&&n<=this.end||this.start>=o&&this.start<=n||this.end>=o&&this.end<=n||this.body.emitter.emit("checkRangedItems"),this.start=o,this.end=n,l},o.prototype.getRange=function(){return{start:this.start,end:this.end}},o.prototype.conversion=function(t,e){return o.conversion(this.start,this.end,t,e)},o.conversion=function(t,e,i,o){return void 0===o&&(o=0),0!=i&&e-t!=0?{offset:t,scale:i/(e-t-o)}:{offset:0,scale:1}},o.prototype._onDragStart=function(t){this.deltaDifference=0,this.previousDelta=0,this.options.moveable&&this._isInsideRange(t)&&this.props.touch.allowDragging&&(this.props.touch.start=this.start,this.props.touch.end=this.end,this.props.touch.dragging=!0,this.body.dom.root&&(this.body.dom.root.style.cursor="move"))},o.prototype._onDrag=function(t){if(this.props.touch.dragging&&this.options.moveable&&this.props.touch.allowDragging){var e=this.options.direction;n(e);var i="horizontal"==e?t.deltaX:t.deltaY;i-=this.deltaDifference;var o=this.props.touch.end-this.props.touch.start,s=d.getHiddenDurationBetween(this.body.hiddenDates,this.start,this.end);o-=s;var r="horizontal"==e?this.body.domProps.center.width:this.body.domProps.center.height;if(this.options.rtl)var a=i/r*o;else var a=-i/r*o;var h=this.props.touch.start+a,l=this.props.touch.end+a,c=d.snapAwayFromHidden(this.body.hiddenDates,h,this.previousDelta-i,!0),u=d.snapAwayFromHidden(this.body.hiddenDates,l,this.previousDelta-i,!0);if(c!=h||u!=l)return this.deltaDifference+=i,this.props.touch.start=c,this.props.touch.end=u,void this._onDrag(t);this.previousDelta=i,this._applyRange(h,l);var p=new Date(this.start),f=new Date(this.end);this.body.emitter.emit("rangechange",{start:p,end:f,byUser:!0})}},o.prototype._onDragEnd=function(t){this.props.touch.dragging&&this.options.moveable&&this.props.touch.allowDragging&&(this.props.touch.dragging=!1,this.body.dom.root&&(this.body.dom.root.style.cursor="auto"),this.body.emitter.emit("rangechanged",{start:new Date(this.start),end:new Date(this.end),byUser:!0}))},o.prototype._onMouseWheel=function(t){if(this.options.zoomable&&this.options.moveable&&this._isInsideRange(t)&&(!this.options.zoomKey||t[this.options.zoomKey])){var e=0;if(t.wheelDelta?e=t.wheelDelta/120:t.detail&&(e=-t.detail/3),e){var i;i=0>e?1-e/5:1/(1+e/5);var o=this.getPointer({x:t.clientX,y:t.clientY},this.body.dom.center),n=this._pointerToDate(o);this.zoom(i,n,e)}t.preventDefault()}},o.prototype._onTouch=function(t){this.props.touch.start=this.start,this.props.touch.end=this.end,this.props.touch.allowDragging=!0,this.props.touch.center=null,this.scaleOffset=0,this.deltaDifference=0},o.prototype._onPinch=function(t){if(this.options.zoomable&&this.options.moveable){this.props.touch.allowDragging=!1,this.props.touch.center||(this.props.touch.center=this.getPointer(t.center,this.body.dom.center));var e=1/(t.scale+this.scaleOffset),i=this._pointerToDate(this.props.touch.center),o=d.getHiddenDurationBetween(this.body.hiddenDates,this.start,this.end),n=d.getHiddenDurationBefore(this.options.moment,this.body.hiddenDates,this,i),s=o-n,r=i-n+(this.props.touch.start-(i-n))*e,a=i+s+(this.props.touch.end-(i+s))*e;this.startToFront=0>=1-e,this.endToFront=0>=e-1;var h=d.snapAwayFromHidden(this.body.hiddenDates,r,1-e,!0),l=d.snapAwayFromHidden(this.body.hiddenDates,a,e-1,!0);h==r&&l==a||(this.props.touch.start=h,this.props.touch.end=l,this.scaleOffset=1-t.scale,r=h,a=l),this.setRange(r,a,!1,!0),this.startToFront=!1,this.endToFront=!0}},o.prototype._isInsideRange=function(t){var e=t.center?t.center.x:t.clientX;if(this.options.rtl)var i=e-r.getAbsoluteLeft(this.body.dom.centerContainer);else var i=r.getAbsoluteRight(this.body.dom.centerContainer)-e;var o=this.body.util.toTime(i);return o>=this.start&&o<=this.end},o.prototype._pointerToDate=function(t){var e,i=this.options.direction;if(n(i),"horizontal"==i)return this.body.util.toTime(t.x).valueOf();var o=this.body.domProps.center.height;return e=this.conversion(o),t.y/e.scale+e.offset},o.prototype.getPointer=function(t,e){return this.options.rtl?{x:r.getAbsoluteRight(e)-t.x,y:t.y-r.getAbsoluteTop(e)}:{x:t.x-r.getAbsoluteLeft(e),y:t.y-r.getAbsoluteTop(e)}},o.prototype.zoom=function(t,e,i){null==e&&(e=(this.start+this.end)/2);var o=d.getHiddenDurationBetween(this.body.hiddenDates,this.start,this.end),n=d.getHiddenDurationBefore(this.options.moment,this.body.hiddenDates,this,e),s=o-n,r=e-n+(this.start-(e-n))*t,a=e+s+(this.end-(e+s))*t;this.startToFront=!(i>0),this.endToFront=!(-i>0);var h=d.snapAwayFromHidden(this.body.hiddenDates,r,i,!0),l=d.snapAwayFromHidden(this.body.hiddenDates,a,-i,!0);h==r&&l==a||(r=h,a=l),this.setRange(r,a,!1,!0),this.startToFront=!1,this.endToFront=!0},o.prototype.move=function(t){var e=this.end-this.start,i=this.start+e*t,o=this.end+e*t;this.start=i,this.end=o},o.prototype.moveTo=function(t){var e=(this.start+this.end)/2,i=e-t,o=this.start-i,n=this.end-i;this.setRange(o,n)},t.exports=o},function(t,e){function i(t,e){this.options=null,this.props=null}i.prototype.setOptions=function(t){t&&util.extend(this.options,t)},i.prototype.redraw=function(){return!1},i.prototype.destroy=function(){},i.prototype._isResized=function(){var t=this.props._previousWidth!==this.props.width||this.props._previousHeight!==this.props.height;return this.props._previousWidth=this.props.width,this.props._previousHeight=this.props.height,t},t.exports=i},function(t,e){e.convertHiddenOptions=function(t,i,o){if(o&&!Array.isArray(o))return e.convertHiddenOptions(t,i,[o]);if(i.hiddenDates=[],o&&1==Array.isArray(o)){for(var n=0;n=4*a){var u=0,p=s.clone();switch(o[h].repeat){case"daily":d.day()!=l.day()&&(u=1),d.dayOfYear(n.dayOfYear()),d.year(n.year()),d.subtract(7,"days"),l.dayOfYear(n.dayOfYear()),l.year(n.year()),l.subtract(7-u,"days"),p.add(1,"weeks");break;case"weekly":var f=l.diff(d,"days"),m=d.day();d.date(n.date()),d.month(n.month()),d.year(n.year()),l=d.clone(),d.day(m),l.day(m),l.add(f,"days"),d.subtract(1,"weeks"),l.subtract(1,"weeks"),p.add(1,"weeks");break;case"monthly":d.month()!=l.month()&&(u=1),d.month(n.month()),d.year(n.year()),d.subtract(1,"months"),l.month(n.month()),l.year(n.year()),l.subtract(1,"months"),l.add(u,"months"),p.add(1,"months");break;case"yearly":d.year()!=l.year()&&(u=1),d.year(n.year()),d.subtract(1,"years"),l.year(n.year()),l.subtract(1,"years"),l.add(u,"years"),p.add(1,"years");break;default:return void console.log("Wrong repeat format, allowed are: daily, weekly, monthly, yearly. Given:",o[h].repeat)}for(;p>d;)switch(i.hiddenDates.push({start:d.valueOf(),end:l.valueOf()}),o[h].repeat){case"daily":d.add(1,"days"),l.add(1,"days");break;case"weekly":d.add(1,"weeks"),l.add(1,"weeks");break;case"monthly":d.add(1,"months"),l.add(1,"months");break;case"yearly":d.add(1,"y"),l.add(1,"y");break;default:return void console.log("Wrong repeat format, allowed are: daily, weekly, monthly, yearly. Given:",o[h].repeat)}i.hiddenDates.push({start:d.valueOf(),end:l.valueOf()})}}e.removeDuplicates(i);var v=e.isHidden(i.range.start,i.hiddenDates),g=e.isHidden(i.range.end,i.hiddenDates),y=i.range.start,b=i.range.end;1==v.hidden&&(y=1==i.range.startToFront?v.startDate-1:v.endDate+1),1==g.hidden&&(b=1==i.range.endToFront?g.startDate-1:g.endDate+1),1!=v.hidden&&1!=g.hidden||i.range._applyRange(y,b)}},e.removeDuplicates=function(t){for(var e=t.hiddenDates,i=[],o=0;o=e[o].start&&e[n].end<=e[o].end?e[n].remove=!0:e[n].start>=e[o].start&&e[n].start<=e[o].end?(e[o].end=e[n].end,e[n].remove=!0):e[n].end>=e[o].start&&e[n].end<=e[o].end&&(e[o].start=e[n].start,e[n].remove=!0));for(var o=0;o=r&&a>n){o=!0;break}}if(1==o&&n=e&&i>r&&(o+=r-s)}return o},e.correctTimeForHidden=function(t,i,o,n){return n=t(n).toDate().valueOf(),n-=e.getHiddenDurationBefore(t,i,o,n)},e.getHiddenDurationBefore=function(t,e,i,o){var n=0;o=t(o).toDate().valueOf();for(var s=0;s=i.start&&a=a&&(n+=a-r)}return n},e.getAccumulatedHiddenDuration=function(t,e,i){for(var o=0,n=0,s=e.start,r=0;r=e.start&&h=i)break;o+=h-a}} -return o},e.snapAwayFromHidden=function(t,i,o,n){var s=e.isHidden(i,t);return 1==s.hidden?0>o?1==n?s.startDate-(s.endDate-i)-1:s.startDate-1:1==n?s.endDate+(i-s.startDate)+1:s.endDate+1:i},e.isHidden=function(t,e){for(var i=0;i=o&&n>t)return{hidden:!0,startDate:o,endDate:n}}return{hidden:!1,startDate:o,endDate:n}}},function(t,e,i){function o(){}var n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol?"symbol":typeof t},s=i(12),r=i(22),a=i(25),h=i(1),d=(i(8),i(10),i(27),i(31),i(41)),l=i(42),c=i(29),u=i(44);s(o.prototype),o.prototype._create=function(t){function e(t){i.isActive()&&i.emit("mousewheel",t)}this.dom={},this.dom.container=t,this.dom.root=document.createElement("div"),this.dom.background=document.createElement("div"),this.dom.backgroundVertical=document.createElement("div"),this.dom.backgroundHorizontal=document.createElement("div"),this.dom.centerContainer=document.createElement("div"),this.dom.leftContainer=document.createElement("div"),this.dom.rightContainer=document.createElement("div"),this.dom.center=document.createElement("div"),this.dom.left=document.createElement("div"),this.dom.right=document.createElement("div"),this.dom.top=document.createElement("div"),this.dom.bottom=document.createElement("div"),this.dom.shadowTop=document.createElement("div"),this.dom.shadowBottom=document.createElement("div"),this.dom.shadowTopLeft=document.createElement("div"),this.dom.shadowBottomLeft=document.createElement("div"),this.dom.shadowTopRight=document.createElement("div"),this.dom.shadowBottomRight=document.createElement("div"),this.dom.root.className="vis-timeline",this.dom.background.className="vis-panel vis-background",this.dom.backgroundVertical.className="vis-panel vis-background vis-vertical",this.dom.backgroundHorizontal.className="vis-panel vis-background vis-horizontal",this.dom.centerContainer.className="vis-panel vis-center",this.dom.leftContainer.className="vis-panel vis-left",this.dom.rightContainer.className="vis-panel vis-right",this.dom.top.className="vis-panel vis-top",this.dom.bottom.className="vis-panel vis-bottom",this.dom.left.className="vis-content",this.dom.center.className="vis-content",this.dom.right.className="vis-content",this.dom.shadowTop.className="vis-shadow vis-top",this.dom.shadowBottom.className="vis-shadow vis-bottom",this.dom.shadowTopLeft.className="vis-shadow vis-top",this.dom.shadowBottomLeft.className="vis-shadow vis-bottom",this.dom.shadowTopRight.className="vis-shadow vis-top",this.dom.shadowBottomRight.className="vis-shadow vis-bottom",this.dom.root.appendChild(this.dom.background),this.dom.root.appendChild(this.dom.backgroundVertical),this.dom.root.appendChild(this.dom.backgroundHorizontal),this.dom.root.appendChild(this.dom.centerContainer),this.dom.root.appendChild(this.dom.leftContainer),this.dom.root.appendChild(this.dom.rightContainer),this.dom.root.appendChild(this.dom.top),this.dom.root.appendChild(this.dom.bottom),this.dom.centerContainer.appendChild(this.dom.center),this.dom.leftContainer.appendChild(this.dom.left),this.dom.rightContainer.appendChild(this.dom.right),this.dom.centerContainer.appendChild(this.dom.shadowTop),this.dom.centerContainer.appendChild(this.dom.shadowBottom),this.dom.leftContainer.appendChild(this.dom.shadowTopLeft),this.dom.leftContainer.appendChild(this.dom.shadowBottomLeft),this.dom.rightContainer.appendChild(this.dom.shadowTopRight),this.dom.rightContainer.appendChild(this.dom.shadowBottomRight),this.on("rangechange",function(){this.initialDrawDone===!0&&this._redraw()}.bind(this)),this.on("touch",this._onTouch.bind(this)),this.on("pan",this._onDrag.bind(this));var i=this;this.on("_change",function(t){t&&1==t.queue?i._redrawTimer||(i._redrawTimer=setTimeout(function(){i._redrawTimer=null,i._redraw()},0)):i._redraw()}),this.hammer=new r(this.dom.root);var o=this.hammer.get("pinch").set({enable:!0});a.disablePreventDefaultVertically(o),this.hammer.get("pan").set({threshold:5,direction:r.DIRECTION_HORIZONTAL}),this.listeners={};var n=["tap","doubletap","press","pinch","pan","panstart","panmove","panend"];if(n.forEach(function(t){var e=function(e){i.isActive()&&i.emit(t,e)};i.hammer.on(t,e),i.listeners[t]=e}),a.onTouch(this.hammer,function(t){i.emit("touch",t)}.bind(this)),a.onRelease(this.hammer,function(t){i.emit("release",t)}.bind(this)),this.dom.root.addEventListener("mousewheel",e),this.dom.root.addEventListener("DOMMouseScroll",e),this.props={root:{},background:{},centerContainer:{},leftContainer:{},rightContainer:{},center:{},left:{},right:{},top:{},bottom:{},border:{},scrollTop:0,scrollTopMin:0},this.customTimes=[],this.touch={},this.redrawCount=0,this.initialDrawDone=!1,!t)throw new Error("No container provided");t.appendChild(this.dom.root)},o.prototype.setOptions=function(t){if(t){var e=["width","height","minHeight","maxHeight","autoResize","start","end","clickToUse","dataAttributes","hiddenDates","locale","locales","moment","rtl","throttleRedraw"];if(h.selectiveExtend(e,this.options,t),this.options.rtl){var i=this.dom.leftContainer;this.dom.leftContainer=this.dom.rightContainer,this.dom.rightContainer=i,this.dom.container.style.direction="rtl",this.dom.backgroundVertical.className="vis-panel vis-background vis-vertical-rtl"}if(this.options.orientation={item:void 0,axis:void 0},"orientation"in t&&("string"==typeof t.orientation?this.options.orientation={item:t.orientation,axis:t.orientation}:"object"===n(t.orientation)&&("item"in t.orientation&&(this.options.orientation.item=t.orientation.item),"axis"in t.orientation&&(this.options.orientation.axis=t.orientation.axis))),"both"===this.options.orientation.axis){if(!this.timeAxis2){var o=this.timeAxis2=new d(this.body);o.setOptions=function(t){var e=t?h.extend({},t):{};e.orientation="top",d.prototype.setOptions.call(o,e)},this.components.push(o)}}else if(this.timeAxis2){var s=this.components.indexOf(this.timeAxis2);-1!==s&&this.components.splice(s,1),this.timeAxis2.destroy(),this.timeAxis2=null}if("function"==typeof t.drawPoints&&(t.drawPoints={onRender:t.drawPoints}),"hiddenDates"in this.options&&c.convertHiddenOptions(this.options.moment,this.body,this.options.hiddenDates),"clickToUse"in t&&(t.clickToUse?this.activator||(this.activator=new l(this.dom.root)):this.activator&&(this.activator.destroy(),delete this.activator)),"showCustomTime"in t)throw new Error("Option `showCustomTime` is deprecated. Create a custom time bar via timeline.addCustomTime(time [, id])");this._initAutoResize()}if(this.components.forEach(function(e){return e.setOptions(t)}),"configure"in t){this.configurator||(this.configurator=this._createConfigurator()),this.configurator.setOptions(t.configure);var r=h.deepExtend({},this.options);this.components.forEach(function(t){h.deepExtend(r,t.options)}),this.configurator.setModuleOptions({global:r})}this._origRedraw?this._redraw():(this._origRedraw=this._redraw.bind(this),this._redraw=h.throttle(this._origRedraw,this.options.throttleRedraw))},o.prototype.isActive=function(){return!this.activator||this.activator.active},o.prototype.destroy=function(){this.setItems(null),this.setGroups(null),this.off(),this._stopAutoResize(),this.dom.root.parentNode&&this.dom.root.parentNode.removeChild(this.dom.root),this.dom=null,this.activator&&(this.activator.destroy(),delete this.activator);for(var t in this.listeners)this.listeners.hasOwnProperty(t)&&delete this.listeners[t];this.listeners=null,this.hammer=null,this.components.forEach(function(t){return t.destroy()}),this.body=null},o.prototype.setCustomTime=function(t,e){var i=this.customTimes.filter(function(t){return e===t.options.id});if(0===i.length)throw new Error("No custom time bar found with id "+JSON.stringify(e));i.length>0&&i[0].setCustomTime(t)},o.prototype.getCustomTime=function(t){var e=this.customTimes.filter(function(e){return e.options.id===t});if(0===e.length)throw new Error("No custom time bar found with id "+JSON.stringify(t));return e[0].getCustomTime()},o.prototype.setCustomTimeTitle=function(t,e){var i=this.customTimes.filter(function(t){return t.options.id===e});if(0===i.length)throw new Error("No custom time bar found with id "+JSON.stringify(e));return i.length>0?i[0].setCustomTitle(t):void 0},o.prototype.getEventProperties=function(t){return{event:t}},o.prototype.addCustomTime=function(t,e){var i=void 0!==t?h.convert(t,"Date").valueOf():new Date,o=this.customTimes.some(function(t){return t.options.id===e});if(o)throw new Error("A custom time with id "+JSON.stringify(e)+" already exists");var n=new u(this.body,h.extend({},this.options,{time:i,id:e}));return this.customTimes.push(n),this.components.push(n),this._redraw(),e},o.prototype.removeCustomTime=function(t){var e=this.customTimes.filter(function(e){return e.options.id===t});if(0===e.length)throw new Error("No custom time bar found with id "+JSON.stringify(t));e.forEach(function(t){this.customTimes.splice(this.customTimes.indexOf(t),1),this.components.splice(this.components.indexOf(t),1),t.destroy()}.bind(this))},o.prototype.getVisibleItems=function(){return this.itemSet&&this.itemSet.getVisibleItems()||[]},o.prototype.fit=function(t){var e=this.getDataRange();if(null!==e.min||null!==e.max){var i=e.max-e.min,o=new Date(e.min.valueOf()-.01*i),n=new Date(e.max.valueOf()+.01*i),s=t&&void 0!==t.animation?t.animation:!0;this.range.setRange(o,n,s)}},o.prototype.getDataRange=function(){throw new Error("Cannot invoke abstract method getDataRange")},o.prototype.setWindow=function(t,e,i){var o;if(1==arguments.length){var n=arguments[0];o=void 0!==n.animation?n.animation:!0,this.range.setRange(n.start,n.end,o)}else o=i&&void 0!==i.animation?i.animation:!0,this.range.setRange(t,e,o)},o.prototype.moveTo=function(t,e){var i=this.range.end-this.range.start,o=h.convert(t,"Date").valueOf(),n=o-i/2,s=o+i/2,r=e&&void 0!==e.animation?e.animation:!0;this.range.setRange(n,s,r)},o.prototype.getWindow=function(){var t=this.range.getRange();return{start:new Date(t.start),end:new Date(t.end)}},o.prototype.redraw=function(){this._redraw()},o.prototype._redraw=function(){this.redrawCount++;var t=!1,e=this.options,i=this.props,o=this.dom;if(o&&o.container&&0!=o.root.clientWidth){c.updateHiddenDates(this.options.moment,this.body,this.options.hiddenDates),"top"==e.orientation?(h.addClassName(o.root,"vis-top"),h.removeClassName(o.root,"vis-bottom")):(h.removeClassName(o.root,"vis-top"),h.addClassName(o.root,"vis-bottom")),o.root.style.maxHeight=h.option.asSize(e.maxHeight,""),o.root.style.minHeight=h.option.asSize(e.minHeight,""),o.root.style.width=h.option.asSize(e.width,""),i.border.left=(o.centerContainer.offsetWidth-o.centerContainer.clientWidth)/2,i.border.right=i.border.left,i.border.top=(o.centerContainer.offsetHeight-o.centerContainer.clientHeight)/2,i.border.bottom=i.border.top;var n=o.root.offsetHeight-o.root.clientHeight,s=o.root.offsetWidth-o.root.clientWidth;0===o.centerContainer.clientHeight&&(i.border.left=i.border.top,i.border.right=i.border.left),0===o.root.clientHeight&&(s=n),i.center.height=o.center.offsetHeight,i.left.height=o.left.offsetHeight,i.right.height=o.right.offsetHeight,i.top.height=o.top.clientHeight||-i.border.top,i.bottom.height=o.bottom.clientHeight||-i.border.bottom;var a=Math.max(i.left.height,i.center.height,i.right.height),d=i.top.height+a+i.bottom.height+n+i.border.top+i.border.bottom;o.root.style.height=h.option.asSize(e.height,d+"px"),i.root.height=o.root.offsetHeight,i.background.height=i.root.height-n;var l=i.root.height-i.top.height-i.bottom.height-n;i.centerContainer.height=l,i.leftContainer.height=l,i.rightContainer.height=i.leftContainer.height,i.root.width=o.root.offsetWidth,i.background.width=i.root.width-s,i.left.width=o.leftContainer.clientWidth||-i.border.left,i.leftContainer.width=i.left.width,i.right.width=o.rightContainer.clientWidth||-i.border.right,i.rightContainer.width=i.right.width;var u=i.root.width-i.left.width-i.right.width-s;i.center.width=u,i.centerContainer.width=u,i.top.width=u,i.bottom.width=u,o.background.style.height=i.background.height+"px",o.backgroundVertical.style.height=i.background.height+"px",o.backgroundHorizontal.style.height=i.centerContainer.height+"px",o.centerContainer.style.height=i.centerContainer.height+"px",o.leftContainer.style.height=i.leftContainer.height+"px",o.rightContainer.style.height=i.rightContainer.height+"px",o.background.style.width=i.background.width+"px",o.backgroundVertical.style.width=i.centerContainer.width+"px",o.backgroundHorizontal.style.width=i.background.width+"px",o.centerContainer.style.width=i.center.width+"px",o.top.style.width=i.top.width+"px",o.bottom.style.width=i.bottom.width+"px",o.background.style.left="0",o.background.style.top="0",o.backgroundVertical.style.left=i.left.width+i.border.left+"px",o.backgroundVertical.style.top="0",o.backgroundHorizontal.style.left="0",o.backgroundHorizontal.style.top=i.top.height+"px",o.centerContainer.style.left=i.left.width+"px",o.centerContainer.style.top=i.top.height+"px",o.leftContainer.style.left="0",o.leftContainer.style.top=i.top.height+"px",o.rightContainer.style.left=i.left.width+i.center.width+"px",o.rightContainer.style.top=i.top.height+"px",o.top.style.left=i.left.width+"px",o.top.style.top="0",o.bottom.style.left=i.left.width+"px",o.bottom.style.top=i.top.height+i.centerContainer.height+"px",this._updateScrollTop();var p=this.props.scrollTop;"top"!=e.orientation.item&&(p+=Math.max(this.props.centerContainer.height-this.props.center.height-this.props.border.top-this.props.border.bottom,0)),o.center.style.left="0",o.center.style.top=p+"px",o.left.style.left="0",o.left.style.top=p+"px",o.right.style.left="0",o.right.style.top=p+"px";var f=0==this.props.scrollTop?"hidden":"",m=this.props.scrollTop==this.props.scrollTopMin?"hidden":"";o.shadowTop.style.visibility=f,o.shadowBottom.style.visibility=m,o.shadowTopLeft.style.visibility=f,o.shadowBottomLeft.style.visibility=m,o.shadowTopRight.style.visibility=f,o.shadowBottomRight.style.visibility=m;var v=this.props.center.height>this.props.centerContainer.height;this.hammer.get("pan").set({direction:v?r.DIRECTION_ALL:r.DIRECTION_HORIZONTAL}),this.components.forEach(function(e){t=e.redraw()||t});var g=5;if(t){if(this.redrawCount0&&(this.props.scrollTop=0),this.props.scrollTope;e++)o=this.selection[e],n=this.items[o],n&&n.unselect();for(this.selection=[],e=0,i=t.length;i>e;e++)o=t[e],n=this.items[o],n&&(this.selection.push(o),n.select())},o.prototype.getSelection=function(){return this.selection.concat([])},o.prototype.getVisibleItems=function(){var t=this.body.range.getRange();if(this.options.rtl)var e=this.body.util.toScreen(t.start),i=this.body.util.toScreen(t.end);else var i=this.body.util.toScreen(t.start),e=this.body.util.toScreen(t.end);var o=[];for(var n in this.groups)if(this.groups.hasOwnProperty(n))for(var s=this.groups[n],r=s.visibleItems,a=0;ae&&o.push(h.id):h.lefti&&o.push(h.id)}return o},o.prototype._deselect=function(t){for(var e=this.selection,i=0,o=e.length;o>i;i++)if(e[i]==t){e.splice(i,1);break}},o.prototype.redraw=function(){var t=this.options.margin,e=this.body.range,i=r.option.asSize,o=this.options,n=o.orientation.item,s=!1,a=this.dom.frame;this.props.top=this.body.domProps.top.height+this.body.domProps.border.top,this.options.rtl?this.props.right=this.body.domProps.right.width+this.body.domProps.border.right:this.props.left=this.body.domProps.left.width+this.body.domProps.border.left,a.className="vis-itemset",s=this._orderGroups()||s;var h=e.end-e.start,d=h!=this.lastVisibleInterval||this.props.width!=this.props.lastWidth;d&&(this.stackDirty=!0),this.lastVisibleInterval=h,this.props.lastWidth=this.props.width;var l=this.stackDirty,c=this._firstGroup(),u={item:t.item,axis:t.axis},p={item:t.item,axis:t.item.vertical/2},f=0,m=t.axis+t.item.vertical;return this.groups[y].redraw(e,p,l),r.forEach(this.groups,function(t){var i=t==c?u:p,o=t.redraw(e,i,l);s=o||s,f+=t.height}),f=Math.max(f,m),this.stackDirty=!1,a.style.height=i(f),this.props.width=a.offsetWidth,this.props.height=f,this.dom.axis.style.top=i("top"==n?this.body.domProps.top.height+this.body.domProps.border.top:this.body.domProps.top.height+this.body.domProps.centerContainer.height),this.options.rtl?this.dom.axis.style.right="0":this.dom.axis.style.left="0",s=this._isResized()||s},o.prototype._firstGroup=function(){var t="top"==this.options.orientation.item?0:this.groupIds.length-1,e=this.groupIds[t],i=this.groups[e]||this.groups[g];return i||null},o.prototype._updateUngrouped=function(){var t,e,i=this.groups[g];this.groups[y];if(this.groupsData){if(i){i.hide(),delete this.groups[g];for(e in this.items)if(this.items.hasOwnProperty(e)){t=this.items[e],t.parent&&t.parent.remove(t);var o=this._getGroupId(t.data),n=this.groups[o];n&&n.add(t)||t.hide()}}}else if(!i){var s=null,r=null;i=new c(s,r,this),this.groups[g]=i;for(e in this.items)this.items.hasOwnProperty(e)&&(t=this.items[e],i.add(t));i.show()}},o.prototype.getLabelSet=function(){return this.dom.labelSet},o.prototype.setItems=function(t){var e,i=this,o=this.itemsData;if(t){if(!(t instanceof a||t instanceof h))throw new TypeError("Data must be an instance of DataSet or DataView");this.itemsData=t}else this.itemsData=null;if(o&&(r.forEach(this.itemListeners,function(t,e){o.off(e,t)}),e=o.getIds(),this._onRemove(e)),this.itemsData){var n=this.id;r.forEach(this.itemListeners,function(t,e){i.itemsData.on(e,t,n)}),e=this.itemsData.getIds(),this._onAdd(e),this._updateUngrouped()}this.body.emitter.emit("_change",{queue:!0})},o.prototype.getItems=function(){return this.itemsData},o.prototype.setGroups=function(t){var e,i=this;if(this.groupsData&&(r.forEach(this.groupListeners,function(t,e){i.groupsData.off(e,t)}),e=this.groupsData.getIds(),this.groupsData=null,this._onRemoveGroups(e)),t){if(!(t instanceof a||t instanceof h))throw new TypeError("Data must be an instance of DataSet or DataView");this.groupsData=t}else this.groupsData=null;if(this.groupsData){var o=this.id;r.forEach(this.groupListeners,function(t,e){i.groupsData.on(e,t,o)}),e=this.groupsData.getIds(),this._onAddGroups(e)}this._updateUngrouped(),this._order(),this.body.emitter.emit("_change",{queue:!0})},o.prototype.getGroups=function(){return this.groupsData},o.prototype.removeItem=function(t){var e=this.itemsData.get(t),i=this.itemsData.getDataSet();e&&this.options.onRemove(e,function(e){e&&i.remove(t)})},o.prototype._getType=function(t){return t.type||this.options.type||(t.end?"range":"box")},o.prototype._getGroupId=function(t){var e=this._getType(t);return"background"==e&&void 0==t.group?y:this.groupsData?t.group:g},o.prototype._onUpdate=function(t){var e=this;t.forEach(function(t){var i,n=e.itemsData.get(t,e.itemOptions),s=e.items[t],r=e._getType(n),a=o.types[r];if(s&&(a&&s instanceof a?e._updateItem(s,n):(i=s.selected,e._removeItem(s),s=null)),!s){if(!a)throw"rangeoverflow"==r?new TypeError('Item type "rangeoverflow" is deprecated. Use css styling instead: .vis-item.vis-range .vis-item-content {overflow: visible;}'):new TypeError('Unknown item type "'+r+'"');s=new a(n,e.conversion,e.options),s.id=t,e._addItem(s),i&&(this.selection.push(t),s.select())}}.bind(this)),this._order(),this.stackDirty=!0,this.body.emitter.emit("_change",{queue:!0})},o.prototype._onAdd=o.prototype._onUpdate,o.prototype._onRemove=function(t){var e=0,i=this;t.forEach(function(t){var o=i.items[t];o&&(e++,i._removeItem(o))}),e&&(this._order(),this.stackDirty=!0,this.body.emitter.emit("_change",{queue:!0}))},o.prototype._order=function(){r.forEach(this.groups,function(t){t.order()})},o.prototype._onUpdateGroups=function(t){this._onAddGroups(t)},o.prototype._onAddGroups=function(t){var e=this;t.forEach(function(t){var i=e.groupsData.get(t),o=e.groups[t];if(o)o.setData(i);else{if(t==g||t==y)throw new Error("Illegal group id. "+t+" is a reserved id.");var n=Object.create(e.options);r.extend(n,{height:null}),o=new c(t,i,e),e.groups[t]=o;for(var s in e.items)if(e.items.hasOwnProperty(s)){var a=e.items[s];a.data.group==t&&o.add(a)}o.order(),o.show()}}),this.body.emitter.emit("_change",{queue:!0})},o.prototype._onRemoveGroups=function(t){var e=this.groups;t.forEach(function(t){var i=e[t];i&&(i.hide(),delete e[t])}),this.markDirty(),this.body.emitter.emit("_change",{queue:!0})},o.prototype._orderGroups=function(){if(this.groupsData){var t=this.groupsData.getIds({order:this.options.groupOrder}),e=!r.equalArray(t,this.groupIds);if(e){var i=this.groups;t.forEach(function(t){i[t].hide()}),t.forEach(function(t){i[t].show()}),this.groupIds=t}return e}return!1},o.prototype._addItem=function(t){this.items[t.id]=t;var e=this._getGroupId(t.data),i=this.groups[e];i&&i.add(t)},o.prototype._updateItem=function(t,e){var i=t.data.group,o=t.data.subgroup;if(t.setData(e),i!=t.data.group||o!=t.data.subgroup){var n=this.groups[i];n&&n.remove(t);var s=this._getGroupId(t.data),r=this.groups[s];r&&r.add(t)}},o.prototype._removeItem=function(t){t.hide(),delete this.items[t.id];var e=this.selection.indexOf(t.id);-1!=e&&this.selection.splice(e,1),t.parent&&t.parent.remove(t)},o.prototype._constructByEndArray=function(t){for(var e=[],i=0;in+s)return}else{var a=e.height;if(n+a-s>o)return}}if(e&&e!=this.groupTouchParams.group){var h=this.groupsData,d=h.get(e.groupId),l=h.get(this.groupTouchParams.group.groupId);l&&d&&(this.options.groupOrderSwap(l,d,this.groupsData),this.groupsData.update(l),this.groupsData.update(d));var c=this.groupsData.getIds({order:this.options.groupOrder});if(!r.equalArray(c,this.groupTouchParams.originalOrder))for(var h=this.groupsData,u=this.groupTouchParams.originalOrder,p=this.groupTouchParams.group.groupId,f=Math.min(u.length,c.length),m=0,v=0,g=0;f>m;){for(;f>m+v&&f>m+g&&c[m+v]==u[m+g];)m++;if(m+v>=f)break;if(c[m+v]!=p)if(u[m+g]!=p){var y=c.indexOf(u[m+g]),b=h.get(c[m+v]),w=h.get(u[m+g]);this.options.groupOrderSwap(b,w,h),h.update(b),h.update(w);var _=c[m+v];c[m+v]=u[m+g],c[y]=_,m++}else g=1;else v=1}}}},o.prototype._onGroupDragEnd=function(t){if(this.options.groupEditable.order&&this.groupTouchParams.group){t.stopPropagation();var e=this,i=e.groupTouchParams.group.groupId,o=e.groupsData.getDataSet(),n=r.extend({},o.get(i));e.options.onMoveGroup(n,function(t){if(t)t[o._fieldId]=i,o.update(t);else{var n=o.getIds({order:e.options.groupOrder});if(!r.equalArray(n,e.groupTouchParams.originalOrder))for(var s=e.groupTouchParams.originalOrder,a=Math.min(s.length,n.length),h=0;a>h;){for(;a>h&&n[h]==s[h];)h++;if(h>=a)break;var d=n.indexOf(s[h]),l=o.get(n[h]),c=o.get(s[h]);e.options.groupOrderSwap(l,c,o),groupsData.update(l),groupsData.update(c);var u=n[h];n[h]=s[h],n[d]=u,h++}}}),e.body.emitter.emit("groupDragged",{groupId:i})}},o.prototype._onSelectItem=function(t){if(this.options.selectable){var e=t.srcEvent&&(t.srcEvent.ctrlKey||t.srcEvent.metaKey),i=t.srcEvent&&t.srcEvent.shiftKey;if(e||i)return void this._onMultiSelectItem(t);var o=this.getSelection(),n=this.itemFromTarget(t),s=n?[n.id]:[];this.setSelection(s);var r=this.getSelection();(r.length>0||o.length>0)&&this.body.emitter.emit("select",{items:r,event:t})}},o.prototype._onAddItem=function(t){if(this.options.selectable&&this.options.editable.add){var e=this,i=this.options.snap||null,o=this.itemFromTarget(t);if(o){var n=e.itemsData.get(o.id);this.options.onUpdate(n,function(t){t&&e.itemsData.getDataSet().update(t)})}else{if(this.options.rtl)var s=r.getAbsoluteRight(this.dom.frame),a=s-t.center.x;else var s=r.getAbsoluteLeft(this.dom.frame),a=t.center.x-s;var h=this.body.util.toTime(a),d=this.body.util.getScale(),l=this.body.util.getStep(),c={start:i?i(h,d,l):h,content:"new item"};if("range"===this.options.type){var u=this.body.util.toTime(a+this.props.width/5);c.end=i?i(u,d,l):u}c[this.itemsData._fieldId]=r.randomUUID();var p=this.groupFromTarget(t);p&&(c.group=p.groupId),c=this._cloneItemData(c),this.options.onAdd(c,function(t){t&&e.itemsData.getDataSet().add(t)})}}},o.prototype._onMultiSelectItem=function(t){if(this.options.selectable){var e=this.itemFromTarget(t);if(e){var i=this.options.multiselect?this.getSelection():[],n=t.srcEvent&&t.srcEvent.shiftKey||!1;if(n&&this.options.multiselect){var s=this.itemsData.get(e.id).group,r=void 0;this.options.multiselectPerGroup&&i.length>0&&(r=this.itemsData.get(i[0]).group),this.options.multiselectPerGroup&&void 0!=r&&r!=s||i.push(e.id);var a=o._getItemRange(this.itemsData.get(i,this.itemOptions));if(!this.options.multiselectPerGroup||r==s){i=[];for(var h in this.items)if(this.items.hasOwnProperty(h)){var d=this.items[h],l=d.data.start,c=void 0!==d.data.end?d.data.end:l;!(l>=a.min&&c<=a.max)||this.options.multiselectPerGroup&&r!=this.itemsData.get(d.id).group||d instanceof v||i.push(d.id)}}}else{var u=i.indexOf(e.id);-1==u?i.push(e.id):i.splice(u,1)}this.setSelection(i),this.body.emitter.emit("select",{items:this.getSelection(),event:t})}}},o._getItemRange=function(t){var e=null,i=null;return t.forEach(function(t){(null==i||t.starte)&&(e=t.end):(null==e||t.start>e)&&(e=t.start)}),{min:i,max:e}},o.prototype.itemFromTarget=function(t){for(var e=t.target;e;){if(e.hasOwnProperty("timeline-item"))return e["timeline-item"];e=e.parentNode}return null},o.prototype.groupFromTarget=function(t){for(var e=t.center?t.center.y:t.clientY,i=0;ia&&ea)return n}else if(0===i&&e0?t.step:1,this.autoScale=!1)},o.prototype.setAutoScale=function(t){this.autoScale=t},o.prototype.setMinimumStep=function(t){if(void 0!=t){var e=31104e6,i=2592e6,o=864e5,n=36e5,s=6e4,r=1e3,a=1;1e3*e>t&&(this.scale="year",this.step=1e3),500*e>t&&(this.scale="year",this.step=500),100*e>t&&(this.scale="year",this.step=100),50*e>t&&(this.scale="year",this.step=50),10*e>t&&(this.scale="year",this.step=10),5*e>t&&(this.scale="year",this.step=5),e>t&&(this.scale="year",this.step=1),3*i>t&&(this.scale="month",this.step=3),i>t&&(this.scale="month",this.step=1),5*o>t&&(this.scale="day",this.step=5),2*o>t&&(this.scale="day",this.step=2),o>t&&(this.scale="day",this.step=1),o/2>t&&(this.scale="weekday",this.step=1),4*n>t&&(this.scale="hour",this.step=4),n>t&&(this.scale="hour",this.step=1),15*s>t&&(this.scale="minute",this.step=15),10*s>t&&(this.scale="minute",this.step=10),5*s>t&&(this.scale="minute",this.step=5),s>t&&(this.scale="minute",this.step=1),15*r>t&&(this.scale="second",this.step=15),10*r>t&&(this.scale="second",this.step=10),5*r>t&&(this.scale="second",this.step=5),r>t&&(this.scale="second",this.step=1),200*a>t&&(this.scale="millisecond",this.step=200),100*a>t&&(this.scale="millisecond",this.step=100),50*a>t&&(this.scale="millisecond",this.step=50),10*a>t&&(this.scale="millisecond",this.step=10),5*a>t&&(this.scale="millisecond",this.step=5),a>t&&(this.scale="millisecond",this.step=1)}},o.snap=function(t,e,i){var o=n(t);if("year"==e){var s=o.year()+Math.round(o.month()/12);o.year(Math.round(s/i)*i),o.month(0),o.date(0),o.hours(0),o.minutes(0),o.seconds(0),o.milliseconds(0)}else if("month"==e)o.date()>15?(o.date(1),o.add(1,"month")):o.date(1),o.hours(0),o.minutes(0),o.seconds(0),o.milliseconds(0);else if("day"==e){switch(i){case 5:case 2:o.hours(24*Math.round(o.hours()/24));break;default:o.hours(12*Math.round(o.hours()/12))}o.minutes(0),o.seconds(0),o.milliseconds(0)}else if("weekday"==e){switch(i){case 5:case 2:o.hours(12*Math.round(o.hours()/12));break;default:o.hours(6*Math.round(o.hours()/6))}o.minutes(0),o.seconds(0),o.milliseconds(0)}else if("hour"==e){switch(i){case 4:o.minutes(60*Math.round(o.minutes()/60));break;default:o.minutes(30*Math.round(o.minutes()/30))}o.seconds(0),o.milliseconds(0)}else if("minute"==e){switch(i){case 15:case 10:o.minutes(5*Math.round(o.minutes()/5)),o.seconds(0);break;case 5:o.seconds(60*Math.round(o.seconds()/60));break;default:o.seconds(30*Math.round(o.seconds()/30))}o.milliseconds(0)}else if("second"==e)switch(i){case 15:case 10:o.seconds(5*Math.round(o.seconds()/5)),o.milliseconds(0);break;case 5:o.milliseconds(1e3*Math.round(o.milliseconds()/1e3));break;default:o.milliseconds(500*Math.round(o.milliseconds()/500))}else if("millisecond"==e){var r=i>5?i/2:1;o.milliseconds(Math.round(o.milliseconds()/r)*r)}return o},o.prototype.isMajor=function(){if(1==this.switchedYear)switch(this.switchedYear=!1,this.scale){case"year":case"month":case"weekday":case"day":case"hour":case"minute":case"second":case"millisecond":return!0;default:return!1}else if(1==this.switchedMonth)switch(this.switchedMonth=!1,this.scale){case"weekday":case"day":case"hour":case"minute":case"second":case"millisecond":return!0;default:return!1}else if(1==this.switchedDay)switch(this.switchedDay=!1,this.scale){case"millisecond":case"second":case"minute":case"hour":return!0;default:return!1}var t=this.moment(this.current);switch(this.scale){case"millisecond":return 0==t.milliseconds();case"second":return 0==t.seconds();case"minute":return 0==t.hours()&&0==t.minutes();case"hour":return 0==t.hours();case"weekday":case"day":return 1==t.date();case"month":return 0==t.month();case"year":return!1;default:return!1}},o.prototype.getLabelMinor=function(t){void 0==t&&(t=this.current);var e=this.format.minorLabels[this.scale];return e&&e.length>0?this.moment(t).format(e):""},o.prototype.getLabelMajor=function(t){void 0==t&&(t=this.current);var e=this.format.majorLabels[this.scale];return e&&e.length>0?this.moment(t).format(e):""},o.prototype.getClassName=function(){function t(t){return t/h%2==0?" vis-even":" vis-odd"}function e(t){return t.isSame(new Date,"day")?" vis-today":t.isSame(s().add(1,"day"),"day")?" vis-tomorrow":t.isSame(s().add(-1,"day"),"day")?" vis-yesterday":""}function i(t){return t.isSame(new Date,"week")?" vis-current-week":""}function o(t){return t.isSame(new Date,"month")?" vis-current-month":""}function n(t){return t.isSame(new Date,"year")?" vis-current-year":""}var s=this.moment,r=this.moment(this.current),a=r.locale?r.locale("en"):r.lang("en"),h=this.step;switch(this.scale){case"millisecond":return t(a.milliseconds()).trim();case"second":return t(a.seconds()).trim();case"minute":return t(a.minutes()).trim();case"hour":var d=a.hours();return 4==this.step&&(d=d+"-h"+(d+4)),"vis-h"+d+e(a)+t(a.hours());case"weekday":return"vis-"+a.format("dddd").toLowerCase()+e(a)+i(a)+t(a.date());case"day":var l=a.date(),c=a.format("MMMM").toLowerCase();return"vis-day"+l+" vis-"+c+o(a)+t(l-1);case"month":return"vis-"+a.format("MMMM").toLowerCase()+o(a)+t(a.month());case"year":var u=a.year();return"vis-year"+u+n(a)+t(u);default:return""}},t.exports=o},function(t,e,i){function o(t,e,i){this.groupId=t,this.subgroups={},this.subgroupIndex=0,this.subgroupOrderer=e&&e.subgroupOrder,this.itemSet=i,this.dom={},this.props={label:{width:0,height:0}},this.className=null,this.items={},this.visibleItems=[],this.orderedItems={byStart:[],byEnd:[]},this.checkRangedItems=!1;var o=this;this.itemSet.body.emitter.on("checkRangedItems",function(){o.checkRangedItems=!0}),this._create(),this.setData(e)}var n=i(1),s=i(34);i(35);o.prototype._create=function(){var t=document.createElement("div");this.itemSet.options.groupEditable.order?t.className="vis-label draggable":t.className="vis-label",this.dom.label=t;var e=document.createElement("div");e.className="vis-inner",t.appendChild(e),this.dom.inner=e;var i=document.createElement("div");i.className="vis-group",i["timeline-group"]=this,this.dom.foreground=i,this.dom.background=document.createElement("div"),this.dom.background.className="vis-group",this.dom.axis=document.createElement("div"),this.dom.axis.className="vis-group",this.dom.marker=document.createElement("div"),this.dom.marker.style.visibility="hidden",this.dom.marker.innerHTML="?",this.dom.background.appendChild(this.dom.marker)},o.prototype.setData=function(t){var e;if(e=this.itemSet.options&&this.itemSet.options.groupTemplate?this.itemSet.options.groupTemplate(t):t&&t.content,e instanceof Element){for(this.dom.inner.appendChild(e);this.dom.inner.firstChild;)this.dom.inner.removeChild(this.dom.inner.firstChild);this.dom.inner.appendChild(e)}else void 0!==e&&null!==e?this.dom.inner.innerHTML=e:this.dom.inner.innerHTML=this.groupId||"";this.dom.label.title=t&&t.title||"",this.dom.inner.firstChild?n.removeClassName(this.dom.inner,"vis-hidden"):n.addClassName(this.dom.inner,"vis-hidden");var i=t&&t.className||null;i!=this.className&&(this.className&&(n.removeClassName(this.dom.label,this.className),n.removeClassName(this.dom.foreground,this.className),n.removeClassName(this.dom.background,this.className),n.removeClassName(this.dom.axis,this.className)),n.addClassName(this.dom.label,i),n.addClassName(this.dom.foreground,i),n.addClassName(this.dom.background,i),n.addClassName(this.dom.axis,i),this.className=i),this.style&&(n.removeCssText(this.dom.label,this.style),this.style=null),t&&t.style&&(n.addCssText(this.dom.label,t.style),this.style=t.style)},o.prototype.getLabelWidth=function(){return this.props.label.width},o.prototype.redraw=function(t,e,i){var o=!1,r=this.dom.marker.clientHeight;if(r!=this.lastMarkerHeight&&(this.lastMarkerHeight=r,n.forEach(this.items,function(t){t.dirty=!0,t.displayed&&t.redraw()}),i=!0),this._calculateSubGroupHeights(),"function"==typeof this.itemSet.options.order){if(i){var a=this,h=!1;n.forEach(this.items,function(t){t.displayed||(t.redraw(),a.visibleItems.push(t)),t.repositionX(h)});var d=this.orderedItems.byStart.slice().sort(function(t,e){return a.itemSet.options.order(t.data,e.data)});s.stack(d,e,!0)}this.visibleItems=this._updateVisibleItems(this.orderedItems,this.visibleItems,t)}else this.visibleItems=this._updateVisibleItems(this.orderedItems,this.visibleItems,t),this.itemSet.options.stack?s.stack(this.visibleItems,e,i):s.nostack(this.visibleItems,e,this.subgroups);var l=this._calculateHeight(e),c=this.dom.foreground;this.top=c.offsetTop,this.right=c.offsetLeft,this.width=c.offsetWidth,o=n.updateProperty(this,"height",l)||o,o=n.updateProperty(this.props.label,"width",this.dom.inner.clientWidth)||o,o=n.updateProperty(this.props.label,"height",this.dom.inner.clientHeight)||o,this.dom.background.style.height=l+"px",this.dom.foreground.style.height=l+"px",this.dom.label.style.height=l+"px";for(var u=0,p=this.visibleItems.length;p>u;u++){var f=this.visibleItems[u];f.repositionY(e)}return o},o.prototype._calculateSubGroupHeights=function(){if(Object.keys(this.subgroups).length>0){var t=this;this.resetSubgroups(),n.forEach(this.visibleItems,function(e){void 0!==e.data.subgroup&&(t.subgroups[e.data.subgroup].height=Math.max(t.subgroups[e.data.subgroup].height,e.height),t.subgroups[e.data.subgroup].visible=!0)})}},o.prototype._calculateHeight=function(t){var e,i=this.visibleItems;if(i.length>0){var o=i[0].top,s=i[0].top+i[0].height;if(n.forEach(i,function(t){o=Math.min(o,t.top),s=Math.max(s,t.top+t.height)}),o>t.axis){var r=o-t.axis;s-=r,n.forEach(i,function(t){t.top-=r})}e=s+t.item.vertical/2}else e=0;return e=Math.max(e,this.props.label.height)},o.prototype.show=function(){this.dom.label.parentNode||this.itemSet.dom.labelSet.appendChild(this.dom.label),this.dom.foreground.parentNode||this.itemSet.dom.foreground.appendChild(this.dom.foreground),this.dom.background.parentNode||this.itemSet.dom.background.appendChild(this.dom.background),this.dom.axis.parentNode||this.itemSet.dom.axis.appendChild(this.dom.axis)},o.prototype.hide=function(){var t=this.dom.label;t.parentNode&&t.parentNode.removeChild(t);var e=this.dom.foreground;e.parentNode&&e.parentNode.removeChild(e);var i=this.dom.background;i.parentNode&&i.parentNode.removeChild(i);var o=this.dom.axis;o.parentNode&&o.parentNode.removeChild(o)},o.prototype.add=function(t){if(this.items[t.id]=t,t.setParent(this),void 0!==t.data.subgroup&&(void 0===this.subgroups[t.data.subgroup]&&(this.subgroups[t.data.subgroup]={height:0,visible:!1,index:this.subgroupIndex,items:[]},this.subgroupIndex++),this.subgroups[t.data.subgroup].items.push(t)),this.orderSubgroups(),-1==this.visibleItems.indexOf(t)){var e=this.itemSet.body.range;this._checkIfVisible(t,this.visibleItems,e)}},o.prototype.orderSubgroups=function(){if(void 0!==this.subgroupOrderer){var t=[];if("string"==typeof this.subgroupOrderer){for(var e in this.subgroups)t.push({subgroup:e,sortField:this.subgroups[e].items[0].data[this.subgroupOrderer]});t.sort(function(t,e){return t.sortField-e.sortField})}else if("function"==typeof this.subgroupOrderer){for(var e in this.subgroups)t.push(this.subgroups[e].items[0].data);t.sort(this.subgroupOrderer)}if(t.length>0)for(var i=0;it?-1:l>=t?0:1};if(e.length>0)for(s=0;sl}),1==this.checkRangedItems)for(this.checkRangedItems=!1,s=0;sl})}for(s=0;s=0&&(s=e[r],!n(s));r--)void 0===o[s.id]&&(o[s.id]=!0,i.push(s));for(r=t+1;rn;n++)t[n].top=null;for(n=0,s=t.length;s>n;n++){var r=t[n];if(r.stack&&null===r.top){r.top=i.axis;do{for(var a=null,h=0,d=t.length;d>h;h++){var l=t[h];if(null!==l.top&&l!==r&&l.stack&&e.collision(r,l,i.item,l.options.rtl)){a=l;break}}null!=a&&(r.top=a.top+a.height+i.item.vertical)}while(a)}}},e.nostack=function(t,e,i){var o,n,s;for(o=0,n=t.length;n>o;o++)if(void 0!==t[o].data.subgroup){s=e.axis;for(var r in i)i.hasOwnProperty(r)&&1==i[r].visible&&i[r].indexe.right&&t.top-o.vertical+ie.top:t.left-o.horizontal+ie.left&&t.top-o.vertical+ie.top,s}},function(t,e,i){function o(t,e,i){if(this.props={content:{width:0}},this.overflow=!1,this.options=i,t){if(void 0==t.start)throw new Error('Property "start" missing in item '+t.id);if(void 0==t.end)throw new Error('Property "end" missing in item '+t.id)}n.call(this,t,e,i)}var n=(i(22),i(36));o.prototype=new n(null,null,null),o.prototype.baseClassName="vis-item vis-range",o.prototype.isVisible=function(t){return this.data.startt.start},o.prototype.redraw=function(){var t=this.dom;if(t||(this.dom={},t=this.dom,t.box=document.createElement("div"),t.frame=document.createElement("div"),t.frame.className="vis-item-overflow",t.box.appendChild(t.frame),t.content=document.createElement("div"),t.content.className="vis-item-content",t.frame.appendChild(t.content),t.box["timeline-item"]=this,this.dirty=!0),!this.parent)throw new Error("Cannot redraw item: no parent attached");if(!t.box.parentNode){var e=this.parent.dom.foreground;if(!e)throw new Error("Cannot redraw item: parent has no foreground container element");e.appendChild(t.box)}if(this.displayed=!0,this.dirty){this._updateContents(this.dom.content),this._updateTitle(this.dom.box),this._updateDataAttributes(this.dom.box),this._updateStyle(this.dom.box);var i=(this.options.editable.updateTime||this.options.editable.updateGroup||this.editable===!0)&&this.editable!==!1,o=(this.data.className?" "+this.data.className:"")+(this.selected?" vis-selected":"")+(i?" vis-editable":" vis-readonly");t.box.className=this.baseClassName+o,this.overflow="hidden"!==window.getComputedStyle(t.frame).overflow,this.dom.content.style.maxWidth="none",this.props.content.width=this.dom.content.offsetWidth,this.height=this.dom.box.offsetHeight,this.dom.content.style.maxWidth="",this.dirty=!1}this._repaintDeleteButton(t.box),this._repaintDragLeft(),this._repaintDragRight()},o.prototype.show=function(){this.displayed||this.redraw()},o.prototype.hide=function(){if(this.displayed){var t=this.dom.box;t.parentNode&&t.parentNode.removeChild(t),this.displayed=!1}},o.prototype.repositionX=function(t){var e,i,o=this.parent.width,n=this.conversion.toScreen(this.data.start),s=this.conversion.toScreen(this.data.end);void 0!==t&&t!==!0||(-o>n&&(n=-o),s>2*o&&(s=2*o));var r=Math.max(s-n,1);switch(this.overflow?(this.options.rtl?this.right=n:this.left=n,this.width=r+this.props.content.width,i=this.props.content.width):(this.options.rtl?this.right=n:this.left=n,this.width=r,i=Math.min(s-n,this.props.content.width)),this.options.rtl?this.dom.box.style.right=this.right+"px":this.dom.box.style.left=this.left+"px",this.dom.box.style.width=r+"px",this.options.align){case"left":this.options.rtl?this.dom.content.style.right="0":this.dom.content.style.left="0";break;case"right":this.options.rtl?this.dom.content.style.right=Math.max(r-i,0)+"px":this.dom.content.style.left=Math.max(r-i,0)+"px";break;case"center":this.options.rtl?this.dom.content.style.right=Math.max((r-i)/2,0)+"px":this.dom.content.style.left=Math.max((r-i)/2,0)+"px";break;default:e=this.overflow?s>0?Math.max(-n,0):-i:0>n?-n:0,this.options.rtl?this.dom.content.style.right=e+"px":this.dom.content.style.left=e+"px"}},o.prototype.repositionY=function(){var t=this.options.orientation.item,e=this.dom.box;"top"==t?e.style.top=this.top+"px":e.style.top=this.parent.height-this.top-this.height+"px"},o.prototype._repaintDragLeft=function(){if(this.selected&&this.options.editable.updateTime&&!this.dom.dragLeft){var t=document.createElement("div");t.className="vis-drag-left",t.dragLeftItem=this,this.dom.box.appendChild(t),this.dom.dragLeft=t}else!this.selected&&this.dom.dragLeft&&(this.dom.dragLeft.parentNode&&this.dom.dragLeft.parentNode.removeChild(this.dom.dragLeft),this.dom.dragLeft=null)},o.prototype._repaintDragRight=function(){if(this.selected&&this.options.editable.updateTime&&!this.dom.dragRight){var t=document.createElement("div");t.className="vis-drag-right",t.dragRightItem=this,this.dom.box.appendChild(t),this.dom.dragRight=t}else!this.selected&&this.dom.dragRight&&(this.dom.dragRight.parentNode&&this.dom.dragRight.parentNode.removeChild(this.dom.dragRight),this.dom.dragRight=null)},t.exports=o},function(t,e,i){function o(t,e,i){this.id=null,this.parent=null,this.data=t,this.dom=null,this.conversion=e||{},this.options=i||{},this.selected=!1,this.displayed=!1,this.dirty=!0,this.top=null,this.right=null,this.left=null,this.width=null,this.height=null,this.editable=null,this.data&&this.data.hasOwnProperty("editable")&&"boolean"==typeof this.data.editable&&(this.editable=t.editable)}var n=i(22),s=i(1);o.prototype.stack=!0,o.prototype.select=function(){this.selected=!0,this.dirty=!0,this.displayed&&this.redraw()},o.prototype.unselect=function(){this.selected=!1,this.dirty=!0,this.displayed&&this.redraw()},o.prototype.setData=function(t){var e=void 0!=t.group&&this.data.group!=t.group;e&&this.parent.itemSet._moveToGroup(this,t.group), -t.hasOwnProperty("editable")&&"boolean"==typeof t.editable&&(this.editable=t.editable),this.data=t,this.dirty=!0,this.displayed&&this.redraw()},o.prototype.setParent=function(t){this.displayed?(this.hide(),this.parent=t,this.parent&&this.show()):this.parent=t},o.prototype.isVisible=function(t){return!1},o.prototype.show=function(){return!1},o.prototype.hide=function(){return!1},o.prototype.redraw=function(){},o.prototype.repositionX=function(){},o.prototype.repositionY=function(){},o.prototype._repaintDeleteButton=function(t){var e=(this.options.editable.remove||this.data.editable===!0)&&this.data.editable!==!1;if(this.selected&&e&&!this.dom.deleteButton){var i=this,o=document.createElement("div");this.options.rtl?o.className="vis-delete-rtl":o.className="vis-delete",o.title="Delete this item",new n(o).on("tap",function(t){t.stopPropagation(),i.parent.removeFromDataSet(i)}),t.appendChild(o),this.dom.deleteButton=o}else!this.selected&&this.dom.deleteButton&&(this.dom.deleteButton.parentNode&&this.dom.deleteButton.parentNode.removeChild(this.dom.deleteButton),this.dom.deleteButton=null)},o.prototype._updateContents=function(t){var e;if(this.options.template){var i=this.parent.itemSet.itemsData.get(this.id);e=this.options.template(i)}else e=this.data.content;var o=this._contentToString(this.content)!==this._contentToString(e);if(o){if(e instanceof Element)t.innerHTML="",t.appendChild(e);else if(void 0!=e)t.innerHTML=e;else if("background"!=this.data.type||void 0!==this.data.content)throw new Error('Property "content" missing in item '+this.id);this.content=e}},o.prototype._updateTitle=function(t){null!=this.data.title?t.title=this.data.title||"":t.removeAttribute("vis-title")},o.prototype._updateDataAttributes=function(t){if(this.options.dataAttributes&&this.options.dataAttributes.length>0){var e=[];if(Array.isArray(this.options.dataAttributes))e=this.options.dataAttributes;else{if("all"!=this.options.dataAttributes)return;e=Object.keys(this.data)}for(var i=0;in;n++){var r=this.visibleItems[n];r.repositionY(e)}return o},o.prototype.show=function(){this.dom.background.parentNode||this.itemSet.dom.background.appendChild(this.dom.background)},t.exports=o},function(t,e,i){function o(t,e,i){if(this.props={dot:{width:0,height:0},line:{width:0,height:0}},this.options=i,t&&void 0==t.start)throw new Error('Property "start" missing in item '+t);n.call(this,t,e,i)}var n=i(36);i(1);o.prototype=new n(null,null,null),o.prototype.isVisible=function(t){var e=(t.end-t.start)/4;return this.data.start>t.start-e&&this.data.startt.start-e&&this.data.startt.start},o.prototype.redraw=function(){var t=this.dom;if(t||(this.dom={},t=this.dom,t.box=document.createElement("div"),t.frame=document.createElement("div"),t.frame.className="vis-item-overflow",t.box.appendChild(t.frame),t.content=document.createElement("div"),t.content.className="vis-item-content",t.frame.appendChild(t.content),this.dirty=!0),!this.parent)throw new Error("Cannot redraw item: no parent attached");if(!t.box.parentNode){var e=this.parent.dom.background;if(!e)throw new Error("Cannot redraw item: parent has no background container element");e.appendChild(t.box)}if(this.displayed=!0,this.dirty){this._updateContents(this.dom.content),this._updateTitle(this.dom.content),this._updateDataAttributes(this.dom.content),this._updateStyle(this.dom.box);var i=(this.data.className?" "+this.data.className:"")+(this.selected?" vis-selected":"");t.box.className=this.baseClassName+i,this.overflow="hidden"!==window.getComputedStyle(t.content).overflow,this.props.content.width=this.dom.content.offsetWidth,this.height=0,this.dirty=!1}},o.prototype.show=r.prototype.show,o.prototype.hide=r.prototype.hide,o.prototype.repositionX=r.prototype.repositionX,o.prototype.repositionY=function(t){var e="top"===this.options.orientation.item;this.dom.content.style.top=e?"":"0",this.dom.content.style.bottom=e?"0":"";var i;if(void 0!==this.data.subgroup){var o=this.data.subgroup,n=this.parent.subgroups,r=n[o].index;if(1==e){i=this.parent.subgroups[o].height+t.item.vertical,i+=0==r?t.axis-.5*t.item.vertical:0;var a=this.parent.top;for(var h in n)n.hasOwnProperty(h)&&1==n[h].visible&&n[h].indexr&&(a+=l)}i=this.parent.subgroups[o].height+t.item.vertical,this.dom.box.style.top=this.parent.height-d+a+"px",this.dom.box.style.bottom=""}}else this.parent instanceof s?(i=Math.max(this.parent.height,this.parent.itemSet.body.domProps.center.height,this.parent.itemSet.body.domProps.centerContainer.height),this.dom.box.style.top=e?"0":"",this.dom.box.style.bottom=e?"":"0"):(i=this.parent.height,this.dom.box.style.top=this.parent.top+"px",this.dom.box.style.bottom="");this.dom.box.style.height=i+"px"},t.exports=o},function(t,e,i){function o(t,e){this.dom={foreground:null,lines:[],majorTexts:[],minorTexts:[],redundant:{lines:[],majorTexts:[],minorTexts:[]}},this.props={range:{start:0,end:0,minimumStep:0},lineTop:0},this.defaultOptions={orientation:{axis:"bottom"},showMinorLabels:!0,showMajorLabels:!0,maxMinorChars:7,format:a.FORMAT,moment:d,timeAxis:null},this.options=s.extend({},this.defaultOptions),this.body=t,this._create(),this.setOptions(e)}var n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol?"symbol":typeof t},s=i(1),r=i(28),a=i(32),h=i(29),d=i(2);o.prototype=new r,o.prototype.setOptions=function(t){t&&(s.selectiveExtend(["showMinorLabels","showMajorLabels","maxMinorChars","hiddenDates","timeAxis","moment","rtl"],this.options,t),s.selectiveDeepExtend(["format"],this.options,t),"orientation"in t&&("string"==typeof t.orientation?this.options.orientation.axis=t.orientation:"object"===n(t.orientation)&&"axis"in t.orientation&&(this.options.orientation.axis=t.orientation.axis)),"locale"in t&&("function"==typeof d.locale?d.locale(t.locale):d.lang(t.locale)))},o.prototype._create=function(){this.dom.foreground=document.createElement("div"),this.dom.background=document.createElement("div"),this.dom.foreground.className="vis-time-axis vis-foreground",this.dom.background.className="vis-time-axis vis-background"},o.prototype.destroy=function(){this.dom.foreground.parentNode&&this.dom.foreground.parentNode.removeChild(this.dom.foreground),this.dom.background.parentNode&&this.dom.background.parentNode.removeChild(this.dom.background),this.body=null},o.prototype.redraw=function(){var t=this.props,e=this.dom.foreground,i=this.dom.background,o="top"==this.options.orientation.axis?this.body.dom.top:this.body.dom.bottom,n=e.parentNode!==o;this._calculateCharSize();var s=this.options.showMinorLabels&&"none"!==this.options.orientation.axis,r=this.options.showMajorLabels&&"none"!==this.options.orientation.axis;t.minorLabelHeight=s?t.minorCharHeight:0,t.majorLabelHeight=r?t.majorCharHeight:0,t.height=t.minorLabelHeight+t.majorLabelHeight,t.width=e.offsetWidth,t.minorLineHeight=this.body.domProps.root.height-t.majorLabelHeight-("top"==this.options.orientation.axis?this.body.domProps.bottom.height:this.body.domProps.top.height),t.minorLineWidth=1,t.majorLineHeight=t.minorLineHeight+t.majorLabelHeight,t.majorLineWidth=1;var a=e.nextSibling,h=i.nextSibling;return e.parentNode&&e.parentNode.removeChild(e),i.parentNode&&i.parentNode.removeChild(i),e.style.height=this.props.height+"px",this._repaintLabels(),a?o.insertBefore(e,a):o.appendChild(e),h?this.body.dom.backgroundVertical.insertBefore(i,h):this.body.dom.backgroundVertical.appendChild(i),this._isResized()||n},o.prototype._repaintLabels=function(){var t=this.options.orientation.axis,e=s.convert(this.body.range.start,"Number"),i=s.convert(this.body.range.end,"Number"),o=this.body.util.toTime((this.props.minorCharWidth||10)*this.options.maxMinorChars).valueOf(),n=o-h.getHiddenDurationBefore(this.options.moment,this.body.hiddenDates,this.body.range,o);n-=this.body.util.toTime(0).valueOf();var r=new a(new Date(e),new Date(i),n,this.body.hiddenDates);r.setMoment(this.options.moment),this.options.format&&r.setFormat(this.options.format),this.options.timeAxis&&r.setScale(this.options.timeAxis),this.step=r;var d=this.dom;d.redundant.lines=d.lines,d.redundant.majorTexts=d.majorTexts,d.redundant.minorTexts=d.minorTexts,d.lines=[],d.majorTexts=[],d.minorTexts=[];var c,u,p,f,m,v,g,y,b,w,_=0,x=void 0,k=0,O=1e3;for(r.start(),u=r.getCurrent(),f=this.body.util.toScreen(u);r.hasNext()&&O>k;){k++,m=r.isMajor(),w=r.getClassName(),b=r.getLabelMinor(),c=u,p=f,r.next(),u=r.getCurrent(),v=r.isMajor(),f=this.body.util.toScreen(u),g=_,_=f-p;var M=_>=.4*g;if(this.options.showMinorLabels&&M){var D=this._repaintMinorText(p,b,t,w);D.style.width=_+"px"}m&&this.options.showMajorLabels?(p>0&&(void 0==x&&(x=p),D=this._repaintMajorText(p,r.getLabelMajor(),t,w)),y=this._repaintMajorLine(p,_,t,w)):M?y=this._repaintMinorLine(p,_,t,w):y&&(y.style.width=parseInt(y.style.width)+_+"px")}if(k!==O||l||(console.warn("Something is wrong with the Timeline scale. Limited drawing of grid lines to "+O+" lines."),l=!0),this.options.showMajorLabels){var S=this.body.util.toTime(0),C=r.getLabelMajor(S),T=C.length*(this.props.majorCharWidth||10)+10;(void 0==x||x>T)&&this._repaintMajorText(0,C,t,w)}s.forEach(this.dom.redundant,function(t){for(;t.length;){var e=t.pop();e&&e.parentNode&&e.parentNode.removeChild(e)}})},o.prototype._repaintMinorText=function(t,e,i,o){var n=this.dom.redundant.minorTexts.shift();if(!n){var s=document.createTextNode("");n=document.createElement("div"),n.appendChild(s),this.dom.foreground.appendChild(n)}return this.dom.minorTexts.push(n),n.childNodes[0].nodeValue=e,n.style.top="top"==i?this.props.majorLabelHeight+"px":"0",this.options.rtl?(n.style.left="",n.style.right=t+"px"):n.style.left=t+"px",n.className="vis-text vis-minor "+o,n},o.prototype._repaintMajorText=function(t,e,i,o){var n=this.dom.redundant.majorTexts.shift();if(!n){var s=document.createTextNode(e);n=document.createElement("div"),n.appendChild(s),this.dom.foreground.appendChild(n)}return this.dom.majorTexts.push(n),n.childNodes[0].nodeValue=e,n.className="vis-text vis-major "+o,n.style.top="top"==i?"0":this.props.minorLabelHeight+"px",this.options.rtl?(n.style.left="",n.style.right=t+"px"):n.style.left=t+"px",n},o.prototype._repaintMinorLine=function(t,e,i,o){var n=this.dom.redundant.lines.shift();n||(n=document.createElement("div"),this.dom.background.appendChild(n)),this.dom.lines.push(n);var s=this.props;return"top"==i?n.style.top=s.majorLabelHeight+"px":n.style.top=this.body.domProps.top.height+"px",n.style.height=s.minorLineHeight+"px",this.options.rtl?(n.style.left="",n.style.right=t-s.minorLineWidth/2+"px",n.className="vis-grid vis-vertical-rtl vis-minor "+o):(n.style.left=t-s.minorLineWidth/2+"px",n.className="vis-grid vis-vertical vis-minor "+o),n.style.width=e+"px",n},o.prototype._repaintMajorLine=function(t,e,i,o){var n=this.dom.redundant.lines.shift();n||(n=document.createElement("div"),this.dom.background.appendChild(n)),this.dom.lines.push(n);var s=this.props;return"top"==i?n.style.top="0":n.style.top=this.body.domProps.top.height+"px",this.options.rtl?(n.style.left="",n.style.right=t-s.majorLineWidth/2+"px",n.className="vis-grid vis-vertical-rtl vis-major "+o):(n.style.left=t-s.majorLineWidth/2+"px",n.className="vis-grid vis-vertical vis-major "+o),n.style.height=s.majorLineHeight+"px",n.style.width=e+"px",n},o.prototype._calculateCharSize=function(){this.dom.measureCharMinor||(this.dom.measureCharMinor=document.createElement("DIV"),this.dom.measureCharMinor.className="vis-text vis-minor vis-measure",this.dom.measureCharMinor.style.position="absolute",this.dom.measureCharMinor.appendChild(document.createTextNode("0")),this.dom.foreground.appendChild(this.dom.measureCharMinor)),this.props.minorCharHeight=this.dom.measureCharMinor.clientHeight,this.props.minorCharWidth=this.dom.measureCharMinor.clientWidth,this.dom.measureCharMajor||(this.dom.measureCharMajor=document.createElement("DIV"),this.dom.measureCharMajor.className="vis-text vis-major vis-measure",this.dom.measureCharMajor.style.position="absolute",this.dom.measureCharMajor.appendChild(document.createTextNode("0")),this.dom.foreground.appendChild(this.dom.measureCharMajor)),this.props.majorCharHeight=this.dom.measureCharMajor.clientHeight,this.props.majorCharWidth=this.dom.measureCharMajor.clientWidth};var l=!1;t.exports=o},function(t,e,i){function o(t){this.active=!1,this.dom={container:t},this.dom.overlay=document.createElement("div"),this.dom.overlay.className="vis-overlay",this.dom.container.appendChild(this.dom.overlay),this.hammer=a(this.dom.overlay),this.hammer.on("tap",this._onTapOverlay.bind(this));var e=this,i=["tap","doubletap","press","pinch","pan","panstart","panmove","panend"];i.forEach(function(t){e.hammer.on(t,function(t){t.stopPropagation()})}),document&&document.body&&(this.onClick=function(i){n(i.target,t)||e.deactivate()},document.body.addEventListener("click",this.onClick)),void 0!==this.keycharm&&this.keycharm.destroy(),this.keycharm=s(),this.escListener=this.deactivate.bind(this)}function n(t,e){for(;t;){if(t===e)return!0;t=t.parentNode}return!1}var s=i(43),r=i(12),a=i(22),h=i(1);r(o.prototype),o.current=null,o.prototype.destroy=function(){this.deactivate(),this.dom.overlay.parentNode.removeChild(this.dom.overlay),this.onClick&&document.body.removeEventListener("click",this.onClick),this.hammer.destroy(),this.hammer=null},o.prototype.activate=function(){o.current&&o.current.deactivate(),o.current=this,this.active=!0,this.dom.overlay.style.display="none",h.addClassName(this.dom.container,"vis-active"),this.emit("change"),this.emit("activate"),this.keycharm.bind("esc",this.escListener)},o.prototype.deactivate=function(){this.active=!1,this.dom.overlay.style.display="",h.removeClassName(this.dom.container,"vis-active"),this.keycharm.unbind("esc",this.escListener),this.emit("change"),this.emit("deactivate")},o.prototype._onTapOverlay=function(t){this.activate(),t.stopPropagation()},t.exports=o},function(t,e,i){var o,n,s;!function(i,r){n=[],o=r,s="function"==typeof o?o.apply(e,n):o,!(void 0!==s&&(t.exports=s))}(this,function(){function t(t){var e,i=t&&t.preventDefault||!1,o=t&&t.container||window,n={},s={keydown:{},keyup:{}},r={};for(e=97;122>=e;e++)r[String.fromCharCode(e)]={code:65+(e-97),shift:!1};for(e=65;90>=e;e++)r[String.fromCharCode(e)]={code:e,shift:!0};for(e=0;9>=e;e++)r[""+e]={code:48+e,shift:!1};for(e=1;12>=e;e++)r["F"+e]={code:111+e,shift:!1};for(e=0;9>=e;e++)r["num"+e]={code:96+e,shift:!1};r["num*"]={code:106,shift:!1},r["num+"]={code:107,shift:!1},r["num-"]={code:109,shift:!1},r["num/"]={code:111,shift:!1},r["num."]={code:110,shift:!1},r.left={code:37,shift:!1},r.up={code:38,shift:!1},r.right={code:39,shift:!1},r.down={code:40,shift:!1},r.space={code:32,shift:!1},r.enter={code:13,shift:!1},r.shift={code:16,shift:void 0},r.esc={code:27,shift:!1},r.backspace={code:8,shift:!1},r.tab={code:9,shift:!1},r.ctrl={code:17,shift:!1},r.alt={code:18,shift:!1},r["delete"]={code:46,shift:!1},r.pageup={code:33,shift:!1},r.pagedown={code:34,shift:!1},r["="]={code:187,shift:!1},r["-"]={code:189,shift:!1},r["]"]={code:221,shift:!1},r["["]={code:219,shift:!1};var a=function(t){d(t,"keydown")},h=function(t){d(t,"keyup")},d=function(t,e){if(void 0!==s[e][t.keyCode]){for(var o=s[e][t.keyCode],n=0;no&&(o=30),o>1e3&&(o=1e3),e.redraw(),e.body.emitter.emit("currentTimeTick"),e.currentTimeTimer=setTimeout(t,o)}var e=this;t()},o.prototype.stop=function(){void 0!==this.currentTimeTimer&&(clearTimeout(this.currentTimeTimer),delete this.currentTimeTimer)},o.prototype.setCurrentTime=function(t){var e=n.convert(t,"Date").valueOf(),i=(new Date).valueOf();this.offset=e-i,this.redraw()},o.prototype.getCurrentTime=function(){return new Date((new Date).valueOf()+this.offset)},t.exports=o},function(t,e){Object.defineProperty(e,"__esModule",{value:!0});var i="string",o="boolean",n="number",s="array",r="date",a="object",h="dom",d="moment",l="any",c={configure:{enabled:{"boolean":o},filter:{"boolean":o,"function":"function"},container:{dom:h},__type__:{object:a,"boolean":o,"function":"function"}},align:{string:i},rtl:{"boolean":o,undefined:"undefined"},autoResize:{"boolean":o},throttleRedraw:{number:n},clickToUse:{"boolean":o},dataAttributes:{string:i,array:s},editable:{add:{"boolean":o,undefined:"undefined"},remove:{"boolean":o,undefined:"undefined"},updateGroup:{"boolean":o,undefined:"undefined"},updateTime:{"boolean":o,undefined:"undefined"},__type__:{"boolean":o,object:a}},end:{number:n,date:r,string:i,moment:d},format:{minorLabels:{millisecond:{string:i,undefined:"undefined"},second:{string:i,undefined:"undefined"},minute:{string:i,undefined:"undefined"},hour:{string:i,undefined:"undefined"},weekday:{string:i,undefined:"undefined"},day:{string:i,undefined:"undefined"},month:{string:i,undefined:"undefined"},year:{string:i,undefined:"undefined"},__type__:{object:a}},majorLabels:{millisecond:{string:i,undefined:"undefined"},second:{string:i,undefined:"undefined"},minute:{string:i,undefined:"undefined"},hour:{string:i,undefined:"undefined"},weekday:{string:i,undefined:"undefined"},day:{string:i,undefined:"undefined"},month:{string:i,undefined:"undefined"},year:{string:i,undefined:"undefined"},__type__:{object:a}},__type__:{object:a}},moment:{"function":"function"},groupOrder:{string:i,"function":"function"},groupEditable:{add:{"boolean":o,undefined:"undefined"},remove:{"boolean":o,undefined:"undefined"},order:{"boolean":o,undefined:"undefined"},__type__:{"boolean":o,object:a}},groupOrderSwap:{"function":"function"},height:{string:i,number:n},hiddenDates:{start:{date:r,number:n,string:i,moment:d},end:{date:r,number:n,string:i,moment:d},repeat:{string:i},__type__:{object:a,array:s}},itemsAlwaysDraggable:{ -"boolean":o},locale:{string:i},locales:{__any__:{any:l},__type__:{object:a}},margin:{axis:{number:n},item:{horizontal:{number:n,undefined:"undefined"},vertical:{number:n,undefined:"undefined"},__type__:{object:a,number:n}},__type__:{object:a,number:n}},max:{date:r,number:n,string:i,moment:d},maxHeight:{number:n,string:i},maxMinorChars:{number:n},min:{date:r,number:n,string:i,moment:d},minHeight:{number:n,string:i},moveable:{"boolean":o},multiselect:{"boolean":o},multiselectPerGroup:{"boolean":o},onAdd:{"function":"function"},onUpdate:{"function":"function"},onMove:{"function":"function"},onMoving:{"function":"function"},onRemove:{"function":"function"},onAddGroup:{"function":"function"},onMoveGroup:{"function":"function"},onRemoveGroup:{"function":"function"},order:{"function":"function"},orientation:{axis:{string:i,undefined:"undefined"},item:{string:i,undefined:"undefined"},__type__:{string:i,object:a}},selectable:{"boolean":o},showCurrentTime:{"boolean":o},showMajorLabels:{"boolean":o},showMinorLabels:{"boolean":o},stack:{"boolean":o},snap:{"function":"function","null":"null"},start:{date:r,number:n,string:i,moment:d},template:{"function":"function"},groupTemplate:{"function":"function"},timeAxis:{scale:{string:i,undefined:"undefined"},step:{number:n,undefined:"undefined"},__type__:{object:a}},type:{string:i},width:{string:i,number:n},zoomable:{"boolean":o},zoomKey:{string:["ctrlKey","altKey","metaKey",""]},zoomMax:{number:n},zoomMin:{number:n},__type__:{object:a}},u={global:{align:["center","left","right"],direction:!1,autoResize:!0,throttleRedraw:[10,0,1e3,10],clickToUse:!1,editable:{add:!1,remove:!1,updateGroup:!1,updateTime:!1},end:"",format:{minorLabels:{millisecond:"SSS",second:"s",minute:"HH:mm",hour:"HH:mm",weekday:"ddd D",day:"D",month:"MMM",year:"YYYY"},majorLabels:{millisecond:"HH:mm:ss",second:"D MMMM HH:mm",minute:"ddd D MMMM",hour:"ddd D MMMM",weekday:"MMMM YYYY",day:"MMMM YYYY",month:"YYYY",year:""}},groupsDraggable:!1,height:"",locale:"",margin:{axis:[20,0,100,1],item:{horizontal:[10,0,100,1],vertical:[10,0,100,1]}},max:"",maxHeight:"",maxMinorChars:[7,0,20,1],min:"",minHeight:"",moveable:!1,multiselect:!1,multiselectPerGroup:!1,orientation:{axis:["both","bottom","top"],item:["bottom","top"]},selectable:!0,showCurrentTime:!1,showMajorLabels:!0,showMinorLabels:!0,stack:!0,start:"",type:["box","point","range","background"],width:"100%",zoomable:!0,zoomKey:["ctrlKey","altKey","metaKey",""],zoomMax:[31536e10,10,31536e10,1],zoomMin:[10,10,31536e10,1]}};e.allOptions=c,e.configureOptions=u},function(t,e,i){function o(t){return t&&t.__esModule?t:{"default":t}}function n(t,e,i,o){if(!(Array.isArray(i)||i instanceof c||i instanceof u)&&i instanceof Object){var n=o;o=i,i=n}var s=this;this.defaultOptions={start:null,end:null,autoResize:!0,orientation:{axis:"bottom",item:"bottom"},moment:d,width:null,height:null,maxHeight:null,minHeight:null},this.options=l.deepExtend({},this.defaultOptions),this._create(t),this.components=[],this.body={dom:this.dom,domProps:this.props,emitter:{on:this.on.bind(this),off:this.off.bind(this),emit:this.emit.bind(this)},hiddenDates:[],util:{toScreen:s._toScreen.bind(s),toGlobalScreen:s._toGlobalScreen.bind(s),toTime:s._toTime.bind(s),toGlobalTime:s._toGlobalTime.bind(s)}},this.range=new p(this.body),this.components.push(this.range),this.body.range=this.range,this.timeAxis=new m(this.body),this.components.push(this.timeAxis),this.currentTime=new v(this.body),this.components.push(this.currentTime),this.linegraph=new y(this.body),this.components.push(this.linegraph),this.itemsData=null,this.groupsData=null,this.on("tap",function(t){s.emit("click",s.getEventProperties(t))}),this.on("doubletap",function(t){s.emit("doubleClick",s.getEventProperties(t))}),this.dom.root.oncontextmenu=function(t){s.emit("contextmenu",s.getEventProperties(t))},o&&this.setOptions(o),i&&this.setGroups(i),e&&this.setItems(e),this._redraw()}var s=i(20),r=o(s),a=i(26),h=o(a),d=(i(12),i(22),i(2)),l=i(1),c=i(8),u=i(10),p=i(27),f=i(30),m=i(41),v=i(46),g=i(44),y=i(49),b=i(26).printStyle,w=i(57).allOptions,_=i(57).configureOptions;n.prototype=new f,n.prototype.setOptions=function(t){var e=h["default"].validate(t,w);e===!0&&console.log("%cErrors have been found in the supplied options object.",b),f.prototype.setOptions.call(this,t)},n.prototype.setItems=function(t){var e,i=null==this.itemsData;if(e=t?t instanceof c||t instanceof u?t:new c(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 o=void 0!=this.options.start?this.options.start:null,n=void 0!=this.options.end?this.options.end:null;this.setWindow(o,n,{animation:!1})}else this.fit({animation:!1})},n.prototype.setGroups=function(t){var e;e=t?t instanceof c||t instanceof u?t:new c(t):null,this.groupsData=e,this.linegraph.setGroups(e)},n.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+"'"},n.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},n.prototype.getDataRange=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 o=0;os?s:t,e=null==e?s:s>e?s:e}return{min:null!=t?new Date(t):null,max:null!=e?new Date(e):null}},n.prototype.getEventProperties=function(t){var e=t.center?t.center.x:t.clientX,i=t.center?t.center.y:t.clientY,o=e-l.getAbsoluteLeft(this.dom.centerContainer),n=i-l.getAbsoluteTop(this.dom.centerContainer),s=this._toTime(o),r=g.customTimeFromTarget(t),a=l.getTarget(t),h=null;l.hasParent(a,this.timeAxis.dom.foreground)?h="axis":this.timeAxis2&&l.hasParent(a,this.timeAxis2.dom.foreground)?h="axis":l.hasParent(a,this.linegraph.yAxisLeft.dom.frame)?h="data-axis":l.hasParent(a,this.linegraph.yAxisRight.dom.frame)?h="data-axis":l.hasParent(a,this.linegraph.legendLeft.dom.frame)?h="legend":l.hasParent(a,this.linegraph.legendRight.dom.frame)?h="legend":null!=r?h="custom-time":l.hasParent(a,this.currentTime.bar)?h="current-time":l.hasParent(a,this.dom.center)&&(h="background");var d=[],c=this.linegraph.yAxisLeft,u=this.linegraph.yAxisRight;return c.hidden||d.push(c.screenToValue(n)),u.hidden||d.push(u.screenToValue(n)),{event:t,what:h,pageX:t.srcEvent?t.srcEvent.pageX:t.pageX,pageY:t.srcEvent?t.srcEvent.pageY:t.pageY,x:o,y:n,time:s,value:d}},n.prototype._createConfigurator=function(){return new r["default"](this,this.dom.container,_)},t.exports=n},function(t,e,i){function o(t,e){this.id=s.randomUUID(),this.body=t,this.defaultOptions={yAxisOrientation:"left",defaultGroup:"default",sort:!0,sampling:!0,stack:!1,graphHeight:"400px",shaded:{enabled:!1,orientation:"bottom"},style:"line",barChart:{width:50,sideBySide:!1,align:"center"},interpolation:{enabled:!0,parametrization:"centripetal",alpha:.5},drawPoints:{enabled:!0,size:6,style:"square"},dataAxis:{},legend:{},groups:{visibility:{}}},this.options=s.extend({},this.defaultOptions),this.dom={},this.props={},this.hammer=null,this.groups={},this.abortedGraphUpdate=!1,this.updateSVGheight=!1,this.updateSVGheightOnResize=!1,this.forceGraphUpdate=!0;var i=this;this.itemsData=null,this.groupsData=null,this.itemListeners={add:function(t,e,o){i._onAdd(e.items)},update:function(t,e,o){i._onUpdate(e.items)},remove:function(t,e,o){i._onRemove(e.items)}},this.groupListeners={add:function(t,e,o){i._onAddGroups(e.items)},update:function(t,e,o){i._onUpdateGroups(e.items)},remove:function(t,e,o){i._onRemoveGroups(e.items)}},this.items={},this.selection=[],this.lastStart=this.body.range.start,this.touchParams={},this.svgElements={},this.setOptions(e),this.groupsUsingDefaultStyles=[0],this.body.emitter.on("rangechanged",function(){i.lastStart=i.body.range.start,i.svg.style.left=s.option.asSize(-i.props.width),i.forceGraphUpdate=!0,i.redraw.call(i)}),this._create(),this.framework={svg:this.svg,svgElements:this.svgElements,options:this.options,groups:this.groups}}var n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol?"symbol":typeof t},s=i(1),r=i(7),a=i(8),h=i(10),d=i(28),l=i(50),c=i(52),u=i(56),p=i(53),f=i(55),m=i(54),v="__ungrouped__";o.prototype=new d,o.prototype._create=function(){var t=document.createElement("div");t.className="vis-line-graph",this.dom.frame=t,this.svg=document.createElementNS("http://www.w3.org/2000/svg","svg"),this.svg.style.position="relative",this.svg.style.height=(""+this.options.graphHeight).replace("px","")+"px",this.svg.style.display="block",t.appendChild(this.svg),this.options.dataAxis.orientation="left",this.yAxisLeft=new l(this.body,this.options.dataAxis,this.svg,this.options.groups),this.options.dataAxis.orientation="right",this.yAxisRight=new l(this.body,this.options.dataAxis,this.svg,this.options.groups),delete this.options.dataAxis.orientation,this.legendLeft=new u(this.body,this.options.legend,"left",this.options.groups),this.legendRight=new u(this.body,this.options.legend,"right",this.options.groups),this.show()},o.prototype.setOptions=function(t){if(t){var e=["sampling","defaultGroup","stack","height","graphHeight","yAxisOrientation","style","barChart","dataAxis","sort","groups"];void 0===t.graphHeight&&void 0!==t.height?(this.updateSVGheight=!0,this.updateSVGheightOnResize=!0):void 0!==this.body.domProps.centerContainer.height&&void 0!==t.graphHeight&&parseInt((t.graphHeight+"").replace("px",""))i?-1:1});for(var o=new Array(t.length),n=0;n0){var h={};for(this._getRelevantData(a,h,n,s),this._applySampling(a,h),e=0;e0)switch(t.options.style){case"line":l.hasOwnProperty(a[e])||(l[a[e]]=f.calcPath(h[a[e]],t)),f.draw(l[a[e]],t,this.framework);case"point":case"points":"point"!=t.options.style&&"points"!=t.options.style&&1!=t.options.drawPoints.enabled||m.draw(h[a[e]],t,this.framework);break;case"bar":}}}return r.cleanupElements(this.svgElements),!1},o.prototype._stack=function(t,e){var i,o,n,s,r;i=0;for(var a=0;at[a].x){r=e[h],s=0==h?r:e[h-1],i=h;break}}void 0===r&&(s=e[e.length-1],r=e[e.length-1]),o=r.x-s.x,n=r.y-s.y,0==o?t[a].y=t[a].orginalY+r.y:t[a].y=t[a].orginalY+n/o*(t[a].x-s.x)+s.y}},o.prototype._getRelevantData=function(t,e,i,o){var n,r,a,h;if(t.length>0)for(r=0;rt?-1:1},c=Math.max(0,s.binarySearchValue(d,i,"x","before",l)),u=Math.min(d.length,s.binarySearchValue(d,o,"x","after",l)+1);0>=u&&(u=d.length);var p=new Array(u-c);for(a=c;u>a;a++)h=n.itemsData[a],p[a-c]=h;e[t[r]]=p}else e[t[r]]=n.itemsData}},o.prototype._applySampling=function(t,e){var i;if(t.length>0)for(var o=0;o0){var s=1,r=n.length,a=this.body.util.toGlobalScreen(n[n.length-1].x)-this.body.util.toGlobalScreen(n[0].x),h=r/a;s=Math.min(Math.ceil(.2*r),Math.max(1,Math.round(h)));for(var d=new Array(r),l=0;r>l;l+=s){var c=Math.round(l/s);d[c]=n[l]}e[t[o]]=d.splice(0,Math.round(r/s))}}},o.prototype._getYRanges=function(t,e,i){var o,n,s,r,a=[],h=[];if(t.length>0){for(s=0;s0&&(n=this.groups[t[s]],r.stack===!0&&"bar"===r.style?"left"===r.yAxisOrientation?a=a.concat(n.getItems()):h=h.concat(n.getItems()):i[t[s]]=n.getYRange(o,t[s]));p.getStackedYRange(a,i,t,"__barStackLeft","left"),p.getStackedYRange(h,i,t,"__barStackRight","right")}},o.prototype._updateYAxis=function(t,e){var i,o,n=!1,s=!1,r=!1,a=1e9,h=1e9,d=-1e9,l=-1e9;if(t.length>0){for(var c=0;ci?i:a,d=o>d?o:d):(r=!0,h=h>i?i:h,l=o>l?o:l));1==s&&this.yAxisLeft.setRange(a,d),1==r&&this.yAxisRight.setRange(h,l)}n=this._toggleAxisVisiblity(s,this.yAxisLeft)||n,n=this._toggleAxisVisiblity(r,this.yAxisRight)||n,1==r&&1==s?(this.yAxisLeft.drawIcons=!0,this.yAxisRight.drawIcons=!0):(this.yAxisLeft.drawIcons=!1,this.yAxisRight.drawIcons=!1),this.yAxisRight.master=!s,this.yAxisRight.masterAxis=this.yAxisLeft,0==this.yAxisRight.master?(1==r?this.yAxisLeft.lineOffset=this.yAxisRight.width:this.yAxisLeft.lineOffset=0,n=this.yAxisLeft.redraw()||n,n=this.yAxisRight.redraw()||n):n=this.yAxisRight.redraw()||n;for(var p=["__barStackLeft","__barStackRight","__lineStackLeft","__lineStackRight"],c=0;ct?-1:1});for(var a=0;a=0&&t._redrawLabel(o-2,e.val,i,"vis-y-axis vis-major",t.props.majorCharHeight),t.master===!0&&(n?t._redrawLine(o,i,"vis-grid vis-horizontal vis-major",t.options.majorLinesOffset,t.props.majorLineWidth):t._redrawLine(o,i,"vis-grid vis-horizontal vis-minor",t.options.minorLinesOffset,t.props.minorLineWidth))});var d=0;void 0!==this.options[i].title&&void 0!==this.options[i].title.text&&(d=this.props.titleCharHeight);var l=this.options.icons===!0?Math.max(this.options.iconWidth,d)+this.options.labelOffsetX+15:d+this.options.labelOffsetX+15;return this.maxLabelSize>this.width-l&&this.options.visible===!0?(this.width=this.maxLabelSize+l,this.options.width=this.width+"px",s.cleanupElements(this.DOMelements.lines),s.cleanupElements(this.DOMelements.labels),this.redraw(),e=!0):this.maxLabelSizethis.minWidth?(this.width=Math.max(this.minWidth,this.maxLabelSize+l),this.options.width=this.width+"px",s.cleanupElements(this.DOMelements.lines),s.cleanupElements(this.DOMelements.labels),this.redraw(),e=!0):(s.cleanupElements(this.DOMelements.lines),s.cleanupElements(this.DOMelements.labels),e=!1),e},o.prototype.convertValue=function(t){return this.scale.convertValue(t)},o.prototype.screenToValue=function(t){return this.scale.screenToValue(t)},o.prototype._redrawLabel=function(t,e,i,o,n){var r=s.getDOMElement("div",this.DOMelements.labels,this.dom.frame);r.className=o,r.innerHTML=e,"left"===i?(r.style.left="-"+this.options.labelOffsetX+"px",r.style.textAlign="right"):(r.style.right="-"+this.options.labelOffsetX+"px",r.style.textAlign="left"),r.style.top=t-.5*n+this.options.labelOffsetY+"px",e+="";var a=Math.max(this.props.majorCharWidth,this.props.minorCharWidth);this.maxLabelSize.5*(h.magnitudefactor*h.minorSteps[h.minorStepIdx])?e+h.magnitudefactor*h.minorSteps[h.minorStepIdx]:e};i&&(this._start-=2*this.magnitudefactor*this.minorSteps[this.minorStepIdx],this._start=d(this._start)),o&&(this._end+=this.magnitudefactor*this.minorSteps[this.minorStepIdx],this._end=d(this._end)),this.determineScale()}}i.prototype.setCharHeight=function(t){this.majorCharHeight=t},i.prototype.setHeight=function(t){this.containerHeight=t},i.prototype.determineScale=function(){var t=this._end-this._start;this.scale=this.containerHeight/t;var e=this.majorCharHeight/this.scale,i=t>0?Math.round(Math.log(t)/Math.LN10):0;this.minorStepIdx=-1,this.magnitudefactor=Math.pow(10,i);var o=0;0>i&&(o=i);for(var n=!1,s=o;Math.abs(s)<=Math.abs(i);s++){this.magnitudefactor=Math.pow(10,s);for(var r=0;r=e){n=!0,this.minorStepIdx=r;break}}if(n===!0)break}},i.prototype.is_major=function(t){return t%(this.magnitudefactor*this.majorSteps[this.minorStepIdx])===0},i.prototype.getStep=function(){return this.magnitudefactor*this.minorSteps[this.minorStepIdx]},i.prototype.getFirstMajor=function(){var t=this.magnitudefactor*this.majorSteps[this.minorStepIdx];return this.convertValue(this._start+(t-this._start%t)%t)},i.prototype.formatValue=function(t){var e=t.toPrecision(5);return"function"==typeof this.formattingFunction&&(e=this.formattingFunction(t)),"number"==typeof e?""+e:"string"==typeof e?e:t.toPrecision(5)},i.prototype.getLines=function(){for(var t=[],e=this.getStep(),i=(e-this._start%e)%e,o=this._start+i;this._end-o>1e-5;o+=e)o!=this._start&&t.push({major:this.is_major(o),y:this.convertValue(o),val:this.formatValue(o)});return t},i.prototype.followScale=function(t){var e=this.minorStepIdx,i=this._start,o=this._end,n=this,s=function(){n.magnitudefactor*=2},r=function(){n.magnitudefactor/=2};t.minorStepIdx<=1&&this.minorStepIdx<=1||t.minorStepIdx>1&&this.minorStepIdx>1||(t.minorStepIdxo+1e-5)r(),d=!1;else{if(!this.autoScaleStart&&this._start=0)){r(),d=!1;continue}console.warn("Can't adhere to given 'min' range, due to zeroalign")}this.autoScaleStart&&this.autoScaleEnd&&o-i>c?(s(),d=!1):d=!0}}},i.prototype.convertValue=function(t){return this.containerHeight-(t-this._start)*this.scale},i.prototype.screenToValue=function(t){return(this.containerHeight-t)/this.scale+this._start},t.exports=i},function(t,e,i){function o(t,e,i,o){this.id=e;var n=["sampling","style","sort","yAxisOrientation","barChart","drawPoints","shaded","interpolation","zIndex","excludeFromStacking","excludeFromLegend"];this.options=s.selectiveBridgeObject(n,i),this.usingDefaultStyle=void 0===t.className,this.groupsUsingDefaultStyles=o,this.zeroPosition=0,this.update(t),1==this.usingDefaultStyle&&(this.groupsUsingDefaultStyles[0]+=1),this.itemsData=[],this.visible=void 0===t.visible?!0:t.visible}var n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol?"symbol":typeof t},s=i(1),r=(i(7),i(53)),a=i(55),h=i(54);o.prototype.setItems=function(t){null!=t?(this.itemsData=t,1==this.options.sort&&s.insertSort(this.itemsData,function(t,e){return t.x>e.x?1:-1})):this.itemsData=[]},o.prototype.getItems=function(){return this.itemsData},o.prototype.setZeroPosition=function(t){this.zeroPosition=t},o.prototype.setOptions=function(t){if(void 0!==t){var e=["sampling","style","sort","yAxisOrientation","barChart","zIndex","excludeFromStacking","excludeFromLegend"];s.selectiveDeepExtend(e,this.options,t),"function"==typeof t.drawPoints&&(t.drawPoints={onRender:t.drawPoints}),s.mergeOptions(this.options,t,"interpolation"),s.mergeOptions(this.options,t,"drawPoints"),s.mergeOptions(this.options,t,"shaded"),t.interpolation&&"object"==n(t.interpolation)&&t.interpolation.parametrization&&("uniform"==t.interpolation.parametrization?this.options.interpolation.alpha=0:"chordal"==t.interpolation.parametrization?this.options.interpolation.alpha=1:(this.options.interpolation.parametrization="centripetal",this.options.interpolation.alpha=.5))}},o.prototype.update=function(t){this.group=t,this.content=t.content||"graph",this.className=t.className||this.className||"vis-graph-group"+this.groupsUsingDefaultStyles[0]%10,this.visible=void 0===t.visible?!0:t.visible,this.style=t.style,this.setOptions(t.options)},o.prototype.getLegend=function(t,e,i,o,n){if(void 0==i||null==i){var s=document.createElementNS("http://www.w3.org/2000/svg","svg");i={svg:s,svgElements:{},options:this.options,groups:[this]}}switch(void 0!=o&&null!=o||(o=0),void 0!=n&&null!=n||(n=.5*e),this.options.style){case"line":a.drawIcon(this,o,n,t,e,i);break;case"points":case"point":h.drawIcon(this,o,n,t,e,i);break;case"bar":r.drawIcon(this,o,n,t,e,i)}return{icon:i.svg,label:this.content,orientation:this.options.yAxisOrientation}},o.prototype.getYRange=function(t){for(var e=t[0].y,i=t[0].y,o=0;ot[o].y?t[o].y:e,i=i0&&(i=Math.min(i,Math.abs(e[o-1].screen_x-e[o].screen_x))),0===i&&(void 0===t[e[o].screen_x]&&(t[e[o].screen_x]={amount:0,resolved:0,accumulatedPositive:0,accumulatedNegative:0}),t[e[o].screen_x].amount+=1)},o._getSafeDrawData=function(t,e,i){var o,n;return t0?(o=i>t?i:t,n=0,"left"===e.options.barChart.align?n-=.5*t:"right"===e.options.barChart.align&&(n+=.5*t)):(o=e.options.barChart.width,n=0,"left"===e.options.barChart.align?n-=.5*e.options.barChart.width:"right"===e.options.barChart.align&&(n+=.5*e.options.barChart.width)),{width:o,offset:n}},o.getStackedYRange=function(t,e,i,n,s){if(t.length>0){t.sort(function(t,e){return t.screen_x===e.screen_x?t.groupIde[s].screen_y?e[s].screen_y:o,n=nt[r].accumulatedNegative?t[r].accumulatedNegative:o,o=o>t[r].accumulatedPositive?t[r].accumulatedPositive:o,n=n0){var i=[];return i=1==e.options.interpolation.enabled?o._catmullRom(t,e):o._linear(t)}},o.drawIcon=function(t,e,i,o,s,r){var a,h,d=.5*s,l=n.getSVGElement("rect",r.svgElements,r.svg);if(l.setAttributeNS(null,"x",e),l.setAttributeNS(null,"y",i-d),l.setAttributeNS(null,"width",o),l.setAttributeNS(null,"height",2*d),l.setAttributeNS(null,"class","vis-outline"),a=n.getSVGElement("path",r.svgElements,r.svg),a.setAttributeNS(null,"class",t.className),void 0!==t.style&&a.setAttributeNS(null,"style",t.style),a.setAttributeNS(null,"d","M"+e+","+i+" L"+(e+o)+","+i),1==t.options.shaded.enabled&&(h=n.getSVGElement("path",r.svgElements,r.svg),"top"==t.options.shaded.orientation?h.setAttributeNS(null,"d","M"+e+", "+(i-d)+"L"+e+","+i+" L"+(e+o)+","+i+" L"+(e+o)+","+(i-d)):h.setAttributeNS(null,"d","M"+e+","+i+" L"+e+","+(i+d)+" L"+(e+o)+","+(i+d)+"L"+(e+o)+","+i),h.setAttributeNS(null,"class",t.className+" vis-icon-fill"),void 0!==t.options.shaded.style&&""!==t.options.shaded.style&&h.setAttributeNS(null,"style",t.options.shaded.style)),1==t.options.drawPoints.enabled){var c={style:t.options.drawPoints.style,styles:t.options.drawPoints.styles,size:t.options.drawPoints.size,className:t.className};n.drawPoint(e+.5*o,i,c,r.svgElements,r.svg)}},o.drawShading=function(t,e,i,o){if(1==e.options.shaded.enabled){var s=Number(o.svg.style.height.replace("px","")),r=n.getSVGElement("path",o.svgElements,o.svg),a="L";1==e.options.interpolation.enabled&&(a="C");var h,d=0;d="top"==e.options.shaded.orientation?0:"bottom"==e.options.shaded.orientation?s:Math.min(Math.max(0,e.zeroPosition),s),h="group"==e.options.shaded.orientation&&null!=i&&void 0!=i?"M"+t[0][0]+","+t[0][1]+" "+this.serializePath(t,a,!1)+" L"+i[i.length-1][0]+","+i[i.length-1][1]+" "+this.serializePath(i,a,!0)+i[0][0]+","+i[0][1]+" Z":"M"+t[0][0]+","+t[0][1]+" "+this.serializePath(t,a,!1)+" V"+d+" H"+t[0][0]+" Z",r.setAttributeNS(null,"class",e.className+" vis-fill"),void 0!==e.options.shaded.style&&r.setAttributeNS(null,"style",e.options.shaded.style),r.setAttributeNS(null,"d",h)}},o.draw=function(t,e,i){if(null!=t&&void 0!=t){var o=n.getSVGElement("path",i.svgElements,i.svg);o.setAttributeNS(null,"class",e.className),void 0!==e.style&&o.setAttributeNS(null,"style",e.style);var s="L";1==e.options.interpolation.enabled&&(s="C"),o.setAttributeNS(null,"d","M"+t[0][0]+","+t[0][1]+" "+this.serializePath(t,s,!1))}},o.serializePath=function(t,e,i){if(t.length<2)return"";var o=e;if(i)for(var n=t.length-2;n>0;n--)o+=t[n][0]+","+t[n][1]+" ";else for(var n=1;nl;l++)e=0==l?t[0]:t[l-1],i=t[l],o=t[l+1],n=d>l+2?t[l+2]:o,s={screen_x:(-e.screen_x+6*i.screen_x+o.screen_x)*h,screen_y:(-e.screen_y+6*i.screen_y+o.screen_y)*h},r={screen_x:(i.screen_x+6*o.screen_x-n.screen_x)*h,screen_y:(i.screen_y+6*o.screen_y-n.screen_y)*h},a.push([s.screen_x,s.screen_y]),a.push([r.screen_x,r.screen_y]),a.push([o.screen_x,o.screen_y]);return a},o._catmullRom=function(t,e){var i=e.options.interpolation.alpha;if(0==i||void 0===i)return this._catmullRomUniform(t);var o,n,s,r,a,h,d,l,c,u,p,f,m,v,g,y,b,w,_,x=[];x.push([Math.round(t[0].screen_x),Math.round(t[0].screen_y)]);for(var k=t.length,O=0;k-1>O;O++)o=0==O?t[0]:t[O-1],n=t[O],s=t[O+1],r=k>O+2?t[O+2]:s,d=Math.sqrt(Math.pow(o.screen_x-n.screen_x,2)+Math.pow(o.screen_y-n.screen_y,2)),l=Math.sqrt(Math.pow(n.screen_x-s.screen_x,2)+Math.pow(n.screen_y-s.screen_y,2)),c=Math.sqrt(Math.pow(s.screen_x-r.screen_x,2)+Math.pow(s.screen_y-r.screen_y,2)),v=Math.pow(c,i),y=Math.pow(c,2*i),g=Math.pow(l,i),b=Math.pow(l,2*i),_=Math.pow(d,i),w=Math.pow(d,2*i),u=2*w+3*_*g+b,p=2*y+3*v*g+b,f=3*_*(_+g),f>0&&(f=1/f),m=3*v*(v+g),m>0&&(m=1/m),a={screen_x:(-b*o.screen_x+u*n.screen_x+w*s.screen_x)*f,screen_y:(-b*o.screen_y+u*n.screen_y+w*s.screen_y)*f},h={screen_x:(y*n.screen_x+p*s.screen_x-b*r.screen_x)*m,screen_y:(y*n.screen_y+p*s.screen_y-b*r.screen_y)*m},0==a.screen_x&&0==a.screen_y&&(a=n),0==h.screen_x&&0==h.screen_y&&(h=s),x.push([a.screen_x,a.screen_y]),x.push([h.screen_x,h.screen_y]),x.push([s.screen_x,s.screen_y]);return x},o._linear=function(t){for(var e=[],i=0;it?-1:1});for(var i=0;i")}this.dom.textArea.innerHTML=s,this.dom.textArea.style.lineHeight=.75*this.options.iconSize+this.options.iconSpacing+"px"}},o.prototype.drawLegendIcons=function(){if(this.dom.frame.parentNode){var t=Object.keys(this.groups);t.sort(function(t,e){return e>t?-1:1}),s.resetElements(this.svgElements);var e=window.getComputedStyle(this.dom.frame).paddingTop,i=Number(e.replace("px","")),o=i,n=this.options.iconSize,r=.75*this.options.iconSize,a=i+.5*r+3;this.svg.style.width=n+5+i+"px";for(var h=0;h0){var i=this.groupIndex%this.groupsArray.length;this.groupIndex++,e={},e.color=this.groups[this.groupsArray[i]],this.groups[t]=e}else{var o=this.defaultIndex%this.defaultGroups.length;this.defaultIndex++,e={},e.color=this.defaultGroups[o],this.groups[t]=e}return e}},{key:"add",value:function(t,e){return this.groups[t]=e,this.groupsArray.push(t),e}}]),t}();e["default"]=r},function(t,e,i){function o(t){return t&&t.__esModule?t:{"default":t}}function n(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(e,"__esModule",{value:!0});var s=function(){function t(t,e){for(var i=0;it.left&&this.shape.topt.top}},{key:"isBoundingBoxOverlappingWith",value:function(t){return this.shape.boundingBox.leftt.left&&this.shape.boundingBox.topt.top}}],[{key:"parseOptions",value:function(t,e){var i=arguments.length<=2||void 0===arguments[2]?!1:arguments[2],o=arguments.length<=3||void 0===arguments[3]?{}:arguments[3],n=["color","font","fixed","shadow"];if(A.selectiveNotDeepExtend(n,t,e,i),A.mergeOptions(t,e,"shadow",i,o),void 0!==e.color&&null!==e.color){var s=A.parseColor(e.color);A.fillIfDefined(t.color,s)}else i===!0&&null===e.color&&(t.color=A.bridgeObject(o.color));void 0!==e.fixed&&null!==e.fixed&&("boolean"==typeof e.fixed?(t.fixed.x=e.fixed,t.fixed.y=e.fixed):(void 0!==e.fixed.x&&"boolean"==typeof e.fixed.x&&(t.fixed.x=e.fixed.x),void 0!==e.fixed.y&&"boolean"==typeof e.fixed.y&&(t.fixed.y=e.fixed.y))),void 0!==e.font&&null!==e.font?a["default"].parseOptions(t.font,e):i===!0&&null===e.font&&(t.font=A.bridgeObject(o.font)),void 0!==e.scaling&&A.mergeOptions(t.scaling,e.scaling,"label",i,o.scaling)}}]),t}();e["default"]=B},function(t,e,i){function o(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(e,"__esModule",{value:!0});var n=function(){function t(t,e){var i=[],o=!0,n=!1,s=void 0;try{for(var r,a=t[Symbol.iterator]();!(o=(r=a.next()).done)&&(i.push(r.value),!e||i.length!==e);o=!0);}catch(h){n=!0,s=h}finally{try{!o&&a["return"]&&a["return"]()}finally{if(n)throw s}}return i}return function(e,i){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return t(e,i);throw new TypeError("Invalid attempt to destructure non-iterable instance")}}(),s="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol?"symbol":typeof t},r=function(){function t(t,e){for(var i=0;i=this.nodeOptions.scaling.label.maxVisible&&(r=Number(this.nodeOptions.scaling.label.maxVisible)/this.body.view.scale);var h=this.size.yLine,d=this._getColor(a),l=n(d,2),c=l[0],u=l[1],p=this._setAlignment(t,i,h,s),f=n(p,2);i=f[0],h=f[1],t.font=(e&&this.nodeOptions.labelHighlightBold?"bold ":"")+r+"px "+this.fontOptions.face,t.fillStyle=c,this.isEdgeLabel||"left"!==this.fontOptions.align?t.textAlign="center":(t.textAlign=this.fontOptions.align,i-=.5*this.size.width),this.fontOptions.strokeWidth>0&&(t.lineWidth=this.fontOptions.strokeWidth,t.strokeStyle=u,t.lineJoin="round");for(var m=0;m0&&t.strokeText(this.lines[m],i,h),t.fillText(this.lines[m],i,h),h+=r}},{key:"_setAlignment",value:function(t,e,i,o){if(this.isEdgeLabel&&"horizontal"!==this.fontOptions.align&&this.pointToSelf===!1){e=0,i=0;var n=2;"top"===this.fontOptions.align?(t.textBaseline="alphabetic",i-=2*n):"bottom"===this.fontOptions.align?(t.textBaseline="hanging",i+=2*n):t.textBaseline="middle"}else t.textBaseline=o;return[e,i]}},{key:"_getColor",value:function(t){var e=this.fontOptions.color||"#000000",i=this.fontOptions.strokeColor||"#ffffff";if(t<=this.nodeOptions.scaling.label.drawThreshold){var o=Math.max(0,Math.min(1,1-(this.nodeOptions.scaling.label.drawThreshold-t)));e=a.overrideOpacity(e,o),i=a.overrideOpacity(i,o)}return[e,i]}},{key:"getTextSize",value:function(t){var e=arguments.length<=1||void 0===arguments[1]?!1:arguments[1],i={width:this._processLabel(t,e),height:this.fontOptions.size*this.lineCount,lineCount:this.lineCount};return i}},{key:"calculateLabelSize",value:function(t,e){var i=arguments.length<=2||void 0===arguments[2]?0:arguments[2],o=arguments.length<=3||void 0===arguments[3]?0:arguments[3],n=arguments.length<=4||void 0===arguments[4]?"middle":arguments[4];this.labelDirty===!0&&(this.size.width=this._processLabel(t,e)),this.size.height=this.fontOptions.size*this.lineCount,this.size.left=i-.5*this.size.width,this.size.top=o-.5*this.size.height,this.size.yLine=o+.5*(1-this.lineCount)*this.fontOptions.size,"hanging"===n&&(this.size.top+=.5*this.fontOptions.size,this.size.top+=4,this.size.yLine+=4),this.labelDirty=!1}},{key:"_processLabel",value:function(t,e){var i=0,o=[""],n=0;if(void 0!==this.nodeOptions.label){o=String(this.nodeOptions.label).split("\n"),n=o.length,t.font=(e&&this.nodeOptions.labelHighlightBold?"bold ":"")+this.fontOptions.size+"px "+this.fontOptions.face,i=t.measureText(o[0]).width;for(var s=1;n>s;s++){var r=t.measureText(o[s]).width;i=r>i?r:i}}return this.lines=o,this.lineCount=n,i}}],[{key:"parseOptions",value:function(t,e){var i=arguments.length<=2||void 0===arguments[2]?!1:arguments[2];if("string"==typeof e.font){var o=e.font.split(" ");t.size=o[0].replace("px",""),t.face=o[1],t.color=o[2]}else"object"===s(e.font)&&a.fillIfDefined(t,e.font,i);t.size=Number(t.size)}}]),t}();e["default"]=h},function(t,e,i){function o(t){return t&&t.__esModule?t:{"default":t}}function n(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function s(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}function r(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}Object.defineProperty(e,"__esModule",{value:!0});var a=function(){function t(t,e){for(var i=0;i0&&(this.enableBorderDashes(t),t.stroke(),this.disableBorderDashes(t)),t.restore(),this.updateBoundingBox(e,i,t,o),this.labelModule.draw(t,e,i,o)}},{key:"updateBoundingBox",value:function(t,e,i,o){this.resize(i,o),this.left=t-.5*this.width,this.top=e-.5*this.height;var n=this.options.shapeProperties.borderRadius;this.boundingBox.left=this.left-n,this.boundingBox.top=this.top-n,this.boundingBox.bottom=this.top+this.height+n,this.boundingBox.right=this.left+this.width+n}},{key:"distanceToBorder",value:function(t,e){this.resize(t);var i=this.options.borderWidth;return Math.min(Math.abs(this.width/2/Math.cos(e)),Math.abs(this.height/2/Math.sin(e)))+i}}]),e}(d["default"]);e["default"]=l},function(t,e){function i(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(e,"__esModule",{value:!0});var o=function(){function t(t,e){for(var i=0;ithis.imageObj.height?(o=this.imageObj.width/this.imageObj.height,e=2*this.options.size*o||this.imageObj.width,i=2*this.options.size||this.imageObj.height):(o=this.imageObj.width&&this.imageObj.height?this.imageObj.height/this.imageObj.width:1,e=2*this.options.size,i=2*this.options.size*o):(e=this.imageObj.width,i=this.imageObj.height),this.width=e,this.height=i,this.radius=.5*this.width}}},{key:"_drawRawCircle",value:function(t,e,i,o,n,s){var r=this.options.borderWidth,a=this.options.borderWidthSelected||2*this.options.borderWidth,h=(o?a:r)/this.body.view.scale;t.lineWidth=Math.min(this.width,h),t.strokeStyle=o?this.options.color.highlight.border:n?this.options.color.hover.border:this.options.color.border,t.fillStyle=o?this.options.color.highlight.background:n?this.options.color.hover.background:this.options.color.background,t.circle(e,i,s),this.enableShadow(t),t.fill(),this.disableShadow(t),t.save(),h>0&&(this.enableBorderDashes(t),t.stroke(),this.disableBorderDashes(t)),t.restore()}},{key:"_drawImageAtPosition",value:function(t){if(0!=this.imageObj.width){t.globalAlpha=1,this.enableShadow(t);var e=this.imageObj.width/this.width/this.body.view.scale;if(e>2&&this.options.shapeProperties.interpolation===!0){var i=this.imageObj.width,o=this.imageObj.height,n=document.createElement("canvas");n.width=i,n.height=i;var s=n.getContext("2d");e*=.5,i*=.5,o*=.5,s.drawImage(this.imageObj,0,0,i,o);for(var r=0,a=1;e>2&&4>a;)s.drawImage(n,r,0,i,o,r+i,0,i/2,o/2),r+=i,e*=.5,i*=.5,o*=.5,a+=1;t.drawImage(n,r,0,i,o,this.left,this.top,this.width,this.height)}else t.drawImage(this.imageObj,this.left,this.top,this.width,this.height);this.disableShadow(t)}}},{key:"_drawImageLabel",value:function(t,e,i,o){var n,s=0;if(void 0!==this.height){s=.5*this.height;var r=this.labelModule.getTextSize(t);r.lineCount>=1&&(s+=r.height/2)}n=i+s,this.options.label&&(this.labelOffset=s),this.labelModule.draw(t,e,n,o,"hanging")}}]),e}(d["default"]);e["default"]=l},function(t,e,i){function o(t){return t&&t.__esModule?t:{"default":t}}function n(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function s(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}function r(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}Object.defineProperty(e,"__esModule",{value:!0});var a=function(){function t(t,e){for(var i=0;i0&&(this.enableBorderDashes(t),t.stroke(),this.disableBorderDashes(t)),t.restore(),this.updateBoundingBox(e,i,t,o),this.labelModule.draw(t,e,i,o)}},{key:"updateBoundingBox",value:function(t,e,i,o){this.resize(i,o),this.left=t-.5*this.width,this.top=e-.5*this.height,this.boundingBox.left=this.left,this.boundingBox.top=this.top,this.boundingBox.bottom=this.top+this.height,this.boundingBox.right=this.left+this.width}},{key:"distanceToBorder",value:function(t,e){return this._distanceToBorder(t,e)}}]),e}(d["default"]);e["default"]=l},function(t,e,i){function o(t){return t&&t.__esModule?t:{"default":t}}function n(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function s(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}function r(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}Object.defineProperty(e,"__esModule",{value:!0});var a=function(){function t(t,e){for(var i=0;i0&&(this.enableBorderDashes(t),t.stroke(),this.disableBorderDashes(t)),t.restore(),void 0!==this.options.label){var l=n+.5*this.height+3;this.labelModule.draw(t,o,l,s,"hanging")}this.updateBoundingBox(o,n)}},{key:"updateBoundingBox",value:function(t,e){this.boundingBox.top=e-this.options.size,this.boundingBox.left=t-this.options.size,this.boundingBox.right=t+this.options.size,this.boundingBox.bottom=e+this.options.size,void 0!==this.options.label&&this.labelModule.size.width>0&&(this.boundingBox.left=Math.min(this.boundingBox.left,this.labelModule.size.left),this.boundingBox.right=Math.max(this.boundingBox.right,this.labelModule.size.left+this.labelModule.size.width),this.boundingBox.bottom=Math.max(this.boundingBox.bottom,this.boundingBox.bottom+this.labelModule.size.height+3))}}]),e}(d["default"]);e["default"]=l},function(t,e,i){function o(t){return t&&t.__esModule?t:{"default":t}}function n(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function s(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}function r(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}Object.defineProperty(e,"__esModule",{value:!0});var a=function(){function t(t,e){for(var i=0;i0&&(this.enableBorderDashes(t),t.stroke(),this.disableBorderDashes(t)),t.restore(),this.updateBoundingBox(e,i,t,o),this.labelModule.draw(t,e,i,o)}},{key:"updateBoundingBox",value:function(t,e,i,o){this.resize(i,o),this.left=t-.5*this.width,this.top=e-.5*this.height,this.boundingBox.left=this.left,this.boundingBox.top=this.top,this.boundingBox.bottom=this.top+this.height,this.boundingBox.right=this.left+this.width}},{key:"distanceToBorder",value:function(t,e){this.resize(t);var i=.5*this.width,o=.5*this.height,n=Math.sin(e)*i,s=Math.cos(e)*o;return i*o/Math.sqrt(n*n+s*s)}}]),e}(d["default"]);e["default"]=l},function(t,e,i){function o(t){return t&&t.__esModule?t:{"default":t}}function n(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function s(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}function r(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}Object.defineProperty(e,"__esModule",{value:!0});var a=function(){function t(t,e){for(var i=0;i0){var i=5;this.boundingBox.left=Math.min(this.boundingBox.left,this.labelModule.size.left),this.boundingBox.right=Math.max(this.boundingBox.right,this.labelModule.size.left+this.labelModule.size.width),this.boundingBox.bottom=Math.max(this.boundingBox.bottom,this.boundingBox.bottom+this.labelModule.size.height+i)}}},{key:"_icon",value:function(t,e,i,o){var n=Number(this.options.icon.size);void 0!==this.options.icon.code?(t.font=(o?"bold ":"")+n+"px "+this.options.icon.face,t.fillStyle=this.options.icon.color||"black",t.textAlign="center",t.textBaseline="middle",this.enableShadow(t),t.fillText(this.options.icon.code,e,i),this.disableShadow(t)):console.error("When using the icon shape, you need to define the code in the icon options object. This can be done per node or globally.")}},{key:"distanceToBorder",value:function(t,e){return this._distanceToBorder(t,e)}}]),e}(d["default"]);e["default"]=l},function(t,e,i){function o(t){return t&&t.__esModule?t:{"default":t}}function n(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function s(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}function r(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}Object.defineProperty(e,"__esModule",{value:!0});var a=function(){function t(t,e){for(var i=0;i0&&(this.enableBorderDashes(t),t.stroke(),this.disableBorderDashes(t)),t.restore(),t.closePath()}this._drawImageAtPosition(t),this._drawImageLabel(t,e,i,o||n),this.updateBoundingBox(e,i)}},{key:"updateBoundingBox",value:function(t,e){this.resize(),this.left=t-this.width/2,this.top=e-this.height/2,this.boundingBox.top=this.top,this.boundingBox.left=this.left,this.boundingBox.right=this.left+this.width,this.boundingBox.bottom=this.top+this.height,void 0!==this.options.label&&this.labelModule.size.width>0&&(this.boundingBox.left=Math.min(this.boundingBox.left,this.labelModule.size.left),this.boundingBox.right=Math.max(this.boundingBox.right,this.labelModule.size.left+this.labelModule.size.width),this.boundingBox.bottom=Math.max(this.boundingBox.bottom,this.boundingBox.bottom+this.labelOffset))}},{key:"distanceToBorder",value:function(t,e){return this._distanceToBorder(t,e)}}]),e}(d["default"]);e["default"]=l},function(t,e,i){function o(t){return t&&t.__esModule?t:{"default":t}}function n(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function s(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}function r(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}Object.defineProperty(e,"__esModule",{value:!0});var a=function(){function t(t,e){for(var i=0;ii.shape.height?(r=i.x+.5*i.shape.width,a=i.y-h):(r=i.x+h,a=i.y-.5*i.shape.height),s=this._pointOnCircle(r,a,h,.125),this.labelModule.draw(t,s.x,s.y,n)}}}},{key:"isOverlappingWith",value:function(t){if(this.connected){var e=10,i=this.from.x,o=this.from.y,n=this.to.x,s=this.to.y,r=t.left,a=t.top,h=this.edgeType.getDistanceToEdge(i,o,n,s,r,a);return e>h}return!1}},{key:"_rotateForLabelAlignment",value:function(t){var e=this.from.y-this.to.y,i=this.from.x-this.to.x,o=Math.atan2(e,i);(-1>o&&0>i||o>0&&0>i)&&(o+=Math.PI),t.rotate(o)}},{key:"_pointOnCircle",value:function(t,e,i,o){var n=2*o*Math.PI;return{x:t+i*Math.cos(n),y:e-i*Math.sin(n)}}},{key:"select",value:function(){this.selected=!0}},{key:"unselect",value:function(){this.selected=!1}},{key:"cleanup",value:function(){return this.edgeType.cleanup()}}],[{key:"parseOptions",value:function(t,e){var i=arguments.length<=2||void 0===arguments[2]?!1:arguments[2],o=arguments.length<=3||void 0===arguments[3]?{}:arguments[3],n=["arrowStrikethrough","id","from","hidden","hoverWidth","label","labelHighlightBold","length","line","opacity","physics","scaling","selectionWidth","selfReferenceSize","to","title","value","width"];if(g.selectiveDeepExtend(n,t,e,i),g.mergeOptions(t,e,"smooth",i,o),g.mergeOptions(t,e,"shadow",i,o),void 0!==e.dashes&&null!==e.dashes?t.dashes=e.dashes:i===!0&&null===e.dashes&&(t.dashes=Object.create(o.dashes)),void 0!==e.scaling&&null!==e.scaling?(void 0!==e.scaling.min&&(t.scaling.min=e.scaling.min),void 0!==e.scaling.max&&(t.scaling.max=e.scaling.max),g.mergeOptions(t.scaling,e.scaling,"label",i,o.scaling)):i===!0&&null===e.scaling&&(t.scaling=Object.create(o.scaling)),void 0!==e.arrows&&null!==e.arrows)if("string"==typeof e.arrows){var r=e.arrows.toLowerCase();-1!=r.indexOf("to")&&(t.arrows.to.enabled=!0),-1!=r.indexOf("middle")&&(t.arrows.middle.enabled=!0),-1!=r.indexOf("from")&&(t.arrows.from.enabled=!0)}else{if("object"!==s(e.arrows))throw new Error("The arrow newOptions can only be an object or a string. Refer to the documentation. You used:"+JSON.stringify(e.arrows));g.mergeOptions(t.arrows,e.arrows,"to",i,o.arrows),g.mergeOptions(t.arrows,e.arrows,"middle",i,o.arrows),g.mergeOptions(t.arrows,e.arrows,"from",i,o.arrows)}else i===!0&&null===e.arrows&&(t.arrows=Object.create(o.arrows));if(void 0!==e.color&&null!==e.color)if(t.color=g.deepExtend({},t.color,!0),g.isString(e.color))t.color.color=e.color,t.color.highlight=e.color,t.color.hover=e.color,t.color.inherit=!1;else{var a=!1;void 0!==e.color.color&&(t.color.color=e.color.color,a=!0),void 0!==e.color.highlight&&(t.color.highlight=e.color.highlight,a=!0),void 0!==e.color.hover&&(t.color.hover=e.color.hover,a=!0),void 0!==e.color.inherit&&(t.color.inherit=e.color.inherit),void 0!==e.color.opacity&&(t.color.opacity=Math.min(1,Math.max(0,e.color.opacity))),void 0===e.color.inherit&&a===!0&&(t.color.inherit=!1)}else i===!0&&null===e.color&&(t.color=g.bridgeObject(o.color));void 0!==e.font&&null!==e.font?h["default"].parseOptions(t.font,e):i===!0&&null===e.font&&(t.font=g.bridgeObject(o.font))}}]),t}();e["default"]=y},function(t,e,i){function o(t){return t&&t.__esModule?t:{"default":t}}function n(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function s(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}function r(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}Object.defineProperty(e,"__esModule",{value:!0});var a=function(){function t(t,e){var i=[],o=!0,n=!1,s=void 0;try{for(var r,a=t[Symbol.iterator]();!(o=(r=a.next()).done)&&(i.push(r.value),!e||i.length!==e);o=!0);}catch(h){n=!0,s=h}finally{try{!o&&a["return"]&&a["return"]()}finally{if(n)throw s}}return i}return function(e,i){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return t(e,i);throw new TypeError("Invalid attempt to destructure non-iterable instance")}}(),h=function(){function t(t,e){for(var i=0;iMath.abs(e)||this.options.smooth.forceDirection===!0||"horizontal"===this.options.smooth.forceDirection)&&"vertical"!==this.options.smooth.forceDirection?(o=this.from.y,s=this.to.y,i=this.from.x-r*t,n=this.to.x+r*t):(o=this.from.y-r*e,s=this.to.y+r*e,i=this.from.x,n=this.to.x),[{x:i,y:o},{x:n,y:s}]}},{key:"getViaNode",value:function(){return this._getViaCoordinates()}},{key:"_findBorderPosition",value:function(t,e){return this._findBorderPositionBezier(t,e)}},{key:"_getDistanceToEdge",value:function(t,e,i,o,n,s){var r=arguments.length<=6||void 0===arguments[6]?this._getViaCoordinates():arguments[6],h=a(r,2),d=h[0],l=h[1];return this._getDistanceToBezierEdge(t,e,i,o,n,s,d,l)}},{key:"getPoint",value:function(t){var e=arguments.length<=1||void 0===arguments[1]?this._getViaCoordinates():arguments[1],i=a(e,2),o=i[0],n=i[1],s=t,r=[];r[0]=Math.pow(1-s,3),r[1]=3*s*Math.pow(1-s,2),r[2]=3*Math.pow(s,2)*(1-s),r[3]=Math.pow(s,3);var h=r[0]*this.fromPoint.x+r[1]*o.x+r[2]*n.x+r[3]*this.toPoint.x,d=r[0]*this.fromPoint.y+r[1]*o.y+r[2]*n.y+r[3]*this.toPoint.y;return{x:h,y:d}}}]),e}(l["default"]);e["default"]=c},function(t,e,i){function o(t){return t&&t.__esModule?t:{"default":t}}function n(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function s(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}function r(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}Object.defineProperty(e,"__esModule",{value:!0});var a=function(){function t(t,e){for(var i=0;il;l++)c=.1*l,v[0]=Math.pow(1-c,3),v[1]=3*c*Math.pow(1-c,2),v[2]=3*Math.pow(c,2)*(1-c),v[3]=Math.pow(c,3),u=v[0]*t+v[1]*r.x+v[2]*a.x+v[3]*i,p=v[0]*e+v[1]*r.y+v[2]*a.y+v[3]*o,l>0&&(d=this._getDistanceToLine(f,m,u,p,n,s),h=h>d?d:h),f=u,m=p;return h}}]),e}(d["default"]);e["default"]=l},function(t,e,i){function o(t){return t&&t.__esModule?t:{"default":t}}function n(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function s(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}function r(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}Object.defineProperty(e,"__esModule",{value:!0});var a=function(){function t(t,e){for(var i=0;i=l&&h>d;){var m=.5*(l+c);if(i=this.getPoint(m,a),o=Math.atan2(p.y-i.y,p.x-i.x),n=p.distanceToBorder(e,o),s=Math.sqrt(Math.pow(i.x-p.x,2)+Math.pow(i.y-p.y,2)),r=n-s,Math.abs(r)r?f===!1?l=m:c=m:f===!1?c=m:l=m,d++}return i.t=m,i}},{key:"_getDistanceToBezierEdge",value:function(t,e,i,o,n,s,r){var a=1e9,h=void 0,d=void 0,l=void 0,c=void 0,u=void 0,p=t,f=e;for(d=1;10>d;d++)l=.1*d,c=Math.pow(1-l,2)*t+2*l*(1-l)*r.x+Math.pow(l,2)*i,u=Math.pow(1-l,2)*e+2*l*(1-l)*r.y+Math.pow(l,2)*o,d>0&&(h=this._getDistanceToLine(p,f,c,u,n,s),a=a>h?h:a),p=c,f=u;return a}}]),e}(d["default"]);e["default"]=l},function(t,e,i){function o(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(e,"__esModule",{value:!0});var n=function(){function t(t,e){var i=[],o=!0,n=!1,s=void 0;try{for(var r,a=t[Symbol.iterator]();!(o=(r=a.next()).done)&&(i.push(r.value),!e||i.length!==e);o=!0);}catch(h){n=!0,s=h}finally{try{!o&&a["return"]&&a["return"]()}finally{if(n)throw s}}return i}return function(e,i){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return t(e,i);throw new TypeError("Invalid attempt to destructure non-iterable instance")}}(),s=function(){function t(t,e){for(var i=0;io.shape.height?(e=o.x+.5*o.shape.width,i=o.y-n):(e=o.x+n,i=o.y-.5*o.shape.height),[e,i,n]}},{key:"_pointOnCircle",value:function(t,e,i,o){var n=2*o*Math.PI;return{x:t+i*Math.cos(n),y:e-i*Math.sin(n)}}},{key:"_findBorderPositionCircle",value:function(t,e,i){for(var o=i.x,n=i.y,s=i.low,r=i.high,a=i.direction,h=10,d=0,l=this.options.selfReferenceSize,c=void 0,u=void 0,p=void 0,f=void 0,m=void 0,v=.05,g=.5*(s+r);r>=s&&h>d&&(g=.5*(s+r),c=this._pointOnCircle(o,n,l,g),u=Math.atan2(t.y-c.y,t.x-c.x),p=t.distanceToBorder(e,u),f=Math.sqrt(Math.pow(c.x-t.x,2)+Math.pow(c.y-t.y,2)),m=p-f,!(Math.abs(m)0?a>0?s=g:r=g:a>0?r=g:s=g,d++;return c.t=g,c}},{key:"getLineWidth",value:function(t,e){return t===!0?Math.max(this.selectionWidth,.3/this.body.view.scale):e===!0?Math.max(this.hoverWidth,.3/this.body.view.scale):Math.max(this.options.width,.3/this.body.view.scale)}},{key:"getColor",value:function(t,e,i){var o=this.options.color;if(o.inherit!==!1){if("both"===o.inherit&&this.from.id!==this.to.id){var n=t.createLinearGradient(this.from.x,this.from.y,this.to.x,this.to.y),s=void 0,a=void 0;return s=this.from.options.color.highlight.border,a=this.to.options.color.highlight.border,this.from.selected===!1&&this.to.selected===!1?(s=r.overrideOpacity(this.from.options.color.border,this.options.color.opacity),a=r.overrideOpacity(this.to.options.color.border,this.options.color.opacity)):this.from.selected===!0&&this.to.selected===!1?a=this.to.options.color.border:this.from.selected===!1&&this.to.selected===!0&&(s=this.from.options.color.border),n.addColorStop(0,s),n.addColorStop(1,a),n}this.colorDirty===!0&&("to"===o.inherit?(this.color.highlight=this.to.options.color.highlight.border,this.color.hover=this.to.options.color.hover.border,this.color.color=r.overrideOpacity(this.to.options.color.border,o.opacity)):(this.color.highlight=this.from.options.color.highlight.border,this.color.hover=this.from.options.color.hover.border,this.color.color=r.overrideOpacity(this.from.options.color.border,o.opacity)))}else this.colorDirty===!0&&(this.color.highlight=o.highlight,this.color.hover=o.hover,this.color.color=r.overrideOpacity(o.color,o.opacity));return this.colorDirty=!1,e===!0?this.color.highlight:i===!0?this.color.hover:this.color.color}},{key:"_circle",value:function(t,e,i,o){this.enableShadow(t),t.beginPath(),t.arc(e,i,o,0,2*Math.PI,!1),t.stroke(),this.disableShadow(t)}},{key:"getDistanceToEdge",value:function(t,e,i,o,s,r,a){var h=0;if(this.from!=this.to)h=this._getDistanceToEdge(t,e,i,o,s,r,a);else{var d=this._getCircleData(),l=n(d,3),c=l[0],u=l[1],p=l[2],f=c-s,m=u-r;h=Math.abs(Math.sqrt(f*f+m*m)-p)}return this.labelModule.size.lefts&&this.labelModule.size.topr?0:h}},{key:"_getDistanceToLine",value:function(t,e,i,o,n,s){var r=i-t,a=o-e,h=r*r+a*a,d=((n-t)*r+(s-e)*a)/h;d>1?d=1:0>d&&(d=0);var l=t+d*r,c=e+d*a,u=l-n,p=c-s;return Math.sqrt(u*u+p*p)}},{key:"getArrowData",value:function(t,e,i,o,s){var r=void 0,a=void 0,h=void 0,d=void 0,l=void 0,c=void 0,u=this.getLineWidth(o,s);if("from"===e?(h=this.from,d=this.to,l=.1,c=this.options.arrows.from.scaleFactor):"to"===e?(h=this.to,d=this.from,l=-.1,c=this.options.arrows.to.scaleFactor):(h=this.to,d=this.from,c=this.options.arrows.middle.scaleFactor),h!=d)if("middle"!==e)if(this.options.smooth.enabled===!0){a=this.findBorderPosition(h,t,{via:i});var p=this.getPoint(Math.max(0,Math.min(1,a.t+l)),i);r=Math.atan2(a.y-p.y,a.x-p.x)}else r=Math.atan2(h.y-d.y,h.x-d.x),a=this.findBorderPosition(h,t);else r=Math.atan2(h.y-d.y,h.x-d.x),a=this.getPoint(.5,i);else{var f=this._getCircleData(t),m=n(f,3),v=m[0],g=m[1],y=m[2];"from"===e?(a=this.findBorderPosition(this.from,t,{x:v,y:g,low:.25,high:.6,direction:-1}),r=-2*a.t*Math.PI+1.5*Math.PI+.1*Math.PI):"to"===e?(a=this.findBorderPosition(this.from,t,{x:v,y:g,low:.6,high:1,direction:1}),r=-2*a.t*Math.PI+1.5*Math.PI-1.1*Math.PI):(a=this._pointOnCircle(v,g,y,.175),r=3.9269908169872414)}var b=15*c+3*u,w=a.x-.9*b*Math.cos(r),_=a.y-.9*b*Math.sin(r),x={x:w,y:_};return{point:a,core:x,angle:r,length:b}}},{key:"drawArrowHead",value:function(t,e,i,o){t.strokeStyle=this.getColor(t,e,i),t.fillStyle=t.strokeStyle,t.lineWidth=this.getLineWidth(e,i),t.arrow(o.point.x,o.point.y,o.angle,o.length),this.enableShadow(t),t.fill(),this.disableShadow(t)}},{key:"enableShadow",value:function(t){this.options.shadow.enabled===!0&&(t.shadowColor=this.options.shadow.color,t.shadowBlur=this.options.shadow.size,t.shadowOffsetX=this.options.shadow.x,t.shadowOffsetY=this.options.shadow.y)}},{key:"disableShadow",value:function(t){this.options.shadow.enabled===!0&&(t.shadowColor="rgba(0,0,0,0)",t.shadowBlur=0,t.shadowOffsetX=0,t.shadowOffsetY=0)}}]),t}();e["default"]=a},function(t,e,i){function o(t){return t&&t.__esModule?t:{"default":t}}function n(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function s(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}function r(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}Object.defineProperty(e,"__esModule",{value:!0});var a=function(){function t(t,e){for(var i=0;i=this.to.y?this.from.x<=this.to.x?(t=this.from.x+i*s,e=this.from.y-i*s):this.from.x>this.to.x&&(t=this.from.x-i*s,e=this.from.y-i*s):this.from.ythis.to.x&&(t=this.from.x-i*s,e=this.from.y+i*s)),"discrete"===o&&(t=i*s>n?this.from.x:t)):Math.abs(this.from.x-this.to.x)>Math.abs(this.from.y-this.to.y)&&(this.from.y>=this.to.y?this.from.x<=this.to.x?(t=this.from.x+i*n,e=this.from.y-i*n):this.from.x>this.to.x&&(t=this.from.x-i*n,e=this.from.y-i*n):this.from.ythis.to.x&&(t=this.from.x-i*n,e=this.from.y+i*n)),"discrete"===o&&(e=i*n>s?this.from.y:e));else if("straightCross"===o)Math.abs(this.from.x-this.to.x)<=Math.abs(this.from.y-this.to.y)?(t=this.from.x,e=this.from.yMath.abs(this.from.y-this.to.y)&&(t=this.from.x=this.to.y?this.from.x<=this.to.x?(t=this.from.x+i*s,e=this.from.y-i*s,t=this.to.xthis.to.x&&(t=this.from.x-i*s,e=this.from.y-i*s,t=this.to.x>t?this.to.x:t):this.from.ythis.to.x&&(t=this.from.x-i*s,e=this.from.y+i*s,t=this.to.x>t?this.to.x:t)):Math.abs(this.from.x-this.to.x)>Math.abs(this.from.y-this.to.y)&&(this.from.y>=this.to.y?this.from.x<=this.to.x?(t=this.from.x+i*n,e=this.from.y-i*n,e=this.to.y>e?this.to.y:e):this.from.x>this.to.x&&(t=this.from.x-i*n,e=this.from.y-i*n,e=this.to.y>e?this.to.y:e):this.from.ythis.to.x&&(t=this.from.x-i*n,e=this.from.y+i*n,e=this.to.y1||this.startedStabilization===!0)&&setTimeout(function(){t.body.emitter.emit("stabilized",{iterations:e}),t.startedStabilization=!1,t.stabilizationIterations=0},0)}},{key:"physicsTick",value:function(){if(this.startedStabilization===!1&&(this.body.emitter.emit("startStabilizing"),this.startedStabilization=!0),this.stabilized===!1){if(this.adaptiveTimestep===!0&&this.adaptiveTimestepEnabled===!0){var t=1.2;this.adaptiveCounter%this.adaptiveInterval===0?(this.timestep=2*this.timestep,this.calculateForces(),this.moveNodes(),this.revert(),this.timestep=.5*this.timestep,this.calculateForces(),this.moveNodes(),this.calculateForces(),this.moveNodes(),this._evaluateStepQuality()===!0?this.timestep=t*this.timestep:this.timestep/ts))return!1;return!0}},{key:"moveNodes",value:function(){for(var t=this.physicsBody.physicsNodeIndices,e=this.options.maxVelocity?this.options.maxVelocity:1e9,i=0,o=0,n=5,s=0;se?s[t].x>0?e:-e:s[t].x,i.x+=s[t].x*o}else n[t].x=0,s[t].x=0;if(i.options.fixed.y===!1){var h=this.modelOptions.damping*s[t].y,d=(n[t].y-h)/i.options.mass;s[t].y+=d*o,s[t].y=Math.abs(s[t].y)>e?s[t].y>0?e:-e:s[t].y,i.y+=s[t].y*o}else n[t].y=0,s[t].y=0;var l=Math.sqrt(Math.pow(s[t].x,2)+Math.pow(s[t].y,2));return l}},{key:"calculateForces",value:function(){this.gravitySolver.solve(),this.nodesSolver.solve(),this.edgesSolver.solve()}},{key:"_freezeNodes",value:function(){var t=this.body.nodes;for(var e in t)t.hasOwnProperty(e)&&t[e].x&&t[e].y&&(this.freezeCache[e]={x:t[e].options.fixed.x,y:t[e].options.fixed.y},t[e].options.fixed.x=!0,t[e].options.fixed.y=!0)}},{key:"_restoreFrozenNodes",value:function(){var t=this.body.nodes;for(var e in t)t.hasOwnProperty(e)&&void 0!==this.freezeCache[e]&&(t[e].options.fixed.x=this.freezeCache[e].x,t[e].options.fixed.y=this.freezeCache[e].y);this.freezeCache={}}},{key:"stabilize",value:function(){var t=this,e=arguments.length<=0||void 0===arguments[0]?this.options.stabilization.iterations:arguments[0];return"number"!=typeof e&&(console.log("The stabilize method needs a numeric amount of iterations. Switching to default: ",this.options.stabilization.iterations),e=this.options.stabilization.iterations),0===this.physicsBody.physicsNodeIndices.length?void(this.ready=!0):(this.adaptiveTimestep=this.options.adaptiveTimestep,this.body.emitter.emit("_resizeNodes"),this.stopSimulation(),this.stabilized=!1,this.body.emitter.emit("_blockRedraw"),this.targetIterations=e,this.options.stabilization.onlyDynamicEdges===!0&&this._freezeNodes(),this.stabilizationIterations=0,void setTimeout(function(){return t._stabilizationBatch()},0))}},{key:"_stabilizationBatch",value:function(){this.startedStabilization===!1&&(this.body.emitter.emit("startStabilizing"),this.startedStabilization=!0);for(var t=0;this.stabilized===!1&&t0){var t=void 0,e=this.body.nodes,i=this.physicsBody.physicsNodeIndices,o=i.length,n=this._formBarnesHutTree(e,i);this.barnesHutTree=n;for(var s=0;o>s;s++)t=e[i[s]],t.options.mass>0&&(this._getForceContribution(n.root.children.NW,t),this._getForceContribution(n.root.children.NE,t),this._getForceContribution(n.root.children.SW,t),this._getForceContribution(n.root.children.SE,t))}}},{key:"_getForceContribution",value:function(t,e){if(t.childrenCount>0){var i=void 0,o=void 0,n=void 0;i=t.centerOfMass.x-e.x,o=t.centerOfMass.y-e.y,n=Math.sqrt(i*i+o*o),n*t.calcSize>this.thetaInversed?this._calculateForces(n,i,o,e,t):4===t.childrenCount?(this._getForceContribution(t.children.NW,e),this._getForceContribution(t.children.NE,e),this._getForceContribution(t.children.SW,e),this._getForceContribution(t.children.SE,e)):t.children.data.id!=e.id&&this._calculateForces(n,i,o,e,t)}}},{key:"_calculateForces",value:function(t,e,i,o,n){0===t&&(t=.1,e=t),this.overlapAvoidanceFactor<1&&(t=Math.max(.1+this.overlapAvoidanceFactor*o.shape.radius,t-o.shape.radius));var s=this.options.gravitationalConstant*n.mass*o.options.mass/Math.pow(t,3),r=e*s,a=i*s;this.physicsBody.forces[o.id].x+=r,this.physicsBody.forces[o.id].y+=a}},{key:"_formBarnesHutTree",value:function(t,e){for(var i=void 0,o=e.length,n=t[e[0]].x,s=t[e[0]].y,r=t[e[0]].x,a=t[e[0]].y,h=1;o>h;h++){var d=t[e[h]].x,l=t[e[h]].y;t[e[h]].options.mass>0&&(n>d&&(n=d),d>r&&(r=d),s>l&&(s=l),l>a&&(a=l))}var c=Math.abs(r-n)-Math.abs(a-s);c>0?(s-=.5*c,a+=.5*c):(n+=.5*c,r-=.5*c);var u=1e-5,p=Math.max(u,Math.abs(r-n)),f=.5*p,m=.5*(n+r),v=.5*(s+a),g={root:{centerOfMass:{x:0,y:0},mass:0,range:{minX:m-f,maxX:m+f,minY:v-f,maxY:v+f},size:p,calcSize:1/p,children:{data:null},maxWidth:0,level:0,childrenCount:4}};this._splitBranch(g.root);for(var y=0;o>y;y++)i=t[e[y]],i.options.mass>0&&this._placeInTree(g.root,i);return g}},{key:"_updateBranchMass",value:function(t,e){var i=t.mass+e.options.mass,o=1/i;t.centerOfMass.x=t.centerOfMass.x*t.mass+e.x*e.options.mass,t.centerOfMass.x*=o,t.centerOfMass.y=t.centerOfMass.y*t.mass+e.y*e.options.mass,t.centerOfMass.y*=o,t.mass=i;var n=Math.max(Math.max(e.height,e.radius),e.width);t.maxWidth=t.maxWidthe.x?t.children.NW.range.maxY>e.y?this._placeInRegion(t,e,"NW"):this._placeInRegion(t,e,"SW"):t.children.NW.range.maxY>e.y?this._placeInRegion(t,e,"NE"):this._placeInRegion(t,e,"SE")}},{key:"_placeInRegion",value:function(t,e,i){switch(t.children[i].childrenCount){case 0:t.children[i].children.data=e,t.children[i].childrenCount=1,this._updateBranchMass(t.children[i],e);break;case 1:t.children[i].children.data.x===e.x&&t.children[i].children.data.y===e.y?(e.x+=this.seededRandom(),e.y+=this.seededRandom()):(this._splitBranch(t.children[i]),this._placeInTree(t.children[i],e));break;case 4:this._placeInTree(t.children[i],e)}}},{key:"_splitBranch",value:function(t){var e=null;1===t.childrenCount&&(e=t.children.data,t.mass=0,t.centerOfMass.x=0,t.centerOfMass.y=0),t.childrenCount=4,t.children.data=null,this._insertRegion(t,"NW"),this._insertRegion(t,"NE"),this._insertRegion(t,"SW"),this._insertRegion(t,"SE"),null!=e&&this._placeInTree(t,e)}},{key:"_insertRegion",value:function(t,e){var i=void 0,o=void 0,n=void 0,s=void 0,r=.5*t.size;switch(e){case"NW":i=t.range.minX,o=t.range.minX+r,n=t.range.minY,s=t.range.minY+r;break;case"NE":i=t.range.minX+r,o=t.range.maxX,n=t.range.minY,s=t.range.minY+r;break;case"SW":i=t.range.minX,o=t.range.minX+r,n=t.range.minY+r,s=t.range.maxY;break;case"SE":i=t.range.minX+r,o=t.range.maxX,n=t.range.minY+r,s=t.range.maxY}t.children[e]={centerOfMass:{x:0,y:0},mass:0,range:{minX:i,maxX:o,minY:n,maxY:s},size:.5*t.size,calcSize:2*t.calcSize,children:{data:null},maxWidth:0,level:t.level+1,childrenCount:0}}},{key:"_debug",value:function(t,e){void 0!==this.barnesHutTree&&(t.lineWidth=1,this._drawBranch(this.barnesHutTree.root,t,e))}},{key:"_drawBranch",value:function(t,e,i){void 0===i&&(i="#FF0000"),4===t.childrenCount&&(this._drawBranch(t.children.NW,e),this._drawBranch(t.children.NE,e),this._drawBranch(t.children.SE,e),this._drawBranch(t.children.SW,e)),e.strokeStyle=i,e.beginPath(),e.moveTo(t.range.minX,t.range.minY),e.lineTo(t.range.maxX,t.range.minY),e.stroke(),e.beginPath(),e.moveTo(t.range.maxX,t.range.minY),e.lineTo(t.range.maxX,t.range.maxY),e.stroke(),e.beginPath(),e.moveTo(t.range.maxX,t.range.maxY),e.lineTo(t.range.minX,t.range.maxY),e.stroke(),e.beginPath(),e.moveTo(t.range.minX,t.range.maxY),e.lineTo(t.range.minX,t.range.minY),e.stroke()}}]),t}();e["default"]=n},function(t,e){function i(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(e,"__esModule",{value:!0});var o=function(){function t(t,e){for(var i=0;ii&&(s=.5*c>i?1:u*i+p,s/=i,o=t*s,n=e*s,l[r.id].x-=o,l[r.id].y-=n,l[a.id].x+=o,l[a.id].y+=n)}}}]),t}();e["default"]=n},function(t,e){function i(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(e,"__esModule",{value:!0});var o=function(){function t(t,e){for(var i=0;ii?-Math.pow(f*i,2)+Math.pow(f*p,2):0,0===i?i=.01:s/=i,o=t*s,n=e*s,u[r.id].x-=o,u[r.id].y-=n,u[a.id].x+=o,u[a.id].y+=n}}}]),t}();e["default"]=n},function(t,e){function i(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(e,"__esModule",{value:!0});var o=function(){function t(t,e){for(var i=0;i0){var s=n.edges.length+1,r=this.options.centralGravity*s*n.options.mass;o[n.id].x=e*r,o[n.id].y=i*r}}}]),e}(d["default"]);e["default"]=l},function(t,e,i){function o(t){return t&&t.__esModule?t:{"default":t}}function n(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(e,"__esModule",{value:!0});var s="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol?"symbol":typeof t},r=function(){function t(t,e){for(var i=0;i=t&&i.push(n.id)}for(var r=0;r0&&Object.keys(p).length>0&&m===!0&&o.push({nodes:u,edges:p})}}}for(var b=0;bo?r.x:o,n=r.ys?r.y:s;return{x:.5*(i+o),y:.5*(n+s)}}},{key:"openCluster",value:function(t,e){var i=arguments.length<=2||void 0===arguments[2]?!0:arguments[2];if(void 0===t)throw new Error("No clusterNodeId supplied to openCluster.");if(void 0===this.body.nodes[t])throw new Error("The clusterNodeId supplied to openCluster does not exist.");if(void 0===this.body.nodes[t].containedNodes)return void console.log("The node:"+t+" is not a cluster.");var o=this.body.nodes[t],n=o.containedNodes,s=o.containedEdges;if(void 0!==e&&void 0!==e.releaseFunction&&"function"==typeof e.releaseFunction){var r={},a={x:o.x,y:o.y};for(var d in n)if(n.hasOwnProperty(d)){var l=this.body.nodes[d];r[d]={x:l.x,y:l.y}}var u=e.releaseFunction(a,r);for(var p in n)if(n.hasOwnProperty(p)){var f=this.body.nodes[p];void 0!==u[p]&&(f.x=void 0===u[p].x?o.x:u[p].x,f.y=void 0===u[p].y?o.y:u[p].y)}}else for(var m in n)if(n.hasOwnProperty(m)){var v=this.body.nodes[m];v=n[m],v.options.fixed.x===!1&&(v.x=o.x),v.options.fixed.y===!1&&(v.y=o.y)}for(var g in n)if(n.hasOwnProperty(g)){var y=this.body.nodes[g];y.vx=o.vx,y.vy=o.vy,y.setOptions({hidden:!1,physics:!0}),delete this.clusteredNodes[g]}for(var b=[],w=0;wo;)e.push(this.body.nodes[t].id),t=this.clusteredNodes[t].clusterId,o++;return e.push(this.body.nodes[t].id),e.reverse(),e}},{key:"_getConnectedId",value:function(t,e){return t.toId!=e?t.toId:t.fromId!=e?t.fromId:t.fromId}},{key:"_getHubSize",value:function(){for(var t=0,e=0,i=0,o=0,n=0;no&&(o=s.edges.length),t+=s.edges.length,e+=Math.pow(s.edges.length,2),i+=1}t/=i,e/=i;var r=e-Math.pow(t,2),a=Math.sqrt(r),h=Math.floor(t+2*a);return h>o&&(h=o),h}}]),t}();e["default"]=u},function(t,e,i){function o(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(e,"__esModule",{value:!0});var n=function(){function t(t,e){for(var i=0;i0)for(var a=0;ae.shape.boundingBox.left&&(s=e.shape.boundingBox.left),re.shape.boundingBox.top&&(o=e.shape.boundingBox.top),n0)for(var a=0;ae.x&&(s=e.x),re.y&&(o=e.y),n0,t.renderTimer=void 0}),this.body.emitter.on("destroy",function(){t.renderRequests=0,t.allowRedraw=!1,t.renderingActive=!1,t.requiresTimeout===!0?clearTimeout(t.renderTimer):cancelAnimationFrame(t.renderTimer),t.body.emitter.off()})}},{key:"setOptions",value:function(t){if(void 0!==t){var e=["hideEdgesOnDrag","hideNodesOnDrag"];s.selectiveDeepExtend(e,this.options,t)}}},{key:"_startRendering",value:function(){this.renderingActive===!0&&void 0===this.renderTimer&&(this.requiresTimeout===!0?this.renderTimer=window.setTimeout(this._renderStep.bind(this),this.simulationInterval):this.renderTimer=window.requestAnimationFrame(this._renderStep.bind(this)))}},{key:"_renderStep",value:function(){this.renderingActive===!0&&(this.renderTimer=void 0,this.requiresTimeout===!0&&this._startRendering(),this._redraw(),this.requiresTimeout===!1&&this._startRendering())}},{key:"redraw",value:function(){this.body.emitter.emit("setSize"),this._redraw()}},{key:"_requestRedraw",value:function(){var t=this;this.redrawRequested!==!0&&this.renderingActive===!1&&this.allowRedraw===!0&&(this.redrawRequested=!0,this.requiresTimeout===!0?window.setTimeout(function(){t._redraw(!1)},0):window.requestAnimationFrame(function(){t._redraw(!1)}))}},{key:"_redraw",value:function(){var t=arguments.length<=0||void 0===arguments[0]?!1:arguments[0];if(this.allowRedraw===!0){this.body.emitter.emit("initRedraw"),this.redrawRequested=!1;var e=this.canvas.frame.canvas.getContext("2d");0!==this.canvas.frame.canvas.width&&0!==this.canvas.frame.canvas.height||this.canvas.setSize(),this.pixelRatio=(window.devicePixelRatio||1)/(e.webkitBackingStorePixelRatio||e.mozBackingStorePixelRatio||e.msBackingStorePixelRatio||e.oBackingStorePixelRatio||e.backingStorePixelRatio||1),e.setTransform(this.pixelRatio,0,0,this.pixelRatio,0,0);var i=this.canvas.frame.canvas.clientWidth,o=this.canvas.frame.canvas.clientHeight;if(e.clearRect(0,0,i,o),0===this.canvas.frame.clientWidth)return;e.save(),e.translate(this.body.view.translation.x,this.body.view.translation.y),e.scale(this.body.view.scale,this.body.view.scale),e.beginPath(),this.body.emitter.emit("beforeDrawing",e),e.closePath(),t===!1&&(this.dragging===!1||this.dragging===!0&&this.options.hideEdgesOnDrag===!1)&&this._drawEdges(e),(this.dragging===!1||this.dragging===!0&&this.options.hideNodesOnDrag===!1)&&this._drawNodes(e,t),e.beginPath(),this.body.emitter.emit("afterDrawing",e),e.closePath(),e.restore(),t===!0&&e.clearRect(0,0,i,o)}}},{key:"_resizeNodes",value:function(){var t=this.canvas.frame.canvas.getContext("2d");void 0===this.pixelRatio&&(this.pixelRatio=(window.devicePixelRatio||1)/(t.webkitBackingStorePixelRatio||t.mozBackingStorePixelRatio||t.msBackingStorePixelRatio||t.oBackingStorePixelRatio||t.backingStorePixelRatio||1)),t.setTransform(this.pixelRatio,0,0,this.pixelRatio,0,0),t.save(),t.translate(this.body.view.translation.x,this.body.view.translation.y),t.scale(this.body.view.scale,this.body.view.scale);var e=this.body.nodes,i=void 0;for(var o in e)e.hasOwnProperty(o)&&(i=e[o],i.resize(t),i.updateBoundingBox(t,i.selected));t.restore()}},{key:"_drawNodes",value:function(t){for(var e=arguments.length<=1||void 0===arguments[1]?!1:arguments[1],i=this.body.nodes,o=this.body.nodeIndices,n=void 0,s=[],r=20,a=this.canvas.DOMtoCanvas({x:-r,y:-r}),h=this.canvas.DOMtoCanvas({x:this.canvas.frame.canvas.clientWidth+r,y:this.canvas.frame.canvas.clientHeight+r}),d={top:a.y,left:a.x,bottom:h.y,right:h.x},l=0;l0){var t=this.frame.canvas.width/this.pixelRatio/this.cameraState.previousWidth,e=this.frame.canvas.height/this.pixelRatio/this.cameraState.previousHeight,i=this.cameraState.scale;1!=t&&1!=e?i=.5*this.cameraState.scale*(t+e):1!=t?i=this.cameraState.scale*t:1!=e&&(i=this.cameraState.scale*e),this.body.view.scale=i;var o=this.DOMtoCanvas({x:.5*this.frame.canvas.clientWidth,y:.5*this.frame.canvas.clientHeight}),n={x:o.x-this.cameraState.position.x,y:o.y-this.cameraState.position.y};this.body.view.translation.x+=n.x*this.body.view.scale,this.body.view.translation.y+=n.y*this.body.view.scale}}},{key:"_prepareValue",value:function(t){if("number"==typeof t)return t+"px";if("string"==typeof t){if(-1!==t.indexOf("%")||-1!==t.indexOf("px"))return t;if(-1===t.indexOf("%"))return t+"px"}throw new Error("Could not use the value supplied for width or height:"+t)}},{key:"_create",value:function(){for(;this.body.container.hasChildNodes();)this.body.container.removeChild(this.body.container.firstChild);if(this.frame=document.createElement("div"),this.frame.className="vis-network",this.frame.style.position="relative",this.frame.style.overflow="hidden",this.frame.tabIndex=900,this.frame.canvas=document.createElement("canvas"),this.frame.canvas.style.position="relative",this.frame.appendChild(this.frame.canvas),this.frame.canvas.getContext){var t=this.frame.canvas.getContext("2d");this.pixelRatio=(window.devicePixelRatio||1)/(t.webkitBackingStorePixelRatio||t.mozBackingStorePixelRatio||t.msBackingStorePixelRatio||t.oBackingStorePixelRatio||t.backingStorePixelRatio||1),this.frame.canvas.getContext("2d").setTransform(this.pixelRatio,0,0,this.pixelRatio,0,0)}else{var e=document.createElement("DIV");e.style.color="red",e.style.fontWeight="bold",e.style.padding="10px",e.innerHTML="Error: your browser does not support HTML canvas",this.frame.canvas.appendChild(e)}this.body.container.appendChild(this.frame),this.body.view.scale=1,this.body.view.translation={x:.5*this.frame.canvas.clientWidth,y:.5*this.frame.canvas.clientHeight},this._bindHammer()}},{key:"_bindHammer",value:function(){var t=this;void 0!==this.hammer&&this.hammer.destroy(),this.drag={},this.pinch={},this.hammer=new s(this.frame.canvas),this.hammer.get("pinch").set({enable:!0}),this.hammer.get("pan").set({threshold:5,direction:s.DIRECTION_ALL}),r.onTouch(this.hammer,function(e){t.body.eventListeners.onTouch(e)}),this.hammer.on("tap",function(e){t.body.eventListeners.onTap(e)}),this.hammer.on("doubletap",function(e){t.body.eventListeners.onDoubleTap(e)}),this.hammer.on("press",function(e){t.body.eventListeners.onHold(e)}),this.hammer.on("panstart",function(e){t.body.eventListeners.onDragStart(e)}),this.hammer.on("panmove",function(e){t.body.eventListeners.onDrag(e)}),this.hammer.on("panend",function(e){t.body.eventListeners.onDragEnd(e)}),this.hammer.on("pinch",function(e){t.body.eventListeners.onPinch(e)}),this.frame.canvas.addEventListener("mousewheel",function(e){t.body.eventListeners.onMouseWheel(e)}),this.frame.canvas.addEventListener("DOMMouseScroll",function(e){t.body.eventListeners.onMouseWheel(e)}),this.frame.canvas.addEventListener("mousemove",function(e){t.body.eventListeners.onMouseMove(e)}),this.frame.canvas.addEventListener("contextmenu",function(e){t.body.eventListeners.onContext(e)}),this.hammerFrame=new s(this.frame),r.onRelease(this.hammerFrame,function(e){t.body.eventListeners.onRelease(e)})}},{key:"setSize",value:function(){var t=arguments.length<=0||void 0===arguments[0]?this.options.width:arguments[0],e=arguments.length<=1||void 0===arguments[1]?this.options.height:arguments[1];t=this._prepareValue(t),e=this._prepareValue(e);var i=!1,o=this.frame.canvas.width,n=this.frame.canvas.height,s=this.frame.canvas.getContext("2d"),r=this.pixelRatio;return this.pixelRatio=(window.devicePixelRatio||1)/(s.webkitBackingStorePixelRatio||s.mozBackingStorePixelRatio||s.msBackingStorePixelRatio||s.oBackingStorePixelRatio||s.backingStorePixelRatio||1),t!=this.options.width||e!=this.options.height||this.frame.style.width!=t||this.frame.style.height!=e?(this._getCameraState(r),this.frame.style.width=t,this.frame.style.height=e,this.frame.canvas.style.width="100%",this.frame.canvas.style.height="100%",this.frame.canvas.width=Math.round(this.frame.canvas.clientWidth*this.pixelRatio),this.frame.canvas.height=Math.round(this.frame.canvas.clientHeight*this.pixelRatio),this.options.width=t,this.options.height=e,i=!0):(this.frame.canvas.width==Math.round(this.frame.canvas.clientWidth*this.pixelRatio)&&this.frame.canvas.height==Math.round(this.frame.canvas.clientHeight*this.pixelRatio)||this._getCameraState(r),this.frame.canvas.width!=Math.round(this.frame.canvas.clientWidth*this.pixelRatio)&&(this.frame.canvas.width=Math.round(this.frame.canvas.clientWidth*this.pixelRatio),i=!0),this.frame.canvas.height!=Math.round(this.frame.canvas.clientHeight*this.pixelRatio)&&(this.frame.canvas.height=Math.round(this.frame.canvas.clientHeight*this.pixelRatio),i=!0)),i===!0&&(this.body.emitter.emit("resize",{width:Math.round(this.frame.canvas.width/this.pixelRatio),height:Math.round(this.frame.canvas.height/this.pixelRatio),oldWidth:Math.round(o/this.pixelRatio),oldHeight:Math.round(n/this.pixelRatio)}),this._setCameraState()),this.initialized=!0,i}},{key:"_XconvertDOMtoCanvas",value:function(t){return(t-this.body.view.translation.x)/this.body.view.scale}},{key:"_XconvertCanvasToDOM",value:function(t){return t*this.body.view.scale+this.body.view.translation.x}},{key:"_YconvertDOMtoCanvas",value:function(t){return(t-this.body.view.translation.y)/this.body.view.scale}},{key:"_YconvertCanvasToDOM",value:function(t){return t*this.body.view.scale+this.body.view.translation.y}},{key:"canvasToDOM",value:function(t){return{x:this._XconvertCanvasToDOM(t.x),y:this._YconvertCanvasToDOM(t.y)}}},{key:"DOMtoCanvas",value:function(t){return{x:this._XconvertDOMtoCanvas(t.x),y:this._YconvertDOMtoCanvas(t.y)}}}]),t}();e["default"]=h},function(t,e,i){function o(t){return t&&t.__esModule?t:{"default":t}}function n(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(e,"__esModule",{value:!0});var s=function(){function t(t,e){for(var i=0;i.5*this.body.nodeIndices.length)return void this.fit(t,!1);i=a["default"].getRange(this.body.nodes,t.nodes);var h=this.body.nodeIndices.length;o=12.662/(h+7.4147)+.0964822;var d=Math.min(this.canvas.frame.canvas.clientWidth/600,this.canvas.frame.canvas.clientHeight/600);o*=d}else{this.body.emitter.emit("_resizeNodes"),i=a["default"].getRange(this.body.nodes,t.nodes);var l=1.1*Math.abs(i.maxX-i.minX),c=1.1*Math.abs(i.maxY-i.minY),u=this.canvas.frame.canvas.clientWidth/l,p=this.canvas.frame.canvas.clientHeight/c;o=p>=u?u:p}o>1?o=1:0===o&&(o=1);var f=a["default"].findCenter(i),m={position:f,scale:o,animation:t.animation};this.moveTo(m)}},{key:"focus",value:function(t){var e=arguments.length<=1||void 0===arguments[1]?{}:arguments[1];if(void 0!==this.body.nodes[t]){var i={x:this.body.nodes[t].x,y:this.body.nodes[t].y};e.position=i,e.lockedOnNode=t,this.moveTo(e)}else console.log("Node: "+t+" cannot be found.")}},{key:"moveTo",value:function(t){return void 0===t?void(t={}):(void 0===t.offset&&(t.offset={x:0,y:0}),void 0===t.offset.x&&(t.offset.x=0),void 0===t.offset.y&&(t.offset.y=0),void 0===t.scale&&(t.scale=this.body.view.scale),void 0===t.position&&(t.position=this.getViewPosition()),void 0===t.animation&&(t.animation={duration:0}),t.animation===!1&&(t.animation={duration:0}),t.animation===!0&&(t.animation={}),void 0===t.animation.duration&&(t.animation.duration=1e3),void 0===t.animation.easingFunction&&(t.animation.easingFunction="easeInOutQuad"),void this.animateView(t))}},{key:"animateView",value:function(t){if(void 0!==t){this.animationEasingFunction=t.animation.easingFunction,this.releaseNode(),t.locked===!0&&(this.lockedOnNodeId=t.lockedOnNode,this.lockedOnNodeOffset=t.offset),0!=this.easingTime&&this._transitionRedraw(!0),this.sourceScale=this.body.view.scale,this.sourceTranslation=this.body.view.translation,this.targetScale=t.scale,this.body.view.scale=this.targetScale;var e=this.canvas.DOMtoCanvas({x:.5*this.canvas.frame.canvas.clientWidth,y:.5*this.canvas.frame.canvas.clientHeight}),i={x:e.x-t.position.x,y:e.y-t.position.y};this.targetTranslation={x:this.sourceTranslation.x+i.x*this.targetScale+t.offset.x,y:this.sourceTranslation.y+i.y*this.targetScale+t.offset.y},0===t.animation.duration?void 0!=this.lockedOnNodeId?(this.viewFunction=this._lockedRedraw.bind(this),this.body.emitter.on("initRedraw",this.viewFunction)):(this.body.view.scale=this.targetScale,this.body.view.translation=this.targetTranslation,this.body.emitter.emit("_requestRedraw")):(this.animationSpeed=1/(60*t.animation.duration*.001)||1/60,this.animationEasingFunction=t.animation.easingFunction,this.viewFunction=this._transitionRedraw.bind(this),this.body.emitter.on("initRedraw",this.viewFunction),this.body.emitter.emit("_startRendering"))}}},{key:"_lockedRedraw",value:function(){var t={x:this.body.nodes[this.lockedOnNodeId].x,y:this.body.nodes[this.lockedOnNodeId].y},e=this.canvas.DOMtoCanvas({x:.5*this.canvas.frame.canvas.clientWidth,y:.5*this.canvas.frame.canvas.clientHeight}),i={x:e.x-t.x,y:e.y-t.y},o=this.body.view.translation,n={x:o.x+i.x*this.body.view.scale+this.lockedOnNodeOffset.x,y:o.y+i.y*this.body.view.scale+this.lockedOnNodeOffset.y};this.body.view.translation=n}},{key:"releaseNode",value:function(){void 0!==this.lockedOnNodeId&&void 0!==this.viewFunction&&(this.body.emitter.off("initRedraw",this.viewFunction),this.lockedOnNodeId=void 0,this.lockedOnNodeOffset=void 0)}},{key:"_transitionRedraw",value:function(){var t=arguments.length<=0||void 0===arguments[0]?!1:arguments[0];this.easingTime+=this.animationSpeed,this.easingTime=t===!0?1:this.easingTime;var e=h.easingFunctions[this.animationEasingFunction](this.easingTime);this.body.view.scale=this.sourceScale+(this.targetScale-this.sourceScale)*e,this.body.view.translation={x:this.sourceTranslation.x+(this.targetTranslation.x-this.sourceTranslation.x)*e,y:this.sourceTranslation.y+(this.targetTranslation.y-this.sourceTranslation.y)*e},this.easingTime>=1&&(this.body.emitter.off("initRedraw",this.viewFunction),this.easingTime=0,void 0!=this.lockedOnNodeId&&(this.viewFunction=this._lockedRedraw.bind(this),this.body.emitter.on("initRedraw",this.viewFunction)),this.body.emitter.emit("animationFinished"))}},{key:"getScale",value:function(){return this.body.view.scale}},{key:"getViewPosition",value:function(){return this.canvas.DOMtoCanvas({x:.5*this.canvas.frame.canvas.clientWidth,y:.5*this.canvas.frame.canvas.clientHeight})}}]),t}();e["default"]=d},function(t,e,i){function o(t){return t&&t.__esModule?t:{"default":t}}function n(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(e,"__esModule",{value:!0});var s=function(){function t(t,e){for(var i=0;i50&&(this.drag.pointer=this.getPointer(t.center),this.drag.pinched=!1,this.pinch.scale=this.body.view.scale,this.touchTime=(new Date).valueOf())}},{key:"onTap",value:function(t){var e=this.getPointer(t.center),i=this.selectionHandler.options.multiselect&&(t.changedPointers[0].ctrlKey||t.changedPointers[0].metaKey);this.checkSelectionChanges(e,t,i),this.selectionHandler._generateClickEvent("click",t,e)}},{key:"onDoubleTap",value:function(t){var e=this.getPointer(t.center);this.selectionHandler._generateClickEvent("doubleClick",t,e)}},{key:"onHold",value:function(t){var e=this.getPointer(t.center),i=this.selectionHandler.options.multiselect;this.checkSelectionChanges(e,t,i),this.selectionHandler._generateClickEvent("click",t,e),this.selectionHandler._generateClickEvent("hold",t,e)}},{key:"onRelease",value:function(t){if((new Date).valueOf()-this.touchTime>10){var e=this.getPointer(t.center);this.selectionHandler._generateClickEvent("release",t,e),this.touchTime=(new Date).valueOf()}}},{key:"onContext",value:function(t){var e=this.getPointer({x:t.clientX,y:t.clientY});this.selectionHandler._generateClickEvent("oncontext",t,e)}},{key:"checkSelectionChanges",value:function(t,e){var i=arguments.length<=2||void 0===arguments[2]?!1:arguments[2],o=this.selectionHandler._getSelectedEdgeCount(),n=this.selectionHandler._getSelectedNodeCount(),s=this.selectionHandler.getSelection(),r=void 0;r=i===!0?this.selectionHandler.selectAdditionalOnPoint(t):this.selectionHandler.selectOnPoint(t);var a=this.selectionHandler._getSelectedEdgeCount(),h=this.selectionHandler._getSelectedNodeCount(),d=this.selectionHandler.getSelection(),l=this._determineIfDifferent(s,d),c=l.nodesChanged,u=l.edgesChanged,p=!1;h-n>0?(this.selectionHandler._generateClickEvent("selectNode",e,t),r=!0,p=!0):c===!0&&h>0?(this.selectionHandler._generateClickEvent("deselectNode",e,t,s),this.selectionHandler._generateClickEvent("selectNode",e,t),p=!0,r=!0):0>h-n&&(this.selectionHandler._generateClickEvent("deselectNode",e,t,s),r=!0),a-o>0&&p===!1?(this.selectionHandler._generateClickEvent("selectEdge",e,t),r=!0):a>0&&u===!0?(this.selectionHandler._generateClickEvent("deselectEdge",e,t,s),this.selectionHandler._generateClickEvent("selectEdge",e,t),r=!0):0>a-o&&(this.selectionHandler._generateClickEvent("deselectEdge",e,t,s),r=!0),r===!0&&this.selectionHandler._generateClickEvent("select",e,t)}},{key:"_determineIfDifferent",value:function(t,e){for(var i=!1,o=!1,n=0;nt&&(t=1e-5),t>10&&(t=10);var o=void 0;void 0!==this.drag&&this.drag.dragging===!0&&(o=this.canvas.DOMtoCanvas(this.drag.pointer));var n=this.body.view.translation,s=t/i,r=(1-s)*e.x+n.x*s,a=(1-s)*e.y+n.y*s;if(this.body.view.scale=t,this.body.view.translation={x:r,y:a},void 0!=o){var h=this.canvas.canvasToDOM(o);this.drag.pointer.x=h.x,this.drag.pointer.y=h.y}this.body.emitter.emit("_requestRedraw"),t>i?this.body.emitter.emit("zoom",{direction:"+",scale:this.body.view.scale}):this.body.emitter.emit("zoom",{direction:"-",scale:this.body.view.scale})}}},{key:"onMouseWheel",value:function(t){if(this.options.zoomView===!0){var e=0;if(t.wheelDelta?e=t.wheelDelta/120:t.detail&&(e=-t.detail/3),0!==e){var i=this.body.view.scale,o=e/10;0>e&&(o/=1-o),i*=1+o;var n=this.getPointer({x:t.clientX,y:t.clientY});this.zoom(i,n)}t.preventDefault()}}},{key:"onMouseMove",value:function(t){var e=this,i=this.getPointer({x:t.clientX,y:t.clientY}),o=!1;if(void 0!==this.popup&&(this.popup.hidden===!1&&this._checkHidePopup(i),this.popup.hidden===!1&&(o=!0,this.popup.setPosition(i.x+3,i.y-5),this.popup.show())),this.options.keyboard.bindToWindow===!1&&this.options.keyboard.enabled===!0&&this.canvas.frame.focus(),o===!1&&(void 0!==this.popupTimer&&(clearInterval(this.popupTimer),this.popupTimer=void 0),this.drag.dragging||(this.popupTimer=setTimeout(function(){return e._checkShowPopup(i)},this.options.tooltipDelay))),this.options.hover===!0){var n=this.selectionHandler.getNodeAt(i);void 0===n&&(n=this.selectionHandler.getEdgeAt(i)),this.selectionHandler.hoverObject(n)}}},{key:"_checkShowPopup",value:function(t){var e=this.canvas._XconvertDOMtoCanvas(t.x),i=this.canvas._YconvertDOMtoCanvas(t.y),o={left:e,top:i,right:e,bottom:i},n=void 0===this.popupObj?void 0:this.popupObj.id,s=!1,r="node";if(void 0===this.popupObj){for(var a=this.body.nodeIndices,h=this.body.nodes,l=void 0,c=[],u=0;u0&&(this.popupObj=h[c[c.length-1]],s=!0)}if(void 0===this.popupObj&&s===!1){for(var p=this.body.edgeIndices,f=this.body.edges,m=void 0,v=[],g=0;g0&&(this.popupObj=f[v[v.length-1]],r="edge")}void 0!==this.popupObj?this.popupObj.id!==n&&(void 0===this.popup&&(this.popup=new d["default"](this.canvas.frame)),this.popup.popupTargetType=r,this.popup.popupTargetId=this.popupObj.id,this.popup.setPosition(t.x+3,t.y-5),this.popup.setText(this.popupObj.getTitle()),this.popup.show(),this.body.emitter.emit("showPopup",this.popupObj.id)):void 0!==this.popup&&(this.popup.hide(),this.body.emitter.emit("hidePopup"))}},{key:"_checkHidePopup",value:function(t){var e=this.selectionHandler._pointerToPositionObject(t),i=!1;if("node"===this.popup.popupTargetType){if(void 0!==this.body.nodes[this.popup.popupTargetId]&&(i=this.body.nodes[this.popup.popupTargetId].isOverlappingWith(e),i===!0)){var o=this.selectionHandler.getNodeAt(t);i=o.id===this.popup.popupTargetId}}else void 0===this.selectionHandler.getNodeAt(t)&&void 0!==this.body.edges[this.popup.popupTargetId]&&(i=this.body.edges[this.popup.popupTargetId].isOverlappingWith(e));i===!1&&(this.popupObj=void 0,this.popup.hide(),this.body.emitter.emit("hidePopup"))}}]),t}();e["default"]=c},function(t,e,i){function o(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(e,"__esModule",{value:!0});var n=function(){function t(t,e){for(var i=0;i700&&(this.body.emitter.emit("fit",{duration:700}),this.touchTime=(new Date).valueOf())}},{key:"_stopMovement",value:function(){for(var t in this.boundFunctions)this.boundFunctions.hasOwnProperty(t)&&(this.body.emitter.off("initRedraw",this.boundFunctions[t]),this.body.emitter.emit("_stopRendering"));this.boundFunctions={}}},{key:"_moveUp",value:function(){this.body.view.translation.y+=this.options.keyboard.speed.y}},{key:"_moveDown",value:function(){this.body.view.translation.y-=this.options.keyboard.speed.y}},{key:"_moveLeft",value:function(){this.body.view.translation.x+=this.options.keyboard.speed.x}},{key:"_moveRight",value:function(){this.body.view.translation.x-=this.options.keyboard.speed.x}},{key:"_zoomIn",value:function(){this.body.view.scale*=1+this.options.keyboard.speed.zoom,this.body.emitter.emit("zoom",{direction:"+",scale:this.body.view.scale})}},{key:"_zoomOut",value:function(){this.body.view.scale/=1+this.options.keyboard.speed.zoom,this.body.emitter.emit("zoom",{direction:"-",scale:this.body.view.scale})}},{key:"configureKeyboardBindings",value:function(){var t=this;void 0!==this.keycharm&&this.keycharm.destroy(),this.options.keyboard.enabled===!0&&(this.options.keyboard.bindToWindow===!0?this.keycharm=a({container:window,preventDefault:!0}):this.keycharm=a({container:this.canvas.frame,preventDefault:!0}),this.keycharm.reset(),this.activated===!0&&(this.keycharm.bind("up",function(){t.bindToRedraw("_moveUp")},"keydown"),this.keycharm.bind("down",function(){t.bindToRedraw("_moveDown")},"keydown"),this.keycharm.bind("left",function(){t.bindToRedraw("_moveLeft")},"keydown"),this.keycharm.bind("right",function(){t.bindToRedraw("_moveRight")},"keydown"),this.keycharm.bind("=",function(){t.bindToRedraw("_zoomIn")},"keydown"),this.keycharm.bind("num+",function(){t.bindToRedraw("_zoomIn")},"keydown"),this.keycharm.bind("num-",function(){t.bindToRedraw("_zoomOut")},"keydown"),this.keycharm.bind("-",function(){t.bindToRedraw("_zoomOut")},"keydown"),this.keycharm.bind("[",function(){t.bindToRedraw("_zoomOut")},"keydown"),this.keycharm.bind("]",function(){t.bindToRedraw("_zoomIn")},"keydown"),this.keycharm.bind("pageup",function(){t.bindToRedraw("_zoomIn")},"keydown"),this.keycharm.bind("pagedown",function(){t.bindToRedraw("_zoomOut")},"keydown"),this.keycharm.bind("up",function(){t.unbindFromRedraw("_moveUp")},"keyup"),this.keycharm.bind("down",function(){t.unbindFromRedraw("_moveDown")},"keyup"),this.keycharm.bind("left",function(){t.unbindFromRedraw("_moveLeft")},"keyup"),this.keycharm.bind("right",function(){t.unbindFromRedraw("_moveRight")},"keyup"),this.keycharm.bind("=",function(){t.unbindFromRedraw("_zoomIn")},"keyup"),this.keycharm.bind("num+",function(){t.unbindFromRedraw("_zoomIn")},"keyup"),this.keycharm.bind("num-",function(){t.unbindFromRedraw("_zoomOut")},"keyup"),this.keycharm.bind("-",function(){t.unbindFromRedraw("_zoomOut")},"keyup"),this.keycharm.bind("[",function(){t.unbindFromRedraw("_zoomOut")},"keyup"),this.keycharm.bind("]",function(){t.unbindFromRedraw("_zoomIn")},"keyup"),this.keycharm.bind("pageup",function(){t.unbindFromRedraw("_zoomIn")},"keyup"),this.keycharm.bind("pagedown",function(){t.unbindFromRedraw("_zoomOut")},"keyup")))}}]),t}();e["default"]=h},function(t,e){function i(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(e,"__esModule",{value:!0});var o=function(){function t(t,e){for(var i=0;io&&(s=o-e-this.padding),sn&&(r=n-i-this.padding),r0?e===!0?this.body.nodes[o[o.length-1]]:o[o.length-1]:void 0}},{key:"_getEdgesOverlappingWith",value:function(t,e){for(var i=this.body.edges,o=0;o0?e===!0?this.body.edges[o[o.length-1]]:o[o.length-1]:void 0}},{key:"_addToSelection",value:function(t){t instanceof a["default"]?this.selectionObj.nodes[t.id]=t:this.selectionObj.edges[t.id]=t}},{key:"_addToHover",value:function(t){t instanceof a["default"]?this.hoverObj.nodes[t.id]=t:this.hoverObj.edges[t.id]=t}},{key:"_removeFromSelection",value:function(t){t instanceof a["default"]?(delete this.selectionObj.nodes[t.id],this._unselectConnectedEdges(t)):delete this.selectionObj.edges[t.id]}},{key:"unselectAll",value:function(){for(var t in this.selectionObj.nodes)this.selectionObj.nodes.hasOwnProperty(t)&&this.selectionObj.nodes[t].unselect();for(var e in this.selectionObj.edges)this.selectionObj.edges.hasOwnProperty(e)&&this.selectionObj.edges[e].unselect();this.selectionObj={nodes:{},edges:{}}}},{key:"_getSelectedNodeCount",value:function(){var t=0;for(var e in this.selectionObj.nodes)this.selectionObj.nodes.hasOwnProperty(e)&&(t+=1);return t}},{key:"_getSelectedNode",value:function(){for(var t in this.selectionObj.nodes)if(this.selectionObj.nodes.hasOwnProperty(t))return this.selectionObj.nodes[t]}},{key:"_getSelectedEdge",value:function(){for(var t in this.selectionObj.edges)if(this.selectionObj.edges.hasOwnProperty(t))return this.selectionObj.edges[t]}},{key:"_getSelectedEdgeCount",value:function(){var t=0;for(var e in this.selectionObj.edges)this.selectionObj.edges.hasOwnProperty(e)&&(t+=1);return t}},{key:"_getSelectedObjectCount",value:function(){var t=0;for(var e in this.selectionObj.nodes)this.selectionObj.nodes.hasOwnProperty(e)&&(t+=1);for(var i in this.selectionObj.edges)this.selectionObj.edges.hasOwnProperty(i)&&(t+=1);return t}},{key:"_selectionIsEmpty",value:function(){for(var t in this.selectionObj.nodes)if(this.selectionObj.nodes.hasOwnProperty(t))return!1;for(var e in this.selectionObj.edges)if(this.selectionObj.edges.hasOwnProperty(e))return!1;return!0}},{key:"_clusterInSelection",value:function(){for(var t in this.selectionObj.nodes)if(this.selectionObj.nodes.hasOwnProperty(t)&&this.selectionObj.nodes[t].clusterSize>1)return!0;return!1}},{key:"_selectConnectedEdges",value:function(t){for(var e=0;e0&&(this.options.hierarchical.levelSeparation*=-1):this.options.hierarchical.levelSeparation<0&&(this.options.hierarchical.levelSeparation*=-1),this.body.emitter.emit("_resetHierarchicalLayout"),this.adaptAllOptionsForHierarchicalLayout(e);if(i===!0)return this.body.emitter.emit("refresh"),l.deepExtend(e,this.optionsBackup)}return e}},{key:"adaptAllOptionsForHierarchicalLayout",value:function(t){if(this.options.hierarchical.enabled===!0){void 0===t.physics||t.physics===!0?(t.physics={enabled:void 0===this.optionsBackup.physics.enabled?!0:this.optionsBackup.physics.enabled,solver:"hierarchicalRepulsion"},this.optionsBackup.physics.enabled=void 0===this.optionsBackup.physics.enabled?!0:this.optionsBackup.physics.enabled,this.optionsBackup.physics.solver=this.optionsBackup.physics.solver||"barnesHut"):"object"===r(t.physics)?(this.optionsBackup.physics.enabled=void 0===t.physics.enabled?!0:t.physics.enabled,this.optionsBackup.physics.solver=t.physics.solver||"barnesHut",t.physics.solver="hierarchicalRepulsion"):t.physics!==!1&&(this.optionsBackup.physics.solver="barnesHut",t.physics={solver:"hierarchicalRepulsion"});var e="horizontal";"RL"!==this.options.hierarchical.direction&&"LR"!==this.options.hierarchical.direction||(e="vertical"),void 0===t.edges?(this.optionsBackup.edges={smooth:{enabled:!0,type:"dynamic"}},t.edges={smooth:!1}):void 0===t.edges.smooth?(this.optionsBackup.edges={smooth:{enabled:!0,type:"dynamic"}},t.edges.smooth=!1):"boolean"==typeof t.edges.smooth?(this.optionsBackup.edges={smooth:t.edges.smooth},t.edges.smooth={enabled:t.edges.smooth,type:e}):(void 0!==t.edges.smooth.type&&"dynamic"!==t.edges.smooth.type&&(e=t.edges.smooth.type),this.optionsBackup.edges={smooth:void 0===t.edges.smooth.enabled?!0:t.edges.smooth.enabled,type:void 0===t.edges.smooth.type?"dynamic":t.edges.smooth.type,roundness:void 0===t.edges.smooth.roundness?.5:t.edges.smooth.roundness,forceDirection:void 0===t.edges.smooth.forceDirection?!1:t.edges.smooth.forceDirection},t.edges.smooth={enabled:void 0===t.edges.smooth.enabled?!0:t.edges.smooth.enabled,type:e,roundness:void 0===t.edges.smooth.roundness?.5:t.edges.smooth.roundness,forceDirection:void 0===t.edges.smooth.forceDirection?!1:t.edges.smooth.forceDirection}),this.body.emitter.emit("_forceDisableDynamicCurves",e)}return t}},{key:"seededRandom",value:function(){var t=1e4*Math.sin(this.randomSeed++);return t-Math.floor(t)}},{key:"positionInitially",value:function(t){if(this.options.hierarchical.enabled!==!0){this.randomSeed=this.initialRandomSeed;for(var e=0;es){for(var r=this.body.nodeIndices.length;this.body.nodeIndices.length>s;){n+=1;var a=this.body.nodeIndices.length;n%3===0?this.body.modules.clustering.clusterBridges():this.body.modules.clustering.clusterOutliers();var h=this.body.nodeIndices.length;if(a==h&&n%3!==0||n>o)return this._declusterAll(),this.body.emitter.emit("_layoutFailed"),void console.info("This network could not be positioned by this version of the improved layout algorithm. Please disable improvedLayout for better performance.")}this.body.modules.kamadaKawai.setOptions({springLength:Math.max(150,2*r)})}this.body.modules.kamadaKawai.solve(this.body.nodeIndices,this.body.edgeIndices,!0),this._shiftToCenter();for(var d=70,l=0;l0){var t=void 0,e=void 0,i=!1,o=!0,n=!1;this.hierarchicalLevels={},this.lastNodeOnLevel={},this.hierarchicalChildrenReference={},this.hierarchicalParentReference={},this.hierarchicalTrees={},this.treeIndex=-1,this.distributionOrdering={},this.distributionIndex={},this.distributionOrderingPresence={};for(e in this.body.nodes)this.body.nodes.hasOwnProperty(e)&&(t=this.body.nodes[e],void 0===t.options.x&&void 0===t.options.y&&(o=!1),void 0!==t.options.level?(i=!0,this.hierarchicalLevels[e]=t.options.level):n=!0);if(n===!0&&i===!0)throw new Error("To use the hierarchical layout, nodes require either no predefined levels or levels have to be defined for all nodes.");n===!0&&("hubsize"===this.options.hierarchical.sortMethod?this._determineLevelsByHubsize():"directed"===this.options.hierarchical.sortMethod?this._determineLevelsDirected():"custom"===this.options.hierarchical.sortMethod&&this._determineLevelsCustomCallback());for(var s in this.body.nodes)this.body.nodes.hasOwnProperty(s)&&void 0===this.hierarchicalLevels[s]&&(this.hierarchicalLevels[s]=0);var r=this._getDistribution();this._generateMap(),this._placeNodesByHierarchy(r),this._condenseHierarchy(),this._shiftToCenter()}}},{key:"_condenseHierarchy",value:function(){var t=this,e=!1,i={},o=function(){for(var e=a(),i=0;i0)for(var n=0;n=l&&(r=Math.min(c,r),a=Math.max(c,a))}return[r,a,o,n]},l=function _(e){var i=t.hierarchicalLevels[e];if(t.hierarchicalChildrenReference[e]){var o=t.hierarchicalChildrenReference[e];if(o.length>0)for(var n=0;n1)for(var a=0;at.options.hierarchical.nodeSpacing){var u={};u[i.id]=!0;var p={};p[o.id]=!0,h(i,u),h(o,p);var f=c(i,o),m=d(u,f),v=s(m,4),g=(v[0],v[1]),y=(v[2],v[3],d(p,f)),b=s(y,4),w=b[0],_=(b[1],b[2]),x=(b[3],Math.abs(g-w));if(x>t.options.hierarchical.nodeSpacing){var k=g-w+t.options.hierarchical.nodeSpacing;k<-_+t.options.hierarchical.nodeSpacing&&(k=-_+t.options.hierarchical.nodeSpacing),0>k&&(t._shiftBlock(o.id,k),e=!0,n===!0&&t._centerParent(o))}}},m=function(o,n){for(var r=n.id,a=n.edges,l=t.hierarchicalLevels[n.id],c=t.options.hierarchical.levelSeparation*t.options.hierarchical.levelSeparation,u={},p=[],f=0;fr;r++){var a=g(o,i),h=y(o,i),d=40,l=Math.max(-d,Math.min(d,Math.round(a/h)));if(o-=l,void 0!==s[o])break;s[o]=r}return o},w=function(o){var r=t._getPositionForHierarchy(n);if(void 0===i[n.id]){var a={};a[n.id]=!0,h(n,a),i[n.id]=a}var l=d(i[n.id]),c=s(l,4),u=(c[0],c[1],c[2]),p=c[3],f=o-r,m=0;f>0?m=Math.min(f,p-t.options.hierarchical.nodeSpacing):0>f&&(m=-Math.min(-f,u-t.options.hierarchical.nodeSpacing)),0!=m&&(t._shiftBlock(n.id,m),e=!0)},_=function(i){var o=t._getPositionForHierarchy(n),r=t._getSpaceAroundNode(n),a=s(r,2),h=a[0],d=a[1],l=i-o,c=o;l>0?c=Math.min(o+(d-t.options.hierarchical.nodeSpacing),i):0>l&&(c=Math.max(o-(h-t.options.hierarchical.nodeSpacing),i)),c!==o&&(t._setPositionForHierarchy(n,c,void 0,!0),e=!0)},x=b(o,p);w(x),x=b(o,a),_(x)},v=function(i){var o=Object.keys(t.distributionOrdering);o=o.reverse();for(var n=0;i>n;n++){e=!1;for(var s=0;sn&&(e=!1,p(f,o,!0),e===!0);n++);},y=function(){for(var e in t.body.nodes)t.body.nodes.hasOwnProperty(e)&&t._centerParent(t.body.nodes[e])},b=function(){var e=Object.keys(t.distributionOrdering);e=e.reverse();for(var i=0;i0)for(var d=0;dg&&Math.abs(g)0&&Math.abs(g)0&&(r=this._getPositionForHierarchy(i[n-1])+this.options.hierarchical.nodeSpacing),this._setPositionForHierarchy(s,r,e),this._validataPositionAndContinue(s,e,r),o++}}}}},{key:"_placeBranchNodes",value:function(t,e){if(void 0!==this.hierarchicalChildrenReference[t]){for(var i=[],o=0;oe&&void 0===this.positionedNodes[s.id]))return;var a=void 0;a=0===n?this._getPositionForHierarchy(this.body.nodes[t]):this._getPositionForHierarchy(i[n-1])+this.options.hierarchical.nodeSpacing,this._setPositionForHierarchy(s,a,r),this._validataPositionAndContinue(s,r,a)}for(var h=1e9,d=-1e9,l=0;l0&&(e=this._getHubSize(),0!==e);)for(var o in this.body.nodes)if(this.body.nodes.hasOwnProperty(o)){var n=this.body.nodes[o];n.edges.length===e&&this._crawlNetwork(i,o)}}},{key:"_determineLevelsCustomCallback",value:function(){var t=this,e=1e5,i=function(t,e,i){},o=function(o,n,s){var r=t.hierarchicalLevels[o.id];void 0===r&&(t.hierarchicalLevels[o.id]=e);var a=i(d["default"].cloneOptions(o,"node"),d["default"].cloneOptions(n,"node"),d["default"].cloneOptions(s,"edge"));t.hierarchicalLevels[n.id]=t.hierarchicalLevels[o.id]+a};this._crawlNetwork(o),this._setMinLevelToZero()}},{key:"_determineLevelsDirected",value:function(){var t=this,e=1e4,i=function(i,o,n){var s=t.hierarchicalLevels[i.id];void 0===s&&(t.hierarchicalLevels[i.id]=e),n.toId==o.id?t.hierarchicalLevels[o.id]=t.hierarchicalLevels[i.id]+1:t.hierarchicalLevels[o.id]=t.hierarchicalLevels[i.id]-1};this._crawlNetwork(i),this._setMinLevelToZero()}},{key:"_setMinLevelToZero",value:function(){var t=1e9;for(var e in this.body.nodes)this.body.nodes.hasOwnProperty(e)&&void 0!==this.hierarchicalLevels[e]&&(t=Math.min(this.hierarchicalLevels[e],t));for(var i in this.body.nodes)this.body.nodes.hasOwnProperty(i)&&void 0!==this.hierarchicalLevels[i]&&(this.hierarchicalLevels[i]-=t)}},{key:"_generateMap",value:function(){var t=this,e=function(e,i){if(t.hierarchicalLevels[i.id]>t.hierarchicalLevels[e.id]){var o=e.id,n=i.id;void 0===t.hierarchicalChildrenReference[o]&&(t.hierarchicalChildrenReference[o]=[]),t.hierarchicalChildrenReference[o].push(n),void 0===t.hierarchicalParentReference[n]&&(t.hierarchicalParentReference[n]=[]),t.hierarchicalParentReference[n].push(o)}};this._crawlNetwork(e)}},{key:"_crawlNetwork",value:function(){var t=this,e=arguments.length<=0||void 0===arguments[0]?function(){}:arguments[0],i=arguments[1],o={},n=0,s=function d(i,n){if(void 0===o[i.id]){void 0===t.hierarchicalTrees[i.id]&&(t.hierarchicalTrees[i.id]=n,t.treeIndex=Math.max(n,t.treeIndex)),o[i.id]=!0;for(var s=void 0,r=0;r1&&("UD"===this.options.hierarchical.direction||"DU"===this.options.hierarchical.direction?t.sort(function(t,e){return t.x-e.x}):t.sort(function(t,e){return t.y-e.y}))}}]),t}();e["default"]=c},function(t,e,i){function o(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(e,"__esModule",{value:!0});var n=function(){function t(t,e){for(var i=0;i0&&this.options.deleteNode!==!1?(n===!0&&this._createSeperator(4),this._createDeleteButton(o)):0===t&&this.options.deleteEdge!==!1&&(n===!0&&this._createSeperator(4),this._createDeleteButton(o))),this._bindHammerToDiv(this.closeDiv,this.toggleEditMode.bind(this)),this._temporaryBindEvent("select",this.showManipulatorToolbar.bind(this))}this.body.emitter.emit("_redraw")}},{key:"addNodeMode",value:function(){if(this.editMode!==!0&&this.enableEditMode(),this._clean(),this.inMode="addNode",this.guiEnabled===!0){var t=this.options.locales[this.options.locale];this.manipulationDOM={},this._createBackButton(t),this._createSeperator(),this._createDescription(t.addDescription||this.options.locales.en.addDescription),this._bindHammerToDiv(this.closeDiv,this.toggleEditMode.bind(this))}this._temporaryBindEvent("click",this._performAddNode.bind(this))}},{key:"editNode",value:function(){var t=this;this.editMode!==!0&&this.enableEditMode(),this._clean();var e=this.selectionHandler._getSelectedNode();if(void 0!==e){if(this.inMode="editNode","function"!=typeof this.options.editNode)throw new Error("No function has been configured to handle the editing of nodes.");if(e.isCluster!==!0){var i=s.deepExtend({},e.options,!1);if(i.x=e.x,i.y=e.y,2!==this.options.editNode.length)throw new Error("The function for edit does not support two arguments (data, callback)");this.options.editNode(i,function(e){null!==e&&void 0!==e&&"editNode"===t.inMode&&t.body.data.nodes.getDataSet().update(e),t.showManipulatorToolbar()})}else alert(this.options.locales[this.options.locale].editClusterError||this.options.locales.en.editClusterError)}else this.showManipulatorToolbar()}},{key:"addEdgeMode",value:function(){if(this.editMode!==!0&&this.enableEditMode(),this._clean(),this.inMode="addEdge",this.guiEnabled===!0){var t=this.options.locales[this.options.locale];this.manipulationDOM={},this._createBackButton(t),this._createSeperator(),this._createDescription(t.edgeDescription||this.options.locales.en.edgeDescription),this._bindHammerToDiv(this.closeDiv,this.toggleEditMode.bind(this))}this._temporaryBindUI("onTouch",this._handleConnect.bind(this)),this._temporaryBindUI("onDragEnd",this._finishConnect.bind(this)),this._temporaryBindUI("onDrag",this._dragControlNode.bind(this)),this._temporaryBindUI("onRelease",this._finishConnect.bind(this)),this._temporaryBindUI("onDragStart",function(){}),this._temporaryBindUI("onHold",function(){})}},{key:"editEdgeMode",value:function(){var t=this;if(this.editMode!==!0&&this.enableEditMode(),this._clean(),this.inMode="editEdge",this.guiEnabled===!0){var e=this.options.locales[this.options.locale];this.manipulationDOM={},this._createBackButton(e),this._createSeperator(),this._createDescription(e.editEdgeDescription||this.options.locales.en.editEdgeDescription),this._bindHammerToDiv(this.closeDiv,this.toggleEditMode.bind(this))}this.edgeBeingEditedId=this.selectionHandler.getSelectedEdges()[0],void 0!==this.edgeBeingEditedId?!function(){var e=t.body.edges[t.edgeBeingEditedId],i=t._getNewTargetNode(e.from.x,e.from.y),o=t._getNewTargetNode(e.to.x,e.to.y);t.temporaryIds.nodes.push(i.id),t.temporaryIds.nodes.push(o.id),t.body.nodes[i.id]=i,t.body.nodeIndices.push(i.id),t.body.nodes[o.id]=o,t.body.nodeIndices.push(o.id),t._temporaryBindUI("onTouch",t._controlNodeTouch.bind(t)),t._temporaryBindUI("onTap",function(){}),t._temporaryBindUI("onHold",function(){}),t._temporaryBindUI("onDragStart",t._controlNodeDragStart.bind(t)),t._temporaryBindUI("onDrag",t._controlNodeDrag.bind(t)),t._temporaryBindUI("onDragEnd",t._controlNodeDragEnd.bind(t)),t._temporaryBindUI("onMouseMove",function(){}),t._temporaryBindEvent("beforeDrawing",function(t){var n=e.edgeType.findBorderPositions(t);i.selected===!1&&(i.x=n.from.x,i.y=n.from.y),o.selected===!1&&(o.x=n.to.x,o.y=n.to.y)}),t.body.emitter.emit("_redraw")}():this.showManipulatorToolbar()}},{key:"deleteSelected",value:function(){var t=this;this.editMode!==!0&&this.enableEditMode(),this._clean(),this.inMode="delete";var e=this.selectionHandler.getSelectedNodes(),i=this.selectionHandler.getSelectedEdges(),o=void 0;if(e.length>0){for(var n=0;n0&&"function"==typeof this.options.deleteEdge&&(o=this.options.deleteEdge);if("function"==typeof o){var s={nodes:e,edges:i};if(2!==o.length)throw new Error("The function for delete does not support two arguments (data, callback)");o(s,function(e){null!==e&&void 0!==e&&"delete"===t.inMode?(t.body.data.edges.getDataSet().remove(e.edges),t.body.data.nodes.getDataSet().remove(e.nodes),t.body.emitter.emit("startSimulation"),t.showManipulatorToolbar()):(t.body.emitter.emit("startSimulation"),t.showManipulatorToolbar())})}else this.body.data.edges.getDataSet().remove(i),this.body.data.nodes.getDataSet().remove(e),this.body.emitter.emit("startSimulation"),this.showManipulatorToolbar()}},{key:"_setup",value:function(){this.options.enabled===!0?(this.guiEnabled=!0,this._createWrappers(),this.editMode===!1?this._createEditButton():this.showManipulatorToolbar()):(this._removeManipulationDOM(),this.guiEnabled=!1)}},{key:"_createWrappers",value:function(){void 0===this.manipulationDiv&&(this.manipulationDiv=document.createElement("div"),this.manipulationDiv.className="vis-manipulation",this.editMode===!0?this.manipulationDiv.style.display="block":this.manipulationDiv.style.display="none",this.canvas.frame.appendChild(this.manipulationDiv)),void 0===this.editModeDiv&&(this.editModeDiv=document.createElement("div"),this.editModeDiv.className="vis-edit-mode",this.editMode===!0?this.editModeDiv.style.display="none":this.editModeDiv.style.display="block",this.canvas.frame.appendChild(this.editModeDiv)),void 0===this.closeDiv&&(this.closeDiv=document.createElement("div"),this.closeDiv.className="vis-close",this.closeDiv.style.display=this.manipulationDiv.style.display, -this.canvas.frame.appendChild(this.closeDiv))}},{key:"_getNewTargetNode",value:function(t,e){var i=s.deepExtend({},this.options.controlNodeStyle);i.id="targetNode"+s.randomUUID(),i.hidden=!1,i.physics=!1,i.x=t,i.y=e;var o=this.body.functions.createNode(i);return o.shape.boundingBox={left:t,right:t,top:e,bottom:e},o}},{key:"_createEditButton",value:function(){this._clean(),this.manipulationDOM={},s.recursiveDOMDelete(this.editModeDiv);var t=this.options.locales[this.options.locale],e=this._createButton("editMode","vis-button vis-edit vis-edit-mode",t.edit||this.options.locales.en.edit);this.editModeDiv.appendChild(e),this._bindHammerToDiv(e,this.toggleEditMode.bind(this))}},{key:"_clean",value:function(){this.inMode=!1,this.guiEnabled===!0&&(s.recursiveDOMDelete(this.editModeDiv),s.recursiveDOMDelete(this.manipulationDiv),this._cleanManipulatorHammers()),this._cleanupTemporaryNodesAndEdges(),this._unbindTemporaryUIs(),this._unbindTemporaryEvents(),this.body.emitter.emit("restorePhysics")}},{key:"_cleanManipulatorHammers",value:function(){if(0!=this.manipulationHammers.length){for(var t=0;t=0;r--)if(n[r]!==this.selectedControlNode.id){s=this.body.nodes[n[r]];break}if(void 0!==s&&void 0!==this.selectedControlNode)if(s.isCluster===!0)alert(this.options.locales[this.options.locale].createEdgeError||this.options.locales.en.createEdgeError);else{var a=this.body.nodes[this.temporaryIds.nodes[0]];this.selectedControlNode.id===a.id?this._performEditEdge(s.id,o.to.id):this._performEditEdge(o.from.id,s.id)}else o.updateEdgeType(),this.body.emitter.emit("restorePhysics");this.body.emitter.emit("_redraw")}}},{key:"_handleConnect",value:function(t){if((new Date).valueOf()-this.touchTime>100){this.lastTouch=this.body.functions.getPointer(t.center),this.lastTouch.translation=s.extend({},this.body.view.translation);var e=this.lastTouch,i=this.selectionHandler.getNodeAt(e);if(void 0!==i)if(i.isCluster===!0)alert(this.options.locales[this.options.locale].createEdgeError||this.options.locales.en.createEdgeError);else{var o=this._getNewTargetNode(i.x,i.y);this.body.nodes[o.id]=o,this.body.nodeIndices.push(o.id);var n=this.body.functions.createEdge({id:"connectionEdge"+s.randomUUID(),from:i.id,to:o.id,physics:!1,smooth:{enabled:!0,type:"continuous",roundness:.5}});this.body.edges[n.id]=n,this.body.edgeIndices.push(n.id),this.temporaryIds.nodes.push(o.id),this.temporaryIds.edges.push(n.id)}this.touchTime=(new Date).valueOf()}}},{key:"_dragControlNode",value:function(t){var e=this.body.functions.getPointer(t.center);if(void 0!==this.temporaryIds.nodes[0]){var i=this.body.nodes[this.temporaryIds.nodes[0]];i.x=this.canvas._XconvertDOMtoCanvas(e.x),i.y=this.canvas._YconvertDOMtoCanvas(e.y),this.body.emitter.emit("_redraw")}else{var o=e.x-this.lastTouch.x,n=e.y-this.lastTouch.y;this.body.view.translation={x:this.lastTouch.translation.x+o,y:this.lastTouch.translation.y+n}}}},{key:"_finishConnect",value:function(t){var e=this.body.functions.getPointer(t.center),i=this.selectionHandler._pointerToPositionObject(e),o=void 0;void 0!==this.temporaryIds.edges[0]&&(o=this.body.edges[this.temporaryIds.edges[0]].fromId);for(var n=this.selectionHandler._getAllNodesOverlappingWith(i),s=void 0,r=n.length-1;r>=0;r--)if(-1===this.temporaryIds.nodes.indexOf(n[r])){s=this.body.nodes[n[r]];break}this._cleanupTemporaryNodesAndEdges(),void 0!==s&&(s.isCluster===!0?alert(this.options.locales[this.options.locale].createEdgeError||this.options.locales.en.createEdgeError):void 0!==this.body.nodes[o]&&void 0!==this.body.nodes[s.id]&&this._performAddEdge(o,s.id)),this.body.emitter.emit("_redraw")}},{key:"_performAddNode",value:function(t){var e=this,i={id:s.randomUUID(),x:t.pointer.canvas.x,y:t.pointer.canvas.y,label:"new"};if("function"==typeof this.options.addNode){if(2!==this.options.addNode.length)throw new Error("The function for add does not support two arguments (data,callback)");this.options.addNode(i,function(t){null!==t&&void 0!==t&&"addNode"===e.inMode&&(e.body.data.nodes.getDataSet().add(t),e.showManipulatorToolbar())})}else this.body.data.nodes.getDataSet().add(i),this.showManipulatorToolbar()}},{key:"_performAddEdge",value:function(t,e){var i=this,o={from:t,to:e};if("function"==typeof this.options.addEdge){if(2!==this.options.addEdge.length)throw new Error("The function for connect does not support two arguments (data,callback)");this.options.addEdge(o,function(t){null!==t&&void 0!==t&&"addEdge"===i.inMode&&(i.body.data.edges.getDataSet().add(t),i.selectionHandler.unselectAll(),i.showManipulatorToolbar())})}else this.body.data.edges.getDataSet().add(o),this.selectionHandler.unselectAll(),this.showManipulatorToolbar()}},{key:"_performEditEdge",value:function(t,e){var i=this,o={id:this.edgeBeingEditedId,from:t,to:e};if("function"==typeof this.options.editEdge){if(2!==this.options.editEdge.length)throw new Error("The function for edit does not support two arguments (data, callback)");this.options.editEdge(o,function(t){null===t||void 0===t||"editEdge"!==i.inMode?(i.body.edges[o.id].updateEdgeType(),i.body.emitter.emit("_redraw")):(i.body.data.edges.getDataSet().update(t),i.selectionHandler.unselectAll(),i.showManipulatorToolbar())})}else this.body.data.edges.getDataSet().update(o),this.selectionHandler.unselectAll(),this.showManipulatorToolbar()}}]),t}();e["default"]=h},function(t,e){Object.defineProperty(e,"__esModule",{value:!0});var i="string",o="boolean",n="number",s="array",r="object",a="dom",h="any",d={configure:{enabled:{"boolean":o},filter:{"boolean":o,string:i,array:s,"function":"function"},container:{dom:a},showButton:{"boolean":o},__type__:{object:r,"boolean":o,string:i,array:s,"function":"function"}},edges:{arrows:{to:{enabled:{"boolean":o},scaleFactor:{number:n},__type__:{object:r,"boolean":o}},middle:{enabled:{"boolean":o},scaleFactor:{number:n},__type__:{object:r,"boolean":o}},from:{enabled:{"boolean":o},scaleFactor:{number:n},__type__:{object:r,"boolean":o}},__type__:{string:["from","to","middle"],object:r}},arrowStrikethrough:{"boolean":o},color:{color:{string:i},highlight:{string:i},hover:{string:i},inherit:{string:["from","to","both"],"boolean":o},opacity:{number:n},__type__:{object:r,string:i}},dashes:{"boolean":o,array:s},font:{color:{string:i},size:{number:n},face:{string:i},background:{string:i},strokeWidth:{number:n},strokeColor:{string:i},align:{string:["horizontal","top","middle","bottom"]},__type__:{object:r,string:i}},hidden:{"boolean":o},hoverWidth:{"function":"function",number:n},label:{string:i,undefined:"undefined"},labelHighlightBold:{"boolean":o},length:{number:n,undefined:"undefined"},physics:{"boolean":o},scaling:{min:{number:n},max:{number:n},label:{enabled:{"boolean":o},min:{number:n},max:{number:n},maxVisible:{number:n},drawThreshold:{number:n},__type__:{object:r,"boolean":o}},customScalingFunction:{"function":"function"},__type__:{object:r}},selectionWidth:{"function":"function",number:n},selfReferenceSize:{number:n},shadow:{enabled:{"boolean":o},color:{string:i},size:{number:n},x:{number:n},y:{number:n},__type__:{object:r,"boolean":o}},smooth:{enabled:{"boolean":o},type:{string:["dynamic","continuous","discrete","diagonalCross","straightCross","horizontal","vertical","curvedCW","curvedCCW","cubicBezier"]},roundness:{number:n},forceDirection:{string:["horizontal","vertical","none"],"boolean":o},__type__:{object:r,"boolean":o}},title:{string:i,undefined:"undefined"},width:{number:n},value:{number:n,undefined:"undefined"},__type__:{object:r}},groups:{useDefaultGroups:{"boolean":o},__any__:"get from nodes, will be overwritten below",__type__:{object:r}},interaction:{dragNodes:{"boolean":o},dragView:{"boolean":o},hideEdgesOnDrag:{"boolean":o},hideNodesOnDrag:{"boolean":o},hover:{"boolean":o},keyboard:{enabled:{"boolean":o},speed:{x:{number:n},y:{number:n},zoom:{number:n},__type__:{object:r}},bindToWindow:{"boolean":o},__type__:{object:r,"boolean":o}},multiselect:{"boolean":o},navigationButtons:{"boolean":o},selectable:{"boolean":o},selectConnectedEdges:{"boolean":o},hoverConnectedEdges:{"boolean":o},tooltipDelay:{number:n},zoomView:{"boolean":o},__type__:{object:r}},layout:{randomSeed:{undefined:"undefined",number:n},improvedLayout:{"boolean":o},hierarchical:{enabled:{"boolean":o},levelSeparation:{number:n},nodeSpacing:{number:n},treeSpacing:{number:n},blockShifting:{"boolean":o},edgeMinimization:{"boolean":o},parentCentralization:{"boolean":o},direction:{string:["UD","DU","LR","RL"]},sortMethod:{string:["hubsize","directed"]},__type__:{object:r,"boolean":o}},__type__:{object:r}},manipulation:{enabled:{"boolean":o},initiallyActive:{"boolean":o},addNode:{"boolean":o,"function":"function"},addEdge:{"boolean":o,"function":"function"},editNode:{"function":"function"},editEdge:{"boolean":o,"function":"function"},deleteNode:{"boolean":o,"function":"function"},deleteEdge:{"boolean":o,"function":"function"},controlNodeStyle:"get from nodes, will be overwritten below",__type__:{object:r,"boolean":o}},nodes:{borderWidth:{number:n},borderWidthSelected:{number:n,undefined:"undefined"},brokenImage:{string:i,undefined:"undefined"},color:{border:{string:i},background:{string:i},highlight:{border:{string:i},background:{string:i},__type__:{object:r,string:i}},hover:{border:{string:i},background:{string:i},__type__:{object:r,string:i}},__type__:{object:r,string:i}},fixed:{x:{"boolean":o},y:{"boolean":o},__type__:{object:r,"boolean":o}},font:{color:{string:i},size:{number:n},face:{string:i},background:{string:i},strokeWidth:{number:n},strokeColor:{string:i},__type__:{object:r,string:i}},group:{string:i,number:n,undefined:"undefined"},hidden:{"boolean":o},icon:{face:{string:i},code:{string:i},size:{number:n},color:{string:i},__type__:{object:r}},id:{string:i,number:n},image:{string:i,undefined:"undefined"},label:{string:i,undefined:"undefined"},labelHighlightBold:{"boolean":o},level:{number:n,undefined:"undefined"},mass:{number:n},physics:{"boolean":o},scaling:{min:{number:n},max:{number:n},label:{enabled:{"boolean":o},min:{number:n},max:{number:n},maxVisible:{number:n},drawThreshold:{number:n},__type__:{object:r,"boolean":o}},customScalingFunction:{"function":"function"},__type__:{object:r}},shadow:{enabled:{"boolean":o},color:{string:i},size:{number:n},x:{number:n},y:{number:n},__type__:{object:r,"boolean":o}},shape:{string:["ellipse","circle","database","box","text","image","circularImage","diamond","dot","star","triangle","triangleDown","square","icon"]},shapeProperties:{borderDashes:{"boolean":o,array:s},borderRadius:{number:n},interpolation:{"boolean":o},useImageSize:{"boolean":o},useBorderWithImage:{"boolean":o},__type__:{object:r}},size:{number:n},title:{string:i,undefined:"undefined"},value:{number:n,undefined:"undefined"},x:{number:n},y:{number:n},__type__:{object:r}},physics:{enabled:{"boolean":o},barnesHut:{gravitationalConstant:{number:n},centralGravity:{number:n},springLength:{number:n},springConstant:{number:n},damping:{number:n},avoidOverlap:{number:n},__type__:{object:r}},forceAtlas2Based:{gravitationalConstant:{number:n},centralGravity:{number:n},springLength:{number:n},springConstant:{number:n},damping:{number:n},avoidOverlap:{number:n},__type__:{object:r}},repulsion:{centralGravity:{number:n},springLength:{number:n},springConstant:{number:n},nodeDistance:{number:n},damping:{number:n},__type__:{object:r}},hierarchicalRepulsion:{centralGravity:{number:n},springLength:{number:n},springConstant:{number:n},nodeDistance:{number:n},damping:{number:n},__type__:{object:r}},maxVelocity:{number:n},minVelocity:{number:n},solver:{string:["barnesHut","repulsion","hierarchicalRepulsion","forceAtlas2Based"]},stabilization:{enabled:{"boolean":o},iterations:{number:n},updateInterval:{number:n},onlyDynamicEdges:{"boolean":o},fit:{"boolean":o},__type__:{object:r,"boolean":o}},timestep:{number:n},adaptiveTimestep:{"boolean":o},__type__:{object:r,"boolean":o}},autoResize:{"boolean":o},clickToUse:{"boolean":o},locale:{string:i},locales:{__any__:{any:h},__type__:{object:r}},height:{string:i},width:{string:i},__type__:{object:r}};d.groups.__any__=d.nodes,d.manipulation.controlNodeStyle=d.nodes;var l={nodes:{borderWidth:[1,0,10,1],borderWidthSelected:[2,0,10,1],color:{border:["color","#2B7CE9"],background:["color","#97C2FC"],highlight:{border:["color","#2B7CE9"],background:["color","#D2E5FF"]},hover:{border:["color","#2B7CE9"],background:["color","#D2E5FF"]}},fixed:{x:!1,y:!1},font:{color:["color","#343434"],size:[14,0,100,1],face:["arial","verdana","tahoma"],background:["color","none"],strokeWidth:[0,0,50,1],strokeColor:["color","#ffffff"]},hidden:!1,labelHighlightBold:!0,physics:!0,scaling:{min:[10,0,200,1],max:[30,0,200,1],label:{enabled:!1,min:[14,0,200,1],max:[30,0,200,1],maxVisible:[30,0,200,1],drawThreshold:[5,0,20,1]}},shadow:{enabled:!1,color:"rgba(0,0,0,0.5)",size:[10,0,20,1],x:[5,-30,30,1],y:[5,-30,30,1]},shape:["ellipse","box","circle","database","diamond","dot","square","star","text","triangle","triangleDown"],shapeProperties:{borderDashes:!1,borderRadius:[6,0,20,1],interpolation:!0,useImageSize:!1},size:[25,0,200,1]},edges:{arrows:{to:{enabled:!1,scaleFactor:[1,0,3,.05]},middle:{enabled:!1,scaleFactor:[1,0,3,.05]},from:{enabled:!1,scaleFactor:[1,0,3,.05]}},arrowStrikethrough:!0,color:{color:["color","#848484"],highlight:["color","#848484"],hover:["color","#848484"],inherit:["from","to","both",!0,!1],opacity:[1,0,1,.05]},dashes:!1,font:{color:["color","#343434"],size:[14,0,100,1],face:["arial","verdana","tahoma"],background:["color","none"],strokeWidth:[2,0,50,1],strokeColor:["color","#ffffff"],align:["horizontal","top","middle","bottom"]},hidden:!1,hoverWidth:[1.5,0,5,.1],labelHighlightBold:!0,physics:!0,scaling:{min:[1,0,100,1],max:[15,0,100,1],label:{enabled:!0,min:[14,0,200,1],max:[30,0,200,1],maxVisible:[30,0,200,1],drawThreshold:[5,0,20,1]}},selectionWidth:[1.5,0,5,.1],selfReferenceSize:[20,0,200,1],shadow:{enabled:!1,color:"rgba(0,0,0,0.5)",size:[10,0,20,1],x:[5,-30,30,1],y:[5,-30,30,1]},smooth:{enabled:!0,type:["dynamic","continuous","discrete","diagonalCross","straightCross","horizontal","vertical","curvedCW","curvedCCW","cubicBezier"],forceDirection:["horizontal","vertical","none"],roundness:[.5,0,1,.05]},width:[1,0,30,1]},layout:{hierarchical:{enabled:!1,levelSeparation:[150,20,500,5],nodeSpacing:[100,20,500,5],treeSpacing:[200,20,500,5],blockShifting:!0,edgeMinimization:!0,parentCentralization:!0,direction:["UD","DU","LR","RL"],sortMethod:["hubsize","directed"]}},interaction:{dragNodes:!0,dragView:!0,hideEdgesOnDrag:!1,hideNodesOnDrag:!1,hover:!1,keyboard:{enabled:!1,speed:{x:[10,0,40,1],y:[10,0,40,1],zoom:[.02,0,.1,.005]},bindToWindow:!0},multiselect:!1,navigationButtons:!1,selectable:!0,selectConnectedEdges:!0,hoverConnectedEdges:!0,tooltipDelay:[300,0,1e3,25],zoomView:!0},manipulation:{enabled:!1,initiallyActive:!1},physics:{enabled:!0,barnesHut:{gravitationalConstant:[-2e3,-3e4,0,50],centralGravity:[.3,0,10,.05],springLength:[95,0,500,5],springConstant:[.04,0,1.2,.005],damping:[.09,0,1,.01],avoidOverlap:[0,0,1,.01]},forceAtlas2Based:{gravitationalConstant:[-50,-500,0,1],centralGravity:[.01,0,1,.005],springLength:[95,0,500,5],springConstant:[.08,0,1.2,.005],damping:[.4,0,1,.01],avoidOverlap:[0,0,1,.01]},repulsion:{centralGravity:[.2,0,10,.05],springLength:[200,0,500,5],springConstant:[.05,0,1.2,.005],nodeDistance:[100,0,500,5],damping:[.09,0,1,.01]},hierarchicalRepulsion:{centralGravity:[.2,0,10,.05],springLength:[100,0,500,5],springConstant:[.01,0,1.2,.005],nodeDistance:[120,0,500,5],damping:[.09,0,1,.01]},maxVelocity:[50,0,150,1],minVelocity:[.1,.01,.5,.01],solver:["barnesHut","forceAtlas2Based","repulsion","hierarchicalRepulsion"],timestep:[.5,.01,1,.01]},global:{locale:["en","nl"]}};e.allOptions=d,e.configureOptions=l},function(t,e,i){function o(t){return t&&t.__esModule?t:{"default":t}}function n(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(e,"__esModule",{value:!0});var s=function(){function t(t,e){var i=[],o=!0,n=!1,s=void 0;try{for(var r,a=t[Symbol.iterator]();!(o=(r=a.next()).done)&&(i.push(r.value),!e||i.length!==e);o=!0);}catch(h){n=!0,s=h}finally{try{!o&&a["return"]&&a["return"]()}finally{if(n)throw s}}return i}return function(e,i){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return t(e,i);throw new TypeError("Invalid attempt to destructure non-iterable instance")}}(),r=function(){function t(t,e){for(var i=0;in&&h>a;){a+=1;var v=this._getHighestEnergyNode(i),g=s(v,4);for(c=g[0],l=g[1],u=g[2],p=g[3],f=l,m=0;f>r&&d>m;){m+=1,this._moveNode(c,u,p);var y=this._getEnergy(c),b=s(y,3);f=b[0],u=b[1],p=b[2]}}}},{key:"_getHighestEnergyNode",value:function(t){for(var e=this.body.nodeIndices,i=this.body.nodes,o=0,n=e[0],r=0,a=0,h=0;ho&&(o=u,n=d,r=p,a=f)}}return[n,o,r,a]}},{key:"_getEnergy",value:function(t){for(var e=this.body.nodeIndices,i=this.body.nodes,o=i[t].x,n=i[t].y,s=0,r=0,a=0;al;l++)for(var c=0;d-1>c;c++)for(var u=c+1;d>u;u++)o[e[c]][e[u]]=Math.min(o[e[c]][e[u]],o[e[c]][e[l]]+o[e[l]][e[u]]),o[e[u]][e[c]]=o[e[c]][e[u]];return o}}]),t}();e["default"]=n},function(t,e){"undefined"!=typeof CanvasRenderingContext2D&&(CanvasRenderingContext2D.prototype.circle=function(t,e,i){this.beginPath(),this.arc(t,e,i,0,2*Math.PI,!1),this.closePath()},CanvasRenderingContext2D.prototype.square=function(t,e,i){this.beginPath(),this.rect(t-i,e-i,2*i,2*i),this.closePath()},CanvasRenderingContext2D.prototype.triangle=function(t,e,i){this.beginPath(),i*=1.15,e+=.275*i;var o=2*i,n=o/2,s=Math.sqrt(3)/6*o,r=Math.sqrt(o*o-n*n);this.moveTo(t,e-(r-s)),this.lineTo(t+n,e+s),this.lineTo(t-n,e+s),this.lineTo(t,e-(r-s)),this.closePath()},CanvasRenderingContext2D.prototype.triangleDown=function(t,e,i){this.beginPath(),i*=1.15,e-=.275*i;var o=2*i,n=o/2,s=Math.sqrt(3)/6*o,r=Math.sqrt(o*o-n*n);this.moveTo(t,e+(r-s)),this.lineTo(t+n,e-s),this.lineTo(t-n,e-s),this.lineTo(t,e+(r-s)),this.closePath()},CanvasRenderingContext2D.prototype.star=function(t,e,i){this.beginPath(),i*=.82,e+=.1*i;for(var o=0;10>o;o++){var n=o%2===0?1.3*i:.5*i;this.lineTo(t+n*Math.sin(2*o*Math.PI/10),e-n*Math.cos(2*o*Math.PI/10))}this.closePath()},CanvasRenderingContext2D.prototype.diamond=function(t,e,i){this.beginPath(),this.lineTo(t,e+i),this.lineTo(t+i,e),this.lineTo(t,e-i),this.lineTo(t-i,e),this.closePath()},CanvasRenderingContext2D.prototype.roundRect=function(t,e,i,o,n){var s=Math.PI/180;0>i-2*n&&(n=i/2),0>o-2*n&&(n=o/2),this.beginPath(),this.moveTo(t+n,e),this.lineTo(t+i-n,e),this.arc(t+i-n,e+n,n,270*s,360*s,!1),this.lineTo(t+i,e+o-n),this.arc(t+i-n,e+o-n,n,0,90*s,!1),this.lineTo(t+n,e+o),this.arc(t+n,e+o-n,n,90*s,180*s,!1),this.lineTo(t,e+n),this.arc(t+n,e+n,n,180*s,270*s,!1),this.closePath()},CanvasRenderingContext2D.prototype.ellipse=function(t,e,i,o){var n=.5522848,s=i/2*n,r=o/2*n,a=t+i,h=e+o,d=t+i/2,l=e+o/2;this.beginPath(),this.moveTo(t,l),this.bezierCurveTo(t,l-r,d-s,e,d,e),this.bezierCurveTo(d+s,e,a,l-r,a,l),this.bezierCurveTo(a,l+r,d+s,h,d,h),this.bezierCurveTo(d-s,h,t,l+r,t,l),this.closePath()},CanvasRenderingContext2D.prototype.database=function(t,e,i,o){var n=1/3,s=i,r=o*n,a=.5522848,h=s/2*a,d=r/2*a,l=t+s,c=e+r,u=t+s/2,p=e+r/2,f=e+(o-r/2),m=e+o;this.beginPath(),this.moveTo(l,p),this.bezierCurveTo(l,p+d,u+h,c,u,c),this.bezierCurveTo(u-h,c,t,p+d,t,p),this.bezierCurveTo(t,p-d,u-h,e,u,e),this.bezierCurveTo(u+h,e,l,p-d,l,p),this.lineTo(l,f),this.bezierCurveTo(l,f+d,u+h,m,u,m),this.bezierCurveTo(u-h,m,t,f+d,t,f),this.lineTo(t,p)},CanvasRenderingContext2D.prototype.arrow=function(t,e,i,o){var n=t-o*Math.cos(i),s=e-o*Math.sin(i),r=t-.9*o*Math.cos(i),a=e-.9*o*Math.sin(i),h=n+o/3*Math.cos(i+.5*Math.PI),d=s+o/3*Math.sin(i+.5*Math.PI),l=n+o/3*Math.cos(i-.5*Math.PI),c=s+o/3*Math.sin(i-.5*Math.PI);this.beginPath(),this.moveTo(t,e),this.lineTo(h,d),this.lineTo(r,a),this.lineTo(l,c),this.closePath()},CanvasRenderingContext2D.prototype.dashedLine=function(t,e,i,o,n){this.beginPath(),this.moveTo(t,e);for(var s=n.length,r=i-t,a=o-e,h=a/r,d=Math.sqrt(r*r+a*a),l=0,c=!0,u=0,p=n[0];d>=.1;)p=n[l++%s],p>d&&(p=d),u=Math.sqrt(p*p/(1+h*h)),u=0>r?-u:u,t+=u,e+=h*u,c===!0?this.lineTo(t,e):this.moveTo(t,e),d-=p,c=!c})},function(t,e){function i(t){return P=t,p()}function o(){I=0,N=P.charAt(0)}function n(){I++,N=P.charAt(I)}function s(){return P.charAt(I+1)}function r(t){return R.test(t)}function a(t,e){if(t||(t={}),e)for(var i in e)e.hasOwnProperty(i)&&(t[i]=e[i]);return t}function h(t,e,i){for(var o=e.split("."),n=t;o.length;){var s=o.shift();o.length?(n[s]||(n[s]={}),n=n[s]):n[s]=i}}function d(t,e){for(var i,o,n=null,s=[t],r=t;r.parent;)s.push(r.parent),r=r.parent;if(r.nodes)for(i=0,o=r.nodes.length;o>i;i++)if(e.id===r.nodes[i].id){n=r.nodes[i];break}for(n||(n={id:e.id},t.node&&(n.attr=a(n.attr,t.node))),i=s.length-1;i>=0;i--){var h=s[i];h.nodes||(h.nodes=[]),-1===h.nodes.indexOf(n)&&h.nodes.push(n)}e.attr&&(n.attr=a(n.attr,e.attr))}function l(t,e){if(t.edges||(t.edges=[]),t.edges.push(e),t.edge){var i=a({},t.edge);e.attr=a(i,e.attr)}}function c(t,e,i,o,n){var s={from:e,to:i,type:o};return t.edge&&(s.attr=a({},t.edge)),s.attr=a(s.attr||{},n),s}function u(){for(L=T.NULL,z="";" "===N||" "===N||"\n"===N||"\r"===N;)n();do{var t=!1;if("#"===N){for(var e=I-1;" "===P.charAt(e)||" "===P.charAt(e);)e--;if("\n"===P.charAt(e)||""===P.charAt(e)){for(;""!=N&&"\n"!=N;)n();t=!0}}if("/"===N&&"/"===s()){for(;""!=N&&"\n"!=N;)n();t=!0}if("/"===N&&"*"===s()){for(;""!=N;){if("*"===N&&"/"===s()){n(),n();break}n()}t=!0}for(;" "===N||" "===N||"\n"===N||"\r"===N;)n()}while(t);if(""===N)return void(L=T.DELIMITER);var i=N+s();if(E[i])return L=T.DELIMITER,z=i,n(),void n();if(E[N])return L=T.DELIMITER,z=N,void n();if(r(N)||"-"===N){for(z+=N,n();r(N);)z+=N,n();return"false"===z?z=!1:"true"===z?z=!0:isNaN(Number(z))||(z=Number(z)),void(L=T.IDENTIFIER)}if('"'===N){for(n();""!=N&&('"'!=N||'"'===N&&'"'===s());)z+=N,'"'===N&&n(),n();if('"'!=N)throw _('End of string " expected');return n(),void(L=T.IDENTIFIER)}for(L=T.UNKNOWN;""!=N;)z+=N,n();throw new SyntaxError('Syntax error in part "'+x(z,30)+'"')}function p(){var t={};if(o(),u(),"strict"===z&&(t.strict=!0,u()),"graph"!==z&&"digraph"!==z||(t.type=z,u()),L===T.IDENTIFIER&&(t.id=z,u()),"{"!=z)throw _("Angle bracket { expected");if(u(),f(t),"}"!=z)throw _("Angle bracket } expected");if(u(),""!==z)throw _("End of file expected");return u(),delete t.node,delete t.edge,delete t.graph,t}function f(t){for(;""!==z&&"}"!=z;)m(t),";"===z&&u()}function m(t){var e=v(t);if(e)return void b(t,e);var i=g(t);if(!i){if(L!=T.IDENTIFIER)throw _("Identifier expected");var o=z;if(u(),"="===z){if(u(),L!=T.IDENTIFIER)throw _("Identifier expected");t[o]=z,u()}else y(t,o)}}function v(t){var e=null;if("subgraph"===z&&(e={},e.type="subgraph", -u(),L===T.IDENTIFIER&&(e.id=z,u())),"{"===z){if(u(),e||(e={}),e.parent=t,e.node=t.node,e.edge=t.edge,e.graph=t.graph,f(e),"}"!=z)throw _("Angle bracket } expected");u(),delete e.node,delete e.edge,delete e.graph,delete e.parent,t.subgraphs||(t.subgraphs=[]),t.subgraphs.push(e)}return e}function g(t){return"node"===z?(u(),t.node=w(),"node"):"edge"===z?(u(),t.edge=w(),"edge"):"graph"===z?(u(),t.graph=w(),"graph"):null}function y(t,e){var i={id:e},o=w();o&&(i.attr=o),d(t,i),b(t,e)}function b(t,e){for(;"->"===z||"--"===z;){var i,o=z;u();var n=v(t);if(n)i=n;else{if(L!=T.IDENTIFIER)throw _("Identifier or subgraph expected");i=z,d(t,{id:i}),u()}var s=w(),r=c(t,e,i,o,s);l(t,r),e=i}}function w(){for(var t=null;"["===z;){for(u(),t={};""!==z&&"]"!=z;){if(L!=T.IDENTIFIER)throw _("Attribute name expected");var e=z;if(u(),"="!=z)throw _("Equal sign = expected");if(u(),L!=T.IDENTIFIER)throw _("Attribute value expected");var i=z;h(t,e,i),u(),","==z&&u()}if("]"!=z)throw _("Bracket ] expected");u()}return t}function _(t){return new SyntaxError(t+', got "'+x(z,30)+'" (char '+I+")")}function x(t,e){return t.length<=e?t:t.substr(0,27)+"..."}function k(t,e,i){Array.isArray(t)?t.forEach(function(t){Array.isArray(e)?e.forEach(function(e){i(t,e)}):i(t,e)}):Array.isArray(e)?e.forEach(function(e){i(t,e)}):i(t,e)}function O(t,e,i){for(var o=e.split("."),n=o.pop(),s=t,r=0;r":!0,"--":!0},P="",I=0,N="",z="",L=T.NULL,R=/[a-zA-Z_0-9.:#]/;e.parseDOT=i,e.DOTToGraph=D},function(t,e){function i(t,e){var i=[],o=[],n={edges:{inheritColor:!1},nodes:{fixed:!1,parseColor:!1}};void 0!==e&&(void 0!==e.fixed&&(n.nodes.fixed=e.fixed),void 0!==e.parseColor&&(n.nodes.parseColor=e.parseColor),void 0!==e.inheritColor&&(n.edges.inheritColor=e.inheritColor));for(var s=t.edges,r=t.nodes,a=0;ai;i++)if(t[i]!=e[i])return!1;return!0},e.convert=function(t,i){var o;if(void 0!==t){if(null===t)return null;if(!i)return t;if("string"!=typeof i&&!(i instanceof String))throw new Error("Type must be a string");switch(i){case"boolean":case"Boolean":return Boolean(t);case"number":case"Number":return Number(t.valueOf());case"string":case"String":return String(t);case"Date":if(e.isNumber(t))return new Date(t);if(t instanceof Date)return new Date(t.valueOf());if(n.isMoment(t))return new Date(t.valueOf());if(e.isString(t))return o=r.exec(t),o?new Date(Number(o[1])):n(t).toDate();throw new Error("Cannot convert object of type "+e.getType(t)+" to type Date");case"Moment":if(e.isNumber(t))return n(t);if(t instanceof Date)return n(t.valueOf());if(n.isMoment(t))return n(t);if(e.isString(t))return o=r.exec(t),n(o?Number(o[1]):t);throw new Error("Cannot convert object of type "+e.getType(t)+" to type Date");case"ISODate":if(e.isNumber(t))return new Date(t);if(t instanceof Date)return t.toISOString();if(n.isMoment(t))return t.toDate().toISOString();if(e.isString(t))return o=r.exec(t),o?new Date(Number(o[1])).toISOString():new Date(t).toISOString();throw new Error("Cannot convert object of type "+e.getType(t)+" to type ISODate");case"ASPDate":if(e.isNumber(t))return"/Date("+t+")/";if(t instanceof Date)return"/Date("+t.valueOf()+")/";if(e.isString(t)){o=r.exec(t);var s;return s=o?new Date(Number(o[1])).valueOf():new Date(t).valueOf(),"/Date("+s+")/"}throw new Error("Cannot convert object of type "+e.getType(t)+" to type ASPDate");default:throw new Error('Unknown type "'+i+'"')}}};var r=/^\/?Date\((\-?\d+)/i;e.getType=function(t){var e="undefined"==typeof t?"undefined":o(t);return"object"==e?null===t?"null":t instanceof Boolean?"Boolean":t instanceof Number?"Number":t instanceof String?"String":Array.isArray(t)?"Array":t instanceof Date?"Date":"Object":"number"==e?"Number":"boolean"==e?"Boolean":"string"==e?"String":void 0===e?"undefined":e},e.copyAndExtendArray=function(t,e){for(var i=[],o=0;oi;i++)e(t[i],i,t);else for(i in t)t.hasOwnProperty(i)&&e(t[i],i,t)},e.toArray=function(t){var e=[];for(var i in t)t.hasOwnProperty(i)&&e.push(t[i]);return e},e.updateProperty=function(t,e,i){return t[e]!==i?(t[e]=i,!0):!1},e.throttle=function(t,e){var i=null,o=!1;return function n(){i?o=!0:(o=!1,t(),i=setTimeout(function(){i=null,o&&n()},e))}},e.addEventListener=function(t,e,i,o){t.addEventListener?(void 0===o&&(o=!1),"mousewheel"===e&&navigator.userAgent.indexOf("Firefox")>=0&&(e="DOMMouseScroll"),t.addEventListener(e,i,o)):t.attachEvent("on"+e,i)},e.removeEventListener=function(t,e,i,o){t.removeEventListener?(void 0===o&&(o=!1),"mousewheel"===e&&navigator.userAgent.indexOf("Firefox")>=0&&(e="DOMMouseScroll"),t.removeEventListener(e,i,o)):t.detachEvent("on"+e,i)},e.preventDefault=function(t){t||(t=window.event),t.preventDefault?t.preventDefault():t.returnValue=!1},e.getTarget=function(t){t||(t=window.event);var e;return t.target?e=t.target:t.srcElement&&(e=t.srcElement),void 0!=e.nodeType&&3==e.nodeType&&(e=e.parentNode),e},e.hasParent=function(t,e){for(var i=t;i;){if(i===e)return!0;i=i.parentNode}return!1},e.option={},e.option.asBoolean=function(t,e){return"function"==typeof t&&(t=t()),null!=t?0!=t:e||null},e.option.asNumber=function(t,e){return"function"==typeof t&&(t=t()),null!=t?Number(t)||e||null:e||null},e.option.asString=function(t,e){return"function"==typeof t&&(t=t()),null!=t?String(t):e||null},e.option.asSize=function(t,i){return"function"==typeof t&&(t=t()),e.isString(t)?t:e.isNumber(t)?t+"px":i||null},e.option.asElement=function(t,e){return"function"==typeof t&&(t=t()),t||e||null},e.hexToRGB=function(t){var e=/^#?([a-f\d])([a-f\d])([a-f\d])$/i;t=t.replace(e,function(t,e,i,o){return e+e+i+i+o+o});var i=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(t);return i?{r:parseInt(i[1],16),g:parseInt(i[2],16),b:parseInt(i[3],16)}:null},e.overrideOpacity=function(t,i){if(-1!=t.indexOf("rgba"))return t;if(-1!=t.indexOf("rgb")){var o=t.substr(t.indexOf("(")+1).replace(")","").split(",");return"rgba("+o[0]+","+o[1]+","+o[2]+","+i+")"}var o=e.hexToRGB(t);return null==o?t:"rgba("+o.r+","+o.g+","+o.b+","+i+")"},e.RGBToHex=function(t,e,i){return"#"+((1<<24)+(t<<16)+(e<<8)+i).toString(16).slice(1)},e.parseColor=function(t){var i;if(e.isString(t)===!0){if(e.isValidRGB(t)===!0){var o=t.substr(4).substr(0,t.length-5).split(",").map(function(t){return parseInt(t)});t=e.RGBToHex(o[0],o[1],o[2])}if(e.isValidHex(t)===!0){var n=e.hexToHSV(t),s={h:n.h,s:.8*n.s,v:Math.min(1,1.02*n.v)},r={h:n.h,s:Math.min(1,1.25*n.s),v:.8*n.v},a=e.HSVToHex(r.h,r.s,r.v),h=e.HSVToHex(s.h,s.s,s.v);i={background:t,border:a,highlight:{background:h,border:a},hover:{background:h,border:a}}}else i={background:t,border:t,highlight:{background:t,border:t},hover:{background:t,border:t}}}else i={},i.background=t.background||void 0,i.border=t.border||void 0,e.isString(t.highlight)?i.highlight={border:t.highlight,background:t.highlight}:(i.highlight={},i.highlight.background=t.highlight&&t.highlight.background||void 0,i.highlight.border=t.highlight&&t.highlight.border||void 0),e.isString(t.hover)?i.hover={border:t.hover,background:t.hover}:(i.hover={},i.hover.background=t.hover&&t.hover.background||void 0,i.hover.border=t.hover&&t.hover.border||void 0);return i},e.RGBToHSV=function(t,e,i){t/=255,e/=255,i/=255;var o=Math.min(t,Math.min(e,i)),n=Math.max(t,Math.max(e,i));if(o==n)return{h:0,s:0,v:o};var s=t==o?e-i:i==o?t-e:i-t,r=t==o?3:i==o?1:5,a=60*(r-s/(n-o))/360,h=(n-o)/n,d=n;return{h:a,s:h,v:d}};var a={split:function(t){var e={};return t.split(";").forEach(function(t){if(""!=t.trim()){var i=t.split(":"),o=i[0].trim(),n=i[1].trim();e[o]=n}}),e},join:function(t){return Object.keys(t).map(function(e){return e+": "+t[e]}).join("; ")}};e.addCssText=function(t,i){var o=a.split(t.style.cssText),n=a.split(i),s=e.extend(o,n);t.style.cssText=a.join(s)},e.removeCssText=function(t,e){var i=a.split(t.style.cssText),o=a.split(e);for(var n in o)o.hasOwnProperty(n)&&delete i[n];t.style.cssText=a.join(i)},e.HSVToRGB=function(t,e,i){var o,n,s,r=Math.floor(6*t),a=6*t-r,h=i*(1-e),d=i*(1-a*e),l=i*(1-(1-a)*e);switch(r%6){case 0:o=i,n=l,s=h;break;case 1:o=d,n=i,s=h;break;case 2:o=h,n=i,s=l;break;case 3:o=h,n=d,s=i;break;case 4:o=l,n=h,s=i;break;case 5:o=i,n=h,s=d}return{r:Math.floor(255*o),g:Math.floor(255*n),b:Math.floor(255*s)}},e.HSVToHex=function(t,i,o){var n=e.HSVToRGB(t,i,o);return e.RGBToHex(n.r,n.g,n.b)},e.hexToHSV=function(t){var i=e.hexToRGB(t);return e.RGBToHSV(i.r,i.g,i.b)},e.isValidHex=function(t){var e=/(^#[0-9A-F]{6}$)|(^#[0-9A-F]{3}$)/i.test(t);return e},e.isValidRGB=function(t){t=t.replace(" ","");var e=/rgb\((\d{1,3}),(\d{1,3}),(\d{1,3})\)/i.test(t);return e},e.isValidRGBA=function(t){t=t.replace(" ","");var e=/rgba\((\d{1,3}),(\d{1,3}),(\d{1,3}),(.{1,3})\)/i.test(t);return e},e.selectiveBridgeObject=function(t,i){if("object"==("undefined"==typeof i?"undefined":o(i))){for(var n=Object.create(i),s=0;s0&&e(o,t[n-1])<0;n--)t[n]=t[n-1];t[n]=o}return t},e.mergeOptions=function(t,e,i){var o=(arguments.length<=3||void 0===arguments[3]?!1:arguments[3],arguments.length<=4||void 0===arguments[4]?{}:arguments[4]);if(null===e[i])t[i]=Object.create(o[i]);else if(void 0!==e[i])if("boolean"==typeof e[i])t[i].enabled=e[i];else{void 0===e[i].enabled&&(t[i].enabled=!0);for(var n in e[i])e[i].hasOwnProperty(n)&&(t[i][n]=e[i][n])}},e.binarySearchCustom=function(t,e,i,o){for(var n=1e4,s=0,r=0,a=t.length-1;a>=r&&n>s;){var h=Math.floor((r+a)/2),d=t[h],l=void 0===o?d[i]:d[i][o],c=e(l);if(0==c)return h;-1==c?r=h+1:a=h-1,s++}return-1},e.binarySearchValue=function(t,e,i,o,n){for(var s,r,a,h,d=1e4,l=0,c=0,u=t.length-1,n=void 0!=n?n:function(t,e){return t==e?0:e>t?-1:1};u>=c&&d>l;){if(h=Math.floor(.5*(u+c)),s=t[Math.max(0,h-1)][i],r=t[h][i],a=t[Math.min(t.length-1,h+1)][i],0==n(r,e))return h;if(n(s,e)<0&&n(r,e)>0)return"before"==o?Math.max(0,h-1):h;if(n(r,e)<0&&n(a,e)>0)return"before"==o?h:Math.min(t.length-1,h+1);n(r,e)<0?c=h+1:u=h-1,l++}return-1},e.easingFunctions={linear:function(t){return t},easeInQuad:function(t){return t*t},easeOutQuad:function(t){return t*(2-t)},easeInOutQuad:function(t){return.5>t?2*t*t:-1+(4-2*t)*t},easeInCubic:function(t){return t*t*t},easeOutCubic:function(t){return--t*t*t+1},easeInOutCubic:function(t){return.5>t?4*t*t*t:(t-1)*(2*t-2)*(2*t-2)+1},easeInQuart:function(t){return t*t*t*t},easeOutQuart:function(t){return 1- --t*t*t*t},easeInOutQuart:function(t){return.5>t?8*t*t*t*t:1-8*--t*t*t*t},easeInQuint:function(t){return t*t*t*t*t},easeOutQuint:function(t){return 1+--t*t*t*t*t},easeInOutQuint:function(t){return.5>t?16*t*t*t*t*t:1+16*--t*t*t*t*t}}},function(t,e,i){t.exports="undefined"!=typeof window&&window.moment||i(3)},function(t,e,i){(function(t){!function(e,i){t.exports=i()}(this,function(){function e(){return Qi.apply(null,arguments)}function i(t){Qi=t}function o(t){return t instanceof Array||"[object Array]"===Object.prototype.toString.call(t)}function n(t){return t instanceof Date||"[object Date]"===Object.prototype.toString.call(t)}function s(t,e){var i,o=[];for(i=0;i0)for(i in $i)o=$i[i],n=e[o],p(n)||(t[o]=n);return t}function m(t){f(this,t),this._d=new Date(null!=t._d?t._d.getTime():NaN),to===!1&&(to=!0,e.updateOffset(this),to=!1)}function v(t){return t instanceof m||null!=t&&null!=t._isAMomentObject}function g(t){return 0>t?Math.ceil(t):Math.floor(t)}function y(t){var e=+t,i=0;return 0!==e&&isFinite(e)&&(i=g(e)),i}function b(t,e,i){var o,n=Math.min(t.length,e.length),s=Math.abs(t.length-e.length),r=0;for(o=0;n>o;o++)(i&&t[o]!==e[o]||!i&&y(t[o])!==y(e[o]))&&r++;return r+s}function w(t){e.suppressDeprecationWarnings===!1&&"undefined"!=typeof console&&console.warn&&console.warn("Deprecation warning: "+t)}function _(t,e){var i=!0;return a(function(){return i&&(w(t+"\nArguments: "+Array.prototype.slice.call(arguments).join(", ")+"\n"+(new Error).stack),i=!1),e.apply(this,arguments)},e)}function x(t,e){eo[t]||(w(e),eo[t]=!0)}function k(t){return t instanceof Function||"[object Function]"===Object.prototype.toString.call(t)}function O(t){return"[object Object]"===Object.prototype.toString.call(t)}function M(t){var e,i;for(i in t)e=t[i],k(e)?this[i]=e:this["_"+i]=e;this._config=t,this._ordinalParseLenient=new RegExp(this._ordinalParse.source+"|"+/\d{1,2}/.source)}function D(t,e){var i,o=a({},t);for(i in e)r(e,i)&&(O(t[i])&&O(e[i])?(o[i]={},a(o[i],t[i]),a(o[i],e[i])):null!=e[i]?o[i]=e[i]:delete o[i]);return o}function S(t){null!=t&&this.set(t)}function C(t){return t?t.toLowerCase().replace("_","-"):t}function T(t){for(var e,i,o,n,s=0;s0;){if(o=E(n.slice(0,e).join("-")))return o;if(i&&i.length>=e&&b(n,i,!0)>=e-1)break;e--}s++}return null}function E(e){var i=null;if(!oo[e]&&"undefined"!=typeof t&&t&&t.exports)try{i=io._abbr,!function(){var t=new Error('Cannot find module "./locale"');throw t.code="MODULE_NOT_FOUND",t}(),P(i)}catch(o){}return oo[e]}function P(t,e){var i;return t&&(i=p(e)?z(t):I(t,e),i&&(io=i)),io._abbr}function I(t,e){return null!==e?(e.abbr=t,null!=oo[t]?(x("defineLocaleOverride","use moment.updateLocale(localeName, config) to change an existing locale. moment.defineLocale(localeName, config) should only be used for creating a new locale"),e=D(oo[t]._config,e)):null!=e.parentLocale&&(null!=oo[e.parentLocale]?e=D(oo[e.parentLocale]._config,e):x("parentLocaleUndefined","specified parentLocale is not defined yet")),oo[t]=new S(e),P(t),oo[t]):(delete oo[t],null)}function N(t,e){if(null!=e){var i;null!=oo[t]&&(e=D(oo[t]._config,e)),i=new S(e),i.parentLocale=oo[t],oo[t]=i,P(t)}else null!=oo[t]&&(null!=oo[t].parentLocale?oo[t]=oo[t].parentLocale:null!=oo[t]&&delete oo[t]);return oo[t]}function z(t){var e;if(t&&t._locale&&t._locale._abbr&&(t=t._locale._abbr),!t)return io;if(!o(t)){if(e=E(t))return e;t=[t]}return T(t)}function L(){return Object.keys(oo)}function R(t,e){var i=t.toLowerCase();no[i]=no[i+"s"]=no[e]=t}function A(t){return"string"==typeof t?no[t]||no[t.toLowerCase()]:void 0}function B(t){var e,i,o={};for(i in t)r(t,i)&&(e=A(i),e&&(o[e]=t[i]));return o}function F(t,i){return function(o){return null!=o?(H(this,t,o),e.updateOffset(this,i),this):j(this,t)}}function j(t,e){return t.isValid()?t._d["get"+(t._isUTC?"UTC":"")+e]():NaN}function H(t,e,i){t.isValid()&&t._d["set"+(t._isUTC?"UTC":"")+e](i)}function W(t,e){var i;if("object"==typeof t)for(i in t)this.set(i,t[i]);else if(t=A(t),k(this[t]))return this[t](e);return this}function Y(t,e,i){var o=""+Math.abs(t),n=e-o.length,s=t>=0;return(s?i?"+":"":"-")+Math.pow(10,Math.max(0,n)).toString().substr(1)+o}function G(t,e,i,o){var n=o;"string"==typeof o&&(n=function(){return this[o]()}),t&&(ho[t]=n),e&&(ho[e[0]]=function(){return Y(n.apply(this,arguments),e[1],e[2])}),i&&(ho[i]=function(){return this.localeData().ordinal(n.apply(this,arguments),t)})}function V(t){return t.match(/\[[\s\S]/)?t.replace(/^\[|\]$/g,""):t.replace(/\\/g,"")}function U(t){var e,i,o=t.match(so);for(e=0,i=o.length;i>e;e++)ho[o[e]]?o[e]=ho[o[e]]:o[e]=V(o[e]);return function(n){var s="";for(e=0;i>e;e++)s+=o[e]instanceof Function?o[e].call(n,t):o[e];return s}}function q(t,e){return t.isValid()?(e=X(e,t.localeData()),ao[e]=ao[e]||U(e),ao[e](t)):t.localeData().invalidDate()}function X(t,e){function i(t){return e.longDateFormat(t)||t}var o=5;for(ro.lastIndex=0;o>=0&&ro.test(t);)t=t.replace(ro,i),ro.lastIndex=0,o-=1;return t}function Z(t,e,i){So[t]=k(e)?e:function(t,o){return t&&i?i:e}}function K(t,e){return r(So,t)?So[t](e._strict,e._locale):new RegExp(J(t))}function J(t){return Q(t.replace("\\","").replace(/\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g,function(t,e,i,o,n){return e||i||o||n}))}function Q(t){return t.replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&")}function $(t,e){var i,o=e;for("string"==typeof t&&(t=[t]),"number"==typeof e&&(o=function(t,i){i[e]=y(t)}),i=0;io;o++){if(n=h([2e3,o]),i&&!this._longMonthsParse[o]&&(this._longMonthsParse[o]=new RegExp("^"+this.months(n,"").replace(".","")+"$","i"),this._shortMonthsParse[o]=new RegExp("^"+this.monthsShort(n,"").replace(".","")+"$","i")),i||this._monthsParse[o]||(s="^"+this.months(n,"")+"|^"+this.monthsShort(n,""),this._monthsParse[o]=new RegExp(s.replace(".",""),"i")),i&&"MMMM"===e&&this._longMonthsParse[o].test(t))return o;if(i&&"MMM"===e&&this._shortMonthsParse[o].test(t))return o;if(!i&&this._monthsParse[o].test(t))return o}}function rt(t,e){var i;if(!t.isValid())return t;if("string"==typeof e)if(/^\d+$/.test(e))e=y(e);else if(e=t.localeData().monthsParse(e),"number"!=typeof e)return t;return i=Math.min(t.date(),it(t.year(),e)),t._d["set"+(t._isUTC?"UTC":"")+"Month"](e,i),t}function at(t){return null!=t?(rt(this,t),e.updateOffset(this,!0),this):j(this,"Month")}function ht(){return it(this.year(),this.month())}function dt(t){return this._monthsParseExact?(r(this,"_monthsRegex")||ct.call(this),t?this._monthsShortStrictRegex:this._monthsShortRegex):this._monthsShortStrictRegex&&t?this._monthsShortStrictRegex:this._monthsShortRegex}function lt(t){return this._monthsParseExact?(r(this,"_monthsRegex")||ct.call(this),t?this._monthsStrictRegex:this._monthsRegex):this._monthsStrictRegex&&t?this._monthsStrictRegex:this._monthsRegex}function ct(){function t(t,e){return e.length-t.length}var e,i,o=[],n=[],s=[];for(e=0;12>e;e++)i=h([2e3,e]),o.push(this.monthsShort(i,"")),n.push(this.months(i,"")),s.push(this.months(i,"")),s.push(this.monthsShort(i,""));for(o.sort(t),n.sort(t),s.sort(t),e=0;12>e;e++)o[e]=Q(o[e]),n[e]=Q(n[e]),s[e]=Q(s[e]);this._monthsRegex=new RegExp("^("+s.join("|")+")","i"),this._monthsShortRegex=this._monthsRegex,this._monthsStrictRegex=new RegExp("^("+n.join("|")+")$","i"),this._monthsShortStrictRegex=new RegExp("^("+o.join("|")+")$","i")}function ut(t){var e,i=t._a;return i&&-2===l(t).overflow&&(e=i[Eo]<0||i[Eo]>11?Eo:i[Po]<1||i[Po]>it(i[To],i[Eo])?Po:i[Io]<0||i[Io]>24||24===i[Io]&&(0!==i[No]||0!==i[zo]||0!==i[Lo])?Io:i[No]<0||i[No]>59?No:i[zo]<0||i[zo]>59?zo:i[Lo]<0||i[Lo]>999?Lo:-1,l(t)._overflowDayOfYear&&(To>e||e>Po)&&(e=Po),l(t)._overflowWeeks&&-1===e&&(e=Ro),l(t)._overflowWeekday&&-1===e&&(e=Ao),l(t).overflow=e),t}function pt(t){var e,i,o,n,s,r,a=t._i,h=Yo.exec(a)||Go.exec(a);if(h){for(l(t).iso=!0,e=0,i=Uo.length;i>e;e++)if(Uo[e][1].exec(h[1])){n=Uo[e][0],o=Uo[e][2]!==!1;break}if(null==n)return void(t._isValid=!1);if(h[3]){for(e=0,i=qo.length;i>e;e++)if(qo[e][1].exec(h[3])){s=(h[2]||" ")+qo[e][0];break}if(null==s)return void(t._isValid=!1)}if(!o&&null!=s)return void(t._isValid=!1);if(h[4]){if(!Vo.exec(h[4]))return void(t._isValid=!1);r="Z"}t._f=n+(s||"")+(r||""),Ct(t)}else t._isValid=!1}function ft(t){var i=Xo.exec(t._i);return null!==i?void(t._d=new Date(+i[1])):(pt(t),void(t._isValid===!1&&(delete t._isValid,e.createFromInputFallback(t))))}function mt(t,e,i,o,n,s,r){var a=new Date(t,e,i,o,n,s,r);return 100>t&&t>=0&&isFinite(a.getFullYear())&&a.setFullYear(t),a}function vt(t){var e=new Date(Date.UTC.apply(null,arguments));return 100>t&&t>=0&&isFinite(e.getUTCFullYear())&&e.setUTCFullYear(t),e}function gt(t){return yt(t)?366:365}function yt(t){return t%4===0&&t%100!==0||t%400===0}function bt(){return yt(this.year())}function wt(t,e,i){var o=7+e-i,n=(7+vt(t,0,o).getUTCDay()-e)%7;return-n+o-1}function _t(t,e,i,o,n){var s,r,a=(7+i-o)%7,h=wt(t,o,n),d=1+7*(e-1)+a+h;return 0>=d?(s=t-1,r=gt(s)+d):d>gt(t)?(s=t+1,r=d-gt(t)):(s=t,r=d),{year:s,dayOfYear:r}}function xt(t,e,i){var o,n,s=wt(t.year(),e,i),r=Math.floor((t.dayOfYear()-s-1)/7)+1;return 1>r?(n=t.year()-1,o=r+kt(n,e,i)):r>kt(t.year(),e,i)?(o=r-kt(t.year(),e,i),n=t.year()+1):(n=t.year(),o=r),{week:o,year:n}}function kt(t,e,i){var o=wt(t,e,i),n=wt(t+1,e,i);return(gt(t)-o+n)/7}function Ot(t,e,i){return null!=t?t:null!=e?e:i}function Mt(t){var i=new Date(e.now());return t._useUTC?[i.getUTCFullYear(),i.getUTCMonth(),i.getUTCDate()]:[i.getFullYear(),i.getMonth(),i.getDate()]}function Dt(t){var e,i,o,n,s=[];if(!t._d){for(o=Mt(t),t._w&&null==t._a[Po]&&null==t._a[Eo]&&St(t),t._dayOfYear&&(n=Ot(t._a[To],o[To]),t._dayOfYear>gt(n)&&(l(t)._overflowDayOfYear=!0),i=vt(n,0,t._dayOfYear),t._a[Eo]=i.getUTCMonth(),t._a[Po]=i.getUTCDate()),e=0;3>e&&null==t._a[e];++e)t._a[e]=s[e]=o[e];for(;7>e;e++)t._a[e]=s[e]=null==t._a[e]?2===e?1:0:t._a[e];24===t._a[Io]&&0===t._a[No]&&0===t._a[zo]&&0===t._a[Lo]&&(t._nextDay=!0,t._a[Io]=0),t._d=(t._useUTC?vt:mt).apply(null,s),null!=t._tzm&&t._d.setUTCMinutes(t._d.getUTCMinutes()-t._tzm),t._nextDay&&(t._a[Io]=24)}}function St(t){var e,i,o,n,s,r,a,h;e=t._w,null!=e.GG||null!=e.W||null!=e.E?(s=1,r=4,i=Ot(e.GG,t._a[To],xt(Rt(),1,4).year),o=Ot(e.W,1),n=Ot(e.E,1),(1>n||n>7)&&(h=!0)):(s=t._locale._week.dow,r=t._locale._week.doy,i=Ot(e.gg,t._a[To],xt(Rt(),s,r).year),o=Ot(e.w,1),null!=e.d?(n=e.d,(0>n||n>6)&&(h=!0)):null!=e.e?(n=e.e+s,(e.e<0||e.e>6)&&(h=!0)):n=s),1>o||o>kt(i,s,r)?l(t)._overflowWeeks=!0:null!=h?l(t)._overflowWeekday=!0:(a=_t(i,o,n,s,r),t._a[To]=a.year,t._dayOfYear=a.dayOfYear)}function Ct(t){if(t._f===e.ISO_8601)return void pt(t);t._a=[],l(t).empty=!0;var i,o,n,s,r,a=""+t._i,h=a.length,d=0;for(n=X(t._f,t._locale).match(so)||[],i=0;i0&&l(t).unusedInput.push(r),a=a.slice(a.indexOf(o)+o.length),d+=o.length),ho[s]?(o?l(t).empty=!1:l(t).unusedTokens.push(s),et(s,o,t)):t._strict&&!o&&l(t).unusedTokens.push(s);l(t).charsLeftOver=h-d,a.length>0&&l(t).unusedInput.push(a),l(t).bigHour===!0&&t._a[Io]<=12&&t._a[Io]>0&&(l(t).bigHour=void 0),t._a[Io]=Tt(t._locale,t._a[Io],t._meridiem),Dt(t),ut(t)}function Tt(t,e,i){var o;return null==i?e:null!=t.meridiemHour?t.meridiemHour(e,i):null!=t.isPM?(o=t.isPM(i),o&&12>e&&(e+=12),o||12!==e||(e=0),e):e}function Et(t){var e,i,o,n,s;if(0===t._f.length)return l(t).invalidFormat=!0,void(t._d=new Date(NaN));for(n=0;ns)&&(o=s,i=e));a(t,i||e)}function Pt(t){if(!t._d){var e=B(t._i);t._a=s([e.year,e.month,e.day||e.date,e.hour,e.minute,e.second,e.millisecond],function(t){return t&&parseInt(t,10)}),Dt(t)}}function It(t){var e=new m(ut(Nt(t)));return e._nextDay&&(e.add(1,"d"),e._nextDay=void 0),e}function Nt(t){var e=t._i,i=t._f;return t._locale=t._locale||z(t._l),null===e||void 0===i&&""===e?u({nullInput:!0}):("string"==typeof e&&(t._i=e=t._locale.preparse(e)),v(e)?new m(ut(e)):(o(i)?Et(t):i?Ct(t):n(e)?t._d=e:zt(t),c(t)||(t._d=null),t))}function zt(t){var i=t._i;void 0===i?t._d=new Date(e.now()):n(i)?t._d=new Date(+i):"string"==typeof i?ft(t):o(i)?(t._a=s(i.slice(0),function(t){return parseInt(t,10)}),Dt(t)):"object"==typeof i?Pt(t):"number"==typeof i?t._d=new Date(i):e.createFromInputFallback(t)}function Lt(t,e,i,o,n){var s={};return"boolean"==typeof i&&(o=i,i=void 0),s._isAMomentObject=!0,s._useUTC=s._isUTC=n,s._l=i,s._i=t,s._f=e,s._strict=o,It(s)}function Rt(t,e,i,o){return Lt(t,e,i,o,!1)}function At(t,e){var i,n;if(1===e.length&&o(e[0])&&(e=e[0]),!e.length)return Rt();for(i=e[0],n=1;nt&&(t=-t,i="-"),i+Y(~~(t/60),2)+e+Y(~~t%60,2)})}function Yt(t,e){var i=(e||"").match(t)||[],o=i[i.length-1]||[],n=(o+"").match($o)||["-",0,0],s=+(60*n[1])+y(n[2]);return"+"===n[0]?s:-s}function Gt(t,i){var o,s;return i._isUTC?(o=i.clone(),s=(v(t)||n(t)?+t:+Rt(t))-+o,o._d.setTime(+o._d+s),e.updateOffset(o,!1),o):Rt(t).local()}function Vt(t){return 15*-Math.round(t._d.getTimezoneOffset()/15)}function Ut(t,i){var o,n=this._offset||0;return this.isValid()?null!=t?("string"==typeof t?t=Yt(Oo,t):Math.abs(t)<16&&(t=60*t),!this._isUTC&&i&&(o=Vt(this)),this._offset=t,this._isUTC=!0,null!=o&&this.add(o,"m"),n!==t&&(!i||this._changeInProgress?de(this,oe(t-n,"m"),1,!1):this._changeInProgress||(this._changeInProgress=!0,e.updateOffset(this,!0),this._changeInProgress=null)),this):this._isUTC?n:Vt(this):null!=t?this:NaN}function qt(t,e){return null!=t?("string"!=typeof t&&(t=-t),this.utcOffset(t,e),this):-this.utcOffset()}function Xt(t){return this.utcOffset(0,t)}function Zt(t){return this._isUTC&&(this.utcOffset(0,t),this._isUTC=!1,t&&this.subtract(Vt(this),"m")),this}function Kt(){return this._tzm?this.utcOffset(this._tzm):"string"==typeof this._i&&this.utcOffset(Yt(ko,this._i)),this}function Jt(t){return this.isValid()?(t=t?Rt(t).utcOffset():0,(this.utcOffset()-t)%60===0):!1}function Qt(){return this.utcOffset()>this.clone().month(0).utcOffset()||this.utcOffset()>this.clone().month(5).utcOffset()}function $t(){if(!p(this._isDSTShifted))return this._isDSTShifted;var t={};if(f(t,this),t=Nt(t),t._a){var e=t._isUTC?h(t._a):Rt(t._a);this._isDSTShifted=this.isValid()&&b(t._a,e.toArray())>0}else this._isDSTShifted=!1;return this._isDSTShifted}function te(){return this.isValid()?!this._isUTC:!1}function ee(){return this.isValid()?this._isUTC:!1}function ie(){return this.isValid()?this._isUTC&&0===this._offset:!1}function oe(t,e){var i,o,n,s=t,a=null;return Ht(t)?s={ms:t._milliseconds,d:t._days,M:t._months}:"number"==typeof t?(s={},e?s[e]=t:s.milliseconds=t):(a=tn.exec(t))?(i="-"===a[1]?-1:1,s={y:0,d:y(a[Po])*i,h:y(a[Io])*i,m:y(a[No])*i,s:y(a[zo])*i,ms:y(a[Lo])*i}):(a=en.exec(t))?(i="-"===a[1]?-1:1,s={y:ne(a[2],i),M:ne(a[3],i),w:ne(a[4],i),d:ne(a[5],i),h:ne(a[6],i),m:ne(a[7],i),s:ne(a[8],i)}):null==s?s={}:"object"==typeof s&&("from"in s||"to"in s)&&(n=re(Rt(s.from),Rt(s.to)),s={},s.ms=n.milliseconds,s.M=n.months),o=new jt(s),Ht(t)&&r(t,"_locale")&&(o._locale=t._locale),o}function ne(t,e){var i=t&&parseFloat(t.replace(",","."));return(isNaN(i)?0:i)*e}function se(t,e){var i={milliseconds:0,months:0};return i.months=e.month()-t.month()+12*(e.year()-t.year()),t.clone().add(i.months,"M").isAfter(e)&&--i.months,i.milliseconds=+e-+t.clone().add(i.months,"M"),i}function re(t,e){var i;return t.isValid()&&e.isValid()?(e=Gt(e,t),t.isBefore(e)?i=se(t,e):(i=se(e,t),i.milliseconds=-i.milliseconds,i.months=-i.months),i):{milliseconds:0,months:0}}function ae(t){return 0>t?-1*Math.round(-1*t):Math.round(t)}function he(t,e){return function(i,o){var n,s;return null===o||isNaN(+o)||(x(e,"moment()."+e+"(period, number) is deprecated. Please use moment()."+e+"(number, period)."),s=i,i=o,o=s),i="string"==typeof i?+i:i,n=oe(i,o),de(this,n,t),this}}function de(t,i,o,n){var s=i._milliseconds,r=ae(i._days),a=ae(i._months);t.isValid()&&(n=null==n?!0:n,s&&t._d.setTime(+t._d+s*o),r&&H(t,"Date",j(t,"Date")+r*o),a&&rt(t,j(t,"Month")+a*o),n&&e.updateOffset(t,r||a))}function le(t,e){var i=t||Rt(),o=Gt(i,this).startOf("day"),n=this.diff(o,"days",!0),s=-6>n?"sameElse":-1>n?"lastWeek":0>n?"lastDay":1>n?"sameDay":2>n?"nextDay":7>n?"nextWeek":"sameElse",r=e&&(k(e[s])?e[s]():e[s]);return this.format(r||this.localeData().calendar(s,this,Rt(i))); +}function ce(){return new m(this)}function ue(t,e){var i=v(t)?t:Rt(t);return this.isValid()&&i.isValid()?(e=A(p(e)?"millisecond":e),"millisecond"===e?+this>+i:+i<+this.clone().startOf(e)):!1}function pe(t,e){var i=v(t)?t:Rt(t);return this.isValid()&&i.isValid()?(e=A(p(e)?"millisecond":e),"millisecond"===e?+i>+this:+this.clone().endOf(e)<+i):!1}function fe(t,e,i){return this.isAfter(t,i)&&this.isBefore(e,i)}function me(t,e){var i,o=v(t)?t:Rt(t);return this.isValid()&&o.isValid()?(e=A(e||"millisecond"),"millisecond"===e?+this===+o:(i=+o,+this.clone().startOf(e)<=i&&i<=+this.clone().endOf(e))):!1}function ve(t,e){return this.isSame(t,e)||this.isAfter(t,e)}function ge(t,e){return this.isSame(t,e)||this.isBefore(t,e)}function ye(t,e,i){var o,n,s,r;return this.isValid()?(o=Gt(t,this),o.isValid()?(n=6e4*(o.utcOffset()-this.utcOffset()),e=A(e),"year"===e||"month"===e||"quarter"===e?(r=be(this,o),"quarter"===e?r/=3:"year"===e&&(r/=12)):(s=this-o,r="second"===e?s/1e3:"minute"===e?s/6e4:"hour"===e?s/36e5:"day"===e?(s-n)/864e5:"week"===e?(s-n)/6048e5:s),i?r:g(r)):NaN):NaN}function be(t,e){var i,o,n=12*(e.year()-t.year())+(e.month()-t.month()),s=t.clone().add(n,"months");return 0>e-s?(i=t.clone().add(n-1,"months"),o=(e-s)/(s-i)):(i=t.clone().add(n+1,"months"),o=(e-s)/(i-s)),-(n+o)}function we(){return this.clone().locale("en").format("ddd MMM DD YYYY HH:mm:ss [GMT]ZZ")}function _e(){var t=this.clone().utc();return 0s&&(e=s),qe.call(this,t,e,i,o,n))}function qe(t,e,i,o,n){var s=_t(t,e,i,o,n),r=vt(s.year,0,s.dayOfYear);return this.year(r.getUTCFullYear()),this.month(r.getUTCMonth()),this.date(r.getUTCDate()),this}function Xe(t){return null==t?Math.ceil((this.month()+1)/3):this.month(3*(t-1)+this.month()%3)}function Ze(t){return xt(t,this._week.dow,this._week.doy).week}function Ke(){return this._week.dow}function Je(){return this._week.doy}function Qe(t){var e=this.localeData().week(this);return null==t?e:this.add(7*(t-e),"d")}function $e(t){var e=xt(this,1,4).week;return null==t?e:this.add(7*(t-e),"d")}function ti(t,e){return"string"!=typeof t?t:isNaN(t)?(t=e.weekdaysParse(t),"number"==typeof t?t:null):parseInt(t,10)}function ei(t,e){return o(this._weekdays)?this._weekdays[t.day()]:this._weekdays[this._weekdays.isFormat.test(e)?"format":"standalone"][t.day()]}function ii(t){return this._weekdaysShort[t.day()]}function oi(t){return this._weekdaysMin[t.day()]}function ni(t,e,i){var o,n,s;for(this._weekdaysParse||(this._weekdaysParse=[],this._minWeekdaysParse=[],this._shortWeekdaysParse=[],this._fullWeekdaysParse=[]),o=0;7>o;o++){if(n=Rt([2e3,1]).day(o),i&&!this._fullWeekdaysParse[o]&&(this._fullWeekdaysParse[o]=new RegExp("^"+this.weekdays(n,"").replace(".",".?")+"$","i"),this._shortWeekdaysParse[o]=new RegExp("^"+this.weekdaysShort(n,"").replace(".",".?")+"$","i"),this._minWeekdaysParse[o]=new RegExp("^"+this.weekdaysMin(n,"").replace(".",".?")+"$","i")),this._weekdaysParse[o]||(s="^"+this.weekdays(n,"")+"|^"+this.weekdaysShort(n,"")+"|^"+this.weekdaysMin(n,""),this._weekdaysParse[o]=new RegExp(s.replace(".",""),"i")),i&&"dddd"===e&&this._fullWeekdaysParse[o].test(t))return o;if(i&&"ddd"===e&&this._shortWeekdaysParse[o].test(t))return o;if(i&&"dd"===e&&this._minWeekdaysParse[o].test(t))return o;if(!i&&this._weekdaysParse[o].test(t))return o}}function si(t){if(!this.isValid())return null!=t?this:NaN;var e=this._isUTC?this._d.getUTCDay():this._d.getDay();return null!=t?(t=ti(t,this.localeData()),this.add(t-e,"d")):e}function ri(t){if(!this.isValid())return null!=t?this:NaN;var e=(this.day()+7-this.localeData()._week.dow)%7;return null==t?e:this.add(t-e,"d")}function ai(t){return this.isValid()?null==t?this.day()||7:this.day(this.day()%7?t:t-7):null!=t?this:NaN}function hi(t){var e=Math.round((this.clone().startOf("day")-this.clone().startOf("year"))/864e5)+1;return null==t?e:this.add(t-e,"d")}function di(){return this.hours()%12||12}function li(t,e){G(t,0,0,function(){return this.localeData().meridiem(this.hours(),this.minutes(),e)})}function ci(t,e){return e._meridiemParse}function ui(t){return"p"===(t+"").toLowerCase().charAt(0)}function pi(t,e,i){return t>11?i?"pm":"PM":i?"am":"AM"}function fi(t,e){e[Lo]=y(1e3*("0."+t))}function mi(){return this._isUTC?"UTC":""}function vi(){return this._isUTC?"Coordinated Universal Time":""}function gi(t){return Rt(1e3*t)}function yi(){return Rt.apply(null,arguments).parseZone()}function bi(t,e,i){var o=this._calendar[t];return k(o)?o.call(e,i):o}function wi(t){var e=this._longDateFormat[t],i=this._longDateFormat[t.toUpperCase()];return e||!i?e:(this._longDateFormat[t]=i.replace(/MMMM|MM|DD|dddd/g,function(t){return t.slice(1)}),this._longDateFormat[t])}function _i(){return this._invalidDate}function xi(t){return this._ordinal.replace("%d",t)}function ki(t){return t}function Oi(t,e,i,o){var n=this._relativeTime[i];return k(n)?n(t,e,i,o):n.replace(/%d/i,t)}function Mi(t,e){var i=this._relativeTime[t>0?"future":"past"];return k(i)?i(e):i.replace(/%s/i,e)}function Di(t,e,i,o){var n=z(),s=h().set(o,e);return n[i](s,t)}function Si(t,e,i,o,n){if("number"==typeof t&&(e=t,t=void 0),t=t||"",null!=e)return Di(t,e,i,n);var s,r=[];for(s=0;o>s;s++)r[s]=Di(t,s,i,n);return r}function Ci(t,e){return Si(t,e,"months",12,"month")}function Ti(t,e){return Si(t,e,"monthsShort",12,"month")}function Ei(t,e){return Si(t,e,"weekdays",7,"day")}function Pi(t,e){return Si(t,e,"weekdaysShort",7,"day")}function Ii(t,e){return Si(t,e,"weekdaysMin",7,"day")}function Ni(){var t=this._data;return this._milliseconds=Dn(this._milliseconds),this._days=Dn(this._days),this._months=Dn(this._months),t.milliseconds=Dn(t.milliseconds),t.seconds=Dn(t.seconds),t.minutes=Dn(t.minutes),t.hours=Dn(t.hours),t.months=Dn(t.months),t.years=Dn(t.years),this}function zi(t,e,i,o){var n=oe(e,i);return t._milliseconds+=o*n._milliseconds,t._days+=o*n._days,t._months+=o*n._months,t._bubble()}function Li(t,e){return zi(this,t,e,1)}function Ri(t,e){return zi(this,t,e,-1)}function Ai(t){return 0>t?Math.floor(t):Math.ceil(t)}function Bi(){var t,e,i,o,n,s=this._milliseconds,r=this._days,a=this._months,h=this._data;return s>=0&&r>=0&&a>=0||0>=s&&0>=r&&0>=a||(s+=864e5*Ai(ji(a)+r),r=0,a=0),h.milliseconds=s%1e3,t=g(s/1e3),h.seconds=t%60,e=g(t/60),h.minutes=e%60,i=g(e/60),h.hours=i%24,r+=g(i/24),n=g(Fi(r)),a+=n,r-=Ai(ji(n)),o=g(a/12),a%=12,h.days=r,h.months=a,h.years=o,this}function Fi(t){return 4800*t/146097}function ji(t){return 146097*t/4800}function Hi(t){var e,i,o=this._milliseconds;if(t=A(t),"month"===t||"year"===t)return e=this._days+o/864e5,i=this._months+Fi(e),"month"===t?i:i/12;switch(e=this._days+Math.round(ji(this._months)),t){case"week":return e/7+o/6048e5;case"day":return e+o/864e5;case"hour":return 24*e+o/36e5;case"minute":return 1440*e+o/6e4;case"second":return 86400*e+o/1e3;case"millisecond":return Math.floor(864e5*e)+o;default:throw new Error("Unknown unit "+t)}}function Wi(){return this._milliseconds+864e5*this._days+this._months%12*2592e6+31536e6*y(this._months/12)}function Yi(t){return function(){return this.as(t)}}function Gi(t){return t=A(t),this[t+"s"]()}function Vi(t){return function(){return this._data[t]}}function Ui(){return g(this.days()/7)}function qi(t,e,i,o,n){return n.relativeTime(e||1,!!i,t,o)}function Xi(t,e,i){var o=oe(t).abs(),n=Wn(o.as("s")),s=Wn(o.as("m")),r=Wn(o.as("h")),a=Wn(o.as("d")),h=Wn(o.as("M")),d=Wn(o.as("y")),l=n=s&&["m"]||s=r&&["h"]||r=a&&["d"]||a=h&&["M"]||h=d&&["y"]||["yy",d];return l[2]=e,l[3]=+t>0,l[4]=i,qi.apply(null,l)}function Zi(t,e){return void 0===Yn[t]?!1:void 0===e?Yn[t]:(Yn[t]=e,!0)}function Ki(t){var e=this.localeData(),i=Xi(this,!t,e);return t&&(i=e.pastFuture(+this,i)),e.postformat(i)}function Ji(){var t,e,i,o=Gn(this._milliseconds)/1e3,n=Gn(this._days),s=Gn(this._months);t=g(o/60),e=g(t/60),o%=60,t%=60,i=g(s/12),s%=12;var r=i,a=s,h=n,d=e,l=t,c=o,u=this.asSeconds();return u?(0>u?"-":"")+"P"+(r?r+"Y":"")+(a?a+"M":"")+(h?h+"D":"")+(d||l||c?"T":"")+(d?d+"H":"")+(l?l+"M":"")+(c?c+"S":""):"P0D"}var Qi,$i=e.momentProperties=[],to=!1,eo={};e.suppressDeprecationWarnings=!1;var io,oo={},no={},so=/(\[[^\[]*\])|(\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|YYYYYY|YYYYY|YYYY|YY|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g,ro=/(\[[^\[]*\])|(\\)?(LTS|LT|LL?L?L?|l{1,4})/g,ao={},ho={},lo=/\d/,co=/\d\d/,uo=/\d{3}/,po=/\d{4}/,fo=/[+-]?\d{6}/,mo=/\d\d?/,vo=/\d\d\d\d?/,go=/\d\d\d\d\d\d?/,yo=/\d{1,3}/,bo=/\d{1,4}/,wo=/[+-]?\d{1,6}/,_o=/\d+/,xo=/[+-]?\d+/,ko=/Z|[+-]\d\d:?\d\d/gi,Oo=/Z|[+-]\d\d(?::?\d\d)?/gi,Mo=/[+-]?\d+(\.\d{1,3})?/,Do=/[0-9]*['a-z\u00A0-\u05FF\u0700-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]+|[\u0600-\u06FF\/]+(\s*?[\u0600-\u06FF]+){1,2}/i,So={},Co={},To=0,Eo=1,Po=2,Io=3,No=4,zo=5,Lo=6,Ro=7,Ao=8;G("M",["MM",2],"Mo",function(){return this.month()+1}),G("MMM",0,0,function(t){return this.localeData().monthsShort(this,t)}),G("MMMM",0,0,function(t){return this.localeData().months(this,t)}),R("month","M"),Z("M",mo),Z("MM",mo,co),Z("MMM",function(t,e){return e.monthsShortRegex(t)}),Z("MMMM",function(t,e){return e.monthsRegex(t)}),$(["M","MM"],function(t,e){e[Eo]=y(t)-1}),$(["MMM","MMMM"],function(t,e,i,o){var n=i._locale.monthsParse(t,o,i._strict);null!=n?e[Eo]=n:l(i).invalidMonth=t});var Bo=/D[oD]?(\[[^\[\]]*\]|\s+)+MMMM?/,Fo="January_February_March_April_May_June_July_August_September_October_November_December".split("_"),jo="Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),Ho=Do,Wo=Do,Yo=/^\s*((?:[+-]\d{6}|\d{4})-(?:\d\d-\d\d|W\d\d-\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?::\d\d(?::\d\d(?:[.,]\d+)?)?)?)([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?/,Go=/^\s*((?:[+-]\d{6}|\d{4})(?:\d\d\d\d|W\d\d\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?:\d\d(?:\d\d(?:[.,]\d+)?)?)?)([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?/,Vo=/Z|[+-]\d\d(?::?\d\d)?/,Uo=[["YYYYYY-MM-DD",/[+-]\d{6}-\d\d-\d\d/],["YYYY-MM-DD",/\d{4}-\d\d-\d\d/],["GGGG-[W]WW-E",/\d{4}-W\d\d-\d/],["GGGG-[W]WW",/\d{4}-W\d\d/,!1],["YYYY-DDD",/\d{4}-\d{3}/],["YYYY-MM",/\d{4}-\d\d/,!1],["YYYYYYMMDD",/[+-]\d{10}/],["YYYYMMDD",/\d{8}/],["GGGG[W]WWE",/\d{4}W\d{3}/],["GGGG[W]WW",/\d{4}W\d{2}/,!1],["YYYYDDD",/\d{7}/]],qo=[["HH:mm:ss.SSSS",/\d\d:\d\d:\d\d\.\d+/],["HH:mm:ss,SSSS",/\d\d:\d\d:\d\d,\d+/],["HH:mm:ss",/\d\d:\d\d:\d\d/],["HH:mm",/\d\d:\d\d/],["HHmmss.SSSS",/\d\d\d\d\d\d\.\d+/],["HHmmss,SSSS",/\d\d\d\d\d\d,\d+/],["HHmmss",/\d\d\d\d\d\d/],["HHmm",/\d\d\d\d/],["HH",/\d\d/]],Xo=/^\/?Date\((\-?\d+)/i;e.createFromInputFallback=_("moment construction falls back to js Date. This is discouraged and will be removed in upcoming major release. Please refer to https://github.com/moment/moment/issues/1407 for more info.",function(t){t._d=new Date(t._i+(t._useUTC?" UTC":""))}),G("Y",0,0,function(){var t=this.year();return 9999>=t?""+t:"+"+t}),G(0,["YY",2],0,function(){return this.year()%100}),G(0,["YYYY",4],0,"year"),G(0,["YYYYY",5],0,"year"),G(0,["YYYYYY",6,!0],0,"year"),R("year","y"),Z("Y",xo),Z("YY",mo,co),Z("YYYY",bo,po),Z("YYYYY",wo,fo),Z("YYYYYY",wo,fo),$(["YYYYY","YYYYYY"],To),$("YYYY",function(t,i){i[To]=2===t.length?e.parseTwoDigitYear(t):y(t)}),$("YY",function(t,i){i[To]=e.parseTwoDigitYear(t)}),$("Y",function(t,e){e[To]=parseInt(t,10)}),e.parseTwoDigitYear=function(t){return y(t)+(y(t)>68?1900:2e3)};var Zo=F("FullYear",!1);e.ISO_8601=function(){};var Ko=_("moment().min is deprecated, use moment.max instead. https://github.com/moment/moment/issues/1548",function(){var t=Rt.apply(null,arguments);return this.isValid()&&t.isValid()?this>t?this:t:u()}),Jo=_("moment().max is deprecated, use moment.min instead. https://github.com/moment/moment/issues/1548",function(){var t=Rt.apply(null,arguments);return this.isValid()&&t.isValid()?t>this?this:t:u()}),Qo=function(){return Date.now?Date.now():+new Date};Wt("Z",":"),Wt("ZZ",""),Z("Z",Oo),Z("ZZ",Oo),$(["Z","ZZ"],function(t,e,i){i._useUTC=!0,i._tzm=Yt(Oo,t)});var $o=/([\+\-]|\d\d)/gi;e.updateOffset=function(){};var tn=/^(\-)?(?:(\d*)[. ])?(\d+)\:(\d+)(?:\:(\d+)\.?(\d{3})?\d*)?$/,en=/^(-)?P(?:([0-9,.]*)Y)?(?:([0-9,.]*)M)?(?:([0-9,.]*)W)?(?:([0-9,.]*)D)?(?:T(?:([0-9,.]*)H)?(?:([0-9,.]*)M)?(?:([0-9,.]*)S)?)?$/;oe.fn=jt.prototype;var on=he(1,"add"),nn=he(-1,"subtract");e.defaultFormat="YYYY-MM-DDTHH:mm:ssZ";var sn=_("moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.",function(t){return void 0===t?this.localeData():this.locale(t)});G(0,["gg",2],0,function(){return this.weekYear()%100}),G(0,["GG",2],0,function(){return this.isoWeekYear()%100}),He("gggg","weekYear"),He("ggggg","weekYear"),He("GGGG","isoWeekYear"),He("GGGGG","isoWeekYear"),R("weekYear","gg"),R("isoWeekYear","GG"),Z("G",xo),Z("g",xo),Z("GG",mo,co),Z("gg",mo,co),Z("GGGG",bo,po),Z("gggg",bo,po),Z("GGGGG",wo,fo),Z("ggggg",wo,fo),tt(["gggg","ggggg","GGGG","GGGGG"],function(t,e,i,o){e[o.substr(0,2)]=y(t)}),tt(["gg","GG"],function(t,i,o,n){i[n]=e.parseTwoDigitYear(t)}),G("Q",0,"Qo","quarter"),R("quarter","Q"),Z("Q",lo),$("Q",function(t,e){e[Eo]=3*(y(t)-1)}),G("w",["ww",2],"wo","week"),G("W",["WW",2],"Wo","isoWeek"),R("week","w"),R("isoWeek","W"),Z("w",mo),Z("ww",mo,co),Z("W",mo),Z("WW",mo,co),tt(["w","ww","W","WW"],function(t,e,i,o){e[o.substr(0,1)]=y(t)});var rn={dow:0,doy:6};G("D",["DD",2],"Do","date"),R("date","D"),Z("D",mo),Z("DD",mo,co),Z("Do",function(t,e){return t?e._ordinalParse:e._ordinalParseLenient}),$(["D","DD"],Po),$("Do",function(t,e){e[Po]=y(t.match(mo)[0],10)});var an=F("Date",!0);G("d",0,"do","day"),G("dd",0,0,function(t){return this.localeData().weekdaysMin(this,t)}),G("ddd",0,0,function(t){return this.localeData().weekdaysShort(this,t)}),G("dddd",0,0,function(t){return this.localeData().weekdays(this,t)}),G("e",0,0,"weekday"),G("E",0,0,"isoWeekday"),R("day","d"),R("weekday","e"),R("isoWeekday","E"),Z("d",mo),Z("e",mo),Z("E",mo),Z("dd",Do),Z("ddd",Do),Z("dddd",Do),tt(["dd","ddd","dddd"],function(t,e,i,o){var n=i._locale.weekdaysParse(t,o,i._strict);null!=n?e.d=n:l(i).invalidWeekday=t}),tt(["d","e","E"],function(t,e,i,o){e[o]=y(t)});var hn="Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),dn="Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),ln="Su_Mo_Tu_We_Th_Fr_Sa".split("_");G("DDD",["DDDD",3],"DDDo","dayOfYear"),R("dayOfYear","DDD"),Z("DDD",yo),Z("DDDD",uo),$(["DDD","DDDD"],function(t,e,i){i._dayOfYear=y(t)}),G("H",["HH",2],0,"hour"),G("h",["hh",2],0,di),G("hmm",0,0,function(){return""+di.apply(this)+Y(this.minutes(),2)}),G("hmmss",0,0,function(){return""+di.apply(this)+Y(this.minutes(),2)+Y(this.seconds(),2)}),G("Hmm",0,0,function(){return""+this.hours()+Y(this.minutes(),2)}),G("Hmmss",0,0,function(){return""+this.hours()+Y(this.minutes(),2)+Y(this.seconds(),2)}),li("a",!0),li("A",!1),R("hour","h"),Z("a",ci),Z("A",ci),Z("H",mo),Z("h",mo),Z("HH",mo,co),Z("hh",mo,co),Z("hmm",vo),Z("hmmss",go),Z("Hmm",vo),Z("Hmmss",go),$(["H","HH"],Io),$(["a","A"],function(t,e,i){i._isPm=i._locale.isPM(t),i._meridiem=t}),$(["h","hh"],function(t,e,i){e[Io]=y(t),l(i).bigHour=!0}),$("hmm",function(t,e,i){var o=t.length-2;e[Io]=y(t.substr(0,o)),e[No]=y(t.substr(o)),l(i).bigHour=!0}),$("hmmss",function(t,e,i){var o=t.length-4,n=t.length-2;e[Io]=y(t.substr(0,o)),e[No]=y(t.substr(o,2)),e[zo]=y(t.substr(n)),l(i).bigHour=!0}),$("Hmm",function(t,e,i){var o=t.length-2;e[Io]=y(t.substr(0,o)),e[No]=y(t.substr(o))}),$("Hmmss",function(t,e,i){var o=t.length-4,n=t.length-2;e[Io]=y(t.substr(0,o)),e[No]=y(t.substr(o,2)),e[zo]=y(t.substr(n))});var cn=/[ap]\.?m?\.?/i,un=F("Hours",!0);G("m",["mm",2],0,"minute"),R("minute","m"),Z("m",mo),Z("mm",mo,co),$(["m","mm"],No);var pn=F("Minutes",!1);G("s",["ss",2],0,"second"),R("second","s"),Z("s",mo),Z("ss",mo,co),$(["s","ss"],zo);var fn=F("Seconds",!1);G("S",0,0,function(){return~~(this.millisecond()/100)}),G(0,["SS",2],0,function(){return~~(this.millisecond()/10)}),G(0,["SSS",3],0,"millisecond"),G(0,["SSSS",4],0,function(){return 10*this.millisecond()}),G(0,["SSSSS",5],0,function(){return 100*this.millisecond()}),G(0,["SSSSSS",6],0,function(){return 1e3*this.millisecond()}),G(0,["SSSSSSS",7],0,function(){return 1e4*this.millisecond()}),G(0,["SSSSSSSS",8],0,function(){return 1e5*this.millisecond()}),G(0,["SSSSSSSSS",9],0,function(){return 1e6*this.millisecond()}),R("millisecond","ms"),Z("S",yo,lo),Z("SS",yo,co),Z("SSS",yo,uo);var mn;for(mn="SSSS";mn.length<=9;mn+="S")Z(mn,_o);for(mn="S";mn.length<=9;mn+="S")$(mn,fi);var vn=F("Milliseconds",!1);G("z",0,0,"zoneAbbr"),G("zz",0,0,"zoneName");var gn=m.prototype;gn.add=on,gn.calendar=le,gn.clone=ce,gn.diff=ye,gn.endOf=Ee,gn.format=xe,gn.from=ke,gn.fromNow=Oe,gn.to=Me,gn.toNow=De,gn.get=W,gn.invalidAt=Fe,gn.isAfter=ue,gn.isBefore=pe,gn.isBetween=fe,gn.isSame=me,gn.isSameOrAfter=ve,gn.isSameOrBefore=ge,gn.isValid=Ae,gn.lang=sn,gn.locale=Se,gn.localeData=Ce,gn.max=Jo,gn.min=Ko,gn.parsingFlags=Be,gn.set=W,gn.startOf=Te,gn.subtract=nn,gn.toArray=ze,gn.toObject=Le,gn.toDate=Ne,gn.toISOString=_e,gn.toJSON=Re,gn.toString=we,gn.unix=Ie,gn.valueOf=Pe,gn.creationData=je,gn.year=Zo,gn.isLeapYear=bt,gn.weekYear=We,gn.isoWeekYear=Ye,gn.quarter=gn.quarters=Xe,gn.month=at,gn.daysInMonth=ht,gn.week=gn.weeks=Qe,gn.isoWeek=gn.isoWeeks=$e,gn.weeksInYear=Ve,gn.isoWeeksInYear=Ge,gn.date=an,gn.day=gn.days=si,gn.weekday=ri,gn.isoWeekday=ai,gn.dayOfYear=hi,gn.hour=gn.hours=un,gn.minute=gn.minutes=pn,gn.second=gn.seconds=fn,gn.millisecond=gn.milliseconds=vn,gn.utcOffset=Ut,gn.utc=Xt,gn.local=Zt,gn.parseZone=Kt,gn.hasAlignedHourOffset=Jt,gn.isDST=Qt,gn.isDSTShifted=$t,gn.isLocal=te,gn.isUtcOffset=ee,gn.isUtc=ie,gn.isUTC=ie,gn.zoneAbbr=mi,gn.zoneName=vi,gn.dates=_("dates accessor is deprecated. Use date instead.",an),gn.months=_("months accessor is deprecated. Use month instead",at),gn.years=_("years accessor is deprecated. Use year instead",Zo),gn.zone=_("moment().zone is deprecated, use moment().utcOffset instead. https://github.com/moment/moment/issues/1779",qt);var yn=gn,bn={sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},wn={LTS:"h:mm:ss A",LT:"h:mm A",L:"MM/DD/YYYY",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY h:mm A",LLLL:"dddd, MMMM D, YYYY h:mm A"},_n="Invalid date",xn="%d",kn=/\d{1,2}/,On={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"},Mn=S.prototype;Mn._calendar=bn,Mn.calendar=bi,Mn._longDateFormat=wn,Mn.longDateFormat=wi,Mn._invalidDate=_n,Mn.invalidDate=_i,Mn._ordinal=xn,Mn.ordinal=xi,Mn._ordinalParse=kn,Mn.preparse=ki,Mn.postformat=ki,Mn._relativeTime=On,Mn.relativeTime=Oi,Mn.pastFuture=Mi,Mn.set=M,Mn.months=ot,Mn._months=Fo,Mn.monthsShort=nt,Mn._monthsShort=jo,Mn.monthsParse=st,Mn._monthsRegex=Wo,Mn.monthsRegex=lt,Mn._monthsShortRegex=Ho,Mn.monthsShortRegex=dt,Mn.week=Ze,Mn._week=rn,Mn.firstDayOfYear=Je,Mn.firstDayOfWeek=Ke,Mn.weekdays=ei,Mn._weekdays=hn,Mn.weekdaysMin=oi,Mn._weekdaysMin=ln,Mn.weekdaysShort=ii,Mn._weekdaysShort=dn,Mn.weekdaysParse=ni,Mn.isPM=ui,Mn._meridiemParse=cn,Mn.meridiem=pi,P("en",{ordinalParse:/\d{1,2}(th|st|nd|rd)/,ordinal:function(t){var e=t%10,i=1===y(t%100/10)?"th":1===e?"st":2===e?"nd":3===e?"rd":"th";return t+i}}),e.lang=_("moment.lang is deprecated. Use moment.locale instead.",P),e.langData=_("moment.langData is deprecated. Use moment.localeData instead.",z);var Dn=Math.abs,Sn=Yi("ms"),Cn=Yi("s"),Tn=Yi("m"),En=Yi("h"),Pn=Yi("d"),In=Yi("w"),Nn=Yi("M"),zn=Yi("y"),Ln=Vi("milliseconds"),Rn=Vi("seconds"),An=Vi("minutes"),Bn=Vi("hours"),Fn=Vi("days"),jn=Vi("months"),Hn=Vi("years"),Wn=Math.round,Yn={s:45,m:45,h:22,d:26,M:11},Gn=Math.abs,Vn=jt.prototype;Vn.abs=Ni,Vn.add=Li,Vn.subtract=Ri,Vn.as=Hi,Vn.asMilliseconds=Sn,Vn.asSeconds=Cn,Vn.asMinutes=Tn,Vn.asHours=En,Vn.asDays=Pn,Vn.asWeeks=In,Vn.asMonths=Nn,Vn.asYears=zn,Vn.valueOf=Wi,Vn._bubble=Bi,Vn.get=Gi,Vn.milliseconds=Ln,Vn.seconds=Rn,Vn.minutes=An,Vn.hours=Bn,Vn.days=Fn,Vn.weeks=Ui,Vn.months=jn,Vn.years=Hn,Vn.humanize=Ki,Vn.toISOString=Ji,Vn.toString=Ji,Vn.toJSON=Ji,Vn.locale=Se,Vn.localeData=Ce,Vn.toIsoString=_("toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)",Ji),Vn.lang=sn,G("X",0,0,"unix"),G("x",0,0,"valueOf"),Z("x",xo),Z("X",Mo),$("X",function(t,e,i){i._d=new Date(1e3*parseFloat(t,10))}),$("x",function(t,e,i){i._d=new Date(y(t))}),e.version="2.12.0",i(Rt),e.fn=yn,e.min=Bt,e.max=Ft,e.now=Qo,e.utc=h,e.unix=gi,e.months=Ci,e.isDate=n,e.locale=P,e.invalid=u,e.duration=oe,e.isMoment=v,e.weekdays=Ei,e.parseZone=yi,e.localeData=z,e.isDuration=Ht,e.monthsShort=Ti,e.weekdaysMin=Ii,e.defineLocale=I,e.updateLocale=N,e.locales=L,e.weekdaysShort=Pi,e.normalizeUnits=A,e.relativeTimeThreshold=Zi,e.prototype=yn;var Un=e;return Un})}).call(e,i(4)(t))},function(t,e){t.exports=function(t){return t.webpackPolyfill||(t.deprecate=function(){},t.paths=[],t.children=[],t.webpackPolyfill=1),t}},function(t,e){function i(t){throw new Error("Cannot find module '"+t+"'.")}i.keys=function(){return[]},i.resolve=i,t.exports=i,i.id=5},function(t,e){(function(e){function i(t,e,i){var o=e&&i||0,n=0;for(e=e||[],t.toLowerCase().replace(/[0-9a-f]{2}/g,function(t){16>n&&(e[o+n++]=c[t])});16>n;)e[o+n++]=0;return e}function o(t,e){var i=e||0,o=l;return o[t[i++]]+o[t[i++]]+o[t[i++]]+o[t[i++]]+"-"+o[t[i++]]+o[t[i++]]+"-"+o[t[i++]]+o[t[i++]]+"-"+o[t[i++]]+o[t[i++]]+"-"+o[t[i++]]+o[t[i++]]+o[t[i++]]+o[t[i++]]+o[t[i++]]+o[t[i++]]}function n(t,e,i){var n=e&&i||0,s=e||[];t=t||{};var r=void 0!==t.clockseq?t.clockseq:m,a=void 0!==t.msecs?t.msecs:(new Date).getTime(),h=void 0!==t.nsecs?t.nsecs:g+1,d=a-v+(h-g)/1e4;if(0>d&&void 0===t.clockseq&&(r=r+1&16383),(0>d||a>v)&&void 0===t.nsecs&&(h=0),h>=1e4)throw new Error("uuid.v1(): Can't create more than 10M uuids/sec");v=a,g=h,m=r,a+=122192928e5;var l=(1e4*(268435455&a)+h)%4294967296;s[n++]=l>>>24&255,s[n++]=l>>>16&255,s[n++]=l>>>8&255,s[n++]=255&l;var c=a/4294967296*1e4&268435455;s[n++]=c>>>8&255,s[n++]=255&c,s[n++]=c>>>24&15|16,s[n++]=c>>>16&255,s[n++]=r>>>8|128,s[n++]=255&r;for(var u=t.node||f,p=0;6>p;p++)s[n+p]=u[p];return e?e:o(s)}function s(t,e,i){var n=e&&i||0;"string"==typeof t&&(e="binary"==t?new Array(16):null,t=null),t=t||{};var s=t.random||(t.rng||r)();if(s[6]=15&s[6]|64,s[8]=63&s[8]|128,e)for(var a=0;16>a;a++)e[n+a]=s[a];return e||o(s)}var r,a="undefined"!=typeof window?window:"undefined"!=typeof e?e:null;if(a&&a.crypto&&crypto.getRandomValues){var h=new Uint8Array(16);r=function(){return crypto.getRandomValues(h),h}}if(!r){var d=new Array(16);r=function(){for(var t,e=0;16>e;e++)0===(3&e)&&(t=4294967296*Math.random()),d[e]=t>>>((3&e)<<3)&255;return d}}for(var l=[],c={},u=0;256>u;u++)l[u]=(u+256).toString(16).substr(1),c[l[u]]=u;var p=r(),f=[1|p[0],p[1],p[2],p[3],p[4],p[5]],m=16383&(p[6]<<8|p[7]),v=0,g=0,y=s;y.v1=n,y.v4=s,y.parse=i,y.unparse=o,t.exports=y}).call(e,function(){return this}())},function(t,e,i){e.util=i(1),e.DOMutil=i(8),e.DataSet=i(9),e.DataView=i(11),e.Queue=i(10),e.Graph3d=i(12),e.graph3d={Camera:i(16),Filter:i(17),Point2d:i(15),Point3d:i(14),Slider:i(18),StepNumber:i(19)},e.moment=i(2),e.Hammer=i(20),e.keycharm=i(23)},function(t,e){e.prepareElements=function(t){for(var e in t)t.hasOwnProperty(e)&&(t[e].redundant=t[e].used,t[e].used=[])},e.cleanupElements=function(t){for(var e in t)if(t.hasOwnProperty(e)&&t[e].redundant){for(var i=0;i0?(o=e[t].redundant[0],e[t].redundant.shift()):(o=document.createElementNS("http://www.w3.org/2000/svg",t),i.appendChild(o)):(o=document.createElementNS("http://www.w3.org/2000/svg",t),e[t]={used:[],redundant:[]},i.appendChild(o)),e[t].used.push(o),o},e.getDOMElement=function(t,e,i,o){var n;return e.hasOwnProperty(t)?e[t].redundant.length>0?(n=e[t].redundant[0],e[t].redundant.shift()):(n=document.createElement(t),void 0!==o?i.insertBefore(n,o):i.appendChild(n)):(n=document.createElement(t),e[t]={used:[],redundant:[]},void 0!==o?i.insertBefore(n,o):i.appendChild(n)),e[t].used.push(n),n},e.drawPoint=function(t,i,o,n,s,r){var a;if("circle"==o.style?(a=e.getSVGElement("circle",n,s),a.setAttributeNS(null,"cx",t),a.setAttributeNS(null,"cy",i),a.setAttributeNS(null,"r",.5*o.size)):(a=e.getSVGElement("rect",n,s),a.setAttributeNS(null,"x",t-.5*o.size),a.setAttributeNS(null,"y",i-.5*o.size),a.setAttributeNS(null,"width",o.size),a.setAttributeNS(null,"height",o.size)),void 0!==o.styles&&a.setAttributeNS(null,"style",o.styles),a.setAttributeNS(null,"class",o.className+" vis-point"),r){var h=e.getSVGElement("text",n,s);r.xOffset&&(t+=r.xOffset),r.yOffset&&(i+=r.yOffset),r.content&&(h.textContent=r.content),r.className&&h.setAttributeNS(null,"class",r.className+" vis-label"),h.setAttributeNS(null,"x",t),h.setAttributeNS(null,"y",i)}return a},e.drawBar=function(t,i,o,n,s,r,a,h){if(0!=n){0>n&&(n*=-1,i-=n);var d=e.getSVGElement("rect",r,a);d.setAttributeNS(null,"x",t-.5*o),d.setAttributeNS(null,"y",i),d.setAttributeNS(null,"width",o),d.setAttributeNS(null,"height",n),d.setAttributeNS(null,"class",s),h&&d.setAttributeNS(null,"style",h)}}},function(t,e,i){function o(t,e){if(t&&!Array.isArray(t)&&(e=t,t=null),this._options=e||{},this._data={},this.length=0,this._fieldId=this._options.fieldId||"id",this._type={},this._options.type)for(var i=Object.keys(this._options.type),o=0,n=i.length;n>o;o++){var s=i[o],r=this._options.type[s];"Date"==r||"ISODate"==r||"ASPDate"==r?this._type[s]="Date":this._type[s]=r}if(this._options.convert)throw new Error('Option "convert" is deprecated. Use "type" instead.');this._subscribers={},t&&this.add(t),this.setOptions(e)}var n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol?"symbol":typeof t},s=i(1),r=i(10);o.prototype.setOptions=function(t){t&&void 0!==t.queue&&(t.queue===!1?this._queue&&(this._queue.destroy(),delete this._queue):(this._queue||(this._queue=r.extend(this,{replace:["add","update","remove"]})),"object"===n(t.queue)&&this._queue.setOptions(t.queue)))},o.prototype.on=function(t,e){var i=this._subscribers[t];i||(i=[],this._subscribers[t]=i),i.push({callback:e})},o.prototype.subscribe=function(){throw new Error("DataSet.subscribe is deprecated. Use DataSet.on instead.")},o.prototype.off=function(t,e){var i=this._subscribers[t];i&&(this._subscribers[t]=i.filter(function(t){return t.callback!=e}))},o.prototype.unsubscribe=function(){throw new Error("DataSet.unsubscribe is deprecated. Use DataSet.off instead.")},o.prototype._trigger=function(t,e,i){if("*"==t)throw new Error("Cannot trigger event *");var o=[];t in this._subscribers&&(o=o.concat(this._subscribers[t])),"*"in this._subscribers&&(o=o.concat(this._subscribers["*"]));for(var n=0,s=o.length;s>n;n++){var r=o[n];r.callback&&r.callback(t,e,i||null)}},o.prototype.add=function(t,e){var i,o=[],n=this;if(Array.isArray(t))for(var s=0,r=t.length;r>s;s++)i=n._addItem(t[s]),o.push(i);else{if(!(t instanceof Object))throw new Error("Unknown dataType");i=n._addItem(t),o.push(i)}return o.length&&this._trigger("add",{items:o},e),o},o.prototype.update=function(t,e){var i=[],o=[],n=[],r=[],a=this,h=a._fieldId,d=function(t){var e=t[h];if(a._data[e]){var d=s.extend({},a._data[e]);e=a._updateItem(t),o.push(e),r.push(t),n.push(d)}else e=a._addItem(t),i.push(e)};if(Array.isArray(t))for(var l=0,c=t.length;c>l;l++)t[l]instanceof Object?d(t[l]):console.warn("Ignoring input item, which is not an object at index "+l);else{if(!(t instanceof Object))throw new Error("Unknown dataType");d(t)}if(i.length&&this._trigger("add",{items:i},e),o.length){var u={items:o,oldData:n,data:r};this._trigger("update",u,e)}return i.concat(o)},o.prototype.get=function(t){var e,i,o,n=this,r=s.getType(arguments[0]);"String"==r||"Number"==r?(e=arguments[0],o=arguments[1]):"Array"==r?(i=arguments[0],o=arguments[1]):o=arguments[0];var a;if(o&&o.returnType){var h=["Array","Object"];a=-1==h.indexOf(o.returnType)?"Array":o.returnType}else a="Array";var d,l,c,u,p,f=o&&o.type||this._options.type,m=o&&o.filter,v=[];if(void 0!=e)d=n._getItem(e,f),d&&m&&!m(d)&&(d=null);else if(void 0!=i)for(u=0,p=i.length;p>u;u++)d=n._getItem(i[u],f),m&&!m(d)||v.push(d);else for(l=Object.keys(this._data),u=0,p=l.length;p>u;u++)c=l[u],d=n._getItem(c,f),m&&!m(d)||v.push(d);if(o&&o.order&&void 0==e&&this._sort(v,o.order),o&&o.fields){var g=o.fields;if(void 0!=e)d=this._filterFields(d,g);else for(u=0,p=v.length;p>u;u++)v[u]=this._filterFields(v[u],g)}if("Object"==a){var y,b={};for(u=0,p=v.length;p>u;u++)y=v[u],b[y.id]=y;return b}return void 0!=e?d:v},o.prototype.getIds=function(t){var e,i,o,n,s,r=this._data,a=t&&t.filter,h=t&&t.order,d=t&&t.type||this._options.type,l=Object.keys(r),c=[];if(a)if(h){for(s=[],e=0,i=l.length;i>e;e++)o=l[e],n=this._getItem(o,d),a(n)&&s.push(n);for(this._sort(s,h),e=0,i=s.length;i>e;e++)c.push(s[e][this._fieldId])}else for(e=0,i=l.length;i>e;e++)o=l[e],n=this._getItem(o,d),a(n)&&c.push(n[this._fieldId]);else if(h){for(s=[],e=0,i=l.length;i>e;e++)o=l[e],s.push(r[o]);for(this._sort(s,h),e=0,i=s.length;i>e;e++)c.push(s[e][this._fieldId])}else for(e=0,i=l.length;i>e;e++)o=l[e],n=r[o],c.push(n[this._fieldId]);return c},o.prototype.getDataSet=function(){return this},o.prototype.forEach=function(t,e){var i,o,n,s,r=e&&e.filter,a=e&&e.type||this._options.type,h=this._data,d=Object.keys(h);if(e&&e.order){var l=this.get(e);for(i=0, +o=l.length;o>i;i++)n=l[i],s=n[this._fieldId],t(n,s)}else for(i=0,o=d.length;o>i;i++)s=d[i],n=this._getItem(s,a),r&&!r(n)||t(n,s)},o.prototype.map=function(t,e){var i,o,n,s,r=e&&e.filter,a=e&&e.type||this._options.type,h=[],d=this._data,l=Object.keys(d);for(i=0,o=l.length;o>i;i++)n=l[i],s=this._getItem(n,a),r&&!r(s)||h.push(t(s,n));return e&&e.order&&this._sort(h,e.order),h},o.prototype._filterFields=function(t,e){if(!t)return t;var i,o,n={},s=Object.keys(t),r=s.length;if(Array.isArray(e))for(i=0;r>i;i++)o=s[i],-1!=e.indexOf(o)&&(n[o]=t[o]);else for(i=0;r>i;i++)o=s[i],e.hasOwnProperty(o)&&(n[e[o]]=t[o]);return n},o.prototype._sort=function(t,e){if(s.isString(e)){var i=e;t.sort(function(t,e){var o=t[i],n=e[i];return o>n?1:n>o?-1:0})}else{if("function"!=typeof e)throw new TypeError("Order must be a function or a string");t.sort(e)}},o.prototype.remove=function(t,e){var i,o,n,s=[];if(Array.isArray(t))for(i=0,o=t.length;o>i;i++)n=this._remove(t[i]),null!=n&&s.push(n);else n=this._remove(t),null!=n&&s.push(n);return s.length&&this._trigger("remove",{items:s},e),s},o.prototype._remove=function(t){if(s.isNumber(t)||s.isString(t)){if(this._data[t])return delete this._data[t],this.length--,t}else if(t instanceof Object){var e=t[this._fieldId];if(void 0!==e&&this._data[e])return delete this._data[e],this.length--,e}return null},o.prototype.clear=function(t){var e=Object.keys(this._data);return this._data={},this.length=0,this._trigger("remove",{items:e},t),e},o.prototype.max=function(t){var e,i,o=this._data,n=Object.keys(o),s=null,r=null;for(e=0,i=n.length;i>e;e++){var a=n[e],h=o[a],d=h[t];null!=d&&(!s||d>r)&&(s=h,r=d)}return s},o.prototype.min=function(t){var e,i,o=this._data,n=Object.keys(o),s=null,r=null;for(e=0,i=n.length;i>e;e++){var a=n[e],h=o[a],d=h[t];null!=d&&(!s||r>d)&&(s=h,r=d)}return s},o.prototype.distinct=function(t){var e,i,o,n=this._data,r=Object.keys(n),a=[],h=this._options.type&&this._options.type[t]||null,d=0;for(e=0,o=r.length;o>e;e++){var l=r[e],c=n[l],u=c[t],p=!1;for(i=0;d>i;i++)if(a[i]==u){p=!0;break}p||void 0===u||(a[d]=u,d++)}if(h)for(e=0,o=a.length;o>e;e++)a[e]=s.convert(a[e],h);return a},o.prototype._addItem=function(t){var e=t[this._fieldId];if(void 0!=e){if(this._data[e])throw new Error("Cannot add item: item with id "+e+" already exists")}else e=s.randomUUID(),t[this._fieldId]=e;var i,o,n={},r=Object.keys(t);for(i=0,o=r.length;o>i;i++){var a=r[i],h=this._type[a];n[a]=s.convert(t[a],h)}return this._data[e]=n,this.length++,e},o.prototype._getItem=function(t,e){var i,o,n,r,a=this._data[t];if(!a)return null;var h={},d=Object.keys(a);if(e)for(n=0,r=d.length;r>n;n++)i=d[n],o=a[i],h[i]=s.convert(o,e[i]);else for(n=0,r=d.length;r>n;n++)i=d[n],o=a[i],h[i]=o;return h},o.prototype._updateItem=function(t){var e=t[this._fieldId];if(void 0==e)throw new Error("Cannot update item: item has no id (item: "+JSON.stringify(t)+")");var i=this._data[e];if(!i)throw new Error("Cannot update item: no item with id "+e+" found");for(var o=Object.keys(t),n=0,r=o.length;r>n;n++){var a=o[n],h=this._type[a];i[a]=s.convert(t[a],h)}return e},t.exports=o},function(t,e){function i(t){this.delay=null,this.max=1/0,this._queue=[],this._timeout=null,this._extended=null,this.setOptions(t)}i.prototype.setOptions=function(t){t&&"undefined"!=typeof t.delay&&(this.delay=t.delay),t&&"undefined"!=typeof t.max&&(this.max=t.max),this._flushIfNeeded()},i.extend=function(t,e){var o=new i(e);if(void 0!==t.flush)throw new Error("Target object already has a property flush");t.flush=function(){o.flush()};var n=[{name:"flush",original:void 0}];if(e&&e.replace)for(var s=0;sthis.max&&this.flush(),clearTimeout(this._timeout),this.queue.length>0&&"number"==typeof this.delay){var t=this;this._timeout=setTimeout(function(){t.flush()},this.delay)}},i.prototype.flush=function(){for(;this._queue.length>0;){var t=this._queue.shift();t.fn.apply(t.context||t.fn,t.args||[])}},t.exports=i},function(t,e,i){function o(t,e){this._data=null,this._ids={},this.length=0,this._options=e||{},this._fieldId="id",this._subscribers={};var i=this;this.listener=function(){i._onEvent.apply(i,arguments)},this.setData(t)}var n=i(1),s=i(9);o.prototype.setData=function(t){var e,i,o,n;if(this._data&&(this._data.off&&this._data.off("*",this.listener),e=Object.keys(this._ids),this._ids={},this.length=0,this._trigger("remove",{items:e})),this._data=t,this._data){for(this._fieldId=this._options.fieldId||this._data&&this._data.options&&this._data.options.fieldId||"id",e=this._data.getIds({filter:this._options&&this._options.filter}),o=0,n=e.length;n>o;o++)i=e[o],this._ids[i]=!0;this.length=e.length,this._trigger("add",{items:e}),this._data.on&&this._data.on("*",this.listener)}},o.prototype.refresh=function(){var t,e,i,o=this._data.getIds({filter:this._options&&this._options.filter}),n=Object.keys(this._ids),s={},r=[],a=[];for(e=0,i=o.length;i>e;e++)t=o[e],s[t]=!0,this._ids[t]||(r.push(t),this._ids[t]=!0);for(e=0,i=n.length;i>e;e++)t=n[e],s[t]||(a.push(t),delete this._ids[t]);this.length+=r.length-a.length,r.length&&this._trigger("add",{items:r}),a.length&&this._trigger("remove",{items:a})},o.prototype.get=function(t){var e,i,o,s=this,r=n.getType(arguments[0]);"String"==r||"Number"==r||"Array"==r?(e=arguments[0],i=arguments[1],o=arguments[2]):(i=arguments[0],o=arguments[1]);var a=n.extend({},this._options,i);this._options.filter&&i&&i.filter&&(a.filter=function(t){return s._options.filter(t)&&i.filter(t)});var h=[];return void 0!=e&&h.push(e),h.push(a),h.push(o),this._data&&this._data.get.apply(this._data,h)},o.prototype.getIds=function(t){var e;if(this._data){var i,o=this._options.filter;i=t&&t.filter?o?function(e){return o(e)&&t.filter(e)}:t.filter:o,e=this._data.getIds({filter:i,order:t&&t.order})}else e=[];return e},o.prototype.map=function(t,e){var i=[];if(this._data){var o,n=this._options.filter;o=e&&e.filter?n?function(t){return n(t)&&e.filter(t)}:e.filter:n,i=this._data.map(t,{filter:o,order:e&&e.order})}else i=[];return i},o.prototype.getDataSet=function(){for(var t=this;t instanceof o;)t=t._data;return t||null},o.prototype._onEvent=function(t,e,i){var o,n,s,r,a=e&&e.items,h=this._data,d=[],l=[],c=[],u=[];if(a&&h){switch(t){case"add":for(o=0,n=a.length;n>o;o++)s=a[o],r=this.get(s),r&&(this._ids[s]=!0,l.push(s));break;case"update":for(o=0,n=a.length;n>o;o++)s=a[o],r=this.get(s),r?this._ids[s]?(c.push(s),d.push(e.data[o])):(this._ids[s]=!0,l.push(s)):this._ids[s]&&(delete this._ids[s],u.push(s));break;case"remove":for(o=0,n=a.length;n>o;o++)s=a[o],this._ids[s]&&(delete this._ids[s],u.push(s))}this.length+=l.length-u.length,l.length&&this._trigger("add",{items:l},i),c.length&&this._trigger("update",{items:c,data:d},i),u.length&&this._trigger("remove",{items:u},i)}},o.prototype.on=s.prototype.on,o.prototype.off=s.prototype.off,o.prototype._trigger=s.prototype._trigger,o.prototype.subscribe=o.prototype.on,o.prototype.unsubscribe=o.prototype.off,t.exports=o},function(t,e,i){function o(t,e,i){if(!(this instanceof o))throw new SyntaxError("Constructor must be called with the new operator");this.containerElement=t,this.width="400px",this.height="400px",this.margin=10,this.defaultXCenter="55%",this.defaultYCenter="50%",this.xLabel="x",this.yLabel="y",this.zLabel="z";var n=function(t){return t};this.xValueLabel=n,this.yValueLabel=n,this.zValueLabel=n,this.filterLabel="time",this.legendLabel="value",this.style=o.STYLE.DOT,this.showPerspective=!0,this.showGrid=!0,this.keepAspectRatio=!0,this.showShadow=!1,this.showGrayBottom=!1,this.showTooltip=!1,this.verticalRatio=.5,this.animationInterval=1e3,this.animationPreload=!1,this.camera=new p,this.camera.setArmRotation(1,.5),this.camera.setArmLength(1.7),this.eye=new c(0,0,-1),this.dataTable=null,this.dataPoints=null,this.colX=void 0,this.colY=void 0,this.colZ=void 0,this.colValue=void 0,this.colFilter=void 0,this.xMin=0,this.xStep=void 0,this.xMax=1,this.yMin=0,this.yStep=void 0,this.yMax=1,this.zMin=0,this.zStep=void 0,this.zMax=1,this.valueMin=0,this.valueMax=1,this.xBarWidth=1,this.yBarWidth=1,this.axisColor="#4D4D4D",this.gridColor="#D3D3D3",this.dataColor={fill:"#7DC1FF",stroke:"#3267D2",strokeWidth:1},this.dotSizeRatio=.02,this.create(),this.setOptions(i),e&&this.setData(e)}function n(t){return"clientX"in t?t.clientX:t.targetTouches[0]&&t.targetTouches[0].clientX||0}function s(t){return"clientY"in t?t.clientY:t.targetTouches[0]&&t.targetTouches[0].clientY||0}var r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol?"symbol":typeof t},a=i(13),h=i(9),d=i(11),l=i(1),c=i(14),u=i(15),p=i(16),f=i(17),m=i(18),v=i(19);a(o.prototype),o.prototype._setScale=function(){this.scale=new c(1/(this.xMax-this.xMin),1/(this.yMax-this.yMin),1/(this.zMax-this.zMin)),this.keepAspectRatio&&(this.scale.x3&&(this.colFilter=3);else{if(this.style!==o.STYLE.DOTCOLOR&&this.style!==o.STYLE.DOTSIZE&&this.style!==o.STYLE.BARCOLOR&&this.style!==o.STYLE.BARSIZE)throw'Unknown style "'+this.style+'"';this.colX=0,this.colY=1,this.colZ=2,this.colValue=3,t.getNumberOfColumns()>4&&(this.colFilter=4)}},o.prototype.getNumberOfRows=function(t){return t.length},o.prototype.getNumberOfColumns=function(t){var e=0;for(var i in t[0])t[0].hasOwnProperty(i)&&e++;return e},o.prototype.getDistinctValues=function(t,e){for(var i=[],o=0;ot[o][e]&&(i.min=t[o][e]),i.maxt;t++){var f=(t-u)/(p-u),m=240*f,g=this._hsv2rgb(m,1,1);c.strokeStyle=g,c.beginPath(),c.moveTo(h,r+t),c.lineTo(a,r+t),c.stroke()}c.strokeStyle=this.axisColor,c.strokeRect(h,r,i,s)}if(this.style===o.STYLE.DOTSIZE&&(c.strokeStyle=this.axisColor,c.fillStyle=this.dataColor.fill,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===o.STYLE.DOTCOLOR||this.style===o.STYLE.DOTSIZE){var y=5,b=new v(this.valueMin,this.valueMax,(this.valueMax-this.valueMin)/5,!0);for(b.start(),b.getCurrent()0?this.yMin:this.yMax,n=this._convert3Dto2D(new c(_,r,this.zMin)),Math.cos(2*w)>0?(m.textAlign="center",m.textBaseline="top",n.y+=b):Math.sin(2*w)<0?(m.textAlign="right",m.textBaseline="middle"):(m.textAlign="left",m.textBaseline="middle"),m.fillStyle=this.axisColor,m.fillText(" "+this.xValueLabel(i.getCurrent())+" ",n.x,n.y),i.next()}for(m.lineWidth=1,o=void 0===this.defaultYStep,i=new v(this.yMin,this.yMax,this.yStep,o),i.start(),i.getCurrent()0?this.xMin:this.xMax,n=this._convert3Dto2D(new c(s,i.getCurrent(),this.zMin)),Math.cos(2*w)<0?(m.textAlign="center",m.textBaseline="top",n.y+=b):Math.sin(2*w)>0?(m.textAlign="right",m.textBaseline="middle"):(m.textAlign="left",m.textBaseline="middle"),m.fillStyle=this.axisColor,m.fillText(" "+this.yValueLabel(i.getCurrent())+" ",n.x,n.y),i.next();for(m.lineWidth=1,o=void 0===this.defaultZStep,i=new v(this.zMin,this.zMax,this.zStep,o),i.start(),i.getCurrent()0?this.xMin:this.xMax,r=Math.sin(w)<0?this.yMin:this.yMax;!i.end();)t=this._convert3Dto2D(new c(s,r,i.getCurrent())),m.strokeStyle=this.axisColor,m.beginPath(),m.moveTo(t.x,t.y),m.lineTo(t.x-b,t.y),m.stroke(),m.textAlign="right",m.textBaseline="middle",m.fillStyle=this.axisColor,m.fillText(this.zValueLabel(i.getCurrent())+" ",t.x-5,t.y),i.next();m.lineWidth=1,t=this._convert3Dto2D(new c(s,r,this.zMin)),e=this._convert3Dto2D(new c(s,r,this.zMax)),m.strokeStyle=this.axisColor,m.beginPath(),m.moveTo(t.x,t.y),m.lineTo(e.x,e.y),m.stroke(),m.lineWidth=1,u=this._convert3Dto2D(new c(this.xMin,this.yMin,this.zMin)),p=this._convert3Dto2D(new c(this.xMax,this.yMin,this.zMin)),m.strokeStyle=this.axisColor,m.beginPath(),m.moveTo(u.x,u.y),m.lineTo(p.x,p.y),m.stroke(),u=this._convert3Dto2D(new c(this.xMin,this.yMax,this.zMin)),p=this._convert3Dto2D(new c(this.xMax,this.yMax,this.zMin)),m.strokeStyle=this.axisColor,m.beginPath(),m.moveTo(u.x,u.y),m.lineTo(p.x,p.y),m.stroke(),m.lineWidth=1,t=this._convert3Dto2D(new c(this.xMin,this.yMin,this.zMin)),e=this._convert3Dto2D(new c(this.xMin,this.yMax,this.zMin)),m.strokeStyle=this.axisColor,m.beginPath(),m.moveTo(t.x,t.y),m.lineTo(e.x,e.y),m.stroke(),t=this._convert3Dto2D(new c(this.xMax,this.yMin,this.zMin)),e=this._convert3Dto2D(new c(this.xMax,this.yMax,this.zMin)),m.strokeStyle=this.axisColor,m.beginPath(),m.moveTo(t.x,t.y),m.lineTo(e.x,e.y),m.stroke();var x=this.xLabel;x.length>0&&(l=.1/this.scale.y,s=(this.xMin+this.xMax)/2,r=Math.cos(w)>0?this.yMin-l:this.yMax+l,n=this._convert3Dto2D(new c(s,r,this.zMin)),Math.cos(2*w)>0?(m.textAlign="center",m.textBaseline="top"):Math.sin(2*w)<0?(m.textAlign="right",m.textBaseline="middle"):(m.textAlign="left",m.textBaseline="middle"),m.fillStyle=this.axisColor,m.fillText(x,n.x,n.y));var k=this.yLabel;k.length>0&&(d=.1/this.scale.x,s=Math.sin(w)>0?this.xMin-d:this.xMax+d,r=(this.yMin+this.yMax)/2,n=this._convert3Dto2D(new c(s,r,this.zMin)),Math.cos(2*w)<0?(m.textAlign="center",m.textBaseline="top"):Math.sin(2*w)>0?(m.textAlign="right",m.textBaseline="middle"):(m.textAlign="left",m.textBaseline="middle"),m.fillStyle=this.axisColor,m.fillText(k,n.x,n.y));var O=this.zLabel;O.length>0&&(h=30,s=Math.cos(w)>0?this.xMin:this.xMax,r=Math.sin(w)<0?this.yMin:this.yMax,a=(this.zMin+this.zMax)/2,n=this._convert3Dto2D(new c(s,r,a)),m.textAlign="right",m.textBaseline="middle",m.fillStyle=this.axisColor,m.fillText(O,n.x-h,n.y))},o.prototype._hsv2rgb=function(t,e,i){var o,n,s,r,a,h;switch(r=i*e,a=Math.floor(t/60),h=r*(1-Math.abs(t/60%2-1)),a){case 0:o=r,n=h,s=0;break;case 1:o=h,n=r,s=0;break;case 2:o=0,n=r,s=h;break;case 3:o=0,n=h,s=r;break;case 4:o=h,n=0,s=r;break;case 5:o=r,n=0,s=h;break;default:o=0,n=0,s=0}return"RGB("+parseInt(255*o)+","+parseInt(255*n)+","+parseInt(255*s)+")"},o.prototype._redrawDataGrid=function(){var t,e,i,n,s,r,a,h,d,l,u,p,f=this.frame.canvas,m=f.getContext("2d");if(m.lineJoin="round",m.lineCap="round",!(void 0===this.dataPoints||this.dataPoints.length<=0)){for(s=0;s0}else r=!0;r?(p=(t.point.z+e.point.z+i.point.z+n.point.z)/4,d=240*(1-(p-this.zMin)*this.scale.z/this.verticalRatio),l=1,this.showShadow?(u=Math.min(1+x.x/k/2,1),a=this._hsv2rgb(d,l,u),h=a):(u=1,a=this._hsv2rgb(d,l,u), +h=this.axisColor)):(a="gray",h=this.axisColor),m.lineWidth=this._getStrokeWidth(t),m.fillStyle=a,m.strokeStyle=h,m.beginPath(),m.moveTo(t.screen.x,t.screen.y),m.lineTo(e.screen.x,e.screen.y),m.lineTo(n.screen.x,n.screen.y),m.lineTo(i.screen.x,i.screen.y),m.closePath(),m.fill(),m.stroke()}}else for(s=0;su&&(u=0);var p,f,m;this.style===o.STYLE.DOTCOLOR?(p=240*(1-(d.point.value-this.valueMin)*this.scale.value),f=this._hsv2rgb(p,1,1),m=this._hsv2rgb(p,1,.8)):this.style===o.STYLE.DOTSIZE?(f=this.dataColor.fill,m=this.dataColor.stroke):(p=240*(1-(d.point.z-this.zMin)*this.scale.z/this.verticalRatio),f=this._hsv2rgb(p,1,1),m=this._hsv2rgb(p,1,.8)),i.lineWidth=this._getStrokeWidth(d),i.strokeStyle=m,i.fillStyle=f,i.beginPath(),i.arc(d.screen.x,d.screen.y,u,0,2*Math.PI,!0),i.fill(),i.stroke()}}},o.prototype._redrawDataBar=function(){var t,e,i,n,s=this.frame.canvas,r=s.getContext("2d");if(!(void 0===this.dataPoints||this.dataPoints.length<=0)){for(t=0;t0){for(t=this.dataPoints[0],o.lineWidth=this._getStrokeWidth(t),o.lineJoin="round",o.lineCap="round",o.strokeStyle=this.dataColor.stroke,o.beginPath(),o.moveTo(t.screen.x,t.screen.y),e=1;e0?1:0>t?-1:0}var o=e[0],n=e[1],s=e[2],r=i((n.x-o.x)*(t.y-o.y)-(n.y-o.y)*(t.x-o.x)),a=i((s.x-n.x)*(t.y-n.y)-(s.y-n.y)*(t.x-n.x)),h=i((o.x-s.x)*(t.y-s.y)-(o.y-s.y)*(t.x-s.x));return!(0!=r&&0!=a&&r!=a||0!=a&&0!=h&&a!=h||0!=r&&0!=h&&r!=h)},o.prototype._dataPointFromXY=function(t,e){var i,n=100,s=null,r=null,a=null,h=new u(t,e);if(this.style===o.STYLE.BAR||this.style===o.STYLE.BARCOLOR||this.style===o.STYLE.BARSIZE)for(i=this.dataPoints.length-1;i>=0;i--){s=this.dataPoints[i];var d=s.surfaces;if(d)for(var l=d.length-1;l>=0;l--){var c=d[l],p=c.corners,f=[p[0].screen,p[1].screen,p[2].screen],m=[p[2].screen,p[3].screen,p[0].screen];if(this._insideTriangle(h,f)||this._insideTriangle(h,m))return s}}else for(i=0;ib)&&n>b&&(a=b,r=s)}}return r},o.prototype._showTooltip=function(t){var e,i,o;this.tooltip?(e=this.tooltip.dom.content,i=this.tooltip.dom.line,o=this.tooltip.dom.dot):(e=document.createElement("div"),e.style.position="absolute",e.style.padding="10px",e.style.border="1px solid #4d4d4d",e.style.color="#1a1a1a",e.style.background="rgba(255,255,255,0.7)",e.style.borderRadius="2px",e.style.boxShadow="5px 5px 10px rgba(128,128,128,0.5)",i=document.createElement("div"),i.style.position="absolute",i.style.height="40px",i.style.width="0",i.style.borderLeft="1px solid #4d4d4d",o=document.createElement("div"),o.style.position="absolute",o.style.height="0",o.style.width="0",o.style.border="5px solid #4d4d4d",o.style.borderRadius="5px",this.tooltip={dataPoint:null,dom:{content:e,line:i,dot:o}}),this._hideTooltip(),this.tooltip.dataPoint=t,"function"==typeof this.showTooltip?e.innerHTML=this.showTooltip(t.point):e.innerHTML="
"+this.xLabel+":"+t.point.x+"
"+this.yLabel+":"+t.point.y+"
"+this.zLabel+":"+t.point.z+"
",e.style.left="0",e.style.top="0",this.frame.appendChild(e),this.frame.appendChild(i),this.frame.appendChild(o);var n=e.offsetWidth,s=e.offsetHeight,r=i.offsetHeight,a=o.offsetWidth,h=o.offsetHeight,d=t.screen.x-n/2;d=Math.min(Math.max(d,10),this.frame.clientWidth-10-n),i.style.left=t.screen.x+"px",i.style.top=t.screen.y-r+"px",e.style.left=d+"px",e.style.top=t.screen.y-r-s+"px",o.style.left=t.screen.x-a/2+"px",o.style.top=t.screen.y-h/2+"px"},o.prototype._hideTooltip=function(){if(this.tooltip){this.tooltip.dataPoint=null;for(var t in this.tooltip.dom)if(this.tooltip.dom.hasOwnProperty(t)){var e=this.tooltip.dom[t];e&&e.parentNode&&e.parentNode.removeChild(e)}}},t.exports=o},function(t,e){function i(t){return t?o(t):void 0}function o(t){for(var e in i.prototype)t[e]=i.prototype[e];return t}t.exports=i,i.prototype.on=i.prototype.addEventListener=function(t,e){return this._callbacks=this._callbacks||{},(this._callbacks[t]=this._callbacks[t]||[]).push(e),this},i.prototype.once=function(t,e){function i(){o.off(t,i),e.apply(this,arguments)}var o=this;return this._callbacks=this._callbacks||{},i.fn=e,this.on(t,i),this},i.prototype.off=i.prototype.removeListener=i.prototype.removeAllListeners=i.prototype.removeEventListener=function(t,e){if(this._callbacks=this._callbacks||{},0==arguments.length)return this._callbacks={},this;var i=this._callbacks[t];if(!i)return this;if(1==arguments.length)return delete this._callbacks[t],this;for(var o,n=0;no;++o)i[o].apply(this,e)}return this},i.prototype.listeners=function(t){return this._callbacks=this._callbacks||{},this._callbacks[t]||[]},i.prototype.hasListeners=function(t){return!!this.listeners(t).length}},function(t,e){function i(t,e,i){this.x=void 0!==t?t:0,this.y=void 0!==e?e:0,this.z=void 0!==i?i:0}i.subtract=function(t,e){var o=new i;return o.x=t.x-e.x,o.y=t.y-e.y,o.z=t.z-e.z,o},i.add=function(t,e){var o=new i;return o.x=t.x+e.x,o.y=t.y+e.y,o.z=t.z+e.z,o},i.avg=function(t,e){return new i((t.x+e.x)/2,(t.y+e.y)/2,(t.z+e.z)/2)},i.crossProduct=function(t,e){var o=new i;return o.x=t.y*e.z-t.z*e.y,o.y=t.z*e.x-t.x*e.z,o.z=t.x*e.y-t.y*e.x,o},i.prototype.length=function(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z)},t.exports=i},function(t,e){function i(t,e){this.x=void 0!==t?t:0,this.y=void 0!==e?e:0}t.exports=i},function(t,e,i){function o(){this.armLocation=new n,this.armRotation={},this.armRotation.horizontal=0,this.armRotation.vertical=0,this.armLength=1.7,this.cameraLocation=new n,this.cameraRotation=new n(.5*Math.PI,0,0),this.calculateCameraOrientation()}var n=i(14);o.prototype.setArmLocation=function(t,e,i){this.armLocation.x=t,this.armLocation.y=e,this.armLocation.z=i,this.calculateCameraOrientation()},o.prototype.setArmRotation=function(t,e){void 0!==t&&(this.armRotation.horizontal=t),void 0!==e&&(this.armRotation.vertical=e,this.armRotation.vertical<0&&(this.armRotation.vertical=0),this.armRotation.vertical>.5*Math.PI&&(this.armRotation.vertical=.5*Math.PI)),void 0===t&&void 0===e||this.calculateCameraOrientation()},o.prototype.getArmRotation=function(){var t={};return t.horizontal=this.armRotation.horizontal,t.vertical=this.armRotation.vertical,t},o.prototype.setArmLength=function(t){void 0!==t&&(this.armLength=t,this.armLength<.71&&(this.armLength=.71),this.armLength>5&&(this.armLength=5),this.calculateCameraOrientation())},o.prototype.getArmLength=function(){return this.armLength},o.prototype.getCameraLocation=function(){return this.cameraLocation},o.prototype.getCameraRotation=function(){return this.cameraRotation},o.prototype.calculateCameraOrientation=function(){this.cameraLocation.x=this.armLocation.x-this.armLength*Math.sin(this.armRotation.horizontal)*Math.cos(this.armRotation.vertical),this.cameraLocation.y=this.armLocation.y-this.armLength*Math.cos(this.armRotation.horizontal)*Math.cos(this.armRotation.vertical),this.cameraLocation.z=this.armLocation.z+this.armLength*Math.sin(this.armRotation.vertical),this.cameraRotation.x=Math.PI/2-this.armRotation.vertical,this.cameraRotation.y=0,this.cameraRotation.z=-this.armRotation.horizontal},t.exports=o},function(t,e,i){function o(t,e,i){this.data=t,this.column=e,this.graph=i,this.index=void 0,this.value=void 0,this.values=i.getDistinctValues(t.get(),this.column),this.values.sort(function(t,e){return t>e?1:e>t?-1:0}),this.values.length>0&&this.selectValue(0),this.dataPoints=[],this.loaded=!1,this.onLoadCallback=void 0,i.animationPreload?(this.loaded=!1,this.loadInBackground()):this.loaded=!0}var n=i(11);o.prototype.isLoaded=function(){return this.loaded},o.prototype.getLoadedProgress=function(){for(var t=this.values.length,e=0;this.dataPoints[e];)e++;return Math.round(e/t*100)},o.prototype.getLabel=function(){return this.graph.filterLabel},o.prototype.getColumn=function(){return this.column},o.prototype.getSelectedValue=function(){return void 0!==this.index?this.values[this.index]:void 0},o.prototype.getValues=function(){return this.values},o.prototype.getValue=function(t){if(t>=this.values.length)throw"Error: index out of range";return this.values[t]},o.prototype._getDataPoints=function(t){if(void 0===t&&(t=this.index),void 0===t)return[];var e;if(this.dataPoints[t])e=this.dataPoints[t];else{var i={};i.column=this.column,i.value=this.values[t];var o=new n(this.data,{filter:function(t){return t[i.column]==i.value}}).get();e=this.graph._getDataPoints(o),this.dataPoints[t]=e}return e},o.prototype.setOnLoadCallback=function(t){this.onLoadCallback=t},o.prototype.selectValue=function(t){if(t>=this.values.length)throw"Error: index out of range";this.index=t,this.value=this.values[t]},o.prototype.loadInBackground=function(t){void 0===t&&(t=0);var e=this.graph.frame;if(t0&&(t--,this.setIndex(t))},o.prototype.next=function(){var t=this.getIndex();t0?this.setIndex(0):this.index=void 0},o.prototype.setIndex=function(t){if(!(to&&(o=0),o>this.values.length-1&&(o=this.values.length-1),o},o.prototype.indexToLeft=function(t){var e=parseFloat(this.frame.bar.style.width)-this.frame.slide.clientWidth-10,i=t/(this.values.length-1)*e,o=i+3;return o},o.prototype._onMouseMove=function(t){var e=t.clientX-this.startClientX,i=this.startSlideX+e,o=this.leftToIndex(i);this.setIndex(o),n.preventDefault()},o.prototype._onMouseUp=function(t){this.frame.style.cursor="auto",n.removeEventListener(document,"mousemove",this.onmousemove),n.removeEventListener(document,"mouseup",this.onmouseup),n.preventDefault()},t.exports=o},function(t,e){function i(t,e,i,o){this._start=0,this._end=0,this._step=1,this.prettyStep=!0,this.precision=5,this._current=0,this.setRange(t,e,i,o)}i.prototype.setRange=function(t,e,i,o){this._start=t?t:0,this._end=e?e:0,this.setStep(i,o)},i.prototype.setStep=function(t,e){void 0===t||0>=t||(void 0!==e&&(this.prettyStep=e),this.prettyStep===!0?this._step=i.calculatePrettyStep(t):this._step=t)},i.calculatePrettyStep=function(t){var e=function(t){return Math.log(t)/Math.LN10},i=Math.pow(10,Math.round(e(t))),o=2*Math.pow(10,Math.round(e(t/2))),n=5*Math.pow(10,Math.round(e(t/5))),s=i;return Math.abs(o-t)<=Math.abs(s-t)&&(s=o),Math.abs(n-t)<=Math.abs(s-t)&&(s=n),0>=s&&(s=1),s},i.prototype.getCurrent=function(){return parseFloat(this._current.toPrecision(this.precision))},i.prototype.getStep=function(){return this._step},i.prototype.start=function(){this._current=this._start-this._start%this._step},i.prototype.next=function(){this._current+=this._step},i.prototype.end=function(){return this._current>this._end},t.exports=i},function(t,e,i){if("undefined"!=typeof window){var o=i(21),n=window.Hammer||i(22);t.exports=o(n,{preventDefault:"mouse"})}else t.exports=function(){throw Error("hammer.js is only available in a browser, not in node.js.")}},function(t,e,i){var o,n,s;!function(i){n=[],o=i,s="function"==typeof o?o.apply(e,n):o,!(void 0!==s&&(t.exports=s))}(function(){var t=null;return function e(i,o){function n(t){return t.match(/[^ ]+/g)}function s(e){if("hammer.input"!==e.type){if(e.srcEvent._handled||(e.srcEvent._handled={}),e.srcEvent._handled[e.type])return;e.srcEvent._handled[e.type]=!0}var i=!1;e.stopPropagation=function(){i=!0};var o=e.srcEvent.stopPropagation.bind(e.srcEvent);"function"==typeof o&&(e.srcEvent.stopPropagation=function(){o(),e.stopPropagation()}),e.firstTarget=t;for(var n=t;n&&!i;){var s=n.hammer;if(s)for(var r,a=0;a0?d._handlers[t]=o:(i.off(t,s),delete d._handlers[t]))}),d},d.emit=function(e,o){t=o.target,i.emit(e,o)},d.destroy=function(){var t=i.element.hammer,e=t.indexOf(d);-1!==e&&t.splice(e,1),t.length||delete i.element.hammer,d._handlers={},i.destroy()},d}})},function(t,e,i){var o;!function(n,s,r,a){function h(t,e,i){return setTimeout(p(t,i),e)}function d(t,e,i){return Array.isArray(t)?(l(t,i[e],i),!0):!1}function l(t,e,i){var o;if(t)if(t.forEach)t.forEach(e,i);else if(t.length!==a)for(o=0;o\s*\(/gm,"{anonymous}()@"):"Unknown Stack Trace",s=n.console&&(n.console.warn||n.console.log);return s&&s.call(n.console,o,i),t.apply(this,arguments)}}function u(t,e,i){var o,n=e.prototype;o=t.prototype=Object.create(n),o.constructor=t,o._super=n,i&&ct(o,i)}function p(t,e){return function(){return t.apply(e,arguments)}}function f(t,e){return typeof t==ft?t.apply(e?e[0]||a:a,e):t}function m(t,e){return t===a?e:t}function v(t,e,i){l(w(e),function(e){t.addEventListener(e,i,!1)})}function g(t,e,i){l(w(e),function(e){t.removeEventListener(e,i,!1)})}function y(t,e){for(;t;){if(t==e)return!0;t=t.parentNode}return!1}function b(t,e){return t.indexOf(e)>-1}function w(t){return t.trim().split(/\s+/g)}function _(t,e,i){if(t.indexOf&&!i)return t.indexOf(e);for(var o=0;oi[e]}):o.sort()),o}function O(t,e){for(var i,o,n=e[0].toUpperCase()+e.slice(1),s=0;s1&&!i.firstMultiple?i.firstMultiple=N(e):1===n&&(i.firstMultiple=!1);var s=i.firstInput,r=i.firstMultiple,a=r?r.center:s.center,h=e.center=z(o);e.timeStamp=gt(),e.deltaTime=e.timeStamp-s.timeStamp,e.angle=B(a,h),e.distance=A(a,h),P(i,e),e.offsetDirection=R(e.deltaX,e.deltaY);var d=L(e.deltaTime,e.deltaX,e.deltaY);e.overallVelocityX=d.x,e.overallVelocityY=d.y,e.overallVelocity=vt(d.x)>vt(d.y)?d.x:d.y,e.scale=r?j(r.pointers,o):1,e.rotation=r?F(r.pointers,o):0,e.maxPointers=i.prevInput?e.pointers.length>i.prevInput.maxPointers?e.pointers.length:i.prevInput.maxPointers:e.pointers.length,I(i,e);var l=t.element;y(e.srcEvent.target,l)&&(l=e.srcEvent.target),e.target=l}function P(t,e){var i=e.center,o=t.offsetDelta||{},n=t.prevDelta||{},s=t.prevInput||{};e.eventType!==Et&&s.eventType!==It||(n=t.prevDelta={x:s.deltaX||0,y:s.deltaY||0},o=t.offsetDelta={x:i.x,y:i.y}),e.deltaX=n.x+(i.x-o.x),e.deltaY=n.y+(i.y-o.y)}function I(t,e){var i,o,n,s,r=t.lastInterval||e,h=e.timeStamp-r.timeStamp;if(e.eventType!=Nt&&(h>Tt||r.velocity===a)){var d=e.deltaX-r.deltaX,l=e.deltaY-r.deltaY,c=L(h,d,l);o=c.x,n=c.y,i=vt(c.x)>vt(c.y)?c.x:c.y,s=R(d,l),t.lastInterval=e}else i=r.velocity,o=r.velocityX,n=r.velocityY,s=r.direction;e.velocity=i,e.velocityX=o,e.velocityY=n,e.direction=s}function N(t){for(var e=[],i=0;in;)i+=t[n].clientX,o+=t[n].clientY,n++;return{x:mt(i/e),y:mt(o/e)}}function L(t,e,i){return{x:e/t||0,y:i/t||0}}function R(t,e){return t===e?zt:vt(t)>=vt(e)?0>t?Lt:Rt:0>e?At:Bt}function A(t,e,i){i||(i=Wt);var o=e[i[0]]-t[i[0]],n=e[i[1]]-t[i[1]];return Math.sqrt(o*o+n*n)}function B(t,e,i){i||(i=Wt);var o=e[i[0]]-t[i[0]],n=e[i[1]]-t[i[1]];return 180*Math.atan2(n,o)/Math.PI}function F(t,e){return B(e[1],e[0],Yt)+B(t[1],t[0],Yt)}function j(t,e){return A(e[0],e[1],Yt)/A(t[0],t[1],Yt)}function H(){this.evEl=Vt,this.evWin=Ut,this.allow=!0,this.pressed=!1,S.apply(this,arguments)}function W(){this.evEl=Zt,this.evWin=Kt,S.apply(this,arguments),this.store=this.manager.session.pointerEvents=[]}function Y(){this.evTarget=Qt,this.evWin=$t,this.started=!1,S.apply(this,arguments)}function G(t,e){var i=x(t.touches),o=x(t.changedTouches);return e&(It|Nt)&&(i=k(i.concat(o),"identifier",!0)),[i,o]}function V(){this.evTarget=ee,this.targetIds={},S.apply(this,arguments)}function U(t,e){var i=x(t.touches),o=this.targetIds;if(e&(Et|Pt)&&1===i.length)return o[i[0].identifier]=!0,[i,i];var n,s,r=x(t.changedTouches),a=[],h=this.target;if(s=i.filter(function(t){return y(t.target,h)}),e===Et)for(n=0;na&&(e.push(t),a=e.length-1):n&(It|Nt)&&(i=!0),0>a||(e[a]=t,this.callback(this.manager,n,{pointers:e,changedPointers:[t],pointerType:s,srcEvent:t}),i&&e.splice(a,1))}});var Jt={touchstart:Et,touchmove:Pt,touchend:It,touchcancel:Nt},Qt="touchstart",$t="touchstart touchmove touchend touchcancel";u(Y,S,{handler:function(t){var e=Jt[t.type];if(e===Et&&(this.started=!0),this.started){var i=G.call(this,t,e);e&(It|Nt)&&i[0].length-i[1].length===0&&(this.started=!1),this.callback(this.manager,e,{pointers:i[0],changedPointers:i[1],pointerType:Mt,srcEvent:t})}}});var te={touchstart:Et,touchmove:Pt,touchend:It,touchcancel:Nt},ee="touchstart touchmove touchend touchcancel";u(V,S,{handler:function(t){var e=te[t.type],i=U.call(this,t,e);i&&this.callback(this.manager,e,{pointers:i[0],changedPointers:i[1],pointerType:Mt,srcEvent:t})}}),u(q,S,{handler:function(t,e,i){var o=i.pointerType==Mt,n=i.pointerType==St;if(o)this.mouse.allow=!1;else if(n&&!this.mouse.allow)return;e&(It|Nt)&&(this.mouse.allow=!0),this.callback(t,e,i)},destroy:function(){this.touch.destroy(),this.mouse.destroy()}});var ie=O(pt.style,"touchAction"),oe=ie!==a,ne="compute",se="auto",re="manipulation",ae="none",he="pan-x",de="pan-y";X.prototype={set:function(t){t==ne&&(t=this.compute()),oe&&this.manager.element.style&&(this.manager.element.style[ie]=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()))}),Z(t.join(" "))},preventDefaults:function(t){if(!oe){var e=t.srcEvent,i=t.offsetDirection;if(this.manager.session.prevented)return void e.preventDefault();var o=this.actions,n=b(o,ae),s=b(o,de),r=b(o,he);if(n){var a=1===t.pointers.length,h=t.distance<2,d=t.deltaTime<250;if(a&&h&&d)return}if(!r||!s)return n||s&&i&Ft||r&&i&jt?this.preventSrc(e):void 0}},preventSrc:function(t){this.manager.session.prevented=!0,t.preventDefault()}};var le=1,ce=2,ue=4,pe=8,fe=pe,me=16,ve=32;K.prototype={defaults:{},set:function(t){return ct(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=$(t,this),e[t.id]||(e[t.id]=t,t.recognizeWith(this)),this},dropRecognizeWith:function(t){return d(t,"dropRecognizeWith",this)?this:(t=$(t,this),delete this.simultaneous[t.id],this)},requireFailure:function(t){if(d(t,"requireFailure",this))return this;var e=this.requireFail;return t=$(t,this),-1===_(e,t)&&(e.push(t),t.requireFailure(this)),this},dropRequireFailure:function(t){if(d(t,"dropRequireFailure",this))return this;t=$(t,this);var e=_(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(e,t)}var i=this,o=this.state;pe>o&&e(i.options.event+J(o)),e(i.options.event),t.additionalEvent&&e(t.additionalEvent),o>=pe&&e(i.options.event+J(o))},tryEmit:function(t){return this.canEmit()?this.emit(t):void(this.state=ve)},canEmit:function(){for(var t=0;ts?Lt:Rt,i=s!=this.pX,o=Math.abs(t.deltaX)):(n=0===r?zt:0>r?At:Bt,i=r!=this.pY,o=Math.abs(t.deltaY))),t.direction=n,i&&o>e.threshold&&n&e.direction},attrTest:function(t){return tt.prototype.attrTest.call(this,t)&&(this.state&ce||!(this.state&ce)&&this.directionTest(t))},emit:function(t){this.pX=t.deltaX,this.pY=t.deltaY;var e=Q(t.direction);e&&(t.additionalEvent=this.options.event+e),this._super.emit.call(this,t)}}),u(it,tt,{defaults:{event:"pinch",threshold:0,pointers:2},getTouchAction:function(){return[ae]},attrTest:function(t){return this._super.attrTest.call(this,t)&&(Math.abs(t.scale-1)>this.options.threshold||this.state&ce)},emit:function(t){if(1!==t.scale){var e=t.scale<1?"in":"out";t.additionalEvent=this.options.event+e}this._super.emit.call(this,t)}}),u(ot,K,{defaults:{event:"press",pointers:1,time:251,threshold:9},getTouchAction:function(){return[se]},process:function(t){var e=this.options,i=t.pointers.length===e.pointers,o=t.distancee.time;if(this._input=t,!o||!i||t.eventType&(It|Nt)&&!n)this.reset();else if(t.eventType&Et)this.reset(),this._timer=h(function(){this.state=fe,this.tryEmit()},e.time,this);else if(t.eventType&It)return fe;return ve},reset:function(){clearTimeout(this._timer)},emit:function(t){this.state===fe&&(t&&t.eventType&It?this.manager.emit(this.options.event+"up",t):(this._input.timeStamp=gt(),this.manager.emit(this.options.event,this._input)))}}),u(nt,tt,{defaults:{event:"rotate",threshold:0,pointers:2},getTouchAction:function(){return[ae]},attrTest:function(t){return this._super.attrTest.call(this,t)&&(Math.abs(t.rotation)>this.options.threshold||this.state&ce)}}),u(st,tt,{defaults:{event:"swipe",threshold:10,velocity:.3,direction:Ft|jt,pointers:1},getTouchAction:function(){return et.prototype.getTouchAction.call(this)},attrTest:function(t){var e,i=this.options.direction;return i&(Ft|jt)?e=t.overallVelocity:i&Ft?e=t.overallVelocityX:i&jt&&(e=t.overallVelocityY),this._super.attrTest.call(this,t)&&i&t.offsetDirection&&t.distance>this.options.threshold&&t.maxPointers==this.options.pointers&&vt(e)>this.options.velocity&&t.eventType&It},emit:function(t){var e=Q(t.offsetDirection);e&&this.manager.emit(this.options.event+e,t),this.manager.emit(this.options.event,t)}}),u(rt,K,{defaults:{event:"tap",pointers:1,taps:1,interval:300,time:250,threshold:9,posThreshold:10},getTouchAction:function(){return[re]},process:function(t){var e=this.options,i=t.pointers.length===e.pointers,o=t.distance=e;e++)r[String.fromCharCode(e)]={code:65+(e-97),shift:!1};for(e=65;90>=e;e++)r[String.fromCharCode(e)]={code:e,shift:!0};for(e=0;9>=e;e++)r[""+e]={code:48+e,shift:!1};for(e=1;12>=e;e++)r["F"+e]={code:111+e,shift:!1};for(e=0;9>=e;e++)r["num"+e]={code:96+e,shift:!1};r["num*"]={code:106,shift:!1},r["num+"]={code:107,shift:!1},r["num-"]={code:109,shift:!1},r["num/"]={code:111,shift:!1},r["num."]={code:110,shift:!1},r.left={code:37,shift:!1},r.up={code:38,shift:!1},r.right={code:39,shift:!1},r.down={code:40,shift:!1},r.space={code:32,shift:!1},r.enter={code:13,shift:!1},r.shift={code:16,shift:void 0},r.esc={code:27,shift:!1},r.backspace={code:8,shift:!1},r.tab={code:9,shift:!1},r.ctrl={code:17,shift:!1},r.alt={code:18,shift:!1},r["delete"]={code:46,shift:!1},r.pageup={code:33,shift:!1},r.pagedown={code:34,shift:!1},r["="]={code:187,shift:!1},r["-"]={code:189,shift:!1},r["]"]={code:221,shift:!1},r["["]={code:219,shift:!1};var a=function(t){d(t,"keydown")},h=function(t){d(t,"keyup")},d=function(t,e){if(void 0!==s[e][t.keyCode]){for(var o=s[e][t.keyCode],n=0;ne)&&(n=e),(null===s||i>s)&&(s=i)}),null!==n&&null!==s){var r=(n+s)/2,a=Math.max(this.range.end-this.range.start,1.1*(s-n)),h=e&&void 0!==e.animation?e.animation:!0;this.range.setRange(r-a/2,r+a/2,h)}}},n.prototype.fit=function(t){var e,i=t&&void 0!==t.animation?t.animation:!0,o=this.itemsData&&this.itemsData.getDataSet();1===o.length&&void 0===o.get()[0].end?(e=this.getDataRange(),this.moveTo(e.min.valueOf(),{animation:i})):(e=this.getItemRange(),this.range.setRange(e.min,e.max,i))},n.prototype.getItemRange=function(){var t=this,e=this.getDataRange(),i=null!==e.min?e.min.valueOf():null,o=null!==e.max?e.max.valueOf():null,n=null,s=null;if(null!=i&&null!=o){var r,a,h,d,c;!function(){var e=function(t){return l.convert(t.data.start,"Date").valueOf()},u=function(t){var e=void 0!=t.data.end?t.data.end:t.data.start;return l.convert(e,"Date").valueOf()};r=o-i,0>=r&&(r=10),a=r/t.props.center.width,l.forEach(t.itemSet.items,function(t){t.show(),t.repositionX();var r=e(t),h=u(t);if(this.options.rtl)var d=r-(t.getWidthRight()+10)*a,l=h+(t.getWidthLeft()+10)*a;else var d=r-(t.getWidthLeft()+10)*a,l=h+(t.getWidthRight()+10)*a;i>d&&(i=d,n=t),l>o&&(o=l,s=t)}.bind(t)),n&&s&&(h=n.getWidthLeft()+10,d=s.getWidthRight()+10,c=t.props.center.width-h-d,c>0&&(t.options.rtl?(i=e(n)-d*r/c,o=u(s)+h*r/c):(i=e(n)-h*r/c,o=u(s)+d*r/c)))}()}return{min:null!=i?new Date(i):null,max:null!=o?new Date(o):null}},n.prototype.getDataRange=function(){var t=null,e=null,i=this.itemsData&&this.itemsData.getDataSet();return i&&i.forEach(function(i){var o=l.convert(i.start,"Date").valueOf(),n=l.convert(void 0!=i.end?i.end:i.start,"Date").valueOf();(null===t||t>o)&&(t=o),(null===e||n>e)&&(e=n)}),{min:null!=t?new Date(t):null,max:null!=e?new Date(e):null}},n.prototype.getEventProperties=function(t){var e=t.center?t.center.x:t.clientX,i=t.center?t.center.y:t.clientY;if(this.options.rtl)var o=l.getAbsoluteRight(this.dom.centerContainer)-e;else var o=e-l.getAbsoluteLeft(this.dom.centerContainer);var n=i-l.getAbsoluteTop(this.dom.centerContainer),s=this.itemSet.itemFromTarget(t),r=this.itemSet.groupFromTarget(t),a=g.customTimeFromTarget(t),h=this.itemSet.options.snap||null,d=this.body.util.getScale(),c=this.body.util.getStep(),u=this._toTime(o),p=h?h(u,d,c):u,f=l.getTarget(t),m=null;return null!=s?m="item":null!=a?m="custom-time":l.hasParent(f,this.timeAxis.dom.foreground)?m="axis":this.timeAxis2&&l.hasParent(f,this.timeAxis2.dom.foreground)?m="axis":l.hasParent(f,this.itemSet.dom.labelSet)?m="group-label":l.hasParent(f,this.currentTime.bar)?m="current-time":l.hasParent(f,this.dom.center)&&(m="background"),{event:t,item:s?s.id:null,group:r?r.groupId:null,what:m,pageX:t.srcEvent?t.srcEvent.pageX:t.pageX,pageY:t.srcEvent?t.srcEvent.pageY:t.pageY,x:o,y:n,time:u,snappedTime:p}},t.exports=n},function(t,e,i){function o(t){return t&&t.__esModule?t:{"default":t}}function n(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(e,"__esModule",{value:!0});var s="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol?"symbol":typeof t},r=function(){function t(t,e){for(var i=0;i0&&this._makeItem([]),this._makeHeader(n),this._handleObject(this.configureOptions[n],[n])),i++);this.options.showButton===!0&&!function(){var e=document.createElement("div");e.className="vis-configuration vis-config-button",e.innerHTML="generate options",e.onclick=function(){t._printOptions()},e.onmouseover=function(){e.className="vis-configuration vis-config-button hover"},e.onmouseout=function(){e.className="vis-configuration vis-config-button"},t.optionsContainer=document.createElement("div"),t.optionsContainer.className="vis-configuration vis-config-option-container",t.domElements.push(t.optionsContainer),t.domElements.push(e)}(),this._push()}},{key:"_push",value:function(){this.wrapper=document.createElement("div"),this.wrapper.className="vis-configuration-wrapper",this.container.appendChild(this.wrapper);for(var t=0;t1?o-1:0),r=1;o>r;r++)n[r-1]=e[r];return n.forEach(function(t){s.appendChild(t)}),i.domElements.push(s),{v:i.domElements.length}}();if("object"===("undefined"==typeof a?"undefined":s(a)))return a.v}return 0}},{key:"_makeHeader",value:function(t){var e=document.createElement("div");e.className="vis-configuration vis-config-header",e.innerHTML=t,this._makeItem([],e)}},{key:"_makeLabel",value:function(t,e){var i=arguments.length<=2||void 0===arguments[2]?!1:arguments[2],o=document.createElement("div");return o.className="vis-configuration vis-config-label vis-config-s"+e.length,i===!0?o.innerHTML=""+t+":":o.innerHTML=t+":",o}},{key:"_makeDropdown",value:function(t,e,i){var o=document.createElement("select");o.className="vis-configuration vis-config-select";var n=0;void 0!==e&&-1!==t.indexOf(e)&&(n=t.indexOf(e));for(var s=0;se&&n>e*c?(a.min=Math.ceil(e*c),l=a.min,d="range increased"):n>e/c&&(a.min=Math.ceil(e/c),l=a.min,d="range increased"),e*c>s&&1!==s&&(a.max=Math.ceil(e*c),l=a.max,d="range increased"),a.value=e}else a.value=o;var u=document.createElement("input");u.className="vis-configuration vis-config-rangeinput",u.value=a.value;var p=this;a.onchange=function(){u.value=this.value,p._update(Number(this.value),i)},a.oninput=function(){u.value=this.value};var f=this._makeLabel(i[i.length-1],i),m=this._makeItem(i,f,a,u);""!==d&&this.popupHistory[m]!==l&&(this.popupHistory[m]=l,this._setupPopup(d,m))}},{key:"_setupPopup",value:function(t,e){var i=this;if(this.initialized===!0&&this.allowCreation===!0&&this.popupCountervar options = "+JSON.stringify(t,null,2)+""}},{key:"getOptions",value:function(){for(var t={},e=0;es;s++)for(r=0;rp?p+1:p;var f=l/this.r,m=a.RGBToHSV(this.color.r,this.color.g,this.color.b);m.h=p,m.s=f;var v=a.HSVToRGB(m.h,m.s,m.v);v.a=this.color.a,this.color=v,this.initialColorDiv.style.backgroundColor="rgba("+this.initialColor.r+","+this.initialColor.g+","+this.initialColor.b+","+this.initialColor.a+")",this.newColorDiv.style.backgroundColor="rgba("+this.color.r+","+this.color.g+","+this.color.b+","+this.color.a+")"}}]),t}();e["default"]=h},function(t,e,i){i(20);e.onTouch=function(t,e){e.inputHandler=function(t){t.isFirst&&e(t)},t.on("hammer.input",e.inputHandler)},e.onRelease=function(t,e){return e.inputHandler=function(t){t.isFinal&&e(t)},t.on("hammer.input",e.inputHandler)},e.offTouch=function(t,e){t.off("hammer.input",e.inputHandler)},e.offRelease=e.offTouch,e.disablePreventDefaultVertically=function(t){var e="pan-y";return t.getTouchAction=function(){return[e]},t}},function(t,e,i){function o(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(e,"__esModule",{value:!0});var n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol?"symbol":typeof t},s=function(){function t(t,e){for(var i=0;is.distance?console.log('%cUnknown option detected: "'+e+'" in '+t.printLocation(n.path,e,"")+"Perhaps it was misplaced? Matching option found at: "+t.printLocation(s.path,s.closestMatch,""),d):n.distance<=r?console.log('%cUnknown option detected: "'+e+'". Did you mean "'+n.closestMatch+'"?'+t.printLocation(n.path,e),d):console.log('%cUnknown option detected: "'+e+'". Did you mean one of these: '+t.print(Object.keys(i))+t.printLocation(o,e),d),a=!0}},{key:"findInOptions",value:function(e,i,o){var n=arguments.length<=3||void 0===arguments[3]?!1:arguments[3],s=1e9,a="",h=[],d=e.toLowerCase(),l=void 0;for(var c in i){var u=void 0;if(void 0!==i[c].__type__&&n===!0){var p=t.findInOptions(e,i[c],r.copyAndExtendArray(o,c));s>p.distance&&(a=p.closestMatch,h=p.path,s=p.distance,l=p.indexMatch)}else-1!==c.toLowerCase().indexOf(d)&&(l=c),u=t.levenshteinDistance(e,c),s>u&&(a=c,h=r.copyArray(o),s=u)}return{closestMatch:a,path:h,distance:s,indexMatch:l}}},{key:"printLocation",value:function(t,e){for(var i=arguments.length<=2||void 0===arguments[2]?"Problem value found at: \n":arguments[2],o="\n\n"+i+"options = {\n",n=0;ns;s++)o+=" ";o+=t[n]+": {\n"}for(var r=0;ru,r=s||null===n?n:l+(n-l)*i,p=s||null===a?a:c+(a-c)*i;y=h._applyRange(r,p),d.updateHiddenDates(h.options.moment,h.body,h.options.hiddenDates),v=v||y,y&&h.body.emitter.emit("rangechange",{start:new Date(h.start),end:new Date(h.end),byUser:o}),s?v&&h.body.emitter.emit("rangechanged",{start:new Date(h.start),end:new Date(h.end),byUser:o}):h.animationTimer=setTimeout(w,20)}};return g()}var y=this._applyRange(n,a);if(d.updateHiddenDates(this.options.moment,this.body,this.options.hiddenDates),y){var b={start:new Date(this.start),end:new Date(this.end),byUser:o};this.body.emitter.emit("rangechange",b),this.body.emitter.emit("rangechanged",b)}},o.prototype._cancelAnimation=function(){this.animationTimer&&(clearTimeout(this.animationTimer),this.animationTimer=null)},o.prototype._applyRange=function(t,e){var i,o=null!=t?r.convert(t,"Date").valueOf():this.start,n=null!=e?r.convert(e,"Date").valueOf():this.end,s=null!=this.options.max?r.convert(this.options.max,"Date").valueOf():null,a=null!=this.options.min?r.convert(this.options.min,"Date").valueOf():null;if(isNaN(o)||null===o)throw new Error('Invalid start "'+t+'"');if(isNaN(n)||null===n)throw new Error('Invalid end "'+e+'"');if(o>n&&(n=o),null!==a&&a>o&&(i=a-o,o+=i,n+=i,null!=s&&n>s&&(n=s)),null!==s&&n>s&&(i=n-s,o-=i,n-=i,null!=a&&a>o&&(o=a)),null!==this.options.zoomMin){var h=parseFloat(this.options.zoomMin);0>h&&(h=0),h>n-o&&(this.end-this.start===h&&o>this.start&&nd&&(d=0),n-o>d&&(this.end-this.start===d&&othis.end?(o=this.start,n=this.end):(i=n-o-d,o+=i/2,n-=i/2))}var l=this.start!=o||this.end!=n;return o>=this.start&&o<=this.end||n>=this.start&&n<=this.end||this.start>=o&&this.start<=n||this.end>=o&&this.end<=n||this.body.emitter.emit("checkRangedItems"),this.start=o,this.end=n,l},o.prototype.getRange=function(){return{start:this.start,end:this.end}},o.prototype.conversion=function(t,e){return o.conversion(this.start,this.end,t,e)},o.conversion=function(t,e,i,o){return void 0===o&&(o=0),0!=i&&e-t!=0?{offset:t,scale:i/(e-t-o)}:{offset:0,scale:1}},o.prototype._onDragStart=function(t){this.deltaDifference=0,this.previousDelta=0,this.options.moveable&&this._isInsideRange(t)&&this.props.touch.allowDragging&&(this.props.touch.start=this.start,this.props.touch.end=this.end,this.props.touch.dragging=!0,this.body.dom.root&&(this.body.dom.root.style.cursor="move"))},o.prototype._onDrag=function(t){if(this.props.touch.dragging&&this.options.moveable&&this.props.touch.allowDragging){var e=this.options.direction;n(e);var i="horizontal"==e?t.deltaX:t.deltaY;i-=this.deltaDifference;var o=this.props.touch.end-this.props.touch.start,s=d.getHiddenDurationBetween(this.body.hiddenDates,this.start,this.end);o-=s;var r="horizontal"==e?this.body.domProps.center.width:this.body.domProps.center.height;if(this.options.rtl)var a=i/r*o;else var a=-i/r*o;var h=this.props.touch.start+a,l=this.props.touch.end+a,c=d.snapAwayFromHidden(this.body.hiddenDates,h,this.previousDelta-i,!0),u=d.snapAwayFromHidden(this.body.hiddenDates,l,this.previousDelta-i,!0);if(c!=h||u!=l)return this.deltaDifference+=i,this.props.touch.start=c,this.props.touch.end=u,void this._onDrag(t);this.previousDelta=i,this._applyRange(h,l);var p=new Date(this.start),f=new Date(this.end);this.body.emitter.emit("rangechange",{start:p,end:f,byUser:!0})}},o.prototype._onDragEnd=function(t){this.props.touch.dragging&&this.options.moveable&&this.props.touch.allowDragging&&(this.props.touch.dragging=!1,this.body.dom.root&&(this.body.dom.root.style.cursor="auto"),this.body.emitter.emit("rangechanged",{start:new Date(this.start),end:new Date(this.end),byUser:!0}))},o.prototype._onMouseWheel=function(t){if(this.options.zoomable&&this.options.moveable&&this._isInsideRange(t)&&(!this.options.zoomKey||t[this.options.zoomKey])){var e=0;if(t.wheelDelta?e=t.wheelDelta/120:t.detail&&(e=-t.detail/3),e){var i;i=0>e?1-e/5:1/(1+e/5);var o=this.getPointer({x:t.clientX,y:t.clientY},this.body.dom.center),n=this._pointerToDate(o);this.zoom(i,n,e)}t.preventDefault()}},o.prototype._onTouch=function(t){this.props.touch.start=this.start,this.props.touch.end=this.end,this.props.touch.allowDragging=!0,this.props.touch.center=null,this.scaleOffset=0,this.deltaDifference=0},o.prototype._onPinch=function(t){if(this.options.zoomable&&this.options.moveable){this.props.touch.allowDragging=!1,this.props.touch.center||(this.props.touch.center=this.getPointer(t.center,this.body.dom.center));var e=1/(t.scale+this.scaleOffset),i=this._pointerToDate(this.props.touch.center),o=d.getHiddenDurationBetween(this.body.hiddenDates,this.start,this.end),n=d.getHiddenDurationBefore(this.options.moment,this.body.hiddenDates,this,i),s=o-n,r=i-n+(this.props.touch.start-(i-n))*e,a=i+s+(this.props.touch.end-(i+s))*e;this.startToFront=0>=1-e,this.endToFront=0>=e-1;var h=d.snapAwayFromHidden(this.body.hiddenDates,r,1-e,!0),l=d.snapAwayFromHidden(this.body.hiddenDates,a,e-1,!0);h==r&&l==a||(this.props.touch.start=h,this.props.touch.end=l,this.scaleOffset=1-t.scale,r=h,a=l),this.setRange(r,a,!1,!0),this.startToFront=!1,this.endToFront=!0}},o.prototype._isInsideRange=function(t){var e=t.center?t.center.x:t.clientX;if(this.options.rtl)var i=e-r.getAbsoluteLeft(this.body.dom.centerContainer);else var i=r.getAbsoluteRight(this.body.dom.centerContainer)-e;var o=this.body.util.toTime(i);return o>=this.start&&o<=this.end},o.prototype._pointerToDate=function(t){var e,i=this.options.direction;if(n(i),"horizontal"==i)return this.body.util.toTime(t.x).valueOf();var o=this.body.domProps.center.height;return e=this.conversion(o),t.y/e.scale+e.offset},o.prototype.getPointer=function(t,e){return this.options.rtl?{x:r.getAbsoluteRight(e)-t.x,y:t.y-r.getAbsoluteTop(e)}:{x:t.x-r.getAbsoluteLeft(e),y:t.y-r.getAbsoluteTop(e)}},o.prototype.zoom=function(t,e,i){null==e&&(e=(this.start+this.end)/2);var o=d.getHiddenDurationBetween(this.body.hiddenDates,this.start,this.end),n=d.getHiddenDurationBefore(this.options.moment,this.body.hiddenDates,this,e),s=o-n,r=e-n+(this.start-(e-n))*t,a=e+s+(this.end-(e+s))*t;this.startToFront=!(i>0),this.endToFront=!(-i>0);var h=d.snapAwayFromHidden(this.body.hiddenDates,r,i,!0),l=d.snapAwayFromHidden(this.body.hiddenDates,a,-i,!0);h==r&&l==a||(r=h,a=l),this.setRange(r,a,!1,!0),this.startToFront=!1,this.endToFront=!0},o.prototype.move=function(t){var e=this.end-this.start,i=this.start+e*t,o=this.end+e*t;this.start=i,this.end=o},o.prototype.moveTo=function(t){var e=(this.start+this.end)/2,i=e-t,o=this.start-i,n=this.end-i;this.setRange(o,n)},t.exports=o},function(t,e){function i(t,e){this.options=null,this.props=null}i.prototype.setOptions=function(t){t&&util.extend(this.options,t)},i.prototype.redraw=function(){return!1},i.prototype.destroy=function(){},i.prototype._isResized=function(){var t=this.props._previousWidth!==this.props.width||this.props._previousHeight!==this.props.height;return this.props._previousWidth=this.props.width,this.props._previousHeight=this.props.height,t},t.exports=i},function(t,e){e.convertHiddenOptions=function(t,i,o){if(o&&!Array.isArray(o))return e.convertHiddenOptions(t,i,[o]);if(i.hiddenDates=[],o&&1==Array.isArray(o)){for(var n=0;n=4*a){var u=0,p=s.clone();switch(o[h].repeat){case"daily":d.day()!=l.day()&&(u=1),d.dayOfYear(n.dayOfYear()),d.year(n.year()),d.subtract(7,"days"),l.dayOfYear(n.dayOfYear()),l.year(n.year()),l.subtract(7-u,"days"),p.add(1,"weeks");break;case"weekly":var f=l.diff(d,"days"),m=d.day();d.date(n.date()),d.month(n.month()),d.year(n.year()),l=d.clone(),d.day(m),l.day(m),l.add(f,"days"),d.subtract(1,"weeks"),l.subtract(1,"weeks"),p.add(1,"weeks");break;case"monthly":d.month()!=l.month()&&(u=1),d.month(n.month()),d.year(n.year()),d.subtract(1,"months"),l.month(n.month()),l.year(n.year()),l.subtract(1,"months"),l.add(u,"months"),p.add(1,"months");break;case"yearly":d.year()!=l.year()&&(u=1),d.year(n.year()),d.subtract(1,"years"),l.year(n.year()),l.subtract(1,"years"),l.add(u,"years"),p.add(1,"years");break;default:return void console.log("Wrong repeat format, allowed are: daily, weekly, monthly, yearly. Given:",o[h].repeat)}for(;p>d;)switch(i.hiddenDates.push({start:d.valueOf(),end:l.valueOf()}),o[h].repeat){case"daily":d.add(1,"days"),l.add(1,"days");break;case"weekly":d.add(1,"weeks"),l.add(1,"weeks");break;case"monthly":d.add(1,"months"),l.add(1,"months");break;case"yearly":d.add(1,"y"),l.add(1,"y");break;default:return void console.log("Wrong repeat format, allowed are: daily, weekly, monthly, yearly. Given:",o[h].repeat)}i.hiddenDates.push({start:d.valueOf(),end:l.valueOf()})}}e.removeDuplicates(i);var v=e.isHidden(i.range.start,i.hiddenDates),g=e.isHidden(i.range.end,i.hiddenDates),y=i.range.start,b=i.range.end;1==v.hidden&&(y=1==i.range.startToFront?v.startDate-1:v.endDate+1), +1==g.hidden&&(b=1==i.range.endToFront?g.startDate-1:g.endDate+1),1!=v.hidden&&1!=g.hidden||i.range._applyRange(y,b)}},e.removeDuplicates=function(t){for(var e=t.hiddenDates,i=[],o=0;o=e[o].start&&e[n].end<=e[o].end?e[n].remove=!0:e[n].start>=e[o].start&&e[n].start<=e[o].end?(e[o].end=e[n].end,e[n].remove=!0):e[n].end>=e[o].start&&e[n].end<=e[o].end&&(e[o].start=e[n].start,e[n].remove=!0));for(var o=0;o=r&&a>n){o=!0;break}}if(1==o&&n=e&&i>r&&(o+=r-s)}return o},e.correctTimeForHidden=function(t,i,o,n){return n=t(n).toDate().valueOf(),n-=e.getHiddenDurationBefore(t,i,o,n)},e.getHiddenDurationBefore=function(t,e,i,o){var n=0;o=t(o).toDate().valueOf();for(var s=0;s=i.start&&a=a&&(n+=a-r)}return n},e.getAccumulatedHiddenDuration=function(t,e,i){for(var o=0,n=0,s=e.start,r=0;r=e.start&&h=i)break;o+=h-a}}return o},e.snapAwayFromHidden=function(t,i,o,n){var s=e.isHidden(i,t);return 1==s.hidden?0>o?1==n?s.startDate-(s.endDate-i)-1:s.startDate-1:1==n?s.endDate+(i-s.startDate)+1:s.endDate+1:i},e.isHidden=function(t,e){for(var i=0;i=o&&n>t)return{hidden:!0,startDate:o,endDate:n}}return{hidden:!1,startDate:o,endDate:n}}},function(t,e,i){function o(){}var n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol?"symbol":typeof t},s=i(13),r=i(20),a=i(28),h=i(1),d=(i(9),i(11),i(30),i(34),i(44)),l=i(45),c=i(32),u=i(46);s(o.prototype),o.prototype._create=function(t){function e(t){i.isActive()&&i.emit("mousewheel",t)}this.dom={},this.dom.container=t,this.dom.root=document.createElement("div"),this.dom.background=document.createElement("div"),this.dom.backgroundVertical=document.createElement("div"),this.dom.backgroundHorizontal=document.createElement("div"),this.dom.centerContainer=document.createElement("div"),this.dom.leftContainer=document.createElement("div"),this.dom.rightContainer=document.createElement("div"),this.dom.center=document.createElement("div"),this.dom.left=document.createElement("div"),this.dom.right=document.createElement("div"),this.dom.top=document.createElement("div"),this.dom.bottom=document.createElement("div"),this.dom.shadowTop=document.createElement("div"),this.dom.shadowBottom=document.createElement("div"),this.dom.shadowTopLeft=document.createElement("div"),this.dom.shadowBottomLeft=document.createElement("div"),this.dom.shadowTopRight=document.createElement("div"),this.dom.shadowBottomRight=document.createElement("div"),this.dom.root.className="vis-timeline",this.dom.background.className="vis-panel vis-background",this.dom.backgroundVertical.className="vis-panel vis-background vis-vertical",this.dom.backgroundHorizontal.className="vis-panel vis-background vis-horizontal",this.dom.centerContainer.className="vis-panel vis-center",this.dom.leftContainer.className="vis-panel vis-left",this.dom.rightContainer.className="vis-panel vis-right",this.dom.top.className="vis-panel vis-top",this.dom.bottom.className="vis-panel vis-bottom",this.dom.left.className="vis-content",this.dom.center.className="vis-content",this.dom.right.className="vis-content",this.dom.shadowTop.className="vis-shadow vis-top",this.dom.shadowBottom.className="vis-shadow vis-bottom",this.dom.shadowTopLeft.className="vis-shadow vis-top",this.dom.shadowBottomLeft.className="vis-shadow vis-bottom",this.dom.shadowTopRight.className="vis-shadow vis-top",this.dom.shadowBottomRight.className="vis-shadow vis-bottom",this.dom.root.appendChild(this.dom.background),this.dom.root.appendChild(this.dom.backgroundVertical),this.dom.root.appendChild(this.dom.backgroundHorizontal),this.dom.root.appendChild(this.dom.centerContainer),this.dom.root.appendChild(this.dom.leftContainer),this.dom.root.appendChild(this.dom.rightContainer),this.dom.root.appendChild(this.dom.top),this.dom.root.appendChild(this.dom.bottom),this.dom.centerContainer.appendChild(this.dom.center),this.dom.leftContainer.appendChild(this.dom.left),this.dom.rightContainer.appendChild(this.dom.right),this.dom.centerContainer.appendChild(this.dom.shadowTop),this.dom.centerContainer.appendChild(this.dom.shadowBottom),this.dom.leftContainer.appendChild(this.dom.shadowTopLeft),this.dom.leftContainer.appendChild(this.dom.shadowBottomLeft),this.dom.rightContainer.appendChild(this.dom.shadowTopRight),this.dom.rightContainer.appendChild(this.dom.shadowBottomRight),this.on("rangechange",function(){this.initialDrawDone===!0&&this._redraw()}.bind(this)),this.on("touch",this._onTouch.bind(this)),this.on("pan",this._onDrag.bind(this));var i=this;this.on("_change",function(t){t&&1==t.queue?i._redrawTimer||(i._redrawTimer=setTimeout(function(){i._redrawTimer=null,i._redraw()},0)):i._redraw()}),this.hammer=new r(this.dom.root);var o=this.hammer.get("pinch").set({enable:!0});a.disablePreventDefaultVertically(o),this.hammer.get("pan").set({threshold:5,direction:r.DIRECTION_HORIZONTAL}),this.listeners={};var n=["tap","doubletap","press","pinch","pan","panstart","panmove","panend"];if(n.forEach(function(t){var e=function(e){i.isActive()&&i.emit(t,e)};i.hammer.on(t,e),i.listeners[t]=e}),a.onTouch(this.hammer,function(t){i.emit("touch",t)}.bind(this)),a.onRelease(this.hammer,function(t){i.emit("release",t)}.bind(this)),this.dom.root.addEventListener("mousewheel",e),this.dom.root.addEventListener("DOMMouseScroll",e),this.props={root:{},background:{},centerContainer:{},leftContainer:{},rightContainer:{},center:{},left:{},right:{},top:{},bottom:{},border:{},scrollTop:0,scrollTopMin:0},this.customTimes=[],this.touch={},this.redrawCount=0,this.initialDrawDone=!1,!t)throw new Error("No container provided");t.appendChild(this.dom.root)},o.prototype.setOptions=function(t){if(t){var e=["width","height","minHeight","maxHeight","autoResize","start","end","clickToUse","dataAttributes","hiddenDates","locale","locales","moment","rtl","throttleRedraw"];if(h.selectiveExtend(e,this.options,t),this.options.rtl){var i=this.dom.leftContainer;this.dom.leftContainer=this.dom.rightContainer,this.dom.rightContainer=i,this.dom.container.style.direction="rtl",this.dom.backgroundVertical.className="vis-panel vis-background vis-vertical-rtl"}if(this.options.orientation={item:void 0,axis:void 0},"orientation"in t&&("string"==typeof t.orientation?this.options.orientation={item:t.orientation,axis:t.orientation}:"object"===n(t.orientation)&&("item"in t.orientation&&(this.options.orientation.item=t.orientation.item),"axis"in t.orientation&&(this.options.orientation.axis=t.orientation.axis))),"both"===this.options.orientation.axis){if(!this.timeAxis2){var o=this.timeAxis2=new d(this.body);o.setOptions=function(t){var e=t?h.extend({},t):{};e.orientation="top",d.prototype.setOptions.call(o,e)},this.components.push(o)}}else if(this.timeAxis2){var s=this.components.indexOf(this.timeAxis2);-1!==s&&this.components.splice(s,1),this.timeAxis2.destroy(),this.timeAxis2=null}if("function"==typeof t.drawPoints&&(t.drawPoints={onRender:t.drawPoints}),"hiddenDates"in this.options&&c.convertHiddenOptions(this.options.moment,this.body,this.options.hiddenDates),"clickToUse"in t&&(t.clickToUse?this.activator||(this.activator=new l(this.dom.root)):this.activator&&(this.activator.destroy(),delete this.activator)),"showCustomTime"in t)throw new Error("Option `showCustomTime` is deprecated. Create a custom time bar via timeline.addCustomTime(time [, id])");this._initAutoResize()}if(this.components.forEach(function(e){return e.setOptions(t)}),"configure"in t){this.configurator||(this.configurator=this._createConfigurator()),this.configurator.setOptions(t.configure);var r=h.deepExtend({},this.options);this.components.forEach(function(t){h.deepExtend(r,t.options)}),this.configurator.setModuleOptions({global:r})}this._origRedraw?this._redraw():(this._origRedraw=this._redraw.bind(this),this._redraw=h.throttle(this._origRedraw,this.options.throttleRedraw))},o.prototype.isActive=function(){return!this.activator||this.activator.active},o.prototype.destroy=function(){this.setItems(null),this.setGroups(null),this.off(),this._stopAutoResize(),this.dom.root.parentNode&&this.dom.root.parentNode.removeChild(this.dom.root),this.dom=null,this.activator&&(this.activator.destroy(),delete this.activator);for(var t in this.listeners)this.listeners.hasOwnProperty(t)&&delete this.listeners[t];this.listeners=null,this.hammer=null,this.components.forEach(function(t){return t.destroy()}),this.body=null},o.prototype.setCustomTime=function(t,e){var i=this.customTimes.filter(function(t){return e===t.options.id});if(0===i.length)throw new Error("No custom time bar found with id "+JSON.stringify(e));i.length>0&&i[0].setCustomTime(t)},o.prototype.getCustomTime=function(t){var e=this.customTimes.filter(function(e){return e.options.id===t});if(0===e.length)throw new Error("No custom time bar found with id "+JSON.stringify(t));return e[0].getCustomTime()},o.prototype.setCustomTimeTitle=function(t,e){var i=this.customTimes.filter(function(t){return t.options.id===e});if(0===i.length)throw new Error("No custom time bar found with id "+JSON.stringify(e));return i.length>0?i[0].setCustomTitle(t):void 0},o.prototype.getEventProperties=function(t){return{event:t}},o.prototype.addCustomTime=function(t,e){var i=void 0!==t?h.convert(t,"Date").valueOf():new Date,o=this.customTimes.some(function(t){return t.options.id===e});if(o)throw new Error("A custom time with id "+JSON.stringify(e)+" already exists");var n=new u(this.body,h.extend({},this.options,{time:i,id:e}));return this.customTimes.push(n),this.components.push(n),this._redraw(),e},o.prototype.removeCustomTime=function(t){var e=this.customTimes.filter(function(e){return e.options.id===t});if(0===e.length)throw new Error("No custom time bar found with id "+JSON.stringify(t));e.forEach(function(t){this.customTimes.splice(this.customTimes.indexOf(t),1),this.components.splice(this.components.indexOf(t),1),t.destroy()}.bind(this))},o.prototype.getVisibleItems=function(){return this.itemSet&&this.itemSet.getVisibleItems()||[]},o.prototype.fit=function(t){var e=this.getDataRange();if(null!==e.min||null!==e.max){var i=e.max-e.min,o=new Date(e.min.valueOf()-.01*i),n=new Date(e.max.valueOf()+.01*i),s=t&&void 0!==t.animation?t.animation:!0;this.range.setRange(o,n,s)}},o.prototype.getDataRange=function(){throw new Error("Cannot invoke abstract method getDataRange")},o.prototype.setWindow=function(t,e,i){var o;if(1==arguments.length){var n=arguments[0];o=void 0!==n.animation?n.animation:!0,this.range.setRange(n.start,n.end,o)}else o=i&&void 0!==i.animation?i.animation:!0,this.range.setRange(t,e,o)},o.prototype.moveTo=function(t,e){var i=this.range.end-this.range.start,o=h.convert(t,"Date").valueOf(),n=o-i/2,s=o+i/2,r=e&&void 0!==e.animation?e.animation:!0;this.range.setRange(n,s,r)},o.prototype.getWindow=function(){var t=this.range.getRange();return{start:new Date(t.start),end:new Date(t.end)}},o.prototype.redraw=function(){this._redraw()},o.prototype._redraw=function(){this.redrawCount++;var t=!1,e=this.options,i=this.props,o=this.dom;if(o&&o.container&&0!=o.root.clientWidth){c.updateHiddenDates(this.options.moment,this.body,this.options.hiddenDates),"top"==e.orientation?(h.addClassName(o.root,"vis-top"),h.removeClassName(o.root,"vis-bottom")):(h.removeClassName(o.root,"vis-top"),h.addClassName(o.root,"vis-bottom")),o.root.style.maxHeight=h.option.asSize(e.maxHeight,""),o.root.style.minHeight=h.option.asSize(e.minHeight,""),o.root.style.width=h.option.asSize(e.width,""),i.border.left=(o.centerContainer.offsetWidth-o.centerContainer.clientWidth)/2,i.border.right=i.border.left,i.border.top=(o.centerContainer.offsetHeight-o.centerContainer.clientHeight)/2,i.border.bottom=i.border.top;var n=o.root.offsetHeight-o.root.clientHeight,s=o.root.offsetWidth-o.root.clientWidth;0===o.centerContainer.clientHeight&&(i.border.left=i.border.top,i.border.right=i.border.left),0===o.root.clientHeight&&(s=n),i.center.height=o.center.offsetHeight,i.left.height=o.left.offsetHeight,i.right.height=o.right.offsetHeight,i.top.height=o.top.clientHeight||-i.border.top,i.bottom.height=o.bottom.clientHeight||-i.border.bottom;var a=Math.max(i.left.height,i.center.height,i.right.height),d=i.top.height+a+i.bottom.height+n+i.border.top+i.border.bottom;o.root.style.height=h.option.asSize(e.height,d+"px"),i.root.height=o.root.offsetHeight,i.background.height=i.root.height-n;var l=i.root.height-i.top.height-i.bottom.height-n;i.centerContainer.height=l,i.leftContainer.height=l,i.rightContainer.height=i.leftContainer.height,i.root.width=o.root.offsetWidth,i.background.width=i.root.width-s,i.left.width=o.leftContainer.clientWidth||-i.border.left,i.leftContainer.width=i.left.width,i.right.width=o.rightContainer.clientWidth||-i.border.right,i.rightContainer.width=i.right.width;var u=i.root.width-i.left.width-i.right.width-s;i.center.width=u,i.centerContainer.width=u,i.top.width=u,i.bottom.width=u,o.background.style.height=i.background.height+"px",o.backgroundVertical.style.height=i.background.height+"px",o.backgroundHorizontal.style.height=i.centerContainer.height+"px",o.centerContainer.style.height=i.centerContainer.height+"px",o.leftContainer.style.height=i.leftContainer.height+"px",o.rightContainer.style.height=i.rightContainer.height+"px",o.background.style.width=i.background.width+"px",o.backgroundVertical.style.width=i.centerContainer.width+"px",o.backgroundHorizontal.style.width=i.background.width+"px",o.centerContainer.style.width=i.center.width+"px",o.top.style.width=i.top.width+"px",o.bottom.style.width=i.bottom.width+"px",o.background.style.left="0",o.background.style.top="0",o.backgroundVertical.style.left=i.left.width+i.border.left+"px",o.backgroundVertical.style.top="0",o.backgroundHorizontal.style.left="0",o.backgroundHorizontal.style.top=i.top.height+"px",o.centerContainer.style.left=i.left.width+"px",o.centerContainer.style.top=i.top.height+"px",o.leftContainer.style.left="0",o.leftContainer.style.top=i.top.height+"px",o.rightContainer.style.left=i.left.width+i.center.width+"px",o.rightContainer.style.top=i.top.height+"px",o.top.style.left=i.left.width+"px",o.top.style.top="0",o.bottom.style.left=i.left.width+"px",o.bottom.style.top=i.top.height+i.centerContainer.height+"px",this._updateScrollTop();var p=this.props.scrollTop;"top"!=e.orientation.item&&(p+=Math.max(this.props.centerContainer.height-this.props.center.height-this.props.border.top-this.props.border.bottom,0)),o.center.style.left="0",o.center.style.top=p+"px",o.left.style.left="0",o.left.style.top=p+"px",o.right.style.left="0",o.right.style.top=p+"px";var f=0==this.props.scrollTop?"hidden":"",m=this.props.scrollTop==this.props.scrollTopMin?"hidden":"";o.shadowTop.style.visibility=f,o.shadowBottom.style.visibility=m,o.shadowTopLeft.style.visibility=f,o.shadowBottomLeft.style.visibility=m,o.shadowTopRight.style.visibility=f,o.shadowBottomRight.style.visibility=m;var v=this.props.center.height>this.props.centerContainer.height;this.hammer.get("pan").set({direction:v?r.DIRECTION_ALL:r.DIRECTION_HORIZONTAL}),this.components.forEach(function(e){t=e.redraw()||t});var g=5;if(t){if(this.redrawCount0&&(this.props.scrollTop=0),this.props.scrollTope;e++)o=this.selection[e],n=this.items[o],n&&n.unselect();for(this.selection=[],e=0,i=t.length;i>e;e++)o=t[e],n=this.items[o],n&&(this.selection.push(o),n.select())},o.prototype.getSelection=function(){return this.selection.concat([])},o.prototype.getVisibleItems=function(){var t=this.body.range.getRange();if(this.options.rtl)var e=this.body.util.toScreen(t.start),i=this.body.util.toScreen(t.end);else var i=this.body.util.toScreen(t.start),e=this.body.util.toScreen(t.end);var o=[];for(var n in this.groups)if(this.groups.hasOwnProperty(n))for(var s=this.groups[n],r=s.visibleItems,a=0;ae&&o.push(h.id):h.lefti&&o.push(h.id)}return o},o.prototype._deselect=function(t){for(var e=this.selection,i=0,o=e.length;o>i;i++)if(e[i]==t){e.splice(i,1);break}},o.prototype.redraw=function(){var t=this.options.margin,e=this.body.range,i=r.option.asSize,o=this.options,n=o.orientation.item,s=!1,a=this.dom.frame;this.props.top=this.body.domProps.top.height+this.body.domProps.border.top,this.options.rtl?this.props.right=this.body.domProps.right.width+this.body.domProps.border.right:this.props.left=this.body.domProps.left.width+this.body.domProps.border.left,a.className="vis-itemset",s=this._orderGroups()||s;var h=e.end-e.start,d=h!=this.lastVisibleInterval||this.props.width!=this.props.lastWidth;d&&(this.stackDirty=!0),this.lastVisibleInterval=h,this.props.lastWidth=this.props.width;var l=this.stackDirty,c=this._firstGroup(),u={item:t.item,axis:t.axis},p={item:t.item,axis:t.item.vertical/2},f=0,m=t.axis+t.item.vertical;return this.groups[y].redraw(e,p,l),r.forEach(this.groups,function(t){var i=t==c?u:p,o=t.redraw(e,i,l);s=o||s,f+=t.height}),f=Math.max(f,m),this.stackDirty=!1,a.style.height=i(f),this.props.width=a.offsetWidth,this.props.height=f,this.dom.axis.style.top=i("top"==n?this.body.domProps.top.height+this.body.domProps.border.top:this.body.domProps.top.height+this.body.domProps.centerContainer.height),this.options.rtl?this.dom.axis.style.right="0":this.dom.axis.style.left="0",s=this._isResized()||s},o.prototype._firstGroup=function(){var t="top"==this.options.orientation.item?0:this.groupIds.length-1,e=this.groupIds[t],i=this.groups[e]||this.groups[g];return i||null},o.prototype._updateUngrouped=function(){var t,e,i=this.groups[g];this.groups[y];if(this.groupsData){if(i){i.hide(),delete this.groups[g];for(e in this.items)if(this.items.hasOwnProperty(e)){t=this.items[e],t.parent&&t.parent.remove(t);var o=this._getGroupId(t.data),n=this.groups[o];n&&n.add(t)||t.hide()}}}else if(!i){var s=null,r=null;i=new c(s,r,this),this.groups[g]=i;for(e in this.items)this.items.hasOwnProperty(e)&&(t=this.items[e],i.add(t));i.show()}},o.prototype.getLabelSet=function(){return this.dom.labelSet},o.prototype.setItems=function(t){var e,i=this,o=this.itemsData;if(t){if(!(t instanceof a||t instanceof h))throw new TypeError("Data must be an instance of DataSet or DataView");this.itemsData=t}else this.itemsData=null;if(o&&(r.forEach(this.itemListeners,function(t,e){o.off(e,t)}),e=o.getIds(),this._onRemove(e)),this.itemsData){var n=this.id;r.forEach(this.itemListeners,function(t,e){i.itemsData.on(e,t,n)}),e=this.itemsData.getIds(),this._onAdd(e),this._updateUngrouped()}this.body.emitter.emit("_change",{queue:!0})},o.prototype.getItems=function(){return this.itemsData},o.prototype.setGroups=function(t){var e,i=this;if(this.groupsData&&(r.forEach(this.groupListeners,function(t,e){i.groupsData.off(e,t)}),e=this.groupsData.getIds(),this.groupsData=null,this._onRemoveGroups(e)),t){if(!(t instanceof a||t instanceof h))throw new TypeError("Data must be an instance of DataSet or DataView");this.groupsData=t}else this.groupsData=null;if(this.groupsData){var o=this.id;r.forEach(this.groupListeners,function(t,e){i.groupsData.on(e,t,o)}),e=this.groupsData.getIds(),this._onAddGroups(e)}this._updateUngrouped(),this._order(),this.body.emitter.emit("_change",{queue:!0})},o.prototype.getGroups=function(){return this.groupsData},o.prototype.removeItem=function(t){var e=this.itemsData.get(t),i=this.itemsData.getDataSet();e&&this.options.onRemove(e,function(e){e&&i.remove(t)})},o.prototype._getType=function(t){return t.type||this.options.type||(t.end?"range":"box")},o.prototype._getGroupId=function(t){var e=this._getType(t);return"background"==e&&void 0==t.group?y:this.groupsData?t.group:g},o.prototype._onUpdate=function(t){var e=this;t.forEach(function(t){var i,n=e.itemsData.get(t,e.itemOptions),s=e.items[t],r=e._getType(n),a=o.types[r];if(s&&(a&&s instanceof a?e._updateItem(s,n):(i=s.selected,e._removeItem(s),s=null)),!s){if(!a)throw"rangeoverflow"==r?new TypeError('Item type "rangeoverflow" is deprecated. Use css styling instead: .vis-item.vis-range .vis-item-content {overflow: visible;}'):new TypeError('Unknown item type "'+r+'"');s=new a(n,e.conversion,e.options),s.id=t,e._addItem(s),i&&(this.selection.push(t),s.select())}}.bind(this)),this._order(),this.stackDirty=!0,this.body.emitter.emit("_change",{queue:!0})},o.prototype._onAdd=o.prototype._onUpdate,o.prototype._onRemove=function(t){var e=0,i=this;t.forEach(function(t){var o=i.items[t];o&&(e++,i._removeItem(o))}),e&&(this._order(),this.stackDirty=!0,this.body.emitter.emit("_change",{queue:!0}))},o.prototype._order=function(){r.forEach(this.groups,function(t){t.order()})},o.prototype._onUpdateGroups=function(t){this._onAddGroups(t)},o.prototype._onAddGroups=function(t){var e=this;t.forEach(function(t){var i=e.groupsData.get(t),o=e.groups[t];if(o)o.setData(i);else{if(t==g||t==y)throw new Error("Illegal group id. "+t+" is a reserved id.");var n=Object.create(e.options);r.extend(n,{height:null}),o=new c(t,i,e),e.groups[t]=o;for(var s in e.items)if(e.items.hasOwnProperty(s)){var a=e.items[s];a.data.group==t&&o.add(a)}o.order(),o.show()}}),this.body.emitter.emit("_change",{queue:!0})},o.prototype._onRemoveGroups=function(t){var e=this.groups;t.forEach(function(t){var i=e[t];i&&(i.hide(),delete e[t])}),this.markDirty(),this.body.emitter.emit("_change",{queue:!0})},o.prototype._orderGroups=function(){if(this.groupsData){var t=this.groupsData.getIds({ +order:this.options.groupOrder}),e=!r.equalArray(t,this.groupIds);if(e){var i=this.groups;t.forEach(function(t){i[t].hide()}),t.forEach(function(t){i[t].show()}),this.groupIds=t}return e}return!1},o.prototype._addItem=function(t){this.items[t.id]=t;var e=this._getGroupId(t.data),i=this.groups[e];i&&i.add(t)},o.prototype._updateItem=function(t,e){var i=t.data.group,o=t.data.subgroup;if(t.setData(e),i!=t.data.group||o!=t.data.subgroup){var n=this.groups[i];n&&n.remove(t);var s=this._getGroupId(t.data),r=this.groups[s];r&&r.add(t)}},o.prototype._removeItem=function(t){t.hide(),delete this.items[t.id];var e=this.selection.indexOf(t.id);-1!=e&&this.selection.splice(e,1),t.parent&&t.parent.remove(t)},o.prototype._constructByEndArray=function(t){for(var e=[],i=0;in+s)return}else{var a=e.height;if(n+a-s>o)return}}if(e&&e!=this.groupTouchParams.group){var h=this.groupsData,d=h.get(e.groupId),l=h.get(this.groupTouchParams.group.groupId);l&&d&&(this.options.groupOrderSwap(l,d,this.groupsData),this.groupsData.update(l),this.groupsData.update(d));var c=this.groupsData.getIds({order:this.options.groupOrder});if(!r.equalArray(c,this.groupTouchParams.originalOrder))for(var h=this.groupsData,u=this.groupTouchParams.originalOrder,p=this.groupTouchParams.group.groupId,f=Math.min(u.length,c.length),m=0,v=0,g=0;f>m;){for(;f>m+v&&f>m+g&&c[m+v]==u[m+g];)m++;if(m+v>=f)break;if(c[m+v]!=p)if(u[m+g]!=p){var y=c.indexOf(u[m+g]),b=h.get(c[m+v]),w=h.get(u[m+g]);this.options.groupOrderSwap(b,w,h),h.update(b),h.update(w);var _=c[m+v];c[m+v]=u[m+g],c[y]=_,m++}else g=1;else v=1}}}},o.prototype._onGroupDragEnd=function(t){if(this.options.groupEditable.order&&this.groupTouchParams.group){t.stopPropagation();var e=this,i=e.groupTouchParams.group.groupId,o=e.groupsData.getDataSet(),n=r.extend({},o.get(i));e.options.onMoveGroup(n,function(t){if(t)t[o._fieldId]=i,o.update(t);else{var n=o.getIds({order:e.options.groupOrder});if(!r.equalArray(n,e.groupTouchParams.originalOrder))for(var s=e.groupTouchParams.originalOrder,a=Math.min(s.length,n.length),h=0;a>h;){for(;a>h&&n[h]==s[h];)h++;if(h>=a)break;var d=n.indexOf(s[h]),l=o.get(n[h]),c=o.get(s[h]);e.options.groupOrderSwap(l,c,o),groupsData.update(l),groupsData.update(c);var u=n[h];n[h]=s[h],n[d]=u,h++}}}),e.body.emitter.emit("groupDragged",{groupId:i})}},o.prototype._onSelectItem=function(t){if(this.options.selectable){var e=t.srcEvent&&(t.srcEvent.ctrlKey||t.srcEvent.metaKey),i=t.srcEvent&&t.srcEvent.shiftKey;if(e||i)return void this._onMultiSelectItem(t);var o=this.getSelection(),n=this.itemFromTarget(t),s=n?[n.id]:[];this.setSelection(s);var r=this.getSelection();(r.length>0||o.length>0)&&this.body.emitter.emit("select",{items:r,event:t})}},o.prototype._onAddItem=function(t){if(this.options.selectable&&this.options.editable.add){var e=this,i=this.options.snap||null,o=this.itemFromTarget(t);if(o){var n=e.itemsData.get(o.id);this.options.onUpdate(n,function(t){t&&e.itemsData.getDataSet().update(t)})}else{if(this.options.rtl)var s=r.getAbsoluteRight(this.dom.frame),a=s-t.center.x;else var s=r.getAbsoluteLeft(this.dom.frame),a=t.center.x-s;var h=this.body.util.toTime(a),d=this.body.util.getScale(),l=this.body.util.getStep(),c={start:i?i(h,d,l):h,content:"new item"};if("range"===this.options.type){var u=this.body.util.toTime(a+this.props.width/5);c.end=i?i(u,d,l):u}c[this.itemsData._fieldId]=r.randomUUID();var p=this.groupFromTarget(t);p&&(c.group=p.groupId),c=this._cloneItemData(c),this.options.onAdd(c,function(t){t&&e.itemsData.getDataSet().add(t)})}}},o.prototype._onMultiSelectItem=function(t){if(this.options.selectable){var e=this.itemFromTarget(t);if(e){var i=this.options.multiselect?this.getSelection():[],n=t.srcEvent&&t.srcEvent.shiftKey||!1;if(n&&this.options.multiselect){var s=this.itemsData.get(e.id).group,r=void 0;this.options.multiselectPerGroup&&i.length>0&&(r=this.itemsData.get(i[0]).group),this.options.multiselectPerGroup&&void 0!=r&&r!=s||i.push(e.id);var a=o._getItemRange(this.itemsData.get(i,this.itemOptions));if(!this.options.multiselectPerGroup||r==s){i=[];for(var h in this.items)if(this.items.hasOwnProperty(h)){var d=this.items[h],l=d.data.start,c=void 0!==d.data.end?d.data.end:l;!(l>=a.min&&c<=a.max)||this.options.multiselectPerGroup&&r!=this.itemsData.get(d.id).group||d instanceof v||i.push(d.id)}}}else{var u=i.indexOf(e.id);-1==u?i.push(e.id):i.splice(u,1)}this.setSelection(i),this.body.emitter.emit("select",{items:this.getSelection(),event:t})}}},o._getItemRange=function(t){var e=null,i=null;return t.forEach(function(t){(null==i||t.starte)&&(e=t.end):(null==e||t.start>e)&&(e=t.start)}),{min:i,max:e}},o.prototype.itemFromTarget=function(t){for(var e=t.target;e;){if(e.hasOwnProperty("timeline-item"))return e["timeline-item"];e=e.parentNode}return null},o.prototype.groupFromTarget=function(t){for(var e=t.center?t.center.y:t.clientY,i=0;ia&&ea)return n}else if(0===i&&e0?t.step:1,this.autoScale=!1)},o.prototype.setAutoScale=function(t){this.autoScale=t},o.prototype.setMinimumStep=function(t){if(void 0!=t){var e=31104e6,i=2592e6,o=864e5,n=36e5,s=6e4,r=1e3,a=1;1e3*e>t&&(this.scale="year",this.step=1e3),500*e>t&&(this.scale="year",this.step=500),100*e>t&&(this.scale="year",this.step=100),50*e>t&&(this.scale="year",this.step=50),10*e>t&&(this.scale="year",this.step=10),5*e>t&&(this.scale="year",this.step=5),e>t&&(this.scale="year",this.step=1),3*i>t&&(this.scale="month",this.step=3),i>t&&(this.scale="month",this.step=1),5*o>t&&(this.scale="day",this.step=5),2*o>t&&(this.scale="day",this.step=2),o>t&&(this.scale="day",this.step=1),o/2>t&&(this.scale="weekday",this.step=1),4*n>t&&(this.scale="hour",this.step=4),n>t&&(this.scale="hour",this.step=1),15*s>t&&(this.scale="minute",this.step=15),10*s>t&&(this.scale="minute",this.step=10),5*s>t&&(this.scale="minute",this.step=5),s>t&&(this.scale="minute",this.step=1),15*r>t&&(this.scale="second",this.step=15),10*r>t&&(this.scale="second",this.step=10),5*r>t&&(this.scale="second",this.step=5),r>t&&(this.scale="second",this.step=1),200*a>t&&(this.scale="millisecond",this.step=200),100*a>t&&(this.scale="millisecond",this.step=100),50*a>t&&(this.scale="millisecond",this.step=50),10*a>t&&(this.scale="millisecond",this.step=10),5*a>t&&(this.scale="millisecond",this.step=5),a>t&&(this.scale="millisecond",this.step=1)}},o.snap=function(t,e,i){var o=n(t);if("year"==e){var s=o.year()+Math.round(o.month()/12);o.year(Math.round(s/i)*i),o.month(0),o.date(0),o.hours(0),o.minutes(0),o.seconds(0),o.milliseconds(0)}else if("month"==e)o.date()>15?(o.date(1),o.add(1,"month")):o.date(1),o.hours(0),o.minutes(0),o.seconds(0),o.milliseconds(0);else if("day"==e){switch(i){case 5:case 2:o.hours(24*Math.round(o.hours()/24));break;default:o.hours(12*Math.round(o.hours()/12))}o.minutes(0),o.seconds(0),o.milliseconds(0)}else if("weekday"==e){switch(i){case 5:case 2:o.hours(12*Math.round(o.hours()/12));break;default:o.hours(6*Math.round(o.hours()/6))}o.minutes(0),o.seconds(0),o.milliseconds(0)}else if("hour"==e){switch(i){case 4:o.minutes(60*Math.round(o.minutes()/60));break;default:o.minutes(30*Math.round(o.minutes()/30))}o.seconds(0),o.milliseconds(0)}else if("minute"==e){switch(i){case 15:case 10:o.minutes(5*Math.round(o.minutes()/5)),o.seconds(0);break;case 5:o.seconds(60*Math.round(o.seconds()/60));break;default:o.seconds(30*Math.round(o.seconds()/30))}o.milliseconds(0)}else if("second"==e)switch(i){case 15:case 10:o.seconds(5*Math.round(o.seconds()/5)),o.milliseconds(0);break;case 5:o.milliseconds(1e3*Math.round(o.milliseconds()/1e3));break;default:o.milliseconds(500*Math.round(o.milliseconds()/500))}else if("millisecond"==e){var r=i>5?i/2:1;o.milliseconds(Math.round(o.milliseconds()/r)*r)}return o},o.prototype.isMajor=function(){if(1==this.switchedYear)switch(this.switchedYear=!1,this.scale){case"year":case"month":case"weekday":case"day":case"hour":case"minute":case"second":case"millisecond":return!0;default:return!1}else if(1==this.switchedMonth)switch(this.switchedMonth=!1,this.scale){case"weekday":case"day":case"hour":case"minute":case"second":case"millisecond":return!0;default:return!1}else if(1==this.switchedDay)switch(this.switchedDay=!1,this.scale){case"millisecond":case"second":case"minute":case"hour":return!0;default:return!1}var t=this.moment(this.current);switch(this.scale){case"millisecond":return 0==t.milliseconds();case"second":return 0==t.seconds();case"minute":return 0==t.hours()&&0==t.minutes();case"hour":return 0==t.hours();case"weekday":case"day":return 1==t.date();case"month":return 0==t.month();case"year":return!1;default:return!1}},o.prototype.getLabelMinor=function(t){void 0==t&&(t=this.current);var e=this.format.minorLabels[this.scale];return e&&e.length>0?this.moment(t).format(e):""},o.prototype.getLabelMajor=function(t){void 0==t&&(t=this.current);var e=this.format.majorLabels[this.scale];return e&&e.length>0?this.moment(t).format(e):""},o.prototype.getClassName=function(){function t(t){return t/h%2==0?" vis-even":" vis-odd"}function e(t){return t.isSame(new Date,"day")?" vis-today":t.isSame(s().add(1,"day"),"day")?" vis-tomorrow":t.isSame(s().add(-1,"day"),"day")?" vis-yesterday":""}function i(t){return t.isSame(new Date,"week")?" vis-current-week":""}function o(t){return t.isSame(new Date,"month")?" vis-current-month":""}function n(t){return t.isSame(new Date,"year")?" vis-current-year":""}var s=this.moment,r=this.moment(this.current),a=r.locale?r.locale("en"):r.lang("en"),h=this.step;switch(this.scale){case"millisecond":return t(a.milliseconds()).trim();case"second":return t(a.seconds()).trim();case"minute":return t(a.minutes()).trim();case"hour":var d=a.hours();return 4==this.step&&(d=d+"-h"+(d+4)),"vis-h"+d+e(a)+t(a.hours());case"weekday":return"vis-"+a.format("dddd").toLowerCase()+e(a)+i(a)+t(a.date());case"day":var l=a.date(),c=a.format("MMMM").toLowerCase();return"vis-day"+l+" vis-"+c+o(a)+t(l-1);case"month":return"vis-"+a.format("MMMM").toLowerCase()+o(a)+t(a.month());case"year":var u=a.year();return"vis-year"+u+n(a)+t(u);default:return""}},t.exports=o},function(t,e,i){function o(t,e,i){this.groupId=t,this.subgroups={},this.subgroupIndex=0,this.subgroupOrderer=e&&e.subgroupOrder,this.itemSet=i,this.dom={},this.props={label:{width:0,height:0}},this.className=null,this.items={},this.visibleItems=[],this.orderedItems={byStart:[],byEnd:[]},this.checkRangedItems=!1;var o=this;this.itemSet.body.emitter.on("checkRangedItems",function(){o.checkRangedItems=!0}),this._create(),this.setData(e)}var n=i(1),s=i(37);i(38);o.prototype._create=function(){var t=document.createElement("div");this.itemSet.options.groupEditable.order?t.className="vis-label draggable":t.className="vis-label",this.dom.label=t;var e=document.createElement("div");e.className="vis-inner",t.appendChild(e),this.dom.inner=e;var i=document.createElement("div");i.className="vis-group",i["timeline-group"]=this,this.dom.foreground=i,this.dom.background=document.createElement("div"),this.dom.background.className="vis-group",this.dom.axis=document.createElement("div"),this.dom.axis.className="vis-group",this.dom.marker=document.createElement("div"),this.dom.marker.style.visibility="hidden",this.dom.marker.innerHTML="?",this.dom.background.appendChild(this.dom.marker)},o.prototype.setData=function(t){var e;if(e=this.itemSet.options&&this.itemSet.options.groupTemplate?this.itemSet.options.groupTemplate(t):t&&t.content,e instanceof Element){for(this.dom.inner.appendChild(e);this.dom.inner.firstChild;)this.dom.inner.removeChild(this.dom.inner.firstChild);this.dom.inner.appendChild(e)}else void 0!==e&&null!==e?this.dom.inner.innerHTML=e:this.dom.inner.innerHTML=this.groupId||"";this.dom.label.title=t&&t.title||"",this.dom.inner.firstChild?n.removeClassName(this.dom.inner,"vis-hidden"):n.addClassName(this.dom.inner,"vis-hidden");var i=t&&t.className||null;i!=this.className&&(this.className&&(n.removeClassName(this.dom.label,this.className),n.removeClassName(this.dom.foreground,this.className),n.removeClassName(this.dom.background,this.className),n.removeClassName(this.dom.axis,this.className)),n.addClassName(this.dom.label,i),n.addClassName(this.dom.foreground,i),n.addClassName(this.dom.background,i),n.addClassName(this.dom.axis,i),this.className=i),this.style&&(n.removeCssText(this.dom.label,this.style),this.style=null),t&&t.style&&(n.addCssText(this.dom.label,t.style),this.style=t.style)},o.prototype.getLabelWidth=function(){return this.props.label.width},o.prototype.redraw=function(t,e,i){var o=!1,r=this.dom.marker.clientHeight;if(r!=this.lastMarkerHeight&&(this.lastMarkerHeight=r,n.forEach(this.items,function(t){t.dirty=!0,t.displayed&&t.redraw()}),i=!0),this._calculateSubGroupHeights(),"function"==typeof this.itemSet.options.order){if(i){var a=this,h=!1;n.forEach(this.items,function(t){t.displayed||(t.redraw(),a.visibleItems.push(t)),t.repositionX(h)});var d=this.orderedItems.byStart.slice().sort(function(t,e){return a.itemSet.options.order(t.data,e.data)});s.stack(d,e,!0)}this.visibleItems=this._updateVisibleItems(this.orderedItems,this.visibleItems,t)}else this.visibleItems=this._updateVisibleItems(this.orderedItems,this.visibleItems,t),this.itemSet.options.stack?s.stack(this.visibleItems,e,i):s.nostack(this.visibleItems,e,this.subgroups);var l=this._calculateHeight(e),c=this.dom.foreground;this.top=c.offsetTop,this.right=c.offsetLeft,this.width=c.offsetWidth,o=n.updateProperty(this,"height",l)||o,o=n.updateProperty(this.props.label,"width",this.dom.inner.clientWidth)||o,o=n.updateProperty(this.props.label,"height",this.dom.inner.clientHeight)||o,this.dom.background.style.height=l+"px",this.dom.foreground.style.height=l+"px",this.dom.label.style.height=l+"px";for(var u=0,p=this.visibleItems.length;p>u;u++){var f=this.visibleItems[u];f.repositionY(e)}return o},o.prototype._calculateSubGroupHeights=function(){if(Object.keys(this.subgroups).length>0){var t=this;this.resetSubgroups(),n.forEach(this.visibleItems,function(e){void 0!==e.data.subgroup&&(t.subgroups[e.data.subgroup].height=Math.max(t.subgroups[e.data.subgroup].height,e.height),t.subgroups[e.data.subgroup].visible=!0)})}},o.prototype._calculateHeight=function(t){var e,i=this.visibleItems;if(i.length>0){var o=i[0].top,s=i[0].top+i[0].height;if(n.forEach(i,function(t){o=Math.min(o,t.top),s=Math.max(s,t.top+t.height)}),o>t.axis){var r=o-t.axis;s-=r,n.forEach(i,function(t){t.top-=r})}e=s+t.item.vertical/2}else e=0;return e=Math.max(e,this.props.label.height)},o.prototype.show=function(){this.dom.label.parentNode||this.itemSet.dom.labelSet.appendChild(this.dom.label),this.dom.foreground.parentNode||this.itemSet.dom.foreground.appendChild(this.dom.foreground),this.dom.background.parentNode||this.itemSet.dom.background.appendChild(this.dom.background),this.dom.axis.parentNode||this.itemSet.dom.axis.appendChild(this.dom.axis)},o.prototype.hide=function(){var t=this.dom.label;t.parentNode&&t.parentNode.removeChild(t);var e=this.dom.foreground;e.parentNode&&e.parentNode.removeChild(e);var i=this.dom.background;i.parentNode&&i.parentNode.removeChild(i);var o=this.dom.axis;o.parentNode&&o.parentNode.removeChild(o)},o.prototype.add=function(t){if(this.items[t.id]=t,t.setParent(this),void 0!==t.data.subgroup&&(void 0===this.subgroups[t.data.subgroup]&&(this.subgroups[t.data.subgroup]={height:0,visible:!1,index:this.subgroupIndex,items:[]},this.subgroupIndex++),this.subgroups[t.data.subgroup].items.push(t)),this.orderSubgroups(),-1==this.visibleItems.indexOf(t)){var e=this.itemSet.body.range;this._checkIfVisible(t,this.visibleItems,e)}},o.prototype.orderSubgroups=function(){if(void 0!==this.subgroupOrderer){var t=[];if("string"==typeof this.subgroupOrderer){for(var e in this.subgroups)t.push({subgroup:e,sortField:this.subgroups[e].items[0].data[this.subgroupOrderer]});t.sort(function(t,e){return t.sortField-e.sortField})}else if("function"==typeof this.subgroupOrderer){for(var e in this.subgroups)t.push(this.subgroups[e].items[0].data);t.sort(this.subgroupOrderer)}if(t.length>0)for(var i=0;it?-1:l>=t?0:1};if(e.length>0)for(s=0;sl}),1==this.checkRangedItems)for(this.checkRangedItems=!1,s=0;sl})}for(s=0;s=0&&(s=e[r],!n(s));r--)void 0===o[s.id]&&(o[s.id]=!0,i.push(s));for(r=t+1;rn;n++)t[n].top=null;for(n=0,s=t.length;s>n;n++){var r=t[n];if(r.stack&&null===r.top){r.top=i.axis;do{for(var a=null,h=0,d=t.length;d>h;h++){var l=t[h];if(null!==l.top&&l!==r&&l.stack&&e.collision(r,l,i.item,l.options.rtl)){a=l;break}}null!=a&&(r.top=a.top+a.height+i.item.vertical)}while(a)}}},e.nostack=function(t,e,i){var o,n,s;for(o=0,n=t.length;n>o;o++)if(void 0!==t[o].data.subgroup){s=e.axis;for(var r in i)i.hasOwnProperty(r)&&1==i[r].visible&&i[r].indexe.right&&t.top-o.vertical+ie.top:t.left-o.horizontal+ie.left&&t.top-o.vertical+ie.top}},function(t,e,i){function o(t,e,i){if(this.props={content:{width:0}},this.overflow=!1,this.options=i,t){if(void 0==t.start)throw new Error('Property "start" missing in item '+t.id);if(void 0==t.end)throw new Error('Property "end" missing in item '+t.id)}n.call(this,t,e,i)}var n=(i(20),i(39));o.prototype=new n(null,null,null),o.prototype.baseClassName="vis-item vis-range",o.prototype.isVisible=function(t){return this.data.startt.start},o.prototype.redraw=function(){var t=this.dom;if(t||(this.dom={},t=this.dom,t.box=document.createElement("div"),t.frame=document.createElement("div"),t.frame.className="vis-item-overflow",t.box.appendChild(t.frame),t.content=document.createElement("div"),t.content.className="vis-item-content",t.frame.appendChild(t.content),t.box["timeline-item"]=this,this.dirty=!0),!this.parent)throw new Error("Cannot redraw item: no parent attached");if(!t.box.parentNode){var e=this.parent.dom.foreground;if(!e)throw new Error("Cannot redraw item: parent has no foreground container element");e.appendChild(t.box)}if(this.displayed=!0,this.dirty){this._updateContents(this.dom.content),this._updateTitle(this.dom.box),this._updateDataAttributes(this.dom.box),this._updateStyle(this.dom.box);var i=(this.options.editable.updateTime||this.options.editable.updateGroup||this.editable===!0)&&this.editable!==!1,o=(this.data.className?" "+this.data.className:"")+(this.selected?" vis-selected":"")+(i?" vis-editable":" vis-readonly");t.box.className=this.baseClassName+o,this.overflow="hidden"!==window.getComputedStyle(t.frame).overflow,this.dom.content.style.maxWidth="none",this.props.content.width=this.dom.content.offsetWidth,this.height=this.dom.box.offsetHeight,this.dom.content.style.maxWidth="",this.dirty=!1}this._repaintDeleteButton(t.box),this._repaintDragLeft(),this._repaintDragRight()},o.prototype.show=function(){this.displayed||this.redraw()},o.prototype.hide=function(){if(this.displayed){var t=this.dom.box;t.parentNode&&t.parentNode.removeChild(t),this.displayed=!1}},o.prototype.repositionX=function(t){var e,i,o=this.parent.width,n=this.conversion.toScreen(this.data.start),s=this.conversion.toScreen(this.data.end);void 0!==t&&t!==!0||(-o>n&&(n=-o),s>2*o&&(s=2*o));var r=Math.max(s-n,1);switch(this.overflow?(this.options.rtl?this.right=n:this.left=n,this.width=r+this.props.content.width,i=this.props.content.width):(this.options.rtl?this.right=n:this.left=n, +this.width=r,i=Math.min(s-n,this.props.content.width)),this.options.rtl?this.dom.box.style.right=this.right+"px":this.dom.box.style.left=this.left+"px",this.dom.box.style.width=r+"px",this.options.align){case"left":this.options.rtl?this.dom.content.style.right="0":this.dom.content.style.left="0";break;case"right":this.options.rtl?this.dom.content.style.right=Math.max(r-i,0)+"px":this.dom.content.style.left=Math.max(r-i,0)+"px";break;case"center":this.options.rtl?this.dom.content.style.right=Math.max((r-i)/2,0)+"px":this.dom.content.style.left=Math.max((r-i)/2,0)+"px";break;default:e=this.overflow?s>0?Math.max(-n,0):-i:0>n?-n:0,this.options.rtl?this.dom.content.style.right=e+"px":this.dom.content.style.left=e+"px"}},o.prototype.repositionY=function(){var t=this.options.orientation.item,e=this.dom.box;"top"==t?e.style.top=this.top+"px":e.style.top=this.parent.height-this.top-this.height+"px"},o.prototype._repaintDragLeft=function(){if(this.selected&&this.options.editable.updateTime&&!this.dom.dragLeft){var t=document.createElement("div");t.className="vis-drag-left",t.dragLeftItem=this,this.dom.box.appendChild(t),this.dom.dragLeft=t}else!this.selected&&this.dom.dragLeft&&(this.dom.dragLeft.parentNode&&this.dom.dragLeft.parentNode.removeChild(this.dom.dragLeft),this.dom.dragLeft=null)},o.prototype._repaintDragRight=function(){if(this.selected&&this.options.editable.updateTime&&!this.dom.dragRight){var t=document.createElement("div");t.className="vis-drag-right",t.dragRightItem=this,this.dom.box.appendChild(t),this.dom.dragRight=t}else!this.selected&&this.dom.dragRight&&(this.dom.dragRight.parentNode&&this.dom.dragRight.parentNode.removeChild(this.dom.dragRight),this.dom.dragRight=null)},t.exports=o},function(t,e,i){function o(t,e,i){this.id=null,this.parent=null,this.data=t,this.dom=null,this.conversion=e||{},this.options=i||{},this.selected=!1,this.displayed=!1,this.dirty=!0,this.top=null,this.right=null,this.left=null,this.width=null,this.height=null,this.editable=null,this.data&&this.data.hasOwnProperty("editable")&&"boolean"==typeof this.data.editable&&(this.editable=t.editable)}var n=i(20),s=i(1);o.prototype.stack=!0,o.prototype.select=function(){this.selected=!0,this.dirty=!0,this.displayed&&this.redraw()},o.prototype.unselect=function(){this.selected=!1,this.dirty=!0,this.displayed&&this.redraw()},o.prototype.setData=function(t){var e=void 0!=t.group&&this.data.group!=t.group;e&&this.parent.itemSet._moveToGroup(this,t.group),t.hasOwnProperty("editable")&&"boolean"==typeof t.editable&&(this.editable=t.editable),this.data=t,this.dirty=!0,this.displayed&&this.redraw()},o.prototype.setParent=function(t){this.displayed?(this.hide(),this.parent=t,this.parent&&this.show()):this.parent=t},o.prototype.isVisible=function(t){return!1},o.prototype.show=function(){return!1},o.prototype.hide=function(){return!1},o.prototype.redraw=function(){},o.prototype.repositionX=function(){},o.prototype.repositionY=function(){},o.prototype._repaintDeleteButton=function(t){var e=(this.options.editable.remove||this.data.editable===!0)&&this.data.editable!==!1;if(this.selected&&e&&!this.dom.deleteButton){var i=this,o=document.createElement("div");this.options.rtl?o.className="vis-delete-rtl":o.className="vis-delete",o.title="Delete this item",new n(o).on("tap",function(t){t.stopPropagation(),i.parent.removeFromDataSet(i)}),t.appendChild(o),this.dom.deleteButton=o}else!this.selected&&this.dom.deleteButton&&(this.dom.deleteButton.parentNode&&this.dom.deleteButton.parentNode.removeChild(this.dom.deleteButton),this.dom.deleteButton=null)},o.prototype._updateContents=function(t){var e;if(this.options.template){var i=this.parent.itemSet.itemsData.get(this.id);e=this.options.template(i)}else e=this.data.content;var o=this._contentToString(this.content)!==this._contentToString(e);if(o){if(e instanceof Element)t.innerHTML="",t.appendChild(e);else if(void 0!=e)t.innerHTML=e;else if("background"!=this.data.type||void 0!==this.data.content)throw new Error('Property "content" missing in item '+this.id);this.content=e}},o.prototype._updateTitle=function(t){null!=this.data.title?t.title=this.data.title||"":t.removeAttribute("vis-title")},o.prototype._updateDataAttributes=function(t){if(this.options.dataAttributes&&this.options.dataAttributes.length>0){var e=[];if(Array.isArray(this.options.dataAttributes))e=this.options.dataAttributes;else{if("all"!=this.options.dataAttributes)return;e=Object.keys(this.data)}for(var i=0;in;n++){var r=this.visibleItems[n];r.repositionY(e)}return o},o.prototype.show=function(){this.dom.background.parentNode||this.itemSet.dom.background.appendChild(this.dom.background)},t.exports=o},function(t,e,i){function o(t,e,i){if(this.props={dot:{width:0,height:0},line:{width:0,height:0}},this.options=i,t&&void 0==t.start)throw new Error('Property "start" missing in item '+t);n.call(this,t,e,i)}var n=i(39);i(1);o.prototype=new n(null,null,null),o.prototype.isVisible=function(t){var e=(t.end-t.start)/4;return this.data.start>t.start-e&&this.data.startt.start-e&&this.data.startt.start},o.prototype.redraw=function(){var t=this.dom;if(t||(this.dom={},t=this.dom,t.box=document.createElement("div"),t.frame=document.createElement("div"),t.frame.className="vis-item-overflow",t.box.appendChild(t.frame),t.content=document.createElement("div"),t.content.className="vis-item-content",t.frame.appendChild(t.content),this.dirty=!0),!this.parent)throw new Error("Cannot redraw item: no parent attached");if(!t.box.parentNode){var e=this.parent.dom.background;if(!e)throw new Error("Cannot redraw item: parent has no background container element");e.appendChild(t.box)}if(this.displayed=!0,this.dirty){this._updateContents(this.dom.content),this._updateTitle(this.dom.content),this._updateDataAttributes(this.dom.content),this._updateStyle(this.dom.box);var i=(this.data.className?" "+this.data.className:"")+(this.selected?" vis-selected":"");t.box.className=this.baseClassName+i,this.overflow="hidden"!==window.getComputedStyle(t.content).overflow,this.props.content.width=this.dom.content.offsetWidth,this.height=0,this.dirty=!1}},o.prototype.show=r.prototype.show,o.prototype.hide=r.prototype.hide,o.prototype.repositionX=r.prototype.repositionX,o.prototype.repositionY=function(t){var e="top"===this.options.orientation.item;this.dom.content.style.top=e?"":"0",this.dom.content.style.bottom=e?"0":"";var i;if(void 0!==this.data.subgroup){var o=this.data.subgroup,n=this.parent.subgroups,r=n[o].index;if(1==e){i=this.parent.subgroups[o].height+t.item.vertical,i+=0==r?t.axis-.5*t.item.vertical:0;var a=this.parent.top;for(var h in n)n.hasOwnProperty(h)&&1==n[h].visible&&n[h].indexr&&(a+=l)}i=this.parent.subgroups[o].height+t.item.vertical,this.dom.box.style.top=this.parent.height-d+a+"px",this.dom.box.style.bottom=""}}else this.parent instanceof s?(i=Math.max(this.parent.height,this.parent.itemSet.body.domProps.center.height,this.parent.itemSet.body.domProps.centerContainer.height),this.dom.box.style.top=e?"0":"",this.dom.box.style.bottom=e?"":"0"):(i=this.parent.height,this.dom.box.style.top=this.parent.top+"px",this.dom.box.style.bottom="");this.dom.box.style.height=i+"px"},t.exports=o},function(t,e,i){function o(t,e){this.dom={foreground:null,lines:[],majorTexts:[],minorTexts:[],redundant:{lines:[],majorTexts:[],minorTexts:[]}},this.props={range:{start:0,end:0,minimumStep:0},lineTop:0},this.defaultOptions={orientation:{axis:"bottom"},showMinorLabels:!0,showMajorLabels:!0,maxMinorChars:7,format:a.FORMAT,moment:d,timeAxis:null},this.options=s.extend({},this.defaultOptions),this.body=t,this._create(),this.setOptions(e)}var n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol?"symbol":typeof t},s=i(1),r=i(31),a=i(35),h=i(32),d=i(2);o.prototype=new r,o.prototype.setOptions=function(t){t&&(s.selectiveExtend(["showMinorLabels","showMajorLabels","maxMinorChars","hiddenDates","timeAxis","moment","rtl"],this.options,t),s.selectiveDeepExtend(["format"],this.options,t),"orientation"in t&&("string"==typeof t.orientation?this.options.orientation.axis=t.orientation:"object"===n(t.orientation)&&"axis"in t.orientation&&(this.options.orientation.axis=t.orientation.axis)),"locale"in t&&("function"==typeof d.locale?d.locale(t.locale):d.lang(t.locale)))},o.prototype._create=function(){this.dom.foreground=document.createElement("div"),this.dom.background=document.createElement("div"),this.dom.foreground.className="vis-time-axis vis-foreground",this.dom.background.className="vis-time-axis vis-background"},o.prototype.destroy=function(){this.dom.foreground.parentNode&&this.dom.foreground.parentNode.removeChild(this.dom.foreground),this.dom.background.parentNode&&this.dom.background.parentNode.removeChild(this.dom.background),this.body=null},o.prototype.redraw=function(){var t=this.props,e=this.dom.foreground,i=this.dom.background,o="top"==this.options.orientation.axis?this.body.dom.top:this.body.dom.bottom,n=e.parentNode!==o;this._calculateCharSize();var s=this.options.showMinorLabels&&"none"!==this.options.orientation.axis,r=this.options.showMajorLabels&&"none"!==this.options.orientation.axis;t.minorLabelHeight=s?t.minorCharHeight:0,t.majorLabelHeight=r?t.majorCharHeight:0,t.height=t.minorLabelHeight+t.majorLabelHeight,t.width=e.offsetWidth,t.minorLineHeight=this.body.domProps.root.height-t.majorLabelHeight-("top"==this.options.orientation.axis?this.body.domProps.bottom.height:this.body.domProps.top.height),t.minorLineWidth=1,t.majorLineHeight=t.minorLineHeight+t.majorLabelHeight,t.majorLineWidth=1;var a=e.nextSibling,h=i.nextSibling;return e.parentNode&&e.parentNode.removeChild(e),i.parentNode&&i.parentNode.removeChild(i),e.style.height=this.props.height+"px",this._repaintLabels(),a?o.insertBefore(e,a):o.appendChild(e),h?this.body.dom.backgroundVertical.insertBefore(i,h):this.body.dom.backgroundVertical.appendChild(i),this._isResized()||n},o.prototype._repaintLabels=function(){var t=this.options.orientation.axis,e=s.convert(this.body.range.start,"Number"),i=s.convert(this.body.range.end,"Number"),o=this.body.util.toTime((this.props.minorCharWidth||10)*this.options.maxMinorChars).valueOf(),n=o-h.getHiddenDurationBefore(this.options.moment,this.body.hiddenDates,this.body.range,o);n-=this.body.util.toTime(0).valueOf();var r=new a(new Date(e),new Date(i),n,this.body.hiddenDates);r.setMoment(this.options.moment),this.options.format&&r.setFormat(this.options.format),this.options.timeAxis&&r.setScale(this.options.timeAxis),this.step=r;var d=this.dom;d.redundant.lines=d.lines,d.redundant.majorTexts=d.majorTexts,d.redundant.minorTexts=d.minorTexts,d.lines=[],d.majorTexts=[],d.minorTexts=[];var c,u,p,f,m,v,g,y,b,w,_=0,x=void 0,k=0,O=1e3;for(r.start(),u=r.getCurrent(),f=this.body.util.toScreen(u);r.hasNext()&&O>k;){k++,m=r.isMajor(),w=r.getClassName(),b=r.getLabelMinor(),c=u,p=f,r.next(),u=r.getCurrent(),v=r.isMajor(),f=this.body.util.toScreen(u),g=_,_=f-p;var M=_>=.4*g;if(this.options.showMinorLabels&&M){var D=this._repaintMinorText(p,b,t,w);D.style.width=_+"px"}m&&this.options.showMajorLabels?(p>0&&(void 0==x&&(x=p),D=this._repaintMajorText(p,r.getLabelMajor(),t,w)),y=this._repaintMajorLine(p,_,t,w)):M?y=this._repaintMinorLine(p,_,t,w):y&&(y.style.width=parseInt(y.style.width)+_+"px")}if(k!==O||l||(console.warn("Something is wrong with the Timeline scale. Limited drawing of grid lines to "+O+" lines."),l=!0),this.options.showMajorLabels){var S=this.body.util.toTime(0),C=r.getLabelMajor(S),T=C.length*(this.props.majorCharWidth||10)+10;(void 0==x||x>T)&&this._repaintMajorText(0,C,t,w)}s.forEach(this.dom.redundant,function(t){for(;t.length;){var e=t.pop();e&&e.parentNode&&e.parentNode.removeChild(e)}})},o.prototype._repaintMinorText=function(t,e,i,o){var n=this.dom.redundant.minorTexts.shift();if(!n){var s=document.createTextNode("");n=document.createElement("div"),n.appendChild(s),this.dom.foreground.appendChild(n)}return this.dom.minorTexts.push(n),n.childNodes[0].nodeValue=e,n.style.top="top"==i?this.props.majorLabelHeight+"px":"0",this.options.rtl?(n.style.left="",n.style.right=t+"px"):n.style.left=t+"px",n.className="vis-text vis-minor "+o,n},o.prototype._repaintMajorText=function(t,e,i,o){var n=this.dom.redundant.majorTexts.shift();if(!n){var s=document.createTextNode(e);n=document.createElement("div"),n.appendChild(s),this.dom.foreground.appendChild(n)}return this.dom.majorTexts.push(n),n.childNodes[0].nodeValue=e,n.className="vis-text vis-major "+o,n.style.top="top"==i?"0":this.props.minorLabelHeight+"px",this.options.rtl?(n.style.left="",n.style.right=t+"px"):n.style.left=t+"px",n},o.prototype._repaintMinorLine=function(t,e,i,o){var n=this.dom.redundant.lines.shift();n||(n=document.createElement("div"),this.dom.background.appendChild(n)),this.dom.lines.push(n);var s=this.props;return"top"==i?n.style.top=s.majorLabelHeight+"px":n.style.top=this.body.domProps.top.height+"px",n.style.height=s.minorLineHeight+"px",this.options.rtl?(n.style.left="",n.style.right=t-s.minorLineWidth/2+"px",n.className="vis-grid vis-vertical-rtl vis-minor "+o):(n.style.left=t-s.minorLineWidth/2+"px",n.className="vis-grid vis-vertical vis-minor "+o),n.style.width=e+"px",n},o.prototype._repaintMajorLine=function(t,e,i,o){var n=this.dom.redundant.lines.shift();n||(n=document.createElement("div"),this.dom.background.appendChild(n)),this.dom.lines.push(n);var s=this.props;return"top"==i?n.style.top="0":n.style.top=this.body.domProps.top.height+"px",this.options.rtl?(n.style.left="",n.style.right=t-s.majorLineWidth/2+"px",n.className="vis-grid vis-vertical-rtl vis-major "+o):(n.style.left=t-s.majorLineWidth/2+"px",n.className="vis-grid vis-vertical vis-major "+o),n.style.height=s.majorLineHeight+"px",n.style.width=e+"px",n},o.prototype._calculateCharSize=function(){this.dom.measureCharMinor||(this.dom.measureCharMinor=document.createElement("DIV"),this.dom.measureCharMinor.className="vis-text vis-minor vis-measure",this.dom.measureCharMinor.style.position="absolute",this.dom.measureCharMinor.appendChild(document.createTextNode("0")),this.dom.foreground.appendChild(this.dom.measureCharMinor)),this.props.minorCharHeight=this.dom.measureCharMinor.clientHeight,this.props.minorCharWidth=this.dom.measureCharMinor.clientWidth,this.dom.measureCharMajor||(this.dom.measureCharMajor=document.createElement("DIV"),this.dom.measureCharMajor.className="vis-text vis-major vis-measure",this.dom.measureCharMajor.style.position="absolute",this.dom.measureCharMajor.appendChild(document.createTextNode("0")),this.dom.foreground.appendChild(this.dom.measureCharMajor)),this.props.majorCharHeight=this.dom.measureCharMajor.clientHeight,this.props.majorCharWidth=this.dom.measureCharMajor.clientWidth};var l=!1;t.exports=o},function(t,e,i){function o(t){this.active=!1,this.dom={container:t},this.dom.overlay=document.createElement("div"),this.dom.overlay.className="vis-overlay",this.dom.container.appendChild(this.dom.overlay),this.hammer=a(this.dom.overlay),this.hammer.on("tap",this._onTapOverlay.bind(this));var e=this,i=["tap","doubletap","press","pinch","pan","panstart","panmove","panend"];i.forEach(function(t){e.hammer.on(t,function(t){t.stopPropagation()})}),document&&document.body&&(this.onClick=function(i){n(i.target,t)||e.deactivate()},document.body.addEventListener("click",this.onClick)),void 0!==this.keycharm&&this.keycharm.destroy(),this.keycharm=s(),this.escListener=this.deactivate.bind(this)}function n(t,e){for(;t;){if(t===e)return!0;t=t.parentNode}return!1}var s=i(23),r=i(13),a=i(20),h=i(1);r(o.prototype),o.current=null,o.prototype.destroy=function(){this.deactivate(),this.dom.overlay.parentNode.removeChild(this.dom.overlay),this.onClick&&document.body.removeEventListener("click",this.onClick),this.hammer.destroy(),this.hammer=null},o.prototype.activate=function(){o.current&&o.current.deactivate(),o.current=this,this.active=!0,this.dom.overlay.style.display="none",h.addClassName(this.dom.container,"vis-active"),this.emit("change"),this.emit("activate"),this.keycharm.bind("esc",this.escListener)},o.prototype.deactivate=function(){this.active=!1,this.dom.overlay.style.display="",h.removeClassName(this.dom.container,"vis-active"),this.keycharm.unbind("esc",this.escListener),this.emit("change"),this.emit("deactivate")},o.prototype._onTapOverlay=function(t){this.activate(),t.stopPropagation()},t.exports=o},function(t,e,i){function o(t,e){this.body=t,this.defaultOptions={moment:a,locales:h,locale:"en",id:void 0,title:void 0},this.options=s.extend({},this.defaultOptions),e&&e.time?this.customTime=e.time:this.customTime=new Date,this.eventParams={},this.setOptions(e),this._create()}var n=i(20),s=i(1),r=i(31),a=i(2),h=i(47);o.prototype=new r,o.prototype.setOptions=function(t){t&&s.selectiveExtend(["moment","locale","locales","id"],this.options,t)},o.prototype._create=function(){var t=document.createElement("div");t["custom-time"]=this,t.className="vis-custom-time "+(this.options.id||""),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=new n(e),this.hammer.on("panstart",this._onDragStart.bind(this)),this.hammer.on("panmove",this._onDrag.bind(this)),this.hammer.on("panend",this._onDragEnd.bind(this)),this.hammer.get("pan").set({threshold:5,direction:n.DIRECTION_HORIZONTAL})},o.prototype.destroy=function(){this.hide(),this.hammer.destroy(),this.hammer=null,this.body=null},o.prototype.redraw=function(){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];i||(this.warned||(console.log("WARNING: options.locales['"+this.options.locale+"'] not found. See http://visjs.org/docs/timeline.html#Localization"),this.warned=!0),i=this.options.locales.en);var o=this.options.title;return void 0===o&&(o=i.time+": "+this.options.moment(this.customTime).format("dddd, MMMM Do YYYY, H:mm:ss"),o=o.charAt(0).toUpperCase()+o.substring(1)),this.bar.style.left=e+"px",this.bar.title=o,!1},o.prototype.hide=function(){this.bar.parentNode&&this.bar.parentNode.removeChild(this.bar)},o.prototype.setCustomTime=function(t){this.customTime=s.convert(t,"Date"),this.redraw()},o.prototype.getCustomTime=function(){return new Date(this.customTime.valueOf())},o.prototype.setCustomTitle=function(t){this.options.title=t},o.prototype._onDragStart=function(t){this.eventParams.dragging=!0,this.eventParams.customTime=this.customTime,t.stopPropagation()},o.prototype._onDrag=function(t){if(this.eventParams.dragging){var e=this.body.util.toScreen(this.eventParams.customTime)+t.deltaX,i=this.body.util.toTime(e);this.setCustomTime(i),this.body.emitter.emit("timechange",{id:this.options.id,time:new Date(this.customTime.valueOf())}),t.stopPropagation()}},o.prototype._onDragEnd=function(t){this.eventParams.dragging&&(this.body.emitter.emit("timechanged",{id:this.options.id,time:new Date(this.customTime.valueOf())}),t.stopPropagation())},o.customTimeFromTarget=function(t){for(var e=t.target;e;){if(e.hasOwnProperty("custom-time"))return e["custom-time"];e=e.parentNode}return null},t.exports=o},function(t,e){e.en={current:"current",time:"time"},e.en_EN=e.en,e.en_US=e.en,e.nl={current:"huidige",time:"tijd"},e.nl_NL=e.nl,e.nl_BE=e.nl},function(t,e,i){function o(t,e){this.body=t,this.defaultOptions={rtl:!1,showCurrentTime:!0,moment:r,locales:a,locale:"en"},this.options=n.extend({},this.defaultOptions),this.offset=0,this._create(),this.setOptions(e)}var n=i(1),s=i(31),r=i(2),a=i(47);o.prototype=new s,o.prototype._create=function(){var t=document.createElement("div");t.className="vis-current-time",t.style.position="absolute",t.style.top="0px",t.style.height="100%",this.bar=t},o.prototype.destroy=function(){this.options.showCurrentTime=!1,this.redraw(),this.body=null},o.prototype.setOptions=function(t){t&&n.selectiveExtend(["rtl","showCurrentTime","moment","locale","locales"],this.options,t)},o.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=this.options.moment((new Date).valueOf()+this.offset),i=this.body.util.toScreen(e),o=this.options.locales[this.options.locale];o||(this.warned||(console.log("WARNING: options.locales['"+this.options.locale+"'] not found. See http://visjs.org/docs/timeline/#Localization"),this.warned=!0),o=this.options.locales.en);var n=o.current+" "+o.time+": "+e.format("dddd, MMMM Do YYYY, H:mm:ss");n=n.charAt(0).toUpperCase()+n.substring(1),this.options.rtl?this.bar.style.right=i+"px":this.bar.style.left=i+"px",this.bar.title=n}else this.bar.parentNode&&this.bar.parentNode.removeChild(this.bar),this.stop();return!1},o.prototype.start=function(){function t(){e.stop();var i=e.body.range.conversion(e.body.domProps.center.width).scale,o=1/i/10;30>o&&(o=30),o>1e3&&(o=1e3),e.redraw(),e.body.emitter.emit("currentTimeTick"),e.currentTimeTimer=setTimeout(t,o)}var e=this;t()},o.prototype.stop=function(){void 0!==this.currentTimeTimer&&(clearTimeout(this.currentTimeTimer),delete this.currentTimeTimer)},o.prototype.setCurrentTime=function(t){var e=n.convert(t,"Date").valueOf(),i=(new Date).valueOf();this.offset=e-i,this.redraw()},o.prototype.getCurrentTime=function(){return new Date((new Date).valueOf()+this.offset)},t.exports=o},function(t,e){Object.defineProperty(e,"__esModule",{value:!0});var i="string",o="boolean",n="number",s="array",r="date",a="object",h="dom",d="moment",l="any",c={configure:{enabled:{"boolean":o},filter:{"boolean":o,"function":"function"},container:{dom:h},__type__:{object:a,"boolean":o,"function":"function"}},align:{string:i},rtl:{"boolean":o,undefined:"undefined"},autoResize:{"boolean":o},throttleRedraw:{number:n},clickToUse:{"boolean":o},dataAttributes:{string:i,array:s},editable:{add:{"boolean":o,undefined:"undefined"},remove:{"boolean":o,undefined:"undefined"},updateGroup:{"boolean":o,undefined:"undefined"},updateTime:{"boolean":o,undefined:"undefined"},__type__:{"boolean":o,object:a}},end:{number:n,date:r,string:i,moment:d},format:{minorLabels:{millisecond:{string:i,undefined:"undefined"},second:{string:i,undefined:"undefined"},minute:{string:i,undefined:"undefined"},hour:{string:i,undefined:"undefined"},weekday:{string:i,undefined:"undefined"},day:{string:i,undefined:"undefined"},month:{string:i,undefined:"undefined"},year:{string:i,undefined:"undefined"},__type__:{object:a}},majorLabels:{millisecond:{string:i,undefined:"undefined"},second:{string:i,undefined:"undefined"},minute:{string:i,undefined:"undefined"},hour:{string:i,undefined:"undefined"},weekday:{string:i,undefined:"undefined"},day:{string:i,undefined:"undefined"},month:{string:i,undefined:"undefined"},year:{string:i,undefined:"undefined"},__type__:{object:a}},__type__:{object:a}},moment:{"function":"function"},groupOrder:{string:i,"function":"function"},groupEditable:{add:{"boolean":o,undefined:"undefined"},remove:{"boolean":o,undefined:"undefined"},order:{"boolean":o,undefined:"undefined"},__type__:{"boolean":o,object:a}},groupOrderSwap:{"function":"function"},height:{string:i,number:n},hiddenDates:{start:{date:r,number:n,string:i,moment:d},end:{date:r,number:n,string:i,moment:d},repeat:{string:i},__type__:{object:a,array:s}},itemsAlwaysDraggable:{"boolean":o},locale:{string:i},locales:{__any__:{any:l},__type__:{object:a}},margin:{axis:{number:n},item:{horizontal:{number:n, +undefined:"undefined"},vertical:{number:n,undefined:"undefined"},__type__:{object:a,number:n}},__type__:{object:a,number:n}},max:{date:r,number:n,string:i,moment:d},maxHeight:{number:n,string:i},maxMinorChars:{number:n},min:{date:r,number:n,string:i,moment:d},minHeight:{number:n,string:i},moveable:{"boolean":o},multiselect:{"boolean":o},multiselectPerGroup:{"boolean":o},onAdd:{"function":"function"},onUpdate:{"function":"function"},onMove:{"function":"function"},onMoving:{"function":"function"},onRemove:{"function":"function"},onAddGroup:{"function":"function"},onMoveGroup:{"function":"function"},onRemoveGroup:{"function":"function"},order:{"function":"function"},orientation:{axis:{string:i,undefined:"undefined"},item:{string:i,undefined:"undefined"},__type__:{string:i,object:a}},selectable:{"boolean":o},showCurrentTime:{"boolean":o},showMajorLabels:{"boolean":o},showMinorLabels:{"boolean":o},stack:{"boolean":o},snap:{"function":"function","null":"null"},start:{date:r,number:n,string:i,moment:d},template:{"function":"function"},groupTemplate:{"function":"function"},timeAxis:{scale:{string:i,undefined:"undefined"},step:{number:n,undefined:"undefined"},__type__:{object:a}},type:{string:i},width:{string:i,number:n},zoomable:{"boolean":o},zoomKey:{string:["ctrlKey","altKey","metaKey",""]},zoomMax:{number:n},zoomMin:{number:n},__type__:{object:a}},u={global:{align:["center","left","right"],direction:!1,autoResize:!0,throttleRedraw:[10,0,1e3,10],clickToUse:!1,editable:{add:!1,remove:!1,updateGroup:!1,updateTime:!1},end:"",format:{minorLabels:{millisecond:"SSS",second:"s",minute:"HH:mm",hour:"HH:mm",weekday:"ddd D",day:"D",month:"MMM",year:"YYYY"},majorLabels:{millisecond:"HH:mm:ss",second:"D MMMM HH:mm",minute:"ddd D MMMM",hour:"ddd D MMMM",weekday:"MMMM YYYY",day:"MMMM YYYY",month:"YYYY",year:""}},groupsDraggable:!1,height:"",locale:"",margin:{axis:[20,0,100,1],item:{horizontal:[10,0,100,1],vertical:[10,0,100,1]}},max:"",maxHeight:"",maxMinorChars:[7,0,20,1],min:"",minHeight:"",moveable:!1,multiselect:!1,multiselectPerGroup:!1,orientation:{axis:["both","bottom","top"],item:["bottom","top"]},selectable:!0,showCurrentTime:!1,showMajorLabels:!0,showMinorLabels:!0,stack:!0,start:"",type:["box","point","range","background"],width:"100%",zoomable:!0,zoomKey:["ctrlKey","altKey","metaKey",""],zoomMax:[31536e10,10,31536e10,1],zoomMin:[10,10,31536e10,1]}};e.allOptions=c,e.configureOptions=u},function(t,e,i){function o(t){return t&&t.__esModule?t:{"default":t}}function n(t,e,i,o){if(!(Array.isArray(i)||i instanceof c||i instanceof u)&&i instanceof Object){var n=o;o=i,i=n}var s=this;this.defaultOptions={start:null,end:null,autoResize:!0,orientation:{axis:"bottom",item:"bottom"},moment:d,width:null,height:null,maxHeight:null,minHeight:null},this.options=l.deepExtend({},this.defaultOptions),this._create(t),this.components=[],this.body={dom:this.dom,domProps:this.props,emitter:{on:this.on.bind(this),off:this.off.bind(this),emit:this.emit.bind(this)},hiddenDates:[],util:{toScreen:s._toScreen.bind(s),toGlobalScreen:s._toGlobalScreen.bind(s),toTime:s._toTime.bind(s),toGlobalTime:s._toGlobalTime.bind(s)}},this.range=new p(this.body),this.components.push(this.range),this.body.range=this.range,this.timeAxis=new m(this.body),this.components.push(this.timeAxis),this.currentTime=new v(this.body),this.components.push(this.currentTime),this.linegraph=new y(this.body),this.components.push(this.linegraph),this.itemsData=null,this.groupsData=null,this.on("tap",function(t){s.emit("click",s.getEventProperties(t))}),this.on("doubletap",function(t){s.emit("doubleClick",s.getEventProperties(t))}),this.dom.root.oncontextmenu=function(t){s.emit("contextmenu",s.getEventProperties(t))},o&&this.setOptions(o),i&&this.setGroups(i),e&&this.setItems(e),this._redraw()}var s=i(26),r=o(s),a=i(29),h=o(a),d=(i(13),i(20),i(2)),l=i(1),c=i(9),u=i(11),p=i(30),f=i(33),m=i(44),v=i(48),g=i(46),y=i(51),b=i(29).printStyle,w=i(59).allOptions,_=i(59).configureOptions;n.prototype=new f,n.prototype.setOptions=function(t){var e=h["default"].validate(t,w);e===!0&&console.log("%cErrors have been found in the supplied options object.",b),f.prototype.setOptions.call(this,t)},n.prototype.setItems=function(t){var e,i=null==this.itemsData;if(e=t?t instanceof c||t instanceof u?t:new c(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 o=void 0!=this.options.start?this.options.start:null,n=void 0!=this.options.end?this.options.end:null;this.setWindow(o,n,{animation:!1})}else this.fit({animation:!1})},n.prototype.setGroups=function(t){var e;e=t?t instanceof c||t instanceof u?t:new c(t):null,this.groupsData=e,this.linegraph.setGroups(e)},n.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+"'"},n.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},n.prototype.getDataRange=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 o=0;os?s:t,e=null==e?s:s>e?s:e}return{min:null!=t?new Date(t):null,max:null!=e?new Date(e):null}},n.prototype.getEventProperties=function(t){var e=t.center?t.center.x:t.clientX,i=t.center?t.center.y:t.clientY,o=e-l.getAbsoluteLeft(this.dom.centerContainer),n=i-l.getAbsoluteTop(this.dom.centerContainer),s=this._toTime(o),r=g.customTimeFromTarget(t),a=l.getTarget(t),h=null;l.hasParent(a,this.timeAxis.dom.foreground)?h="axis":this.timeAxis2&&l.hasParent(a,this.timeAxis2.dom.foreground)?h="axis":l.hasParent(a,this.linegraph.yAxisLeft.dom.frame)?h="data-axis":l.hasParent(a,this.linegraph.yAxisRight.dom.frame)?h="data-axis":l.hasParent(a,this.linegraph.legendLeft.dom.frame)?h="legend":l.hasParent(a,this.linegraph.legendRight.dom.frame)?h="legend":null!=r?h="custom-time":l.hasParent(a,this.currentTime.bar)?h="current-time":l.hasParent(a,this.dom.center)&&(h="background");var d=[],c=this.linegraph.yAxisLeft,u=this.linegraph.yAxisRight;return c.hidden||d.push(c.screenToValue(n)),u.hidden||d.push(u.screenToValue(n)),{event:t,what:h,pageX:t.srcEvent?t.srcEvent.pageX:t.pageX,pageY:t.srcEvent?t.srcEvent.pageY:t.pageY,x:o,y:n,time:s,value:d}},n.prototype._createConfigurator=function(){return new r["default"](this,this.dom.container,_)},t.exports=n},function(t,e,i){function o(t,e){this.id=s.randomUUID(),this.body=t,this.defaultOptions={yAxisOrientation:"left",defaultGroup:"default",sort:!0,sampling:!0,stack:!1,graphHeight:"400px",shaded:{enabled:!1,orientation:"bottom"},style:"line",barChart:{width:50,sideBySide:!1,align:"center"},interpolation:{enabled:!0,parametrization:"centripetal",alpha:.5},drawPoints:{enabled:!0,size:6,style:"square"},dataAxis:{},legend:{},groups:{visibility:{}}},this.options=s.extend({},this.defaultOptions),this.dom={},this.props={},this.hammer=null,this.groups={},this.abortedGraphUpdate=!1,this.updateSVGheight=!1,this.updateSVGheightOnResize=!1,this.forceGraphUpdate=!0;var i=this;this.itemsData=null,this.groupsData=null,this.itemListeners={add:function(t,e,o){i._onAdd(e.items)},update:function(t,e,o){i._onUpdate(e.items)},remove:function(t,e,o){i._onRemove(e.items)}},this.groupListeners={add:function(t,e,o){i._onAddGroups(e.items)},update:function(t,e,o){i._onUpdateGroups(e.items)},remove:function(t,e,o){i._onRemoveGroups(e.items)}},this.items={},this.selection=[],this.lastStart=this.body.range.start,this.touchParams={},this.svgElements={},this.setOptions(e),this.groupsUsingDefaultStyles=[0],this.body.emitter.on("rangechanged",function(){i.lastStart=i.body.range.start,i.svg.style.left=s.option.asSize(-i.props.width),i.forceGraphUpdate=!0,i.redraw.call(i)}),this._create(),this.framework={svg:this.svg,svgElements:this.svgElements,options:this.options,groups:this.groups}}var n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol?"symbol":typeof t},s=i(1),r=i(8),a=i(9),h=i(11),d=i(31),l=i(52),c=i(54),u=i(58),p=i(55),f=i(57),m=i(56),v="__ungrouped__";o.prototype=new d,o.prototype._create=function(){var t=document.createElement("div");t.className="vis-line-graph",this.dom.frame=t,this.svg=document.createElementNS("http://www.w3.org/2000/svg","svg"),this.svg.style.position="relative",this.svg.style.height=(""+this.options.graphHeight).replace("px","")+"px",this.svg.style.display="block",t.appendChild(this.svg),this.options.dataAxis.orientation="left",this.yAxisLeft=new l(this.body,this.options.dataAxis,this.svg,this.options.groups),this.options.dataAxis.orientation="right",this.yAxisRight=new l(this.body,this.options.dataAxis,this.svg,this.options.groups),delete this.options.dataAxis.orientation,this.legendLeft=new u(this.body,this.options.legend,"left",this.options.groups),this.legendRight=new u(this.body,this.options.legend,"right",this.options.groups),this.show()},o.prototype.setOptions=function(t){if(t){var e=["sampling","defaultGroup","stack","height","graphHeight","yAxisOrientation","style","barChart","dataAxis","sort","groups"];void 0===t.graphHeight&&void 0!==t.height?(this.updateSVGheight=!0,this.updateSVGheightOnResize=!0):void 0!==this.body.domProps.centerContainer.height&&void 0!==t.graphHeight&&parseInt((t.graphHeight+"").replace("px",""))i?-1:1});for(var o=new Array(t.length),n=0;n0){var h={};for(this._getRelevantData(a,h,n,s),this._applySampling(a,h),e=0;e0)switch(t.options.style){case"line":l.hasOwnProperty(a[e])||(l[a[e]]=f.calcPath(h[a[e]],t)),f.draw(l[a[e]],t,this.framework);case"point":case"points":"point"!=t.options.style&&"points"!=t.options.style&&1!=t.options.drawPoints.enabled||m.draw(h[a[e]],t,this.framework);break;case"bar":}}}return r.cleanupElements(this.svgElements),!1},o.prototype._stack=function(t,e){var i,o,n,s,r;i=0;for(var a=0;at[a].x){r=e[h],s=0==h?r:e[h-1],i=h;break}}void 0===r&&(s=e[e.length-1],r=e[e.length-1]),o=r.x-s.x,n=r.y-s.y,0==o?t[a].y=t[a].orginalY+r.y:t[a].y=t[a].orginalY+n/o*(t[a].x-s.x)+s.y}},o.prototype._getRelevantData=function(t,e,i,o){var n,r,a,h;if(t.length>0)for(r=0;rt?-1:1},c=Math.max(0,s.binarySearchValue(d,i,"x","before",l)),u=Math.min(d.length,s.binarySearchValue(d,o,"x","after",l)+1);0>=u&&(u=d.length);var p=new Array(u-c);for(a=c;u>a;a++)h=n.itemsData[a],p[a-c]=h;e[t[r]]=p}else e[t[r]]=n.itemsData}},o.prototype._applySampling=function(t,e){var i;if(t.length>0)for(var o=0;o0){var s=1,r=n.length,a=this.body.util.toGlobalScreen(n[n.length-1].x)-this.body.util.toGlobalScreen(n[0].x),h=r/a;s=Math.min(Math.ceil(.2*r),Math.max(1,Math.round(h)));for(var d=new Array(r),l=0;r>l;l+=s){var c=Math.round(l/s);d[c]=n[l]}e[t[o]]=d.splice(0,Math.round(r/s))}}},o.prototype._getYRanges=function(t,e,i){var o,n,s,r,a=[],h=[];if(t.length>0){for(s=0;s0&&(n=this.groups[t[s]],r.stack===!0&&"bar"===r.style?"left"===r.yAxisOrientation?a=a.concat(n.getItems()):h=h.concat(n.getItems()):i[t[s]]=n.getYRange(o,t[s]));p.getStackedYRange(a,i,t,"__barStackLeft","left"),p.getStackedYRange(h,i,t,"__barStackRight","right")}},o.prototype._updateYAxis=function(t,e){var i,o,n=!1,s=!1,r=!1,a=1e9,h=1e9,d=-1e9,l=-1e9;if(t.length>0){for(var c=0;ci?i:a,d=o>d?o:d):(r=!0,h=h>i?i:h,l=o>l?o:l));1==s&&this.yAxisLeft.setRange(a,d),1==r&&this.yAxisRight.setRange(h,l)}n=this._toggleAxisVisiblity(s,this.yAxisLeft)||n,n=this._toggleAxisVisiblity(r,this.yAxisRight)||n,1==r&&1==s?(this.yAxisLeft.drawIcons=!0,this.yAxisRight.drawIcons=!0):(this.yAxisLeft.drawIcons=!1,this.yAxisRight.drawIcons=!1),this.yAxisRight.master=!s,this.yAxisRight.masterAxis=this.yAxisLeft,0==this.yAxisRight.master?(1==r?this.yAxisLeft.lineOffset=this.yAxisRight.width:this.yAxisLeft.lineOffset=0,n=this.yAxisLeft.redraw()||n,n=this.yAxisRight.redraw()||n):n=this.yAxisRight.redraw()||n;for(var p=["__barStackLeft","__barStackRight","__lineStackLeft","__lineStackRight"],c=0;ct?-1:1});for(var a=0;a=0&&t._redrawLabel(o-2,e.val,i,"vis-y-axis vis-major",t.props.majorCharHeight),t.master===!0&&(n?t._redrawLine(o,i,"vis-grid vis-horizontal vis-major",t.options.majorLinesOffset,t.props.majorLineWidth):t._redrawLine(o,i,"vis-grid vis-horizontal vis-minor",t.options.minorLinesOffset,t.props.minorLineWidth))});var d=0;void 0!==this.options[i].title&&void 0!==this.options[i].title.text&&(d=this.props.titleCharHeight);var l=this.options.icons===!0?Math.max(this.options.iconWidth,d)+this.options.labelOffsetX+15:d+this.options.labelOffsetX+15;return this.maxLabelSize>this.width-l&&this.options.visible===!0?(this.width=this.maxLabelSize+l,this.options.width=this.width+"px",s.cleanupElements(this.DOMelements.lines),s.cleanupElements(this.DOMelements.labels),this.redraw(),e=!0):this.maxLabelSizethis.minWidth?(this.width=Math.max(this.minWidth,this.maxLabelSize+l),this.options.width=this.width+"px",s.cleanupElements(this.DOMelements.lines),s.cleanupElements(this.DOMelements.labels),this.redraw(),e=!0):(s.cleanupElements(this.DOMelements.lines),s.cleanupElements(this.DOMelements.labels),e=!1),e},o.prototype.convertValue=function(t){return this.scale.convertValue(t)},o.prototype.screenToValue=function(t){return this.scale.screenToValue(t)},o.prototype._redrawLabel=function(t,e,i,o,n){var r=s.getDOMElement("div",this.DOMelements.labels,this.dom.frame);r.className=o,r.innerHTML=e,"left"===i?(r.style.left="-"+this.options.labelOffsetX+"px",r.style.textAlign="right"):(r.style.right="-"+this.options.labelOffsetX+"px",r.style.textAlign="left"),r.style.top=t-.5*n+this.options.labelOffsetY+"px",e+="";var a=Math.max(this.props.majorCharWidth,this.props.minorCharWidth);this.maxLabelSize.5*(h.magnitudefactor*h.minorSteps[h.minorStepIdx])?e+h.magnitudefactor*h.minorSteps[h.minorStepIdx]:e};i&&(this._start-=2*this.magnitudefactor*this.minorSteps[this.minorStepIdx],this._start=d(this._start)),o&&(this._end+=this.magnitudefactor*this.minorSteps[this.minorStepIdx],this._end=d(this._end)),this.determineScale()}}i.prototype.setCharHeight=function(t){this.majorCharHeight=t},i.prototype.setHeight=function(t){this.containerHeight=t},i.prototype.determineScale=function(){var t=this._end-this._start;this.scale=this.containerHeight/t;var e=this.majorCharHeight/this.scale,i=t>0?Math.round(Math.log(t)/Math.LN10):0;this.minorStepIdx=-1,this.magnitudefactor=Math.pow(10,i);var o=0;0>i&&(o=i);for(var n=!1,s=o;Math.abs(s)<=Math.abs(i);s++){this.magnitudefactor=Math.pow(10,s);for(var r=0;r=e){n=!0,this.minorStepIdx=r;break}}if(n===!0)break}},i.prototype.is_major=function(t){return t%(this.magnitudefactor*this.majorSteps[this.minorStepIdx])===0},i.prototype.getStep=function(){return this.magnitudefactor*this.minorSteps[this.minorStepIdx]},i.prototype.getFirstMajor=function(){var t=this.magnitudefactor*this.majorSteps[this.minorStepIdx];return this.convertValue(this._start+(t-this._start%t)%t)},i.prototype.formatValue=function(t){var e=t.toPrecision(5);return"function"==typeof this.formattingFunction&&(e=this.formattingFunction(t)),"number"==typeof e?""+e:"string"==typeof e?e:t.toPrecision(5)},i.prototype.getLines=function(){for(var t=[],e=this.getStep(),i=(e-this._start%e)%e,o=this._start+i;this._end-o>1e-5;o+=e)o!=this._start&&t.push({major:this.is_major(o),y:this.convertValue(o),val:this.formatValue(o)});return t},i.prototype.followScale=function(t){var e=this.minorStepIdx,i=this._start,o=this._end,n=this,s=function(){n.magnitudefactor*=2},r=function(){n.magnitudefactor/=2};t.minorStepIdx<=1&&this.minorStepIdx<=1||t.minorStepIdx>1&&this.minorStepIdx>1||(t.minorStepIdxo+1e-5)r(),d=!1;else{if(!this.autoScaleStart&&this._start=0)){r(),d=!1;continue}console.warn("Can't adhere to given 'min' range, due to zeroalign")}this.autoScaleStart&&this.autoScaleEnd&&o-i>c?(s(),d=!1):d=!0}}},i.prototype.convertValue=function(t){return this.containerHeight-(t-this._start)*this.scale},i.prototype.screenToValue=function(t){return(this.containerHeight-t)/this.scale+this._start},t.exports=i},function(t,e,i){function o(t,e,i,o){this.id=e;var n=["sampling","style","sort","yAxisOrientation","barChart","drawPoints","shaded","interpolation","zIndex","excludeFromStacking","excludeFromLegend"];this.options=s.selectiveBridgeObject(n,i),this.usingDefaultStyle=void 0===t.className,this.groupsUsingDefaultStyles=o,this.zeroPosition=0,this.update(t),1==this.usingDefaultStyle&&(this.groupsUsingDefaultStyles[0]+=1),this.itemsData=[],this.visible=void 0===t.visible?!0:t.visible}var n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol?"symbol":typeof t},s=i(1),r=(i(8),i(55)),a=i(57),h=i(56);o.prototype.setItems=function(t){null!=t?(this.itemsData=t,1==this.options.sort&&s.insertSort(this.itemsData,function(t,e){return t.x>e.x?1:-1})):this.itemsData=[]},o.prototype.getItems=function(){return this.itemsData},o.prototype.setZeroPosition=function(t){this.zeroPosition=t},o.prototype.setOptions=function(t){if(void 0!==t){var e=["sampling","style","sort","yAxisOrientation","barChart","zIndex","excludeFromStacking","excludeFromLegend"];s.selectiveDeepExtend(e,this.options,t),"function"==typeof t.drawPoints&&(t.drawPoints={onRender:t.drawPoints}),s.mergeOptions(this.options,t,"interpolation"),s.mergeOptions(this.options,t,"drawPoints"),s.mergeOptions(this.options,t,"shaded"),t.interpolation&&"object"==n(t.interpolation)&&t.interpolation.parametrization&&("uniform"==t.interpolation.parametrization?this.options.interpolation.alpha=0:"chordal"==t.interpolation.parametrization?this.options.interpolation.alpha=1:(this.options.interpolation.parametrization="centripetal",this.options.interpolation.alpha=.5))}},o.prototype.update=function(t){this.group=t,this.content=t.content||"graph",this.className=t.className||this.className||"vis-graph-group"+this.groupsUsingDefaultStyles[0]%10,this.visible=void 0===t.visible?!0:t.visible,this.style=t.style,this.setOptions(t.options)},o.prototype.getLegend=function(t,e,i,o,n){if(void 0==i||null==i){var s=document.createElementNS("http://www.w3.org/2000/svg","svg");i={svg:s,svgElements:{},options:this.options,groups:[this]}}switch(void 0!=o&&null!=o||(o=0),void 0!=n&&null!=n||(n=.5*e),this.options.style){case"line":a.drawIcon(this,o,n,t,e,i);break;case"points":case"point":h.drawIcon(this,o,n,t,e,i);break;case"bar":r.drawIcon(this,o,n,t,e,i)}return{icon:i.svg,label:this.content,orientation:this.options.yAxisOrientation}},o.prototype.getYRange=function(t){for(var e=t[0].y,i=t[0].y,o=0;ot[o].y?t[o].y:e,i=i0&&(i=Math.min(i,Math.abs(e[o-1].screen_x-e[o].screen_x))),0===i&&(void 0===t[e[o].screen_x]&&(t[e[o].screen_x]={amount:0,resolved:0,accumulatedPositive:0,accumulatedNegative:0}),t[e[o].screen_x].amount+=1)},o._getSafeDrawData=function(t,e,i){var o,n;return t0?(o=i>t?i:t,n=0,"left"===e.options.barChart.align?n-=.5*t:"right"===e.options.barChart.align&&(n+=.5*t)):(o=e.options.barChart.width,n=0,"left"===e.options.barChart.align?n-=.5*e.options.barChart.width:"right"===e.options.barChart.align&&(n+=.5*e.options.barChart.width)),{width:o,offset:n}},o.getStackedYRange=function(t,e,i,n,s){if(t.length>0){t.sort(function(t,e){return t.screen_x===e.screen_x?t.groupIde[s].screen_y?e[s].screen_y:o,n=nt[r].accumulatedNegative?t[r].accumulatedNegative:o,o=o>t[r].accumulatedPositive?t[r].accumulatedPositive:o,n=n0){var i=[];return i=1==e.options.interpolation.enabled?o._catmullRom(t,e):o._linear(t)}},o.drawIcon=function(t,e,i,o,s,r){var a,h,d=.5*s,l=n.getSVGElement("rect",r.svgElements,r.svg);if(l.setAttributeNS(null,"x",e),l.setAttributeNS(null,"y",i-d),l.setAttributeNS(null,"width",o),l.setAttributeNS(null,"height",2*d),l.setAttributeNS(null,"class","vis-outline"),a=n.getSVGElement("path",r.svgElements,r.svg),a.setAttributeNS(null,"class",t.className),void 0!==t.style&&a.setAttributeNS(null,"style",t.style),a.setAttributeNS(null,"d","M"+e+","+i+" L"+(e+o)+","+i),1==t.options.shaded.enabled&&(h=n.getSVGElement("path",r.svgElements,r.svg),"top"==t.options.shaded.orientation?h.setAttributeNS(null,"d","M"+e+", "+(i-d)+"L"+e+","+i+" L"+(e+o)+","+i+" L"+(e+o)+","+(i-d)):h.setAttributeNS(null,"d","M"+e+","+i+" L"+e+","+(i+d)+" L"+(e+o)+","+(i+d)+"L"+(e+o)+","+i),h.setAttributeNS(null,"class",t.className+" vis-icon-fill"),void 0!==t.options.shaded.style&&""!==t.options.shaded.style&&h.setAttributeNS(null,"style",t.options.shaded.style)),1==t.options.drawPoints.enabled){var c={style:t.options.drawPoints.style,styles:t.options.drawPoints.styles,size:t.options.drawPoints.size,className:t.className};n.drawPoint(e+.5*o,i,c,r.svgElements,r.svg)}},o.drawShading=function(t,e,i,o){if(1==e.options.shaded.enabled){var s=Number(o.svg.style.height.replace("px","")),r=n.getSVGElement("path",o.svgElements,o.svg),a="L";1==e.options.interpolation.enabled&&(a="C");var h,d=0;d="top"==e.options.shaded.orientation?0:"bottom"==e.options.shaded.orientation?s:Math.min(Math.max(0,e.zeroPosition),s),h="group"==e.options.shaded.orientation&&null!=i&&void 0!=i?"M"+t[0][0]+","+t[0][1]+" "+this.serializePath(t,a,!1)+" L"+i[i.length-1][0]+","+i[i.length-1][1]+" "+this.serializePath(i,a,!0)+i[0][0]+","+i[0][1]+" Z":"M"+t[0][0]+","+t[0][1]+" "+this.serializePath(t,a,!1)+" V"+d+" H"+t[0][0]+" Z",r.setAttributeNS(null,"class",e.className+" vis-fill"),void 0!==e.options.shaded.style&&r.setAttributeNS(null,"style",e.options.shaded.style),r.setAttributeNS(null,"d",h)}},o.draw=function(t,e,i){if(null!=t&&void 0!=t){var o=n.getSVGElement("path",i.svgElements,i.svg);o.setAttributeNS(null,"class",e.className),void 0!==e.style&&o.setAttributeNS(null,"style",e.style);var s="L";1==e.options.interpolation.enabled&&(s="C"),o.setAttributeNS(null,"d","M"+t[0][0]+","+t[0][1]+" "+this.serializePath(t,s,!1))}},o.serializePath=function(t,e,i){if(t.length<2)return"";var o=e;if(i)for(var n=t.length-2;n>0;n--)o+=t[n][0]+","+t[n][1]+" ";else for(var n=1;nl;l++)e=0==l?t[0]:t[l-1],i=t[l],o=t[l+1],n=d>l+2?t[l+2]:o,s={screen_x:(-e.screen_x+6*i.screen_x+o.screen_x)*h,screen_y:(-e.screen_y+6*i.screen_y+o.screen_y)*h},r={screen_x:(i.screen_x+6*o.screen_x-n.screen_x)*h,screen_y:(i.screen_y+6*o.screen_y-n.screen_y)*h},a.push([s.screen_x,s.screen_y]),a.push([r.screen_x,r.screen_y]),a.push([o.screen_x,o.screen_y]);return a},o._catmullRom=function(t,e){var i=e.options.interpolation.alpha;if(0==i||void 0===i)return this._catmullRomUniform(t);var o,n,s,r,a,h,d,l,c,u,p,f,m,v,g,y,b,w,_,x=[];x.push([Math.round(t[0].screen_x),Math.round(t[0].screen_y)]);for(var k=t.length,O=0;k-1>O;O++)o=0==O?t[0]:t[O-1],n=t[O],s=t[O+1],r=k>O+2?t[O+2]:s,d=Math.sqrt(Math.pow(o.screen_x-n.screen_x,2)+Math.pow(o.screen_y-n.screen_y,2)),l=Math.sqrt(Math.pow(n.screen_x-s.screen_x,2)+Math.pow(n.screen_y-s.screen_y,2)),c=Math.sqrt(Math.pow(s.screen_x-r.screen_x,2)+Math.pow(s.screen_y-r.screen_y,2)),v=Math.pow(c,i),y=Math.pow(c,2*i),g=Math.pow(l,i),b=Math.pow(l,2*i),_=Math.pow(d,i),w=Math.pow(d,2*i),u=2*w+3*_*g+b,p=2*y+3*v*g+b,f=3*_*(_+g),f>0&&(f=1/f),m=3*v*(v+g),m>0&&(m=1/m),a={screen_x:(-b*o.screen_x+u*n.screen_x+w*s.screen_x)*f,screen_y:(-b*o.screen_y+u*n.screen_y+w*s.screen_y)*f},h={screen_x:(y*n.screen_x+p*s.screen_x-b*r.screen_x)*m,screen_y:(y*n.screen_y+p*s.screen_y-b*r.screen_y)*m},0==a.screen_x&&0==a.screen_y&&(a=n),0==h.screen_x&&0==h.screen_y&&(h=s),x.push([a.screen_x,a.screen_y]),x.push([h.screen_x,h.screen_y]),x.push([s.screen_x,s.screen_y]);return x},o._linear=function(t){for(var e=[],i=0;it?-1:1});for(var i=0;i")}this.dom.textArea.innerHTML=s,this.dom.textArea.style.lineHeight=.75*this.options.iconSize+this.options.iconSpacing+"px"}},o.prototype.drawLegendIcons=function(){if(this.dom.frame.parentNode){var t=Object.keys(this.groups);t.sort(function(t,e){return e>t?-1:1}),s.resetElements(this.svgElements);var e=window.getComputedStyle(this.dom.frame).paddingTop,i=Number(e.replace("px","")),o=i,n=this.options.iconSize,r=.75*this.options.iconSize,a=i+.5*r+3;this.svg.style.width=n+5+i+"px";for(var h=0;h0){var i=this.groupIndex%this.groupsArray.length;this.groupIndex++,e={},e.color=this.groups[this.groupsArray[i]],this.groups[t]=e}else{var o=this.defaultIndex%this.defaultGroups.length;this.defaultIndex++,e={},e.color=this.defaultGroups[o],this.groups[t]=e}return e}},{key:"add",value:function(t,e){return this.groups[t]=e,this.groupsArray.push(t),e}}]),t}();e["default"]=r},function(t,e,i){function o(t){return t&&t.__esModule?t:{"default":t}}function n(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(e,"__esModule",{value:!0});var s=function(){function t(t,e){for(var i=0;it.left&&this.shape.topt.top}},{key:"isBoundingBoxOverlappingWith",value:function(t){return this.shape.boundingBox.leftt.left&&this.shape.boundingBox.topt.top}}],[{key:"parseOptions",value:function(t,e){var i=arguments.length<=2||void 0===arguments[2]?!1:arguments[2],o=arguments.length<=3||void 0===arguments[3]?{}:arguments[3],n=["color","font","fixed","shadow"];if(A.selectiveNotDeepExtend(n,t,e,i),A.mergeOptions(t,e,"shadow",i,o),void 0!==e.color&&null!==e.color){var s=A.parseColor(e.color);A.fillIfDefined(t.color,s)}else i===!0&&null===e.color&&(t.color=A.bridgeObject(o.color));void 0!==e.fixed&&null!==e.fixed&&("boolean"==typeof e.fixed?(t.fixed.x=e.fixed,t.fixed.y=e.fixed):(void 0!==e.fixed.x&&"boolean"==typeof e.fixed.x&&(t.fixed.x=e.fixed.x),void 0!==e.fixed.y&&"boolean"==typeof e.fixed.y&&(t.fixed.y=e.fixed.y))),void 0!==e.font&&null!==e.font?a["default"].parseOptions(t.font,e):i===!0&&null===e.font&&(t.font=A.bridgeObject(o.font)),void 0!==e.scaling&&A.mergeOptions(t.scaling,e.scaling,"label",i,o.scaling)}}]),t}();e["default"]=B},function(t,e,i){function o(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(e,"__esModule",{value:!0});var n=function(){function t(t,e){var i=[],o=!0,n=!1,s=void 0;try{for(var r,a=t[Symbol.iterator]();!(o=(r=a.next()).done)&&(i.push(r.value),!e||i.length!==e);o=!0);}catch(h){n=!0,s=h}finally{try{!o&&a["return"]&&a["return"]()}finally{if(n)throw s}}return i}return function(e,i){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return t(e,i);throw new TypeError("Invalid attempt to destructure non-iterable instance")}}(),s="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol?"symbol":typeof t},r=function(){function t(t,e){for(var i=0;i=this.nodeOptions.scaling.label.maxVisible&&(r=Number(this.nodeOptions.scaling.label.maxVisible)/this.body.view.scale);var h=this.size.yLine,d=this._getColor(a),l=n(d,2),c=l[0],u=l[1],p=this._setAlignment(t,i,h,s),f=n(p,2);i=f[0],h=f[1],t.font=(e&&this.nodeOptions.labelHighlightBold?"bold ":"")+r+"px "+this.fontOptions.face,t.fillStyle=c,this.isEdgeLabel||"left"!==this.fontOptions.align?t.textAlign="center":(t.textAlign=this.fontOptions.align,i-=.5*this.size.width),this.fontOptions.strokeWidth>0&&(t.lineWidth=this.fontOptions.strokeWidth,t.strokeStyle=u,t.lineJoin="round");for(var m=0;m0&&t.strokeText(this.lines[m],i,h),t.fillText(this.lines[m],i,h),h+=r}},{key:"_setAlignment",value:function(t,e,i,o){if(this.isEdgeLabel&&"horizontal"!==this.fontOptions.align&&this.pointToSelf===!1){e=0,i=0;var n=2;"top"===this.fontOptions.align?(t.textBaseline="alphabetic",i-=2*n):"bottom"===this.fontOptions.align?(t.textBaseline="hanging",i+=2*n):t.textBaseline="middle"}else t.textBaseline=o;return[e,i]}},{key:"_getColor",value:function(t){var e=this.fontOptions.color||"#000000",i=this.fontOptions.strokeColor||"#ffffff";if(t<=this.nodeOptions.scaling.label.drawThreshold){var o=Math.max(0,Math.min(1,1-(this.nodeOptions.scaling.label.drawThreshold-t)));e=a.overrideOpacity(e,o),i=a.overrideOpacity(i,o)}return[e,i]}},{key:"getTextSize",value:function(t){var e=arguments.length<=1||void 0===arguments[1]?!1:arguments[1],i={width:this._processLabel(t,e),height:this.fontOptions.size*this.lineCount,lineCount:this.lineCount};return i}},{key:"calculateLabelSize",value:function(t,e){var i=arguments.length<=2||void 0===arguments[2]?0:arguments[2],o=arguments.length<=3||void 0===arguments[3]?0:arguments[3],n=arguments.length<=4||void 0===arguments[4]?"middle":arguments[4];this.labelDirty===!0&&(this.size.width=this._processLabel(t,e)),this.size.height=this.fontOptions.size*this.lineCount,this.size.left=i-.5*this.size.width,this.size.top=o-.5*this.size.height,this.size.yLine=o+.5*(1-this.lineCount)*this.fontOptions.size,"hanging"===n&&(this.size.top+=.5*this.fontOptions.size,this.size.top+=4,this.size.yLine+=4),this.labelDirty=!1}},{key:"_processLabel",value:function(t,e){var i=0,o=[""],n=0;if(void 0!==this.nodeOptions.label){o=String(this.nodeOptions.label).split("\n"),n=o.length,t.font=(e&&this.nodeOptions.labelHighlightBold?"bold ":"")+this.fontOptions.size+"px "+this.fontOptions.face,i=t.measureText(o[0]).width;for(var s=1;n>s;s++){var r=t.measureText(o[s]).width;i=r>i?r:i}}return this.lines=o,this.lineCount=n,i}}],[{key:"parseOptions",value:function(t,e){var i=arguments.length<=2||void 0===arguments[2]?!1:arguments[2];if("string"==typeof e.font){var o=e.font.split(" ");t.size=o[0].replace("px",""),t.face=o[1],t.color=o[2]}else"object"===s(e.font)&&a.fillIfDefined(t,e.font,i);t.size=Number(t.size)}}]),t}();e["default"]=h},function(t,e,i){function o(t){return t&&t.__esModule?t:{"default":t}}function n(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function s(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}function r(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}Object.defineProperty(e,"__esModule",{value:!0});var a=function(){function t(t,e){for(var i=0;i0&&(this.enableBorderDashes(t),t.stroke(),this.disableBorderDashes(t)),t.restore(),this.updateBoundingBox(e,i,t,o),this.labelModule.draw(t,e,i,o)}},{key:"updateBoundingBox",value:function(t,e,i,o){this.resize(i,o),this.left=t-.5*this.width,this.top=e-.5*this.height;var n=this.options.shapeProperties.borderRadius;this.boundingBox.left=this.left-n,this.boundingBox.top=this.top-n,this.boundingBox.bottom=this.top+this.height+n,this.boundingBox.right=this.left+this.width+n}},{key:"distanceToBorder",value:function(t,e){this.resize(t);var i=this.options.borderWidth;return Math.min(Math.abs(this.width/2/Math.cos(e)),Math.abs(this.height/2/Math.sin(e)))+i}}]),e}(d["default"]);e["default"]=l},function(t,e){function i(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(e,"__esModule",{value:!0});var o=function(){function t(t,e){for(var i=0;ithis.imageObj.height?(o=this.imageObj.width/this.imageObj.height,e=2*this.options.size*o||this.imageObj.width,i=2*this.options.size||this.imageObj.height):(o=this.imageObj.width&&this.imageObj.height?this.imageObj.height/this.imageObj.width:1,e=2*this.options.size,i=2*this.options.size*o):(e=this.imageObj.width,i=this.imageObj.height),this.width=e,this.height=i,this.radius=.5*this.width}}},{key:"_drawRawCircle",value:function(t,e,i,o,n,s){var r=this.options.borderWidth,a=this.options.borderWidthSelected||2*this.options.borderWidth,h=(o?a:r)/this.body.view.scale;t.lineWidth=Math.min(this.width,h),t.strokeStyle=o?this.options.color.highlight.border:n?this.options.color.hover.border:this.options.color.border,t.fillStyle=o?this.options.color.highlight.background:n?this.options.color.hover.background:this.options.color.background,t.circle(e,i,s),this.enableShadow(t),t.fill(),this.disableShadow(t),t.save(),h>0&&(this.enableBorderDashes(t),t.stroke(),this.disableBorderDashes(t)),t.restore()}},{key:"_drawImageAtPosition",value:function(t){if(0!=this.imageObj.width){t.globalAlpha=1,this.enableShadow(t);var e=this.imageObj.width/this.width/this.body.view.scale;if(e>2&&this.options.shapeProperties.interpolation===!0){var i=this.imageObj.width,o=this.imageObj.height,n=document.createElement("canvas");n.width=i,n.height=i;var s=n.getContext("2d");e*=.5,i*=.5,o*=.5,s.drawImage(this.imageObj,0,0,i,o);for(var r=0,a=1;e>2&&4>a;)s.drawImage(n,r,0,i,o,r+i,0,i/2,o/2),r+=i,e*=.5,i*=.5,o*=.5,a+=1;t.drawImage(n,r,0,i,o,this.left,this.top,this.width,this.height)}else t.drawImage(this.imageObj,this.left,this.top,this.width,this.height);this.disableShadow(t)}}},{key:"_drawImageLabel",value:function(t,e,i,o){var n,s=0;if(void 0!==this.height){s=.5*this.height;var r=this.labelModule.getTextSize(t);r.lineCount>=1&&(s+=r.height/2)}n=i+s,this.options.label&&(this.labelOffset=s),this.labelModule.draw(t,e,n,o,"hanging")}}]),e}(d["default"]);e["default"]=l},function(t,e,i){function o(t){return t&&t.__esModule?t:{"default":t}}function n(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function s(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}function r(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}Object.defineProperty(e,"__esModule",{value:!0});var a=function(){function t(t,e){for(var i=0;i0&&(this.enableBorderDashes(t),t.stroke(),this.disableBorderDashes(t)),t.restore(),this.updateBoundingBox(e,i,t,o),this.labelModule.draw(t,e,i,o)}},{key:"updateBoundingBox",value:function(t,e,i,o){this.resize(i,o),this.left=t-.5*this.width,this.top=e-.5*this.height,this.boundingBox.left=this.left,this.boundingBox.top=this.top,this.boundingBox.bottom=this.top+this.height,this.boundingBox.right=this.left+this.width}},{key:"distanceToBorder",value:function(t,e){return this._distanceToBorder(t,e)}}]),e}(d["default"]);e["default"]=l},function(t,e,i){function o(t){return t&&t.__esModule?t:{"default":t}}function n(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function s(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}function r(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}Object.defineProperty(e,"__esModule",{value:!0});var a=function(){function t(t,e){for(var i=0;i0&&(this.enableBorderDashes(t),t.stroke(),this.disableBorderDashes(t)),t.restore(),void 0!==this.options.label){var l=n+.5*this.height+3;this.labelModule.draw(t,o,l,s,"hanging")}this.updateBoundingBox(o,n)}},{key:"updateBoundingBox",value:function(t,e){this.boundingBox.top=e-this.options.size,this.boundingBox.left=t-this.options.size,this.boundingBox.right=t+this.options.size,this.boundingBox.bottom=e+this.options.size,void 0!==this.options.label&&this.labelModule.size.width>0&&(this.boundingBox.left=Math.min(this.boundingBox.left,this.labelModule.size.left),this.boundingBox.right=Math.max(this.boundingBox.right,this.labelModule.size.left+this.labelModule.size.width),this.boundingBox.bottom=Math.max(this.boundingBox.bottom,this.boundingBox.bottom+this.labelModule.size.height+3))}}]),e}(d["default"]);e["default"]=l},function(t,e,i){function o(t){return t&&t.__esModule?t:{"default":t}}function n(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function s(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}function r(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}Object.defineProperty(e,"__esModule",{value:!0});var a=function(){function t(t,e){for(var i=0;i0&&(this.enableBorderDashes(t),t.stroke(),this.disableBorderDashes(t)),t.restore(),this.updateBoundingBox(e,i,t,o),this.labelModule.draw(t,e,i,o)}},{key:"updateBoundingBox",value:function(t,e,i,o){this.resize(i,o),this.left=t-.5*this.width,this.top=e-.5*this.height,this.boundingBox.left=this.left,this.boundingBox.top=this.top,this.boundingBox.bottom=this.top+this.height,this.boundingBox.right=this.left+this.width}},{key:"distanceToBorder",value:function(t,e){this.resize(t);var i=.5*this.width,o=.5*this.height,n=Math.sin(e)*i,s=Math.cos(e)*o;return i*o/Math.sqrt(n*n+s*s)}}]),e}(d["default"]);e["default"]=l},function(t,e,i){function o(t){return t&&t.__esModule?t:{"default":t}}function n(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function s(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}function r(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}Object.defineProperty(e,"__esModule",{value:!0});var a=function(){function t(t,e){for(var i=0;i0){var i=5;this.boundingBox.left=Math.min(this.boundingBox.left,this.labelModule.size.left),this.boundingBox.right=Math.max(this.boundingBox.right,this.labelModule.size.left+this.labelModule.size.width),this.boundingBox.bottom=Math.max(this.boundingBox.bottom,this.boundingBox.bottom+this.labelModule.size.height+i)}}},{key:"_icon",value:function(t,e,i,o){var n=Number(this.options.icon.size);void 0!==this.options.icon.code?(t.font=(o?"bold ":"")+n+"px "+this.options.icon.face,t.fillStyle=this.options.icon.color||"black",t.textAlign="center",t.textBaseline="middle",this.enableShadow(t),t.fillText(this.options.icon.code,e,i),this.disableShadow(t)):console.error("When using the icon shape, you need to define the code in the icon options object. This can be done per node or globally.")}},{key:"distanceToBorder",value:function(t,e){return this._distanceToBorder(t,e)}}]),e}(d["default"]);e["default"]=l},function(t,e,i){function o(t){return t&&t.__esModule?t:{"default":t}}function n(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function s(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}function r(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}Object.defineProperty(e,"__esModule",{value:!0});var a=function(){function t(t,e){for(var i=0;i0&&(this.enableBorderDashes(t),t.stroke(),this.disableBorderDashes(t)),t.restore(),t.closePath()}this._drawImageAtPosition(t),this._drawImageLabel(t,e,i,o||n),this.updateBoundingBox(e,i)}},{key:"updateBoundingBox",value:function(t,e){this.resize(),this.left=t-this.width/2,this.top=e-this.height/2,this.boundingBox.top=this.top,this.boundingBox.left=this.left,this.boundingBox.right=this.left+this.width,this.boundingBox.bottom=this.top+this.height,void 0!==this.options.label&&this.labelModule.size.width>0&&(this.boundingBox.left=Math.min(this.boundingBox.left,this.labelModule.size.left),this.boundingBox.right=Math.max(this.boundingBox.right,this.labelModule.size.left+this.labelModule.size.width),this.boundingBox.bottom=Math.max(this.boundingBox.bottom,this.boundingBox.bottom+this.labelOffset))}},{key:"distanceToBorder",value:function(t,e){return this._distanceToBorder(t,e)}}]),e}(d["default"]);e["default"]=l},function(t,e,i){function o(t){return t&&t.__esModule?t:{"default":t}}function n(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function s(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}function r(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}Object.defineProperty(e,"__esModule",{value:!0});var a=function(){function t(t,e){for(var i=0;ii.shape.height?(r=i.x+.5*i.shape.width,a=i.y-h):(r=i.x+h,a=i.y-.5*i.shape.height),s=this._pointOnCircle(r,a,h,.125),this.labelModule.draw(t,s.x,s.y,n)}}}},{key:"isOverlappingWith",value:function(t){if(this.connected){var e=10,i=this.from.x,o=this.from.y,n=this.to.x,s=this.to.y,r=t.left,a=t.top,h=this.edgeType.getDistanceToEdge(i,o,n,s,r,a);return e>h}return!1}},{key:"_rotateForLabelAlignment",value:function(t){var e=this.from.y-this.to.y,i=this.from.x-this.to.x,o=Math.atan2(e,i);(-1>o&&0>i||o>0&&0>i)&&(o+=Math.PI),t.rotate(o)}},{key:"_pointOnCircle",value:function(t,e,i,o){var n=2*o*Math.PI;return{x:t+i*Math.cos(n),y:e-i*Math.sin(n)}}},{key:"select",value:function(){this.selected=!0}},{key:"unselect",value:function(){this.selected=!1}},{key:"cleanup",value:function(){return this.edgeType.cleanup()}}],[{key:"parseOptions",value:function(t,e){var i=arguments.length<=2||void 0===arguments[2]?!1:arguments[2],o=arguments.length<=3||void 0===arguments[3]?{}:arguments[3],n=["arrowStrikethrough","id","from","hidden","hoverWidth","label","labelHighlightBold","length","line","opacity","physics","scaling","selectionWidth","selfReferenceSize","to","title","value","width"];if(g.selectiveDeepExtend(n,t,e,i),g.mergeOptions(t,e,"smooth",i,o),g.mergeOptions(t,e,"shadow",i,o),void 0!==e.dashes&&null!==e.dashes?t.dashes=e.dashes:i===!0&&null===e.dashes&&(t.dashes=Object.create(o.dashes)),void 0!==e.scaling&&null!==e.scaling?(void 0!==e.scaling.min&&(t.scaling.min=e.scaling.min),void 0!==e.scaling.max&&(t.scaling.max=e.scaling.max),g.mergeOptions(t.scaling,e.scaling,"label",i,o.scaling)):i===!0&&null===e.scaling&&(t.scaling=Object.create(o.scaling)),void 0!==e.arrows&&null!==e.arrows)if("string"==typeof e.arrows){var r=e.arrows.toLowerCase();-1!=r.indexOf("to")&&(t.arrows.to.enabled=!0),-1!=r.indexOf("middle")&&(t.arrows.middle.enabled=!0),-1!=r.indexOf("from")&&(t.arrows.from.enabled=!0)}else{if("object"!==s(e.arrows))throw new Error("The arrow newOptions can only be an object or a string. Refer to the documentation. You used:"+JSON.stringify(e.arrows));g.mergeOptions(t.arrows,e.arrows,"to",i,o.arrows),g.mergeOptions(t.arrows,e.arrows,"middle",i,o.arrows),g.mergeOptions(t.arrows,e.arrows,"from",i,o.arrows)}else i===!0&&null===e.arrows&&(t.arrows=Object.create(o.arrows));if(void 0!==e.color&&null!==e.color)if(t.color=g.deepExtend({},t.color,!0),g.isString(e.color))t.color.color=e.color,t.color.highlight=e.color,t.color.hover=e.color,t.color.inherit=!1;else{var a=!1;void 0!==e.color.color&&(t.color.color=e.color.color,a=!0),void 0!==e.color.highlight&&(t.color.highlight=e.color.highlight,a=!0),void 0!==e.color.hover&&(t.color.hover=e.color.hover,a=!0),void 0!==e.color.inherit&&(t.color.inherit=e.color.inherit),void 0!==e.color.opacity&&(t.color.opacity=Math.min(1,Math.max(0,e.color.opacity))),void 0===e.color.inherit&&a===!0&&(t.color.inherit=!1)}else i===!0&&null===e.color&&(t.color=g.bridgeObject(o.color));void 0!==e.font&&null!==e.font?h["default"].parseOptions(t.font,e):i===!0&&null===e.font&&(t.font=g.bridgeObject(o.font))}}]),t}();e["default"]=y},function(t,e,i){function o(t){return t&&t.__esModule?t:{"default":t}}function n(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function s(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}function r(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}Object.defineProperty(e,"__esModule",{value:!0});var a=function(){function t(t,e){var i=[],o=!0,n=!1,s=void 0;try{for(var r,a=t[Symbol.iterator]();!(o=(r=a.next()).done)&&(i.push(r.value),!e||i.length!==e);o=!0);}catch(h){n=!0,s=h}finally{try{!o&&a["return"]&&a["return"]()}finally{if(n)throw s}}return i}return function(e,i){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return t(e,i);throw new TypeError("Invalid attempt to destructure non-iterable instance")}}(),h=function(){function t(t,e){for(var i=0;iMath.abs(e)||this.options.smooth.forceDirection===!0||"horizontal"===this.options.smooth.forceDirection)&&"vertical"!==this.options.smooth.forceDirection?(o=this.from.y,s=this.to.y,i=this.from.x-r*t,n=this.to.x+r*t):(o=this.from.y-r*e,s=this.to.y+r*e,i=this.from.x,n=this.to.x),[{x:i,y:o},{x:n,y:s}]}},{key:"getViaNode",value:function(){return this._getViaCoordinates()}},{key:"_findBorderPosition",value:function(t,e){return this._findBorderPositionBezier(t,e)}},{key:"_getDistanceToEdge",value:function(t,e,i,o,n,s){var r=arguments.length<=6||void 0===arguments[6]?this._getViaCoordinates():arguments[6],h=a(r,2),d=h[0],l=h[1];return this._getDistanceToBezierEdge(t,e,i,o,n,s,d,l)}},{key:"getPoint",value:function(t){var e=arguments.length<=1||void 0===arguments[1]?this._getViaCoordinates():arguments[1],i=a(e,2),o=i[0],n=i[1],s=t,r=[];r[0]=Math.pow(1-s,3),r[1]=3*s*Math.pow(1-s,2),r[2]=3*Math.pow(s,2)*(1-s),r[3]=Math.pow(s,3);var h=r[0]*this.fromPoint.x+r[1]*o.x+r[2]*n.x+r[3]*this.toPoint.x,d=r[0]*this.fromPoint.y+r[1]*o.y+r[2]*n.y+r[3]*this.toPoint.y;return{x:h,y:d}}}]),e}(l["default"]);e["default"]=c},function(t,e,i){function o(t){return t&&t.__esModule?t:{"default":t}}function n(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function s(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}function r(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}Object.defineProperty(e,"__esModule",{value:!0});var a=function(){function t(t,e){for(var i=0;il;l++)c=.1*l,v[0]=Math.pow(1-c,3),v[1]=3*c*Math.pow(1-c,2),v[2]=3*Math.pow(c,2)*(1-c),v[3]=Math.pow(c,3),u=v[0]*t+v[1]*r.x+v[2]*a.x+v[3]*i,p=v[0]*e+v[1]*r.y+v[2]*a.y+v[3]*o,l>0&&(d=this._getDistanceToLine(f,m,u,p,n,s),h=h>d?d:h),f=u,m=p;return h}}]),e}(d["default"]);e["default"]=l},function(t,e,i){function o(t){return t&&t.__esModule?t:{"default":t}}function n(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function s(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}function r(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}Object.defineProperty(e,"__esModule",{value:!0});var a=function(){function t(t,e){for(var i=0;i=l&&h>d;){var m=.5*(l+c);if(i=this.getPoint(m,a),o=Math.atan2(p.y-i.y,p.x-i.x),n=p.distanceToBorder(e,o),s=Math.sqrt(Math.pow(i.x-p.x,2)+Math.pow(i.y-p.y,2)),r=n-s,Math.abs(r)r?f===!1?l=m:c=m:f===!1?c=m:l=m,d++}return i.t=m,i}},{key:"_getDistanceToBezierEdge",value:function(t,e,i,o,n,s,r){var a=1e9,h=void 0,d=void 0,l=void 0,c=void 0,u=void 0,p=t,f=e;for(d=1;10>d;d++)l=.1*d,c=Math.pow(1-l,2)*t+2*l*(1-l)*r.x+Math.pow(l,2)*i,u=Math.pow(1-l,2)*e+2*l*(1-l)*r.y+Math.pow(l,2)*o,d>0&&(h=this._getDistanceToLine(p,f,c,u,n,s),a=a>h?h:a),p=c,f=u;return a}}]),e}(d["default"]);e["default"]=l},function(t,e,i){function o(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(e,"__esModule",{value:!0});var n=function(){function t(t,e){var i=[],o=!0,n=!1,s=void 0;try{for(var r,a=t[Symbol.iterator]();!(o=(r=a.next()).done)&&(i.push(r.value),!e||i.length!==e);o=!0);}catch(h){n=!0,s=h}finally{try{!o&&a["return"]&&a["return"]()}finally{if(n)throw s}}return i}return function(e,i){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return t(e,i);throw new TypeError("Invalid attempt to destructure non-iterable instance")}}(),s=function(){function t(t,e){for(var i=0;io.shape.height?(e=o.x+.5*o.shape.width,i=o.y-n):(e=o.x+n,i=o.y-.5*o.shape.height),[e,i,n]}},{key:"_pointOnCircle",value:function(t,e,i,o){var n=2*o*Math.PI;return{x:t+i*Math.cos(n),y:e-i*Math.sin(n)}}},{key:"_findBorderPositionCircle",value:function(t,e,i){for(var o=i.x,n=i.y,s=i.low,r=i.high,a=i.direction,h=10,d=0,l=this.options.selfReferenceSize,c=void 0,u=void 0,p=void 0,f=void 0,m=void 0,v=.05,g=.5*(s+r);r>=s&&h>d&&(g=.5*(s+r),c=this._pointOnCircle(o,n,l,g),u=Math.atan2(t.y-c.y,t.x-c.x),p=t.distanceToBorder(e,u),f=Math.sqrt(Math.pow(c.x-t.x,2)+Math.pow(c.y-t.y,2)),m=p-f,!(Math.abs(m)0?a>0?s=g:r=g:a>0?r=g:s=g,d++;return c.t=g,c}},{key:"getLineWidth",value:function(t,e){return t===!0?Math.max(this.selectionWidth,.3/this.body.view.scale):e===!0?Math.max(this.hoverWidth,.3/this.body.view.scale):Math.max(this.options.width,.3/this.body.view.scale)}},{key:"getColor",value:function(t,e,i){var o=this.options.color;if(o.inherit!==!1){if("both"===o.inherit&&this.from.id!==this.to.id){var n=t.createLinearGradient(this.from.x,this.from.y,this.to.x,this.to.y),s=void 0,a=void 0;return s=this.from.options.color.highlight.border,a=this.to.options.color.highlight.border,this.from.selected===!1&&this.to.selected===!1?(s=r.overrideOpacity(this.from.options.color.border,this.options.color.opacity),a=r.overrideOpacity(this.to.options.color.border,this.options.color.opacity)):this.from.selected===!0&&this.to.selected===!1?a=this.to.options.color.border:this.from.selected===!1&&this.to.selected===!0&&(s=this.from.options.color.border),n.addColorStop(0,s),n.addColorStop(1,a),n}this.colorDirty===!0&&("to"===o.inherit?(this.color.highlight=this.to.options.color.highlight.border,this.color.hover=this.to.options.color.hover.border,this.color.color=r.overrideOpacity(this.to.options.color.border,o.opacity)):(this.color.highlight=this.from.options.color.highlight.border,this.color.hover=this.from.options.color.hover.border,this.color.color=r.overrideOpacity(this.from.options.color.border,o.opacity)))}else this.colorDirty===!0&&(this.color.highlight=o.highlight,this.color.hover=o.hover,this.color.color=r.overrideOpacity(o.color,o.opacity));return this.colorDirty=!1,e===!0?this.color.highlight:i===!0?this.color.hover:this.color.color}},{key:"_circle",value:function(t,e,i,o){this.enableShadow(t),t.beginPath(),t.arc(e,i,o,0,2*Math.PI,!1),t.stroke(),this.disableShadow(t)}},{key:"getDistanceToEdge",value:function(t,e,i,o,s,r,a){var h=0;if(this.from!=this.to)h=this._getDistanceToEdge(t,e,i,o,s,r,a);else{var d=this._getCircleData(),l=n(d,3),c=l[0],u=l[1],p=l[2],f=c-s,m=u-r;h=Math.abs(Math.sqrt(f*f+m*m)-p)}return this.labelModule.size.lefts&&this.labelModule.size.topr?0:h}},{key:"_getDistanceToLine",value:function(t,e,i,o,n,s){var r=i-t,a=o-e,h=r*r+a*a,d=((n-t)*r+(s-e)*a)/h;d>1?d=1:0>d&&(d=0);var l=t+d*r,c=e+d*a,u=l-n,p=c-s;return Math.sqrt(u*u+p*p)}},{key:"getArrowData",value:function(t,e,i,o,s){var r=void 0,a=void 0,h=void 0,d=void 0,l=void 0,c=void 0,u=this.getLineWidth(o,s);if("from"===e?(h=this.from,d=this.to,l=.1,c=this.options.arrows.from.scaleFactor):"to"===e?(h=this.to,d=this.from,l=-.1,c=this.options.arrows.to.scaleFactor):(h=this.to,d=this.from,c=this.options.arrows.middle.scaleFactor),h!=d)if("middle"!==e)if(this.options.smooth.enabled===!0){a=this.findBorderPosition(h,t,{via:i});var p=this.getPoint(Math.max(0,Math.min(1,a.t+l)),i);r=Math.atan2(a.y-p.y,a.x-p.x)}else r=Math.atan2(h.y-d.y,h.x-d.x),a=this.findBorderPosition(h,t);else r=Math.atan2(h.y-d.y,h.x-d.x),a=this.getPoint(.5,i);else{var f=this._getCircleData(t),m=n(f,3),v=m[0],g=m[1],y=m[2];"from"===e?(a=this.findBorderPosition(this.from,t,{x:v,y:g,low:.25,high:.6,direction:-1}),r=-2*a.t*Math.PI+1.5*Math.PI+.1*Math.PI):"to"===e?(a=this.findBorderPosition(this.from,t,{x:v,y:g,low:.6,high:1,direction:1}),r=-2*a.t*Math.PI+1.5*Math.PI-1.1*Math.PI):(a=this._pointOnCircle(v,g,y,.175),r=3.9269908169872414)}var b=15*c+3*u,w=a.x-.9*b*Math.cos(r),_=a.y-.9*b*Math.sin(r),x={x:w,y:_};return{point:a,core:x,angle:r,length:b}}},{key:"drawArrowHead",value:function(t,e,i,o){t.strokeStyle=this.getColor(t,e,i),t.fillStyle=t.strokeStyle,t.lineWidth=this.getLineWidth(e,i),t.arrow(o.point.x,o.point.y,o.angle,o.length),this.enableShadow(t),t.fill(),this.disableShadow(t)}},{key:"enableShadow",value:function(t){this.options.shadow.enabled===!0&&(t.shadowColor=this.options.shadow.color,t.shadowBlur=this.options.shadow.size,t.shadowOffsetX=this.options.shadow.x,t.shadowOffsetY=this.options.shadow.y)}},{key:"disableShadow",value:function(t){this.options.shadow.enabled===!0&&(t.shadowColor="rgba(0,0,0,0)",t.shadowBlur=0,t.shadowOffsetX=0,t.shadowOffsetY=0)}}]),t}();e["default"]=a},function(t,e,i){function o(t){return t&&t.__esModule?t:{"default":t}}function n(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function s(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}function r(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e); +t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}Object.defineProperty(e,"__esModule",{value:!0});var a=function(){function t(t,e){for(var i=0;i=this.to.y?this.from.x<=this.to.x?(t=this.from.x+i*s,e=this.from.y-i*s):this.from.x>this.to.x&&(t=this.from.x-i*s,e=this.from.y-i*s):this.from.ythis.to.x&&(t=this.from.x-i*s,e=this.from.y+i*s)),"discrete"===o&&(t=i*s>n?this.from.x:t)):Math.abs(this.from.x-this.to.x)>Math.abs(this.from.y-this.to.y)&&(this.from.y>=this.to.y?this.from.x<=this.to.x?(t=this.from.x+i*n,e=this.from.y-i*n):this.from.x>this.to.x&&(t=this.from.x-i*n,e=this.from.y-i*n):this.from.ythis.to.x&&(t=this.from.x-i*n,e=this.from.y+i*n)),"discrete"===o&&(e=i*n>s?this.from.y:e));else if("straightCross"===o)Math.abs(this.from.x-this.to.x)<=Math.abs(this.from.y-this.to.y)?(t=this.from.x,e=this.from.yMath.abs(this.from.y-this.to.y)&&(t=this.from.x=this.to.y?this.from.x<=this.to.x?(t=this.from.x+i*s,e=this.from.y-i*s,t=this.to.xthis.to.x&&(t=this.from.x-i*s,e=this.from.y-i*s,t=this.to.x>t?this.to.x:t):this.from.ythis.to.x&&(t=this.from.x-i*s,e=this.from.y+i*s,t=this.to.x>t?this.to.x:t)):Math.abs(this.from.x-this.to.x)>Math.abs(this.from.y-this.to.y)&&(this.from.y>=this.to.y?this.from.x<=this.to.x?(t=this.from.x+i*n,e=this.from.y-i*n,e=this.to.y>e?this.to.y:e):this.from.x>this.to.x&&(t=this.from.x-i*n,e=this.from.y-i*n,e=this.to.y>e?this.to.y:e):this.from.ythis.to.x&&(t=this.from.x-i*n,e=this.from.y+i*n,e=this.to.y1||this.startedStabilization===!0)&&setTimeout(function(){t.body.emitter.emit("stabilized",{iterations:e}),t.startedStabilization=!1,t.stabilizationIterations=0},0)}},{key:"physicsTick",value:function(){if(this.startedStabilization===!1&&(this.body.emitter.emit("startStabilizing"),this.startedStabilization=!0),this.stabilized===!1){if(this.adaptiveTimestep===!0&&this.adaptiveTimestepEnabled===!0){var t=1.2;this.adaptiveCounter%this.adaptiveInterval===0?(this.timestep=2*this.timestep,this.calculateForces(),this.moveNodes(),this.revert(),this.timestep=.5*this.timestep,this.calculateForces(),this.moveNodes(),this.calculateForces(),this.moveNodes(),this._evaluateStepQuality()===!0?this.timestep=t*this.timestep:this.timestep/ts))return!1;return!0}},{key:"moveNodes",value:function(){for(var t=this.physicsBody.physicsNodeIndices,e=this.options.maxVelocity?this.options.maxVelocity:1e9,i=0,o=0,n=5,s=0;se?s[t].x>0?e:-e:s[t].x,i.x+=s[t].x*o}else n[t].x=0,s[t].x=0;if(i.options.fixed.y===!1){var h=this.modelOptions.damping*s[t].y,d=(n[t].y-h)/i.options.mass;s[t].y+=d*o,s[t].y=Math.abs(s[t].y)>e?s[t].y>0?e:-e:s[t].y,i.y+=s[t].y*o}else n[t].y=0,s[t].y=0;var l=Math.sqrt(Math.pow(s[t].x,2)+Math.pow(s[t].y,2));return l}},{key:"calculateForces",value:function(){this.gravitySolver.solve(),this.nodesSolver.solve(),this.edgesSolver.solve()}},{key:"_freezeNodes",value:function(){var t=this.body.nodes;for(var e in t)t.hasOwnProperty(e)&&t[e].x&&t[e].y&&(this.freezeCache[e]={x:t[e].options.fixed.x,y:t[e].options.fixed.y},t[e].options.fixed.x=!0,t[e].options.fixed.y=!0)}},{key:"_restoreFrozenNodes",value:function(){var t=this.body.nodes;for(var e in t)t.hasOwnProperty(e)&&void 0!==this.freezeCache[e]&&(t[e].options.fixed.x=this.freezeCache[e].x,t[e].options.fixed.y=this.freezeCache[e].y);this.freezeCache={}}},{key:"stabilize",value:function(){var t=this,e=arguments.length<=0||void 0===arguments[0]?this.options.stabilization.iterations:arguments[0];return"number"!=typeof e&&(console.log("The stabilize method needs a numeric amount of iterations. Switching to default: ",this.options.stabilization.iterations),e=this.options.stabilization.iterations),0===this.physicsBody.physicsNodeIndices.length?void(this.ready=!0):(this.adaptiveTimestep=this.options.adaptiveTimestep,this.body.emitter.emit("_resizeNodes"),this.stopSimulation(),this.stabilized=!1,this.body.emitter.emit("_blockRedraw"),this.targetIterations=e,this.options.stabilization.onlyDynamicEdges===!0&&this._freezeNodes(),this.stabilizationIterations=0,void setTimeout(function(){return t._stabilizationBatch()},0))}},{key:"_stabilizationBatch",value:function(){this.startedStabilization===!1&&(this.body.emitter.emit("startStabilizing"),this.startedStabilization=!0);for(var t=0;this.stabilized===!1&&t0){var t=void 0,e=this.body.nodes,i=this.physicsBody.physicsNodeIndices,o=i.length,n=this._formBarnesHutTree(e,i);this.barnesHutTree=n;for(var s=0;o>s;s++)t=e[i[s]],t.options.mass>0&&(this._getForceContribution(n.root.children.NW,t),this._getForceContribution(n.root.children.NE,t),this._getForceContribution(n.root.children.SW,t),this._getForceContribution(n.root.children.SE,t))}}},{key:"_getForceContribution",value:function(t,e){if(t.childrenCount>0){var i=void 0,o=void 0,n=void 0;i=t.centerOfMass.x-e.x,o=t.centerOfMass.y-e.y,n=Math.sqrt(i*i+o*o),n*t.calcSize>this.thetaInversed?this._calculateForces(n,i,o,e,t):4===t.childrenCount?(this._getForceContribution(t.children.NW,e),this._getForceContribution(t.children.NE,e),this._getForceContribution(t.children.SW,e),this._getForceContribution(t.children.SE,e)):t.children.data.id!=e.id&&this._calculateForces(n,i,o,e,t)}}},{key:"_calculateForces",value:function(t,e,i,o,n){0===t&&(t=.1,e=t),this.overlapAvoidanceFactor<1&&(t=Math.max(.1+this.overlapAvoidanceFactor*o.shape.radius,t-o.shape.radius));var s=this.options.gravitationalConstant*n.mass*o.options.mass/Math.pow(t,3),r=e*s,a=i*s;this.physicsBody.forces[o.id].x+=r,this.physicsBody.forces[o.id].y+=a}},{key:"_formBarnesHutTree",value:function(t,e){for(var i=void 0,o=e.length,n=t[e[0]].x,s=t[e[0]].y,r=t[e[0]].x,a=t[e[0]].y,h=1;o>h;h++){var d=t[e[h]].x,l=t[e[h]].y;t[e[h]].options.mass>0&&(n>d&&(n=d),d>r&&(r=d),s>l&&(s=l),l>a&&(a=l))}var c=Math.abs(r-n)-Math.abs(a-s);c>0?(s-=.5*c,a+=.5*c):(n+=.5*c,r-=.5*c);var u=1e-5,p=Math.max(u,Math.abs(r-n)),f=.5*p,m=.5*(n+r),v=.5*(s+a),g={root:{centerOfMass:{x:0,y:0},mass:0,range:{minX:m-f,maxX:m+f,minY:v-f,maxY:v+f},size:p,calcSize:1/p,children:{data:null},maxWidth:0,level:0,childrenCount:4}};this._splitBranch(g.root);for(var y=0;o>y;y++)i=t[e[y]],i.options.mass>0&&this._placeInTree(g.root,i);return g}},{key:"_updateBranchMass",value:function(t,e){var i=t.mass+e.options.mass,o=1/i;t.centerOfMass.x=t.centerOfMass.x*t.mass+e.x*e.options.mass,t.centerOfMass.x*=o,t.centerOfMass.y=t.centerOfMass.y*t.mass+e.y*e.options.mass,t.centerOfMass.y*=o,t.mass=i;var n=Math.max(Math.max(e.height,e.radius),e.width);t.maxWidth=t.maxWidthe.x?t.children.NW.range.maxY>e.y?this._placeInRegion(t,e,"NW"):this._placeInRegion(t,e,"SW"):t.children.NW.range.maxY>e.y?this._placeInRegion(t,e,"NE"):this._placeInRegion(t,e,"SE")}},{key:"_placeInRegion",value:function(t,e,i){switch(t.children[i].childrenCount){case 0:t.children[i].children.data=e,t.children[i].childrenCount=1,this._updateBranchMass(t.children[i],e);break;case 1:t.children[i].children.data.x===e.x&&t.children[i].children.data.y===e.y?(e.x+=this.seededRandom(),e.y+=this.seededRandom()):(this._splitBranch(t.children[i]),this._placeInTree(t.children[i],e));break;case 4:this._placeInTree(t.children[i],e)}}},{key:"_splitBranch",value:function(t){var e=null;1===t.childrenCount&&(e=t.children.data,t.mass=0,t.centerOfMass.x=0,t.centerOfMass.y=0),t.childrenCount=4,t.children.data=null,this._insertRegion(t,"NW"),this._insertRegion(t,"NE"),this._insertRegion(t,"SW"),this._insertRegion(t,"SE"),null!=e&&this._placeInTree(t,e)}},{key:"_insertRegion",value:function(t,e){var i=void 0,o=void 0,n=void 0,s=void 0,r=.5*t.size;switch(e){case"NW":i=t.range.minX,o=t.range.minX+r,n=t.range.minY,s=t.range.minY+r;break;case"NE":i=t.range.minX+r,o=t.range.maxX,n=t.range.minY,s=t.range.minY+r;break;case"SW":i=t.range.minX,o=t.range.minX+r,n=t.range.minY+r,s=t.range.maxY;break;case"SE":i=t.range.minX+r,o=t.range.maxX,n=t.range.minY+r,s=t.range.maxY}t.children[e]={centerOfMass:{x:0,y:0},mass:0,range:{minX:i,maxX:o,minY:n,maxY:s},size:.5*t.size,calcSize:2*t.calcSize,children:{data:null},maxWidth:0,level:t.level+1,childrenCount:0}}},{key:"_debug",value:function(t,e){void 0!==this.barnesHutTree&&(t.lineWidth=1,this._drawBranch(this.barnesHutTree.root,t,e))}},{key:"_drawBranch",value:function(t,e,i){void 0===i&&(i="#FF0000"),4===t.childrenCount&&(this._drawBranch(t.children.NW,e),this._drawBranch(t.children.NE,e),this._drawBranch(t.children.SE,e),this._drawBranch(t.children.SW,e)),e.strokeStyle=i,e.beginPath(),e.moveTo(t.range.minX,t.range.minY),e.lineTo(t.range.maxX,t.range.minY),e.stroke(),e.beginPath(),e.moveTo(t.range.maxX,t.range.minY),e.lineTo(t.range.maxX,t.range.maxY),e.stroke(),e.beginPath(),e.moveTo(t.range.maxX,t.range.maxY),e.lineTo(t.range.minX,t.range.maxY),e.stroke(),e.beginPath(),e.moveTo(t.range.minX,t.range.maxY),e.lineTo(t.range.minX,t.range.minY),e.stroke()}}]),t}();e["default"]=n},function(t,e){function i(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(e,"__esModule",{value:!0});var o=function(){function t(t,e){for(var i=0;ii&&(s=.5*c>i?1:u*i+p,s/=i,o=t*s,n=e*s,l[r.id].x-=o,l[r.id].y-=n,l[a.id].x+=o,l[a.id].y+=n)}}}]),t}();e["default"]=n},function(t,e){function i(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(e,"__esModule",{value:!0});var o=function(){function t(t,e){for(var i=0;ii?-Math.pow(f*i,2)+Math.pow(f*p,2):0,0===i?i=.01:s/=i,o=t*s,n=e*s,u[r.id].x-=o,u[r.id].y-=n,u[a.id].x+=o,u[a.id].y+=n}}}]),t}();e["default"]=n},function(t,e){function i(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(e,"__esModule",{value:!0});var o=function(){function t(t,e){for(var i=0;i0){var s=n.edges.length+1,r=this.options.centralGravity*s*n.options.mass;o[n.id].x=e*r,o[n.id].y=i*r}}}]),e}(d["default"]);e["default"]=l},function(t,e,i){function o(t){return t&&t.__esModule?t:{"default":t}}function n(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(e,"__esModule",{value:!0});var s="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol?"symbol":typeof t},r=function(){function t(t,e){for(var i=0;i=t&&i.push(n.id)}for(var r=0;r0&&Object.keys(p).length>0&&m===!0&&o.push({nodes:u,edges:p})}}}for(var b=0;bo?r.x:o,n=r.ys?r.y:s;return{x:.5*(i+o),y:.5*(n+s)}}},{key:"openCluster",value:function(t,e){var i=arguments.length<=2||void 0===arguments[2]?!0:arguments[2];if(void 0===t)throw new Error("No clusterNodeId supplied to openCluster.");if(void 0===this.body.nodes[t])throw new Error("The clusterNodeId supplied to openCluster does not exist.");if(void 0===this.body.nodes[t].containedNodes)return void console.log("The node:"+t+" is not a cluster.");var o=this.body.nodes[t],n=o.containedNodes,s=o.containedEdges;if(void 0!==e&&void 0!==e.releaseFunction&&"function"==typeof e.releaseFunction){var r={},a={x:o.x,y:o.y};for(var d in n)if(n.hasOwnProperty(d)){var l=this.body.nodes[d];r[d]={x:l.x,y:l.y}}var u=e.releaseFunction(a,r);for(var p in n)if(n.hasOwnProperty(p)){var f=this.body.nodes[p];void 0!==u[p]&&(f.x=void 0===u[p].x?o.x:u[p].x,f.y=void 0===u[p].y?o.y:u[p].y)}}else for(var m in n)if(n.hasOwnProperty(m)){var v=this.body.nodes[m];v=n[m],v.options.fixed.x===!1&&(v.x=o.x),v.options.fixed.y===!1&&(v.y=o.y)}for(var g in n)if(n.hasOwnProperty(g)){var y=this.body.nodes[g];y.vx=o.vx,y.vy=o.vy,y.setOptions({hidden:!1,physics:!0}),delete this.clusteredNodes[g]}for(var b=[],w=0;wo;)e.push(this.body.nodes[t].id),t=this.clusteredNodes[t].clusterId,o++;return e.push(this.body.nodes[t].id),e.reverse(),e}},{key:"_getConnectedId",value:function(t,e){return t.toId!=e?t.toId:t.fromId!=e?t.fromId:t.fromId}},{key:"_getHubSize",value:function(){for(var t=0,e=0,i=0,o=0,n=0;no&&(o=s.edges.length),t+=s.edges.length,e+=Math.pow(s.edges.length,2),i+=1}t/=i,e/=i;var r=e-Math.pow(t,2),a=Math.sqrt(r),h=Math.floor(t+2*a);return h>o&&(h=o),h}}]),t}();e["default"]=u},function(t,e,i){function o(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(e,"__esModule",{value:!0});var n=function(){function t(t,e){for(var i=0;i0)for(var a=0;ae.shape.boundingBox.left&&(s=e.shape.boundingBox.left),re.shape.boundingBox.top&&(o=e.shape.boundingBox.top),n0)for(var a=0;ae.x&&(s=e.x),re.y&&(o=e.y),n0,t.renderTimer=void 0}),this.body.emitter.on("destroy",function(){t.renderRequests=0,t.allowRedraw=!1,t.renderingActive=!1,t.requiresTimeout===!0?clearTimeout(t.renderTimer):cancelAnimationFrame(t.renderTimer),t.body.emitter.off()})}},{key:"setOptions",value:function(t){if(void 0!==t){var e=["hideEdgesOnDrag","hideNodesOnDrag"];s.selectiveDeepExtend(e,this.options,t)}}},{key:"_startRendering",value:function(){this.renderingActive===!0&&void 0===this.renderTimer&&(this.requiresTimeout===!0?this.renderTimer=window.setTimeout(this._renderStep.bind(this),this.simulationInterval):this.renderTimer=window.requestAnimationFrame(this._renderStep.bind(this)))}},{key:"_renderStep",value:function(){this.renderingActive===!0&&(this.renderTimer=void 0,this.requiresTimeout===!0&&this._startRendering(),this._redraw(),this.requiresTimeout===!1&&this._startRendering())}},{key:"redraw",value:function(){this.body.emitter.emit("setSize"),this._redraw()}},{key:"_requestRedraw",value:function(){var t=this;this.redrawRequested!==!0&&this.renderingActive===!1&&this.allowRedraw===!0&&(this.redrawRequested=!0,this.requiresTimeout===!0?window.setTimeout(function(){t._redraw(!1)},0):window.requestAnimationFrame(function(){t._redraw(!1)}))}},{key:"_redraw",value:function(){var t=arguments.length<=0||void 0===arguments[0]?!1:arguments[0];if(this.allowRedraw===!0){this.body.emitter.emit("initRedraw"),this.redrawRequested=!1;var e=this.canvas.frame.canvas.getContext("2d");0!==this.canvas.frame.canvas.width&&0!==this.canvas.frame.canvas.height||this.canvas.setSize(),this.pixelRatio=(window.devicePixelRatio||1)/(e.webkitBackingStorePixelRatio||e.mozBackingStorePixelRatio||e.msBackingStorePixelRatio||e.oBackingStorePixelRatio||e.backingStorePixelRatio||1),e.setTransform(this.pixelRatio,0,0,this.pixelRatio,0,0);var i=this.canvas.frame.canvas.clientWidth,o=this.canvas.frame.canvas.clientHeight;if(e.clearRect(0,0,i,o),0===this.canvas.frame.clientWidth)return;e.save(),e.translate(this.body.view.translation.x,this.body.view.translation.y),e.scale(this.body.view.scale,this.body.view.scale),e.beginPath(),this.body.emitter.emit("beforeDrawing",e),e.closePath(),t===!1&&(this.dragging===!1||this.dragging===!0&&this.options.hideEdgesOnDrag===!1)&&this._drawEdges(e),(this.dragging===!1||this.dragging===!0&&this.options.hideNodesOnDrag===!1)&&this._drawNodes(e,t),e.beginPath(),this.body.emitter.emit("afterDrawing",e),e.closePath(),e.restore(),t===!0&&e.clearRect(0,0,i,o)}}},{key:"_resizeNodes",value:function(){var t=this.canvas.frame.canvas.getContext("2d");void 0===this.pixelRatio&&(this.pixelRatio=(window.devicePixelRatio||1)/(t.webkitBackingStorePixelRatio||t.mozBackingStorePixelRatio||t.msBackingStorePixelRatio||t.oBackingStorePixelRatio||t.backingStorePixelRatio||1)),t.setTransform(this.pixelRatio,0,0,this.pixelRatio,0,0),t.save(),t.translate(this.body.view.translation.x,this.body.view.translation.y),t.scale(this.body.view.scale,this.body.view.scale);var e=this.body.nodes,i=void 0;for(var o in e)e.hasOwnProperty(o)&&(i=e[o],i.resize(t),i.updateBoundingBox(t,i.selected));t.restore()}},{key:"_drawNodes",value:function(t){for(var e=arguments.length<=1||void 0===arguments[1]?!1:arguments[1],i=this.body.nodes,o=this.body.nodeIndices,n=void 0,s=[],r=20,a=this.canvas.DOMtoCanvas({x:-r,y:-r}),h=this.canvas.DOMtoCanvas({x:this.canvas.frame.canvas.clientWidth+r,y:this.canvas.frame.canvas.clientHeight+r}),d={top:a.y,left:a.x,bottom:h.y,right:h.x},l=0;l0){var t=this.frame.canvas.width/this.pixelRatio/this.cameraState.previousWidth,e=this.frame.canvas.height/this.pixelRatio/this.cameraState.previousHeight,i=this.cameraState.scale;1!=t&&1!=e?i=.5*this.cameraState.scale*(t+e):1!=t?i=this.cameraState.scale*t:1!=e&&(i=this.cameraState.scale*e),this.body.view.scale=i;var o=this.DOMtoCanvas({x:.5*this.frame.canvas.clientWidth,y:.5*this.frame.canvas.clientHeight}),n={x:o.x-this.cameraState.position.x,y:o.y-this.cameraState.position.y};this.body.view.translation.x+=n.x*this.body.view.scale,this.body.view.translation.y+=n.y*this.body.view.scale}}},{key:"_prepareValue",value:function(t){if("number"==typeof t)return t+"px";if("string"==typeof t){if(-1!==t.indexOf("%")||-1!==t.indexOf("px"))return t;if(-1===t.indexOf("%"))return t+"px"}throw new Error("Could not use the value supplied for width or height:"+t)}},{key:"_create",value:function(){for(;this.body.container.hasChildNodes();)this.body.container.removeChild(this.body.container.firstChild);if(this.frame=document.createElement("div"),this.frame.className="vis-network",this.frame.style.position="relative",this.frame.style.overflow="hidden",this.frame.tabIndex=900,this.frame.canvas=document.createElement("canvas"),this.frame.canvas.style.position="relative",this.frame.appendChild(this.frame.canvas),this.frame.canvas.getContext){var t=this.frame.canvas.getContext("2d");this.pixelRatio=(window.devicePixelRatio||1)/(t.webkitBackingStorePixelRatio||t.mozBackingStorePixelRatio||t.msBackingStorePixelRatio||t.oBackingStorePixelRatio||t.backingStorePixelRatio||1),this.frame.canvas.getContext("2d").setTransform(this.pixelRatio,0,0,this.pixelRatio,0,0)}else{var e=document.createElement("DIV");e.style.color="red",e.style.fontWeight="bold",e.style.padding="10px",e.innerHTML="Error: your browser does not support HTML canvas",this.frame.canvas.appendChild(e)}this.body.container.appendChild(this.frame),this.body.view.scale=1,this.body.view.translation={x:.5*this.frame.canvas.clientWidth,y:.5*this.frame.canvas.clientHeight},this._bindHammer()}},{key:"_bindHammer",value:function(){var t=this;void 0!==this.hammer&&this.hammer.destroy(),this.drag={},this.pinch={},this.hammer=new s(this.frame.canvas),this.hammer.get("pinch").set({enable:!0}),this.hammer.get("pan").set({threshold:5,direction:s.DIRECTION_ALL}),r.onTouch(this.hammer,function(e){t.body.eventListeners.onTouch(e)}),this.hammer.on("tap",function(e){t.body.eventListeners.onTap(e)}),this.hammer.on("doubletap",function(e){t.body.eventListeners.onDoubleTap(e)}),this.hammer.on("press",function(e){t.body.eventListeners.onHold(e)}),this.hammer.on("panstart",function(e){t.body.eventListeners.onDragStart(e)}),this.hammer.on("panmove",function(e){t.body.eventListeners.onDrag(e)}),this.hammer.on("panend",function(e){t.body.eventListeners.onDragEnd(e)}),this.hammer.on("pinch",function(e){t.body.eventListeners.onPinch(e)}),this.frame.canvas.addEventListener("mousewheel",function(e){t.body.eventListeners.onMouseWheel(e)}),this.frame.canvas.addEventListener("DOMMouseScroll",function(e){t.body.eventListeners.onMouseWheel(e)}),this.frame.canvas.addEventListener("mousemove",function(e){t.body.eventListeners.onMouseMove(e)}),this.frame.canvas.addEventListener("contextmenu",function(e){t.body.eventListeners.onContext(e)}),this.hammerFrame=new s(this.frame),r.onRelease(this.hammerFrame,function(e){t.body.eventListeners.onRelease(e)})}},{key:"setSize",value:function(){var t=arguments.length<=0||void 0===arguments[0]?this.options.width:arguments[0],e=arguments.length<=1||void 0===arguments[1]?this.options.height:arguments[1];t=this._prepareValue(t),e=this._prepareValue(e);var i=!1,o=this.frame.canvas.width,n=this.frame.canvas.height,s=this.frame.canvas.getContext("2d"),r=this.pixelRatio;return this.pixelRatio=(window.devicePixelRatio||1)/(s.webkitBackingStorePixelRatio||s.mozBackingStorePixelRatio||s.msBackingStorePixelRatio||s.oBackingStorePixelRatio||s.backingStorePixelRatio||1),t!=this.options.width||e!=this.options.height||this.frame.style.width!=t||this.frame.style.height!=e?(this._getCameraState(r),this.frame.style.width=t,this.frame.style.height=e,this.frame.canvas.style.width="100%",this.frame.canvas.style.height="100%",this.frame.canvas.width=Math.round(this.frame.canvas.clientWidth*this.pixelRatio),this.frame.canvas.height=Math.round(this.frame.canvas.clientHeight*this.pixelRatio),this.options.width=t,this.options.height=e,i=!0):(this.frame.canvas.width==Math.round(this.frame.canvas.clientWidth*this.pixelRatio)&&this.frame.canvas.height==Math.round(this.frame.canvas.clientHeight*this.pixelRatio)||this._getCameraState(r),this.frame.canvas.width!=Math.round(this.frame.canvas.clientWidth*this.pixelRatio)&&(this.frame.canvas.width=Math.round(this.frame.canvas.clientWidth*this.pixelRatio),i=!0),this.frame.canvas.height!=Math.round(this.frame.canvas.clientHeight*this.pixelRatio)&&(this.frame.canvas.height=Math.round(this.frame.canvas.clientHeight*this.pixelRatio),i=!0)),i===!0&&(this.body.emitter.emit("resize",{width:Math.round(this.frame.canvas.width/this.pixelRatio),height:Math.round(this.frame.canvas.height/this.pixelRatio),oldWidth:Math.round(o/this.pixelRatio),oldHeight:Math.round(n/this.pixelRatio)}),this._setCameraState()),this.initialized=!0,i}},{key:"_XconvertDOMtoCanvas",value:function(t){return(t-this.body.view.translation.x)/this.body.view.scale}},{key:"_XconvertCanvasToDOM",value:function(t){return t*this.body.view.scale+this.body.view.translation.x}},{key:"_YconvertDOMtoCanvas",value:function(t){return(t-this.body.view.translation.y)/this.body.view.scale}},{key:"_YconvertCanvasToDOM",value:function(t){return t*this.body.view.scale+this.body.view.translation.y}},{key:"canvasToDOM",value:function(t){return{x:this._XconvertCanvasToDOM(t.x),y:this._YconvertCanvasToDOM(t.y)}}},{key:"DOMtoCanvas",value:function(t){return{x:this._XconvertDOMtoCanvas(t.x),y:this._YconvertDOMtoCanvas(t.y)}}}]),t}();e["default"]=h},function(t,e,i){function o(t){return t&&t.__esModule?t:{"default":t}}function n(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function"); +}Object.defineProperty(e,"__esModule",{value:!0});var s=function(){function t(t,e){for(var i=0;i.5*this.body.nodeIndices.length)return void this.fit(t,!1);i=a["default"].getRange(this.body.nodes,t.nodes);var h=this.body.nodeIndices.length;o=12.662/(h+7.4147)+.0964822;var d=Math.min(this.canvas.frame.canvas.clientWidth/600,this.canvas.frame.canvas.clientHeight/600);o*=d}else{this.body.emitter.emit("_resizeNodes"),i=a["default"].getRange(this.body.nodes,t.nodes);var l=1.1*Math.abs(i.maxX-i.minX),c=1.1*Math.abs(i.maxY-i.minY),u=this.canvas.frame.canvas.clientWidth/l,p=this.canvas.frame.canvas.clientHeight/c;o=p>=u?u:p}o>1?o=1:0===o&&(o=1);var f=a["default"].findCenter(i),m={position:f,scale:o,animation:t.animation};this.moveTo(m)}},{key:"focus",value:function(t){var e=arguments.length<=1||void 0===arguments[1]?{}:arguments[1];if(void 0!==this.body.nodes[t]){var i={x:this.body.nodes[t].x,y:this.body.nodes[t].y};e.position=i,e.lockedOnNode=t,this.moveTo(e)}else console.log("Node: "+t+" cannot be found.")}},{key:"moveTo",value:function(t){return void 0===t?void(t={}):(void 0===t.offset&&(t.offset={x:0,y:0}),void 0===t.offset.x&&(t.offset.x=0),void 0===t.offset.y&&(t.offset.y=0),void 0===t.scale&&(t.scale=this.body.view.scale),void 0===t.position&&(t.position=this.getViewPosition()),void 0===t.animation&&(t.animation={duration:0}),t.animation===!1&&(t.animation={duration:0}),t.animation===!0&&(t.animation={}),void 0===t.animation.duration&&(t.animation.duration=1e3),void 0===t.animation.easingFunction&&(t.animation.easingFunction="easeInOutQuad"),void this.animateView(t))}},{key:"animateView",value:function(t){if(void 0!==t){this.animationEasingFunction=t.animation.easingFunction,this.releaseNode(),t.locked===!0&&(this.lockedOnNodeId=t.lockedOnNode,this.lockedOnNodeOffset=t.offset),0!=this.easingTime&&this._transitionRedraw(!0),this.sourceScale=this.body.view.scale,this.sourceTranslation=this.body.view.translation,this.targetScale=t.scale,this.body.view.scale=this.targetScale;var e=this.canvas.DOMtoCanvas({x:.5*this.canvas.frame.canvas.clientWidth,y:.5*this.canvas.frame.canvas.clientHeight}),i={x:e.x-t.position.x,y:e.y-t.position.y};this.targetTranslation={x:this.sourceTranslation.x+i.x*this.targetScale+t.offset.x,y:this.sourceTranslation.y+i.y*this.targetScale+t.offset.y},0===t.animation.duration?void 0!=this.lockedOnNodeId?(this.viewFunction=this._lockedRedraw.bind(this),this.body.emitter.on("initRedraw",this.viewFunction)):(this.body.view.scale=this.targetScale,this.body.view.translation=this.targetTranslation,this.body.emitter.emit("_requestRedraw")):(this.animationSpeed=1/(60*t.animation.duration*.001)||1/60,this.animationEasingFunction=t.animation.easingFunction,this.viewFunction=this._transitionRedraw.bind(this),this.body.emitter.on("initRedraw",this.viewFunction),this.body.emitter.emit("_startRendering"))}}},{key:"_lockedRedraw",value:function(){var t={x:this.body.nodes[this.lockedOnNodeId].x,y:this.body.nodes[this.lockedOnNodeId].y},e=this.canvas.DOMtoCanvas({x:.5*this.canvas.frame.canvas.clientWidth,y:.5*this.canvas.frame.canvas.clientHeight}),i={x:e.x-t.x,y:e.y-t.y},o=this.body.view.translation,n={x:o.x+i.x*this.body.view.scale+this.lockedOnNodeOffset.x,y:o.y+i.y*this.body.view.scale+this.lockedOnNodeOffset.y};this.body.view.translation=n}},{key:"releaseNode",value:function(){void 0!==this.lockedOnNodeId&&void 0!==this.viewFunction&&(this.body.emitter.off("initRedraw",this.viewFunction),this.lockedOnNodeId=void 0,this.lockedOnNodeOffset=void 0)}},{key:"_transitionRedraw",value:function(){var t=arguments.length<=0||void 0===arguments[0]?!1:arguments[0];this.easingTime+=this.animationSpeed,this.easingTime=t===!0?1:this.easingTime;var e=h.easingFunctions[this.animationEasingFunction](this.easingTime);this.body.view.scale=this.sourceScale+(this.targetScale-this.sourceScale)*e,this.body.view.translation={x:this.sourceTranslation.x+(this.targetTranslation.x-this.sourceTranslation.x)*e,y:this.sourceTranslation.y+(this.targetTranslation.y-this.sourceTranslation.y)*e},this.easingTime>=1&&(this.body.emitter.off("initRedraw",this.viewFunction),this.easingTime=0,void 0!=this.lockedOnNodeId&&(this.viewFunction=this._lockedRedraw.bind(this),this.body.emitter.on("initRedraw",this.viewFunction)),this.body.emitter.emit("animationFinished"))}},{key:"getScale",value:function(){return this.body.view.scale}},{key:"getViewPosition",value:function(){return this.canvas.DOMtoCanvas({x:.5*this.canvas.frame.canvas.clientWidth,y:.5*this.canvas.frame.canvas.clientHeight})}}]),t}();e["default"]=d},function(t,e,i){function o(t){return t&&t.__esModule?t:{"default":t}}function n(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(e,"__esModule",{value:!0});var s=function(){function t(t,e){for(var i=0;i50&&(this.drag.pointer=this.getPointer(t.center),this.drag.pinched=!1,this.pinch.scale=this.body.view.scale,this.touchTime=(new Date).valueOf())}},{key:"onTap",value:function(t){var e=this.getPointer(t.center),i=this.selectionHandler.options.multiselect&&(t.changedPointers[0].ctrlKey||t.changedPointers[0].metaKey);this.checkSelectionChanges(e,t,i),this.selectionHandler._generateClickEvent("click",t,e)}},{key:"onDoubleTap",value:function(t){var e=this.getPointer(t.center);this.selectionHandler._generateClickEvent("doubleClick",t,e)}},{key:"onHold",value:function(t){var e=this.getPointer(t.center),i=this.selectionHandler.options.multiselect;this.checkSelectionChanges(e,t,i),this.selectionHandler._generateClickEvent("click",t,e),this.selectionHandler._generateClickEvent("hold",t,e)}},{key:"onRelease",value:function(t){if((new Date).valueOf()-this.touchTime>10){var e=this.getPointer(t.center);this.selectionHandler._generateClickEvent("release",t,e),this.touchTime=(new Date).valueOf()}}},{key:"onContext",value:function(t){var e=this.getPointer({x:t.clientX,y:t.clientY});this.selectionHandler._generateClickEvent("oncontext",t,e)}},{key:"checkSelectionChanges",value:function(t,e){var i=arguments.length<=2||void 0===arguments[2]?!1:arguments[2],o=this.selectionHandler._getSelectedEdgeCount(),n=this.selectionHandler._getSelectedNodeCount(),s=this.selectionHandler.getSelection(),r=void 0;r=i===!0?this.selectionHandler.selectAdditionalOnPoint(t):this.selectionHandler.selectOnPoint(t);var a=this.selectionHandler._getSelectedEdgeCount(),h=this.selectionHandler._getSelectedNodeCount(),d=this.selectionHandler.getSelection(),l=this._determineIfDifferent(s,d),c=l.nodesChanged,u=l.edgesChanged,p=!1;h-n>0?(this.selectionHandler._generateClickEvent("selectNode",e,t),r=!0,p=!0):c===!0&&h>0?(this.selectionHandler._generateClickEvent("deselectNode",e,t,s),this.selectionHandler._generateClickEvent("selectNode",e,t),p=!0,r=!0):0>h-n&&(this.selectionHandler._generateClickEvent("deselectNode",e,t,s),r=!0),a-o>0&&p===!1?(this.selectionHandler._generateClickEvent("selectEdge",e,t),r=!0):a>0&&u===!0?(this.selectionHandler._generateClickEvent("deselectEdge",e,t,s),this.selectionHandler._generateClickEvent("selectEdge",e,t),r=!0):0>a-o&&(this.selectionHandler._generateClickEvent("deselectEdge",e,t,s),r=!0),r===!0&&this.selectionHandler._generateClickEvent("select",e,t)}},{key:"_determineIfDifferent",value:function(t,e){for(var i=!1,o=!1,n=0;nt&&(t=1e-5),t>10&&(t=10);var o=void 0;void 0!==this.drag&&this.drag.dragging===!0&&(o=this.canvas.DOMtoCanvas(this.drag.pointer));var n=this.body.view.translation,s=t/i,r=(1-s)*e.x+n.x*s,a=(1-s)*e.y+n.y*s;if(this.body.view.scale=t,this.body.view.translation={x:r,y:a},void 0!=o){var h=this.canvas.canvasToDOM(o);this.drag.pointer.x=h.x,this.drag.pointer.y=h.y}this.body.emitter.emit("_requestRedraw"),t>i?this.body.emitter.emit("zoom",{direction:"+",scale:this.body.view.scale}):this.body.emitter.emit("zoom",{direction:"-",scale:this.body.view.scale})}}},{key:"onMouseWheel",value:function(t){if(this.options.zoomView===!0){var e=0;if(t.wheelDelta?e=t.wheelDelta/120:t.detail&&(e=-t.detail/3),0!==e){var i=this.body.view.scale,o=e/10;0>e&&(o/=1-o),i*=1+o;var n=this.getPointer({x:t.clientX,y:t.clientY});this.zoom(i,n)}t.preventDefault()}}},{key:"onMouseMove",value:function(t){var e=this,i=this.getPointer({x:t.clientX,y:t.clientY}),o=!1;if(void 0!==this.popup&&(this.popup.hidden===!1&&this._checkHidePopup(i),this.popup.hidden===!1&&(o=!0,this.popup.setPosition(i.x+3,i.y-5),this.popup.show())),this.options.keyboard.bindToWindow===!1&&this.options.keyboard.enabled===!0&&this.canvas.frame.focus(),o===!1&&(void 0!==this.popupTimer&&(clearInterval(this.popupTimer),this.popupTimer=void 0),this.drag.dragging||(this.popupTimer=setTimeout(function(){return e._checkShowPopup(i)},this.options.tooltipDelay))),this.options.hover===!0){var n=this.selectionHandler.getNodeAt(i);void 0===n&&(n=this.selectionHandler.getEdgeAt(i)),this.selectionHandler.hoverObject(n)}}},{key:"_checkShowPopup",value:function(t){var e=this.canvas._XconvertDOMtoCanvas(t.x),i=this.canvas._YconvertDOMtoCanvas(t.y),o={left:e,top:i,right:e,bottom:i},n=void 0===this.popupObj?void 0:this.popupObj.id,s=!1,r="node";if(void 0===this.popupObj){for(var a=this.body.nodeIndices,h=this.body.nodes,l=void 0,c=[],u=0;u0&&(this.popupObj=h[c[c.length-1]],s=!0)}if(void 0===this.popupObj&&s===!1){for(var p=this.body.edgeIndices,f=this.body.edges,m=void 0,v=[],g=0;g0&&(this.popupObj=f[v[v.length-1]],r="edge")}void 0!==this.popupObj?this.popupObj.id!==n&&(void 0===this.popup&&(this.popup=new d["default"](this.canvas.frame)),this.popup.popupTargetType=r,this.popup.popupTargetId=this.popupObj.id,this.popup.setPosition(t.x+3,t.y-5),this.popup.setText(this.popupObj.getTitle()),this.popup.show(),this.body.emitter.emit("showPopup",this.popupObj.id)):void 0!==this.popup&&(this.popup.hide(),this.body.emitter.emit("hidePopup"))}},{key:"_checkHidePopup",value:function(t){var e=this.selectionHandler._pointerToPositionObject(t),i=!1;if("node"===this.popup.popupTargetType){if(void 0!==this.body.nodes[this.popup.popupTargetId]&&(i=this.body.nodes[this.popup.popupTargetId].isOverlappingWith(e),i===!0)){var o=this.selectionHandler.getNodeAt(t);i=o.id===this.popup.popupTargetId}}else void 0===this.selectionHandler.getNodeAt(t)&&void 0!==this.body.edges[this.popup.popupTargetId]&&(i=this.body.edges[this.popup.popupTargetId].isOverlappingWith(e));i===!1&&(this.popupObj=void 0,this.popup.hide(),this.body.emitter.emit("hidePopup"))}}]),t}();e["default"]=c},function(t,e,i){function o(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(e,"__esModule",{value:!0});var n=function(){function t(t,e){for(var i=0;i700&&(this.body.emitter.emit("fit",{duration:700}),this.touchTime=(new Date).valueOf())}},{key:"_stopMovement",value:function(){for(var t in this.boundFunctions)this.boundFunctions.hasOwnProperty(t)&&(this.body.emitter.off("initRedraw",this.boundFunctions[t]),this.body.emitter.emit("_stopRendering"));this.boundFunctions={}}},{key:"_moveUp",value:function(){this.body.view.translation.y+=this.options.keyboard.speed.y}},{key:"_moveDown",value:function(){this.body.view.translation.y-=this.options.keyboard.speed.y}},{key:"_moveLeft",value:function(){this.body.view.translation.x+=this.options.keyboard.speed.x}},{key:"_moveRight",value:function(){this.body.view.translation.x-=this.options.keyboard.speed.x}},{key:"_zoomIn",value:function(){this.body.view.scale*=1+this.options.keyboard.speed.zoom,this.body.emitter.emit("zoom",{direction:"+",scale:this.body.view.scale})}},{key:"_zoomOut",value:function(){this.body.view.scale/=1+this.options.keyboard.speed.zoom,this.body.emitter.emit("zoom",{direction:"-",scale:this.body.view.scale})}},{key:"configureKeyboardBindings",value:function(){var t=this;void 0!==this.keycharm&&this.keycharm.destroy(),this.options.keyboard.enabled===!0&&(this.options.keyboard.bindToWindow===!0?this.keycharm=a({container:window,preventDefault:!0}):this.keycharm=a({container:this.canvas.frame,preventDefault:!0}),this.keycharm.reset(),this.activated===!0&&(this.keycharm.bind("up",function(){t.bindToRedraw("_moveUp")},"keydown"),this.keycharm.bind("down",function(){t.bindToRedraw("_moveDown")},"keydown"),this.keycharm.bind("left",function(){t.bindToRedraw("_moveLeft")},"keydown"),this.keycharm.bind("right",function(){t.bindToRedraw("_moveRight")},"keydown"),this.keycharm.bind("=",function(){t.bindToRedraw("_zoomIn")},"keydown"),this.keycharm.bind("num+",function(){t.bindToRedraw("_zoomIn")},"keydown"),this.keycharm.bind("num-",function(){t.bindToRedraw("_zoomOut")},"keydown"),this.keycharm.bind("-",function(){t.bindToRedraw("_zoomOut")},"keydown"),this.keycharm.bind("[",function(){t.bindToRedraw("_zoomOut")},"keydown"),this.keycharm.bind("]",function(){t.bindToRedraw("_zoomIn")},"keydown"),this.keycharm.bind("pageup",function(){t.bindToRedraw("_zoomIn")},"keydown"),this.keycharm.bind("pagedown",function(){t.bindToRedraw("_zoomOut")},"keydown"),this.keycharm.bind("up",function(){t.unbindFromRedraw("_moveUp")},"keyup"),this.keycharm.bind("down",function(){t.unbindFromRedraw("_moveDown")},"keyup"),this.keycharm.bind("left",function(){t.unbindFromRedraw("_moveLeft")},"keyup"),this.keycharm.bind("right",function(){t.unbindFromRedraw("_moveRight")},"keyup"),this.keycharm.bind("=",function(){t.unbindFromRedraw("_zoomIn")},"keyup"),this.keycharm.bind("num+",function(){t.unbindFromRedraw("_zoomIn")},"keyup"),this.keycharm.bind("num-",function(){t.unbindFromRedraw("_zoomOut")},"keyup"),this.keycharm.bind("-",function(){t.unbindFromRedraw("_zoomOut")},"keyup"),this.keycharm.bind("[",function(){t.unbindFromRedraw("_zoomOut")},"keyup"),this.keycharm.bind("]",function(){t.unbindFromRedraw("_zoomIn")},"keyup"),this.keycharm.bind("pageup",function(){t.unbindFromRedraw("_zoomIn")},"keyup"),this.keycharm.bind("pagedown",function(){t.unbindFromRedraw("_zoomOut")},"keyup")))}}]),t}();e["default"]=h},function(t,e){function i(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(e,"__esModule",{value:!0});var o=function(){function t(t,e){for(var i=0;io&&(s=o-e-this.padding),sn&&(r=n-i-this.padding),r0?e===!0?this.body.nodes[o[o.length-1]]:o[o.length-1]:void 0}},{key:"_getEdgesOverlappingWith",value:function(t,e){for(var i=this.body.edges,o=0;o0?e===!0?this.body.edges[o[o.length-1]]:o[o.length-1]:void 0}},{key:"_addToSelection",value:function(t){t instanceof a["default"]?this.selectionObj.nodes[t.id]=t:this.selectionObj.edges[t.id]=t}},{key:"_addToHover",value:function(t){t instanceof a["default"]?this.hoverObj.nodes[t.id]=t:this.hoverObj.edges[t.id]=t}},{key:"_removeFromSelection",value:function(t){t instanceof a["default"]?(delete this.selectionObj.nodes[t.id],this._unselectConnectedEdges(t)):delete this.selectionObj.edges[t.id]}},{key:"unselectAll",value:function(){for(var t in this.selectionObj.nodes)this.selectionObj.nodes.hasOwnProperty(t)&&this.selectionObj.nodes[t].unselect();for(var e in this.selectionObj.edges)this.selectionObj.edges.hasOwnProperty(e)&&this.selectionObj.edges[e].unselect();this.selectionObj={nodes:{},edges:{}}}},{key:"_getSelectedNodeCount",value:function(){var t=0;for(var e in this.selectionObj.nodes)this.selectionObj.nodes.hasOwnProperty(e)&&(t+=1);return t}},{key:"_getSelectedNode",value:function(){for(var t in this.selectionObj.nodes)if(this.selectionObj.nodes.hasOwnProperty(t))return this.selectionObj.nodes[t]}},{key:"_getSelectedEdge",value:function(){for(var t in this.selectionObj.edges)if(this.selectionObj.edges.hasOwnProperty(t))return this.selectionObj.edges[t]}},{key:"_getSelectedEdgeCount",value:function(){var t=0;for(var e in this.selectionObj.edges)this.selectionObj.edges.hasOwnProperty(e)&&(t+=1);return t}},{key:"_getSelectedObjectCount",value:function(){var t=0;for(var e in this.selectionObj.nodes)this.selectionObj.nodes.hasOwnProperty(e)&&(t+=1);for(var i in this.selectionObj.edges)this.selectionObj.edges.hasOwnProperty(i)&&(t+=1);return t}},{key:"_selectionIsEmpty",value:function(){for(var t in this.selectionObj.nodes)if(this.selectionObj.nodes.hasOwnProperty(t))return!1;for(var e in this.selectionObj.edges)if(this.selectionObj.edges.hasOwnProperty(e))return!1;return!0}},{key:"_clusterInSelection",value:function(){for(var t in this.selectionObj.nodes)if(this.selectionObj.nodes.hasOwnProperty(t)&&this.selectionObj.nodes[t].clusterSize>1)return!0;return!1}},{key:"_selectConnectedEdges",value:function(t){for(var e=0;e0&&(this.options.hierarchical.levelSeparation*=-1):this.options.hierarchical.levelSeparation<0&&(this.options.hierarchical.levelSeparation*=-1),this.body.emitter.emit("_resetHierarchicalLayout"),this.adaptAllOptionsForHierarchicalLayout(e);if(i===!0)return this.body.emitter.emit("refresh"),l.deepExtend(e,this.optionsBackup)}return e}},{key:"adaptAllOptionsForHierarchicalLayout",value:function(t){if(this.options.hierarchical.enabled===!0){void 0===t.physics||t.physics===!0?(t.physics={enabled:void 0===this.optionsBackup.physics.enabled?!0:this.optionsBackup.physics.enabled,solver:"hierarchicalRepulsion"},this.optionsBackup.physics.enabled=void 0===this.optionsBackup.physics.enabled?!0:this.optionsBackup.physics.enabled,this.optionsBackup.physics.solver=this.optionsBackup.physics.solver||"barnesHut"):"object"===r(t.physics)?(this.optionsBackup.physics.enabled=void 0===t.physics.enabled?!0:t.physics.enabled,this.optionsBackup.physics.solver=t.physics.solver||"barnesHut",t.physics.solver="hierarchicalRepulsion"):t.physics!==!1&&(this.optionsBackup.physics.solver="barnesHut",t.physics={solver:"hierarchicalRepulsion"});var e="horizontal";"RL"!==this.options.hierarchical.direction&&"LR"!==this.options.hierarchical.direction||(e="vertical"),void 0===t.edges?(this.optionsBackup.edges={smooth:{enabled:!0,type:"dynamic"}},t.edges={smooth:!1}):void 0===t.edges.smooth?(this.optionsBackup.edges={smooth:{enabled:!0,type:"dynamic"}},t.edges.smooth=!1):"boolean"==typeof t.edges.smooth?(this.optionsBackup.edges={smooth:t.edges.smooth},t.edges.smooth={enabled:t.edges.smooth,type:e}):(void 0!==t.edges.smooth.type&&"dynamic"!==t.edges.smooth.type&&(e=t.edges.smooth.type),this.optionsBackup.edges={smooth:void 0===t.edges.smooth.enabled?!0:t.edges.smooth.enabled,type:void 0===t.edges.smooth.type?"dynamic":t.edges.smooth.type,roundness:void 0===t.edges.smooth.roundness?.5:t.edges.smooth.roundness,forceDirection:void 0===t.edges.smooth.forceDirection?!1:t.edges.smooth.forceDirection},t.edges.smooth={enabled:void 0===t.edges.smooth.enabled?!0:t.edges.smooth.enabled,type:e,roundness:void 0===t.edges.smooth.roundness?.5:t.edges.smooth.roundness,forceDirection:void 0===t.edges.smooth.forceDirection?!1:t.edges.smooth.forceDirection}),this.body.emitter.emit("_forceDisableDynamicCurves",e)}return t}},{key:"seededRandom",value:function(){var t=1e4*Math.sin(this.randomSeed++);return t-Math.floor(t)}},{key:"positionInitially",value:function(t){if(this.options.hierarchical.enabled!==!0){this.randomSeed=this.initialRandomSeed;for(var e=0;es){for(var r=this.body.nodeIndices.length;this.body.nodeIndices.length>s;){n+=1;var a=this.body.nodeIndices.length;n%3===0?this.body.modules.clustering.clusterBridges():this.body.modules.clustering.clusterOutliers();var h=this.body.nodeIndices.length;if(a==h&&n%3!==0||n>o)return this._declusterAll(),this.body.emitter.emit("_layoutFailed"),void console.info("This network could not be positioned by this version of the improved layout algorithm. Please disable improvedLayout for better performance.")}this.body.modules.kamadaKawai.setOptions({springLength:Math.max(150,2*r)})}this.body.modules.kamadaKawai.solve(this.body.nodeIndices,this.body.edgeIndices,!0),this._shiftToCenter();for(var d=70,l=0;l0){var t=void 0,e=void 0,i=!1,o=!0,n=!1;this.hierarchicalLevels={},this.lastNodeOnLevel={},this.hierarchicalChildrenReference={},this.hierarchicalParentReference={},this.hierarchicalTrees={},this.treeIndex=-1,this.distributionOrdering={},this.distributionIndex={},this.distributionOrderingPresence={};for(e in this.body.nodes)this.body.nodes.hasOwnProperty(e)&&(t=this.body.nodes[e],void 0===t.options.x&&void 0===t.options.y&&(o=!1),void 0!==t.options.level?(i=!0,this.hierarchicalLevels[e]=t.options.level):n=!0);if(n===!0&&i===!0)throw new Error("To use the hierarchical layout, nodes require either no predefined levels or levels have to be defined for all nodes.");n===!0&&("hubsize"===this.options.hierarchical.sortMethod?this._determineLevelsByHubsize():"directed"===this.options.hierarchical.sortMethod?this._determineLevelsDirected():"custom"===this.options.hierarchical.sortMethod&&this._determineLevelsCustomCallback());for(var s in this.body.nodes)this.body.nodes.hasOwnProperty(s)&&void 0===this.hierarchicalLevels[s]&&(this.hierarchicalLevels[s]=0);var r=this._getDistribution();this._generateMap(),this._placeNodesByHierarchy(r),this._condenseHierarchy(),this._shiftToCenter()}}},{key:"_condenseHierarchy",value:function(){var t=this,e=!1,i={},o=function(){for(var e=a(),i=0;i0)for(var n=0;n=l&&(r=Math.min(c,r),a=Math.max(c,a))}return[r,a,o,n]},l=function _(e){var i=t.hierarchicalLevels[e];if(t.hierarchicalChildrenReference[e]){var o=t.hierarchicalChildrenReference[e];if(o.length>0)for(var n=0;n1)for(var a=0;at.options.hierarchical.nodeSpacing){var u={};u[i.id]=!0;var p={};p[o.id]=!0,h(i,u),h(o,p);var f=c(i,o),m=d(u,f),v=s(m,4),g=(v[0],v[1]),y=(v[2],v[3],d(p,f)),b=s(y,4),w=b[0],_=(b[1],b[2]),x=(b[3],Math.abs(g-w));if(x>t.options.hierarchical.nodeSpacing){var k=g-w+t.options.hierarchical.nodeSpacing;k<-_+t.options.hierarchical.nodeSpacing&&(k=-_+t.options.hierarchical.nodeSpacing),0>k&&(t._shiftBlock(o.id,k),e=!0,n===!0&&t._centerParent(o))}}},m=function(o,n){for(var r=n.id,a=n.edges,l=t.hierarchicalLevels[n.id],c=t.options.hierarchical.levelSeparation*t.options.hierarchical.levelSeparation,u={},p=[],f=0;fr;r++){var a=g(o,i),h=y(o,i),d=40,l=Math.max(-d,Math.min(d,Math.round(a/h)));if(o-=l,void 0!==s[o])break;s[o]=r}return o},w=function(o){var r=t._getPositionForHierarchy(n);if(void 0===i[n.id]){var a={};a[n.id]=!0,h(n,a),i[n.id]=a}var l=d(i[n.id]),c=s(l,4),u=(c[0],c[1],c[2]),p=c[3],f=o-r,m=0;f>0?m=Math.min(f,p-t.options.hierarchical.nodeSpacing):0>f&&(m=-Math.min(-f,u-t.options.hierarchical.nodeSpacing)),0!=m&&(t._shiftBlock(n.id,m),e=!0)},_=function(i){var o=t._getPositionForHierarchy(n),r=t._getSpaceAroundNode(n),a=s(r,2),h=a[0],d=a[1],l=i-o,c=o;l>0?c=Math.min(o+(d-t.options.hierarchical.nodeSpacing),i):0>l&&(c=Math.max(o-(h-t.options.hierarchical.nodeSpacing),i)),c!==o&&(t._setPositionForHierarchy(n,c,void 0,!0),e=!0)},x=b(o,p);w(x),x=b(o,a),_(x)},v=function(i){var o=Object.keys(t.distributionOrdering);o=o.reverse();for(var n=0;i>n;n++){e=!1;for(var s=0;sn&&(e=!1,p(f,o,!0),e===!0);n++);},y=function(){for(var e in t.body.nodes)t.body.nodes.hasOwnProperty(e)&&t._centerParent(t.body.nodes[e])},b=function(){var e=Object.keys(t.distributionOrdering);e=e.reverse();for(var i=0;i0)for(var d=0;dg&&Math.abs(g)0&&Math.abs(g)0&&(r=this._getPositionForHierarchy(i[n-1])+this.options.hierarchical.nodeSpacing),this._setPositionForHierarchy(s,r,e),this._validataPositionAndContinue(s,e,r),o++}}}}},{key:"_placeBranchNodes",value:function(t,e){if(void 0!==this.hierarchicalChildrenReference[t]){for(var i=[],o=0;oe&&void 0===this.positionedNodes[s.id]))return;var a=void 0;a=0===n?this._getPositionForHierarchy(this.body.nodes[t]):this._getPositionForHierarchy(i[n-1])+this.options.hierarchical.nodeSpacing,this._setPositionForHierarchy(s,a,r),this._validataPositionAndContinue(s,r,a)}for(var h=1e9,d=-1e9,l=0;l0&&(e=this._getHubSize(),0!==e);)for(var o in this.body.nodes)if(this.body.nodes.hasOwnProperty(o)){var n=this.body.nodes[o];n.edges.length===e&&this._crawlNetwork(i,o)}}},{key:"_determineLevelsCustomCallback",value:function(){var t=this,e=1e5,i=function(t,e,i){},o=function(o,n,s){var r=t.hierarchicalLevels[o.id];void 0===r&&(t.hierarchicalLevels[o.id]=e);var a=i(d["default"].cloneOptions(o,"node"),d["default"].cloneOptions(n,"node"),d["default"].cloneOptions(s,"edge"));t.hierarchicalLevels[n.id]=t.hierarchicalLevels[o.id]+a};this._crawlNetwork(o),this._setMinLevelToZero()}},{key:"_determineLevelsDirected",value:function(){var t=this,e=1e4,i=function(i,o,n){var s=t.hierarchicalLevels[i.id];void 0===s&&(t.hierarchicalLevels[i.id]=e),n.toId==o.id?t.hierarchicalLevels[o.id]=t.hierarchicalLevels[i.id]+1:t.hierarchicalLevels[o.id]=t.hierarchicalLevels[i.id]-1};this._crawlNetwork(i),this._setMinLevelToZero()}},{key:"_setMinLevelToZero",value:function(){var t=1e9;for(var e in this.body.nodes)this.body.nodes.hasOwnProperty(e)&&void 0!==this.hierarchicalLevels[e]&&(t=Math.min(this.hierarchicalLevels[e],t));for(var i in this.body.nodes)this.body.nodes.hasOwnProperty(i)&&void 0!==this.hierarchicalLevels[i]&&(this.hierarchicalLevels[i]-=t)}},{key:"_generateMap",value:function(){var t=this,e=function(e,i){if(t.hierarchicalLevels[i.id]>t.hierarchicalLevels[e.id]){var o=e.id,n=i.id;void 0===t.hierarchicalChildrenReference[o]&&(t.hierarchicalChildrenReference[o]=[]),t.hierarchicalChildrenReference[o].push(n),void 0===t.hierarchicalParentReference[n]&&(t.hierarchicalParentReference[n]=[]),t.hierarchicalParentReference[n].push(o)}};this._crawlNetwork(e)}},{key:"_crawlNetwork",value:function(){var t=this,e=arguments.length<=0||void 0===arguments[0]?function(){}:arguments[0],i=arguments[1],o={},n=0,s=function d(i,n){if(void 0===o[i.id]){void 0===t.hierarchicalTrees[i.id]&&(t.hierarchicalTrees[i.id]=n,t.treeIndex=Math.max(n,t.treeIndex)),o[i.id]=!0;for(var s=void 0,r=0;r1&&("UD"===this.options.hierarchical.direction||"DU"===this.options.hierarchical.direction?t.sort(function(t,e){return t.x-e.x}):t.sort(function(t,e){return t.y-e.y}))}}]),t}();e["default"]=c},function(t,e,i){function o(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(e,"__esModule",{value:!0});var n=function(){function t(t,e){for(var i=0;i0&&this.options.deleteNode!==!1?(n===!0&&this._createSeperator(4),this._createDeleteButton(o)):0===t&&this.options.deleteEdge!==!1&&(n===!0&&this._createSeperator(4),this._createDeleteButton(o))),this._bindHammerToDiv(this.closeDiv,this.toggleEditMode.bind(this)),this._temporaryBindEvent("select",this.showManipulatorToolbar.bind(this))}this.body.emitter.emit("_redraw")}},{key:"addNodeMode",value:function(){if(this.editMode!==!0&&this.enableEditMode(),this._clean(),this.inMode="addNode",this.guiEnabled===!0){var t=this.options.locales[this.options.locale];this.manipulationDOM={},this._createBackButton(t),this._createSeperator(),this._createDescription(t.addDescription||this.options.locales.en.addDescription),this._bindHammerToDiv(this.closeDiv,this.toggleEditMode.bind(this))}this._temporaryBindEvent("click",this._performAddNode.bind(this))}},{key:"editNode",value:function(){var t=this;this.editMode!==!0&&this.enableEditMode(),this._clean();var e=this.selectionHandler._getSelectedNode();if(void 0!==e){if(this.inMode="editNode","function"!=typeof this.options.editNode)throw new Error("No function has been configured to handle the editing of nodes.");if(e.isCluster!==!0){var i=s.deepExtend({},e.options,!1);if(i.x=e.x,i.y=e.y,2!==this.options.editNode.length)throw new Error("The function for edit does not support two arguments (data, callback)");this.options.editNode(i,function(e){null!==e&&void 0!==e&&"editNode"===t.inMode&&t.body.data.nodes.getDataSet().update(e),t.showManipulatorToolbar()})}else alert(this.options.locales[this.options.locale].editClusterError||this.options.locales.en.editClusterError)}else this.showManipulatorToolbar()}},{key:"addEdgeMode",value:function(){if(this.editMode!==!0&&this.enableEditMode(),this._clean(),this.inMode="addEdge",this.guiEnabled===!0){var t=this.options.locales[this.options.locale];this.manipulationDOM={},this._createBackButton(t),this._createSeperator(),this._createDescription(t.edgeDescription||this.options.locales.en.edgeDescription),this._bindHammerToDiv(this.closeDiv,this.toggleEditMode.bind(this))}this._temporaryBindUI("onTouch",this._handleConnect.bind(this)),this._temporaryBindUI("onDragEnd",this._finishConnect.bind(this)),this._temporaryBindUI("onDrag",this._dragControlNode.bind(this)),this._temporaryBindUI("onRelease",this._finishConnect.bind(this)),this._temporaryBindUI("onDragStart",function(){}),this._temporaryBindUI("onHold",function(){})}},{key:"editEdgeMode",value:function(){var t=this;if(this.editMode!==!0&&this.enableEditMode(),this._clean(),this.inMode="editEdge",this.guiEnabled===!0){var e=this.options.locales[this.options.locale];this.manipulationDOM={},this._createBackButton(e),this._createSeperator(),this._createDescription(e.editEdgeDescription||this.options.locales.en.editEdgeDescription),this._bindHammerToDiv(this.closeDiv,this.toggleEditMode.bind(this))}this.edgeBeingEditedId=this.selectionHandler.getSelectedEdges()[0],void 0!==this.edgeBeingEditedId?!function(){var e=t.body.edges[t.edgeBeingEditedId],i=t._getNewTargetNode(e.from.x,e.from.y),o=t._getNewTargetNode(e.to.x,e.to.y);t.temporaryIds.nodes.push(i.id),t.temporaryIds.nodes.push(o.id),t.body.nodes[i.id]=i,t.body.nodeIndices.push(i.id),t.body.nodes[o.id]=o,t.body.nodeIndices.push(o.id),t._temporaryBindUI("onTouch",t._controlNodeTouch.bind(t)),t._temporaryBindUI("onTap",function(){}),t._temporaryBindUI("onHold",function(){}),t._temporaryBindUI("onDragStart",t._controlNodeDragStart.bind(t)),t._temporaryBindUI("onDrag",t._controlNodeDrag.bind(t)),t._temporaryBindUI("onDragEnd",t._controlNodeDragEnd.bind(t)),t._temporaryBindUI("onMouseMove",function(){}),t._temporaryBindEvent("beforeDrawing",function(t){var n=e.edgeType.findBorderPositions(t);i.selected===!1&&(i.x=n.from.x,i.y=n.from.y),o.selected===!1&&(o.x=n.to.x,o.y=n.to.y)}),t.body.emitter.emit("_redraw")}():this.showManipulatorToolbar()}},{key:"deleteSelected",value:function(){var t=this;this.editMode!==!0&&this.enableEditMode(),this._clean(),this.inMode="delete";var e=this.selectionHandler.getSelectedNodes(),i=this.selectionHandler.getSelectedEdges(),o=void 0;if(e.length>0){for(var n=0;n0&&"function"==typeof this.options.deleteEdge&&(o=this.options.deleteEdge);if("function"==typeof o){var s={nodes:e,edges:i};if(2!==o.length)throw new Error("The function for delete does not support two arguments (data, callback)");o(s,function(e){null!==e&&void 0!==e&&"delete"===t.inMode?(t.body.data.edges.getDataSet().remove(e.edges),t.body.data.nodes.getDataSet().remove(e.nodes),t.body.emitter.emit("startSimulation"),t.showManipulatorToolbar()):(t.body.emitter.emit("startSimulation"),t.showManipulatorToolbar())})}else this.body.data.edges.getDataSet().remove(i),this.body.data.nodes.getDataSet().remove(e),this.body.emitter.emit("startSimulation"),this.showManipulatorToolbar()}},{key:"_setup",value:function(){this.options.enabled===!0?(this.guiEnabled=!0,this._createWrappers(),this.editMode===!1?this._createEditButton():this.showManipulatorToolbar()):(this._removeManipulationDOM(),this.guiEnabled=!1)}},{key:"_createWrappers",value:function(){void 0===this.manipulationDiv&&(this.manipulationDiv=document.createElement("div"),this.manipulationDiv.className="vis-manipulation",this.editMode===!0?this.manipulationDiv.style.display="block":this.manipulationDiv.style.display="none",this.canvas.frame.appendChild(this.manipulationDiv)),void 0===this.editModeDiv&&(this.editModeDiv=document.createElement("div"),this.editModeDiv.className="vis-edit-mode",this.editMode===!0?this.editModeDiv.style.display="none":this.editModeDiv.style.display="block", +this.canvas.frame.appendChild(this.editModeDiv)),void 0===this.closeDiv&&(this.closeDiv=document.createElement("div"),this.closeDiv.className="vis-close",this.closeDiv.style.display=this.manipulationDiv.style.display,this.canvas.frame.appendChild(this.closeDiv))}},{key:"_getNewTargetNode",value:function(t,e){var i=s.deepExtend({},this.options.controlNodeStyle);i.id="targetNode"+s.randomUUID(),i.hidden=!1,i.physics=!1,i.x=t,i.y=e;var o=this.body.functions.createNode(i);return o.shape.boundingBox={left:t,right:t,top:e,bottom:e},o}},{key:"_createEditButton",value:function(){this._clean(),this.manipulationDOM={},s.recursiveDOMDelete(this.editModeDiv);var t=this.options.locales[this.options.locale],e=this._createButton("editMode","vis-button vis-edit vis-edit-mode",t.edit||this.options.locales.en.edit);this.editModeDiv.appendChild(e),this._bindHammerToDiv(e,this.toggleEditMode.bind(this))}},{key:"_clean",value:function(){this.inMode=!1,this.guiEnabled===!0&&(s.recursiveDOMDelete(this.editModeDiv),s.recursiveDOMDelete(this.manipulationDiv),this._cleanManipulatorHammers()),this._cleanupTemporaryNodesAndEdges(),this._unbindTemporaryUIs(),this._unbindTemporaryEvents(),this.body.emitter.emit("restorePhysics")}},{key:"_cleanManipulatorHammers",value:function(){if(0!=this.manipulationHammers.length){for(var t=0;t=0;r--)if(n[r]!==this.selectedControlNode.id){s=this.body.nodes[n[r]];break}if(void 0!==s&&void 0!==this.selectedControlNode)if(s.isCluster===!0)alert(this.options.locales[this.options.locale].createEdgeError||this.options.locales.en.createEdgeError);else{var a=this.body.nodes[this.temporaryIds.nodes[0]];this.selectedControlNode.id===a.id?this._performEditEdge(s.id,o.to.id):this._performEditEdge(o.from.id,s.id)}else o.updateEdgeType(),this.body.emitter.emit("restorePhysics");this.body.emitter.emit("_redraw")}}},{key:"_handleConnect",value:function(t){if((new Date).valueOf()-this.touchTime>100){this.lastTouch=this.body.functions.getPointer(t.center),this.lastTouch.translation=s.extend({},this.body.view.translation);var e=this.lastTouch,i=this.selectionHandler.getNodeAt(e);if(void 0!==i)if(i.isCluster===!0)alert(this.options.locales[this.options.locale].createEdgeError||this.options.locales.en.createEdgeError);else{var o=this._getNewTargetNode(i.x,i.y);this.body.nodes[o.id]=o,this.body.nodeIndices.push(o.id);var n=this.body.functions.createEdge({id:"connectionEdge"+s.randomUUID(),from:i.id,to:o.id,physics:!1,smooth:{enabled:!0,type:"continuous",roundness:.5}});this.body.edges[n.id]=n,this.body.edgeIndices.push(n.id),this.temporaryIds.nodes.push(o.id),this.temporaryIds.edges.push(n.id)}this.touchTime=(new Date).valueOf()}}},{key:"_dragControlNode",value:function(t){var e=this.body.functions.getPointer(t.center);if(void 0!==this.temporaryIds.nodes[0]){var i=this.body.nodes[this.temporaryIds.nodes[0]];i.x=this.canvas._XconvertDOMtoCanvas(e.x),i.y=this.canvas._YconvertDOMtoCanvas(e.y),this.body.emitter.emit("_redraw")}else{var o=e.x-this.lastTouch.x,n=e.y-this.lastTouch.y;this.body.view.translation={x:this.lastTouch.translation.x+o,y:this.lastTouch.translation.y+n}}}},{key:"_finishConnect",value:function(t){var e=this.body.functions.getPointer(t.center),i=this.selectionHandler._pointerToPositionObject(e),o=void 0;void 0!==this.temporaryIds.edges[0]&&(o=this.body.edges[this.temporaryIds.edges[0]].fromId);for(var n=this.selectionHandler._getAllNodesOverlappingWith(i),s=void 0,r=n.length-1;r>=0;r--)if(-1===this.temporaryIds.nodes.indexOf(n[r])){s=this.body.nodes[n[r]];break}this._cleanupTemporaryNodesAndEdges(),void 0!==s&&(s.isCluster===!0?alert(this.options.locales[this.options.locale].createEdgeError||this.options.locales.en.createEdgeError):void 0!==this.body.nodes[o]&&void 0!==this.body.nodes[s.id]&&this._performAddEdge(o,s.id)),this.body.emitter.emit("_redraw")}},{key:"_performAddNode",value:function(t){var e=this,i={id:s.randomUUID(),x:t.pointer.canvas.x,y:t.pointer.canvas.y,label:"new"};if("function"==typeof this.options.addNode){if(2!==this.options.addNode.length)throw new Error("The function for add does not support two arguments (data,callback)");this.options.addNode(i,function(t){null!==t&&void 0!==t&&"addNode"===e.inMode&&(e.body.data.nodes.getDataSet().add(t),e.showManipulatorToolbar())})}else this.body.data.nodes.getDataSet().add(i),this.showManipulatorToolbar()}},{key:"_performAddEdge",value:function(t,e){var i=this,o={from:t,to:e};if("function"==typeof this.options.addEdge){if(2!==this.options.addEdge.length)throw new Error("The function for connect does not support two arguments (data,callback)");this.options.addEdge(o,function(t){null!==t&&void 0!==t&&"addEdge"===i.inMode&&(i.body.data.edges.getDataSet().add(t),i.selectionHandler.unselectAll(),i.showManipulatorToolbar())})}else this.body.data.edges.getDataSet().add(o),this.selectionHandler.unselectAll(),this.showManipulatorToolbar()}},{key:"_performEditEdge",value:function(t,e){var i=this,o={id:this.edgeBeingEditedId,from:t,to:e};if("function"==typeof this.options.editEdge){if(2!==this.options.editEdge.length)throw new Error("The function for edit does not support two arguments (data, callback)");this.options.editEdge(o,function(t){null===t||void 0===t||"editEdge"!==i.inMode?(i.body.edges[o.id].updateEdgeType(),i.body.emitter.emit("_redraw")):(i.body.data.edges.getDataSet().update(t),i.selectionHandler.unselectAll(),i.showManipulatorToolbar())})}else this.body.data.edges.getDataSet().update(o),this.selectionHandler.unselectAll(),this.showManipulatorToolbar()}}]),t}();e["default"]=h},function(t,e){Object.defineProperty(e,"__esModule",{value:!0});var i="string",o="boolean",n="number",s="array",r="object",a="dom",h="any",d={configure:{enabled:{"boolean":o},filter:{"boolean":o,string:i,array:s,"function":"function"},container:{dom:a},showButton:{"boolean":o},__type__:{object:r,"boolean":o,string:i,array:s,"function":"function"}},edges:{arrows:{to:{enabled:{"boolean":o},scaleFactor:{number:n},__type__:{object:r,"boolean":o}},middle:{enabled:{"boolean":o},scaleFactor:{number:n},__type__:{object:r,"boolean":o}},from:{enabled:{"boolean":o},scaleFactor:{number:n},__type__:{object:r,"boolean":o}},__type__:{string:["from","to","middle"],object:r}},arrowStrikethrough:{"boolean":o},color:{color:{string:i},highlight:{string:i},hover:{string:i},inherit:{string:["from","to","both"],"boolean":o},opacity:{number:n},__type__:{object:r,string:i}},dashes:{"boolean":o,array:s},font:{color:{string:i},size:{number:n},face:{string:i},background:{string:i},strokeWidth:{number:n},strokeColor:{string:i},align:{string:["horizontal","top","middle","bottom"]},__type__:{object:r,string:i}},hidden:{"boolean":o},hoverWidth:{"function":"function",number:n},label:{string:i,undefined:"undefined"},labelHighlightBold:{"boolean":o},length:{number:n,undefined:"undefined"},physics:{"boolean":o},scaling:{min:{number:n},max:{number:n},label:{enabled:{"boolean":o},min:{number:n},max:{number:n},maxVisible:{number:n},drawThreshold:{number:n},__type__:{object:r,"boolean":o}},customScalingFunction:{"function":"function"},__type__:{object:r}},selectionWidth:{"function":"function",number:n},selfReferenceSize:{number:n},shadow:{enabled:{"boolean":o},color:{string:i},size:{number:n},x:{number:n},y:{number:n},__type__:{object:r,"boolean":o}},smooth:{enabled:{"boolean":o},type:{string:["dynamic","continuous","discrete","diagonalCross","straightCross","horizontal","vertical","curvedCW","curvedCCW","cubicBezier"]},roundness:{number:n},forceDirection:{string:["horizontal","vertical","none"],"boolean":o},__type__:{object:r,"boolean":o}},title:{string:i,undefined:"undefined"},width:{number:n},value:{number:n,undefined:"undefined"},__type__:{object:r}},groups:{useDefaultGroups:{"boolean":o},__any__:"get from nodes, will be overwritten below",__type__:{object:r}},interaction:{dragNodes:{"boolean":o},dragView:{"boolean":o},hideEdgesOnDrag:{"boolean":o},hideNodesOnDrag:{"boolean":o},hover:{"boolean":o},keyboard:{enabled:{"boolean":o},speed:{x:{number:n},y:{number:n},zoom:{number:n},__type__:{object:r}},bindToWindow:{"boolean":o},__type__:{object:r,"boolean":o}},multiselect:{"boolean":o},navigationButtons:{"boolean":o},selectable:{"boolean":o},selectConnectedEdges:{"boolean":o},hoverConnectedEdges:{"boolean":o},tooltipDelay:{number:n},zoomView:{"boolean":o},__type__:{object:r}},layout:{randomSeed:{undefined:"undefined",number:n},improvedLayout:{"boolean":o},hierarchical:{enabled:{"boolean":o},levelSeparation:{number:n},nodeSpacing:{number:n},treeSpacing:{number:n},blockShifting:{"boolean":o},edgeMinimization:{"boolean":o},parentCentralization:{"boolean":o},direction:{string:["UD","DU","LR","RL"]},sortMethod:{string:["hubsize","directed"]},__type__:{object:r,"boolean":o}},__type__:{object:r}},manipulation:{enabled:{"boolean":o},initiallyActive:{"boolean":o},addNode:{"boolean":o,"function":"function"},addEdge:{"boolean":o,"function":"function"},editNode:{"function":"function"},editEdge:{"boolean":o,"function":"function"},deleteNode:{"boolean":o,"function":"function"},deleteEdge:{"boolean":o,"function":"function"},controlNodeStyle:"get from nodes, will be overwritten below",__type__:{object:r,"boolean":o}},nodes:{borderWidth:{number:n},borderWidthSelected:{number:n,undefined:"undefined"},brokenImage:{string:i,undefined:"undefined"},color:{border:{string:i},background:{string:i},highlight:{border:{string:i},background:{string:i},__type__:{object:r,string:i}},hover:{border:{string:i},background:{string:i},__type__:{object:r,string:i}},__type__:{object:r,string:i}},fixed:{x:{"boolean":o},y:{"boolean":o},__type__:{object:r,"boolean":o}},font:{color:{string:i},size:{number:n},face:{string:i},background:{string:i},strokeWidth:{number:n},strokeColor:{string:i},__type__:{object:r,string:i}},group:{string:i,number:n,undefined:"undefined"},hidden:{"boolean":o},icon:{face:{string:i},code:{string:i},size:{number:n},color:{string:i},__type__:{object:r}},id:{string:i,number:n},image:{string:i,undefined:"undefined"},label:{string:i,undefined:"undefined"},labelHighlightBold:{"boolean":o},level:{number:n,undefined:"undefined"},mass:{number:n},physics:{"boolean":o},scaling:{min:{number:n},max:{number:n},label:{enabled:{"boolean":o},min:{number:n},max:{number:n},maxVisible:{number:n},drawThreshold:{number:n},__type__:{object:r,"boolean":o}},customScalingFunction:{"function":"function"},__type__:{object:r}},shadow:{enabled:{"boolean":o},color:{string:i},size:{number:n},x:{number:n},y:{number:n},__type__:{object:r,"boolean":o}},shape:{string:["ellipse","circle","database","box","text","image","circularImage","diamond","dot","star","triangle","triangleDown","square","icon"]},shapeProperties:{borderDashes:{"boolean":o,array:s},borderRadius:{number:n},interpolation:{"boolean":o},useImageSize:{"boolean":o},useBorderWithImage:{"boolean":o},__type__:{object:r}},size:{number:n},title:{string:i,undefined:"undefined"},value:{number:n,undefined:"undefined"},x:{number:n},y:{number:n},__type__:{object:r}},physics:{enabled:{"boolean":o},barnesHut:{gravitationalConstant:{number:n},centralGravity:{number:n},springLength:{number:n},springConstant:{number:n},damping:{number:n},avoidOverlap:{number:n},__type__:{object:r}},forceAtlas2Based:{gravitationalConstant:{number:n},centralGravity:{number:n},springLength:{number:n},springConstant:{number:n},damping:{number:n},avoidOverlap:{number:n},__type__:{object:r}},repulsion:{centralGravity:{number:n},springLength:{number:n},springConstant:{number:n},nodeDistance:{number:n},damping:{number:n},__type__:{object:r}},hierarchicalRepulsion:{centralGravity:{number:n},springLength:{number:n},springConstant:{number:n},nodeDistance:{number:n},damping:{number:n},__type__:{object:r}},maxVelocity:{number:n},minVelocity:{number:n},solver:{string:["barnesHut","repulsion","hierarchicalRepulsion","forceAtlas2Based"]},stabilization:{enabled:{"boolean":o},iterations:{number:n},updateInterval:{number:n},onlyDynamicEdges:{"boolean":o},fit:{"boolean":o},__type__:{object:r,"boolean":o}},timestep:{number:n},adaptiveTimestep:{"boolean":o},__type__:{object:r,"boolean":o}},autoResize:{"boolean":o},clickToUse:{"boolean":o},locale:{string:i},locales:{__any__:{any:h},__type__:{object:r}},height:{string:i},width:{string:i},__type__:{object:r}};d.groups.__any__=d.nodes,d.manipulation.controlNodeStyle=d.nodes;var l={nodes:{borderWidth:[1,0,10,1],borderWidthSelected:[2,0,10,1],color:{border:["color","#2B7CE9"],background:["color","#97C2FC"],highlight:{border:["color","#2B7CE9"],background:["color","#D2E5FF"]},hover:{border:["color","#2B7CE9"],background:["color","#D2E5FF"]}},fixed:{x:!1,y:!1},font:{color:["color","#343434"],size:[14,0,100,1],face:["arial","verdana","tahoma"],background:["color","none"],strokeWidth:[0,0,50,1],strokeColor:["color","#ffffff"]},hidden:!1,labelHighlightBold:!0,physics:!0,scaling:{min:[10,0,200,1],max:[30,0,200,1],label:{enabled:!1,min:[14,0,200,1],max:[30,0,200,1],maxVisible:[30,0,200,1],drawThreshold:[5,0,20,1]}},shadow:{enabled:!1,color:"rgba(0,0,0,0.5)",size:[10,0,20,1],x:[5,-30,30,1],y:[5,-30,30,1]},shape:["ellipse","box","circle","database","diamond","dot","square","star","text","triangle","triangleDown"],shapeProperties:{borderDashes:!1,borderRadius:[6,0,20,1],interpolation:!0,useImageSize:!1},size:[25,0,200,1]},edges:{arrows:{to:{enabled:!1,scaleFactor:[1,0,3,.05]},middle:{enabled:!1,scaleFactor:[1,0,3,.05]},from:{enabled:!1,scaleFactor:[1,0,3,.05]}},arrowStrikethrough:!0,color:{color:["color","#848484"],highlight:["color","#848484"],hover:["color","#848484"],inherit:["from","to","both",!0,!1],opacity:[1,0,1,.05]},dashes:!1,font:{color:["color","#343434"],size:[14,0,100,1],face:["arial","verdana","tahoma"],background:["color","none"],strokeWidth:[2,0,50,1],strokeColor:["color","#ffffff"],align:["horizontal","top","middle","bottom"]},hidden:!1,hoverWidth:[1.5,0,5,.1],labelHighlightBold:!0,physics:!0,scaling:{min:[1,0,100,1],max:[15,0,100,1],label:{enabled:!0,min:[14,0,200,1],max:[30,0,200,1],maxVisible:[30,0,200,1],drawThreshold:[5,0,20,1]}},selectionWidth:[1.5,0,5,.1],selfReferenceSize:[20,0,200,1],shadow:{enabled:!1,color:"rgba(0,0,0,0.5)",size:[10,0,20,1],x:[5,-30,30,1],y:[5,-30,30,1]},smooth:{enabled:!0,type:["dynamic","continuous","discrete","diagonalCross","straightCross","horizontal","vertical","curvedCW","curvedCCW","cubicBezier"],forceDirection:["horizontal","vertical","none"],roundness:[.5,0,1,.05]},width:[1,0,30,1]},layout:{hierarchical:{enabled:!1,levelSeparation:[150,20,500,5],nodeSpacing:[100,20,500,5],treeSpacing:[200,20,500,5],blockShifting:!0,edgeMinimization:!0,parentCentralization:!0,direction:["UD","DU","LR","RL"],sortMethod:["hubsize","directed"]}},interaction:{dragNodes:!0,dragView:!0,hideEdgesOnDrag:!1,hideNodesOnDrag:!1,hover:!1,keyboard:{enabled:!1,speed:{x:[10,0,40,1],y:[10,0,40,1],zoom:[.02,0,.1,.005]},bindToWindow:!0},multiselect:!1,navigationButtons:!1,selectable:!0,selectConnectedEdges:!0,hoverConnectedEdges:!0,tooltipDelay:[300,0,1e3,25],zoomView:!0},manipulation:{enabled:!1,initiallyActive:!1},physics:{enabled:!0,barnesHut:{gravitationalConstant:[-2e3,-3e4,0,50],centralGravity:[.3,0,10,.05],springLength:[95,0,500,5],springConstant:[.04,0,1.2,.005],damping:[.09,0,1,.01],avoidOverlap:[0,0,1,.01]},forceAtlas2Based:{gravitationalConstant:[-50,-500,0,1],centralGravity:[.01,0,1,.005],springLength:[95,0,500,5],springConstant:[.08,0,1.2,.005],damping:[.4,0,1,.01],avoidOverlap:[0,0,1,.01]},repulsion:{centralGravity:[.2,0,10,.05],springLength:[200,0,500,5],springConstant:[.05,0,1.2,.005],nodeDistance:[100,0,500,5],damping:[.09,0,1,.01]},hierarchicalRepulsion:{centralGravity:[.2,0,10,.05],springLength:[100,0,500,5],springConstant:[.01,0,1.2,.005],nodeDistance:[120,0,500,5],damping:[.09,0,1,.01]},maxVelocity:[50,0,150,1],minVelocity:[.1,.01,.5,.01],solver:["barnesHut","forceAtlas2Based","repulsion","hierarchicalRepulsion"],timestep:[.5,.01,1,.01]},global:{locale:["en","nl"]}};e.allOptions=d,e.configureOptions=l},function(t,e,i){function o(t){return t&&t.__esModule?t:{"default":t}}function n(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(e,"__esModule",{value:!0});var s=function(){function t(t,e){var i=[],o=!0,n=!1,s=void 0;try{for(var r,a=t[Symbol.iterator]();!(o=(r=a.next()).done)&&(i.push(r.value),!e||i.length!==e);o=!0);}catch(h){n=!0,s=h}finally{try{!o&&a["return"]&&a["return"]()}finally{if(n)throw s}}return i}return function(e,i){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return t(e,i);throw new TypeError("Invalid attempt to destructure non-iterable instance")}}(),r=function(){function t(t,e){for(var i=0;in&&h>a;){a+=1;var v=this._getHighestEnergyNode(i),g=s(v,4);for(c=g[0],l=g[1],u=g[2],p=g[3],f=l,m=0;f>r&&d>m;){m+=1,this._moveNode(c,u,p);var y=this._getEnergy(c),b=s(y,3);f=b[0],u=b[1],p=b[2]}}}},{key:"_getHighestEnergyNode",value:function(t){for(var e=this.body.nodeIndices,i=this.body.nodes,o=0,n=e[0],r=0,a=0,h=0;ho&&(o=u,n=d,r=p,a=f)}}return[n,o,r,a]}},{key:"_getEnergy",value:function(t){for(var e=this.body.nodeIndices,i=this.body.nodes,o=i[t].x,n=i[t].y,s=0,r=0,a=0;al;l++)for(var c=0;d-1>c;c++)for(var u=c+1;d>u;u++)o[e[c]][e[u]]=Math.min(o[e[c]][e[u]],o[e[c]][e[l]]+o[e[l]][e[u]]),o[e[u]][e[c]]=o[e[c]][e[u]];return o}}]),t}();e["default"]=n},function(t,e){"undefined"!=typeof CanvasRenderingContext2D&&(CanvasRenderingContext2D.prototype.circle=function(t,e,i){this.beginPath(),this.arc(t,e,i,0,2*Math.PI,!1),this.closePath()},CanvasRenderingContext2D.prototype.square=function(t,e,i){this.beginPath(),this.rect(t-i,e-i,2*i,2*i),this.closePath()},CanvasRenderingContext2D.prototype.triangle=function(t,e,i){this.beginPath(),i*=1.15,e+=.275*i;var o=2*i,n=o/2,s=Math.sqrt(3)/6*o,r=Math.sqrt(o*o-n*n);this.moveTo(t,e-(r-s)),this.lineTo(t+n,e+s),this.lineTo(t-n,e+s),this.lineTo(t,e-(r-s)),this.closePath()},CanvasRenderingContext2D.prototype.triangleDown=function(t,e,i){this.beginPath(),i*=1.15,e-=.275*i;var o=2*i,n=o/2,s=Math.sqrt(3)/6*o,r=Math.sqrt(o*o-n*n);this.moveTo(t,e+(r-s)),this.lineTo(t+n,e-s),this.lineTo(t-n,e-s),this.lineTo(t,e+(r-s)),this.closePath()},CanvasRenderingContext2D.prototype.star=function(t,e,i){this.beginPath(),i*=.82,e+=.1*i;for(var o=0;10>o;o++){var n=o%2===0?1.3*i:.5*i;this.lineTo(t+n*Math.sin(2*o*Math.PI/10),e-n*Math.cos(2*o*Math.PI/10))}this.closePath()},CanvasRenderingContext2D.prototype.diamond=function(t,e,i){this.beginPath(),this.lineTo(t,e+i),this.lineTo(t+i,e),this.lineTo(t,e-i),this.lineTo(t-i,e),this.closePath()},CanvasRenderingContext2D.prototype.roundRect=function(t,e,i,o,n){var s=Math.PI/180;0>i-2*n&&(n=i/2),0>o-2*n&&(n=o/2),this.beginPath(),this.moveTo(t+n,e),this.lineTo(t+i-n,e),this.arc(t+i-n,e+n,n,270*s,360*s,!1),this.lineTo(t+i,e+o-n),this.arc(t+i-n,e+o-n,n,0,90*s,!1),this.lineTo(t+n,e+o),this.arc(t+n,e+o-n,n,90*s,180*s,!1),this.lineTo(t,e+n),this.arc(t+n,e+n,n,180*s,270*s,!1),this.closePath()},CanvasRenderingContext2D.prototype.ellipse=function(t,e,i,o){var n=.5522848,s=i/2*n,r=o/2*n,a=t+i,h=e+o,d=t+i/2,l=e+o/2;this.beginPath(),this.moveTo(t,l),this.bezierCurveTo(t,l-r,d-s,e,d,e),this.bezierCurveTo(d+s,e,a,l-r,a,l),this.bezierCurveTo(a,l+r,d+s,h,d,h),this.bezierCurveTo(d-s,h,t,l+r,t,l),this.closePath()},CanvasRenderingContext2D.prototype.database=function(t,e,i,o){var n=1/3,s=i,r=o*n,a=.5522848,h=s/2*a,d=r/2*a,l=t+s,c=e+r,u=t+s/2,p=e+r/2,f=e+(o-r/2),m=e+o;this.beginPath(),this.moveTo(l,p),this.bezierCurveTo(l,p+d,u+h,c,u,c),this.bezierCurveTo(u-h,c,t,p+d,t,p),this.bezierCurveTo(t,p-d,u-h,e,u,e),this.bezierCurveTo(u+h,e,l,p-d,l,p),this.lineTo(l,f),this.bezierCurveTo(l,f+d,u+h,m,u,m),this.bezierCurveTo(u-h,m,t,f+d,t,f),this.lineTo(t,p)},CanvasRenderingContext2D.prototype.arrow=function(t,e,i,o){var n=t-o*Math.cos(i),s=e-o*Math.sin(i),r=t-.9*o*Math.cos(i),a=e-.9*o*Math.sin(i),h=n+o/3*Math.cos(i+.5*Math.PI),d=s+o/3*Math.sin(i+.5*Math.PI),l=n+o/3*Math.cos(i-.5*Math.PI),c=s+o/3*Math.sin(i-.5*Math.PI);this.beginPath(),this.moveTo(t,e),this.lineTo(h,d),this.lineTo(r,a),this.lineTo(l,c),this.closePath()},CanvasRenderingContext2D.prototype.dashedLine=function(t,e,i,o,n){this.beginPath(),this.moveTo(t,e);for(var s=n.length,r=i-t,a=o-e,h=a/r,d=Math.sqrt(r*r+a*a),l=0,c=!0,u=0,p=n[0];d>=.1;)p=n[l++%s],p>d&&(p=d),u=Math.sqrt(p*p/(1+h*h)),u=0>r?-u:u,t+=u,e+=h*u,c===!0?this.lineTo(t,e):this.moveTo(t,e),d-=p,c=!c})},function(t,e){function i(t){return P=t,p()}function o(){I=0,N=P.charAt(0)}function n(){I++,N=P.charAt(I)}function s(){return P.charAt(I+1)}function r(t){return R.test(t)}function a(t,e){if(t||(t={}),e)for(var i in e)e.hasOwnProperty(i)&&(t[i]=e[i]);return t}function h(t,e,i){for(var o=e.split("."),n=t;o.length;){var s=o.shift();o.length?(n[s]||(n[s]={}),n=n[s]):n[s]=i}}function d(t,e){for(var i,o,n=null,s=[t],r=t;r.parent;)s.push(r.parent),r=r.parent;if(r.nodes)for(i=0,o=r.nodes.length;o>i;i++)if(e.id===r.nodes[i].id){n=r.nodes[i];break}for(n||(n={id:e.id},t.node&&(n.attr=a(n.attr,t.node))),i=s.length-1;i>=0;i--){var h=s[i];h.nodes||(h.nodes=[]),-1===h.nodes.indexOf(n)&&h.nodes.push(n)}e.attr&&(n.attr=a(n.attr,e.attr))}function l(t,e){if(t.edges||(t.edges=[]),t.edges.push(e),t.edge){var i=a({},t.edge);e.attr=a(i,e.attr)}}function c(t,e,i,o,n){var s={from:e,to:i,type:o};return t.edge&&(s.attr=a({},t.edge)),s.attr=a(s.attr||{},n),s}function u(){for(L=T.NULL,z="";" "===N||" "===N||"\n"===N||"\r"===N;)n();do{var t=!1;if("#"===N){for(var e=I-1;" "===P.charAt(e)||" "===P.charAt(e);)e--;if("\n"===P.charAt(e)||""===P.charAt(e)){for(;""!=N&&"\n"!=N;)n();t=!0}}if("/"===N&&"/"===s()){for(;""!=N&&"\n"!=N;)n();t=!0}if("/"===N&&"*"===s()){for(;""!=N;){if("*"===N&&"/"===s()){n(),n();break}n()}t=!0}for(;" "===N||" "===N||"\n"===N||"\r"===N;)n()}while(t);if(""===N)return void(L=T.DELIMITER);var i=N+s();if(E[i])return L=T.DELIMITER,z=i,n(),void n();if(E[N])return L=T.DELIMITER,z=N,void n();if(r(N)||"-"===N){for(z+=N,n();r(N);)z+=N,n();return"false"===z?z=!1:"true"===z?z=!0:isNaN(Number(z))||(z=Number(z)),void(L=T.IDENTIFIER)}if('"'===N){for(n();""!=N&&('"'!=N||'"'===N&&'"'===s());)z+=N,'"'===N&&n(),n();if('"'!=N)throw _('End of string " expected');return n(),void(L=T.IDENTIFIER)}for(L=T.UNKNOWN;""!=N;)z+=N,n();throw new SyntaxError('Syntax error in part "'+x(z,30)+'"')}function p(){var t={};if(o(),u(),"strict"===z&&(t.strict=!0,u()),"graph"!==z&&"digraph"!==z||(t.type=z,u()),L===T.IDENTIFIER&&(t.id=z,u()),"{"!=z)throw _("Angle bracket { expected");if(u(),f(t),"}"!=z)throw _("Angle bracket } expected");if(u(),""!==z)throw _("End of file expected");return u(),delete t.node,delete t.edge,delete t.graph,t}function f(t){for(;""!==z&&"}"!=z;)m(t),";"===z&&u()}function m(t){var e=v(t);if(e)return void b(t,e);var i=g(t);if(!i){ +if(L!=T.IDENTIFIER)throw _("Identifier expected");var o=z;if(u(),"="===z){if(u(),L!=T.IDENTIFIER)throw _("Identifier expected");t[o]=z,u()}else y(t,o)}}function v(t){var e=null;if("subgraph"===z&&(e={},e.type="subgraph",u(),L===T.IDENTIFIER&&(e.id=z,u())),"{"===z){if(u(),e||(e={}),e.parent=t,e.node=t.node,e.edge=t.edge,e.graph=t.graph,f(e),"}"!=z)throw _("Angle bracket } expected");u(),delete e.node,delete e.edge,delete e.graph,delete e.parent,t.subgraphs||(t.subgraphs=[]),t.subgraphs.push(e)}return e}function g(t){return"node"===z?(u(),t.node=w(),"node"):"edge"===z?(u(),t.edge=w(),"edge"):"graph"===z?(u(),t.graph=w(),"graph"):null}function y(t,e){var i={id:e},o=w();o&&(i.attr=o),d(t,i),b(t,e)}function b(t,e){for(;"->"===z||"--"===z;){var i,o=z;u();var n=v(t);if(n)i=n;else{if(L!=T.IDENTIFIER)throw _("Identifier or subgraph expected");i=z,d(t,{id:i}),u()}var s=w(),r=c(t,e,i,o,s);l(t,r),e=i}}function w(){for(var t=null;"["===z;){for(u(),t={};""!==z&&"]"!=z;){if(L!=T.IDENTIFIER)throw _("Attribute name expected");var e=z;if(u(),"="!=z)throw _("Equal sign = expected");if(u(),L!=T.IDENTIFIER)throw _("Attribute value expected");var i=z;h(t,e,i),u(),","==z&&u()}if("]"!=z)throw _("Bracket ] expected");u()}return t}function _(t){return new SyntaxError(t+', got "'+x(z,30)+'" (char '+I+")")}function x(t,e){return t.length<=e?t:t.substr(0,27)+"..."}function k(t,e,i){Array.isArray(t)?t.forEach(function(t){Array.isArray(e)?e.forEach(function(e){i(t,e)}):i(t,e)}):Array.isArray(e)?e.forEach(function(e){i(t,e)}):i(t,e)}function O(t,e,i){for(var o=e.split("."),n=o.pop(),s=t,r=0;r":!0,"--":!0},P="",I=0,N="",z="",L=T.NULL,R=/[a-zA-Z_0-9.:#]/;e.parseDOT=i,e.DOTToGraph=D},function(t,e){function i(t,e){var i=[],o=[],n={edges:{inheritColor:!1},nodes:{fixed:!1,parseColor:!1}};void 0!==e&&(void 0!==e.fixed&&(n.nodes.fixed=e.fixed),void 0!==e.parseColor&&(n.nodes.parseColor=e.parseColor),void 0!==e.inheritColor&&(n.edges.inheritColor=e.inheritColor));for(var s=t.edges,r=t.nodes,a=0;a 0) { + gutil.beep(); // TODO: this does not work on my system + } + } +} + // clean the dist/img directory gulp.task('clean', function (cb) { rimraf(DIST + '/img', cb); }); -gulp.task('bundle-js', ['clean'], function (cb) { +gulp.task('bundle-js', function (cb) { // update the banner contents (has a date in it which should stay up to date) bannerPlugin.banner = createBanner(); compiler.run(function (err, stats) { - if (err) { - gutil.log(err.toString()); - } - - if (stats && stats.compilation && stats.compilation.errors) { - // output soft errors - stats.compilation.errors.forEach(function (err) { - gutil.log(err.toString()); - }); - - if (err || stats.compilation.errors.length > 0) { - gutil.beep(); // TODO: this does not work on my system - } - } + handleCompilerCallback(err, stats); cb(); }); }); +// create individual bundles for timeline+graph2d, network, graph3d +gulp.task('bundle-js-individual', function (cb) { + // update the banner contents (has a date in it which should stay up to date) + bannerPlugin.banner = createBanner(); + + async.each(INDIVIDUAL_BUNDLES, function (item, callback) { + var webpackTimelineConfig = { + entry: item.entry, + output: { + library: 'vis', + libraryTarget: 'umd', + path: DIST, + filename: item.filename, + sourcePrefix: ' ' + }, + module: webpackModule, + plugins: [ bannerPlugin, new webpack.optimize.UglifyJsPlugin() ], + cache: true + }; + + var compiler = webpack(webpackTimelineConfig); + compiler.run(function (err, stats) { + handleCompilerCallback(err, stats); + callback(); + }); + }, cb); + +}); + + // bundle and minify css -gulp.task('bundle-css', ['clean'], function () { +gulp.task('bundle-css', function () { var files = [ './lib/shared/activator.css', './lib/shared/bootstrap.css', @@ -161,7 +203,7 @@ gulp.task('minify', ['bundle-js'], function (cb) { cb(); }); -gulp.task('bundle', ['bundle-js', 'bundle-css', 'copy']); +gulp.task('bundle', ['bundle-js', 'bundle-js-individual', 'bundle-css', 'copy']); // read command line arguments --bundle and --minify var bundle = 'bundle' in argv; diff --git a/index-graph3d.js b/index-graph3d.js new file mode 100644 index 00000000..9d75dca4 --- /dev/null +++ b/index-graph3d.js @@ -0,0 +1,24 @@ +// utils +exports.util = require('./lib/util'); +exports.DOMutil = require('./lib/DOMutil'); + +// data +exports.DataSet = require('./lib/DataSet'); +exports.DataView = require('./lib/DataView'); +exports.Queue = require('./lib/Queue'); + +// Graph3d +exports.Graph3d = require('./lib/graph3d/Graph3d'); +exports.graph3d = { + Camera: require('./lib/graph3d/Camera'), + Filter: require('./lib/graph3d/Filter'), + Point2d: require('./lib/graph3d/Point2d'), + Point3d: require('./lib/graph3d/Point3d'), + Slider: require('./lib/graph3d/Slider'), + StepNumber: require('./lib/graph3d/StepNumber') +}; + +// bundled external libraries +exports.moment = require('./lib/module/moment'); +exports.Hammer = require('./lib/module/hammer'); +exports.keycharm = require('keycharm'); diff --git a/index-network.js b/index-network.js new file mode 100644 index 00000000..187b1caa --- /dev/null +++ b/index-network.js @@ -0,0 +1,24 @@ +// utils +exports.util = require('./lib/util'); +exports.DOMutil = require('./lib/DOMutil'); + +// data +exports.DataSet = require('./lib/DataSet'); +exports.DataView = require('./lib/DataView'); +exports.Queue = require('./lib/Queue'); + +// Network +exports.Network = require('./lib/network/Network'); +exports.network = { + Images: require('./lib/network/Images'), + dotparser: require('./lib/network/dotparser'), + gephiParser: require('./lib/network/gephiParser'), + allOptions: require('./lib/network/options') +}; +exports.network.convertDot = function (input) {return exports.network.dotparser.DOTToGraph(input)}; +exports.network.convertGephi = function (input,options) {return exports.network.gephiParser.parseGephi(input,options)}; + +// bundled external libraries +exports.moment = require('./lib/module/moment'); +exports.Hammer = require('./lib/module/hammer'); +exports.keycharm = require('keycharm'); \ No newline at end of file diff --git a/index-timeline-graph2d.js b/index-timeline-graph2d.js new file mode 100644 index 00000000..50426671 --- /dev/null +++ b/index-timeline-graph2d.js @@ -0,0 +1,47 @@ +// utils +exports.util = require('./lib/util'); +exports.DOMutil = require('./lib/DOMutil'); + +// data +exports.DataSet = require('./lib/DataSet'); +exports.DataView = require('./lib/DataView'); +exports.Queue = require('./lib/Queue'); + +// Timeline +exports.Timeline = require('./lib/timeline/Timeline'); +exports.Graph2d = require('./lib/timeline/Graph2d'); +exports.timeline = { + Core: require('./lib/timeline/Core'), + DateUtil: require('./lib/timeline/DateUtil'), + Range: require('./lib/timeline/Range'), + stack: require('./lib/timeline/Stack'), + TimeStep: require('./lib/timeline/TimeStep'), + + components: { + items: { + Item: require('./lib/timeline/component/item/Item'), + BackgroundItem: require('./lib/timeline/component/item/BackgroundItem'), + BoxItem: require('./lib/timeline/component/item/BoxItem'), + PointItem: require('./lib/timeline/component/item/PointItem'), + RangeItem: require('./lib/timeline/component/item/RangeItem') + }, + + BackgroundGroup: require('./lib/timeline/component/BackgroundGroup'), + Component: require('./lib/timeline/component/Component'), + CurrentTime: require('./lib/timeline/component/CurrentTime'), + CustomTime: require('./lib/timeline/component/CustomTime'), + DataAxis: require('./lib/timeline/component/DataAxis'), + DataScale: require('./lib/timeline/component/DataScale'), + GraphGroup: require('./lib/timeline/component/GraphGroup'), + Group: require('./lib/timeline/component/Group'), + ItemSet: require('./lib/timeline/component/ItemSet'), + Legend: require('./lib/timeline/component/Legend'), + LineGraph: require('./lib/timeline/component/LineGraph'), + TimeAxis: require('./lib/timeline/component/TimeAxis') + } +}; + +// bundled external libraries +exports.moment = require('./lib/module/moment'); +exports.Hammer = require('./lib/module/hammer'); +exports.keycharm = require('keycharm'); \ No newline at end of file diff --git a/index.js b/index.js index d84e82e8..8af8bba2 100644 --- a/index.js +++ b/index.js @@ -1,69 +1,10 @@ -// utils -exports.util = require('./lib/util'); -exports.DOMutil = require('./lib/DOMutil'); - -// data -exports.DataSet = require('./lib/DataSet'); -exports.DataView = require('./lib/DataView'); -exports.Queue = require('./lib/Queue'); +var util = require('./lib/util'); // Graph3d -exports.Graph3d = require('./lib/graph3d/Graph3d'); -exports.graph3d = { - Camera: require('./lib/graph3d/Camera'), - Filter: require('./lib/graph3d/Filter'), - Point2d: require('./lib/graph3d/Point2d'), - Point3d: require('./lib/graph3d/Point3d'), - Slider: require('./lib/graph3d/Slider'), - StepNumber: require('./lib/graph3d/StepNumber') -}; - -// Timeline -exports.Timeline = require('./lib/timeline/Timeline'); -exports.Graph2d = require('./lib/timeline/Graph2d'); -exports.timeline = { - Core: require('./lib/timeline/Core'), - DateUtil: require('./lib/timeline/DateUtil'), - Range: require('./lib/timeline/Range'), - stack: require('./lib/timeline/Stack'), - TimeStep: require('./lib/timeline/TimeStep'), +util.extend(exports, require('./index-graph3d')); - components: { - items: { - Item: require('./lib/timeline/component/item/Item'), - BackgroundItem: require('./lib/timeline/component/item/BackgroundItem'), - BoxItem: require('./lib/timeline/component/item/BoxItem'), - PointItem: require('./lib/timeline/component/item/PointItem'), - RangeItem: require('./lib/timeline/component/item/RangeItem') - }, - - BackgroundGroup: require('./lib/timeline/component/BackgroundGroup'), - Component: require('./lib/timeline/component/Component'), - CurrentTime: require('./lib/timeline/component/CurrentTime'), - CustomTime: require('./lib/timeline/component/CustomTime'), - DataAxis: require('./lib/timeline/component/DataAxis'), - DataScale: require('./lib/timeline/component/DataScale'), - GraphGroup: require('./lib/timeline/component/GraphGroup'), - Group: require('./lib/timeline/component/Group'), - ItemSet: require('./lib/timeline/component/ItemSet'), - Legend: require('./lib/timeline/component/Legend'), - LineGraph: require('./lib/timeline/component/LineGraph'), - TimeAxis: require('./lib/timeline/component/TimeAxis') - } -}; +// Timeline & Graph2d +util.extend(exports, require('./index-timeline-graph2d')); // Network -exports.Network = require('./lib/network/Network'); -exports.network = { - Images: require('./lib/network/Images'), - dotparser: require('./lib/network/dotparser'), - gephiParser: require('./lib/network/gephiParser'), - allOptions: require('./lib/network/options') -}; -exports.network.convertDot = function (input) {return exports.network.dotparser.DOTToGraph(input)}; -exports.network.convertGephi = function (input,options) {return exports.network.gephiParser.parseGephi(input,options)}; - -// bundled external libraries -exports.moment = require('./lib/module/moment'); -exports.Hammer = require('./lib/module/hammer'); -exports.keycharm = require('keycharm'); \ No newline at end of file +util.extend(exports, require('./index-network')); diff --git a/package.json b/package.json index c1e62779..4a622151 100644 --- a/package.json +++ b/package.json @@ -30,6 +30,7 @@ }, "dependencies": {}, "devDependencies": { + "async": "^2.0.0-rc.2", "babel-core": "^6.6.5", "babel-loader": "^6.2.4", "babel-preset-es2015": "^6.6.0",