diff --git a/dist/img/timeline/delete.png b/dist/img/timeline/delete.png deleted file mode 100644 index d54d0e06..00000000 Binary files a/dist/img/timeline/delete.png and /dev/null differ diff --git a/dist/vis-graph3d.min.js b/dist/vis-graph3d.min.js index 21aea6fc..04da1297 100644 --- a/dist/vis-graph3d.min.js +++ b/dist/vis-graph3d.min.js @@ -4,8 +4,8 @@ * * A dynamic, browser-based visualization library. * - * @version 4.16.1 - * @date 2016-04-18 + * @version 4.17.0 + * @date 2016-11-05 * * @license * Copyright (C) 2011-2016 Almende B.V, http://almende.com @@ -22,12 +22,12 @@ * * 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],d=e(u);if(0==d)return h;-1==d?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,d=0,c=t.length-1,r=void 0!=r?r:function(t,e){return t==e?0:e>t?-1:1};c>=d&&l>u;){if(h=Math.floor(.5*(c+d)),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?d=h+1:c=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 an.apply(null,arguments)}function i(t){an=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 ln)n=ln[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),un===!1&&(un=!0,e.updateOffset(this),un=!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 w(t,i){var n=!0;return a(function(){return null!=e.deprecationHandler&&e.deprecationHandler(null,t),n&&(x(t+"\nArguments: "+Array.prototype.slice.call(arguments).join(", ")+"\n"+(new Error).stack),n=!1),i.apply(this,arguments)},i)}function b(t,i){null!=e.deprecationHandler&&e.deprecationHandler(t,i),dn[t]||(x(i),dn[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 k(t){null!=t&&this.set(t)}function C(t){return t?t.toLowerCase().replace("_","-"):t}function O(t){for(var e,i,n,r,s=0;s0;){if(n=P(r.slice(0,e).join("-")))return n;if(i&&i.length>=e&&_(r,i,!0)>=e-1)break;e--}s++}return null}function P(e){var i=null;if(!mn[e]&&"undefined"!=typeof t&&t&&t.exports)try{i=fn._abbr,!function(){var t=new Error('Cannot find module "./locale"');throw t.code="MODULE_NOT_FOUND",t}(),E(i)}catch(n){}return mn[e]}function E(t,e){var i;return t&&(i=f(e)?A(t):L(t,e),i&&(fn=i)),fn._abbr}function L(t,e){return null!==e?(e.abbr=t,null!=mn[t]?(b("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(mn[t]._config,e)):null!=e.parentLocale&&(null!=mn[e.parentLocale]?e=D(mn[e.parentLocale]._config,e):b("parentLocaleUndefined","specified parentLocale is not defined yet")),mn[t]=new k(e),E(t),mn[t]):(delete mn[t],null)}function Y(t,e){if(null!=e){var i;null!=mn[t]&&(e=D(mn[t]._config,e)),i=new k(e),i.parentLocale=mn[t],mn[t]=i,E(t)}else null!=mn[t]&&(null!=mn[t].parentLocale?mn[t]=mn[t].parentLocale:null!=mn[t]&&delete mn[t]);return mn[t]}function A(t){var e;if(t&&t._locale&&t._locale._abbr&&(t=t._locale._abbr),!t)return fn;if(!n(t)){if(e=P(t))return e;t=[t]}return O(t)}function R(){return cn(mn)}function I(t,e){var i=t.toLowerCase();vn[i]=vn[i+"s"]=vn[e]=t}function z(t){return"string"==typeof t?vn[t]||vn[t.toLowerCase()]:void 0}function W(t){var e,i,n={};for(i in t)o(t,i)&&(e=z(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=z(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&&(xn[t]=r),e&&(xn[e[0]]=function(){return U(r.apply(this,arguments),e[1],e[2])}),i&&(xn[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(yn);for(e=0,i=n.length;i>e;e++)xn[n[e]]?n[e]=xn[n[e]]:n[e]=j(n[e]);return function(e){var r,s="";for(r=0;i>r;r++)s+=n[r]instanceof Function?n[r].call(e,t):n[r];return s}}function X(t,e){return t.isValid()?(e=Z(e,t.localeData()),_n[e]=_n[e]||G(e),_n[e](t)):t.localeData().invalidDate()}function Z(t,e){function i(t){return e.longDateFormat(t)||t}var n=5;for(gn.lastIndex=0;n>=0&&gn.test(t);)t=t.replace(gn,i),gn.lastIndex=0,n-=1;return t}function q(t,e,i){Wn[t]=M(e)?e:function(t,n){return t&&i?i:e}}function Q(t,e){return o(Wn,t)?Wn[t](e._strict,e._locale):new RegExp($(t))}function $(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)s=h([2e3,n]),this._shortMonthsParse[n]=this.monthsShort(s,"").toLocaleLowerCase(),this._longMonthsParse[n]=this.months(s,"").toLocaleLowerCase();return i?"MMM"===e?(r=pn.call(this._shortMonthsParse,o),-1!==r?r:null):(r=pn.call(this._longMonthsParse,o),-1!==r?r:null):"MMM"===e?(r=pn.call(this._shortMonthsParse,o),-1!==r?r:(r=pn.call(this._longMonthsParse,o),-1!==r?r:null)):(r=pn.call(this._longMonthsParse,o),-1!==r?r:(r=pn.call(this._shortMonthsParse,o),-1!==r?r:null))}function ot(t,e,i){var n,r,s;if(this._monthsParseExact)return st.call(this,t,e,i);for(this._monthsParse||(this._monthsParse=[],this._longMonthsParse=[],this._shortMonthsParse=[]),n=0;12>n;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 at(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 ht(t){return null!=t?(at(this,t),e.updateOffset(this,!0),this):F(this,"Month")}function lt(){return it(this.year(),this.month())}function ut(t){return this._monthsParseExact?(o(this,"_monthsRegex")||ct.call(this),t?this._monthsShortStrictRegex:this._monthsShortRegex):this._monthsShortStrictRegex&&t?this._monthsShortStrictRegex:this._monthsShortRegex}function dt(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 ft(t){var e,i=t._a;return i&&-2===u(t).overflow&&(e=i[Vn]<0||i[Vn]>11?Vn:i[Bn]<1||i[Bn]>it(i[Fn],i[Vn])?Bn:i[Un]<0||i[Un]>24||24===i[Un]&&(0!==i[Hn]||0!==i[jn]||0!==i[Gn])?Un:i[Hn]<0||i[Hn]>59?Hn:i[jn]<0||i[jn]>59?jn:i[Gn]<0||i[Gn]>999?Gn:-1,u(t)._overflowDayOfYear&&(Fn>e||e>Bn)&&(e=Bn),u(t)._overflowWeeks&&-1===e&&(e=Xn),u(t)._overflowWeekday&&-1===e&&(e=Zn),u(t).overflow=e),t}function pt(t){var e,i,n,r,s,o,a=t._i,h=tr.exec(a)||er.exec(a);if(h){for(u(t).iso=!0,e=0,i=nr.length;i>e;e++)if(nr[e][1].exec(h[1])){r=nr[e][0],n=nr[e][2]!==!1;break}if(null==r)return void(t._isValid=!1);if(h[3]){for(e=0,i=rr.length;i>e;e++)if(rr[e][1].exec(h[3])){s=(h[2]||" ")+rr[e][0];break}if(null==s)return void(t._isValid=!1)}if(!n&&null!=s)return void(t._isValid=!1);if(h[4]){if(!ir.exec(h[4]))return void(t._isValid=!1);o="Z"}t._f=r+(s||"")+(o||""),Ot(t)}else t._isValid=!1}function mt(t){var i=sr.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 vt(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 yt(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 _t(t)?366:365}function _t(t){return t%4===0&&t%100!==0||t%400===0}function xt(){return _t(this.year())}function wt(t,e,i){var n=7+e-i,r=(7+yt(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=wt(t,n,r),l=1+7*(e-1)+a+h;return 0>=l?(s=t-1,o=gt(s)+l):l>gt(t)?(s=t+1,o=l-gt(t)):(s=t,o=l),{year:s,dayOfYear:o}}function Mt(t,e,i){var n,r,s=wt(t.year(),e,i),o=Math.floor((t.dayOfYear()-s-1)/7)+1;return 1>o?(r=t.year()-1,n=o+St(r,e,i)):o>St(t.year(),e,i)?(n=o-St(t.year(),e,i),r=t.year()+1):(r=t.year(),n=o),{week:n,year:r}}function St(t,e,i){var n=wt(t,e,i),r=wt(t+1,e,i);return(gt(t)-n+r)/7}function Tt(t,e,i){return null!=t?t:null!=e?e:i}function Dt(t){var i=new Date(e.now());return t._useUTC?[i.getUTCFullYear(),i.getUTCMonth(),i.getUTCDate()]:[i.getFullYear(),i.getMonth(),i.getDate()]}function kt(t){var e,i,n,r,s=[];if(!t._d){for(n=Dt(t),t._w&&null==t._a[Bn]&&null==t._a[Vn]&&Ct(t),t._dayOfYear&&(r=Tt(t._a[Fn],n[Fn]),t._dayOfYear>gt(r)&&(u(t)._overflowDayOfYear=!0),i=yt(r,0,t._dayOfYear),t._a[Vn]=i.getUTCMonth(),t._a[Bn]=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[Un]&&0===t._a[Hn]&&0===t._a[jn]&&0===t._a[Gn]&&(t._nextDay=!0,t._a[Un]=0),t._d=(t._useUTC?yt:vt).apply(null,s),null!=t._tzm&&t._d.setUTCMinutes(t._d.getUTCMinutes()-t._tzm),t._nextDay&&(t._a[Un]=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=Tt(e.GG,t._a[Fn],Mt(zt(),1,4).year),n=Tt(e.W,1),r=Tt(e.E,1),(1>r||r>7)&&(h=!0)):(s=t._locale._week.dow,o=t._locale._week.doy,i=Tt(e.gg,t._a[Fn],Mt(zt(),s,o).year),n=Tt(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>St(i,s,o)?u(t)._overflowWeeks=!0:null!=h?u(t)._overflowWeekday=!0:(a=bt(i,n,r,s,o),t._a[Fn]=a.year,t._dayOfYear=a.dayOfYear)}function Ot(t){if(t._f===e.ISO_8601)return void pt(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(yn)||[],i=0;i0&&u(t).unusedInput.push(o),a=a.slice(a.indexOf(n)+n.length),l+=n.length),xn[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[Un]<=12&&t._a[Un]>0&&(u(t).bigHour=void 0),u(t).parsedDateParts=t._a.slice(0),u(t).meridiem=t._meridiem,t._a[Un]=Pt(t._locale,t._a[Un],t._meridiem),kt(t),ft(t)}function Pt(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 Et(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 Lt(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)}),kt(t)}}function Yt(t){var e=new m(ft(At(t)));return e._nextDay&&(e.add(1,"d"),e._nextDay=void 0),e}function At(t){var e=t._i,i=t._f;return t._locale=t._locale||A(t._l),null===e||void 0===i&&""===e?c({nullInput:!0}):("string"==typeof e&&(t._i=e=t._locale.preparse(e)),v(e)?new m(ft(e)):(n(i)?Et(t):i?Ot(t):r(e)?t._d=e:Rt(t),d(t)||(t._d=null),t))}function Rt(t){var i=t._i;void 0===i?t._d=new Date(e.now()):r(i)?t._d=new Date(i.valueOf()):"string"==typeof i?mt(t):n(i)?(t._a=s(i.slice(0),function(t){return parseInt(t,10)}),kt(t)):"object"==typeof i?Lt(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 Wt(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 Ht(t,e){var i=(e||"").match(t)||[],n=i[i.length-1]||[],r=(n+"").match(ur)||["-",0,0],s=+(60*r[1])+g(r[2]);return"+"===r[0]?s:-s}function jt(t,i){var n,s;return i._isUTC?(n=i.clone(),s=(v(t)||r(t)?t.valueOf():zt(t).valueOf())-n.valueOf(),n._d.setTime(n._d.valueOf()+s),e.updateOffset(n,!1),n):zt(t).local()}function Gt(t){return 15*-Math.round(t._d.getTimezoneOffset()/15)}function Xt(t,i){var n,r=this._offset||0;return this.isValid()?null!=t?("string"==typeof t?t=Ht(Rn,t):Math.abs(t)<16&&(t=60*t),!this._isUTC&&i&&(n=Gt(this)),this._offset=t,this._isUTC=!0,null!=n&&this.add(n,"m"),r!==t&&(!i||this._changeInProgress?ue(this,re(t-r,"m"),1,!1):this._changeInProgress||(this._changeInProgress=!0,e.updateOffset(this,!0),this._changeInProgress=null)),this):this._isUTC?r:Gt(this):null!=t?this:NaN}function Zt(t,e){return null!=t?("string"!=typeof t&&(t=-t),this.utcOffset(t,e),this):-this.utcOffset()}function qt(t){return this.utcOffset(0,t)}function Qt(t){return this._isUTC&&(this.utcOffset(0,t),this._isUTC=!1,t&&this.subtract(Gt(this),"m")),this}function $t(){return this._tzm?this.utcOffset(this._tzm):"string"==typeof this._i&&this.utcOffset(Ht(An,this._i)),this}function Jt(t){return this.isValid()?(t=t?zt(t).utcOffset():0,(this.utcOffset()-t)%60===0):!1}function Kt(){return this.utcOffset()>this.clone().month(0).utcOffset()||this.utcOffset()>this.clone().month(5).utcOffset()}function te(){if(!f(this._isDSTShifted))return this._isDSTShifted;var t={};if(p(t,this),t=At(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 ee(){return this.isValid()?!this._isUTC:!1}function ie(){return this.isValid()?this._isUTC:!1}function ne(){return this.isValid()?this._isUTC&&0===this._offset:!1}function re(t,e){var i,n,r,s=t,a=null;return Bt(t)?s={ms:t._milliseconds,d:t._days,M:t._months}:"number"==typeof t?(s={},e?s[e]=t:s.milliseconds=t):(a=dr.exec(t))?(i="-"===a[1]?-1:1,s={y:0,d:g(a[Bn])*i,h:g(a[Un])*i,m:g(a[Hn])*i,s:g(a[jn])*i,ms:g(a[Gn])*i}):(a=cr.exec(t))?(i="-"===a[1]?-1:1,s={y:se(a[2],i),M:se(a[3],i),w:se(a[4],i),d:se(a[5],i),h:se(a[6],i),m:se(a[7],i),s:se(a[8],i)}):null==s?s={}:"object"==typeof s&&("from"in s||"to"in s)&&(r=ae(zt(s.from),zt(s.to)),s={},s.ms=r.milliseconds,s.M=r.months),n=new Vt(s),Bt(t)&&o(t,"_locale")&&(n._locale=t._locale),n}function se(t,e){var i=t&&parseFloat(t.replace(",",".")); -return(isNaN(i)?0:i)*e}function oe(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 ae(t,e){var i;return t.isValid()&&e.isValid()?(e=jt(e,t),t.isBefore(e)?i=oe(t,e):(i=oe(e,t),i.milliseconds=-i.milliseconds,i.months=-i.months),i):{milliseconds:0,months:0}}function he(t){return 0>t?-1*Math.round(-1*t):Math.round(t)}function le(t,e){return function(i,n){var r,s;return null===n||isNaN(+n)||(b(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=re(i,n),ue(this,r,t),this}}function ue(t,i,n,r){var s=i._milliseconds,o=he(i._days),a=he(i._months);t.isValid()&&(r=null==r?!0:r,s&&t._d.setTime(t._d.valueOf()+s*n),o&&V(t,"Date",F(t,"Date")+o*n),a&&at(t,F(t,"Month")+a*n),r&&e.updateOffset(t,o||a))}function de(t,e){var i=t||zt(),n=jt(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 fe(t,e){var i=v(t)?t:zt(t);return this.isValid()&&i.isValid()?(e=z(f(e)?"millisecond":e),"millisecond"===e?this.valueOf()>i.valueOf():i.valueOf()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)||0}function we(){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),Ze.call(this,t,e,i,n,r))}function Ze(t,e,i,n,r){var s=bt(t,e,i,n,r),o=yt(s.year,0,s.dayOfYear);return this.year(o.getUTCFullYear()),this.month(o.getUTCMonth()),this.date(o.getUTCDate()),this}function qe(t){return null==t?Math.ceil((this.month()+1)/3):this.month(3*(t-1)+this.month()%3)}function Qe(t){return Mt(t,this._week.dow,this._week.doy).week}function $e(){return this._week.dow}function Je(){return this._week.doy}function Ke(t){var e=this.localeData().week(this);return null==t?e:this.add(7*(t-e),"d")}function ti(t){var e=Mt(this,1,4).week;return null==t?e:this.add(7*(t-e),"d")}function ei(t,e){return"string"!=typeof t?t:isNaN(t)?(t=e.weekdaysParse(t),"number"==typeof t?t:null):parseInt(t,10)}function ii(t,e){return n(this._weekdays)?this._weekdays[t.day()]:this._weekdays[this._weekdays.isFormat.test(e)?"format":"standalone"][t.day()]}function ni(t){return this._weekdaysShort[t.day()]}function ri(t){return this._weekdaysMin[t.day()]}function si(t,e,i){var n,r,s,o=t.toLocaleLowerCase();if(!this._weekdaysParse)for(this._weekdaysParse=[],this._shortWeekdaysParse=[],this._minWeekdaysParse=[],n=0;7>n;++n)s=h([2e3,1]).day(n),this._minWeekdaysParse[n]=this.weekdaysMin(s,"").toLocaleLowerCase(),this._shortWeekdaysParse[n]=this.weekdaysShort(s,"").toLocaleLowerCase(),this._weekdaysParse[n]=this.weekdays(s,"").toLocaleLowerCase();return i?"dddd"===e?(r=pn.call(this._weekdaysParse,o),-1!==r?r:null):"ddd"===e?(r=pn.call(this._shortWeekdaysParse,o),-1!==r?r:null):(r=pn.call(this._minWeekdaysParse,o),-1!==r?r:null):"dddd"===e?(r=pn.call(this._weekdaysParse,o),-1!==r?r:(r=pn.call(this._shortWeekdaysParse,o),-1!==r?r:(r=pn.call(this._minWeekdaysParse,o),-1!==r?r:null))):"ddd"===e?(r=pn.call(this._shortWeekdaysParse,o),-1!==r?r:(r=pn.call(this._weekdaysParse,o),-1!==r?r:(r=pn.call(this._minWeekdaysParse,o),-1!==r?r:null))):(r=pn.call(this._minWeekdaysParse,o),-1!==r?r:(r=pn.call(this._weekdaysParse,o),-1!==r?r:(r=pn.call(this._shortWeekdaysParse,o),-1!==r?r:null)))}function oi(t,e,i){var n,r,s;if(this._weekdaysParseExact)return si.call(this,t,e,i);for(this._weekdaysParse||(this._weekdaysParse=[],this._minWeekdaysParse=[],this._shortWeekdaysParse=[],this._fullWeekdaysParse=[]),n=0;7>n;n++){if(r=h([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 ai(t){if(!this.isValid())return null!=t?this:NaN;var e=this._isUTC?this._d.getUTCDay():this._d.getDay();return null!=t?(t=ei(t,this.localeData()),this.add(t-e,"d")):e}function hi(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 li(t){return this.isValid()?null==t?this.day()||7:this.day(this.day()%7?t:t-7):null!=t?this:NaN}function ui(t){return this._weekdaysParseExact?(o(this,"_weekdaysRegex")||fi.call(this),t?this._weekdaysStrictRegex:this._weekdaysRegex):this._weekdaysStrictRegex&&t?this._weekdaysStrictRegex:this._weekdaysRegex}function di(t){return this._weekdaysParseExact?(o(this,"_weekdaysRegex")||fi.call(this),t?this._weekdaysShortStrictRegex:this._weekdaysShortRegex):this._weekdaysShortStrictRegex&&t?this._weekdaysShortStrictRegex:this._weekdaysShortRegex}function ci(t){return this._weekdaysParseExact?(o(this,"_weekdaysRegex")||fi.call(this),t?this._weekdaysMinStrictRegex:this._weekdaysMinRegex):this._weekdaysMinStrictRegex&&t?this._weekdaysMinStrictRegex:this._weekdaysMinRegex}function fi(){function t(t,e){return e.length-t.length}var e,i,n,r,s,o=[],a=[],l=[],u=[];for(e=0;7>e;e++)i=h([2e3,1]).day(e),n=this.weekdaysMin(i,""),r=this.weekdaysShort(i,""),s=this.weekdays(i,""),o.push(n),a.push(r),l.push(s),u.push(n),u.push(r),u.push(s);for(o.sort(t),a.sort(t),l.sort(t),u.sort(t),e=0;7>e;e++)a[e]=J(a[e]),l[e]=J(l[e]),u[e]=J(u[e]);this._weekdaysRegex=new RegExp("^("+u.join("|")+")","i"),this._weekdaysShortRegex=this._weekdaysRegex,this._weekdaysMinRegex=this._weekdaysRegex,this._weekdaysStrictRegex=new RegExp("^("+l.join("|")+")","i"),this._weekdaysShortStrictRegex=new RegExp("^("+a.join("|")+")","i"),this._weekdaysMinStrictRegex=new RegExp("^("+o.join("|")+")","i")}function pi(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 mi(){return this.hours()%12||12}function vi(){return this.hours()||24}function yi(t,e){H(t,0,0,function(){return this.localeData().meridiem(this.hours(),this.minutes(),e)})}function gi(t,e){return e._meridiemParse}function _i(t){return"p"===(t+"").toLowerCase().charAt(0)}function xi(t,e,i){return t>11?i?"pm":"PM":i?"am":"AM"}function wi(t,e){e[Gn]=g(1e3*("0."+t))}function bi(){return this._isUTC?"UTC":""}function Mi(){return this._isUTC?"Coordinated Universal Time":""}function Si(t){return zt(1e3*t)}function Ti(){return zt.apply(null,arguments).parseZone()}function Di(t,e,i){var n=this._calendar[t];return M(n)?n.call(e,i):n}function ki(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 Ci(){return this._invalidDate}function Oi(t){return this._ordinal.replace("%d",t)}function Pi(t){return t}function Ei(t,e,i,n){var r=this._relativeTime[i];return M(r)?r(t,e,i,n):r.replace(/%d/i,t)}function Li(t,e){var i=this._relativeTime[t>0?"future":"past"];return M(i)?i(e):i.replace(/%s/i,e)}function Yi(t,e,i,n){var r=A(),s=h().set(n,e);return r[i](s,t)}function Ai(t,e,i){if("number"==typeof t&&(e=t,t=void 0),t=t||"",null!=e)return Yi(t,e,i,"month");var n,r=[];for(n=0;12>n;n++)r[n]=Yi(t,n,i,"month");return r}function Ri(t,e,i,n){"boolean"==typeof t?("number"==typeof e&&(i=e,e=void 0),e=e||""):(e=t,i=e,t=!1,"number"==typeof e&&(i=e,e=void 0),e=e||"");var r=A(),s=t?r._week.dow:0;if(null!=i)return Yi(e,(i+s)%7,n,"day");var o,a=[];for(o=0;7>o;o++)a[o]=Yi(e,(o+s)%7,n,"day");return a}function Ii(t,e){return Ai(t,e,"months")}function zi(t,e){return Ai(t,e,"monthsShort")}function Wi(t,e,i){return Ri(t,e,i,"weekdays")}function Ni(t,e,i){return Ri(t,e,i,"weekdaysShort")}function Fi(t,e,i){return Ri(t,e,i,"weekdaysMin")}function Vi(){var t=this._data;return this._milliseconds=Nr(this._milliseconds),this._days=Nr(this._days),this._months=Nr(this._months),t.milliseconds=Nr(t.milliseconds),t.seconds=Nr(t.seconds),t.minutes=Nr(t.minutes),t.hours=Nr(t.hours),t.months=Nr(t.months),t.years=Nr(t.years),this}function Bi(t,e,i,n){var r=re(e,i);return t._milliseconds+=n*r._milliseconds,t._days+=n*r._days,t._months+=n*r._months,t._bubble()}function Ui(t,e){return Bi(this,t,e,1)}function Hi(t,e){return Bi(this,t,e,-1)}function ji(t){return 0>t?Math.floor(t):Math.ceil(t)}function Gi(){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*ji(Zi(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(Xi(o)),a+=r,o-=ji(Zi(r)),n=y(a/12),a%=12,h.days=o,h.months=a,h.years=n,this}function Xi(t){return 4800*t/146097}function Zi(t){return 146097*t/4800}function qi(t){var e,i,n=this._milliseconds;if(t=z(t),"month"===t||"year"===t)return e=this._days+n/864e5,i=this._months+Xi(e),"month"===t?i:i/12;switch(e=this._days+Math.round(Zi(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 Qi(){return this._milliseconds+864e5*this._days+this._months%12*2592e6+31536e6*g(this._months/12)}function $i(t){return function(){return this.as(t)}}function Ji(t){return t=z(t),this[t+"s"]()}function Ki(t){return function(){return this._data[t]}}function tn(){return y(this.days()/7)}function en(t,e,i,n,r){return r.relativeTime(e||1,!!i,t,n)}function nn(t,e,i){var n=re(t).abs(),r=es(n.as("s")),s=es(n.as("m")),o=es(n.as("h")),a=es(n.as("d")),h=es(n.as("M")),l=es(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,en.apply(null,u)}function rn(t,e){return void 0===is[t]?!1:void 0===e?is[t]:(is[t]=e,!0)}function sn(t){var e=this.localeData(),i=nn(this,!t,e);return t&&(i=e.pastFuture(+this,i)),e.postformat(i)}function on(){var t,e,i,n=ns(this._milliseconds)/1e3,r=ns(this._days),s=ns(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,d=n,c=this.asSeconds();return c?(0>c?"-":"")+"P"+(o?o+"Y":"")+(a?a+"M":"")+(h?h+"D":"")+(l||u||d?"T":"")+(l?l+"H":"")+(u?u+"M":"")+(d?d+"S":""):"P0D"}var an,hn;hn=Array.prototype.some?Array.prototype.some:function(t){for(var e=Object(this),i=e.length>>>0,n=0;i>n;n++)if(n in e&&t.call(this,e[n],n,e))return!0;return!1};var ln=e.momentProperties=[],un=!1,dn={};e.suppressDeprecationWarnings=!1,e.deprecationHandler=null;var cn;cn=Object.keys?Object.keys:function(t){var e,i=[];for(e in t)o(t,e)&&i.push(e);return i};var fn,pn,mn={},vn={},yn=/(\[[^\[]*\])|(\\)?([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?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g,gn=/(\[[^\[]*\])|(\\)?(LTS|LT|LL?L?L?|l{1,4})/g,_n={},xn={},wn=/\d/,bn=/\d\d/,Mn=/\d{3}/,Sn=/\d{4}/,Tn=/[+-]?\d{6}/,Dn=/\d\d?/,kn=/\d\d\d\d?/,Cn=/\d\d\d\d\d\d?/,On=/\d{1,3}/,Pn=/\d{1,4}/,En=/[+-]?\d{1,6}/,Ln=/\d+/,Yn=/[+-]?\d+/,An=/Z|[+-]\d\d:?\d\d/gi,Rn=/Z|[+-]\d\d(?::?\d\d)?/gi,In=/[+-]?\d+(\.\d{1,3})?/,zn=/[0-9]*['a-z\u00A0-\u05FF\u0700-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]+|[\u0600-\u06FF\/]+(\s*?[\u0600-\u06FF]+){1,2}/i,Wn={},Nn={},Fn=0,Vn=1,Bn=2,Un=3,Hn=4,jn=5,Gn=6,Xn=7,Zn=8;pn=Array.prototype.indexOf?Array.prototype.indexOf:function(t){var e;for(e=0;e=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"),I("year","y"),q("Y",Yn),q("YY",Dn,bn),q("YYYY",Pn,Sn),q("YYYYY",En,Tn),q("YYYYYY",En,Tn),K(["YYYYY","YYYYYY"],Fn),K("YYYY",function(t,i){i[Fn]=2===t.length?e.parseTwoDigitYear(t):g(t)}),K("YY",function(t,i){i[Fn]=e.parseTwoDigitYear(t)}),K("Y",function(t,e){e[Fn]=parseInt(t,10)}),e.parseTwoDigitYear=function(t){return g(t)+(g(t)>68?1900:2e3)};var or=N("FullYear",!0);e.ISO_8601=function(){};var ar=w("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:c()}),hr=w("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:c()}),lr=function(){return Date.now?Date.now():+new Date};Ut("Z",":"),Ut("ZZ",""),q("Z",Rn),q("ZZ",Rn),K(["Z","ZZ"],function(t,e,i){i._useUTC=!0,i._tzm=Ht(Rn,t)});var ur=/([\+\-]|\d\d)/gi;e.updateOffset=function(){};var dr=/^(\-)?(?:(\d*)[. ])?(\d+)\:(\d+)(?:\:(\d+)\.?(\d{3})?\d*)?$/,cr=/^(-)?P(?:(-?[0-9,.]*)Y)?(?:(-?[0-9,.]*)M)?(?:(-?[0-9,.]*)W)?(?:(-?[0-9,.]*)D)?(?:T(?:(-?[0-9,.]*)H)?(?:(-?[0-9,.]*)M)?(?:(-?[0-9,.]*)S)?)?$/;re.fn=Vt.prototype;var fr=le(1,"add"),pr=le(-1,"subtract");e.defaultFormat="YYYY-MM-DDTHH:mm:ssZ",e.defaultFormatUtc="YYYY-MM-DDTHH:mm:ss[Z]";var mr=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)});H(0,["gg",2],0,function(){return this.weekYear()%100}),H(0,["GG",2],0,function(){return this.isoWeekYear()%100}),Be("gggg","weekYear"),Be("ggggg","weekYear"),Be("GGGG","isoWeekYear"),Be("GGGGG","isoWeekYear"),I("weekYear","gg"),I("isoWeekYear","GG"),q("G",Yn),q("g",Yn),q("GG",Dn,bn),q("gg",Dn,bn),q("GGGG",Pn,Sn),q("gggg",Pn,Sn),q("GGGGG",En,Tn),q("ggggg",En,Tn),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"),I("quarter","Q"),q("Q",wn),K("Q",function(t,e){e[Vn]=3*(g(t)-1)}),H("w",["ww",2],"wo","week"),H("W",["WW",2],"Wo","isoWeek"),I("week","w"),I("isoWeek","W"),q("w",Dn),q("ww",Dn,bn),q("W",Dn),q("WW",Dn,bn),tt(["w","ww","W","WW"],function(t,e,i,n){e[n.substr(0,1)]=g(t)});var vr={dow:0,doy:6};H("D",["DD",2],"Do","date"),I("date","D"),q("D",Dn),q("DD",Dn,bn),q("Do",function(t,e){return t?e._ordinalParse:e._ordinalParseLenient}),K(["D","DD"],Bn),K("Do",function(t,e){e[Bn]=g(t.match(Dn)[0],10)});var yr=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"),I("day","d"),I("weekday","e"),I("isoWeekday","E"),q("d",Dn),q("e",Dn),q("E",Dn),q("dd",function(t,e){return e.weekdaysMinRegex(t)}),q("ddd",function(t,e){return e.weekdaysShortRegex(t)}),q("dddd",function(t,e){return e.weekdaysRegex(t)}),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 gr="Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),_r="Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),xr="Su_Mo_Tu_We_Th_Fr_Sa".split("_"),wr=zn,br=zn,Mr=zn;H("DDD",["DDDD",3],"DDDo","dayOfYear"),I("dayOfYear","DDD"),q("DDD",On),q("DDDD",Mn),K(["DDD","DDDD"],function(t,e,i){i._dayOfYear=g(t)}),H("H",["HH",2],0,"hour"),H("h",["hh",2],0,mi),H("k",["kk",2],0,vi),H("hmm",0,0,function(){return""+mi.apply(this)+U(this.minutes(),2)}),H("hmmss",0,0,function(){return""+mi.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)}),yi("a",!0),yi("A",!1),I("hour","h"),q("a",gi),q("A",gi),q("H",Dn),q("h",Dn),q("HH",Dn,bn),q("hh",Dn,bn),q("hmm",kn),q("hmmss",Cn),q("Hmm",kn),q("Hmmss",Cn),K(["H","HH"],Un),K(["a","A"],function(t,e,i){i._isPm=i._locale.isPM(t),i._meridiem=t}),K(["h","hh"],function(t,e,i){e[Un]=g(t),u(i).bigHour=!0}),K("hmm",function(t,e,i){var n=t.length-2;e[Un]=g(t.substr(0,n)),e[Hn]=g(t.substr(n)),u(i).bigHour=!0}),K("hmmss",function(t,e,i){var n=t.length-4,r=t.length-2;e[Un]=g(t.substr(0,n)),e[Hn]=g(t.substr(n,2)),e[jn]=g(t.substr(r)),u(i).bigHour=!0}),K("Hmm",function(t,e,i){var n=t.length-2;e[Un]=g(t.substr(0,n)),e[Hn]=g(t.substr(n))}),K("Hmmss",function(t,e,i){var n=t.length-4,r=t.length-2;e[Un]=g(t.substr(0,n)),e[Hn]=g(t.substr(n,2)),e[jn]=g(t.substr(r))});var Sr=/[ap]\.?m?\.?/i,Tr=N("Hours",!0);H("m",["mm",2],0,"minute"),I("minute","m"),q("m",Dn),q("mm",Dn,bn),K(["m","mm"],Hn);var Dr=N("Minutes",!1);H("s",["ss",2],0,"second"),I("second","s"),q("s",Dn),q("ss",Dn,bn),K(["s","ss"],jn);var kr=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()}),I("millisecond","ms"),q("S",On,wn),q("SS",On,bn),q("SSS",On,Mn);var Cr;for(Cr="SSSS";Cr.length<=9;Cr+="S")q(Cr,Ln);for(Cr="S";Cr.length<=9;Cr+="S")K(Cr,wi);var Or=N("Milliseconds",!1);H("z",0,0,"zoneAbbr"),H("zz",0,0,"zoneName");var Pr=m.prototype;Pr.add=fr,Pr.calendar=de,Pr.clone=ce,Pr.diff=_e,Pr.endOf=Ee,Pr.format=Me,Pr.from=Se,Pr.fromNow=Te,Pr.to=De,Pr.toNow=ke,Pr.get=B,Pr.invalidAt=Fe,Pr.isAfter=fe,Pr.isBefore=pe,Pr.isBetween=me,Pr.isSame=ve,Pr.isSameOrAfter=ye,Pr.isSameOrBefore=ge,Pr.isValid=We,Pr.lang=mr,Pr.locale=Ce,Pr.localeData=Oe,Pr.max=hr,Pr.min=ar,Pr.parsingFlags=Ne,Pr.set=B,Pr.startOf=Pe,Pr.subtract=pr,Pr.toArray=Re,Pr.toObject=Ie,Pr.toDate=Ae,Pr.toISOString=be,Pr.toJSON=ze,Pr.toString=we,Pr.unix=Ye,Pr.valueOf=Le,Pr.creationData=Ve,Pr.year=or,Pr.isLeapYear=xt,Pr.weekYear=Ue,Pr.isoWeekYear=He,Pr.quarter=Pr.quarters=qe,Pr.month=ht,Pr.daysInMonth=lt,Pr.week=Pr.weeks=Ke,Pr.isoWeek=Pr.isoWeeks=ti,Pr.weeksInYear=Ge,Pr.isoWeeksInYear=je,Pr.date=yr,Pr.day=Pr.days=ai,Pr.weekday=hi,Pr.isoWeekday=li,Pr.dayOfYear=pi,Pr.hour=Pr.hours=Tr,Pr.minute=Pr.minutes=Dr,Pr.second=Pr.seconds=kr,Pr.millisecond=Pr.milliseconds=Or,Pr.utcOffset=Xt,Pr.utc=qt,Pr.local=Qt,Pr.parseZone=$t,Pr.hasAlignedHourOffset=Jt,Pr.isDST=Kt,Pr.isDSTShifted=te,Pr.isLocal=ee,Pr.isUtcOffset=ie,Pr.isUtc=ne,Pr.isUTC=ne,Pr.zoneAbbr=bi,Pr.zoneName=Mi,Pr.dates=w("dates accessor is deprecated. Use date instead.",yr),Pr.months=w("months accessor is deprecated. Use month instead",ht),Pr.years=w("years accessor is deprecated. Use year instead",or),Pr.zone=w("moment().zone is deprecated, use moment().utcOffset instead. https://github.com/moment/moment/issues/1779",Zt);var Er=Pr,Lr={sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},Yr={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"},Ar="Invalid date",Rr="%d",Ir=/\d{1,2}/,zr={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"},Wr=k.prototype;Wr._calendar=Lr,Wr.calendar=Di,Wr._longDateFormat=Yr,Wr.longDateFormat=ki,Wr._invalidDate=Ar,Wr.invalidDate=Ci,Wr._ordinal=Rr,Wr.ordinal=Oi,Wr._ordinalParse=Ir,Wr.preparse=Pi,Wr.postformat=Pi,Wr._relativeTime=zr,Wr.relativeTime=Ei,Wr.pastFuture=Li,Wr.set=T,Wr.months=nt,Wr._months=Qn,Wr.monthsShort=rt,Wr._monthsShort=$n,Wr.monthsParse=ot,Wr._monthsRegex=Kn,Wr.monthsRegex=dt,Wr._monthsShortRegex=Jn,Wr.monthsShortRegex=ut,Wr.week=Qe,Wr._week=vr,Wr.firstDayOfYear=Je,Wr.firstDayOfWeek=$e,Wr.weekdays=ii,Wr._weekdays=gr,Wr.weekdaysMin=ri,Wr._weekdaysMin=xr,Wr.weekdaysShort=ni,Wr._weekdaysShort=_r,Wr.weekdaysParse=oi,Wr._weekdaysRegex=wr,Wr.weekdaysRegex=ui,Wr._weekdaysShortRegex=br,Wr.weekdaysShortRegex=di,Wr._weekdaysMinRegex=Mr,Wr.weekdaysMinRegex=ci,Wr.isPM=_i,Wr._meridiemParse=Sr,Wr.meridiem=xi,E("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=w("moment.lang is deprecated. Use moment.locale instead.",E),e.langData=w("moment.langData is deprecated. Use moment.localeData instead.",A);var Nr=Math.abs,Fr=$i("ms"),Vr=$i("s"),Br=$i("m"),Ur=$i("h"),Hr=$i("d"),jr=$i("w"),Gr=$i("M"),Xr=$i("y"),Zr=Ki("milliseconds"),qr=Ki("seconds"),Qr=Ki("minutes"),$r=Ki("hours"),Jr=Ki("days"),Kr=Ki("months"),ts=Ki("years"),es=Math.round,is={s:45,m:45,h:22,d:26,M:11},ns=Math.abs,rs=Vt.prototype;rs.abs=Vi,rs.add=Ui,rs.subtract=Hi,rs.as=qi,rs.asMilliseconds=Fr,rs.asSeconds=Vr,rs.asMinutes=Br,rs.asHours=Ur,rs.asDays=Hr,rs.asWeeks=jr,rs.asMonths=Gr,rs.asYears=Xr,rs.valueOf=Qi,rs._bubble=Gi,rs.get=Ji,rs.milliseconds=Zr,rs.seconds=qr,rs.minutes=Qr,rs.hours=$r,rs.days=Jr,rs.weeks=tn,rs.months=Kr,rs.years=ts,rs.humanize=sn,rs.toISOString=on,rs.toString=on,rs.toJSON=on,rs.locale=Ce,rs.localeData=Oe,rs.toIsoString=w("toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)",on),rs.lang=mr,H("X",0,0,"unix"),H("x",0,0,"valueOf"),q("x",Yn),q("X",In),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.13.0",i(zt),e.fn=Er,e.min=Nt,e.max=Ft,e.now=lr,e.utc=h,e.unix=Si,e.months=Ii,e.isDate=r,e.locale=E,e.invalid=c,e.duration=re,e.isMoment=v,e.weekdays=Wi,e.parseZone=Ti,e.localeData=A,e.isDuration=Bt,e.monthsShort=zi,e.weekdaysMin=Fi,e.defineLocale=L,e.updateLocale=Y,e.locales=R,e.weekdaysShort=Ni,e.normalizeUnits=z,e.relativeTimeThreshold=rn,e.prototype=Er;var ss=e;return ss})}).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++]=d[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 d=a/4294967296*1e4&268435455;s[r++]=d>>>8&255,s[r++]=255&d,s[r++]=d>>>24&15|16,s[r++]=d>>>16&255,s[r++]=o>>>8|128,s[r++]=255&o;for(var c=t.node||p,f=0;6>f;f++)s[r+f]=c[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=[],d={},c=0;256>c;c++)u[c]=(c+256).toString(16).substr(1),d[u[c]]=c;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,d=t.length;d>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 c={items:n,oldData:r,data:o};this._trigger("update",c,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,d,c,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(c=0,f=i.length;f>c;c++)l=r._getItem(i[c],p),m&&!m(l)||v.push(l);else for(u=Object.keys(this._data),c=0,f=u.length;f>c;c++)d=u[c],l=r._getItem(d,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(c=0,f=v.length;f>c;c++)v[c]=this._filterFields(v[c],y)}if("Object"==a){var g,_={};for(c=0,f=v.length;f>c;c++)g=v[c],_[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),d=[];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++)d.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)&&d.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++)d.push(s[e][this._fieldId])}else for(e=0,i=u.length;i>e;e++)n=u[e],r=o[n],d.push(r[this._fieldId]);return d},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],d=r[u],c=d[t],f=!1;for(i=0;l>i;i++)if(a[i]==c){f=!0;break}f||void 0===c||(a[l]=c,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=[],d=[],c=[];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]?(d.push(s),l.push(e.data[n])):(this._ids[s]=!0,u.push(s)):this._ids[s]&&(delete this._ids[s],c.push(s));break;case"remove":for(n=0,r=a.length;r>n;n++)s=a[n],this._ids[s]&&(delete this._ids[s],c.push(s))}this.length+=u.length-c.length,u.length&&this._trigger("add",{items:u},i),d.length&&this._trigger("update",{items:d,data:l},i),c.length&&this._trigger("remove",{items:c},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 d(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),d=i(13),c=i(14),f=i(15),p=i(16),m=i(17),v=i(18);a(n.prototype),n.prototype._setScale=function(){this.scale=new d(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-c)/(f-c),m=240*p,y=this._hsv2rgb(m,1,1);d.strokeStyle=y,d.beginPath(),d.moveTo(h,o+t),d.lineTo(a,o+t),d.stroke()}d.strokeStyle=this.axisColor,d.strokeRect(h,o,i,s)}if(this.style===n.STYLE.DOTSIZE&&(d.strokeStyle=this.axisColor,d.fillStyle=this.dataColor.fill,d.beginPath(),d.moveTo(h,o),d.lineTo(a,o),d.lineTo(a-i+e,l),d.lineTo(h,l),d.closePath(),d.fill(),d.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 d(w,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 d(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 d(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 d(s,o,this.zMin)),e=this._convert3Dto2D(new d(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,c=this._convert3Dto2D(new d(this.xMin,this.yMin,this.zMin)),f=this._convert3Dto2D(new d(this.xMax,this.yMin,this.zMin)),m.strokeStyle=this.axisColor,m.beginPath(),m.moveTo(c.x,c.y),m.lineTo(f.x,f.y),m.stroke(),c=this._convert3Dto2D(new d(this.xMin,this.yMax,this.zMin)),f=this._convert3Dto2D(new d(this.xMax,this.yMax,this.zMin)),m.strokeStyle=this.axisColor,m.beginPath(),m.moveTo(c.x,c.y),m.lineTo(f.x,f.y),m.stroke(),m.lineWidth=1,t=this._convert3Dto2D(new d(this.xMin,this.yMin,this.zMin)),e=this._convert3Dto2D(new d(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 d(this.xMax,this.yMin,this.zMin)),e=this._convert3Dto2D(new d(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 b=this.xLabel;b.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 d(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(b,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 d(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 d(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,c,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?(c=Math.min(1+b.x/M/2,1),a=this._hsv2rgb(l,u,c),h=a):(c=1,a=this._hsv2rgb(l,u,c),h=this.axisColor)):(a="gray",h=this.axisColor),m.lineWidth=this._getStrokeWidth(t),m.fillStyle=a,m.strokeStyle=h,m.beginPath(),m.moveTo(t.screen.x,t.screen.y),m.lineTo(e.screen.x,e.screen.y),m.lineTo(r.screen.x,r.screen.y),m.lineTo(i.screen.x,i.screen.y),m.closePath(),m.fill(),m.stroke()}}else for(s=0;sc&&(c=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,c,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 c(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 d=l[u],f=d.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 +"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(21),e.keycharm=i(24)},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&&t!==Symbol.prototype?"symbol":typeof t},r=i(2),o=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=s.exec(t);if(i)return!0;if(!isNaN(Date.parse(t)))return!0}return!1},e.randomUUID=function(){return o.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]&&arguments[2];for(var o in t)void 0!==i[o]&&("object"!==n(i[o])?void 0!==i[o]&&null!==i[o]||void 0===t[o]||r!==!0?t[o]=i[o]:delete t[o]:"object"===n(t[o])&&e.fillIfDefined(t[o],i[o],r))},e.protoExtend=function(t,e){for(var i=1;i3&&void 0!==arguments[3]&&arguments[3];if(Array.isArray(n))throw new TypeError("Arrays are not supported by deepExtend");for(var o=2;o3&&void 0!==arguments[3]&&arguments[3];if(Array.isArray(n))throw new TypeError("Arrays are not supported by deepExtend");for(var o in n)if(n.hasOwnProperty(o)&&t.indexOf(o)==-1)if(n[o]&&n[o].constructor===Object)void 0===i[o]&&(i[o]={}),i[o].constructor===Object?e.deepExtend(i[o],n[o]):null===n[o]&&void 0!==i[o]&&r===!0?delete i[o]:i[o]=n[o];else if(Array.isArray(n[o])){i[o]=[];for(var s=0;s=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(t.indexOf("rgba")!=-1)return t;if(t.indexOf("rgb")!=-1){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),o={h:r.h,s:.8*r.s,v:Math.min(1,1.02*r.v)},s={h:r.h,s:Math.min(1,1.25*r.s),v:.8*r.v},a=e.HSVToHex(s.h,s.s,s.v),h=e.HSVToHex(o.h,o.s,o.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 o=t==n?e-i:i==n?t-e:i-t,s=t==n?3:i==n?1:5,a=60*(s-o/(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),o=e.extend(n,r);t.style.cssText=a.join(o)},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,o,s=Math.floor(6*t),a=6*t-s,h=i*(1-e),l=i*(1-a*e),u=i*(1-(1-a)*e);switch(s%6){case 0:n=i,r=u,o=h;break;case 1:n=l,r=i,o=h;break;case 2:n=h,r=i,o=u;break;case 3:n=h,r=l,o=i;break;case 4:n=u,r=h,o=i;break;case 5:n=i,r=h,o=l}return{r:Math.floor(255*n),g:Math.floor(255*r),b:Math.floor(255*o)}},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),o=0;o0&&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]&&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,o=0,s=0,a=t.length-1;s<=a&&o0)return"before"==n?Math.max(0,h-1):h;if(r(s,e)<0&&r(a,e)>0)return"before"==n?h:Math.min(t.length-1,h+1);r(s,e)<0?d=h+1:c=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 t<.5?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 t<.5?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 t<.5?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 t<.5?16*t*t*t*t*t:1+16*--t*t*t*t*t}},e.getScrollBarWidth=function(){var t=document.createElement("p");t.style.width="100%",t.style.height="200px";var e=document.createElement("div");e.style.position="absolute",e.style.top="0px",e.style.left="0px",e.style.visibility="hidden",e.style.width="200px",e.style.height="150px",e.style.overflow="hidden",e.appendChild(t),document.body.appendChild(e);var i=t.offsetWidth;e.style.overflow="scroll";var n=t.offsetWidth;return i==n&&(n=e.clientWidth),document.body.removeChild(e),i-n}},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 pn.apply(null,arguments)}function i(t){pn=t}function n(t){return t instanceof Array||"[object Array]"===Object.prototype.toString.call(t)}function r(t){return null!=t&&"[object Object]"===Object.prototype.toString.call(t)}function o(t){var e;for(e in t)return!1;return!0}function s(t){return t instanceof Date||"[object Date]"===Object.prototype.toString.call(t)}function a(t,e){var i,n=[];for(i=0;i0)for(i in vn)n=vn[i],r=e[n],m(r)||(t[n]=r);return t}function y(t){v(this,t),this._d=new Date(null!=t._d?t._d.getTime():NaN),yn===!1&&(yn=!0,e.updateOffset(this),yn=!1)}function g(t){return t instanceof y||null!=t&&null!=t._isAMomentObject}function _(t){return t<0?Math.ceil(t)||0:Math.floor(t)}function w(t){var e=+t,i=0;return 0!==e&&isFinite(e)&&(i=_(e)),i}function x(t,e,i){var n,r=Math.min(t.length,e.length),o=Math.abs(t.length-e.length),s=0;for(n=0;n0?"future":"past"];return D(i)?i(e):i.replace(/%s/i,e)}function A(t,e){var i=t.toLowerCase();Mn[i]=Mn[i+"s"]=Mn[e]=t}function I(t){return"string"==typeof t?Mn[t]||Mn[t.toLowerCase()]:void 0}function W(t){var e,i,n={};for(i in t)h(t,i)&&(e=I(i),e&&(n[e]=t[i]));return n}function z(t,e){Cn[t]=e}function N(t){var e=[];for(var i in t)e.push({unit:i,priority:Cn[i]});return e.sort(function(t,e){return t.priority-e.priority}),e}function F(t,i){return function(n){return null!=n?(j(this,t,n),e.updateOffset(this,i),this):G(this,t)}}function G(t,e){return t.isValid()?t._d["get"+(t._isUTC?"UTC":"")+e]():NaN}function j(t,e,i){t.isValid()&&t._d["set"+(t._isUTC?"UTC":"")+e](i)}function V(t){return t=I(t),D(this[t])?this[t]():this}function B(t,e){if("object"==typeof t){t=W(t);for(var i=N(t),n=0;n=0;return(o?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 X(t){return t.match(/\[[\s\S]/)?t.replace(/^\[|\]$/g,""):t.replace(/\\/g,"")}function Z(t){var e,i,n=t.match(En);for(e=0,i=n.length;e=0&&On.test(t);)t=t.replace(On,i),On.lastIndex=0,n-=1;return t}function $(t,e,i){Qn[t]=D(e)?e:function(t,n){return t&&i?i:e}}function J(t,e){return h(Qn,t)?Qn[t](e._strict,e._locale):new RegExp(K(t))}function K(t){return tt(t.replace("\\","").replace(/\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g,function(t,e,i,n,r){return e||i||n||r}))}function tt(t){return t.replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&")}function et(t,e){var i,n=e;for("string"==typeof t&&(t=[t]),"number"==typeof e&&(n=function(t,i){i[e]=w(t)}),i=0;i=0&&isFinite(a.getFullYear())&&a.setFullYear(t),a}function _t(t){var e=new Date(Date.UTC.apply(null,arguments));return t<100&&t>=0&&isFinite(e.getUTCFullYear())&&e.setUTCFullYear(t),e}function wt(t,e,i){var n=7+e-i,r=(7+_t(t,0,n).getUTCDay()-e)%7;return-r+n-1}function xt(t,e,i,n,r){var o,s,a=(7+i-n)%7,h=wt(t,n,r),l=1+7*(e-1)+a+h;return l<=0?(o=t-1,s=mt(o)+l):l>mt(t)?(o=t+1,s=l-mt(t)):(o=t,s=l),{year:o,dayOfYear:s}}function bt(t,e,i){var n,r,o=wt(t.year(),e,i),s=Math.floor((t.dayOfYear()-o-1)/7)+1;return s<1?(r=t.year()-1,n=s+St(r,e,i)):s>St(t.year(),e,i)?(n=s-St(t.year(),e,i),r=t.year()+1):(r=t.year(),n=s),{week:n,year:r}}function St(t,e,i){var n=wt(t,e,i),r=wt(t+1,e,i);return(mt(t)-n+r)/7}function Tt(t){return bt(t,this._week.dow,this._week.doy).week}function Dt(){return this._week.dow}function kt(){return this._week.doy}function Mt(t){var e=this.localeData().week(this);return null==t?e:this.add(7*(t-e),"d")}function Ct(t){var e=bt(this,1,4).week;return null==t?e:this.add(7*(t-e),"d")}function Et(t,e){return"string"!=typeof t?t:isNaN(t)?(t=e.weekdaysParse(t),"number"==typeof t?t:null):parseInt(t,10)}function Ot(t,e){return"string"==typeof t?e.weekdaysParse(t)%7||7:isNaN(t)?null:t}function Pt(t,e){return t?n(this._weekdays)?this._weekdays[t.day()]:this._weekdays[this._weekdays.isFormat.test(e)?"format":"standalone"][t.day()]:this._weekdays}function Lt(t){return t?this._weekdaysShort[t.day()]:this._weekdaysShort}function Rt(t){return t?this._weekdaysMin[t.day()]:this._weekdaysMin}function Yt(t,e,i){var n,r,o,s=t.toLocaleLowerCase();if(!this._weekdaysParse)for(this._weekdaysParse=[],this._shortWeekdaysParse=[],this._minWeekdaysParse=[],n=0;n<7;++n)o=u([2e3,1]).day(n),this._minWeekdaysParse[n]=this.weekdaysMin(o,"").toLocaleLowerCase(),this._shortWeekdaysParse[n]=this.weekdaysShort(o,"").toLocaleLowerCase(),this._weekdaysParse[n]=this.weekdays(o,"").toLocaleLowerCase();return i?"dddd"===e?(r=wn.call(this._weekdaysParse,s),r!==-1?r:null):"ddd"===e?(r=wn.call(this._shortWeekdaysParse,s),r!==-1?r:null):(r=wn.call(this._minWeekdaysParse,s),r!==-1?r:null):"dddd"===e?(r=wn.call(this._weekdaysParse,s),r!==-1?r:(r=wn.call(this._shortWeekdaysParse,s),r!==-1?r:(r=wn.call(this._minWeekdaysParse,s),r!==-1?r:null))):"ddd"===e?(r=wn.call(this._shortWeekdaysParse,s),r!==-1?r:(r=wn.call(this._weekdaysParse,s),r!==-1?r:(r=wn.call(this._minWeekdaysParse,s),r!==-1?r:null))):(r=wn.call(this._minWeekdaysParse,s),r!==-1?r:(r=wn.call(this._weekdaysParse,s),r!==-1?r:(r=wn.call(this._shortWeekdaysParse,s),r!==-1?r:null)))}function At(t,e,i){var n,r,o;if(this._weekdaysParseExact)return Yt.call(this,t,e,i);for(this._weekdaysParse||(this._weekdaysParse=[],this._minWeekdaysParse=[],this._shortWeekdaysParse=[],this._fullWeekdaysParse=[]),n=0;n<7;n++){if(r=u([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]||(o="^"+this.weekdays(r,"")+"|^"+this.weekdaysShort(r,"")+"|^"+this.weekdaysMin(r,""),this._weekdaysParse[n]=new RegExp(o.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 It(t){if(!this.isValid())return null!=t?this:NaN;var e=this._isUTC?this._d.getUTCDay():this._d.getDay();return null!=t?(t=Et(t,this.localeData()),this.add(t-e,"d")):e}function Wt(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 zt(t){if(!this.isValid())return null!=t?this:NaN;if(null!=t){var e=Ot(t,this.localeData());return this.day(this.day()%7?e:e-7)}return this.day()||7}function Nt(t){return this._weekdaysParseExact?(h(this,"_weekdaysRegex")||jt.call(this),t?this._weekdaysStrictRegex:this._weekdaysRegex):(h(this,"_weekdaysRegex")||(this._weekdaysRegex=yr),this._weekdaysStrictRegex&&t?this._weekdaysStrictRegex:this._weekdaysRegex)}function Ft(t){return this._weekdaysParseExact?(h(this,"_weekdaysRegex")||jt.call(this),t?this._weekdaysShortStrictRegex:this._weekdaysShortRegex):(h(this,"_weekdaysShortRegex")||(this._weekdaysShortRegex=gr),this._weekdaysShortStrictRegex&&t?this._weekdaysShortStrictRegex:this._weekdaysShortRegex)}function Gt(t){return this._weekdaysParseExact?(h(this,"_weekdaysRegex")||jt.call(this),t?this._weekdaysMinStrictRegex:this._weekdaysMinRegex):(h(this,"_weekdaysMinRegex")||(this._weekdaysMinRegex=_r),this._weekdaysMinStrictRegex&&t?this._weekdaysMinStrictRegex:this._weekdaysMinRegex)}function jt(){function t(t,e){return e.length-t.length}var e,i,n,r,o,s=[],a=[],h=[],l=[];for(e=0;e<7;e++)i=u([2e3,1]).day(e),n=this.weekdaysMin(i,""),r=this.weekdaysShort(i,""),o=this.weekdays(i,""),s.push(n),a.push(r),h.push(o),l.push(n),l.push(r),l.push(o);for(s.sort(t),a.sort(t),h.sort(t),l.sort(t),e=0;e<7;e++)a[e]=tt(a[e]),h[e]=tt(h[e]),l[e]=tt(l[e]);this._weekdaysRegex=new RegExp("^("+l.join("|")+")","i"),this._weekdaysShortRegex=this._weekdaysRegex,this._weekdaysMinRegex=this._weekdaysRegex,this._weekdaysStrictRegex=new RegExp("^("+h.join("|")+")","i"),this._weekdaysShortStrictRegex=new RegExp("^("+a.join("|")+")","i"),this._weekdaysMinStrictRegex=new RegExp("^("+s.join("|")+")","i")}function Vt(){return this.hours()%12||12}function Bt(){return this.hours()||24}function Ut(t,e){H(t,0,0,function(){return this.localeData().meridiem(this.hours(),this.minutes(),e)})}function Ht(t,e){return e._meridiemParse}function Xt(t){return"p"===(t+"").toLowerCase().charAt(0)}function Zt(t,e,i){return t>11?i?"pm":"PM":i?"am":"AM"}function qt(t){return t?t.toLowerCase().replace("_","-"):t}function Qt(t){for(var e,i,n,r,o=0;o0;){if(n=$t(r.slice(0,e).join("-")))return n;if(i&&i.length>=e&&x(r,i,!0)>=e-1)break;e--}o++}return null}function $t(e){var i=null;if(!Tr[e]&&"undefined"!=typeof t&&t&&t.exports)try{i=wr._abbr,!function(){var t=new Error('Cannot find module "./locale"');throw t.code="MODULE_NOT_FOUND",t}(),Jt(i)}catch(t){}return Tr[e]}function Jt(t,e){var i;return t&&(i=m(e)?ee(t):Kt(t,e),i&&(wr=i)),wr._abbr}function Kt(t,e){if(null!==e){var i=Sr;return e.abbr=t,null!=Tr[t]?(T("defineLocaleOverride","use moment.updateLocale(localeName, config) to change an existing locale. moment.defineLocale(localeName, config) should only be used for creating a new locale See http://momentjs.com/guides/#/warnings/define-locale/ for more info."),i=Tr[t]._config):null!=e.parentLocale&&(null!=Tr[e.parentLocale]?i=Tr[e.parentLocale]._config:T("parentLocaleUndefined","specified parentLocale is not defined yet. See http://momentjs.com/guides/#/warnings/parent-locale/")),Tr[t]=new C(M(i,e)),Jt(t),Tr[t]}return delete Tr[t],null}function te(t,e){if(null!=e){var i,n=Sr;null!=Tr[t]&&(n=Tr[t]._config),e=M(n,e),i=new C(e),i.parentLocale=Tr[t],Tr[t]=i,Jt(t)}else null!=Tr[t]&&(null!=Tr[t].parentLocale?Tr[t]=Tr[t].parentLocale:null!=Tr[t]&&delete Tr[t]);return Tr[t]}function ee(t){var e;if(t&&t._locale&&t._locale._abbr&&(t=t._locale._abbr),!t)return wr;if(!n(t)){if(e=$t(t))return e;t=[t]}return Qt(t)}function ie(){return _n(Tr)}function ne(t){var e,i=t._a;return i&&c(t).overflow===-2&&(e=i[Kn]<0||i[Kn]>11?Kn:i[tr]<1||i[tr]>rt(i[Jn],i[Kn])?tr:i[er]<0||i[er]>24||24===i[er]&&(0!==i[ir]||0!==i[nr]||0!==i[rr])?er:i[ir]<0||i[ir]>59?ir:i[nr]<0||i[nr]>59?nr:i[rr]<0||i[rr]>999?rr:-1,c(t)._overflowDayOfYear&&(etr)&&(e=tr),c(t)._overflowWeeks&&e===-1&&(e=or), +c(t)._overflowWeekday&&e===-1&&(e=sr),c(t).overflow=e),t}function re(t){var e,i,n,r,o,s,a=t._i,h=Dr.exec(a)||kr.exec(a);if(h){for(c(t).iso=!0,e=0,i=Cr.length;emt(r)&&(c(t)._overflowDayOfYear=!0),i=_t(r,0,t._dayOfYear),t._a[Kn]=i.getUTCMonth(),t._a[tr]=i.getUTCDate()),e=0;e<3&&null==t._a[e];++e)t._a[e]=o[e]=n[e];for(;e<7;e++)t._a[e]=o[e]=null==t._a[e]?2===e?1:0:t._a[e];24===t._a[er]&&0===t._a[ir]&&0===t._a[nr]&&0===t._a[rr]&&(t._nextDay=!0,t._a[er]=0),t._d=(t._useUTC?_t:gt).apply(null,o),null!=t._tzm&&t._d.setUTCMinutes(t._d.getUTCMinutes()-t._tzm),t._nextDay&&(t._a[er]=24)}}function le(t){var e,i,n,r,o,s,a,h;e=t._w,null!=e.GG||null!=e.W||null!=e.E?(o=1,s=4,i=se(e.GG,t._a[Jn],bt(ge(),1,4).year),n=se(e.W,1),r=se(e.E,1),(r<1||r>7)&&(h=!0)):(o=t._locale._week.dow,s=t._locale._week.doy,i=se(e.gg,t._a[Jn],bt(ge(),o,s).year),n=se(e.w,1),null!=e.d?(r=e.d,(r<0||r>6)&&(h=!0)):null!=e.e?(r=e.e+o,(e.e<0||e.e>6)&&(h=!0)):r=o),n<1||n>St(i,o,s)?c(t)._overflowWeeks=!0:null!=h?c(t)._overflowWeekday=!0:(a=xt(i,n,r,o,s),t._a[Jn]=a.year,t._dayOfYear=a.dayOfYear)}function ue(t){if(t._f===e.ISO_8601)return void re(t);t._a=[],c(t).empty=!0;var i,n,r,o,s,a=""+t._i,h=a.length,l=0;for(r=Q(t._f,t._locale).match(En)||[],i=0;i0&&c(t).unusedInput.push(s),a=a.slice(a.indexOf(n)+n.length),l+=n.length),Ln[o]?(n?c(t).empty=!1:c(t).unusedTokens.push(o),nt(o,n,t)):t._strict&&!n&&c(t).unusedTokens.push(o);c(t).charsLeftOver=h-l,a.length>0&&c(t).unusedInput.push(a),t._a[er]<=12&&c(t).bigHour===!0&&t._a[er]>0&&(c(t).bigHour=void 0),c(t).parsedDateParts=t._a.slice(0),c(t).meridiem=t._meridiem,t._a[er]=de(t._locale,t._a[er],t._meridiem),he(t),ne(t)}function de(t,e,i){var n;return null==i?e:null!=t.meridiemHour?t.meridiemHour(e,i):null!=t.isPM?(n=t.isPM(i),n&&e<12&&(e+=12),n||12!==e||(e=0),e):e}function ce(t){var e,i,n,r,o;if(0===t._f.length)return c(t).invalidFormat=!0,void(t._d=new Date(NaN));for(r=0;rthis.clone().month(0).utcOffset()||this.utcOffset()>this.clone().month(5).utcOffset()}function Ie(){if(!m(this._isDSTShifted))return this._isDSTShifted;var t={};if(v(t,this),t=me(t),t._a){var e=t._isUTC?u(t._a):ge(t._a);this._isDSTShifted=this.isValid()&&x(t._a,e.toArray())>0}else this._isDSTShifted=!1;return this._isDSTShifted}function We(){return!!this.isValid()&&!this._isUTC}function ze(){return!!this.isValid()&&this._isUTC}function Ne(){return!!this.isValid()&&(this._isUTC&&0===this._offset)}function Fe(t,e){var i,n,r,o=t,s=null;return Se(t)?o={ms:t._milliseconds,d:t._days,M:t._months}:"number"==typeof t?(o={},e?o[e]=t:o.milliseconds=t):(s=Ar.exec(t))?(i="-"===s[1]?-1:1,o={y:0,d:w(s[tr])*i,h:w(s[er])*i,m:w(s[ir])*i,s:w(s[nr])*i,ms:w(Te(1e3*s[rr]))*i}):(s=Ir.exec(t))?(i="-"===s[1]?-1:1,o={y:Ge(s[2],i),M:Ge(s[3],i),w:Ge(s[4],i),d:Ge(s[5],i),h:Ge(s[6],i),m:Ge(s[7],i),s:Ge(s[8],i)}):null==o?o={}:"object"==typeof o&&("from"in o||"to"in o)&&(r=Ve(ge(o.from),ge(o.to)),o={},o.ms=r.milliseconds,o.M=r.months),n=new be(o),Se(t)&&h(t,"_locale")&&(n._locale=t._locale),n}function Ge(t,e){var i=t&&parseFloat(t.replace(",","."));return(isNaN(i)?0:i)*e}function je(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 Ve(t,e){var i;return t.isValid()&&e.isValid()?(e=Me(e,t),t.isBefore(e)?i=je(t,e):(i=je(e,t),i.milliseconds=-i.milliseconds,i.months=-i.months),i):{milliseconds:0,months:0}}function Be(t,e){return function(i,n){var r,o;return null===n||isNaN(+n)||(T(e,"moment()."+e+"(period, number) is deprecated. Please use moment()."+e+"(number, period). See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info."),o=i,i=n,n=o),i="string"==typeof i?+i:i,r=Fe(i,n),Ue(this,r,t),this}}function Ue(t,i,n,r){var o=i._milliseconds,s=Te(i._days),a=Te(i._months);t.isValid()&&(r=null==r||r,o&&t._d.setTime(t._d.valueOf()+o*n),s&&j(t,"Date",G(t,"Date")+s*n),a&<(t,G(t,"Month")+a*n),r&&e.updateOffset(t,s||a))}function He(t,e){var i=t.diff(e,"days",!0);return i<-6?"sameElse":i<-1?"lastWeek":i<0?"lastDay":i<1?"sameDay":i<2?"nextDay":i<7?"nextWeek":"sameElse"}function Xe(t,i){var n=t||ge(),r=Me(n,this).startOf("day"),o=e.calendarFormat(this,r)||"sameElse",s=i&&(D(i[o])?i[o].call(this,n):i[o]);return this.format(s||this.localeData().calendar(o,this,ge(n)))}function Ze(){return new y(this)}function qe(t,e){var i=g(t)?t:ge(t);return!(!this.isValid()||!i.isValid())&&(e=I(m(e)?"millisecond":e),"millisecond"===e?this.valueOf()>i.valueOf():i.valueOf()o&&(e=o),Oi.call(this,t,e,i,n,r))}function Oi(t,e,i,n,r){var o=xt(t,e,i,n,r),s=_t(o.year,0,o.dayOfYear);return this.year(s.getUTCFullYear()),this.month(s.getUTCMonth()),this.date(s.getUTCDate()),this}function Pi(t){return null==t?Math.ceil((this.month()+1)/3):this.month(3*(t-1)+this.month()%3)}function Li(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 Ri(t,e){e[rr]=w(1e3*("0."+t))}function Yi(){return this._isUTC?"UTC":""}function Ai(){return this._isUTC?"Coordinated Universal Time":""}function Ii(t){return ge(1e3*t)}function Wi(){return ge.apply(null,arguments).parseZone()}function zi(t){return t}function Ni(t,e,i,n){var r=ee(),o=u().set(n,e);return r[i](o,t)}function Fi(t,e,i){if("number"==typeof t&&(e=t,t=void 0),t=t||"",null!=e)return Ni(t,e,i,"month");var n,r=[];for(n=0;n<12;n++)r[n]=Ni(t,n,i,"month");return r}function Gi(t,e,i,n){"boolean"==typeof t?("number"==typeof e&&(i=e,e=void 0),e=e||""):(e=t,i=e,t=!1,"number"==typeof e&&(i=e,e=void 0),e=e||"");var r=ee(),o=t?r._week.dow:0;if(null!=i)return Ni(e,(i+o)%7,n,"day");var s,a=[];for(s=0;s<7;s++)a[s]=Ni(e,(s+o)%7,n,"day");return a}function ji(t,e){return Fi(t,e,"months")}function Vi(t,e){return Fi(t,e,"monthsShort")}function Bi(t,e,i){return Gi(t,e,i,"weekdays")}function Ui(t,e,i){return Gi(t,e,i,"weekdaysShort")}function Hi(t,e,i){return Gi(t,e,i,"weekdaysMin")}function Xi(){var t=this._data;return this._milliseconds=Zr(this._milliseconds),this._days=Zr(this._days),this._months=Zr(this._months),t.milliseconds=Zr(t.milliseconds),t.seconds=Zr(t.seconds),t.minutes=Zr(t.minutes),t.hours=Zr(t.hours),t.months=Zr(t.months),t.years=Zr(t.years),this}function Zi(t,e,i,n){var r=Fe(e,i);return t._milliseconds+=n*r._milliseconds,t._days+=n*r._days,t._months+=n*r._months,t._bubble()}function qi(t,e){return Zi(this,t,e,1)}function Qi(t,e){return Zi(this,t,e,-1)}function $i(t){return t<0?Math.floor(t):Math.ceil(t)}function Ji(){var t,e,i,n,r,o=this._milliseconds,s=this._days,a=this._months,h=this._data;return o>=0&&s>=0&&a>=0||o<=0&&s<=0&&a<=0||(o+=864e5*$i(tn(a)+s),s=0,a=0),h.milliseconds=o%1e3,t=_(o/1e3),h.seconds=t%60,e=_(t/60),h.minutes=e%60,i=_(e/60),h.hours=i%24,s+=_(i/24),r=_(Ki(s)),a+=r,s-=$i(tn(r)),n=_(a/12),a%=12,h.days=s,h.months=a,h.years=n,this}function Ki(t){return 4800*t/146097}function tn(t){return 146097*t/4800}function en(t){var e,i,n=this._milliseconds;if(t=I(t),"month"===t||"year"===t)return e=this._days+n/864e5,i=this._months+Ki(e),"month"===t?i:i/12;switch(e=this._days+Math.round(tn(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 nn(){return this._milliseconds+864e5*this._days+this._months%12*2592e6+31536e6*w(this._months/12)}function rn(t){return function(){return this.as(t)}}function on(t){return t=I(t),this[t+"s"]()}function sn(t){return function(){return this._data[t]}}function an(){return _(this.days()/7)}function hn(t,e,i,n,r){return r.relativeTime(e||1,!!i,t,n)}function ln(t,e,i){var n=Fe(t).abs(),r=uo(n.as("s")),o=uo(n.as("m")),s=uo(n.as("h")),a=uo(n.as("d")),h=uo(n.as("M")),l=uo(n.as("y")),u=r0,u[4]=i,hn.apply(null,u)}function un(t){return void 0===t?uo:"function"==typeof t&&(uo=t,!0)}function dn(t,e){return void 0!==co[t]&&(void 0===e?co[t]:(co[t]=e,!0))}function cn(t){var e=this.localeData(),i=ln(this,!t,e);return t&&(i=e.pastFuture(+this,i)),e.postformat(i)}function fn(){var t,e,i,n=fo(this._milliseconds)/1e3,r=fo(this._days),o=fo(this._months);t=_(n/60),e=_(t/60),n%=60,t%=60,i=_(o/12),o%=12;var s=i,a=o,h=r,l=e,u=t,d=n,c=this.asSeconds();return c?(c<0?"-":"")+"P"+(s?s+"Y":"")+(a?a+"M":"")+(h?h+"D":"")+(l||u||d?"T":"")+(l?l+"H":"")+(u?u+"M":"")+(d?d+"S":""):"P0D"}var pn,mn;mn=Array.prototype.some?Array.prototype.some:function(t){for(var e=Object(this),i=e.length>>>0,n=0;n68?1900:2e3)};var cr=F("FullYear",!0);H("w",["ww",2],"wo","week"),H("W",["WW",2],"Wo","isoWeek"),A("week","w"),A("isoWeek","W"),z("week",5),z("isoWeek",5),$("w",zn),$("ww",zn,Yn),$("W",zn),$("WW",zn,Yn),it(["w","ww","W","WW"],function(t,e,i,n){e[n.substr(0,1)]=w(t)});var fr={dow:0,doy:6};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"),A("day","d"),A("weekday","e"),A("isoWeekday","E"),z("day",11),z("weekday",11),z("isoWeekday",11),$("d",zn),$("e",zn),$("E",zn),$("dd",function(t,e){return e.weekdaysMinRegex(t)}),$("ddd",function(t,e){return e.weekdaysShortRegex(t)}),$("dddd",function(t,e){return e.weekdaysRegex(t)}),it(["dd","ddd","dddd"],function(t,e,i,n){var r=i._locale.weekdaysParse(t,n,i._strict);null!=r?e.d=r:c(i).invalidWeekday=t}),it(["d","e","E"],function(t,e,i,n){e[n]=w(t)});var pr="Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),mr="Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),vr="Su_Mo_Tu_We_Th_Fr_Sa".split("_"),yr=qn,gr=qn,_r=qn;H("H",["HH",2],0,"hour"),H("h",["hh",2],0,Vt),H("k",["kk",2],0,Bt),H("hmm",0,0,function(){return""+Vt.apply(this)+U(this.minutes(),2)}),H("hmmss",0,0,function(){return""+Vt.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)}),Ut("a",!0),Ut("A",!1),A("hour","h"),z("hour",13),$("a",Ht),$("A",Ht),$("H",zn),$("h",zn),$("HH",zn,Yn),$("hh",zn,Yn),$("hmm",Nn),$("hmmss",Fn),$("Hmm",Nn),$("Hmmss",Fn),et(["H","HH"],er),et(["a","A"],function(t,e,i){i._isPm=i._locale.isPM(t),i._meridiem=t}),et(["h","hh"],function(t,e,i){e[er]=w(t),c(i).bigHour=!0}),et("hmm",function(t,e,i){var n=t.length-2;e[er]=w(t.substr(0,n)),e[ir]=w(t.substr(n)),c(i).bigHour=!0}),et("hmmss",function(t,e,i){var n=t.length-4,r=t.length-2;e[er]=w(t.substr(0,n)),e[ir]=w(t.substr(n,2)),e[nr]=w(t.substr(r)),c(i).bigHour=!0}),et("Hmm",function(t,e,i){var n=t.length-2;e[er]=w(t.substr(0,n)),e[ir]=w(t.substr(n))}),et("Hmmss",function(t,e,i){var n=t.length-4,r=t.length-2;e[er]=w(t.substr(0,n)),e[ir]=w(t.substr(n,2)),e[nr]=w(t.substr(r))});var wr,xr=/[ap]\.?m?\.?/i,br=F("Hours",!0),Sr={calendar:xn,longDateFormat:bn,invalidDate:Sn,ordinal:Tn,ordinalParse:Dn,relativeTime:kn,months:hr,monthsShort:lr,week:fr,weekdays:pr,weekdaysMin:vr,weekdaysShort:mr,meridiemParse:xr},Tr={},Dr=/^\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)?)?/,kr=/^\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)?)?/,Mr=/Z|[+-]\d\d(?::?\d\d)?/,Cr=[["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}/]],Er=[["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/]],Or=/^\/?Date\((\-?\d+)/i;e.createFromInputFallback=S("value provided is not in a recognized ISO format. moment construction falls back to js Date(), which is not reliable across all browsers and versions. Non ISO date formats are discouraged and will be removed in an upcoming major release. Please refer to http://momentjs.com/guides/#/warnings/js-date/ for more info.",function(t){t._d=new Date(t._i+(t._useUTC?" UTC":""))}),e.ISO_8601=function(){};var Pr=S("moment().min is deprecated, use moment.max instead. http://momentjs.com/guides/#/warnings/min-max/",function(){var t=ge.apply(null,arguments);return this.isValid()&&t.isValid()?tthis?this:t:p()}),Rr=function(){return Date.now?Date.now():+new Date};De("Z",":"),De("ZZ",""),$("Z",Xn),$("ZZ",Xn),et(["Z","ZZ"],function(t,e,i){i._useUTC=!0,i._tzm=ke(Xn,t)});var Yr=/([\+\-]|\d\d)/gi;e.updateOffset=function(){};var Ar=/^(\-)?(?:(\d*)[. ])?(\d+)\:(\d+)(?:\:(\d+)(\.\d*)?)?$/,Ir=/^(-)?P(?:(-?[0-9,.]*)Y)?(?:(-?[0-9,.]*)M)?(?:(-?[0-9,.]*)W)?(?:(-?[0-9,.]*)D)?(?:T(?:(-?[0-9,.]*)H)?(?:(-?[0-9,.]*)M)?(?:(-?[0-9,.]*)S)?)?$/;Fe.fn=be.prototype;var Wr=Be(1,"add"),zr=Be(-1,"subtract");e.defaultFormat="YYYY-MM-DDTHH:mm:ssZ",e.defaultFormatUtc="YYYY-MM-DDTHH:mm:ss[Z]";var Nr=S("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}),Ti("gggg","weekYear"),Ti("ggggg","weekYear"),Ti("GGGG","isoWeekYear"),Ti("GGGGG","isoWeekYear"),A("weekYear","gg"),A("isoWeekYear","GG"),z("weekYear",1),z("isoWeekYear",1),$("G",Un),$("g",Un),$("GG",zn,Yn),$("gg",zn,Yn),$("GGGG",jn,In),$("gggg",jn,In),$("GGGGG",Vn,Wn),$("ggggg",Vn,Wn),it(["gggg","ggggg","GGGG","GGGGG"],function(t,e,i,n){e[n.substr(0,2)]=w(t)}),it(["gg","GG"],function(t,i,n,r){i[r]=e.parseTwoDigitYear(t)}),H("Q",0,"Qo","quarter"),A("quarter","Q"),z("quarter",7),$("Q",Rn),et("Q",function(t,e){e[Kn]=3*(w(t)-1)}),H("D",["DD",2],"Do","date"),A("date","D"),z("date",9),$("D",zn),$("DD",zn,Yn),$("Do",function(t,e){return t?e._ordinalParse:e._ordinalParseLenient}),et(["D","DD"],tr),et("Do",function(t,e){e[tr]=w(t.match(zn)[0],10)});var Fr=F("Date",!0);H("DDD",["DDDD",3],"DDDo","dayOfYear"),A("dayOfYear","DDD"),z("dayOfYear",4),$("DDD",Gn),$("DDDD",An),et(["DDD","DDDD"],function(t,e,i){i._dayOfYear=w(t)}),H("m",["mm",2],0,"minute"),A("minute","m"),z("minute",14),$("m",zn),$("mm",zn,Yn),et(["m","mm"],ir);var Gr=F("Minutes",!1);H("s",["ss",2],0,"second"),A("second","s"),z("second",15),$("s",zn),$("ss",zn,Yn),et(["s","ss"],nr);var jr=F("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()}),A("millisecond","ms"),z("millisecond",16),$("S",Gn,Rn),$("SS",Gn,Yn),$("SSS",Gn,An);var Vr;for(Vr="SSSS";Vr.length<=9;Vr+="S")$(Vr,Bn);for(Vr="S";Vr.length<=9;Vr+="S")et(Vr,Ri);var Br=F("Milliseconds",!1);H("z",0,0,"zoneAbbr"),H("zz",0,0,"zoneName");var Ur=y.prototype;Ur.add=Wr,Ur.calendar=Xe,Ur.clone=Ze,Ur.diff=ei,Ur.endOf=fi,Ur.format=oi,Ur.from=si,Ur.fromNow=ai,Ur.to=hi,Ur.toNow=li,Ur.get=V,Ur.invalidAt=bi,Ur.isAfter=qe,Ur.isBefore=Qe,Ur.isBetween=$e,Ur.isSame=Je,Ur.isSameOrAfter=Ke,Ur.isSameOrBefore=ti,Ur.isValid=wi,Ur.lang=Nr,Ur.locale=ui,Ur.localeData=di,Ur.max=Lr,Ur.min=Pr,Ur.parsingFlags=xi,Ur.set=B,Ur.startOf=ci,Ur.subtract=zr,Ur.toArray=yi,Ur.toObject=gi,Ur.toDate=vi,Ur.toISOString=ri,Ur.toJSON=_i,Ur.toString=ni,Ur.unix=mi,Ur.valueOf=pi,Ur.creationData=Si,Ur.year=cr,Ur.isLeapYear=yt,Ur.weekYear=Di,Ur.isoWeekYear=ki,Ur.quarter=Ur.quarters=Pi,Ur.month=ut,Ur.daysInMonth=dt,Ur.week=Ur.weeks=Mt,Ur.isoWeek=Ur.isoWeeks=Ct,Ur.weeksInYear=Ci,Ur.isoWeeksInYear=Mi,Ur.date=Fr,Ur.day=Ur.days=It,Ur.weekday=Wt,Ur.isoWeekday=zt,Ur.dayOfYear=Li,Ur.hour=Ur.hours=br,Ur.minute=Ur.minutes=Gr,Ur.second=Ur.seconds=jr,Ur.millisecond=Ur.milliseconds=Br,Ur.utcOffset=Ee,Ur.utc=Pe,Ur.local=Le,Ur.parseZone=Re,Ur.hasAlignedHourOffset=Ye,Ur.isDST=Ae,Ur.isLocal=We,Ur.isUtcOffset=ze,Ur.isUtc=Ne,Ur.isUTC=Ne,Ur.zoneAbbr=Yi,Ur.zoneName=Ai,Ur.dates=S("dates accessor is deprecated. Use date instead.",Fr),Ur.months=S("months accessor is deprecated. Use month instead",ut),Ur.years=S("years accessor is deprecated. Use year instead",cr),Ur.zone=S("moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/",Oe),Ur.isDSTShifted=S("isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information",Ie);var Hr=Ur,Xr=C.prototype;Xr.calendar=E,Xr.longDateFormat=O,Xr.invalidDate=P,Xr.ordinal=L,Xr.preparse=zi,Xr.postformat=zi,Xr.relativeTime=R,Xr.pastFuture=Y,Xr.set=k,Xr.months=ot,Xr.monthsShort=st,Xr.monthsParse=ht,Xr.monthsRegex=ft,Xr.monthsShortRegex=ct,Xr.week=Tt,Xr.firstDayOfYear=kt,Xr.firstDayOfWeek=Dt,Xr.weekdays=Pt,Xr.weekdaysMin=Rt,Xr.weekdaysShort=Lt,Xr.weekdaysParse=At,Xr.weekdaysRegex=Nt,Xr.weekdaysShortRegex=Ft,Xr.weekdaysMinRegex=Gt,Xr.isPM=Xt,Xr.meridiem=Zt,Jt("en",{ordinalParse:/\d{1,2}(th|st|nd|rd)/,ordinal:function(t){var e=t%10,i=1===w(t%100/10)?"th":1===e?"st":2===e?"nd":3===e?"rd":"th";return t+i}}),e.lang=S("moment.lang is deprecated. Use moment.locale instead.",Jt),e.langData=S("moment.langData is deprecated. Use moment.localeData instead.",ee);var Zr=Math.abs,qr=rn("ms"),Qr=rn("s"),$r=rn("m"),Jr=rn("h"),Kr=rn("d"),to=rn("w"),eo=rn("M"),io=rn("y"),no=sn("milliseconds"),ro=sn("seconds"),oo=sn("minutes"),so=sn("hours"),ao=sn("days"),ho=sn("months"),lo=sn("years"),uo=Math.round,co={s:45,m:45,h:22,d:26,M:11},fo=Math.abs,po=be.prototype;po.abs=Xi,po.add=qi,po.subtract=Qi,po.as=en,po.asMilliseconds=qr,po.asSeconds=Qr,po.asMinutes=$r,po.asHours=Jr,po.asDays=Kr,po.asWeeks=to,po.asMonths=eo,po.asYears=io,po.valueOf=nn,po._bubble=Ji,po.get=on,po.milliseconds=no,po.seconds=ro,po.minutes=oo,po.hours=so,po.days=ao,po.weeks=an,po.months=ho,po.years=lo,po.humanize=cn,po.toISOString=fn,po.toString=fn,po.toJSON=fn,po.locale=ui,po.localeData=di,po.toIsoString=S("toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)",fn),po.lang=Nr,H("X",0,0,"unix"),H("x",0,0,"valueOf"),$("x",Un),$("X",Zn),et("X",function(t,e,i){i._d=new Date(1e3*parseFloat(t,10))}),et("x",function(t,e,i){i._d=new Date(w(t))}),e.version="2.15.2",i(ge),e.fn=Hr,e.min=we,e.max=xe,e.now=Rr,e.utc=u,e.unix=Ii,e.months=ji,e.isDate=s,e.locale=Jt,e.invalid=p,e.duration=Fe,e.isMoment=g,e.weekdays=Bi,e.parseZone=Wi,e.localeData=ee,e.isDuration=Se,e.monthsShort=Vi,e.weekdaysMin=Hi,e.defineLocale=Kt,e.updateLocale=te,e.locales=ie,e.weekdaysShort=Ui,e.normalizeUnits=I,e.relativeTimeRounding=un,e.relativeTimeThreshold=dn,e.calendarFormat=He,e.prototype=Hr;var mo=e;return mo})}).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){r<16&&(e[n+r++]=d[t])});r<16;)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,o=e||[];t=t||{};var s=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(l<0&&void 0===t.clockseq&&(s=s+1&16383),(l<0||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=s,a+=122192928e5;var u=(1e4*(268435455&a)+h)%4294967296;o[r++]=u>>>24&255,o[r++]=u>>>16&255,o[r++]=u>>>8&255,o[r++]=255&u;var d=a/4294967296*1e4&268435455;o[r++]=d>>>8&255,o[r++]=255&d,o[r++]=d>>>24&15|16, +o[r++]=d>>>16&255,o[r++]=s>>>8|128,o[r++]=255&s;for(var c=t.node||p,f=0;f<6;f++)o[r+f]=c[f];return e?e:n(o)}function o(t,e,i){var r=e&&i||0;"string"==typeof t&&(e="binary"==t?new Array(16):null,t=null),t=t||{};var o=t.random||(t.rng||s)();if(o[6]=15&o[6]|64,o[8]=63&o[8]|128,e)for(var a=0;a<16;a++)e[r+a]=o[a];return e||n(o)}var s,a="undefined"!=typeof window?window:"undefined"!=typeof e?e:null;if(a&&a.crypto&&crypto.getRandomValues){var h=new Uint8Array(16);s=function(){return crypto.getRandomValues(h),h}}if(!s){var l=new Array(16);s=function(){for(var t,e=0;e<16;e++)0===(3&e)&&(t=4294967296*Math.random()),l[e]=t>>>((3&e)<<3)&255;return l}}for(var u=[],d={},c=0;c<256;c++)u[c]=(c+256).toString(16).substr(1),d[u[c]]=c;var f=s(),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=o;g.v1=r,g.v4=o,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,o,s){var a;if("circle"==n.style?(a=e.getSVGElement("circle",r,o),a.setAttributeNS(null,"cx",t),a.setAttributeNS(null,"cy",i),a.setAttributeNS(null,"r",.5*n.size)):(a=e.getSVGElement("rect",r,o),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"),s){var h=e.getSVGElement("text",r,o);s.xOffset&&(t+=s.xOffset),s.yOffset&&(i+=s.yOffset),s.content&&(h.textContent=s.content),s.className&&h.setAttributeNS(null,"class",s.className+" vis-label"),h.setAttributeNS(null,"x",t),h.setAttributeNS(null,"y",i)}return a},e.drawBar=function(t,i,n,r,o,s,a,h){if(0!=r){r<0&&(r*=-1,i-=r);var l=e.getSVGElement("rect",s,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",o),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;nr?1:ns)&&(o=h,s=l)}return o},n.prototype.min=function(t){var e,i,n=this._data,r=Object.keys(n),o=null,s=null;for(e=0,i=r.length;ethis.max&&this.flush(),clearTimeout(this._timeout),this.queue.length>0&&"number"==typeof this.delay){var t=this;this._timeout=setTimeout(function(){t.flush()},this.delay)}},i.prototype.flush=function(){for(;this._queue.length>0;){var t=this._queue.shift();t.fn.apply(t.context||t.fn,t.args||[])}},t.exports=i},function(t,e,i){function 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),o=i(8);n.prototype.setData=function(t){var e,i,n,r,o;if(this._data){for(this._data.off&&this._data.off("*",this.listener),e=this._data.getIds({filter:this._options&&this._options.filter}),o=[],n=0,r=e.length;n0&&(h[r-1].pointNext=s),h.push(s);return h},n.prototype.create=function(){for(;this.containerElement.hasChildNodes();)this.containerElement.removeChild(this.containerElement.firstChild);this.frame=document.createElement("div"),this.frame.style.position="relative",this.frame.style.overflow="hidden",this.frame.canvas=document.createElement("canvas"),this.frame.canvas.style.position="relative",this.frame.appendChild(this.frame.canvas);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.frame.filter=document.createElement("div"),this.frame.filter.style.position="absolute",this.frame.filter.style.bottom="0px",this.frame.filter.style.left="0px",this.frame.filter.style.width="100%",this.frame.appendChild(this.frame.filter);var e=this,i=function(t){e._onMouseDown(t)},n=function(t){e._onTouchStart(t)},r=function(t){e._onWheel(t)},o=function(t){e._onTooltip(t)};l.addEventListener(this.frame.canvas,"keydown",onkeydown),l.addEventListener(this.frame.canvas,"mousedown",i),l.addEventListener(this.frame.canvas,"touchstart",n),l.addEventListener(this.frame.canvas,"mousewheel",r),l.addEventListener(this.frame.canvas,"mousemove",o),this.containerElement.appendChild(this.frame)},n.prototype.setSize=function(t,e){this.frame.style.width=t,this.frame.style.height=e,this._resizeCanvas()},n.prototype._resizeCanvas=function(){this.frame.canvas.style.width="100%",this.frame.canvas.style.height="100%",this.frame.canvas.width=this.frame.canvas.clientWidth,this.frame.canvas.height=this.frame.canvas.clientHeight,this.frame.filter.style.width=this.frame.canvas.clientWidth-20+"px"},n.prototype.animationStart=function(){if(!this.frame.filter||!this.frame.filter.slider)throw new Error("No animation available");this.frame.filter.slider.play()},n.prototype.animationStop=function(){this.frame.filter&&this.frame.filter.slider&&this.frame.filter.slider.stop()},n.prototype._resizeCenter=function(){"%"===this.xCenter.charAt(this.xCenter.length-1)?this.currentXCenter=parseFloat(this.xCenter)/100*this.frame.canvas.clientWidth:this.currentXCenter=parseFloat(this.xCenter),"%"===this.yCenter.charAt(this.yCenter.length-1)?this.currentYCenter=parseFloat(this.yCenter)/100*(this.frame.canvas.clientHeight-this.frame.filter.clientHeight):this.currentYCenter=parseFloat(this.yCenter)},n.prototype.getCameraPosition=function(){var t=this.camera.getArmRotation();return t.distance=this.camera.getArmLength(),t},n.prototype._readData=function(t){this._dataInitialize(t,this.style),this.dataFilter?this.dataPoints=this.dataFilter._getDataPoints():this.dataPoints=this._getDataPoints(this.dataTable),this._redrawFilter()},n.prototype.setData=function(t){this._readData(t),this.redraw(),this.animationAutoStart&&this.dataFilter&&this.animationStart()},n.prototype.setOptions=function(t){this.animationStop(),v.setOptions(t,this),this.setPointDrawingMethod(),this.setSize(this.width,this.height),this.dataTable&&this.setData(this.dataTable),this.animationAutoStart&&this.dataFilter&&this.animationStart()},n.prototype.setPointDrawingMethod=function(){var t=void 0;switch(this.style){case n.STYLE.BAR:t=n.prototype._redrawBarGraphPoint;break;case n.STYLE.BARCOLOR:t=n.prototype._redrawBarColorGraphPoint;break;case n.STYLE.BARSIZE:t=n.prototype._redrawBarSizeGraphPoint;break;case n.STYLE.DOT:t=n.prototype._redrawDotGraphPoint;break;case n.STYLE.DOTLINE:t=n.prototype._redrawDotLineGraphPoint;break;case n.STYLE.DOTCOLOR:t=n.prototype._redrawDotColorGraphPoint;break;case n.STYLE.DOTSIZE:t=n.prototype._redrawDotSizeGraphPoint;break;case n.STYLE.SURFACE:t=n.prototype._redrawSurfaceGraphPoint;break;case n.STYLE.GRID:t=n.prototype._redrawGridGraphPoint;break;case n.STYLE.LINE:t=n.prototype._redrawLineGraphPoint;break;default:throw new Error("Can not determine point drawing method for graph style '"+this.style+"'")}this._pointDrawingMethod=t},n.prototype.redraw=function(){if(void 0===this.dataPoints)throw new Error("Graph data not initialized");this._resizeCanvas(),this._resizeCenter(),this._redrawSlider(),this._redrawClear(),this._redrawAxis(),this._redrawDataGraph(),this._redrawInfo(),this._redrawLegend()},n.prototype._getContext=function(){var t=this.frame.canvas,e=t.getContext("2d");return e.lineJoin="round",e.lineCap="round",e},n.prototype._redrawClear=function(){var t=this.frame.canvas,e=t.getContext("2d");e.clearRect(0,0,t.width,t.height)},n.prototype._dotSize=function(){return this.frame.clientWidth*this.dotSizeRatio},n.prototype._getLegendWidth=function(){var t;if(this.style===n.STYLE.DOTSIZE){var e=this._dotSize();t=e/2+2*e}else t=this.style===n.STYLE.BARSIZE?this.xBarWidth:20;return t},n.prototype._redrawLegend=function(){if(this.showLegend===!0&&this.style!==n.STYLE.LINE&&this.style!==n.STYLE.BARSIZE){var t=this.style===n.STYLE.BARSIZE||this.style===n.STYLE.DOTSIZE,e=this.style===n.STYLE.DOTSIZE||this.style===n.STYLE.DOTCOLOR||this.style===n.STYLE.BARCOLOR,i=Math.max(.25*this.frame.clientHeight,100),r=this.margin,o=this._getLegendWidth(),s=this.frame.clientWidth-this.margin,a=s-o,h=r+i,l=this._getContext();if(l.lineWidth=1,l.font="14px arial",t===!1){var u,c=0,f=i;for(u=c;u0?(t.textAlign="center",t.textBaseline="top",o.y+=r):Math.sin(2*n)<0?(t.textAlign="right",t.textBaseline="middle"):(t.textAlign="left",t.textBaseline="middle"),t.fillStyle=this.axisColor,t.fillText(i,o.x,o.y)},n.prototype.drawAxisLabelY=function(t,e,i,n,r){void 0===r&&(r=0);var o=this._convert3Dto2D(e);Math.cos(2*n)<0?(t.textAlign="center",t.textBaseline="top",o.y+=r):Math.sin(2*n)>0?(t.textAlign="right",t.textBaseline="middle"):(t.textAlign="left",t.textBaseline="middle"),t.fillStyle=this.axisColor,t.fillText(i,o.x,o.y)},n.prototype.drawAxisLabelZ=function(t,e,i,n){void 0===n&&(n=0);var r=this._convert3Dto2D(e);t.textAlign="right",t.textBaseline="middle",t.fillStyle=this.axisColor,t.fillText(i,r.x-n,r.y)},n.prototype._line3d=function(t,e,i,n){var r=this._convert3Dto2D(e),o=this._convert3Dto2D(i);this._line(t,r,o,n)},n.prototype._redrawAxis=function(){var t,e,i,n,r,o,s,a,h,l,c,f=this._getContext();f.font=24/this.camera.getArmLength()+"px arial";var m=.025/this.scale.x,v=.025/this.scale.y,y=5/this.camera.getArmLength(),g=this.camera.getArmRotation().horizontal,_=new d(Math.cos(g),Math.sin(g)),w=this.xRange,x=this.yRange,b=this.zRange;for(f.lineWidth=1,n=void 0===this.defaultXStep,i=new p(w.min,w.max,this.xStep,n),i.start(!0);!i.end();){var S=i.getCurrent();this.showGrid?(t=new u(S,x.min,b.min),e=new u(S,x.max,b.min),this._line3d(f,t,e,this.gridColor)):(t=new u(S,x.min,b.min),e=new u(S,x.min+m,b.min),this._line3d(f,t,e,this.axisColor),t=new u(S,x.max,b.min),e=new u(S,x.max-m,b.min),this._line3d(f,t,e,this.axisColor)),s=_.x>0?x.min:x.max;var T=new u(S,s,b.min),D=" "+this.xValueLabel(S)+" ";this.drawAxisLabelX(f,T,D,g,y),i.next()}for(f.lineWidth=1,n=void 0===this.defaultYStep,i=new p(x.min,x.max,this.yStep,n),i.start(!0);!i.end();){var k=i.getCurrent();this.showGrid?(t=new u(w.min,k,b.min),e=new u(w.max,k,b.min),this._line3d(f,t,e,this.gridColor)):(t=new u(w.min,k,b.min),e=new u(w.min+v,k,b.min),this._line3d(f,t,e,this.axisColor),t=new u(w.max,k,b.min),e=new u(w.max-v,k,b.min),this._line3d(f,t,e,this.axisColor)),o=_.y>0?w.min:w.max,T=new u(o,k,b.min);var D=" "+this.yValueLabel(k)+" ";this.drawAxisLabelY(f,T,D,g,y),i.next()}for(f.lineWidth=1,n=void 0===this.defaultZStep,i=new p(b.min,b.max,this.zStep,n),i.start(!0),o=_.x>0?w.min:w.max,s=_.y<0?x.min:x.max;!i.end();){ +var M=i.getCurrent(),C=new u(o,s,M),E=this._convert3Dto2D(C);e=new d(E.x-y,E.y),this._line(f,E,e,this.axisColor);var D=this.zValueLabel(M)+" ";this.drawAxisLabelZ(f,C,D,5),i.next()}f.lineWidth=1,t=new u(o,s,b.min),e=new u(o,s,b.max),this._line3d(f,t,e,this.axisColor);var O,P;f.lineWidth=1,O=new u(w.min,x.min,b.min),P=new u(w.max,x.min,b.min),this._line3d(f,O,P,this.axisColor),O=new u(w.min,x.max,b.min),P=new u(w.max,x.max,b.min),this._line3d(f,O,P,this.axisColor),f.lineWidth=1,t=new u(w.min,x.min,b.min),e=new u(w.min,x.max,b.min),this._line3d(f,t,e,this.axisColor),t=new u(w.max,x.min,b.min),e=new u(w.max,x.max,b.min),this._line3d(f,t,e,this.axisColor);var L=this.xLabel;L.length>0&&(c=.1/this.scale.y,o=w.center()/2,s=_.x>0?x.min-c:x.max+c,r=new u(o,s,b.min),this.drawAxisLabelX(f,r,L,g));var R=this.yLabel;R.length>0&&(l=.1/this.scale.x,o=_.y>0?w.min-l:w.max+l,s=x.center()/2,r=new u(o,s,b.min),this.drawAxisLabelY(f,r,R,g));var Y=this.zLabel;Y.length>0&&(h=30,o=_.x>0?w.min:w.max,s=_.y<0?x.min:x.max,a=b.center()/2,r=new u(o,s,a),this.drawAxisLabelZ(f,r,Y,h))},n.prototype._hsv2rgb=function(t,e,i){var n,r,o,s,a,h;switch(s=i*e,a=Math.floor(t/60),h=s*(1-Math.abs(t/60%2-1)),a){case 0:n=s,r=h,o=0;break;case 1:n=h,r=s,o=0;break;case 2:n=0,r=s,o=h;break;case 3:n=0,r=h,o=s;break;case 4:n=h,r=0,o=s;break;case 5:n=s,r=0,o=h;break;default:n=0,r=0,o=0}return"RGB("+parseInt(255*n)+","+parseInt(255*r)+","+parseInt(255*o)+")"},n.prototype._getStrokeWidth=function(t){return void 0!==t?this.showPerspective?1/-t.trans.z*this.dataColor.strokeWidth:-(this.eye.z/this.camera.getArmLength())*this.dataColor.strokeWidth:this.dataColor.strokeWidth},n.prototype._redrawBar=function(t,e,i,n,r,o){var s,a,h=this,l=e.point,d=this.zRange.min,c=[{point:new u(l.x-i,l.y-n,l.z)},{point:new u(l.x+i,l.y-n,l.z)},{point:new u(l.x+i,l.y+n,l.z)},{point:new u(l.x-i,l.y+n,l.z)}],f=[{point:new u(l.x-i,l.y-n,d)},{point:new u(l.x+i,l.y-n,d)},{point:new u(l.x+i,l.y+n,d)},{point:new u(l.x-i,l.y+n,d)}];c.forEach(function(t){t.screen=h._convert3Dto2D(t.point)}),f.forEach(function(t){t.screen=h._convert3Dto2D(t.point)});var p=[{corners:c,center:u.avg(f[0].point,f[2].point)},{corners:[c[0],c[1],f[1],f[0]],center:u.avg(f[1].point,f[0].point)},{corners:[c[1],c[2],f[2],f[1]],center:u.avg(f[2].point,f[1].point)},{corners:[c[2],c[3],f[3],f[2]],center:u.avg(f[3].point,f[2].point)},{corners:[c[3],c[0],f[0],f[3]],center:u.avg(f[0].point,f[3].point)}];for(e.surfaces=p,s=0;s0}if(a){var f,p=(e.point.z+i.point.z+n.point.z+r.point.z)/4,m=240*(1-(p-this.zRange.min)*this.scale.z/this.verticalRatio),v=1;this.showShadow?(f=Math.min(1+d.x/c/2,1),o=this._hsv2rgb(m,v,f),s=o):(f=1,o=this._hsv2rgb(m,v,f),s=this.axisColor)}else o="gray",s=this.axisColor;t.lineWidth=this._getStrokeWidth(e);var y=[e,i,r,n];this._polygon(t,y,o,s)}},n.prototype._drawGridLine=function(t,e,i){if(void 0!==e&&void 0!==i){var n=(e.point.z+i.point.z)/2,r=240*(1-(n-this.zRange.min)*this.scale.z/this.verticalRatio);t.lineWidth=2*this._getStrokeWidth(e),t.strokeStyle=this._hsv2rgb(r,1,1),this._line(t,e.screen,i.screen)}},n.prototype._redrawGridGraphPoint=function(t,e){this._drawGridLine(t,e,e.pointRight),this._drawGridLine(t,e,e.pointTop)},n.prototype._redrawLineGraphPoint=function(t,e){void 0!==e.pointNext&&(t.lineWidth=this._getStrokeWidth(e),t.strokeStyle=this.dataColor.stroke,this._line(t,e.screen,e.pointNext.screen))},n.prototype._redrawDataGraph=function(){var t,e=this._getContext();if(!(void 0===this.dataPoints||this.dataPoints.length<=0))for(this._calcTranslations(this.dataPoints),t=0;t0?1:t<0?-1:0}var n=e[0],r=e[1],o=e[2],s=i((r.x-n.x)*(t.y-n.y)-(r.y-n.y)*(t.x-n.x)),a=i((o.x-r.x)*(t.y-r.y)-(o.y-r.y)*(t.x-r.x)),h=i((n.x-o.x)*(t.y-o.y)-(n.y-o.y)*(t.x-o.x));return!(0!=s&&0!=a&&s!=a||0!=a&&0!=h&&a!=h||0!=s&&0!=h&&s!=h)},n.prototype._dataPointFromXY=function(t,e){var i,r=100,o=null,s=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--){o=this.dataPoints[i];var l=o.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 o}}else for(i=0;i"+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,o=e.offsetHeight,s=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-s+"px",e.style.left=l+"px",e.style.top=t.screen.y-s-o+"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)}}},n.prototype.setCameraPosition=function(t){v.setCameraPosition(t,this),this.redraw()},t.exports=n},function(t,e){function i(t){if(t)return n(t)}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;r.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:t0&&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(){if(void 0!==this.index)return this.values[this.index]},n.prototype.getValues=function(){return this.values},n.prototype.getValue=function(t){if(t>=this.values.length)throw new 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 new 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(!(tthis.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.isNumeric=function(t){return!isNaN(parseFloat(t))&&isFinite(t)},i.prototype.setRange=function(t,e,i,n){if(!this.isNumeric(t))throw new Error("Parameter 'start' is not numeric; value: "+t);if(!this.isNumeric(e))throw new Error("Parameter 'end' is not numeric; value: "+t);if(!this.isNumeric(i))throw new Error("Parameter 'step' is not numeric; value: "+t);this._start=t?t:0,this._end=e?e:0,this.setStep(i,n)},i.prototype.setStep=function(t,e){void 0===t||t<=0||(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))),o=i;return Math.abs(n-t)<=Math.abs(o-t)&&(o=n),Math.abs(r-t)<=Math.abs(o-t)&&(o=r),o<=0&&(o=1),o},i.prototype.getCurrent=function(){return parseFloat(this._current.toPrecision(this.precision))},i.prototype.getStep=function(){return this._step},i.prototype.start=function(t){void 0===t&&(t=!1),this._current=this._start-this._start%this._step,t&&this.getCurrent()this._end},t.exports=i},function(t,e){function i(){this.min=void 0,this.max=void 0}i.prototype.adjust=function(t){void 0!==t&&((void 0===this.min||this.min>t)&&(this.min=t),(void 0===this.max||this.maxi)throw new Error("Passed expansion value makes range invalid");this.min=e,this.max=i}},i.prototype.range=function(){return this.max-this.min},i.prototype.center=function(){return(this.min+this.max)/2},t.exports=i},function(t,e,i){function n(t){for(var e in t)if(t.hasOwnProperty(e))return!1;return!0}function r(t){return void 0===t||""===t?t:t.charAt(0).toUpperCase()+t.slice(1)}function o(t,e){return void 0===t||""===t?e:t+r(e)}function s(t,e,i,n){var r,s;for(var a in i)r=i[a],s=o(n,r),e[s]=t[r]}function a(t,e,i,n){var r,s;for(var a in i)r=i[a],void 0!==t[r]&&(s=o(n,r),e[s]=t[r])}function h(t,e){if(void 0===t||n(t))throw new Error("No DEFAULTS passed");if(void 0===e)throw new Error("No dst passed");D=t,s(t,e,S),s(t,e,T,"default"),u(t,e),e.margin=10,e.showGrayBottom=!1,e.showTooltip=!1,e.eye=new w(0,0,-1)}function l(t,e){if(void 0!==t){if(void 0===e)throw new Error("No dst passed");if(void 0===D||n(D))throw new Error("DEFAULTS not set for module Settings");a(t,e,S),a(t,e,T,"default"),u(t,e)}}function u(t,e){void 0!==t.backgroundColor&&m(t.backgroundColor,e),v(t.dataColor,e),p(t.style,e),d(t.showLegend,e),y(t.cameraPosition,e),void 0!==t.tooltip&&(e.showTooltip=t.tooltip)}function d(t,e){if(void 0===t){var i=void 0===D.showLegend;if(i){var n=e.style===x.DOTCOLOR||e.style===x.DOTSIZE;e.showLegend=n}}else e.showLegend=t}function c(t){var e=b[t];return void 0===e?-1:e}function f(t){var e=!1;for(var i in x)if(x[i]===t){e=!0;break}return e}function p(t,e){if(void 0!==t){var i;if("string"==typeof t){if(i=c(t),i===-1)throw new Error("Style '"+t+"' is invalid")}else{if(!f(t))throw new Error("Style '"+t+"' is invalid");i=t}e.style=i}}function m(t,e){var i="white",n="gray",r=1;if("string"==typeof t)i=t,n="none",r=0;else{if("object"!==("undefined"==typeof t?"undefined":g(t)))throw new Error("Unsupported type of backgroundColor");void 0!==t.fill&&(i=t.fill),void 0!==t.stroke&&(n=t.stroke),void 0!==t.strokeWidth&&(r=t.strokeWidth)}e.frame.style.backgroundColor=i,e.frame.style.borderColor=n,e.frame.style.borderWidth=r+"px",e.frame.style.borderStyle="solid"}function v(t,e){void 0!==t&&(void 0===e.dataColor&&(e.dataColor={}),"string"==typeof t?(e.dataColor.fill=t,e.dataColor.stroke=t):(t.fill&&(e.dataColor.fill=t.fill),t.stroke&&(e.dataColor.stroke=t.stroke),void 0!==t.strokeWidth&&(e.dataColor.strokeWidth=t.strokeWidth)))}function y(t,e){var i=t;void 0!==i&&(void 0===e.camera&&(e.camera=new _),e.camera.setArmRotation(i.horizontal,i.vertical),e.camera.setArmLength(i.distance))}var g="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},_=i(15),w=i(13),x={BAR:0,BARCOLOR:1,BARSIZE:2,DOT:3,DOTLINE:4,DOTCOLOR:5,DOTSIZE:6,GRID:7,LINE:8,SURFACE:9},b={dot:x.DOT,"dot-line":x.DOTLINE,"dot-color":x.DOTCOLOR,"dot-size":x.DOTSIZE,line:x.LINE,grid:x.GRID,surface:x.SURFACE,bar:x.BAR,"bar-color":x.BARCOLOR,"bar-size":x.BARSIZE},S=["width","height","filterLabel","legendLabel","xLabel","yLabel","zLabel","xValueLabel","yValueLabel","zValueLabel","showGrid","showPerspective","showShadow","keepAspectRatio","verticalRatio","dotSizeRatio","showAnimationControls","animationInterval","animationPreload","animationAutoStart","axisColor","gridColor","xCenter","yCenter"],T=["xBarWidth","yBarWidth","valueMin","valueMax","xMin","xMax","xStep","yMin","yMax","yStep","zMin","zMax","zStep"],D=void 0;t.exports.STYLE=x,t.exports.setDefaults=h,t.exports.setOptions=l,t.exports.setCameraPosition=y},function(t,e,i){if("undefined"!=typeof window){var n=i(22),r=window.Hammer||i(23);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,o;!function(i){r=[],n=i,o="function"==typeof n?n.apply(e,r):n,!(void 0!==o&&(t.exports=o))}(function(){var t=null;return function e(i,n){function r(t){return t.match(/[^ ]+/g)}function o(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 o=r.hammer;if(o)for(var s,a=0;a0?l._handlers[t]=n:(i.off(t,o),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);e!==-1&&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.7 - 2016-04-22 * 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 c(t,e,i){var n,r=e.prototype;n=t.prototype=Object.create(r),n.constructor=t,n._super=r,i&&dt(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 w(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=Y(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=z(a,h),E(i,e),e.offsetDirection=I(e.deltaX,e.deltaY);var l=R(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,L(i,e);var u=t.element;g(e.srcEvent.target,u)&&(u=e.srcEvent.target),e.target=u}function E(t,e){var i=e.center,n=t.offsetDelta||{},r=t.prevDelta||{},s=t.prevInput||{};e.eventType!==Pt&&s.eventType!==Lt||(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 L(t,e){var i,n,r,s,o=t.lastInterval||e,h=e.timeStamp-o.timeStamp;if(e.eventType!=Yt&&(h>Ot||o.velocity===a)){var l=e.deltaX-o.deltaX,u=e.deltaY-o.deltaY,d=R(h,l,u);n=d.x,r=d.y,i=vt(d.x)>vt(d.y)?d.x:d.y,s=I(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 Y(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 R(t,e,i){return{x:e/t||0,y:i/t||0}}function I(t,e){return t===e?At:vt(t)>=vt(e)?0>t?Rt:It:0>e?zt:Wt}function z(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 z(e[0],e[1],Ut)/z(t[0],t[1],Ut)}function V(){this.evEl=jt,this.evWin=Gt,this.allow=!0,this.pressed=!1,k.apply(this,arguments)}function B(){this.evEl=qt,this.evWin=Qt,k.apply(this,arguments),this.store=this.manager.session.pointerEvents=[]}function U(){this.evTarget=Jt,this.evWin=Kt,this.started=!1,k.apply(this,arguments)}function H(t,e){var i=b(t.touches),n=b(t.changedTouches);return e&(Lt|Yt)&&(i=M(i.concat(n),"identifier",!0)),[i,n]}function j(){this.evTarget=ee,this.targetIds={},k.apply(this,arguments)}function G(t,e){var i=b(t.touches),n=this.targetIds;if(e&(Pt|Et)&&1===i.length)return n[i[0].identifier]=!0,[i,i];var r,s,o=b(t.changedTouches),a=[],h=this.target;if(s=i.filter(function(t){return g(t.target,h)}),e===Pt)for(r=0;ra&&(e.push(t),a=e.length-1):r&(Lt|Yt)&&(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 $t={touchstart:Pt,touchmove:Et,touchend:Lt,touchcancel:Yt},Jt="touchstart",Kt="touchstart touchmove touchend touchcancel";c(U,k,{handler:function(t){var e=$t[t.type];if(e===Pt&&(this.started=!0),this.started){var i=H.call(this,t,e);e&(Lt|Yt)&&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:Pt,touchmove:Et,touchend:Lt,touchcancel:Yt},ee="touchstart touchmove touchend touchcancel";c(j,k,{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})}}),c(X,k,{handler:function(t,e,i){var n=i.pointerType==Tt,r=i.pointerType==kt;if(n)this.mouse.allow=!1;else if(r&&!this.mouse.allow)return;e&(Lt|Yt)&&(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,de=2,ce=4,fe=8,pe=fe,me=16,ve=32;Q.prototype={defaults:{},set:function(t){return dt(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===w(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=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,n=this.state;fe>n&&e(i.options.event+$(n)),e(i.options.event),t.additionalEvent&&e(t.additionalEvent),n>=fe&&e(i.options.event+$(n))},tryEmit:function(t){return this.canEmit()?this.emit(t):void(this.state=ve)},canEmit:function(){for(var t=0;ts?Rt:It,i=s!=this.pX,n=Math.abs(t.deltaX)):(r=0===o?At:0>o?zt: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&de||!(this.state&de)&&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)}}),c(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&de)},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)}}),c(nt,Q,{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&(Lt|Yt)&&!r)this.reset();else if(t.eventType&Pt)this.reset(),this._timer=h(function(){this.state=pe,this.tryEmit()},e.time,this);else if(t.eventType&Lt)return pe;return ve},reset:function(){clearTimeout(this._timer)},emit:function(t){this.state===pe&&(t&&t.eventType&Lt?this.manager.emit(this.options.event+"up",t):(this._input.timeStamp=yt(),this.manager.emit(this.options.event,this._input)))}}),c(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&de)}}),c(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&Lt},emit:function(t){var e=J(t.offsetDirection);e&&this.manager.emit(this.options.event+e,t),this.manager.emit(this.options.event,t)}}),c(ot,Q,{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;r\s*\(/gm,"{anonymous}()@"):"Unknown Stack Trace",o=r.console&&(r.console.warn||r.console.log);return o&&o.call(r.console,n,i),t.apply(this,arguments)}}function c(t,e,i){var n,r=e.prototype;n=t.prototype=Object.create(r),n.constructor=t,n._super=r,i&&mt(n,i)}function f(t,e){return function(){return t.apply(e,arguments)}}function p(t,e){return typeof t==gt?t.apply(e?e[0]||a:a,e):t}function m(t,e){return t===a?e:t}function v(t,e,i){u(w(e),function(e){t.addEventListener(e,i,!1)})}function y(t,e,i){u(w(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 w(t){return t.trim().split(/\s+/g)}function x(t,e,i){if(t.indexOf&&!i)return t.indexOf(e);for(var n=0;ni[e]}):n.sort()),n}function T(t,e){for(var i,n,r=e[0].toUpperCase()+e.slice(1),o=0;o1&&!i.firstMultiple?i.firstMultiple=R(e):1===r&&(i.firstMultiple=!1);var o=i.firstInput,s=i.firstMultiple,a=s?s.center:o.center,h=e.center=Y(n);e.timeStamp=xt(),e.deltaTime=e.timeStamp-o.timeStamp,e.angle=z(a,h),e.distance=W(a,h),P(i,e),e.offsetDirection=I(e.deltaX,e.deltaY);var l=A(e.deltaTime,e.deltaX,e.deltaY);e.overallVelocityX=l.x,e.overallVelocityY=l.y,e.overallVelocity=wt(l.x)>wt(l.y)?l.x:l.y,e.scale=s?F(s.pointers,n):1,e.rotation=s?N(s.pointers,n):0,e.maxPointers=i.prevInput?e.pointers.length>i.prevInput.maxPointers?e.pointers.length:i.prevInput.maxPointers:e.pointers.length,L(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||{},o=t.prevInput||{};e.eventType!==Yt&&o.eventType!==It||(r=t.prevDelta={x:o.deltaX||0,y:o.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 L(t,e){var i,n,r,o,s=t.lastInterval||e,h=e.timeStamp-s.timeStamp;if(e.eventType!=Wt&&(h>Rt||s.velocity===a)){var l=e.deltaX-s.deltaX,u=e.deltaY-s.deltaY,d=A(h,l,u);n=d.x,r=d.y,i=wt(d.x)>wt(d.y)?d.x:d.y,o=I(l,u),t.lastInterval=e}else i=s.velocity,n=s.velocityX,r=s.velocityY,o=s.direction;e.velocity=i,e.velocityX=n,e.velocityY=r,e.direction=o}function R(t){for(var e=[],i=0;i=wt(e)?t<0?Nt:Ft:e<0?Gt:jt}function W(t,e,i){i||(i=Ht);var n=e[i[0]]-t[i[0]],r=e[i[1]]-t[i[1]];return Math.sqrt(n*n+r*r)}function z(t,e,i){i||(i=Ht);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 z(e[1],e[0],Xt)+z(t[1],t[0],Xt)}function F(t,e){return W(e[0],e[1],Xt)/W(t[0],t[1],Xt)}function G(){this.evEl=qt,this.evWin=Qt,this.pressed=!1,M.apply(this,arguments)}function j(){this.evEl=Kt,this.evWin=te,M.apply(this,arguments),this.store=this.manager.session.pointerEvents=[]}function V(){this.evTarget=ie,this.evWin=ne,this.started=!1,M.apply(this,arguments)}function B(t,e){var i=b(t.touches),n=b(t.changedTouches);return e&(It|Wt)&&(i=S(i.concat(n),"identifier",!0)),[i,n]}function U(){this.evTarget=oe,this.targetIds={},M.apply(this,arguments)}function H(t,e){var i=b(t.touches),n=this.targetIds;if(e&(Yt|At)&&1===i.length)return n[i[0].identifier]=!0,[i,i];var r,o,s=b(t.changedTouches),a=[],h=this.target;if(o=i.filter(function(t){return g(t.target,h)}),e===Yt)for(r=0;r-1&&n.splice(t,1)};setTimeout(r,se)}}function Q(t){for(var e=t.srcEvent.clientX,i=t.srcEvent.clientY,n=0;n-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;n=we&&e(i.options.event+et(n))},tryEmit:function(t){return this.canEmit()?this.emit(t):void(this.state=Se)},canEmit:function(){for(var t=0;te.threshold&&r&e.direction},attrTest:function(t){return rt.prototype.attrTest.call(this,t)&&(this.state&ge||!(this.state&ge)&&this.directionTest(t))},emit:function(t){this.pX=t.deltaX,this.pY=t.deltaY;var e=it(t.direction);e&&(t.additionalEvent=this.options.event+e),this._super.emit.call(this,t)}}),c(st,rt,{defaults:{event:"pinch",threshold:0,pointers:2},getTouchAction:function(){return[fe]},attrTest:function(t){return this._super.attrTest.call(this,t)&&(Math.abs(t.scale-1)>this.options.threshold||this.state&ge)},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)}}),c(at,tt,{defaults:{event:"press",pointers:1,time:251,threshold:9},getTouchAction:function(){return[de]},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&(It|Wt)&&!r)this.reset();else if(t.eventType&Yt)this.reset(),this._timer=h(function(){this.state=xe,this.tryEmit()},e.time,this);else if(t.eventType&It)return xe;return Se},reset:function(){clearTimeout(this._timer)},emit:function(t){this.state===xe&&(t&&t.eventType&It?this.manager.emit(this.options.event+"up",t):(this._input.timeStamp=xt(),this.manager.emit(this.options.event,this._input)))}}),c(ht,rt,{defaults:{event:"rotate",threshold:0,pointers:2},getTouchAction:function(){return[fe]},attrTest:function(t){return this._super.attrTest.call(this,t)&&(Math.abs(t.rotation)>this.options.threshold||this.state&ge)}}),c(lt,rt,{defaults:{event:"swipe",threshold:10,velocity:.3,direction:Vt|Bt,pointers:1},getTouchAction:function(){return ot.prototype.getTouchAction.call(this)},attrTest:function(t){var e,i=this.options.direction;return i&(Vt|Bt)?e=t.overallVelocity:i&Vt?e=t.overallVelocityX:i&Bt&&(e=t.overallVelocityY),this._super.attrTest.call(this,t)&&i&t.offsetDirection&&t.distance>this.options.threshold&&t.maxPointers==this.options.pointers&&wt(e)>this.options.velocity&&t.eventType&It},emit:function(t){var e=it(t.offsetDirection);e&&this.manager.emit(this.options.event+e,t),this.manager.emit(this.options.event,t)}}),c(ut,tt,{defaults:{event:"tap",pointers:1,taps:1,interval:300,time:250,threshold:9,posThreshold:10},getTouchAction:function(){return[ce]},process:function(t){var e=this.options,i=t.pointers.length===e.pointers,n=t.distancei;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 ro.apply(null,arguments)}function i(e){ro=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 ho)o=ho[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),lo===!1&&(lo=!0,t.updateOffset(this),lo=!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,i){var o=!0;return a(function(){return null!=t.deprecationHandler&&t.deprecationHandler(null,e),o&&(_(e+"\nArguments: "+Array.prototype.slice.call(arguments).join(", ")+"\n"+(new Error).stack),o=!1),i.apply(this,arguments)},i)}function k(e,i){null!=t.deprecationHandler&&t.deprecationHandler(e,i),co[e]||(_(i),co[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(!vo[t]&&"undefined"!=typeof e&&e&&e.exports)try{i=fo._abbr,!function(){var e=new Error('Cannot find module "./locale"');throw e.code="MODULE_NOT_FOUND",e}(),P(i)}catch(o){}return vo[t]}function P(e,t){var i;return e&&(i=f(t)?I(e):B(e,t),i&&(fo=i)),fo._abbr}function B(e,t){return null!==t?(t.abbr=e,null!=vo[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(vo[e]._config,t)):null!=t.parentLocale&&(null!=vo[t.parentLocale]?t=M(vo[t.parentLocale]._config,t):k("parentLocaleUndefined","specified parentLocale is not defined yet")),vo[e]=new D(t),P(e),vo[e]):(delete vo[e],null)}function F(e,t){if(null!=t){var i;null!=vo[e]&&(t=M(vo[e]._config,t)),i=new D(t),i.parentLocale=vo[e],vo[e]=i,P(e)}else null!=vo[e]&&(null!=vo[e].parentLocale?vo[e]=vo[e].parentLocale:null!=vo[e]&&delete vo[e]);return vo[e]}function I(e){var t;if(e&&e._locale&&e._locale._abbr&&(e=e._locale._abbr),!e)return fo;if(!o(e)){if(t=T(e))return t;e=[e]}return C(e)}function j(){return uo(vo)}function N(e,t){var i=e.toLowerCase();yo[i]=yo[i+"s"]=yo[t]=e}function z(e){return"string"==typeof e?yo[e]||yo[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?(H(this,e,o),t.updateOffset(this,i),this):L(this,e)}}function L(e,t){return e.isValid()?e._d["get"+(e._isUTC?"UTC":"")+t]():NaN}function H(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&&(_o[e]=n),t&&(_o[t[0]]=function(){return Y(n.apply(this,arguments),t[1],t[2])}),i&&(_o[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(go);for(t=0,i=o.length;i>t;t++)_o[o[t]]?o[t]=_o[o[t]]:o[t]=V(o[t]);return function(t){var n,s="";for(n=0;i>n;n++)s+=o[n]instanceof Function?o[n].call(t,e):o[n];return s}}function G(e,t){return e.isValid()?(t=X(t,e.localeData()),mo[t]=mo[t]||q(t),mo[t](e)):e.localeData().invalidDate()}function X(e,t){function i(e){return t.longDateFormat(e)||e}var o=5;for(bo.lastIndex=0;o>=0&&bo.test(e);)e=e.replace(bo,i),bo.lastIndex=0,o-=1;return e}function K(e,t,i){Ro[e]=x(t)?t:function(e,o){return e&&i?i:t}}function Z(e,t){return r(Ro,e)?Ro[e](t._strict,t._locale):new RegExp(Q(e))}function Q(e){return J(e.replace("\\","").replace(/\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g,function(e,t,i,o,n){return t||i||o||n}))}function J(e){return e.replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&")}function $(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)s=h([2e3,o]),this._shortMonthsParse[o]=this.monthsShort(s,"").toLocaleLowerCase(),this._longMonthsParse[o]=this.months(s,"").toLocaleLowerCase();return i?"MMM"===t?(n=po.call(this._shortMonthsParse,r),-1!==n?n:null):(n=po.call(this._longMonthsParse,r),-1!==n?n:null):"MMM"===t?(n=po.call(this._shortMonthsParse,r),-1!==n?n:(n=po.call(this._longMonthsParse,r),-1!==n?n:null)):(n=po.call(this._longMonthsParse,r),-1!==n?n:(n=po.call(this._shortMonthsParse,r),-1!==n?n:null))}function re(e,t,i){var o,n,s;if(this._monthsParseExact)return se.call(this,e,t,i);for(this._monthsParse||(this._monthsParse=[],this._longMonthsParse=[],this._shortMonthsParse=[]),o=0;12>o;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 ae(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 he(e){return null!=e?(ae(this,e),t.updateOffset(this,!0),this):L(this,"Month")}function de(){return ie(this.year(),this.month())}function le(e){return this._monthsParseExact?(r(this,"_monthsRegex")||ue.call(this),e?this._monthsShortStrictRegex:this._monthsShortRegex):this._monthsShortStrictRegex&&e?this._monthsShortStrictRegex:this._monthsShortRegex}function ce(e){return this._monthsParseExact?(r(this,"_monthsRegex")||ue.call(this),e?this._monthsStrictRegex:this._monthsRegex):this._monthsStrictRegex&&e?this._monthsStrictRegex:this._monthsRegex}function ue(){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]=J(o[t]),n[t]=J(n[t]),s[t]=J(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 fe(e){var t,i=e._a;return i&&-2===l(e).overflow&&(t=i[Ho]<0||i[Ho]>11?Ho:i[Wo]<1||i[Wo]>ie(i[Lo],i[Ho])?Wo:i[Yo]<0||i[Yo]>24||24===i[Yo]&&(0!==i[Uo]||0!==i[Vo]||0!==i[qo])?Yo:i[Uo]<0||i[Uo]>59?Uo:i[Vo]<0||i[Vo]>59?Vo:i[qo]<0||i[qo]>999?qo:-1,l(e)._overflowDayOfYear&&(Lo>t||t>Wo)&&(t=Wo),l(e)._overflowWeeks&&-1===t&&(t=Go),l(e)._overflowWeekday&&-1===t&&(t=Xo),l(e).overflow=t),e}function pe(e){var t,i,o,n,s,r,a=e._i,h=en.exec(a)||tn.exec(a);if(h){for(l(e).iso=!0,t=0,i=nn.length;i>t;t++)if(nn[t][1].exec(h[1])){n=nn[t][0],o=nn[t][2]!==!1;break}if(null==n)return void(e._isValid=!1);if(h[3]){for(t=0,i=sn.length;i>t;t++)if(sn[t][1].exec(h[3])){s=(h[2]||" ")+sn[t][0];break}if(null==s)return void(e._isValid=!1)}if(!o&&null!=s)return void(e._isValid=!1);if(h[4]){if(!on.exec(h[4]))return void(e._isValid=!1);r="Z"}e._f=n+(s||"")+(r||""),Ce(e)}else e._isValid=!1}function ve(e){var i=rn.exec(e._i);return null!==i?void(e._d=new Date(+i[1])):(pe(e),void(e._isValid===!1&&(delete e._isValid,t.createFromInputFallback(e))))}function ye(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 ge(e){var t=new Date(Date.UTC.apply(null,arguments));return 100>e&&e>=0&&isFinite(t.getUTCFullYear())&&t.setUTCFullYear(e),t}function be(e){return me(e)?366:365}function me(e){return e%4===0&&e%100!==0||e%400===0}function _e(){return me(this.year())}function we(e,t,i){var o=7+t-i,n=(7+ge(e,0,o).getUTCDay()-t)%7;return-n+o-1}function ke(e,t,i,o,n){var s,r,a=(7+i-o)%7,h=we(e,o,n),d=1+7*(t-1)+a+h;return 0>=d?(s=e-1,r=be(s)+d):d>be(e)?(s=e+1,r=d-be(e)):(s=e,r=d),{year:s,dayOfYear:r}}function xe(e,t,i){var o,n,s=we(e.year(),t,i),r=Math.floor((e.dayOfYear()-s-1)/7)+1;return 1>r?(n=e.year()-1,o=r+Oe(n,t,i)):r>Oe(e.year(),t,i)?(o=r-Oe(e.year(),t,i),n=e.year()+1):(n=e.year(),o=r),{week:o,year:n}}function Oe(e,t,i){var o=we(e,t,i),n=we(e+1,t,i);return(be(e)-o+n)/7}function Ee(e,t,i){return null!=e?e:null!=t?t:i}function Me(e){var i=new Date(t.now());return e._useUTC?[i.getUTCFullYear(),i.getUTCMonth(),i.getUTCDate()]:[i.getFullYear(),i.getMonth(),i.getDate()]}function De(e){var t,i,o,n,s=[];if(!e._d){for(o=Me(e),e._w&&null==e._a[Wo]&&null==e._a[Ho]&&Se(e),e._dayOfYear&&(n=Ee(e._a[Lo],o[Lo]),e._dayOfYear>be(n)&&(l(e)._overflowDayOfYear=!0),i=ge(n,0,e._dayOfYear),e._a[Ho]=i.getUTCMonth(),e._a[Wo]=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[Yo]&&0===e._a[Uo]&&0===e._a[Vo]&&0===e._a[qo]&&(e._nextDay=!0,e._a[Yo]=0),e._d=(e._useUTC?ge:ye).apply(null,s),null!=e._tzm&&e._d.setUTCMinutes(e._d.getUTCMinutes()-e._tzm),e._nextDay&&(e._a[Yo]=24)}}function Se(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=Ee(t.GG,e._a[Lo],xe(ze(),1,4).year),o=Ee(t.W,1),n=Ee(t.E,1),(1>n||n>7)&&(h=!0)):(s=e._locale._week.dow,r=e._locale._week.doy,i=Ee(t.gg,e._a[Lo],xe(ze(),s,r).year),o=Ee(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>Oe(i,s,r)?l(e)._overflowWeeks=!0:null!=h?l(e)._overflowWeekday=!0:(a=ke(i,o,n,s,r),e._a[Lo]=a.year,e._dayOfYear=a.dayOfYear)}function Ce(e){if(e._f===t.ISO_8601)return void pe(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(go)||[],i=0;i0&&l(e).unusedInput.push(r),a=a.slice(a.indexOf(o)+o.length),d+=o.length),_o[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[Yo]<=12&&e._a[Yo]>0&&(l(e).bigHour=void 0),l(e).parsedDateParts=e._a.slice(0),l(e).meridiem=e._meridiem,e._a[Yo]=Te(e._locale,e._a[Yo],e._meridiem),De(e),fe(e)}function Te(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 Pe(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 Be(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)}),De(e)}}function Fe(e){var t=new v(fe(Ie(e)));return t._nextDay&&(t.add(1,"d"),t._nextDay=void 0),t}function Ie(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(fe(t)):(o(i)?Pe(e):i?Ce(e):n(t)?e._d=t:je(e),c(e)||(e._d=null),e))}function je(e){var i=e._i;void 0===i?e._d=new Date(t.now()):n(i)?e._d=new Date(i.valueOf()):"string"==typeof i?ve(e):o(i)?(e._a=s(i.slice(0),function(e){return parseInt(e,10)}),De(e)):"object"==typeof i?Be(e):"number"==typeof i?e._d=new Date(i):t.createFromInputFallback(e)}function Ne(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,Fe(s)}function ze(e,t,i,o){return Ne(e,t,i,o,!1)}function Re(e,t){var i,n;if(1===t.length&&o(t[0])&&(t=t[0]),!t.length)return ze();for(i=t[0],n=1;ne&&(e=-e,i="-"),i+Y(~~(e/60),2)+t+Y(~~e%60,2)})}function Ue(e,t){var i=(t||"").match(e)||[],o=i[i.length-1]||[],n=(o+"").match(cn)||["-",0,0],s=+(60*n[1])+b(n[2]);return"+"===n[0]?s:-s}function Ve(e,i){var o,s;return i._isUTC?(o=i.clone(),s=(y(e)||n(e)?e.valueOf():ze(e).valueOf())-o.valueOf(),o._d.setTime(o._d.valueOf()+s),t.updateOffset(o,!1),o):ze(e).local()}function qe(e){return 15*-Math.round(e._d.getTimezoneOffset()/15)}function Ge(e,i){var o,n=this._offset||0;return this.isValid()?null!=e?("string"==typeof e?e=Ue(jo,e):Math.abs(e)<16&&(e=60*e),!this._isUTC&&i&&(o=qe(this)),this._offset=e,this._isUTC=!0,null!=o&&this.add(o,"m"),n!==e&&(!i||this._changeInProgress?lt(this,nt(e-n,"m"),1,!1):this._changeInProgress||(this._changeInProgress=!0,t.updateOffset(this,!0),this._changeInProgress=null)),this):this._isUTC?n:qe(this):null!=e?this:NaN}function Xe(e,t){return null!=e?("string"!=typeof e&&(e=-e),this.utcOffset(e,t),this):-this.utcOffset()}function Ke(e){return this.utcOffset(0,e)}function Ze(e){return this._isUTC&&(this.utcOffset(0,e),this._isUTC=!1,e&&this.subtract(qe(this),"m")),this}function Qe(){return this._tzm?this.utcOffset(this._tzm):"string"==typeof this._i&&this.utcOffset(Ue(Io,this._i)),this}function Je(e){return this.isValid()?(e=e?ze(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 et(){if(!f(this._isDSTShifted))return this._isDSTShifted;var e={};if(p(e,this),e=Ie(e),e._a){var t=e._isUTC?h(e._a):ze(e._a);this._isDSTShifted=this.isValid()&&m(e._a,t.toArray())>0}else this._isDSTShifted=!1;return this._isDSTShifted}function tt(){return this.isValid()?!this._isUTC:!1}function it(){return this.isValid()?this._isUTC:!1}function ot(){return this.isValid()?this._isUTC&&0===this._offset:!1}function nt(e,t){var i,o,n,s=e,a=null;return We(e)?s={ms:e._milliseconds,d:e._days,M:e._months}:"number"==typeof e?(s={},t?s[t]=e:s.milliseconds=e):(a=un.exec(e))?(i="-"===a[1]?-1:1,s={y:0,d:b(a[Wo])*i,h:b(a[Yo])*i,m:b(a[Uo])*i,s:b(a[Vo])*i,ms:b(a[qo])*i}):(a=fn.exec(e))?(i="-"===a[1]?-1:1,s={y:st(a[2],i),M:st(a[3],i),w:st(a[4],i),d:st(a[5],i),h:st(a[6],i),m:st(a[7],i),s:st(a[8],i)}):null==s?s={}:"object"==typeof s&&("from"in s||"to"in s)&&(n=at(ze(s.from),ze(s.to)),s={}, -s.ms=n.milliseconds,s.M=n.months),o=new He(s),We(e)&&r(e,"_locale")&&(o._locale=e._locale),o}function st(e,t){var i=e&&parseFloat(e.replace(",","."));return(isNaN(i)?0:i)*t}function rt(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 at(e,t){var i;return e.isValid()&&t.isValid()?(t=Ve(t,e),e.isBefore(t)?i=rt(e,t):(i=rt(t,e),i.milliseconds=-i.milliseconds,i.months=-i.months),i):{milliseconds:0,months:0}}function ht(e){return 0>e?-1*Math.round(-1*e):Math.round(e)}function dt(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=nt(i,o),lt(this,n,e),this}}function lt(e,i,o,n){var s=i._milliseconds,r=ht(i._days),a=ht(i._months);e.isValid()&&(n=null==n?!0:n,s&&e._d.setTime(e._d.valueOf()+s*o),r&&H(e,"Date",L(e,"Date")+r*o),a&&ae(e,L(e,"Month")+a*o),n&&t.updateOffset(e,r||a))}function ct(e,t){var i=e||ze(),o=Ve(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,ze(i)))}function ut(){return new v(this)}function ft(e,t){var i=y(e)?e:ze(e);return this.isValid()&&i.isValid()?(t=z(f(t)?"millisecond":t),"millisecond"===t?this.valueOf()>i.valueOf():i.valueOf()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)||0}function wt(){return this.clone().locale("en").format("ddd MMM DD YYYY HH:mm:ss [GMT]ZZ")}function kt(){var e=this.clone().utc();return 0s&&(t=s),Xt.call(this,e,t,i,o,n))}function Xt(e,t,i,o,n){var s=ke(e,t,i,o,n),r=ge(s.year,0,s.dayOfYear);return this.year(r.getUTCFullYear()),this.month(r.getUTCMonth()),this.date(r.getUTCDate()),this}function Kt(e){return null==e?Math.ceil((this.month()+1)/3):this.month(3*(e-1)+this.month()%3)}function Zt(e){return xe(e,this._week.dow,this._week.doy).week}function Qt(){return this._week.dow}function Jt(){return this._week.doy}function $t(e){var t=this.localeData().week(this);return null==e?t:this.add(7*(e-t),"d")}function ei(e){var t=xe(this,1,4).week;return null==e?t:this.add(7*(e-t),"d")}function ti(e,t){return"string"!=typeof e?e:isNaN(e)?(e=t.weekdaysParse(e),"number"==typeof e?e:null):parseInt(e,10)}function ii(e,t){return o(this._weekdays)?this._weekdays[e.day()]:this._weekdays[this._weekdays.isFormat.test(t)?"format":"standalone"][e.day()]}function oi(e){return this._weekdaysShort[e.day()]}function ni(e){return this._weekdaysMin[e.day()]}function si(e,t,i){var o,n,s,r=e.toLocaleLowerCase();if(!this._weekdaysParse)for(this._weekdaysParse=[],this._shortWeekdaysParse=[],this._minWeekdaysParse=[],o=0;7>o;++o)s=h([2e3,1]).day(o),this._minWeekdaysParse[o]=this.weekdaysMin(s,"").toLocaleLowerCase(),this._shortWeekdaysParse[o]=this.weekdaysShort(s,"").toLocaleLowerCase(),this._weekdaysParse[o]=this.weekdays(s,"").toLocaleLowerCase();return i?"dddd"===t?(n=po.call(this._weekdaysParse,r),-1!==n?n:null):"ddd"===t?(n=po.call(this._shortWeekdaysParse,r),-1!==n?n:null):(n=po.call(this._minWeekdaysParse,r),-1!==n?n:null):"dddd"===t?(n=po.call(this._weekdaysParse,r),-1!==n?n:(n=po.call(this._shortWeekdaysParse,r),-1!==n?n:(n=po.call(this._minWeekdaysParse,r),-1!==n?n:null))):"ddd"===t?(n=po.call(this._shortWeekdaysParse,r),-1!==n?n:(n=po.call(this._weekdaysParse,r),-1!==n?n:(n=po.call(this._minWeekdaysParse,r),-1!==n?n:null))):(n=po.call(this._minWeekdaysParse,r),-1!==n?n:(n=po.call(this._weekdaysParse,r),-1!==n?n:(n=po.call(this._shortWeekdaysParse,r),-1!==n?n:null)))}function ri(e,t,i){var o,n,s;if(this._weekdaysParseExact)return si.call(this,e,t,i);for(this._weekdaysParse||(this._weekdaysParse=[],this._minWeekdaysParse=[],this._shortWeekdaysParse=[],this._fullWeekdaysParse=[]),o=0;7>o;o++){if(n=h([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 ai(e){if(!this.isValid())return null!=e?this:NaN;var t=this._isUTC?this._d.getUTCDay():this._d.getDay();return null!=e?(e=ti(e,this.localeData()),this.add(e-t,"d")):t}function hi(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 di(e){return this.isValid()?null==e?this.day()||7:this.day(this.day()%7?e:e-7):null!=e?this:NaN}function li(e){return this._weekdaysParseExact?(r(this,"_weekdaysRegex")||fi.call(this),e?this._weekdaysStrictRegex:this._weekdaysRegex):this._weekdaysStrictRegex&&e?this._weekdaysStrictRegex:this._weekdaysRegex}function ci(e){return this._weekdaysParseExact?(r(this,"_weekdaysRegex")||fi.call(this),e?this._weekdaysShortStrictRegex:this._weekdaysShortRegex):this._weekdaysShortStrictRegex&&e?this._weekdaysShortStrictRegex:this._weekdaysShortRegex}function ui(e){return this._weekdaysParseExact?(r(this,"_weekdaysRegex")||fi.call(this),e?this._weekdaysMinStrictRegex:this._weekdaysMinRegex):this._weekdaysMinStrictRegex&&e?this._weekdaysMinStrictRegex:this._weekdaysMinRegex}function fi(){function e(e,t){return t.length-e.length}var t,i,o,n,s,r=[],a=[],d=[],l=[];for(t=0;7>t;t++)i=h([2e3,1]).day(t),o=this.weekdaysMin(i,""),n=this.weekdaysShort(i,""),s=this.weekdays(i,""),r.push(o),a.push(n),d.push(s),l.push(o),l.push(n),l.push(s);for(r.sort(e),a.sort(e),d.sort(e),l.sort(e),t=0;7>t;t++)a[t]=J(a[t]),d[t]=J(d[t]),l[t]=J(l[t]);this._weekdaysRegex=new RegExp("^("+l.join("|")+")","i"),this._weekdaysShortRegex=this._weekdaysRegex,this._weekdaysMinRegex=this._weekdaysRegex,this._weekdaysStrictRegex=new RegExp("^("+d.join("|")+")","i"),this._weekdaysShortStrictRegex=new RegExp("^("+a.join("|")+")","i"),this._weekdaysMinStrictRegex=new RegExp("^("+r.join("|")+")","i")}function pi(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 vi(){return this.hours()%12||12}function yi(){return this.hours()||24}function gi(e,t){U(e,0,0,function(){return this.localeData().meridiem(this.hours(),this.minutes(),t)})}function bi(e,t){return t._meridiemParse}function mi(e){return"p"===(e+"").toLowerCase().charAt(0)}function _i(e,t,i){return e>11?i?"pm":"PM":i?"am":"AM"}function wi(e,t){t[qo]=b(1e3*("0."+e))}function ki(){return this._isUTC?"UTC":""}function xi(){return this._isUTC?"Coordinated Universal Time":""}function Oi(e){return ze(1e3*e)}function Ei(){return ze.apply(null,arguments).parseZone()}function Mi(e,t,i){var o=this._calendar[e];return x(o)?o.call(t,i):o}function Di(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 Si(){return this._invalidDate}function Ci(e){return this._ordinal.replace("%d",e)}function Ti(e){return e}function Pi(e,t,i,o){var n=this._relativeTime[i];return x(n)?n(e,t,i,o):n.replace(/%d/i,e)}function Bi(e,t){var i=this._relativeTime[e>0?"future":"past"];return x(i)?i(t):i.replace(/%s/i,t)}function Fi(e,t,i,o){var n=I(),s=h().set(o,t);return n[i](s,e)}function Ii(e,t,i){if("number"==typeof e&&(t=e,e=void 0),e=e||"",null!=t)return Fi(e,t,i,"month");var o,n=[];for(o=0;12>o;o++)n[o]=Fi(e,o,i,"month");return n}function ji(e,t,i,o){"boolean"==typeof e?("number"==typeof t&&(i=t,t=void 0),t=t||""):(t=e,i=t,e=!1,"number"==typeof t&&(i=t,t=void 0),t=t||"");var n=I(),s=e?n._week.dow:0;if(null!=i)return Fi(t,(i+s)%7,o,"day");var r,a=[];for(r=0;7>r;r++)a[r]=Fi(t,(r+s)%7,o,"day");return a}function Ni(e,t){return Ii(e,t,"months")}function zi(e,t){return Ii(e,t,"monthsShort")}function Ri(e,t,i){return ji(e,t,i,"weekdays")}function Ai(e,t,i){return ji(e,t,i,"weekdaysShort")}function Li(e,t,i){return ji(e,t,i,"weekdaysMin")}function Hi(){var e=this._data;return this._milliseconds=Ln(this._milliseconds),this._days=Ln(this._days),this._months=Ln(this._months),e.milliseconds=Ln(e.milliseconds),e.seconds=Ln(e.seconds),e.minutes=Ln(e.minutes),e.hours=Ln(e.hours),e.months=Ln(e.months),e.years=Ln(e.years),this}function Wi(e,t,i,o){var n=nt(t,i);return e._milliseconds+=o*n._milliseconds,e._days+=o*n._days,e._months+=o*n._months,e._bubble()}function Yi(e,t){return Wi(this,e,t,1)}function Ui(e,t){return Wi(this,e,t,-1)}function Vi(e){return 0>e?Math.floor(e):Math.ceil(e)}function qi(){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*Vi(Xi(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(Gi(r)),a+=n,r-=Vi(Xi(n)),o=g(a/12),a%=12,h.days=r,h.months=a,h.years=o,this}function Gi(e){return 4800*e/146097}function Xi(e){return 146097*e/4800}function Ki(e){var t,i,o=this._milliseconds;if(e=z(e),"month"===e||"year"===e)return t=this._days+o/864e5,i=this._months+Gi(t),"month"===e?i:i/12;switch(t=this._days+Math.round(Xi(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 Zi(){return this._milliseconds+864e5*this._days+this._months%12*2592e6+31536e6*b(this._months/12)}function Qi(e){return function(){return this.as(e)}}function Ji(e){return e=z(e),this[e+"s"]()}function $i(e){return function(){return this._data[e]}}function eo(){return g(this.days()/7)}function to(e,t,i,o,n){return n.relativeTime(t||1,!!i,e,o)}function io(e,t,i){var o=nt(e).abs(),n=is(o.as("s")),s=is(o.as("m")),r=is(o.as("h")),a=is(o.as("d")),h=is(o.as("M")),d=is(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,to.apply(null,l)}function oo(e,t){return void 0===os[e]?!1:void 0===t?os[e]:(os[e]=t,!0)}function no(e){var t=this.localeData(),i=io(this,!e,t);return e&&(i=t.pastFuture(+this,i)),t.postformat(i)}function so(){var e,t,i,o=ns(this._milliseconds)/1e3,n=ns(this._days),s=ns(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 ro,ao;ao=Array.prototype.some?Array.prototype.some:function(e){for(var t=Object(this),i=t.length>>>0,o=0;i>o;o++)if(o in t&&e.call(this,t[o],o,t))return!0;return!1};var ho=t.momentProperties=[],lo=!1,co={};t.suppressDeprecationWarnings=!1,t.deprecationHandler=null;var uo;uo=Object.keys?Object.keys:function(e){var t,i=[];for(t in e)r(e,t)&&i.push(t);return i};var fo,po,vo={},yo={},go=/(\[[^\[]*\])|(\\)?([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?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g,bo=/(\[[^\[]*\])|(\\)?(LTS|LT|LL?L?L?|l{1,4})/g,mo={},_o={},wo=/\d/,ko=/\d\d/,xo=/\d{3}/,Oo=/\d{4}/,Eo=/[+-]?\d{6}/,Mo=/\d\d?/,Do=/\d\d\d\d?/,So=/\d\d\d\d\d\d?/,Co=/\d{1,3}/,To=/\d{1,4}/,Po=/[+-]?\d{1,6}/,Bo=/\d+/,Fo=/[+-]?\d+/,Io=/Z|[+-]\d\d:?\d\d/gi,jo=/Z|[+-]\d\d(?::?\d\d)?/gi,No=/[+-]?\d+(\.\d{1,3})?/,zo=/[0-9]*['a-z\u00A0-\u05FF\u0700-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]+|[\u0600-\u06FF\/]+(\s*?[\u0600-\u06FF]+){1,2}/i,Ro={},Ao={},Lo=0,Ho=1,Wo=2,Yo=3,Uo=4,Vo=5,qo=6,Go=7,Xo=8;po=Array.prototype.indexOf?Array.prototype.indexOf:function(e){var t;for(t=0;t=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",Fo),K("YY",Mo,ko),K("YYYY",To,Oo),K("YYYYY",Po,Eo),K("YYYYYY",Po,Eo),$(["YYYYY","YYYYYY"],Lo),$("YYYY",function(e,i){i[Lo]=2===e.length?t.parseTwoDigitYear(e):b(e)}),$("YY",function(e,i){i[Lo]=t.parseTwoDigitYear(e)}),$("Y",function(e,t){t[Lo]=parseInt(e,10)}),t.parseTwoDigitYear=function(e){return b(e)+(b(e)>68?1900:2e3)};var an=A("FullYear",!0);t.ISO_8601=function(){};var hn=w("moment().min is deprecated, use moment.max instead. https://github.com/moment/moment/issues/1548",function(){var e=ze.apply(null,arguments);return this.isValid()&&e.isValid()?this>e?this:e:u()}),dn=w("moment().max is deprecated, use moment.min instead. https://github.com/moment/moment/issues/1548",function(){var e=ze.apply(null,arguments);return this.isValid()&&e.isValid()?e>this?this:e:u()}),ln=function(){return Date.now?Date.now():+new Date};Ye("Z",":"),Ye("ZZ",""),K("Z",jo),K("ZZ",jo),$(["Z","ZZ"],function(e,t,i){i._useUTC=!0,i._tzm=Ue(jo,e)});var cn=/([\+\-]|\d\d)/gi;t.updateOffset=function(){};var un=/^(\-)?(?:(\d*)[. ])?(\d+)\:(\d+)(?:\:(\d+)\.?(\d{3})?\d*)?$/,fn=/^(-)?P(?:(-?[0-9,.]*)Y)?(?:(-?[0-9,.]*)M)?(?:(-?[0-9,.]*)W)?(?:(-?[0-9,.]*)D)?(?:T(?:(-?[0-9,.]*)H)?(?:(-?[0-9,.]*)M)?(?:(-?[0-9,.]*)S)?)?$/;nt.fn=He.prototype;var pn=dt(1,"add"),vn=dt(-1,"subtract");t.defaultFormat="YYYY-MM-DDTHH:mm:ssZ",t.defaultFormatUtc="YYYY-MM-DDTHH:mm:ss[Z]";var yn=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}),Wt("gggg","weekYear"),Wt("ggggg","weekYear"),Wt("GGGG","isoWeekYear"),Wt("GGGGG","isoWeekYear"),N("weekYear","gg"),N("isoWeekYear","GG"),K("G",Fo),K("g",Fo),K("GG",Mo,ko),K("gg",Mo,ko),K("GGGG",To,Oo),K("gggg",To,Oo),K("GGGGG",Po,Eo),K("ggggg",Po,Eo),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",wo),$("Q",function(e,t){t[Ho]=3*(b(e)-1)}),U("w",["ww",2],"wo","week"),U("W",["WW",2],"Wo","isoWeek"),N("week","w"),N("isoWeek","W"),K("w",Mo),K("ww",Mo,ko),K("W",Mo),K("WW",Mo,ko),ee(["w","ww","W","WW"],function(e,t,i,o){t[o.substr(0,1)]=b(e)});var gn={dow:0,doy:6};U("D",["DD",2],"Do","date"),N("date","D"),K("D",Mo),K("DD",Mo,ko),K("Do",function(e,t){return e?t._ordinalParse:t._ordinalParseLenient}),$(["D","DD"],Wo),$("Do",function(e,t){t[Wo]=b(e.match(Mo)[0],10)});var bn=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",Mo),K("e",Mo),K("E",Mo),K("dd",function(e,t){return t.weekdaysMinRegex(e)}),K("ddd",function(e,t){return t.weekdaysShortRegex(e)}),K("dddd",function(e,t){return t.weekdaysRegex(e)}),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 mn="Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),_n="Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),wn="Su_Mo_Tu_We_Th_Fr_Sa".split("_"),kn=zo,xn=zo,On=zo;U("DDD",["DDDD",3],"DDDo","dayOfYear"),N("dayOfYear","DDD"),K("DDD",Co),K("DDDD",xo),$(["DDD","DDDD"],function(e,t,i){i._dayOfYear=b(e)}),U("H",["HH",2],0,"hour"),U("h",["hh",2],0,vi),U("k",["kk",2],0,yi),U("hmm",0,0,function(){return""+vi.apply(this)+Y(this.minutes(),2)}),U("hmmss",0,0,function(){return""+vi.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)}),gi("a",!0),gi("A",!1),N("hour","h"),K("a",bi),K("A",bi),K("H",Mo),K("h",Mo),K("HH",Mo,ko),K("hh",Mo,ko),K("hmm",Do),K("hmmss",So),K("Hmm",Do),K("Hmmss",So),$(["H","HH"],Yo),$(["a","A"],function(e,t,i){i._isPm=i._locale.isPM(e),i._meridiem=e}),$(["h","hh"],function(e,t,i){t[Yo]=b(e),l(i).bigHour=!0}),$("hmm",function(e,t,i){var o=e.length-2;t[Yo]=b(e.substr(0,o)),t[Uo]=b(e.substr(o)),l(i).bigHour=!0}),$("hmmss",function(e,t,i){var o=e.length-4,n=e.length-2;t[Yo]=b(e.substr(0,o)),t[Uo]=b(e.substr(o,2)),t[Vo]=b(e.substr(n)),l(i).bigHour=!0}),$("Hmm",function(e,t,i){var o=e.length-2;t[Yo]=b(e.substr(0,o)),t[Uo]=b(e.substr(o))}),$("Hmmss",function(e,t,i){var o=e.length-4,n=e.length-2;t[Yo]=b(e.substr(0,o)),t[Uo]=b(e.substr(o,2)),t[Vo]=b(e.substr(n))});var En=/[ap]\.?m?\.?/i,Mn=A("Hours",!0);U("m",["mm",2],0,"minute"),N("minute","m"),K("m",Mo),K("mm",Mo,ko),$(["m","mm"],Uo);var Dn=A("Minutes",!1);U("s",["ss",2],0,"second"),N("second","s"),K("s",Mo),K("ss",Mo,ko),$(["s","ss"],Vo);var Sn=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",Co,wo),K("SS",Co,ko),K("SSS",Co,xo);var Cn;for(Cn="SSSS";Cn.length<=9;Cn+="S")K(Cn,Bo);for(Cn="S";Cn.length<=9;Cn+="S")$(Cn,wi);var Tn=A("Milliseconds",!1);U("z",0,0,"zoneAbbr"),U("zz",0,0,"zoneName");var Pn=v.prototype;Pn.add=pn,Pn.calendar=ct,Pn.clone=ut,Pn.diff=mt,Pn.endOf=Pt,Pn.format=xt,Pn.from=Ot,Pn.fromNow=Et,Pn.to=Mt,Pn.toNow=Dt,Pn.get=W,Pn.invalidAt=Lt,Pn.isAfter=ft,Pn.isBefore=pt,Pn.isBetween=vt,Pn.isSame=yt,Pn.isSameOrAfter=gt,Pn.isSameOrBefore=bt,Pn.isValid=Rt,Pn.lang=yn,Pn.locale=St,Pn.localeData=Ct,Pn.max=dn,Pn.min=hn,Pn.parsingFlags=At,Pn.set=W,Pn.startOf=Tt,Pn.subtract=vn,Pn.toArray=jt,Pn.toObject=Nt,Pn.toDate=It,Pn.toISOString=kt,Pn.toJSON=zt,Pn.toString=wt,Pn.unix=Ft,Pn.valueOf=Bt,Pn.creationData=Ht,Pn.year=an,Pn.isLeapYear=_e,Pn.weekYear=Yt,Pn.isoWeekYear=Ut,Pn.quarter=Pn.quarters=Kt,Pn.month=he,Pn.daysInMonth=de,Pn.week=Pn.weeks=$t,Pn.isoWeek=Pn.isoWeeks=ei,Pn.weeksInYear=qt,Pn.isoWeeksInYear=Vt,Pn.date=bn,Pn.day=Pn.days=ai,Pn.weekday=hi,Pn.isoWeekday=di,Pn.dayOfYear=pi,Pn.hour=Pn.hours=Mn,Pn.minute=Pn.minutes=Dn,Pn.second=Pn.seconds=Sn,Pn.millisecond=Pn.milliseconds=Tn,Pn.utcOffset=Ge,Pn.utc=Ke,Pn.local=Ze,Pn.parseZone=Qe,Pn.hasAlignedHourOffset=Je,Pn.isDST=$e,Pn.isDSTShifted=et,Pn.isLocal=tt,Pn.isUtcOffset=it,Pn.isUtc=ot,Pn.isUTC=ot,Pn.zoneAbbr=ki,Pn.zoneName=xi,Pn.dates=w("dates accessor is deprecated. Use date instead.",bn),Pn.months=w("months accessor is deprecated. Use month instead",he),Pn.years=w("years accessor is deprecated. Use year instead",an),Pn.zone=w("moment().zone is deprecated, use moment().utcOffset instead. https://github.com/moment/moment/issues/1779",Xe);var Bn=Pn,Fn={sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},In={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"},jn="Invalid date",Nn="%d",zn=/\d{1,2}/,Rn={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"},An=D.prototype;An._calendar=Fn,An.calendar=Mi,An._longDateFormat=In,An.longDateFormat=Di,An._invalidDate=jn,An.invalidDate=Si,An._ordinal=Nn,An.ordinal=Ci,An._ordinalParse=zn,An.preparse=Ti,An.postformat=Ti,An._relativeTime=Rn,An.relativeTime=Pi,An.pastFuture=Bi,An.set=E,An.months=oe,An._months=Zo,An.monthsShort=ne,An._monthsShort=Qo,An.monthsParse=re,An._monthsRegex=$o,An.monthsRegex=ce,An._monthsShortRegex=Jo,An.monthsShortRegex=le,An.week=Zt,An._week=gn,An.firstDayOfYear=Jt,An.firstDayOfWeek=Qt,An.weekdays=ii,An._weekdays=mn,An.weekdaysMin=ni,An._weekdaysMin=wn,An.weekdaysShort=oi,An._weekdaysShort=_n,An.weekdaysParse=ri,An._weekdaysRegex=kn,An.weekdaysRegex=li,An._weekdaysShortRegex=xn,An.weekdaysShortRegex=ci,An._weekdaysMinRegex=On,An.weekdaysMinRegex=ui,An.isPM=mi,An._meridiemParse=En,An.meridiem=_i,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 Ln=Math.abs,Hn=Qi("ms"),Wn=Qi("s"),Yn=Qi("m"),Un=Qi("h"),Vn=Qi("d"),qn=Qi("w"),Gn=Qi("M"),Xn=Qi("y"),Kn=$i("milliseconds"),Zn=$i("seconds"),Qn=$i("minutes"),Jn=$i("hours"),$n=$i("days"),es=$i("months"),ts=$i("years"),is=Math.round,os={s:45,m:45,h:22,d:26,M:11},ns=Math.abs,ss=He.prototype;ss.abs=Hi,ss.add=Yi,ss.subtract=Ui,ss.as=Ki,ss.asMilliseconds=Hn,ss.asSeconds=Wn,ss.asMinutes=Yn,ss.asHours=Un,ss.asDays=Vn,ss.asWeeks=qn,ss.asMonths=Gn,ss.asYears=Xn,ss.valueOf=Zi,ss._bubble=qi,ss.get=Ji,ss.milliseconds=Kn,ss.seconds=Zn,ss.minutes=Qn,ss.hours=Jn,ss.days=$n,ss.weeks=eo,ss.months=es,ss.years=ts,ss.humanize=no,ss.toISOString=so,ss.toString=so,ss.toJSON=so,ss.locale=St,ss.localeData=Ct,ss.toIsoString=w("toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)",so),ss.lang=yn,U("X",0,0,"unix"),U("x",0,0,"valueOf"),K("x",Fo),K("X",No),$("X",function(e,t,i){i._d=new Date(1e3*parseFloat(e,10))}),$("x",function(e,t,i){i._d=new Date(b(e))}),t.version="2.13.0",i(ze),t.fn=Bn,t.min=Ae,t.max=Le,t.now=ln,t.utc=h,t.unix=Oi,t.months=Ni,t.isDate=n,t.locale=P,t.invalid=u,t.duration=nt,t.isMoment=y,t.weekdays=Ri,t.parseZone=Ei,t.localeData=I,t.isDuration=We,t.monthsShort=zi,t.weekdaysMin=Li,t.defineLocale=B,t.updateLocale=F,t.locales=j,t.weekdaysShort=Ai,t.normalizeUnits=z,t.relativeTimeThreshold=oo,t.prototype=Bn;var rs=t;return rs})}).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),L=(i(8),i(10),i(77)),H=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=L.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=H.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();e.arrows.to.enabled=-1!=r.indexOf("to"),e.arrows.middle.enabled=-1!=r.indexOf("middle"),e.arrows.from.enabled=-1!=r.indexOf("from")}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 +"use strict";!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.vis=t():e.vis=t()}(this,function(){return function(e){function t(o){if(i[o])return i[o].exports;var n=i[o]={exports:{},id:o,loaded:!1};return e[o].call(n.exports,n,n.exports,t),n.loaded=!0,n.exports}var i={};return t.m=e,t.c=i,t.p="",t(0)}([function(e,t,i){t.util=i(1),t.DOMutil=i(7),t.DataSet=i(8),t.DataView=i(10),t.Queue=i(9),t.Network=i(11),t.network={Images:i(12),dotparser:i(77),gephiParser:i(78),allOptions:i(72)},t.network.convertDot=function(e){return t.network.dotparser.DOTToGraph(e)},t.network.convertGephi=function(e,i){return t.network.gephiParser.parseGephi(e,i)},t.moment=i(2),t.Hammer=i(58),t.keycharm=i(65)},function(e,t,i){var o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},n=i(2),s=i(6);t.isNumber=function(e){return e instanceof Number||"number"==typeof e},t.recursiveDOMDelete=function(e){if(e)for(;e.hasChildNodes()===!0;)t.recursiveDOMDelete(e.firstChild),e.removeChild(e.firstChild)},t.giveRange=function(e,t,i,o){if(t==e)return.5;var n=1/(t-e);return Math.max(0,(o-e)*n)},t.isString=function(e){return e instanceof String||"string"==typeof e},t.isDate=function(e){if(e instanceof Date)return!0;if(t.isString(e)){var i=r.exec(e);if(i)return!0;if(!isNaN(Date.parse(e)))return!0}return!1},t.randomUUID=function(){return s.v4()},t.assignAllKeys=function(e,t){for(var i in e)e.hasOwnProperty(i)&&"object"!==o(e[i])&&(e[i]=t)},t.fillIfDefined=function(e,i){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2];for(var s in e)void 0!==i[s]&&("object"!==o(i[s])?void 0!==i[s]&&null!==i[s]||void 0===e[s]||n!==!0?e[s]=i[s]:delete e[s]:"object"===o(e[s])&&t.fillIfDefined(e[s],i[s],n))},t.protoExtend=function(e,t){for(var i=1;i3&&void 0!==arguments[3]&&arguments[3];if(Array.isArray(o))throw new TypeError("Arrays are not supported by deepExtend");for(var s=2;s3&&void 0!==arguments[3]&&arguments[3];if(Array.isArray(o))throw new TypeError("Arrays are not supported by deepExtend");for(var s in o)if(o.hasOwnProperty(s)&&e.indexOf(s)==-1)if(o[s]&&o[s].constructor===Object)void 0===i[s]&&(i[s]={}),i[s].constructor===Object?t.deepExtend(i[s],o[s]):null===o[s]&&void 0!==i[s]&&n===!0?delete i[s]:i[s]=o[s];else if(Array.isArray(o[s])){i[s]=[];for(var r=0;r=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(e.indexOf("rgba")!=-1)return e;if(e.indexOf("rgb")!=-1){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]&&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;r<=a&&s0)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 e<.5?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 e<.5?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 e<.5?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 e<.5?16*e*e*e*e*e:1+16*--e*e*e*e*e}},t.getScrollBarWidth=function(){var e=document.createElement("p");e.style.width="100%",e.style.height="200px";var t=document.createElement("div");t.style.position="absolute",t.style.top="0px",t.style.left="0px",t.style.visibility="hidden",t.style.width="200px",t.style.height="150px",t.style.overflow="hidden",t.appendChild(e),document.body.appendChild(t);var i=e.offsetWidth;t.style.overflow="scroll";var o=e.offsetWidth;return i==o&&(o=t.clientWidth),document.body.removeChild(t),i-o}},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 po.apply(null,arguments)}function i(e){po=e}function o(e){return e instanceof Array||"[object Array]"===Object.prototype.toString.call(e)}function n(e){return null!=e&&"[object Object]"===Object.prototype.toString.call(e)}function s(e){var t;for(t in e)return!1;return!0}function r(e){return e instanceof Date||"[object Date]"===Object.prototype.toString.call(e)}function a(e,t){var i,o=[];for(i=0;i0)for(i in yo)o=yo[i],n=t[o],v(n)||(e[o]=n);return e}function g(e){y(this,e),this._d=new Date(null!=e._d?e._d.getTime():NaN),go===!1&&(go=!0,t.updateOffset(this),go=!1)}function b(e){return e instanceof g||null!=e&&null!=e._isAMomentObject}function m(e){return e<0?Math.ceil(e)||0:Math.floor(e)}function _(e){var t=+e,i=0;return 0!==t&&isFinite(t)&&(i=m(t)),i}function w(e,t,i){var o,n=Math.min(e.length,t.length),s=Math.abs(e.length-t.length),r=0;for(o=0;o0?"future":"past"];return E(i)?i(t):i.replace(/%s/i,t)}function j(e,t){var i=e.toLowerCase();Co[i]=Co[i+"s"]=Co[t]=e}function N(e){return"string"==typeof e?Co[e]||Co[e.toLowerCase()]:void 0}function z(e){var t,i,o={};for(i in e)h(e,i)&&(t=N(i),t&&(o[t]=e[i]));return o}function R(e,t){So[e]=t}function A(e){var t=[];for(var i in e)t.push({unit:i,priority:So[i]});return t.sort(function(e,t){return e.priority-t.priority}),t}function L(e,i){return function(o){return null!=o?(W(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 W(e,t,i){e.isValid()&&e._d["set"+(e._isUTC?"UTC":"")+t](i)}function Y(e){return e=N(e),E(this[e])?this[e]():this}function U(e,t){if("object"==typeof e){e=z(e);for(var i=A(e),o=0;o=0;return(s?i?"+":"":"-")+Math.pow(10,Math.max(0,n)).toString().substr(1)+o}function q(e,t,i,o){var n=o;"string"==typeof o&&(n=function(){return this[o]()}),e&&(Bo[e]=n),t&&(Bo[t[0]]=function(){return V(n.apply(this,arguments),t[1],t[2])}),i&&(Bo[i]=function(){return this.localeData().ordinal(n.apply(this,arguments),e)})}function G(e){return e.match(/\[[\s\S]/)?e.replace(/^\[|\]$/g,""):e.replace(/\\/g,"")}function X(e){var t,i,o=e.match(Do);for(t=0,i=o.length;t=0&&To.test(e);)e=e.replace(To,i),To.lastIndex=0,o-=1;return e}function Q(e,t,i){Zo[e]=E(t)?t:function(e,o){return e&&i?i:t}}function J(e,t){return h(Zo,e)?Zo[e](t._strict,t._locale):new RegExp($(e))}function $(e){return ee(e.replace("\\","").replace(/\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g,function(e,t,i,o,n){return t||i||o||n}))}function ee(e){return e.replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&")}function te(e,t){var i,o=t;for("string"==typeof e&&(e=[e]),"number"==typeof t&&(o=function(e,i){i[t]=_(e)}),i=0;i=0&&isFinite(a.getFullYear())&&a.setFullYear(e),a}function me(e){var t=new Date(Date.UTC.apply(null,arguments));return e<100&&e>=0&&isFinite(t.getUTCFullYear())&&t.setUTCFullYear(e),t}function _e(e,t,i){var o=7+t-i,n=(7+me(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 d<=0?(s=e-1,r=ve(s)+d):d>ve(e)?(s=e+1,r=d-ve(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 r<1?(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(ve(e)-o+n)/7}function Oe(e){return ke(e,this._week.dow,this._week.doy).week}function Ee(){return this._week.dow}function Me(){return this._week.doy}function Ce(e){var t=this.localeData().week(this);return null==e?t:this.add(7*(e-t),"d")}function Se(e){var t=ke(this,1,4).week;return null==e?t:this.add(7*(e-t),"d")}function De(e,t){return"string"!=typeof e?e:isNaN(e)?(e=t.weekdaysParse(e),"number"==typeof e?e:null):parseInt(e,10)}function Te(e,t){return"string"==typeof e?t.weekdaysParse(e)%7||7:isNaN(e)?null:e}function Pe(e,t){return e?o(this._weekdays)?this._weekdays[e.day()]:this._weekdays[this._weekdays.isFormat.test(t)?"format":"standalone"][e.day()]:this._weekdays}function Be(e){return e?this._weekdaysShort[e.day()]:this._weekdaysShort}function Fe(e){return e?this._weekdaysMin[e.day()]:this._weekdaysMin}function Ie(e,t,i){var o,n,s,r=e.toLocaleLowerCase();if(!this._weekdaysParse)for(this._weekdaysParse=[],this._shortWeekdaysParse=[],this._minWeekdaysParse=[],o=0;o<7;++o)s=l([2e3,1]).day(o),this._minWeekdaysParse[o]=this.weekdaysMin(s,"").toLocaleLowerCase(),this._shortWeekdaysParse[o]=this.weekdaysShort(s,"").toLocaleLowerCase(),this._weekdaysParse[o]=this.weekdays(s,"").toLocaleLowerCase();return i?"dddd"===t?(n=_o.call(this._weekdaysParse,r),n!==-1?n:null):"ddd"===t?(n=_o.call(this._shortWeekdaysParse,r),n!==-1?n:null):(n=_o.call(this._minWeekdaysParse,r),n!==-1?n:null):"dddd"===t?(n=_o.call(this._weekdaysParse,r),n!==-1?n:(n=_o.call(this._shortWeekdaysParse,r),n!==-1?n:(n=_o.call(this._minWeekdaysParse,r),n!==-1?n:null))):"ddd"===t?(n=_o.call(this._shortWeekdaysParse,r),n!==-1?n:(n=_o.call(this._weekdaysParse,r),n!==-1?n:(n=_o.call(this._minWeekdaysParse,r),n!==-1?n:null))):(n=_o.call(this._minWeekdaysParse,r),n!==-1?n:(n=_o.call(this._weekdaysParse,r),n!==-1?n:(n=_o.call(this._shortWeekdaysParse,r),n!==-1?n:null)))}function je(e,t,i){var o,n,s;if(this._weekdaysParseExact)return Ie.call(this,e,t,i);for(this._weekdaysParse||(this._weekdaysParse=[],this._minWeekdaysParse=[],this._shortWeekdaysParse=[],this._fullWeekdaysParse=[]),o=0;o<7;o++){if(n=l([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 Ne(e){if(!this.isValid())return null!=e?this:NaN;var t=this._isUTC?this._d.getUTCDay():this._d.getDay();return null!=e?(e=De(e,this.localeData()),this.add(e-t,"d")):t}function ze(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 Re(e){if(!this.isValid())return null!=e?this:NaN;if(null!=e){var t=Te(e,this.localeData());return this.day(this.day()%7?t:t-7)}return this.day()||7}function Ae(e){return this._weekdaysParseExact?(h(this,"_weekdaysRegex")||We.call(this),e?this._weekdaysStrictRegex:this._weekdaysRegex):(h(this,"_weekdaysRegex")||(this._weekdaysRegex=bn),this._weekdaysStrictRegex&&e?this._weekdaysStrictRegex:this._weekdaysRegex)}function Le(e){return this._weekdaysParseExact?(h(this,"_weekdaysRegex")||We.call(this),e?this._weekdaysShortStrictRegex:this._weekdaysShortRegex):(h(this,"_weekdaysShortRegex")||(this._weekdaysShortRegex=mn),this._weekdaysShortStrictRegex&&e?this._weekdaysShortStrictRegex:this._weekdaysShortRegex)}function He(e){return this._weekdaysParseExact?(h(this,"_weekdaysRegex")||We.call(this),e?this._weekdaysMinStrictRegex:this._weekdaysMinRegex):(h(this,"_weekdaysMinRegex")||(this._weekdaysMinRegex=_n),this._weekdaysMinStrictRegex&&e?this._weekdaysMinStrictRegex:this._weekdaysMinRegex)}function We(){function e(e,t){return t.length-e.length}var t,i,o,n,s,r=[],a=[],h=[],d=[];for(t=0;t<7;t++)i=l([2e3,1]).day(t),o=this.weekdaysMin(i,""),n=this.weekdaysShort(i,""),s=this.weekdays(i,""),r.push(o),a.push(n),h.push(s),d.push(o),d.push(n),d.push(s);for(r.sort(e),a.sort(e),h.sort(e),d.sort(e),t=0;t<7;t++)a[t]=ee(a[t]),h[t]=ee(h[t]),d[t]=ee(d[t]);this._weekdaysRegex=new RegExp("^("+d.join("|")+")","i"),this._weekdaysShortRegex=this._weekdaysRegex,this._weekdaysMinRegex=this._weekdaysRegex,this._weekdaysStrictRegex=new RegExp("^("+h.join("|")+")","i"),this._weekdaysShortStrictRegex=new RegExp("^("+a.join("|")+")","i"),this._weekdaysMinStrictRegex=new RegExp("^("+r.join("|")+")","i")}function Ye(){return this.hours()%12||12}function Ue(){return this.hours()||24}function Ve(e,t){q(e,0,0,function(){return this.localeData().meridiem(this.hours(),this.minutes(),t)})}function qe(e,t){return t._meridiemParse}function Ge(e){return"p"===(e+"").toLowerCase().charAt(0)}function Xe(e,t,i){return e>11?i?"pm":"PM":i?"am":"AM"}function Ke(e){return e?e.toLowerCase().replace("_","-"):e}function Ze(e){for(var t,i,o,n,s=0;s0;){if(o=Qe(n.slice(0,t).join("-")))return o;if(i&&i.length>=t&&w(n,i,!0)>=t-1)break;t--}s++}return null}function Qe(t){var i=null;if(!En[t]&&"undefined"!=typeof e&&e&&e.exports)try{i=wn._abbr,!function(){var e=new Error('Cannot find module "./locale"');throw e.code="MODULE_NOT_FOUND",e}(),Je(i)}catch(e){}return En[t]}function Je(e,t){var i;return e&&(i=v(t)?tt(e):$e(e,t),i&&(wn=i)),wn._abbr}function $e(e,t){if(null!==t){var i=On;return t.abbr=e,null!=En[e]?(O("defineLocaleOverride","use moment.updateLocale(localeName, config) to change an existing locale. moment.defineLocale(localeName, config) should only be used for creating a new locale See http://momentjs.com/guides/#/warnings/define-locale/ for more info."),i=En[e]._config):null!=t.parentLocale&&(null!=En[t.parentLocale]?i=En[t.parentLocale]._config:O("parentLocaleUndefined","specified parentLocale is not defined yet. See http://momentjs.com/guides/#/warnings/parent-locale/")),En[e]=new S(C(i,t)),Je(e),En[e]}return delete En[e],null}function et(e,t){if(null!=t){var i,o=On;null!=En[e]&&(o=En[e]._config),t=C(o,t),i=new S(t),i.parentLocale=En[e],En[e]=i,Je(e)}else null!=En[e]&&(null!=En[e].parentLocale?En[e]=En[e].parentLocale:null!=En[e]&&delete En[e]);return En[e]}function tt(e){var t;if(e&&e._locale&&e._locale._abbr&&(e=e._locale._abbr),!e)return wn;if(!o(e)){if(t=Qe(e))return t;e=[e]}return Ze(e)}function it(){return mo(En)}function ot(e){var t,i=e._a;return i&&u(e).overflow===-2&&(t=i[$o]<0||i[$o]>11?$o:i[en]<1||i[en]>ne(i[Jo],i[$o])?en:i[tn]<0||i[tn]>24||24===i[tn]&&(0!==i[on]||0!==i[nn]||0!==i[sn])?tn:i[on]<0||i[on]>59?on:i[nn]<0||i[nn]>59?nn:i[sn]<0||i[sn]>999?sn:-1, +u(e)._overflowDayOfYear&&(ten)&&(t=en),u(e)._overflowWeeks&&t===-1&&(t=rn),u(e)._overflowWeekday&&t===-1&&(t=an),u(e).overflow=t),e}function nt(e){var t,i,o,n,s,r,a=e._i,h=Mn.exec(a)||Cn.exec(a);if(h){for(u(e).iso=!0,t=0,i=Dn.length;tve(n)&&(u(e)._overflowDayOfYear=!0),i=me(n,0,e._dayOfYear),e._a[$o]=i.getUTCMonth(),e._a[en]=i.getUTCDate()),t=0;t<3&&null==e._a[t];++t)e._a[t]=s[t]=o[t];for(;t<7;t++)e._a[t]=s[t]=null==e._a[t]?2===t?1:0:e._a[t];24===e._a[tn]&&0===e._a[on]&&0===e._a[nn]&&0===e._a[sn]&&(e._nextDay=!0,e._a[tn]=0),e._d=(e._useUTC?me:be).apply(null,s),null!=e._tzm&&e._d.setUTCMinutes(e._d.getUTCMinutes()-e._tzm),e._nextDay&&(e._a[tn]=24)}}function dt(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=rt(t.GG,e._a[Jo],ke(bt(),1,4).year),o=rt(t.W,1),n=rt(t.E,1),(n<1||n>7)&&(h=!0)):(s=e._locale._week.dow,r=e._locale._week.doy,i=rt(t.gg,e._a[Jo],ke(bt(),s,r).year),o=rt(t.w,1),null!=t.d?(n=t.d,(n<0||n>6)&&(h=!0)):null!=t.e?(n=t.e+s,(t.e<0||t.e>6)&&(h=!0)):n=s),o<1||o>xe(i,s,r)?u(e)._overflowWeeks=!0:null!=h?u(e)._overflowWeekday=!0:(a=we(i,o,n,s,r),e._a[Jo]=a.year,e._dayOfYear=a.dayOfYear)}function lt(e){if(e._f===t.ISO_8601)return void nt(e);e._a=[],u(e).empty=!0;var i,o,n,s,r,a=""+e._i,h=a.length,d=0;for(n=Z(e._f,e._locale).match(Do)||[],i=0;i0&&u(e).unusedInput.push(r),a=a.slice(a.indexOf(o)+o.length),d+=o.length),Bo[s]?(o?u(e).empty=!1:u(e).unusedTokens.push(s),oe(s,o,e)):e._strict&&!o&&u(e).unusedTokens.push(s);u(e).charsLeftOver=h-d,a.length>0&&u(e).unusedInput.push(a),e._a[tn]<=12&&u(e).bigHour===!0&&e._a[tn]>0&&(u(e).bigHour=void 0),u(e).parsedDateParts=e._a.slice(0),u(e).meridiem=e._meridiem,e._a[tn]=ct(e._locale,e._a[tn],e._meridiem),ht(e),ot(e)}function ct(e,t,i){var o;return null==i?t:null!=e.meridiemHour?e.meridiemHour(t,i):null!=e.isPM?(o=e.isPM(i),o&&t<12&&(t+=12),o||12!==t||(t=0),t):t}function ut(e){var t,i,o,n,s;if(0===e._f.length)return u(e).invalidFormat=!0,void(e._d=new Date(NaN));for(n=0;nthis.clone().month(0).utcOffset()||this.utcOffset()>this.clone().month(5).utcOffset()}function Nt(){if(!v(this._isDSTShifted))return this._isDSTShifted;var e={};if(y(e,this),e=vt(e),e._a){var t=e._isUTC?l(e._a):bt(e._a);this._isDSTShifted=this.isValid()&&w(e._a,t.toArray())>0}else this._isDSTShifted=!1;return this._isDSTShifted}function zt(){return!!this.isValid()&&!this._isUTC}function Rt(){return!!this.isValid()&&this._isUTC}function At(){return!!this.isValid()&&(this._isUTC&&0===this._offset)}function Lt(e,t){var i,o,n,s=e,r=null;return xt(e)?s={ms:e._milliseconds,d:e._days,M:e._months}:"number"==typeof e?(s={},t?s[t]=e:s.milliseconds=e):(r=Nn.exec(e))?(i="-"===r[1]?-1:1,s={y:0,d:_(r[en])*i,h:_(r[tn])*i,m:_(r[on])*i,s:_(r[nn])*i,ms:_(Ot(1e3*r[sn]))*i}):(r=zn.exec(e))?(i="-"===r[1]?-1:1,s={y:Ht(r[2],i),M:Ht(r[3],i),w:Ht(r[4],i),d:Ht(r[5],i),h:Ht(r[6],i),m:Ht(r[7],i),s:Ht(r[8],i)}):null==s?s={}:"object"==typeof s&&("from"in s||"to"in s)&&(n=Yt(bt(s.from),bt(s.to)),s={},s.ms=n.milliseconds,s.M=n.months),o=new kt(s),xt(e)&&h(e,"_locale")&&(o._locale=e._locale),o}function Ht(e,t){var i=e&&parseFloat(e.replace(",","."));return(isNaN(i)?0:i)*t}function Wt(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 Yt(e,t){var i;return e.isValid()&&t.isValid()?(t=Ct(t,e),e.isBefore(t)?i=Wt(e,t):(i=Wt(t,e),i.milliseconds=-i.milliseconds,i.months=-i.months),i):{milliseconds:0,months:0}}function Ut(e,t){return function(i,o){var n,s;return null===o||isNaN(+o)||(O(t,"moment()."+t+"(period, number) is deprecated. Please use moment()."+t+"(number, period). See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info."),s=i,i=o,o=s),i="string"==typeof i?+i:i,n=Lt(i,o),Vt(this,n,e),this}}function Vt(e,i,o,n){var s=i._milliseconds,r=Ot(i._days),a=Ot(i._months);e.isValid()&&(n=null==n||n,s&&e._d.setTime(e._d.valueOf()+s*o),r&&W(e,"Date",H(e,"Date")+r*o),a&&de(e,H(e,"Month")+a*o),n&&t.updateOffset(e,r||a))}function qt(e,t){var i=e.diff(t,"days",!0);return i<-6?"sameElse":i<-1?"lastWeek":i<0?"lastDay":i<1?"sameDay":i<2?"nextDay":i<7?"nextWeek":"sameElse"}function Gt(e,i){var o=e||bt(),n=Ct(o,this).startOf("day"),s=t.calendarFormat(this,n)||"sameElse",r=i&&(E(i[s])?i[s].call(this,o):i[s]);return this.format(r||this.localeData().calendar(s,this,bt(o)))}function Xt(){return new g(this)}function Kt(e,t){var i=b(e)?e:bt(e);return!(!this.isValid()||!i.isValid())&&(t=N(v(t)?"millisecond":t),"millisecond"===t?this.valueOf()>i.valueOf():i.valueOf()s&&(t=s),Ti.call(this,e,t,i,o,n))}function Ti(e,t,i,o,n){var s=we(e,t,i,o,n),r=me(s.year,0,s.dayOfYear);return this.year(r.getUTCFullYear()),this.month(r.getUTCMonth()),this.date(r.getUTCDate()),this}function Pi(e){return null==e?Math.ceil((this.month()+1)/3):this.month(3*(e-1)+this.month()%3)}function Bi(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 Fi(e,t){t[sn]=_(1e3*("0."+e))}function Ii(){return this._isUTC?"UTC":""}function ji(){return this._isUTC?"Coordinated Universal Time":""}function Ni(e){return bt(1e3*e)}function zi(){return bt.apply(null,arguments).parseZone()}function Ri(e){return e}function Ai(e,t,i,o){var n=tt(),s=l().set(o,t);return n[i](s,e)}function Li(e,t,i){if("number"==typeof e&&(t=e,e=void 0),e=e||"",null!=t)return Ai(e,t,i,"month");var o,n=[];for(o=0;o<12;o++)n[o]=Ai(e,o,i,"month");return n}function Hi(e,t,i,o){"boolean"==typeof e?("number"==typeof t&&(i=t,t=void 0),t=t||""):(t=e,i=t,e=!1,"number"==typeof t&&(i=t,t=void 0),t=t||"");var n=tt(),s=e?n._week.dow:0;if(null!=i)return Ai(t,(i+s)%7,o,"day");var r,a=[];for(r=0;r<7;r++)a[r]=Ai(t,(r+s)%7,o,"day");return a}function Wi(e,t){return Li(e,t,"months")}function Yi(e,t){return Li(e,t,"monthsShort")}function Ui(e,t,i){return Hi(e,t,i,"weekdays")}function Vi(e,t,i){return Hi(e,t,i,"weekdaysShort")}function qi(e,t,i){return Hi(e,t,i,"weekdaysMin")}function Gi(){var e=this._data;return this._milliseconds=Kn(this._milliseconds),this._days=Kn(this._days),this._months=Kn(this._months),e.milliseconds=Kn(e.milliseconds),e.seconds=Kn(e.seconds),e.minutes=Kn(e.minutes),e.hours=Kn(e.hours),e.months=Kn(e.months),e.years=Kn(e.years),this}function Xi(e,t,i,o){var n=Lt(t,i);return e._milliseconds+=o*n._milliseconds,e._days+=o*n._days,e._months+=o*n._months,e._bubble()}function Ki(e,t){return Xi(this,e,t,1)}function Zi(e,t){return Xi(this,e,t,-1)}function Qi(e){return e<0?Math.floor(e):Math.ceil(e)}function Ji(){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||s<=0&&r<=0&&a<=0||(s+=864e5*Qi(eo(a)+r),r=0,a=0),h.milliseconds=s%1e3,e=m(s/1e3),h.seconds=e%60,t=m(e/60),h.minutes=t%60,i=m(t/60),h.hours=i%24,r+=m(i/24),n=m($i(r)),a+=n,r-=Qi(eo(n)),o=m(a/12),a%=12,h.days=r,h.months=a,h.years=o,this}function $i(e){return 4800*e/146097}function eo(e){return 146097*e/4800}function to(e){var t,i,o=this._milliseconds;if(e=N(e),"month"===e||"year"===e)return t=this._days+o/864e5,i=this._months+$i(t),"month"===e?i:i/12;switch(t=this._days+Math.round(eo(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 io(){return this._milliseconds+864e5*this._days+this._months%12*2592e6+31536e6*_(this._months/12)}function oo(e){return function(){return this.as(e)}}function no(e){return e=N(e),this[e+"s"]()}function so(e){return function(){return this._data[e]}}function ro(){return m(this.days()/7)}function ao(e,t,i,o,n){return n.relativeTime(t||1,!!i,e,o)}function ho(e,t,i){var o=Lt(e).abs(),n=cs(o.as("s")),s=cs(o.as("m")),r=cs(o.as("h")),a=cs(o.as("d")),h=cs(o.as("M")),d=cs(o.as("y")),l=n0,l[4]=i,ao.apply(null,l)}function lo(e){return void 0===e?cs:"function"==typeof e&&(cs=e,!0)}function co(e,t){return void 0!==us[e]&&(void 0===t?us[e]:(us[e]=t,!0))}function uo(e){var t=this.localeData(),i=ho(this,!e,t);return e&&(i=t.pastFuture(+this,i)),t.postformat(i)}function fo(){var e,t,i,o=fs(this._milliseconds)/1e3,n=fs(this._days),s=fs(this._months);e=m(o/60),t=m(e/60),o%=60,e%=60,i=m(s/12),s%=12;var r=i,a=s,h=n,d=t,l=e,c=o,u=this.asSeconds();return u?(u<0?"-":"")+"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 po,vo;vo=Array.prototype.some?Array.prototype.some:function(e){for(var t=Object(this),i=t.length>>>0,o=0;o68?1900:2e3)};var fn=L("FullYear",!0);q("w",["ww",2],"wo","week"),q("W",["WW",2],"Wo","isoWeek"),j("week","w"),j("isoWeek","W"),R("week",5),R("isoWeek",5),Q("w",Ro),Q("ww",Ro,Io),Q("W",Ro),Q("WW",Ro,Io),ie(["w","ww","W","WW"],function(e,t,i,o){t[o.substr(0,1)]=_(e)});var pn={dow:0,doy:6};q("d",0,"do","day"),q("dd",0,0,function(e){return this.localeData().weekdaysMin(this,e)}),q("ddd",0,0,function(e){return this.localeData().weekdaysShort(this,e)}),q("dddd",0,0,function(e){return this.localeData().weekdays(this,e)}),q("e",0,0,"weekday"),q("E",0,0,"isoWeekday"),j("day","d"),j("weekday","e"),j("isoWeekday","E"),R("day",11),R("weekday",11),R("isoWeekday",11),Q("d",Ro),Q("e",Ro),Q("E",Ro),Q("dd",function(e,t){return t.weekdaysMinRegex(e)}),Q("ddd",function(e,t){return t.weekdaysShortRegex(e)}),Q("dddd",function(e,t){return t.weekdaysRegex(e)}),ie(["dd","ddd","dddd"],function(e,t,i,o){var n=i._locale.weekdaysParse(e,o,i._strict);null!=n?t.d=n:u(i).invalidWeekday=e}),ie(["d","e","E"],function(e,t,i,o){t[o]=_(e)});var vn="Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),yn="Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),gn="Su_Mo_Tu_We_Th_Fr_Sa".split("_"),bn=Ko,mn=Ko,_n=Ko;q("H",["HH",2],0,"hour"),q("h",["hh",2],0,Ye),q("k",["kk",2],0,Ue),q("hmm",0,0,function(){return""+Ye.apply(this)+V(this.minutes(),2)}),q("hmmss",0,0,function(){return""+Ye.apply(this)+V(this.minutes(),2)+V(this.seconds(),2)}),q("Hmm",0,0,function(){return""+this.hours()+V(this.minutes(),2)}),q("Hmmss",0,0,function(){return""+this.hours()+V(this.minutes(),2)+V(this.seconds(),2)}),Ve("a",!0),Ve("A",!1),j("hour","h"),R("hour",13),Q("a",qe),Q("A",qe),Q("H",Ro),Q("h",Ro),Q("HH",Ro,Io),Q("hh",Ro,Io),Q("hmm",Ao),Q("hmmss",Lo),Q("Hmm",Ao),Q("Hmmss",Lo),te(["H","HH"],tn),te(["a","A"],function(e,t,i){i._isPm=i._locale.isPM(e),i._meridiem=e}),te(["h","hh"],function(e,t,i){t[tn]=_(e),u(i).bigHour=!0}),te("hmm",function(e,t,i){var o=e.length-2;t[tn]=_(e.substr(0,o)),t[on]=_(e.substr(o)),u(i).bigHour=!0}),te("hmmss",function(e,t,i){var o=e.length-4,n=e.length-2;t[tn]=_(e.substr(0,o)),t[on]=_(e.substr(o,2)),t[nn]=_(e.substr(n)),u(i).bigHour=!0}),te("Hmm",function(e,t,i){var o=e.length-2;t[tn]=_(e.substr(0,o)),t[on]=_(e.substr(o))}),te("Hmmss",function(e,t,i){var o=e.length-4,n=e.length-2;t[tn]=_(e.substr(0,o)),t[on]=_(e.substr(o,2)),t[nn]=_(e.substr(n))});var wn,kn=/[ap]\.?m?\.?/i,xn=L("Hours",!0),On={calendar:wo,longDateFormat:ko,invalidDate:xo,ordinal:Oo,ordinalParse:Eo,relativeTime:Mo,months:dn,monthsShort:ln,week:pn,weekdays:vn,weekdaysMin:gn,weekdaysShort:yn,meridiemParse:kn},En={},Mn=/^\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)?)?/,Cn=/^\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)?)?/,Sn=/Z|[+-]\d\d(?::?\d\d)?/,Dn=[["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}/]],Tn=[["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/]],Pn=/^\/?Date\((\-?\d+)/i;t.createFromInputFallback=x("value provided is not in a recognized ISO format. moment construction falls back to js Date(), which is not reliable across all browsers and versions. Non ISO date formats are discouraged and will be removed in an upcoming major release. Please refer to http://momentjs.com/guides/#/warnings/js-date/ for more info.",function(e){e._d=new Date(e._i+(e._useUTC?" UTC":""))}),t.ISO_8601=function(){};var Bn=x("moment().min is deprecated, use moment.max instead. http://momentjs.com/guides/#/warnings/min-max/",function(){var e=bt.apply(null,arguments);return this.isValid()&&e.isValid()?ethis?this:e:p()}),In=function(){return Date.now?Date.now():+new Date};Et("Z",":"),Et("ZZ",""),Q("Z",Go),Q("ZZ",Go),te(["Z","ZZ"],function(e,t,i){i._useUTC=!0,i._tzm=Mt(Go,e)});var jn=/([\+\-]|\d\d)/gi;t.updateOffset=function(){};var Nn=/^(\-)?(?:(\d*)[. ])?(\d+)\:(\d+)(?:\:(\d+)(\.\d*)?)?$/,zn=/^(-)?P(?:(-?[0-9,.]*)Y)?(?:(-?[0-9,.]*)M)?(?:(-?[0-9,.]*)W)?(?:(-?[0-9,.]*)D)?(?:T(?:(-?[0-9,.]*)H)?(?:(-?[0-9,.]*)M)?(?:(-?[0-9,.]*)S)?)?$/;Lt.fn=kt.prototype;var Rn=Ut(1,"add"),An=Ut(-1,"subtract");t.defaultFormat="YYYY-MM-DDTHH:mm:ssZ",t.defaultFormatUtc="YYYY-MM-DDTHH:mm:ss[Z]";var Ln=x("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)});q(0,["gg",2],0,function(){return this.weekYear()%100}),q(0,["GG",2],0,function(){return this.isoWeekYear()%100}),Oi("gggg","weekYear"),Oi("ggggg","weekYear"),Oi("GGGG","isoWeekYear"),Oi("GGGGG","isoWeekYear"),j("weekYear","gg"),j("isoWeekYear","GG"),R("weekYear",1),R("isoWeekYear",1),Q("G",Vo),Q("g",Vo),Q("GG",Ro,Io),Q("gg",Ro,Io),Q("GGGG",Wo,No),Q("gggg",Wo,No),Q("GGGGG",Yo,zo),Q("ggggg",Yo,zo),ie(["gggg","ggggg","GGGG","GGGGG"],function(e,t,i,o){t[o.substr(0,2)]=_(e)}),ie(["gg","GG"],function(e,i,o,n){i[n]=t.parseTwoDigitYear(e)}),q("Q",0,"Qo","quarter"),j("quarter","Q"),R("quarter",7),Q("Q",Fo),te("Q",function(e,t){t[$o]=3*(_(e)-1)}),q("D",["DD",2],"Do","date"),j("date","D"),R("date",9),Q("D",Ro),Q("DD",Ro,Io),Q("Do",function(e,t){return e?t._ordinalParse:t._ordinalParseLenient}),te(["D","DD"],en),te("Do",function(e,t){t[en]=_(e.match(Ro)[0],10)});var Hn=L("Date",!0);q("DDD",["DDDD",3],"DDDo","dayOfYear"),j("dayOfYear","DDD"),R("dayOfYear",4),Q("DDD",Ho),Q("DDDD",jo),te(["DDD","DDDD"],function(e,t,i){i._dayOfYear=_(e)}),q("m",["mm",2],0,"minute"),j("minute","m"),R("minute",14),Q("m",Ro),Q("mm",Ro,Io),te(["m","mm"],on);var Wn=L("Minutes",!1);q("s",["ss",2],0,"second"),j("second","s"),R("second",15),Q("s",Ro),Q("ss",Ro,Io),te(["s","ss"],nn);var Yn=L("Seconds",!1);q("S",0,0,function(){return~~(this.millisecond()/100)}),q(0,["SS",2],0,function(){return~~(this.millisecond()/10)}),q(0,["SSS",3],0,"millisecond"),q(0,["SSSS",4],0,function(){return 10*this.millisecond()}),q(0,["SSSSS",5],0,function(){return 100*this.millisecond()}),q(0,["SSSSSS",6],0,function(){return 1e3*this.millisecond()}),q(0,["SSSSSSS",7],0,function(){return 1e4*this.millisecond()}),q(0,["SSSSSSSS",8],0,function(){return 1e5*this.millisecond()}),q(0,["SSSSSSSSS",9],0,function(){return 1e6*this.millisecond()}),j("millisecond","ms"),R("millisecond",16),Q("S",Ho,Fo),Q("SS",Ho,Io),Q("SSS",Ho,jo);var Un;for(Un="SSSS";Un.length<=9;Un+="S")Q(Un,Uo);for(Un="S";Un.length<=9;Un+="S")te(Un,Fi);var Vn=L("Milliseconds",!1);q("z",0,0,"zoneAbbr"),q("zz",0,0,"zoneName");var qn=g.prototype;qn.add=Rn,qn.calendar=Gt,qn.clone=Xt,qn.diff=ti,qn.endOf=fi,qn.format=si,qn.from=ri,qn.fromNow=ai,qn.to=hi,qn.toNow=di,qn.get=Y,qn.invalidAt=ki,qn.isAfter=Kt,qn.isBefore=Zt,qn.isBetween=Qt,qn.isSame=Jt,qn.isSameOrAfter=$t,qn.isSameOrBefore=ei,qn.isValid=_i,qn.lang=Ln,qn.locale=li,qn.localeData=ci,qn.max=Fn,qn.min=Bn,qn.parsingFlags=wi,qn.set=U,qn.startOf=ui,qn.subtract=An,qn.toArray=gi,qn.toObject=bi,qn.toDate=yi,qn.toISOString=ni,qn.toJSON=mi,qn.toString=oi,qn.unix=vi,qn.valueOf=pi,qn.creationData=xi,qn.year=fn,qn.isLeapYear=ge,qn.weekYear=Ei,qn.isoWeekYear=Mi,qn.quarter=qn.quarters=Pi,qn.month=le,qn.daysInMonth=ce,qn.week=qn.weeks=Ce,qn.isoWeek=qn.isoWeeks=Se,qn.weeksInYear=Si,qn.isoWeeksInYear=Ci,qn.date=Hn,qn.day=qn.days=Ne,qn.weekday=ze,qn.isoWeekday=Re,qn.dayOfYear=Bi,qn.hour=qn.hours=xn,qn.minute=qn.minutes=Wn,qn.second=qn.seconds=Yn,qn.millisecond=qn.milliseconds=Vn,qn.utcOffset=Dt,qn.utc=Pt,qn.local=Bt,qn.parseZone=Ft,qn.hasAlignedHourOffset=It,qn.isDST=jt,qn.isLocal=zt,qn.isUtcOffset=Rt,qn.isUtc=At,qn.isUTC=At,qn.zoneAbbr=Ii,qn.zoneName=ji,qn.dates=x("dates accessor is deprecated. Use date instead.",Hn),qn.months=x("months accessor is deprecated. Use month instead",le),qn.years=x("years accessor is deprecated. Use year instead",fn),qn.zone=x("moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/",Tt),qn.isDSTShifted=x("isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information",Nt);var Gn=qn,Xn=S.prototype;Xn.calendar=D,Xn.longDateFormat=T,Xn.invalidDate=P,Xn.ordinal=B,Xn.preparse=Ri,Xn.postformat=Ri,Xn.relativeTime=F,Xn.pastFuture=I,Xn.set=M,Xn.months=se,Xn.monthsShort=re,Xn.monthsParse=he,Xn.monthsRegex=fe,Xn.monthsShortRegex=ue,Xn.week=Oe,Xn.firstDayOfYear=Me,Xn.firstDayOfWeek=Ee,Xn.weekdays=Pe,Xn.weekdaysMin=Fe,Xn.weekdaysShort=Be,Xn.weekdaysParse=je,Xn.weekdaysRegex=Ae,Xn.weekdaysShortRegex=Le,Xn.weekdaysMinRegex=He,Xn.isPM=Ge,Xn.meridiem=Xe,Je("en",{ordinalParse:/\d{1,2}(th|st|nd|rd)/,ordinal:function(e){var t=e%10,i=1===_(e%100/10)?"th":1===t?"st":2===t?"nd":3===t?"rd":"th";return e+i}}),t.lang=x("moment.lang is deprecated. Use moment.locale instead.",Je),t.langData=x("moment.langData is deprecated. Use moment.localeData instead.",tt);var Kn=Math.abs,Zn=oo("ms"),Qn=oo("s"),Jn=oo("m"),$n=oo("h"),es=oo("d"),ts=oo("w"),is=oo("M"),os=oo("y"),ns=so("milliseconds"),ss=so("seconds"),rs=so("minutes"),as=so("hours"),hs=so("days"),ds=so("months"),ls=so("years"),cs=Math.round,us={s:45,m:45,h:22,d:26,M:11},fs=Math.abs,ps=kt.prototype;ps.abs=Gi,ps.add=Ki,ps.subtract=Zi,ps.as=to,ps.asMilliseconds=Zn,ps.asSeconds=Qn,ps.asMinutes=Jn,ps.asHours=$n,ps.asDays=es,ps.asWeeks=ts,ps.asMonths=is,ps.asYears=os,ps.valueOf=io,ps._bubble=Ji,ps.get=no,ps.milliseconds=ns,ps.seconds=ss,ps.minutes=rs,ps.hours=as,ps.days=hs,ps.weeks=ro,ps.months=ds,ps.years=ls,ps.humanize=uo,ps.toISOString=fo,ps.toString=fo,ps.toJSON=fo,ps.locale=li,ps.localeData=ci,ps.toIsoString=x("toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)",fo),ps.lang=Ln,q("X",0,0,"unix"),q("x",0,0,"valueOf"),Q("x",Vo),Q("X",Xo),te("X",function(e,t,i){i._d=new Date(1e3*parseFloat(e,10))}),te("x",function(e,t,i){i._d=new Date(_(e))}),t.version="2.15.2",i(bt),t.fn=Gn,t.min=_t,t.max=wt,t.now=In,t.utc=l,t.unix=Ni,t.months=Wi,t.isDate=r,t.locale=Je,t.invalid=p,t.duration=Lt,t.isMoment=b,t.weekdays=Ui,t.parseZone=zi,t.localeData=tt,t.isDuration=xt,t.monthsShort=Yi,t.weekdaysMin=qi,t.defineLocale=$e,t.updateLocale=et,t.locales=it,t.weekdaysShort=Vi,t.normalizeUnits=N,t.relativeTimeRounding=lo,t.relativeTimeThreshold=co,t.calendarFormat=qt,t.prototype=Gn;var vs=t;return vs})}).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){n<16&&(t[o+n++]=c[e])});n<16;)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(d<0&&void 0===e.clockseq&&(r=r+1&16383),(d<0||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;f<6;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;a<16;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;t<16;t++)0===(3&t)&&(e=4294967296*Math.random()),d[t]=e>>>((3&t)<<3)&255;return d}}for(var l=[],c={},u=0;u<256;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){n<0&&(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;on?1:or)&&(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;tthis.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,s;if(this._data){for(this._data.off&&this._data.off("*",this.listener),t=this._data.getIds({filter:this._options&&this._options.filter}),s=[],o=0,n=t.length;o0){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;i1&&void 0!==arguments[1]&&arguments[1],o=this.body.data.nodes;if(e instanceof c||e instanceof u)this.body.data.nodes=e;else if(Array.isArray(e))this.body.data.nodes=new c,this.body.data.nodes.add(e);else{if(e)throw new TypeError("Array or DataSet expected");this.body.data.nodes=new c}o&&l.forEach(this.nodesListeners,function(e,t){o.off(t,e)}),this.body.nodes={},this.body.data.nodes&&!function(){var e=t;l.forEach(t.nodesListeners,function(t,i){e.body.data.nodes.on(i,t)});var i=t.body.data.nodes.getIds();t.add(i,!0)}(),i===!1&&this.body.emitter.emit("_dataChanged")}},{key:"add",value:function(e){for(var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],i=void 0,o=[],n=0;n1&&void 0!==arguments[1]?arguments[1]:a.default;return new t(e,this.body,this.images,this.groups,this.options)}},{key:"refresh",value:function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0],t=this.body.nodes;for(var i in t){var o=void 0;t.hasOwnProperty(i)&&(o=t[i]);var n=this.body.data.nodes._data[i];void 0!==o&&void 0!==n&&(e===!0&&o.setOptions({x:null,y:null}),o.setOptions({fixed:!1}),o.setOptions(n))}}},{key:"getPositions",value:function(e){var t={};if(void 0!==e){if(Array.isArray(e)===!0){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]&&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(e){n=!0,s=e}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&&e!==Symbol.prototype?"symbol":typeof e},r=function(){function e(e,t){for(var i=0;i2&&void 0!==arguments[2]&&arguments[2];o(this,e),this.body=t,this.pointToSelf=!1,this.baseSize=void 0,this.fontOptions={},this.setOptions(i),this.size={top:0,left:0,width:0,height:0,yLine:0},this.isEdgeLabel=n}return r(e,[{key:"setOptions",value:function(t){var i=arguments.length>1&&void 0!==arguments[1]&&arguments[1];this.nodeOptions=t,this.fontOptions=a.deepExtend({},t.font,!0),void 0!==t.label&&(this.labelDirty=!0),void 0!==t.font&&(e.parseOptions(this.fontOptions,t,i),"string"==typeof t.font?this.baseSize=this.fontOptions.size:"object"===s(t.font)&&void 0!==t.font.size&&(this.baseSize=t.font.size))}},{key:"draw",value:function(e,t,i,o){var n=arguments.length>4&&void 0!==arguments[4]?arguments[4]:"middle";if(void 0!==this.nodeOptions.label){var s=this.fontOptions.size*this.body.view.scale;this.nodeOptions.label&&s4&&void 0!==arguments[4]?arguments[4]:"middle",r=this.fontOptions.size,a=r*this.body.view.scale;a>=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]&&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]?arguments[2]:0,o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:0,n=arguments.length>4&&void 0!==arguments[4]?arguments[4]:"middle";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;si?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]&&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&&a<4;)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]&&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 c.toLowerCase().indexOf(d)!==-1&&(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]?arguments[2]:"Problem value found at: \n",o="\n\n"+i+"options = {\n",n=0;n1&&void 0!==arguments[1]&&arguments[1],o=this.body.data.edges;if(e instanceof c||e instanceof u)this.body.data.edges=e;else if(Array.isArray(e))this.body.data.edges=new c,this.body.data.edges.add(e);else{if(e)throw new TypeError("Array or DataSet expected");this.body.data.edges=new c}if(o&&l.forEach(this.edgesListeners,function(e,t){o.off(t,e)}),this.body.edges={},this.body.data.edges){l.forEach(this.edgesListeners,function(e,i){t.body.data.edges.on(i,e)});var n=this.body.data.edges.getIds();this.add(n,!0)}i===!1&&this.body.emitter.emit("_dataChanged")}},{key:"add",value:function(e){for(var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],i=this.body.edges,o=this.body.data.edges,n=0;ni.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 h0&&i<0)&&(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]&&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();e.arrows.to.enabled=r.indexOf("to")!=-1,e.arrows.middle.enabled=r.indexOf("middle")!=-1,e.arrows.from.enabled=r.indexOf("from")!=-1}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(e){n=!0,s=e}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]?arguments[6]:this._getViaCoordinates(),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]?arguments[1]:this._getViaCoordinates(),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;i0&&(d=this._getDistanceToLine(p,v,u,f,n,s),h=d2&&void 0!==arguments[2]?arguments[2]:this._getViaCoordinates(),h=10,d=0,l=0,c=1,u=.2,f=this.to,p=!1;for(e.id===this.from.id&&(f=this.from,p=!0);l<=c&&d0&&(h=this._getDistanceToLine(f,p,c,u,n,s),a=ho.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);s<=r&&d0?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:d<0&&(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=void 0,f=this.getLineWidth(o,s);if("from"===t?(h=this.from,d=this.to,l=.1,c=this.options.arrows.from.scaleFactor,u=this.options.arrows.from.type):"to"===t?(h=this.to,d=this.from,l=-.1,c=this.options.arrows.to.scaleFactor,u=this.options.arrows.to.type):(h=this.to,d=this.from,c=this.options.arrows.middle.scaleFactor,u=this.options.arrows.middle.type),h!=d)if("middle"!==t)if(this.options.smooth.enabled===!0){a=this.findBorderPosition(h,e,{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,e);else r=Math.atan2(h.y-d.y,h.x-d.x),a=this.getPoint(.5,i);else{var v=this._getCircleData(e),y=n(v,3),g=y[0],b=y[1],m=y[2];"from"===t?(a=this.findBorderPosition(this.from,e,{x:g,y:b,low:.25,high:.6,direction:-1}),r=a.t*-2*Math.PI+1.5*Math.PI+.1*Math.PI):"to"===t?(a=this.findBorderPosition(this.from,e,{x:g,y:b,low:.6,high:1,direction:1}),r=a.t*-2*Math.PI+1.5*Math.PI-1.1*Math.PI):(a=this._pointOnCircle(g,b,m,.175),r=3.9269908169872414)}var _=15*c+3*f,w=a.x-.9*_*Math.cos(r),k=a.y-.9*_*Math.sin(r),x={x:w,y:k};return{point:a,core:x,angle:r,length:_,type:u}}},{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),o.type&&"circle"===o.type.toLowerCase()?e.circleEndpoint(o.point.x,o.point.y,o.angle,o.length):e.arrowEndpoint(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){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(e){n=!0,s=e}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;i1&&void 0!==arguments[1]?arguments[1]:this.via,i=e,o=void 0,n=void 0;if(this.from===this.to){var s=this._getCircleData(this.from),r=a(s,3),h=r[0],d=r[1],l=r[2],c=2*Math.PI*(1-i);o=h+l*Math.sin(c),n=d+l-l*(1-Math.cos(c))}else o=Math.pow(1-i,2)*this.fromPoint.x+2*i*(1-i)*t.x+Math.pow(i,2)*this.toPoint.x,n=Math.pow(1-i,2)*this.fromPoint.y+2*i*(1-i)*t.y+Math.pow(i,2)*this.toPoint.y;return{x:o,y:n}}},{key:"_findBorderPosition",value:function(e,t){return this._findBorderPositionBezier(e,t,this.via)}},{key:"_getDistanceToEdge",value:function(e,t,i,o,n,s){return this._getDistanceToBezierEdge(e,t,i,o,n,s,this.via)}}]),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;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=nMath.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=sMath.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.y2&&void 0!==arguments[2]?arguments[2]:{};return this._findBorderPositionBezier(e,t,i.via)}},{key:"_getDistanceToEdge",value:function(e,t,i,o,n,s){var r=arguments.length>6&&void 0!==arguments[6]?arguments[6]:this._getViaCoordinates();return this._getDistanceToBezierEdge(e,t,i,o,n,s,r)}},{key:"getPoint",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this._getViaCoordinates(),i=e,o=Math.pow(1-i,2)*this.fromPoint.x+2*i*(1-i)*t.x+Math.pow(i,2)*this.toPoint.x,n=Math.pow(1-i,2)*this.fromPoint.y+2*i*(1-i)*t.y+Math.pow(i,2)*this.toPoint.y;return{x:o,y:n}}}]),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&&void 0!==arguments[0])||arguments[0];this.stabilized=!0,e===!0&&this._emitStabilized(),void 0!==this.viewFunction&&(this.body.emitter.off("initRedraw",this.viewFunction),this.viewFunction=void 0,e===!0&&this.body.emitter.emit("_stopRendering"))}},{key:"simulationStep",value:function(){var e=Date.now();this.physicsTick();var t=Date.now()-e;(t<.4*this.simulationInterval||this.runDoubleSpeed===!0)&&this.stabilized===!1&&(this.physicsTick(),this.runDoubleSpeed=!0),this.stabilized===!0&&this.stopSimulation()}},{key:"_emitStabilized",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.stabilizationIterations;(this.stabilizationIterations>1||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]?arguments[0]:this.options.stabilization.iterations;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;s0&&(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&&o.shape.radius&&(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;h0&&(dr&&(r=d),la&&(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;b0&&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;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&&e!==Symbol.prototype?"symbol":typeof e},r=function(){function e(e,t){for(var i=0;i=e&&i.push(n.id)}for(var r=0;r0&&void 0!==arguments[0]?arguments[0]:{},t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];if(void 0===e.joinCondition)throw new Error("Cannot call clusterByNodeData without a joinCondition function in the options.");e=this._checkOptions(e);for(var i={},o={},n=0;n2&&void 0!==arguments[2])||arguments[2];t=this._checkOptions(t);for(var o=[],n={},s=void 0,r=void 0,a=void 0,d=void 0,l=void 0,c=0;c0&&Object.keys(f).length>0&&v===!0&&o.push({nodes:u,edges:f})}}}for(var m=0;m1&&void 0!==arguments[1])||arguments[1];this.clusterByEdgeCount(1,e,t)}},{key:"clusterBridges",value:function(e){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];this.clusterByEdgeCount(2,e,t)}},{key:"clusterByConnection",value:function(e,t){var i=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];if(void 0===e)throw new Error("No nodeId supplied to clusterByConnection!");if(void 0===this.body.nodes[e])throw new Error("The nodeId given to clusterByConnection does not exist!");var o=this.body.nodes[e];t=this._checkOptions(t,o),void 0===t.clusterNodeProperties.x&&(t.clusterNodeProperties.x=o.x),void 0===t.clusterNodeProperties.y&&(t.clusterNodeProperties.y=o.y),void 0===t.clusterNodeProperties.fixed&&(t.clusterNodeProperties.fixed={},t.clusterNodeProperties.fixed.x=o.options.fixed.x,t.clusterNodeProperties.fixed.y=o.options.fixed.y);var n={},s={},r=o.id,a=h.default.cloneOptions(o);n[r]=o;for(var d=0;d-1&&(s[y.id]=y)}this._cluster(n,s,t,i)}},{key:"_createClusterEdges",value:function(e,t,i,o){for(var n=void 0,s=void 0,r=void 0,a=void 0,d=void 0,l=void 0,u=Object.keys(e),f=[],p=0;p0&&void 0!==arguments[0]?arguments[0]:{};return void 0===e.clusterEdgeProperties&&(e.clusterEdgeProperties={}),void 0===e.clusterNodeProperties&&(e.clusterNodeProperties={}),e}},{key:"_cluster",value:function(e,t,i){var o=!(arguments.length>3&&void 0!==arguments[3])||arguments[3];if(0!=Object.keys(e).length&&(1!=Object.keys(e).length||1==i.clusterNodeProperties.allowSingleNodeCluster)){for(var n in e)if(e.hasOwnProperty(n)&&void 0!==this.clusteredNodes[n])return;var s=c.deepExtend({},i.clusterNodeProperties);if(void 0!==i.processProperties){var r=[];for(var a in e)if(e.hasOwnProperty(a)){var d=h.default.cloneOptions(e[a]);r.push(d)}var u=[];for(var f in t)if(t.hasOwnProperty(f)&&"clusterEdge:"!==f.substr(0,12)){var p=h.default.cloneOptions(t[f],"edge");u.push(p)}if(s=i.processProperties(s,r,u),!s)throw new Error("The processProperties function does not return properties!")}void 0===s.id&&(s.id="cluster:"+c.randomUUID());var v=s.id;void 0===s.label&&(s.label="cluster");var y=void 0;void 0===s.x&&(y=this._getClusterPosition(e),s.x=y.x),void 0===s.y&&(void 0===y&&(y=this._getClusterPosition(e)),s.y=y.y),s.id=v;var g=this.body.functions.createNode(s,l.default);g.isCluster=!0,g.containedNodes=e,g.containedEdges=t,g.clusterEdgeProperties=i.clusterEdgeProperties,this.body.nodes[s.id]=g,this._createClusterEdges(e,t,s,i.clusterEdgeProperties);for(var b in t)if(t.hasOwnProperty(b)&&void 0!==this.body.edges[b]){var m=this.body.edges[b];this._backupEdgeOptions(m),m.setOptions({physics:!1,hidden:!0})}for(var _ in e)e.hasOwnProperty(_)&&(this.clusteredNodes[_]={clusterId:s.id,node:this.body.nodes[_]},this.body.nodes[_].setOptions({hidden:!0,physics:!1}));s.id=void 0,o===!0&&this.body.emitter.emit("_dataChanged")}}},{key:"_backupEdgeOptions",value:function(e){void 0===this.clusteredEdges[e.id]&&(this.clusteredEdges[e.id]={physics:e.options.physics,hidden:e.options.hidden})}},{key:"_restoreEdge",value:function(e){var t=this.clusteredEdges[e.id];void 0!==t&&(e.setOptions({physics:t.physics,hidden:t.hidden}),delete this.clusteredEdges[e.id])}},{key:"isCluster",value:function(e){return void 0!==this.body.nodes[e]?this.body.nodes[e].isCluster===!0:(console.log("Node does not exist."),!1)}},{key:"_getClusterPosition",value:function(e){for(var t=Object.keys(e),i=e[t[0]].x,o=e[t[0]].x,n=e[t[0]].y,s=e[t[0]].y,r=void 0,a=1;ao?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])||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&&(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;i1&&void 0!==arguments[1]?arguments[1]:[],o=1e9,n=-1e9,s=1e9,r=-1e9;if(i.length>0)for(var a=0;at.shape.boundingBox.left&&(s=t.shape.boundingBox.left),rt.shape.boundingBox.top&&(o=t.shape.boundingBox.top),n1&&void 0!==arguments[1]?arguments[1]:[],o=1e9,n=-1e9,s=1e9,r=-1e9;if(i.length>0)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]&&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]&&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&&void 0!==arguments[0]?arguments[0]:this.pixelRatio;this.initialized===!0&&(this.cameraState.previousWidth=this.frame.canvas.width/e,this.cameraState.previousHeight=this.frame.canvas.height/e,this.cameraState.scale=this.body.view.scale,this.cameraState.position=this.DOMtoCanvas({x:.5*this.frame.canvas.width/e,y:.5*this.frame.canvas.height/e}))}},{key:"_setCameraState",value:function(){if(void 0!==this.cameraState.scale&&0!==this.frame.canvas.clientWidth&&0!==this.frame.canvas.clientHeight&&0!==this.pixelRatio&&this.cameraState.previousWidth>0){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(e.indexOf("%")!==-1||e.indexOf("px")!==-1)return e;if(e.indexOf("%")===-1)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]?arguments[0]:this.options.width,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.options.height;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,this.canvasViewCenter={x:.5*this.frame.clientWidth,y:.5*this.frame.clientHeight},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);t!==-1&&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.7 - 2016-04-22 * 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?L(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 L(e,t){return z(t[0],t[1],Ye)/z(e[0],e[1],Ye)}function H(){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=Je,this.evWin=$e,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},Je="touchstart",$e="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&Le?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=$(e,this),t[e.id]||(t[e.id]=e,e.recognizeWith(this)),this},dropRecognizeWith:function(e){return d(e,"dropRecognizeWith",this)?this:(e=$(e,this),delete this.simultaneous[e.id],this)},requireFailure:function(e){if(d(e,"requireFailure",this))return this;var t=this.requireFail;return e=$(e,this),-1===w(t,e)&&(t.push(e),e.requireFailure(this)),this},dropRequireFailure:function(e){if(d(e,"dropRequireFailure",this))return this;e=$(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=J(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|Le,pointers:1},getTouchAction:function(){return te.prototype.getTouchAction.call(this)},attrTest:function(e){var t,i=this.options.direction;return i&(Ae|Le)?t=e.overallVelocity:i&Ae?t=e.overallVelocityX:i&Le&&(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=J(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:{align:{string:i},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;a\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&&ve(o,i)}function f(e,t){return function(){return e.apply(t,arguments)}}function p(e,t){return typeof e==be?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=we(),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=_e(d.x)>_e(d.y)?d.x:d.y,t.scale=r?L(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!==Ie&&s.eventType!==Ne||(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!=ze&&(h>Fe||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=_e(c.x)>_e(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;i=_e(t)?e<0?Ae:Le:t<0?He:We}function z(e,t,i){i||(i=qe);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=qe);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],Ge)+R(e[1],e[0],Ge)}function L(e,t){return z(t[0],t[1],Ge)/z(e[0],e[1],Ge)}function H(){this.evEl=Ke,this.evWin=Ze,this.pressed=!1,C.apply(this,arguments)}function W(){this.evEl=$e,this.evWin=et,C.apply(this,arguments),this.store=this.manager.session.pointerEvents=[]}function Y(){this.evTarget=it,this.evWin=ot,this.started=!1,C.apply(this,arguments)}function U(e,t){var i=k(e.touches),o=k(e.changedTouches);return t&(Ne|ze)&&(i=x(i.concat(o),"identifier",!0)),[i,o]}function V(){this.evTarget=st,this.targetIds={},C.apply(this,arguments)}function q(e,t){var i=k(e.touches),o=this.targetIds;if(t&(Ie|je)&&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===Ie)for(n=0;n-1&&o.splice(e,1)};setTimeout(n,rt)}}function Z(e){for(var t=e.srcEvent.clientX,i=e.srcEvent.clientY,o=0;o-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;o<_t&&t(i.options.event+te(o)),t(i.options.event),e.additionalEvent&&t(e.additionalEvent),o>=_t&&t(i.options.event+te(o))},tryEmit:function(e){return this.canEmit()?this.emit(e):void(this.state=xt)},canEmit:function(){for(var e=0;et.threshold&&n&t.direction},attrTest:function(e){return ne.prototype.attrTest.call(this,e)&&(this.state&bt||!(this.state&bt)&&this.directionTest(e))},emit:function(e){this.pX=e.deltaX,this.pY=e.deltaY;var t=ie(e.direction);t&&(e.additionalEvent=this.options.event+t),this._super.emit.call(this,e)}}),u(re,ne,{defaults:{event:"pinch",threshold:0,pointers:2},getTouchAction:function(){return[ft]},attrTest:function(e){return this._super.attrTest.call(this,e)&&(Math.abs(e.scale-1)>this.options.threshold||this.state&bt)},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(ae,ee,{defaults:{event:"press",pointers:1,time:251,threshold:9},getTouchAction:function(){return[ct]},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&(Ne|ze)&&!n)this.reset();else if(e.eventType&Ie)this.reset(),this._timer=h(function(){this.state=wt,this.tryEmit()},t.time,this);else if(e.eventType&Ne)return wt;return xt},reset:function(){clearTimeout(this._timer)},emit:function(e){this.state===wt&&(e&&e.eventType&Ne?this.manager.emit(this.options.event+"up",e):(this._input.timeStamp=we(),this.manager.emit(this.options.event,this._input)))}}),u(he,ne,{defaults:{event:"rotate",threshold:0,pointers:2},getTouchAction:function(){return[ft]},attrTest:function(e){return this._super.attrTest.call(this,e)&&(Math.abs(e.rotation)>this.options.threshold||this.state&bt)}}),u(de,ne,{defaults:{event:"swipe",threshold:10,velocity:.3,direction:Ye|Ue,pointers:1},getTouchAction:function(){return se.prototype.getTouchAction.call(this)},attrTest:function(e){var t,i=this.options.direction;return i&(Ye|Ue)?t=e.overallVelocity:i&Ye?t=e.overallVelocityX:i&Ue&&(t=e.overallVelocityY),this._super.attrTest.call(this,e)&&i&e.offsetDirection&&e.distance>this.options.threshold&&e.maxPointers==this.options.pointers&&_e(t)>this.options.velocity&&e.eventType&Ne},emit:function(e){var t=ie(e.offsetDirection);t&&this.manager.emit(this.options.event+t,e),this.manager.emit(this.options.event,e)}}),u(le,ee,{defaults:{event:"tap",pointers:1,taps:1,interval:300,time:250,threshold:9,posThreshold:10},getTouchAction:function(){return[ut]},process:function(e){var t=this.options,i=e.pointers.length===t.pointers,o=e.distance0&&void 0!==arguments[0]?arguments[0]:{};this.options=e}},{key:"fit",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{nodes:[]},t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],i=void 0,o=void 0;if(void 0!==e.nodes&&0!==e.nodes.length||(e.nodes=this.body.nodeIndices),t===!0){var n=0;for(var s in this.body.nodes)if(this.body.nodes.hasOwnProperty(s)){var r=this.body.nodes[s];r.predefinedPosition===!0&&(n+=1)}if(n>.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=u<=f?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]&&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]&&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):h-n<0&&(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):a-o<0&&(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;n10&&(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"),i0&&(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(){var e=this.body.view.scale,t=this.body.view.scale*(1+this.options.keyboard.speed.zoom),i=this.body.view.translation,o=t/e,n=(1-o)*this.canvas.canvasViewCenter.x+i.x*o,s=(1-o)*this.canvas.canvasViewCenter.y+i.y*o;this.body.view.scale=t,this.body.view.translation={x:n,y:s},this.body.emitter.emit("zoom",{direction:"+",scale:this.body.view.scale})}},{key:"_zoomOut",value:function(){var e=this.body.view.scale,t=this.body.view.scale/(1+this.options.keyboard.speed.zoom),i=this.body.view.translation,o=t/e,n=(1-o)*this.canvas.canvasViewCenter.x+i.x*o,s=(1-o)*this.canvas.canvasViewCenter.y+i.y*o;this.body.view.scale=t,this.body.view.translation={x:n,y:s},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;t<=122;t++)r[String.fromCharCode(t)]={code:65+(t-97),shift:!1};for(t=65;t<=90;t++)r[String.fromCharCode(t)]={code:t,shift:!0};for(t=0;t<=9;t++)r[""+t]={code:48+t,shift:!1};for(t=1;t<=12;t++)r["F"+t]={code:111+t,shift:!1};for(t=0;t<=9;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),r4&&void 0!==arguments[4]&&arguments[4],s=void 0;s=n===!0?{nodes:[],edges:[]}:this.getSelection(),s.pointer={DOM:{x:i.x,y:i.y},canvas:this.canvas.DOMtoCanvas(i)},s.event=t,void 0!==o&&(s.previousSelection=o),this.body.emitter.emit(e,s)}},{key:"selectObject",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.options.selectConnectedEdges;return void 0!==e&&(e instanceof a.default&&t===!0&&this._selectConnectedEdges(e),e.select(),this._addToSelection(e),!0)}},{key:"deselectObject",value:function(e){e.isSelected()===!0&&(e.selected=!1,this._removeFromSelection(e))}},{key:"_getAllNodesOverlappingWith",value:function(e){for(var t=[],i=this.body.nodes,o=0;o1&&void 0!==arguments[1])||arguments[1],i=this._pointerToPositionObject(e),o=this._getAllNodesOverlappingWith(i);return o.length>0?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;o1&&void 0!==arguments[1])||arguments[1],i=this.canvas.DOMtoCanvas(e),o=10,n=null,s=this.body.edges,r=0;r1)return!0;return!1}},{key:"_selectConnectedEdges",value:function(e){for(var t=0;t1&&void 0!==arguments[1]?arguments[1]:{},i=void 0,o=void 0;if(!e||!e.nodes&&!e.edges)throw"Selection must be an object with nodes and/or edges properties";if((t.unselectAll||void 0===t.unselectAll)&&this.unselectAll(),e.nodes)for(i=0;i1&&void 0!==arguments[1])||arguments[1];if(!e||void 0===e.length)throw"Selection must be an array with ids";this.setSelection({nodes:e},{highlightEdges:t})}},{key:"selectEdges",value:function(e){if(!e||void 0===e.length)throw"Selection must be an array with ids";this.setSelection({edges:e})}},{key:"updateSelection",value:function(){for(var e in this.selectionObj.nodes)this.selectionObj.nodes.hasOwnProperty(e)&&(this.body.nodes.hasOwnProperty(e)||delete this.selectionObj.nodes[e]);for(var t in this.selectionObj.edges)this.selectionObj.edges.hasOwnProperty(t)&&(this.body.edges.hasOwnProperty(t)||delete this.selectionObj.edges[t])}}]),e}();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")}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(e){n=!0,s=e}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"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},a=function(){function e(e,t){for(var i=0;i0&&(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||this.optionsBackup.physics.enabled,solver:"hierarchicalRepulsion"},this.optionsBackup.physics.enabled=void 0===this.optionsBackup.physics.enabled||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||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||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&&e.edges.smooth.forceDirection},e.edges.smooth={enabled:void 0===e.edges.smooth.enabled||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&&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 s=0;s1&&void 0!==arguments[1]?arguments[1]:1e9,o=1e9,n=1e9,r=1e9,a=-1e9;for(var h in t)if(t.hasOwnProperty(h)){var d=e.body.nodes[h],l=e.hierarchicalLevels[d.id],c=e._getPositionForHierarchy(d),u=e._getSpaceAroundNode(d,t),f=s(u,2),p=f[0],v=f[1];o=Math.min(p,o),n=Math.min(v,n),l<=i&&(r=Math.min(c,r),a=Math.max(c,a))}return[r,a,o,n]},l=function t(i){var o=e.hierarchicalLevels[i];if(e.hierarchicalChildrenReference[i]){var n=e.hierarchicalChildrenReference[i];if(n.length>0)for(var s=0;s1)for(var a=0;a2&&void 0!==arguments[2]&&arguments[2],r=e._getPositionForHierarchy(i),a=e._getPositionForHierarchy(o),l=Math.abs(a-r);if(l>e.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),x<0&&(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;p0?v=Math.min(p,f-e.options.hierarchical.nodeSpacing):p<0&&(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):l<0&&(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;n0)for(var d=0;d0&&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]?arguments[0]:function(){},i=arguments[1],o={},n=0,s=function i(n,s){if(void 0===o[n.id]){void 0===e.hierarchicalTrees[n.id]&&(e.hierarchicalTrees[n.id]=s,e.treeIndex=Math.max(s,e.treeIndex)),o[n.id]=!0;for(var r=void 0,a=0;a3&&void 0!==arguments[3]&&arguments[3];o!==!0&&(void 0===this.distributionOrdering[i]&&(this.distributionOrdering[i]=[],this.distributionOrderingPresence[i]={}),void 0===this.distributionOrderingPresence[i][e.id]&&(this.distributionOrdering[i].push(e),this.distributionIndex[e.id]=this.distributionOrdering[i].length-1),this.distributionOrderingPresence[i][e.id]=!0),"UD"===this.options.hierarchical.direction||"DU"===this.options.hierarchical.direction?e.x=t:e.y=t}},{key:"_getPositionForHierarchy",value:function(e){return"UD"===this.options.hierarchical.direction||"DU"===this.options.hierarchical.direction?e.x:e.y}},{key:"_sortNodeArray",value:function(e){e.length>1&&("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;e0&&void 0!==arguments[0]?arguments[0]:1;this.manipulationDOM["seperatorLineDiv"+e]=document.createElement("div"),this.manipulationDOM["seperatorLineDiv"+e].className="vis-separator-line",this.manipulationDiv.appendChild(this.manipulationDOM["seperatorLineDiv"+e])}},{key:"_createAddNodeButton",value:function(e){var t=this._createButton("addNode","vis-button vis-add",e.addNode||this.options.locales.en.addNode);this.manipulationDiv.appendChild(t),this._bindHammerToDiv(t,this.addNodeMode.bind(this))}},{key:"_createAddEdgeButton",value:function(e){var t=this._createButton("addEdge","vis-button vis-connect",e.addEdge||this.options.locales.en.addEdge);this.manipulationDiv.appendChild(t),this._bindHammerToDiv(t,this.addEdgeMode.bind(this))}},{key:"_createEditNodeButton",value:function(e){var t=this._createButton("editNode","vis-button vis-edit",e.editNode||this.options.locales.en.editNode);this.manipulationDiv.appendChild(t),this._bindHammerToDiv(t,this.editNode.bind(this))}},{key:"_createEditEdgeButton",value:function(e){var t=this._createButton("editEdge","vis-button vis-edit",e.editEdge||this.options.locales.en.editEdge);this.manipulationDiv.appendChild(t),this._bindHammerToDiv(t,this.editEdgeMode.bind(this))}},{key:"_createDeleteButton",value:function(e){if(this.options.rtl)var t="vis-button vis-delete-rtl";else var t="vis-button vis-delete";var i=this._createButton("delete",t,e.del||this.options.locales.en.del);this.manipulationDiv.appendChild(i),this._bindHammerToDiv(i,this.deleteSelected.bind(this))}},{key:"_createBackButton",value:function(e){var t=this._createButton("back","vis-button vis-back",e.back||this.options.locales.en.back);this.manipulationDiv.appendChild(t),this._bindHammerToDiv(t,this.showManipulatorToolbar.bind(this))}},{key:"_createButton",value:function(e,t,i){var o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"vis-label";return this.manipulationDOM[e+"Div"]=document.createElement("div"),this.manipulationDOM[e+"Div"].className=t,this.manipulationDOM[e+"Label"]=document.createElement("div"),this.manipulationDOM[e+"Label"].className=o,this.manipulationDOM[e+"Label"].innerHTML=i,this.manipulationDOM[e+"Div"].appendChild(this.manipulationDOM[e+"Label"]),this.manipulationDOM[e+"Div"]}},{key:"_createDescription",value:function(e){this.manipulationDiv.appendChild(this._createButton("description","vis-button vis-none",e))}},{key:"_temporaryBindEvent",value:function(e,t){this.temporaryEventFunctions.push({event:e,boundFunction:t}),this.body.emitter.on(e,t)}},{key:"_temporaryBindUI",value:function(e,t){if(void 0===this.body.eventListeners[e])throw new Error("This UI function does not exist. Typo? You tried: "+e+" possible are: "+JSON.stringify(Object.keys(this.body.eventListeners)));this.temporaryUIFunctions[e]=this.body.eventListeners[e],this.body.eventListeners[e]=t}},{key:"_unbindTemporaryUIs",value:function(){for(var e in this.temporaryUIFunctions)this.temporaryUIFunctions.hasOwnProperty(e)&&(this.body.eventListeners[e]=this.temporaryUIFunctions[e],delete this.temporaryUIFunctions[e]);this.temporaryUIFunctions={}}},{key:"_unbindTemporaryEvents",value:function(){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(this.temporaryIds.nodes.indexOf(n[r])===-1){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&&e!==Symbol.prototype?"symbol":typeof e},r=function(){function e(e,t){for(var i=0;i3&&void 0!==arguments[3]?arguments[3]:1;n(this,e),this.parent=t,this.changedOptions=[],this.container=i,this.allowCreation=!1,this.options={},this.initialized=!1,this.popupCounter=0,this.defaultOptions={enabled:!1,filter:!0,container:void 0,showButton:!0},d.extend(this.options,this.defaultOptions),this.configureOptions=o,this.moduleOptions={},this.domElements=[],this.popupDiv={},this.popupLimit=5,this.popupHistory={},this.colorPicker=new h.default(s),this.wrapper=void 0}return r(e,[{key:"setOptions",value:function(e){if(void 0!==e){this.popupHistory={},this._removePopup();var t=!0;"string"==typeof e?this.options.filter=e:e instanceof Array?this.options.filter=e.join():"object"===("undefined"==typeof e?"undefined":s(e))?(void 0!==e.container&&(this.options.container=e.container),void 0!==e.filter&&(this.options.filter=e.filter),void 0!==e.showButton&&(this.options.showButton=e.showButton),void 0!==e.enabled&&(t=e.enabled)):"boolean"==typeof e?(this.options.filter=!0,t=e):"function"==typeof e&&(this.options.filter=e,t=!0),this.options.filter===!1&&(t=!1),this.options.enabled=t}this._clean()}},{key:"setModuleOptions",value:function(e){this.moduleOptions=e,this.options.enabled===!0&&(this._clean(),void 0!==this.options.container&&(this.container=this.options.container),this._create())}},{key:"_create",value:function(){var e=this;this._clean(),this.changedOptions=[];var t=this.options.filter,i=0,o=!1;for(var n in this.configureOptions)this.configureOptions.hasOwnProperty(n)&&(this.allowCreation=!1,o=!1,"function"==typeof t?(o=t(n,[]),o=o||this._handleObject(this.configureOptions[n],[n],!0)):t!==!0&&t.indexOf(n)===-1||(o=!0),o!==!1&&(this.allowCreation=!0,i>0&&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;r2&&void 0!==arguments[2]&&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&&e.indexOf(t)!==-1&&(n=e.indexOf(t));for(var s=0;ss&&1!==s&&(a.max=Math.ceil(t*l),d=a.max,h="range increased"),a.value=t}else a.value=o;var c=document.createElement("input");c.className="vis-configuration vis-config-rangeinput",c.value=a.value;var u=this;a.onchange=function(){c.value=this.value,u._update(Number(this.value),i)},a.oninput=function(){c.value=this.value};var f=this._makeLabel(i[i.length-1],i),p=this._makeItem(i,f,a,c);""!==h&&this.popupHistory[p]!==d&&(this.popupHistory[p]=d,this._setupPopup(h,p))}},{key:"_setupPopup",value:function(e,t){var i=this;if(this.initialized===!0&&this.allowCreation===!0&&this.popupCounter1&&void 0!==arguments[1]?arguments[1]:[],i=arguments.length>2&&void 0!==arguments[2]&&arguments[2],o=!1,n=this.options.filter,s=!1;for(var r in e)if(e.hasOwnProperty(r)){o=!0;var a=e[r],h=d.copyAndExtendArray(t,r);if("function"==typeof n&&(o=n(r,t),o===!1&&!(a instanceof Array)&&"string"!=typeof a&&"boolean"!=typeof a&&a instanceof Object&&(this.allowCreation=!1,o=this._handleObject(a,h,!0),this.allowCreation=i===!1)),o!==!1){s=!0;var l=this._getValue(h);if(a instanceof Array)this._handleArray(a,l,h);else if("string"==typeof a)this._makeTextInput(a,l,h);else if("boolean"==typeof a)this._makeCheckbox(a,l,h);else if(a instanceof Object){var c=!0;if(t.indexOf("physics")!==-1&&this.moduleOptions.physics.solver!==r&&(c=!1),c===!0)if(void 0!==a.enabled){var u=d.copyAndExtendArray(h,"enabled"),f=this._getValue(u);if(f===!0){var p=this._makeLabel(r,h,!0);this._makeItem(h,p),s=this._handleObject(a,h)||s}else this._makeCheckbox(a,f,h)}else{var v=this._makeLabel(r,h,!0);this._makeItem(h,v),s=this._handleObject(a,h)||s}}else console.error("dont know how to handle",a,r,h)}}return s}},{key:"_handleArray",value:function(e,t,i){"string"==typeof e[0]&&"color"===e[0]?(this._makeColorField(e,t,i),e[1]!==t&&this.changedOptions.push({path:i,value:t})):"string"==typeof e[0]?(this._makeDropdown(e,t,i),e[0]!==t&&this.changedOptions.push({path:i,value:t})):"number"==typeof e[0]&&(this._makeRange(e,t,i),e[0]!==t&&this.changedOptions.push({path:i,value:Number(t)}))}},{key:"_update",value:function(e,t){var i=this._constructOptions(e,t);this.parent.body&&this.parent.body.emitter&&this.parent.body.emitter.emit&&this.parent.body.emitter.emit("configChange",i),this.initialized=!0,this.parent.setOptions(i)}},{key:"_constructOptions",value:function(e,t){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},o=i;e="true"===e||e,e="false"!==e&&e;for(var n=0;nvar options = "+JSON.stringify(e,null,2)+""}},{key:"getOptions",value:function(){for(var e={},t=0;t0&&void 0!==arguments[0]?arguments[0]:1;o(this,e),this.pixelRatio=t,this.generated=!1,this.centerCoordinates={x:144.5,y:144.5},this.r=289*.49,this.color={r:255,g:255,b:255,a:1},this.hueCircle=void 0,this.initialColor={r:255,g:255,b:255,a:1},this.previousColor=void 0,this.applied=!1,this.updateCallback=function(){},this.closeCallback=function(){},this._create()}return n(e,[{key:"insertTo",value:function(e){void 0!==this.hammer&&(this.hammer.destroy(),this.hammer=void 0),this.container=e,this.container.appendChild(this.frame),this._bindHammer(),this._setSize()}},{key:"setUpdateCallback",value:function(e){if("function"!=typeof e)throw new Error("Function attempted to set as colorPicker update callback is not a function.");this.updateCallback=e}},{key:"setCloseCallback",value:function(e){if("function"!=typeof e)throw new Error("Function attempted to set as colorPicker closing callback is not a function.");this.closeCallback=e}},{key:"_isColorString",value:function(e){var t={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("string"==typeof e)return t[e]}},{key:"setColor",value:function(e){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];if("none"!==e){var i=void 0,o=this._isColorString(e);if(void 0!==o&&(e=o),a.isString(e)===!0){if(a.isValidRGB(e)===!0){var n=e.substr(4).substr(0,e.length-5).split(",");i={r:n[0],g:n[1],b:n[2],a:1}}else if(a.isValidRGBA(e)===!0){var s=e.substr(5).substr(0,e.length-6).split(",");i={r:s[0],g:s[1],b:s[2],a:s[3]}}else if(a.isValidHex(e)===!0){var r=a.hexToRGB(e);i={r:r.r,g:r.g,b:r.b,a:1}}}else if(e instanceof Object&&void 0!==e.r&&void 0!==e.g&&void 0!==e.b){var h=void 0!==e.a?e.a:"1.0";i={r:e.r,g:e.g,b:e.b,a:h}}if(void 0===i)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(e));this._setColor(i,t)}}},{key:"show",value:function(){void 0!==this.closeCallback&&(this.closeCallback(),this.closeCallback=void 0),this.applied=!1,this.frame.style.display="block",this._generateHueCircle()}},{key:"_hide",value:function(){var e=this,t=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];t===!0&&(this.previousColor=a.extend({},this.color)),this.applied===!0&&this.updateCallback(this.initialColor),this.frame.style.display="none",setTimeout(function(){void 0!==e.closeCallback&&(e.closeCallback(),e.closeCallback=void 0)},0)}},{key:"_save",value:function(){this.updateCallback(this.color),this.applied=!1,this._hide()}},{key:"_apply",value:function(){this.applied=!0,this.updateCallback(this.color),this._updatePicker(this.color)}},{key:"_loadLast",value:function(){void 0!==this.previousColor?this.setColor(this.previousColor,!1):alert("There is no last color to load...")}},{key:"_setColor",value:function(e){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];t===!0&&(this.initialColor=a.extend({},e)),this.color=e;var i=a.RGBToHSV(e.r,e.g,e.b),o=2*Math.PI,n=this.r*i.s,s=this.centerCoordinates.x+n*Math.sin(o*i.h),r=this.centerCoordinates.y+n*Math.cos(o*i.h);this.colorPickerSelector.style.left=s-.5*this.colorPickerSelector.clientWidth+"px",this.colorPickerSelector.style.top=r-.5*this.colorPickerSelector.clientHeight+"px",this._updatePicker(e)}},{key:"_setOpacity",value:function(e){this.color.a=e/100,this._updatePicker(this.color)}},{key:"_setBrightness",value:function(e){var t=a.RGBToHSV(this.color.r,this.color.g,this.color.b);t.v=e/100;var i=a.HSVToRGB(t.h,t.s,t.v);i.a=this.color.a,this.color=i,this._updatePicker()}},{key:"_updatePicker",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.color,t=a.RGBToHSV(e.r,e.g,e.b),i=this.colorPickerCanvas.getContext("2d");void 0===this.pixelRation&&(this.pixelRatio=(window.devicePixelRatio||1)/(i.webkitBackingStorePixelRatio||i.mozBackingStorePixelRatio||i.msBackingStorePixelRatio||i.oBackingStorePixelRatio||i.backingStorePixelRatio||1)),i.setTransform(this.pixelRatio,0,0,this.pixelRatio,0,0);var o=this.colorPickerCanvas.clientWidth,n=this.colorPickerCanvas.clientHeight;i.clearRect(0,0,o,n),i.putImageData(this.hueCircle,0,0),i.fillStyle="rgba(0,0,0,"+(1-t.v)+")",i.circle(this.centerCoordinates.x,this.centerCoordinates.y,this.r),i.fill(),this.brightnessRange.value=100*t.v,this.opacityRange.value=100*e.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+")"}},{key:"_setSize",value:function(){this.colorPickerCanvas.style.width="100%",this.colorPickerCanvas.style.height="100%",this.colorPickerCanvas.width=289*this.pixelRatio,this.colorPickerCanvas.height=289*this.pixelRatio}},{key:"_create",value:function(){if(this.frame=document.createElement("div"),this.frame.className="vis-color-picker",this.colorPickerDiv=document.createElement("div"),this.colorPickerSelector=document.createElement("div"),this.colorPickerSelector.className="vis-selector",this.colorPickerDiv.appendChild(this.colorPickerSelector),this.colorPickerCanvas=document.createElement("canvas"),this.colorPickerDiv.appendChild(this.colorPickerCanvas),this.colorPickerCanvas.getContext){var e=this.colorPickerCanvas.getContext("2d");this.pixelRatio=(window.devicePixelRatio||1)/(e.webkitBackingStorePixelRatio||e.mozBackingStorePixelRatio||e.msBackingStorePixelRatio||e.oBackingStorePixelRatio||e.backingStorePixelRatio||1),this.colorPickerCanvas.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.colorPickerCanvas.appendChild(t)}this.colorPickerDiv.className="vis-color",this.opacityDiv=document.createElement("div"),this.opacityDiv.className="vis-opacity",this.brightnessDiv=document.createElement("div"),this.brightnessDiv.className="vis-brightness",this.arrowDiv=document.createElement("div"),this.arrowDiv.className="vis-arrow",this.opacityRange=document.createElement("input");try{this.opacityRange.type="range",this.opacityRange.min="0",this.opacityRange.max="100"}catch(e){}this.opacityRange.value="100",this.opacityRange.className="vis-range",this.brightnessRange=document.createElement("input");try{this.brightnessRange.type="range",this.brightnessRange.min="0",this.brightnessRange.max="100"}catch(e){}this.brightnessRange.value="100",this.brightnessRange.className="vis-range",this.opacityDiv.appendChild(this.opacityRange),this.brightnessDiv.appendChild(this.brightnessRange);var i=this;this.opacityRange.onchange=function(){i._setOpacity(this.value)},this.opacityRange.oninput=function(){i._setOpacity(this.value)},this.brightnessRange.onchange=function(){i._setBrightness(this.value)},this.brightnessRange.oninput=function(){i._setBrightness(this.value)},this.brightnessLabel=document.createElement("div"),this.brightnessLabel.className="vis-label vis-brightness",this.brightnessLabel.innerHTML="brightness:",this.opacityLabel=document.createElement("div"),this.opacityLabel.className="vis-label vis-opacity",this.opacityLabel.innerHTML="opacity:",this.newColorDiv=document.createElement("div"),this.newColorDiv.className="vis-new-color",this.newColorDiv.innerHTML="new",this.initialColorDiv=document.createElement("div"),this.initialColorDiv.className="vis-initial-color",this.initialColorDiv.innerHTML="initial",this.cancelButton=document.createElement("div"),this.cancelButton.className="vis-button vis-cancel",this.cancelButton.innerHTML="cancel",this.cancelButton.onclick=this._hide.bind(this,!1),this.applyButton=document.createElement("div"),this.applyButton.className="vis-button vis-apply",this.applyButton.innerHTML="apply",this.applyButton.onclick=this._apply.bind(this),this.saveButton=document.createElement("div"),this.saveButton.className="vis-button vis-save",this.saveButton.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)}},{key:"_bindHammer",value:function(){var e=this;this.drag={},this.pinch={},this.hammer=new s(this.colorPickerCanvas),this.hammer.get("pinch").set({enable:!0}),r.onTouch(this.hammer,function(t){e._moveSelector(t)}),this.hammer.on("tap",function(t){e._moveSelector(t)}),this.hammer.on("panstart",function(t){e._moveSelector(t)}),this.hammer.on("panmove",function(t){e._moveSelector(t)}),this.hammer.on("panend",function(t){e._moveSelector(t)})}},{key:"_generateHueCircle",value:function(){if(this.generated===!1){var e=this.colorPickerCanvas.getContext("2d");void 0===this.pixelRation&&(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 t=this.colorPickerCanvas.clientWidth,i=this.colorPickerCanvas.clientHeight;e.clearRect(0,0,t,i);var o=void 0,n=void 0,s=void 0,r=void 0;this.centerCoordinates={x:.5*t,y:.5*i},this.r=.49*t;var h=2*Math.PI/360,d=1/360,l=1/this.r,c=void 0;for(s=0;s<360;s++)for(r=0;r2&&void 0!==arguments[2]&&arguments[2],o=this.distanceSolver.getDistances(this.body,e,t);this._createL_matrix(o),this._createK_matrix(o);for(var n=.01,r=1,a=0,h=Math.max(1e3,Math.min(10*this.body.nodeIndices.length,6e3)),d=5,l=1e9,c=0,u=0,f=0,p=0,v=0;l>n&&ar&&v=.1;)f=n[l++%s],f>d&&(f=d),u=Math.sqrt(f*f/(1+h*h)),u=r<0?-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){if(e)return o(e)}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;n=0;i--){var h=s[i];h.nodes||(h.nodes=[]),h.nodes.indexOf(n)===-1&&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=D.NULL,I="";" "===F||"\t"===F||"\n"===F||"\r"===F;)n();do{var e=!1;if("#"===F){for(var t=B-1;" "===P.charAt(t)||"\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||"\t"===F||"\n"===F||"\r"===F;)n()}while(e);if(""===F)return void(j=D.DELIMITER);var i=F+s();if(T[i])return j=D.DELIMITER,I=i,n(),void n();if(T[F])return j=D.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=D.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=D.IDENTIFIER)}for(j=D.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===D.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!=D.IDENTIFIER)throw w("Identifier expected");var o=I;if(u(),"="===I){if(u(),j!=D.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===D.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!=D.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!=D.IDENTIFIER)throw w("Attribute name expected");var t=I;if(u(),"="!=I)throw w("Equal sign = expected");if(u(),j!=D.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=D.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;a.vis-content{position:relative}.vis-panel .vis-shadow{position:absolute;width:100%;height:1px;box-shadow:0 0 10px rgba(0,0,0,.8)}.vis-panel .vis-shadow.vis-top{top:-1px;left:0}.vis-panel .vis-shadow.vis-bottom{bottom:-1px;left:0}.vis-graph-group0{fill:#4f81bd;fill-opacity:0;stroke-width:2px;stroke:#4f81bd}.vis-graph-group1{fill:#f79646;fill-opacity:0;stroke-width:2px;stroke:#f79646}.vis-graph-group2{fill:#8c51cf;fill-opacity:0;stroke-width:2px;stroke:#8c51cf}.vis-graph-group3{fill:#75c841;fill-opacity:0;stroke-width:2px;stroke:#75c841}.vis-graph-group4{fill:#ff0100;fill-opacity:0;stroke-width:2px;stroke:#ff0100}.vis-graph-group5{fill:#37d8e6;fill-opacity:0;stroke-width:2px;stroke:#37d8e6}.vis-graph-group6{fill:#042662;fill-opacity:0;stroke-width:2px;stroke:#042662}.vis-graph-group7{fill:#00ff26;fill-opacity:0;stroke-width:2px;stroke:#00ff26}.vis-graph-group8{fill:#f0f;fill-opacity:0;stroke-width:2px;stroke:#f0f}.vis-graph-group9{fill:#8f3938;fill-opacity:0;stroke-width:2px;stroke:#8f3938}.vis-timeline .vis-fill{fill-opacity:.1;stroke:none}.vis-timeline .vis-bar{fill-opacity:.5;stroke-width:1px}.vis-timeline .vis-point{stroke-width:2px;fill-opacity:1}.vis-timeline .vis-legend-background{stroke-width:1px;fill-opacity:.9;fill:#fff;stroke:#c2c2c2}.vis-timeline .vis-outline{stroke-width:1px;fill-opacity:1;fill:#fff;stroke:#e5e5e5}.vis-timeline .vis-icon-fill{fill-opacity:.3;stroke:none}.vis-time-axis{position:relative}.vis-time-axis.vis-foreground{top:0;left:0;width:100%}.vis-time-axis.vis-background{position:absolute;top:0;left:0;width:100%;height:100%}.vis-time-axis .vis-text{position:absolute;color:#4d4d4d;padding:3px;overflow:hidden;box-sizing:border-box;white-space:nowrap}.vis-time-axis .vis-text.vis-measure{position:absolute;padding-left:0;padding-right:0;margin-left:0;margin-right:0;visibility:hidden}.vis-time-axis .vis-grid.vis-vertical{position:absolute;border-left:1px solid}.vis-time-axis .vis-grid.vis-vertical-rtl{position:absolute;border-right:1px solid}.vis-time-axis .vis-grid.vis-minor{border-color:#e5e5e5}.vis-time-axis .vis-grid.vis-major{border-color:#bfbfbf}.vis-timeline{position:relative;border:1px solid #bfbfbf;padding:0;margin:0;box-sizing:border-box} \ No newline at end of file diff --git a/dist/vis-timeline-graph2d.min.js b/dist/vis-timeline-graph2d.min.js index e9eb0af3..c02bb516 100644 --- a/dist/vis-timeline-graph2d.min.js +++ b/dist/vis-timeline-graph2d.min.js @@ -4,8 +4,8 @@ * * A dynamic, browser-based visualization library. * - * @version 4.16.1 - * @date 2016-04-18 + * @version 4.17.0 + * @date 2016-11-05 * * @license * Copyright (C) 2011-2016 Almende B.V, http://almende.com @@ -22,18 +22,18 @@ * * 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.Timeline=i(11),e.Graph2d=i(41),e.timeline={Core:i(23),DateUtil:i(22),Range:i(20),stack:i(27),TimeStep:i(25),components:{items:{Item:i(29),BackgroundItem:i(33),BoxItem:i(31),PointItem:i(32),RangeItem:i(28)},BackgroundGroup:i(30),Component:i(21),CurrentTime:i(39),CustomTime:i(37),DataAxis:i(43),DataScale:i(44),GraphGroup:i(45),Group:i(26),ItemSet:i(24),Legend:i(49),LineGraph:i(42),TimeAxis:i(34)}},e.moment=i(2),e.Hammer=i(14),e.keycharm=i(36)},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],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,c=t.length-1,n=void 0!=n?n:function(t,e){return t==e?0:e>t?-1:1};c>=u&&d>l;){if(h=Math.floor(.5*(c+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:c=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 ro.apply(null,arguments)}function i(t){ro=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 ho)o=ho[i],n=e[o],p(n)||(t[o]=n);return t}function f(t){m(this,t),this._d=new Date(null!=t._d?t._d.getTime():NaN),lo===!1&&(lo=!0,e.updateOffset(this),lo=!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,i){var o=!0;return a(function(){return null!=e.deprecationHandler&&e.deprecationHandler(null,t),o&&(_(t+"\nArguments: "+Array.prototype.slice.call(arguments).join(", ")+"\n"+(new Error).stack),o=!1),i.apply(this,arguments)},i)}function x(t,i){null!=e.deprecationHandler&&e.deprecationHandler(t,i),uo[t]||(_(i),uo[t]=!0)}function D(t){return t instanceof Function||"[object Function]"===Object.prototype.toString.call(t)}function k(t){return"[object Object]"===Object.prototype.toString.call(t)}function S(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)&&(k(t[i])&&k(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 O(t){null!=t&&this.set(t)}function T(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(!fo[e]&&"undefined"!=typeof t&&t&&t.exports)try{i=po._abbr,!function(){var t=new Error('Cannot find module "./locale"');throw t.code="MODULE_NOT_FOUND",t}(),P(i)}catch(o){}return fo[e]}function P(t,e){var i;return t&&(i=p(e)?I(t):A(t,e),i&&(po=i)),po._abbr}function A(t,e){return null!==e?(e.abbr=t,null!=fo[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(fo[t]._config,e)):null!=e.parentLocale&&(null!=fo[e.parentLocale]?e=C(fo[e.parentLocale]._config,e):x("parentLocaleUndefined","specified parentLocale is not defined yet")),fo[t]=new O(e),P(t),fo[t]):(delete fo[t],null)}function N(t,e){if(null!=e){var i;null!=fo[t]&&(e=C(fo[t]._config,e)),i=new O(e),i.parentLocale=fo[t],fo[t]=i,P(t)}else null!=fo[t]&&(null!=fo[t].parentLocale?fo[t]=fo[t].parentLocale:null!=fo[t]&&delete fo[t]);return fo[t]}function I(t){var e;if(t&&t._locale&&t._locale._abbr&&(t=t._locale._abbr),!t)return po;if(!o(t)){if(e=E(t))return e;t=[t]}return M(t)}function R(){return co(fo)}function L(t,e){var i=t.toLowerCase();go[i]=go[i+"s"]=go[e]=t}function F(t){return"string"==typeof t?go[t]||go[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&&(_o[t]=n),e&&(_o[e[0]]=function(){return W(n.apply(this,arguments),e[1],e[2])}),i&&(_o[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(vo);for(e=0,i=o.length;i>e;e++)_o[o[e]]?o[e]=_o[o[e]]:o[e]=B(o[e]);return function(e){var n,s="";for(n=0;i>n;n++)s+=o[n]instanceof Function?o[n].call(e,t):o[n];return s}}function q(t,e){return t.isValid()?(e=X(e,t.localeData()),bo[e]=bo[e]||U(e),bo[e](t)):t.localeData().invalidDate()}function X(t,e){function i(t){return e.longDateFormat(t)||t}var o=5;for(yo.lastIndex=0;o>=0&&yo.test(t);)t=t.replace(yo,i),yo.lastIndex=0,o-=1;return t}function Z(t,e,i){Ho[t]=D(e)?e:function(t,o){return t&&i?i:e}}function K(t,e){return r(Ho,t)?Ho[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)s=h([2e3,o]),this._shortMonthsParse[o]=this.monthsShort(s,"").toLocaleLowerCase(),this._longMonthsParse[o]=this.months(s,"").toLocaleLowerCase();return i?"MMM"===e?(n=mo.call(this._shortMonthsParse,r),-1!==n?n:null):(n=mo.call(this._longMonthsParse,r),-1!==n?n:null):"MMM"===e?(n=mo.call(this._shortMonthsParse,r),-1!==n?n:(n=mo.call(this._longMonthsParse,r),-1!==n?n:null)):(n=mo.call(this._longMonthsParse,r),-1!==n?n:(n=mo.call(this._shortMonthsParse,r),-1!==n?n:null))}function rt(t,e,i){var o,n,s;if(this._monthsParseExact)return st.call(this,t,e,i);for(this._monthsParse||(this._monthsParse=[],this._longMonthsParse=[],this._shortMonthsParse=[]),o=0;12>o;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 at(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 ht(t){return null!=t?(at(this,t),e.updateOffset(this,!0),this):j(this,"Month")}function dt(){return it(this.year(),this.month())}function lt(t){return this._monthsParseExact?(r(this,"_monthsRegex")||ct.call(this),t?this._monthsShortStrictRegex:this._monthsShortRegex):this._monthsShortStrictRegex&&t?this._monthsShortStrictRegex:this._monthsShortRegex}function ut(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 pt(t){var e,i=t._a;return i&&-2===l(t).overflow&&(e=i[Go]<0||i[Go]>11?Go:i[zo]<1||i[zo]>it(i[jo],i[Go])?zo:i[Wo]<0||i[Wo]>24||24===i[Wo]&&(0!==i[Vo]||0!==i[Bo]||0!==i[Uo])?Wo:i[Vo]<0||i[Vo]>59?Vo:i[Bo]<0||i[Bo]>59?Bo:i[Uo]<0||i[Uo]>999?Uo:-1,l(t)._overflowDayOfYear&&(jo>e||e>zo)&&(e=zo),l(t)._overflowWeeks&&-1===e&&(e=qo),l(t)._overflowWeekday&&-1===e&&(e=Xo),l(t).overflow=e),t}function mt(t){var e,i,o,n,s,r,a=t._i,h=tn.exec(a)||en.exec(a);if(h){for(l(t).iso=!0,e=0,i=nn.length;i>e;e++)if(nn[e][1].exec(h[1])){n=nn[e][0],o=nn[e][2]!==!1;break}if(null==n)return void(t._isValid=!1);if(h[3]){for(e=0,i=sn.length;i>e;e++)if(sn[e][1].exec(h[3])){s=(h[2]||" ")+sn[e][0];break}if(null==s)return void(t._isValid=!1)}if(!o&&null!=s)return void(t._isValid=!1);if(h[4]){if(!on.exec(h[4]))return void(t._isValid=!1);r="Z"}t._f=n+(s||"")+(r||""),Mt(t)}else t._isValid=!1}function ft(t){var i=rn.exec(t._i);return null!==i?void(t._d=new Date(+i[1])):(mt(t),void(t._isValid===!1&&(delete t._isValid,e.createFromInputFallback(t))))}function gt(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 yt(t){return bt(t)?366:365}function bt(t){return t%4===0&&t%100!==0||t%400===0}function _t(){return bt(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 xt(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=yt(s)+d):d>yt(t)?(s=t+1,r=d-yt(t)):(s=t,r=d),{year:s,dayOfYear:r}}function Dt(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(yt(t)-o+n)/7}function St(t,e,i){return null!=t?t:null!=e?e:i}function Ct(t){var i=new Date(e.now());return t._useUTC?[i.getUTCFullYear(),i.getUTCMonth(),i.getUTCDate()]:[i.getFullYear(),i.getMonth(),i.getDate()]}function Ot(t){var e,i,o,n,s=[];if(!t._d){for(o=Ct(t),t._w&&null==t._a[zo]&&null==t._a[Go]&&Tt(t),t._dayOfYear&&(n=St(t._a[jo],o[jo]),t._dayOfYear>yt(n)&&(l(t)._overflowDayOfYear=!0),i=vt(n,0,t._dayOfYear),t._a[Go]=i.getUTCMonth(),t._a[zo]=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[Wo]&&0===t._a[Vo]&&0===t._a[Bo]&&0===t._a[Uo]&&(t._nextDay=!0,t._a[Wo]=0),t._d=(t._useUTC?vt:gt).apply(null,s),null!=t._tzm&&t._d.setUTCMinutes(t._d.getUTCMinutes()-t._tzm),t._nextDay&&(t._a[Wo]=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[jo],Dt(Ft(),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[jo],Dt(Ft(),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>kt(i,s,r)?l(t)._overflowWeeks=!0:null!=h?l(t)._overflowWeekday=!0:(a=xt(i,o,n,s,r),t._a[jo]=a.year,t._dayOfYear=a.dayOfYear)}function Mt(t){if(t._f===e.ISO_8601)return void mt(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(vo)||[],i=0;i0&&l(t).unusedInput.push(r),a=a.slice(a.indexOf(o)+o.length),d+=o.length),_o[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[Wo]<=12&&t._a[Wo]>0&&(l(t).bigHour=void 0),l(t).parsedDateParts=t._a.slice(0),l(t).meridiem=t._meridiem,t._a[Wo]=Et(t._locale,t._a[Wo],t._meridiem),Ot(t),pt(t)}function Et(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 Pt(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)}),Ot(t)}}function Nt(t){var e=new f(pt(It(t)));return e._nextDay&&(e.add(1,"d"),e._nextDay=void 0),e}function It(t){var e=t._i,i=t._f;return t._locale=t._locale||I(t._l),null===e||void 0===i&&""===e?c({nullInput:!0}):("string"==typeof e&&(t._i=e=t._locale.preparse(e)),g(e)?new f(pt(e)):(o(i)?Pt(t):i?Mt(t):n(e)?t._d=e:Rt(t),u(t)||(t._d=null),t))}function Rt(t){var i=t._i;void 0===i?t._d=new Date(e.now()):n(i)?t._d=new Date(i.valueOf()):"string"==typeof i?ft(t):o(i)?(t._a=s(i.slice(0),function(t){return parseInt(t,10)}),Ot(t)):"object"==typeof i?At(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,Nt(s)}function Ft(t,e,i,o){return Lt(t,e,i,o,!1)}function Ht(t,e){var i,n;if(1===e.length&&o(e[0])&&(e=e[0]),!e.length)return Ft();for(i=e[0],n=1;nt&&(t=-t,i="-"),i+W(~~(t/60),2)+e+W(~~t%60,2)})}function Vt(t,e){var i=(e||"").match(t)||[],o=i[i.length-1]||[],n=(o+"").match(un)||["-",0,0],s=+(60*n[1])+y(n[2]);return"+"===n[0]?s:-s}function Bt(t,i){var o,s;return i._isUTC?(o=i.clone(),s=(g(t)||n(t)?t.valueOf():Ft(t).valueOf())-o.valueOf(),o._d.setTime(o._d.valueOf()+s),e.updateOffset(o,!1),o):Ft(t).local()}function Ut(t){return 15*-Math.round(t._d.getTimezoneOffset()/15)}function qt(t,i){var o,n=this._offset||0;return this.isValid()?null!=t?("string"==typeof t?t=Vt(Ro,t):Math.abs(t)<16&&(t=60*t),!this._isUTC&&i&&(o=Ut(this)),this._offset=t,this._isUTC=!0,null!=o&&this.add(o,"m"),n!==t&&(!i||this._changeInProgress?le(this,ne(t-n,"m"),1,!1):this._changeInProgress||(this._changeInProgress=!0,e.updateOffset(this,!0),this._changeInProgress=null)),this):this._isUTC?n:Ut(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 Kt(t){return this._isUTC&&(this.utcOffset(0,t),this._isUTC=!1,t&&this.subtract(Ut(this),"m")),this}function Jt(){return this._tzm?this.utcOffset(this._tzm):"string"==typeof this._i&&this.utcOffset(Vt(Io,this._i)),this}function Qt(t){return this.isValid()?(t=t?Ft(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 te(){if(!p(this._isDSTShifted))return this._isDSTShifted;var t={};if(m(t,this),t=It(t),t._a){var e=t._isUTC?h(t._a):Ft(t._a);this._isDSTShifted=this.isValid()&&b(t._a,e.toArray())>0}else this._isDSTShifted=!1;return this._isDSTShifted}function ee(){return this.isValid()?!this._isUTC:!1}function ie(){return this.isValid()?this._isUTC:!1}function oe(){return this.isValid()?this._isUTC&&0===this._offset:!1}function ne(t,e){var i,o,n,s=t,a=null;return zt(t)?s={ms:t._milliseconds,d:t._days,M:t._months}:"number"==typeof t?(s={},e?s[e]=t:s.milliseconds=t):(a=cn.exec(t))?(i="-"===a[1]?-1:1,s={y:0,d:y(a[zo])*i,h:y(a[Wo])*i,m:y(a[Vo])*i,s:y(a[Bo])*i,ms:y(a[Uo])*i}):(a=pn.exec(t))?(i="-"===a[1]?-1:1,s={y:se(a[2],i),M:se(a[3],i),w:se(a[4],i), -d:se(a[5],i),h:se(a[6],i),m:se(a[7],i),s:se(a[8],i)}):null==s?s={}:"object"==typeof s&&("from"in s||"to"in s)&&(n=ae(Ft(s.from),Ft(s.to)),s={},s.ms=n.milliseconds,s.M=n.months),o=new Gt(s),zt(t)&&r(t,"_locale")&&(o._locale=t._locale),o}function se(t,e){var i=t&&parseFloat(t.replace(",","."));return(isNaN(i)?0:i)*e}function re(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 ae(t,e){var i;return t.isValid()&&e.isValid()?(e=Bt(e,t),t.isBefore(e)?i=re(t,e):(i=re(e,t),i.milliseconds=-i.milliseconds,i.months=-i.months),i):{milliseconds:0,months:0}}function he(t){return 0>t?-1*Math.round(-1*t):Math.round(t)}function de(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=ne(i,o),le(this,n,t),this}}function le(t,i,o,n){var s=i._milliseconds,r=he(i._days),a=he(i._months);t.isValid()&&(n=null==n?!0:n,s&&t._d.setTime(t._d.valueOf()+s*o),r&&G(t,"Date",j(t,"Date")+r*o),a&&at(t,j(t,"Month")+a*o),n&&e.updateOffset(t,r||a))}function ue(t,e){var i=t||Ft(),o=Bt(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,Ft(i)))}function ce(){return new f(this)}function pe(t,e){var i=g(t)?t:Ft(t);return this.isValid()&&i.isValid()?(e=F(p(e)?"millisecond":e),"millisecond"===e?this.valueOf()>i.valueOf():i.valueOf()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)||0}function we(){return this.clone().locale("en").format("ddd MMM DD YYYY HH:mm:ss [GMT]ZZ")}function xe(){var t=this.clone().utc();return 0s&&(e=s),Xe.call(this,t,e,i,o,n))}function Xe(t,e,i,o,n){var s=xt(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 Ze(t){return null==t?Math.ceil((this.month()+1)/3):this.month(3*(t-1)+this.month()%3)}function Ke(t){return Dt(t,this._week.dow,this._week.doy).week}function Je(){return this._week.dow}function Qe(){return this._week.doy}function $e(t){var e=this.localeData().week(this);return null==t?e:this.add(7*(t-e),"d")}function ti(t){var e=Dt(this,1,4).week;return null==t?e:this.add(7*(t-e),"d")}function ei(t,e){return"string"!=typeof t?t:isNaN(t)?(t=e.weekdaysParse(t),"number"==typeof t?t:null):parseInt(t,10)}function ii(t,e){return o(this._weekdays)?this._weekdays[t.day()]:this._weekdays[this._weekdays.isFormat.test(e)?"format":"standalone"][t.day()]}function oi(t){return this._weekdaysShort[t.day()]}function ni(t){return this._weekdaysMin[t.day()]}function si(t,e,i){var o,n,s,r=t.toLocaleLowerCase();if(!this._weekdaysParse)for(this._weekdaysParse=[],this._shortWeekdaysParse=[],this._minWeekdaysParse=[],o=0;7>o;++o)s=h([2e3,1]).day(o),this._minWeekdaysParse[o]=this.weekdaysMin(s,"").toLocaleLowerCase(),this._shortWeekdaysParse[o]=this.weekdaysShort(s,"").toLocaleLowerCase(),this._weekdaysParse[o]=this.weekdays(s,"").toLocaleLowerCase();return i?"dddd"===e?(n=mo.call(this._weekdaysParse,r),-1!==n?n:null):"ddd"===e?(n=mo.call(this._shortWeekdaysParse,r),-1!==n?n:null):(n=mo.call(this._minWeekdaysParse,r),-1!==n?n:null):"dddd"===e?(n=mo.call(this._weekdaysParse,r),-1!==n?n:(n=mo.call(this._shortWeekdaysParse,r),-1!==n?n:(n=mo.call(this._minWeekdaysParse,r),-1!==n?n:null))):"ddd"===e?(n=mo.call(this._shortWeekdaysParse,r),-1!==n?n:(n=mo.call(this._weekdaysParse,r),-1!==n?n:(n=mo.call(this._minWeekdaysParse,r),-1!==n?n:null))):(n=mo.call(this._minWeekdaysParse,r),-1!==n?n:(n=mo.call(this._weekdaysParse,r),-1!==n?n:(n=mo.call(this._shortWeekdaysParse,r),-1!==n?n:null)))}function ri(t,e,i){var o,n,s;if(this._weekdaysParseExact)return si.call(this,t,e,i);for(this._weekdaysParse||(this._weekdaysParse=[],this._minWeekdaysParse=[],this._shortWeekdaysParse=[],this._fullWeekdaysParse=[]),o=0;7>o;o++){if(n=h([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 ai(t){if(!this.isValid())return null!=t?this:NaN;var e=this._isUTC?this._d.getUTCDay():this._d.getDay();return null!=t?(t=ei(t,this.localeData()),this.add(t-e,"d")):e}function hi(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 di(t){return this.isValid()?null==t?this.day()||7:this.day(this.day()%7?t:t-7):null!=t?this:NaN}function li(t){return this._weekdaysParseExact?(r(this,"_weekdaysRegex")||pi.call(this),t?this._weekdaysStrictRegex:this._weekdaysRegex):this._weekdaysStrictRegex&&t?this._weekdaysStrictRegex:this._weekdaysRegex}function ui(t){return this._weekdaysParseExact?(r(this,"_weekdaysRegex")||pi.call(this),t?this._weekdaysShortStrictRegex:this._weekdaysShortRegex):this._weekdaysShortStrictRegex&&t?this._weekdaysShortStrictRegex:this._weekdaysShortRegex}function ci(t){return this._weekdaysParseExact?(r(this,"_weekdaysRegex")||pi.call(this),t?this._weekdaysMinStrictRegex:this._weekdaysMinRegex):this._weekdaysMinStrictRegex&&t?this._weekdaysMinStrictRegex:this._weekdaysMinRegex}function pi(){function t(t,e){return e.length-t.length}var e,i,o,n,s,r=[],a=[],d=[],l=[];for(e=0;7>e;e++)i=h([2e3,1]).day(e),o=this.weekdaysMin(i,""),n=this.weekdaysShort(i,""),s=this.weekdays(i,""),r.push(o),a.push(n),d.push(s),l.push(o),l.push(n),l.push(s);for(r.sort(t),a.sort(t),d.sort(t),l.sort(t),e=0;7>e;e++)a[e]=Q(a[e]),d[e]=Q(d[e]),l[e]=Q(l[e]);this._weekdaysRegex=new RegExp("^("+l.join("|")+")","i"),this._weekdaysShortRegex=this._weekdaysRegex,this._weekdaysMinRegex=this._weekdaysRegex,this._weekdaysStrictRegex=new RegExp("^("+d.join("|")+")","i"),this._weekdaysShortStrictRegex=new RegExp("^("+a.join("|")+")","i"),this._weekdaysMinStrictRegex=new RegExp("^("+r.join("|")+")","i")}function mi(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 fi(){return this.hours()%12||12}function gi(){return this.hours()||24}function vi(t,e){V(t,0,0,function(){return this.localeData().meridiem(this.hours(),this.minutes(),e)})}function yi(t,e){return e._meridiemParse}function bi(t){return"p"===(t+"").toLowerCase().charAt(0)}function _i(t,e,i){return t>11?i?"pm":"PM":i?"am":"AM"}function wi(t,e){e[Uo]=y(1e3*("0."+t))}function xi(){return this._isUTC?"UTC":""}function Di(){return this._isUTC?"Coordinated Universal Time":""}function ki(t){return Ft(1e3*t)}function Si(){return Ft.apply(null,arguments).parseZone()}function Ci(t,e,i){var o=this._calendar[t];return D(o)?o.call(e,i):o}function Oi(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 Ti(){return this._invalidDate}function Mi(t){return this._ordinal.replace("%d",t)}function Ei(t){return t}function Pi(t,e,i,o){var n=this._relativeTime[i];return D(n)?n(t,e,i,o):n.replace(/%d/i,t)}function Ai(t,e){var i=this._relativeTime[t>0?"future":"past"];return D(i)?i(e):i.replace(/%s/i,e)}function Ni(t,e,i,o){var n=I(),s=h().set(o,e);return n[i](s,t)}function Ii(t,e,i){if("number"==typeof t&&(e=t,t=void 0),t=t||"",null!=e)return Ni(t,e,i,"month");var o,n=[];for(o=0;12>o;o++)n[o]=Ni(t,o,i,"month");return n}function Ri(t,e,i,o){"boolean"==typeof t?("number"==typeof e&&(i=e,e=void 0),e=e||""):(e=t,i=e,t=!1,"number"==typeof e&&(i=e,e=void 0),e=e||"");var n=I(),s=t?n._week.dow:0;if(null!=i)return Ni(e,(i+s)%7,o,"day");var r,a=[];for(r=0;7>r;r++)a[r]=Ni(e,(r+s)%7,o,"day");return a}function Li(t,e){return Ii(t,e,"months")}function Fi(t,e){return Ii(t,e,"monthsShort")}function Hi(t,e,i){return Ri(t,e,i,"weekdays")}function Yi(t,e,i){return Ri(t,e,i,"weekdaysShort")}function ji(t,e,i){return Ri(t,e,i,"weekdaysMin")}function Gi(){var t=this._data;return this._milliseconds=jn(this._milliseconds),this._days=jn(this._days),this._months=jn(this._months),t.milliseconds=jn(t.milliseconds),t.seconds=jn(t.seconds),t.minutes=jn(t.minutes),t.hours=jn(t.hours),t.months=jn(t.months),t.years=jn(t.years),this}function zi(t,e,i,o){var n=ne(e,i);return t._milliseconds+=o*n._milliseconds,t._days+=o*n._days,t._months+=o*n._months,t._bubble()}function Wi(t,e){return zi(this,t,e,1)}function Vi(t,e){return zi(this,t,e,-1)}function Bi(t){return 0>t?Math.floor(t):Math.ceil(t)}function Ui(){var t,e,i,o,n,s=this._milliseconds,r=this._days,a=this._months,h=this._data;return s>=0&&r>=0&&a>=0||0>=s&&0>=r&&0>=a||(s+=864e5*Bi(Xi(a)+r),r=0,a=0),h.milliseconds=s%1e3,t=v(s/1e3),h.seconds=t%60,e=v(t/60),h.minutes=e%60,i=v(e/60),h.hours=i%24,r+=v(i/24),n=v(qi(r)),a+=n,r-=Bi(Xi(n)),o=v(a/12),a%=12,h.days=r,h.months=a,h.years=o,this}function qi(t){return 4800*t/146097}function Xi(t){return 146097*t/4800}function Zi(t){var e,i,o=this._milliseconds;if(t=F(t),"month"===t||"year"===t)return e=this._days+o/864e5,i=this._months+qi(e),"month"===t?i:i/12;switch(e=this._days+Math.round(Xi(this._months)),t){case"week":return e/7+o/6048e5;case"day":return e+o/864e5;case"hour":return 24*e+o/36e5;case"minute":return 1440*e+o/6e4;case"second":return 86400*e+o/1e3;case"millisecond":return Math.floor(864e5*e)+o;default:throw new Error("Unknown unit "+t)}}function Ki(){return this._milliseconds+864e5*this._days+this._months%12*2592e6+31536e6*y(this._months/12)}function Ji(t){return function(){return this.as(t)}}function Qi(t){return t=F(t),this[t+"s"]()}function $i(t){return function(){return this._data[t]}}function to(){return v(this.days()/7)}function eo(t,e,i,o,n){return n.relativeTime(e||1,!!i,t,o)}function io(t,e,i){var o=ne(t).abs(),n=is(o.as("s")),s=is(o.as("m")),r=is(o.as("h")),a=is(o.as("d")),h=is(o.as("M")),d=is(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,eo.apply(null,l)}function oo(t,e){return void 0===os[t]?!1:void 0===e?os[t]:(os[t]=e,!0)}function no(t){var e=this.localeData(),i=io(this,!t,e);return t&&(i=e.pastFuture(+this,i)),e.postformat(i)}function so(){var t,e,i,o=ns(this._milliseconds)/1e3,n=ns(this._days),s=ns(this._months);t=v(o/60),e=v(t/60),o%=60,t%=60,i=v(s/12),s%=12;var r=i,a=s,h=n,d=e,l=t,u=o,c=this.asSeconds();return c?(0>c?"-":"")+"P"+(r?r+"Y":"")+(a?a+"M":"")+(h?h+"D":"")+(d||l||u?"T":"")+(d?d+"H":"")+(l?l+"M":"")+(u?u+"S":""):"P0D"}var ro,ao;ao=Array.prototype.some?Array.prototype.some:function(t){for(var e=Object(this),i=e.length>>>0,o=0;i>o;o++)if(o in e&&t.call(this,e[o],o,e))return!0;return!1};var ho=e.momentProperties=[],lo=!1,uo={};e.suppressDeprecationWarnings=!1,e.deprecationHandler=null;var co;co=Object.keys?Object.keys:function(t){var e,i=[];for(e in t)r(t,e)&&i.push(e);return i};var po,mo,fo={},go={},vo=/(\[[^\[]*\])|(\\)?([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?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g,yo=/(\[[^\[]*\])|(\\)?(LTS|LT|LL?L?L?|l{1,4})/g,bo={},_o={},wo=/\d/,xo=/\d\d/,Do=/\d{3}/,ko=/\d{4}/,So=/[+-]?\d{6}/,Co=/\d\d?/,Oo=/\d\d\d\d?/,To=/\d\d\d\d\d\d?/,Mo=/\d{1,3}/,Eo=/\d{1,4}/,Po=/[+-]?\d{1,6}/,Ao=/\d+/,No=/[+-]?\d+/,Io=/Z|[+-]\d\d:?\d\d/gi,Ro=/Z|[+-]\d\d(?::?\d\d)?/gi,Lo=/[+-]?\d+(\.\d{1,3})?/,Fo=/[0-9]*['a-z\u00A0-\u05FF\u0700-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]+|[\u0600-\u06FF\/]+(\s*?[\u0600-\u06FF]+){1,2}/i,Ho={},Yo={},jo=0,Go=1,zo=2,Wo=3,Vo=4,Bo=5,Uo=6,qo=7,Xo=8;mo=Array.prototype.indexOf?Array.prototype.indexOf:function(t){var e;for(e=0;e=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",No),Z("YY",Co,xo),Z("YYYY",Eo,ko),Z("YYYYY",Po,So),Z("YYYYYY",Po,So),$(["YYYYY","YYYYYY"],jo),$("YYYY",function(t,i){i[jo]=2===t.length?e.parseTwoDigitYear(t):y(t)}),$("YY",function(t,i){i[jo]=e.parseTwoDigitYear(t)}),$("Y",function(t,e){e[jo]=parseInt(t,10)}),e.parseTwoDigitYear=function(t){return y(t)+(y(t)>68?1900:2e3)};var an=Y("FullYear",!0);e.ISO_8601=function(){};var hn=w("moment().min is deprecated, use moment.max instead. https://github.com/moment/moment/issues/1548",function(){var t=Ft.apply(null,arguments);return this.isValid()&&t.isValid()?this>t?this:t:c()}),dn=w("moment().max is deprecated, use moment.min instead. https://github.com/moment/moment/issues/1548",function(){var t=Ft.apply(null,arguments);return this.isValid()&&t.isValid()?t>this?this:t:c()}),ln=function(){return Date.now?Date.now():+new Date};Wt("Z",":"),Wt("ZZ",""),Z("Z",Ro),Z("ZZ",Ro),$(["Z","ZZ"],function(t,e,i){i._useUTC=!0,i._tzm=Vt(Ro,t)});var un=/([\+\-]|\d\d)/gi;e.updateOffset=function(){};var cn=/^(\-)?(?:(\d*)[. ])?(\d+)\:(\d+)(?:\:(\d+)\.?(\d{3})?\d*)?$/,pn=/^(-)?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=Gt.prototype;var mn=de(1,"add"),fn=de(-1,"subtract");e.defaultFormat="YYYY-MM-DDTHH:mm:ssZ",e.defaultFormatUtc="YYYY-MM-DDTHH:mm:ss[Z]";var gn=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}),ze("gggg","weekYear"),ze("ggggg","weekYear"),ze("GGGG","isoWeekYear"),ze("GGGGG","isoWeekYear"),L("weekYear","gg"),L("isoWeekYear","GG"),Z("G",No),Z("g",No),Z("GG",Co,xo),Z("gg",Co,xo),Z("GGGG",Eo,ko),Z("gggg",Eo,ko),Z("GGGGG",Po,So),Z("ggggg",Po,So),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",wo),$("Q",function(t,e){e[Go]=3*(y(t)-1)}),V("w",["ww",2],"wo","week"),V("W",["WW",2],"Wo","isoWeek"),L("week","w"),L("isoWeek","W"),Z("w",Co),Z("ww",Co,xo),Z("W",Co),Z("WW",Co,xo),tt(["w","ww","W","WW"],function(t,e,i,o){e[o.substr(0,1)]=y(t)});var vn={dow:0,doy:6};V("D",["DD",2],"Do","date"),L("date","D"),Z("D",Co),Z("DD",Co,xo),Z("Do",function(t,e){return t?e._ordinalParse:e._ordinalParseLenient}),$(["D","DD"],zo),$("Do",function(t,e){e[zo]=y(t.match(Co)[0],10)});var yn=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",Co),Z("e",Co),Z("E",Co),Z("dd",function(t,e){return e.weekdaysMinRegex(t)}),Z("ddd",function(t,e){return e.weekdaysShortRegex(t)}),Z("dddd",function(t,e){return e.weekdaysRegex(t)}),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 bn="Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),_n="Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),wn="Su_Mo_Tu_We_Th_Fr_Sa".split("_"),xn=Fo,Dn=Fo,kn=Fo;V("DDD",["DDDD",3],"DDDo","dayOfYear"),L("dayOfYear","DDD"),Z("DDD",Mo),Z("DDDD",Do),$(["DDD","DDDD"],function(t,e,i){i._dayOfYear=y(t)}),V("H",["HH",2],0,"hour"),V("h",["hh",2],0,fi),V("k",["kk",2],0,gi),V("hmm",0,0,function(){return""+fi.apply(this)+W(this.minutes(),2)}),V("hmmss",0,0,function(){return""+fi.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)}),vi("a",!0),vi("A",!1),L("hour","h"),Z("a",yi),Z("A",yi),Z("H",Co),Z("h",Co),Z("HH",Co,xo),Z("hh",Co,xo),Z("hmm",Oo),Z("hmmss",To),Z("Hmm",Oo),Z("Hmmss",To),$(["H","HH"],Wo),$(["a","A"],function(t,e,i){i._isPm=i._locale.isPM(t),i._meridiem=t}),$(["h","hh"],function(t,e,i){e[Wo]=y(t),l(i).bigHour=!0}),$("hmm",function(t,e,i){var o=t.length-2;e[Wo]=y(t.substr(0,o)),e[Vo]=y(t.substr(o)),l(i).bigHour=!0}),$("hmmss",function(t,e,i){var o=t.length-4,n=t.length-2;e[Wo]=y(t.substr(0,o)),e[Vo]=y(t.substr(o,2)),e[Bo]=y(t.substr(n)),l(i).bigHour=!0}),$("Hmm",function(t,e,i){var o=t.length-2;e[Wo]=y(t.substr(0,o)),e[Vo]=y(t.substr(o))}),$("Hmmss",function(t,e,i){var o=t.length-4,n=t.length-2;e[Wo]=y(t.substr(0,o)),e[Vo]=y(t.substr(o,2)),e[Bo]=y(t.substr(n))});var Sn=/[ap]\.?m?\.?/i,Cn=Y("Hours",!0);V("m",["mm",2],0,"minute"),L("minute","m"),Z("m",Co),Z("mm",Co,xo),$(["m","mm"],Vo);var On=Y("Minutes",!1);V("s",["ss",2],0,"second"),L("second","s"),Z("s",Co),Z("ss",Co,xo),$(["s","ss"],Bo);var Tn=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",Mo,wo),Z("SS",Mo,xo),Z("SSS",Mo,Do);var Mn;for(Mn="SSSS";Mn.length<=9;Mn+="S")Z(Mn,Ao);for(Mn="S";Mn.length<=9;Mn+="S")$(Mn,wi);var En=Y("Milliseconds",!1);V("z",0,0,"zoneAbbr"),V("zz",0,0,"zoneName");var Pn=f.prototype;Pn.add=mn,Pn.calendar=ue,Pn.clone=ce,Pn.diff=be,Pn.endOf=Pe,Pn.format=De,Pn.from=ke,Pn.fromNow=Se,Pn.to=Ce,Pn.toNow=Oe,Pn.get=z,Pn.invalidAt=je,Pn.isAfter=pe,Pn.isBefore=me,Pn.isBetween=fe,Pn.isSame=ge,Pn.isSameOrAfter=ve,Pn.isSameOrBefore=ye,Pn.isValid=He,Pn.lang=gn,Pn.locale=Te,Pn.localeData=Me,Pn.max=dn,Pn.min=hn,Pn.parsingFlags=Ye,Pn.set=z,Pn.startOf=Ee,Pn.subtract=fn,Pn.toArray=Re,Pn.toObject=Le,Pn.toDate=Ie,Pn.toISOString=xe,Pn.toJSON=Fe,Pn.toString=we,Pn.unix=Ne,Pn.valueOf=Ae,Pn.creationData=Ge,Pn.year=an,Pn.isLeapYear=_t,Pn.weekYear=We,Pn.isoWeekYear=Ve,Pn.quarter=Pn.quarters=Ze,Pn.month=ht,Pn.daysInMonth=dt,Pn.week=Pn.weeks=$e,Pn.isoWeek=Pn.isoWeeks=ti,Pn.weeksInYear=Ue,Pn.isoWeeksInYear=Be,Pn.date=yn,Pn.day=Pn.days=ai,Pn.weekday=hi,Pn.isoWeekday=di,Pn.dayOfYear=mi,Pn.hour=Pn.hours=Cn,Pn.minute=Pn.minutes=On,Pn.second=Pn.seconds=Tn,Pn.millisecond=Pn.milliseconds=En,Pn.utcOffset=qt,Pn.utc=Zt,Pn.local=Kt,Pn.parseZone=Jt,Pn.hasAlignedHourOffset=Qt,Pn.isDST=$t,Pn.isDSTShifted=te,Pn.isLocal=ee,Pn.isUtcOffset=ie,Pn.isUtc=oe,Pn.isUTC=oe,Pn.zoneAbbr=xi,Pn.zoneName=Di,Pn.dates=w("dates accessor is deprecated. Use date instead.",yn),Pn.months=w("months accessor is deprecated. Use month instead",ht),Pn.years=w("years accessor is deprecated. Use year instead",an),Pn.zone=w("moment().zone is deprecated, use moment().utcOffset instead. https://github.com/moment/moment/issues/1779",Xt);var An=Pn,Nn={sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},In={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"},Rn="Invalid date",Ln="%d",Fn=/\d{1,2}/,Hn={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"},Yn=O.prototype;Yn._calendar=Nn,Yn.calendar=Ci,Yn._longDateFormat=In,Yn.longDateFormat=Oi,Yn._invalidDate=Rn,Yn.invalidDate=Ti,Yn._ordinal=Ln,Yn.ordinal=Mi,Yn._ordinalParse=Fn,Yn.preparse=Ei,Yn.postformat=Ei,Yn._relativeTime=Hn,Yn.relativeTime=Pi,Yn.pastFuture=Ai,Yn.set=S,Yn.months=ot,Yn._months=Ko,Yn.monthsShort=nt,Yn._monthsShort=Jo,Yn.monthsParse=rt,Yn._monthsRegex=$o,Yn.monthsRegex=ut,Yn._monthsShortRegex=Qo,Yn.monthsShortRegex=lt,Yn.week=Ke,Yn._week=vn,Yn.firstDayOfYear=Qe,Yn.firstDayOfWeek=Je,Yn.weekdays=ii,Yn._weekdays=bn,Yn.weekdaysMin=ni,Yn._weekdaysMin=wn,Yn.weekdaysShort=oi,Yn._weekdaysShort=_n,Yn.weekdaysParse=ri,Yn._weekdaysRegex=xn,Yn.weekdaysRegex=li,Yn._weekdaysShortRegex=Dn,Yn.weekdaysShortRegex=ui,Yn._weekdaysMinRegex=kn,Yn.weekdaysMinRegex=ci,Yn.isPM=bi,Yn._meridiemParse=Sn,Yn.meridiem=_i,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=w("moment.lang is deprecated. Use moment.locale instead.",P),e.langData=w("moment.langData is deprecated. Use moment.localeData instead.",I);var jn=Math.abs,Gn=Ji("ms"),zn=Ji("s"),Wn=Ji("m"),Vn=Ji("h"),Bn=Ji("d"),Un=Ji("w"),qn=Ji("M"),Xn=Ji("y"),Zn=$i("milliseconds"),Kn=$i("seconds"),Jn=$i("minutes"),Qn=$i("hours"),$n=$i("days"),ts=$i("months"),es=$i("years"),is=Math.round,os={s:45,m:45,h:22,d:26,M:11},ns=Math.abs,ss=Gt.prototype;ss.abs=Gi,ss.add=Wi,ss.subtract=Vi,ss.as=Zi,ss.asMilliseconds=Gn,ss.asSeconds=zn,ss.asMinutes=Wn,ss.asHours=Vn,ss.asDays=Bn,ss.asWeeks=Un,ss.asMonths=qn,ss.asYears=Xn,ss.valueOf=Ki,ss._bubble=Ui,ss.get=Qi,ss.milliseconds=Zn,ss.seconds=Kn,ss.minutes=Jn,ss.hours=Qn,ss.days=$n,ss.weeks=to,ss.months=ts,ss.years=es,ss.humanize=no,ss.toISOString=so,ss.toString=so,ss.toJSON=so,ss.locale=Te,ss.localeData=Me,ss.toIsoString=w("toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)",so),ss.lang=gn,V("X",0,0,"unix"),V("x",0,0,"valueOf"),Z("x",No),Z("X",Lo),$("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.13.0",i(Ft),e.fn=An,e.min=Yt,e.max=jt,e.now=ln,e.utc=h,e.unix=ki,e.months=Li,e.isDate=n,e.locale=P,e.invalid=c,e.duration=ne,e.isMoment=g,e.weekdays=Hi,e.parseZone=Si,e.localeData=I,e.isDuration=zt,e.monthsShort=Fi,e.weekdaysMin=ji,e.defineLocale=A,e.updateLocale=N,e.locales=R,e.weekdaysShort=Yi,e.normalizeUnits=F,e.relativeTimeThreshold=oo,e.prototype=An;var rs=e;return rs})}).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 c=t.node||m,p=0;6>p;p++)s[n+p]=c[p];return e?e:o(s)}function s(t,e,i){var n=e&&i||0;"string"==typeof t&&(e="binary"==t?new Array(16):null,t=null),t=t||{};var s=t.random||(t.rng||r)();if(s[6]=15&s[6]|64,s[8]=63&s[8]|128,e)for(var a=0;16>a;a++)e[n+a]=s[a];return e||o(s)}var r,a="undefined"!=typeof window?window:"undefined"!=typeof e?e:null;if(a&&a.crypto&&crypto.getRandomValues){var h=new Uint8Array(16);r=function(){return crypto.getRandomValues(h),h}}if(!r){var d=new Array(16);r=function(){for(var t,e=0;16>e;e++)0===(3&e)&&(t=4294967296*Math.random()),d[e]=t>>>((3&e)<<3)&255;return d}}for(var l=[],u={},c=0;256>c;c++)l[c]=(c+256).toString(16).substr(1),u[l[c]]=c;var p=r(),m=[1|p[0],p[1],p[2],p[3],p[4],p[5]],f=16383&(p[6]<<8|p[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 c={items:o,oldData:n,data:r};this._trigger("update",c,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,c,p,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(c=0,p=i.length;p>c;c++)d=n._getItem(i[c],m),f&&!f(d)||g.push(d);else for(l=Object.keys(this._data),c=0,p=l.length;p>c;c++)u=l[c],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(c=0,p=g.length;p>c;c++)g[c]=this._filterFields(g[c],v)}if("Object"==a){var y,b={};for(c=0,p=g.length;p>c;c++)y=g[c],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],c=u[t],p=!1;for(i=0;d>i;i++)if(a[i]==c){p=!0;break}p||void 0===c||(a[d]=c,d++)}if(h)for(e=0,o=a.length;o>e;e++)a[e]=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=[],c=[];if(a&&h){switch(t){case"add":for(o=0,n=a.length;n>o;o++)s=a[o],r=this.get(s),r&&(this._ids[s]=!0,l.push(s));break;case"update":for(o=0,n=a.length;n>o;o++)s=a[o],r=this.get(s),r?this._ids[s]?(u.push(s),d.push(e.data[o])):(this._ids[s]=!0,l.push(s)):this._ids[s]&&(delete this._ids[s],c.push(s));break;case"remove":for(o=0,n=a.length;n>o;o++)s=a[o],this._ids[s]&&(delete this._ids[s],c.push(s))}this.length+=l.length-c.length,l.length&&this._trigger("add",{items:l},i),u.length&&this._trigger("update",{items:u,data:d},i),c.length&&this._trigger("remove",{items:c},i)}},o.prototype.on=s.prototype.on,o.prototype.off=s.prototype.off,o.prototype._trigger=s.prototype._trigger,o.prototype.subscribe=o.prototype.on,o.prototype.unsubscribe=o.prototype.off,t.exports=o},function(t,e,i){function o(t){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 c)&&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 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),c=i(10),p=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 c?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 c?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()},c=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=c(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=c(s)+h*r/u):(i=e(n)-h*r/u,o=c(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(),c=this._toTime(o),p=h?h(c,d,u):c,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:c,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*u?(a.min=Math.ceil(e*u),l=a.min,d="range increased"):n>e/u&&(a.min=Math.ceil(e/u),l=a.min,d="range increased"),e*u>s&&1!==s&&(a.max=Math.ceil(e*u),l=a.max,d="range increased"),a.value=e}else a.value=o;var c=document.createElement("input");c.className="vis-configuration vis-config-rangeinput",c.value=a.value;var p=this;a.onchange=function(){c.value=this.value,p._update(Number(this.value),i)},a.oninput=function(){c.value=this.value};var m=this._makeLabel(i[i.length-1],i),f=this._makeItem(i,m,a,c);""!==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;rp?p+1:p;var m=l/this.r,f=a.RGBToHSV(this.color.r,this.color.g,this.color.b);f.h=p,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 +"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.Timeline=i(11),e.Graph2d=i(41),e.timeline={Core:i(23),DateUtil:i(22),Range:i(20),stack:i(27),TimeStep:i(25),components:{items:{Item:i(29),BackgroundItem:i(33),BoxItem:i(31),PointItem:i(32),RangeItem:i(28)},BackgroundGroup:i(30),Component:i(21),CurrentTime:i(39),CustomTime:i(37),DataAxis:i(43),DataScale:i(44),GraphGroup:i(45),Group:i(26),ItemSet:i(24),Legend:i(49),LineGraph:i(42),TimeAxis:i(34)}},e.moment=i(2),e.Hammer=i(14),e.keycharm=i(36)},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&&t!==Symbol.prototype?"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]&&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;i3&&void 0!==arguments[3]&&arguments[3];if(Array.isArray(o))throw new TypeError("Arrays are not supported by deepExtend");for(var s=2;s3&&void 0!==arguments[3]&&arguments[3];if(Array.isArray(o))throw new TypeError("Arrays are not supported by deepExtend");for(var s in o)if(o.hasOwnProperty(s)&&t.indexOf(s)==-1)if(o[s]&&o[s].constructor===Object)void 0===i[s]&&(i[s]={}),i[s].constructor===Object?e.deepExtend(i[s],o[s]):null===o[s]&&void 0!==i[s]&&n===!0?delete i[s]:i[s]=o[s];else if(Array.isArray(o[s])){i[s]=[];for(var r=0;r=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(t.indexOf("rgba")!=-1)return t;if(t.indexOf("rgb")!=-1){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]&&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;r<=a&&s0)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 t<.5?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 t<.5?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 t<.5?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 t<.5?16*t*t*t*t*t:1+16*--t*t*t*t*t}},e.getScrollBarWidth=function(){var t=document.createElement("p");t.style.width="100%",t.style.height="200px";var e=document.createElement("div");e.style.position="absolute",e.style.top="0px",e.style.left="0px",e.style.visibility="hidden",e.style.width="200px",e.style.height="150px",e.style.overflow="hidden",e.appendChild(t),document.body.appendChild(e);var i=t.offsetWidth;e.style.overflow="scroll";var o=t.offsetWidth;return i==o&&(o=e.clientWidth),document.body.removeChild(e),i-o}},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 mo.apply(null,arguments)}function i(t){mo=t}function o(t){return t instanceof Array||"[object Array]"===Object.prototype.toString.call(t)}function n(t){return null!=t&&"[object Object]"===Object.prototype.toString.call(t)}function s(t){var e;for(e in t)return!1;return!0}function r(t){return t instanceof Date||"[object Date]"===Object.prototype.toString.call(t)}function a(t,e){var i,o=[];for(i=0;i0)for(i in go)o=go[i],n=e[o],f(n)||(t[o]=n);return t}function v(t){g(this,t),this._d=new Date(null!=t._d?t._d.getTime():NaN),vo===!1&&(vo=!0,e.updateOffset(this),vo=!1)}function y(t){return t instanceof v||null!=t&&null!=t._isAMomentObject}function b(t){return t<0?Math.ceil(t)||0:Math.floor(t)}function _(t){var e=+t,i=0;return 0!==e&&isFinite(e)&&(i=b(e)),i}function w(t,e,i){var o,n=Math.min(t.length,e.length),s=Math.abs(t.length-e.length),r=0;for(o=0;o0?"future":"past"];return k(i)?i(e):i.replace(/%s/i,e)}function R(t,e){var i=t.toLowerCase();To[i]=To[i+"s"]=To[e]=t}function L(t){return"string"==typeof t?To[t]||To[t.toLowerCase()]:void 0}function F(t){var e,i,o={};for(i in t)h(t,i)&&(e=L(i),e&&(o[e]=t[i]));return o}function H(t,e){Oo[t]=e}function Y(t){var e=[];for(var i in t)e.push({unit:i,priority:Oo[i]});return e.sort(function(t,e){return t.priority-e.priority}),e}function j(t,i){return function(o){return null!=o?(z(this,t,o),e.updateOffset(this,i),this):G(this,t)}}function G(t,e){return t.isValid()?t._d["get"+(t._isUTC?"UTC":"")+e]():NaN}function z(t,e,i){t.isValid()&&t._d["set"+(t._isUTC?"UTC":"")+e](i)}function W(t){return t=L(t),k(this[t])?this[t]():this}function U(t,e){if("object"==typeof t){t=F(t);for(var i=Y(t),o=0;o=0;return(s?i?"+":"":"-")+Math.pow(10,Math.max(0,n)).toString().substr(1)+o}function B(t,e,i,o){var n=o;"string"==typeof o&&(n=function(){return this[o]()}),t&&(Ao[t]=n),e&&(Ao[e[0]]=function(){return V(n.apply(this,arguments),e[1],e[2])}),i&&(Ao[i]=function(){return this.localeData().ordinal(n.apply(this,arguments),t)})}function q(t){return t.match(/\[[\s\S]/)?t.replace(/^\[|\]$/g,""):t.replace(/\\/g,"")}function X(t){var e,i,o=t.match(Mo);for(e=0,i=o.length;e=0&&Eo.test(t);)t=t.replace(Eo,i),Eo.lastIndex=0,o-=1;return t}function J(t,e,i){Ko[t]=k(e)?e:function(t,o){return t&&i?i:e}}function Q(t,e){return h(Ko,t)?Ko[t](e._strict,e._locale):new RegExp($(t))}function $(t){return tt(t.replace("\\","").replace(/\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g,function(t,e,i,o,n){return e||i||o||n}))}function tt(t){return t.replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&")}function et(t,e){var i,o=e;for("string"==typeof t&&(t=[t]),"number"==typeof e&&(o=function(t,i){i[e]=_(t)}),i=0;i=0&&isFinite(a.getFullYear())&&a.setFullYear(t),a}function bt(t){var e=new Date(Date.UTC.apply(null,arguments));return t<100&&t>=0&&isFinite(e.getUTCFullYear())&&e.setUTCFullYear(t),e}function _t(t,e,i){var o=7+e-i,n=(7+bt(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 d<=0?(s=t-1,r=ft(s)+d):d>ft(t)?(s=t+1,r=d-ft(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 r<1?(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(ft(t)-o+n)/7}function St(t){return xt(t,this._week.dow,this._week.doy).week}function kt(){return this._week.dow}function Ct(){return this._week.doy}function Tt(t){var e=this.localeData().week(this);return null==t?e:this.add(7*(t-e),"d")}function Ot(t){var e=xt(this,1,4).week;return null==t?e:this.add(7*(t-e),"d")}function Mt(t,e){return"string"!=typeof t?t:isNaN(t)?(t=e.weekdaysParse(t),"number"==typeof t?t:null):parseInt(t,10)}function Et(t,e){return"string"==typeof t?e.weekdaysParse(t)%7||7:isNaN(t)?null:t}function Pt(t,e){return t?o(this._weekdays)?this._weekdays[t.day()]:this._weekdays[this._weekdays.isFormat.test(e)?"format":"standalone"][t.day()]:this._weekdays}function At(t){return t?this._weekdaysShort[t.day()]:this._weekdaysShort}function Nt(t){return t?this._weekdaysMin[t.day()]:this._weekdaysMin}function It(t,e,i){var o,n,s,r=t.toLocaleLowerCase();if(!this._weekdaysParse)for(this._weekdaysParse=[],this._shortWeekdaysParse=[],this._minWeekdaysParse=[],o=0;o<7;++o)s=l([2e3,1]).day(o),this._minWeekdaysParse[o]=this.weekdaysMin(s,"").toLocaleLowerCase(),this._shortWeekdaysParse[o]=this.weekdaysShort(s,"").toLocaleLowerCase(),this._weekdaysParse[o]=this.weekdays(s,"").toLocaleLowerCase();return i?"dddd"===e?(n=_o.call(this._weekdaysParse,r),n!==-1?n:null):"ddd"===e?(n=_o.call(this._shortWeekdaysParse,r),n!==-1?n:null):(n=_o.call(this._minWeekdaysParse,r),n!==-1?n:null):"dddd"===e?(n=_o.call(this._weekdaysParse,r),n!==-1?n:(n=_o.call(this._shortWeekdaysParse,r),n!==-1?n:(n=_o.call(this._minWeekdaysParse,r),n!==-1?n:null))):"ddd"===e?(n=_o.call(this._shortWeekdaysParse,r),n!==-1?n:(n=_o.call(this._weekdaysParse,r),n!==-1?n:(n=_o.call(this._minWeekdaysParse,r),n!==-1?n:null))):(n=_o.call(this._minWeekdaysParse,r),n!==-1?n:(n=_o.call(this._weekdaysParse,r),n!==-1?n:(n=_o.call(this._shortWeekdaysParse,r),n!==-1?n:null)))}function Rt(t,e,i){var o,n,s;if(this._weekdaysParseExact)return It.call(this,t,e,i);for(this._weekdaysParse||(this._weekdaysParse=[],this._minWeekdaysParse=[],this._shortWeekdaysParse=[],this._fullWeekdaysParse=[]),o=0;o<7;o++){if(n=l([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 Lt(t){if(!this.isValid())return null!=t?this:NaN;var e=this._isUTC?this._d.getUTCDay():this._d.getDay();return null!=t?(t=Mt(t,this.localeData()),this.add(t-e,"d")):e}function Ft(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 Ht(t){if(!this.isValid())return null!=t?this:NaN;if(null!=t){var e=Et(t,this.localeData());return this.day(this.day()%7?e:e-7)}return this.day()||7}function Yt(t){return this._weekdaysParseExact?(h(this,"_weekdaysRegex")||zt.call(this),t?this._weekdaysStrictRegex:this._weekdaysRegex):(h(this,"_weekdaysRegex")||(this._weekdaysRegex=yn),this._weekdaysStrictRegex&&t?this._weekdaysStrictRegex:this._weekdaysRegex)}function jt(t){return this._weekdaysParseExact?(h(this,"_weekdaysRegex")||zt.call(this),t?this._weekdaysShortStrictRegex:this._weekdaysShortRegex):(h(this,"_weekdaysShortRegex")||(this._weekdaysShortRegex=bn),this._weekdaysShortStrictRegex&&t?this._weekdaysShortStrictRegex:this._weekdaysShortRegex)}function Gt(t){return this._weekdaysParseExact?(h(this,"_weekdaysRegex")||zt.call(this),t?this._weekdaysMinStrictRegex:this._weekdaysMinRegex):(h(this,"_weekdaysMinRegex")||(this._weekdaysMinRegex=_n),this._weekdaysMinStrictRegex&&t?this._weekdaysMinStrictRegex:this._weekdaysMinRegex)}function zt(){function t(t,e){return e.length-t.length}var e,i,o,n,s,r=[],a=[],h=[],d=[];for(e=0;e<7;e++)i=l([2e3,1]).day(e),o=this.weekdaysMin(i,""),n=this.weekdaysShort(i,""),s=this.weekdays(i,""),r.push(o),a.push(n),h.push(s),d.push(o),d.push(n),d.push(s);for(r.sort(t),a.sort(t),h.sort(t),d.sort(t),e=0;e<7;e++)a[e]=tt(a[e]),h[e]=tt(h[e]),d[e]=tt(d[e]);this._weekdaysRegex=new RegExp("^("+d.join("|")+")","i"),this._weekdaysShortRegex=this._weekdaysRegex,this._weekdaysMinRegex=this._weekdaysRegex,this._weekdaysStrictRegex=new RegExp("^("+h.join("|")+")","i"),this._weekdaysShortStrictRegex=new RegExp("^("+a.join("|")+")","i"),this._weekdaysMinStrictRegex=new RegExp("^("+r.join("|")+")","i")}function Wt(){return this.hours()%12||12}function Ut(){return this.hours()||24}function Vt(t,e){B(t,0,0,function(){return this.localeData().meridiem(this.hours(),this.minutes(),e)})}function Bt(t,e){return e._meridiemParse}function qt(t){return"p"===(t+"").toLowerCase().charAt(0)}function Xt(t,e,i){return t>11?i?"pm":"PM":i?"am":"AM"}function Zt(t){return t?t.toLowerCase().replace("_","-"):t}function Kt(t){for(var e,i,o,n,s=0;s0;){if(o=Jt(n.slice(0,e).join("-")))return o;if(i&&i.length>=e&&w(n,i,!0)>=e-1)break;e--}s++}return null}function Jt(e){var i=null;if(!kn[e]&&"undefined"!=typeof t&&t&&t.exports)try{i=wn._abbr,!function(){var t=new Error('Cannot find module "./locale"');throw t.code="MODULE_NOT_FOUND",t}(),Qt(i)}catch(t){}return kn[e]}function Qt(t,e){var i;return t&&(i=f(e)?ee(t):$t(t,e),i&&(wn=i)),wn._abbr}function $t(t,e){if(null!==e){var i=Sn;return e.abbr=t,null!=kn[t]?(S("defineLocaleOverride","use moment.updateLocale(localeName, config) to change an existing locale. moment.defineLocale(localeName, config) should only be used for creating a new locale See http://momentjs.com/guides/#/warnings/define-locale/ for more info."),i=kn[t]._config):null!=e.parentLocale&&(null!=kn[e.parentLocale]?i=kn[e.parentLocale]._config:S("parentLocaleUndefined","specified parentLocale is not defined yet. See http://momentjs.com/guides/#/warnings/parent-locale/")),kn[t]=new O(T(i,e)),Qt(t),kn[t]}return delete kn[t],null}function te(t,e){if(null!=e){var i,o=Sn;null!=kn[t]&&(o=kn[t]._config),e=T(o,e),i=new O(e),i.parentLocale=kn[t],kn[t]=i,Qt(t)}else null!=kn[t]&&(null!=kn[t].parentLocale?kn[t]=kn[t].parentLocale:null!=kn[t]&&delete kn[t]);return kn[t]}function ee(t){var e;if(t&&t._locale&&t._locale._abbr&&(t=t._locale._abbr),!t)return wn;if(!o(t)){if(e=Jt(t))return e;t=[t]}return Kt(t)}function ie(){return bo(kn)}function oe(t){var e,i=t._a;return i&&p(t).overflow===-2&&(e=i[$o]<0||i[$o]>11?$o:i[tn]<1||i[tn]>nt(i[Qo],i[$o])?tn:i[en]<0||i[en]>24||24===i[en]&&(0!==i[on]||0!==i[nn]||0!==i[sn])?en:i[on]<0||i[on]>59?on:i[nn]<0||i[nn]>59?nn:i[sn]<0||i[sn]>999?sn:-1, +p(t)._overflowDayOfYear&&(etn)&&(e=tn),p(t)._overflowWeeks&&e===-1&&(e=rn),p(t)._overflowWeekday&&e===-1&&(e=an),p(t).overflow=e),t}function ne(t){var e,i,o,n,s,r,a=t._i,h=Cn.exec(a)||Tn.exec(a);if(h){for(p(t).iso=!0,e=0,i=Mn.length;eft(n)&&(p(t)._overflowDayOfYear=!0),i=bt(n,0,t._dayOfYear),t._a[$o]=i.getUTCMonth(),t._a[tn]=i.getUTCDate()),e=0;e<3&&null==t._a[e];++e)t._a[e]=s[e]=o[e];for(;e<7;e++)t._a[e]=s[e]=null==t._a[e]?2===e?1:0:t._a[e];24===t._a[en]&&0===t._a[on]&&0===t._a[nn]&&0===t._a[sn]&&(t._nextDay=!0,t._a[en]=0),t._d=(t._useUTC?bt:yt).apply(null,s),null!=t._tzm&&t._d.setUTCMinutes(t._d.getUTCMinutes()-t._tzm),t._nextDay&&(t._a[en]=24)}}function de(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=re(e.GG,t._a[Qo],xt(ye(),1,4).year),o=re(e.W,1),n=re(e.E,1),(n<1||n>7)&&(h=!0)):(s=t._locale._week.dow,r=t._locale._week.doy,i=re(e.gg,t._a[Qo],xt(ye(),s,r).year),o=re(e.w,1),null!=e.d?(n=e.d,(n<0||n>6)&&(h=!0)):null!=e.e?(n=e.e+s,(e.e<0||e.e>6)&&(h=!0)):n=s),o<1||o>Dt(i,s,r)?p(t)._overflowWeeks=!0:null!=h?p(t)._overflowWeekday=!0:(a=wt(i,o,n,s,r),t._a[Qo]=a.year,t._dayOfYear=a.dayOfYear)}function le(t){if(t._f===e.ISO_8601)return void ne(t);t._a=[],p(t).empty=!0;var i,o,n,s,r,a=""+t._i,h=a.length,d=0;for(n=K(t._f,t._locale).match(Mo)||[],i=0;i0&&p(t).unusedInput.push(r),a=a.slice(a.indexOf(o)+o.length),d+=o.length),Ao[s]?(o?p(t).empty=!1:p(t).unusedTokens.push(s),ot(s,o,t)):t._strict&&!o&&p(t).unusedTokens.push(s);p(t).charsLeftOver=h-d,a.length>0&&p(t).unusedInput.push(a),t._a[en]<=12&&p(t).bigHour===!0&&t._a[en]>0&&(p(t).bigHour=void 0),p(t).parsedDateParts=t._a.slice(0),p(t).meridiem=t._meridiem,t._a[en]=ue(t._locale,t._a[en],t._meridiem),he(t),oe(t)}function ue(t,e,i){var o;return null==i?e:null!=t.meridiemHour?t.meridiemHour(e,i):null!=t.isPM?(o=t.isPM(i),o&&e<12&&(e+=12),o||12!==e||(e=0),e):e}function pe(t){var e,i,o,n,s;if(0===t._f.length)return p(t).invalidFormat=!0,void(t._d=new Date(NaN));for(n=0;nthis.clone().month(0).utcOffset()||this.utcOffset()>this.clone().month(5).utcOffset()}function Le(){if(!f(this._isDSTShifted))return this._isDSTShifted;var t={};if(g(t,this),t=fe(t),t._a){var e=t._isUTC?l(t._a):ye(t._a);this._isDSTShifted=this.isValid()&&w(t._a,e.toArray())>0}else this._isDSTShifted=!1;return this._isDSTShifted}function Fe(){return!!this.isValid()&&!this._isUTC}function He(){return!!this.isValid()&&this._isUTC}function Ye(){return!!this.isValid()&&(this._isUTC&&0===this._offset)}function je(t,e){var i,o,n,s=t,r=null;return De(t)?s={ms:t._milliseconds,d:t._days,M:t._months}:"number"==typeof t?(s={},e?s[e]=t:s.milliseconds=t):(r=Ln.exec(t))?(i="-"===r[1]?-1:1,s={y:0,d:_(r[tn])*i,h:_(r[en])*i,m:_(r[on])*i,s:_(r[nn])*i,ms:_(Se(1e3*r[sn]))*i}):(r=Fn.exec(t))?(i="-"===r[1]?-1:1,s={y:Ge(r[2],i),M:Ge(r[3],i),w:Ge(r[4],i),d:Ge(r[5],i),h:Ge(r[6],i),m:Ge(r[7],i),s:Ge(r[8],i)}):null==s?s={}:"object"==typeof s&&("from"in s||"to"in s)&&(n=We(ye(s.from),ye(s.to)),s={},s.ms=n.milliseconds,s.M=n.months),o=new xe(s),De(t)&&h(t,"_locale")&&(o._locale=t._locale),o}function Ge(t,e){var i=t&&parseFloat(t.replace(",","."));return(isNaN(i)?0:i)*e}function ze(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 We(t,e){var i;return t.isValid()&&e.isValid()?(e=Te(e,t),t.isBefore(e)?i=ze(t,e):(i=ze(e,t),i.milliseconds=-i.milliseconds,i.months=-i.months),i):{milliseconds:0,months:0}}function Ue(t,e){return function(i,o){var n,s;return null===o||isNaN(+o)||(S(e,"moment()."+e+"(period, number) is deprecated. Please use moment()."+e+"(number, period). See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info."),s=i,i=o,o=s),i="string"==typeof i?+i:i,n=je(i,o),Ve(this,n,t),this}}function Ve(t,i,o,n){var s=i._milliseconds,r=Se(i._days),a=Se(i._months);t.isValid()&&(n=null==n||n,s&&t._d.setTime(t._d.valueOf()+s*o),r&&z(t,"Date",G(t,"Date")+r*o),a&&dt(t,G(t,"Month")+a*o),n&&e.updateOffset(t,r||a))}function Be(t,e){var i=t.diff(e,"days",!0);return i<-6?"sameElse":i<-1?"lastWeek":i<0?"lastDay":i<1?"sameDay":i<2?"nextDay":i<7?"nextWeek":"sameElse"}function qe(t,i){var o=t||ye(),n=Te(o,this).startOf("day"),s=e.calendarFormat(this,n)||"sameElse",r=i&&(k(i[s])?i[s].call(this,o):i[s]);return this.format(r||this.localeData().calendar(s,this,ye(o)))}function Xe(){return new v(this)}function Ze(t,e){var i=y(t)?t:ye(t);return!(!this.isValid()||!i.isValid())&&(e=L(f(e)?"millisecond":e),"millisecond"===e?this.valueOf()>i.valueOf():i.valueOf()s&&(e=s),Ei.call(this,t,e,i,o,n))}function Ei(t,e,i,o,n){var s=wt(t,e,i,o,n),r=bt(s.year,0,s.dayOfYear);return this.year(r.getUTCFullYear()),this.month(r.getUTCMonth()),this.date(r.getUTCDate()),this}function Pi(t){return null==t?Math.ceil((this.month()+1)/3):this.month(3*(t-1)+this.month()%3)}function Ai(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 Ni(t,e){e[sn]=_(1e3*("0."+t))}function Ii(){return this._isUTC?"UTC":""}function Ri(){return this._isUTC?"Coordinated Universal Time":""}function Li(t){return ye(1e3*t)}function Fi(){return ye.apply(null,arguments).parseZone()}function Hi(t){return t}function Yi(t,e,i,o){var n=ee(),s=l().set(o,e);return n[i](s,t)}function ji(t,e,i){if("number"==typeof t&&(e=t,t=void 0),t=t||"",null!=e)return Yi(t,e,i,"month");var o,n=[];for(o=0;o<12;o++)n[o]=Yi(t,o,i,"month");return n}function Gi(t,e,i,o){"boolean"==typeof t?("number"==typeof e&&(i=e,e=void 0),e=e||""):(e=t,i=e,t=!1,"number"==typeof e&&(i=e,e=void 0),e=e||"");var n=ee(),s=t?n._week.dow:0;if(null!=i)return Yi(e,(i+s)%7,o,"day");var r,a=[];for(r=0;r<7;r++)a[r]=Yi(e,(r+s)%7,o,"day");return a}function zi(t,e){return ji(t,e,"months")}function Wi(t,e){return ji(t,e,"monthsShort")}function Ui(t,e,i){return Gi(t,e,i,"weekdays")}function Vi(t,e,i){return Gi(t,e,i,"weekdaysShort")}function Bi(t,e,i){return Gi(t,e,i,"weekdaysMin")}function qi(){var t=this._data;return this._milliseconds=Zn(this._milliseconds),this._days=Zn(this._days),this._months=Zn(this._months),t.milliseconds=Zn(t.milliseconds),t.seconds=Zn(t.seconds),t.minutes=Zn(t.minutes),t.hours=Zn(t.hours),t.months=Zn(t.months),t.years=Zn(t.years),this}function Xi(t,e,i,o){var n=je(e,i);return t._milliseconds+=o*n._milliseconds,t._days+=o*n._days,t._months+=o*n._months,t._bubble()}function Zi(t,e){return Xi(this,t,e,1)}function Ki(t,e){return Xi(this,t,e,-1)}function Ji(t){return t<0?Math.floor(t):Math.ceil(t)}function Qi(){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||s<=0&&r<=0&&a<=0||(s+=864e5*Ji(to(a)+r),r=0,a=0),h.milliseconds=s%1e3,t=b(s/1e3),h.seconds=t%60,e=b(t/60),h.minutes=e%60,i=b(e/60),h.hours=i%24,r+=b(i/24),n=b($i(r)),a+=n,r-=Ji(to(n)),o=b(a/12),a%=12,h.days=r,h.months=a,h.years=o,this}function $i(t){return 4800*t/146097}function to(t){return 146097*t/4800}function eo(t){var e,i,o=this._milliseconds;if(t=L(t),"month"===t||"year"===t)return e=this._days+o/864e5,i=this._months+$i(e),"month"===t?i:i/12;switch(e=this._days+Math.round(to(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 io(){return this._milliseconds+864e5*this._days+this._months%12*2592e6+31536e6*_(this._months/12)}function oo(t){return function(){return this.as(t)}}function no(t){return t=L(t),this[t+"s"]()}function so(t){return function(){return this._data[t]}}function ro(){return b(this.days()/7)}function ao(t,e,i,o,n){return n.relativeTime(e||1,!!i,t,o)}function ho(t,e,i){var o=je(t).abs(),n=us(o.as("s")),s=us(o.as("m")),r=us(o.as("h")),a=us(o.as("d")),h=us(o.as("M")),d=us(o.as("y")),l=n0,l[4]=i,ao.apply(null,l)}function lo(t){return void 0===t?us:"function"==typeof t&&(us=t,!0)}function uo(t,e){return void 0!==ps[t]&&(void 0===e?ps[t]:(ps[t]=e,!0))}function po(t){var e=this.localeData(),i=ho(this,!t,e);return t&&(i=e.pastFuture(+this,i)),e.postformat(i)}function co(){var t,e,i,o=cs(this._milliseconds)/1e3,n=cs(this._days),s=cs(this._months);t=b(o/60),e=b(t/60),o%=60,t%=60,i=b(s/12),s%=12;var r=i,a=s,h=n,d=e,l=t,u=o,p=this.asSeconds();return p?(p<0?"-":"")+"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 mo,fo;fo=Array.prototype.some?Array.prototype.some:function(t){for(var e=Object(this),i=e.length>>>0,o=0;o68?1900:2e3)};var cn=j("FullYear",!0);B("w",["ww",2],"wo","week"),B("W",["WW",2],"Wo","isoWeek"),R("week","w"),R("isoWeek","W"),H("week",5),H("isoWeek",5),J("w",Ho),J("ww",Ho,Io),J("W",Ho),J("WW",Ho,Io),it(["w","ww","W","WW"],function(t,e,i,o){e[o.substr(0,1)]=_(t)});var mn={dow:0,doy:6};B("d",0,"do","day"),B("dd",0,0,function(t){return this.localeData().weekdaysMin(this,t)}),B("ddd",0,0,function(t){return this.localeData().weekdaysShort(this,t)}),B("dddd",0,0,function(t){return this.localeData().weekdays(this,t)}),B("e",0,0,"weekday"),B("E",0,0,"isoWeekday"),R("day","d"),R("weekday","e"),R("isoWeekday","E"),H("day",11),H("weekday",11),H("isoWeekday",11),J("d",Ho),J("e",Ho),J("E",Ho),J("dd",function(t,e){return e.weekdaysMinRegex(t)}),J("ddd",function(t,e){return e.weekdaysShortRegex(t)}),J("dddd",function(t,e){return e.weekdaysRegex(t)}),it(["dd","ddd","dddd"],function(t,e,i,o){var n=i._locale.weekdaysParse(t,o,i._strict);null!=n?e.d=n:p(i).invalidWeekday=t}),it(["d","e","E"],function(t,e,i,o){e[o]=_(t)});var fn="Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),gn="Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),vn="Su_Mo_Tu_We_Th_Fr_Sa".split("_"),yn=Zo,bn=Zo,_n=Zo;B("H",["HH",2],0,"hour"),B("h",["hh",2],0,Wt),B("k",["kk",2],0,Ut),B("hmm",0,0,function(){return""+Wt.apply(this)+V(this.minutes(),2)}),B("hmmss",0,0,function(){return""+Wt.apply(this)+V(this.minutes(),2)+V(this.seconds(),2)}),B("Hmm",0,0,function(){return""+this.hours()+V(this.minutes(),2)}),B("Hmmss",0,0,function(){return""+this.hours()+V(this.minutes(),2)+V(this.seconds(),2)}),Vt("a",!0),Vt("A",!1),R("hour","h"),H("hour",13),J("a",Bt),J("A",Bt),J("H",Ho),J("h",Ho),J("HH",Ho,Io),J("hh",Ho,Io),J("hmm",Yo),J("hmmss",jo),J("Hmm",Yo),J("Hmmss",jo),et(["H","HH"],en),et(["a","A"],function(t,e,i){i._isPm=i._locale.isPM(t),i._meridiem=t}),et(["h","hh"],function(t,e,i){e[en]=_(t),p(i).bigHour=!0}),et("hmm",function(t,e,i){var o=t.length-2;e[en]=_(t.substr(0,o)),e[on]=_(t.substr(o)),p(i).bigHour=!0}),et("hmmss",function(t,e,i){var o=t.length-4,n=t.length-2;e[en]=_(t.substr(0,o)),e[on]=_(t.substr(o,2)),e[nn]=_(t.substr(n)),p(i).bigHour=!0}),et("Hmm",function(t,e,i){var o=t.length-2;e[en]=_(t.substr(0,o)),e[on]=_(t.substr(o))}),et("Hmmss",function(t,e,i){var o=t.length-4,n=t.length-2;e[en]=_(t.substr(0,o)),e[on]=_(t.substr(o,2)),e[nn]=_(t.substr(n))});var wn,xn=/[ap]\.?m?\.?/i,Dn=j("Hours",!0),Sn={calendar:wo,longDateFormat:xo,invalidDate:Do,ordinal:So,ordinalParse:ko,relativeTime:Co,months:dn,monthsShort:ln,week:mn,weekdays:fn,weekdaysMin:vn,weekdaysShort:gn,meridiemParse:xn},kn={},Cn=/^\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)?)?/,Tn=/^\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)?)?/,On=/Z|[+-]\d\d(?::?\d\d)?/,Mn=[["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}/]],En=[["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/]],Pn=/^\/?Date\((\-?\d+)/i;e.createFromInputFallback=D("value provided is not in a recognized ISO format. moment construction falls back to js Date(), which is not reliable across all browsers and versions. Non ISO date formats are discouraged and will be removed in an upcoming major release. Please refer to http://momentjs.com/guides/#/warnings/js-date/ for more info.",function(t){t._d=new Date(t._i+(t._useUTC?" UTC":""))}),e.ISO_8601=function(){};var An=D("moment().min is deprecated, use moment.max instead. http://momentjs.com/guides/#/warnings/min-max/",function(){var t=ye.apply(null,arguments);return this.isValid()&&t.isValid()?tthis?this:t:m()}),In=function(){return Date.now?Date.now():+new Date};ke("Z",":"),ke("ZZ",""),J("Z",qo),J("ZZ",qo),et(["Z","ZZ"],function(t,e,i){i._useUTC=!0,i._tzm=Ce(qo,t)});var Rn=/([\+\-]|\d\d)/gi;e.updateOffset=function(){};var Ln=/^(\-)?(?:(\d*)[. ])?(\d+)\:(\d+)(?:\:(\d+)(\.\d*)?)?$/,Fn=/^(-)?P(?:(-?[0-9,.]*)Y)?(?:(-?[0-9,.]*)M)?(?:(-?[0-9,.]*)W)?(?:(-?[0-9,.]*)D)?(?:T(?:(-?[0-9,.]*)H)?(?:(-?[0-9,.]*)M)?(?:(-?[0-9,.]*)S)?)?$/;je.fn=xe.prototype;var Hn=Ue(1,"add"),Yn=Ue(-1,"subtract");e.defaultFormat="YYYY-MM-DDTHH:mm:ssZ",e.defaultFormatUtc="YYYY-MM-DDTHH:mm:ss[Z]";var jn=D("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)});B(0,["gg",2],0,function(){return this.weekYear()%100}),B(0,["GG",2],0,function(){return this.isoWeekYear()%100}),Si("gggg","weekYear"),Si("ggggg","weekYear"),Si("GGGG","isoWeekYear"),Si("GGGGG","isoWeekYear"),R("weekYear","gg"),R("isoWeekYear","GG"),H("weekYear",1),H("isoWeekYear",1),J("G",Vo),J("g",Vo),J("GG",Ho,Io),J("gg",Ho,Io),J("GGGG",zo,Lo),J("gggg",zo,Lo),J("GGGGG",Wo,Fo),J("ggggg",Wo,Fo),it(["gggg","ggggg","GGGG","GGGGG"],function(t,e,i,o){e[o.substr(0,2)]=_(t)}),it(["gg","GG"],function(t,i,o,n){i[n]=e.parseTwoDigitYear(t)}),B("Q",0,"Qo","quarter"),R("quarter","Q"),H("quarter",7),J("Q",No),et("Q",function(t,e){e[$o]=3*(_(t)-1)}),B("D",["DD",2],"Do","date"),R("date","D"),H("date",9),J("D",Ho),J("DD",Ho,Io),J("Do",function(t,e){return t?e._ordinalParse:e._ordinalParseLenient}),et(["D","DD"],tn),et("Do",function(t,e){e[tn]=_(t.match(Ho)[0],10)});var Gn=j("Date",!0);B("DDD",["DDDD",3],"DDDo","dayOfYear"),R("dayOfYear","DDD"),H("dayOfYear",4),J("DDD",Go),J("DDDD",Ro),et(["DDD","DDDD"],function(t,e,i){i._dayOfYear=_(t)}),B("m",["mm",2],0,"minute"),R("minute","m"),H("minute",14),J("m",Ho),J("mm",Ho,Io),et(["m","mm"],on);var zn=j("Minutes",!1);B("s",["ss",2],0,"second"),R("second","s"),H("second",15),J("s",Ho),J("ss",Ho,Io),et(["s","ss"],nn);var Wn=j("Seconds",!1);B("S",0,0,function(){return~~(this.millisecond()/100)}),B(0,["SS",2],0,function(){return~~(this.millisecond()/10)}),B(0,["SSS",3],0,"millisecond"),B(0,["SSSS",4],0,function(){return 10*this.millisecond()}),B(0,["SSSSS",5],0,function(){return 100*this.millisecond()}),B(0,["SSSSSS",6],0,function(){return 1e3*this.millisecond()}),B(0,["SSSSSSS",7],0,function(){return 1e4*this.millisecond()}),B(0,["SSSSSSSS",8],0,function(){return 1e5*this.millisecond()}),B(0,["SSSSSSSSS",9],0,function(){return 1e6*this.millisecond()}),R("millisecond","ms"),H("millisecond",16),J("S",Go,No),J("SS",Go,Io),J("SSS",Go,Ro);var Un;for(Un="SSSS";Un.length<=9;Un+="S")J(Un,Uo);for(Un="S";Un.length<=9;Un+="S")et(Un,Ni);var Vn=j("Milliseconds",!1);B("z",0,0,"zoneAbbr"),B("zz",0,0,"zoneName");var Bn=v.prototype;Bn.add=Hn,Bn.calendar=qe,Bn.clone=Xe,Bn.diff=ei,Bn.endOf=ci,Bn.format=si,Bn.from=ri,Bn.fromNow=ai,Bn.to=hi,Bn.toNow=di,Bn.get=W,Bn.invalidAt=xi,Bn.isAfter=Ze,Bn.isBefore=Ke,Bn.isBetween=Je,Bn.isSame=Qe,Bn.isSameOrAfter=$e,Bn.isSameOrBefore=ti,Bn.isValid=_i,Bn.lang=jn,Bn.locale=li,Bn.localeData=ui,Bn.max=Nn,Bn.min=An,Bn.parsingFlags=wi,Bn.set=U,Bn.startOf=pi,Bn.subtract=Yn,Bn.toArray=vi,Bn.toObject=yi,Bn.toDate=gi,Bn.toISOString=ni,Bn.toJSON=bi,Bn.toString=oi,Bn.unix=fi,Bn.valueOf=mi,Bn.creationData=Di,Bn.year=cn,Bn.isLeapYear=vt,Bn.weekYear=ki,Bn.isoWeekYear=Ci,Bn.quarter=Bn.quarters=Pi,Bn.month=lt,Bn.daysInMonth=ut,Bn.week=Bn.weeks=Tt,Bn.isoWeek=Bn.isoWeeks=Ot,Bn.weeksInYear=Oi,Bn.isoWeeksInYear=Ti,Bn.date=Gn,Bn.day=Bn.days=Lt,Bn.weekday=Ft,Bn.isoWeekday=Ht,Bn.dayOfYear=Ai,Bn.hour=Bn.hours=Dn,Bn.minute=Bn.minutes=zn,Bn.second=Bn.seconds=Wn,Bn.millisecond=Bn.milliseconds=Vn,Bn.utcOffset=Me,Bn.utc=Pe,Bn.local=Ae,Bn.parseZone=Ne,Bn.hasAlignedHourOffset=Ie,Bn.isDST=Re,Bn.isLocal=Fe,Bn.isUtcOffset=He,Bn.isUtc=Ye,Bn.isUTC=Ye,Bn.zoneAbbr=Ii,Bn.zoneName=Ri,Bn.dates=D("dates accessor is deprecated. Use date instead.",Gn),Bn.months=D("months accessor is deprecated. Use month instead",lt),Bn.years=D("years accessor is deprecated. Use year instead",cn),Bn.zone=D("moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/",Ee),Bn.isDSTShifted=D("isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information",Le);var qn=Bn,Xn=O.prototype;Xn.calendar=M,Xn.longDateFormat=E,Xn.invalidDate=P,Xn.ordinal=A,Xn.preparse=Hi,Xn.postformat=Hi,Xn.relativeTime=N,Xn.pastFuture=I,Xn.set=C,Xn.months=st,Xn.monthsShort=rt,Xn.monthsParse=ht,Xn.monthsRegex=ct,Xn.monthsShortRegex=pt,Xn.week=St,Xn.firstDayOfYear=Ct,Xn.firstDayOfWeek=kt,Xn.weekdays=Pt,Xn.weekdaysMin=Nt,Xn.weekdaysShort=At,Xn.weekdaysParse=Rt,Xn.weekdaysRegex=Yt,Xn.weekdaysShortRegex=jt,Xn.weekdaysMinRegex=Gt,Xn.isPM=qt,Xn.meridiem=Xt,Qt("en",{ordinalParse:/\d{1,2}(th|st|nd|rd)/,ordinal:function(t){var e=t%10,i=1===_(t%100/10)?"th":1===e?"st":2===e?"nd":3===e?"rd":"th";return t+i}}),e.lang=D("moment.lang is deprecated. Use moment.locale instead.",Qt),e.langData=D("moment.langData is deprecated. Use moment.localeData instead.",ee);var Zn=Math.abs,Kn=oo("ms"),Jn=oo("s"),Qn=oo("m"),$n=oo("h"),ts=oo("d"),es=oo("w"),is=oo("M"),os=oo("y"),ns=so("milliseconds"),ss=so("seconds"),rs=so("minutes"),as=so("hours"),hs=so("days"),ds=so("months"),ls=so("years"),us=Math.round,ps={s:45,m:45,h:22,d:26,M:11},cs=Math.abs,ms=xe.prototype;ms.abs=qi,ms.add=Zi,ms.subtract=Ki,ms.as=eo,ms.asMilliseconds=Kn,ms.asSeconds=Jn,ms.asMinutes=Qn,ms.asHours=$n,ms.asDays=ts,ms.asWeeks=es,ms.asMonths=is,ms.asYears=os,ms.valueOf=io,ms._bubble=Qi,ms.get=no,ms.milliseconds=ns,ms.seconds=ss,ms.minutes=rs,ms.hours=as,ms.days=hs,ms.weeks=ro,ms.months=ds,ms.years=ls,ms.humanize=po,ms.toISOString=co,ms.toString=co,ms.toJSON=co,ms.locale=li,ms.localeData=ui,ms.toIsoString=D("toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)",co),ms.lang=jn,B("X",0,0,"unix"),B("x",0,0,"valueOf"),J("x",Vo),J("X",Xo),et("X",function(t,e,i){i._d=new Date(1e3*parseFloat(t,10))}),et("x",function(t,e,i){i._d=new Date(_(t))}),e.version="2.15.2",i(ye),e.fn=qn,e.min=_e,e.max=we,e.now=In,e.utc=l,e.unix=Li,e.months=zi,e.isDate=r,e.locale=Qt,e.invalid=m,e.duration=je,e.isMoment=y,e.weekdays=Ui,e.parseZone=Fi,e.localeData=ee,e.isDuration=De,e.monthsShort=Wi,e.weekdaysMin=Bi,e.defineLocale=$t,e.updateLocale=te,e.locales=ie,e.weekdaysShort=Vi,e.normalizeUnits=L,e.relativeTimeRounding=lo,e.relativeTimeThreshold=uo,e.calendarFormat=Be,e.prototype=qn;var fs=e;return fs})}).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){n<16&&(e[o+n++]=u[t])});n<16;)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(d<0&&void 0===t.clockseq&&(r=r+1&16383),(d<0||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;c<6;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;a<16;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;e<16;e++)0===(3&e)&&(t=4294967296*Math.random()),d[e]=t>>>((3&e)<<3)&255;return d}}for(var l=[],u={},p=0;p<256;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){n<0&&(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;on?1:or)&&(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;ethis.max&&this.flush(),clearTimeout(this._timeout),this.queue.length>0&&"number"==typeof this.delay){var t=this;this._timeout=setTimeout(function(){t.flush()},this.delay)}},i.prototype.flush=function(){for(;this._queue.length>0;){var t=this._queue.shift();t.fn.apply(t.context||t.fn,t.args||[])}},t.exports=i},function(t,e,i){function o(t,e){this._data=null,this._ids={},this.length=0,this._options=e||{},this._fieldId="id",this._subscribers={};var i=this;this.listener=function(){i._onEvent.apply(i,arguments)},this.setData(t)}var n=i(1),s=i(8);o.prototype.setData=function(t){var e,i,o,n,s;if(this._data){for(this._data.off&&this._data.off("*",this.listener),e=this._data.getIds({filter:this._options&&this._options.filter}),s=[],o=0,n=e.length;os)&&(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;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,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,r<=0&&(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;do&&(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||oe)&&(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&&t!==Symbol.prototype?"symbol":typeof t},r=function(){function t(t,e){for(var i=0;i3&&void 0!==arguments[3]?arguments[3]:1;n(this,t),this.parent=e,this.changedOptions=[],this.container=i,this.allowCreation=!1,this.options={},this.initialized=!1,this.popupCounter=0,this.defaultOptions={enabled:!1,filter:!0,container:void 0,showButton:!0},d.extend(this.options,this.defaultOptions),this.configureOptions=o,this.moduleOptions={},this.domElements=[],this.popupDiv={},this.popupLimit=5,this.popupHistory={},this.colorPicker=new h.default(s),this.wrapper=void 0}return r(t,[{key:"setOptions",value:function(t){if(void 0!==t){this.popupHistory={},this._removePopup();var e=!0;"string"==typeof t?this.options.filter=t:t instanceof Array?this.options.filter=t.join():"object"===("undefined"==typeof t?"undefined":s(t))?(void 0!==t.container&&(this.options.container=t.container),void 0!==t.filter&&(this.options.filter=t.filter),void 0!==t.showButton&&(this.options.showButton=t.showButton),void 0!==t.enabled&&(e=t.enabled)):"boolean"==typeof t?(this.options.filter=!0,e=t):"function"==typeof t&&(this.options.filter=t,e=!0),this.options.filter===!1&&(e=!1),this.options.enabled=e}this._clean()}},{key:"setModuleOptions",value:function(t){this.moduleOptions=t,this.options.enabled===!0&&(this._clean(),void 0!==this.options.container&&(this.container=this.options.container),this._create())}},{key:"_create",value:function(){var t=this;this._clean(),this.changedOptions=[];var e=this.options.filter,i=0,o=!1;for(var n in this.configureOptions)this.configureOptions.hasOwnProperty(n)&&(this.allowCreation=!1,o=!1,"function"==typeof e?(o=e(n,[]),o=o||this._handleObject(this.configureOptions[n],[n],!0)):e!==!0&&e.indexOf(n)===-1||(o=!0),o!==!1&&(this.allowCreation=!0,i>0&&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;r2&&void 0!==arguments[2]&&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&&t.indexOf(e)!==-1&&(n=t.indexOf(e));for(var s=0;ss&&1!==s&&(a.max=Math.ceil(e*l),d=a.max,h="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 c=this._makeLabel(i[i.length-1],i),m=this._makeItem(i,c,a,u);""!==h&&this.popupHistory[m]!==d&&(this.popupHistory[m]=d,this._setupPopup(h,m))}},{key:"_setupPopup",value:function(t,e){var i=this;if(this.initialized===!0&&this.allowCreation===!0&&this.popupCounter1&&void 0!==arguments[1]?arguments[1]:[],i=arguments.length>2&&void 0!==arguments[2]&&arguments[2],o=!1,n=this.options.filter,s=!1;for(var r in t)if(t.hasOwnProperty(r)){o=!0;var a=t[r],h=d.copyAndExtendArray(e,r);if("function"==typeof n&&(o=n(r,e),o===!1&&!(a instanceof Array)&&"string"!=typeof a&&"boolean"!=typeof a&&a instanceof Object&&(this.allowCreation=!1,o=this._handleObject(a,h,!0),this.allowCreation=i===!1)),o!==!1){s=!0;var l=this._getValue(h);if(a instanceof Array)this._handleArray(a,l,h);else if("string"==typeof a)this._makeTextInput(a,l,h);else if("boolean"==typeof a)this._makeCheckbox(a,l,h);else if(a instanceof Object){var u=!0;if(e.indexOf("physics")!==-1&&this.moduleOptions.physics.solver!==r&&(u=!1),u===!0)if(void 0!==a.enabled){var p=d.copyAndExtendArray(h,"enabled"),c=this._getValue(p);if(c===!0){var m=this._makeLabel(r,h,!0);this._makeItem(h,m),s=this._handleObject(a,h)||s}else this._makeCheckbox(a,c,h)}else{var f=this._makeLabel(r,h,!0);this._makeItem(h,f),s=this._handleObject(a,h)||s}}else console.error("dont know how to handle",a,r,h)}}return s}},{key:"_handleArray",value:function(t,e,i){"string"==typeof t[0]&&"color"===t[0]?(this._makeColorField(t,e,i),t[1]!==e&&this.changedOptions.push({path:i,value:e})):"string"==typeof t[0]?(this._makeDropdown(t,e,i),t[0]!==e&&this.changedOptions.push({ +path:i,value:e})):"number"==typeof t[0]&&(this._makeRange(t,e,i),t[0]!==e&&this.changedOptions.push({path:i,value:Number(e)}))}},{key:"_update",value:function(t,e){var i=this._constructOptions(t,e);this.parent.body&&this.parent.body.emitter&&this.parent.body.emitter.emit&&this.parent.body.emitter.emit("configChange",i),this.initialized=!0,this.parent.setOptions(i)}},{key:"_constructOptions",value:function(t,e){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},o=i;t="true"===t||t,t="false"!==t&&t;for(var n=0;nvar options = "+JSON.stringify(t,null,2)+""}},{key:"getOptions",value:function(){for(var t={},e=0;e0&&void 0!==arguments[0]?arguments[0]:1;o(this,t),this.pixelRatio=e,this.generated=!1,this.centerCoordinates={x:144.5,y:144.5},this.r=289*.49,this.color={r:255,g:255,b:255,a:1},this.hueCircle=void 0,this.initialColor={r:255,g:255,b:255,a:1},this.previousColor=void 0,this.applied=!1,this.updateCallback=function(){},this.closeCallback=function(){},this._create()}return n(t,[{key:"insertTo",value:function(t){void 0!==this.hammer&&(this.hammer.destroy(),this.hammer=void 0),this.container=t,this.container.appendChild(this.frame),this._bindHammer(),this._setSize()}},{key:"setUpdateCallback",value:function(t){if("function"!=typeof t)throw new Error("Function attempted to set as colorPicker update callback is not a function.");this.updateCallback=t}},{key:"setCloseCallback",value:function(t){if("function"!=typeof t)throw new Error("Function attempted to set as colorPicker closing callback is not a function.");this.closeCallback=t}},{key:"_isColorString",value:function(t){var e={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("string"==typeof t)return e[t]}},{key:"setColor",value:function(t){var e=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];if("none"!==t){var i=void 0,o=this._isColorString(t);if(void 0!==o&&(t=o),a.isString(t)===!0){if(a.isValidRGB(t)===!0){var n=t.substr(4).substr(0,t.length-5).split(",");i={r:n[0],g:n[1],b:n[2],a:1}}else if(a.isValidRGBA(t)===!0){var s=t.substr(5).substr(0,t.length-6).split(",");i={r:s[0],g:s[1],b:s[2],a:s[3]}}else if(a.isValidHex(t)===!0){var r=a.hexToRGB(t);i={r:r.r,g:r.g,b:r.b,a:1}}}else if(t instanceof Object&&void 0!==t.r&&void 0!==t.g&&void 0!==t.b){var h=void 0!==t.a?t.a:"1.0";i={r:t.r,g:t.g,b:t.b,a:h}}if(void 0===i)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(t));this._setColor(i,e)}}},{key:"show",value:function(){void 0!==this.closeCallback&&(this.closeCallback(),this.closeCallback=void 0),this.applied=!1,this.frame.style.display="block",this._generateHueCircle()}},{key:"_hide",value:function(){var t=this,e=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];e===!0&&(this.previousColor=a.extend({},this.color)),this.applied===!0&&this.updateCallback(this.initialColor),this.frame.style.display="none",setTimeout(function(){void 0!==t.closeCallback&&(t.closeCallback(),t.closeCallback=void 0)},0)}},{key:"_save",value:function(){this.updateCallback(this.color),this.applied=!1,this._hide()}},{key:"_apply",value:function(){this.applied=!0,this.updateCallback(this.color),this._updatePicker(this.color)}},{key:"_loadLast",value:function(){void 0!==this.previousColor?this.setColor(this.previousColor,!1):alert("There is no last color to load...")}},{key:"_setColor",value:function(t){var e=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];e===!0&&(this.initialColor=a.extend({},t)),this.color=t;var i=a.RGBToHSV(t.r,t.g,t.b),o=2*Math.PI,n=this.r*i.s,s=this.centerCoordinates.x+n*Math.sin(o*i.h),r=this.centerCoordinates.y+n*Math.cos(o*i.h);this.colorPickerSelector.style.left=s-.5*this.colorPickerSelector.clientWidth+"px",this.colorPickerSelector.style.top=r-.5*this.colorPickerSelector.clientHeight+"px",this._updatePicker(t)}},{key:"_setOpacity",value:function(t){this.color.a=t/100,this._updatePicker(this.color)}},{key:"_setBrightness",value:function(t){var e=a.RGBToHSV(this.color.r,this.color.g,this.color.b);e.v=t/100;var i=a.HSVToRGB(e.h,e.s,e.v);i.a=this.color.a,this.color=i,this._updatePicker()}},{key:"_updatePicker",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.color,e=a.RGBToHSV(t.r,t.g,t.b),i=this.colorPickerCanvas.getContext("2d");void 0===this.pixelRation&&(this.pixelRatio=(window.devicePixelRatio||1)/(i.webkitBackingStorePixelRatio||i.mozBackingStorePixelRatio||i.msBackingStorePixelRatio||i.oBackingStorePixelRatio||i.backingStorePixelRatio||1)),i.setTransform(this.pixelRatio,0,0,this.pixelRatio,0,0);var o=this.colorPickerCanvas.clientWidth,n=this.colorPickerCanvas.clientHeight;i.clearRect(0,0,o,n),i.putImageData(this.hueCircle,0,0),i.fillStyle="rgba(0,0,0,"+(1-e.v)+")",i.circle(this.centerCoordinates.x,this.centerCoordinates.y,this.r),i.fill(),this.brightnessRange.value=100*e.v,this.opacityRange.value=100*t.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+")"}},{key:"_setSize",value:function(){this.colorPickerCanvas.style.width="100%",this.colorPickerCanvas.style.height="100%",this.colorPickerCanvas.width=289*this.pixelRatio,this.colorPickerCanvas.height=289*this.pixelRatio}},{key:"_create",value:function(){if(this.frame=document.createElement("div"),this.frame.className="vis-color-picker",this.colorPickerDiv=document.createElement("div"),this.colorPickerSelector=document.createElement("div"),this.colorPickerSelector.className="vis-selector",this.colorPickerDiv.appendChild(this.colorPickerSelector),this.colorPickerCanvas=document.createElement("canvas"),this.colorPickerDiv.appendChild(this.colorPickerCanvas),this.colorPickerCanvas.getContext){var t=this.colorPickerCanvas.getContext("2d");this.pixelRatio=(window.devicePixelRatio||1)/(t.webkitBackingStorePixelRatio||t.mozBackingStorePixelRatio||t.msBackingStorePixelRatio||t.oBackingStorePixelRatio||t.backingStorePixelRatio||1),this.colorPickerCanvas.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.colorPickerCanvas.appendChild(e)}this.colorPickerDiv.className="vis-color",this.opacityDiv=document.createElement("div"),this.opacityDiv.className="vis-opacity",this.brightnessDiv=document.createElement("div"),this.brightnessDiv.className="vis-brightness",this.arrowDiv=document.createElement("div"),this.arrowDiv.className="vis-arrow",this.opacityRange=document.createElement("input");try{this.opacityRange.type="range",this.opacityRange.min="0",this.opacityRange.max="100"}catch(t){}this.opacityRange.value="100",this.opacityRange.className="vis-range",this.brightnessRange=document.createElement("input");try{this.brightnessRange.type="range",this.brightnessRange.min="0",this.brightnessRange.max="100"}catch(t){}this.brightnessRange.value="100",this.brightnessRange.className="vis-range",this.opacityDiv.appendChild(this.opacityRange),this.brightnessDiv.appendChild(this.brightnessRange);var i=this;this.opacityRange.onchange=function(){i._setOpacity(this.value)},this.opacityRange.oninput=function(){i._setOpacity(this.value)},this.brightnessRange.onchange=function(){i._setBrightness(this.value)},this.brightnessRange.oninput=function(){i._setBrightness(this.value)},this.brightnessLabel=document.createElement("div"),this.brightnessLabel.className="vis-label vis-brightness",this.brightnessLabel.innerHTML="brightness:",this.opacityLabel=document.createElement("div"),this.opacityLabel.className="vis-label vis-opacity",this.opacityLabel.innerHTML="opacity:",this.newColorDiv=document.createElement("div"),this.newColorDiv.className="vis-new-color",this.newColorDiv.innerHTML="new",this.initialColorDiv=document.createElement("div"),this.initialColorDiv.className="vis-initial-color",this.initialColorDiv.innerHTML="initial",this.cancelButton=document.createElement("div"),this.cancelButton.className="vis-button vis-cancel",this.cancelButton.innerHTML="cancel",this.cancelButton.onclick=this._hide.bind(this,!1),this.applyButton=document.createElement("div"),this.applyButton.className="vis-button vis-apply",this.applyButton.innerHTML="apply",this.applyButton.onclick=this._apply.bind(this),this.saveButton=document.createElement("div"),this.saveButton.className="vis-button vis-save",this.saveButton.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)}},{key:"_bindHammer",value:function(){var t=this;this.drag={},this.pinch={},this.hammer=new s(this.colorPickerCanvas),this.hammer.get("pinch").set({enable:!0}),r.onTouch(this.hammer,function(e){t._moveSelector(e)}),this.hammer.on("tap",function(e){t._moveSelector(e)}),this.hammer.on("panstart",function(e){t._moveSelector(e)}),this.hammer.on("panmove",function(e){t._moveSelector(e)}),this.hammer.on("panend",function(e){t._moveSelector(e)})}},{key:"_generateHueCircle",value:function(){if(this.generated===!1){var t=this.colorPickerCanvas.getContext("2d");void 0===this.pixelRation&&(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 e=this.colorPickerCanvas.clientWidth,i=this.colorPickerCanvas.clientHeight;t.clearRect(0,0,e,i);var o=void 0,n=void 0,s=void 0,r=void 0;this.centerCoordinates={x:.5*e,y:.5*i},this.r=.49*e;var h=2*Math.PI/360,d=1/360,l=1/this.r,u=void 0;for(s=0;s<360;s++)for(r=0;r0?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);e!==-1&&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.7 - 2016-04-22 * 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(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 c(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 p(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 k(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),P(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,A(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!==At||(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 A(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,O.apply(this,arguments)}function z(){this.evEl=Zt,this.evWin=Kt,O.apply(this,arguments),this.store=this.manager.session.pointerEvents=[]}function W(){this.evTarget=Qt,this.evWin=$t,this.started=!1,O.apply(this,arguments)}function V(t,e){var i=x(t.touches),o=x(t.changedTouches);return e&(At|Nt)&&(i=D(i.concat(o),"identifier",!0)),[i,o]}function B(){this.evTarget=ee,this.targetIds={},O.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&(At|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:At,touchcancel:Nt},Qt="touchstart",$t="touchstart touchmove touchend touchcancel";c(W,O,{handler:function(t){var e=Jt[t.type];if(e===Et&&(this.started=!0),this.started){var i=V.call(this,t,e);e&(At|Nt)&&i[0].length-i[1].length===0&&(this.started=!1),this.callback(this.manager,e,{pointers:i[0],changedPointers:i[1],pointerType:St,srcEvent:t})}}});var te={touchstart:Et,touchmove:Pt,touchend:At,touchcancel:Nt},ee="touchstart touchmove touchend touchcancel";c(B,O,{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:St,srcEvent:t})}}),c(q,O,{handler:function(t,e,i){var o=i.pointerType==St,n=i.pointerType==Ot;if(o)this.mouse.allow=!1;else if(n&&!this.mouse.allow)return;e&(At|Nt)&&(this.mouse.allow=!0),this.callback(t,e,i)},destroy:function(){this.touch.destroy(),this.mouse.destroy()}});var ie=k(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){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,ce=4,pe=8,me=pe,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=$(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===w(e,t)&&(e.push(t),t.requireFailure(this)),this},dropRequireFailure:function(t){if(d(t,"dropRequireFailure",this))return this;t=$(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;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=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=Q(t.direction);e&&(t.additionalEvent=this.options.event+e),this._super.emit.call(this,t)}}),c(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)}}),c(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&(At|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&At)return me;return ge},reset:function(){clearTimeout(this._timer)},emit:function(t){this.state===me&&(t&&t.eventType&At?this.manager.emit(this.options.event+"up",t):(this._input.timeStamp=vt(),this.manager.emit(this.options.event,this._input)))}}),c(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)}}),c(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&At},emit:function(t){var e=Q(t.offsetDirection);e&&this.manager.emit(this.options.event+e,t),this.manager.emit(this.options.event,t)}}),c(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 c=void 0;if(void 0!==i[u].__type__&&n===!0){var p=t.findInOptions(e,i[u],r.copyAndExtendArray(o,u));s>p.distance&&(a=p.closestMatch,h=p.path,s=p.distance,l=p.indexMatch)}else-1!==u.toLowerCase().indexOf(d)&&(l=u),c=t.levenshteinDistance(e,u),s>c&&(a=u,h=r.copyArray(o),s=c)}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,c="object"===("undefined"==typeof i?"undefined":s(i))&&"duration"in i?i.duration:500,p="object"===("undefined"==typeof i?"undefined":s(i))&&"easingFunction"in i?i.easingFunction:"easeInOutQuad",m=r.easingFunctions[p];if(!m)throw new Error("Unknown easing function "+JSON.stringify(p)+". 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/c),s=e>c,r=s||null===n?n:l+(n-l)*i,p=s||null===a?a:u+(a-u)*i;y=h._applyRange(r,p),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),c=d.snapAwayFromHidden(this.body.hiddenDates,l,this.previousDelta-i,!0);if(u!=h||c!=l)return this.deltaDifference+=i,this.props.touch.start=u,this.props.touch.end=c,void this._onDrag(t);this.previousDelta=i,this._applyRange(h,l);var p=new Date(this.start),m=new Date(this.end);this.body.emitter.emit("rangechange",{start:p,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 c=0,p=s.clone();switch(o[h].repeat){case"daily":d.day()!=l.day()&&(c=1),d.dayOfYear(n.dayOfYear()),d.year(n.year()),d.subtract(7,"days"),l.dayOfYear(n.dayOfYear()),l.year(n.year()),l.subtract(7-c,"days"),p.add(1,"weeks");break;case"weekly":var 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"),p.add(1,"weeks");break;case"monthly":d.month()!=l.month()&&(c=1),d.month(n.month()),d.year(n.year()),d.subtract(1,"months"),l.month(n.month()),l.year(n.year()),l.subtract(1,"months"),l.add(c,"months"),p.add(1,"months");break;case"yearly":d.year()!=l.year()&&(c=1),d.year(n.year()),d.subtract(1,"years"),l.year(n.year()),l.subtract(1,"years"),l.add(c,"years"),p.add(1,"years");break;default:return void console.log("Wrong repeat format, allowed are: daily, weekly, monthly, yearly. Given:",o[h].repeat)}for(;p>d;)switch(i.hiddenDates.push({start:d.valueOf(),end:l.valueOf()}),o[h].repeat){case"daily":d.add(1,"days"),l.add(1,"days");break;case"weekly":d.add(1,"weeks"),l.add(1,"weeks");break;case"monthly":d.add(1,"months"),l.add(1,"months");break;case"yearly":d.add(1,"y"),l.add(1,"y");break;default:return void console.log("Wrong repeat format, allowed are: daily, weekly, monthly, yearly. Given:",o[h].repeat)}i.hiddenDates.push({start:d.valueOf(),end:l.valueOf()})}}e.removeDuplicates(i);var 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),c=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 c(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.offsetWidth){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 c=i.root.width-i.left.width-i.right.width-s;i.center.width=c,i.centerContainer.width=c,i.top.width=c,i.bottom.width=c,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 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(),c={item:t.item,axis:t.axis},p={item:t.item,axis:t.item.vertical/2},m=0,f=t.axis+t.item.vertical;return this.groups[y].redraw(e,p,l),r.forEach(this.groups,function(t){var i=t==u?c:p,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,c=this.groupTouchParams.originalOrder,p=this.groupTouchParams.group.groupId,m=Math.min(c.length,u.length),f=0,g=0,v=0;m>f;){for(;m>f+g&&m>f+v&&u[f+g]==c[f+v];)f++;if(f+g>=m)break;if(u[f+g]!=p)if(c[f+v]!=p){var y=u.indexOf(c[f+v]),b=h.get(u[f+g]),_=h.get(c[f+v]);this.options.groupOrderSwap(b,_,h),h.update(b),h.update(_);var w=u[f+g];u[f+g]=c[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 c=n[h];n[h]=s[h],n[d]=c,h++}}}),e.body.emitter.emit("groupDragged",{groupId:i})}},o.prototype._onSelectItem=function(t){if(this.options.selectable){var e=t.srcEvent&&(t.srcEvent.ctrlKey||t.srcEvent.metaKey),i=t.srcEvent&&t.srcEvent.shiftKey;if(e||i)return void this._onMultiSelectItem(t);var o=this.getSelection(),n=this.itemFromTarget(t),s=n?[n.id]:[];this.setSelection(s);var r=this.getSelection();(r.length>0||o.length>0)&&this.body.emitter.emit("select",{items:r,event:t})}},o.prototype._onAddItem=function(t){if(this.options.selectable&&this.options.editable.add){var e=this,i=this.options.snap||null,o=this.itemFromTarget(t);if(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 c=this.body.util.toTime(a+this.props.width/5);u.end=i?i(c,d,l):c}u[this.itemsData._fieldId]=r.randomUUID();var p=this.groupFromTarget(t);p&&(u.group=p.groupId),u=this._cloneItemData(u),this.options.onAdd(u,function(t){t&&e.itemsData.getDataSet().add(t)})}}},o.prototype._onMultiSelectItem=function(t){if(this.options.selectable){var e=this.itemFromTarget(t);if(e){var i=this.options.multiselect?this.getSelection():[],n=t.srcEvent&&t.srcEvent.shiftKey||!1;if(n&&this.options.multiselect){var s=this.itemsData.get(e.id).group,r=void 0;this.options.multiselectPerGroup&&i.length>0&&(r=this.itemsData.get(i[0]).group),this.options.multiselectPerGroup&&void 0!=r&&r!=s||i.push(e.id);var a=o._getItemRange(this.itemsData.get(i,this.itemOptions));if(!this.options.multiselectPerGroup||r==s){i=[];for(var h in this.items)if(this.items.hasOwnProperty(h)){var d=this.items[h],l=d.data.start,u=void 0!==d.data.end?d.data.end:l;!(l>=a.min&&u<=a.max)||this.options.multiselectPerGroup&&r!=this.itemsData.get(d.id).group||d instanceof g||i.push(d.id)}}}else{var c=i.indexOf(e.id);-1==c?i.push(e.id):i.splice(c,1)}this.setSelection(i),this.body.emitter.emit("select",{items:this.getSelection(),event:t})}}},o._getItemRange=function(t){var e=null,i=null;return t.forEach(function(t){(null==i||t.starte)&&(e=t.end):(null==e||t.start>e)&&(e=t.start)}),{min:i,max:e}},o.prototype.itemFromTarget=function(t){for(var e=t.target;e;){if(e.hasOwnProperty("timeline-item"))return e["timeline-item"];e=e.parentNode}return null},o.prototype.groupFromTarget=function(t){for(var e=t.center?t.center.y:t.clientY,i=0;ia&&ea)return n}else if(0===i&&e0?t.step:1,this.autoScale=!1)},o.prototype.setAutoScale=function(t){this.autoScale=t},o.prototype.setMinimumStep=function(t){if(void 0!=t){var e=31104e6,i=2592e6,o=864e5,n=36e5,s=6e4,r=1e3,a=1;1e3*e>t&&(this.scale="year",this.step=1e3),500*e>t&&(this.scale="year",this.step=500),100*e>t&&(this.scale="year",this.step=100),50*e>t&&(this.scale="year",this.step=50),10*e>t&&(this.scale="year",this.step=10),5*e>t&&(this.scale="year",this.step=5),e>t&&(this.scale="year",this.step=1),3*i>t&&(this.scale="month",this.step=3),i>t&&(this.scale="month",this.step=1),5*o>t&&(this.scale="day",this.step=5),2*o>t&&(this.scale="day",this.step=2),o>t&&(this.scale="day",this.step=1),o/2>t&&(this.scale="weekday",this.step=1),4*n>t&&(this.scale="hour",this.step=4),n>t&&(this.scale="hour",this.step=1),15*s>t&&(this.scale="minute",this.step=15),10*s>t&&(this.scale="minute",this.step=10),5*s>t&&(this.scale="minute",this.step=5),s>t&&(this.scale="minute",this.step=1),15*r>t&&(this.scale="second",this.step=15),10*r>t&&(this.scale="second",this.step=10),5*r>t&&(this.scale="second",this.step=5),r>t&&(this.scale="second",this.step=1),200*a>t&&(this.scale="millisecond",this.step=200),100*a>t&&(this.scale="millisecond",this.step=100),50*a>t&&(this.scale="millisecond",this.step=50),10*a>t&&(this.scale="millisecond",this.step=10),5*a>t&&(this.scale="millisecond",this.step=5),a>t&&(this.scale="millisecond",this.step=1)}},o.snap=function(t,e,i){var o=n(t);if("year"==e){var s=o.year()+Math.round(o.month()/12);o.year(Math.round(s/i)*i),o.month(0),o.date(0),o.hours(0),o.minutes(0),o.seconds(0),o.milliseconds(0)}else if("month"==e)o.date()>15?(o.date(1),o.add(1,"month")):o.date(1),o.hours(0),o.minutes(0),o.seconds(0),o.milliseconds(0);else if("day"==e){switch(i){case 5:case 2:o.hours(24*Math.round(o.hours()/24));break;default:o.hours(12*Math.round(o.hours()/12))}o.minutes(0),o.seconds(0),o.milliseconds(0)}else if("weekday"==e){switch(i){case 5:case 2:o.hours(12*Math.round(o.hours()/12));break;default:o.hours(6*Math.round(o.hours()/6))}o.minutes(0),o.seconds(0),o.milliseconds(0)}else if("hour"==e){switch(i){case 4:o.minutes(60*Math.round(o.minutes()/60));break;default:o.minutes(30*Math.round(o.minutes()/30))}o.seconds(0),o.milliseconds(0)}else if("minute"==e){switch(i){case 15:case 10:o.minutes(5*Math.round(o.minutes()/5)),o.seconds(0);break;case 5:o.seconds(60*Math.round(o.seconds()/60));break;default:o.seconds(30*Math.round(o.seconds()/30))}o.milliseconds(0)}else if("second"==e)switch(i){case 15:case 10:o.seconds(5*Math.round(o.seconds()/5)),o.milliseconds(0);break;case 5:o.milliseconds(1e3*Math.round(o.milliseconds()/1e3));break;default:o.milliseconds(500*Math.round(o.milliseconds()/500))}else if("millisecond"==e){var r=i>5?i/2:1;o.milliseconds(Math.round(o.milliseconds()/r)*r)}return o},o.prototype.isMajor=function(){if(1==this.switchedYear)switch(this.switchedYear=!1,this.scale){case"year":case"month":case"weekday":case"day":case"hour":case"minute":case"second":case"millisecond":return!0;default:return!1}else if(1==this.switchedMonth)switch(this.switchedMonth=!1,this.scale){case"weekday":case"day":case"hour":case"minute":case"second":case"millisecond":return!0;default:return!1}else if(1==this.switchedDay)switch(this.switchedDay=!1,this.scale){case"millisecond":case"second":case"minute":case"hour":return!0;default:return!1}var t=this.moment(this.current);switch(this.scale){case"millisecond":return 0==t.milliseconds();case"second":return 0==t.seconds();case"minute":return 0==t.hours()&&0==t.minutes();case"hour":return 0==t.hours();case"weekday":case"day":return 1==t.date();case"month":return 0==t.month();case"year":return!1;default:return!1}},o.prototype.getLabelMinor=function(t){void 0==t&&(t=this.current);var e=this.format.minorLabels[this.scale];return e&&e.length>0?this.moment(t).format(e):""},o.prototype.getLabelMajor=function(t){void 0==t&&(t=this.current);var e=this.format.majorLabels[this.scale];return e&&e.length>0?this.moment(t).format(e):""},o.prototype.getClassName=function(){function t(t){return t/h%2==0?" vis-even":" vis-odd"}function e(t){return t.isSame(new Date,"day")?" vis-today":t.isSame(s().add(1,"day"),"day")?" vis-tomorrow":t.isSame(s().add(-1,"day"),"day")?" vis-yesterday":""}function i(t){return t.isSame(new Date,"week")?" vis-current-week":""}function o(t){return t.isSame(new Date,"month")?" vis-current-month":""}function n(t){return t.isSame(new Date,"year")?" vis-current-year":""}var s=this.moment,r=this.moment(this.current),a=r.locale?r.locale("en"):r.lang("en"),h=this.step;switch(this.scale){case"millisecond":return t(a.milliseconds()).trim();case"second":return t(a.seconds()).trim();case"minute":return t(a.minutes()).trim();case"hour":var d=a.hours();return 4==this.step&&(d=d+"-h"+(d+4)),"vis-h"+d+e(a)+t(a.hours());case"weekday":return"vis-"+a.format("dddd").toLowerCase()+e(a)+i(a)+t(a.date());case"day":var l=a.date(),u=a.format("MMMM").toLowerCase();return"vis-day"+l+" vis-"+u+o(a)+t(l-1);case"month":return"vis-"+a.format("MMMM").toLowerCase()+o(a)+t(a.month());case"year":var c=a.year();return"vis-year"+c+n(a)+t(c);default:return""}},t.exports=o},function(t,e,i){function o(t,e,i){this.groupId=t,this.subgroups={},this.subgroupIndex=0,this.subgroupOrderer=e&&e.subgroupOrder,this.itemSet=i,this.dom={},this.props={label:{width:0,height:0}},this.className=null,this.items={},this.visibleItems=[],this.orderedItems={byStart:[],byEnd:[]},this.checkRangedItems=!1;var o=this;this.itemSet.body.emitter.on("checkRangedItems",function(){o.checkRangedItems=!0}),this._create(),this.setData(e)}var n=i(1),s=i(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 c=0,p=this.visibleItems.length;p>c;c++){var m=this.visibleItems[c];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,c,p,m,f,g,v,y,b,_,w=0,x=void 0,D=0,k=1e3;for(r.start(),c=r.getCurrent(),m=this.body.util.toScreen(c);r.hasNext()&&k>D;){D++,f=r.isMajor(),_=r.getClassName(),b=r.getLabelMinor(),u=c,p=m,r.next(),c=r.getCurrent(),g=r.isMajor(),m=this.body.util.toScreen(c),v=w,w=m-p;var S=w>=.4*v;if(this.options.showMinorLabels&&S){var C=this._repaintMinorText(p,b,t,_);C.style.width=w+"px"}f&&this.options.showMajorLabels?(p>0&&(void 0==x&&(x=p),C=this._repaintMajorText(p,r.getLabelMajor(),t,_)),y=this._repaintMajorLine(p,w,t,_)):S?y=this._repaintMinorLine(p,w,t,_):y&&(y.style.width=parseInt(y.style.width)+w+"px")}if(D!==k||l||(console.warn("Something is wrong with the Timeline scale. Limited drawing of grid lines to "+k+" lines."),l=!0),this.options.showMajorLabels){var O=this.body.util.toTime(0),T=r.getLabelMajor(O),M=T.length*(this.props.majorCharWidth||10)+10;(void 0==x||x>M)&&this._repaintMajorText(0,T,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}},c={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=c},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 c)&&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 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),c=i(10),p=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 c?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 c?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,c=this.linegraph.yAxisRight;return u.hidden||d.push(u.screenToValue(n)),c.hidden||d.push(c.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),c=i(49),p=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 c(this.body,this.options.legend,"left",this.options.groups),this.legendRight=new c(this.body,this.options.legend,"right",this.options.groups),this.show()},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)),c=Math.min(d.length,s.binarySearchValue(d,o,"x","after",l)+1);0>=c&&(c=d.length);var p=new Array(c-u);for(a=u;c>a;a++)h=n.itemsData[a],p[a-u]=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 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]));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 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 p=["__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,c,p,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,k=0;D-1>k;k++)o=0==k?t[0]:t[k-1],n=t[k],s=t[k+1],r=D>k+2?t[k+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),c=2*_+3*w*v+b,p=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+c*n.screen_x+_*s.screen_x)*m,screen_y:(-b*o.screen_y+c*n.screen_y+_*s.screen_y)*m},h={screen_x:(y*n.screen_x+p*s.screen_x-b*r.screen_x)*f,screen_y:(y*n.screen_y+p*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\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&&ft(o,i)}function c(t,e){return function(){return t.apply(e,arguments)}}function m(t,e){return typeof t==yt?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=wt(),e.deltaTime=e.timeStamp-s.timeStamp,e.angle=H(a,h),e.distance=F(a,h),P(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=_t(d.x)>_t(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,A(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!==It&&s.eventType!==Lt||(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 A(t,e){var i,o,n,s,r=t.lastInterval||e,h=e.timeStamp-r.timeStamp;if(e.eventType!=Ft&&(h>Nt||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=_t(u.x)>_t(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;i=_t(e)?t<0?Yt:jt:e<0?Gt:zt}function F(t,e,i){i||(i=Bt);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=Bt);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],qt)+H(t[1],t[0],qt)}function j(t,e){return F(e[0],e[1],qt)/F(t[0],t[1],qt)}function G(){this.evEl=Zt,this.evWin=Kt,this.pressed=!1,T.apply(this,arguments)}function z(){this.evEl=$t,this.evWin=te,T.apply(this,arguments),this.store=this.manager.session.pointerEvents=[]}function W(){this.evTarget=ie,this.evWin=oe,this.started=!1,T.apply(this,arguments)}function U(t,e){var i=x(t.touches),o=x(t.changedTouches);return e&(Lt|Ft)&&(i=D(i.concat(o),"identifier",!0)),[i,o]}function V(){this.evTarget=se,this.targetIds={},T.apply(this,arguments)}function B(t,e){var i=x(t.touches),o=this.targetIds;if(e&(It|Rt)&&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===It)for(n=0;n-1&&o.splice(t,1)};setTimeout(n,re)}}function K(t){for(var e=t.srcEvent.clientX,i=t.srcEvent.clientY,o=0;o-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;o<_e&&e(i.options.event+et(o)),e(i.options.event),t.additionalEvent&&e(t.additionalEvent),o>=_e&&e(i.options.event+et(o))},tryEmit:function(t){return this.canEmit()?this.emit(t):void(this.state=De)},canEmit:function(){for(var t=0;te.threshold&&n&e.direction},attrTest:function(t){return nt.prototype.attrTest.call(this,t)&&(this.state&ye||!(this.state&ye)&&this.directionTest(t))},emit:function(t){this.pX=t.deltaX,this.pY=t.deltaY;var e=it(t.direction);e&&(t.additionalEvent=this.options.event+e),this._super.emit.call(this,t)}}),p(rt,nt,{defaults:{event:"pinch",threshold:0,pointers:2},getTouchAction:function(){return[ce]},attrTest:function(t){return this._super.attrTest.call(this,t)&&(Math.abs(t.scale-1)>this.options.threshold||this.state&ye)},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(at,tt,{defaults:{event:"press",pointers:1,time:251,threshold:9},getTouchAction:function(){return[ue]},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&(Lt|Ft)&&!n)this.reset();else if(t.eventType&It)this.reset(),this._timer=h(function(){this.state=we,this.tryEmit()},e.time,this);else if(t.eventType&Lt)return we;return De},reset:function(){clearTimeout(this._timer)},emit:function(t){this.state===we&&(t&&t.eventType&Lt?this.manager.emit(this.options.event+"up",t):(this._input.timeStamp=wt(),this.manager.emit(this.options.event,this._input)))}}),p(ht,nt,{defaults:{event:"rotate",threshold:0,pointers:2},getTouchAction:function(){return[ce]},attrTest:function(t){return this._super.attrTest.call(this,t)&&(Math.abs(t.rotation)>this.options.threshold||this.state&ye)}}),p(dt,nt,{defaults:{event:"swipe",threshold:10,velocity:.3,direction:Wt|Ut,pointers:1},getTouchAction:function(){return st.prototype.getTouchAction.call(this)},attrTest:function(t){var e,i=this.options.direction;return i&(Wt|Ut)?e=t.overallVelocity:i&Wt?e=t.overallVelocityX:i&Ut&&(e=t.overallVelocityY),this._super.attrTest.call(this,t)&&i&t.offsetDirection&&t.distance>this.options.threshold&&t.maxPointers==this.options.pointers&&_t(e)>this.options.velocity&&t.eventType&Lt},emit:function(t){var e=it(t.offsetDirection);e&&this.manager.emit(this.options.event+e,t),this.manager.emit(this.options.event,t)}}),p(lt,tt,{defaults:{event:"tap",pointers:1,taps:1,interval:300,time:250,threshold:9,posThreshold:10},getTouchAction:function(){return[pe]},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]&&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 u.toLowerCase().indexOf(d)!==-1&&(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]?arguments[2]:"Problem value found at: \n",o="\n\n"+i+"options = {\n",n=0;np,c=r||null===n?n:l+(n-l)*s,v=r||null===a?a:u+(a-u)*s;y=h._applyRange(c,v),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}),r?g&&h.body.emitter.emit("rangechanged",{start:new Date(h.start),end:new Date(h.end),byUser:o}):h.animationTimer=setTimeout(t,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(ns&&(n=s)),null!==s&&n>s&&(i=n-s,o-=i,n-=i,null!=a&&othis.start&&nd&&(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(t&&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}),this.body.emitter.emit("panmove")}},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){t.preventDefault();var e=0;if(t.wheelDelta?e=t.wheelDelta/120:t.detail&&(e=-t.detail/3),this.options.zoomKey&&!t[this.options.zoomKey]&&this.options.zoomable||!this.options.zoomable&&this.options.moveable){if(this.options.horizontalScroll){var i=e*(this.end-this.start)/20,o=this.start-i,n=this.end-i;this.setRange(o,n)}}else if(this.options.zoomable&&this.options.moveable&&this._isInsideRange(t)&&e){var s;s=e<0?1-e/5:1/(1+e/5);var r=this.getPointer({x:t.clientX,y:t.clientY},this.body.dom.center),a=this._pointerToDate(r);this.zoom(s,a,e)}},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=1-e<=0,this.endToFront=e-1<=0;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,i){function o(t,e){this.options=null,this.props=null}var n=i(1);o.prototype.setOptions=function(t){t&&n.extend(this.options,t)},o.prototype.redraw=function(){return!1},o.prototype.destroy=function(){},o.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=o},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(;d=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&&nt.range.end){var h={start:t.range.start,end:i};i=e.correctTimeForHidden(t.options.moment,t.body.hiddenDates,h,i);var n=t.range.conversion(o,r);return(i.valueOf()-n.offset)*n.scale}i=e.correctTimeForHidden(t.options.moment,t.body.hiddenDates,t.range,i);var n=t.range.conversion(o,r);return(i.valueOf()-n.offset)*n.scale},e.toTime=function(t,i,o){if(0==t.body.hiddenDates.length){var n=t.range.conversion(o);return new Date(i/n.scale+n.offset)}var s=e.getHiddenDurationBetween(t.body.hiddenDates,t.range.start,t.range.end),r=t.range.end-t.range.start-s,a=r*i/o,h=e.getAccumulatedHiddenDuration(t.body.hiddenDates,t.range,a),d=new Date(h+a+t.range.start);return d},e.getHiddenDurationBetween=function(t,e,i){for(var o=0,n=0;n=e&&r=e&&r<=i&&(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?o<0?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&&t0&&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));if(i.length>0)return i[0].setCustomTitle(t)},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;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,this.range.setRange(n.start,n.end,o)}else o=!i||void 0===i.animation||i.animation,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;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.zoomIn=function(t){if(!(!t||t<0||t>1)){var e=this.getWindow(),i=e.start.valueOf(),o=e.end.valueOf(),n=o-i,s=n/(1+t),r=(n-s)/2,a=i+r,h=o-r;this.setWindow({start:a,end:h})}},o.prototype.zoomOut=function(t){if(!(!t||t<0||t>1)){var e=this.getWindow(),i=e.start.valueOf(),o=e.end.valueOf(),n=o-i,s=i-n*t/2,r=o+n*t/2;this.setWindow({start:s,end:r})}},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.offsetWidth){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,this.initialDrawDone||(i.scrollbarWidth=h.getScrollBarWidth()),this.options.verticalScroll?this.options.rtl?(i.left.width=o.leftContainer.clientWidth||-i.border.left,i.right.width=o.rightContainer.clientWidth+i.scrollbarWidth||-i.border.right):(i.left.width=o.leftContainer.clientWidth+i.scrollbarWidth||-i.border.left,i.right.width=o.rightContainer.clientWidth||-i.border.right):(i.left.width=o.leftContainer.clientWidth||-i.border.left,i.right.width=o.rightContainer.clientWidth||-i.border.right),i.leftContainer.width=i.left.width,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";var c=this._updateScrollTop();"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.right.style.left="0";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,this.options.verticalScroll?(o.shadowTopRight.style.visibility="hidden",o.shadowBottomRight.style.visibility="hidden",o.shadowTopLeft.style.visibility="hidden",o.shadowBottomLeft.style.visibility="hidden"):(o.left.style.top=c+"px",o.right.style.top=c+"px");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&&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;io)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;f=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;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._onMouseOver=function(t){var e=this.itemFromTarget(t);e&&this.body.emitter.emit("itemover",{item:e.id,event:t})},o.prototype._onMouseOut=function(t){var e=this.itemFromTarget(t);e&&this.body.emitter.emit("itemout",{item:e.id,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("drop"==t.type){var n=JSON.parse(t.dataTransfer.getData("text/plain"));if(u.content=n.content,u.type=n.type||"box",u[this.itemsData._fieldId]=n.id||r.randomUUID(),"range"==n.type||n.end&&n.start)if(n.end)u.end=new Date(u.start._i).getTime()+new Date(n.end).getTime()-new Date(n.start).getTime();else{var p=this.body.util.toTime(a+this.props.width/5);u.end=i?i(p,d,l):p}}else if(u[this.itemsData._fieldId]=r.randomUUID(),"range"===this.options.type){var p=this.body.util.toTime(a+this.props.width/5);u.end=i?i(p,d,l):p}var c=this.groupFromTarget(t);c&&(u.group=c.groupId),u=this._cloneItemData(u),this.options.onAdd(u,function(i){i&&(e.itemsData.getDataSet().add(i),"drop"==t.type&&e.setSelection([i.id]))})}}},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);p==-1?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.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.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.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){if(void 0==t&&(t=this.current),"function"==typeof this.format.minorLabels)return this.format.minorLabels(t,this.scale,this.step);var e=this.format.minorLabels[this.scale];return e&&e.length>0?this.moment(t).format(e):""},o.prototype.getLabelMajor=function(t){if(void 0==t&&(t=this.current),"function"==typeof this.format.majorLabels)return this.format.majorLabels(t,this.scale,this.step);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 e(a)+t(a.milliseconds()).trim();case"second":return e(a)+t(a.seconds()).trim();case"minute":return e(a)+t(a.minutes()).trim();case"hour":return"vis-h"+a.hours()+(4==this.step?"-h"+(a.hours()+4):"")+e(a)+t(a.hours());case"weekday":return"vis-"+a.format("dddd").toLowerCase()+e(a)+i(a)+t(a.date());case"day":return"vis-day"+a.date()+" vis-"+a.format("MMMM").toLowerCase()+e(a)+o(a)+this.step<=2?e(a):""+this.step<=2?" vis-"+a.format("dddd").toLowerCase():""+t(a.date()-1);case"month":return"vis-"+a.format("MMMM").toLowerCase()+o(a)+t(a.month());case"year":var d=a.year();return"vis-year"+d+n(a)+t(d);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.isVisible=null,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,i;if(this.itemSet.options&&this.itemSet.options.groupTemplate?(i=this.itemSet.options.groupTemplate.bind(this),e=i(t,this.dom.inner)):e=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 e instanceof Object?i(t,this.dom.inner):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 o=t&&t.className||null;o!=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,o),n.addClassName(this.dom.foreground,o),n.addClassName(this.dom.background,o),n.addClassName(this.dom.axis,o),this.className=o),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;r!=this.lastMarkerHeight&&(this.lastMarkerHeight=r,n.forEach(this.items,function(t){t.dirty=!0,t.displayed&&t.redraw()}),i=!0),this._calculateSubGroupHeights(),this.isVisible=this._isGroupVisible(t,e);var a=this.dom.foreground;if(this.top=a.offsetTop,this.right=a.offsetLeft,this.width=a.offsetWidth,this.isVisible=this._isGroupVisible(t,e),"function"==typeof this.itemSet.options.order){if(i){var h=this,d=!1;n.forEach(this.items,function(t){t.displayed||(t.redraw(),h.visibleItems.push(t)),t.repositionX(d)});var l=this.orderedItems.byStart.slice().sort(function(t,e){return h.itemSet.options.order(t.data,e.data)});s.stack(l,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);if(!this.isVisible&&this.height)return o=!1;var u=this._calculateHeight(e),a=this.dom.foreground;this.top=a.offsetTop,this.right=a.offsetLeft,this.width=a.offsetWidth,o=n.updateProperty(this,"height",u)||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=u+"px",this.dom.foreground.style.height=u+"px",this.dom.label.style.height=u+"px";for(var p=0,c=this.visibleItems.length;p0){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._isGroupVisible=function(t,e){var i=this.top<=t.body.domProps.centerContainer.height-t.body.domProps.scrollTop+e.axis&&this.top+this.height+e.axis>=-t.body.domProps.scrollTop;return i},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(),this.visibleItems.indexOf(t)==-1){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;i0)for(var r=0;rl}),1==this.checkRangedItems)for(this.checkRangedItems=!1,r=0;rl})}for(var r=0;r=0;s--){var r=e[s];if(n(r))break;void 0===o[r.id]&&(o[r.id]=!0,i.push(r))}for(var s=t+1;se.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._repaintOnItemUpdateTimeTooltip(t.box),this._repaintDeleteButton(t.box),this._repaintDragCenter(),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||(n<-o&&(n=-o),s>2*o&&(s=2*o));var r=Math.max(s-n+.5,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:n<0?-n:0,this.options.rtl?this.dom.content.style.right=e+"px":(this.dom.content.style.left=e+"px",this.dom.content.style.width="calc(100% - "+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),r=i(2);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._repaintOnItemUpdateTimeTooltip=function(t){if(this.options.tooltipOnItemUpdateTime){var e=(this.options.editable.updateTime||this.data.editable===!0)&&this.data.editable!==!1;if(this.selected&&e&&!this.dom.onItemUpdateTimeTooltip){var i=document.createElement("div");i.className="vis-onUpdateTime-tooltip",t.appendChild(i),this.dom.onItemUpdateTimeTooltip=i}else!this.selected&&this.dom.onItemUpdateTimeTooltip&&(this.dom.onItemUpdateTimeTooltip.parentNode&&this.dom.onItemUpdateTimeTooltip.parentNode.removeChild(this.dom.onItemUpdateTimeTooltip),this.dom.onItemUpdateTimeTooltip=null);if(this.dom.onItemUpdateTimeTooltip){this.dom.onItemUpdateTimeTooltip.style.visibility=this.parent.itemSet.touchParams.itemIsDragging?"visible":"hidden",this.options.rtl?this.dom.onItemUpdateTimeTooltip.style.right=this.dom.content.style.right:this.dom.onItemUpdateTimeTooltip.style.left=this.dom.content.style.left;var o,n=50,s=this.parent.itemSet.body.domProps.scrollTop;o="top"==this.options.orientation.item?this.top:this.parent.height-this.top-this.height;var a=o+this.parent.top-n<-s;a?(this.dom.onItemUpdateTimeTooltip.style.bottom="",this.dom.onItemUpdateTimeTooltip.style.top=this.height+2+"px"):(this.dom.onItemUpdateTimeTooltip.style.top="",this.dom.onItemUpdateTimeTooltip.style.bottom=this.height+2+"px");var h,d;this.options.tooltipOnItemUpdateTime&&this.options.tooltipOnItemUpdateTime.template?(d=this.options.tooltipOnItemUpdateTime.template.bind(this),h=d(this.data)):(h="start: "+r(this.data.start).format("MM/DD/YYYY hh:mm"),this.data.end&&(h+="
end: "+r(this.data.end).format("MM/DD/YYYY hh:mm"))),this.dom.onItemUpdateTimeTooltip.innerHTML=h}}},o.prototype._updateContents=function(t){var e,i;if(this.options.template){var o=this.parent.itemSet.itemsData.get(this.id);i=this.options.template.bind(this),e=i(o,t)}else e=this.data.content;if(e instanceof Object&&!(e instanceof Element))i(o,t);else{var n=this._contentToString(this.content)!==this._contentToString(e);if(n){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;it.start&&this.data.start.getTime()-nt.start&&this.data.start.getTime()t.start&&this.data.start.getTime()-n/2t.start&&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&&t!==Symbol.prototype?"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()&&D=.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||M1e3&&(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"},verticalScroll:{boolean:o,undefined:"undefined"},horizontalScroll:{boolean:o,undefined:"undefined"},autoResize:{boolean:o},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,function:"function"}},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,function:"function"}},__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"},tooltipOnItemUpdateTime:{template:{function:"function"},__type__:{boolean:o,object:a}},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,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:"",tooltipOnItemUpdateTime:!1,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]))},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:e0){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;r0)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;l0){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=di?i:h,l=l=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.maxLabelSize6&&void 0!==arguments[6]&&arguments[6],a=arguments.length>7&&void 0!==arguments[7]&&arguments[7];if(this.majorSteps=[1,2,5,10],this.minorSteps=[.25,.5,1,2],this.customLines=null,this.containerHeight=n,this.majorCharHeight=s,this._start=t,this._end=e,this.scale=1,this.minorStepIdx=-1,this.magnitudefactor=1,this.determineScale(),this.zeroAlign=r,this.autoScaleStart=i,this.autoScaleEnd=o,this.formattingFunction=a,i||o){var h=this,d=function(t){var e=t-t%(h.magnitudefactor*h.minorSteps[h.minorStepIdx]);return t%(h.magnitudefactor*h.minorSteps[h.minorStepIdx])>.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;i<0&&(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&&ue.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||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=t0){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;n0&&(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;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 t .vis-content { - position: relative; -} -.vis-panel .vis-shadow { +div.vis-color-picker div.vis-brightness { position: absolute; - width: 100%; - height: 1px; - box-shadow: 0 0 10px rgba(0,0,0,0.8); - /* TODO: find a nice way to ensure vis-shadows are drawn on top of items - z-index: 1; - */ + top:313px; } -.vis-panel .vis-shadow.vis-top { - top: -1px; - left: 0; +div.vis-color-picker div.vis-opacity { + position:absolute; + top:350px; } -.vis-panel .vis-shadow.vis-bottom { - bottom: -1px; - left: 0; +div.vis-color-picker div.vis-selector { + position:absolute; + top:137px; + left:137px; + width:15px; + height:15px; + border-radius:15px; + border:1px solid #ffffff; + background: #4c4c4c; /* Old browsers */ + background: -moz-linear-gradient(top, #4c4c4c 0%, #595959 12%, #666666 25%, #474747 39%, #2c2c2c 50%, #000000 51%, #111111 60%, #2b2b2b 76%, #1c1c1c 91%, #131313 100%); /* FF3.6+ */ + background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#4c4c4c), color-stop(12%,#595959), color-stop(25%,#666666), color-stop(39%,#474747), color-stop(50%,#2c2c2c), color-stop(51%,#000000), color-stop(60%,#111111), color-stop(76%,#2b2b2b), color-stop(91%,#1c1c1c), color-stop(100%,#131313)); /* Chrome,Safari4+ */ + background: -webkit-linear-gradient(top, #4c4c4c 0%,#595959 12%,#666666 25%,#474747 39%,#2c2c2c 50%,#000000 51%,#111111 60%,#2b2b2b 76%,#1c1c1c 91%,#131313 100%); /* Chrome10+,Safari5.1+ */ + background: -o-linear-gradient(top, #4c4c4c 0%,#595959 12%,#666666 25%,#474747 39%,#2c2c2c 50%,#000000 51%,#111111 60%,#2b2b2b 76%,#1c1c1c 91%,#131313 100%); /* Opera 11.10+ */ + background: -ms-linear-gradient(top, #4c4c4c 0%,#595959 12%,#666666 25%,#474747 39%,#2c2c2c 50%,#000000 51%,#111111 60%,#2b2b2b 76%,#1c1c1c 91%,#131313 100%); /* IE10+ */ + background: linear-gradient(to bottom, #4c4c4c 0%,#595959 12%,#666666 25%,#474747 39%,#2c2c2c 50%,#000000 51%,#111111 60%,#2b2b2b 76%,#1c1c1c 91%,#131313 100%); /* W3C */ + filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#4c4c4c', endColorstr='#131313',GradientType=0 ); /* IE6-9 */ } -.vis-labelset { - position: relative; - overflow: hidden; - box-sizing: border-box; -} +div.vis-color-picker div.vis-new-color { + position:absolute; + width:140px; + height:20px; + border:1px solid rgba(0,0,0,0.1); + border-radius:5px; + top:380px; + left:159px; + text-align:right; + padding-right:2px; + font-size:10px; + color:rgba(0,0,0,0.4); + vertical-align:middle; + line-height:20px; -.vis-labelset .vis-label { - position: relative; - left: 0; - top: 0; - width: 100%; - color: #4d4d4d; +} - box-sizing: border-box; +div.vis-color-picker div.vis-initial-color { + position:absolute; + width:140px; + height:20px; + border:1px solid rgba(0,0,0,0.1); + border-radius:5px; + top:380px; + left:10px; + text-align:left; + padding-left:2px; + font-size:10px; + color:rgba(0,0,0,0.4); + vertical-align:middle; + line-height:20px; } -.vis-labelset .vis-label { - border-bottom: 1px solid #bfbfbf; +div.vis-color-picker div.vis-label { + position:absolute; + width:300px; + left:10px; } -.vis-labelset .vis-label.draggable { - cursor: pointer; +div.vis-color-picker div.vis-label.vis-brightness { + top:300px; } -.vis-labelset .vis-label:last-child { - border-bottom: none; +div.vis-color-picker div.vis-label.vis-opacity { + top:338px; } -.vis-labelset .vis-label .vis-inner { - display: inline-block; - padding: 5px; +div.vis-color-picker div.vis-button { + position:absolute; + width:68px; + height:25px; + border-radius:10px; + vertical-align: middle; + text-align:center; + line-height: 25px; + top:410px; + border:2px solid #d9d9d9; + background-color: #f7f7f7; + cursor:pointer; } -.vis-labelset .vis-label .vis-inner.vis-hidden { - padding: 0; +div.vis-color-picker div.vis-button.vis-cancel { + /*border:2px solid #ff4e33;*/ + /*background-color: #ff7761;*/ + left:5px; +} +div.vis-color-picker div.vis-button.vis-load { + /*border:2px solid #a153e6;*/ + /*background-color: #cb8dff;*/ + left:82px; +} +div.vis-color-picker div.vis-button.vis-apply { + /*border:2px solid #4588e6;*/ + /*background-color: #82b6ff;*/ + left:159px; +} +div.vis-color-picker div.vis-button.vis-save { + /*border:2px solid #45e655;*/ + /*background-color: #6dff7c;*/ + left:236px; } -.vis-itemset { - position: relative; - padding: 0; - margin: 0; +div.vis-color-picker input.vis-range { + width: 290px; + height:20px; +} - box-sizing: border-box; +/* TODO: is this redundant? +div.vis-color-picker input.vis-range-brightness { + width: 289px !important; } -.vis-itemset .vis-background, -.vis-itemset .vis-foreground { + +div.vis-color-picker input.vis-saturation-range { + width: 289px !important; +}*/ +div.vis-network div.vis-manipulation { + border-width: 0; + border-bottom: 1px; + border-style:solid; + border-color: #d6d9d8; + background: #ffffff; /* Old browsers */ + background: -moz-linear-gradient(top, #ffffff 0%, #fcfcfc 48%, #fafafa 50%, #fcfcfc 100%); /* FF3.6+ */ + background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#ffffff), color-stop(48%,#fcfcfc), color-stop(50%,#fafafa), color-stop(100%,#fcfcfc)); /* Chrome,Safari4+ */ + background: -webkit-linear-gradient(top, #ffffff 0%,#fcfcfc 48%,#fafafa 50%,#fcfcfc 100%); /* Chrome10+,Safari5.1+ */ + background: -o-linear-gradient(top, #ffffff 0%,#fcfcfc 48%,#fafafa 50%,#fcfcfc 100%); /* Opera 11.10+ */ + background: -ms-linear-gradient(top, #ffffff 0%,#fcfcfc 48%,#fafafa 50%,#fcfcfc 100%); /* IE10+ */ + background: linear-gradient(to bottom, #ffffff 0%,#fcfcfc 48%,#fafafa 50%,#fcfcfc 100%); /* W3C */ + filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#ffffff', endColorstr='#fcfcfc',GradientType=0 ); /* IE6-9 */ + + padding-top:4px; position: absolute; + left: 0; + top: 0; width: 100%; - height: 100%; - overflow: visible; + height: 28px; } -.vis-axis { - position: absolute; - width: 100%; - height: 0; +div.vis-network div.vis-edit-mode { + position:absolute; left: 0; - z-index: 1; + top: 5px; + height: 30px; } -.vis-foreground .vis-group { - position: relative; - box-sizing: border-box; - border-bottom: 1px solid #bfbfbf; -} +/* FIXME: shouldn't the vis-close button be a child of the vis-manipulation div? */ -.vis-foreground .vis-group:last-child { - border-bottom: none; -} - -.vis-overlay { - position: absolute; +div.vis-network div.vis-close { + position:absolute; + right: 0; top: 0; - left: 0; - width: 100%; - height: 100%; - z-index: 10; -} + width: 30px; + height: 30px; -.vis-item { - position: absolute; - color: #1A1A1A; - border-color: #97B0F8; - border-width: 1px; - background-color: #D5DDF6; - display: inline-block; - /*overflow: hidden;*/ + background-position: 20px 3px; + background-repeat: no-repeat; + background-image: url("img/network/cross.png"); + cursor: pointer; + -webkit-touch-callout: none; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; } -.vis-item.vis-selected { - border-color: #FFC200; - background-color: #FFF785; - - /* z-index must be higher than the z-index of custom time bar and current time bar */ - z-index: 2; +div.vis-network div.vis-close:hover { + opacity: 0.6; } -.vis-editable.vis-selected { - cursor: move; +div.vis-network div.vis-manipulation div.vis-button, +div.vis-network div.vis-edit-mode div.vis-button { + float:left; + font-family: verdana; + font-size: 12px; + -moz-border-radius: 15px; + border-radius: 15px; + display:inline-block; + background-position: 0px 0px; + background-repeat:no-repeat; + height:24px; + margin-left: 10px; + /*vertical-align:middle;*/ + cursor: pointer; + padding: 0px 8px 0px 8px; + -webkit-touch-callout: none; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; } -.vis-item.vis-point.vis-selected { - background-color: #FFF785; +div.vis-network div.vis-manipulation div.vis-button:hover { + box-shadow: 1px 1px 8px rgba(0, 0, 0, 0.20); } -.vis-item.vis-box { - text-align: center; - border-style: solid; - border-radius: 2px; +div.vis-network div.vis-manipulation div.vis-button:active { + box-shadow: 1px 1px 8px rgba(0, 0, 0, 0.50); } -.vis-item.vis-point { - background: none; +div.vis-network div.vis-manipulation div.vis-button.vis-back { + background-image: url("img/network/backIcon.png"); } -.vis-item.vis-dot { - position: absolute; - padding: 0; - border-width: 4px; - border-style: solid; - border-radius: 4px; +div.vis-network div.vis-manipulation div.vis-button.vis-none:hover { + box-shadow: 1px 1px 8px rgba(0, 0, 0, 0.0); + cursor: default; } - -.vis-item.vis-range { - border-style: solid; - border-radius: 2px; - box-sizing: border-box; +div.vis-network div.vis-manipulation div.vis-button.vis-none:active { + box-shadow: 1px 1px 8px rgba(0, 0, 0, 0.0); } - -.vis-item.vis-background { - border: none; - background-color: rgba(213, 221, 246, 0.4); - box-sizing: border-box; +div.vis-network div.vis-manipulation div.vis-button.vis-none { padding: 0; - margin: 0; } - -.vis-item .vis-item-overflow { - position: relative; - width: 100%; - height: 100%; - padding: 0; - margin: 0; - overflow: hidden; +div.vis-network div.vis-manipulation div.notification { + margin: 2px; + font-weight: bold; } -.vis-item.vis-range .vis-item-content { - position: relative; - display: inline-block; +div.vis-network div.vis-manipulation div.vis-button.vis-add { + background-image: url("img/network/addNodeIcon.png"); } -.vis-item.vis-background .vis-item-content { - position: absolute; - display: inline-block; +div.vis-network div.vis-manipulation div.vis-button.vis-edit, +div.vis-network div.vis-edit-mode div.vis-button.vis-edit { + background-image: url("img/network/editIcon.png"); } -.vis-item.vis-line { - padding: 0; - position: absolute; - width: 0; - border-left-width: 1px; - border-left-style: solid; +div.vis-network div.vis-edit-mode div.vis-button.vis-edit.vis-edit-mode { + background-color: #fcfcfc; + border: 1px solid #cccccc; } -.vis-item .vis-item-content { - white-space: nowrap; - box-sizing: border-box; - padding: 5px; +div.vis-network div.vis-manipulation div.vis-button.vis-connect { + background-image: url("img/network/connectIcon.png"); } -.vis-item .vis-delete { - background: url('img/timeline/delete.png') no-repeat center; - position: absolute; - width: 24px; - height: 24px; - top: -4px; - right: -24px; - cursor: pointer; +div.vis-network div.vis-manipulation div.vis-button.vis-delete { + background-image: url("img/network/deleteIcon.png"); } - -.vis-item .vis-delete-rtl { - background: url('img/timeline/delete.png') no-repeat center; - position: absolute; - width: 24px; - height: 24px; - top: -4px; - left: -24px; - cursor: pointer; +/* top right bottom left */ +div.vis-network div.vis-manipulation div.vis-label, +div.vis-network div.vis-edit-mode div.vis-label { + margin: 0 0 0 23px; + line-height: 25px; } - - -.vis-item.vis-range .vis-drag-left { - position: absolute; - width: 24px; - max-width: 20%; - min-width: 2px; - height: 100%; - top: 0; - left: -4px; - - cursor: w-resize; +div.vis-network div.vis-manipulation div.vis-separator-line { + float:left; + display:inline-block; + width:1px; + height:21px; + background-color: #bdbdbd; + margin: 0px 7px 0 15px; /*top right bottom left*/ } -.vis-item.vis-range .vis-drag-right { +/* TODO: is this redundant? +div.network-navigation_wrapper { position: absolute; - width: 24px; - max-width: 20%; - min-width: 2px; - height: 100%; + left: 0; top: 0; - right: -4px; - - cursor: e-resize; + width: 100%; + height: 100%; } - -.vis-range.vis-item.vis-readonly .vis-drag-left, -.vis-range.vis-item.vis-readonly .vis-drag-right { - cursor: auto; +*/ +div.vis-network div.vis-navigation div.vis-button { + width:34px; + height:34px; + -moz-border-radius: 17px; + border-radius: 17px; + position:absolute; + display:inline-block; + background-position: 2px 2px; + background-repeat:no-repeat; + cursor: pointer; + -webkit-touch-callout: none; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; } -.vis-time-axis { - position: relative; - overflow: hidden; +div.vis-network div.vis-navigation div.vis-button:hover { + box-shadow: 0 0 3px 3px rgba(56, 207, 21, 0.30); } -.vis-time-axis.vis-foreground { - top: 0; - left: 0; - width: 100%; +div.vis-network div.vis-navigation div.vis-button:active { + box-shadow: 0 0 1px 3px rgba(56, 207, 21, 0.95); } -.vis-time-axis.vis-background { - position: absolute; - top: 0; - left: 0; - width: 100%; - height: 100%; +div.vis-network div.vis-navigation div.vis-button.vis-up { + background-image: url("img/network/upArrow.png"); + bottom:50px; + left:55px; } - -.vis-time-axis .vis-text { - position: absolute; - color: #4d4d4d; - padding: 3px; - overflow: hidden; - box-sizing: border-box; - - white-space: nowrap; +div.vis-network div.vis-navigation div.vis-button.vis-down { + background-image: url("img/network/downArrow.png"); + bottom:10px; + left:55px; } - -.vis-time-axis .vis-text.vis-measure { - position: absolute; - padding-left: 0; - padding-right: 0; - margin-left: 0; - margin-right: 0; - visibility: hidden; +div.vis-network div.vis-navigation div.vis-button.vis-left { + background-image: url("img/network/leftArrow.png"); + bottom:10px; + left:15px; } - -.vis-time-axis .vis-grid.vis-vertical { - position: absolute; - border-left: 1px solid; +div.vis-network div.vis-navigation div.vis-button.vis-right { + background-image: url("img/network/rightArrow.png"); + bottom:10px; + left:95px; } - -.vis-time-axis .vis-grid.vis-vertical-rtl { - position: absolute; - border-right: 1px solid; +div.vis-network div.vis-navigation div.vis-button.vis-zoomIn { + background-image: url("img/network/plus.png"); + bottom:10px; + right:15px; } - -.vis-time-axis .vis-grid.vis-minor { - border-color: #e5e5e5; +div.vis-network div.vis-navigation div.vis-button.vis-zoomOut { + background-image: url("img/network/minus.png"); + bottom:10px; + right:55px; } - -.vis-time-axis .vis-grid.vis-major { - border-color: #bfbfbf; +div.vis-network div.vis-navigation div.vis-button.vis-zoomExtends { + background-image: url("img/network/zoomExtends.png"); + bottom:50px; + right:15px; } +div.vis-network-tooltip { + position: absolute; + visibility: hidden; + padding: 5px; + white-space: nowrap; + + font-family: verdana; + font-size:14px; + color:#000000; + background-color: #f5f4ed; + + -moz-border-radius: 3px; + -webkit-border-radius: 3px; + border-radius: 3px; + border: 1px solid #808074; -.vis-current-time { - background-color: #FF7F6E; - width: 2px; - z-index: 1; -} -.vis-custom-time { - background-color: #6E94FF; - width: 2px; - cursor: move; - z-index: 1; + box-shadow: 3px 3px 10px rgba(0, 0, 0, 0.2); + pointer-events: none; } .vis-timeline { /* @@ -705,6 +748,17 @@ input.vis-configuration.vis-config-range:focus::-ms-fill-upper { transition: height .4s ease-in-out, top .4s ease-in-out; } /**/ +.vis-current-time { + background-color: #FF7F6E; + width: 2px; + z-index: 1; +} +.vis-custom-time { + background-color: #6E94FF; + width: 2px; + cursor: move; + z-index: 1; +} .vis-panel.vis-background.vis-horizontal .vis-grid.vis-horizontal { position: absolute; @@ -808,517 +862,528 @@ input.vis-configuration.vis-config-range:focus::-ms-fill-upper { white-space: nowrap; display: inline-block } -.vis-graph-group0 { - fill:#4f81bd; - fill-opacity:0; - stroke-width:2px; - stroke: #4f81bd; + +.vis-item { + position: absolute; + color: #1A1A1A; + border-color: #97B0F8; + border-width: 1px; + background-color: #D5DDF6; + display: inline-block; + /*overflow: hidden;*/ } -.vis-graph-group1 { - fill:#f79646; - fill-opacity:0; - stroke-width:2px; - stroke: #f79646; +.vis-item.vis-selected { + border-color: #FFC200; + background-color: #FFF785; + + /* z-index must be higher than the z-index of custom time bar and current time bar */ + z-index: 2; } -.vis-graph-group2 { - fill: #8c51cf; - fill-opacity:0; - stroke-width:2px; - stroke: #8c51cf; +.vis-editable.vis-selected { + cursor: move; } -.vis-graph-group3 { - fill: #75c841; - fill-opacity:0; - stroke-width:2px; - stroke: #75c841; +.vis-item.vis-point.vis-selected { + background-color: #FFF785; } -.vis-graph-group4 { - fill: #ff0100; - fill-opacity:0; - stroke-width:2px; - stroke: #ff0100; +.vis-item.vis-box { + text-align: center; + border-style: solid; + border-radius: 2px; } -.vis-graph-group5 { - fill: #37d8e6; - fill-opacity:0; - stroke-width:2px; - stroke: #37d8e6; +.vis-item.vis-point { + background: none; } -.vis-graph-group6 { - fill: #042662; - fill-opacity:0; - stroke-width:2px; - stroke: #042662; +.vis-item.vis-dot { + position: absolute; + padding: 0; + border-width: 4px; + border-style: solid; + border-radius: 4px; } -.vis-graph-group7 { - fill:#00ff26; - fill-opacity:0; - stroke-width:2px; - stroke: #00ff26; +.vis-item.vis-range { + border-style: solid; + border-radius: 2px; + box-sizing: border-box; } -.vis-graph-group8 { - fill:#ff00ff; - fill-opacity:0; - stroke-width:2px; - stroke: #ff00ff; +.vis-item.vis-background { + border: none; + background-color: rgba(213, 221, 246, 0.4); + box-sizing: border-box; + padding: 0; + margin: 0; } -.vis-graph-group9 { - fill: #8f3938; - fill-opacity:0; - stroke-width:2px; - stroke: #8f3938; +.vis-item .vis-item-overflow { + position: relative; + width: 100%; + height: 100%; + padding: 0; + margin: 0; + overflow: hidden; } -.vis-timeline .vis-fill { - fill-opacity:0.1; - stroke: none; +.vis-item.vis-range .vis-item-content { + position: relative; + display: inline-block; } +.vis-item.vis-background .vis-item-content { + position: absolute; + display: inline-block; +} -.vis-timeline .vis-bar { - fill-opacity:0.5; - stroke-width:1px; +.vis-item.vis-line { + padding: 0; + position: absolute; + width: 0; + border-left-width: 1px; + border-left-style: solid; } -.vis-timeline .vis-point { - stroke-width:2px; - fill-opacity:1.0; +.vis-item .vis-item-content { + white-space: nowrap; + box-sizing: border-box; + padding: 5px; } +.vis-item .vis-onUpdateTime-tooltip { + position: absolute; + background: #4f81bd; + color: white; + width: 200px; + text-align: center; + white-space: nowrap; + padding: 5px; + border-radius: 1px; +} -.vis-timeline .vis-legend-background { - stroke-width:1px; - fill-opacity:0.9; - fill: #ffffff; - stroke: #c2c2c2; +.vis-item .vis-delete, .vis-item .vis-delete-rtl { + position: absolute; + top: 0px; + width: 24px; + height: 24px; + box-sizing: border-box; + padding: 0px 5px; + cursor: pointer; + + -webkit-transition: background 0.2s linear; + -moz-transition: background 0.2s linear; + -ms-transition: background 0.2s linear; + -o-transition: background 0.2s linear; + transition: background 0.2s linear; } +.vis-item .vis-delete { + right: -24px; +} -.vis-timeline .vis-outline { - stroke-width:1px; - fill-opacity:1; - fill: #ffffff; - stroke: #e5e5e5; +.vis-item .vis-delete-rtl { + left: -24px; } -.vis-timeline .vis-icon-fill { - fill-opacity:0.3; - stroke: none; +.vis-item .vis-delete:after, .vis-item .vis-delete-rtl:after { + content: "\00D7"; /* MULTIPLICATION SIGN */ + color: red; + font-family: arial, sans-serif; + font-size: 22px; + font-weight: bold; + + -webkit-transition: color 0.2s linear; + -moz-transition: color 0.2s linear; + -ms-transition: color 0.2s linear; + -o-transition: color 0.2s linear; + transition: color 0.2s linear; } -div.vis-network div.vis-manipulation { - border-width: 0; - border-bottom: 1px; - border-style:solid; - border-color: #d6d9d8; - background: #ffffff; /* Old browsers */ - background: -moz-linear-gradient(top, #ffffff 0%, #fcfcfc 48%, #fafafa 50%, #fcfcfc 100%); /* FF3.6+ */ - background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#ffffff), color-stop(48%,#fcfcfc), color-stop(50%,#fafafa), color-stop(100%,#fcfcfc)); /* Chrome,Safari4+ */ - background: -webkit-linear-gradient(top, #ffffff 0%,#fcfcfc 48%,#fafafa 50%,#fcfcfc 100%); /* Chrome10+,Safari5.1+ */ - background: -o-linear-gradient(top, #ffffff 0%,#fcfcfc 48%,#fafafa 50%,#fcfcfc 100%); /* Opera 11.10+ */ - background: -ms-linear-gradient(top, #ffffff 0%,#fcfcfc 48%,#fafafa 50%,#fcfcfc 100%); /* IE10+ */ - background: linear-gradient(to bottom, #ffffff 0%,#fcfcfc 48%,#fafafa 50%,#fcfcfc 100%); /* W3C */ - filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#ffffff', endColorstr='#fcfcfc',GradientType=0 ); /* IE6-9 */ +.vis-item .vis-delete:hover, .vis-item .vis-delete-rtl:hover { + background: red; +} + +.vis-item .vis-delete:hover:after, .vis-item .vis-delete-rtl:hover:after { + color: white; +} + +.vis-item .vis-drag-center { + position: absolute; + width: 100%; + height: 100%; + top: 0; + left: 0px; + cursor: move; +} + +.vis-item.vis-range .vis-drag-left { + position: absolute; + width: 24px; + max-width: 20%; + min-width: 2px; + height: 100%; + top: 0; + left: -4px; + + cursor: w-resize; +} + +.vis-item.vis-range .vis-drag-right { + position: absolute; + width: 24px; + max-width: 20%; + min-width: 2px; + height: 100%; + top: 0; + right: -4px; + + cursor: e-resize; +} + +.vis-range.vis-item.vis-readonly .vis-drag-left, +.vis-range.vis-item.vis-readonly .vis-drag-right { + cursor: auto; +} + + +.vis-itemset { + position: relative; + padding: 0; + margin: 0; + + box-sizing: border-box; +} + +.vis-itemset .vis-background, +.vis-itemset .vis-foreground { + position: absolute; + width: 100%; + height: 100%; + overflow: visible; +} + +.vis-axis { + position: absolute; + width: 100%; + height: 0; + left: 0; + z-index: 1; +} - padding-top:4px; +.vis-foreground .vis-group { + position: relative; + box-sizing: border-box; + border-bottom: 1px solid #bfbfbf; +} + +.vis-foreground .vis-group:last-child { + border-bottom: none; +} + +.vis-overlay { position: absolute; - left: 0; top: 0; + left: 0; width: 100%; - height: 28px; + height: 100%; + z-index: 10; } -div.vis-network div.vis-edit-mode { - position:absolute; - left: 0; - top: 5px; - height: 30px; -} +.vis-labelset { + position: relative; -/* FIXME: shouldn't the vis-close button be a child of the vis-manipulation div? */ + overflow: hidden; -div.vis-network div.vis-close { - position:absolute; - right: 0; + box-sizing: border-box; +} + +.vis-labelset .vis-label { + position: relative; + left: 0; top: 0; - width: 30px; - height: 30px; + width: 100%; + color: #4d4d4d; - background-position: 20px 3px; - background-repeat: no-repeat; - background-image: url("img/network/cross.png"); - cursor: pointer; - -webkit-touch-callout: none; - -webkit-user-select: none; - -khtml-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; + box-sizing: border-box; } -div.vis-network div.vis-close:hover { - opacity: 0.6; +.vis-labelset .vis-label { + border-bottom: 1px solid #bfbfbf; } -div.vis-network div.vis-manipulation div.vis-button, -div.vis-network div.vis-edit-mode div.vis-button { - float:left; - font-family: verdana; - font-size: 12px; - -moz-border-radius: 15px; - border-radius: 15px; - display:inline-block; - background-position: 0px 0px; - background-repeat:no-repeat; - height:24px; - margin-left: 10px; - /*vertical-align:middle;*/ +.vis-labelset .vis-label.draggable { cursor: pointer; - padding: 0px 8px 0px 8px; - -webkit-touch-callout: none; - -webkit-user-select: none; - -khtml-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; -} - -div.vis-network div.vis-manipulation div.vis-button:hover { - box-shadow: 1px 1px 8px rgba(0, 0, 0, 0.20); } -div.vis-network div.vis-manipulation div.vis-button:active { - box-shadow: 1px 1px 8px rgba(0, 0, 0, 0.50); +.vis-labelset .vis-label:last-child { + border-bottom: none; } -div.vis-network div.vis-manipulation div.vis-button.vis-back { - background-image: url("img/network/backIcon.png"); +.vis-labelset .vis-label .vis-inner { + display: inline-block; + padding: 5px; } -div.vis-network div.vis-manipulation div.vis-button.vis-none:hover { - box-shadow: 1px 1px 8px rgba(0, 0, 0, 0.0); - cursor: default; -} -div.vis-network div.vis-manipulation div.vis-button.vis-none:active { - box-shadow: 1px 1px 8px rgba(0, 0, 0, 0.0); -} -div.vis-network div.vis-manipulation div.vis-button.vis-none { +.vis-labelset .vis-label .vis-inner.vis-hidden { padding: 0; } -div.vis-network div.vis-manipulation div.notification { - margin: 2px; - font-weight: bold; -} -div.vis-network div.vis-manipulation div.vis-button.vis-add { - background-image: url("img/network/addNodeIcon.png"); -} +.vis-panel { + position: absolute; -div.vis-network div.vis-manipulation div.vis-button.vis-edit, -div.vis-network div.vis-edit-mode div.vis-button.vis-edit { - background-image: url("img/network/editIcon.png"); -} + padding: 0; + margin: 0; -div.vis-network div.vis-edit-mode div.vis-button.vis-edit.vis-edit-mode { - background-color: #fcfcfc; - border: 1px solid #cccccc; + box-sizing: border-box; } -div.vis-network div.vis-manipulation div.vis-button.vis-connect { - background-image: url("img/network/connectIcon.png"); +.vis-panel.vis-center, +.vis-panel.vis-left, +.vis-panel.vis-right, +.vis-panel.vis-top, +.vis-panel.vis-bottom { + border: 1px #bfbfbf; } -div.vis-network div.vis-manipulation div.vis-button.vis-delete { - background-image: url("img/network/deleteIcon.png"); -} -/* top right bottom left */ -div.vis-network div.vis-manipulation div.vis-label, -div.vis-network div.vis-edit-mode div.vis-label { - margin: 0 0 0 23px; - line-height: 25px; -} -div.vis-network div.vis-manipulation div.vis-separator-line { - float:left; - display:inline-block; - width:1px; - height:21px; - background-color: #bdbdbd; - margin: 0px 7px 0 15px; /*top right bottom left*/ +.vis-panel.vis-center, +.vis-panel.vis-left, +.vis-panel.vis-right { + border-top-style: solid; + border-bottom-style: solid; + overflow: hidden; } -/* TODO: is this redundant? -div.network-navigation_wrapper { - position: absolute; - left: 0; - top: 0; - width: 100%; +.vis-left.vis-panel.vis-vertical-scroll, .vis-right.vis-panel.vis-vertical-scroll { height: 100%; -} -*/ -div.vis-network-tooltip { - position: absolute; - visibility: hidden; - padding: 5px; - white-space: nowrap; + overflow-x: hidden; + overflow-y: scroll; +} - font-family: verdana; - font-size:14px; - color:#000000; - background-color: #f5f4ed; +.vis-left.vis-panel.vis-vertical-scroll { + direction: rtl; +} - -moz-border-radius: 3px; - -webkit-border-radius: 3px; - border-radius: 3px; - border: 1px solid #808074; +.vis-left.vis-panel.vis-vertical-scroll .vis-content { + direction: ltr; +} - box-shadow: 3px 3px 10px rgba(0, 0, 0, 0.2); - pointer-events: none; +.vis-right.vis-panel.vis-vertical-scroll { + direction: ltr; } -div.vis-network div.vis-navigation div.vis-button { - width:34px; - height:34px; - -moz-border-radius: 17px; - border-radius: 17px; - position:absolute; - display:inline-block; - background-position: 2px 2px; - background-repeat:no-repeat; - cursor: pointer; - -webkit-touch-callout: none; - -webkit-user-select: none; - -khtml-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; + +.vis-right.vis-panel.vis-vertical-scroll .vis-content { + direction: rtl; } -div.vis-network div.vis-navigation div.vis-button:hover { - box-shadow: 0 0 3px 3px rgba(56, 207, 21, 0.30); +.vis-panel.vis-center, +.vis-panel.vis-top, +.vis-panel.vis-bottom { + border-left-style: solid; + border-right-style: solid; } -div.vis-network div.vis-navigation div.vis-button:active { - box-shadow: 0 0 1px 3px rgba(56, 207, 21, 0.95); +.vis-background { + overflow: hidden; } -div.vis-network div.vis-navigation div.vis-button.vis-up { - background-image: url("img/network/upArrow.png"); - bottom:50px; - left:55px; +.vis-panel > .vis-content { + position: relative; } -div.vis-network div.vis-navigation div.vis-button.vis-down { - background-image: url("img/network/downArrow.png"); - bottom:10px; - left:55px; + +.vis-panel .vis-shadow { + position: absolute; + width: 100%; + height: 1px; + box-shadow: 0 0 10px rgba(0,0,0,0.8); + /* TODO: find a nice way to ensure vis-shadows are drawn on top of items + z-index: 1; + */ } -div.vis-network div.vis-navigation div.vis-button.vis-left { - background-image: url("img/network/leftArrow.png"); - bottom:10px; - left:15px; + +.vis-panel .vis-shadow.vis-top { + top: -1px; + left: 0; } -div.vis-network div.vis-navigation div.vis-button.vis-right { - background-image: url("img/network/rightArrow.png"); - bottom:10px; - left:95px; + +.vis-panel .vis-shadow.vis-bottom { + bottom: -1px; + left: 0; } -div.vis-network div.vis-navigation div.vis-button.vis-zoomIn { - background-image: url("img/network/plus.png"); - bottom:10px; - right:15px; +.vis-graph-group0 { + fill:#4f81bd; + fill-opacity:0; + stroke-width:2px; + stroke: #4f81bd; } -div.vis-network div.vis-navigation div.vis-button.vis-zoomOut { - background-image: url("img/network/minus.png"); - bottom:10px; - right:55px; + +.vis-graph-group1 { + fill:#f79646; + fill-opacity:0; + stroke-width:2px; + stroke: #f79646; } -div.vis-network div.vis-navigation div.vis-button.vis-zoomExtends { - background-image: url("img/network/zoomExtends.png"); - bottom:50px; - right:15px; + +.vis-graph-group2 { + fill: #8c51cf; + fill-opacity:0; + stroke-width:2px; + stroke: #8c51cf; } -div.vis-color-picker { - position:absolute; - top: 0px; - left: 30px; - margin-top:-140px; - margin-left:30px; - width:310px; - height:444px; - z-index: 1; - padding: 10px; - border-radius:15px; - background-color:#ffffff; - display: none; - box-shadow: rgba(0,0,0,0.5) 0px 0px 10px 0px; +.vis-graph-group3 { + fill: #75c841; + fill-opacity:0; + stroke-width:2px; + stroke: #75c841; } -div.vis-color-picker div.vis-arrow { - position: absolute; - top:147px; - left:5px; +.vis-graph-group4 { + fill: #ff0100; + fill-opacity:0; + stroke-width:2px; + stroke: #ff0100; } -div.vis-color-picker div.vis-arrow::after, -div.vis-color-picker div.vis-arrow::before { - right: 100%; - top: 50%; - border: solid transparent; - content: " "; - height: 0; - width: 0; - position: absolute; - pointer-events: none; +.vis-graph-group5 { + fill: #37d8e6; + fill-opacity:0; + stroke-width:2px; + stroke: #37d8e6; } -div.vis-color-picker div.vis-arrow:after { - border-color: rgba(255, 255, 255, 0); - border-right-color: #ffffff; - border-width: 30px; - margin-top: -30px; +.vis-graph-group6 { + fill: #042662; + fill-opacity:0; + stroke-width:2px; + stroke: #042662; } -div.vis-color-picker div.vis-color { - position:absolute; - width: 289px; - height: 289px; - cursor: pointer; +.vis-graph-group7 { + fill:#00ff26; + fill-opacity:0; + stroke-width:2px; + stroke: #00ff26; } +.vis-graph-group8 { + fill:#ff00ff; + fill-opacity:0; + stroke-width:2px; + stroke: #ff00ff; +} +.vis-graph-group9 { + fill: #8f3938; + fill-opacity:0; + stroke-width:2px; + stroke: #8f3938; +} -div.vis-color-picker div.vis-brightness { - position: absolute; - top:313px; +.vis-timeline .vis-fill { + fill-opacity:0.1; + stroke: none; } -div.vis-color-picker div.vis-opacity { - position:absolute; - top:350px; + +.vis-timeline .vis-bar { + fill-opacity:0.5; + stroke-width:1px; } -div.vis-color-picker div.vis-selector { - position:absolute; - top:137px; - left:137px; - width:15px; - height:15px; - border-radius:15px; - border:1px solid #ffffff; - background: #4c4c4c; /* Old browsers */ - background: -moz-linear-gradient(top, #4c4c4c 0%, #595959 12%, #666666 25%, #474747 39%, #2c2c2c 50%, #000000 51%, #111111 60%, #2b2b2b 76%, #1c1c1c 91%, #131313 100%); /* FF3.6+ */ - background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#4c4c4c), color-stop(12%,#595959), color-stop(25%,#666666), color-stop(39%,#474747), color-stop(50%,#2c2c2c), color-stop(51%,#000000), color-stop(60%,#111111), color-stop(76%,#2b2b2b), color-stop(91%,#1c1c1c), color-stop(100%,#131313)); /* Chrome,Safari4+ */ - background: -webkit-linear-gradient(top, #4c4c4c 0%,#595959 12%,#666666 25%,#474747 39%,#2c2c2c 50%,#000000 51%,#111111 60%,#2b2b2b 76%,#1c1c1c 91%,#131313 100%); /* Chrome10+,Safari5.1+ */ - background: -o-linear-gradient(top, #4c4c4c 0%,#595959 12%,#666666 25%,#474747 39%,#2c2c2c 50%,#000000 51%,#111111 60%,#2b2b2b 76%,#1c1c1c 91%,#131313 100%); /* Opera 11.10+ */ - background: -ms-linear-gradient(top, #4c4c4c 0%,#595959 12%,#666666 25%,#474747 39%,#2c2c2c 50%,#000000 51%,#111111 60%,#2b2b2b 76%,#1c1c1c 91%,#131313 100%); /* IE10+ */ - background: linear-gradient(to bottom, #4c4c4c 0%,#595959 12%,#666666 25%,#474747 39%,#2c2c2c 50%,#000000 51%,#111111 60%,#2b2b2b 76%,#1c1c1c 91%,#131313 100%); /* W3C */ - filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#4c4c4c', endColorstr='#131313',GradientType=0 ); /* IE6-9 */ +.vis-timeline .vis-point { + stroke-width:2px; + fill-opacity:1.0; } +.vis-timeline .vis-legend-background { + stroke-width:1px; + fill-opacity:0.9; + fill: #ffffff; + stroke: #c2c2c2; +} -div.vis-color-picker div.vis-new-color { - position:absolute; - width:140px; - height:20px; - border:1px solid rgba(0,0,0,0.1); - border-radius:5px; - top:380px; - left:159px; - text-align:right; - padding-right:2px; - font-size:10px; - color:rgba(0,0,0,0.4); - vertical-align:middle; - line-height:20px; +.vis-timeline .vis-outline { + stroke-width:1px; + fill-opacity:1; + fill: #ffffff; + stroke: #e5e5e5; } -div.vis-color-picker div.vis-initial-color { - position:absolute; - width:140px; - height:20px; - border:1px solid rgba(0,0,0,0.1); - border-radius:5px; - top:380px; - left:10px; - text-align:left; - padding-left:2px; - font-size:10px; - color:rgba(0,0,0,0.4); - vertical-align:middle; - line-height:20px; +.vis-timeline .vis-icon-fill { + fill-opacity:0.3; + stroke: none; } -div.vis-color-picker div.vis-label { - position:absolute; - width:300px; - left:10px; +.vis-time-axis { + position: relative; + overflow: hidden; } -div.vis-color-picker div.vis-label.vis-brightness { - top:300px; +.vis-time-axis.vis-foreground { + top: 0; + left: 0; + width: 100%; } -div.vis-color-picker div.vis-label.vis-opacity { - top:338px; +.vis-time-axis.vis-background { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; } -div.vis-color-picker div.vis-button { - position:absolute; - width:68px; - height:25px; - border-radius:10px; - vertical-align: middle; - text-align:center; - line-height: 25px; - top:410px; - border:2px solid #d9d9d9; - background-color: #f7f7f7; - cursor:pointer; -} +.vis-time-axis .vis-text { + position: absolute; + color: #4d4d4d; + padding: 3px; + overflow: hidden; + box-sizing: border-box; -div.vis-color-picker div.vis-button.vis-cancel { - /*border:2px solid #ff4e33;*/ - /*background-color: #ff7761;*/ - left:5px; -} -div.vis-color-picker div.vis-button.vis-load { - /*border:2px solid #a153e6;*/ - /*background-color: #cb8dff;*/ - left:82px; + white-space: nowrap; } -div.vis-color-picker div.vis-button.vis-apply { - /*border:2px solid #4588e6;*/ - /*background-color: #82b6ff;*/ - left:159px; + +.vis-time-axis .vis-text.vis-measure { + position: absolute; + padding-left: 0; + padding-right: 0; + margin-left: 0; + margin-right: 0; + visibility: hidden; } -div.vis-color-picker div.vis-button.vis-save { - /*border:2px solid #45e655;*/ - /*background-color: #6dff7c;*/ - left:236px; + +.vis-time-axis .vis-grid.vis-vertical { + position: absolute; + border-left: 1px solid; } +.vis-time-axis .vis-grid.vis-vertical-rtl { + position: absolute; + border-right: 1px solid; +} -div.vis-color-picker input.vis-range { - width: 290px; - height:20px; +.vis-time-axis .vis-grid.vis-minor { + border-color: #e5e5e5; } -/* TODO: is this redundant? -div.vis-color-picker input.vis-range-brightness { - width: 289px !important; +.vis-time-axis .vis-grid.vis-major { + border-color: #bfbfbf; } -div.vis-color-picker input.vis-saturation-range { - width: 289px !important; -}*/ \ No newline at end of file +.vis-timeline { + position: relative; + border: 1px solid #bfbfbf; + + overflow: hidden; + padding: 0; + margin: 0; + + box-sizing: border-box; +} diff --git a/dist/vis.js b/dist/vis.js index 538e2733..aabaddd5 100644 --- a/dist/vis.js +++ b/dist/vis.js @@ -4,8 +4,8 @@ * * A dynamic, browser-based visualization library. * - * @version 4.16.1 - * @date 2016-04-18 + * @version 4.17.0 + * @date 2016-11-05 * * @license * Copyright (C) 2011-2016 Almende B.V, http://almende.com @@ -89,10 +89,10 @@ return /******/ (function(modules) { // webpackBootstrap util.extend(exports, __webpack_require__(7)); // Timeline & Graph2d - util.extend(exports, __webpack_require__(24)); + util.extend(exports, __webpack_require__(26)); // Network - util.extend(exports, __webpack_require__(60)); + util.extend(exports, __webpack_require__(62)); /***/ }, /* 1 */ @@ -100,13 +100,14 @@ return /******/ (function(modules) { // webpackBootstrap '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 _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; // utility functions // first check if moment.js is already loaded in the browser window, if so, // use this instance. Else, load via commonjs. + var moment = __webpack_require__(2); var uuid = __webpack_require__(6); @@ -211,7 +212,7 @@ return /******/ (function(modules) { // webpackBootstrap * @param value */ exports.fillIfDefined = function (a, b) { - var allowDeletion = arguments.length <= 2 || arguments[2] === undefined ? false : arguments[2]; + var allowDeletion = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false; for (var prop in a) { if (b[prop] !== undefined) { @@ -301,7 +302,7 @@ return /******/ (function(modules) { // webpackBootstrap * @return {Object} a */ exports.selectiveDeepExtend = function (props, a, b) { - var allowDeletion = arguments.length <= 3 || arguments[3] === undefined ? false : arguments[3]; + var allowDeletion = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false; // TODO: add support for Arrays to deepExtend if (Array.isArray(b)) { @@ -349,7 +350,7 @@ return /******/ (function(modules) { // webpackBootstrap * @return {Object} a */ exports.selectiveNotDeepExtend = function (props, a, b) { - var allowDeletion = arguments.length <= 3 || arguments[3] === undefined ? false : arguments[3]; + var allowDeletion = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false; // TODO: add support for Arrays to deepExtend if (Array.isArray(b)) { @@ -482,8 +483,11 @@ return /******/ (function(modules) { // webpackBootstrap case 'number': case 'Number': - return Number(object.valueOf()); - + if (!isNaN(Date.parse(object))) { + return moment(object).valueOf(); + } else { + return Number(object.valueOf()); + } case 'string': case 'String': return String(object); @@ -503,11 +507,11 @@ return /******/ (function(modules) { // webpackBootstrap // object is an ASP date return new Date(Number(match[1])); // parse number } else { - return moment(object).toDate(); // parse string - } - } else { - throw new Error('Cannot convert object of type ' + exports.getType(object) + ' to type Date'); + return moment(new Date(object)).toDate(); // parse string } + } else { + throw new Error('Cannot convert object of type ' + exports.getType(object) + ' to type Date'); + } case 'Moment': if (exports.isNumber(object)) { @@ -524,11 +528,11 @@ return /******/ (function(modules) { // webpackBootstrap // object is an ASP date return moment(Number(match[1])); // parse number } else { - return moment(object); // parse string - } - } else { - throw new Error('Cannot convert object of type ' + exports.getType(object) + ' to type Date'); + return moment(object); // parse string } + } else { + throw new Error('Cannot convert object of type ' + exports.getType(object) + ' to type Date'); + } case 'ISODate': if (exports.isNumber(object)) { @@ -543,11 +547,11 @@ return /******/ (function(modules) { // webpackBootstrap // object is an ASP date return new Date(Number(match[1])).toISOString(); // parse number } else { - return new Date(object).toISOString(); // parse string - } - } else { - throw new Error('Cannot convert object of type ' + exports.getType(object) + ' to type ISODate'); + return moment(object).format(); // ISO 8601 } + } else { + throw new Error('Cannot convert object of type ' + exports.getType(object) + ' to type ISODate'); + } case 'ASPDate': if (exports.isNumber(object)) { @@ -561,8 +565,8 @@ return /******/ (function(modules) { // webpackBootstrap // object is an ASP date value = new Date(Number(match[1])).valueOf(); // parse number } else { - value = new Date(object).valueOf(); // parse string - } + value = new Date(object).valueOf(); // parse string + } return '/Date(' + value + ')/'; } else { throw new Error('Cannot convert object of type ' + exports.getType(object) + ' to type ASPDate'); @@ -760,28 +764,20 @@ return /******/ (function(modules) { // webpackBootstrap }; /** - * Throttle the given function to be only executed once every `wait` milliseconds + * Throttle the given function to be only executed once per animation frame * @param {function} fn - * @param {number} wait Time in milliseconds * @returns {function} Returns the throttled function */ - exports.throttle = function (fn, wait) { - var timeout = null; - var needExecution = false; + exports.throttle = function (fn) { + var scheduled = false; return function throttled() { - if (!timeout) { - needExecution = false; - fn(); - - timeout = setTimeout(function () { - timeout = null; - if (needExecution) { - throttled(); - } - }, wait); - } else { - needExecution = true; + if (!scheduled) { + scheduled = true; + requestAnimationFrame(function () { + scheduled = false; + fn(); + }); } }; }; @@ -840,8 +836,8 @@ return /******/ (function(modules) { // webpackBootstrap if (event.preventDefault) { event.preventDefault(); // non-IE browsers } else { - event.returnValue = false; // IE browsers - } + event.returnValue = false; // IE browsers + } }; /** @@ -1329,8 +1325,8 @@ return /******/ (function(modules) { // webpackBootstrap * @param [String] option | this is the option key in the options argument */ exports.mergeOptions = function (mergeTarget, options, option) { - var allowDeletion = arguments.length <= 3 || arguments[3] === undefined ? false : arguments[3]; - var globalOptions = arguments.length <= 4 || arguments[4] === undefined ? {} : arguments[4]; + var allowDeletion = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false; + var globalOptions = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : {}; if (options[option] === null) { mergeTarget[option] = Object.create(globalOptions[option]); @@ -1510,6 +1506,32 @@ return /******/ (function(modules) { // webpackBootstrap } }; + exports.getScrollBarWidth = function () { + var inner = document.createElement('p'); + inner.style.width = "100%"; + inner.style.height = "200px"; + + var outer = document.createElement('div'); + outer.style.position = "absolute"; + outer.style.top = "0px"; + outer.style.left = "0px"; + outer.style.visibility = "hidden"; + outer.style.width = "200px"; + outer.style.height = "150px"; + outer.style.overflow = "hidden"; + outer.appendChild(inner); + + document.body.appendChild(outer); + var w1 = inner.offsetWidth; + outer.style.overflow = 'scroll'; + var w2 = inner.offsetWidth; + if (w1 == w2) w2 = outer.clientWidth; + + document.body.removeChild(outer); + + return w1 - w2; + }; + /***/ }, /* 2 */ /***/ function(module, exports, __webpack_require__) { @@ -1525,7 +1547,7 @@ return /******/ (function(modules) { // webpackBootstrap /***/ function(module, exports, __webpack_require__) { /* WEBPACK VAR INJECTION */(function(module) {//! moment.js - //! version : 2.13.0 + //! version : 2.15.2 //! authors : Tim Wood, Iskren Chernev, Moment.js contributors //! license : MIT //! momentjs.com @@ -1552,6 +1574,21 @@ return /******/ (function(modules) { // webpackBootstrap return input instanceof Array || Object.prototype.toString.call(input) === '[object Array]'; } + function isObject(input) { + // IE8 will treat undefined and null as object if it wasn't for + // input != null + return input != null && Object.prototype.toString.call(input) === '[object Object]'; + } + + function isObjectEmpty(obj) { + var k; + for (k in obj) { + // even if its not own property I'd still call it non-empty + return false; + } + return true; + } + function isDate(input) { return input instanceof Date || Object.prototype.toString.call(input) === '[object Date]'; } @@ -1639,7 +1676,7 @@ return /******/ (function(modules) { // webpackBootstrap var parsedParts = some.call(flags.parsedDateParts, function (i) { return i != null; }); - m._isValid = !isNaN(m._d.getTime()) && + var isNowValid = !isNaN(m._d.getTime()) && flags.overflow < 0 && !flags.empty && !flags.invalidMonth && @@ -1650,11 +1687,18 @@ return /******/ (function(modules) { // webpackBootstrap (!flags.meridiem || (flags.meridiem && parsedParts)); if (m._strict) { - m._isValid = m._isValid && + isNowValid = isNowValid && flags.charsLeftOver === 0 && flags.unusedTokens.length === 0 && flags.bigHour === undefined; } + + if (Object.isFrozen == null || !Object.isFrozen(m)) { + m._isValid = isNowValid; + } + else { + return isNowValid; + } } return m._isValid; } @@ -1747,7 +1791,8 @@ return /******/ (function(modules) { // webpackBootstrap function absFloor (number) { if (number < 0) { - return Math.ceil(number); + // -0 -> 0 + return Math.ceil(number) || 0; } else { return Math.floor(number); } @@ -1794,7 +1839,22 @@ return /******/ (function(modules) { // webpackBootstrap utils_hooks__hooks.deprecationHandler(null, msg); } if (firstTime) { - warn(msg + '\nArguments: ' + Array.prototype.slice.call(arguments).join(', ') + '\n' + (new Error()).stack); + var args = []; + var arg; + for (var i = 0; i < arguments.length; i++) { + arg = ''; + if (typeof arguments[i] === 'object') { + arg += '\n[' + i + '] '; + for (var key in arguments[0]) { + arg += key + ': ' + arguments[0][key] + ', '; + } + arg = arg.slice(0, -2); // Remove trailing comma and space + } else { + arg = arguments[i]; + } + args.push(arg); + } + warn(msg + '\nArguments: ' + Array.prototype.slice.call(args).join('') + '\n' + (new Error()).stack); firstTime = false; } return fn.apply(this, arguments); @@ -1820,10 +1880,6 @@ return /******/ (function(modules) { // webpackBootstrap return input instanceof Function || Object.prototype.toString.call(input) === '[object Function]'; } - function isObject(input) { - return Object.prototype.toString.call(input) === '[object Object]'; - } - function locale_set__set (config) { var prop, i; for (i in config) { @@ -1855,6 +1911,14 @@ return /******/ (function(modules) { // webpackBootstrap } } } + for (prop in parentConfig) { + if (hasOwnProp(parentConfig, prop) && + !hasOwnProp(childConfig, prop) && + isObject(parentConfig[prop])) { + // make sure changes to properties don't modify parent config + res[prop] = extend({}, res[prop]); + } + } return res; } @@ -1880,161 +1944,83 @@ return /******/ (function(modules) { // webpackBootstrap }; } - // internal storage for locale config files - var locales = {}; - var globalLocale; + var defaultCalendar = { + sameDay : '[Today at] LT', + nextDay : '[Tomorrow at] LT', + nextWeek : 'dddd [at] LT', + lastDay : '[Yesterday at] LT', + lastWeek : '[Last] dddd [at] LT', + sameElse : 'L' + }; - function normalizeLocale(key) { - return key ? key.toLowerCase().replace('_', '-') : key; + function locale_calendar__calendar (key, mom, now) { + var output = this._calendar[key] || this._calendar['sameElse']; + return isFunction(output) ? output.call(mom, now) : output; } - // pick the locale from the array - // try ['en-au', 'en-gb'] as 'en-au', 'en-gb', 'en', as in move through the list trying each - // substring from most specific to least, but move to the next array item if it's a more specific variant than the current root - function chooseLocale(names) { - var i = 0, j, next, locale, split; + var defaultLongDateFormat = { + 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' + }; - while (i < names.length) { - split = normalizeLocale(names[i]).split('-'); - j = split.length; - next = normalizeLocale(names[i + 1]); - next = next ? next.split('-') : null; - while (j > 0) { - locale = loadLocale(split.slice(0, j).join('-')); - if (locale) { - return locale; - } - if (next && next.length >= j && compareArrays(split, next, true) >= j - 1) { - //the next array item is better than a shallower substring of this one - break; - } - j--; - } - i++; - } - return null; - } + function longDateFormat (key) { + var format = this._longDateFormat[key], + formatUpper = this._longDateFormat[key.toUpperCase()]; - function loadLocale(name) { - var oldLocale = null; - // TODO: Find a better way to register and load all the locales in Node - if (!locales[name] && (typeof module !== 'undefined') && - module && module.exports) { - try { - oldLocale = globalLocale._abbr; - !(function webpackMissingModule() { var e = new Error("Cannot find module \"./locale\""); e.code = 'MODULE_NOT_FOUND'; throw e; }()); - // because defineLocale currently also sets the global locale, we - // want to undo that for lazy loaded locales - locale_locales__getSetGlobalLocale(oldLocale); - } catch (e) { } + if (format || !formatUpper) { + return format; } - return locales[name]; - } - // This function will load locale and then set the global locale. If - // no arguments are passed in, it will simply return the current global - // locale key. - function locale_locales__getSetGlobalLocale (key, values) { - var data; - if (key) { - if (isUndefined(values)) { - data = locale_locales__getLocale(key); - } - else { - data = defineLocale(key, values); - } - - if (data) { - // moment.duration._locale = moment._locale = data; - globalLocale = data; - } - } + this._longDateFormat[key] = formatUpper.replace(/MMMM|MM|DD|dddd/g, function (val) { + return val.slice(1); + }); - return globalLocale._abbr; + return this._longDateFormat[key]; } - function defineLocale (name, config) { - if (config !== null) { - config.abbr = name; - if (locales[name] != null) { - deprecateSimple('defineLocaleOverride', - 'use moment.updateLocale(localeName, config) to change ' + - 'an existing locale. moment.defineLocale(localeName, ' + - 'config) should only be used for creating a new locale'); - config = mergeConfigs(locales[name]._config, config); - } else if (config.parentLocale != null) { - if (locales[config.parentLocale] != null) { - config = mergeConfigs(locales[config.parentLocale]._config, config); - } else { - // treat as if there is no base config - deprecateSimple('parentLocaleUndefined', - 'specified parentLocale is not defined yet'); - } - } - locales[name] = new Locale(config); - - // backwards compat for now: also set the locale - locale_locales__getSetGlobalLocale(name); + var defaultInvalidDate = 'Invalid date'; - return locales[name]; - } else { - // useful for testing - delete locales[name]; - return null; - } + function invalidDate () { + return this._invalidDate; } - function updateLocale(name, config) { - if (config != null) { - var locale; - if (locales[name] != null) { - config = mergeConfigs(locales[name]._config, config); - } - locale = new Locale(config); - locale.parentLocale = locales[name]; - locales[name] = locale; + var defaultOrdinal = '%d'; + var defaultOrdinalParse = /\d{1,2}/; - // backwards compat for now: also set the locale - locale_locales__getSetGlobalLocale(name); - } else { - // pass null for config to unupdate, useful for tests - if (locales[name] != null) { - if (locales[name].parentLocale != null) { - locales[name] = locales[name].parentLocale; - } else if (locales[name] != null) { - delete locales[name]; - } - } - } - return locales[name]; + function ordinal (number) { + return this._ordinal.replace('%d', number); } - // returns locale data - function locale_locales__getLocale (key) { - var locale; - - if (key && key._locale && key._locale._abbr) { - key = key._locale._abbr; - } - - if (!key) { - return globalLocale; - } - - if (!isArray(key)) { - //short-circuit everything else - locale = loadLocale(key); - if (locale) { - return locale; - } - key = [key]; - } + var defaultRelativeTime = { + future : 'in %s', + past : '%s ago', + s : 'a few seconds', + m : 'a minute', + mm : '%d minutes', + h : 'an hour', + hh : '%d hours', + d : 'a day', + dd : '%d days', + M : 'a month', + MM : '%d months', + y : 'a year', + yy : '%d years' + }; - return chooseLocale(key); + function relative__relativeTime (number, withoutSuffix, string, isFuture) { + var output = this._relativeTime[string]; + return (isFunction(output)) ? + output(number, withoutSuffix, string, isFuture) : + output.replace(/%d/i, number); } - function locale_locales__listLocales() { - return keys(locales); + function pastFuture (diff, output) { + var format = this._relativeTime[diff > 0 ? 'future' : 'past']; + return isFunction(format) ? format(output) : format.replace(/%s/i, output); } var aliases = {}; @@ -2065,6 +2051,23 @@ return /******/ (function(modules) { // webpackBootstrap return normalizedInput; } + var priorities = {}; + + function addUnitPriority(unit, priority) { + priorities[unit] = priority; + } + + function getPrioritizedUnits(unitsObj) { + var units = []; + for (var u in unitsObj) { + units.push({unit: u, priority: priorities[u]}); + } + units.sort(function (a, b) { + return a.priority - b.priority; + }); + return units; + } + function makeGetSet (unit, keepTime) { return function (value) { if (value != null) { @@ -2090,11 +2093,21 @@ return /******/ (function(modules) { // webpackBootstrap // MOMENTS - function getSet (units, value) { - var unit; + function stringGet (units) { + units = normalizeUnits(units); + if (isFunction(this[units])) { + return this[units](); + } + return this; + } + + + function stringSet (units, value) { if (typeof units === 'object') { - for (unit in units) { - this.set(unit, units[unit]); + units = normalizeObjectUnits(units); + var prioritized = getPrioritizedUnits(units); + for (var i = 0; i < prioritized.length; i++) { + this[prioritized[i].unit](units[prioritized[i].unit]); } } else { units = normalizeUnits(units); @@ -2334,6 +2347,10 @@ return /******/ (function(modules) { // webpackBootstrap addUnitAlias('month', 'M'); + // PRIORITY + + addUnitPriority('month', 8); + // PARSING addRegexToken('M', match1to2); @@ -2361,15 +2378,21 @@ return /******/ (function(modules) { // webpackBootstrap // LOCALES - var MONTHS_IN_FORMAT = /D[oD]?(\[[^\[\]]*\]|\s+)+MMMM?/; + var MONTHS_IN_FORMAT = /D[oD]?(\[[^\[\]]*\]|\s)+MMMM?/; var defaultLocaleMonths = 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_'); function localeMonths (m, format) { + if (!m) { + return this._months; + } return isArray(this._months) ? this._months[m.month()] : - this._months[MONTHS_IN_FORMAT.test(format) ? 'format' : 'standalone'][m.month()]; + this._months[(this._months.isFormat || MONTHS_IN_FORMAT).test(format) ? 'format' : 'standalone'][m.month()]; } var defaultLocaleMonthsShort = 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'); function localeMonthsShort (m, format) { + if (!m) { + return this._monthsShort; + } return isArray(this._monthsShort) ? this._monthsShort[m.month()] : this._monthsShort[MONTHS_IN_FORMAT.test(format) ? 'format' : 'standalone'][m.month()]; } @@ -2506,6 +2529,9 @@ return /******/ (function(modules) { // webpackBootstrap return this._monthsShortRegex; } } else { + if (!hasOwnProp(this, '_monthsShortRegex')) { + this._monthsShortRegex = defaultMonthsShortRegex; + } return this._monthsShortStrictRegex && isStrict ? this._monthsShortStrictRegex : this._monthsShortRegex; } @@ -2523,6 +2549,9 @@ return /******/ (function(modules) { // webpackBootstrap return this._monthsRegex; } } else { + if (!hasOwnProp(this, '_monthsRegex')) { + this._monthsRegex = defaultMonthsRegex; + } return this._monthsStrictRegex && isStrict ? this._monthsStrictRegex : this._monthsRegex; } @@ -2551,6 +2580,8 @@ return /******/ (function(modules) { // webpackBootstrap for (i = 0; i < 12; i++) { shortPieces[i] = regexEscape(shortPieces[i]); longPieces[i] = regexEscape(longPieces[i]); + } + for (i = 0; i < 24; i++) { mixedPieces[i] = regexEscape(mixedPieces[i]); } @@ -2560,174 +2591,6 @@ return /******/ (function(modules) { // webpackBootstrap this._monthsShortStrictRegex = new RegExp('^(' + shortPieces.join('|') + ')', 'i'); } - function checkOverflow (m) { - var overflow; - var a = m._a; - - if (a && getParsingFlags(m).overflow === -2) { - overflow = - a[MONTH] < 0 || a[MONTH] > 11 ? MONTH : - a[DATE] < 1 || a[DATE] > daysInMonth(a[YEAR], a[MONTH]) ? DATE : - a[HOUR] < 0 || a[HOUR] > 24 || (a[HOUR] === 24 && (a[MINUTE] !== 0 || a[SECOND] !== 0 || a[MILLISECOND] !== 0)) ? HOUR : - a[MINUTE] < 0 || a[MINUTE] > 59 ? MINUTE : - a[SECOND] < 0 || a[SECOND] > 59 ? SECOND : - a[MILLISECOND] < 0 || a[MILLISECOND] > 999 ? MILLISECOND : - -1; - - if (getParsingFlags(m)._overflowDayOfYear && (overflow < YEAR || overflow > DATE)) { - overflow = DATE; - } - if (getParsingFlags(m)._overflowWeeks && overflow === -1) { - overflow = WEEK; - } - if (getParsingFlags(m)._overflowWeekday && overflow === -1) { - overflow = WEEKDAY; - } - - getParsingFlags(m).overflow = overflow; - } - - return m; - } - - // iso 8601 regex - // 0000-00-00 0000-W00 or 0000-W00-0 + T + 00 or 00:00 or 00:00:00 or 00:00:00.000 + +00:00 or +0000 or +00) - var extendedIsoRegex = /^\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)?)?/; - var basicIsoRegex = /^\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)?)?/; - - var tzRegex = /Z|[+-]\d\d(?::?\d\d)?/; - - var isoDates = [ - ['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/, false], - ['YYYY-DDD', /\d{4}-\d{3}/], - ['YYYY-MM', /\d{4}-\d\d/, false], - ['YYYYYYMMDD', /[+-]\d{10}/], - ['YYYYMMDD', /\d{8}/], - // YYYYMM is NOT allowed by the standard - ['GGGG[W]WWE', /\d{4}W\d{3}/], - ['GGGG[W]WW', /\d{4}W\d{2}/, false], - ['YYYYDDD', /\d{7}/] - ]; - - // iso time formats and regexes - var isoTimes = [ - ['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/] - ]; - - var aspNetJsonRegex = /^\/?Date\((\-?\d+)/i; - - // date from iso format - function configFromISO(config) { - var i, l, - string = config._i, - match = extendedIsoRegex.exec(string) || basicIsoRegex.exec(string), - allowTime, dateFormat, timeFormat, tzFormat; - - if (match) { - getParsingFlags(config).iso = true; - - for (i = 0, l = isoDates.length; i < l; i++) { - if (isoDates[i][1].exec(match[1])) { - dateFormat = isoDates[i][0]; - allowTime = isoDates[i][2] !== false; - break; - } - } - if (dateFormat == null) { - config._isValid = false; - return; - } - if (match[3]) { - for (i = 0, l = isoTimes.length; i < l; i++) { - if (isoTimes[i][1].exec(match[3])) { - // match[2] should be 'T' or space - timeFormat = (match[2] || ' ') + isoTimes[i][0]; - break; - } - } - if (timeFormat == null) { - config._isValid = false; - return; - } - } - if (!allowTime && timeFormat != null) { - config._isValid = false; - return; - } - if (match[4]) { - if (tzRegex.exec(match[4])) { - tzFormat = 'Z'; - } else { - config._isValid = false; - return; - } - } - config._f = dateFormat + (timeFormat || '') + (tzFormat || ''); - configFromStringAndFormat(config); - } else { - config._isValid = false; - } - } - - // date from iso format or fallback - function configFromString(config) { - var matched = aspNetJsonRegex.exec(config._i); - - if (matched !== null) { - config._d = new Date(+matched[1]); - return; - } - - configFromISO(config); - if (config._isValid === false) { - delete config._isValid; - utils_hooks__hooks.createFromInputFallback(config); - } - } - - utils_hooks__hooks.createFromInputFallback = deprecate( - 'moment construction falls back to js Date. This is ' + - 'discouraged and will be removed in upcoming major ' + - 'release. Please refer to ' + - 'https://github.com/moment/moment/issues/1407 for more info.', - function (config) { - config._d = new Date(config._i + (config._useUTC ? ' UTC' : '')); - } - ); - - function createDate (y, m, d, h, M, s, ms) { - //can't just apply() to create a date: - //http://stackoverflow.com/questions/181348/instantiating-a-javascript-object-by-calling-prototype-constructor-apply - var date = new Date(y, m, d, h, M, s, ms); - - //the date constructor remaps years 0-99 to 1900-1999 - if (y < 100 && y >= 0 && isFinite(date.getFullYear())) { - date.setFullYear(y); - } - return date; - } - - function createUTCDate (y) { - var date = new Date(Date.UTC.apply(null, arguments)); - - //the Date.UTC function remaps years 0-99 to 1900-1999 - if (y < 100 && y >= 0 && isFinite(date.getUTCFullYear())) { - date.setUTCFullYear(y); - } - return date; - } - // FORMATTING addFormatToken('Y', 0, 0, function () { @@ -2747,6 +2610,10 @@ return /******/ (function(modules) { // webpackBootstrap addUnitAlias('year', 'y'); + // PRIORITIES + + addUnitPriority('year', 1); + // PARSING addRegexToken('Y', matchSigned); @@ -2790,6 +2657,28 @@ return /******/ (function(modules) { // webpackBootstrap return isLeapYear(this.year()); } + function createDate (y, m, d, h, M, s, ms) { + //can't just apply() to create a date: + //http://stackoverflow.com/questions/181348/instantiating-a-javascript-object-by-calling-prototype-constructor-apply + var date = new Date(y, m, d, h, M, s, ms); + + //the date constructor remaps years 0-99 to 1900-1999 + if (y < 100 && y >= 0 && isFinite(date.getFullYear())) { + date.setFullYear(y); + } + return date; + } + + function createUTCDate (y) { + var date = new Date(Date.UTC.apply(null, arguments)); + + //the Date.UTC function remaps years 0-99 to 1900-1999 + if (y < 100 && y >= 0 && isFinite(date.getUTCFullYear())) { + date.setUTCFullYear(y); + } + return date; + } + // start-of-first-week - start-of-year function firstWeekOffset(year, dow, doy) { var // first-week day -- which january is always in the first week (4 for iso, 1 for other) @@ -2852,6 +2741,872 @@ return /******/ (function(modules) { // webpackBootstrap return (daysInYear(year) - weekOffset + weekOffsetNext) / 7; } + // FORMATTING + + addFormatToken('w', ['ww', 2], 'wo', 'week'); + addFormatToken('W', ['WW', 2], 'Wo', 'isoWeek'); + + // ALIASES + + addUnitAlias('week', 'w'); + addUnitAlias('isoWeek', 'W'); + + // PRIORITIES + + addUnitPriority('week', 5); + addUnitPriority('isoWeek', 5); + + // PARSING + + addRegexToken('w', match1to2); + addRegexToken('ww', match1to2, match2); + addRegexToken('W', match1to2); + addRegexToken('WW', match1to2, match2); + + addWeekParseToken(['w', 'ww', 'W', 'WW'], function (input, week, config, token) { + week[token.substr(0, 1)] = toInt(input); + }); + + // HELPERS + + // LOCALES + + function localeWeek (mom) { + return weekOfYear(mom, this._week.dow, this._week.doy).week; + } + + var defaultLocaleWeek = { + dow : 0, // Sunday is the first day of the week. + doy : 6 // The week that contains Jan 1st is the first week of the year. + }; + + function localeFirstDayOfWeek () { + return this._week.dow; + } + + function localeFirstDayOfYear () { + return this._week.doy; + } + + // MOMENTS + + function getSetWeek (input) { + var week = this.localeData().week(this); + return input == null ? week : this.add((input - week) * 7, 'd'); + } + + function getSetISOWeek (input) { + var week = weekOfYear(this, 1, 4).week; + return input == null ? week : this.add((input - week) * 7, 'd'); + } + + // FORMATTING + + addFormatToken('d', 0, 'do', 'day'); + + addFormatToken('dd', 0, 0, function (format) { + return this.localeData().weekdaysMin(this, format); + }); + + addFormatToken('ddd', 0, 0, function (format) { + return this.localeData().weekdaysShort(this, format); + }); + + addFormatToken('dddd', 0, 0, function (format) { + return this.localeData().weekdays(this, format); + }); + + addFormatToken('e', 0, 0, 'weekday'); + addFormatToken('E', 0, 0, 'isoWeekday'); + + // ALIASES + + addUnitAlias('day', 'd'); + addUnitAlias('weekday', 'e'); + addUnitAlias('isoWeekday', 'E'); + + // PRIORITY + addUnitPriority('day', 11); + addUnitPriority('weekday', 11); + addUnitPriority('isoWeekday', 11); + + // PARSING + + addRegexToken('d', match1to2); + addRegexToken('e', match1to2); + addRegexToken('E', match1to2); + addRegexToken('dd', function (isStrict, locale) { + return locale.weekdaysMinRegex(isStrict); + }); + addRegexToken('ddd', function (isStrict, locale) { + return locale.weekdaysShortRegex(isStrict); + }); + addRegexToken('dddd', function (isStrict, locale) { + return locale.weekdaysRegex(isStrict); + }); + + addWeekParseToken(['dd', 'ddd', 'dddd'], function (input, week, config, token) { + var weekday = config._locale.weekdaysParse(input, token, config._strict); + // if we didn't get a weekday name, mark the date as invalid + if (weekday != null) { + week.d = weekday; + } else { + getParsingFlags(config).invalidWeekday = input; + } + }); + + addWeekParseToken(['d', 'e', 'E'], function (input, week, config, token) { + week[token] = toInt(input); + }); + + // HELPERS + + function parseWeekday(input, locale) { + if (typeof input !== 'string') { + return input; + } + + if (!isNaN(input)) { + return parseInt(input, 10); + } + + input = locale.weekdaysParse(input); + if (typeof input === 'number') { + return input; + } + + return null; + } + + function parseIsoWeekday(input, locale) { + if (typeof input === 'string') { + return locale.weekdaysParse(input) % 7 || 7; + } + return isNaN(input) ? null : input; + } + + // LOCALES + + var defaultLocaleWeekdays = 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'); + function localeWeekdays (m, format) { + if (!m) { + return this._weekdays; + } + return isArray(this._weekdays) ? this._weekdays[m.day()] : + this._weekdays[this._weekdays.isFormat.test(format) ? 'format' : 'standalone'][m.day()]; + } + + var defaultLocaleWeekdaysShort = 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'); + function localeWeekdaysShort (m) { + return (m) ? this._weekdaysShort[m.day()] : this._weekdaysShort; + } + + var defaultLocaleWeekdaysMin = 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'); + function localeWeekdaysMin (m) { + return (m) ? this._weekdaysMin[m.day()] : this._weekdaysMin; + } + + function day_of_week__handleStrictParse(weekdayName, format, strict) { + var i, ii, mom, llc = weekdayName.toLocaleLowerCase(); + if (!this._weekdaysParse) { + this._weekdaysParse = []; + this._shortWeekdaysParse = []; + this._minWeekdaysParse = []; + + for (i = 0; i < 7; ++i) { + mom = create_utc__createUTC([2000, 1]).day(i); + this._minWeekdaysParse[i] = this.weekdaysMin(mom, '').toLocaleLowerCase(); + this._shortWeekdaysParse[i] = this.weekdaysShort(mom, '').toLocaleLowerCase(); + this._weekdaysParse[i] = this.weekdays(mom, '').toLocaleLowerCase(); + } + } + + if (strict) { + if (format === 'dddd') { + ii = indexOf.call(this._weekdaysParse, llc); + return ii !== -1 ? ii : null; + } else if (format === 'ddd') { + ii = indexOf.call(this._shortWeekdaysParse, llc); + return ii !== -1 ? ii : null; + } else { + ii = indexOf.call(this._minWeekdaysParse, llc); + return ii !== -1 ? ii : null; + } + } else { + if (format === 'dddd') { + ii = indexOf.call(this._weekdaysParse, llc); + if (ii !== -1) { + return ii; + } + ii = indexOf.call(this._shortWeekdaysParse, llc); + if (ii !== -1) { + return ii; + } + ii = indexOf.call(this._minWeekdaysParse, llc); + return ii !== -1 ? ii : null; + } else if (format === 'ddd') { + ii = indexOf.call(this._shortWeekdaysParse, llc); + if (ii !== -1) { + return ii; + } + ii = indexOf.call(this._weekdaysParse, llc); + if (ii !== -1) { + return ii; + } + ii = indexOf.call(this._minWeekdaysParse, llc); + return ii !== -1 ? ii : null; + } else { + ii = indexOf.call(this._minWeekdaysParse, llc); + if (ii !== -1) { + return ii; + } + ii = indexOf.call(this._weekdaysParse, llc); + if (ii !== -1) { + return ii; + } + ii = indexOf.call(this._shortWeekdaysParse, llc); + return ii !== -1 ? ii : null; + } + } + } + + function localeWeekdaysParse (weekdayName, format, strict) { + var i, mom, regex; + + if (this._weekdaysParseExact) { + return day_of_week__handleStrictParse.call(this, weekdayName, format, strict); + } + + if (!this._weekdaysParse) { + this._weekdaysParse = []; + this._minWeekdaysParse = []; + this._shortWeekdaysParse = []; + this._fullWeekdaysParse = []; + } + + for (i = 0; i < 7; i++) { + // make the regex if we don't have it already + + mom = create_utc__createUTC([2000, 1]).day(i); + if (strict && !this._fullWeekdaysParse[i]) { + this._fullWeekdaysParse[i] = new RegExp('^' + this.weekdays(mom, '').replace('.', '\.?') + '$', 'i'); + this._shortWeekdaysParse[i] = new RegExp('^' + this.weekdaysShort(mom, '').replace('.', '\.?') + '$', 'i'); + this._minWeekdaysParse[i] = new RegExp('^' + this.weekdaysMin(mom, '').replace('.', '\.?') + '$', 'i'); + } + if (!this._weekdaysParse[i]) { + regex = '^' + this.weekdays(mom, '') + '|^' + this.weekdaysShort(mom, '') + '|^' + this.weekdaysMin(mom, ''); + this._weekdaysParse[i] = new RegExp(regex.replace('.', ''), 'i'); + } + // test the regex + if (strict && format === 'dddd' && this._fullWeekdaysParse[i].test(weekdayName)) { + return i; + } else if (strict && format === 'ddd' && this._shortWeekdaysParse[i].test(weekdayName)) { + return i; + } else if (strict && format === 'dd' && this._minWeekdaysParse[i].test(weekdayName)) { + return i; + } else if (!strict && this._weekdaysParse[i].test(weekdayName)) { + return i; + } + } + } + + // MOMENTS + + function getSetDayOfWeek (input) { + if (!this.isValid()) { + return input != null ? this : NaN; + } + var day = this._isUTC ? this._d.getUTCDay() : this._d.getDay(); + if (input != null) { + input = parseWeekday(input, this.localeData()); + return this.add(input - day, 'd'); + } else { + return day; + } + } + + function getSetLocaleDayOfWeek (input) { + if (!this.isValid()) { + return input != null ? this : NaN; + } + var weekday = (this.day() + 7 - this.localeData()._week.dow) % 7; + return input == null ? weekday : this.add(input - weekday, 'd'); + } + + function getSetISODayOfWeek (input) { + if (!this.isValid()) { + return input != null ? this : NaN; + } + + // behaves the same as moment#day except + // as a getter, returns 7 instead of 0 (1-7 range instead of 0-6) + // as a setter, sunday should belong to the previous week. + + if (input != null) { + var weekday = parseIsoWeekday(input, this.localeData()); + return this.day(this.day() % 7 ? weekday : weekday - 7); + } else { + return this.day() || 7; + } + } + + var defaultWeekdaysRegex = matchWord; + function weekdaysRegex (isStrict) { + if (this._weekdaysParseExact) { + if (!hasOwnProp(this, '_weekdaysRegex')) { + computeWeekdaysParse.call(this); + } + if (isStrict) { + return this._weekdaysStrictRegex; + } else { + return this._weekdaysRegex; + } + } else { + if (!hasOwnProp(this, '_weekdaysRegex')) { + this._weekdaysRegex = defaultWeekdaysRegex; + } + return this._weekdaysStrictRegex && isStrict ? + this._weekdaysStrictRegex : this._weekdaysRegex; + } + } + + var defaultWeekdaysShortRegex = matchWord; + function weekdaysShortRegex (isStrict) { + if (this._weekdaysParseExact) { + if (!hasOwnProp(this, '_weekdaysRegex')) { + computeWeekdaysParse.call(this); + } + if (isStrict) { + return this._weekdaysShortStrictRegex; + } else { + return this._weekdaysShortRegex; + } + } else { + if (!hasOwnProp(this, '_weekdaysShortRegex')) { + this._weekdaysShortRegex = defaultWeekdaysShortRegex; + } + return this._weekdaysShortStrictRegex && isStrict ? + this._weekdaysShortStrictRegex : this._weekdaysShortRegex; + } + } + + var defaultWeekdaysMinRegex = matchWord; + function weekdaysMinRegex (isStrict) { + if (this._weekdaysParseExact) { + if (!hasOwnProp(this, '_weekdaysRegex')) { + computeWeekdaysParse.call(this); + } + if (isStrict) { + return this._weekdaysMinStrictRegex; + } else { + return this._weekdaysMinRegex; + } + } else { + if (!hasOwnProp(this, '_weekdaysMinRegex')) { + this._weekdaysMinRegex = defaultWeekdaysMinRegex; + } + return this._weekdaysMinStrictRegex && isStrict ? + this._weekdaysMinStrictRegex : this._weekdaysMinRegex; + } + } + + + function computeWeekdaysParse () { + function cmpLenRev(a, b) { + return b.length - a.length; + } + + var minPieces = [], shortPieces = [], longPieces = [], mixedPieces = [], + i, mom, minp, shortp, longp; + for (i = 0; i < 7; i++) { + // make the regex if we don't have it already + mom = create_utc__createUTC([2000, 1]).day(i); + minp = this.weekdaysMin(mom, ''); + shortp = this.weekdaysShort(mom, ''); + longp = this.weekdays(mom, ''); + minPieces.push(minp); + shortPieces.push(shortp); + longPieces.push(longp); + mixedPieces.push(minp); + mixedPieces.push(shortp); + mixedPieces.push(longp); + } + // Sorting makes sure if one weekday (or abbr) is a prefix of another it + // will match the longer piece. + minPieces.sort(cmpLenRev); + shortPieces.sort(cmpLenRev); + longPieces.sort(cmpLenRev); + mixedPieces.sort(cmpLenRev); + for (i = 0; i < 7; i++) { + shortPieces[i] = regexEscape(shortPieces[i]); + longPieces[i] = regexEscape(longPieces[i]); + mixedPieces[i] = regexEscape(mixedPieces[i]); + } + + this._weekdaysRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i'); + this._weekdaysShortRegex = this._weekdaysRegex; + this._weekdaysMinRegex = this._weekdaysRegex; + + this._weekdaysStrictRegex = new RegExp('^(' + longPieces.join('|') + ')', 'i'); + this._weekdaysShortStrictRegex = new RegExp('^(' + shortPieces.join('|') + ')', 'i'); + this._weekdaysMinStrictRegex = new RegExp('^(' + minPieces.join('|') + ')', 'i'); + } + + // FORMATTING + + function hFormat() { + return this.hours() % 12 || 12; + } + + function kFormat() { + return this.hours() || 24; + } + + addFormatToken('H', ['HH', 2], 0, 'hour'); + addFormatToken('h', ['hh', 2], 0, hFormat); + addFormatToken('k', ['kk', 2], 0, kFormat); + + addFormatToken('hmm', 0, 0, function () { + return '' + hFormat.apply(this) + zeroFill(this.minutes(), 2); + }); + + addFormatToken('hmmss', 0, 0, function () { + return '' + hFormat.apply(this) + zeroFill(this.minutes(), 2) + + zeroFill(this.seconds(), 2); + }); + + addFormatToken('Hmm', 0, 0, function () { + return '' + this.hours() + zeroFill(this.minutes(), 2); + }); + + addFormatToken('Hmmss', 0, 0, function () { + return '' + this.hours() + zeroFill(this.minutes(), 2) + + zeroFill(this.seconds(), 2); + }); + + function meridiem (token, lowercase) { + addFormatToken(token, 0, 0, function () { + return this.localeData().meridiem(this.hours(), this.minutes(), lowercase); + }); + } + + meridiem('a', true); + meridiem('A', false); + + // ALIASES + + addUnitAlias('hour', 'h'); + + // PRIORITY + addUnitPriority('hour', 13); + + // PARSING + + function matchMeridiem (isStrict, locale) { + return locale._meridiemParse; + } + + addRegexToken('a', matchMeridiem); + addRegexToken('A', matchMeridiem); + addRegexToken('H', match1to2); + addRegexToken('h', match1to2); + addRegexToken('HH', match1to2, match2); + addRegexToken('hh', match1to2, match2); + + addRegexToken('hmm', match3to4); + addRegexToken('hmmss', match5to6); + addRegexToken('Hmm', match3to4); + addRegexToken('Hmmss', match5to6); + + addParseToken(['H', 'HH'], HOUR); + addParseToken(['a', 'A'], function (input, array, config) { + config._isPm = config._locale.isPM(input); + config._meridiem = input; + }); + addParseToken(['h', 'hh'], function (input, array, config) { + array[HOUR] = toInt(input); + getParsingFlags(config).bigHour = true; + }); + addParseToken('hmm', function (input, array, config) { + var pos = input.length - 2; + array[HOUR] = toInt(input.substr(0, pos)); + array[MINUTE] = toInt(input.substr(pos)); + getParsingFlags(config).bigHour = true; + }); + addParseToken('hmmss', function (input, array, config) { + var pos1 = input.length - 4; + var pos2 = input.length - 2; + array[HOUR] = toInt(input.substr(0, pos1)); + array[MINUTE] = toInt(input.substr(pos1, 2)); + array[SECOND] = toInt(input.substr(pos2)); + getParsingFlags(config).bigHour = true; + }); + addParseToken('Hmm', function (input, array, config) { + var pos = input.length - 2; + array[HOUR] = toInt(input.substr(0, pos)); + array[MINUTE] = toInt(input.substr(pos)); + }); + addParseToken('Hmmss', function (input, array, config) { + var pos1 = input.length - 4; + var pos2 = input.length - 2; + array[HOUR] = toInt(input.substr(0, pos1)); + array[MINUTE] = toInt(input.substr(pos1, 2)); + array[SECOND] = toInt(input.substr(pos2)); + }); + + // LOCALES + + function localeIsPM (input) { + // IE8 Quirks Mode & IE7 Standards Mode do not allow accessing strings like arrays + // Using charAt should be more compatible. + return ((input + '').toLowerCase().charAt(0) === 'p'); + } + + var defaultLocaleMeridiemParse = /[ap]\.?m?\.?/i; + function localeMeridiem (hours, minutes, isLower) { + if (hours > 11) { + return isLower ? 'pm' : 'PM'; + } else { + return isLower ? 'am' : 'AM'; + } + } + + + // MOMENTS + + // Setting the hour should keep the time, because the user explicitly + // specified which hour he wants. So trying to maintain the same hour (in + // a new timezone) makes sense. Adding/subtracting hours does not follow + // this rule. + var getSetHour = makeGetSet('Hours', true); + + var baseConfig = { + calendar: defaultCalendar, + longDateFormat: defaultLongDateFormat, + invalidDate: defaultInvalidDate, + ordinal: defaultOrdinal, + ordinalParse: defaultOrdinalParse, + relativeTime: defaultRelativeTime, + + months: defaultLocaleMonths, + monthsShort: defaultLocaleMonthsShort, + + week: defaultLocaleWeek, + + weekdays: defaultLocaleWeekdays, + weekdaysMin: defaultLocaleWeekdaysMin, + weekdaysShort: defaultLocaleWeekdaysShort, + + meridiemParse: defaultLocaleMeridiemParse + }; + + // internal storage for locale config files + var locales = {}; + var globalLocale; + + function normalizeLocale(key) { + return key ? key.toLowerCase().replace('_', '-') : key; + } + + // pick the locale from the array + // try ['en-au', 'en-gb'] as 'en-au', 'en-gb', 'en', as in move through the list trying each + // substring from most specific to least, but move to the next array item if it's a more specific variant than the current root + function chooseLocale(names) { + var i = 0, j, next, locale, split; + + while (i < names.length) { + split = normalizeLocale(names[i]).split('-'); + j = split.length; + next = normalizeLocale(names[i + 1]); + next = next ? next.split('-') : null; + while (j > 0) { + locale = loadLocale(split.slice(0, j).join('-')); + if (locale) { + return locale; + } + if (next && next.length >= j && compareArrays(split, next, true) >= j - 1) { + //the next array item is better than a shallower substring of this one + break; + } + j--; + } + i++; + } + return null; + } + + function loadLocale(name) { + var oldLocale = null; + // TODO: Find a better way to register and load all the locales in Node + if (!locales[name] && (typeof module !== 'undefined') && + module && module.exports) { + try { + oldLocale = globalLocale._abbr; + !(function webpackMissingModule() { var e = new Error("Cannot find module \"./locale\""); e.code = 'MODULE_NOT_FOUND'; throw e; }()); + // because defineLocale currently also sets the global locale, we + // want to undo that for lazy loaded locales + locale_locales__getSetGlobalLocale(oldLocale); + } catch (e) { } + } + return locales[name]; + } + + // This function will load locale and then set the global locale. If + // no arguments are passed in, it will simply return the current global + // locale key. + function locale_locales__getSetGlobalLocale (key, values) { + var data; + if (key) { + if (isUndefined(values)) { + data = locale_locales__getLocale(key); + } + else { + data = defineLocale(key, values); + } + + if (data) { + // moment.duration._locale = moment._locale = data; + globalLocale = data; + } + } + + return globalLocale._abbr; + } + + function defineLocale (name, config) { + if (config !== null) { + var parentConfig = baseConfig; + config.abbr = name; + if (locales[name] != null) { + deprecateSimple('defineLocaleOverride', + 'use moment.updateLocale(localeName, config) to change ' + + 'an existing locale. moment.defineLocale(localeName, ' + + 'config) should only be used for creating a new locale ' + + 'See http://momentjs.com/guides/#/warnings/define-locale/ for more info.'); + parentConfig = locales[name]._config; + } else if (config.parentLocale != null) { + if (locales[config.parentLocale] != null) { + parentConfig = locales[config.parentLocale]._config; + } else { + // treat as if there is no base config + deprecateSimple('parentLocaleUndefined', + 'specified parentLocale is not defined yet. See http://momentjs.com/guides/#/warnings/parent-locale/'); + } + } + locales[name] = new Locale(mergeConfigs(parentConfig, config)); + + // backwards compat for now: also set the locale + locale_locales__getSetGlobalLocale(name); + + return locales[name]; + } else { + // useful for testing + delete locales[name]; + return null; + } + } + + function updateLocale(name, config) { + if (config != null) { + var locale, parentConfig = baseConfig; + // MERGE + if (locales[name] != null) { + parentConfig = locales[name]._config; + } + config = mergeConfigs(parentConfig, config); + locale = new Locale(config); + locale.parentLocale = locales[name]; + locales[name] = locale; + + // backwards compat for now: also set the locale + locale_locales__getSetGlobalLocale(name); + } else { + // pass null for config to unupdate, useful for tests + if (locales[name] != null) { + if (locales[name].parentLocale != null) { + locales[name] = locales[name].parentLocale; + } else if (locales[name] != null) { + delete locales[name]; + } + } + } + return locales[name]; + } + + // returns locale data + function locale_locales__getLocale (key) { + var locale; + + if (key && key._locale && key._locale._abbr) { + key = key._locale._abbr; + } + + if (!key) { + return globalLocale; + } + + if (!isArray(key)) { + //short-circuit everything else + locale = loadLocale(key); + if (locale) { + return locale; + } + key = [key]; + } + + return chooseLocale(key); + } + + function locale_locales__listLocales() { + return keys(locales); + } + + function checkOverflow (m) { + var overflow; + var a = m._a; + + if (a && getParsingFlags(m).overflow === -2) { + overflow = + a[MONTH] < 0 || a[MONTH] > 11 ? MONTH : + a[DATE] < 1 || a[DATE] > daysInMonth(a[YEAR], a[MONTH]) ? DATE : + a[HOUR] < 0 || a[HOUR] > 24 || (a[HOUR] === 24 && (a[MINUTE] !== 0 || a[SECOND] !== 0 || a[MILLISECOND] !== 0)) ? HOUR : + a[MINUTE] < 0 || a[MINUTE] > 59 ? MINUTE : + a[SECOND] < 0 || a[SECOND] > 59 ? SECOND : + a[MILLISECOND] < 0 || a[MILLISECOND] > 999 ? MILLISECOND : + -1; + + if (getParsingFlags(m)._overflowDayOfYear && (overflow < YEAR || overflow > DATE)) { + overflow = DATE; + } + if (getParsingFlags(m)._overflowWeeks && overflow === -1) { + overflow = WEEK; + } + if (getParsingFlags(m)._overflowWeekday && overflow === -1) { + overflow = WEEKDAY; + } + + getParsingFlags(m).overflow = overflow; + } + + return m; + } + + // iso 8601 regex + // 0000-00-00 0000-W00 or 0000-W00-0 + T + 00 or 00:00 or 00:00:00 or 00:00:00.000 + +00:00 or +0000 or +00) + var extendedIsoRegex = /^\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)?)?/; + var basicIsoRegex = /^\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)?)?/; + + var tzRegex = /Z|[+-]\d\d(?::?\d\d)?/; + + var isoDates = [ + ['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/, false], + ['YYYY-DDD', /\d{4}-\d{3}/], + ['YYYY-MM', /\d{4}-\d\d/, false], + ['YYYYYYMMDD', /[+-]\d{10}/], + ['YYYYMMDD', /\d{8}/], + // YYYYMM is NOT allowed by the standard + ['GGGG[W]WWE', /\d{4}W\d{3}/], + ['GGGG[W]WW', /\d{4}W\d{2}/, false], + ['YYYYDDD', /\d{7}/] + ]; + + // iso time formats and regexes + var isoTimes = [ + ['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/] + ]; + + var aspNetJsonRegex = /^\/?Date\((\-?\d+)/i; + + // date from iso format + function configFromISO(config) { + var i, l, + string = config._i, + match = extendedIsoRegex.exec(string) || basicIsoRegex.exec(string), + allowTime, dateFormat, timeFormat, tzFormat; + + if (match) { + getParsingFlags(config).iso = true; + + for (i = 0, l = isoDates.length; i < l; i++) { + if (isoDates[i][1].exec(match[1])) { + dateFormat = isoDates[i][0]; + allowTime = isoDates[i][2] !== false; + break; + } + } + if (dateFormat == null) { + config._isValid = false; + return; + } + if (match[3]) { + for (i = 0, l = isoTimes.length; i < l; i++) { + if (isoTimes[i][1].exec(match[3])) { + // match[2] should be 'T' or space + timeFormat = (match[2] || ' ') + isoTimes[i][0]; + break; + } + } + if (timeFormat == null) { + config._isValid = false; + return; + } + } + if (!allowTime && timeFormat != null) { + config._isValid = false; + return; + } + if (match[4]) { + if (tzRegex.exec(match[4])) { + tzFormat = 'Z'; + } else { + config._isValid = false; + return; + } + } + config._f = dateFormat + (timeFormat || '') + (tzFormat || ''); + configFromStringAndFormat(config); + } else { + config._isValid = false; + } + } + + // date from iso format or fallback + function configFromString(config) { + var matched = aspNetJsonRegex.exec(config._i); + + if (matched !== null) { + config._d = new Date(+matched[1]); + return; + } + + configFromISO(config); + if (config._isValid === false) { + delete config._isValid; + utils_hooks__hooks.createFromInputFallback(config); + } + } + + utils_hooks__hooks.createFromInputFallback = deprecate( + 'value provided is not in a recognized ISO format. moment construction falls back to js Date(), ' + + 'which is not reliable across all browsers and versions. Non ISO date formats are ' + + 'discouraged and will be removed in an upcoming major release. Please refer to ' + + 'http://momentjs.com/guides/#/warnings/js-date/ for more info.', + function (config) { + config._d = new Date(config._i + (config._useUTC ? ' UTC' : '')); + } + ); + // Pick the first defined of two or three arguments. function defaults(a, b, c) { if (a != null) { @@ -3048,9 +3803,9 @@ return /******/ (function(modules) { // webpackBootstrap } // clear _12h flag if hour is <= 12 - if (getParsingFlags(config).bigHour === true && - config._a[HOUR] <= 12 && - config._a[HOUR] > 0) { + if (config._a[HOUR] <= 12 && + getParsingFlags(config).bigHour === true && + config._a[HOUR] > 0) { getParsingFlags(config).bigHour = undefined; } @@ -3176,11 +3931,11 @@ return /******/ (function(modules) { // webpackBootstrap return new Moment(checkOverflow(input)); } else if (isArray(format)) { configFromStringAndArray(config); - } else if (format) { - configFromStringAndFormat(config); } else if (isDate(input)) { config._d = input; - } else { + } else if (format) { + configFromStringAndFormat(config); + } else { configFromInput(config); } @@ -3221,6 +3976,11 @@ return /******/ (function(modules) { // webpackBootstrap strict = locale; locale = undefined; } + + if ((isObject(input) && isObjectEmpty(input)) || + (isArray(input) && input.length === 0)) { + input = undefined; + } // object construction must be done this way. // https://github.com/moment/moment/issues/1423 c._isAMomentObject = true; @@ -3238,19 +3998,19 @@ return /******/ (function(modules) { // webpackBootstrap } var prototypeMin = deprecate( - 'moment().min is deprecated, use moment.max instead. https://github.com/moment/moment/issues/1548', - function () { - var other = local__createLocal.apply(null, arguments); - if (this.isValid() && other.isValid()) { - return other < this ? this : other; - } else { - return valid__createInvalid(); - } - } - ); + 'moment().min is deprecated, use moment.max instead. http://momentjs.com/guides/#/warnings/min-max/', + function () { + var other = local__createLocal.apply(null, arguments); + if (this.isValid() && other.isValid()) { + return other < this ? this : other; + } else { + return valid__createInvalid(); + } + } + ); var prototypeMax = deprecate( - 'moment().max is deprecated, use moment.min instead. https://github.com/moment/moment/issues/1548', + 'moment().max is deprecated, use moment.min instead. http://momentjs.com/guides/#/warnings/min-max/', function () { var other = local__createLocal.apply(null, arguments); if (this.isValid() && other.isValid()) { @@ -3339,6 +4099,14 @@ return /******/ (function(modules) { // webpackBootstrap return obj instanceof Duration; } + function absRound (number) { + if (number < 0) { + return Math.round(-1 * number) * -1; + } else { + return Math.round(number); + } + } + // FORMATTING function offset (token, separator) { @@ -3489,7 +4257,13 @@ return /******/ (function(modules) { // webpackBootstrap if (this._tzm) { this.utcOffset(this._tzm); } else if (typeof this._i === 'string') { - this.utcOffset(offsetFromString(matchOffset, this._i)); + var tZone = offsetFromString(matchOffset, this._i); + + if (tZone === 0) { + this.utcOffset(0, true); + } else { + this.utcOffset(offsetFromString(matchOffset, this._i)); + } } return this; } @@ -3544,7 +4318,7 @@ return /******/ (function(modules) { // webpackBootstrap } // ASP.NET json date format regex - var aspNetRegex = /^(\-)?(?:(\d*)[. ])?(\d+)\:(\d+)(?:\:(\d+)\.?(\d{3})?\d*)?$/; + var aspNetRegex = /^(\-)?(?:(\d*)[. ])?(\d+)\:(\d+)(?:\:(\d+)(\.\d*)?)?$/; // from http://docs.closure-library.googlecode.com/git/closure_goog_date_date.js.source.html // somewhat more in line with 4.4.3.2 2004 spec, but allows decimal anywhere @@ -3576,11 +4350,11 @@ return /******/ (function(modules) { // webpackBootstrap sign = (match[1] === '-') ? -1 : 1; duration = { y : 0, - d : toInt(match[DATE]) * sign, - h : toInt(match[HOUR]) * sign, - m : toInt(match[MINUTE]) * sign, - s : toInt(match[SECOND]) * sign, - ms : toInt(match[MILLISECOND]) * sign + d : toInt(match[DATE]) * sign, + h : toInt(match[HOUR]) * sign, + m : toInt(match[MINUTE]) * sign, + s : toInt(match[SECOND]) * sign, + ms : toInt(absRound(match[MILLISECOND] * 1000)) * sign // the millisecond decimal point is included in the match }; } else if (!!(match = isoRegex.exec(input))) { sign = (match[1] === '-') ? -1 : 1; @@ -3655,21 +4429,14 @@ return /******/ (function(modules) { // webpackBootstrap return res; } - function absRound (number) { - if (number < 0) { - return Math.round(-1 * number) * -1; - } else { - return Math.round(number); - } - } - // TODO: remove 'name' arg after deprecation is removed function createAdder(direction, name) { return function (val, period) { var dur, tmp; //invert the arguments, but complain about it if (period !== null && !isNaN(+period)) { - deprecateSimple(name, 'moment().' + name + '(period, number) is deprecated. Please use moment().' + name + '(number, period).'); + deprecateSimple(name, 'moment().' + name + '(period, number) is deprecated. Please use moment().' + name + '(number, period). ' + + 'See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info.'); tmp = val; val = period; period = tmp; } @@ -3709,20 +4476,24 @@ return /******/ (function(modules) { // webpackBootstrap var add_subtract__add = createAdder(1, 'add'); var add_subtract__subtract = createAdder(-1, 'subtract'); - function moment_calendar__calendar (time, formats) { - // We want to compare the start of today, vs this. - // Getting start-of-today depends on whether we're local/utc/offset or not. - var now = time || local__createLocal(), - sod = cloneWithOffset(now, this).startOf('day'), - diff = this.diff(sod, 'days', true), - format = diff < -6 ? 'sameElse' : + function getCalendarFormat(myMoment, now) { + var diff = myMoment.diff(now, 'days', true); + return diff < -6 ? 'sameElse' : diff < -1 ? 'lastWeek' : diff < 0 ? 'lastDay' : diff < 1 ? 'sameDay' : diff < 2 ? 'nextDay' : diff < 7 ? 'nextWeek' : 'sameElse'; + } - var output = formats && (isFunction(formats[format]) ? formats[format]() : formats[format]); + function moment_calendar__calendar (time, formats) { + // We want to compare the start of today, vs this. + // Getting start-of-today depends on whether we're local/utc/offset or not. + var now = time || local__createLocal(), + sod = cloneWithOffset(now, this).startOf('day'), + format = utils_hooks__hooks.calendarFormat(this, sod) || 'sameElse'; + + var output = formats && (isFunction(formats[format]) ? formats[format].call(this, now) : formats[format]); return this.format(output || this.localeData().calendar(format, this, local__createLocal(now))); } @@ -3939,27 +4710,27 @@ return /******/ (function(modules) { // webpackBootstrap // the following switch intentionally omits break keywords // to utilize falling through the cases. switch (units) { - case 'year': - this.month(0); - /* falls through */ - case 'quarter': - case 'month': - this.date(1); - /* falls through */ - case 'week': - case 'isoWeek': - case 'day': - case 'date': - this.hours(0); - /* falls through */ - case 'hour': - this.minutes(0); - /* falls through */ - case 'minute': - this.seconds(0); - /* falls through */ - case 'second': - this.milliseconds(0); + case 'year': + this.month(0); + /* falls through */ + case 'quarter': + case 'month': + this.date(1); + /* falls through */ + case 'week': + case 'isoWeek': + case 'day': + case 'date': + this.hours(0); + /* falls through */ + case 'hour': + this.minutes(0); + /* falls through */ + case 'minute': + this.seconds(0); + /* falls through */ + case 'second': + this.milliseconds(0); } // weeks are a special case @@ -4001,7 +4772,7 @@ return /******/ (function(modules) { // webpackBootstrap } function toDate () { - return this._offset ? new Date(this.valueOf()) : this._d; + return new Date(this.valueOf()); } function toArray () { @@ -4066,650 +4837,166 @@ return /******/ (function(modules) { // webpackBootstrap addWeekYearFormatToken('gggg', 'weekYear'); addWeekYearFormatToken('ggggg', 'weekYear'); addWeekYearFormatToken('GGGG', 'isoWeekYear'); - addWeekYearFormatToken('GGGGG', 'isoWeekYear'); - - // ALIASES - - addUnitAlias('weekYear', 'gg'); - addUnitAlias('isoWeekYear', 'GG'); - - // PARSING - - addRegexToken('G', matchSigned); - addRegexToken('g', matchSigned); - addRegexToken('GG', match1to2, match2); - addRegexToken('gg', match1to2, match2); - addRegexToken('GGGG', match1to4, match4); - addRegexToken('gggg', match1to4, match4); - addRegexToken('GGGGG', match1to6, match6); - addRegexToken('ggggg', match1to6, match6); - - addWeekParseToken(['gggg', 'ggggg', 'GGGG', 'GGGGG'], function (input, week, config, token) { - week[token.substr(0, 2)] = toInt(input); - }); - - addWeekParseToken(['gg', 'GG'], function (input, week, config, token) { - week[token] = utils_hooks__hooks.parseTwoDigitYear(input); - }); - - // MOMENTS - - function getSetWeekYear (input) { - return getSetWeekYearHelper.call(this, - input, - this.week(), - this.weekday(), - this.localeData()._week.dow, - this.localeData()._week.doy); - } - - function getSetISOWeekYear (input) { - return getSetWeekYearHelper.call(this, - input, this.isoWeek(), this.isoWeekday(), 1, 4); - } - - function getISOWeeksInYear () { - return weeksInYear(this.year(), 1, 4); - } - - function getWeeksInYear () { - var weekInfo = this.localeData()._week; - return weeksInYear(this.year(), weekInfo.dow, weekInfo.doy); - } - - function getSetWeekYearHelper(input, week, weekday, dow, doy) { - var weeksTarget; - if (input == null) { - return weekOfYear(this, dow, doy).year; - } else { - weeksTarget = weeksInYear(input, dow, doy); - if (week > weeksTarget) { - week = weeksTarget; - } - return setWeekAll.call(this, input, week, weekday, dow, doy); - } - } - - function setWeekAll(weekYear, week, weekday, dow, doy) { - var dayOfYearData = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy), - date = createUTCDate(dayOfYearData.year, 0, dayOfYearData.dayOfYear); - - this.year(date.getUTCFullYear()); - this.month(date.getUTCMonth()); - this.date(date.getUTCDate()); - return this; - } - - // FORMATTING - - addFormatToken('Q', 0, 'Qo', 'quarter'); - - // ALIASES - - addUnitAlias('quarter', 'Q'); - - // PARSING - - addRegexToken('Q', match1); - addParseToken('Q', function (input, array) { - array[MONTH] = (toInt(input) - 1) * 3; - }); - - // MOMENTS - - function getSetQuarter (input) { - return input == null ? Math.ceil((this.month() + 1) / 3) : this.month((input - 1) * 3 + this.month() % 3); - } - - // FORMATTING - - addFormatToken('w', ['ww', 2], 'wo', 'week'); - addFormatToken('W', ['WW', 2], 'Wo', 'isoWeek'); - - // ALIASES - - addUnitAlias('week', 'w'); - addUnitAlias('isoWeek', 'W'); - - // PARSING - - addRegexToken('w', match1to2); - addRegexToken('ww', match1to2, match2); - addRegexToken('W', match1to2); - addRegexToken('WW', match1to2, match2); - - addWeekParseToken(['w', 'ww', 'W', 'WW'], function (input, week, config, token) { - week[token.substr(0, 1)] = toInt(input); - }); - - // HELPERS - - // LOCALES - - function localeWeek (mom) { - return weekOfYear(mom, this._week.dow, this._week.doy).week; - } - - var defaultLocaleWeek = { - dow : 0, // Sunday is the first day of the week. - doy : 6 // The week that contains Jan 1st is the first week of the year. - }; - - function localeFirstDayOfWeek () { - return this._week.dow; - } - - function localeFirstDayOfYear () { - return this._week.doy; - } - - // MOMENTS - - function getSetWeek (input) { - var week = this.localeData().week(this); - return input == null ? week : this.add((input - week) * 7, 'd'); - } - - function getSetISOWeek (input) { - var week = weekOfYear(this, 1, 4).week; - return input == null ? week : this.add((input - week) * 7, 'd'); - } - - // FORMATTING - - addFormatToken('D', ['DD', 2], 'Do', 'date'); - - // ALIASES - - addUnitAlias('date', 'D'); - - // PARSING - - addRegexToken('D', match1to2); - addRegexToken('DD', match1to2, match2); - addRegexToken('Do', function (isStrict, locale) { - return isStrict ? locale._ordinalParse : locale._ordinalParseLenient; - }); - - addParseToken(['D', 'DD'], DATE); - addParseToken('Do', function (input, array) { - array[DATE] = toInt(input.match(match1to2)[0], 10); - }); - - // MOMENTS - - var getSetDayOfMonth = makeGetSet('Date', true); - - // FORMATTING - - addFormatToken('d', 0, 'do', 'day'); - - addFormatToken('dd', 0, 0, function (format) { - return this.localeData().weekdaysMin(this, format); - }); - - addFormatToken('ddd', 0, 0, function (format) { - return this.localeData().weekdaysShort(this, format); - }); - - addFormatToken('dddd', 0, 0, function (format) { - return this.localeData().weekdays(this, format); - }); - - addFormatToken('e', 0, 0, 'weekday'); - addFormatToken('E', 0, 0, 'isoWeekday'); - - // ALIASES - - addUnitAlias('day', 'd'); - addUnitAlias('weekday', 'e'); - addUnitAlias('isoWeekday', 'E'); - - // PARSING - - addRegexToken('d', match1to2); - addRegexToken('e', match1to2); - addRegexToken('E', match1to2); - addRegexToken('dd', function (isStrict, locale) { - return locale.weekdaysMinRegex(isStrict); - }); - addRegexToken('ddd', function (isStrict, locale) { - return locale.weekdaysShortRegex(isStrict); - }); - addRegexToken('dddd', function (isStrict, locale) { - return locale.weekdaysRegex(isStrict); - }); - - addWeekParseToken(['dd', 'ddd', 'dddd'], function (input, week, config, token) { - var weekday = config._locale.weekdaysParse(input, token, config._strict); - // if we didn't get a weekday name, mark the date as invalid - if (weekday != null) { - week.d = weekday; - } else { - getParsingFlags(config).invalidWeekday = input; - } - }); - - addWeekParseToken(['d', 'e', 'E'], function (input, week, config, token) { - week[token] = toInt(input); - }); - - // HELPERS - - function parseWeekday(input, locale) { - if (typeof input !== 'string') { - return input; - } - - if (!isNaN(input)) { - return parseInt(input, 10); - } - - input = locale.weekdaysParse(input); - if (typeof input === 'number') { - return input; - } - - return null; - } - - // LOCALES - - var defaultLocaleWeekdays = 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'); - function localeWeekdays (m, format) { - return isArray(this._weekdays) ? this._weekdays[m.day()] : - this._weekdays[this._weekdays.isFormat.test(format) ? 'format' : 'standalone'][m.day()]; - } - - var defaultLocaleWeekdaysShort = 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'); - function localeWeekdaysShort (m) { - return this._weekdaysShort[m.day()]; - } - - var defaultLocaleWeekdaysMin = 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'); - function localeWeekdaysMin (m) { - return this._weekdaysMin[m.day()]; - } - - function day_of_week__handleStrictParse(weekdayName, format, strict) { - var i, ii, mom, llc = weekdayName.toLocaleLowerCase(); - if (!this._weekdaysParse) { - this._weekdaysParse = []; - this._shortWeekdaysParse = []; - this._minWeekdaysParse = []; - - for (i = 0; i < 7; ++i) { - mom = create_utc__createUTC([2000, 1]).day(i); - this._minWeekdaysParse[i] = this.weekdaysMin(mom, '').toLocaleLowerCase(); - this._shortWeekdaysParse[i] = this.weekdaysShort(mom, '').toLocaleLowerCase(); - this._weekdaysParse[i] = this.weekdays(mom, '').toLocaleLowerCase(); - } - } - - if (strict) { - if (format === 'dddd') { - ii = indexOf.call(this._weekdaysParse, llc); - return ii !== -1 ? ii : null; - } else if (format === 'ddd') { - ii = indexOf.call(this._shortWeekdaysParse, llc); - return ii !== -1 ? ii : null; - } else { - ii = indexOf.call(this._minWeekdaysParse, llc); - return ii !== -1 ? ii : null; - } - } else { - if (format === 'dddd') { - ii = indexOf.call(this._weekdaysParse, llc); - if (ii !== -1) { - return ii; - } - ii = indexOf.call(this._shortWeekdaysParse, llc); - if (ii !== -1) { - return ii; - } - ii = indexOf.call(this._minWeekdaysParse, llc); - return ii !== -1 ? ii : null; - } else if (format === 'ddd') { - ii = indexOf.call(this._shortWeekdaysParse, llc); - if (ii !== -1) { - return ii; - } - ii = indexOf.call(this._weekdaysParse, llc); - if (ii !== -1) { - return ii; - } - ii = indexOf.call(this._minWeekdaysParse, llc); - return ii !== -1 ? ii : null; - } else { - ii = indexOf.call(this._minWeekdaysParse, llc); - if (ii !== -1) { - return ii; - } - ii = indexOf.call(this._weekdaysParse, llc); - if (ii !== -1) { - return ii; - } - ii = indexOf.call(this._shortWeekdaysParse, llc); - return ii !== -1 ? ii : null; - } - } - } + addWeekYearFormatToken('GGGGG', 'isoWeekYear'); - function localeWeekdaysParse (weekdayName, format, strict) { - var i, mom, regex; + // ALIASES - if (this._weekdaysParseExact) { - return day_of_week__handleStrictParse.call(this, weekdayName, format, strict); - } + addUnitAlias('weekYear', 'gg'); + addUnitAlias('isoWeekYear', 'GG'); - if (!this._weekdaysParse) { - this._weekdaysParse = []; - this._minWeekdaysParse = []; - this._shortWeekdaysParse = []; - this._fullWeekdaysParse = []; - } + // PRIORITY - for (i = 0; i < 7; i++) { - // make the regex if we don't have it already + addUnitPriority('weekYear', 1); + addUnitPriority('isoWeekYear', 1); - mom = create_utc__createUTC([2000, 1]).day(i); - if (strict && !this._fullWeekdaysParse[i]) { - this._fullWeekdaysParse[i] = new RegExp('^' + this.weekdays(mom, '').replace('.', '\.?') + '$', 'i'); - this._shortWeekdaysParse[i] = new RegExp('^' + this.weekdaysShort(mom, '').replace('.', '\.?') + '$', 'i'); - this._minWeekdaysParse[i] = new RegExp('^' + this.weekdaysMin(mom, '').replace('.', '\.?') + '$', 'i'); - } - if (!this._weekdaysParse[i]) { - regex = '^' + this.weekdays(mom, '') + '|^' + this.weekdaysShort(mom, '') + '|^' + this.weekdaysMin(mom, ''); - this._weekdaysParse[i] = new RegExp(regex.replace('.', ''), 'i'); - } - // test the regex - if (strict && format === 'dddd' && this._fullWeekdaysParse[i].test(weekdayName)) { - return i; - } else if (strict && format === 'ddd' && this._shortWeekdaysParse[i].test(weekdayName)) { - return i; - } else if (strict && format === 'dd' && this._minWeekdaysParse[i].test(weekdayName)) { - return i; - } else if (!strict && this._weekdaysParse[i].test(weekdayName)) { - return i; - } - } - } + + // PARSING + + addRegexToken('G', matchSigned); + addRegexToken('g', matchSigned); + addRegexToken('GG', match1to2, match2); + addRegexToken('gg', match1to2, match2); + addRegexToken('GGGG', match1to4, match4); + addRegexToken('gggg', match1to4, match4); + addRegexToken('GGGGG', match1to6, match6); + addRegexToken('ggggg', match1to6, match6); + + addWeekParseToken(['gggg', 'ggggg', 'GGGG', 'GGGGG'], function (input, week, config, token) { + week[token.substr(0, 2)] = toInt(input); + }); + + addWeekParseToken(['gg', 'GG'], function (input, week, config, token) { + week[token] = utils_hooks__hooks.parseTwoDigitYear(input); + }); // MOMENTS - function getSetDayOfWeek (input) { - if (!this.isValid()) { - return input != null ? this : NaN; - } - var day = this._isUTC ? this._d.getUTCDay() : this._d.getDay(); - if (input != null) { - input = parseWeekday(input, this.localeData()); - return this.add(input - day, 'd'); - } else { - return day; - } + function getSetWeekYear (input) { + return getSetWeekYearHelper.call(this, + input, + this.week(), + this.weekday(), + this.localeData()._week.dow, + this.localeData()._week.doy); } - function getSetLocaleDayOfWeek (input) { - if (!this.isValid()) { - return input != null ? this : NaN; - } - var weekday = (this.day() + 7 - this.localeData()._week.dow) % 7; - return input == null ? weekday : this.add(input - weekday, 'd'); + function getSetISOWeekYear (input) { + return getSetWeekYearHelper.call(this, + input, this.isoWeek(), this.isoWeekday(), 1, 4); } - function getSetISODayOfWeek (input) { - if (!this.isValid()) { - return input != null ? this : NaN; - } - // behaves the same as moment#day except - // as a getter, returns 7 instead of 0 (1-7 range instead of 0-6) - // as a setter, sunday should belong to the previous week. - return input == null ? this.day() || 7 : this.day(this.day() % 7 ? input : input - 7); + function getISOWeeksInYear () { + return weeksInYear(this.year(), 1, 4); } - var defaultWeekdaysRegex = matchWord; - function weekdaysRegex (isStrict) { - if (this._weekdaysParseExact) { - if (!hasOwnProp(this, '_weekdaysRegex')) { - computeWeekdaysParse.call(this); - } - if (isStrict) { - return this._weekdaysStrictRegex; - } else { - return this._weekdaysRegex; - } - } else { - return this._weekdaysStrictRegex && isStrict ? - this._weekdaysStrictRegex : this._weekdaysRegex; - } + function getWeeksInYear () { + var weekInfo = this.localeData()._week; + return weeksInYear(this.year(), weekInfo.dow, weekInfo.doy); } - var defaultWeekdaysShortRegex = matchWord; - function weekdaysShortRegex (isStrict) { - if (this._weekdaysParseExact) { - if (!hasOwnProp(this, '_weekdaysRegex')) { - computeWeekdaysParse.call(this); - } - if (isStrict) { - return this._weekdaysShortStrictRegex; - } else { - return this._weekdaysShortRegex; - } + function getSetWeekYearHelper(input, week, weekday, dow, doy) { + var weeksTarget; + if (input == null) { + return weekOfYear(this, dow, doy).year; } else { - return this._weekdaysShortStrictRegex && isStrict ? - this._weekdaysShortStrictRegex : this._weekdaysShortRegex; - } - } - - var defaultWeekdaysMinRegex = matchWord; - function weekdaysMinRegex (isStrict) { - if (this._weekdaysParseExact) { - if (!hasOwnProp(this, '_weekdaysRegex')) { - computeWeekdaysParse.call(this); - } - if (isStrict) { - return this._weekdaysMinStrictRegex; - } else { - return this._weekdaysMinRegex; + weeksTarget = weeksInYear(input, dow, doy); + if (week > weeksTarget) { + week = weeksTarget; } - } else { - return this._weekdaysMinStrictRegex && isStrict ? - this._weekdaysMinStrictRegex : this._weekdaysMinRegex; + return setWeekAll.call(this, input, week, weekday, dow, doy); } } + function setWeekAll(weekYear, week, weekday, dow, doy) { + var dayOfYearData = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy), + date = createUTCDate(dayOfYearData.year, 0, dayOfYearData.dayOfYear); - function computeWeekdaysParse () { - function cmpLenRev(a, b) { - return b.length - a.length; - } - - var minPieces = [], shortPieces = [], longPieces = [], mixedPieces = [], - i, mom, minp, shortp, longp; - for (i = 0; i < 7; i++) { - // make the regex if we don't have it already - mom = create_utc__createUTC([2000, 1]).day(i); - minp = this.weekdaysMin(mom, ''); - shortp = this.weekdaysShort(mom, ''); - longp = this.weekdays(mom, ''); - minPieces.push(minp); - shortPieces.push(shortp); - longPieces.push(longp); - mixedPieces.push(minp); - mixedPieces.push(shortp); - mixedPieces.push(longp); - } - // Sorting makes sure if one weekday (or abbr) is a prefix of another it - // will match the longer piece. - minPieces.sort(cmpLenRev); - shortPieces.sort(cmpLenRev); - longPieces.sort(cmpLenRev); - mixedPieces.sort(cmpLenRev); - for (i = 0; i < 7; i++) { - shortPieces[i] = regexEscape(shortPieces[i]); - longPieces[i] = regexEscape(longPieces[i]); - mixedPieces[i] = regexEscape(mixedPieces[i]); - } - - this._weekdaysRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i'); - this._weekdaysShortRegex = this._weekdaysRegex; - this._weekdaysMinRegex = this._weekdaysRegex; - - this._weekdaysStrictRegex = new RegExp('^(' + longPieces.join('|') + ')', 'i'); - this._weekdaysShortStrictRegex = new RegExp('^(' + shortPieces.join('|') + ')', 'i'); - this._weekdaysMinStrictRegex = new RegExp('^(' + minPieces.join('|') + ')', 'i'); + this.year(date.getUTCFullYear()); + this.month(date.getUTCMonth()); + this.date(date.getUTCDate()); + return this; } // FORMATTING - addFormatToken('DDD', ['DDDD', 3], 'DDDo', 'dayOfYear'); + addFormatToken('Q', 0, 'Qo', 'quarter'); // ALIASES - addUnitAlias('dayOfYear', 'DDD'); + addUnitAlias('quarter', 'Q'); + + // PRIORITY + + addUnitPriority('quarter', 7); // PARSING - addRegexToken('DDD', match1to3); - addRegexToken('DDDD', match3); - addParseToken(['DDD', 'DDDD'], function (input, array, config) { - config._dayOfYear = toInt(input); + addRegexToken('Q', match1); + addParseToken('Q', function (input, array) { + array[MONTH] = (toInt(input) - 1) * 3; }); - // HELPERS - // MOMENTS - function getSetDayOfYear (input) { - var dayOfYear = Math.round((this.clone().startOf('day') - this.clone().startOf('year')) / 864e5) + 1; - return input == null ? dayOfYear : this.add((input - dayOfYear), 'd'); + function getSetQuarter (input) { + return input == null ? Math.ceil((this.month() + 1) / 3) : this.month((input - 1) * 3 + this.month() % 3); } // FORMATTING - function hFormat() { - return this.hours() % 12 || 12; - } + addFormatToken('D', ['DD', 2], 'Do', 'date'); - function kFormat() { - return this.hours() || 24; - } + // ALIASES - addFormatToken('H', ['HH', 2], 0, 'hour'); - addFormatToken('h', ['hh', 2], 0, hFormat); - addFormatToken('k', ['kk', 2], 0, kFormat); + addUnitAlias('date', 'D'); - addFormatToken('hmm', 0, 0, function () { - return '' + hFormat.apply(this) + zeroFill(this.minutes(), 2); - }); + // PRIOROITY + addUnitPriority('date', 9); - addFormatToken('hmmss', 0, 0, function () { - return '' + hFormat.apply(this) + zeroFill(this.minutes(), 2) + - zeroFill(this.seconds(), 2); - }); + // PARSING - addFormatToken('Hmm', 0, 0, function () { - return '' + this.hours() + zeroFill(this.minutes(), 2); + addRegexToken('D', match1to2); + addRegexToken('DD', match1to2, match2); + addRegexToken('Do', function (isStrict, locale) { + return isStrict ? locale._ordinalParse : locale._ordinalParseLenient; }); - addFormatToken('Hmmss', 0, 0, function () { - return '' + this.hours() + zeroFill(this.minutes(), 2) + - zeroFill(this.seconds(), 2); + addParseToken(['D', 'DD'], DATE); + addParseToken('Do', function (input, array) { + array[DATE] = toInt(input.match(match1to2)[0], 10); }); - function meridiem (token, lowercase) { - addFormatToken(token, 0, 0, function () { - return this.localeData().meridiem(this.hours(), this.minutes(), lowercase); - }); - } + // MOMENTS - meridiem('a', true); - meridiem('A', false); + var getSetDayOfMonth = makeGetSet('Date', true); - // ALIASES + // FORMATTING - addUnitAlias('hour', 'h'); + addFormatToken('DDD', ['DDDD', 3], 'DDDo', 'dayOfYear'); - // PARSING + // ALIASES - function matchMeridiem (isStrict, locale) { - return locale._meridiemParse; - } + addUnitAlias('dayOfYear', 'DDD'); - addRegexToken('a', matchMeridiem); - addRegexToken('A', matchMeridiem); - addRegexToken('H', match1to2); - addRegexToken('h', match1to2); - addRegexToken('HH', match1to2, match2); - addRegexToken('hh', match1to2, match2); + // PRIORITY + addUnitPriority('dayOfYear', 4); - addRegexToken('hmm', match3to4); - addRegexToken('hmmss', match5to6); - addRegexToken('Hmm', match3to4); - addRegexToken('Hmmss', match5to6); + // PARSING - addParseToken(['H', 'HH'], HOUR); - addParseToken(['a', 'A'], function (input, array, config) { - config._isPm = config._locale.isPM(input); - config._meridiem = input; - }); - addParseToken(['h', 'hh'], function (input, array, config) { - array[HOUR] = toInt(input); - getParsingFlags(config).bigHour = true; - }); - addParseToken('hmm', function (input, array, config) { - var pos = input.length - 2; - array[HOUR] = toInt(input.substr(0, pos)); - array[MINUTE] = toInt(input.substr(pos)); - getParsingFlags(config).bigHour = true; - }); - addParseToken('hmmss', function (input, array, config) { - var pos1 = input.length - 4; - var pos2 = input.length - 2; - array[HOUR] = toInt(input.substr(0, pos1)); - array[MINUTE] = toInt(input.substr(pos1, 2)); - array[SECOND] = toInt(input.substr(pos2)); - getParsingFlags(config).bigHour = true; - }); - addParseToken('Hmm', function (input, array, config) { - var pos = input.length - 2; - array[HOUR] = toInt(input.substr(0, pos)); - array[MINUTE] = toInt(input.substr(pos)); - }); - addParseToken('Hmmss', function (input, array, config) { - var pos1 = input.length - 4; - var pos2 = input.length - 2; - array[HOUR] = toInt(input.substr(0, pos1)); - array[MINUTE] = toInt(input.substr(pos1, 2)); - array[SECOND] = toInt(input.substr(pos2)); + addRegexToken('DDD', match1to3); + addRegexToken('DDDD', match3); + addParseToken(['DDD', 'DDDD'], function (input, array, config) { + config._dayOfYear = toInt(input); }); - // LOCALES - - function localeIsPM (input) { - // IE8 Quirks Mode & IE7 Standards Mode do not allow accessing strings like arrays - // Using charAt should be more compatible. - return ((input + '').toLowerCase().charAt(0) === 'p'); - } - - var defaultLocaleMeridiemParse = /[ap]\.?m?\.?/i; - function localeMeridiem (hours, minutes, isLower) { - if (hours > 11) { - return isLower ? 'pm' : 'PM'; - } else { - return isLower ? 'am' : 'AM'; - } - } - + // HELPERS // MOMENTS - // Setting the hour should keep the time, because the user explicitly - // specified which hour he wants. So trying to maintain the same hour (in - // a new timezone) makes sense. Adding/subtracting hours does not follow - // this rule. - var getSetHour = makeGetSet('Hours', true); + function getSetDayOfYear (input) { + var dayOfYear = Math.round((this.clone().startOf('day') - this.clone().startOf('year')) / 864e5) + 1; + return input == null ? dayOfYear : this.add((input - dayOfYear), 'd'); + } // FORMATTING @@ -4719,6 +5006,10 @@ return /******/ (function(modules) { // webpackBootstrap addUnitAlias('minute', 'm'); + // PRIORITY + + addUnitPriority('minute', 14); + // PARSING addRegexToken('m', match1to2); @@ -4737,6 +5028,10 @@ return /******/ (function(modules) { // webpackBootstrap addUnitAlias('second', 's'); + // PRIORITY + + addUnitPriority('second', 15); + // PARSING addRegexToken('s', match1to2); @@ -4782,6 +5077,10 @@ return /******/ (function(modules) { // webpackBootstrap addUnitAlias('millisecond', 'ms'); + // PRIORITY + + addUnitPriority('millisecond', 16); + // PARSING addRegexToken('S', match1to3, match1); @@ -4831,7 +5130,7 @@ return /******/ (function(modules) { // webpackBootstrap momentPrototype__proto.fromNow = fromNow; momentPrototype__proto.to = to; momentPrototype__proto.toNow = toNow; - momentPrototype__proto.get = getSet; + momentPrototype__proto.get = stringGet; momentPrototype__proto.invalidAt = invalidAt; momentPrototype__proto.isAfter = isAfter; momentPrototype__proto.isBefore = isBefore; @@ -4846,7 +5145,7 @@ return /******/ (function(modules) { // webpackBootstrap momentPrototype__proto.max = prototypeMax; momentPrototype__proto.min = prototypeMin; momentPrototype__proto.parsingFlags = parsingFlags; - momentPrototype__proto.set = getSet; + momentPrototype__proto.set = stringSet; momentPrototype__proto.startOf = startOf; momentPrototype__proto.subtract = add_subtract__subtract; momentPrototype__proto.toArray = toArray; @@ -4906,7 +5205,6 @@ return /******/ (function(modules) { // webpackBootstrap momentPrototype__proto.parseZone = setOffsetToParsedOffset; momentPrototype__proto.hasAlignedHourOffset = hasAlignedHourOffset; momentPrototype__proto.isDST = isDaylightSavingTime; - momentPrototype__proto.isDSTShifted = isDaylightSavingTimeShifted; momentPrototype__proto.isLocal = isLocal; momentPrototype__proto.isUtcOffset = isUtcOffset; momentPrototype__proto.isUtc = isUtc; @@ -4920,7 +5218,8 @@ return /******/ (function(modules) { // webpackBootstrap momentPrototype__proto.dates = deprecate('dates accessor is deprecated. Use date instead.', getSetDayOfMonth); momentPrototype__proto.months = deprecate('months accessor is deprecated. Use month instead', getSetMonth); momentPrototype__proto.years = deprecate('years accessor is deprecated. Use year instead', getSetYear); - momentPrototype__proto.zone = deprecate('moment().zone is deprecated, use moment().utcOffset instead. https://github.com/moment/moment/issues/1779', getSetZone); + momentPrototype__proto.zone = deprecate('moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/', getSetZone); + momentPrototype__proto.isDSTShifted = deprecate('isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information', isDaylightSavingTimeShifted); var momentPrototype = momentPrototype__proto; @@ -4932,143 +5231,46 @@ return /******/ (function(modules) { // webpackBootstrap return local__createLocal.apply(null, arguments).parseZone(); } - var defaultCalendar = { - sameDay : '[Today at] LT', - nextDay : '[Tomorrow at] LT', - nextWeek : 'dddd [at] LT', - lastDay : '[Yesterday at] LT', - lastWeek : '[Last] dddd [at] LT', - sameElse : 'L' - }; - - function locale_calendar__calendar (key, mom, now) { - var output = this._calendar[key]; - return isFunction(output) ? output.call(mom, now) : output; - } - - var defaultLongDateFormat = { - LTS : 'h:mm:ss A', - LT : 'h:mm A', - L : 'MM/DD/YYYY', - LL : 'MMMM D, YYYY', - LLL : 'MMMM D, YYYY h:mm A', - LLLL : 'dddd, MMMM D, YYYY h:mm A' - }; - - function longDateFormat (key) { - var format = this._longDateFormat[key], - formatUpper = this._longDateFormat[key.toUpperCase()]; - - if (format || !formatUpper) { - return format; - } - - this._longDateFormat[key] = formatUpper.replace(/MMMM|MM|DD|dddd/g, function (val) { - return val.slice(1); - }); - - return this._longDateFormat[key]; - } - - var defaultInvalidDate = 'Invalid date'; - - function invalidDate () { - return this._invalidDate; - } - - var defaultOrdinal = '%d'; - var defaultOrdinalParse = /\d{1,2}/; - - function ordinal (number) { - return this._ordinal.replace('%d', number); - } - function preParsePostFormat (string) { return string; } - var defaultRelativeTime = { - future : 'in %s', - past : '%s ago', - s : 'a few seconds', - m : 'a minute', - mm : '%d minutes', - h : 'an hour', - hh : '%d hours', - d : 'a day', - dd : '%d days', - M : 'a month', - MM : '%d months', - y : 'a year', - yy : '%d years' - }; - - function relative__relativeTime (number, withoutSuffix, string, isFuture) { - var output = this._relativeTime[string]; - return (isFunction(output)) ? - output(number, withoutSuffix, string, isFuture) : - output.replace(/%d/i, number); - } - - function pastFuture (diff, output) { - var format = this._relativeTime[diff > 0 ? 'future' : 'past']; - return isFunction(format) ? format(output) : format.replace(/%s/i, output); - } - var prototype__proto = Locale.prototype; - prototype__proto._calendar = defaultCalendar; prototype__proto.calendar = locale_calendar__calendar; - prototype__proto._longDateFormat = defaultLongDateFormat; prototype__proto.longDateFormat = longDateFormat; - prototype__proto._invalidDate = defaultInvalidDate; prototype__proto.invalidDate = invalidDate; - prototype__proto._ordinal = defaultOrdinal; prototype__proto.ordinal = ordinal; - prototype__proto._ordinalParse = defaultOrdinalParse; prototype__proto.preparse = preParsePostFormat; prototype__proto.postformat = preParsePostFormat; - prototype__proto._relativeTime = defaultRelativeTime; prototype__proto.relativeTime = relative__relativeTime; prototype__proto.pastFuture = pastFuture; prototype__proto.set = locale_set__set; // Month prototype__proto.months = localeMonths; - prototype__proto._months = defaultLocaleMonths; prototype__proto.monthsShort = localeMonthsShort; - prototype__proto._monthsShort = defaultLocaleMonthsShort; prototype__proto.monthsParse = localeMonthsParse; - prototype__proto._monthsRegex = defaultMonthsRegex; prototype__proto.monthsRegex = monthsRegex; - prototype__proto._monthsShortRegex = defaultMonthsShortRegex; prototype__proto.monthsShortRegex = monthsShortRegex; // Week prototype__proto.week = localeWeek; - prototype__proto._week = defaultLocaleWeek; prototype__proto.firstDayOfYear = localeFirstDayOfYear; prototype__proto.firstDayOfWeek = localeFirstDayOfWeek; // Day of Week prototype__proto.weekdays = localeWeekdays; - prototype__proto._weekdays = defaultLocaleWeekdays; prototype__proto.weekdaysMin = localeWeekdaysMin; - prototype__proto._weekdaysMin = defaultLocaleWeekdaysMin; prototype__proto.weekdaysShort = localeWeekdaysShort; - prototype__proto._weekdaysShort = defaultLocaleWeekdaysShort; prototype__proto.weekdaysParse = localeWeekdaysParse; - prototype__proto._weekdaysRegex = defaultWeekdaysRegex; prototype__proto.weekdaysRegex = weekdaysRegex; - prototype__proto._weekdaysShortRegex = defaultWeekdaysShortRegex; prototype__proto.weekdaysShortRegex = weekdaysShortRegex; - prototype__proto._weekdaysMinRegex = defaultWeekdaysMinRegex; prototype__proto.weekdaysMinRegex = weekdaysMinRegex; // Hours prototype__proto.isPM = localeIsPM; - prototype__proto._meridiemParse = defaultLocaleMeridiemParse; prototype__proto.meridiem = localeMeridiem; function lists__get (format, index, field, setter) { @@ -5397,6 +5599,18 @@ return /******/ (function(modules) { // webpackBootstrap return substituteTimeAgo.apply(null, a); } + // This function allows you to set the rounding function for relative time strings + function duration_humanize__getSetRelativeTimeRounding (roundingFunction) { + if (roundingFunction === undefined) { + return round; + } + if (typeof(roundingFunction) === 'function') { + round = roundingFunction; + return true; + } + return false; + } + // This function allows you to set a threshold for relative time strings function duration_humanize__getSetRelativeTimeThreshold (threshold, limit) { if (thresholds[threshold] === undefined) { @@ -5529,7 +5743,7 @@ return /******/ (function(modules) { // webpackBootstrap // Side effect imports - utils_hooks__hooks.version = '2.13.0'; + utils_hooks__hooks.version = '2.15.2'; setHookCallback(local__createLocal); @@ -5556,7 +5770,9 @@ return /******/ (function(modules) { // webpackBootstrap utils_hooks__hooks.locales = locale_locales__listLocales; utils_hooks__hooks.weekdaysShort = lists__listWeekdaysShort; utils_hooks__hooks.normalizeUnits = normalizeUnits; + utils_hooks__hooks.relativeTimeRounding = duration_humanize__getSetRelativeTimeRounding; utils_hooks__hooks.relativeTimeThreshold = duration_humanize__getSetRelativeTimeThreshold; + utils_hooks__hooks.calendarFormat = getCalendarFormat; utils_hooks__hooks.prototype = momentPrototype; var _moment = utils_hooks__hooks; @@ -5839,8 +6055,8 @@ return /******/ (function(modules) { // webpackBootstrap // bundled external libraries exports.moment = __webpack_require__(2); - exports.Hammer = __webpack_require__(20); - exports.keycharm = __webpack_require__(23); + exports.Hammer = __webpack_require__(22); + exports.keycharm = __webpack_require__(25); /***/ }, /* 8 */ @@ -6006,6 +6222,7 @@ return /******/ (function(modules) { // webpackBootstrap point.setAttributeNS(null, "class", groupTemplate.className + " vis-point"); //handle label + if (labelObj) { var label = exports.getSVGElement('text', JSONcontainer, svgContainer); if (labelObj.xOffset) { @@ -6060,7 +6277,7 @@ return /******/ (function(modules) { // webpackBootstrap '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 _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; var util = __webpack_require__(1); var Queue = __webpack_require__(10); @@ -6720,26 +6937,29 @@ return /******/ (function(modules) { // webpackBootstrap */ DataSet.prototype.remove = function (id, senderId) { var removedIds = [], + removedItems = [], + ids = [], i, len, - removedId; + itemId, + item; + + // force everything to be an array for simplicity + ids = Array.isArray(id) ? id : [id]; - if (Array.isArray(id)) { - for (i = 0, len = id.length; i < len; i++) { - removedId = this._remove(id[i]); - if (removedId != null) { - removedIds.push(removedId); + for (i = 0, len = ids.length; i < len; i++) { + item = this._remove(ids[i]); + if (item) { + itemId = item[this._fieldId]; + if (itemId) { + removedIds.push(itemId); + removedItems.push(item); } } - } else { - removedId = this._remove(id); - if (removedId != null) { - removedIds.push(removedId); - } } if (removedIds.length) { - this._trigger('remove', { items: removedIds }, senderId); + this._trigger('remove', { items: removedIds, oldData: removedItems }, senderId); } return removedIds; @@ -6752,19 +6972,21 @@ return /******/ (function(modules) { // webpackBootstrap * @private */ DataSet.prototype._remove = function (id) { + var item, ident; + + // confirm the id to use based on the args type if (util.isNumber(id) || util.isString(id)) { - if (this._data[id]) { - delete this._data[id]; - this.length--; - return id; - } + ident = id; } else if (id instanceof Object) { - var itemId = id[this._fieldId]; - if (itemId !== undefined && this._data[itemId]) { - delete this._data[itemId]; - this.length--; - return itemId; - } + ident = id[this._fieldId]; // look for the identifier field using _fieldId + } + + // do the remove if the item is found + if (ident !== undefined && this._data[ident]) { + item = this._data[ident]; + delete this._data[ident]; + this.length--; + return item; } return null; }; @@ -6775,12 +6997,18 @@ return /******/ (function(modules) { // webpackBootstrap * @return {Array} removedIds The ids of all removed items */ DataSet.prototype.clear = function (senderId) { + var i, len; var ids = Object.keys(this._data); + var items = []; + + for (i = 0, len = ids.length; i < len; i++) { + items.push(this._data[ids[i]]); + } this._data = {}; this.length = 0; - this._trigger('remove', { items: ids }, senderId); + this._trigger('remove', { items: ids, oldData: items }, senderId); return ids; }; @@ -7231,7 +7459,7 @@ return /******/ (function(modules) { // webpackBootstrap * @param {DataSet | DataView} data */ DataView.prototype.setData = function (data) { - var ids, id, i, len; + var ids, id, i, len, items; if (this._data) { // unsubscribe from current dataset @@ -7240,10 +7468,16 @@ return /******/ (function(modules) { // webpackBootstrap } // trigger a remove of all items in memory - ids = Object.keys(this._ids); + ids = this._data.getIds({ filter: this._options && this._options.filter }); + items = []; + + for (i = 0, len = ids.length; i < len; i++) { + items.push(this._data._data[ids[i]]); + } + this._ids = {}; this.length = 0; - this._trigger('remove', { items: ids }); + this._trigger('remove', { items: ids, oldData: items }); } this._data = data; @@ -7274,18 +7508,19 @@ return /******/ (function(modules) { // webpackBootstrap */ DataView.prototype.refresh = function () { var id, i, len; - var ids = this._data.getIds({ filter: this._options && this._options.filter }); - var oldIds = Object.keys(this._ids); - var newIds = {}; - var added = []; - var removed = []; + var ids = this._data.getIds({ filter: this._options && this._options.filter }), + oldIds = Object.keys(this._ids), + newIds = {}, + addedIds = [], + removedIds = [], + removedItems = []; // check for additions for (i = 0, len = ids.length; i < len; i++) { id = ids[i]; newIds[id] = true; if (!this._ids[id]) { - added.push(id); + addedIds.push(id); this._ids[id] = true; } } @@ -7294,19 +7529,20 @@ return /******/ (function(modules) { // webpackBootstrap for (i = 0, len = oldIds.length; i < len; i++) { id = oldIds[i]; if (!newIds[id]) { - removed.push(id); + removedIds.push(id); + removedItems.push(this._data[id]); delete this._ids[id]; } } - this.length += added.length - removed.length; + this.length += addedIds.length - removedIds.length; // trigger events - if (added.length) { - this._trigger('add', { items: added }); + if (addedIds.length) { + this._trigger('add', { items: addedIds }); } - if (removed.length) { - this._trigger('remove', { items: removed }); + if (removedIds.length) { + this._trigger('remove', { items: removedIds, oldData: removedItems }); } }; @@ -7485,13 +7721,14 @@ return /******/ (function(modules) { // webpackBootstrap DataView.prototype._onEvent = function (event, params, senderId) { var i, len, id, item; var ids = params && params.items; - var data = this._data; - var updatedData = []; - var added = []; - var updated = []; - var removed = []; + var addedIds = [], + updatedIds = [], + removedIds = [], + oldItems = [], + updatedItems = [], + removedItems = []; - if (ids && data) { + if (ids && this._data) { switch (event) { case 'add': // filter the ids of the added items @@ -7500,7 +7737,7 @@ return /******/ (function(modules) { // webpackBootstrap item = this.get(id); if (item) { this._ids[id] = true; - added.push(id); + addedIds.push(id); } } @@ -7515,16 +7752,18 @@ return /******/ (function(modules) { // webpackBootstrap if (item) { if (this._ids[id]) { - updated.push(id); - updatedData.push(params.data[i]); + updatedIds.push(id); + updatedItems.push(params.data[i]); + oldItems.push(params.oldData[i]); } else { this._ids[id] = true; - added.push(id); + addedIds.push(id); } } else { if (this._ids[id]) { delete this._ids[id]; - removed.push(id); + removedIds.push(id); + removedItems.push(params.oldData[i]); } else { // nothing interesting for me :-( } @@ -7539,23 +7778,24 @@ return /******/ (function(modules) { // webpackBootstrap id = ids[i]; if (this._ids[id]) { delete this._ids[id]; - removed.push(id); + removedIds.push(id); + removedItems.push(params.oldData[i]); } } break; } - this.length += added.length - removed.length; + this.length += addedIds.length - removedIds.length; - if (added.length) { - this._trigger('add', { items: added }, senderId); + if (addedIds.length) { + this._trigger('add', { items: addedIds }, senderId); } - if (updated.length) { - this._trigger('update', { items: updated, data: updatedData }, senderId); + if (updatedIds.length) { + this._trigger('update', { items: updatedIds, oldData: oldItems, data: updatedItems }, senderId); } - if (removed.length) { - this._trigger('remove', { items: removed }, senderId); + if (removedIds.length) { + this._trigger('remove', { items: removedIds, oldData: removedItems }, senderId); } } }; @@ -7577,10 +7817,7 @@ return /******/ (function(modules) { // webpackBootstrap '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__(13); - var DataSet = __webpack_require__(9); + var Emitter = __webpack_require__(13);var DataSet = __webpack_require__(9); var DataView = __webpack_require__(11); var util = __webpack_require__(1); var Point3d = __webpack_require__(14); @@ -7589,6 +7826,100 @@ return /******/ (function(modules) { // webpackBootstrap var Filter = __webpack_require__(17); var Slider = __webpack_require__(18); var StepNumber = __webpack_require__(19); + var Range = __webpack_require__(20); + var Settings = __webpack_require__(21); + + /// enumerate the available styles + Graph3d.STYLE = Settings.STYLE; + + /** + * Following label is used in the settings to describe values which should be + * determined by the code while running, from the current data and graph style. + * + * Using 'undefined' directly achieves the same thing, but this is more + * descriptive by describing the intent. + */ + var autoByDefault = undefined; + + /** + * Default values for option settings. + * + * These are the values used when a Graph3d instance is initialized without + * custom settings. + * + * If a field is not in this list, a default value of 'autoByDefault' is assumed, + * which is just an alias for 'undefined'. + */ + var DEFAULTS = { + width: '400px', + height: '400px', + filterLabel: 'time', + legendLabel: 'value', + xLabel: 'x', + yLabel: 'y', + zLabel: 'z', + xValueLabel: function xValueLabel(v) { + return v; + }, + yValueLabel: function yValueLabel(v) { + return v; + }, + zValueLabel: function zValueLabel(v) { + return v; + }, + showGrid: true, + showPerspective: true, + showShadow: false, + keepAspectRatio: true, + verticalRatio: 0.5, // 0.1 to 1.0, where 1.0 results in a 'cube' + dotSizeRatio: 0.02, // size of the dots as a fraction of the graph width + + showAnimationControls: autoByDefault, + animationInterval: 1000, // milliseconds + animationPreload: false, + animationAutoStart: autoByDefault, + + axisColor: '#4D4D4D', + gridColor: '#D3D3D3', + xCenter: '55%', + yCenter: '50%', + + style: Graph3d.STYLE.DOT, + tooltip: false, + showLegend: autoByDefault, // determined by graph style + backgroundColor: autoByDefault, + + dataColor: { + fill: '#7DC1FF', + stroke: '#3267D2', + strokeWidth: 1 // px + }, + + cameraPosition: { + horizontal: 1.0, + vertical: 0.5, + distance: 1.7 + }, + + xBarWidth: autoByDefault, + yBarWidth: autoByDefault, + valueMin: autoByDefault, + valueMax: autoByDefault, + xMin: autoByDefault, + xMax: autoByDefault, + xStep: autoByDefault, + yMin: autoByDefault, + yMax: autoByDefault, + yStep: autoByDefault, + zMin: autoByDefault, + zMax: autoByDefault, + zStep: autoByDefault + }; + + // ----------------------------------------------------------------------------- + // Class Graph3d + // ----------------------------------------------------------------------------- + /** * @constructor Graph3d @@ -7608,46 +7939,15 @@ return /******/ (function(modules) { // webpackBootstrap // create variables and set default values this.containerElement = container; - this.width = '400px'; - this.height = '400px'; - this.margin = 10; // px - this.defaultXCenter = '55%'; - this.defaultYCenter = '50%'; - - this.xLabel = 'x'; - this.yLabel = 'y'; - this.zLabel = 'z'; - - var passValueFn = function passValueFn(v) { - return v; - }; - this.xValueLabel = passValueFn; - this.yValueLabel = passValueFn; - this.zValueLabel = passValueFn; - - this.filterLabel = 'time'; - this.legendLabel = 'value'; - - this.style = Graph3d.STYLE.DOT; - this.showPerspective = true; - this.showGrid = true; - this.keepAspectRatio = true; - this.showShadow = false; - this.showGrayBottom = false; // TODO: this does not work correctly - this.showTooltip = false; - this.verticalRatio = 0.5; // 0.1 to 1.0, where 1.0 results in a 'cube' - - this.animationInterval = 1000; // milliseconds - this.animationPreload = false; - - this.camera = new Camera(); - this.camera.setArmRotation(1.0, 0.5); - this.camera.setArmLength(1.7); - this.eye = new Point3d(0, 0, -1); // TODO: set eye.z about 3/4 of the width of the window? this.dataTable = null; // The original data table this.dataPoints = null; // The table with point objects + // create a frame and canvas + this.create(); + + Settings.setDefaults(DEFAULTS, this); + // the column indexes this.colX = undefined; this.colY = undefined; @@ -7655,35 +7955,8 @@ return /******/ (function(modules) { // webpackBootstrap this.colValue = undefined; this.colFilter = undefined; - this.xMin = 0; - this.xStep = undefined; // auto by default - this.xMax = 1; - this.yMin = 0; - this.yStep = undefined; // auto by default - this.yMax = 1; - this.zMin = 0; - this.zStep = undefined; // auto by default - this.zMax = 1; - this.valueMin = 0; - this.valueMax = 1; - this.xBarWidth = 1; - this.yBarWidth = 1; // TODO: customize axis range - // colors - this.axisColor = '#4D4D4D'; - this.gridColor = '#D3D3D3'; - this.dataColor = { - fill: '#7DC1FF', - stroke: '#3267D2', - strokeWidth: 1 // px - }; - - this.dotSizeRatio = 0.02; // size of the dots as a fraction of the graph width - - // create a frame and canvas - this.create(); - // apply options (also when undefined) this.setOptions(options); @@ -7700,7 +7973,7 @@ return /******/ (function(modules) { // webpackBootstrap * Calculate the scaling values, dependent on the range in x, y, and z direction */ Graph3d.prototype._setScale = function () { - this.scale = new Point3d(1 / (this.xMax - this.xMin), 1 / (this.yMax - this.yMin), 1 / (this.zMax - this.zMin)); + this.scale = new Point3d(1 / this.xRange.range(), 1 / this.yRange.range(), 1 / this.zRange.range()); // keep aspect ration between x and y scale if desired if (this.keepAspectRatio) { @@ -7718,20 +7991,23 @@ return /******/ (function(modules) { // webpackBootstrap // TODO: can this be automated? verticalRatio? // determine scale for (optional) value - this.scale.value = 1 / (this.valueMax - this.valueMin); + if (this.valueRange !== undefined) { + this.scale.value = 1 / this.valueRange.range(); + } // position the camera arm - var xCenter = (this.xMax + this.xMin) / 2 * this.scale.x; - var yCenter = (this.yMax + this.yMin) / 2 * this.scale.y; - var zCenter = (this.zMax + this.zMin) / 2 * this.scale.z; + var xCenter = this.xRange.center() * this.scale.x; + var yCenter = this.yRange.center() * this.scale.y; + var zCenter = this.zRange.center() * this.scale.z; this.camera.setArmLocation(xCenter, yCenter, zCenter); }; /** * Convert a 3D location to a 2D location on screen - * http://en.wikipedia.org/wiki/3D_projection - * @param {Point3d} point3d A 3D point with parameters x, y, z - * @return {Point2d} point2d A 2D point with parameters x, y + * Source: ttp://en.wikipedia.org/wiki/3D_projection + * + * @param {Point3d} point3d A 3D point with parameters x, y, z + * @returns {Point2d} point2d A 2D point with parameters x, y */ Graph3d.prototype._convert3Dto2D = function (point3d) { var translation = this._convertPointToTranslation(point3d); @@ -7740,28 +8016,31 @@ return /******/ (function(modules) { // webpackBootstrap /** * Convert a 3D location its translation seen from the camera - * http://en.wikipedia.org/wiki/3D_projection - * @param {Point3d} point3d A 3D point with parameters x, y, z - * @return {Point3d} translation A 3D point with parameters x, y, z This is - * the translation of the point, seen from the - * camera + * Source: http://en.wikipedia.org/wiki/3D_projection + * + * @param {Point3d} point3d A 3D point with parameters x, y, z + * @returns {Point3d} translation A 3D point with parameters x, y, z This is + * the translation of the point, seen from the + * camera. */ Graph3d.prototype._convertPointToTranslation = function (point3d) { - var ax = point3d.x * this.scale.x, + var cameraLocation = this.camera.getCameraLocation(), + cameraRotation = this.camera.getCameraRotation(), + ax = point3d.x * this.scale.x, ay = point3d.y * this.scale.y, az = point3d.z * this.scale.z, - cx = this.camera.getCameraLocation().x, - cy = this.camera.getCameraLocation().y, - cz = this.camera.getCameraLocation().z, + cx = cameraLocation.x, + cy = cameraLocation.y, + cz = cameraLocation.z, // calculate angles - sinTx = Math.sin(this.camera.getCameraRotation().x), - cosTx = Math.cos(this.camera.getCameraRotation().x), - sinTy = Math.sin(this.camera.getCameraRotation().y), - cosTy = Math.cos(this.camera.getCameraRotation().y), - sinTz = Math.sin(this.camera.getCameraRotation().z), - cosTz = Math.cos(this.camera.getCameraRotation().z), + sinTx = Math.sin(cameraRotation.x), + cosTx = Math.cos(cameraRotation.x), + sinTy = Math.sin(cameraRotation.y), + cosTy = Math.cos(cameraRotation.y), + sinTz = Math.sin(cameraRotation.z), + cosTz = Math.cos(cameraRotation.z), // calculate translation @@ -7774,10 +8053,11 @@ return /******/ (function(modules) { // webpackBootstrap /** * Convert a translation point to a point on the screen - * @param {Point3d} translation A 3D point with parameters x, y, z This is - * the translation of the point, seen from the - * camera - * @return {Point2d} point2d A 2D point with parameters x, y + * + * @param {Point3d} translation A 3D point with parameters x, y, z This is + * the translation of the point, seen from the + * camera. + * @returns {Point2d} point2d A 2D point with parameters x, y */ Graph3d.prototype._convertTranslationToScreen = function (translation) { var ex = this.eye.x, @@ -7800,114 +8080,36 @@ return /******/ (function(modules) { // webpackBootstrap // shift and scale the point to the center of the screen // use the width of the graph to scale both horizontally and vertically. - return new Point2d(this.xcenter + bx * this.frame.canvas.clientWidth, this.ycenter - by * this.frame.canvas.clientWidth); + return new Point2d(this.currentXCenter + bx * this.frame.canvas.clientWidth, this.currentYCenter - by * this.frame.canvas.clientWidth); }; /** - * Set the background styling for the graph - * @param {string | {fill: string, stroke: string, strokeWidth: string}} backgroundColor + * Calculate the translations and screen positions of all points */ - Graph3d.prototype._setBackgroundColor = function (backgroundColor) { - var fill = 'white'; - var stroke = 'gray'; - var strokeWidth = 1; - - if (typeof backgroundColor === 'string') { - fill = backgroundColor; - stroke = 'none'; - strokeWidth = 0; - } else if ((typeof backgroundColor === 'undefined' ? 'undefined' : _typeof(backgroundColor)) === 'object') { - if (backgroundColor.fill !== undefined) fill = backgroundColor.fill; - if (backgroundColor.stroke !== undefined) stroke = backgroundColor.stroke; - if (backgroundColor.strokeWidth !== undefined) strokeWidth = backgroundColor.strokeWidth; - } else if (backgroundColor === undefined) { - // use use defaults - } else { - throw 'Unsupported type of backgroundColor'; - } - - this.frame.style.backgroundColor = fill; - this.frame.style.borderColor = stroke; - this.frame.style.borderWidth = strokeWidth + 'px'; - this.frame.style.borderStyle = 'solid'; - }; - - /// enumerate the available styles - Graph3d.STYLE = { - BAR: 0, - BARCOLOR: 1, - BARSIZE: 2, - DOT: 3, - DOTLINE: 4, - DOTCOLOR: 5, - DOTSIZE: 6, - GRID: 7, - LINE: 8, - SURFACE: 9 - }; - - /** - * Retrieve the style index from given styleName - * @param {string} styleName Style name such as 'dot', 'grid', 'dot-line' - * @return {Number} styleNumber Enumeration value representing the style, or -1 - * when not found - */ - Graph3d.prototype._getStyleNumber = function (styleName) { - switch (styleName) { - case 'dot': - return Graph3d.STYLE.DOT; - case 'dot-line': - return Graph3d.STYLE.DOTLINE; - case 'dot-color': - return Graph3d.STYLE.DOTCOLOR; - case 'dot-size': - return Graph3d.STYLE.DOTSIZE; - case 'line': - return Graph3d.STYLE.LINE; - case 'grid': - return Graph3d.STYLE.GRID; - case 'surface': - return Graph3d.STYLE.SURFACE; - case 'bar': - return Graph3d.STYLE.BAR; - case 'bar-color': - return Graph3d.STYLE.BARCOLOR; - case 'bar-size': - return Graph3d.STYLE.BARSIZE; + Graph3d.prototype._calcTranslations = function (points, sort) { + if (sort === undefined) { + sort = true; } - return -1; - }; - - /** - * Determine the indexes of the data columns, based on the given style and data - * @param {DataSet} data - * @param {Number} style - */ - Graph3d.prototype._determineColumnIndexes = function (data, style) { - if (this.style === Graph3d.STYLE.DOT || this.style === Graph3d.STYLE.DOTLINE || this.style === Graph3d.STYLE.LINE || this.style === Graph3d.STYLE.GRID || this.style === Graph3d.STYLE.SURFACE || this.style === Graph3d.STYLE.BAR) { - // 3 columns expected, and optionally a 4th with filter values - this.colX = 0; - this.colY = 1; - this.colZ = 2; - this.colValue = undefined; + for (var i = 0; i < points.length; i++) { + var point = points[i]; + point.trans = this._convertPointToTranslation(point.point); + point.screen = this._convertTranslationToScreen(point.trans); - if (data.getNumberOfColumns() > 3) { - this.colFilter = 3; - } - } else if (this.style === Graph3d.STYLE.DOTCOLOR || this.style === Graph3d.STYLE.DOTSIZE || this.style === Graph3d.STYLE.BARCOLOR || this.style === Graph3d.STYLE.BARSIZE) { - // 4 columns expected, and optionally a 5th with filter values - this.colX = 0; - this.colY = 1; - this.colZ = 2; - this.colValue = 3; + // calculate the translation of the point at the bottom (needed for sorting) + var transBottom = this._convertPointToTranslation(point.bottom); + point.dist = this.showPerspective ? transBottom.length() : -transBottom.z; + } - if (data.getNumberOfColumns() > 4) { - this.colFilter = 4; - } - } else { - throw 'Unknown style "' + this.style + '"'; + if (!sort) { + return; } + + // sort the points on depth of their (x,y) position (not on z) + var sortDepth = function sortDepth(a, b) { + return b.dist - a.dist; + }; + points.sort(sortDepth); }; Graph3d.prototype.getNumberOfRows = function (data) { @@ -7934,24 +8136,78 @@ return /******/ (function(modules) { // webpackBootstrap return distinctValues; }; + /** + * Get the absolute min/max values for the passed data column. + * + * @returns {Range} A Range instance with min/max members properly set. + */ Graph3d.prototype.getColumnRange = function (data, column) { - var minMax = { min: data[0][column], max: data[0][column] }; + var range = new Range(); + + // Adjust the range so that it covers all values in the passed data elements. for (var i = 0; i < data.length; i++) { - if (minMax.min > data[i][column]) { - minMax.min = data[i][column]; - } - if (minMax.max < data[i][column]) { - minMax.max = data[i][column]; - } + var item = data[i][column]; + range.adjust(item); + } + + return range; + }; + + /** + * Check if the state is consistent for the use of the value field. + * + * Throws if a problem is detected. + */ + Graph3d.prototype._checkValueField = function (data) { + + var hasValueField = this.style === Graph3d.STYLE.BARCOLOR || this.style === Graph3d.STYLE.BARSIZE || this.style === Graph3d.STYLE.DOTCOLOR || this.style === Graph3d.STYLE.DOTSIZE; + + if (!hasValueField) { + return; // No need to check further + } + + // Following field must be present for the current graph style + if (this.colValue === undefined) { + throw new Error('Expected data to have ' + ' field \'style\' ' + ' for graph style \'' + this.style + '\''); + } + + // The data must also contain this field. + // Note that only first data element is checked. + if (data[0][this.colValue] === undefined) { + throw new Error('Expected data to have ' + ' field \'' + this.colValue + '\' ' + ' for graph style \'' + this.style + '\''); } - return minMax; + }; + + /** + * Set default values for range + * + * The default values override the range values, if defined. + * + * Because it's possible that only defaultMin or defaultMax is set, it's better + * to pass in a range already set with the min/max set from the data. Otherwise, + * it's quite hard to process the min/max properly. + */ + Graph3d.prototype._setRangeDefaults = function (range, defaultMin, defaultMax) { + if (defaultMin !== undefined) { + range.min = defaultMin; + } + + if (defaultMax !== undefined) { + range.max = defaultMax; + } + + // This is the original way that the default min/max values were adjusted. + // TODO: Perhaps it's better if an error is thrown if the values do not agree. + // But this will change the behaviour. + if (range.max <= range.min) range.max = range.min + 1; }; /** * Initialize the data from the data table. Calculate minimum and maximum values * and column index values - * @param {Array | DataSet | DataView} rawData The data containing the items for the Graph. - * @param {Number} style Style Number + * @param {Array | DataSet | DataView} rawData The data containing the items for + * the Graph. + * @param {Number} style Style Number */ Graph3d.prototype._dataInitialize = function (rawData, style) { var me = this; @@ -7985,28 +8241,10 @@ return /******/ (function(modules) { // webpackBootstrap }; this.dataSet.on('*', this._onChange); - // _determineColumnIndexes - // getNumberOfRows (points) - // getNumberOfColumns (x,y,z,v,t,t1,t2...) - // getDistinctValues (unique values?) - // getColumnRange - // determine the location of x,y,z,value,filter columns this.colX = 'x'; this.colY = 'y'; this.colZ = 'z'; - this.colValue = 'style'; - this.colFilter = 'filter'; - - // check if a filter column is provided - if (data[0].hasOwnProperty('filter')) { - if (this.dataFilter === undefined) { - this.dataFilter = new Filter(rawData, this.colFilter, this); - this.dataFilter.setOnLoadCallback(function () { - me.redraw(); - }); - } - } var withBars = this.style == Graph3d.STYLE.BAR || this.style == Graph3d.STYLE.BARCOLOR || this.style == Graph3d.STYLE.BARSIZE; @@ -8028,37 +8266,48 @@ return /******/ (function(modules) { // webpackBootstrap } // calculate minimums and maximums + var NUMSTEPS = 5; + var xRange = this.getColumnRange(data, this.colX); if (withBars) { - xRange.min -= this.xBarWidth / 2; - xRange.max += this.xBarWidth / 2; + xRange.expand(this.xBarWidth / 2); } - this.xMin = this.defaultXMin !== undefined ? this.defaultXMin : xRange.min; - this.xMax = this.defaultXMax !== undefined ? this.defaultXMax : xRange.max; - if (this.xMax <= this.xMin) this.xMax = this.xMin + 1; - this.xStep = this.defaultXStep !== undefined ? this.defaultXStep : (this.xMax - this.xMin) / 5; + this._setRangeDefaults(xRange, this.defaultXMin, this.defaultXMax); + this.xRange = xRange; + this.xStep = this.defaultXStep !== undefined ? this.defaultXStep : xRange.range() / NUMSTEPS; var yRange = this.getColumnRange(data, this.colY); if (withBars) { - yRange.min -= this.yBarWidth / 2; - yRange.max += this.yBarWidth / 2; + yRange.expand(this.yBarWidth / 2); } - this.yMin = this.defaultYMin !== undefined ? this.defaultYMin : yRange.min; - this.yMax = this.defaultYMax !== undefined ? this.defaultYMax : yRange.max; - if (this.yMax <= this.yMin) this.yMax = this.yMin + 1; - this.yStep = this.defaultYStep !== undefined ? this.defaultYStep : (this.yMax - this.yMin) / 5; + this._setRangeDefaults(yRange, this.defaultYMin, this.defaultYMax); + this.yRange = yRange; + this.yStep = this.defaultYStep !== undefined ? this.defaultYStep : yRange.range() / NUMSTEPS; var zRange = this.getColumnRange(data, this.colZ); - this.zMin = this.defaultZMin !== undefined ? this.defaultZMin : zRange.min; - this.zMax = this.defaultZMax !== undefined ? this.defaultZMax : zRange.max; - if (this.zMax <= this.zMin) this.zMax = this.zMin + 1; - this.zStep = this.defaultZStep !== undefined ? this.defaultZStep : (this.zMax - this.zMin) / 5; + this._setRangeDefaults(zRange, this.defaultZMin, this.defaultZMax); + this.zRange = zRange; + this.zStep = this.defaultZStep !== undefined ? this.defaultZStep : zRange.range() / NUMSTEPS; - if (this.colValue !== undefined) { + if (data[0].hasOwnProperty('style')) { + this.colValue = 'style'; var valueRange = this.getColumnRange(data, this.colValue); - this.valueMin = this.defaultValueMin !== undefined ? this.defaultValueMin : valueRange.min; - this.valueMax = this.defaultValueMax !== undefined ? this.defaultValueMax : valueRange.max; - if (this.valueMax <= this.valueMin) this.valueMax = this.valueMin + 1; + this._setRangeDefaults(valueRange, this.defaultValueMin, this.defaultValueMax); + this.valueRange = valueRange; + } + + // check if a filter column is provided + // Needs to be started after zRange is defined + if (data[0].hasOwnProperty('filter')) { + // Only set this field if it's actually present + this.colFilter = 'filter'; + + if (this.dataFilter === undefined) { + this.dataFilter = new Filter(rawData, this.colFilter, this); + this.dataFilter.setOnLoadCallback(function () { + me.redraw(); + }); + } } // set the scale dependent on the ranges. @@ -8067,11 +8316,14 @@ return /******/ (function(modules) { // webpackBootstrap /** * Filter the data based on the current filter - * @param {Array} data - * @return {Array} dataPoints Array with point objects which can be drawn on screen + * + * @param {Array} data + * @returns {Array} dataPoints Array with point objects which can be drawn on + * screen */ Graph3d.prototype._getDataPoints = function (data) { - // TODO: store the created matrix dataPoints in the filters instead of reloading each time + // TODO: store the created matrix dataPoints in the filters instead of + // reloading each time. var x, y, i, z, obj, point; var dataPoints = []; @@ -8108,7 +8360,8 @@ return /******/ (function(modules) { // webpackBootstrap y = data[i][this.colY] || 0; z = data[i][this.colZ] || 0; - var xIndex = dataX.indexOf(x); // TODO: implement Array().indexOf() for Internet Explorer + // TODO: implement Array().indexOf() for Internet Explorer + var xIndex = dataX.indexOf(x); var yIndex = dataY.indexOf(y); if (dataMatrix[xIndex] === undefined) { @@ -8119,12 +8372,13 @@ return /******/ (function(modules) { // webpackBootstrap point3d.x = x; point3d.y = y; point3d.z = z; + point3d.data = data[i]; obj = {}; obj.point = point3d; obj.trans = undefined; obj.screen = undefined; - obj.bottom = new Point3d(x, y, this.zMin); + obj.bottom = new Point3d(x, y, this.zRange.min); dataMatrix[xIndex][yIndex] = obj; @@ -8143,12 +8397,15 @@ return /******/ (function(modules) { // webpackBootstrap } } else { // 'dot', 'dot-line', etc. + this._checkValueField(data); + // copy all values from the google data table to a list with Point3d objects for (i = 0; i < data.length; i++) { point = new Point3d(); point.x = data[i][this.colX] || 0; point.y = data[i][this.colY] || 0; point.z = data[i][this.colZ] || 0; + point.data = data[i]; if (this.colValue !== undefined) { point.value = data[i][this.colValue] || 0; @@ -8156,10 +8413,17 @@ return /******/ (function(modules) { // webpackBootstrap obj = {}; obj.point = point; - obj.bottom = new Point3d(point.x, point.y, this.zMin); + obj.bottom = new Point3d(point.x, point.y, this.zRange.min); obj.trans = undefined; obj.screen = undefined; + if (this.style === Graph3d.STYLE.LINE) { + if (i > 0) { + // Add next point for line drawing + dataPoints[i - 1].pointNext = obj; + } + } + dataPoints.push(obj); } } @@ -8169,6 +8433,7 @@ return /******/ (function(modules) { // webpackBootstrap /** * Create the main frame for the Graph3d. + * * This function is executed once when a Graph3d object is created. The frame * contains a canvas, and this canvas contains all objects like the axis and * nodes. @@ -8232,10 +8497,11 @@ return /******/ (function(modules) { // webpackBootstrap /** * Set a new size for the graph - * @param {string} width Width in pixels or percentage (for example '800px' - * or '50%') - * @param {string} height Height in pixels or percentage (for example '400px' - * or '30%') + * + * @param {string} width Width in pixels or percentage (for example '800px' + * or '50%') + * @param {string} height Height in pixels or percentage (for example '400px' + * or '30%') */ Graph3d.prototype.setSize = function (width, height) { this.frame.style.width = width; @@ -8262,7 +8528,7 @@ return /******/ (function(modules) { // webpackBootstrap * Start animation */ Graph3d.prototype.animationStart = function () { - if (!this.frame.filter || !this.frame.filter.slider) throw 'No animation available'; + if (!this.frame.filter || !this.frame.filter.slider) throw new Error('No animation available'); this.frame.filter.slider.play(); }; @@ -8277,63 +8543,32 @@ return /******/ (function(modules) { // webpackBootstrap }; /** - * Resize the center position based on the current values in this.defaultXCenter - * and this.defaultYCenter (which are strings with a percentage or a value - * in pixels). The center positions are the variables this.xCenter - * and this.yCenter + * Resize the center position based on the current values in this.xCenter + * and this.yCenter (which are strings with a percentage or a value + * in pixels). The center positions are the variables this.currentXCenter + * and this.currentYCenter */ Graph3d.prototype._resizeCenter = function () { // calculate the horizontal center position - if (this.defaultXCenter.charAt(this.defaultXCenter.length - 1) === '%') { - this.xcenter = parseFloat(this.defaultXCenter) / 100 * this.frame.canvas.clientWidth; + if (this.xCenter.charAt(this.xCenter.length - 1) === '%') { + this.currentXCenter = parseFloat(this.xCenter) / 100 * this.frame.canvas.clientWidth; } else { - this.xcenter = parseFloat(this.defaultXCenter); // supposed to be in px + this.currentXCenter = parseFloat(this.xCenter); // supposed to be in px } // calculate the vertical center position - if (this.defaultYCenter.charAt(this.defaultYCenter.length - 1) === '%') { - this.ycenter = parseFloat(this.defaultYCenter) / 100 * (this.frame.canvas.clientHeight - this.frame.filter.clientHeight); + if (this.yCenter.charAt(this.yCenter.length - 1) === '%') { + this.currentYCenter = parseFloat(this.yCenter) / 100 * (this.frame.canvas.clientHeight - this.frame.filter.clientHeight); } else { - this.ycenter = parseFloat(this.defaultYCenter); // supposed to be in px + this.currentYCenter = parseFloat(this.yCenter); // supposed to be in px } }; - /** - * Set the rotation and distance of the camera - * @param {Object} pos An object with the camera position. The object - * contains three parameters: - * - horizontal {Number} - * The horizontal rotation, between 0 and 2*PI. - * Optional, can be left undefined. - * - vertical {Number} - * The vertical rotation, between 0 and 0.5*PI - * if vertical=0.5*PI, the graph is shown from the - * top. Optional, can be left undefined. - * - distance {Number} - * The (normalized) distance of the camera to the - * center of the graph, a value between 0.71 and 5.0. - * Optional, can be left undefined. - */ - Graph3d.prototype.setCameraPosition = function (pos) { - if (pos === undefined) { - return; - } - - if (pos.horizontal !== undefined && pos.vertical !== undefined) { - this.camera.setArmRotation(pos.horizontal, pos.vertical); - } - - if (pos.distance !== undefined) { - this.camera.setArmLength(pos.distance); - } - - this.redraw(); - }; - /** * Retrieve the current camera rotation - * @return {object} An object with parameters horizontal, vertical, and - * distance + * + * @returns {object} An object with parameters horizontal, vertical, and + * distance */ Graph3d.prototype.getCameraPosition = function () { var pos = this.camera.getArmRotation(); @@ -8362,6 +8597,7 @@ return /******/ (function(modules) { // webpackBootstrap /** * Replace the dataset of the Graph3d + * * @param {Array | DataSet | DataView} data */ Graph3d.prototype.setData = function (data) { @@ -8376,6 +8612,7 @@ return /******/ (function(modules) { // webpackBootstrap /** * Update the options. Options will be merged with current options + * * @param {Object} options */ Graph3d.prototype.setOptions = function (options) { @@ -8383,88 +8620,9 @@ return /******/ (function(modules) { // webpackBootstrap this.animationStop(); - if (options !== undefined) { - // retrieve parameter values - if (options.width !== undefined) this.width = options.width; - if (options.height !== undefined) this.height = options.height; - - if (options.xCenter !== undefined) this.defaultXCenter = options.xCenter; - if (options.yCenter !== undefined) this.defaultYCenter = options.yCenter; - - if (options.filterLabel !== undefined) this.filterLabel = options.filterLabel; - if (options.legendLabel !== undefined) this.legendLabel = options.legendLabel; - if (options.xLabel !== undefined) this.xLabel = options.xLabel; - if (options.yLabel !== undefined) this.yLabel = options.yLabel; - if (options.zLabel !== undefined) this.zLabel = options.zLabel; - - if (options.xValueLabel !== undefined) this.xValueLabel = options.xValueLabel; - if (options.yValueLabel !== undefined) this.yValueLabel = options.yValueLabel; - if (options.zValueLabel !== undefined) this.zValueLabel = options.zValueLabel; - - if (options.dotSizeRatio !== undefined) this.dotSizeRatio = options.dotSizeRatio; - - if (options.style !== undefined) { - var styleNumber = this._getStyleNumber(options.style); - if (styleNumber !== -1) { - this.style = styleNumber; - } - } - if (options.showGrid !== undefined) this.showGrid = options.showGrid; - if (options.showPerspective !== undefined) this.showPerspective = options.showPerspective; - if (options.showShadow !== undefined) this.showShadow = options.showShadow; - if (options.tooltip !== undefined) this.showTooltip = options.tooltip; - if (options.showAnimationControls !== undefined) this.showAnimationControls = options.showAnimationControls; - if (options.keepAspectRatio !== undefined) this.keepAspectRatio = options.keepAspectRatio; - if (options.verticalRatio !== undefined) this.verticalRatio = options.verticalRatio; - - if (options.animationInterval !== undefined) this.animationInterval = options.animationInterval; - if (options.animationPreload !== undefined) this.animationPreload = options.animationPreload; - if (options.animationAutoStart !== undefined) this.animationAutoStart = options.animationAutoStart; - - if (options.xBarWidth !== undefined) this.defaultXBarWidth = options.xBarWidth; - if (options.yBarWidth !== undefined) this.defaultYBarWidth = options.yBarWidth; - - if (options.xMin !== undefined) this.defaultXMin = options.xMin; - if (options.xStep !== undefined) this.defaultXStep = options.xStep; - if (options.xMax !== undefined) this.defaultXMax = options.xMax; - if (options.yMin !== undefined) this.defaultYMin = options.yMin; - if (options.yStep !== undefined) this.defaultYStep = options.yStep; - if (options.yMax !== undefined) this.defaultYMax = options.yMax; - if (options.zMin !== undefined) this.defaultZMin = options.zMin; - if (options.zStep !== undefined) this.defaultZStep = options.zStep; - if (options.zMax !== undefined) this.defaultZMax = options.zMax; - if (options.valueMin !== undefined) this.defaultValueMin = options.valueMin; - if (options.valueMax !== undefined) this.defaultValueMax = options.valueMax; - if (options.backgroundColor !== undefined) this._setBackgroundColor(options.backgroundColor); - - if (options.cameraPosition !== undefined) cameraPosition = options.cameraPosition; - - if (cameraPosition !== undefined) { - this.camera.setArmRotation(cameraPosition.horizontal, cameraPosition.vertical); - this.camera.setArmLength(cameraPosition.distance); - } - - // colors - if (options.axisColor !== undefined) this.axisColor = options.axisColor; - if (options.gridColor !== undefined) this.gridColor = options.gridColor; - if (options.dataColor) { - if (typeof options.dataColor === 'string') { - this.dataColor.fill = options.dataColor; - this.dataColor.stroke = options.dataColor; - } else { - if (options.dataColor.fill) { - this.dataColor.fill = options.dataColor.fill; - } - if (options.dataColor.stroke) { - this.dataColor.stroke = options.dataColor.stroke; - } - if (options.dataColor.strokeWidth !== undefined) { - this.dataColor.strokeWidth = options.dataColor.strokeWidth; - } - } - } - } + Settings.setOptions(options, this); + this.setPointDrawingMethod(); this.setSize(this.width, this.height); // re-load the data @@ -8478,12 +8636,57 @@ return /******/ (function(modules) { // webpackBootstrap } }; + /** + * Determine which point drawing method to use for the current graph style. + */ + Graph3d.prototype.setPointDrawingMethod = function () { + var method = undefined; + + switch (this.style) { + case Graph3d.STYLE.BAR: + method = Graph3d.prototype._redrawBarGraphPoint; + break; + case Graph3d.STYLE.BARCOLOR: + method = Graph3d.prototype._redrawBarColorGraphPoint; + break; + case Graph3d.STYLE.BARSIZE: + method = Graph3d.prototype._redrawBarSizeGraphPoint; + break; + case Graph3d.STYLE.DOT: + method = Graph3d.prototype._redrawDotGraphPoint; + break; + case Graph3d.STYLE.DOTLINE: + method = Graph3d.prototype._redrawDotLineGraphPoint; + break; + case Graph3d.STYLE.DOTCOLOR: + method = Graph3d.prototype._redrawDotColorGraphPoint; + break; + case Graph3d.STYLE.DOTSIZE: + method = Graph3d.prototype._redrawDotSizeGraphPoint; + break; + case Graph3d.STYLE.SURFACE: + method = Graph3d.prototype._redrawSurfaceGraphPoint; + break; + case Graph3d.STYLE.GRID: + method = Graph3d.prototype._redrawGridGraphPoint; + break; + case Graph3d.STYLE.LINE: + method = Graph3d.prototype._redrawLineGraphPoint; + break; + default: + throw new Error('Can not determine point drawing method ' + 'for graph style \'' + this.style + '\''); + break; + } + + this._pointDrawingMethod = method; + }; + /** * Redraw the Graph. */ Graph3d.prototype.redraw = function () { if (this.dataPoints === undefined) { - throw 'Error: graph data not initialized'; + throw new Error('Graph data not initialized'); } this._resizeCanvas(); @@ -8492,21 +8695,25 @@ return /******/ (function(modules) { // webpackBootstrap this._redrawClear(); this._redrawAxis(); - if (this.style === Graph3d.STYLE.GRID || this.style === Graph3d.STYLE.SURFACE) { - this._redrawDataGrid(); - } else if (this.style === Graph3d.STYLE.LINE) { - this._redrawDataLine(); - } else if (this.style === Graph3d.STYLE.BAR || this.style === Graph3d.STYLE.BARCOLOR || this.style === Graph3d.STYLE.BARSIZE) { - this._redrawDataBar(); - } else { - // style is DOT, DOTLINE, DOTCOLOR, DOTSIZE - this._redrawDataDot(); - } + this._redrawDataGraph(); this._redrawInfo(); this._redrawLegend(); }; + /** + * Get drawing context without exposing canvas + */ + Graph3d.prototype._getContext = function () { + var canvas = this.frame.canvas; + var ctx = canvas.getContext('2d'); + + ctx.lineJoin = 'round'; + ctx.lineCap = 'round'; + + return ctx; + }; + /** * Clear the canvas before redrawing */ @@ -8517,45 +8724,68 @@ return /******/ (function(modules) { // webpackBootstrap ctx.clearRect(0, 0, canvas.width, canvas.height); }; + Graph3d.prototype._dotSize = function () { + return this.frame.clientWidth * this.dotSizeRatio; + }; + /** - * Redraw the legend showing the colors + * Get legend width + */ + Graph3d.prototype._getLegendWidth = function () { + var width; + + if (this.style === Graph3d.STYLE.DOTSIZE) { + var dotSize = this._dotSize(); + width = dotSize / 2 + dotSize * 2; + } else if (this.style === Graph3d.STYLE.BARSIZE) { + width = this.xBarWidth; + } else { + width = 20; + } + return width; + }; + + /** + * Redraw the legend based on size, dot color, or surface height */ Graph3d.prototype._redrawLegend = function () { - var y; - if (this.style === Graph3d.STYLE.DOTCOLOR || this.style === Graph3d.STYLE.DOTSIZE) { + //Return without drawing anything, if no legend is specified + if (this.showLegend !== true) { + return; + } - var dotSize = this.frame.clientWidth * this.dotSizeRatio; + // Do not draw legend when graph style does not support + if (this.style === Graph3d.STYLE.LINE || this.style === Graph3d.STYLE.BARSIZE //TODO add legend support for BARSIZE + ) { + return; + } - var widthMin, widthMax; - if (this.style === Graph3d.STYLE.DOTSIZE) { - widthMin = dotSize / 2; // px - widthMax = dotSize / 2 + dotSize * 2; // Todo: put this in one function - } else { - widthMin = 20; // px - widthMax = 20; // px - } + // Legend types - size and color. Determine if size legend. + var isSizeLegend = this.style === Graph3d.STYLE.BARSIZE || this.style === Graph3d.STYLE.DOTSIZE; - var height = Math.max(this.frame.clientHeight * 0.25, 100); - var top = this.margin; - var right = this.frame.clientWidth - this.margin; - var left = right - widthMax; - var bottom = top + height; - } + // Legend is either tracking z values or style values. This flag if false means use z values. + var isValueLegend = this.style === Graph3d.STYLE.DOTSIZE || this.style === Graph3d.STYLE.DOTCOLOR || this.style === Graph3d.STYLE.BARCOLOR; - var canvas = this.frame.canvas; - var ctx = canvas.getContext('2d'); + var height = Math.max(this.frame.clientHeight * 0.25, 100); + var top = this.margin; + var width = this._getLegendWidth(); // px - overwritten by size legend + var right = this.frame.clientWidth - this.margin; + var left = right - width; + var bottom = top + height; + + var ctx = this._getContext(); ctx.lineWidth = 1; ctx.font = '14px arial'; // TODO: put in options - if (this.style === Graph3d.STYLE.DOTCOLOR) { + if (isSizeLegend === false) { // draw the color bar var ymin = 0; var ymax = height; // Todo: make height customizable + var y; + for (y = ymin; y < ymax; y++) { var f = (y - ymin) / (ymax - ymin); - - //var width = (dotSize / 2 + (1-f) * dotSize * 2); // Todo: put this in one function var hue = f * 240; var color = this._hsv2rgb(hue, 1, 1); @@ -8565,54 +8795,59 @@ return /******/ (function(modules) { // webpackBootstrap ctx.lineTo(right, top + y); ctx.stroke(); } - ctx.strokeStyle = this.axisColor; - ctx.strokeRect(left, top, widthMax, height); - } + ctx.strokeRect(left, top, width, height); + } else { - if (this.style === Graph3d.STYLE.DOTSIZE) { - // draw border around color bar + // draw the size legend box + var widthMin; + if (this.style === Graph3d.STYLE.DOTSIZE) { + var dotSize = this._dotSize(); + widthMin = dotSize / 2; // px + } else if (this.style === Graph3d.STYLE.BARSIZE) { + //widthMin = this.xBarWidth * 0.2 this is wrong - barwidth measures in terms of xvalues + } ctx.strokeStyle = this.axisColor; ctx.fillStyle = this.dataColor.fill; ctx.beginPath(); ctx.moveTo(left, top); ctx.lineTo(right, top); - ctx.lineTo(right - widthMax + widthMin, bottom); + ctx.lineTo(right - width + widthMin, bottom); ctx.lineTo(left, bottom); ctx.closePath(); ctx.fill(); ctx.stroke(); } - if (this.style === Graph3d.STYLE.DOTCOLOR || this.style === Graph3d.STYLE.DOTSIZE) { - // print values along the color bar - var gridLineLen = 5; // px - var step = new StepNumber(this.valueMin, this.valueMax, (this.valueMax - this.valueMin) / 5, true); - step.start(); - if (step.getCurrent() < this.valueMin) { - step.next(); - } - while (!step.end()) { - y = bottom - (step.getCurrent() - this.valueMin) / (this.valueMax - this.valueMin) * height; + // print value text along the legend edge + var gridLineLen = 5; // px - ctx.beginPath(); - ctx.moveTo(left - gridLineLen, y); - ctx.lineTo(left, y); - ctx.stroke(); - - ctx.textAlign = 'right'; - ctx.textBaseline = 'middle'; - ctx.fillStyle = this.axisColor; - ctx.fillText(step.getCurrent(), left - 2 * gridLineLen, y); + var legendMin = isValueLegend ? this.valueRange.min : this.zRange.min; + var legendMax = isValueLegend ? this.valueRange.max : this.zRange.max; + var step = new StepNumber(legendMin, legendMax, (legendMax - legendMin) / 5, true); + step.start(true); - step.next(); - } + var y; + var from; + var to; + while (!step.end()) { + y = bottom - (step.getCurrent() - legendMin) / (legendMax - legendMin) * height; + from = new Point2d(left - gridLineLen, y); + to = new Point2d(left, y); + this._line(ctx, from, to); ctx.textAlign = 'right'; - ctx.textBaseline = 'top'; - var label = this.legendLabel; - ctx.fillText(label, right, bottom + this.margin); + ctx.textBaseline = 'middle'; + ctx.fillStyle = this.axisColor; + ctx.fillText(step.getCurrent(), left - 2 * gridLineLen, y); + + step.next(); } + + ctx.textAlign = 'right'; + ctx.textBaseline = 'top'; + var label = this.legendLabel; + ctx.fillText(label, right, bottom + this.margin); }; /** @@ -8665,8 +8900,7 @@ return /******/ (function(modules) { // webpackBootstrap */ Graph3d.prototype._redrawInfo = function () { if (this.dataFilter) { - var canvas = this.frame.canvas; - var ctx = canvas.getContext('2d'); + var ctx = this._getContext(); ctx.font = '14px arial'; // TODO: put in options ctx.lineStyle = 'gray'; @@ -8680,12 +8914,100 @@ return /******/ (function(modules) { // webpackBootstrap } }; + /** + * Draw a line between 2d points 'from' and 'to'. + * + * If stroke style specified, set that as well. + */ + Graph3d.prototype._line = function (ctx, from, to, strokeStyle) { + if (strokeStyle !== undefined) { + ctx.strokeStyle = strokeStyle; + } + + ctx.beginPath(); + ctx.moveTo(from.x, from.y); + ctx.lineTo(to.x, to.y); + ctx.stroke(); + }; + + Graph3d.prototype.drawAxisLabelX = function (ctx, point3d, text, armAngle, yMargin) { + if (yMargin === undefined) { + yMargin = 0; + } + + var point2d = this._convert3Dto2D(point3d); + + if (Math.cos(armAngle * 2) > 0) { + ctx.textAlign = 'center'; + ctx.textBaseline = 'top'; + point2d.y += yMargin; + } else if (Math.sin(armAngle * 2) < 0) { + ctx.textAlign = 'right'; + ctx.textBaseline = 'middle'; + } else { + ctx.textAlign = 'left'; + ctx.textBaseline = 'middle'; + } + + ctx.fillStyle = this.axisColor; + ctx.fillText(text, point2d.x, point2d.y); + }; + + Graph3d.prototype.drawAxisLabelY = function (ctx, point3d, text, armAngle, yMargin) { + if (yMargin === undefined) { + yMargin = 0; + } + + var point2d = this._convert3Dto2D(point3d); + + if (Math.cos(armAngle * 2) < 0) { + ctx.textAlign = 'center'; + ctx.textBaseline = 'top'; + point2d.y += yMargin; + } else if (Math.sin(armAngle * 2) > 0) { + ctx.textAlign = 'right'; + ctx.textBaseline = 'middle'; + } else { + ctx.textAlign = 'left'; + ctx.textBaseline = 'middle'; + } + + ctx.fillStyle = this.axisColor; + ctx.fillText(text, point2d.x, point2d.y); + }; + + Graph3d.prototype.drawAxisLabelZ = function (ctx, point3d, text, offset) { + if (offset === undefined) { + offset = 0; + } + + var point2d = this._convert3Dto2D(point3d); + ctx.textAlign = 'right'; + ctx.textBaseline = 'middle'; + ctx.fillStyle = this.axisColor; + ctx.fillText(text, point2d.x - offset, point2d.y); + }; + + /** + + + /** + * Draw a line between 2d points 'from' and 'to'. + * + * If stroke style specified, set that as well. + */ + Graph3d.prototype._line3d = function (ctx, from, to, strokeStyle) { + var from2d = this._convert3Dto2D(from); + var to2d = this._convert3Dto2D(to); + + this._line(ctx, from2d, to2d, strokeStyle); + }; + /** * Redraw the axis */ Graph3d.prototype._redrawAxis = function () { - var canvas = this.frame.canvas, - ctx = canvas.getContext('2d'), + var ctx = this._getContext(), from, to, step, @@ -8696,9 +9018,7 @@ return /******/ (function(modules) { // webpackBootstrap zText, offset, xOffset, - yOffset, - xMin2d, - xMax2d; + yOffset; // TODO: get the actual rendered style of the containerElement //ctx.font = this.containerElement.style.font; @@ -8709,59 +9029,39 @@ return /******/ (function(modules) { // webpackBootstrap var gridLenY = 0.025 / this.scale.y; var textMargin = 5 / this.camera.getArmLength(); // px var armAngle = this.camera.getArmRotation().horizontal; + var armVector = new Point2d(Math.cos(armAngle), Math.sin(armAngle)); + + var xRange = this.xRange; + var yRange = this.yRange; + var zRange = this.zRange; // draw x-grid lines ctx.lineWidth = 1; prettyStep = this.defaultXStep === undefined; - step = new StepNumber(this.xMin, this.xMax, this.xStep, prettyStep); - step.start(); - if (step.getCurrent() < this.xMin) { - step.next(); - } + step = new StepNumber(xRange.min, xRange.max, this.xStep, prettyStep); + step.start(true); + while (!step.end()) { var x = step.getCurrent(); if (this.showGrid) { - from = this._convert3Dto2D(new Point3d(x, this.yMin, this.zMin)); - to = this._convert3Dto2D(new Point3d(x, this.yMax, this.zMin)); - ctx.strokeStyle = this.gridColor; - ctx.beginPath(); - ctx.moveTo(from.x, from.y); - ctx.lineTo(to.x, to.y); - ctx.stroke(); + from = new Point3d(x, yRange.min, zRange.min); + to = new Point3d(x, yRange.max, zRange.min); + this._line3d(ctx, from, to, this.gridColor); } else { - from = this._convert3Dto2D(new Point3d(x, this.yMin, this.zMin)); - to = this._convert3Dto2D(new Point3d(x, this.yMin + gridLenX, this.zMin)); - ctx.strokeStyle = this.axisColor; - ctx.beginPath(); - ctx.moveTo(from.x, from.y); - ctx.lineTo(to.x, to.y); - ctx.stroke(); + from = new Point3d(x, yRange.min, zRange.min); + to = new Point3d(x, yRange.min + gridLenX, zRange.min); + this._line3d(ctx, from, to, this.axisColor); - from = this._convert3Dto2D(new Point3d(x, this.yMax, this.zMin)); - to = this._convert3Dto2D(new Point3d(x, this.yMax - gridLenX, this.zMin)); - ctx.strokeStyle = this.axisColor; - ctx.beginPath(); - ctx.moveTo(from.x, from.y); - ctx.lineTo(to.x, to.y); - ctx.stroke(); + from = new Point3d(x, yRange.max, zRange.min); + to = new Point3d(x, yRange.max - gridLenX, zRange.min); + this._line3d(ctx, from, to, this.axisColor); } - yText = Math.cos(armAngle) > 0 ? this.yMin : this.yMax; - text = this._convert3Dto2D(new Point3d(x, yText, this.zMin)); - if (Math.cos(armAngle * 2) > 0) { - ctx.textAlign = 'center'; - ctx.textBaseline = 'top'; - text.y += textMargin; - } else if (Math.sin(armAngle * 2) < 0) { - ctx.textAlign = 'right'; - ctx.textBaseline = 'middle'; - } else { - ctx.textAlign = 'left'; - ctx.textBaseline = 'middle'; - } - ctx.fillStyle = this.axisColor; - ctx.fillText(' ' + this.xValueLabel(step.getCurrent()) + ' ', text.x, text.y); + yText = armVector.x > 0 ? yRange.min : yRange.max; + var point3d = new Point3d(x, yText, zRange.min); + var msg = ' ' + this.xValueLabel(x) + ' '; + this.drawAxisLabelX(ctx, point3d, msg, armAngle, textMargin); step.next(); } @@ -8769,53 +9069,30 @@ return /******/ (function(modules) { // webpackBootstrap // draw y-grid lines ctx.lineWidth = 1; prettyStep = this.defaultYStep === undefined; - step = new StepNumber(this.yMin, this.yMax, this.yStep, prettyStep); - step.start(); - if (step.getCurrent() < this.yMin) { - step.next(); - } + step = new StepNumber(yRange.min, yRange.max, this.yStep, prettyStep); + step.start(true); + while (!step.end()) { + var y = step.getCurrent(); + if (this.showGrid) { - from = this._convert3Dto2D(new Point3d(this.xMin, step.getCurrent(), this.zMin)); - to = this._convert3Dto2D(new Point3d(this.xMax, step.getCurrent(), this.zMin)); - ctx.strokeStyle = this.gridColor; - ctx.beginPath(); - ctx.moveTo(from.x, from.y); - ctx.lineTo(to.x, to.y); - ctx.stroke(); + from = new Point3d(xRange.min, y, zRange.min); + to = new Point3d(xRange.max, y, zRange.min); + this._line3d(ctx, from, to, this.gridColor); } else { - from = this._convert3Dto2D(new Point3d(this.xMin, step.getCurrent(), this.zMin)); - to = this._convert3Dto2D(new Point3d(this.xMin + gridLenY, step.getCurrent(), this.zMin)); - ctx.strokeStyle = this.axisColor; - ctx.beginPath(); - ctx.moveTo(from.x, from.y); - ctx.lineTo(to.x, to.y); - ctx.stroke(); + from = new Point3d(xRange.min, y, zRange.min); + to = new Point3d(xRange.min + gridLenY, y, zRange.min); + this._line3d(ctx, from, to, this.axisColor); - from = this._convert3Dto2D(new Point3d(this.xMax, step.getCurrent(), this.zMin)); - to = this._convert3Dto2D(new Point3d(this.xMax - gridLenY, step.getCurrent(), this.zMin)); - ctx.strokeStyle = this.axisColor; - ctx.beginPath(); - ctx.moveTo(from.x, from.y); - ctx.lineTo(to.x, to.y); - ctx.stroke(); + from = new Point3d(xRange.max, y, zRange.min); + to = new Point3d(xRange.max - gridLenY, y, zRange.min); + this._line3d(ctx, from, to, this.axisColor); } - xText = Math.sin(armAngle) > 0 ? this.xMin : this.xMax; - text = this._convert3Dto2D(new Point3d(xText, step.getCurrent(), this.zMin)); - if (Math.cos(armAngle * 2) < 0) { - ctx.textAlign = 'center'; - ctx.textBaseline = 'top'; - text.y += textMargin; - } else if (Math.sin(armAngle * 2) > 0) { - ctx.textAlign = 'right'; - ctx.textBaseline = 'middle'; - } else { - ctx.textAlign = 'left'; - ctx.textBaseline = 'middle'; - } - ctx.fillStyle = this.axisColor; - ctx.fillText(' ' + this.yValueLabel(step.getCurrent()) + ' ', text.x, text.y); + xText = armVector.y > 0 ? xRange.min : xRange.max; + point3d = new Point3d(xText, y, zRange.min); + var msg = ' ' + this.yValueLabel(y) + ' '; + this.drawAxisLabelY(ctx, point3d, msg, armAngle, textMargin); step.next(); } @@ -8823,130 +9100,88 @@ return /******/ (function(modules) { // webpackBootstrap // draw z-grid lines and axis ctx.lineWidth = 1; prettyStep = this.defaultZStep === undefined; - step = new StepNumber(this.zMin, this.zMax, this.zStep, prettyStep); - step.start(); - if (step.getCurrent() < this.zMin) { - step.next(); - } - xText = Math.cos(armAngle) > 0 ? this.xMin : this.xMax; - yText = Math.sin(armAngle) < 0 ? this.yMin : this.yMax; + step = new StepNumber(zRange.min, zRange.max, this.zStep, prettyStep); + step.start(true); + + xText = armVector.x > 0 ? xRange.min : xRange.max; + yText = armVector.y < 0 ? yRange.min : yRange.max; + while (!step.end()) { + var z = step.getCurrent(); + // TODO: make z-grid lines really 3d? - from = this._convert3Dto2D(new Point3d(xText, yText, step.getCurrent())); - ctx.strokeStyle = this.axisColor; - ctx.beginPath(); - ctx.moveTo(from.x, from.y); - ctx.lineTo(from.x - textMargin, from.y); - ctx.stroke(); + var from3d = new Point3d(xText, yText, z); + var from2d = this._convert3Dto2D(from3d); + to = new Point2d(from2d.x - textMargin, from2d.y); + this._line(ctx, from2d, to, this.axisColor); - ctx.textAlign = 'right'; - ctx.textBaseline = 'middle'; - ctx.fillStyle = this.axisColor; - ctx.fillText(this.zValueLabel(step.getCurrent()) + ' ', from.x - 5, from.y); + var msg = this.zValueLabel(z) + ' '; + this.drawAxisLabelZ(ctx, from3d, msg, 5); step.next(); } + ctx.lineWidth = 1; - from = this._convert3Dto2D(new Point3d(xText, yText, this.zMin)); - to = this._convert3Dto2D(new Point3d(xText, yText, this.zMax)); - ctx.strokeStyle = this.axisColor; - ctx.beginPath(); - ctx.moveTo(from.x, from.y); - ctx.lineTo(to.x, to.y); - ctx.stroke(); + from = new Point3d(xText, yText, zRange.min); + to = new Point3d(xText, yText, zRange.max); + this._line3d(ctx, from, to, this.axisColor); // draw x-axis + var xMin2d; + var xMax2d; ctx.lineWidth = 1; + // line at yMin - xMin2d = this._convert3Dto2D(new Point3d(this.xMin, this.yMin, this.zMin)); - xMax2d = this._convert3Dto2D(new Point3d(this.xMax, this.yMin, this.zMin)); - ctx.strokeStyle = this.axisColor; - ctx.beginPath(); - ctx.moveTo(xMin2d.x, xMin2d.y); - ctx.lineTo(xMax2d.x, xMax2d.y); - ctx.stroke(); + xMin2d = new Point3d(xRange.min, yRange.min, zRange.min); + xMax2d = new Point3d(xRange.max, yRange.min, zRange.min); + this._line3d(ctx, xMin2d, xMax2d, this.axisColor); // line at ymax - xMin2d = this._convert3Dto2D(new Point3d(this.xMin, this.yMax, this.zMin)); - xMax2d = this._convert3Dto2D(new Point3d(this.xMax, this.yMax, this.zMin)); - ctx.strokeStyle = this.axisColor; - ctx.beginPath(); - ctx.moveTo(xMin2d.x, xMin2d.y); - ctx.lineTo(xMax2d.x, xMax2d.y); - ctx.stroke(); + xMin2d = new Point3d(xRange.min, yRange.max, zRange.min); + xMax2d = new Point3d(xRange.max, yRange.max, zRange.min); + this._line3d(ctx, xMin2d, xMax2d, this.axisColor); // draw y-axis ctx.lineWidth = 1; // line at xMin - from = this._convert3Dto2D(new Point3d(this.xMin, this.yMin, this.zMin)); - to = this._convert3Dto2D(new Point3d(this.xMin, this.yMax, this.zMin)); - ctx.strokeStyle = this.axisColor; - ctx.beginPath(); - ctx.moveTo(from.x, from.y); - ctx.lineTo(to.x, to.y); - ctx.stroke(); + from = new Point3d(xRange.min, yRange.min, zRange.min); + to = new Point3d(xRange.min, yRange.max, zRange.min); + this._line3d(ctx, from, to, this.axisColor); // line at xMax - from = this._convert3Dto2D(new Point3d(this.xMax, this.yMin, this.zMin)); - to = this._convert3Dto2D(new Point3d(this.xMax, this.yMax, this.zMin)); - ctx.strokeStyle = this.axisColor; - ctx.beginPath(); - ctx.moveTo(from.x, from.y); - ctx.lineTo(to.x, to.y); - ctx.stroke(); + from = new Point3d(xRange.max, yRange.min, zRange.min); + to = new Point3d(xRange.max, yRange.max, zRange.min); + this._line3d(ctx, from, to, this.axisColor); // draw x-label var xLabel = this.xLabel; if (xLabel.length > 0) { yOffset = 0.1 / this.scale.y; - xText = (this.xMin + this.xMax) / 2; - yText = Math.cos(armAngle) > 0 ? this.yMin - yOffset : this.yMax + yOffset; - text = this._convert3Dto2D(new Point3d(xText, yText, this.zMin)); - if (Math.cos(armAngle * 2) > 0) { - ctx.textAlign = 'center'; - ctx.textBaseline = 'top'; - } else if (Math.sin(armAngle * 2) < 0) { - ctx.textAlign = 'right'; - ctx.textBaseline = 'middle'; - } else { - ctx.textAlign = 'left'; - ctx.textBaseline = 'middle'; - } - ctx.fillStyle = this.axisColor; - ctx.fillText(xLabel, text.x, text.y); + xText = xRange.center() / 2; + yText = armVector.x > 0 ? yRange.min - yOffset : yRange.max + yOffset; + text = new Point3d(xText, yText, zRange.min); + this.drawAxisLabelX(ctx, text, xLabel, armAngle); } // draw y-label var yLabel = this.yLabel; if (yLabel.length > 0) { xOffset = 0.1 / this.scale.x; - xText = Math.sin(armAngle) > 0 ? this.xMin - xOffset : this.xMax + xOffset; - yText = (this.yMin + this.yMax) / 2; - text = this._convert3Dto2D(new Point3d(xText, yText, this.zMin)); - if (Math.cos(armAngle * 2) < 0) { - ctx.textAlign = 'center'; - ctx.textBaseline = 'top'; - } else if (Math.sin(armAngle * 2) > 0) { - ctx.textAlign = 'right'; - ctx.textBaseline = 'middle'; - } else { - ctx.textAlign = 'left'; - ctx.textBaseline = 'middle'; - } - ctx.fillStyle = this.axisColor; - ctx.fillText(yLabel, text.x, text.y); + xText = armVector.y > 0 ? xRange.min - xOffset : xRange.max + xOffset; + yText = yRange.center() / 2; + text = new Point3d(xText, yText, zRange.min); + + this.drawAxisLabelY(ctx, text, yLabel, armAngle); } // draw z-label var zLabel = this.zLabel; if (zLabel.length > 0) { offset = 30; // pixels. // TODO: relate to the max width of the values on the z axis? - xText = Math.cos(armAngle) > 0 ? this.xMin : this.xMax; - yText = Math.sin(armAngle) < 0 ? this.yMin : this.yMax; - zText = (this.zMin + this.zMax) / 2; - text = this._convert3Dto2D(new Point3d(xText, yText, zText)); - ctx.textAlign = 'right'; - ctx.textBaseline = 'middle'; - ctx.fillStyle = this.axisColor; - ctx.fillText(zLabel, text.x - offset, text.y); + xText = armVector.x > 0 ? xRange.min : xRange.max; + yText = armVector.y < 0 ? yRange.min : yRange.max; + zText = zRange.center() / 2; + text = new Point3d(xText, yText, zText); + + this.drawAxisLabelZ(ctx, text, zLabel, offset); } }; @@ -8984,413 +9219,402 @@ return /******/ (function(modules) { // webpackBootstrap return 'RGB(' + parseInt(R * 255) + ',' + parseInt(G * 255) + ',' + parseInt(B * 255) + ')'; }; + Graph3d.prototype._getStrokeWidth = function (point) { + if (point !== undefined) { + if (this.showPerspective) { + return 1 / -point.trans.z * this.dataColor.strokeWidth; + } else { + return -(this.eye.z / this.camera.getArmLength()) * this.dataColor.strokeWidth; + } + } + + return this.dataColor.strokeWidth; + }; + + // ----------------------------------------------------------------------------- + // Drawing primitives for the graphs + // ----------------------------------------------------------------------------- + + /** - * Draw all datapoints as a grid - * This function can be used when the style is 'grid' + * Draw a bar element in the view with the given properties. */ - Graph3d.prototype._redrawDataGrid = function () { - var canvas = this.frame.canvas, - ctx = canvas.getContext('2d'), - point, - right, - top, - cross, - i, - topSideVisible, - fillStyle, - strokeStyle, - lineWidth, - h, - s, - v, - zAvg; + Graph3d.prototype._redrawBar = function (ctx, point, xWidth, yWidth, color, borderColor) { + var i, j, surface; - ctx.lineJoin = 'round'; - ctx.lineCap = 'round'; + // calculate all corner points + var me = this; + var point3d = point.point; + var zMin = this.zRange.min; + var top = [{ point: new Point3d(point3d.x - xWidth, point3d.y - yWidth, point3d.z) }, { point: new Point3d(point3d.x + xWidth, point3d.y - yWidth, point3d.z) }, { point: new Point3d(point3d.x + xWidth, point3d.y + yWidth, point3d.z) }, { point: new Point3d(point3d.x - xWidth, point3d.y + yWidth, point3d.z) }]; + var bottom = [{ point: new Point3d(point3d.x - xWidth, point3d.y - yWidth, zMin) }, { point: new Point3d(point3d.x + xWidth, point3d.y - yWidth, zMin) }, { point: new Point3d(point3d.x + xWidth, point3d.y + yWidth, zMin) }, { point: new Point3d(point3d.x - xWidth, point3d.y + yWidth, zMin) }]; + + // calculate screen location of the points + top.forEach(function (obj) { + obj.screen = me._convert3Dto2D(obj.point); + }); + bottom.forEach(function (obj) { + obj.screen = me._convert3Dto2D(obj.point); + }); - if (this.dataPoints === undefined || this.dataPoints.length <= 0) return; // TODO: throw exception? + // create five sides, calculate both corner points and center points + var surfaces = [{ corners: top, center: Point3d.avg(bottom[0].point, bottom[2].point) }, { corners: [top[0], top[1], bottom[1], bottom[0]], center: Point3d.avg(bottom[1].point, bottom[0].point) }, { corners: [top[1], top[2], bottom[2], bottom[1]], center: Point3d.avg(bottom[2].point, bottom[1].point) }, { corners: [top[2], top[3], bottom[3], bottom[2]], center: Point3d.avg(bottom[3].point, bottom[2].point) }, { corners: [top[3], top[0], bottom[0], bottom[3]], center: Point3d.avg(bottom[0].point, bottom[3].point) }]; + point.surfaces = surfaces; - // calculate the translations and screen position of all points - for (i = 0; i < this.dataPoints.length; i++) { - var trans = this._convertPointToTranslation(this.dataPoints[i].point); - var screen = this._convertTranslationToScreen(trans); + // calculate the distance of each of the surface centers to the camera + for (j = 0; j < surfaces.length; j++) { + surface = surfaces[j]; + var transCenter = this._convertPointToTranslation(surface.center); + surface.dist = this.showPerspective ? transCenter.length() : -transCenter.z; + // TODO: this dept calculation doesn't work 100% of the cases due to perspective, + // but the current solution is fast/simple and works in 99.9% of all cases + // the issue is visible in example 14, with graph.setCameraPosition({horizontal: 2.97, vertical: 0.5, distance: 0.9}) + } - this.dataPoints[i].trans = trans; - this.dataPoints[i].screen = screen; + // order the surfaces by their (translated) depth + surfaces.sort(function (a, b) { + var diff = b.dist - a.dist; + if (diff) return diff; - // calculate the translation of the point at the bottom (needed for sorting) - var transBottom = this._convertPointToTranslation(this.dataPoints[i].bottom); - this.dataPoints[i].dist = this.showPerspective ? transBottom.length() : -transBottom.z; - } + // if equal depth, sort the top surface last + if (a.corners === top) return 1; + if (b.corners === top) return -1; - // sort the points on depth of their (x,y) position (not on z) - var sortDepth = function sortDepth(a, b) { - return b.dist - a.dist; - }; - this.dataPoints.sort(sortDepth); + // both are equal + return 0; + }); - if (this.style === Graph3d.STYLE.SURFACE) { - for (i = 0; i < this.dataPoints.length; i++) { - point = this.dataPoints[i]; - right = this.dataPoints[i].pointRight; - top = this.dataPoints[i].pointTop; - cross = this.dataPoints[i].pointCross; - - if (point !== undefined && right !== undefined && top !== undefined && cross !== undefined) { - - if (this.showGrayBottom || this.showShadow) { - // calculate the cross product of the two vectors from center - // to left and right, in order to know whether we are looking at the - // bottom or at the top side. We can also use the cross product - // for calculating light intensity - var aDiff = Point3d.subtract(cross.trans, point.trans); - var bDiff = Point3d.subtract(top.trans, right.trans); - var crossproduct = Point3d.crossProduct(aDiff, bDiff); - var len = crossproduct.length(); - // FIXME: there is a bug with determining the surface side (shadow or colored) - - topSideVisible = crossproduct.z > 0; - } else { - topSideVisible = true; - } + // draw the ordered surfaces + ctx.lineWidth = this._getStrokeWidth(point); + ctx.strokeStyle = borderColor; + ctx.fillStyle = color; + // NOTE: we start at j=2 instead of j=0 as we don't need to draw the two surfaces at the backside + for (j = 2; j < surfaces.length; j++) { + surface = surfaces[j]; + this._polygon(ctx, surface.corners); + } + }; - if (topSideVisible) { - // calculate Hue from the current value. At zMin the hue is 240, at zMax the hue is 0 - zAvg = (point.point.z + right.point.z + top.point.z + cross.point.z) / 4; - h = (1 - (zAvg - this.zMin) * this.scale.z / this.verticalRatio) * 240; - s = 1; // saturation + /** + * Draw a polygon using the passed points and fill it with the passed style and stroke. + * + * @param points an array of points. + * @param fillStyle optional; the fill style to set + * @param strokeStyle optional; the stroke style to set + */ + Graph3d.prototype._polygon = function (ctx, points, fillStyle, strokeStyle) { + if (points.length < 2) { + return; + } - if (this.showShadow) { - v = Math.min(1 + crossproduct.x / len / 2, 1); // value. TODO: scale - fillStyle = this._hsv2rgb(h, s, v); - strokeStyle = fillStyle; - } else { - v = 1; - fillStyle = this._hsv2rgb(h, s, v); - strokeStyle = this.axisColor; // TODO: should be customizable - } - } else { - fillStyle = 'gray'; - strokeStyle = this.axisColor; - } + if (fillStyle !== undefined) { + ctx.fillStyle = fillStyle; + } + if (strokeStyle !== undefined) { + ctx.strokeStyle = strokeStyle; + } + ctx.beginPath(); + ctx.moveTo(points[0].screen.x, points[0].screen.y); - ctx.lineWidth = this._getStrokeWidth(point); - ctx.fillStyle = fillStyle; - ctx.strokeStyle = strokeStyle; - ctx.beginPath(); - ctx.moveTo(point.screen.x, point.screen.y); - ctx.lineTo(right.screen.x, right.screen.y); - ctx.lineTo(cross.screen.x, cross.screen.y); - ctx.lineTo(top.screen.x, top.screen.y); - ctx.closePath(); - ctx.fill(); - ctx.stroke(); // TODO: only draw stroke when strokeWidth > 0 - } - } - } else { - // grid style - for (i = 0; i < this.dataPoints.length; i++) { - point = this.dataPoints[i]; - right = this.dataPoints[i].pointRight; - top = this.dataPoints[i].pointTop; - - if (point !== undefined && right !== undefined) { - // calculate Hue from the current value. At zMin the hue is 240, at zMax the hue is 0 - zAvg = (point.point.z + right.point.z) / 2; - h = (1 - (zAvg - this.zMin) * this.scale.z / this.verticalRatio) * 240; - - ctx.lineWidth = this._getStrokeWidth(point) * 2; - ctx.strokeStyle = this._hsv2rgb(h, 1, 1); - ctx.beginPath(); - ctx.moveTo(point.screen.x, point.screen.y); - ctx.lineTo(right.screen.x, right.screen.y); - ctx.stroke(); - } + for (var i = 1; i < points.length; ++i) { + var point = points[i]; + ctx.lineTo(point.screen.x, point.screen.y); + } - if (point !== undefined && top !== undefined) { - // calculate Hue from the current value. At zMin the hue is 240, at zMax the hue is 0 - zAvg = (point.point.z + top.point.z) / 2; - h = (1 - (zAvg - this.zMin) * this.scale.z / this.verticalRatio) * 240; + ctx.closePath(); + ctx.fill(); + ctx.stroke(); // TODO: only draw stroke when strokeWidth > 0 + }; - ctx.lineWidth = this._getStrokeWidth(point) * 2; - ctx.strokeStyle = this._hsv2rgb(h, 1, 1); - ctx.beginPath(); - ctx.moveTo(point.screen.x, point.screen.y); - ctx.lineTo(top.screen.x, top.screen.y); - ctx.stroke(); - } - } - } + /** + * @param size optional; if not specified use value from 'this._dotSize()` + */ + Graph3d.prototype._drawCircle = function (ctx, point, color, borderColor, size) { + var radius = this._calcRadius(point, size); + + ctx.lineWidth = this._getStrokeWidth(point); + ctx.strokeStyle = borderColor; + ctx.fillStyle = color; + ctx.beginPath(); + ctx.arc(point.screen.x, point.screen.y, radius, 0, Math.PI * 2, true); + ctx.fill(); + ctx.stroke(); }; - Graph3d.prototype._getStrokeWidth = function (point) { - if (point !== undefined) { - if (this.showPerspective) { - return 1 / -point.trans.z * this.dataColor.strokeWidth; - } else { - return -(this.eye.z / this.camera.getArmLength()) * this.dataColor.strokeWidth; - } - } + /** + * Determine the colors for the 'regular' graph styles. + */ + Graph3d.prototype._getColorsRegular = function (point) { + // calculate Hue from the current value. At zMin the hue is 240, at zMax the hue is 0 + var hue = (1 - (point.point.z - this.zRange.min) * this.scale.z / this.verticalRatio) * 240; + var color = this._hsv2rgb(hue, 1, 1); + var borderColor = this._hsv2rgb(hue, 1, 0.8); - return this.dataColor.strokeWidth; + return { + fill: color, + border: borderColor + }; }; /** - * Draw all datapoints as dots. - * This function can be used when the style is 'dot' or 'dot-line' + * Get the colors for the 'color' graph styles. + * These styles are currently: 'bar-color' and 'dot-color' */ - Graph3d.prototype._redrawDataDot = function () { - var canvas = this.frame.canvas; - var ctx = canvas.getContext('2d'); - var i; + Graph3d.prototype._getColorsColor = function (point) { + // calculate the color based on the value + var hue = (1 - (point.point.value - this.valueRange.min) * this.scale.value) * 240; + var color = this._hsv2rgb(hue, 1, 1); + var borderColor = this._hsv2rgb(hue, 1, 0.8); - if (this.dataPoints === undefined || this.dataPoints.length <= 0) return; // TODO: throw exception? + return { + fill: color, + border: borderColor + }; + }; - // calculate the translations of all points - for (i = 0; i < this.dataPoints.length; i++) { - var trans = this._convertPointToTranslation(this.dataPoints[i].point); - var screen = this._convertTranslationToScreen(trans); - this.dataPoints[i].trans = trans; - this.dataPoints[i].screen = screen; + /** + * Get the colors for the 'size' graph styles. + * These styles are currently: 'bar-size' and 'dot-size' + */ + Graph3d.prototype._getColorsSize = function () { + return { + fill: this.dataColor.fill, + border: this.dataColor.stroke + }; + }; - // calculate the distance from the point at the bottom to the camera - var transBottom = this._convertPointToTranslation(this.dataPoints[i].bottom); - this.dataPoints[i].dist = this.showPerspective ? transBottom.length() : -transBottom.z; + /** + * Determine the size of a point on-screen, as determined by the + * distance to the camera. + * + * @param size the size that needs to be translated to screen coordinates. + * optional; if not passed, use the default point size. + */ + Graph3d.prototype._calcRadius = function (point, size) { + if (size === undefined) { + size = this._dotSize(); } - // order the translated points by depth - var sortDepth = function sortDepth(a, b) { - return b.dist - a.dist; - }; - this.dataPoints.sort(sortDepth); + var radius; + if (this.showPerspective) { + radius = size / -point.trans.z; + } else { + radius = size * -(this.eye.z / this.camera.getArmLength()); + } + if (radius < 0) { + radius = 0; + } - // draw the datapoints as colored circles - var dotSize = this.frame.clientWidth * this.dotSizeRatio; // px - for (i = 0; i < this.dataPoints.length; i++) { - var point = this.dataPoints[i]; + return radius; + }; - if (this.style === Graph3d.STYLE.DOTLINE) { - // draw a vertical line from the bottom to the graph value - //var from = this._convert3Dto2D(new Point3d(point.point.x, point.point.y, this.zMin)); - var from = this._convert3Dto2D(point.bottom); - ctx.lineWidth = 1; - ctx.strokeStyle = this.gridColor; - ctx.beginPath(); - ctx.moveTo(from.x, from.y); - ctx.lineTo(point.screen.x, point.screen.y); - ctx.stroke(); - } + // ----------------------------------------------------------------------------- + // Methods for drawing points per graph style. + // ----------------------------------------------------------------------------- - // calculate radius for the circle - var size; - if (this.style === Graph3d.STYLE.DOTSIZE) { - size = dotSize / 2 + 2 * dotSize * (point.point.value - this.valueMin) / (this.valueMax - this.valueMin); - } else { - size = dotSize; - } - var radius; - if (this.showPerspective) { - radius = size / -point.trans.z; - } else { - radius = size * -(this.eye.z / this.camera.getArmLength()); - } - if (radius < 0) { - radius = 0; - } + /** + * Draw single datapoint for graph style 'bar'. + */ + Graph3d.prototype._redrawBarGraphPoint = function (ctx, point) { + var xWidth = this.xBarWidth / 2; + var yWidth = this.yBarWidth / 2; + var colors = this._getColorsRegular(point); - var hue, color, borderColor; - if (this.style === Graph3d.STYLE.DOTCOLOR) { - // calculate the color based on the value - hue = (1 - (point.point.value - this.valueMin) * this.scale.value) * 240; - color = this._hsv2rgb(hue, 1, 1); - borderColor = this._hsv2rgb(hue, 1, 0.8); - } else if (this.style === Graph3d.STYLE.DOTSIZE) { - color = this.dataColor.fill; - borderColor = this.dataColor.stroke; - } else { - // calculate Hue from the current value. At zMin the hue is 240, at zMax the hue is 0 - hue = (1 - (point.point.z - this.zMin) * this.scale.z / this.verticalRatio) * 240; - color = this._hsv2rgb(hue, 1, 1); - borderColor = this._hsv2rgb(hue, 1, 0.8); - } + this._redrawBar(ctx, point, xWidth, yWidth, colors.fill, colors.border); + }; - // draw the circle - ctx.lineWidth = this._getStrokeWidth(point); - ctx.strokeStyle = borderColor; - ctx.fillStyle = color; - ctx.beginPath(); - ctx.arc(point.screen.x, point.screen.y, radius, 0, Math.PI * 2, true); - ctx.fill(); - ctx.stroke(); - } + /** + * Draw single datapoint for graph style 'bar-color'. + */ + Graph3d.prototype._redrawBarColorGraphPoint = function (ctx, point) { + var xWidth = this.xBarWidth / 2; + var yWidth = this.yBarWidth / 2; + var colors = this._getColorsColor(point); + + this._redrawBar(ctx, point, xWidth, yWidth, colors.fill, colors.border); }; /** - * Draw all datapoints as bars. - * This function can be used when the style is 'bar', 'bar-color', or 'bar-size' + * Draw single datapoint for graph style 'bar-size'. */ - Graph3d.prototype._redrawDataBar = function () { - var canvas = this.frame.canvas; - var ctx = canvas.getContext('2d'); - var i, j, surface, corners; + Graph3d.prototype._redrawBarSizeGraphPoint = function (ctx, point) { + // calculate size for the bar + var fraction = (point.point.value - this.valueRange.min) / this.valueRange.range(); + var xWidth = this.xBarWidth / 2 * (fraction * 0.8 + 0.2); + var yWidth = this.yBarWidth / 2 * (fraction * 0.8 + 0.2); - if (this.dataPoints === undefined || this.dataPoints.length <= 0) return; // TODO: throw exception? + var colors = this._getColorsSize(); - // calculate the translations of all points - for (i = 0; i < this.dataPoints.length; i++) { - var trans = this._convertPointToTranslation(this.dataPoints[i].point); - var screen = this._convertTranslationToScreen(trans); - this.dataPoints[i].trans = trans; - this.dataPoints[i].screen = screen; + this._redrawBar(ctx, point, xWidth, yWidth, colors.fill, colors.border); + }; - // calculate the distance from the point at the bottom to the camera - var transBottom = this._convertPointToTranslation(this.dataPoints[i].bottom); - this.dataPoints[i].dist = this.showPerspective ? transBottom.length() : -transBottom.z; - } + /** + * Draw single datapoint for graph style 'dot'. + */ + Graph3d.prototype._redrawDotGraphPoint = function (ctx, point) { + var colors = this._getColorsRegular(point); - // order the translated points by depth - var sortDepth = function sortDepth(a, b) { - return b.dist - a.dist; - }; - this.dataPoints.sort(sortDepth); + this._drawCircle(ctx, point, colors.fill, colors.border); + }; - ctx.lineJoin = 'round'; - ctx.lineCap = 'round'; + /** + * Draw single datapoint for graph style 'dot-line'. + */ + Graph3d.prototype._redrawDotLineGraphPoint = function (ctx, point) { + // draw a vertical line from the XY-plane to the graph value + var from = this._convert3Dto2D(point.bottom); + ctx.lineWidth = 1; + this._line(ctx, from, point.screen, this.gridColor); - // draw the datapoints as bars - var xWidth = this.xBarWidth / 2; - var yWidth = this.yBarWidth / 2; - for (i = 0; i < this.dataPoints.length; i++) { - var point = this.dataPoints[i]; + this._redrawDotGraphPoint(ctx, point); + }; - // determine color - var hue, color, borderColor; - if (this.style === Graph3d.STYLE.BARCOLOR) { - // calculate the color based on the value - hue = (1 - (point.point.value - this.valueMin) * this.scale.value) * 240; - color = this._hsv2rgb(hue, 1, 1); - borderColor = this._hsv2rgb(hue, 1, 0.8); - } else if (this.style === Graph3d.STYLE.BARSIZE) { - color = this.dataColor.fill; - borderColor = this.dataColor.stroke; - } else { - // calculate Hue from the current value. At zMin the hue is 240, at zMax the hue is 0 - hue = (1 - (point.point.z - this.zMin) * this.scale.z / this.verticalRatio) * 240; - color = this._hsv2rgb(hue, 1, 1); - borderColor = this._hsv2rgb(hue, 1, 0.8); - } + /** + * Draw single datapoint for graph style 'dot-color'. + */ + Graph3d.prototype._redrawDotColorGraphPoint = function (ctx, point) { + var colors = this._getColorsColor(point); - // calculate size for the bar - if (this.style === Graph3d.STYLE.BARSIZE) { - xWidth = this.xBarWidth / 2 * ((point.point.value - this.valueMin) / (this.valueMax - this.valueMin) * 0.8 + 0.2); - yWidth = this.yBarWidth / 2 * ((point.point.value - this.valueMin) / (this.valueMax - this.valueMin) * 0.8 + 0.2); - } + this._drawCircle(ctx, point, colors.fill, colors.border); + }; - // calculate all corner points - var me = this; - var point3d = point.point; - var top = [{ point: new Point3d(point3d.x - xWidth, point3d.y - yWidth, point3d.z) }, { point: new Point3d(point3d.x + xWidth, point3d.y - yWidth, point3d.z) }, { point: new Point3d(point3d.x + xWidth, point3d.y + yWidth, point3d.z) }, { point: new Point3d(point3d.x - xWidth, point3d.y + yWidth, point3d.z) }]; - var bottom = [{ point: new Point3d(point3d.x - xWidth, point3d.y - yWidth, this.zMin) }, { point: new Point3d(point3d.x + xWidth, point3d.y - yWidth, this.zMin) }, { point: new Point3d(point3d.x + xWidth, point3d.y + yWidth, this.zMin) }, { point: new Point3d(point3d.x - xWidth, point3d.y + yWidth, this.zMin) }]; + /** + * Draw single datapoint for graph style 'dot-size'. + */ + Graph3d.prototype._redrawDotSizeGraphPoint = function (ctx, point) { + var dotSize = this._dotSize(); + var fraction = (point.point.value - this.valueRange.min) / this.valueRange.range(); + var size = dotSize / 2 + 2 * dotSize * fraction; + var colors = this._getColorsSize(); - // calculate screen location of the points - top.forEach(function (obj) { - obj.screen = me._convert3Dto2D(obj.point); - }); - bottom.forEach(function (obj) { - obj.screen = me._convert3Dto2D(obj.point); - }); + this._drawCircle(ctx, point, colors.fill, colors.border, size); + }; - // create five sides, calculate both corner points and center points - var surfaces = [{ corners: top, center: Point3d.avg(bottom[0].point, bottom[2].point) }, { corners: [top[0], top[1], bottom[1], bottom[0]], center: Point3d.avg(bottom[1].point, bottom[0].point) }, { corners: [top[1], top[2], bottom[2], bottom[1]], center: Point3d.avg(bottom[2].point, bottom[1].point) }, { corners: [top[2], top[3], bottom[3], bottom[2]], center: Point3d.avg(bottom[3].point, bottom[2].point) }, { corners: [top[3], top[0], bottom[0], bottom[3]], center: Point3d.avg(bottom[0].point, bottom[3].point) }]; - point.surfaces = surfaces; + /** + * Draw single datapoint for graph style 'surface'. + */ + Graph3d.prototype._redrawSurfaceGraphPoint = function (ctx, point) { + var right = point.pointRight; + var top = point.pointTop; + var cross = point.pointCross; - // calculate the distance of each of the surface centers to the camera - for (j = 0; j < surfaces.length; j++) { - surface = surfaces[j]; - var transCenter = this._convertPointToTranslation(surface.center); - surface.dist = this.showPerspective ? transCenter.length() : -transCenter.z; - // TODO: this dept calculation doesn't work 100% of the cases due to perspective, - // but the current solution is fast/simple and works in 99.9% of all cases - // the issue is visible in example 14, with graph.setCameraPosition({horizontal: 2.97, vertical: 0.5, distance: 0.9}) - } + if (point === undefined || right === undefined || top === undefined || cross === undefined) { + return; + } - // order the surfaces by their (translated) depth - surfaces.sort(function (a, b) { - var diff = b.dist - a.dist; - if (diff) return diff; + var topSideVisible = true; + var fillStyle; + var strokeStyle; + var lineWidth; - // if equal depth, sort the top surface last - if (a.corners === top) return 1; - if (b.corners === top) return -1; + if (this.showGrayBottom || this.showShadow) { + // calculate the cross product of the two vectors from center + // to left and right, in order to know whether we are looking at the + // bottom or at the top side. We can also use the cross product + // for calculating light intensity + var aDiff = Point3d.subtract(cross.trans, point.trans); + var bDiff = Point3d.subtract(top.trans, right.trans); + var crossproduct = Point3d.crossProduct(aDiff, bDiff); + var len = crossproduct.length(); + // FIXME: there is a bug with determining the surface side (shadow or colored) - // both are equal - return 0; - }); + topSideVisible = crossproduct.z > 0; + } - // draw the ordered surfaces - ctx.lineWidth = this._getStrokeWidth(point); - ctx.strokeStyle = borderColor; - ctx.fillStyle = color; - // NOTE: we start at j=2 instead of j=0 as we don't need to draw the two surfaces at the backside - for (j = 2; j < surfaces.length; j++) { - surface = surfaces[j]; - corners = surface.corners; - ctx.beginPath(); - ctx.moveTo(corners[3].screen.x, corners[3].screen.y); - ctx.lineTo(corners[0].screen.x, corners[0].screen.y); - ctx.lineTo(corners[1].screen.x, corners[1].screen.y); - ctx.lineTo(corners[2].screen.x, corners[2].screen.y); - ctx.lineTo(corners[3].screen.x, corners[3].screen.y); - ctx.fill(); - ctx.stroke(); + if (topSideVisible) { + + // calculate Hue from the current value. At zMin the hue is 240, at zMax the hue is 0 + var zAvg = (point.point.z + right.point.z + top.point.z + cross.point.z) / 4; + var h = (1 - (zAvg - this.zRange.min) * this.scale.z / this.verticalRatio) * 240; + var s = 1; // saturation + var v; + + if (this.showShadow) { + v = Math.min(1 + crossproduct.x / len / 2, 1); // value. TODO: scale + fillStyle = this._hsv2rgb(h, s, v); + strokeStyle = fillStyle; + } else { + v = 1; + fillStyle = this._hsv2rgb(h, s, v); + strokeStyle = this.axisColor; // TODO: should be customizable } + } else { + fillStyle = 'gray'; + strokeStyle = this.axisColor; } + + ctx.lineWidth = this._getStrokeWidth(point); + // TODO: only draw stroke when strokeWidth > 0 + + var points = [point, right, cross, top]; + this._polygon(ctx, points, fillStyle, strokeStyle); }; /** - * Draw a line through all datapoints. - * This function can be used when the style is 'line' + * Helper method for _redrawGridGraphPoint() */ - Graph3d.prototype._redrawDataLine = function () { - var canvas = this.frame.canvas, - ctx = canvas.getContext('2d'), - point, - i; + Graph3d.prototype._drawGridLine = function (ctx, from, to) { + if (from === undefined || to === undefined) { + return; + } - if (this.dataPoints === undefined || this.dataPoints.length <= 0) return; // TODO: throw exception? + // calculate Hue from the current value. At zMin the hue is 240, at zMax the hue is 0 + var zAvg = (from.point.z + to.point.z) / 2; + var h = (1 - (zAvg - this.zRange.min) * this.scale.z / this.verticalRatio) * 240; - // calculate the translations of all points - for (i = 0; i < this.dataPoints.length; i++) { - var trans = this._convertPointToTranslation(this.dataPoints[i].point); - var screen = this._convertTranslationToScreen(trans); + ctx.lineWidth = this._getStrokeWidth(from) * 2; + ctx.strokeStyle = this._hsv2rgb(h, 1, 1); + this._line(ctx, from.screen, to.screen); + }; + + /** + * Draw single datapoint for graph style 'Grid'. + */ + Graph3d.prototype._redrawGridGraphPoint = function (ctx, point) { + this._drawGridLine(ctx, point, point.pointRight); + this._drawGridLine(ctx, point, point.pointTop); + }; - this.dataPoints[i].trans = trans; - this.dataPoints[i].screen = screen; + /** + * Draw single datapoint for graph style 'line'. + */ + Graph3d.prototype._redrawLineGraphPoint = function (ctx, point) { + if (point.pointNext === undefined) { + return; } - // start the line - if (this.dataPoints.length > 0) { - point = this.dataPoints[0]; + ctx.lineWidth = this._getStrokeWidth(point); + ctx.strokeStyle = this.dataColor.stroke; - ctx.lineWidth = this._getStrokeWidth(point); - ctx.lineJoin = 'round'; - ctx.lineCap = 'round'; - ctx.strokeStyle = this.dataColor.stroke; - ctx.beginPath(); - ctx.moveTo(point.screen.x, point.screen.y); + this._line(ctx, point.screen, point.pointNext.screen); + }; - // draw the datapoints as colored circles - for (i = 1; i < this.dataPoints.length; i++) { - point = this.dataPoints[i]; - ctx.lineTo(point.screen.x, point.screen.y); - } + /** + * Draw all datapoints for currently selected graph style. + * + */ + Graph3d.prototype._redrawDataGraph = function () { + var ctx = this._getContext(); + var i; - // finish the line - ctx.stroke(); + if (this.dataPoints === undefined || this.dataPoints.length <= 0) return; // TODO: throw exception? + + this._calcTranslations(this.dataPoints); + + for (i = 0; i < this.dataPoints.length; i++) { + var point = this.dataPoints[i]; + + // Using call() ensures that the correct context is used + this._pointDrawingMethod.call(this, ctx, point); } }; + // ----------------------------------------------------------------------------- + // End methods for drawing points per graph style. + // ----------------------------------------------------------------------------- + + /** * Start a moving operation inside the provided parent element * @param {Event} event The event that occurred (required for @@ -9628,9 +9852,11 @@ return /******/ (function(modules) { // webpackBootstrap /** * Test whether a point lies inside given 2D triangle - * @param {Point2d} point - * @param {Point2d[]} triangle - * @return {boolean} Returns true if given point lies inside or on the edge of the triangle + * + * @param {Point2d} point + * @param {Point2d[]} triangle + * @returns {boolean} true if given point lies inside or on the edge of the + * triangle, false otherwise * @private */ Graph3d.prototype._insideTriangle = function (point, triangle) { @@ -9652,9 +9878,11 @@ return /******/ (function(modules) { // webpackBootstrap /** * Find a data point close to given screen position (x, y) - * @param {Number} x - * @param {Number} y - * @return {Object | null} The closest data point or null if not close to any data point + * + * @param {Number} x + * @param {Number} y + * @returns {Object | null} The closest data point or null if not close to any + * data point * @private */ Graph3d.prototype._dataPointFromXY = function (x, y) { @@ -9807,8 +10035,9 @@ return /******/ (function(modules) { // webpackBootstrap /** * Get the horizontal mouse position from a mouse event - * @param {Event} event - * @return {Number} mouse x + * + * @param {Event} event + * @returns {Number} mouse x */ function getMouseX(event) { if ('clientX' in event) return event.clientX; @@ -9817,14 +10046,42 @@ return /******/ (function(modules) { // webpackBootstrap /** * Get the vertical mouse position from a mouse event - * @param {Event} event - * @return {Number} mouse y + * + * @param {Event} event + * @returns {Number} mouse y */ function getMouseY(event) { if ('clientY' in event) return event.clientY; return event.targetTouches[0] && event.targetTouches[0].clientY || 0; } + // ----------------------------------------------------------------------------- + // Public methods for specific settings + // ----------------------------------------------------------------------------- + + /** + * Set the rotation and distance of the camera + * + * @param {Object} pos An object with the camera position + * @param {?Number} pos.horizontal The horizontal rotation, between 0 and 2*PI. + * Optional, can be left undefined. + * @param {?Number} pos.vertical The vertical rotation, between 0 and 0.5*PI. + * if vertical=0.5*PI, the graph is shown from + * the top. Optional, can be left undefined. + * @param {?Number} pos.distance The (normalized) distance of the camera to the + * center of the graph, a value between 0.71 and + * 5.0. Optional, can be left undefined. + */ + Graph3d.prototype.setCameraPosition = function (pos) { + Settings.setCameraPosition(pos, this); + this.redraw(); + }; + + // ----------------------------------------------------------------------------- + // End public methods for specific settings + // ----------------------------------------------------------------------------- + + module.exports = Graph3d; /***/ }, @@ -10351,7 +10608,7 @@ return /******/ (function(modules) { // webpackBootstrap * @return {*} value */ Filter.prototype.getValue = function (index) { - if (index >= this.values.length) throw 'Error: index out of range'; + if (index >= this.values.length) throw new Error('Index out of range'); return this.values[index]; }; @@ -10398,7 +10655,7 @@ return /******/ (function(modules) { // webpackBootstrap * @param {Number} index */ Filter.prototype.selectValue = function (index) { - if (index >= this.values.length) throw 'Error: index out of range'; + if (index >= this.values.length) throw new Error('Index out of range'); this.index = index; this.value = this.values[index]; @@ -10469,7 +10726,7 @@ return /******/ (function(modules) { // webpackBootstrap */ function Slider(container, options) { if (container === undefined) { - throw 'Error: No container element defined'; + throw new Error('No container element defined'); } this.container = container; this.visible = options && options.visible != undefined ? options.visible : true; @@ -10710,7 +10967,7 @@ return /******/ (function(modules) { // webpackBootstrap this.redraw(); this.onChange(); } else { - throw 'Error: index out of range'; + throw new Error('Index out of range'); } }; @@ -10802,7 +11059,7 @@ return /******/ (function(modules) { // webpackBootstrap /* 19 */ /***/ function(module, exports) { - "use strict"; + 'use strict'; /** * @prototype StepNumber @@ -10841,6 +11098,15 @@ return /******/ (function(modules) { // webpackBootstrap this.setRange(start, end, step, prettyStep); }; + /** + * Check for input values, to prevent disasters from happening + * + * Source: http://stackoverflow.com/a/1830844 + */ + StepNumber.prototype.isNumeric = function (n) { + return !isNaN(parseFloat(n)) && isFinite(n); + }; + /** * Set a new range: start, end and step. * @@ -10851,6 +11117,16 @@ return /******/ (function(modules) { // webpackBootstrap * To a pretty step size (like 1, 2, 5, 10, 20, 50, ...) */ StepNumber.prototype.setRange = function (start, end, step, prettyStep) { + if (!this.isNumeric(start)) { + throw new Error('Parameter \'start\' is not numeric; value: ' + start); + } + if (!this.isNumeric(end)) { + throw new Error('Parameter \'end\' is not numeric; value: ' + start); + } + if (!this.isNumeric(step)) { + throw new Error('Parameter \'step\' is not numeric; value: ' + start); + } + this._start = start ? start : 0; this._end = end ? end : 0; @@ -10918,11 +11194,26 @@ return /******/ (function(modules) { // webpackBootstrap }; /** - * Set the current value to the largest value smaller than start, which - * is a multiple of the step size + * Set the current to its starting value. + * + * By default, this will be the largest value smaller than start, which + * is a multiple of the step size. + * + * Parameters checkFirst is optional, default false. + * If set to true, move the current value one step if smaller than start. */ - StepNumber.prototype.start = function () { + StepNumber.prototype.start = function (checkFirst) { + if (checkFirst === undefined) { + checkFirst = false; + } + this._current = this._start - this._start % this._step; + + if (checkFirst) { + if (this.getCurrent() < this._start) { + this.next(); + } + } }; /** @@ -10944,6 +11235,482 @@ return /******/ (function(modules) { // webpackBootstrap /***/ }, /* 20 */ +/***/ function(module, exports) { + + 'use strict'; + + /** + * @prototype Range + * + * Helper class to make working with related min and max values easier. + * + * The range is inclusive; a given value is considered part of the range if: + * + * this.min <= value <= this.max + */ + function Range() { + this.min = undefined; + this.max = undefined; + } + + /** + * Adjust the range so that the passed value fits in it. + * + * If the value is outside of the current extremes, adjust + * the min or max so that the value is within the range. + * + * @param {number} value Numeric value to fit in range + */ + Range.prototype.adjust = function (value) { + if (value === undefined) return; + + if (this.min === undefined || this.min > value) { + this.min = value; + } + + if (this.max === undefined || this.max < value) { + this.max = value; + } + }; + + /** + * Adjust the current range so that the passed range fits in it. + * + * @param {Range} range Range instance to fit in current instance + */ + Range.prototype.combine = function (range) { + this.add(range.min); + this.add(range.max); + }; + + /** + * Expand the range by the given value + * + * min will be lowered by given value; + * max will be raised by given value + * + * Shrinking by passing a negative value is allowed. + * + * @param {number} val Amount by which to expand or shrink current range with + */ + Range.prototype.expand = function (val) { + if (val === undefined) { + return; + } + + var newMin = this.min - val; + var newMax = this.max + val; + + // Note that following allows newMin === newMax. + // This should be OK, since method expand() allows this also. + if (newMin > newMax) { + throw new Error('Passed expansion value makes range invalid'); + } + + this.min = newMin; + this.max = newMax; + }; + + /** + * Determine the full range width of current instance. + * + * @returns {num} The calculated width of this range + */ + Range.prototype.range = function () { + return this.max - this.min; + }; + + /** + * Determine the central point of current instance. + * + * @returns {number} the value in the middle of min and max + */ + Range.prototype.center = function () { + return (this.min + this.max) / 2; + }; + + module.exports = Range; + +/***/ }, +/* 21 */ +/***/ 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 && obj !== Symbol.prototype ? "symbol" : typeof obj; }; + + //////////////////////////////////////////////////////////////////////////////// + // This modules handles the options for Graph3d. + // + //////////////////////////////////////////////////////////////////////////////// + var Camera = __webpack_require__(16); + var Point3d = __webpack_require__(14); + + // enumerate the available styles + var STYLE = { + BAR: 0, + BARCOLOR: 1, + BARSIZE: 2, + DOT: 3, + DOTLINE: 4, + DOTCOLOR: 5, + DOTSIZE: 6, + GRID: 7, + LINE: 8, + SURFACE: 9 + }; + + // The string representations of the styles + var STYLENAME = { + 'dot': STYLE.DOT, + 'dot-line': STYLE.DOTLINE, + 'dot-color': STYLE.DOTCOLOR, + 'dot-size': STYLE.DOTSIZE, + 'line': STYLE.LINE, + 'grid': STYLE.GRID, + 'surface': STYLE.SURFACE, + 'bar': STYLE.BAR, + 'bar-color': STYLE.BARCOLOR, + 'bar-size': STYLE.BARSIZE + }; + + /** + * Field names in the options hash which are of relevance to the user. + * + * Specifically, these are the fields which require no special handling, + * and can be directly copied over. + */ + var OPTIONKEYS = ['width', 'height', 'filterLabel', 'legendLabel', 'xLabel', 'yLabel', 'zLabel', 'xValueLabel', 'yValueLabel', 'zValueLabel', 'showGrid', 'showPerspective', 'showShadow', 'keepAspectRatio', 'verticalRatio', 'dotSizeRatio', 'showAnimationControls', 'animationInterval', 'animationPreload', 'animationAutoStart', 'axisColor', 'gridColor', 'xCenter', 'yCenter']; + + /** + * Field names in the options hash which are of relevance to the user. + * + * Same as OPTIONKEYS, but internally these fields are stored with + * prefix 'default' in the name. + */ + var PREFIXEDOPTIONKEYS = ['xBarWidth', 'yBarWidth', 'valueMin', 'valueMax', 'xMin', 'xMax', 'xStep', 'yMin', 'yMax', 'yStep', 'zMin', 'zMax', 'zStep']; + + // Placeholder for DEFAULTS reference + var DEFAULTS = undefined; + + /** + * Check if given hash is empty. + * + * Source: http://stackoverflow.com/a/679937 + */ + function isEmpty(obj) { + for (var prop in obj) { + if (obj.hasOwnProperty(prop)) return false; + } + + return true; + } + + /** + * Make first letter of parameter upper case. + * + * Source: http://stackoverflow.com/a/1026087 + */ + function capitalize(str) { + if (str === undefined || str === "") { + return str; + } + + return str.charAt(0).toUpperCase() + str.slice(1); + } + + /** + * Add a prefix to a field name, taking style guide into account + */ + function prefixFieldName(prefix, fieldName) { + if (prefix === undefined || prefix === "") { + return fieldName; + } + + return prefix + capitalize(fieldName); + } + + /** + * Forcibly copy fields from src to dst in a controlled manner. + * + * A given field in dst will always be overwitten. If this field + * is undefined or not present in src, the field in dst will + * be explicitly set to undefined. + * + * The intention here is to be able to reset all option fields. + * + * Only the fields mentioned in array 'fields' will be handled. + * + * @param fields array with names of fields to copy + * @param prefix optional; prefix to use for the target fields. + */ + function forceCopy(src, dst, fields, prefix) { + var srcKey; + var dstKey; + + for (var i in fields) { + srcKey = fields[i]; + dstKey = prefixFieldName(prefix, srcKey); + + dst[dstKey] = src[srcKey]; + } + } + + /** + * Copy fields from src to dst in a safe and controlled manner. + * + * Only the fields mentioned in array 'fields' will be copied over, + * and only if these are actually defined. + * + * @param fields array with names of fields to copy + * @param prefix optional; prefix to use for the target fields. + */ + function safeCopy(src, dst, fields, prefix) { + var srcKey; + var dstKey; + + for (var i in fields) { + srcKey = fields[i]; + if (src[srcKey] === undefined) continue; + + dstKey = prefixFieldName(prefix, srcKey); + + dst[dstKey] = src[srcKey]; + } + } + + /** + * Initialize dst with the values in src. + * + * src is the hash with the default values. + * A reference DEFAULTS to this hash is stored locally for + * further handling. + * + * For now, dst is assumed to be a Graph3d instance. + */ + function setDefaults(src, dst) { + if (src === undefined || isEmpty(src)) { + throw new Error('No DEFAULTS passed'); + } + if (dst === undefined) { + throw new Error('No dst passed'); + } + + // Remember defaults for future reference + DEFAULTS = src; + + // Handle the defaults which can be simply copied over + forceCopy(src, dst, OPTIONKEYS); + forceCopy(src, dst, PREFIXEDOPTIONKEYS, 'default'); + + // Handle the more complex ('special') fields + setSpecialSettings(src, dst); + + // Following are internal fields, not part of the user settings + dst.margin = 10; // px + dst.showGrayBottom = false; // TODO: this does not work correctly + dst.showTooltip = false; + dst.eye = new Point3d(0, 0, -1); // TODO: set eye.z about 3/4 of the width of the window? + } + + function setOptions(options, dst) { + if (options === undefined) { + return; + } + if (dst === undefined) { + throw new Error('No dst passed'); + } + + if (DEFAULTS === undefined || isEmpty(DEFAULTS)) { + throw new Error('DEFAULTS not set for module Settings'); + } + + // Handle the parameters which can be simply copied over + safeCopy(options, dst, OPTIONKEYS); + safeCopy(options, dst, PREFIXEDOPTIONKEYS, 'default'); + + // Handle the more complex ('special') fields + setSpecialSettings(options, dst); + } + + /** + * Special handling for certain parameters + * + * 'Special' here means: setting requires more than a simple copy + */ + function setSpecialSettings(src, dst) { + if (src.backgroundColor !== undefined) { + setBackgroundColor(src.backgroundColor, dst); + } + + setDataColor(src.dataColor, dst); + setStyle(src.style, dst); + setShowLegend(src.showLegend, dst); + setCameraPosition(src.cameraPosition, dst); + + // As special fields go, this is an easy one; just a translation of the name. + // Can't use this.tooltip directly, because that field exists internally + if (src.tooltip !== undefined) { + dst.showTooltip = src.tooltip; + } + } + + /** + * Set the value of setting 'showLegend' + * + * This depends on the value of the style fields, so it must be called + * after the style field has been initialized. + */ + function setShowLegend(showLegend, dst) { + if (showLegend === undefined) { + // If the default was auto, make a choice for this field + var isAutoByDefault = DEFAULTS.showLegend === undefined; + + if (isAutoByDefault) { + // these styles default to having legends + var isLegendGraphStyle = dst.style === STYLE.DOTCOLOR || dst.style === STYLE.DOTSIZE; + + dst.showLegend = isLegendGraphStyle; + } else { + // Leave current value as is + } + } else { + dst.showLegend = showLegend; + } + } + + /** + * Retrieve the style index from given styleName + * @param {string} styleName Style name such as 'dot', 'grid', 'dot-line' + * @return {Number} styleNumber Enumeration value representing the style, or -1 + * when not found + */ + function getStyleNumberByName(styleName) { + var number = STYLENAME[styleName]; + + if (number === undefined) { + return -1; + } + + return number; + } + + /** + * Check if given number is a valid style number. + * + * @return true if valid, false otherwise + */ + function checkStyleNumber(style) { + var valid = false; + + for (var n in STYLE) { + if (STYLE[n] === style) { + valid = true; + break; + } + } + + return valid; + } + + function setStyle(style, dst) { + if (style === undefined) { + return; // Nothing to do + } + + var styleNumber; + + if (typeof style === 'string') { + styleNumber = getStyleNumberByName(style); + + if (styleNumber === -1) { + throw new Error('Style \'' + style + '\' is invalid'); + } + } else { + // Do a pedantic check on style number value + if (!checkStyleNumber(style)) { + throw new Error('Style \'' + style + '\' is invalid'); + } + + styleNumber = style; + } + + dst.style = styleNumber; + } + + /** + * Set the background styling for the graph + * @param {string | {fill: string, stroke: string, strokeWidth: string}} backgroundColor + */ + function setBackgroundColor(backgroundColor, dst) { + var fill = 'white'; + var stroke = 'gray'; + var strokeWidth = 1; + + if (typeof backgroundColor === 'string') { + fill = backgroundColor; + stroke = 'none'; + strokeWidth = 0; + } else if ((typeof backgroundColor === 'undefined' ? 'undefined' : _typeof(backgroundColor)) === 'object') { + if (backgroundColor.fill !== undefined) fill = backgroundColor.fill; + if (backgroundColor.stroke !== undefined) stroke = backgroundColor.stroke; + if (backgroundColor.strokeWidth !== undefined) strokeWidth = backgroundColor.strokeWidth; + } else { + throw new Error('Unsupported type of backgroundColor'); + } + + dst.frame.style.backgroundColor = fill; + dst.frame.style.borderColor = stroke; + dst.frame.style.borderWidth = strokeWidth + 'px'; + dst.frame.style.borderStyle = 'solid'; + } + + function setDataColor(dataColor, dst) { + if (dataColor === undefined) { + return; // Nothing to do + } + + if (dst.dataColor === undefined) { + dst.dataColor = {}; + } + + if (typeof dataColor === 'string') { + dst.dataColor.fill = dataColor; + dst.dataColor.stroke = dataColor; + } else { + if (dataColor.fill) { + dst.dataColor.fill = dataColor.fill; + } + if (dataColor.stroke) { + dst.dataColor.stroke = dataColor.stroke; + } + if (dataColor.strokeWidth !== undefined) { + dst.dataColor.strokeWidth = dataColor.strokeWidth; + } + } + } + + function setCameraPosition(cameraPosition, dst) { + var camPos = cameraPosition; + if (camPos === undefined) { + return; + } + + if (dst.camera === undefined) { + dst.camera = new Camera(); + } + + dst.camera.setArmRotation(camPos.horizontal, camPos.vertical); + dst.camera.setArmLength(camPos.distance); + } + + module.exports.STYLE = STYLE; + module.exports.setDefaults = setDefaults; + module.exports.setOptions = setOptions; + module.exports.setCameraPosition = setCameraPosition; + +/***/ }, +/* 22 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; @@ -10951,8 +11718,8 @@ return /******/ (function(modules) { // webpackBootstrap // 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__(21); - var Hammer = window['Hammer'] || __webpack_require__(22); + var propagating = __webpack_require__(23); + var Hammer = window['Hammer'] || __webpack_require__(24); module.exports = propagating(Hammer, { preventDefault: 'mouse' }); @@ -10963,7 +11730,7 @@ return /******/ (function(modules) { // webpackBootstrap } /***/ }, -/* 21 */ +/* 23 */ /***/ function(module, exports, __webpack_require__) { var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;'use strict'; @@ -11200,14 +11967,14 @@ return /******/ (function(modules) { // webpackBootstrap /***/ }, -/* 22 */ +/* 24 */ /***/ function(module, exports, __webpack_require__) { - var __WEBPACK_AMD_DEFINE_RESULT__;/*! Hammer.JS - v2.0.6 - 2015-12-23 + var __WEBPACK_AMD_DEFINE_RESULT__;/*! Hammer.JS - v2.0.7 - 2016-04-22 * http://hammerjs.github.io/ * - * Copyright (c) 2015 Jorik Tangelder; - * Licensed under the license */ + * Copyright (c) 2016 Jorik Tangelder; + * Licensed under the MIT license */ (function(window, document, exportName, undefined) { 'use strict'; @@ -11335,7 +12102,7 @@ return /******/ (function(modules) { // webpackBootstrap * means that properties in dest will be overwritten by the ones in src. * @param {Object} dest * @param {Object} src - * @param {Boolean=false} [merge] + * @param {Boolean} [merge=false] * @returns {Object} dest */ var extend = deprecate(function extend(dest, src, merge) { @@ -11996,7 +12763,6 @@ return /******/ (function(modules) { // webpackBootstrap 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); @@ -12019,8 +12785,8 @@ return /******/ (function(modules) { // webpackBootstrap eventType = INPUT_END; } - // mouse must be down, and mouse events are allowed (see the TouchMouse input) - if (!this.pressed || !this.allow) { + // mouse must be down + if (!this.pressed) { return; } @@ -12303,12 +13069,19 @@ return /******/ (function(modules) { // webpackBootstrap * @constructor * @extends Input */ + + var DEDUP_TIMEOUT = 2500; + var DEDUP_DISTANCE = 25; + 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); + + this.primaryTouch = null; + this.lastTouches = []; } inherit(TouchMouseInput, Input, { @@ -12322,17 +13095,15 @@ return /******/ (function(modules) { // webpackBootstrap var isTouch = (inputData.pointerType == INPUT_TYPE_TOUCH), isMouse = (inputData.pointerType == INPUT_TYPE_MOUSE); - // when we're in a touch event, so block all upcoming mouse events - // most mobile browser also emit mouseevents, right after touchstart - if (isTouch) { - this.mouse.allow = false; - } else if (isMouse && !this.mouse.allow) { + if (isMouse && inputData.sourceCapabilities && inputData.sourceCapabilities.firesTouchEvents) { return; } - // reset the allowMouse when we're done - if (inputEvent & (INPUT_END | INPUT_CANCEL)) { - this.mouse.allow = true; + // when we're in a touch event, record touches to de-dupe synthetic mouse event + if (isTouch) { + recordTouches.call(this, inputEvent, inputData); + } else if (isMouse && isSyntheticEvent.call(this, inputData)) { + return; } this.callback(manager, inputEvent, inputData); @@ -12347,6 +13118,44 @@ return /******/ (function(modules) { // webpackBootstrap } }); + function recordTouches(eventType, eventData) { + if (eventType & INPUT_START) { + this.primaryTouch = eventData.changedPointers[0].identifier; + setLastTouch.call(this, eventData); + } else if (eventType & (INPUT_END | INPUT_CANCEL)) { + setLastTouch.call(this, eventData); + } + } + + function setLastTouch(eventData) { + var touch = eventData.changedPointers[0]; + + if (touch.identifier === this.primaryTouch) { + var lastTouch = {x: touch.clientX, y: touch.clientY}; + this.lastTouches.push(lastTouch); + var lts = this.lastTouches; + var removeLastTouch = function() { + var i = lts.indexOf(lastTouch); + if (i > -1) { + lts.splice(i, 1); + } + }; + setTimeout(removeLastTouch, DEDUP_TIMEOUT); + } + } + + function isSyntheticEvent(eventData) { + var x = eventData.srcEvent.clientX, y = eventData.srcEvent.clientY; + for (var i = 0; i < this.lastTouches.length; i++) { + var t = this.lastTouches[i]; + var dx = Math.abs(x - t.x), dy = Math.abs(y - t.y); + if (dx <= DEDUP_DISTANCE && dy <= DEDUP_DISTANCE) { + return true; + } + } + return false; + } + var PREFIXED_TOUCH_ACTION = prefixed(TEST_ELEMENT.style, 'touchAction'); var NATIVE_TOUCH_ACTION = PREFIXED_TOUCH_ACTION !== undefined; @@ -12357,6 +13166,7 @@ return /******/ (function(modules) { // webpackBootstrap var TOUCH_ACTION_NONE = 'none'; var TOUCH_ACTION_PAN_X = 'pan-x'; var TOUCH_ACTION_PAN_Y = 'pan-y'; + var TOUCH_ACTION_MAP = getTouchActionProps(); /** * Touch Action @@ -12381,7 +13191,7 @@ return /******/ (function(modules) { // webpackBootstrap value = this.compute(); } - if (NATIVE_TOUCH_ACTION && this.manager.element.style) { + if (NATIVE_TOUCH_ACTION && this.manager.element.style && TOUCH_ACTION_MAP[value]) { this.manager.element.style[PREFIXED_TOUCH_ACTION] = value; } this.actions = value.toLowerCase().trim(); @@ -12413,11 +13223,6 @@ return /******/ (function(modules) { // webpackBootstrap * @param {Object} input */ 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; @@ -12428,9 +13233,9 @@ return /******/ (function(modules) { // webpackBootstrap } 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); + var hasNone = inStr(actions, TOUCH_ACTION_NONE) && !TOUCH_ACTION_MAP[TOUCH_ACTION_NONE]; + var hasPanY = inStr(actions, TOUCH_ACTION_PAN_Y) && !TOUCH_ACTION_MAP[TOUCH_ACTION_PAN_Y]; + var hasPanX = inStr(actions, TOUCH_ACTION_PAN_X) && !TOUCH_ACTION_MAP[TOUCH_ACTION_PAN_X]; if (hasNone) { //do not prevent defaults if this is a tap gesture @@ -12501,6 +13306,21 @@ return /******/ (function(modules) { // webpackBootstrap return TOUCH_ACTION_AUTO; } + function getTouchActionProps() { + if (!NATIVE_TOUCH_ACTION) { + return false; + } + var touchMap = {}; + var cssSupports = window.CSS && window.CSS.supports; + ['auto', 'manipulation', 'pan-y', 'pan-x', 'pan-x pan-y', 'none'].forEach(function(val) { + + // If css.supports is not supported but there is native touch-action assume it supports + // all values. This is the case for IE 10 and 11. + touchMap[val] = cssSupports ? window.CSS.supports('touch-action', val) : true; + }); + return touchMap; + } + /** * Recognizer flow explained; * * All recognizers have the initial state of POSSIBLE when a input session starts. @@ -13297,7 +14117,7 @@ return /******/ (function(modules) { // webpackBootstrap /** * @const {string} */ - Hammer.VERSION = '2.0.6'; + Hammer.VERSION = '2.0.7'; /** * default settings @@ -13428,6 +14248,7 @@ return /******/ (function(modules) { // webpackBootstrap this.handlers = {}; this.session = {}; this.recognizers = []; + this.oldCssProps = {}; this.element = element; this.input = createInputInstance(this); @@ -13606,6 +14427,13 @@ return /******/ (function(modules) { // webpackBootstrap * @returns {EventEmitter} this */ on: function(events, handler) { + if (events === undefined) { + return; + } + if (handler === undefined) { + return; + } + var handlers = this.handlers; each(splitStr(events), function(event) { handlers[event] = handlers[event] || []; @@ -13621,6 +14449,10 @@ return /******/ (function(modules) { // webpackBootstrap * @returns {EventEmitter} this */ off: function(events, handler) { + if (events === undefined) { + return; + } + var handlers = this.handlers; each(splitStr(events), function(event) { if (!handler) { @@ -13685,9 +14517,19 @@ return /******/ (function(modules) { // webpackBootstrap if (!element.style) { return; } + var prop; each(manager.options.cssProps, function(value, name) { - element.style[prefixed(element.style, name)] = add ? value : ''; + prop = prefixed(element.style, name); + if (add) { + manager.oldCssProps[prop] = element.style[prop]; + element.style[prop] = value; + } else { + element.style[prop] = manager.oldCssProps[prop] || ''; + } }); + if (!add) { + manager.oldCssProps = {}; + } } /** @@ -13774,206 +14616,206 @@ return /******/ (function(modules) { // webpackBootstrap /***/ }, -/* 23 */ +/* 25 */ /***/ 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; - })); - - + 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; + })); + + /***/ }, -/* 24 */ +/* 26 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; @@ -13988,76 +14830,76 @@ return /******/ (function(modules) { // webpackBootstrap exports.Queue = __webpack_require__(10); // Timeline - exports.Timeline = __webpack_require__(25); - exports.Graph2d = __webpack_require__(50); + exports.Timeline = __webpack_require__(27); + exports.Graph2d = __webpack_require__(52); exports.timeline = { - Core: __webpack_require__(33), - DateUtil: __webpack_require__(32), - Range: __webpack_require__(30), - stack: __webpack_require__(37), - TimeStep: __webpack_require__(35), + Core: __webpack_require__(35), + DateUtil: __webpack_require__(34), + Range: __webpack_require__(32), + stack: __webpack_require__(39), + TimeStep: __webpack_require__(37), components: { items: { - Item: __webpack_require__(39), - BackgroundItem: __webpack_require__(43), - BoxItem: __webpack_require__(41), - PointItem: __webpack_require__(42), - RangeItem: __webpack_require__(38) + Item: __webpack_require__(41), + BackgroundItem: __webpack_require__(45), + BoxItem: __webpack_require__(43), + PointItem: __webpack_require__(44), + RangeItem: __webpack_require__(40) }, - 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) + BackgroundGroup: __webpack_require__(42), + Component: __webpack_require__(33), + CurrentTime: __webpack_require__(50), + CustomTime: __webpack_require__(48), + DataAxis: __webpack_require__(54), + DataScale: __webpack_require__(55), + GraphGroup: __webpack_require__(56), + Group: __webpack_require__(38), + ItemSet: __webpack_require__(36), + Legend: __webpack_require__(60), + LineGraph: __webpack_require__(53), + TimeAxis: __webpack_require__(46) } }; // bundled external libraries exports.moment = __webpack_require__(2); - exports.Hammer = __webpack_require__(20); - exports.keycharm = __webpack_require__(23); + exports.Hammer = __webpack_require__(22); + exports.keycharm = __webpack_require__(25); /***/ }, -/* 25 */ +/* 27 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; - var _Configurator = __webpack_require__(26); + var _Configurator = __webpack_require__(28); var _Configurator2 = _interopRequireDefault(_Configurator); - var _Validator = __webpack_require__(29); + var _Validator = __webpack_require__(31); var _Validator2 = _interopRequireDefault(_Validator); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } var Emitter = __webpack_require__(13); - var Hammer = __webpack_require__(20); + var Hammer = __webpack_require__(22); 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 Range = __webpack_require__(32); + var Core = __webpack_require__(35); + var TimeAxis = __webpack_require__(46); + var CurrentTime = __webpack_require__(50); + var CustomTime = __webpack_require__(48); + var ItemSet = __webpack_require__(36); - var printStyle = __webpack_require__(29).printStyle; - var allOptions = __webpack_require__(49).allOptions; - var configureOptions = __webpack_require__(49).configureOptions; + var printStyle = __webpack_require__(31).printStyle; + var allOptions = __webpack_require__(51).allOptions; + var configureOptions = __webpack_require__(51).configureOptions; /** * Create a timeline visualization @@ -14085,17 +14927,12 @@ return /******/ (function(modules) { // webpackBootstrap this.defaultOptions = { start: null, end: null, - autoResize: true, - throttleRedraw: 0, // ms - orientation: { axis: 'bottom', // axis orientation: 'bottom', 'top', or 'both' item: 'bottom' // not relevant }, - rtl: false, moment: moment, - width: null, height: null, maxHeight: null, @@ -14106,6 +14943,18 @@ return /******/ (function(modules) { // webpackBootstrap // Create the DOM, props, and emitter this._create(container); + if (!options || options && typeof options.rtl == "undefined") { + var directionFromDom, + domNode = this.dom.root; + while (!directionFromDom && domNode) { + directionFromDom = window.getComputedStyle(domNode, null).direction; + domNode = domNode.parentElement; + } + this.options.rtl = directionFromDom && directionFromDom.toLowerCase() == "rtl"; + } else { + this.options.rtl = options.rtl; + } + // all components listed here will be repainted automatically this.components = []; @@ -14134,17 +14983,17 @@ return /******/ (function(modules) { // webpackBootstrap }; // range - this.range = new Range(this.body); + this.range = new Range(this.body, this.options); this.components.push(this.range); this.body.range = this.range; // time axis - this.timeAxis = new TimeAxis(this.body); + this.timeAxis = new TimeAxis(this.body, this.options); this.timeAxis2 = null; // used in case of orientation option 'both' this.components.push(this.timeAxis); // current time bar - this.currentTime = new CurrentTime(this.body); + this.currentTime = new CurrentTime(this.body, this.options); this.components.push(this.currentTime); // item set @@ -14235,7 +15084,6 @@ return /******/ (function(modules) { // webpackBootstrap if (errorFound === true) { console.log('%cErrors have been found in the supplied options object.', printStyle); } - Core.prototype.setOptions.call(this, options); if ('type' in options) { @@ -14500,9 +15348,9 @@ return /******/ (function(modules) { // webpackBootstrap 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 - } + min = getStart(minItem) - lhs * interval / delta; // ms + max = getEnd(maxItem) + rhs * interval / delta; // ms + } } } })(); @@ -14603,7 +15451,7 @@ return /******/ (function(modules) { // webpackBootstrap module.exports = Timeline; /***/ }, -/* 26 */ +/* 28 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; @@ -14612,11 +15460,11 @@ return /******/ (function(modules) { // webpackBootstrap value: true }); - 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 _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; 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 _ColorPicker = __webpack_require__(27); + var _ColorPicker = __webpack_require__(29); var _ColorPicker2 = _interopRequireDefault(_ColorPicker); @@ -14640,10 +15488,9 @@ return /******/ (function(modules) { // webpackBootstrap * @param configureOptions | the fully configured and predefined options set found in allOptions.js * @param pixelRatio | canvas pixel ratio */ - var Configurator = function () { function Configurator(parentModule, defaultContainer, configureOptions) { - var pixelRatio = arguments.length <= 3 || arguments[3] === undefined ? 1 : arguments[3]; + var pixelRatio = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 1; _classCallCheck(this, Configurator); @@ -14932,7 +15779,7 @@ return /******/ (function(modules) { // webpackBootstrap }, { key: '_makeLabel', value: function _makeLabel(name, path) { - var objectLabel = arguments.length <= 2 || arguments[2] === undefined ? false : arguments[2]; + var objectLabel = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false; var div = document.createElement('div'); div.className = 'vis-configuration vis-config-label vis-config-s' + path.length; @@ -15263,8 +16110,8 @@ return /******/ (function(modules) { // webpackBootstrap }, { 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]; + var path = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : []; + var checkOnly = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false; var show = false; var filter = this.options.filter; @@ -15384,7 +16231,7 @@ return /******/ (function(modules) { // webpackBootstrap }, { key: '_constructOptions', value: function _constructOptions(value, path) { - var optionsObj = arguments.length <= 2 || arguments[2] === undefined ? {} : arguments[2]; + var optionsObj = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {}; var pointer = optionsObj; @@ -15429,7 +16276,7 @@ return /******/ (function(modules) { // webpackBootstrap exports.default = Configurator; /***/ }, -/* 27 */ +/* 29 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; @@ -15442,13 +16289,13 @@ 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__(20); - var hammerUtil = __webpack_require__(28); + var Hammer = __webpack_require__(22); + var hammerUtil = __webpack_require__(30); var util = __webpack_require__(1); var ColorPicker = function () { function ColorPicker() { - var pixelRatio = arguments.length <= 0 || arguments[0] === undefined ? 1 : arguments[0]; + var pixelRatio = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 1; _classCallCheck(this, ColorPicker); @@ -15544,7 +16391,7 @@ return /******/ (function(modules) { // webpackBootstrap }, { key: 'setColor', value: function setColor(color) { - var setInitial = arguments.length <= 1 || arguments[1] === undefined ? true : arguments[1]; + var setInitial = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true; if (color === 'none') { return; @@ -15619,7 +16466,7 @@ return /******/ (function(modules) { // webpackBootstrap value: function _hide() { var _this = this; - var storePrevious = arguments.length <= 0 || arguments[0] === undefined ? true : arguments[0]; + var storePrevious = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true; // store the previous color for next time; if (storePrevious === true) { @@ -15693,7 +16540,7 @@ return /******/ (function(modules) { // webpackBootstrap }, { key: '_setColor', value: function _setColor(rgba) { - var setInitial = arguments.length <= 1 || arguments[1] === undefined ? true : arguments[1]; + var setInitial = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true; // store the initial color if (setInitial === true) { @@ -15753,7 +16600,7 @@ return /******/ (function(modules) { // webpackBootstrap }, { key: '_updatePicker', value: function _updatePicker() { - var rgba = arguments.length <= 0 || arguments[0] === undefined ? this.color : arguments[0]; + var rgba = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.color; var hsv = util.RGBToHSV(rgba.r, rgba.g, rgba.b); var ctx = this.colorPickerCanvas.getContext('2d'); @@ -16058,12 +16905,12 @@ return /******/ (function(modules) { // webpackBootstrap exports.default = ColorPicker; /***/ }, -/* 28 */ +/* 30 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; - var Hammer = __webpack_require__(20); + var Hammer = __webpack_require__(22); /** * Register a touch event, taking place before a gesture @@ -16132,7 +16979,7 @@ return /******/ (function(modules) { // webpackBootstrap }; /***/ }, -/* 29 */ +/* 31 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; @@ -16141,7 +16988,7 @@ return /******/ (function(modules) { // webpackBootstrap value: true }); - 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 _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; 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; }; }(); @@ -16342,7 +17189,7 @@ return /******/ (function(modules) { // webpackBootstrap }, { key: 'findInOptions', value: function findInOptions(option, options, path) { - var recursive = arguments.length <= 3 || arguments[3] === undefined ? false : arguments[3]; + var recursive = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false; var min = 1e9; var closestMatch = ''; @@ -16376,7 +17223,7 @@ return /******/ (function(modules) { // webpackBootstrap }, { key: 'printLocation', value: function printLocation(path, option) { - var prefix = arguments.length <= 2 || arguments[2] === undefined ? 'Problem value found at: \n' : arguments[2]; + var prefix = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'Problem value found at: \n'; var str = '\n\n' + prefix + 'options = {\n'; for (var i = 0; i < path.length; i++) { @@ -16456,18 +17303,18 @@ return /******/ (function(modules) { // webpackBootstrap exports.printStyle = printStyle; /***/ }, -/* 30 */ +/* 32 */ /***/ 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 _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; var util = __webpack_require__(1); - var hammerUtil = __webpack_require__(28); + var hammerUtil = __webpack_require__(30); var moment = __webpack_require__(2); - var Component = __webpack_require__(31); - var DateUtil = __webpack_require__(32); + var Component = __webpack_require__(33); + var DateUtil = __webpack_require__(34); /** * @constructor Range @@ -16544,7 +17391,7 @@ return /******/ (function(modules) { // webpackBootstrap Range.prototype.setOptions = function (options) { if (options) { // copy the options that we know - var fields = ['direction', 'min', 'max', 'zoomMin', 'zoomMax', 'moveable', 'zoomable', 'moment', 'activate', 'hiddenDates', 'zoomKey', 'rtl']; + var fields = ['direction', 'min', 'max', 'zoomMin', 'zoomMax', 'moveable', 'zoomable', 'moment', 'activate', 'hiddenDates', 'zoomKey', 'rtl', 'horizontalScroll']; util.selectiveExtend(fields, this.options, options); if ('start' in options || 'end' in options) { @@ -16845,6 +17692,8 @@ return /******/ (function(modules) { // webpackBootstrap * @private */ Range.prototype._onDrag = function (event) { + if (!event) return; + if (!this.props.touch.dragging) return; // only allow dragging when configured as movable @@ -16899,6 +17748,9 @@ return /******/ (function(modules) { // webpackBootstrap end: endDate, byUser: true }); + + // fire a panmove event + this.body.emitter.emit('panmove'); }; /** @@ -16937,14 +17789,9 @@ return /******/ (function(modules) { // webpackBootstrap * @private */ Range.prototype._onMouseWheel = function (event) { - // only allow zooming when configured as zoomable and moveable - if (!(this.options.zoomable && this.options.moveable)) return; - - // only zoom when the mouse is inside the current range - if (!this._isInsideRange(event)) return; - - // only zoom when the according key is pressed and the zoomKey option is set - if (this.options.zoomKey && !event[this.options.zoomKey]) return; + // Prevent default actions caused by mouse wheel + // (else the page and timeline both zoom and scroll) + event.preventDefault(); // retrieve delta var delta = 0; @@ -16958,6 +17805,26 @@ return /******/ (function(modules) { // webpackBootstrap delta = -event.detail / 3; } + // don't allow zoom when the according key is pressed and the zoomKey option or not zoomable but movable + if (this.options.zoomKey && !event[this.options.zoomKey] && this.options.zoomable || !this.options.zoomable && this.options.moveable) { + if (this.options.horizontalScroll) { + // calculate a single scroll jump relative to the range scale + var diff = delta * (this.end - this.start) / 20; + // calculate new start and end + var newStart = this.start - diff; + var newEnd = this.end - diff; + + this.setRange(newStart, newEnd); + } + return; + } + + // only allow zooming when configured as zoomable and moveable + if (!(this.options.zoomable && this.options.moveable)) return; + + // only zoom when the mouse is inside the current range + if (!this._isInsideRange(event)) return; + // If delta is nonzero, handle it. // Basically, delta is now positive if wheel was scrolled up, // and negative, if wheel was scrolled down. @@ -16979,10 +17846,6 @@ return /******/ (function(modules) { // webpackBootstrap this.zoom(scale, pointerDate, delta); } - - // Prevent default actions caused by mouse wheel - // (else the page and timeline both zoom and scroll) - event.preventDefault(); }; /** @@ -17186,10 +18049,12 @@ return /******/ (function(modules) { // webpackBootstrap module.exports = Range; /***/ }, -/* 31 */ -/***/ function(module, exports) { +/* 33 */ +/***/ function(module, exports, __webpack_require__) { - "use strict"; + 'use strict'; + + var util = __webpack_require__(1); /** * Prototype for visual components @@ -17246,7 +18111,7 @@ return /******/ (function(modules) { // webpackBootstrap module.exports = Component; /***/ }, -/* 32 */ +/* 34 */ /***/ function(module, exports) { "use strict"; @@ -17554,10 +18419,22 @@ return /******/ (function(modules) { // webpackBootstrap } var duration = exports.getHiddenDurationBetween(Core.body.hiddenDates, Core.range.start, Core.range.end); - time = exports.correctTimeForHidden(Core.options.moment, Core.body.hiddenDates, Core.range, time); - - var conversion = Core.range.conversion(width, duration); - return (time.valueOf() - conversion.offset) * conversion.scale; + if (time < Core.range.start) { + var conversion = Core.range.conversion(width, duration); + var hiddenBeforeStart = exports.getHiddenDurationBeforeStart(Core.body.hiddenDates, time, conversion.offset); + time = Core.options.moment(time).toDate().valueOf(); + time = time + hiddenBeforeStart; + return -(conversion.offset - time.valueOf()) * conversion.scale; + } else if (time > Core.range.end) { + var rangeAfterEnd = { start: Core.range.start, end: time }; + time = exports.correctTimeForHidden(Core.options.moment, Core.body.hiddenDates, rangeAfterEnd, time); + var conversion = Core.range.conversion(width, duration); + return (time.valueOf() - conversion.offset) * conversion.scale; + } else { + time = exports.correctTimeForHidden(Core.options.moment, Core.body.hiddenDates, Core.range, time); + var conversion = Core.range.conversion(width, duration); + return (time.valueOf() - conversion.offset) * conversion.scale; + } } }; @@ -17604,6 +18481,27 @@ return /******/ (function(modules) { // webpackBootstrap return duration; }; + /** + * Support function + * + * @param hiddenDates + * @param start + * @param end + * @returns {number} + */ + exports.getHiddenDurationBeforeStart = function (hiddenDates, start, end) { + var duration = 0; + for (var i = 0; i < hiddenDates.length; i++) { + var startDate = hiddenDates[i].start; + var endDate = hiddenDates[i].end; + + if (startDate >= start && endDate <= end) { + duration += endDate - startDate; + } + } + return duration; + }; + /** * Support function * @param moment @@ -17717,25 +18615,25 @@ return /******/ (function(modules) { // webpackBootstrap }; /***/ }, -/* 33 */ +/* 35 */ /***/ 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 _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; var Emitter = __webpack_require__(13); - var Hammer = __webpack_require__(20); - var hammerUtil = __webpack_require__(28); + var Hammer = __webpack_require__(22); + var hammerUtil = __webpack_require__(30); var util = __webpack_require__(1); 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); + var Range = __webpack_require__(32); + var ItemSet = __webpack_require__(36); + var TimeAxis = __webpack_require__(46); + var Activator = __webpack_require__(47); + var DateUtil = __webpack_require__(34); + var CustomTime = __webpack_require__(48); /** * Create a timeline visualization @@ -17808,7 +18706,6 @@ return /******/ (function(modules) { // webpackBootstrap 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); @@ -17816,13 +18713,30 @@ return /******/ (function(modules) { // webpackBootstrap this.dom.rightContainer.appendChild(this.dom.shadowTopRight); this.dom.rightContainer.appendChild(this.dom.shadowBottomRight); + // size properties of each of the panels + this.props = { + root: {}, + background: {}, + centerContainer: {}, + leftContainer: {}, + rightContainer: {}, + center: {}, + left: {}, + right: {}, + top: {}, + bottom: {}, + border: {}, + scrollTop: 0, + scrollTopMin: 0 + }; + this.on('rangechange', function () { if (this.initialDrawDone === true) { - this._redraw(); // this allows overriding the _redraw method + this._redraw(); } }.bind(this)); this.on('touch', this._onTouch.bind(this)); - this.on('pan', this._onDrag.bind(this)); + this.on('panmove', this._onDrag.bind(this)); var me = this; this.on('_change', function (properties) { @@ -17876,29 +18790,108 @@ return /******/ (function(modules) { // webpackBootstrap }.bind(this)); function onMouseWheel(event) { + if (this.isActive()) { + this.emit('mousewheel', event); + } + + // prevent scrolling when zoomKey defined or activated + if (!this.options.zoomKey || event[this.options.zoomKey]) return; + + // prevent scrolling vertically when horizontalScroll is true + if (this.options.horizontalScroll) return; + + var delta = 0; + if (event.wheelDelta) { + /* IE/Opera. */ + delta = event.wheelDelta / 120; + } else if (event.detail) { + /* Mozilla case. */ + // In Mozilla, sign of delta is different than in IE. + // Also, delta is multiple of 3. + delta = -event.detail / 3; + } + + var current = this.props.scrollTop; + var adjusted = current + delta * 120; + + if (this.isActive()) { + this._setScrollTop(adjusted); + if (this.options.verticalScroll) { + this.dom.left.parentNode.scrollTop = -adjusted; + this.dom.right.parentNode.scrollTop = -adjusted; + } + this._redraw(); + this.emit('scroll', event); + } + + // Prevent default actions caused by mouse wheel + // (else the page and timeline both scroll) + event.preventDefault(); + } + + if (this.dom.centerContainer.addEventListener) { + // IE9, Chrome, Safari, Opera + this.dom.centerContainer.addEventListener("mousewheel", onMouseWheel.bind(this), false); + // Firefox + this.dom.centerContainer.addEventListener("DOMMouseScroll", onMouseWheel.bind(this), false); + } else { + // IE 6/7/8 + this.dom.centerContainer.attachEvent("onmousewheel", onMouseWheel.bind(this)); + } + + function onMouseScrollSide(event) { + if (!me.options.verticalScroll) return; + event.preventDefault(); if (me.isActive()) { - me.emit('mousewheel', event); + var adjusted = -event.target.scrollTop; + me._setScrollTop(adjusted); + me._redraw(); + me.emit('scrollSide', event); } } - this.dom.root.addEventListener('mousewheel', onMouseWheel); - this.dom.root.addEventListener('DOMMouseScroll', onMouseWheel); - // size properties of each of the panels - this.props = { - root: {}, - background: {}, - centerContainer: {}, - leftContainer: {}, - rightContainer: {}, - center: {}, - left: {}, - right: {}, - top: {}, - bottom: {}, - border: {}, - scrollTop: 0, - scrollTopMin: 0 - }; + this.dom.left.parentNode.addEventListener('scroll', onMouseScrollSide.bind(this)); + this.dom.right.parentNode.addEventListener('scroll', onMouseScrollSide.bind(this)); + + var itemAddedToTimeline = false; + + function handleDragOver(event) { + if (event.preventDefault) { + event.preventDefault(); // Necessary. Allows us to drop. + } + + // make sure your target is a vis element + if (!event.target.className.includes('vis')) return; + + // make sure only one item is added every time you're over the timeline + if (itemAddedToTimeline) return; + + event.dataTransfer.dropEffect = 'move'; + itemAddedToTimeline = true; + return false; + } + + function handleDrop(event) { + // return when dropping non-vis items + try { + var itemData = JSON.parse(event.dataTransfer.getData("text/plain")); + if (!itemData.content) return; + } catch (err) { + return false; + } + + itemAddedToTimeline = false; + event.center = { + x: event.x, + y: event.y + }; + me.itemSet._onAddItem(event); + + return false; + } + + this.dom.center.addEventListener('dragover', handleDragOver.bind(this), false); + this.dom.center.addEventListener('drop', handleDrop.bind(this), false); this.customTimes = []; @@ -17941,17 +18934,22 @@ return /******/ (function(modules) { // webpackBootstrap Core.prototype.setOptions = function (options) { if (options) { // copy the known options - var fields = ['width', 'height', 'minHeight', 'maxHeight', 'autoResize', 'start', 'end', 'clickToUse', 'dataAttributes', 'hiddenDates', 'locale', 'locales', 'moment', 'rtl', 'throttleRedraw']; + var fields = ['width', 'height', 'minHeight', 'maxHeight', 'autoResize', 'start', 'end', 'clickToUse', 'dataAttributes', 'hiddenDates', 'locale', 'locales', 'moment', 'rtl', 'zoomKey', 'horizontalScroll', 'verticalScroll']; util.selectiveExtend(fields, this.options, options); if (this.options.rtl) { - var contentContainer = this.dom.leftContainer; - this.dom.leftContainer = this.dom.rightContainer; - this.dom.rightContainer = contentContainer; this.dom.container.style.direction = "rtl"; this.dom.backgroundVertical.className = 'vis-panel vis-background vis-vertical-rtl'; } + if (this.options.verticalScroll) { + if (this.options.rtl) { + this.dom.rightContainer.className = 'vis-panel vis-right vis-vertical-scroll'; + } else { + this.dom.leftContainer.className = 'vis-panel vis-left vis-vertical-scroll'; + } + } + this.options.orientation = { item: undefined, axis: undefined }; if ('orientation' in options) { if (typeof options.orientation === 'string') { @@ -18046,7 +19044,7 @@ return /******/ (function(modules) { // webpackBootstrap // override redraw with a throttled version if (!this._origRedraw) { this._origRedraw = this._redraw.bind(this); - this._redraw = util.throttle(this._origRedraw, this.options.throttleRedraw); + this._redraw = util.throttle(this._origRedraw); } else { // Not the initial run: redraw everything this._redraw(); @@ -18331,6 +19329,46 @@ return /******/ (function(modules) { // webpackBootstrap }; }; + /** + * Zoom in the window such that given time is centered on screen. + * @param {Number} percentage - must be between [0..1] + */ + Core.prototype.zoomIn = function (percentage) { + if (!percentage || percentage < 0 || percentage > 1) return; + var range = this.getWindow(); + var start = range.start.valueOf(); + var end = range.end.valueOf(); + var interval = end - start; + var newInterval = interval / (1 + percentage); + var distance = (interval - newInterval) / 2; + var newStart = start + distance; + var newEnd = end - distance; + + this.setWindow({ + start: newStart, + end: newEnd + }); + }; + + /** + * Zoom out the window such that given time is centered on screen. + * @param {Number} percentage - must be between [0..1] + */ + Core.prototype.zoomOut = function (percentage) { + if (!percentage || percentage < 0 || percentage > 1) return; + var range = this.getWindow(); + var start = range.start.valueOf(); + var end = range.end.valueOf(); + var interval = end - start; + var newStart = start - interval * percentage / 2; + var newEnd = end + interval * percentage / 2; + + this.setWindow({ + start: newStart, + end: newEnd + }); + }; + /** * Force a redraw. Can be overridden by implementations of Core * @@ -18415,9 +19453,25 @@ return /******/ (function(modules) { // webpackBootstrap // calculate the widths of the panels props.root.width = dom.root.offsetWidth; props.background.width = props.root.width - borderRootWidth; - props.left.width = dom.leftContainer.clientWidth || -props.border.left; + + if (!this.initialDrawDone) { + props.scrollbarWidth = util.getScrollBarWidth(); + } + + if (this.options.verticalScroll) { + if (this.options.rtl) { + props.left.width = dom.leftContainer.clientWidth || -props.border.left; + props.right.width = dom.rightContainer.clientWidth + props.scrollbarWidth || -props.border.right; + } else { + props.left.width = dom.leftContainer.clientWidth + props.scrollbarWidth || -props.border.left; + props.right.width = dom.rightContainer.clientWidth || -props.border.right; + } + } else { + props.left.width = dom.leftContainer.clientWidth || -props.border.left; + props.right.width = dom.rightContainer.clientWidth || -props.border.right; + } + props.leftContainer.width = props.left.width; - props.right.width = dom.rightContainer.clientWidth || -props.border.right; props.rightContainer.width = props.right.width; var centerWidth = props.root.width - props.left.width - props.right.width - borderRootWidth; props.center.width = centerWidth; @@ -18460,19 +19514,16 @@ return /******/ (function(modules) { // webpackBootstrap // update the scrollTop, feasible range for the offset can be changed // when the height of the Core or of the contents of the center changed - this._updateScrollTop(); + var offset = this._updateScrollTop(); // reposition the scrollable contents - var offset = this.props.scrollTop; if (options.orientation.item != 'top') { offset += Math.max(this.props.centerContainer.height - this.props.center.height - this.props.border.top - this.props.border.bottom, 0); } dom.center.style.left = '0'; dom.center.style.top = offset + 'px'; dom.left.style.left = '0'; - dom.left.style.top = offset + 'px'; dom.right.style.left = '0'; - dom.right.style.top = offset + 'px'; // show shadows when vertical scrolling is available var visibilityTop = this.props.scrollTop == 0 ? 'hidden' : ''; @@ -18484,6 +19535,16 @@ return /******/ (function(modules) { // webpackBootstrap dom.shadowTopRight.style.visibility = visibilityTop; dom.shadowBottomRight.style.visibility = visibilityBottom; + if (this.options.verticalScroll) { + dom.shadowTopRight.style.visibility = "hidden"; + dom.shadowBottomRight.style.visibility = "hidden"; + dom.shadowTopLeft.style.visibility = "hidden"; + dom.shadowBottomLeft.style.visibility = "hidden"; + } else { + dom.left.style.top = offset + 'px'; + dom.right.style.top = offset + 'px'; + } + // enable/disable vertical panning var contentsOverflow = this.props.center.height > this.props.centerContainer.height; this.hammer.get('pan').set({ @@ -18505,6 +19566,7 @@ return /******/ (function(modules) { // webpackBootstrap } else { this.redrawCount = 0; } + this.initialDrawDone = true; //Emit public 'changed' event for UI updates, see issue #1592 @@ -18692,6 +19754,7 @@ return /******/ (function(modules) { // webpackBootstrap * @private */ Core.prototype._onDrag = function (event) { + if (!event) return; // refuse to drag when we where pinching to prevent the timeline make a jump // when releasing the fingers in opposite order from the touch screen if (!this.touch.allowDragging) return; @@ -18701,6 +19764,11 @@ return /******/ (function(modules) { // webpackBootstrap var oldScrollTop = this._getScrollTop(); var newScrollTop = this._setScrollTop(this.touch.initialScrollTop + delta); + if (this.options.verticalScroll) { + this.dom.left.parentNode.scrollTop = -this.props.scrollTop; + this.dom.right.parentNode.scrollTop = -this.props.scrollTop; + } + if (newScrollTop != oldScrollTop) { this.emit("verticalDrag"); } @@ -18763,25 +19831,25 @@ return /******/ (function(modules) { // webpackBootstrap module.exports = Core; /***/ }, -/* 34 */ +/* 36 */ /***/ 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 _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; - var Hammer = __webpack_require__(20); + var Hammer = __webpack_require__(22); var util = __webpack_require__(1); 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 TimeStep = __webpack_require__(37); + var Component = __webpack_require__(33); + var Group = __webpack_require__(38); + var BackgroundGroup = __webpack_require__(42); + var BoxItem = __webpack_require__(43); + var PointItem = __webpack_require__(44); + var RangeItem = __webpack_require__(40); + var BackgroundItem = __webpack_require__(45); var UNGROUPED = '__ungrouped__'; // reserved group id for ungrouped items var BACKGROUND = '__background__'; // reserved group id for background items without group @@ -18798,7 +19866,6 @@ return /******/ (function(modules) { // webpackBootstrap function ItemSet(body, options) { this.body = body; this.defaultOptions = { - rtl: false, type: null, // 'box', 'point', 'range', 'background' orientation: { item: 'bottom' // item orientation: 'top' or 'bottom' @@ -18862,11 +19929,14 @@ return /******/ (function(modules) { // webpackBootstrap vertical: 10 }, axis: 20 - } + }, + + tooltipOnItemUpdateTime: false }; // options is shared by this ItemSet and all its items this.options = util.extend({}, this.defaultOptions); + this.options.rtl = options.rtl; // options for getting items from the DataSet with the correct type this.itemOptions = { @@ -19001,13 +20071,21 @@ return /******/ (function(modules) { // webpackBootstrap // add item on doubletap this.hammer.on('doubletap', this._onAddItem.bind(this)); - this.groupHammer = new Hammer(this.body.dom.leftContainer); + + if (this.options.rtl) { + this.groupHammer = new Hammer(this.body.dom.rightContainer); + } else { + this.groupHammer = new Hammer(this.body.dom.leftContainer); + } this.groupHammer.on('panstart', this._onGroupDragStart.bind(this)); this.groupHammer.on('panmove', this._onGroupDrag.bind(this)); this.groupHammer.on('panend', this._onGroupDragEnd.bind(this)); this.groupHammer.get('pan').set({ threshold: 5, direction: Hammer.DIRECTION_HORIZONTAL }); + this.body.dom.centerContainer.addEventListener('mouseover', this._onMouseOver.bind(this)); + this.body.dom.centerContainer.addEventListener('mouseout', this._onMouseOut.bind(this)); + // attach to the DOM this.show(); }; @@ -19079,7 +20157,7 @@ return /******/ (function(modules) { // webpackBootstrap ItemSet.prototype.setOptions = function (options) { if (options) { // copy all options that we know - var fields = ['type', 'rtl', 'align', 'order', 'stack', 'selectable', 'multiselect', 'itemsAlwaysDraggable', 'multiselectPerGroup', 'groupOrder', 'dataAttributes', 'template', 'groupTemplate', 'hide', 'snap', 'groupOrderSwap']; + var fields = ['type', 'rtl', 'align', 'order', 'stack', 'selectable', 'multiselect', 'itemsAlwaysDraggable', 'multiselectPerGroup', 'groupOrder', 'dataAttributes', 'template', 'groupTemplate', 'hide', 'snap', 'groupOrderSwap', 'tooltipOnItemUpdateTime']; util.selectiveExtend(fields, this.options, options); if ('orientation' in options) { @@ -19214,7 +20292,11 @@ return /******/ (function(modules) { // webpackBootstrap // show labelset containing labels if (!this.dom.labelSet.parentNode) { - this.body.dom.left.appendChild(this.dom.labelSet); + if (this.options.rtl) { + this.body.dom.right.appendChild(this.dom.labelSet); + } else { + this.body.dom.left.appendChild(this.dom.labelSet); + } } }; @@ -19635,7 +20717,7 @@ return /******/ (function(modules) { // webpackBootstrap ids.forEach(function (id) { var itemData = me.itemsData.get(id, me.itemOptions); var item = me.items[id]; - var type = me._getType(itemData); + var type = itemData ? me._getType(itemData) : null; var constructor = ItemSet.types[type]; var selected; @@ -19652,7 +20734,7 @@ return /******/ (function(modules) { // webpackBootstrap } } - if (!item) { + if (!item && itemData) { // create item if (constructor) { item = new constructor(itemData, me.conversion, me.options); @@ -19959,6 +21041,7 @@ return /******/ (function(modules) { // webpackBootstrap var dragLeftItem = this.touchParams.dragLeftItem; var dragRightItem = this.touchParams.dragRightItem; + this.touchParams.itemIsDragging = true; if (dragLeftItem) { props = { @@ -20016,9 +21099,9 @@ return /******/ (function(modules) { // webpackBootstrap var xAbs = util.getAbsoluteRight(this.dom.frame); var x = xAbs - event.center.x + 10; // plus 10 to compensate for the drag starting as soon as you've moved 10px } else { - var xAbs = util.getAbsoluteLeft(this.dom.frame); - var x = event.center.x - xAbs - 10; // minus 10 to compensate for the drag starting as soon as you've moved 10px - } + var xAbs = util.getAbsoluteLeft(this.dom.frame); + var x = event.center.x - xAbs - 10; // minus 10 to compensate for the drag starting as soon as you've moved 10px + } var time = this.body.util.toTime(x); var scale = this.body.util.getScale(); @@ -20106,8 +21189,8 @@ return /******/ (function(modules) { // webpackBootstrap if (this.options.rtl) { var offset = -(current - initial); // ms } else { - var offset = current - initial; // ms - } + var offset = current - initial; // ms + } var itemData = this._cloneItemData(props.item.data); // clone the data if (props.item.editable === false) { @@ -20232,6 +21315,7 @@ return /******/ (function(modules) { // webpackBootstrap var dataset = this.itemsData.getDataSet(); var itemProps = this.touchParams.itemProps; this.touchParams.itemProps = null; + this.touchParams.itemIsDragging = false; itemProps.forEach(function (props) { var id = props.item.id; @@ -20359,7 +21443,7 @@ return /******/ (function(modules) { // webpackBootstrap orgOffset = 1; continue; } - // found a group (apart from dragged group) that has the wrong position -> switch with the + // found a group (apart from dragged group) that has the wrong position -> switch with the // group at the position where other one should be, fix index arrays and continue else { var slippedPosition = newOrder.indexOf(origOrder[curPos + orgOffset]); @@ -20418,7 +21502,7 @@ return /******/ (function(modules) { // webpackBootstrap break; } - // found a group that has the wrong position -> switch with the + // found a group that has the wrong position -> switch with the // group at the position where other one should be, fix index arrays and continue var slippedPosition = newOrder.indexOf(origOrder[curPos]); var switchGroup = dataset.get(newOrder[curPos]); @@ -20474,6 +21558,28 @@ return /******/ (function(modules) { // webpackBootstrap } }; + /** + * Handle hovering an item + * @param {Event} event + * @private + */ + ItemSet.prototype._onMouseOver = function (event) { + var item = this.itemFromTarget(event); + if (!item) return; + this.body.emitter.emit('itemover', { + item: item.id, + event: event + }); + }; + ItemSet.prototype._onMouseOut = function (event) { + var item = this.itemFromTarget(event); + if (!item) return; + this.body.emitter.emit('itemout', { + item: item.id, + event: event + }); + }; + /** * Handle creation and updates of an item on double tap * @param event @@ -20517,13 +21623,30 @@ return /******/ (function(modules) { // webpackBootstrap content: 'new item' }; - // when default type is a range, add a default end date to the new item - if (this.options.type === 'range') { - var end = this.body.util.toTime(x + this.props.width / 5); - newItemData.end = snap ? snap(end, scale, step) : end; - } + if (event.type == 'drop') { + var itemData = JSON.parse(event.dataTransfer.getData("text/plain")); + newItemData.content = itemData.content; // content is required + newItemData.type = itemData.type || 'box'; + newItemData[this.itemsData._fieldId] = itemData.id || util.randomUUID(); + + if (itemData.type == 'range' || itemData.end && itemData.start) { - newItemData[this.itemsData._fieldId] = util.randomUUID(); + if (!itemData.end) { + var end = this.body.util.toTime(x + this.props.width / 5); + newItemData.end = snap ? snap(end, scale, step) : end; + } else { + newItemData.end = new Date(newItemData.start._i).getTime() + new Date(itemData.end).getTime() - new Date(itemData.start).getTime(); + } + } + } else { + newItemData[this.itemsData._fieldId] = util.randomUUID(); + + // when default type is a range, add a default end date to the new item + if (this.options.type === 'range') { + var end = this.body.util.toTime(x + this.props.width / 5); + newItemData.end = snap ? snap(end, scale, step) : end; + } + } var group = this.groupFromTarget(event); if (group) { @@ -20535,6 +21658,9 @@ return /******/ (function(modules) { // webpackBootstrap this.options.onAdd(newItemData, function (item) { if (item) { me.itemsData.getDataSet().add(item); + if (event.type == 'drop') { + me.setSelection([item.id]); + } // TODO: need to trigger a redraw? } }); @@ -20593,16 +21719,16 @@ return /******/ (function(modules) { // webpackBootstrap } } } else { - // add/remove this item from the current selection - var index = selection.indexOf(item.id); - if (index == -1) { - // item is not yet selected -> select it - selection.push(item.id); - } else { - // item is already selected -> deselect it - selection.splice(index, 1); - } + // add/remove this item from the current selection + var index = selection.indexOf(item.id); + if (index == -1) { + // item is not yet selected -> select it + selection.push(item.id); + } else { + // item is already selected -> deselect it + selection.splice(index, 1); } + } this.setSelection(selection); @@ -20742,13 +21868,13 @@ return /******/ (function(modules) { // webpackBootstrap module.exports = ItemSet; /***/ }, -/* 35 */ +/* 37 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; var moment = __webpack_require__(2); - var DateUtil = __webpack_require__(32); + var DateUtil = __webpack_require__(34); var util = __webpack_require__(1); /** @@ -20840,9 +21966,9 @@ return /******/ (function(modules) { // webpackBootstrap this.moment = moment; // update the date properties, can have a new utcOffset - this.current = this.moment(this.current); - this._start = this.moment(this._start); - this._end = this.moment(this._end); + this.current = this.moment(this.current.valueOf()); + this._start = this.moment(this._start.valueOf()); + this._end = this.moment(this._end.valueOf()); }; /** @@ -21027,6 +22153,11 @@ return /******/ (function(modules) { // webpackBootstrap this.current = this._end.clone(); } + // Reset switches for year, month and day. Will get set to true where appropriate in DateUtil.stepOverHiddenDates + this.switchedDay = false; + this.switchedMonth = false; + this.switchedYear = false; + DateUtil.stepOverHiddenDates(this.moment, this, prev); }; @@ -21203,8 +22334,8 @@ return /******/ (function(modules) { // webpackBootstrap clone.add(1, 'month'); // important: first set Date to 1, after that change the month. } else { - clone.date(1); - } + clone.date(1); + } clone.hours(0); clone.minutes(0); @@ -21285,7 +22416,6 @@ return /******/ (function(modules) { // webpackBootstrap */ TimeStep.prototype.isMajor = function () { if (this.switchedYear == true) { - this.switchedYear = false; switch (this.scale) { case 'year': case 'month': @@ -21300,7 +22430,6 @@ return /******/ (function(modules) { // webpackBootstrap return false; } } else if (this.switchedMonth == true) { - this.switchedMonth = false; switch (this.scale) { case 'weekday': case 'day': @@ -21313,7 +22442,6 @@ return /******/ (function(modules) { // webpackBootstrap return false; } } else if (this.switchedDay == true) { - this.switchedDay = false; switch (this.scale) { case 'millisecond': case 'second': @@ -21358,6 +22486,10 @@ return /******/ (function(modules) { // webpackBootstrap date = this.current; } + if (typeof this.format.minorLabels === "function") { + return this.format.minorLabels(date, this.scale, this.step); + } + var format = this.format.minorLabels[this.scale]; return format && format.length > 0 ? this.moment(date).format(format) : ''; }; @@ -21373,6 +22505,10 @@ return /******/ (function(modules) { // webpackBootstrap date = this.current; } + if (typeof this.format.majorLabels === "function") { + return this.format.majorLabels(date, this.scale, this.step); + } + var format = this.format.majorLabels[this.scale]; return format && format.length > 0 ? this.moment(date).format(format) : ''; }; @@ -21414,28 +22550,22 @@ return /******/ (function(modules) { // webpackBootstrap switch (this.scale) { case 'millisecond': - return even(current.milliseconds()).trim(); + return today(current) + even(current.milliseconds()).trim(); case 'second': - return even(current.seconds()).trim(); + return today(current) + even(current.seconds()).trim(); case 'minute': - return even(current.minutes()).trim(); + return today(current) + even(current.minutes()).trim(); case 'hour': - var hours = current.hours(); - if (this.step == 4) { - hours = hours + '-h' + (hours + 4); - } - return 'vis-h' + hours + today(current) + even(current.hours()); + return 'vis-h' + current.hours() + (this.step == 4 ? '-h' + (current.hours() + 4) : '') + today(current) + even(current.hours()); case 'weekday': return 'vis-' + current.format('dddd').toLowerCase() + today(current) + currentWeek(current) + even(current.date()); case 'day': - var day = current.date(); - var month = current.format('MMMM').toLowerCase(); - return 'vis-day' + day + ' vis-' + month + currentMonth(current) + even(day - 1); + return 'vis-day' + current.date() + ' vis-' + current.format('MMMM').toLowerCase() + today(current) + currentMonth(current) + this.step <= 2 ? today(current) : '' + this.step <= 2 ? ' vis-' + current.format('dddd').toLowerCase() : '' + even(current.date() - 1); case 'month': return 'vis-' + current.format('MMMM').toLowerCase() + currentMonth(current) + even(current.month()); @@ -21452,14 +22582,14 @@ return /******/ (function(modules) { // webpackBootstrap module.exports = TimeStep; /***/ }, -/* 36 */ +/* 38 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; var util = __webpack_require__(1); - var stack = __webpack_require__(37); - var RangeItem = __webpack_require__(38); + var stack = __webpack_require__(39); + var RangeItem = __webpack_require__(40); /** * @constructor Group @@ -21473,6 +22603,7 @@ return /******/ (function(modules) { // webpackBootstrap this.subgroupIndex = 0; this.subgroupOrderer = data && data.subgroupOrder; this.itemSet = itemSet; + this.isVisible = null; this.dom = {}; this.props = { @@ -21545,8 +22676,11 @@ return /******/ (function(modules) { // webpackBootstrap Group.prototype.setData = function (data) { // update contents var content; + var templateFunction; + if (this.itemSet.options && this.itemSet.options.groupTemplate) { - content = this.itemSet.options.groupTemplate(data); + templateFunction = this.itemSet.options.groupTemplate.bind(this); + content = templateFunction(data, this.dom.inner); } else { content = data && data.content; } @@ -21557,6 +22691,8 @@ return /******/ (function(modules) { // webpackBootstrap this.dom.inner.removeChild(this.dom.inner.firstChild); } this.dom.inner.appendChild(content); + } else if (content instanceof Object) { + templateFunction(data, this.dom.inner); } else if (content !== undefined && content !== null) { this.dom.inner.innerHTML = content; } else { @@ -21634,6 +22770,15 @@ return /******/ (function(modules) { // webpackBootstrap // recalculate the height of the subgroups this._calculateSubGroupHeights(); + this.isVisible = this._isGroupVisible(range, margin); + + // calculate actual size and position + var foreground = this.dom.foreground; + this.top = foreground.offsetTop; + this.right = foreground.offsetLeft; + this.width = foreground.offsetWidth; + + this.isVisible = this._isGroupVisible(range, margin); // reposition visible items vertically if (typeof this.itemSet.options.order === 'function') { // a custom order function @@ -21673,6 +22818,10 @@ return /******/ (function(modules) { // webpackBootstrap } } + if (!this.isVisible && this.height) { + return resized = false; + } + // recalculate the height of the group var height = this._calculateHeight(margin); @@ -21719,6 +22868,15 @@ return /******/ (function(modules) { // webpackBootstrap } }; + /** + * check if group is visible + * @private + */ + Group.prototype._isGroupVisible = function (range, margin) { + var isVisible = this.top <= range.body.domProps.centerContainer.height - range.body.domProps.scrollTop + margin.axis && this.top + this.height + margin.axis >= -range.body.domProps.scrollTop; + return isVisible; + }; + /** * recalculate the height of the group * @param {{item: {horizontal: number, vertical: number}, axis: number}} margin @@ -21924,10 +23082,17 @@ return /******/ (function(modules) { // webpackBootstrap Group.prototype._updateVisibleItems = function (orderedItems, oldVisibleItems, range) { var visibleItems = []; var visibleItemsLookup = {}; // we keep this to quickly look up if an item already exists in the list without using indexOf on visibleItems + if (!this.isVisible && this.groupId != "__background__") { + for (var i = 0; i < oldVisibleItems.length; i++) { + var item = oldVisibleItems[i]; + if (item.displayed) item.hide(); + } + return visibleItems; + } + var interval = (range.end - range.start) / 4; var lowerBound = range.start - interval; var upperBound = range.end + interval; - var item, i; // this function is used to do the binary search. var searchFunction = function searchFunction(value) { @@ -21944,7 +23109,7 @@ return /******/ (function(modules) { // webpackBootstrap // IMPORTANT: this handles the case for the items with startdate before the window and enddate after the window! // also cleans up invisible items. if (oldVisibleItems.length > 0) { - for (i = 0; i < oldVisibleItems.length; i++) { + for (var i = 0; i < oldVisibleItems.length; i++) { this._checkIfVisibleWithReference(oldVisibleItems[i], visibleItems, visibleItemsLookup, range); } } @@ -21975,36 +23140,20 @@ return /******/ (function(modules) { // webpackBootstrap } // finally, we reposition all the visible items. - for (i = 0; i < visibleItems.length; i++) { - item = visibleItems[i]; + for (var i = 0; i < visibleItems.length; i++) { + var item = visibleItems[i]; if (!item.displayed) item.show(); // reposition item horizontally item.repositionX(); } - // debug - //console.log("new line") - //if (this.groupId == null) { - // for (i = 0; i < orderedItems.byStart.length; i++) { - // item = orderedItems.byStart[i].data; - // console.log('start',i,initialPosByStart, item.start.valueOf(), item.content, item.start >= lowerBound && item.start <= upperBound,i == initialPosByStart ? "<------------------- HEREEEE" : "") - // } - // for (i = 0; i < orderedItems.byEnd.length; i++) { - // item = orderedItems.byEnd[i].data; - // console.log('rangeEnd',i,initialPosByEnd, item.end.valueOf(), item.content, item.end >= range.start && item.end <= range.end,i == initialPosByEnd ? "<------------------- HEREEEE" : "") - // } - //} - return visibleItems; }; Group.prototype._traceVisible = function (initialPos, items, visibleItems, visibleItemsLookup, breakCondition) { - var item; - var i; - if (initialPos != -1) { - for (i = initialPos; i >= 0; i--) { - item = items[i]; + for (var i = initialPos; i >= 0; i--) { + var item = items[i]; if (breakCondition(item)) { break; } else { @@ -22015,8 +23164,8 @@ return /******/ (function(modules) { // webpackBootstrap } } - for (i = initialPos + 1; i < items.length; i++) { - item = items[i]; + for (var i = initialPos + 1; i < items.length; i++) { + var item = items[i]; if (breakCondition(item)) { break; } else { @@ -22076,7 +23225,7 @@ return /******/ (function(modules) { // webpackBootstrap module.exports = Group; /***/ }, -/* 37 */ +/* 39 */ /***/ function(module, exports) { 'use strict'; @@ -22204,13 +23353,13 @@ return /******/ (function(modules) { // webpackBootstrap }; /***/ }, -/* 38 */ +/* 40 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; - var Hammer = __webpack_require__(20); - var Item = __webpack_require__(39); + var Hammer = __webpack_require__(22); + var Item = __webpack_require__(41); /** * @constructor RangeItem @@ -22329,7 +23478,10 @@ return /******/ (function(modules) { // webpackBootstrap this.dirty = false; } + + this._repaintOnItemUpdateTimeTooltip(dom.box); this._repaintDeleteButton(dom.box); + this._repaintDragCenter(); this._repaintDragLeft(); this._repaintDragRight(); }; @@ -22385,7 +23537,9 @@ return /******/ (function(modules) { // webpackBootstrap end = 2 * parentWidth; } } - var boxWidth = Math.max(end - start, 1); + + // add 0.5 to compensate floating-point values rounding + var boxWidth = Math.max(end - start + 0.5, 1); if (this.overflow) { if (this.options.rtl) { @@ -22400,14 +23554,14 @@ return /******/ (function(modules) { // webpackBootstrap // a width which will not change when moving the Timeline // So no re-stacking needed, which is nicer for the eye; } else { - if (this.options.rtl) { - this.right = start; - } else { - this.left = start; - } - this.width = boxWidth; - contentWidth = Math.min(end - start, this.props.content.width); + if (this.options.rtl) { + this.right = start; + } else { + this.left = start; } + this.width = boxWidth; + contentWidth = Math.min(end - start, this.props.content.width); + } if (this.options.rtl) { this.dom.box.style.right = this.right + 'px'; @@ -22452,16 +23606,17 @@ return /******/ (function(modules) { // webpackBootstrap contentStartPosition = -contentWidth; // ensure it's not visible anymore } } else { - if (start < 0) { - contentStartPosition = -start; - } else { - contentStartPosition = 0; - } + if (start < 0) { + contentStartPosition = -start; + } else { + contentStartPosition = 0; } + } if (this.options.rtl) { this.dom.content.style.right = contentStartPosition + 'px'; } else { this.dom.content.style.left = contentStartPosition + 'px'; + this.dom.content.style.width = 'calc(100% - ' + contentStartPosition + 'px)'; } } }; @@ -22528,13 +23683,14 @@ return /******/ (function(modules) { // webpackBootstrap module.exports = RangeItem; /***/ }, -/* 39 */ +/* 41 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; - var Hammer = __webpack_require__(20); + var Hammer = __webpack_require__(22); var util = __webpack_require__(1); + var moment = __webpack_require__(2); /** * @constructor Item @@ -22552,7 +23708,6 @@ return /******/ (function(modules) { // webpackBootstrap this.dom = null; this.conversion = conversion || {}; this.options = options || {}; - this.selected = false; this.displayed = false; this.dirty = true; @@ -22631,7 +23786,6 @@ return /******/ (function(modules) { // webpackBootstrap * @returns {boolean} True if visible */ Item.prototype.isVisible = function (range) { - // Should be implemented by Item implementations return false; }; @@ -22710,6 +23864,85 @@ return /******/ (function(modules) { // webpackBootstrap } }; + /** + * Repaint a onChange tooltip on the top right of the item when the item is selected + * @param {HTMLElement} anchor + * @protected + */ + Item.prototype._repaintOnItemUpdateTimeTooltip = function (anchor) { + if (!this.options.tooltipOnItemUpdateTime) return; + + var editable = (this.options.editable.updateTime || this.data.editable === true) && this.data.editable !== false; + + if (this.selected && editable && !this.dom.onItemUpdateTimeTooltip) { + // create and show tooltip + var me = this; + + var onItemUpdateTimeTooltip = document.createElement('div'); + + onItemUpdateTimeTooltip.className = 'vis-onUpdateTime-tooltip'; + anchor.appendChild(onItemUpdateTimeTooltip); + this.dom.onItemUpdateTimeTooltip = onItemUpdateTimeTooltip; + } else if (!this.selected && this.dom.onItemUpdateTimeTooltip) { + // remove button + if (this.dom.onItemUpdateTimeTooltip.parentNode) { + this.dom.onItemUpdateTimeTooltip.parentNode.removeChild(this.dom.onItemUpdateTimeTooltip); + } + this.dom.onItemUpdateTimeTooltip = null; + } + + // position onChange tooltip + if (this.dom.onItemUpdateTimeTooltip) { + + // only show when editing + this.dom.onItemUpdateTimeTooltip.style.visibility = this.parent.itemSet.touchParams.itemIsDragging ? 'visible' : 'hidden'; + + // position relative to item's content + if (this.options.rtl) { + this.dom.onItemUpdateTimeTooltip.style.right = this.dom.content.style.right; + } else { + this.dom.onItemUpdateTimeTooltip.style.left = this.dom.content.style.left; + } + + // position above or below the item depending on the item's position in the window + var tooltipOffset = 50; // TODO: should be tooltip height (depends on template) + var scrollTop = this.parent.itemSet.body.domProps.scrollTop; + + // TODO: this.top for orientation:true is actually the items distance from the bottom... + // (should be this.bottom) + var itemDistanceFromTop; + if (this.options.orientation.item == 'top') { + itemDistanceFromTop = this.top; + } else { + itemDistanceFromTop = this.parent.height - this.top - this.height; + } + var isCloseToTop = itemDistanceFromTop + this.parent.top - tooltipOffset < -scrollTop; + + if (isCloseToTop) { + this.dom.onItemUpdateTimeTooltip.style.bottom = ""; + this.dom.onItemUpdateTimeTooltip.style.top = this.height + 2 + "px"; + } else { + this.dom.onItemUpdateTimeTooltip.style.top = ""; + this.dom.onItemUpdateTimeTooltip.style.bottom = this.height + 2 + "px"; + } + + // handle tooltip content + var content; + var templateFunction; + + if (this.options.tooltipOnItemUpdateTime && this.options.tooltipOnItemUpdateTime.template) { + templateFunction = this.options.tooltipOnItemUpdateTime.template.bind(this); + content = templateFunction(this.data); + } else { + content = 'start: ' + moment(this.data.start).format('MM/DD/YYYY hh:mm'); + if (this.data.end) { + content += '
end: ' + moment(this.data.end).format('MM/DD/YYYY hh:mm'); + } + } + this.dom.onItemUpdateTimeTooltip.innerHTML = content; + } + }; + /** * Set HTML contents for the item * @param {Element} element HTML element to fill with the contents @@ -22717,28 +23950,35 @@ return /******/ (function(modules) { // webpackBootstrap */ Item.prototype._updateContents = function (element) { var content; + var templateFunction; + if (this.options.template) { var itemData = this.parent.itemSet.itemsData.get(this.id); // get a clone of the data from the dataset - content = this.options.template(itemData); + templateFunction = this.options.template.bind(this); + content = templateFunction(itemData, element); } else { content = this.data.content; } - var changed = this._contentToString(this.content) !== this._contentToString(content); - if (changed) { - // only replace the content when changed - if (content instanceof Element) { - element.innerHTML = ''; - element.appendChild(content); - } else if (content != undefined) { - element.innerHTML = content; - } else { - if (!(this.data.type == 'background' && this.data.content === undefined)) { - throw new Error('Property "content" missing in item ' + this.id); + if (content instanceof Object && !(content instanceof Element)) { + templateFunction(itemData, element); + } else { + var changed = this._contentToString(this.content) !== this._contentToString(content); + if (changed) { + // only replace the content when changed + if (content instanceof Element) { + element.innerHTML = ''; + element.appendChild(content); + } else if (content != undefined) { + element.innerHTML = content; + } else { + if (!(this.data.type == 'background' && this.data.content === undefined)) { + throw new Error('Property "content" missing in item ' + this.id); + } } - } - this.content = content; + this.content = content; + } } }; @@ -22832,16 +24072,43 @@ return /******/ (function(modules) { // webpackBootstrap return 0; }; + /** + * Repaint a drag area on the center of the item when the item is selected + * @protected + */ + Item.prototype._repaintDragCenter = function () { + if (this.selected && this.options.editable.updateTime && !this.dom.dragCenter) { + // create and show drag area + var dragCenter = document.createElement('div'); + dragCenter.className = 'vis-drag-center'; + dragCenter.dragCenterItem = this; + + if (this.dom.box) { + this.dom.box.appendChild(dragCenter); + } else if (this.dom.point) { + this.dom.point.appendChild(dragCenter); + } + + this.dom.dragCenter = dragCenter; + } else if (!this.selected && this.dom.dragCenter) { + // delete drag area + if (this.dom.dragCenter.parentNode) { + this.dom.dragCenter.parentNode.removeChild(this.dom.dragCenter); + } + this.dom.dragCenter = null; + } + }; + module.exports = Item; /***/ }, -/* 40 */ +/* 42 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; var util = __webpack_require__(1); - var Group = __webpack_require__(36); + var Group = __webpack_require__(38); /** * @constructor BackgroundGroup @@ -22899,12 +24166,12 @@ return /******/ (function(modules) { // webpackBootstrap module.exports = BackgroundGroup; /***/ }, -/* 41 */ +/* 43 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; - var Item = __webpack_require__(39); + var Item = __webpack_require__(41); var util = __webpack_require__(1); /** @@ -22948,9 +24215,20 @@ return /******/ (function(modules) { // webpackBootstrap */ BoxItem.prototype.isVisible = function (range) { // determine visibility - // TODO: account for the real width of the item. Right now we just add 1/4 to the window - var interval = (range.end - range.start) / 4; - return this.data.start > range.start - interval && this.data.start < range.end + interval; + var isVisible; + var align = this.options.align; + var msPerPixel = (range.end - range.start) / range.body.dom.center.clientWidth; + var widthInMs = this.width * msPerPixel; + + if (align == 'right') { + isVisible = this.data.start.getTime() > range.start && this.data.start.getTime() - widthInMs < range.end; + } else if (align == 'left') { + isVisible = this.data.start.getTime() + widthInMs > range.start && this.data.start.getTime() < range.end; + } else { + // default or 'center' + isVisible = this.data.start.getTime() + widthInMs / 2 > range.start && this.data.start.getTime() - widthInMs / 2 < range.end; + } + return isVisible; }; /** @@ -23024,6 +24302,17 @@ return /******/ (function(modules) { // webpackBootstrap dom.line.className = 'vis-item vis-line' + className; dom.dot.className = 'vis-item vis-dot' + className; + // set initial position in the visible range of the grid so that the + // rendered box size can be determinated correctly, even the content + // has a dynamic width (fixes #2032). + var previousRight = dom.box.style.right; + var previousLeft = dom.box.style.left; + if (this.options.rtl) { + dom.box.style.right = "0px"; + } else { + dom.box.style.left = "0px"; + } + // recalculate size this.props.dot.height = dom.dot.offsetHeight; this.props.dot.width = dom.dot.offsetWidth; @@ -23031,9 +24320,18 @@ return /******/ (function(modules) { // webpackBootstrap this.width = dom.box.offsetWidth; this.height = dom.box.offsetHeight; + // restore previous position + if (this.options.rtl) { + dom.box.style.right = previousRight; + } else { + dom.box.style.left = previousLeft; + } + this.dirty = false; } + this._repaintOnItemUpdateTimeTooltip(dom.box); + this._repaintDragCenter(); this._repaintDeleteButton(dom.box); }; @@ -23171,12 +24469,12 @@ return /******/ (function(modules) { // webpackBootstrap module.exports = BoxItem; /***/ }, -/* 42 */ +/* 44 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; - var Item = __webpack_require__(39); + var Item = __webpack_require__(41); /** * @constructor PointItem @@ -23221,9 +24519,10 @@ return /******/ (function(modules) { // webpackBootstrap */ PointItem.prototype.isVisible = function (range) { // determine visibility - // TODO: account for the real width of the item. Right now we just add 1/4 to the window - var interval = (range.end - range.start) / 4; - return this.data.start > range.start - interval && this.data.start < range.end + interval; + var msPerPixel = (range.end - range.start) / range.body.dom.center.clientWidth; + var widthInMs = this.width * msPerPixel; + + return this.data.start.getTime() + widthInMs > range.start && this.data.start < range.end; }; /** @@ -23313,6 +24612,8 @@ return /******/ (function(modules) { // webpackBootstrap this.dirty = false; } + this._repaintOnItemUpdateTimeTooltip(dom.point); + this._repaintDragCenter(); this._repaintDeleteButton(dom.point); }; @@ -23392,15 +24693,15 @@ return /******/ (function(modules) { // webpackBootstrap module.exports = PointItem; /***/ }, -/* 43 */ +/* 45 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; - var Hammer = __webpack_require__(20); - var Item = __webpack_require__(39); - var BackgroundGroup = __webpack_require__(40); - var RangeItem = __webpack_require__(38); + var Hammer = __webpack_require__(22); + var Item = __webpack_require__(41); + var BackgroundGroup = __webpack_require__(42); + var RangeItem = __webpack_require__(40); /** * @constructor BackgroundItem @@ -23613,17 +24914,17 @@ return /******/ (function(modules) { // webpackBootstrap module.exports = BackgroundItem; /***/ }, -/* 44 */ +/* 46 */ /***/ 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 _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; var util = __webpack_require__(1); - var Component = __webpack_require__(31); - var TimeStep = __webpack_require__(35); - var DateUtil = __webpack_require__(32); + var Component = __webpack_require__(33); + var TimeStep = __webpack_require__(37); + var DateUtil = __webpack_require__(34); var moment = __webpack_require__(2); /** @@ -24114,14 +25415,14 @@ return /******/ (function(modules) { // webpackBootstrap module.exports = TimeAxis; /***/ }, -/* 45 */ +/* 47 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; - var keycharm = __webpack_require__(23); + var keycharm = __webpack_require__(25); var Emitter = __webpack_require__(13); - var Hammer = __webpack_require__(20); + var Hammer = __webpack_require__(22); var util = __webpack_require__(1); /** @@ -24273,16 +25574,16 @@ return /******/ (function(modules) { // webpackBootstrap module.exports = Activator; /***/ }, -/* 46 */ +/* 48 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; - var Hammer = __webpack_require__(20); + var Hammer = __webpack_require__(22); var util = __webpack_require__(1); - var Component = __webpack_require__(31); + var Component = __webpack_require__(33); var moment = __webpack_require__(2); - var locales = __webpack_require__(47); + var locales = __webpack_require__(49); /** * A custom time bar @@ -24398,7 +25699,7 @@ return /******/ (function(modules) { // webpackBootstrap var locale = this.options.locales[this.options.locale]; if (!locale) { if (!this.warned) { - console.log('WARNING: options.locales[\'' + this.options.locale + '\'] not found. See http://visjs.org/docs/timeline.html#Localization'); + console.log('WARNING: options.locales[\'' + this.options.locale + '\'] not found. See http://visjs.org/docs/timeline/#Localization'); this.warned = true; } locale = this.options.locales['en']; // fall back on english when not available @@ -24524,7 +25825,7 @@ return /******/ (function(modules) { // webpackBootstrap module.exports = CustomTime; /***/ }, -/* 47 */ +/* 49 */ /***/ function(module, exports) { 'use strict'; @@ -24537,6 +25838,14 @@ return /******/ (function(modules) { // webpackBootstrap exports['en_EN'] = exports['en']; exports['en_US'] = exports['en']; + // Italiano + exports['it'] = { + current: 'attuale', + time: 'tempo' + }; + exports['it_IT'] = exports['it']; + exports['it_CH'] = exports['it']; + // Dutch exports['nl'] = { current: 'huidige', @@ -24545,16 +25854,23 @@ return /******/ (function(modules) { // webpackBootstrap exports['nl_NL'] = exports['nl']; exports['nl_BE'] = exports['nl']; + // German + exports['de'] = { + current: 'Aktuelle', + time: 'Zeit' + }; + exports['de_DE'] = exports['de']; + /***/ }, -/* 48 */ +/* 50 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; var util = __webpack_require__(1); - var Component = __webpack_require__(31); + var Component = __webpack_require__(33); var moment = __webpack_require__(2); - var locales = __webpack_require__(47); + var locales = __webpack_require__(49); /** * A current time bar @@ -24729,7 +26045,7 @@ return /******/ (function(modules) { // webpackBootstrap module.exports = CurrentTime; /***/ }, -/* 49 */ +/* 51 */ /***/ function(module, exports) { 'use strict'; @@ -24765,8 +26081,9 @@ return /******/ (function(modules) { // webpackBootstrap //globals : align: { string: string }, rtl: { boolean: boolean, 'undefined': 'undefined' }, + verticalScroll: { boolean: boolean, 'undefined': 'undefined' }, + horizontalScroll: { boolean: boolean, 'undefined': 'undefined' }, autoResize: { boolean: boolean }, - throttleRedraw: { number: number }, clickToUse: { boolean: boolean }, dataAttributes: { string: string, array: array }, editable: { @@ -24787,7 +26104,7 @@ return /******/ (function(modules) { // webpackBootstrap day: { string: string, 'undefined': 'undefined' }, month: { string: string, 'undefined': 'undefined' }, year: { string: string, 'undefined': 'undefined' }, - __type__: { object: object } + __type__: { object: object, 'function': 'function' } }, majorLabels: { millisecond: { string: string, 'undefined': 'undefined' }, @@ -24798,7 +26115,7 @@ return /******/ (function(modules) { // webpackBootstrap day: { string: string, 'undefined': 'undefined' }, month: { string: string, 'undefined': 'undefined' }, year: { string: string, 'undefined': 'undefined' }, - __type__: { object: object } + __type__: { object: object, 'function': 'function' } }, __type__: { object: object } }, @@ -24864,6 +26181,10 @@ return /******/ (function(modules) { // webpackBootstrap start: { date: date, number: number, string: string, moment: moment }, template: { 'function': 'function' }, groupTemplate: { 'function': 'function' }, + tooltipOnItemUpdateTime: { + template: { 'function': 'function' }, + __type__: { boolean: boolean, object: object } + }, timeAxis: { scale: { string: string, 'undefined': 'undefined' }, step: { number: number, 'undefined': 'undefined' }, @@ -24884,7 +26205,6 @@ return /******/ (function(modules) { // webpackBootstrap align: ['center', 'left', 'right'], direction: false, autoResize: true, - throttleRedraw: [10, 0, 1000, 10], clickToUse: false, // dataAttributes: ['all'], // FIXME: can be 'all' or string[] editable: { @@ -24959,6 +26279,7 @@ return /******/ (function(modules) { // webpackBootstrap // scale: ['millisecond', 'second', 'minute', 'hour', 'weekday', 'day', 'month', 'year'], // step: [1, 1, 10, 1] //}, + tooltipOnItemUpdateTime: false, type: ['box', 'point', 'range', 'background'], width: '100%', zoomable: true, @@ -24972,37 +26293,37 @@ return /******/ (function(modules) { // webpackBootstrap exports.configureOptions = configureOptions; /***/ }, -/* 50 */ +/* 52 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; - var _Configurator = __webpack_require__(26); + var _Configurator = __webpack_require__(28); var _Configurator2 = _interopRequireDefault(_Configurator); - var _Validator = __webpack_require__(29); + var _Validator = __webpack_require__(31); var _Validator2 = _interopRequireDefault(_Validator); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } var Emitter = __webpack_require__(13); - var Hammer = __webpack_require__(20); + var Hammer = __webpack_require__(22); 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 LineGraph = __webpack_require__(51); + var Range = __webpack_require__(32); + var Core = __webpack_require__(35); + var TimeAxis = __webpack_require__(46); + var CurrentTime = __webpack_require__(50); + var CustomTime = __webpack_require__(48); + var LineGraph = __webpack_require__(53); - var printStyle = __webpack_require__(29).printStyle; - var allOptions = __webpack_require__(59).allOptions; - var configureOptions = __webpack_require__(59).configureOptions; + var printStyle = __webpack_require__(31).printStyle; + var allOptions = __webpack_require__(61).allOptions; + var configureOptions = __webpack_require__(61).configureOptions; /** * Create a timeline visualization @@ -25086,6 +26407,7 @@ return /******/ (function(modules) { // webpackBootstrap this.itemsData = null; // DataSet this.groupsData = null; // DataSet + this.on('tap', function (event) { me.emit('click', me.getEventProperties(event)); }); @@ -25320,24 +26642,24 @@ return /******/ (function(modules) { // webpackBootstrap module.exports = Graph2d; /***/ }, -/* 51 */ +/* 53 */ /***/ 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 _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; var util = __webpack_require__(1); 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 Component = __webpack_require__(33); + var DataAxis = __webpack_require__(54); + var GraphGroup = __webpack_require__(56); + var Legend = __webpack_require__(60); + var Bars = __webpack_require__(57); + var Lines = __webpack_require__(59); + var Points = __webpack_require__(58); var UNGROUPED = '__ungrouped__'; // reserved group id for ungrouped items @@ -26352,15 +27674,15 @@ return /******/ (function(modules) { // webpackBootstrap module.exports = LineGraph; /***/ }, -/* 52 */ +/* 54 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; var util = __webpack_require__(1); var DOMutil = __webpack_require__(8); - var Component = __webpack_require__(31); - var DataScale = __webpack_require__(53); + var Component = __webpack_require__(33); + var DataScale = __webpack_require__(55); /** * A horizontal time axis * @param {Object} [options] See DataAxis.setOptions for the available @@ -26556,10 +27878,10 @@ return /******/ (function(modules) { // webpackBootstrap DataAxis.prototype.show = function () { this.hidden = false; if (!this.dom.frame.parentNode) { - if (this.options.rtl) { + if (this.options.orientation === 'left') { this.body.dom.left.appendChild(this.dom.frame); } else { - this.body.dom.left.appendChild(this.dom.frame); + this.body.dom.right.appendChild(this.dom.frame); } } @@ -26912,7 +28234,7 @@ return /******/ (function(modules) { // webpackBootstrap module.exports = DataAxis; /***/ }, -/* 53 */ +/* 55 */ /***/ function(module, exports) { 'use strict'; @@ -26922,8 +28244,8 @@ return /******/ (function(modules) { // webpackBootstrap */ function DataScale(start, end, autoScaleStart, autoScaleEnd, containerHeight, majorCharHeight) { - var zeroAlign = arguments.length <= 6 || arguments[6] === undefined ? false : arguments[6]; - var formattingFunction = arguments.length <= 7 || arguments[7] === undefined ? false : arguments[7]; + var zeroAlign = arguments.length > 6 && arguments[6] !== undefined ? arguments[6] : false; + var formattingFunction = arguments.length > 7 && arguments[7] !== undefined ? arguments[7] : false; this.majorSteps = [1, 2, 5, 10]; this.minorSteps = [0.25, 0.5, 1, 2]; @@ -27064,24 +28386,24 @@ return /******/ (function(modules) { // webpackBootstrap if (other.minorStepIdx <= 1 && this.minorStepIdx <= 1 || other.minorStepIdx > 1 && this.minorStepIdx > 1) { //easy, no need to change stepIdx nor multiplication factor } else if (other.minorStepIdx < this.minorStepIdx) { - //I'm 5, they are 4 per major. - this.minorStepIdx = 1; - if (oldStepIdx == 2) { - increaseMagnitude(); - } else { - increaseMagnitude(); - increaseMagnitude(); - } + //I'm 5, they are 4 per major. + this.minorStepIdx = 1; + if (oldStepIdx == 2) { + increaseMagnitude(); } else { - //I'm 4, they are 5 per major - this.minorStepIdx = 2; - if (oldStepIdx == 1) { - decreaseMagnitude(); - } else { - decreaseMagnitude(); - decreaseMagnitude(); - } + increaseMagnitude(); + increaseMagnitude(); } + } else { + //I'm 4, they are 5 per major + this.minorStepIdx = 2; + if (oldStepIdx == 1) { + decreaseMagnitude(); + } else { + decreaseMagnitude(); + decreaseMagnitude(); + } + } //Get masters stats: var lines = other.getLines(); @@ -27154,18 +28476,18 @@ return /******/ (function(modules) { // webpackBootstrap module.exports = DataScale; /***/ }, -/* 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 _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; var util = __webpack_require__(1); var DOMutil = __webpack_require__(8); - var Bars = __webpack_require__(55); - var Lines = __webpack_require__(57); - var Points = __webpack_require__(56); + var Bars = __webpack_require__(57); + var Lines = __webpack_require__(59); + var Points = __webpack_require__(58); /** * /** @@ -27317,13 +28639,13 @@ return /******/ (function(modules) { // webpackBootstrap module.exports = GraphGroup; /***/ }, -/* 55 */ +/* 57 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; var DOMutil = __webpack_require__(8); - var Points = __webpack_require__(56); + var Points = __webpack_require__(58); function Bargraph(groupId, options) {} @@ -27578,12 +28900,12 @@ return /******/ (function(modules) { // webpackBootstrap module.exports = Bargraph; /***/ }, -/* 56 */ +/* 58 */ /***/ 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 _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; var DOMutil = __webpack_require__(8); @@ -27657,7 +28979,7 @@ return /******/ (function(modules) { // webpackBootstrap module.exports = Points; /***/ }, -/* 57 */ +/* 59 */ /***/ function(module, exports, __webpack_require__) { "use strict"; @@ -27946,14 +29268,14 @@ return /******/ (function(modules) { // webpackBootstrap module.exports = Line; /***/ }, -/* 58 */ +/* 60 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; var util = __webpack_require__(1); var DOMutil = __webpack_require__(8); - var Component = __webpack_require__(31); + var Component = __webpack_require__(33); /** * Legend for Graph2d @@ -28165,7 +29487,7 @@ return /******/ (function(modules) { // webpackBootstrap module.exports = Legend; /***/ }, -/* 59 */ +/* 61 */ /***/ function(module, exports) { 'use strict'; @@ -28274,7 +29596,6 @@ return /******/ (function(modules) { // webpackBootstrap }, autoResize: { boolean: boolean }, - throttleRedraw: { number: number }, clickToUse: { boolean: boolean }, end: { number: number, date: date, string: string, moment: moment }, format: { @@ -28399,7 +29720,6 @@ return /******/ (function(modules) { // webpackBootstrap }, autoResize: true, - throttleRedraw: [10, 0, 1000, 10], clickToUse: false, end: '', format: { @@ -28451,7 +29771,7 @@ return /******/ (function(modules) { // webpackBootstrap exports.configureOptions = configureOptions; /***/ }, -/* 60 */ +/* 62 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; @@ -28466,12 +29786,12 @@ return /******/ (function(modules) { // webpackBootstrap exports.Queue = __webpack_require__(10); // Network - exports.Network = __webpack_require__(61); + exports.Network = __webpack_require__(63); exports.network = { - Images: __webpack_require__(62), - dotparser: __webpack_require__(118), - gephiParser: __webpack_require__(119), - allOptions: __webpack_require__(114) + Images: __webpack_require__(64), + dotparser: __webpack_require__(120), + gephiParser: __webpack_require__(121), + allOptions: __webpack_require__(116) }; exports.network.convertDot = function (input) { return exports.network.dotparser.DOTToGraph(input); @@ -28482,94 +29802,94 @@ return /******/ (function(modules) { // webpackBootstrap // bundled external libraries exports.moment = __webpack_require__(2); - exports.Hammer = __webpack_require__(20); - exports.keycharm = __webpack_require__(23); + exports.Hammer = __webpack_require__(22); + exports.keycharm = __webpack_require__(25); /***/ }, -/* 61 */ +/* 63 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; - var _Images = __webpack_require__(62); + var _Images = __webpack_require__(64); var _Images2 = _interopRequireDefault(_Images); - var _Groups = __webpack_require__(63); + var _Groups = __webpack_require__(65); var _Groups2 = _interopRequireDefault(_Groups); - var _NodesHandler = __webpack_require__(64); + var _NodesHandler = __webpack_require__(66); var _NodesHandler2 = _interopRequireDefault(_NodesHandler); - var _EdgesHandler = __webpack_require__(84); + var _EdgesHandler = __webpack_require__(86); var _EdgesHandler2 = _interopRequireDefault(_EdgesHandler); - var _PhysicsEngine = __webpack_require__(93); + var _PhysicsEngine = __webpack_require__(95); var _PhysicsEngine2 = _interopRequireDefault(_PhysicsEngine); - var _Clustering = __webpack_require__(102); + var _Clustering = __webpack_require__(104); var _Clustering2 = _interopRequireDefault(_Clustering); - var _CanvasRenderer = __webpack_require__(105); + var _CanvasRenderer = __webpack_require__(107); var _CanvasRenderer2 = _interopRequireDefault(_CanvasRenderer); - var _Canvas = __webpack_require__(106); + var _Canvas = __webpack_require__(108); var _Canvas2 = _interopRequireDefault(_Canvas); - var _View = __webpack_require__(107); + var _View = __webpack_require__(109); var _View2 = _interopRequireDefault(_View); - var _InteractionHandler = __webpack_require__(108); + var _InteractionHandler = __webpack_require__(110); var _InteractionHandler2 = _interopRequireDefault(_InteractionHandler); - var _SelectionHandler = __webpack_require__(111); + var _SelectionHandler = __webpack_require__(113); var _SelectionHandler2 = _interopRequireDefault(_SelectionHandler); - var _LayoutEngine = __webpack_require__(112); + var _LayoutEngine = __webpack_require__(114); var _LayoutEngine2 = _interopRequireDefault(_LayoutEngine); - var _ManipulationSystem = __webpack_require__(113); + var _ManipulationSystem = __webpack_require__(115); var _ManipulationSystem2 = _interopRequireDefault(_ManipulationSystem); - var _Configurator = __webpack_require__(26); + var _Configurator = __webpack_require__(28); var _Configurator2 = _interopRequireDefault(_Configurator); - var _Validator = __webpack_require__(29); + var _Validator = __webpack_require__(31); var _Validator2 = _interopRequireDefault(_Validator); - var _options = __webpack_require__(114); + var _options = __webpack_require__(116); - var _KamadaKawai = __webpack_require__(115); + var _KamadaKawai = __webpack_require__(117); var _KamadaKawai2 = _interopRequireDefault(_KamadaKawai); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } // Load custom shapes into CanvasRenderingContext2D - __webpack_require__(117); + __webpack_require__(119); var Emitter = __webpack_require__(13); var util = __webpack_require__(1); 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); + var dotparser = __webpack_require__(120); + var gephiParser = __webpack_require__(121); + var Activator = __webpack_require__(47); + var locales = __webpack_require__(122); /** * @constructor Network @@ -28853,14 +30173,14 @@ return /******/ (function(modules) { // webpackBootstrap this.setOptions(data && data.options); // set all data if (data && data.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);'); + console.log('The dot property has been deprecated. 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);'); // parse DOT file var dotData = dotparser.DOTToGraph(data.dot); this.setData(dotData); return; } else if (data && data.gephi) { // parse DOT file - 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);'); + console.log('The gephi property has been deprecated. 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 gephiData = gephiParser.parseGephi(data.gephi); this.setData(gephiData); return; @@ -29121,7 +30441,7 @@ return /******/ (function(modules) { // webpackBootstrap module.exports = Network; /***/ }, -/* 62 */ +/* 64 */ /***/ function(module, exports) { "use strict"; @@ -29138,7 +30458,6 @@ return /******/ (function(modules) { // webpackBootstrap * @class Images * This class loads images and keeps them stored. */ - var Images = function () { function Images(callback) { _classCallCheck(this, Images); @@ -29216,14 +30535,14 @@ return /******/ (function(modules) { // webpackBootstrap value: function load(url, brokenUrl, id) { var _this2 = this; - //Try and get the image from the cache, if successful then return the cached image + //Try and get the image from the cache, if successful then return the cached image var cachedImage = this.images[url]; if (cachedImage) return cachedImage; //Create a new image var img = new Image(); - //Subscribe to the event that is raised if the image loads successfully + //Subscribe to the event that is raised if the image loads successfully img.onload = function () { //Add the image to the cache and then request a redraw _this2._addImageToCache(url, img); @@ -29251,7 +30570,7 @@ return /******/ (function(modules) { // webpackBootstrap exports.default = Images; /***/ }, -/* 63 */ +/* 65 */ /***/ function(module, exports, __webpack_require__) { "use strict"; @@ -29395,7 +30714,7 @@ return /******/ (function(modules) { // webpackBootstrap exports.default = Groups; /***/ }, -/* 64 */ +/* 66 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; @@ -29406,11 +30725,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__(65); + var _Node = __webpack_require__(67); var _Node2 = _interopRequireDefault(_Node); - var _Label = __webpack_require__(66); + var _Label = __webpack_require__(68); var _Label2 = _interopRequireDefault(_Label); @@ -29609,7 +30928,7 @@ return /******/ (function(modules) { // webpackBootstrap value: function setData(nodes) { var _this3 = this; - var doNotEmit = arguments.length <= 1 || arguments[1] === undefined ? false : arguments[1]; + var doNotEmit = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false; var oldNodesData = this.body.data.nodes; @@ -29662,7 +30981,7 @@ return /******/ (function(modules) { // webpackBootstrap }, { key: 'add', value: function add(ids) { - var doNotEmit = arguments.length <= 1 || arguments[1] === undefined ? false : arguments[1]; + var doNotEmit = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false; var id = void 0; var newNodes = []; @@ -29741,14 +31060,14 @@ return /******/ (function(modules) { // webpackBootstrap }, { key: 'create', value: function create(properties) { - var constructorClass = arguments.length <= 1 || arguments[1] === undefined ? _Node2.default : arguments[1]; + var constructorClass = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _Node2.default; return new constructorClass(properties, this.body, this.images, this.groups, this.options); } }, { key: 'refresh', value: function refresh() { - var clearPositions = arguments.length <= 0 || arguments[0] === undefined ? false : arguments[0]; + var clearPositions = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false; var nodes = this.body.nodes; for (var nodeId in nodes) { @@ -29920,7 +31239,7 @@ return /******/ (function(modules) { // webpackBootstrap exports.default = NodesHandler; /***/ }, -/* 65 */ +/* 67 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; @@ -29931,67 +31250,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__(66); + var _Label = __webpack_require__(68); var _Label2 = _interopRequireDefault(_Label); - var _Box = __webpack_require__(67); + var _Box = __webpack_require__(69); var _Box2 = _interopRequireDefault(_Box); - var _Circle = __webpack_require__(69); + var _Circle = __webpack_require__(71); var _Circle2 = _interopRequireDefault(_Circle); - var _CircularImage = __webpack_require__(71); + var _CircularImage = __webpack_require__(73); var _CircularImage2 = _interopRequireDefault(_CircularImage); - var _Database = __webpack_require__(72); + var _Database = __webpack_require__(74); var _Database2 = _interopRequireDefault(_Database); - var _Diamond = __webpack_require__(73); + var _Diamond = __webpack_require__(75); var _Diamond2 = _interopRequireDefault(_Diamond); - var _Dot = __webpack_require__(75); + var _Dot = __webpack_require__(77); var _Dot2 = _interopRequireDefault(_Dot); - var _Ellipse = __webpack_require__(76); + var _Ellipse = __webpack_require__(78); var _Ellipse2 = _interopRequireDefault(_Ellipse); - var _Icon = __webpack_require__(77); + var _Icon = __webpack_require__(79); var _Icon2 = _interopRequireDefault(_Icon); - var _Image = __webpack_require__(78); + var _Image = __webpack_require__(80); var _Image2 = _interopRequireDefault(_Image); - var _Square = __webpack_require__(79); + var _Square = __webpack_require__(81); var _Square2 = _interopRequireDefault(_Square); - var _Star = __webpack_require__(80); + var _Star = __webpack_require__(82); var _Star2 = _interopRequireDefault(_Star); - var _Text = __webpack_require__(81); + var _Text = __webpack_require__(83); var _Text2 = _interopRequireDefault(_Text); - var _Triangle = __webpack_require__(82); + var _Triangle = __webpack_require__(84); var _Triangle2 = _interopRequireDefault(_Triangle); - var _TriangleDown = __webpack_require__(83); + var _TriangleDown = __webpack_require__(85); var _TriangleDown2 = _interopRequireDefault(_TriangleDown); - var _Validator = __webpack_require__(29); + var _Validator = __webpack_require__(31); var _Validator2 = _interopRequireDefault(_Validator); @@ -30026,7 +31345,6 @@ return /******/ (function(modules) { // webpackBootstrap * example for the color * */ - var Node = function () { function Node(options, body, imagelist, grouplist, globalOptions) { _classCallCheck(this, Node); @@ -30413,8 +31731,8 @@ return /******/ (function(modules) { // webpackBootstrap }], [{ key: 'parseOptions', value: function parseOptions(parentOptions, newOptions) { - var allowDeletion = arguments.length <= 2 || arguments[2] === undefined ? false : arguments[2]; - var globalOptions = arguments.length <= 3 || arguments[3] === undefined ? {} : arguments[3]; + var allowDeletion = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false; + var globalOptions = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {}; var fields = ['color', 'font', 'fixed', 'shadow']; util.selectiveNotDeepExtend(fields, parentOptions, newOptions, allowDeletion); @@ -30465,7 +31783,7 @@ return /******/ (function(modules) { // webpackBootstrap exports.default = Node; /***/ }, -/* 66 */ +/* 68 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; @@ -30476,7 +31794,7 @@ return /******/ (function(modules) { // webpackBootstrap var _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"]) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError("Invalid attempt to destructure non-iterable instance"); } }; }(); - 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 _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; 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; }; }(); @@ -30486,7 +31804,7 @@ return /******/ (function(modules) { // webpackBootstrap var Label = function () { function Label(body, options) { - var edgelabel = arguments.length <= 2 || arguments[2] === undefined ? false : arguments[2]; + var edgelabel = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false; _classCallCheck(this, Label); @@ -30503,7 +31821,7 @@ return /******/ (function(modules) { // webpackBootstrap _createClass(Label, [{ key: 'setOptions', value: function setOptions(options) { - var allowDeletion = arguments.length <= 1 || arguments[1] === undefined ? false : arguments[1]; + var allowDeletion = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false; this.nodeOptions = options; @@ -30539,7 +31857,7 @@ return /******/ (function(modules) { // webpackBootstrap * @param baseline */ value: function draw(ctx, x, y, selected) { - var baseline = arguments.length <= 4 || arguments[4] === undefined ? 'middle' : arguments[4]; + var baseline = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 'middle'; // if no label, return if (this.nodeOptions.label === undefined) return; @@ -30603,7 +31921,7 @@ return /******/ (function(modules) { // webpackBootstrap }, { key: '_drawText', value: function _drawText(ctx, selected, x, y) { - var baseline = arguments.length <= 4 || arguments[4] === undefined ? 'middle' : arguments[4]; + var baseline = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 'middle'; var fontSize = this.fontOptions.size; var viewFontSize = fontSize * this.body.view.scale; @@ -30614,16 +31932,12 @@ return /******/ (function(modules) { // webpackBootstrap var yLine = this.size.yLine; - var _getColor2 = this._getColor(viewFontSize); - - var _getColor3 = _slicedToArray(_getColor2, 2); - - var fontColor = _getColor3[0]; - var strokeColor = _getColor3[1]; - + var _getColor2 = this._getColor(viewFontSize), + _getColor3 = _slicedToArray(_getColor2, 2), + fontColor = _getColor3[0], + strokeColor = _getColor3[1]; // configure context for drawing the text - var _setAlignment2 = this._setAlignment(ctx, x, yLine, baseline); var _setAlignment3 = _slicedToArray(_setAlignment2, 2); @@ -30637,8 +31951,8 @@ return /******/ (function(modules) { // webpackBootstrap ctx.textAlign = this.fontOptions.align; x = x - 0.5 * this.size.width; // Shift label 1/2-distance to the left } else { - ctx.textAlign = 'center'; - } + ctx.textAlign = 'center'; + } // set the strokeWidth if (this.fontOptions.strokeWidth > 0) { @@ -30670,11 +31984,11 @@ return /******/ (function(modules) { // webpackBootstrap ctx.textBaseline = 'alphabetic'; yLine -= 2 * lineMargin; // distance from edge, required because we use alphabetic. Alphabetic has less difference between browsers } else if (this.fontOptions.align === 'bottom') { - ctx.textBaseline = 'hanging'; - yLine += 2 * lineMargin; // distance from edge, required because we use hanging. Hanging has less difference between browsers - } else { - ctx.textBaseline = 'middle'; - } + ctx.textBaseline = 'hanging'; + yLine += 2 * lineMargin; // distance from edge, required because we use hanging. Hanging has less difference between browsers + } else { + ctx.textBaseline = 'middle'; + } } else { ctx.textBaseline = baseline; } @@ -30714,7 +32028,7 @@ return /******/ (function(modules) { // webpackBootstrap }, { key: 'getTextSize', value: function getTextSize(ctx) { - var selected = arguments.length <= 1 || arguments[1] === undefined ? false : arguments[1]; + var selected = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false; var size = { width: this._processLabel(ctx, selected), @@ -30736,9 +32050,9 @@ return /******/ (function(modules) { // webpackBootstrap }, { key: 'calculateLabelSize', value: function calculateLabelSize(ctx, selected) { - var x = arguments.length <= 2 || arguments[2] === undefined ? 0 : arguments[2]; - var y = arguments.length <= 3 || arguments[3] === undefined ? 0 : arguments[3]; - var baseline = arguments.length <= 4 || arguments[4] === undefined ? 'middle' : arguments[4]; + var x = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0; + var y = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 0; + var baseline = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 'middle'; if (this.labelDirty === true) { this.size.width = this._processLabel(ctx, selected); @@ -30788,7 +32102,7 @@ return /******/ (function(modules) { // webpackBootstrap }], [{ key: 'parseOptions', value: function parseOptions(parentOptions, newOptions) { - var allowDeletion = arguments.length <= 2 || arguments[2] === undefined ? false : arguments[2]; + var allowDeletion = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false; if (typeof newOptions.font === 'string') { var newOptionsArray = newOptions.font.split(" "); @@ -30808,7 +32122,7 @@ return /******/ (function(modules) { // webpackBootstrap exports.default = Label; /***/ }, -/* 67 */ +/* 69 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; @@ -30819,7 +32133,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__(68); + var _NodeBase2 = __webpack_require__(70); var _NodeBase3 = _interopRequireDefault(_NodeBase2); @@ -30837,7 +32151,7 @@ return /******/ (function(modules) { // webpackBootstrap function Box(options, body, labelModule) { _classCallCheck(this, Box); - return _possibleConstructorReturn(this, Object.getPrototypeOf(Box).call(this, options, body, labelModule)); + return _possibleConstructorReturn(this, (Box.__proto__ || Object.getPrototypeOf(Box)).call(this, options, body, labelModule)); } _createClass(Box, [{ @@ -30922,7 +32236,7 @@ return /******/ (function(modules) { // webpackBootstrap exports.default = Box; /***/ }, -/* 68 */ +/* 70 */ /***/ function(module, exports) { "use strict"; @@ -31018,7 +32332,7 @@ return /******/ (function(modules) { // webpackBootstrap exports.default = NodeBase; /***/ }, -/* 69 */ +/* 71 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; @@ -31029,7 +32343,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__(70); + var _CircleImageBase2 = __webpack_require__(72); var _CircleImageBase3 = _interopRequireDefault(_CircleImageBase2); @@ -31047,7 +32361,7 @@ return /******/ (function(modules) { // webpackBootstrap function Circle(options, body, labelModule) { _classCallCheck(this, Circle); - return _possibleConstructorReturn(this, Object.getPrototypeOf(Circle).call(this, options, body, labelModule)); + return _possibleConstructorReturn(this, (Circle.__proto__ || Object.getPrototypeOf(Circle)).call(this, options, body, labelModule)); } _createClass(Circle, [{ @@ -31103,7 +32417,7 @@ return /******/ (function(modules) { // webpackBootstrap exports.default = Circle; /***/ }, -/* 70 */ +/* 72 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; @@ -31114,7 +32428,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__(68); + var _NodeBase2 = __webpack_require__(70); var _NodeBase3 = _interopRequireDefault(_NodeBase2); @@ -31132,7 +32446,7 @@ return /******/ (function(modules) { // webpackBootstrap function CircleImageBase(options, body, labelModule) { _classCallCheck(this, CircleImageBase); - var _this = _possibleConstructorReturn(this, Object.getPrototypeOf(CircleImageBase).call(this, options, body, labelModule)); + var _this = _possibleConstructorReturn(this, (CircleImageBase.__proto__ || Object.getPrototypeOf(CircleImageBase)).call(this, options, body, labelModule)); _this.labelOffset = 0; _this.imageLoaded = false; @@ -31304,7 +32618,7 @@ return /******/ (function(modules) { // webpackBootstrap exports.default = CircleImageBase; /***/ }, -/* 71 */ +/* 73 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; @@ -31315,7 +32629,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__(70); + var _CircleImageBase2 = __webpack_require__(72); var _CircleImageBase3 = _interopRequireDefault(_CircleImageBase2); @@ -31333,7 +32647,7 @@ return /******/ (function(modules) { // webpackBootstrap function CircularImage(options, body, labelModule, imageObj) { _classCallCheck(this, CircularImage); - var _this = _possibleConstructorReturn(this, Object.getPrototypeOf(CircularImage).call(this, options, body, labelModule)); + var _this = _possibleConstructorReturn(this, (CircularImage.__proto__ || Object.getPrototypeOf(CircularImage)).call(this, options, body, labelModule)); _this.imageObj = imageObj; _this._swapToImageResizeWhenImageLoaded = true; @@ -31411,7 +32725,7 @@ return /******/ (function(modules) { // webpackBootstrap exports.default = CircularImage; /***/ }, -/* 72 */ +/* 74 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; @@ -31422,7 +32736,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__(68); + var _NodeBase2 = __webpack_require__(70); var _NodeBase3 = _interopRequireDefault(_NodeBase2); @@ -31440,7 +32754,7 @@ return /******/ (function(modules) { // webpackBootstrap function Database(options, body, labelModule) { _classCallCheck(this, Database); - return _possibleConstructorReturn(this, Object.getPrototypeOf(Database).call(this, options, body, labelModule)); + return _possibleConstructorReturn(this, (Database.__proto__ || Object.getPrototypeOf(Database)).call(this, options, body, labelModule)); } _createClass(Database, [{ @@ -31520,7 +32834,7 @@ return /******/ (function(modules) { // webpackBootstrap exports.default = Database; /***/ }, -/* 73 */ +/* 75 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; @@ -31531,7 +32845,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__(74); + var _ShapeBase2 = __webpack_require__(76); var _ShapeBase3 = _interopRequireDefault(_ShapeBase2); @@ -31549,7 +32863,7 @@ return /******/ (function(modules) { // webpackBootstrap function Diamond(options, body, labelModule) { _classCallCheck(this, Diamond); - return _possibleConstructorReturn(this, Object.getPrototypeOf(Diamond).call(this, options, body, labelModule)); + return _possibleConstructorReturn(this, (Diamond.__proto__ || Object.getPrototypeOf(Diamond)).call(this, options, body, labelModule)); } _createClass(Diamond, [{ @@ -31575,7 +32889,7 @@ return /******/ (function(modules) { // webpackBootstrap exports.default = Diamond; /***/ }, -/* 74 */ +/* 76 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; @@ -31586,7 +32900,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__(68); + var _NodeBase2 = __webpack_require__(70); var _NodeBase3 = _interopRequireDefault(_NodeBase2); @@ -31604,7 +32918,7 @@ return /******/ (function(modules) { // webpackBootstrap function ShapeBase(options, body, labelModule) { _classCallCheck(this, ShapeBase); - return _possibleConstructorReturn(this, Object.getPrototypeOf(ShapeBase).call(this, options, body, labelModule)); + return _possibleConstructorReturn(this, (ShapeBase.__proto__ || Object.getPrototypeOf(ShapeBase)).call(this, options, body, labelModule)); } _createClass(ShapeBase, [{ @@ -31682,7 +32996,7 @@ return /******/ (function(modules) { // webpackBootstrap exports.default = ShapeBase; /***/ }, -/* 75 */ +/* 77 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; @@ -31693,7 +33007,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__(74); + var _ShapeBase2 = __webpack_require__(76); var _ShapeBase3 = _interopRequireDefault(_ShapeBase2); @@ -31711,7 +33025,7 @@ return /******/ (function(modules) { // webpackBootstrap function Dot(options, body, labelModule) { _classCallCheck(this, Dot); - return _possibleConstructorReturn(this, Object.getPrototypeOf(Dot).call(this, options, body, labelModule)); + return _possibleConstructorReturn(this, (Dot.__proto__ || Object.getPrototypeOf(Dot)).call(this, options, body, labelModule)); } _createClass(Dot, [{ @@ -31738,7 +33052,7 @@ return /******/ (function(modules) { // webpackBootstrap exports.default = Dot; /***/ }, -/* 76 */ +/* 78 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; @@ -31749,7 +33063,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__(68); + var _NodeBase2 = __webpack_require__(70); var _NodeBase3 = _interopRequireDefault(_NodeBase2); @@ -31767,7 +33081,7 @@ return /******/ (function(modules) { // webpackBootstrap function Ellipse(options, body, labelModule) { _classCallCheck(this, Ellipse); - return _possibleConstructorReturn(this, Object.getPrototypeOf(Ellipse).call(this, options, body, labelModule)); + return _possibleConstructorReturn(this, (Ellipse.__proto__ || Object.getPrototypeOf(Ellipse)).call(this, options, body, labelModule)); } _createClass(Ellipse, [{ @@ -31776,11 +33090,8 @@ return /******/ (function(modules) { // webpackBootstrap if (this.width === undefined) { var textSize = this.labelModule.getTextSize(ctx, selected); - this.width = textSize.width * 1.5; this.height = textSize.height * 2; - if (this.width < this.height) { - this.width = this.height; - } + this.width = textSize.width + this.height; this.radius = 0.5 * this.width; } } @@ -31856,7 +33167,7 @@ return /******/ (function(modules) { // webpackBootstrap exports.default = Ellipse; /***/ }, -/* 77 */ +/* 79 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; @@ -31867,7 +33178,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__(68); + var _NodeBase2 = __webpack_require__(70); var _NodeBase3 = _interopRequireDefault(_NodeBase2); @@ -31885,7 +33196,7 @@ return /******/ (function(modules) { // webpackBootstrap function Icon(options, body, labelModule) { _classCallCheck(this, Icon); - return _possibleConstructorReturn(this, Object.getPrototypeOf(Icon).call(this, options, body, labelModule)); + return _possibleConstructorReturn(this, (Icon.__proto__ || Object.getPrototypeOf(Icon)).call(this, options, body, labelModule)); } _createClass(Icon, [{ @@ -31970,7 +33281,7 @@ return /******/ (function(modules) { // webpackBootstrap exports.default = Icon; /***/ }, -/* 78 */ +/* 80 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; @@ -31981,7 +33292,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__(70); + var _CircleImageBase2 = __webpack_require__(72); var _CircleImageBase3 = _interopRequireDefault(_CircleImageBase2); @@ -31999,7 +33310,7 @@ return /******/ (function(modules) { // webpackBootstrap function Image(options, body, labelModule, imageObj) { _classCallCheck(this, Image); - var _this = _possibleConstructorReturn(this, Object.getPrototypeOf(Image).call(this, options, body, labelModule)); + var _this = _possibleConstructorReturn(this, (Image.__proto__ || Object.getPrototypeOf(Image)).call(this, options, body, labelModule)); _this.imageObj = imageObj; return _this; @@ -32087,7 +33398,7 @@ return /******/ (function(modules) { // webpackBootstrap exports.default = Image; /***/ }, -/* 79 */ +/* 81 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; @@ -32098,7 +33409,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__(74); + var _ShapeBase2 = __webpack_require__(76); var _ShapeBase3 = _interopRequireDefault(_ShapeBase2); @@ -32116,7 +33427,7 @@ return /******/ (function(modules) { // webpackBootstrap function Square(options, body, labelModule) { _classCallCheck(this, Square); - return _possibleConstructorReturn(this, Object.getPrototypeOf(Square).call(this, options, body, labelModule)); + return _possibleConstructorReturn(this, (Square.__proto__ || Object.getPrototypeOf(Square)).call(this, options, body, labelModule)); } _createClass(Square, [{ @@ -32142,7 +33453,7 @@ return /******/ (function(modules) { // webpackBootstrap exports.default = Square; /***/ }, -/* 80 */ +/* 82 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; @@ -32153,7 +33464,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__(74); + var _ShapeBase2 = __webpack_require__(76); var _ShapeBase3 = _interopRequireDefault(_ShapeBase2); @@ -32171,7 +33482,7 @@ return /******/ (function(modules) { // webpackBootstrap function Star(options, body, labelModule) { _classCallCheck(this, Star); - return _possibleConstructorReturn(this, Object.getPrototypeOf(Star).call(this, options, body, labelModule)); + return _possibleConstructorReturn(this, (Star.__proto__ || Object.getPrototypeOf(Star)).call(this, options, body, labelModule)); } _createClass(Star, [{ @@ -32197,7 +33508,7 @@ return /******/ (function(modules) { // webpackBootstrap exports.default = Star; /***/ }, -/* 81 */ +/* 83 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; @@ -32208,7 +33519,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__(68); + var _NodeBase2 = __webpack_require__(70); var _NodeBase3 = _interopRequireDefault(_NodeBase2); @@ -32226,7 +33537,7 @@ return /******/ (function(modules) { // webpackBootstrap function Text(options, body, labelModule) { _classCallCheck(this, Text); - return _possibleConstructorReturn(this, Object.getPrototypeOf(Text).call(this, options, body, labelModule)); + return _possibleConstructorReturn(this, (Text.__proto__ || Object.getPrototypeOf(Text)).call(this, options, body, labelModule)); } _createClass(Text, [{ @@ -32282,7 +33593,7 @@ return /******/ (function(modules) { // webpackBootstrap exports.default = Text; /***/ }, -/* 82 */ +/* 84 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; @@ -32293,7 +33604,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__(74); + var _ShapeBase2 = __webpack_require__(76); var _ShapeBase3 = _interopRequireDefault(_ShapeBase2); @@ -32311,7 +33622,7 @@ return /******/ (function(modules) { // webpackBootstrap function Triangle(options, body, labelModule) { _classCallCheck(this, Triangle); - return _possibleConstructorReturn(this, Object.getPrototypeOf(Triangle).call(this, options, body, labelModule)); + return _possibleConstructorReturn(this, (Triangle.__proto__ || Object.getPrototypeOf(Triangle)).call(this, options, body, labelModule)); } _createClass(Triangle, [{ @@ -32337,7 +33648,7 @@ return /******/ (function(modules) { // webpackBootstrap exports.default = Triangle; /***/ }, -/* 83 */ +/* 85 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; @@ -32348,7 +33659,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__(74); + var _ShapeBase2 = __webpack_require__(76); var _ShapeBase3 = _interopRequireDefault(_ShapeBase2); @@ -32366,7 +33677,7 @@ return /******/ (function(modules) { // webpackBootstrap function TriangleDown(options, body, labelModule) { _classCallCheck(this, TriangleDown); - return _possibleConstructorReturn(this, Object.getPrototypeOf(TriangleDown).call(this, options, body, labelModule)); + return _possibleConstructorReturn(this, (TriangleDown.__proto__ || Object.getPrototypeOf(TriangleDown)).call(this, options, body, labelModule)); } _createClass(TriangleDown, [{ @@ -32392,7 +33703,7 @@ return /******/ (function(modules) { // webpackBootstrap exports.default = TriangleDown; /***/ }, -/* 84 */ +/* 86 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; @@ -32403,11 +33714,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__(85); + var _Edge = __webpack_require__(87); var _Edge2 = _interopRequireDefault(_Edge); - var _Label = __webpack_require__(66); + var _Label = __webpack_require__(68); var _Label2 = _interopRequireDefault(_Label); @@ -32447,9 +33758,9 @@ return /******/ (function(modules) { // webpackBootstrap this.options = {}; this.defaultOptions = { arrows: { - to: { enabled: false, scaleFactor: 1 }, // boolean / {arrowScaleFactor:1} / {enabled: false, arrowScaleFactor:1} - middle: { enabled: false, scaleFactor: 1 }, - from: { enabled: false, scaleFactor: 1 } + to: { enabled: false, scaleFactor: 1, type: 'arrow' }, // boolean / {arrowScaleFactor:1} / {enabled: false, arrowScaleFactor:1} + middle: { enabled: false, scaleFactor: 1, type: 'arrow' }, + from: { enabled: false, scaleFactor: 1, type: 'arrow' } }, arrowStrikethrough: true, color: { @@ -32629,7 +33940,7 @@ return /******/ (function(modules) { // webpackBootstrap value: function setData(edges) { var _this3 = this; - var doNotEmit = arguments.length <= 1 || arguments[1] === undefined ? false : arguments[1]; + var doNotEmit = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false; var oldEdgesData = this.body.data.edges; @@ -32681,7 +33992,7 @@ return /******/ (function(modules) { // webpackBootstrap }, { key: 'add', value: function add(ids) { - var doNotEmit = arguments.length <= 1 || arguments[1] === undefined ? false : arguments[1]; + var doNotEmit = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false; var edges = this.body.edges; var edgesData = this.body.data.edges; @@ -32838,7 +34149,7 @@ return /******/ (function(modules) { // webpackBootstrap exports.default = EdgesHandler; /***/ }, -/* 85 */ +/* 87 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; @@ -32847,27 +34158,27 @@ return /******/ (function(modules) { // webpackBootstrap value: true }); - 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 _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; 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__(66); + var _Label = __webpack_require__(68); var _Label2 = _interopRequireDefault(_Label); - var _CubicBezierEdge = __webpack_require__(86); + var _CubicBezierEdge = __webpack_require__(88); var _CubicBezierEdge2 = _interopRequireDefault(_CubicBezierEdge); - var _BezierEdgeDynamic = __webpack_require__(90); + var _BezierEdgeDynamic = __webpack_require__(92); var _BezierEdgeDynamic2 = _interopRequireDefault(_BezierEdgeDynamic); - var _BezierEdgeStatic = __webpack_require__(91); + var _BezierEdgeStatic = __webpack_require__(93); var _BezierEdgeStatic2 = _interopRequireDefault(_BezierEdgeStatic); - var _StraightEdge = __webpack_require__(92); + var _StraightEdge = __webpack_require__(94); var _StraightEdge2 = _interopRequireDefault(_StraightEdge); @@ -32892,7 +34203,6 @@ return /******/ (function(modules) { // webpackBootstrap * @param {Object} constants An object with default values for * example for the color */ - var Edge = function () { function Edge(options, body, globalOptions) { _classCallCheck(this, Edge); @@ -32980,7 +34290,6 @@ return /******/ (function(modules) { // webpackBootstrap } }, { key: 'updateLabelModule', - // set the object back to the global options /** @@ -33350,8 +34659,8 @@ return /******/ (function(modules) { // webpackBootstrap }], [{ key: 'parseOptions', value: function parseOptions(parentOptions, newOptions) { - var allowDeletion = arguments.length <= 2 || arguments[2] === undefined ? false : arguments[2]; - var globalOptions = arguments.length <= 3 || arguments[3] === undefined ? {} : arguments[3]; + var allowDeletion = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false; + var globalOptions = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {}; var fields = ['arrowStrikethrough', 'id', 'from', 'hidden', 'hoverWidth', 'label', 'labelHighlightBold', 'length', 'line', 'opacity', 'physics', 'scaling', 'selectionWidth', 'selfReferenceSize', 'to', 'title', 'value', 'width']; @@ -33437,7 +34746,7 @@ return /******/ (function(modules) { // webpackBootstrap if (newOptions.font !== undefined && newOptions.font !== null) { _Label2.default.parseOptions(parentOptions.font, newOptions); } else if (allowDeletion === true && newOptions.font === null) { - parentOptions.font = util.bridgeObject(globalOptions.font); + parentOptions.font = util.bridgeObject(globalOptions.font); // set the object back to the global options } } }]); @@ -33448,7 +34757,7 @@ return /******/ (function(modules) { // webpackBootstrap exports.default = Edge; /***/ }, -/* 86 */ +/* 88 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; @@ -33461,7 +34770,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__(87); + var _CubicBezierEdgeBase2 = __webpack_require__(89); var _CubicBezierEdgeBase3 = _interopRequireDefault(_CubicBezierEdgeBase2); @@ -33479,7 +34788,7 @@ return /******/ (function(modules) { // webpackBootstrap function CubicBezierEdge(options, body, labelModule) { _classCallCheck(this, CubicBezierEdge); - return _possibleConstructorReturn(this, Object.getPrototypeOf(CubicBezierEdge).call(this, options, body, labelModule)); + return _possibleConstructorReturn(this, (CubicBezierEdge.__proto__ || Object.getPrototypeOf(CubicBezierEdge)).call(this, options, body, labelModule)); } /** @@ -33551,12 +34860,11 @@ return /******/ (function(modules) { // webpackBootstrap }, { key: '_getDistanceToEdge', value: function _getDistanceToEdge(x1, y1, x2, y2, x3, y3) { - var _ref = arguments.length <= 6 || arguments[6] === undefined ? this._getViaCoordinates() : arguments[6]; - - var _ref2 = _slicedToArray(_ref, 2); + var _ref = arguments.length > 6 && arguments[6] !== undefined ? arguments[6] : this._getViaCoordinates(), + _ref2 = _slicedToArray(_ref, 2), + via1 = _ref2[0], + via2 = _ref2[1]; - var via1 = _ref2[0]; - var via2 = _ref2[1]; // x3,y3 is the point return this._getDistanceToBezierEdge(x1, y1, x2, y2, x3, y3, via1, via2); } @@ -33572,12 +34880,10 @@ return /******/ (function(modules) { // webpackBootstrap }, { key: 'getPoint', value: function getPoint(percentage) { - var _ref3 = arguments.length <= 1 || arguments[1] === undefined ? this._getViaCoordinates() : arguments[1]; - - var _ref4 = _slicedToArray(_ref3, 2); - - var via1 = _ref4[0]; - var via2 = _ref4[1]; + var _ref3 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : this._getViaCoordinates(), + _ref4 = _slicedToArray(_ref3, 2), + via1 = _ref4[0], + via2 = _ref4[1]; var t = percentage; var vec = []; @@ -33598,7 +34904,7 @@ return /******/ (function(modules) { // webpackBootstrap exports.default = CubicBezierEdge; /***/ }, -/* 87 */ +/* 89 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; @@ -33609,7 +34915,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__(88); + var _BezierEdgeBase2 = __webpack_require__(90); var _BezierEdgeBase3 = _interopRequireDefault(_BezierEdgeBase2); @@ -33627,7 +34933,7 @@ return /******/ (function(modules) { // webpackBootstrap function CubicBezierEdgeBase(options, body, labelModule) { _classCallCheck(this, CubicBezierEdgeBase); - return _possibleConstructorReturn(this, Object.getPrototypeOf(CubicBezierEdgeBase).call(this, options, body, labelModule)); + return _possibleConstructorReturn(this, (CubicBezierEdgeBase.__proto__ || Object.getPrototypeOf(CubicBezierEdgeBase)).call(this, options, body, labelModule)); } /** @@ -33684,7 +34990,7 @@ return /******/ (function(modules) { // webpackBootstrap exports.default = CubicBezierEdgeBase; /***/ }, -/* 88 */ +/* 90 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; @@ -33695,7 +35001,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__(89); + var _EdgeBase2 = __webpack_require__(91); var _EdgeBase3 = _interopRequireDefault(_EdgeBase2); @@ -33713,7 +35019,7 @@ return /******/ (function(modules) { // webpackBootstrap function BezierEdgeBase(options, body, labelModule) { _classCallCheck(this, BezierEdgeBase); - return _possibleConstructorReturn(this, Object.getPrototypeOf(BezierEdgeBase).call(this, options, body, labelModule)); + return _possibleConstructorReturn(this, (BezierEdgeBase.__proto__ || Object.getPrototypeOf(BezierEdgeBase)).call(this, options, body, labelModule)); } /** @@ -33734,7 +35040,7 @@ return /******/ (function(modules) { // webpackBootstrap _createClass(BezierEdgeBase, [{ key: '_findBorderPositionBezier', value: function _findBorderPositionBezier(nearNode, ctx) { - var viaNode = arguments.length <= 2 || arguments[2] === undefined ? this._getViaCoordinates() : arguments[2]; + var viaNode = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : this._getViaCoordinates(); var maxIterations = 10; var iteration = 0; @@ -33760,19 +35066,19 @@ return /******/ (function(modules) { // webpackBootstrap if (Math.abs(difference) < threshold) { break; // found } else if (difference < 0) { - // distance to nodes is larger than distance to border --> t needs to be bigger if we're looking at the to node. - if (from === false) { - low = middle; - } else { - high = middle; - } + // distance to nodes is larger than distance to border --> t needs to be bigger if we're looking at the to node. + if (from === false) { + low = middle; } else { - if (from === false) { - high = middle; - } else { - low = middle; - } + high = middle; + } + } else { + if (from === false) { + high = middle; + } else { + low = middle; } + } iteration++; } @@ -33828,7 +35134,7 @@ return /******/ (function(modules) { // webpackBootstrap exports.default = BezierEdgeBase; /***/ }, -/* 89 */ +/* 91 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; @@ -33909,13 +35215,11 @@ return /******/ (function(modules) { // webpackBootstrap // draw line this._line(ctx, viaNode, fromPoint, toPoint); } else { - var _getCircleData2 = this._getCircleData(ctx); - - var _getCircleData3 = _slicedToArray(_getCircleData2, 3); - - var x = _getCircleData3[0]; - var y = _getCircleData3[1]; - var radius = _getCircleData3[2]; + var _getCircleData2 = this._getCircleData(ctx), + _getCircleData3 = _slicedToArray(_getCircleData2, 3), + x = _getCircleData3[0], + y = _getCircleData3[1], + radius = _getCircleData3[2]; this._circle(ctx, x, y, radius); } @@ -33942,13 +35246,11 @@ return /******/ (function(modules) { // webpackBootstrap // draw line this._line(ctx, viaNode); } else { - var _getCircleData4 = this._getCircleData(ctx); - - var _getCircleData5 = _slicedToArray(_getCircleData4, 3); - - var x = _getCircleData5[0]; - var y = _getCircleData5[1]; - var radius = _getCircleData5[2]; + var _getCircleData4 = this._getCircleData(ctx), + _getCircleData5 = _slicedToArray(_getCircleData4, 3), + x = _getCircleData5[0], + y = _getCircleData5[1], + radius = _getCircleData5[2]; this._circle(ctx, x, y, radius); } @@ -33963,13 +35265,11 @@ return /******/ (function(modules) { // webpackBootstrap // draw line ctx.dashedLine(this.from.x, this.from.y, this.to.x, this.to.y, pattern); } else { - var _getCircleData6 = this._getCircleData(ctx); - - var _getCircleData7 = _slicedToArray(_getCircleData6, 3); - - var _x = _getCircleData7[0]; - var _y = _getCircleData7[1]; - var _radius = _getCircleData7[2]; + var _getCircleData6 = this._getCircleData(ctx), + _getCircleData7 = _slicedToArray(_getCircleData6, 3), + _x = _getCircleData7[0], + _y = _getCircleData7[1], + _radius = _getCircleData7[2]; this._circle(ctx, _x, _y, _radius); } @@ -34000,14 +35300,11 @@ return /******/ (function(modules) { // webpackBootstrap from = this._findBorderPosition(this.from, ctx); to = this._findBorderPosition(this.to, ctx); } else { - var _getCircleData8 = this._getCircleData(ctx); - - var _getCircleData9 = _slicedToArray(_getCircleData8, 3); - - var x = _getCircleData9[0]; - var y = _getCircleData9[1]; - var radius = _getCircleData9[2]; - + var _getCircleData8 = this._getCircleData(ctx), + _getCircleData9 = _slicedToArray(_getCircleData8, 3), + x = _getCircleData9[0], + y = _getCircleData9[1], + radius = _getCircleData9[2]; from = this._findBorderPositionCircle(this.from, ctx, { x: x, y: y, low: 0.25, high: 0.6, direction: -1 }); to = this._findBorderPositionCircle(this.from, ctx, { x: x, y: y, low: 0.6, high: 0.8, direction: 1 }); @@ -34099,19 +35396,19 @@ return /******/ (function(modules) { // webpackBootstrap if (Math.abs(difference) < threshold) { break; // found } else if (difference > 0) { - // distance to nodes is larger than distance to border --> t needs to be bigger if we're looking at the to node. - if (direction > 0) { - low = middle; - } else { - high = middle; - } + // distance to nodes is larger than distance to border --> t needs to be bigger if we're looking at the to node. + if (direction > 0) { + low = middle; } else { - if (direction > 0) { - high = middle; - } else { - low = middle; - } + high = middle; + } + } else { + if (direction > 0) { + high = middle; + } else { + low = middle; } + } iteration++; } pos.t = middle; @@ -34242,13 +35539,11 @@ return /******/ (function(modules) { // webpackBootstrap if (this.from != this.to) { returnValue = this._getDistanceToEdge(x1, y1, x2, y2, x3, y3, via); } else { - var _getCircleData10 = this._getCircleData(); - - var _getCircleData11 = _slicedToArray(_getCircleData10, 3); - - var x = _getCircleData11[0]; - var y = _getCircleData11[1]; - var radius = _getCircleData11[2]; + var _getCircleData10 = this._getCircleData(), + _getCircleData11 = _slicedToArray(_getCircleData10, 3), + x = _getCircleData11[0], + y = _getCircleData11[1], + radius = _getCircleData11[2]; var dx = x - x3; var dy = y - y3; @@ -34306,6 +35601,7 @@ return /******/ (function(modules) { // webpackBootstrap var node2 = void 0; var guideOffset = void 0; var scaleFactor = void 0; + var type = void 0; var lineWidth = this.getLineWidth(selected, hover); if (position === 'from') { @@ -34313,15 +35609,18 @@ return /******/ (function(modules) { // webpackBootstrap node2 = this.to; guideOffset = 0.1; scaleFactor = this.options.arrows.from.scaleFactor; + type = this.options.arrows.from.type; } else if (position === 'to') { node1 = this.to; node2 = this.from; guideOffset = -0.1; scaleFactor = this.options.arrows.to.scaleFactor; + type = this.options.arrows.to.type; } else { node1 = this.to; node2 = this.from; scaleFactor = this.options.arrows.middle.scaleFactor; + type = this.options.arrows.middle.type; } // if not connected to itself @@ -34341,28 +35640,24 @@ return /******/ (function(modules) { // webpackBootstrap arrowPoint = this.getPoint(0.5, viaNode); // this is 0.6 to account for the size of the arrow. } } else { - // draw circle - - var _getCircleData12 = this._getCircleData(ctx); - - var _getCircleData13 = _slicedToArray(_getCircleData12, 3); - - var x = _getCircleData13[0]; - var y = _getCircleData13[1]; - var radius = _getCircleData13[2]; - - - if (position === 'from') { - arrowPoint = this.findBorderPosition(this.from, ctx, { x: x, y: y, low: 0.25, high: 0.6, direction: -1 }); - angle = arrowPoint.t * -2 * Math.PI + 1.5 * Math.PI + 0.1 * Math.PI; - } else if (position === 'to') { - arrowPoint = this.findBorderPosition(this.from, ctx, { x: x, y: y, low: 0.6, high: 1.0, direction: 1 }); - angle = arrowPoint.t * -2 * Math.PI + 1.5 * Math.PI - 1.1 * Math.PI; - } else { - arrowPoint = this._pointOnCircle(x, y, radius, 0.175); - angle = 3.9269908169872414; // === 0.175 * -2 * Math.PI + 1.5 * Math.PI + 0.1 * Math.PI; - } + // draw circle + var _getCircleData12 = this._getCircleData(ctx), + _getCircleData13 = _slicedToArray(_getCircleData12, 3), + x = _getCircleData13[0], + y = _getCircleData13[1], + radius = _getCircleData13[2]; + + if (position === 'from') { + arrowPoint = this.findBorderPosition(this.from, ctx, { x: x, y: y, low: 0.25, high: 0.6, direction: -1 }); + angle = arrowPoint.t * -2 * Math.PI + 1.5 * Math.PI + 0.1 * Math.PI; + } else if (position === 'to') { + arrowPoint = this.findBorderPosition(this.from, ctx, { x: x, y: y, low: 0.6, high: 1.0, direction: 1 }); + angle = arrowPoint.t * -2 * Math.PI + 1.5 * Math.PI - 1.1 * Math.PI; + } else { + arrowPoint = this._pointOnCircle(x, y, radius, 0.175); + angle = 3.9269908169872414; // === 0.175 * -2 * Math.PI + 1.5 * Math.PI + 0.1 * Math.PI; } + } var length = 15 * scaleFactor + 3 * lineWidth; // 3* lineWidth is the width of the edge. @@ -34370,7 +35665,7 @@ return /******/ (function(modules) { // webpackBootstrap var yi = arrowPoint.y - length * 0.9 * Math.sin(angle); var arrowCore = { x: xi, y: yi }; - return { point: arrowPoint, core: arrowCore, angle: angle, length: length }; + return { point: arrowPoint, core: arrowCore, angle: angle, length: length, type: type }; } /** @@ -34389,8 +35684,13 @@ return /******/ (function(modules) { // webpackBootstrap ctx.fillStyle = ctx.strokeStyle; ctx.lineWidth = this.getLineWidth(selected, hover); - // draw arrow at the end of the line - ctx.arrow(arrowData.point.x, arrowData.point.y, arrowData.angle, arrowData.length); + if (arrowData.type && arrowData.type.toLowerCase() === 'circle') { + // draw circle at the end of the line + ctx.circleEndpoint(arrowData.point.x, arrowData.point.y, arrowData.angle, arrowData.length); + } else { + // draw arrow at the end of the line + ctx.arrowEndpoint(arrowData.point.x, arrowData.point.y, arrowData.angle, arrowData.length); + } // draw shadow if enabled this.enableShadow(ctx); @@ -34426,7 +35726,7 @@ return /******/ (function(modules) { // webpackBootstrap exports.default = EdgeBase; /***/ }, -/* 90 */ +/* 92 */ /***/ function(module, exports, __webpack_require__) { "use strict"; @@ -34435,9 +35735,11 @@ return /******/ (function(modules) { // webpackBootstrap value: true }); + var _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"]) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError("Invalid attempt to destructure non-iterable instance"); } }; }(); + 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__(88); + var _BezierEdgeBase2 = __webpack_require__(90); var _BezierEdgeBase3 = _interopRequireDefault(_BezierEdgeBase2); @@ -34456,8 +35758,7 @@ return /******/ (function(modules) { // webpackBootstrap _classCallCheck(this, BezierEdgeDynamic); // --> this calls the setOptions below - - var _this = _possibleConstructorReturn(this, Object.getPrototypeOf(BezierEdgeDynamic).call(this, options, body, labelModule)); + var _this = _possibleConstructorReturn(this, (BezierEdgeDynamic.__proto__ || Object.getPrototypeOf(BezierEdgeDynamic)).call(this, options, body, labelModule)); //this.via = undefined; // Here for completeness but not allowed to defined before super() is invoked. @@ -34604,11 +35905,25 @@ return /******/ (function(modules) { // webpackBootstrap }, { key: "getPoint", value: function getPoint(percentage) { - var viaNode = arguments.length <= 1 || arguments[1] === undefined ? this.via : arguments[1]; + var viaNode = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : this.via; var t = percentage; - var x = Math.pow(1 - t, 2) * this.fromPoint.x + 2 * t * (1 - t) * viaNode.x + Math.pow(t, 2) * this.toPoint.x; - var y = Math.pow(1 - t, 2) * this.fromPoint.y + 2 * t * (1 - t) * viaNode.y + Math.pow(t, 2) * this.toPoint.y; + var x = void 0, + y = void 0; + if (this.from === this.to) { + var _getCircleData = this._getCircleData(this.from), + _getCircleData2 = _slicedToArray(_getCircleData, 3), + cx = _getCircleData2[0], + cy = _getCircleData2[1], + cr = _getCircleData2[2]; + + var a = 2 * Math.PI * (1 - t); + x = cx + cr * Math.sin(a); + y = cy + cr - cr * (1 - Math.cos(a)); + } else { + x = Math.pow(1 - t, 2) * this.fromPoint.x + 2 * t * (1 - t) * viaNode.x + Math.pow(t, 2) * this.toPoint.x; + y = Math.pow(1 - t, 2) * this.fromPoint.y + 2 * t * (1 - t) * viaNode.y + Math.pow(t, 2) * this.toPoint.y; + } return { x: x, y: y }; } @@ -34631,7 +35946,7 @@ return /******/ (function(modules) { // webpackBootstrap exports.default = BezierEdgeDynamic; /***/ }, -/* 91 */ +/* 93 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; @@ -34642,7 +35957,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__(88); + var _BezierEdgeBase2 = __webpack_require__(90); var _BezierEdgeBase3 = _interopRequireDefault(_BezierEdgeBase2); @@ -34660,7 +35975,7 @@ return /******/ (function(modules) { // webpackBootstrap function BezierEdgeStatic(options, body, labelModule) { _classCallCheck(this, BezierEdgeStatic); - return _possibleConstructorReturn(this, Object.getPrototypeOf(BezierEdgeStatic).call(this, options, body, labelModule)); + return _possibleConstructorReturn(this, (BezierEdgeStatic.__proto__ || Object.getPrototypeOf(BezierEdgeStatic)).call(this, options, body, labelModule)); } /** @@ -34860,14 +36175,14 @@ return /******/ (function(modules) { // webpackBootstrap }, { key: '_findBorderPosition', value: function _findBorderPosition(nearNode, ctx) { - var options = arguments.length <= 2 || arguments[2] === undefined ? {} : arguments[2]; + var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {}; return this._findBorderPositionBezier(nearNode, ctx, options.via); } }, { key: '_getDistanceToEdge', value: function _getDistanceToEdge(x1, y1, x2, y2, x3, y3) { - var viaNode = arguments.length <= 6 || arguments[6] === undefined ? this._getViaCoordinates() : arguments[6]; + var viaNode = arguments.length > 6 && arguments[6] !== undefined ? arguments[6] : this._getViaCoordinates(); // x3,y3 is the point return this._getDistanceToBezierEdge(x1, y1, x2, y2, x3, y3, viaNode); } @@ -34883,7 +36198,7 @@ return /******/ (function(modules) { // webpackBootstrap }, { key: 'getPoint', value: function getPoint(percentage) { - var viaNode = arguments.length <= 1 || arguments[1] === undefined ? this._getViaCoordinates() : arguments[1]; + var viaNode = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : this._getViaCoordinates(); var t = percentage; var x = Math.pow(1 - t, 2) * this.fromPoint.x + 2 * t * (1 - t) * viaNode.x + Math.pow(t, 2) * this.toPoint.x; @@ -34899,7 +36214,7 @@ return /******/ (function(modules) { // webpackBootstrap exports.default = BezierEdgeStatic; /***/ }, -/* 92 */ +/* 94 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; @@ -34910,7 +36225,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__(89); + var _EdgeBase2 = __webpack_require__(91); var _EdgeBase3 = _interopRequireDefault(_EdgeBase2); @@ -34928,7 +36243,7 @@ return /******/ (function(modules) { // webpackBootstrap function StraightEdge(options, body, labelModule) { _classCallCheck(this, StraightEdge); - return _possibleConstructorReturn(this, Object.getPrototypeOf(StraightEdge).call(this, options, body, labelModule)); + return _possibleConstructorReturn(this, (StraightEdge.__proto__ || Object.getPrototypeOf(StraightEdge)).call(this, options, body, labelModule)); } /** @@ -35009,7 +36324,7 @@ return /******/ (function(modules) { // webpackBootstrap exports.default = StraightEdge; /***/ }, -/* 93 */ +/* 95 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; @@ -35020,35 +36335,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__(94); + var _BarnesHutSolver = __webpack_require__(96); var _BarnesHutSolver2 = _interopRequireDefault(_BarnesHutSolver); - var _RepulsionSolver = __webpack_require__(95); + var _RepulsionSolver = __webpack_require__(97); var _RepulsionSolver2 = _interopRequireDefault(_RepulsionSolver); - var _HierarchicalRepulsionSolver = __webpack_require__(96); + var _HierarchicalRepulsionSolver = __webpack_require__(98); var _HierarchicalRepulsionSolver2 = _interopRequireDefault(_HierarchicalRepulsionSolver); - var _SpringSolver = __webpack_require__(97); + var _SpringSolver = __webpack_require__(99); var _SpringSolver2 = _interopRequireDefault(_SpringSolver); - var _HierarchicalSpringSolver = __webpack_require__(98); + var _HierarchicalSpringSolver = __webpack_require__(100); var _HierarchicalSpringSolver2 = _interopRequireDefault(_HierarchicalSpringSolver); - var _CentralGravitySolver = __webpack_require__(99); + var _CentralGravitySolver = __webpack_require__(101); var _CentralGravitySolver2 = _interopRequireDefault(_CentralGravitySolver); - var _FA2BasedRepulsionSolver = __webpack_require__(100); + var _FA2BasedRepulsionSolver = __webpack_require__(102); var _FA2BasedRepulsionSolver2 = _interopRequireDefault(_FA2BasedRepulsionSolver); - var _FA2BasedCentralGravitySolver = __webpack_require__(101); + var _FA2BasedCentralGravitySolver = __webpack_require__(103); var _FA2BasedCentralGravitySolver2 = _interopRequireDefault(_FA2BasedCentralGravitySolver); @@ -35308,7 +36623,7 @@ return /******/ (function(modules) { // webpackBootstrap }, { key: 'stopSimulation', value: function stopSimulation() { - var emit = arguments.length <= 0 || arguments[0] === undefined ? true : arguments[0]; + var emit = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true; this.stabilized = true; if (emit === true) { @@ -35359,7 +36674,7 @@ return /******/ (function(modules) { // webpackBootstrap value: function _emitStabilized() { var _this2 = this; - var amountOfIterations = arguments.length <= 0 || arguments[0] === undefined ? this.stabilizationIterations : arguments[0]; + var amountOfIterations = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.stabilizationIterations; if (this.stabilizationIterations > 1 || this.startedStabilization === true) { setTimeout(function () { @@ -35616,9 +36931,9 @@ return /******/ (function(modules) { // webpackBootstrap velocities[nodeId].x = Math.abs(velocities[nodeId].x) > maxVelocity ? velocities[nodeId].x > 0 ? maxVelocity : -maxVelocity : velocities[nodeId].x; node.x += velocities[nodeId].x * timestep; // position } else { - forces[nodeId].x = 0; - velocities[nodeId].x = 0; - } + forces[nodeId].x = 0; + velocities[nodeId].x = 0; + } if (node.options.fixed.y === false) { var dy = this.modelOptions.damping * velocities[nodeId].y; // damping force @@ -35627,9 +36942,9 @@ return /******/ (function(modules) { // webpackBootstrap velocities[nodeId].y = Math.abs(velocities[nodeId].y) > maxVelocity ? velocities[nodeId].y > 0 ? maxVelocity : -maxVelocity : velocities[nodeId].y; node.y += velocities[nodeId].y * timestep; // position } else { - forces[nodeId].y = 0; - velocities[nodeId].y = 0; - } + forces[nodeId].y = 0; + velocities[nodeId].y = 0; + } var totalVelocity = Math.sqrt(Math.pow(velocities[nodeId].x, 2) + Math.pow(velocities[nodeId].y, 2)); return totalVelocity; @@ -35699,7 +37014,7 @@ return /******/ (function(modules) { // webpackBootstrap value: function stabilize() { var _this3 = this; - var iterations = arguments.length <= 0 || arguments[0] === undefined ? this.options.stabilization.iterations : arguments[0]; + var iterations = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.options.stabilization.iterations; if (typeof iterations !== 'number') { console.log('The stabilize method needs a numeric amount of iterations. Switching to default: ', this.options.stabilization.iterations); @@ -35818,7 +37133,7 @@ return /******/ (function(modules) { // webpackBootstrap var angle = Math.atan2(force.y, force.x); ctx.fillStyle = color; - ctx.arrow(node.x + factor * force.x + Math.cos(angle) * arrowSize, node.y + factor * force.y + Math.sin(angle) * arrowSize, angle, arrowSize); + ctx.arrowEndpoint(node.x + factor * force.x + Math.cos(angle) * arrowSize, node.y + factor * force.y + Math.sin(angle) * arrowSize, angle, arrowSize); ctx.fill(); } } @@ -35830,7 +37145,7 @@ return /******/ (function(modules) { // webpackBootstrap exports.default = PhysicsEngine; /***/ }, -/* 94 */ +/* 96 */ /***/ function(module, exports) { "use strict"; @@ -35972,7 +37287,7 @@ return /******/ (function(modules) { // webpackBootstrap dx = distance; } - if (this.overlapAvoidanceFactor < 1) { + if (this.overlapAvoidanceFactor < 1 && node.shape.radius) { distance = Math.max(0.1 + this.overlapAvoidanceFactor * node.shape.radius, distance - node.shape.radius); } @@ -36035,6 +37350,7 @@ return /******/ (function(modules) { // webpackBootstrap maxX -= 0.5 * sizeDiff; } // xSize < ySize + var minimumTreeSize = 1e-5; var rootSize = Math.max(minimumTreeSize, Math.abs(maxX - minX)); var halfRootSize = 0.5 * rootSize; @@ -36265,6 +37581,7 @@ return /******/ (function(modules) { // webpackBootstrap //--------------------------- DEBUGGING BELOW ---------------------------// + /** * This function is for debugging purposed, it draws the tree. * @@ -36342,7 +37659,7 @@ return /******/ (function(modules) { // webpackBootstrap exports.default = BarnesHutSolver; /***/ }, -/* 95 */ +/* 97 */ /***/ function(module, exports) { "use strict"; @@ -36436,7 +37753,7 @@ return /******/ (function(modules) { // webpackBootstrap exports.default = RepulsionSolver; /***/ }, -/* 96 */ +/* 98 */ /***/ function(module, exports) { "use strict"; @@ -36527,7 +37844,7 @@ return /******/ (function(modules) { // webpackBootstrap exports.default = HierarchicalRepulsionSolver; /***/ }, -/* 97 */ +/* 99 */ /***/ function(module, exports) { "use strict"; @@ -36638,7 +37955,7 @@ return /******/ (function(modules) { // webpackBootstrap exports.default = SpringSolver; /***/ }, -/* 98 */ +/* 100 */ /***/ function(module, exports) { "use strict"; @@ -36767,7 +38084,7 @@ return /******/ (function(modules) { // webpackBootstrap exports.default = HierarchicalSpringSolver; /***/ }, -/* 99 */ +/* 101 */ /***/ function(module, exports) { "use strict"; @@ -36836,7 +38153,7 @@ return /******/ (function(modules) { // webpackBootstrap exports.default = CentralGravitySolver; /***/ }, -/* 100 */ +/* 102 */ /***/ function(module, exports, __webpack_require__) { "use strict"; @@ -36847,7 +38164,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__(94); + var _BarnesHutSolver2 = __webpack_require__(96); var _BarnesHutSolver3 = _interopRequireDefault(_BarnesHutSolver2); @@ -36865,7 +38182,7 @@ return /******/ (function(modules) { // webpackBootstrap function ForceAtlas2BasedRepulsionSolver(body, physicsBody, options) { _classCallCheck(this, ForceAtlas2BasedRepulsionSolver); - return _possibleConstructorReturn(this, Object.getPrototypeOf(ForceAtlas2BasedRepulsionSolver).call(this, body, physicsBody, options)); + return _possibleConstructorReturn(this, (ForceAtlas2BasedRepulsionSolver.__proto__ || Object.getPrototypeOf(ForceAtlas2BasedRepulsionSolver)).call(this, body, physicsBody, options)); } /** @@ -36888,7 +38205,7 @@ return /******/ (function(modules) { // webpackBootstrap dx = distance; } - if (this.overlapAvoidanceFactor < 1) { + if (this.overlapAvoidanceFactor < 1 && node.shape.radius) { distance = Math.max(0.1 + this.overlapAvoidanceFactor * node.shape.radius, distance - node.shape.radius); } @@ -36910,7 +38227,7 @@ return /******/ (function(modules) { // webpackBootstrap exports.default = ForceAtlas2BasedRepulsionSolver; /***/ }, -/* 101 */ +/* 103 */ /***/ function(module, exports, __webpack_require__) { "use strict"; @@ -36921,7 +38238,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__(99); + var _CentralGravitySolver2 = __webpack_require__(101); var _CentralGravitySolver3 = _interopRequireDefault(_CentralGravitySolver2); @@ -36939,7 +38256,7 @@ return /******/ (function(modules) { // webpackBootstrap function ForceAtlas2BasedCentralGravitySolver(body, physicsBody, options) { _classCallCheck(this, ForceAtlas2BasedCentralGravitySolver); - return _possibleConstructorReturn(this, Object.getPrototypeOf(ForceAtlas2BasedCentralGravitySolver).call(this, body, physicsBody, options)); + return _possibleConstructorReturn(this, (ForceAtlas2BasedCentralGravitySolver.__proto__ || Object.getPrototypeOf(ForceAtlas2BasedCentralGravitySolver)).call(this, body, physicsBody, options)); } /** @@ -36966,7 +38283,7 @@ return /******/ (function(modules) { // webpackBootstrap exports.default = ForceAtlas2BasedCentralGravitySolver; /***/ }, -/* 102 */ +/* 104 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; @@ -36975,15 +38292,15 @@ return /******/ (function(modules) { // webpackBootstrap value: true }); - 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 _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; 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__(103); + var _NetworkUtil = __webpack_require__(105); var _NetworkUtil2 = _interopRequireDefault(_NetworkUtil); - var _Cluster = __webpack_require__(104); + var _Cluster = __webpack_require__(106); var _Cluster2 = _interopRequireDefault(_Cluster); @@ -37012,19 +38329,14 @@ return /******/ (function(modules) { // webpackBootstrap }); } - _createClass(ClusterEngine, [{ - key: 'setOptions', - value: function setOptions(options) { - if (options !== undefined) {} - } + /** + * + * @param hubsize + * @param options + */ - /** - * - * @param hubsize - * @param options - */ - }, { + _createClass(ClusterEngine, [{ key: 'clusterByHubsize', value: function clusterByHubsize(hubsize, options) { if (hubsize === undefined) { @@ -37058,8 +38370,8 @@ return /******/ (function(modules) { // webpackBootstrap }, { key: 'cluster', value: function cluster() { - var options = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0]; - var refreshData = arguments.length <= 1 || arguments[1] === undefined ? true : arguments[1]; + var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; + var refreshData = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true; if (options.joinCondition === undefined) { throw new Error("Cannot call clusterByNodeData without a joinCondition function in the options."); @@ -37102,7 +38414,7 @@ return /******/ (function(modules) { // webpackBootstrap }, { key: 'clusterByEdgeCount', value: function clusterByEdgeCount(edgeCount, options) { - var refreshData = arguments.length <= 2 || arguments[2] === undefined ? true : arguments[2]; + var refreshData = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true; options = this._checkOptions(options); var clusters = []; @@ -37185,7 +38497,7 @@ return /******/ (function(modules) { // webpackBootstrap }, { key: 'clusterOutliers', value: function clusterOutliers(options) { - var refreshData = arguments.length <= 1 || arguments[1] === undefined ? true : arguments[1]; + var refreshData = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true; this.clusterByEdgeCount(1, options, refreshData); } @@ -37199,7 +38511,7 @@ return /******/ (function(modules) { // webpackBootstrap }, { key: 'clusterBridges', value: function clusterBridges(options) { - var refreshData = arguments.length <= 1 || arguments[1] === undefined ? true : arguments[1]; + var refreshData = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true; this.clusterByEdgeCount(2, options, refreshData); } @@ -37214,7 +38526,7 @@ return /******/ (function(modules) { // webpackBootstrap }, { key: 'clusterByConnection', value: function clusterByConnection(nodeId, options) { - var refreshData = arguments.length <= 2 || arguments[2] === undefined ? true : arguments[2]; + var refreshData = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true; // kill conditions if (nodeId === undefined) { @@ -37271,7 +38583,19 @@ return /******/ (function(modules) { // webpackBootstrap } } } + var childNodeIDs = Object.keys(childNodesObj).map(function (childNode) { + return childNodesObj[childNode].id; + }); + for (childNode in childNodesObj) { + var childNode = childNodesObj[childNode]; + for (var y = 0; y < childNode.edges.length; y++) { + var childEdge = childNode.edges[y]; + if (childNodeIDs.indexOf(this._getConnectedId(childEdge, childNode.id)) > -1) { + childEdgesObj[childEdge.id] = childEdge; + } + } + } this._cluster(childNodesObj, childEdgesObj, options, refreshData); } @@ -37353,6 +38677,9 @@ return /******/ (function(modules) { // webpackBootstrap var newEdge = this.body.functions.createEdge(clonedOptions); newEdge.clusteringEdgeReplacingId = _edge.id; + // also reference the new edge in the old edge + this.body.edges[_edge.id].edgeReplacedById = newEdge.id; + // connect the edge. this.body.edges[newEdge.id] = newEdge; newEdge.connect(); @@ -37374,7 +38701,7 @@ return /******/ (function(modules) { // webpackBootstrap }, { key: '_checkOptions', value: function _checkOptions() { - var options = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0]; + var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; if (options.clusterEdgeProperties === undefined) { options.clusterEdgeProperties = {}; @@ -37398,10 +38725,15 @@ return /******/ (function(modules) { // webpackBootstrap }, { key: '_cluster', value: function _cluster(childNodesObj, childEdgesObj, options) { - var refreshData = arguments.length <= 3 || arguments[3] === undefined ? true : arguments[3]; + var refreshData = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : true; - // kill condition: no children so can't cluster or only one node in the cluster, don't bother - if (Object.keys(childNodesObj).length < 2) { + // kill condition: no nodes don't bother + if (Object.keys(childNodesObj).length == 0) { + return; + } + + // allow clusters of 1 if options allow + if (Object.keys(childNodesObj).length == 1 && options.clusterNodeProperties.allowSingleNodeCluster != true) { return; } @@ -37584,7 +38916,7 @@ return /******/ (function(modules) { // webpackBootstrap }, { key: 'openCluster', value: function openCluster(clusterNodeId, options) { - var refreshData = arguments.length <= 2 || arguments[2] === undefined ? true : arguments[2]; + var refreshData = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true; // kill conditions if (clusterNodeId === undefined) { @@ -37767,6 +39099,101 @@ return /******/ (function(modules) { // webpackBootstrap return stack; } + /** + * Using a clustered nodeId, update with the new options + * @param clusteredNodeId + * @param {object} newOptions + */ + + }, { + key: 'updateClusteredNode', + value: function updateClusteredNode(clusteredNodeId, newOptions) { + if (clusteredNodeId === undefined) { + throw new Error("No clusteredNodeId supplied to updateClusteredNode."); + } + if (newOptions === undefined) { + throw new Error("No newOptions supplied to updateClusteredNode."); + } + if (this.body.nodes[clusteredNodeId] === undefined) { + throw new Error("The clusteredNodeId supplied to updateClusteredNode does not exist."); + } + + this.body.nodes[clusteredNodeId].setOptions(newOptions); + this.body.emitter.emit('_dataChanged'); + } + + /** + * Using a base edgeId, update all related clustered edges with the new options + * @param startEdgeId + * @param {object} newOptions + */ + + }, { + key: 'updateEdge', + value: function updateEdge(startEdgeId, newOptions) { + if (startEdgeId === undefined) { + throw new Error("No startEdgeId supplied to updateEdge."); + } + if (newOptions === undefined) { + throw new Error("No newOptions supplied to updateEdge."); + } + if (this.body.edges[startEdgeId] === undefined) { + throw new Error("The startEdgeId supplied to updateEdge does not exist."); + } + + var allEdgeIds = this.getClusteredEdges(startEdgeId); + for (var i = 0; i < allEdgeIds.length; i++) { + var edge = this.body.edges[allEdgeIds[i]]; + edge.setOptions(newOptions); + } + this.body.emitter.emit('_dataChanged'); + } + + /** + * Get a stack of clusterEdgeId's (+base edgeid) that a base edge is the same as. cluster edge C -> cluster edge B -> cluster edge A -> base edge(edgeId) + * @param edgeId + * @returns {Array} + */ + + }, { + key: 'getClusteredEdges', + value: function getClusteredEdges(edgeId) { + var stack = []; + var max = 100; + var counter = 0; + + while (edgeId !== undefined && this.body.edges[edgeId] !== undefined && counter < max) { + stack.push(this.body.edges[edgeId].id); + edgeId = this.body.edges[edgeId].edgeReplacedById; + counter++; + } + stack.reverse(); + return stack; + } + + /** + * Get the base edge id of clusterEdgeId. cluster edge (clusteredEdgeId) -> cluster edge B -> cluster edge C -> base edge + * @param clusteredEdgeId + * @returns baseEdgeId + */ + + }, { + key: 'getBaseEdge', + value: function getBaseEdge(clusteredEdgeId) { + var baseEdgeId = clusteredEdgeId; + var max = 100; + var counter = 0; + + while (clusteredEdgeId !== undefined && this.body.edges[clusteredEdgeId] !== undefined && counter < max) { + clusteredEdgeId = this.body.edges[clusteredEdgeId].clusteringEdgeReplacingId; + counter++; + if (clusteredEdgeId !== undefined) { + baseEdgeId = clusteredEdgeId; + } + } + return baseEdgeId; + } + /** * Get the Id the node is connected to * @param edge @@ -37834,7 +39261,7 @@ return /******/ (function(modules) { // webpackBootstrap exports.default = ClusterEngine; /***/ }, -/* 103 */ +/* 105 */ /***/ function(module, exports, __webpack_require__) { "use strict"; @@ -37862,7 +39289,7 @@ return /******/ (function(modules) { // webpackBootstrap _createClass(NetworkUtil, null, [{ key: "getRange", value: function getRange(allNodes) { - var specificNodes = arguments.length <= 1 || arguments[1] === undefined ? [] : arguments[1]; + var specificNodes = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : []; var minY = 1e9, maxY = -1e9, @@ -37900,7 +39327,7 @@ return /******/ (function(modules) { // webpackBootstrap }, { key: "getRangeCore", value: function getRangeCore(allNodes) { - var specificNodes = arguments.length <= 1 || arguments[1] === undefined ? [] : arguments[1]; + var specificNodes = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : []; var minY = 1e9, maxY = -1e9, @@ -37972,7 +39399,7 @@ return /******/ (function(modules) { // webpackBootstrap exports.default = NetworkUtil; /***/ }, -/* 104 */ +/* 106 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; @@ -37981,7 +39408,7 @@ return /******/ (function(modules) { // webpackBootstrap value: true }); - var _Node2 = __webpack_require__(65); + var _Node2 = __webpack_require__(67); var _Node3 = _interopRequireDefault(_Node2); @@ -37996,14 +39423,13 @@ return /******/ (function(modules) { // webpackBootstrap /** * */ - var Cluster = function (_Node) { _inherits(Cluster, _Node); function Cluster(options, body, imagelist, grouplist, globalOptions) { _classCallCheck(this, Cluster); - var _this = _possibleConstructorReturn(this, Object.getPrototypeOf(Cluster).call(this, options, body, imagelist, grouplist, globalOptions)); + var _this = _possibleConstructorReturn(this, (Cluster.__proto__ || Object.getPrototypeOf(Cluster)).call(this, options, body, imagelist, grouplist, globalOptions)); _this.isCluster = true; _this.containedNodes = {}; @@ -38017,7 +39443,7 @@ return /******/ (function(modules) { // webpackBootstrap exports.default = Cluster; /***/ }, -/* 105 */ +/* 107 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; @@ -38127,8 +39553,8 @@ return /******/ (function(modules) { // webpackBootstrap if (this.requiresTimeout === true) { this.renderTimer = window.setTimeout(this._renderStep.bind(this), this.simulationInterval); // wait this.renderTimeStep milliseconds and perform the animation step function } else { - this.renderTimer = window.requestAnimationFrame(this._renderStep.bind(this)); // wait this.renderTimeStep milliseconds and perform the animation step function - } + this.renderTimer = window.requestAnimationFrame(this._renderStep.bind(this)); // wait this.renderTimeStep milliseconds and perform the animation step function + } } } } @@ -38192,7 +39618,7 @@ return /******/ (function(modules) { // webpackBootstrap }, { key: '_redraw', value: function _redraw() { - var hidden = arguments.length <= 0 || arguments[0] === undefined ? false : arguments[0]; + var hidden = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false; if (this.allowRedraw === true) { this.body.emitter.emit("initRedraw"); @@ -38297,7 +39723,7 @@ return /******/ (function(modules) { // webpackBootstrap }, { key: '_drawNodes', value: function _drawNodes(ctx) { - var alwaysShow = arguments.length <= 1 || arguments[1] === undefined ? false : arguments[1]; + var alwaysShow = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false; var nodes = this.body.nodes; var nodeIndices = this.body.nodeIndices; @@ -38390,7 +39816,7 @@ return /******/ (function(modules) { // webpackBootstrap exports.default = CanvasRenderer; /***/ }, -/* 106 */ +/* 108 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; @@ -38403,8 +39829,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__(20); - var hammerUtil = __webpack_require__(28); + var Hammer = __webpack_require__(22); + var hammerUtil = __webpack_require__(30); var util = __webpack_require__(1); @@ -38426,6 +39852,7 @@ return /******/ (function(modules) { // webpackBootstrap this.resizeFunction = this._onResize.bind(this); this.cameraState = {}; this.initialized = false; + this.canvasViewCenter = {}; this.options = {}; this.defaultOptions = { @@ -38507,7 +39934,7 @@ return /******/ (function(modules) { // webpackBootstrap }, { key: '_getCameraState', value: function _getCameraState() { - var pixelRatio = arguments.length <= 0 || arguments[0] === undefined ? this.pixelRatio : arguments[0]; + var pixelRatio = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.pixelRatio; if (this.initialized === true) { this.cameraState.previousWidth = this.frame.canvas.width / pixelRatio; @@ -38698,8 +40125,8 @@ return /******/ (function(modules) { // webpackBootstrap }, { key: 'setSize', value: function setSize() { - var width = arguments.length <= 0 || arguments[0] === undefined ? this.options.width : arguments[0]; - var height = arguments.length <= 1 || arguments[1] === undefined ? this.options.height : arguments[1]; + var width = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.options.width; + var height = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : this.options.height; width = this._prepareValue(width); height = this._prepareValue(height); @@ -38728,6 +40155,11 @@ return /******/ (function(modules) { // webpackBootstrap this.options.width = width; this.options.height = height; + this.canvasViewCenter = { + x: 0.5 * this.frame.clientWidth, + y: 0.5 * this.frame.clientHeight + }; + emitEvent = true; } else { // this would adapt the width of the canvas to the width from 100% if and only if @@ -38854,7 +40286,7 @@ return /******/ (function(modules) { // webpackBootstrap exports.default = Canvas; /***/ }, -/* 107 */ +/* 109 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; @@ -38865,7 +40297,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__(103); + var _NetworkUtil = __webpack_require__(105); var _NetworkUtil2 = _interopRequireDefault(_NetworkUtil); @@ -38907,7 +40339,7 @@ return /******/ (function(modules) { // webpackBootstrap _createClass(View, [{ key: 'setOptions', value: function setOptions() { - var options = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0]; + var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; this.options = options; } @@ -38921,8 +40353,8 @@ return /******/ (function(modules) { // webpackBootstrap }, { key: 'fit', value: function fit() { - var options = arguments.length <= 0 || arguments[0] === undefined ? { nodes: [] } : arguments[0]; - var initialZoom = arguments.length <= 1 || arguments[1] === undefined ? false : arguments[1]; + var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : { nodes: [] }; + var initialZoom = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false; var range = void 0; var zoomLevel = void 0; @@ -38990,7 +40422,7 @@ return /******/ (function(modules) { // webpackBootstrap }, { key: 'focus', value: function focus(nodeId) { - var options = arguments.length <= 1 || arguments[1] === undefined ? {} : arguments[1]; + var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; if (this.body.nodes[nodeId] !== undefined) { var nodePosition = { x: this.body.nodes[nodeId].x, y: this.body.nodes[nodeId].y }; @@ -39162,7 +40594,7 @@ return /******/ (function(modules) { // webpackBootstrap }, { key: '_transitionRedraw', value: function _transitionRedraw() { - var finished = arguments.length <= 0 || arguments[0] === undefined ? false : arguments[0]; + var finished = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false; this.easingTime += this.animationSpeed; this.easingTime = finished === true ? 1.0 : this.easingTime; @@ -39204,7 +40636,7 @@ return /******/ (function(modules) { // webpackBootstrap exports.default = View; /***/ }, -/* 108 */ +/* 110 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; @@ -39215,11 +40647,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__(109); + var _NavigationHandler = __webpack_require__(111); var _NavigationHandler2 = _interopRequireDefault(_NavigationHandler); - var _Popup = __webpack_require__(110); + var _Popup = __webpack_require__(112); var _Popup2 = _interopRequireDefault(_Popup); @@ -39422,7 +40854,7 @@ return /******/ (function(modules) { // webpackBootstrap }, { key: 'checkSelectionChanges', value: function checkSelectionChanges(pointer, event) { - var add = arguments.length <= 2 || arguments[2] === undefined ? false : arguments[2]; + var add = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false; var previouslySelectedEdgeCount = this.selectionHandler._getSelectedEdgeCount(); var previouslySelectedNodeCount = this.selectionHandler._getSelectedNodeCount(); @@ -39437,10 +40869,9 @@ return /******/ (function(modules) { // webpackBootstrap var selectedNodesCount = this.selectionHandler._getSelectedNodeCount(); var currentSelection = this.selectionHandler.getSelection(); - var _determineIfDifferent2 = this._determineIfDifferent(previousSelection, currentSelection); - - var nodesChanged = _determineIfDifferent2.nodesChanged; - var edgesChanged = _determineIfDifferent2.edgesChanged; + var _determineIfDifferent2 = this._determineIfDifferent(previousSelection, currentSelection), + nodesChanged = _determineIfDifferent2.nodesChanged, + edgesChanged = _determineIfDifferent2.edgesChanged; var nodeSelected = false; @@ -39992,7 +41423,7 @@ return /******/ (function(modules) { // webpackBootstrap exports.default = InteractionHandler; /***/ }, -/* 109 */ +/* 111 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; @@ -40006,9 +41437,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__(20); - var hammerUtil = __webpack_require__(28); - var keycharm = __webpack_require__(23); + var Hammer = __webpack_require__(22); + var hammerUtil = __webpack_require__(30); + var keycharm = __webpack_require__(25); var NavigationHandler = function () { function NavigationHandler(body, canvas) { @@ -40204,13 +41635,29 @@ return /******/ (function(modules) { // webpackBootstrap }, { key: '_zoomIn', value: function _zoomIn() { - this.body.view.scale *= 1 + this.options.keyboard.speed.zoom; + var scaleOld = this.body.view.scale; + var scale = this.body.view.scale * (1 + this.options.keyboard.speed.zoom); + var translation = this.body.view.translation; + var scaleFrac = scale / scaleOld; + var tx = (1 - scaleFrac) * this.canvas.canvasViewCenter.x + translation.x * scaleFrac; + var ty = (1 - scaleFrac) * this.canvas.canvasViewCenter.y + translation.y * scaleFrac; + + this.body.view.scale = scale; + this.body.view.translation = { x: tx, y: ty }; this.body.emitter.emit('zoom', { direction: '+', scale: this.body.view.scale }); } }, { key: '_zoomOut', value: function _zoomOut() { - this.body.view.scale /= 1 + this.options.keyboard.speed.zoom; + var scaleOld = this.body.view.scale; + var scale = this.body.view.scale / (1 + this.options.keyboard.speed.zoom); + var translation = this.body.view.translation; + var scaleFrac = scale / scaleOld; + var tx = (1 - scaleFrac) * this.canvas.canvasViewCenter.x + translation.x * scaleFrac; + var ty = (1 - scaleFrac) * this.canvas.canvasViewCenter.y + translation.y * scaleFrac; + + this.body.view.scale = scale; + this.body.view.translation = { x: tx, y: ty }; this.body.emitter.emit('zoom', { direction: '-', scale: this.body.view.scale }); } @@ -40321,7 +41768,7 @@ return /******/ (function(modules) { // webpackBootstrap exports.default = NavigationHandler; /***/ }, -/* 110 */ +/* 112 */ /***/ function(module, exports) { 'use strict'; @@ -40343,7 +41790,6 @@ return /******/ (function(modules) { // webpackBootstrap * @param {Object} [style] An object containing borderColor, * backgroundColor, etc. */ - var Popup = function () { function Popup(container) { _classCallCheck(this, Popup); @@ -40451,7 +41897,7 @@ return /******/ (function(modules) { // webpackBootstrap exports.default = Popup; /***/ }, -/* 111 */ +/* 113 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; @@ -40462,11 +41908,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__(65); + var _Node = __webpack_require__(67); var _Node2 = _interopRequireDefault(_Node); - var _Edge = __webpack_require__(85); + var _Edge = __webpack_require__(87); var _Edge2 = _interopRequireDefault(_Edge); @@ -40557,7 +42003,7 @@ return /******/ (function(modules) { // webpackBootstrap }, { key: '_generateClickEvent', value: function _generateClickEvent(eventType, event, pointer, oldSelection) { - var emptySelection = arguments.length <= 4 || arguments[4] === undefined ? false : arguments[4]; + var emptySelection = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false; var properties = void 0; if (emptySelection === true) { @@ -40579,7 +42025,7 @@ return /******/ (function(modules) { // webpackBootstrap }, { key: 'selectObject', value: function selectObject(obj) { - var highlightEdges = arguments.length <= 1 || arguments[1] === undefined ? this.options.selectConnectedEdges : arguments[1]; + var highlightEdges = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : this.options.selectConnectedEdges; if (obj !== undefined) { if (obj instanceof _Node2.default) { @@ -40653,7 +42099,7 @@ return /******/ (function(modules) { // webpackBootstrap }, { key: 'getNodeAt', value: function getNodeAt(pointer) { - var returnNode = arguments.length <= 1 || arguments[1] === undefined ? true : arguments[1]; + var returnNode = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true; // we first check if this is an navigation controls element var positionObject = this._pointerToPositionObject(pointer); @@ -40716,16 +42162,33 @@ return /******/ (function(modules) { // webpackBootstrap }, { key: 'getEdgeAt', value: function getEdgeAt(pointer) { - var returnEdge = arguments.length <= 1 || arguments[1] === undefined ? true : arguments[1]; - - var positionObject = this._pointerToPositionObject(pointer); - var overlappingEdges = this._getAllEdgesOverlappingWith(positionObject); + var returnEdge = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true; - if (overlappingEdges.length > 0) { + // Iterate over edges, pick closest within 10 + var canvasPos = this.canvas.DOMtoCanvas(pointer); + var mindist = 10; + var overlappingEdge = null; + var edges = this.body.edges; + for (var i = 0; i < this.body.edgeIndices.length; i++) { + var edgeId = this.body.edgeIndices[i]; + var edge = edges[edgeId]; + if (edge.connected) { + var xFrom = edge.from.x; + var yFrom = edge.from.y; + var xTo = edge.to.x; + var yTo = edge.to.y; + var dist = edge.edgeType.getDistanceToEdge(xFrom, yFrom, xTo, yTo, canvasPos.x, canvasPos.y); + if (dist < mindist) { + overlappingEdge = edgeId; + mindist = dist; + } + } + } + if (overlappingEdge) { if (returnEdge === true) { - return this.body.edges[overlappingEdges[overlappingEdges.length - 1]]; + return this.body.edges[overlappingEdge]; } else { - return overlappingEdges[overlappingEdges.length - 1]; + return overlappingEdge; } } else { return undefined; @@ -41050,8 +42513,9 @@ return /******/ (function(modules) { // webpackBootstrap this.hoverObj.edges[edgeId].hover = false; delete this.hoverObj.edges[edgeId]; } - // if the blur remains the same and the object is undefined (mouse off), we blur the edge - else if (object === undefined) { + // if the blur remains the same and the object is undefined (mouse off) or another + // edge has been hovered, we blur the edge + else if (object === undefined || object instanceof _Edge2.default) { this.blurObject(this.hoverObj.edges[edgeId]); delete this.hoverObj.edges[edgeId]; hoverChanged = true; @@ -41145,7 +42609,7 @@ return /******/ (function(modules) { // webpackBootstrap }, { key: 'setSelection', value: function setSelection(selection) { - var options = arguments.length <= 1 || arguments[1] === undefined ? {} : arguments[1]; + var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; var i = void 0, id = void 0; @@ -41192,7 +42656,7 @@ return /******/ (function(modules) { // webpackBootstrap }, { key: 'selectNodes', value: function selectNodes(selection) { - var highlightEdges = arguments.length <= 1 || arguments[1] === undefined ? true : arguments[1]; + var highlightEdges = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true; if (!selection || selection.length === undefined) throw 'Selection must be an array with ids'; @@ -41244,7 +42708,7 @@ return /******/ (function(modules) { // webpackBootstrap exports.default = SelectionHandler; /***/ }, -/* 112 */ +/* 114 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; @@ -41255,11 +42719,11 @@ return /******/ (function(modules) { // webpackBootstrap var _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"]) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError("Invalid attempt to destructure non-iterable instance"); } }; }(); - 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 _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; 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__(103); + var _NetworkUtil = __webpack_require__(105); var _NetworkUtil2 = _interopRequireDefault(_NetworkUtil); @@ -41506,8 +42970,11 @@ return /******/ (function(modules) { // webpackBootstrap // perturb the nodes a little bit to force the physics to kick in var offset = 70; for (var _i = 0; _i < this.body.nodeIndices.length; _i++) { - this.body.nodes[this.body.nodeIndices[_i]].x += (0.5 - this.seededRandom()) * offset; - this.body.nodes[this.body.nodeIndices[_i]].y += (0.5 - this.seededRandom()) * offset; + // Only perturb the nodes that aren't fixed + if (this.body.nodes[this.body.nodeIndices[_i]].predefinedPosition === false) { + this.body.nodes[this.body.nodeIndices[_i]].x += (0.5 - this.seededRandom()) * offset; + this.body.nodes[this.body.nodeIndices[_i]].y += (0.5 - this.seededRandom()) * offset; + } } // uncluster all clusters @@ -41718,7 +43185,7 @@ return /******/ (function(modules) { // webpackBootstrap // get a min max width as well as the maximum movement space it has on either sides // we use min max terminology because width and height can interchange depending on the direction of the layout var getBranchBoundary = function getBranchBoundary(branchMap) { - var maxLevel = arguments.length <= 1 || arguments[1] === undefined ? 1e9 : arguments[1]; + var maxLevel = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1e9; var minSpace = 1e9; var maxSpace = 1e9; @@ -41732,12 +43199,10 @@ return /******/ (function(modules) { // webpackBootstrap // get the space around the node. - var _getSpaceAroundNode2 = _this2._getSpaceAroundNode(node, branchMap); - - var _getSpaceAroundNode3 = _slicedToArray(_getSpaceAroundNode2, 2); - - var minSpaceNode = _getSpaceAroundNode3[0]; - var maxSpaceNode = _getSpaceAroundNode3[1]; + var _getSpaceAroundNode2 = _this2._getSpaceAroundNode(node, branchMap), + _getSpaceAroundNode3 = _slicedToArray(_getSpaceAroundNode2, 2), + minSpaceNode = _getSpaceAroundNode3[0], + maxSpaceNode = _getSpaceAroundNode3[1]; minSpace = Math.min(minSpaceNode, minSpace); maxSpace = Math.min(maxSpaceNode, maxSpace); @@ -41811,7 +43276,7 @@ return /******/ (function(modules) { // webpackBootstrap // callback for shifting branches var branchShiftCallback = function branchShiftCallback(node1, node2) { - var centerParent = arguments.length <= 2 || arguments[2] === undefined ? false : arguments[2]; + var centerParent = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false; //window.CALLBACKS.push(() => { var pos1 = _this2._getPositionForHierarchy(node1); @@ -41828,26 +43293,23 @@ return /******/ (function(modules) { // webpackBootstrap // check the largest distance between the branches var maxLevel = getCollisionLevel(node1, node2); - var _getBranchBoundary = getBranchBoundary(branchNodes1, maxLevel); - - var _getBranchBoundary2 = _slicedToArray(_getBranchBoundary, 4); + var _getBranchBoundary = getBranchBoundary(branchNodes1, maxLevel), + _getBranchBoundary2 = _slicedToArray(_getBranchBoundary, 4), + min1 = _getBranchBoundary2[0], + max1 = _getBranchBoundary2[1], + minSpace1 = _getBranchBoundary2[2], + maxSpace1 = _getBranchBoundary2[3]; - var min1 = _getBranchBoundary2[0]; - var max1 = _getBranchBoundary2[1]; - var minSpace1 = _getBranchBoundary2[2]; - var maxSpace1 = _getBranchBoundary2[3]; - - var _getBranchBoundary3 = getBranchBoundary(branchNodes2, maxLevel); - - var _getBranchBoundary4 = _slicedToArray(_getBranchBoundary3, 4); - - var min2 = _getBranchBoundary4[0]; - var max2 = _getBranchBoundary4[1]; - var minSpace2 = _getBranchBoundary4[2]; - var maxSpace2 = _getBranchBoundary4[3]; + var _getBranchBoundary3 = getBranchBoundary(branchNodes2, maxLevel), + _getBranchBoundary4 = _slicedToArray(_getBranchBoundary3, 4), + min2 = _getBranchBoundary4[0], + max2 = _getBranchBoundary4[1], + minSpace2 = _getBranchBoundary4[2], + maxSpace2 = _getBranchBoundary4[3]; //console.log(node1.id, getBranchBoundary(branchNodes1, maxLevel), node2.id, getBranchBoundary(branchNodes2, maxLevel), maxLevel); + var diffBranch = Math.abs(max1 - min2); if (diffBranch > _this2.options.hierarchical.nodeSpacing) { var offset = max1 - min2 + _this2.options.hierarchical.nodeSpacing; @@ -41946,15 +43408,12 @@ return /******/ (function(modules) { // webpackBootstrap branches[node.id] = branchNodes; } - var _getBranchBoundary5 = getBranchBoundary(branches[node.id]); - - var _getBranchBoundary6 = _slicedToArray(_getBranchBoundary5, 4); - - var minBranch = _getBranchBoundary6[0]; - var maxBranch = _getBranchBoundary6[1]; - var minSpaceBranch = _getBranchBoundary6[2]; - var maxSpaceBranch = _getBranchBoundary6[3]; - + var _getBranchBoundary5 = getBranchBoundary(branches[node.id]), + _getBranchBoundary6 = _slicedToArray(_getBranchBoundary5, 4), + minBranch = _getBranchBoundary6[0], + maxBranch = _getBranchBoundary6[1], + minSpaceBranch = _getBranchBoundary6[2], + maxSpaceBranch = _getBranchBoundary6[3]; var diff = guess - nodePosition; @@ -41979,12 +43438,10 @@ return /******/ (function(modules) { // webpackBootstrap // position node if there is space - var _getSpaceAroundNode4 = _this2._getSpaceAroundNode(node); - - var _getSpaceAroundNode5 = _slicedToArray(_getSpaceAroundNode4, 2); - - var minSpace = _getSpaceAroundNode5[0]; - var maxSpace = _getSpaceAroundNode5[1]; + var _getSpaceAroundNode4 = _this2._getSpaceAroundNode(node), + _getSpaceAroundNode5 = _slicedToArray(_getSpaceAroundNode4, 2), + minSpace = _getSpaceAroundNode5[0], + maxSpace = _getSpaceAroundNode5[1]; var diff = guess - nodePosition; // check if we are allowed to move the node: @@ -42155,12 +43612,10 @@ return /******/ (function(modules) { // webpackBootstrap var position = this._getPositionForHierarchy(parentNode); - var _getSpaceAroundNode6 = this._getSpaceAroundNode(parentNode); - - var _getSpaceAroundNode7 = _slicedToArray(_getSpaceAroundNode6, 2); - - var minSpace = _getSpaceAroundNode7[0]; - var maxSpace = _getSpaceAroundNode7[1]; + var _getSpaceAroundNode6 = this._getSpaceAroundNode(parentNode), + _getSpaceAroundNode7 = _slicedToArray(_getSpaceAroundNode6, 2), + minSpace = _getSpaceAroundNode7[0], + maxSpace = _getSpaceAroundNode7[1]; var newPosition = 0.5 * (minPos + maxPos); var diff = position - newPosition; @@ -42542,7 +43997,7 @@ return /******/ (function(modules) { // webpackBootstrap value: function _crawlNetwork() { var _this7 = this; - var callback = arguments.length <= 0 || arguments[0] === undefined ? function () {} : arguments[0]; + var callback = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : function () {}; var startingNodeId = arguments[1]; var progress = {}; @@ -42670,7 +44125,7 @@ return /******/ (function(modules) { // webpackBootstrap }, { key: '_setPositionForHierarchy', value: function _setPositionForHierarchy(node, position, level) { - var doNotUpdate = arguments.length <= 3 || arguments[3] === undefined ? false : arguments[3]; + var doNotUpdate = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false; //console.log('_setPositionForHierarchy',node.id, position) if (doNotUpdate !== true) { @@ -42739,7 +44194,7 @@ return /******/ (function(modules) { // webpackBootstrap exports.default = LayoutEngine; /***/ }, -/* 113 */ +/* 115 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; @@ -42753,8 +44208,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__(20); - var hammerUtil = __webpack_require__(28); + var Hammer = __webpack_require__(22); + var hammerUtil = __webpack_require__(30); /** * clears the toolbar div element of children @@ -43458,7 +44913,7 @@ return /******/ (function(modules) { // webpackBootstrap }, { key: '_createSeperator', value: function _createSeperator() { - var index = arguments.length <= 0 || arguments[0] === undefined ? 1 : arguments[0]; + var index = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 1; this.manipulationDOM['seperatorLineDiv' + index] = document.createElement('div'); this.manipulationDOM['seperatorLineDiv' + index].className = 'vis-separator-line'; @@ -43517,7 +44972,7 @@ return /******/ (function(modules) { // webpackBootstrap }, { key: '_createButton', value: function _createButton(id, className, label) { - var labelClassName = arguments.length <= 3 || arguments[3] === undefined ? 'vis-label' : arguments[3]; + var labelClassName = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 'vis-label'; this.manipulationDOM[id + 'Div'] = document.createElement('div'); @@ -43769,6 +45224,7 @@ return /******/ (function(modules) { // webpackBootstrap // ------------------------------------ END OF EDIT EDGE FUNCTIONS -----------------------------------------// + // ------------------------------------------- ADD EDGE FUNCTIONS -----------------------------------------// /** * the function bound to the selection event. It checks if you want to connect a cluster and changes the description @@ -43882,6 +45338,7 @@ return /******/ (function(modules) { // webpackBootstrap // --------------------------------------- END OF ADD EDGE FUNCTIONS -------------------------------------// + // ------------------------------ Performing all the actual data manipulation ------------------------// /** @@ -43993,7 +45450,7 @@ return /******/ (function(modules) { // webpackBootstrap exports.default = ManipulationSystem; /***/ }, -/* 114 */ +/* 116 */ /***/ function(module, exports) { 'use strict'; @@ -44026,9 +45483,9 @@ return /******/ (function(modules) { // webpackBootstrap }, edges: { arrows: { - to: { enabled: { boolean: boolean }, scaleFactor: { number: number }, __type__: { object: object, boolean: boolean } }, - middle: { enabled: { boolean: boolean }, scaleFactor: { number: number }, __type__: { object: object, boolean: boolean } }, - from: { enabled: { boolean: boolean }, scaleFactor: { number: number }, __type__: { object: object, boolean: boolean } }, + to: { enabled: { boolean: boolean }, scaleFactor: { number: number }, type: { string: ['arrow', 'circle'] }, __type__: { object: object, boolean: boolean } }, + middle: { enabled: { boolean: boolean }, scaleFactor: { number: number }, type: { string: ['arrow', 'circle'] }, __type__: { object: object, boolean: boolean } }, + from: { enabled: { boolean: boolean }, scaleFactor: { number: number }, type: { string: ['arrow', 'circle'] }, __type__: { object: object, boolean: boolean } }, __type__: { string: ['from', 'to', 'middle'], object: object } }, arrowStrikethrough: { boolean: boolean }, @@ -44372,9 +45829,9 @@ return /******/ (function(modules) { // webpackBootstrap }, edges: { arrows: { - to: { enabled: false, scaleFactor: [1, 0, 3, 0.05] }, // boolean / {arrowScaleFactor:1} / {enabled: false, arrowScaleFactor:1} - middle: { enabled: false, scaleFactor: [1, 0, 3, 0.05] }, - from: { enabled: false, scaleFactor: [1, 0, 3, 0.05] } + to: { enabled: false, scaleFactor: [1, 0, 3, 0.05], type: 'arrow' }, + middle: { enabled: false, scaleFactor: [1, 0, 3, 0.05], type: 'arrow' }, + from: { enabled: false, scaleFactor: [1, 0, 3, 0.05], type: 'arrow' } }, arrowStrikethrough: true, color: { @@ -44502,10 +45959,6 @@ return /******/ (function(modules) { // webpackBootstrap minVelocity: [0.1, 0.01, 0.5, 0.01], solver: ['barnesHut', 'forceAtlas2Based', 'repulsion', 'hierarchicalRepulsion'], timestep: [0.5, 0.01, 1, 0.01] - }, - //adaptiveTimestep: true - global: { - locale: ['en', 'nl'] } }; @@ -44513,7 +45966,7 @@ return /******/ (function(modules) { // webpackBootstrap exports.configureOptions = configureOptions; /***/ }, -/* 115 */ +/* 117 */ /***/ function(module, exports, __webpack_require__) { "use strict"; @@ -44527,7 +45980,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__(116); + var _FloydWarshall = __webpack_require__(118); var _FloydWarshall2 = _interopRequireDefault(_FloydWarshall); @@ -44543,7 +45996,6 @@ return /******/ (function(modules) { // webpackBootstrap * * Possible optimizations in the distance calculation can be implemented. */ - var KamadaKawai = function () { function KamadaKawai(body, edgeLength, edgeStrength) { _classCallCheck(this, KamadaKawai); @@ -44582,7 +46034,7 @@ return /******/ (function(modules) { // webpackBootstrap }, { key: "solve", value: function solve(nodesArray, edgesArray) { - var ignoreClusters = arguments.length <= 2 || arguments[2] === undefined ? false : arguments[2]; + var ignoreClusters = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false; // get distance matrix var D_matrix = this.distanceSolver.getDistances(this.body, nodesArray, edgesArray); // distance matrix @@ -44656,13 +46108,11 @@ return /******/ (function(modules) { // webpackBootstrap var m = nodesArray[nodeIdx]; // by not evaluating nodes with predefined positions we should only move nodes that have no positions. if (nodes[m].predefinedPosition === false || nodes[m].isCluster === true && ignoreClusters === true || nodes[m].options.fixed.x === true || nodes[m].options.fixed.y === true) { - var _getEnergy4 = this._getEnergy(m); - - var _getEnergy5 = _slicedToArray(_getEnergy4, 3); - - var delta_m = _getEnergy5[0]; - var dE_dx = _getEnergy5[1]; - var dE_dy = _getEnergy5[2]; + var _getEnergy4 = this._getEnergy(m), + _getEnergy5 = _slicedToArray(_getEnergy4, 3), + delta_m = _getEnergy5[0], + dE_dx = _getEnergy5[1], + dE_dy = _getEnergy5[2]; if (maxEnergy < delta_m) { maxEnergy = delta_m; @@ -44804,7 +46254,7 @@ return /******/ (function(modules) { // webpackBootstrap exports.default = KamadaKawai; /***/ }, -/* 116 */ +/* 118 */ /***/ function(module, exports) { "use strict"; @@ -44874,7 +46324,7 @@ return /******/ (function(modules) { // webpackBootstrap exports.default = FloydWarshall; /***/ }, -/* 117 */ +/* 119 */ /***/ function(module, exports) { 'use strict'; @@ -44924,6 +46374,7 @@ return /******/ (function(modules) { // webpackBootstrap var ir = Math.sqrt(3) / 6 * s; // radius of inner circle var h = Math.sqrt(s * s - s2 * s2); // height + this.moveTo(x, y - (h - ir)); this.lineTo(x + s2, y + ir); this.lineTo(x - s2, y + ir); @@ -45090,9 +46541,9 @@ return /******/ (function(modules) { // webpackBootstrap }; /** - * Draw an arrow point (no line) + * Draw an arrow at the end of a line with the given angle. */ - CanvasRenderingContext2D.prototype.arrow = function (x, y, angle, length) { + CanvasRenderingContext2D.prototype.arrowEndpoint = function (x, y, angle, length) { // tail var xt = x - length * Math.cos(angle); var yt = y - length * Math.sin(angle); @@ -45117,6 +46568,16 @@ return /******/ (function(modules) { // webpackBootstrap this.closePath(); }; + /** + * Draw an circle an the end of an line with the given angle. + */ + CanvasRenderingContext2D.prototype.circleEndpoint = function (x, y, angle, length) { + var radius = length * 0.4; + var xc = x - radius * Math.cos(angle); + var yc = y - radius * Math.sin(angle); + this.circle(xc, yc, radius); + }; + /** * Sets up the dashedLine functionality for drawing * Original code came from http://stackoverflow.com/questions/4576724/dotted-stroke-in-canvas @@ -45161,7 +46622,7 @@ return /******/ (function(modules) { // webpackBootstrap } /***/ }, -/* 118 */ +/* 120 */ /***/ function(module, exports) { 'use strict'; @@ -45511,10 +46972,10 @@ return /******/ (function(modules) { // webpackBootstrap if (token === 'false') { token = false; // convert to boolean } else if (token === 'true') { - token = true; // convert to boolean - } else if (!isNaN(Number(token))) { - token = Number(token); // convert to number - } + token = true; // convert to boolean + } else if (!isNaN(Number(token))) { + token = Number(token); // convert to number + } tokenType = TOKENTYPE.IDENTIFIER; return; } @@ -45656,8 +47117,8 @@ return /******/ (function(modules) { // webpackBootstrap getToken(); // TODO: implement comma separated list with "a_list: ID=ID [','] [a_list] " } else { - parseNodeStatement(graph, id); - } + parseNodeStatement(graph, id); + } } /** @@ -46059,7 +47520,7 @@ return /******/ (function(modules) { // webpackBootstrap exports.DOTToGraph = DOTToGraph; /***/ }, -/* 119 */ +/* 121 */ /***/ function(module, exports) { 'use strict'; @@ -46137,7 +47598,7 @@ return /******/ (function(modules) { // webpackBootstrap exports.parseGephi = parseGephi; /***/ }, -/* 120 */ +/* 122 */ /***/ function(module, exports) { 'use strict'; @@ -46164,31 +47625,31 @@ return /******/ (function(modules) { // webpackBootstrap // German exports['de'] = { edit: 'Editieren', - del: 'Lösche Auswahl', - back: 'Zurück', - addNode: 'Knoten hinzufügen', - addEdge: 'Kante hinzufügen', + del: 'L\xF6sche Auswahl', + back: 'Zur\xFCck', + addNode: 'Knoten hinzuf\xFCgen', + addEdge: 'Kante hinzuf\xFCgen', editNode: 'Knoten editieren', editEdge: 'Kante editieren', addDescription: 'Klicke auf eine freie Stelle, um einen neuen Knoten zu plazieren.', edgeDescription: 'Klicke auf einen Knoten und ziehe die Kante zu einem anderen Knoten, um diese zu verbinden.', editEdgeDescription: 'Klicke auf die Verbindungspunkte und ziehe diese auf einen Knoten, um sie zu verbinden.', - createEdgeError: 'Es ist nicht möglich, Kanten mit Clustern zu verbinden.', - deleteClusterError: 'Cluster können nicht gelöscht werden.', - editClusterError: 'Cluster können nicht editiert werden.' + createEdgeError: 'Es ist nicht m\xF6glich, Kanten mit Clustern zu verbinden.', + deleteClusterError: 'Cluster k\xF6nnen nicht gel\xF6scht werden.', + editClusterError: 'Cluster k\xF6nnen nicht editiert werden.' }; exports['de_DE'] = exports['de']; // Spanish exports['es'] = { edit: 'Editar', - del: 'Eliminar selección', - back: 'Átras', - addNode: 'Añadir nodo', - addEdge: 'Añadir arista', + del: 'Eliminar selecci\xF3n', + back: '\xC1tras', + addNode: 'A\xF1adir nodo', + addEdge: 'A\xF1adir arista', editNode: 'Editar nodo', editEdge: 'Editar arista', - addDescription: 'Haga clic en un lugar vacío para colocar un nuevo nodo.', + addDescription: 'Haga clic en un lugar vac\xEDo para colocar un nuevo nodo.', edgeDescription: 'Haga clic en un nodo y arrastre la arista hacia otro nodo para conectarlos.', editEdgeDescription: 'Haga clic en un punto de control y arrastrelo a un nodo para conectarlo.', createEdgeError: 'No se puede conectar una arista a un grupo.', @@ -46197,6 +47658,24 @@ return /******/ (function(modules) { // webpackBootstrap }; exports['es_ES'] = exports['es']; + //Italiano + exports['it'] = { + edit: 'Modifica', + del: 'Cancella la selezione', + back: 'Indietro', + addNode: 'Aggiungi un nodo', + addEdge: 'Aggiungi un vertice', + editNode: 'Modifica il nodo', + editEdge: 'Modifica il vertice', + addDescription: 'Clicca per aggiungere un nuovo nodo', + edgeDescription: 'Clicca su un nodo e trascinalo ad un altro nodo per connetterli.', + editEdgeDescription: 'Clicca sui Punti di controllo e trascinali ad un nodo per connetterli.', + createEdgeError: 'Non si possono collegare vertici ad un cluster', + deleteClusterError: 'I cluster non possono essere cancellati', + editClusterError: 'I clusters non possono essere modificati.' + }; + exports['it_IT'] = exports['it']; + // Dutch exports['nl'] = { edit: 'Wijzigen', @@ -46216,6 +47695,44 @@ return /******/ (function(modules) { // webpackBootstrap exports['nl_NL'] = exports['nl']; exports['nl_BE'] = exports['nl']; + // Portuguese Brazil + exports['pt-br'] = { + edit: 'Editar', + del: 'Remover selecionado', + back: 'Voltar', + addNode: 'Adicionar nó', + addEdge: 'Adicionar aresta', + editNode: 'Editar nó', + editEdge: 'Editar aresta', + addDescription: 'Clique em um espaço em branco para adicionar um novo nó', + edgeDescription: 'Clique em um nó e arraste a aresta até outro nó para conectá-los', + editEdgeDescription: 'Clique nos pontos de controle e os arraste para um nó para conectá-los', + createEdgeError: 'Não foi possível linkar arestas a um cluster.', + deleteClusterError: 'Clusters não puderam ser removidos.', + editClusterError: 'Clusters não puderam ser editados.' + }; + exports['pt-BR'] = exports['pt-br']; + exports['pt_BR'] = exports['pt-br']; + exports['pt_br'] = exports['pt-br']; + + // Russian + exports['ru'] = { + edit: 'Редактировать', + del: 'Удалить выбранное', + back: 'Назад', + addNode: 'Добавить узел', + addEdge: 'Добавить ребро', + editNode: 'Редактировать узел', + editEdge: 'Редактировать ребро', + addDescription: 'Кликните в свободное место, чтобы добавить новый узел.', + edgeDescription: 'Кликните на узел и протяните ребро к другому узлу, чтобы соединить их.', + editEdgeDescription: 'Кликните на контрольные точки и перетащите их в узел, чтобы подключиться к нему.', + createEdgeError: 'Невозможно соединить ребра в кластер.', + deleteClusterError: 'Кластеры не могут быть удалены', + editClusterError: 'Кластеры недоступны для редактирования.' + }; + exports['ru_RU'] = exports['ru']; + /***/ } /******/ ]) }); diff --git a/dist/vis.map b/dist/vis.map deleted file mode 100644 index e4094787..00000000 --- a/dist/vis.map +++ /dev/null @@ -1 +0,0 @@ -{"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","parsedDateParts","meridiem","getParsingFlags","_pf","valid__isValid","_isValid","flags","parsedParts","some","_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","deprecationHandler","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","units_month__handleStrictParse","monthName","ii","llc","toLocaleLowerCase","_monthsParse","_longMonthsParse","_shortMonthsParse","monthsShort","months","localeMonthsParse","_monthsParseExact","setMonth","dayOfMonth","monthsParse","date","getSetMonth","getDaysInMonth","monthsShortRegex","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","_meridiem","meridiemFixWrap","hour","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","inclusivity","isSame","inputMs","isSameOrAfter","isSameOrBefore","asFloat","that","zoneDelta","delta","monthDiff","anchor2","adjust","wholeMonthDiff","anchor","moment_format__toISOString","inputString","defaultFormatUtc","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","day_of_week__handleStrictParse","weekdayName","_weekdaysParse","_shortWeekdaysParse","_minWeekdaysParse","weekdaysMin","weekdaysShort","weekdays","localeWeekdaysParse","_weekdaysParseExact","_fullWeekdaysParse","getSetDayOfWeek","getDay","getSetLocaleDayOfWeek","getSetISODayOfWeek","weekdaysRegex","computeWeekdaysParse","_weekdaysStrictRegex","_weekdaysRegex","weekdaysShortRegex","_weekdaysShortStrictRegex","_weekdaysShortRegex","weekdaysMinRegex","_weekdaysMinStrictRegex","_weekdaysMinRegex","minp","shortp","longp","minPieces","getSetDayOfYear","hFormat","kFormat","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","listMonthsImpl","out","listWeekdaysImpl","localeSorted","shift","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","fun","match1","match2","match3","match4","match6","match1to2","match3to4","match5to6","match1to3","match1to4","match1to6","matchUnsigned","matchSigned","matchTimestamp","matchWord","o","defaultLocaleMonths","defaultLocaleMonthsShort","defaultMonthsShortRegex","defaultMonthsRegex","parseTwoDigitYear","getSetYear","prototypeMin","prototypeMax","add_subtract__add","add_subtract__subtract","lang","isoWeekYear","defaultLocaleWeek","getSetDayOfMonth","defaultLocaleWeekdays","defaultLocaleWeekdaysShort","defaultLocaleWeekdaysMin","defaultWeekdaysRegex","defaultWeekdaysShortRegex","defaultWeekdaysMinRegex","_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","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","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","count","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","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","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.css b/dist/vis.min.css index 40d182cf..c324706b 100644 --- a/dist/vis.min.css +++ b/dist/vis.min.css @@ -1 +1 @@ -.vis-background,.vis-labelset,.vis-timeline{overflow:hidden}.vis .overlay{position:absolute;top:0;left:0;width:100%;height:100%;z-index:10}.vis-active{box-shadow:0 0 10px #86d5f8}.vis [class*=span]{min-height:0;width:auto}div.vis-configuration{position:relative;display:block;float:left;font-size:12px}div.vis-configuration-wrapper{display:block;width:700px}div.vis-configuration-wrapper::after{clear:both;content:"";display:block}div.vis-configuration.vis-config-option-container{display:block;width:495px;background-color:#fff;border:2px solid #f7f8fa;border-radius:4px;margin-top:20px;left:10px;padding-left:5px}div.vis-configuration.vis-config-button{display:block;width:495px;height:25px;vertical-align:middle;line-height:25px;background-color:#f7f8fa;border:2px solid #ceced0;border-radius:4px;margin-top:20px;left:10px;padding-left:5px;cursor:pointer;margin-bottom:30px}div.vis-configuration.vis-config-button.hover{background-color:#4588e6;border:2px solid #214373;color:#fff}div.vis-configuration.vis-config-item{display:block;float:left;width:495px;height:25px;vertical-align:middle;line-height:25px}div.vis-configuration.vis-config-item.vis-config-s2{left:10px;background-color:#f7f8fa;padding-left:5px;border-radius:3px}div.vis-configuration.vis-config-item.vis-config-s3{left:20px;background-color:#e4e9f0;padding-left:5px;border-radius:3px}div.vis-configuration.vis-config-item.vis-config-s4{left:30px;background-color:#cfd8e6;padding-left:5px;border-radius:3px}div.vis-configuration.vis-config-header{font-size:18px;font-weight:700}div.vis-configuration.vis-config-label{width:120px;height:25px;line-height:25px}div.vis-configuration.vis-config-label.vis-config-s3{width:110px}div.vis-configuration.vis-config-label.vis-config-s4{width:100px}div.vis-configuration.vis-config-colorBlock{top:1px;width:30px;height:19px;border:1px solid #444;border-radius:2px;padding:0;margin:0;cursor:pointer}input.vis-configuration.vis-config-checkbox{left:-5px}input.vis-configuration.vis-config-rangeinput{position:relative;top:-5px;width:60px;padding:1px;margin:0;pointer-events:none}.vis-panel,.vis-timeline{padding:0;box-sizing:border-box}input.vis-configuration.vis-config-range{-webkit-appearance:none;border:0 solid #fff;background-color:rgba(0,0,0,0);width:300px;height:20px}input.vis-configuration.vis-config-range::-webkit-slider-runnable-track{width:300px;height:5px;background:#dedede;background:-moz-linear-gradient(top,#dedede 0,#c8c8c8 99%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0,#dedede),color-stop(99%,#c8c8c8));background:-webkit-linear-gradient(top,#dedede 0,#c8c8c8 99%);background:-o-linear-gradient(top,#dedede 0,#c8c8c8 99%);background:-ms-linear-gradient(top,#dedede 0,#c8c8c8 99%);background:linear-gradient(to bottom,#dedede 0,#c8c8c8 99%);filter:progid:DXImageTransform.Microsoft.gradient( startColorstr='#dedede', endColorstr='#c8c8c8', GradientType=0 );border:1px solid #999;box-shadow:#aaa 0 0 3px 0;border-radius:3px}input.vis-configuration.vis-config-range::-webkit-slider-thumb{-webkit-appearance:none;border:1px solid #14334b;height:17px;width:17px;border-radius:50%;background:#3876c2;background:-moz-linear-gradient(top,#3876c2 0,#385380 100%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0,#3876c2),color-stop(100%,#385380));background:-webkit-linear-gradient(top,#3876c2 0,#385380 100%);background:-o-linear-gradient(top,#3876c2 0,#385380 100%);background:-ms-linear-gradient(top,#3876c2 0,#385380 100%);background:linear-gradient(to bottom,#3876c2 0,#385380 100%);filter:progid:DXImageTransform.Microsoft.gradient( startColorstr='#3876c2', endColorstr='#385380', GradientType=0 );box-shadow:#111927 0 0 1px 0;margin-top:-7px}input.vis-configuration.vis-config-range:focus{outline:0}input.vis-configuration.vis-config-range:focus::-webkit-slider-runnable-track{background:#9d9d9d;background:-moz-linear-gradient(top,#9d9d9d 0,#c8c8c8 99%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0,#9d9d9d),color-stop(99%,#c8c8c8));background:-webkit-linear-gradient(top,#9d9d9d 0,#c8c8c8 99%);background:-o-linear-gradient(top,#9d9d9d 0,#c8c8c8 99%);background:-ms-linear-gradient(top,#9d9d9d 0,#c8c8c8 99%);background:linear-gradient(to bottom,#9d9d9d 0,#c8c8c8 99%);filter:progid:DXImageTransform.Microsoft.gradient( startColorstr='#9d9d9d', endColorstr='#c8c8c8', GradientType=0 )}input.vis-configuration.vis-config-range::-moz-range-track{width:300px;height:10px;background:#dedede;background:-moz-linear-gradient(top,#dedede 0,#c8c8c8 99%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0,#dedede),color-stop(99%,#c8c8c8));background:-webkit-linear-gradient(top,#dedede 0,#c8c8c8 99%);background:-o-linear-gradient(top,#dedede 0,#c8c8c8 99%);background:-ms-linear-gradient(top,#dedede 0,#c8c8c8 99%);background:linear-gradient(to bottom,#dedede 0,#c8c8c8 99%);filter:progid:DXImageTransform.Microsoft.gradient( startColorstr='#dedede', endColorstr='#c8c8c8', GradientType=0 );border:1px solid #999;box-shadow:#aaa 0 0 3px 0;border-radius:3px}input.vis-configuration.vis-config-range::-moz-range-thumb{border:none;height:16px;width:16px;border-radius:50%;background:#385380}input.vis-configuration.vis-config-range:-moz-focusring{outline:#fff solid 1px;outline-offset:-1px}input.vis-configuration.vis-config-range::-ms-track{width:300px;height:5px;background:0 0;border-color:transparent;border-width:6px 0;color:transparent}input.vis-configuration.vis-config-range::-ms-fill-lower{background:#777;border-radius:10px}input.vis-configuration.vis-config-range::-ms-fill-upper{background:#ddd;border-radius:10px}input.vis-configuration.vis-config-range::-ms-thumb{border:none;height:16px;width:16px;border-radius:50%;background:#385380}input.vis-configuration.vis-config-range:focus::-ms-fill-lower{background:#888}input.vis-configuration.vis-config-range:focus::-ms-fill-upper{background:#ccc}.vis-configuration-popup{position:absolute;background:rgba(57,76,89,.85);border:2px solid #f2faff;line-height:30px;height:30px;width:150px;text-align:center;color:#fff;font-size:14px;border-radius:4px;-webkit-transition:opacity .3s ease-in-out;-moz-transition:opacity .3s ease-in-out;transition:opacity .3s ease-in-out}.vis-configuration-popup:after,.vis-configuration-popup:before{left:100%;top:50%;border:solid transparent;content:" ";height:0;width:0;position:absolute;pointer-events:none}.vis-configuration-popup:after{border-color:rgba(136,183,213,0);border-left-color:rgba(57,76,89,.85);border-width:8px;margin-top:-8px}.vis-configuration-popup:before{border-color:rgba(194,225,245,0);border-left-color:#f2faff;border-width:12px;margin-top:-12px}.vis-timeline{position:relative;border:1px solid #bfbfbf;margin:0}.vis-panel{position:absolute;margin:0}.vis-panel.vis-bottom,.vis-panel.vis-center,.vis-panel.vis-left,.vis-panel.vis-right,.vis-panel.vis-top{border:1px #bfbfbf}.vis-panel.vis-center,.vis-panel.vis-left,.vis-panel.vis-right{border-top-style:solid;border-bottom-style:solid;overflow:hidden}.vis-panel.vis-bottom,.vis-panel.vis-center,.vis-panel.vis-top{border-left-style:solid;border-right-style:solid}.vis-panel>.vis-content{position:relative}.vis-panel .vis-shadow{position:absolute;width:100%;height:1px;box-shadow:0 0 10px rgba(0,0,0,.8)}.vis-itemset,.vis-labelset,.vis-labelset .vis-label{position:relative;box-sizing:border-box}.vis-panel .vis-shadow.vis-top{top:-1px;left:0}.vis-panel .vis-shadow.vis-bottom{bottom:-1px;left:0}.vis-labelset .vis-label{left:0;top:0;width:100%;color:#4d4d4d;border-bottom:1px solid #bfbfbf}.vis-labelset .vis-label.draggable{cursor:pointer}.vis-labelset .vis-label:last-child{border-bottom:none}.vis-labelset .vis-label .vis-inner{display:inline-block;padding:5px}.vis-labelset .vis-label .vis-inner.vis-hidden{padding:0}.vis-itemset{padding:0;margin:0}.vis-itemset .vis-background,.vis-itemset .vis-foreground{position:absolute;width:100%;height:100%;overflow:visible}.vis-axis{position:absolute;width:100%;height:0;left:0;z-index:1}.vis-foreground .vis-group{position:relative;box-sizing:border-box;border-bottom:1px solid #bfbfbf}.vis-foreground .vis-group:last-child{border-bottom:none}.vis-overlay{position:absolute;top:0;left:0;width:100%;height:100%;z-index:10}.vis-item{position:absolute;color:#1A1A1A;border-color:#97B0F8;border-width:1px;background-color:#D5DDF6;display:inline-block}.vis-item.vis-point.vis-selected,.vis-item.vis-selected{background-color:#FFF785}.vis-item.vis-selected{border-color:#FFC200;z-index:2}.vis-editable.vis-selected{cursor:move}.vis-item.vis-box{text-align:center;border-style:solid;border-radius:2px}.vis-item.vis-point{background:0 0}.vis-item.vis-dot{position:absolute;padding:0;border-width:4px;border-style:solid;border-radius:4px}.vis-item.vis-range{border-style:solid;border-radius:2px;box-sizing:border-box}.vis-item.vis-background{border:none;background-color:rgba(213,221,246,.4);box-sizing:border-box;padding:0;margin:0}.vis-item .vis-item-overflow{position:relative;width:100%;height:100%;padding:0;margin:0;overflow:hidden}.vis-item .vis-delete,.vis-item .vis-delete-rtl{background:url(img/timeline/delete.png) center no-repeat;height:24px;top:-4px;cursor:pointer}.vis-item.vis-range .vis-item-content{position:relative;display:inline-block}.vis-item.vis-background .vis-item-content{position:absolute;display:inline-block}.vis-item.vis-line{padding:0;position:absolute;width:0;border-left-width:1px;border-left-style:solid}.vis-item .vis-item-content{white-space:nowrap;box-sizing:border-box;padding:5px}.vis-item .vis-delete{position:absolute;width:24px;right:-24px}.vis-item .vis-delete-rtl{position:absolute;width:24px;left:-24px}.vis-item.vis-range .vis-drag-left{position:absolute;width:24px;max-width:20%;min-width:2px;height:100%;top:0;left:-4px;cursor:w-resize}.vis-item.vis-range .vis-drag-right{position:absolute;width:24px;max-width:20%;min-width:2px;height:100%;top:0;right:-4px;cursor:e-resize}.vis-range.vis-item.vis-readonly .vis-drag-left,.vis-range.vis-item.vis-readonly .vis-drag-right{cursor:auto}.vis-time-axis{position:relative;overflow:hidden}.vis-time-axis.vis-foreground{top:0;left:0;width:100%}.vis-time-axis.vis-background{position:absolute;top:0;left:0;width:100%;height:100%}.vis-time-axis .vis-text{position:absolute;color:#4d4d4d;padding:3px;overflow:hidden;box-sizing:border-box;white-space:nowrap}.vis-time-axis .vis-text.vis-measure{position:absolute;padding-left:0;padding-right:0;margin-left:0;margin-right:0;visibility:hidden}.vis-time-axis .vis-grid.vis-vertical{position:absolute;border-left:1px solid}.vis-time-axis .vis-grid.vis-vertical-rtl{position:absolute;border-right:1px solid}.vis-time-axis .vis-grid.vis-minor{border-color:#e5e5e5}.vis-time-axis .vis-grid.vis-major{border-color:#bfbfbf}.vis-current-time{background-color:#FF7F6E;width:2px;z-index:1}.vis-custom-time{background-color:#6E94FF;width:2px;cursor:move;z-index:1}div.vis-network div.vis-close,div.vis-network div.vis-edit-mode div.vis-button,div.vis-network div.vis-manipulation div.vis-button{cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;-webkit-touch-callout:none;-khtml-user-select:none}.vis-panel.vis-background.vis-horizontal .vis-grid.vis-horizontal{position:absolute;width:100%;height:0;border-bottom:1px solid}.vis-panel.vis-background.vis-horizontal .vis-grid.vis-minor{border-color:#e5e5e5}.vis-panel.vis-background.vis-horizontal .vis-grid.vis-major{border-color:#bfbfbf}.vis-data-axis .vis-y-axis.vis-major{width:100%;position:absolute;color:#4d4d4d;white-space:nowrap}.vis-data-axis .vis-y-axis.vis-major.vis-measure{padding:0;margin:0;border:0;visibility:hidden;width:auto}.vis-data-axis .vis-y-axis.vis-minor{position:absolute;width:100%;color:#bebebe;white-space:nowrap}.vis-data-axis .vis-y-axis.vis-minor.vis-measure{padding:0;margin:0;border:0;visibility:hidden;width:auto}.vis-data-axis .vis-y-axis.vis-title{position:absolute;color:#4d4d4d;white-space:nowrap;bottom:20px;text-align:center}.vis-data-axis .vis-y-axis.vis-title.vis-measure{padding:0;margin:0;visibility:hidden;width:auto}.vis-data-axis .vis-y-axis.vis-title.vis-left{bottom:0;-webkit-transform-origin:left top;-moz-transform-origin:left top;-ms-transform-origin:left top;-o-transform-origin:left top;transform-origin:left bottom;-webkit-transform:rotate(-90deg);-moz-transform:rotate(-90deg);-ms-transform:rotate(-90deg);-o-transform:rotate(-90deg);transform:rotate(-90deg)}.vis-data-axis .vis-y-axis.vis-title.vis-right{bottom:0;-webkit-transform-origin:right bottom;-moz-transform-origin:right bottom;-ms-transform-origin:right bottom;-o-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:rotate(90deg);-moz-transform:rotate(90deg);-ms-transform:rotate(90deg);-o-transform:rotate(90deg);transform:rotate(90deg)}.vis-legend{background-color:rgba(247,252,255,.65);padding:5px;border:1px solid #b3b3b3;box-shadow:2px 2px 10px rgba(154,154,154,.55)}.vis-legend-text{white-space:nowrap;display:inline-block}.vis-graph-group0{fill:#4f81bd;fill-opacity:0;stroke-width:2px;stroke:#4f81bd}.vis-graph-group1{fill:#f79646;fill-opacity:0;stroke-width:2px;stroke:#f79646}.vis-graph-group2{fill:#8c51cf;fill-opacity:0;stroke-width:2px;stroke:#8c51cf}.vis-graph-group3{fill:#75c841;fill-opacity:0;stroke-width:2px;stroke:#75c841}.vis-graph-group4{fill:#ff0100;fill-opacity:0;stroke-width:2px;stroke:#ff0100}.vis-graph-group5{fill:#37d8e6;fill-opacity:0;stroke-width:2px;stroke:#37d8e6}.vis-graph-group6{fill:#042662;fill-opacity:0;stroke-width:2px;stroke:#042662}.vis-graph-group7{fill:#00ff26;fill-opacity:0;stroke-width:2px;stroke:#00ff26}.vis-graph-group8{fill:#f0f;fill-opacity:0;stroke-width:2px;stroke:#f0f}.vis-graph-group9{fill:#8f3938;fill-opacity:0;stroke-width:2px;stroke:#8f3938}.vis-timeline .vis-fill{fill-opacity:.1;stroke:none}.vis-timeline .vis-bar{fill-opacity:.5;stroke-width:1px}.vis-timeline .vis-point{stroke-width:2px;fill-opacity:1}.vis-timeline .vis-legend-background{stroke-width:1px;fill-opacity:.9;fill:#fff;stroke:#c2c2c2}.vis-timeline .vis-outline{stroke-width:1px;fill-opacity:1;fill:#fff;stroke:#e5e5e5}.vis-timeline .vis-icon-fill{fill-opacity:.3;stroke:none}div.vis-network div.vis-manipulation{border-width:0;border-bottom:1px;border-style:solid;border-color:#d6d9d8;background:#fff;background:-moz-linear-gradient(top,#fff 0,#fcfcfc 48%,#fafafa 50%,#fcfcfc 100%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0,#fff),color-stop(48%,#fcfcfc),color-stop(50%,#fafafa),color-stop(100%,#fcfcfc));background:-webkit-linear-gradient(top,#fff 0,#fcfcfc 48%,#fafafa 50%,#fcfcfc 100%);background:-o-linear-gradient(top,#fff 0,#fcfcfc 48%,#fafafa 50%,#fcfcfc 100%);background:-ms-linear-gradient(top,#fff 0,#fcfcfc 48%,#fafafa 50%,#fcfcfc 100%);background:linear-gradient(to bottom,#fff 0,#fcfcfc 48%,#fafafa 50%,#fcfcfc 100%);filter:progid:DXImageTransform.Microsoft.gradient( startColorstr='#ffffff', endColorstr='#fcfcfc', GradientType=0 );padding-top:4px;position:absolute;left:0;top:0;width:100%;height:28px}div.vis-network div.vis-edit-mode{position:absolute;left:0;top:5px;height:30px}div.vis-network div.vis-close{position:absolute;right:0;top:0;width:30px;height:30px;background-position:20px 3px;background-repeat:no-repeat;background-image:url(img/network/cross.png);user-select:none}div.vis-network div.vis-close:hover{opacity:.6}div.vis-network div.vis-edit-mode div.vis-button,div.vis-network div.vis-manipulation div.vis-button{float:left;font-family:verdana;font-size:12px;-moz-border-radius:15px;border-radius:15px;display:inline-block;background-position:0 0;background-repeat:no-repeat;height:24px;margin-left:10px;padding:0 8px;user-select:none}div.vis-network div.vis-manipulation div.vis-button:hover{box-shadow:1px 1px 8px rgba(0,0,0,.2)}div.vis-network div.vis-manipulation div.vis-button:active{box-shadow:1px 1px 8px rgba(0,0,0,.5)}div.vis-network div.vis-manipulation div.vis-button.vis-back{background-image:url(img/network/backIcon.png)}div.vis-network div.vis-manipulation div.vis-button.vis-none:hover{box-shadow:1px 1px 8px transparent;cursor:default}div.vis-network div.vis-manipulation div.vis-button.vis-none:active{box-shadow:1px 1px 8px transparent}div.vis-network div.vis-manipulation div.vis-button.vis-none{padding:0}div.vis-network div.vis-manipulation div.notification{margin:2px;font-weight:700}div.vis-network div.vis-manipulation div.vis-button.vis-add{background-image:url(img/network/addNodeIcon.png)}div.vis-network div.vis-edit-mode div.vis-button.vis-edit,div.vis-network div.vis-manipulation div.vis-button.vis-edit{background-image:url(img/network/editIcon.png)}div.vis-network div.vis-edit-mode div.vis-button.vis-edit.vis-edit-mode{background-color:#fcfcfc;border:1px solid #ccc}div.vis-network div.vis-manipulation div.vis-button.vis-connect{background-image:url(img/network/connectIcon.png)}div.vis-network div.vis-manipulation div.vis-button.vis-delete{background-image:url(img/network/deleteIcon.png)}div.vis-network div.vis-edit-mode div.vis-label,div.vis-network div.vis-manipulation div.vis-label{margin:0 0 0 23px;line-height:25px}div.vis-network div.vis-manipulation div.vis-separator-line{float:left;display:inline-block;width:1px;height:21px;background-color:#bdbdbd;margin:0 7px 0 15px}div.vis-network-tooltip{position:absolute;visibility:hidden;padding:5px;white-space:nowrap;font-family:verdana;font-size:14px;color:#000;background-color:#f5f4ed;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;border:1px solid #808074;box-shadow:3px 3px 10px rgba(0,0,0,.2);pointer-events:none}div.vis-network div.vis-navigation div.vis-button{width:34px;height:34px;-moz-border-radius:17px;border-radius:17px;position:absolute;display:inline-block;background-position:2px 2px;background-repeat:no-repeat;cursor:pointer;-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}div.vis-network div.vis-navigation div.vis-button:hover{box-shadow:0 0 3px 3px rgba(56,207,21,.3)}div.vis-network div.vis-navigation div.vis-button:active{box-shadow:0 0 1px 3px rgba(56,207,21,.95)}div.vis-network div.vis-navigation div.vis-button.vis-up{background-image:url(img/network/upArrow.png);bottom:50px;left:55px}div.vis-network div.vis-navigation div.vis-button.vis-down{background-image:url(img/network/downArrow.png);bottom:10px;left:55px}div.vis-network div.vis-navigation div.vis-button.vis-left{background-image:url(img/network/leftArrow.png);bottom:10px;left:15px}div.vis-network div.vis-navigation div.vis-button.vis-right{background-image:url(img/network/rightArrow.png);bottom:10px;left:95px}div.vis-network div.vis-navigation div.vis-button.vis-zoomIn{background-image:url(img/network/plus.png);bottom:10px;right:15px}div.vis-network div.vis-navigation div.vis-button.vis-zoomOut{background-image:url(img/network/minus.png);bottom:10px;right:55px}div.vis-network div.vis-navigation div.vis-button.vis-zoomExtends{background-image:url(img/network/zoomExtends.png);bottom:50px;right:15px}div.vis-color-picker{position:absolute;top:0;left:30px;margin-top:-140px;margin-left:30px;width:310px;height:444px;z-index:1;padding:10px;border-radius:15px;background-color:#fff;display:none;box-shadow:rgba(0,0,0,.5) 0 0 10px 0}div.vis-color-picker div.vis-arrow{position:absolute;top:147px;left:5px}div.vis-color-picker div.vis-arrow::after,div.vis-color-picker div.vis-arrow::before{right:100%;top:50%;border:solid transparent;content:" ";height:0;width:0;position:absolute;pointer-events:none}div.vis-color-picker div.vis-arrow:after{border-color:rgba(255,255,255,0);border-right-color:#fff;border-width:30px;margin-top:-30px}div.vis-color-picker div.vis-color{position:absolute;width:289px;height:289px;cursor:pointer}div.vis-color-picker div.vis-brightness{position:absolute;top:313px}div.vis-color-picker div.vis-opacity{position:absolute;top:350px}div.vis-color-picker div.vis-selector{position:absolute;top:137px;left:137px;width:15px;height:15px;border-radius:15px;border:1px solid #fff;background:#4c4c4c;background:-moz-linear-gradient(top,#4c4c4c 0,#595959 12%,#666 25%,#474747 39%,#2c2c2c 50%,#000 51%,#111 60%,#2b2b2b 76%,#1c1c1c 91%,#131313 100%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0,#4c4c4c),color-stop(12%,#595959),color-stop(25%,#666),color-stop(39%,#474747),color-stop(50%,#2c2c2c),color-stop(51%,#000),color-stop(60%,#111),color-stop(76%,#2b2b2b),color-stop(91%,#1c1c1c),color-stop(100%,#131313));background:-webkit-linear-gradient(top,#4c4c4c 0,#595959 12%,#666 25%,#474747 39%,#2c2c2c 50%,#000 51%,#111 60%,#2b2b2b 76%,#1c1c1c 91%,#131313 100%);background:-o-linear-gradient(top,#4c4c4c 0,#595959 12%,#666 25%,#474747 39%,#2c2c2c 50%,#000 51%,#111 60%,#2b2b2b 76%,#1c1c1c 91%,#131313 100%);background:-ms-linear-gradient(top,#4c4c4c 0,#595959 12%,#666 25%,#474747 39%,#2c2c2c 50%,#000 51%,#111 60%,#2b2b2b 76%,#1c1c1c 91%,#131313 100%);background:linear-gradient(to bottom,#4c4c4c 0,#595959 12%,#666 25%,#474747 39%,#2c2c2c 50%,#000 51%,#111 60%,#2b2b2b 76%,#1c1c1c 91%,#131313 100%);filter:progid:DXImageTransform.Microsoft.gradient( startColorstr='#4c4c4c', endColorstr='#131313', GradientType=0 )}div.vis-color-picker div.vis-initial-color,div.vis-color-picker div.vis-new-color{width:140px;height:20px;top:380px;font-size:10px;color:rgba(0,0,0,.4);line-height:20px;position:absolute;vertical-align:middle}div.vis-color-picker div.vis-new-color{border:1px solid rgba(0,0,0,.1);border-radius:5px;left:159px;text-align:right;padding-right:2px}div.vis-color-picker div.vis-initial-color{border:1px solid rgba(0,0,0,.1);border-radius:5px;left:10px;text-align:left;padding-left:2px}div.vis-color-picker div.vis-label{position:absolute;width:300px;left:10px}div.vis-color-picker div.vis-label.vis-brightness{top:300px}div.vis-color-picker div.vis-label.vis-opacity{top:338px}div.vis-color-picker div.vis-button{position:absolute;width:68px;height:25px;border-radius:10px;vertical-align:middle;text-align:center;line-height:25px;top:410px;border:2px solid #d9d9d9;background-color:#f7f7f7;cursor:pointer}div.vis-color-picker div.vis-button.vis-cancel{left:5px}div.vis-color-picker div.vis-button.vis-load{left:82px}div.vis-color-picker div.vis-button.vis-apply{left:159px}div.vis-color-picker div.vis-button.vis-save{left:236px}div.vis-color-picker input.vis-range{width:290px;height:20px} \ No newline at end of file +div.vis-network div.vis-close,div.vis-network div.vis-edit-mode div.vis-button,div.vis-network div.vis-manipulation div.vis-button{cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;-webkit-touch-callout:none;-khtml-user-select:none}.vis .overlay{position:absolute;top:0;left:0;width:100%;height:100%;z-index:10}.vis-active{box-shadow:0 0 10px #86d5f8}.vis [class*=span]{min-height:0;width:auto}div.vis-configuration{position:relative;display:block;float:left;font-size:12px}div.vis-configuration-wrapper{display:block;width:700px}div.vis-configuration-wrapper::after{clear:both;content:"";display:block}div.vis-configuration.vis-config-option-container{display:block;width:495px;background-color:#fff;border:2px solid #f7f8fa;border-radius:4px;margin-top:20px;left:10px;padding-left:5px}div.vis-configuration.vis-config-button{display:block;width:495px;height:25px;vertical-align:middle;line-height:25px;background-color:#f7f8fa;border:2px solid #ceced0;border-radius:4px;margin-top:20px;left:10px;padding-left:5px;cursor:pointer;margin-bottom:30px}div.vis-configuration.vis-config-button.hover{background-color:#4588e6;border:2px solid #214373;color:#fff}div.vis-configuration.vis-config-item{display:block;float:left;width:495px;height:25px;vertical-align:middle;line-height:25px}div.vis-configuration.vis-config-item.vis-config-s2{left:10px;background-color:#f7f8fa;padding-left:5px;border-radius:3px}div.vis-configuration.vis-config-item.vis-config-s3{left:20px;background-color:#e4e9f0;padding-left:5px;border-radius:3px}div.vis-configuration.vis-config-item.vis-config-s4{left:30px;background-color:#cfd8e6;padding-left:5px;border-radius:3px}div.vis-configuration.vis-config-header{font-size:18px;font-weight:700}div.vis-configuration.vis-config-label{width:120px;height:25px;line-height:25px}div.vis-configuration.vis-config-label.vis-config-s3{width:110px}div.vis-configuration.vis-config-label.vis-config-s4{width:100px}div.vis-configuration.vis-config-colorBlock{top:1px;width:30px;height:19px;border:1px solid #444;border-radius:2px;padding:0;margin:0;cursor:pointer}input.vis-configuration.vis-config-checkbox{left:-5px}input.vis-configuration.vis-config-rangeinput{position:relative;top:-5px;width:60px;padding:1px;margin:0;pointer-events:none}input.vis-configuration.vis-config-range{-webkit-appearance:none;border:0 solid #fff;background-color:rgba(0,0,0,0);width:300px;height:20px}input.vis-configuration.vis-config-range::-webkit-slider-runnable-track{width:300px;height:5px;background:#dedede;background:-moz-linear-gradient(top,#dedede 0,#c8c8c8 99%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0,#dedede),color-stop(99%,#c8c8c8));background:-webkit-linear-gradient(top,#dedede 0,#c8c8c8 99%);background:-o-linear-gradient(top,#dedede 0,#c8c8c8 99%);background:-ms-linear-gradient(top,#dedede 0,#c8c8c8 99%);background:linear-gradient(to bottom,#dedede 0,#c8c8c8 99%);filter:progid:DXImageTransform.Microsoft.gradient( startColorstr='#dedede', endColorstr='#c8c8c8', GradientType=0 );border:1px solid #999;box-shadow:#aaa 0 0 3px 0;border-radius:3px}input.vis-configuration.vis-config-range::-webkit-slider-thumb{-webkit-appearance:none;border:1px solid #14334b;height:17px;width:17px;border-radius:50%;background:#3876c2;background:-moz-linear-gradient(top,#3876c2 0,#385380 100%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0,#3876c2),color-stop(100%,#385380));background:-webkit-linear-gradient(top,#3876c2 0,#385380 100%);background:-o-linear-gradient(top,#3876c2 0,#385380 100%);background:-ms-linear-gradient(top,#3876c2 0,#385380 100%);background:linear-gradient(to bottom,#3876c2 0,#385380 100%);filter:progid:DXImageTransform.Microsoft.gradient( startColorstr='#3876c2', endColorstr='#385380', GradientType=0 );box-shadow:#111927 0 0 1px 0;margin-top:-7px}input.vis-configuration.vis-config-range:focus{outline:0}input.vis-configuration.vis-config-range:focus::-webkit-slider-runnable-track{background:#9d9d9d;background:-moz-linear-gradient(top,#9d9d9d 0,#c8c8c8 99%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0,#9d9d9d),color-stop(99%,#c8c8c8));background:-webkit-linear-gradient(top,#9d9d9d 0,#c8c8c8 99%);background:-o-linear-gradient(top,#9d9d9d 0,#c8c8c8 99%);background:-ms-linear-gradient(top,#9d9d9d 0,#c8c8c8 99%);background:linear-gradient(to bottom,#9d9d9d 0,#c8c8c8 99%);filter:progid:DXImageTransform.Microsoft.gradient( startColorstr='#9d9d9d', endColorstr='#c8c8c8', GradientType=0 )}input.vis-configuration.vis-config-range::-moz-range-track{width:300px;height:10px;background:#dedede;background:-moz-linear-gradient(top,#dedede 0,#c8c8c8 99%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0,#dedede),color-stop(99%,#c8c8c8));background:-webkit-linear-gradient(top,#dedede 0,#c8c8c8 99%);background:-o-linear-gradient(top,#dedede 0,#c8c8c8 99%);background:-ms-linear-gradient(top,#dedede 0,#c8c8c8 99%);background:linear-gradient(to bottom,#dedede 0,#c8c8c8 99%);filter:progid:DXImageTransform.Microsoft.gradient( startColorstr='#dedede', endColorstr='#c8c8c8', GradientType=0 );border:1px solid #999;box-shadow:#aaa 0 0 3px 0;border-radius:3px}input.vis-configuration.vis-config-range::-moz-range-thumb{border:none;height:16px;width:16px;border-radius:50%;background:#385380}input.vis-configuration.vis-config-range:-moz-focusring{outline:#fff solid 1px;outline-offset:-1px}input.vis-configuration.vis-config-range::-ms-track{width:300px;height:5px;background:0 0;border-color:transparent;border-width:6px 0;color:transparent}input.vis-configuration.vis-config-range::-ms-fill-lower{background:#777;border-radius:10px}input.vis-configuration.vis-config-range::-ms-fill-upper{background:#ddd;border-radius:10px}input.vis-configuration.vis-config-range::-ms-thumb{border:none;height:16px;width:16px;border-radius:50%;background:#385380}input.vis-configuration.vis-config-range:focus::-ms-fill-lower{background:#888}input.vis-configuration.vis-config-range:focus::-ms-fill-upper{background:#ccc}.vis-configuration-popup{position:absolute;background:rgba(57,76,89,.85);border:2px solid #f2faff;line-height:30px;height:30px;width:150px;text-align:center;color:#fff;font-size:14px;border-radius:4px;-webkit-transition:opacity .3s ease-in-out;-moz-transition:opacity .3s ease-in-out;transition:opacity .3s ease-in-out}.vis-configuration-popup:after,.vis-configuration-popup:before{left:100%;top:50%;border:solid transparent;content:" ";height:0;width:0;position:absolute;pointer-events:none}.vis-configuration-popup:after{border-color:rgba(136,183,213,0);border-left-color:rgba(57,76,89,.85);border-width:8px;margin-top:-8px}.vis-configuration-popup:before{border-color:rgba(194,225,245,0);border-left-color:#f2faff;border-width:12px;margin-top:-12px}div.vis-color-picker{position:absolute;top:0;left:30px;margin-top:-140px;margin-left:30px;width:310px;height:444px;z-index:1;padding:10px;border-radius:15px;background-color:#fff;display:none;box-shadow:rgba(0,0,0,.5) 0 0 10px 0}div.vis-color-picker div.vis-arrow{position:absolute;top:147px;left:5px}div.vis-color-picker div.vis-arrow::after,div.vis-color-picker div.vis-arrow::before{right:100%;top:50%;border:solid transparent;content:" ";height:0;width:0;position:absolute;pointer-events:none}div.vis-color-picker div.vis-arrow:after{border-color:rgba(255,255,255,0);border-right-color:#fff;border-width:30px;margin-top:-30px}div.vis-color-picker div.vis-color{position:absolute;width:289px;height:289px;cursor:pointer}div.vis-color-picker div.vis-brightness{position:absolute;top:313px}div.vis-color-picker div.vis-opacity{position:absolute;top:350px}div.vis-color-picker div.vis-selector{position:absolute;top:137px;left:137px;width:15px;height:15px;border-radius:15px;border:1px solid #fff;background:#4c4c4c;background:-moz-linear-gradient(top,#4c4c4c 0,#595959 12%,#666 25%,#474747 39%,#2c2c2c 50%,#000 51%,#111 60%,#2b2b2b 76%,#1c1c1c 91%,#131313 100%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0,#4c4c4c),color-stop(12%,#595959),color-stop(25%,#666),color-stop(39%,#474747),color-stop(50%,#2c2c2c),color-stop(51%,#000),color-stop(60%,#111),color-stop(76%,#2b2b2b),color-stop(91%,#1c1c1c),color-stop(100%,#131313));background:-webkit-linear-gradient(top,#4c4c4c 0,#595959 12%,#666 25%,#474747 39%,#2c2c2c 50%,#000 51%,#111 60%,#2b2b2b 76%,#1c1c1c 91%,#131313 100%);background:-o-linear-gradient(top,#4c4c4c 0,#595959 12%,#666 25%,#474747 39%,#2c2c2c 50%,#000 51%,#111 60%,#2b2b2b 76%,#1c1c1c 91%,#131313 100%);background:-ms-linear-gradient(top,#4c4c4c 0,#595959 12%,#666 25%,#474747 39%,#2c2c2c 50%,#000 51%,#111 60%,#2b2b2b 76%,#1c1c1c 91%,#131313 100%);background:linear-gradient(to bottom,#4c4c4c 0,#595959 12%,#666 25%,#474747 39%,#2c2c2c 50%,#000 51%,#111 60%,#2b2b2b 76%,#1c1c1c 91%,#131313 100%);filter:progid:DXImageTransform.Microsoft.gradient( startColorstr='#4c4c4c', endColorstr='#131313', GradientType=0 )}div.vis-color-picker div.vis-initial-color,div.vis-color-picker div.vis-new-color{width:140px;height:20px;top:380px;font-size:10px;color:rgba(0,0,0,.4);line-height:20px;vertical-align:middle;position:absolute}div.vis-color-picker div.vis-new-color{border:1px solid rgba(0,0,0,.1);border-radius:5px;left:159px;text-align:right;padding-right:2px}div.vis-color-picker div.vis-initial-color{border:1px solid rgba(0,0,0,.1);border-radius:5px;left:10px;text-align:left;padding-left:2px}div.vis-color-picker div.vis-label{position:absolute;width:300px;left:10px}div.vis-color-picker div.vis-label.vis-brightness{top:300px}div.vis-color-picker div.vis-label.vis-opacity{top:338px}div.vis-color-picker div.vis-button{position:absolute;width:68px;height:25px;border-radius:10px;vertical-align:middle;text-align:center;line-height:25px;top:410px;border:2px solid #d9d9d9;background-color:#f7f7f7;cursor:pointer}div.vis-color-picker div.vis-button.vis-cancel{left:5px}div.vis-color-picker div.vis-button.vis-load{left:82px}div.vis-color-picker div.vis-button.vis-apply{left:159px}div.vis-color-picker div.vis-button.vis-save{left:236px}div.vis-color-picker input.vis-range{width:290px;height:20px}div.vis-network div.vis-manipulation{border-width:0;border-bottom:1px;border-style:solid;border-color:#d6d9d8;background:#fff;background:-moz-linear-gradient(top,#fff 0,#fcfcfc 48%,#fafafa 50%,#fcfcfc 100%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0,#fff),color-stop(48%,#fcfcfc),color-stop(50%,#fafafa),color-stop(100%,#fcfcfc));background:-webkit-linear-gradient(top,#fff 0,#fcfcfc 48%,#fafafa 50%,#fcfcfc 100%);background:-o-linear-gradient(top,#fff 0,#fcfcfc 48%,#fafafa 50%,#fcfcfc 100%);background:-ms-linear-gradient(top,#fff 0,#fcfcfc 48%,#fafafa 50%,#fcfcfc 100%);background:linear-gradient(to bottom,#fff 0,#fcfcfc 48%,#fafafa 50%,#fcfcfc 100%);filter:progid:DXImageTransform.Microsoft.gradient( startColorstr='#ffffff', endColorstr='#fcfcfc', GradientType=0 );padding-top:4px;position:absolute;left:0;top:0;width:100%;height:28px}div.vis-network div.vis-edit-mode{position:absolute;left:0;top:5px;height:30px}div.vis-network div.vis-close{position:absolute;right:0;top:0;width:30px;height:30px;background-position:20px 3px;background-repeat:no-repeat;background-image:url(img/network/cross.png);user-select:none}div.vis-network div.vis-close:hover{opacity:.6}div.vis-network div.vis-edit-mode div.vis-button,div.vis-network div.vis-manipulation div.vis-button{float:left;font-family:verdana;font-size:12px;-moz-border-radius:15px;border-radius:15px;display:inline-block;background-position:0 0;background-repeat:no-repeat;height:24px;margin-left:10px;padding:0 8px;user-select:none}div.vis-network div.vis-manipulation div.vis-button:hover{box-shadow:1px 1px 8px rgba(0,0,0,.2)}div.vis-network div.vis-manipulation div.vis-button:active{box-shadow:1px 1px 8px rgba(0,0,0,.5)}div.vis-network div.vis-manipulation div.vis-button.vis-back{background-image:url(img/network/backIcon.png)}div.vis-network div.vis-manipulation div.vis-button.vis-none:hover{box-shadow:1px 1px 8px transparent;cursor:default}div.vis-network div.vis-manipulation div.vis-button.vis-none:active{box-shadow:1px 1px 8px transparent}div.vis-network div.vis-manipulation div.vis-button.vis-none{padding:0}div.vis-network div.vis-manipulation div.notification{margin:2px;font-weight:700}div.vis-network div.vis-manipulation div.vis-button.vis-add{background-image:url(img/network/addNodeIcon.png)}div.vis-network div.vis-edit-mode div.vis-button.vis-edit,div.vis-network div.vis-manipulation div.vis-button.vis-edit{background-image:url(img/network/editIcon.png)}div.vis-network div.vis-edit-mode div.vis-button.vis-edit.vis-edit-mode{background-color:#fcfcfc;border:1px solid #ccc}div.vis-network div.vis-manipulation div.vis-button.vis-connect{background-image:url(img/network/connectIcon.png)}div.vis-network div.vis-manipulation div.vis-button.vis-delete{background-image:url(img/network/deleteIcon.png)}div.vis-network div.vis-edit-mode div.vis-label,div.vis-network div.vis-manipulation div.vis-label{margin:0 0 0 23px;line-height:25px}div.vis-network div.vis-manipulation div.vis-separator-line{float:left;display:inline-block;width:1px;height:21px;background-color:#bdbdbd;margin:0 7px 0 15px}div.vis-network div.vis-navigation div.vis-button{width:34px;height:34px;-moz-border-radius:17px;border-radius:17px;position:absolute;display:inline-block;background-position:2px 2px;background-repeat:no-repeat;cursor:pointer;-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}div.vis-network div.vis-navigation div.vis-button:hover{box-shadow:0 0 3px 3px rgba(56,207,21,.3)}div.vis-network div.vis-navigation div.vis-button:active{box-shadow:0 0 1px 3px rgba(56,207,21,.95)}div.vis-network div.vis-navigation div.vis-button.vis-up{background-image:url(img/network/upArrow.png);bottom:50px;left:55px}div.vis-network div.vis-navigation div.vis-button.vis-down{background-image:url(img/network/downArrow.png);bottom:10px;left:55px}div.vis-network div.vis-navigation div.vis-button.vis-left{background-image:url(img/network/leftArrow.png);bottom:10px;left:15px}div.vis-network div.vis-navigation div.vis-button.vis-right{background-image:url(img/network/rightArrow.png);bottom:10px;left:95px}div.vis-network div.vis-navigation div.vis-button.vis-zoomIn{background-image:url(img/network/plus.png);bottom:10px;right:15px}div.vis-network div.vis-navigation div.vis-button.vis-zoomOut{background-image:url(img/network/minus.png);bottom:10px;right:55px}div.vis-network div.vis-navigation div.vis-button.vis-zoomExtends{background-image:url(img/network/zoomExtends.png);bottom:50px;right:15px}div.vis-network-tooltip{position:absolute;visibility:hidden;padding:5px;white-space:nowrap;font-family:verdana;font-size:14px;color:#000;background-color:#f5f4ed;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;border:1px solid #808074;box-shadow:3px 3px 10px rgba(0,0,0,.2);pointer-events:none}.vis-current-time{background-color:#FF7F6E;width:2px;z-index:1}.vis-custom-time{background-color:#6E94FF;width:2px;cursor:move;z-index:1}.vis-panel.vis-background.vis-horizontal .vis-grid.vis-horizontal{position:absolute;width:100%;height:0;border-bottom:1px solid}.vis-panel.vis-background.vis-horizontal .vis-grid.vis-minor{border-color:#e5e5e5}.vis-panel.vis-background.vis-horizontal .vis-grid.vis-major{border-color:#bfbfbf}.vis-data-axis .vis-y-axis.vis-major{width:100%;position:absolute;color:#4d4d4d;white-space:nowrap}.vis-data-axis .vis-y-axis.vis-major.vis-measure{padding:0;margin:0;border:0;visibility:hidden;width:auto}.vis-data-axis .vis-y-axis.vis-minor{position:absolute;width:100%;color:#bebebe;white-space:nowrap}.vis-data-axis .vis-y-axis.vis-minor.vis-measure{padding:0;margin:0;border:0;visibility:hidden;width:auto}.vis-data-axis .vis-y-axis.vis-title{position:absolute;color:#4d4d4d;white-space:nowrap;bottom:20px;text-align:center}.vis-data-axis .vis-y-axis.vis-title.vis-measure{padding:0;margin:0;visibility:hidden;width:auto}.vis-data-axis .vis-y-axis.vis-title.vis-left{bottom:0;-webkit-transform-origin:left top;-moz-transform-origin:left top;-ms-transform-origin:left top;-o-transform-origin:left top;transform-origin:left bottom;-webkit-transform:rotate(-90deg);-moz-transform:rotate(-90deg);-ms-transform:rotate(-90deg);-o-transform:rotate(-90deg);transform:rotate(-90deg)}.vis-data-axis .vis-y-axis.vis-title.vis-right{bottom:0;-webkit-transform-origin:right bottom;-moz-transform-origin:right bottom;-ms-transform-origin:right bottom;-o-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:rotate(90deg);-moz-transform:rotate(90deg);-ms-transform:rotate(90deg);-o-transform:rotate(90deg);transform:rotate(90deg)}.vis-legend{background-color:rgba(247,252,255,.65);padding:5px;border:1px solid #b3b3b3;box-shadow:2px 2px 10px rgba(154,154,154,.55)}.vis-legend-text{white-space:nowrap;display:inline-block}.vis-item{position:absolute;color:#1A1A1A;border-color:#97B0F8;border-width:1px;background-color:#D5DDF6;display:inline-block}.vis-item.vis-point.vis-selected,.vis-item.vis-selected{background-color:#FFF785}.vis-item.vis-selected{border-color:#FFC200;z-index:2}.vis-editable.vis-selected{cursor:move}.vis-item.vis-box{text-align:center;border-style:solid;border-radius:2px}.vis-item.vis-point{background:0 0}.vis-item.vis-dot{position:absolute;padding:0;border-width:4px;border-style:solid;border-radius:4px}.vis-item.vis-range{border-style:solid;border-radius:2px;box-sizing:border-box}.vis-item.vis-background{border:none;background-color:rgba(213,221,246,.4);box-sizing:border-box;padding:0;margin:0}.vis-item .vis-item-overflow{position:relative;width:100%;height:100%;padding:0;margin:0;overflow:hidden}.vis-item.vis-range .vis-item-content{position:relative;display:inline-block}.vis-item.vis-background .vis-item-content{position:absolute;display:inline-block}.vis-item.vis-line{padding:0;position:absolute;width:0;border-left-width:1px;border-left-style:solid}.vis-item .vis-item-content{white-space:nowrap;box-sizing:border-box;padding:5px}.vis-item .vis-onUpdateTime-tooltip{position:absolute;background:#4f81bd;color:#fff;width:200px;text-align:center;white-space:nowrap;padding:5px;border-radius:1px}.vis-item .vis-delete,.vis-item .vis-delete-rtl{position:absolute;top:0;width:24px;height:24px;box-sizing:border-box;padding:0 5px;cursor:pointer;-webkit-transition:background .2s linear;-moz-transition:background .2s linear;-ms-transition:background .2s linear;-o-transition:background .2s linear;transition:background .2s linear}.vis-item .vis-delete{right:-24px}.vis-item .vis-delete-rtl{left:-24px}.vis-item .vis-delete-rtl:after,.vis-item .vis-delete:after{content:"\00D7";color:red;font-family:arial,sans-serif;font-size:22px;font-weight:700;-webkit-transition:color .2s linear;-moz-transition:color .2s linear;-ms-transition:color .2s linear;-o-transition:color .2s linear;transition:color .2s linear}.vis-item .vis-delete-rtl:hover,.vis-item .vis-delete:hover{background:red}.vis-item .vis-delete-rtl:hover:after,.vis-item .vis-delete:hover:after{color:#fff}.vis-item .vis-drag-center{position:absolute;width:100%;height:100%;top:0;left:0;cursor:move}.vis-item.vis-range .vis-drag-left,.vis-item.vis-range .vis-drag-right{position:absolute;width:24px;max-width:20%;min-width:2px;height:100%;top:0}.vis-item.vis-range .vis-drag-left{left:-4px;cursor:w-resize}.vis-item.vis-range .vis-drag-right{right:-4px;cursor:e-resize}.vis-range.vis-item.vis-readonly .vis-drag-left,.vis-range.vis-item.vis-readonly .vis-drag-right{cursor:auto}.vis-itemset{position:relative;padding:0;margin:0;box-sizing:border-box}.vis-itemset .vis-background,.vis-itemset .vis-foreground{position:absolute;width:100%;height:100%;overflow:visible}.vis-axis{position:absolute;width:100%;height:0;left:0;z-index:1}.vis-foreground .vis-group{position:relative;box-sizing:border-box;border-bottom:1px solid #bfbfbf}.vis-foreground .vis-group:last-child{border-bottom:none}.vis-overlay{position:absolute;top:0;left:0;width:100%;height:100%;z-index:10}.vis-labelset,.vis-labelset .vis-label{position:relative;box-sizing:border-box}.vis-labelset{overflow:hidden}.vis-labelset .vis-label{left:0;top:0;width:100%;color:#4d4d4d;border-bottom:1px solid #bfbfbf}.vis-labelset .vis-label.draggable{cursor:pointer}.vis-labelset .vis-label:last-child{border-bottom:none}.vis-labelset .vis-label .vis-inner{display:inline-block;padding:5px}.vis-labelset .vis-label .vis-inner.vis-hidden{padding:0}.vis-panel{position:absolute;padding:0;margin:0;box-sizing:border-box}.vis-panel.vis-bottom,.vis-panel.vis-center,.vis-panel.vis-left,.vis-panel.vis-right,.vis-panel.vis-top{border:1px #bfbfbf}.vis-panel.vis-center,.vis-panel.vis-left,.vis-panel.vis-right{border-top-style:solid;border-bottom-style:solid;overflow:hidden}.vis-left.vis-panel.vis-vertical-scroll,.vis-right.vis-panel.vis-vertical-scroll{height:100%;overflow-x:hidden;overflow-y:scroll}.vis-background,.vis-time-axis,.vis-timeline{overflow:hidden}.vis-left.vis-panel.vis-vertical-scroll{direction:rtl}.vis-left.vis-panel.vis-vertical-scroll .vis-content,.vis-right.vis-panel.vis-vertical-scroll{direction:ltr}.vis-right.vis-panel.vis-vertical-scroll .vis-content{direction:rtl}.vis-panel.vis-bottom,.vis-panel.vis-center,.vis-panel.vis-top{border-left-style:solid;border-right-style:solid}.vis-panel>.vis-content{position:relative}.vis-panel .vis-shadow{position:absolute;width:100%;height:1px;box-shadow:0 0 10px rgba(0,0,0,.8)}.vis-panel .vis-shadow.vis-top{top:-1px;left:0}.vis-panel .vis-shadow.vis-bottom{bottom:-1px;left:0}.vis-graph-group0{fill:#4f81bd;fill-opacity:0;stroke-width:2px;stroke:#4f81bd}.vis-graph-group1{fill:#f79646;fill-opacity:0;stroke-width:2px;stroke:#f79646}.vis-graph-group2{fill:#8c51cf;fill-opacity:0;stroke-width:2px;stroke:#8c51cf}.vis-graph-group3{fill:#75c841;fill-opacity:0;stroke-width:2px;stroke:#75c841}.vis-graph-group4{fill:#ff0100;fill-opacity:0;stroke-width:2px;stroke:#ff0100}.vis-graph-group5{fill:#37d8e6;fill-opacity:0;stroke-width:2px;stroke:#37d8e6}.vis-graph-group6{fill:#042662;fill-opacity:0;stroke-width:2px;stroke:#042662}.vis-graph-group7{fill:#00ff26;fill-opacity:0;stroke-width:2px;stroke:#00ff26}.vis-graph-group8{fill:#f0f;fill-opacity:0;stroke-width:2px;stroke:#f0f}.vis-graph-group9{fill:#8f3938;fill-opacity:0;stroke-width:2px;stroke:#8f3938}.vis-timeline .vis-fill{fill-opacity:.1;stroke:none}.vis-timeline .vis-bar{fill-opacity:.5;stroke-width:1px}.vis-timeline .vis-point{stroke-width:2px;fill-opacity:1}.vis-timeline .vis-legend-background{stroke-width:1px;fill-opacity:.9;fill:#fff;stroke:#c2c2c2}.vis-timeline .vis-outline{stroke-width:1px;fill-opacity:1;fill:#fff;stroke:#e5e5e5}.vis-timeline .vis-icon-fill{fill-opacity:.3;stroke:none}.vis-time-axis{position:relative}.vis-time-axis.vis-foreground{top:0;left:0;width:100%}.vis-time-axis.vis-background{position:absolute;top:0;left:0;width:100%;height:100%}.vis-time-axis .vis-text{position:absolute;color:#4d4d4d;padding:3px;overflow:hidden;box-sizing:border-box;white-space:nowrap}.vis-time-axis .vis-text.vis-measure{position:absolute;padding-left:0;padding-right:0;margin-left:0;margin-right:0;visibility:hidden}.vis-time-axis .vis-grid.vis-vertical{position:absolute;border-left:1px solid}.vis-time-axis .vis-grid.vis-vertical-rtl{position:absolute;border-right:1px solid}.vis-time-axis .vis-grid.vis-minor{border-color:#e5e5e5}.vis-time-axis .vis-grid.vis-major{border-color:#bfbfbf}.vis-timeline{position:relative;border:1px solid #bfbfbf;padding:0;margin:0;box-sizing:border-box} \ No newline at end of file diff --git a/dist/vis.min.js b/dist/vis.min.js index 92b8ed75..4faffbc2 100644 --- a/dist/vis.min.js +++ b/dist/vis.min.js @@ -4,8 +4,8 @@ * * A dynamic, browser-based visualization library. * - * @version 4.16.1 - * @date 2016-04-18 + * @version 4.17.0 + * @date 2016-11-05 * * @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){var o=i(1);o.extend(e,i(7)),o.extend(e,i(24)),o.extend(e,i(60))},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 ro.apply(null,arguments)}function i(t){ro=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 ho)o=ho[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),lo===!1&&(lo=!0,e.updateOffset(this),lo=!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,i){var o=!0;return a(function(){return null!=e.deprecationHandler&&e.deprecationHandler(null,t),o&&(w(t+"\nArguments: "+Array.prototype.slice.call(arguments).join(", ")+"\n"+(new Error).stack),o=!1),i.apply(this,arguments)},i)}function x(t,i){null!=e.deprecationHandler&&e.deprecationHandler(t,i),co[t]||(w(i),co[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(!mo[e]&&"undefined"!=typeof t&&t&&t.exports)try{i=po._abbr,!function(){var t=new Error('Cannot find module "./locale"');throw t.code="MODULE_NOT_FOUND",t}(),P(i)}catch(o){}return mo[e]}function P(t,e){var i;return t&&(i=p(e)?R(t):I(t,e),i&&(po=i)),po._abbr}function I(t,e){return null!==e?(e.abbr=t,null!=mo[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(mo[t]._config,e)):null!=e.parentLocale&&(null!=mo[e.parentLocale]?e=D(mo[e.parentLocale]._config,e):x("parentLocaleUndefined","specified parentLocale is not defined yet")),mo[t]=new S(e),P(t),mo[t]):(delete mo[t],null)}function N(t,e){if(null!=e){var i;null!=mo[t]&&(e=D(mo[t]._config,e)),i=new S(e),i.parentLocale=mo[t],mo[t]=i,P(t)}else null!=mo[t]&&(null!=mo[t].parentLocale?mo[t]=mo[t].parentLocale:null!=mo[t]&&delete mo[t]);return mo[t]}function R(t){var e;if(t&&t._locale&&t._locale._abbr&&(t=t._locale._abbr),!t)return po;if(!o(t)){if(e=E(t))return e;t=[t]}return T(t)}function z(){return uo(mo)}function L(t,e){var i=t.toLowerCase();vo[i]=vo[i+"s"]=vo[e]=t}function A(t){return"string"==typeof t?vo[t]||vo[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&&(wo[t]=n),e&&(wo[e[0]]=function(){return Y(n.apply(this,arguments),e[1],e[2])}),i&&(wo[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(go);for(e=0,i=o.length;i>e;e++)wo[o[e]]?o[e]=wo[o[e]]:o[e]=V(o[e]);return function(e){var n,s="";for(n=0;i>n;n++)s+=o[n]instanceof Function?o[n].call(e,t):o[n];return s}}function q(t,e){return t.isValid()?(e=X(e,t.localeData()),bo[e]=bo[e]||U(e),bo[e](t)):t.localeData().invalidDate()}function X(t,e){function i(t){return e.longDateFormat(t)||t}var o=5;for(yo.lastIndex=0;o>=0&&yo.test(t);)t=t.replace(yo,i),yo.lastIndex=0,o-=1;return t}function Z(t,e,i){Bo[t]=k(e)?e:function(t,o){return t&&i?i:e}}function K(t,e){return r(Bo,t)?Bo[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)s=h([2e3,o]),this._shortMonthsParse[o]=this.monthsShort(s,"").toLocaleLowerCase(),this._longMonthsParse[o]=this.months(s,"").toLocaleLowerCase();return i?"MMM"===e?(n=fo.call(this._shortMonthsParse,r),-1!==n?n:null):(n=fo.call(this._longMonthsParse,r),-1!==n?n:null):"MMM"===e?(n=fo.call(this._shortMonthsParse,r),-1!==n?n:(n=fo.call(this._longMonthsParse,r),-1!==n?n:null)):(n=fo.call(this._longMonthsParse,r),-1!==n?n:(n=fo.call(this._shortMonthsParse,r),-1!==n?n:null))}function rt(t,e,i){var o,n,s;if(this._monthsParseExact)return st.call(this,t,e,i);for(this._monthsParse||(this._monthsParse=[],this._longMonthsParse=[],this._shortMonthsParse=[]),o=0;12>o;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 at(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 ht(t){return null!=t?(at(this,t),e.updateOffset(this,!0),this):j(this,"Month")}function dt(){return it(this.year(),this.month())}function lt(t){return this._monthsParseExact?(r(this,"_monthsRegex")||ut.call(this),t?this._monthsShortStrictRegex:this._monthsShortRegex):this._monthsShortStrictRegex&&t?this._monthsShortStrictRegex:this._monthsShortRegex}function ct(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]=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 pt(t){var e,i=t._a;return i&&-2===l(t).overflow&&(e=i[Ho]<0||i[Ho]>11?Ho:i[Wo]<1||i[Wo]>it(i[jo],i[Ho])?Wo:i[Yo]<0||i[Yo]>24||24===i[Yo]&&(0!==i[Go]||0!==i[Vo]||0!==i[Uo])?Yo:i[Go]<0||i[Go]>59?Go:i[Vo]<0||i[Vo]>59?Vo:i[Uo]<0||i[Uo]>999?Uo:-1,l(t)._overflowDayOfYear&&(jo>e||e>Wo)&&(e=Wo),l(t)._overflowWeeks&&-1===e&&(e=qo),l(t)._overflowWeekday&&-1===e&&(e=Xo),l(t).overflow=e),t}function ft(t){var e,i,o,n,s,r,a=t._i,h=tn.exec(a)||en.exec(a);if(h){for(l(t).iso=!0,e=0,i=nn.length;i>e;e++)if(nn[e][1].exec(h[1])){n=nn[e][0],o=nn[e][2]!==!1;break}if(null==n)return void(t._isValid=!1);if(h[3]){for(e=0,i=sn.length;i>e;e++)if(sn[e][1].exec(h[3])){s=(h[2]||" ")+sn[e][0];break}if(null==s)return void(t._isValid=!1)}if(!o&&null!=s)return void(t._isValid=!1);if(h[4]){if(!on.exec(h[4]))return void(t._isValid=!1);r="Z"}t._f=n+(s||"")+(r||""),Tt(t)}else t._isValid=!1}function mt(t){var i=rn.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 vt(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 yt(t){return bt(t)?366:365}function bt(t){return t%4===0&&t%100!==0||t%400===0}function wt(){return bt(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 xt(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=yt(s)+d):d>yt(t)?(s=t+1,r=d-yt(t)):(s=t,r=d),{year:s,dayOfYear:r}}function kt(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+Ot(n,e,i)):r>Ot(t.year(),e,i)?(o=r-Ot(t.year(),e,i),n=t.year()+1):(n=t.year(),o=r),{week:o,year:n}}function Ot(t,e,i){var o=_t(t,e,i),n=_t(t+1,e,i);return(yt(t)-o+n)/7}function Mt(t,e,i){return null!=t?t:null!=e?e:i}function Dt(t){var i=new Date(e.now());return t._useUTC?[i.getUTCFullYear(),i.getUTCMonth(),i.getUTCDate()]:[i.getFullYear(),i.getMonth(),i.getDate()]}function St(t){var e,i,o,n,s=[];if(!t._d){for(o=Dt(t),t._w&&null==t._a[Wo]&&null==t._a[Ho]&&Ct(t),t._dayOfYear&&(n=Mt(t._a[jo],o[jo]),t._dayOfYear>yt(n)&&(l(t)._overflowDayOfYear=!0),i=gt(n,0,t._dayOfYear),t._a[Ho]=i.getUTCMonth(),t._a[Wo]=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[Yo]&&0===t._a[Go]&&0===t._a[Vo]&&0===t._a[Uo]&&(t._nextDay=!0,t._a[Yo]=0),t._d=(t._useUTC?gt:vt).apply(null,s),null!=t._tzm&&t._d.setUTCMinutes(t._d.getUTCMinutes()-t._tzm),t._nextDay&&(t._a[Yo]=24)}}function Ct(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=Mt(e.GG,t._a[jo],kt(At(),1,4).year),o=Mt(e.W,1),n=Mt(e.E,1),(1>n||n>7)&&(h=!0)):(s=t._locale._week.dow,r=t._locale._week.doy,i=Mt(e.gg,t._a[jo],kt(At(),s,r).year),o=Mt(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>Ot(i,s,r)?l(t)._overflowWeeks=!0:null!=h?l(t)._overflowWeekday=!0:(a=xt(i,o,n,s,r),t._a[jo]=a.year,t._dayOfYear=a.dayOfYear)}function Tt(t){if(t._f===e.ISO_8601)return void ft(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(go)||[],i=0;i0&&l(t).unusedInput.push(r),a=a.slice(a.indexOf(o)+o.length),d+=o.length),wo[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[Yo]<=12&&t._a[Yo]>0&&(l(t).bigHour=void 0),l(t).parsedDateParts=t._a.slice(0),l(t).meridiem=t._meridiem,t._a[Yo]=Et(t._locale,t._a[Yo],t._meridiem),St(t),pt(t)}function Et(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 Pt(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 It(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)}),St(t)}}function Nt(t){var e=new m(pt(Rt(t)));return e._nextDay&&(e.add(1,"d"),e._nextDay=void 0),e}function Rt(t){var e=t._i,i=t._f;return t._locale=t._locale||R(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(pt(e)):(o(i)?Pt(t):i?Tt(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.valueOf()):"string"==typeof i?mt(t):o(i)?(t._a=s(i.slice(0),function(t){return parseInt(t,10)}),St(t)):"object"==typeof i?It(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,Nt(s)}function At(t,e,i,o){return Lt(t,e,i,o,!1)}function Bt(t,e){var i,n;if(1===e.length&&o(e[0])&&(e=e[0]),!e.length)return At();for(i=e[0],n=1;nt&&(t=-t,i="-"),i+Y(~~(t/60),2)+e+Y(~~t%60,2)})}function Gt(t,e){var i=(e||"").match(t)||[],o=i[i.length-1]||[],n=(o+"").match(cn)||["-",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=(v(t)||n(t)?t.valueOf():At(t).valueOf())-o.valueOf(),o._d.setTime(o._d.valueOf()+s),e.updateOffset(o,!1),o):At(t).local()}function Ut(t){return 15*-Math.round(t._d.getTimezoneOffset()/15)}function qt(t,i){var o,n=this._offset||0;return this.isValid()?null!=t?("string"==typeof t?t=Gt(zo,t):Math.abs(t)<16&&(t=60*t),!this._isUTC&&i&&(o=Ut(this)),this._offset=t,this._isUTC=!0,null!=o&&this.add(o,"m"),n!==t&&(!i||this._changeInProgress?le(this,ne(t-n,"m"),1,!1):this._changeInProgress||(this._changeInProgress=!0,e.updateOffset(this,!0),this._changeInProgress=null)),this):this._isUTC?n:Ut(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 Kt(t){return this._isUTC&&(this.utcOffset(0,t),this._isUTC=!1,t&&this.subtract(Ut(this),"m")),this}function Jt(){return this._tzm?this.utcOffset(this._tzm):"string"==typeof this._i&&this.utcOffset(Gt(Ro,this._i)),this}function Qt(t){return this.isValid()?(t=t?At(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 te(){if(!p(this._isDSTShifted))return this._isDSTShifted;var t={};if(f(t,this),t=Rt(t),t._a){var e=t._isUTC?h(t._a):At(t._a);this._isDSTShifted=this.isValid()&&b(t._a,e.toArray())>0}else this._isDSTShifted=!1;return this._isDSTShifted}function ee(){return this.isValid()?!this._isUTC:!1}function ie(){return this.isValid()?this._isUTC:!1}function oe(){return this.isValid()?this._isUTC&&0===this._offset:!1}function ne(t,e){var i,o,n,s=t,a=null;return Wt(t)?s={ms:t._milliseconds,d:t._days,M:t._months}:"number"==typeof t?(s={},e?s[e]=t:s.milliseconds=t):(a=un.exec(t))?(i="-"===a[1]?-1:1,s={y:0,d:y(a[Wo])*i,h:y(a[Yo])*i,m:y(a[Go])*i,s:y(a[Vo])*i,ms:y(a[Uo])*i}):(a=pn.exec(t))?(i="-"===a[1]?-1:1,s={y:se(a[2],i),M:se(a[3],i),w:se(a[4],i),d:se(a[5],i),h:se(a[6],i),m:se(a[7],i),s:se(a[8],i)}):null==s?s={}:"object"==typeof s&&("from"in s||"to"in s)&&(n=ae(At(s.from),At(s.to)),s={},s.ms=n.milliseconds,s.M=n.months),o=new Ht(s),Wt(t)&&r(t,"_locale")&&(o._locale=t._locale),o}function se(t,e){var i=t&&parseFloat(t.replace(",","."));return(isNaN(i)?0:i)*e}function re(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 ae(t,e){var i;return t.isValid()&&e.isValid()?(e=Vt(e,t),t.isBefore(e)?i=re(t,e):(i=re(e,t),i.milliseconds=-i.milliseconds,i.months=-i.months),i):{milliseconds:0,months:0}}function he(t){return 0>t?-1*Math.round(-1*t):Math.round(t)}function de(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=ne(i,o),le(this,n,t),this}}function le(t,i,o,n){var s=i._milliseconds,r=he(i._days),a=he(i._months);t.isValid()&&(n=null==n?!0:n,s&&t._d.setTime(t._d.valueOf()+s*o),r&&H(t,"Date",j(t,"Date")+r*o),a&&at(t,j(t,"Month")+a*o),n&&e.updateOffset(t,r||a))}function ce(t,e){var i=t||At(),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&&(k(e[s])?e[s]():e[s]);return this.format(r||this.localeData().calendar(s,this,At(i)))}function ue(){return new m(this)}function pe(t,e){var i=v(t)?t:At(t);return this.isValid()&&i.isValid()?(e=A(p(e)?"millisecond":e),"millisecond"===e?this.valueOf()>i.valueOf():i.valueOf()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)||0}function _e(){return this.clone().locale("en").format("ddd MMM DD YYYY HH:mm:ss [GMT]ZZ")}function xe(){var t=this.clone().utc();return 0s&&(e=s),Xe.call(this,t,e,i,o,n))}function Xe(t,e,i,o,n){var s=xt(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 Ze(t){return null==t?Math.ceil((this.month()+1)/3):this.month(3*(t-1)+this.month()%3)}function Ke(t){return kt(t,this._week.dow,this._week.doy).week}function Je(){return this._week.dow}function Qe(){return this._week.doy}function $e(t){var e=this.localeData().week(this);return null==t?e:this.add(7*(t-e),"d")}function ti(t){var e=kt(this,1,4).week;return null==t?e:this.add(7*(t-e),"d")}function ei(t,e){return"string"!=typeof t?t:isNaN(t)?(t=e.weekdaysParse(t),"number"==typeof t?t:null):parseInt(t,10)}function ii(t,e){return o(this._weekdays)?this._weekdays[t.day()]:this._weekdays[this._weekdays.isFormat.test(e)?"format":"standalone"][t.day()]}function oi(t){return this._weekdaysShort[t.day()]}function ni(t){return this._weekdaysMin[t.day()]}function si(t,e,i){var o,n,s,r=t.toLocaleLowerCase();if(!this._weekdaysParse)for(this._weekdaysParse=[],this._shortWeekdaysParse=[],this._minWeekdaysParse=[],o=0;7>o;++o)s=h([2e3,1]).day(o),this._minWeekdaysParse[o]=this.weekdaysMin(s,"").toLocaleLowerCase(),this._shortWeekdaysParse[o]=this.weekdaysShort(s,"").toLocaleLowerCase(),this._weekdaysParse[o]=this.weekdays(s,"").toLocaleLowerCase();return i?"dddd"===e?(n=fo.call(this._weekdaysParse,r),-1!==n?n:null):"ddd"===e?(n=fo.call(this._shortWeekdaysParse,r),-1!==n?n:null):(n=fo.call(this._minWeekdaysParse,r),-1!==n?n:null):"dddd"===e?(n=fo.call(this._weekdaysParse,r),-1!==n?n:(n=fo.call(this._shortWeekdaysParse,r),-1!==n?n:(n=fo.call(this._minWeekdaysParse,r),-1!==n?n:null))):"ddd"===e?(n=fo.call(this._shortWeekdaysParse,r),-1!==n?n:(n=fo.call(this._weekdaysParse,r),-1!==n?n:(n=fo.call(this._minWeekdaysParse,r),-1!==n?n:null))):(n=fo.call(this._minWeekdaysParse,r),-1!==n?n:(n=fo.call(this._weekdaysParse,r),-1!==n?n:(n=fo.call(this._shortWeekdaysParse,r),-1!==n?n:null)))}function ri(t,e,i){var o,n,s;if(this._weekdaysParseExact)return si.call(this,t,e,i);for(this._weekdaysParse||(this._weekdaysParse=[],this._minWeekdaysParse=[],this._shortWeekdaysParse=[],this._fullWeekdaysParse=[]),o=0;7>o;o++){if(n=h([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 ai(t){if(!this.isValid())return null!=t?this:NaN;var e=this._isUTC?this._d.getUTCDay():this._d.getDay();return null!=t?(t=ei(t,this.localeData()),this.add(t-e,"d")):e}function hi(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 di(t){return this.isValid()?null==t?this.day()||7:this.day(this.day()%7?t:t-7):null!=t?this:NaN}function li(t){return this._weekdaysParseExact?(r(this,"_weekdaysRegex")||pi.call(this),t?this._weekdaysStrictRegex:this._weekdaysRegex):this._weekdaysStrictRegex&&t?this._weekdaysStrictRegex:this._weekdaysRegex}function ci(t){return this._weekdaysParseExact?(r(this,"_weekdaysRegex")||pi.call(this),t?this._weekdaysShortStrictRegex:this._weekdaysShortRegex):this._weekdaysShortStrictRegex&&t?this._weekdaysShortStrictRegex:this._weekdaysShortRegex}function ui(t){return this._weekdaysParseExact?(r(this,"_weekdaysRegex")||pi.call(this),t?this._weekdaysMinStrictRegex:this._weekdaysMinRegex):this._weekdaysMinStrictRegex&&t?this._weekdaysMinStrictRegex:this._weekdaysMinRegex}function pi(){function t(t,e){return e.length-t.length}var e,i,o,n,s,r=[],a=[],d=[],l=[];for(e=0;7>e;e++)i=h([2e3,1]).day(e),o=this.weekdaysMin(i,""),n=this.weekdaysShort(i,""),s=this.weekdays(i,""),r.push(o),a.push(n),d.push(s),l.push(o),l.push(n),l.push(s);for(r.sort(t),a.sort(t),d.sort(t),l.sort(t),e=0;7>e;e++)a[e]=Q(a[e]),d[e]=Q(d[e]),l[e]=Q(l[e]);this._weekdaysRegex=new RegExp("^("+l.join("|")+")","i"),this._weekdaysShortRegex=this._weekdaysRegex,this._weekdaysMinRegex=this._weekdaysRegex,this._weekdaysStrictRegex=new RegExp("^("+d.join("|")+")","i"),this._weekdaysShortStrictRegex=new RegExp("^("+a.join("|")+")","i"),this._weekdaysMinStrictRegex=new RegExp("^("+r.join("|")+")","i")}function fi(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 mi(){return this.hours()%12||12}function vi(){return this.hours()||24}function gi(t,e){G(t,0,0,function(){return this.localeData().meridiem(this.hours(),this.minutes(),e)})}function yi(t,e){return e._meridiemParse}function bi(t){return"p"===(t+"").toLowerCase().charAt(0)}function wi(t,e,i){return t>11?i?"pm":"PM":i?"am":"AM"}function _i(t,e){e[Uo]=y(1e3*("0."+t))}function xi(){return this._isUTC?"UTC":""}function ki(){return this._isUTC?"Coordinated Universal Time":""}function Oi(t){return At(1e3*t)}function Mi(){return At.apply(null,arguments).parseZone()}function Di(t,e,i){var o=this._calendar[t];return k(o)?o.call(e,i):o}function Si(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 Ci(){return this._invalidDate}function Ti(t){return this._ordinal.replace("%d",t)}function Ei(t){return t}function Pi(t,e,i,o){var n=this._relativeTime[i];return k(n)?n(t,e,i,o):n.replace(/%d/i,t)}function Ii(t,e){var i=this._relativeTime[t>0?"future":"past"];return k(i)?i(e):i.replace(/%s/i,e)}function Ni(t,e,i,o){var n=R(),s=h().set(o,e);return n[i](s,t)}function Ri(t,e,i){if("number"==typeof t&&(e=t,t=void 0),t=t||"",null!=e)return Ni(t,e,i,"month");var o,n=[];for(o=0;12>o;o++)n[o]=Ni(t,o,i,"month");return n}function zi(t,e,i,o){"boolean"==typeof t?("number"==typeof e&&(i=e,e=void 0),e=e||""):(e=t,i=e,t=!1,"number"==typeof e&&(i=e,e=void 0),e=e||"");var n=R(),s=t?n._week.dow:0;if(null!=i)return Ni(e,(i+s)%7,o,"day");var r,a=[];for(r=0;7>r;r++)a[r]=Ni(e,(r+s)%7,o,"day");return a}function Li(t,e){return Ri(t,e,"months")}function Ai(t,e){return Ri(t,e,"monthsShort")}function Bi(t,e,i){return zi(t,e,i,"weekdays")}function Fi(t,e,i){return zi(t,e,i,"weekdaysShort")}function ji(t,e,i){return zi(t,e,i,"weekdaysMin")}function Hi(){var t=this._data;return this._milliseconds=jn(this._milliseconds),this._days=jn(this._days),this._months=jn(this._months),t.milliseconds=jn(t.milliseconds),t.seconds=jn(t.seconds),t.minutes=jn(t.minutes),t.hours=jn(t.hours),t.months=jn(t.months),t.years=jn(t.years),this}function Wi(t,e,i,o){var n=ne(e,i);return t._milliseconds+=o*n._milliseconds,t._days+=o*n._days,t._months+=o*n._months,t._bubble()}function Yi(t,e){return Wi(this,t,e,1)}function Gi(t,e){return Wi(this,t,e,-1)}function Vi(t){return 0>t?Math.floor(t):Math.ceil(t)}function Ui(){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*Vi(Xi(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(qi(r)),a+=n,r-=Vi(Xi(n)),o=g(a/12),a%=12,h.days=r,h.months=a,h.years=o,this}function qi(t){return 4800*t/146097}function Xi(t){return 146097*t/4800}function Zi(t){var e,i,o=this._milliseconds;if(t=A(t),"month"===t||"year"===t)return e=this._days+o/864e5,i=this._months+qi(e),"month"===t?i:i/12;switch(e=this._days+Math.round(Xi(this._months)),t){case"week":return e/7+o/6048e5;case"day":return e+o/864e5;case"hour":return 24*e+o/36e5;case"minute":return 1440*e+o/6e4;case"second":return 86400*e+o/1e3;case"millisecond":return Math.floor(864e5*e)+o;default:throw new Error("Unknown unit "+t)}}function Ki(){return this._milliseconds+864e5*this._days+this._months%12*2592e6+31536e6*y(this._months/12)}function Ji(t){return function(){return this.as(t)}}function Qi(t){return t=A(t),this[t+"s"]()}function $i(t){return function(){return this._data[t]}}function to(){return g(this.days()/7)}function eo(t,e,i,o,n){return n.relativeTime(e||1,!!i,t,o)}function io(t,e,i){var o=ne(t).abs(),n=is(o.as("s")),s=is(o.as("m")),r=is(o.as("h")),a=is(o.as("d")),h=is(o.as("M")),d=is(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,eo.apply(null,l)}function oo(t,e){return void 0===os[t]?!1:void 0===e?os[t]:(os[t]=e,!0)}function no(t){var e=this.localeData(),i=io(this,!t,e);return t&&(i=e.pastFuture(+this,i)),e.postformat(i)}function so(){var t,e,i,o=ns(this._milliseconds)/1e3,n=ns(this._days),s=ns(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 ro,ao;ao=Array.prototype.some?Array.prototype.some:function(t){for(var e=Object(this),i=e.length>>>0,o=0;i>o;o++)if(o in e&&t.call(this,e[o],o,e))return!0;return!1};var ho=e.momentProperties=[],lo=!1,co={};e.suppressDeprecationWarnings=!1,e.deprecationHandler=null;var uo;uo=Object.keys?Object.keys:function(t){var e,i=[];for(e in t)r(t,e)&&i.push(e);return i};var po,fo,mo={},vo={},go=/(\[[^\[]*\])|(\\)?([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?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g,yo=/(\[[^\[]*\])|(\\)?(LTS|LT|LL?L?L?|l{1,4})/g,bo={},wo={},_o=/\d/,xo=/\d\d/,ko=/\d{3}/,Oo=/\d{4}/,Mo=/[+-]?\d{6}/,Do=/\d\d?/,So=/\d\d\d\d?/,Co=/\d\d\d\d\d\d?/,To=/\d{1,3}/,Eo=/\d{1,4}/,Po=/[+-]?\d{1,6}/,Io=/\d+/,No=/[+-]?\d+/,Ro=/Z|[+-]\d\d:?\d\d/gi,zo=/Z|[+-]\d\d(?::?\d\d)?/gi,Lo=/[+-]?\d+(\.\d{1,3})?/,Ao=/[0-9]*['a-z\u00A0-\u05FF\u0700-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]+|[\u0600-\u06FF\/]+(\s*?[\u0600-\u06FF]+){1,2}/i,Bo={},Fo={},jo=0,Ho=1,Wo=2,Yo=3,Go=4,Vo=5,Uo=6,qo=7,Xo=8;fo=Array.prototype.indexOf?Array.prototype.indexOf:function(t){var e;for(e=0;e=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"),L("year","y"),Z("Y",No),Z("YY",Do,xo),Z("YYYY",Eo,Oo),Z("YYYYY",Po,Mo),Z("YYYYYY",Po,Mo),$(["YYYYY","YYYYYY"],jo),$("YYYY",function(t,i){i[jo]=2===t.length?e.parseTwoDigitYear(t):y(t)}),$("YY",function(t,i){i[jo]=e.parseTwoDigitYear(t)}),$("Y",function(t,e){e[jo]=parseInt(t,10)}),e.parseTwoDigitYear=function(t){return y(t)+(y(t)>68?1900:2e3)};var an=F("FullYear",!0);e.ISO_8601=function(){};var hn=_("moment().min is deprecated, use moment.max instead. https://github.com/moment/moment/issues/1548",function(){var t=At.apply(null,arguments);return this.isValid()&&t.isValid()?this>t?this:t:u()}),dn=_("moment().max is deprecated, use moment.min instead. https://github.com/moment/moment/issues/1548",function(){var t=At.apply(null,arguments);return this.isValid()&&t.isValid()?t>this?this:t:u()}),ln=function(){return Date.now?Date.now():+new Date};Yt("Z",":"),Yt("ZZ",""),Z("Z",zo),Z("ZZ",zo),$(["Z","ZZ"],function(t,e,i){i._useUTC=!0,i._tzm=Gt(zo,t)});var cn=/([\+\-]|\d\d)/gi;e.updateOffset=function(){};var un=/^(\-)?(?:(\d*)[. ])?(\d+)\:(\d+)(?:\:(\d+)\.?(\d{3})?\d*)?$/,pn=/^(-)?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=Ht.prototype;var fn=de(1,"add"),mn=de(-1,"subtract");e.defaultFormat="YYYY-MM-DDTHH:mm:ssZ",e.defaultFormatUtc="YYYY-MM-DDTHH:mm:ss[Z]";var vn=_("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}),We("gggg","weekYear"),We("ggggg","weekYear"),We("GGGG","isoWeekYear"),We("GGGGG","isoWeekYear"),L("weekYear","gg"),L("isoWeekYear","GG"),Z("G",No),Z("g",No),Z("GG",Do,xo),Z("gg",Do,xo),Z("GGGG",Eo,Oo),Z("gggg",Eo,Oo),Z("GGGGG",Po,Mo),Z("ggggg",Po,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)}),G("Q",0,"Qo","quarter"),L("quarter","Q"),Z("Q",_o),$("Q",function(t,e){e[Ho]=3*(y(t)-1)}),G("w",["ww",2],"wo","week"),G("W",["WW",2],"Wo","isoWeek"),L("week","w"),L("isoWeek","W"),Z("w",Do),Z("ww",Do,xo),Z("W",Do),Z("WW",Do,xo),tt(["w","ww","W","WW"],function(t,e,i,o){e[o.substr(0,1)]=y(t)});var gn={dow:0,doy:6};G("D",["DD",2],"Do","date"),L("date","D"),Z("D",Do),Z("DD",Do,xo),Z("Do",function(t,e){return t?e._ordinalParse:e._ordinalParseLenient}),$(["D","DD"],Wo),$("Do",function(t,e){e[Wo]=y(t.match(Do)[0],10)});var yn=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"),L("day","d"),L("weekday","e"),L("isoWeekday","E"),Z("d",Do),Z("e",Do),Z("E",Do),Z("dd",function(t,e){return e.weekdaysMinRegex(t)}),Z("ddd",function(t,e){return e.weekdaysShortRegex(t)}),Z("dddd",function(t,e){return e.weekdaysRegex(t)}),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 bn="Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),wn="Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),_n="Su_Mo_Tu_We_Th_Fr_Sa".split("_"),xn=Ao,kn=Ao,On=Ao;G("DDD",["DDDD",3],"DDDo","dayOfYear"),L("dayOfYear","DDD"),Z("DDD",To),Z("DDDD",ko),$(["DDD","DDDD"],function(t,e,i){i._dayOfYear=y(t)}),G("H",["HH",2],0,"hour"),G("h",["hh",2],0,mi),G("k",["kk",2],0,vi),G("hmm",0,0,function(){return""+mi.apply(this)+Y(this.minutes(),2)}),G("hmmss",0,0,function(){return""+mi.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)}),gi("a",!0),gi("A",!1),L("hour","h"),Z("a",yi),Z("A",yi),Z("H",Do),Z("h",Do),Z("HH",Do,xo),Z("hh",Do,xo),Z("hmm",So),Z("hmmss",Co),Z("Hmm",So),Z("Hmmss",Co),$(["H","HH"],Yo),$(["a","A"],function(t,e,i){i._isPm=i._locale.isPM(t),i._meridiem=t}),$(["h","hh"],function(t,e,i){e[Yo]=y(t),l(i).bigHour=!0}),$("hmm",function(t,e,i){var o=t.length-2;e[Yo]=y(t.substr(0,o)),e[Go]=y(t.substr(o)),l(i).bigHour=!0}),$("hmmss",function(t,e,i){var o=t.length-4,n=t.length-2;e[Yo]=y(t.substr(0,o)),e[Go]=y(t.substr(o,2)),e[Vo]=y(t.substr(n)),l(i).bigHour=!0}),$("Hmm",function(t,e,i){var o=t.length-2;e[Yo]=y(t.substr(0,o)),e[Go]=y(t.substr(o))}),$("Hmmss",function(t,e,i){var o=t.length-4,n=t.length-2;e[Yo]=y(t.substr(0,o)),e[Go]=y(t.substr(o,2)),e[Vo]=y(t.substr(n))});var Mn=/[ap]\.?m?\.?/i,Dn=F("Hours",!0);G("m",["mm",2],0,"minute"),L("minute","m"),Z("m",Do),Z("mm",Do,xo),$(["m","mm"],Go);var Sn=F("Minutes",!1);G("s",["ss",2],0,"second"),L("second","s"),Z("s",Do),Z("ss",Do,xo),$(["s","ss"],Vo);var Cn=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()}),L("millisecond","ms"),Z("S",To,_o),Z("SS",To,xo),Z("SSS",To,ko);var Tn;for(Tn="SSSS";Tn.length<=9;Tn+="S")Z(Tn,Io);for(Tn="S";Tn.length<=9;Tn+="S")$(Tn,_i);var En=F("Milliseconds",!1);G("z",0,0,"zoneAbbr"),G("zz",0,0,"zoneName");var Pn=m.prototype;Pn.add=fn,Pn.calendar=ce,Pn.clone=ue,Pn.diff=be,Pn.endOf=Pe,Pn.format=ke,Pn.from=Oe,Pn.fromNow=Me,Pn.to=De,Pn.toNow=Se,Pn.get=W,Pn.invalidAt=je,Pn.isAfter=pe,Pn.isBefore=fe,Pn.isBetween=me,Pn.isSame=ve,Pn.isSameOrAfter=ge,Pn.isSameOrBefore=ye,Pn.isValid=Be,Pn.lang=vn,Pn.locale=Ce,Pn.localeData=Te,Pn.max=dn,Pn.min=hn,Pn.parsingFlags=Fe,Pn.set=W,Pn.startOf=Ee,Pn.subtract=mn,Pn.toArray=ze,Pn.toObject=Le,Pn.toDate=Re,Pn.toISOString=xe,Pn.toJSON=Ae,Pn.toString=_e,Pn.unix=Ne,Pn.valueOf=Ie,Pn.creationData=He,Pn.year=an,Pn.isLeapYear=wt,Pn.weekYear=Ye,Pn.isoWeekYear=Ge,Pn.quarter=Pn.quarters=Ze,Pn.month=ht,Pn.daysInMonth=dt,Pn.week=Pn.weeks=$e,Pn.isoWeek=Pn.isoWeeks=ti,Pn.weeksInYear=Ue,Pn.isoWeeksInYear=Ve,Pn.date=yn,Pn.day=Pn.days=ai,Pn.weekday=hi,Pn.isoWeekday=di,Pn.dayOfYear=fi,Pn.hour=Pn.hours=Dn,Pn.minute=Pn.minutes=Sn,Pn.second=Pn.seconds=Cn,Pn.millisecond=Pn.milliseconds=En,Pn.utcOffset=qt,Pn.utc=Zt,Pn.local=Kt,Pn.parseZone=Jt,Pn.hasAlignedHourOffset=Qt,Pn.isDST=$t,Pn.isDSTShifted=te,Pn.isLocal=ee,Pn.isUtcOffset=ie,Pn.isUtc=oe,Pn.isUTC=oe,Pn.zoneAbbr=xi,Pn.zoneName=ki,Pn.dates=_("dates accessor is deprecated. Use date instead.",yn),Pn.months=_("months accessor is deprecated. Use month instead",ht),Pn.years=_("years accessor is deprecated. Use year instead",an),Pn.zone=_("moment().zone is deprecated, use moment().utcOffset instead. https://github.com/moment/moment/issues/1779",Xt);var In=Pn,Nn={sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},Rn={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"},zn="Invalid date",Ln="%d",An=/\d{1,2}/,Bn={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"},Fn=S.prototype;Fn._calendar=Nn,Fn.calendar=Di,Fn._longDateFormat=Rn,Fn.longDateFormat=Si,Fn._invalidDate=zn,Fn.invalidDate=Ci,Fn._ordinal=Ln,Fn.ordinal=Ti,Fn._ordinalParse=An,Fn.preparse=Ei,Fn.postformat=Ei,Fn._relativeTime=Bn,Fn.relativeTime=Pi,Fn.pastFuture=Ii,Fn.set=M,Fn.months=ot,Fn._months=Ko,Fn.monthsShort=nt,Fn._monthsShort=Jo,Fn.monthsParse=rt,Fn._monthsRegex=$o,Fn.monthsRegex=ct,Fn._monthsShortRegex=Qo,Fn.monthsShortRegex=lt,Fn.week=Ke,Fn._week=gn,Fn.firstDayOfYear=Qe,Fn.firstDayOfWeek=Je,Fn.weekdays=ii,Fn._weekdays=bn,Fn.weekdaysMin=ni,Fn._weekdaysMin=_n,Fn.weekdaysShort=oi,Fn._weekdaysShort=wn,Fn.weekdaysParse=ri,Fn._weekdaysRegex=xn,Fn.weekdaysRegex=li,Fn._weekdaysShortRegex=kn,Fn.weekdaysShortRegex=ci,Fn._weekdaysMinRegex=On,Fn.weekdaysMinRegex=ui,Fn.isPM=bi,Fn._meridiemParse=Mn,Fn.meridiem=wi,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.",R);var jn=Math.abs,Hn=Ji("ms"),Wn=Ji("s"),Yn=Ji("m"),Gn=Ji("h"),Vn=Ji("d"),Un=Ji("w"),qn=Ji("M"),Xn=Ji("y"),Zn=$i("milliseconds"),Kn=$i("seconds"),Jn=$i("minutes"),Qn=$i("hours"),$n=$i("days"),ts=$i("months"),es=$i("years"),is=Math.round,os={s:45,m:45,h:22,d:26,M:11},ns=Math.abs,ss=Ht.prototype;ss.abs=Hi,ss.add=Yi,ss.subtract=Gi,ss.as=Zi,ss.asMilliseconds=Hn,ss.asSeconds=Wn,ss.asMinutes=Yn,ss.asHours=Gn,ss.asDays=Vn,ss.asWeeks=Un,ss.asMonths=qn,ss.asYears=Xn,ss.valueOf=Ki,ss._bubble=Ui,ss.get=Qi,ss.milliseconds=Zn,ss.seconds=Kn,ss.minutes=Jn,ss.hours=Qn,ss.days=$n,ss.weeks=to,ss.months=ts,ss.years=es,ss.humanize=no,ss.toISOString=so,ss.toString=so,ss.toJSON=so,ss.locale=Ce,ss.localeData=Te,ss.toIsoString=_("toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)",so),ss.lang=vn,G("X",0,0,"unix"),G("x",0,0,"valueOf"),Z("x",No),Z("X",Lo),$("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.13.0",i(At),e.fn=In,e.min=Ft,e.max=jt,e.now=ln,e.utc=h,e.unix=Oi,e.months=Li,e.isDate=n,e.locale=P,e.invalid=u,e.duration=ne,e.isMoment=v,e.weekdays=Bi,e.parseZone=Mi,e.localeData=R,e.isDuration=Wt,e.monthsShort=Ai,e.weekdaysMin=ji,e.defineLocale=I,e.updateLocale=N,e.locales=z,e.weekdaysShort=Fi,e.normalizeUnits=A,e.relativeTimeThreshold=oo,e.prototype=In;var rs=e;return rs})}).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=R(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=L(e.deltaX,e.deltaY);var d=z(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=z(h,d,l);o=c.x,n=c.y,i=vt(c.x)>vt(c.y)?c.x:c.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:mt(i/e),y:mt(o/e)}}function z(t,e,i){return{x:e/t||0,y:i/t||0}}function L(t,e){return t===e?Rt:vt(t)>=vt(e)?0>t?zt:Lt: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?zt:Lt,i=s!=this.pX,o=Math.abs(t.deltaX)):(n=0===r?Rt: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.offsetWidth){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();t.arrows.to.enabled=-1!=r.indexOf("to"),t.arrows.middle.enabled=-1!=r.indexOf("middle"),t.arrows.from.enabled=-1!=r.indexOf("from")}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:{align:{string:i},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 L.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(z=T.NULL,R="";" "===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(z=T.DELIMITER);var i=N+s();if(E[i])return z=T.DELIMITER,R=i,n(),void n();if(E[N])return z=T.DELIMITER,R=N,void n();if(r(N)||"-"===N){for(R+=N,n();r(N);)R+=N,n();return"false"===R?R=!1:"true"===R?R=!0:isNaN(Number(R))||(R=Number(R)),void(z=T.IDENTIFIER)}if('"'===N){for(n();""!=N&&('"'!=N||'"'===N&&'"'===s());)R+=N,'"'===N&&n(),n();if('"'!=N)throw _('End of string " expected');return n(),void(z=T.IDENTIFIER)}for(z=T.UNKNOWN;""!=N;)R+=N,n();throw new SyntaxError('Syntax error in part "'+x(R,30)+'"')}function p(){var t={};if(o(),u(),"strict"===R&&(t.strict=!0,u()),"graph"!==R&&"digraph"!==R||(t.type=R,u()),z===T.IDENTIFIER&&(t.id=R,u()),"{"!=R)throw _("Angle bracket { expected");if(u(),f(t),"}"!=R)throw _("Angle bracket } expected");if(u(),""!==R)throw _("End of file expected");return u(),delete t.node,delete t.edge,delete t.graph,t}function f(t){for(;""!==R&&"}"!=R;)m(t),";"===R&&u()}function m(t){var e=v(t);if(e)return void b(t,e);var i=g(t);if(!i){if(z!=T.IDENTIFIER)throw _("Identifier expected");var o=R;if(u(),"="===R){if(u(),z!=T.IDENTIFIER)throw _("Identifier expected");t[o]=R,u()}else y(t,o)}}function v(t){var e=null;if("subgraph"===R&&(e={},e.type="subgraph",u(),z===T.IDENTIFIER&&(e.id=R,u())),"{"===R){if(u(),e||(e={}),e.parent=t,e.node=t.node,e.edge=t.edge,e.graph=t.graph,f(e),"}"!=R)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"===R?(u(),t.node=w(),"node"):"edge"===R?(u(),t.edge=w(),"edge"):"graph"===R?(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(;"->"===R||"--"===R;){var i,o=R;u();var n=v(t);if(n)i=n;else{if(z!=T.IDENTIFIER)throw _("Identifier or subgraph expected");i=R,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;"["===R;){for(u(),t={};""!==R&&"]"!=R;){if(z!=T.IDENTIFIER)throw _("Attribute name expected");var e=R;if(u(),"="!=R)throw _("Equal sign = expected");if(u(),z!=T.IDENTIFIER)throw _("Attribute value expected");var i=R;h(t,e,i),u(),","==R&&u()}if("]"!=R)throw _("Bracket ] expected");u()}return t}function _(t){return new SyntaxError(t+', got "'+x(R,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="",R="",z=T.NULL,L=/[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;a2&&void 0!==arguments[2]&&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;i3&&void 0!==arguments[3]&&arguments[3];if(Array.isArray(o))throw new TypeError("Arrays are not supported by deepExtend");for(var s=2;s3&&void 0!==arguments[3]&&arguments[3];if(Array.isArray(o))throw new TypeError("Arrays are not supported by deepExtend");for(var s in o)if(o.hasOwnProperty(s)&&t.indexOf(s)==-1)if(o[s]&&o[s].constructor===Object)void 0===i[s]&&(i[s]={}),i[s].constructor===Object?e.deepExtend(i[s],o[s]):null===o[s]&&void 0!==i[s]&&n===!0?delete i[s]:i[s]=o[s];else if(Array.isArray(o[s])){i[s]=[];for(var r=0;r=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(t.indexOf("rgba")!=-1)return t;if(t.indexOf("rgb")!=-1){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]&&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;r<=a&&s0)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 t<.5?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 t<.5?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 t<.5?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 t<.5?16*t*t*t*t*t:1+16*--t*t*t*t*t}},e.getScrollBarWidth=function(){var t=document.createElement("p");t.style.width="100%",t.style.height="200px";var e=document.createElement("div");e.style.position="absolute",e.style.top="0px",e.style.left="0px",e.style.visibility="hidden",e.style.width="200px",e.style.height="150px",e.style.overflow="hidden",e.appendChild(t),document.body.appendChild(e);var i=t.offsetWidth;e.style.overflow="scroll";var o=t.offsetWidth;return i==o&&(o=e.clientWidth),document.body.removeChild(e),i-o}},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 fo.apply(null,arguments)}function i(t){fo=t}function o(t){return t instanceof Array||"[object Array]"===Object.prototype.toString.call(t)}function n(t){return null!=t&&"[object Object]"===Object.prototype.toString.call(t)}function s(t){var e;for(e in t)return!1;return!0}function r(t){return t instanceof Date||"[object Date]"===Object.prototype.toString.call(t)}function a(t,e){var i,o=[];for(i=0;i0)for(i in vo)o=vo[i],n=e[o],m(n)||(t[o]=n);return t}function g(t){v(this,t),this._d=new Date(null!=t._d?t._d.getTime():NaN),go===!1&&(go=!0,e.updateOffset(this),go=!1)}function y(t){return t instanceof g||null!=t&&null!=t._isAMomentObject}function b(t){return t<0?Math.ceil(t)||0:Math.floor(t)}function _(t){var e=+t,i=0;return 0!==e&&isFinite(e)&&(i=b(e)),i}function w(t,e,i){var o,n=Math.min(t.length,e.length),s=Math.abs(t.length-e.length),r=0;for(o=0;o0?"future":"past"];return D(i)?i(e):i.replace(/%s/i,e)}function L(t,e){var i=t.toLowerCase();Co[i]=Co[i+"s"]=Co[e]=t}function z(t){return"string"==typeof t?Co[t]||Co[t.toLowerCase()]:void 0}function A(t){var e,i,o={};for(i in t)h(t,i)&&(e=z(i),e&&(o[e]=t[i]));return o}function B(t,e){To[t]=e}function j(t){var e=[];for(var i in t)e.push({unit:i,priority:To[i]});return e.sort(function(t,e){return t.priority-e.priority}),e}function F(t,i){return function(o){return null!=o?(W(this,t,o),e.updateOffset(this,i),this):H(this,t)}}function H(t,e){return t.isValid()?t._d["get"+(t._isUTC?"UTC":"")+e]():NaN}function W(t,e,i){t.isValid()&&t._d["set"+(t._isUTC?"UTC":"")+e](i)}function Y(t){return t=z(t),D(this[t])?this[t]():this}function G(t,e){if("object"==typeof t){t=A(t);for(var i=j(t),o=0;o=0;return(s?i?"+":"":"-")+Math.pow(10,Math.max(0,n)).toString().substr(1)+o}function U(t,e,i,o){var n=o;"string"==typeof o&&(n=function(){return this[o]()}),t&&(Io[t]=n),e&&(Io[e[0]]=function(){return V(n.apply(this,arguments),e[1],e[2])}),i&&(Io[i]=function(){return this.localeData().ordinal(n.apply(this,arguments),t)})}function q(t){return t.match(/\[[\s\S]/)?t.replace(/^\[|\]$/g,""):t.replace(/\\/g,"")}function X(t){var e,i,o=t.match(Eo);for(e=0,i=o.length;e=0&&Mo.test(t);)t=t.replace(Mo,i),Mo.lastIndex=0,o-=1;return t}function J(t,e,i){Ko[t]=D(e)?e:function(t,o){return t&&i?i:e}}function Q(t,e){return h(Ko,t)?Ko[t](e._strict,e._locale):new RegExp($(t))}function $(t){return tt(t.replace("\\","").replace(/\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g,function(t,e,i,o,n){return e||i||o||n}))}function tt(t){return t.replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&")}function et(t,e){var i,o=e;for("string"==typeof t&&(t=[t]),"number"==typeof e&&(o=function(t,i){i[e]=_(t)}),i=0;i=0&&isFinite(a.getFullYear())&&a.setFullYear(t),a}function bt(t){var e=new Date(Date.UTC.apply(null,arguments));return t<100&&t>=0&&isFinite(e.getUTCFullYear())&&e.setUTCFullYear(t),e}function _t(t,e,i){var o=7+e-i,n=(7+bt(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 d<=0?(s=t-1,r=mt(s)+d):d>mt(t)?(s=t+1,r=d-mt(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 r<1?(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=_t(t,e,i),n=_t(t+1,e,i);return(mt(t)-o+n)/7}function Ot(t){return xt(t,this._week.dow,this._week.doy).week}function Dt(){return this._week.dow}function St(){return this._week.doy}function Ct(t){var e=this.localeData().week(this);return null==t?e:this.add(7*(t-e),"d")}function Tt(t){var e=xt(this,1,4).week;return null==t?e:this.add(7*(t-e),"d")}function Et(t,e){return"string"!=typeof t?t:isNaN(t)?(t=e.weekdaysParse(t),"number"==typeof t?t:null):parseInt(t,10)}function Mt(t,e){return"string"==typeof t?e.weekdaysParse(t)%7||7:isNaN(t)?null:t}function Pt(t,e){return t?o(this._weekdays)?this._weekdays[t.day()]:this._weekdays[this._weekdays.isFormat.test(e)?"format":"standalone"][t.day()]:this._weekdays}function It(t){return t?this._weekdaysShort[t.day()]:this._weekdaysShort}function Nt(t){return t?this._weekdaysMin[t.day()]:this._weekdaysMin}function Rt(t,e,i){var o,n,s,r=t.toLocaleLowerCase();if(!this._weekdaysParse)for(this._weekdaysParse=[],this._shortWeekdaysParse=[],this._minWeekdaysParse=[],o=0;o<7;++o)s=l([2e3,1]).day(o),this._minWeekdaysParse[o]=this.weekdaysMin(s,"").toLocaleLowerCase(),this._shortWeekdaysParse[o]=this.weekdaysShort(s,"").toLocaleLowerCase(),this._weekdaysParse[o]=this.weekdays(s,"").toLocaleLowerCase();return i?"dddd"===e?(n=_o.call(this._weekdaysParse,r),n!==-1?n:null):"ddd"===e?(n=_o.call(this._shortWeekdaysParse,r),n!==-1?n:null):(n=_o.call(this._minWeekdaysParse,r),n!==-1?n:null):"dddd"===e?(n=_o.call(this._weekdaysParse,r),n!==-1?n:(n=_o.call(this._shortWeekdaysParse,r),n!==-1?n:(n=_o.call(this._minWeekdaysParse,r),n!==-1?n:null))):"ddd"===e?(n=_o.call(this._shortWeekdaysParse,r),n!==-1?n:(n=_o.call(this._weekdaysParse,r),n!==-1?n:(n=_o.call(this._minWeekdaysParse,r),n!==-1?n:null))):(n=_o.call(this._minWeekdaysParse,r),n!==-1?n:(n=_o.call(this._weekdaysParse,r),n!==-1?n:(n=_o.call(this._shortWeekdaysParse,r),n!==-1?n:null)))}function Lt(t,e,i){var o,n,s;if(this._weekdaysParseExact)return Rt.call(this,t,e,i);for(this._weekdaysParse||(this._weekdaysParse=[],this._minWeekdaysParse=[],this._shortWeekdaysParse=[],this._fullWeekdaysParse=[]),o=0;o<7;o++){if(n=l([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 zt(t){if(!this.isValid())return null!=t?this:NaN;var e=this._isUTC?this._d.getUTCDay():this._d.getDay();return null!=t?(t=Et(t,this.localeData()),this.add(t-e,"d")):e}function At(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 Bt(t){if(!this.isValid())return null!=t?this:NaN;if(null!=t){var e=Mt(t,this.localeData());return this.day(this.day()%7?e:e-7)}return this.day()||7}function jt(t){return this._weekdaysParseExact?(h(this,"_weekdaysRegex")||Wt.call(this),t?this._weekdaysStrictRegex:this._weekdaysRegex):(h(this,"_weekdaysRegex")||(this._weekdaysRegex=yn),this._weekdaysStrictRegex&&t?this._weekdaysStrictRegex:this._weekdaysRegex)}function Ft(t){return this._weekdaysParseExact?(h(this,"_weekdaysRegex")||Wt.call(this),t?this._weekdaysShortStrictRegex:this._weekdaysShortRegex):(h(this,"_weekdaysShortRegex")||(this._weekdaysShortRegex=bn),this._weekdaysShortStrictRegex&&t?this._weekdaysShortStrictRegex:this._weekdaysShortRegex)}function Ht(t){return this._weekdaysParseExact?(h(this,"_weekdaysRegex")||Wt.call(this),t?this._weekdaysMinStrictRegex:this._weekdaysMinRegex):(h(this,"_weekdaysMinRegex")||(this._weekdaysMinRegex=_n),this._weekdaysMinStrictRegex&&t?this._weekdaysMinStrictRegex:this._weekdaysMinRegex)}function Wt(){function t(t,e){return e.length-t.length}var e,i,o,n,s,r=[],a=[],h=[],d=[];for(e=0;e<7;e++)i=l([2e3,1]).day(e),o=this.weekdaysMin(i,""),n=this.weekdaysShort(i,""),s=this.weekdays(i,""),r.push(o),a.push(n),h.push(s),d.push(o),d.push(n),d.push(s);for(r.sort(t),a.sort(t),h.sort(t),d.sort(t),e=0;e<7;e++)a[e]=tt(a[e]),h[e]=tt(h[e]),d[e]=tt(d[e]);this._weekdaysRegex=new RegExp("^("+d.join("|")+")","i"),this._weekdaysShortRegex=this._weekdaysRegex,this._weekdaysMinRegex=this._weekdaysRegex,this._weekdaysStrictRegex=new RegExp("^("+h.join("|")+")","i"),this._weekdaysShortStrictRegex=new RegExp("^("+a.join("|")+")","i"),this._weekdaysMinStrictRegex=new RegExp("^("+r.join("|")+")","i")}function Yt(){return this.hours()%12||12}function Gt(){return this.hours()||24}function Vt(t,e){U(t,0,0,function(){return this.localeData().meridiem(this.hours(),this.minutes(),e)})}function Ut(t,e){return e._meridiemParse}function qt(t){return"p"===(t+"").toLowerCase().charAt(0)}function Xt(t,e,i){return t>11?i?"pm":"PM":i?"am":"AM"}function Zt(t){return t?t.toLowerCase().replace("_","-"):t}function Kt(t){for(var e,i,o,n,s=0;s0;){if(o=Jt(n.slice(0,e).join("-")))return o;if(i&&i.length>=e&&w(n,i,!0)>=e-1)break;e--}s++}return null}function Jt(e){var i=null;if(!Dn[e]&&"undefined"!=typeof t&&t&&t.exports)try{i=wn._abbr,!function(){var t=new Error('Cannot find module "./locale"');throw t.code="MODULE_NOT_FOUND",t}(),Qt(i)}catch(t){}return Dn[e]}function Qt(t,e){var i;return t&&(i=m(e)?ee(t):$t(t,e),i&&(wn=i)),wn._abbr}function $t(t,e){if(null!==e){var i=On;return e.abbr=t,null!=Dn[t]?(O("defineLocaleOverride","use moment.updateLocale(localeName, config) to change an existing locale. moment.defineLocale(localeName, config) should only be used for creating a new locale See http://momentjs.com/guides/#/warnings/define-locale/ for more info."),i=Dn[t]._config):null!=e.parentLocale&&(null!=Dn[e.parentLocale]?i=Dn[e.parentLocale]._config:O("parentLocaleUndefined","specified parentLocale is not defined yet. See http://momentjs.com/guides/#/warnings/parent-locale/")),Dn[t]=new T(C(i,e)),Qt(t),Dn[t]}return delete Dn[t],null}function te(t,e){if(null!=e){var i,o=On;null!=Dn[t]&&(o=Dn[t]._config),e=C(o,e),i=new T(e),i.parentLocale=Dn[t],Dn[t]=i,Qt(t)}else null!=Dn[t]&&(null!=Dn[t].parentLocale?Dn[t]=Dn[t].parentLocale:null!=Dn[t]&&delete Dn[t]);return Dn[t]}function ee(t){var e;if(t&&t._locale&&t._locale._abbr&&(t=t._locale._abbr),!t)return wn;if(!o(t)){if(e=Jt(t))return e;t=[t]}return Kt(t)}function ie(){return bo(Dn)}function oe(t){var e,i=t._a;return i&&u(t).overflow===-2&&(e=i[$o]<0||i[$o]>11?$o:i[tn]<1||i[tn]>nt(i[Qo],i[$o])?tn:i[en]<0||i[en]>24||24===i[en]&&(0!==i[on]||0!==i[nn]||0!==i[sn])?en:i[on]<0||i[on]>59?on:i[nn]<0||i[nn]>59?nn:i[sn]<0||i[sn]>999?sn:-1,u(t)._overflowDayOfYear&&(etn)&&(e=tn),u(t)._overflowWeeks&&e===-1&&(e=rn),u(t)._overflowWeekday&&e===-1&&(e=an),u(t).overflow=e),t}function ne(t){var e,i,o,n,s,r,a=t._i,h=Sn.exec(a)||Cn.exec(a);if(h){for(u(t).iso=!0,e=0,i=En.length;emt(n)&&(u(t)._overflowDayOfYear=!0),i=bt(n,0,t._dayOfYear),t._a[$o]=i.getUTCMonth(),t._a[tn]=i.getUTCDate()),e=0;e<3&&null==t._a[e];++e)t._a[e]=s[e]=o[e];for(;e<7;e++)t._a[e]=s[e]=null==t._a[e]?2===e?1:0:t._a[e];24===t._a[en]&&0===t._a[on]&&0===t._a[nn]&&0===t._a[sn]&&(t._nextDay=!0,t._a[en]=0),t._d=(t._useUTC?bt:yt).apply(null,s),null!=t._tzm&&t._d.setUTCMinutes(t._d.getUTCMinutes()-t._tzm),t._nextDay&&(t._a[en]=24)}}function de(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=re(e.GG,t._a[Qo],xt(ye(),1,4).year),o=re(e.W,1),n=re(e.E,1),(n<1||n>7)&&(h=!0)):(s=t._locale._week.dow,r=t._locale._week.doy,i=re(e.gg,t._a[Qo],xt(ye(),s,r).year),o=re(e.w,1),null!=e.d?(n=e.d,(n<0||n>6)&&(h=!0)):null!=e.e?(n=e.e+s,(e.e<0||e.e>6)&&(h=!0)):n=s),o<1||o>kt(i,s,r)?u(t)._overflowWeeks=!0:null!=h?u(t)._overflowWeekday=!0:(a=wt(i,o,n,s,r),t._a[Qo]=a.year,t._dayOfYear=a.dayOfYear)}function le(t){if(t._f===e.ISO_8601)return void ne(t);t._a=[],u(t).empty=!0;var i,o,n,s,r,a=""+t._i,h=a.length,d=0;for(n=K(t._f,t._locale).match(Eo)||[],i=0;i0&&u(t).unusedInput.push(r),a=a.slice(a.indexOf(o)+o.length),d+=o.length),Io[s]?(o?u(t).empty=!1:u(t).unusedTokens.push(s),ot(s,o,t)):t._strict&&!o&&u(t).unusedTokens.push(s);u(t).charsLeftOver=h-d,a.length>0&&u(t).unusedInput.push(a),t._a[en]<=12&&u(t).bigHour===!0&&t._a[en]>0&&(u(t).bigHour=void 0),u(t).parsedDateParts=t._a.slice(0),u(t).meridiem=t._meridiem,t._a[en]=ce(t._locale,t._a[en],t._meridiem),he(t),oe(t)}function ce(t,e,i){var o;return null==i?e:null!=t.meridiemHour?t.meridiemHour(e,i):null!=t.isPM?(o=t.isPM(i),o&&e<12&&(e+=12),o||12!==e||(e=0),e):e}function ue(t){var e,i,o,n,s;if(0===t._f.length)return u(t).invalidFormat=!0,void(t._d=new Date(NaN));for(n=0;nthis.clone().month(0).utcOffset()||this.utcOffset()>this.clone().month(5).utcOffset()}function ze(){if(!m(this._isDSTShifted))return this._isDSTShifted;var t={};if(v(t,this),t=me(t),t._a){var e=t._isUTC?l(t._a):ye(t._a);this._isDSTShifted=this.isValid()&&w(t._a,e.toArray())>0}else this._isDSTShifted=!1;return this._isDSTShifted}function Ae(){return!!this.isValid()&&!this._isUTC}function Be(){return!!this.isValid()&&this._isUTC}function je(){return!!this.isValid()&&(this._isUTC&&0===this._offset)}function Fe(t,e){var i,o,n,s=t,r=null;return ke(t)?s={ms:t._milliseconds,d:t._days,M:t._months}:"number"==typeof t?(s={},e?s[e]=t:s.milliseconds=t):(r=zn.exec(t))?(i="-"===r[1]?-1:1,s={y:0,d:_(r[tn])*i,h:_(r[en])*i,m:_(r[on])*i,s:_(r[nn])*i,ms:_(Oe(1e3*r[sn]))*i}):(r=An.exec(t))?(i="-"===r[1]?-1:1,s={y:He(r[2],i),M:He(r[3],i),w:He(r[4],i),d:He(r[5],i),h:He(r[6],i),m:He(r[7],i),s:He(r[8],i)}):null==s?s={}:"object"==typeof s&&("from"in s||"to"in s)&&(n=Ye(ye(s.from),ye(s.to)),s={},s.ms=n.milliseconds,s.M=n.months),o=new xe(s),ke(t)&&h(t,"_locale")&&(o._locale=t._locale),o}function He(t,e){var i=t&&parseFloat(t.replace(",","."));return(isNaN(i)?0:i)*e}function We(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 Ye(t,e){var i;return t.isValid()&&e.isValid()?(e=Ce(e,t),t.isBefore(e)?i=We(t,e):(i=We(e,t),i.milliseconds=-i.milliseconds,i.months=-i.months),i):{milliseconds:0,months:0}}function Ge(t,e){return function(i,o){var n,s;return null===o||isNaN(+o)||(O(e,"moment()."+e+"(period, number) is deprecated. Please use moment()."+e+"(number, period). See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info."),s=i,i=o,o=s),i="string"==typeof i?+i:i,n=Fe(i,o),Ve(this,n,t),this}}function Ve(t,i,o,n){var s=i._milliseconds,r=Oe(i._days),a=Oe(i._months);t.isValid()&&(n=null==n||n,s&&t._d.setTime(t._d.valueOf()+s*o),r&&W(t,"Date",H(t,"Date")+r*o),a&&dt(t,H(t,"Month")+a*o),n&&e.updateOffset(t,r||a))}function Ue(t,e){var i=t.diff(e,"days",!0);return i<-6?"sameElse":i<-1?"lastWeek":i<0?"lastDay":i<1?"sameDay":i<2?"nextDay":i<7?"nextWeek":"sameElse"}function qe(t,i){var o=t||ye(),n=Ce(o,this).startOf("day"),s=e.calendarFormat(this,n)||"sameElse",r=i&&(D(i[s])?i[s].call(this,o):i[s]);return this.format(r||this.localeData().calendar(s,this,ye(o)))}function Xe(){return new g(this)}function Ze(t,e){var i=y(t)?t:ye(t);return!(!this.isValid()||!i.isValid())&&(e=z(m(e)?"millisecond":e),"millisecond"===e?this.valueOf()>i.valueOf():i.valueOf()s&&(e=s),Mi.call(this,t,e,i,o,n))}function Mi(t,e,i,o,n){var s=wt(t,e,i,o,n),r=bt(s.year,0,s.dayOfYear);return this.year(r.getUTCFullYear()),this.month(r.getUTCMonth()),this.date(r.getUTCDate()),this}function Pi(t){return null==t?Math.ceil((this.month()+1)/3):this.month(3*(t-1)+this.month()%3)}function Ii(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 Ni(t,e){e[sn]=_(1e3*("0."+t))}function Ri(){return this._isUTC?"UTC":""}function Li(){return this._isUTC?"Coordinated Universal Time":""}function zi(t){return ye(1e3*t)}function Ai(){return ye.apply(null,arguments).parseZone()}function Bi(t){return t}function ji(t,e,i,o){var n=ee(),s=l().set(o,e);return n[i](s,t)}function Fi(t,e,i){if("number"==typeof t&&(e=t,t=void 0),t=t||"",null!=e)return ji(t,e,i,"month");var o,n=[];for(o=0;o<12;o++)n[o]=ji(t,o,i,"month");return n}function Hi(t,e,i,o){"boolean"==typeof t?("number"==typeof e&&(i=e,e=void 0),e=e||""):(e=t,i=e,t=!1,"number"==typeof e&&(i=e,e=void 0),e=e||"");var n=ee(),s=t?n._week.dow:0;if(null!=i)return ji(e,(i+s)%7,o,"day");var r,a=[];for(r=0;r<7;r++)a[r]=ji(e,(r+s)%7,o,"day");return a}function Wi(t,e){return Fi(t,e,"months")}function Yi(t,e){return Fi(t,e,"monthsShort")}function Gi(t,e,i){return Hi(t,e,i,"weekdays")}function Vi(t,e,i){return Hi(t,e,i,"weekdaysShort")}function Ui(t,e,i){return Hi(t,e,i,"weekdaysMin")}function qi(){var t=this._data;return this._milliseconds=Zn(this._milliseconds),this._days=Zn(this._days),this._months=Zn(this._months),t.milliseconds=Zn(t.milliseconds),t.seconds=Zn(t.seconds),t.minutes=Zn(t.minutes),t.hours=Zn(t.hours),t.months=Zn(t.months),t.years=Zn(t.years),this}function Xi(t,e,i,o){var n=Fe(e,i);return t._milliseconds+=o*n._milliseconds,t._days+=o*n._days,t._months+=o*n._months,t._bubble()}function Zi(t,e){return Xi(this,t,e,1)}function Ki(t,e){return Xi(this,t,e,-1)}function Ji(t){return t<0?Math.floor(t):Math.ceil(t)}function Qi(){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||s<=0&&r<=0&&a<=0||(s+=864e5*Ji(to(a)+r),r=0,a=0),h.milliseconds=s%1e3,t=b(s/1e3),h.seconds=t%60,e=b(t/60),h.minutes=e%60,i=b(e/60),h.hours=i%24,r+=b(i/24),n=b($i(r)),a+=n,r-=Ji(to(n)),o=b(a/12),a%=12,h.days=r,h.months=a,h.years=o,this}function $i(t){return 4800*t/146097}function to(t){return 146097*t/4800}function eo(t){var e,i,o=this._milliseconds;if(t=z(t),"month"===t||"year"===t)return e=this._days+o/864e5,i=this._months+$i(e),"month"===t?i:i/12;switch(e=this._days+Math.round(to(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 io(){return this._milliseconds+864e5*this._days+this._months%12*2592e6+31536e6*_(this._months/12)}function oo(t){return function(){return this.as(t)}}function no(t){return t=z(t),this[t+"s"]()}function so(t){return function(){return this._data[t]}}function ro(){return b(this.days()/7)}function ao(t,e,i,o,n){return n.relativeTime(e||1,!!i,t,o)}function ho(t,e,i){var o=Fe(t).abs(),n=cs(o.as("s")),s=cs(o.as("m")),r=cs(o.as("h")),a=cs(o.as("d")),h=cs(o.as("M")),d=cs(o.as("y")),l=n0,l[4]=i,ao.apply(null,l)}function lo(t){return void 0===t?cs:"function"==typeof t&&(cs=t,!0)}function co(t,e){return void 0!==us[t]&&(void 0===e?us[t]:(us[t]=e,!0))}function uo(t){var e=this.localeData(),i=ho(this,!t,e);return t&&(i=e.pastFuture(+this,i)),e.postformat(i)}function po(){var t,e,i,o=ps(this._milliseconds)/1e3,n=ps(this._days),s=ps(this._months);t=b(o/60),e=b(t/60),o%=60,t%=60,i=b(s/12),s%=12;var r=i,a=s,h=n,d=e,l=t,c=o,u=this.asSeconds();return u?(u<0?"-":"")+"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 fo,mo;mo=Array.prototype.some?Array.prototype.some:function(t){for(var e=Object(this),i=e.length>>>0,o=0;o68?1900:2e3)};var pn=F("FullYear",!0);U("w",["ww",2],"wo","week"),U("W",["WW",2],"Wo","isoWeek"),L("week","w"),L("isoWeek","W"),B("week",5),B("isoWeek",5),J("w",Bo),J("ww",Bo,Ro),J("W",Bo),J("WW",Bo,Ro),it(["w","ww","W","WW"],function(t,e,i,o){e[o.substr(0,1)]=_(t)});var fn={dow:0,doy:6};U("d",0,"do","day"),U("dd",0,0,function(t){return this.localeData().weekdaysMin(this,t)}),U("ddd",0,0,function(t){return this.localeData().weekdaysShort(this,t)}),U("dddd",0,0,function(t){return this.localeData().weekdays(this,t)}),U("e",0,0,"weekday"),U("E",0,0,"isoWeekday"),L("day","d"),L("weekday","e"),L("isoWeekday","E"),B("day",11),B("weekday",11),B("isoWeekday",11),J("d",Bo),J("e",Bo),J("E",Bo),J("dd",function(t,e){return e.weekdaysMinRegex(t)}),J("ddd",function(t,e){return e.weekdaysShortRegex(t)}),J("dddd",function(t,e){return e.weekdaysRegex(t)}),it(["dd","ddd","dddd"],function(t,e,i,o){var n=i._locale.weekdaysParse(t,o,i._strict);null!=n?e.d=n:u(i).invalidWeekday=t}),it(["d","e","E"],function(t,e,i,o){e[o]=_(t)});var mn="Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),vn="Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),gn="Su_Mo_Tu_We_Th_Fr_Sa".split("_"),yn=Zo,bn=Zo,_n=Zo;U("H",["HH",2],0,"hour"),U("h",["hh",2],0,Yt),U("k",["kk",2],0,Gt),U("hmm",0,0,function(){return""+Yt.apply(this)+V(this.minutes(),2)}),U("hmmss",0,0,function(){return""+Yt.apply(this)+V(this.minutes(),2)+V(this.seconds(),2)}),U("Hmm",0,0,function(){return""+this.hours()+V(this.minutes(),2)}),U("Hmmss",0,0,function(){return""+this.hours()+V(this.minutes(),2)+V(this.seconds(),2)}),Vt("a",!0),Vt("A",!1),L("hour","h"),B("hour",13),J("a",Ut),J("A",Ut),J("H",Bo),J("h",Bo),J("HH",Bo,Ro),J("hh",Bo,Ro),J("hmm",jo),J("hmmss",Fo),J("Hmm",jo),J("Hmmss",Fo),et(["H","HH"],en),et(["a","A"],function(t,e,i){i._isPm=i._locale.isPM(t),i._meridiem=t}),et(["h","hh"],function(t,e,i){e[en]=_(t),u(i).bigHour=!0}),et("hmm",function(t,e,i){var o=t.length-2;e[en]=_(t.substr(0,o)),e[on]=_(t.substr(o)),u(i).bigHour=!0}),et("hmmss",function(t,e,i){var o=t.length-4,n=t.length-2;e[en]=_(t.substr(0,o)),e[on]=_(t.substr(o,2)),e[nn]=_(t.substr(n)),u(i).bigHour=!0}),et("Hmm",function(t,e,i){var o=t.length-2;e[en]=_(t.substr(0,o)),e[on]=_(t.substr(o))}),et("Hmmss",function(t,e,i){var o=t.length-4,n=t.length-2;e[en]=_(t.substr(0,o)),e[on]=_(t.substr(o,2)),e[nn]=_(t.substr(n))});var wn,xn=/[ap]\.?m?\.?/i,kn=F("Hours",!0),On={calendar:wo,longDateFormat:xo,invalidDate:ko,ordinal:Oo,ordinalParse:Do,relativeTime:So,months:dn,monthsShort:ln,week:fn,weekdays:mn,weekdaysMin:gn,weekdaysShort:vn,meridiemParse:xn},Dn={},Sn=/^\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)?)?/,Cn=/^\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)?)?/,Tn=/Z|[+-]\d\d(?::?\d\d)?/,En=[["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}/]],Mn=[["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/]],Pn=/^\/?Date\((\-?\d+)/i;e.createFromInputFallback=k("value provided is not in a recognized ISO format. moment construction falls back to js Date(), which is not reliable across all browsers and versions. Non ISO date formats are discouraged and will be removed in an upcoming major release. Please refer to http://momentjs.com/guides/#/warnings/js-date/ for more info.",function(t){t._d=new Date(t._i+(t._useUTC?" UTC":""))}),e.ISO_8601=function(){};var In=k("moment().min is deprecated, use moment.max instead. http://momentjs.com/guides/#/warnings/min-max/",function(){var t=ye.apply(null,arguments);return this.isValid()&&t.isValid()?tthis?this:t:f()}),Rn=function(){return Date.now?Date.now():+new Date};De("Z",":"),De("ZZ",""),J("Z",qo),J("ZZ",qo),et(["Z","ZZ"],function(t,e,i){i._useUTC=!0,i._tzm=Se(qo,t)});var Ln=/([\+\-]|\d\d)/gi;e.updateOffset=function(){};var zn=/^(\-)?(?:(\d*)[. ])?(\d+)\:(\d+)(?:\:(\d+)(\.\d*)?)?$/,An=/^(-)?P(?:(-?[0-9,.]*)Y)?(?:(-?[0-9,.]*)M)?(?:(-?[0-9,.]*)W)?(?:(-?[0-9,.]*)D)?(?:T(?:(-?[0-9,.]*)H)?(?:(-?[0-9,.]*)M)?(?:(-?[0-9,.]*)S)?)?$/;Fe.fn=xe.prototype;var Bn=Ge(1,"add"),jn=Ge(-1,"subtract");e.defaultFormat="YYYY-MM-DDTHH:mm:ssZ",e.defaultFormatUtc="YYYY-MM-DDTHH:mm:ss[Z]";var Fn=k("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)});U(0,["gg",2],0,function(){return this.weekYear()%100}),U(0,["GG",2],0,function(){return this.isoWeekYear()%100}),Oi("gggg","weekYear"),Oi("ggggg","weekYear"),Oi("GGGG","isoWeekYear"),Oi("GGGGG","isoWeekYear"),L("weekYear","gg"),L("isoWeekYear","GG"),B("weekYear",1),B("isoWeekYear",1),J("G",Vo),J("g",Vo),J("GG",Bo,Ro),J("gg",Bo,Ro),J("GGGG",Wo,zo),J("gggg",Wo,zo),J("GGGGG",Yo,Ao),J("ggggg",Yo,Ao),it(["gggg","ggggg","GGGG","GGGGG"],function(t,e,i,o){e[o.substr(0,2)]=_(t)}),it(["gg","GG"],function(t,i,o,n){i[n]=e.parseTwoDigitYear(t)}),U("Q",0,"Qo","quarter"),L("quarter","Q"),B("quarter",7),J("Q",No),et("Q",function(t,e){e[$o]=3*(_(t)-1)}),U("D",["DD",2],"Do","date"),L("date","D"),B("date",9),J("D",Bo),J("DD",Bo,Ro),J("Do",function(t,e){return t?e._ordinalParse:e._ordinalParseLenient}),et(["D","DD"],tn),et("Do",function(t,e){e[tn]=_(t.match(Bo)[0],10)});var Hn=F("Date",!0);U("DDD",["DDDD",3],"DDDo","dayOfYear"),L("dayOfYear","DDD"),B("dayOfYear",4),J("DDD",Ho),J("DDDD",Lo),et(["DDD","DDDD"],function(t,e,i){i._dayOfYear=_(t)}),U("m",["mm",2],0,"minute"),L("minute","m"),B("minute",14),J("m",Bo),J("mm",Bo,Ro),et(["m","mm"],on);var Wn=F("Minutes",!1);U("s",["ss",2],0,"second"),L("second","s"),B("second",15),J("s",Bo),J("ss",Bo,Ro),et(["s","ss"],nn);var Yn=F("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()}),L("millisecond","ms"),B("millisecond",16),J("S",Ho,No),J("SS",Ho,Ro),J("SSS",Ho,Lo);var Gn;for(Gn="SSSS";Gn.length<=9;Gn+="S")J(Gn,Go);for(Gn="S";Gn.length<=9;Gn+="S")et(Gn,Ni);var Vn=F("Milliseconds",!1);U("z",0,0,"zoneAbbr"),U("zz",0,0,"zoneName");var Un=g.prototype;Un.add=Bn,Un.calendar=qe,Un.clone=Xe,Un.diff=ei,Un.endOf=pi,Un.format=si,Un.from=ri,Un.fromNow=ai,Un.to=hi,Un.toNow=di,Un.get=Y,Un.invalidAt=xi,Un.isAfter=Ze,Un.isBefore=Ke,Un.isBetween=Je,Un.isSame=Qe,Un.isSameOrAfter=$e,Un.isSameOrBefore=ti,Un.isValid=_i,Un.lang=Fn,Un.locale=li,Un.localeData=ci,Un.max=Nn,Un.min=In,Un.parsingFlags=wi,Un.set=G,Un.startOf=ui,Un.subtract=jn,Un.toArray=gi,Un.toObject=yi,Un.toDate=vi,Un.toISOString=ni,Un.toJSON=bi,Un.toString=oi,Un.unix=mi,Un.valueOf=fi,Un.creationData=ki,Un.year=pn,Un.isLeapYear=gt,Un.weekYear=Di,Un.isoWeekYear=Si,Un.quarter=Un.quarters=Pi,Un.month=lt,Un.daysInMonth=ct,Un.week=Un.weeks=Ct,Un.isoWeek=Un.isoWeeks=Tt,Un.weeksInYear=Ti,Un.isoWeeksInYear=Ci,Un.date=Hn,Un.day=Un.days=zt,Un.weekday=At,Un.isoWeekday=Bt,Un.dayOfYear=Ii,Un.hour=Un.hours=kn,Un.minute=Un.minutes=Wn,Un.second=Un.seconds=Yn,Un.millisecond=Un.milliseconds=Vn,Un.utcOffset=Ee,Un.utc=Pe,Un.local=Ie,Un.parseZone=Ne,Un.hasAlignedHourOffset=Re,Un.isDST=Le,Un.isLocal=Ae,Un.isUtcOffset=Be,Un.isUtc=je,Un.isUTC=je,Un.zoneAbbr=Ri,Un.zoneName=Li,Un.dates=k("dates accessor is deprecated. Use date instead.",Hn),Un.months=k("months accessor is deprecated. Use month instead",lt),Un.years=k("years accessor is deprecated. Use year instead",pn),Un.zone=k("moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/",Me),Un.isDSTShifted=k("isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information",ze);var qn=Un,Xn=T.prototype;Xn.calendar=E,Xn.longDateFormat=M,Xn.invalidDate=P,Xn.ordinal=I,Xn.preparse=Bi,Xn.postformat=Bi,Xn.relativeTime=N,Xn.pastFuture=R,Xn.set=S,Xn.months=st,Xn.monthsShort=rt,Xn.monthsParse=ht,Xn.monthsRegex=pt,Xn.monthsShortRegex=ut,Xn.week=Ot,Xn.firstDayOfYear=St,Xn.firstDayOfWeek=Dt,Xn.weekdays=Pt,Xn.weekdaysMin=Nt,Xn.weekdaysShort=It,Xn.weekdaysParse=Lt,Xn.weekdaysRegex=jt,Xn.weekdaysShortRegex=Ft,Xn.weekdaysMinRegex=Ht,Xn.isPM=qt,Xn.meridiem=Xt,Qt("en",{ordinalParse:/\d{1,2}(th|st|nd|rd)/,ordinal:function(t){var e=t%10,i=1===_(t%100/10)?"th":1===e?"st":2===e?"nd":3===e?"rd":"th";return t+i}}),e.lang=k("moment.lang is deprecated. Use moment.locale instead.",Qt),e.langData=k("moment.langData is deprecated. Use moment.localeData instead.",ee);var Zn=Math.abs,Kn=oo("ms"),Jn=oo("s"),Qn=oo("m"),$n=oo("h"),ts=oo("d"),es=oo("w"),is=oo("M"),os=oo("y"),ns=so("milliseconds"),ss=so("seconds"),rs=so("minutes"),as=so("hours"),hs=so("days"),ds=so("months"),ls=so("years"),cs=Math.round,us={s:45,m:45,h:22,d:26,M:11},ps=Math.abs,fs=xe.prototype;fs.abs=qi,fs.add=Zi,fs.subtract=Ki,fs.as=eo,fs.asMilliseconds=Kn,fs.asSeconds=Jn,fs.asMinutes=Qn,fs.asHours=$n,fs.asDays=ts,fs.asWeeks=es,fs.asMonths=is,fs.asYears=os,fs.valueOf=io,fs._bubble=Qi,fs.get=no,fs.milliseconds=ns,fs.seconds=ss,fs.minutes=rs,fs.hours=as,fs.days=hs,fs.weeks=ro,fs.months=ds,fs.years=ls,fs.humanize=uo,fs.toISOString=po,fs.toString=po,fs.toJSON=po,fs.locale=li,fs.localeData=ci,fs.toIsoString=k("toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)",po),fs.lang=Fn,U("X",0,0,"unix"),U("x",0,0,"valueOf"),J("x",Vo),J("X",Xo),et("X",function(t,e,i){i._d=new Date(1e3*parseFloat(t,10))}),et("x",function(t,e,i){i._d=new Date(_(t))}),e.version="2.15.2",i(ye),e.fn=qn,e.min=_e,e.max=we,e.now=Rn,e.utc=l,e.unix=zi,e.months=Wi,e.isDate=r,e.locale=Qt,e.invalid=f,e.duration=Fe,e.isMoment=y,e.weekdays=Gi,e.parseZone=Ai,e.localeData=ee,e.isDuration=ke,e.monthsShort=Yi,e.weekdaysMin=Ui,e.defineLocale=$t,e.updateLocale=te,e.locales=ie,e.weekdaysShort=Vi,e.normalizeUnits=z,e.relativeTimeRounding=lo,e.relativeTimeThreshold=co,e.calendarFormat=Ue,e.prototype=qn;var ms=e;return ms})}).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){n<16&&(e[o+n++]=c[t])});n<16;)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(d<0&&void 0===t.clockseq&&(r=r+1&16383),(d<0||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;p<6;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;a<16;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;e<16;e++)0===(3&e)&&(t=4294967296*Math.random()),d[e]=t>>>((3&e)<<3)&255;return d}}for(var l=[],c={},u=0;u<256;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(22),e.keycharm=i(25)},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){n<0&&(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;on?1:or)&&(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;ethis.max&&this.flush(),clearTimeout(this._timeout),this.queue.length>0&&"number"==typeof this.delay){var t=this;this._timeout=setTimeout(function(){t.flush()},this.delay)}},i.prototype.flush=function(){for(;this._queue.length>0;){var t=this._queue.shift();t.fn.apply(t.context||t.fn,t.args||[])}},t.exports=i},function(t,e,i){function o(t,e){this._data=null,this._ids={},this.length=0,this._options=e||{},this._fieldId="id",this._subscribers={};var i=this;this.listener=function(){i._onEvent.apply(i,arguments)},this.setData(t)}var n=i(1),s=i(9);o.prototype.setData=function(t){var e,i,o,n,s;if(this._data){for(this._data.off&&this._data.off("*",this.listener),e=this._data.getIds({filter:this._options&&this._options.filter}),s=[],o=0,n=e.length;o0&&(h[n-1].pointNext=r),h.push(r);return h},o.prototype.create=function(){for(;this.containerElement.hasChildNodes();)this.containerElement.removeChild(this.containerElement.firstChild);this.frame=document.createElement("div"),this.frame.style.position="relative",this.frame.style.overflow="hidden",this.frame.canvas=document.createElement("canvas"),this.frame.canvas.style.position="relative",this.frame.appendChild(this.frame.canvas);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.frame.filter=document.createElement("div"),this.frame.filter.style.position="absolute",this.frame.filter.style.bottom="0px",this.frame.filter.style.left="0px",this.frame.filter.style.width="100%",this.frame.appendChild(this.frame.filter);var e=this,i=function(t){e._onMouseDown(t)},o=function(t){e._onTouchStart(t)},n=function(t){e._onWheel(t)},s=function(t){e._onTooltip(t)};d.addEventListener(this.frame.canvas,"keydown",onkeydown),d.addEventListener(this.frame.canvas,"mousedown",i),d.addEventListener(this.frame.canvas,"touchstart",o),d.addEventListener(this.frame.canvas,"mousewheel",n),d.addEventListener(this.frame.canvas,"mousemove",s),this.containerElement.appendChild(this.frame)},o.prototype.setSize=function(t,e){this.frame.style.width=t,this.frame.style.height=e,this._resizeCanvas()},o.prototype._resizeCanvas=function(){this.frame.canvas.style.width="100%",this.frame.canvas.style.height="100%",this.frame.canvas.width=this.frame.canvas.clientWidth,this.frame.canvas.height=this.frame.canvas.clientHeight,this.frame.filter.style.width=this.frame.canvas.clientWidth-20+"px"},o.prototype.animationStart=function(){if(!this.frame.filter||!this.frame.filter.slider)throw new Error("No animation available");this.frame.filter.slider.play()},o.prototype.animationStop=function(){this.frame.filter&&this.frame.filter.slider&&this.frame.filter.slider.stop()},o.prototype._resizeCenter=function(){"%"===this.xCenter.charAt(this.xCenter.length-1)?this.currentXCenter=parseFloat(this.xCenter)/100*this.frame.canvas.clientWidth:this.currentXCenter=parseFloat(this.xCenter),"%"===this.yCenter.charAt(this.yCenter.length-1)?this.currentYCenter=parseFloat(this.yCenter)/100*(this.frame.canvas.clientHeight-this.frame.filter.clientHeight):this.currentYCenter=parseFloat(this.yCenter)},o.prototype.getCameraPosition=function(){var t=this.camera.getArmRotation();return t.distance=this.camera.getArmLength(),t},o.prototype._readData=function(t){this._dataInitialize(t,this.style),this.dataFilter?this.dataPoints=this.dataFilter._getDataPoints():this.dataPoints=this._getDataPoints(this.dataTable),this._redrawFilter()},o.prototype.setData=function(t){this._readData(t),this.redraw(),this.animationAutoStart&&this.dataFilter&&this.animationStart()},o.prototype.setOptions=function(t){this.animationStop(),v.setOptions(t,this),this.setPointDrawingMethod(),this.setSize(this.width,this.height),this.dataTable&&this.setData(this.dataTable),this.animationAutoStart&&this.dataFilter&&this.animationStart()},o.prototype.setPointDrawingMethod=function(){var t=void 0;switch(this.style){case o.STYLE.BAR:t=o.prototype._redrawBarGraphPoint;break;case o.STYLE.BARCOLOR:t=o.prototype._redrawBarColorGraphPoint;break;case o.STYLE.BARSIZE:t=o.prototype._redrawBarSizeGraphPoint;break;case o.STYLE.DOT:t=o.prototype._redrawDotGraphPoint;break;case o.STYLE.DOTLINE:t=o.prototype._redrawDotLineGraphPoint;break;case o.STYLE.DOTCOLOR:t=o.prototype._redrawDotColorGraphPoint;break;case o.STYLE.DOTSIZE:t=o.prototype._redrawDotSizeGraphPoint;break;case o.STYLE.SURFACE:t=o.prototype._redrawSurfaceGraphPoint;break;case o.STYLE.GRID:t=o.prototype._redrawGridGraphPoint;break;case o.STYLE.LINE:t=o.prototype._redrawLineGraphPoint;break;default:throw new Error("Can not determine point drawing method for graph style '"+this.style+"'")}this._pointDrawingMethod=t},o.prototype.redraw=function(){if(void 0===this.dataPoints)throw new Error("Graph data not initialized");this._resizeCanvas(),this._resizeCenter(),this._redrawSlider(),this._redrawClear(),this._redrawAxis(),this._redrawDataGraph(),this._redrawInfo(),this._redrawLegend()},o.prototype._getContext=function(){var t=this.frame.canvas,e=t.getContext("2d");return e.lineJoin="round",e.lineCap="round",e},o.prototype._redrawClear=function(){var t=this.frame.canvas,e=t.getContext("2d");e.clearRect(0,0,t.width,t.height)},o.prototype._dotSize=function(){return this.frame.clientWidth*this.dotSizeRatio},o.prototype._getLegendWidth=function(){var t;if(this.style===o.STYLE.DOTSIZE){var e=this._dotSize();t=e/2+2*e}else t=this.style===o.STYLE.BARSIZE?this.xBarWidth:20;return t},o.prototype._redrawLegend=function(){if(this.showLegend===!0&&this.style!==o.STYLE.LINE&&this.style!==o.STYLE.BARSIZE){var t=this.style===o.STYLE.BARSIZE||this.style===o.STYLE.DOTSIZE,e=this.style===o.STYLE.DOTSIZE||this.style===o.STYLE.DOTCOLOR||this.style===o.STYLE.BARCOLOR,i=Math.max(.25*this.frame.clientHeight,100),n=this.margin,s=this._getLegendWidth(),r=this.frame.clientWidth-this.margin,a=r-s,h=n+i,d=this._getContext();if(d.lineWidth=1,d.font="14px arial",t===!1){var l,u=0,p=i;for(l=u;l0?(t.textAlign="center",t.textBaseline="top",s.y+=n):Math.sin(2*o)<0?(t.textAlign="right",t.textBaseline="middle"):(t.textAlign="left",t.textBaseline="middle"),t.fillStyle=this.axisColor,t.fillText(i,s.x,s.y)},o.prototype.drawAxisLabelY=function(t,e,i,o,n){void 0===n&&(n=0);var s=this._convert3Dto2D(e);Math.cos(2*o)<0?(t.textAlign="center",t.textBaseline="top",s.y+=n):Math.sin(2*o)>0?(t.textAlign="right",t.textBaseline="middle"):(t.textAlign="left",t.textBaseline="middle"),t.fillStyle=this.axisColor,t.fillText(i,s.x,s.y)},o.prototype.drawAxisLabelZ=function(t,e,i,o){void 0===o&&(o=0);var n=this._convert3Dto2D(e);t.textAlign="right",t.textBaseline="middle",t.fillStyle=this.axisColor,t.fillText(i,n.x-o,n.y)},o.prototype._line3d=function(t,e,i,o){var n=this._convert3Dto2D(e),s=this._convert3Dto2D(i);this._line(t,n,s,o)},o.prototype._redrawAxis=function(){var t,e,i,o,n,s,r,a,h,d,u,p=this._getContext();p.font=24/this.camera.getArmLength()+"px arial";var m=.025/this.scale.x,v=.025/this.scale.y,g=5/this.camera.getArmLength(),y=this.camera.getArmRotation().horizontal,b=new c(Math.cos(y),Math.sin(y)),_=this.xRange,w=this.yRange,x=this.zRange;for(p.lineWidth=1,o=void 0===this.defaultXStep,i=new f(_.min,_.max,this.xStep,o),i.start(!0);!i.end();){var k=i.getCurrent();this.showGrid?(t=new l(k,w.min,x.min),e=new l(k,w.max,x.min),this._line3d(p,t,e,this.gridColor)):(t=new l(k,w.min,x.min),e=new l(k,w.min+m,x.min),this._line3d(p,t,e,this.axisColor),t=new l(k,w.max,x.min),e=new l(k,w.max-m,x.min),this._line3d(p,t,e,this.axisColor)),r=b.x>0?w.min:w.max;var O=new l(k,r,x.min),D=" "+this.xValueLabel(k)+" ";this.drawAxisLabelX(p,O,D,y,g),i.next()}for(p.lineWidth=1,o=void 0===this.defaultYStep,i=new f(w.min,w.max,this.yStep,o),i.start(!0);!i.end();){var S=i.getCurrent();this.showGrid?(t=new l(_.min,S,x.min),e=new l(_.max,S,x.min),this._line3d(p,t,e,this.gridColor)):(t=new l(_.min,S,x.min),e=new l(_.min+v,S,x.min),this._line3d(p,t,e,this.axisColor),t=new l(_.max,S,x.min),e=new l(_.max-v,S,x.min),this._line3d(p,t,e,this.axisColor)),s=b.y>0?_.min:_.max,O=new l(s,S,x.min);var D=" "+this.yValueLabel(S)+" ";this.drawAxisLabelY(p,O,D,y,g),i.next()}for(p.lineWidth=1,o=void 0===this.defaultZStep,i=new f(x.min,x.max,this.zStep,o), +i.start(!0),s=b.x>0?_.min:_.max,r=b.y<0?w.min:w.max;!i.end();){var C=i.getCurrent(),T=new l(s,r,C),E=this._convert3Dto2D(T);e=new c(E.x-g,E.y),this._line(p,E,e,this.axisColor);var D=this.zValueLabel(C)+" ";this.drawAxisLabelZ(p,T,D,5),i.next()}p.lineWidth=1,t=new l(s,r,x.min),e=new l(s,r,x.max),this._line3d(p,t,e,this.axisColor);var M,P;p.lineWidth=1,M=new l(_.min,w.min,x.min),P=new l(_.max,w.min,x.min),this._line3d(p,M,P,this.axisColor),M=new l(_.min,w.max,x.min),P=new l(_.max,w.max,x.min),this._line3d(p,M,P,this.axisColor),p.lineWidth=1,t=new l(_.min,w.min,x.min),e=new l(_.min,w.max,x.min),this._line3d(p,t,e,this.axisColor),t=new l(_.max,w.min,x.min),e=new l(_.max,w.max,x.min),this._line3d(p,t,e,this.axisColor);var I=this.xLabel;I.length>0&&(u=.1/this.scale.y,s=_.center()/2,r=b.x>0?w.min-u:w.max+u,n=new l(s,r,x.min),this.drawAxisLabelX(p,n,I,y));var N=this.yLabel;N.length>0&&(d=.1/this.scale.x,s=b.y>0?_.min-d:_.max+d,r=w.center()/2,n=new l(s,r,x.min),this.drawAxisLabelY(p,n,N,y));var R=this.zLabel;R.length>0&&(h=30,s=b.x>0?_.min:_.max,r=b.y<0?w.min:w.max,a=x.center()/2,n=new l(s,r,a),this.drawAxisLabelZ(p,n,R,h))},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._getStrokeWidth=function(t){return void 0!==t?this.showPerspective?1/-t.trans.z*this.dataColor.strokeWidth:-(this.eye.z/this.camera.getArmLength())*this.dataColor.strokeWidth:this.dataColor.strokeWidth},o.prototype._redrawBar=function(t,e,i,o,n,s){var r,a,h=this,d=e.point,c=this.zRange.min,u=[{point:new l(d.x-i,d.y-o,d.z)},{point:new l(d.x+i,d.y-o,d.z)},{point:new l(d.x+i,d.y+o,d.z)},{point:new l(d.x-i,d.y+o,d.z)}],p=[{point:new l(d.x-i,d.y-o,c)},{point:new l(d.x+i,d.y-o,c)},{point:new l(d.x+i,d.y+o,c)},{point:new l(d.x-i,d.y+o,c)}];u.forEach(function(t){t.screen=h._convert3Dto2D(t.point)}),p.forEach(function(t){t.screen=h._convert3Dto2D(t.point)});var f=[{corners:u,center:l.avg(p[0].point,p[2].point)},{corners:[u[0],u[1],p[1],p[0]],center:l.avg(p[1].point,p[0].point)},{corners:[u[1],u[2],p[2],p[1]],center:l.avg(p[2].point,p[1].point)},{corners:[u[2],u[3],p[3],p[2]],center:l.avg(p[3].point,p[2].point)},{corners:[u[3],u[0],p[0],p[3]],center:l.avg(p[0].point,p[3].point)}];for(e.surfaces=f,r=0;r0}if(a){var p,f=(e.point.z+i.point.z+o.point.z+n.point.z)/4,m=240*(1-(f-this.zRange.min)*this.scale.z/this.verticalRatio),v=1;this.showShadow?(p=Math.min(1+c.x/u/2,1),s=this._hsv2rgb(m,v,p),r=s):(p=1,s=this._hsv2rgb(m,v,p),r=this.axisColor)}else s="gray",r=this.axisColor;t.lineWidth=this._getStrokeWidth(e);var g=[e,i,n,o];this._polygon(t,g,s,r)}},o.prototype._drawGridLine=function(t,e,i){if(void 0!==e&&void 0!==i){var o=(e.point.z+i.point.z)/2,n=240*(1-(o-this.zRange.min)*this.scale.z/this.verticalRatio);t.lineWidth=2*this._getStrokeWidth(e),t.strokeStyle=this._hsv2rgb(n,1,1),this._line(t,e.screen,i.screen)}},o.prototype._redrawGridGraphPoint=function(t,e){this._drawGridLine(t,e,e.pointRight),this._drawGridLine(t,e,e.pointTop)},o.prototype._redrawLineGraphPoint=function(t,e){void 0!==e.pointNext&&(t.lineWidth=this._getStrokeWidth(e),t.strokeStyle=this.dataColor.stroke,this._line(t,e.screen,e.pointNext.screen))},o.prototype._redrawDataGraph=function(){var t,e=this._getContext();if(!(void 0===this.dataPoints||this.dataPoints.length<=0))for(this._calcTranslations(this.dataPoints),t=0;t0?1:t<0?-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 c(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 u=d[l],p=u.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;i"+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)}}},o.prototype.setCameraPosition=function(t){v.setCameraPosition(t,this),this.redraw()},t.exports=o},function(t,e){function i(t){if(t)return o(t)}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;n.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:t0&&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(){if(void 0!==this.index)return this.values[this.index]},o.prototype.getValues=function(){return this.values},o.prototype.getValue=function(t){if(t>=this.values.length)throw new 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 new 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(!(tthis.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.isNumeric=function(t){return!isNaN(parseFloat(t))&&isFinite(t)},i.prototype.setRange=function(t,e,i,o){if(!this.isNumeric(t))throw new Error("Parameter 'start' is not numeric; value: "+t);if(!this.isNumeric(e))throw new Error("Parameter 'end' is not numeric; value: "+t);if(!this.isNumeric(i))throw new Error("Parameter 'step' is not numeric; value: "+t);this._start=t?t:0,this._end=e?e:0,this.setStep(i,o)},i.prototype.setStep=function(t,e){void 0===t||t<=0||(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),s<=0&&(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(t){void 0===t&&(t=!1),this._current=this._start-this._start%this._step,t&&this.getCurrent()this._end},t.exports=i},function(t,e){function i(){this.min=void 0,this.max=void 0}i.prototype.adjust=function(t){void 0!==t&&((void 0===this.min||this.min>t)&&(this.min=t),(void 0===this.max||this.maxi)throw new Error("Passed expansion value makes range invalid");this.min=e,this.max=i}},i.prototype.range=function(){return this.max-this.min},i.prototype.center=function(){return(this.min+this.max)/2},t.exports=i},function(t,e,i){function o(t){for(var e in t)if(t.hasOwnProperty(e))return!1;return!0}function n(t){return void 0===t||""===t?t:t.charAt(0).toUpperCase()+t.slice(1)}function s(t,e){return void 0===t||""===t?e:t+n(e)}function r(t,e,i,o){var n,r;for(var a in i)n=i[a],r=s(o,n),e[r]=t[n]}function a(t,e,i,o){var n,r;for(var a in i)n=i[a],void 0!==t[n]&&(r=s(o,n),e[r]=t[n])}function h(t,e){if(void 0===t||o(t))throw new Error("No DEFAULTS passed");if(void 0===e)throw new Error("No dst passed");D=t,r(t,e,k),r(t,e,O,"default"),l(t,e),e.margin=10,e.showGrayBottom=!1,e.showTooltip=!1,e.eye=new _(0,0,-1)}function d(t,e){if(void 0!==t){if(void 0===e)throw new Error("No dst passed");if(void 0===D||o(D))throw new Error("DEFAULTS not set for module Settings");a(t,e,k),a(t,e,O,"default"),l(t,e)}}function l(t,e){void 0!==t.backgroundColor&&m(t.backgroundColor,e),v(t.dataColor,e),f(t.style,e),c(t.showLegend,e),g(t.cameraPosition,e),void 0!==t.tooltip&&(e.showTooltip=t.tooltip)}function c(t,e){if(void 0===t){var i=void 0===D.showLegend;if(i){var o=e.style===w.DOTCOLOR||e.style===w.DOTSIZE;e.showLegend=o}}else e.showLegend=t}function u(t){var e=x[t];return void 0===e?-1:e}function p(t){var e=!1;for(var i in w)if(w[i]===t){e=!0;break}return e}function f(t,e){if(void 0!==t){var i;if("string"==typeof t){if(i=u(t),i===-1)throw new Error("Style '"+t+"' is invalid")}else{if(!p(t))throw new Error("Style '"+t+"' is invalid");i=t}e.style=i}}function m(t,e){var i="white",o="gray",n=1;if("string"==typeof t)i=t,o="none",n=0;else{if("object"!==("undefined"==typeof t?"undefined":y(t)))throw new Error("Unsupported type of backgroundColor");void 0!==t.fill&&(i=t.fill),void 0!==t.stroke&&(o=t.stroke),void 0!==t.strokeWidth&&(n=t.strokeWidth)}e.frame.style.backgroundColor=i,e.frame.style.borderColor=o,e.frame.style.borderWidth=n+"px",e.frame.style.borderStyle="solid"}function v(t,e){void 0!==t&&(void 0===e.dataColor&&(e.dataColor={}),"string"==typeof t?(e.dataColor.fill=t,e.dataColor.stroke=t):(t.fill&&(e.dataColor.fill=t.fill),t.stroke&&(e.dataColor.stroke=t.stroke),void 0!==t.strokeWidth&&(e.dataColor.strokeWidth=t.strokeWidth)))}function g(t,e){var i=t;void 0!==i&&(void 0===e.camera&&(e.camera=new b),e.camera.setArmRotation(i.horizontal,i.vertical),e.camera.setArmLength(i.distance))}var y="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},b=i(16),_=i(14),w={BAR:0,BARCOLOR:1,BARSIZE:2,DOT:3,DOTLINE:4,DOTCOLOR:5,DOTSIZE:6,GRID:7,LINE:8,SURFACE:9},x={dot:w.DOT,"dot-line":w.DOTLINE,"dot-color":w.DOTCOLOR,"dot-size":w.DOTSIZE,line:w.LINE,grid:w.GRID,surface:w.SURFACE,bar:w.BAR,"bar-color":w.BARCOLOR,"bar-size":w.BARSIZE},k=["width","height","filterLabel","legendLabel","xLabel","yLabel","zLabel","xValueLabel","yValueLabel","zValueLabel","showGrid","showPerspective","showShadow","keepAspectRatio","verticalRatio","dotSizeRatio","showAnimationControls","animationInterval","animationPreload","animationAutoStart","axisColor","gridColor","xCenter","yCenter"],O=["xBarWidth","yBarWidth","valueMin","valueMax","xMin","xMax","xStep","yMin","yMax","yStep","zMin","zMax","zStep"],D=void 0;t.exports.STYLE=w,t.exports.setDefaults=h,t.exports.setOptions=d,t.exports.setCameraPosition=g},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);e!==-1&&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)}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&&mt(o,i)}function p(t,e){return function(){return t.apply(e,arguments)}}function f(t,e){return typeof t==yt?t.apply(e?e[0]||a:a,e):t}function m(t,e){return t===a?e:t}function v(t,e,i){l(_(e),function(e){t.addEventListener(e,i,!1)})}function g(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 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=R(o);e.timeStamp=wt(),e.deltaTime=e.timeStamp-s.timeStamp,e.angle=B(a,h),e.distance=A(a,h),P(i,e),e.offsetDirection=z(e.deltaX,e.deltaY);var d=L(e.deltaTime,e.deltaX,e.deltaY);e.overallVelocityX=d.x,e.overallVelocityY=d.y,e.overallVelocity=_t(d.x)>_t(d.y)?d.x:d.y,e.scale=r?F(r.pointers,o):1,e.rotation=r?j(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!==Rt&&s.eventType!==zt||(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!=At&&(h>Nt||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=_t(c.x)>_t(c.y)?c.x:c.y,s=z(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;i=_t(e)?t<0?jt:Ft:e<0?Ht:Wt}function A(t,e,i){i||(i=Ut);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=Ut);var o=e[i[0]]-t[i[0]],n=e[i[1]]-t[i[1]];return 180*Math.atan2(n,o)/Math.PI}function j(t,e){return B(e[1],e[0],qt)+B(t[1],t[0],qt)}function F(t,e){return A(e[0],e[1],qt)/A(t[0],t[1],qt)}function H(){this.evEl=Zt,this.evWin=Kt,this.pressed=!1,C.apply(this,arguments)}function W(){this.evEl=$t,this.evWin=te,C.apply(this,arguments),this.store=this.manager.session.pointerEvents=[]}function Y(){this.evTarget=ie,this.evWin=oe,this.started=!1,C.apply(this,arguments)}function G(t,e){var i=x(t.touches),o=x(t.changedTouches);return e&(zt|At)&&(i=k(i.concat(o),"identifier",!0)),[i,o]}function V(){this.evTarget=se,this.targetIds={},C.apply(this,arguments)}function U(t,e){var i=x(t.touches),o=this.targetIds;if(e&(Rt|Lt)&&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===Rt)for(n=0;n-1&&o.splice(t,1)};setTimeout(n,re)}}function K(t){for(var e=t.srcEvent.clientX,i=t.srcEvent.clientY,o=0;o-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;o<_e&&e(i.options.event+et(o)),e(i.options.event),t.additionalEvent&&e(t.additionalEvent),o>=_e&&e(i.options.event+et(o))},tryEmit:function(t){return this.canEmit()?this.emit(t):void(this.state=ke)},canEmit:function(){for(var t=0;te.threshold&&n&e.direction},attrTest:function(t){return nt.prototype.attrTest.call(this,t)&&(this.state&ye||!(this.state&ye)&&this.directionTest(t))},emit:function(t){this.pX=t.deltaX,this.pY=t.deltaY;var e=it(t.direction);e&&(t.additionalEvent=this.options.event+e),this._super.emit.call(this,t)}}),u(rt,nt,{defaults:{event:"pinch",threshold:0,pointers:2},getTouchAction:function(){return[pe]},attrTest:function(t){return this._super.attrTest.call(this,t)&&(Math.abs(t.scale-1)>this.options.threshold||this.state&ye)},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(at,tt,{defaults:{event:"press",pointers:1,time:251,threshold:9},getTouchAction:function(){return[ce]},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&(zt|At)&&!n)this.reset();else if(t.eventType&Rt)this.reset(),this._timer=h(function(){this.state=we,this.tryEmit()},e.time,this);else if(t.eventType&zt)return we;return ke},reset:function(){clearTimeout(this._timer)},emit:function(t){this.state===we&&(t&&t.eventType&zt?this.manager.emit(this.options.event+"up",t):(this._input.timeStamp=wt(),this.manager.emit(this.options.event,this._input)))}}),u(ht,nt,{defaults:{event:"rotate",threshold:0,pointers:2},getTouchAction:function(){return[pe]},attrTest:function(t){return this._super.attrTest.call(this,t)&&(Math.abs(t.rotation)>this.options.threshold||this.state&ye)}}),u(dt,nt,{defaults:{event:"swipe",threshold:10,velocity:.3,direction:Yt|Gt,pointers:1},getTouchAction:function(){return st.prototype.getTouchAction.call(this)},attrTest:function(t){var e,i=this.options.direction;return i&(Yt|Gt)?e=t.overallVelocity:i&Yt?e=t.overallVelocityX:i&Gt&&(e=t.overallVelocityY),this._super.attrTest.call(this,t)&&i&t.offsetDirection&&t.distance>this.options.threshold&&t.maxPointers==this.options.pointers&&_t(e)>this.options.velocity&&t.eventType&zt},emit:function(t){var e=it(t.offsetDirection);e&&this.manager.emit(this.options.event+e,t),this.manager.emit(this.options.event,t)}}),u(lt,tt,{defaults:{event:"tap",pointers:1,taps:1,interval:300,time:250,threshold:9,posThreshold:10},getTouchAction:function(){return[ue]},process:function(t){var e=this.options,i=t.pointers.length===e.pointers,o=t.distances)&&(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;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,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,r<=0&&(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;do&&(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||oe)&&(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&&t!==Symbol.prototype?"symbol":typeof t},r=function(){function t(t,e){for(var i=0;i3&&void 0!==arguments[3]?arguments[3]:1;n(this,t),this.parent=e,this.changedOptions=[],this.container=i,this.allowCreation=!1,this.options={},this.initialized=!1,this.popupCounter=0,this.defaultOptions={enabled:!1,filter:!0,container:void 0,showButton:!0},d.extend(this.options,this.defaultOptions),this.configureOptions=o,this.moduleOptions={},this.domElements=[],this.popupDiv={},this.popupLimit=5,this.popupHistory={},this.colorPicker=new h.default(s),this.wrapper=void 0}return r(t,[{key:"setOptions",value:function(t){if(void 0!==t){this.popupHistory={},this._removePopup();var e=!0;"string"==typeof t?this.options.filter=t:t instanceof Array?this.options.filter=t.join():"object"===("undefined"==typeof t?"undefined":s(t))?(void 0!==t.container&&(this.options.container=t.container),void 0!==t.filter&&(this.options.filter=t.filter),void 0!==t.showButton&&(this.options.showButton=t.showButton),void 0!==t.enabled&&(e=t.enabled)):"boolean"==typeof t?(this.options.filter=!0,e=t):"function"==typeof t&&(this.options.filter=t,e=!0),this.options.filter===!1&&(e=!1),this.options.enabled=e}this._clean()}},{key:"setModuleOptions",value:function(t){this.moduleOptions=t,this.options.enabled===!0&&(this._clean(),void 0!==this.options.container&&(this.container=this.options.container),this._create())}},{key:"_create",value:function(){var t=this;this._clean(),this.changedOptions=[];var e=this.options.filter,i=0,o=!1;for(var n in this.configureOptions)this.configureOptions.hasOwnProperty(n)&&(this.allowCreation=!1,o=!1,"function"==typeof e?(o=e(n,[]),o=o||this._handleObject(this.configureOptions[n],[n],!0)):e!==!0&&e.indexOf(n)===-1||(o=!0),o!==!1&&(this.allowCreation=!0,i>0&&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;r2&&void 0!==arguments[2]&&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&&t.indexOf(e)!==-1&&(n=t.indexOf(e));for(var s=0;ss&&1!==s&&(a.max=Math.ceil(e*l),d=a.max,h="range increased"),a.value=e}else a.value=o;var c=document.createElement("input");c.className="vis-configuration vis-config-rangeinput",c.value=a.value;var u=this;a.onchange=function(){c.value=this.value,u._update(Number(this.value),i)},a.oninput=function(){c.value=this.value};var p=this._makeLabel(i[i.length-1],i),f=this._makeItem(i,p,a,c);""!==h&&this.popupHistory[f]!==d&&(this.popupHistory[f]=d,this._setupPopup(h,f))}},{key:"_setupPopup",value:function(t,e){var i=this;if(this.initialized===!0&&this.allowCreation===!0&&this.popupCounter1&&void 0!==arguments[1]?arguments[1]:[],i=arguments.length>2&&void 0!==arguments[2]&&arguments[2],o=!1,n=this.options.filter,s=!1;for(var r in t)if(t.hasOwnProperty(r)){o=!0;var a=t[r],h=d.copyAndExtendArray(e,r);if("function"==typeof n&&(o=n(r,e),o===!1&&!(a instanceof Array)&&"string"!=typeof a&&"boolean"!=typeof a&&a instanceof Object&&(this.allowCreation=!1,o=this._handleObject(a,h,!0),this.allowCreation=i===!1)),o!==!1){s=!0;var l=this._getValue(h);if(a instanceof Array)this._handleArray(a,l,h);else if("string"==typeof a)this._makeTextInput(a,l,h);else if("boolean"==typeof a)this._makeCheckbox(a,l,h);else if(a instanceof Object){var c=!0;if(e.indexOf("physics")!==-1&&this.moduleOptions.physics.solver!==r&&(c=!1),c===!0)if(void 0!==a.enabled){var u=d.copyAndExtendArray(h,"enabled"),p=this._getValue(u);if(p===!0){var f=this._makeLabel(r,h,!0);this._makeItem(h,f),s=this._handleObject(a,h)||s}else this._makeCheckbox(a,p,h)}else{var m=this._makeLabel(r,h,!0);this._makeItem(h,m),s=this._handleObject(a,h)||s}}else console.error("dont know how to handle",a,r,h)}}return s}},{key:"_handleArray",value:function(t,e,i){"string"==typeof t[0]&&"color"===t[0]?(this._makeColorField(t,e,i),t[1]!==e&&this.changedOptions.push({path:i,value:e})):"string"==typeof t[0]?(this._makeDropdown(t,e,i),t[0]!==e&&this.changedOptions.push({path:i,value:e})):"number"==typeof t[0]&&(this._makeRange(t,e,i),t[0]!==e&&this.changedOptions.push({path:i,value:Number(e)}))}},{key:"_update",value:function(t,e){var i=this._constructOptions(t,e);this.parent.body&&this.parent.body.emitter&&this.parent.body.emitter.emit&&this.parent.body.emitter.emit("configChange",i),this.initialized=!0,this.parent.setOptions(i)}},{key:"_constructOptions",value:function(t,e){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},o=i;t="true"===t||t,t="false"!==t&&t;for(var n=0;nvar options = "+JSON.stringify(t,null,2)+""}},{key:"getOptions",value:function(){for(var t={},e=0;e0&&void 0!==arguments[0]?arguments[0]:1;o(this,t),this.pixelRatio=e,this.generated=!1,this.centerCoordinates={x:144.5,y:144.5},this.r=289*.49,this.color={r:255,g:255,b:255,a:1},this.hueCircle=void 0,this.initialColor={r:255,g:255,b:255,a:1},this.previousColor=void 0,this.applied=!1,this.updateCallback=function(){},this.closeCallback=function(){},this._create()}return n(t,[{key:"insertTo",value:function(t){void 0!==this.hammer&&(this.hammer.destroy(),this.hammer=void 0),this.container=t,this.container.appendChild(this.frame),this._bindHammer(),this._setSize()}},{key:"setUpdateCallback",value:function(t){if("function"!=typeof t)throw new Error("Function attempted to set as colorPicker update callback is not a function.");this.updateCallback=t}},{key:"setCloseCallback",value:function(t){if("function"!=typeof t)throw new Error("Function attempted to set as colorPicker closing callback is not a function.");this.closeCallback=t}},{key:"_isColorString",value:function(t){var e={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("string"==typeof t)return e[t]}},{key:"setColor",value:function(t){var e=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];if("none"!==t){var i=void 0,o=this._isColorString(t);if(void 0!==o&&(t=o),a.isString(t)===!0){if(a.isValidRGB(t)===!0){var n=t.substr(4).substr(0,t.length-5).split(",");i={r:n[0],g:n[1],b:n[2],a:1}}else if(a.isValidRGBA(t)===!0){var s=t.substr(5).substr(0,t.length-6).split(",");i={r:s[0],g:s[1],b:s[2],a:s[3]}}else if(a.isValidHex(t)===!0){var r=a.hexToRGB(t);i={r:r.r,g:r.g,b:r.b,a:1}}}else if(t instanceof Object&&void 0!==t.r&&void 0!==t.g&&void 0!==t.b){var h=void 0!==t.a?t.a:"1.0";i={r:t.r,g:t.g,b:t.b,a:h}}if(void 0===i)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(t));this._setColor(i,e)}}},{key:"show",value:function(){void 0!==this.closeCallback&&(this.closeCallback(),this.closeCallback=void 0),this.applied=!1,this.frame.style.display="block",this._generateHueCircle()}},{key:"_hide",value:function(){var t=this,e=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];e===!0&&(this.previousColor=a.extend({},this.color)),this.applied===!0&&this.updateCallback(this.initialColor),this.frame.style.display="none",setTimeout(function(){void 0!==t.closeCallback&&(t.closeCallback(),t.closeCallback=void 0)},0)}},{key:"_save",value:function(){this.updateCallback(this.color),this.applied=!1,this._hide()}},{key:"_apply",value:function(){this.applied=!0,this.updateCallback(this.color),this._updatePicker(this.color)}},{key:"_loadLast",value:function(){void 0!==this.previousColor?this.setColor(this.previousColor,!1):alert("There is no last color to load...")}},{key:"_setColor",value:function(t){var e=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];e===!0&&(this.initialColor=a.extend({},t)),this.color=t;var i=a.RGBToHSV(t.r,t.g,t.b),o=2*Math.PI,n=this.r*i.s,s=this.centerCoordinates.x+n*Math.sin(o*i.h),r=this.centerCoordinates.y+n*Math.cos(o*i.h);this.colorPickerSelector.style.left=s-.5*this.colorPickerSelector.clientWidth+"px",this.colorPickerSelector.style.top=r-.5*this.colorPickerSelector.clientHeight+"px",this._updatePicker(t)}},{key:"_setOpacity",value:function(t){this.color.a=t/100,this._updatePicker(this.color)}},{key:"_setBrightness",value:function(t){var e=a.RGBToHSV(this.color.r,this.color.g,this.color.b);e.v=t/100;var i=a.HSVToRGB(e.h,e.s,e.v);i.a=this.color.a,this.color=i,this._updatePicker()}},{key:"_updatePicker",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.color,e=a.RGBToHSV(t.r,t.g,t.b),i=this.colorPickerCanvas.getContext("2d");void 0===this.pixelRation&&(this.pixelRatio=(window.devicePixelRatio||1)/(i.webkitBackingStorePixelRatio||i.mozBackingStorePixelRatio||i.msBackingStorePixelRatio||i.oBackingStorePixelRatio||i.backingStorePixelRatio||1)),i.setTransform(this.pixelRatio,0,0,this.pixelRatio,0,0);var o=this.colorPickerCanvas.clientWidth,n=this.colorPickerCanvas.clientHeight;i.clearRect(0,0,o,n),i.putImageData(this.hueCircle,0,0),i.fillStyle="rgba(0,0,0,"+(1-e.v)+")",i.circle(this.centerCoordinates.x,this.centerCoordinates.y,this.r),i.fill(),this.brightnessRange.value=100*e.v,this.opacityRange.value=100*t.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+")"}},{key:"_setSize",value:function(){this.colorPickerCanvas.style.width="100%",this.colorPickerCanvas.style.height="100%",this.colorPickerCanvas.width=289*this.pixelRatio,this.colorPickerCanvas.height=289*this.pixelRatio}},{key:"_create",value:function(){if(this.frame=document.createElement("div"),this.frame.className="vis-color-picker",this.colorPickerDiv=document.createElement("div"),this.colorPickerSelector=document.createElement("div"),this.colorPickerSelector.className="vis-selector",this.colorPickerDiv.appendChild(this.colorPickerSelector),this.colorPickerCanvas=document.createElement("canvas"),this.colorPickerDiv.appendChild(this.colorPickerCanvas),this.colorPickerCanvas.getContext){var t=this.colorPickerCanvas.getContext("2d");this.pixelRatio=(window.devicePixelRatio||1)/(t.webkitBackingStorePixelRatio||t.mozBackingStorePixelRatio||t.msBackingStorePixelRatio||t.oBackingStorePixelRatio||t.backingStorePixelRatio||1),this.colorPickerCanvas.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.colorPickerCanvas.appendChild(e)}this.colorPickerDiv.className="vis-color",this.opacityDiv=document.createElement("div"),this.opacityDiv.className="vis-opacity",this.brightnessDiv=document.createElement("div"),this.brightnessDiv.className="vis-brightness",this.arrowDiv=document.createElement("div"),this.arrowDiv.className="vis-arrow",this.opacityRange=document.createElement("input");try{this.opacityRange.type="range",this.opacityRange.min="0",this.opacityRange.max="100"}catch(t){}this.opacityRange.value="100",this.opacityRange.className="vis-range",this.brightnessRange=document.createElement("input");try{this.brightnessRange.type="range",this.brightnessRange.min="0",this.brightnessRange.max="100"}catch(t){}this.brightnessRange.value="100",this.brightnessRange.className="vis-range",this.opacityDiv.appendChild(this.opacityRange),this.brightnessDiv.appendChild(this.brightnessRange);var i=this;this.opacityRange.onchange=function(){i._setOpacity(this.value)},this.opacityRange.oninput=function(){i._setOpacity(this.value)},this.brightnessRange.onchange=function(){i._setBrightness(this.value)},this.brightnessRange.oninput=function(){i._setBrightness(this.value)},this.brightnessLabel=document.createElement("div"),this.brightnessLabel.className="vis-label vis-brightness",this.brightnessLabel.innerHTML="brightness:",this.opacityLabel=document.createElement("div"),this.opacityLabel.className="vis-label vis-opacity",this.opacityLabel.innerHTML="opacity:",this.newColorDiv=document.createElement("div"),this.newColorDiv.className="vis-new-color",this.newColorDiv.innerHTML="new",this.initialColorDiv=document.createElement("div"),this.initialColorDiv.className="vis-initial-color",this.initialColorDiv.innerHTML="initial",this.cancelButton=document.createElement("div"),this.cancelButton.className="vis-button vis-cancel",this.cancelButton.innerHTML="cancel",this.cancelButton.onclick=this._hide.bind(this,!1),this.applyButton=document.createElement("div"),this.applyButton.className="vis-button vis-apply",this.applyButton.innerHTML="apply",this.applyButton.onclick=this._apply.bind(this),this.saveButton=document.createElement("div"),this.saveButton.className="vis-button vis-save",this.saveButton.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)}},{key:"_bindHammer",value:function(){var t=this;this.drag={},this.pinch={},this.hammer=new s(this.colorPickerCanvas),this.hammer.get("pinch").set({enable:!0}),r.onTouch(this.hammer,function(e){t._moveSelector(e)}),this.hammer.on("tap",function(e){t._moveSelector(e)}),this.hammer.on("panstart",function(e){t._moveSelector(e)}),this.hammer.on("panmove",function(e){t._moveSelector(e)}),this.hammer.on("panend",function(e){t._moveSelector(e)})}},{key:"_generateHueCircle",value:function(){if(this.generated===!1){var t=this.colorPickerCanvas.getContext("2d");void 0===this.pixelRation&&(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 e=this.colorPickerCanvas.clientWidth,i=this.colorPickerCanvas.clientHeight;t.clearRect(0,0,e,i);var o=void 0,n=void 0,s=void 0,r=void 0;this.centerCoordinates={x:.5*e,y:.5*i},this.r=.49*e;var h=2*Math.PI/360,d=1/360,l=1/this.r,c=void 0;for(s=0;s<360;s++)for(r=0;rs.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]&&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 c.toLowerCase().indexOf(d)!==-1&&(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]?arguments[2]:"Problem value found at: \n",o="\n\n"+i+"options = {\n",n=0;nu,p=r||null===n?n:l+(n-l)*s,g=r||null===a?a:c+(a-c)*s;y=h._applyRange(p,g),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}),r?v&&h.body.emitter.emit("rangechanged",{start:new Date(h.start),end:new Date(h.end),byUser:o}):h.animationTimer=setTimeout(t,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(ns&&(n=s)),null!==s&&n>s&&(i=n-s,o-=i,n-=i,null!=a&&othis.start&&nd&&(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(t&&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}),this.body.emitter.emit("panmove")}},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){t.preventDefault();var e=0;if(t.wheelDelta?e=t.wheelDelta/120:t.detail&&(e=-t.detail/3),this.options.zoomKey&&!t[this.options.zoomKey]&&this.options.zoomable||!this.options.zoomable&&this.options.moveable){if(this.options.horizontalScroll){var i=e*(this.end-this.start)/20,o=this.start-i,n=this.end-i;this.setRange(o,n)}}else if(this.options.zoomable&&this.options.moveable&&this._isInsideRange(t)&&e){var s;s=e<0?1-e/5:1/(1+e/5);var r=this.getPointer({x:t.clientX,y:t.clientY},this.body.dom.center),a=this._pointerToDate(r);this.zoom(s,a,e)}},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=1-e<=0,this.endToFront=e-1<=0;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,i){function o(t,e){this.options=null,this.props=null}var n=i(1);o.prototype.setOptions=function(t){t&&n.extend(this.options,t)},o.prototype.redraw=function(){return!1},o.prototype.destroy=function(){},o.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=o},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(;d=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&&nt.range.end){var h={start:t.range.start,end:i};i=e.correctTimeForHidden(t.options.moment,t.body.hiddenDates,h,i);var n=t.range.conversion(o,r);return(i.valueOf()-n.offset)*n.scale}i=e.correctTimeForHidden(t.options.moment,t.body.hiddenDates,t.range,i);var n=t.range.conversion(o,r);return(i.valueOf()-n.offset)*n.scale},e.toTime=function(t,i,o){if(0==t.body.hiddenDates.length){var n=t.range.conversion(o);return new Date(i/n.scale+n.offset)}var s=e.getHiddenDurationBetween(t.body.hiddenDates,t.range.start,t.range.end),r=t.range.end-t.range.start-s,a=r*i/o,h=e.getAccumulatedHiddenDuration(t.body.hiddenDates,t.range,a),d=new Date(h+a+t.range.start);return d},e.getHiddenDurationBetween=function(t,e,i){for(var o=0,n=0;n=e&&r=e&&r<=i&&(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?o<0?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&&t0&&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));if(i.length>0)return i[0].setCustomTitle(t)},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;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,this.range.setRange(n.start,n.end,o)}else o=!i||void 0===i.animation||i.animation,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;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.zoomIn=function(t){if(!(!t||t<0||t>1)){var e=this.getWindow(),i=e.start.valueOf(),o=e.end.valueOf(),n=o-i,s=n/(1+t),r=(n-s)/2,a=i+r,h=o-r;this.setWindow({start:a,end:h})}},o.prototype.zoomOut=function(t){if(!(!t||t<0||t>1)){var e=this.getWindow(),i=e.start.valueOf(),o=e.end.valueOf(),n=o-i,s=i-n*t/2,r=o+n*t/2;this.setWindow({start:s,end:r})}},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.offsetWidth){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,this.initialDrawDone||(i.scrollbarWidth=h.getScrollBarWidth()),this.options.verticalScroll?this.options.rtl?(i.left.width=o.leftContainer.clientWidth||-i.border.left,i.right.width=o.rightContainer.clientWidth+i.scrollbarWidth||-i.border.right):(i.left.width=o.leftContainer.clientWidth+i.scrollbarWidth||-i.border.left,i.right.width=o.rightContainer.clientWidth||-i.border.right):(i.left.width=o.leftContainer.clientWidth||-i.border.left,i.right.width=o.rightContainer.clientWidth||-i.border.right),i.leftContainer.width=i.left.width,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";var p=this._updateScrollTop();"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.right.style.left="0";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,this.options.verticalScroll?(o.shadowTopRight.style.visibility="hidden",o.shadowBottomRight.style.visibility="hidden",o.shadowTopLeft.style.visibility="hidden",o.shadowBottomLeft.style.visibility="hidden"):(o.left.style.top=p+"px",o.right.style.top=p+"px");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&&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;io)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;m=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]),_=h.get(u[m+g]);this.options.groupOrderSwap(b,_,h),h.update(b),h.update(_);var w=c[m+v];c[m+v]=u[m+g],c[y]=w,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;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._onMouseOver=function(t){var e=this.itemFromTarget(t);e&&this.body.emitter.emit("itemover",{item:e.id,event:t})},o.prototype._onMouseOut=function(t){var e=this.itemFromTarget(t);e&&this.body.emitter.emit("itemout",{item:e.id,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("drop"==t.type){var n=JSON.parse(t.dataTransfer.getData("text/plain"));if(c.content=n.content,c.type=n.type||"box",c[this.itemsData._fieldId]=n.id||r.randomUUID(),"range"==n.type||n.end&&n.start)if(n.end)c.end=new Date(c.start._i).getTime()+new Date(n.end).getTime()-new Date(n.start).getTime();else{var u=this.body.util.toTime(a+this.props.width/5);c.end=i?i(u,d,l):u}}else if(c[this.itemsData._fieldId]=r.randomUUID(),"range"===this.options.type){var u=this.body.util.toTime(a+this.props.width/5);c.end=i?i(u,d,l):u}var p=this.groupFromTarget(t);p&&(c.group=p.groupId),c=this._cloneItemData(c),this.options.onAdd(c,function(i){i&&(e.itemsData.getDataSet().add(i),"drop"==t.type&&e.setSelection([i.id]))})}}},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);u==-1?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.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.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.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){if(void 0==t&&(t=this.current),"function"==typeof this.format.minorLabels)return this.format.minorLabels(t,this.scale,this.step);var e=this.format.minorLabels[this.scale];return e&&e.length>0?this.moment(t).format(e):""},o.prototype.getLabelMajor=function(t){if(void 0==t&&(t=this.current),"function"==typeof this.format.majorLabels)return this.format.majorLabels(t,this.scale,this.step);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 e(a)+t(a.milliseconds()).trim();case"second":return e(a)+t(a.seconds()).trim();case"minute":return e(a)+t(a.minutes()).trim();case"hour":return"vis-h"+a.hours()+(4==this.step?"-h"+(a.hours()+4):"")+e(a)+t(a.hours());case"weekday":return"vis-"+a.format("dddd").toLowerCase()+e(a)+i(a)+t(a.date());case"day":return"vis-day"+a.date()+" vis-"+a.format("MMMM").toLowerCase()+e(a)+o(a)+this.step<=2?e(a):""+this.step<=2?" vis-"+a.format("dddd").toLowerCase():""+t(a.date()-1);case"month":return"vis-"+a.format("MMMM").toLowerCase()+o(a)+t(a.month());case"year":var d=a.year();return"vis-year"+d+n(a)+t(d);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.isVisible=null,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(39);i(40);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,i;if(this.itemSet.options&&this.itemSet.options.groupTemplate?(i=this.itemSet.options.groupTemplate.bind(this),e=i(t,this.dom.inner)):e=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 e instanceof Object?i(t,this.dom.inner):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 o=t&&t.className||null;o!=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,o),n.addClassName(this.dom.foreground,o),n.addClassName(this.dom.background,o),n.addClassName(this.dom.axis,o),this.className=o),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;r!=this.lastMarkerHeight&&(this.lastMarkerHeight=r,n.forEach(this.items,function(t){t.dirty=!0,t.displayed&&t.redraw()}),i=!0),this._calculateSubGroupHeights(),this.isVisible=this._isGroupVisible(t,e);var a=this.dom.foreground;if(this.top=a.offsetTop,this.right=a.offsetLeft,this.width=a.offsetWidth,this.isVisible=this._isGroupVisible(t,e),"function"==typeof this.itemSet.options.order){if(i){var h=this,d=!1;n.forEach(this.items,function(t){t.displayed||(t.redraw(),h.visibleItems.push(t)),t.repositionX(d)});var l=this.orderedItems.byStart.slice().sort(function(t,e){return h.itemSet.options.order(t.data,e.data)});s.stack(l,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);if(!this.isVisible&&this.height)return o=!1;var c=this._calculateHeight(e),a=this.dom.foreground;this.top=a.offsetTop,this.right=a.offsetLeft,this.width=a.offsetWidth,o=n.updateProperty(this,"height",c)||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=c+"px",this.dom.foreground.style.height=c+"px",this.dom.label.style.height=c+"px";for(var u=0,p=this.visibleItems.length;u0){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._isGroupVisible=function(t,e){var i=this.top<=t.body.domProps.centerContainer.height-t.body.domProps.scrollTop+e.axis&&this.top+this.height+e.axis>=-t.body.domProps.scrollTop;return i},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(),this.visibleItems.indexOf(t)==-1){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;i0)for(var r=0;rl}),1==this.checkRangedItems)for(this.checkRangedItems=!1,r=0;rl})}for(var r=0;r=0;s--){var r=e[s];if(n(r))break;void 0===o[r.id]&&(o[r.id]=!0,i.push(r))}for(var s=t+1;se.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(22),i(41));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._repaintOnItemUpdateTimeTooltip(t.box),this._repaintDeleteButton(t.box),this._repaintDragCenter(),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||(n<-o&&(n=-o),s>2*o&&(s=2*o));var r=Math.max(s-n+.5,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:n<0?-n:0,this.options.rtl?this.dom.content.style.right=e+"px":(this.dom.content.style.left=e+"px",this.dom.content.style.width="calc(100% - "+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),r=i(2);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._repaintOnItemUpdateTimeTooltip=function(t){if(this.options.tooltipOnItemUpdateTime){var e=(this.options.editable.updateTime||this.data.editable===!0)&&this.data.editable!==!1;if(this.selected&&e&&!this.dom.onItemUpdateTimeTooltip){var i=document.createElement("div");i.className="vis-onUpdateTime-tooltip",t.appendChild(i),this.dom.onItemUpdateTimeTooltip=i}else!this.selected&&this.dom.onItemUpdateTimeTooltip&&(this.dom.onItemUpdateTimeTooltip.parentNode&&this.dom.onItemUpdateTimeTooltip.parentNode.removeChild(this.dom.onItemUpdateTimeTooltip),this.dom.onItemUpdateTimeTooltip=null);if(this.dom.onItemUpdateTimeTooltip){this.dom.onItemUpdateTimeTooltip.style.visibility=this.parent.itemSet.touchParams.itemIsDragging?"visible":"hidden",this.options.rtl?this.dom.onItemUpdateTimeTooltip.style.right=this.dom.content.style.right:this.dom.onItemUpdateTimeTooltip.style.left=this.dom.content.style.left;var o,n=50,s=this.parent.itemSet.body.domProps.scrollTop;o="top"==this.options.orientation.item?this.top:this.parent.height-this.top-this.height;var a=o+this.parent.top-n<-s;a?(this.dom.onItemUpdateTimeTooltip.style.bottom="",this.dom.onItemUpdateTimeTooltip.style.top=this.height+2+"px"):(this.dom.onItemUpdateTimeTooltip.style.top="",this.dom.onItemUpdateTimeTooltip.style.bottom=this.height+2+"px");var h,d;this.options.tooltipOnItemUpdateTime&&this.options.tooltipOnItemUpdateTime.template?(d=this.options.tooltipOnItemUpdateTime.template.bind(this),h=d(this.data)):(h="start: "+r(this.data.start).format("MM/DD/YYYY hh:mm"),this.data.end&&(h+="
end: "+r(this.data.end).format("MM/DD/YYYY hh:mm"))),this.dom.onItemUpdateTimeTooltip.innerHTML=h}}},o.prototype._updateContents=function(t){var e,i;if(this.options.template){var o=this.parent.itemSet.itemsData.get(this.id);i=this.options.template.bind(this),e=i(o,t)}else e=this.data.content;if(e instanceof Object&&!(e instanceof Element))i(o,t);else{var n=this._contentToString(this.content)!==this._contentToString(e);if(n){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;it.start&&this.data.start.getTime()-nt.start&&this.data.start.getTime()t.start&&this.data.start.getTime()-n/2t.start&&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&&t!==Symbol.prototype?"symbol":typeof t},s=i(1),r=i(33),a=i(37),h=i(34),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()&&k=.4*g;if(this.options.showMinorLabels&&D){var S=this._repaintMinorText(p,b,t,_);S.style.width=w+"px"}m&&this.options.showMajorLabels?(p>0&&(void 0==x&&(x=p),S=this._repaintMajorText(p,r.getLabelMajor(),t,_)),y=this._repaintMajorLine(p,w,t,_)):D?y=this._repaintMinorLine(p,w,t,_):y&&(y.style.width=parseInt(y.style.width)+w+"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 C=this.body.util.toTime(0),T=r.getLabelMajor(C),E=T.length*(this.props.majorCharWidth||10)+10;(void 0==x||E1e3&&(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"},verticalScroll:{boolean:o,undefined:"undefined"},horizontalScroll:{boolean:o,undefined:"undefined"},autoResize:{boolean:o},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,function:"function"}},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,function:"function"}},__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"},tooltipOnItemUpdateTime:{template:{function:"function"},__type__:{boolean:o,object:a}},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,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:"",tooltipOnItemUpdateTime:!1,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(28),r=o(s),a=i(31),h=o(a),d=(i(13),i(22),i(2)),l=i(1),c=i(9),u=i(11),p=i(32),f=i(35),m=i(46),v=i(50),g=i(48),y=i(53),b=i(31).printStyle,_=i(61).allOptions,w=i(61).configureOptions;n.prototype=new f,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),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]))},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:e0){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;r0)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;l0){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=di?i:h,l=l=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.maxLabelSize6&&void 0!==arguments[6]&&arguments[6],a=arguments.length>7&&void 0!==arguments[7]&&arguments[7];if(this.majorSteps=[1,2,5,10],this.minorSteps=[.25,.5,1,2],this.customLines=null,this.containerHeight=n,this.majorCharHeight=s,this._start=t,this._end=e,this.scale=1,this.minorStepIdx=-1,this.magnitudefactor=1,this.determineScale(),this.zeroAlign=r,this.autoScaleStart=i,this.autoScaleEnd=o,this.formattingFunction=a,i||o){var h=this,d=function(t){var e=t-t%(h.magnitudefactor*h.minorSteps[h.minorStepIdx]);return t%(h.magnitudefactor*h.minorSteps[h.minorStepIdx])>.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;i<0&&(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&&ce.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||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=t0){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;n0&&(f=1/f),m=3*v*(v+g),m>0&&(m=1/m),a={screen_x:(-b*o.screen_x+u*n.screen_x+_*s.screen_x)*f,screen_y:(-b*o.screen_y+u*n.screen_y+_*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;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 t0){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;i1&&void 0!==arguments[1]&&arguments[1],o=this.body.data.nodes;if(t instanceof c||t instanceof u)this.body.data.nodes=t;else if(Array.isArray(t))this.body.data.nodes=new c,this.body.data.nodes.add(t);else{if(t)throw new TypeError("Array or DataSet expected");this.body.data.nodes=new c}o&&l.forEach(this.nodesListeners,function(t,e){o.off(e,t)}),this.body.nodes={},this.body.data.nodes&&!function(){var t=e;l.forEach(e.nodesListeners,function(e,i){t.body.data.nodes.on(i,e)});var i=e.body.data.nodes.getIds();e.add(i,!0)}(),i===!1&&this.body.emitter.emit("_dataChanged")}},{key:"add",value:function(t){for(var e=arguments.length>1&&void 0!==arguments[1]&&arguments[1],i=void 0,o=[],n=0;n1&&void 0!==arguments[1]?arguments[1]:a.default;return new e(t,this.body,this.images,this.groups,this.options)}},{key:"refresh",value:function(){var t=arguments.length>0&&void 0!==arguments[0]&&arguments[0],e=this.body.nodes;for(var i in e){var o=void 0;e.hasOwnProperty(i)&&(o=e[i]);var n=this.body.data.nodes._data[i];void 0!==o&&void 0!==n&&(t===!0&&o.setOptions({x:null,y:null}),o.setOptions({fixed:!1}),o.setOptions(n))}}},{key:"getPositions",value:function(t){var e={};if(void 0!==t){if(Array.isArray(t)===!0){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]&&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(t){n=!0,s=t}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&&t!==Symbol.prototype?"symbol":typeof t},r=function(){function t(t,e){for(var i=0;i2&&void 0!==arguments[2]&&arguments[2];o(this,t),this.body=e,this.pointToSelf=!1,this.baseSize=void 0,this.fontOptions={},this.setOptions(i),this.size={top:0,left:0,width:0,height:0,yLine:0},this.isEdgeLabel=n}return r(t,[{key:"setOptions",value:function(e){var i=arguments.length>1&&void 0!==arguments[1]&&arguments[1];this.nodeOptions=e,this.fontOptions=a.deepExtend({},e.font,!0),void 0!==e.label&&(this.labelDirty=!0),void 0!==e.font&&(t.parseOptions(this.fontOptions,e,i),"string"==typeof e.font?this.baseSize=this.fontOptions.size:"object"===s(e.font)&&void 0!==e.font.size&&(this.baseSize=e.font.size))}},{key:"draw",value:function(t,e,i,o){var n=arguments.length>4&&void 0!==arguments[4]?arguments[4]:"middle";if(void 0!==this.nodeOptions.label){var s=this.fontOptions.size*this.body.view.scale;this.nodeOptions.label&&s4&&void 0!==arguments[4]?arguments[4]:"middle",r=this.fontOptions.size,a=r*this.body.view.scale;a>=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]&&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]?arguments[2]:0,o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:0,n=arguments.length>4&&void 0!==arguments[4]?arguments[4]:"middle";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;si?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]&&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&&a<4;)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;i1&&void 0!==arguments[1]&&arguments[1],o=this.body.data.edges;if(t instanceof c||t instanceof u)this.body.data.edges=t;else if(Array.isArray(t))this.body.data.edges=new c,this.body.data.edges.add(t);else{if(t)throw new TypeError("Array or DataSet expected");this.body.data.edges=new c}if(o&&l.forEach(this.edgesListeners,function(t,e){o.off(e,t)}),this.body.edges={},this.body.data.edges){l.forEach(this.edgesListeners,function(t,i){e.body.data.edges.on(i,t)});var n=this.body.data.edges.getIds();this.add(n,!0)}i===!1&&this.body.emitter.emit("_dataChanged")}},{key:"add",value:function(t){for(var e=arguments.length>1&&void 0!==arguments[1]&&arguments[1],i=this.body.edges,o=this.body.data.edges,n=0;ni.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 h0&&i<0)&&(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]&&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();t.arrows.to.enabled=r.indexOf("to")!=-1,t.arrows.middle.enabled=r.indexOf("middle")!=-1,t.arrows.from.enabled=r.indexOf("from")!=-1}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(t){n=!0,s=t}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]?arguments[6]:this._getViaCoordinates(),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]?arguments[1]:this._getViaCoordinates(),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;i0&&(d=this._getDistanceToLine(f,m,u,p,n,s),h=d2&&void 0!==arguments[2]?arguments[2]:this._getViaCoordinates(),h=10,d=0,l=0,c=1,u=.2,p=this.to,f=!1;for(t.id===this.from.id&&(p=this.from,f=!0);l<=c&&d0&&(h=this._getDistanceToLine(p,f,c,u,n,s),a=ho.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);s<=r&&d0?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:d<0&&(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=void 0,p=this.getLineWidth(o,s);if("from"===e?(h=this.from,d=this.to,l=.1,c=this.options.arrows.from.scaleFactor,u=this.options.arrows.from.type):"to"===e?(h=this.to,d=this.from,l=-.1,c=this.options.arrows.to.scaleFactor,u=this.options.arrows.to.type):(h=this.to,d=this.from,c=this.options.arrows.middle.scaleFactor,u=this.options.arrows.middle.type),h!=d)if("middle"!==e)if(this.options.smooth.enabled===!0){a=this.findBorderPosition(h,t,{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,t);else r=Math.atan2(h.y-d.y,h.x-d.x),a=this.getPoint(.5,i);else{var m=this._getCircleData(t),v=n(m,3),g=v[0],y=v[1],b=v[2];"from"===e?(a=this.findBorderPosition(this.from,t,{x:g,y:y,low:.25,high:.6,direction:-1}),r=a.t*-2*Math.PI+1.5*Math.PI+.1*Math.PI):"to"===e?(a=this.findBorderPosition(this.from,t,{x:g,y:y,low:.6,high:1,direction:1}),r=a.t*-2*Math.PI+1.5*Math.PI-1.1*Math.PI):(a=this._pointOnCircle(g,y,b,.175),r=3.9269908169872414)}var _=15*c+3*p,w=a.x-.9*_*Math.cos(r),x=a.y-.9*_*Math.sin(r),k={x:w,y:x};return{point:a,core:k,angle:r,length:_,type:u}}},{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),o.type&&"circle"===o.type.toLowerCase()?t.circleEndpoint(o.point.x,o.point.y,o.angle,o.length):t.arrowEndpoint(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){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(t){n=!0,s=t}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;i1&&void 0!==arguments[1]?arguments[1]:this.via,i=t,o=void 0,n=void 0;if(this.from===this.to){var s=this._getCircleData(this.from),r=a(s,3),h=r[0],d=r[1],l=r[2],c=2*Math.PI*(1-i);o=h+l*Math.sin(c),n=d+l-l*(1-Math.cos(c))}else o=Math.pow(1-i,2)*this.fromPoint.x+2*i*(1-i)*e.x+Math.pow(i,2)*this.toPoint.x,n=Math.pow(1-i,2)*this.fromPoint.y+2*i*(1-i)*e.y+Math.pow(i,2)*this.toPoint.y;return{x:o,y:n}}},{key:"_findBorderPosition",value:function(t,e){return this._findBorderPositionBezier(t,e,this.via)}},{key:"_getDistanceToEdge",value:function(t,e,i,o,n,s){return this._getDistanceToBezierEdge(t,e,i,o,n,s,this.via)}}]),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;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=nMath.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=sMath.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.y2&&void 0!==arguments[2]?arguments[2]:{};return this._findBorderPositionBezier(t,e,i.via)}},{key:"_getDistanceToEdge",value:function(t,e,i,o,n,s){var r=arguments.length>6&&void 0!==arguments[6]?arguments[6]:this._getViaCoordinates();return this._getDistanceToBezierEdge(t,e,i,o,n,s,r)}},{key:"getPoint",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this._getViaCoordinates(),i=t,o=Math.pow(1-i,2)*this.fromPoint.x+2*i*(1-i)*e.x+Math.pow(i,2)*this.toPoint.x,n=Math.pow(1-i,2)*this.fromPoint.y+2*i*(1-i)*e.y+Math.pow(i,2)*this.toPoint.y;return{x:o,y:n}}}]),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&&void 0!==arguments[0])||arguments[0];this.stabilized=!0,t===!0&&this._emitStabilized(),void 0!==this.viewFunction&&(this.body.emitter.off("initRedraw",this.viewFunction),this.viewFunction=void 0,t===!0&&this.body.emitter.emit("_stopRendering"))}},{key:"simulationStep",value:function(){var t=Date.now();this.physicsTick();var e=Date.now()-t;(e<.4*this.simulationInterval||this.runDoubleSpeed===!0)&&this.stabilized===!1&&(this.physicsTick(),this.runDoubleSpeed=!0),this.stabilized===!0&&this.stopSimulation()}},{key:"_emitStabilized",value:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.stabilizationIterations;(this.stabilizationIterations>1||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]?arguments[0]:this.options.stabilization.iterations;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;s0&&(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&&o.shape.radius&&(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;h0&&(dr&&(r=d),la&&(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;y0&&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;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&&t!==Symbol.prototype?"symbol":typeof t},r=function(){function t(t,e){for(var i=0;i=t&&i.push(n.id)}for(var r=0;r0&&void 0!==arguments[0]?arguments[0]:{},e=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];if(void 0===t.joinCondition)throw new Error("Cannot call clusterByNodeData without a joinCondition function in the options.");t=this._checkOptions(t);for(var i={},o={},n=0;n2&&void 0!==arguments[2])||arguments[2];e=this._checkOptions(e);for(var o=[],n={},s=void 0,r=void 0,a=void 0,d=void 0,l=void 0,c=0;c0&&Object.keys(p).length>0&&m===!0&&o.push({nodes:u,edges:p})}}}for(var b=0;b1&&void 0!==arguments[1])||arguments[1];this.clusterByEdgeCount(1,t,e)}},{key:"clusterBridges",value:function(t){var e=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];this.clusterByEdgeCount(2,t,e)}},{key:"clusterByConnection",value:function(t,e){var i=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];if(void 0===t)throw new Error("No nodeId supplied to clusterByConnection!");if(void 0===this.body.nodes[t])throw new Error("The nodeId given to clusterByConnection does not exist!");var o=this.body.nodes[t];e=this._checkOptions(e,o),void 0===e.clusterNodeProperties.x&&(e.clusterNodeProperties.x=o.x),void 0===e.clusterNodeProperties.y&&(e.clusterNodeProperties.y=o.y),void 0===e.clusterNodeProperties.fixed&&(e.clusterNodeProperties.fixed={},e.clusterNodeProperties.fixed.x=o.options.fixed.x,e.clusterNodeProperties.fixed.y=o.options.fixed.y);var n={},s={},r=o.id,a=h.default.cloneOptions(o);n[r]=o;for(var d=0;d-1&&(s[v.id]=v)}this._cluster(n,s,e,i)}},{key:"_createClusterEdges",value:function(t,e,i,o){for(var n=void 0,s=void 0,r=void 0,a=void 0,d=void 0,l=void 0,u=Object.keys(t),p=[],f=0;f0&&void 0!==arguments[0]?arguments[0]:{};return void 0===t.clusterEdgeProperties&&(t.clusterEdgeProperties={}),void 0===t.clusterNodeProperties&&(t.clusterNodeProperties={}),t}},{key:"_cluster",value:function(t,e,i){var o=!(arguments.length>3&&void 0!==arguments[3])||arguments[3];if(0!=Object.keys(t).length&&(1!=Object.keys(t).length||1==i.clusterNodeProperties.allowSingleNodeCluster)){for(var n in t)if(t.hasOwnProperty(n)&&void 0!==this.clusteredNodes[n])return;var s=c.deepExtend({},i.clusterNodeProperties);if(void 0!==i.processProperties){var r=[];for(var a in t)if(t.hasOwnProperty(a)){var d=h.default.cloneOptions(t[a]);r.push(d)}var u=[];for(var p in e)if(e.hasOwnProperty(p)&&"clusterEdge:"!==p.substr(0,12)){var f=h.default.cloneOptions(e[p],"edge");u.push(f)}if(s=i.processProperties(s,r,u),!s)throw new Error("The processProperties function does not return properties!")}void 0===s.id&&(s.id="cluster:"+c.randomUUID());var m=s.id;void 0===s.label&&(s.label="cluster");var v=void 0;void 0===s.x&&(v=this._getClusterPosition(t),s.x=v.x),void 0===s.y&&(void 0===v&&(v=this._getClusterPosition(t)),s.y=v.y),s.id=m;var g=this.body.functions.createNode(s,l.default);g.isCluster=!0,g.containedNodes=t,g.containedEdges=e,g.clusterEdgeProperties=i.clusterEdgeProperties,this.body.nodes[s.id]=g,this._createClusterEdges(t,e,s,i.clusterEdgeProperties);for(var y in e)if(e.hasOwnProperty(y)&&void 0!==this.body.edges[y]){var b=this.body.edges[y];this._backupEdgeOptions(b),b.setOptions({physics:!1,hidden:!0})}for(var _ in t)t.hasOwnProperty(_)&&(this.clusteredNodes[_]={clusterId:s.id,node:this.body.nodes[_]},this.body.nodes[_].setOptions({hidden:!0,physics:!1}));s.id=void 0,o===!0&&this.body.emitter.emit("_dataChanged")}}},{key:"_backupEdgeOptions",value:function(t){void 0===this.clusteredEdges[t.id]&&(this.clusteredEdges[t.id]={physics:t.options.physics,hidden:t.options.hidden})}},{key:"_restoreEdge",value:function(t){var e=this.clusteredEdges[t.id];void 0!==e&&(t.setOptions({physics:e.physics,hidden:e.hidden}),delete this.clusteredEdges[t.id])}},{key:"isCluster",value:function(t){return void 0!==this.body.nodes[t]?this.body.nodes[t].isCluster===!0:(console.log("Node does not exist."),!1)}},{key:"_getClusterPosition",value:function(t){for(var e=Object.keys(t),i=t[e[0]].x,o=t[e[0]].x,n=t[e[0]].y,s=t[e[0]].y,r=void 0,a=1;ao?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])||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=[],_=0;_o&&(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;i1&&void 0!==arguments[1]?arguments[1]:[],o=1e9,n=-1e9,s=1e9,r=-1e9;if(i.length>0)for(var a=0;ae.shape.boundingBox.left&&(s=e.shape.boundingBox.left),re.shape.boundingBox.top&&(o=e.shape.boundingBox.top),n1&&void 0!==arguments[1]?arguments[1]:[],o=1e9,n=-1e9,s=1e9,r=-1e9;if(i.length>0)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]&&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]&&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&&void 0!==arguments[0]?arguments[0]:this.pixelRatio;this.initialized===!0&&(this.cameraState.previousWidth=this.frame.canvas.width/t,this.cameraState.previousHeight=this.frame.canvas.height/t,this.cameraState.scale=this.body.view.scale,this.cameraState.position=this.DOMtoCanvas({x:.5*this.frame.canvas.width/t,y:.5*this.frame.canvas.height/t}))}},{key:"_setCameraState",value:function(){if(void 0!==this.cameraState.scale&&0!==this.frame.canvas.clientWidth&&0!==this.frame.canvas.clientHeight&&0!==this.pixelRatio&&this.cameraState.previousWidth>0){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(t.indexOf("%")!==-1||t.indexOf("px")!==-1)return t;if(t.indexOf("%")===-1)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]?arguments[0]:this.options.width,e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.options.height;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,this.canvasViewCenter={x:.5*this.frame.clientWidth,y:.5*this.frame.clientHeight},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;i0&&void 0!==arguments[0]?arguments[0]:{};this.options=t}},{key:"fit",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{nodes:[]},e=arguments.length>1&&void 0!==arguments[1]&&arguments[1],i=void 0,o=void 0;if(void 0!==t.nodes&&0!==t.nodes.length||(t.nodes=this.body.nodeIndices),e===!0){var n=0;for(var s in this.body.nodes)if(this.body.nodes.hasOwnProperty(s)){var r=this.body.nodes[s];r.predefinedPosition===!0&&(n+=1)}if(n>.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=u<=p?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]&&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]&&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):h-n<0&&(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):a-o<0&&(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;n10&&(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"),i0&&(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(){var t=this.body.view.scale,e=this.body.view.scale*(1+this.options.keyboard.speed.zoom),i=this.body.view.translation,o=e/t,n=(1-o)*this.canvas.canvasViewCenter.x+i.x*o,s=(1-o)*this.canvas.canvasViewCenter.y+i.y*o;this.body.view.scale=e,this.body.view.translation={x:n,y:s},this.body.emitter.emit("zoom",{direction:"+",scale:this.body.view.scale})}},{key:"_zoomOut",value:function(){var t=this.body.view.scale,e=this.body.view.scale/(1+this.options.keyboard.speed.zoom),i=this.body.view.translation,o=e/t,n=(1-o)*this.canvas.canvasViewCenter.x+i.x*o,s=(1-o)*this.canvas.canvasViewCenter.y+i.y*o;this.body.view.scale=e,this.body.view.translation={x:n,y:s},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),r4&&void 0!==arguments[4]&&arguments[4],s=void 0;s=n===!0?{nodes:[],edges:[]}:this.getSelection(),s.pointer={DOM:{x:i.x,y:i.y},canvas:this.canvas.DOMtoCanvas(i)},s.event=e,void 0!==o&&(s.previousSelection=o),this.body.emitter.emit(t,s)}},{key:"selectObject",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.options.selectConnectedEdges;return void 0!==t&&(t instanceof a.default&&e===!0&&this._selectConnectedEdges(t),t.select(),this._addToSelection(t),!0)}},{key:"deselectObject",value:function(t){t.isSelected()===!0&&(t.selected=!1,this._removeFromSelection(t))}},{key:"_getAllNodesOverlappingWith",value:function(t){for(var e=[],i=this.body.nodes,o=0;o1&&void 0!==arguments[1])||arguments[1],i=this._pointerToPositionObject(t),o=this._getAllNodesOverlappingWith(i);return o.length>0?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;o1&&void 0!==arguments[1])||arguments[1],i=this.canvas.DOMtoCanvas(t),o=10,n=null,s=this.body.edges,r=0;r1)return!0;return!1}},{key:"_selectConnectedEdges",value:function(t){for(var e=0;e1&&void 0!==arguments[1]?arguments[1]:{},i=void 0,o=void 0;if(!t||!t.nodes&&!t.edges)throw"Selection must be an object with nodes and/or edges properties";if((e.unselectAll||void 0===e.unselectAll)&&this.unselectAll(),t.nodes)for(i=0;i1&&void 0!==arguments[1])||arguments[1];if(!t||void 0===t.length)throw"Selection must be an array with ids";this.setSelection({nodes:t},{highlightEdges:e})}},{key:"selectEdges",value:function(t){if(!t||void 0===t.length)throw"Selection must be an array with ids";this.setSelection({edges:t})}},{key:"updateSelection",value:function(){for(var t in this.selectionObj.nodes)this.selectionObj.nodes.hasOwnProperty(t)&&(this.body.nodes.hasOwnProperty(t)||delete this.selectionObj.nodes[t]);for(var e in this.selectionObj.edges)this.selectionObj.edges.hasOwnProperty(e)&&(this.body.edges.hasOwnProperty(e)||delete this.selectionObj.edges[e])}}]),t}();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")}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(t){n=!0,s=t}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"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},a=function(){function t(t,e){for(var i=0;i0&&(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||this.optionsBackup.physics.enabled,solver:"hierarchicalRepulsion"},this.optionsBackup.physics.enabled=void 0===this.optionsBackup.physics.enabled||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||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||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&&t.edges.smooth.forceDirection},t.edges.smooth={enabled:void 0===t.edges.smooth.enabled||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&&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 s=0;s1&&void 0!==arguments[1]?arguments[1]:1e9,o=1e9,n=1e9,r=1e9,a=-1e9;for(var h in e)if(e.hasOwnProperty(h)){var d=t.body.nodes[h],l=t.hierarchicalLevels[d.id],c=t._getPositionForHierarchy(d),u=t._getSpaceAroundNode(d,e),p=s(u,2),f=p[0],m=p[1];o=Math.min(f,o),n=Math.min(m,n),l<=i&&(r=Math.min(c,r),a=Math.max(c,a))}return[r,a,o,n]},l=function e(i){var o=t.hierarchicalLevels[i];if(t.hierarchicalChildrenReference[i]){var n=t.hierarchicalChildrenReference[i];if(n.length>0)for(var s=0;s1)for(var a=0;a2&&void 0!==arguments[2]&&arguments[2],r=t._getPositionForHierarchy(i),a=t._getPositionForHierarchy(o),l=Math.abs(a-r);if(l>t.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),_=b[0],w=(b[1],b[2]),x=(b[3],Math.abs(g-_));if(x>t.options.hierarchical.nodeSpacing){var k=g-_+t.options.hierarchical.nodeSpacing;k<-w+t.options.hierarchical.nodeSpacing&&(k=-w+t.options.hierarchical.nodeSpacing),k<0&&(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;f0?m=Math.min(f,p-t.options.hierarchical.nodeSpacing):f<0&&(m=-Math.min(-f,u-t.options.hierarchical.nodeSpacing)),0!=m&&(t._shiftBlock(n.id,m),e=!0)},w=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):l<0&&(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);_(x),x=b(o,a),w(x)},v=function(i){var o=Object.keys(t.distributionOrdering);o=o.reverse();for(var n=0;n0)for(var d=0;d0&&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]?arguments[0]:function(){},i=arguments[1],o={},n=0,s=function i(n,s){if(void 0===o[n.id]){void 0===t.hierarchicalTrees[n.id]&&(t.hierarchicalTrees[n.id]=s,t.treeIndex=Math.max(s,t.treeIndex)),o[n.id]=!0;for(var r=void 0,a=0;a3&&void 0!==arguments[3]&&arguments[3];o!==!0&&(void 0===this.distributionOrdering[i]&&(this.distributionOrdering[i]=[],this.distributionOrderingPresence[i]={}),void 0===this.distributionOrderingPresence[i][t.id]&&(this.distributionOrdering[i].push(t),this.distributionIndex[t.id]=this.distributionOrdering[i].length-1),this.distributionOrderingPresence[i][t.id]=!0),"UD"===this.options.hierarchical.direction||"DU"===this.options.hierarchical.direction?t.x=e:t.y=e}},{key:"_getPositionForHierarchy",value:function(t){return"UD"===this.options.hierarchical.direction||"DU"===this.options.hierarchical.direction?t.x:t.y}},{key:"_sortNodeArray",value:function(t){t.length>1&&("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;t0&&void 0!==arguments[0]?arguments[0]:1;this.manipulationDOM["seperatorLineDiv"+t]=document.createElement("div"),this.manipulationDOM["seperatorLineDiv"+t].className="vis-separator-line",this.manipulationDiv.appendChild(this.manipulationDOM["seperatorLineDiv"+t])}},{key:"_createAddNodeButton",value:function(t){var e=this._createButton("addNode","vis-button vis-add",t.addNode||this.options.locales.en.addNode);this.manipulationDiv.appendChild(e),this._bindHammerToDiv(e,this.addNodeMode.bind(this))}},{key:"_createAddEdgeButton",value:function(t){var e=this._createButton("addEdge","vis-button vis-connect",t.addEdge||this.options.locales.en.addEdge);this.manipulationDiv.appendChild(e),this._bindHammerToDiv(e,this.addEdgeMode.bind(this))}},{key:"_createEditNodeButton",value:function(t){var e=this._createButton("editNode","vis-button vis-edit",t.editNode||this.options.locales.en.editNode);this.manipulationDiv.appendChild(e),this._bindHammerToDiv(e,this.editNode.bind(this))}},{key:"_createEditEdgeButton",value:function(t){var e=this._createButton("editEdge","vis-button vis-edit",t.editEdge||this.options.locales.en.editEdge);this.manipulationDiv.appendChild(e),this._bindHammerToDiv(e,this.editEdgeMode.bind(this))}},{key:"_createDeleteButton",value:function(t){if(this.options.rtl)var e="vis-button vis-delete-rtl";else var e="vis-button vis-delete";var i=this._createButton("delete",e,t.del||this.options.locales.en.del);this.manipulationDiv.appendChild(i),this._bindHammerToDiv(i,this.deleteSelected.bind(this))}},{key:"_createBackButton",value:function(t){var e=this._createButton("back","vis-button vis-back",t.back||this.options.locales.en.back);this.manipulationDiv.appendChild(e),this._bindHammerToDiv(e,this.showManipulatorToolbar.bind(this))}},{key:"_createButton",value:function(t,e,i){var o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"vis-label";return this.manipulationDOM[t+"Div"]=document.createElement("div"),this.manipulationDOM[t+"Div"].className=e,this.manipulationDOM[t+"Label"]=document.createElement("div"),this.manipulationDOM[t+"Label"].className=o,this.manipulationDOM[t+"Label"].innerHTML=i,this.manipulationDOM[t+"Div"].appendChild(this.manipulationDOM[t+"Label"]),this.manipulationDOM[t+"Div"]}},{key:"_createDescription",value:function(t){this.manipulationDiv.appendChild(this._createButton("description","vis-button vis-none",t))}},{key:"_temporaryBindEvent",value:function(t,e){this.temporaryEventFunctions.push({event:t,boundFunction:e}),this.body.emitter.on(t,e)}},{key:"_temporaryBindUI",value:function(t,e){if(void 0===this.body.eventListeners[t])throw new Error("This UI function does not exist. Typo? You tried: "+t+" possible are: "+JSON.stringify(Object.keys(this.body.eventListeners)));this.temporaryUIFunctions[t]=this.body.eventListeners[t],this.body.eventListeners[t]=e}},{key:"_unbindTemporaryUIs",value:function(){for(var t in this.temporaryUIFunctions)this.temporaryUIFunctions.hasOwnProperty(t)&&(this.body.eventListeners[t]=this.temporaryUIFunctions[t],delete this.temporaryUIFunctions[t]);this.temporaryUIFunctions={}}},{key:"_unbindTemporaryEvents",value:function(){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(this.temporaryIds.nodes.indexOf(n[r])===-1){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:{string:["arrow","circle"]},__type__:{object:r,boolean:o}},middle:{enabled:{boolean:o},scaleFactor:{number:n},type:{string:["arrow","circle"]},__type__:{object:r,boolean:o}},from:{enabled:{boolean:o},scaleFactor:{number:n},type:{string:["arrow","circle"]},__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:{align:{string:i},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],type:"arrow"},middle:{enabled:!1,scaleFactor:[1,0,3,.05],type:"arrow"},from:{enabled:!1,scaleFactor:[1,0,3,.05],type:"arrow"}},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]}};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(t){n=!0,s=t}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;i2&&void 0!==arguments[2]&&arguments[2],o=this.distanceSolver.getDistances(this.body,t,e);this._createL_matrix(o),this._createK_matrix(o);for(var n=.01,r=1,a=0,h=Math.max(1e3,Math.min(10*this.body.nodeIndices.length,6e3)),d=5,l=1e9,c=0,u=0,p=0,f=0,m=0;l>n&&ar&&m=.1;)p=n[l++%s],p>d&&(p=d),u=Math.sqrt(p*p/(1+h*h)),u=r<0?-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 z.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;i=0;i--){var h=s[i];h.nodes||(h.nodes=[]),h.nodes.indexOf(n)===-1&&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=E.NULL,R="";" "===N||"\t"===N||"\n"===N||"\r"===N;)n();do{var t=!1;if("#"===N){for(var e=I-1;" "===P.charAt(e)||"\t"===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||"\t"===N||"\n"===N||"\r"===N;)n()}while(t);if(""===N)return void(L=E.DELIMITER);var i=N+s();if(M[i])return L=E.DELIMITER,R=i,n(),void n();if(M[N])return L=E.DELIMITER,R=N,void n();if(r(N)||"-"===N){for(R+=N,n();r(N);)R+=N,n();return"false"===R?R=!1:"true"===R?R=!0:isNaN(Number(R))||(R=Number(R)),void(L=E.IDENTIFIER)}if('"'===N){for(n();""!=N&&('"'!=N||'"'===N&&'"'===s());)R+=N,'"'===N&&n(),n();if('"'!=N)throw w('End of string " expected');return n(),void(L=E.IDENTIFIER)}for(L=E.UNKNOWN;""!=N;)R+=N,n();throw new SyntaxError('Syntax error in part "'+x(R,30)+'"')}function p(){var t={};if(o(),u(),"strict"===R&&(t.strict=!0,u()),"graph"!==R&&"digraph"!==R||(t.type=R,u()),L===E.IDENTIFIER&&(t.id=R,u()),"{"!=R)throw w("Angle bracket { expected");if(u(),f(t),"}"!=R)throw w("Angle bracket } expected");if(u(),""!==R)throw w("End of file expected");return u(),delete t.node,delete t.edge,delete t.graph,t}function f(t){for(;""!==R&&"}"!=R;)m(t),";"===R&&u()}function m(t){var e=v(t);if(e)return void b(t,e);var i=g(t);if(!i){if(L!=E.IDENTIFIER)throw w("Identifier expected");var o=R;if(u(),"="===R){if(u(),L!=E.IDENTIFIER)throw w("Identifier expected");t[o]=R,u()}else y(t,o)}}function v(t){var e=null;if("subgraph"===R&&(e={},e.type="subgraph",u(),L===E.IDENTIFIER&&(e.id=R,u())),"{"===R){if(u(),e||(e={}),e.parent=t,e.node=t.node,e.edge=t.edge,e.graph=t.graph,f(e),"}"!=R)throw w("Angle bracket } expected");u(),delete e.node,delete e.edge,delete e.graph,delete e.parent,t.subgraphs||(t.subgraphs=[]),t.subgraphs.push(e)}return e}function g(t){return"node"===R?(u(),t.node=_(),"node"):"edge"===R?(u(),t.edge=_(),"edge"):"graph"===R?(u(),t.graph=_(),"graph"):null}function y(t,e){var i={id:e},o=_();o&&(i.attr=o),d(t,i),b(t,e)}function b(t,e){for(;"->"===R||"--"===R;){var i,o=R;u();var n=v(t);if(n)i=n;else{if(L!=E.IDENTIFIER)throw w("Identifier or subgraph expected");i=R,d(t,{id:i}),u()}var s=_(),r=c(t,e,i,o,s);l(t,r),e=i}}function _(){for(var t=null;"["===R;){for(u(),t={};""!==R&&"]"!=R;){if(L!=E.IDENTIFIER)throw w("Attribute name expected");var e=R;if(u(),"="!=R)throw w("Equal sign = expected");if(u(),L!=E.IDENTIFIER)throw w("Attribute value expected");var i=R;h(t,e,i),u(),","==R&&u()}if("]"!=R)throw w("Bracket ] expected");u()}return t}function w(t){return new SyntaxError(t+', got "'+x(R,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="",R="",L=E.NULL,z=/[a-zA-Z_0-9.:#]/;e.parseDOT=i,e.DOTToGraph=S},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;aDownload
  • Showcase
  • Contribute
  • +
  • Feature requests
  • License