summaryrefslogtreecommitdiff
path: root/www/lib/vis/dist
diff options
context:
space:
mode:
Diffstat (limited to 'www/lib/vis/dist')
-rw-r--r--www/lib/vis/dist/vis-graph3d.min.js33
-rw-r--r--www/lib/vis/dist/vis-network.min.js41
-rw-r--r--www/lib/vis/dist/vis-timeline-graph2d.min.js39
-rw-r--r--www/lib/vis/dist/vis.css43
-rw-r--r--www/lib/vis/dist/vis.js13473
-rw-r--r--www/lib/vis/dist/vis.map2
-rw-r--r--www/lib/vis/dist/vis.min.css2
-rw-r--r--www/lib/vis/dist/vis.min.js45
8 files changed, 8075 insertions, 5603 deletions
diff --git a/www/lib/vis/dist/vis-graph3d.min.js b/www/lib/vis/dist/vis-graph3d.min.js
new file mode 100644
index 00000000..21aea6fc
--- /dev/null
+++ b/www/lib/vis/dist/vis-graph3d.min.js
@@ -0,0 +1,33 @@
+/**
+ * vis.js
+ * https://github.com/almende/vis
+ *
+ * A dynamic, browser-based visualization library.
+ *
+ * @version 4.16.1
+ * @date 2016-04-18
+ *
+ * @license
+ * Copyright (C) 2011-2016 Almende B.V, http://almende.com
+ *
+ * Vis.js is dual licensed under both
+ *
+ * * The Apache 2.0 License
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * and
+ *
+ * * The MIT License
+ * http://opensource.org/licenses/MIT
+ *
+ * Vis.js may be distributed under either license.
+ */
+"use strict";!function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?exports.vis=e():t.vis=e()}(this,function(){return function(t){function e(n){if(i[n])return i[n].exports;var r=i[n]={exports:{},id:n,loaded:!1};return t[n].call(r.exports,r,r.exports,e),r.loaded=!0,r.exports}var i={};return e.m=t,e.c=i,e.p="",e(0)}([function(t,e,i){e.util=i(1),e.DOMutil=i(7),e.DataSet=i(8),e.DataView=i(10),e.Queue=i(9),e.Graph3d=i(11),e.graph3d={Camera:i(15),Filter:i(16),Point2d:i(14),Point3d:i(13),Slider:i(17),StepNumber:i(18)},e.moment=i(2),e.Hammer=i(19),e.keycharm=i(22)},function(t,e,i){var n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol?"symbol":typeof t},r=i(2),s=i(6);e.isNumber=function(t){return t instanceof Number||"number"==typeof t},e.recursiveDOMDelete=function(t){if(t)for(;t.hasChildNodes()===!0;)e.recursiveDOMDelete(t.firstChild),t.removeChild(t.firstChild)},e.giveRange=function(t,e,i,n){if(e==t)return.5;var r=1/(e-t);return Math.max(0,(n-t)*r)},e.isString=function(t){return t instanceof String||"string"==typeof t},e.isDate=function(t){if(t instanceof Date)return!0;if(e.isString(t)){var i=o.exec(t);if(i)return!0;if(!isNaN(Date.parse(t)))return!0}return!1},e.randomUUID=function(){return s.v4()},e.assignAllKeys=function(t,e){for(var i in t)t.hasOwnProperty(i)&&"object"!==n(t[i])&&(t[i]=e)},e.fillIfDefined=function(t,i){var r=arguments.length<=2||void 0===arguments[2]?!1:arguments[2];for(var s in t)void 0!==i[s]&&("object"!==n(i[s])?void 0!==i[s]&&null!==i[s]||void 0===t[s]||r!==!0?t[s]=i[s]:delete t[s]:"object"===n(t[s])&&e.fillIfDefined(t[s],i[s],r))},e.protoExtend=function(t,e){for(var i=1;i<arguments.length;i++){var n=arguments[i];for(var r in n)t[r]=n[r]}return t},e.extend=function(t,e){for(var i=1;i<arguments.length;i++){var n=arguments[i];for(var r in n)n.hasOwnProperty(r)&&(t[r]=n[r])}return t},e.selectiveExtend=function(t,e,i){if(!Array.isArray(t))throw new Error("Array with property names expected as first argument");for(var n=2;n<arguments.length;n++)for(var r=arguments[n],s=0;s<t.length;s++){var o=t[s];r.hasOwnProperty(o)&&(e[o]=r[o])}return e},e.selectiveDeepExtend=function(t,i,n){var r=arguments.length<=3||void 0===arguments[3]?!1:arguments[3];if(Array.isArray(n))throw new TypeError("Arrays are not supported by deepExtend");for(var s=2;s<arguments.length;s++)for(var o=arguments[s],a=0;a<t.length;a++){var h=t[a];if(o.hasOwnProperty(h))if(n[h]&&n[h].constructor===Object)void 0===i[h]&&(i[h]={}),i[h].constructor===Object?e.deepExtend(i[h],n[h],!1,r):null===n[h]&&void 0!==i[h]&&r===!0?delete i[h]:i[h]=n[h];else{if(Array.isArray(n[h]))throw new TypeError("Arrays are not supported by deepExtend");null===n[h]&&void 0!==i[h]&&r===!0?delete i[h]:i[h]=n[h]}}return i},e.selectiveNotDeepExtend=function(t,i,n){var r=arguments.length<=3||void 0===arguments[3]?!1:arguments[3];if(Array.isArray(n))throw new TypeError("Arrays are not supported by deepExtend");for(var s in n)if(n.hasOwnProperty(s)&&-1==t.indexOf(s))if(n[s]&&n[s].constructor===Object)void 0===i[s]&&(i[s]={}),i[s].constructor===Object?e.deepExtend(i[s],n[s]):null===n[s]&&void 0!==i[s]&&r===!0?delete i[s]:i[s]=n[s];else if(Array.isArray(n[s])){i[s]=[];for(var o=0;o<n[s].length;o++)i[s].push(n[s][o])}else null===n[s]&&void 0!==i[s]&&r===!0?delete i[s]:i[s]=n[s];return i},e.deepExtend=function(t,i,n,r){for(var s in i)if(i.hasOwnProperty(s)||n===!0)if(i[s]&&i[s].constructor===Object)void 0===t[s]&&(t[s]={}),t[s].constructor===Object?e.deepExtend(t[s],i[s],n):null===i[s]&&void 0!==t[s]&&r===!0?delete t[s]:t[s]=i[s];else if(Array.isArray(i[s])){t[s]=[];for(var o=0;o<i[s].length;o++)t[s].push(i[s][o])}else null===i[s]&&void 0!==t[s]&&r===!0?delete t[s]:t[s]=i[s];return t},e.equalArray=function(t,e){if(t.length!=e.length)return!1;for(var i=0,n=t.length;n>i;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;n<t.length;n++)i.push(t[n]);return i.push(e),i},e.copyArray=function(t){for(var e=[],i=0;i<t.length;i++)e.push(t[i]);return e},e.getAbsoluteLeft=function(t){return t.getBoundingClientRect().left},e.getAbsoluteRight=function(t){return t.getBoundingClientRect().right},e.getAbsoluteTop=function(t){return t.getBoundingClientRect().top},e.addClassName=function(t,e){var i=t.className.split(" ");-1==i.indexOf(e)&&(i.push(e),t.className=i.join(" "))},e.removeClassName=function(t,e){var i=t.className.split(" "),n=i.indexOf(e);-1!=n&&(i.splice(n,1),t.className=i.join(" "))},e.forEach=function(t,e){var i,n;if(Array.isArray(t))for(i=0,n=t.length;n>i;i++)e(t[i],i,t);else for(i in t)t.hasOwnProperty(i)&&e(t[i],i,t)},e.toArray=function(t){var e=[];for(var i in t)t.hasOwnProperty(i)&&e.push(t[i]);return e},e.updateProperty=function(t,e,i){return t[e]!==i?(t[e]=i,!0):!1},e.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;s<t.length;s++)i.hasOwnProperty(t[s])&&"object"==n(i[t[s]])&&(r[t[s]]=e.bridgeObject(i[t[s]]));return r}return null},e.bridgeObject=function(t){if("object"==("undefined"==typeof t?"undefined":n(t))){var i=Object.create(t);for(var r in t)t.hasOwnProperty(r)&&"object"==n(t[r])&&(i[r]=e.bridgeObject(t[r]));return i}return null},e.insertSort=function(t,e){for(var i=0;i<t.length;i++){for(var n=t[i],r=i;r>0&&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;i<t.length;++i)n.push(e(t[i],i));return n}function o(t,e){return Object.prototype.hasOwnProperty.call(t,e)}function a(t,e){for(var i in e)o(e,i)&&(t[i]=e[i]);return o(e,"toString")&&(t.toString=e.toString),o(e,"valueOf")&&(t.valueOf=e.valueOf),t}function h(t,e,i,n){return It(t,e,i,n,!0).utc()}function l(){return{empty:!1,unusedTokens:[],unusedInput:[],overflow:-2,charsLeftOver:0,nullInput:!1,invalidMonth:null,invalidFormat:!1,userInvalidated:!1,iso:!1,parsedDateParts:[],meridiem:null}}function u(t){return null==t._pf&&(t._pf=l()),t._pf}function d(t){if(null==t._isValid){var e=u(t),i=hn.call(e.parsedDateParts,function(t){return null!=t});t._isValid=!isNaN(t._d.getTime())&&e.overflow<0&&!e.empty&&!e.invalidMonth&&!e.invalidWeekday&&!e.nullInput&&!e.invalidFormat&&!e.userInvalidated&&(!e.meridiem||e.meridiem&&i),t._strict&&(t._isValid=t._isValid&&0===e.charsLeftOver&&0===e.unusedTokens.length&&void 0===e.bigHour)}return t._isValid}function c(t){var e=h(NaN);return null!=t?a(u(e),t):u(e).userInvalidated=!0,e}function f(t){return void 0===t}function p(t,e){var i,n,r;if(f(e._isAMomentObject)||(t._isAMomentObject=e._isAMomentObject),f(e._i)||(t._i=e._i),f(e._f)||(t._f=e._f),f(e._l)||(t._l=e._l),f(e._strict)||(t._strict=e._strict),f(e._tzm)||(t._tzm=e._tzm),f(e._isUTC)||(t._isUTC=e._isUTC),f(e._offset)||(t._offset=e._offset),f(e._pf)||(t._pf=u(e)),f(e._locale)||(t._locale=e._locale),ln.length>0)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;s<t.length;){for(r=C(t[s]).split("-"),e=r.length,i=C(t[s+1]),i=i?i.split("-"):null;e>0;){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;i<t.length;i++)Nn[t[i]]=n}function tt(t,e){K(t,function(t,i,n,r){n._w=n._w||{},e(t,n._w,n,r)})}function et(t,e,i){null!=e&&o(Nn,t)&&Nn[t](e,i._a,i,t)}function it(t,e){return new Date(Date.UTC(t,e+1,0)).getUTCDate()}function nt(t,e){return n(this._months)?this._months[t.month()]:this._months[qn.test(e)?"format":"standalone"][t.month()]}function rt(t,e){return n(this._monthsShort)?this._monthsShort[t.month()]:this._monthsShort[qn.test(e)?"format":"standalone"][t.month()]}function st(t,e,i){var n,r,s,o=t.toLocaleLowerCase();if(!this._monthsParse)for(this._monthsParse=[],this._longMonthsParse=[],this._shortMonthsParse=[],n=0;12>n;++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;i<r.length;i++)s=r[i],n=(a.match(Q(s,t))||[])[0],n&&(o=a.substr(0,a.indexOf(n)),o.length>0&&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;r<t._f.length;r++)s=0,e=p({},t),null!=t._useUTC&&(e._useUTC=t._useUTC),e._f=t._f[r],Ot(e),d(e)&&(s+=u(e).charsLeftOver,s+=10*u(e).unusedTokens.length,u(e).score=s,(null==n||n>s)&&(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;r<e.length;++r)e[r].isValid()&&!e[r][t](i)||(i=e[r]);return i}function Nt(){var t=[].slice.call(arguments,0);return Wt("isBefore",t)}function Ft(){var t=[].slice.call(arguments,0);return Wt("isAfter",t)}function Vt(t){var e=W(t),i=e.year||0,n=e.quarter||0,r=e.month||0,s=e.week||0,o=e.day||0,a=e.hour||0,h=e.minute||0,l=e.second||0,u=e.millisecond||0;this._milliseconds=+u+1e3*l+6e4*h+1e3*a*60*60,this._days=+o+7*s,this._months=+r+3*n+12*i,this._data={},this._locale=A(),this._bubble()}function Bt(t){return t instanceof Vt}function Ut(t,e){H(t,0,0,function(){var t=this.utcOffset(),i="+";return 0>t&&(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()<this.clone().startOf(e).valueOf()):!1}function pe(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():this.clone().endOf(e).valueOf()<i.valueOf()):!1}function me(t,e,i,n){return n=n||"()",("("===n[0]?this.isAfter(t,i):!this.isBefore(t,i))&&(")"===n[1]?this.isBefore(e,i):!this.isAfter(e,i))}function ve(t,e){var i,n=v(t)?t:zt(t);return this.isValid()&&n.isValid()?(e=z(e||"millisecond"),"millisecond"===e?this.valueOf()===n.valueOf():(i=n.valueOf(),this.clone().startOf(e).valueOf()<=i&&i<=this.clone().endOf(e).valueOf())):!1}function ye(t,e){return this.isSame(t,e)||this.isAfter(t,e)}function ge(t,e){return this.isSame(t,e)||this.isBefore(t,e)}function _e(t,e,i){var n,r,s,o;return this.isValid()?(n=jt(t,this),n.isValid()?(r=6e4*(n.utcOffset()-this.utcOffset()),e=z(e),"year"===e||"month"===e||"quarter"===e?(o=xe(this,n),"quarter"===e?o/=3:"year"===e&&(o/=12)):(s=this-n,o="second"===e?s/1e3:"minute"===e?s/6e4:"hour"===e?s/36e5:"day"===e?(s-r)/864e5:"week"===e?(s-r)/6048e5:s),i?o:y(o)):NaN):NaN}function xe(t,e){var i,n,r=12*(e.year()-t.year())+(e.month()-t.month()),s=t.clone().add(r,"months");return 0>e-s?(i=t.clone().add(r-1,"months"),n=(e-s)/(s-i)):(i=t.clone().add(r+1,"months"),n=(e-s)/(i-s)),-(r+n)||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 0<t.year()&&t.year()<=9999?M(Date.prototype.toISOString)?this.toDate().toISOString():X(t,"YYYY-MM-DD[T]HH:mm:ss.SSS[Z]"):X(t,"YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]")}function Me(t){t||(t=this.isUtc()?e.defaultFormatUtc:e.defaultFormat);var i=X(this,t);return this.localeData().postformat(i)}function Se(t,e){return this.isValid()&&(v(t)&&t.isValid()||zt(t).isValid())?re({to:this,from:t}).locale(this.locale()).humanize(!e):this.localeData().invalidDate()}function Te(t){return this.from(zt(),t)}function De(t,e){return this.isValid()&&(v(t)&&t.isValid()||zt(t).isValid())?re({from:this,to:t}).locale(this.locale()).humanize(!e):this.localeData().invalidDate()}function ke(t){return this.to(zt(),t)}function Ce(t){var e;return void 0===t?this._locale._abbr:(e=A(t),null!=e&&(this._locale=e),this)}function Oe(){return this._locale}function Pe(t){switch(t=z(t)){case"year":this.month(0);case"quarter":case"month":this.date(1);case"week":case"isoWeek":case"day":case"date":this.hours(0);case"hour":this.minutes(0);case"minute":this.seconds(0);case"second":this.milliseconds(0)}return"week"===t&&this.weekday(0),"isoWeek"===t&&this.isoWeekday(1),"quarter"===t&&this.month(3*Math.floor(this.month()/3)),this}function Ee(t){return t=z(t),void 0===t||"millisecond"===t?this:("date"===t&&(t="day"),this.startOf(t).add(1,"isoWeek"===t?"week":t).subtract(1,"ms"))}function Le(){return this._d.valueOf()-6e4*(this._offset||0)}function Ye(){return Math.floor(this.valueOf()/1e3)}function Ae(){return this._offset?new Date(this.valueOf()):this._d}function Re(){var t=this;return[t.year(),t.month(),t.date(),t.hour(),t.minute(),t.second(),t.millisecond()]}function Ie(){var t=this;return{years:t.year(),months:t.month(),date:t.date(),hours:t.hours(),minutes:t.minutes(),seconds:t.seconds(),milliseconds:t.milliseconds()}}function ze(){return this.isValid()?this.toISOString():null}function We(){return d(this)}function Ne(){return a({},u(this))}function Fe(){return u(this).overflow}function Ve(){return{input:this._i,format:this._f,locale:this._locale,isUTC:this._isUTC,strict:this._strict}}function Be(t,e){H(0,[t,t.length],0,e)}function Ue(t){return Xe.call(this,t,this.week(),this.weekday(),this.localeData()._week.dow,this.localeData()._week.doy)}function He(t){return Xe.call(this,t,this.isoWeek(),this.isoWeekday(),1,4)}function je(){return St(this.year(),1,4)}function Ge(){var t=this.localeData()._week;return St(this.year(),t.dow,t.doy)}function Xe(t,e,i,n,r){var s;return null==t?Mt(this,n,r).year:(s=St(t,n,r),e>s&&(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<is.s&&["s",r]||1>=s&&["m"]||s<is.m&&["mm",s]||1>=o&&["h"]||o<is.h&&["hh",o]||1>=a&&["d"]||a<is.d&&["dd",a]||1>=h&&["M"]||h<is.M&&["MM",h]||1>=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<this.length;++e)if(this[e]===t)return e;return-1},H("M",["MM",2],"Mo",function(){return this.month()+1}),H("MMM",0,0,function(t){return this.localeData().monthsShort(this,t)}),H("MMMM",0,0,function(t){return this.localeData().months(this,t)}),I("month","M"),q("M",Dn),q("MM",Dn,bn),q("MMM",function(t,e){return e.monthsShortRegex(t)}),q("MMMM",function(t,e){return e.monthsRegex(t)}),K(["M","MM"],function(t,e){e[Vn]=g(t)-1}),K(["MMM","MMMM"],function(t,e,i,n){var r=i._locale.monthsParse(t,n,i._strict);null!=r?e[Vn]=r:u(i).invalidMonth=t});var qn=/D[oD]?(\[[^\[\]]*\]|\s+)+MMMM?/,Qn="January_February_March_April_May_June_July_August_September_October_November_December".split("_"),$n="Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),Jn=zn,Kn=zn,tr=/^\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)?)?/,er=/^\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)?)?/,ir=/Z|[+-]\d\d(?::?\d\d)?/,nr=[["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}/]],rr=[["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/]],sr=/^\/?Date\((\-?\d+)/i;e.createFromInputFallback=w("moment construction falls back to js Date. This is discouraged and will be removed in upcoming major release. Please refer to https://github.com/moment/moment/issues/1407 for more info.",function(t){t._d=new Date(t._i+(t._useUTC?" UTC":""))}),H("Y",0,0,function(){var t=this.year();return 9999>=t?""+t:"+"+t}),H(0,["YY",2],0,function(){return this.year()%100}),H(0,["YYYY",4],0,"year"),H(0,["YYYYY",5],0,"year"),H(0,["YYYYYY",6,!0],0,"year"),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;i<t[e].redundant.length;i++)t[e].redundant[i].parentNode.removeChild(t[e].redundant[i]);t[e].redundant=[]}},e.resetElements=function(t){e.prepareElements(t),e.cleanupElements(t),e.prepareElements(t)},e.getSVGElement=function(t,e,i){var n;return e.hasOwnProperty(t)?e[t].redundant.length>0?(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;s<e.replace.length;s++){var o=e.replace[s];r.push({name:o,original:t[o]}),n.replace(t,o)}return n._extended={object:t,methods:r},n},i.prototype.destroy=function(){if(this.flush(),this._extended){for(var t=this._extended.object,e=this._extended.methods,i=0;i<e.length;i++){var n=e[i];n.original?t[n.name]=n.original:delete t[n.name]}this._extended=null}},i.prototype.replace=function(t,e){var i=this,n=t[e];if(!n)throw new Error("Method "+e+" undefined");t[e]=function(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];i.queue({args:t,fn:n,context:this})}},i.prototype.queue=function(t){"function"==typeof t?this._queue.push({fn:t}):this._queue.push(t),this._flushIfNeeded()},i.prototype._flushIfNeeded=function(){if(this._queue.length>this.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.x<this.scale.y?this.scale.y=this.scale.x:this.scale.x=this.scale.y),this.scale.z*=this.verticalRatio,this.scale.value=1/(this.valueMax-this.valueMin);var t=(this.xMax+this.xMin)/2*this.scale.x,e=(this.yMax+this.yMin)/2*this.scale.y,i=(this.zMax+this.zMin)/2*this.scale.z;this.camera.setArmLocation(t,e,i)},n.prototype._convert3Dto2D=function(t){var e=this._convertPointToTranslation(t);return this._convertTranslationToScreen(e)},n.prototype._convertPointToTranslation=function(t){var e=t.x*this.scale.x,i=t.y*this.scale.y,n=t.z*this.scale.z,r=this.camera.getCameraLocation().x,s=this.camera.getCameraLocation().y,o=this.camera.getCameraLocation().z,a=Math.sin(this.camera.getCameraRotation().x),h=Math.cos(this.camera.getCameraRotation().x),l=Math.sin(this.camera.getCameraRotation().y),u=Math.cos(this.camera.getCameraRotation().y),c=Math.sin(this.camera.getCameraRotation().z),f=Math.cos(this.camera.getCameraRotation().z),p=u*(c*(i-s)+f*(e-r))-l*(n-o),m=a*(u*(n-o)+l*(c*(i-s)+f*(e-r)))+h*(f*(i-s)-c*(e-r)),v=h*(u*(n-o)+l*(c*(i-s)+f*(e-r)))-a*(f*(i-s)-c*(e-r));return new d(p,m,v)},n.prototype._convertTranslationToScreen=function(t){var e,i,n=this.eye.x,r=this.eye.y,s=this.eye.z,o=t.x,a=t.y,h=t.z;return this.showPerspective?(e=(o-n)*(s/h),i=(a-r)*(s/h)):(e=o*-(s/this.camera.getArmLength()),i=a*-(s/this.camera.getArmLength())),new c(this.xcenter+e*this.frame.canvas.clientWidth,this.ycenter-i*this.frame.canvas.clientWidth)},n.prototype._setBackgroundColor=function(t){var e="white",i="gray",n=1;if("string"==typeof t)e=t,i="none",n=0;else if("object"===("undefined"==typeof t?"undefined":o(t)))void 0!==t.fill&&(e=t.fill),void 0!==t.stroke&&(i=t.stroke),void 0!==t.strokeWidth&&(n=t.strokeWidth);else if(void 0!==t)throw"Unsupported type of backgroundColor";this.frame.style.backgroundColor=e,this.frame.style.borderColor=i,this.frame.style.borderWidth=n+"px",this.frame.style.borderStyle="solid"},n.STYLE={BAR:0,BARCOLOR:1,BARSIZE:2,DOT:3,DOTLINE:4,DOTCOLOR:5,DOTSIZE:6,GRID:7,LINE:8,SURFACE:9},n.prototype._getStyleNumber=function(t){switch(t){case"dot":return n.STYLE.DOT;case"dot-line":return n.STYLE.DOTLINE;case"dot-color":return n.STYLE.DOTCOLOR;case"dot-size":return n.STYLE.DOTSIZE;case"line":return n.STYLE.LINE;case"grid":return n.STYLE.GRID;case"surface":return n.STYLE.SURFACE;case"bar":return n.STYLE.BAR;case"bar-color":return n.STYLE.BARCOLOR;case"bar-size":return n.STYLE.BARSIZE}return-1},n.prototype._determineColumnIndexes=function(t,e){if(this.style===n.STYLE.DOT||this.style===n.STYLE.DOTLINE||this.style===n.STYLE.LINE||this.style===n.STYLE.GRID||this.style===n.STYLE.SURFACE||this.style===n.STYLE.BAR)this.colX=0,this.colY=1,this.colZ=2,this.colValue=void 0,t.getNumberOfColumns()>3&&(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;n<t.length;n++)-1==i.indexOf(t[n][e])&&i.push(t[n][e]);return i},n.prototype.getColumnRange=function(t,e){for(var i={min:t[0][e],max:t[0][e]},n=0;n<t.length;n++)i.min>t[n][e]&&(i.min=t[n][e]),i.max<t[n][e]&&(i.max=t[n][e]);return i},n.prototype._dataInitialize=function(t,e){var i=this;if(this.dataSet&&this.dataSet.off("*",this._onChange),void 0!==t){Array.isArray(t)&&(t=new h(t));var r;if(!(t instanceof h||t instanceof l))throw new Error("Array, DataSet, or DataView expected");if(r=t.get(),0!=r.length){this.dataSet=t,this.dataTable=r,this._onChange=function(){i.setData(i.dataSet)},this.dataSet.on("*",this._onChange),this.colX="x",this.colY="y",this.colZ="z",this.colValue="style",this.colFilter="filter",r[0].hasOwnProperty("filter")&&void 0===this.dataFilter&&(this.dataFilter=new p(t,this.colFilter,this),this.dataFilter.setOnLoadCallback(function(){i.redraw()}));var s=this.style==n.STYLE.BAR||this.style==n.STYLE.BARCOLOR||this.style==n.STYLE.BARSIZE;if(s){if(void 0!==this.defaultXBarWidth)this.xBarWidth=this.defaultXBarWidth;else{var o=this.getDistinctValues(r,this.colX);this.xBarWidth=o[1]-o[0]||1}if(void 0!==this.defaultYBarWidth)this.yBarWidth=this.defaultYBarWidth;else{var a=this.getDistinctValues(r,this.colY);this.yBarWidth=a[1]-a[0]||1}}var u=this.getColumnRange(r,this.colX);s&&(u.min-=this.xBarWidth/2,u.max+=this.xBarWidth/2),this.xMin=void 0!==this.defaultXMin?this.defaultXMin:u.min,this.xMax=void 0!==this.defaultXMax?this.defaultXMax:u.max,this.xMax<=this.xMin&&(this.xMax=this.xMin+1),this.xStep=void 0!==this.defaultXStep?this.defaultXStep:(this.xMax-this.xMin)/5;var d=this.getColumnRange(r,this.colY);s&&(d.min-=this.yBarWidth/2,d.max+=this.yBarWidth/2),this.yMin=void 0!==this.defaultYMin?this.defaultYMin:d.min,this.yMax=void 0!==this.defaultYMax?this.defaultYMax:d.max,this.yMax<=this.yMin&&(this.yMax=this.yMin+1),this.yStep=void 0!==this.defaultYStep?this.defaultYStep:(this.yMax-this.yMin)/5;var c=this.getColumnRange(r,this.colZ);if(this.zMin=void 0!==this.defaultZMin?this.defaultZMin:c.min,this.zMax=void 0!==this.defaultZMax?this.defaultZMax:c.max,this.zMax<=this.zMin&&(this.zMax=this.zMin+1),this.zStep=void 0!==this.defaultZStep?this.defaultZStep:(this.zMax-this.zMin)/5,void 0!==this.colValue){var f=this.getColumnRange(r,this.colValue);this.valueMin=void 0!==this.defaultValueMin?this.defaultValueMin:f.min,this.valueMax=void 0!==this.defaultValueMax?this.defaultValueMax:f.max,this.valueMax<=this.valueMin&&(this.valueMax=this.valueMin+1)}this._setScale()}}},n.prototype._getDataPoints=function(t){var e,i,r,s,o,a,h=[];if(this.style===n.STYLE.GRID||this.style===n.STYLE.SURFACE){var l=[],u=[];for(r=0;r<this.getNumberOfRows(t);r++)e=t[r][this.colX]||0,i=t[r][this.colY]||0,-1===l.indexOf(e)&&l.push(e),-1===u.indexOf(i)&&u.push(i);var c=function(t,e){return t-e};l.sort(c),u.sort(c);var f=[];for(r=0;r<t.length;r++){e=t[r][this.colX]||0,i=t[r][this.colY]||0,s=t[r][this.colZ]||0;var p=l.indexOf(e),m=u.indexOf(i);void 0===f[p]&&(f[p]=[]);var v=new d;v.x=e,v.y=i,v.z=s,o={},o.point=v,o.trans=void 0,o.screen=void 0,o.bottom=new d(e,i,this.zMin),f[p][m]=o,h.push(o)}for(e=0;e<f.length;e++)for(i=0;i<f[e].length;i++)f[e][i]&&(f[e][i].pointRight=e<f.length-1?f[e+1][i]:void 0,f[e][i].pointTop=i<f[e].length-1?f[e][i+1]:void 0,f[e][i].pointCross=e<f.length-1&&i<f[e].length-1?f[e+1][i+1]:void 0)}else for(r=0;r<t.length;r++)a=new d,a.x=t[r][this.colX]||0,a.y=t[r][this.colY]||0,a.z=t[r][this.colZ]||0,void 0!==this.colValue&&(a.value=t[r][this.colValue]||0),o={},o.point=a,o.bottom=new d(a.x,a.y,this.zMin),o.trans=void 0,o.screen=void 0,h.push(o);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)},s=function(t){e._onTooltip(t)};u.addEventListener(this.frame.canvas,"keydown",onkeydown),u.addEventListener(this.frame.canvas,"mousedown",i),u.addEventListener(this.frame.canvas,"touchstart",n),u.addEventListener(this.frame.canvas,"mousewheel",r),u.addEventListener(this.frame.canvas,"mousemove",s),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"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.defaultXCenter.charAt(this.defaultXCenter.length-1)?this.xcenter=parseFloat(this.defaultXCenter)/100*this.frame.canvas.clientWidth:this.xcenter=parseFloat(this.defaultXCenter),"%"===this.defaultYCenter.charAt(this.defaultYCenter.length-1)?this.ycenter=parseFloat(this.defaultYCenter)/100*(this.frame.canvas.clientHeight-this.frame.filter.clientHeight):this.ycenter=parseFloat(this.defaultYCenter)},n.prototype.setCameraPosition=function(t){void 0!==t&&(void 0!==t.horizontal&&void 0!==t.vertical&&this.camera.setArmRotation(t.horizontal,t.vertical),void 0!==t.distance&&this.camera.setArmLength(t.distance),this.redraw())},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){var e=void 0;if(this.animationStop(),void 0!==t){if(void 0!==t.width&&(this.width=t.width),void 0!==t.height&&(this.height=t.height),void 0!==t.xCenter&&(this.defaultXCenter=t.xCenter),void 0!==t.yCenter&&(this.defaultYCenter=t.yCenter),void 0!==t.filterLabel&&(this.filterLabel=t.filterLabel),void 0!==t.legendLabel&&(this.legendLabel=t.legendLabel),void 0!==t.xLabel&&(this.xLabel=t.xLabel),void 0!==t.yLabel&&(this.yLabel=t.yLabel),void 0!==t.zLabel&&(this.zLabel=t.zLabel),void 0!==t.xValueLabel&&(this.xValueLabel=t.xValueLabel),void 0!==t.yValueLabel&&(this.yValueLabel=t.yValueLabel),void 0!==t.zValueLabel&&(this.zValueLabel=t.zValueLabel),void 0!==t.dotSizeRatio&&(this.dotSizeRatio=t.dotSizeRatio),void 0!==t.style){var i=this._getStyleNumber(t.style);-1!==i&&(this.style=i)}void 0!==t.showGrid&&(this.showGrid=t.showGrid),void 0!==t.showPerspective&&(this.showPerspective=t.showPerspective),void 0!==t.showShadow&&(this.showShadow=t.showShadow),void 0!==t.tooltip&&(this.showTooltip=t.tooltip),void 0!==t.showAnimationControls&&(this.showAnimationControls=t.showAnimationControls),void 0!==t.keepAspectRatio&&(this.keepAspectRatio=t.keepAspectRatio),void 0!==t.verticalRatio&&(this.verticalRatio=t.verticalRatio),void 0!==t.animationInterval&&(this.animationInterval=t.animationInterval),void 0!==t.animationPreload&&(this.animationPreload=t.animationPreload),void 0!==t.animationAutoStart&&(this.animationAutoStart=t.animationAutoStart),void 0!==t.xBarWidth&&(this.defaultXBarWidth=t.xBarWidth),void 0!==t.yBarWidth&&(this.defaultYBarWidth=t.yBarWidth),void 0!==t.xMin&&(this.defaultXMin=t.xMin),void 0!==t.xStep&&(this.defaultXStep=t.xStep),void 0!==t.xMax&&(this.defaultXMax=t.xMax),void 0!==t.yMin&&(this.defaultYMin=t.yMin),void 0!==t.yStep&&(this.defaultYStep=t.yStep),void 0!==t.yMax&&(this.defaultYMax=t.yMax),void 0!==t.zMin&&(this.defaultZMin=t.zMin),void 0!==t.zStep&&(this.defaultZStep=t.zStep),void 0!==t.zMax&&(this.defaultZMax=t.zMax),void 0!==t.valueMin&&(this.defaultValueMin=t.valueMin),void 0!==t.valueMax&&(this.defaultValueMax=t.valueMax),void 0!==t.backgroundColor&&this._setBackgroundColor(t.backgroundColor),void 0!==t.cameraPosition&&(e=t.cameraPosition),void 0!==e&&(this.camera.setArmRotation(e.horizontal,e.vertical),this.camera.setArmLength(e.distance)),void 0!==t.axisColor&&(this.axisColor=t.axisColor),void 0!==t.gridColor&&(this.gridColor=t.gridColor),t.dataColor&&("string"==typeof t.dataColor?(this.dataColor.fill=t.dataColor,this.dataColor.stroke=t.dataColor):(t.dataColor.fill&&(this.dataColor.fill=t.dataColor.fill),t.dataColor.stroke&&(this.dataColor.stroke=t.dataColor.stroke),void 0!==t.dataColor.strokeWidth&&(this.dataColor.strokeWidth=t.dataColor.strokeWidth)))}this.setSize(this.width,this.height),this.dataTable&&this.setData(this.dataTable),this.animationAutoStart&&this.dataFilter&&this.animationStart()},n.prototype.redraw=function(){if(void 0===this.dataPoints)throw"Error: graph data not initialized";this._resizeCanvas(),this._resizeCenter(),this._redrawSlider(),this._redrawClear(),this._redrawAxis(),this.style===n.STYLE.GRID||this.style===n.STYLE.SURFACE?this._redrawDataGrid():this.style===n.STYLE.LINE?this._redrawDataLine():this.style===n.STYLE.BAR||this.style===n.STYLE.BARCOLOR||this.style===n.STYLE.BARSIZE?this._redrawDataBar():this._redrawDataDot(),this._redrawInfo(),this._redrawLegend()},n.prototype._redrawClear=function(){var t=this.frame.canvas,e=t.getContext("2d");e.clearRect(0,0,t.width,t.height)},n.prototype._redrawLegend=function(){var t;if(this.style===n.STYLE.DOTCOLOR||this.style===n.STYLE.DOTSIZE){var e,i,r=this.frame.clientWidth*this.dotSizeRatio;this.style===n.STYLE.DOTSIZE?(e=r/2,i=r/2+2*r):(e=20,i=20);var s=Math.max(.25*this.frame.clientHeight,100),o=this.margin,a=this.frame.clientWidth-this.margin,h=a-i,l=o+s}var u=this.frame.canvas,d=u.getContext("2d");if(d.lineWidth=1,d.font="14px arial",this.style===n.STYLE.DOTCOLOR){var c=0,f=s;for(t=c;f>t;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()<this.valueMin&&_.next();!_.end();)t=l-(_.getCurrent()-this.valueMin)/(this.valueMax-this.valueMin)*s,d.beginPath(),d.moveTo(h-g,t),d.lineTo(h,t),d.stroke(),d.textAlign="right",d.textBaseline="middle",d.fillStyle=this.axisColor,d.fillText(_.getCurrent(),h-2*g,t),_.next();d.textAlign="right",d.textBaseline="top";var x=this.legendLabel;d.fillText(x,a,l+this.margin)}},n.prototype._redrawFilter=function(){if(this.frame.filter.innerHTML="",this.dataFilter){var t={visible:this.showAnimationControls},e=new m(this.frame.filter,t);this.frame.filter.slider=e,this.frame.filter.style.padding="10px",e.setValues(this.dataFilter.values),e.setPlayInterval(this.animationInterval);var i=this,n=function(){var t=e.getIndex();i.dataFilter.selectValue(t),i.dataPoints=i.dataFilter._getDataPoints(),i.redraw()};e.setOnChangeCallback(n)}else this.frame.filter.slider=void 0},n.prototype._redrawSlider=function(){void 0!==this.frame.filter.slider&&this.frame.filter.slider.redraw()},n.prototype._redrawInfo=function(){if(this.dataFilter){var t=this.frame.canvas,e=t.getContext("2d");e.font="14px arial",e.lineStyle="gray",e.fillStyle="gray",e.textAlign="left",e.textBaseline="top";var i=this.margin,n=this.margin;e.fillText(this.dataFilter.getLabel()+": "+this.dataFilter.getSelectedValue(),i,n)}},n.prototype._redrawAxis=function(){var t,e,i,n,r,s,o,a,h,l,u,c,f,p=this.frame.canvas,m=p.getContext("2d");m.font=24/this.camera.getArmLength()+"px arial";var y=.025/this.scale.x,g=.025/this.scale.y,_=5/this.camera.getArmLength(),x=this.camera.getArmRotation().horizontal;for(m.lineWidth=1,n=void 0===this.defaultXStep,i=new v(this.xMin,this.xMax,this.xStep,n),i.start(),i.getCurrent()<this.xMin&&i.next();!i.end();){var w=i.getCurrent();this.showGrid?(t=this._convert3Dto2D(new d(w,this.yMin,this.zMin)),e=this._convert3Dto2D(new d(w,this.yMax,this.zMin)),m.strokeStyle=this.gridColor,m.beginPath(),m.moveTo(t.x,t.y),m.lineTo(e.x,e.y),m.stroke()):(t=this._convert3Dto2D(new d(w,this.yMin,this.zMin)),e=this._convert3Dto2D(new d(w,this.yMin+y,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(w,this.yMax,this.zMin)),e=this._convert3Dto2D(new d(w,this.yMax-y,this.zMin)),m.strokeStyle=this.axisColor,m.beginPath(),m.moveTo(t.x,t.y),m.lineTo(e.x,e.y),m.stroke()),o=Math.cos(x)>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()<this.yMin&&i.next();!i.end();)this.showGrid?(t=this._convert3Dto2D(new d(this.xMin,i.getCurrent(),this.zMin)),e=this._convert3Dto2D(new d(this.xMax,i.getCurrent(),this.zMin)),m.strokeStyle=this.gridColor,m.beginPath(),m.moveTo(t.x,t.y),m.lineTo(e.x,e.y),m.stroke()):(t=this._convert3Dto2D(new d(this.xMin,i.getCurrent(),this.zMin)),e=this._convert3Dto2D(new d(this.xMin+g,i.getCurrent(),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,i.getCurrent(),this.zMin)),e=this._convert3Dto2D(new d(this.xMax-g,i.getCurrent(),this.zMin)),m.strokeStyle=this.axisColor,m.beginPath(),m.moveTo(t.x,t.y),m.lineTo(e.x,e.y),m.stroke()),s=Math.sin(x)>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()<this.zMin&&i.next(),s=Math.cos(x)>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;s<this.dataPoints.length;s++){var v=this._convertPointToTranslation(this.dataPoints[s].point),y=this._convertTranslationToScreen(v);this.dataPoints[s].trans=v,this.dataPoints[s].screen=y;var g=this._convertPointToTranslation(this.dataPoints[s].bottom);this.dataPoints[s].dist=this.showPerspective?g.length():-g.z}var _=function(t,e){return e.dist-t.dist};if(this.dataPoints.sort(_),this.style===n.STYLE.SURFACE){for(s=0;s<this.dataPoints.length;s++)if(t=this.dataPoints[s],e=this.dataPoints[s].pointRight,i=this.dataPoints[s].pointTop,r=this.dataPoints[s].pointCross,void 0!==t&&void 0!==e&&void 0!==i&&void 0!==r){if(this.showGrayBottom||this.showShadow){var x=d.subtract(r.trans,t.trans),w=d.subtract(i.trans,e.trans),b=d.crossProduct(x,w),M=b.length();o=b.z>0}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;s<this.dataPoints.length;s++)t=this.dataPoints[s],e=this.dataPoints[s].pointRight,i=this.dataPoints[s].pointTop,void 0!==t&&void 0!==e&&(f=(t.point.z+e.point.z)/2,l=240*(1-(f-this.zMin)*this.scale.z/this.verticalRatio),m.lineWidth=2*this._getStrokeWidth(t),m.strokeStyle=this._hsv2rgb(l,1,1),m.beginPath(),m.moveTo(t.screen.x,t.screen.y),m.lineTo(e.screen.x,e.screen.y),m.stroke()),void 0!==t&&void 0!==i&&(f=(t.point.z+i.point.z)/2,l=240*(1-(f-this.zMin)*this.scale.z/this.verticalRatio),m.lineWidth=2*this._getStrokeWidth(t),m.strokeStyle=this._hsv2rgb(l,1,1),m.beginPath(),m.moveTo(t.screen.x,t.screen.y),m.lineTo(i.screen.x,i.screen.y),m.stroke())}},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._redrawDataDot=function(){var t,e=this.frame.canvas,i=e.getContext("2d");if(!(void 0===this.dataPoints||this.dataPoints.length<=0)){for(t=0;t<this.dataPoints.length;t++){var r=this._convertPointToTranslation(this.dataPoints[t].point),s=this._convertTranslationToScreen(r);this.dataPoints[t].trans=r,this.dataPoints[t].screen=s;var o=this._convertPointToTranslation(this.dataPoints[t].bottom);this.dataPoints[t].dist=this.showPerspective?o.length():-o.z}var a=function(t,e){return e.dist-t.dist};this.dataPoints.sort(a);var h=this.frame.clientWidth*this.dotSizeRatio;for(t=0;t<this.dataPoints.length;t++){var l=this.dataPoints[t];if(this.style===n.STYLE.DOTLINE){var u=this._convert3Dto2D(l.bottom);i.lineWidth=1,i.strokeStyle=this.gridColor,i.beginPath(),i.moveTo(u.x,u.y),i.lineTo(l.screen.x,l.screen.y),i.stroke()}var d;d=this.style===n.STYLE.DOTSIZE?h/2+2*h*(l.point.value-this.valueMin)/(this.valueMax-this.valueMin):h;var c;c=this.showPerspective?d/-l.trans.z:d*-(this.eye.z/this.camera.getArmLength()),0>c&&(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;t<this.dataPoints.length;t++){var a=this._convertPointToTranslation(this.dataPoints[t].point),h=this._convertTranslationToScreen(a);this.dataPoints[t].trans=a,this.dataPoints[t].screen=h;var l=this._convertPointToTranslation(this.dataPoints[t].bottom);this.dataPoints[t].dist=this.showPerspective?l.length():-l.z}var u=function(t,e){return e.dist-t.dist};this.dataPoints.sort(u),o.lineJoin="round",o.lineCap="round";var c=this.xBarWidth/2,f=this.yBarWidth/2;for(t=0;t<this.dataPoints.length;t++){var p,m,v,y=this.dataPoints[t];this.style===n.STYLE.BARCOLOR?(p=240*(1-(y.point.value-this.valueMin)*this.scale.value),m=this._hsv2rgb(p,1,1),v=this._hsv2rgb(p,1,.8)):this.style===n.STYLE.BARSIZE?(m=this.dataColor.fill,v=this.dataColor.stroke):(p=240*(1-(y.point.z-this.zMin)*this.scale.z/this.verticalRatio),m=this._hsv2rgb(p,1,1),v=this._hsv2rgb(p,1,.8)),this.style===n.STYLE.BARSIZE&&(c=this.xBarWidth/2*((y.point.value-this.valueMin)/(this.valueMax-this.valueMin)*.8+.2),f=this.yBarWidth/2*((y.point.value-this.valueMin)/(this.valueMax-this.valueMin)*.8+.2));var g=this,_=y.point,x=[{point:new d(_.x-c,_.y-f,_.z)},{point:new d(_.x+c,_.y-f,_.z)},{point:new d(_.x+c,_.y+f,_.z)},{point:new d(_.x-c,_.y+f,_.z)}],w=[{point:new d(_.x-c,_.y-f,this.zMin)},{point:new d(_.x+c,_.y-f,this.zMin)},{point:new d(_.x+c,_.y+f,this.zMin)},{point:new d(_.x-c,_.y+f,this.zMin)}];x.forEach(function(t){t.screen=g._convert3Dto2D(t.point)}),w.forEach(function(t){t.screen=g._convert3Dto2D(t.point)});var b=[{corners:x,center:d.avg(w[0].point,w[2].point)},{corners:[x[0],x[1],w[1],w[0]],center:d.avg(w[1].point,w[0].point)},{corners:[x[1],x[2],w[2],w[1]],center:d.avg(w[2].point,w[1].point)},{corners:[x[2],x[3],w[3],w[2]],center:d.avg(w[3].point,w[2].point)},{corners:[x[3],x[0],w[0],w[3]],center:d.avg(w[0].point,w[3].point)}];for(y.surfaces=b,e=0;e<b.length;e++){i=b[e];var M=this._convertPointToTranslation(i.center);i.dist=this.showPerspective?M.length():-M.z}for(b.sort(function(t,e){var i=e.dist-t.dist;return i?i:t.corners===x?1:e.corners===x?-1:0}),o.lineWidth=this._getStrokeWidth(y),o.strokeStyle=v,o.fillStyle=m,e=2;e<b.length;e++)i=b[e],r=i.corners,o.beginPath(),o.moveTo(r[3].screen.x,r[3].screen.y),o.lineTo(r[0].screen.x,r[0].screen.y),o.lineTo(r[1].screen.x,r[1].screen.y),o.lineTo(r[2].screen.x,r[2].screen.y),o.lineTo(r[3].screen.x,r[3].screen.y),o.fill(),o.stroke()}}},n.prototype._redrawDataLine=function(){var t,e,i=this.frame.canvas,n=i.getContext("2d");if(!(void 0===this.dataPoints||this.dataPoints.length<=0)){for(e=0;e<this.dataPoints.length;e++){var r=this._convertPointToTranslation(this.dataPoints[e].point),s=this._convertTranslationToScreen(r);this.dataPoints[e].trans=r,this.dataPoints[e].screen=s}if(this.dataPoints.length>0){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;e<this.dataPoints.length;e++)t=this.dataPoints[e],n.lineTo(t.screen.x,t.screen.y);n.stroke()}}},n.prototype._onMouseDown=function(t){if(t=t||window.event,this.leftButtonDown&&this._onMouseUp(t),this.leftButtonDown=t.which?1===t.which:1===t.button,this.leftButtonDown||this.touchDown){this.startMouseX=r(t),this.startMouseY=s(t),this.startStart=new Date(this.start),this.startEnd=new Date(this.end),this.startArmRotation=this.camera.getArmRotation(),this.frame.style.cursor="move";var e=this;this.onmousemove=function(t){e._onMouseMove(t)},this.onmouseup=function(t){e._onMouseUp(t)},u.addEventListener(document,"mousemove",e.onmousemove),u.addEventListener(document,"mouseup",e.onmouseup),u.preventDefault(t)}},n.prototype._onMouseMove=function(t){t=t||window.event;var e=parseFloat(r(t))-this.startMouseX,i=parseFloat(s(t))-this.startMouseY,n=this.startArmRotation.horizontal+e/200,o=this.startArmRotation.vertical+i/200,a=4,h=Math.sin(a/360*2*Math.PI);Math.abs(Math.sin(n))<h&&(n=Math.round(n/Math.PI)*Math.PI-.001),Math.abs(Math.cos(n))<h&&(n=(Math.round(n/Math.PI-.5)+.5)*Math.PI-.001),Math.abs(Math.sin(o))<h&&(o=Math.round(o/Math.PI)*Math.PI),Math.abs(Math.cos(o))<h&&(o=(Math.round(o/Math.PI-.5)+.5)*Math.PI),this.camera.setArmRotation(n,o),this.redraw();var l=this.getCameraPosition();this.emit("cameraPositionChange",l),u.preventDefault(t)},n.prototype._onMouseUp=function(t){this.frame.style.cursor="auto",this.leftButtonDown=!1,u.removeEventListener(document,"mousemove",this.onmousemove),u.removeEventListener(document,"mouseup",this.onmouseup),u.preventDefault(t)},n.prototype._onTooltip=function(t){var e=300,i=this.frame.getBoundingClientRect(),n=r(t)-i.left,o=s(t)-i.top;if(this.showTooltip){if(this.tooltipTimeout&&clearTimeout(this.tooltipTimeout),this.leftButtonDown)return void this._hideTooltip();if(this.tooltip&&this.tooltip.dataPoint){var a=this._dataPointFromXY(n,o);a!==this.tooltip.dataPoint&&(a?this._showTooltip(a):this._hideTooltip())}else{var h=this;this.tooltipTimeout=setTimeout(function(){h.tooltipTimeout=null;var t=h._dataPointFromXY(n,o);t&&h._showTooltip(t)},e)}}},n.prototype._onTouchStart=function(t){this.touchDown=!0;var e=this;this.ontouchmove=function(t){e._onTouchMove(t)},this.ontouchend=function(t){e._onTouchEnd(t)},u.addEventListener(document,"touchmove",e.ontouchmove),u.addEventListener(document,"touchend",e.ontouchend),this._onMouseDown(t)},n.prototype._onTouchMove=function(t){this._onMouseMove(t)},n.prototype._onTouchEnd=function(t){this.touchDown=!1,u.removeEventListener(document,"touchmove",this.ontouchmove),u.removeEventListener(document,"touchend",this.ontouchend),this._onMouseUp(t)},n.prototype._onWheel=function(t){t||(t=window.event);var e=0;if(t.wheelDelta?e=t.wheelDelta/120:t.detail&&(e=-t.detail/3),e){var i=this.camera.getArmLength(),n=i*(1-e/10);this.camera.setArmLength(n),this.redraw(),this._hideTooltip()}var r=this.getCameraPosition();this.emit("cameraPositionChange",r),u.preventDefault(t)},n.prototype._insideTriangle=function(t,e){function i(t){return t>0?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<this.dataPoints.length;i++){s=this.dataPoints[i];var v=s.screen;if(v){var y=Math.abs(t-v.x),g=Math.abs(e-v.y),_=Math.sqrt(y*y+g*g);(null===a||a>_)&&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="<table><tr><td>"+this.xLabel+":</td><td>"+t.point.x+"</td></tr><tr><td>"+this.yLabel+":</td><td>"+t.point.y+"</td></tr><tr><td>"+this.zLabel+":</td><td>"+t.point.z+"</td></tr></table>",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;r<i.length;r++)if(n=i[r],n===e||n.fn===e){i.splice(r,1);break}return this},i.prototype.emit=function(t){this._callbacks=this._callbacks||{};var e=[].slice.call(arguments,1),i=this._callbacks[t];if(i){i=i.slice(0);for(var n=0,r=i.length;r>n;++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(t<this.values.length){this._getDataPoints(t);void 0===e.progress&&(e.progress=document.createElement("DIV"),e.progress.style.position="absolute",e.progress.style.color="gray",e.appendChild(e.progress));var i=this.getLoadedProgress();e.progress.innerHTML="Loading animation... "+i+"%",e.progress.style.bottom="60px",e.progress.style.left="10px";var n=this;setTimeout(function(){n.loadInBackground(t+1)},10),this.loaded=!1}else this.loaded=!0,void 0!==e.progress&&(e.removeChild(e.progress),e.progress=void 0),this.onLoadCallback&&this.onLoadCallback()},t.exports=n},function(t,e,i){function n(t,e){if(void 0===t)throw"Error: No container element defined";if(this.container=t,this.visible=e&&void 0!=e.visible?e.visible:!0,this.visible){this.frame=document.createElement("DIV"),this.frame.style.width="100%",this.frame.style.position="relative",this.container.appendChild(this.frame),this.frame.prev=document.createElement("INPUT"),this.frame.prev.type="BUTTON",this.frame.prev.value="Prev",this.frame.appendChild(this.frame.prev),this.frame.play=document.createElement("INPUT"),this.frame.play.type="BUTTON",this.frame.play.value="Play",this.frame.appendChild(this.frame.play),this.frame.next=document.createElement("INPUT"),this.frame.next.type="BUTTON",this.frame.next.value="Next",this.frame.appendChild(this.frame.next),this.frame.bar=document.createElement("INPUT"),this.frame.bar.type="BUTTON",this.frame.bar.style.position="absolute",this.frame.bar.style.border="1px solid red",this.frame.bar.style.width="100px",this.frame.bar.style.height="6px",this.frame.bar.style.borderRadius="2px",this.frame.bar.style.MozBorderRadius="2px",this.frame.bar.style.border="1px solid #7F7F7F",this.frame.bar.style.backgroundColor="#E5E5E5",this.frame.appendChild(this.frame.bar),this.frame.slide=document.createElement("INPUT"),this.frame.slide.type="BUTTON",this.frame.slide.style.margin="0px",this.frame.slide.value=" ",this.frame.slide.style.position="relative",this.frame.slide.style.left="-100px",this.frame.appendChild(this.frame.slide);var i=this;this.frame.slide.onmousedown=function(t){i._onMouseDown(t)},this.frame.prev.onclick=function(t){i.prev(t)},this.frame.play.onclick=function(t){i.togglePlay(t)},this.frame.next.onclick=function(t){i.next(t)}}this.onChangeCallback=void 0,this.values=[],this.index=void 0,this.playTimeout=void 0,this.playInterval=1e3,this.playLoop=!0}var r=i(1);n.prototype.prev=function(){var t=this.getIndex();t>0&&(t--,this.setIndex(t))},n.prototype.next=function(){var t=this.getIndex();t<this.values.length-1&&(t++,this.setIndex(t))},n.prototype.playNext=function(){var t=new Date,e=this.getIndex();e<this.values.length-1?(e++,this.setIndex(e)):this.playLoop&&(e=0,this.setIndex(e));var i=new Date,n=i-t,r=Math.max(this.playInterval-n,0),s=this;this.playTimeout=setTimeout(function(){s.playNext()},r)},n.prototype.togglePlay=function(){void 0===this.playTimeout?this.play():this.stop()},n.prototype.play=function(){this.playTimeout||(this.playNext(),this.frame&&(this.frame.play.value="Stop"))},n.prototype.stop=function(){clearInterval(this.playTimeout),this.playTimeout=void 0,this.frame&&(this.frame.play.value="Play")},n.prototype.setOnChangeCallback=function(t){this.onChangeCallback=t},n.prototype.setPlayInterval=function(t){this.playInterval=t},n.prototype.getPlayInterval=function(t){return this.playInterval},n.prototype.setPlayLoop=function(t){this.playLoop=t},n.prototype.onChange=function(){void 0!==this.onChangeCallback&&this.onChangeCallback()},n.prototype.redraw=function(){if(this.frame){this.frame.bar.style.top=this.frame.clientHeight/2-this.frame.bar.offsetHeight/2+"px",this.frame.bar.style.width=this.frame.clientWidth-this.frame.prev.clientWidth-this.frame.play.clientWidth-this.frame.next.clientWidth-30+"px";var t=this.indexToLeft(this.index);this.frame.slide.style.left=t+"px"}},n.prototype.setValues=function(t){this.values=t,this.values.length>0?this.setIndex(0):this.index=void 0},n.prototype.setIndex=function(t){if(!(t<this.values.length))throw"Error: index out of range";this.index=t,this.redraw(),this.onChange()},n.prototype.getIndex=function(){return this.index},n.prototype.get=function(){return this.values[this.index]},n.prototype._onMouseDown=function(t){var e=t.which?1===t.which:1===t.button;if(e){this.startClientX=t.clientX,this.startSlideX=parseFloat(this.frame.slide.style.left),this.frame.style.cursor="move";var i=this;this.onmousemove=function(t){i._onMouseMove(t)},this.onmouseup=function(t){i._onMouseUp(t)},r.addEventListener(document,"mousemove",this.onmousemove),r.addEventListener(document,"mouseup",this.onmouseup),r.preventDefault(t)}},n.prototype.leftToIndex=function(t){var e=parseFloat(this.frame.bar.style.width)-this.frame.slide.clientWidth-10,i=t-3,n=Math.round(i/e*(this.values.length-1));return 0>n&&(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;a<s.length;a++)if(o=s[a]._handlers[e.type])for(var h=0;h<o.length&&!i;h++)o[h](e);r=r.parentNode}}var o=n||{preventDefault:!1};if(i.Manager){var a=i,h=function(t,i){var n=Object.create(o);return i&&a.assign(n,i),e(new a(t,n),n)};return a.assign(h,a),h.Manager=function(t,i){var n=Object.create(o);return i&&a.assign(n,i),e(new a.Manager(t,n),n)},h}var l=Object.create(i),u=i.element;return u.hammer||(u.hammer=[]),u.hammer.push(l),i.on("hammer.input",function(e){o.preventDefault!==!0&&o.preventDefault!==e.pointerType||e.preventDefault(),e.isFirst&&(t=e.target)}),l._handlers={},l.on=function(t,e){return r(t).forEach(function(t){var n=l._handlers[t];n||(l._handlers[t]=n=[],i.on(t,s)),n.push(e)}),l},l.off=function(t,e){return r(t).forEach(function(t){var n=l._handlers[t];n&&(n=e?n.filter(function(t){return t!==e}):[],n.length>0?l._handlers[t]=n:(i.off(t,s),delete l._handlers[t]))}),l},l.emit=function(e,n){t=n.target,i.emit(e,n)},l.destroy=function(){var t=i.element.hammer,e=t.indexOf(l);-1!==e&&t.splice(e,1),t.length||delete i.element.hammer,l._handlers={},i.destroy()},l}})},function(t,e,i){var n;/*! Hammer.JS - v2.0.6 - 2015-12-23
+ * http://hammerjs.github.io/
+ *
+ * Copyright (c) 2015 Jorik Tangelder;
+ * Licensed under the license */
+!function(r,s,o,a){function h(t,e,i){return setTimeout(f(t,i),e)}function l(t,e,i){return Array.isArray(t)?(u(t,i[e],i),!0):!1}function u(t,e,i){var n;if(t)if(t.forEach)t.forEach(e,i);else if(t.length!==a)for(n=0;n<t.length;)e.call(i,t[n],n,t),n++;else for(n in t)t.hasOwnProperty(n)&&e.call(i,t[n],n,t)}function d(t,e,i){var n="DEPRECATED METHOD: "+e+"\n"+i+" AT \n";return function(){var e=new Error("get-stack-trace"),i=e&&e.stack?e.stack.replace(/^[^\(]+?[\n$]/gm,"").replace(/^\s+at\s+/gm,"").replace(/^Object.<anonymous>\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;n<t.length;){if(i&&t[n][i]==e||!i&&t[n]===e)return n;n++}return-1}function b(t){return Array.prototype.slice.call(t,0)}function M(t,e,i){for(var n=[],r=[],s=0;s<t.length;){var o=e?t[s][e]:t[s];w(r,o)<0&&n.push(t[s]),r[s]=o,s++}return i&&(n=e?n.sort(function(t,i){return t[e]>i[e]}):n.sort()),n}function S(t,e){for(var i,n,r=e[0].toUpperCase()+e.slice(1),s=0;s<ct.length;){if(i=ct[s],n=i?i+r:e,n in t)return n;s++}return a}function T(){return xt++}function D(t){var e=t.ownerDocument||t;return e.defaultView||e.parentWindow||r}function k(t,e){var i=this;this.manager=t,this.callback=e,this.element=t.element,this.target=t.options.inputTarget,this.domHandler=function(e){p(t.options.enable,[t])&&i.handler(e)},this.init()}function C(t){var e,i=t.options.inputClass;return new(e=i?i:Mt?B:St?j:bt?X:V)(t,O)}function O(t,e,i){var n=i.pointers.length,r=i.changedPointers.length,s=e&Pt&&n-r===0,o=e&(Lt|Yt)&&n-r===0;i.isFirst=!!s,i.isFinal=!!o,s&&(t.session={}),i.eventType=e,P(t,i),t.emit("hammer.input",i),t.recognize(i),t.session.prevInput=i}function P(t,e){var i=t.session,n=e.pointers,r=n.length;i.firstInput||(i.firstInput=Y(e)),r>1&&!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;i<t.pointers.length;)e[i]={clientX:mt(t.pointers[i].clientX),clientY:mt(t.pointers[i].clientY)},i++;return{timeStamp:yt(),pointers:e,center:A(e),deltaX:t.deltaX,deltaY:t.deltaY}}function A(t){var e=t.length;if(1===e)return{x:mt(t[0].clientX),y:mt(t[0].clientY)};for(var i=0,n=0,r=0;e>r;)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;r<s.length;)n[s[r].identifier]=!0,r++;for(r=0;r<o.length;)n[o[r].identifier]&&a.push(o[r]),e&(Lt|Yt)&&delete n[o[r].identifier],r++;return a.length?[M(s.concat(a),"identifier",!0),a]:void 0}function X(){k.apply(this,arguments);var t=f(this.handler,this);this.touch=new j(this.manager,t),this.mouse=new V(this.manager,t)}function Z(t,e){this.manager=t,this.set(e)}function q(t){if(_(t,ae))return ae;var e=_(t,he),i=_(t,le);return e&&i?ae:e||i?e?he:le:_(t,oe)?oe:se}function Q(t){this.options=dt({},this.defaults,t||{}),this.id=T(),this.manager=null,this.options.enable=m(this.options.enable,!0),this.state=ue,this.simultaneous={},this.requireFail=[]}function $(t){return t&me?"cancel":t&fe?"end":t&ce?"move":t&de?"start":""}function J(t){return t==Wt?"down":t==zt?"up":t==Rt?"left":t==It?"right":""}function K(t,e){var i=e.manager;return i?i.get(t):t}function tt(){Q.apply(this,arguments)}function et(){tt.apply(this,arguments),this.pX=null,this.pY=null}function it(){tt.apply(this,arguments)}function nt(){Q.apply(this,arguments),this._timer=null,this._input=null}function rt(){tt.apply(this,arguments)}function st(){tt.apply(this,arguments)}function ot(){Q.apply(this,arguments),this.pTime=!1,this.pCenter=!1,this._timer=null,this._input=null,this.count=0}function at(t,e){return e=e||{},e.recognizers=m(e.recognizers,at.defaults.preset),new ht(t,e)}function ht(t,e){this.options=dt({},at.defaults,e||{}),this.options.inputTarget=this.options.inputTarget||t,this.handlers={},this.session={},this.recognizers=[],this.element=t,this.input=C(this),this.touchAction=new Z(this,this.options.touchAction),lt(this,!0),u(this.options.recognizers,function(t){var e=this.add(new t[0](t[1]));t[2]&&e.recognizeWith(t[2]),t[3]&&e.requireFailure(t[3])},this)}function lt(t,e){var i=t.element;i.style&&u(t.options.cssProps,function(t,n){i.style[S(i.style,n)]=e?t:""})}function ut(t,e){var i=s.createEvent("Event");i.initEvent(t,!0,!0),i.gesture=e,e.target.dispatchEvent(i)}var dt,ct=["","webkit","Moz","MS","ms","o"],ft=s.createElement("div"),pt="function",mt=Math.round,vt=Math.abs,yt=Date.now;dt="function"!=typeof Object.assign?function(t){if(t===a||null===t)throw new TypeError("Cannot convert undefined or null to object");for(var e=Object(t),i=1;i<arguments.length;i++){var n=arguments[i];if(n!==a&&null!==n)for(var r in n)n.hasOwnProperty(r)&&(e[r]=n[r])}return e}:Object.assign;var gt=d(function(t,e,i){for(var n=Object.keys(e),r=0;r<n.length;)(!i||i&&t[n[r]]===a)&&(t[n[r]]=e[n[r]]),r++;return t},"extend","Use `assign`."),_t=d(function(t,e){return gt(t,e,!0)},"merge","Use `assign`."),xt=1,wt=/mobile|tablet|ip(ad|hone|od)|android/i,bt="ontouchstart"in r,Mt=S(r,"PointerEvent")!==a,St=bt&&wt.test(navigator.userAgent),Tt="touch",Dt="pen",kt="mouse",Ct="kinect",Ot=25,Pt=1,Et=2,Lt=4,Yt=8,At=1,Rt=2,It=4,zt=8,Wt=16,Nt=Rt|It,Ft=zt|Wt,Vt=Nt|Ft,Bt=["x","y"],Ut=["clientX","clientY"];k.prototype={handler:function(){},init:function(){this.evEl&&v(this.element,this.evEl,this.domHandler),this.evTarget&&v(this.target,this.evTarget,this.domHandler),this.evWin&&v(D(this.element),this.evWin,this.domHandler)},destroy:function(){this.evEl&&y(this.element,this.evEl,this.domHandler),this.evTarget&&y(this.target,this.evTarget,this.domHandler),this.evWin&&y(D(this.element),this.evWin,this.domHandler)}};var Ht={mousedown:Pt,mousemove:Et,mouseup:Lt},jt="mousedown",Gt="mousemove mouseup";c(V,k,{handler:function(t){var e=Ht[t.type];e&Pt&&0===t.button&&(this.pressed=!0),e&Et&&1!==t.which&&(e=Lt),this.pressed&&this.allow&&(e&Lt&&(this.pressed=!1),this.callback(this.manager,e,{pointers:[t],changedPointers:[t],pointerType:kt,srcEvent:t}))}});var Xt={pointerdown:Pt,pointermove:Et,pointerup:Lt,pointercancel:Yt,pointerout:Yt},Zt={2:Tt,3:Dt,4:kt,5:Ct},qt="pointerdown",Qt="pointermove pointerup pointercancel";r.MSPointerEvent&&!r.PointerEvent&&(qt="MSPointerDown",Qt="MSPointerMove MSPointerUp MSPointerCancel"),c(B,k,{handler:function(t){var e=this.store,i=!1,n=t.type.toLowerCase().replace("ms",""),r=Xt[n],s=Zt[t.pointerType]||t.pointerType,o=s==Tt,a=w(e,t.pointerId,"pointerId");r&Pt&&(0===t.button||o)?0>a&&(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;t<this.requireFail.length;){if(!(this.requireFail[t].state&(ve|ue)))return!1;t++}return!0},recognize:function(t){var e=dt({},t);return p(this.options.enable,[this,e])?(this.state&(pe|me|ve)&&(this.state=ue),this.state=this.process(e),void(this.state&(de|ce|fe|me)&&this.tryEmit(e))):(this.reset(),void(this.state=ve))},process:function(t){},getTouchAction:function(){},reset:function(){}},c(tt,Q,{defaults:{pointers:1},attrTest:function(t){var e=this.options.pointers;return 0===e||t.pointers.length===e},process:function(t){var e=this.state,i=t.eventType,n=e&(de|ce),r=this.attrTest(t);return n&&(i&Yt||!r)?e|me:n||r?i&Lt?e|fe:e&de?e|ce:de:ve}}),c(et,tt,{defaults:{event:"pan",threshold:10,pointers:1,direction:Vt},getTouchAction:function(){var t=this.options.direction,e=[];return t&Nt&&e.push(le),t&Ft&&e.push(he),e},directionTest:function(t){var e=this.options,i=!0,n=t.distance,r=t.direction,s=t.deltaX,o=t.deltaY;return r&e.direction||(e.direction&Nt?(r=0===s?At:0>s?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.distance<e.threshold,r=t.deltaTime>e.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.threshold,r=t.deltaTime<e.time;if(this.reset(),t.eventType&Pt&&0===this.count)return this.failTimeout();if(n&&r&&i){if(t.eventType!=Lt)return this.failTimeout();var s=this.pTime?t.timeStamp-this.pTime<e.interval:!0,o=!this.pCenter||z(this.pCenter,t.center)<e.posThreshold;this.pTime=t.timeStamp,this.pCenter=t.center,o&&s?this.count+=1:this.count=1,this._input=t;var a=this.count%e.taps;if(0===a)return this.hasRequireFailures()?(this._timer=h(function(){this.state=pe,this.tryEmit()},e.interval,this),de):pe}return ve},failTimeout:function(){return this._timer=h(function(){this.state=ve},this.options.interval,this),ve},reset:function(){clearTimeout(this._timer)},emit:function(){this.state==pe&&(this._input.tapCount=this.count,this.manager.emit(this.options.event,this._input))}}),at.VERSION="2.0.6",at.defaults={domEvents:!1,touchAction:re,enable:!0,inputTarget:null,inputClass:null,preset:[[rt,{enable:!1}],[it,{enable:!1},["rotate"]],[st,{direction:Nt}],[et,{direction:Nt},["swipe"]],[ot],[ot,{event:"doubletap",taps:2},["tap"]],[nt]],cssProps:{userSelect:"none",touchSelect:"none",touchCallout:"none",contentZooming:"none",userDrag:"none",tapHighlightColor:"rgba(0,0,0,0)"}};var ye=1,ge=2;ht.prototype={set:function(t){return dt(this.options,t),t.touchAction&&this.touchAction.update(),t.inputTarget&&(this.input.destroy(),this.input.target=t.inputTarget,this.input.init()),this},stop:function(t){this.session.stopped=t?ge:ye},recognize:function(t){var e=this.session;if(!e.stopped){this.touchAction.preventDefaults(t);var i,n=this.recognizers,r=e.curRecognizer;(!r||r&&r.state&pe)&&(r=e.curRecognizer=null);for(var s=0;s<n.length;)i=n[s],e.stopped===ge||r&&i!=r&&!i.canRecognizeWith(r)?i.reset():i.recognize(t),!r&&i.state&(de|ce|fe)&&(r=e.curRecognizer=i),s++}},get:function(t){if(t instanceof Q)return t;for(var e=this.recognizers,i=0;i<e.length;i++)if(e[i].options.event==t)return e[i];return null},add:function(t){if(l(t,"add",this))return this;var e=this.get(t.options.event);return e&&this.remove(e),this.recognizers.push(t),t.manager=this,this.touchAction.update(),t},remove:function(t){if(l(t,"remove",this))return this;if(t=this.get(t)){var e=this.recognizers,i=w(e,t);-1!==i&&(e.splice(i,1),this.touchAction.update())}return this},on:function(t,e){var i=this.handlers;return u(x(t),function(t){i[t]=i[t]||[],i[t].push(e)}),this},off:function(t,e){var i=this.handlers;return u(x(t),function(t){e?i[t]&&i[t].splice(w(i[t],e),1):delete i[t]}),this},emit:function(t,e){this.options.domEvents&&ut(t,e);var i=this.handlers[t]&&this.handlers[t].slice();if(i&&i.length){e.type=t,e.preventDefault=function(){e.srcEvent.preventDefault()};for(var n=0;n<i.length;)i[n](e),n++}},destroy:function(){this.element&&lt(this,!1),this.handlers={},this.session={},this.input.destroy(),this.element=null}},dt(at,{INPUT_START:Pt,INPUT_MOVE:Et,INPUT_END:Lt,INPUT_CANCEL:Yt,STATE_POSSIBLE:ue,STATE_BEGAN:de,STATE_CHANGED:ce,STATE_ENDED:fe,STATE_RECOGNIZED:pe,STATE_CANCELLED:me,STATE_FAILED:ve,DIRECTION_NONE:At,DIRECTION_LEFT:Rt,DIRECTION_RIGHT:It,DIRECTION_UP:zt,DIRECTION_DOWN:Wt,DIRECTION_HORIZONTAL:Nt,DIRECTION_VERTICAL:Ft,DIRECTION_ALL:Vt,Manager:ht,Input:k,TouchAction:Z,TouchInput:j,MouseInput:V,PointerEventInput:B,TouchMouseInput:X,SingleTouchInput:U,Recognizer:Q,AttrRecognizer:tt,Tap:ot,Pan:et,Swipe:st,Pinch:it,Rotate:rt,Press:nt,on:v,off:y,each:u,merge:_t,extend:gt,assign:dt,inherit:c,bindFn:f,prefixed:S});var _e="undefined"!=typeof r?r:"undefined"!=typeof self?self:{};_e.Hammer=at,n=function(){return at}.call(e,i,e,t),!(n!==a&&(t.exports=n))}(window,document,"Hammer")},function(t,e,i){var n,r,s;!function(i,o){r=[],n=o,s="function"==typeof n?n.apply(e,r):n,!(void 0!==s&&(t.exports=s))}(this,function(){function t(t){var e,i=t&&t.preventDefault||!1,n=t&&t.container||window,r={},s={keydown:{},keyup:{}},o={};for(e=97;122>=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<n.length;r++)void 0===n[r].shift?n[r].fn(t):1==n[r].shift&&1==t.shiftKey?n[r].fn(t):0==n[r].shift&&0==t.shiftKey&&n[r].fn(t);1==i&&t.preventDefault()}};return r.bind=function(t,e,i){if(void 0===i&&(i="keydown"),void 0===o[t])throw new Error("unsupported key: "+t);void 0===s[i][o[t].code]&&(s[i][o[t].code]=[]),s[i][o[t].code].push({fn:e,shift:o[t].shift})},r.bindAll=function(t,e){void 0===e&&(e="keydown");for(var i in o)o.hasOwnProperty(i)&&r.bind(i,t,e)},r.getKey=function(t){for(var e in o)if(o.hasOwnProperty(e)){if(1==t.shiftKey&&1==o[e].shift&&t.keyCode==o[e].code)return e;if(0==t.shiftKey&&0==o[e].shift&&t.keyCode==o[e].code)return e;if(t.keyCode==o[e].code&&"shift"==e)return e}return"unknown key, currently not supported"},r.unbind=function(t,e,i){if(void 0===i&&(i="keydown"),void 0===o[t])throw new Error("unsupported key: "+t);if(void 0!==e){var n=[],r=s[i][o[t].code];if(void 0!==r)for(var a=0;a<r.length;a++)r[a].fn==e&&r[a].shift==o[t].shift||n.push(s[i][o[t].code][a]);s[i][o[t].code]=n}else s[i][o[t].code]=[]},r.reset=function(){s={keydown:{},keyup:{}}},r.destroy=function(){s={keydown:{},keyup:{}},n.removeEventListener("keydown",a,!0),n.removeEventListener("keyup",h,!0)},n.addEventListener("keydown",a,!0),n.addEventListener("keyup",h,!0),r}return t})}])}); \ No newline at end of file
diff --git a/www/lib/vis/dist/vis-network.min.js b/www/lib/vis/dist/vis-network.min.js
new file mode 100644
index 00000000..3fce29a6
--- /dev/null
+++ b/www/lib/vis/dist/vis-network.min.js
@@ -0,0 +1,41 @@
+/**
+ * vis.js
+ * https://github.com/almende/vis
+ *
+ * A dynamic, browser-based visualization library.
+ *
+ * @version 4.16.1
+ * @date 2016-04-18
+ *
+ * @license
+ * Copyright (C) 2011-2016 Almende B.V, http://almende.com
+ *
+ * Vis.js is dual licensed under both
+ *
+ * * The Apache 2.0 License
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * and
+ *
+ * * The MIT License
+ * http://opensource.org/licenses/MIT
+ *
+ * Vis.js may be distributed under either license.
+ */
+"use strict";!function(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?"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]?!1: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;i<arguments.length;i++){var o=arguments[i];for(var n in o)e[n]=o[n]}return e},t.extend=function(e,t){for(var i=1;i<arguments.length;i++){var o=arguments[i];for(var n in o)o.hasOwnProperty(n)&&(e[n]=o[n])}return e},t.selectiveExtend=function(e,t,i){if(!Array.isArray(e))throw new Error("Array with property names expected as first argument");for(var o=2;o<arguments.length;o++)for(var n=arguments[o],s=0;s<e.length;s++){var r=e[s];n.hasOwnProperty(r)&&(t[r]=n[r])}return t},t.selectiveDeepExtend=function(e,i,o){var n=arguments.length<=3||void 0===arguments[3]?!1:arguments[3];if(Array.isArray(o))throw new TypeError("Arrays are not supported by deepExtend");for(var s=2;s<arguments.length;s++)for(var r=arguments[s],a=0;a<e.length;a++){var h=e[a];if(r.hasOwnProperty(h))if(o[h]&&o[h].constructor===Object)void 0===i[h]&&(i[h]={}),i[h].constructor===Object?t.deepExtend(i[h],o[h],!1,n):null===o[h]&&void 0!==i[h]&&n===!0?delete i[h]:i[h]=o[h];else{if(Array.isArray(o[h]))throw new TypeError("Arrays are not supported by deepExtend");null===o[h]&&void 0!==i[h]&&n===!0?delete i[h]:i[h]=o[h]}}return i},t.selectiveNotDeepExtend=function(e,i,o){var n=arguments.length<=3||void 0===arguments[3]?!1:arguments[3];if(Array.isArray(o))throw new TypeError("Arrays are not supported by deepExtend");for(var s in o)if(o.hasOwnProperty(s)&&-1==e.indexOf(s))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<o[s].length;r++)i[s].push(o[s][r])}else null===o[s]&&void 0!==i[s]&&n===!0?delete i[s]:i[s]=o[s];return i},t.deepExtend=function(e,i,o,n){for(var s in i)if(i.hasOwnProperty(s)||o===!0)if(i[s]&&i[s].constructor===Object)void 0===e[s]&&(e[s]={}),e[s].constructor===Object?t.deepExtend(e[s],i[s],o):null===i[s]&&void 0!==e[s]&&n===!0?delete e[s]:e[s]=i[s];else if(Array.isArray(i[s])){e[s]=[];for(var r=0;r<i[s].length;r++)e[s].push(i[s][r])}else null===i[s]&&void 0!==e[s]&&n===!0?delete e[s]:e[s]=i[s];return e},t.equalArray=function(e,t){if(e.length!=t.length)return!1;for(var i=0,o=e.length;o>i;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;o<e.length;o++)i.push(e[o]);return i.push(t),i},t.copyArray=function(e){for(var t=[],i=0;i<e.length;i++)t.push(e[i]);return t},t.getAbsoluteLeft=function(e){return e.getBoundingClientRect().left},t.getAbsoluteRight=function(e){return e.getBoundingClientRect().right},t.getAbsoluteTop=function(e){return e.getBoundingClientRect().top},t.addClassName=function(e,t){var i=e.className.split(" ");-1==i.indexOf(t)&&(i.push(t),e.className=i.join(" "))},t.removeClassName=function(e,t){var i=e.className.split(" "),o=i.indexOf(t);-1!=o&&(i.splice(o,1),e.className=i.join(" "))},t.forEach=function(e,t){var i,o;if(Array.isArray(e))for(i=0,o=e.length;o>i;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;s<e.length;s++)i.hasOwnProperty(e[s])&&"object"==o(i[e[s]])&&(n[e[s]]=t.bridgeObject(i[e[s]]));return n}return null},t.bridgeObject=function(e){if("object"==("undefined"==typeof e?"undefined":o(e))){var i=Object.create(e);for(var n in e)e.hasOwnProperty(n)&&"object"==o(e[n])&&(i[n]=t.bridgeObject(e[n]));return i}return null},t.insertSort=function(e,t){for(var i=0;i<e.length;i++){for(var o=e[i],n=i;n>0&&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;i<e.length;++i)o.push(t(e[i],i));return o}function r(e,t){return Object.prototype.hasOwnProperty.call(e,t)}function a(e,t){for(var i in t)r(t,i)&&(e[i]=t[i]);return r(t,"toString")&&(e.toString=t.toString),r(t,"valueOf")&&(e.valueOf=t.valueOf),e}function h(e,t,i,o){return Ne(e,t,i,o,!0).utc()}function d(){return{empty:!1,unusedTokens:[],unusedInput:[],overflow:-2,charsLeftOver:0,nullInput:!1,invalidMonth:null,invalidFormat:!1,userInvalidated:!1,iso:!1,parsedDateParts:[],meridiem:null}}function l(e){return null==e._pf&&(e._pf=d()),e._pf}function c(e){if(null==e._isValid){var t=l(e),i=ao.call(t.parsedDateParts,function(e){return null!=e});e._isValid=!isNaN(e._d.getTime())&&t.overflow<0&&!t.empty&&!t.invalidMonth&&!t.invalidWeekday&&!t.nullInput&&!t.invalidFormat&&!t.userInvalidated&&(!t.meridiem||t.meridiem&&i),e._strict&&(e._isValid=e._isValid&&0===t.charsLeftOver&&0===t.unusedTokens.length&&void 0===t.bigHour)}return e._isValid}function u(e){var t=h(NaN);return null!=e?a(l(t),e):l(t).userInvalidated=!0,t}function f(e){return void 0===e}function p(e,t){var i,o,n;if(f(t._isAMomentObject)||(e._isAMomentObject=t._isAMomentObject),f(t._i)||(e._i=t._i),f(t._f)||(e._f=t._f),f(t._l)||(e._l=t._l),f(t._strict)||(e._strict=t._strict),f(t._tzm)||(e._tzm=t._tzm),f(t._isUTC)||(e._isUTC=t._isUTC),f(t._offset)||(e._offset=t._offset),f(t._pf)||(e._pf=l(t)),f(t._locale)||(e._locale=t._locale),ho.length>0)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;s<e.length;){for(n=S(e[s]).split("-"),t=n.length,i=S(e[s+1]),i=i?i.split("-"):null;t>0;){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;i<e.length;i++)Ao[e[i]]=o}function ee(e,t){$(e,function(e,i,o,n){o._w=o._w||{},t(e,o._w,o,n)})}function te(e,t,i){null!=t&&r(Ao,e)&&Ao[e](t,i._a,i,e)}function ie(e,t){return new Date(Date.UTC(e,t+1,0)).getUTCDate()}function oe(e,t){return o(this._months)?this._months[e.month()]:this._months[Ko.test(t)?"format":"standalone"][e.month()]}function ne(e,t){return o(this._monthsShort)?this._monthsShort[e.month()]:this._monthsShort[Ko.test(t)?"format":"standalone"][e.month()]}function se(e,t,i){var o,n,s,r=e.toLocaleLowerCase();if(!this._monthsParse)for(this._monthsParse=[],this._longMonthsParse=[],this._shortMonthsParse=[],o=0;12>o;++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;i<n.length;i++)s=n[i],o=(a.match(Z(s,e))||[])[0],o&&(r=a.substr(0,a.indexOf(o)),r.length>0&&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;n<e._f.length;n++)s=0,t=p({},e),null!=e._useUTC&&(t._useUTC=e._useUTC),t._f=e._f[n],Ce(t),c(t)&&(s+=l(t).charsLeftOver,s+=10*l(t).unusedTokens.length,l(t).score=s,(null==o||o>s)&&(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;n<t.length;++n)t[n].isValid()&&!t[n][e](i)||(i=t[n]);return i}function Ae(){var e=[].slice.call(arguments,0);return Re("isBefore",e)}function Le(){var e=[].slice.call(arguments,0);return Re("isAfter",e)}function He(e){var t=R(e),i=t.year||0,o=t.quarter||0,n=t.month||0,s=t.week||0,r=t.day||0,a=t.hour||0,h=t.minute||0,d=t.second||0,l=t.millisecond||0;this._milliseconds=+l+1e3*d+6e4*h+1e3*a*60*60,this._days=+r+7*s,this._months=+n+3*o+12*i,this._data={},this._locale=I(),this._bubble()}function We(e){return e instanceof He}function Ye(e,t){U(e,0,0,function(){var e=this.utcOffset(),i="+";return 0>e&&(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()<this.clone().startOf(t).valueOf()):!1}function pt(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():this.clone().endOf(t).valueOf()<i.valueOf()):!1}function vt(e,t,i,o){return o=o||"()",("("===o[0]?this.isAfter(e,i):!this.isBefore(e,i))&&(")"===o[1]?this.isBefore(t,i):!this.isAfter(t,i))}function yt(e,t){var i,o=y(e)?e:ze(e);return this.isValid()&&o.isValid()?(t=z(t||"millisecond"),"millisecond"===t?this.valueOf()===o.valueOf():(i=o.valueOf(),this.clone().startOf(t).valueOf()<=i&&i<=this.clone().endOf(t).valueOf())):!1}function gt(e,t){return this.isSame(e,t)||this.isAfter(e,t)}function bt(e,t){return this.isSame(e,t)||this.isBefore(e,t)}function mt(e,t,i){var o,n,s,r;return this.isValid()?(o=Ve(e,this),o.isValid()?(n=6e4*(o.utcOffset()-this.utcOffset()),t=z(t),"year"===t||"month"===t||"quarter"===t?(r=_t(this,o),"quarter"===t?r/=3:"year"===t&&(r/=12)):(s=this-o,r="second"===t?s/1e3:"minute"===t?s/6e4:"hour"===t?s/36e5:"day"===t?(s-n)/864e5:"week"===t?(s-n)/6048e5:s),i?r:g(r)):NaN):NaN}function _t(e,t){var i,o,n=12*(t.year()-e.year())+(t.month()-e.month()),s=e.clone().add(n,"months");return 0>t-s?(i=e.clone().add(n-1,"months"),o=(t-s)/(s-i)):(i=e.clone().add(n+1,"months"),o=(t-s)/(i-s)),-(n+o)||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 0<e.year()&&e.year()<=9999?x(Date.prototype.toISOString)?this.toDate().toISOString():G(e,"YYYY-MM-DD[T]HH:mm:ss.SSS[Z]"):G(e,"YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]")}function xt(e){e||(e=this.isUtc()?t.defaultFormatUtc:t.defaultFormat);var i=G(this,e);return this.localeData().postformat(i)}function Ot(e,t){return this.isValid()&&(y(e)&&e.isValid()||ze(e).isValid())?nt({to:this,from:e}).locale(this.locale()).humanize(!t):this.localeData().invalidDate()}function Et(e){return this.from(ze(),e)}function Mt(e,t){return this.isValid()&&(y(e)&&e.isValid()||ze(e).isValid())?nt({from:this,to:e}).locale(this.locale()).humanize(!t):this.localeData().invalidDate()}function Dt(e){return this.to(ze(),e)}function St(e){var t;return void 0===e?this._locale._abbr:(t=I(e),null!=t&&(this._locale=t),this)}function Ct(){return this._locale}function Tt(e){switch(e=z(e)){case"year":this.month(0);case"quarter":case"month":this.date(1);case"week":case"isoWeek":case"day":case"date":this.hours(0);case"hour":this.minutes(0);case"minute":this.seconds(0);case"second":this.milliseconds(0)}return"week"===e&&this.weekday(0),"isoWeek"===e&&this.isoWeekday(1),"quarter"===e&&this.month(3*Math.floor(this.month()/3)),this}function Pt(e){return e=z(e),void 0===e||"millisecond"===e?this:("date"===e&&(e="day"),this.startOf(e).add(1,"isoWeek"===e?"week":e).subtract(1,"ms"))}function Bt(){return this._d.valueOf()-6e4*(this._offset||0)}function Ft(){return Math.floor(this.valueOf()/1e3)}function It(){return this._offset?new Date(this.valueOf()):this._d}function jt(){var e=this;return[e.year(),e.month(),e.date(),e.hour(),e.minute(),e.second(),e.millisecond()]}function Nt(){var e=this;return{years:e.year(),months:e.month(),date:e.date(),hours:e.hours(),minutes:e.minutes(),seconds:e.seconds(),milliseconds:e.milliseconds()}}function zt(){return this.isValid()?this.toISOString():null}function Rt(){return c(this)}function At(){return a({},l(this))}function Lt(){return l(this).overflow}function Ht(){return{input:this._i,format:this._f,locale:this._locale,isUTC:this._isUTC,strict:this._strict}}function Wt(e,t){U(0,[e,e.length],0,t)}function Yt(e){return Gt.call(this,e,this.week(),this.weekday(),this.localeData()._week.dow,this.localeData()._week.doy)}function Ut(e){return Gt.call(this,e,this.isoWeek(),this.isoWeekday(),1,4)}function Vt(){return Oe(this.year(),1,4)}function qt(){var e=this.localeData()._week;return Oe(this.year(),e.dow,e.doy)}function Gt(e,t,i,o,n){var s;return null==e?xe(this,o,n).year:(s=Oe(e,o,n),t>s&&(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<os.s&&["s",n]||1>=s&&["m"]||s<os.m&&["mm",s]||1>=r&&["h"]||r<os.h&&["hh",r]||1>=a&&["d"]||a<os.d&&["dd",a]||1>=h&&["M"]||h<os.M&&["MM",h]||1>=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<this.length;++t)if(this[t]===e)return t;return-1},U("M",["MM",2],"Mo",function(){return this.month()+1}),U("MMM",0,0,function(e){return this.localeData().monthsShort(this,e)}),U("MMMM",0,0,function(e){return this.localeData().months(this,e)}),N("month","M"),K("M",Mo),K("MM",Mo,ko),K("MMM",function(e,t){return t.monthsShortRegex(e)}),K("MMMM",function(e,t){return t.monthsRegex(e)}),$(["M","MM"],function(e,t){t[Ho]=b(e)-1}),$(["MMM","MMMM"],function(e,t,i,o){var n=i._locale.monthsParse(e,o,i._strict);null!=n?t[Ho]=n:l(i).invalidMonth=e});var Ko=/D[oD]?(\[[^\[\]]*\]|\s+)+MMMM?/,Zo="January_February_March_April_May_June_July_August_September_October_November_December".split("_"),Qo="Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),Jo=zo,$o=zo,en=/^\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)?/,nn=[["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}/]],sn=[["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/]],rn=/^\/?Date\((\-?\d+)/i;t.createFromInputFallback=w("moment construction falls back to js Date. This is discouraged and will be removed in upcoming major release. Please refer to https://github.com/moment/moment/issues/1407 for more info.",function(e){e._d=new Date(e._i+(e._useUTC?" UTC":""))}),U("Y",0,0,function(){var e=this.year();return 9999>=e?""+e:"+"+e}),U(0,["YY",2],0,function(){return this.year()%100}),U(0,["YYYY",4],0,"year"),U(0,["YYYYY",5],0,"year"),U(0,["YYYYYY",6,!0],0,"year"),N("year","y"),K("Y",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;i<e[t].redundant.length;i++)e[t].redundant[i].parentNode.removeChild(e[t].redundant[i]);e[t].redundant=[]}},t.resetElements=function(e){t.prepareElements(e),t.cleanupElements(e),t.prepareElements(e)},t.getSVGElement=function(e,t,i){var o;return t.hasOwnProperty(e)?t[e].redundant.length>0?(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;s<t.replace.length;s++){var r=t.replace[s];n.push({name:r,original:e[r]}),o.replace(e,r)}return o._extended={object:e,methods:n},o},i.prototype.destroy=function(){if(this.flush(),this._extended){for(var e=this._extended.object,t=this._extended.methods,i=0;i<t.length;i++){var o=t[i];o.original?e[o.name]=o.original:delete e[o.name]}this._extended=null}},i.prototype.replace=function(e,t){var i=this,o=e[t];if(!o)throw new Error("Method "+t+" undefined");e[t]=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];i.queue({args:e,fn:o,context:this})}},i.prototype.queue=function(e){"function"==typeof e?this._queue.push({fn:e}):this._queue.push(e),this._flushIfNeeded()},i.prototype._flushIfNeeded=function(){if(this._queue.length>this.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;i<t.length;i++){var o=t[i];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(e,o.key,o)}}return function(t,i,o){return i&&e(t.prototype,i),o&&e(t,o),t}}(),n=function(){function e(t){i(this,e),this.images={},this.imageBroken={},this.callback=t}return o(e,[{key:"_addImageToCache",value:function(e,t){0===t.width&&(document.body.appendChild(t),t.width=t.offsetWidth,t.height=t.offsetHeight,document.body.removeChild(t)),this.images[e]=t}},{key:"_tryloadBrokenUrl",value:function(e,t,i){var o=this;void 0!==e&&void 0!==t&&void 0!==i&&(i.onerror=function(){console.error("Could not load brokenImage:",t),o._addImageToCache(e,new Image)},i.src=t)}},{key:"_redrawWithImage",value:function(e){this.callback&&this.callback(e)}},{key:"load",value:function(e,t,i){var o=this,n=this.images[e];if(n)return n;var s=new Image;return s.onload=function(){o._addImageToCache(e,s),o._redrawWithImage(s)},s.onerror=function(){console.error("Could not load image:",e),o._tryloadBrokenUrl(e,t,s)},s.src=e,s}}]),e}();t["default"]=n},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;i<t.length;i++){var o=t[i];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(e,o.key,o)}}return function(t,i,o){return i&&e(t.prototype,i),o&&e(t,o),t}}(),s=i(1),r=function(){function e(){o(this,e),this.clear(),this.defaultIndex=0,this.groupsArray=[],this.groupIndex=0,this.defaultGroups=[{border:"#2B7CE9",background:"#97C2FC",highlight:{border:"#2B7CE9",background:"#D2E5FF"},hover:{border:"#2B7CE9",background:"#D2E5FF"}},{border:"#FFA500",background:"#FFFF00",highlight:{border:"#FFA500",background:"#FFFFA3"},hover:{border:"#FFA500",background:"#FFFFA3"}},{border:"#FA0A10",background:"#FB7E81",highlight:{border:"#FA0A10",background:"#FFAFB1"},hover:{border:"#FA0A10",background:"#FFAFB1"}},{border:"#41A906",background:"#7BE141",highlight:{border:"#41A906",background:"#A1EC76"},hover:{border:"#41A906",background:"#A1EC76"}},{border:"#E129F0",background:"#EB7DF4",highlight:{border:"#E129F0",background:"#F0B3F5"},hover:{border:"#E129F0",background:"#F0B3F5"}},{border:"#7C29F0",background:"#AD85E4",highlight:{border:"#7C29F0",background:"#D3BDF0"},hover:{border:"#7C29F0",background:"#D3BDF0"}},{border:"#C37F00",background:"#FFA807",highlight:{border:"#C37F00",background:"#FFCA66"},hover:{border:"#C37F00",background:"#FFCA66"}},{border:"#4220FB",background:"#6E6EFD",highlight:{border:"#4220FB",background:"#9B9BFD"},hover:{border:"#4220FB",background:"#9B9BFD"}},{border:"#FD5A77",background:"#FFC0CB",highlight:{border:"#FD5A77",background:"#FFD1D9"},hover:{border:"#FD5A77",background:"#FFD1D9"}},{border:"#4AD63A",background:"#C2FABC",highlight:{border:"#4AD63A",background:"#E6FFE3"},hover:{border:"#4AD63A",background:"#E6FFE3"}},{border:"#990000",background:"#EE0000",highlight:{border:"#BB0000",background:"#FF3333"},hover:{border:"#BB0000",background:"#FF3333"}},{border:"#FF6000",background:"#FF6000",highlight:{border:"#FF6000",background:"#FF6000"},hover:{border:"#FF6000",background:"#FF6000"}},{border:"#97C2FC",background:"#2B7CE9",highlight:{border:"#D2E5FF",background:"#2B7CE9"},hover:{border:"#D2E5FF",background:"#2B7CE9"}},{border:"#399605",background:"#255C03",highlight:{border:"#399605",background:"#255C03"},hover:{border:"#399605",background:"#255C03"}},{border:"#B70054",background:"#FF007E",highlight:{border:"#B70054",background:"#FF007E"},hover:{border:"#B70054",background:"#FF007E"}},{border:"#AD85E4",background:"#7C29F0",highlight:{border:"#D3BDF0",background:"#7C29F0"},hover:{border:"#D3BDF0",background:"#7C29F0"}},{border:"#4557FA",background:"#000EA1",highlight:{border:"#6E6EFD",background:"#000EA1"},hover:{border:"#6E6EFD",background:"#000EA1"}},{border:"#FFC0CB",background:"#FD5A77",highlight:{border:"#FFD1D9",background:"#FD5A77"},hover:{border:"#FFD1D9",background:"#FD5A77"}},{border:"#C2FABC",background:"#74D66A",highlight:{border:"#E6FFE3",background:"#74D66A"},hover:{border:"#E6FFE3",background:"#74D66A"}},{border:"#EE0000",background:"#990000",highlight:{border:"#FF3333",background:"#BB0000"},hover:{border:"#FF3333",background:"#BB0000"}}],this.options={},this.defaultOptions={useDefaultGroups:!0},s.extend(this.options,this.defaultOptions)}return n(e,[{key:"setOptions",value:function(e){var t=["useDefaultGroups"];if(void 0!==e)for(var i in e)if(e.hasOwnProperty(i)&&-1===t.indexOf(i)){var o=e[i];this.add(i,o)}}},{key:"clear",value:function(){this.groups={},this.groupsArray=[]}},{key:"get",value:function(e){var t=this.groups[e];if(void 0===t)if(this.options.useDefaultGroups===!1&&this.groupsArray.length>0){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;i<t.length;i++){var o=t[i];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(e,o.key,o)}}return function(t,i,o){return i&&e(t.prototype,i),o&&e(t,o),t}}(),r=i(15),a=o(r),h=i(16),d=o(h),l=i(1),c=i(8),u=i(10),f=function(){function e(t,i,o,s){var r=this;n(this,e),this.body=t,this.images=i,this.groups=o,this.layoutEngine=s,this.body.functions.createNode=this.create.bind(this),this.nodesListeners={add:function(e,t){r.add(t.items)},update:function(e,t){r.update(t.items,t.data)},remove:function(e,t){r.remove(t.items)}},this.options={},this.defaultOptions={borderWidth:1,borderWidthSelected:2,brokenImage:void 0,color:{border:"#2B7CE9",background:"#97C2FC",highlight:{border:"#2B7CE9",background:"#D2E5FF"},hover:{border:"#2B7CE9",background:"#D2E5FF"}},fixed:{x:!1,y:!1},font:{color:"#343434",size:14,face:"arial",background:"none",strokeWidth:0,strokeColor:"#ffffff",align:"center"},group:void 0,hidden:!1,icon:{face:"FontAwesome",code:void 0,size:50,color:"#2B7CE9"},image:void 0,label:void 0,labelHighlightBold:!0,level:void 0,mass:1,physics:!0,scaling:{min:10,max:30,label:{enabled:!1,min:14,max:30,maxVisible:30,drawThreshold:5},customScalingFunction:function(e,t,i,o){if(t===e)return.5;var n=1/(t-e);return Math.max(0,(o-e)*n)}},shadow:{enabled:!1,color:"rgba(0,0,0,0.5)",size:10,x:5,y:5},shape:"ellipse",shapeProperties:{borderDashes:!1,borderRadius:6,interpolation:!0,useImageSize:!1,useBorderWithImage:!1},size:25,
+title:void 0,value:void 0,x:void 0,y:void 0},l.extend(this.options,this.defaultOptions),this.bindEventListeners()}return s(e,[{key:"bindEventListeners",value:function(){var e=this;this.body.emitter.on("refreshNodes",this.refresh.bind(this)),this.body.emitter.on("refresh",this.refresh.bind(this)),this.body.emitter.on("destroy",function(){l.forEach(e.nodesListeners,function(t,i){e.body.data.nodes&&e.body.data.nodes.off(i,t)}),delete e.body.functions.createNode,delete e.nodesListeners.add,delete e.nodesListeners.update,delete e.nodesListeners.remove,delete e.nodesListeners})}},{key:"setOptions",value:function(e){if(void 0!==e){if(a["default"].parseOptions(this.options,e),void 0!==e.shape)for(var t in this.body.nodes)this.body.nodes.hasOwnProperty(t)&&this.body.nodes[t].updateShape();if(void 0!==e.font){d["default"].parseOptions(this.options.font,e);for(var i in this.body.nodes)this.body.nodes.hasOwnProperty(i)&&(this.body.nodes[i].updateLabelModule(),this.body.nodes[i]._reset())}if(void 0!==e.size)for(var o in this.body.nodes)this.body.nodes.hasOwnProperty(o)&&this.body.nodes[o]._reset();void 0===e.hidden&&void 0===e.physics||this.body.emitter.emit("_dataChanged")}}},{key:"setData",value:function(e){var t=this,i=arguments.length<=1||void 0===arguments[1]?!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]?!1:arguments[1],i=void 0,o=[],n=0;n<e.length;n++){i=e[n];var s=this.body.data.nodes.get(i),r=this.create(s);o.push(r),this.body.nodes[i]=r}this.layoutEngine.positionInitially(o),t===!1&&this.body.emitter.emit("_dataChanged")}},{key:"update",value:function(e,t){for(var i=this.body.nodes,o=!1,n=0;n<e.length;n++){var s=e[n],r=i[s],a=t[n];void 0!==r?o=r.setOptions(a):(o=!0,r=this.create(a),i[s]=r)}o===!0?this.body.emitter.emit("_dataChanged"):this.body.emitter.emit("_dataUpdated")}},{key:"remove",value:function(e){for(var t=this.body.nodes,i=0;i<e.length;i++){var o=e[i];delete t[o]}this.body.emitter.emit("_dataChanged")}},{key:"create",value:function(e){var t=arguments.length<=1||void 0===arguments[1]?a["default"]:arguments[1];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]?!1: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;i<e.length;i++)if(void 0!==this.body.nodes[e[i]]){var o=this.body.nodes[e[i]];t[e[i]]={x:Math.round(o.x),y:Math.round(o.y)}}}else if(void 0!==this.body.nodes[e]){var n=this.body.nodes[e];t[e]={x:Math.round(n.x),y:Math.round(n.y)}}}else for(var s=0;s<this.body.nodeIndices.length;s++){var r=this.body.nodes[this.body.nodeIndices[s]];t[this.body.nodeIndices[s]]={x:Math.round(r.x),y:Math.round(r.y)}}return t}},{key:"storePositions",value:function(){var e=[],t=this.body.data.nodes.getDataSet();for(var i in t._data)if(t._data.hasOwnProperty(i)){var o=this.body.nodes[i];t._data[i].x==Math.round(o.x)&&t._data[i].y==Math.round(o.y)||e.push({id:o.id,x:Math.round(o.x),y:Math.round(o.y)})}t.update(e)}},{key:"getBoundingBox",value:function(e){return void 0!==this.body.nodes[e]?this.body.nodes[e].shape.boundingBox:void 0}},{key:"getConnectedNodes",value:function(e){var t=[];if(void 0!==this.body.nodes[e])for(var i=this.body.nodes[e],o={},n=0;n<i.edges.length;n++){var s=i.edges[n];s.toId==i.id?void 0===o[s.fromId]&&(t.push(s.fromId),o[s.fromId]=!0):s.fromId==i.id&&void 0===o[s.toId]&&(t.push(s.toId),o[s.toId]=!0)}return t}},{key:"getConnectedEdges",value:function(e){var t=[];if(void 0!==this.body.nodes[e])for(var i=this.body.nodes[e],o=0;o<i.edges.length;o++)t.push(i.edges[o].id);else console.log("NodeId provided for getConnectedEdges does not exist. Provided: ",e);return t}},{key:"moveNode",value:function(e,t,i){var o=this;void 0!==this.body.nodes[e]?(this.body.nodes[e].x=Number(t),this.body.nodes[e].y=Number(i),setTimeout(function(){o.body.emitter.emit("startSimulation")},0)):console.log("Node id supplied to moveNode does not exist. Provided: ",e)}}]),e}();t["default"]=f},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;i<t.length;i++){var o=t[i];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(e,o.key,o)}}return function(t,i,o){return i&&e(t.prototype,i),o&&e(t,o),t}}(),r=i(16),a=o(r),h=i(17),d=o(h),l=i(19),c=o(l),u=i(21),f=o(u),p=i(22),v=o(p),y=i(23),g=o(y),b=i(25),m=o(b),_=i(26),w=o(_),k=i(27),x=o(k),O=i(28),E=o(O),M=i(29),D=o(M),S=i(30),C=o(S),T=i(31),P=o(T),B=i(32),F=o(B),I=i(33),j=o(I),N=i(34),z=(o(N),i(1)),R=function(){function e(t,i,o,s,r){n(this,e),this.options=z.bridgeObject(r),this.globalOptions=r,this.body=i,this.edges=[],this.id=void 0,this.imagelist=o,this.grouplist=s,this.x=void 0,this.y=void 0,this.baseSize=this.options.size,this.baseFontSize=this.options.font.size,this.predefinedPosition=!1,this.selected=!1,this.hover=!1,this.labelModule=new a["default"](this.body,this.options,!1),this.setOptions(t)}return s(e,[{key:"attachEdge",value:function(e){-1===this.edges.indexOf(e)&&this.edges.push(e)}},{key:"detachEdge",value:function(e){var t=this.edges.indexOf(e);-1!=t&&this.edges.splice(t,1)}},{key:"setOptions",value:function(t){var i=this.options.shape;if(t){if(void 0!==t.id&&(this.id=t.id),void 0===this.id)throw"Node must have an id";if(void 0!==t.x&&(null===t.x?(this.x=void 0,this.predefinedPosition=!1):(this.x=parseInt(t.x),this.predefinedPosition=!0)),void 0!==t.y&&(null===t.y?(this.y=void 0,this.predefinedPosition=!1):(this.y=parseInt(t.y),this.predefinedPosition=!0)),void 0!==t.size&&(this.baseSize=t.size),void 0!==t.value&&(t.value=parseFloat(t.value)),"number"==typeof t.group||"string"==typeof t.group&&""!=t.group){var o=this.grouplist.get(t.group);z.deepExtend(this.options,o),this.options.color=z.parseColor(this.options.color)}if(e.parseOptions(this.options,t,!0,this.globalOptions),void 0!==this.options.image){if(!this.imagelist)throw"No imagelist provided";this.imageObj=this.imagelist.load(this.options.image,this.options.brokenImage,this.id)}return this.updateLabelModule(),this.updateShape(i),void 0!==t.hidden||void 0!==t.physics}}},{key:"updateLabelModule",value:function(){void 0!==this.options.label&&null!==this.options.label||(this.options.label=""),this.labelModule.setOptions(this.options,!0),void 0!==this.labelModule.baseSize&&(this.baseFontSize=this.labelModule.baseSize)}},{key:"updateShape",value:function(e){if(e===this.options.shape&&this.shape)this.shape.setOptions(this.options,this.imageObj);else switch(this.options.shape){case"box":this.shape=new d["default"](this.options,this.body,this.labelModule);break;case"circle":this.shape=new c["default"](this.options,this.body,this.labelModule);break;case"circularImage":this.shape=new f["default"](this.options,this.body,this.labelModule,this.imageObj);break;case"database":this.shape=new v["default"](this.options,this.body,this.labelModule);break;case"diamond":this.shape=new g["default"](this.options,this.body,this.labelModule);break;case"dot":this.shape=new m["default"](this.options,this.body,this.labelModule);break;case"ellipse":this.shape=new w["default"](this.options,this.body,this.labelModule);break;case"icon":this.shape=new x["default"](this.options,this.body,this.labelModule);break;case"image":this.shape=new E["default"](this.options,this.body,this.labelModule,this.imageObj);break;case"square":this.shape=new D["default"](this.options,this.body,this.labelModule);break;case"star":this.shape=new C["default"](this.options,this.body,this.labelModule);break;case"text":this.shape=new P["default"](this.options,this.body,this.labelModule);break;case"triangle":this.shape=new F["default"](this.options,this.body,this.labelModule);break;case"triangleDown":this.shape=new j["default"](this.options,this.body,this.labelModule);break;default:this.shape=new w["default"](this.options,this.body,this.labelModule)}this._reset()}},{key:"select",value:function(){this.selected=!0,this._reset()}},{key:"unselect",value:function(){this.selected=!1,this._reset()}},{key:"_reset",value:function(){this.shape.width=void 0,this.shape.height=void 0}},{key:"getTitle",value:function(){return this.options.title}},{key:"distanceToBorder",value:function(e,t){return this.shape.distanceToBorder(e,t)}},{key:"isFixed",value:function(){return this.options.fixed.x&&this.options.fixed.y}},{key:"isSelected",value:function(){return this.selected}},{key:"getValue",value:function(){return this.options.value}},{key:"setValueRange",value:function(e,t,i){if(void 0!==this.options.value){var o=this.options.scaling.customScalingFunction(e,t,i,this.options.value),n=this.options.scaling.max-this.options.scaling.min;if(this.options.scaling.label.enabled===!0){var s=this.options.scaling.label.max-this.options.scaling.label.min;this.options.font.size=this.options.scaling.label.min+o*s}this.options.size=this.options.scaling.min+o*n}else this.options.size=this.baseSize,this.options.font.size=this.baseFontSize;this.updateLabelModule()}},{key:"draw",value:function(e){this.shape.draw(e,this.x,this.y,this.selected,this.hover)}},{key:"updateBoundingBox",value:function(e){this.shape.updateBoundingBox(this.x,this.y,e)}},{key:"resize",value:function(e){this.shape.resize(e,this.selected)}},{key:"isOverlappingWith",value:function(e){return this.shape.left<e.right&&this.shape.left+this.shape.width>e.left&&this.shape.top<e.bottom&&this.shape.top+this.shape.height>e.top}},{key:"isBoundingBoxOverlappingWith",value:function(e){return this.shape.boundingBox.left<e.right&&this.shape.boundingBox.right>e.left&&this.shape.boundingBox.top<e.bottom&&this.shape.boundingBox.bottom>e.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<t.length;i++){var o=t[i];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(e,o.key,o)}}return function(t,i,o){return i&&e(t.prototype,i),o&&e(t,o),t}}(),a=i(1),h=function(){function e(t,i){var n=arguments.length<=2||void 0===arguments[2]?!1: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]?!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]?"middle":arguments[4];if(void 0!==this.nodeOptions.label){var s=this.fontOptions.size*this.body.view.scale;this.nodeOptions.label&&s<this.nodeOptions.scaling.label.drawThreshold-1||(this.calculateLabelSize(e,o,t,i,n),this._drawBackground(e),this._drawText(e,o,t,i,n))}}},{key:"_drawBackground",value:function(e){if(void 0!==this.fontOptions.background&&"none"!==this.fontOptions.background){e.fillStyle=this.fontOptions.background;var t=2;if(this.isEdgeLabel)switch(this.fontOptions.align){case"middle":e.fillRect(.5*-this.size.width,.5*-this.size.height,this.size.width,this.size.height);break;case"top":e.fillRect(.5*-this.size.width,-(this.size.height+t),this.size.width,this.size.height);break;case"bottom":e.fillRect(.5*-this.size.width,t,this.size.width,this.size.height);break;default:e.fillRect(this.size.left,this.size.top-.5*t,this.size.width,this.size.height)}else e.fillRect(this.size.left,this.size.top-.5*t,this.size.width,this.size.height)}}},{key:"_drawText",value:function(e,t,i,o){var s=arguments.length<=4||void 0===arguments[4]?"middle":arguments[4],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;v<this.lineCount;v++)this.fontOptions.strokeWidth>0&&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;i<t.length;i++){var o=t[i];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(e,o.key,o)}}return function(t,i,o){return i&&e(t.prototype,i),o&&e(t,o),t}}(),h=i(18),d=o(h),l=function(e){function t(e,i,o){return n(this,t),s(this,Object.getPrototypeOf(t).call(this,e,i,o))}return r(t,e),a(t,[{key:"resize",value:function(e,t){if(void 0===this.width){var i=5,o=this.labelModule.getTextSize(e,t);this.width=o.width+2*i,this.height=o.height+2*i,this.radius=.5*this.width}}},{key:"draw",value:function(e,t,i,o,n){this.resize(e,o),this.left=t-this.width/2,this.top=i-this.height/2;var s=this.options.borderWidth,r=this.options.borderWidthSelected||2*this.options.borderWidth;e.strokeStyle=o?this.options.color.highlight.border:n?this.options.color.hover.border:this.options.color.border,e.lineWidth=o?r:s,e.lineWidth/=this.body.view.scale,e.lineWidth=Math.min(this.width,e.lineWidth),e.fillStyle=o?this.options.color.highlight.background:n?this.options.color.hover.background:this.options.color.background;var a=this.options.shapeProperties.borderRadius;e.roundRect(this.left,this.top,this.width,this.height,a),this.enableShadow(e),e.fill(),this.disableShadow(e),e.save(),s>0&&(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;i<t.length;i++){var o=t[i];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(e,o.key,o)}}return function(t,i,o){return i&&e(t.prototype,i),o&&e(t,o),t}}(),n=function(){function e(t,o,n){i(this,e),this.body=o,this.labelModule=n,this.setOptions(t),this.top=void 0,this.left=void 0,this.height=void 0,this.width=void 0,this.radius=void 0,this.boundingBox={top:0,left:0,right:0,bottom:0}}return o(e,[{key:"setOptions",value:function(e){this.options=e}},{key:"_distanceToBorder",value:function(e,t){var i=this.options.borderWidth;return this.resize(e),Math.min(Math.abs(this.width/2/Math.cos(t)),Math.abs(this.height/2/Math.sin(t)))+i}},{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)}},{key:"enableBorderDashes",value:function(e){if(this.options.shapeProperties.borderDashes!==!1)if(void 0!==e.setLineDash){var t=this.options.shapeProperties.borderDashes;t===!0&&(t=[5,15]),e.setLineDash(t)}else console.warn("setLineDash is not supported in this browser. The dashed borders cannot be used."),this.options.shapeProperties.borderDashes=!1}},{key:"disableBorderDashes",value:function(e){this.options.shapeProperties.borderDashes!==!1&&(void 0!==e.setLineDash?e.setLineDash([0]):(console.warn("setLineDash is not supported in this browser. The dashed borders cannot be used."),this.options.shapeProperties.borderDashes=!1))}}]),e}();t["default"]=n},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<t.length;i++){var o=t[i];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(e,o.key,o)}}return function(t,i,o){return i&&e(t.prototype,i),o&&e(t,o),t}}(),h=i(20),d=o(h),l=function(e){function t(e,i,o){return n(this,t),s(this,Object.getPrototypeOf(t).call(this,e,i,o))}return r(t,e),a(t,[{key:"resize",value:function(e,t){if(void 0===this.width){var i=5,o=this.labelModule.getTextSize(e,t),n=Math.max(o.width,o.height)+2*i;this.options.size=n/2,this.width=n,this.height=n,this.radius=.5*this.width}}},{key:"draw",value:function(e,t,i,o,n){this.resize(e,o),this.left=t-this.width/2,this.top=i-this.height/2,this._drawRawCircle(e,t,i,o,n,this.options.size),this.boundingBox.top=i-this.options.size,this.boundingBox.left=t-this.options.size,this.boundingBox.right=t+this.options.size,this.boundingBox.bottom=i+this.options.size,this.updateBoundingBox(t,i),this.labelModule.draw(e,t,i,o)}},{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}},{key:"distanceToBorder",value:function(e,t){return this.resize(e),.5*this.width}}]),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<t.length;i++){var o=t[i];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(e,o.key,o)}}return function(t,i,o){return i&&e(t.prototype,i),o&&e(t,o),t}}(),h=i(18),d=o(h),l=function(e){function t(e,i,o){n(this,t);var r=s(this,Object.getPrototypeOf(t).call(this,e,i,o));return r.labelOffset=0,r.imageLoaded=!1,r}return r(t,e),a(t,[{key:"setOptions",value:function(e,t){this.options=e,t&&(this.imageObj=t)}},{key:"_resizeImage",value:function(){var e=!1;if(this.imageObj.width&&this.imageObj.height?this.imageLoaded===!1&&(this.imageLoaded=!0,e=!0):this.imageLoaded=!1,!this.width||!this.height||e===!0){var t,i,o;this.imageObj.width&&this.imageObj.height&&(t=0,i=0),this.options.shapeProperties.useImageSize===!1?this.imageObj.width>this.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;i<t.length;i++){var o=t[i];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(e,o.key,o)}}return function(t,i,o){return i&&e(t.prototype,i),o&&e(t,o),t}}(),h=i(20),d=o(h),l=function(e){function t(e,i,o,r){n(this,t);var a=s(this,Object.getPrototypeOf(t).call(this,e,i,o));return a.imageObj=r,a._swapToImageResizeWhenImageLoaded=!0,a}return r(t,e),a(t,[{key:"resize",value:function(){if(void 0===this.imageObj.src||void 0===this.imageObj.width||void 0===this.imageObj.height){if(!this.width){var e=2*this.options.size;this.width=e,this.height=e,this._swapToImageResizeWhenImageLoaded=!0,this.radius=.5*this.width}}else this._swapToImageResizeWhenImageLoaded&&(this.width=void 0,this.height=void 0,this._swapToImageResizeWhenImageLoaded=!1),this._resizeImage()}},{key:"draw",value:function(e,t,i,o,n){this.resize(),this.left=t-this.width/2,this.top=i-this.height/2;var s=Math.min(.5*this.height,.5*this.width);this._drawRawCircle(e,t,i,o,n,s),e.save(),e.clip(),this._drawImageAtPosition(e),e.restore(),this._drawImageLabel(e,t,i,o),this.updateBoundingBox(t,i)}},{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,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.resize(e),.5*this.width}}]),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<t.length;i++){var o=t[i];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(e,o.key,o)}}return function(t,i,o){return i&&e(t.prototype,i),o&&e(t,o),t}}(),h=i(18),d=o(h),l=function(e){function t(e,i,o){return n(this,t),s(this,Object.getPrototypeOf(t).call(this,e,i,o))}return r(t,e),a(t,[{key:"resize",value:function(e,t){if(void 0===this.width){var i=5,o=this.labelModule.getTextSize(e,t),n=o.width+2*i;this.width=n,this.height=n,this.radius=.5*this.width}}},{key:"draw",value:function(e,t,i,o,n){this.resize(e,o),this.left=t-this.width/2,this.top=i-this.height/2;var s=this.options.borderWidth,r=this.options.borderWidthSelected||2*this.options.borderWidth,a=(o?r:s)/this.body.view.scale;e.lineWidth=Math.min(this.width,a),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.database(t-this.width/2,i-.5*this.height,this.width,this.height),this.enableShadow(e),e.fill(),this.disableShadow(e),e.save(),a>0&&(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;i<t.length;i++){var o=t[i];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(e,o.key,o)}}return function(t,i,o){return i&&e(t.prototype,i),o&&e(t,o),t}}(),h=i(24),d=o(h),l=function(e){function t(e,i,o){return n(this,t),s(this,Object.getPrototypeOf(t).call(this,e,i,o))}return r(t,e),a(t,[{key:"resize",value:function(e){this._resizeShape()}},{key:"draw",value:function(e,t,i,o,n){this._drawShape(e,"diamond",4,t,i,o,n)}},{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;i<t.length;i++){var o=t[i];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(e,o.key,o)}}return function(t,i,o){return i&&e(t.prototype,i),o&&e(t,o),t}}(),h=i(18),d=o(h),l=function(e){function t(e,i,o){return n(this,t),s(this,Object.getPrototypeOf(t).call(this,e,i,o))}return r(t,e),a(t,[{key:"_resizeShape",value:function(){if(void 0===this.width){var e=2*this.options.size;this.width=e,this.height=e,this.radius=.5*this.width}}},{key:"_drawShape",value:function(e,t,i,o,n,s,r){this._resizeShape(),this.left=o-this.width/2,this.top=n-this.height/2;var a=this.options.borderWidth,h=this.options.borderWidthSelected||2*this.options.borderWidth,d=(s?h:a)/this.body.view.scale;if(e.lineWidth=Math.min(this.width,d),e.strokeStyle=s?this.options.color.highlight.border:r?this.options.color.hover.border:this.options.color.border,e.fillStyle=s?this.options.color.highlight.background:r?this.options.color.hover.background:this.options.color.background,e[t](o,n,this.options.size),this.enableShadow(e),e.fill(),this.disableShadow(e),e.save(),d>0&&(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;i<t.length;i++){var o=t[i];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(e,o.key,o)}}return function(t,i,o){return i&&e(t.prototype,i),o&&e(t,o),t}}(),h=i(24),d=o(h),l=function(e){function t(e,i,o){return n(this,t),s(this,Object.getPrototypeOf(t).call(this,e,i,o))}return r(t,e),a(t,[{key:"resize",value:function(e){this._resizeShape()}},{key:"draw",value:function(e,t,i,o,n){this._drawShape(e,"circle",2,t,i,o,n)}},{key:"distanceToBorder",value:function(e,t){return this.resize(e),this.options.size}}]),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<t.length;i++){var o=t[i];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(e,o.key,o)}}return function(t,i,o){return i&&e(t.prototype,i),o&&e(t,o),t}}(),h=i(18),d=o(h),l=function(e){function t(e,i,o){return n(this,t),s(this,Object.getPrototypeOf(t).call(this,e,i,o))}return r(t,e),a(t,[{key:"resize",value:function(e,t){if(void 0===this.width){var i=this.labelModule.getTextSize(e,t);this.width=1.5*i.width,this.height=2*i.height,this.width<this.height&&(this.width=this.height),this.radius=.5*this.width}}},{key:"draw",value:function(e,t,i,o,n){this.resize(e,o),this.left=t-.5*this.width,this.top=i-.5*this.height;var s=this.options.borderWidth,r=this.options.borderWidthSelected||2*this.options.borderWidth,a=(o?r:s)/this.body.view.scale;e.lineWidth=Math.min(this.width,a),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.ellipse(this.left,this.top,this.width,this.height),this.enableShadow(e),e.fill(),this.disableShadow(e),e.save(),a>0&&(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;i<t.length;i++){var o=t[i];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(e,o.key,o)}}return function(t,i,o){return i&&e(t.prototype,i),o&&e(t,o),t}}(),h=i(18),d=o(h),l=function(e){function t(e,i,o){return n(this,t),s(this,Object.getPrototypeOf(t).call(this,e,i,o))}return r(t,e),a(t,[{key:"resize",value:function(e){if(void 0===this.width){var t=5,i={width:Number(this.options.icon.size),height:Number(this.options.icon.size)};this.width=i.width+2*t,this.height=i.height+2*t,this.radius=.5*this.width}}},{key:"draw",value:function(e,t,i,o,n){if(this.resize(e),this.options.icon.size=this.options.icon.size||50,this.left=t-.5*this.width,this.top=i-.5*this.height,this._icon(e,t,i,o),void 0!==this.options.label){var s=5;this.labelModule.draw(e,t,i+.5*this.height+s,o)}this.updateBoundingBox(t,i)}},{key:"updateBoundingBox",value:function(e,t){if(this.boundingBox.top=t-.5*this.options.icon.size,this.boundingBox.left=e-.5*this.options.icon.size,this.boundingBox.right=e+.5*this.options.icon.size,this.boundingBox.bottom=t+.5*this.options.icon.size,void 0!==this.options.label&&this.labelModule.size.width>0){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;i<t.length;i++){var o=t[i];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(e,o.key,o)}}return function(t,i,o){return i&&e(t.prototype,i),o&&e(t,o),t}}(),h=i(20),d=o(h),l=function(e){function t(e,i,o,r){n(this,t);var a=s(this,Object.getPrototypeOf(t).call(this,e,i,o));return a.imageObj=r,a}return r(t,e),a(t,[{key:"resize",value:function(){this._resizeImage()}},{key:"draw",value:function(e,t,i,o,n){if(this.resize(),this.left=t-this.width/2,this.top=i-this.height/2,this.options.shapeProperties.useBorderWithImage===!0){var s=this.options.borderWidth,r=this.options.borderWidthSelected||2*this.options.borderWidth,a=(o?r:s)/this.body.view.scale;e.lineWidth=Math.min(this.width,a),e.beginPath(),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.rect(this.left-.5*e.lineWidth,this.top-.5*e.lineWidth,this.width+e.lineWidth,this.height+e.lineWidth),e.fill(),e.save(),a>0&&(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;i<t.length;i++){var o=t[i];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(e,o.key,o)}}return function(t,i,o){return i&&e(t.prototype,i),o&&e(t,o),t}}(),h=i(24),d=o(h),l=function(e){function t(e,i,o){return n(this,t),s(this,Object.getPrototypeOf(t).call(this,e,i,o))}return r(t,e),a(t,[{key:"resize",value:function(){this._resizeShape()}},{key:"draw",value:function(e,t,i,o,n){this._drawShape(e,"square",2,t,i,o,n)}},{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;i<t.length;i++){var o=t[i];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(e,o.key,o)}}return function(t,i,o){return i&&e(t.prototype,i),o&&e(t,o),t}}(),h=i(24),d=o(h),l=function(e){function t(e,i,o){return n(this,t),s(this,Object.getPrototypeOf(t).call(this,e,i,o))}return r(t,e),a(t,[{key:"resize",value:function(e){this._resizeShape()}},{key:"draw",value:function(e,t,i,o,n){this._drawShape(e,"star",4,t,i,o,n)}},{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;i<t.length;i++){var o=t[i];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(e,o.key,o)}}return function(t,i,o){return i&&e(t.prototype,i),o&&e(t,o),t}}(),h=i(18),d=o(h),l=function(e){function t(e,i,o){return n(this,t),s(this,Object.getPrototypeOf(t).call(this,e,i,o))}return r(t,e),a(t,[{key:"resize",value:function(e,t){if(void 0===this.width){var i=5,o=this.labelModule.getTextSize(e,t);this.width=o.width+2*i,this.height=o.height+2*i,this.radius=.5*this.width}}},{key:"draw",value:function(e,t,i,o,n){this.resize(e,o||n),this.left=t-this.width/2,this.top=i-this.height/2,this.enableShadow(e),this.labelModule.draw(e,t,i,o||n),this.disableShadow(e),this.updateBoundingBox(t,i,e,o)}},{key:"updateBoundingBox",value:function(e,t,i,o){this.resize(i,o),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}},{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;i<t.length;i++){var o=t[i];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(e,o.key,o)}}return function(t,i,o){return i&&e(t.prototype,i),o&&e(t,o),t}}(),h=i(24),d=o(h),l=function(e){function t(e,i,o){return n(this,t),s(this,Object.getPrototypeOf(t).call(this,e,i,o))}return r(t,e),a(t,[{key:"resize",value:function(e){this._resizeShape()}},{key:"draw",value:function(e,t,i,o,n){this._drawShape(e,"triangle",3,t,i,o,n)}},{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;i<t.length;i++){var o=t[i];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(e,o.key,o)}}return function(t,i,o){return i&&e(t.prototype,i),o&&e(t,o),t}}(),h=i(24),d=o(h),l=function(e){function t(e,i,o){return n(this,t),s(this,Object.getPrototypeOf(t).call(this,e,i,o))}return r(t,e),a(t,[{key:"resize",value:function(e){this._resizeShape()}},{key:"draw",value:function(e,t,i,o,n){this._drawShape(e,"triangleDown",3,t,i,o,n)}},{key:"distanceToBorder",value:function(e,t){return this._distanceToBorder(e,t)}}]),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"==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=function(){function e(e,t){for(var i=0;i<t.length;i++){var o=t[i];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(e,o.key,o)}}return function(t,i,o){return i&&e(t.prototype,i),o&&e(t,o),t}}(),r=i(1),a=!1,h=void 0,d="background: #FFeeee; color: #dd0000",l=function(){function e(){o(this,e)}return s(e,null,[{key:"validate",value:function(t,i,o){a=!1,h=i;var n=i;return void 0!==o&&(n=i[o]),e.parse(t,n,[]),a}},{key:"parse",value:function(t,i,o){for(var n in t)t.hasOwnProperty(n)&&e.check(n,t,i,o)}},{key:"check",value:function(t,i,o,n){void 0===o[t]&&void 0===o.__any__?e.getSuggestion(t,o,n):void 0===o[t]&&void 0!==o.__any__?"object"===e.getType(i[t])&&void 0!==o.__any__.__type__?e.checkFields(t,i,o,"__any__",o.__any__.__type__,n):e.checkFields(t,i,o,"__any__",o.__any__,n):void 0!==o[t].__type__?e.checkFields(t,i,o,t,o[t].__type__,n):e.checkFields(t,i,o,t,o[t],n)}},{key:"checkFields",value:function(t,i,o,n,s,h){var l=e.getType(i[t]),c=s[l];void 0!==c?"array"===e.getType(c)&&-1===c.indexOf(i[t])?(console.log('%cInvalid option detected in "'+t+'". Allowed values are:'+e.print(c)+' not "'+i[t]+'". '+e.printLocation(h,t),d),a=!0):"object"===l&&"__any__"!==n&&(h=r.copyAndExtendArray(h,t),e.parse(i[t],o[n],h)):void 0===s.any&&(console.log('%cInvalid type received for "'+t+'". Expected: '+e.print(Object.keys(s))+". Received ["+l+'] "'+i[t]+'"'+e.printLocation(h,t),d),a=!0)}},{key:"getType",value:function(e){var t="undefined"==typeof e?"undefined":n(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":void 0!==e.nodeType?"dom":e._isAMomentObject===!0?"moment":"object":"number"===t?"number":"boolean"===t?"boolean":"string"===t?"string":void 0===t?"undefined":t}},{key:"getSuggestion",value:function(t,i,o){var n=e.findInOptions(t,i,o,!1),s=e.findInOptions(t,h,[],!0),r=8,l=4;void 0!==n.indexMatch?console.log('%cUnknown option detected: "'+t+'" in '+e.printLocation(n.path,t,"")+'Perhaps it was incomplete? Did you mean: "'+n.indexMatch+'"?\n\n',d):s.distance<=l&&n.distance>s.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;n<e.length;n++){for(var s=0;n+1>s;s++)o+=" ";o+=e[n]+": {\n"}for(var r=0;r<e.length+1;r++)o+=" ";o+=t+"\n";for(var a=0;a<e.length+1;a++){for(var h=0;h<e.length-a;h++)o+=" ";o+="}\n"}return o+"\n\n"}},{key:"print",value:function(e){return JSON.stringify(e).replace(/(\")|(\[)|(\])|(,"__type__")/g,"").replace(/(\,)/g,", ")}},{key:"levenshteinDistance",value:function(e,t){if(0===e.length)return t.length;if(0===t.length)return e.length;var i,o=[];for(i=0;i<=t.length;i++)o[i]=[i];var n;for(n=0;n<=e.length;n++)o[0][n]=n;for(i=1;i<=t.length;i++)for(n=1;n<=e.length;n++)t.charAt(i-1)==e.charAt(n-1)?o[i][n]=o[i-1][n-1]:o[i][n]=Math.min(o[i-1][n-1]+1,Math.min(o[i][n-1]+1,o[i-1][n]+1));return o[t.length][e.length]}}]),e}();t["default"]=l,t.printStyle=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;i<t.length;i++){var o=t[i];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(e,o.key,o)}}return function(t,i,o){return i&&e(t.prototype,i),o&&e(t,o),t}}(),r=i(36),a=o(r),h=i(16),d=o(h),l=i(1),c=i(8),u=i(10),f=function(){function e(t,i,o){var s=this;n(this,e),this.body=t,this.images=i,this.groups=o,this.body.functions.createEdge=this.create.bind(this),this.edgesListeners={add:function(e,t){s.add(t.items)},update:function(e,t){s.update(t.items)},remove:function(e,t){s.remove(t.items)}},this.options={},this.defaultOptions={arrows:{to:{enabled:!1,scaleFactor:1},middle:{enabled:!1,scaleFactor:1},from:{enabled:!1,scaleFactor:1}},arrowStrikethrough:!0,color:{color:"#848484",highlight:"#848484",hover:"#848484",inherit:"from",opacity:1},dashes:!1,font:{color:"#343434",size:14,face:"arial",background:"none",strokeWidth:2,strokeColor:"#ffffff",align:"horizontal"},hidden:!1,hoverWidth:1.5,label:void 0,labelHighlightBold:!0,length:void 0,physics:!0,scaling:{min:1,max:15,label:{enabled:!0,min:14,max:30,maxVisible:30,drawThreshold:5},customScalingFunction:function(e,t,i,o){if(t===e)return.5;var n=1/(t-e);return Math.max(0,(o-e)*n)}},selectionWidth:1.5,selfReferenceSize:20,shadow:{enabled:!1,color:"rgba(0,0,0,0.5)",size:10,x:5,y:5},smooth:{enabled:!0,type:"dynamic",forceDirection:"none",roundness:.5},title:void 0,width:1,value:void 0},l.extend(this.options,this.defaultOptions),this.bindEventListeners()}return s(e,[{key:"bindEventListeners",value:function(){var e=this;this.body.emitter.on("_forceDisableDynamicCurves",function(t){"dynamic"===t&&(t="continuous");var i=!1;for(var o in e.body.edges)if(e.body.edges.hasOwnProperty(o)){var n=e.body.edges[o],s=e.body.data.edges._data[o];if(void 0!==s){var r=s.smooth;void 0!==r&&r.enabled===!0&&"dynamic"===r.type&&(void 0===t?n.setOptions({smooth:!1}):n.setOptions({smooth:{type:t}}),i=!0)}}i===!0&&e.body.emitter.emit("_dataChanged")}),this.body.emitter.on("_dataUpdated",function(){e.reconnectEdges(),e.markAllEdgesAsDirty()}),this.body.emitter.on("refreshEdges",this.refresh.bind(this)),this.body.emitter.on("refresh",this.refresh.bind(this)),this.body.emitter.on("destroy",function(){l.forEach(e.edgesListeners,function(t,i){e.body.data.edges&&e.body.data.edges.off(i,t)}),delete e.body.functions.createEdge,delete e.edgesListeners.add,delete e.edgesListeners.update,delete e.edgesListeners.remove,delete e.edgesListeners})}},{key:"setOptions",value:function(e){if(void 0!==e){a["default"].parseOptions(this.options,e),void 0!==e.color&&this.markAllEdgesAsDirty();var t=!1;if(void 0!==e.smooth)for(var i in this.body.edges)this.body.edges.hasOwnProperty(i)&&(t=this.body.edges[i].updateEdgeType()||t);if(void 0!==e.font){d["default"].parseOptions(this.options.font,e);for(var o in this.body.edges)this.body.edges.hasOwnProperty(o)&&this.body.edges[o].updateLabelModule()}void 0===e.hidden&&void 0===e.physics&&t!==!0||this.body.emitter.emit("_dataChanged")}}},{key:"setData",value:function(e){var t=this,i=arguments.length<=1||void 0===arguments[1]?!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]?!1:arguments[1],i=this.body.edges,o=this.body.data.edges,n=0;n<e.length;n++){var s=e[n],r=i[s];r&&r.disconnect();var a=o.get(s,{showInternalIds:!0});i[s]=this.create(a)}t===!1&&this.body.emitter.emit("_dataChanged")}},{key:"update",value:function(e){for(var t=this.body.edges,i=this.body.data.edges,o=!1,n=0;n<e.length;n++){var s=e[n],r=i.get(s),a=t[s];void 0!==a?(a.disconnect(),o=a.setOptions(r)||o,a.connect()):(this.body.edges[s]=this.create(r),o=!0)}o===!0?this.body.emitter.emit("_dataChanged"):this.body.emitter.emit("_dataUpdated")}},{key:"remove",value:function(e){for(var t=this.body.edges,i=0;i<e.length;i++){var o=e[i],n=t[o];void 0!==n&&(n.cleanup(),n.disconnect(),delete t[o])}this.body.emitter.emit("_dataChanged")}},{key:"refresh",value:function(){var e=this.body.edges;for(var t in e){var i=void 0;e.hasOwnProperty(t)&&(i=e[t]);var o=this.body.data.edges._data[t];void 0!==i&&void 0!==o&&i.setOptions(o)}}},{key:"create",value:function(e){return new a["default"](e,this.body,this.options)}},{key:"markAllEdgesAsDirty",value:function(){for(var e in this.body.edges)this.body.edges[e].edgeType.colorDirty=!0}},{key:"reconnectEdges",value:function(){var e,t=this.body.nodes,i=this.body.edges;for(e in t)t.hasOwnProperty(e)&&(t[e].edges=[]);for(e in i)if(i.hasOwnProperty(e)){var o=i[e];o.from=null,o.to=null,o.connect()}}},{key:"getConnectedNodes",value:function(e){var t=[];if(void 0!==this.body.edges[e]){var i=this.body.edges[e];i.fromId&&t.push(i.fromId),i.toId&&t.push(i.toId)}return t}}]),e}();t["default"]=f},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<t.length;i++){var o=t[i];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(e,o.key,o)}}return function(t,i,o){return i&&e(t.prototype,i),o&&e(t,o),t}}(),a=i(16),h=o(a),d=i(37),l=o(d),c=i(41),u=o(c),f=i(42),p=o(f),v=i(43),y=o(v),g=i(1),b=function(){function e(t,i,o){if(n(this,e),void 0===i)throw"No body provided";this.options=g.bridgeObject(o),this.globalOptions=o,this.body=i,this.id=void 0,this.fromId=void 0,this.toId=void 0,this.selected=!1,this.hover=!1,this.labelDirty=!0,this.colorDirty=!0,this.baseWidth=this.options.width,this.baseFontSize=this.options.font.size,this.from=void 0,this.to=void 0,this.edgeType=void 0,this.connected=!1,this.labelModule=new h["default"](this.body,this.options,!0),this.setOptions(t)}return r(e,[{key:"setOptions",value:function(t){if(t){this.colorDirty=!0,e.parseOptions(this.options,t,!0,this.globalOptions),void 0!==t.id&&(this.id=t.id),void 0!==t.from&&(this.fromId=t.from),void 0!==t.to&&(this.toId=t.to),void 0!==t.title&&(this.title=t.title),
+void 0!==t.value&&(t.value=parseFloat(t.value)),this.updateLabelModule();var i=this.updateEdgeType();return this._setInteractionWidths(),this.connect(),void 0===t.hidden&&void 0===t.physics||(i=!0),i}}},{key:"updateLabelModule",value:function(){this.labelModule.setOptions(this.options,!0),void 0!==this.labelModule.baseSize&&(this.baseFontSize=this.labelModule.baseSize)}},{key:"updateEdgeType",value:function(){var e=!1,t=!0,i=this.options.smooth;return void 0!==this.edgeType&&(this.edgeType instanceof u["default"]&&i.enabled===!0&&"dynamic"===i.type&&(t=!1),this.edgeType instanceof l["default"]&&i.enabled===!0&&"cubicBezier"===i.type&&(t=!1),this.edgeType instanceof p["default"]&&i.enabled===!0&&"dynamic"!==i.type&&"cubicBezier"!==i.type&&(t=!1),this.edgeType instanceof y["default"]&&i.enabled===!1&&(t=!1),t===!0&&(e=this.cleanup())),t===!0?this.options.smooth.enabled===!0?"dynamic"===this.options.smooth.type?(e=!0,this.edgeType=new u["default"](this.options,this.body,this.labelModule)):"cubicBezier"===this.options.smooth.type?this.edgeType=new l["default"](this.options,this.body,this.labelModule):this.edgeType=new p["default"](this.options,this.body,this.labelModule):this.edgeType=new y["default"](this.options,this.body,this.labelModule):this.edgeType.setOptions(this.options),e}},{key:"connect",value:function(){this.disconnect(),this.from=this.body.nodes[this.fromId]||void 0,this.to=this.body.nodes[this.toId]||void 0,this.connected=void 0!==this.from&&void 0!==this.to,this.connected===!0?(this.from.attachEdge(this),this.to.attachEdge(this)):(this.from&&this.from.detachEdge(this),this.to&&this.to.detachEdge(this)),this.edgeType.connect()}},{key:"disconnect",value:function(){this.from&&(this.from.detachEdge(this),this.from=void 0),this.to&&(this.to.detachEdge(this),this.to=void 0),this.connected=!1}},{key:"getTitle",value:function(){return this.title}},{key:"isSelected",value:function(){return this.selected}},{key:"getValue",value:function(){return this.options.value}},{key:"setValueRange",value:function(e,t,i){if(void 0!==this.options.value){var o=this.options.scaling.customScalingFunction(e,t,i,this.options.value),n=this.options.scaling.max-this.options.scaling.min;if(this.options.scaling.label.enabled===!0){var s=this.options.scaling.label.max-this.options.scaling.label.min;this.options.font.size=this.options.scaling.label.min+o*s}this.options.width=this.options.scaling.min+o*n}else this.options.width=this.baseWidth,this.options.font.size=this.baseFontSize;this._setInteractionWidths(),this.updateLabelModule()}},{key:"_setInteractionWidths",value:function(){"function"==typeof this.options.hoverWidth?this.edgeType.hoverWidth=this.options.hoverWidth(this.options.width):this.edgeType.hoverWidth=this.options.hoverWidth+this.options.width,"function"==typeof this.options.selectionWidth?this.edgeType.selectionWidth=this.options.selectionWidth(this.options.width):this.edgeType.selectionWidth=this.options.selectionWidth+this.options.width}},{key:"draw",value:function(e){var t=this.edgeType.getViaNode(),i={};this.edgeType.fromPoint=this.edgeType.from,this.edgeType.toPoint=this.edgeType.to,this.options.arrows.from.enabled===!0&&(i.from=this.edgeType.getArrowData(e,"from",t,this.selected,this.hover),this.options.arrowStrikethrough===!1&&(this.edgeType.fromPoint=i.from.core)),this.options.arrows.to.enabled===!0&&(i.to=this.edgeType.getArrowData(e,"to",t,this.selected,this.hover),this.options.arrowStrikethrough===!1&&(this.edgeType.toPoint=i.to.core)),this.options.arrows.middle.enabled===!0&&(i.middle=this.edgeType.getArrowData(e,"middle",t,this.selected,this.hover)),this.edgeType.drawLine(e,this.selected,this.hover,t),this.drawArrows(e,i),this.drawLabel(e,t)}},{key:"drawArrows",value:function(e,t){this.options.arrows.from.enabled===!0&&this.edgeType.drawArrowHead(e,this.selected,this.hover,t.from),this.options.arrows.middle.enabled===!0&&this.edgeType.drawArrowHead(e,this.selected,this.hover,t.middle),this.options.arrows.to.enabled===!0&&this.edgeType.drawArrowHead(e,this.selected,this.hover,t.to)}},{key:"drawLabel",value:function(e,t){if(void 0!==this.options.label){var i=this.from,o=this.to,n=this.from.selected||this.to.selected||this.selected;if(i.id!=o.id){this.labelModule.pointToSelf=!1;var s=this.edgeType.getPoint(.5,t);e.save(),"horizontal"!==this.options.font.align&&(this.labelModule.calculateLabelSize(e,n,s.x,s.y),e.translate(s.x,this.labelModule.size.yLine),this._rotateForLabelAlignment(e)),this.labelModule.draw(e,s.x,s.y,n),e.restore()}else{this.labelModule.pointToSelf=!0;var r,a,h=this.options.selfReferenceSize;i.shape.width>i.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;i<t.length;i++){var o=t[i];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(e,o.key,o)}}return function(t,i,o){return i&&e(t.prototype,i),o&&e(t,o),t}}(),d=i(38),l=o(d),c=function(e){function t(e,i,o){return n(this,t),s(this,Object.getPrototypeOf(t).call(this,e,i,o))}return r(t,e),h(t,[{key:"_line",value:function(e,t){var i=t[0],o=t[1];e.beginPath(),e.moveTo(this.fromPoint.x,this.fromPoint.y),void 0===t||void 0===i.x?e.lineTo(this.toPoint.x,this.toPoint.y):e.bezierCurveTo(i.x,i.y,o.x,o.y,this.toPoint.x,this.toPoint.y),this.enableShadow(e),e.stroke(),this.disableShadow(e)}},{key:"_getViaCoordinates",value:function(){var e=this.from.x-this.to.x,t=this.from.y-this.to.y,i=void 0,o=void 0,n=void 0,s=void 0,r=this.options.smooth.roundness;return(Math.abs(e)>Math.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;i<t.length;i++){var o=t[i];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(e,o.key,o)}}return function(t,i,o){return i&&e(t.prototype,i),o&&e(t,o),t}}(),h=i(39),d=o(h),l=function(e){function t(e,i,o){return n(this,t),s(this,Object.getPrototypeOf(t).call(this,e,i,o))}return r(t,e),a(t,[{key:"_getDistanceToBezierEdge",value:function(e,t,i,o,n,s,r,a){var h=1e9,d=void 0,l=void 0,c=void 0,u=void 0,f=void 0,p=e,v=t,y=[0,0,0,0];for(l=1;10>l;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<t.length;i++){var o=t[i];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(e,o.key,o)}}return function(t,i,o){return i&&e(t.prototype,i),o&&e(t,o),t}}(),h=i(40),d=o(h),l=function(e){function t(e,i,o){return n(this,t),s(this,Object.getPrototypeOf(t).call(this,e,i,o))}return r(t,e),a(t,[{key:"_findBorderPositionBezier",value:function(e,t){var i,o,n,s,r,a=arguments.length<=2||void 0===arguments[2]?this._getViaCoordinates():arguments[2],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);c>=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)<u)break;0>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;i<t.length;i++){var o=t[i];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(e,o.key,o)}}return function(t,i,o){return i&&e(t.prototype,i),o&&e(t,o),t}}(),r=i(1),a=function(){function e(t,i,n){o(this,e),this.body=i,this.labelModule=n,this.options={},this.setOptions(t),this.colorDirty=!0,this.color={},this.selectionWidth=2,this.hoverWidth=1.5,this.fromPoint=this.from,this.toPoint=this.to}return s(e,[{key:"connect",value:function(){this.from=this.body.nodes[this.options.from],this.to=this.body.nodes[this.options.to]}},{key:"cleanup",value:function(){return!1}},{key:"setOptions",value:function(e){this.options=e,this.from=this.body.nodes[this.options.from],this.to=this.body.nodes[this.options.to],this.id=this.options.id}},{key:"drawLine",value:function(e,t,i,o){e.strokeStyle=this.getColor(e,t,i),e.lineWidth=this.getLineWidth(t,i),this.options.dashes!==!1?this._drawDashedLine(e,o):this._drawLine(e,o)}},{key:"_drawLine",value:function(e,t,i,o){if(this.from!=this.to)this._line(e,t,i,o);else{var s=this._getCircleData(e),r=n(s,3),a=r[0],h=r[1],d=r[2];this._circle(e,a,h,d)}}},{key:"_drawDashedLine",value:function(e,t,i,o){e.lineCap="round";var s=[5,5];if(Array.isArray(this.options.dashes)===!0&&(s=this.options.dashes),void 0!==e.setLineDash){if(e.save(),e.setLineDash(s),e.lineDashOffset=0,this.from!=this.to)this._line(e,t);else{var r=this._getCircleData(e),a=n(r,3),h=a[0],d=a[1],l=a[2];this._circle(e,h,d,l)}e.setLineDash([0]),e.lineDashOffset=0,e.restore()}else{if(this.from!=this.to)e.dashedLine(this.from.x,this.from.y,this.to.x,this.to.y,s);else{var c=this._getCircleData(e),u=n(c,3),f=u[0],p=u[1],v=u[2];this._circle(e,f,p,v)}this.enableShadow(e),e.stroke(),this.disableShadow(e)}}},{key:"findBorderPosition",value:function(e,t,i){return this.from!=this.to?this._findBorderPosition(e,t,i):this._findBorderPositionCircle(e,t,i)}},{key:"findBorderPositions",value:function(e){var t={},i={};if(this.from!=this.to)t=this._findBorderPosition(this.from,e),i=this._findBorderPosition(this.to,e);else{var o=this._getCircleData(e),s=n(o,3),r=s[0],a=s[1];s[2];t=this._findBorderPositionCircle(this.from,e,{x:r,y:a,low:.25,high:.6,direction:-1}),i=this._findBorderPositionCircle(this.from,e,{x:r,y:a,low:.6,high:.8,direction:1})}return{from:t,to:i}}},{key:"_getCircleData",value:function(e){var t=void 0,i=void 0,o=this.from,n=this.options.selfReferenceSize;return void 0!==e&&void 0===o.shape.width&&o.shape.resize(e),o.shape.width>o.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)<y));)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.left<s&&this.labelModule.size.left+this.labelModule.size.width>s&&this.labelModule.size.top<r&&this.labelModule.size.top+this.labelModule.size.height>r?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<t.length;i++){var o=t[i];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(e,o.key,o)}}return function(t,i,o){return i&&e(t.prototype,i),o&&e(t,o),t}}(),h=i(39),d=o(h),l=function(e){function t(e,i,o){n(this,t);var r=s(this,Object.getPrototypeOf(t).call(this,e,i,o));return r._boundFunction=function(){r.positionBezierNode()},r.body.emitter.on("_repositionBezierNodes",r._boundFunction),r}return r(t,e),a(t,[{key:"setOptions",value:function(e){var t=!1;this.options.physics!==e.physics&&(t=!0),this.options=e,this.id=this.options.id,this.from=this.body.nodes[this.options.from],this.to=this.body.nodes[this.options.to],this.setupSupportNode(),this.connect(),t===!0&&(this.via.setOptions({physics:this.options.physics}),this.positionBezierNode())}},{key:"connect",value:function(){this.from=this.body.nodes[this.options.from],this.to=this.body.nodes[this.options.to],void 0===this.from||void 0===this.to||this.options.physics===!1?this.via.setOptions({physics:!1}):this.from.id===this.to.id?this.via.setOptions({physics:!1}):this.via.setOptions({physics:!0})}},{key:"cleanup",value:function(){return this.body.emitter.off("_repositionBezierNodes",this._boundFunction),void 0!==this.via?(delete this.body.nodes[this.via.id],this.via=void 0,!0):!1}},{key:"setupSupportNode",value:function(){if(void 0===this.via){var e="edgeId:"+this.id,t=this.body.functions.createNode({id:e,shape:"circle",physics:!0,hidden:!0});this.body.nodes[e]=t,this.via=t,this.via.parentEdgeId=this.id,this.positionBezierNode()}}},{key:"positionBezierNode",value:function(){void 0!==this.via&&void 0!==this.from&&void 0!==this.to?(this.via.x=.5*(this.from.x+this.to.x),this.via.y=.5*(this.from.y+this.to.y)):void 0!==this.via&&(this.via.x=0,this.via.y=0)}},{key:"_line",value:function(e,t){e.beginPath(),e.moveTo(this.fromPoint.x,this.fromPoint.y),void 0===t.x?e.lineTo(this.toPoint.x,this.toPoint.y):e.quadraticCurveTo(t.x,t.y,this.toPoint.x,this.toPoint.y),this.enableShadow(e),e.stroke(),this.disableShadow(e)}},{key:"getViaNode",value:function(){return this.via}},{key:"getPoint",value:function(e){var t=arguments.length<=1||void 0===arguments[1]?this.via:arguments[1],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}}},{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}(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<t.length;i++){var o=t[i];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(e,o.key,o)}}return function(t,i,o){return i&&e(t.prototype,i),o&&e(t,o),t}}(),h=i(39),d=o(h),l=function(e){function t(e,i,o){return n(this,t),s(this,Object.getPrototypeOf(t).call(this,e,i,o))}return r(t,e),a(t,[{key:"_line",value:function(e,t){e.beginPath(),e.moveTo(this.fromPoint.x,this.fromPoint.y),void 0===t.x?e.lineTo(this.toPoint.x,this.toPoint.y):e.quadraticCurveTo(t.x,t.y,this.toPoint.x,this.toPoint.y),this.enableShadow(e),e.stroke(),this.disableShadow(e)}},{key:"getViaNode",value:function(){return this._getViaCoordinates()}},{key:"_getViaCoordinates",value:function(){var e=void 0,t=void 0,i=this.options.smooth.roundness,o=this.options.smooth.type,n=Math.abs(this.from.x-this.to.x),s=Math.abs(this.from.y-this.to.y);if("discrete"===o||"diagonalCross"===o)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*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.y<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)),"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.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)),"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.y<this.to.y?this.to.y-(1-i)*s:this.to.y+(1-i)*s):Math.abs(this.from.x-this.to.x)>Math.abs(this.from.y-this.to.y)&&(e=this.from.x<this.to.x?this.to.x-(1-i)*n:this.to.x+(1-i)*n,t=this.from.y);else if("horizontal"===o)e=this.from.x<this.to.x?this.to.x-(1-i)*n:this.to.x+(1-i)*n,t=this.from.y;else if("vertical"===o)e=this.from.x,t=this.from.y<this.to.y?this.to.y-(1-i)*s:this.to.y+(1-i)*s;else if("curvedCW"===o){n=this.to.x-this.from.x,s=this.from.y-this.to.y;var r=Math.sqrt(n*n+s*s),a=Math.PI,h=Math.atan2(s,n),d=(h+(.5*i+.5)*a)%(2*a);e=this.from.x+(.5*i+.5)*r*Math.sin(d),t=this.from.y+(.5*i+.5)*r*Math.cos(d)}else if("curvedCCW"===o){n=this.to.x-this.from.x,s=this.from.y-this.to.y;var l=Math.sqrt(n*n+s*s),c=Math.PI,u=Math.atan2(s,n),f=(u+(.5*-i+.5)*c)%(2*c);e=this.from.x+(.5*i+.5)*l*Math.sin(f),t=this.from.y+(.5*i+.5)*l*Math.cos(f)}else 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*s,t=this.from.y-i*s,e=this.to.x<e?this.to.x:e):this.from.x>this.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.y<this.to.y&&(this.from.x<=this.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.x>this.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.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)));return{x:e,y:t}}},{key:"_findBorderPosition",value:function(e,t){var i=arguments.length<=2||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]?this._getViaCoordinates():arguments[6];return this._getDistanceToBezierEdge(e,t,i,o,n,s,r)}},{key:"getPoint",value:function(e){var t=arguments.length<=1||void 0===arguments[1]?this._getViaCoordinates():arguments[1],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;i<t.length;i++){var o=t[i];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(e,o.key,o)}}return function(t,i,o){return i&&e(t.prototype,i),o&&e(t,o),t}}(),h=i(40),d=o(h),l=function(e){function t(e,i,o){return n(this,t),s(this,Object.getPrototypeOf(t).call(this,e,i,o))}return r(t,e),a(t,[{key:"_line",value:function(e){e.beginPath(),e.moveTo(this.fromPoint.x,this.fromPoint.y),e.lineTo(this.toPoint.x,this.toPoint.y),this.enableShadow(e),e.stroke(),this.disableShadow(e)}},{key:"getViaNode",value:function(){}},{key:"getPoint",value:function(e){return{x:(1-e)*this.fromPoint.x+e*this.toPoint.x,y:(1-e)*this.fromPoint.y+e*this.toPoint.y}}},{key:"_findBorderPosition",value:function(e,t){var i=this.to,o=this.from;e.id===this.from.id&&(i=this.from,
+o=this.to);var n=Math.atan2(i.y-o.y,i.x-o.x),s=i.x-o.x,r=i.y-o.y,a=Math.sqrt(s*s+r*r),h=e.distanceToBorder(t,n),d=(a-h)/a,l={};return l.x=(1-d)*o.x+d*i.x,l.y=(1-d)*o.y+d*i.y,l}},{key:"_getDistanceToEdge",value:function(e,t,i,o,n,s){return this._getDistanceToLine(e,t,i,o,n,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")}Object.defineProperty(t,"__esModule",{value:!0});var s=function(){function e(e,t){for(var i=0;i<t.length;i++){var o=t[i];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(e,o.key,o)}}return function(t,i,o){return i&&e(t.prototype,i),o&&e(t,o),t}}(),r=i(45),a=o(r),h=i(46),d=o(h),l=i(47),c=o(l),u=i(48),f=o(u),p=i(49),v=o(p),y=i(50),g=o(y),b=i(51),m=o(b),_=i(52),w=o(_),k=i(1),x=function(){function e(t){n(this,e),this.body=t,this.physicsBody={physicsNodeIndices:[],physicsEdgeIndices:[],forces:{},velocities:{}},this.physicsEnabled=!0,this.simulationInterval=1e3/60,this.requiresTimeout=!0,this.previousStates={},this.referenceState={},this.freezeCache={},this.renderTimer=void 0,this.adaptiveTimestep=!1,this.adaptiveTimestepEnabled=!1,this.adaptiveCounter=0,this.adaptiveInterval=3,this.stabilized=!1,this.startedStabilization=!1,this.stabilizationIterations=0,this.ready=!1,this.options={},this.defaultOptions={enabled:!0,barnesHut:{theta:.5,gravitationalConstant:-2e3,centralGravity:.3,springLength:95,springConstant:.04,damping:.09,avoidOverlap:0},forceAtlas2Based:{theta:.5,gravitationalConstant:-50,centralGravity:.01,springConstant:.08,springLength:100,damping:.4,avoidOverlap:0},repulsion:{centralGravity:.2,springLength:200,springConstant:.05,nodeDistance:100,damping:.09,avoidOverlap:0},hierarchicalRepulsion:{centralGravity:0,springLength:100,springConstant:.01,nodeDistance:120,damping:.09},maxVelocity:50,minVelocity:.75,solver:"barnesHut",stabilization:{enabled:!0,iterations:1e3,updateInterval:50,onlyDynamicEdges:!1,fit:!0},timestep:.5,adaptiveTimestep:!0},k.extend(this.options,this.defaultOptions),this.timestep=.5,this.layoutFailed=!1,this.bindEventListeners()}return s(e,[{key:"bindEventListeners",value:function(){var e=this;this.body.emitter.on("initPhysics",function(){e.initPhysics()}),this.body.emitter.on("_layoutFailed",function(){e.layoutFailed=!0}),this.body.emitter.on("resetPhysics",function(){e.stopSimulation(),e.ready=!1}),this.body.emitter.on("disablePhysics",function(){e.physicsEnabled=!1,e.stopSimulation()}),this.body.emitter.on("restorePhysics",function(){e.setOptions(e.options),e.ready===!0&&e.startSimulation()}),this.body.emitter.on("startSimulation",function(){e.ready===!0&&e.startSimulation()}),this.body.emitter.on("stopSimulation",function(){e.stopSimulation()}),this.body.emitter.on("destroy",function(){e.stopSimulation(!1),e.body.emitter.off()}),this.body.emitter.on("_dataChanged",function(){e.updatePhysicsData()})}},{key:"setOptions",value:function(e){void 0!==e&&(e===!1?(this.options.enabled=!1,this.physicsEnabled=!1,this.stopSimulation()):(this.physicsEnabled=!0,k.selectiveNotDeepExtend(["stabilization"],this.options,e),k.mergeOptions(this.options,e,"stabilization"),void 0===e.enabled&&(this.options.enabled=!0),this.options.enabled===!1&&(this.physicsEnabled=!1,this.stopSimulation()),this.timestep=this.options.timestep)),this.init()}},{key:"init",value:function(){var e;"forceAtlas2Based"===this.options.solver?(e=this.options.forceAtlas2Based,this.nodesSolver=new m["default"](this.body,this.physicsBody,e),this.edgesSolver=new f["default"](this.body,this.physicsBody,e),this.gravitySolver=new w["default"](this.body,this.physicsBody,e)):"repulsion"===this.options.solver?(e=this.options.repulsion,this.nodesSolver=new d["default"](this.body,this.physicsBody,e),this.edgesSolver=new f["default"](this.body,this.physicsBody,e),this.gravitySolver=new g["default"](this.body,this.physicsBody,e)):"hierarchicalRepulsion"===this.options.solver?(e=this.options.hierarchicalRepulsion,this.nodesSolver=new c["default"](this.body,this.physicsBody,e),this.edgesSolver=new v["default"](this.body,this.physicsBody,e),this.gravitySolver=new g["default"](this.body,this.physicsBody,e)):(e=this.options.barnesHut,this.nodesSolver=new a["default"](this.body,this.physicsBody,e),this.edgesSolver=new f["default"](this.body,this.physicsBody,e),this.gravitySolver=new g["default"](this.body,this.physicsBody,e)),this.modelOptions=e}},{key:"initPhysics",value:function(){this.physicsEnabled===!0&&this.options.enabled===!0?this.options.stabilization.enabled===!0?this.stabilize():(this.stabilized=!1,this.ready=!0,this.body.emitter.emit("fit",{},this.layoutFailed),this.startSimulation()):(this.ready=!0,this.body.emitter.emit("fit"))}},{key:"startSimulation",value:function(){this.physicsEnabled===!0&&this.options.enabled===!0?(this.stabilized=!1,this.adaptiveTimestep=!1,this.body.emitter.emit("_resizeNodes"),void 0===this.viewFunction&&(this.viewFunction=this.simulationStep.bind(this),this.body.emitter.on("initRedraw",this.viewFunction),this.body.emitter.emit("_startRendering"))):this.body.emitter.emit("_redraw")}},{key:"stopSimulation",value:function(){var e=arguments.length<=0||void 0===arguments[0]?!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]?this.stabilizationIterations:arguments[0];(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/e<this.options.timestep?this.timestep=this.options.timestep:(this.adaptiveCounter=-1,this.timestep=Math.max(this.options.timestep,this.timestep/e))):(this.calculateForces(),this.moveNodes()),this.adaptiveCounter+=1}else this.timestep=this.options.timestep,this.calculateForces(),this.moveNodes();this.stabilized===!0&&this.revert(),this.stabilizationIterations++}}},{key:"updatePhysicsData",value:function(){this.physicsBody.forces={},this.physicsBody.physicsNodeIndices=[],this.physicsBody.physicsEdgeIndices=[];var e=this.body.nodes,t=this.body.edges;for(var i in e)e.hasOwnProperty(i)&&e[i].options.physics===!0&&this.physicsBody.physicsNodeIndices.push(e[i].id);for(var o in t)t.hasOwnProperty(o)&&t[o].options.physics===!0&&this.physicsBody.physicsEdgeIndices.push(t[o].id);for(var n=0;n<this.physicsBody.physicsNodeIndices.length;n++){var s=this.physicsBody.physicsNodeIndices[n];this.physicsBody.forces[s]={x:0,y:0},void 0===this.physicsBody.velocities[s]&&(this.physicsBody.velocities[s]={x:0,y:0})}for(var r in this.physicsBody.velocities)void 0===e[r]&&delete this.physicsBody.velocities[r]}},{key:"revert",value:function(){var e=Object.keys(this.previousStates),t=this.body.nodes,i=this.physicsBody.velocities;this.referenceState={};for(var o=0;o<e.length;o++){var n=e[o];void 0!==t[n]?t[n].options.physics===!0&&(this.referenceState[n]={positions:{x:t[n].x,y:t[n].y}},i[n].x=this.previousStates[n].vx,i[n].y=this.previousStates[n].vy,t[n].x=this.previousStates[n].x,t[n].y=this.previousStates[n].y):delete this.previousStates[n]}}},{key:"_evaluateStepQuality",value:function(){var e=void 0,t=void 0,i=void 0,o=this.body.nodes,n=this.referenceState,s=.3;for(var r in this.referenceState)if(this.referenceState.hasOwnProperty(r)&&void 0!==o[r]&&(e=o[r].x-n[r].positions.x,t=o[r].y-n[r].positions.y,i=Math.sqrt(Math.pow(e,2)+Math.pow(t,2)),i>s))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;s<e.length;s++){var r=e[s],a=this._performStep(r,t);i=Math.max(i,a),o+=a}this.adaptiveTimestepEnabled=o/e.length<n,this.stabilized=i<this.options.minVelocity}},{key:"_performStep",value:function(e,t){var i=this.body.nodes[e],o=this.timestep,n=this.physicsBody.forces,s=this.physicsBody.velocities;if(this.previousStates[e]={x:i.x,y:i.y,vx:s[e].x,vy:s[e].y},i.options.fixed.x===!1){var r=this.modelOptions.damping*s[e].x,a=(n[e].x-r)/i.options.mass;s[e].x+=a*o,s[e].x=Math.abs(s[e].x)>t?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&&e<this.options.stabilization.updateInterval&&this.stabilizationIterations<this.targetIterations;)this.physicsTick(),e++;this.stabilized===!1&&this.stabilizationIterations<this.targetIterations?(this.body.emitter.emit("stabilizationProgress",{iterations:this.stabilizationIterations,total:this.targetIterations}),setTimeout(this._stabilizationBatch.bind(this),0)):this._finalizeStabilization()}},{key:"_finalizeStabilization",value:function(){this.body.emitter.emit("_allowRedraw"),this.options.stabilization.fit===!0&&this.body.emitter.emit("fit"),this.options.stabilization.onlyDynamicEdges===!0&&this._restoreFrozenNodes(),this.body.emitter.emit("stabilizationIterationsDone"),this.body.emitter.emit("_requestRedraw"),this.stabilized===!0?this._emitStabilized():this.startSimulation(),this.ready=!0}},{key:"_drawForces",value:function(e){for(var t=0;t<this.physicsBody.physicsNodeIndices.length;t++){var i=this.body.nodes[this.physicsBody.physicsNodeIndices[t]],o=this.physicsBody.forces[this.physicsBody.physicsNodeIndices[t]],n=20,s=.03,r=Math.sqrt(Math.pow(o.x,2)+Math.pow(o.x,2)),a=Math.min(Math.max(5,r),15),h=3*a,d=k.HSVToHex((180-180*Math.min(1,Math.max(0,s*r)))/360,1,1);e.lineWidth=a,e.strokeStyle=d,e.beginPath(),e.moveTo(i.x,i.y),e.lineTo(i.x+n*o.x,i.y+n*o.y),e.stroke();var l=Math.atan2(o.y,o.x);e.fillStyle=d,e.arrow(i.x+n*o.x+Math.cos(l)*h,i.y+n*o.y+Math.sin(l)*h,l,h),e.fill()}}}]),e}();t["default"]=x},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;i<t.length;i++){var o=t[i];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(e,o.key,o)}}return function(t,i,o){return i&&e(t.prototype,i),o&&e(t,o),t}}(),n=function(){function e(t,o,n){i(this,e),this.body=t,this.physicsBody=o,this.barnesHutTree,this.setOptions(n),this.randomSeed=5}return o(e,[{key:"setOptions",value:function(e){this.options=e,this.thetaInversed=1/this.options.theta,this.overlapAvoidanceFactor=1-Math.max(0,Math.min(1,this.options.avoidOverlap))}},{key:"seededRandom",value:function(){var e=1e4*Math.sin(this.randomSeed++);return e-Math.floor(e)}},{key:"solve",value:function(){if(0!==this.options.gravitationalConstant&&this.physicsBody.physicsNodeIndices.length>0){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.maxWidth<n?n:e.maxWidth}},{key:"_placeInTree",value:function(e,t,i){1==i&&void 0!==i||this._updateBranchMass(e,t),e.children.NW.range.maxX>t.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;i<t.length;i++){var o=t[i];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(e,o.key,o)}}return function(t,i,o){return i&&e(t.prototype,i),o&&e(t,o),t}}(),n=function(){function e(t,o,n){i(this,e),this.body=t,this.physicsBody=o,this.setOptions(n)}return o(e,[{key:"setOptions",value:function(e){this.options=e}},{key:"solve",value:function(){for(var e,t,i,o,n,s,r,a,h=this.body.nodes,d=this.physicsBody.physicsNodeIndices,l=this.physicsBody.forces,c=this.options.nodeDistance,u=-2/3/c,f=4/3,p=0;p<d.length-1;p++){r=h[d[p]];for(var v=p+1;v<d.length;v++)a=h[d[v]],e=a.x-r.x,t=a.y-r.y,i=Math.sqrt(e*e+t*t),0===i&&(i=.1*Math.random(),e=i),2*c>i&&(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;i<t.length;i++){var o=t[i];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(e,o.key,o)}}return function(t,i,o){return i&&e(t.prototype,i),o&&e(t,o),t}}(),n=function(){function e(t,o,n){i(this,e),this.body=t,this.physicsBody=o,this.setOptions(n)}return o(e,[{key:"setOptions",value:function(e){this.options=e}},{key:"solve",value:function(){var e,t,i,o,n,s,r,a,h,d,l=this.body.nodes,c=this.physicsBody.physicsNodeIndices,u=this.physicsBody.forces,f=this.options.nodeDistance;for(h=0;h<c.length-1;h++)for(r=l[c[h]],d=h+1;d<c.length;d++)if(a=l[c[d]],r.level===a.level){e=a.x-r.x,t=a.y-r.y,i=Math.sqrt(e*e+t*t);var p=.05;s=f>i?-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;i<t.length;i++){var o=t[i];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(e,o.key,o)}}return function(t,i,o){return i&&e(t.prototype,i),o&&e(t,o),t}}(),n=function(){function e(t,o,n){i(this,e),this.body=t,this.physicsBody=o,this.setOptions(n)}return o(e,[{key:"setOptions",value:function(e){this.options=e}},{key:"solve",value:function(){for(var e=void 0,t=void 0,i=this.physicsBody.physicsEdgeIndices,o=this.body.edges,n=void 0,s=void 0,r=void 0,a=0;a<i.length;a++)t=o[i[a]],t.connected===!0&&t.toId!==t.fromId&&void 0!==this.body.nodes[t.toId]&&void 0!==this.body.nodes[t.fromId]&&(void 0!==t.edgeType.via?(e=void 0===t.options.length?this.options.springLength:t.options.length,n=t.to,s=t.edgeType.via,r=t.from,this._calculateSpringForce(n,s,.5*e),this._calculateSpringForce(s,r,.5*e)):(e=void 0===t.options.length?1.5*this.options.springLength:t.options.length,this._calculateSpringForce(t.from,t.to,e)))}},{key:"_calculateSpringForce",value:function(e,t,i){var o=e.x-t.x,n=e.y-t.y,s=Math.max(Math.sqrt(o*o+n*n),.01),r=this.options.springConstant*(i-s)/s,a=o*r,h=n*r;void 0!==this.physicsBody.forces[e.id]&&(this.physicsBody.forces[e.id].x+=a,this.physicsBody.forces[e.id].y+=h),void 0!==this.physicsBody.forces[t.id]&&(this.physicsBody.forces[t.id].x-=a,this.physicsBody.forces[t.id].y-=h)}}]),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;i<t.length;i++){var o=t[i];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(e,o.key,o)}}return function(t,i,o){return i&&e(t.prototype,i),o&&e(t,o),t}}(),n=function(){function e(t,o,n){i(this,e),this.body=t,this.physicsBody=o,this.setOptions(n)}return o(e,[{key:"setOptions",value:function(e){this.options=e}},{key:"solve",value:function(){for(var e,t,i,o,n,s,r,a,h=this.body.edges,d=.5,l=this.physicsBody.physicsEdgeIndices,c=this.physicsBody.physicsNodeIndices,u=this.physicsBody.forces,f=0;f<c.length;f++){var p=c[f];u[p].springFx=0,u[p].springFy=0}for(var v=0;v<l.length;v++)t=h[l[v]],t.connected===!0&&(e=void 0===t.options.length?this.options.springLength:t.options.length,i=t.from.x-t.to.x,o=t.from.y-t.to.y,a=Math.sqrt(i*i+o*o),a=0===a?.01:a,r=this.options.springConstant*(e-a)/a,n=i*r,s=o*r,t.to.level!=t.from.level?(void 0!==u[t.toId]&&(u[t.toId].springFx-=n,u[t.toId].springFy-=s),void 0!==u[t.fromId]&&(u[t.fromId].springFx+=n,u[t.fromId].springFy+=s)):(void 0!==u[t.toId]&&(u[t.toId].x-=d*n,u[t.toId].y-=d*s),void 0!==u[t.fromId]&&(u[t.fromId].x+=d*n,u[t.fromId].y+=d*s)));for(var y,g,r=1,b=0;b<c.length;b++){var m=c[b];y=Math.min(r,Math.max(-r,u[m].springFx)),g=Math.min(r,Math.max(-r,u[m].springFy)),u[m].x+=y,u[m].y+=g}for(var _=0,w=0,k=0;k<c.length;k++){var x=c[k];_+=u[x].x,w+=u[x].y}for(var O=_/c.length,E=w/c.length,M=0;M<c.length;M++){var D=c[M];u[D].x-=O,u[D].y-=E}}}]),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;i<t.length;i++){var o=t[i];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(e,o.key,o)}}return function(t,i,o){return i&&e(t.prototype,i),o&&e(t,o),t}}(),n=function(){function e(t,o,n){i(this,e),this.body=t,this.physicsBody=o,this.setOptions(n)}return o(e,[{key:"setOptions",value:function(e){this.options=e}},{key:"solve",value:function(){for(var e=void 0,t=void 0,i=void 0,o=void 0,n=this.body.nodes,s=this.physicsBody.physicsNodeIndices,r=this.physicsBody.forces,a=0;a<s.length;a++){var h=s[a];o=n[h],e=-o.x,t=-o.y,i=Math.sqrt(e*e+t*t),this._calculateForces(i,e,t,r,o)}}},{key:"_calculateForces",value:function(e,t,i,o,n){var s=0===e?0:this.options.centralGravity/e;o[n.id].x=t*s,o[n.id].y=i*s}}]),e}();t["default"]=n},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<t.length;i++){var o=t[i];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(e,o.key,o)}}return function(t,i,o){return i&&e(t.prototype,i),o&&e(t,o),t}}(),h=i(45),d=o(h),l=function(e){function t(e,i,o){return n(this,t),s(this,Object.getPrototypeOf(t).call(this,e,i,o))}return r(t,e),a(t,[{key:"_calculateForces",value:function(e,t,i,o,n){0===e&&(e=.1*Math.random(),t=e),this.overlapAvoidanceFactor<1&&(e=Math.max(.1+this.overlapAvoidanceFactor*o.shape.radius,e-o.shape.radius));var s=o.edges.length+1,r=this.options.gravitationalConstant*n.mass*o.options.mass*s/Math.pow(e,2),a=t*r,h=i*r;this.physicsBody.forces[o.id].x+=a,this.physicsBody.forces[o.id].y+=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<t.length;i++){var o=t[i];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(e,o.key,o)}}return function(t,i,o){return i&&e(t.prototype,i),o&&e(t,o),t}}(),h=i(50),d=o(h),l=function(e){function t(e,i,o){return n(this,t),s(this,Object.getPrototypeOf(t).call(this,e,i,o))}return r(t,e),a(t,[{key:"_calculateForces",value:function(e,t,i,o,n){if(e>0){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<t.length;i++){var o=t[i];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(e,o.key,o)}}return function(t,i,o){return i&&e(t.prototype,i),o&&e(t,o),t}}(),a=i(54),h=o(a),d=i(55),l=o(d),c=i(1),u=function(){function e(t){var i=this;n(this,e),this.body=t,this.clusteredNodes={},this.clusteredEdges={},this.options={},this.defaultOptions={},c.extend(this.options,this.defaultOptions),this.body.emitter.on("_resetData",function(){i.clusteredNodes={},i.clusteredEdges={}})}return r(e,[{key:"setOptions",value:function(e){}},{key:"clusterByHubsize",value:function(e,t){void 0===e?e=this._getHubSize():"object"===("undefined"==typeof e?"undefined":s(e))&&(t=this._checkOptions(e),e=this._getHubSize());for(var i=[],o=0;o<this.body.nodeIndices.length;o++){var n=this.body.nodes[this.body.nodeIndices[o]];n.edges.length>=e&&i.push(n.id)}for(var r=0;r<i.length;r++)this.clusterByConnection(i[r],t,!0);this.body.emitter.emit("_dataChanged")}},{key:"cluster",value:function(){var e=arguments.length<=0||void 0===arguments[0]?{}:arguments[0],t=arguments.length<=1||void 0===arguments[1]?!0: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;n<this.body.nodeIndices.length;n++){var s=this.body.nodeIndices[n],r=this.body.nodes[s],a=h["default"].cloneOptions(r);if(e.joinCondition(a)===!0){i[s]=this.body.nodes[s];for(var d=0;d<r.edges.length;d++){var l=r.edges[d];void 0===this.clusteredEdges[l.id]&&(o[l.id]=l)}}}this._cluster(i,o,e,t)}},{key:"clusterByEdgeCount",value:function(e,t){var i=arguments.length<=2||void 0===arguments[2]?!0: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;c<this.body.nodeIndices.length;c++){var u={},f={};if(d=this.body.nodeIndices[c],void 0===n[d]){l=0,a=this.body.nodes[d],r=[];for(var p=0;p<a.edges.length;p++)s=a.edges[p],void 0===this.clusteredEdges[s.id]&&(s.toId!==s.fromId&&l++,r.push(s));if(l===e){for(var v=!0,y=0;y<r.length;y++){s=r[y];var g=this._getConnectedId(s,d);if(void 0===t.joinCondition)f[s.id]=s,u[d]=this.body.nodes[d],u[g]=this.body.nodes[g],n[d]=!0;else{var b=h["default"].cloneOptions(this.body.nodes[d]);if(t.joinCondition(b)!==!0){v=!1;break}f[s.id]=s,u[d]=this.body.nodes[d],n[d]=!0}}Object.keys(u).length>0&&Object.keys(f).length>0&&v===!0&&o.push({nodes:u,edges:f})}}}for(var m=0;m<o.length;m++)this._cluster(o[m].nodes,o[m].edges,t,!1);i===!0&&this.body.emitter.emit("_dataChanged")}},{key:"clusterOutliers",value:function(e){var t=arguments.length<=1||void 0===arguments[1]?!0:arguments[1];this.clusterByEdgeCount(1,e,t)}},{key:"clusterBridges",value:function(e){var t=arguments.length<=1||void 0===arguments[1]?!0:arguments[1];this.clusterByEdgeCount(2,e,t)}},{key:"clusterByConnection",value:function(e,t){var i=arguments.length<=2||void 0===arguments[2]?!0: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<o.edges.length;d++){var l=o.edges[d];if(void 0===this.clusteredEdges[l.id]){var c=this._getConnectedId(l,r);if(void 0===this.clusteredNodes[c])if(c!==r)if(void 0===t.joinCondition)s[l.id]=l,n[c]=this.body.nodes[c];else{var u=h["default"].cloneOptions(this.body.nodes[c]);t.joinCondition(a,u)===!0&&(s[l.id]=l,n[c]=this.body.nodes[c])}else s[l.id]=l}}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;p<u.length;p++){s=u[p],r=e[s];for(var v=0;v<r.edges.length;v++)n=r.edges[v],void 0===this.clusteredEdges[n.id]&&(n.toId==n.fromId?t[n.id]=n:n.toId==s?(a=i.id,d=n.fromId,l=d):(a=n.toId,d=i.id,l=a),void 0===e[l]&&f.push({edge:n,fromId:d,toId:a}))}for(var y=0;y<f.length;y++){var g=f[y].edge,b=h["default"].cloneOptions(g,"edge");c.deepExtend(b,o),b.from=f[y].fromId,b.to=f[y].toId,b.id="clusterEdge:"+c.randomUUID();var m=this.body.functions.createEdge(b);
+m.clusteringEdgeReplacingId=g.id,this.body.edges[m.id]=m,m.connect(),this._backupEdgeOptions(g),g.setOptions({physics:!1,hidden:!0})}}},{key:"_checkOptions",value:function(){var e=arguments.length<=0||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]?!0:arguments[3];if(!(Object.keys(e).length<2)){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;a<t.length;a++)r=e[t[a]],i=r.x<i?r.x:i,o=r.x>o?r.x:o,n=r.y<n?r.y:n,s=r.y>s?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.edges.length;_++)m.push(o.edges[_]);for(var w=0;w<m.length;w++){var k=m[w],x=this._getConnectedId(k,e);if(void 0!==this.clusteredNodes[x]){var O=this.body.nodes[this.clusteredNodes[x].clusterId],E=this.body.edges[k.clusteringEdgeReplacingId];if(void 0!==E){O.containedEdges[E.id]=E,delete s[E.id];var M=E.fromId,D=E.toId;E.toId==x?D=this.clusteredNodes[x].clusterId:M=this.clusteredNodes[x].clusterId;var S=h["default"].cloneOptions(E,"edge");c.deepExtend(S,O.clusterEdgeProperties);var C="clusterEdge:"+c.randomUUID();c.deepExtend(S,{from:M,to:D,hidden:!1,physics:!0,id:C});var T=this.body.functions.createEdge(S);T.clusteringEdgeReplacingId=E.id,this.body.edges[C]=T,this.body.edges[C].connect()}}else{var P=this.body.edges[k.clusteringEdgeReplacingId];void 0!==P&&this._restoreEdge(P)}k.cleanup(),k.disconnect(),delete this.body.edges[k.id]}for(var B in s)s.hasOwnProperty(B)&&this._restoreEdge(s[B]);delete this.body.nodes[e],i===!0&&this.body.emitter.emit("_dataChanged")}},{key:"getNodesInCluster",value:function(e){var t=[];if(this.isCluster(e)===!0){var i=this.body.nodes[e].containedNodes;for(var o in i)i.hasOwnProperty(o)&&t.push(this.body.nodes[o].id)}return t}},{key:"findNode",value:function(e){for(var t=[],i=100,o=0;void 0!==this.clusteredNodes[e]&&i>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;n<this.body.nodeIndices.length;n++){var s=this.body.nodes[this.body.nodeIndices[n]];s.edges.length>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;i<t.length;i++){var o=t[i];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(e,o.key,o)}}return function(t,i,o){return i&&e(t.prototype,i),o&&e(t,o),t}}(),s=i(1),r=function(){function e(){o(this,e)}return n(e,null,[{key:"getRange",value:function(e){var t,i=arguments.length<=1||void 0===arguments[1]?[]:arguments[1],o=1e9,n=-1e9,s=1e9,r=-1e9;if(i.length>0)for(var a=0;a<i.length;a++)t=e[i[a]],s>t.shape.boundingBox.left&&(s=t.shape.boundingBox.left),r<t.shape.boundingBox.right&&(r=t.shape.boundingBox.right),o>t.shape.boundingBox.top&&(o=t.shape.boundingBox.top),n<t.shape.boundingBox.bottom&&(n=t.shape.boundingBox.bottom);return 1e9===s&&-1e9===r&&1e9===o&&-1e9===n&&(o=0,n=0,s=0,r=0),{minX:s,maxX:r,minY:o,maxY:n}}},{key:"getRangeCore",value:function(e){var t,i=arguments.length<=1||void 0===arguments[1]?[]:arguments[1],o=1e9,n=-1e9,s=1e9,r=-1e9;if(i.length>0)for(var a=0;a<i.length;a++)t=e[i[a]],s>t.x&&(s=t.x),r<t.x&&(r=t.x),o>t.y&&(o=t.y),n<t.y&&(n=t.y);return 1e9===s&&-1e9===r&&1e9===o&&-1e9===n&&(o=0,n=0,s=0,r=0),{minX:s,maxX:r,minY:o,maxY:n}}},{key:"findCenter",value:function(e){return{x:.5*(e.maxX+e.minX),y:.5*(e.maxY+e.minY)}}},{key:"cloneOptions",value:function(e,t){var i={};return void 0===t||"node"===t?(s.deepExtend(i,e.options,!0),i.x=e.x,i.y=e.y,i.amountOfConnections=e.edges.length):s.deepExtend(i,e.options,!0),i}}]),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")}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=i(15),h=o(a),d=function(e){function t(e,i,o,r,a){n(this,t);var h=s(this,Object.getPrototypeOf(t).call(this,e,i,o,r,a));return h.isCluster=!0,h.containedNodes={},h.containedEdges={},h}return r(t,e),t}(h["default"]);t["default"]=d},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;i<t.length;i++){var o=t[i];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(e,o.key,o)}}return function(t,i,o){return i&&e(t.prototype,i),o&&e(t,o),t}}();"undefined"!=typeof window&&(window.requestAnimationFrame=window.requestAnimationFrame||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame||window.msRequestAnimationFrame);var s=i(1),r=function(){function e(t,i){o(this,e),this.body=t,this.canvas=i,this.redrawRequested=!1,this.renderTimer=void 0,this.requiresTimeout=!0,this.renderingActive=!1,this.renderRequests=0,this.pixelRatio=void 0,this.allowRedraw=!0,this.dragging=!1,this.options={},this.defaultOptions={hideEdgesOnDrag:!1,hideNodesOnDrag:!1},s.extend(this.options,this.defaultOptions),this._determineBrowserMethod(),this.bindEventListeners()}return n(e,[{key:"bindEventListeners",value:function(){var e=this;this.body.emitter.on("dragStart",function(){e.dragging=!0}),this.body.emitter.on("dragEnd",function(){return e.dragging=!1}),this.body.emitter.on("_resizeNodes",function(){return e._resizeNodes()}),this.body.emitter.on("_redraw",function(){e.renderingActive===!1&&e._redraw()}),this.body.emitter.on("_blockRedraw",function(){e.allowRedraw=!1}),this.body.emitter.on("_allowRedraw",function(){e.allowRedraw=!0,e.redrawRequested=!1}),this.body.emitter.on("_requestRedraw",this._requestRedraw.bind(this)),this.body.emitter.on("_startRendering",function(){e.renderRequests+=1,e.renderingActive=!0,e._startRendering()}),this.body.emitter.on("_stopRendering",function(){e.renderRequests-=1,e.renderingActive=e.renderRequests>0,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;l<o.length;l++)n=i[o[l]],n.isSelected()?s.push(o[l]):t===!0?n.draw(e):n.isBoundingBoxOverlappingWith(d)===!0?n.draw(e):n.updateBoundingBox(e,n.selected);for(var c=0;c<s.length;c++)n=i[s[c]],n.draw(e)}},{key:"_drawEdges",value:function(e){for(var t=this.body.edges,i=this.body.edgeIndices,o=void 0,n=0;n<i.length;n++)o=t[i[n]],o.connected===!0&&o.draw(e)}},{key:"_determineBrowserMethod",value:function(){if("undefined"!=typeof window){var e=navigator.userAgent.toLowerCase();this.requiresTimeout=!1,-1!=e.indexOf("msie 9.0")?this.requiresTimeout=!0:-1!=e.indexOf("safari")&&e.indexOf("chrome")<=-1&&(this.requiresTimeout=!0)}else this.requiresTimeout=!0}}]),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){for(var i=0;i<t.length;i++){var o=t[i];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(e,o.key,o)}}return function(t,i,o){return i&&e(t.prototype,i),o&&e(t,o),t}}(),s=i(58),r=i(61),a=i(1),h=function(){function e(t){o(this,e),this.body=t,this.pixelRatio=1,this.resizeTimer=void 0,this.resizeFunction=this._onResize.bind(this),this.cameraState={},this.initialized=!1,this.options={},this.defaultOptions={autoResize:!0,height:"100%",width:"100%"},a.extend(this.options,this.defaultOptions),this.bindEventListeners()}return n(e,[{key:"bindEventListeners",value:function(){var e=this;this.body.emitter.once("resize",function(t){0!==t.width&&(e.body.view.translation.x=.5*t.width),0!==t.height&&(e.body.view.translation.y=.5*t.height)}),this.body.emitter.on("setSize",this.setSize.bind(this)),this.body.emitter.on("destroy",function(){e.hammerFrame.destroy(),e.hammer.destroy(),e._cleanUp()})}},{key:"setOptions",value:function(e){var t=this;if(void 0!==e){var i=["width","height","autoResize"];a.selectiveDeepExtend(i,this.options,e)}this.options.autoResize===!0&&(this._cleanUp(),this.resizeTimer=setInterval(function(){var e=t.setSize();e===!0&&t.body.emitter.emit("_requestRedraw")},1e3),this.resizeFunction=this._onResize.bind(this),a.addEventListener(window,"resize",this.resizeFunction))}},{key:"_cleanUp",value:function(){void 0!==this.resizeTimer&&clearInterval(this.resizeTimer),a.removeEventListener(window,"resize",this.resizeFunction),this.resizeFunction=void 0}},{key:"_onResize",value:function(){this.setSize(),this.body.emitter.emit("_redraw")}},{key:"_getCameraState",value:function(){var e=arguments.length<=0||void 0===arguments[0]?this.pixelRatio:arguments[0];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(-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;a<s.length;a++)if(r=s[a]._handlers[t.type])for(var h=0;h<r.length&&!i;h++)r[h](t);n=n.parentNode}}var r=o||{preventDefault:!1};if(i.Manager){var a=i,h=function(e,i){var o=Object.create(r);return i&&a.assign(o,i),t(new a(e,o),o)};return a.assign(h,a),h.Manager=function(e,i){var o=Object.create(r);return i&&a.assign(o,i),t(new a.Manager(e,o),o)},h}var d=Object.create(i),l=i.element;return l.hammer||(l.hammer=[]),l.hammer.push(d),i.on("hammer.input",function(t){r.preventDefault!==!0&&r.preventDefault!==t.pointerType||t.preventDefault(),t.isFirst&&(e=t.target)}),d._handlers={},d.on=function(e,t){return n(e).forEach(function(e){var o=d._handlers[e];o||(d._handlers[e]=o=[],i.on(e,s)),o.push(t)}),d},d.off=function(e,t){return n(e).forEach(function(e){var o=d._handlers[e];o&&(o=t?o.filter(function(e){return e!==t}):[],o.length>0?d._handlers[e]=o:(i.off(e,s),delete d._handlers[e]))}),d},d.emit=function(t,o){e=o.target,i.emit(t,o)},d.destroy=function(){var e=i.element.hammer,t=e.indexOf(d);-1!==t&&e.splice(t,1),e.length||delete i.element.hammer,d._handlers={},i.destroy()},d}})},function(e,t,i){var o;/*! Hammer.JS - v2.0.6 - 2015-12-23
+ * http://hammerjs.github.io/
+ *
+ * Copyright (c) 2015 Jorik Tangelder;
+ * Licensed under the license */
+!function(n,s,r,a){function h(e,t,i){return setTimeout(f(e,i),t)}function d(e,t,i){return Array.isArray(e)?(l(e,i[t],i),!0):!1}function l(e,t,i){var o;if(e)if(e.forEach)e.forEach(t,i);else if(e.length!==a)for(o=0;o<e.length;)t.call(i,e[o],o,e),o++;else for(o in e)e.hasOwnProperty(o)&&t.call(i,e[o],o,e)}function c(e,t,i){var o="DEPRECATED METHOD: "+t+"\n"+i+" AT \n";return function(){var t=new Error("get-stack-trace"),i=t&&t.stack?t.stack.replace(/^[^\(]+?[\n$]/gm,"").replace(/^\s+at\s+/gm,"").replace(/^Object.<anonymous>\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;o<e.length;){if(i&&e[o][i]==t||!i&&e[o]===t)return o;o++}return-1}function k(e){return Array.prototype.slice.call(e,0)}function x(e,t,i){for(var o=[],n=[],s=0;s<e.length;){var r=t?e[s][t]:e[s];w(n,r)<0&&o.push(e[s]),n[s]=r,s++}return i&&(o=t?o.sort(function(e,i){return e[t]>i[t]}):o.sort()),o}function O(e,t){for(var i,o,n=t[0].toUpperCase()+t.slice(1),s=0;s<ue.length;){if(i=ue[s],o=i?i+n:t,o in e)return o;s++}return a}function E(){return _e++}function M(e){var t=e.ownerDocument||e;return t.defaultView||t.parentWindow||n}function D(e,t){var i=this;this.manager=e,this.callback=t,this.element=e.element,this.target=e.options.inputTarget,this.domHandler=function(t){p(e.options.enable,[e])&&i.handler(t)},this.init()}function S(e){var t,i=e.options.inputClass;return new(t=i?i:xe?W:Oe?V:ke?G:H)(e,C)}function C(e,t,i){var o=i.pointers.length,n=i.changedPointers.length,s=t&Te&&o-n===0,r=t&(Be|Fe)&&o-n===0;i.isFirst=!!s,i.isFinal=!!r,s&&(e.session={}),i.eventType=t,T(e,i),e.emit("hammer.input",i),e.recognize(i),e.session.prevInput=i}function T(e,t){var i=e.session,o=t.pointers,n=o.length;i.firstInput||(i.firstInput=F(t)),n>1&&!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;i<e.pointers.length;)t[i]={clientX:ve(e.pointers[i].clientX),clientY:ve(e.pointers[i].clientY)},i++;return{timeStamp:ge(),pointers:t,center:I(t),deltaX:e.deltaX,deltaY:e.deltaY}}function I(e){var t=e.length;if(1===t)return{x:ve(e[0].clientX),y:ve(e[0].clientY)};for(var i=0,o=0,n=0;t>n;)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;n<s.length;)o[s[n].identifier]=!0,n++;for(n=0;n<r.length;)o[r[n].identifier]&&a.push(r[n]),t&(Be|Fe)&&delete o[r[n].identifier],n++;return a.length?[x(s.concat(a),"identifier",!0),a]:void 0}function G(){D.apply(this,arguments);var e=f(this.handler,this);this.touch=new V(this.manager,e),this.mouse=new H(this.manager,e)}function X(e,t){this.manager=e,this.set(t)}function K(e){if(m(e,at))return at;var t=m(e,ht),i=m(e,dt);return t&&i?at:t||i?t?ht:dt:m(e,rt)?rt:st}function Z(e){this.options=ce({},this.defaults,e||{}),this.id=E(),this.manager=null,this.options.enable=v(this.options.enable,!0),this.state=lt,this.simultaneous={},this.requireFail=[]}function Q(e){return e&vt?"cancel":e&ft?"end":e&ut?"move":e&ct?"start":""}function J(e){return e==Re?"down":e==ze?"up":e==je?"left":e==Ne?"right":""}function $(e,t){var i=t.manager;return i?i.get(e):e}function ee(){Z.apply(this,arguments)}function te(){ee.apply(this,arguments),this.pX=null,this.pY=null}function ie(){ee.apply(this,arguments)}function oe(){Z.apply(this,arguments),this._timer=null,this._input=null}function ne(){ee.apply(this,arguments)}function se(){ee.apply(this,arguments)}function re(){Z.apply(this,arguments),this.pTime=!1,this.pCenter=!1,this._timer=null,this._input=null,this.count=0}function ae(e,t){return t=t||{},t.recognizers=v(t.recognizers,ae.defaults.preset),new he(e,t)}function he(e,t){this.options=ce({},ae.defaults,t||{}),this.options.inputTarget=this.options.inputTarget||e,this.handlers={},this.session={},this.recognizers=[],this.element=e,this.input=S(this),this.touchAction=new X(this,this.options.touchAction),de(this,!0),l(this.options.recognizers,function(e){var t=this.add(new e[0](e[1]));e[2]&&t.recognizeWith(e[2]),e[3]&&t.requireFailure(e[3])},this)}function de(e,t){var i=e.element;i.style&&l(e.options.cssProps,function(e,o){i.style[O(i.style,o)]=t?e:""})}function le(e,t){var i=s.createEvent("Event");i.initEvent(e,!0,!0),i.gesture=t,t.target.dispatchEvent(i)}var ce,ue=["","webkit","Moz","MS","ms","o"],fe=s.createElement("div"),pe="function",ve=Math.round,ye=Math.abs,ge=Date.now;ce="function"!=typeof Object.assign?function(e){if(e===a||null===e)throw new TypeError("Cannot convert undefined or null to object");for(var t=Object(e),i=1;i<arguments.length;i++){var o=arguments[i];if(o!==a&&null!==o)for(var n in o)o.hasOwnProperty(n)&&(t[n]=o[n])}return t}:Object.assign;var be=c(function(e,t,i){for(var o=Object.keys(t),n=0;n<o.length;)(!i||i&&e[o[n]]===a)&&(e[o[n]]=t[o[n]]),n++;return e},"extend","Use `assign`."),me=c(function(e,t){return be(e,t,!0)},"merge","Use `assign`."),_e=1,we=/mobile|tablet|ip(ad|hone|od)|android/i,ke="ontouchstart"in n,xe=O(n,"PointerEvent")!==a,Oe=ke&&we.test(navigator.userAgent),Ee="touch",Me="pen",De="mouse",Se="kinect",Ce=25,Te=1,Pe=2,Be=4,Fe=8,Ie=1,je=2,Ne=4,ze=8,Re=16,Ae=je|Ne,Le=ze|Re,He=Ae|Le,We=["x","y"],Ye=["clientX","clientY"];D.prototype={handler:function(){},init:function(){this.evEl&&y(this.element,this.evEl,this.domHandler),this.evTarget&&y(this.target,this.evTarget,this.domHandler),this.evWin&&y(M(this.element),this.evWin,this.domHandler)},destroy:function(){this.evEl&&g(this.element,this.evEl,this.domHandler),this.evTarget&&g(this.target,this.evTarget,this.domHandler),this.evWin&&g(M(this.element),this.evWin,this.domHandler)}};var Ue={mousedown:Te,mousemove:Pe,mouseup:Be},Ve="mousedown",qe="mousemove mouseup";u(H,D,{handler:function(e){var t=Ue[e.type];t&Te&&0===e.button&&(this.pressed=!0),t&Pe&&1!==e.which&&(t=Be),this.pressed&&this.allow&&(t&Be&&(this.pressed=!1),this.callback(this.manager,t,{pointers:[e],changedPointers:[e],pointerType:De,srcEvent:e}))}});var Ge={pointerdown:Te,pointermove:Pe,pointerup:Be,pointercancel:Fe,pointerout:Fe},Xe={2:Ee,3:Me,4:De,5:Se},Ke="pointerdown",Ze="pointermove pointerup pointercancel";n.MSPointerEvent&&!n.PointerEvent&&(Ke="MSPointerDown",Ze="MSPointerMove MSPointerUp MSPointerCancel"),u(W,D,{handler:function(e){var t=this.store,i=!1,o=e.type.toLowerCase().replace("ms",""),n=Ge[o],s=Xe[e.pointerType]||e.pointerType,r=s==Ee,a=w(t,e.pointerId,"pointerId");n&Te&&(0===e.button||r)?0>a&&(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;e<this.requireFail.length;){if(!(this.requireFail[e].state&(yt|lt)))return!1;e++}return!0},recognize:function(e){var t=ce({},e);return p(this.options.enable,[this,t])?(this.state&(pt|vt|yt)&&(this.state=lt),this.state=this.process(t),void(this.state&(ct|ut|ft|vt)&&this.tryEmit(t))):(this.reset(),void(this.state=yt))},process:function(e){},getTouchAction:function(){},reset:function(){}},u(ee,Z,{defaults:{pointers:1},attrTest:function(e){var t=this.options.pointers;return 0===t||e.pointers.length===t},process:function(e){var t=this.state,i=e.eventType,o=t&(ct|ut),n=this.attrTest(e);return o&&(i&Fe||!n)?t|vt:o||n?i&Be?t|ft:t&ct?t|ut:ct:yt}}),u(te,ee,{defaults:{event:"pan",threshold:10,pointers:1,direction:He},getTouchAction:function(){var e=this.options.direction,t=[];return e&Ae&&t.push(dt),e&Le&&t.push(ht),t},directionTest:function(e){var t=this.options,i=!0,o=e.distance,n=e.direction,s=e.deltaX,r=e.deltaY;return n&t.direction||(t.direction&Ae?(n=0===s?Ie:0>s?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.distance<t.threshold,n=e.deltaTime>t.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<t.threshold,n=e.deltaTime<t.time;if(this.reset(),e.eventType&Te&&0===this.count)return this.failTimeout();if(o&&n&&i){if(e.eventType!=Be)return this.failTimeout();var s=this.pTime?e.timeStamp-this.pTime<t.interval:!0,r=!this.pCenter||z(this.pCenter,e.center)<t.posThreshold;this.pTime=e.timeStamp,this.pCenter=e.center,r&&s?this.count+=1:this.count=1,this._input=e;var a=this.count%t.taps;if(0===a)return this.hasRequireFailures()?(this._timer=h(function(){this.state=pt,this.tryEmit()},t.interval,this),ct):pt}return yt},failTimeout:function(){return this._timer=h(function(){this.state=yt},this.options.interval,this),yt},reset:function(){clearTimeout(this._timer)},emit:function(){this.state==pt&&(this._input.tapCount=this.count,this.manager.emit(this.options.event,this._input))}}),ae.VERSION="2.0.6",ae.defaults={domEvents:!1,touchAction:nt,enable:!0,inputTarget:null,inputClass:null,preset:[[ne,{enable:!1}],[ie,{enable:!1},["rotate"]],[se,{direction:Ae}],[te,{direction:Ae},["swipe"]],[re],[re,{event:"doubletap",taps:2},["tap"]],[oe]],cssProps:{userSelect:"none",touchSelect:"none",touchCallout:"none",contentZooming:"none",userDrag:"none",tapHighlightColor:"rgba(0,0,0,0)"}};var gt=1,bt=2;he.prototype={set:function(e){return ce(this.options,e),e.touchAction&&this.touchAction.update(),e.inputTarget&&(this.input.destroy(),this.input.target=e.inputTarget,this.input.init()),this},stop:function(e){this.session.stopped=e?bt:gt},recognize:function(e){var t=this.session;if(!t.stopped){this.touchAction.preventDefaults(e);var i,o=this.recognizers,n=t.curRecognizer;(!n||n&&n.state&pt)&&(n=t.curRecognizer=null);for(var s=0;s<o.length;)i=o[s],t.stopped===bt||n&&i!=n&&!i.canRecognizeWith(n)?i.reset():i.recognize(e),!n&&i.state&(ct|ut|ft)&&(n=t.curRecognizer=i),s++}},get:function(e){if(e instanceof Z)return e;for(var t=this.recognizers,i=0;i<t.length;i++)if(t[i].options.event==e)return t[i];return null},add:function(e){if(d(e,"add",this))return this;var t=this.get(e.options.event);return t&&this.remove(t),this.recognizers.push(e),e.manager=this,this.touchAction.update(),e},remove:function(e){if(d(e,"remove",this))return this;if(e=this.get(e)){var t=this.recognizers,i=w(t,e);-1!==i&&(t.splice(i,1),this.touchAction.update())}return this},on:function(e,t){var i=this.handlers;return l(_(e),function(e){i[e]=i[e]||[],i[e].push(t)}),this},off:function(e,t){var i=this.handlers;return l(_(e),function(e){t?i[e]&&i[e].splice(w(i[e],t),1):delete i[e]}),this},emit:function(e,t){this.options.domEvents&&le(e,t);var i=this.handlers[e]&&this.handlers[e].slice();if(i&&i.length){t.type=e,t.preventDefault=function(){t.srcEvent.preventDefault()};for(var o=0;o<i.length;)i[o](t),o++}},destroy:function(){this.element&&de(this,!1),this.handlers={},this.session={},this.input.destroy(),this.element=null}},ce(ae,{INPUT_START:Te,INPUT_MOVE:Pe,INPUT_END:Be,INPUT_CANCEL:Fe,STATE_POSSIBLE:lt,STATE_BEGAN:ct,STATE_CHANGED:ut,STATE_ENDED:ft,STATE_RECOGNIZED:pt,STATE_CANCELLED:vt,STATE_FAILED:yt,DIRECTION_NONE:Ie,DIRECTION_LEFT:je,DIRECTION_RIGHT:Ne,DIRECTION_UP:ze,DIRECTION_DOWN:Re,DIRECTION_HORIZONTAL:Ae,DIRECTION_VERTICAL:Le,DIRECTION_ALL:He,Manager:he,Input:D,TouchAction:X,TouchInput:V,MouseInput:H,PointerEventInput:W,TouchMouseInput:G,SingleTouchInput:Y,Recognizer:Z,AttrRecognizer:ee,Tap:re,Pan:te,Swipe:se,Pinch:ie,Rotate:ne,Press:oe,on:y,off:g,each:l,merge:me,extend:be,assign:ce,inherit:u,bindFn:f,prefixed:O});var mt="undefined"!=typeof n?n:"undefined"!=typeof self?self:{};mt.Hammer=ae,o=function(){return ae}.call(t,i,t,e),!(o!==a&&(e.exports=o))}(window,document,"Hammer")},function(e,t,i){i(58);t.onTouch=function(e,t){t.inputHandler=function(e){e.isFirst&&t(e)},e.on("hammer.input",t.inputHandler)},t.onRelease=function(e,t){return t.inputHandler=function(e){e.isFinal&&t(e)},e.on("hammer.input",t.inputHandler)},t.offTouch=function(e,t){e.off("hammer.input",t.inputHandler)},t.offRelease=t.offTouch,t.disablePreventDefaultVertically=function(e){var t="pan-y";return e.getTouchAction=function(){return[t]},e}},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;i<t.length;i++){var o=t[i];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(e,o.key,o)}}return function(t,i,o){return i&&e(t.prototype,i),o&&e(t,o),t}}(),r=i(54),a=o(r),h=i(1),d=function(){function e(t,i){var o=this;n(this,e),this.body=t,this.canvas=i,this.animationSpeed=1/this.renderRefreshRate,this.animationEasingFunction="easeInOutQuint",this.easingTime=0,this.sourceScale=0,this.targetScale=0,this.sourceTranslation=0,this.targetTranslation=0,this.lockedOnNodeId=void 0,this.lockedOnNodeOffset=void 0,this.touchTime=0,this.viewFunction=void 0,this.body.emitter.on("fit",this.fit.bind(this)),this.body.emitter.on("animationFinished",function(){o.body.emitter.emit("_stopRendering")}),this.body.emitter.on("unlockNode",this.releaseNode.bind(this))}return s(e,[{key:"setOptions",value:function(){var e=arguments.length<=0||void 0===arguments[0]?{}:arguments[0];this.options=e}},{key:"fit",value:function(){var e=arguments.length<=0||void 0===arguments[0]?{nodes:[]}:arguments[0],t=arguments.length<=1||void 0===arguments[1]?!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=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;i<t.length;i++){var o=t[i];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(e,o.key,o)}}return function(t,i,o){return i&&e(t.prototype,i),o&&e(t,o),t}}(),r=i(64),a=o(r),h=i(66),d=o(h),l=i(1),c=function(){function e(t,i,o){n(this,e),this.body=t,this.canvas=i,this.selectionHandler=o,this.navigationHandler=new a["default"](t,i),this.body.eventListeners.onTap=this.onTap.bind(this),this.body.eventListeners.onTouch=this.onTouch.bind(this),this.body.eventListeners.onDoubleTap=this.onDoubleTap.bind(this),this.body.eventListeners.onHold=this.onHold.bind(this),this.body.eventListeners.onDragStart=this.onDragStart.bind(this),this.body.eventListeners.onDrag=this.onDrag.bind(this),this.body.eventListeners.onDragEnd=this.onDragEnd.bind(this),this.body.eventListeners.onMouseWheel=this.onMouseWheel.bind(this),this.body.eventListeners.onPinch=this.onPinch.bind(this),this.body.eventListeners.onMouseMove=this.onMouseMove.bind(this),this.body.eventListeners.onRelease=this.onRelease.bind(this),this.body.eventListeners.onContext=this.onContext.bind(this),this.touchTime=0,this.drag={},this.pinch={},this.popup=void 0,this.popupObj=void 0,this.popupTimer=void 0,this.body.functions.getPointer=this.getPointer.bind(this),this.options={},this.defaultOptions={dragNodes:!0,dragView:!0,hover:!1,keyboard:{enabled:!1,speed:{x:10,y:10,zoom:.02},bindToWindow:!0},navigationButtons:!1,tooltipDelay:300,zoomView:!0},l.extend(this.options,this.defaultOptions),this.bindEventListeners()}return s(e,[{key:"bindEventListeners",value:function(){var e=this;this.body.emitter.on("destroy",function(){clearTimeout(e.popupTimer),delete e.body.functions.getPointer})}},{key:"setOptions",value:function(e){if(void 0!==e){var t=["hideEdgesOnDrag","hideNodesOnDrag","keyboard","multiselect","selectable","selectConnectedEdges"];l.selectiveNotDeepExtend(t,this.options,e),l.mergeOptions(this.options,e,"keyboard"),e.tooltip&&(l.extend(this.options.tooltip,e.tooltip),e.tooltip.color&&(this.options.tooltip.color=l.parseColor(e.tooltip.color)))}this.navigationHandler.setOptions(this.options)}},{key:"getPointer",value:function(e){return{x:e.x-l.getAbsoluteLeft(this.canvas.frame.canvas),y:e.y-l.getAbsoluteTop(this.canvas.frame.canvas)}}},{key:"onTouch",value:function(e){(new Date).valueOf()-this.touchTime>50&&(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;n<e.nodes.length;n++)-1===t.nodes.indexOf(e.nodes[n])&&(i=!0);for(var s=0;s<t.nodes.length;s++)-1===e.nodes.indexOf(e.nodes[s])&&(i=!0);for(var r=0;r<e.edges.length;r++)-1===t.edges.indexOf(e.edges[r])&&(o=!0);for(var a=0;a<t.edges.length;a++)-1===e.edges.indexOf(e.edges[a])&&(o=!0);return{nodesChanged:i,edgesChanged:o}}},{key:"onDragStart",value:function(e){void 0===this.drag.pointer&&this.onTouch(e);var t=this.selectionHandler.getNodeAt(this.drag.pointer);if(this.drag.dragging=!0,this.drag.selection=[],this.drag.translation=l.extend({},this.body.view.translation),this.drag.nodeId=void 0,void 0!==t&&this.options.dragNodes===!0){this.drag.nodeId=t.id,t.isSelected()===!1&&(this.selectionHandler.unselectAll(),this.selectionHandler.selectObject(t)),this.selectionHandler._generateClickEvent("dragStart",e,this.drag.pointer);var i=this.selectionHandler.selectionObj.nodes;for(var o in i)if(i.hasOwnProperty(o)){var n=i[o],s={id:n.id,node:n,x:n.x,y:n.y,xFixed:n.options.fixed.x,
+yFixed:n.options.fixed.y};n.options.fixed.x=!0,n.options.fixed.y=!0,this.drag.selection.push(s)}}else this.selectionHandler._generateClickEvent("dragStart",e,this.drag.pointer,void 0,!0)}},{key:"onDrag",value:function(e){var t=this;if(this.drag.pinched!==!0){this.body.emitter.emit("unlockNode");var i=this.getPointer(e.center),o=this.drag.selection;if(o&&o.length&&this.options.dragNodes===!0)!function(){t.selectionHandler._generateClickEvent("dragging",e,i);var n=i.x-t.drag.pointer.x,s=i.y-t.drag.pointer.y;o.forEach(function(e){var i=e.node;e.xFixed===!1&&(i.x=t.canvas._XconvertDOMtoCanvas(t.canvas._XconvertCanvasToDOM(e.x)+n)),e.yFixed===!1&&(i.y=t.canvas._YconvertDOMtoCanvas(t.canvas._YconvertCanvasToDOM(e.y)+s))}),t.body.emitter.emit("startSimulation")}();else if(this.options.dragView===!0){if(this.selectionHandler._generateClickEvent("dragging",e,i,void 0,!0),void 0===this.drag.pointer)return void this.onDragStart(e);var n=i.x-this.drag.pointer.x,s=i.y-this.drag.pointer.y;this.body.view.translation={x:this.drag.translation.x+n,y:this.drag.translation.y+s},this.body.emitter.emit("_redraw")}}}},{key:"onDragEnd",value:function(e){this.drag.dragging=!1;var t=this.drag.selection;t&&t.length?(t.forEach(function(e){e.node.options.fixed.x=e.xFixed,e.node.options.fixed.y=e.yFixed}),this.selectionHandler._generateClickEvent("dragEnd",e,this.getPointer(e.center)),this.body.emitter.emit("startSimulation")):(this.selectionHandler._generateClickEvent("dragEnd",e,this.getPointer(e.center),void 0,!0),this.body.emitter.emit("_requestRedraw"))}},{key:"onPinch",value:function(e){var t=this.getPointer(e.center);this.drag.pinched=!0,void 0===this.pinch.scale&&(this.pinch.scale=1);var i=this.pinch.scale*e.scale;this.zoom(i,t)}},{key:"zoom",value:function(e,t){if(this.options.zoomView===!0){var i=this.body.view.scale;1e-5>e&&(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;u<a.length;u++)l=h[a[u]],l.isOverlappingWith(o)===!0&&void 0!==l.getTitle()&&c.push(a[u]);c.length>0&&(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;g<f.length;g++)v=p[f[g]],v.isOverlappingWith(o)===!0&&v.connected===!0&&void 0!==v.getTitle()&&y.push(f[g]);y.length>0&&(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;i<t.length;i++){var o=t[i];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(e,o.key,o)}}return function(t,i,o){return i&&e(t.prototype,i),o&&e(t,o),t}}(),s=(i(1),i(58)),r=i(61),a=i(65),h=function(){function e(t,i){var n=this;o(this,e),this.body=t,this.canvas=i,this.iconsCreated=!1,this.navigationHammers=[],this.boundFunctions={},this.touchTime=0,this.activated=!1,this.body.emitter.on("activate",function(){n.activated=!0,n.configureKeyboardBindings()}),this.body.emitter.on("deactivate",function(){n.activated=!1,n.configureKeyboardBindings()}),this.body.emitter.on("destroy",function(){void 0!==n.keycharm&&n.keycharm.destroy()}),this.options={}}return n(e,[{key:"setOptions",value:function(e){void 0!==e&&(this.options=e,this.create())}},{key:"create",value:function(){this.options.navigationButtons===!0?this.iconsCreated===!1&&this.loadNavigationElements():this.iconsCreated===!0&&this.cleanNavigation(),this.configureKeyboardBindings()}},{key:"cleanNavigation",value:function(){if(0!=this.navigationHammers.length){for(var e=0;e<this.navigationHammers.length;e++)this.navigationHammers[e].destroy();this.navigationHammers=[]}this.navigationDOM&&this.navigationDOM.wrapper&&this.navigationDOM.wrapper.parentNode&&this.navigationDOM.wrapper.parentNode.removeChild(this.navigationDOM.wrapper),this.iconsCreated=!1}},{key:"loadNavigationElements",value:function(){var e=this;this.cleanNavigation(),this.navigationDOM={};var t=["up","down","left","right","zoomIn","zoomOut","zoomExtends"],i=["_moveUp","_moveDown","_moveLeft","_moveRight","_zoomIn","_zoomOut","_fit"];this.navigationDOM.wrapper=document.createElement("div"),this.navigationDOM.wrapper.className="vis-navigation",this.canvas.frame.appendChild(this.navigationDOM.wrapper);for(var o=0;o<t.length;o++){this.navigationDOM[t[o]]=document.createElement("div"),this.navigationDOM[t[o]].className="vis-button vis-"+t[o],this.navigationDOM.wrapper.appendChild(this.navigationDOM[t[o]]);var n=new s(this.navigationDOM[t[o]]);"_fit"===i[o]?r.onTouch(n,this._fit.bind(this)):r.onTouch(n,this.bindToRedraw.bind(this,i[o])),this.navigationHammers.push(n)}var a=new s(this.canvas.frame);r.onRelease(a,function(){e._stopMovement()}),this.navigationHammers.push(a),this.iconsCreated=!0}},{key:"bindToRedraw",value:function(e){void 0===this.boundFunctions[e]&&(this.boundFunctions[e]=this[e].bind(this),this.body.emitter.on("initRedraw",this.boundFunctions[e]),this.body.emitter.emit("_startRendering"))}},{key:"unbindFromRedraw",value:function(e){void 0!==this.boundFunctions[e]&&(this.body.emitter.off("initRedraw",this.boundFunctions[e]),this.body.emitter.emit("_stopRendering"),delete this.boundFunctions[e])}},{key:"_fit",value:function(){(new Date).valueOf()-this.touchTime>700&&(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;n<o.length;n++)void 0===o[n].shift?o[n].fn(e):1==o[n].shift&&1==e.shiftKey?o[n].fn(e):0==o[n].shift&&0==e.shiftKey&&o[n].fn(e);1==i&&e.preventDefault()}};return n.bind=function(e,t,i){if(void 0===i&&(i="keydown"),void 0===r[e])throw new Error("unsupported key: "+e);void 0===s[i][r[e].code]&&(s[i][r[e].code]=[]),s[i][r[e].code].push({fn:t,shift:r[e].shift})},n.bindAll=function(e,t){void 0===t&&(t="keydown");for(var i in r)r.hasOwnProperty(i)&&n.bind(i,e,t)},n.getKey=function(e){for(var t in r)if(r.hasOwnProperty(t)){if(1==e.shiftKey&&1==r[t].shift&&e.keyCode==r[t].code)return t;if(0==e.shiftKey&&0==r[t].shift&&e.keyCode==r[t].code)return t;if(e.keyCode==r[t].code&&"shift"==t)return t}return"unknown key, currently not supported"},n.unbind=function(e,t,i){if(void 0===i&&(i="keydown"),void 0===r[e])throw new Error("unsupported key: "+e);if(void 0!==t){var o=[],n=s[i][r[e].code];if(void 0!==n)for(var a=0;a<n.length;a++)n[a].fn==t&&n[a].shift==r[e].shift||o.push(s[i][r[e].code][a]);s[i][r[e].code]=o}else s[i][r[e].code]=[]},n.reset=function(){s={keydown:{},keyup:{}}},n.destroy=function(){s={keydown:{},keyup:{}},o.removeEventListener("keydown",a,!0),o.removeEventListener("keyup",h,!0)},o.addEventListener("keydown",a,!0),o.addEventListener("keyup",h,!0),n}return e})},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;i<t.length;i++){var o=t[i];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(e,o.key,o)}}return function(t,i,o){return i&&e(t.prototype,i),o&&e(t,o),t}}(),n=function(){function e(t){i(this,e),this.container=t,this.x=0,this.y=0,this.padding=5,this.hidden=!1,this.frame=document.createElement("div"),this.frame.className="vis-network-tooltip",this.container.appendChild(this.frame)}return o(e,[{key:"setPosition",value:function(e,t){this.x=parseInt(e),this.y=parseInt(t)}},{key:"setText",value:function(e){e instanceof Element?(this.frame.innerHTML="",this.frame.appendChild(e)):this.frame.innerHTML=e}},{key:"show",value:function(e){if(void 0===e&&(e=!0),e===!0){var t=this.frame.clientHeight,i=this.frame.clientWidth,o=this.frame.parentNode.clientHeight,n=this.frame.parentNode.clientWidth,s=this.y-t;s+t+this.padding>o&&(s=o-t-this.padding),s<this.padding&&(s=this.padding);var r=this.x;r+i+this.padding>n&&(r=n-i-this.padding),r<this.padding&&(r=this.padding),this.frame.style.left=r+"px",this.frame.style.top=s+"px",this.frame.style.visibility="visible",this.hidden=!1}else this.hide()}},{key:"hide",value:function(){this.hidden=!0,this.frame.style.visibility="hidden"}}]),e}();t["default"]=n},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;i<t.length;i++){var o=t[i];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(e,o.key,o)}}return function(t,i,o){return i&&e(t.prototype,i),o&&e(t,o),t}}(),r=i(15),a=o(r),h=i(36),d=o(h),l=i(1),c=function(){function e(t,i){var o=this;n(this,e),this.body=t,this.canvas=i,this.selectionObj={nodes:[],edges:[]},this.hoverObj={nodes:{},edges:{}},this.options={},this.defaultOptions={multiselect:!1,selectable:!0,selectConnectedEdges:!0,hoverConnectedEdges:!0},l.extend(this.options,this.defaultOptions),this.body.emitter.on("_dataChanged",function(){o.updateSelection()})}return s(e,[{key:"setOptions",value:function(e){if(void 0!==e){var t=["multiselect","hoverConnectedEdges","selectable","selectConnectedEdges"];l.selectiveDeepExtend(t,this.options,e)}}},{key:"selectOnPoint",value:function(e){var t=!1;if(this.options.selectable===!0){var i=this.getNodeAt(e)||this.getEdgeAt(e);this.unselectAll(),void 0!==i&&(t=this.selectObject(i)),this.body.emitter.emit("_requestRedraw")}return t}},{key:"selectAdditionalOnPoint",value:function(e){var t=!1;if(this.options.selectable===!0){var i=this.getNodeAt(e)||this.getEdgeAt(e);void 0!==i&&(t=!0,i.isSelected()===!0?this.deselectObject(i):this.selectObject(i),this.body.emitter.emit("_requestRedraw"))}return t}},{key:"_generateClickEvent",value:function(e,t,i,o){var n=arguments.length<=4||void 0===arguments[4]?!1: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]?this.options.selectConnectedEdges:arguments[1];return void 0!==e?(e instanceof a["default"]&&t===!0&&this._selectConnectedEdges(e),e.select(),this._addToSelection(e),!0):!1}},{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;o<this.body.nodeIndices.length;o++){var n=this.body.nodeIndices[o];i[n].isOverlappingWith(e)&&t.push(n)}return t}},{key:"_pointerToPositionObject",value:function(e){var t=this.canvas.DOMtoCanvas(e);return{left:t.x-1,top:t.y+1,right:t.x+1,bottom:t.y-1}}},{key:"getNodeAt",value:function(e){var t=arguments.length<=1||void 0===arguments[1]?!0: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;o<this.body.edgeIndices.length;o++){var n=this.body.edgeIndices[o];i[n].isOverlappingWith(e)&&t.push(n)}}},{key:"_getAllEdgesOverlappingWith",value:function(e){var t=[];return this._getEdgesOverlappingWith(e,t),t}},{key:"getEdgeAt",value:function(e){var t=arguments.length<=1||void 0===arguments[1]?!0:arguments[1],i=this._pointerToPositionObject(e),o=this._getAllEdgesOverlappingWith(i);return o.length>0?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;t<e.edges.length;t++){var i=e.edges[t];i.select(),this._addToSelection(i)}}},{key:"_hoverConnectedEdges",value:function(e){for(var t=0;t<e.edges.length;t++){var i=e.edges[t];i.hover=!0,this._addToHover(i)}}},{key:"_unselectConnectedEdges",value:function(e){for(var t=0;t<e.edges.length;t++){var i=e.edges[t];i.unselect(),this._removeFromSelection(i)}}},{key:"blurObject",value:function(e){e.hover===!0&&(e.hover=!1,e instanceof a["default"]?this.body.emitter.emit("blurNode",{node:e.id}):this.body.emitter.emit("blurEdge",{edge:e.id}))}},{key:"hoverObject",value:function(e){var t=!1;for(var i in this.hoverObj.nodes)this.hoverObj.nodes.hasOwnProperty(i)&&(void 0===e||e instanceof a["default"]&&e.id!=i||e instanceof d["default"])&&(this.blurObject(this.hoverObj.nodes[i]),delete this.hoverObj.nodes[i],t=!0);for(var o in this.hoverObj.edges)this.hoverObj.edges.hasOwnProperty(o)&&(t===!0?(this.hoverObj.edges[o].hover=!1,delete this.hoverObj.edges[o]):void 0===e&&(this.blurObject(this.hoverObj.edges[o]),delete this.hoverObj.edges[o],t=!0));void 0!==e&&(e.hover===!1&&(e.hover=!0,this._addToHover(e),t=!0,e instanceof a["default"]?this.body.emitter.emit("hoverNode",{node:e.id}):this.body.emitter.emit("hoverEdge",{edge:e.id})),e instanceof a["default"]&&this.options.hoverConnectedEdges===!0&&this._hoverConnectedEdges(e)),t===!0&&this.body.emitter.emit("_requestRedraw")}},{key:"getSelection",value:function(){var e=this.getSelectedNodes(),t=this.getSelectedEdges();return{nodes:e,edges:t}}},{key:"getSelectedNodes",value:function(){var e=[];if(this.options.selectable===!0)for(var t in this.selectionObj.nodes)this.selectionObj.nodes.hasOwnProperty(t)&&e.push(this.selectionObj.nodes[t].id);return e}},{key:"getSelectedEdges",value:function(){var e=[];if(this.options.selectable===!0)for(var t in this.selectionObj.edges)this.selectionObj.edges.hasOwnProperty(t)&&e.push(this.selectionObj.edges[t].id);return e}},{key:"setSelection",value:function(e){var t=arguments.length<=1||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;i<e.nodes.length;i++){o=e.nodes[i];var n=this.body.nodes[o];if(!n)throw new RangeError('Node with id "'+o+'" not found');this.selectObject(n,t.highlightEdges)}if(e.edges)for(i=0;i<e.edges.length;i++){o=e.edges[i];var s=this.body.edges[o];if(!s)throw new RangeError('Edge with id "'+o+'" not found');this.selectObject(s)}this.body.emitter.emit("_requestRedraw")}},{key:"selectNodes",value:function(e){var t=arguments.length<=1||void 0===arguments[1]?!0: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(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"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol?"symbol":typeof e},a=function(){function e(e,t){for(var i=0;i<t.length;i++){var o=t[i];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(e,o.key,o)}}return function(t,i,o){return i&&e(t.prototype,i),o&&e(t,o),t}}(),h=i(54),d=o(h),l=i(1),c=function(){function e(t){n(this,e),this.body=t,this.initialRandomSeed=Math.round(1e6*Math.random()),this.randomSeed=this.initialRandomSeed,this.setPhysics=!1,this.options={},this.optionsBackup={physics:{}},this.defaultOptions={randomSeed:void 0,improvedLayout:!0,hierarchical:{enabled:!1,levelSeparation:150,nodeSpacing:100,treeSpacing:200,blockShifting:!0,edgeMinimization:!0,parentCentralization:!0,direction:"UD",sortMethod:"hubsize"}},l.extend(this.options,this.defaultOptions),this.bindEventListeners()}return a(e,[{key:"bindEventListeners",value:function(){var e=this;this.body.emitter.on("_dataChanged",function(){e.setupHierarchicalLayout()}),this.body.emitter.on("_dataLoaded",function(){e.layoutNetwork()}),this.body.emitter.on("_resetHierarchicalLayout",function(){e.setupHierarchicalLayout()})}},{key:"setOptions",value:function(e,t){if(void 0!==e){var i=this.options.hierarchical.enabled;if(l.selectiveDeepExtend(["randomSeed","improvedLayout"],this.options,e),l.mergeOptions(this.options,e,"hierarchical"),void 0!==e.randomSeed&&(this.initialRandomSeed=e.randomSeed),this.options.hierarchical.enabled===!0)return i===!0&&this.body.emitter.emit("refresh",!0),"RL"===this.options.hierarchical.direction||"DU"===this.options.hierarchical.direction?this.options.hierarchical.levelSeparation>0&&(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;t<e.length;t++){var i=e[t],o=1*e.length+10,n=2*Math.PI*this.seededRandom();void 0===i.x&&(i.x=o*Math.cos(n)),void 0===i.y&&(i.y=o*Math.sin(n))}}}},{key:"layoutNetwork",value:function(){if(this.options.hierarchical.enabled!==!0&&this.options.improvedLayout===!0){for(var e=0,t=0;t<this.body.nodeIndices.length;t++){var i=this.body.nodes[this.body.nodeIndices[t]];i.predefinedPosition===!0&&(e+=1)}if(e<.5*this.body.nodeIndices.length){var o=10,n=0,s=100;if(this.body.nodeIndices.length>s){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;l<this.body.nodeIndices.length;l++)this.body.nodes[this.body.nodeIndices[l]].x+=(.5-this.seededRandom())*d,this.body.nodes[this.body.nodeIndices[l]].y+=(.5-this.seededRandom())*d;this._declusterAll(),this.body.emitter.emit("_repositionBezierNodes")}}}},{key:"_shiftToCenter",value:function(){for(var e=d["default"].getRangeCore(this.body.nodes,this.body.nodeIndices),t=d["default"].findCenter(e),i=0;i<this.body.nodeIndices.length;i++)this.body.nodes[this.body.nodeIndices[i]].x-=t.x,this.body.nodes[this.body.nodeIndices[i]].y-=t.y}},{key:"_declusterAll",value:function(){for(var e=!0;e===!0;){e=!1;for(var t=0;t<this.body.nodeIndices.length;t++)this.body.nodes[this.body.nodeIndices[t]].isCluster===!0&&(e=!0,this.body.modules.clustering.openCluster(this.body.nodeIndices[t],{},!1));e===!0&&this.body.emitter.emit("_dataChanged")}}},{key:"getSeed",value:function(){return this.initialRandomSeed}},{key:"setupHierarchicalLayout",value:function(){if(this.options.hierarchical.enabled===!0&&this.body.nodeIndices.length>0){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;i<t.length-1;i++){var o=t[i].max-t[i+1].min;n(i+1,o+e.options.hierarchical.treeSpacing)}},n=function(t,i){for(var o in e.hierarchicalTrees)if(e.hierarchicalTrees.hasOwnProperty(o)&&e.hierarchicalTrees[o]===t){var n=e.body.nodes[o],s=e._getPositionForHierarchy(n);e._setPositionForHierarchy(n,s+i,void 0,!0)}},r=function(t){var i=1e9,o=-1e9;for(var n in e.hierarchicalTrees)if(e.hierarchicalTrees.hasOwnProperty(n)&&e.hierarchicalTrees[n]===t){var s=e._getPositionForHierarchy(e.body.nodes[n]);i=Math.min(s,i),o=Math.max(s,o)}return{min:i,max:o}},a=function(){for(var t=[],i=0;i<=e.treeIndex;i++)t.push(r(i));return t},h=function _(t,i){if(i[t.id]=!0,e.hierarchicalChildrenReference[t.id]){var o=e.hierarchicalChildrenReference[t.id];if(o.length>0)for(var n=0;n<o.length;n++)_(e.body.nodes[o[n]],i)}},d=function(t){var i=arguments.length<=1||void 0===arguments[1]?1e9:arguments[1],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),i>=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;n<o.length;n++)i=Math.max(i,w(o[n]))}return i},c=function(e,t){var i=l(e.id),o=l(t.id);return Math.min(i,o)},u=function(t,i){var o=e.hierarchicalParentReference[t.id],n=e.hierarchicalParentReference[i.id];if(void 0===o||void 0===n)return!1;for(var s=0;s<o.length;s++)for(var r=0;r<n.length;r++)if(o[s]==n[r])return!0;return!1},f=function(t,i,o){for(var n=0;n<i.length;n++){var s=i[n],r=e.distributionOrdering[s];if(r.length>1)for(var a=0;a<r.length-1;a++)u(r[a],r[a+1])===!0&&e.hierarchicalTrees[r[a].id]===e.hierarchicalTrees[r[a+1].id]&&t(r[a],r[a+1],o)}},p=function(i,o){var n=arguments.length<=2||void 0===arguments[2]?!1: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),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;p<a.length;p++){var v=a[p];if(v.toId!=v.fromId){var y=v.toId==r?v.from:v.to;u[a[p].id]=y,e.hierarchicalLevels[y.id]<l&&f.push(v)}}var g=function(t,i){for(var o=0,n=0;n<i.length;n++)if(void 0!==u[i[n].id]){var s=e._getPositionForHierarchy(u[i[n].id])-t;o+=s/Math.sqrt(s*s+c)}return o},b=function(t,i){for(var o=0,n=0;n<i.length;n++)if(void 0!==u[i[n].id]){var s=e._getPositionForHierarchy(u[i[n].id])-t;o-=c*Math.pow(s*s+c,-1.5)}return o},m=function(t,i){for(var o=e._getPositionForHierarchy(n),s={},r=0;t>r;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;s<o.length;s++)for(var r=o[s],a=e.distributionOrdering[r],h=0;h<a.length;h++)v(1e3,a[h]);if(t!==!0)break}},g=function(i){var o=Object.keys(e.distributionOrdering);o=o.reverse();for(var n=0;i>n&&(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;i<t.length;i++)for(var o=t[i],n=e.distributionOrdering[o],s=0;s<n.length;s++)e._centerParent(n[s])};this.options.hierarchical.blockShifting===!0&&(g(5),b()),this.options.hierarchical.edgeMinimization===!0&&y(20),this.options.hierarchical.parentCentralization===!0&&m(),o()}},{key:"_getSpaceAroundNode",value:function(e,t){var i=!0;void 0===t&&(i=!1);var o=this.hierarchicalLevels[e.id];if(void 0!==o){var n=this.distributionIndex[e.id],s=this._getPositionForHierarchy(e),r=1e9,a=1e9;if(0!==n){var h=this.distributionOrdering[o][n-1];if(i===!0&&void 0===t[h.id]||i===!1){var d=this._getPositionForHierarchy(h);r=s-d}}if(n!=this.distributionOrdering[o].length-1){var l=this.distributionOrdering[o][n+1];if(i===!0&&void 0===t[l.id]||i===!1){var c=this._getPositionForHierarchy(l);a=Math.min(a,c-s)}}return[r,a]}return[0,0]}},{key:"_centerParent",value:function(e){if(this.hierarchicalParentReference[e.id])for(var t=this.hierarchicalParentReference[e.id],i=0;i<t.length;i++){var o=t[i],n=this.body.nodes[o];if(this.hierarchicalChildrenReference[o]){var r=1e9,a=-1e9,h=this.hierarchicalChildrenReference[o];if(h.length>0)for(var d=0;d<h.length;d++){var l=this.body.nodes[h[d]];r=Math.min(r,this._getPositionForHierarchy(l)),a=Math.max(a,this._getPositionForHierarchy(l))}var c=this._getPositionForHierarchy(n),u=this._getSpaceAroundNode(n),f=s(u,2),p=f[0],v=f[1],y=.5*(r+a),g=c-y;(0>g&&Math.abs(g)<v-this.options.hierarchical.nodeSpacing||g>0&&Math.abs(g)<p-this.options.hierarchical.nodeSpacing)&&this._setPositionForHierarchy(n,y,void 0,!0)}}}},{key:"_placeNodesByHierarchy",value:function(e){this.positionedNodes={};for(var t in e)if(e.hasOwnProperty(t)){var i=Object.keys(e[t]);i=this._indexArrayToNodes(i),this._sortNodeArray(i);for(var o=0,n=0;n<i.length;n++){var s=i[n];if(void 0===this.positionedNodes[s.id]){var r=this.options.hierarchical.nodeSpacing*o;o>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;o<this.hierarchicalChildrenReference[e].length;o++)i.push(this.body.nodes[this.hierarchicalChildrenReference[e][o]]);this._sortNodeArray(i);for(var n=0;n<i.length;n++){var s=i[n],r=this.hierarchicalLevels[s.id];if(!(r>t&&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;l<i.length;l++){var c=i[l].id;h=Math.min(h,this._getPositionForHierarchy(this.body.nodes[c])),d=Math.max(d,this._getPositionForHierarchy(this.body.nodes[c]))}this._setPositionForHierarchy(this.body.nodes[e],.5*(h+d),t)}}},{key:"_validataPositionAndContinue",value:function(e,t,i){if(void 0!==this.lastNodeOnLevel[t]){var o=this._getPositionForHierarchy(this.body.nodes[this.lastNodeOnLevel[t]]);if(i-o<this.options.hierarchical.nodeSpacing){var n=o+this.options.hierarchical.nodeSpacing-i,s=this._findCommonParent(this.lastNodeOnLevel[t],e.id);this._shiftBlock(s.withChild,n)}}this.lastNodeOnLevel[t]=e.id,this.positionedNodes[e.id]=!0,this._placeBranchNodes(e.id,t)}},{key:"_indexArrayToNodes",value:function(e){for(var t=[],i=0;i<e.length;i++)t.push(this.body.nodes[e[i]]);return t}},{key:"_getDistribution",value:function(){var e={},t=void 0,i=void 0;for(t in this.body.nodes)if(this.body.nodes.hasOwnProperty(t)){i=this.body.nodes[t];var o=void 0===this.hierarchicalLevels[t]?0:this.hierarchicalLevels[t];"UD"===this.options.hierarchical.direction||"DU"===this.options.hierarchical.direction?(i.y=this.options.hierarchical.levelSeparation*o,i.options.fixed.y=!0):(i.x=this.options.hierarchical.levelSeparation*o,i.options.fixed.x=!0),void 0===e[o]&&(e[o]={}),e[o][t]=i}return e}},{key:"_getHubSize",value:function(){var e=0;for(var t in this.body.nodes)if(this.body.nodes.hasOwnProperty(t)){var i=this.body.nodes[t];void 0===this.hierarchicalLevels[t]&&(e=i.edges.length<e?e:i.edges.length)}return e}},{key:"_determineLevelsByHubsize",value:function(){for(var e=this,t=1,i=function(t,i){void 0===e.hierarchicalLevels[i.id]&&(void 0===e.hierarchicalLevels[t.id]&&(e.hierarchicalLevels[t.id]=0),e.hierarchicalLevels[i.id]=e.hierarchicalLevels[t.id]+1)};t>0&&(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;r<i.edges.length;r++)i.edges[r].connected===!0&&(s=i.edges[r].toId===i.id?i.edges[r].from:i.edges[r].to,i.id!==s.id&&(t(i,s,i.edges[r]),d(s,n)))}};if(void 0===i)for(var r=0;r<this.body.nodeIndices.length;r++){var a=this.body.nodes[this.body.nodeIndices[r]];void 0===o[a.id]&&(s(a,n),n+=1)}else{var h=this.body.nodes[i];if(void 0===h)return void console.error("Node not found:",i);s(h)}}},{key:"_shiftBlock",value:function(e,t){if("UD"===this.options.hierarchical.direction||"DU"===this.options.hierarchical.direction?this.body.nodes[e].x+=t:this.body.nodes[e].y+=t,void 0!==this.hierarchicalChildrenReference[e])for(var i=0;i<this.hierarchicalChildrenReference[e].length;i++)this._shiftBlock(this.hierarchicalChildrenReference[e][i],t)}},{key:"_findCommonParent",value:function(e,t){var i=this,o={},n=function r(e,t){if(void 0!==i.hierarchicalParentReference[t])for(var o=0;o<i.hierarchicalParentReference[t].length;o++){var n=i.hierarchicalParentReference[t][o];e[n]=!0,r(e,n)}},s=function a(e,t){if(void 0!==i.hierarchicalParentReference[t])for(var o=0;o<i.hierarchicalParentReference[t].length;o++){var n=i.hierarchicalParentReference[t][o];if(void 0!==e[n])return{foundParent:n,withChild:t};var s=a(e,n);if(null!==s.foundParent)return s}return{foundParent:null,withChild:t}};return n(o,e),s(o,t)}},{key:"_setPositionForHierarchy",value:function(e,t,i){var o=arguments.length<=3||void 0===arguments[3]?!1: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;i<t.length;i++){var o=t[i];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(e,o.key,o)}}return function(t,i,o){return i&&e(t.prototype,i),o&&e(t,o),t}}(),s=i(1),r=i(58),a=i(61),h=function(){function e(t,i,n){var r=this;o(this,e),this.body=t,this.canvas=i,this.selectionHandler=n,this.editMode=!1,this.manipulationDiv=void 0,this.editModeDiv=void 0,this.closeDiv=void 0,this.manipulationHammers=[],this.temporaryUIFunctions={},this.temporaryEventFunctions=[],this.touchTime=0,this.temporaryIds={nodes:[],edges:[]},this.guiEnabled=!1,this.inMode=!1,this.selectedControlNode=void 0,this.options={},this.defaultOptions={enabled:!1,initiallyActive:!1,addNode:!0,addEdge:!0,editNode:void 0,editEdge:!0,deleteNode:!0,deleteEdge:!0,controlNodeStyle:{shape:"dot",size:6,color:{background:"#ff0000",border:"#3c3c3c",highlight:{background:"#07f968",border:"#3c3c3c"}},borderWidth:2,borderWidthSelected:2}},s.extend(this.options,this.defaultOptions),this.body.emitter.on("destroy",function(){r._clean()}),this.body.emitter.on("_dataChanged",this._restore.bind(this)),this.body.emitter.on("_resetData",this._restore.bind(this))}return n(e,[{key:"_restore",value:function(){this.inMode!==!1&&(this.options.initiallyActive===!0?this.enableEditMode():this.disableEditMode())}},{key:"setOptions",value:function(e,t,i){void 0!==t&&(void 0!==t.locale?this.options.locale=t.locale:this.options.locale=i.locale,void 0!==t.locales?this.options.locales=t.locales:this.options.locales=i.locales),void 0!==e&&("boolean"==typeof e?this.options.enabled=e:(this.options.enabled=!0,s.deepExtend(this.options,e)),this.options.initiallyActive===!0&&(this.editMode=!0),this._setup())}},{key:"toggleEditMode",value:function(){this.editMode===!0?this.disableEditMode():this.enableEditMode()}},{key:"enableEditMode",value:function(){this.editMode=!0,this._clean(),this.guiEnabled===!0&&(this.manipulationDiv.style.display="block",this.closeDiv.style.display="block",this.editModeDiv.style.display="none",this.showManipulatorToolbar())}},{key:"disableEditMode",value:function(){this.editMode=!1,this._clean(),this.guiEnabled===!0&&(this.manipulationDiv.style.display="none",this.closeDiv.style.display="none",this.editModeDiv.style.display="block",this._createEditButton())}},{key:"showManipulatorToolbar",value:function(){if(this._clean(),this.manipulationDOM={},this.guiEnabled===!0){this.editMode=!0,this.manipulationDiv.style.display="block",this.closeDiv.style.display="block";var e=this.selectionHandler._getSelectedNodeCount(),t=this.selectionHandler._getSelectedEdgeCount(),i=e+t,o=this.options.locales[this.options.locale],n=!1;this.options.addNode!==!1&&(this._createAddNodeButton(o),n=!0),this.options.addEdge!==!1&&(n===!0?this._createSeperator(1):n=!0,this._createAddEdgeButton(o)),1===e&&"function"==typeof this.options.editNode?(n===!0?this._createSeperator(2):n=!0,this._createEditNodeButton(o)):1===t&&0===e&&this.options.editEdge!==!1&&(n===!0?this._createSeperator(3):n=!0,this._createEditEdgeButton(o)),0!==i&&(e>0&&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;n<t.length;n++)if(this.body.nodes[t[n]].isCluster===!0)return void alert(this.options.locales[this.options.locale].deleteClusterError||this.options.locales.en.deleteClusterError);"function"==typeof this.options.deleteNode&&(o=this.options.deleteNode)}else i.length>0&&"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<this.manipulationHammers.length;e++)this.manipulationHammers[e].destroy();this.manipulationHammers=[]}}},{key:"_removeManipulationDOM",value:function(){this._clean(),s.recursiveDOMDelete(this.manipulationDiv),s.recursiveDOMDelete(this.editModeDiv),s.recursiveDOMDelete(this.closeDiv),this.manipulationDiv&&this.canvas.frame.removeChild(this.manipulationDiv),this.editModeDiv&&this.canvas.frame.removeChild(this.editModeDiv),this.closeDiv&&this.canvas.frame.removeChild(this.closeDiv),this.manipulationDiv=void 0,this.editModeDiv=void 0,this.closeDiv=void 0}},{key:"_createSeperator",value:function(){var e=arguments.length<=0||void 0===arguments[0]?1:arguments[0];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]?"vis-label":arguments[3];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<this.temporaryEventFunctions.length;e++){var t=this.temporaryEventFunctions[e].event,i=this.temporaryEventFunctions[e].boundFunction;this.body.emitter.off(t,i)}this.temporaryEventFunctions=[]}},{key:"_bindHammerToDiv",value:function(e,t){var i=new r(e,{});a.onTouch(i,t),this.manipulationHammers.push(i)}},{key:"_cleanupTemporaryNodesAndEdges",value:function(){for(var e=0;e<this.temporaryIds.edges.length;e++){this.body.edges[this.temporaryIds.edges[e]].disconnect(),delete this.body.edges[this.temporaryIds.edges[e]];var t=this.body.edgeIndices.indexOf(this.temporaryIds.edges[e]);-1!==t&&this.body.edgeIndices.splice(t,1)}for(var i=0;i<this.temporaryIds.nodes.length;i++){delete this.body.nodes[this.temporaryIds.nodes[i]];var o=this.body.nodeIndices.indexOf(this.temporaryIds.nodes[i]);-1!==o&&this.body.nodeIndices.splice(o,1)}this.temporaryIds={nodes:[],edges:[]}}},{key:"_controlNodeTouch",value:function(e){this.selectionHandler.unselectAll(),this.lastTouch=this.body.functions.getPointer(e.center),this.lastTouch.translation=s.extend({},this.body.view.translation)}},{key:"_controlNodeDragStart",value:function(e){var t=this.lastTouch,i=this.selectionHandler._pointerToPositionObject(t),o=this.body.nodes[this.temporaryIds.nodes[0]],n=this.body.nodes[this.temporaryIds.nodes[1]],s=this.body.edges[this.edgeBeingEditedId];this.selectedControlNode=void 0;var r=o.isOverlappingWith(i),a=n.isOverlappingWith(i);r===!0?(this.selectedControlNode=o,s.edgeType.from=o):a===!0&&(this.selectedControlNode=n,s.edgeType.to=n),void 0!==this.selectedControlNode&&this.selectionHandler.selectObject(this.selectedControlNode),this.body.emitter.emit("_redraw")}},{key:"_controlNodeDrag",value:function(e){this.body.emitter.emit("disablePhysics");var t=this.body.functions.getPointer(e.center),i=this.canvas.DOMtoCanvas(t);if(void 0!==this.selectedControlNode)this.selectedControlNode.x=i.x,this.selectedControlNode.y=i.y;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}}this.body.emitter.emit("_redraw")}},{key:"_controlNodeDragEnd",value:function(e){var t=this.body.functions.getPointer(e.center),i=this.selectionHandler._pointerToPositionObject(t),o=this.body.edges[this.edgeBeingEditedId];if(void 0!==this.selectedControlNode){this.selectionHandler.unselectAll();for(var n=this.selectionHandler._getAllNodesOverlappingWith(i),s=void 0,r=n.length-1;r>=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;i<t.length;i++){var o=t[i];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(e,o.key,o)}}return function(t,i,o){return i&&e(t.prototype,i),o&&e(t,o),t}}(),a=i(71),h=o(a),d=i(1),l=function(){function e(t,i,o){var s=arguments.length<=3||void 0===arguments[3]?1:arguments[3];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&&-1===t.indexOf(n)||(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;e<this.domElements.length;e++)this.wrapper.appendChild(this.domElements[e]);this._showPopupIfNeeded()}},{key:"_clean",value:function(){for(var e=0;e<this.domElements.length;e++)this.wrapper.removeChild(this.domElements[e]);void 0!==this.wrapper&&(this.container.removeChild(this.wrapper),this.wrapper=void 0),this.domElements=[],this._removePopup()}},{key:"_getValue",value:function(e){for(var t=this.moduleOptions,i=0;i<e.length;i++){if(void 0===t[e[i]]){t=void 0;break}t=t[e[i]]}return t}},{key:"_makeItem",value:function(e){var t=arguments,i=this;if(this.allowCreation===!0){var o,n,r,a=function(){var s=document.createElement("div");for(s.className="vis-configuration vis-config-item vis-config-s"+e.length,o=t.length,n=Array(o>1?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="<i><b>"+e+":</b></i>":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;s<e.length;s++){var r=document.createElement("option");r.value=e[s],s===n&&(r.selected="selected"),r.innerHTML=e[s],o.appendChild(r)}var a=this;o.onchange=function(){a._update(this.value,i)};var h=this._makeLabel(i[i.length-1],i);this._makeItem(i,h,o)}},{key:"_makeRange",value:function(e,t,i){var o=e[0],n=e[1],s=e[2],r=e[3],a=document.createElement("input");a.className="vis-configuration vis-config-range";try{a.type="range",a.min=n,a.max=s}catch(h){}a.step=r;var d="",l=0;if(void 0!==t){var c=1.2;0>t&&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.popupCounter<this.popupLimit){var o=document.createElement("div");o.id="vis-configuration-popup",o.className="vis-configuration-popup",o.innerHTML=e,o.onclick=function(){i._removePopup()},this.popupCounter+=1,this.popupDiv={html:o,index:t}}}},{key:"_removePopup",value:function(){void 0!==this.popupDiv.html&&(this.popupDiv.html.parentNode.removeChild(this.popupDiv.html),clearTimeout(this.popupDiv.hideTimeout),clearTimeout(this.popupDiv.deleteTimeout),this.popupDiv={})}},{key:"_showPopupIfNeeded",value:function(){var e=this;if(void 0!==this.popupDiv.html){var t=this.domElements[this.popupDiv.index],i=t.getBoundingClientRect();this.popupDiv.html.style.left=i.left+"px",this.popupDiv.html.style.top=i.top-30+"px",document.body.appendChild(this.popupDiv.html),this.popupDiv.hideTimeout=setTimeout(function(){e.popupDiv.html.style.opacity=0},1500),this.popupDiv.deleteTimeout=setTimeout(function(){e._removePopup()},1800)}}},{key:"_makeCheckbox",value:function(e,t,i){var o=document.createElement("input");o.type="checkbox",o.className="vis-configuration vis-config-checkbox",o.checked=e,void 0!==t&&(o.checked=t,t!==e&&("object"===("undefined"==typeof e?"undefined":s(e))?t!==e.enabled&&this.changedOptions.push({path:i,value:t}):this.changedOptions.push({path:i,value:t})));var n=this;o.onchange=function(){n._update(this.checked,i)};var r=this._makeLabel(i[i.length-1],i);this._makeItem(i,r,o)}},{key:"_makeTextInput",value:function(e,t,i){var o=document.createElement("input");o.type="text",o.className="vis-configuration vis-config-text",o.value=t,t!==e&&this.changedOptions.push({path:i,value:t});var n=this;o.onchange=function(){n._update(this.value,i)};var s=this._makeLabel(i[i.length-1],i);this._makeItem(i,s,o)}},{key:"_makeColorField",value:function(e,t,i){var o=this,n=e[1],s=document.createElement("div");t=void 0===t?n:t,"none"!==t?(s.className="vis-configuration vis-config-colorBlock",s.style.backgroundColor=t):s.className="vis-configuration vis-config-colorBlock none",t=void 0===t?n:t,s.onclick=function(){o._showColorPicker(t,s,i)};var r=this._makeLabel(i[i.length-1],i);this._makeItem(i,r,s)}},{key:"_showColorPicker",value:function(e,t,i){var o=this;t.onclick=function(){},this.colorPicker.insertTo(t),this.colorPicker.show(),this.colorPicker.setColor(e),this.colorPicker.setUpdateCallback(function(e){var n="rgba("+e.r+","+e.g+","+e.b+","+e.a+")";t.style.backgroundColor=n,o._update(n,i)}),this.colorPicker.setCloseCallback(function(){t.onclick=function(){o._showColorPicker(e,t,i)}})}},{key:"_handleObject",value:function(e){var t=arguments.length<=1||void 0===arguments[1]?[]:arguments[1],i=arguments.length<=2||void 0===arguments[2]?!1: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(-1!==t.indexOf("physics")&&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?!0:e,e="false"===e?!1:e;for(var n=0;n<t.length;n++)"global"!==t[n]&&(void 0===o[t[n]]&&(o[t[n]]={}),n!==t.length-1?o=o[t[n]]:o[t[n]]=e);return i}},{key:"_printOptions",value:function(){var e=this.getOptions();this.optionsContainer.innerHTML="<pre>var options = "+JSON.stringify(e,null,2)+"</pre>"}},{key:"getOptions",value:function(){for(var e={},t=0;t<this.changedOptions.length;t++)this._constructOptions(this.changedOptions[t].value,this.changedOptions[t].path,e);return e}}]),e}();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){for(var i=0;i<t.length;i++){var o=t[i];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(e,o.key,o)}}return function(t,i,o){return i&&e(t.prototype,i),o&&e(t,o),t}}(),s=i(58),r=i(61),a=i(1),h=function(){function e(){var t=arguments.length<=0||void 0===arguments[0]?1:arguments[0];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"};return"string"==typeof e?t[e]:void 0}},{key:"setColor",value:function(e){var t=arguments.length<=1||void 0===arguments[1]?!0: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]?!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]?!0: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]?this.color:arguments[0],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(i){}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(i){}this.brightnessRange.value="100",this.brightnessRange.className="vis-range",this.opacityDiv.appendChild(this.opacityRange),this.brightnessDiv.appendChild(this.brightnessRange);var o=this;this.opacityRange.onchange=function(){o._setOpacity(this.value)},this.opacityRange.oninput=function(){o._setOpacity(this.value)},this.brightnessRange.onchange=function(){o._setBrightness(this.value)},this.brightnessRange.oninput=function(){o._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;360>s;s++)for(r=0;r<this.r;r++)o=this.centerCoordinates.x+r*Math.sin(h*s),n=this.centerCoordinates.y+r*Math.cos(h*s),c=a.HSVToRGB(s*d,r*l,1),e.fillStyle="rgb("+c.r+","+c.g+","+c.b+")",e.fillRect(o-.5,n-.5,2,2);e.strokeStyle="rgba(0,0,0,1)",e.circle(this.centerCoordinates.x,this.centerCoordinates.y,this.r),e.stroke(),this.hueCircle=e.getImageData(0,0,t,i)}this.generated=!0}},{key:"_moveSelector",value:function(e){var t=this.colorPickerDiv.getBoundingClientRect(),i=e.center.x-t.left,o=e.center.y-t.top,n=.5*this.colorPickerDiv.clientHeight,s=.5*this.colorPickerDiv.clientWidth,r=i-s,h=o-n,d=Math.atan2(r,h),l=.98*Math.min(Math.sqrt(r*r+h*h),s),c=Math.cos(d)*l+n,u=Math.sin(d)*l+s;this.colorPickerSelector.style.top=c-.5*this.colorPickerSelector.clientHeight+"px",this.colorPickerSelector.style.left=u-.5*this.colorPickerSelector.clientWidth+"px";var f=d/(2*Math.PI);f=0>f?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;i<t.length;i++){var o=t[i];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(e,o.key,o)}}return function(t,i,o){return i&&e(t.prototype,i),o&&e(t,o),t}}(),a=i(74),h=o(a),d=function(){function e(t,i,o){n(this,e),this.body=t,this.springLength=i,this.springConstant=o,this.distanceSolver=new h["default"]}return r(e,[{key:"setOptions",value:function(e){e&&(e.springLength&&(this.springLength=e.springLength),e.springConstant&&(this.springConstant=e.springConstant))}},{key:"solve",value:function(e,t){var i=arguments.length<=2||void 0===arguments[2]?!1: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&&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;h<t.length;h++){var d=t[h];if(i[d].predefinedPosition===!1||i[d].isCluster===!0&&e===!0||i[d].options.fixed.x===!0||i[d].options.fixed.y===!0){var l=this._getEnergy(d),c=s(l,3),u=c[0],f=c[1],p=c[2];u>o&&(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;a<t.length;a++){var h=t[a];if(h!==e){var d=i[h].x,l=i[h].y,c=1/Math.sqrt(Math.pow(o-d,2)+Math.pow(n-l,2));s+=this.K_matrix[e][h]*(o-d-this.L_matrix[e][h]*(o-d)*c),r+=this.K_matrix[e][h]*(n-l-this.L_matrix[e][h]*(n-l)*c)}}var u=Math.sqrt(Math.pow(s,2)+Math.pow(r,2));return[u,s,r]}},{key:"_moveNode",value:function(e,t,i){for(var o=this.body.nodeIndices,n=this.body.nodes,s=0,r=0,a=0,h=n[e].x,d=n[e].y,l=0;l<o.length;l++){var c=o[l];if(c!==e){var u=n[c].x,f=n[c].y,p=1/Math.pow(Math.pow(h-u,2)+Math.pow(d-f,2),1.5);s+=this.K_matrix[e][c]*(1-this.L_matrix[e][c]*Math.pow(d-f,2)*p),r+=this.K_matrix[e][c]*(this.L_matrix[e][c]*(h-u)*(d-f)*p),a+=this.K_matrix[e][c]*(1-this.L_matrix[e][c]*Math.pow(h-u,2)*p)}}var v=s,y=r,g=t,b=a,m=i,_=(g/v+m/y)/(y/v-b/y),w=-(y*_+g)/v;n[e].x+=w,n[e].y+=_}},{key:"_createL_matrix",value:function(e){var t=this.body.nodeIndices,i=this.springLength;this.L_matrix=[];for(var o=0;o<t.length;o++){this.L_matrix[t[o]]={};for(var n=0;n<t.length;n++)this.L_matrix[t[o]][t[n]]=i*e[t[o]][t[n]]}}},{key:"_createK_matrix",value:function(e){var t=this.body.nodeIndices,i=this.springConstant;this.K_matrix=[];for(var o=0;o<t.length;o++){this.K_matrix[t[o]]={};for(var n=0;n<t.length;n++)this.K_matrix[t[o]][t[n]]=i*Math.pow(e[t[o]][t[n]],-2)}}}]),e}();t["default"]=d},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;i<t.length;i++){var o=t[i];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(e,o.key,o)}}return function(t,i,o){return i&&e(t.prototype,i),o&&e(t,o),t}}(),n=function(){function e(){i(this,e)}return o(e,[{key:"getDistances",value:function(e,t,i){for(var o={},n=e.edges,s=0;s<t.length;s++){o[t[s]]={},o[t[s]]={};for(var r=0;r<t.length;r++)o[t[s]][t[r]]=s==r?0:1e9,o[t[s]][t[r]]=s==r?0:1e9}for(var a=0;a<i.length;a++){var h=n[i[a]];h.connected===!0&&void 0!==o[h.fromId]&&void 0!==o[h.toId]&&(o[h.fromId][h.toId]=1,o[h.toId][h.fromId]=1)}for(var d=t.length,l=0;d>l;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;n<i.length;n++)if(o=i[n],o===t||o.fn===t){i.splice(n,1);break}return this},i.prototype.emit=function(e){this._callbacks=this._callbacks||{};var t=[].slice.call(arguments,1),i=this._callbacks[e];if(i){i=i.slice(0);for(var o=0,n=i.length;n>o;++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<o.length;r++){var a=o[r];a in s||(s[a]={}),s=s[a]}return s[n]=i,e}function E(e,t){var i={};for(var o in e)if(e.hasOwnProperty(o)){var n=t[o];Array.isArray(n)?n.forEach(function(t){O(i,t,e[o])}):"string"==typeof n?O(i,n,e[o]):O(i,o,e[o])}return i}function M(e){var t=i(e),o={nodes:[],edges:[],options:{}};if(t.nodes&&t.nodes.forEach(function(e){var t={id:e.id,label:String(e.label||e.id)};a(t,E(e.attr,D)),t.image&&(t.shape="image"),o.nodes.push(t)}),t.edges){var n=function(e){var t={from:e.from,to:e.to};return a(t,E(e.attr,S)),t.arrows="->"===e.type?"to":void 0,t};t.edges.forEach(function(e){var t,i;t=e.from instanceof Object?e.from.nodes:{id:e.from},i=e.to instanceof Object?e.to.nodes:{id:e.to},e.from instanceof Object&&e.from.edges&&e.from.edges.forEach(function(e){var t=n(e);o.edges.push(t)}),x(t,i,function(t,i){var s=c(o,t.id,i.id,e.type,e.attr),r=n(s);o.edges.push(r)}),e.to instanceof Object&&e.to.edges&&e.to.edges.forEach(function(e){var t=n(e);o.edges.push(t)})})}return t.attr&&(o.options=t.attr),o}var D={fontsize:"font.size",fontcolor:"font.color",labelfontcolor:"font.color",fontname:"font.face",color:["color.border","color.background"],fillcolor:"color.background",tooltip:"title",labeltooltip:"title"},S=Object.create(D);S.color="color.color";var C={NULL:0,DELIMITER:1,IDENTIFIER:2,UNKNOWN:3},T={"{":!0,"}":!0,"[":!0,"]":!0,";":!0,"=":!0,",":!0,"->":!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.length;a++){var h={},d=s[a];h.id=d.id,h.from=d.source,h.to=d.target,h.attributes=d.attributes,h.label=d.label,h.title=void 0!==d.attributes?d.attributes.title:void 0,"Directed"===d.type&&(h.arrows="to"),d.color&&n.inheritColor===!1&&(h.color=d.color),i.push(h)}for(var a=0;a<r.length;a++){var l={},c=r[a];l.id=c.id,l.attributes=c.attributes,l.title=c.title,l.x=c.x,l.y=c.y,l.label=c.label,l.title=void 0!==c.attributes?c.attributes.title:void 0,n.nodes.parseColor===!0?l.color=c.color:l.color=void 0!==c.color?{background:c.color,border:c.color,highlight:{background:c.color,border:c.color},hover:{background:c.color,border:c.color}}:void 0,l.size=c.size,l.fixed=n.nodes.fixed&&void 0!==c.x&&void 0!==c.y,o.push(l)}return{nodes:o,edges:i}}t.parseGephi=i},function(e,t,i){function o(e){this.active=!1,this.dom={container:e},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 t=this,i=["tap","doubletap","press","pinch","pan","panstart","panmove","panend"];i.forEach(function(e){t.hammer.on(e,function(e){e.stopPropagation()})}),document&&document.body&&(this.onClick=function(i){n(i.target,e)||t.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(e,t){for(;e;){if(e===t)return!0;e=e.parentNode}return!1}var s=i(65),r=i(76),a=i(58),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(e){this.activate(),e.stopPropagation()},e.exports=o},function(e,t){t.en={edit:"Edit",del:"Delete selected",back:"Back",addNode:"Add Node",addEdge:"Add Edge",editNode:"Edit Node",editEdge:"Edit Edge",addDescription:"Click in an empty space to place a new node.",edgeDescription:"Click on a node and drag the edge to another node to connect them.",editEdgeDescription:"Click on the control points and drag them to a node to connect to it.",createEdgeError:"Cannot link edges to a cluster.",deleteClusterError:"Clusters cannot be deleted.",editClusterError:"Clusters cannot be edited."},t.en_EN=t.en,t.en_US=t.en,t.de={edit:"Editieren",del:"Lösche Auswahl",back:"Zurück",addNode:"Knoten hinzufügen",addEdge:"Kante hinzufügen",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."},t.de_DE=t.de,t.es={edit:"Editar",del:"Eliminar selección",back:"Átras",addNode:"Añadir nodo",addEdge:"Añadir arista",editNode:"Editar nodo",editEdge:"Editar arista",addDescription:"Haga clic en un lugar vacío 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.",deleteClusterError:"No es posible eliminar grupos.",editClusterError:"No es posible editar grupos."},t.es_ES=t.es,t.nl={edit:"Wijzigen",del:"Selectie verwijderen",back:"Terug",addNode:"Node toevoegen",addEdge:"Link toevoegen",editNode:"Node wijzigen",editEdge:"Link wijzigen",addDescription:"Klik op een leeg gebied om een nieuwe node te maken.",edgeDescription:"Klik op een node en sleep de link naar een andere node om ze te verbinden.",editEdgeDescription:"Klik op de verbindingspunten en sleep ze naar een node om daarmee te verbinden.",createEdgeError:"Kan geen link maken naar een cluster.",deleteClusterError:"Clusters kunnen niet worden verwijderd.",editClusterError:"Clusters kunnen niet worden aangepast."},t.nl_NL=t.nl,t.nl_BE=t.nl}])}); \ No newline at end of file
diff --git a/www/lib/vis/dist/vis-timeline-graph2d.min.js b/www/lib/vis/dist/vis-timeline-graph2d.min.js
new file mode 100644
index 00000000..e9eb0af3
--- /dev/null
+++ b/www/lib/vis/dist/vis-timeline-graph2d.min.js
@@ -0,0 +1,39 @@
+/**
+ * vis.js
+ * https://github.com/almende/vis
+ *
+ * A dynamic, browser-based visualization library.
+ *
+ * @version 4.16.1
+ * @date 2016-04-18
+ *
+ * @license
+ * Copyright (C) 2011-2016 Almende B.V, http://almende.com
+ *
+ * Vis.js is dual licensed under both
+ *
+ * * The Apache 2.0 License
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * and
+ *
+ * * The MIT License
+ * http://opensource.org/licenses/MIT
+ *
+ * Vis.js may be distributed under either license.
+ */
+"use strict";!function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?exports.vis=e():t.vis=e()}(this,function(){return function(t){function e(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;i<arguments.length;i++){var o=arguments[i];for(var n in o)t[n]=o[n]}return t},e.extend=function(t,e){for(var i=1;i<arguments.length;i++){var o=arguments[i];for(var n in o)o.hasOwnProperty(n)&&(t[n]=o[n])}return t},e.selectiveExtend=function(t,e,i){if(!Array.isArray(t))throw new Error("Array with property names expected as first argument");for(var o=2;o<arguments.length;o++)for(var n=arguments[o],s=0;s<t.length;s++){var r=t[s];n.hasOwnProperty(r)&&(e[r]=n[r])}return e},e.selectiveDeepExtend=function(t,i,o){var n=arguments.length<=3||void 0===arguments[3]?!1:arguments[3];if(Array.isArray(o))throw new TypeError("Arrays are not supported by deepExtend");for(var s=2;s<arguments.length;s++)for(var r=arguments[s],a=0;a<t.length;a++){var h=t[a];if(r.hasOwnProperty(h))if(o[h]&&o[h].constructor===Object)void 0===i[h]&&(i[h]={}),i[h].constructor===Object?e.deepExtend(i[h],o[h],!1,n):null===o[h]&&void 0!==i[h]&&n===!0?delete i[h]:i[h]=o[h];else{if(Array.isArray(o[h]))throw new TypeError("Arrays are not supported by deepExtend");null===o[h]&&void 0!==i[h]&&n===!0?delete i[h]:i[h]=o[h]}}return i},e.selectiveNotDeepExtend=function(t,i,o){var n=arguments.length<=3||void 0===arguments[3]?!1:arguments[3];if(Array.isArray(o))throw new TypeError("Arrays are not supported by deepExtend");for(var s in o)if(o.hasOwnProperty(s)&&-1==t.indexOf(s))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<o[s].length;r++)i[s].push(o[s][r])}else null===o[s]&&void 0!==i[s]&&n===!0?delete i[s]:i[s]=o[s];return i},e.deepExtend=function(t,i,o,n){for(var s in i)if(i.hasOwnProperty(s)||o===!0)if(i[s]&&i[s].constructor===Object)void 0===t[s]&&(t[s]={}),t[s].constructor===Object?e.deepExtend(t[s],i[s],o):null===i[s]&&void 0!==t[s]&&n===!0?delete t[s]:t[s]=i[s];else if(Array.isArray(i[s])){t[s]=[];for(var r=0;r<i[s].length;r++)t[s].push(i[s][r])}else null===i[s]&&void 0!==t[s]&&n===!0?delete t[s]:t[s]=i[s];return t},e.equalArray=function(t,e){if(t.length!=e.length)return!1;for(var i=0,o=t.length;o>i;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;o<t.length;o++)i.push(t[o]);return i.push(e),i},e.copyArray=function(t){for(var e=[],i=0;i<t.length;i++)e.push(t[i]);return e},e.getAbsoluteLeft=function(t){return t.getBoundingClientRect().left},e.getAbsoluteRight=function(t){return t.getBoundingClientRect().right},e.getAbsoluteTop=function(t){return t.getBoundingClientRect().top},e.addClassName=function(t,e){var i=t.className.split(" ");-1==i.indexOf(e)&&(i.push(e),t.className=i.join(" "))},e.removeClassName=function(t,e){var i=t.className.split(" "),o=i.indexOf(e);-1!=o&&(i.splice(o,1),t.className=i.join(" "))},e.forEach=function(t,e){var i,o;if(Array.isArray(t))for(i=0,o=t.length;o>i;i++)e(t[i],i,t);else for(i in t)t.hasOwnProperty(i)&&e(t[i],i,t)},e.toArray=function(t){var e=[];for(var i in t)t.hasOwnProperty(i)&&e.push(t[i]);return e},e.updateProperty=function(t,e,i){return t[e]!==i?(t[e]=i,!0):!1},e.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;s<t.length;s++)i.hasOwnProperty(t[s])&&"object"==o(i[t[s]])&&(n[t[s]]=e.bridgeObject(i[t[s]]));return n}return null},e.bridgeObject=function(t){if("object"==("undefined"==typeof t?"undefined":o(t))){var i=Object.create(t);for(var n in t)t.hasOwnProperty(n)&&"object"==o(t[n])&&(i[n]=e.bridgeObject(t[n]));return i}return null},e.insertSort=function(t,e){for(var i=0;i<t.length;i++){for(var o=t[i],n=i;n>0&&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;i<t.length;++i)o.push(e(t[i],i));return o}function r(t,e){return Object.prototype.hasOwnProperty.call(t,e)}function a(t,e){for(var i in e)r(e,i)&&(t[i]=e[i]);return r(e,"toString")&&(t.toString=e.toString),r(e,"valueOf")&&(t.valueOf=e.valueOf),t}function h(t,e,i,o){return Lt(t,e,i,o,!0).utc()}function d(){return{empty:!1,unusedTokens:[],unusedInput:[],overflow:-2,charsLeftOver:0,nullInput:!1,invalidMonth:null,invalidFormat:!1,userInvalidated:!1,iso:!1,parsedDateParts:[],meridiem:null}}function l(t){return null==t._pf&&(t._pf=d()),t._pf}function u(t){if(null==t._isValid){var e=l(t),i=ao.call(e.parsedDateParts,function(t){return null!=t});t._isValid=!isNaN(t._d.getTime())&&e.overflow<0&&!e.empty&&!e.invalidMonth&&!e.invalidWeekday&&!e.nullInput&&!e.invalidFormat&&!e.userInvalidated&&(!e.meridiem||e.meridiem&&i),t._strict&&(t._isValid=t._isValid&&0===e.charsLeftOver&&0===e.unusedTokens.length&&void 0===e.bigHour)}return t._isValid}function c(t){var e=h(NaN);return null!=t?a(l(e),t):l(e).userInvalidated=!0,e}function p(t){return void 0===t}function m(t,e){var i,o,n;if(p(e._isAMomentObject)||(t._isAMomentObject=e._isAMomentObject),p(e._i)||(t._i=e._i),p(e._f)||(t._f=e._f),p(e._l)||(t._l=e._l),p(e._strict)||(t._strict=e._strict),p(e._tzm)||(t._tzm=e._tzm),p(e._isUTC)||(t._isUTC=e._isUTC),p(e._offset)||(t._offset=e._offset),p(e._pf)||(t._pf=l(e)),p(e._locale)||(t._locale=e._locale),ho.length>0)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;s<t.length;){for(n=T(t[s]).split("-"),e=n.length,i=T(t[s+1]),i=i?i.split("-"):null;e>0;){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;i<t.length;i++)Yo[t[i]]=o}function tt(t,e){$(t,function(t,i,o,n){o._w=o._w||{},e(t,o._w,o,n)})}function et(t,e,i){null!=e&&r(Yo,t)&&Yo[t](e,i._a,i,t)}function it(t,e){return new Date(Date.UTC(t,e+1,0)).getUTCDate()}function ot(t,e){return o(this._months)?this._months[t.month()]:this._months[Zo.test(e)?"format":"standalone"][t.month()]}function nt(t,e){return o(this._monthsShort)?this._monthsShort[t.month()]:this._monthsShort[Zo.test(e)?"format":"standalone"][t.month()]}function st(t,e,i){var o,n,s,r=t.toLocaleLowerCase();if(!this._monthsParse)for(this._monthsParse=[],this._longMonthsParse=[],this._shortMonthsParse=[],o=0;12>o;++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;i<n.length;i++)s=n[i],o=(a.match(K(s,t))||[])[0],o&&(r=a.substr(0,a.indexOf(o)),r.length>0&&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;n<t._f.length;n++)s=0,e=m({},t),null!=t._useUTC&&(e._useUTC=t._useUTC),e._f=t._f[n],Mt(e),u(e)&&(s+=l(e).charsLeftOver,s+=10*l(e).unusedTokens.length,l(e).score=s,(null==o||o>s)&&(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;n<e.length;++n)e[n].isValid()&&!e[n][t](i)||(i=e[n]);return i}function Yt(){var t=[].slice.call(arguments,0);return Ht("isBefore",t)}function jt(){var t=[].slice.call(arguments,0);return Ht("isAfter",t)}function Gt(t){var e=H(t),i=e.year||0,o=e.quarter||0,n=e.month||0,s=e.week||0,r=e.day||0,a=e.hour||0,h=e.minute||0,d=e.second||0,l=e.millisecond||0;this._milliseconds=+l+1e3*d+6e4*h+1e3*a*60*60,this._days=+r+7*s,this._months=+n+3*o+12*i,this._data={},this._locale=I(),this._bubble()}function zt(t){return t instanceof Gt}function Wt(t,e){V(t,0,0,function(){var t=this.utcOffset(),i="+";return 0>t&&(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()<this.clone().startOf(e).valueOf()):!1}function me(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():this.clone().endOf(e).valueOf()<i.valueOf()):!1}function fe(t,e,i,o){return o=o||"()",("("===o[0]?this.isAfter(t,i):!this.isBefore(t,i))&&(")"===o[1]?this.isBefore(e,i):!this.isAfter(e,i))}function ge(t,e){var i,o=g(t)?t:Ft(t);return this.isValid()&&o.isValid()?(e=F(e||"millisecond"),"millisecond"===e?this.valueOf()===o.valueOf():(i=o.valueOf(),this.clone().startOf(e).valueOf()<=i&&i<=this.clone().endOf(e).valueOf())):!1}function ve(t,e){return this.isSame(t,e)||this.isAfter(t,e)}function ye(t,e){return this.isSame(t,e)||this.isBefore(t,e)}function be(t,e,i){var o,n,s,r;return this.isValid()?(o=Bt(t,this),o.isValid()?(n=6e4*(o.utcOffset()-this.utcOffset()),e=F(e),"year"===e||"month"===e||"quarter"===e?(r=_e(this,o),"quarter"===e?r/=3:"year"===e&&(r/=12)):(s=this-o,r="second"===e?s/1e3:"minute"===e?s/6e4:"hour"===e?s/36e5:"day"===e?(s-n)/864e5:"week"===e?(s-n)/6048e5:s),i?r:v(r)):NaN):NaN}function _e(t,e){var i,o,n=12*(e.year()-t.year())+(e.month()-t.month()),s=t.clone().add(n,"months");return 0>e-s?(i=t.clone().add(n-1,"months"),o=(e-s)/(s-i)):(i=t.clone().add(n+1,"months"),o=(e-s)/(i-s)),-(n+o)||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 0<t.year()&&t.year()<=9999?D(Date.prototype.toISOString)?this.toDate().toISOString():q(t,"YYYY-MM-DD[T]HH:mm:ss.SSS[Z]"):q(t,"YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]")}function De(t){t||(t=this.isUtc()?e.defaultFormatUtc:e.defaultFormat);var i=q(this,t);return this.localeData().postformat(i)}function ke(t,e){return this.isValid()&&(g(t)&&t.isValid()||Ft(t).isValid())?ne({to:this,from:t}).locale(this.locale()).humanize(!e):this.localeData().invalidDate()}function Se(t){return this.from(Ft(),t)}function Ce(t,e){return this.isValid()&&(g(t)&&t.isValid()||Ft(t).isValid())?ne({from:this,to:t}).locale(this.locale()).humanize(!e):this.localeData().invalidDate()}function Oe(t){return this.to(Ft(),t)}function Te(t){var e;return void 0===t?this._locale._abbr:(e=I(t),null!=e&&(this._locale=e),this)}function Me(){return this._locale}function Ee(t){switch(t=F(t)){case"year":this.month(0);case"quarter":case"month":this.date(1);case"week":case"isoWeek":case"day":case"date":this.hours(0);case"hour":this.minutes(0);case"minute":this.seconds(0);case"second":this.milliseconds(0)}return"week"===t&&this.weekday(0),"isoWeek"===t&&this.isoWeekday(1),"quarter"===t&&this.month(3*Math.floor(this.month()/3)),this}function Pe(t){return t=F(t),void 0===t||"millisecond"===t?this:("date"===t&&(t="day"),this.startOf(t).add(1,"isoWeek"===t?"week":t).subtract(1,"ms"))}function Ae(){return this._d.valueOf()-6e4*(this._offset||0)}function Ne(){return Math.floor(this.valueOf()/1e3)}function Ie(){return this._offset?new Date(this.valueOf()):this._d}function Re(){var t=this;return[t.year(),t.month(),t.date(),t.hour(),t.minute(),t.second(),t.millisecond()]}function Le(){var t=this;return{years:t.year(),months:t.month(),date:t.date(),hours:t.hours(),minutes:t.minutes(),seconds:t.seconds(),milliseconds:t.milliseconds()}}function Fe(){return this.isValid()?this.toISOString():null}function He(){return u(this)}function Ye(){return a({},l(this))}function je(){return l(this).overflow}function Ge(){return{input:this._i,format:this._f,locale:this._locale,isUTC:this._isUTC,strict:this._strict}}function ze(t,e){V(0,[t,t.length],0,e)}function We(t){return qe.call(this,t,this.week(),this.weekday(),this.localeData()._week.dow,this.localeData()._week.doy)}function Ve(t){return qe.call(this,t,this.isoWeek(),this.isoWeekday(),1,4)}function Be(){return kt(this.year(),1,4)}function Ue(){var t=this.localeData()._week;return kt(this.year(),t.dow,t.doy)}function qe(t,e,i,o,n){var s;return null==t?Dt(this,o,n).year:(s=kt(t,o,n),e>s&&(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<os.s&&["s",n]||1>=s&&["m"]||s<os.m&&["mm",s]||1>=r&&["h"]||r<os.h&&["hh",r]||1>=a&&["d"]||a<os.d&&["dd",a]||1>=h&&["M"]||h<os.M&&["MM",h]||1>=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<this.length;++e)if(this[e]===t)return e;return-1},V("M",["MM",2],"Mo",function(){return this.month()+1}),V("MMM",0,0,function(t){return this.localeData().monthsShort(this,t)}),V("MMMM",0,0,function(t){return this.localeData().months(this,t)}),L("month","M"),Z("M",Co),Z("MM",Co,xo),Z("MMM",function(t,e){return e.monthsShortRegex(t)}),Z("MMMM",function(t,e){return e.monthsRegex(t)}),$(["M","MM"],function(t,e){e[Go]=y(t)-1}),$(["MMM","MMMM"],function(t,e,i,o){var n=i._locale.monthsParse(t,o,i._strict);null!=n?e[Go]=n:l(i).invalidMonth=t});var Zo=/D[oD]?(\[[^\[\]]*\]|\s+)+MMMM?/,Ko="January_February_March_April_May_June_July_August_September_October_November_December".split("_"),Jo="Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),Qo=Fo,$o=Fo,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)?)?/,en=/^\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)?/,nn=[["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}/]],sn=[["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/]],rn=/^\/?Date\((\-?\d+)/i;e.createFromInputFallback=w("moment construction falls back to js Date. This is discouraged and will be removed in upcoming major release. Please refer to https://github.com/moment/moment/issues/1407 for more info.",function(t){t._d=new Date(t._i+(t._useUTC?" UTC":""))}),V("Y",0,0,function(){var t=this.year();return 9999>=t?""+t:"+"+t}),V(0,["YY",2],0,function(){return this.year()%100}),V(0,["YYYY",4],0,"year"),V(0,["YYYYY",5],0,"year"),V(0,["YYYYYY",6,!0],0,"year"),L("year","y"),Z("Y",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;i<t[e].redundant.length;i++)t[e].redundant[i].parentNode.removeChild(t[e].redundant[i]);t[e].redundant=[]}},e.resetElements=function(t){e.prepareElements(t),e.cleanupElements(t),e.prepareElements(t)},e.getSVGElement=function(t,e,i){var o;return e.hasOwnProperty(t)?e[t].redundant.length>0?(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;s<e.replace.length;s++){var r=e.replace[s];n.push({name:r,original:t[r]}),o.replace(t,r)}return o._extended={object:t,methods:n},o},i.prototype.destroy=function(){if(this.flush(),this._extended){for(var t=this._extended.object,e=this._extended.methods,i=0;i<e.length;i++){var o=e[i];o.original?t[o.name]=o.original:delete t[o.name]}this._extended=null}},i.prototype.replace=function(t,e){var i=this,o=t[e];if(!o)throw new Error("Method "+e+" undefined");t[e]=function(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];i.queue({args:t,fn:o,context:this})}},i.prototype.queue=function(t){"function"==typeof t?this._queue.push({fn:t}):this._queue.push(t),this._flushIfNeeded()},i.prototype._flushIfNeeded=function(){if(this._queue.length>this.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;i<e.length;i++){var o=e[i];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(t,o.key,o)}}return function(e,i,o){return i&&t(e.prototype,i),o&&t(e,o),e}}(),a=i(13),h=o(a),d=i(1),l=function(){function t(e,i,o){var s=arguments.length<=3||void 0===arguments[3]?1:arguments[3];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&&-1===e.indexOf(n)||(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;t<this.domElements.length;t++)this.wrapper.appendChild(this.domElements[t]);this._showPopupIfNeeded()}},{key:"_clean",value:function(){for(var t=0;t<this.domElements.length;t++)this.wrapper.removeChild(this.domElements[t]);void 0!==this.wrapper&&(this.container.removeChild(this.wrapper),this.wrapper=void 0),this.domElements=[],this._removePopup()}},{key:"_getValue",value:function(t){for(var e=this.moduleOptions,i=0;i<t.length;i++){if(void 0===e[t[i]]){e=void 0;break}e=e[t[i]]}return e}},{key:"_makeItem",value:function(t){var e=arguments,i=this;if(this.allowCreation===!0){var o,n,r,a=function(){var s=document.createElement("div");for(s.className="vis-configuration vis-config-item vis-config-s"+t.length,o=e.length,n=Array(o>1?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="<i><b>"+t+":</b></i>":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;s<t.length;s++){var r=document.createElement("option");r.value=t[s],s===n&&(r.selected="selected"),r.innerHTML=t[s],o.appendChild(r)}var a=this;o.onchange=function(){a._update(this.value,i)};var h=this._makeLabel(i[i.length-1],i);this._makeItem(i,h,o)}},{key:"_makeRange",value:function(t,e,i){var o=t[0],n=t[1],s=t[2],r=t[3],a=document.createElement("input");a.className="vis-configuration vis-config-range";try{a.type="range",a.min=n,a.max=s}catch(h){}a.step=r;var d="",l=0;if(void 0!==e){var u=1.2;0>e&&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.popupCounter<this.popupLimit){var o=document.createElement("div");o.id="vis-configuration-popup",o.className="vis-configuration-popup",o.innerHTML=t,o.onclick=function(){i._removePopup()},this.popupCounter+=1,this.popupDiv={html:o,index:e}}}},{key:"_removePopup",value:function(){void 0!==this.popupDiv.html&&(this.popupDiv.html.parentNode.removeChild(this.popupDiv.html),clearTimeout(this.popupDiv.hideTimeout),clearTimeout(this.popupDiv.deleteTimeout),this.popupDiv={})}},{key:"_showPopupIfNeeded",value:function(){var t=this;if(void 0!==this.popupDiv.html){var e=this.domElements[this.popupDiv.index],i=e.getBoundingClientRect();this.popupDiv.html.style.left=i.left+"px",this.popupDiv.html.style.top=i.top-30+"px",document.body.appendChild(this.popupDiv.html),this.popupDiv.hideTimeout=setTimeout(function(){t.popupDiv.html.style.opacity=0},1500),this.popupDiv.deleteTimeout=setTimeout(function(){t._removePopup()},1800)}}},{key:"_makeCheckbox",value:function(t,e,i){var o=document.createElement("input");o.type="checkbox",o.className="vis-configuration vis-config-checkbox",o.checked=t,void 0!==e&&(o.checked=e,e!==t&&("object"===("undefined"==typeof t?"undefined":s(t))?e!==t.enabled&&this.changedOptions.push({path:i,value:e}):this.changedOptions.push({path:i,value:e})));var n=this;o.onchange=function(){n._update(this.checked,i)};var r=this._makeLabel(i[i.length-1],i);this._makeItem(i,r,o)}},{key:"_makeTextInput",value:function(t,e,i){var o=document.createElement("input");o.type="text",o.className="vis-configuration vis-config-text",o.value=e,e!==t&&this.changedOptions.push({path:i,value:e});var n=this;o.onchange=function(){n._update(this.value,i)};var s=this._makeLabel(i[i.length-1],i);this._makeItem(i,s,o)}},{key:"_makeColorField",value:function(t,e,i){var o=this,n=t[1],s=document.createElement("div");e=void 0===e?n:e,"none"!==e?(s.className="vis-configuration vis-config-colorBlock",s.style.backgroundColor=e):s.className="vis-configuration vis-config-colorBlock none",e=void 0===e?n:e,s.onclick=function(){o._showColorPicker(e,s,i)};var r=this._makeLabel(i[i.length-1],i);this._makeItem(i,r,s)}},{key:"_showColorPicker",value:function(t,e,i){var o=this;e.onclick=function(){},this.colorPicker.insertTo(e),this.colorPicker.show(),this.colorPicker.setColor(t),this.colorPicker.setUpdateCallback(function(t){var n="rgba("+t.r+","+t.g+","+t.b+","+t.a+")";e.style.backgroundColor=n,o._update(n,i)}),this.colorPicker.setCloseCallback(function(){e.onclick=function(){o._showColorPicker(t,e,i)}})}},{key:"_handleObject",value:function(t){var e=arguments.length<=1||void 0===arguments[1]?[]:arguments[1],i=arguments.length<=2||void 0===arguments[2]?!1: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(-1!==e.indexOf("physics")&&this.moduleOptions.physics.solver!==r&&(u=!1),u===!0)if(void 0!==a.enabled){var c=d.copyAndExtendArray(h,"enabled"),p=this._getValue(c);if(p===!0){var m=this._makeLabel(r,h,!0);this._makeItem(h,m),s=this._handleObject(a,h)||s}else this._makeCheckbox(a,p,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?!0:t,t="false"===t?!1:t;for(var n=0;n<e.length;n++)"global"!==e[n]&&(void 0===o[e[n]]&&(o[e[n]]={}),n!==e.length-1?o=o[e[n]]:o[e[n]]=t);return i}},{key:"_printOptions",value:function(){var t=this.getOptions();this.optionsContainer.innerHTML="<pre>var options = "+JSON.stringify(t,null,2)+"</pre>"}},{key:"getOptions",value:function(){for(var t={},e=0;e<this.changedOptions.length;e++)this._constructOptions(this.changedOptions[e].value,this.changedOptions[e].path,t);return t}}]),t}();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){for(var i=0;i<e.length;i++){var o=e[i];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(t,o.key,o)}}return function(e,i,o){return i&&t(e.prototype,i),o&&t(e,o),e}}(),s=i(14),r=i(17),a=i(1),h=function(){function t(){var e=arguments.length<=0||void 0===arguments[0]?1:arguments[0];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"};return"string"==typeof t?e[t]:void 0}},{key:"setColor",value:function(t){var e=arguments.length<=1||void 0===arguments[1]?!0: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]?!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]?!0: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]?this.color:arguments[0],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(i){}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(i){}this.brightnessRange.value="100",this.brightnessRange.className="vis-range",this.opacityDiv.appendChild(this.opacityRange),this.brightnessDiv.appendChild(this.brightnessRange);var o=this;this.opacityRange.onchange=function(){o._setOpacity(this.value)},this.opacityRange.oninput=function(){o._setOpacity(this.value)},this.brightnessRange.onchange=function(){o._setBrightness(this.value)},this.brightnessRange.oninput=function(){o._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;360>s;s++)for(r=0;r<this.r;r++)o=this.centerCoordinates.x+r*Math.sin(h*s),n=this.centerCoordinates.y+r*Math.cos(h*s),u=a.HSVToRGB(s*d,r*l,1),t.fillStyle="rgb("+u.r+","+u.g+","+u.b+")",t.fillRect(o-.5,n-.5,2,2);t.strokeStyle="rgba(0,0,0,1)",t.circle(this.centerCoordinates.x,this.centerCoordinates.y,this.r),t.stroke(),this.hueCircle=t.getImageData(0,0,e,i)}this.generated=!0}},{key:"_moveSelector",value:function(t){var e=this.colorPickerDiv.getBoundingClientRect(),i=t.center.x-e.left,o=t.center.y-e.top,n=.5*this.colorPickerDiv.clientHeight,s=.5*this.colorPickerDiv.clientWidth,r=i-s,h=o-n,d=Math.atan2(r,h),l=.98*Math.min(Math.sqrt(r*r+h*h),s),u=Math.cos(d)*l+n,c=Math.sin(d)*l+s;this.colorPickerSelector.style.top=u-.5*this.colorPickerSelector.clientHeight+"px",this.colorPickerSelector.style.left=c-.5*this.colorPickerSelector.clientWidth+"px";var p=d/(2*Math.PI);p=0>p?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;a<s.length;a++)if(r=s[a]._handlers[e.type])for(var h=0;h<r.length&&!i;h++)r[h](e);n=n.parentNode}}var r=o||{preventDefault:!1};if(i.Manager){var a=i,h=function(t,i){var o=Object.create(r);return i&&a.assign(o,i),e(new a(t,o),o)};return a.assign(h,a),h.Manager=function(t,i){var o=Object.create(r);return i&&a.assign(o,i),e(new a.Manager(t,o),o)},h}var d=Object.create(i),l=i.element;return l.hammer||(l.hammer=[]),l.hammer.push(d),i.on("hammer.input",function(e){r.preventDefault!==!0&&r.preventDefault!==e.pointerType||e.preventDefault(),e.isFirst&&(t=e.target)}),d._handlers={},d.on=function(t,e){return n(t).forEach(function(t){var o=d._handlers[t];o||(d._handlers[t]=o=[],i.on(t,s)),o.push(e)}),d},d.off=function(t,e){return n(t).forEach(function(t){var o=d._handlers[t];o&&(o=e?o.filter(function(t){return t!==e}):[],o.length>0?d._handlers[t]=o:(i.off(t,s),delete d._handlers[t]))}),d},d.emit=function(e,o){t=o.target,i.emit(e,o)},d.destroy=function(){var t=i.element.hammer,e=t.indexOf(d);-1!==e&&t.splice(e,1),t.length||delete i.element.hammer,d._handlers={},i.destroy()},d}})},function(t,e,i){var o;/*! Hammer.JS - v2.0.6 - 2015-12-23
+ * http://hammerjs.github.io/
+ *
+ * Copyright (c) 2015 Jorik Tangelder;
+ * Licensed under the license */
+!function(n,s,r,a){function h(t,e,i){return setTimeout(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<t.length;)e.call(i,t[o],o,t),o++;else for(o in t)t.hasOwnProperty(o)&&e.call(i,t[o],o,t)}function u(t,e,i){var o="DEPRECATED METHOD: "+e+"\n"+i+" AT \n";return function(){var e=new Error("get-stack-trace"),i=e&&e.stack?e.stack.replace(/^[^\(]+?[\n$]/gm,"").replace(/^\s+at\s+/gm,"").replace(/^Object.<anonymous>\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;o<t.length;){if(i&&t[o][i]==e||!i&&t[o]===e)return o;o++}return-1}function x(t){return Array.prototype.slice.call(t,0)}function D(t,e,i){for(var o=[],n=[],s=0;s<t.length;){var r=e?t[s][e]:t[s];w(n,r)<0&&o.push(t[s]),n[s]=r,s++}return i&&(o=e?o.sort(function(t,i){return t[e]>i[e]}):o.sort()),o}function k(t,e){for(var i,o,n=e[0].toUpperCase()+e.slice(1),s=0;s<ct.length;){if(i=ct[s],o=i?i+n:e,o in t)return o;s++}return a}function S(){return _t++}function C(t){var e=t.ownerDocument||t;return e.defaultView||e.parentWindow||n}function O(t,e){var i=this;this.manager=t,this.callback=e,this.element=t.element,this.target=t.options.inputTarget,this.domHandler=function(e){m(t.options.enable,[t])&&i.handler(e)},this.init()}function T(t){var e,i=t.options.inputClass;return new(e=i?i:Dt?z:kt?B:xt?q:G)(t,M)}function M(t,e,i){var o=i.pointers.length,n=i.changedPointers.length,s=e&Et&&o-n===0,r=e&(At|Nt)&&o-n===0;i.isFirst=!!s,i.isFinal=!!r,s&&(t.session={}),i.eventType=e,E(t,i),t.emit("hammer.input",i),t.recognize(i),t.session.prevInput=i}function E(t,e){var i=t.session,o=e.pointers,n=o.length;i.firstInput||(i.firstInput=N(e)),n>1&&!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;i<t.pointers.length;)e[i]={clientX:ft(t.pointers[i].clientX),clientY:ft(t.pointers[i].clientY)},i++;return{timeStamp:vt(),pointers:e,center:I(e),deltaX:t.deltaX,deltaY:t.deltaY}}function I(t){var e=t.length;if(1===e)return{x:ft(t[0].clientX),y:ft(t[0].clientY)};for(var i=0,o=0,n=0;e>n;)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;n<s.length;)o[s[n].identifier]=!0,n++;for(n=0;n<r.length;)o[r[n].identifier]&&a.push(r[n]),e&(At|Nt)&&delete o[r[n].identifier],n++;return a.length?[D(s.concat(a),"identifier",!0),a]:void 0}function q(){O.apply(this,arguments);var t=p(this.handler,this);this.touch=new B(this.manager,t),this.mouse=new G(this.manager,t)}function X(t,e){this.manager=t,this.set(e)}function Z(t){if(b(t,ae))return ae;var e=b(t,he),i=b(t,de);return e&&i?ae:e||i?e?he:de:b(t,re)?re:se}function K(t){this.options=ut({},this.defaults,t||{}),this.id=S(),this.manager=null,this.options.enable=f(this.options.enable,!0),this.state=le,this.simultaneous={},this.requireFail=[]}function J(t){return t&fe?"cancel":t&pe?"end":t&ce?"move":t&ue?"start":""}function Q(t){return t==Ht?"down":t==Ft?"up":t==Rt?"left":t==Lt?"right":""}function $(t,e){var i=e.manager;return i?i.get(t):t}function tt(){K.apply(this,arguments)}function et(){tt.apply(this,arguments),this.pX=null,this.pY=null}function it(){tt.apply(this,arguments)}function ot(){K.apply(this,arguments),this._timer=null,this._input=null}function nt(){tt.apply(this,arguments)}function st(){tt.apply(this,arguments)}function rt(){K.apply(this,arguments),this.pTime=!1,this.pCenter=!1,this._timer=null,this._input=null,this.count=0}function at(t,e){return e=e||{},e.recognizers=f(e.recognizers,at.defaults.preset),new ht(t,e)}function ht(t,e){this.options=ut({},at.defaults,e||{}),this.options.inputTarget=this.options.inputTarget||t,this.handlers={},this.session={},this.recognizers=[],this.element=t,this.input=T(this),this.touchAction=new X(this,this.options.touchAction),dt(this,!0),l(this.options.recognizers,function(t){var e=this.add(new t[0](t[1]));t[2]&&e.recognizeWith(t[2]),t[3]&&e.requireFailure(t[3])},this)}function dt(t,e){var i=t.element;i.style&&l(t.options.cssProps,function(t,o){i.style[k(i.style,o)]=e?t:""})}function lt(t,e){var i=s.createEvent("Event");i.initEvent(t,!0,!0),i.gesture=e,e.target.dispatchEvent(i)}var ut,ct=["","webkit","Moz","MS","ms","o"],pt=s.createElement("div"),mt="function",ft=Math.round,gt=Math.abs,vt=Date.now;ut="function"!=typeof Object.assign?function(t){if(t===a||null===t)throw new TypeError("Cannot convert undefined or null to object");for(var e=Object(t),i=1;i<arguments.length;i++){var o=arguments[i];if(o!==a&&null!==o)for(var n in o)o.hasOwnProperty(n)&&(e[n]=o[n])}return e}:Object.assign;var yt=u(function(t,e,i){for(var o=Object.keys(e),n=0;n<o.length;)(!i||i&&t[o[n]]===a)&&(t[o[n]]=e[o[n]]),n++;return t},"extend","Use `assign`."),bt=u(function(t,e){return yt(t,e,!0)},"merge","Use `assign`."),_t=1,wt=/mobile|tablet|ip(ad|hone|od)|android/i,xt="ontouchstart"in n,Dt=k(n,"PointerEvent")!==a,kt=xt&&wt.test(navigator.userAgent),St="touch",Ct="pen",Ot="mouse",Tt="kinect",Mt=25,Et=1,Pt=2,At=4,Nt=8,It=1,Rt=2,Lt=4,Ft=8,Ht=16,Yt=Rt|Lt,jt=Ft|Ht,Gt=Yt|jt,zt=["x","y"],Wt=["clientX","clientY"];O.prototype={handler:function(){},init:function(){this.evEl&&g(this.element,this.evEl,this.domHandler),this.evTarget&&g(this.target,this.evTarget,this.domHandler),this.evWin&&g(C(this.element),this.evWin,this.domHandler)},destroy:function(){this.evEl&&v(this.element,this.evEl,this.domHandler),this.evTarget&&v(this.target,this.evTarget,this.domHandler),this.evWin&&v(C(this.element),this.evWin,this.domHandler)}};var Vt={mousedown:Et,mousemove:Pt,mouseup:At},Bt="mousedown",Ut="mousemove mouseup";c(G,O,{handler:function(t){var e=Vt[t.type];e&Et&&0===t.button&&(this.pressed=!0),e&Pt&&1!==t.which&&(e=At),this.pressed&&this.allow&&(e&At&&(this.pressed=!1),this.callback(this.manager,e,{pointers:[t],changedPointers:[t],pointerType:Ot,srcEvent:t}))}});var qt={pointerdown:Et,pointermove:Pt,pointerup:At,pointercancel:Nt,pointerout:Nt},Xt={2:St,3:Ct,4:Ot,5:Tt},Zt="pointerdown",Kt="pointermove pointerup pointercancel";n.MSPointerEvent&&!n.PointerEvent&&(Zt="MSPointerDown",Kt="MSPointerMove MSPointerUp MSPointerCancel"),c(z,O,{handler:function(t){var e=this.store,i=!1,o=t.type.toLowerCase().replace("ms",""),n=qt[o],s=Xt[t.pointerType]||t.pointerType,r=s==St,a=w(e,t.pointerId,"pointerId");n&Et&&(0===t.button||r)?0>a&&(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;t<this.requireFail.length;){if(!(this.requireFail[t].state&(ge|le)))return!1;t++}return!0},recognize:function(t){var e=ut({},t);return m(this.options.enable,[this,e])?(this.state&(me|fe|ge)&&(this.state=le),this.state=this.process(e),void(this.state&(ue|ce|pe|fe)&&this.tryEmit(e))):(this.reset(),void(this.state=ge))},process:function(t){},getTouchAction:function(){},reset:function(){}},c(tt,K,{defaults:{pointers:1},attrTest:function(t){var e=this.options.pointers;return 0===e||t.pointers.length===e},process:function(t){var e=this.state,i=t.eventType,o=e&(ue|ce),n=this.attrTest(t);return o&&(i&Nt||!n)?e|fe:o||n?i&At?e|pe:e&ue?e|ce:ue:ge}}),c(et,tt,{defaults:{event:"pan",threshold:10,pointers:1,direction:Gt},getTouchAction:function(){var t=this.options.direction,e=[];return t&Yt&&e.push(de),t&jt&&e.push(he),e},directionTest:function(t){var e=this.options,i=!0,o=t.distance,n=t.direction,s=t.deltaX,r=t.deltaY;return n&e.direction||(e.direction&Yt?(n=0===s?It:0>s?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.distance<e.threshold,n=t.deltaTime>e.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&&gt(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.distance<e.threshold,n=t.deltaTime<e.time;if(this.reset(),t.eventType&Et&&0===this.count)return this.failTimeout();if(o&&n&&i){if(t.eventType!=At)return this.failTimeout();var s=this.pTime?t.timeStamp-this.pTime<e.interval:!0,r=!this.pCenter||F(this.pCenter,t.center)<e.posThreshold;this.pTime=t.timeStamp,this.pCenter=t.center,r&&s?this.count+=1:this.count=1,this._input=t;var a=this.count%e.taps;if(0===a)return this.hasRequireFailures()?(this._timer=h(function(){this.state=me,this.tryEmit()},e.interval,this),ue):me}return ge},failTimeout:function(){return this._timer=h(function(){this.state=ge},this.options.interval,this),ge},reset:function(){clearTimeout(this._timer)},emit:function(){this.state==me&&(this._input.tapCount=this.count,this.manager.emit(this.options.event,this._input))}}),at.VERSION="2.0.6",at.defaults={domEvents:!1,touchAction:ne,enable:!0,inputTarget:null,inputClass:null,preset:[[nt,{enable:!1}],[it,{enable:!1},["rotate"]],[st,{direction:Yt}],[et,{direction:Yt},["swipe"]],[rt],[rt,{event:"doubletap",taps:2},["tap"]],[ot]],cssProps:{userSelect:"none",touchSelect:"none",touchCallout:"none",contentZooming:"none",userDrag:"none",tapHighlightColor:"rgba(0,0,0,0)"}};var ve=1,ye=2;ht.prototype={set:function(t){return ut(this.options,t),t.touchAction&&this.touchAction.update(),t.inputTarget&&(this.input.destroy(),this.input.target=t.inputTarget,this.input.init()),this},stop:function(t){this.session.stopped=t?ye:ve},recognize:function(t){var e=this.session;if(!e.stopped){this.touchAction.preventDefaults(t);var i,o=this.recognizers,n=e.curRecognizer;(!n||n&&n.state&me)&&(n=e.curRecognizer=null);for(var s=0;s<o.length;)i=o[s],e.stopped===ye||n&&i!=n&&!i.canRecognizeWith(n)?i.reset():i.recognize(t),!n&&i.state&(ue|ce|pe)&&(n=e.curRecognizer=i),s++}},get:function(t){if(t instanceof K)return t;for(var e=this.recognizers,i=0;i<e.length;i++)if(e[i].options.event==t)return e[i];return null},add:function(t){if(d(t,"add",this))return this;var e=this.get(t.options.event);return e&&this.remove(e),this.recognizers.push(t),t.manager=this,this.touchAction.update(),t},remove:function(t){if(d(t,"remove",this))return this;if(t=this.get(t)){var e=this.recognizers,i=w(e,t);-1!==i&&(e.splice(i,1),this.touchAction.update())}return this},on:function(t,e){var i=this.handlers;return l(_(t),function(t){i[t]=i[t]||[],i[t].push(e)}),this},off:function(t,e){var i=this.handlers;return l(_(t),function(t){e?i[t]&&i[t].splice(w(i[t],e),1):delete i[t]}),this},emit:function(t,e){this.options.domEvents&&lt(t,e);var i=this.handlers[t]&&this.handlers[t].slice();if(i&&i.length){e.type=t,e.preventDefault=function(){e.srcEvent.preventDefault()};for(var o=0;o<i.length;)i[o](e),o++}},destroy:function(){this.element&&dt(this,!1),this.handlers={},this.session={},this.input.destroy(),this.element=null}},ut(at,{INPUT_START:Et,INPUT_MOVE:Pt,INPUT_END:At,INPUT_CANCEL:Nt,STATE_POSSIBLE:le,STATE_BEGAN:ue,STATE_CHANGED:ce,STATE_ENDED:pe,STATE_RECOGNIZED:me,STATE_CANCELLED:fe,STATE_FAILED:ge,DIRECTION_NONE:It,DIRECTION_LEFT:Rt,DIRECTION_RIGHT:Lt,DIRECTION_UP:Ft,DIRECTION_DOWN:Ht,DIRECTION_HORIZONTAL:Yt,DIRECTION_VERTICAL:jt,DIRECTION_ALL:Gt,Manager:ht,Input:O,TouchAction:X,TouchInput:B,MouseInput:G,PointerEventInput:z,TouchMouseInput:q,SingleTouchInput:W,Recognizer:K,AttrRecognizer:tt,Tap:rt,Pan:et,Swipe:st,Pinch:it,Rotate:nt,Press:ot,on:g,off:v,each:l,merge:bt,extend:yt,assign:ut,inherit:c,bindFn:p,prefixed:k});var be="undefined"!=typeof n?n:"undefined"!=typeof self?self:{};be.Hammer=at,o=function(){return at}.call(e,i,e,t),!(o!==a&&(t.exports=o))}(window,document,"Hammer")},function(t,e,i){i(14);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;i<e.length;i++){var o=e[i];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(t,o.key,o)}}return function(e,i,o){return i&&t(e.prototype,i),o&&t(e,o),e}}(),r=i(1),a=!1,h=void 0,d="background: #FFeeee; color: #dd0000",l=function(){function t(){o(this,t)}return s(t,null,[{key:"validate",value:function(e,i,o){a=!1,h=i;var n=i;return void 0!==o&&(n=i[o]),t.parse(e,n,[]),a}},{key:"parse",value:function(e,i,o){for(var n in e)e.hasOwnProperty(n)&&t.check(n,e,i,o)}},{key:"check",value:function(e,i,o,n){void 0===o[e]&&void 0===o.__any__?t.getSuggestion(e,o,n):void 0===o[e]&&void 0!==o.__any__?"object"===t.getType(i[e])&&void 0!==o.__any__.__type__?t.checkFields(e,i,o,"__any__",o.__any__.__type__,n):t.checkFields(e,i,o,"__any__",o.__any__,n):void 0!==o[e].__type__?t.checkFields(e,i,o,e,o[e].__type__,n):t.checkFields(e,i,o,e,o[e],n)}},{key:"checkFields",value:function(e,i,o,n,s,h){var l=t.getType(i[e]),u=s[l];void 0!==u?"array"===t.getType(u)&&-1===u.indexOf(i[e])?(console.log('%cInvalid option detected in "'+e+'". Allowed values are:'+t.print(u)+' not "'+i[e]+'". '+t.printLocation(h,e),d),a=!0):"object"===l&&"__any__"!==n&&(h=r.copyAndExtendArray(h,e),t.parse(i[e],o[n],h)):void 0===s.any&&(console.log('%cInvalid type received for "'+e+'". Expected: '+t.print(Object.keys(s))+". Received ["+l+'] "'+i[e]+'"'+t.printLocation(h,e),d),a=!0)}},{key:"getType",value: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":void 0!==t.nodeType?"dom":t._isAMomentObject===!0?"moment":"object":"number"===e?"number":"boolean"===e?"boolean":"string"===e?"string":void 0===e?"undefined":e}},{key:"getSuggestion",value:function(e,i,o){var n=t.findInOptions(e,i,o,!1),s=t.findInOptions(e,h,[],!0),r=8,l=4;void 0!==n.indexMatch?console.log('%cUnknown option detected: "'+e+'" in '+t.printLocation(n.path,e,"")+'Perhaps it was incomplete? Did you mean: "'+n.indexMatch+'"?\n\n',d):s.distance<=l&&n.distance>s.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;n<t.length;n++){for(var s=0;n+1>s;s++)o+=" ";o+=t[n]+": {\n"}for(var r=0;r<t.length+1;r++)o+=" ";o+=e+"\n";for(var a=0;a<t.length+1;a++){for(var h=0;h<t.length-a;h++)o+=" ";o+="}\n"}return o+"\n\n"}},{key:"print",value:function(t){return JSON.stringify(t).replace(/(\")|(\[)|(\])|(,"__type__")/g,"").replace(/(\,)/g,", ")}},{key:"levenshteinDistance",value:function(t,e){if(0===t.length)return e.length;if(0===e.length)return t.length;var i,o=[];for(i=0;i<=e.length;i++)o[i]=[i];var n;for(n=0;n<=t.length;n++)o[0][n]=n;for(i=1;i<=e.length;i++)for(n=1;n<=t.length;n++)e.charAt(i-1)==t.charAt(n-1)?o[i][n]=o[i-1][n-1]:o[i][n]=Math.min(o[i-1][n-1]+1,Math.min(o[i][n-1]+1,o[i-1][n]+1));return o[e.length][t.length]}}]),t}();e["default"]=l,e.printStyle=d},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;n<i.length;n++)if(o=i[n],o===e||o.fn===e){i.splice(n,1);break}return this},i.prototype.emit=function(t){this._callbacks=this._callbacks||{};var e=[].slice.call(arguments,1),i=this._callbacks[t];if(i){i=i.slice(0);for(var o=0,n=i.length;n>o;++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&&n<this.end?(o=this.start,n=this.end):(i=h-(n-o),o-=i/2,n+=i/2))}if(null!==this.options.zoomMax){var d=parseFloat(this.options.zoomMax);0>d&&(d=0),n-o>d&&(this.end-this.start===d&&o<this.start&&n>this.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<o.length;n++)if(void 0===o[n].repeat){var s={};s.start=t(o[n].start).toDate().valueOf(),s.end=t(o[n].end).toDate().valueOf(),i.hiddenDates.push(s)}i.hiddenDates.sort(function(t,e){return t.start-e.start})}},e.updateHiddenDates=function(t,i,o){if(o&&!Array.isArray(o))return e.updateHiddenDates(t,i,[o]);if(o&&void 0!==i.domProps.centerContainer.width){e.convertHiddenOptions(t,i,o);for(var n=t(i.range.start),s=t(i.range.end),r=i.range.end-i.range.start,a=r/i.domProps.centerContainer.width,h=0;h<o.length;h++)if(void 0!==o[h].repeat){var d=t(o[h].start),l=t(o[h].end);if("Invalid Date"==d._d)throw new Error("Supplied start date is not valid: "+o[h].start);if("Invalid Date"==l._d)throw new Error("Supplied end date is not valid: "+o[h].end);var u=l-d;if(u>=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.length;o++)for(var n=0;n<e.length;n++)o!=n&&1!=e[n].remove&&1!=e[o].remove&&(e[n].start>=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<e.length;o++)e[o].remove!==!0&&i.push(e[o]);t.hiddenDates=i,t.hiddenDates.sort(function(t,e){return t.start-e.start})},e.printDates=function(t){for(var e=0;e<t.length;e++)console.log(e,new Date(t[e].start),new Date(t[e].end),t[e].start,t[e].end,t[e].remove)},e.stepOverHiddenDates=function(t,e,i){for(var o=!1,n=e.current.valueOf(),s=0;s<e.hiddenDates.length;s++){var r=e.hiddenDates[s].start,a=e.hiddenDates[s].end;if(n>=r&&a>n){o=!0;break}}if(1==o&&n<e._end.valueOf()&&n!=i){var h=t(i),d=t(a);h.year()!=d.year()?e.switchedYear=!0:h.month()!=d.month()?e.switchedMonth=!0:h.dayOfYear()!=d.dayOfYear()&&(e.switchedDay=!0),e.current=d}},e.toScreen=function(t,i,o){if(0==t.body.hiddenDates.length){var n=t.range.conversion(o);return(i.valueOf()-n.offset)*n.scale}var s=e.isHidden(i,t.body.hiddenDates);1==s.hidden&&(i=s.startDate);var r=e.getHiddenDurationBetween(t.body.hiddenDates,t.range.start,t.range.end);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<t.length;n++){var s=t[n].start,r=t[n].end;s>=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<e.length;s++){var r=e[s].start,a=e[s].end;r>=i.start&&a<i.end&&o>=a&&(n+=a-r)}return n},e.getAccumulatedHiddenDuration=function(t,e,i){for(var o=0,n=0,s=e.start,r=0;r<t.length;r++){var a=t[r].start,h=t[r].end;if(a>=e.start&&h<e.end){if(n+=a-s,s=h,n>=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<e.length;i++){var o=e[i].start,n=e[i].end;if(t>=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.redrawCount<v)return void this.body.emitter.emit("_change");console.log("WARNING: infinite loop in redraw?")}else this.redrawCount=0;this.initialDrawDone=!0,this.body.emitter.emit("changed")}},o.prototype.repaint=function(){throw new Error("Function repaint is deprecated. Use redraw instead.")},o.prototype.setCurrentTime=function(t){if(!this.currentTime)throw new Error("Option showCurrentTime must be true");this.currentTime.setCurrentTime(t)},o.prototype.getCurrentTime=function(){if(!this.currentTime)throw new Error("Option showCurrentTime must be true");return this.currentTime.getCurrentTime()},o.prototype._toTime=function(t){return u.toTime(this,t,this.props.center.width)},o.prototype._toGlobalTime=function(t){return u.toTime(this,t,this.props.root.width)},o.prototype._toScreen=function(t){return u.toScreen(this,t,this.props.center.width)},o.prototype._toGlobalScreen=function(t){return u.toScreen(this,t,this.props.root.width)},o.prototype._initAutoResize=function(){1==this.options.autoResize?this._startAutoResize():this._stopAutoResize()},o.prototype._startAutoResize=function(){var t=this;this._stopAutoResize(),this._onResize=function(){return 1!=t.options.autoResize?void t._stopAutoResize():void(t.dom.root&&(t.dom.root.offsetWidth==t.props.lastWidth&&t.dom.root.offsetHeight==t.props.lastHeight||(t.props.lastWidth=t.dom.root.offsetWidth,t.props.lastHeight=t.dom.root.offsetHeight,t.body.emitter.emit("_change"))))},h.addEventListener(window,"resize",this._onResize),t.dom.root&&(t.props.lastWidth=t.dom.root.offsetWidth,t.props.lastHeight=t.dom.root.offsetHeight),this.watchTimer=setInterval(this._onResize,1e3)},o.prototype._stopAutoResize=function(){this.watchTimer&&(clearInterval(this.watchTimer),this.watchTimer=void 0),this._onResize&&(h.removeEventListener(window,"resize",this._onResize),this._onResize=null)},o.prototype._onTouch=function(t){this.touch.allowDragging=!0,this.touch.initialScrollTop=this.props.scrollTop},o.prototype._onPinch=function(t){this.touch.allowDragging=!1},o.prototype._onDrag=function(t){if(this.touch.allowDragging){var e=t.deltaY,i=this._getScrollTop(),o=this._setScrollTop(this.touch.initialScrollTop+e);o!=i&&this.emit("verticalDrag")}},o.prototype._setScrollTop=function(t){return this.props.scrollTop=t,this._updateScrollTop(),this.props.scrollTop},o.prototype._updateScrollTop=function(){var t=Math.min(this.props.centerContainer.height-this.props.center.height,0);return t!=this.props.scrollTopMin&&("top"!=this.options.orientation.item&&(this.props.scrollTop+=t-this.props.scrollTopMin),this.props.scrollTopMin=t),this.props.scrollTop>0&&(this.props.scrollTop=0),this.props.scrollTop<t&&(this.props.scrollTop=t),this.props.scrollTop},o.prototype._getScrollTop=function(){return this.props.scrollTop},o.prototype._createConfigurator=function(){throw new Error("Cannot invoke abstract method _createConfigurator")},t.exports=o},function(t,e,i){function o(t,e){this.body=t,this.defaultOptions={rtl:!1,type:null,orientation:{item:"bottom"},align:"auto",stack:!0,groupOrderSwap:function(t,e,i){var o=e.order;e.order=t.order,t.order=o},groupOrder:"order",selectable:!0,multiselect:!1,itemsAlwaysDraggable:!1,editable:{updateTime:!1,updateGroup:!1,add:!1,remove:!1},groupEditable:{order:!1,add:!1,remove:!1},snap:d.snap,onAdd:function(t,e){e(t)},onUpdate:function(t,e){e(t)},onMove:function(t,e){e(t)},onRemove:function(t,e){e(t)},onMoving:function(t,e){e(t)},onAddGroup:function(t,e){e(t)},onMoveGroup:function(t,e){e(t)},onRemoveGroup:function(t,e){e(t)},margin:{item:{horizontal:10,vertical:10},axis:20}},this.options=r.extend({},this.defaultOptions),this.itemOptions={type:{start:"Date",end:"Date"}},this.conversion={toScreen:t.util.toScreen,toTime:t.util.toTime},this.dom={},this.props={},this.hammer=null;var i=this;this.itemsData=null,this.groupsData=null,this.itemListeners={add:function(t,e,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.groups={},this.groupIds=[],this.selection=[],this.stackDirty=!0,this.touchParams={},this.groupTouchParams={},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(14),r=i(1),a=i(8),h=i(10),d=i(25),l=i(21),u=i(26),c=i(30),p=i(31),m=i(32),f=i(28),g=i(33),v="__ungrouped__",y="__background__";o.prototype=new l,o.types={background:g,box:p,range:f,point:m},o.prototype._create=function(){var t=document.createElement("div");t.className="vis-itemset",t["timeline-itemset"]=this,this.dom.frame=t;var e=document.createElement("div");e.className="vis-background",t.appendChild(e),this.dom.background=e;var i=document.createElement("div");i.className="vis-foreground",t.appendChild(i),this.dom.foreground=i;var o=document.createElement("div");o.className="vis-axis",this.dom.axis=o;var n=document.createElement("div");n.className="vis-labelset",this.dom.labelSet=n,this._updateUngrouped();var r=new c(y,null,this);r.show(),this.groups[y]=r,this.hammer=new s(this.body.dom.centerContainer),this.hammer.on("hammer.input",function(t){t.isFirst&&this._onTouch(t)}.bind(this)),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:s.DIRECTION_HORIZONTAL}),this.hammer.on("tap",this._onSelectItem.bind(this)),this.hammer.on("press",this._onMultiSelectItem.bind(this)),this.hammer.on("doubletap",this._onAddItem.bind(this)),this.groupHammer=new s(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:s.DIRECTION_HORIZONTAL}),this.show()},o.prototype.setOptions=function(t){if(t){var e=["type","rtl","align","order","stack","selectable","multiselect","itemsAlwaysDraggable","multiselectPerGroup","groupOrder","dataAttributes","template","groupTemplate","hide","snap","groupOrderSwap"];r.selectiveExtend(e,this.options,t),"orientation"in t&&("string"==typeof t.orientation?this.options.orientation.item="top"===t.orientation?"top":"bottom":"object"===n(t.orientation)&&"item"in t.orientation&&(this.options.orientation.item=t.orientation.item)),"margin"in t&&("number"==typeof t.margin?(this.options.margin.axis=t.margin,this.options.margin.item.horizontal=t.margin,this.options.margin.item.vertical=t.margin):"object"===n(t.margin)&&(r.selectiveExtend(["axis"],this.options.margin,t.margin),"item"in t.margin&&("number"==typeof t.margin.item?(this.options.margin.item.horizontal=t.margin.item,this.options.margin.item.vertical=t.margin.item):"object"===n(t.margin.item)&&r.selectiveExtend(["horizontal","vertical"],this.options.margin.item,t.margin.item)))),"editable"in t&&("boolean"==typeof t.editable?(this.options.editable.updateTime=t.editable,this.options.editable.updateGroup=t.editable,this.options.editable.add=t.editable,this.options.editable.remove=t.editable):"object"===n(t.editable)&&r.selectiveExtend(["updateTime","updateGroup","add","remove"],this.options.editable,t.editable)),"groupEditable"in t&&("boolean"==typeof t.groupEditable?(this.options.groupEditable.order=t.groupEditable,this.options.groupEditable.add=t.groupEditable,this.options.groupEditable.remove=t.groupEditable):"object"===n(t.groupEditable)&&r.selectiveExtend(["order","add","remove"],this.options.groupEditable,t.groupEditable));var i=function(e){var i=t[e];if(i){if(!(i instanceof Function))throw new Error("option "+e+" must be a function "+e+"(item, callback)");this.options[e]=i}}.bind(this);["onAdd","onUpdate","onRemove","onMove","onMoving","onAddGroup","onMoveGroup","onRemoveGroup"].forEach(i),this.markDirty()}},o.prototype.markDirty=function(t){this.groupIds=[],this.stackDirty=!0,t&&t.refreshItems&&r.forEach(this.items,function(t){t.dirty=!0,t.displayed&&t.redraw()})},o.prototype.destroy=function(){this.hide(),this.setItems(null),this.setGroups(null),this.hammer=null,this.body=null,this.conversion=null},o.prototype.hide=function(){this.dom.frame.parentNode&&this.dom.frame.parentNode.removeChild(this.dom.frame),this.dom.axis.parentNode&&this.dom.axis.parentNode.removeChild(this.dom.axis),this.dom.labelSet.parentNode&&this.dom.labelSet.parentNode.removeChild(this.dom.labelSet)},o.prototype.show=function(){this.dom.frame.parentNode||this.body.dom.center.appendChild(this.dom.frame),this.dom.axis.parentNode||this.body.dom.backgroundVertical.appendChild(this.dom.axis),this.dom.labelSet.parentNode||this.body.dom.left.appendChild(this.dom.labelSet)},o.prototype.setSelection=function(t){var e,i,o,n;for(void 0==t&&(t=[]),Array.isArray(t)||(t=[t]),e=0,i=this.selection.length;i>e;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;a<r.length;a++){var h=r[a];this.options.rtl?h.right<i&&h.right+h.width>e&&o.push(h.id):h.left<e&&h.left+h.width>i&&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;i<t.length;i++)t[i]instanceof f&&e.push(t[i]);return e},o.prototype._onTouch=function(t){this.touchParams.item=this.itemFromTarget(t),this.touchParams.dragLeftItem=t.target.dragLeftItem||!1,this.touchParams.dragRightItem=t.target.dragRightItem||!1,this.touchParams.itemProps=null},o.prototype._getGroupIndex=function(t){for(var e=0;e<this.groupIds.length;e++)if(t==this.groupIds[e])return e},o.prototype._onDragStart=function(t){var e,i=this.touchParams.item||null,o=this;if(i&&(i.selected||this.options.itemsAlwaysDraggable)){if(!this.options.editable.updateTime&&!this.options.editable.updateGroup&&!i.editable)return;if(i.editable===!1)return;var n=this.touchParams.dragLeftItem,s=this.touchParams.dragRightItem;if(n)e={item:n,initialX:t.center.x,dragLeft:!0,data:this._cloneItemData(i.data)},this.touchParams.itemProps=[e];else if(s)e={item:s,initialX:t.center.x,dragRight:!0,data:this._cloneItemData(i.data)},this.touchParams.itemProps=[e];else{this.touchParams.selectedItem=i;var r=this._getGroupIndex(i.data.group),a=this.options.itemsAlwaysDraggable&&!i.selected?[i.id]:this.getSelection();this.touchParams.itemProps=a.map(function(e){var i=o.items[e],n=o._getGroupIndex(i.data.group);return{item:i,initialX:t.center.x,groupOffset:r-n,data:this._cloneItemData(i.data)}}.bind(this))}t.stopPropagation()}else this.options.editable.add&&(t.srcEvent.ctrlKey||t.srcEvent.metaKey)&&this._onDragStartAddItem(t)},o.prototype._onDragStartAddItem=function(t){var e=this.options.snap||null;if(this.options.rtl)var i=r.getAbsoluteRight(this.dom.frame),o=i-t.center.x+10;else var i=r.getAbsoluteLeft(this.dom.frame),o=t.center.x-i-10;var n=this.body.util.toTime(o),s=this.body.util.getScale(),a=this.body.util.getStep(),h=e?e(n,s,a):n,d=h,l={type:"range",start:h,end:d,content:"new item"},u=r.randomUUID();l[this.itemsData._fieldId]=u;var c=this.groupFromTarget(t);c&&(l.group=c.groupId);var p=new f(l,this.conversion,this.options);p.id=u,p.data=this._cloneItemData(l),this._addItem(p);var m={item:p,initialX:t.center.x,data:p.data};this.options.rtl?m.dragLeft=!0:m.dragRight=!0,this.touchParams.itemProps=[m],t.stopPropagation()},o.prototype._onDrag=function(t){if(this.touchParams.itemProps){t.stopPropagation();var e=this,i=this.options.snap||null;if(this.options.rtl)var o=this.body.dom.root.offsetLeft+this.body.domProps.right.width;else var o=this.body.dom.root.offsetLeft+this.body.domProps.left.width;var n=this.body.util.getScale(),s=this.body.util.getStep(),a=this.touchParams.selectedItem,h=e.options.editable.updateGroup,d=null;if(h&&a&&void 0!=a.data.group){var l=e.groupFromTarget(t);l&&(d=this._getGroupIndex(l.groupId))}this.touchParams.itemProps.forEach(function(a){var h=e.body.util.toTime(t.center.x-o),l=e.body.util.toTime(a.initialX-o);if(this.options.rtl)var u=-(h-l);else var u=h-l;var c=this._cloneItemData(a.item.data);if(a.item.editable!==!1){var p=e.options.editable.updateTime||a.item.editable===!0;if(p)if(a.dragLeft){if(this.options.rtl){if(void 0!=c.end){var m=r.convert(a.data.end,"Date"),f=new Date(m.valueOf()+u);c.end=i?i(f,n,s):f}}else if(void 0!=c.start){var g=r.convert(a.data.start,"Date"),v=new Date(g.valueOf()+u);c.start=i?i(v,n,s):v}}else if(a.dragRight){if(this.options.rtl){if(void 0!=c.start){var g=r.convert(a.data.start,"Date"),v=new Date(g.valueOf()+u);c.start=i?i(v,n,s):v}}else if(void 0!=c.end){var m=r.convert(a.data.end,"Date"),f=new Date(m.valueOf()+u);c.end=i?i(f,n,s):f}}else if(void 0!=c.start){var g=r.convert(a.data.start,"Date").valueOf(),v=new Date(g+u);if(void 0!=c.end){var m=r.convert(a.data.end,"Date"),y=m.valueOf()-g.valueOf();c.start=i?i(v,n,s):v,c.end=new Date(c.start.valueOf()+y)}else c.start=i?i(v,n,s):v}var b=e.options.editable.updateGroup||a.item.editable===!0;if(b&&!a.dragLeft&&!a.dragRight&&null!=d&&void 0!=c.group){var _=d-a.groupOffset;_=Math.max(0,_),_=Math.min(e.groupIds.length-1,_),c.group=e.groupIds[_]}c=this._cloneItemData(c),e.options.onMoving(c,function(t){t&&a.item.setData(this._cloneItemData(t,"Date"))}.bind(this))}}.bind(this)),this.stackDirty=!0,this.body.emitter.emit("_change")}},o.prototype._moveToGroup=function(t,e){var i=this.groups[e];if(i&&i.groupId!=t.data.group){var o=t.parent;o.remove(t),o.order(),i.add(t),i.order(),t.data.group=i.groupId}},o.prototype._onDragEnd=function(t){if(this.touchParams.itemProps){t.stopPropagation();var e=this,i=this.itemsData.getDataSet(),o=this.touchParams.itemProps;this.touchParams.itemProps=null,o.forEach(function(t){var o=t.item.id,n=null!=e.itemsData.get(o,e.itemOptions);if(n){var s=this._cloneItemData(t.item.data);e.options.onMove(s,function(n){n?(n[i._fieldId]=o,i.update(n)):(t.item.setData(t.data),e.stackDirty=!0,e.body.emitter.emit("_change"))})}else e.options.onAdd(t.item.data,function(i){e._removeItem(t.item),i&&e.itemsData.getDataSet().add(i),e.stackDirty=!0,e.body.emitter.emit("_change")})}.bind(this))}},o.prototype._onGroupDragStart=function(t){this.options.groupEditable.order&&(this.groupTouchParams.group=this.groupFromTarget(t),this.groupTouchParams.group&&(t.stopPropagation(),this.groupTouchParams.originalOrder=this.groupsData.getIds({order:this.options.groupOrder})))},o.prototype._onGroupDrag=function(t){if(this.options.groupEditable.order&&this.groupTouchParams.group){t.stopPropagation();var e=this.groupFromTarget(t);if(e&&e.height!=this.groupTouchParams.group.height){var i=e.top<this.groupTouchParams.group.top,o=t.center?t.center.y:t.clientY,n=r.getAbsoluteTop(e.dom.foreground),s=this.groupTouchParams.group.height;if(i){if(o>n+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.start<i)&&(i=t.start),void 0!=t.end?(null==e||t.end>e)&&(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;i<this.groupIds.length;i++){var o=this.groupIds[i],n=this.groups[o],s=n.dom.foreground,a=r.getAbsoluteTop(s);if(e>a&&e<a+s.offsetHeight)return n;if("top"===this.options.orientation.item){if(i===this.groupIds.length-1&&e>a)return n}else if(0===i&&e<a+s.offset)return n}return null},o.itemSetFromTarget=function(t){for(var e=t.target;e;){if(e.hasOwnProperty("timeline-itemset"))return e["timeline-itemset"];e=e.parentNode}return null},o.prototype._cloneItemData=function(t,e){var i=r.extend({},t);return e||(e=this.itemsData.getDataSet()._options.type),void 0!=i.start&&(i.start=r.convert(i.start,e&&e.start||"Date")),void 0!=i.end&&(i.end=r.convert(i.end,e&&e.end||"Date")),i},t.exports=o},function(t,e,i){function o(t,e,i,s){this.moment=n,this.current=this.moment(),this._start=this.moment(),this._end=this.moment(),this.autoScale=!0,this.scale="day",this.step=1,this.setRange(t,e,i),this.switchedDay=!1,this.switchedMonth=!1,this.switchedYear=!1,Array.isArray(s)?this.hiddenDates=s:void 0!=s?this.hiddenDates=[s]:this.hiddenDates=[],this.format=o.FORMAT}var n=i(2),s=i(22),r=i(1);o.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:""}},o.prototype.setMoment=function(t){this.moment=t,this.current=this.moment(this.current),this._start=this.moment(this._start),this._end=this.moment(this._end)},o.prototype.setFormat=function(t){var e=r.deepExtend({},o.FORMAT);this.format=r.deepExtend(e,t)},o.prototype.setRange=function(t,e,i){if(!(t instanceof Date&&e instanceof Date))throw"No legal start or end date in method setRange";this._start=void 0!=t?this.moment(t.valueOf()):new Date,this._end=void 0!=e?this.moment(e.valueOf()):new Date,this.autoScale&&this.setMinimumStep(i)},o.prototype.start=function(){this.current=this._start.clone(),this.roundToMinor()},o.prototype.roundToMinor=function(){switch(this.scale){case"year":this.current.year(this.step*Math.floor(this.current.year()/this.step)),this.current.month(0);case"month":this.current.date(1);case"day":case"weekday":this.current.hours(0);case"hour":this.current.minutes(0);case"minute":this.current.seconds(0);case"second":this.current.milliseconds(0)}if(1!=this.step)switch(this.scale){case"millisecond":this.current.subtract(this.current.milliseconds()%this.step,"milliseconds");break;case"second":this.current.subtract(this.current.seconds()%this.step,"seconds");break;case"minute":this.current.subtract(this.current.minutes()%this.step,"minutes");break;case"hour":this.current.subtract(this.current.hours()%this.step,"hours");break;case"weekday":case"day":this.current.subtract((this.current.date()-1)%this.step,"day");break;case"month":this.current.subtract(this.current.month()%this.step,"month");break;case"year":this.current.subtract(this.current.year()%this.step,"year")}},o.prototype.hasNext=function(){return this.current.valueOf()<=this._end.valueOf()},o.prototype.next=function(){var t=this.current.valueOf();if(this.current.month()<6)switch(this.scale){case"millisecond":this.current.add(this.step,"millisecond");break;case"second":this.current.add(this.step,"second");break;case"minute":this.current.add(this.step,"minute");break;case"hour":this.current.add(this.step,"hour"),this.current.subtract(this.current.hours()%this.step,"hour");break;case"weekday":case"day":this.current.add(this.step,"day");break;case"month":this.current.add(this.step,"month");break;case"year":this.current.add(this.step,"year")}else switch(this.scale){case"millisecond":this.current.add(this.step,"millisecond");break;case"second":this.current.add(this.step,"second");break;case"minute":this.current.add(this.step,"minute");break;case"hour":this.current.add(this.step,"hour");break;case"weekday":case"day":this.current.add(this.step,"day");break;case"month":this.current.add(this.step,"month");break;case"year":this.current.add(this.step,"year")}if(1!=this.step)switch(this.scale){case"millisecond":this.current.milliseconds()<this.step&&this.current.milliseconds(0);break;case"second":this.current.seconds()<this.step&&this.current.seconds(0);break;case"minute":this.current.minutes()<this.step&&this.current.minutes(0);break;case"hour":this.current.hours()<this.step&&this.current.hours(0);break;case"weekday":case"day":this.current.date()<this.step+1&&this.current.date(1);break;case"month":this.current.month()<this.step&&this.current.month(0);break;case"year":}this.current.valueOf()==t&&(this.current=this._end.clone()),s.stepOverHiddenDates(this.moment,this,t)},o.prototype.getCurrent=function(){return this.current},o.prototype.setScale=function(t){t&&"string"==typeof t.scale&&(this.scale=t.scale,this.step=t.step>0?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;i<t.length;i++)this.subgroups[t[i].subgroup].index=i}},o.prototype.resetSubgroups=function(){for(var t in this.subgroups)this.subgroups.hasOwnProperty(t)&&(this.subgroups[t].visible=!1)},o.prototype.remove=function(t){delete this.items[t.id],t.setParent(null);var e=this.visibleItems.indexOf(t);if(-1!=e&&this.visibleItems.splice(e,1),
+void 0!==t.data.subgroup){var i=this.subgroups[t.data.subgroup];if(i){var o=i.items.indexOf(t);i.items.splice(o,1),i.items.length||(delete this.subgroups[t.data.subgroup],this.subgroupIndex--),this.orderSubgroups()}}},o.prototype.removeFromDataSet=function(t){this.itemSet.removeItem(t.id)},o.prototype.order=function(){for(var t=n.toArray(this.items),e=[],i=[],o=0;o<t.length;o++)void 0!==t[o].data.end&&i.push(t[o]),e.push(t[o]);this.orderedItems={byStart:e,byEnd:i},s.orderByStart(this.orderedItems.byStart),s.orderByEnd(this.orderedItems.byEnd)},o.prototype._updateVisibleItems=function(t,e,i){var o,s,r=[],a={},h=(i.end-i.start)/4,d=i.start-h,l=i.end+h,u=function(t){return d>t?-1:l>=t?0:1};if(e.length>0)for(s=0;s<e.length;s++)this._checkIfVisibleWithReference(e[s],r,a,i);var c=n.binarySearchCustom(t.byStart,u,"data","start");if(this._traceVisible(c,t.byStart,r,a,function(t){return t.data.start<d||t.data.start>l}),1==this.checkRangedItems)for(this.checkRangedItems=!1,s=0;s<t.byEnd.length;s++)this._checkIfVisibleWithReference(t.byEnd[s],r,a,i);else{var p=n.binarySearchCustom(t.byEnd,u,"data","end");this._traceVisible(p,t.byEnd,r,a,function(t){return t.data.end<d||t.data.end>l})}for(s=0;s<r.length;s++)o=r[s],o.displayed||o.show(),o.repositionX();return r},o.prototype._traceVisible=function(t,e,i,o,n){var s,r;if(-1!=t){for(r=t;r>=0&&(s=e[r],!n(s));r--)void 0===o[s.id]&&(o[s.id]=!0,i.push(s));for(r=t+1;r<e.length&&(s=e[r],!n(s));r++)void 0===o[s.id]&&(o[s.id]=!0,i.push(s))}},o.prototype._checkIfVisible=function(t,e,i){t.isVisible(i)?(t.displayed||t.show(),t.repositionX(),e.push(t)):t.displayed&&t.hide()},o.prototype._checkIfVisibleWithReference=function(t,e,i,o){t.isVisible(o)?void 0===i[t.id]&&(i[t.id]=!0,e.push(t)):t.displayed&&t.hide()},t.exports=o},function(t,e){var i=.001;e.orderByStart=function(t){t.sort(function(t,e){return t.data.start-e.data.start})},e.orderByEnd=function(t){t.sort(function(t,e){var i="end"in t.data?t.data.end:t.data.start,o="end"in e.data?e.data.end:e.data.start;return i-o})},e.stack=function(t,i,o){var n,s;if(o)for(n=0,s=t.length;s>n;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].index<i[t[o].data.subgroup].index&&(s+=i[r].height+e.item.vertical);t[o].top=s}else t[o].top=e.axis},e.collision=function(t,e,o,n){return n?t.right-o.horizontal+i<e.right+e.width&&t.right+t.width+o.horizontal-i>e.right&&t.top-o.vertical+i<e.top+e.height&&t.top+t.height+o.vertical-i>e.top:t.left-o.horizontal+i<e.left+e.width&&t.left+t.width+o.horizontal-i>e.left&&t.top-o.vertical+i<e.top+e.height&&t.top+t.height+o.vertical-i>e.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.start<t.end&&this.data.end>t.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;i<e.length;i++){var o=e[i],n=this.data[o];null!=n?t.setAttribute("data-"+o,n):t.removeAttribute("data-"+o)}}},o.prototype._updateStyle=function(t){this.style&&(s.removeCssText(t,this.style),this.style=null),this.data.style&&(s.addCssText(t,this.data.style),this.style=this.data.style)},o.prototype._contentToString=function(t){return"string"==typeof t?t:t&&"outerHTML"in t?t.outerHTML:t},o.prototype.getWidthLeft=function(){return 0},o.prototype.getWidthRight=function(){return 0},t.exports=o},function(t,e,i){function o(t,e,i){n.call(this,t,e,i),this.width=0,this.height=0,this.top=0,this.left=0}var n=(i(1),i(26));o.prototype=Object.create(n.prototype),o.prototype.redraw=function(t,e,i){var o=!1;this.visibleItems=this._updateVisibleItems(this.orderedItems,this.visibleItems,t),this.width=this.dom.background.offsetWidth,this.dom.background.style.height="0";for(var n=0,s=this.visibleItems.length;s>n;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.start<t.end+e},o.prototype.redraw=function(){var t=this.dom;if(t||(this.dom={},t=this.dom,t.box=document.createElement("DIV"),t.content=document.createElement("DIV"),t.content.className="vis-item-content",t.box.appendChild(t.content),t.line=document.createElement("DIV"),t.line.className="vis-line",t.dot=document.createElement("DIV"),t.dot.className="vis-dot",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(!t.line.parentNode){var i=this.parent.dom.background;if(!i)throw new Error("Cannot redraw item: parent has no background container element");i.appendChild(t.line)}if(!t.dot.parentNode){var o=this.parent.dom.axis;if(!i)throw new Error("Cannot redraw item: parent has no axis container element");o.appendChild(t.dot)}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 n=(this.options.editable.updateTime||this.options.editable.updateGroup||this.editable===!0)&&this.editable!==!1,s=(this.data.className?" "+this.data.className:"")+(this.selected?" vis-selected":"")+(n?" vis-editable":" vis-readonly");t.box.className="vis-item vis-box"+s,t.line.className="vis-item vis-line"+s,t.dot.className="vis-item vis-dot"+s,this.props.dot.height=t.dot.offsetHeight,this.props.dot.width=t.dot.offsetWidth,this.props.line.width=t.line.offsetWidth,this.width=t.box.offsetWidth,this.height=t.box.offsetHeight,this.dirty=!1}this._repaintDeleteButton(t.box)},o.prototype.show=function(){this.displayed||this.redraw()},o.prototype.hide=function(){if(this.displayed){var t=this.dom;t.box.parentNode&&t.box.parentNode.removeChild(t.box),t.line.parentNode&&t.line.parentNode.removeChild(t.line),t.dot.parentNode&&t.dot.parentNode.removeChild(t.dot),this.displayed=!1}},o.prototype.repositionX=function(){var t=this.conversion.toScreen(this.data.start),e=this.options.align;"right"==e?this.options.rtl?(this.right=t-this.width,this.dom.box.style.right=this.right+"px",this.dom.line.style.right=t-this.props.line.width+"px",this.dom.dot.style.right=t-this.props.line.width/2-this.props.dot.width/2+"px"):(this.left=t-this.width,this.dom.box.style.left=this.left+"px",this.dom.line.style.left=t-this.props.line.width+"px",this.dom.dot.style.left=t-this.props.line.width/2-this.props.dot.width/2+"px"):"left"==e?this.options.rtl?(this.right=t,this.dom.box.style.right=this.right+"px",this.dom.line.style.right=t+"px",this.dom.dot.style.right=t+this.props.line.width/2-this.props.dot.width/2+"px"):(this.left=t,this.dom.box.style.left=this.left+"px",this.dom.line.style.left=t+"px",this.dom.dot.style.left=t+this.props.line.width/2-this.props.dot.width/2+"px"):this.options.rtl?(this.right=t-this.width/2,this.dom.box.style.right=this.right+"px",this.dom.line.style.right=t-this.props.line.width+"px",this.dom.dot.style.right=t-this.props.dot.width/2+"px"):(this.left=t-this.width/2,this.dom.box.style.left=this.left+"px",this.dom.line.style.left=t-this.props.line.width/2+"px",this.dom.dot.style.left=t-this.props.dot.width/2+"px")},o.prototype.repositionY=function(){var t=this.options.orientation.item,e=this.dom.box,i=this.dom.line,o=this.dom.dot;if("top"==t)e.style.top=(this.top||0)+"px",i.style.top="0",i.style.height=this.parent.top+this.top+1+"px",i.style.bottom="";else{var n=this.parent.itemSet.props.height,s=n-this.parent.top-this.parent.height+this.top;e.style.top=(this.parent.height-this.top-this.height||0)+"px",i.style.top=n-s+"px",i.style.bottom="0"}o.style.top=-this.props.dot.height/2+"px"},o.prototype.getWidthLeft=function(){return this.width/2},o.prototype.getWidthRight=function(){return this.width/2},t.exports=o},function(t,e,i){function o(t,e,i){if(this.props={dot:{top:0,width:0,height:0},content:{height:0,marginLeft:0,marginRight: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);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.start<t.end+e},o.prototype.redraw=function(){var t=this.dom;if(t||(this.dom={},t=this.dom,t.point=document.createElement("div"),t.content=document.createElement("div"),t.content.className="vis-item-content",t.point.appendChild(t.content),t.dot=document.createElement("div"),t.point.appendChild(t.dot),t.point["timeline-item"]=this,this.dirty=!0),!this.parent)throw new Error("Cannot redraw item: no parent attached");if(!t.point.parentNode){var e=this.parent.dom.foreground;if(!e)throw new Error("Cannot redraw item: parent has no foreground container element");e.appendChild(t.point)}if(this.displayed=!0,this.dirty){this._updateContents(this.dom.content),this._updateTitle(this.dom.point),this._updateDataAttributes(this.dom.point),this._updateStyle(this.dom.point);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.point.className="vis-item vis-point"+o,t.dot.className="vis-item vis-dot"+o,this.props.dot.width=t.dot.offsetWidth,this.props.dot.height=t.dot.offsetHeight,this.props.content.height=t.content.offsetHeight,this.options.rtl?t.content.style.marginRight=2*this.props.dot.width+"px":t.content.style.marginLeft=2*this.props.dot.width+"px",this.width=t.point.offsetWidth,this.height=t.point.offsetHeight,t.dot.style.top=(this.height-this.props.dot.height)/2+"px",this.options.rtl?t.dot.style.right=this.props.dot.width/2+"px":t.dot.style.left=this.props.dot.width/2+"px",this.dirty=!1}this._repaintDeleteButton(t.point)},o.prototype.show=function(){this.displayed||this.redraw()},o.prototype.hide=function(){this.displayed&&(this.dom.point.parentNode&&this.dom.point.parentNode.removeChild(this.dom.point),this.displayed=!1)},o.prototype.repositionX=function(){var t=this.conversion.toScreen(this.data.start);this.options.rtl?(this.right=t-this.props.dot.width,this.dom.point.style.right=this.right+"px"):(this.left=t-this.props.dot.width,this.dom.point.style.left=this.left+"px")},o.prototype.repositionY=function(){var t=this.options.orientation.item,e=this.dom.point;"top"==t?e.style.top=this.top+"px":e.style.top=this.parent.height-this.top-this.height+"px"},o.prototype.getWidthLeft=function(){return this.props.dot.width},o.prototype.getWidthRight=function(){return this.props.dot.width},t.exports=o},function(t,e,i){function o(t,e,i){if(this.props={content:{width:0}},this.overflow=!1,t){if(void 0==t.start)throw new Error('Property "start" missing in item '+t.id);if(void 0==t.end)throw new Error('Property "end" missing in item '+t.id)}n.call(this,t,e,i)}var n=(i(14),i(29)),s=i(30),r=i(28);o.prototype=new n(null,null,null),o.prototype.baseClassName="vis-item vis-background",o.prototype.stack=!1,o.prototype.isVisible=function(t){return this.data.start<t.end&&this.data.end>t.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].index<r&&(a+=n[h].height+t.item.vertical);a+=0!=r?t.axis-.5*t.item.vertical:0,this.dom.box.style.top=a+"px",this.dom.box.style.bottom=""}else{var a=this.parent.top,d=0;for(var h in n)if(n.hasOwnProperty(h)&&1==n[h].visible){var l=n[h].height+t.item.vertical;d+=l,n[h].index>r&&(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;n<o.length;n++)void 0===o[n].shift?o[n].fn(t):1==o[n].shift&&1==t.shiftKey?o[n].fn(t):0==o[n].shift&&0==t.shiftKey&&o[n].fn(t);1==i&&t.preventDefault()}};return n.bind=function(t,e,i){if(void 0===i&&(i="keydown"),void 0===r[t])throw new Error("unsupported key: "+t);void 0===s[i][r[t].code]&&(s[i][r[t].code]=[]),s[i][r[t].code].push({fn:e,shift:r[t].shift})},n.bindAll=function(t,e){void 0===e&&(e="keydown");for(var i in r)r.hasOwnProperty(i)&&n.bind(i,t,e)},n.getKey=function(t){for(var e in r)if(r.hasOwnProperty(e)){if(1==t.shiftKey&&1==r[e].shift&&t.keyCode==r[e].code)return e;
+if(0==t.shiftKey&&0==r[e].shift&&t.keyCode==r[e].code)return e;if(t.keyCode==r[e].code&&"shift"==e)return e}return"unknown key, currently not supported"},n.unbind=function(t,e,i){if(void 0===i&&(i="keydown"),void 0===r[t])throw new Error("unsupported key: "+t);if(void 0!==e){var o=[],n=s[i][r[t].code];if(void 0!==n)for(var a=0;a<n.length;a++)n[a].fn==e&&n[a].shift==r[t].shift||o.push(s[i][r[t].code][a]);s[i][r[t].code]=o}else s[i][r[t].code]=[]},n.reset=function(){s={keydown:{},keyup:{}}},n.destroy=function(){s={keydown:{},keyup:{}},o.removeEventListener("keydown",a,!0),o.removeEventListener("keyup",h,!0)},o.addEventListener("keydown",a,!0),o.addEventListener("keyup",h,!0),n}return t})},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(14),s=i(1),r=i(21),a=i(2),h=i(38);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(21),r=i(2),a=i(38);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",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;o<this.linegraph.groups[i].itemsData.length;o++){var n=this.linegraph.groups[i].itemsData[o],s=l.convert(n.x,"Date").valueOf();t=null==t?s:t>s?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",""))<this.body.domProps.centerContainer.height&&(this.updateSVGheight=!0),s.selectiveDeepExtend(e,this.options,t),s.mergeOptions(this.options,t,"interpolation"),s.mergeOptions(this.options,t,"drawPoints"),s.mergeOptions(this.options,t,"shaded"),s.mergeOptions(this.options,t,"legend"),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)),this.yAxisLeft&&void 0!==t.dataAxis&&(this.yAxisLeft.setOptions(this.options.dataAxis),this.yAxisRight.setOptions(this.options.dataAxis)),this.legendLeft&&void 0!==t.legend&&(this.legendLeft.setOptions(this.options.legend),this.legendRight.setOptions(this.options.legend)),this.groups.hasOwnProperty(g)&&this.groups[g].setOptions(t)}this.dom.frame&&(this.forceGraphUpdate=!0,this.body.emitter.emit("_change",{queue:!0}))},o.prototype.hide=function(){this.dom.frame.parentNode&&this.dom.frame.parentNode.removeChild(this.dom.frame)},o.prototype.show=function(){this.dom.frame.parentNode||this.body.dom.center.appendChild(this.dom.frame)},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&&(s.forEach(this.itemListeners,function(t,e){o.off(e,t)}),e=o.getIds(),this._onRemove(e)),this.itemsData){var n=this.id;s.forEach(this.itemListeners,function(t,e){i.itemsData.on(e,t,n)}),e=this.itemsData.getIds(),this._onAdd(e)}},o.prototype.setGroups=function(t){var e,i=this;if(this.groupsData){s.forEach(this.groupListeners,function(t,e){i.groupsData.off(e,t)}),e=this.groupsData.getIds(),this.groupsData=null;for(var o=0;o<e.length;o++)this._removeGroup(e[o])}if(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 n=this.id;s.forEach(this.groupListeners,function(t,e){i.groupsData.on(e,t,n)}),e=this.groupsData.getIds(),this._onAddGroups(e)}},o.prototype._onUpdate=function(t){this._updateAllGroupData()},o.prototype._onAdd=function(t){this._onUpdate(t)},o.prototype._onRemove=function(t){this._onUpdate(t)},o.prototype._onUpdateGroups=function(t){this._updateAllGroupData()},o.prototype._onAddGroups=function(t){this._onUpdateGroups(t)},o.prototype._onRemoveGroups=function(t){for(var e=0;e<t.length;e++)this._removeGroup(t[e]);this.forceGraphUpdate=!0,this.body.emitter.emit("_change",{queue:!0})},o.prototype._removeGroup=function(t){this.groups.hasOwnProperty(t)&&("right"==this.groups[t].options.yAxisOrientation?(this.yAxisRight.removeGroup(t),this.legendRight.removeGroup(t),this.legendRight.redraw()):(this.yAxisLeft.removeGroup(t),this.legendLeft.removeGroup(t),this.legendLeft.redraw()),delete this.groups[t])},o.prototype._updateGroup=function(t,e){this.groups.hasOwnProperty(e)?(this.groups[e].update(t),"right"==this.groups[e].options.yAxisOrientation?(this.yAxisRight.updateGroup(e,this.groups[e]),this.legendRight.updateGroup(e,this.groups[e]),this.yAxisLeft.removeGroup(e),this.legendLeft.removeGroup(e)):(this.yAxisLeft.updateGroup(e,this.groups[e]),this.legendLeft.updateGroup(e,this.groups[e]),this.yAxisRight.removeGroup(e),this.legendRight.removeGroup(e))):(this.groups[e]=new u(t,e,this.options,this.groupsUsingDefaultStyles),"right"==this.groups[e].options.yAxisOrientation?(this.yAxisRight.addGroup(e,this.groups[e]),this.legendRight.addGroup(e,this.groups[e])):(this.yAxisLeft.addGroup(e,this.groups[e]),this.legendLeft.addGroup(e,this.groups[e]))),this.legendLeft.redraw(),this.legendRight.redraw()},o.prototype._updateAllGroupData=function(){if(null!=this.itemsData){for(var t={},e=this.itemsData.get(),i={},o=0;o<e.length;o++){var n=e[o],r=n.group;null!==r&&void 0!==r||(r=g),i.hasOwnProperty(r)?i[r]++:i[r]=1}for(var o=0;o<e.length;o++){var n=e[o],r=n.group;null!==r&&void 0!==r||(r=g),t.hasOwnProperty(r)||(t[r]=new Array(i[r]));var a=s.bridgeObject(n);a.x=s.convert(n.x,"Date"),a.orginalY=n.y,a.y=Number(n.y);var h=t[r].length-i[r]--;t[r][h]=a}for(var r in this.groups)this.groups.hasOwnProperty(r)&&(t.hasOwnProperty(r)||(t[r]=new Array(0)));for(var r in t)if(t.hasOwnProperty(r))if(0==t[r].length)this.groups.hasOwnProperty(r)&&this._removeGroup(r);else{var d=void 0;void 0!=this.groupsData&&(d=this.groupsData.get(r)),void 0==d&&(d={id:r,content:this.options.defaultGroup+r}),this._updateGroup(d,r),this.groups[r].setItems(t[r])}this.forceGraphUpdate=!0,this.body.emitter.emit("_change",{queue:!0})}},o.prototype.redraw=function(){var t=!1;this.props.width=this.dom.frame.offsetWidth,this.props.height=this.body.domProps.centerContainer.height-this.body.domProps.border.top-this.body.domProps.border.bottom,t=this._isResized()||t;var e=this.body.range.end-this.body.range.start,i=e!=this.lastVisibleInterval;if(this.lastVisibleInterval=e,1==t&&(this.svg.style.width=s.option.asSize(3*this.props.width),this.svg.style.left=s.option.asSize(-this.props.width),-1==(this.options.height+"").indexOf("%")&&1!=this.updateSVGheightOnResize||(this.updateSVGheight=!0)),1==this.updateSVGheight?(this.options.graphHeight!=this.props.height+"px"&&(this.options.graphHeight=this.props.height+"px",this.svg.style.height=this.props.height+"px"),this.updateSVGheight=!1):this.svg.style.height=(""+this.options.graphHeight).replace("px","")+"px",1==t||1==i||1==this.abortedGraphUpdate||1==this.forceGraphUpdate)t=this._updateGraph()||t,this.forceGraphUpdate=!1;else if(0!=this.lastStart){var o=this.body.range.start-this.lastStart,n=this.body.range.end-this.body.range.start;if(0!=this.props.width){var r=this.props.width/n,a=o*r;this.svg.style.left=-this.props.width-a+"px"}}return this.legendLeft.redraw(),this.legendRight.redraw(),t},o.prototype._getSortedGroupIds=function(){var t=[];for(var e in this.groups)if(this.groups.hasOwnProperty(e)){var i=this.groups[e];1!=i.visible||void 0!==this.options.groups.visibility[e]&&1!=this.options.groups.visibility[e]||t.push({id:e,zIndex:i.options.zIndex})}s.insertSort(t,function(t,e){var i=t.zIndex,o=e.zIndex;return void 0===i&&(i=0),void 0===o&&(o=0),i==o?0:o>i?-1:1});for(var o=new Array(t.length),n=0;n<t.length;n++)o[n]=t[n].id;return o},o.prototype._updateGraph=function(){if(r.prepareElements(this.svgElements),0!=this.props.width&&null!=this.itemsData){var t,e,i={},o=!1,n=this.body.util.toGlobalTime(-this.body.domProps.root.width),s=this.body.util.toGlobalTime(2*this.body.domProps.root.width),a=this._getSortedGroupIds();if(a.length>0){var h={};for(this._getRelevantData(a,h,n,s),this._applySampling(a,h),e=0;e<a.length;e++)this._convertXcoordinates(h[a[e]]);if(this._getYRanges(a,h,i),o=this._updateYAxis(a,i),1==o)return r.cleanupElements(this.svgElements),this.abortedGraphUpdate=!0,!0;this.abortedGraphUpdate=!1;var d=void 0;for(e=0;e<a.length;e++)t=this.groups[a[e]],this.options.stack===!0&&"line"===this.options.style&&(void 0!=t.options.excludeFromStacking&&t.options.excludeFromStacking||(void 0!=d&&(this._stack(h[t.id],h[d.id]),1==t.options.shaded.enabled&&"group"!==t.options.shaded.orientation&&("top"==t.options.shaded.orientation&&"group"!==d.options.shaded.orientation?(d.options.shaded.orientation="group",d.options.shaded.groupId=t.id):(t.options.shaded.orientation="group",t.options.shaded.groupId=d.id))),d=t)),this._convertYcoordinates(h[a[e]],t);var l={};for(e=0;e<a.length;e++)if(t=this.groups[a[e]],"line"===t.options.style&&1==t.options.shaded.enabled){var u=h[a[e]];if(null==u||0==u.length)continue;if(l.hasOwnProperty(a[e])||(l[a[e]]=m.calcPath(u,t)),"group"===t.options.shaded.orientation){var c=t.options.shaded.groupId;if(-1===a.indexOf(c)){console.log(t.id+": Unknown shading group target given:"+c);continue}l.hasOwnProperty(c)||(l[c]=m.calcPath(h[c],this.groups[c])),m.drawShading(l[a[e]],t,l[c],this.framework)}else m.drawShading(l[a[e]],t,void 0,this.framework)}for(p.draw(a,h,this.framework),e=0;e<a.length;e++)if(t=this.groups[a[e]],h[a[e]].length>0)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;a<t.length;a++){s=void 0,r=void 0;for(var h=i;h<e.length;h++){if(e[h].x===t[a].x){s=e[h],r=e[h],i=h;break}if(e[h].x>t[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;r<t.length;r++){n=this.groups[t[r]];var d=n.getItems();if(1==n.options.sort){var l=function(t,e){return t.getTime()==e.getTime()?0:e>t?-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;o<t.length;o++)if(i=this.groups[t[o]],1==i.options.sampling){var n=e[t[o]];if(n.length>0){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;s<t.length;s++)o=e[t[s]],r=this.groups[t[s]].options,o.length>0&&(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;u<t.length;u++){var c=this.groups[t[u]];c&&"right"!=c.options.yAxisOrientation?(s=!0,a=1e9,d=-1e9):c&&c.options.yAxisOrientation&&(r=!0,h=1e9,l=-1e9)}for(var u=0;u<t.length;u++)e.hasOwnProperty(t[u])&&e[t[u]].ignore!==!0&&(i=e[t[u]].min,o=e[t[u]].max,"right"!=e[t[u]].yAxisOrientation?(s=!0,a=a>i?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;u<p.length;u++)-1!=t.indexOf(p[u])&&t.splice(t.indexOf(p[u]),1);return n},o.prototype._toggleAxisVisiblity=function(t,e){var i=!1;return 0==t?e.dom.frame.parentNode&&0==e.hidden&&(e.hide(),i=!0):e.dom.frame.parentNode||1!=e.hidden||(e.show(),i=!0),i},o.prototype._convertXcoordinates=function(t){for(var e=this.body.util.toScreen,i=0;i<t.length;i++)t[i].screen_x=e(t[i].x)+this.props.width,t[i].screen_y=t[i].y},o.prototype._convertYcoordinates=function(t,e){var i=this.yAxisLeft,o=Number(this.svg.style.height.replace("px",""));"right"==e.options.yAxisOrientation&&(i=this.yAxisRight);for(var n=0;n<t.length;n++)t[n].screen_y=Math.round(i.convertValue(t[n].y));e.setZeroPosition(Math.min(o,i.convertValue(0)))},t.exports=o},function(t,e,i){function o(t,e,i,o){this.id=n.randomUUID(),this.body=t,this.defaultOptions={orientation:"left",showMinorLabels:!0,showMajorLabels:!0,icons:!1,majorLinesOffset:7,minorLinesOffset:4,labelOffsetX:10,labelOffsetY:2,iconWidth:20,width:"40px",visible:!0,alignZeros:!0,left:{range:{min:void 0,max:void 0},format:function(t){return""+parseFloat(t.toPrecision(3))},title:{text:void 0,style:void 0}},right:{range:{min:void 0,max:void 0},format:function(t){return""+parseFloat(t.toPrecision(3))},title:{text:void 0,style:void 0}}},this.linegraphOptions=o,this.linegraphSVG=i,this.props={},this.DOMelements={lines:{},labels:{},title:{}},this.dom={},this.scale=void 0,this.range={start:0,end:0},this.options=n.extend({},this.defaultOptions),this.conversionFactor=1,this.setOptions(e),this.width=Number((""+this.options.width).replace("px","")),this.minWidth=this.width,this.height=this.linegraphSVG.getBoundingClientRect().height,this.hidden=!1,this.stepPixels=25,this.zeroCrossing=-1,this.amountOfSteps=-1,this.lineOffset=0,this.master=!0,this.masterAxis=null,this.svgElements={},this.iconsRemoved=!1,this.groups={},this.amountOfGroups=0,this._create(),this.framework={svg:this.svg,svgElements:this.svgElements,options:this.options,groups:this.groups};var s=this;this.body.emitter.on("verticalDrag",function(){s.dom.lineContainer.style.top=s.body.domProps.scrollTop+"px"})}var n=i(1),s=i(7),r=i(21),a=i(44);o.prototype=new r,o.prototype.addGroup=function(t,e){this.groups.hasOwnProperty(t)||(this.groups[t]=e),this.amountOfGroups+=1},o.prototype.updateGroup=function(t,e){this.groups.hasOwnProperty(t)||(this.amountOfGroups+=1),this.groups[t]=e},o.prototype.removeGroup=function(t){this.groups.hasOwnProperty(t)&&(delete this.groups[t],this.amountOfGroups-=1)},o.prototype.setOptions=function(t){if(t){var e=!1;this.options.orientation!=t.orientation&&void 0!==t.orientation&&(e=!0);var i=["orientation","showMinorLabels","showMajorLabels","icons","majorLinesOffset","minorLinesOffset","labelOffsetX","labelOffsetY","iconWidth","width","visible","left","right","alignZeros"];n.selectiveDeepExtend(i,this.options,t),this.minWidth=Number((""+this.options.width).replace("px","")),e===!0&&this.dom.frame&&(this.hide(),this.show())}},o.prototype._create=function(){
+this.dom.frame=document.createElement("div"),this.dom.frame.style.width=this.options.width,this.dom.frame.style.height=this.height,this.dom.lineContainer=document.createElement("div"),this.dom.lineContainer.style.width="100%",this.dom.lineContainer.style.height=this.height,this.dom.lineContainer.style.position="relative",this.svg=document.createElementNS("http://www.w3.org/2000/svg","svg"),this.svg.style.position="absolute",this.svg.style.top="0px",this.svg.style.height="100%",this.svg.style.width="100%",this.svg.style.display="block",this.dom.frame.appendChild(this.svg)},o.prototype._redrawGroupIcons=function(){s.prepareElements(this.svgElements);var t,e=this.options.iconWidth,i=15,o=4,n=o+.5*i;t="left"===this.options.orientation?o:this.width-e-o;var r=Object.keys(this.groups);r.sort(function(t,e){return e>t?-1:1});for(var a=0;a<r.length;a++){var h=r[a];this.groups[h].visible!==!0||void 0!==this.linegraphOptions.visibility[h]&&this.linegraphOptions.visibility[h]!==!0||(this.groups[h].getLegend(e,i,this.framework,t,n),n+=i+o)}s.cleanupElements(this.svgElements),this.iconsRemoved=!1},o.prototype._cleanupIcons=function(){this.iconsRemoved===!1&&(s.prepareElements(this.svgElements),s.cleanupElements(this.svgElements),this.iconsRemoved=!0)},o.prototype.show=function(){this.hidden=!1,this.dom.frame.parentNode||(this.options.rtl?this.body.dom.left.appendChild(this.dom.frame):this.body.dom.left.appendChild(this.dom.frame)),this.dom.lineContainer.parentNode||this.body.dom.backgroundHorizontal.appendChild(this.dom.lineContainer)},o.prototype.hide=function(){this.hidden=!0,this.dom.frame.parentNode&&this.dom.frame.parentNode.removeChild(this.dom.frame),this.dom.lineContainer.parentNode&&this.dom.lineContainer.parentNode.removeChild(this.dom.lineContainer)},o.prototype.setRange=function(t,e){this.range.start=t,this.range.end=e},o.prototype.redraw=function(){var t=!1,e=0;this.dom.lineContainer.style.top=this.body.domProps.scrollTop+"px";for(var i in this.groups)this.groups.hasOwnProperty(i)&&(this.groups[i].visible!==!0||void 0!==this.linegraphOptions.visibility[i]&&this.linegraphOptions.visibility[i]!==!0||e++);if(0===this.amountOfGroups||0===e)this.hide();else{this.show(),this.height=Number(this.linegraphSVG.style.height.replace("px","")),this.dom.lineContainer.style.height=this.height+"px",this.width=this.options.visible===!0?Number((""+this.options.width).replace("px","")):0;var o=this.props,n=this.dom.frame;n.className="vis-data-axis",this._calculateCharSize();var s=this.options.orientation,r=this.options.showMinorLabels,a=this.options.showMajorLabels;o.minorLabelHeight=r?o.minorCharHeight:0,o.majorLabelHeight=a?o.majorCharHeight:0,o.minorLineWidth=this.body.dom.backgroundHorizontal.offsetWidth-this.lineOffset-this.width+2*this.options.minorLinesOffset,o.minorLineHeight=1,o.majorLineWidth=this.body.dom.backgroundHorizontal.offsetWidth-this.lineOffset-this.width+2*this.options.majorLinesOffset,o.majorLineHeight=1,"left"===s?(n.style.top="0",n.style.left="0",n.style.bottom="",n.style.width=this.width+"px",n.style.height=this.height+"px",this.props.width=this.body.domProps.left.width,this.props.height=this.body.domProps.left.height):(n.style.top="",n.style.bottom="0",n.style.left="0",n.style.width=this.width+"px",n.style.height=this.height+"px",this.props.width=this.body.domProps.right.width,this.props.height=this.body.domProps.right.height),t=this._redrawLabels(),t=this._isResized()||t,this.options.icons===!0?this._redrawGroupIcons():this._cleanupIcons(),this._redrawTitle(s)}return t},o.prototype._redrawLabels=function(){var t=this,e=!1;s.prepareElements(this.DOMelements.lines),s.prepareElements(this.DOMelements.labels);var i=this.options.orientation,o=void 0!=this.options[i].range?this.options[i].range:{},n=!0;void 0!=o.max&&(this.range.end=o.max,n=!1);var r=!0;void 0!=o.min&&(this.range.start=o.min,r=!1),this.scale=new a(this.range.start,this.range.end,r,n,this.dom.frame.offsetHeight,this.props.majorCharHeight,this.options.alignZeros,this.options[i].format),this.master===!1&&void 0!=this.masterAxis&&this.scale.followScale(this.masterAxis.scale),this.maxLabelSize=0;var h=this.scale.getLines();h.forEach(function(e){var o=e.y,n=e.major;t.options.showMinorLabels&&n===!1&&t._redrawLabel(o-2,e.val,i,"vis-y-axis vis-minor",t.props.minorCharHeight),n&&o>=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.maxLabelSize<this.width-l&&this.options.visible===!0&&this.width>this.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<e.length*a&&(this.maxLabelSize=e.length*a)},o.prototype._redrawLine=function(t,e,i,o,n){if(this.master===!0){var r=s.getDOMElement("div",this.DOMelements.lines,this.dom.lineContainer);r.className=i,r.innerHTML="","left"===e?r.style.left=this.width-o+"px":r.style.right=this.width-o+"px",r.style.width=n+"px",r.style.top=t+"px"}},o.prototype._redrawTitle=function(t){if(s.prepareElements(this.DOMelements.title),void 0!==this.options[t].title&&void 0!==this.options[t].title.text){var e=s.getDOMElement("div",this.DOMelements.title,this.dom.frame);e.className="vis-y-axis vis-title vis-"+t,e.innerHTML=this.options[t].title.text,void 0!==this.options[t].title.style&&n.addCssText(e,this.options[t].title.style),"left"===t?e.style.left=this.props.titleCharHeight+"px":e.style.right=this.props.titleCharHeight+"px",e.style.width=this.height+"px"}s.cleanupElements(this.DOMelements.title)},o.prototype._calculateCharSize=function(){if(!("minorCharHeight"in this.props)){var t=document.createTextNode("0"),e=document.createElement("div");e.className="vis-y-axis vis-minor vis-measure",e.appendChild(t),this.dom.frame.appendChild(e),this.props.minorCharHeight=e.clientHeight,this.props.minorCharWidth=e.clientWidth,this.dom.frame.removeChild(e)}if(!("majorCharHeight"in this.props)){var i=document.createTextNode("0"),o=document.createElement("div");o.className="vis-y-axis vis-major vis-measure",o.appendChild(i),this.dom.frame.appendChild(o),this.props.majorCharHeight=o.clientHeight,this.props.majorCharWidth=o.clientWidth,this.dom.frame.removeChild(o)}if(!("titleCharHeight"in this.props)){var n=document.createTextNode("0"),s=document.createElement("div");s.className="vis-y-axis vis-title vis-measure",s.appendChild(n),this.dom.frame.appendChild(s),this.props.titleCharHeight=s.clientHeight,this.props.titleCharWidth=s.clientWidth,this.dom.frame.removeChild(s)}},t.exports=o},function(t,e){function i(t,e,i,o,n,s){var r=arguments.length<=6||void 0===arguments[6]?!1:arguments[6],a=arguments.length<=7||void 0===arguments[7]?!1: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;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<this.minorSteps.length;r++){var a=this.magnitudefactor*this.minorSteps[r];if(a>=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.minorStepIdx<this.minorStepIdx?(this.minorStepIdx=1,2==e?s():(s(),s())):(this.minorStepIdx=2,1==e?r():(r(),r())));for(var a=(t.getLines(),t.convertValue(0)),h=t.getStep()*t.scale,d=!1,l=0;!d&&l++<5;){this.scale=h/(this.minorSteps[this.minorStepIdx]*this.magnitudefactor);var u=this.containerHeight/this.scale;this._start=i,this._end=this._start+u;var c=this._end*this.scale,p=this.magnitudefactor*this.majorSteps[this.minorStepIdx],m=this.getFirstMajor()-t.getFirstMajor();if(this.zeroAlign){var f=a-c;this._end+=f/this.scale,this._start=this._end-u}else this.autoScaleStart?(this._start-=m/this.scale,this._end=this._start+u):(this._start+=p-m/this.scale,this._end=this._start+u);if(!this.autoScaleEnd&&this._end>o+1e-5)r(),d=!1;else{if(!this.autoScaleStart&&this._start<i-1e-5){if(!(this.zeroAlign&&i>=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;o<t.length;o++)e=e>t[o].y?t[o].y:e,i=i<t[o].y?t[o].y:i;return{min:e,max:i,yAxisOrientation:this.options.yAxisOrientation}},t.exports=o},function(t,e,i){function o(t,e){}var n=i(7),s=i(47);o.drawIcon=function(t,e,i,o,s,r){var a=.5*s,h=n.getSVGElement("rect",r.svgElements,r.svg);h.setAttributeNS(null,"x",e),h.setAttributeNS(null,"y",i-a),h.setAttributeNS(null,"width",o),h.setAttributeNS(null,"height",2*a),h.setAttributeNS(null,"class","vis-outline");var d=Math.round(.3*o),l=t.options.barChart.width,u=l/d,c=Math.round(.4*s),p=Math.round(.75*s),m=Math.round((o-2*d)/3);if(n.drawBar(e+.5*d+m,i+a-c-1,d,c,t.className+" vis-bar",r.svgElements,r.svg,t.style),n.drawBar(e+1.5*d+m+2,i+a-p-1,d,p,t.className+" vis-bar",r.svgElements,r.svg,t.style),1==t.options.drawPoints.enabled){var f={style:t.options.drawPoints.style,styles:t.options.drawPoints.styles,size:t.options.drawPoints.size/u,className:t.className};n.drawPoint(e+.5*d+m,i+a-c-1,f,r.svgElements,r.svg),n.drawPoint(e+1.5*d+m+2,i+a-p-1,f,r.svgElements,r.svg)}},o.draw=function(t,e,i){var r,a,h,d,l,u,c=[],p={},m=0;for(l=0;l<t.length;l++)if(d=i.groups[t[l]],"bar"===d.options.style&&d.visible===!0&&(void 0===i.options.groups.visibility[t[l]]||i.options.groups.visibility[t[l]]===!0))for(u=0;u<e[t[l]].length;u++)c.push({screen_x:e[t[l]][u].screen_x,screen_y:e[t[l]][u].screen_y,x:e[t[l]][u].x,y:e[t[l]][u].y,groupId:t[l],label:e[t[l]][u].label}),m+=1;if(0!==m)for(c.sort(function(t,e){return t.screen_x===e.screen_x?t.groupId<e.groupId?-1:1:t.screen_x-e.screen_x}),o._getDataIntersections(p,c),l=0;l<c.length;l++){d=i.groups[c[l].groupId];var f=void 0!=d.options.barChart.minWidth?d.options.barChart.minWidth:.1*d.options.barChart.width;a=c[l].screen_x;var g=0;if(void 0===p[a])l+1<c.length&&(r=Math.abs(c[l+1].screen_x-a)),h=o._getSafeDrawData(r,d,f);else{var v=l+(p[a].amount-p[a].resolved);l-(p[a].resolved+1);v<c.length&&(r=Math.abs(c[v].screen_x-a)),h=o._getSafeDrawData(r,d,f),p[a].resolved+=1,d.options.stack===!0&&d.options.excludeFromStacking!==!0?c[l].screen_y<d.zeroPosition?(g=p[a].accumulatedNegative,p[a].accumulatedNegative+=d.zeroPosition-c[l].screen_y):(g=p[a].accumulatedPositive,p[a].accumulatedPositive+=d.zeroPosition-c[l].screen_y):d.options.barChart.sideBySide===!0&&(h.width=h.width/p[a].amount,h.offset+=p[a].resolved*h.width-.5*h.width*(p[a].amount+1))}if(n.drawBar(c[l].screen_x+h.offset,c[l].screen_y-g,h.width,d.zeroPosition-c[l].screen_y,d.className+" vis-bar",i.svgElements,i.svg,d.style),d.options.drawPoints.enabled===!0){var y={screen_x:c[l].screen_x,screen_y:c[l].screen_y-g,x:c[l].x,y:c[l].y,groupId:c[l].groupId,label:c[l].label};s.draw([y],d,i,h.offset)}}},o._getDataIntersections=function(t,e){for(var i,o=0;o<e.length;o++)o+1<e.length&&(i=Math.abs(e[o+1].screen_x-e[o].screen_x)),o>0&&(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 t<e.options.barChart.width&&t>0?(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.groupId<e.groupId?-1:1:t.screen_x-e.screen_x});var r={};o._getDataIntersections(r,t),e[n]=o._getStackedYRange(r,t),e[n].yAxisOrientation=s,i.push(n)}},o._getStackedYRange=function(t,e){for(var i,o=e[0].screen_y,n=e[0].screen_y,s=0;s<e.length;s++)i=e[s].screen_x,void 0===t[i]?(o=o>e[s].screen_y?e[s].screen_y:o,n=n<e[s].screen_y?e[s].screen_y:n):e[s].screen_y<0?t[i].accumulatedNegative+=e[s].screen_y:t[i].accumulatedPositive+=e[s].screen_y;for(var r in t)t.hasOwnProperty(r)&&(o=o>t[r].accumulatedNegative?t[r].accumulatedNegative:o,o=o>t[r].accumulatedPositive?t[r].accumulatedPositive:o,n=n<t[r].accumulatedNegative?t[r].accumulatedNegative:n,n=n<t[r].accumulatedPositive?t[r].accumulatedPositive:n);return{min:o,max:n}},t.exports=o},function(t,e,i){function o(t,e){}function n(t,e){return e="undefined"==typeof e?{}:e,{style:e.style||t.options.drawPoints.style,styles:e.styles||t.options.drawPoints.styles,size:e.size||t.options.drawPoints.size,className:e.className||t.className}}function s(t,e){var i=void 0;return t.options&&t.options.drawPoints&&t.options.drawPoints.onRender&&"function"==typeof t.options.drawPoints.onRender&&(i=t.options.drawPoints.onRender),e.group.options&&e.group.options.drawPoints&&e.group.options.drawPoints.onRender&&"function"==typeof e.group.options.drawPoints.onRender&&(i=e.group.options.drawPoints.onRender),i}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(7);o.draw=function(t,e,i,o){o=o||0;for(var h=s(i,e),d=0;d<t.length;d++)if(h){var l=h(t[d],e);l!==!0&&"object"!==("undefined"==typeof l?"undefined":r(l))||a.drawPoint(t[d].screen_x+o,t[d].screen_y,n(e,l),i.svgElements,i.svg,t[d].label)}else a.drawPoint(t[d].screen_x+o,t[d].screen_y,n(e),i.svgElements,i.svg,t[d].label)},o.drawIcon=function(t,e,i,o,s,r){var h=.5*s,d=a.getSVGElement("rect",r.svgElements,r.svg);d.setAttributeNS(null,"x",e),d.setAttributeNS(null,"y",i-h),d.setAttributeNS(null,"width",o),d.setAttributeNS(null,"height",2*h),d.setAttributeNS(null,"class","vis-outline"),a.drawPoint(e+.5*o,i,n(t),r.svgElements,r.svg)},t.exports=o},function(t,e,i){function o(t,e){}var n=i(7);o.calcPath=function(t,e){if(null!=t&&t.length>0){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;n<t.length;n++)o+=t[n][0]+","+t[n][1]+" ";return o},o._catmullRomUniform=function(t){var e,i,o,n,s,r,a=[];a.push([Math.round(t[0].screen_x),Math.round(t[0].screen_y)]);for(var h=1/6,d=t.length,l=0;d-1>l;l++)e=0==l?t[0]:t[l-1],i=t[l],o=t[l+1],n=d>l+2?t[l+2]:o,s={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;i<t.length;i++)e.push([t[i].screen_x,t[i].screen_y]);return e},t.exports=o},function(t,e,i){function o(t,e,i,o){this.body=t,this.defaultOptions={enabled:!1,icons:!0,iconSize:20,iconSpacing:6,left:{visible:!0,position:"top-left"},right:{visible:!0,position:"top-right"}},this.side=i,this.options=n.extend({},this.defaultOptions),this.linegraphOptions=o,this.svgElements={},this.dom={},this.groups={},this.amountOfGroups=0,this._create(),this.framework={svg:this.svg,svgElements:this.svgElements,options:this.options,groups:this.groups},this.setOptions(e)}var n=i(1),s=i(7),r=i(21);o.prototype=new r,o.prototype.clear=function(){this.groups={},this.amountOfGroups=0},o.prototype.addGroup=function(t,e){1!=e.options.excludeFromLegend&&(this.groups.hasOwnProperty(t)||(this.groups[t]=e),this.amountOfGroups+=1)},o.prototype.updateGroup=function(t,e){this.groups[t]=e},o.prototype.removeGroup=function(t){this.groups.hasOwnProperty(t)&&(delete this.groups[t],this.amountOfGroups-=1)},o.prototype._create=function(){this.dom.frame=document.createElement("div"),this.dom.frame.className="vis-legend",this.dom.frame.style.position="absolute",this.dom.frame.style.top="10px",this.dom.frame.style.display="block",this.dom.textArea=document.createElement("div"),this.dom.textArea.className="vis-legend-text",this.dom.textArea.style.position="relative",this.dom.textArea.style.top="0px",this.svg=document.createElementNS("http://www.w3.org/2000/svg","svg"),this.svg.style.position="absolute",this.svg.style.top="0px",this.svg.style.width=this.options.iconSize+5+"px",this.svg.style.height="100%",this.dom.frame.appendChild(this.svg),this.dom.frame.appendChild(this.dom.textArea)},o.prototype.hide=function(){this.dom.frame.parentNode&&this.dom.frame.parentNode.removeChild(this.dom.frame)},o.prototype.show=function(){this.dom.frame.parentNode||this.body.dom.center.appendChild(this.dom.frame)},o.prototype.setOptions=function(t){var e=["enabled","orientation","icons","left","right"];n.selectiveDeepExtend(e,this.options,t)},o.prototype.redraw=function(){var t=0,e=Object.keys(this.groups);e.sort(function(t,e){return e>t?-1:1});for(var i=0;i<e.length;i++){var o=e[i];1!=this.groups[o].visible||void 0!==this.linegraphOptions.visibility[o]&&1!=this.linegraphOptions.visibility[o]||t++}if(0==this.options[this.side].visible||0==this.amountOfGroups||0==this.options.enabled||0==t)this.hide();else{if(this.show(),"top-left"==this.options[this.side].position||"bottom-left"==this.options[this.side].position?(this.dom.frame.style.left="4px",this.dom.frame.style.textAlign="left",this.dom.textArea.style.textAlign="left",this.dom.textArea.style.left=this.options.iconSize+15+"px",this.dom.textArea.style.right="",this.svg.style.left="0px",this.svg.style.right=""):(this.dom.frame.style.right="4px",this.dom.frame.style.textAlign="right",this.dom.textArea.style.textAlign="right",this.dom.textArea.style.right=this.options.iconSize+15+"px",this.dom.textArea.style.left="",this.svg.style.right="0px",this.svg.style.left=""),"top-left"==this.options[this.side].position||"top-right"==this.options[this.side].position)this.dom.frame.style.top=4-Number(this.body.dom.center.style.top.replace("px",""))+"px",this.dom.frame.style.bottom="";else{var n=this.body.domProps.center.height-this.body.domProps.centerContainer.height;this.dom.frame.style.bottom=4+n+Number(this.body.dom.center.style.top.replace("px",""))+"px",this.dom.frame.style.top=""}0==this.options.icons?(this.dom.frame.style.width=this.dom.textArea.offsetWidth+10+"px",this.dom.textArea.style.right="",this.dom.textArea.style.left="",this.svg.style.width="0px"):(this.dom.frame.style.width=this.options.iconSize+15+this.dom.textArea.offsetWidth+10+"px",this.drawLegendIcons());for(var s="",i=0;i<e.length;i++){var o=e[i];1!=this.groups[o].visible||void 0!==this.linegraphOptions.visibility[o]&&1!=this.linegraphOptions.visibility[o]||(s+=this.groups[o].content+"<br />")}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<t.length;h++){var d=t[h];1!=this.groups[d].visible||void 0!==this.linegraphOptions.visibility[d]&&1!=this.linegraphOptions.visibility[d]||(this.groups[d].getLegend(n,r,this.framework,o,a),a+=r+this.options.iconSpacing)}}},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"}},yAxisOrientation:{string:["left","right"]},defaultGroup:{string:i},sort:{"boolean":o},sampling:{"boolean":o},stack:{"boolean":o},graphHeight:{string:i,number:n},shaded:{enabled:{"boolean":o},orientation:{string:["bottom","top","zero","group"]},groupId:{object:a},__type__:{"boolean":o,object:a}},style:{string:["line","bar","points"]},barChart:{width:{number:n},minWidth:{number:n},sideBySide:{"boolean":o},align:{string:["left","center","right"]},__type__:{object:a}},interpolation:{enabled:{"boolean":o},parametrization:{string:["centripetal","chordal","uniform"]},alpha:{number:n},__type__:{object:a,"boolean":o}},drawPoints:{enabled:{"boolean":o},onRender:{"function":"function"},size:{number:n},style:{string:["square","circle"]},__type__:{object:a,"boolean":o,"function":"function"}},dataAxis:{showMinorLabels:{"boolean":o},showMajorLabels:{"boolean":o},icons:{"boolean":o},width:{string:i,number:n},visible:{"boolean":o},alignZeros:{"boolean":o},left:{range:{min:{number:n},max:{number:n},__type__:{object:a}},format:{"function":"function"},title:{text:{string:i,number:n},style:{string:i},__type__:{object:a}},__type__:{object:a}},right:{range:{min:{number:n},max:{number:n},__type__:{object:a}},format:{"function":"function"},title:{text:{string:i,number:n},style:{string:i},__type__:{object:a}},__type__:{object:a}},__type__:{object:a}},legend:{enabled:{"boolean":o},icons:{"boolean":o},left:{visible:{"boolean":o},position:{string:["top-right","bottom-right","top-left","bottom-left"]},__type__:{object:a}},right:{visible:{"boolean":o},position:{string:["top-right","bottom-right","top-left","bottom-left"]},__type__:{object:a}},__type__:{object:a,"boolean":o}},groups:{visibility:{any:l},__type__:{object:a}},autoResize:{"boolean":o},throttleRedraw:{number:n},clickToUse:{"boolean":o},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"},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}},locale:{string:i},locales:{
+__any__:{any:l},__type__:{object:a}},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},orientation:{string:i},showCurrentTime:{"boolean":o},showMajorLabels:{"boolean":o},showMinorLabels:{"boolean":o},start:{date:r,number:n,string:i,moment:d},timeAxis:{scale:{string:i,undefined:"undefined"},step:{number:n,undefined:"undefined"},__type__:{object:a}},width:{string:i,number:n},zoomable:{"boolean":o},zoomKey:{string:["ctrlKey","altKey","metaKey",""]},zoomMax:{number:n},zoomMin:{number:n},zIndex:{number:n},__type__:{object:a}},c={global:{sort:!0,sampling:!0,stack:!1,shaded:{enabled:!1,orientation:["zero","top","bottom","group"]},style:["line","bar","points"],barChart:{width:[50,5,100,5],minWidth:[50,5,100,5],sideBySide:!1,align:["left","center","right"]},interpolation:{enabled:!0,parametrization:["centripetal","chordal","uniform"]},drawPoints:{enabled:!0,size:[6,2,30,1],style:["square","circle"]},dataAxis:{showMinorLabels:!0,showMajorLabels:!0,icons:!1,width:[40,0,200,1],visible:!0,alignZeros:!0,left:{title:{text:"",style:""}},right:{title:{text:"",style:""}}},legend:{enabled:!1,icons:!0,left:{visible:!0,position:["top-right","bottom-right","top-left","bottom-left"]},right:{visible:!0,position:["top-right","bottom-right","top-left","bottom-left"]}},autoResize:!0,throttleRedraw:[10,0,1e3,10],clickToUse:!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:""}},height:"",locale:"",max:"",maxHeight:"",maxMinorChars:[7,0,20,1],min:"",minHeight:"",moveable:!0,orientation:["both","bottom","top"],showCurrentTime:!1,showMajorLabels:!0,showMinorLabels:!0,start:"",width:"100%",zoomable:!0,zoomKey:["ctrlKey","altKey","metaKey",""],zoomMax:[31536e10,10,31536e10,1],zoomMin:[10,10,31536e10,1],zIndex:0}};e.allOptions=u,e.configureOptions=c}])}); \ No newline at end of file
diff --git a/www/lib/vis/dist/vis.css b/www/lib/vis/dist/vis.css
index 23cd790f..e97f3199 100644
--- a/www/lib/vis/dist/vis.css
+++ b/www/lib/vis/dist/vis.css
@@ -32,6 +32,11 @@ div.vis-configuration-wrapper {
width:700px;
}
+div.vis-configuration-wrapper::after {
+ clear: both;
+ content: "";
+ display: block;
+}
div.vis-configuration.vis-config-option-container{
display:block;
@@ -133,7 +138,7 @@ input.vis-configuration.vis-config-rangeinput{
position:relative;
top:-5px;
width:60px;
- height:13px;
+ /*height:13px;*/
padding:1px;
margin:0;
pointer-events:none;
@@ -560,6 +565,17 @@ input.vis-configuration.vis-config-range:focus::-ms-fill-upper {
cursor: pointer;
}
+.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;
+}
+
+
.vis-item.vis-range .vis-drag-left {
position: absolute;
width: 24px;
@@ -584,6 +600,11 @@ input.vis-configuration.vis-config-range:focus::-ms-fill-upper {
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;
@@ -627,6 +648,11 @@ input.vis-configuration.vis-config-range:focus::-ms-fill-upper {
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;
}
@@ -1046,7 +1072,7 @@ div.vis-network-tooltip {
font-family: verdana;
font-size:14px;
- font-color:#000000;
+ color:#000000;
background-color: #f5f4ed;
-moz-border-radius: 3px;
@@ -1121,14 +1147,17 @@ div.vis-network div.vis-navigation div.vis-button.vis-zoomExtends {
div.vis-color-picker {
position:absolute;
+ top: 0px;
+ left: 30px;
margin-top:-140px;
margin-left:30px;
- width:293px;
- height:425px;
+ width:310px;
+ height:444px;
+ z-index: 1;
padding: 10px;
border-radius:15px;
background-color:#ffffff;
- display:none;
+ display: none;
box-shadow: rgba(0,0,0,0.5) 0px 0px 10px 0px;
}
@@ -1138,8 +1167,8 @@ div.vis-color-picker div.vis-arrow {
left:5px;
}
-div.vis-color-picker div.vis-arrow:after,
-div.vis-color-picker div.vis-arrow:before {
+div.vis-color-picker div.vis-arrow::after,
+div.vis-color-picker div.vis-arrow::before {
right: 100%;
top: 50%;
border: solid transparent;
diff --git a/www/lib/vis/dist/vis.js b/www/lib/vis/dist/vis.js
index c577847b..538e2733 100644
--- a/www/lib/vis/dist/vis.js
+++ b/www/lib/vis/dist/vis.js
@@ -4,11 +4,11 @@
*
* A dynamic, browser-based visualization library.
*
- * @version 4.11.0
- * @date 2015-12-18
+ * @version 4.16.1
+ * @date 2016-04-18
*
* @license
- * Copyright (C) 2011-2015 Almende B.V, http://almende.com
+ * Copyright (C) 2011-2016 Almende B.V, http://almende.com
*
* Vis.js is dual licensed under both
*
@@ -81,93 +81,32 @@ return /******/ (function(modules) { // webpackBootstrap
/* 0 */
/***/ function(module, exports, __webpack_require__) {
- // utils
'use strict';
- exports.util = __webpack_require__(1);
- exports.DOMutil = __webpack_require__(7);
-
- // data
- exports.DataSet = __webpack_require__(8);
- exports.DataView = __webpack_require__(10);
- exports.Queue = __webpack_require__(9);
+ var util = __webpack_require__(1);
// Graph3d
- exports.Graph3d = __webpack_require__(11);
- exports.graph3d = {
- Camera: __webpack_require__(15),
- Filter: __webpack_require__(16),
- Point2d: __webpack_require__(14),
- Point3d: __webpack_require__(13),
- Slider: __webpack_require__(17),
- StepNumber: __webpack_require__(18)
- };
+ util.extend(exports, __webpack_require__(7));
- // Timeline
- exports.Timeline = __webpack_require__(19);
- exports.Graph2d = __webpack_require__(49);
- exports.timeline = {
- Core: __webpack_require__(28),
- DataStep: __webpack_require__(52),
- DateUtil: __webpack_require__(27),
- Range: __webpack_require__(24),
- stack: __webpack_require__(32),
- TimeStep: __webpack_require__(30),
-
- components: {
- items: {
- Item: __webpack_require__(34),
- BackgroundItem: __webpack_require__(38),
- BoxItem: __webpack_require__(36),
- PointItem: __webpack_require__(37),
- RangeItem: __webpack_require__(33)
- },
-
- BackgroundGroup: __webpack_require__(35),
- Component: __webpack_require__(26),
- CurrentTime: __webpack_require__(44),
- CustomTime: __webpack_require__(42),
- DataAxis: __webpack_require__(51),
- GraphGroup: __webpack_require__(53),
- Group: __webpack_require__(31),
- ItemSet: __webpack_require__(29),
- Legend: __webpack_require__(57),
- LineGraph: __webpack_require__(50),
- TimeAxis: __webpack_require__(39)
- }
- };
+ // Timeline & Graph2d
+ util.extend(exports, __webpack_require__(24));
// Network
- exports.Network = __webpack_require__(59);
- exports.network = {
- Images: __webpack_require__(117),
- dotparser: __webpack_require__(115),
- gephiParser: __webpack_require__(116),
- allOptions: __webpack_require__(111)
- };
- exports.network.convertDot = function (input) {
- return exports.network.dotparser.DOTToGraph(input);
- };
- exports.network.convertGephi = function (input, options) {
- return exports.network.gephiParser.parseGephi(input, options);
- };
-
- // bundled external libraries
- exports.moment = __webpack_require__(2);
- exports.Hammer = __webpack_require__(20);
- exports.keycharm = __webpack_require__(41);
+ util.extend(exports, __webpack_require__(60));
/***/ },
/* 1 */
/***/ 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; };
+
// utility functions
// first check if moment.js is already loaded in the browser window, if so,
// use this instance. Else, load via commonjs.
- 'use strict';
-
var moment = __webpack_require__(2);
var uuid = __webpack_require__(6);
@@ -258,7 +197,7 @@ return /******/ (function(modules) { // webpackBootstrap
exports.assignAllKeys = function (obj, value) {
for (var prop in obj) {
if (obj.hasOwnProperty(prop)) {
- if (typeof obj[prop] !== 'object') {
+ if (_typeof(obj[prop]) !== 'object') {
obj[prop] = value;
}
}
@@ -276,14 +215,14 @@ return /******/ (function(modules) { // webpackBootstrap
for (var prop in a) {
if (b[prop] !== undefined) {
- if (typeof b[prop] !== 'object') {
+ if (_typeof(b[prop]) !== 'object') {
if ((b[prop] === undefined || b[prop] === null) && a[prop] !== undefined && allowDeletion === true) {
delete a[prop];
} else {
a[prop] = b[prop];
}
} else {
- if (typeof a[prop] === 'object') {
+ if (_typeof(a[prop]) === 'object') {
exports.fillIfDefined(a[prop], b[prop], allowDeletion);
}
}
@@ -645,7 +584,7 @@ return /******/ (function(modules) { // webpackBootstrap
* @return {String} type
*/
exports.getType = function (object) {
- var type = typeof object;
+ var type = typeof object === 'undefined' ? 'undefined' : _typeof(object);
if (type == 'object') {
if (object === null) {
@@ -721,6 +660,10 @@ return /******/ (function(modules) { // webpackBootstrap
return elem.getBoundingClientRect().left;
};
+ exports.getAbsoluteRight = function (elem) {
+ return elem.getBoundingClientRect().right;
+ };
+
/**
* Retrieve the absolute top value of a DOM element
* @param {Element} elem A dom element, for example a div
@@ -1321,11 +1264,11 @@ return /******/ (function(modules) { // webpackBootstrap
* @returns {*}
*/
exports.selectiveBridgeObject = function (fields, referenceObject) {
- if (typeof referenceObject == "object") {
+ if ((typeof referenceObject === 'undefined' ? 'undefined' : _typeof(referenceObject)) == "object") {
var objectTo = Object.create(referenceObject);
for (var i = 0; i < fields.length; i++) {
if (referenceObject.hasOwnProperty(fields[i])) {
- if (typeof referenceObject[fields[i]] == "object") {
+ if (_typeof(referenceObject[fields[i]]) == "object") {
objectTo[fields[i]] = exports.bridgeObject(referenceObject[fields[i]]);
}
}
@@ -1344,11 +1287,11 @@ return /******/ (function(modules) { // webpackBootstrap
* @returns {*}
*/
exports.bridgeObject = function (referenceObject) {
- if (typeof referenceObject == "object") {
+ if ((typeof referenceObject === 'undefined' ? 'undefined' : _typeof(referenceObject)) == "object") {
var objectTo = Object.create(referenceObject);
for (var i in referenceObject) {
if (referenceObject.hasOwnProperty(i)) {
- if (typeof referenceObject[i] == "object") {
+ if (_typeof(referenceObject[i]) == "object") {
objectTo[i] = exports.bridgeObject(referenceObject[i]);
}
}
@@ -1384,7 +1327,6 @@ return /******/ (function(modules) { // webpackBootstrap
* @param [object] mergeTarget | this is either this.options or the options used for the groups.
* @param [object] options | options
* @param [String] option | this is the option key in the options argument
- * @private
*/
exports.mergeOptions = function (mergeTarget, options, option) {
var allowDeletion = arguments.length <= 3 || arguments[3] === undefined ? false : arguments[3];
@@ -1415,13 +1357,13 @@ return /******/ (function(modules) { // webpackBootstrap
* this function will then iterate in both directions over this sorted list to find all visible items.
*
* @param {Item[]} orderedItems | Items ordered by start
- * @param {function} searchFunction | -1 is lower, 0 is found, 1 is higher
+ * @param {function} comparator | -1 is lower, 0 is equal, 1 is higher
* @param {String} field
* @param {String} field2
* @returns {number}
* @private
*/
- exports.binarySearchCustom = function (orderedItems, searchFunction, field, field2) {
+ exports.binarySearchCustom = function (orderedItems, comparator, field, field2) {
var maxIterations = 10000;
var iteration = 0;
var low = 0;
@@ -1433,7 +1375,7 @@ return /******/ (function(modules) { // webpackBootstrap
var item = orderedItems[middle];
var value = field2 === undefined ? item[field] : item[field][field2];
- var searchResult = searchFunction(value);
+ var searchResult = comparator(value);
if (searchResult == 0) {
// jihaa, found a visible item!
return middle;
@@ -1460,16 +1402,21 @@ return /******/ (function(modules) { // webpackBootstrap
* @param {{start: number, end: number}} target
* @param {String} field
* @param {String} sidePreference 'before' or 'after'
+ * @param {function} comparator an optional comparator, returning -1,0,1 for <,==,>.
* @returns {number}
* @private
*/
- exports.binarySearchValue = function (orderedItems, target, field, sidePreference) {
+ exports.binarySearchValue = function (orderedItems, target, field, sidePreference, comparator) {
var maxIterations = 10000;
var iteration = 0;
var low = 0;
var high = orderedItems.length - 1;
var prevValue, value, nextValue, middle;
+ var comparator = comparator != undefined ? comparator : function (a, b) {
+ return a == b ? 0 : a < b ? -1 : 1;
+ };
+
while (low <= high && iteration < maxIterations) {
// get a new guess
middle = Math.floor(0.5 * (high + low));
@@ -1477,18 +1424,18 @@ return /******/ (function(modules) { // webpackBootstrap
value = orderedItems[middle][field];
nextValue = orderedItems[Math.min(orderedItems.length - 1, middle + 1)][field];
- if (value == target) {
+ if (comparator(value, target) == 0) {
// we found the target
return middle;
- } else if (prevValue < target && value > target) {
+ } else if (comparator(prevValue, target) < 0 && comparator(value, target) > 0) {
// target is in between of the previous and the current
return sidePreference == 'before' ? Math.max(0, middle - 1) : middle;
- } else if (value < target && nextValue > target) {
+ } else if (comparator(value, target) < 0 && comparator(nextValue, target) > 0) {
// target is in between of the current and the next
return sidePreference == 'before' ? middle : Math.min(orderedItems.length - 1, middle + 1);
} else {
// didnt find the target, we need to change our boundaries.
- if (value < target) {
+ if (comparator(value, target) < 0) {
// it is too small --> increase low
low = middle + 1;
} else {
@@ -1567,10 +1514,10 @@ return /******/ (function(modules) { // webpackBootstrap
/* 2 */
/***/ function(module, exports, __webpack_require__) {
- // first check if moment.js is already loaded in the browser window, if so,
- // use this instance. Else, load via commonjs.
'use strict';
+ // first check if moment.js is already loaded in the browser window, if so,
+ // use this instance. Else, load via commonjs.
module.exports = typeof window !== 'undefined' && window['moment'] || __webpack_require__(3);
/***/ },
@@ -1578,12 +1525,12 @@ return /******/ (function(modules) { // webpackBootstrap
/***/ function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(module) {//! moment.js
- //! version : 2.10.6
+ //! version : 2.13.0
//! authors : Tim Wood, Iskren Chernev, Moment.js contributors
//! license : MIT
//! momentjs.com
- (function (global, factory) {
+ ;(function (global, factory) {
true ? module.exports = factory() :
typeof define === 'function' && define.amd ? define(factory) :
global.moment = factory()
@@ -1602,7 +1549,7 @@ return /******/ (function(modules) { // webpackBootstrap
}
function isArray(input) {
- return Object.prototype.toString.call(input) === '[object Array]';
+ return input instanceof Array || Object.prototype.toString.call(input) === '[object Array]';
}
function isDate(input) {
@@ -1655,7 +1602,9 @@ return /******/ (function(modules) { // webpackBootstrap
invalidMonth : null,
invalidFormat : false,
userInvalidated : false,
- iso : false
+ iso : false,
+ parsedDateParts : [],
+ meridiem : null
};
}
@@ -1666,9 +1615,30 @@ return /******/ (function(modules) { // webpackBootstrap
return m._pf;
}
+ var some;
+ if (Array.prototype.some) {
+ some = Array.prototype.some;
+ } else {
+ some = function (fun) {
+ var t = Object(this);
+ var len = t.length >>> 0;
+
+ for (var i = 0; i < len; i++) {
+ if (i in t && fun.call(this, t[i], i, t)) {
+ return true;
+ }
+ }
+
+ return false;
+ };
+ }
+
function valid__isValid(m) {
if (m._isValid == null) {
var flags = getParsingFlags(m);
+ var parsedParts = some.call(flags.parsedDateParts, function (i) {
+ return i != null;
+ });
m._isValid = !isNaN(m._d.getTime()) &&
flags.overflow < 0 &&
!flags.empty &&
@@ -1676,7 +1646,8 @@ return /******/ (function(modules) { // webpackBootstrap
!flags.invalidWeekday &&
!flags.nullInput &&
!flags.invalidFormat &&
- !flags.userInvalidated;
+ !flags.userInvalidated &&
+ (!flags.meridiem || (flags.meridiem && parsedParts));
if (m._strict) {
m._isValid = m._isValid &&
@@ -1700,39 +1671,45 @@ return /******/ (function(modules) { // webpackBootstrap
return m;
}
+ function isUndefined(input) {
+ return input === void 0;
+ }
+
+ // Plugins that add properties should also add the key here (null value),
+ // so we can properly clone ourselves.
var momentProperties = utils_hooks__hooks.momentProperties = [];
function copyConfig(to, from) {
var i, prop, val;
- if (typeof from._isAMomentObject !== 'undefined') {
+ if (!isUndefined(from._isAMomentObject)) {
to._isAMomentObject = from._isAMomentObject;
}
- if (typeof from._i !== 'undefined') {
+ if (!isUndefined(from._i)) {
to._i = from._i;
}
- if (typeof from._f !== 'undefined') {
+ if (!isUndefined(from._f)) {
to._f = from._f;
}
- if (typeof from._l !== 'undefined') {
+ if (!isUndefined(from._l)) {
to._l = from._l;
}
- if (typeof from._strict !== 'undefined') {
+ if (!isUndefined(from._strict)) {
to._strict = from._strict;
}
- if (typeof from._tzm !== 'undefined') {
+ if (!isUndefined(from._tzm)) {
to._tzm = from._tzm;
}
- if (typeof from._isUTC !== 'undefined') {
+ if (!isUndefined(from._isUTC)) {
to._isUTC = from._isUTC;
}
- if (typeof from._offset !== 'undefined') {
+ if (!isUndefined(from._offset)) {
to._offset = from._offset;
}
- if (typeof from._pf !== 'undefined') {
+ if (!isUndefined(from._pf)) {
to._pf = getParsingFlags(from);
}
- if (typeof from._locale !== 'undefined') {
+ if (!isUndefined(from._locale)) {
to._locale = from._locale;
}
@@ -1740,7 +1717,7 @@ return /******/ (function(modules) { // webpackBootstrap
for (i in momentProperties) {
prop = momentProperties[i];
val = from[prop];
- if (typeof val !== 'undefined') {
+ if (!isUndefined(val)) {
to[prop] = val;
}
}
@@ -1787,6 +1764,7 @@ return /******/ (function(modules) { // webpackBootstrap
return value;
}
+ // compare two arrays, return the number of differences
function compareArrays(array1, array2, dontConvert) {
var len = Math.min(array1.length, array2.length),
lengthDiff = Math.abs(array1.length - array2.length),
@@ -1801,9 +1779,108 @@ return /******/ (function(modules) { // webpackBootstrap
return diffs + lengthDiff;
}
- function Locale() {
+ function warn(msg) {
+ if (utils_hooks__hooks.suppressDeprecationWarnings === false &&
+ (typeof console !== 'undefined') && console.warn) {
+ console.warn('Deprecation warning: ' + msg);
+ }
+ }
+
+ function deprecate(msg, fn) {
+ var firstTime = true;
+
+ return extend(function () {
+ if (utils_hooks__hooks.deprecationHandler != null) {
+ utils_hooks__hooks.deprecationHandler(null, msg);
+ }
+ if (firstTime) {
+ warn(msg + '\nArguments: ' + Array.prototype.slice.call(arguments).join(', ') + '\n' + (new Error()).stack);
+ firstTime = false;
+ }
+ return fn.apply(this, arguments);
+ }, fn);
+ }
+
+ var deprecations = {};
+
+ function deprecateSimple(name, msg) {
+ if (utils_hooks__hooks.deprecationHandler != null) {
+ utils_hooks__hooks.deprecationHandler(name, msg);
+ }
+ if (!deprecations[name]) {
+ warn(msg);
+ deprecations[name] = true;
+ }
+ }
+
+ utils_hooks__hooks.suppressDeprecationWarnings = false;
+ utils_hooks__hooks.deprecationHandler = null;
+
+ function isFunction(input) {
+ 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) {
+ prop = config[i];
+ if (isFunction(prop)) {
+ this[i] = prop;
+ } else {
+ this['_' + i] = prop;
+ }
+ }
+ this._config = config;
+ // Lenient ordinal parsing accepts just a number in addition to
+ // number + (possibly) stuff coming from _ordinalParseLenient.
+ this._ordinalParseLenient = new RegExp(this._ordinalParse.source + '|' + (/\d{1,2}/).source);
+ }
+
+ function mergeConfigs(parentConfig, childConfig) {
+ var res = extend({}, parentConfig), prop;
+ for (prop in childConfig) {
+ if (hasOwnProp(childConfig, prop)) {
+ if (isObject(parentConfig[prop]) && isObject(childConfig[prop])) {
+ res[prop] = {};
+ extend(res[prop], parentConfig[prop]);
+ extend(res[prop], childConfig[prop]);
+ } else if (childConfig[prop] != null) {
+ res[prop] = childConfig[prop];
+ } else {
+ delete res[prop];
+ }
+ }
+ }
+ return res;
+ }
+
+ function Locale(config) {
+ if (config != null) {
+ this.set(config);
+ }
}
+ var keys;
+
+ if (Object.keys) {
+ keys = Object.keys;
+ } else {
+ keys = function (obj) {
+ var i, res = [];
+ for (i in obj) {
+ if (hasOwnProp(obj, i)) {
+ res.push(i);
+ }
+ }
+ return res;
+ };
+ }
+
+ // internal storage for locale config files
var locales = {};
var globalLocale;
@@ -1841,7 +1918,7 @@ return /******/ (function(modules) { // webpackBootstrap
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' &&
+ if (!locales[name] && (typeof module !== 'undefined') &&
module && module.exports) {
try {
oldLocale = globalLocale._abbr;
@@ -1860,7 +1937,7 @@ return /******/ (function(modules) { // webpackBootstrap
function locale_locales__getSetGlobalLocale (key, values) {
var data;
if (key) {
- if (typeof values === 'undefined') {
+ if (isUndefined(values)) {
data = locale_locales__getLocale(key);
}
else {
@@ -1876,11 +1953,25 @@ return /******/ (function(modules) { // webpackBootstrap
return globalLocale._abbr;
}
- function defineLocale (name, values) {
- if (values !== null) {
- values.abbr = name;
- locales[name] = locales[name] || new Locale();
- locales[name].set(values);
+ 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);
@@ -1893,6 +1984,31 @@ return /******/ (function(modules) { // webpackBootstrap
}
}
+ 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;
+
+ // 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;
@@ -1917,6 +2033,10 @@ return /******/ (function(modules) { // webpackBootstrap
return chooseLocale(key);
}
+ function locale_locales__listLocales() {
+ return keys(locales);
+ }
+
var aliases = {};
function addUnitAlias (unit, shorthand) {
@@ -1958,11 +2078,14 @@ return /******/ (function(modules) { // webpackBootstrap
}
function get_set__get (mom, unit) {
- return mom._d['get' + (mom._isUTC ? 'UTC' : '') + unit]();
+ return mom.isValid() ?
+ mom._d['get' + (mom._isUTC ? 'UTC' : '') + unit]() : NaN;
}
function get_set__set (mom, unit, value) {
- return mom._d['set' + (mom._isUTC ? 'UTC' : '') + unit](value);
+ if (mom.isValid()) {
+ mom._d['set' + (mom._isUTC ? 'UTC' : '') + unit](value);
+ }
}
// MOMENTS
@@ -1975,7 +2098,7 @@ return /******/ (function(modules) { // webpackBootstrap
}
} else {
units = normalizeUnits(units);
- if (typeof this[units] === 'function') {
+ if (isFunction(this[units])) {
return this[units](value);
}
}
@@ -1990,7 +2113,7 @@ return /******/ (function(modules) { // webpackBootstrap
Math.pow(10, Math.max(0, zerosToFill)).toString().substr(1) + absNumber;
}
- var formattingTokens = /(\[[^\[]*\])|(\\)?(Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Q|YYYYYY|YYYYY|YYYY|YY|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g;
+ var formattingTokens = /(\[[^\[]*\])|(\\)?([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;
var localFormattingTokens = /(\[[^\[]*\])|(\\)?(LTS|LT|LL?L?L?|l{1,4})/g;
@@ -2043,7 +2166,7 @@ return /******/ (function(modules) { // webpackBootstrap
}
return function (mom) {
- var output = '';
+ var output = '', i;
for (i = 0; i < length; i++) {
output += array[i] instanceof Function ? array[i].call(mom, format) : array[i];
}
@@ -2086,6 +2209,8 @@ return /******/ (function(modules) { // webpackBootstrap
var match4 = /\d{4}/; // 0000 - 9999
var match6 = /[+-]?\d{6}/; // -999999 - 999999
var match1to2 = /\d\d?/; // 0 - 99
+ var match3to4 = /\d\d\d\d?/; // 999 - 9999
+ var match5to6 = /\d\d\d\d\d\d?/; // 99999 - 999999
var match1to3 = /\d{1,3}/; // 0 - 999
var match1to4 = /\d{1,4}/; // 0 - 9999
var match1to6 = /[+-]?\d{1,6}/; // -999999 - 999999
@@ -2094,23 +2219,19 @@ return /******/ (function(modules) { // webpackBootstrap
var matchSigned = /[+-]?\d+/; // -inf - inf
var matchOffset = /Z|[+-]\d\d:?\d\d/gi; // +00:00 -00:00 +0000 -0000 or Z
+ var matchShortOffset = /Z|[+-]\d\d(?::?\d\d)?/gi; // +00 -00 +00:00 -00:00 +0000 -0000 or Z
var matchTimestamp = /[+-]?\d+(\.\d{1,3})?/; // 123456789 123456789.123
// any word (or two) characters or numbers including two/three word month in arabic.
+ // includes scottish gaelic two word and hyphenated months
var matchWord = /[0-9]*['a-z\u00A0-\u05FF\u0700-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]+|[\u0600-\u06FF\/]+(\s*?[\u0600-\u06FF]+){1,2}/i;
- var regexes = {};
-
- function isFunction (sth) {
- // https://github.com/moment/moment/issues/2325
- return typeof sth === 'function' &&
- Object.prototype.toString.call(sth) === '[object Function]';
- }
+ var regexes = {};
function addRegexToken (token, regex, strictRegex) {
- regexes[token] = isFunction(regex) ? regex : function (isStrict) {
+ regexes[token] = isFunction(regex) ? regex : function (isStrict, localeData) {
return (isStrict && strictRegex) ? strictRegex : regex;
};
}
@@ -2125,9 +2246,13 @@ return /******/ (function(modules) { // webpackBootstrap
// Code from http://stackoverflow.com/questions/3561493/is-there-a-regexp-escape-function-in-javascript
function unescapeFormat(s) {
- return s.replace('\\', '').replace(/\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g, function (matched, p1, p2, p3, p4) {
+ return regexEscape(s.replace('\\', '').replace(/\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g, function (matched, p1, p2, p3, p4) {
return p1 || p2 || p3 || p4;
- }).replace(/[-\/\\^$*+?.()|[\]{}]/g, '\\$&');
+ }));
+ }
+
+ function regexEscape(s) {
+ return s.replace(/[-\/\\^$*+?.()|[\]{}]/g, '\\$&');
}
var tokens = {};
@@ -2167,6 +2292,25 @@ return /******/ (function(modules) { // webpackBootstrap
var MINUTE = 4;
var SECOND = 5;
var MILLISECOND = 6;
+ var WEEK = 7;
+ var WEEKDAY = 8;
+
+ var indexOf;
+
+ if (Array.prototype.indexOf) {
+ indexOf = Array.prototype.indexOf;
+ } else {
+ indexOf = function (o) {
+ // I know
+ var i;
+ for (i = 0; i < this.length; ++i) {
+ if (this[i] === o) {
+ return i;
+ }
+ }
+ return -1;
+ };
+ }
function daysInMonth(year, month) {
return new Date(Date.UTC(year, month + 1, 0)).getUTCDate();
@@ -2194,8 +2338,12 @@ return /******/ (function(modules) { // webpackBootstrap
addRegexToken('M', match1to2);
addRegexToken('MM', match1to2, match2);
- addRegexToken('MMM', matchWord);
- addRegexToken('MMMM', matchWord);
+ addRegexToken('MMM', function (isStrict, locale) {
+ return locale.monthsShortRegex(isStrict);
+ });
+ addRegexToken('MMMM', function (isStrict, locale) {
+ return locale.monthsRegex(isStrict);
+ });
addParseToken(['M', 'MM'], function (input, array) {
array[MONTH] = toInt(input) - 1;
@@ -2213,25 +2361,76 @@ return /******/ (function(modules) { // webpackBootstrap
// LOCALES
+ 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) {
- return this._months[m.month()];
+ function localeMonths (m, format) {
+ return isArray(this._months) ? this._months[m.month()] :
+ this._months[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) {
- return this._monthsShort[m.month()];
+ function localeMonthsShort (m, format) {
+ return isArray(this._monthsShort) ? this._monthsShort[m.month()] :
+ this._monthsShort[MONTHS_IN_FORMAT.test(format) ? 'format' : 'standalone'][m.month()];
+ }
+
+ function units_month__handleStrictParse(monthName, format, strict) {
+ var i, ii, mom, llc = monthName.toLocaleLowerCase();
+ if (!this._monthsParse) {
+ // this is not used
+ this._monthsParse = [];
+ this._longMonthsParse = [];
+ this._shortMonthsParse = [];
+ for (i = 0; i < 12; ++i) {
+ mom = create_utc__createUTC([2000, i]);
+ this._shortMonthsParse[i] = this.monthsShort(mom, '').toLocaleLowerCase();
+ this._longMonthsParse[i] = this.months(mom, '').toLocaleLowerCase();
+ }
+ }
+
+ if (strict) {
+ if (format === 'MMM') {
+ ii = indexOf.call(this._shortMonthsParse, llc);
+ return ii !== -1 ? ii : null;
+ } else {
+ ii = indexOf.call(this._longMonthsParse, llc);
+ return ii !== -1 ? ii : null;
+ }
+ } else {
+ if (format === 'MMM') {
+ ii = indexOf.call(this._shortMonthsParse, llc);
+ if (ii !== -1) {
+ return ii;
+ }
+ ii = indexOf.call(this._longMonthsParse, llc);
+ return ii !== -1 ? ii : null;
+ } else {
+ ii = indexOf.call(this._longMonthsParse, llc);
+ if (ii !== -1) {
+ return ii;
+ }
+ ii = indexOf.call(this._shortMonthsParse, llc);
+ return ii !== -1 ? ii : null;
+ }
+ }
}
function localeMonthsParse (monthName, format, strict) {
var i, mom, regex;
+ if (this._monthsParseExact) {
+ return units_month__handleStrictParse.call(this, monthName, format, strict);
+ }
+
if (!this._monthsParse) {
this._monthsParse = [];
this._longMonthsParse = [];
this._shortMonthsParse = [];
}
+ // TODO: add sorting
+ // Sorting makes sure if one month (or abbr) is a prefix of another
+ // see sorting in computeMonthsParse
for (i = 0; i < 12; i++) {
// make the regex if we don't have it already
mom = create_utc__createUTC([2000, i]);
@@ -2259,12 +2458,20 @@ return /******/ (function(modules) { // webpackBootstrap
function setMonth (mom, value) {
var dayOfMonth;
- // TODO: Move this out of here!
+ if (!mom.isValid()) {
+ // No op
+ return mom;
+ }
+
if (typeof value === 'string') {
- value = mom.localeData().monthsParse(value);
- // TODO: Another silent failure?
- if (typeof value !== 'number') {
- return mom;
+ if (/^\d+$/.test(value)) {
+ value = toInt(value);
+ } else {
+ value = mom.localeData().monthsParse(value);
+ // TODO: Another silent failure?
+ if (typeof value !== 'number') {
+ return mom;
+ }
}
}
@@ -2287,6 +2494,72 @@ return /******/ (function(modules) { // webpackBootstrap
return daysInMonth(this.year(), this.month());
}
+ var defaultMonthsShortRegex = matchWord;
+ function monthsShortRegex (isStrict) {
+ if (this._monthsParseExact) {
+ if (!hasOwnProp(this, '_monthsRegex')) {
+ computeMonthsParse.call(this);
+ }
+ if (isStrict) {
+ return this._monthsShortStrictRegex;
+ } else {
+ return this._monthsShortRegex;
+ }
+ } else {
+ return this._monthsShortStrictRegex && isStrict ?
+ this._monthsShortStrictRegex : this._monthsShortRegex;
+ }
+ }
+
+ var defaultMonthsRegex = matchWord;
+ function monthsRegex (isStrict) {
+ if (this._monthsParseExact) {
+ if (!hasOwnProp(this, '_monthsRegex')) {
+ computeMonthsParse.call(this);
+ }
+ if (isStrict) {
+ return this._monthsStrictRegex;
+ } else {
+ return this._monthsRegex;
+ }
+ } else {
+ return this._monthsStrictRegex && isStrict ?
+ this._monthsStrictRegex : this._monthsRegex;
+ }
+ }
+
+ function computeMonthsParse () {
+ function cmpLenRev(a, b) {
+ return b.length - a.length;
+ }
+
+ var shortPieces = [], longPieces = [], mixedPieces = [],
+ i, mom;
+ for (i = 0; i < 12; i++) {
+ // make the regex if we don't have it already
+ mom = create_utc__createUTC([2000, i]);
+ shortPieces.push(this.monthsShort(mom, ''));
+ longPieces.push(this.months(mom, ''));
+ mixedPieces.push(this.months(mom, ''));
+ mixedPieces.push(this.monthsShort(mom, ''));
+ }
+ // Sorting makes sure if one month (or abbr) is a prefix of another it
+ // will match the longer piece.
+ shortPieces.sort(cmpLenRev);
+ longPieces.sort(cmpLenRev);
+ mixedPieces.sort(cmpLenRev);
+ for (i = 0; i < 12; i++) {
+ shortPieces[i] = regexEscape(shortPieces[i]);
+ longPieces[i] = regexEscape(longPieces[i]);
+ mixedPieces[i] = regexEscape(mixedPieces[i]);
+ }
+
+ this._monthsRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');
+ this._monthsShortRegex = this._monthsRegex;
+ this._monthsStrictRegex = new RegExp('^(' + longPieces.join('|') + ')', 'i');
+ this._monthsShortStrictRegex = new RegExp('^(' + shortPieces.join('|') + ')', 'i');
+ }
+
function checkOverflow (m) {
var overflow;
var a = m._a;
@@ -2304,6 +2577,12 @@ return /******/ (function(modules) { // webpackBootstrap
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;
}
@@ -2311,51 +2590,39 @@ return /******/ (function(modules) { // webpackBootstrap
return m;
}
- function warn(msg) {
- if (utils_hooks__hooks.suppressDeprecationWarnings === false && typeof console !== 'undefined' && console.warn) {
- console.warn('Deprecation warning: ' + msg);
- }
- }
-
- function deprecate(msg, fn) {
- var firstTime = true;
-
- return extend(function () {
- if (firstTime) {
- warn(msg + '\n' + (new Error()).stack);
- firstTime = false;
- }
- return fn.apply(this, arguments);
- }, fn);
- }
-
- var deprecations = {};
+ // 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)?)?/;
- function deprecateSimple(name, msg) {
- if (!deprecations[name]) {
- warn(msg);
- deprecations[name] = true;
- }
- }
-
- utils_hooks__hooks.suppressDeprecationWarnings = false;
-
- var from_string__isoRegex = /^\s*(?:[+-]\d{6}|\d{4})-(?:(\d\d-\d\d)|(W\d\d$)|(W\d\d-\d)|(\d\d\d))((T| )(\d\d(:\d\d(:\d\d(\.\d+)?)?)?)?([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?$/;
+ var tzRegex = /Z|[+-]\d\d(?::?\d\d)?/;
var isoDates = [
- ['YYYYYY-MM-DD', /[+-]\d{6}-\d{2}-\d{2}/],
- ['YYYY-MM-DD', /\d{4}-\d{2}-\d{2}/],
- ['GGGG-[W]WW-E', /\d{4}-W\d{2}-\d/],
- ['GGGG-[W]WW', /\d{4}-W\d{2}/],
- ['YYYY-DDD', /\d{4}-\d{3}/]
+ ['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', /(T| )\d\d:\d\d:\d\d\.\d+/],
- ['HH:mm:ss', /(T| )\d\d:\d\d:\d\d/],
- ['HH:mm', /(T| )\d\d:\d\d/],
- ['HH', /(T| )\d\d/]
+ ['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;
@@ -2364,26 +2631,49 @@ return /******/ (function(modules) { // webpackBootstrap
function configFromISO(config) {
var i, l,
string = config._i,
- match = from_string__isoRegex.exec(string);
+ 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(string)) {
- config._f = isoDates[i][0];
+ if (isoDates[i][1].exec(match[1])) {
+ dateFormat = isoDates[i][0];
+ allowTime = isoDates[i][2] !== false;
break;
}
}
- for (i = 0, l = isoTimes.length; i < l; i++) {
- if (isoTimes[i][1].exec(string)) {
- // match[6] should be 'T' or space
- config._f += (match[6] || ' ') + isoTimes[i][0];
- 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 (string.match(matchOffset)) {
- config._f += 'Z';
+ 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;
@@ -2421,8 +2711,8 @@ return /******/ (function(modules) { // webpackBootstrap
//http://stackoverflow.com/questions/181348/instantiating-a-javascript-object-by-calling-prototype-constructor-apply
var date = new Date(y, m, d, h, M, s, ms);
- //the date constructor doesn't accept years < 1970
- if (y < 1970) {
+ //the date constructor remaps years 0-99 to 1900-1999
+ if (y < 100 && y >= 0 && isFinite(date.getFullYear())) {
date.setFullYear(y);
}
return date;
@@ -2430,12 +2720,21 @@ return /******/ (function(modules) { // webpackBootstrap
function createUTCDate (y) {
var date = new Date(Date.UTC.apply(null, arguments));
- if (y < 1970) {
+
+ //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 () {
+ var y = this.year();
+ return y <= 9999 ? '' + y : '+' + y;
+ });
+
addFormatToken(0, ['YY', 2], 0, function () {
return this.year() % 100;
});
@@ -2463,6 +2762,9 @@ return /******/ (function(modules) { // webpackBootstrap
addParseToken('YY', function (input, array) {
array[YEAR] = utils_hooks__hooks.parseTwoDigitYear(input);
});
+ addParseToken('Y', function (input, array) {
+ array[YEAR] = parseInt(input, 10);
+ });
// HELPERS
@@ -2482,130 +2784,72 @@ return /******/ (function(modules) { // webpackBootstrap
// MOMENTS
- var getSetYear = makeGetSet('FullYear', false);
+ var getSetYear = makeGetSet('FullYear', true);
function getIsLeapYear () {
return isLeapYear(this.year());
}
- addFormatToken('w', ['ww', 2], 'wo', 'week');
- addFormatToken('W', ['WW', 2], 'Wo', 'isoWeek');
-
- // ALIASES
-
- addUnitAlias('week', 'w');
- addUnitAlias('isoWeek', 'W');
-
- // PARSING
-
- addRegexToken('w', match1to2);
- addRegexToken('ww', match1to2, match2);
- addRegexToken('W', match1to2);
- addRegexToken('WW', match1to2, match2);
-
- addWeekParseToken(['w', 'ww', 'W', 'WW'], function (input, week, config, token) {
- week[token.substr(0, 1)] = toInt(input);
- });
-
- // HELPERS
+ // 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)
+ fwd = 7 + dow - doy,
+ // first-week day local weekday -- which local weekday is fwd
+ fwdlw = (7 + createUTCDate(year, 0, fwd).getUTCDay() - dow) % 7;
- // firstDayOfWeek 0 = sun, 6 = sat
- // the day of the week that starts the week
- // (usually sunday or monday)
- // firstDayOfWeekOfYear 0 = sun, 6 = sat
- // the first week is the week that contains the first
- // of this day of the week
- // (eg. ISO weeks use thursday (4))
- function weekOfYear(mom, firstDayOfWeek, firstDayOfWeekOfYear) {
- var end = firstDayOfWeekOfYear - firstDayOfWeek,
- daysToDayOfWeek = firstDayOfWeekOfYear - mom.day(),
- adjustedMoment;
-
-
- if (daysToDayOfWeek > end) {
- daysToDayOfWeek -= 7;
- }
+ return -fwdlw + fwd - 1;
+ }
- if (daysToDayOfWeek < end - 7) {
- daysToDayOfWeek += 7;
+ //http://en.wikipedia.org/wiki/ISO_week_date#Calculating_a_date_given_the_year.2C_week_number_and_weekday
+ function dayOfYearFromWeeks(year, week, weekday, dow, doy) {
+ var localWeekday = (7 + weekday - dow) % 7,
+ weekOffset = firstWeekOffset(year, dow, doy),
+ dayOfYear = 1 + 7 * (week - 1) + localWeekday + weekOffset,
+ resYear, resDayOfYear;
+
+ if (dayOfYear <= 0) {
+ resYear = year - 1;
+ resDayOfYear = daysInYear(resYear) + dayOfYear;
+ } else if (dayOfYear > daysInYear(year)) {
+ resYear = year + 1;
+ resDayOfYear = dayOfYear - daysInYear(year);
+ } else {
+ resYear = year;
+ resDayOfYear = dayOfYear;
}
- adjustedMoment = local__createLocal(mom).add(daysToDayOfWeek, 'd');
return {
- week: Math.ceil(adjustedMoment.dayOfYear() / 7),
- year: adjustedMoment.year()
+ year: resYear,
+ dayOfYear: resDayOfYear
};
}
- // LOCALES
-
- function localeWeek (mom) {
- return weekOfYear(mom, this._week.dow, this._week.doy).week;
- }
-
- var defaultLocaleWeek = {
- dow : 0, // Sunday is the first day of the week.
- doy : 6 // The week that contains Jan 1st is the first week of the year.
- };
-
- function localeFirstDayOfWeek () {
- return this._week.dow;
- }
-
- function localeFirstDayOfYear () {
- return this._week.doy;
- }
-
- // MOMENTS
-
- function getSetWeek (input) {
- var week = this.localeData().week(this);
- return input == null ? week : this.add((input - week) * 7, 'd');
- }
-
- function getSetISOWeek (input) {
- var week = weekOfYear(this, 1, 4).week;
- return input == null ? week : this.add((input - week) * 7, 'd');
- }
-
- addFormatToken('DDD', ['DDDD', 3], 'DDDo', 'dayOfYear');
-
- // ALIASES
-
- addUnitAlias('dayOfYear', 'DDD');
-
- // PARSING
+ function weekOfYear(mom, dow, doy) {
+ var weekOffset = firstWeekOffset(mom.year(), dow, doy),
+ week = Math.floor((mom.dayOfYear() - weekOffset - 1) / 7) + 1,
+ resWeek, resYear;
- addRegexToken('DDD', match1to3);
- addRegexToken('DDDD', match3);
- addParseToken(['DDD', 'DDDD'], function (input, array, config) {
- config._dayOfYear = toInt(input);
- });
-
- // HELPERS
-
- //http://en.wikipedia.org/wiki/ISO_week_date#Calculating_a_date_given_the_year.2C_week_number_and_weekday
- function dayOfYearFromWeeks(year, week, weekday, firstDayOfWeekOfYear, firstDayOfWeek) {
- var week1Jan = 6 + firstDayOfWeek - firstDayOfWeekOfYear, janX = createUTCDate(year, 0, 1 + week1Jan), d = janX.getUTCDay(), dayOfYear;
- if (d < firstDayOfWeek) {
- d += 7;
+ if (week < 1) {
+ resYear = mom.year() - 1;
+ resWeek = week + weeksInYear(resYear, dow, doy);
+ } else if (week > weeksInYear(mom.year(), dow, doy)) {
+ resWeek = week - weeksInYear(mom.year(), dow, doy);
+ resYear = mom.year() + 1;
+ } else {
+ resYear = mom.year();
+ resWeek = week;
}
- weekday = weekday != null ? 1 * weekday : firstDayOfWeek;
-
- dayOfYear = 1 + week1Jan + 7 * (week - 1) - d + weekday;
-
return {
- year: dayOfYear > 0 ? year : year - 1,
- dayOfYear: dayOfYear > 0 ? dayOfYear : daysInYear(year - 1) + dayOfYear
+ week: resWeek,
+ year: resYear
};
}
- // 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 weeksInYear(year, dow, doy) {
+ var weekOffset = firstWeekOffset(year, dow, doy),
+ weekOffsetNext = firstWeekOffset(year + 1, dow, doy);
+ return (daysInYear(year) - weekOffset + weekOffsetNext) / 7;
}
// Pick the first defined of two or three arguments.
@@ -2620,11 +2864,12 @@ return /******/ (function(modules) { // webpackBootstrap
}
function currentDateArray(config) {
- var now = new Date();
+ // hooks is actually the exported moment object
+ var nowValue = new Date(utils_hooks__hooks.now());
if (config._useUTC) {
- return [now.getUTCFullYear(), now.getUTCMonth(), now.getUTCDate()];
+ return [nowValue.getUTCFullYear(), nowValue.getUTCMonth(), nowValue.getUTCDate()];
}
- return [now.getFullYear(), now.getMonth(), now.getDate()];
+ return [nowValue.getFullYear(), nowValue.getMonth(), nowValue.getDate()];
}
// convert an array to a date.
@@ -2694,7 +2939,7 @@ return /******/ (function(modules) { // webpackBootstrap
}
function dayOfYearFromWeekInfo(config) {
- var w, weekYear, week, weekday, dow, doy, temp;
+ var w, weekYear, week, weekday, dow, doy, temp, weekdayOverflow;
w = config._w;
if (w.GG != null || w.W != null || w.E != null) {
@@ -2708,6 +2953,9 @@ return /******/ (function(modules) { // webpackBootstrap
weekYear = defaults(w.GG, config._a[YEAR], weekOfYear(local__createLocal(), 1, 4).year);
week = defaults(w.W, 1);
weekday = defaults(w.E, 1);
+ if (weekday < 1 || weekday > 7) {
+ weekdayOverflow = true;
+ }
} else {
dow = config._locale._week.dow;
doy = config._locale._week.doy;
@@ -2718,23 +2966,32 @@ return /******/ (function(modules) { // webpackBootstrap
if (w.d != null) {
// weekday -- low day numbers are considered next week
weekday = w.d;
- if (weekday < dow) {
- ++week;
+ if (weekday < 0 || weekday > 6) {
+ weekdayOverflow = true;
}
} else if (w.e != null) {
// local weekday -- counting starts from begining of week
weekday = w.e + dow;
+ if (w.e < 0 || w.e > 6) {
+ weekdayOverflow = true;
+ }
} else {
// default to begining of week
weekday = dow;
}
}
- temp = dayOfYearFromWeeks(weekYear, week, weekday, doy, dow);
-
- config._a[YEAR] = temp.year;
- config._dayOfYear = temp.dayOfYear;
+ if (week < 1 || week > weeksInYear(weekYear, dow, doy)) {
+ getParsingFlags(config)._overflowWeeks = true;
+ } else if (weekdayOverflow != null) {
+ getParsingFlags(config)._overflowWeekday = true;
+ } else {
+ temp = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy);
+ config._a[YEAR] = temp.year;
+ config._dayOfYear = temp.dayOfYear;
+ }
}
+ // constant that refers to the ISO standard
utils_hooks__hooks.ISO_8601 = function () {};
// date from string and format string
@@ -2759,6 +3016,8 @@ return /******/ (function(modules) { // webpackBootstrap
for (i = 0; i < tokens.length; i++) {
token = tokens[i];
parsedInput = (string.match(getParseRegexForToken(token, config)) || [])[0];
+ // console.log('token', token, 'parsedInput', parsedInput,
+ // 'regex', getParseRegexForToken(token, config));
if (parsedInput) {
skipped = string.substr(0, string.indexOf(parsedInput));
if (skipped.length > 0) {
@@ -2794,6 +3053,9 @@ return /******/ (function(modules) { // webpackBootstrap
config._a[HOUR] > 0) {
getParsingFlags(config).bigHour = undefined;
}
+
+ getParsingFlags(config).parsedDateParts = config._a.slice(0);
+ getParsingFlags(config).meridiem = config._meridiem;
// handle meridiem
config._a[HOUR] = meridiemFixWrap(config._locale, config._a[HOUR], config._meridiem);
@@ -2827,6 +3089,7 @@ return /******/ (function(modules) { // webpackBootstrap
}
}
+ // date from string and array of format strings
function configFromStringAndArray(config) {
var tempConfig,
bestMoment,
@@ -2877,7 +3140,9 @@ return /******/ (function(modules) { // webpackBootstrap
}
var i = normalizeObjectUnits(config._i);
- config._a = [i.year, i.month, i.day || i.date, i.hour, i.minute, i.second, i.millisecond];
+ config._a = map([i.year, i.month, i.day || i.date, i.hour, i.minute, i.second, i.millisecond], function (obj) {
+ return obj && parseInt(obj, 10);
+ });
configFromArray(config);
}
@@ -2919,15 +3184,19 @@ return /******/ (function(modules) { // webpackBootstrap
configFromInput(config);
}
+ if (!valid__isValid(config)) {
+ config._d = null;
+ }
+
return config;
}
function configFromInput(config) {
var input = config._i;
if (input === undefined) {
- config._d = new Date();
+ config._d = new Date(utils_hooks__hooks.now());
} else if (isDate(input)) {
- config._d = new Date(+input);
+ config._d = new Date(input.valueOf());
} else if (typeof input === 'string') {
configFromString(config);
} else if (isArray(input)) {
@@ -2969,18 +3238,26 @@ return /******/ (function(modules) { // webpackBootstrap
}
var prototypeMin = deprecate(
- 'moment().min is deprecated, use moment.min instead. https://github.com/moment/moment/issues/1548',
+ 'moment().min is deprecated, use moment.max instead. https://github.com/moment/moment/issues/1548',
function () {
var other = local__createLocal.apply(null, arguments);
- return other < this ? this : other;
+ if (this.isValid() && other.isValid()) {
+ return other < this ? this : other;
+ } else {
+ return valid__createInvalid();
+ }
}
);
var prototypeMax = deprecate(
- 'moment().max is deprecated, use moment.max instead. https://github.com/moment/moment/issues/1548',
+ 'moment().max is deprecated, use moment.min instead. https://github.com/moment/moment/issues/1548',
function () {
var other = local__createLocal.apply(null, arguments);
- return other > this ? this : other;
+ if (this.isValid() && other.isValid()) {
+ return other > this ? this : other;
+ } else {
+ return valid__createInvalid();
+ }
}
);
@@ -3019,6 +3296,10 @@ return /******/ (function(modules) { // webpackBootstrap
return pickBy('isAfter', args);
}
+ var now = function () {
+ return Date.now ? Date.now() : +(new Date());
+ };
+
function Duration (duration) {
var normalizedInput = normalizeObjectUnits(duration),
years = normalizedInput.year || 0,
@@ -3035,7 +3316,7 @@ return /******/ (function(modules) { // webpackBootstrap
this._milliseconds = +milliseconds +
seconds * 1e3 + // 1000
minutes * 6e4 + // 1000 * 60
- hours * 36e5; // 1000 * 60 * 60
+ hours * 1000 * 60 * 60; //using 1000 * 60 * 60 instead of 36e5 to avoid floating point rounding errors https://github.com/moment/moment/issues/2978
// Because of dateAddRemove treats 24 hours as different from a
// day when working around DST, we need to store them separately
this._days = +days +
@@ -3058,6 +3339,8 @@ return /******/ (function(modules) { // webpackBootstrap
return obj instanceof Duration;
}
+ // FORMATTING
+
function offset (token, separator) {
addFormatToken(token, 0, 0, function () {
var offset = this.utcOffset();
@@ -3075,11 +3358,11 @@ return /******/ (function(modules) { // webpackBootstrap
// PARSING
- addRegexToken('Z', matchOffset);
- addRegexToken('ZZ', matchOffset);
+ addRegexToken('Z', matchShortOffset);
+ addRegexToken('ZZ', matchShortOffset);
addParseToken(['Z', 'ZZ'], function (input, array, config) {
config._useUTC = true;
- config._tzm = offsetFromString(input);
+ config._tzm = offsetFromString(matchShortOffset, input);
});
// HELPERS
@@ -3089,8 +3372,8 @@ return /******/ (function(modules) { // webpackBootstrap
// '-1530' > ['-15', '30']
var chunkOffset = /([\+\-]|\d\d)/gi;
- function offsetFromString(string) {
- var matches = ((string || '').match(matchOffset) || []);
+ function offsetFromString(matcher, string) {
+ var matches = ((string || '').match(matcher) || []);
var chunk = matches[matches.length - 1] || [];
var parts = (chunk + '').match(chunkOffset) || ['-', 0, 0];
var minutes = +(parts[1] * 60) + toInt(parts[2]);
@@ -3103,9 +3386,9 @@ return /******/ (function(modules) { // webpackBootstrap
var res, diff;
if (model._isUTC) {
res = model.clone();
- diff = (isMoment(input) || isDate(input) ? +input : +local__createLocal(input)) - (+res);
+ diff = (isMoment(input) || isDate(input) ? input.valueOf() : local__createLocal(input).valueOf()) - res.valueOf();
// Use low-level api, because this fn is low-level api.
- res._d.setTime(+res._d + diff);
+ res._d.setTime(res._d.valueOf() + diff);
utils_hooks__hooks.updateOffset(res, false);
return res;
} else {
@@ -3140,11 +3423,13 @@ return /******/ (function(modules) { // webpackBootstrap
function getSetOffset (input, keepLocalTime) {
var offset = this._offset || 0,
localAdjust;
+ if (!this.isValid()) {
+ return input != null ? this : NaN;
+ }
if (input != null) {
if (typeof input === 'string') {
- input = offsetFromString(input);
- }
- if (Math.abs(input) < 16) {
+ input = offsetFromString(matchShortOffset, input);
+ } else if (Math.abs(input) < 16) {
input = input * 60;
}
if (!this._isUTC && keepLocalTime) {
@@ -3204,12 +3489,15 @@ return /******/ (function(modules) { // webpackBootstrap
if (this._tzm) {
this.utcOffset(this._tzm);
} else if (typeof this._i === 'string') {
- this.utcOffset(offsetFromString(this._i));
+ this.utcOffset(offsetFromString(matchOffset, this._i));
}
return this;
}
function hasAlignedHourOffset (input) {
+ if (!this.isValid()) {
+ return false;
+ }
input = input ? local__createLocal(input).utcOffset() : 0;
return (this.utcOffset() - input) % 60 === 0;
@@ -3223,7 +3511,7 @@ return /******/ (function(modules) { // webpackBootstrap
}
function isDaylightSavingTimeShifted () {
- if (typeof this._isDSTShifted !== 'undefined') {
+ if (!isUndefined(this._isDSTShifted)) {
return this._isDSTShifted;
}
@@ -3244,22 +3532,24 @@ return /******/ (function(modules) { // webpackBootstrap
}
function isLocal () {
- return !this._isUTC;
+ return this.isValid() ? !this._isUTC : false;
}
function isUtcOffset () {
- return this._isUTC;
+ return this.isValid() ? this._isUTC : false;
}
function isUtc () {
- return this._isUTC && this._offset === 0;
+ return this.isValid() ? this._isUTC && this._offset === 0 : false;
}
- var aspNetRegex = /(\-)?(?:(\d*)\.)?(\d+)\:(\d+)(?:\:(\d+)\.?(\d{3})?)?/;
+ // ASP.NET json date format regex
+ var aspNetRegex = /^(\-)?(?:(\d*)[. ])?(\d+)\:(\d+)(?:\:(\d+)\.?(\d{3})?\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
- var create__isoRegex = /^(-)?P(?:(?:([0-9,.]*)Y)?(?:([0-9,.]*)M)?(?:([0-9,.]*)D)?(?:T(?:([0-9,.]*)H)?(?:([0-9,.]*)M)?(?:([0-9,.]*)S)?)?|([0-9,.]*)W)$/;
+ // and further modified to allow for strings containing both week and day
+ var isoRegex = /^(-)?P(?:(-?[0-9,.]*)Y)?(?:(-?[0-9,.]*)M)?(?:(-?[0-9,.]*)W)?(?:(-?[0-9,.]*)D)?(?:T(?:(-?[0-9,.]*)H)?(?:(-?[0-9,.]*)M)?(?:(-?[0-9,.]*)S)?)?$/;
function create__createDuration (input, key) {
var duration = input,
@@ -3292,16 +3582,16 @@ return /******/ (function(modules) { // webpackBootstrap
s : toInt(match[SECOND]) * sign,
ms : toInt(match[MILLISECOND]) * sign
};
- } else if (!!(match = create__isoRegex.exec(input))) {
+ } else if (!!(match = isoRegex.exec(input))) {
sign = (match[1] === '-') ? -1 : 1;
duration = {
y : parseIso(match[2], sign),
M : parseIso(match[3], sign),
- d : parseIso(match[4], sign),
- h : parseIso(match[5], sign),
- m : parseIso(match[6], sign),
- s : parseIso(match[7], sign),
- w : parseIso(match[8], sign)
+ w : parseIso(match[4], sign),
+ d : parseIso(match[5], sign),
+ h : parseIso(match[6], sign),
+ m : parseIso(match[7], sign),
+ s : parseIso(match[8], sign)
};
} else if (duration == null) {// checks for null or undefined
duration = {};
@@ -3349,6 +3639,10 @@ return /******/ (function(modules) { // webpackBootstrap
function momentsDifference(base, other) {
var res;
+ if (!(base.isValid() && other.isValid())) {
+ return {milliseconds: 0, months: 0};
+ }
+
other = cloneWithOffset(other, base);
if (base.isBefore(other)) {
res = positiveMomentsDifference(base, other);
@@ -3361,6 +3655,15 @@ 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;
@@ -3379,12 +3682,18 @@ return /******/ (function(modules) { // webpackBootstrap
function add_subtract__addSubtract (mom, duration, isAdding, updateOffset) {
var milliseconds = duration._milliseconds,
- days = duration._days,
- months = duration._months;
+ days = absRound(duration._days),
+ months = absRound(duration._months);
+
+ if (!mom.isValid()) {
+ // No op
+ return;
+ }
+
updateOffset = updateOffset == null ? true : updateOffset;
if (milliseconds) {
- mom._d.setTime(+mom._d + milliseconds * isAdding);
+ mom._d.setTime(mom._d.valueOf() + milliseconds * isAdding);
}
if (days) {
get_set__set(mom, 'Date', get_set__get(mom, 'Date') + days * isAdding);
@@ -3412,7 +3721,10 @@ return /******/ (function(modules) { // webpackBootstrap
diff < 1 ? 'sameDay' :
diff < 2 ? 'nextDay' :
diff < 7 ? 'nextWeek' : 'sameElse';
- return this.format(formats && formats[format] || this.localeData().calendar(format, this, local__createLocal(now)));
+
+ var output = formats && (isFunction(formats[format]) ? formats[format]() : formats[format]);
+
+ return this.format(output || this.localeData().calendar(format, this, local__createLocal(now)));
}
function clone () {
@@ -3420,50 +3732,77 @@ return /******/ (function(modules) { // webpackBootstrap
}
function isAfter (input, units) {
- var inputMs;
- units = normalizeUnits(typeof units !== 'undefined' ? units : 'millisecond');
+ var localInput = isMoment(input) ? input : local__createLocal(input);
+ if (!(this.isValid() && localInput.isValid())) {
+ return false;
+ }
+ units = normalizeUnits(!isUndefined(units) ? units : 'millisecond');
if (units === 'millisecond') {
- input = isMoment(input) ? input : local__createLocal(input);
- return +this > +input;
+ return this.valueOf() > localInput.valueOf();
} else {
- inputMs = isMoment(input) ? +input : +local__createLocal(input);
- return inputMs < +this.clone().startOf(units);
+ return localInput.valueOf() < this.clone().startOf(units).valueOf();
}
}
function isBefore (input, units) {
- var inputMs;
- units = normalizeUnits(typeof units !== 'undefined' ? units : 'millisecond');
+ var localInput = isMoment(input) ? input : local__createLocal(input);
+ if (!(this.isValid() && localInput.isValid())) {
+ return false;
+ }
+ units = normalizeUnits(!isUndefined(units) ? units : 'millisecond');
if (units === 'millisecond') {
- input = isMoment(input) ? input : local__createLocal(input);
- return +this < +input;
+ return this.valueOf() < localInput.valueOf();
} else {
- inputMs = isMoment(input) ? +input : +local__createLocal(input);
- return +this.clone().endOf(units) < inputMs;
+ return this.clone().endOf(units).valueOf() < localInput.valueOf();
}
}
- function isBetween (from, to, units) {
- return this.isAfter(from, units) && this.isBefore(to, units);
+ function isBetween (from, to, units, inclusivity) {
+ inclusivity = inclusivity || '()';
+ return (inclusivity[0] === '(' ? this.isAfter(from, units) : !this.isBefore(from, units)) &&
+ (inclusivity[1] === ')' ? this.isBefore(to, units) : !this.isAfter(to, units));
}
function isSame (input, units) {
- var inputMs;
+ var localInput = isMoment(input) ? input : local__createLocal(input),
+ inputMs;
+ if (!(this.isValid() && localInput.isValid())) {
+ return false;
+ }
units = normalizeUnits(units || 'millisecond');
if (units === 'millisecond') {
- input = isMoment(input) ? input : local__createLocal(input);
- return +this === +input;
+ return this.valueOf() === localInput.valueOf();
} else {
- inputMs = +local__createLocal(input);
- return +(this.clone().startOf(units)) <= inputMs && inputMs <= +(this.clone().endOf(units));
+ inputMs = localInput.valueOf();
+ return this.clone().startOf(units).valueOf() <= inputMs && inputMs <= this.clone().endOf(units).valueOf();
}
}
+ function isSameOrAfter (input, units) {
+ return this.isSame(input, units) || this.isAfter(input,units);
+ }
+
+ function isSameOrBefore (input, units) {
+ return this.isSame(input, units) || this.isBefore(input,units);
+ }
+
function diff (input, units, asFloat) {
- var that = cloneWithOffset(input, this),
- zoneDelta = (that.utcOffset() - this.utcOffset()) * 6e4,
+ var that,
+ zoneDelta,
delta, output;
+ if (!this.isValid()) {
+ return NaN;
+ }
+
+ that = cloneWithOffset(input, this);
+
+ if (!that.isValid()) {
+ return NaN;
+ }
+
+ zoneDelta = (that.utcOffset() - this.utcOffset()) * 6e4;
+
units = normalizeUnits(units);
if (units === 'year' || units === 'month' || units === 'quarter') {
@@ -3502,10 +3841,12 @@ return /******/ (function(modules) { // webpackBootstrap
adjust = (b - anchor) / (anchor2 - anchor);
}
- return -(wholeMonthDiff + adjust);
+ //check for negative zero, return zero if negative zero
+ return -(wholeMonthDiff + adjust) || 0;
}
utils_hooks__hooks.defaultFormat = 'YYYY-MM-DDTHH:mm:ssZ';
+ utils_hooks__hooks.defaultFormatUtc = 'YYYY-MM-DDTHH:mm:ss[Z]';
function toString () {
return this.clone().locale('en').format('ddd MMM DD YYYY HH:mm:ss [GMT]ZZ');
@@ -3514,7 +3855,7 @@ return /******/ (function(modules) { // webpackBootstrap
function moment_format__toISOString () {
var m = this.clone().utc();
if (0 < m.year() && m.year() <= 9999) {
- if ('function' === typeof Date.prototype.toISOString) {
+ if (isFunction(Date.prototype.toISOString)) {
// native implementation is ~50x faster, use it when we can
return this.toDate().toISOString();
} else {
@@ -3526,15 +3867,21 @@ return /******/ (function(modules) { // webpackBootstrap
}
function format (inputString) {
- var output = formatMoment(this, inputString || utils_hooks__hooks.defaultFormat);
+ if (!inputString) {
+ inputString = this.isUtc() ? utils_hooks__hooks.defaultFormatUtc : utils_hooks__hooks.defaultFormat;
+ }
+ var output = formatMoment(this, inputString);
return this.localeData().postformat(output);
}
function from (time, withoutSuffix) {
- if (!this.isValid()) {
+ if (this.isValid() &&
+ ((isMoment(time) && time.isValid()) ||
+ local__createLocal(time).isValid())) {
+ return create__createDuration({to: this, from: time}).locale(this.locale()).humanize(!withoutSuffix);
+ } else {
return this.localeData().invalidDate();
}
- return create__createDuration({to: this, from: time}).locale(this.locale()).humanize(!withoutSuffix);
}
function fromNow (withoutSuffix) {
@@ -3542,16 +3889,22 @@ return /******/ (function(modules) { // webpackBootstrap
}
function to (time, withoutSuffix) {
- if (!this.isValid()) {
+ if (this.isValid() &&
+ ((isMoment(time) && time.isValid()) ||
+ local__createLocal(time).isValid())) {
+ return create__createDuration({from: this, to: time}).locale(this.locale()).humanize(!withoutSuffix);
+ } else {
return this.localeData().invalidDate();
}
- return create__createDuration({from: this, to: time}).locale(this.locale()).humanize(!withoutSuffix);
}
function toNow (withoutSuffix) {
return this.to(local__createLocal(), withoutSuffix);
}
+ // If passed a locale key, it will set the locale for this
+ // instance. Otherwise, it will return the locale configuration
+ // variables for this instance.
function locale (key) {
var newLocaleData;
@@ -3596,6 +3949,7 @@ return /******/ (function(modules) { // webpackBootstrap
case 'week':
case 'isoWeek':
case 'day':
+ case 'date':
this.hours(0);
/* falls through */
case 'hour':
@@ -3629,19 +3983,25 @@ return /******/ (function(modules) { // webpackBootstrap
if (units === undefined || units === 'millisecond') {
return this;
}
+
+ // 'date' is an alias for 'day', so it should be considered as such.
+ if (units === 'date') {
+ units = 'day';
+ }
+
return this.startOf(units).add(1, (units === 'isoWeek' ? 'week' : units)).subtract(1, 'ms');
}
function to_type__valueOf () {
- return +this._d - ((this._offset || 0) * 60000);
+ return this._d.valueOf() - ((this._offset || 0) * 60000);
}
function unix () {
- return Math.floor(+this / 1000);
+ return Math.floor(this.valueOf() / 1000);
}
function toDate () {
- return this._offset ? new Date(+this) : this._d;
+ return this._offset ? new Date(this.valueOf()) : this._d;
}
function toArray () {
@@ -3662,6 +4022,11 @@ return /******/ (function(modules) { // webpackBootstrap
};
}
+ function toJSON () {
+ // new Date(NaN).toJSON() === null
+ return this.isValid() ? this.toISOString() : null;
+ }
+
function moment_valid__isValid () {
return valid__isValid(this);
}
@@ -3674,6 +4039,18 @@ return /******/ (function(modules) { // webpackBootstrap
return getParsingFlags(this).overflow;
}
+ function creationData() {
+ return {
+ input: this._i,
+ format: this._f,
+ locale: this._locale,
+ isUTC: this._isUTC,
+ strict: this._strict
+ };
+ }
+
+ // FORMATTING
+
addFormatToken(0, ['gg', 2], 0, function () {
return this.weekYear() % 100;
});
@@ -3715,22 +4092,20 @@ return /******/ (function(modules) { // webpackBootstrap
week[token] = utils_hooks__hooks.parseTwoDigitYear(input);
});
- // HELPERS
-
- function weeksInYear(year, dow, doy) {
- return weekOfYear(local__createLocal([year, 11, 31 + dow - doy]), dow, doy).week;
- }
-
// MOMENTS
function getSetWeekYear (input) {
- var year = weekOfYear(this, this.localeData()._week.dow, this.localeData()._week.doy).year;
- return input == null ? year : this.add((input - year), 'y');
+ return getSetWeekYearHelper.call(this,
+ input,
+ this.week(),
+ this.weekday(),
+ this.localeData()._week.dow,
+ this.localeData()._week.doy);
}
function getSetISOWeekYear (input) {
- var year = weekOfYear(this, 1, 4).year;
- return input == null ? year : this.add((input - year), 'y');
+ return getSetWeekYearHelper.call(this,
+ input, this.isoWeek(), this.isoWeekday(), 1, 4);
}
function getISOWeeksInYear () {
@@ -3742,7 +4117,32 @@ return /******/ (function(modules) { // webpackBootstrap
return weeksInYear(this.year(), weekInfo.dow, weekInfo.doy);
}
- addFormatToken('Q', 0, 0, 'quarter');
+ 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
@@ -3761,6 +4161,62 @@ return /******/ (function(modules) { // webpackBootstrap
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
@@ -3784,6 +4240,8 @@ return /******/ (function(modules) { // webpackBootstrap
var getSetDayOfMonth = makeGetSet('Date', true);
+ // FORMATTING
+
addFormatToken('d', 0, 'do', 'day');
addFormatToken('dd', 0, 0, function (format) {
@@ -3812,12 +4270,18 @@ return /******/ (function(modules) { // webpackBootstrap
addRegexToken('d', match1to2);
addRegexToken('e', match1to2);
addRegexToken('E', match1to2);
- addRegexToken('dd', matchWord);
- addRegexToken('ddd', matchWord);
- addRegexToken('dddd', matchWord);
+ 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) {
- var weekday = config._locale.weekdaysParse(input);
+ 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;
@@ -3852,8 +4316,9 @@ return /******/ (function(modules) { // webpackBootstrap
// LOCALES
var defaultLocaleWeekdays = 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_');
- function localeWeekdays (m) {
- return this._weekdays[m.day()];
+ 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('_');
@@ -3866,20 +4331,105 @@ return /******/ (function(modules) { // webpackBootstrap
return this._weekdaysMin[m.day()];
}
- function localeWeekdaysParse (weekdayName) {
+ 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;
- this._weekdaysParse = this._weekdaysParse || [];
+ 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]) {
- mom = local__createLocal([2000, 1]).day(i);
regex = '^' + this.weekdays(mom, '') + '|^' + this.weekdaysShort(mom, '') + '|^' + this.weekdaysMin(mom, '');
this._weekdaysParse[i] = new RegExp(regex.replace('.', ''), 'i');
}
// test the regex
- if (this._weekdaysParse[i].test(weekdayName)) {
+ 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;
}
}
@@ -3888,6 +4438,9 @@ return /******/ (function(modules) { // webpackBootstrap
// 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());
@@ -3898,20 +4451,171 @@ return /******/ (function(modules) { // webpackBootstrap
}
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.
return input == null ? this.day() || 7 : this.day(this.day() % 7 ? input : input - 7);
}
- addFormatToken('H', ['HH', 2], 0, 'hour');
- addFormatToken('h', ['hh', 2], 0, function () {
+ 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;
+ }
+ }
+
+ 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 {
+ 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 {
+ 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
+
+ addFormatToken('DDD', ['DDDD', 3], 'DDDo', 'dayOfYear');
+
+ // ALIASES
+
+ addUnitAlias('dayOfYear', 'DDD');
+
+ // PARSING
+
+ addRegexToken('DDD', match1to3);
+ addRegexToken('DDDD', match3);
+ addParseToken(['DDD', 'DDDD'], function (input, array, config) {
+ config._dayOfYear = toInt(input);
+ });
+
+ // HELPERS
+
+ // 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');
+ }
+
+ // 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) {
@@ -3940,6 +4644,11 @@ return /******/ (function(modules) { // webpackBootstrap
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);
@@ -3949,6 +4658,32 @@ return /******/ (function(modules) { // webpackBootstrap
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
@@ -3976,6 +4711,8 @@ return /******/ (function(modules) { // webpackBootstrap
// this rule.
var getSetHour = makeGetSet('Hours', true);
+ // FORMATTING
+
addFormatToken('m', ['mm', 2], 0, 'minute');
// ALIASES
@@ -3992,6 +4729,8 @@ return /******/ (function(modules) { // webpackBootstrap
var getSetMinute = makeGetSet('Minutes', false);
+ // FORMATTING
+
addFormatToken('s', ['ss', 2], 0, 'second');
// ALIASES
@@ -4008,6 +4747,8 @@ return /******/ (function(modules) { // webpackBootstrap
var getSetSecond = makeGetSet('Seconds', false);
+ // FORMATTING
+
addFormatToken('S', 0, 0, function () {
return ~~(this.millisecond() / 100);
});
@@ -4063,6 +4804,8 @@ return /******/ (function(modules) { // webpackBootstrap
var getSetMillisecond = makeGetSet('Milliseconds', false);
+ // FORMATTING
+
addFormatToken('z', 0, 0, 'zoneAbbr');
addFormatToken('zz', 0, 0, 'zoneName');
@@ -4078,40 +4821,43 @@ return /******/ (function(modules) { // webpackBootstrap
var momentPrototype__proto = Moment.prototype;
- momentPrototype__proto.add = add_subtract__add;
- momentPrototype__proto.calendar = moment_calendar__calendar;
- momentPrototype__proto.clone = clone;
- momentPrototype__proto.diff = diff;
- momentPrototype__proto.endOf = endOf;
- momentPrototype__proto.format = format;
- momentPrototype__proto.from = from;
- momentPrototype__proto.fromNow = fromNow;
- momentPrototype__proto.to = to;
- momentPrototype__proto.toNow = toNow;
- momentPrototype__proto.get = getSet;
- momentPrototype__proto.invalidAt = invalidAt;
- momentPrototype__proto.isAfter = isAfter;
- momentPrototype__proto.isBefore = isBefore;
- momentPrototype__proto.isBetween = isBetween;
- momentPrototype__proto.isSame = isSame;
- momentPrototype__proto.isValid = moment_valid__isValid;
- momentPrototype__proto.lang = lang;
- momentPrototype__proto.locale = locale;
- momentPrototype__proto.localeData = localeData;
- momentPrototype__proto.max = prototypeMax;
- momentPrototype__proto.min = prototypeMin;
- momentPrototype__proto.parsingFlags = parsingFlags;
- momentPrototype__proto.set = getSet;
- momentPrototype__proto.startOf = startOf;
- momentPrototype__proto.subtract = add_subtract__subtract;
- momentPrototype__proto.toArray = toArray;
- momentPrototype__proto.toObject = toObject;
- momentPrototype__proto.toDate = toDate;
- momentPrototype__proto.toISOString = moment_format__toISOString;
- momentPrototype__proto.toJSON = moment_format__toISOString;
- momentPrototype__proto.toString = toString;
- momentPrototype__proto.unix = unix;
- momentPrototype__proto.valueOf = to_type__valueOf;
+ momentPrototype__proto.add = add_subtract__add;
+ momentPrototype__proto.calendar = moment_calendar__calendar;
+ momentPrototype__proto.clone = clone;
+ momentPrototype__proto.diff = diff;
+ momentPrototype__proto.endOf = endOf;
+ momentPrototype__proto.format = format;
+ momentPrototype__proto.from = from;
+ momentPrototype__proto.fromNow = fromNow;
+ momentPrototype__proto.to = to;
+ momentPrototype__proto.toNow = toNow;
+ momentPrototype__proto.get = getSet;
+ momentPrototype__proto.invalidAt = invalidAt;
+ momentPrototype__proto.isAfter = isAfter;
+ momentPrototype__proto.isBefore = isBefore;
+ momentPrototype__proto.isBetween = isBetween;
+ momentPrototype__proto.isSame = isSame;
+ momentPrototype__proto.isSameOrAfter = isSameOrAfter;
+ momentPrototype__proto.isSameOrBefore = isSameOrBefore;
+ momentPrototype__proto.isValid = moment_valid__isValid;
+ momentPrototype__proto.lang = lang;
+ momentPrototype__proto.locale = locale;
+ momentPrototype__proto.localeData = localeData;
+ momentPrototype__proto.max = prototypeMax;
+ momentPrototype__proto.min = prototypeMin;
+ momentPrototype__proto.parsingFlags = parsingFlags;
+ momentPrototype__proto.set = getSet;
+ momentPrototype__proto.startOf = startOf;
+ momentPrototype__proto.subtract = add_subtract__subtract;
+ momentPrototype__proto.toArray = toArray;
+ momentPrototype__proto.toObject = toObject;
+ momentPrototype__proto.toDate = toDate;
+ momentPrototype__proto.toISOString = moment_format__toISOString;
+ momentPrototype__proto.toJSON = toJSON;
+ momentPrototype__proto.toString = toString;
+ momentPrototype__proto.unix = unix;
+ momentPrototype__proto.valueOf = to_type__valueOf;
+ momentPrototype__proto.creationData = creationData;
// Year
momentPrototype__proto.year = getSetYear;
@@ -4197,7 +4943,7 @@ return /******/ (function(modules) { // webpackBootstrap
function locale_calendar__calendar (key, mom, now) {
var output = this._calendar[key];
- return typeof output === 'function' ? output.call(mom, now) : output;
+ return isFunction(output) ? output.call(mom, now) : output;
}
var defaultLongDateFormat = {
@@ -4259,29 +5005,14 @@ return /******/ (function(modules) { // webpackBootstrap
function relative__relativeTime (number, withoutSuffix, string, isFuture) {
var output = this._relativeTime[string];
- return (typeof output === 'function') ?
+ 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 typeof format === 'function' ? format(output) : format.replace(/%s/i, output);
- }
-
- function locale_set__set (config) {
- var prop, i;
- for (i in config) {
- prop = config[i];
- if (typeof prop === 'function') {
- this[i] = prop;
- } else {
- this['_' + i] = prop;
- }
- }
- // Lenient ordinal parsing accepts just a number in addition to
- // number + (possibly) stuff coming from _ordinalParseLenient.
- this._ordinalParseLenient = new RegExp(this._ordinalParse.source + '|' + (/\d{1,2}/).source);
+ return isFunction(format) ? format(output) : format.replace(/%s/i, output);
}
var prototype__proto = Locale.prototype;
@@ -4303,11 +5034,15 @@ return /******/ (function(modules) { // webpackBootstrap
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.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;
@@ -4324,6 +5059,13 @@ return /******/ (function(modules) { // webpackBootstrap
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;
@@ -4335,7 +5077,7 @@ return /******/ (function(modules) { // webpackBootstrap
return locale[field](utc, format);
}
- function list (format, index, field, count, setter) {
+ function listMonthsImpl (format, index, field) {
if (typeof format === 'number') {
index = format;
format = undefined;
@@ -4344,35 +5086,79 @@ return /******/ (function(modules) { // webpackBootstrap
format = format || '';
if (index != null) {
- return lists__get(format, index, field, setter);
+ return lists__get(format, index, field, 'month');
}
var i;
var out = [];
- for (i = 0; i < count; i++) {
- out[i] = lists__get(format, i, field, setter);
+ for (i = 0; i < 12; i++) {
+ out[i] = lists__get(format, i, field, 'month');
+ }
+ return out;
+ }
+
+ // ()
+ // (5)
+ // (fmt, 5)
+ // (fmt)
+ // (true)
+ // (true, 5)
+ // (true, fmt, 5)
+ // (true, fmt)
+ function listWeekdaysImpl (localeSorted, format, index, field) {
+ if (typeof localeSorted === 'boolean') {
+ if (typeof format === 'number') {
+ index = format;
+ format = undefined;
+ }
+
+ format = format || '';
+ } else {
+ format = localeSorted;
+ index = format;
+ localeSorted = false;
+
+ if (typeof format === 'number') {
+ index = format;
+ format = undefined;
+ }
+
+ format = format || '';
+ }
+
+ var locale = locale_locales__getLocale(),
+ shift = localeSorted ? locale._week.dow : 0;
+
+ if (index != null) {
+ return lists__get(format, (index + shift) % 7, field, 'day');
+ }
+
+ var i;
+ var out = [];
+ for (i = 0; i < 7; i++) {
+ out[i] = lists__get(format, (i + shift) % 7, field, 'day');
}
return out;
}
function lists__listMonths (format, index) {
- return list(format, index, 'months', 12, 'month');
+ return listMonthsImpl(format, index, 'months');
}
function lists__listMonthsShort (format, index) {
- return list(format, index, 'monthsShort', 12, 'month');
+ return listMonthsImpl(format, index, 'monthsShort');
}
- function lists__listWeekdays (format, index) {
- return list(format, index, 'weekdays', 7, 'day');
+ function lists__listWeekdays (localeSorted, format, index) {
+ return listWeekdaysImpl(localeSorted, format, index, 'weekdays');
}
- function lists__listWeekdaysShort (format, index) {
- return list(format, index, 'weekdaysShort', 7, 'day');
+ function lists__listWeekdaysShort (localeSorted, format, index) {
+ return listWeekdaysImpl(localeSorted, format, index, 'weekdaysShort');
}
- function lists__listWeekdaysMin (format, index) {
- return list(format, index, 'weekdaysMin', 7, 'day');
+ function lists__listWeekdaysMin (localeSorted, format, index) {
+ return listWeekdaysImpl(localeSorted, format, index, 'weekdaysMin');
}
locale_locales__getSetGlobalLocale('en', {
@@ -4595,15 +5381,15 @@ return /******/ (function(modules) { // webpackBootstrap
var years = round(duration.as('y'));
var a = seconds < thresholds.s && ['s', seconds] ||
- minutes === 1 && ['m'] ||
+ minutes <= 1 && ['m'] ||
minutes < thresholds.m && ['mm', minutes] ||
- hours === 1 && ['h'] ||
+ hours <= 1 && ['h'] ||
hours < thresholds.h && ['hh', hours] ||
- days === 1 && ['d'] ||
+ days <= 1 && ['d'] ||
days < thresholds.d && ['dd', days] ||
- months === 1 && ['M'] ||
+ months <= 1 && ['M'] ||
months < thresholds.M && ['MM', months] ||
- years === 1 && ['y'] || ['yy', years];
+ years <= 1 && ['y'] || ['yy', years];
a[2] = withoutSuffix;
a[3] = +posNegDuration > 0;
@@ -4724,6 +5510,8 @@ return /******/ (function(modules) { // webpackBootstrap
// Side effect imports
+ // FORMATTING
+
addFormatToken('X', 0, 0, 'unix');
addFormatToken('x', 0, 0, 'valueOf');
@@ -4741,13 +5529,14 @@ return /******/ (function(modules) { // webpackBootstrap
// Side effect imports
- utils_hooks__hooks.version = '2.10.6';
+ utils_hooks__hooks.version = '2.13.0';
setHookCallback(local__createLocal);
utils_hooks__hooks.fn = momentPrototype;
utils_hooks__hooks.min = min;
utils_hooks__hooks.max = max;
+ utils_hooks__hooks.now = now;
utils_hooks__hooks.utc = create_utc__createUTC;
utils_hooks__hooks.unix = moment__createUnix;
utils_hooks__hooks.months = lists__listMonths;
@@ -4763,9 +5552,12 @@ return /******/ (function(modules) { // webpackBootstrap
utils_hooks__hooks.monthsShort = lists__listMonthsShort;
utils_hooks__hooks.weekdaysMin = lists__listWeekdaysMin;
utils_hooks__hooks.defineLocale = defineLocale;
+ utils_hooks__hooks.updateLocale = updateLocale;
+ utils_hooks__hooks.locales = locale_locales__listLocales;
utils_hooks__hooks.weekdaysShort = lists__listWeekdaysShort;
utils_hooks__hooks.normalizeUnits = normalizeUnits;
utils_hooks__hooks.relativeTimeThreshold = duration_humanize__getSetRelativeTimeThreshold;
+ utils_hooks__hooks.prototype = momentPrototype;
var _moment = utils_hooks__hooks;
@@ -4829,7 +5621,7 @@ return /******/ (function(modules) { // webpackBootstrap
// If all else fails, use Math.random(). It's fast, but is of unspecified
// quality.
var _rnds = new Array(16);
- _rng = function () {
+ _rng = function _rng() {
for (var i = 0, r; i < 16; i++) {
if ((i & 0x03) === 0) r = Math.random() * 0x100000000;
_rnds[i] = r >>> ((i & 0x03) << 3) & 0xff;
@@ -5021,8 +5813,41 @@ return /******/ (function(modules) { // webpackBootstrap
/***/ },
/* 7 */
+/***/ function(module, exports, __webpack_require__) {
+
+ 'use strict';
+
+ // utils
+ exports.util = __webpack_require__(1);
+ exports.DOMutil = __webpack_require__(8);
+
+ // data
+ exports.DataSet = __webpack_require__(9);
+ exports.DataView = __webpack_require__(11);
+ exports.Queue = __webpack_require__(10);
+
+ // Graph3d
+ exports.Graph3d = __webpack_require__(12);
+ exports.graph3d = {
+ Camera: __webpack_require__(16),
+ Filter: __webpack_require__(17),
+ Point2d: __webpack_require__(15),
+ Point3d: __webpack_require__(14),
+ Slider: __webpack_require__(18),
+ StepNumber: __webpack_require__(19)
+ };
+
+ // bundled external libraries
+ exports.moment = __webpack_require__(2);
+ exports.Hammer = __webpack_require__(20);
+ exports.keycharm = __webpack_require__(23);
+
+/***/ },
+/* 8 */
/***/ function(module, exports) {
+ 'use strict';
+
// DOM utility methods
/**
@@ -5030,8 +5855,6 @@ return /******/ (function(modules) { // webpackBootstrap
* @param JSONcontainer
* @private
*/
- 'use strict';
-
exports.prepareElements = function (JSONcontainer) {
// cleanup the redundant svgElements;
for (var elementType in JSONcontainer) {
@@ -5232,13 +6055,15 @@ return /******/ (function(modules) { // webpackBootstrap
};
/***/ },
-/* 8 */
+/* 9 */
/***/ 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 util = __webpack_require__(1);
- var Queue = __webpack_require__(9);
+ var Queue = __webpack_require__(10);
/**
* DataSet
@@ -5351,7 +6176,7 @@ return /******/ (function(modules) { // webpackBootstrap
});
}
- if (typeof options.queue === 'object') {
+ if (_typeof(options.queue) === 'object') {
this._queue.setOptions(options.queue);
}
}
@@ -5500,7 +6325,7 @@ return /******/ (function(modules) { // webpackBootstrap
if (data[i] instanceof Object) {
addOrUpdate(data[i]);
} else {
- console.warn("Ignoring input item, which is not an object at index" + i);
+ console.warn('Ignoring input item, which is not an object at index ' + i);
}
}
} else if (data instanceof Object) {
@@ -6159,9 +6984,11 @@ return /******/ (function(modules) { // webpackBootstrap
module.exports = DataSet;
/***/ },
-/* 9 */
+/* 10 */
/***/ function(module, exports) {
+ 'use strict';
+
/**
* A queue
* @param {Object} options
@@ -6175,8 +7002,6 @@ return /******/ (function(modules) { // webpackBootstrap
* Default value of max is Infinity.
* @constructor
*/
- 'use strict';
-
function Queue(options) {
// options
this.delay = null;
@@ -6364,13 +7189,13 @@ return /******/ (function(modules) { // webpackBootstrap
module.exports = Queue;
/***/ },
-/* 10 */
+/* 11 */
/***/ function(module, exports, __webpack_require__) {
'use strict';
var util = __webpack_require__(1);
- var DataSet = __webpack_require__(8);
+ var DataSet = __webpack_require__(9);
/**
* DataView
@@ -6574,7 +7399,7 @@ return /******/ (function(modules) { // webpackBootstrap
if (options && options.filter) {
if (defaultFilter) {
- filter = function (item) {
+ filter = function filter(item) {
return defaultFilter(item) && options.filter(item);
};
} else {
@@ -6614,7 +7439,7 @@ return /******/ (function(modules) { // webpackBootstrap
if (options && options.filter) {
if (defaultFilter) {
- filter = function (item) {
+ filter = function filter(item) {
return defaultFilter(item) && options.filter(item);
};
} else {
@@ -6747,21 +7572,23 @@ return /******/ (function(modules) { // webpackBootstrap
module.exports = DataView;
/***/ },
-/* 11 */
+/* 12 */
/***/ function(module, exports, __webpack_require__) {
'use strict';
- var Emitter = __webpack_require__(12);
- var DataSet = __webpack_require__(8);
- var DataView = __webpack_require__(10);
+ 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 DataView = __webpack_require__(11);
var util = __webpack_require__(1);
- var Point3d = __webpack_require__(13);
- var Point2d = __webpack_require__(14);
- var Camera = __webpack_require__(15);
- var Filter = __webpack_require__(16);
- var Slider = __webpack_require__(17);
- var StepNumber = __webpack_require__(18);
+ var Point3d = __webpack_require__(14);
+ var Point2d = __webpack_require__(15);
+ var Camera = __webpack_require__(16);
+ var Filter = __webpack_require__(17);
+ var Slider = __webpack_require__(18);
+ var StepNumber = __webpack_require__(19);
/**
* @constructor Graph3d
@@ -6852,6 +7679,8 @@ return /******/ (function(modules) { // webpackBootstrap
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();
@@ -6925,6 +7754,7 @@ return /******/ (function(modules) { // webpackBootstrap
cy = this.camera.getCameraLocation().y,
cz = this.camera.getCameraLocation().z,
+
// calculate angles
sinTx = Math.sin(this.camera.getCameraRotation().x),
cosTx = Math.cos(this.camera.getCameraRotation().x),
@@ -6933,6 +7763,7 @@ return /******/ (function(modules) { // webpackBootstrap
sinTz = Math.sin(this.camera.getCameraRotation().z),
cosTz = Math.cos(this.camera.getCameraRotation().z),
+
// calculate translation
dx = cosTy * (sinTz * (ay - cy) + cosTz * (ax - cx)) - sinTy * (az - cz),
dy = sinTx * (cosTy * (az - cz) + sinTy * (sinTz * (ay - cy) + cosTz * (ax - cx))) + cosTx * (cosTz * (ay - cy) - sinTz * (ax - cx)),
@@ -6985,7 +7816,7 @@ return /******/ (function(modules) { // webpackBootstrap
fill = backgroundColor;
stroke = 'none';
strokeWidth = 0;
- } else if (typeof backgroundColor === 'object') {
+ } 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;
@@ -7570,6 +8401,8 @@ return /******/ (function(modules) { // webpackBootstrap
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) {
@@ -7692,7 +8525,7 @@ return /******/ (function(modules) { // webpackBootstrap
if (this.style === Graph3d.STYLE.DOTCOLOR || this.style === Graph3d.STYLE.DOTSIZE) {
- var dotSize = this.frame.clientWidth * 0.02;
+ var dotSize = this.frame.clientWidth * this.dotSizeRatio;
var widthMin, widthMax;
if (this.style === Graph3d.STYLE.DOTSIZE) {
@@ -8332,7 +9165,7 @@ return /******/ (function(modules) { // webpackBootstrap
this.dataPoints.sort(sortDepth);
// draw the datapoints as colored circles
- var dotSize = this.frame.clientWidth * 0.02; // px
+ var dotSize = this.frame.clientWidth * this.dotSizeRatio; // px
for (i = 0; i < this.dataPoints.length; i++) {
var point = this.dataPoints[i];
@@ -8924,7 +9757,7 @@ return /******/ (function(modules) { // webpackBootstrap
if (typeof this.showTooltip === 'function') {
content.innerHTML = this.showTooltip(dataPoint.point);
} else {
- content.innerHTML = '<table>' + '<tr><td>x:</td><td>' + dataPoint.point.x + '</td></tr>' + '<tr><td>y:</td><td>' + dataPoint.point.y + '</td></tr>' + '<tr><td>z:</td><td>' + dataPoint.point.z + '</td></tr>' + '</table>';
+ content.innerHTML = '<table>' + '<tr><td>' + this.xLabel + ':</td><td>' + dataPoint.point.x + '</td></tr>' + '<tr><td>' + this.yLabel + ':</td><td>' + dataPoint.point.y + '</td></tr>' + '<tr><td>' + this.zLabel + ':</td><td>' + dataPoint.point.z + '</td></tr>' + '</table>';
}
content.style.left = '0';
@@ -8995,7 +9828,7 @@ return /******/ (function(modules) { // webpackBootstrap
module.exports = Graph3d;
/***/ },
-/* 12 */
+/* 13 */
/***/ function(module, exports) {
@@ -9165,17 +9998,17 @@ return /******/ (function(modules) { // webpackBootstrap
/***/ },
-/* 13 */
+/* 14 */
/***/ function(module, exports) {
+ "use strict";
+
/**
* @prototype Point3d
* @param {Number} [x]
* @param {Number} [y]
* @param {Number} [z]
*/
- "use strict";
-
function Point3d(x, y, z) {
this.x = x !== undefined ? x : 0;
this.y = y !== undefined ? y : 0;
@@ -9248,16 +10081,16 @@ return /******/ (function(modules) { // webpackBootstrap
module.exports = Point3d;
/***/ },
-/* 14 */
+/* 15 */
/***/ function(module, exports) {
+ "use strict";
+
/**
* @prototype Point2d
* @param {Number} [x]
* @param {Number} [y]
*/
- "use strict";
-
function Point2d(x, y) {
this.x = x !== undefined ? x : 0;
this.y = y !== undefined ? y : 0;
@@ -9266,12 +10099,12 @@ return /******/ (function(modules) { // webpackBootstrap
module.exports = Point2d;
/***/ },
-/* 15 */
+/* 16 */
/***/ function(module, exports, __webpack_require__) {
'use strict';
- var Point3d = __webpack_require__(13);
+ var Point3d = __webpack_require__(14);
/**
* @class Camera
@@ -9407,12 +10240,12 @@ return /******/ (function(modules) { // webpackBootstrap
module.exports = Camera;
/***/ },
-/* 16 */
+/* 17 */
/***/ function(module, exports, __webpack_require__) {
'use strict';
- var DataView = __webpack_require__(10);
+ var DataView = __webpack_require__(11);
/**
* @class Filter
@@ -9618,7 +10451,7 @@ return /******/ (function(modules) { // webpackBootstrap
module.exports = Filter;
/***/ },
-/* 17 */
+/* 18 */
/***/ function(module, exports, __webpack_require__) {
'use strict';
@@ -9966,9 +10799,11 @@ return /******/ (function(modules) { // webpackBootstrap
module.exports = Slider;
/***/ },
-/* 18 */
+/* 19 */
/***/ function(module, exports) {
+ "use strict";
+
/**
* @prototype StepNumber
* The class StepNumber is an iterator for Numbers. You provide a start and end
@@ -9994,8 +10829,6 @@ return /******/ (function(modules) { // webpackBootstrap
* @param {boolean} prettyStep Optional. If true, the step size is rounded
* To a pretty step size (like 1, 2, 5, 10, 20, 50, ...)
*/
- "use strict";
-
function StepNumber(start, end, step, prettyStep) {
// set default values
this._start = 0;
@@ -10110,552 +10943,13 @@ return /******/ (function(modules) { // webpackBootstrap
module.exports = StepNumber;
/***/ },
-/* 19 */
+/* 20 */
/***/ function(module, exports, __webpack_require__) {
'use strict';
- var Emitter = __webpack_require__(12);
- var Hammer = __webpack_require__(20);
- var moment = __webpack_require__(2);
- var util = __webpack_require__(1);
- var DataSet = __webpack_require__(8);
- var DataView = __webpack_require__(10);
- var Range = __webpack_require__(24);
- var Core = __webpack_require__(28);
- var TimeAxis = __webpack_require__(39);
- var CurrentTime = __webpack_require__(44);
- var CustomTime = __webpack_require__(42);
- var ItemSet = __webpack_require__(29);
-
- var Configurator = __webpack_require__(45);
- var Validator = __webpack_require__(47)['default'];
- var printStyle = __webpack_require__(47).printStyle;
- var allOptions = __webpack_require__(48).allOptions;
- var configureOptions = __webpack_require__(48).configureOptions;
-
- /**
- * Create a timeline visualization
- * @param {HTMLElement} container
- * @param {vis.DataSet | vis.DataView | Array} [items]
- * @param {vis.DataSet | vis.DataView | Array} [groups]
- * @param {Object} [options] See Timeline.setOptions for the available options.
- * @constructor
- * @extends Core
- */
- function Timeline(container, items, groups, options) {
- if (!(this instanceof Timeline)) {
- throw new SyntaxError('Constructor must be called with the new operator');
- }
-
- // if the third element is options, the forth is groups (optionally);
- if (!(Array.isArray(groups) || groups instanceof DataSet || groups instanceof DataView) && groups instanceof Object) {
- var forthArgument = options;
- options = groups;
- groups = forthArgument;
- }
-
- var me = this;
- this.defaultOptions = {
- start: null,
- end: null,
-
- autoResize: true,
- throttleRedraw: 0, // ms
-
- orientation: {
- axis: 'bottom', // axis orientation: 'bottom', 'top', or 'both'
- item: 'bottom' // not relevant
- },
-
- moment: moment,
-
- width: null,
- height: null,
- maxHeight: null,
- minHeight: null
- };
- this.options = util.deepExtend({}, this.defaultOptions);
-
- // Create the DOM, props, and emitter
- this._create(container);
-
- // all components listed here will be repainted automatically
- 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 getScale() {
- return me.timeAxis.step.scale;
- },
- getStep: function getStep() {
- return me.timeAxis.step.step;
- },
-
- toScreen: me._toScreen.bind(me),
- toGlobalScreen: me._toGlobalScreen.bind(me), // this refers to the root.width
- toTime: me._toTime.bind(me),
- toGlobalTime: me._toGlobalTime.bind(me)
- }
- };
-
- // range
- this.range = new Range(this.body);
- this.components.push(this.range);
- this.body.range = this.range;
-
- // time axis
- this.timeAxis = new TimeAxis(this.body);
- 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.components.push(this.currentTime);
-
- // item set
- this.itemSet = new ItemSet(this.body);
- this.components.push(this.itemSet);
-
- this.itemsData = null; // DataSet
- this.groupsData = null; // DataSet
-
- this.on('tap', function (event) {
- me.emit('click', me.getEventProperties(event));
- });
- this.on('doubletap', function (event) {
- me.emit('doubleClick', me.getEventProperties(event));
- });
- this.dom.root.oncontextmenu = function (event) {
- me.emit('contextmenu', me.getEventProperties(event));
- };
-
- // apply options
- if (options) {
- this.setOptions(options);
- }
-
- // IMPORTANT: THIS HAPPENS BEFORE SET ITEMS!
- if (groups) {
- this.setGroups(groups);
- }
-
- // create itemset
- if (items) {
- this.setItems(items);
- } else {
- this._redraw();
- }
- }
-
- // Extend the functionality from Core
- Timeline.prototype = new Core();
-
- /**
- * Load a configurator
- * @return {Object}
- * @private
- */
- Timeline.prototype._createConfigurator = function () {
- return new Configurator(this, this.dom.container, configureOptions);
- };
-
- /**
- * Force a redraw. The size of all items will be recalculated.
- * Can be useful to manually redraw when option autoResize=false and the window
- * has been resized, or when the items CSS has been changed.
- *
- * Note: this function will be overridden on construction with a trottled version
- */
- Timeline.prototype.redraw = function () {
- this.itemSet && this.itemSet.markDirty({ refreshItems: true });
- this._redraw();
- };
-
- Timeline.prototype.setOptions = function (options) {
- // validate options
- var errorFound = Validator.validate(options, allOptions);
- 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) {
- if (options.type !== this.options.type) {
- this.options.type = options.type;
-
- // force recreation of all items
- var itemsData = this.itemsData;
- if (itemsData) {
- var selection = this.getSelection();
- this.setItems(null); // remove all
- this.setItems(itemsData); // add all
- this.setSelection(selection); // restore selection
- }
- }
- }
- };
-
- /**
- * Set items
- * @param {vis.DataSet | Array | null} items
- */
- Timeline.prototype.setItems = function (items) {
- var initialLoad = this.itemsData == null;
-
- // convert to type DataSet when needed
- var newDataSet;
- if (!items) {
- newDataSet = null;
- } else if (items instanceof DataSet || items instanceof DataView) {
- newDataSet = items;
- } else {
- // turn an array into a dataset
- newDataSet = new DataSet(items, {
- type: {
- start: 'Date',
- end: 'Date'
- }
- });
- }
-
- // set items
- this.itemsData = newDataSet;
- this.itemSet && this.itemSet.setItems(newDataSet);
-
- if (initialLoad) {
- if (this.options.start != undefined || this.options.end != undefined) {
- if (this.options.start == undefined || this.options.end == undefined) {
- var range = this.getItemRange();
- }
-
- var start = this.options.start != undefined ? this.options.start : range.min;
- var end = this.options.end != undefined ? this.options.end : range.max;
-
- this.setWindow(start, end, { animation: false });
- } else {
- this.fit({ animation: false });
- }
- }
- };
-
- /**
- * Set groups
- * @param {vis.DataSet | Array} groups
- */
- Timeline.prototype.setGroups = function (groups) {
- // convert to type DataSet when needed
- var newDataSet;
- if (!groups) {
- newDataSet = null;
- } else if (groups instanceof DataSet || groups instanceof DataView) {
- newDataSet = groups;
- } else {
- // turn an array into a dataset
- newDataSet = new DataSet(groups);
- }
-
- this.groupsData = newDataSet;
- this.itemSet.setGroups(newDataSet);
- };
-
- /**
- * Set both items and groups in one go
- * @param {{items: Array | vis.DataSet, groups: Array | vis.DataSet}} data
- */
- Timeline.prototype.setData = function (data) {
- if (data && data.groups) {
- this.setGroups(data.groups);
- }
-
- if (data && data.items) {
- this.setItems(data.items);
- }
- };
-
- /**
- * Set selected items by their id. Replaces the current selection
- * Unknown id's are silently ignored.
- * @param {string[] | string} [ids] An array with zero or more id's of the items to be
- * selected. If ids is an empty array, all items will be
- * unselected.
- * @param {Object} [options] Available options:
- * `focus: boolean`
- * If true, focus will be set to the selected item(s)
- * `animation: boolean | {duration: number, easingFunction: string}`
- * If true (default), the range is animated
- * smoothly to the new window. An object can be
- * provided to specify duration and easing function.
- * Default duration is 500 ms, and default easing
- * function is 'easeInOutQuad'.
- * Only applicable when option focus is true.
- */
- Timeline.prototype.setSelection = function (ids, options) {
- this.itemSet && this.itemSet.setSelection(ids);
-
- if (options && options.focus) {
- this.focus(ids, options);
- }
- };
-
- /**
- * Get the selected items by their id
- * @return {Array} ids The ids of the selected items
- */
- Timeline.prototype.getSelection = function () {
- return this.itemSet && this.itemSet.getSelection() || [];
- };
-
- /**
- * Adjust the visible window such that the selected item (or multiple items)
- * are centered on screen.
- * @param {String | String[]} id An item id or array with item ids
- * @param {Object} [options] Available options:
- * `animation: boolean | {duration: number, easingFunction: string}`
- * If true (default), the range is animated
- * smoothly to the new window. An object can be
- * provided to specify duration and easing function.
- * Default duration is 500 ms, and default easing
- * function is 'easeInOutQuad'.
- */
- Timeline.prototype.focus = function (id, options) {
- if (!this.itemsData || id == undefined) return;
-
- var ids = Array.isArray(id) ? id : [id];
-
- // get the specified item(s)
- var itemsData = this.itemsData.getDataSet().get(ids, {
- type: {
- start: 'Date',
- end: 'Date'
- }
- });
-
- // calculate minimum start and maximum end of specified items
- var start = null;
- var end = null;
- itemsData.forEach(function (itemData) {
- var s = itemData.start.valueOf();
- var e = 'end' in itemData ? itemData.end.valueOf() : itemData.start.valueOf();
-
- if (start === null || s < start) {
- start = s;
- }
-
- if (end === null || e > end) {
- end = e;
- }
- });
-
- if (start !== null && end !== null) {
- // calculate the new middle and interval for the window
- var middle = (start + end) / 2;
- var interval = Math.max(this.range.end - this.range.start, (end - start) * 1.1);
-
- var animation = options && options.animation !== undefined ? options.animation : true;
- this.range.setRange(middle - interval / 2, middle + interval / 2, animation);
- }
- };
-
- /**
- * Set Timeline window such that it fits all items
- * @param {Object} [options] Available options:
- * `animation: boolean | {duration: number, easingFunction: string}`
- * If true (default), the range is animated
- * smoothly to the new window. An object can be
- * provided to specify duration and easing function.
- * Default duration is 500 ms, and default easing
- * function is 'easeInOutQuad'.
- */
- Timeline.prototype.fit = function (options) {
- var animation = options && options.animation !== undefined ? options.animation : true;
- var range = this.getItemRange();
- this.range.setRange(range.min, range.max, animation);
- };
-
- /**
- * Determine the range of the items, taking into account their actual width
- * and a margin of 10 pixels on both sides.
- * @return {{min: Date | null, max: Date | null}}
- */
- Timeline.prototype.getItemRange = function () {
- var _this = this;
-
- // get a rough approximation for the range based on the items start and end dates
- var range = this.getDataRange();
- // var min = range.min.valueOf();
- // var max = range.max.valueOf();
- var min = range.min !== null ? range.min.valueOf() : null;
- var max = range.max !== null ? range.max.valueOf() : null;
- var minItem = null;
- var maxItem = null;
-
- if (min != null && max != null) {
- var interval;
- var factor;
- var lhs;
- var rhs;
- var delta;
-
- (function () {
- var getStart = function getStart(item) {
- return util.convert(item.data.start, 'Date').valueOf();
- };
-
- var getEnd = function getEnd(item) {
- var end = item.data.end != undefined ? item.data.end : item.data.start;
- return util.convert(end, 'Date').valueOf();
- }
-
- // calculate the date of the left side and right side of the items given
- ;
-
- interval = max - min;
- // ms
- if (interval <= 0) {
- interval = 10;
- }
- factor = interval / _this.props.center.width;
- util.forEach(_this.itemSet.items, (function (item) {
- item.show();
-
- var start = getStart(item);
- var end = getEnd(item);
-
- var left = start - (item.getWidthLeft() + 10) * factor;
- var right = end + (item.getWidthRight() + 10) * factor;
-
- if (left < min) {
- min = left;
- minItem = item;
- }
- if (right > max) {
- max = right;
- maxItem = item;
- }
- }).bind(_this));
-
- if (minItem && maxItem) {
- lhs = minItem.getWidthLeft() + 10;
- rhs = maxItem.getWidthRight() + 10;
- delta = _this.props.center.width - lhs - rhs;
- // px
-
- if (delta > 0) {
- min = getStart(minItem) - lhs * interval / delta; // ms
- max = getEnd(maxItem) + rhs * interval / delta; // ms
- }
- }
- })();
- }
-
- return {
- min: min != null ? new Date(min) : null,
- max: max != null ? new Date(max) : null
- };
- };
-
- /**
- * Calculate the data range of the items start and end dates
- * @returns {{min: Date | null, max: Date | null}}
- */
- Timeline.prototype.getDataRange = function () {
- var min = null;
- var max = null;
-
- var dataset = this.itemsData && this.itemsData.getDataSet();
- if (dataset) {
- dataset.forEach(function (item) {
- var start = util.convert(item.start, 'Date').valueOf();
- var end = util.convert(item.end != undefined ? item.end : item.start, 'Date').valueOf();
- if (min === null || start < min) {
- min = start;
- }
- if (max === null || end > max) {
- max = end;
- }
- });
- }
-
- return {
- min: min != null ? new Date(min) : null,
- max: max != null ? new Date(max) : null
- };
- };
-
- /**
- * Generate Timeline related information from an event
- * @param {Event} event
- * @return {Object} An object with related information, like on which area
- * The event happened, whether clicked on an item, etc.
- */
- Timeline.prototype.getEventProperties = function (event) {
- var clientX = event.center ? event.center.x : event.clientX;
- var clientY = event.center ? event.center.y : event.clientY;
- var x = clientX - util.getAbsoluteLeft(this.dom.centerContainer);
- var y = clientY - util.getAbsoluteTop(this.dom.centerContainer);
-
- var item = this.itemSet.itemFromTarget(event);
- var group = this.itemSet.groupFromTarget(event);
- var customTime = CustomTime.customTimeFromTarget(event);
-
- var snap = this.itemSet.options.snap || null;
- var scale = this.body.util.getScale();
- var step = this.body.util.getStep();
- var time = this._toTime(x);
- var snappedTime = snap ? snap(time, scale, step) : time;
-
- var element = util.getTarget(event);
- var what = null;
- if (item != null) {
- what = 'item';
- } else if (customTime != null) {
- what = 'custom-time';
- } else if (util.hasParent(element, this.timeAxis.dom.foreground)) {
- what = 'axis';
- } else if (this.timeAxis2 && util.hasParent(element, this.timeAxis2.dom.foreground)) {
- what = 'axis';
- } else if (util.hasParent(element, this.itemSet.dom.labelSet)) {
- what = 'group-label';
- } else if (util.hasParent(element, this.currentTime.bar)) {
- what = 'current-time';
- } else if (util.hasParent(element, this.dom.center)) {
- what = 'background';
- }
-
- return {
- event: event,
- item: item ? item.id : null,
- group: group ? group.groupId : null,
- what: what,
- pageX: event.srcEvent ? event.srcEvent.pageX : event.pageX,
- pageY: event.srcEvent ? event.srcEvent.pageY : event.pageY,
- x: x,
- y: y,
- time: time,
- snappedTime: snappedTime
- };
- };
-
- module.exports = Timeline;
-
-/***/ },
-/* 20 */
-/***/ function(module, exports, __webpack_require__) {
-
// Only load hammer.js when in a browser environment
// (loading hammer.js in a node.js environment gives errors)
- 'use strict';
-
if (typeof window !== 'undefined') {
var propagating = __webpack_require__(21);
var Hammer = window['Hammer'] || __webpack_require__(22);
@@ -10689,7 +10983,6 @@ return /******/ (function(modules) { // webpackBootstrap
}
}(function () {
var _firstTarget = null; // singleton, will contain the target element where the touch event started
- var _processing = false; // singleton, true when a touch event is being handled
/**
* Extend an Hammer.js instance with event propagation.
@@ -10707,7 +11000,7 @@ return /******/ (function(modules) { // webpackBootstrap
*
* @param {Hammer.Manager} hammer An hammer instance.
* @param {Object} [options] Available options:
- * - `preventDefault: true | 'mouse' | 'touch' | 'pen'`.
+ * - `preventDefault: true | false | 'mouse' | 'touch' | 'pen'`.
* Enforce preventing the default browser behavior.
* Cannot be set to `false`.
* @return {Hammer.Manager} Returns the same hammer instance with extended
@@ -10725,14 +11018,14 @@ return /******/ (function(modules) { // webpackBootstrap
var PropagatingHammer = function(element, options) {
var o = Object.create(_options);
- if (options) Hammer.extend(o, options);
+ if (options) Hammer.assign(o, options);
return propagating(new Hammer(element, o), o);
};
- Hammer.extend(PropagatingHammer, Hammer);
+ Hammer.assign(PropagatingHammer, Hammer);
PropagatingHammer.Manager = function (element, options) {
var o = Object.create(_options);
- if (options) Hammer.extend(o, options);
+ if (options) Hammer.assign(o, options);
return propagating(new Hammer.Manager(element, o), o);
};
@@ -10745,7 +11038,9 @@ return /******/ (function(modules) { // webpackBootstrap
// attach to DOM element
var element = hammer.element;
- element.hammer = wrapper;
+
+ if(!element.hammer) element.hammer = [];
+ element.hammer.push(wrapper);
// register an event to catch the start of a gesture and store the
// target in a singleton
@@ -10826,7 +11121,10 @@ return /******/ (function(modules) { // webpackBootstrap
wrapper.destroy = function () {
// Detach from DOM element
- delete hammer.element.hammer;
+ var hammers = hammer.element.hammer;
+ var idx = hammers.indexOf(wrapper);
+ if(idx !== -1) hammers.splice(idx,1);
+ if(!hammers.length) delete hammer.element.hammer;
// clear all handlers
wrapper._handlers = {};
@@ -10867,19 +11165,31 @@ return /******/ (function(modules) { // webpackBootstrap
stopped = true;
};
+ //wrap the srcEvent's stopPropagation to also stop hammer propagation:
+ var srcStop = event.srcEvent.stopPropagation.bind(event.srcEvent);
+ if(typeof srcStop == "function") {
+ event.srcEvent.stopPropagation = function(){
+ srcStop();
+ event.stopPropagation();
+ }
+ }
+
// attach firstTarget property to the event
event.firstTarget = _firstTarget;
// propagate over all elements (until stopped)
var elem = _firstTarget;
while (elem && !stopped) {
- var _handlers = elem.hammer && elem.hammer._handlers[event.type];
- if (_handlers) {
- for (var i = 0; i < _handlers.length && !stopped; i++) {
- _handlers[i](event);
+ var elemHammer = elem.hammer;
+ if(elemHammer){
+ var _handlers;
+ for(var k = 0; k < elemHammer.length; k++){
+ _handlers = elemHammer[k]._handlers[event.type];
+ if(_handlers) for (var i = 0; i < _handlers.length && !stopped; i++) {
+ _handlers[i](event);
+ }
}
}
-
elem = elem.parentNode;
}
}
@@ -10893,15 +11203,15 @@ return /******/ (function(modules) { // webpackBootstrap
/* 22 */
/***/ function(module, exports, __webpack_require__) {
- var __WEBPACK_AMD_DEFINE_RESULT__;/*! Hammer.JS - v2.0.4 - 2014-09-28
+ var __WEBPACK_AMD_DEFINE_RESULT__;/*! Hammer.JS - v2.0.6 - 2015-12-23
* http://hammerjs.github.io/
*
- * Copyright (c) 2014 Jorik Tangelder;
- * Licensed under the MIT license */
+ * Copyright (c) 2015 Jorik Tangelder;
+ * Licensed under the license */
(function(window, document, exportName, undefined) {
'use strict';
- var VENDOR_PREFIXES = ['', 'webkit', 'moz', 'MS', 'ms', 'o'];
+ var VENDOR_PREFIXES = ['', 'webkit', 'Moz', 'MS', 'ms', 'o'];
var TEST_ELEMENT = document.createElement('div');
var TYPE_FUNCTION = 'function';
@@ -10967,14 +11277,68 @@ return /******/ (function(modules) { // webpackBootstrap
}
/**
+ * wrap a method with a deprecation warning and stack trace
+ * @param {Function} method
+ * @param {String} name
+ * @param {String} message
+ * @returns {Function} A new function wrapping the supplied method.
+ */
+ function deprecate(method, name, message) {
+ var deprecationMessage = 'DEPRECATED METHOD: ' + name + '\n' + message + ' AT \n';
+ return function() {
+ var e = new Error('get-stack-trace');
+ var stack = e && e.stack ? e.stack.replace(/^[^\(]+?[\n$]/gm, '')
+ .replace(/^\s+at\s+/gm, '')
+ .replace(/^Object.<anonymous>\s*\(/gm, '{anonymous}()@') : 'Unknown Stack Trace';
+
+ var log = window.console && (window.console.warn || window.console.log);
+ if (log) {
+ log.call(window.console, deprecationMessage, stack);
+ }
+ return method.apply(this, arguments);
+ };
+ }
+
+ /**
+ * extend object.
+ * means that properties in dest will be overwritten by the ones in src.
+ * @param {Object} target
+ * @param {...Object} objects_to_assign
+ * @returns {Object} target
+ */
+ var assign;
+ if (typeof Object.assign !== 'function') {
+ assign = function assign(target) {
+ if (target === undefined || target === null) {
+ throw new TypeError('Cannot convert undefined or null to object');
+ }
+
+ var output = Object(target);
+ for (var index = 1; index < arguments.length; index++) {
+ var source = arguments[index];
+ if (source !== undefined && source !== null) {
+ for (var nextKey in source) {
+ if (source.hasOwnProperty(nextKey)) {
+ output[nextKey] = source[nextKey];
+ }
+ }
+ }
+ }
+ return output;
+ };
+ } else {
+ assign = Object.assign;
+ }
+
+ /**
* extend object.
* means that properties in dest will be overwritten by the ones in src.
* @param {Object} dest
* @param {Object} src
- * @param {Boolean} [merge]
+ * @param {Boolean=false} [merge]
* @returns {Object} dest
*/
- function extend(dest, src, merge) {
+ var extend = deprecate(function extend(dest, src, merge) {
var keys = Object.keys(src);
var i = 0;
while (i < keys.length) {
@@ -10984,7 +11348,7 @@ return /******/ (function(modules) { // webpackBootstrap
i++;
}
return dest;
- }
+ }, 'extend', 'Use `assign`.');
/**
* merge the values from src in the dest.
@@ -10993,9 +11357,9 @@ return /******/ (function(modules) { // webpackBootstrap
* @param {Object} src
* @returns {Object} dest
*/
- function merge(dest, src) {
+ var merge = deprecate(function merge(dest, src) {
return extend(dest, src, true);
- }
+ }, 'merge', 'Use `assign`.');
/**
* simple class inheritance
@@ -11012,7 +11376,7 @@ return /******/ (function(modules) { // webpackBootstrap
childP._super = baseP;
if (properties) {
- extend(childP, properties);
+ assign(childP, properties);
}
}
@@ -11215,8 +11579,8 @@ return /******/ (function(modules) { // webpackBootstrap
* @returns {DocumentView|Window}
*/
function getWindowForElement(element) {
- var doc = element.ownerDocument;
- return (doc.defaultView || doc.parentWindow);
+ var doc = element.ownerDocument || element;
+ return (doc.defaultView || doc.parentWindow || window);
}
var MOBILE_REGEX = /mobile|tablet|ip(ad|hone|od)|android/i;
@@ -11395,9 +11759,17 @@ return /******/ (function(modules) { // webpackBootstrap
computeDeltaXY(session, input);
input.offsetDirection = getDirection(input.deltaX, input.deltaY);
+ var overallVelocity = getVelocity(input.deltaTime, input.deltaX, input.deltaY);
+ input.overallVelocityX = overallVelocity.x;
+ input.overallVelocityY = overallVelocity.y;
+ input.overallVelocity = (abs(overallVelocity.x) > abs(overallVelocity.y)) ? overallVelocity.x : overallVelocity.y;
+
input.scale = firstMultiple ? getScale(firstMultiple.pointers, pointers) : 1;
input.rotation = firstMultiple ? getRotation(firstMultiple.pointers, pointers) : 0;
+ input.maxPointers = !session.prevInput ? input.pointers.length : ((input.pointers.length >
+ session.prevInput.maxPointers) ? input.pointers.length : session.prevInput.maxPointers);
+
computeIntervalInputData(session, input);
// find the correct target
@@ -11441,8 +11813,8 @@ return /******/ (function(modules) { // webpackBootstrap
velocity, velocityX, velocityY, direction;
if (input.eventType != INPUT_CANCEL && (deltaTime > COMPUTE_INTERVAL || last.velocity === undefined)) {
- var deltaX = last.deltaX - input.deltaX;
- var deltaY = last.deltaY - input.deltaY;
+ var deltaX = input.deltaX - last.deltaX;
+ var deltaY = input.deltaY - last.deltaY;
var v = getVelocity(deltaTime, deltaX, deltaY);
velocityX = v.x;
@@ -11547,9 +11919,9 @@ return /******/ (function(modules) { // webpackBootstrap
}
if (abs(x) >= abs(y)) {
- return x > 0 ? DIRECTION_LEFT : DIRECTION_RIGHT;
+ return x < 0 ? DIRECTION_LEFT : DIRECTION_RIGHT;
}
- return y > 0 ? DIRECTION_UP : DIRECTION_DOWN;
+ return y < 0 ? DIRECTION_UP : DIRECTION_DOWN;
}
/**
@@ -11592,7 +11964,7 @@ return /******/ (function(modules) { // webpackBootstrap
* @return {Number} rotation
*/
function getRotation(start, end) {
- return getAngle(end[1], end[0], PROPS_CLIENT_XY) - getAngle(start[1], start[0], PROPS_CLIENT_XY);
+ return getAngle(end[1], end[0], PROPS_CLIENT_XY) + getAngle(start[1], start[0], PROPS_CLIENT_XY);
}
/**
@@ -11685,7 +12057,7 @@ return /******/ (function(modules) { // webpackBootstrap
var POINTER_WINDOW_EVENTS = 'pointermove pointerup pointercancel';
// IE10 has prefixed support, and case-sensitive
- if (window.MSPointerEvent) {
+ if (window.MSPointerEvent && !window.PointerEvent) {
POINTER_ELEMENT_EVENTS = 'MSPointerDown';
POINTER_WINDOW_EVENTS = 'MSPointerMove MSPointerUp MSPointerCancel';
}
@@ -12009,7 +12381,7 @@ return /******/ (function(modules) { // webpackBootstrap
value = this.compute();
}
- if (NATIVE_TOUCH_ACTION) {
+ if (NATIVE_TOUCH_ACTION && this.manager.element.style) {
this.manager.element.style[PREFIXED_TOUCH_ACTION] = value;
}
this.actions = value.toLowerCase().trim();
@@ -12060,6 +12432,23 @@ return /******/ (function(modules) { // webpackBootstrap
var hasPanY = inStr(actions, TOUCH_ACTION_PAN_Y);
var hasPanX = inStr(actions, TOUCH_ACTION_PAN_X);
+ if (hasNone) {
+ //do not prevent defaults if this is a tap gesture
+
+ var isTapPointer = input.pointers.length === 1;
+ var isTapMovement = input.distance < 2;
+ var isTapTouchTime = input.deltaTime < 250;
+
+ if (isTapPointer && isTapMovement && isTapTouchTime) {
+ return;
+ }
+ }
+
+ if (hasPanX && hasPanY) {
+ // `pan-x pan-y` means browser handles all scrolling/panning, do not prevent
+ return;
+ }
+
if (hasNone ||
(hasPanY && direction & DIRECTION_HORIZONTAL) ||
(hasPanX && direction & DIRECTION_VERTICAL)) {
@@ -12091,9 +12480,12 @@ return /******/ (function(modules) { // webpackBootstrap
var hasPanX = inStr(actions, TOUCH_ACTION_PAN_X);
var hasPanY = inStr(actions, TOUCH_ACTION_PAN_Y);
- // pan-x and pan-y can be combined
+ // if both pan-x and pan-y are set (different recognizers
+ // for different directions, e.g. horizontal pan but vertical swipe?)
+ // we need none (as otherwise with pan-x pan-y combined none of these
+ // recognizers will work, since the browser would handle all panning
if (hasPanX && hasPanY) {
- return TOUCH_ACTION_PAN_X + ' ' + TOUCH_ACTION_PAN_Y;
+ return TOUCH_ACTION_NONE;
}
// pan-x OR pan-y
@@ -12151,10 +12543,11 @@ return /******/ (function(modules) { // webpackBootstrap
* @param {Object} options
*/
function Recognizer(options) {
+ this.options = assign({}, this.defaults, options || {});
+
this.id = uniqueId();
this.manager = null;
- this.options = merge(options || {}, this.defaults);
// default is enable true
this.options.enable = ifUndefined(this.options.enable, true);
@@ -12178,7 +12571,7 @@ return /******/ (function(modules) { // webpackBootstrap
* @return {Recognizer}
*/
set: function(options) {
- extend(this.options, options);
+ assign(this.options, options);
// also update the touchAction, in case something changed about the directions/enabled state
this.manager && this.manager.touchAction.update();
@@ -12282,20 +12675,24 @@ return /******/ (function(modules) { // webpackBootstrap
var self = this;
var state = this.state;
- function emit(withState) {
- self.manager.emit(self.options.event + (withState ? stateStr(state) : ''), input);
+ function emit(event) {
+ self.manager.emit(event, input);
}
// 'panstart' and 'panmove'
if (state < STATE_ENDED) {
- emit(true);
+ emit(self.options.event + stateStr(state));
}
- emit(); // simple 'eventName' events
+ emit(self.options.event); // simple 'eventName' events
+
+ if (input.additionalEvent) { // additional event(panleft, panright, pinchin, pinchout...)
+ emit(input.additionalEvent);
+ }
// panend and pancancel
if (state >= STATE_ENDED) {
- emit(true);
+ emit(self.options.event + stateStr(state));
}
},
@@ -12335,7 +12732,7 @@ return /******/ (function(modules) { // webpackBootstrap
recognize: function(inputData) {
// make a new copy of the inputData
// so we can change the inputData without messing up the other recognizers
- var inputDataClone = extend({}, inputData);
+ var inputDataClone = assign({}, inputData);
// is is enabled and allow recognizing?
if (!boolOrFn(this.options.enable, [this, inputDataClone])) {
@@ -12560,14 +12957,15 @@ return /******/ (function(modules) { // webpackBootstrap
},
emit: function(input) {
+
this.pX = input.deltaX;
this.pY = input.deltaY;
var direction = directionStr(input.direction);
+
if (direction) {
- this.manager.emit(this.options.event + direction, input);
+ input.additionalEvent = this.options.event + direction;
}
-
this._super.emit.call(this, input);
}
});
@@ -12603,11 +13001,11 @@ return /******/ (function(modules) { // webpackBootstrap
},
emit: function(input) {
- this._super.emit.call(this, input);
if (input.scale !== 1) {
var inOut = input.scale < 1 ? 'in' : 'out';
- this.manager.emit(this.options.event + inOut, input);
+ input.additionalEvent = this.options.event + inOut;
}
+ this._super.emit.call(this, input);
}
});
@@ -12632,8 +13030,8 @@ return /******/ (function(modules) { // webpackBootstrap
defaults: {
event: 'press',
pointers: 1,
- time: 500, // minimal time of the pointer to be pressed
- threshold: 5 // a minimal movement is ok, but keep it low
+ time: 251, // minimal time of the pointer to be pressed
+ threshold: 9 // a minimal movement is ok, but keep it low
},
getTouchAction: function() {
@@ -12731,7 +13129,7 @@ return /******/ (function(modules) { // webpackBootstrap
defaults: {
event: 'swipe',
threshold: 10,
- velocity: 0.65,
+ velocity: 0.3,
direction: DIRECTION_HORIZONTAL | DIRECTION_VERTICAL,
pointers: 1
},
@@ -12745,21 +13143,22 @@ return /******/ (function(modules) { // webpackBootstrap
var velocity;
if (direction & (DIRECTION_HORIZONTAL | DIRECTION_VERTICAL)) {
- velocity = input.velocity;
+ velocity = input.overallVelocity;
} else if (direction & DIRECTION_HORIZONTAL) {
- velocity = input.velocityX;
+ velocity = input.overallVelocityX;
} else if (direction & DIRECTION_VERTICAL) {
- velocity = input.velocityY;
+ velocity = input.overallVelocityY;
}
return this._super.attrTest.call(this, input) &&
- direction & input.direction &&
+ direction & input.offsetDirection &&
input.distance > this.options.threshold &&
+ input.maxPointers == this.options.pointers &&
abs(velocity) > this.options.velocity && input.eventType & INPUT_END;
},
emit: function(input) {
- var direction = directionStr(input.direction);
+ var direction = directionStr(input.offsetDirection);
if (direction) {
this.manager.emit(this.options.event + direction, input);
}
@@ -12802,7 +13201,7 @@ return /******/ (function(modules) { // webpackBootstrap
taps: 1,
interval: 300, // max time between the multi-tap taps
time: 250, // max time of the pointer to be down (like finger on the screen)
- threshold: 2, // a minimal movement is ok, but keep it low
+ threshold: 9, // a minimal movement is ok, but keep it low
posThreshold: 10 // a multi-tap can be a bit off the initial position
},
@@ -12876,7 +13275,7 @@ return /******/ (function(modules) { // webpackBootstrap
},
emit: function() {
- if (this.state == STATE_RECOGNIZED ) {
+ if (this.state == STATE_RECOGNIZED) {
this._input.tapCount = this.count;
this.manager.emit(this.options.event, this._input);
}
@@ -12884,7 +13283,7 @@ return /******/ (function(modules) { // webpackBootstrap
});
/**
- * Simple way to create an manager with a default set of recognizers.
+ * Simple way to create a manager with a default set of recognizers.
* @param {HTMLElement} element
* @param {Object} [options]
* @constructor
@@ -12898,7 +13297,7 @@ return /******/ (function(modules) { // webpackBootstrap
/**
* @const {string}
*/
- Hammer.VERSION = '2.0.4';
+ Hammer.VERSION = '2.0.6';
/**
* default settings
@@ -12950,12 +13349,12 @@ return /******/ (function(modules) { // webpackBootstrap
*/
preset: [
// RecognizerClass, options, [recognizeWith, ...], [requireFailure, ...]
- [RotateRecognizer, { enable: false }],
- [PinchRecognizer, { enable: false }, ['rotate']],
- [SwipeRecognizer,{ direction: DIRECTION_HORIZONTAL }],
- [PanRecognizer, { direction: DIRECTION_HORIZONTAL }, ['swipe']],
+ [RotateRecognizer, {enable: false}],
+ [PinchRecognizer, {enable: false}, ['rotate']],
+ [SwipeRecognizer, {direction: DIRECTION_HORIZONTAL}],
+ [PanRecognizer, {direction: DIRECTION_HORIZONTAL}, ['swipe']],
[TapRecognizer],
- [TapRecognizer, { event: 'doubletap', taps: 2 }, ['tap']],
+ [TapRecognizer, {event: 'doubletap', taps: 2}, ['tap']],
[PressRecognizer]
],
@@ -13022,9 +13421,8 @@ return /******/ (function(modules) { // webpackBootstrap
* @constructor
*/
function Manager(element, options) {
- options = options || {};
+ this.options = assign({}, Hammer.defaults, options || {});
- this.options = merge(options, Hammer.defaults);
this.options.inputTarget = this.options.inputTarget || element;
this.handlers = {};
@@ -13037,7 +13435,7 @@ return /******/ (function(modules) { // webpackBootstrap
toggleCssProps(this, true);
- each(options.recognizers, function(item) {
+ each(this.options.recognizers, function(item) {
var recognizer = this.add(new (item[0])(item[1]));
item[2] && recognizer.recognizeWith(item[2]);
item[3] && recognizer.requireFailure(item[3]);
@@ -13051,7 +13449,7 @@ return /******/ (function(modules) { // webpackBootstrap
* @returns {Manager}
*/
set: function(options) {
- extend(this.options, options);
+ assign(this.options, options);
// Options that need a little more setup
if (options.touchAction) {
@@ -13185,11 +13583,19 @@ return /******/ (function(modules) { // webpackBootstrap
return this;
}
- var recognizers = this.recognizers;
recognizer = this.get(recognizer);
- recognizers.splice(inArray(recognizers, recognizer), 1);
- this.touchAction.update();
+ // let's make sure this recognizer exists
+ if (recognizer) {
+ var recognizers = this.recognizers;
+ var index = inArray(recognizers, recognizer);
+
+ if (index !== -1) {
+ recognizers.splice(index, 1);
+ this.touchAction.update();
+ }
+ }
+
return this;
},
@@ -13220,7 +13626,7 @@ return /******/ (function(modules) { // webpackBootstrap
if (!handler) {
delete handlers[event];
} else {
- handlers[event].splice(inArray(handlers[event], handler), 1);
+ handlers[event] && handlers[event].splice(inArray(handlers[event], handler), 1);
}
});
return this;
@@ -13276,6 +13682,9 @@ return /******/ (function(modules) { // webpackBootstrap
*/
function toggleCssProps(manager, add) {
var element = manager.element;
+ if (!element.style) {
+ return;
+ }
each(manager.options.cssProps, function(value, name) {
element.style[prefixed(element.style, name)] = add ? value : '';
});
@@ -13293,7 +13702,7 @@ return /******/ (function(modules) { // webpackBootstrap
data.target.dispatchEvent(gestureEvent);
}
- extend(Hammer, {
+ assign(Hammer, {
INPUT_START: INPUT_START,
INPUT_MOVE: INPUT_MOVE,
INPUT_END: INPUT_END,
@@ -13340,12 +13749,18 @@ return /******/ (function(modules) { // webpackBootstrap
each: each,
merge: merge,
extend: extend,
+ assign: assign,
inherit: inherit,
bindFn: bindFn,
prefixed: prefixed
});
- if ("function" == TYPE_FUNCTION && __webpack_require__(23)) {
+ // this prevents errors when Hammer is loaded in the presence of an AMD
+ // style loader but by script tag, not by the loader.
+ var freeGlobal = (typeof window !== 'undefined' ? window : (typeof self !== 'undefined' ? self : {})); // jshint ignore:line
+ freeGlobal.Hammer = Hammer;
+
+ if (true) {
!(__WEBPACK_AMD_DEFINE_RESULT__ = function() {
return Hammer;
}.call(exports, __webpack_require__, exports, module), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));
@@ -13360,11 +13775,202 @@ return /******/ (function(modules) { // webpackBootstrap
/***/ },
/* 23 */
-/***/ function(module, exports) {
+/***/ 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;
+ }));
+
- /* WEBPACK VAR INJECTION */(function(__webpack_amd_options__) {module.exports = __webpack_amd_options__;
- /* WEBPACK VAR INJECTION */}.call(exports, {}))
/***/ },
/* 24 */
@@ -13372,11 +13978,2496 @@ return /******/ (function(modules) { // webpackBootstrap
'use strict';
+ // utils
+ exports.util = __webpack_require__(1);
+ exports.DOMutil = __webpack_require__(8);
+
+ // data
+ exports.DataSet = __webpack_require__(9);
+ exports.DataView = __webpack_require__(11);
+ exports.Queue = __webpack_require__(10);
+
+ // Timeline
+ exports.Timeline = __webpack_require__(25);
+ exports.Graph2d = __webpack_require__(50);
+ exports.timeline = {
+ Core: __webpack_require__(33),
+ DateUtil: __webpack_require__(32),
+ Range: __webpack_require__(30),
+ stack: __webpack_require__(37),
+ TimeStep: __webpack_require__(35),
+
+ components: {
+ items: {
+ Item: __webpack_require__(39),
+ BackgroundItem: __webpack_require__(43),
+ BoxItem: __webpack_require__(41),
+ PointItem: __webpack_require__(42),
+ RangeItem: __webpack_require__(38)
+ },
+
+ 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)
+ }
+ };
+
+ // bundled external libraries
+ exports.moment = __webpack_require__(2);
+ exports.Hammer = __webpack_require__(20);
+ exports.keycharm = __webpack_require__(23);
+
+/***/ },
+/* 25 */
+/***/ function(module, exports, __webpack_require__) {
+
+ 'use strict';
+
+ var _Configurator = __webpack_require__(26);
+
+ var _Configurator2 = _interopRequireDefault(_Configurator);
+
+ var _Validator = __webpack_require__(29);
+
+ 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 moment = __webpack_require__(2);
+ var util = __webpack_require__(1);
+ var DataSet = __webpack_require__(9);
+ var DataView = __webpack_require__(11);
+ var Range = __webpack_require__(30);
+ var Core = __webpack_require__(33);
+ var TimeAxis = __webpack_require__(44);
+ var CurrentTime = __webpack_require__(48);
+ var CustomTime = __webpack_require__(46);
+ var ItemSet = __webpack_require__(34);
+
+ var printStyle = __webpack_require__(29).printStyle;
+ var allOptions = __webpack_require__(49).allOptions;
+ var configureOptions = __webpack_require__(49).configureOptions;
+
+ /**
+ * Create a timeline visualization
+ * @param {HTMLElement} container
+ * @param {vis.DataSet | vis.DataView | Array} [items]
+ * @param {vis.DataSet | vis.DataView | Array} [groups]
+ * @param {Object} [options] See Timeline.setOptions for the available options.
+ * @constructor
+ * @extends Core
+ */
+ function Timeline(container, items, groups, options) {
+
+ if (!(this instanceof Timeline)) {
+ throw new SyntaxError('Constructor must be called with the new operator');
+ }
+
+ // if the third element is options, the forth is groups (optionally);
+ if (!(Array.isArray(groups) || groups instanceof DataSet || groups instanceof DataView) && groups instanceof Object) {
+ var forthArgument = options;
+ options = groups;
+ groups = forthArgument;
+ }
+
+ var me = this;
+ 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,
+ minHeight: null
+ };
+ this.options = util.deepExtend({}, this.defaultOptions);
+
+ // Create the DOM, props, and emitter
+ this._create(container);
+
+ // all components listed here will be repainted automatically
+ 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 getScale() {
+ return me.timeAxis.step.scale;
+ },
+ getStep: function getStep() {
+ return me.timeAxis.step.step;
+ },
+
+ toScreen: me._toScreen.bind(me),
+ toGlobalScreen: me._toGlobalScreen.bind(me), // this refers to the root.width
+ toTime: me._toTime.bind(me),
+ toGlobalTime: me._toGlobalTime.bind(me)
+ }
+ };
+
+ // range
+ this.range = new Range(this.body);
+ this.components.push(this.range);
+ this.body.range = this.range;
+
+ // time axis
+ this.timeAxis = new TimeAxis(this.body);
+ 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.components.push(this.currentTime);
+
+ // item set
+ this.itemSet = new ItemSet(this.body, this.options);
+ this.components.push(this.itemSet);
+
+ this.itemsData = null; // DataSet
+ this.groupsData = null; // DataSet
+
+ this.on('tap', function (event) {
+ me.emit('click', me.getEventProperties(event));
+ });
+ this.on('doubletap', function (event) {
+ me.emit('doubleClick', me.getEventProperties(event));
+ });
+ this.dom.root.oncontextmenu = function (event) {
+ me.emit('contextmenu', me.getEventProperties(event));
+ };
+
+ //Single time autoscale/fit
+ this.fitDone = false;
+ this.on('changed', function () {
+ if (this.itemsData == null) return;
+ if (!me.fitDone) {
+ me.fitDone = true;
+ if (me.options.start != undefined || me.options.end != undefined) {
+ if (me.options.start == undefined || me.options.end == undefined) {
+ var range = me.getItemRange();
+ }
+
+ var start = me.options.start != undefined ? me.options.start : range.min;
+ var end = me.options.end != undefined ? me.options.end : range.max;
+
+ me.setWindow(start, end, { animation: false });
+ } else {
+ me.fit({ animation: false });
+ }
+ }
+ });
+
+ // apply options
+ if (options) {
+ this.setOptions(options);
+ }
+
+ // IMPORTANT: THIS HAPPENS BEFORE SET ITEMS!
+ if (groups) {
+ this.setGroups(groups);
+ }
+
+ // create itemset
+ if (items) {
+ this.setItems(items);
+ }
+
+ // draw for the first time
+ this._redraw();
+ }
+
+ // Extend the functionality from Core
+ Timeline.prototype = new Core();
+
+ /**
+ * Load a configurator
+ * @return {Object}
+ * @private
+ */
+ Timeline.prototype._createConfigurator = function () {
+ return new _Configurator2.default(this, this.dom.container, configureOptions);
+ };
+
+ /**
+ * Force a redraw. The size of all items will be recalculated.
+ * Can be useful to manually redraw when option autoResize=false and the window
+ * has been resized, or when the items CSS has been changed.
+ *
+ * Note: this function will be overridden on construction with a trottled version
+ */
+ Timeline.prototype.redraw = function () {
+ this.itemSet && this.itemSet.markDirty({ refreshItems: true });
+ this._redraw();
+ };
+
+ Timeline.prototype.setOptions = function (options) {
+ // validate options
+ var errorFound = _Validator2.default.validate(options, allOptions);
+
+ if (errorFound === true) {
+ console.log('%cErrors have been found in the supplied options object.', printStyle);
+ }
+
+ Core.prototype.setOptions.call(this, options);
+
+ if ('type' in options) {
+ if (options.type !== this.options.type) {
+ this.options.type = options.type;
+
+ // force recreation of all items
+ var itemsData = this.itemsData;
+ if (itemsData) {
+ var selection = this.getSelection();
+ this.setItems(null); // remove all
+ this.setItems(itemsData); // add all
+ this.setSelection(selection); // restore selection
+ }
+ }
+ }
+ };
+
+ /**
+ * Set items
+ * @param {vis.DataSet | Array | null} items
+ */
+ Timeline.prototype.setItems = function (items) {
+ // convert to type DataSet when needed
+ var newDataSet;
+ if (!items) {
+ newDataSet = null;
+ } else if (items instanceof DataSet || items instanceof DataView) {
+ newDataSet = items;
+ } else {
+ // turn an array into a dataset
+ newDataSet = new DataSet(items, {
+ type: {
+ start: 'Date',
+ end: 'Date'
+ }
+ });
+ }
+
+ // set items
+ this.itemsData = newDataSet;
+ this.itemSet && this.itemSet.setItems(newDataSet);
+ };
+
+ /**
+ * Set groups
+ * @param {vis.DataSet | Array} groups
+ */
+ Timeline.prototype.setGroups = function (groups) {
+ // convert to type DataSet when needed
+ var newDataSet;
+ if (!groups) {
+ newDataSet = null;
+ } else if (groups instanceof DataSet || groups instanceof DataView) {
+ newDataSet = groups;
+ } else {
+ // turn an array into a dataset
+ newDataSet = new DataSet(groups);
+ }
+
+ this.groupsData = newDataSet;
+ this.itemSet.setGroups(newDataSet);
+ };
+
+ /**
+ * Set both items and groups in one go
+ * @param {{items: Array | vis.DataSet, groups: Array | vis.DataSet}} data
+ */
+ Timeline.prototype.setData = function (data) {
+ if (data && data.groups) {
+ this.setGroups(data.groups);
+ }
+
+ if (data && data.items) {
+ this.setItems(data.items);
+ }
+ };
+
+ /**
+ * Set selected items by their id. Replaces the current selection
+ * Unknown id's are silently ignored.
+ * @param {string[] | string} [ids] An array with zero or more id's of the items to be
+ * selected. If ids is an empty array, all items will be
+ * unselected.
+ * @param {Object} [options] Available options:
+ * `focus: boolean`
+ * If true, focus will be set to the selected item(s)
+ * `animation: boolean | {duration: number, easingFunction: string}`
+ * If true (default), the range is animated
+ * smoothly to the new window. An object can be
+ * provided to specify duration and easing function.
+ * Default duration is 500 ms, and default easing
+ * function is 'easeInOutQuad'.
+ * Only applicable when option focus is true.
+ */
+ Timeline.prototype.setSelection = function (ids, options) {
+ this.itemSet && this.itemSet.setSelection(ids);
+
+ if (options && options.focus) {
+ this.focus(ids, options);
+ }
+ };
+
+ /**
+ * Get the selected items by their id
+ * @return {Array} ids The ids of the selected items
+ */
+ Timeline.prototype.getSelection = function () {
+ return this.itemSet && this.itemSet.getSelection() || [];
+ };
+
+ /**
+ * Adjust the visible window such that the selected item (or multiple items)
+ * are centered on screen.
+ * @param {String | String[]} id An item id or array with item ids
+ * @param {Object} [options] Available options:
+ * `animation: boolean | {duration: number, easingFunction: string}`
+ * If true (default), the range is animated
+ * smoothly to the new window. An object can be
+ * provided to specify duration and easing function.
+ * Default duration is 500 ms, and default easing
+ * function is 'easeInOutQuad'.
+ */
+ Timeline.prototype.focus = function (id, options) {
+ if (!this.itemsData || id == undefined) return;
+
+ var ids = Array.isArray(id) ? id : [id];
+
+ // get the specified item(s)
+ var itemsData = this.itemsData.getDataSet().get(ids, {
+ type: {
+ start: 'Date',
+ end: 'Date'
+ }
+ });
+
+ // calculate minimum start and maximum end of specified items
+ var start = null;
+ var end = null;
+ itemsData.forEach(function (itemData) {
+ var s = itemData.start.valueOf();
+ var e = 'end' in itemData ? itemData.end.valueOf() : itemData.start.valueOf();
+
+ if (start === null || s < start) {
+ start = s;
+ }
+
+ if (end === null || e > end) {
+ end = e;
+ }
+ });
+
+ if (start !== null && end !== null) {
+ // calculate the new middle and interval for the window
+ var middle = (start + end) / 2;
+ var interval = Math.max(this.range.end - this.range.start, (end - start) * 1.1);
+
+ var animation = options && options.animation !== undefined ? options.animation : true;
+ this.range.setRange(middle - interval / 2, middle + interval / 2, animation);
+ }
+ };
+
+ /**
+ * Set Timeline window such that it fits all items
+ * @param {Object} [options] Available options:
+ * `animation: boolean | {duration: number, easingFunction: string}`
+ * If true (default), the range is animated
+ * smoothly to the new window. An object can be
+ * provided to specify duration and easing function.
+ * Default duration is 500 ms, and default easing
+ * function is 'easeInOutQuad'.
+ */
+ Timeline.prototype.fit = function (options) {
+ var animation = options && options.animation !== undefined ? options.animation : true;
+ var range;
+
+ var dataset = this.itemsData && this.itemsData.getDataSet();
+ if (dataset.length === 1 && dataset.get()[0].end === undefined) {
+ // a single item -> don't fit, just show a range around the item from -4 to +3 days
+ range = this.getDataRange();
+ this.moveTo(range.min.valueOf(), { animation: animation });
+ } else {
+ // exactly fit the items (plus a small margin)
+ range = this.getItemRange();
+ this.range.setRange(range.min, range.max, animation);
+ }
+ };
+
+ /**
+ * Determine the range of the items, taking into account their actual width
+ * and a margin of 10 pixels on both sides.
+ * @return {{min: Date | null, max: Date | null}}
+ */
+ Timeline.prototype.getItemRange = function () {
+ var _this = this;
+
+ // get a rough approximation for the range based on the items start and end dates
+ var range = this.getDataRange();
+ var min = range.min !== null ? range.min.valueOf() : null;
+ var max = range.max !== null ? range.max.valueOf() : null;
+ var minItem = null;
+ var maxItem = null;
+
+ if (min != null && max != null) {
+ var interval;
+ var factor;
+ var lhs;
+ var rhs;
+ var delta;
+
+ (function () {
+ var getStart = function getStart(item) {
+ return util.convert(item.data.start, 'Date').valueOf();
+ };
+
+ var getEnd = function getEnd(item) {
+ var end = item.data.end != undefined ? item.data.end : item.data.start;
+ return util.convert(end, 'Date').valueOf();
+ };
+
+ // calculate the date of the left side and right side of the items given
+
+
+ interval = max - min; // ms
+
+ if (interval <= 0) {
+ interval = 10;
+ }
+ factor = interval / _this.props.center.width;
+ util.forEach(_this.itemSet.items, function (item) {
+ item.show();
+ item.repositionX();
+
+ var start = getStart(item);
+ var end = getEnd(item);
+
+ if (this.options.rtl) {
+ var startSide = start - (item.getWidthRight() + 10) * factor;
+ var endSide = end + (item.getWidthLeft() + 10) * factor;
+ } else {
+ var startSide = start - (item.getWidthLeft() + 10) * factor;
+ var endSide = end + (item.getWidthRight() + 10) * factor;
+ }
+
+ if (startSide < min) {
+ min = startSide;
+ minItem = item;
+ }
+ if (endSide > max) {
+ max = endSide;
+ maxItem = item;
+ }
+ }.bind(_this));
+
+ if (minItem && maxItem) {
+ lhs = minItem.getWidthLeft() + 10;
+ rhs = maxItem.getWidthRight() + 10;
+ delta = _this.props.center.width - lhs - rhs; // px
+
+ if (delta > 0) {
+ if (_this.options.rtl) {
+ min = getStart(minItem) - rhs * interval / delta; // ms
+ max = getEnd(maxItem) + lhs * interval / delta; // ms
+ } else {
+ min = getStart(minItem) - lhs * interval / delta; // ms
+ max = getEnd(maxItem) + rhs * interval / delta; // ms
+ }
+ }
+ }
+ })();
+ }
+
+ return {
+ min: min != null ? new Date(min) : null,
+ max: max != null ? new Date(max) : null
+ };
+ };
+
+ /**
+ * Calculate the data range of the items start and end dates
+ * @returns {{min: Date | null, max: Date | null}}
+ */
+ Timeline.prototype.getDataRange = function () {
+ var min = null;
+ var max = null;
+
+ var dataset = this.itemsData && this.itemsData.getDataSet();
+ if (dataset) {
+ dataset.forEach(function (item) {
+ var start = util.convert(item.start, 'Date').valueOf();
+ var end = util.convert(item.end != undefined ? item.end : item.start, 'Date').valueOf();
+ if (min === null || start < min) {
+ min = start;
+ }
+ if (max === null || end > max) {
+ max = end;
+ }
+ });
+ }
+
+ return {
+ min: min != null ? new Date(min) : null,
+ max: max != null ? new Date(max) : null
+ };
+ };
+
+ /**
+ * Generate Timeline related information from an event
+ * @param {Event} event
+ * @return {Object} An object with related information, like on which area
+ * The event happened, whether clicked on an item, etc.
+ */
+ Timeline.prototype.getEventProperties = function (event) {
+ var clientX = event.center ? event.center.x : event.clientX;
+ var clientY = event.center ? event.center.y : event.clientY;
+ if (this.options.rtl) {
+ var x = util.getAbsoluteRight(this.dom.centerContainer) - clientX;
+ } else {
+ var x = clientX - util.getAbsoluteLeft(this.dom.centerContainer);
+ }
+ var y = clientY - util.getAbsoluteTop(this.dom.centerContainer);
+
+ var item = this.itemSet.itemFromTarget(event);
+ var group = this.itemSet.groupFromTarget(event);
+ var customTime = CustomTime.customTimeFromTarget(event);
+
+ var snap = this.itemSet.options.snap || null;
+ var scale = this.body.util.getScale();
+ var step = this.body.util.getStep();
+ var time = this._toTime(x);
+ var snappedTime = snap ? snap(time, scale, step) : time;
+
+ var element = util.getTarget(event);
+ var what = null;
+ if (item != null) {
+ what = 'item';
+ } else if (customTime != null) {
+ what = 'custom-time';
+ } else if (util.hasParent(element, this.timeAxis.dom.foreground)) {
+ what = 'axis';
+ } else if (this.timeAxis2 && util.hasParent(element, this.timeAxis2.dom.foreground)) {
+ what = 'axis';
+ } else if (util.hasParent(element, this.itemSet.dom.labelSet)) {
+ what = 'group-label';
+ } else if (util.hasParent(element, this.currentTime.bar)) {
+ what = 'current-time';
+ } else if (util.hasParent(element, this.dom.center)) {
+ what = 'background';
+ }
+
+ return {
+ event: event,
+ item: item ? item.id : null,
+ group: group ? group.groupId : null,
+ what: what,
+ pageX: event.srcEvent ? event.srcEvent.pageX : event.pageX,
+ pageY: event.srcEvent ? event.srcEvent.pageY : event.pageY,
+ x: x,
+ y: y,
+ time: time,
+ snappedTime: snappedTime
+ };
+ };
+
+ module.exports = Timeline;
+
+/***/ },
+/* 26 */
+/***/ function(module, exports, __webpack_require__) {
+
+ 'use strict';
+
+ Object.defineProperty(exports, "__esModule", {
+ 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 _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 _ColorPicker2 = _interopRequireDefault(_ColorPicker);
+
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
+
+ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
+
+ var util = __webpack_require__(1);
+
+ /**
+ * The way this works is for all properties of this.possible options, you can supply the property name in any form to list the options.
+ * Boolean options are recognised as Boolean
+ * Number options should be written as array: [default value, min value, max value, stepsize]
+ * Colors should be written as array: ['color', '#ffffff']
+ * Strings with should be written as array: [option1, option2, option3, ..]
+ *
+ * The options are matched with their counterparts in each of the modules and the values used in the configuration are
+ *
+ * @param parentModule | the location where parentModule.setOptions() can be called
+ * @param defaultContainer | the default container of the module
+ * @param configureOptions | the fully configured and predefined options set found in allOptions.js
+ * @param pixelRatio | canvas pixel ratio
+ */
+
+ var Configurator = function () {
+ function Configurator(parentModule, defaultContainer, configureOptions) {
+ var pixelRatio = arguments.length <= 3 || arguments[3] === undefined ? 1 : arguments[3];
+
+ _classCallCheck(this, Configurator);
+
+ this.parent = parentModule;
+ this.changedOptions = [];
+ this.container = defaultContainer;
+ this.allowCreation = false;
+
+ this.options = {};
+ this.initialized = false;
+ this.popupCounter = 0;
+ this.defaultOptions = {
+ enabled: false,
+ filter: true,
+ container: undefined,
+ showButton: true
+ };
+ util.extend(this.options, this.defaultOptions);
+
+ this.configureOptions = configureOptions;
+ this.moduleOptions = {};
+ this.domElements = [];
+ this.popupDiv = {};
+ this.popupLimit = 5;
+ this.popupHistory = {};
+ this.colorPicker = new _ColorPicker2.default(pixelRatio);
+ this.wrapper = undefined;
+ }
+
+ /**
+ * refresh all options.
+ * Because all modules parse their options by themselves, we just use their options. We copy them here.
+ *
+ * @param options
+ */
+
+
+ _createClass(Configurator, [{
+ key: 'setOptions',
+ value: function setOptions(options) {
+ if (options !== undefined) {
+ // reset the popup history because the indices may have been changed.
+ this.popupHistory = {};
+ this._removePopup();
+
+ var enabled = true;
+ if (typeof options === 'string') {
+ this.options.filter = options;
+ } else if (options instanceof Array) {
+ this.options.filter = options.join();
+ } else if ((typeof options === 'undefined' ? 'undefined' : _typeof(options)) === 'object') {
+ if (options.container !== undefined) {
+ this.options.container = options.container;
+ }
+ if (options.filter !== undefined) {
+ this.options.filter = options.filter;
+ }
+ if (options.showButton !== undefined) {
+ this.options.showButton = options.showButton;
+ }
+ if (options.enabled !== undefined) {
+ enabled = options.enabled;
+ }
+ } else if (typeof options === 'boolean') {
+ this.options.filter = true;
+ enabled = options;
+ } else if (typeof options === 'function') {
+ this.options.filter = options;
+ enabled = true;
+ }
+ if (this.options.filter === false) {
+ enabled = false;
+ }
+
+ this.options.enabled = enabled;
+ }
+ this._clean();
+ }
+ }, {
+ key: 'setModuleOptions',
+ value: function setModuleOptions(moduleOptions) {
+ this.moduleOptions = moduleOptions;
+ if (this.options.enabled === true) {
+ this._clean();
+ if (this.options.container !== undefined) {
+ this.container = this.options.container;
+ }
+ this._create();
+ }
+ }
+
+ /**
+ * Create all DOM elements
+ * @private
+ */
+
+ }, {
+ key: '_create',
+ value: function _create() {
+ var _this = this;
+
+ this._clean();
+ this.changedOptions = [];
+
+ var filter = this.options.filter;
+ var counter = 0;
+ var show = false;
+ for (var option in this.configureOptions) {
+ if (this.configureOptions.hasOwnProperty(option)) {
+ this.allowCreation = false;
+ show = false;
+ if (typeof filter === 'function') {
+ show = filter(option, []);
+ show = show || this._handleObject(this.configureOptions[option], [option], true);
+ } else if (filter === true || filter.indexOf(option) !== -1) {
+ show = true;
+ }
+
+ if (show !== false) {
+ this.allowCreation = true;
+
+ // linebreak between categories
+ if (counter > 0) {
+ this._makeItem([]);
+ }
+ // a header for the category
+ this._makeHeader(option);
+
+ // get the sub options
+ this._handleObject(this.configureOptions[option], [option]);
+ }
+ counter++;
+ }
+ }
+
+ if (this.options.showButton === true) {
+ (function () {
+ var generateButton = document.createElement('div');
+ generateButton.className = 'vis-configuration vis-config-button';
+ generateButton.innerHTML = 'generate options';
+ generateButton.onclick = function () {
+ _this._printOptions();
+ };
+ generateButton.onmouseover = function () {
+ generateButton.className = 'vis-configuration vis-config-button hover';
+ };
+ generateButton.onmouseout = function () {
+ generateButton.className = 'vis-configuration vis-config-button';
+ };
+
+ _this.optionsContainer = document.createElement('div');
+ _this.optionsContainer.className = 'vis-configuration vis-config-option-container';
+
+ _this.domElements.push(_this.optionsContainer);
+ _this.domElements.push(generateButton);
+ })();
+ }
+
+ this._push();
+ //~ this.colorPicker.insertTo(this.container);
+ }
+
+ /**
+ * draw all DOM elements on the screen
+ * @private
+ */
+
+ }, {
+ key: '_push',
+ value: function _push() {
+ this.wrapper = document.createElement('div');
+ this.wrapper.className = 'vis-configuration-wrapper';
+ this.container.appendChild(this.wrapper);
+ for (var i = 0; i < this.domElements.length; i++) {
+ this.wrapper.appendChild(this.domElements[i]);
+ }
+
+ this._showPopupIfNeeded();
+ }
+
+ /**
+ * delete all DOM elements
+ * @private
+ */
+
+ }, {
+ key: '_clean',
+ value: function _clean() {
+ for (var i = 0; i < this.domElements.length; i++) {
+ this.wrapper.removeChild(this.domElements[i]);
+ }
+
+ if (this.wrapper !== undefined) {
+ this.container.removeChild(this.wrapper);
+ this.wrapper = undefined;
+ }
+ this.domElements = [];
+
+ this._removePopup();
+ }
+
+ /**
+ * get the value from the actualOptions if it exists
+ * @param {array} path | where to look for the actual option
+ * @returns {*}
+ * @private
+ */
+
+ }, {
+ key: '_getValue',
+ value: function _getValue(path) {
+ var base = this.moduleOptions;
+ for (var i = 0; i < path.length; i++) {
+ if (base[path[i]] !== undefined) {
+ base = base[path[i]];
+ } else {
+ base = undefined;
+ break;
+ }
+ }
+ return base;
+ }
+
+ /**
+ * all option elements are wrapped in an item
+ * @param path
+ * @param domElements
+ * @private
+ */
+
+ }, {
+ key: '_makeItem',
+ value: function _makeItem(path) {
+ var _arguments = arguments,
+ _this2 = this;
+
+ if (this.allowCreation === true) {
+ var _len, domElements, _key;
+
+ var _ret2 = function () {
+ var item = document.createElement('div');
+ item.className = 'vis-configuration vis-config-item vis-config-s' + path.length;
+
+ for (_len = _arguments.length, domElements = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
+ domElements[_key - 1] = _arguments[_key];
+ }
+
+ domElements.forEach(function (element) {
+ item.appendChild(element);
+ });
+ _this2.domElements.push(item);
+ return {
+ v: _this2.domElements.length
+ };
+ }();
+
+ if ((typeof _ret2 === 'undefined' ? 'undefined' : _typeof(_ret2)) === "object") return _ret2.v;
+ }
+ return 0;
+ }
+
+ /**
+ * header for major subjects
+ * @param name
+ * @private
+ */
+
+ }, {
+ key: '_makeHeader',
+ value: function _makeHeader(name) {
+ var div = document.createElement('div');
+ div.className = 'vis-configuration vis-config-header';
+ div.innerHTML = name;
+ this._makeItem([], div);
+ }
+
+ /**
+ * make a label, if it is an object label, it gets different styling.
+ * @param name
+ * @param path
+ * @param objectLabel
+ * @returns {HTMLElement}
+ * @private
+ */
+
+ }, {
+ key: '_makeLabel',
+ value: function _makeLabel(name, path) {
+ var objectLabel = arguments.length <= 2 || arguments[2] === undefined ? false : arguments[2];
+
+ var div = document.createElement('div');
+ div.className = 'vis-configuration vis-config-label vis-config-s' + path.length;
+ if (objectLabel === true) {
+ div.innerHTML = '<i><b>' + name + ':</b></i>';
+ } else {
+ div.innerHTML = name + ':';
+ }
+ return div;
+ }
+
+ /**
+ * make a dropdown list for multiple possible string optoins
+ * @param arr
+ * @param value
+ * @param path
+ * @private
+ */
+
+ }, {
+ key: '_makeDropdown',
+ value: function _makeDropdown(arr, value, path) {
+ var select = document.createElement('select');
+ select.className = 'vis-configuration vis-config-select';
+ var selectedValue = 0;
+ if (value !== undefined) {
+ if (arr.indexOf(value) !== -1) {
+ selectedValue = arr.indexOf(value);
+ }
+ }
+
+ for (var i = 0; i < arr.length; i++) {
+ var option = document.createElement('option');
+ option.value = arr[i];
+ if (i === selectedValue) {
+ option.selected = 'selected';
+ }
+ option.innerHTML = arr[i];
+ select.appendChild(option);
+ }
+
+ var me = this;
+ select.onchange = function () {
+ me._update(this.value, path);
+ };
+
+ var label = this._makeLabel(path[path.length - 1], path);
+ this._makeItem(path, label, select);
+ }
+
+ /**
+ * make a range object for numeric options
+ * @param arr
+ * @param value
+ * @param path
+ * @private
+ */
+
+ }, {
+ key: '_makeRange',
+ value: function _makeRange(arr, value, path) {
+ var defaultValue = arr[0];
+ var min = arr[1];
+ var max = arr[2];
+ var step = arr[3];
+ var range = document.createElement('input');
+ range.className = 'vis-configuration vis-config-range';
+ try {
+ range.type = 'range'; // not supported on IE9
+ range.min = min;
+ range.max = max;
+ } catch (err) {}
+ range.step = step;
+
+ // set up the popup settings in case they are needed.
+ var popupString = '';
+ var popupValue = 0;
+
+ if (value !== undefined) {
+ var factor = 1.20;
+ if (value < 0 && value * factor < min) {
+ range.min = Math.ceil(value * factor);
+ popupValue = range.min;
+ popupString = 'range increased';
+ } else if (value / factor < min) {
+ range.min = Math.ceil(value / factor);
+ popupValue = range.min;
+ popupString = 'range increased';
+ }
+ if (value * factor > max && max !== 1) {
+ range.max = Math.ceil(value * factor);
+ popupValue = range.max;
+ popupString = 'range increased';
+ }
+ range.value = value;
+ } else {
+ range.value = defaultValue;
+ }
+
+ var input = document.createElement('input');
+ input.className = 'vis-configuration vis-config-rangeinput';
+ input.value = range.value;
+
+ var me = this;
+ range.onchange = function () {
+ input.value = this.value;me._update(Number(this.value), path);
+ };
+ range.oninput = function () {
+ input.value = this.value;
+ };
+
+ var label = this._makeLabel(path[path.length - 1], path);
+ var itemIndex = this._makeItem(path, label, range, input);
+
+ // if a popup is needed AND it has not been shown for this value, show it.
+ if (popupString !== '' && this.popupHistory[itemIndex] !== popupValue) {
+ this.popupHistory[itemIndex] = popupValue;
+ this._setupPopup(popupString, itemIndex);
+ }
+ }
+
+ /**
+ * prepare the popup
+ * @param string
+ * @param index
+ * @private
+ */
+
+ }, {
+ key: '_setupPopup',
+ value: function _setupPopup(string, index) {
+ var _this3 = this;
+
+ if (this.initialized === true && this.allowCreation === true && this.popupCounter < this.popupLimit) {
+ var div = document.createElement("div");
+ div.id = "vis-configuration-popup";
+ div.className = "vis-configuration-popup";
+ div.innerHTML = string;
+ div.onclick = function () {
+ _this3._removePopup();
+ };
+ this.popupCounter += 1;
+ this.popupDiv = { html: div, index: index };
+ }
+ }
+
+ /**
+ * remove the popup from the dom
+ * @private
+ */
+
+ }, {
+ key: '_removePopup',
+ value: function _removePopup() {
+ if (this.popupDiv.html !== undefined) {
+ this.popupDiv.html.parentNode.removeChild(this.popupDiv.html);
+ clearTimeout(this.popupDiv.hideTimeout);
+ clearTimeout(this.popupDiv.deleteTimeout);
+ this.popupDiv = {};
+ }
+ }
+
+ /**
+ * Show the popup if it is needed.
+ * @private
+ */
+
+ }, {
+ key: '_showPopupIfNeeded',
+ value: function _showPopupIfNeeded() {
+ var _this4 = this;
+
+ if (this.popupDiv.html !== undefined) {
+ var correspondingElement = this.domElements[this.popupDiv.index];
+ var rect = correspondingElement.getBoundingClientRect();
+ this.popupDiv.html.style.left = rect.left + "px";
+ this.popupDiv.html.style.top = rect.top - 30 + "px"; // 30 is the height;
+ document.body.appendChild(this.popupDiv.html);
+ this.popupDiv.hideTimeout = setTimeout(function () {
+ _this4.popupDiv.html.style.opacity = 0;
+ }, 1500);
+ this.popupDiv.deleteTimeout = setTimeout(function () {
+ _this4._removePopup();
+ }, 1800);
+ }
+ }
+
+ /**
+ * make a checkbox for boolean options.
+ * @param defaultValue
+ * @param value
+ * @param path
+ * @private
+ */
+
+ }, {
+ key: '_makeCheckbox',
+ value: function _makeCheckbox(defaultValue, value, path) {
+ var checkbox = document.createElement('input');
+ checkbox.type = 'checkbox';
+ checkbox.className = 'vis-configuration vis-config-checkbox';
+ checkbox.checked = defaultValue;
+ if (value !== undefined) {
+ checkbox.checked = value;
+ if (value !== defaultValue) {
+ if ((typeof defaultValue === 'undefined' ? 'undefined' : _typeof(defaultValue)) === 'object') {
+ if (value !== defaultValue.enabled) {
+ this.changedOptions.push({ path: path, value: value });
+ }
+ } else {
+ this.changedOptions.push({ path: path, value: value });
+ }
+ }
+ }
+
+ var me = this;
+ checkbox.onchange = function () {
+ me._update(this.checked, path);
+ };
+
+ var label = this._makeLabel(path[path.length - 1], path);
+ this._makeItem(path, label, checkbox);
+ }
+
+ /**
+ * make a text input field for string options.
+ * @param defaultValue
+ * @param value
+ * @param path
+ * @private
+ */
+
+ }, {
+ key: '_makeTextInput',
+ value: function _makeTextInput(defaultValue, value, path) {
+ var checkbox = document.createElement('input');
+ checkbox.type = 'text';
+ checkbox.className = 'vis-configuration vis-config-text';
+ checkbox.value = value;
+ if (value !== defaultValue) {
+ this.changedOptions.push({ path: path, value: value });
+ }
+
+ var me = this;
+ checkbox.onchange = function () {
+ me._update(this.value, path);
+ };
+
+ var label = this._makeLabel(path[path.length - 1], path);
+ this._makeItem(path, label, checkbox);
+ }
+
+ /**
+ * make a color field with a color picker for color fields
+ * @param arr
+ * @param value
+ * @param path
+ * @private
+ */
+
+ }, {
+ key: '_makeColorField',
+ value: function _makeColorField(arr, value, path) {
+ var _this5 = this;
+
+ var defaultColor = arr[1];
+ var div = document.createElement('div');
+ value = value === undefined ? defaultColor : value;
+
+ if (value !== 'none') {
+ div.className = 'vis-configuration vis-config-colorBlock';
+ div.style.backgroundColor = value;
+ } else {
+ div.className = 'vis-configuration vis-config-colorBlock none';
+ }
+
+ value = value === undefined ? defaultColor : value;
+ div.onclick = function () {
+ _this5._showColorPicker(value, div, path);
+ };
+
+ var label = this._makeLabel(path[path.length - 1], path);
+ this._makeItem(path, label, div);
+ }
+
+ /**
+ * used by the color buttons to call the color picker.
+ * @param event
+ * @param value
+ * @param div
+ * @param path
+ * @private
+ */
+
+ }, {
+ key: '_showColorPicker',
+ value: function _showColorPicker(value, div, path) {
+ var _this6 = this;
+
+ // clear the callback from this div
+ div.onclick = function () {};
+
+ this.colorPicker.insertTo(div);
+ this.colorPicker.show();
+
+ this.colorPicker.setColor(value);
+ this.colorPicker.setUpdateCallback(function (color) {
+ var colorString = 'rgba(' + color.r + ',' + color.g + ',' + color.b + ',' + color.a + ')';
+ div.style.backgroundColor = colorString;
+ _this6._update(colorString, path);
+ });
+
+ // on close of the colorpicker, restore the callback.
+ this.colorPicker.setCloseCallback(function () {
+ div.onclick = function () {
+ _this6._showColorPicker(value, div, path);
+ };
+ });
+ }
+
+ /**
+ * parse an object and draw the correct items
+ * @param obj
+ * @param path
+ * @private
+ */
+
+ }, {
+ key: '_handleObject',
+ value: function _handleObject(obj) {
+ var path = arguments.length <= 1 || arguments[1] === undefined ? [] : arguments[1];
+ var checkOnly = arguments.length <= 2 || arguments[2] === undefined ? false : arguments[2];
+
+ var show = false;
+ var filter = this.options.filter;
+ var visibleInSet = false;
+ for (var subObj in obj) {
+ if (obj.hasOwnProperty(subObj)) {
+ show = true;
+ var item = obj[subObj];
+ var newPath = util.copyAndExtendArray(path, subObj);
+ if (typeof filter === 'function') {
+ show = filter(subObj, path);
+
+ // if needed we must go deeper into the object.
+ if (show === false) {
+ if (!(item instanceof Array) && typeof item !== 'string' && typeof item !== 'boolean' && item instanceof Object) {
+ this.allowCreation = false;
+ show = this._handleObject(item, newPath, true);
+ this.allowCreation = checkOnly === false;
+ }
+ }
+ }
+
+ if (show !== false) {
+ visibleInSet = true;
+ var value = this._getValue(newPath);
+
+ if (item instanceof Array) {
+ this._handleArray(item, value, newPath);
+ } else if (typeof item === 'string') {
+ this._makeTextInput(item, value, newPath);
+ } else if (typeof item === 'boolean') {
+ this._makeCheckbox(item, value, newPath);
+ } else if (item instanceof Object) {
+ // collapse the physics options that are not enabled
+ var draw = true;
+ if (path.indexOf('physics') !== -1) {
+ if (this.moduleOptions.physics.solver !== subObj) {
+ draw = false;
+ }
+ }
+
+ if (draw === true) {
+ // initially collapse options with an disabled enabled option.
+ if (item.enabled !== undefined) {
+ var enabledPath = util.copyAndExtendArray(newPath, 'enabled');
+ var enabledValue = this._getValue(enabledPath);
+ if (enabledValue === true) {
+ var label = this._makeLabel(subObj, newPath, true);
+ this._makeItem(newPath, label);
+ visibleInSet = this._handleObject(item, newPath) || visibleInSet;
+ } else {
+ this._makeCheckbox(item, enabledValue, newPath);
+ }
+ } else {
+ var _label = this._makeLabel(subObj, newPath, true);
+ this._makeItem(newPath, _label);
+ visibleInSet = this._handleObject(item, newPath) || visibleInSet;
+ }
+ }
+ } else {
+ console.error('dont know how to handle', item, subObj, newPath);
+ }
+ }
+ }
+ }
+ return visibleInSet;
+ }
+
+ /**
+ * handle the array type of option
+ * @param optionName
+ * @param arr
+ * @param value
+ * @param path
+ * @private
+ */
+
+ }, {
+ key: '_handleArray',
+ value: function _handleArray(arr, value, path) {
+ if (typeof arr[0] === 'string' && arr[0] === 'color') {
+ this._makeColorField(arr, value, path);
+ if (arr[1] !== value) {
+ this.changedOptions.push({ path: path, value: value });
+ }
+ } else if (typeof arr[0] === 'string') {
+ this._makeDropdown(arr, value, path);
+ if (arr[0] !== value) {
+ this.changedOptions.push({ path: path, value: value });
+ }
+ } else if (typeof arr[0] === 'number') {
+ this._makeRange(arr, value, path);
+ if (arr[0] !== value) {
+ this.changedOptions.push({ path: path, value: Number(value) });
+ }
+ }
+ }
+
+ /**
+ * called to update the network with the new settings.
+ * @param value
+ * @param path
+ * @private
+ */
+
+ }, {
+ key: '_update',
+ value: function _update(value, path) {
+ var options = this._constructOptions(value, path);
+
+ if (this.parent.body && this.parent.body.emitter && this.parent.body.emitter.emit) {
+ this.parent.body.emitter.emit("configChange", options);
+ }
+ this.initialized = true;
+ this.parent.setOptions(options);
+ }
+ }, {
+ key: '_constructOptions',
+ value: function _constructOptions(value, path) {
+ var optionsObj = arguments.length <= 2 || arguments[2] === undefined ? {} : arguments[2];
+
+ var pointer = optionsObj;
+
+ // when dropdown boxes can be string or boolean, we typecast it into correct types
+ value = value === 'true' ? true : value;
+ value = value === 'false' ? false : value;
+
+ for (var i = 0; i < path.length; i++) {
+ if (path[i] !== 'global') {
+ if (pointer[path[i]] === undefined) {
+ pointer[path[i]] = {};
+ }
+ if (i !== path.length - 1) {
+ pointer = pointer[path[i]];
+ } else {
+ pointer[path[i]] = value;
+ }
+ }
+ }
+ return optionsObj;
+ }
+ }, {
+ key: '_printOptions',
+ value: function _printOptions() {
+ var options = this.getOptions();
+ this.optionsContainer.innerHTML = '<pre>var options = ' + JSON.stringify(options, null, 2) + '</pre>';
+ }
+ }, {
+ key: 'getOptions',
+ value: function getOptions() {
+ var options = {};
+ for (var i = 0; i < this.changedOptions.length; i++) {
+ this._constructOptions(this.changedOptions[i].value, this.changedOptions[i].path, options);
+ }
+ return options;
+ }
+ }]);
+
+ return Configurator;
+ }();
+
+ exports.default = Configurator;
+
+/***/ },
+/* 27 */
+/***/ function(module, exports, __webpack_require__) {
+
+ 'use strict';
+
+ Object.defineProperty(exports, "__esModule", {
+ value: true
+ });
+
+ 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; }; }();
+
+ 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 util = __webpack_require__(1);
+
+ var ColorPicker = function () {
+ function ColorPicker() {
+ var pixelRatio = arguments.length <= 0 || arguments[0] === undefined ? 1 : arguments[0];
+
+ _classCallCheck(this, ColorPicker);
+
+ this.pixelRatio = pixelRatio;
+ this.generated = false;
+ this.centerCoordinates = { x: 289 / 2, y: 289 / 2 };
+ this.r = 289 * 0.49;
+ this.color = { r: 255, g: 255, b: 255, a: 1.0 };
+ this.hueCircle = undefined;
+ this.initialColor = { r: 255, g: 255, b: 255, a: 1.0 };
+ this.previousColor = undefined;
+ this.applied = false;
+
+ // bound by
+ this.updateCallback = function () {};
+ this.closeCallback = function () {};
+
+ // create all DOM elements
+ this._create();
+ }
+
+ /**
+ * this inserts the colorPicker into a div from the DOM
+ * @param container
+ */
+
+
+ _createClass(ColorPicker, [{
+ key: 'insertTo',
+ value: function insertTo(container) {
+ if (this.hammer !== undefined) {
+ this.hammer.destroy();
+ this.hammer = undefined;
+ }
+ this.container = container;
+ this.container.appendChild(this.frame);
+ this._bindHammer();
+
+ this._setSize();
+ }
+
+ /**
+ * the callback is executed on apply and save. Bind it to the application
+ * @param callback
+ */
+
+ }, {
+ key: 'setUpdateCallback',
+ value: function setUpdateCallback(callback) {
+ if (typeof callback === 'function') {
+ this.updateCallback = callback;
+ } else {
+ throw new Error("Function attempted to set as colorPicker update callback is not a function.");
+ }
+ }
+
+ /**
+ * the callback is executed on apply and save. Bind it to the application
+ * @param callback
+ */
+
+ }, {
+ key: 'setCloseCallback',
+ value: function setCloseCallback(callback) {
+ if (typeof callback === 'function') {
+ this.closeCallback = callback;
+ } else {
+ throw new Error("Function attempted to set as colorPicker closing callback is not a function.");
+ }
+ }
+ }, {
+ key: '_isColorString',
+ value: function _isColorString(color) {
+ var htmlColors = { black: '#000000', navy: '#000080', darkblue: '#00008B', mediumblue: '#0000CD', blue: '#0000FF', darkgreen: '#006400', green: '#008000', teal: '#008080', darkcyan: '#008B8B', deepskyblue: '#00BFFF', darkturquoise: '#00CED1', mediumspringgreen: '#00FA9A', lime: '#00FF00', springgreen: '#00FF7F', aqua: '#00FFFF', cyan: '#00FFFF', midnightblue: '#191970', dodgerblue: '#1E90FF', lightseagreen: '#20B2AA', forestgreen: '#228B22', seagreen: '#2E8B57', darkslategray: '#2F4F4F', limegreen: '#32CD32', mediumseagreen: '#3CB371', turquoise: '#40E0D0', royalblue: '#4169E1', steelblue: '#4682B4', darkslateblue: '#483D8B', mediumturquoise: '#48D1CC', indigo: '#4B0082', darkolivegreen: '#556B2F', cadetblue: '#5F9EA0', cornflowerblue: '#6495ED', mediumaquamarine: '#66CDAA', dimgray: '#696969', slateblue: '#6A5ACD', olivedrab: '#6B8E23', slategray: '#708090', lightslategray: '#778899', mediumslateblue: '#7B68EE', lawngreen: '#7CFC00', chartreuse: '#7FFF00', aquamarine: '#7FFFD4', maroon: '#800000', purple: '#800080', olive: '#808000', gray: '#808080', skyblue: '#87CEEB', lightskyblue: '#87CEFA', blueviolet: '#8A2BE2', darkred: '#8B0000', darkmagenta: '#8B008B', saddlebrown: '#8B4513', darkseagreen: '#8FBC8F', lightgreen: '#90EE90', mediumpurple: '#9370D8', darkviolet: '#9400D3', palegreen: '#98FB98', darkorchid: '#9932CC', yellowgreen: '#9ACD32', sienna: '#A0522D', brown: '#A52A2A', darkgray: '#A9A9A9', lightblue: '#ADD8E6', greenyellow: '#ADFF2F', paleturquoise: '#AFEEEE', lightsteelblue: '#B0C4DE', powderblue: '#B0E0E6', firebrick: '#B22222', darkgoldenrod: '#B8860B', mediumorchid: '#BA55D3', rosybrown: '#BC8F8F', darkkhaki: '#BDB76B', silver: '#C0C0C0', mediumvioletred: '#C71585', indianred: '#CD5C5C', peru: '#CD853F', chocolate: '#D2691E', tan: '#D2B48C', lightgrey: '#D3D3D3', palevioletred: '#D87093', thistle: '#D8BFD8', orchid: '#DA70D6', goldenrod: '#DAA520', crimson: '#DC143C', gainsboro: '#DCDCDC', plum: '#DDA0DD', burlywood: '#DEB887', lightcyan: '#E0FFFF', lavender: '#E6E6FA', darksalmon: '#E9967A', violet: '#EE82EE', palegoldenrod: '#EEE8AA', lightcoral: '#F08080', khaki: '#F0E68C', aliceblue: '#F0F8FF', honeydew: '#F0FFF0', azure: '#F0FFFF', sandybrown: '#F4A460', wheat: '#F5DEB3', beige: '#F5F5DC', whitesmoke: '#F5F5F5', mintcream: '#F5FFFA', ghostwhite: '#F8F8FF', salmon: '#FA8072', antiquewhite: '#FAEBD7', linen: '#FAF0E6', lightgoldenrodyellow: '#FAFAD2', oldlace: '#FDF5E6', red: '#FF0000', fuchsia: '#FF00FF', magenta: '#FF00FF', deeppink: '#FF1493', orangered: '#FF4500', tomato: '#FF6347', hotpink: '#FF69B4', coral: '#FF7F50', darkorange: '#FF8C00', lightsalmon: '#FFA07A', orange: '#FFA500', lightpink: '#FFB6C1', pink: '#FFC0CB', gold: '#FFD700', peachpuff: '#FFDAB9', navajowhite: '#FFDEAD', moccasin: '#FFE4B5', bisque: '#FFE4C4', mistyrose: '#FFE4E1', blanchedalmond: '#FFEBCD', papayawhip: '#FFEFD5', lavenderblush: '#FFF0F5', seashell: '#FFF5EE', cornsilk: '#FFF8DC', lemonchiffon: '#FFFACD', floralwhite: '#FFFAF0', snow: '#FFFAFA', yellow: '#FFFF00', lightyellow: '#FFFFE0', ivory: '#FFFFF0', white: '#FFFFFF' };
+ if (typeof color === 'string') {
+ return htmlColors[color];
+ }
+ }
+
+ /**
+ * Set the color of the colorPicker
+ * Supported formats:
+ * 'red' --> HTML color string
+ * '#ffffff' --> hex string
+ * 'rbg(255,255,255)' --> rgb string
+ * 'rgba(255,255,255,1.0)' --> rgba string
+ * {r:255,g:255,b:255} --> rgb object
+ * {r:255,g:255,b:255,a:1.0} --> rgba object
+ * @param color
+ * @param setInitial
+ */
+
+ }, {
+ key: 'setColor',
+ value: function setColor(color) {
+ var setInitial = arguments.length <= 1 || arguments[1] === undefined ? true : arguments[1];
+
+ if (color === 'none') {
+ return;
+ }
+
+ var rgba = void 0;
+
+ // if a html color shorthand is used, convert to hex
+ var htmlColor = this._isColorString(color);
+ if (htmlColor !== undefined) {
+ color = htmlColor;
+ }
+
+ // check format
+ if (util.isString(color) === true) {
+ if (util.isValidRGB(color) === true) {
+ var rgbaArray = color.substr(4).substr(0, color.length - 5).split(',');
+ rgba = { r: rgbaArray[0], g: rgbaArray[1], b: rgbaArray[2], a: 1.0 };
+ } else if (util.isValidRGBA(color) === true) {
+ var _rgbaArray = color.substr(5).substr(0, color.length - 6).split(',');
+ rgba = { r: _rgbaArray[0], g: _rgbaArray[1], b: _rgbaArray[2], a: _rgbaArray[3] };
+ } else if (util.isValidHex(color) === true) {
+ var rgbObj = util.hexToRGB(color);
+ rgba = { r: rgbObj.r, g: rgbObj.g, b: rgbObj.b, a: 1.0 };
+ }
+ } else {
+ if (color instanceof Object) {
+ if (color.r !== undefined && color.g !== undefined && color.b !== undefined) {
+ var alpha = color.a !== undefined ? color.a : '1.0';
+ rgba = { r: color.r, g: color.g, b: color.b, a: alpha };
+ }
+ }
+ }
+
+ // set color
+ if (rgba === undefined) {
+ throw new Error("Unknown color passed to the colorPicker. Supported are strings: rgb, hex, rgba. Object: rgb ({r:r,g:g,b:b,[a:a]}). Supplied: " + JSON.stringify(color));
+ } else {
+ this._setColor(rgba, setInitial);
+ }
+ }
+
+ /**
+ * this shows the color picker.
+ * The hue circle is constructed once and stored.
+ */
+
+ }, {
+ key: 'show',
+ value: function show() {
+ if (this.closeCallback !== undefined) {
+ this.closeCallback();
+ this.closeCallback = undefined;
+ }
+
+ this.applied = false;
+ this.frame.style.display = 'block';
+ this._generateHueCircle();
+ }
+
+ // ------------------------------------------ PRIVATE ----------------------------- //
+
+ /**
+ * Hide the picker. Is called by the cancel button.
+ * Optional boolean to store the previous color for easy access later on.
+ * @param storePrevious
+ * @private
+ */
+
+ }, {
+ key: '_hide',
+ value: function _hide() {
+ var _this = this;
+
+ var storePrevious = arguments.length <= 0 || arguments[0] === undefined ? true : arguments[0];
+
+ // store the previous color for next time;
+ if (storePrevious === true) {
+ this.previousColor = util.extend({}, this.color);
+ }
+
+ if (this.applied === true) {
+ this.updateCallback(this.initialColor);
+ }
+
+ this.frame.style.display = 'none';
+
+ // call the closing callback, restoring the onclick method.
+ // this is in a setTimeout because it will trigger the show again before the click is done.
+ setTimeout(function () {
+ if (_this.closeCallback !== undefined) {
+ _this.closeCallback();
+ _this.closeCallback = undefined;
+ }
+ }, 0);
+ }
+
+ /**
+ * bound to the save button. Saves and hides.
+ * @private
+ */
+
+ }, {
+ key: '_save',
+ value: function _save() {
+ this.updateCallback(this.color);
+ this.applied = false;
+ this._hide();
+ }
+
+ /**
+ * Bound to apply button. Saves but does not close. Is undone by the cancel button.
+ * @private
+ */
+
+ }, {
+ key: '_apply',
+ value: function _apply() {
+ this.applied = true;
+ this.updateCallback(this.color);
+ this._updatePicker(this.color);
+ }
+
+ /**
+ * load the color from the previous session.
+ * @private
+ */
+
+ }, {
+ key: '_loadLast',
+ value: function _loadLast() {
+ if (this.previousColor !== undefined) {
+ this.setColor(this.previousColor, false);
+ } else {
+ alert("There is no last color to load...");
+ }
+ }
+
+ /**
+ * set the color, place the picker
+ * @param rgba
+ * @param setInitial
+ * @private
+ */
+
+ }, {
+ key: '_setColor',
+ value: function _setColor(rgba) {
+ var setInitial = arguments.length <= 1 || arguments[1] === undefined ? true : arguments[1];
+
+ // store the initial color
+ if (setInitial === true) {
+ this.initialColor = util.extend({}, rgba);
+ }
+
+ this.color = rgba;
+ var hsv = util.RGBToHSV(rgba.r, rgba.g, rgba.b);
+
+ var angleConvert = 2 * Math.PI;
+ var radius = this.r * hsv.s;
+ var x = this.centerCoordinates.x + radius * Math.sin(angleConvert * hsv.h);
+ var y = this.centerCoordinates.y + radius * Math.cos(angleConvert * hsv.h);
+
+ this.colorPickerSelector.style.left = x - 0.5 * this.colorPickerSelector.clientWidth + 'px';
+ this.colorPickerSelector.style.top = y - 0.5 * this.colorPickerSelector.clientHeight + 'px';
+
+ this._updatePicker(rgba);
+ }
+
+ /**
+ * bound to opacity control
+ * @param value
+ * @private
+ */
+
+ }, {
+ key: '_setOpacity',
+ value: function _setOpacity(value) {
+ this.color.a = value / 100;
+ this._updatePicker(this.color);
+ }
+
+ /**
+ * bound to brightness control
+ * @param value
+ * @private
+ */
+
+ }, {
+ key: '_setBrightness',
+ value: function _setBrightness(value) {
+ var hsv = util.RGBToHSV(this.color.r, this.color.g, this.color.b);
+ hsv.v = value / 100;
+ var rgba = util.HSVToRGB(hsv.h, hsv.s, hsv.v);
+ rgba['a'] = this.color.a;
+ this.color = rgba;
+ this._updatePicker();
+ }
+
+ /**
+ * update the color picker. A black circle overlays the hue circle to mimic the brightness decreasing.
+ * @param rgba
+ * @private
+ */
+
+ }, {
+ key: '_updatePicker',
+ value: function _updatePicker() {
+ var rgba = arguments.length <= 0 || arguments[0] === undefined ? this.color : arguments[0];
+
+ var hsv = util.RGBToHSV(rgba.r, rgba.g, rgba.b);
+ var ctx = this.colorPickerCanvas.getContext('2d');
+ if (this.pixelRation === undefined) {
+ this.pixelRatio = (window.devicePixelRatio || 1) / (ctx.webkitBackingStorePixelRatio || ctx.mozBackingStorePixelRatio || ctx.msBackingStorePixelRatio || ctx.oBackingStorePixelRatio || ctx.backingStorePixelRatio || 1);
+ }
+ ctx.setTransform(this.pixelRatio, 0, 0, this.pixelRatio, 0, 0);
+
+ // clear the canvas
+ var w = this.colorPickerCanvas.clientWidth;
+ var h = this.colorPickerCanvas.clientHeight;
+ ctx.clearRect(0, 0, w, h);
+
+ ctx.putImageData(this.hueCircle, 0, 0);
+ ctx.fillStyle = 'rgba(0,0,0,' + (1 - hsv.v) + ')';
+ ctx.circle(this.centerCoordinates.x, this.centerCoordinates.y, this.r);
+ ctx.fill();
+
+ this.brightnessRange.value = 100 * hsv.v;
+ this.opacityRange.value = 100 * rgba.a;
+
+ this.initialColorDiv.style.backgroundColor = 'rgba(' + this.initialColor.r + ',' + this.initialColor.g + ',' + this.initialColor.b + ',' + this.initialColor.a + ')';
+ this.newColorDiv.style.backgroundColor = 'rgba(' + this.color.r + ',' + this.color.g + ',' + this.color.b + ',' + this.color.a + ')';
+ }
+
+ /**
+ * used by create to set the size of the canvas.
+ * @private
+ */
+
+ }, {
+ key: '_setSize',
+ value: function _setSize() {
+ this.colorPickerCanvas.style.width = '100%';
+ this.colorPickerCanvas.style.height = '100%';
+
+ this.colorPickerCanvas.width = 289 * this.pixelRatio;
+ this.colorPickerCanvas.height = 289 * this.pixelRatio;
+ }
+
+ /**
+ * create all dom elements
+ * TODO: cleanup, lots of similar dom elements
+ * @private
+ */
+
+ }, {
+ key: '_create',
+ value: function _create() {
+ this.frame = document.createElement('div');
+ this.frame.className = 'vis-color-picker';
+
+ 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);
+
+ if (!this.colorPickerCanvas.getContext) {
+ var noCanvas = document.createElement('DIV');
+ noCanvas.style.color = 'red';
+ noCanvas.style.fontWeight = 'bold';
+ noCanvas.style.padding = '10px';
+ noCanvas.innerHTML = 'Error: your browser does not support HTML canvas';
+ this.colorPickerCanvas.appendChild(noCanvas);
+ } else {
+ var ctx = this.colorPickerCanvas.getContext("2d");
+ this.pixelRatio = (window.devicePixelRatio || 1) / (ctx.webkitBackingStorePixelRatio || ctx.mozBackingStorePixelRatio || ctx.msBackingStorePixelRatio || ctx.oBackingStorePixelRatio || ctx.backingStorePixelRatio || 1);
+
+ this.colorPickerCanvas.getContext("2d").setTransform(this.pixelRatio, 0, 0, this.pixelRatio, 0, 0);
+ }
+
+ 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'; // Not supported on IE9
+ this.opacityRange.min = '0';
+ this.opacityRange.max = '100';
+ } catch (err) {}
+ this.opacityRange.value = '100';
+ this.opacityRange.className = 'vis-range';
+
+ this.brightnessRange = document.createElement('input');
+ try {
+ this.brightnessRange.type = 'range'; // Not supported on IE9
+ this.brightnessRange.min = '0';
+ this.brightnessRange.max = '100';
+ } catch (err) {}
+ this.brightnessRange.value = '100';
+ this.brightnessRange.className = 'vis-range';
+
+ this.opacityDiv.appendChild(this.opacityRange);
+ this.brightnessDiv.appendChild(this.brightnessRange);
+
+ var me = this;
+ this.opacityRange.onchange = function () {
+ me._setOpacity(this.value);
+ };
+ this.opacityRange.oninput = function () {
+ me._setOpacity(this.value);
+ };
+ this.brightnessRange.onchange = function () {
+ me._setBrightness(this.value);
+ };
+ this.brightnessRange.oninput = function () {
+ me._setBrightness(this.value);
+ };
+
+ 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, false);
+
+ 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);
+ }
+
+ /**
+ * bind hammer to the color picker
+ * @private
+ */
+
+ }, {
+ key: '_bindHammer',
+ value: function _bindHammer() {
+ var _this2 = this;
+
+ this.drag = {};
+ this.pinch = {};
+ this.hammer = new Hammer(this.colorPickerCanvas);
+ this.hammer.get('pinch').set({ enable: true });
+
+ hammerUtil.onTouch(this.hammer, function (event) {
+ _this2._moveSelector(event);
+ });
+ this.hammer.on('tap', function (event) {
+ _this2._moveSelector(event);
+ });
+ this.hammer.on('panstart', function (event) {
+ _this2._moveSelector(event);
+ });
+ this.hammer.on('panmove', function (event) {
+ _this2._moveSelector(event);
+ });
+ this.hammer.on('panend', function (event) {
+ _this2._moveSelector(event);
+ });
+ }
+
+ /**
+ * generate the hue circle. This is relatively heavy (200ms) and is done only once on the first time it is shown.
+ * @private
+ */
+
+ }, {
+ key: '_generateHueCircle',
+ value: function _generateHueCircle() {
+ if (this.generated === false) {
+ var ctx = this.colorPickerCanvas.getContext('2d');
+ if (this.pixelRation === undefined) {
+ this.pixelRatio = (window.devicePixelRatio || 1) / (ctx.webkitBackingStorePixelRatio || ctx.mozBackingStorePixelRatio || ctx.msBackingStorePixelRatio || ctx.oBackingStorePixelRatio || ctx.backingStorePixelRatio || 1);
+ }
+ ctx.setTransform(this.pixelRatio, 0, 0, this.pixelRatio, 0, 0);
+
+ // clear the canvas
+ var w = this.colorPickerCanvas.clientWidth;
+ var h = this.colorPickerCanvas.clientHeight;
+ ctx.clearRect(0, 0, w, h);
+
+ // draw hue circle
+ var x = void 0,
+ y = void 0,
+ hue = void 0,
+ sat = void 0;
+ this.centerCoordinates = { x: w * 0.5, y: h * 0.5 };
+ this.r = 0.49 * w;
+ var angleConvert = 2 * Math.PI / 360;
+ var hfac = 1 / 360;
+ var sfac = 1 / this.r;
+ var rgb = void 0;
+ for (hue = 0; hue < 360; hue++) {
+ for (sat = 0; sat < this.r; sat++) {
+ x = this.centerCoordinates.x + sat * Math.sin(angleConvert * hue);
+ y = this.centerCoordinates.y + sat * Math.cos(angleConvert * hue);
+ rgb = util.HSVToRGB(hue * hfac, sat * sfac, 1);
+ ctx.fillStyle = 'rgb(' + rgb.r + ',' + rgb.g + ',' + rgb.b + ')';
+ ctx.fillRect(x - 0.5, y - 0.5, 2, 2);
+ }
+ }
+ ctx.strokeStyle = 'rgba(0,0,0,1)';
+ ctx.circle(this.centerCoordinates.x, this.centerCoordinates.y, this.r);
+ ctx.stroke();
+
+ this.hueCircle = ctx.getImageData(0, 0, w, h);
+ }
+ this.generated = true;
+ }
+
+ /**
+ * move the selector. This is called by hammer functions.
+ *
+ * @param event
+ * @private
+ */
+
+ }, {
+ key: '_moveSelector',
+ value: function _moveSelector(event) {
+ var rect = this.colorPickerDiv.getBoundingClientRect();
+ var left = event.center.x - rect.left;
+ var top = event.center.y - rect.top;
+
+ var centerY = 0.5 * this.colorPickerDiv.clientHeight;
+ var centerX = 0.5 * this.colorPickerDiv.clientWidth;
+
+ var x = left - centerX;
+ var y = top - centerY;
+
+ var angle = Math.atan2(x, y);
+ var radius = 0.98 * Math.min(Math.sqrt(x * x + y * y), centerX);
+
+ var newTop = Math.cos(angle) * radius + centerY;
+ var newLeft = Math.sin(angle) * radius + centerX;
+
+ this.colorPickerSelector.style.top = newTop - 0.5 * this.colorPickerSelector.clientHeight + 'px';
+ this.colorPickerSelector.style.left = newLeft - 0.5 * this.colorPickerSelector.clientWidth + 'px';
+
+ // set color
+ var h = angle / (2 * Math.PI);
+ h = h < 0 ? h + 1 : h;
+ var s = radius / this.r;
+ var hsv = util.RGBToHSV(this.color.r, this.color.g, this.color.b);
+ hsv.h = h;
+ hsv.s = s;
+ var rgba = util.HSVToRGB(hsv.h, hsv.s, hsv.v);
+ rgba['a'] = this.color.a;
+ this.color = rgba;
+
+ // update previews
+ this.initialColorDiv.style.backgroundColor = 'rgba(' + this.initialColor.r + ',' + this.initialColor.g + ',' + this.initialColor.b + ',' + this.initialColor.a + ')';
+ this.newColorDiv.style.backgroundColor = 'rgba(' + this.color.r + ',' + this.color.g + ',' + this.color.b + ',' + this.color.a + ')';
+ }
+ }]);
+
+ return ColorPicker;
+ }();
+
+ exports.default = ColorPicker;
+
+/***/ },
+/* 28 */
+/***/ function(module, exports, __webpack_require__) {
+
+ 'use strict';
+
+ var Hammer = __webpack_require__(20);
+
+ /**
+ * Register a touch event, taking place before a gesture
+ * @param {Hammer} hammer A hammer instance
+ * @param {function} callback Callback, called as callback(event)
+ */
+ exports.onTouch = function (hammer, callback) {
+ callback.inputHandler = function (event) {
+ if (event.isFirst) {
+ callback(event);
+ }
+ };
+
+ hammer.on('hammer.input', callback.inputHandler);
+ };
+
+ /**
+ * Register a release event, taking place after a gesture
+ * @param {Hammer} hammer A hammer instance
+ * @param {function} callback Callback, called as callback(event)
+ */
+ exports.onRelease = function (hammer, callback) {
+ callback.inputHandler = function (event) {
+ if (event.isFinal) {
+ callback(event);
+ }
+ };
+
+ return hammer.on('hammer.input', callback.inputHandler);
+ };
+
+ /**
+ * Unregister a touch event, taking place before a gesture
+ * @param {Hammer} hammer A hammer instance
+ * @param {function} callback Callback, called as callback(event)
+ */
+ exports.offTouch = function (hammer, callback) {
+ hammer.off('hammer.input', callback.inputHandler);
+ };
+
+ /**
+ * Unregister a release event, taking place before a gesture
+ * @param {Hammer} hammer A hammer instance
+ * @param {function} callback Callback, called as callback(event)
+ */
+ exports.offRelease = exports.offTouch;
+
+ /**
+ * Hack the PinchRecognizer such that it doesn't prevent default behavior
+ * for vertical panning.
+ *
+ * Yeah ... this is quite a hack ... see https://github.com/hammerjs/hammer.js/issues/932
+ *
+ * @param {Hammer.Pinch} pinchRecognizer
+ * @return {Hammer.Pinch} returns the pinchRecognizer
+ */
+ exports.disablePreventDefaultVertically = function (pinchRecognizer) {
+ var TOUCH_ACTION_PAN_Y = 'pan-y';
+
+ pinchRecognizer.getTouchAction = function () {
+ // default method returns [TOUCH_ACTION_NONE]
+ return [TOUCH_ACTION_PAN_Y];
+ };
+
+ return pinchRecognizer;
+ };
+
+/***/ },
+/* 29 */
+/***/ function(module, exports, __webpack_require__) {
+
+ 'use strict';
+
+ Object.defineProperty(exports, "__esModule", {
+ 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 _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; }; }();
+
+ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
+
var util = __webpack_require__(1);
- var hammerUtil = __webpack_require__(25);
+
+ var errorFound = false;
+ var allOptions = void 0;
+ var printStyle = 'background: #FFeeee; color: #dd0000';
+ /**
+ * Used to validate options.
+ */
+
+ var Validator = function () {
+ function Validator() {
+ _classCallCheck(this, Validator);
+ }
+
+ /**
+ * Main function to be called
+ * @param options
+ * @param subObject
+ * @returns {boolean}
+ */
+
+
+ _createClass(Validator, null, [{
+ key: 'validate',
+ value: function validate(options, referenceOptions, subObject) {
+ errorFound = false;
+ allOptions = referenceOptions;
+ var usedOptions = referenceOptions;
+ if (subObject !== undefined) {
+ usedOptions = referenceOptions[subObject];
+ }
+ Validator.parse(options, usedOptions, []);
+ return errorFound;
+ }
+
+ /**
+ * Will traverse an object recursively and check every value
+ * @param options
+ * @param referenceOptions
+ * @param path
+ */
+
+ }, {
+ key: 'parse',
+ value: function parse(options, referenceOptions, path) {
+ for (var option in options) {
+ if (options.hasOwnProperty(option)) {
+ Validator.check(option, options, referenceOptions, path);
+ }
+ }
+ }
+
+ /**
+ * Check every value. If the value is an object, call the parse function on that object.
+ * @param option
+ * @param options
+ * @param referenceOptions
+ * @param path
+ */
+
+ }, {
+ key: 'check',
+ value: function check(option, options, referenceOptions, path) {
+ if (referenceOptions[option] === undefined && referenceOptions.__any__ === undefined) {
+ Validator.getSuggestion(option, referenceOptions, path);
+ } else if (referenceOptions[option] === undefined && referenceOptions.__any__ !== undefined) {
+ // __any__ is a wildcard. Any value is accepted and will be further analysed by reference.
+ if (Validator.getType(options[option]) === 'object' && referenceOptions['__any__'].__type__ !== undefined) {
+ // if the any subgroup is not a predefined object int he configurator we do not look deeper into the object.
+ Validator.checkFields(option, options, referenceOptions, '__any__', referenceOptions['__any__'].__type__, path);
+ } else {
+ Validator.checkFields(option, options, referenceOptions, '__any__', referenceOptions['__any__'], path);
+ }
+ } else {
+ // Since all options in the reference are objects, we can check whether they are supposed to be object to look for the __type__ field.
+ if (referenceOptions[option].__type__ !== undefined) {
+ // if this should be an object, we check if the correct type has been supplied to account for shorthand options.
+ Validator.checkFields(option, options, referenceOptions, option, referenceOptions[option].__type__, path);
+ } else {
+ Validator.checkFields(option, options, referenceOptions, option, referenceOptions[option], path);
+ }
+ }
+ }
+
+ /**
+ *
+ * @param {String} option | the option property
+ * @param {Object} options | The supplied options object
+ * @param {Object} referenceOptions | The reference options containing all options and their allowed formats
+ * @param {String} referenceOption | Usually this is the same as option, except when handling an __any__ tag.
+ * @param {String} refOptionType | This is the type object from the reference options
+ * @param {Array} path | where in the object is the option
+ */
+
+ }, {
+ key: 'checkFields',
+ value: function checkFields(option, options, referenceOptions, referenceOption, refOptionObj, path) {
+ var optionType = Validator.getType(options[option]);
+ var refOptionType = refOptionObj[optionType];
+ if (refOptionType !== undefined) {
+ // if the type is correct, we check if it is supposed to be one of a few select values
+ if (Validator.getType(refOptionType) === 'array') {
+ if (refOptionType.indexOf(options[option]) === -1) {
+ console.log('%cInvalid option detected in "' + option + '".' + ' Allowed values are:' + Validator.print(refOptionType) + ' not "' + options[option] + '". ' + Validator.printLocation(path, option), printStyle);
+ errorFound = true;
+ } else if (optionType === 'object' && referenceOption !== "__any__") {
+ path = util.copyAndExtendArray(path, option);
+ Validator.parse(options[option], referenceOptions[referenceOption], path);
+ }
+ } else if (optionType === 'object' && referenceOption !== "__any__") {
+ path = util.copyAndExtendArray(path, option);
+ Validator.parse(options[option], referenceOptions[referenceOption], path);
+ }
+ } else if (refOptionObj['any'] === undefined) {
+ // type of the field is incorrect and the field cannot be any
+ console.log('%cInvalid type received for "' + option + '". Expected: ' + Validator.print(Object.keys(refOptionObj)) + '. Received [' + optionType + '] "' + options[option] + '"' + Validator.printLocation(path, option), printStyle);
+ errorFound = true;
+ }
+ }
+ }, {
+ key: 'getType',
+ value: function getType(object) {
+ var type = typeof object === 'undefined' ? 'undefined' : _typeof(object);
+
+ if (type === 'object') {
+ if (object === null) {
+ return 'null';
+ }
+ if (object instanceof Boolean) {
+ return 'boolean';
+ }
+ if (object instanceof Number) {
+ return 'number';
+ }
+ if (object instanceof String) {
+ return 'string';
+ }
+ if (Array.isArray(object)) {
+ return 'array';
+ }
+ if (object instanceof Date) {
+ return 'date';
+ }
+ if (object.nodeType !== undefined) {
+ return 'dom';
+ }
+ if (object._isAMomentObject === true) {
+ return 'moment';
+ }
+ return 'object';
+ } else if (type === 'number') {
+ return 'number';
+ } else if (type === 'boolean') {
+ return 'boolean';
+ } else if (type === 'string') {
+ return 'string';
+ } else if (type === undefined) {
+ return 'undefined';
+ }
+ return type;
+ }
+ }, {
+ key: 'getSuggestion',
+ value: function getSuggestion(option, options, path) {
+ var localSearch = Validator.findInOptions(option, options, path, false);
+ var globalSearch = Validator.findInOptions(option, allOptions, [], true);
+
+ var localSearchThreshold = 8;
+ var globalSearchThreshold = 4;
+
+ if (localSearch.indexMatch !== undefined) {
+ console.log('%cUnknown option detected: "' + option + '" in ' + Validator.printLocation(localSearch.path, option, '') + 'Perhaps it was incomplete? Did you mean: "' + localSearch.indexMatch + '"?\n\n', printStyle);
+ } else if (globalSearch.distance <= globalSearchThreshold && localSearch.distance > globalSearch.distance) {
+ console.log('%cUnknown option detected: "' + option + '" in ' + Validator.printLocation(localSearch.path, option, '') + 'Perhaps it was misplaced? Matching option found at: ' + Validator.printLocation(globalSearch.path, globalSearch.closestMatch, ''), printStyle);
+ } else if (localSearch.distance <= localSearchThreshold) {
+ console.log('%cUnknown option detected: "' + option + '". Did you mean "' + localSearch.closestMatch + '"?' + Validator.printLocation(localSearch.path, option), printStyle);
+ } else {
+ console.log('%cUnknown option detected: "' + option + '". Did you mean one of these: ' + Validator.print(Object.keys(options)) + Validator.printLocation(path, option), printStyle);
+ }
+
+ errorFound = true;
+ }
+
+ /**
+ * traverse the options in search for a match.
+ * @param option
+ * @param options
+ * @param path
+ * @param recursive
+ * @returns {{closestMatch: string, path: Array, distance: number}}
+ */
+
+ }, {
+ key: 'findInOptions',
+ value: function findInOptions(option, options, path) {
+ var recursive = arguments.length <= 3 || arguments[3] === undefined ? false : arguments[3];
+
+ var min = 1e9;
+ var closestMatch = '';
+ var closestMatchPath = [];
+ var lowerCaseOption = option.toLowerCase();
+ var indexMatch = undefined;
+ for (var op in options) {
+ var distance = void 0;
+ if (options[op].__type__ !== undefined && recursive === true) {
+ var result = Validator.findInOptions(option, options[op], util.copyAndExtendArray(path, op));
+ if (min > result.distance) {
+ closestMatch = result.closestMatch;
+ closestMatchPath = result.path;
+ min = result.distance;
+ indexMatch = result.indexMatch;
+ }
+ } else {
+ if (op.toLowerCase().indexOf(lowerCaseOption) !== -1) {
+ indexMatch = op;
+ }
+ distance = Validator.levenshteinDistance(option, op);
+ if (min > distance) {
+ closestMatch = op;
+ closestMatchPath = util.copyArray(path);
+ min = distance;
+ }
+ }
+ }
+ return { closestMatch: closestMatch, path: closestMatchPath, distance: min, indexMatch: indexMatch };
+ }
+ }, {
+ key: 'printLocation',
+ value: function printLocation(path, option) {
+ var prefix = arguments.length <= 2 || arguments[2] === undefined ? 'Problem value found at: \n' : arguments[2];
+
+ var str = '\n\n' + prefix + 'options = {\n';
+ for (var i = 0; i < path.length; i++) {
+ for (var j = 0; j < i + 1; j++) {
+ str += ' ';
+ }
+ str += path[i] + ': {\n';
+ }
+ for (var _j = 0; _j < path.length + 1; _j++) {
+ str += ' ';
+ }
+ str += option + '\n';
+ for (var _i = 0; _i < path.length + 1; _i++) {
+ for (var _j2 = 0; _j2 < path.length - _i; _j2++) {
+ str += ' ';
+ }
+ str += '}\n';
+ }
+ return str + '\n\n';
+ }
+ }, {
+ key: 'print',
+ value: function print(options) {
+ return JSON.stringify(options).replace(/(\")|(\[)|(\])|(,"__type__")/g, "").replace(/(\,)/g, ', ');
+ }
+
+ // Compute the edit distance between the two given strings
+ // http://en.wikibooks.org/wiki/Algorithm_Implementation/Strings/Levenshtein_distance#JavaScript
+ /*
+ Copyright (c) 2011 Andrei Mackenzie
+ Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
+ The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+ }, {
+ key: 'levenshteinDistance',
+ value: function levenshteinDistance(a, b) {
+ if (a.length === 0) return b.length;
+ if (b.length === 0) return a.length;
+
+ var matrix = [];
+
+ // increment along the first column of each row
+ var i;
+ for (i = 0; i <= b.length; i++) {
+ matrix[i] = [i];
+ }
+
+ // increment each column in the first row
+ var j;
+ for (j = 0; j <= a.length; j++) {
+ matrix[0][j] = j;
+ }
+
+ // Fill in the rest of the matrix
+ for (i = 1; i <= b.length; i++) {
+ for (j = 1; j <= a.length; j++) {
+ if (b.charAt(i - 1) == a.charAt(j - 1)) {
+ matrix[i][j] = matrix[i - 1][j - 1];
+ } else {
+ matrix[i][j] = Math.min(matrix[i - 1][j - 1] + 1, // substitution
+ Math.min(matrix[i][j - 1] + 1, // insertion
+ matrix[i - 1][j] + 1)); // deletion
+ }
+ }
+ }
+
+ return matrix[b.length][a.length];
+ }
+ }]);
+
+ return Validator;
+ }();
+
+ exports.default = Validator;
+ exports.printStyle = printStyle;
+
+/***/ },
+/* 30 */
+/***/ 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 util = __webpack_require__(1);
+ var hammerUtil = __webpack_require__(28);
var moment = __webpack_require__(2);
- var Component = __webpack_require__(26);
- var DateUtil = __webpack_require__(27);
+ var Component = __webpack_require__(31);
+ var DateUtil = __webpack_require__(32);
/**
* @constructor Range
@@ -13399,6 +16490,7 @@ return /******/ (function(modules) { // webpackBootstrap
// default options
this.defaultOptions = {
+ rtl: false,
start: null,
end: null,
moment: moment,
@@ -13411,7 +16503,6 @@ return /******/ (function(modules) { // webpackBootstrap
zoomMax: 1000 * 60 * 60 * 24 * 365 * 10000 // milliseconds
};
this.options = util.extend({}, this.defaultOptions);
-
this.props = {
touch: {}
};
@@ -13453,7 +16544,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'];
+ var fields = ['direction', 'min', 'max', 'zoomMin', 'zoomMax', 'moveable', 'zoomable', 'moment', 'activate', 'hiddenDates', 'zoomKey', 'rtl'];
util.selectiveExtend(fields, this.options, options);
if ('start' in options || 'end' in options) {
@@ -13499,8 +16590,8 @@ return /******/ (function(modules) { // webpackBootstrap
var me = this;
var initStart = this.start;
var initEnd = this.end;
- var duration = typeof animation === 'object' && 'duration' in animation ? animation.duration : 500;
- var easingName = typeof animation === 'object' && 'easingFunction' in animation ? animation.easingFunction : 'easeInOutQuad';
+ var duration = (typeof animation === 'undefined' ? 'undefined' : _typeof(animation)) === 'object' && 'duration' in animation ? animation.duration : 500;
+ var easingName = (typeof animation === 'undefined' ? 'undefined' : _typeof(animation)) === 'object' && 'easingFunction' in animation ? animation.easingFunction : 'easeInOutQuad';
var easingFunction = util.easingFunctions[easingName];
if (!easingFunction) {
throw new Error('Unknown easing function ' + JSON.stringify(easingName) + '. ' + 'Choose from: ' + Object.keys(util.easingFunctions).join(', '));
@@ -13775,7 +16866,13 @@ return /******/ (function(modules) { // webpackBootstrap
interval -= duration;
var width = direction == 'horizontal' ? this.body.domProps.center.width : this.body.domProps.center.height;
- var diffRange = -delta / width * interval;
+
+ if (this.options.rtl) {
+ var diffRange = delta / width * interval;
+ } else {
+ var diffRange = -delta / width * interval;
+ }
+
var newStart = this.props.touch.start + diffRange;
var newEnd = this.props.touch.end + diffRange;
@@ -13793,10 +16890,13 @@ return /******/ (function(modules) { // webpackBootstrap
this.previousDelta = delta;
this._applyRange(newStart, newEnd);
+ var startDate = new Date(this.start);
+ var endDate = new Date(this.end);
+
// fire a rangechange event
this.body.emitter.emit('rangechange', {
- start: new Date(this.start),
- end: new Date(this.end),
+ start: startDate,
+ end: endDate,
byUser: true
});
};
@@ -13874,7 +16974,7 @@ return /******/ (function(modules) { // webpackBootstrap
}
// calculate center, the date to zoom around
- var pointer = getPointer({ x: event.clientX, y: event.clientY }, this.body.dom.center);
+ var pointer = this.getPointer({ x: event.clientX, y: event.clientY }, this.body.dom.center);
var pointerDate = this._pointerToDate(pointer);
this.zoom(scale, pointerDate, delta);
@@ -13910,7 +17010,7 @@ return /******/ (function(modules) { // webpackBootstrap
this.props.touch.allowDragging = false;
if (!this.props.touch.center) {
- this.props.touch.center = getPointer(event.center, this.body.dom.center);
+ this.props.touch.center = this.getPointer(event.center, this.body.dom.center);
}
var scale = 1 / (event.scale + this.scaleOffset);
@@ -13955,7 +17055,11 @@ return /******/ (function(modules) { // webpackBootstrap
// calculate the time where the mouse is, check whether inside
// and no scroll action should happen.
var clientX = event.center ? event.center.x : event.clientX;
- var x = clientX - util.getAbsoluteLeft(this.body.dom.centerContainer);
+ if (this.options.rtl) {
+ var x = clientX - util.getAbsoluteLeft(this.body.dom.centerContainer);
+ } else {
+ var x = util.getAbsoluteRight(this.body.dom.centerContainer) - clientX;
+ }
var time = this.body.util.toTime(x);
return time >= this.start && time <= this.end;
@@ -13989,12 +17093,19 @@ return /******/ (function(modules) { // webpackBootstrap
* @return {{x: Number, y: Number}} pointer
* @private
*/
- function getPointer(touch, element) {
- return {
- x: touch.x - util.getAbsoluteLeft(element),
- y: touch.y - util.getAbsoluteTop(element)
- };
- }
+ Range.prototype.getPointer = function (touch, element) {
+ if (this.options.rtl) {
+ return {
+ x: util.getAbsoluteRight(element) - touch.x,
+ y: touch.y - util.getAbsoluteTop(element)
+ };
+ } else {
+ return {
+ x: touch.x - util.getAbsoluteLeft(element),
+ y: touch.y - util.getAbsoluteTop(element)
+ };
+ }
+ };
/**
* Zoom the range the given scale in or out. Start and end date will
@@ -14075,88 +17186,16 @@ return /******/ (function(modules) { // webpackBootstrap
module.exports = Range;
/***/ },
-/* 25 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
-
- var Hammer = __webpack_require__(20);
-
- /**
- * Register a touch event, taking place before a gesture
- * @param {Hammer} hammer A hammer instance
- * @param {function} callback Callback, called as callback(event)
- */
- exports.onTouch = function (hammer, callback) {
- callback.inputHandler = function (event) {
- if (event.isFirst && !isTouching) {
- callback(event);
-
- isTouching = true;
- setTimeout(function () {
- isTouching = false;
- }, 0);
- }
- };
-
- hammer.on('hammer.input', callback.inputHandler);
- };
-
- // isTouching is true while a touch action is being emitted
- // this is a hack to prevent `touch` from being fired twice
- var isTouching = false;
-
- /**
- * Register a release event, taking place after a gesture
- * @param {Hammer} hammer A hammer instance
- * @param {function} callback Callback, called as callback(event)
- */
- exports.onRelease = function (hammer, callback) {
- callback.inputHandler = function (event) {
- if (event.isFinal && !isReleasing) {
- callback(event);
-
- isReleasing = true;
- setTimeout(function () {
- isReleasing = false;
- }, 0);
- }
- };
-
- return hammer.on('hammer.input', callback.inputHandler);
- };
-
- // isReleasing is true while a release action is being emitted
- // this is a hack to prevent `release` from being fired twice
- var isReleasing = false;
-
- /**
- * Unregister a touch event, taking place before a gesture
- * @param {Hammer} hammer A hammer instance
- * @param {function} callback Callback, called as callback(event)
- */
- exports.offTouch = function (hammer, callback) {
- hammer.off('hammer.input', callback.inputHandler);
- };
-
- /**
- * Unregister a release event, taking place before a gesture
- * @param {Hammer} hammer A hammer instance
- * @param {function} callback Callback, called as callback(event)
- */
- exports.offRelease = exports.offTouch;
-
-/***/ },
-/* 26 */
+/* 31 */
/***/ function(module, exports) {
+ "use strict";
+
/**
* Prototype for visual components
* @param {{dom: Object, domProps: Object, emitter: Emitter, range: Range}} [body]
* @param {Object} [options]
*/
- "use strict";
-
function Component(body, options) {
this.options = null;
this.props = null;
@@ -14207,10 +17246,11 @@ return /******/ (function(modules) { // webpackBootstrap
module.exports = Component;
/***/ },
-/* 27 */
+/* 32 */
/***/ function(module, exports) {
-
+ "use strict";
+
/**
* used in Core to convert the options into a volatile variable
*
@@ -14218,8 +17258,6 @@ return /******/ (function(modules) { // webpackBootstrap
* @param {Object} body
* @param {Array | Object} hiddenDates
*/
- "use strict";
-
exports.convertHiddenOptions = function (moment, body, hiddenDates) {
if (hiddenDates && !Array.isArray(hiddenDates)) {
return exports.convertHiddenOptions(moment, body, [hiddenDates]);
@@ -14679,23 +17717,25 @@ return /******/ (function(modules) { // webpackBootstrap
};
/***/ },
-/* 28 */
+/* 33 */
/***/ function(module, exports, __webpack_require__) {
'use strict';
- var Emitter = __webpack_require__(12);
+ 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 Hammer = __webpack_require__(20);
- var hammerUtil = __webpack_require__(25);
+ var hammerUtil = __webpack_require__(28);
var util = __webpack_require__(1);
- var DataSet = __webpack_require__(8);
- var DataView = __webpack_require__(10);
- var Range = __webpack_require__(24);
- var ItemSet = __webpack_require__(29);
- var TimeAxis = __webpack_require__(39);
- var Activator = __webpack_require__(40);
- var DateUtil = __webpack_require__(27);
- var CustomTime = __webpack_require__(42);
+ var DataSet = __webpack_require__(9);
+ var DataView = __webpack_require__(11);
+ var Range = __webpack_require__(30);
+ var ItemSet = __webpack_require__(34);
+ var TimeAxis = __webpack_require__(44);
+ var Activator = __webpack_require__(45);
+ var DateUtil = __webpack_require__(32);
+ var CustomTime = __webpack_require__(46);
/**
* Create a timeline visualization
@@ -14776,14 +17816,16 @@ return /******/ (function(modules) { // webpackBootstrap
this.dom.rightContainer.appendChild(this.dom.shadowTopRight);
this.dom.rightContainer.appendChild(this.dom.shadowBottomRight);
- this.on('rangechange', (function () {
- this._redraw(); // this allows overriding the _redraw method
- }).bind(this));
+ this.on('rangechange', function () {
+ if (this.initialDrawDone === true) {
+ this._redraw(); // this allows overriding the _redraw method
+ }
+ }.bind(this));
this.on('touch', this._onTouch.bind(this));
this.on('pan', this._onDrag.bind(this));
var me = this;
- this.on('change', function (properties) {
+ this.on('_change', function (properties) {
if (properties && properties.queue == true) {
// redraw once on next tick
if (!me._redrawTimer) {
@@ -14801,8 +17843,9 @@ return /******/ (function(modules) { // webpackBootstrap
// create event listeners for all interesting events, these events will be
// emitted via emitter
this.hammer = new Hammer(this.dom.root);
- this.hammer.get('pinch').set({ enable: true });
- this.hammer.get('pan').set({ threshold: 5, direction: 30 }); // 30 is ALL_DIRECTIONS in hammer.
+ var pinchRecognizer = this.hammer.get('pinch').set({ enable: true });
+ hammerUtil.disablePreventDefaultVertically(pinchRecognizer);
+ this.hammer.get('pan').set({ threshold: 5, direction: Hammer.DIRECTION_HORIZONTAL });
this.listeners = {};
var events = ['tap', 'doubletap', 'press', 'pinch', 'pan', 'panstart', 'panmove', 'panend'
@@ -14823,14 +17866,14 @@ return /******/ (function(modules) { // webpackBootstrap
});
// emulate a touch event (emitted before the start of a pan, pinch, tap, or press)
- hammerUtil.onTouch(this.hammer, (function (event) {
+ hammerUtil.onTouch(this.hammer, function (event) {
me.emit('touch', event);
- }).bind(this));
+ }.bind(this));
// emulate a release event (emitted after a pan, pinch, tap, or press)
- hammerUtil.onRelease(this.hammer, (function (event) {
+ hammerUtil.onRelease(this.hammer, function (event) {
me.emit('release', event);
- }).bind(this));
+ }.bind(this));
function onMouseWheel(event) {
if (me.isActive()) {
@@ -14863,6 +17906,7 @@ return /******/ (function(modules) { // webpackBootstrap
this.touch = {};
this.redrawCount = 0;
+ this.initialDrawDone = false;
// attach the root panel to the provided container
if (!container) throw new Error('No container provided');
@@ -14897,16 +17941,25 @@ 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', 'throttleRedraw'];
+ var fields = ['width', 'height', 'minHeight', 'maxHeight', 'autoResize', 'start', 'end', 'clickToUse', 'dataAttributes', 'hiddenDates', 'locale', 'locales', 'moment', 'rtl', 'throttleRedraw'];
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';
+ }
+
+ this.options.orientation = { item: undefined, axis: undefined };
if ('orientation' in options) {
if (typeof options.orientation === 'string') {
this.options.orientation = {
item: options.orientation,
axis: options.orientation
};
- } else if (typeof options.orientation === 'object') {
+ } else if (_typeof(options.orientation) === 'object') {
if ('item' in options.orientation) {
this.options.orientation.item = options.orientation.item;
}
@@ -14993,11 +18046,11 @@ 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);
+ } else {
+ // Not the initial run: redraw everything
+ this._redraw();
}
- this._redraw = util.throttle(this._origRedraw, this.options.throttleRedraw);
-
- // redraw everything
- this._redraw();
};
/**
@@ -15160,11 +18213,11 @@ return /******/ (function(modules) { // webpackBootstrap
throw new Error('No custom time bar found with id ' + JSON.stringify(id));
}
- customTimes.forEach((function (customTime) {
+ customTimes.forEach(function (customTime) {
this.customTimes.splice(this.customTimes.indexOf(customTime), 1);
this.components.splice(this.components.indexOf(customTime), 1);
customTime.destroy();
- }).bind(this));
+ }.bind(this));
};
/**
@@ -15197,7 +18250,6 @@ return /******/ (function(modules) { // webpackBootstrap
var interval = range.max - range.min;
var min = new Date(range.min.valueOf() - interval * 0.01);
var max = new Date(range.max.valueOf() + interval * 0.01);
-
var animation = options && options.animation !== undefined ? options.animation : true;
this.range.setRange(min, max, animation);
};
@@ -15294,12 +18346,13 @@ return /******/ (function(modules) { // webpackBootstrap
* @protected
*/
Core.prototype._redraw = function () {
+ this.redrawCount++;
var resized = false;
var options = this.options;
var props = this.props;
var dom = this.dom;
- if (!dom) return; // when destroyed
+ if (!dom || !dom.container || dom.root.offsetWidth == 0) return; // when destroyed, or invisible
DateUtil.updateHiddenDates(this.options.moment, this.body, this.options.hiddenDates);
@@ -15431,21 +18484,31 @@ return /******/ (function(modules) { // webpackBootstrap
dom.shadowTopRight.style.visibility = visibilityTop;
dom.shadowBottomRight.style.visibility = visibilityBottom;
+ // enable/disable vertical panning
+ var contentsOverflow = this.props.center.height > this.props.centerContainer.height;
+ this.hammer.get('pan').set({
+ direction: contentsOverflow ? Hammer.DIRECTION_ALL : Hammer.DIRECTION_HORIZONTAL
+ });
+
// redraw all components
this.components.forEach(function (component) {
resized = component.redraw() || resized;
});
+ var MAX_REDRAW = 5;
if (resized) {
- // keep repainting until all sizes are settled
- var MAX_REDRAWS = 3; // maximum number of consecutive redraws
- if (this.redrawCount < MAX_REDRAWS) {
- this.redrawCount++;
- this._redraw();
+ if (this.redrawCount < MAX_REDRAW) {
+ this.body.emitter.emit('_change');
+ return;
} else {
console.log('WARNING: infinite loop in redraw?');
}
+ } else {
this.redrawCount = 0;
}
+ this.initialDrawDone = true;
+
+ //Emit public 'changed' event for UI updates, see issue #1592
+ this.body.emitter.emit("changed");
};
// TODO: deprecated since version 1.1.0, remove some day
@@ -15570,7 +18633,7 @@ return /******/ (function(modules) { // webpackBootstrap
me.props.lastWidth = me.dom.root.offsetWidth;
me.props.lastHeight = me.dom.root.offsetHeight;
- me.emit('change');
+ me.body.emitter.emit('_change');
}
}
};
@@ -15578,6 +18641,12 @@ return /******/ (function(modules) { // webpackBootstrap
// add event listener to window resize
util.addEventListener(window, 'resize', this._onResize);
+ //Prevent initial unnecessary redraw
+ if (me.dom.root) {
+ me.props.lastWidth = me.dom.root.offsetWidth;
+ me.props.lastHeight = me.dom.root.offsetHeight;
+ }
+
this.watchTimer = setInterval(this._onResize, 1000);
};
@@ -15633,7 +18702,6 @@ return /******/ (function(modules) { // webpackBootstrap
var newScrollTop = this._setScrollTop(this.touch.initialScrollTop + delta);
if (newScrollTop != oldScrollTop) {
- this._redraw(); // TODO: this causes two redraws when dragging, the other is triggered by rangechange already
this.emit("verticalDrag");
}
};
@@ -15695,23 +18763,25 @@ return /******/ (function(modules) { // webpackBootstrap
module.exports = Core;
/***/ },
-/* 29 */
+/* 34 */
/***/ function(module, exports, __webpack_require__) {
'use strict';
+ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol ? "symbol" : typeof obj; };
+
var Hammer = __webpack_require__(20);
var util = __webpack_require__(1);
- var DataSet = __webpack_require__(8);
- var DataView = __webpack_require__(10);
- var TimeStep = __webpack_require__(30);
- var Component = __webpack_require__(26);
- var Group = __webpack_require__(31);
- var BackgroundGroup = __webpack_require__(35);
- var BoxItem = __webpack_require__(36);
- var PointItem = __webpack_require__(37);
- var RangeItem = __webpack_require__(33);
- var BackgroundItem = __webpack_require__(38);
+ var DataSet = __webpack_require__(9);
+ var DataView = __webpack_require__(11);
+ var TimeStep = __webpack_require__(35);
+ var Component = __webpack_require__(31);
+ var Group = __webpack_require__(36);
+ var BackgroundGroup = __webpack_require__(40);
+ var BoxItem = __webpack_require__(41);
+ var PointItem = __webpack_require__(42);
+ var RangeItem = __webpack_require__(38);
+ var BackgroundItem = __webpack_require__(43);
var UNGROUPED = '__ungrouped__'; // reserved group id for ungrouped items
var BACKGROUND = '__background__'; // reserved group id for background items without group
@@ -15727,8 +18797,8 @@ 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'
@@ -15913,15 +18983,15 @@ return /******/ (function(modules) { // webpackBootstrap
this.hammer = new Hammer(this.body.dom.centerContainer);
// drag items when selected
- this.hammer.on('hammer.input', (function (event) {
+ this.hammer.on('hammer.input', function (event) {
if (event.isFirst) {
this._onTouch(event);
}
- }).bind(this));
+ }.bind(this));
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: 30 }); // 30 is ALL_DIRECTIONS in hammer.
+ this.hammer.get('pan').set({ threshold: 5, direction: Hammer.DIRECTION_HORIZONTAL });
// single select (or unselect) when tapping an item
this.hammer.on('tap', this._onSelectItem.bind(this));
@@ -15931,12 +19001,12 @@ return /******/ (function(modules) { // webpackBootstrap
// add item on doubletap
this.hammer.on('doubletap', this._onAddItem.bind(this));
-
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: 30 });
+ this.groupHammer.get('pan').set({ threshold: 5, direction: Hammer.DIRECTION_HORIZONTAL });
// attach to the DOM
this.show();
@@ -16009,13 +19079,13 @@ return /******/ (function(modules) { // webpackBootstrap
ItemSet.prototype.setOptions = function (options) {
if (options) {
// copy all options that we know
- var fields = ['type', 'align', 'order', 'stack', 'selectable', 'multiselect', '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'];
util.selectiveExtend(fields, this.options, options);
if ('orientation' in options) {
if (typeof options.orientation === 'string') {
this.options.orientation.item = options.orientation === 'top' ? 'top' : 'bottom';
- } else if (typeof options.orientation === 'object' && 'item' in options.orientation) {
+ } else if (_typeof(options.orientation) === 'object' && 'item' in options.orientation) {
this.options.orientation.item = options.orientation.item;
}
}
@@ -16025,13 +19095,13 @@ return /******/ (function(modules) { // webpackBootstrap
this.options.margin.axis = options.margin;
this.options.margin.item.horizontal = options.margin;
this.options.margin.item.vertical = options.margin;
- } else if (typeof options.margin === 'object') {
+ } else if (_typeof(options.margin) === 'object') {
util.selectiveExtend(['axis'], this.options.margin, options.margin);
if ('item' in options.margin) {
if (typeof options.margin.item === 'number') {
this.options.margin.item.horizontal = options.margin.item;
this.options.margin.item.vertical = options.margin.item;
- } else if (typeof options.margin.item === 'object') {
+ } else if (_typeof(options.margin.item) === 'object') {
util.selectiveExtend(['horizontal', 'vertical'], this.options.margin.item, options.margin.item);
}
}
@@ -16044,7 +19114,7 @@ return /******/ (function(modules) { // webpackBootstrap
this.options.editable.updateGroup = options.editable;
this.options.editable.add = options.editable;
this.options.editable.remove = options.editable;
- } else if (typeof options.editable === 'object') {
+ } else if (_typeof(options.editable) === 'object') {
util.selectiveExtend(['updateTime', 'updateGroup', 'add', 'remove'], this.options.editable, options.editable);
}
}
@@ -16054,13 +19124,13 @@ return /******/ (function(modules) { // webpackBootstrap
this.options.groupEditable.order = options.groupEditable;
this.options.groupEditable.add = options.groupEditable;
this.options.groupEditable.remove = options.groupEditable;
- } else if (typeof options.groupEditable === 'object') {
+ } else if (_typeof(options.groupEditable) === 'object') {
util.selectiveExtend(['order', 'add', 'remove'], this.options.groupEditable, options.groupEditable);
}
}
// callback functions
- var addCallback = (function (name) {
+ var addCallback = function (name) {
var fn = options[name];
if (fn) {
if (!(fn instanceof Function)) {
@@ -16068,7 +19138,7 @@ return /******/ (function(modules) { // webpackBootstrap
}
this.options[name] = fn;
}
- }).bind(this);
+ }.bind(this);
['onAdd', 'onUpdate', 'onRemove', 'onMove', 'onMoving', 'onAddGroup', 'onMoveGroup', 'onRemoveGroup'].forEach(addCallback);
// force the itemSet to refresh: options like orientation and margins may be changed
@@ -16194,8 +19264,14 @@ return /******/ (function(modules) { // webpackBootstrap
*/
ItemSet.prototype.getVisibleItems = function () {
var range = this.body.range.getRange();
- var left = this.body.util.toScreen(range.start);
- var right = this.body.util.toScreen(range.end);
+
+ if (this.options.rtl) {
+ var right = this.body.util.toScreen(range.start);
+ var left = this.body.util.toScreen(range.end);
+ } else {
+ var left = this.body.util.toScreen(range.start);
+ var right = this.body.util.toScreen(range.end);
+ }
var ids = [];
for (var groupId in this.groups) {
@@ -16208,8 +19284,14 @@ return /******/ (function(modules) { // webpackBootstrap
for (var i = 0; i < rawVisibleItems.length; i++) {
var item = rawVisibleItems[i];
// TODO: also check whether visible vertically
- if (item.left < right && item.left + item.width > left) {
- ids.push(item.id);
+ if (this.options.rtl) {
+ if (item.right < left && item.right + item.width > right) {
+ ids.push(item.id);
+ }
+ } else {
+ if (item.left < right && item.left + item.width > left) {
+ ids.push(item.id);
+ }
}
}
}
@@ -16249,7 +19331,12 @@ return /******/ (function(modules) { // webpackBootstrap
// recalculate absolute position (before redrawing groups)
this.props.top = this.body.domProps.top.height + this.body.domProps.border.top;
- this.props.left = this.body.domProps.left.width + this.body.domProps.border.left;
+
+ if (this.options.rtl) {
+ this.props.right = this.body.domProps.right.width + this.body.domProps.border.right;
+ } else {
+ this.props.left = this.body.domProps.left.width + this.body.domProps.border.left;
+ }
// update class name
frame.className = 'vis-itemset';
@@ -16300,7 +19387,11 @@ return /******/ (function(modules) { // webpackBootstrap
// reposition axis
this.dom.axis.style.top = asSize(orientation == 'top' ? this.body.domProps.top.height + this.body.domProps.border.top : this.body.domProps.top.height + this.body.domProps.centerContainer.height);
- this.dom.axis.style.left = '0';
+ if (this.options.rtl) {
+ this.dom.axis.style.right = '0';
+ } else {
+ this.dom.axis.style.left = '0';
+ }
// check if this component is resized
resized = this._isResized() || resized;
@@ -16418,6 +19509,8 @@ return /******/ (function(modules) { // webpackBootstrap
// update the group holding all ungrouped items
this._updateUngrouped();
}
+
+ this.body.emitter.emit('_change', { queue: true });
};
/**
@@ -16475,7 +19568,7 @@ return /******/ (function(modules) { // webpackBootstrap
// update the order of all items in each group
this._order();
- this.body.emitter.emit('change', { queue: true });
+ this.body.emitter.emit('_change', { queue: true });
};
/**
@@ -16539,7 +19632,7 @@ return /******/ (function(modules) { // webpackBootstrap
ItemSet.prototype._onUpdate = function (ids) {
var me = this;
- ids.forEach((function (id) {
+ ids.forEach(function (id) {
var itemData = me.itemsData.get(id, me.itemOptions);
var item = me.items[id];
var type = me._getType(itemData);
@@ -16576,11 +19669,11 @@ return /******/ (function(modules) { // webpackBootstrap
throw new TypeError('Unknown item type "' + type + '"');
}
}
- }).bind(this));
+ }.bind(this));
this._order();
this.stackDirty = true; // force re-stacking of all items next redraw
- this.body.emitter.emit('change', { queue: true });
+ this.body.emitter.emit('_change', { queue: true });
};
/**
@@ -16610,7 +19703,7 @@ return /******/ (function(modules) { // webpackBootstrap
// update order
this._order();
this.stackDirty = true; // force re-stacking of all items next redraw
- this.body.emitter.emit('change', { queue: true });
+ this.body.emitter.emit('_change', { queue: true });
}
};
@@ -16679,7 +19772,7 @@ return /******/ (function(modules) { // webpackBootstrap
}
});
- this.body.emitter.emit('change', { queue: true });
+ this.body.emitter.emit('_change', { queue: true });
};
/**
@@ -16700,7 +19793,7 @@ return /******/ (function(modules) { // webpackBootstrap
this.markDirty();
- this.body.emitter.emit('change', { queue: true });
+ this.body.emitter.emit('_change', { queue: true });
};
/**
@@ -16892,7 +19985,7 @@ return /******/ (function(modules) { // webpackBootstrap
var itemsToDrag = this.options.itemsAlwaysDraggable && !item.selected ? [item.id] : this.getSelection();
- this.touchParams.itemProps = itemsToDrag.map((function (id) {
+ this.touchParams.itemProps = itemsToDrag.map(function (id) {
var item = me.items[id];
var groupIndex = me._getGroupIndex(item.data.group);
return {
@@ -16901,7 +19994,7 @@ return /******/ (function(modules) { // webpackBootstrap
groupOffset: baseGroupIndex - groupIndex,
data: this._cloneItemData(item.data)
};
- }).bind(this));
+ }.bind(this));
}
event.stopPropagation();
@@ -16918,8 +20011,15 @@ return /******/ (function(modules) { // webpackBootstrap
*/
ItemSet.prototype._onDragStartAddItem = function (event) {
var snap = this.options.snap || null;
- 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
+
+ if (this.options.rtl) {
+ 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 time = this.body.util.toTime(x);
var scale = this.body.util.getScale();
var step = this.body.util.getStep();
@@ -16940,7 +20040,6 @@ return /******/ (function(modules) { // webpackBootstrap
if (group) {
itemData.group = group.groupId;
}
-
var newItem = new RangeItem(itemData, this.conversion, this.options);
newItem.id = id; // TODO: not so nice setting id afterwards
newItem.data = this._cloneItemData(itemData);
@@ -16948,10 +20047,15 @@ return /******/ (function(modules) { // webpackBootstrap
var props = {
item: newItem,
- dragRight: true,
initialX: event.center.x,
data: newItem.data
};
+
+ if (this.options.rtl) {
+ props.dragLeft = true;
+ } else {
+ props.dragRight = true;
+ }
this.touchParams.itemProps = [props];
event.stopPropagation();
@@ -16968,7 +20072,13 @@ return /******/ (function(modules) { // webpackBootstrap
var me = this;
var snap = this.options.snap || null;
- var xOffset = this.body.dom.root.offsetLeft + this.body.domProps.left.width;
+
+ if (this.options.rtl) {
+ var xOffset = this.body.dom.root.offsetLeft + this.body.domProps.right.width;
+ } else {
+ var xOffset = this.body.dom.root.offsetLeft + this.body.domProps.left.width;
+ }
+
var scale = this.body.util.getScale();
var step = this.body.util.getStep();
@@ -16989,10 +20099,15 @@ return /******/ (function(modules) { // webpackBootstrap
}
// move
- this.touchParams.itemProps.forEach((function (props) {
+ this.touchParams.itemProps.forEach(function (props) {
var current = me.body.util.toTime(event.center.x - xOffset);
var initial = me.body.util.toTime(props.initialX - xOffset);
- var offset = current - initial; // ms
+
+ if (this.options.rtl) {
+ var offset = -(current - initial); // ms
+ } else {
+ var offset = current - initial; // ms
+ }
var itemData = this._cloneItemData(props.item.data); // clone the data
if (props.item.editable === false) {
@@ -17000,27 +20115,45 @@ return /******/ (function(modules) { // webpackBootstrap
}
var updateTimeAllowed = me.options.editable.updateTime || props.item.editable === true;
-
if (updateTimeAllowed) {
if (props.dragLeft) {
// drag left side of a range item
- if (itemData.start != undefined) {
- var initialStart = util.convert(props.data.start, 'Date');
- var start = new Date(initialStart.valueOf() + offset);
- // TODO: pass a Moment instead of a Date to snap(). (Breaking change)
- itemData.start = snap ? snap(start, scale, step) : start;
+ if (this.options.rtl) {
+ if (itemData.end != undefined) {
+ var initialEnd = util.convert(props.data.end, 'Date');
+ var end = new Date(initialEnd.valueOf() + offset);
+ // TODO: pass a Moment instead of a Date to snap(). (Breaking change)
+ itemData.end = snap ? snap(end, scale, step) : end;
+ }
+ } else {
+ if (itemData.start != undefined) {
+ var initialStart = util.convert(props.data.start, 'Date');
+ var start = new Date(initialStart.valueOf() + offset);
+ // TODO: pass a Moment instead of a Date to snap(). (Breaking change)
+ itemData.start = snap ? snap(start, scale, step) : start;
+ }
}
} else if (props.dragRight) {
// drag right side of a range item
- if (itemData.end != undefined) {
- var initialEnd = util.convert(props.data.end, 'Date');
- var end = new Date(initialEnd.valueOf() + offset);
- // TODO: pass a Moment instead of a Date to snap(). (Breaking change)
- itemData.end = snap ? snap(end, scale, step) : end;
+ if (this.options.rtl) {
+ if (itemData.start != undefined) {
+ var initialStart = util.convert(props.data.start, 'Date');
+ var start = new Date(initialStart.valueOf() + offset);
+ // TODO: pass a Moment instead of a Date to snap(). (Breaking change)
+ itemData.start = snap ? snap(start, scale, step) : start;
+ }
+ } else {
+ if (itemData.end != undefined) {
+ var initialEnd = util.convert(props.data.end, 'Date');
+ var end = new Date(initialEnd.valueOf() + offset);
+ // TODO: pass a Moment instead of a Date to snap(). (Breaking change)
+ itemData.end = snap ? snap(end, scale, step) : end;
+ }
}
} else {
// drag both start and end
if (itemData.start != undefined) {
+
var initialStart = util.convert(props.data.start, 'Date').valueOf();
var start = new Date(initialStart + offset);
@@ -17055,15 +20188,15 @@ return /******/ (function(modules) { // webpackBootstrap
// confirm moving the item
itemData = this._cloneItemData(itemData); // convert start and end to the correct type
- me.options.onMoving(itemData, (function (itemData) {
+ me.options.onMoving(itemData, function (itemData) {
if (itemData) {
props.item.setData(this._cloneItemData(itemData, 'Date'));
}
- }).bind(this));
- }).bind(this));
+ }.bind(this));
+ }.bind(this));
this.stackDirty = true; // force re-stacking of all items next redraw
- this.body.emitter.emit('change');
+ this.body.emitter.emit('_change');
}
};
@@ -17100,7 +20233,7 @@ return /******/ (function(modules) { // webpackBootstrap
var itemProps = this.touchParams.itemProps;
this.touchParams.itemProps = null;
- itemProps.forEach((function (props) {
+ itemProps.forEach(function (props) {
var id = props.item.id;
var exists = me.itemsData.get(id, me.itemOptions) != null;
@@ -17114,7 +20247,7 @@ return /******/ (function(modules) { // webpackBootstrap
// force re-stacking of all items next redraw
me.stackDirty = true;
- me.body.emitter.emit('change');
+ me.body.emitter.emit('_change');
});
} else {
// update existing item
@@ -17129,11 +20262,11 @@ return /******/ (function(modules) { // webpackBootstrap
props.item.setData(props.data);
me.stackDirty = true; // force re-stacking of all items next redraw
- me.body.emitter.emit('change');
+ me.body.emitter.emit('_change');
}
});
}
- }).bind(this));
+ }.bind(this));
}
};
@@ -17354,8 +20487,6 @@ return /******/ (function(modules) { // webpackBootstrap
var snap = this.options.snap || null;
var item = this.itemFromTarget(event);
- event.stopPropagation();
-
if (item) {
// update item
@@ -17368,8 +20499,15 @@ return /******/ (function(modules) { // webpackBootstrap
});
} else {
// add item
- var xAbs = util.getAbsoluteLeft(this.dom.frame);
- var x = event.center.x - xAbs;
+ if (this.options.rtl) {
+ var xAbs = util.getAbsoluteRight(this.dom.frame);
+ var x = xAbs - event.center.x;
+ } else {
+ var xAbs = util.getAbsoluteLeft(this.dom.frame);
+ var x = event.center.x - xAbs;
+ }
+ // var xAbs = util.getAbsoluteLeft(this.dom.frame);
+ // var x = event.center.x - xAbs;
var start = this.body.util.toTime(x);
var scale = this.body.util.getScale();
var step = this.body.util.getStep();
@@ -17604,13 +20742,13 @@ return /******/ (function(modules) { // webpackBootstrap
module.exports = ItemSet;
/***/ },
-/* 30 */
+/* 35 */
/***/ function(module, exports, __webpack_require__) {
'use strict';
var moment = __webpack_require__(2);
- var DateUtil = __webpack_require__(27);
+ var DateUtil = __webpack_require__(32);
var util = __webpack_require__(1);
/**
@@ -18314,14 +21452,14 @@ return /******/ (function(modules) { // webpackBootstrap
module.exports = TimeStep;
/***/ },
-/* 31 */
+/* 36 */
/***/ function(module, exports, __webpack_require__) {
'use strict';
var util = __webpack_require__(1);
- var stack = __webpack_require__(32);
- var RangeItem = __webpack_require__(33);
+ var stack = __webpack_require__(37);
+ var RangeItem = __webpack_require__(38);
/**
* @constructor Group
@@ -18524,8 +21662,8 @@ return /******/ (function(modules) { // webpackBootstrap
this.visibleItems = this._updateVisibleItems(this.orderedItems, this.visibleItems, range);
} else {
// no custom order function, lazy stacking
- this.visibleItems = this._updateVisibleItems(this.orderedItems, this.visibleItems, range);
+ this.visibleItems = this._updateVisibleItems(this.orderedItems, this.visibleItems, range);
if (this.itemSet.options.stack) {
// TODO: ugly way to access options...
stack.stack(this.visibleItems, margin, restack);
@@ -18541,10 +21679,9 @@ return /******/ (function(modules) { // webpackBootstrap
// calculate actual size and position
var foreground = this.dom.foreground;
this.top = foreground.offsetTop;
- this.left = foreground.offsetLeft;
+ this.right = foreground.offsetLeft;
this.width = foreground.offsetWidth;
resized = util.updateProperty(this, 'height', height) || resized;
-
// recalculate size of label
resized = util.updateProperty(this.props.label, 'width', this.dom.inner.clientWidth) || resized;
resized = util.updateProperty(this.props.label, 'height', this.dom.inner.clientHeight) || resized;
@@ -18939,12 +22076,12 @@ return /******/ (function(modules) { // webpackBootstrap
module.exports = Group;
/***/ },
-/* 32 */
+/* 37 */
/***/ function(module, exports) {
- // Utility functions for ordering and stacking of items
'use strict';
+ // Utility functions for ordering and stacking of items
var EPSILON = 0.001; // used when checking collisions, to prevent round-off errors
/**
@@ -18984,7 +22121,6 @@ return /******/ (function(modules) { // webpackBootstrap
*/
exports.stack = function (items, margin, force) {
var i, iMax;
-
if (force) {
// reset top position of all items
for (i = 0, iMax = items.length; i < iMax; i++) {
@@ -19005,7 +22141,7 @@ return /******/ (function(modules) { // webpackBootstrap
var collidingItem = null;
for (var j = 0, jj = items.length; j < jj; j++) {
var other = items[j];
- if (other.top !== null && other !== item && other.stack && exports.collision(item, other, margin.item)) {
+ if (other.top !== null && other !== item && other.stack && exports.collision(item, other, margin.item, other.options.rtl)) {
collidingItem = other;
break;
}
@@ -19056,20 +22192,25 @@ return /******/ (function(modules) { // webpackBootstrap
* @param {{horizontal: number, vertical: number}} margin
* An object containing a horizontal and vertical
* minimum required margin.
+ * @param {boolean} rtl
* @return {boolean} true if a and b collide, else false
*/
- exports.collision = function (a, b, margin) {
- return a.left - margin.horizontal + EPSILON < b.left + b.width && a.left + a.width + margin.horizontal - EPSILON > b.left && a.top - margin.vertical + EPSILON < b.top + b.height && a.top + a.height + margin.vertical - EPSILON > b.top;
+ exports.collision = function (a, b, margin, rtl) {
+ if (rtl) {
+ return a.right - margin.horizontal + EPSILON < b.right + b.width && a.right + a.width + margin.horizontal - EPSILON > b.right && a.top - margin.vertical + EPSILON < b.top + b.height && a.top + a.height + margin.vertical - EPSILON > b.top;
+ } else {
+ return a.left - margin.horizontal + EPSILON < b.left + b.width && a.left + a.width + margin.horizontal - EPSILON > b.left && a.top - margin.vertical + EPSILON < b.top + b.height && a.top + a.height + margin.vertical - EPSILON > b.top;
+ }
};
/***/ },
-/* 33 */
+/* 38 */
/***/ function(module, exports, __webpack_require__) {
'use strict';
var Hammer = __webpack_require__(20);
- var Item = __webpack_require__(34);
+ var Item = __webpack_require__(39);
/**
* @constructor RangeItem
@@ -19088,7 +22229,7 @@ return /******/ (function(modules) { // webpackBootstrap
}
};
this.overflow = false; // if contents can overflow (css styling), this flag is set to true
-
+ this.options = options;
// validate data
if (data) {
if (data.start == undefined) {
@@ -19188,7 +22329,6 @@ return /******/ (function(modules) { // webpackBootstrap
this.dirty = false;
}
-
this._repaintDeleteButton(dom.box);
this._repaintDragLeft();
this._repaintDragRight();
@@ -19233,7 +22373,7 @@ return /******/ (function(modules) { // webpackBootstrap
var parentWidth = this.parent.width;
var start = this.conversion.toScreen(this.data.start);
var end = this.conversion.toScreen(this.data.end);
- var contentLeft;
+ var contentStartPosition;
var contentWidth;
// limit the width of the range, as browsers cannot draw very wide divs
@@ -19248,7 +22388,11 @@ return /******/ (function(modules) { // webpackBootstrap
var boxWidth = Math.max(end - start, 1);
if (this.overflow) {
- this.left = start;
+ if (this.options.rtl) {
+ this.right = start;
+ } else {
+ this.left = start;
+ }
this.width = boxWidth + this.props.content.width;
contentWidth = this.props.content.width;
@@ -19256,25 +22400,46 @@ return /******/ (function(modules) { // webpackBootstrap
// a width which will not change when moving the Timeline
// So no re-stacking needed, which is nicer for the eye;
} else {
- this.left = start;
+ if (this.options.rtl) {
+ this.right = start;
+ } else {
+ this.left = start;
+ }
this.width = boxWidth;
contentWidth = Math.min(end - start, this.props.content.width);
}
- this.dom.box.style.left = this.left + 'px';
+ if (this.options.rtl) {
+ this.dom.box.style.right = this.right + 'px';
+ } else {
+ this.dom.box.style.left = this.left + 'px';
+ }
this.dom.box.style.width = boxWidth + 'px';
switch (this.options.align) {
case 'left':
- this.dom.content.style.left = '0';
+ if (this.options.rtl) {
+ this.dom.content.style.right = '0';
+ } else {
+ this.dom.content.style.left = '0';
+ }
break;
case 'right':
- this.dom.content.style.left = Math.max(boxWidth - contentWidth, 0) + 'px';
+ if (this.options.rtl) {
+ this.dom.content.style.right = Math.max(boxWidth - contentWidth, 0) + 'px';
+ } else {
+ this.dom.content.style.left = Math.max(boxWidth - contentWidth, 0) + 'px';
+ }
break;
case 'center':
- this.dom.content.style.left = Math.max((boxWidth - contentWidth) / 2, 0) + 'px';
+ if (this.options.rtl) {
+ this.dom.content.style.right = Math.max((boxWidth - contentWidth) / 2, 0) + 'px';
+ } else {
+ this.dom.content.style.left = Math.max((boxWidth - contentWidth) / 2, 0) + 'px';
+ }
+
break;
default:
@@ -19282,18 +22447,22 @@ return /******/ (function(modules) { // webpackBootstrap
// when range exceeds left of the window, position the contents at the left of the visible area
if (this.overflow) {
if (end > 0) {
- contentLeft = Math.max(-start, 0);
+ contentStartPosition = Math.max(-start, 0);
} else {
- contentLeft = -contentWidth; // ensure it's not visible anymore
+ contentStartPosition = -contentWidth; // ensure it's not visible anymore
}
} else {
if (start < 0) {
- contentLeft = -start;
+ contentStartPosition = -start;
} else {
- contentLeft = 0;
+ contentStartPosition = 0;
}
}
- this.dom.content.style.left = contentLeft + 'px';
+ if (this.options.rtl) {
+ this.dom.content.style.right = contentStartPosition + 'px';
+ } else {
+ this.dom.content.style.left = contentStartPosition + 'px';
+ }
}
};
@@ -19359,7 +22528,7 @@ return /******/ (function(modules) { // webpackBootstrap
module.exports = RangeItem;
/***/ },
-/* 34 */
+/* 39 */
/***/ function(module, exports, __webpack_require__) {
'use strict';
@@ -19389,6 +22558,7 @@ return /******/ (function(modules) { // webpackBootstrap
this.dirty = true;
this.top = null;
+ this.right = null;
this.left = null;
this.width = null;
this.height = null;
@@ -19515,7 +22685,12 @@ return /******/ (function(modules) { // webpackBootstrap
var me = this;
var deleteButton = document.createElement('div');
- deleteButton.className = 'vis-delete';
+
+ if (this.options.rtl) {
+ deleteButton.className = 'vis-delete-rtl';
+ } else {
+ deleteButton.className = 'vis-delete';
+ }
deleteButton.title = 'Delete this item';
// TODO: be able to destroy the delete button
@@ -19660,13 +22835,13 @@ return /******/ (function(modules) { // webpackBootstrap
module.exports = Item;
/***/ },
-/* 35 */
+/* 40 */
/***/ function(module, exports, __webpack_require__) {
'use strict';
var util = __webpack_require__(1);
- var Group = __webpack_require__(31);
+ var Group = __webpack_require__(36);
/**
* @constructor BackgroundGroup
@@ -19724,12 +22899,12 @@ return /******/ (function(modules) { // webpackBootstrap
module.exports = BackgroundGroup;
/***/ },
-/* 36 */
+/* 41 */
/***/ function(module, exports, __webpack_require__) {
'use strict';
- var Item = __webpack_require__(34);
+ var Item = __webpack_require__(39);
var util = __webpack_require__(1);
/**
@@ -19753,7 +22928,7 @@ return /******/ (function(modules) { // webpackBootstrap
height: 0
}
};
-
+ this.options = options;
// validate data
if (data) {
if (data.start == undefined) {
@@ -19894,26 +23069,58 @@ return /******/ (function(modules) { // webpackBootstrap
BoxItem.prototype.repositionX = function () {
var start = this.conversion.toScreen(this.data.start);
var align = this.options.align;
- var left;
// calculate left position of the box
if (align == 'right') {
- this.left = start - this.width;
+ if (this.options.rtl) {
+ this.right = start - this.width;
+
+ // reposition box, line, and dot
+ this.dom.box.style.right = this.right + 'px';
+ this.dom.line.style.right = start - this.props.line.width + 'px';
+ this.dom.dot.style.right = start - this.props.line.width / 2 - this.props.dot.width / 2 + 'px';
+ } else {
+ this.left = start - this.width;
+
+ // reposition box, line, and dot
+ this.dom.box.style.left = this.left + 'px';
+ this.dom.line.style.left = start - this.props.line.width + 'px';
+ this.dom.dot.style.left = start - this.props.line.width / 2 - this.props.dot.width / 2 + 'px';
+ }
} else if (align == 'left') {
- this.left = start;
+ if (this.options.rtl) {
+ this.right = start;
+
+ // reposition box, line, and dot
+ this.dom.box.style.right = this.right + 'px';
+ this.dom.line.style.right = start + 'px';
+ this.dom.dot.style.right = start + this.props.line.width / 2 - this.props.dot.width / 2 + 'px';
+ } else {
+ this.left = start;
+
+ // reposition box, line, and dot
+ this.dom.box.style.left = this.left + 'px';
+ this.dom.line.style.left = start + 'px';
+ this.dom.dot.style.left = start + this.props.line.width / 2 - this.props.dot.width / 2 + 'px';
+ }
} else {
// default or 'center'
- this.left = start - this.width / 2;
- }
-
- // reposition box
- this.dom.box.style.left = this.left + 'px';
+ if (this.options.rtl) {
+ this.right = start - this.width / 2;
- // reposition line
- this.dom.line.style.left = start - this.props.line.width / 2 + 'px';
+ // reposition box, line, and dot
+ this.dom.box.style.right = this.right + 'px';
+ this.dom.line.style.right = start - this.props.line.width + 'px';
+ this.dom.dot.style.right = start - this.props.dot.width / 2 + 'px';
+ } else {
+ this.left = start - this.width / 2;
- // reposition dot
- this.dom.dot.style.left = start - this.props.dot.width / 2 + 'px';
+ // reposition box, line, and dot
+ this.dom.box.style.left = this.left + 'px';
+ this.dom.line.style.left = start - this.props.line.width / 2 + 'px';
+ this.dom.dot.style.left = start - this.props.dot.width / 2 + 'px';
+ }
+ }
};
/**
@@ -19964,12 +23171,12 @@ return /******/ (function(modules) { // webpackBootstrap
module.exports = BoxItem;
/***/ },
-/* 37 */
+/* 42 */
/***/ function(module, exports, __webpack_require__) {
'use strict';
- var Item = __webpack_require__(34);
+ var Item = __webpack_require__(39);
/**
* @constructor PointItem
@@ -19990,10 +23197,11 @@ return /******/ (function(modules) { // webpackBootstrap
},
content: {
height: 0,
- marginLeft: 0
+ marginLeft: 0,
+ marginRight: 0
}
};
-
+ this.options = options;
// validate data
if (data) {
if (data.start == undefined) {
@@ -20083,7 +23291,11 @@ return /******/ (function(modules) { // webpackBootstrap
this.props.content.height = dom.content.offsetHeight;
// resize contents
- dom.content.style.marginLeft = 2 * this.props.dot.width + 'px';
+ if (this.options.rtl) {
+ dom.content.style.marginRight = 2 * this.props.dot.width + 'px';
+ } else {
+ dom.content.style.marginLeft = 2 * this.props.dot.width + 'px';
+ }
//dom.content.style.marginRight = ... + 'px'; // TODO: margin right
// recalculate size
@@ -20092,7 +23304,11 @@ return /******/ (function(modules) { // webpackBootstrap
// reposition the dot
dom.dot.style.top = (this.height - this.props.dot.height) / 2 + 'px';
- dom.dot.style.left = this.props.dot.width / 2 + 'px';
+ if (this.options.rtl) {
+ dom.dot.style.right = this.props.dot.width / 2 + 'px';
+ } else {
+ dom.dot.style.left = this.props.dot.width / 2 + 'px';
+ }
this.dirty = false;
}
@@ -20130,10 +23346,17 @@ return /******/ (function(modules) { // webpackBootstrap
PointItem.prototype.repositionX = function () {
var start = this.conversion.toScreen(this.data.start);
- this.left = start - this.props.dot.width;
+ if (this.options.rtl) {
+ this.right = start - this.props.dot.width;
+
+ // reposition point
+ this.dom.point.style.right = this.right + 'px';
+ } else {
+ this.left = start - this.props.dot.width;
- // reposition point
- this.dom.point.style.left = this.left + 'px';
+ // reposition point
+ this.dom.point.style.left = this.left + 'px';
+ }
};
/**
@@ -20143,7 +23366,6 @@ return /******/ (function(modules) { // webpackBootstrap
PointItem.prototype.repositionY = function () {
var orientation = this.options.orientation.item;
var point = this.dom.point;
-
if (orientation == 'top') {
point.style.top = this.top + 'px';
} else {
@@ -20164,21 +23386,21 @@ return /******/ (function(modules) { // webpackBootstrap
* @return {number}
*/
PointItem.prototype.getWidthRight = function () {
- return this.width - this.props.dot.width;
+ return this.props.dot.width;
};
module.exports = PointItem;
/***/ },
-/* 38 */
+/* 43 */
/***/ function(module, exports, __webpack_require__) {
'use strict';
var Hammer = __webpack_require__(20);
- var Item = __webpack_require__(34);
- var BackgroundGroup = __webpack_require__(35);
- var RangeItem = __webpack_require__(33);
+ var Item = __webpack_require__(39);
+ var BackgroundGroup = __webpack_require__(40);
+ var RangeItem = __webpack_require__(38);
/**
* @constructor BackgroundItem
@@ -20391,15 +23613,17 @@ return /******/ (function(modules) { // webpackBootstrap
module.exports = BackgroundItem;
/***/ },
-/* 39 */
+/* 44 */
/***/ 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 util = __webpack_require__(1);
- var Component = __webpack_require__(26);
- var TimeStep = __webpack_require__(30);
- var DateUtil = __webpack_require__(27);
+ var Component = __webpack_require__(31);
+ var TimeStep = __webpack_require__(35);
+ var DateUtil = __webpack_require__(32);
var moment = __webpack_require__(2);
/**
@@ -20465,7 +23689,7 @@ return /******/ (function(modules) { // webpackBootstrap
TimeAxis.prototype.setOptions = function (options) {
if (options) {
// copy all options that we know
- util.selectiveExtend(['showMinorLabels', 'showMajorLabels', 'maxMinorChars', 'hiddenDates', 'timeAxis', 'moment'], this.options, options);
+ util.selectiveExtend(['showMinorLabels', 'showMajorLabels', 'maxMinorChars', 'hiddenDates', 'timeAxis', 'moment', 'rtl'], this.options, options);
// deep copy the format options
util.selectiveDeepExtend(['format'], this.options, options);
@@ -20473,7 +23697,7 @@ return /******/ (function(modules) { // webpackBootstrap
if ('orientation' in options) {
if (typeof options.orientation === 'string') {
this.options.orientation.axis = options.orientation;
- } else if (typeof options.orientation === 'object' && 'axis' in options.orientation) {
+ } else if (_typeof(options.orientation) === 'object' && 'axis' in options.orientation) {
this.options.orientation.axis = options.orientation.axis;
}
}
@@ -20569,7 +23793,6 @@ return /******/ (function(modules) { // webpackBootstrap
} else {
this.body.dom.backgroundVertical.appendChild(background);
}
-
return this._isResized() || parentChanged;
};
@@ -20722,7 +23945,13 @@ return /******/ (function(modules) { // webpackBootstrap
label.childNodes[0].nodeValue = text;
label.style.top = orientation == 'top' ? this.props.majorLabelHeight + 'px' : '0';
- label.style.left = x + 'px';
+
+ if (this.options.rtl) {
+ label.style.left = "";
+ label.style.right = x + 'px';
+ } else {
+ label.style.left = x + 'px';
+ };
label.className = 'vis-text vis-minor ' + className;
//label.title = title; // TODO: this is a heavy operation
@@ -20756,7 +23985,12 @@ return /******/ (function(modules) { // webpackBootstrap
//label.title = title; // TODO: this is a heavy operation
label.style.top = orientation == 'top' ? '0' : this.props.minorLabelHeight + 'px';
- label.style.left = x + 'px';
+ if (this.options.rtl) {
+ label.style.left = "";
+ label.style.right = x + 'px';
+ } else {
+ label.style.left = x + 'px';
+ };
return label;
};
@@ -20787,11 +24021,16 @@ return /******/ (function(modules) { // webpackBootstrap
line.style.top = this.body.domProps.top.height + 'px';
}
line.style.height = props.minorLineHeight + 'px';
- line.style.left = x - props.minorLineWidth / 2 + 'px';
+ if (this.options.rtl) {
+ line.style.left = "";
+ line.style.right = x - props.minorLineWidth / 2 + 'px';
+ line.className = 'vis-grid vis-vertical-rtl vis-minor ' + className;
+ } else {
+ line.style.left = x - props.minorLineWidth / 2 + 'px';
+ line.className = 'vis-grid vis-vertical vis-minor ' + className;
+ };
line.style.width = width + 'px';
- line.className = 'vis-grid vis-vertical vis-minor ' + className;
-
return line;
};
@@ -20820,12 +24059,19 @@ return /******/ (function(modules) { // webpackBootstrap
} else {
line.style.top = this.body.domProps.top.height + 'px';
}
- line.style.left = x - props.majorLineWidth / 2 + 'px';
+
+ if (this.options.rtl) {
+ line.style.left = "";
+ line.style.right = x - props.majorLineWidth / 2 + 'px';
+ line.className = 'vis-grid vis-vertical-rtl vis-major ' + className;
+ } else {
+ line.style.left = x - props.majorLineWidth / 2 + 'px';
+ line.className = 'vis-grid vis-vertical vis-major ' + className;
+ }
+
line.style.height = props.majorLineHeight + 'px';
line.style.width = width + 'px';
- line.className = 'vis-grid vis-vertical vis-major ' + className;
-
return line;
};
@@ -20868,13 +24114,13 @@ return /******/ (function(modules) { // webpackBootstrap
module.exports = TimeAxis;
/***/ },
-/* 40 */
+/* 45 */
/***/ function(module, exports, __webpack_require__) {
'use strict';
- var keycharm = __webpack_require__(41);
- var Emitter = __webpack_require__(12);
+ var keycharm = __webpack_require__(23);
+ var Emitter = __webpack_require__(13);
var Hammer = __webpack_require__(20);
var util = __webpack_require__(1);
@@ -21027,215 +24273,16 @@ return /******/ (function(modules) { // webpackBootstrap
module.exports = Activator;
/***/ },
-/* 41 */
-/***/ 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;
- }));
-
-
-
-
-/***/ },
-/* 42 */
+/* 46 */
/***/ function(module, exports, __webpack_require__) {
'use strict';
var Hammer = __webpack_require__(20);
var util = __webpack_require__(1);
- var Component = __webpack_require__(26);
+ var Component = __webpack_require__(31);
var moment = __webpack_require__(2);
- var locales = __webpack_require__(43);
+ var locales = __webpack_require__(47);
/**
* A custom time bar
@@ -21317,7 +24364,7 @@ return /******/ (function(modules) { // webpackBootstrap
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: 30 }); // 30 is ALL_DIRECTIONS in hammer.
+ this.hammer.get('pan').set({ threshold: 5, direction: Hammer.DIRECTION_HORIZONTAL });
};
/**
@@ -21477,12 +24524,12 @@ return /******/ (function(modules) { // webpackBootstrap
module.exports = CustomTime;
/***/ },
-/* 43 */
+/* 47 */
/***/ function(module, exports) {
- // English
'use strict';
+ // English
exports['en'] = {
current: 'current',
time: 'time'
@@ -21499,15 +24546,15 @@ return /******/ (function(modules) { // webpackBootstrap
exports['nl_BE'] = exports['nl'];
/***/ },
-/* 44 */
+/* 48 */
/***/ function(module, exports, __webpack_require__) {
'use strict';
var util = __webpack_require__(1);
- var Component = __webpack_require__(26);
+ var Component = __webpack_require__(31);
var moment = __webpack_require__(2);
- var locales = __webpack_require__(43);
+ var locales = __webpack_require__(47);
/**
* A current time bar
@@ -21522,6 +24569,7 @@ return /******/ (function(modules) { // webpackBootstrap
// default options
this.defaultOptions = {
+ rtl: false,
showCurrentTime: true,
moment: moment,
@@ -21570,7 +24618,7 @@ return /******/ (function(modules) { // webpackBootstrap
CurrentTime.prototype.setOptions = function (options) {
if (options) {
// copy all options that we know
- util.selectiveExtend(['showCurrentTime', 'moment', 'locale', 'locales'], this.options, options);
+ util.selectiveExtend(['rtl', 'showCurrentTime', 'moment', 'locale', 'locales'], this.options, options);
}
};
@@ -21605,7 +24653,11 @@ return /******/ (function(modules) { // webpackBootstrap
var title = locale.current + ' ' + locale.time + ': ' + now.format('dddd, MMMM Do YYYY, H:mm:ss');
title = title.charAt(0).toUpperCase() + title.substring(1);
- this.bar.style.left = x + 'px';
+ if (this.options.rtl) {
+ this.bar.style.right = x + 'px';
+ } else {
+ this.bar.style.left = x + 'px';
+ }
this.bar.title = title;
} else {
// remove the line from the DOM
@@ -21634,6 +24686,7 @@ return /******/ (function(modules) { // webpackBootstrap
if (interval > 1000) interval = 1000;
me.redraw();
+ me.body.emitter.emit('currentTimeTick');
// start a renderTimer to adjust for the new time
me.currentTimeTimer = setTimeout(update, interval);
@@ -21676,1705 +24729,14 @@ return /******/ (function(modules) { // webpackBootstrap
module.exports = CurrentTime;
/***/ },
-/* 45 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
-
- Object.defineProperty(exports, '__esModule', {
- value: true
- });
-
- 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; }; })();
-
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
-
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }
-
- var _ColorPicker = __webpack_require__(46);
-
- var _ColorPicker2 = _interopRequireDefault(_ColorPicker);
-
- /**
- * The way this works is for all properties of this.possible options, you can supply the property name in any form to list the options.
- * Boolean options are recognised as Boolean
- * Number options should be written as array: [default value, min value, max value, stepsize]
- * Colors should be written as array: ['color', '#ffffff']
- * Strings with should be written as array: [option1, option2, option3, ..]
- *
- * The options are matched with their counterparts in each of the modules and the values used in the configuration are
- *
- * @param parentModule | the location where parentModule.setOptions() can be called
- * @param defaultContainer | the default container of the module
- * @param configureOptions | the fully configured and predefined options set found in allOptions.js
- * @param pixelRatio | canvas pixel ratio
- */
- var util = __webpack_require__(1);
-
- var Configurator = (function () {
- function Configurator(parentModule, defaultContainer, configureOptions) {
- var pixelRatio = arguments.length <= 3 || arguments[3] === undefined ? 1 : arguments[3];
-
- _classCallCheck(this, Configurator);
-
- this.parent = parentModule;
- this.changedOptions = [];
- this.container = defaultContainer;
- this.allowCreation = false;
-
- this.options = {};
- this.initialized = false;
- this.popupCounter = 0;
- this.defaultOptions = {
- enabled: false,
- filter: true,
- container: undefined,
- showButton: true
- };
- util.extend(this.options, this.defaultOptions);
-
- this.configureOptions = configureOptions;
- this.moduleOptions = {};
- this.domElements = [];
- this.popupDiv = {};
- this.popupLimit = 5;
- this.popupHistory = {};
- this.colorPicker = new _ColorPicker2['default'](pixelRatio);
- this.wrapper = undefined;
- }
-
- /**
- * refresh all options.
- * Because all modules parse their options by themselves, we just use their options. We copy them here.
- *
- * @param options
- */
-
- _createClass(Configurator, [{
- key: 'setOptions',
- value: function setOptions(options) {
- if (options !== undefined) {
- // reset the popup history because the indices may have been changed.
- this.popupHistory = {};
- this._removePopup();
-
- var enabled = true;
- if (typeof options === 'string') {
- this.options.filter = options;
- } else if (options instanceof Array) {
- this.options.filter = options.join();
- } else if (typeof options === 'object') {
- if (options.container !== undefined) {
- this.options.container = options.container;
- }
- if (options.filter !== undefined) {
- this.options.filter = options.filter;
- }
- if (options.showButton !== undefined) {
- this.options.showButton = options.showButton;
- }
- if (options.enabled !== undefined) {
- enabled = options.enabled;
- }
- } else if (typeof options === 'boolean') {
- this.options.filter = true;
- enabled = options;
- } else if (typeof options === 'function') {
- this.options.filter = options;
- enabled = true;
- }
- if (this.options.filter === false) {
- enabled = false;
- }
-
- this.options.enabled = enabled;
- }
- this._clean();
- }
- }, {
- key: 'setModuleOptions',
- value: function setModuleOptions(moduleOptions) {
- this.moduleOptions = moduleOptions;
- if (this.options.enabled === true) {
- this._clean();
- if (this.options.container !== undefined) {
- this.container = this.options.container;
- }
- this._create();
- }
- }
-
- /**
- * Create all DOM elements
- * @private
- */
- }, {
- key: '_create',
- value: function _create() {
- var _this = this;
-
- this._clean();
- this.changedOptions = [];
-
- var filter = this.options.filter;
- var counter = 0;
- var show = false;
- for (var option in this.configureOptions) {
- if (this.configureOptions.hasOwnProperty(option)) {
- this.allowCreation = false;
- show = false;
- if (typeof filter === 'function') {
- show = filter(option, []);
- show = show || this._handleObject(this.configureOptions[option], [option], true);
- } else if (filter === true || filter.indexOf(option) !== -1) {
- show = true;
- }
-
- if (show !== false) {
- this.allowCreation = true;
-
- // linebreak between categories
- if (counter > 0) {
- this._makeItem([]);
- }
- // a header for the category
- this._makeHeader(option);
-
- // get the suboptions
- this._handleObject(this.configureOptions[option], [option]);
- }
- counter++;
- }
- }
-
- if (this.options.showButton === true) {
- (function () {
- var generateButton = document.createElement('div');
- generateButton.className = 'vis-configuration vis-config-button';
- generateButton.innerHTML = 'generate options';
- generateButton.onclick = function () {
- _this._printOptions();
- };
- generateButton.onmouseover = function () {
- generateButton.className = 'vis-configuration vis-config-button hover';
- };
- generateButton.onmouseout = function () {
- generateButton.className = 'vis-configuration vis-config-button';
- };
-
- _this.optionsContainer = document.createElement('div');
- _this.optionsContainer.className = 'vis-configuration vis-config-option-container';
-
- _this.domElements.push(_this.optionsContainer);
- _this.domElements.push(generateButton);
- })();
- }
-
- this._push();
- this.colorPicker.insertTo(this.container);
- }
-
- /**
- * draw all DOM elements on the screen
- * @private
- */
- }, {
- key: '_push',
- value: function _push() {
- this.wrapper = document.createElement('div');
- this.wrapper.className = 'vis-configuration-wrapper';
- this.container.appendChild(this.wrapper);
- for (var i = 0; i < this.domElements.length; i++) {
- this.wrapper.appendChild(this.domElements[i]);
- }
-
- this._showPopupIfNeeded();
- }
-
- /**
- * delete all DOM elements
- * @private
- */
- }, {
- key: '_clean',
- value: function _clean() {
- for (var i = 0; i < this.domElements.length; i++) {
- this.wrapper.removeChild(this.domElements[i]);
- }
-
- if (this.wrapper !== undefined) {
- this.container.removeChild(this.wrapper);
- this.wrapper = undefined;
- }
- this.domElements = [];
-
- this._removePopup();
- }
-
- /**
- * get the value from the actualOptions if it exists
- * @param {array} path | where to look for the actual option
- * @returns {*}
- * @private
- */
- }, {
- key: '_getValue',
- value: function _getValue(path) {
- var base = this.moduleOptions;
- for (var i = 0; i < path.length; i++) {
- if (base[path[i]] !== undefined) {
- base = base[path[i]];
- } else {
- base = undefined;
- break;
- }
- }
- return base;
- }
-
- /**
- * all option elements are wrapped in an item
- * @param path
- * @param domElements
- * @private
- */
- }, {
- key: '_makeItem',
- value: function _makeItem(path) {
- var _arguments = arguments,
- _this2 = this;
-
- if (this.allowCreation === true) {
- var _len, domElements, _key;
-
- var _ret2 = (function () {
- var item = document.createElement('div');
- item.className = 'vis-configuration vis-config-item vis-config-s' + path.length;
-
- for (_len = _arguments.length, domElements = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
- domElements[_key - 1] = _arguments[_key];
- }
-
- domElements.forEach(function (element) {
- item.appendChild(element);
- });
- _this2.domElements.push(item);
- return {
- v: _this2.domElements.length
- };
- })();
-
- if (typeof _ret2 === 'object') return _ret2.v;
- }
- return 0;
- }
-
- /**
- * header for major subjects
- * @param name
- * @private
- */
- }, {
- key: '_makeHeader',
- value: function _makeHeader(name) {
- var div = document.createElement('div');
- div.className = 'vis-configuration vis-config-header';
- div.innerHTML = name;
- this._makeItem([], div);
- }
-
- /**
- * make a label, if it is an object label, it gets different styling.
- * @param name
- * @param path
- * @param objectLabel
- * @returns {HTMLElement}
- * @private
- */
- }, {
- key: '_makeLabel',
- value: function _makeLabel(name, path) {
- var objectLabel = arguments.length <= 2 || arguments[2] === undefined ? false : arguments[2];
-
- var div = document.createElement('div');
- div.className = 'vis-configuration vis-config-label vis-config-s' + path.length;
- if (objectLabel === true) {
- div.innerHTML = '<i><b>' + name + ':</b></i>';
- } else {
- div.innerHTML = name + ':';
- }
- return div;
- }
-
- /**
- * make a dropdown list for multiple possible string optoins
- * @param arr
- * @param value
- * @param path
- * @private
- */
- }, {
- key: '_makeDropdown',
- value: function _makeDropdown(arr, value, path) {
- var select = document.createElement('select');
- select.className = 'vis-configuration vis-config-select';
- var selectedValue = 0;
- if (value !== undefined) {
- if (arr.indexOf(value) !== -1) {
- selectedValue = arr.indexOf(value);
- }
- }
-
- for (var i = 0; i < arr.length; i++) {
- var option = document.createElement('option');
- option.value = arr[i];
- if (i === selectedValue) {
- option.selected = 'selected';
- }
- option.innerHTML = arr[i];
- select.appendChild(option);
- }
-
- var me = this;
- select.onchange = function () {
- me._update(this.value, path);
- };
-
- var label = this._makeLabel(path[path.length - 1], path);
- this._makeItem(path, label, select);
- }
-
- /**
- * make a range object for numeric options
- * @param arr
- * @param value
- * @param path
- * @private
- */
- }, {
- key: '_makeRange',
- value: function _makeRange(arr, value, path) {
- var defaultValue = arr[0];
- var min = arr[1];
- var max = arr[2];
- var step = arr[3];
- var range = document.createElement('input');
- range.className = 'vis-configuration vis-config-range';
- try {
- range.type = 'range'; // not supported on IE9
- range.min = min;
- range.max = max;
- } catch (err) {}
- range.step = step;
-
- // set up the popup settings in case they are needed.
- var popupString = '';
- var popupValue = 0;
-
- if (value !== undefined) {
- var factor = 1.20;
- if (value < 0 && value * factor < min) {
- range.min = Math.ceil(value * factor);
- popupValue = range.min;
- popupString = 'range increased';
- } else if (value / factor < min) {
- range.min = Math.ceil(value / factor);
- popupValue = range.min;
- popupString = 'range increased';
- }
- if (value * factor > max && max !== 1) {
- range.max = Math.ceil(value * factor);
- popupValue = range.max;
- popupString = 'range increased';
- }
- range.value = value;
- } else {
- range.value = defaultValue;
- }
-
- var input = document.createElement('input');
- input.className = 'vis-configuration vis-config-rangeinput';
- input.value = range.value;
-
- var me = this;
- range.onchange = function () {
- input.value = this.value;me._update(Number(this.value), path);
- };
- range.oninput = function () {
- input.value = this.value;
- };
-
- var label = this._makeLabel(path[path.length - 1], path);
- var itemIndex = this._makeItem(path, label, range, input);
-
- // if a popup is needed AND it has not been shown for this value, show it.
- if (popupString !== '' && this.popupHistory[itemIndex] !== popupValue) {
- this.popupHistory[itemIndex] = popupValue;
- this._setupPopup(popupString, itemIndex);
- }
- }
-
- /**
- * prepare the popup
- * @param string
- * @param index
- * @private
- */
- }, {
- key: '_setupPopup',
- value: function _setupPopup(string, index) {
- var _this3 = this;
-
- if (this.initialized === true && this.allowCreation === true && this.popupCounter < this.popupLimit) {
- var div = document.createElement("div");
- div.id = "vis-configuration-popup";
- div.className = "vis-configuration-popup";
- div.innerHTML = string;
- div.onclick = function () {
- _this3._removePopup();
- };
- this.popupCounter += 1;
- this.popupDiv = { html: div, index: index };
- }
- }
-
- /**
- * remove the popup from the dom
- * @private
- */
- }, {
- key: '_removePopup',
- value: function _removePopup() {
- if (this.popupDiv.html !== undefined) {
- this.popupDiv.html.parentNode.removeChild(this.popupDiv.html);
- clearTimeout(this.popupDiv.hideTimeout);
- clearTimeout(this.popupDiv.deleteTimeout);
- this.popupDiv = {};
- }
- }
-
- /**
- * Show the popup if it is needed.
- * @private
- */
- }, {
- key: '_showPopupIfNeeded',
- value: function _showPopupIfNeeded() {
- var _this4 = this;
-
- if (this.popupDiv.html !== undefined) {
- var correspondingElement = this.domElements[this.popupDiv.index];
- var rect = correspondingElement.getBoundingClientRect();
- this.popupDiv.html.style.left = rect.left + "px";
- this.popupDiv.html.style.top = rect.top - 30 + "px"; // 30 is the height;
- document.body.appendChild(this.popupDiv.html);
- this.popupDiv.hideTimeout = setTimeout(function () {
- _this4.popupDiv.html.style.opacity = 0;
- }, 1500);
- this.popupDiv.deleteTimeout = setTimeout(function () {
- _this4._removePopup();
- }, 1800);
- }
- }
-
- /**
- * make a checkbox for boolean options.
- * @param defaultValue
- * @param value
- * @param path
- * @private
- */
- }, {
- key: '_makeCheckbox',
- value: function _makeCheckbox(defaultValue, value, path) {
- var checkbox = document.createElement('input');
- checkbox.type = 'checkbox';
- checkbox.className = 'vis-configuration vis-config-checkbox';
- checkbox.checked = defaultValue;
- if (value !== undefined) {
- checkbox.checked = value;
- if (value !== defaultValue) {
- if (typeof defaultValue === 'object') {
- if (value !== defaultValue.enabled) {
- this.changedOptions.push({ path: path, value: value });
- }
- } else {
- this.changedOptions.push({ path: path, value: value });
- }
- }
- }
-
- var me = this;
- checkbox.onchange = function () {
- me._update(this.checked, path);
- };
-
- var label = this._makeLabel(path[path.length - 1], path);
- this._makeItem(path, label, checkbox);
- }
-
- /**
- * make a text input field for string options.
- * @param defaultValue
- * @param value
- * @param path
- * @private
- */
- }, {
- key: '_makeTextInput',
- value: function _makeTextInput(defaultValue, value, path) {
- var checkbox = document.createElement('input');
- checkbox.type = 'text';
- checkbox.className = 'vis-configuration vis-config-text';
- checkbox.value = value;
- if (value !== defaultValue) {
- this.changedOptions.push({ path: path, value: value });
- }
-
- var me = this;
- checkbox.onchange = function () {
- me._update(this.value, path);
- };
-
- var label = this._makeLabel(path[path.length - 1], path);
- this._makeItem(path, label, checkbox);
- }
-
- /**
- * make a color field with a color picker for color fields
- * @param arr
- * @param value
- * @param path
- * @private
- */
- }, {
- key: '_makeColorField',
- value: function _makeColorField(arr, value, path) {
- var _this5 = this;
-
- var defaultColor = arr[1];
- var div = document.createElement('div');
- value = value === undefined ? defaultColor : value;
-
- if (value !== 'none') {
- div.className = 'vis-configuration vis-config-colorBlock';
- div.style.backgroundColor = value;
- } else {
- div.className = 'vis-configuration vis-config-colorBlock none';
- }
-
- value = value === undefined ? defaultColor : value;
- div.onclick = function () {
- _this5._showColorPicker(value, div, path);
- };
-
- var label = this._makeLabel(path[path.length - 1], path);
- this._makeItem(path, label, div);
- }
-
- /**
- * used by the color buttons to call the color picker.
- * @param event
- * @param value
- * @param div
- * @param path
- * @private
- */
- }, {
- key: '_showColorPicker',
- value: function _showColorPicker(value, div, path) {
- var _this6 = this;
-
- var rect = div.getBoundingClientRect();
- var bodyRect = document.body.getBoundingClientRect();
- var pickerX = rect.left + rect.width + 5;
- var pickerY = rect.top - bodyRect.top + rect.height + 2;
- this.colorPicker.show(pickerX, pickerY);
- this.colorPicker.setColor(value);
- this.colorPicker.setCallback(function (color) {
- var colorString = 'rgba(' + color.r + ',' + color.g + ',' + color.b + ',' + color.a + ')';
- div.style.backgroundColor = colorString;
- _this6._update(colorString, path);
- });
- }
-
- /**
- * parse an object and draw the correct items
- * @param obj
- * @param path
- * @private
- */
- }, {
- key: '_handleObject',
- value: function _handleObject(obj) {
- var path = arguments.length <= 1 || arguments[1] === undefined ? [] : arguments[1];
- var checkOnly = arguments.length <= 2 || arguments[2] === undefined ? false : arguments[2];
-
- var show = false;
- var filter = this.options.filter;
- var visibleInSet = false;
- for (var subObj in obj) {
- if (obj.hasOwnProperty(subObj)) {
- show = true;
- var item = obj[subObj];
- var newPath = util.copyAndExtendArray(path, subObj);
- if (typeof filter === 'function') {
- show = filter(subObj, path);
-
- // if needed we must go deeper into the object.
- if (show === false) {
- if (!(item instanceof Array) && typeof item !== 'string' && typeof item !== 'boolean' && item instanceof Object) {
- this.allowCreation = false;
- show = this._handleObject(item, newPath, true);
- this.allowCreation = checkOnly === false;
- }
- }
- }
-
- if (show !== false) {
- visibleInSet = true;
- var value = this._getValue(newPath);
-
- if (item instanceof Array) {
- this._handleArray(item, value, newPath);
- } else if (typeof item === 'string') {
- this._makeTextInput(item, value, newPath);
- } else if (typeof item === 'boolean') {
- this._makeCheckbox(item, value, newPath);
- } else if (item instanceof Object) {
- // collapse the physics options that are not enabled
- var draw = true;
- if (path.indexOf('physics') !== -1) {
- if (this.moduleOptions.physics.solver !== subObj) {
- draw = false;
- }
- }
-
- if (draw === true) {
- // initially collapse options with an disabled enabled option.
- if (item.enabled !== undefined) {
- var enabledPath = util.copyAndExtendArray(newPath, 'enabled');
- var enabledValue = this._getValue(enabledPath);
- if (enabledValue === true) {
- var label = this._makeLabel(subObj, newPath, true);
- this._makeItem(newPath, label);
- visibleInSet = this._handleObject(item, newPath) || visibleInSet;
- } else {
- this._makeCheckbox(item, enabledValue, newPath);
- }
- } else {
- var label = this._makeLabel(subObj, newPath, true);
- this._makeItem(newPath, label);
- visibleInSet = this._handleObject(item, newPath) || visibleInSet;
- }
- }
- } else {
- console.error('dont know how to handle', item, subObj, newPath);
- }
- }
- }
- }
- return visibleInSet;
- }
-
- /**
- * handle the array type of option
- * @param optionName
- * @param arr
- * @param value
- * @param path
- * @private
- */
- }, {
- key: '_handleArray',
- value: function _handleArray(arr, value, path) {
- if (typeof arr[0] === 'string' && arr[0] === 'color') {
- this._makeColorField(arr, value, path);
- if (arr[1] !== value) {
- this.changedOptions.push({ path: path, value: value });
- }
- } else if (typeof arr[0] === 'string') {
- this._makeDropdown(arr, value, path);
- if (arr[0] !== value) {
- this.changedOptions.push({ path: path, value: value });
- }
- } else if (typeof arr[0] === 'number') {
- this._makeRange(arr, value, path);
- if (arr[0] !== value) {
- this.changedOptions.push({ path: path, value: Number(value) });
- }
- }
- }
-
- /**
- * called to update the network with the new settings.
- * @param value
- * @param path
- * @private
- */
- }, {
- key: '_update',
- value: function _update(value, path) {
- var options = this._constructOptions(value, path);
-
- if (this.parent.body && this.parent.body.emitter && this.parent.body.emitter.emit) {
- this.parent.body.emitter.emit("configChange", options);
- }
- this.initialized = true;
- this.parent.setOptions(options);
- }
- }, {
- key: '_constructOptions',
- value: function _constructOptions(value, path) {
- var optionsObj = arguments.length <= 2 || arguments[2] === undefined ? {} : arguments[2];
-
- var pointer = optionsObj;
-
- // when dropdown boxes can be string or boolean, we typecast it into correct types
- value = value === 'true' ? true : value;
- value = value === 'false' ? false : value;
-
- for (var i = 0; i < path.length; i++) {
- if (path[i] !== 'global') {
- if (pointer[path[i]] === undefined) {
- pointer[path[i]] = {};
- }
- if (i !== path.length - 1) {
- pointer = pointer[path[i]];
- } else {
- pointer[path[i]] = value;
- }
- }
- }
- return optionsObj;
- }
- }, {
- key: '_printOptions',
- value: function _printOptions() {
- var options = this.getOptions();
- this.optionsContainer.innerHTML = '<pre>var options = ' + JSON.stringify(options, null, 2) + '</pre>';
- }
- }, {
- key: 'getOptions',
- value: function getOptions() {
- var options = {};
- for (var i = 0; i < this.changedOptions.length; i++) {
- this._constructOptions(this.changedOptions[i].value, this.changedOptions[i].path, options);
- }
- return options;
- }
- }]);
-
- return Configurator;
- })();
-
- exports['default'] = Configurator;
- module.exports = exports['default'];
-
-/***/ },
-/* 46 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
-
- Object.defineProperty(exports, '__esModule', {
- value: true
- });
-
- 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; }; })();
-
- 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__(25);
- var util = __webpack_require__(1);
-
- var ColorPicker = (function () {
- function ColorPicker() {
- var pixelRatio = arguments.length <= 0 || arguments[0] === undefined ? 1 : arguments[0];
-
- _classCallCheck(this, ColorPicker);
-
- this.pixelRatio = pixelRatio;
- this.generated = false;
- this.centerCoordinates = { x: 289 / 2, y: 289 / 2 };
- this.r = 289 * 0.49;
- this.color = { r: 255, g: 255, b: 255, a: 1.0 };
- this.hueCircle = undefined;
- this.initialColor = { r: 255, g: 255, b: 255, a: 1.0 };
- this.previousColor = undefined;
- this.applied = false;
-
- // bound by
- this.updateCallback = function () {};
-
- // create all DOM elements
- this._create();
- }
-
- /**
- * this inserts the colorPicker into a div from the DOM
- * @param container
- */
-
- _createClass(ColorPicker, [{
- key: 'insertTo',
- value: function insertTo(container) {
- if (this.hammer !== undefined) {
- this.hammer.destroy();
- this.hammer = undefined;
- }
- this.container = container;
- this.container.appendChild(this.frame);
- this._bindHammer();
-
- this._setSize();
- }
-
- /**
- * the callback is executed on apply and save. Bind it to the application
- * @param callback
- */
- }, {
- key: 'setCallback',
- value: function setCallback(callback) {
- if (typeof callback === 'function') {
- this.updateCallback = callback;
- } else {
- throw new Error("Function attempted to set as colorPicker callback is not a function.");
- }
- }
- }, {
- key: '_isColorString',
- value: function _isColorString(color) {
- var htmlColors = { black: '#000000', navy: '#000080', darkblue: '#00008B', mediumblue: '#0000CD', blue: '#0000FF', darkgreen: '#006400', green: '#008000', teal: '#008080', darkcyan: '#008B8B', deepskyblue: '#00BFFF', darkturquoise: '#00CED1', mediumspringgreen: '#00FA9A', lime: '#00FF00', springgreen: '#00FF7F', aqua: '#00FFFF', cyan: '#00FFFF', midnightblue: '#191970', dodgerblue: '#1E90FF', lightseagreen: '#20B2AA', forestgreen: '#228B22', seagreen: '#2E8B57', darkslategray: '#2F4F4F', limegreen: '#32CD32', mediumseagreen: '#3CB371', turquoise: '#40E0D0', royalblue: '#4169E1', steelblue: '#4682B4', darkslateblue: '#483D8B', mediumturquoise: '#48D1CC', indigo: '#4B0082', darkolivegreen: '#556B2F', cadetblue: '#5F9EA0', cornflowerblue: '#6495ED', mediumaquamarine: '#66CDAA', dimgray: '#696969', slateblue: '#6A5ACD', olivedrab: '#6B8E23', slategray: '#708090', lightslategray: '#778899', mediumslateblue: '#7B68EE', lawngreen: '#7CFC00', chartreuse: '#7FFF00', aquamarine: '#7FFFD4', maroon: '#800000', purple: '#800080', olive: '#808000', gray: '#808080', skyblue: '#87CEEB', lightskyblue: '#87CEFA', blueviolet: '#8A2BE2', darkred: '#8B0000', darkmagenta: '#8B008B', saddlebrown: '#8B4513', darkseagreen: '#8FBC8F', lightgreen: '#90EE90', mediumpurple: '#9370D8', darkviolet: '#9400D3', palegreen: '#98FB98', darkorchid: '#9932CC', yellowgreen: '#9ACD32', sienna: '#A0522D', brown: '#A52A2A', darkgray: '#A9A9A9', lightblue: '#ADD8E6', greenyellow: '#ADFF2F', paleturquoise: '#AFEEEE', lightsteelblue: '#B0C4DE', powderblue: '#B0E0E6', firebrick: '#B22222', darkgoldenrod: '#B8860B', mediumorchid: '#BA55D3', rosybrown: '#BC8F8F', darkkhaki: '#BDB76B', silver: '#C0C0C0', mediumvioletred: '#C71585', indianred: '#CD5C5C', peru: '#CD853F', chocolate: '#D2691E', tan: '#D2B48C', lightgrey: '#D3D3D3', palevioletred: '#D87093', thistle: '#D8BFD8', orchid: '#DA70D6', goldenrod: '#DAA520', crimson: '#DC143C', gainsboro: '#DCDCDC', plum: '#DDA0DD', burlywood: '#DEB887', lightcyan: '#E0FFFF', lavender: '#E6E6FA', darksalmon: '#E9967A', violet: '#EE82EE', palegoldenrod: '#EEE8AA', lightcoral: '#F08080', khaki: '#F0E68C', aliceblue: '#F0F8FF', honeydew: '#F0FFF0', azure: '#F0FFFF', sandybrown: '#F4A460', wheat: '#F5DEB3', beige: '#F5F5DC', whitesmoke: '#F5F5F5', mintcream: '#F5FFFA', ghostwhite: '#F8F8FF', salmon: '#FA8072', antiquewhite: '#FAEBD7', linen: '#FAF0E6', lightgoldenrodyellow: '#FAFAD2', oldlace: '#FDF5E6', red: '#FF0000', fuchsia: '#FF00FF', magenta: '#FF00FF', deeppink: '#FF1493', orangered: '#FF4500', tomato: '#FF6347', hotpink: '#FF69B4', coral: '#FF7F50', darkorange: '#FF8C00', lightsalmon: '#FFA07A', orange: '#FFA500', lightpink: '#FFB6C1', pink: '#FFC0CB', gold: '#FFD700', peachpuff: '#FFDAB9', navajowhite: '#FFDEAD', moccasin: '#FFE4B5', bisque: '#FFE4C4', mistyrose: '#FFE4E1', blanchedalmond: '#FFEBCD', papayawhip: '#FFEFD5', lavenderblush: '#FFF0F5', seashell: '#FFF5EE', cornsilk: '#FFF8DC', lemonchiffon: '#FFFACD', floralwhite: '#FFFAF0', snow: '#FFFAFA', yellow: '#FFFF00', lightyellow: '#FFFFE0', ivory: '#FFFFF0', white: '#FFFFFF' };
- if (typeof color === 'string') {
- return htmlColors[color];
- }
- }
-
- /**
- * Set the color of the colorPicker
- * Supported formats:
- * 'red' --> HTML color string
- * '#ffffff' --> hex string
- * 'rbg(255,255,255)' --> rgb string
- * 'rgba(255,255,255,1.0)' --> rgba string
- * {r:255,g:255,b:255} --> rgb object
- * {r:255,g:255,b:255,a:1.0} --> rgba object
- * @param color
- * @param setInitial
- */
- }, {
- key: 'setColor',
- value: function setColor(color) {
- var setInitial = arguments.length <= 1 || arguments[1] === undefined ? true : arguments[1];
-
- if (color === 'none') {
- return;
- }
-
- var rgba = undefined;
-
- // if a html color shorthand is used, convert to hex
- var htmlColor = this._isColorString(color);
- if (htmlColor !== undefined) {
- color = htmlColor;
- }
-
- // check format
- if (util.isString(color) === true) {
- if (util.isValidRGB(color) === true) {
- var rgbaArray = color.substr(4).substr(0, color.length - 5).split(',');
- rgba = { r: rgbaArray[0], g: rgbaArray[1], b: rgbaArray[2], a: 1.0 };
- } else if (util.isValidRGBA(color) === true) {
- var rgbaArray = color.substr(5).substr(0, color.length - 6).split(',');
- rgba = { r: rgbaArray[0], g: rgbaArray[1], b: rgbaArray[2], a: rgbaArray[3] };
- } else if (util.isValidHex(color) === true) {
- var rgbObj = util.hexToRGB(color);
- rgba = { r: rgbObj.r, g: rgbObj.g, b: rgbObj.b, a: 1.0 };
- }
- } else {
- if (color instanceof Object) {
- if (color.r !== undefined && color.g !== undefined && color.b !== undefined) {
- var alpha = color.a !== undefined ? color.a : '1.0';
- rgba = { r: color.r, g: color.g, b: color.b, a: alpha };
- }
- }
- }
-
- // set color
- if (rgba === undefined) {
- throw new Error("Unknown color passed to the colorPicker. Supported are strings: rgb, hex, rgba. Object: rgb ({r:r,g:g,b:b,[a:a]}). Supplied: " + JSON.stringify(color));
- } else {
- this._setColor(rgba, setInitial);
- }
- }
-
- /**
- * this shows the color picker at a location. The hue circle is constructed once and stored.
- * @param x
- * @param y
- */
- }, {
- key: 'show',
- value: function show(x, y) {
- this.applied = false;
- this.frame.style.display = 'block';
- this.frame.style.top = y + 'px';
- this.frame.style.left = x + 'px';
- this._generateHueCircle();
- }
-
- // ------------------------------------------ PRIVATE ----------------------------- //
-
- /**
- * Hide the picker. Is called by the cancel button.
- * Optional boolean to store the previous color for easy access later on.
- * @param storePrevious
- * @private
- */
- }, {
- key: '_hide',
- value: function _hide() {
- var storePrevious = arguments.length <= 0 || arguments[0] === undefined ? true : arguments[0];
-
- // store the previous color for next time;
- if (storePrevious === true) {
- this.previousColor = util.extend({}, this.color);
- }
-
- if (this.applied === true) {
- this.updateCallback(this.initialColor);
- }
-
- this.frame.style.display = 'none';
- }
-
- /**
- * bound to the save button. Saves and hides.
- * @private
- */
- }, {
- key: '_save',
- value: function _save() {
- this.updateCallback(this.color);
- this.applied = false;
- this._hide();
- }
-
- /**
- * Bound to apply button. Saves but does not close. Is undone by the cancel button.
- * @private
- */
- }, {
- key: '_apply',
- value: function _apply() {
- this.applied = true;
- this.updateCallback(this.color);
- this._updatePicker(this.color);
- }
-
- /**
- * load the color from the previous session.
- * @private
- */
- }, {
- key: '_loadLast',
- value: function _loadLast() {
- if (this.previousColor !== undefined) {
- this.setColor(this.previousColor, false);
- } else {
- alert("There is no last color to load...");
- }
- }
-
- /**
- * set the color, place the picker
- * @param rgba
- * @param setInitial
- * @private
- */
- }, {
- key: '_setColor',
- value: function _setColor(rgba) {
- var setInitial = arguments.length <= 1 || arguments[1] === undefined ? true : arguments[1];
-
- // store the initial color
- if (setInitial === true) {
- this.initialColor = util.extend({}, rgba);
- }
-
- this.color = rgba;
- var hsv = util.RGBToHSV(rgba.r, rgba.g, rgba.b);
-
- var angleConvert = 2 * Math.PI;
- var radius = this.r * hsv.s;
- var x = this.centerCoordinates.x + radius * Math.sin(angleConvert * hsv.h);
- var y = this.centerCoordinates.y + radius * Math.cos(angleConvert * hsv.h);
-
- this.colorPickerSelector.style.left = x - 0.5 * this.colorPickerSelector.clientWidth + 'px';
- this.colorPickerSelector.style.top = y - 0.5 * this.colorPickerSelector.clientHeight + 'px';
-
- this._updatePicker(rgba);
- }
-
- /**
- * bound to opacity control
- * @param value
- * @private
- */
- }, {
- key: '_setOpacity',
- value: function _setOpacity(value) {
- this.color.a = value / 100;
- this._updatePicker(this.color);
- }
-
- /**
- * bound to brightness control
- * @param value
- * @private
- */
- }, {
- key: '_setBrightness',
- value: function _setBrightness(value) {
- var hsv = util.RGBToHSV(this.color.r, this.color.g, this.color.b);
- hsv.v = value / 100;
- var rgba = util.HSVToRGB(hsv.h, hsv.s, hsv.v);
- rgba['a'] = this.color.a;
- this.color = rgba;
- this._updatePicker();
- }
-
- /**
- * update the colorpicker. A black circle overlays the hue circle to mimic the brightness decreasing.
- * @param rgba
- * @private
- */
- }, {
- key: '_updatePicker',
- value: function _updatePicker() {
- var rgba = arguments.length <= 0 || arguments[0] === undefined ? this.color : arguments[0];
-
- var hsv = util.RGBToHSV(rgba.r, rgba.g, rgba.b);
- var ctx = this.colorPickerCanvas.getContext('2d');
- if (this.pixelRation === undefined) {
- this.pixelRatio = (window.devicePixelRatio || 1) / (ctx.webkitBackingStorePixelRatio || ctx.mozBackingStorePixelRatio || ctx.msBackingStorePixelRatio || ctx.oBackingStorePixelRatio || ctx.backingStorePixelRatio || 1);
- }
- ctx.setTransform(this.pixelRatio, 0, 0, this.pixelRatio, 0, 0);
-
- // clear the canvas
- var w = this.colorPickerCanvas.clientWidth;
- var h = this.colorPickerCanvas.clientHeight;
- ctx.clearRect(0, 0, w, h);
-
- ctx.putImageData(this.hueCircle, 0, 0);
- ctx.fillStyle = 'rgba(0,0,0,' + (1 - hsv.v) + ')';
- ctx.circle(this.centerCoordinates.x, this.centerCoordinates.y, this.r);
- ctx.fill();
-
- this.brightnessRange.value = 100 * hsv.v;
- this.opacityRange.value = 100 * rgba.a;
-
- this.initialColorDiv.style.backgroundColor = 'rgba(' + this.initialColor.r + ',' + this.initialColor.g + ',' + this.initialColor.b + ',' + this.initialColor.a + ')';
- this.newColorDiv.style.backgroundColor = 'rgba(' + this.color.r + ',' + this.color.g + ',' + this.color.b + ',' + this.color.a + ')';
- }
-
- /**
- * used by create to set the size of the canvas.
- * @private
- */
- }, {
- key: '_setSize',
- value: function _setSize() {
- this.colorPickerCanvas.style.width = '100%';
- this.colorPickerCanvas.style.height = '100%';
-
- this.colorPickerCanvas.width = 289 * this.pixelRatio;
- this.colorPickerCanvas.height = 289 * this.pixelRatio;
- }
-
- /**
- * create all dom elements
- * TODO: cleanup, lots of similar dom elements
- * @private
- */
- }, {
- key: '_create',
- value: function _create() {
- this.frame = document.createElement('div');
- this.frame.className = 'vis-color-picker';
-
- 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);
-
- if (!this.colorPickerCanvas.getContext) {
- var noCanvas = document.createElement('DIV');
- noCanvas.style.color = 'red';
- noCanvas.style.fontWeight = 'bold';
- noCanvas.style.padding = '10px';
- noCanvas.innerHTML = 'Error: your browser does not support HTML canvas';
- this.colorPickerCanvas.appendChild(noCanvas);
- } else {
- var ctx = this.colorPickerCanvas.getContext("2d");
- this.pixelRatio = (window.devicePixelRatio || 1) / (ctx.webkitBackingStorePixelRatio || ctx.mozBackingStorePixelRatio || ctx.msBackingStorePixelRatio || ctx.oBackingStorePixelRatio || ctx.backingStorePixelRatio || 1);
-
- this.colorPickerCanvas.getContext("2d").setTransform(this.pixelRatio, 0, 0, this.pixelRatio, 0, 0);
- }
-
- 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'; // Not supported on IE9
- this.opacityRange.min = '0';
- this.opacityRange.max = '100';
- } catch (err) {}
- this.opacityRange.value = '100';
- this.opacityRange.className = 'vis-range';
-
- this.brightnessRange = document.createElement('input');
- try {
- this.brightnessRange.type = 'range'; // Not supported on IE9
- this.brightnessRange.min = '0';
- this.brightnessRange.max = '100';
- } catch (err) {}
- this.brightnessRange.value = '100';
- this.brightnessRange.className = 'vis-range';
-
- this.opacityDiv.appendChild(this.opacityRange);
- this.brightnessDiv.appendChild(this.brightnessRange);
-
- var me = this;
- this.opacityRange.onchange = function () {
- me._setOpacity(this.value);
- };
- this.opacityRange.oninput = function () {
- me._setOpacity(this.value);
- };
- this.brightnessRange.onchange = function () {
- me._setBrightness(this.value);
- };
- this.brightnessRange.oninput = function () {
- me._setBrightness(this.value);
- };
-
- 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, false);
-
- 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);
- }
-
- /**
- * bind hammer to the color picker
- * @private
- */
- }, {
- key: '_bindHammer',
- value: function _bindHammer() {
- var _this = this;
-
- this.drag = {};
- this.pinch = {};
- this.hammer = new Hammer(this.colorPickerCanvas);
- this.hammer.get('pinch').set({ enable: true });
-
- hammerUtil.onTouch(this.hammer, function (event) {
- _this._moveSelector(event);
- });
- this.hammer.on('tap', function (event) {
- _this._moveSelector(event);
- });
- this.hammer.on('panstart', function (event) {
- _this._moveSelector(event);
- });
- this.hammer.on('panmove', function (event) {
- _this._moveSelector(event);
- });
- this.hammer.on('panend', function (event) {
- _this._moveSelector(event);
- });
- }
-
- /**
- * generate the hue circle. This is relatively heavy (200ms) and is done only once on the first time it is shown.
- * @private
- */
- }, {
- key: '_generateHueCircle',
- value: function _generateHueCircle() {
- if (this.generated === false) {
- var ctx = this.colorPickerCanvas.getContext('2d');
- if (this.pixelRation === undefined) {
- this.pixelRatio = (window.devicePixelRatio || 1) / (ctx.webkitBackingStorePixelRatio || ctx.mozBackingStorePixelRatio || ctx.msBackingStorePixelRatio || ctx.oBackingStorePixelRatio || ctx.backingStorePixelRatio || 1);
- }
- ctx.setTransform(this.pixelRatio, 0, 0, this.pixelRatio, 0, 0);
-
- // clear the canvas
- var w = this.colorPickerCanvas.clientWidth;
- var h = this.colorPickerCanvas.clientHeight;
- ctx.clearRect(0, 0, w, h);
-
- // draw hue circle
- var x = undefined,
- y = undefined,
- hue = undefined,
- sat = undefined;
- this.centerCoordinates = { x: w * 0.5, y: h * 0.5 };
- this.r = 0.49 * w;
- var angleConvert = 2 * Math.PI / 360;
- var hfac = 1 / 360;
- var sfac = 1 / this.r;
- var rgb = undefined;
- for (hue = 0; hue < 360; hue++) {
- for (sat = 0; sat < this.r; sat++) {
- x = this.centerCoordinates.x + sat * Math.sin(angleConvert * hue);
- y = this.centerCoordinates.y + sat * Math.cos(angleConvert * hue);
- rgb = util.HSVToRGB(hue * hfac, sat * sfac, 1);
- ctx.fillStyle = 'rgb(' + rgb.r + ',' + rgb.g + ',' + rgb.b + ')';
- ctx.fillRect(x - 0.5, y - 0.5, 2, 2);
- }
- }
- ctx.strokeStyle = 'rgba(0,0,0,1)';
- ctx.circle(this.centerCoordinates.x, this.centerCoordinates.y, this.r);
- ctx.stroke();
-
- this.hueCircle = ctx.getImageData(0, 0, w, h);
- }
- this.generated = true;
- }
-
- /**
- * move the selector. This is called by hammer functions.
- *
- * @param event
- * @private
- */
- }, {
- key: '_moveSelector',
- value: function _moveSelector(event) {
- var rect = this.colorPickerDiv.getBoundingClientRect();
- var left = event.center.x - rect.left;
- var top = event.center.y - rect.top;
-
- var centerY = 0.5 * this.colorPickerDiv.clientHeight;
- var centerX = 0.5 * this.colorPickerDiv.clientWidth;
-
- var x = left - centerX;
- var y = top - centerY;
-
- var angle = Math.atan2(x, y);
- var radius = 0.98 * Math.min(Math.sqrt(x * x + y * y), centerX);
-
- var newTop = Math.cos(angle) * radius + centerY;
- var newLeft = Math.sin(angle) * radius + centerX;
-
- this.colorPickerSelector.style.top = newTop - 0.5 * this.colorPickerSelector.clientHeight + 'px';
- this.colorPickerSelector.style.left = newLeft - 0.5 * this.colorPickerSelector.clientWidth + 'px';
-
- // set color
- var h = angle / (2 * Math.PI);
- h = h < 0 ? h + 1 : h;
- var s = radius / this.r;
- var hsv = util.RGBToHSV(this.color.r, this.color.g, this.color.b);
- hsv.h = h;
- hsv.s = s;
- var rgba = util.HSVToRGB(hsv.h, hsv.s, hsv.v);
- rgba['a'] = this.color.a;
- this.color = rgba;
-
- // update previews
- this.initialColorDiv.style.backgroundColor = 'rgba(' + this.initialColor.r + ',' + this.initialColor.g + ',' + this.initialColor.b + ',' + this.initialColor.a + ')';
- this.newColorDiv.style.backgroundColor = 'rgba(' + this.color.r + ',' + this.color.g + ',' + this.color.b + ',' + this.color.a + ')';
- }
- }]);
-
- return ColorPicker;
- })();
-
- exports['default'] = ColorPicker;
- module.exports = exports['default'];
-
-/***/ },
-/* 47 */
-/***/ function(module, exports, __webpack_require__) {
+/* 49 */
+/***/ function(module, exports) {
'use strict';
- Object.defineProperty(exports, '__esModule', {
+ Object.defineProperty(exports, "__esModule", {
value: true
});
-
- 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; }; })();
-
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }
-
- var util = __webpack_require__(1);
-
- var errorFound = false;
- var allOptions = undefined;
- var printStyle = 'background: #FFeeee; color: #dd0000';
- /**
- * Used to validate options.
- */
-
- var Validator = (function () {
- function Validator() {
- _classCallCheck(this, Validator);
- }
-
- /**
- * Main function to be called
- * @param options
- * @param subObject
- * @returns {boolean}
- */
-
- _createClass(Validator, null, [{
- key: 'validate',
- value: function validate(options, referenceOptions, subObject) {
- errorFound = false;
- allOptions = referenceOptions;
- var usedOptions = referenceOptions;
- if (subObject !== undefined) {
- usedOptions = referenceOptions[subObject];
- }
- Validator.parse(options, usedOptions, []);
- return errorFound;
- }
-
- /**
- * Will traverse an object recursively and check every value
- * @param options
- * @param referenceOptions
- * @param path
- */
- }, {
- key: 'parse',
- value: function parse(options, referenceOptions, path) {
- for (var option in options) {
- if (options.hasOwnProperty(option)) {
- Validator.check(option, options, referenceOptions, path);
- }
- }
- }
-
- /**
- * Check every value. If the value is an object, call the parse function on that object.
- * @param option
- * @param options
- * @param referenceOptions
- * @param path
- */
- }, {
- key: 'check',
- value: function check(option, options, referenceOptions, path) {
- if (referenceOptions[option] === undefined && referenceOptions.__any__ === undefined) {
- Validator.getSuggestion(option, referenceOptions, path);
- } else if (referenceOptions[option] === undefined && referenceOptions.__any__ !== undefined) {
- // __any__ is a wildcard. Any value is accepted and will be further analysed by reference.
- if (Validator.getType(options[option]) === 'object' && referenceOptions['__any__'].__type__ !== undefined) {
- // if the any subgroup is not a predefined object int he configurator we do not look deeper into the object.
- Validator.checkFields(option, options, referenceOptions, '__any__', referenceOptions['__any__'].__type__, path);
- } else {
- Validator.checkFields(option, options, referenceOptions, '__any__', referenceOptions['__any__'], path);
- }
- } else {
- // Since all options in the reference are objects, we can check whether they are supposed to be object to look for the __type__ field.
- if (referenceOptions[option].__type__ !== undefined) {
- // if this should be an object, we check if the correct type has been supplied to account for shorthand options.
- Validator.checkFields(option, options, referenceOptions, option, referenceOptions[option].__type__, path);
- } else {
- Validator.checkFields(option, options, referenceOptions, option, referenceOptions[option], path);
- }
- }
- }
-
- /**
- *
- * @param {String} option | the option property
- * @param {Object} options | The supplied options object
- * @param {Object} referenceOptions | The reference options containing all options and their allowed formats
- * @param {String} referenceOption | Usually this is the same as option, except when handling an __any__ tag.
- * @param {String} refOptionType | This is the type object from the reference options
- * @param {Array} path | where in the object is the option
- */
- }, {
- key: 'checkFields',
- value: function checkFields(option, options, referenceOptions, referenceOption, refOptionObj, path) {
- var optionType = Validator.getType(options[option]);
- var refOptionType = refOptionObj[optionType];
- if (refOptionType !== undefined) {
- // if the type is correct, we check if it is supposed to be one of a few select values
- if (Validator.getType(refOptionType) === 'array') {
- if (refOptionType.indexOf(options[option]) === -1) {
- console.log('%cInvalid option detected in "' + option + '".' + ' Allowed values are:' + Validator.print(refOptionType) + ' not "' + options[option] + '". ' + Validator.printLocation(path, option), printStyle);
- errorFound = true;
- } else if (optionType === 'object' && referenceOption !== "__any__") {
- path = util.copyAndExtendArray(path, option);
- Validator.parse(options[option], referenceOptions[referenceOption], path);
- }
- } else if (optionType === 'object' && referenceOption !== "__any__") {
- path = util.copyAndExtendArray(path, option);
- Validator.parse(options[option], referenceOptions[referenceOption], path);
- }
- } else if (refOptionObj['any'] === undefined) {
- // type of the field is incorrect and the field cannot be any
- console.log('%cInvalid type received for "' + option + '". Expected: ' + Validator.print(Object.keys(refOptionObj)) + '. Received [' + optionType + '] "' + options[option] + '"' + Validator.printLocation(path, option), printStyle);
- errorFound = true;
- }
- }
- }, {
- key: 'getType',
- value: function getType(object) {
- var type = typeof object;
-
- if (type === 'object') {
- if (object === null) {
- return 'null';
- }
- if (object instanceof Boolean) {
- return 'boolean';
- }
- if (object instanceof Number) {
- return 'number';
- }
- if (object instanceof String) {
- return 'string';
- }
- if (Array.isArray(object)) {
- return 'array';
- }
- if (object instanceof Date) {
- return 'date';
- }
- if (object.nodeType !== undefined) {
- return 'dom';
- }
- if (object._isAMomentObject === true) {
- return 'moment';
- }
- return 'object';
- } else if (type === 'number') {
- return 'number';
- } else if (type === 'boolean') {
- return 'boolean';
- } else if (type === 'string') {
- return 'string';
- } else if (type === undefined) {
- return 'undefined';
- }
- return type;
- }
- }, {
- key: 'getSuggestion',
- value: function getSuggestion(option, options, path) {
- var localSearch = Validator.findInOptions(option, options, path, false);
- var globalSearch = Validator.findInOptions(option, allOptions, [], true);
-
- var localSearchThreshold = 8;
- var globalSearchThreshold = 4;
-
- if (localSearch.indexMatch !== undefined) {
- console.log('%cUnknown option detected: "' + option + '" in ' + Validator.printLocation(localSearch.path, option, '') + 'Perhaps it was incomplete? Did you mean: "' + localSearch.indexMatch + '"?\n\n', printStyle);
- } else if (globalSearch.distance <= globalSearchThreshold && localSearch.distance > globalSearch.distance) {
- console.log('%cUnknown option detected: "' + option + '" in ' + Validator.printLocation(localSearch.path, option, '') + 'Perhaps it was misplaced? Matching option found at: ' + Validator.printLocation(globalSearch.path, globalSearch.closestMatch, ''), printStyle);
- } else if (localSearch.distance <= localSearchThreshold) {
- console.log('%cUnknown option detected: "' + option + '". Did you mean "' + localSearch.closestMatch + '"?' + Validator.printLocation(localSearch.path, option), printStyle);
- } else {
- console.log('%cUnknown option detected: "' + option + '". Did you mean one of these: ' + Validator.print(Object.keys(options)) + Validator.printLocation(path, option), printStyle);
- }
-
- errorFound = true;
- }
-
- /**
- * traverse the options in search for a match.
- * @param option
- * @param options
- * @param path
- * @param recursive
- * @returns {{closestMatch: string, path: Array, distance: number}}
- */
- }, {
- key: 'findInOptions',
- value: function findInOptions(option, options, path) {
- var recursive = arguments.length <= 3 || arguments[3] === undefined ? false : arguments[3];
-
- var min = 1e9;
- var closestMatch = '';
- var closestMatchPath = [];
- var lowerCaseOption = option.toLowerCase();
- var indexMatch = undefined;
- for (var op in options) {
- var distance = undefined;
- if (options[op].__type__ !== undefined && recursive === true) {
- var result = Validator.findInOptions(option, options[op], util.copyAndExtendArray(path, op));
- if (min > result.distance) {
- closestMatch = result.closestMatch;
- closestMatchPath = result.path;
- min = result.distance;
- indexMatch = result.indexMatch;
- }
- } else {
- if (op.toLowerCase().indexOf(lowerCaseOption) !== -1) {
- indexMatch = op;
- }
- distance = Validator.levenshteinDistance(option, op);
- if (min > distance) {
- closestMatch = op;
- closestMatchPath = util.copyArray(path);
- min = distance;
- }
- }
- }
- return { closestMatch: closestMatch, path: closestMatchPath, distance: min, indexMatch: indexMatch };
- }
- }, {
- key: 'printLocation',
- value: function printLocation(path, option) {
- var prefix = arguments.length <= 2 || arguments[2] === undefined ? 'Problem value found at: \n' : arguments[2];
-
- var str = '\n\n' + prefix + 'options = {\n';
- for (var i = 0; i < path.length; i++) {
- for (var j = 0; j < i + 1; j++) {
- str += ' ';
- }
- str += path[i] + ': {\n';
- }
- for (var j = 0; j < path.length + 1; j++) {
- str += ' ';
- }
- str += option + '\n';
- for (var i = 0; i < path.length + 1; i++) {
- for (var j = 0; j < path.length - i; j++) {
- str += ' ';
- }
- str += '}\n';
- }
- return str + '\n\n';
- }
- }, {
- key: 'print',
- value: function print(options) {
- return JSON.stringify(options).replace(/(\")|(\[)|(\])|(,"__type__")/g, "").replace(/(\,)/g, ', ');
- }
-
- // Compute the edit distance between the two given strings
- // http://en.wikibooks.org/wiki/Algorithm_Implementation/Strings/Levenshtein_distance#JavaScript
- /*
- Copyright (c) 2011 Andrei Mackenzie
- Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
- The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
- */
- }, {
- key: 'levenshteinDistance',
- value: function levenshteinDistance(a, b) {
- if (a.length === 0) return b.length;
- if (b.length === 0) return a.length;
-
- var matrix = [];
-
- // increment along the first column of each row
- var i;
- for (i = 0; i <= b.length; i++) {
- matrix[i] = [i];
- }
-
- // increment each column in the first row
- var j;
- for (j = 0; j <= a.length; j++) {
- matrix[0][j] = j;
- }
-
- // Fill in the rest of the matrix
- for (i = 1; i <= b.length; i++) {
- for (j = 1; j <= a.length; j++) {
- if (b.charAt(i - 1) == a.charAt(j - 1)) {
- matrix[i][j] = matrix[i - 1][j - 1];
- } else {
- matrix[i][j] = Math.min(matrix[i - 1][j - 1] + 1, // substitution
- Math.min(matrix[i][j - 1] + 1, // insertion
- matrix[i - 1][j] + 1)); // deletion
- }
- }
- }
-
- return matrix[b.length][a.length];
- }
- }]);
-
- return Validator;
- })();
-
- exports['default'] = Validator;
- exports.printStyle = printStyle;
-
-/***/ },
-/* 48 */
-/***/ function(module, exports) {
-
/**
* This object contains all possible options. It will check if the types are correct, if required if the option is one
* of the allowed values.
@@ -23382,11 +24744,6 @@ return /******/ (function(modules) { // webpackBootstrap
* __any__ means that the name of the property does not matter.
* __type__ is a required field for all objects and contains the allowed types of all objects
*/
- 'use strict';
-
- Object.defineProperty(exports, '__esModule', {
- value: true
- });
var string = 'string';
var boolean = 'boolean';
var number = 'number';
@@ -23407,6 +24764,7 @@ return /******/ (function(modules) { // webpackBootstrap
//globals :
align: { string: string },
+ rtl: { boolean: boolean, 'undefined': 'undefined' },
autoResize: { boolean: boolean },
throttleRedraw: { number: number },
clickToUse: { boolean: boolean },
@@ -23524,6 +24882,7 @@ return /******/ (function(modules) { // webpackBootstrap
var configureOptions = {
global: {
align: ['center', 'left', 'right'],
+ direction: false,
autoResize: true,
throttleRedraw: [10, 0, 1000, 10],
clickToUse: false,
@@ -23613,29 +24972,37 @@ return /******/ (function(modules) { // webpackBootstrap
exports.configureOptions = configureOptions;
/***/ },
-/* 49 */
+/* 50 */
/***/ function(module, exports, __webpack_require__) {
'use strict';
- var Emitter = __webpack_require__(12);
+ var _Configurator = __webpack_require__(26);
+
+ var _Configurator2 = _interopRequireDefault(_Configurator);
+
+ var _Validator = __webpack_require__(29);
+
+ 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 moment = __webpack_require__(2);
var util = __webpack_require__(1);
- var DataSet = __webpack_require__(8);
- var DataView = __webpack_require__(10);
- var Range = __webpack_require__(24);
- var Core = __webpack_require__(28);
- var TimeAxis = __webpack_require__(39);
- var CurrentTime = __webpack_require__(44);
- var CustomTime = __webpack_require__(42);
- var LineGraph = __webpack_require__(50);
-
- var Configurator = __webpack_require__(45);
- var Validator = __webpack_require__(47)['default'];
- var printStyle = __webpack_require__(47).printStyle;
- var allOptions = __webpack_require__(58).allOptions;
- var configureOptions = __webpack_require__(58).configureOptions;
+ var DataSet = __webpack_require__(9);
+ var DataView = __webpack_require__(11);
+ var Range = __webpack_require__(30);
+ var Core = __webpack_require__(33);
+ var TimeAxis = __webpack_require__(44);
+ var CurrentTime = __webpack_require__(48);
+ var CustomTime = __webpack_require__(46);
+ var LineGraph = __webpack_require__(51);
+
+ var printStyle = __webpack_require__(29).printStyle;
+ var allOptions = __webpack_require__(59).allOptions;
+ var configureOptions = __webpack_require__(59).configureOptions;
/**
* Create a timeline visualization
@@ -23713,6 +25080,7 @@ return /******/ (function(modules) { // webpackBootstrap
// item set
this.linegraph = new LineGraph(this.body);
+
this.components.push(this.linegraph);
this.itemsData = null; // DataSet
@@ -23741,9 +25109,10 @@ return /******/ (function(modules) { // webpackBootstrap
// create itemset
if (items) {
this.setItems(items);
- } else {
- this._redraw();
}
+
+ // draw for the first time
+ this._redraw();
}
// Extend the functionality from Core
@@ -23751,7 +25120,7 @@ return /******/ (function(modules) { // webpackBootstrap
Graph2d.prototype.setOptions = function (options) {
// validate options
- var errorFound = Validator.validate(options, allOptions);
+ var errorFound = _Validator2.default.validate(options, allOptions);
if (errorFound === true) {
console.log('%cErrors have been found in the supplied options object.', printStyle);
}
@@ -23790,7 +25159,6 @@ return /******/ (function(modules) { // webpackBootstrap
if (this.options.start != undefined || this.options.end != undefined) {
var start = this.options.start != undefined ? this.options.start : null;
var end = this.options.end != undefined ? this.options.end : null;
-
this.setWindow(start, end, { animation: false });
} else {
this.fit({ animation: false });
@@ -23946,28 +25314,30 @@ return /******/ (function(modules) { // webpackBootstrap
* @private
*/
Graph2d.prototype._createConfigurator = function () {
- return new Configurator(this, this.dom.container, configureOptions);
+ return new _Configurator2.default(this, this.dom.container, configureOptions);
};
module.exports = Graph2d;
/***/ },
-/* 50 */
+/* 51 */
/***/ 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 util = __webpack_require__(1);
- var DOMutil = __webpack_require__(7);
- var DataSet = __webpack_require__(8);
- var DataView = __webpack_require__(10);
- var Component = __webpack_require__(26);
- var DataAxis = __webpack_require__(51);
- var GraphGroup = __webpack_require__(53);
- var Legend = __webpack_require__(57);
- var Bars = __webpack_require__(54);
- var Lines = __webpack_require__(56);
- var Points = __webpack_require__(55);
+ var DOMutil = __webpack_require__(8);
+ var DataSet = __webpack_require__(9);
+ var DataView = __webpack_require__(11);
+ var Component = __webpack_require__(31);
+ var DataAxis = __webpack_require__(52);
+ var GraphGroup = __webpack_require__(54);
+ var Legend = __webpack_require__(58);
+ var Bars = __webpack_require__(55);
+ var Lines = __webpack_require__(57);
+ var Points = __webpack_require__(56);
var UNGROUPED = '__ungrouped__'; // reserved group id for ungrouped items
@@ -24009,40 +25379,8 @@ return /******/ (function(modules) { // webpackBootstrap
size: 6,
style: 'square' // square, circle
},
- dataAxis: {
- showMinorLabels: true,
- showMajorLabels: true,
- icons: false,
- width: '40px',
- visible: true,
- alignZeros: true,
- left: {
- range: { min: undefined, max: undefined },
- format: function format(value) {
- return value;
- },
- title: { text: undefined, style: undefined }
- },
- right: {
- range: { min: undefined, max: undefined },
- format: function format(value) {
- return value;
- },
- title: { text: undefined, style: undefined }
- }
- },
- legend: {
- enabled: false,
- icons: true,
- left: {
- visible: true,
- position: 'top-left' // top/bottom - left,right
- },
- right: {
- visible: true,
- position: 'top-right' // top/bottom - left,right
- }
- },
+ dataAxis: {}, //Defaults are done on DataAxis level
+ legend: {}, //Defaults are done on Legend level
groups: {
visibility: {}
}
@@ -24057,6 +25395,7 @@ return /******/ (function(modules) { // webpackBootstrap
this.abortedGraphUpdate = false;
this.updateSVGheight = false;
this.updateSVGheightOnResize = false;
+ this.forceGraphUpdate = true;
var me = this;
this.itemsData = null; // DataSet
@@ -24096,17 +25435,18 @@ return /******/ (function(modules) { // webpackBootstrap
this.svgElements = {};
this.setOptions(options);
this.groupsUsingDefaultStyles = [0];
- this.COUNTER = 0;
this.body.emitter.on('rangechanged', function () {
me.lastStart = me.body.range.start;
me.svg.style.left = util.option.asSize(-me.props.width);
- me.redraw.call(me, true);
+
+ me.forceGraphUpdate = true;
+ //Is this local redraw necessary? (Core also does a change event!)
+ me.redraw.call(me);
});
// create the HTML DOM
this._create();
this.framework = { svg: this.svg, svgElements: this.svgElements, options: this.options, groups: this.groups };
- this.body.emitter.emit('change');
}
LineGraph.prototype = new Component();
@@ -24148,7 +25488,7 @@ return /******/ (function(modules) { // webpackBootstrap
LineGraph.prototype.setOptions = function (options) {
if (options) {
var fields = ['sampling', 'defaultGroup', 'stack', 'height', 'graphHeight', 'yAxisOrientation', 'style', 'barChart', 'dataAxis', 'sort', 'groups'];
- if (options.graphHeight === undefined && options.height !== undefined && this.body.domProps.centerContainer.height !== undefined) {
+ if (options.graphHeight === undefined && options.height !== undefined) {
this.updateSVGheight = true;
this.updateSVGheightOnResize = true;
} else if (this.body.domProps.centerContainer.height !== undefined && options.graphHeight !== undefined) {
@@ -24163,7 +25503,7 @@ return /******/ (function(modules) { // webpackBootstrap
util.mergeOptions(this.options, options, 'legend');
if (options.interpolation) {
- if (typeof options.interpolation == 'object') {
+ if (_typeof(options.interpolation) == 'object') {
if (options.interpolation.parametrization) {
if (options.interpolation.parametrization == 'uniform') {
this.options.interpolation.alpha = 0;
@@ -24198,7 +25538,9 @@ return /******/ (function(modules) { // webpackBootstrap
// this is used to redraw the graph if the visibility of the groups is changed.
if (this.dom.frame) {
- this.redraw(true);
+ //not on initial run?
+ this.forceGraphUpdate = true;
+ this.body.emitter.emit("_change", { queue: true });
}
};
@@ -24311,7 +25653,6 @@ return /******/ (function(modules) { // webpackBootstrap
LineGraph.prototype._onUpdate = function (ids) {
this._updateAllGroupData();
- this.redraw(true);
};
LineGraph.prototype._onAdd = function (ids) {
this._onUpdate(ids);
@@ -24321,7 +25662,6 @@ return /******/ (function(modules) { // webpackBootstrap
};
LineGraph.prototype._onUpdateGroups = function (groupIds) {
this._updateAllGroupData();
- this.redraw(true);
};
LineGraph.prototype._onAddGroups = function (groupIds) {
this._onUpdateGroups(groupIds);
@@ -24336,7 +25676,8 @@ return /******/ (function(modules) { // webpackBootstrap
for (var i = 0; i < groupIds.length; i++) {
this._removeGroup(groupIds[i]);
}
- this.redraw(true);
+ this.forceGraphUpdate = true;
+ this.body.emitter.emit("_change", { queue: true });
};
/**
@@ -24381,9 +25722,15 @@ return /******/ (function(modules) { // webpackBootstrap
if (this.groups[groupId].options.yAxisOrientation == 'right') {
this.yAxisRight.updateGroup(groupId, this.groups[groupId]);
this.legendRight.updateGroup(groupId, this.groups[groupId]);
+ //If yAxisOrientation changed, clean out the group from the other axis.
+ this.yAxisLeft.removeGroup(groupId);
+ this.legendLeft.removeGroup(groupId);
} else {
this.yAxisLeft.updateGroup(groupId, this.groups[groupId]);
this.legendLeft.updateGroup(groupId, this.groups[groupId]);
+ //If yAxisOrientation changed, clean out the group from the other axis.
+ this.yAxisRight.removeGroup(groupId);
+ this.legendRight.removeGroup(groupId);
}
}
this.legendLeft.redraw();
@@ -24423,7 +25770,6 @@ return /******/ (function(modules) { // webpackBootstrap
var extended = util.bridgeObject(item);
extended.x = util.convert(item.x, 'Date');
extended.orginalY = item.y; //real Y
- // typecast all items to numbers. Takes around 10ms for 500.000 items
extended.y = Number(item.y);
var index = groupsContent[groupId].length - groupCounts[groupId]--;
@@ -24459,6 +25805,8 @@ return /******/ (function(modules) { // webpackBootstrap
}
}
}
+ this.forceGraphUpdate = true;
+ this.body.emitter.emit("_change", { queue: true });
}
};
@@ -24466,18 +25814,13 @@ return /******/ (function(modules) { // webpackBootstrap
* Redraw the component, mandatory function
* @return {boolean} Returns true if the component is resized
*/
- LineGraph.prototype.redraw = function (forceGraphUpdate) {
+ LineGraph.prototype.redraw = function () {
var resized = false;
// calculate actual size and position
this.props.width = this.dom.frame.offsetWidth;
this.props.height = this.body.domProps.centerContainer.height - this.body.domProps.border.top - this.body.domProps.border.bottom;
- // update the graph if there is no lastWidth or with, used for the initial draw
- if (this.lastWidth === undefined && this.props.width) {
- forceGraphUpdate = true;
- }
-
// check if this component is resized
resized = this._isResized() || resized;
@@ -24510,8 +25853,9 @@ return /******/ (function(modules) { // webpackBootstrap
}
// zoomed is here to ensure that animations are shown correctly.
- if (resized == true || zoomed == true || this.abortedGraphUpdate == true || forceGraphUpdate == true) {
+ if (resized == true || zoomed == true || this.abortedGraphUpdate == true || this.forceGraphUpdate == true) {
resized = this._updateGraph() || resized;
+ this.forceGraphUpdate = false;
} else {
// move the whole svg while dragging
if (this.lastStart != 0) {
@@ -24524,7 +25868,6 @@ return /******/ (function(modules) { // webpackBootstrap
}
}
}
-
this.legendLeft.redraw();
this.legendRight.redraw();
return resized;
@@ -24590,96 +25933,93 @@ return /******/ (function(modules) { // webpackBootstrap
this._getYRanges(groupIds, groupsData, groupRanges);
// update the Y axis first, we use this data to draw at the correct Y points
- // changeCalled is required to clean the SVG on a change emit.
changeCalled = this._updateYAxis(groupIds, groupRanges);
- var MAX_CYCLES = 5;
- if (changeCalled == true && this.COUNTER < MAX_CYCLES) {
+
+ // at changeCalled, abort this update cycle as the graph needs another update with new Width input from the Redraw container.
+ // Cleanup SVG elements on abort.
+ if (changeCalled == true) {
DOMutil.cleanupElements(this.svgElements);
this.abortedGraphUpdate = true;
- this.COUNTER++;
- this.body.emitter.emit('change');
return true;
- } else {
- if (this.COUNTER > MAX_CYCLES) {
- console.log("WARNING: there may be an infinite loop in the _updateGraph emitter cycle.");
- }
- this.COUNTER = 0;
- this.abortedGraphUpdate = false;
-
- // With the yAxis scaled correctly, use this to get the Y values of the points.
- var below = undefined;
- for (i = 0; i < groupIds.length; i++) {
- group = this.groups[groupIds[i]];
- if (this.options.stack === true && this.options.style === 'line') {
- if (group.options.excludeFromStacking == undefined || !group.options.excludeFromStacking) {
- if (below != undefined) {
- this._stack(groupsData[group.id], groupsData[below.id]);
- if (group.options.shaded.enabled == true && group.options.shaded.orientation !== "group") {
- if (group.options.shaded.orientation == "top" && below.options.shaded.orientation !== "group") {
- below.options.shaded.orientation = "group";
- below.options.shaded.groupId = group.id;
- } else {
- group.options.shaded.orientation = "group";
- group.options.shaded.groupId = below.id;
- }
+ }
+ this.abortedGraphUpdate = false;
+
+ // With the yAxis scaled correctly, use this to get the Y values of the points.
+ var below = undefined;
+ for (i = 0; i < groupIds.length; i++) {
+ group = this.groups[groupIds[i]];
+ if (this.options.stack === true && this.options.style === 'line') {
+ if (group.options.excludeFromStacking == undefined || !group.options.excludeFromStacking) {
+ if (below != undefined) {
+ this._stack(groupsData[group.id], groupsData[below.id]);
+ if (group.options.shaded.enabled == true && group.options.shaded.orientation !== "group") {
+ if (group.options.shaded.orientation == "top" && below.options.shaded.orientation !== "group") {
+ below.options.shaded.orientation = "group";
+ below.options.shaded.groupId = group.id;
+ } else {
+ group.options.shaded.orientation = "group";
+ group.options.shaded.groupId = below.id;
}
}
- below = group;
}
+ below = group;
}
- this._convertYcoordinates(groupsData[groupIds[i]], group);
}
+ this._convertYcoordinates(groupsData[groupIds[i]], group);
+ }
- //Precalculate paths and draw shading if appropriate. This will make sure the shading is always behind any lines.
- var paths = {};
- for (i = 0; i < groupIds.length; i++) {
- group = this.groups[groupIds[i]];
- if (group.options.style === 'line' && group.options.shaded.enabled == true) {
- var dataset = groupsData[groupIds[i]];
- if (!paths.hasOwnProperty(groupIds[i])) {
- paths[groupIds[i]] = Lines.calcPath(dataset, group);
+ //Precalculate paths and draw shading if appropriate. This will make sure the shading is always behind any lines.
+ var paths = {};
+ for (i = 0; i < groupIds.length; i++) {
+ group = this.groups[groupIds[i]];
+ if (group.options.style === 'line' && group.options.shaded.enabled == true) {
+ var dataset = groupsData[groupIds[i]];
+ if (dataset == null || dataset.length == 0) {
+ continue;
+ }
+ if (!paths.hasOwnProperty(groupIds[i])) {
+ paths[groupIds[i]] = Lines.calcPath(dataset, group);
+ }
+ if (group.options.shaded.orientation === "group") {
+ var subGroupId = group.options.shaded.groupId;
+ if (groupIds.indexOf(subGroupId) === -1) {
+ console.log(group.id + ": Unknown shading group target given:" + subGroupId);
+ continue;
}
- if (group.options.shaded.orientation === "group") {
- var subGroupId = group.options.shaded.groupId;
- if (groupIds.indexOf(subGroupId) === -1) {
- console.log(group.id + ": Unknown shading group target given:" + subGroupId);
- continue;
- }
- if (!paths.hasOwnProperty(subGroupId)) {
- paths[subGroupId] = Lines.calcPath(groupsData[subGroupId], this.groups[subGroupId]);
- }
- Lines.drawShading(paths[groupIds[i]], group, paths[subGroupId], this.framework);
- } else {
- Lines.drawShading(paths[groupIds[i]], group, undefined, this.framework);
+ if (!paths.hasOwnProperty(subGroupId)) {
+ paths[subGroupId] = Lines.calcPath(groupsData[subGroupId], this.groups[subGroupId]);
}
+ Lines.drawShading(paths[groupIds[i]], group, paths[subGroupId], this.framework);
+ } else {
+ Lines.drawShading(paths[groupIds[i]], group, undefined, this.framework);
}
}
+ }
- // draw the groups, calculating paths if still necessary.
- Bars.draw(groupIds, groupsData, this.framework);
- for (i = 0; i < groupIds.length; i++) {
- group = this.groups[groupIds[i]];
- if (groupsData[groupIds[i]].length > 0) {
- switch (group.options.style) {
- case "line":
- if (!paths.hasOwnProperty(groupIds[i])) {
- paths[groupIds[i]] = Lines.calcPath(groupsData[groupIds[i]], group);
- }
- Lines.draw(paths[groupIds[i]], group, this.framework);
- //explicit no break;
- case "point":
- //explicit no break;
- case "points":
- if (group.options.style == "point" || group.options.style == "points" || group.options.drawPoints.enabled == true) {
- Points.draw(groupsData[groupIds[i]], group, this.framework);
- }
- break;
- case "bar":
- // bar needs to be drawn enmasse
- //explicit no break
- default:
- //do nothing...
- }
+ // draw the groups, calculating paths if still necessary.
+ Bars.draw(groupIds, groupsData, this.framework);
+ for (i = 0; i < groupIds.length; i++) {
+ group = this.groups[groupIds[i]];
+ if (groupsData[groupIds[i]].length > 0) {
+ switch (group.options.style) {
+ case "line":
+ if (!paths.hasOwnProperty(groupIds[i])) {
+ paths[groupIds[i]] = Lines.calcPath(groupsData[groupIds[i]], group);
+ }
+ Lines.draw(paths[groupIds[i]], group, this.framework);
+ //explicit no break;
+ case "point":
+ //explicit no break;
+ case "points":
+ if (group.options.style == "point" || group.options.style == "points" || group.options.drawPoints.enabled == true) {
+ Points.draw(groupsData[groupIds[i]], group, this.framework);
+ }
+ break;
+ case "bar":
+ // bar needs to be drawn enmasse
+ //explicit no break
+ default:
+ //do nothing...
}
}
}
@@ -24755,8 +26095,11 @@ return /******/ (function(modules) { // webpackBootstrap
var itemsData = group.getItems();
// optimization for sorted data
if (group.options.sort == true) {
- var first = Math.max(0, util.binarySearchValue(itemsData, minDate, 'x', 'before'));
- var last = Math.min(itemsData.length, util.binarySearchValue(itemsData, maxDate, 'x', 'after') + 1);
+ var dateComparator = function dateComparator(a, b) {
+ return a.getTime() == b.getTime() ? 0 : a < b ? -1 : 1;
+ };
+ var first = Math.max(0, util.binarySearchValue(itemsData, minDate, 'x', 'before', dateComparator));
+ var last = Math.min(itemsData.length, util.binarySearchValue(itemsData, maxDate, 'x', 'after', dateComparator) + 1);
if (last <= 0) {
last = itemsData.length;
}
@@ -24917,6 +26260,8 @@ return /******/ (function(modules) { // webpackBootstrap
this.yAxisRight.drawIcons = false;
}
this.yAxisRight.master = !yAxisLeftUsed;
+ this.yAxisRight.masterAxis = this.yAxisLeft;
+
if (this.yAxisRight.master == false) {
if (yAxisRightUsed == true) {
this.yAxisLeft.lineOffset = this.yAxisRight.width;
@@ -24925,9 +26270,6 @@ return /******/ (function(modules) { // webpackBootstrap
}
resized = this.yAxisLeft.redraw() || resized;
- this.yAxisRight.stepPixels = this.yAxisLeft.stepPixels;
- this.yAxisRight.zeroCrossing = this.yAxisLeft.zeroCrossing;
- this.yAxisRight.amountOfSteps = this.yAxisLeft.amountOfSteps;
resized = this.yAxisRight.redraw() || resized;
} else {
resized = this.yAxisRight.redraw() || resized;
@@ -25010,16 +26352,15 @@ return /******/ (function(modules) { // webpackBootstrap
module.exports = LineGraph;
/***/ },
-/* 51 */
+/* 52 */
/***/ function(module, exports, __webpack_require__) {
'use strict';
var util = __webpack_require__(1);
- var DOMutil = __webpack_require__(7);
- var Component = __webpack_require__(26);
- var DataStep = __webpack_require__(52);
-
+ var DOMutil = __webpack_require__(8);
+ var Component = __webpack_require__(31);
+ var DataScale = __webpack_require__(53);
/**
* A horizontal time axis
* @param {Object} [options] See DataAxis.setOptions for the available
@@ -25036,7 +26377,7 @@ return /******/ (function(modules) { // webpackBootstrap
orientation: 'left', // supported: 'left', 'right'
showMinorLabels: true,
showMajorLabels: true,
- icons: true,
+ icons: false,
majorLinesOffset: 7,
minorLinesOffset: 4,
labelOffsetX: 10,
@@ -25048,14 +26389,14 @@ return /******/ (function(modules) { // webpackBootstrap
left: {
range: { min: undefined, max: undefined },
format: function format(value) {
- return value;
+ return '' + parseFloat(value.toPrecision(3));
},
title: { text: undefined, style: undefined }
},
right: {
range: { min: undefined, max: undefined },
format: function format(value) {
- return value;
+ return '' + parseFloat(value.toPrecision(3));
},
title: { text: undefined, style: undefined }
}
@@ -25071,7 +26412,7 @@ return /******/ (function(modules) { // webpackBootstrap
};
this.dom = {};
-
+ this.scale = undefined;
this.range = { start: 0, end: 0 };
this.options = util.extend({}, this.defaultOptions);
@@ -25089,6 +26430,7 @@ return /******/ (function(modules) { // webpackBootstrap
this.lineOffset = 0;
this.master = true;
+ this.masterAxis = null;
this.svgElements = {};
this.iconsRemoved = false;
@@ -25115,6 +26457,9 @@ return /******/ (function(modules) { // webpackBootstrap
};
DataAxis.prototype.updateGroup = function (label, graphOptions) {
+ if (!this.groups.hasOwnProperty(label)) {
+ this.amountOfGroups += 1;
+ }
this.groups[label] = graphOptions;
};
@@ -25132,10 +26477,9 @@ return /******/ (function(modules) { // webpackBootstrap
redraw = true;
}
var fields = ['orientation', 'showMinorLabels', 'showMajorLabels', 'icons', 'majorLinesOffset', 'minorLinesOffset', 'labelOffsetX', 'labelOffsetY', 'iconWidth', 'width', 'visible', 'left', 'right', 'alignZeros'];
- util.selectiveExtend(fields, this.options, options);
+ util.selectiveDeepExtend(fields, this.options, options);
this.minWidth = Number(('' + this.options.width).replace("px", ""));
-
if (redraw === true && this.dom.frame) {
this.hide();
this.show();
@@ -25212,10 +26556,10 @@ return /******/ (function(modules) { // webpackBootstrap
DataAxis.prototype.show = function () {
this.hidden = false;
if (!this.dom.frame.parentNode) {
- if (this.options.orientation === 'left') {
+ if (this.options.rtl) {
this.body.dom.left.appendChild(this.dom.frame);
} else {
- this.body.dom.right.appendChild(this.dom.frame);
+ this.body.dom.left.appendChild(this.dom.frame);
}
}
@@ -25245,11 +26589,6 @@ return /******/ (function(modules) { // webpackBootstrap
* @param end
*/
DataAxis.prototype.setRange = function (start, end) {
- if (this.master === false && this.options.alignZeros === true && this.zeroCrossing != -1) {
- if (start > 0) {
- start = 0;
- }
- }
this.range.start = start;
this.range.end = end;
};
@@ -25343,95 +26682,55 @@ return /******/ (function(modules) { // webpackBootstrap
* @private
*/
DataAxis.prototype._redrawLabels = function () {
+ var _this = this;
+
var resized = false;
DOMutil.prepareElements(this.DOMelements.lines);
DOMutil.prepareElements(this.DOMelements.labels);
var orientation = this.options['orientation'];
+ var customRange = this.options[orientation].range != undefined ? this.options[orientation].range : {};
- // get the range for the slaved axis
- var step;
- if (this.master === false) {
- var stepSize, rangeStart, rangeEnd, minimumStep;
- if (this.zeroCrossing !== -1 && this.options.alignZeros === true) {
- if (this.range.end > 0) {
- stepSize = this.range.end / this.zeroCrossing; // size of one step
- rangeStart = this.range.end - this.amountOfSteps * stepSize;
- rangeEnd = this.range.end;
- } else {
- // all of the range (including start) has to be done before the zero crossing.
- stepSize = -1 * this.range.start / (this.amountOfSteps - this.zeroCrossing); // absolute size of a step
- rangeStart = this.range.start;
- rangeEnd = this.range.start + stepSize * this.amountOfSteps;
- }
- } else {
- rangeStart = this.range.start;
- rangeEnd = this.range.end;
- }
- minimumStep = this.stepPixels;
- } else {
- // calculate range and step (step such that we have space for 7 characters per label)
- minimumStep = this.props.majorCharHeight;
- rangeStart = this.range.start;
- rangeEnd = this.range.end;
+ //Override range with manual options:
+ var autoScaleEnd = true;
+ if (customRange.max != undefined) {
+ this.range.end = customRange.max;
+ autoScaleEnd = false;
+ }
+ var autoScaleStart = true;
+ if (customRange.min != undefined) {
+ this.range.start = customRange.min;
+ autoScaleStart = false;
}
- this.step = step = new DataStep(rangeStart, rangeEnd, minimumStep, this.dom.frame.offsetHeight, this.options[this.options.orientation].range, this.options[this.options.orientation].format, this.master === false && this.options.alignZeros // does the step have to align zeros? only if not master and the options is on
- );
+ this.scale = new DataScale(this.range.start, this.range.end, autoScaleStart, autoScaleEnd, this.dom.frame.offsetHeight, this.props.majorCharHeight, this.options.alignZeros, this.options[orientation].format);
- // the slave axis needs to use the same horizontal lines as the master axis.
- if (this.master === true) {
- this.stepPixels = this.dom.frame.offsetHeight / step.marginRange * step.step;
- this.amountOfSteps = Math.ceil(this.dom.frame.offsetHeight / this.stepPixels);
- } else {
- // align with zero
- if (this.options.alignZeros === true && this.zeroCrossing !== -1) {
- // distance is the amount of steps away from the zero crossing we are.
- var distance = (step.current - this.zeroCrossing * step.step) / step.step;
- this.step.shift(distance);
- }
+ if (this.master === false && this.masterAxis != undefined) {
+ this.scale.followScale(this.masterAxis.scale);
}
- // value at the bottom of the SVG
- this.valueAtBottom = step.marginEnd;
-
+ //Is updated in side-effect of _redrawLabel():
this.maxLabelSize = 0;
- var y = 0; // init value
- var stepIndex = 0; // init value
- var isMajor = false; // init value
- while (stepIndex < this.amountOfSteps) {
- y = Math.round(stepIndex * this.stepPixels);
- isMajor = step.isMajor();
- if (stepIndex > 0 && stepIndex !== this.amountOfSteps) {
- if (this.options['showMinorLabels'] && isMajor === false || this.master === false && this.options['showMinorLabels'] === true) {
- this._redrawLabel(y - 2, step.getCurrent(), orientation, 'vis-y-axis vis-minor', this.props.minorCharHeight);
+ var lines = this.scale.getLines();
+ lines.forEach(function (line) {
+ var y = line.y;
+ var isMajor = line.major;
+ if (_this.options['showMinorLabels'] && isMajor === false) {
+ _this._redrawLabel(y - 2, line.val, orientation, 'vis-y-axis vis-minor', _this.props.minorCharHeight);
+ }
+ if (isMajor) {
+ if (y >= 0) {
+ _this._redrawLabel(y - 2, line.val, orientation, 'vis-y-axis vis-major', _this.props.majorCharHeight);
}
-
- if (isMajor && this.options['showMajorLabels'] && this.master === true || this.options['showMinorLabels'] === false && this.master === false && isMajor === true) {
- if (y >= 0) {
- this._redrawLabel(y - 2, step.getCurrent(), orientation, 'vis-y-axis vis-major', this.props.majorCharHeight);
- }
- this._redrawLine(y, orientation, 'vis-grid vis-horizontal vis-major', this.options.majorLinesOffset, this.props.majorLineWidth);
+ }
+ if (_this.master === true) {
+ if (isMajor) {
+ _this._redrawLine(y, orientation, 'vis-grid vis-horizontal vis-major', _this.options.majorLinesOffset, _this.props.majorLineWidth);
} else {
- this._redrawLine(y, orientation, 'vis-grid vis-horizontal vis-minor', this.options.minorLinesOffset, this.props.minorLineWidth);
+ _this._redrawLine(y, orientation, 'vis-grid vis-horizontal vis-minor', _this.options.minorLinesOffset, _this.props.minorLineWidth);
}
}
-
- // get zero crossing
- if (this.master === true && step.current === 0) {
- this.zeroCrossing = stepIndex;
- }
-
- step.next();
- stepIndex += 1;
- }
-
- // get zero crossing if it's the last step
- if (this.master === true && step.current === 0) {
- this.zeroCrossing = stepIndex;
- }
-
- this.conversionFactor = this.stepPixels / step.step;
+ });
// Note that title is rotated, so we're using the height, not width!
var titleWidth = 0;
@@ -25467,13 +26766,11 @@ return /******/ (function(modules) { // webpackBootstrap
};
DataAxis.prototype.convertValue = function (value) {
- var invertedValue = this.valueAtBottom - value;
- var convertedValue = invertedValue * this.conversionFactor;
- return convertedValue;
+ return this.scale.convertValue(value);
};
DataAxis.prototype.screenToValue = function (x) {
- return this.valueAtBottom - x / this.conversionFactor;
+ return this.scale.screenToValue(x);
};
/**
@@ -25615,97 +26912,78 @@ return /******/ (function(modules) { // webpackBootstrap
module.exports = DataAxis;
/***/ },
-/* 52 */
+/* 53 */
/***/ function(module, exports) {
- /**
- * @constructor DataStep
- * The class DataStep is an iterator for data for the lineGraph. You provide a start data point and an
- * end data point. The class itself determines the best scale (step size) based on the
- * provided start Date, end Date, and minimumStep.
- *
- * If minimumStep is provided, the step size is chosen as close as possible
- * to the minimumStep but larger than minimumStep. If minimumStep is not
- * provided, the scale is set to 1 DAY.
- * The minimumStep should correspond with the onscreen size of about 6 characters
- *
- * Alternatively, you can set a scale by hand.
- * After creation, you can initialize the class by executing first(). Then you
- * can iterate from the start date to the end date via next(). You can check if
- * the end date is reached with the function hasNext(). After each step, you can
- * retrieve the current date via getCurrent().
- * The DataStep has scales ranging from milliseconds, seconds, minutes, hours,
- * days, to years.
- *
- * Version: 1.2
- *
- * @param {Date} [start] The start date, for example new Date(2010, 9, 21)
- * or new Date(2010, 9, 21, 23, 45, 00)
- * @param {Date} [end] The end date
- * @param {Number} [minimumStep] Optional. Minimum step size in milliseconds
- */
'use strict';
- function DataStep(start, end, minimumStep, containerHeight, customRange, formattingFunction, alignZeros) {
- // variables
- this.current = 0;
-
- this.autoScale = true;
- this.stepIndex = 0;
- this.step = 1;
- this.scale = 1;
- this.formattingFunction = formattingFunction;
+ /**
+ * Created by ludo on 25-1-16.
+ */
- this.marginStart;
- this.marginEnd;
- this.deadSpace = 0;
+ 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];
this.majorSteps = [1, 2, 5, 10];
this.minorSteps = [0.25, 0.5, 1, 2];
+ this.customLines = null;
- this.alignZeros = alignZeros;
+ this.containerHeight = containerHeight;
+ this.majorCharHeight = majorCharHeight;
+ this._start = start;
+ this._end = end;
- this.setRange(start, end, minimumStep, containerHeight, customRange);
- }
+ this.scale = 1;
+ this.minorStepIdx = -1;
+ this.magnitudefactor = 1;
+ this.determineScale();
- /**
- * Set a new range
- * If minimumStep is provided, the step size is chosen as close as possible
- * to the minimumStep but larger than minimumStep. If minimumStep is not
- * provided, the scale is set to 1 DAY.
- * The minimumStep should correspond with the onscreen size of about 6 characters
- * @param {Number} [start] The start date and time.
- * @param {Number} [end] The end date and time.
- * @param {Number} [minimumStep] Optional. Minimum step size in milliseconds
- */
- DataStep.prototype.setRange = function (start, end, minimumStep, containerHeight, customRange) {
- this._start = customRange.min === undefined ? start : customRange.min;
- this._end = customRange.max === undefined ? end : customRange.max;
- if (this._start === this._end) {
- this._start = customRange.min === undefined ? this._start - 0.75 : this._start;
- this._end = customRange.max === undefined ? this._end + 1 : this._end;;
- }
+ this.zeroAlign = zeroAlign;
+ this.autoScaleStart = autoScaleStart;
+ this.autoScaleEnd = autoScaleEnd;
- if (this.autoScale === true) {
- this.setMinimumStep(minimumStep, containerHeight);
+ this.formattingFunction = formattingFunction;
+
+ if (autoScaleStart || autoScaleEnd) {
+ var me = this;
+ var roundToMinor = function roundToMinor(value) {
+ var rounded = value - value % (me.magnitudefactor * me.minorSteps[me.minorStepIdx]);
+ if (value % (me.magnitudefactor * me.minorSteps[me.minorStepIdx]) > 0.5 * (me.magnitudefactor * me.minorSteps[me.minorStepIdx])) {
+ return rounded + me.magnitudefactor * me.minorSteps[me.minorStepIdx];
+ } else {
+ return rounded;
+ }
+ };
+ if (autoScaleStart) {
+ this._start -= this.magnitudefactor * 2 * this.minorSteps[this.minorStepIdx];
+ this._start = roundToMinor(this._start);
+ }
+
+ if (autoScaleEnd) {
+ this._end += this.magnitudefactor * this.minorSteps[this.minorStepIdx];
+ this._end = roundToMinor(this._end);
+ }
+ this.determineScale();
}
+ }
- this.setFirst(customRange);
+ DataScale.prototype.setCharHeight = function (majorCharHeight) {
+ this.majorCharHeight = majorCharHeight;
};
- /**
- * Automatically determine the scale that bests fits the provided minimum step
- * @param {Number} [minimumStep] The minimum step size in pixels
- */
- DataStep.prototype.setMinimumStep = function (minimumStep, containerHeight) {
- // round to floor
+ DataScale.prototype.setHeight = function (containerHeight) {
+ this.containerHeight = containerHeight;
+ };
+
+ DataScale.prototype.determineScale = function () {
var range = this._end - this._start;
- var safeRange = range * 1.2;
- var minimumStepValue = minimumStep * (safeRange / containerHeight);
- var orderOfMagnitude = Math.round(Math.log(safeRange) / Math.LN10);
+ this.scale = this.containerHeight / range;
+ var minimumStepValue = this.majorCharHeight / this.scale;
+ var orderOfMagnitude = range > 0 ? Math.round(Math.log(range) / Math.LN10) : 0;
- var minorStepIdx = -1;
- var magnitudefactor = Math.pow(10, orderOfMagnitude);
+ this.minorStepIdx = -1;
+ this.magnitudefactor = Math.pow(10, orderOfMagnitude);
var start = 0;
if (orderOfMagnitude < 0) {
@@ -25713,13 +26991,13 @@ return /******/ (function(modules) { // webpackBootstrap
}
var solutionFound = false;
- for (var i = start; Math.abs(i) <= Math.abs(orderOfMagnitude); i++) {
- magnitudefactor = Math.pow(10, i);
+ for (var l = start; Math.abs(l) <= Math.abs(orderOfMagnitude); l++) {
+ this.magnitudefactor = Math.pow(10, l);
for (var j = 0; j < this.minorSteps.length; j++) {
- var stepSize = magnitudefactor * this.minorSteps[j];
+ var stepSize = this.magnitudefactor * this.minorSteps[j];
if (stepSize >= minimumStepValue) {
solutionFound = true;
- minorStepIdx = j;
+ this.minorStepIdx = j;
break;
}
}
@@ -25727,83 +27005,22 @@ return /******/ (function(modules) { // webpackBootstrap
break;
}
}
- this.stepIndex = minorStepIdx;
- this.scale = magnitudefactor;
- this.step = magnitudefactor * this.minorSteps[minorStepIdx];
- };
-
- /**
- * Round the current date to the first minor date value
- * This must be executed once when the current date is set to start Date
- */
- DataStep.prototype.setFirst = function (customRange) {
- if (customRange === undefined) {
- customRange = {};
- }
-
- var niceStart = customRange.min === undefined ? this._start - this.scale * 2 * this.minorSteps[this.stepIndex] : customRange.min;
- var niceEnd = customRange.max === undefined ? this._end + this.scale * this.minorSteps[this.stepIndex] : customRange.max;
-
- this.marginEnd = customRange.max === undefined ? this.roundToMinor(niceEnd) : customRange.max;
- this.marginStart = customRange.min === undefined ? this.roundToMinor(niceStart) : customRange.min;
-
- // if we need to align the zero's we need to make sure that there is a zero to use.
- if (this.alignZeros === true && (this.marginEnd - this.marginStart) % this.step != 0) {
- this.marginEnd += this.marginEnd % this.step;
- }
-
- this.deadSpace = this.roundToMinor(niceEnd) - niceEnd + this.roundToMinor(niceStart) - niceStart;
- this.marginRange = this.marginEnd - this.marginStart;
-
- this.current = this.marginEnd;
};
- DataStep.prototype.roundToMinor = function (value) {
- var rounded = value - value % (this.scale * this.minorSteps[this.stepIndex]);
- if (value % (this.scale * this.minorSteps[this.stepIndex]) > 0.5 * (this.scale * this.minorSteps[this.stepIndex])) {
- return rounded + this.scale * this.minorSteps[this.stepIndex];
- } else {
- return rounded;
- }
+ DataScale.prototype.is_major = function (value) {
+ return value % (this.magnitudefactor * this.majorSteps[this.minorStepIdx]) === 0;
};
- /**
- * Check if the there is a next step
- * @return {boolean} true if the current date has not passed the end date
- */
- DataStep.prototype.hasNext = function () {
- return this.current >= this.marginStart;
- };
-
- /**
- * Do the next step
- */
- DataStep.prototype.next = function () {
- var prev = this.current;
- this.current -= this.step;
-
- // safety mechanism: if current time is still unchanged, move to the end
- if (this.current === prev) {
- this.current = this._end;
- }
+ DataScale.prototype.getStep = function () {
+ return this.magnitudefactor * this.minorSteps[this.minorStepIdx];
};
- /**
- * Do the next step
- */
- DataStep.prototype.previous = function () {
- this.current += this.step;
- this.marginEnd += this.step;
- this.marginRange = this.marginEnd - this.marginStart;
+ DataScale.prototype.getFirstMajor = function () {
+ var majorStep = this.magnitudefactor * this.majorSteps[this.minorStepIdx];
+ return this.convertValue(this._start + (majorStep - this._start % majorStep) % majorStep);
};
- /**
- * Get the current datetime
- * @return {String} current The current date
- */
- DataStep.prototype.getCurrent = function () {
- // prevent round-off errors when close to zero
- var current = Math.abs(this.current) < this.step / 2 ? 0 : this.current;
+ DataScale.prototype.formatValue = function (current) {
var returnValue = current.toPrecision(5);
if (typeof this.formattingFunction === 'function') {
returnValue = this.formattingFunction(current);
@@ -25818,40 +27035,137 @@ return /******/ (function(modules) { // webpackBootstrap
}
};
- /**
- * Check if the current value is a major value (for example when the step
- * is DAY, a major value is each first day of the MONTH)
- * @return {boolean} true if current date is major, else false.
- */
- DataStep.prototype.isMajor = function () {
- return this.current % (this.scale * this.majorSteps[this.stepIndex]) === 0;
+ DataScale.prototype.getLines = function () {
+ var lines = [];
+ var step = this.getStep();
+ var bottomOffset = (step - this._start % step) % step;
+ for (var i = this._start + bottomOffset; this._end - i > 0.00001; i += step) {
+ if (i != this._start) {
+ //Skip the bottom line
+ lines.push({ major: this.is_major(i), y: this.convertValue(i), val: this.formatValue(i) });
+ }
+ }
+ return lines;
};
- DataStep.prototype.shift = function (steps) {
- if (steps < 0) {
- for (var i = 0; i < -steps; i++) {
- this.previous();
+ DataScale.prototype.followScale = function (other) {
+ var oldStepIdx = this.minorStepIdx;
+ var oldStart = this._start;
+ var oldEnd = this._end;
+
+ var me = this;
+ var increaseMagnitude = function increaseMagnitude() {
+ me.magnitudefactor *= 2;
+ };
+ var decreaseMagnitude = function decreaseMagnitude() {
+ me.magnitudefactor /= 2;
+ };
+
+ 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();
+ }
+ } 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();
+ var otherZero = other.convertValue(0);
+ var otherStep = other.getStep() * other.scale;
+
+ var done = false;
+ var count = 0;
+ //Loop until magnitude is correct for given constrains.
+ while (!done && count++ < 5) {
+
+ //Get my stats:
+ this.scale = otherStep / (this.minorSteps[this.minorStepIdx] * this.magnitudefactor);
+ var newRange = this.containerHeight / this.scale;
+
+ //For the case the magnitudefactor has changed:
+ this._start = oldStart;
+ this._end = this._start + newRange;
+
+ var myOriginalZero = this._end * this.scale;
+ var majorStep = this.magnitudefactor * this.majorSteps[this.minorStepIdx];
+ var majorOffset = this.getFirstMajor() - other.getFirstMajor();
+
+ if (this.zeroAlign) {
+ var zeroOffset = otherZero - myOriginalZero;
+ this._end += zeroOffset / this.scale;
+ this._start = this._end - newRange;
+ } else {
+ if (!this.autoScaleStart) {
+ this._start += majorStep - majorOffset / this.scale;
+ this._end = this._start + newRange;
+ } else {
+ this._start -= majorOffset / this.scale;
+ this._end = this._start + newRange;
+ }
}
- } else if (steps > 0) {
- for (var i = 0; i < steps; i++) {
- this.next();
+ if (!this.autoScaleEnd && this._end > oldEnd + 0.00001) {
+ //Need to decrease magnitude to prevent scale overshoot! (end)
+ decreaseMagnitude();
+ done = false;
+ continue;
}
+ if (!this.autoScaleStart && this._start < oldStart - 0.00001) {
+ if (this.zeroAlign && oldStart >= 0) {
+ console.warn("Can't adhere to given 'min' range, due to zeroalign");
+ } else {
+ //Need to decrease magnitude to prevent scale overshoot! (start)
+ decreaseMagnitude();
+ done = false;
+ continue;
+ }
+ }
+ if (this.autoScaleStart && this.autoScaleEnd && newRange < oldEnd - oldStart) {
+ increaseMagnitude();
+ done = false;
+ continue;
+ }
+ done = true;
}
};
- module.exports = DataStep;
+ DataScale.prototype.convertValue = function (value) {
+ return this.containerHeight - (value - this._start) * this.scale;
+ };
+
+ DataScale.prototype.screenToValue = function (pixels) {
+ return (this.containerHeight - pixels) / this.scale + this._start;
+ };
+
+ module.exports = DataScale;
/***/ },
-/* 53 */
+/* 54 */
/***/ 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 util = __webpack_require__(1);
- var DOMutil = __webpack_require__(7);
- var Bars = __webpack_require__(54);
- var Lines = __webpack_require__(56);
- var Points = __webpack_require__(55);
+ var DOMutil = __webpack_require__(8);
+ var Bars = __webpack_require__(55);
+ var Lines = __webpack_require__(57);
+ var Points = __webpack_require__(56);
/**
* /**
@@ -25865,7 +27179,7 @@ return /******/ (function(modules) { // webpackBootstrap
*/
function GraphGroup(group, groupId, options, groupsUsingDefaultStyles) {
this.id = groupId;
- var fields = ['sampling', 'style', 'sort', 'yAxisOrientation', 'barChart', 'drawPoints', 'shaded', 'interpolation', 'zIndex'];
+ var fields = ['sampling', 'style', 'sort', 'yAxisOrientation', 'barChart', 'drawPoints', 'shaded', 'interpolation', 'zIndex', 'excludeFromStacking', 'excludeFromLegend'];
this.options = util.selectiveBridgeObject(fields, options);
this.usingDefaultStyle = group.className === undefined;
this.groupsUsingDefaultStyles = groupsUsingDefaultStyles;
@@ -25913,7 +27227,7 @@ return /******/ (function(modules) { // webpackBootstrap
*/
GraphGroup.prototype.setOptions = function (options) {
if (options !== undefined) {
- var fields = ['sampling', 'style', 'sort', 'yAxisOrientation', 'barChart', 'excludeFromLegend', 'excludeFromStacking', 'zIndex'];
+ var fields = ['sampling', 'style', 'sort', 'yAxisOrientation', 'barChart', 'zIndex', 'excludeFromStacking', 'excludeFromLegend'];
util.selectiveDeepExtend(fields, this.options, options);
// if the group's drawPoints is a function delegate the callback to the onRender property
@@ -25928,7 +27242,7 @@ return /******/ (function(modules) { // webpackBootstrap
util.mergeOptions(this.options, options, 'shaded');
if (options.interpolation) {
- if (typeof options.interpolation == 'object') {
+ if (_typeof(options.interpolation) == 'object') {
if (options.interpolation.parametrization) {
if (options.interpolation.parametrization == 'uniform') {
this.options.interpolation.alpha = 0;
@@ -26003,13 +27317,13 @@ return /******/ (function(modules) { // webpackBootstrap
module.exports = GraphGroup;
/***/ },
-/* 54 */
+/* 55 */
/***/ function(module, exports, __webpack_require__) {
'use strict';
- var DOMutil = __webpack_require__(7);
- var Points = __webpack_require__(55);
+ var DOMutil = __webpack_require__(8);
+ var Points = __webpack_require__(56);
function Bargraph(groupId, options) {}
@@ -26101,7 +27415,7 @@ return /******/ (function(modules) { // webpackBootstrap
// plot barchart
for (i = 0; i < combinedData.length; i++) {
group = framework.groups[combinedData[i].groupId];
- var minWidth = 0.1 * group.options.barChart.width;
+ var minWidth = group.options.barChart.minWidth != undefined ? group.options.barChart.minWidth : 0.1 * group.options.barChart.width;
key = combinedData[i].screen_x;
var heightOffset = 0;
@@ -26109,9 +27423,6 @@ return /******/ (function(modules) { // webpackBootstrap
if (i + 1 < combinedData.length) {
coreDistance = Math.abs(combinedData[i + 1].screen_x - key);
}
- if (i > 0) {
- coreDistance = Math.min(coreDistance, Math.abs(combinedData[i - 1].screen_x - key));
- }
drawData = Bargraph._getSafeDrawData(coreDistance, group, minWidth);
} else {
var nextKey = i + (intersections[key].amount - intersections[key].resolved);
@@ -26119,13 +27430,10 @@ return /******/ (function(modules) { // webpackBootstrap
if (nextKey < combinedData.length) {
coreDistance = Math.abs(combinedData[nextKey].screen_x - key);
}
- if (prevKey > 0) {
- coreDistance = Math.min(coreDistance, Math.abs(combinedData[prevKey].screen_x - key));
- }
drawData = Bargraph._getSafeDrawData(coreDistance, group, minWidth);
intersections[key].resolved += 1;
- if (group.options.stack === true) {
+ if (group.options.stack === true && group.options.excludeFromStacking !== true) {
if (combinedData[i].screen_y < group.zeroPosition) {
heightOffset = intersections[key].accumulatedNegative;
intersections[key].accumulatedNegative += group.zeroPosition - combinedData[i].screen_y;
@@ -26136,11 +27444,6 @@ return /******/ (function(modules) { // webpackBootstrap
} else if (group.options.barChart.sideBySide === true) {
drawData.width = drawData.width / intersections[key].amount;
drawData.offset += intersections[key].resolved * drawData.width - 0.5 * drawData.width * (intersections[key].amount + 1);
- if (group.options.barChart.align === 'left') {
- drawData.offset -= 0.5 * drawData.width;
- } else if (group.options.barChart.align === 'right') {
- drawData.offset += 0.5 * drawData.width;
- }
}
}
DOMutil.drawBar(combinedData[i].screen_x + drawData.offset, combinedData[i].screen_y - heightOffset, drawData.width, group.zeroPosition - combinedData[i].screen_y, group.className + ' vis-bar', framework.svgElements, framework.svg, group.style);
@@ -26275,12 +27578,14 @@ return /******/ (function(modules) { // webpackBootstrap
module.exports = Bargraph;
/***/ },
-/* 55 */
+/* 56 */
/***/ function(module, exports, __webpack_require__) {
'use strict';
- var DOMutil = __webpack_require__(7);
+ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol ? "symbol" : typeof obj; };
+
+ var DOMutil = __webpack_require__(8);
function Points(groupId, options) {}
@@ -26303,7 +27608,7 @@ return /******/ (function(modules) { // webpackBootstrap
DOMutil.drawPoint(dataset[i].screen_x + offset, dataset[i].screen_y, getGroupTemplate(group), framework.svgElements, framework.svg, dataset[i].label);
} else {
var callbackResult = callback(dataset[i], group); // result might be true, false or an object
- if (callbackResult === true || typeof callbackResult === 'object') {
+ if (callbackResult === true || (typeof callbackResult === 'undefined' ? 'undefined' : _typeof(callbackResult)) === 'object') {
DOMutil.drawPoint(dataset[i].screen_x + offset, dataset[i].screen_y, getGroupTemplate(group, callbackResult), framework.svgElements, framework.svg, dataset[i].label);
}
}
@@ -26352,12 +27657,12 @@ return /******/ (function(modules) { // webpackBootstrap
module.exports = Points;
/***/ },
-/* 56 */
+/* 57 */
/***/ function(module, exports, __webpack_require__) {
"use strict";
- var DOMutil = __webpack_require__(7);
+ var DOMutil = __webpack_require__(8);
function Line(groupId, options) {}
@@ -26641,14 +27946,14 @@ return /******/ (function(modules) { // webpackBootstrap
module.exports = Line;
/***/ },
-/* 57 */
+/* 58 */
/***/ function(module, exports, __webpack_require__) {
'use strict';
var util = __webpack_require__(1);
- var DOMutil = __webpack_require__(7);
- var Component = __webpack_require__(26);
+ var DOMutil = __webpack_require__(8);
+ var Component = __webpack_require__(31);
/**
* Legend for Graph2d
@@ -26656,7 +27961,7 @@ return /******/ (function(modules) { // webpackBootstrap
function Legend(body, options, side, linegraphOptions) {
this.body = body;
this.defaultOptions = {
- enabled: true,
+ enabled: false,
icons: true,
iconSize: 20,
iconSpacing: 6,
@@ -26666,9 +27971,10 @@ return /******/ (function(modules) { // webpackBootstrap
},
right: {
visible: true,
- position: 'top-left' // top/bottom - left,center,right
+ position: 'top-right' // top/bottom - left,center,right
}
};
+
this.side = side;
this.options = util.extend({}, this.defaultOptions);
this.linegraphOptions = linegraphOptions;
@@ -26859,9 +28165,14 @@ return /******/ (function(modules) { // webpackBootstrap
module.exports = Legend;
/***/ },
-/* 58 */
+/* 59 */
/***/ function(module, exports) {
+ 'use strict';
+
+ Object.defineProperty(exports, "__esModule", {
+ value: true
+ });
/**
* This object contains all possible options. It will check if the types are correct, if required if the option is one
* of the allowed values.
@@ -26869,11 +28180,6 @@ return /******/ (function(modules) { // webpackBootstrap
* __any__ means that the name of the property does not matter.
* __type__ is a required field for all objects and contains the allowed types of all objects
*/
- 'use strict';
-
- Object.defineProperty(exports, '__esModule', {
- value: true
- });
var string = 'string';
var boolean = 'boolean';
var number = 'number';
@@ -26908,6 +28214,7 @@ return /******/ (function(modules) { // webpackBootstrap
style: { string: ['line', 'bar', 'points'] }, // line, bar
barChart: {
width: { number: number },
+ minWidth: { number: number },
sideBySide: { boolean: boolean },
align: { string: ['left', 'center', 'right'] },
__type__: { object: object }
@@ -27047,6 +28354,7 @@ return /******/ (function(modules) { // webpackBootstrap
style: ['line', 'bar', 'points'], // line, bar
barChart: {
width: [50, 5, 100, 5],
+ minWidth: [50, 5, 100, 5],
sideBySide: false,
align: ['left', 'center', 'right'] // left, center, right
},
@@ -27143,75 +28451,125 @@ return /******/ (function(modules) { // webpackBootstrap
exports.configureOptions = configureOptions;
/***/ },
-/* 59 */
+/* 60 */
+/***/ function(module, exports, __webpack_require__) {
+
+ 'use strict';
+
+ // utils
+ exports.util = __webpack_require__(1);
+ exports.DOMutil = __webpack_require__(8);
+
+ // data
+ exports.DataSet = __webpack_require__(9);
+ exports.DataView = __webpack_require__(11);
+ exports.Queue = __webpack_require__(10);
+
+ // Network
+ exports.Network = __webpack_require__(61);
+ exports.network = {
+ Images: __webpack_require__(62),
+ dotparser: __webpack_require__(118),
+ gephiParser: __webpack_require__(119),
+ allOptions: __webpack_require__(114)
+ };
+ exports.network.convertDot = function (input) {
+ return exports.network.dotparser.DOTToGraph(input);
+ };
+ exports.network.convertGephi = function (input, options) {
+ return exports.network.gephiParser.parseGephi(input, options);
+ };
+
+ // bundled external libraries
+ exports.moment = __webpack_require__(2);
+ exports.Hammer = __webpack_require__(20);
+ exports.keycharm = __webpack_require__(23);
+
+/***/ },
+/* 61 */
/***/ function(module, exports, __webpack_require__) {
- // Load custom shapes into CanvasRenderingContext2D
'use strict';
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
+ var _Images = __webpack_require__(62);
- var _modulesGroups = __webpack_require__(60);
+ var _Images2 = _interopRequireDefault(_Images);
- var _modulesGroups2 = _interopRequireDefault(_modulesGroups);
+ var _Groups = __webpack_require__(63);
- var _modulesNodesHandler = __webpack_require__(61);
+ var _Groups2 = _interopRequireDefault(_Groups);
- var _modulesNodesHandler2 = _interopRequireDefault(_modulesNodesHandler);
+ var _NodesHandler = __webpack_require__(64);
- var _modulesEdgesHandler = __webpack_require__(81);
+ var _NodesHandler2 = _interopRequireDefault(_NodesHandler);
- var _modulesEdgesHandler2 = _interopRequireDefault(_modulesEdgesHandler);
+ var _EdgesHandler = __webpack_require__(84);
- var _modulesPhysicsEngine = __webpack_require__(90);
+ var _EdgesHandler2 = _interopRequireDefault(_EdgesHandler);
- var _modulesPhysicsEngine2 = _interopRequireDefault(_modulesPhysicsEngine);
+ var _PhysicsEngine = __webpack_require__(93);
- var _modulesClustering = __webpack_require__(99);
+ var _PhysicsEngine2 = _interopRequireDefault(_PhysicsEngine);
- var _modulesClustering2 = _interopRequireDefault(_modulesClustering);
+ var _Clustering = __webpack_require__(102);
- var _modulesCanvasRenderer = __webpack_require__(102);
+ var _Clustering2 = _interopRequireDefault(_Clustering);
- var _modulesCanvasRenderer2 = _interopRequireDefault(_modulesCanvasRenderer);
+ var _CanvasRenderer = __webpack_require__(105);
- var _modulesCanvas = __webpack_require__(103);
+ var _CanvasRenderer2 = _interopRequireDefault(_CanvasRenderer);
- var _modulesCanvas2 = _interopRequireDefault(_modulesCanvas);
+ var _Canvas = __webpack_require__(106);
- var _modulesView = __webpack_require__(104);
+ var _Canvas2 = _interopRequireDefault(_Canvas);
- var _modulesView2 = _interopRequireDefault(_modulesView);
+ var _View = __webpack_require__(107);
- var _modulesInteractionHandler = __webpack_require__(105);
+ var _View2 = _interopRequireDefault(_View);
- var _modulesInteractionHandler2 = _interopRequireDefault(_modulesInteractionHandler);
+ var _InteractionHandler = __webpack_require__(108);
- var _modulesSelectionHandler = __webpack_require__(108);
+ var _InteractionHandler2 = _interopRequireDefault(_InteractionHandler);
- var _modulesSelectionHandler2 = _interopRequireDefault(_modulesSelectionHandler);
+ var _SelectionHandler = __webpack_require__(111);
- var _modulesLayoutEngine = __webpack_require__(109);
+ var _SelectionHandler2 = _interopRequireDefault(_SelectionHandler);
- var _modulesLayoutEngine2 = _interopRequireDefault(_modulesLayoutEngine);
+ var _LayoutEngine = __webpack_require__(112);
- var _modulesManipulationSystem = __webpack_require__(110);
+ var _LayoutEngine2 = _interopRequireDefault(_LayoutEngine);
- var _modulesManipulationSystem2 = _interopRequireDefault(_modulesManipulationSystem);
+ var _ManipulationSystem = __webpack_require__(113);
- var _sharedConfigurator = __webpack_require__(45);
+ var _ManipulationSystem2 = _interopRequireDefault(_ManipulationSystem);
- var _sharedConfigurator2 = _interopRequireDefault(_sharedConfigurator);
+ var _Configurator = __webpack_require__(26);
- var _sharedValidator = __webpack_require__(47);
+ var _Configurator2 = _interopRequireDefault(_Configurator);
- var _sharedValidator2 = _interopRequireDefault(_sharedValidator);
+ var _Validator = __webpack_require__(29);
- var _optionsJs = __webpack_require__(111);
+ var _Validator2 = _interopRequireDefault(_Validator);
- var _modulesKamadaKawaiJs = __webpack_require__(112);
+ var _options = __webpack_require__(114);
- var _modulesKamadaKawaiJs2 = _interopRequireDefault(_modulesKamadaKawaiJs);
+ var _KamadaKawai = __webpack_require__(115);
+
+ var _KamadaKawai2 = _interopRequireDefault(_KamadaKawai);
+
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
+
+ // Load custom shapes into CanvasRenderingContext2D
+ __webpack_require__(117);
+
+ 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);
/**
* @constructor Network
@@ -27224,19 +28582,6 @@ return /******/ (function(modules) { // webpackBootstrap
* {Array} edges
* @param {Object} options Options
*/
- __webpack_require__(114);
-
- var Emitter = __webpack_require__(12);
- var Hammer = __webpack_require__(20);
- var util = __webpack_require__(1);
- var DataSet = __webpack_require__(8);
- var DataView = __webpack_require__(10);
- var dotparser = __webpack_require__(115);
- var gephiParser = __webpack_require__(116);
- var Images = __webpack_require__(117);
- var Activator = __webpack_require__(40);
- var locales = __webpack_require__(118);
-
function Network(container, data, options) {
var _this = this;
@@ -27300,24 +28645,24 @@ return /******/ (function(modules) { // webpackBootstrap
this.bindEventListeners();
// setting up all modules
- this.images = new Images(function () {
+ this.images = new _Images2.default(function () {
return _this.body.emitter.emit("_requestRedraw");
}); // object with images
- this.groups = new _modulesGroups2['default'](); // object with groups
- this.canvas = new _modulesCanvas2['default'](this.body); // DOM handler
- this.selectionHandler = new _modulesSelectionHandler2['default'](this.body, this.canvas); // Selection handler
- this.interactionHandler = new _modulesInteractionHandler2['default'](this.body, this.canvas, this.selectionHandler); // Interaction handler handles all the hammer bindings (that are bound by canvas), key
- this.view = new _modulesView2['default'](this.body, this.canvas); // camera handler, does animations and zooms
- this.renderer = new _modulesCanvasRenderer2['default'](this.body, this.canvas); // renderer, starts renderloop, has events that modules can hook into
- this.physics = new _modulesPhysicsEngine2['default'](this.body); // physics engine, does all the simulations
- this.layoutEngine = new _modulesLayoutEngine2['default'](this.body); // layout engine for inital layout and hierarchical layout
- this.clustering = new _modulesClustering2['default'](this.body); // clustering api
- this.manipulation = new _modulesManipulationSystem2['default'](this.body, this.canvas, this.selectionHandler); // data manipulation system
-
- this.nodesHandler = new _modulesNodesHandler2['default'](this.body, this.images, this.groups, this.layoutEngine); // Handle adding, deleting and updating of nodes as well as global options
- this.edgesHandler = new _modulesEdgesHandler2['default'](this.body, this.images, this.groups); // Handle adding, deleting and updating of edges as well as global options
-
- this.body.modules["kamadaKawai"] = new _modulesKamadaKawaiJs2['default'](this.body, 150, 0.05); // Layouting algorithm.
+ this.groups = new _Groups2.default(); // object with groups
+ this.canvas = new _Canvas2.default(this.body); // DOM handler
+ this.selectionHandler = new _SelectionHandler2.default(this.body, this.canvas); // Selection handler
+ this.interactionHandler = new _InteractionHandler2.default(this.body, this.canvas, this.selectionHandler); // Interaction handler handles all the hammer bindings (that are bound by canvas), key
+ this.view = new _View2.default(this.body, this.canvas); // camera handler, does animations and zooms
+ this.renderer = new _CanvasRenderer2.default(this.body, this.canvas); // renderer, starts renderloop, has events that modules can hook into
+ this.physics = new _PhysicsEngine2.default(this.body); // physics engine, does all the simulations
+ this.layoutEngine = new _LayoutEngine2.default(this.body); // layout engine for inital layout and hierarchical layout
+ this.clustering = new _Clustering2.default(this.body); // clustering api
+ this.manipulation = new _ManipulationSystem2.default(this.body, this.canvas, this.selectionHandler); // data manipulation system
+
+ this.nodesHandler = new _NodesHandler2.default(this.body, this.images, this.groups, this.layoutEngine); // Handle adding, deleting and updating of nodes as well as global options
+ this.edgesHandler = new _EdgesHandler2.default(this.body, this.images, this.groups); // Handle adding, deleting and updating of edges as well as global options
+
+ this.body.modules["kamadaKawai"] = new _KamadaKawai2.default(this.body, 150, 0.05); // Layouting algorithm.
this.body.modules["clustering"] = this.clustering;
// create the DOM elements
@@ -27341,10 +28686,9 @@ return /******/ (function(modules) { // webpackBootstrap
var _this2 = this;
if (options !== undefined) {
-
- var errorFound = _sharedValidator2['default'].validate(options, _optionsJs.allOptions);
+ var errorFound = _Validator2.default.validate(options, _options.allOptions);
if (errorFound === true) {
- console.log('%cErrors have been found in the supplied options object.', _sharedValidator.printStyle);
+ console.log('%cErrors have been found in the supplied options object.', _Validator.printStyle);
}
// copy the global fields over
@@ -27377,7 +28721,7 @@ return /******/ (function(modules) { // webpackBootstrap
if ('configure' in options) {
if (!this.configurator) {
- this.configurator = new _sharedConfigurator2['default'](this, this.body.container, _optionsJs.configureOptions, this.canvas.pixelRatio);
+ this.configurator = new _Configurator2.default(this, this.body.container, _options.configureOptions, this.canvas.pixelRatio);
}
this.configurator.setOptions(options.configure);
@@ -27443,7 +28787,7 @@ return /******/ (function(modules) { // webpackBootstrap
for (var nodeId in nodes) {
if (nodes.hasOwnProperty(nodeId)) {
if (nodes[nodeId].options.hidden === false) {
- this.body.nodeIndices.push(nodeId);
+ this.body.nodeIndices.push(nodes[nodeId].id);
}
}
}
@@ -27451,7 +28795,7 @@ return /******/ (function(modules) { // webpackBootstrap
for (var edgeId in edges) {
if (edges.hasOwnProperty(edgeId)) {
if (edges[edgeId].options.hidden === false) {
- this.body.edgeIndices.push(edgeId);
+ this.body.edgeIndices.push(edges[edgeId].id);
}
}
}
@@ -27777,7 +29121,137 @@ return /******/ (function(modules) { // webpackBootstrap
module.exports = Network;
/***/ },
-/* 60 */
+/* 62 */
+/***/ function(module, exports) {
+
+ "use strict";
+
+ Object.defineProperty(exports, "__esModule", {
+ value: true
+ });
+
+ 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; }; }();
+
+ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
+
+ /**
+ * @class Images
+ * This class loads images and keeps them stored.
+ */
+
+ var Images = function () {
+ function Images(callback) {
+ _classCallCheck(this, Images);
+
+ this.images = {};
+ this.imageBroken = {};
+ this.callback = callback;
+ }
+
+ /**
+ * @param {string} url The Url to cache the image as
+ * @return {Image} imageToLoadBrokenUrlOn The image object
+ */
+
+
+ _createClass(Images, [{
+ key: "_addImageToCache",
+ value: function _addImageToCache(url, imageToCache) {
+ // IE11 fix -- thanks dponch!
+ if (imageToCache.width === 0) {
+ document.body.appendChild(imageToCache);
+ imageToCache.width = imageToCache.offsetWidth;
+ imageToCache.height = imageToCache.offsetHeight;
+ document.body.removeChild(imageToCache);
+ }
+
+ this.images[url] = imageToCache;
+ }
+
+ /**
+ * @param {string} url The original Url that failed to load, if the broken image is successfully loaded it will be added to the cache using this Url as the key so that subsequent requests for this Url will return the broken image
+ * @param {string} brokenUrl Url the broken image to try and load
+ * @return {Image} imageToLoadBrokenUrlOn The image object
+ */
+
+ }, {
+ key: "_tryloadBrokenUrl",
+ value: function _tryloadBrokenUrl(url, brokenUrl, imageToLoadBrokenUrlOn) {
+ var _this = this;
+
+ //If any of the parameters aren't specified then exit the function because nothing constructive can be done
+ if (url === undefined || brokenUrl === undefined || imageToLoadBrokenUrlOn === undefined) return;
+
+ //Clear the old subscription to the error event and put a new in place that only handle errors in loading the brokenImageUrl
+ imageToLoadBrokenUrlOn.onerror = function () {
+ console.error("Could not load brokenImage:", brokenUrl);
+ //Add an empty image to the cache so that when subsequent load calls are made for the url we don't try load the image and broken image again
+ _this._addImageToCache(url, new Image());
+ };
+
+ //Set the source of the image to the brokenUrl, this is actually what kicks off the loading of the broken image
+ imageToLoadBrokenUrlOn.src = brokenUrl;
+ }
+
+ /**
+ * @return {Image} imageToRedrawWith The images that will be passed to the callback when it is invoked
+ */
+
+ }, {
+ key: "_redrawWithImage",
+ value: function _redrawWithImage(imageToRedrawWith) {
+ if (this.callback) {
+ this.callback(imageToRedrawWith);
+ }
+ }
+
+ /**
+ * @param {string} url Url of the image
+ * @param {string} brokenUrl Url of an image to use if the url image is not found
+ * @return {Image} img The image object
+ */
+
+ }, {
+ key: "load",
+ value: function load(url, brokenUrl, id) {
+ var _this2 = this;
+
+ //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
+ img.onload = function () {
+ //Add the image to the cache and then request a redraw
+ _this2._addImageToCache(url, img);
+ _this2._redrawWithImage(img);
+ };
+
+ //Subscribe to the event that is raised if the image fails to load
+ img.onerror = function () {
+ console.error("Could not load image:", url);
+ //Try and load the image specified by the brokenUrl using
+ _this2._tryloadBrokenUrl(url, brokenUrl, img);
+ };
+
+ //Set the source of the image to the url, this is actuall what kicks off the loading of the image
+ img.src = url;
+
+ //Return the new image
+ return img;
+ }
+ }]);
+
+ return Images;
+ }();
+
+ exports.default = Images;
+
+/***/ },
+/* 63 */
/***/ function(module, exports, __webpack_require__) {
"use strict";
@@ -27786,7 +29260,7 @@ return /******/ (function(modules) { // webpackBootstrap
value: true
});
- 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 _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; }; }();
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
@@ -27797,7 +29271,7 @@ return /******/ (function(modules) { // webpackBootstrap
* This class can store groups and options specific for groups.
*/
- var Groups = (function () {
+ var Groups = function () {
function Groups() {
_classCallCheck(this, Groups);
@@ -27858,6 +29332,7 @@ return /******/ (function(modules) { // webpackBootstrap
/**
* Clear all groups
*/
+
}, {
key: "clear",
value: function clear() {
@@ -27871,6 +29346,7 @@ return /******/ (function(modules) { // webpackBootstrap
* @param {*} groupname Can be a number, string, Date, etc.
* @return {Object} group The created group, containing all group options
*/
+
}, {
key: "get",
value: function get(groupname) {
@@ -27885,10 +29361,10 @@ return /******/ (function(modules) { // webpackBootstrap
this.groups[groupname] = group;
} else {
// create new group
- var index = this.defaultIndex % this.defaultGroups.length;
+ var _index = this.defaultIndex % this.defaultGroups.length;
this.defaultIndex++;
group = {};
- group.color = this.defaultGroups[index];
+ group.color = this.defaultGroups[_index];
this.groups[groupname] = group;
}
}
@@ -27903,6 +29379,7 @@ return /******/ (function(modules) { // webpackBootstrap
* backgroundColor, etc.
* @return {Object} group The created group object
*/
+
}, {
key: "add",
value: function add(groupName, style) {
@@ -27913,40 +29390,39 @@ return /******/ (function(modules) { // webpackBootstrap
}]);
return Groups;
- })();
+ }();
- exports["default"] = Groups;
- module.exports = exports["default"];
+ exports.default = Groups;
/***/ },
-/* 61 */
+/* 64 */
/***/ function(module, exports, __webpack_require__) {
'use strict';
- Object.defineProperty(exports, '__esModule', {
+ Object.defineProperty(exports, "__esModule", {
value: true
});
- 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 _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; }; }();
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
+ var _Node = __webpack_require__(65);
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }
+ var _Node2 = _interopRequireDefault(_Node);
- var _componentsNode = __webpack_require__(62);
+ var _Label = __webpack_require__(66);
- var _componentsNode2 = _interopRequireDefault(_componentsNode);
+ var _Label2 = _interopRequireDefault(_Label);
- var _componentsSharedLabel = __webpack_require__(63);
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
- var _componentsSharedLabel2 = _interopRequireDefault(_componentsSharedLabel);
+ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
var util = __webpack_require__(1);
- var DataSet = __webpack_require__(8);
- var DataView = __webpack_require__(10);
+ var DataSet = __webpack_require__(9);
+ var DataView = __webpack_require__(11);
- var NodesHandler = (function () {
+ var NodesHandler = function () {
function NodesHandler(body, images, groups, layoutEngine) {
var _this = this;
@@ -28000,7 +29476,7 @@ return /******/ (function(modules) { // webpackBootstrap
background: 'none',
strokeWidth: 0, // px
strokeColor: '#ffffff',
- align: 'horizontal'
+ align: 'center'
},
group: undefined,
hidden: false,
@@ -28037,6 +29513,7 @@ return /******/ (function(modules) { // webpackBootstrap
},
shadow: {
enabled: false,
+ color: 'rgba(0,0,0,0.5)',
size: 10,
x: 5,
y: 5
@@ -28045,6 +29522,7 @@ return /******/ (function(modules) { // webpackBootstrap
shapeProperties: {
borderDashes: false, // only for borders
borderRadius: 6, // only for box shape
+ interpolation: true, // only for image and circularImage shapes
useImageSize: false, // only for image and circularImage shapes
useBorderWithImage: false // only for image shape
},
@@ -28068,6 +29546,9 @@ return /******/ (function(modules) { // webpackBootstrap
this.body.emitter.on('refreshNodes', this.refresh.bind(this));
this.body.emitter.on('refresh', this.refresh.bind(this));
this.body.emitter.on('destroy', function () {
+ util.forEach(_this2.nodesListeners, function (callback, event) {
+ if (_this2.body.data.nodes) _this2.body.data.nodes.off(event, callback);
+ });
delete _this2.body.functions.createNode;
delete _this2.nodesListeners.add;
delete _this2.nodesListeners.update;
@@ -28079,7 +29560,7 @@ return /******/ (function(modules) { // webpackBootstrap
key: 'setOptions',
value: function setOptions(options) {
if (options !== undefined) {
- _componentsNode2['default'].parseOptions(this.options, options);
+ _Node2.default.parseOptions(this.options, options);
// update the shape in all nodes
if (options.shape !== undefined) {
@@ -28092,20 +29573,20 @@ return /******/ (function(modules) { // webpackBootstrap
// update the font in all nodes
if (options.font !== undefined) {
- _componentsSharedLabel2['default'].parseOptions(this.options.font, options);
- for (var nodeId in this.body.nodes) {
- if (this.body.nodes.hasOwnProperty(nodeId)) {
- this.body.nodes[nodeId].updateLabelModule();
- this.body.nodes[nodeId]._reset();
+ _Label2.default.parseOptions(this.options.font, options);
+ for (var _nodeId in this.body.nodes) {
+ if (this.body.nodes.hasOwnProperty(_nodeId)) {
+ this.body.nodes[_nodeId].updateLabelModule();
+ this.body.nodes[_nodeId]._reset();
}
}
}
// update the shape size in all nodes
if (options.size !== undefined) {
- for (var nodeId in this.body.nodes) {
- if (this.body.nodes.hasOwnProperty(nodeId)) {
- this.body.nodes[nodeId]._reset();
+ for (var _nodeId2 in this.body.nodes) {
+ if (this.body.nodes.hasOwnProperty(_nodeId2)) {
+ this.body.nodes[_nodeId2]._reset();
}
}
}
@@ -28122,6 +29603,7 @@ return /******/ (function(modules) { // webpackBootstrap
* @param {Array | DataSet | DataView} nodes The data containing the nodes.
* @private
*/
+
}, {
key: 'setData',
value: function setData(nodes) {
@@ -28176,12 +29658,13 @@ return /******/ (function(modules) { // webpackBootstrap
* @param {Number[] | String[]} ids
* @private
*/
+
}, {
key: 'add',
value: function add(ids) {
var doNotEmit = arguments.length <= 1 || arguments[1] === undefined ? false : arguments[1];
- var id = undefined;
+ var id = void 0;
var newNodes = [];
for (var i = 0; i < ids.length; i++) {
id = ids[i];
@@ -28203,6 +29686,7 @@ return /******/ (function(modules) { // webpackBootstrap
* @param {Number[] | String[]} ids
* @private
*/
+
}, {
key: 'update',
value: function update(ids, changedData) {
@@ -28234,6 +29718,7 @@ return /******/ (function(modules) { // webpackBootstrap
* @param {Number[] | String[]} ids
* @private
*/
+
}, {
key: 'remove',
value: function remove(ids) {
@@ -28252,10 +29737,11 @@ return /******/ (function(modules) { // webpackBootstrap
* @param properties
* @param constructorClass
*/
+
}, {
key: 'create',
value: function create(properties) {
- var constructorClass = arguments.length <= 1 || arguments[1] === undefined ? _componentsNode2['default'] : arguments[1];
+ var constructorClass = arguments.length <= 1 || arguments[1] === undefined ? _Node2.default : arguments[1];
return new constructorClass(properties, this.body, this.images, this.groups, this.options);
}
@@ -28286,6 +29772,7 @@ return /******/ (function(modules) { // webpackBootstrap
* @param ids --> optional, can be array of nodeIds, can be string
* @returns {{}}
*/
+
}, {
key: 'getPositions',
value: function getPositions(ids) {
@@ -28300,14 +29787,14 @@ return /******/ (function(modules) { // webpackBootstrap
}
} else {
if (this.body.nodes[ids] !== undefined) {
- var node = this.body.nodes[ids];
- dataArray[ids] = { x: Math.round(node.x), y: Math.round(node.y) };
+ var _node = this.body.nodes[ids];
+ dataArray[ids] = { x: Math.round(_node.x), y: Math.round(_node.y) };
}
}
} else {
- for (var i = 0; i < this.body.nodeIndices.length; i++) {
- var node = this.body.nodes[this.body.nodeIndices[i]];
- dataArray[this.body.nodeIndices[i]] = { x: Math.round(node.x), y: Math.round(node.y) };
+ for (var _i = 0; _i < this.body.nodeIndices.length; _i++) {
+ var _node2 = this.body.nodes[this.body.nodeIndices[_i]];
+ dataArray[this.body.nodeIndices[_i]] = { x: Math.round(_node2.x), y: Math.round(_node2.y) };
}
}
return dataArray;
@@ -28316,6 +29803,7 @@ return /******/ (function(modules) { // webpackBootstrap
/**
* Load the XY positions of the nodes into the dataset.
*/
+
}, {
key: 'storePositions',
value: function storePositions() {
@@ -28327,7 +29815,7 @@ return /******/ (function(modules) { // webpackBootstrap
if (dataset._data.hasOwnProperty(nodeId)) {
var node = this.body.nodes[nodeId];
if (dataset._data[nodeId].x != Math.round(node.x) || dataset._data[nodeId].y != Math.round(node.y)) {
- dataArray.push({ id: nodeId, x: Math.round(node.x), y: Math.round(node.y) });
+ dataArray.push({ id: node.id, x: Math.round(node.x), y: Math.round(node.y) });
}
}
}
@@ -28339,6 +29827,7 @@ return /******/ (function(modules) { // webpackBootstrap
* @param nodeId
* @returns {j|*}
*/
+
}, {
key: 'getBoundingBox',
value: function getBoundingBox(nodeId) {
@@ -28352,6 +29841,7 @@ return /******/ (function(modules) { // webpackBootstrap
* @param nodeId
* @returns {Array}
*/
+
}, {
key: 'getConnectedNodes',
value: function getConnectedNodes(nodeId) {
@@ -28361,13 +29851,13 @@ return /******/ (function(modules) { // webpackBootstrap
var nodeObj = {}; // used to quickly check if node already exists
for (var i = 0; i < node.edges.length; i++) {
var edge = node.edges[i];
- if (edge.toId == nodeId) {
+ if (edge.toId == node.id) {
// these are double equals since ids can be numeric or string
if (nodeObj[edge.fromId] === undefined) {
nodeList.push(edge.fromId);
nodeObj[edge.fromId] = true;
}
- } else if (edge.fromId == nodeId) {
+ } else if (edge.fromId == node.id) {
// these are double equals since ids can be numeric or string
if (nodeObj[edge.toId] === undefined) {
nodeList.push(edge.toId);
@@ -28384,6 +29874,7 @@ return /******/ (function(modules) { // webpackBootstrap
* @param nodeId
* @returns {*}
*/
+
}, {
key: 'getConnectedEdges',
value: function getConnectedEdges(nodeId) {
@@ -28405,6 +29896,7 @@ return /******/ (function(modules) { // webpackBootstrap
* @param Number x
* @param Number y
*/
+
}, {
key: 'moveNode',
value: function moveNode(nodeId, x, y) {
@@ -28423,90 +29915,89 @@ return /******/ (function(modules) { // webpackBootstrap
}]);
return NodesHandler;
- })();
+ }();
- exports['default'] = NodesHandler;
- module.exports = exports['default'];
+ exports.default = NodesHandler;
/***/ },
-/* 62 */
+/* 65 */
/***/ function(module, exports, __webpack_require__) {
'use strict';
- Object.defineProperty(exports, '__esModule', {
+ Object.defineProperty(exports, "__esModule", {
value: true
});
- 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 _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; }; }();
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
+ var _Label = __webpack_require__(66);
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }
+ var _Label2 = _interopRequireDefault(_Label);
- var _sharedLabel = __webpack_require__(63);
+ var _Box = __webpack_require__(67);
- var _sharedLabel2 = _interopRequireDefault(_sharedLabel);
+ var _Box2 = _interopRequireDefault(_Box);
- var _nodesShapesBox = __webpack_require__(64);
+ var _Circle = __webpack_require__(69);
- var _nodesShapesBox2 = _interopRequireDefault(_nodesShapesBox);
+ var _Circle2 = _interopRequireDefault(_Circle);
- var _nodesShapesCircle = __webpack_require__(66);
+ var _CircularImage = __webpack_require__(71);
- var _nodesShapesCircle2 = _interopRequireDefault(_nodesShapesCircle);
+ var _CircularImage2 = _interopRequireDefault(_CircularImage);
- var _nodesShapesCircularImage = __webpack_require__(68);
+ var _Database = __webpack_require__(72);
- var _nodesShapesCircularImage2 = _interopRequireDefault(_nodesShapesCircularImage);
+ var _Database2 = _interopRequireDefault(_Database);
- var _nodesShapesDatabase = __webpack_require__(69);
+ var _Diamond = __webpack_require__(73);
- var _nodesShapesDatabase2 = _interopRequireDefault(_nodesShapesDatabase);
+ var _Diamond2 = _interopRequireDefault(_Diamond);
- var _nodesShapesDiamond = __webpack_require__(70);
+ var _Dot = __webpack_require__(75);
- var _nodesShapesDiamond2 = _interopRequireDefault(_nodesShapesDiamond);
+ var _Dot2 = _interopRequireDefault(_Dot);
- var _nodesShapesDot = __webpack_require__(72);
+ var _Ellipse = __webpack_require__(76);
- var _nodesShapesDot2 = _interopRequireDefault(_nodesShapesDot);
+ var _Ellipse2 = _interopRequireDefault(_Ellipse);
- var _nodesShapesEllipse = __webpack_require__(73);
+ var _Icon = __webpack_require__(77);
- var _nodesShapesEllipse2 = _interopRequireDefault(_nodesShapesEllipse);
+ var _Icon2 = _interopRequireDefault(_Icon);
- var _nodesShapesIcon = __webpack_require__(74);
+ var _Image = __webpack_require__(78);
- var _nodesShapesIcon2 = _interopRequireDefault(_nodesShapesIcon);
+ var _Image2 = _interopRequireDefault(_Image);
- var _nodesShapesImage = __webpack_require__(75);
+ var _Square = __webpack_require__(79);
- var _nodesShapesImage2 = _interopRequireDefault(_nodesShapesImage);
+ var _Square2 = _interopRequireDefault(_Square);
- var _nodesShapesSquare = __webpack_require__(76);
+ var _Star = __webpack_require__(80);
- var _nodesShapesSquare2 = _interopRequireDefault(_nodesShapesSquare);
+ var _Star2 = _interopRequireDefault(_Star);
- var _nodesShapesStar = __webpack_require__(77);
+ var _Text = __webpack_require__(81);
- var _nodesShapesStar2 = _interopRequireDefault(_nodesShapesStar);
+ var _Text2 = _interopRequireDefault(_Text);
- var _nodesShapesText = __webpack_require__(78);
+ var _Triangle = __webpack_require__(82);
- var _nodesShapesText2 = _interopRequireDefault(_nodesShapesText);
+ var _Triangle2 = _interopRequireDefault(_Triangle);
- var _nodesShapesTriangle = __webpack_require__(79);
+ var _TriangleDown = __webpack_require__(83);
- var _nodesShapesTriangle2 = _interopRequireDefault(_nodesShapesTriangle);
+ var _TriangleDown2 = _interopRequireDefault(_TriangleDown);
- var _nodesShapesTriangleDown = __webpack_require__(80);
+ var _Validator = __webpack_require__(29);
- var _nodesShapesTriangleDown2 = _interopRequireDefault(_nodesShapesTriangleDown);
+ var _Validator2 = _interopRequireDefault(_Validator);
- var _sharedValidator = __webpack_require__(47);
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
- var _sharedValidator2 = _interopRequireDefault(_sharedValidator);
+ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
var util = __webpack_require__(1);
@@ -28536,7 +30027,7 @@ return /******/ (function(modules) { // webpackBootstrap
*
*/
- var Node = (function () {
+ var Node = function () {
function Node(options, body, imagelist, grouplist, globalOptions) {
_classCallCheck(this, Node);
@@ -28560,7 +30051,7 @@ return /******/ (function(modules) { // webpackBootstrap
this.selected = false;
this.hover = false;
- this.labelModule = new _sharedLabel2['default'](this.body, this.options);
+ this.labelModule = new _Label2.default(this.body, this.options, false /* Not edge label */);
this.setOptions(options);
}
@@ -28569,6 +30060,7 @@ return /******/ (function(modules) { // webpackBootstrap
* @param {Edge} edge
*/
+
_createClass(Node, [{
key: 'attachEdge',
value: function attachEdge(edge) {
@@ -28581,6 +30073,7 @@ return /******/ (function(modules) { // webpackBootstrap
* Detach a edge from the node
* @param {Edge} edge
*/
+
}, {
key: 'detachEdge',
value: function detachEdge(edge) {
@@ -28595,6 +30088,7 @@ return /******/ (function(modules) { // webpackBootstrap
* @param {Object} options an object with options
* @param {Object} constants and object with default, global options
*/
+
}, {
key: 'setOptions',
value: function setOptions(options) {
@@ -28668,7 +30162,10 @@ return /******/ (function(modules) { // webpackBootstrap
* Static so it can also be used by the handler.
* @param parentOptions
* @param newOptions
+ * @param allowDeletion
+ * @param globalOptions
*/
+
}, {
key: 'updateLabelModule',
value: function updateLabelModule() {
@@ -28689,49 +30186,49 @@ return /******/ (function(modules) { // webpackBootstrap
// choose draw method depending on the shape
switch (this.options.shape) {
case 'box':
- this.shape = new _nodesShapesBox2['default'](this.options, this.body, this.labelModule);
+ this.shape = new _Box2.default(this.options, this.body, this.labelModule);
break;
case 'circle':
- this.shape = new _nodesShapesCircle2['default'](this.options, this.body, this.labelModule);
+ this.shape = new _Circle2.default(this.options, this.body, this.labelModule);
break;
case 'circularImage':
- this.shape = new _nodesShapesCircularImage2['default'](this.options, this.body, this.labelModule, this.imageObj);
+ this.shape = new _CircularImage2.default(this.options, this.body, this.labelModule, this.imageObj);
break;
case 'database':
- this.shape = new _nodesShapesDatabase2['default'](this.options, this.body, this.labelModule);
+ this.shape = new _Database2.default(this.options, this.body, this.labelModule);
break;
case 'diamond':
- this.shape = new _nodesShapesDiamond2['default'](this.options, this.body, this.labelModule);
+ this.shape = new _Diamond2.default(this.options, this.body, this.labelModule);
break;
case 'dot':
- this.shape = new _nodesShapesDot2['default'](this.options, this.body, this.labelModule);
+ this.shape = new _Dot2.default(this.options, this.body, this.labelModule);
break;
case 'ellipse':
- this.shape = new _nodesShapesEllipse2['default'](this.options, this.body, this.labelModule);
+ this.shape = new _Ellipse2.default(this.options, this.body, this.labelModule);
break;
case 'icon':
- this.shape = new _nodesShapesIcon2['default'](this.options, this.body, this.labelModule);
+ this.shape = new _Icon2.default(this.options, this.body, this.labelModule);
break;
case 'image':
- this.shape = new _nodesShapesImage2['default'](this.options, this.body, this.labelModule, this.imageObj);
+ this.shape = new _Image2.default(this.options, this.body, this.labelModule, this.imageObj);
break;
case 'square':
- this.shape = new _nodesShapesSquare2['default'](this.options, this.body, this.labelModule);
+ this.shape = new _Square2.default(this.options, this.body, this.labelModule);
break;
case 'star':
- this.shape = new _nodesShapesStar2['default'](this.options, this.body, this.labelModule);
+ this.shape = new _Star2.default(this.options, this.body, this.labelModule);
break;
case 'text':
- this.shape = new _nodesShapesText2['default'](this.options, this.body, this.labelModule);
+ this.shape = new _Text2.default(this.options, this.body, this.labelModule);
break;
case 'triangle':
- this.shape = new _nodesShapesTriangle2['default'](this.options, this.body, this.labelModule);
+ this.shape = new _Triangle2.default(this.options, this.body, this.labelModule);
break;
case 'triangleDown':
- this.shape = new _nodesShapesTriangleDown2['default'](this.options, this.body, this.labelModule);
+ this.shape = new _TriangleDown2.default(this.options, this.body, this.labelModule);
break;
default:
- this.shape = new _nodesShapesEllipse2['default'](this.options, this.body, this.labelModule);
+ this.shape = new _Ellipse2.default(this.options, this.body, this.labelModule);
break;
}
}
@@ -28741,6 +30238,7 @@ return /******/ (function(modules) { // webpackBootstrap
/**
* select this node
*/
+
}, {
key: 'select',
value: function select() {
@@ -28751,6 +30249,7 @@ return /******/ (function(modules) { // webpackBootstrap
/**
* unselect this node
*/
+
}, {
key: 'unselect',
value: function unselect() {
@@ -28762,6 +30261,7 @@ return /******/ (function(modules) { // webpackBootstrap
* Reset the calculated size of the node, forces it to recalculate its size
* @private
*/
+
}, {
key: '_reset',
value: function _reset() {
@@ -28774,6 +30274,7 @@ return /******/ (function(modules) { // webpackBootstrap
* @return {string} title The title of the node, or undefined when no title
* has been set.
*/
+
}, {
key: 'getTitle',
value: function getTitle() {
@@ -28786,6 +30287,7 @@ return /******/ (function(modules) { // webpackBootstrap
* @param {Number} angle Angle in radians
* @returns {number} distance Distance to the border in pixels
*/
+
}, {
key: 'distanceToBorder',
value: function distanceToBorder(ctx, angle) {
@@ -28796,6 +30298,7 @@ return /******/ (function(modules) { // webpackBootstrap
* Check if this node has a fixed x and y position
* @return {boolean} true if fixed, false if not
*/
+
}, {
key: 'isFixed',
value: function isFixed() {
@@ -28806,6 +30309,7 @@ return /******/ (function(modules) { // webpackBootstrap
* check if this node is selecte
* @return {boolean} selected True if node is selected, else false
*/
+
}, {
key: 'isSelected',
value: function isSelected() {
@@ -28816,6 +30320,7 @@ return /******/ (function(modules) { // webpackBootstrap
* Retrieve the value of the node. Can be undefined
* @return {Number} value
*/
+
}, {
key: 'getValue',
value: function getValue() {
@@ -28828,6 +30333,7 @@ return /******/ (function(modules) { // webpackBootstrap
* @param {Number} min
* @param {Number} max
*/
+
}, {
key: 'setValueRange',
value: function setValueRange(min, max, total) {
@@ -28852,6 +30358,7 @@ return /******/ (function(modules) { // webpackBootstrap
* The 2d context of a HTML canvas can be retrieved by canvas.getContext("2d");
* @param {CanvasRenderingContext2D} ctx
*/
+
}, {
key: 'draw',
value: function draw(ctx) {
@@ -28861,6 +30368,7 @@ return /******/ (function(modules) { // webpackBootstrap
/**
* Update the bounding box of the shape
*/
+
}, {
key: 'updateBoundingBox',
value: function updateBoundingBox(ctx) {
@@ -28872,6 +30380,7 @@ return /******/ (function(modules) { // webpackBootstrap
* The 2d context of a HTML canvas can be retrieved by canvas.getContext("2d");
* @param {CanvasRenderingContext2D} ctx
*/
+
}, {
key: 'resize',
value: function resize(ctx) {
@@ -28883,6 +30392,7 @@ return /******/ (function(modules) { // webpackBootstrap
* @param {Object} obj an object with parameters left, top, right, bottom
* @return {boolean} True if location is located on node
*/
+
}, {
key: 'isOverlappingWith',
value: function isOverlappingWith(obj) {
@@ -28894,6 +30404,7 @@ return /******/ (function(modules) { // webpackBootstrap
* @param {Object} obj an object with parameters left, top, right, bottom
* @return {boolean} True if location is located on node
*/
+
}, {
key: 'isBoundingBoxOverlappingWith',
value: function isBoundingBoxOverlappingWith(obj) {
@@ -28936,7 +30447,7 @@ return /******/ (function(modules) { // webpackBootstrap
// handle the font options
if (newOptions.font !== undefined && newOptions.font !== null) {
- _sharedLabel2['default'].parseOptions(parentOptions.font, newOptions);
+ _Label2.default.parseOptions(parentOptions.font, newOptions);
} else if (allowDeletion === true && newOptions.font === null) {
parentOptions.font = util.bridgeObject(globalOptions.font); // set the object back to the global options
}
@@ -28949,31 +30460,34 @@ return /******/ (function(modules) { // webpackBootstrap
}]);
return Node;
- })();
+ }();
- exports['default'] = Node;
- module.exports = exports['default'];
+ exports.default = Node;
/***/ },
-/* 63 */
+/* 66 */
/***/ function(module, exports, __webpack_require__) {
'use strict';
- Object.defineProperty(exports, '__esModule', {
+ Object.defineProperty(exports, "__esModule", {
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 _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 _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; };
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }
+ 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; }; }();
+
+ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
var util = __webpack_require__(1);
- var Label = (function () {
+ var Label = function () {
function Label(body, options) {
+ var edgelabel = arguments.length <= 2 || arguments[2] === undefined ? false : arguments[2];
+
_classCallCheck(this, Label);
this.body = body;
@@ -28983,6 +30497,7 @@ return /******/ (function(modules) { // webpackBootstrap
this.fontOptions = {};
this.setOptions(options);
this.size = { top: 0, left: 0, width: 0, height: 0, yLine: 0 }; // could be cached
+ this.isEdgeLabel = edgelabel;
}
_createClass(Label, [{
@@ -29004,7 +30519,7 @@ return /******/ (function(modules) { // webpackBootstrap
Label.parseOptions(this.fontOptions, options, allowDeletion);
if (typeof options.font === 'string') {
this.baseSize = this.fontOptions.size;
- } else if (typeof options.font === 'object') {
+ } else if (_typeof(options.font) === 'object') {
if (options.font.size !== undefined) {
this.baseSize = options.font.size;
}
@@ -29014,6 +30529,7 @@ return /******/ (function(modules) { // webpackBootstrap
}, {
key: 'draw',
+
/**
* Main function. This is called from anything that wants to draw a label.
* @param ctx
@@ -29046,6 +30562,7 @@ return /******/ (function(modules) { // webpackBootstrap
* @param {CanvasRenderingContext2D} ctx
* @private
*/
+
}, {
key: '_drawBackground',
value: function _drawBackground(ctx) {
@@ -29054,19 +30571,23 @@ return /******/ (function(modules) { // webpackBootstrap
var lineMargin = 2;
- switch (this.fontOptions.align) {
- case 'middle':
- ctx.fillRect(-this.size.width * 0.5, -this.size.height * 0.5, this.size.width, this.size.height);
- break;
- case 'top':
- ctx.fillRect(-this.size.width * 0.5, -(this.size.height + lineMargin), this.size.width, this.size.height);
- break;
- case 'bottom':
- ctx.fillRect(-this.size.width * 0.5, lineMargin, this.size.width, this.size.height);
- break;
- default:
- ctx.fillRect(this.size.left, this.size.top - 0.5 * lineMargin, this.size.width, this.size.height);
- break;
+ if (this.isEdgeLabel) {
+ switch (this.fontOptions.align) {
+ case 'middle':
+ ctx.fillRect(-this.size.width * 0.5, -this.size.height * 0.5, this.size.width, this.size.height);
+ break;
+ case 'top':
+ ctx.fillRect(-this.size.width * 0.5, -(this.size.height + lineMargin), this.size.width, this.size.height);
+ break;
+ case 'bottom':
+ ctx.fillRect(-this.size.width * 0.5, lineMargin, this.size.width, this.size.height);
+ break;
+ default:
+ ctx.fillRect(this.size.left, this.size.top - 0.5 * lineMargin, this.size.width, this.size.height);
+ break;
+ }
+ } else {
+ ctx.fillRect(this.size.left, this.size.top - 0.5 * lineMargin, this.size.width, this.size.height);
}
}
}
@@ -29078,6 +30599,7 @@ return /******/ (function(modules) { // webpackBootstrap
* @param baseline
* @private
*/
+
}, {
key: '_drawText',
value: function _drawText(ctx, selected, x, y) {
@@ -29094,22 +30616,29 @@ return /******/ (function(modules) { // webpackBootstrap
var _getColor2 = this._getColor(viewFontSize);
- var _getColor22 = _slicedToArray(_getColor2, 2);
+ var _getColor3 = _slicedToArray(_getColor2, 2);
+
+ var fontColor = _getColor3[0];
+ var strokeColor = _getColor3[1];
- var fontColor = _getColor22[0];
- var strokeColor = _getColor22[1];
// configure context for drawing the text
var _setAlignment2 = this._setAlignment(ctx, x, yLine, baseline);
- var _setAlignment22 = _slicedToArray(_setAlignment2, 2);
+ var _setAlignment3 = _slicedToArray(_setAlignment2, 2);
- x = _setAlignment22[0];
- yLine = _setAlignment22[1];
+ x = _setAlignment3[0];
+ yLine = _setAlignment3[1];
ctx.font = (selected && this.nodeOptions.labelHighlightBold ? 'bold ' : '') + fontSize + "px " + this.fontOptions.face;
ctx.fillStyle = fontColor;
- ctx.textAlign = 'center';
+ // When the textAlign property is 'left', make label left-justified
+ if (!this.isEdgeLabel && this.fontOptions.align === 'left') {
+ ctx.textAlign = this.fontOptions.align;
+ x = x - 0.5 * this.size.width; // Shift label 1/2-distance to the left
+ } else {
+ ctx.textAlign = 'center';
+ }
// set the strokeWidth
if (this.fontOptions.strokeWidth > 0) {
@@ -29132,7 +30661,7 @@ return /******/ (function(modules) { // webpackBootstrap
value: function _setAlignment(ctx, x, yLine, baseline) {
// check for label alignment (for edges)
// TODO: make alignment for nodes
- if (this.fontOptions.align !== 'horizontal' && this.pointToSelf === false) {
+ if (this.isEdgeLabel && this.fontOptions.align !== 'horizontal' && this.pointToSelf === false) {
x = 0;
yLine = 0;
@@ -29161,6 +30690,7 @@ return /******/ (function(modules) { // webpackBootstrap
* @returns {*[]}
* @private
*/
+
}, {
key: '_getColor',
value: function _getColor(viewFontSize) {
@@ -29180,6 +30710,7 @@ return /******/ (function(modules) { // webpackBootstrap
* @param selected
* @returns {{width: number, height: number}}
*/
+
}, {
key: 'getTextSize',
value: function getTextSize(ctx) {
@@ -29201,6 +30732,7 @@ return /******/ (function(modules) { // webpackBootstrap
* @param y
* @param baseline
*/
+
}, {
key: 'calculateLabelSize',
value: function calculateLabelSize(ctx, selected) {
@@ -29231,6 +30763,7 @@ return /******/ (function(modules) { // webpackBootstrap
* @returns {number}
* @private
*/
+
}, {
key: '_processLabel',
value: function _processLabel(ctx, selected) {
@@ -29262,7 +30795,7 @@ return /******/ (function(modules) { // webpackBootstrap
parentOptions.size = newOptionsArray[0].replace("px", '');
parentOptions.face = newOptionsArray[1];
parentOptions.color = newOptionsArray[2];
- } else if (typeof newOptions.font === 'object') {
+ } else if (_typeof(newOptions.font) === 'object') {
util.fillIfDefined(parentOptions, newOptions.font, allowDeletion);
}
parentOptions.size = Number(parentOptions.size);
@@ -29270,42 +30803,41 @@ return /******/ (function(modules) { // webpackBootstrap
}]);
return Label;
- })();
+ }();
- exports['default'] = Label;
- module.exports = exports['default'];
+ exports.default = Label;
/***/ },
-/* 64 */
+/* 67 */
/***/ function(module, exports, __webpack_require__) {
'use strict';
- Object.defineProperty(exports, '__esModule', {
+ Object.defineProperty(exports, "__esModule", {
value: true
});
- 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 _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
- var _get = function get(_x, _x2, _x3) { var _again = true; _function: while (_again) { var object = _x, property = _x2, receiver = _x3; _again = false; if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { _x = parent; _x2 = property; _x3 = receiver; _again = true; desc = parent = undefined; continue _function; } } else if ('value' in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } } };
+ var _NodeBase2 = __webpack_require__(68);
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
+ var _NodeBase3 = _interopRequireDefault(_NodeBase2);
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
- function _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
+ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
- var _utilNodeBase = __webpack_require__(65);
+ function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
- var _utilNodeBase2 = _interopRequireDefault(_utilNodeBase);
+ function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
- var Box = (function (_NodeBase) {
+ var Box = function (_NodeBase) {
_inherits(Box, _NodeBase);
function Box(options, body, labelModule) {
_classCallCheck(this, Box);
- _get(Object.getPrototypeOf(Box.prototype), 'constructor', this).call(this, options, body, labelModule);
+ return _possibleConstructorReturn(this, Object.getPrototypeOf(Box).call(this, options, body, labelModule));
}
_createClass(Box, [{
@@ -29348,11 +30880,14 @@ return /******/ (function(modules) { // webpackBootstrap
//draw dashed border if enabled, save and restore is required for firefox not to crash on unix.
ctx.save();
- this.enableBorderDashes(ctx);
- //draw the border
- ctx.stroke();
- //disable dashed border for other elements
- this.disableBorderDashes(ctx);
+ // if borders are zero width, they will be drawn with width 1 by default. This prevents that
+ if (borderWidth > 0) {
+ this.enableBorderDashes(ctx);
+ //draw the border
+ ctx.stroke();
+ //disable dashed border for other elements
+ this.disableBorderDashes(ctx);
+ }
ctx.restore();
this.updateBoundingBox(x, y, ctx, selected);
@@ -29365,44 +30900,42 @@ return /******/ (function(modules) { // webpackBootstrap
this.left = x - this.width * 0.5;
this.top = y - this.height * 0.5;
- this.boundingBox.left = this.left;
- this.boundingBox.top = this.top;
- this.boundingBox.bottom = this.top + this.height;
- this.boundingBox.right = this.left + this.width;
+ var borderRadius = this.options.shapeProperties.borderRadius; // only effective for box
+ this.boundingBox.left = this.left - borderRadius;
+ this.boundingBox.top = this.top - borderRadius;
+ this.boundingBox.bottom = this.top + this.height + borderRadius;
+ this.boundingBox.right = this.left + this.width + borderRadius;
}
}, {
key: 'distanceToBorder',
value: function distanceToBorder(ctx, angle) {
this.resize(ctx);
- var a = this.width / 2;
- var b = this.height / 2;
- var w = Math.sin(angle) * a;
- var h = Math.cos(angle) * b;
- return a * b / Math.sqrt(w * w + h * h);
+ var borderWidth = this.options.borderWidth;
+
+ return Math.min(Math.abs(this.width / 2 / Math.cos(angle)), Math.abs(this.height / 2 / Math.sin(angle))) + borderWidth;
}
}]);
return Box;
- })(_utilNodeBase2['default']);
+ }(_NodeBase3.default);
- exports['default'] = Box;
- module.exports = exports['default'];
+ exports.default = Box;
/***/ },
-/* 65 */
+/* 68 */
/***/ function(module, exports) {
- 'use strict';
+ "use strict";
- Object.defineProperty(exports, '__esModule', {
+ Object.defineProperty(exports, "__esModule", {
value: true
});
- 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 _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; }; }();
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }
+ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
- var NodeBase = (function () {
+ var NodeBase = function () {
function NodeBase(options, body, labelModule) {
_classCallCheck(this, NodeBase);
@@ -29418,29 +30951,29 @@ return /******/ (function(modules) { // webpackBootstrap
}
_createClass(NodeBase, [{
- key: 'setOptions',
+ key: "setOptions",
value: function setOptions(options) {
this.options = options;
}
}, {
- key: '_distanceToBorder',
+ key: "_distanceToBorder",
value: function _distanceToBorder(ctx, angle) {
- var borderWidth = 1;
+ var borderWidth = this.options.borderWidth;
this.resize(ctx);
return Math.min(Math.abs(this.width / 2 / Math.cos(angle)), Math.abs(this.height / 2 / Math.sin(angle))) + borderWidth;
}
}, {
- key: 'enableShadow',
+ key: "enableShadow",
value: function enableShadow(ctx) {
if (this.options.shadow.enabled === true) {
- ctx.shadowColor = 'rgba(0,0,0,0.5)';
+ ctx.shadowColor = this.options.shadow.color;
ctx.shadowBlur = this.options.shadow.size;
ctx.shadowOffsetX = this.options.shadow.x;
ctx.shadowOffsetY = this.options.shadow.y;
}
}
}, {
- key: 'disableShadow',
+ key: "disableShadow",
value: function disableShadow(ctx) {
if (this.options.shadow.enabled === true) {
ctx.shadowColor = 'rgba(0,0,0,0)';
@@ -29450,7 +30983,7 @@ return /******/ (function(modules) { // webpackBootstrap
}
}
}, {
- key: 'enableBorderDashes',
+ key: "enableBorderDashes",
value: function enableBorderDashes(ctx) {
if (this.options.shapeProperties.borderDashes !== false) {
if (ctx.setLineDash !== undefined) {
@@ -29466,7 +30999,7 @@ return /******/ (function(modules) { // webpackBootstrap
}
}
}, {
- key: 'disableBorderDashes',
+ key: "disableBorderDashes",
value: function disableBorderDashes(ctx) {
if (this.options.shapeProperties.borderDashes !== false) {
if (ctx.setLineDash !== undefined) {
@@ -29480,42 +31013,41 @@ return /******/ (function(modules) { // webpackBootstrap
}]);
return NodeBase;
- })();
+ }();
- exports['default'] = NodeBase;
- module.exports = exports['default'];
+ exports.default = NodeBase;
/***/ },
-/* 66 */
+/* 69 */
/***/ function(module, exports, __webpack_require__) {
'use strict';
- Object.defineProperty(exports, '__esModule', {
+ Object.defineProperty(exports, "__esModule", {
value: true
});
- 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 _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
- var _get = function get(_x, _x2, _x3) { var _again = true; _function: while (_again) { var object = _x, property = _x2, receiver = _x3; _again = false; if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { _x = parent; _x2 = property; _x3 = receiver; _again = true; desc = parent = undefined; continue _function; } } else if ('value' in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } } };
+ var _CircleImageBase2 = __webpack_require__(70);
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
+ var _CircleImageBase3 = _interopRequireDefault(_CircleImageBase2);
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
- function _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
+ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
- var _utilCircleImageBase = __webpack_require__(67);
+ function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
- var _utilCircleImageBase2 = _interopRequireDefault(_utilCircleImageBase);
+ function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
- var Circle = (function (_CircleImageBase) {
+ var Circle = function (_CircleImageBase) {
_inherits(Circle, _CircleImageBase);
function Circle(options, body, labelModule) {
_classCallCheck(this, Circle);
- _get(Object.getPrototypeOf(Circle.prototype), 'constructor', this).call(this, options, body, labelModule);
+ return _possibleConstructorReturn(this, Object.getPrototypeOf(Circle).call(this, options, body, labelModule));
}
_createClass(Circle, [{
@@ -29561,53 +31093,50 @@ return /******/ (function(modules) { // webpackBootstrap
key: 'distanceToBorder',
value: function distanceToBorder(ctx, angle) {
this.resize(ctx);
- var a = this.width / 2;
- var b = this.height / 2;
- var w = Math.sin(angle) * a;
- var h = Math.cos(angle) * b;
- return a * b / Math.sqrt(w * w + h * h);
+ return this.width * 0.5;
}
}]);
return Circle;
- })(_utilCircleImageBase2['default']);
+ }(_CircleImageBase3.default);
- exports['default'] = Circle;
- module.exports = exports['default'];
+ exports.default = Circle;
/***/ },
-/* 67 */
+/* 70 */
/***/ function(module, exports, __webpack_require__) {
'use strict';
- Object.defineProperty(exports, '__esModule', {
+ Object.defineProperty(exports, "__esModule", {
value: true
});
- 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 _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
- var _get = function get(_x, _x2, _x3) { var _again = true; _function: while (_again) { var object = _x, property = _x2, receiver = _x3; _again = false; if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { _x = parent; _x2 = property; _x3 = receiver; _again = true; desc = parent = undefined; continue _function; } } else if ('value' in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } } };
+ var _NodeBase2 = __webpack_require__(68);
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
+ var _NodeBase3 = _interopRequireDefault(_NodeBase2);
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
- function _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
+ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
- var _utilNodeBase = __webpack_require__(65);
+ function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
- var _utilNodeBase2 = _interopRequireDefault(_utilNodeBase);
+ function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
- var CircleImageBase = (function (_NodeBase) {
+ var CircleImageBase = function (_NodeBase) {
_inherits(CircleImageBase, _NodeBase);
function CircleImageBase(options, body, labelModule) {
_classCallCheck(this, CircleImageBase);
- _get(Object.getPrototypeOf(CircleImageBase.prototype), 'constructor', this).call(this, options, body, labelModule);
- this.labelOffset = 0;
- this.imageLoaded = false;
+ var _this = _possibleConstructorReturn(this, Object.getPrototypeOf(CircleImageBase).call(this, options, body, labelModule));
+
+ _this.labelOffset = 0;
+ _this.imageLoaded = false;
+ return _this;
}
_createClass(CircleImageBase, [{
@@ -29625,6 +31154,7 @@ return /******/ (function(modules) { // webpackBootstrap
*
* @private
*/
+
}, {
key: '_resizeImage',
value: function _resizeImage() {
@@ -29673,14 +31203,12 @@ return /******/ (function(modules) { // webpackBootstrap
}, {
key: '_drawRawCircle',
value: function _drawRawCircle(ctx, x, y, selected, hover, size) {
- var borderWidth = this.options.borderWidth;
+ var neutralborderWidth = this.options.borderWidth;
var selectionLineWidth = this.options.borderWidthSelected || 2 * this.options.borderWidth;
+ var borderWidth = (selected ? selectionLineWidth : neutralborderWidth) / this.body.view.scale;
+ ctx.lineWidth = Math.min(this.width, borderWidth);
ctx.strokeStyle = selected ? this.options.color.highlight.border : hover ? this.options.color.hover.border : this.options.color.border;
-
- ctx.lineWidth = selected ? selectionLineWidth : borderWidth;
- ctx.lineWidth *= this.networkScaleInv;
- ctx.lineWidth = Math.min(this.width, ctx.lineWidth);
ctx.fillStyle = selected ? this.options.color.highlight.background : hover ? this.options.color.hover.background : this.options.color.background;
ctx.circle(x, y, size);
@@ -29693,11 +31221,14 @@ return /******/ (function(modules) { // webpackBootstrap
//draw dashed border if enabled, save and restore is required for firefox not to crash on unix.
ctx.save();
- this.enableBorderDashes(ctx);
- //draw the border
- ctx.stroke();
- //disable dashed border for other elements
- this.disableBorderDashes(ctx);
+ // if borders are zero width, they will be drawn with width 1 by default. This prevents that
+ if (borderWidth > 0) {
+ this.enableBorderDashes(ctx);
+ //draw the border
+ ctx.stroke();
+ //disable dashed border for other elements
+ this.disableBorderDashes(ctx);
+ }
ctx.restore();
}
}, {
@@ -29710,8 +31241,35 @@ return /******/ (function(modules) { // webpackBootstrap
// draw shadow if enabled
this.enableShadow(ctx);
- // draw image
- ctx.drawImage(this.imageObj, this.left, this.top, this.width, this.height);
+ var factor = this.imageObj.width / this.width / this.body.view.scale;
+ if (factor > 2 && this.options.shapeProperties.interpolation === true) {
+ var w = this.imageObj.width;
+ var h = this.imageObj.height;
+ var can2 = document.createElement('canvas');
+ can2.width = w;
+ can2.height = w;
+ var ctx2 = can2.getContext('2d');
+
+ factor *= 0.5;
+ w *= 0.5;
+ h *= 0.5;
+ ctx2.drawImage(this.imageObj, 0, 0, w, h);
+
+ var distance = 0;
+ var iterations = 1;
+ while (factor > 2 && iterations < 4) {
+ ctx2.drawImage(can2, distance, 0, w, h, distance + w, 0, w / 2, h / 2);
+ distance += w;
+ factor *= 0.5;
+ w *= 0.5;
+ h *= 0.5;
+ iterations += 1;
+ }
+ ctx.drawImage(can2, distance, 0, w, h, this.left, this.top, this.width, this.height);
+ } else {
+ // draw image
+ ctx.drawImage(this.imageObj, this.left, this.top, this.width, this.height);
+ }
// disable shadows for other elements.
this.disableShadow(ctx);
@@ -29741,44 +31299,45 @@ return /******/ (function(modules) { // webpackBootstrap
}]);
return CircleImageBase;
- })(_utilNodeBase2['default']);
+ }(_NodeBase3.default);
- exports['default'] = CircleImageBase;
- module.exports = exports['default'];
+ exports.default = CircleImageBase;
/***/ },
-/* 68 */
+/* 71 */
/***/ function(module, exports, __webpack_require__) {
'use strict';
- Object.defineProperty(exports, '__esModule', {
+ Object.defineProperty(exports, "__esModule", {
value: true
});
- 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 _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
- var _get = function get(_x, _x2, _x3) { var _again = true; _function: while (_again) { var object = _x, property = _x2, receiver = _x3; _again = false; if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { _x = parent; _x2 = property; _x3 = receiver; _again = true; desc = parent = undefined; continue _function; } } else if ('value' in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } } };
+ var _CircleImageBase2 = __webpack_require__(70);
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
+ var _CircleImageBase3 = _interopRequireDefault(_CircleImageBase2);
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
- function _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
+ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
- var _utilCircleImageBase = __webpack_require__(67);
+ function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
- var _utilCircleImageBase2 = _interopRequireDefault(_utilCircleImageBase);
+ function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
- var CircularImage = (function (_CircleImageBase) {
+ var CircularImage = function (_CircleImageBase) {
_inherits(CircularImage, _CircleImageBase);
function CircularImage(options, body, labelModule, imageObj) {
_classCallCheck(this, CircularImage);
- _get(Object.getPrototypeOf(CircularImage.prototype), 'constructor', this).call(this, options, body, labelModule);
- this.imageObj = imageObj;
- this._swapToImageResizeWhenImageLoaded = true;
+ var _this = _possibleConstructorReturn(this, Object.getPrototypeOf(CircularImage).call(this, options, body, labelModule));
+
+ _this.imageObj = imageObj;
+ _this._swapToImageResizeWhenImageLoaded = true;
+ return _this;
}
_createClass(CircularImage, [{
@@ -29811,10 +31370,10 @@ return /******/ (function(modules) { // webpackBootstrap
var size = Math.min(0.5 * this.height, 0.5 * this.width);
- // draw the backgroun circle. IMPORTANT: the stroke in this method is used by the clip method below.
+ // draw the background circle. IMPORTANT: the stroke in this method is used by the clip method below.
this._drawRawCircle(ctx, x, y, selected, hover, size);
- // now we draw in the cicle, we save so we can revert the clip operation after drawing.
+ // now we draw in the circle, we save so we can revert the clip operation after drawing.
ctx.save();
// clip is used to use the stroke in drawRawCircle as an area that we can draw in.
ctx.clip();
@@ -29842,47 +31401,46 @@ return /******/ (function(modules) { // webpackBootstrap
key: 'distanceToBorder',
value: function distanceToBorder(ctx, angle) {
this.resize(ctx);
- return this._distanceToBorder(ctx, angle);
+ return this.width * 0.5;
}
}]);
return CircularImage;
- })(_utilCircleImageBase2['default']);
+ }(_CircleImageBase3.default);
- exports['default'] = CircularImage;
- module.exports = exports['default'];
+ exports.default = CircularImage;
/***/ },
-/* 69 */
+/* 72 */
/***/ function(module, exports, __webpack_require__) {
'use strict';
- Object.defineProperty(exports, '__esModule', {
+ Object.defineProperty(exports, "__esModule", {
value: true
});
- 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 _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
- var _get = function get(_x, _x2, _x3) { var _again = true; _function: while (_again) { var object = _x, property = _x2, receiver = _x3; _again = false; if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { _x = parent; _x2 = property; _x3 = receiver; _again = true; desc = parent = undefined; continue _function; } } else if ('value' in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } } };
+ var _NodeBase2 = __webpack_require__(68);
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
+ var _NodeBase3 = _interopRequireDefault(_NodeBase2);
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
- function _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
+ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
- var _utilNodeBase = __webpack_require__(65);
+ function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
- var _utilNodeBase2 = _interopRequireDefault(_utilNodeBase);
+ function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
- var Database = (function (_NodeBase) {
+ var Database = function (_NodeBase) {
_inherits(Database, _NodeBase);
function Database(options, body, labelModule) {
_classCallCheck(this, Database);
- _get(Object.getPrototypeOf(Database.prototype), 'constructor', this).call(this, options, body, labelModule);
+ return _possibleConstructorReturn(this, Object.getPrototypeOf(Database).call(this, options, body, labelModule));
}
_createClass(Database, [{
@@ -29904,13 +31462,12 @@ return /******/ (function(modules) { // webpackBootstrap
this.left = x - this.width / 2;
this.top = y - this.height / 2;
- var borderWidth = this.options.borderWidth;
+ var neutralborderWidth = this.options.borderWidth;
var selectionLineWidth = this.options.borderWidthSelected || 2 * this.options.borderWidth;
+ var borderWidth = (selected ? selectionLineWidth : neutralborderWidth) / this.body.view.scale;
+ ctx.lineWidth = Math.min(this.width, borderWidth);
ctx.strokeStyle = selected ? this.options.color.highlight.border : hover ? this.options.color.hover.border : this.options.color.border;
- ctx.lineWidth = this.selected ? selectionLineWidth : borderWidth;
- ctx.lineWidth *= this.networkScaleInv;
- ctx.lineWidth = Math.min(this.width, ctx.lineWidth);
ctx.fillStyle = selected ? this.options.color.highlight.background : hover ? this.options.color.hover.background : this.options.color.background;
ctx.database(x - this.width / 2, y - this.height * 0.5, this.width, this.height);
@@ -29924,11 +31481,14 @@ return /******/ (function(modules) { // webpackBootstrap
//draw dashed border if enabled, save and restore is required for firefox not to crash on unix.
ctx.save();
- this.enableBorderDashes(ctx);
- //draw the border
- ctx.stroke();
- //disable dashed border for other elements
- this.disableBorderDashes(ctx);
+ // if borders are zero width, they will be drawn with width 1 by default. This prevents that
+ if (borderWidth > 0) {
+ this.enableBorderDashes(ctx);
+ //draw the border
+ ctx.stroke();
+ //disable dashed border for other elements
+ this.disableBorderDashes(ctx);
+ }
ctx.restore();
this.updateBoundingBox(x, y, ctx, selected);
@@ -29950,52 +31510,46 @@ return /******/ (function(modules) { // webpackBootstrap
}, {
key: 'distanceToBorder',
value: function distanceToBorder(ctx, angle) {
- this.resize(ctx);
- var a = this.width / 2;
- var b = this.height / 2;
- var w = Math.sin(angle) * a;
- var h = Math.cos(angle) * b;
- return a * b / Math.sqrt(w * w + h * h);
+ return this._distanceToBorder(ctx, angle);
}
}]);
return Database;
- })(_utilNodeBase2['default']);
+ }(_NodeBase3.default);
- exports['default'] = Database;
- module.exports = exports['default'];
+ exports.default = Database;
/***/ },
-/* 70 */
+/* 73 */
/***/ function(module, exports, __webpack_require__) {
'use strict';
- Object.defineProperty(exports, '__esModule', {
+ Object.defineProperty(exports, "__esModule", {
value: true
});
- 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 _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
- var _get = function get(_x, _x2, _x3) { var _again = true; _function: while (_again) { var object = _x, property = _x2, receiver = _x3; _again = false; if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { _x = parent; _x2 = property; _x3 = receiver; _again = true; desc = parent = undefined; continue _function; } } else if ('value' in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } } };
+ var _ShapeBase2 = __webpack_require__(74);
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
+ var _ShapeBase3 = _interopRequireDefault(_ShapeBase2);
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
- function _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
+ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
- var _utilShapeBase = __webpack_require__(71);
+ function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
- var _utilShapeBase2 = _interopRequireDefault(_utilShapeBase);
+ function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
- var Diamond = (function (_ShapeBase) {
+ var Diamond = function (_ShapeBase) {
_inherits(Diamond, _ShapeBase);
function Diamond(options, body, labelModule) {
_classCallCheck(this, Diamond);
- _get(Object.getPrototypeOf(Diamond.prototype), 'constructor', this).call(this, options, body, labelModule);
+ return _possibleConstructorReturn(this, Object.getPrototypeOf(Diamond).call(this, options, body, labelModule));
}
_createClass(Diamond, [{
@@ -30016,42 +31570,41 @@ return /******/ (function(modules) { // webpackBootstrap
}]);
return Diamond;
- })(_utilShapeBase2['default']);
+ }(_ShapeBase3.default);
- exports['default'] = Diamond;
- module.exports = exports['default'];
+ exports.default = Diamond;
/***/ },
-/* 71 */
+/* 74 */
/***/ function(module, exports, __webpack_require__) {
'use strict';
- Object.defineProperty(exports, '__esModule', {
+ Object.defineProperty(exports, "__esModule", {
value: true
});
- 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 _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
- var _get = function get(_x, _x2, _x3) { var _again = true; _function: while (_again) { var object = _x, property = _x2, receiver = _x3; _again = false; if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { _x = parent; _x2 = property; _x3 = receiver; _again = true; desc = parent = undefined; continue _function; } } else if ('value' in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } } };
+ var _NodeBase2 = __webpack_require__(68);
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
+ var _NodeBase3 = _interopRequireDefault(_NodeBase2);
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
- function _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
+ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
- var _utilNodeBase = __webpack_require__(65);
+ function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
- var _utilNodeBase2 = _interopRequireDefault(_utilNodeBase);
+ function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
- var ShapeBase = (function (_NodeBase) {
+ var ShapeBase = function (_NodeBase) {
_inherits(ShapeBase, _NodeBase);
function ShapeBase(options, body, labelModule) {
_classCallCheck(this, ShapeBase);
- _get(Object.getPrototypeOf(ShapeBase.prototype), 'constructor', this).call(this, options, body, labelModule);
+ return _possibleConstructorReturn(this, Object.getPrototypeOf(ShapeBase).call(this, options, body, labelModule));
}
_createClass(ShapeBase, [{
@@ -30072,13 +31625,12 @@ return /******/ (function(modules) { // webpackBootstrap
this.left = x - this.width / 2;
this.top = y - this.height / 2;
- var borderWidth = this.options.borderWidth;
+ var neutralborderWidth = this.options.borderWidth;
var selectionLineWidth = this.options.borderWidthSelected || 2 * this.options.borderWidth;
+ var borderWidth = (selected ? selectionLineWidth : neutralborderWidth) / this.body.view.scale;
+ ctx.lineWidth = Math.min(this.width, borderWidth);
ctx.strokeStyle = selected ? this.options.color.highlight.border : hover ? this.options.color.hover.border : this.options.color.border;
- ctx.lineWidth = selected ? selectionLineWidth : borderWidth;
- ctx.lineWidth /= this.body.view.scale;
- ctx.lineWidth = Math.min(this.width, ctx.lineWidth);
ctx.fillStyle = selected ? this.options.color.highlight.background : hover ? this.options.color.hover.background : this.options.color.background;
ctx[shape](x, y, this.options.size);
@@ -30091,11 +31643,14 @@ return /******/ (function(modules) { // webpackBootstrap
//draw dashed border if enabled, save and restore is required for firefox not to crash on unix.
ctx.save();
- this.enableBorderDashes(ctx);
- //draw the border
- ctx.stroke();
- //disable dashed border for other elements
- this.disableBorderDashes(ctx);
+ // if borders are zero width, they will be drawn with width 1 by default. This prevents that
+ if (borderWidth > 0) {
+ this.enableBorderDashes(ctx);
+ //draw the border
+ ctx.stroke();
+ //disable dashed border for other elements
+ this.disableBorderDashes(ctx);
+ }
ctx.restore();
if (this.options.label !== undefined) {
@@ -30122,42 +31677,41 @@ return /******/ (function(modules) { // webpackBootstrap
}]);
return ShapeBase;
- })(_utilNodeBase2['default']);
+ }(_NodeBase3.default);
- exports['default'] = ShapeBase;
- module.exports = exports['default'];
+ exports.default = ShapeBase;
/***/ },
-/* 72 */
+/* 75 */
/***/ function(module, exports, __webpack_require__) {
'use strict';
- Object.defineProperty(exports, '__esModule', {
+ Object.defineProperty(exports, "__esModule", {
value: true
});
- 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 _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
- var _get = function get(_x, _x2, _x3) { var _again = true; _function: while (_again) { var object = _x, property = _x2, receiver = _x3; _again = false; if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { _x = parent; _x2 = property; _x3 = receiver; _again = true; desc = parent = undefined; continue _function; } } else if ('value' in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } } };
+ var _ShapeBase2 = __webpack_require__(74);
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
+ var _ShapeBase3 = _interopRequireDefault(_ShapeBase2);
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
- function _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
+ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
- var _utilShapeBase = __webpack_require__(71);
+ function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
- var _utilShapeBase2 = _interopRequireDefault(_utilShapeBase);
+ function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
- var Dot = (function (_ShapeBase) {
+ var Dot = function (_ShapeBase) {
_inherits(Dot, _ShapeBase);
function Dot(options, body, labelModule) {
_classCallCheck(this, Dot);
- _get(Object.getPrototypeOf(Dot.prototype), 'constructor', this).call(this, options, body, labelModule);
+ return _possibleConstructorReturn(this, Object.getPrototypeOf(Dot).call(this, options, body, labelModule));
}
_createClass(Dot, [{
@@ -30174,47 +31728,46 @@ return /******/ (function(modules) { // webpackBootstrap
key: 'distanceToBorder',
value: function distanceToBorder(ctx, angle) {
this.resize(ctx);
- return this.options.size + this.options.borderWidth;
+ return this.options.size;
}
}]);
return Dot;
- })(_utilShapeBase2['default']);
+ }(_ShapeBase3.default);
- exports['default'] = Dot;
- module.exports = exports['default'];
+ exports.default = Dot;
/***/ },
-/* 73 */
+/* 76 */
/***/ function(module, exports, __webpack_require__) {
'use strict';
- Object.defineProperty(exports, '__esModule', {
+ Object.defineProperty(exports, "__esModule", {
value: true
});
- 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 _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
- var _get = function get(_x, _x2, _x3) { var _again = true; _function: while (_again) { var object = _x, property = _x2, receiver = _x3; _again = false; if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { _x = parent; _x2 = property; _x3 = receiver; _again = true; desc = parent = undefined; continue _function; } } else if ('value' in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } } };
+ var _NodeBase2 = __webpack_require__(68);
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
+ var _NodeBase3 = _interopRequireDefault(_NodeBase2);
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
- function _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
+ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
- var _utilNodeBase = __webpack_require__(65);
+ function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
- var _utilNodeBase2 = _interopRequireDefault(_utilNodeBase);
+ function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
- var Ellipse = (function (_NodeBase) {
+ var Ellipse = function (_NodeBase) {
_inherits(Ellipse, _NodeBase);
function Ellipse(options, body, labelModule) {
_classCallCheck(this, Ellipse);
- _get(Object.getPrototypeOf(Ellipse.prototype), 'constructor', this).call(this, options, body, labelModule);
+ return _possibleConstructorReturn(this, Object.getPrototypeOf(Ellipse).call(this, options, body, labelModule));
}
_createClass(Ellipse, [{
@@ -30238,15 +31791,13 @@ return /******/ (function(modules) { // webpackBootstrap
this.left = x - this.width * 0.5;
this.top = y - this.height * 0.5;
- var borderWidth = this.options.borderWidth;
+ var neutralborderWidth = this.options.borderWidth;
var selectionLineWidth = this.options.borderWidthSelected || 2 * this.options.borderWidth;
+ var borderWidth = (selected ? selectionLineWidth : neutralborderWidth) / this.body.view.scale;
+ ctx.lineWidth = Math.min(this.width, borderWidth);
ctx.strokeStyle = selected ? this.options.color.highlight.border : hover ? this.options.color.hover.border : this.options.color.border;
- ctx.lineWidth = selected ? selectionLineWidth : borderWidth;
- ctx.lineWidth /= this.body.view.scale;
- ctx.lineWidth = Math.min(this.width, ctx.lineWidth);
-
ctx.fillStyle = selected ? this.options.color.highlight.background : hover ? this.options.color.hover.background : this.options.color.background;
ctx.ellipse(this.left, this.top, this.width, this.height);
@@ -30259,11 +31810,16 @@ return /******/ (function(modules) { // webpackBootstrap
//draw dashed border if enabled, save and restore is required for firefox not to crash on unix.
ctx.save();
- this.enableBorderDashes(ctx);
- //draw the border
- ctx.stroke();
- //disable dashed border for other elements
- this.disableBorderDashes(ctx);
+
+ // if borders are zero width, they will be drawn with width 1 by default. This prevents that
+ if (borderWidth > 0) {
+ this.enableBorderDashes(ctx);
+ //draw the border
+ ctx.stroke();
+ //disable dashed border for other elements
+ this.disableBorderDashes(ctx);
+ }
+
ctx.restore();
this.updateBoundingBox(x, y, ctx, selected);
@@ -30295,42 +31851,41 @@ return /******/ (function(modules) { // webpackBootstrap
}]);
return Ellipse;
- })(_utilNodeBase2['default']);
+ }(_NodeBase3.default);
- exports['default'] = Ellipse;
- module.exports = exports['default'];
+ exports.default = Ellipse;
/***/ },
-/* 74 */
+/* 77 */
/***/ function(module, exports, __webpack_require__) {
'use strict';
- Object.defineProperty(exports, '__esModule', {
+ Object.defineProperty(exports, "__esModule", {
value: true
});
- 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 _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
- var _get = function get(_x, _x2, _x3) { var _again = true; _function: while (_again) { var object = _x, property = _x2, receiver = _x3; _again = false; if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { _x = parent; _x2 = property; _x3 = receiver; _again = true; desc = parent = undefined; continue _function; } } else if ('value' in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } } };
+ var _NodeBase2 = __webpack_require__(68);
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
+ var _NodeBase3 = _interopRequireDefault(_NodeBase2);
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
- function _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
+ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
- var _utilNodeBase = __webpack_require__(65);
+ function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
- var _utilNodeBase2 = _interopRequireDefault(_utilNodeBase);
+ function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
- var Icon = (function (_NodeBase) {
+ var Icon = function (_NodeBase) {
_inherits(Icon, _NodeBase);
function Icon(options, body, labelModule) {
_classCallCheck(this, Icon);
- _get(Object.getPrototypeOf(Icon.prototype), 'constructor', this).call(this, options, body, labelModule);
+ return _possibleConstructorReturn(this, Object.getPrototypeOf(Icon).call(this, options, body, labelModule));
}
_createClass(Icon, [{
@@ -30410,43 +31965,44 @@ return /******/ (function(modules) { // webpackBootstrap
}]);
return Icon;
- })(_utilNodeBase2['default']);
+ }(_NodeBase3.default);
- exports['default'] = Icon;
- module.exports = exports['default'];
+ exports.default = Icon;
/***/ },
-/* 75 */
+/* 78 */
/***/ function(module, exports, __webpack_require__) {
'use strict';
- Object.defineProperty(exports, '__esModule', {
+ Object.defineProperty(exports, "__esModule", {
value: true
});
- 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 _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
- var _get = function get(_x, _x2, _x3) { var _again = true; _function: while (_again) { var object = _x, property = _x2, receiver = _x3; _again = false; if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { _x = parent; _x2 = property; _x3 = receiver; _again = true; desc = parent = undefined; continue _function; } } else if ('value' in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } } };
+ var _CircleImageBase2 = __webpack_require__(70);
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
+ var _CircleImageBase3 = _interopRequireDefault(_CircleImageBase2);
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
- function _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
+ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
- var _utilCircleImageBase = __webpack_require__(67);
+ function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
- var _utilCircleImageBase2 = _interopRequireDefault(_utilCircleImageBase);
+ function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
- var Image = (function (_CircleImageBase) {
+ var Image = function (_CircleImageBase) {
_inherits(Image, _CircleImageBase);
function Image(options, body, labelModule, imageObj) {
_classCallCheck(this, Image);
- _get(Object.getPrototypeOf(Image.prototype), 'constructor', this).call(this, options, body, labelModule);
- this.imageObj = imageObj;
+ var _this = _possibleConstructorReturn(this, Object.getPrototypeOf(Image).call(this, options, body, labelModule));
+
+ _this.imageObj = imageObj;
+ return _this;
}
_createClass(Image, [{
@@ -30462,17 +32018,15 @@ return /******/ (function(modules) { // webpackBootstrap
this.top = y - this.height / 2;
if (this.options.shapeProperties.useBorderWithImage === true) {
- var borderWidth = this.options.borderWidth;
-
+ var neutralborderWidth = this.options.borderWidth;
var selectionLineWidth = this.options.borderWidthSelected || 2 * this.options.borderWidth;
+ var borderWidth = (selected ? selectionLineWidth : neutralborderWidth) / this.body.view.scale;
+ ctx.lineWidth = Math.min(this.width, borderWidth);
ctx.beginPath();
// setup the line properties.
ctx.strokeStyle = selected ? this.options.color.highlight.border : hover ? this.options.color.hover.border : this.options.color.border;
- ctx.lineWidth = selected ? selectionLineWidth : borderWidth;
- ctx.lineWidth /= this.body.view.scale;
- ctx.lineWidth = Math.min(this.width, ctx.lineWidth);
// set a fillstyle
ctx.fillStyle = selected ? this.options.color.highlight.background : hover ? this.options.color.hover.background : this.options.color.background;
@@ -30483,11 +32037,14 @@ return /******/ (function(modules) { // webpackBootstrap
//draw dashed border if enabled, save and restore is required for firefox not to crash on unix.
ctx.save();
- this.enableBorderDashes(ctx);
- //draw the border
- ctx.stroke();
- //disable dashed border for other elements
- this.disableBorderDashes(ctx);
+ // if borders are zero width, they will be drawn with width 1 by default. This prevents that
+ if (borderWidth > 0) {
+ this.enableBorderDashes(ctx);
+ //draw the border
+ ctx.stroke();
+ //disable dashed border for other elements
+ this.disableBorderDashes(ctx);
+ }
ctx.restore();
ctx.closePath();
@@ -30520,52 +32077,46 @@ return /******/ (function(modules) { // webpackBootstrap
}, {
key: 'distanceToBorder',
value: function distanceToBorder(ctx, angle) {
- this.resize(ctx);
- var a = this.width / 2;
- var b = this.height / 2;
- var w = Math.sin(angle) * a;
- var h = Math.cos(angle) * b;
- return a * b / Math.sqrt(w * w + h * h);
+ return this._distanceToBorder(ctx, angle);
}
}]);
return Image;
- })(_utilCircleImageBase2['default']);
+ }(_CircleImageBase3.default);
- exports['default'] = Image;
- module.exports = exports['default'];
+ exports.default = Image;
/***/ },
-/* 76 */
+/* 79 */
/***/ function(module, exports, __webpack_require__) {
'use strict';
- Object.defineProperty(exports, '__esModule', {
+ Object.defineProperty(exports, "__esModule", {
value: true
});
- 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 _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
- var _get = function get(_x, _x2, _x3) { var _again = true; _function: while (_again) { var object = _x, property = _x2, receiver = _x3; _again = false; if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { _x = parent; _x2 = property; _x3 = receiver; _again = true; desc = parent = undefined; continue _function; } } else if ('value' in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } } };
+ var _ShapeBase2 = __webpack_require__(74);
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
+ var _ShapeBase3 = _interopRequireDefault(_ShapeBase2);
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
- function _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
+ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
- var _utilShapeBase = __webpack_require__(71);
+ function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
- var _utilShapeBase2 = _interopRequireDefault(_utilShapeBase);
+ function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
- var Square = (function (_ShapeBase) {
+ var Square = function (_ShapeBase) {
_inherits(Square, _ShapeBase);
function Square(options, body, labelModule) {
_classCallCheck(this, Square);
- _get(Object.getPrototypeOf(Square.prototype), 'constructor', this).call(this, options, body, labelModule);
+ return _possibleConstructorReturn(this, Object.getPrototypeOf(Square).call(this, options, body, labelModule));
}
_createClass(Square, [{
@@ -30586,42 +32137,41 @@ return /******/ (function(modules) { // webpackBootstrap
}]);
return Square;
- })(_utilShapeBase2['default']);
+ }(_ShapeBase3.default);
- exports['default'] = Square;
- module.exports = exports['default'];
+ exports.default = Square;
/***/ },
-/* 77 */
+/* 80 */
/***/ function(module, exports, __webpack_require__) {
'use strict';
- Object.defineProperty(exports, '__esModule', {
+ Object.defineProperty(exports, "__esModule", {
value: true
});
- 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 _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
- var _get = function get(_x, _x2, _x3) { var _again = true; _function: while (_again) { var object = _x, property = _x2, receiver = _x3; _again = false; if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { _x = parent; _x2 = property; _x3 = receiver; _again = true; desc = parent = undefined; continue _function; } } else if ('value' in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } } };
+ var _ShapeBase2 = __webpack_require__(74);
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
+ var _ShapeBase3 = _interopRequireDefault(_ShapeBase2);
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
- function _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
+ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
- var _utilShapeBase = __webpack_require__(71);
+ function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
- var _utilShapeBase2 = _interopRequireDefault(_utilShapeBase);
+ function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
- var Star = (function (_ShapeBase) {
+ var Star = function (_ShapeBase) {
_inherits(Star, _ShapeBase);
function Star(options, body, labelModule) {
_classCallCheck(this, Star);
- _get(Object.getPrototypeOf(Star.prototype), 'constructor', this).call(this, options, body, labelModule);
+ return _possibleConstructorReturn(this, Object.getPrototypeOf(Star).call(this, options, body, labelModule));
}
_createClass(Star, [{
@@ -30642,42 +32192,41 @@ return /******/ (function(modules) { // webpackBootstrap
}]);
return Star;
- })(_utilShapeBase2['default']);
+ }(_ShapeBase3.default);
- exports['default'] = Star;
- module.exports = exports['default'];
+ exports.default = Star;
/***/ },
-/* 78 */
+/* 81 */
/***/ function(module, exports, __webpack_require__) {
'use strict';
- Object.defineProperty(exports, '__esModule', {
+ Object.defineProperty(exports, "__esModule", {
value: true
});
- 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 _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
- var _get = function get(_x, _x2, _x3) { var _again = true; _function: while (_again) { var object = _x, property = _x2, receiver = _x3; _again = false; if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { _x = parent; _x2 = property; _x3 = receiver; _again = true; desc = parent = undefined; continue _function; } } else if ('value' in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } } };
+ var _NodeBase2 = __webpack_require__(68);
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
+ var _NodeBase3 = _interopRequireDefault(_NodeBase2);
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
- function _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
+ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
- var _utilNodeBase = __webpack_require__(65);
+ function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
- var _utilNodeBase2 = _interopRequireDefault(_utilNodeBase);
+ function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
- var Text = (function (_NodeBase) {
+ var Text = function (_NodeBase) {
_inherits(Text, _NodeBase);
function Text(options, body, labelModule) {
_classCallCheck(this, Text);
- _get(Object.getPrototypeOf(Text.prototype), 'constructor', this).call(this, options, body, labelModule);
+ return _possibleConstructorReturn(this, Object.getPrototypeOf(Text).call(this, options, body, labelModule));
}
_createClass(Text, [{
@@ -30728,42 +32277,41 @@ return /******/ (function(modules) { // webpackBootstrap
}]);
return Text;
- })(_utilNodeBase2['default']);
+ }(_NodeBase3.default);
- exports['default'] = Text;
- module.exports = exports['default'];
+ exports.default = Text;
/***/ },
-/* 79 */
+/* 82 */
/***/ function(module, exports, __webpack_require__) {
'use strict';
- Object.defineProperty(exports, '__esModule', {
+ Object.defineProperty(exports, "__esModule", {
value: true
});
- 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 _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
- var _get = function get(_x, _x2, _x3) { var _again = true; _function: while (_again) { var object = _x, property = _x2, receiver = _x3; _again = false; if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { _x = parent; _x2 = property; _x3 = receiver; _again = true; desc = parent = undefined; continue _function; } } else if ('value' in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } } };
+ var _ShapeBase2 = __webpack_require__(74);
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
+ var _ShapeBase3 = _interopRequireDefault(_ShapeBase2);
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
- function _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
+ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
- var _utilShapeBase = __webpack_require__(71);
+ function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
- var _utilShapeBase2 = _interopRequireDefault(_utilShapeBase);
+ function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
- var Triangle = (function (_ShapeBase) {
+ var Triangle = function (_ShapeBase) {
_inherits(Triangle, _ShapeBase);
function Triangle(options, body, labelModule) {
_classCallCheck(this, Triangle);
- _get(Object.getPrototypeOf(Triangle.prototype), 'constructor', this).call(this, options, body, labelModule);
+ return _possibleConstructorReturn(this, Object.getPrototypeOf(Triangle).call(this, options, body, labelModule));
}
_createClass(Triangle, [{
@@ -30784,42 +32332,41 @@ return /******/ (function(modules) { // webpackBootstrap
}]);
return Triangle;
- })(_utilShapeBase2['default']);
+ }(_ShapeBase3.default);
- exports['default'] = Triangle;
- module.exports = exports['default'];
+ exports.default = Triangle;
/***/ },
-/* 80 */
+/* 83 */
/***/ function(module, exports, __webpack_require__) {
'use strict';
- Object.defineProperty(exports, '__esModule', {
+ Object.defineProperty(exports, "__esModule", {
value: true
});
- 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 _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
- var _get = function get(_x, _x2, _x3) { var _again = true; _function: while (_again) { var object = _x, property = _x2, receiver = _x3; _again = false; if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { _x = parent; _x2 = property; _x3 = receiver; _again = true; desc = parent = undefined; continue _function; } } else if ('value' in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } } };
+ var _ShapeBase2 = __webpack_require__(74);
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
+ var _ShapeBase3 = _interopRequireDefault(_ShapeBase2);
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
- function _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
+ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
- var _utilShapeBase = __webpack_require__(71);
+ function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
- var _utilShapeBase2 = _interopRequireDefault(_utilShapeBase);
+ function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
- var TriangleDown = (function (_ShapeBase) {
+ var TriangleDown = function (_ShapeBase) {
_inherits(TriangleDown, _ShapeBase);
function TriangleDown(options, body, labelModule) {
_classCallCheck(this, TriangleDown);
- _get(Object.getPrototypeOf(TriangleDown.prototype), 'constructor', this).call(this, options, body, labelModule);
+ return _possibleConstructorReturn(this, Object.getPrototypeOf(TriangleDown).call(this, options, body, labelModule));
}
_createClass(TriangleDown, [{
@@ -30840,40 +32387,39 @@ return /******/ (function(modules) { // webpackBootstrap
}]);
return TriangleDown;
- })(_utilShapeBase2['default']);
+ }(_ShapeBase3.default);
- exports['default'] = TriangleDown;
- module.exports = exports['default'];
+ exports.default = TriangleDown;
/***/ },
-/* 81 */
+/* 84 */
/***/ function(module, exports, __webpack_require__) {
'use strict';
- Object.defineProperty(exports, '__esModule', {
+ Object.defineProperty(exports, "__esModule", {
value: true
});
- 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 _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; }; }();
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
+ var _Edge = __webpack_require__(85);
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }
+ var _Edge2 = _interopRequireDefault(_Edge);
- var _componentsEdge = __webpack_require__(82);
+ var _Label = __webpack_require__(66);
- var _componentsEdge2 = _interopRequireDefault(_componentsEdge);
+ var _Label2 = _interopRequireDefault(_Label);
- var _componentsSharedLabel = __webpack_require__(63);
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
- var _componentsSharedLabel2 = _interopRequireDefault(_componentsSharedLabel);
+ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
var util = __webpack_require__(1);
- var DataSet = __webpack_require__(8);
- var DataView = __webpack_require__(10);
+ var DataSet = __webpack_require__(9);
+ var DataView = __webpack_require__(11);
- var EdgesHandler = (function () {
+ var EdgesHandler = function () {
function EdgesHandler(body, images, groups) {
var _this = this;
@@ -30905,6 +32451,7 @@ return /******/ (function(modules) { // webpackBootstrap
middle: { enabled: false, scaleFactor: 1 },
from: { enabled: false, scaleFactor: 1 }
},
+ arrowStrikethrough: true,
color: {
color: '#848484',
highlight: '#848484',
@@ -30951,6 +32498,7 @@ return /******/ (function(modules) { // webpackBootstrap
selfReferenceSize: 20,
shadow: {
enabled: false,
+ color: 'rgba(0,0,0,0.5)',
size: 10,
x: 5,
y: 5
@@ -30987,7 +32535,7 @@ return /******/ (function(modules) { // webpackBootstrap
var edge = _this2.body.edges[edgeId];
var edgeData = _this2.body.data.edges._data[edgeId];
- // only forcilby remove the smooth curve if the data has been set of the edge has the smooth curves defined.
+ // only forcibly remove the smooth curve if the data has been set of the edge has the smooth curves defined.
// this is because a change in the global would not affect these curves.
if (edgeData !== undefined) {
var edgeOptions = edgeData.smooth;
@@ -31019,6 +32567,9 @@ return /******/ (function(modules) { // webpackBootstrap
this.body.emitter.on("refreshEdges", this.refresh.bind(this));
this.body.emitter.on("refresh", this.refresh.bind(this));
this.body.emitter.on("destroy", function () {
+ util.forEach(_this2.edgesListeners, function (callback, event) {
+ if (_this2.body.data.edges) _this2.body.data.edges.off(event, callback);
+ });
delete _this2.body.functions.createEdge;
delete _this2.edgesListeners.add;
delete _this2.edgesListeners.update;
@@ -31031,9 +32582,9 @@ return /******/ (function(modules) { // webpackBootstrap
value: function setOptions(options) {
if (options !== undefined) {
// use the parser from the Edge class to fill in all shorthand notations
- _componentsEdge2['default'].parseOptions(this.options, options);
+ _Edge2.default.parseOptions(this.options, options);
- // hanlde multiple input cases for color
+ // handle multiple input cases for color
if (options.color !== undefined) {
this.markAllEdgesAsDirty();
}
@@ -31051,10 +32602,10 @@ return /******/ (function(modules) { // webpackBootstrap
// update fonts in all edges
if (options.font !== undefined) {
// use the parser from the Label class to fill in all shorthand notations
- _componentsSharedLabel2['default'].parseOptions(this.options.font, options);
- for (var edgeId in this.body.edges) {
- if (this.body.edges.hasOwnProperty(edgeId)) {
- this.body.edges[edgeId].updateLabelModule();
+ _Label2.default.parseOptions(this.options.font, options);
+ for (var _edgeId in this.body.edges) {
+ if (this.body.edges.hasOwnProperty(_edgeId)) {
+ this.body.edges[_edgeId].updateLabelModule();
}
}
}
@@ -31072,6 +32623,7 @@ return /******/ (function(modules) { // webpackBootstrap
* @private
* @private
*/
+
}, {
key: 'setData',
value: function setData(edges) {
@@ -31125,6 +32677,7 @@ return /******/ (function(modules) { // webpackBootstrap
* @param {Number[] | String[]} ids
* @private
*/
+
}, {
key: 'add',
value: function add(ids) {
@@ -31155,6 +32708,7 @@ return /******/ (function(modules) { // webpackBootstrap
* @param {Number[] | String[]} ids
* @private
*/
+
}, {
key: 'update',
value: function update(ids) {
@@ -31189,6 +32743,7 @@ return /******/ (function(modules) { // webpackBootstrap
* @param {Number[] | String[]} ids
* @private
*/
+
}, {
key: 'remove',
value: function remove(ids) {
@@ -31223,7 +32778,7 @@ return /******/ (function(modules) { // webpackBootstrap
}, {
key: 'create',
value: function create(properties) {
- return new _componentsEdge2['default'](properties, this.body, this.options);
+ return new _Edge2.default(properties, this.body, this.options);
}
}, {
key: 'markAllEdgesAsDirty',
@@ -31237,6 +32792,7 @@ return /******/ (function(modules) { // webpackBootstrap
* Reconnect all edges
* @private
*/
+
}, {
key: 'reconnectEdges',
value: function reconnectEdges() {
@@ -31277,46 +32833,49 @@ return /******/ (function(modules) { // webpackBootstrap
}]);
return EdgesHandler;
- })();
+ }();
- exports['default'] = EdgesHandler;
- module.exports = exports['default'];
+ exports.default = EdgesHandler;
/***/ },
-/* 82 */
+/* 85 */
/***/ function(module, exports, __webpack_require__) {
'use strict';
- Object.defineProperty(exports, '__esModule', {
+ Object.defineProperty(exports, "__esModule", {
value: true
});
- 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 _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; };
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': 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; }; }();
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }
+ var _Label = __webpack_require__(66);
- var _sharedLabel = __webpack_require__(63);
+ var _Label2 = _interopRequireDefault(_Label);
- var _sharedLabel2 = _interopRequireDefault(_sharedLabel);
+ var _CubicBezierEdge = __webpack_require__(86);
- var _edgesCubicBezierEdge = __webpack_require__(83);
+ var _CubicBezierEdge2 = _interopRequireDefault(_CubicBezierEdge);
- var _edgesCubicBezierEdge2 = _interopRequireDefault(_edgesCubicBezierEdge);
+ var _BezierEdgeDynamic = __webpack_require__(90);
- var _edgesBezierEdgeDynamic = __webpack_require__(87);
+ var _BezierEdgeDynamic2 = _interopRequireDefault(_BezierEdgeDynamic);
- var _edgesBezierEdgeDynamic2 = _interopRequireDefault(_edgesBezierEdgeDynamic);
+ var _BezierEdgeStatic = __webpack_require__(91);
- var _edgesBezierEdgeStatic = __webpack_require__(88);
+ var _BezierEdgeStatic2 = _interopRequireDefault(_BezierEdgeStatic);
- var _edgesBezierEdgeStatic2 = _interopRequireDefault(_edgesBezierEdgeStatic);
+ var _StraightEdge = __webpack_require__(92);
- var _edgesStraightEdge = __webpack_require__(89);
+ var _StraightEdge2 = _interopRequireDefault(_StraightEdge);
- var _edgesStraightEdge2 = _interopRequireDefault(_edgesStraightEdge);
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
+
+ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
+
+ var util = __webpack_require__(1);
/**
* @class Edge
@@ -31333,9 +32892,8 @@ return /******/ (function(modules) { // webpackBootstrap
* @param {Object} constants An object with default values for
* example for the color
*/
- var util = __webpack_require__(1);
- var Edge = (function () {
+ var Edge = function () {
function Edge(options, body, globalOptions) {
_classCallCheck(this, Edge);
@@ -31365,7 +32923,7 @@ return /******/ (function(modules) { // webpackBootstrap
this.connected = false;
- this.labelModule = new _sharedLabel2['default'](this.body, this.options);
+ this.labelModule = new _Label2.default(this.body, this.options, true /* It's an edge label */);
this.setOptions(options);
}
@@ -31376,6 +32934,7 @@ return /******/ (function(modules) { // webpackBootstrap
* @param doNotEmit
*/
+
_createClass(Edge, [{
key: 'setOptions',
value: function setOptions(options) {
@@ -31423,6 +32982,7 @@ return /******/ (function(modules) { // webpackBootstrap
key: 'updateLabelModule',
// set the object back to the global options
+
/**
* update the options in the label module
*/
@@ -31437,6 +32997,7 @@ return /******/ (function(modules) { // webpackBootstrap
* update the edge type, set the options
* @returns {boolean}
*/
+
}, {
key: 'updateEdgeType',
value: function updateEdgeType() {
@@ -31444,16 +33005,16 @@ return /******/ (function(modules) { // webpackBootstrap
var changeInType = true;
var smooth = this.options.smooth;
if (this.edgeType !== undefined) {
- if (this.edgeType instanceof _edgesBezierEdgeDynamic2['default'] && smooth.enabled === true && smooth.type === 'dynamic') {
+ if (this.edgeType instanceof _BezierEdgeDynamic2.default && smooth.enabled === true && smooth.type === 'dynamic') {
changeInType = false;
}
- if (this.edgeType instanceof _edgesCubicBezierEdge2['default'] && smooth.enabled === true && smooth.type === 'cubicBezier') {
+ if (this.edgeType instanceof _CubicBezierEdge2.default && smooth.enabled === true && smooth.type === 'cubicBezier') {
changeInType = false;
}
- if (this.edgeType instanceof _edgesBezierEdgeStatic2['default'] && smooth.enabled === true && smooth.type !== 'dynamic' && smooth.type !== 'cubicBezier') {
+ if (this.edgeType instanceof _BezierEdgeStatic2.default && smooth.enabled === true && smooth.type !== 'dynamic' && smooth.type !== 'cubicBezier') {
changeInType = false;
}
- if (this.edgeType instanceof _edgesStraightEdge2['default'] && smooth.enabled === false) {
+ if (this.edgeType instanceof _StraightEdge2.default && smooth.enabled === false) {
changeInType = false;
}
@@ -31466,14 +33027,14 @@ return /******/ (function(modules) { // webpackBootstrap
if (this.options.smooth.enabled === true) {
if (this.options.smooth.type === 'dynamic') {
dataChanged = true;
- this.edgeType = new _edgesBezierEdgeDynamic2['default'](this.options, this.body, this.labelModule);
+ this.edgeType = new _BezierEdgeDynamic2.default(this.options, this.body, this.labelModule);
} else if (this.options.smooth.type === 'cubicBezier') {
- this.edgeType = new _edgesCubicBezierEdge2['default'](this.options, this.body, this.labelModule);
+ this.edgeType = new _CubicBezierEdge2.default(this.options, this.body, this.labelModule);
} else {
- this.edgeType = new _edgesBezierEdgeStatic2['default'](this.options, this.body, this.labelModule);
+ this.edgeType = new _BezierEdgeStatic2.default(this.options, this.body, this.labelModule);
}
} else {
- this.edgeType = new _edgesStraightEdge2['default'](this.options, this.body, this.labelModule);
+ this.edgeType = new _StraightEdge2.default(this.options, this.body, this.labelModule);
}
} else {
// if nothing changes, we just set the options.
@@ -31486,6 +33047,7 @@ return /******/ (function(modules) { // webpackBootstrap
/**
* Connect an edge to its nodes
*/
+
}, {
key: 'connect',
value: function connect() {
@@ -31513,6 +33075,7 @@ return /******/ (function(modules) { // webpackBootstrap
/**
* Disconnect an edge from its nodes
*/
+
}, {
key: 'disconnect',
value: function disconnect() {
@@ -31533,6 +33096,7 @@ return /******/ (function(modules) { // webpackBootstrap
* @return {string} title The title of the edge, or undefined when no title
* has been set.
*/
+
}, {
key: 'getTitle',
value: function getTitle() {
@@ -31543,6 +33107,7 @@ return /******/ (function(modules) { // webpackBootstrap
* check if this node is selecte
* @return {boolean} selected True if node is selected, else false
*/
+
}, {
key: 'isSelected',
value: function isSelected() {
@@ -31553,6 +33118,7 @@ return /******/ (function(modules) { // webpackBootstrap
* Retrieve the value of the edge. Can be undefined
* @return {Number} value
*/
+
}, {
key: 'getValue',
value: function getValue() {
@@ -31566,6 +33132,7 @@ return /******/ (function(modules) { // webpackBootstrap
* @param {Number} max
* @param total
*/
+
}, {
key: 'setValueRange',
value: function setValueRange(min, max, total) {
@@ -31607,24 +33174,49 @@ return /******/ (function(modules) { // webpackBootstrap
* The 2d context of a HTML canvas can be retrieved by canvas.getContext("2d");
* @param {CanvasRenderingContext2D} ctx
*/
+
}, {
key: 'draw',
value: function draw(ctx) {
- var via = this.edgeType.drawLine(ctx, this.selected, this.hover);
- this.drawArrows(ctx, via);
- this.drawLabel(ctx, via);
+ // get the via node from the edge type
+ var viaNode = this.edgeType.getViaNode();
+ var arrowData = {};
+
+ // restore edge targets to defaults
+ this.edgeType.fromPoint = this.edgeType.from;
+ this.edgeType.toPoint = this.edgeType.to;
+
+ // from and to arrows give a different end point for edges. we set them here
+ if (this.options.arrows.from.enabled === true) {
+ arrowData.from = this.edgeType.getArrowData(ctx, 'from', viaNode, this.selected, this.hover);
+ if (this.options.arrowStrikethrough === false) this.edgeType.fromPoint = arrowData.from.core;
+ }
+ if (this.options.arrows.to.enabled === true) {
+ arrowData.to = this.edgeType.getArrowData(ctx, 'to', viaNode, this.selected, this.hover);
+ if (this.options.arrowStrikethrough === false) this.edgeType.toPoint = arrowData.to.core;
+ }
+
+ // the middle arrow depends on the line, which can depend on the to and from arrows so we do this one lastly.
+ if (this.options.arrows.middle.enabled === true) {
+ arrowData.middle = this.edgeType.getArrowData(ctx, 'middle', viaNode, this.selected, this.hover);
+ }
+
+ // draw everything
+ this.edgeType.drawLine(ctx, this.selected, this.hover, viaNode);
+ this.drawArrows(ctx, arrowData);
+ this.drawLabel(ctx, viaNode);
}
}, {
key: 'drawArrows',
- value: function drawArrows(ctx, viaNode) {
+ value: function drawArrows(ctx, arrowData) {
if (this.options.arrows.from.enabled === true) {
- this.edgeType.drawArrowHead(ctx, 'from', viaNode, this.selected, this.hover);
+ this.edgeType.drawArrowHead(ctx, this.selected, this.hover, arrowData.from);
}
if (this.options.arrows.middle.enabled === true) {
- this.edgeType.drawArrowHead(ctx, 'middle', viaNode, this.selected, this.hover);
+ this.edgeType.drawArrowHead(ctx, this.selected, this.hover, arrowData.middle);
}
if (this.options.arrows.to.enabled === true) {
- this.edgeType.drawArrowHead(ctx, 'to', viaNode, this.selected, this.hover);
+ this.edgeType.drawArrowHead(ctx, this.selected, this.hover, arrowData.to);
}
}
}, {
@@ -31673,6 +33265,7 @@ return /******/ (function(modules) { // webpackBootstrap
* @param {Object} obj an object with parameters left, top
* @return {boolean} True if location is located on the edge
*/
+
}, {
key: 'isOverlappingWith',
value: function isOverlappingWith(obj) {
@@ -31698,6 +33291,7 @@ return /******/ (function(modules) { // webpackBootstrap
* @param {CanvasRenderingContext2D} ctx
* @private
*/
+
}, {
key: '_rotateForLabelAlignment',
value: function _rotateForLabelAlignment(ctx) {
@@ -31722,6 +33316,7 @@ return /******/ (function(modules) { // webpackBootstrap
* @return {Object} point
* @private
*/
+
}, {
key: '_pointOnCircle',
value: function _pointOnCircle(x, y, radius, percentage) {
@@ -31746,6 +33341,7 @@ return /******/ (function(modules) { // webpackBootstrap
* cleans all required things on delete
* @returns {*}
*/
+
}, {
key: 'cleanup',
value: function cleanup() {
@@ -31757,7 +33353,7 @@ return /******/ (function(modules) { // webpackBootstrap
var allowDeletion = arguments.length <= 2 || arguments[2] === undefined ? false : arguments[2];
var globalOptions = arguments.length <= 3 || arguments[3] === undefined ? {} : arguments[3];
- var fields = ['id', 'from', 'hidden', 'hoverWidth', 'label', 'labelHighlightBold', 'length', 'line', 'opacity', 'physics', 'scaling', 'selectionWidth', 'selfReferenceSize', 'to', 'title', 'value', 'width'];
+ var fields = ['arrowStrikethrough', 'id', 'from', 'hidden', 'hoverWidth', 'label', 'labelHighlightBold', 'length', 'line', 'opacity', 'physics', 'scaling', 'selectionWidth', 'selfReferenceSize', 'to', 'title', 'value', 'width'];
// only deep extend the items in the field array. These do not have shorthand.
util.selectiveDeepExtend(fields, parentOptions, newOptions, allowDeletion);
@@ -31784,20 +33380,14 @@ return /******/ (function(modules) { // webpackBootstrap
parentOptions.scaling = Object.create(globalOptions.scaling); // this sets the pointer of the option back to the global option.
}
- // hanlde multiple input cases for arrows
+ // handle multiple input cases for arrows
if (newOptions.arrows !== undefined && newOptions.arrows !== null) {
if (typeof newOptions.arrows === 'string') {
var arrows = newOptions.arrows.toLowerCase();
- if (arrows.indexOf("to") != -1) {
- parentOptions.arrows.to.enabled = true;
- }
- if (arrows.indexOf("middle") != -1) {
- parentOptions.arrows.middle.enabled = true;
- }
- if (arrows.indexOf("from") != -1) {
- parentOptions.arrows.from.enabled = true;
- }
- } else if (typeof newOptions.arrows === 'object') {
+ parentOptions.arrows.to.enabled = arrows.indexOf("to") != -1;
+ parentOptions.arrows.middle.enabled = arrows.indexOf("middle") != -1;
+ parentOptions.arrows.from.enabled = arrows.indexOf("from") != -1;
+ } else if (_typeof(newOptions.arrows) === 'object') {
util.mergeOptions(parentOptions.arrows, newOptions.arrows, 'to', allowDeletion, globalOptions.arrows);
util.mergeOptions(parentOptions.arrows, newOptions.arrows, 'middle', allowDeletion, globalOptions.arrows);
util.mergeOptions(parentOptions.arrows, newOptions.arrows, 'from', allowDeletion, globalOptions.arrows);
@@ -31808,7 +33398,7 @@ return /******/ (function(modules) { // webpackBootstrap
parentOptions.arrows = Object.create(globalOptions.arrows); // this sets the pointer of the option back to the global option.
}
- // hanlde multiple input cases for color
+ // handle multiple input cases for color
if (newOptions.color !== undefined && newOptions.color !== null) {
// make a copy of the parent object in case this is referring to the global one (due to object create once, then update)
parentOptions.color = util.deepExtend({}, parentOptions.color, true);
@@ -31845,7 +33435,7 @@ return /******/ (function(modules) { // webpackBootstrap
// handle the font settings
if (newOptions.font !== undefined && newOptions.font !== null) {
- _sharedLabel2['default'].parseOptions(parentOptions.font, newOptions);
+ _Label2.default.parseOptions(parentOptions.font, newOptions);
} else if (allowDeletion === true && newOptions.font === null) {
parentOptions.font = util.bridgeObject(globalOptions.font);
}
@@ -31853,44 +33443,43 @@ return /******/ (function(modules) { // webpackBootstrap
}]);
return Edge;
- })();
+ }();
- exports['default'] = Edge;
- module.exports = exports['default'];
+ exports.default = Edge;
/***/ },
-/* 83 */
+/* 86 */
/***/ function(module, exports, __webpack_require__) {
'use strict';
- Object.defineProperty(exports, '__esModule', {
+ Object.defineProperty(exports, "__esModule", {
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 _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 _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
- var _get = function get(_x3, _x4, _x5) { var _again = true; _function: while (_again) { var object = _x3, property = _x4, receiver = _x5; _again = false; if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { _x3 = parent; _x4 = property; _x5 = receiver; _again = true; desc = parent = undefined; continue _function; } } else if ('value' in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } } };
+ var _CubicBezierEdgeBase2 = __webpack_require__(87);
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
+ var _CubicBezierEdgeBase3 = _interopRequireDefault(_CubicBezierEdgeBase2);
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
- function _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
+ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
- var _utilCubicBezierEdgeBase = __webpack_require__(84);
+ function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
- var _utilCubicBezierEdgeBase2 = _interopRequireDefault(_utilCubicBezierEdgeBase);
+ function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
- var CubicBezierEdge = (function (_CubicBezierEdgeBase) {
+ var CubicBezierEdge = function (_CubicBezierEdgeBase) {
_inherits(CubicBezierEdge, _CubicBezierEdgeBase);
function CubicBezierEdge(options, body, labelModule) {
_classCallCheck(this, CubicBezierEdge);
- _get(Object.getPrototypeOf(CubicBezierEdge.prototype), 'constructor', this).call(this, options, body, labelModule);
+ return _possibleConstructorReturn(this, Object.getPrototypeOf(CubicBezierEdge).call(this, options, body, labelModule));
}
/**
@@ -31899,36 +33488,28 @@ return /******/ (function(modules) { // webpackBootstrap
* @private
*/
+
_createClass(CubicBezierEdge, [{
key: '_line',
- value: function _line(ctx) {
+ value: function _line(ctx, viaNodes) {
// get the coordinates of the support points.
-
- var _getViaCoordinates2 = this._getViaCoordinates();
-
- var _getViaCoordinates22 = _slicedToArray(_getViaCoordinates2, 2);
-
- var via1 = _getViaCoordinates22[0];
- var via2 = _getViaCoordinates22[1];
-
- var returnValue = [via1, via2];
+ var via1 = viaNodes[0];
+ var via2 = viaNodes[1];
// start drawing the line.
ctx.beginPath();
- ctx.moveTo(this.from.x, this.from.y);
+ ctx.moveTo(this.fromPoint.x, this.fromPoint.y);
// fallback to normal straight edges
- if (via1.x === undefined) {
- ctx.lineTo(this.to.x, this.to.y);
- returnValue = undefined;
+ if (viaNodes === undefined || via1.x === undefined) {
+ ctx.lineTo(this.toPoint.x, this.toPoint.y);
} else {
- ctx.bezierCurveTo(via1.x, via1.y, via2.x, via2.y, this.to.x, this.to.y);
+ ctx.bezierCurveTo(via1.x, via1.y, via2.x, via2.y, this.toPoint.x, this.toPoint.y);
}
// draw shadow if enabled
this.enableShadow(ctx);
ctx.stroke();
this.disableShadow(ctx);
- return returnValue;
}
}, {
key: '_getViaCoordinates',
@@ -31936,11 +33517,11 @@ return /******/ (function(modules) { // webpackBootstrap
var dx = this.from.x - this.to.x;
var dy = this.from.y - this.to.y;
- var x1 = undefined,
- y1 = undefined,
- x2 = undefined,
- y2 = undefined;
- var roundness = this.options.smooth.roundness;;
+ var x1 = void 0,
+ y1 = void 0,
+ x2 = void 0,
+ y2 = void 0;
+ var roundness = this.options.smooth.roundness;
// horizontal if x > y or if direction is forced or if direction is horizontal
if ((Math.abs(dx) > Math.abs(dy) || this.options.smooth.forceDirection === true || this.options.smooth.forceDirection === 'horizontal') && this.options.smooth.forceDirection !== 'vertical') {
@@ -31958,6 +33539,11 @@ return /******/ (function(modules) { // webpackBootstrap
return [{ x: x1, y: y1 }, { x: x2, y: y2 }];
}
}, {
+ key: 'getViaNode',
+ value: function getViaNode() {
+ return this._getViaCoordinates();
+ }
+ }, {
key: '_findBorderPosition',
value: function _findBorderPosition(nearNode, ctx) {
return this._findBorderPositionBezier(nearNode, ctx);
@@ -31982,15 +33568,16 @@ return /******/ (function(modules) { // webpackBootstrap
* @returns {{x: number, y: number}}
* @private
*/
+
}, {
key: 'getPoint',
value: function getPoint(percentage) {
var _ref3 = arguments.length <= 1 || arguments[1] === undefined ? this._getViaCoordinates() : arguments[1];
- var _ref32 = _slicedToArray(_ref3, 2);
+ var _ref4 = _slicedToArray(_ref3, 2);
- var via1 = _ref32[0];
- var via2 = _ref32[1];
+ var via1 = _ref4[0];
+ var via2 = _ref4[1];
var t = percentage;
var vec = [];
@@ -31998,50 +33585,49 @@ return /******/ (function(modules) { // webpackBootstrap
vec[1] = 3 * t * Math.pow(1 - t, 2);
vec[2] = 3 * Math.pow(t, 2) * (1 - t);
vec[3] = Math.pow(t, 3);
- var x = vec[0] * this.from.x + vec[1] * via1.x + vec[2] * via2.x + vec[3] * this.to.x;
- var y = vec[0] * this.from.y + vec[1] * via1.y + vec[2] * via2.y + vec[3] * this.to.y;
+ var x = vec[0] * this.fromPoint.x + vec[1] * via1.x + vec[2] * via2.x + vec[3] * this.toPoint.x;
+ var y = vec[0] * this.fromPoint.y + vec[1] * via1.y + vec[2] * via2.y + vec[3] * this.toPoint.y;
return { x: x, y: y };
}
}]);
return CubicBezierEdge;
- })(_utilCubicBezierEdgeBase2['default']);
+ }(_CubicBezierEdgeBase3.default);
- exports['default'] = CubicBezierEdge;
- module.exports = exports['default'];
+ exports.default = CubicBezierEdge;
/***/ },
-/* 84 */
+/* 87 */
/***/ function(module, exports, __webpack_require__) {
'use strict';
- Object.defineProperty(exports, '__esModule', {
+ Object.defineProperty(exports, "__esModule", {
value: true
});
- 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 _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
- var _get = function get(_x, _x2, _x3) { var _again = true; _function: while (_again) { var object = _x, property = _x2, receiver = _x3; _again = false; if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { _x = parent; _x2 = property; _x3 = receiver; _again = true; desc = parent = undefined; continue _function; } } else if ('value' in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } } };
+ var _BezierEdgeBase2 = __webpack_require__(88);
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
+ var _BezierEdgeBase3 = _interopRequireDefault(_BezierEdgeBase2);
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
- function _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
+ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
- var _BezierEdgeBase2 = __webpack_require__(85);
+ function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
- var _BezierEdgeBase3 = _interopRequireDefault(_BezierEdgeBase2);
+ function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
- var CubicBezierEdgeBase = (function (_BezierEdgeBase) {
+ var CubicBezierEdgeBase = function (_BezierEdgeBase) {
_inherits(CubicBezierEdgeBase, _BezierEdgeBase);
function CubicBezierEdgeBase(options, body, labelModule) {
_classCallCheck(this, CubicBezierEdgeBase);
- _get(Object.getPrototypeOf(CubicBezierEdgeBase.prototype), 'constructor', this).call(this, options, body, labelModule);
+ return _possibleConstructorReturn(this, Object.getPrototypeOf(CubicBezierEdgeBase).call(this, options, body, labelModule));
}
/**
@@ -32058,16 +33644,17 @@ return /******/ (function(modules) { // webpackBootstrap
* @private
*/
+
_createClass(CubicBezierEdgeBase, [{
key: '_getDistanceToBezierEdge',
value: function _getDistanceToBezierEdge(x1, y1, x2, y2, x3, y3, via1, via2) {
// x3,y3 is the point
var minDistance = 1e9;
- var distance = undefined;
- var i = undefined,
- t = undefined,
- x = undefined,
- y = undefined;
+ var distance = void 0;
+ var i = void 0,
+ t = void 0,
+ x = void 0,
+ y = void 0;
var lastX = x1;
var lastY = y1;
var vec = [0, 0, 0, 0];
@@ -32092,42 +33679,41 @@ return /******/ (function(modules) { // webpackBootstrap
}]);
return CubicBezierEdgeBase;
- })(_BezierEdgeBase3['default']);
+ }(_BezierEdgeBase3.default);
- exports['default'] = CubicBezierEdgeBase;
- module.exports = exports['default'];
+ exports.default = CubicBezierEdgeBase;
/***/ },
-/* 85 */
+/* 88 */
/***/ function(module, exports, __webpack_require__) {
'use strict';
- Object.defineProperty(exports, '__esModule', {
+ Object.defineProperty(exports, "__esModule", {
value: true
});
- 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 _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
- var _get = function get(_x2, _x3, _x4) { var _again = true; _function: while (_again) { var object = _x2, property = _x3, receiver = _x4; _again = false; if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { _x2 = parent; _x3 = property; _x4 = receiver; _again = true; desc = parent = undefined; continue _function; } } else if ('value' in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } } };
+ var _EdgeBase2 = __webpack_require__(89);
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
+ var _EdgeBase3 = _interopRequireDefault(_EdgeBase2);
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
- function _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
+ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
- var _EdgeBase2 = __webpack_require__(86);
+ function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
- var _EdgeBase3 = _interopRequireDefault(_EdgeBase2);
+ function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
- var BezierEdgeBase = (function (_EdgeBase) {
+ var BezierEdgeBase = function (_EdgeBase) {
_inherits(BezierEdgeBase, _EdgeBase);
function BezierEdgeBase(options, body, labelModule) {
_classCallCheck(this, BezierEdgeBase);
- _get(Object.getPrototypeOf(BezierEdgeBase.prototype), 'constructor', this).call(this, options, body, labelModule);
+ return _possibleConstructorReturn(this, Object.getPrototypeOf(BezierEdgeBase).call(this, options, body, labelModule));
}
/**
@@ -32144,6 +33730,7 @@ return /******/ (function(modules) { // webpackBootstrap
* @param viaNode
*/
+
_createClass(BezierEdgeBase, [{
key: '_findBorderPositionBezier',
value: function _findBorderPositionBezier(nearNode, ctx) {
@@ -32206,16 +33793,17 @@ return /******/ (function(modules) { // webpackBootstrap
* @param {number} y3 point to check y
* @private
*/
+
}, {
key: '_getDistanceToBezierEdge',
value: function _getDistanceToBezierEdge(x1, y1, x2, y2, x3, y3, via) {
// x3,y3 is the point
var minDistance = 1e9;
- var distance = undefined;
- var i = undefined,
- t = undefined,
- x = undefined,
- y = undefined;
+ var distance = void 0;
+ var i = void 0,
+ t = void 0,
+ x = void 0,
+ y = void 0;
var lastX = x1;
var lastY = y1;
for (i = 1; i < 10; i++) {
@@ -32235,30 +33823,29 @@ return /******/ (function(modules) { // webpackBootstrap
}]);
return BezierEdgeBase;
- })(_EdgeBase3['default']);
+ }(_EdgeBase3.default);
- exports['default'] = BezierEdgeBase;
- module.exports = exports['default'];
+ exports.default = BezierEdgeBase;
/***/ },
-/* 86 */
+/* 89 */
/***/ function(module, exports, __webpack_require__) {
'use strict';
- Object.defineProperty(exports, '__esModule', {
+ Object.defineProperty(exports, "__esModule", {
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 _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 _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; }; }();
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }
+ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
var util = __webpack_require__(1);
- var EdgeBase = (function () {
+ var EdgeBase = function () {
function EdgeBase(options, body, labelModule) {
_classCallCheck(this, EdgeBase);
@@ -32270,6 +33857,8 @@ return /******/ (function(modules) { // webpackBootstrap
this.color = {};
this.selectionWidth = 2;
this.hoverWidth = 1.5;
+ this.fromPoint = this.from;
+ this.toPoint = this.to;
}
_createClass(EdgeBase, [{
@@ -32299,44 +33888,41 @@ return /******/ (function(modules) { // webpackBootstrap
* @param {CanvasRenderingContext2D} ctx
* @private
*/
+
}, {
key: 'drawLine',
- value: function drawLine(ctx, selected, hover) {
+ value: function drawLine(ctx, selected, hover, viaNode) {
// set style
ctx.strokeStyle = this.getColor(ctx, selected, hover);
ctx.lineWidth = this.getLineWidth(selected, hover);
- var via = undefined;
+
if (this.options.dashes !== false) {
- via = this._drawDashedLine(ctx);
+ this._drawDashedLine(ctx, viaNode);
} else {
- via = this._drawLine(ctx);
+ this._drawLine(ctx, viaNode);
}
- return via;
}
}, {
key: '_drawLine',
- value: function _drawLine(ctx) {
- var via = undefined;
+ value: function _drawLine(ctx, viaNode, fromPoint, toPoint) {
if (this.from != this.to) {
// draw line
- via = this._line(ctx);
+ this._line(ctx, viaNode, fromPoint, toPoint);
} else {
var _getCircleData2 = this._getCircleData(ctx);
- var _getCircleData22 = _slicedToArray(_getCircleData2, 3);
+ var _getCircleData3 = _slicedToArray(_getCircleData2, 3);
- var x = _getCircleData22[0];
- var y = _getCircleData22[1];
- var radius = _getCircleData22[2];
+ var x = _getCircleData3[0];
+ var y = _getCircleData3[1];
+ var radius = _getCircleData3[2];
this._circle(ctx, x, y, radius);
}
- return via;
}
}, {
key: '_drawDashedLine',
- value: function _drawDashedLine(ctx) {
- var via = undefined;
+ value: function _drawDashedLine(ctx, viaNode, fromPoint, toPoint) {
ctx.lineCap = 'round';
var pattern = [5, 5];
if (Array.isArray(this.options.dashes) === true) {
@@ -32354,15 +33940,15 @@ return /******/ (function(modules) { // webpackBootstrap
// draw the line
if (this.from != this.to) {
// draw line
- via = this._line(ctx);
+ this._line(ctx, viaNode);
} else {
- var _getCircleData3 = this._getCircleData(ctx);
+ var _getCircleData4 = this._getCircleData(ctx);
- var _getCircleData32 = _slicedToArray(_getCircleData3, 3);
+ var _getCircleData5 = _slicedToArray(_getCircleData4, 3);
- var x = _getCircleData32[0];
- var y = _getCircleData32[1];
- var radius = _getCircleData32[2];
+ var x = _getCircleData5[0];
+ var y = _getCircleData5[1];
+ var radius = _getCircleData5[2];
this._circle(ctx, x, y, radius);
}
@@ -32377,15 +33963,15 @@ return /******/ (function(modules) { // webpackBootstrap
// draw line
ctx.dashedLine(this.from.x, this.from.y, this.to.x, this.to.y, pattern);
} else {
- var _getCircleData4 = this._getCircleData(ctx);
+ var _getCircleData6 = this._getCircleData(ctx);
- var _getCircleData42 = _slicedToArray(_getCircleData4, 3);
+ var _getCircleData7 = _slicedToArray(_getCircleData6, 3);
- var x = _getCircleData42[0];
- var y = _getCircleData42[1];
- var radius = _getCircleData42[2];
+ var _x = _getCircleData7[0];
+ var _y = _getCircleData7[1];
+ var _radius = _getCircleData7[2];
- this._circle(ctx, x, y, radius);
+ this._circle(ctx, _x, _y, _radius);
}
// draw shadow if enabled
this.enableShadow(ctx);
@@ -32395,7 +33981,6 @@ return /******/ (function(modules) { // webpackBootstrap
// disable shadows for other elements.
this.disableShadow(ctx);
}
- return via;
}
}, {
key: 'findBorderPosition',
@@ -32415,13 +34000,14 @@ return /******/ (function(modules) { // webpackBootstrap
from = this._findBorderPosition(this.from, ctx);
to = this._findBorderPosition(this.to, ctx);
} else {
- var _getCircleData5 = this._getCircleData(ctx);
+ var _getCircleData8 = this._getCircleData(ctx);
- var _getCircleData52 = _slicedToArray(_getCircleData5, 3);
+ var _getCircleData9 = _slicedToArray(_getCircleData8, 3);
+
+ var x = _getCircleData9[0];
+ var y = _getCircleData9[1];
+ var radius = _getCircleData9[2];
- var x = _getCircleData52[0];
- var y = _getCircleData52[1];
- var radius = _getCircleData52[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 });
@@ -32431,8 +34017,8 @@ return /******/ (function(modules) { // webpackBootstrap
}, {
key: '_getCircleData',
value: function _getCircleData(ctx) {
- var x = undefined,
- y = undefined;
+ var x = void 0,
+ y = void 0;
var node = this.from;
var radius = this.options.selfReferenceSize;
@@ -32462,6 +34048,7 @@ return /******/ (function(modules) { // webpackBootstrap
* @return {Object} point
* @private
*/
+
}, {
key: '_pointOnCircle',
value: function _pointOnCircle(x, y, radius, percentage) {
@@ -32480,6 +34067,7 @@ return /******/ (function(modules) { // webpackBootstrap
* @returns {*}
* @private
*/
+
}, {
key: '_findBorderPositionCircle',
value: function _findBorderPositionCircle(node, ctx, options) {
@@ -32492,11 +34080,11 @@ return /******/ (function(modules) { // webpackBootstrap
var maxIterations = 10;
var iteration = 0;
var radius = this.options.selfReferenceSize;
- var pos = undefined,
- angle = undefined,
- distanceToBorder = undefined,
- distanceToPoint = undefined,
- difference = undefined;
+ var pos = void 0,
+ angle = void 0,
+ distanceToBorder = void 0,
+ distanceToPoint = void 0,
+ difference = void 0;
var threshold = 0.05;
var middle = (low + high) * 0.5;
@@ -32537,6 +34125,7 @@ return /******/ (function(modules) { // webpackBootstrap
* @return {Number} width
* @private
*/
+
}, {
key: 'getLineWidth',
value: function getLineWidth(selected, hover) {
@@ -32558,8 +34147,8 @@ return /******/ (function(modules) { // webpackBootstrap
// when this is a loop edge, just use the 'from' method
if (colorOptions.inherit === 'both' && this.from.id !== this.to.id) {
var grd = ctx.createLinearGradient(this.from.x, this.from.y, this.to.x, this.to.y);
- var fromColor = undefined,
- toColor = undefined;
+ var fromColor = void 0,
+ toColor = void 0;
fromColor = this.from.options.color.highlight.border;
toColor = this.to.options.color.highlight.border;
@@ -32616,6 +34205,7 @@ return /******/ (function(modules) { // webpackBootstrap
* @param {Number} radius
* @private
*/
+
}, {
key: '_circle',
value: function _circle(ctx, x, y, radius) {
@@ -32643,6 +34233,7 @@ return /******/ (function(modules) { // webpackBootstrap
* @param {number} y3
* @private
*/
+
}, {
key: 'getDistanceToEdge',
value: function getDistanceToEdge(x1, y1, x2, y2, x3, y3, via) {
@@ -32651,13 +34242,13 @@ return /******/ (function(modules) { // webpackBootstrap
if (this.from != this.to) {
returnValue = this._getDistanceToEdge(x1, y1, x2, y2, x3, y3, via);
} else {
- var _getCircleData6 = this._getCircleData();
+ var _getCircleData10 = this._getCircleData();
- var _getCircleData62 = _slicedToArray(_getCircleData6, 3);
+ var _getCircleData11 = _slicedToArray(_getCircleData10, 3);
- var x = _getCircleData62[0];
- var y = _getCircleData62[1];
- var radius = _getCircleData62[2];
+ var x = _getCircleData11[0];
+ var y = _getCircleData11[1];
+ var radius = _getCircleData11[2];
var dx = x - x3;
var dy = y - y3;
@@ -32704,22 +34295,18 @@ return /******/ (function(modules) { // webpackBootstrap
* @param position
* @param viaNode
*/
- }, {
- key: 'drawArrowHead',
- value: function drawArrowHead(ctx, position, viaNode, selected, hover) {
- // set style
- ctx.strokeStyle = this.getColor(ctx, selected, hover);
- ctx.fillStyle = ctx.strokeStyle;
- ctx.lineWidth = this.getLineWidth(selected, hover);
+ }, {
+ key: 'getArrowData',
+ value: function getArrowData(ctx, position, viaNode, selected, hover) {
// set lets
- var angle = undefined;
- var length = undefined;
- var arrowPos = undefined;
- var node1 = undefined;
- var node2 = undefined;
- var guideOffset = undefined;
- var scaleFactor = undefined;
+ var angle = void 0;
+ var arrowPoint = void 0;
+ var node1 = void 0;
+ var node2 = void 0;
+ var guideOffset = void 0;
+ var scaleFactor = void 0;
+ var lineWidth = this.getLineWidth(selected, hover);
if (position === 'from') {
node1 = this.from;
@@ -32742,70 +34329,80 @@ return /******/ (function(modules) { // webpackBootstrap
if (position !== 'middle') {
// draw arrow head
if (this.options.smooth.enabled === true) {
- arrowPos = this.findBorderPosition(node1, ctx, { via: viaNode });
- var guidePos = this.getPoint(Math.max(0.0, Math.min(1.0, arrowPos.t + guideOffset)), viaNode);
- angle = Math.atan2(arrowPos.y - guidePos.y, arrowPos.x - guidePos.x);
+ arrowPoint = this.findBorderPosition(node1, ctx, { via: viaNode });
+ var guidePos = this.getPoint(Math.max(0.0, Math.min(1.0, arrowPoint.t + guideOffset)), viaNode);
+ angle = Math.atan2(arrowPoint.y - guidePos.y, arrowPoint.x - guidePos.x);
} else {
angle = Math.atan2(node1.y - node2.y, node1.x - node2.x);
- arrowPos = this.findBorderPosition(node1, ctx);
+ arrowPoint = this.findBorderPosition(node1, ctx);
}
} else {
angle = Math.atan2(node1.y - node2.y, node1.x - node2.x);
- arrowPos = this.getPoint(0.6, viaNode); // this is 0.6 to account for the size of the arrow.
+ arrowPoint = this.getPoint(0.5, viaNode); // this is 0.6 to account for the size of the arrow.
}
- // draw arrow at the end of the line
- length = (10 + 5 * this.options.width) * scaleFactor;
- ctx.arrow(arrowPos.x, arrowPos.y, angle, length);
-
- // draw shadow if enabled
- this.enableShadow(ctx);
- ctx.fill();
-
- // disable shadows for other elements.
- this.disableShadow(ctx);
- ctx.stroke();
} else {
- // draw circle
- var _angle = undefined,
- point = undefined;
+ // draw circle
- var _getCircleData7 = this._getCircleData(ctx);
+ var _getCircleData12 = this._getCircleData(ctx);
- var _getCircleData72 = _slicedToArray(_getCircleData7, 3);
+ var _getCircleData13 = _slicedToArray(_getCircleData12, 3);
- var x = _getCircleData72[0];
- var y = _getCircleData72[1];
- var radius = _getCircleData72[2];
+ var x = _getCircleData13[0];
+ var y = _getCircleData13[1];
+ var radius = _getCircleData13[2];
- if (position === 'from') {
- point = this.findBorderPosition(this.from, ctx, { x: x, y: y, low: 0.25, high: 0.6, direction: -1 });
- _angle = point.t * -2 * Math.PI + 1.5 * Math.PI + 0.1 * Math.PI;
- } else if (position === 'to') {
- point = this.findBorderPosition(this.from, ctx, { x: x, y: y, low: 0.6, high: 1.0, direction: 1 });
- _angle = point.t * -2 * Math.PI + 1.5 * Math.PI - 1.1 * Math.PI;
- } else {
- point = this._pointOnCircle(x, y, radius, 0.175);
- _angle = 3.9269908169872414; // === 0.175 * -2 * Math.PI + 1.5 * Math.PI + 0.1 * Math.PI;
+
+ 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 the arrowhead
- var _length = (10 + 5 * this.options.width) * scaleFactor;
- ctx.arrow(point.x, point.y, _angle, _length);
+ var length = 15 * scaleFactor + 3 * lineWidth; // 3* lineWidth is the width of the edge.
- // draw shadow if enabled
- this.enableShadow(ctx);
- ctx.fill();
+ var xi = arrowPoint.x - length * 0.9 * Math.cos(angle);
+ var yi = arrowPoint.y - length * 0.9 * Math.sin(angle);
+ var arrowCore = { x: xi, y: yi };
- // disable shadows for other elements.
- this.disableShadow(ctx);
- ctx.stroke();
- }
+ return { point: arrowPoint, core: arrowCore, angle: angle, length: length };
+ }
+
+ /**
+ *
+ * @param ctx
+ * @param selected
+ * @param hover
+ * @param arrowData
+ */
+
+ }, {
+ key: 'drawArrowHead',
+ value: function drawArrowHead(ctx, selected, hover, arrowData) {
+ // set style
+ ctx.strokeStyle = this.getColor(ctx, selected, hover);
+ 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);
+
+ // draw shadow if enabled
+ this.enableShadow(ctx);
+ ctx.fill();
+ // disable shadows for other elements.
+ this.disableShadow(ctx);
}
}, {
key: 'enableShadow',
value: function enableShadow(ctx) {
if (this.options.shadow.enabled === true) {
- ctx.shadowColor = 'rgba(0,0,0,0.5)';
+ ctx.shadowColor = this.options.shadow.color;
ctx.shadowBlur = this.options.shadow.size;
ctx.shadowOffsetX = this.options.shadow.x;
ctx.shadowOffsetY = this.options.shadow.y;
@@ -32824,13 +34421,12 @@ return /******/ (function(modules) { // webpackBootstrap
}]);
return EdgeBase;
- })();
+ }();
- exports['default'] = EdgeBase;
- module.exports = exports['default'];
+ exports.default = EdgeBase;
/***/ },
-/* 87 */
+/* 90 */
/***/ function(module, exports, __webpack_require__) {
"use strict";
@@ -32839,34 +34435,37 @@ return /******/ (function(modules) { // webpackBootstrap
value: true
});
- 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 _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
- var _get = function get(_x, _x2, _x3) { var _again = true; _function: while (_again) { var object = _x, property = _x2, receiver = _x3; _again = false; if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { _x = parent; _x2 = property; _x3 = receiver; _again = true; desc = parent = undefined; continue _function; } } else if ("value" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } } };
+ var _BezierEdgeBase2 = __webpack_require__(88);
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
+ var _BezierEdgeBase3 = _interopRequireDefault(_BezierEdgeBase2);
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
- function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
+ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
- var _utilBezierEdgeBase = __webpack_require__(85);
+ function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
- var _utilBezierEdgeBase2 = _interopRequireDefault(_utilBezierEdgeBase);
+ function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
- var BezierEdgeDynamic = (function (_BezierEdgeBase) {
+ var BezierEdgeDynamic = function (_BezierEdgeBase) {
_inherits(BezierEdgeDynamic, _BezierEdgeBase);
function BezierEdgeDynamic(options, body, labelModule) {
- var _this = this;
-
_classCallCheck(this, BezierEdgeDynamic);
+ // --> this calls the setOptions below
+
+ var _this = _possibleConstructorReturn(this, Object.getPrototypeOf(BezierEdgeDynamic).call(this, options, body, labelModule));
//this.via = undefined; // Here for completeness but not allowed to defined before super() is invoked.
- _get(Object.getPrototypeOf(BezierEdgeDynamic.prototype), "constructor", this).call(this, options, body, labelModule); // --> this calls the setOptions below
- this._boundFunction = function () {
+
+
+ _this._boundFunction = function () {
_this.positionBezierNode();
};
- this.body.emitter.on("_repositionBezierNodes", this._boundFunction);
+ _this.body.emitter.on("_repositionBezierNodes", _this._boundFunction);
+ return _this;
}
_createClass(BezierEdgeDynamic, [{
@@ -32902,7 +34501,7 @@ return /******/ (function(modules) { // webpackBootstrap
if (this.from === undefined || this.to === undefined || this.options.physics === false) {
this.via.setOptions({ physics: false });
} else {
- // fix weird behaviour where a selfreferencing node has physics enabled
+ // fix weird behaviour where a self referencing node has physics enabled
if (this.from.id === this.to.id) {
this.via.setOptions({ physics: false });
} else {
@@ -32915,6 +34514,7 @@ return /******/ (function(modules) { // webpackBootstrap
* remove the support nodes
* @returns {boolean}
*/
+
}, {
key: "cleanup",
value: function cleanup() {
@@ -32934,6 +34534,7 @@ return /******/ (function(modules) { // webpackBootstrap
* The changed data is not called, if needed, it is returned by the main edge constructor.
* @private
*/
+
}, {
key: "setupSupportNode",
value: function setupSupportNode() {
@@ -32968,33 +34569,46 @@ return /******/ (function(modules) { // webpackBootstrap
* @param {CanvasRenderingContext2D} ctx
* @private
*/
+
}, {
key: "_line",
- value: function _line(ctx) {
+ value: function _line(ctx, viaNode) {
// draw a straight line
ctx.beginPath();
- ctx.moveTo(this.from.x, this.from.y);
- ctx.quadraticCurveTo(this.via.x, this.via.y, this.to.x, this.to.y);
+ ctx.moveTo(this.fromPoint.x, this.fromPoint.y);
+ // fallback to normal straight edges
+ if (viaNode.x === undefined) {
+ ctx.lineTo(this.toPoint.x, this.toPoint.y);
+ } else {
+ ctx.quadraticCurveTo(viaNode.x, viaNode.y, this.toPoint.x, this.toPoint.y);
+ }
// draw shadow if enabled
this.enableShadow(ctx);
ctx.stroke();
this.disableShadow(ctx);
+ }
+ }, {
+ key: "getViaNode",
+ value: function getViaNode() {
return this.via;
}
/**
* Combined function of pointOnLine and pointOnBezier. This gives the coordinates of a point on the line at a certain percentage of the way
* @param percentage
- * @param via
+ * @param viaNode
* @returns {{x: number, y: number}}
* @private
*/
+
}, {
key: "getPoint",
value: function getPoint(percentage) {
+ var viaNode = arguments.length <= 1 || arguments[1] === undefined ? this.via : arguments[1];
+
var t = percentage;
- var x = Math.pow(1 - t, 2) * this.from.x + 2 * t * (1 - t) * this.via.x + Math.pow(t, 2) * this.to.x;
- var y = Math.pow(1 - t, 2) * this.from.y + 2 * t * (1 - t) * this.via.y + Math.pow(t, 2) * this.to.y;
+ 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;
return { x: x, y: y };
}
@@ -33012,42 +34626,41 @@ return /******/ (function(modules) { // webpackBootstrap
}]);
return BezierEdgeDynamic;
- })(_utilBezierEdgeBase2["default"]);
+ }(_BezierEdgeBase3.default);
- exports["default"] = BezierEdgeDynamic;
- module.exports = exports["default"];
+ exports.default = BezierEdgeDynamic;
/***/ },
-/* 88 */
+/* 91 */
/***/ function(module, exports, __webpack_require__) {
'use strict';
- Object.defineProperty(exports, '__esModule', {
+ Object.defineProperty(exports, "__esModule", {
value: true
});
- 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 _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
- var _get = function get(_x4, _x5, _x6) { var _again = true; _function: while (_again) { var object = _x4, property = _x5, receiver = _x6; _again = false; if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { _x4 = parent; _x5 = property; _x6 = receiver; _again = true; desc = parent = undefined; continue _function; } } else if ('value' in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } } };
+ var _BezierEdgeBase2 = __webpack_require__(88);
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
+ var _BezierEdgeBase3 = _interopRequireDefault(_BezierEdgeBase2);
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
- function _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
+ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
- var _utilBezierEdgeBase = __webpack_require__(85);
+ function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
- var _utilBezierEdgeBase2 = _interopRequireDefault(_utilBezierEdgeBase);
+ function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
- var BezierEdgeStatic = (function (_BezierEdgeBase) {
+ var BezierEdgeStatic = function (_BezierEdgeBase) {
_inherits(BezierEdgeStatic, _BezierEdgeBase);
function BezierEdgeStatic(options, body, labelModule) {
_classCallCheck(this, BezierEdgeStatic);
- _get(Object.getPrototypeOf(BezierEdgeStatic.prototype), 'constructor', this).call(this, options, body, labelModule);
+ return _possibleConstructorReturn(this, Object.getPrototypeOf(BezierEdgeStatic).call(this, options, body, labelModule));
}
/**
@@ -33056,29 +34669,38 @@ return /******/ (function(modules) { // webpackBootstrap
* @private
*/
+
_createClass(BezierEdgeStatic, [{
key: '_line',
- value: function _line(ctx) {
+ value: function _line(ctx, viaNode) {
// draw a straight line
ctx.beginPath();
- ctx.moveTo(this.from.x, this.from.y);
- var via = this._getViaCoordinates();
- var returnValue = via;
+ ctx.moveTo(this.fromPoint.x, this.fromPoint.y);
// fallback to normal straight edges
- if (via.x === undefined) {
- ctx.lineTo(this.to.x, this.to.y);
- returnValue = undefined;
+ if (viaNode.x === undefined) {
+ ctx.lineTo(this.toPoint.x, this.toPoint.y);
} else {
- ctx.quadraticCurveTo(via.x, via.y, this.to.x, this.to.y);
+ ctx.quadraticCurveTo(viaNode.x, viaNode.y, this.toPoint.x, this.toPoint.y);
}
// draw shadow if enabled
this.enableShadow(ctx);
ctx.stroke();
this.disableShadow(ctx);
- return returnValue;
}
}, {
+ key: 'getViaNode',
+ value: function getViaNode() {
+ return this._getViaCoordinates();
+ }
+
+ /**
+ * We do not use the to and fromPoints here to make the via nodes the same as edges without arrows.
+ * @returns {{x: undefined, y: undefined}}
+ * @private
+ */
+
+ }, {
key: '_getViaCoordinates',
value: function _getViaCoordinates() {
var xVia = undefined;
@@ -33177,14 +34799,14 @@ return /******/ (function(modules) { // webpackBootstrap
} else if (type === 'curvedCCW') {
dx = this.to.x - this.from.x;
dy = this.from.y - this.to.y;
- var radius = Math.sqrt(dx * dx + dy * dy);
- var pi = Math.PI;
+ var _radius = Math.sqrt(dx * dx + dy * dy);
+ var _pi = Math.PI;
- var originalAngle = Math.atan2(dy, dx);
- var myAngle = (originalAngle + (-factor * 0.5 + 0.5) * pi) % (2 * pi);
+ var _originalAngle = Math.atan2(dy, dx);
+ var _myAngle = (_originalAngle + (-factor * 0.5 + 0.5) * _pi) % (2 * _pi);
- xVia = this.from.x + (factor * 0.5 + 0.5) * radius * Math.sin(myAngle);
- yVia = this.from.y + (factor * 0.5 + 0.5) * radius * Math.cos(myAngle);
+ xVia = this.from.x + (factor * 0.5 + 0.5) * _radius * Math.sin(_myAngle);
+ yVia = this.from.y + (factor * 0.5 + 0.5) * _radius * Math.cos(_myAngle);
} else {
// continuous
if (Math.abs(this.from.x - this.to.x) <= Math.abs(this.from.y - this.to.y)) {
@@ -33245,68 +34867,68 @@ return /******/ (function(modules) { // webpackBootstrap
}, {
key: '_getDistanceToEdge',
value: function _getDistanceToEdge(x1, y1, x2, y2, x3, y3) {
- var via = arguments.length <= 6 || arguments[6] === undefined ? this._getViaCoordinates() : arguments[6];
+ var viaNode = arguments.length <= 6 || arguments[6] === undefined ? this._getViaCoordinates() : arguments[6];
// x3,y3 is the point
- return this._getDistanceToBezierEdge(x1, y1, x2, y2, x3, y3, via);
+ return this._getDistanceToBezierEdge(x1, y1, x2, y2, x3, y3, viaNode);
}
/**
* Combined function of pointOnLine and pointOnBezier. This gives the coordinates of a point on the line at a certain percentage of the way
* @param percentage
- * @param via
+ * @param viaNode
* @returns {{x: number, y: number}}
* @private
*/
+
}, {
key: 'getPoint',
value: function getPoint(percentage) {
- var via = arguments.length <= 1 || arguments[1] === undefined ? this._getViaCoordinates() : arguments[1];
+ var viaNode = arguments.length <= 1 || arguments[1] === undefined ? this._getViaCoordinates() : arguments[1];
var t = percentage;
- var x = Math.pow(1 - t, 2) * this.from.x + 2 * t * (1 - t) * via.x + Math.pow(t, 2) * this.to.x;
- var y = Math.pow(1 - t, 2) * this.from.y + 2 * t * (1 - t) * via.y + Math.pow(t, 2) * this.to.y;
+ 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;
return { x: x, y: y };
}
}]);
return BezierEdgeStatic;
- })(_utilBezierEdgeBase2['default']);
+ }(_BezierEdgeBase3.default);
- exports['default'] = BezierEdgeStatic;
- module.exports = exports['default'];
+ exports.default = BezierEdgeStatic;
/***/ },
-/* 89 */
+/* 92 */
/***/ function(module, exports, __webpack_require__) {
'use strict';
- Object.defineProperty(exports, '__esModule', {
+ Object.defineProperty(exports, "__esModule", {
value: true
});
- 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 _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
- var _get = function get(_x, _x2, _x3) { var _again = true; _function: while (_again) { var object = _x, property = _x2, receiver = _x3; _again = false; if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { _x = parent; _x2 = property; _x3 = receiver; _again = true; desc = parent = undefined; continue _function; } } else if ('value' in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } } };
+ var _EdgeBase2 = __webpack_require__(89);
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
+ var _EdgeBase3 = _interopRequireDefault(_EdgeBase2);
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
- function _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
+ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
- var _utilEdgeBase = __webpack_require__(86);
+ function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
- var _utilEdgeBase2 = _interopRequireDefault(_utilEdgeBase);
+ function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
- var StraightEdge = (function (_EdgeBase) {
+ var StraightEdge = function (_EdgeBase) {
_inherits(StraightEdge, _EdgeBase);
function StraightEdge(options, body, labelModule) {
_classCallCheck(this, StraightEdge);
- _get(Object.getPrototypeOf(StraightEdge.prototype), 'constructor', this).call(this, options, body, labelModule);
+ return _possibleConstructorReturn(this, Object.getPrototypeOf(StraightEdge).call(this, options, body, labelModule));
}
/**
@@ -33315,17 +34937,22 @@ return /******/ (function(modules) { // webpackBootstrap
* @private
*/
+
_createClass(StraightEdge, [{
key: '_line',
value: function _line(ctx) {
// draw a straight line
ctx.beginPath();
- ctx.moveTo(this.from.x, this.from.y);
- ctx.lineTo(this.to.x, this.to.y);
+ ctx.moveTo(this.fromPoint.x, this.fromPoint.y);
+ ctx.lineTo(this.toPoint.x, this.toPoint.y);
// draw shadow if enabled
this.enableShadow(ctx);
ctx.stroke();
this.disableShadow(ctx);
+ }
+ }, {
+ key: 'getViaNode',
+ value: function getViaNode() {
return undefined;
}
@@ -33336,12 +34963,13 @@ return /******/ (function(modules) { // webpackBootstrap
* @returns {{x: number, y: number}}
* @private
*/
+
}, {
key: 'getPoint',
value: function getPoint(percentage) {
return {
- x: (1 - percentage) * this.from.x + percentage * this.to.x,
- y: (1 - percentage) * this.from.y + percentage * this.to.y
+ x: (1 - percentage) * this.fromPoint.x + percentage * this.toPoint.x,
+ y: (1 - percentage) * this.fromPoint.y + percentage * this.toPoint.y
};
}
}, {
@@ -33376,62 +35004,61 @@ return /******/ (function(modules) { // webpackBootstrap
}]);
return StraightEdge;
- })(_utilEdgeBase2['default']);
+ }(_EdgeBase3.default);
- exports['default'] = StraightEdge;
- module.exports = exports['default'];
+ exports.default = StraightEdge;
/***/ },
-/* 90 */
+/* 93 */
/***/ function(module, exports, __webpack_require__) {
'use strict';
- Object.defineProperty(exports, '__esModule', {
+ Object.defineProperty(exports, "__esModule", {
value: true
});
- 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 _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; }; }();
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
+ var _BarnesHutSolver = __webpack_require__(94);
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }
+ var _BarnesHutSolver2 = _interopRequireDefault(_BarnesHutSolver);
- var _componentsPhysicsBarnesHutSolver = __webpack_require__(91);
+ var _RepulsionSolver = __webpack_require__(95);
- var _componentsPhysicsBarnesHutSolver2 = _interopRequireDefault(_componentsPhysicsBarnesHutSolver);
+ var _RepulsionSolver2 = _interopRequireDefault(_RepulsionSolver);
- var _componentsPhysicsRepulsionSolver = __webpack_require__(92);
+ var _HierarchicalRepulsionSolver = __webpack_require__(96);
- var _componentsPhysicsRepulsionSolver2 = _interopRequireDefault(_componentsPhysicsRepulsionSolver);
+ var _HierarchicalRepulsionSolver2 = _interopRequireDefault(_HierarchicalRepulsionSolver);
- var _componentsPhysicsHierarchicalRepulsionSolver = __webpack_require__(93);
+ var _SpringSolver = __webpack_require__(97);
- var _componentsPhysicsHierarchicalRepulsionSolver2 = _interopRequireDefault(_componentsPhysicsHierarchicalRepulsionSolver);
+ var _SpringSolver2 = _interopRequireDefault(_SpringSolver);
- var _componentsPhysicsSpringSolver = __webpack_require__(94);
+ var _HierarchicalSpringSolver = __webpack_require__(98);
- var _componentsPhysicsSpringSolver2 = _interopRequireDefault(_componentsPhysicsSpringSolver);
+ var _HierarchicalSpringSolver2 = _interopRequireDefault(_HierarchicalSpringSolver);
- var _componentsPhysicsHierarchicalSpringSolver = __webpack_require__(95);
+ var _CentralGravitySolver = __webpack_require__(99);
- var _componentsPhysicsHierarchicalSpringSolver2 = _interopRequireDefault(_componentsPhysicsHierarchicalSpringSolver);
+ var _CentralGravitySolver2 = _interopRequireDefault(_CentralGravitySolver);
- var _componentsPhysicsCentralGravitySolver = __webpack_require__(96);
+ var _FA2BasedRepulsionSolver = __webpack_require__(100);
- var _componentsPhysicsCentralGravitySolver2 = _interopRequireDefault(_componentsPhysicsCentralGravitySolver);
+ var _FA2BasedRepulsionSolver2 = _interopRequireDefault(_FA2BasedRepulsionSolver);
- var _componentsPhysicsFA2BasedRepulsionSolver = __webpack_require__(97);
+ var _FA2BasedCentralGravitySolver = __webpack_require__(101);
- var _componentsPhysicsFA2BasedRepulsionSolver2 = _interopRequireDefault(_componentsPhysicsFA2BasedRepulsionSolver);
+ var _FA2BasedCentralGravitySolver2 = _interopRequireDefault(_FA2BasedCentralGravitySolver);
- var _componentsPhysicsFA2BasedCentralGravitySolver = __webpack_require__(98);
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
- var _componentsPhysicsFA2BasedCentralGravitySolver2 = _interopRequireDefault(_componentsPhysicsFA2BasedCentralGravitySolver);
+ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
var util = __webpack_require__(1);
- var PhysicsEngine = (function () {
+ var PhysicsEngine = function () {
function PhysicsEngine(body) {
_classCallCheck(this, PhysicsEngine);
@@ -33563,6 +35190,7 @@ return /******/ (function(modules) { // webpackBootstrap
* set the physics options
* @param options
*/
+
}, {
key: 'setOptions',
value: function setOptions(options) {
@@ -33595,31 +35223,32 @@ return /******/ (function(modules) { // webpackBootstrap
/**
* configure the engine.
*/
+
}, {
key: 'init',
value: function init() {
var options;
if (this.options.solver === 'forceAtlas2Based') {
options = this.options.forceAtlas2Based;
- this.nodesSolver = new _componentsPhysicsFA2BasedRepulsionSolver2['default'](this.body, this.physicsBody, options);
- this.edgesSolver = new _componentsPhysicsSpringSolver2['default'](this.body, this.physicsBody, options);
- this.gravitySolver = new _componentsPhysicsFA2BasedCentralGravitySolver2['default'](this.body, this.physicsBody, options);
+ this.nodesSolver = new _FA2BasedRepulsionSolver2.default(this.body, this.physicsBody, options);
+ this.edgesSolver = new _SpringSolver2.default(this.body, this.physicsBody, options);
+ this.gravitySolver = new _FA2BasedCentralGravitySolver2.default(this.body, this.physicsBody, options);
} else if (this.options.solver === 'repulsion') {
options = this.options.repulsion;
- this.nodesSolver = new _componentsPhysicsRepulsionSolver2['default'](this.body, this.physicsBody, options);
- this.edgesSolver = new _componentsPhysicsSpringSolver2['default'](this.body, this.physicsBody, options);
- this.gravitySolver = new _componentsPhysicsCentralGravitySolver2['default'](this.body, this.physicsBody, options);
+ this.nodesSolver = new _RepulsionSolver2.default(this.body, this.physicsBody, options);
+ this.edgesSolver = new _SpringSolver2.default(this.body, this.physicsBody, options);
+ this.gravitySolver = new _CentralGravitySolver2.default(this.body, this.physicsBody, options);
} else if (this.options.solver === 'hierarchicalRepulsion') {
options = this.options.hierarchicalRepulsion;
- this.nodesSolver = new _componentsPhysicsHierarchicalRepulsionSolver2['default'](this.body, this.physicsBody, options);
- this.edgesSolver = new _componentsPhysicsHierarchicalSpringSolver2['default'](this.body, this.physicsBody, options);
- this.gravitySolver = new _componentsPhysicsCentralGravitySolver2['default'](this.body, this.physicsBody, options);
+ this.nodesSolver = new _HierarchicalRepulsionSolver2.default(this.body, this.physicsBody, options);
+ this.edgesSolver = new _HierarchicalSpringSolver2.default(this.body, this.physicsBody, options);
+ this.gravitySolver = new _CentralGravitySolver2.default(this.body, this.physicsBody, options);
} else {
// barnesHut
options = this.options.barnesHut;
- this.nodesSolver = new _componentsPhysicsBarnesHutSolver2['default'](this.body, this.physicsBody, options);
- this.edgesSolver = new _componentsPhysicsSpringSolver2['default'](this.body, this.physicsBody, options);
- this.gravitySolver = new _componentsPhysicsCentralGravitySolver2['default'](this.body, this.physicsBody, options);
+ this.nodesSolver = new _BarnesHutSolver2.default(this.body, this.physicsBody, options);
+ this.edgesSolver = new _SpringSolver2.default(this.body, this.physicsBody, options);
+ this.gravitySolver = new _CentralGravitySolver2.default(this.body, this.physicsBody, options);
}
this.modelOptions = options;
@@ -33628,6 +35257,7 @@ return /******/ (function(modules) { // webpackBootstrap
/**
* initialize the engine
*/
+
}, {
key: 'initPhysics',
value: function initPhysics() {
@@ -33649,6 +35279,7 @@ return /******/ (function(modules) { // webpackBootstrap
/**
* Start the simulation
*/
+
}, {
key: 'startSimulation',
value: function startSimulation() {
@@ -33673,6 +35304,7 @@ return /******/ (function(modules) { // webpackBootstrap
/**
* Stop the simulation, force stabilization.
*/
+
}, {
key: 'stopSimulation',
value: function stopSimulation() {
@@ -33692,9 +35324,10 @@ return /******/ (function(modules) { // webpackBootstrap
}
/**
- * The viewFunction inserts this step into each renderloop. It calls the physics tick and handles the cleanup at stabilized.
+ * The viewFunction inserts this step into each render loop. It calls the physics tick and handles the cleanup at stabilized.
*
*/
+
}, {
key: 'simulationStep',
value: function simulationStep() {
@@ -33720,6 +35353,7 @@ return /******/ (function(modules) { // webpackBootstrap
* trigger the stabilized event.
* @private
*/
+
}, {
key: '_emitStabilized',
value: function _emitStabilized() {
@@ -33741,6 +35375,7 @@ return /******/ (function(modules) { // webpackBootstrap
*
* @private
*/
+
}, {
key: 'physicsTick',
value: function physicsTick() {
@@ -33819,6 +35454,7 @@ return /******/ (function(modules) { // webpackBootstrap
*
* @private
*/
+
}, {
key: 'updatePhysicsData',
value: function updatePhysicsData() {
@@ -33832,7 +35468,7 @@ return /******/ (function(modules) { // webpackBootstrap
for (var nodeId in nodes) {
if (nodes.hasOwnProperty(nodeId)) {
if (nodes[nodeId].options.physics === true) {
- this.physicsBody.physicsNodeIndices.push(nodeId);
+ this.physicsBody.physicsNodeIndices.push(nodes[nodeId].id);
}
}
}
@@ -33841,26 +35477,26 @@ return /******/ (function(modules) { // webpackBootstrap
for (var edgeId in edges) {
if (edges.hasOwnProperty(edgeId)) {
if (edges[edgeId].options.physics === true) {
- this.physicsBody.physicsEdgeIndices.push(edgeId);
+ this.physicsBody.physicsEdgeIndices.push(edges[edgeId].id);
}
}
}
// get the velocity and the forces vector
for (var i = 0; i < this.physicsBody.physicsNodeIndices.length; i++) {
- var nodeId = this.physicsBody.physicsNodeIndices[i];
- this.physicsBody.forces[nodeId] = { x: 0, y: 0 };
+ var _nodeId = this.physicsBody.physicsNodeIndices[i];
+ this.physicsBody.forces[_nodeId] = { x: 0, y: 0 };
// forces can be reset because they are recalculated. Velocities have to persist.
- if (this.physicsBody.velocities[nodeId] === undefined) {
- this.physicsBody.velocities[nodeId] = { x: 0, y: 0 };
+ if (this.physicsBody.velocities[_nodeId] === undefined) {
+ this.physicsBody.velocities[_nodeId] = { x: 0, y: 0 };
}
}
// clean deleted nodes from the velocity vector
- for (var nodeId in this.physicsBody.velocities) {
- if (nodes[nodeId] === undefined) {
- delete this.physicsBody.velocities[nodeId];
+ for (var _nodeId2 in this.physicsBody.velocities) {
+ if (nodes[_nodeId2] === undefined) {
+ delete this.physicsBody.velocities[_nodeId2];
}
}
}
@@ -33868,6 +35504,7 @@ return /******/ (function(modules) { // webpackBootstrap
/**
* Revert the simulation one step. This is done so after stabilization, every new start of the simulation will also say stabilized.
*/
+
}, {
key: 'revert',
value: function revert() {
@@ -33897,12 +35534,13 @@ return /******/ (function(modules) { // webpackBootstrap
/**
* This compares the reference state to the current state
*/
+
}, {
key: '_evaluateStepQuality',
value: function _evaluateStepQuality() {
- var dx = undefined,
- dy = undefined,
- dpos = undefined;
+ var dx = void 0,
+ dy = void 0,
+ dpos = void 0;
var nodes = this.body.nodes;
var reference = this.referenceState;
var posThreshold = 0.3;
@@ -33923,9 +35561,10 @@ return /******/ (function(modules) { // webpackBootstrap
}
/**
- * move the nodes one timestap and check if they are stabilized
+ * move the nodes one timestep and check if they are stabilized
* @returns {boolean}
*/
+
}, {
key: 'moveNodes',
value: function moveNodes() {
@@ -33958,6 +35597,7 @@ return /******/ (function(modules) { // webpackBootstrap
* @returns {number}
* @private
*/
+
}, {
key: '_performStep',
value: function _performStep(nodeId, maxVelocity) {
@@ -33998,6 +35638,7 @@ return /******/ (function(modules) { // webpackBootstrap
/**
* calculate the forces for one physics iteration.
*/
+
}, {
key: 'calculateForces',
value: function calculateForces() {
@@ -34012,6 +35653,7 @@ return /******/ (function(modules) { // webpackBootstrap
*
* @private
*/
+
}, {
key: '_freezeNodes',
value: function _freezeNodes() {
@@ -34032,6 +35674,7 @@ return /******/ (function(modules) { // webpackBootstrap
*
* @private
*/
+
}, {
key: '_restoreFrozenNodes',
value: function _restoreFrozenNodes() {
@@ -34050,6 +35693,7 @@ return /******/ (function(modules) { // webpackBootstrap
/**
* Find a stable position for all nodes
*/
+
}, {
key: 'stabilize',
value: function stabilize() {
@@ -34098,6 +35742,7 @@ return /******/ (function(modules) { // webpackBootstrap
* One batch of stabilization
* @private
*/
+
}, {
key: '_stabilizationBatch',
value: function _stabilizationBatch() {
@@ -34125,6 +35770,7 @@ return /******/ (function(modules) { // webpackBootstrap
* Wrap up the stabilization, fit and emit the events.
* @private
*/
+
}, {
key: '_finalizeStabilization',
value: function _finalizeStabilization() {
@@ -34179,13 +35825,12 @@ return /******/ (function(modules) { // webpackBootstrap
}]);
return PhysicsEngine;
- })();
+ }();
- exports['default'] = PhysicsEngine;
- module.exports = exports['default'];
+ exports.default = PhysicsEngine;
/***/ },
-/* 91 */
+/* 94 */
/***/ function(module, exports) {
"use strict";
@@ -34194,11 +35839,11 @@ return /******/ (function(modules) { // webpackBootstrap
value: true
});
- 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 _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; }; }();
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
- var BarnesHutSolver = (function () {
+ var BarnesHutSolver = function () {
function BarnesHutSolver(body, physicsBody, options) {
_classCallCheck(this, BarnesHutSolver);
@@ -34227,16 +35872,17 @@ return /******/ (function(modules) { // webpackBootstrap
}
/**
- * This function calculates the forces the nodes apply on eachother based on a gravitational model.
+ * This function calculates the forces the nodes apply on each other based on a gravitational model.
* The Barnes Hut method is used to speed up this N-body simulation.
*
* @private
*/
+
}, {
key: "solve",
value: function solve() {
if (this.options.gravitationalConstant !== 0 && this.physicsBody.physicsNodeIndices.length > 0) {
- var node = undefined;
+ var node = void 0;
var nodes = this.body.nodes;
var nodeIndices = this.physicsBody.physicsNodeIndices;
var nodeCount = nodeIndices.length;
@@ -34269,14 +35915,15 @@ return /******/ (function(modules) { // webpackBootstrap
* @param node
* @private
*/
+
}, {
key: "_getForceContribution",
value: function _getForceContribution(parentBranch, node) {
// we get no force contribution from an empty region
if (parentBranch.childrenCount > 0) {
- var dx = undefined,
- dy = undefined,
- distance = undefined;
+ var dx = void 0,
+ dy = void 0,
+ distance = void 0;
// get the distance from the center of mass to the node.
dx = parentBranch.centerOfMass.x - node.x;
@@ -34316,6 +35963,7 @@ return /******/ (function(modules) { // webpackBootstrap
* @param parentBranch
* @private
*/
+
}, {
key: "_calculateForces",
value: function _calculateForces(distance, dx, dy, node, parentBranch) {
@@ -34345,10 +35993,11 @@ return /******/ (function(modules) { // webpackBootstrap
* @param nodeIndices
* @private
*/
+
}, {
key: "_formBarnesHutTree",
value: function _formBarnesHutTree(nodes, nodeIndices) {
- var node = undefined;
+ var node = void 0;
var nodeCount = nodeIndices.length;
var minX = nodes[nodeIndices[0]].x;
@@ -34412,8 +36061,8 @@ return /******/ (function(modules) { // webpackBootstrap
this._splitBranch(barnesHutTree.root);
// place the nodes one by one recursively
- for (var i = 0; i < nodeCount; i++) {
- node = nodes[nodeIndices[i]];
+ for (var _i = 0; _i < nodeCount; _i++) {
+ node = nodes[nodeIndices[_i]];
if (node.options.mass > 0) {
this._placeInTree(barnesHutTree.root, node);
}
@@ -34430,6 +36079,7 @@ return /******/ (function(modules) { // webpackBootstrap
* @param node
* @private
*/
+
}, {
key: "_updateBranchMass",
value: function _updateBranchMass(parentBranch, node) {
@@ -34455,6 +36105,7 @@ return /******/ (function(modules) { // webpackBootstrap
* @param skipMassUpdate
* @private
*/
+
}, {
key: "_placeInTree",
value: function _placeInTree(parentBranch, node, skipMassUpdate) {
@@ -34492,6 +36143,7 @@ return /******/ (function(modules) { // webpackBootstrap
* @param region
* @private
*/
+
}, {
key: "_placeInRegion",
value: function _placeInRegion(parentBranch, node, region) {
@@ -34528,6 +36180,7 @@ return /******/ (function(modules) { // webpackBootstrap
* @param parentBranch
* @private
*/
+
}, {
key: "_splitBranch",
value: function _splitBranch(parentBranch) {
@@ -34561,13 +36214,14 @@ return /******/ (function(modules) { // webpackBootstrap
* @param parentRange
* @private
*/
+
}, {
key: "_insertRegion",
value: function _insertRegion(parentBranch, region) {
- var minX = undefined,
- maxX = undefined,
- minY = undefined,
- maxY = undefined;
+ var minX = void 0,
+ maxX = void 0,
+ minY = void 0,
+ maxY = void 0;
var childSize = 0.5 * parentBranch.size;
switch (region) {
case "NW":
@@ -34618,6 +36272,7 @@ return /******/ (function(modules) { // webpackBootstrap
* @param color
* @private
*/
+
}, {
key: "_debug",
value: function _debug(ctx, color) {
@@ -34637,6 +36292,7 @@ return /******/ (function(modules) { // webpackBootstrap
* @param color
* @private
*/
+
}, {
key: "_drawBranch",
value: function _drawBranch(branch, ctx, color) {
@@ -34681,13 +36337,12 @@ return /******/ (function(modules) { // webpackBootstrap
}]);
return BarnesHutSolver;
- })();
+ }();
- exports["default"] = BarnesHutSolver;
- module.exports = exports["default"];
+ exports.default = BarnesHutSolver;
/***/ },
-/* 92 */
+/* 95 */
/***/ function(module, exports) {
"use strict";
@@ -34696,11 +36351,11 @@ return /******/ (function(modules) { // webpackBootstrap
value: true
});
- 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 _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; }; }();
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
- var RepulsionSolver = (function () {
+ var RepulsionSolver = function () {
function RepulsionSolver(body, physicsBody, options) {
_classCallCheck(this, RepulsionSolver);
@@ -34714,13 +36369,13 @@ return /******/ (function(modules) { // webpackBootstrap
value: function setOptions(options) {
this.options = options;
}
-
/**
* Calculate the forces the nodes apply on each other based on a repulsion field.
* This field is linearly approximated.
*
* @private
*/
+
}, {
key: "solve",
value: function solve() {
@@ -34776,13 +36431,12 @@ return /******/ (function(modules) { // webpackBootstrap
}]);
return RepulsionSolver;
- })();
+ }();
- exports["default"] = RepulsionSolver;
- module.exports = exports["default"];
+ exports.default = RepulsionSolver;
/***/ },
-/* 93 */
+/* 96 */
/***/ function(module, exports) {
"use strict";
@@ -34791,11 +36445,11 @@ return /******/ (function(modules) { // webpackBootstrap
value: true
});
- 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 _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; }; }();
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
- var HierarchicalRepulsionSolver = (function () {
+ var HierarchicalRepulsionSolver = function () {
function HierarchicalRepulsionSolver(body, physicsBody, options) {
_classCallCheck(this, HierarchicalRepulsionSolver);
@@ -34816,6 +36470,7 @@ return /******/ (function(modules) { // webpackBootstrap
*
* @private
*/
+
}, {
key: "solve",
value: function solve() {
@@ -34867,13 +36522,12 @@ return /******/ (function(modules) { // webpackBootstrap
}]);
return HierarchicalRepulsionSolver;
- })();
+ }();
- exports["default"] = HierarchicalRepulsionSolver;
- module.exports = exports["default"];
+ exports.default = HierarchicalRepulsionSolver;
/***/ },
-/* 94 */
+/* 97 */
/***/ function(module, exports) {
"use strict";
@@ -34882,11 +36536,11 @@ return /******/ (function(modules) { // webpackBootstrap
value: true
});
- 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 _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; }; }();
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
- var SpringSolver = (function () {
+ var SpringSolver = function () {
function SpringSolver(body, physicsBody, options) {
_classCallCheck(this, SpringSolver);
@@ -34906,16 +36560,17 @@ return /******/ (function(modules) { // webpackBootstrap
*
* @private
*/
+
}, {
key: "solve",
value: function solve() {
- var edgeLength = undefined,
- edge = undefined;
+ var edgeLength = void 0,
+ edge = void 0;
var edgeIndices = this.physicsBody.physicsEdgeIndices;
var edges = this.body.edges;
- var node1 = undefined,
- node2 = undefined,
- node3 = undefined;
+ var node1 = void 0,
+ node2 = void 0,
+ node3 = void 0;
// forces caused by the edges, modelled as springs
for (var i = 0; i < edgeIndices.length; i++) {
@@ -34950,6 +36605,7 @@ return /******/ (function(modules) { // webpackBootstrap
* @param edgeLength
* @private
*/
+
}, {
key: "_calculateSpringForce",
value: function _calculateSpringForce(node1, node2, edgeLength) {
@@ -34977,13 +36633,12 @@ return /******/ (function(modules) { // webpackBootstrap
}]);
return SpringSolver;
- })();
+ }();
- exports["default"] = SpringSolver;
- module.exports = exports["default"];
+ exports.default = SpringSolver;
/***/ },
-/* 95 */
+/* 98 */
/***/ function(module, exports) {
"use strict";
@@ -34992,11 +36647,11 @@ return /******/ (function(modules) { // webpackBootstrap
value: true
});
- 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 _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; }; }();
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
- var HierarchicalSpringSolver = (function () {
+ var HierarchicalSpringSolver = function () {
function HierarchicalSpringSolver(body, physicsBody, options) {
_classCallCheck(this, HierarchicalSpringSolver);
@@ -35016,6 +36671,7 @@ return /******/ (function(modules) { // webpackBootstrap
*
* @private
*/
+
}, {
key: "solve",
value: function solve() {
@@ -35036,8 +36692,8 @@ return /******/ (function(modules) { // webpackBootstrap
}
// forces caused by the edges, modelled as springs
- for (var i = 0; i < edgeIndices.length; i++) {
- edge = edges[edgeIndices[i]];
+ for (var _i = 0; _i < edgeIndices.length; _i++) {
+ edge = edges[edgeIndices[_i]];
if (edge.connected === true) {
edgeLength = edge.options.length === undefined ? this.options.springLength : edge.options.length;
@@ -35077,42 +36733,41 @@ return /******/ (function(modules) { // webpackBootstrap
// normalize spring forces
var springForce = 1;
var springFx, springFy;
- for (var i = 0; i < nodeIndices.length; i++) {
- var nodeId = nodeIndices[i];
- springFx = Math.min(springForce, Math.max(-springForce, forces[nodeId].springFx));
- springFy = Math.min(springForce, Math.max(-springForce, forces[nodeId].springFy));
+ for (var _i2 = 0; _i2 < nodeIndices.length; _i2++) {
+ var _nodeId = nodeIndices[_i2];
+ springFx = Math.min(springForce, Math.max(-springForce, forces[_nodeId].springFx));
+ springFy = Math.min(springForce, Math.max(-springForce, forces[_nodeId].springFy));
- forces[nodeId].x += springFx;
- forces[nodeId].y += springFy;
+ forces[_nodeId].x += springFx;
+ forces[_nodeId].y += springFy;
}
// retain energy balance
var totalFx = 0;
var totalFy = 0;
- for (var i = 0; i < nodeIndices.length; i++) {
- var nodeId = nodeIndices[i];
- totalFx += forces[nodeId].x;
- totalFy += forces[nodeId].y;
+ for (var _i3 = 0; _i3 < nodeIndices.length; _i3++) {
+ var _nodeId2 = nodeIndices[_i3];
+ totalFx += forces[_nodeId2].x;
+ totalFy += forces[_nodeId2].y;
}
var correctionFx = totalFx / nodeIndices.length;
var correctionFy = totalFy / nodeIndices.length;
- for (var i = 0; i < nodeIndices.length; i++) {
- var nodeId = nodeIndices[i];
- forces[nodeId].x -= correctionFx;
- forces[nodeId].y -= correctionFy;
+ for (var _i4 = 0; _i4 < nodeIndices.length; _i4++) {
+ var _nodeId3 = nodeIndices[_i4];
+ forces[_nodeId3].x -= correctionFx;
+ forces[_nodeId3].y -= correctionFy;
}
}
}]);
return HierarchicalSpringSolver;
- })();
+ }();
- exports["default"] = HierarchicalSpringSolver;
- module.exports = exports["default"];
+ exports.default = HierarchicalSpringSolver;
/***/ },
-/* 96 */
+/* 99 */
/***/ function(module, exports) {
"use strict";
@@ -35121,11 +36776,11 @@ return /******/ (function(modules) { // webpackBootstrap
value: true
});
- 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 _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; }; }();
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
- var CentralGravitySolver = (function () {
+ var CentralGravitySolver = function () {
function CentralGravitySolver(body, physicsBody, options) {
_classCallCheck(this, CentralGravitySolver);
@@ -35142,10 +36797,10 @@ return /******/ (function(modules) { // webpackBootstrap
}, {
key: "solve",
value: function solve() {
- var dx = undefined,
- dy = undefined,
- distance = undefined,
- node = undefined;
+ var dx = void 0,
+ dy = void 0,
+ distance = void 0,
+ node = void 0;
var nodes = this.body.nodes;
var nodeIndices = this.physicsBody.physicsNodeIndices;
var forces = this.physicsBody.forces;
@@ -35165,6 +36820,7 @@ return /******/ (function(modules) { // webpackBootstrap
* Calculate the forces based on the distance.
* @private
*/
+
}, {
key: "_calculateForces",
value: function _calculateForces(distance, dx, dy, forces, node) {
@@ -35175,13 +36831,12 @@ return /******/ (function(modules) { // webpackBootstrap
}]);
return CentralGravitySolver;
- })();
+ }();
- exports["default"] = CentralGravitySolver;
- module.exports = exports["default"];
+ exports.default = CentralGravitySolver;
/***/ },
-/* 97 */
+/* 100 */
/***/ function(module, exports, __webpack_require__) {
"use strict";
@@ -35190,27 +36845,27 @@ return /******/ (function(modules) { // webpackBootstrap
value: true
});
- 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 _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
- var _get = function get(_x, _x2, _x3) { var _again = true; _function: while (_again) { var object = _x, property = _x2, receiver = _x3; _again = false; if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { _x = parent; _x2 = property; _x3 = receiver; _again = true; desc = parent = undefined; continue _function; } } else if ("value" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } } };
+ var _BarnesHutSolver2 = __webpack_require__(94);
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
+ var _BarnesHutSolver3 = _interopRequireDefault(_BarnesHutSolver2);
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
- function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
+ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
- var _BarnesHutSolver2 = __webpack_require__(91);
+ function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
- var _BarnesHutSolver3 = _interopRequireDefault(_BarnesHutSolver2);
+ function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
- var ForceAtlas2BasedRepulsionSolver = (function (_BarnesHutSolver) {
+ var ForceAtlas2BasedRepulsionSolver = function (_BarnesHutSolver) {
_inherits(ForceAtlas2BasedRepulsionSolver, _BarnesHutSolver);
function ForceAtlas2BasedRepulsionSolver(body, physicsBody, options) {
_classCallCheck(this, ForceAtlas2BasedRepulsionSolver);
- _get(Object.getPrototypeOf(ForceAtlas2BasedRepulsionSolver.prototype), "constructor", this).call(this, body, physicsBody, options);
+ return _possibleConstructorReturn(this, Object.getPrototypeOf(ForceAtlas2BasedRepulsionSolver).call(this, body, physicsBody, options));
}
/**
@@ -35224,6 +36879,7 @@ return /******/ (function(modules) { // webpackBootstrap
* @private
*/
+
_createClass(ForceAtlas2BasedRepulsionSolver, [{
key: "_calculateForces",
value: function _calculateForces(distance, dx, dy, node, parentBranch) {
@@ -35249,13 +36905,12 @@ return /******/ (function(modules) { // webpackBootstrap
}]);
return ForceAtlas2BasedRepulsionSolver;
- })(_BarnesHutSolver3["default"]);
+ }(_BarnesHutSolver3.default);
- exports["default"] = ForceAtlas2BasedRepulsionSolver;
- module.exports = exports["default"];
+ exports.default = ForceAtlas2BasedRepulsionSolver;
/***/ },
-/* 98 */
+/* 101 */
/***/ function(module, exports, __webpack_require__) {
"use strict";
@@ -35264,27 +36919,27 @@ return /******/ (function(modules) { // webpackBootstrap
value: true
});
- 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 _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
- var _get = function get(_x, _x2, _x3) { var _again = true; _function: while (_again) { var object = _x, property = _x2, receiver = _x3; _again = false; if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { _x = parent; _x2 = property; _x3 = receiver; _again = true; desc = parent = undefined; continue _function; } } else if ("value" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } } };
+ var _CentralGravitySolver2 = __webpack_require__(99);
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
+ var _CentralGravitySolver3 = _interopRequireDefault(_CentralGravitySolver2);
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
- function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
+ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
- var _CentralGravitySolver2 = __webpack_require__(96);
+ function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
- var _CentralGravitySolver3 = _interopRequireDefault(_CentralGravitySolver2);
+ function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
- var ForceAtlas2BasedCentralGravitySolver = (function (_CentralGravitySolver) {
+ var ForceAtlas2BasedCentralGravitySolver = function (_CentralGravitySolver) {
_inherits(ForceAtlas2BasedCentralGravitySolver, _CentralGravitySolver);
function ForceAtlas2BasedCentralGravitySolver(body, physicsBody, options) {
_classCallCheck(this, ForceAtlas2BasedCentralGravitySolver);
- _get(Object.getPrototypeOf(ForceAtlas2BasedCentralGravitySolver.prototype), "constructor", this).call(this, body, physicsBody, options);
+ return _possibleConstructorReturn(this, Object.getPrototypeOf(ForceAtlas2BasedCentralGravitySolver).call(this, body, physicsBody, options));
}
/**
@@ -35292,6 +36947,7 @@ return /******/ (function(modules) { // webpackBootstrap
* @private
*/
+
_createClass(ForceAtlas2BasedCentralGravitySolver, [{
key: "_calculateForces",
value: function _calculateForces(distance, dx, dy, forces, node) {
@@ -35305,38 +36961,39 @@ return /******/ (function(modules) { // webpackBootstrap
}]);
return ForceAtlas2BasedCentralGravitySolver;
- })(_CentralGravitySolver3["default"]);
+ }(_CentralGravitySolver3.default);
- exports["default"] = ForceAtlas2BasedCentralGravitySolver;
- module.exports = exports["default"];
+ exports.default = ForceAtlas2BasedCentralGravitySolver;
/***/ },
-/* 99 */
+/* 102 */
/***/ function(module, exports, __webpack_require__) {
'use strict';
- Object.defineProperty(exports, '__esModule', {
+ Object.defineProperty(exports, "__esModule", {
value: true
});
- 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 _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; };
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': 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; }; }();
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }
-
- var _NetworkUtil = __webpack_require__(100);
+ var _NetworkUtil = __webpack_require__(103);
var _NetworkUtil2 = _interopRequireDefault(_NetworkUtil);
- var _componentsNodesCluster = __webpack_require__(101);
+ var _Cluster = __webpack_require__(104);
+
+ var _Cluster2 = _interopRequireDefault(_Cluster);
- var _componentsNodesCluster2 = _interopRequireDefault(_componentsNodesCluster);
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
+
+ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
var util = __webpack_require__(1);
- var ClusterEngine = (function () {
+ var ClusterEngine = function () {
function ClusterEngine(body) {
var _this = this;
@@ -35344,13 +37001,14 @@ return /******/ (function(modules) { // webpackBootstrap
this.body = body;
this.clusteredNodes = {};
+ this.clusteredEdges = {};
this.options = {};
this.defaultOptions = {};
util.extend(this.options, this.defaultOptions);
this.body.emitter.on('_resetData', function () {
- _this.clusteredNodes = {};
+ _this.clusteredNodes = {};_this.clusteredEdges = {};
});
}
@@ -35365,12 +37023,13 @@ return /******/ (function(modules) { // webpackBootstrap
* @param hubsize
* @param options
*/
+
}, {
key: 'clusterByHubsize',
value: function clusterByHubsize(hubsize, options) {
if (hubsize === undefined) {
hubsize = this._getHubSize();
- } else if (typeof hubsize === "object") {
+ } else if ((typeof hubsize === 'undefined' ? 'undefined' : _typeof(hubsize)) === "object") {
options = this._checkOptions(hubsize);
hubsize = this._getHubSize();
}
@@ -35383,8 +37042,8 @@ return /******/ (function(modules) { // webpackBootstrap
}
}
- for (var i = 0; i < nodesToCluster.length; i++) {
- this.clusterByConnection(nodesToCluster[i], options, true);
+ for (var _i = 0; _i < nodesToCluster.length; _i++) {
+ this.clusterByConnection(nodesToCluster[_i], options, true);
}
this.body.emitter.emit('_dataChanged');
@@ -35395,6 +37054,7 @@ return /******/ (function(modules) { // webpackBootstrap
* @param options
* @param refreshData
*/
+
}, {
key: 'cluster',
value: function cluster() {
@@ -35415,14 +37075,14 @@ return /******/ (function(modules) { // webpackBootstrap
for (var i = 0; i < this.body.nodeIndices.length; i++) {
var nodeId = this.body.nodeIndices[i];
var node = this.body.nodes[nodeId];
- var clonedOptions = _NetworkUtil2['default']._cloneOptions(node);
+ var clonedOptions = _NetworkUtil2.default.cloneOptions(node);
if (options.joinCondition(clonedOptions) === true) {
childNodesObj[nodeId] = this.body.nodes[nodeId];
// collect the nodes that will be in the cluster
- for (var _i = 0; _i < node.edges.length; _i++) {
- var edge = node.edges[_i];
- if (edge.hiddenByCluster !== true) {
+ for (var _i2 = 0; _i2 < node.edges.length; _i2++) {
+ var edge = node.edges[_i2];
+ if (this.clusteredEdges[edge.id] === undefined) {
childEdgesObj[edge.id] = edge;
}
}
@@ -35438,6 +37098,7 @@ return /******/ (function(modules) { // webpackBootstrap
* @param options
* @param refreshData
*/
+
}, {
key: 'clusterByEdgeCount',
value: function clusterByEdgeCount(edgeCount, options) {
@@ -35446,11 +37107,11 @@ return /******/ (function(modules) { // webpackBootstrap
options = this._checkOptions(options);
var clusters = [];
var usedNodes = {};
- var edge = undefined,
- edges = undefined,
- node = undefined,
- nodeId = undefined,
- relevantEdgeCount = undefined;
+ var edge = void 0,
+ edges = void 0,
+ node = void 0,
+ nodeId = void 0,
+ relevantEdgeCount = void 0;
// collect the nodes that will be in the cluster
for (var i = 0; i < this.body.nodeIndices.length; i++) {
var childNodesObj = {};
@@ -35464,7 +37125,7 @@ return /******/ (function(modules) { // webpackBootstrap
edges = [];
for (var j = 0; j < node.edges.length; j++) {
edge = node.edges[j];
- if (edge.hiddenByCluster !== true) {
+ if (this.clusteredEdges[edge.id] === undefined) {
if (edge.toId !== edge.fromId) {
relevantEdgeCount++;
}
@@ -35475,8 +37136,8 @@ return /******/ (function(modules) { // webpackBootstrap
// this node qualifies, we collect its neighbours to start the clustering process.
if (relevantEdgeCount === edgeCount) {
var gatheringSuccessful = true;
- for (var j = 0; j < edges.length; j++) {
- edge = edges[j];
+ for (var _j = 0; _j < edges.length; _j++) {
+ edge = edges[_j];
var childNodeId = this._getConnectedId(edge, nodeId);
// add the nodes to the list by the join condition.
if (options.joinCondition === undefined) {
@@ -35485,7 +37146,7 @@ return /******/ (function(modules) { // webpackBootstrap
childNodesObj[childNodeId] = this.body.nodes[childNodeId];
usedNodes[nodeId] = true;
} else {
- var clonedOptions = _NetworkUtil2['default']._cloneOptions(this.body.nodes[nodeId]);
+ var clonedOptions = _NetworkUtil2.default.cloneOptions(this.body.nodes[nodeId]);
if (options.joinCondition(clonedOptions) === true) {
childEdgesObj[edge.id] = edge;
childNodesObj[nodeId] = this.body.nodes[nodeId];
@@ -35506,8 +37167,8 @@ return /******/ (function(modules) { // webpackBootstrap
}
}
- for (var i = 0; i < clusters.length; i++) {
- this._cluster(clusters[i].nodes, clusters[i].edges, options, false);
+ for (var _i3 = 0; _i3 < clusters.length; _i3++) {
+ this._cluster(clusters[_i3].nodes, clusters[_i3].edges, options, false);
}
if (refreshData === true) {
@@ -35520,6 +37181,7 @@ return /******/ (function(modules) { // webpackBootstrap
* @param options
* @param refreshData
*/
+
}, {
key: 'clusterOutliers',
value: function clusterOutliers(options) {
@@ -35533,6 +37195,7 @@ return /******/ (function(modules) { // webpackBootstrap
* @param options
* @param refreshData
*/
+
}, {
key: 'clusterBridges',
value: function clusterBridges(options) {
@@ -35547,6 +37210,7 @@ return /******/ (function(modules) { // webpackBootstrap
* @param options
* @param refreshData
*/
+
}, {
key: 'clusterByConnection',
value: function clusterByConnection(nodeId, options) {
@@ -35577,16 +37241,16 @@ return /******/ (function(modules) { // webpackBootstrap
var childNodesObj = {};
var childEdgesObj = {};
var parentNodeId = node.id;
- var parentClonedOptions = _NetworkUtil2['default']._cloneOptions(node);
+ var parentClonedOptions = _NetworkUtil2.default.cloneOptions(node);
childNodesObj[parentNodeId] = node;
// collect the nodes that will be in the cluster
for (var i = 0; i < node.edges.length; i++) {
var edge = node.edges[i];
- if (edge.hiddenByCluster !== true) {
+ if (this.clusteredEdges[edge.id] === undefined) {
var childNodeId = this._getConnectedId(edge, parentNodeId);
- // if the child node is not in a cluster (may not be needed now with the edge.hiddenByCluster check)
+ // if the child node is not in a cluster
if (this.clusteredNodes[childNodeId] === undefined) {
if (childNodeId !== parentNodeId) {
if (options.joinCondition === undefined) {
@@ -35594,7 +37258,7 @@ return /******/ (function(modules) { // webpackBootstrap
childNodesObj[childNodeId] = this.body.nodes[childNodeId];
} else {
// clone the options and insert some additional parameters that could be interesting.
- var childClonedOptions = _NetworkUtil2['default']._cloneOptions(this.body.nodes[childNodeId]);
+ var childClonedOptions = _NetworkUtil2.default.cloneOptions(this.body.nodes[childNodeId]);
if (options.joinCondition(parentClonedOptions, childClonedOptions) === true) {
childEdgesObj[edge.id] = edge;
childNodesObj[childNodeId] = this.body.nodes[childNodeId];
@@ -35616,19 +37280,21 @@ return /******/ (function(modules) { // webpackBootstrap
* It looks for edges that are connected to the nodes from the "outside' of the cluster.
*
* @param childNodesObj
- * @param newEdges
- * @param options
+ * @param childEdgesObj
+ * @param clusterNodeProperties
+ * @param clusterEdgeProperties
* @private
*/
+
}, {
key: '_createClusterEdges',
value: function _createClusterEdges(childNodesObj, childEdgesObj, clusterNodeProperties, clusterEdgeProperties) {
- var edge = undefined,
- childNodeId = undefined,
- childNode = undefined,
- toId = undefined,
- fromId = undefined,
- otherNodeId = undefined;
+ var edge = void 0,
+ childNodeId = void 0,
+ childNode = void 0,
+ toId = void 0,
+ fromId = void 0,
+ otherNodeId = void 0;
// loop over all child nodes and their edges to find edges going out of the cluster
// these edges will be replaced by clusterEdges.
@@ -35642,7 +37308,7 @@ return /******/ (function(modules) { // webpackBootstrap
for (var j = 0; j < childNode.edges.length; j++) {
edge = childNode.edges[j];
// we only handle edges that are visible to the system, not the disabled ones from the clustering process.
- if (edge.hiddenByCluster !== true) {
+ if (this.clusteredEdges[edge.id] === undefined) {
// self-referencing edges will be added to the "hidden" list
if (edge.toId == edge.fromId) {
childEdgesObj[edge.id] = edge;
@@ -35670,16 +37336,16 @@ return /******/ (function(modules) { // webpackBootstrap
// here we actually create the replacement edges. We could not do this in the loop above as the creation process
// would add an edge to the edges array we are iterating over.
- for (var j = 0; j < createEdges.length; j++) {
- var _edge = createEdges[j].edge;
+ for (var _j2 = 0; _j2 < createEdges.length; _j2++) {
+ var _edge = createEdges[_j2].edge;
// copy the options of the edge we will replace
- var clonedOptions = _NetworkUtil2['default']._cloneOptions(_edge, 'edge');
+ var clonedOptions = _NetworkUtil2.default.cloneOptions(_edge, 'edge');
// make sure the properties of clusterEdges are superimposed on it
util.deepExtend(clonedOptions, clusterEdgeProperties);
// set up the edge
- clonedOptions.from = createEdges[j].fromId;
- clonedOptions.to = createEdges[j].toId;
+ clonedOptions.from = createEdges[_j2].fromId;
+ clonedOptions.to = createEdges[_j2].toId;
clonedOptions.id = 'clusterEdge:' + util.randomUUID();
//clonedOptions.id = '(cf: ' + createEdges[j].fromId + " to: " + createEdges[j].toId + ")" + Math.random();
@@ -35692,8 +37358,8 @@ return /******/ (function(modules) { // webpackBootstrap
newEdge.connect();
// hide the replaced edge
+ this._backupEdgeOptions(_edge);
_edge.setOptions({ physics: false, hidden: true });
- _edge.hiddenByCluster = true;
}
}
@@ -35704,6 +37370,7 @@ return /******/ (function(modules) { // webpackBootstrap
* @returns {*}
* @private
*/
+
}, {
key: '_checkOptions',
value: function _checkOptions() {
@@ -35727,12 +37394,13 @@ return /******/ (function(modules) { // webpackBootstrap
* @param {Boolean} refreshData | when true, do not wrap up
* @private
*/
+
}, {
key: '_cluster',
value: function _cluster(childNodesObj, childEdgesObj, options) {
var refreshData = arguments.length <= 3 || arguments[3] === undefined ? true : arguments[3];
- // kill condition: no children so can't cluster or only one node in the cluster, dont bother
+ // kill condition: no children so can't cluster or only one node in the cluster, don't bother
if (Object.keys(childNodesObj).length < 2) {
return;
}
@@ -35752,21 +37420,21 @@ return /******/ (function(modules) { // webpackBootstrap
if (options.processProperties !== undefined) {
// get the childNode options
var childNodesOptions = [];
- for (var nodeId in childNodesObj) {
- if (childNodesObj.hasOwnProperty(nodeId)) {
- var clonedOptions = _NetworkUtil2['default']._cloneOptions(childNodesObj[nodeId]);
+ for (var _nodeId in childNodesObj) {
+ if (childNodesObj.hasOwnProperty(_nodeId)) {
+ var clonedOptions = _NetworkUtil2.default.cloneOptions(childNodesObj[_nodeId]);
childNodesOptions.push(clonedOptions);
}
}
- // get clusterproperties based on childNodes
+ // get cluster properties based on childNodes
var childEdgesOptions = [];
for (var edgeId in childEdgesObj) {
if (childEdgesObj.hasOwnProperty(edgeId)) {
// these cluster edges will be removed on creation of the cluster.
if (edgeId.substr(0, 12) !== "clusterEdge:") {
- var clonedOptions = _NetworkUtil2['default']._cloneOptions(childEdgesObj[edgeId], 'edge');
- childEdgesOptions.push(clonedOptions);
+ var _clonedOptions = _NetworkUtil2.default.cloneOptions(childEdgesObj[edgeId], 'edge');
+ childEdgesOptions.push(_clonedOptions);
}
}
}
@@ -35787,7 +37455,7 @@ return /******/ (function(modules) { // webpackBootstrap
clusterNodeProperties.label = 'cluster';
}
- // give the clusterNode a postion if it does not have one.
+ // give the clusterNode a position if it does not have one.
var pos = undefined;
if (clusterNodeProperties.x === undefined) {
pos = this._getClusterPosition(childNodesObj);
@@ -35804,7 +37472,7 @@ return /******/ (function(modules) { // webpackBootstrap
clusterNodeProperties.id = clusterId;
// create the clusterNode
- var clusterNode = this.body.functions.createNode(clusterNodeProperties, _componentsNodesCluster2['default']);
+ var clusterNode = this.body.functions.createNode(clusterNodeProperties, _Cluster2.default);
clusterNode.isCluster = true;
clusterNode.containedNodes = childNodesObj;
clusterNode.containedEdges = childEdgesObj;
@@ -35818,21 +37486,23 @@ return /******/ (function(modules) { // webpackBootstrap
this._createClusterEdges(childNodesObj, childEdgesObj, clusterNodeProperties, options.clusterEdgeProperties);
// disable the childEdges
- for (var edgeId in childEdgesObj) {
- if (childEdgesObj.hasOwnProperty(edgeId)) {
- if (this.body.edges[edgeId] !== undefined) {
- var edge = this.body.edges[edgeId];
+ for (var _edgeId in childEdgesObj) {
+ if (childEdgesObj.hasOwnProperty(_edgeId)) {
+ if (this.body.edges[_edgeId] !== undefined) {
+ var edge = this.body.edges[_edgeId];
+ // cache the options before changing
+ this._backupEdgeOptions(edge);
+ // disable physics and hide the edge
edge.setOptions({ physics: false, hidden: true });
- edge.hiddenByCluster = true;
}
}
}
// disable the childNodes
- for (var nodeId in childNodesObj) {
- if (childNodesObj.hasOwnProperty(nodeId)) {
- this.clusteredNodes[nodeId] = { clusterId: clusterNodeProperties.id, node: this.body.nodes[nodeId] };
- this.body.nodes[nodeId].setOptions({ hidden: true, physics: false });
+ for (var _nodeId2 in childNodesObj) {
+ if (childNodesObj.hasOwnProperty(_nodeId2)) {
+ this.clusteredNodes[_nodeId2] = { clusterId: clusterNodeProperties.id, node: this.body.nodes[_nodeId2] };
+ this.body.nodes[_nodeId2].setOptions({ hidden: true, physics: false });
}
}
@@ -35844,12 +37514,29 @@ return /******/ (function(modules) { // webpackBootstrap
this.body.emitter.emit('_dataChanged');
}
}
+ }, {
+ key: '_backupEdgeOptions',
+ value: function _backupEdgeOptions(edge) {
+ if (this.clusteredEdges[edge.id] === undefined) {
+ this.clusteredEdges[edge.id] = { physics: edge.options.physics, hidden: edge.options.hidden };
+ }
+ }
+ }, {
+ key: '_restoreEdge',
+ value: function _restoreEdge(edge) {
+ var originalOptions = this.clusteredEdges[edge.id];
+ if (originalOptions !== undefined) {
+ edge.setOptions({ physics: originalOptions.physics, hidden: originalOptions.hidden });
+ delete this.clusteredEdges[edge.id];
+ }
+ }
/**
* Check if a node is a cluster.
* @param nodeId
* @returns {*}
*/
+
}, {
key: 'isCluster',
value: function isCluster(nodeId) {
@@ -35867,6 +37554,7 @@ return /******/ (function(modules) { // webpackBootstrap
* @returns {{x: number, y: number}}
* @private
*/
+
}, {
key: '_getClusterPosition',
value: function _getClusterPosition(childNodesObj) {
@@ -35875,7 +37563,7 @@ return /******/ (function(modules) { // webpackBootstrap
var maxX = childNodesObj[childKeys[0]].x;
var minY = childNodesObj[childKeys[0]].y;
var maxY = childNodesObj[childKeys[0]].y;
- var node = undefined;
+ var node = void 0;
for (var i = 1; i < childKeys.length; i++) {
node = childNodesObj[childKeys[i]];
minX = node.x < minX ? node.x : minX;
@@ -35892,6 +37580,7 @@ return /******/ (function(modules) { // webpackBootstrap
* @param {String} clusterNodeId | the ID of the cluster node
* @param {Boolean} refreshData | wrap up afterwards if not true
*/
+
}, {
key: 'openCluster',
value: function openCluster(clusterNodeId, options) {
@@ -35924,45 +37613,45 @@ return /******/ (function(modules) { // webpackBootstrap
}
var newPositions = options.releaseFunction(clusterPosition, positions);
- for (var nodeId in containedNodes) {
- if (containedNodes.hasOwnProperty(nodeId)) {
- var containedNode = this.body.nodes[nodeId];
- if (newPositions[nodeId] !== undefined) {
- containedNode.x = newPositions[nodeId].x === undefined ? clusterNode.x : newPositions[nodeId].x;
- containedNode.y = newPositions[nodeId].y === undefined ? clusterNode.y : newPositions[nodeId].y;
+ for (var _nodeId3 in containedNodes) {
+ if (containedNodes.hasOwnProperty(_nodeId3)) {
+ var _containedNode = this.body.nodes[_nodeId3];
+ if (newPositions[_nodeId3] !== undefined) {
+ _containedNode.x = newPositions[_nodeId3].x === undefined ? clusterNode.x : newPositions[_nodeId3].x;
+ _containedNode.y = newPositions[_nodeId3].y === undefined ? clusterNode.y : newPositions[_nodeId3].y;
}
}
}
} else {
// copy the position from the cluster
- for (var nodeId in containedNodes) {
- if (containedNodes.hasOwnProperty(nodeId)) {
- var containedNode = this.body.nodes[nodeId];
- containedNode = containedNodes[nodeId];
+ for (var _nodeId4 in containedNodes) {
+ if (containedNodes.hasOwnProperty(_nodeId4)) {
+ var _containedNode2 = this.body.nodes[_nodeId4];
+ _containedNode2 = containedNodes[_nodeId4];
// inherit position
- if (containedNode.options.fixed.x === false) {
- containedNode.x = clusterNode.x;
+ if (_containedNode2.options.fixed.x === false) {
+ _containedNode2.x = clusterNode.x;
}
- if (containedNode.options.fixed.y === false) {
- containedNode.y = clusterNode.y;
+ if (_containedNode2.options.fixed.y === false) {
+ _containedNode2.y = clusterNode.y;
}
}
}
}
// release nodes
- for (var nodeId in containedNodes) {
- if (containedNodes.hasOwnProperty(nodeId)) {
- var containedNode = this.body.nodes[nodeId];
+ for (var _nodeId5 in containedNodes) {
+ if (containedNodes.hasOwnProperty(_nodeId5)) {
+ var _containedNode3 = this.body.nodes[_nodeId5];
// inherit speed
- containedNode.vx = clusterNode.vx;
- containedNode.vy = clusterNode.vy;
+ _containedNode3.vx = clusterNode.vx;
+ _containedNode3.vy = clusterNode.vy;
- // we use these methods to avoid reinstantiating the shape, which happens with setOptions.
- containedNode.setOptions({ hidden: false, physics: true });
+ // we use these methods to avoid re-instantiating the shape, which happens with setOptions.
+ _containedNode3.setOptions({ hidden: false, physics: true });
- delete this.clusteredNodes[nodeId];
+ delete this.clusteredNodes[_nodeId5];
}
}
@@ -35973,8 +37662,8 @@ return /******/ (function(modules) { // webpackBootstrap
}
// actually handling the deleting.
- for (var i = 0; i < edgesToBeDeleted.length; i++) {
- var edge = edgesToBeDeleted[i];
+ for (var _i4 = 0; _i4 < edgesToBeDeleted.length; _i4++) {
+ var edge = edgesToBeDeleted[_i4];
var otherNodeId = this._getConnectedId(edge, clusterNodeId);
// if the other node is in another cluster, we transfer ownership of this edge to the other cluster
@@ -35999,7 +37688,7 @@ return /******/ (function(modules) { // webpackBootstrap
}
// clone the options and apply the cluster options to them
- var clonedOptions = _NetworkUtil2['default']._cloneOptions(transferEdge, 'edge');
+ var clonedOptions = _NetworkUtil2.default.cloneOptions(transferEdge, 'edge');
util.deepExtend(clonedOptions, otherCluster.clusterEdgeProperties);
// apply the edge specific options to it.
@@ -36015,8 +37704,7 @@ return /******/ (function(modules) { // webpackBootstrap
} else {
var replacedEdge = this.body.edges[edge.clusteringEdgeReplacingId];
if (replacedEdge !== undefined) {
- replacedEdge.setOptions({ physics: true, hidden: false });
- replacedEdge.hiddenByCluster = false;
+ this._restoreEdge(replacedEdge);
}
}
edge.cleanup();
@@ -36028,10 +37716,7 @@ return /******/ (function(modules) { // webpackBootstrap
// handle the releasing of the edges
for (var edgeId in containedEdges) {
if (containedEdges.hasOwnProperty(edgeId)) {
- var edge = containedEdges[edgeId];
- edge.setOptions({ physics: true, hidden: false });
- edge.hiddenByCluster = undefined;
- delete edge.hiddenByCluster;
+ this._restoreEdge(containedEdges[edgeId]);
}
}
@@ -36050,7 +37735,7 @@ return /******/ (function(modules) { // webpackBootstrap
var containedNodes = this.body.nodes[clusterId].containedNodes;
for (var nodeId in containedNodes) {
if (containedNodes.hasOwnProperty(nodeId)) {
- nodesArray.push(nodeId);
+ nodesArray.push(this.body.nodes[nodeId].id);
}
}
}
@@ -36063,6 +37748,7 @@ return /******/ (function(modules) { // webpackBootstrap
* @param nodeId
* @returns {Array}
*/
+
}, {
key: 'findNode',
value: function findNode(nodeId) {
@@ -36071,11 +37757,13 @@ return /******/ (function(modules) { // webpackBootstrap
var counter = 0;
while (this.clusteredNodes[nodeId] !== undefined && counter < max) {
- stack.push(this.clusteredNodes[nodeId].node);
+ stack.push(this.body.nodes[nodeId].id);
nodeId = this.clusteredNodes[nodeId].clusterId;
counter++;
}
- stack.push(this.body.nodes[nodeId]);
+ stack.push(this.body.nodes[nodeId].id);
+ stack.reverse();
+
return stack;
}
@@ -36086,6 +37774,7 @@ return /******/ (function(modules) { // webpackBootstrap
* @returns {*}
* @private
*/
+
}, {
key: '_getConnectedId',
value: function _getConnectedId(edge, nodeId) {
@@ -36104,6 +37793,7 @@ return /******/ (function(modules) { // webpackBootstrap
*
* @private
*/
+
}, {
key: '_getHubSize',
value: function _getHubSize() {
@@ -36139,13 +37829,12 @@ return /******/ (function(modules) { // webpackBootstrap
}]);
return ClusterEngine;
- })();
+ }();
- exports['default'] = ClusterEngine;
- module.exports = exports['default'];
+ exports.default = ClusterEngine;
/***/ },
-/* 100 */
+/* 103 */
/***/ function(module, exports, __webpack_require__) {
"use strict";
@@ -36154,25 +37843,25 @@ return /******/ (function(modules) { // webpackBootstrap
value: true
});
- 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 _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; }; }();
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
var util = __webpack_require__(1);
- var NetworkUtil = (function () {
+ var NetworkUtil = function () {
function NetworkUtil() {
_classCallCheck(this, NetworkUtil);
}
/**
* Find the center position of the network considering the bounding boxes
- * @private
*/
+
_createClass(NetworkUtil, null, [{
- key: "_getRange",
- value: function _getRange(allNodes) {
+ key: "getRange",
+ value: function getRange(allNodes) {
var specificNodes = arguments.length <= 1 || arguments[1] === undefined ? [] : arguments[1];
var minY = 1e9,
@@ -36206,11 +37895,11 @@ return /******/ (function(modules) { // webpackBootstrap
/**
* Find the center position of the network
- * @private
*/
+
}, {
- key: "_getRangeCore",
- value: function _getRangeCore(allNodes) {
+ key: "getRangeCore",
+ value: function getRangeCore(allNodes) {
var specificNodes = arguments.length <= 1 || arguments[1] === undefined ? [] : arguments[1];
var minY = 1e9,
@@ -36245,11 +37934,11 @@ return /******/ (function(modules) { // webpackBootstrap
/**
* @param {object} range = {minX: minX, maxX: maxX, minY: minY, maxY: maxY};
* @returns {{x: number, y: number}}
- * @private
*/
+
}, {
- key: "_findCenter",
- value: function _findCenter(range) {
+ key: "findCenter",
+ value: function findCenter(range) {
return { x: 0.5 * (range.maxX + range.minX),
y: 0.5 * (range.maxY + range.minY) };
}
@@ -36259,11 +37948,11 @@ return /******/ (function(modules) { // webpackBootstrap
* @param item
* @param type
* @returns {{}}
- * @private
*/
+
}, {
- key: "_cloneOptions",
- value: function _cloneOptions(item, type) {
+ key: "cloneOptions",
+ value: function cloneOptions(item, type) {
var clonedOptions = {};
if (type === undefined || type === 'node') {
util.deepExtend(clonedOptions, item.options, true);
@@ -36278,69 +37967,68 @@ return /******/ (function(modules) { // webpackBootstrap
}]);
return NetworkUtil;
- })();
+ }();
- exports["default"] = NetworkUtil;
- module.exports = exports["default"];
+ exports.default = NetworkUtil;
/***/ },
-/* 101 */
+/* 104 */
/***/ function(module, exports, __webpack_require__) {
'use strict';
- Object.defineProperty(exports, '__esModule', {
+ Object.defineProperty(exports, "__esModule", {
value: true
});
- var _get = function get(_x, _x2, _x3) { var _again = true; _function: while (_again) { var object = _x, property = _x2, receiver = _x3; _again = false; if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { _x = parent; _x2 = property; _x3 = receiver; _again = true; desc = parent = undefined; continue _function; } } else if ('value' in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } } };
+ var _Node2 = __webpack_require__(65);
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
+ var _Node3 = _interopRequireDefault(_Node2);
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
- function _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
+ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
- var _Node2 = __webpack_require__(62);
+ function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
- var _Node3 = _interopRequireDefault(_Node2);
+ function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
/**
*
*/
- var Cluster = (function (_Node) {
+ var Cluster = function (_Node) {
_inherits(Cluster, _Node);
function Cluster(options, body, imagelist, grouplist, globalOptions) {
_classCallCheck(this, Cluster);
- _get(Object.getPrototypeOf(Cluster.prototype), 'constructor', this).call(this, options, body, imagelist, grouplist, globalOptions);
+ var _this = _possibleConstructorReturn(this, Object.getPrototypeOf(Cluster).call(this, options, body, imagelist, grouplist, globalOptions));
- this.isCluster = true;
- this.containedNodes = {};
- this.containedEdges = {};
+ _this.isCluster = true;
+ _this.containedNodes = {};
+ _this.containedEdges = {};
+ return _this;
}
return Cluster;
- })(_Node3['default']);
+ }(_Node3.default);
- exports['default'] = Cluster;
- module.exports = exports['default'];
+ exports.default = Cluster;
/***/ },
-/* 102 */
+/* 105 */
/***/ function(module, exports, __webpack_require__) {
'use strict';
- Object.defineProperty(exports, '__esModule', {
+ Object.defineProperty(exports, "__esModule", {
value: true
});
- 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 _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; }; }();
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }
+ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
if (typeof window !== 'undefined') {
window.requestAnimationFrame = window.requestAnimationFrame || window.mozRequestAnimationFrame || window.webkitRequestAnimationFrame || window.msRequestAnimationFrame;
@@ -36348,7 +38036,7 @@ return /******/ (function(modules) { // webpackBootstrap
var util = __webpack_require__(1);
- var CanvasRenderer = (function () {
+ var CanvasRenderer = function () {
function CanvasRenderer(body, canvas) {
_classCallCheck(this, CanvasRenderer);
@@ -36469,6 +38157,7 @@ return /******/ (function(modules) { // webpackBootstrap
* Redraw the network with the current data
* chart will be resized too.
*/
+
}, {
key: 'redraw',
value: function redraw() {
@@ -36481,6 +38170,7 @@ return /******/ (function(modules) { // webpackBootstrap
* @param hidden | used to get the first estimate of the node sizes. only the nodes are drawn after which they are quickly drawn over.
* @private
*/
+
}, {
key: '_requestRedraw',
value: function _requestRedraw() {
@@ -36548,10 +38238,6 @@ return /******/ (function(modules) { // webpackBootstrap
this._drawNodes(ctx, hidden);
}
- if (this.controlNodesActive === true) {
- this._drawControlNodes(ctx);
- }
-
ctx.beginPath();
this.body.emitter.emit("afterDrawing", ctx);
ctx.closePath();
@@ -36571,6 +38257,7 @@ return /******/ (function(modules) { // webpackBootstrap
* @param {Boolean} [alwaysShow]
* @private
*/
+
}, {
key: '_resizeNodes',
value: function _resizeNodes() {
@@ -36584,7 +38271,7 @@ return /******/ (function(modules) { // webpackBootstrap
ctx.scale(this.body.view.scale, this.body.view.scale);
var nodes = this.body.nodes;
- var node = undefined;
+ var node = void 0;
// resize all nodes
for (var nodeId in nodes) {
@@ -36606,6 +38293,7 @@ return /******/ (function(modules) { // webpackBootstrap
* @param {Boolean} [alwaysShow]
* @private
*/
+
}, {
key: '_drawNodes',
value: function _drawNodes(ctx) {
@@ -36613,7 +38301,7 @@ return /******/ (function(modules) { // webpackBootstrap
var nodes = this.body.nodes;
var nodeIndices = this.body.nodeIndices;
- var node = undefined;
+ var node = void 0;
var selected = [];
var margin = 20;
var topLeft = this.canvas.DOMtoCanvas({ x: -margin, y: -margin });
@@ -36641,8 +38329,8 @@ return /******/ (function(modules) { // webpackBootstrap
}
// draw the selected nodes on top
- for (var i = 0; i < selected.length; i++) {
- node = nodes[selected[i]];
+ for (var _i = 0; _i < selected.length; _i++) {
+ node = nodes[selected[_i]];
node.draw(ctx);
}
}
@@ -36653,12 +38341,13 @@ return /******/ (function(modules) { // webpackBootstrap
* @param {CanvasRenderingContext2D} ctx
* @private
*/
+
}, {
key: '_drawEdges',
value: function _drawEdges(ctx) {
var edges = this.body.edges;
var edgeIndices = this.body.edgeIndices;
- var edge = undefined;
+ var edge = void 0;
for (var i = 0; i < edgeIndices.length; i++) {
edge = edges[edgeIndices[i]];
@@ -36669,29 +38358,11 @@ return /******/ (function(modules) { // webpackBootstrap
}
/**
- * Redraw all edges
- * The 2d context of a HTML canvas can be retrieved by canvas.getContext('2d');
- * @param {CanvasRenderingContext2D} ctx
- * @private
- */
- }, {
- key: '_drawControlNodes',
- value: function _drawControlNodes(ctx) {
- var edges = this.body.edges;
- var edgeIndices = this.body.edgeIndices;
- var edge = undefined;
-
- for (var i = 0; i < edgeIndices.length; i++) {
- edge = edges[edgeIndices[i]];
- edge._drawControlNodes(ctx);
- }
- }
-
- /**
* Determine if the browser requires a setTimeout or a requestAnimationFrame. This was required because
* some implementations (safari and IE9) did not support requestAnimationFrame
* @private
*/
+
}, {
key: '_determineBrowserMethod',
value: function _determineBrowserMethod() {
@@ -36714,27 +38385,26 @@ return /******/ (function(modules) { // webpackBootstrap
}]);
return CanvasRenderer;
- })();
+ }();
- exports['default'] = CanvasRenderer;
- module.exports = exports['default'];
+ exports.default = CanvasRenderer;
/***/ },
-/* 103 */
+/* 106 */
/***/ function(module, exports, __webpack_require__) {
'use strict';
- Object.defineProperty(exports, '__esModule', {
+ Object.defineProperty(exports, "__esModule", {
value: true
});
- 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 _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; }; }();
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }
+ 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__(25);
+ var hammerUtil = __webpack_require__(28);
var util = __webpack_require__(1);
@@ -36746,7 +38416,7 @@ return /******/ (function(modules) { // webpackBootstrap
* @private
*/
- var Canvas = (function () {
+ var Canvas = function () {
function Canvas(body) {
_classCallCheck(this, Canvas);
@@ -36755,6 +38425,7 @@ return /******/ (function(modules) { // webpackBootstrap
this.resizeTimer = undefined;
this.resizeFunction = this._onResize.bind(this);
this.cameraState = {};
+ this.initialized = false;
this.options = {};
this.defaultOptions = {
@@ -36832,28 +38503,46 @@ return /******/ (function(modules) { // webpackBootstrap
* Get and store the cameraState
* @private
*/
+
}, {
key: '_getCameraState',
value: function _getCameraState() {
var pixelRatio = arguments.length <= 0 || arguments[0] === undefined ? this.pixelRatio : arguments[0];
- this.cameraState.previousWidth = this.frame.canvas.width / pixelRatio;
- this.cameraState.previousHeight = this.frame.canvas.height / pixelRatio;
- this.cameraState.scale = this.body.view.scale;
- this.cameraState.position = this.DOMtoCanvas({ x: 0.5 * this.frame.canvas.width / pixelRatio, y: 0.5 * this.frame.canvas.height / pixelRatio });
+ if (this.initialized === true) {
+ this.cameraState.previousWidth = this.frame.canvas.width / pixelRatio;
+ this.cameraState.previousHeight = this.frame.canvas.height / pixelRatio;
+ this.cameraState.scale = this.body.view.scale;
+ this.cameraState.position = this.DOMtoCanvas({
+ x: 0.5 * this.frame.canvas.width / pixelRatio,
+ y: 0.5 * this.frame.canvas.height / pixelRatio
+ });
+ }
}
/**
* Set the cameraState
* @private
*/
+
}, {
key: '_setCameraState',
value: function _setCameraState() {
if (this.cameraState.scale !== undefined && this.frame.canvas.clientWidth !== 0 && this.frame.canvas.clientHeight !== 0 && this.pixelRatio !== 0 && this.cameraState.previousWidth > 0) {
- this.body.view.scale = this.cameraState.scale * Math.min(this.frame.canvas.width / this.pixelRatio / this.cameraState.previousWidth, this.frame.canvas.height / this.pixelRatio / this.cameraState.previousHeight);
+ var widthRatio = this.frame.canvas.width / this.pixelRatio / this.cameraState.previousWidth;
+ var heightRatio = this.frame.canvas.height / this.pixelRatio / this.cameraState.previousHeight;
+ var newScale = this.cameraState.scale;
+ if (widthRatio != 1 && heightRatio != 1) {
+ newScale = this.cameraState.scale * 0.5 * (widthRatio + heightRatio);
+ } else if (widthRatio != 1) {
+ newScale = this.cameraState.scale * widthRatio;
+ } else if (heightRatio != 1) {
+ newScale = this.cameraState.scale * heightRatio;
+ }
+
+ this.body.view.scale = newScale;
// this comes from the view module.
var currentViewCenter = this.DOMtoCanvas({
x: 0.5 * this.frame.canvas.clientWidth,
@@ -36886,6 +38575,7 @@ return /******/ (function(modules) { // webpackBootstrap
/**
* Create the HTML
*/
+
}, {
key: '_create',
value: function _create() {
@@ -36933,6 +38623,7 @@ return /******/ (function(modules) { // webpackBootstrap
* This function binds hammer, it can be repeated over and over due to the uniqueness check.
* @private
*/
+
}, {
key: '_bindHammer',
value: function _bindHammer() {
@@ -36948,7 +38639,7 @@ return /******/ (function(modules) { // webpackBootstrap
this.hammer = new Hammer(this.frame.canvas);
this.hammer.get('pinch').set({ enable: true });
// enable to get better response, todo: test on mobile.
- this.hammer.get('pan').set({ threshold: 5, direction: 30 }); // 30 is ALL_DIRECTIONS in hammer.
+ this.hammer.get('pan').set({ threshold: 5, direction: Hammer.DIRECTION_ALL });
hammerUtil.onTouch(this.hammer, function (event) {
_this3.body.eventListeners.onTouch(event);
@@ -37003,6 +38694,7 @@ return /******/ (function(modules) { // webpackBootstrap
* @param {string} height Height in pixels or percentage (for example '400px'
* or '30%')
*/
+
}, {
key: 'setSize',
value: function setSize() {
@@ -37016,13 +38708,13 @@ return /******/ (function(modules) { // webpackBootstrap
var oldWidth = this.frame.canvas.width;
var oldHeight = this.frame.canvas.height;
- // update the pixelratio
+ // update the pixel ratio
var ctx = this.frame.canvas.getContext("2d");
- var previousRation = this.pixelRatio; // we cache this because the camera state storage needs the old value
+ var previousRatio = this.pixelRatio; // we cache this because the camera state storage needs the old value
this.pixelRatio = (window.devicePixelRatio || 1) / (ctx.webkitBackingStorePixelRatio || ctx.mozBackingStorePixelRatio || ctx.msBackingStorePixelRatio || ctx.oBackingStorePixelRatio || ctx.backingStorePixelRatio || 1);
if (width != this.options.width || height != this.options.height || this.frame.style.width != width || this.frame.style.height != height) {
- this._getCameraState(previousRation);
+ this._getCameraState(previousRatio);
this.frame.style.width = width;
this.frame.style.height = height;
@@ -37043,7 +38735,7 @@ return /******/ (function(modules) { // webpackBootstrap
// store the camera if there is a change in size.
if (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(previousRation);
+ this._getCameraState(previousRatio);
}
if (this.frame.canvas.width != Math.round(this.frame.canvas.clientWidth * this.pixelRatio)) {
@@ -37068,11 +38760,14 @@ return /******/ (function(modules) { // webpackBootstrap
this._setCameraState();
}
+ // set initialized so the get and set camera will work from now on.
+ this.initialized = true;
return emitEvent;
}
}, {
key: '_XconvertDOMtoCanvas',
+
/**
* Convert the X coordinate in DOM-space (coordinate point in browser relative to the container div) to
* the X coordinate in canvas-space (the simulation sandbox, which the camera looks upon)
@@ -37091,6 +38786,7 @@ return /******/ (function(modules) { // webpackBootstrap
* @returns {number}
* @private
*/
+
}, {
key: '_XconvertCanvasToDOM',
value: function _XconvertCanvasToDOM(x) {
@@ -37104,6 +38800,7 @@ return /******/ (function(modules) { // webpackBootstrap
* @returns {number}
* @private
*/
+
}, {
key: '_YconvertDOMtoCanvas',
value: function _YconvertDOMtoCanvas(y) {
@@ -37117,6 +38814,7 @@ return /******/ (function(modules) { // webpackBootstrap
* @returns {number}
* @private
*/
+
}, {
key: '_YconvertCanvasToDOM',
value: function _YconvertCanvasToDOM(y) {
@@ -37129,6 +38827,7 @@ return /******/ (function(modules) { // webpackBootstrap
* @returns {{x: number, y: number}}
* @constructor
*/
+
}, {
key: 'canvasToDOM',
value: function canvasToDOM(pos) {
@@ -37141,6 +38840,7 @@ return /******/ (function(modules) { // webpackBootstrap
* @returns {{x: number, y: number}}
* @constructor
*/
+
}, {
key: 'DOMtoCanvas',
value: function DOMtoCanvas(pos) {
@@ -37149,34 +38849,33 @@ return /******/ (function(modules) { // webpackBootstrap
}]);
return Canvas;
- })();
+ }();
- exports['default'] = Canvas;
- module.exports = exports['default'];
+ exports.default = Canvas;
/***/ },
-/* 104 */
+/* 107 */
/***/ function(module, exports, __webpack_require__) {
'use strict';
- Object.defineProperty(exports, '__esModule', {
+ Object.defineProperty(exports, "__esModule", {
value: true
});
- 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 _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; }; }();
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
+ var _NetworkUtil = __webpack_require__(103);
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }
+ var _NetworkUtil2 = _interopRequireDefault(_NetworkUtil);
- var _NetworkUtil = __webpack_require__(100);
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
- var _NetworkUtil2 = _interopRequireDefault(_NetworkUtil);
+ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
var util = __webpack_require__(1);
- var View = (function () {
+ var View = function () {
function View(body, canvas) {
var _this = this;
@@ -37218,14 +38917,15 @@ return /******/ (function(modules) { // webpackBootstrap
* @param {Object} Options
* @param {Boolean} [initialZoom] | zoom based on fitted formula or range, true = fitted, default = false;
*/
+
}, {
key: 'fit',
value: function fit() {
var options = arguments.length <= 0 || arguments[0] === undefined ? { nodes: [] } : arguments[0];
var initialZoom = arguments.length <= 1 || arguments[1] === undefined ? false : arguments[1];
- var range = undefined;
- var zoomLevel = undefined;
+ var range = void 0;
+ var zoomLevel = void 0;
if (options.nodes === undefined || options.nodes.length === 0) {
options.nodes = this.body.nodeIndices;
}
@@ -37246,7 +38946,7 @@ return /******/ (function(modules) { // webpackBootstrap
return;
}
- range = _NetworkUtil2['default']._getRange(this.body.nodes, options.nodes);
+ range = _NetworkUtil2.default.getRange(this.body.nodes, options.nodes);
var numberOfNodes = this.body.nodeIndices.length;
zoomLevel = 12.662 / (numberOfNodes + 7.4147) + 0.0964822; // this is obtained from fitting a dataset from 5 points with scale levels that looked good.
@@ -37256,7 +38956,7 @@ return /******/ (function(modules) { // webpackBootstrap
zoomLevel *= factor;
} else {
this.body.emitter.emit("_resizeNodes");
- range = _NetworkUtil2['default']._getRange(this.body.nodes, options.nodes);
+ range = _NetworkUtil2.default.getRange(this.body.nodes, options.nodes);
var xDistance = Math.abs(range.maxX - range.minX) * 1.1;
var yDistance = Math.abs(range.maxY - range.minY) * 1.1;
@@ -37273,7 +38973,7 @@ return /******/ (function(modules) { // webpackBootstrap
zoomLevel = 1.0;
}
- var center = _NetworkUtil2['default']._findCenter(range);
+ var center = _NetworkUtil2.default.findCenter(range);
var animationOptions = { position: center, scale: zoomLevel, animation: options.animation };
this.moveTo(animationOptions);
}
@@ -37286,6 +38986,7 @@ return /******/ (function(modules) { // webpackBootstrap
* @param {Number} nodeId
* @param {Number} [options]
*/
+
}, {
key: 'focus',
value: function focus(nodeId) {
@@ -37309,6 +39010,7 @@ return /******/ (function(modules) { // webpackBootstrap
* | options.position = {x:Number, y:Number} // position to move to
* | options.animation = {duration:Number, easingFunction:String} || Boolean // position to move to
*/
+
}, {
key: 'moveTo',
value: function moveTo(options) {
@@ -37361,6 +39063,7 @@ return /******/ (function(modules) { // webpackBootstrap
* // easeInQuart, easeOutQuart, easeInOutQuart,
* // easeInQuint, easeOutQuint, easeInOutQuint
*/
+
}, {
key: 'animateView',
value: function animateView(options) {
@@ -37422,6 +39125,7 @@ return /******/ (function(modules) { // webpackBootstrap
* used to animate smoothly by hijacking the redraw function.
* @private
*/
+
}, {
key: '_lockedRedraw',
value: function _lockedRedraw() {
@@ -37454,6 +39158,7 @@ return /******/ (function(modules) { // webpackBootstrap
* @param easingTime
* @private
*/
+
}, {
key: '_transitionRedraw',
value: function _transitionRedraw() {
@@ -37494,45 +39199,44 @@ return /******/ (function(modules) { // webpackBootstrap
}]);
return View;
- })();
+ }();
- exports['default'] = View;
- module.exports = exports['default'];
+ exports.default = View;
/***/ },
-/* 105 */
+/* 108 */
/***/ function(module, exports, __webpack_require__) {
'use strict';
- Object.defineProperty(exports, '__esModule', {
+ Object.defineProperty(exports, "__esModule", {
value: true
});
- 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 _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; }; }();
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
+ var _NavigationHandler = __webpack_require__(109);
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }
+ var _NavigationHandler2 = _interopRequireDefault(_NavigationHandler);
- var _componentsNavigationHandler = __webpack_require__(106);
+ var _Popup = __webpack_require__(110);
- var _componentsNavigationHandler2 = _interopRequireDefault(_componentsNavigationHandler);
+ var _Popup2 = _interopRequireDefault(_Popup);
- var _componentsPopup = __webpack_require__(107);
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
- var _componentsPopup2 = _interopRequireDefault(_componentsPopup);
+ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
var util = __webpack_require__(1);
- var InteractionHandler = (function () {
+ var InteractionHandler = function () {
function InteractionHandler(body, canvas, selectionHandler) {
_classCallCheck(this, InteractionHandler);
this.body = body;
this.canvas = canvas;
this.selectionHandler = selectionHandler;
- this.navigationHandler = new _componentsNavigationHandler2['default'](body, canvas);
+ this.navigationHandler = new _NavigationHandler2.default(body, canvas);
// bind the events from hammer to functions in this object
this.body.eventListeners.onTap = this.onTap.bind(this);
@@ -37614,6 +39318,7 @@ return /******/ (function(modules) { // webpackBootstrap
* @return {{x: Number, y: Number}} pointer
* @private
*/
+
}, {
key: 'getPointer',
value: function getPointer(touch) {
@@ -37628,6 +39333,7 @@ return /******/ (function(modules) { // webpackBootstrap
* @param event
* @private
*/
+
}, {
key: 'onTouch',
value: function onTouch(event) {
@@ -37644,6 +39350,7 @@ return /******/ (function(modules) { // webpackBootstrap
* handle tap/click event: select/unselect a node
* @private
*/
+
}, {
key: 'onTap',
value: function onTap(event) {
@@ -37658,6 +39365,7 @@ return /******/ (function(modules) { // webpackBootstrap
* handle doubletap event
* @private
*/
+
}, {
key: 'onDoubleTap',
value: function onDoubleTap(event) {
@@ -37669,6 +39377,7 @@ return /******/ (function(modules) { // webpackBootstrap
* handle long tap event: multi select nodes
* @private
*/
+
}, {
key: 'onHold',
value: function onHold(event) {
@@ -37686,6 +39395,7 @@ return /******/ (function(modules) { // webpackBootstrap
*
* @private
*/
+
}, {
key: 'onRelease',
value: function onRelease(event) {
@@ -37708,6 +39418,7 @@ return /******/ (function(modules) { // webpackBootstrap
* @param pointer
* @param add
*/
+
}, {
key: 'checkSelectionChanges',
value: function checkSelectionChanges(pointer, event) {
@@ -37716,7 +39427,7 @@ return /******/ (function(modules) { // webpackBootstrap
var previouslySelectedEdgeCount = this.selectionHandler._getSelectedEdgeCount();
var previouslySelectedNodeCount = this.selectionHandler._getSelectedNodeCount();
var previousSelection = this.selectionHandler.getSelection();
- var selected = undefined;
+ var selected = void 0;
if (add === true) {
selected = this.selectionHandler.selectAdditionalOnPoint(pointer);
} else {
@@ -37728,8 +39439,8 @@ return /******/ (function(modules) { // webpackBootstrap
var _determineIfDifferent2 = this._determineIfDifferent(previousSelection, currentSelection);
- var nodesChanges = _determineIfDifferent2.nodesChanges;
- var edgesChanges = _determineIfDifferent2.edgesChanges;
+ var nodesChanged = _determineIfDifferent2.nodesChanged;
+ var edgesChanged = _determineIfDifferent2.edgesChanged;
var nodeSelected = false;
@@ -37738,15 +39449,15 @@ return /******/ (function(modules) { // webpackBootstrap
this.selectionHandler._generateClickEvent('selectNode', event, pointer);
selected = true;
nodeSelected = true;
- } else if (selectedNodesCount - previouslySelectedNodeCount < 0) {
- // node was deselected
- this.selectionHandler._generateClickEvent('deselectNode', event, pointer, previousSelection);
- selected = true;
- } else if (selectedNodesCount === previouslySelectedNodeCount && nodesChanges === true) {
+ } else if (nodesChanged === true && selectedNodesCount > 0) {
this.selectionHandler._generateClickEvent('deselectNode', event, pointer, previousSelection);
this.selectionHandler._generateClickEvent('selectNode', event, pointer);
nodeSelected = true;
selected = true;
+ } else if (selectedNodesCount - previouslySelectedNodeCount < 0) {
+ // node was deselected
+ this.selectionHandler._generateClickEvent('deselectNode', event, pointer, previousSelection);
+ selected = true;
}
// handle the selected edges
@@ -37754,13 +39465,13 @@ return /******/ (function(modules) { // webpackBootstrap
// edge was selected
this.selectionHandler._generateClickEvent('selectEdge', event, pointer);
selected = true;
- } else if (selectedEdgesCount - previouslySelectedEdgeCount < 0) {
- // edge was deselected
+ } else if (selectedEdgesCount > 0 && edgesChanged === true) {
this.selectionHandler._generateClickEvent('deselectEdge', event, pointer, previousSelection);
+ this.selectionHandler._generateClickEvent('selectEdge', event, pointer);
selected = true;
- } else if (selectedEdgesCount === previouslySelectedEdgeCount && edgesChanges === true) {
+ } else if (selectedEdgesCount - previouslySelectedEdgeCount < 0) {
+ // edge was deselected
this.selectionHandler._generateClickEvent('deselectEdge', event, pointer, previousSelection);
- this.selectionHandler._generateClickEvent('selectEdge', event, pointer);
selected = true;
}
@@ -37775,37 +39486,38 @@ return /******/ (function(modules) { // webpackBootstrap
* This function checks if the nodes and edges previously selected have changed.
* @param previousSelection
* @param currentSelection
- * @returns {{nodesChanges: boolean, edgesChanges: boolean}}
+ * @returns {{nodesChanged: boolean, edgesChanged: boolean}}
* @private
*/
+
}, {
key: '_determineIfDifferent',
value: function _determineIfDifferent(previousSelection, currentSelection) {
- var nodesChanges = false;
- var edgesChanges = false;
+ var nodesChanged = false;
+ var edgesChanged = false;
for (var i = 0; i < previousSelection.nodes.length; i++) {
if (currentSelection.nodes.indexOf(previousSelection.nodes[i]) === -1) {
- nodesChanges = true;
+ nodesChanged = true;
}
}
- for (var i = 0; i < currentSelection.nodes.length; i++) {
- if (previousSelection.nodes.indexOf(previousSelection.nodes[i]) === -1) {
- nodesChanges = true;
+ for (var _i = 0; _i < currentSelection.nodes.length; _i++) {
+ if (previousSelection.nodes.indexOf(previousSelection.nodes[_i]) === -1) {
+ nodesChanged = true;
}
}
- for (var i = 0; i < previousSelection.edges.length; i++) {
- if (currentSelection.edges.indexOf(previousSelection.edges[i]) === -1) {
- edgesChanges = true;
+ for (var _i2 = 0; _i2 < previousSelection.edges.length; _i2++) {
+ if (currentSelection.edges.indexOf(previousSelection.edges[_i2]) === -1) {
+ edgesChanged = true;
}
}
- for (var i = 0; i < currentSelection.edges.length; i++) {
- if (previousSelection.edges.indexOf(previousSelection.edges[i]) === -1) {
- edgesChanges = true;
+ for (var _i3 = 0; _i3 < currentSelection.edges.length; _i3++) {
+ if (previousSelection.edges.indexOf(previousSelection.edges[_i3]) === -1) {
+ edgesChanged = true;
}
}
- return { nodesChanges: nodesChanges, edgesChanges: edgesChanges };
+ return { nodesChanged: nodesChanged, edgesChanged: edgesChanged };
}
/**
@@ -37814,6 +39526,7 @@ return /******/ (function(modules) { // webpackBootstrap
*
* @private
*/
+
}, {
key: 'onDragStart',
value: function onDragStart(event) {
@@ -37873,6 +39586,7 @@ return /******/ (function(modules) { // webpackBootstrap
* handle drag event
* @private
*/
+
}, {
key: 'onDrag',
value: function onDrag(event) {
@@ -37935,6 +39649,7 @@ return /******/ (function(modules) { // webpackBootstrap
* handle drag start event
* @private
*/
+
}, {
key: 'onDragEnd',
value: function onDragEnd(event) {
@@ -37959,6 +39674,7 @@ return /******/ (function(modules) { // webpackBootstrap
* @param event
* @private
*/
+
}, {
key: 'onPinch',
value: function onPinch(event) {
@@ -37981,6 +39697,7 @@ return /******/ (function(modules) { // webpackBootstrap
* @return {Number} appliedScale scale is limited within the boundaries
* @private
*/
+
}, {
key: 'zoom',
value: function zoom(scale, pointer) {
@@ -38032,43 +39749,46 @@ return /******/ (function(modules) { // webpackBootstrap
* @param {MouseEvent} event
* @private
*/
+
}, {
key: 'onMouseWheel',
value: function onMouseWheel(event) {
- // retrieve delta
- 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;
- }
+ if (this.options.zoomView === true) {
+ // retrieve delta
+ 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;
+ }
+
+ // If delta is nonzero, handle it.
+ // Basically, delta is now positive if wheel was scrolled up,
+ // and negative, if wheel was scrolled down.
+ if (delta !== 0) {
+
+ // calculate the new scale
+ var scale = this.body.view.scale;
+ var zoom = delta / 10;
+ if (delta < 0) {
+ zoom = zoom / (1 - zoom);
+ }
+ scale *= 1 + zoom;
- // If delta is nonzero, handle it.
- // Basically, delta is now positive if wheel was scrolled up,
- // and negative, if wheel was scrolled down.
- if (delta !== 0) {
+ // calculate the pointer location
+ var pointer = this.getPointer({ x: event.clientX, y: event.clientY });
- // calculate the new scale
- var scale = this.body.view.scale;
- var zoom = delta / 10;
- if (delta < 0) {
- zoom = zoom / (1 - zoom);
+ // apply the new scale
+ this.zoom(scale, pointer);
}
- scale *= 1 + zoom;
- // calculate the pointer location
- var pointer = this.getPointer({ x: event.clientX, y: event.clientY });
-
- // apply the new scale
- this.zoom(scale, pointer);
+ // Prevent default actions caused by mouse wheel.
+ event.preventDefault();
}
-
- // Prevent default actions caused by mouse wheel.
- event.preventDefault();
}
/**
@@ -38076,6 +39796,7 @@ return /******/ (function(modules) { // webpackBootstrap
* @param {Event} event
* @private
*/
+
}, {
key: 'onMouseMove',
value: function onMouseMove(event) {
@@ -38137,6 +39858,7 @@ return /******/ (function(modules) { // webpackBootstrap
* @param {{x:Number, y:Number}} pointer
* @private
*/
+
}, {
key: '_checkShowPopup',
value: function _checkShowPopup(pointer) {
@@ -38158,7 +39880,7 @@ return /******/ (function(modules) { // webpackBootstrap
// search the nodes for overlap, select the top one in case of multiple nodes
var nodeIndices = this.body.nodeIndices;
var nodes = this.body.nodes;
- var node = undefined;
+ var node = void 0;
var overlappingNodes = [];
for (var i = 0; i < nodeIndices.length; i++) {
node = nodes[nodeIndices[i]];
@@ -38181,13 +39903,13 @@ return /******/ (function(modules) { // webpackBootstrap
// search the edges for overlap
var edgeIndices = this.body.edgeIndices;
var edges = this.body.edges;
- var edge = undefined;
+ var edge = void 0;
var overlappingEdges = [];
- for (var i = 0; i < edgeIndices.length; i++) {
- edge = edges[edgeIndices[i]];
+ for (var _i4 = 0; _i4 < edgeIndices.length; _i4++) {
+ edge = edges[edgeIndices[_i4]];
if (edge.isOverlappingWith(pointerObj) === true) {
if (edge.connected === true && edge.getTitle() !== undefined) {
- overlappingEdges.push(edgeIndices[i]);
+ overlappingEdges.push(edgeIndices[_i4]);
}
}
}
@@ -38202,7 +39924,7 @@ return /******/ (function(modules) { // webpackBootstrap
// show popup message window
if (this.popupObj.id !== previousPopupObjId) {
if (this.popup === undefined) {
- this.popup = new _componentsPopup2['default'](this.canvas.frame);
+ this.popup = new _Popup2.default(this.canvas.frame);
}
this.popup.popupTargetType = popupType;
@@ -38230,6 +39952,7 @@ return /******/ (function(modules) { // webpackBootstrap
* @param {{x:Number, y:Number}} pointer
* @private
*/
+
}, {
key: '_checkHidePopup',
value: function _checkHidePopup(pointer) {
@@ -38264,31 +39987,30 @@ return /******/ (function(modules) { // webpackBootstrap
}]);
return InteractionHandler;
- })();
+ }();
- exports['default'] = InteractionHandler;
- module.exports = exports['default'];
+ exports.default = InteractionHandler;
/***/ },
-/* 106 */
+/* 109 */
/***/ function(module, exports, __webpack_require__) {
'use strict';
- Object.defineProperty(exports, '__esModule', {
+ Object.defineProperty(exports, "__esModule", {
value: true
});
- 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 _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; }; }();
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }
+ 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__(25);
- var keycharm = __webpack_require__(41);
+ var hammerUtil = __webpack_require__(28);
+ var keycharm = __webpack_require__(23);
- var NavigationHandler = (function () {
+ var NavigationHandler = function () {
function NavigationHandler(body, canvas) {
var _this = this;
@@ -38366,6 +40088,7 @@ return /******/ (function(modules) { // webpackBootstrap
*
* @private
*/
+
}, {
key: 'loadNavigationElements',
value: function loadNavigationElements() {
@@ -38430,6 +40153,7 @@ return /******/ (function(modules) { // webpackBootstrap
*
* @private
*/
+
}, {
key: '_fit',
value: function _fit() {
@@ -38445,6 +40169,7 @@ return /******/ (function(modules) { // webpackBootstrap
*
* @private
*/
+
}, {
key: '_stopMovement',
value: function _stopMovement() {
@@ -38492,6 +40217,7 @@ return /******/ (function(modules) { // webpackBootstrap
/**
* bind all keys using keycharm.
*/
+
}, {
key: 'configureKeyboardBindings',
value: function configureKeyboardBindings() {
@@ -38590,15 +40316,24 @@ return /******/ (function(modules) { // webpackBootstrap
}]);
return NavigationHandler;
- })();
+ }();
- exports['default'] = NavigationHandler;
- module.exports = exports['default'];
+ exports.default = NavigationHandler;
/***/ },
-/* 107 */
+/* 110 */
/***/ function(module, exports) {
+ 'use strict';
+
+ Object.defineProperty(exports, "__esModule", {
+ value: true
+ });
+
+ 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; }; }();
+
+ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
+
/**
* Popup is a class to create a popup window with some text
* @param {Element} container The container object.
@@ -38608,17 +40343,8 @@ return /******/ (function(modules) { // webpackBootstrap
* @param {Object} [style] An object containing borderColor,
* backgroundColor, etc.
*/
- 'use strict';
-
- Object.defineProperty(exports, '__esModule', {
- value: true
- });
-
- 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; }; })();
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }
-
- var Popup = (function () {
+ var Popup = function () {
function Popup(container) {
_classCallCheck(this, Popup);
@@ -38640,6 +40366,7 @@ return /******/ (function(modules) { // webpackBootstrap
* @param {number} y Vertical position of the popup window
*/
+
_createClass(Popup, [{
key: 'setPosition',
value: function setPosition(x, y) {
@@ -38651,6 +40378,7 @@ return /******/ (function(modules) { // webpackBootstrap
* Set the content for the popup window. This can be HTML code or text.
* @param {string | Element} content
*/
+
}, {
key: 'setText',
value: function setText(content) {
@@ -38666,6 +40394,7 @@ return /******/ (function(modules) { // webpackBootstrap
* Show the popup window
* @param {boolean} [doShow] Show or hide the window
*/
+
}, {
key: 'show',
value: function show(doShow) {
@@ -38707,6 +40436,7 @@ return /******/ (function(modules) { // webpackBootstrap
/**
* Hide the popup window
*/
+
}, {
key: 'hide',
value: function hide() {
@@ -38716,30 +40446,37 @@ return /******/ (function(modules) { // webpackBootstrap
}]);
return Popup;
- })();
+ }();
- exports['default'] = Popup;
- module.exports = exports['default'];
+ exports.default = Popup;
/***/ },
-/* 108 */
+/* 111 */
/***/ function(module, exports, __webpack_require__) {
- "use strict";
+ 'use strict';
Object.defineProperty(exports, "__esModule", {
value: true
});
- 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 _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 _Node2 = _interopRequireDefault(_Node);
+
+ var _Edge = __webpack_require__(85);
+
+ var _Edge2 = _interopRequireDefault(_Edge);
+
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
- var Node = __webpack_require__(62);
- var Edge = __webpack_require__(82);
var util = __webpack_require__(1);
- var SelectionHandler = (function () {
+ var SelectionHandler = function () {
function SelectionHandler(body, canvas) {
var _this = this;
@@ -38765,7 +40502,7 @@ return /******/ (function(modules) { // webpackBootstrap
}
_createClass(SelectionHandler, [{
- key: "setOptions",
+ key: 'setOptions',
value: function setOptions(options) {
if (options !== undefined) {
var fields = ['multiselect', 'hoverConnectedEdges', 'selectable', 'selectConnectedEdges'];
@@ -38779,8 +40516,9 @@ return /******/ (function(modules) { // webpackBootstrap
* @param {Object} pointer
* @private
*/
+
}, {
- key: "selectOnPoint",
+ key: 'selectOnPoint',
value: function selectOnPoint(pointer) {
var selected = false;
if (this.options.selectable === true) {
@@ -38797,7 +40535,7 @@ return /******/ (function(modules) { // webpackBootstrap
return selected;
}
}, {
- key: "selectAdditionalOnPoint",
+ key: 'selectAdditionalOnPoint',
value: function selectAdditionalOnPoint(pointer) {
var selectionChanged = false;
if (this.options.selectable === true) {
@@ -38817,11 +40555,11 @@ return /******/ (function(modules) { // webpackBootstrap
return selectionChanged;
}
}, {
- key: "_generateClickEvent",
+ key: '_generateClickEvent',
value: function _generateClickEvent(eventType, event, pointer, oldSelection) {
var emptySelection = arguments.length <= 4 || arguments[4] === undefined ? false : arguments[4];
- var properties = undefined;
+ var properties = void 0;
if (emptySelection === true) {
properties = { nodes: [], edges: [] };
} else {
@@ -38839,12 +40577,12 @@ return /******/ (function(modules) { // webpackBootstrap
this.body.emitter.emit(eventType, properties);
}
}, {
- key: "selectObject",
+ key: 'selectObject',
value: function selectObject(obj) {
var highlightEdges = arguments.length <= 1 || arguments[1] === undefined ? this.options.selectConnectedEdges : arguments[1];
if (obj !== undefined) {
- if (obj instanceof Node) {
+ if (obj instanceof _Node2.default) {
if (highlightEdges === true) {
this._selectConnectedEdges(obj);
}
@@ -38856,7 +40594,7 @@ return /******/ (function(modules) { // webpackBootstrap
return false;
}
}, {
- key: "deselectObject",
+ key: 'deselectObject',
value: function deselectObject(obj) {
if (obj.isSelected() === true) {
obj.selected = false;
@@ -38870,8 +40608,9 @@ return /******/ (function(modules) { // webpackBootstrap
* @return {Number[]} An array with id's of the overlapping nodes
* @private
*/
+
}, {
- key: "_getAllNodesOverlappingWith",
+ key: '_getAllNodesOverlappingWith',
value: function _getAllNodesOverlappingWith(object) {
var overlappingNodes = [];
var nodes = this.body.nodes;
@@ -38891,8 +40630,9 @@ return /******/ (function(modules) { // webpackBootstrap
* @returns {{left: number, top: number, right: number, bottom: number}}
* @private
*/
+
}, {
- key: "_pointerToPositionObject",
+ key: '_pointerToPositionObject',
value: function _pointerToPositionObject(pointer) {
var canvasPos = this.canvas.DOMtoCanvas(pointer);
return {
@@ -38909,8 +40649,9 @@ return /******/ (function(modules) { // webpackBootstrap
* @param {{x: Number, y: Number}} pointer
* @return {Node | undefined} node
*/
+
}, {
- key: "getNodeAt",
+ key: 'getNodeAt',
value: function getNodeAt(pointer) {
var returnNode = arguments.length <= 1 || arguments[1] === undefined ? true : arguments[1];
@@ -38936,8 +40677,9 @@ return /******/ (function(modules) { // webpackBootstrap
* @return {Number[]} An array with id's of the overlapping nodes
* @private
*/
+
}, {
- key: "_getEdgesOverlappingWith",
+ key: '_getEdgesOverlappingWith',
value: function _getEdgesOverlappingWith(object, overlappingEdges) {
var edges = this.body.edges;
for (var i = 0; i < this.body.edgeIndices.length; i++) {
@@ -38954,8 +40696,9 @@ return /******/ (function(modules) { // webpackBootstrap
* @return {Number[]} An array with id's of the overlapping nodes
* @private
*/
+
}, {
- key: "_getAllEdgesOverlappingWith",
+ key: '_getAllEdgesOverlappingWith',
value: function _getAllEdgesOverlappingWith(object) {
var overlappingEdges = [];
this._getEdgesOverlappingWith(object, overlappingEdges);
@@ -38969,8 +40712,9 @@ return /******/ (function(modules) { // webpackBootstrap
* @param pointer
* @returns {undefined}
*/
+
}, {
- key: "getEdgeAt",
+ key: 'getEdgeAt',
value: function getEdgeAt(pointer) {
var returnEdge = arguments.length <= 1 || arguments[1] === undefined ? true : arguments[1];
@@ -38994,10 +40738,11 @@ return /******/ (function(modules) { // webpackBootstrap
* @param obj
* @private
*/
+
}, {
- key: "_addToSelection",
+ key: '_addToSelection',
value: function _addToSelection(obj) {
- if (obj instanceof Node) {
+ if (obj instanceof _Node2.default) {
this.selectionObj.nodes[obj.id] = obj;
} else {
this.selectionObj.edges[obj.id] = obj;
@@ -39010,10 +40755,11 @@ return /******/ (function(modules) { // webpackBootstrap
* @param obj
* @private
*/
+
}, {
- key: "_addToHover",
+ key: '_addToHover',
value: function _addToHover(obj) {
- if (obj instanceof Node) {
+ if (obj instanceof _Node2.default) {
this.hoverObj.nodes[obj.id] = obj;
} else {
this.hoverObj.edges[obj.id] = obj;
@@ -39026,10 +40772,11 @@ return /******/ (function(modules) { // webpackBootstrap
* @param {Object} obj
* @private
*/
+
}, {
- key: "_removeFromSelection",
+ key: '_removeFromSelection',
value: function _removeFromSelection(obj) {
- if (obj instanceof Node) {
+ if (obj instanceof _Node2.default) {
delete this.selectionObj.nodes[obj.id];
this._unselectConnectedEdges(obj);
} else {
@@ -39040,8 +40787,9 @@ return /******/ (function(modules) { // webpackBootstrap
/**
* Unselect all. The selectionObj is useful for this.
*/
+
}, {
- key: "unselectAll",
+ key: 'unselectAll',
value: function unselectAll() {
for (var nodeId in this.selectionObj.nodes) {
if (this.selectionObj.nodes.hasOwnProperty(nodeId)) {
@@ -39063,8 +40811,9 @@ return /******/ (function(modules) { // webpackBootstrap
* @returns {number}
* @private
*/
+
}, {
- key: "_getSelectedNodeCount",
+ key: '_getSelectedNodeCount',
value: function _getSelectedNodeCount() {
var count = 0;
for (var nodeId in this.selectionObj.nodes) {
@@ -39081,8 +40830,9 @@ return /******/ (function(modules) { // webpackBootstrap
* @returns {number}
* @private
*/
+
}, {
- key: "_getSelectedNode",
+ key: '_getSelectedNode',
value: function _getSelectedNode() {
for (var nodeId in this.selectionObj.nodes) {
if (this.selectionObj.nodes.hasOwnProperty(nodeId)) {
@@ -39098,8 +40848,9 @@ return /******/ (function(modules) { // webpackBootstrap
* @returns {number}
* @private
*/
+
}, {
- key: "_getSelectedEdge",
+ key: '_getSelectedEdge',
value: function _getSelectedEdge() {
for (var edgeId in this.selectionObj.edges) {
if (this.selectionObj.edges.hasOwnProperty(edgeId)) {
@@ -39115,8 +40866,9 @@ return /******/ (function(modules) { // webpackBootstrap
* @returns {number}
* @private
*/
+
}, {
- key: "_getSelectedEdgeCount",
+ key: '_getSelectedEdgeCount',
value: function _getSelectedEdgeCount() {
var count = 0;
for (var edgeId in this.selectionObj.edges) {
@@ -39133,8 +40885,9 @@ return /******/ (function(modules) { // webpackBootstrap
* @returns {number}
* @private
*/
+
}, {
- key: "_getSelectedObjectCount",
+ key: '_getSelectedObjectCount',
value: function _getSelectedObjectCount() {
var count = 0;
for (var nodeId in this.selectionObj.nodes) {
@@ -39156,8 +40909,9 @@ return /******/ (function(modules) { // webpackBootstrap
* @returns {boolean}
* @private
*/
+
}, {
- key: "_selectionIsEmpty",
+ key: '_selectionIsEmpty',
value: function _selectionIsEmpty() {
for (var nodeId in this.selectionObj.nodes) {
if (this.selectionObj.nodes.hasOwnProperty(nodeId)) {
@@ -39178,8 +40932,9 @@ return /******/ (function(modules) { // webpackBootstrap
* @returns {boolean}
* @private
*/
+
}, {
- key: "_clusterInSelection",
+ key: '_clusterInSelection',
value: function _clusterInSelection() {
for (var nodeId in this.selectionObj.nodes) {
if (this.selectionObj.nodes.hasOwnProperty(nodeId)) {
@@ -39197,8 +40952,9 @@ return /******/ (function(modules) { // webpackBootstrap
* @param {Node} node
* @private
*/
+
}, {
- key: "_selectConnectedEdges",
+ key: '_selectConnectedEdges',
value: function _selectConnectedEdges(node) {
for (var i = 0; i < node.edges.length; i++) {
var edge = node.edges[i];
@@ -39213,8 +40969,9 @@ return /******/ (function(modules) { // webpackBootstrap
* @param {Node} node
* @private
*/
+
}, {
- key: "_hoverConnectedEdges",
+ key: '_hoverConnectedEdges',
value: function _hoverConnectedEdges(node) {
for (var i = 0; i < node.edges.length; i++) {
var edge = node.edges[i];
@@ -39229,8 +40986,9 @@ return /******/ (function(modules) { // webpackBootstrap
* @param {Node} node
* @private
*/
+
}, {
- key: "_unselectConnectedEdges",
+ key: '_unselectConnectedEdges',
value: function _unselectConnectedEdges(node) {
for (var i = 0; i < node.edges.length; i++) {
var edge = node.edges[i];
@@ -39246,12 +41004,13 @@ return /******/ (function(modules) { // webpackBootstrap
* @param {Node || Edge} object
* @private
*/
+
}, {
- key: "blurObject",
+ key: 'blurObject',
value: function blurObject(object) {
if (object.hover === true) {
object.hover = false;
- if (object instanceof Node) {
+ if (object instanceof _Node2.default) {
this.body.emitter.emit("blurNode", { node: object.id });
} else {
this.body.emitter.emit("blurEdge", { edge: object.id });
@@ -39266,14 +41025,15 @@ return /******/ (function(modules) { // webpackBootstrap
* @param {Node || Edge} object
* @private
*/
+
}, {
- key: "hoverObject",
+ key: 'hoverObject',
value: function hoverObject(object) {
var hoverChanged = false;
// remove all node hover highlights
for (var nodeId in this.hoverObj.nodes) {
if (this.hoverObj.nodes.hasOwnProperty(nodeId)) {
- if (object === undefined || object instanceof Node && object.id != nodeId || object instanceof Edge) {
+ if (object === undefined || object instanceof _Node2.default && object.id != nodeId || object instanceof _Edge2.default) {
this.blurObject(this.hoverObj.nodes[nodeId]);
delete this.hoverObj.nodes[nodeId];
hoverChanged = true;
@@ -39304,13 +41064,13 @@ return /******/ (function(modules) { // webpackBootstrap
object.hover = true;
this._addToHover(object);
hoverChanged = true;
- if (object instanceof Node) {
+ if (object instanceof _Node2.default) {
this.body.emitter.emit("hoverNode", { node: object.id });
} else {
this.body.emitter.emit("hoverEdge", { edge: object.id });
}
}
- if (object instanceof Node && this.options.hoverConnectedEdges === true) {
+ if (object instanceof _Node2.default && this.options.hoverConnectedEdges === true) {
this._hoverConnectedEdges(object);
}
}
@@ -39325,8 +41085,9 @@ return /******/ (function(modules) { // webpackBootstrap
* retrieve the currently selected objects
* @return {{nodes: Array.<String>, edges: Array.<String>}} selection
*/
+
}, {
- key: "getSelection",
+ key: 'getSelection',
value: function getSelection() {
var nodeIds = this.getSelectedNodes();
var edgeIds = this.getSelectedEdges();
@@ -39339,14 +41100,15 @@ return /******/ (function(modules) { // webpackBootstrap
* @return {String[]} selection An array with the ids of the
* selected nodes.
*/
+
}, {
- key: "getSelectedNodes",
+ key: 'getSelectedNodes',
value: function getSelectedNodes() {
var idArray = [];
if (this.options.selectable === true) {
for (var nodeId in this.selectionObj.nodes) {
if (this.selectionObj.nodes.hasOwnProperty(nodeId)) {
- idArray.push(nodeId);
+ idArray.push(this.selectionObj.nodes[nodeId].id);
}
}
}
@@ -39359,14 +41121,15 @@ return /******/ (function(modules) { // webpackBootstrap
* @return {Array} selection An array with the ids of the
* selected nodes.
*/
+
}, {
- key: "getSelectedEdges",
+ key: 'getSelectedEdges',
value: function getSelectedEdges() {
var idArray = [];
if (this.options.selectable === true) {
for (var edgeId in this.selectionObj.edges) {
if (this.selectionObj.edges.hasOwnProperty(edgeId)) {
- idArray.push(edgeId);
+ idArray.push(this.selectionObj.edges[edgeId].id);
}
}
}
@@ -39378,13 +41141,14 @@ return /******/ (function(modules) { // webpackBootstrap
* @param {{nodes: Array.<String>, edges: Array.<String>}} Selection
* @param {Object} options Options
*/
+
}, {
- key: "setSelection",
+ key: 'setSelection',
value: function setSelection(selection) {
var options = arguments.length <= 1 || arguments[1] === undefined ? {} : arguments[1];
- var i = undefined,
- id = undefined;
+ var i = void 0,
+ id = void 0;
if (!selection || !selection.nodes && !selection.edges) throw 'Selection must be an object with nodes and/or edges properties';
// first unselect any selected node, if option is true or undefined
@@ -39424,8 +41188,9 @@ return /******/ (function(modules) { // webpackBootstrap
* selected nodes.
* @param {boolean} [highlightEdges]
*/
+
}, {
- key: "selectNodes",
+ key: 'selectNodes',
value: function selectNodes(selection) {
var highlightEdges = arguments.length <= 1 || arguments[1] === undefined ? true : arguments[1];
@@ -39439,8 +41204,9 @@ return /******/ (function(modules) { // webpackBootstrap
* @param {Number[] | String[]} selection An array with the ids of the
* selected nodes.
*/
+
}, {
- key: "selectEdges",
+ key: 'selectEdges',
value: function selectEdges(selection) {
if (!selection || selection.length === undefined) throw 'Selection must be an array with ids';
@@ -39451,8 +41217,9 @@ return /******/ (function(modules) { // webpackBootstrap
* Validate the selection: remove ids of nodes which no longer exist
* @private
*/
+
}, {
- key: "updateSelection",
+ key: 'updateSelection',
value: function updateSelection() {
for (var nodeId in this.selectionObj.nodes) {
if (this.selectionObj.nodes.hasOwnProperty(nodeId)) {
@@ -39472,34 +41239,37 @@ return /******/ (function(modules) { // webpackBootstrap
}]);
return SelectionHandler;
- })();
+ }();
- exports["default"] = SelectionHandler;
- module.exports = exports["default"];
+ exports.default = SelectionHandler;
/***/ },
-/* 109 */
+/* 112 */
/***/ function(module, exports, __webpack_require__) {
'use strict';
- Object.defineProperty(exports, '__esModule', {
+ Object.defineProperty(exports, "__esModule", {
value: true
});
- 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 _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"); } }; }();
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': 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 ? "symbol" : typeof obj; };
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }
+ var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
- var _NetworkUtil = __webpack_require__(100);
+ var _NetworkUtil = __webpack_require__(103);
var _NetworkUtil2 = _interopRequireDefault(_NetworkUtil);
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
+
+ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
+
var util = __webpack_require__(1);
- var LayoutEngine = (function () {
+ var LayoutEngine = function () {
function LayoutEngine(body) {
_classCallCheck(this, LayoutEngine);
@@ -39507,8 +41277,9 @@ return /******/ (function(modules) { // webpackBootstrap
this.initialRandomSeed = Math.round(Math.random() * 1000000);
this.randomSeed = this.initialRandomSeed;
+ this.setPhysics = false;
this.options = {};
- this.optionsBackup = {};
+ this.optionsBackup = { physics: {} };
this.defaultOptions = {
randomSeed: undefined,
@@ -39516,16 +41287,16 @@ return /******/ (function(modules) { // webpackBootstrap
hierarchical: {
enabled: false,
levelSeparation: 150,
+ nodeSpacing: 100,
+ treeSpacing: 200,
+ blockShifting: true,
+ edgeMinimization: true,
+ parentCentralization: true,
direction: 'UD', // UD, DU, LR, RL
sortMethod: 'hubsize' // hubsize, directed
}
};
util.extend(this.options, this.defaultOptions);
-
- this.lastNodeOnLevel = {};
- this.hierarchicalParents = {};
- this.hierarchicalChildren = {};
-
this.bindEventListeners();
}
@@ -39561,7 +41332,7 @@ return /******/ (function(modules) { // webpackBootstrap
this.body.emitter.emit('refresh', true);
}
- // make sure the level seperation is the right way up
+ // make sure the level separation is the right way up
if (this.options.hierarchical.direction === 'RL' || this.options.hierarchical.direction === 'DU') {
if (this.options.hierarchical.levelSeparation > 0) {
this.options.hierarchical.levelSeparation *= -1;
@@ -39591,17 +41362,19 @@ return /******/ (function(modules) { // webpackBootstrap
if (this.options.hierarchical.enabled === true) {
// set the physics
if (allOptions.physics === undefined || allOptions.physics === true) {
- allOptions.physics = { solver: 'hierarchicalRepulsion' };
- this.optionsBackup.physics = { solver: 'barnesHut' };
- } else if (typeof allOptions.physics === 'object') {
- this.optionsBackup.physics = { solver: 'barnesHut' };
- if (allOptions.physics.solver !== undefined) {
- this.optionsBackup.physics = { solver: allOptions.physics.solver };
- }
- allOptions.physics['solver'] = 'hierarchicalRepulsion';
+ allOptions.physics = {
+ enabled: this.optionsBackup.physics.enabled === undefined ? true : this.optionsBackup.physics.enabled,
+ solver: 'hierarchicalRepulsion'
+ };
+ this.optionsBackup.physics.enabled = this.optionsBackup.physics.enabled === undefined ? true : this.optionsBackup.physics.enabled;
+ this.optionsBackup.physics.solver = this.optionsBackup.physics.solver || 'barnesHut';
+ } else if (_typeof(allOptions.physics) === 'object') {
+ this.optionsBackup.physics.enabled = allOptions.physics.enabled === undefined ? true : allOptions.physics.enabled;
+ this.optionsBackup.physics.solver = allOptions.physics.solver || 'barnesHut';
+ allOptions.physics.solver = 'hierarchicalRepulsion';
} else if (allOptions.physics !== false) {
- this.optionsBackup.physics = { solver: 'barnesHut' };
- allOptions.physics['solver'] = 'hierarchicalRepulsion';
+ this.optionsBackup.physics.solver = 'barnesHut';
+ allOptions.physics = { solver: 'hierarchicalRepulsion' };
}
// get the type of static smooth curve in case it is required
@@ -39645,6 +41418,7 @@ return /******/ (function(modules) { // webpackBootstrap
// force all edges into static smooth curves. Only applies to edges that do not use the global options for smooth.
this.body.emitter.emit('_forceDisableDynamicCurves', type);
}
+
return allOptions;
}
}, {
@@ -39673,14 +41447,15 @@ return /******/ (function(modules) { // webpackBootstrap
}
/**
- * Use KamadaKawai to position nodes. This is quite a heavy algorithm so if there are a lot of nodes we
+ * Use Kamada Kawai to position nodes. This is quite a heavy algorithm so if there are a lot of nodes we
* cluster them first to reduce the amount.
*/
+
}, {
key: 'layoutNetwork',
value: function layoutNetwork() {
if (this.options.hierarchical.enabled !== true && this.options.improvedLayout === true) {
- // first check if we should KamadaKawai to layout. The threshold is if less than half of the visible
+ // first check if we should Kamada Kawai to layout. The threshold is if less than half of the visible
// nodes have predefined positions we use this.
var positionDefined = 0;
for (var i = 0; i < this.body.nodeIndices.length; i++) {
@@ -39730,9 +41505,9 @@ 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;
+ 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;
}
// uncluster all clusters
@@ -39748,11 +41523,12 @@ return /******/ (function(modules) { // webpackBootstrap
* Move all the nodes towards to the center so gravitational pull wil not move the nodes away from view
* @private
*/
+
}, {
key: '_shiftToCenter',
value: function _shiftToCenter() {
- var range = _NetworkUtil2['default']._getRangeCore(this.body.nodes, this.body.nodeIndices);
- var center = _NetworkUtil2['default']._findCenter(range);
+ var range = _NetworkUtil2.default.getRangeCore(this.body.nodes, this.body.nodeIndices);
+ var center = _NetworkUtil2.default.findCenter(range);
for (var i = 0; i < this.body.nodeIndices.length; i++) {
this.body.nodes[this.body.nodeIndices[i]].x -= center.x;
this.body.nodes[this.body.nodeIndices[i]].y -= center.y;
@@ -39787,21 +41563,34 @@ return /******/ (function(modules) { // webpackBootstrap
*
* @private
*/
+
}, {
key: 'setupHierarchicalLayout',
value: function setupHierarchicalLayout() {
if (this.options.hierarchical.enabled === true && this.body.nodeIndices.length > 0) {
// get the size of the largest hubs and check if the user has defined a level for a node.
- var node = undefined,
- nodeId = undefined;
+ var node = void 0,
+ nodeId = void 0;
var definedLevel = false;
+ var definedPositions = true;
var undefinedLevel = false;
this.hierarchicalLevels = {};
- this.nodeSpacing = 100;
+ this.lastNodeOnLevel = {};
+ this.hierarchicalChildrenReference = {};
+ this.hierarchicalParentReference = {};
+ this.hierarchicalTrees = {};
+ this.treeIndex = -1;
+
+ this.distributionOrdering = {};
+ this.distributionIndex = {};
+ this.distributionOrderingPresence = {};
for (nodeId in this.body.nodes) {
if (this.body.nodes.hasOwnProperty(nodeId)) {
node = this.body.nodes[nodeId];
+ if (node.options.x === undefined && node.options.y === undefined) {
+ definedPositions = false;
+ }
if (node.options.level !== undefined) {
definedLevel = true;
this.hierarchicalLevels[nodeId] = node.options.level;
@@ -39816,7 +41605,7 @@ return /******/ (function(modules) { // webpackBootstrap
throw new Error('To use the hierarchical layout, nodes require either no predefined levels or levels have to be defined for all nodes.');
return;
} else {
- // define levels if undefined by the users. Based on hubsize
+ // define levels if undefined by the users. Based on hubsize.
if (undefinedLevel === true) {
if (this.options.hierarchical.sortMethod === 'hubsize') {
this._determineLevelsByHubsize();
@@ -39827,6 +41616,14 @@ return /******/ (function(modules) { // webpackBootstrap
}
}
+ // fallback for cases where there are nodes but no edges
+ for (var _nodeId in this.body.nodes) {
+ if (this.body.nodes.hasOwnProperty(_nodeId)) {
+ if (this.hierarchicalLevels[_nodeId] === undefined) {
+ this.hierarchicalLevels[_nodeId] = 0;
+ }
+ }
+ }
// check the distribution of the nodes per level.
var distribution = this._getDistribution();
@@ -39836,8 +41633,8 @@ return /******/ (function(modules) { // webpackBootstrap
// place the nodes on the canvas.
this._placeNodesByHierarchy(distribution);
- // Todo: condense the whitespace.
- this._condenseHierarchy(distribution);
+ // condense the whitespace.
+ this._condenseHierarchy();
// shift to center so gravity does not have to do much
this._shiftToCenter();
@@ -39846,12 +41643,534 @@ return /******/ (function(modules) { // webpackBootstrap
}
/**
- * TODO: implement. Clear whitespace after positioning.
* @private
*/
+
}, {
key: '_condenseHierarchy',
- value: function _condenseHierarchy(distribution) {}
+ value: function _condenseHierarchy() {
+ var _this2 = this;
+
+ // Global var in this scope to define when the movement has stopped.
+ var stillShifting = false;
+ var branches = {};
+ // first we have some methods to help shifting trees around.
+ // the main method to shift the trees
+ var shiftTrees = function shiftTrees() {
+ var treeSizes = getTreeSizes();
+ for (var i = 0; i < treeSizes.length - 1; i++) {
+ var diff = treeSizes[i].max - treeSizes[i + 1].min;
+ shiftTree(i + 1, diff + _this2.options.hierarchical.treeSpacing);
+ }
+ };
+
+ // shift a single tree by an offset
+ var shiftTree = function shiftTree(index, offset) {
+ for (var nodeId in _this2.hierarchicalTrees) {
+ if (_this2.hierarchicalTrees.hasOwnProperty(nodeId)) {
+ if (_this2.hierarchicalTrees[nodeId] === index) {
+ var node = _this2.body.nodes[nodeId];
+ var pos = _this2._getPositionForHierarchy(node);
+ _this2._setPositionForHierarchy(node, pos + offset, undefined, true);
+ }
+ }
+ }
+ };
+
+ // get the width of a tree
+ var getTreeSize = function getTreeSize(index) {
+ var min = 1e9;
+ var max = -1e9;
+ for (var nodeId in _this2.hierarchicalTrees) {
+ if (_this2.hierarchicalTrees.hasOwnProperty(nodeId)) {
+ if (_this2.hierarchicalTrees[nodeId] === index) {
+ var pos = _this2._getPositionForHierarchy(_this2.body.nodes[nodeId]);
+ min = Math.min(pos, min);
+ max = Math.max(pos, max);
+ }
+ }
+ }
+ return { min: min, max: max };
+ };
+
+ // get the width of all trees
+ var getTreeSizes = function getTreeSizes() {
+ var treeWidths = [];
+ for (var i = 0; i <= _this2.treeIndex; i++) {
+ treeWidths.push(getTreeSize(i));
+ }
+ return treeWidths;
+ };
+
+ // get a map of all nodes in this branch
+ var getBranchNodes = function getBranchNodes(source, map) {
+ map[source.id] = true;
+ if (_this2.hierarchicalChildrenReference[source.id]) {
+ var children = _this2.hierarchicalChildrenReference[source.id];
+ if (children.length > 0) {
+ for (var i = 0; i < children.length; i++) {
+ getBranchNodes(_this2.body.nodes[children[i]], map);
+ }
+ }
+ }
+ };
+
+ // 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 minSpace = 1e9;
+ var maxSpace = 1e9;
+ var min = 1e9;
+ var max = -1e9;
+ for (var branchNode in branchMap) {
+ if (branchMap.hasOwnProperty(branchNode)) {
+ var node = _this2.body.nodes[branchNode];
+ var level = _this2.hierarchicalLevels[node.id];
+ var position = _this2._getPositionForHierarchy(node);
+
+ // 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];
+
+ minSpace = Math.min(minSpaceNode, minSpace);
+ maxSpace = Math.min(maxSpaceNode, maxSpace);
+
+ // the width is only relevant for the levels two nodes have in common. This is why we filter on this.
+ if (level <= maxLevel) {
+ min = Math.min(position, min);
+ max = Math.max(position, max);
+ }
+ }
+ }
+
+ return [min, max, minSpace, maxSpace];
+ };
+
+ // get the maximum level of a branch.
+ var getMaxLevel = function getMaxLevel(nodeId) {
+ var level = _this2.hierarchicalLevels[nodeId];
+ if (_this2.hierarchicalChildrenReference[nodeId]) {
+ var children = _this2.hierarchicalChildrenReference[nodeId];
+ if (children.length > 0) {
+ for (var i = 0; i < children.length; i++) {
+ level = Math.max(level, getMaxLevel(children[i]));
+ }
+ }
+ }
+ return level;
+ };
+
+ // check what the maximum level is these nodes have in common.
+ var getCollisionLevel = function getCollisionLevel(node1, node2) {
+ var maxLevel1 = getMaxLevel(node1.id);
+ var maxLevel2 = getMaxLevel(node2.id);
+ return Math.min(maxLevel1, maxLevel2);
+ };
+
+ // check if two nodes have the same parent(s)
+ var hasSameParent = function hasSameParent(node1, node2) {
+ var parents1 = _this2.hierarchicalParentReference[node1.id];
+ var parents2 = _this2.hierarchicalParentReference[node2.id];
+ if (parents1 === undefined || parents2 === undefined) {
+ return false;
+ }
+
+ for (var i = 0; i < parents1.length; i++) {
+ for (var j = 0; j < parents2.length; j++) {
+ if (parents1[i] == parents2[j]) {
+ return true;
+ }
+ }
+ }
+ return false;
+ };
+
+ // condense elements. These can be nodes or branches depending on the callback.
+ var shiftElementsCloser = function shiftElementsCloser(callback, levels, centerParents) {
+ for (var i = 0; i < levels.length; i++) {
+ var level = levels[i];
+ var levelNodes = _this2.distributionOrdering[level];
+ if (levelNodes.length > 1) {
+ for (var j = 0; j < levelNodes.length - 1; j++) {
+ if (hasSameParent(levelNodes[j], levelNodes[j + 1]) === true) {
+ if (_this2.hierarchicalTrees[levelNodes[j].id] === _this2.hierarchicalTrees[levelNodes[j + 1].id]) {
+ callback(levelNodes[j], levelNodes[j + 1], centerParents);
+ }
+ }
+ }
+ }
+ }
+ };
+
+ // callback for shifting branches
+ var branchShiftCallback = function branchShiftCallback(node1, node2) {
+ var centerParent = arguments.length <= 2 || arguments[2] === undefined ? false : arguments[2];
+
+ //window.CALLBACKS.push(() => {
+ var pos1 = _this2._getPositionForHierarchy(node1);
+ var pos2 = _this2._getPositionForHierarchy(node2);
+ var diffAbs = Math.abs(pos2 - pos1);
+ //console.log("NOW CHEcKING:", node1.id, node2.id, diffAbs);
+ if (diffAbs > _this2.options.hierarchical.nodeSpacing) {
+ var branchNodes1 = {};branchNodes1[node1.id] = true;
+ var branchNodes2 = {};branchNodes2[node2.id] = true;
+
+ getBranchNodes(node1, branchNodes1);
+ getBranchNodes(node2, branchNodes2);
+
+ // check the largest distance between the branches
+ var maxLevel = getCollisionLevel(node1, node2);
+
+ var _getBranchBoundary = getBranchBoundary(branchNodes1, maxLevel);
+
+ var _getBranchBoundary2 = _slicedToArray(_getBranchBoundary, 4);
+
+ 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];
+
+ //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;
+ if (offset < -minSpace2 + _this2.options.hierarchical.nodeSpacing) {
+ offset = -minSpace2 + _this2.options.hierarchical.nodeSpacing;
+ //console.log("RESETTING OFFSET", max1 - min2 + this.options.hierarchical.nodeSpacing, -minSpace2, offset);
+ }
+ if (offset < 0) {
+ //console.log("SHIFTING", node2.id, offset);
+ _this2._shiftBlock(node2.id, offset);
+ stillShifting = true;
+
+ if (centerParent === true) _this2._centerParent(node2);
+ }
+ }
+ }
+ //this.body.emitter.emit("_redraw");})
+ };
+
+ var minimizeEdgeLength = function minimizeEdgeLength(iterations, node) {
+ //window.CALLBACKS.push(() => {
+ // console.log("ts",node.id);
+ var nodeId = node.id;
+ var allEdges = node.edges;
+ var nodeLevel = _this2.hierarchicalLevels[node.id];
+
+ // gather constants
+ var C2 = _this2.options.hierarchical.levelSeparation * _this2.options.hierarchical.levelSeparation;
+ var referenceNodes = {};
+ var aboveEdges = [];
+ for (var i = 0; i < allEdges.length; i++) {
+ var edge = allEdges[i];
+ if (edge.toId != edge.fromId) {
+ var otherNode = edge.toId == nodeId ? edge.from : edge.to;
+ referenceNodes[allEdges[i].id] = otherNode;
+ if (_this2.hierarchicalLevels[otherNode.id] < nodeLevel) {
+ aboveEdges.push(edge);
+ }
+ }
+ }
+
+ // differentiated sum of lengths based on only moving one node over one axis
+ var getFx = function getFx(point, edges) {
+ var sum = 0;
+ for (var _i2 = 0; _i2 < edges.length; _i2++) {
+ if (referenceNodes[edges[_i2].id] !== undefined) {
+ var a = _this2._getPositionForHierarchy(referenceNodes[edges[_i2].id]) - point;
+ sum += a / Math.sqrt(a * a + C2);
+ }
+ }
+ return sum;
+ };
+
+ // doubly differentiated sum of lengths based on only moving one node over one axis
+ var getDFx = function getDFx(point, edges) {
+ var sum = 0;
+ for (var _i3 = 0; _i3 < edges.length; _i3++) {
+ if (referenceNodes[edges[_i3].id] !== undefined) {
+ var a = _this2._getPositionForHierarchy(referenceNodes[edges[_i3].id]) - point;
+ sum -= C2 * Math.pow(a * a + C2, -1.5);
+ }
+ }
+ return sum;
+ };
+
+ var getGuess = function getGuess(iterations, edges) {
+ var guess = _this2._getPositionForHierarchy(node);
+ // Newton's method for optimization
+ var guessMap = {};
+ for (var _i4 = 0; _i4 < iterations; _i4++) {
+ var fx = getFx(guess, edges);
+ var dfx = getDFx(guess, edges);
+
+ // we limit the movement to avoid instability.
+ var limit = 40;
+ var ratio = Math.max(-limit, Math.min(limit, Math.round(fx / dfx)));
+ guess = guess - ratio;
+ // reduce duplicates
+ if (guessMap[guess] !== undefined) {
+ break;
+ }
+ guessMap[guess] = _i4;
+ }
+ return guess;
+ };
+
+ var moveBranch = function moveBranch(guess) {
+ // position node if there is space
+ var nodePosition = _this2._getPositionForHierarchy(node);
+
+ // check movable area of the branch
+ if (branches[node.id] === undefined) {
+ var branchNodes = {};
+ branchNodes[node.id] = true;
+ getBranchNodes(node, branchNodes);
+ 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 diff = guess - nodePosition;
+
+ // check if we are allowed to move the node:
+ var branchOffset = 0;
+ if (diff > 0) {
+ branchOffset = Math.min(diff, maxSpaceBranch - _this2.options.hierarchical.nodeSpacing);
+ } else if (diff < 0) {
+ branchOffset = -Math.min(-diff, minSpaceBranch - _this2.options.hierarchical.nodeSpacing);
+ }
+
+ if (branchOffset != 0) {
+ //console.log("moving branch:",branchOffset, maxSpaceBranch, minSpaceBranch)
+ _this2._shiftBlock(node.id, branchOffset);
+ //this.body.emitter.emit("_redraw");
+ stillShifting = true;
+ }
+ };
+
+ var moveNode = function moveNode(guess) {
+ var nodePosition = _this2._getPositionForHierarchy(node);
+
+ // 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 diff = guess - nodePosition;
+ // check if we are allowed to move the node:
+ var newPosition = nodePosition;
+ if (diff > 0) {
+ newPosition = Math.min(nodePosition + (maxSpace - _this2.options.hierarchical.nodeSpacing), guess);
+ } else if (diff < 0) {
+ newPosition = Math.max(nodePosition - (minSpace - _this2.options.hierarchical.nodeSpacing), guess);
+ }
+
+ if (newPosition !== nodePosition) {
+ //console.log("moving Node:",diff, minSpace, maxSpace);
+ _this2._setPositionForHierarchy(node, newPosition, undefined, true);
+ //this.body.emitter.emit("_redraw");
+ stillShifting = true;
+ }
+ };
+
+ var guess = getGuess(iterations, aboveEdges);
+ moveBranch(guess);
+ guess = getGuess(iterations, allEdges);
+ moveNode(guess);
+ //})
+ };
+
+ // method to remove whitespace between branches. Because we do bottom up, we can center the parents.
+ var minimizeEdgeLengthBottomUp = function minimizeEdgeLengthBottomUp(iterations) {
+ var levels = Object.keys(_this2.distributionOrdering);
+ levels = levels.reverse();
+ for (var i = 0; i < iterations; i++) {
+ stillShifting = false;
+ for (var j = 0; j < levels.length; j++) {
+ var level = levels[j];
+ var levelNodes = _this2.distributionOrdering[level];
+ for (var k = 0; k < levelNodes.length; k++) {
+ minimizeEdgeLength(1000, levelNodes[k]);
+ }
+ }
+ if (stillShifting !== true) {
+ //console.log("FINISHED minimizeEdgeLengthBottomUp IN " + i);
+ break;
+ }
+ }
+ };
+
+ // method to remove whitespace between branches. Because we do bottom up, we can center the parents.
+ var shiftBranchesCloserBottomUp = function shiftBranchesCloserBottomUp(iterations) {
+ var levels = Object.keys(_this2.distributionOrdering);
+ levels = levels.reverse();
+ for (var i = 0; i < iterations; i++) {
+ stillShifting = false;
+ shiftElementsCloser(branchShiftCallback, levels, true);
+ if (stillShifting !== true) {
+ //console.log("FINISHED shiftBranchesCloserBottomUp IN " + (i+1));
+ break;
+ }
+ }
+ };
+
+ // center all parents
+ var centerAllParents = function centerAllParents() {
+ for (var nodeId in _this2.body.nodes) {
+ if (_this2.body.nodes.hasOwnProperty(nodeId)) _this2._centerParent(_this2.body.nodes[nodeId]);
+ }
+ };
+
+ // center all parents
+ var centerAllParentsBottomUp = function centerAllParentsBottomUp() {
+ var levels = Object.keys(_this2.distributionOrdering);
+ levels = levels.reverse();
+ for (var i = 0; i < levels.length; i++) {
+ var level = levels[i];
+ var levelNodes = _this2.distributionOrdering[level];
+ for (var j = 0; j < levelNodes.length; j++) {
+ _this2._centerParent(levelNodes[j]);
+ }
+ }
+ };
+
+ // the actual work is done here.
+ if (this.options.hierarchical.blockShifting === true) {
+ shiftBranchesCloserBottomUp(5);
+ centerAllParents();
+ }
+
+ // minimize edge length
+ if (this.options.hierarchical.edgeMinimization === true) {
+ minimizeEdgeLengthBottomUp(20);
+ }
+
+ if (this.options.hierarchical.parentCentralization === true) {
+ centerAllParentsBottomUp();
+ }
+
+ shiftTrees();
+ }
+
+ /**
+ * This gives the space around the node. IF a map is supplied, it will only check against nodes NOT in the map.
+ * This is used to only get the distances to nodes outside of a branch.
+ * @param node
+ * @param map
+ * @returns {*[]}
+ * @private
+ */
+
+ }, {
+ key: '_getSpaceAroundNode',
+ value: function _getSpaceAroundNode(node, map) {
+ var useMap = true;
+ if (map === undefined) {
+ useMap = false;
+ }
+ var level = this.hierarchicalLevels[node.id];
+ if (level !== undefined) {
+ var index = this.distributionIndex[node.id];
+ var position = this._getPositionForHierarchy(node);
+ var minSpace = 1e9;
+ var maxSpace = 1e9;
+ if (index !== 0) {
+ var prevNode = this.distributionOrdering[level][index - 1];
+ if (useMap === true && map[prevNode.id] === undefined || useMap === false) {
+ var prevPos = this._getPositionForHierarchy(prevNode);
+ minSpace = position - prevPos;
+ }
+ }
+
+ if (index != this.distributionOrdering[level].length - 1) {
+ var nextNode = this.distributionOrdering[level][index + 1];
+ if (useMap === true && map[nextNode.id] === undefined || useMap === false) {
+ var nextPos = this._getPositionForHierarchy(nextNode);
+ maxSpace = Math.min(maxSpace, nextPos - position);
+ }
+ }
+
+ return [minSpace, maxSpace];
+ } else {
+ return [0, 0];
+ }
+ }
+
+ /**
+ * We use this method to center a parent node and check if it does not cross other nodes when it does.
+ * @param node
+ * @private
+ */
+
+ }, {
+ key: '_centerParent',
+ value: function _centerParent(node) {
+ if (this.hierarchicalParentReference[node.id]) {
+ var parents = this.hierarchicalParentReference[node.id];
+ for (var i = 0; i < parents.length; i++) {
+ var parentId = parents[i];
+ var parentNode = this.body.nodes[parentId];
+ if (this.hierarchicalChildrenReference[parentId]) {
+ // get the range of the children
+ var minPos = 1e9;
+ var maxPos = -1e9;
+ var children = this.hierarchicalChildrenReference[parentId];
+ if (children.length > 0) {
+ for (var _i5 = 0; _i5 < children.length; _i5++) {
+ var childNode = this.body.nodes[children[_i5]];
+ minPos = Math.min(minPos, this._getPositionForHierarchy(childNode));
+ maxPos = Math.max(maxPos, this._getPositionForHierarchy(childNode));
+ }
+ }
+
+ var position = this._getPositionForHierarchy(parentNode);
+
+ var _getSpaceAroundNode6 = this._getSpaceAroundNode(parentNode);
+
+ var _getSpaceAroundNode7 = _slicedToArray(_getSpaceAroundNode6, 2);
+
+ var minSpace = _getSpaceAroundNode7[0];
+ var maxSpace = _getSpaceAroundNode7[1];
+
+ var newPosition = 0.5 * (minPos + maxPos);
+ var diff = position - newPosition;
+ if (diff < 0 && Math.abs(diff) < maxSpace - this.options.hierarchical.nodeSpacing || diff > 0 && Math.abs(diff) < minSpace - this.options.hierarchical.nodeSpacing) {
+ this._setPositionForHierarchy(parentNode, newPosition, undefined, true);
+ }
+ }
+ }
+ }
+ }
/**
* This function places the nodes on the canvas based on the hierarchial distribution.
@@ -39859,6 +42178,7 @@ return /******/ (function(modules) { // webpackBootstrap
* @param {Object} distribution | obtained by the function this._getDistribution()
* @private
*/
+
}, {
key: '_placeNodesByHierarchy',
value: function _placeNodesByHierarchy(distribution) {
@@ -39870,13 +42190,20 @@ return /******/ (function(modules) { // webpackBootstrap
var nodeArray = Object.keys(distribution[level]);
nodeArray = this._indexArrayToNodes(nodeArray);
this._sortNodeArray(nodeArray);
+ var handledNodeCount = 0;
for (var i = 0; i < nodeArray.length; i++) {
var node = nodeArray[i];
if (this.positionedNodes[node.id] === undefined) {
- this._setPositionForHierarchy(node, this.nodeSpacing * i);
- this.positionedNodes[node.id] = true;
- this._placeBranchNodes(node.id, level);
+ var pos = this.options.hierarchical.nodeSpacing * handledNodeCount;
+ // we get the X or Y values we need and store them in pos and previousPos. The get and set make sure we get X or Y
+ if (handledNodeCount > 0) {
+ pos = this._getPositionForHierarchy(nodeArray[i - 1]) + this.options.hierarchical.nodeSpacing;
+ }
+ this._setPositionForHierarchy(node, pos, level);
+ this._validataPositionAndContinue(node, level, pos);
+
+ handledNodeCount++;
}
}
}
@@ -39884,10 +42211,100 @@ return /******/ (function(modules) { // webpackBootstrap
}
/**
+ * This is a recursively called function to enumerate the branches from the largest hubs and place the nodes
+ * on a X position that ensures there will be no overlap.
+ *
+ * @param parentId
+ * @param parentLevel
+ * @private
+ */
+
+ }, {
+ key: '_placeBranchNodes',
+ value: function _placeBranchNodes(parentId, parentLevel) {
+ // if this is not a parent, cancel the placing. This can happen with multiple parents to one child.
+ if (this.hierarchicalChildrenReference[parentId] === undefined) {
+ return;
+ }
+
+ // get a list of childNodes
+ var childNodes = [];
+ for (var i = 0; i < this.hierarchicalChildrenReference[parentId].length; i++) {
+ childNodes.push(this.body.nodes[this.hierarchicalChildrenReference[parentId][i]]);
+ }
+
+ // use the positions to order the nodes.
+ this._sortNodeArray(childNodes);
+
+ // position the childNodes
+ for (var _i6 = 0; _i6 < childNodes.length; _i6++) {
+ var childNode = childNodes[_i6];
+ var childNodeLevel = this.hierarchicalLevels[childNode.id];
+ // check if the child node is below the parent node and if it has already been positioned.
+ if (childNodeLevel > parentLevel && this.positionedNodes[childNode.id] === undefined) {
+ // get the amount of space required for this node. If parent the width is based on the amount of children.
+ var pos = void 0;
+
+ // we get the X or Y values we need and store them in pos and previousPos. The get and set make sure we get X or Y
+ if (_i6 === 0) {
+ pos = this._getPositionForHierarchy(this.body.nodes[parentId]);
+ } else {
+ pos = this._getPositionForHierarchy(childNodes[_i6 - 1]) + this.options.hierarchical.nodeSpacing;
+ }
+ this._setPositionForHierarchy(childNode, pos, childNodeLevel);
+ this._validataPositionAndContinue(childNode, childNodeLevel, pos);
+ } else {
+ return;
+ }
+ }
+
+ // center the parent nodes.
+ var minPos = 1e9;
+ var maxPos = -1e9;
+ for (var _i7 = 0; _i7 < childNodes.length; _i7++) {
+ var childNodeId = childNodes[_i7].id;
+ minPos = Math.min(minPos, this._getPositionForHierarchy(this.body.nodes[childNodeId]));
+ maxPos = Math.max(maxPos, this._getPositionForHierarchy(this.body.nodes[childNodeId]));
+ }
+ this._setPositionForHierarchy(this.body.nodes[parentId], 0.5 * (minPos + maxPos), parentLevel);
+ }
+
+ /**
+ * This method checks for overlap and if required shifts the branch. It also keeps records of positioned nodes.
+ * Finally it will call _placeBranchNodes to place the branch nodes.
+ * @param node
+ * @param level
+ * @param pos
+ * @private
+ */
+
+ }, {
+ key: '_validataPositionAndContinue',
+ value: function _validataPositionAndContinue(node, level, pos) {
+ // if overlap has been detected, we shift the branch
+ if (this.lastNodeOnLevel[level] !== undefined) {
+ var previousPos = this._getPositionForHierarchy(this.body.nodes[this.lastNodeOnLevel[level]]);
+ if (pos - previousPos < this.options.hierarchical.nodeSpacing) {
+ var diff = previousPos + this.options.hierarchical.nodeSpacing - pos;
+ var sharedParent = this._findCommonParent(this.lastNodeOnLevel[level], node.id);
+ this._shiftBlock(sharedParent.withChild, diff);
+ }
+ }
+
+ // store change in position.
+ this.lastNodeOnLevel[level] = node.id;
+
+ this.positionedNodes[node.id] = true;
+
+ this._placeBranchNodes(node.id, level);
+ }
+
+ /**
* Receives an array with node indices and returns an array with the actual node references. Used for sorting based on
* node properties.
* @param idArray
*/
+
}, {
key: '_indexArrayToNodes',
value: function _indexArrayToNodes(idArray) {
@@ -39904,12 +42321,13 @@ return /******/ (function(modules) { // webpackBootstrap
* @returns {Object}
* @private
*/
+
}, {
key: '_getDistribution',
value: function _getDistribution() {
var distribution = {};
- var nodeId = undefined,
- node = undefined;
+ var nodeId = void 0,
+ node = void 0;
// we fix Y because the hierarchy is vertical, we fix X so we do not give a node an x position for a second time.
// the fix of X is removed after the x value has been set.
@@ -39939,6 +42357,7 @@ return /******/ (function(modules) { // webpackBootstrap
* @returns {number}
* @private
*/
+
}, {
key: '_getHubSize',
value: function _getHubSize() {
@@ -39960,21 +42379,22 @@ return /******/ (function(modules) { // webpackBootstrap
* @param hubsize
* @private
*/
+
}, {
key: '_determineLevelsByHubsize',
value: function _determineLevelsByHubsize() {
- var _this2 = this;
+ var _this3 = this;
var hubSize = 1;
var levelDownstream = function levelDownstream(nodeA, nodeB) {
- if (_this2.hierarchicalLevels[nodeB.id] === undefined) {
+ if (_this3.hierarchicalLevels[nodeB.id] === undefined) {
// set initial level
- if (_this2.hierarchicalLevels[nodeA.id] === undefined) {
- _this2.hierarchicalLevels[nodeA.id] = 0;
+ if (_this3.hierarchicalLevels[nodeA.id] === undefined) {
+ _this3.hierarchicalLevels[nodeA.id] = 0;
}
// set level
- _this2.hierarchicalLevels[nodeB.id] = _this2.hierarchicalLevels[nodeA.id] + 1;
+ _this3.hierarchicalLevels[nodeB.id] = _this3.hierarchicalLevels[nodeA.id] + 1;
}
};
@@ -39998,10 +42418,11 @@ return /******/ (function(modules) { // webpackBootstrap
* TODO: release feature
* @private
*/
+
}, {
key: '_determineLevelsCustomCallback',
value: function _determineLevelsCustomCallback() {
- var _this3 = this;
+ var _this4 = this;
var minLevel = 100000;
@@ -40009,15 +42430,15 @@ return /******/ (function(modules) { // webpackBootstrap
var customCallback = function customCallback(nodeA, nodeB, edge) {};
var levelByDirection = function levelByDirection(nodeA, nodeB, edge) {
- var levelA = _this3.hierarchicalLevels[nodeA.id];
+ var levelA = _this4.hierarchicalLevels[nodeA.id];
// set initial level
if (levelA === undefined) {
- _this3.hierarchicalLevels[nodeA.id] = minLevel;
+ _this4.hierarchicalLevels[nodeA.id] = minLevel;
}
- var diff = customCallback(_NetworkUtil2['default']._cloneOptions(nodeA, 'node'), _NetworkUtil2['default']._cloneOptions(nodeB, 'node'), _NetworkUtil2['default']._cloneOptions(edge, 'edge'));
+ var diff = customCallback(_NetworkUtil2.default.cloneOptions(nodeA, 'node'), _NetworkUtil2.default.cloneOptions(nodeB, 'node'), _NetworkUtil2.default.cloneOptions(edge, 'edge'));
- _this3.hierarchicalLevels[nodeB.id] = _this3.hierarchicalLevels[nodeA.id] + diff;
+ _this4.hierarchicalLevels[nodeB.id] = _this4.hierarchicalLevels[nodeA.id] + diff;
};
this._crawlNetwork(levelByDirection);
@@ -40030,22 +42451,23 @@ return /******/ (function(modules) { // webpackBootstrap
* @param hubsize
* @private
*/
+
}, {
key: '_determineLevelsDirected',
value: function _determineLevelsDirected() {
- var _this4 = this;
+ var _this5 = this;
var minLevel = 10000;
var levelByDirection = function levelByDirection(nodeA, nodeB, edge) {
- var levelA = _this4.hierarchicalLevels[nodeA.id];
+ var levelA = _this5.hierarchicalLevels[nodeA.id];
// set initial level
if (levelA === undefined) {
- _this4.hierarchicalLevels[nodeA.id] = minLevel;
+ _this5.hierarchicalLevels[nodeA.id] = minLevel;
}
if (edge.toId == nodeB.id) {
- _this4.hierarchicalLevels[nodeB.id] = _this4.hierarchicalLevels[nodeA.id] + 1;
+ _this5.hierarchicalLevels[nodeB.id] = _this5.hierarchicalLevels[nodeA.id] + 1;
} else {
- _this4.hierarchicalLevels[nodeB.id] = _this4.hierarchicalLevels[nodeA.id] - 1;
+ _this5.hierarchicalLevels[nodeB.id] = _this5.hierarchicalLevels[nodeA.id] - 1;
}
};
this._crawlNetwork(levelByDirection);
@@ -40056,6 +42478,7 @@ return /******/ (function(modules) { // webpackBootstrap
* Small util method to set the minimum levels of the nodes to zero.
* @private
*/
+
}, {
key: '_setMinLevelToZero',
value: function _setMinLevelToZero() {
@@ -40063,41 +42486,44 @@ return /******/ (function(modules) { // webpackBootstrap
// get the minimum level
for (var nodeId in this.body.nodes) {
if (this.body.nodes.hasOwnProperty(nodeId)) {
- minLevel = Math.min(this.hierarchicalLevels[nodeId], minLevel);
+ if (this.hierarchicalLevels[nodeId] !== undefined) {
+ minLevel = Math.min(this.hierarchicalLevels[nodeId], minLevel);
+ }
}
}
// subtract the minimum from the set so we have a range starting from 0
- for (var nodeId in this.body.nodes) {
- if (this.body.nodes.hasOwnProperty(nodeId)) {
- this.hierarchicalLevels[nodeId] -= minLevel;
+ for (var _nodeId2 in this.body.nodes) {
+ if (this.body.nodes.hasOwnProperty(_nodeId2)) {
+ if (this.hierarchicalLevels[_nodeId2] !== undefined) {
+ this.hierarchicalLevels[_nodeId2] -= minLevel;
+ }
}
}
}
/**
* Update the bookkeeping of parent and child.
- * @param parentNodeId
- * @param childNodeId
* @private
*/
+
}, {
key: '_generateMap',
value: function _generateMap() {
- var _this5 = this;
+ var _this6 = this;
var fillInRelations = function fillInRelations(parentNode, childNode) {
- if (_this5.hierarchicalLevels[childNode.id] > _this5.hierarchicalLevels[parentNode.id]) {
+ if (_this6.hierarchicalLevels[childNode.id] > _this6.hierarchicalLevels[parentNode.id]) {
var parentNodeId = parentNode.id;
var childNodeId = childNode.id;
- if (_this5.hierarchicalParents[parentNodeId] === undefined) {
- _this5.hierarchicalParents[parentNodeId] = { children: [], amount: 0 };
+ if (_this6.hierarchicalChildrenReference[parentNodeId] === undefined) {
+ _this6.hierarchicalChildrenReference[parentNodeId] = [];
}
- _this5.hierarchicalParents[parentNodeId].children.push(childNodeId);
- if (_this5.hierarchicalChildren[childNodeId] === undefined) {
- _this5.hierarchicalChildren[childNodeId] = { parents: [], amount: 0 };
+ _this6.hierarchicalChildrenReference[parentNodeId].push(childNodeId);
+ if (_this6.hierarchicalParentReference[childNodeId] === undefined) {
+ _this6.hierarchicalParentReference[childNodeId] = [];
}
- _this5.hierarchicalChildren[childNodeId].parents.push(parentNodeId);
+ _this6.hierarchicalParentReference[childNodeId].push(parentNodeId);
}
};
@@ -40105,31 +42531,45 @@ return /******/ (function(modules) { // webpackBootstrap
}
/**
- * Crawl over the entire network and use a callback on each node couple that is connected to eachother.
+ * Crawl over the entire network and use a callback on each node couple that is connected to each other.
* @param callback | will receive nodeA nodeB and the connecting edge. A and B are unique.
* @param startingNodeId
* @private
*/
+
}, {
key: '_crawlNetwork',
- value: function _crawlNetwork(callback, startingNodeId) {
- if (callback === undefined) callback = function () {};
+ value: function _crawlNetwork() {
+ var _this7 = this;
+
+ var callback = arguments.length <= 0 || arguments[0] === undefined ? function () {} : arguments[0];
+ var startingNodeId = arguments[1];
var progress = {};
- var crawler = function crawler(node) {
+ var treeIndex = 0;
+
+ var crawler = function crawler(node, tree) {
if (progress[node.id] === undefined) {
+
+ if (_this7.hierarchicalTrees[node.id] === undefined) {
+ _this7.hierarchicalTrees[node.id] = tree;
+ _this7.treeIndex = Math.max(tree, _this7.treeIndex);
+ }
+
progress[node.id] = true;
- var childNode = undefined;
+ var childNode = void 0;
for (var i = 0; i < node.edges.length; i++) {
- if (node.edges[i].toId === node.id) {
- childNode = node.edges[i].from;
- } else {
- childNode = node.edges[i].to;
- }
+ if (node.edges[i].connected === true) {
+ if (node.edges[i].toId === node.id) {
+ childNode = node.edges[i].from;
+ } else {
+ childNode = node.edges[i].to;
+ }
- if (node.id !== childNode.id) {
- callback(node, childNode, node.edges[i]);
- crawler(childNode);
+ if (node.id !== childNode.id) {
+ callback(node, childNode, node.edges[i]);
+ crawler(childNode, tree);
+ }
}
}
}
@@ -40139,90 +42579,19 @@ return /******/ (function(modules) { // webpackBootstrap
if (startingNodeId === undefined) {
for (var i = 0; i < this.body.nodeIndices.length; i++) {
var node = this.body.nodes[this.body.nodeIndices[i]];
- crawler(node);
+ if (progress[node.id] === undefined) {
+ crawler(node, treeIndex);
+ treeIndex += 1;
+ }
}
} else {
- var node = this.body.nodes[startingNodeId];
- if (node === undefined) {
+ var _node = this.body.nodes[startingNodeId];
+ if (_node === undefined) {
console.error("Node not found:", startingNodeId);
return;
}
- crawler(node);
- }
- }
-
- /**
- * This is a recursively called function to enumerate the branches from the largest hubs and place the nodes
- * on a X position that ensures there will be no overlap.
- *
- * @param parentId
- * @param parentLevel
- * @private
- */
- }, {
- key: '_placeBranchNodes',
- value: function _placeBranchNodes(parentId, parentLevel) {
- // if this is not a parent, cancel the placing. This can happen with multiple parents to one child.
- if (this.hierarchicalParents[parentId] === undefined) {
- return;
- }
-
- // get a list of childNodes
- var childNodes = [];
- for (var i = 0; i < this.hierarchicalParents[parentId].children.length; i++) {
- childNodes.push(this.body.nodes[this.hierarchicalParents[parentId].children[i]]);
- }
-
- // use the positions to order the nodes.
- this._sortNodeArray(childNodes);
-
- // position the childNodes
- for (var i = 0; i < childNodes.length; i++) {
- var childNode = childNodes[i];
- var childNodeLevel = this.hierarchicalLevels[childNode.id];
- // check if the childnode is below the parent node and if it has already been positioned.
- if (childNodeLevel > parentLevel && this.positionedNodes[childNode.id] === undefined) {
- // get the amount of space required for this node. If parent the width is based on the amount of children.
- var pos = undefined;
-
- // we get the X or Y values we need and store them in pos and previousPos. The get and set make sure we get X or Y
- if (i === 0) {
- pos = this._getPositionForHierarchy(this.body.nodes[parentId]);
- } else {
- pos = this._getPositionForHierarchy(childNodes[i - 1]) + this.nodeSpacing;
- }
- this._setPositionForHierarchy(childNode, pos);
-
- // if overlap has been detected, we shift the branch
- if (this.lastNodeOnLevel[childNodeLevel] !== undefined) {
- var previousPos = this._getPositionForHierarchy(this.body.nodes[this.lastNodeOnLevel[childNodeLevel]]);
- if (pos - previousPos < this.nodeSpacing) {
- var diff = previousPos + this.nodeSpacing - pos;
- var sharedParent = this._findCommonParent(this.lastNodeOnLevel[childNodeLevel], childNode.id);
- this._shiftBlock(sharedParent.withChild, diff);
- }
- }
-
- // store change in position.
- this.lastNodeOnLevel[childNodeLevel] = childNode.id;
-
- this.positionedNodes[childNode.id] = true;
-
- this._placeBranchNodes(childNode.id, childNodeLevel);
- } else {
- return;
- }
- }
-
- // center the parent nodes.
- var minPos = 1e9;
- var maxPos = -1e9;
- for (var i = 0; i < childNodes.length; i++) {
- var childNodeId = childNodes[i].id;
- minPos = Math.min(minPos, this._getPositionForHierarchy(this.body.nodes[childNodeId]));
- maxPos = Math.max(maxPos, this._getPositionForHierarchy(this.body.nodes[childNodeId]));
+ crawler(_node);
}
- this._setPositionForHierarchy(this.body.nodes[parentId], 0.5 * (minPos + maxPos));
}
/**
@@ -40231,6 +42600,7 @@ return /******/ (function(modules) { // webpackBootstrap
* @param diff
* @private
*/
+
}, {
key: '_shiftBlock',
value: function _shiftBlock(parentId, diff) {
@@ -40239,9 +42609,9 @@ return /******/ (function(modules) { // webpackBootstrap
} else {
this.body.nodes[parentId].y += diff;
}
- if (this.hierarchicalParents[parentId] !== undefined) {
- for (var i = 0; i < this.hierarchicalParents[parentId].children.length; i++) {
- this._shiftBlock(this.hierarchicalParents[parentId].children[i], diff);
+ if (this.hierarchicalChildrenReference[parentId] !== undefined) {
+ for (var i = 0; i < this.hierarchicalChildrenReference[parentId].length; i++) {
+ this._shiftBlock(this.hierarchicalChildrenReference[parentId][i], diff);
}
}
}
@@ -40253,29 +42623,30 @@ return /******/ (function(modules) { // webpackBootstrap
* @returns {{foundParent, withChild}}
* @private
*/
+
}, {
key: '_findCommonParent',
value: function _findCommonParent(childA, childB) {
- var _this6 = this;
+ var _this8 = this;
var parents = {};
var iterateParents = function iterateParents(parents, child) {
- if (_this6.hierarchicalChildren[child] !== undefined) {
- for (var i = 0; i < _this6.hierarchicalChildren[child].parents.length; i++) {
- var _parent = _this6.hierarchicalChildren[child].parents[i];
- parents[_parent] = true;
- iterateParents(parents, _parent);
+ if (_this8.hierarchicalParentReference[child] !== undefined) {
+ for (var i = 0; i < _this8.hierarchicalParentReference[child].length; i++) {
+ var parent = _this8.hierarchicalParentReference[child][i];
+ parents[parent] = true;
+ iterateParents(parents, parent);
}
}
};
var findParent = function findParent(parents, child) {
- if (_this6.hierarchicalChildren[child] !== undefined) {
- for (var i = 0; i < _this6.hierarchicalChildren[child].parents.length; i++) {
- var _parent2 = _this6.hierarchicalChildren[child].parents[i];
- if (parents[_parent2] !== undefined) {
- return { foundParent: _parent2, withChild: child };
+ if (_this8.hierarchicalParentReference[child] !== undefined) {
+ for (var i = 0; i < _this8.hierarchicalParentReference[child].length; i++) {
+ var parent = _this8.hierarchicalParentReference[child][i];
+ if (parents[parent] !== undefined) {
+ return { foundParent: parent, withChild: child };
}
- var branch = findParent(parents, _parent2);
+ var branch = findParent(parents, parent);
if (branch.foundParent !== null) {
return branch;
}
@@ -40292,11 +42663,29 @@ return /******/ (function(modules) { // webpackBootstrap
* Abstract the getting of the position so we won't have to repeat the check for direction all the time
* @param node
* @param position
+ * @param level
* @private
*/
+
}, {
key: '_setPositionForHierarchy',
- value: function _setPositionForHierarchy(node, position) {
+ value: function _setPositionForHierarchy(node, position, level) {
+ var doNotUpdate = arguments.length <= 3 || arguments[3] === undefined ? false : arguments[3];
+
+ //console.log('_setPositionForHierarchy',node.id, position)
+ if (doNotUpdate !== true) {
+ if (this.distributionOrdering[level] === undefined) {
+ this.distributionOrdering[level] = [];
+ this.distributionOrderingPresence[level] = {};
+ }
+
+ if (this.distributionOrderingPresence[level][node.id] === undefined) {
+ this.distributionOrdering[level].push(node);
+ this.distributionIndex[node.id] = this.distributionOrdering[level].length - 1;
+ }
+ this.distributionOrderingPresence[level][node.id] = true;
+ }
+
if (this.options.hierarchical.direction === 'UD' || this.options.hierarchical.direction === 'DU') {
node.x = position;
} else {
@@ -40310,6 +42699,7 @@ return /******/ (function(modules) { // webpackBootstrap
* @returns {number|*}
* @private
*/
+
}, {
key: '_getPositionForHierarchy',
value: function _getPositionForHierarchy(node) {
@@ -40325,6 +42715,7 @@ return /******/ (function(modules) { // webpackBootstrap
* @param nodeArray
* @private
*/
+
}, {
key: '_sortNodeArray',
value: function _sortNodeArray(nodeArray) {
@@ -40343,28 +42734,27 @@ return /******/ (function(modules) { // webpackBootstrap
}]);
return LayoutEngine;
- })();
+ }();
- exports['default'] = LayoutEngine;
- module.exports = exports['default'];
+ exports.default = LayoutEngine;
/***/ },
-/* 110 */
+/* 113 */
/***/ function(module, exports, __webpack_require__) {
'use strict';
- Object.defineProperty(exports, '__esModule', {
+ Object.defineProperty(exports, "__esModule", {
value: true
});
- 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 _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; }; }();
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }
+ 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__(25);
+ var hammerUtil = __webpack_require__(28);
/**
* clears the toolbar div element of children
@@ -40372,7 +42762,7 @@ return /******/ (function(modules) { // webpackBootstrap
* @private
*/
- var ManipulationSystem = (function () {
+ var ManipulationSystem = function () {
function ManipulationSystem(body, canvas, selectionHandler) {
var _this = this;
@@ -40429,6 +42819,7 @@ return /******/ (function(modules) { // webpackBootstrap
* @private
*/
+
_createClass(ManipulationSystem, [{
key: '_restore',
value: function _restore() {
@@ -40445,6 +42836,7 @@ return /******/ (function(modules) { // webpackBootstrap
* Set the Options
* @param options
*/
+
}, {
key: 'setOptions',
value: function setOptions(options, allOptions, globalOptions) {
@@ -40480,6 +42872,7 @@ return /******/ (function(modules) { // webpackBootstrap
*
* @private
*/
+
}, {
key: 'toggleEditMode',
value: function toggleEditMode() {
@@ -40521,13 +42914,14 @@ return /******/ (function(modules) { // webpackBootstrap
*
* @private
*/
+
}, {
key: 'showManipulatorToolbar',
value: function showManipulatorToolbar() {
// restore the state of any bound functions or events, remove control nodes, restore physics
this._clean();
- // reset global letiables
+ // reset global variables
this.manipulationDOM = {};
// if the gui is enabled, draw all elements.
@@ -40601,6 +42995,7 @@ return /******/ (function(modules) { // webpackBootstrap
/**
* Create the toolbar for adding Nodes
*/
+
}, {
key: 'addNodeMode',
value: function addNodeMode() {
@@ -40630,6 +43025,7 @@ return /******/ (function(modules) { // webpackBootstrap
/**
* call the bound function to handle the editing of the node. The node has to be selected.
*/
+
}, {
key: 'editNode',
value: function editNode() {
@@ -40647,7 +43043,7 @@ return /******/ (function(modules) { // webpackBootstrap
this.inMode = 'editNode';
if (typeof this.options.editNode === 'function') {
if (node.isCluster !== true) {
- var data = util.deepExtend({}, node.options, true);
+ var data = util.deepExtend({}, node.options, false);
data.x = node.x;
data.y = node.y;
@@ -40676,6 +43072,7 @@ return /******/ (function(modules) { // webpackBootstrap
/**
* create the toolbar to connect nodes
*/
+
}, {
key: 'addEdgeMode',
value: function addEdgeMode() {
@@ -40712,12 +43109,13 @@ return /******/ (function(modules) { // webpackBootstrap
/**
* create the toolbar to edit edges
*/
+
}, {
key: 'editEdgeMode',
value: function editEdgeMode() {
var _this3 = this;
- // when using the gui, enable edit mode if it wasnt already.
+ // when using the gui, enable edit mode if it wasn't already.
if (this.editMode !== true) {
this.enableEditMode();
}
@@ -40787,6 +43185,7 @@ return /******/ (function(modules) { // webpackBootstrap
/**
* delete everything in the selection
*/
+
}, {
key: 'deleteSelected',
value: function deleteSelected() {
@@ -40853,6 +43252,7 @@ return /******/ (function(modules) { // webpackBootstrap
* draw or remove the DOM
* @private
*/
+
}, {
key: '_setup',
value: function _setup() {
@@ -40878,6 +43278,7 @@ return /******/ (function(modules) { // webpackBootstrap
* create the div overlays that contain the DOM
* @private
*/
+
}, {
key: '_createWrappers',
value: function _createWrappers() {
@@ -40921,6 +43322,7 @@ return /******/ (function(modules) { // webpackBootstrap
* @returns {*}
* @private
*/
+
}, {
key: '_getNewTargetNode',
value: function _getNewTargetNode(x, y) {
@@ -40932,12 +43334,17 @@ return /******/ (function(modules) { // webpackBootstrap
controlNodeStyle.x = x;
controlNodeStyle.y = y;
- return this.body.functions.createNode(controlNodeStyle);
+ // we have to define the bounding box in order for the nodes to be drawn immediately
+ var node = this.body.functions.createNode(controlNodeStyle);
+ node.shape.boundingBox = { left: x, right: x, top: y, bottom: y };
+
+ return node;
}
/**
* Create the edit button
*/
+
}, {
key: '_createEditButton',
value: function _createEditButton() {
@@ -40963,6 +43370,7 @@ return /******/ (function(modules) { // webpackBootstrap
* this function cleans up after everything this module does. Temporary elements, functions and events are removed, physics restored, hammers removed.
* @private
*/
+
}, {
key: '_clean',
value: function _clean() {
@@ -40995,6 +43403,7 @@ return /******/ (function(modules) { // webpackBootstrap
* Each dom element has it's own hammer. They are stored in this.manipulationHammers. This cleans them up.
* @private
*/
+
}, {
key: '_cleanManipulatorHammers',
value: function _cleanManipulatorHammers() {
@@ -41011,6 +43420,7 @@ return /******/ (function(modules) { // webpackBootstrap
* Remove all DOM elements created by this module.
* @private
*/
+
}, {
key: '_removeManipulationDOM',
value: function _removeManipulationDOM() {
@@ -41030,7 +43440,7 @@ return /******/ (function(modules) { // webpackBootstrap
this.canvas.frame.removeChild(this.editModeDiv);
}
if (this.closeDiv) {
- this.canvas.frame.removeChild(this.manipulationDiv);
+ this.canvas.frame.removeChild(this.closeDiv);
}
// set the references to undefined
@@ -41044,6 +43454,7 @@ return /******/ (function(modules) { // webpackBootstrap
* @param index
* @private
*/
+
}, {
key: '_createSeperator',
value: function _createSeperator() {
@@ -41087,7 +43498,12 @@ return /******/ (function(modules) { // webpackBootstrap
}, {
key: '_createDeleteButton',
value: function _createDeleteButton(locale) {
- var button = this._createButton('delete', 'vis-button vis-delete', locale['del'] || this.options.locales['en']['del']);
+ if (this.options.rtl) {
+ var deleteBtnClass = 'vis-button vis-delete-rtl';
+ } else {
+ var deleteBtnClass = 'vis-button vis-delete';
+ }
+ var button = this._createButton('delete', deleteBtnClass, locale['del'] || this.options.locales['en']['del']);
this.manipulationDiv.appendChild(button);
this._bindHammerToDiv(button, this.deleteSelected.bind(this));
}
@@ -41103,6 +43519,7 @@ return /******/ (function(modules) { // webpackBootstrap
value: function _createButton(id, className, label) {
var labelClassName = arguments.length <= 3 || arguments[3] === undefined ? 'vis-label' : arguments[3];
+
this.manipulationDOM[id + 'Div'] = document.createElement('div');
this.manipulationDOM[id + 'Div'].className = className;
this.manipulationDOM[id + 'Label'] = document.createElement('div');
@@ -41125,6 +43542,7 @@ return /******/ (function(modules) { // webpackBootstrap
* @param newFunction
* @private
*/
+
}, {
key: '_temporaryBindEvent',
value: function _temporaryBindEvent(event, newFunction) {
@@ -41138,6 +43556,7 @@ return /******/ (function(modules) { // webpackBootstrap
* @param newFunction
* @private
*/
+
}, {
key: '_temporaryBindUI',
value: function _temporaryBindUI(UIfunctionName, newFunction) {
@@ -41154,6 +43573,7 @@ return /******/ (function(modules) { // webpackBootstrap
*
* @private
*/
+
}, {
key: '_unbindTemporaryUIs',
value: function _unbindTemporaryUIs() {
@@ -41170,6 +43590,7 @@ return /******/ (function(modules) { // webpackBootstrap
* Unbind the events created by _temporaryBindEvent
* @private
*/
+
}, {
key: '_unbindTemporaryEvents',
value: function _unbindTemporaryEvents() {
@@ -41186,6 +43607,7 @@ return /******/ (function(modules) { // webpackBootstrap
* @param domElement
* @param funct
*/
+
}, {
key: '_bindHammerToDiv',
value: function _bindHammerToDiv(domElement, boundFunction) {
@@ -41198,6 +43620,7 @@ return /******/ (function(modules) { // webpackBootstrap
* Neatly clean up temporary edges and nodes
* @private
*/
+
}, {
key: '_cleanupTemporaryNodesAndEdges',
value: function _cleanupTemporaryNodesAndEdges() {
@@ -41212,9 +43635,9 @@ return /******/ (function(modules) { // webpackBootstrap
}
// _clean temporary nodes
- for (var i = 0; i < this.temporaryIds.nodes.length; i++) {
- delete this.body.nodes[this.temporaryIds.nodes[i]];
- var indexTempNode = this.body.nodeIndices.indexOf(this.temporaryIds.nodes[i]);
+ for (var _i = 0; _i < this.temporaryIds.nodes.length; _i++) {
+ delete this.body.nodes[this.temporaryIds.nodes[_i]];
+ var indexTempNode = this.body.nodeIndices.indexOf(this.temporaryIds.nodes[_i]);
if (indexTempNode !== -1) {
this.body.nodeIndices.splice(indexTempNode, 1);
}
@@ -41230,6 +43653,7 @@ return /******/ (function(modules) { // webpackBootstrap
* @param event
* @private
*/
+
}, {
key: '_controlNodeTouch',
value: function _controlNodeTouch(event) {
@@ -41243,6 +43667,7 @@ return /******/ (function(modules) { // webpackBootstrap
* @param event
* @private
*/
+
}, {
key: '_controlNodeDragStart',
value: function _controlNodeDragStart(event) {
@@ -41264,6 +43689,11 @@ return /******/ (function(modules) { // webpackBootstrap
edge.edgeType.to = to;
}
+ // we use the selection to find the node that is being dragged. We explicitly select it here.
+ if (this.selectedControlNode !== undefined) {
+ this.selectionHandler.selectObject(this.selectedControlNode);
+ }
+
this.body.emitter.emit('_redraw');
}
@@ -41272,13 +43702,13 @@ return /******/ (function(modules) { // webpackBootstrap
* @param event
* @private
*/
+
}, {
key: '_controlNodeDrag',
value: function _controlNodeDrag(event) {
this.body.emitter.emit('disablePhysics');
var pointer = this.body.functions.getPointer(event.center);
var pos = this.canvas.DOMtoCanvas(pointer);
-
if (this.selectedControlNode !== undefined) {
this.selectedControlNode.x = pos.x;
this.selectedControlNode.y = pos.y;
@@ -41296,18 +43726,20 @@ return /******/ (function(modules) { // webpackBootstrap
* @param event
* @private
*/
+
}, {
key: '_controlNodeDragEnd',
value: function _controlNodeDragEnd(event) {
var pointer = this.body.functions.getPointer(event.center);
var pointerObj = this.selectionHandler._pointerToPositionObject(pointer);
var edge = this.body.edges[this.edgeBeingEditedId];
-
// if the node that was dragged is not a control node, return
if (this.selectedControlNode === undefined) {
return;
}
+ // we use the selection to find the node that is being dragged. We explicitly DEselect the control node here.
+ this.selectionHandler.unselectAll();
var overlappingNodeIds = this.selectionHandler._getAllNodesOverlappingWith(pointerObj);
var node = undefined;
for (var i = overlappingNodeIds.length - 1; i >= 0; i--) {
@@ -41316,7 +43748,6 @@ return /******/ (function(modules) { // webpackBootstrap
break;
}
}
-
// perform the connection
if (node !== undefined && this.selectedControlNode !== undefined) {
if (node.isCluster === true) {
@@ -41345,6 +43776,7 @@ return /******/ (function(modules) { // webpackBootstrap
*
* @private
*/
+
}, {
key: '_handleConnect',
value: function _handleConnect(event) {
@@ -41408,6 +43840,7 @@ return /******/ (function(modules) { // webpackBootstrap
* @param event
* @private
*/
+
}, {
key: '_finishConnect',
value: function _finishConnect(event) {
@@ -41454,6 +43887,7 @@ return /******/ (function(modules) { // webpackBootstrap
/**
* Adds a node on the specified location
*/
+
}, {
key: '_performAddNode',
value: function _performAddNode(clickData) {
@@ -41490,6 +43924,7 @@ return /******/ (function(modules) { // webpackBootstrap
*
* @private
*/
+
}, {
key: '_performAddEdge',
value: function _performAddEdge(sourceNodeId, targetNodeId) {
@@ -41521,6 +43956,7 @@ return /******/ (function(modules) { // webpackBootstrap
*
* @private
*/
+
}, {
key: '_performEditEdge',
value: function _performEditEdge(sourceNodeId, targetNodeId) {
@@ -41552,15 +43988,19 @@ return /******/ (function(modules) { // webpackBootstrap
}]);
return ManipulationSystem;
- })();
+ }();
- exports['default'] = ManipulationSystem;
- module.exports = exports['default'];
+ exports.default = ManipulationSystem;
/***/ },
-/* 111 */
+/* 114 */
/***/ function(module, exports) {
+ 'use strict';
+
+ Object.defineProperty(exports, "__esModule", {
+ value: true
+ });
/**
* This object contains all possible options. It will check if the types are correct, if required if the option is one
* of the allowed values.
@@ -41568,11 +44008,6 @@ return /******/ (function(modules) { // webpackBootstrap
* __any__ means that the name of the property does not matter.
* __type__ is a required field for all objects and contains the allowed types of all objects
*/
- 'use strict';
-
- Object.defineProperty(exports, '__esModule', {
- value: true
- });
var string = 'string';
var boolean = 'boolean';
var number = 'number';
@@ -41596,6 +44031,7 @@ return /******/ (function(modules) { // webpackBootstrap
from: { enabled: { boolean: boolean }, scaleFactor: { number: number }, __type__: { object: object, boolean: boolean } },
__type__: { string: ['from', 'to', 'middle'], object: object }
},
+ arrowStrikethrough: { boolean: boolean },
color: {
color: { string: string },
highlight: { string: string },
@@ -41639,6 +44075,7 @@ return /******/ (function(modules) { // webpackBootstrap
selfReferenceSize: { number: number },
shadow: {
enabled: { boolean: boolean },
+ color: { string: string },
size: { number: number },
x: { number: number },
y: { number: number },
@@ -41688,6 +44125,11 @@ return /******/ (function(modules) { // webpackBootstrap
hierarchical: {
enabled: { boolean: boolean },
levelSeparation: { number: number },
+ nodeSpacing: { number: number },
+ treeSpacing: { number: number },
+ blockShifting: { boolean: boolean },
+ edgeMinimization: { boolean: boolean },
+ parentCentralization: { boolean: boolean },
direction: { string: ['UD', 'DU', 'LR', 'RL'] }, // UD, DU, LR, RL
sortMethod: { string: ['hubsize', 'directed'] }, // hubsize, directed
__type__: { object: object, boolean: boolean }
@@ -41731,6 +44173,7 @@ return /******/ (function(modules) { // webpackBootstrap
__type__: { object: object, boolean: boolean }
},
font: {
+ align: { string: string },
color: { string: string },
size: { number: number }, // px
face: { string: string },
@@ -41771,6 +44214,7 @@ return /******/ (function(modules) { // webpackBootstrap
},
shadow: {
enabled: { boolean: boolean },
+ color: { string: string },
size: { number: number },
x: { number: number },
y: { number: number },
@@ -41780,6 +44224,7 @@ return /******/ (function(modules) { // webpackBootstrap
shapeProperties: {
borderDashes: { boolean: boolean, array: array },
borderRadius: { number: number },
+ interpolation: { boolean: boolean },
useImageSize: { boolean: boolean },
useBorderWithImage: { boolean: boolean },
__type__: { object: object }
@@ -41911,6 +44356,7 @@ return /******/ (function(modules) { // webpackBootstrap
},
shadow: {
enabled: false,
+ color: 'rgba(0,0,0,0.5)',
size: [10, 0, 20, 1],
x: [5, -30, 30, 1],
y: [5, -30, 30, 1]
@@ -41919,6 +44365,7 @@ return /******/ (function(modules) { // webpackBootstrap
shapeProperties: {
borderDashes: false,
borderRadius: [6, 0, 20, 1],
+ interpolation: true,
useImageSize: false
},
size: [25, 0, 200, 1]
@@ -41929,6 +44376,7 @@ return /******/ (function(modules) { // webpackBootstrap
middle: { enabled: false, scaleFactor: [1, 0, 3, 0.05] },
from: { enabled: false, scaleFactor: [1, 0, 3, 0.05] }
},
+ arrowStrikethrough: true,
color: {
color: ['color', '#848484'],
highlight: ['color', '#848484'],
@@ -41965,6 +44413,7 @@ return /******/ (function(modules) { // webpackBootstrap
selfReferenceSize: [20, 0, 200, 1],
shadow: {
enabled: false,
+ color: 'rgba(0,0,0,0.5)',
size: [10, 0, 20, 1],
x: [5, -30, 30, 1],
y: [5, -30, 30, 1]
@@ -41983,6 +44432,11 @@ return /******/ (function(modules) { // webpackBootstrap
hierarchical: {
enabled: false,
levelSeparation: [150, 20, 500, 5],
+ nodeSpacing: [100, 20, 500, 5],
+ treeSpacing: [200, 20, 500, 5],
+ blockShifting: true,
+ edgeMinimization: true,
+ parentCentralization: true,
direction: ['UD', 'DU', 'LR', 'RL'], // UD, DU, LR, RL
sortMethod: ['hubsize', 'directed'] // hubsize, directed
}
@@ -42059,31 +44513,27 @@ return /******/ (function(modules) { // webpackBootstrap
exports.configureOptions = configureOptions;
/***/ },
-/* 112 */
+/* 115 */
/***/ function(module, exports, __webpack_require__) {
- /**
- * Created by Alex on 8/7/2015.
- */
-
- // distance finding algorithm
"use strict";
Object.defineProperty(exports, "__esModule", {
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 _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 _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
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
+ var _FloydWarshall = __webpack_require__(116);
- var _componentsAlgorithmsFloydWarshallJs = __webpack_require__(113);
+ var _FloydWarshall2 = _interopRequireDefault(_FloydWarshall);
- var _componentsAlgorithmsFloydWarshallJs2 = _interopRequireDefault(_componentsAlgorithmsFloydWarshallJs);
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
+
+ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
/**
* KamadaKawai positions the nodes initially based on
@@ -42094,14 +44544,14 @@ return /******/ (function(modules) { // webpackBootstrap
* Possible optimizations in the distance calculation can be implemented.
*/
- var KamadaKawai = (function () {
+ var KamadaKawai = function () {
function KamadaKawai(body, edgeLength, edgeStrength) {
_classCallCheck(this, KamadaKawai);
this.body = body;
this.springLength = edgeLength;
this.springConstant = edgeStrength;
- this.distanceSolver = new _componentsAlgorithmsFloydWarshallJs2["default"]();
+ this.distanceSolver = new _FloydWarshall2.default();
}
/**
@@ -42109,6 +44559,7 @@ return /******/ (function(modules) { // webpackBootstrap
* @param options
*/
+
_createClass(KamadaKawai, [{
key: "setOptions",
value: function setOptions(options) {
@@ -42127,6 +44578,7 @@ return /******/ (function(modules) { // webpackBootstrap
* @param nodesArray
* @param edgesArray
*/
+
}, {
key: "solve",
value: function solve(nodesArray, edgesArray) {
@@ -42160,12 +44612,12 @@ return /******/ (function(modules) { // webpackBootstrap
var _getHighestEnergyNode2 = this._getHighestEnergyNode(ignoreClusters);
- var _getHighestEnergyNode22 = _slicedToArray(_getHighestEnergyNode2, 4);
+ var _getHighestEnergyNode3 = _slicedToArray(_getHighestEnergyNode2, 4);
- highE_nodeId = _getHighestEnergyNode22[0];
- maxEnergy = _getHighestEnergyNode22[1];
- dE_dx = _getHighestEnergyNode22[2];
- dE_dy = _getHighestEnergyNode22[3];
+ highE_nodeId = _getHighestEnergyNode3[0];
+ maxEnergy = _getHighestEnergyNode3[1];
+ dE_dx = _getHighestEnergyNode3[2];
+ dE_dy = _getHighestEnergyNode3[3];
delta_m = maxEnergy;
subIterations = 0;
@@ -42175,11 +44627,11 @@ return /******/ (function(modules) { // webpackBootstrap
var _getEnergy2 = this._getEnergy(highE_nodeId);
- var _getEnergy22 = _slicedToArray(_getEnergy2, 3);
+ var _getEnergy3 = _slicedToArray(_getEnergy2, 3);
- delta_m = _getEnergy22[0];
- dE_dx = _getEnergy22[1];
- dE_dy = _getEnergy22[2];
+ delta_m = _getEnergy3[0];
+ dE_dx = _getEnergy3[1];
+ dE_dy = _getEnergy3[2];
}
}
}
@@ -42189,6 +44641,7 @@ return /******/ (function(modules) { // webpackBootstrap
* @returns {*[]}
* @private
*/
+
}, {
key: "_getHighestEnergyNode",
value: function _getHighestEnergyNode(ignoreClusters) {
@@ -42203,13 +44656,13 @@ 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 _getEnergy3 = this._getEnergy(m);
+ var _getEnergy4 = this._getEnergy(m);
- var _getEnergy32 = _slicedToArray(_getEnergy3, 3);
+ var _getEnergy5 = _slicedToArray(_getEnergy4, 3);
- var delta_m = _getEnergy32[0];
- var dE_dx = _getEnergy32[1];
- var dE_dy = _getEnergy32[2];
+ var delta_m = _getEnergy5[0];
+ var dE_dx = _getEnergy5[1];
+ var dE_dy = _getEnergy5[2];
if (maxEnergy < delta_m) {
maxEnergy = delta_m;
@@ -42229,6 +44682,7 @@ return /******/ (function(modules) { // webpackBootstrap
* @returns {*[]}
* @private
*/
+
}, {
key: "_getEnergy",
value: function _getEnergy(m) {
@@ -42262,6 +44716,7 @@ return /******/ (function(modules) { // webpackBootstrap
* @param dE_dy
* @private
*/
+
}, {
key: "_moveNode",
value: function _moveNode(m, dE_dx, dE_dy) {
@@ -42305,6 +44760,7 @@ return /******/ (function(modules) { // webpackBootstrap
* @param D_matrix
* @private
*/
+
}, {
key: "_createL_matrix",
value: function _createL_matrix(D_matrix) {
@@ -42325,6 +44781,7 @@ return /******/ (function(modules) { // webpackBootstrap
* @param D_matrix
* @private
*/
+
}, {
key: "_createK_matrix",
value: function _createK_matrix(D_matrix) {
@@ -42342,30 +44799,29 @@ return /******/ (function(modules) { // webpackBootstrap
}]);
return KamadaKawai;
- })();
+ }();
- exports["default"] = KamadaKawai;
- module.exports = exports["default"];
+ exports.default = KamadaKawai;
/***/ },
-/* 113 */
+/* 116 */
/***/ function(module, exports) {
- /**
- * Created by Alex on 10-Aug-15.
- */
-
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
- 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 _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; }; }();
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
- var FloydWarshall = (function () {
+ /**
+ * Created by Alex on 10-Aug-15.
+ */
+
+ var FloydWarshall = function () {
function FloydWarshall() {
_classCallCheck(this, FloydWarshall);
}
@@ -42387,8 +44843,8 @@ return /******/ (function(modules) { // webpackBootstrap
}
// put the weights for the edges in. This assumes unidirectionality.
- for (var i = 0; i < edgesArray.length; i++) {
- var edge = edges[edgesArray[i]];
+ for (var _i = 0; _i < edgesArray.length; _i++) {
+ var edge = edges[edgesArray[_i]];
// edge has to be connected if it counts to the distances. If it is connected to inner clusters it will crash so we also check if it is in the D_matrix
if (edge.connected === true && D_matrix[edge.fromId] !== undefined && D_matrix[edge.toId] !== undefined) {
D_matrix[edge.fromId][edge.toId] = 1;
@@ -42400,10 +44856,10 @@ return /******/ (function(modules) { // webpackBootstrap
// Adapted FloydWarshall based on unidirectionality to greatly reduce complexity.
for (var k = 0; k < nodeCount; k++) {
- for (var i = 0; i < nodeCount - 1; i++) {
- for (var j = i + 1; j < nodeCount; j++) {
- D_matrix[nodesArray[i]][nodesArray[j]] = Math.min(D_matrix[nodesArray[i]][nodesArray[j]], D_matrix[nodesArray[i]][nodesArray[k]] + D_matrix[nodesArray[k]][nodesArray[j]]);
- D_matrix[nodesArray[j]][nodesArray[i]] = D_matrix[nodesArray[i]][nodesArray[j]];
+ for (var _i2 = 0; _i2 < nodeCount - 1; _i2++) {
+ for (var _j = _i2 + 1; _j < nodeCount; _j++) {
+ D_matrix[nodesArray[_i2]][nodesArray[_j]] = Math.min(D_matrix[nodesArray[_i2]][nodesArray[_j]], D_matrix[nodesArray[_i2]][nodesArray[k]] + D_matrix[nodesArray[k]][nodesArray[_j]]);
+ D_matrix[nodesArray[_j]][nodesArray[_i2]] = D_matrix[nodesArray[_i2]][nodesArray[_j]];
}
}
}
@@ -42413,20 +44869,19 @@ return /******/ (function(modules) { // webpackBootstrap
}]);
return FloydWarshall;
- })();
+ }();
- exports["default"] = FloydWarshall;
- module.exports = exports["default"];
+ exports.default = FloydWarshall;
/***/ },
-/* 114 */
+/* 117 */
/***/ function(module, exports) {
+ 'use strict';
+
/**
* Canvas shapes used by Network
*/
- 'use strict';
-
if (typeof CanvasRenderingContext2D !== 'undefined') {
/**
@@ -42706,9 +45161,11 @@ return /******/ (function(modules) { // webpackBootstrap
}
/***/ },
-/* 115 */
+/* 118 */
/***/ function(module, exports) {
+ 'use strict';
+
/**
* Parse a text source containing data in DOT language into a JSON object.
* The object contains two lists: one with nodes and one with edges.
@@ -42722,8 +45179,6 @@ return /******/ (function(modules) { // webpackBootstrap
* {Object[]} nodes
* {Object[]} edges
*/
- 'use strict';
-
function parseDOT(data) {
dot = data;
return parseGraph();
@@ -43604,7 +46059,7 @@ return /******/ (function(modules) { // webpackBootstrap
exports.DOTToGraph = DOTToGraph;
/***/ },
-/* 116 */
+/* 119 */
/***/ function(module, exports) {
'use strict';
@@ -43682,138 +46137,12 @@ return /******/ (function(modules) { // webpackBootstrap
exports.parseGephi = parseGephi;
/***/ },
-/* 117 */
+/* 120 */
/***/ function(module, exports) {
- /**
- * @class Images
- * This class loads images and keeps them stored.
- */
- "use strict";
-
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
-
- 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; }; })();
-
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
-
- var Images = (function () {
- function Images(callback) {
- _classCallCheck(this, Images);
-
- this.images = {};
- this.imageBroken = {};
- this.callback = callback;
- }
-
- /**
- * @param {string} url The Url to cache the image as
- * @return {Image} imageToLoadBrokenUrlOn The image object
- */
-
- _createClass(Images, [{
- key: "_addImageToCache",
- value: function _addImageToCache(url, imageToCache) {
- // IE11 fix -- thanks dponch!
- if (imageToCache.width === 0) {
- document.body.appendChild(imageToCache);
- imageToCache.width = imageToCache.offsetWidth;
- imageToCache.height = imageToCache.offsetHeight;
- document.body.removeChild(imageToCache);
- }
-
- this.images[url] = imageToCache;
- }
-
- /**
- * @param {string} url The original Url that failed to load, if the broken image is successfully loaded it will be added to the cache using this Url as the key so that subsequent requests for this Url will return the broken image
- * @param {string} brokenUrl Url the broken image to try and load
- * @return {Image} imageToLoadBrokenUrlOn The image object
- */
- }, {
- key: "_tryloadBrokenUrl",
- value: function _tryloadBrokenUrl(url, brokenUrl, imageToLoadBrokenUrlOn) {
- var _this = this;
-
- //If any of the parameters aren't specified then exit the function because nothing constructive can be done
- if (url === undefined || brokenUrl === undefined || imageToLoadBrokenUrlOn === undefined) return;
-
- //Clear the old subscription to the error event and put a new in place that only handle errors in loading the brokenImageUrl
- imageToLoadBrokenUrlOn.onerror = function () {
- console.error("Could not load brokenImage:", brokenUrl);
- //Add an empty image to the cache so that when subsequent load calls are made for the url we don't try load the image and broken image again
- _this._addImageToCache(url, new Image());
- };
-
- //Set the source of the image to the brokenUrl, this is actually what kicks off the loading of the broken image
- imageToLoadBrokenUrlOn.src = brokenUrl;
- }
-
- /**
- * @return {Image} imageToRedrawWith The images that will be passed to the callback when it is invoked
- */
- }, {
- key: "_redrawWithImage",
- value: function _redrawWithImage(imageToRedrawWith) {
- if (this.callback) {
- this.callback(imageToRedrawWith);
- }
- }
-
- /**
- * @param {string} url Url of the image
- * @param {string} brokenUrl Url of an image to use if the url image is not found
- * @return {Image} img The image object
- */
- }, {
- key: "load",
- value: function load(url, brokenUrl, id) {
- var _this2 = this;
-
- //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
- img.onload = function () {
- //Add the image to the cache and then request a redraw
- _this2._addImageToCache(url, img);
- _this2._redrawWithImage(img);
- };
-
- //Subscribe to the event that is raised if the image fails to load
- img.onerror = function () {
- console.error("Could not load image:", url);
- //Try and load the image specified by the brokenUrl using
- _this2._tryloadBrokenUrl(url, brokenUrl, img);
- };
-
- //Set the source of the image to the url, this is actuall what kicks off the loading of the image
- img.src = url;
-
- //Return the new image
- return img;
- }
- }]);
-
- return Images;
- })();
-
- exports["default"] = Images;
- module.exports = exports["default"];
-
-/***/ },
-/* 118 */
-/***/ function(module, exports) {
-
- // English
'use strict';
+ // English
exports['en'] = {
edit: 'Edit',
del: 'Delete selected',
@@ -43890,4 +46219,4 @@ return /******/ (function(modules) { // webpackBootstrap
/***/ }
/******/ ])
});
-;
+; \ No newline at end of file
diff --git a/www/lib/vis/dist/vis.map b/www/lib/vis/dist/vis.map
index d5b47fe3..e4094787 100644
--- a/www/lib/vis/dist/vis.map
+++ b/www/lib/vis/dist/vis.map
@@ -1 +1 @@
-{"version":3,"sources":["vis.js"],"names":["root","factory","exports","module","define","amd","this","modules","__webpack_require__","moduleId","installedModules","id","loaded","call","m","c","p","util","DOMutil","DataSet","DataView","Queue","Graph3d","graph3d","Camera","Filter","Point2d","Point3d","Slider","StepNumber","Timeline","Graph2d","timeline","Core","DataStep","DateUtil","Range","stack","TimeStep","components","items","Item","BackgroundItem","BoxItem","PointItem","RangeItem","BackgroundGroup","Component","CurrentTime","CustomTime","DataAxis","GraphGroup","Group","ItemSet","Legend","LineGraph","TimeAxis","Network","network","Images","dotparser","gephiParser","allOptions","convertDot","input","DOTToGraph","convertGephi","options","parseGephi","moment","Hammer","keycharm","uuid","isNumber","object","Number","recursiveDOMDelete","DOMobject","hasChildNodes","firstChild","removeChild","giveRange","min","max","total","value","scale","Math","isString","String","isDate","Date","match","ASPDateRegex","exec","isNaN","parse","randomUUID","v4","assignAllKeys","obj","prop","hasOwnProperty","fillIfDefined","a","b","allowDeletion","arguments","length","undefined","protoExtend","i","other","extend","selectiveExtend","props","Array","isArray","Error","selectiveDeepExtend","TypeError","constructor","Object","deepExtend","selectiveNotDeepExtend","indexOf","push","equalArray","len","convert","type","Boolean","valueOf","isMoment","toDate","getType","toISOString","copyAndExtendArray","arr","newValue","newArr","copyArray","getAbsoluteLeft","elem","getBoundingClientRect","left","getAbsoluteTop","top","addClassName","className","classes","split","join","removeClassName","index","splice","forEach","callback","toArray","array","updateProperty","key","throttle","fn","wait","timeout","needExecution","throttled","setTimeout","addEventListener","element","action","listener","useCapture","navigator","userAgent","attachEvent","removeEventListener","detachEvent","preventDefault","event","window","returnValue","getTarget","target","srcElement","nodeType","parentNode","hasParent","parent","e","option","asBoolean","defaultValue","asNumber","asString","asSize","asElement","hexToRGB","hex","shorthandRegex","replace","r","g","result","parseInt","overrideOpacity","color","opacity","rgb","substr","RGBToHex","red","green","blue","toString","slice","parseColor","isValidRGB","map","isValidHex","hsv","hexToHSV","lighterColorHSV","h","s","v","darkerColorHSV","darkerColorHex","HSVToHex","lighterColorHex","background","border","highlight","hover","RGBToHSV","minRGB","maxRGB","d","hue","saturation","cssUtil","cssText","styles","style","trim","parts","keys","addCssText","currentStyles","newStyles","removeCssText","removeStyles","HSVToRGB","floor","f","q","t","isOk","test","isValidRGBA","rgba","selectiveBridgeObject","fields","referenceObject","objectTo","create","bridgeObject","insertSort","compare","k","j","mergeOptions","mergeTarget","globalOptions","enabled","binarySearchCustom","orderedItems","searchFunction","field","field2","maxIterations","iteration","low","high","middle","item","searchResult","binarySearchValue","sidePreference","prevValue","nextValue","easingFunctions","linear","easeInQuad","easeOutQuad","easeInOutQuad","easeInCubic","easeOutCubic","easeInOutCubic","easeInQuart","easeOutQuart","easeInOutQuart","easeInQuint","easeOutQuint","easeInOutQuint","global","utils_hooks__hooks","hookCallback","apply","setHookCallback","prototype","res","hasOwnProp","create_utc__createUTC","format","locale","strict","createLocalOrUTC","utc","defaultParsingFlags","empty","unusedTokens","unusedInput","overflow","charsLeftOver","nullInput","invalidMonth","invalidFormat","userInvalidated","iso","getParsingFlags","_pf","valid__isValid","_isValid","flags","_d","getTime","invalidWeekday","_strict","bigHour","valid__createInvalid","NaN","copyConfig","to","from","val","_isAMomentObject","_i","_f","_l","_tzm","_isUTC","_offset","_locale","momentProperties","Moment","config","updateInProgress","updateOffset","absFloor","number","ceil","toInt","argumentForCoercion","coercedNumber","isFinite","compareArrays","array1","array2","dontConvert","lengthDiff","abs","diffs","Locale","normalizeLocale","toLowerCase","chooseLocale","names","next","loadLocale","name","oldLocale","locales","globalLocale","_abbr","code","locale_locales__getSetGlobalLocale","values","data","locale_locales__getLocale","defineLocale","abbr","set","addUnitAlias","unit","shorthand","lowerCase","aliases","normalizeUnits","units","normalizeObjectUnits","inputObject","normalizedProp","normalizedInput","makeGetSet","keepTime","get_set__set","get_set__get","mom","getSet","zeroFill","targetLength","forceSign","absNumber","zerosToFill","sign","pow","addFormatToken","token","padded","ordinal","func","formatTokenFunctions","localeData","removeFormattingTokens","makeFormatFunction","formattingTokens","output","Function","formatMoment","isValid","expandFormat","formatFunctions","invalidDate","replaceLongDateFormatTokens","longDateFormat","localFormattingTokens","lastIndex","isFunction","sth","addRegexToken","regex","strictRegex","regexes","isStrict","getParseRegexForToken","RegExp","unescapeFormat","matched","p1","p2","p3","p4","addParseToken","tokens","addWeekParseToken","_w","addTimeToArrayFromToken","_a","daysInMonth","year","month","UTC","getUTCDate","localeMonths","_months","localeMonthsShort","_monthsShort","localeMonthsParse","monthName","_monthsParse","_longMonthsParse","_shortMonthsParse","months","monthsShort","setMonth","dayOfMonth","monthsParse","date","getSetMonth","getDaysInMonth","checkOverflow","MONTH","DATE","YEAR","HOUR","MINUTE","SECOND","MILLISECOND","_overflowDayOfYear","warn","msg","suppressDeprecationWarnings","console","deprecate","firstTime","deprecateSimple","deprecations","configFromISO","l","string","from_string__isoRegex","isoDates","isoTimes","matchOffset","configFromStringAndFormat","configFromString","aspNetJsonRegex","createFromInputFallback","createDate","y","M","ms","setFullYear","createUTCDate","setUTCFullYear","daysInYear","isLeapYear","getIsLeapYear","weekOfYear","firstDayOfWeek","firstDayOfWeekOfYear","adjustedMoment","end","daysToDayOfWeek","day","local__createLocal","add","week","dayOfYear","localeWeek","_week","dow","doy","localeFirstDayOfWeek","localeFirstDayOfYear","getSetWeek","getSetISOWeek","dayOfYearFromWeeks","weekday","week1Jan","janX","getUTCDay","getSetDayOfYear","round","clone","startOf","defaults","currentDateArray","now","_useUTC","getUTCFullYear","getUTCMonth","getFullYear","getMonth","getDate","configFromArray","currentDate","yearToUse","dayOfYearFromWeekInfo","_dayOfYear","_nextDay","setUTCMinutes","getUTCMinutes","w","weekYear","temp","GG","W","E","gg","ISO_8601","parsedInput","skipped","stringLength","totalParsedInputLength","meridiemFixWrap","_meridiem","hour","meridiem","isPm","meridiemHour","isPM","configFromStringAndArray","tempConfig","bestMoment","scoreToBeat","currentScore","score","configFromObject","minute","second","millisecond","createFromConfig","prepareConfig","preparse","configFromInput","isUTC","pickBy","moments","args","Duration","duration","years","quarters","quarter","weeks","days","hours","minutes","seconds","milliseconds","_milliseconds","_days","_data","_bubble","isDuration","offset","separator","utcOffset","offsetFromString","matches","chunk","chunkOffset","cloneWithOffset","model","diff","setTime","local","getDateOffset","getTimezoneOffset","getSetOffset","keepLocalTime","localAdjust","_changeInProgress","add_subtract__addSubtract","create__createDuration","getSetZone","setOffsetToUTC","setOffsetToLocal","subtract","setOffsetToParsedOffset","hasAlignedHourOffset","isDaylightSavingTime","isDaylightSavingTimeShifted","_isDSTShifted","isLocal","isUtcOffset","isUtc","ret","diffRes","aspNetRegex","create__isoRegex","parseIso","momentsDifference","inp","parseFloat","positiveMomentsDifference","base","isAfter","isBefore","createAdder","direction","period","dur","tmp","isAdding","moment_calendar__calendar","time","formats","sod","calendar","inputMs","endOf","isBetween","isSame","asFloat","delta","that","zoneDelta","monthDiff","anchor2","adjust","wholeMonthDiff","anchor","moment_format__toISOString","inputString","defaultFormat","postformat","withoutSuffix","humanize","fromNow","toNow","newLocaleData","isoWeekday","to_type__valueOf","unix","toObject","moment_valid__isValid","parsingFlags","invalidAt","addWeekYearFormatToken","getter","weeksInYear","getSetWeekYear","getSetISOWeekYear","getISOWeeksInYear","getWeeksInYear","weekInfo","getSetQuarter","parseWeekday","weekdaysParse","localeWeekdays","_weekdays","localeWeekdaysShort","_weekdaysShort","localeWeekdaysMin","_weekdaysMin","localeWeekdaysParse","weekdayName","_weekdaysParse","weekdays","weekdaysShort","weekdaysMin","getSetDayOfWeek","getDay","getSetLocaleDayOfWeek","getSetISODayOfWeek","lowercase","matchMeridiem","_meridiemParse","localeIsPM","charAt","localeMeridiem","isLower","parseMs","getZoneAbbr","getZoneName","moment__createUnix","moment__createInZone","parseZone","locale_calendar__calendar","_calendar","_longDateFormat","formatUpper","toUpperCase","_invalidDate","_ordinal","preParsePostFormat","relative__relativeTime","isFuture","_relativeTime","pastFuture","locale_set__set","_ordinalParseLenient","_ordinalParse","source","lists__get","setter","list","count","out","lists__listMonths","lists__listMonthsShort","lists__listWeekdays","lists__listWeekdaysShort","lists__listWeekdaysMin","duration_abs__abs","mathAbs","duration_add_subtract__addSubtract","duration_add_subtract__add","duration_add_subtract__subtract","absCeil","bubble","monthsFromDays","monthsToDays","daysToMonths","as","duration_as__valueOf","makeAs","alias","duration_get__get","makeGetter","substituteTimeAgo","relativeTime","duration_humanize__relativeTime","posNegDuration","thresholds","duration_humanize__getSetRelativeTimeThreshold","threshold","limit","withSuffix","iso_string__toISOString","iso_string__abs","Y","D","asSeconds","match1","match2","match3","match4","match6","match1to2","match1to3","match1to4","match1to6","matchUnsigned","matchSigned","matchTimestamp","matchWord","defaultLocaleMonths","defaultLocaleMonthsShort","parseTwoDigitYear","getSetYear","defaultLocaleWeek","prototypeMin","prototypeMax","add_subtract__add","add_subtract__subtract","lang","isoWeekYear","getSetDayOfMonth","defaultLocaleWeekdays","defaultLocaleWeekdaysShort","defaultLocaleWeekdaysMin","_isPm","defaultLocaleMeridiemParse","getSetHour","getSetMinute","getSetSecond","getSetMillisecond","momentPrototype__proto","get","toJSON","isoWeek","isoWeeks","isoWeeksInYear","isDST","isDSTShifted","zoneAbbr","zoneName","dates","zone","momentPrototype","defaultCalendar","sameDay","nextDay","nextWeek","lastDay","lastWeek","sameElse","defaultLongDateFormat","LTS","LT","L","LL","LLL","LLLL","defaultInvalidDate","defaultOrdinal","defaultOrdinalParse","defaultRelativeTime","future","past","mm","hh","dd","MM","yy","prototype__proto","firstDayOfYear","ordinalParse","langData","asMilliseconds","asMinutes","asHours","asDays","asWeeks","asMonths","asYears","duration_prototype__proto","toIsoString","version","invalid","relativeTimeThreshold","_moment","webpackPolyfill","paths","children","webpackContext","req","resolve","buf","ii","oct","_hexToByte","unparse","bth","_byteToHex","v1","clockseq","_clockseq","msecs","nsecs","_lastNSecs","dt","_lastMSecs","tl","tmh","node","_nodeId","n","rnds","random","rng","_rng","globalVar","crypto","getRandomValues","_rnds8","Uint8Array","_rnds","_seedBytes","prepareElements","JSONcontainer","elementType","redundant","used","cleanupElements","resetElements","getSVGElement","svgContainer","shift","document","createElementNS","appendChild","getDOMElement","DOMContainer","insertBefore","createElement","drawPoint","x","groupTemplate","labelObj","point","setAttributeNS","size","label","xOffset","yOffset","content","textContent","drawBar","width","height","rect","_options","_fieldId","fieldId","_type","_subscribers","setOptions","queue","_queue","destroy","on","subscribers","subscribe","off","filter","unsubscribe","_trigger","params","senderId","concat","subscriber","addedIds","me","_addItem","update","updatedIds","oldData","updatedData","addOrUpdate","oldItem","_updateItem","ids","firstType","returnType","allowedValues","itemIds","itemId","_getItem","order","_sort","_filterFields","resultant","getIds","getDataSet","mappedItems","filteredItem","itemFields","sort","av","bv","remove","removedId","removedIds","_remove","clear","maxField","itemField","minField","distinct","fieldType","exists","types","raw","converted","JSON","stringify","delay","Infinity","_timeout","_extended","_flushIfNeeded","flush","methods","original","method","context","entry","clearTimeout","_ids","_onEvent","setData","refresh","oldIds","newIds","added","removed","viewOptions","getArguments","defaultFilter","dataSet","updated","container","SyntaxError","containerElement","margin","defaultXCenter","defaultYCenter","xLabel","yLabel","zLabel","passValueFn","xValueLabel","yValueLabel","zValueLabel","filterLabel","legendLabel","STYLE","DOT","showPerspective","showGrid","keepAspectRatio","showShadow","showGrayBottom","showTooltip","verticalRatio","animationInterval","animationPreload","camera","setArmRotation","setArmLength","eye","dataTable","dataPoints","colX","colY","colZ","colValue","colFilter","xMin","xStep","xMax","yMin","yStep","yMax","zMin","zStep","zMax","valueMin","valueMax","xBarWidth","yBarWidth","axisColor","gridColor","dataColor","fill","stroke","strokeWidth","getMouseX","clientX","targetTouches","getMouseY","clientY","Emitter","_setScale","z","xCenter","yCenter","zCenter","setArmLocation","_convert3Dto2D","point3d","translation","_convertPointToTranslation","_convertTranslationToScreen","ax","ay","az","cx","getCameraLocation","cy","cz","sinTx","sin","getCameraRotation","cosTx","cos","sinTy","cosTy","sinTz","cosTz","dx","dy","dz","bx","by","ex","ey","ez","getArmLength","xcenter","frame","canvas","clientWidth","ycenter","_setBackgroundColor","backgroundColor","borderColor","borderWidth","borderStyle","BAR","BARCOLOR","BARSIZE","DOTLINE","DOTCOLOR","DOTSIZE","GRID","LINE","SURFACE","_getStyleNumber","styleName","_determineColumnIndexes","getNumberOfColumns","getNumberOfRows","counter","column","getDistinctValues","distinctValues","getColumnRange","minMax","_dataInitialize","rawData","_onChange","dataFilter","setOnLoadCallback","redraw","withBars","defaultXBarWidth","dataX","defaultYBarWidth","dataY","xRange","defaultXMin","defaultXMax","defaultXStep","yRange","defaultYMin","defaultYMax","defaultYStep","zRange","defaultZMin","defaultZMax","defaultZStep","valueRange","defaultValueMin","defaultValueMax","_getDataPoints","sortNumber","dataMatrix","xIndex","yIndex","trans","screen","bottom","pointRight","pointTop","pointCross","position","noCanvas","fontWeight","padding","innerHTML","onmousedown","_onMouseDown","ontouchstart","_onTouchStart","onmousewheel","_onWheel","ontooltip","_onTooltip","onkeydown","setSize","_resizeCanvas","clientHeight","animationStart","slider","play","animationStop","stop","_resizeCenter","setCameraPosition","pos","horizontal","vertical","distance","getCameraPosition","getArmRotation","_readData","_redrawFilter","animationAutoStart","cameraPosition","styleNumber","tooltip","showAnimationControls","_redrawSlider","_redrawClear","_redrawAxis","_redrawDataGrid","_redrawDataLine","_redrawDataBar","_redrawDataDot","_redrawInfo","_redrawLegend","ctx","getContext","clearRect","widthMin","widthMax","dotSize","right","lineWidth","font","ymin","ymax","_hsv2rgb","strokeStyle","beginPath","moveTo","lineTo","strokeRect","fillStyle","closePath","gridLineLen","step","start","getCurrent","textAlign","textBaseline","fillText","visible","setValues","setPlayInterval","onchange","getIndex","selectValue","setOnChangeCallback","lineStyle","getLabel","getSelectedValue","prettyStep","text","xText","yText","zText","xMin2d","xMax2d","gridLenX","gridLenY","textMargin","armAngle","H","S","V","R","G","B","C","Hi","X","cross","topSideVisible","zAvg","lineJoin","lineCap","transBottom","dist","sortDepth","aDiff","bDiff","crossproduct","crossProduct","_getStrokeWidth","radius","arc","PI","surface","corners","xWidth","yWidth","surfaces","center","avg","transCenter","leftButtonDown","_onMouseUp","which","button","touchDown","startMouseX","startMouseY","startStart","startEnd","startArmRotation","cursor","onmousemove","_onMouseMove","onmouseup","diffX","diffY","horizontalNew","verticalNew","snapAngle","snapValue","parameters","emit","boundingRect","mouseX","mouseY","tooltipTimeout","_hideTooltip","dataPoint","_dataPointFromXY","_showTooltip","ontouchmove","_onTouchMove","ontouchend","_onTouchEnd","wheelDelta","detail","oldLength","newLength","_insideTriangle","triangle","bs","cs","distMax","closestDataPoint","closestDist","triangle1","triangle2","distX","distY","sqrt","line","dot","dom","borderRadius","boxShadow","borderLeft","contentWidth","offsetWidth","contentHeight","offsetHeight","lineHeight","dotWidth","dotHeight","mixin","_callbacks","once","self","removeListener","removeAllListeners","callbacks","cb","listeners","hasListeners","sub","sum","armLocation","armRotation","armLength","cameraLocation","cameraRotation","calculateCameraOrientation","rot","graph","onLoadCallback","loadInBackground","isLoaded","getLoadedProgress","getColumn","getValues","getValue","dataView","progress","prev","bar","MozBorderRadius","slide","onclick","togglePlay","onChangeCallback","playTimeout","playInterval","playLoop","setIndex","playNext","interval","clearInterval","getPlayInterval","setPlayLoop","doLoop","onChange","indexToLeft","startClientX","startSlideX","leftToIndex","_start","_end","_step","precision","_current","setRange","setStep","calculatePrettyStep","log10","log","LN10","step1","step2","step5","toPrecision","getStep","groups","forthArgument","defaultOptions","autoResize","throttleRedraw","orientation","axis","maxHeight","minHeight","_create","body","domProps","emitter","bind","hiddenDates","getScale","timeAxis","toScreen","_toScreen","toGlobalScreen","_toGlobalScreen","toTime","_toTime","toGlobalTime","_toGlobalTime","range","timeAxis2","currentTime","itemSet","itemsData","groupsData","getEventProperties","oncontextmenu","setGroups","setItems","_redraw","Configurator","Validator","printStyle","configureOptions","_createConfigurator","markDirty","refreshItems","errorFound","validate","selection","getSelection","setSelection","newDataSet","initialLoad","getItemRange","setWindow","animation","fit","focus","itemData","_this","getDataRange","minItem","maxItem","factor","lhs","rhs","getStart","getEnd","show","getWidthLeft","getWidthRight","dataset","centerContainer","itemFromTarget","group","groupFromTarget","customTime","customTimeFromTarget","snap","snappedTime","what","foreground","labelSet","groupId","pageX","srcEvent","pageY","propagating","__WEBPACK_AMD_DEFINE_FACTORY__","__WEBPACK_AMD_DEFINE_ARRAY__","__WEBPACK_AMD_DEFINE_RESULT__","_firstTarget","hammer","events","propagatedHandler","_handled","stopped","stopPropagation","firstTarget","_handlers","Manager","PropagatingHammer","o","wrapper","pointerType","isFirst","handler","eventType","exportName","setTimeoutContext","bindFn","invokeArrayArg","arg","each","iterator","dest","src","merge","inherit","child","properties","childP","baseP","_super","boolOrFn","TYPE_FUNCTION","ifUndefined","val1","val2","addEventListeners","splitStr","removeEventListeners","inStr","str","find","inArray","findByKey","uniqueArray","results","prefixed","property","prefix","camelProp","VENDOR_PREFIXES","uniqueId","_uniqueId","getWindowForElement","doc","ownerDocument","defaultView","parentWindow","Input","manager","inputTarget","domHandler","ev","enable","init","createInputInstance","Type","inputClass","SUPPORT_POINTER_EVENTS","PointerEventInput","SUPPORT_ONLY_TOUCH","TouchInput","SUPPORT_TOUCH","TouchMouseInput","MouseInput","inputHandler","pointersLen","pointers","changedPointersLen","changedPointers","INPUT_START","isFinal","INPUT_END","INPUT_CANCEL","session","computeInputData","recognize","prevInput","pointersLength","firstInput","simpleCloneInputData","firstMultiple","offsetCenter","getCenter","timeStamp","deltaTime","angle","getAngle","getDistance","computeDeltaXY","offsetDirection","getDirection","deltaX","deltaY","rotation","getRotation","computeIntervalInputData","offsetDelta","prevDelta","velocity","velocityX","velocityY","last","lastInterval","COMPUTE_INTERVAL","getVelocity","DIRECTION_NONE","DIRECTION_LEFT","DIRECTION_RIGHT","DIRECTION_UP","DIRECTION_DOWN","PROPS_XY","atan2","PROPS_CLIENT_XY","evEl","MOUSE_ELEMENT_EVENTS","evWin","MOUSE_WINDOW_EVENTS","allow","pressed","POINTER_ELEMENT_EVENTS","POINTER_WINDOW_EVENTS","store","pointerEvents","SingleTouchInput","evTarget","SINGLE_TOUCH_TARGET_EVENTS","SINGLE_TOUCH_WINDOW_EVENTS","started","normalizeSingleTouches","all","touches","changed","changedTouches","TOUCH_TARGET_EVENTS","targetIds","getTouches","allTouches","INPUT_MOVE","identifier","changedTargetTouches","touch","mouse","TouchAction","cleanTouchActions","actions","TOUCH_ACTION_NONE","hasPanX","TOUCH_ACTION_PAN_X","hasPanY","TOUCH_ACTION_PAN_Y","TOUCH_ACTION_MANIPULATION","TOUCH_ACTION_AUTO","Recognizer","state","STATE_POSSIBLE","simultaneous","requireFail","stateStr","STATE_CANCELLED","STATE_ENDED","STATE_CHANGED","STATE_BEGAN","directionStr","getRecognizerByNameIfManager","otherRecognizer","recognizer","AttrRecognizer","PanRecognizer","pX","pY","PinchRecognizer","PressRecognizer","_timer","_input","RotateRecognizer","SwipeRecognizer","TapRecognizer","pTime","pCenter","recognizers","preset","handlers","touchAction","toggleCssProps","recognizeWith","requireFailure","cssProps","triggerDomEvent","gestureEvent","createEvent","initEvent","gesture","dispatchEvent","TEST_ELEMENT","MOBILE_REGEX","INPUT_TYPE_TOUCH","INPUT_TYPE_PEN","INPUT_TYPE_MOUSE","INPUT_TYPE_KINECT","DIRECTION_HORIZONTAL","DIRECTION_VERTICAL","DIRECTION_ALL","MOUSE_INPUT_MAP","mousedown","mousemove","mouseup","POINTER_INPUT_MAP","pointerdown","pointermove","pointerup","pointercancel","pointerout","IE10_POINTER_TYPE_ENUM",2,3,4,5,"MSPointerEvent","removePointer","eventTypeNormalized","isTouch","storeIndex","pointerId","SINGLE_TOUCH_INPUT_MAP","touchstart","touchmove","touchend","touchcancel","TOUCH_INPUT_MAP","inputEvent","inputData","isMouse","PREFIXED_TOUCH_ACTION","NATIVE_TOUCH_ACTION","TOUCH_ACTION_COMPUTE","compute","getTouchAction","preventDefaults","prevented","hasNone","preventSrc","STATE_RECOGNIZED","STATE_FAILED","dropRecognizeWith","dropRequireFailure","hasRequireFailures","canRecognizeWith","withState","tryEmit","canEmit","inputDataClone","process","reset","attrTest","optionPointers","isRecognized","directionTest","hasMoved","inOut","validPointers","validMovement","validTime","taps","posThreshold","validTouchTime","failTimeout","validInterval","validMultiTap","tapCount","VERSION","domEvents","userSelect","touchSelect","touchCallout","contentZooming","userDrag","tapHighlightColor","STOP","FORCED_STOP","force","curRecognizer","existing","Tap","Pan","Swipe","Pinch","Rotate","Press","__webpack_amd_options__","deltaDifference","scaleOffset","startToFront","endToFront","moveable","zoomable","zoomMin","zoomMax","animationTimer","_onDragStart","_onDrag","_onDragEnd","_onMouseWheel","_onTouch","_onPinch","validateDirection","getPointer","byUser","finalStart","finalEnd","_cancelAnimation","initStart","initEnd","easingName","easingFunction","initTime","anyChanged","dragging","ease","done","_applyRange","updateHiddenDates","newStart","newEnd","getRange","conversion","totalHidden","previousDelta","_isInsideRange","allowDragging","getHiddenDurationBetween","diffRange","safeStart","snapAwayFromHidden","safeEnd","zoomKey","pointer","pointerDate","_pointerToDate","zoom","centerDate","hiddenDuration","hiddenDurationBefore","getHiddenDurationBefore","hiddenDurationAfter","move","onTouch","isTouching","onRelease","isReleasing","offTouch","offRelease","_isResized","resized","_previousWidth","_previousHeight","convertHiddenOptions","repeat","dateItem","totalRange","pixelTime","startDate","endDate","runUntil","dayOffset","removeDuplicates","startHidden","isHidden","endHidden","rangeStart","rangeEnd","hidden","safeDates","printDates","stepOverHiddenDates","timeStep","previousTime","stepInHidden","currentValue","current","switchedYear","switchedMonth","switchedDay","correctTimeForHidden","totalDuration","partialDuration","accumulatedHiddenDuration","getAccumulatedHiddenDuration","newTime","timeOffset","requiredDuration","previousPoint","correctionEnabled","hammerUtil","Activator","onMouseWheel","isActive","backgroundVertical","backgroundHorizontal","leftContainer","rightContainer","shadowTop","shadowBottom","shadowTopLeft","shadowBottomLeft","shadowTopRight","shadowBottomRight","_redrawTimer","scrollTop","scrollTopMin","customTimes","redrawCount","drawPoints","onRender","clickToUse","activator","_initAutoResize","component","configurator","configure","appliedOptions","setModuleOptions","_origRedraw","active","_stopAutoResize","setCustomTime","getCustomTime","setCustomTimeTitle","title","setCustomTitle","addCustomTime","timestamp","some","removeCustomTime","getVisibleItems","getWindow","borderRootHeight","borderRootWidth","autoHeight","containerHeight","centerWidth","_updateScrollTop","visibilityTop","visibilityBottom","visibility","MAX_REDRAWS","repaint","setCurrentTime","getCurrentTime","_startAutoResize","_onResize","lastWidth","lastHeight","watchTimer","setInterval","initialScrollTop","oldScrollTop","_getScrollTop","newScrollTop","_setScrollTop","align","groupOrderSwap","fromGroup","toGroup","targetOrder","groupOrder","selectable","multiselect","itemsAlwaysDraggable","editable","updateTime","updateGroup","groupEditable","onAdd","onUpdate","onMove","onRemove","onMoving","onAddGroup","onMoveGroup","onRemoveGroup","itemOptions","itemListeners","_onAdd","_onUpdate","_onRemove","groupListeners","_onAddGroups","_onUpdateGroups","_onRemoveGroups","groupIds","stackDirty","touchParams","groupTouchParams","UNGROUPED","BACKGROUND","box","_updateUngrouped","backgroundGroup","_onSelectItem","_onMultiSelectItem","_onAddItem","groupHammer","_onGroupDragStart","_onGroupDrag","_onGroupDragEnd","addCallback","dirty","displayed","hide","unselect","select","rawVisibleItems","visibleItems","_deselect","_orderGroups","visibleInterval","zoomed","lastVisibleInterval","restack","firstGroup","_firstGroup","firstMargin","nonFirstMargin","groupMargin","groupResized","firstGroupIndex","firstGroupId","ungrouped","_getGroupId","getLabelSet","oldItemsData","getItems","_order","getGroups","removeItem","_getType","selected","_removeItem","groupData","groupOptions","oldGroupId","oldSubGroupId","subgroup","oldGroup","_constructByEndArray","endArray","dragLeftItem","dragRightItem","itemProps","_getGroupIndex","initialX","dragLeft","_cloneItemData","dragRight","selectedItem","baseGroupIndex","itemsToDrag","groupIndex","groupOffset","ctrlKey","metaKey","_onDragStartAddItem","xAbs","newItem","offsetLeft","updateGroupAllowed","newGroupBase","initial","updateTimeAllowed","initialStart","initialEnd","newOffset","_moveToGroup","originalOrder","movingUp","targetGroupTop","draggedGroupHeight","targetGroupHeight","targetGroup","draggedGroup","newOrder","origOrder","draggedId","numGroups","curPos","orgOffset","slippedPosition","switchGroup","shouldBeGroup","switchGroupId","shiftKey","oldSelection","newSelection","newItemData","itemGroup","lastSelectedGroup","multiselectPerGroup","_getItemRange","_item","itemSetFromTarget","minimumStep","autoScale","FORMAT","minorLabels","majorLabels","setMoment","setFormat","setMinimumStep","roundToMinor","hasNext","setScale","setAutoScale","stepYear","stepMonth","stepDay","stepHour","stepMinute","stepSecond","stepMillisecond","isMajor","getLabelMinor","getLabelMajor","getClassName","even","today","currentWeek","currentMonth","currentYear","subgroups","subgroupIndex","subgroupOrderer","subgroupOrder","byStart","byEnd","checkRangedItems","inner","marker","Element","getLabelWidth","markerHeight","lastMarkerHeight","_calculateSubGroupHeights","limitSize","repositionX","customOrderedItems","_updateVisibleItems","nostack","_calculateHeight","offsetTop","repositionY","resetSubgroups","setParent","orderSubgroups","_checkIfVisible","sortArray","sortField","itemIndex","removeFromDataSet","startArray","orderByStart","orderByEnd","oldVisibleItems","visibleItemsLookup","lowerBound","upperBound","_checkIfVisibleWithReference","initialPosByStart","_traceVisible","initialPosByEnd","initialPos","breakCondition","isVisible","EPSILON","aTime","bTime","iMax","collidingItem","jj","collision","newTop","baseClassName","_updateContents","_updateTitle","_updateDataAttributes","_updateStyle","getComputedStyle","maxWidth","_repaintDeleteButton","_repaintDragLeft","_repaintDragRight","contentLeft","parentWidth","boxWidth","groupChanged","deleteButton","template","_contentToString","removeAttribute","dataAttributes","attributes","setAttribute","outerHTML","itemSetHeight","marginLeft","onTop","itemSubgroup","totalHeight","newHeight","lines","majorTexts","minorTexts","lineTop","showMinorLabels","showMajorLabels","maxMinorChars","parentChanged","_calculateCharSize","minorLabelHeight","minorCharHeight","majorLabelHeight","majorCharHeight","minorLineHeight","minorLineWidth","majorLineHeight","majorLineWidth","foregroundNextSibling","nextSibling","backgroundNextSibling","_repaintLabels","timeLabelsize","minorCharWidth","xNext","nextIsMajor","prevWidth","labelMinor","xFirstMajorLabel","MAX","showMinorGrid","_repaintMinorText","_repaintMajorText","_repaintMajorLine","_repaintMinorLine","warnedForOverflow","leftTime","leftText","widthText","majorCharWidth","pop","createTextNode","childNodes","nodeValue","measureCharMinor","measureCharMajor","overlay","_onTapOverlay","onClick","_hasParent","deactivate","escListener","activate","display","unbind","_exportFunctions","_bound","keydown","keyup","_keys","fromCharCode","down","handleEvent","up","keyCode","bound","bindAll","getKey","newBindings","eventParams","drag","warned","substring","showCurrentTime","currentTimeTimer","_interopRequireDefault","__esModule","default","_classCallCheck","instance","Constructor","defineProperty","_createClass","defineProperties","descriptor","enumerable","configurable","writable","protoProps","staticProps","_ColorPicker","_ColorPicker2","parentModule","defaultContainer","pixelRatio","changedOptions","allowCreation","initialized","popupCounter","showButton","moduleOptions","domElements","popupDiv","popupLimit","popupHistory","colorPicker","_removePopup","_clean","_handleObject","_makeItem","_makeHeader","generateButton","_printOptions","onmouseover","onmouseout","optionsContainer","_push","insertTo","_showPopupIfNeeded","path","_arguments","_this2","_len","_key","_ret2","div","objectLabel","selectedValue","_update","_makeLabel","err","popupString","popupValue","oninput","_setupPopup","_this3","html","hideTimeout","deleteTimeout","_this4","correspondingElement","checkbox","checked","_this5","defaultColor","_showColorPicker","_this6","bodyRect","pickerX","pickerY","setColor","setCallback","colorString","checkOnly","visibleInSet","subObj","newPath","_getValue","_handleArray","_makeTextInput","_makeCheckbox","draw","physics","solver","enabledPath","enabledValue","error","_makeColorField","_makeDropdown","_makeRange","_constructOptions","optionsObj","getOptions","ColorPicker","generated","centerCoordinates","hueCircle","initialColor","previousColor","applied","updateCallback","_bindHammer","_setSize","htmlColors","black","navy","darkblue","mediumblue","darkgreen","teal","darkcyan","deepskyblue","darkturquoise","mediumspringgreen","lime","springgreen","aqua","cyan","midnightblue","dodgerblue","lightseagreen","forestgreen","seagreen","darkslategray","limegreen","mediumseagreen","turquoise","royalblue","steelblue","darkslateblue","mediumturquoise","indigo","darkolivegreen","cadetblue","cornflowerblue","mediumaquamarine","dimgray","slateblue","olivedrab","slategray","lightslategray","mediumslateblue","lawngreen","chartreuse","aquamarine","maroon","purple","olive","gray","skyblue","lightskyblue","blueviolet","darkred","darkmagenta","saddlebrown","darkseagreen","lightgreen","mediumpurple","darkviolet","palegreen","darkorchid","yellowgreen","sienna","brown","darkgray","lightblue","greenyellow","paleturquoise","lightsteelblue","powderblue","firebrick","darkgoldenrod","mediumorchid","rosybrown","darkkhaki","silver","mediumvioletred","indianred","peru","chocolate","tan","lightgrey","palevioletred","thistle","orchid","goldenrod","crimson","gainsboro","plum","burlywood","lightcyan","lavender","darksalmon","violet","palegoldenrod","lightcoral","khaki","aliceblue","honeydew","azure","sandybrown","wheat","beige","whitesmoke","mintcream","ghostwhite","salmon","antiquewhite","linen","lightgoldenrodyellow","oldlace","fuchsia","magenta","deeppink","orangered","tomato","hotpink","coral","darkorange","lightsalmon","orange","lightpink","pink","gold","peachpuff","navajowhite","moccasin","bisque","mistyrose","blanchedalmond","papayawhip","lavenderblush","seashell","cornsilk","lemonchiffon","floralwhite","snow","yellow","lightyellow","ivory","white","setInitial","htmlColor","_isColorString","rgbaArray","rgbObj","alpha","_setColor","_generateHueCircle","storePrevious","_hide","_updatePicker","alert","angleConvert","colorPickerSelector","colorPickerCanvas","pixelRation","devicePixelRatio","webkitBackingStorePixelRatio","mozBackingStorePixelRatio","msBackingStorePixelRatio","oBackingStorePixelRatio","backingStorePixelRatio","setTransform","putImageData","circle","brightnessRange","opacityRange","initialColorDiv","newColorDiv","colorPickerDiv","opacityDiv","brightnessDiv","arrowDiv","_setOpacity","_setBrightness","brightnessLabel","opacityLabel","cancelButton","applyButton","_apply","saveButton","_save","loadButton","_loadLast","pinch","_moveSelector","sat","hfac","sfac","fillRect","getImageData","centerY","centerX","newLeft","referenceOptions","subObject","usedOptions","check","__any__","getSuggestion","__type__","checkFields","referenceOption","refOptionObj","optionType","refOptionType","print","printLocation","localSearch","findInOptions","globalSearch","localSearchThreshold","globalSearchThreshold","indexMatch","closestMatch","recursive","closestMatchPath","lowerCaseOption","op","levenshteinDistance","matrix","boolean","any","function","null","groupsDraggable","linegraph","getLegend","isGroupVisible","yAxisLeft","yAxisRight","legendLeft","legendRight","screenToValue","yAxisOrientation","defaultGroup","sampling","graphHeight","shaded","barChart","sideBySide","interpolation","parametrization","dataAxis","icons","alignZeros","legend","abortedGraphUpdate","updateSVGheight","updateSVGheightOnResize","lastStart","svgElements","groupsUsingDefaultStyles","COUNTER","svg","framework","Bars","Lines","Points","_removeGroup","_updateAllGroupData","removeGroup","_updateGroup","addGroup","groupsContent","groupCounts","extended","orginalY","forceGraphUpdate","_updateGraph","rangePerPixelInv","_getSortedGroupIds","grouplist","zIndex","bz","groupRanges","changeCalled","minDate","maxDate","_getRelevantData","_applySampling","_convertXcoordinates","_getYRanges","_updateYAxis","MAX_CYCLES","below","excludeFromStacking","_stack","_convertYcoordinates","calcPath","subGroupId","drawShading","subData","subPrevPoint","subNextPoint","first","dataContainer","increment","amountOfPoints","xDistance","pointsPerPixel","sampledData","idx","combinedDataLeft","combinedDataRight","getYRange","getStackedYRange","minVal","maxVal","yAxisLeftUsed","yAxisRightUsed","minLeft","minRight","maxLeft","maxRight","ignore","_toggleAxisVisiblity","drawIcons","master","lineOffset","stepPixels","zeroCrossing","amountOfSteps","tempGroups","axisUsed","datapoints","screen_x","screen_y","svgHeight","convertValue","setZeroPosition","linegraphOptions","majorLinesOffset","minorLinesOffset","labelOffsetX","labelOffsetY","iconWidth","linegraphSVG","DOMelements","labels","conversionFactor","minWidth","iconsRemoved","amountOfGroups","lineContainer","graphOptions","_redrawGroupIcons","iconHeight","iconOffset","groupArray","_cleanupIcons","activeGroups","_redrawLabels","_redrawTitle","stepSize","marginRange","valueAtBottom","marginEnd","maxLabelSize","stepIndex","_redrawLabel","_redrawLine","titleWidth","titleCharHeight","invertedValue","convertedValue","characterHeight","largestWidth","textMinor","textMajor","textTitle","measureCharTitle","titleCharWidth","customRange","formattingFunction","marginStart","deadSpace","majorSteps","minorSteps","setFirst","safeRange","minimumStepValue","orderOfMagnitude","minorStepIdx","magnitudefactor","solutionFound","niceStart","niceEnd","rounded","previous","steps","usingDefaultStyle","zeroPosition","drawIcon","icon","Bargraph","fillHeight","outline","barWidth","originalWidth","bar1Height","bar2Height","processedGroupData","coreDistance","drawData","combinedData","intersections","barPoints","_getDataIntersections","heightOffset","_getSafeDrawData","nextKey","amount","resolved","prevKey","accumulatedNegative","accumulatedPositive","pointData","groupLabel","_getStackedYRange","xpos","getGroupTemplate","callbackResult","getCallback","Line","_catmullRom","_linear","fillPath","pathArray","subPathArray","dFill","zero","serializePath","inverse","_catmullRomUniform","p0","bp1","bp2","normalization","d1","d2","d3","A","N","d3powA","d2powA","d3pow2A","d2pow2A","d1pow2A","d1powA","side","iconSize","iconSpacing","excludeFromLegend","textArea","scrollableHeight","drawLegendIcons","paddingTop","nodes","nodeIndices","edges","edgeIndices","eventListeners","onTap","onDoubleTap","onHold","onDragStart","onDrag","onDragEnd","onPinch","onMouseMove","onContext","functions","createNode","createEdge","view","bindEventListeners","images","_modulesGroups2","_modulesCanvas2","selectionHandler","_modulesSelectionHandler2","interactionHandler","_modulesInteractionHandler2","_modulesView2","renderer","_modulesCanvasRenderer2","_modulesPhysicsEngine2","layoutEngine","_modulesLayoutEngine2","clustering","_modulesClustering2","manipulation","_modulesManipulationSystem2","nodesHandler","_modulesNodesHandler2","edgesHandler","_modulesEdgesHandler2","_modulesKamadaKawaiJs2","_modulesGroups","_modulesNodesHandler","_modulesEdgesHandler","_modulesPhysicsEngine","_modulesClustering","_modulesCanvasRenderer","_modulesCanvas","_modulesView","_modulesInteractionHandler","_modulesSelectionHandler","_modulesLayoutEngine","_modulesManipulationSystem","_sharedConfigurator","_sharedConfigurator2","_sharedValidator","_sharedValidator2","_optionsJs","_modulesKamadaKawaiJs","layout","interaction","networkOptions","_updateVisibleIndices","nodeId","edgeId","_updateValueRange","unselectAll","dotData","gephi","gephiData","valueTotal","setValueRange","canvasToDOM","DOMtoCanvas","findNode","isCluster","openCluster","cluster","getNodesInCluster","clusterByConnection","clusterByHubsize","clusterOutliers","getSeed","enableEditMode","disableEditMode","addNodeMode","editNode","editNodeMode","addEdgeMode","editEdgeMode","deleteSelected","getPositions","storePositions","moveNode","getBoundingBox","getConnectedNodes","objectId","getConnectedEdges","startSimulation","stopSimulation","stabilize","getSelectedNodes","getSelectedEdges","getNodeAt","getEdgeAt","edge","selectNodes","selectEdges","getViewPosition","releaseNode","getOptionsFromConfigurator","Groups","defaultIndex","groupsArray","defaultGroups","useDefaultGroups","optionFields","groupName","groupname","_componentsNode","_componentsNode2","_componentsSharedLabel","_componentsSharedLabel2","NodesHandler","nodesListeners","borderWidthSelected","brokenImage","fixed","face","strokeColor","image","labelHighlightBold","level","mass","scaling","maxVisible","drawThreshold","customScalingFunction","shadow","shape","shapeProperties","borderDashes","useImageSize","useBorderWithImage","parseOptions","updateShape","updateLabelModule","_reset","doNotEmit","oldNodesData","newNodes","positionInitially","changedData","dataChanged","constructorClass","clearPositions","dataArray","boundingBox","nodeList","nodeObj","toId","fromId","edgeList","_sharedLabel","_sharedLabel2","_nodesShapesBox","_nodesShapesBox2","_nodesShapesCircle","_nodesShapesCircle2","_nodesShapesCircularImage","_nodesShapesCircularImage2","_nodesShapesDatabase","_nodesShapesDatabase2","_nodesShapesDiamond","_nodesShapesDiamond2","_nodesShapesDot","_nodesShapesDot2","_nodesShapesEllipse","_nodesShapesEllipse2","_nodesShapesIcon","_nodesShapesIcon2","_nodesShapesImage","_nodesShapesImage2","_nodesShapesSquare","_nodesShapesSquare2","_nodesShapesStar","_nodesShapesStar2","_nodesShapesText","_nodesShapesText2","_nodesShapesTriangle","_nodesShapesTriangle2","_nodesShapesTriangleDown","_nodesShapesTriangleDown2","Node","imagelist","baseSize","baseFontSize","predefinedPosition","labelModule","currentShape","groupObj","imageObj","load","distanceToBorder","sizeDiff","fontDiff","updateBoundingBox","resize","parentOptions","newOptions","parsedColor","_slicedToArray","sliceIterator","_arr","_n","_e","_s","Symbol","Label","pointToSelf","fontOptions","yLine","nodeOptions","labelDirty","baseline","viewFontSize","calculateLabelSize","_drawBackground","_drawText","lineMargin","fontSize","_getColor2","_getColor","_getColor22","fontColor","_setAlignment2","_setAlignment","_setAlignment22","lineCount","strokeText","_processLabel","measureText","newOptionsArray","_inherits","subClass","superClass","setPrototypeOf","__proto__","_get","_x","_x2","_x3","_again","receiver","desc","getOwnPropertyDescriptor","getPrototypeOf","_utilNodeBase","_utilNodeBase2","Box","_NodeBase","textSize","getTextSize","selectionLineWidth","roundRect","enableShadow","disableShadow","save","enableBorderDashes","disableBorderDashes","restore","NodeBase","shadowColor","shadowBlur","shadowOffsetX","shadowOffsetY","setLineDash","dashes","_utilCircleImageBase","_utilCircleImageBase2","Circle","_CircleImageBase","diameter","_drawRawCircle","CircleImageBase","labelOffset","imageLoaded","ratio","networkScaleInv","globalAlpha","drawImage","labelDimensions","CircularImage","_swapToImageResizeWhenImageLoaded","_resizeImage","clip","_drawImageAtPosition","_drawImageLabel","_distanceToBorder","Database","database","_utilShapeBase","_utilShapeBase2","Diamond","_ShapeBase","_resizeShape","_drawShape","ShapeBase","sizeMultiplier","Dot","Ellipse","ellipse","Icon","_icon","iconTextSpacing","Image","Square","Star","Text","Triangle","TriangleDown","_componentsEdge","_componentsEdge2","EdgesHandler","edgesListeners","arrows","scaleFactor","hoverWidth","selectionWidth","selfReferenceSize","smooth","forceDirection","roundness","emitChange","edgeData","edgeOptions","reconnectEdges","markAllEdgesAsDirty","updateEdgeType","oldEdgesData","edgesData","oldEdge","disconnect","showInternalIds","connect","cleanup","edgeType","colorDirty","_edgesCubicBezierEdge","_edgesCubicBezierEdge2","_edgesBezierEdgeDynamic","_edgesBezierEdgeDynamic2","_edgesBezierEdgeStatic","_edgesBezierEdgeStatic2","_edgesStraightEdge","_edgesStraightEdge2","Edge","baseWidth","connected","_setInteractionWidths","changeInType","attachEdge","detachEdge","widthDiff","via","drawLine","drawArrows","drawLabel","viaNode","drawArrowHead","node1","node2","getPoint","translate","_rotateForLabelAlignment","_pointOnCircle","xFrom","yFrom","xTo","yTo","xObj","yObj","getDistanceToEdge","angleInDegrees","rotate","percentage","colorsDefined","_x4","_x5","_utilCubicBezierEdgeBase","_utilCubicBezierEdgeBase2","CubicBezierEdge","_CubicBezierEdgeBase","_getViaCoordinates2","_getViaCoordinates","_getViaCoordinates22","via1","via2","bezierCurveTo","x1","y1","x2","y2","nearNode","_findBorderPositionBezier","x3","y3","_ref","_ref2","_getDistanceToBezierEdge","_ref3","_ref32","vec","_BezierEdgeBase2","_BezierEdgeBase3","CubicBezierEdgeBase","_BezierEdgeBase","minDistance","lastX","lastY","_getDistanceToLine","_EdgeBase2","_EdgeBase3","BezierEdgeBase","_EdgeBase","distanceToPoint","difference","EdgeBase","getColor","getLineWidth","_drawDashedLine","_drawLine","_line","_getCircleData2","_getCircleData","_getCircleData22","_circle","pattern","lineDashOffset","_getCircleData3","_getCircleData32","dashedLine","_getCircleData4","_getCircleData42","_findBorderPosition","_findBorderPositionCircle","_getCircleData5","_getCircleData52","colorOptions","grd","createLinearGradient","fromColor","toColor","addColorStop","_getDistanceToEdge","_getCircleData6","_getCircleData62","px","py","something","u","arrowPos","guideOffset","findBorderPosition","guidePos","arrow","_angle","_getCircleData7","_getCircleData72","_length","_utilBezierEdgeBase","_utilBezierEdgeBase2","BezierEdgeDynamic","_boundFunction","positionBezierNode","physicsChange","setupSupportNode","parentEdgeId","quadraticCurveTo","_x6","BezierEdgeStatic","xVia","yVia","pi","originalAngle","myAngle","_utilEdgeBase","_utilEdgeBase2","StraightEdge","edgeSegmentLength","toBorderDist","toBorderPoint","borderPos","_componentsPhysicsBarnesHutSolver","_componentsPhysicsBarnesHutSolver2","_componentsPhysicsRepulsionSolver","_componentsPhysicsRepulsionSolver2","_componentsPhysicsHierarchicalRepulsionSolver","_componentsPhysicsHierarchicalRepulsionSolver2","_componentsPhysicsSpringSolver","_componentsPhysicsSpringSolver2","_componentsPhysicsHierarchicalSpringSolver","_componentsPhysicsHierarchicalSpringSolver2","_componentsPhysicsCentralGravitySolver","_componentsPhysicsCentralGravitySolver2","_componentsPhysicsFA2BasedRepulsionSolver","_componentsPhysicsFA2BasedRepulsionSolver2","_componentsPhysicsFA2BasedCentralGravitySolver","_componentsPhysicsFA2BasedCentralGravitySolver2","PhysicsEngine","physicsBody","physicsNodeIndices","physicsEdgeIndices","forces","velocities","physicsEnabled","simulationInterval","requiresTimeout","previousStates","referenceState","freezeCache","renderTimer","adaptiveTimestep","adaptiveTimestepEnabled","adaptiveCounter","adaptiveInterval","stabilized","startedStabilization","stabilizationIterations","ready","barnesHut","theta","gravitationalConstant","centralGravity","springLength","springConstant","damping","avoidOverlap","forceAtlas2Based","repulsion","nodeDistance","hierarchicalRepulsion","maxVelocity","minVelocity","stabilization","iterations","updateInterval","onlyDynamicEdges","timestep","layoutFailed","initPhysics","updatePhysicsData","nodesSolver","edgesSolver","gravitySolver","modelOptions","viewFunction","simulationStep","_emitStabilized","startTime","physicsTick","physicsTime","runDoubleSpeed","amountOfIterations","calculateForces","moveNodes","revert","_evaluateStepQuality","nodeIds","positions","vx","vy","dpos","reference","maxNodeVelocity","averageNodeVelocity","velocityAdaptiveThreshold","nodeVelocity","_performStep","totalVelocity","solve","targetIterations","_freezeNodes","_stabilizationBatch","_finalizeStabilization","_restoreFrozenNodes","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","totalFx","totalFy","correctionFx","correctionFy","CentralGravitySolver","_BarnesHutSolver2","_BarnesHutSolver3","ForceAtlas2BasedRepulsionSolver","_BarnesHutSolver","degree","_CentralGravitySolver2","_CentralGravitySolver3","ForceAtlas2BasedCentralGravitySolver","_CentralGravitySolver","_NetworkUtil","_NetworkUtil2","_componentsNodesCluster","_componentsNodesCluster2","ClusterEngine","clusteredNodes","hubsize","_getHubSize","_checkOptions","nodesToCluster","refreshData","joinCondition","childNodesObj","childEdgesObj","clonedOptions","_cloneOptions","hiddenByCluster","_cluster","edgeCount","clusters","usedNodes","relevantEdgeCount","gatheringSuccessful","childNodeId","_getConnectedId","clusterByEdgeCount","clusterNodeProperties","parentNodeId","parentClonedOptions","childClonedOptions","clusterEdgeProperties","childNode","otherNodeId","childKeys","createEdges","_edge","newEdge","clusteringEdgeReplacingId","processProperties","childNodesOptions","childEdgesOptions","clusterId","_getClusterPosition","clusterNode","containedNodes","containedEdges","_createClusterEdges","clusterNodeId","releaseFunction","clusterPosition","newPositions","edgesToBeDeleted","otherCluster","transferEdge","replacedEdge","nodesArray","average","averageSquared","hubCounter","largestHub","variance","standardDeviation","hubThreshold","NetworkUtil","allNodes","specificNodes","amountOfConnections","_Node2","_Node3","Cluster","_Node","requestAnimationFrame","mozRequestAnimationFrame","webkitRequestAnimationFrame","msRequestAnimationFrame","CanvasRenderer","redrawRequested","renderingActive","renderRequests","allowRedraw","hideEdgesOnDrag","hideNodesOnDrag","_determineBrowserMethod","_resizeNodes","_requestRedraw","_startRendering","cancelAnimationFrame","_renderStep","_drawEdges","_drawNodes","controlNodesActive","_drawControlNodes","alwaysShow","topLeft","bottomRight","viewableArea","isSelected","isBoundingBoxOverlappingWith","browserType","Canvas","resizeTimer","resizeFunction","cameraState","hammerFrame","_cleanUp","previousWidth","previousHeight","currentViewCenter","distanceFromCenter","tabIndex","_prepareValue","emitEvent","oldWidth","oldHeight","previousRation","_getCameraState","_setCameraState","_XconvertCanvasToDOM","_YconvertCanvasToDOM","_XconvertDOMtoCanvas","_YconvertDOMtoCanvas","View","animationSpeed","renderRefreshRate","animationEasingFunction","easingTime","sourceScale","targetScale","sourceTranslation","targetTranslation","lockedOnNodeId","lockedOnNodeOffset","touchTime","initialZoom","zoomLevel","positionDefined","_getRange","numberOfNodes","yDistance","xZoomLevel","yZoomLevel","_findCenter","animationOptions","nodePosition","lockedOnNode","animateView","locked","_transitionRedraw","viewCenter","_lockedRedraw","finished","_componentsNavigationHandler","_componentsNavigationHandler2","_componentsPopup","_componentsPopup2","InteractionHandler","navigationHandler","popup","popupObj","popupTimer","dragNodes","dragView","keyboard","speed","bindToWindow","navigationButtons","tooltipDelay","zoomView","pinched","checkSelectionChanges","_generateClickEvent","previouslySelectedEdgeCount","_getSelectedEdgeCount","previouslySelectedNodeCount","_getSelectedNodeCount","previousSelection","selectAdditionalOnPoint","selectOnPoint","selectedEdgesCount","selectedNodesCount","currentSelection","_determineIfDifferent2","_determineIfDifferent","nodesChanges","edgesChanges","nodeSelected","selectObject","selectionObj","xFixed","yFixed","scaleOld","preScaleDragPointer","scaleFrac","tx","ty","postScaleDragPointer","popupVisible","_checkHidePopup","setPosition","_checkShowPopup","hoverObject","pointerObj","previousPopupObjId","nodeUnderCursor","popupType","overlappingNodes","isOverlappingWith","getTitle","overlappingEdges","popupTargetType","popupTargetId","setText","_pointerToPositionObject","stillOnObj","overNode","NavigationHandler","iconsCreated","navigationHammers","boundFunctions","activated","configureKeyboardBindings","loadNavigationElements","cleanNavigation","navigationDOM","navigationDivs","navigationDivActions","_fit","bindToRedraw","_stopMovement","boundAction","unbindFromRedraw","Popup","doShow","SelectionHandler","hoverObj","selectConnectedEdges","hoverConnectedEdges","updateSelection","selectionChanged","deselectObject","emptySelection","DOM","highlightEdges","_selectConnectedEdges","_addToSelection","_removeFromSelection","canvasPos","returnNode","positionObject","_getAllNodesOverlappingWith","_getEdgesOverlappingWith","returnEdge","_getAllEdgesOverlappingWith","_unselectConnectedEdges","clusterSize","_addToHover","hoverChanged","blurObject","_hoverConnectedEdges","edgeIds","idArray","RangeError","LayoutEngine","initialRandomSeed","optionsBackup","improvedLayout","hierarchical","levelSeparation","sortMethod","lastNodeOnLevel","hierarchicalParents","hierarchicalChildren","setupHierarchicalLayout","layoutNetwork","prevHierarchicalState","adaptAllOptionsForHierarchicalLayout","MAX_LEVELS","clusterThreshold","startLength","before","clusterBridges","after","_declusterAll","info","kamadaKawai","_shiftToCenter","_getRangeCore","clustersPresent","definedLevel","undefinedLevel","hierarchicalLevels","nodeSpacing","_determineLevelsByHubsize","_determineLevelsDirected","_determineLevelsCustomCallback","distribution","_getDistribution","_generateMap","_placeNodesByHierarchy","_condenseHierarchy","positionedNodes","nodeArray","_indexArrayToNodes","_sortNodeArray","_setPositionForHierarchy","_placeBranchNodes","hubSize","levelDownstream","nodeA","nodeB","_crawlNetwork","minLevel","customCallback","levelByDirection","levelA","_setMinLevelToZero","fillInRelations","parents","startingNodeId","crawler","parentId","parentLevel","childNodeLevel","_getPositionForHierarchy","previousPos","sharedParent","_findCommonParent","_shiftBlock","withChild","minPos","maxPos","childA","childB","iterateParents","_parent","findParent","_parent2","foundParent","ManipulationSystem","editMode","manipulationDiv","editModeDiv","closeDiv","manipulationHammers","temporaryUIFunctions","temporaryEventFunctions","temporaryIds","guiEnabled","inMode","selectedControlNode","initiallyActive","addNode","addEdge","editEdge","deleteNode","deleteEdge","controlNodeStyle","_restore","_setup","showManipulatorToolbar","_createEditButton","manipulationDOM","selectedNodeCount","selectedEdgeCount","selectedTotalCount","needSeperator","_createAddNodeButton","_createSeperator","_createAddEdgeButton","_createEditNodeButton","_createEditEdgeButton","_createDeleteButton","_bindHammerToDiv","toggleEditMode","_temporaryBindEvent","_createBackButton","_createDescription","_performAddNode","_getSelectedNode","finalizedData","_temporaryBindUI","_handleConnect","_finishConnect","_dragControlNode","edgeBeingEditedId","controlNodeFrom","_getNewTargetNode","controlNodeTo","_controlNodeTouch","_controlNodeDragStart","_controlNodeDrag","_controlNodeDragEnd","findBorderPositions","selectedNodes","selectedEdges","deleteFunction","_createWrappers","_removeManipulationDOM","_createButton","_cleanManipulatorHammers","_cleanupTemporaryNodesAndEdges","_unbindTemporaryUIs","_unbindTemporaryEvents","labelClassName","newFunction","boundFunction","UIfunctionName","functionName","eventName","domElement","indexTempEdge","indexTempNode","lastTouch","fromSelect","toSelect","overlappingNodeIds","_performEditEdge","targetNode","connectionEdge","connectFromId","_performAddEdge","clickData","defaultData","sourceNodeId","targetNodeId","_this7","_componentsAlgorithmsFloydWarshallJs","_componentsAlgorithmsFloydWarshallJs2","KamadaKawai","edgeStrength","distanceSolver","edgesArray","ignoreClusters","D_matrix","getDistances","_createL_matrix","_createK_matrix","innerThreshold","maxInnerIterations","maxEnergy","highE_nodeId","dE_dx","dE_dy","delta_m","subIterations","_getHighestEnergyNode2","_getHighestEnergyNode","_getHighestEnergyNode22","_moveNode","_getEnergy2","_getEnergy","_getEnergy22","maxEnergyNodeId","dE_dx_max","dE_dy_max","nodeIdx","_getEnergy3","_getEnergy32","x_m","y_m","iIdx","x_i","y_i","denominator","K_matrix","L_matrix","d2E_dx2","d2E_dxdy","d2E_dy2","FloydWarshall","CanvasRenderingContext2D","square","s2","ir","triangleDown","star","diamond","r2d","kappa","ox","oy","xe","ye","xm","ym","wEllipse","hEllipse","ymb","yeb","xt","yt","xi","yi","xl","yl","xr","yr","patternLength","slope","distRemaining","patternIndex","dashLength","parseDOT","parseGraph","nextPreview","isAlphaNumeric","regexAlphaNumeric","setValue","graphs","attr","getToken","tokenType","TOKENTYPE","NULL","isComment","DELIMITER","c2","DELIMITERS","IDENTIFIER","newSyntaxError","UNKNOWN","chop","parseStatements","parseStatement","subgraph","parseSubgraph","parseEdge","parseAttributeStatement","parseNodeStatement","subgraphs","parseAttributeList","message","maxLength","forEach2","elem1","elem2","setProp","convertAttr","mapping","visProp","visPropI","graphData","dotNode","graphNode","NODE_ATTR_MAPPING","convertEdge","dotEdge","graphEdge","EDGE_ATTR_MAPPING","subEdge","fontsize","fontcolor","labelfontcolor","fontname","fillcolor","labeltooltip","{","}","[","]",";","=",",","->","--","gephiJSON","inheritColor","gEdges","gNodes","gEdge","gNode","imageBroken","url","imageToCache","brokenUrl","imageToLoadBrokenUrlOn","onerror","_addImageToCache","imageToRedrawWith","cachedImage","img","onload","_redrawWithImage","_tryloadBrokenUrl","edit","del","back","addDescription","edgeDescription","editEdgeDescription","createEdgeError","deleteClusterError","editClusterError"],"mappings":"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,aAC3IC,OAAQ,UAAWD,WAAY,UAAWE,WAAaD,OAAQ,UAAWD,WAAY,WAAaG,OAASF,OAAQ,UAAWD,WAAY,aAC3IC,OAAQ,UAAWD,WAAY,UAAWE,WAAaD,OAAQ,UAAWD,WAAY,WAAaG,OAASF,OAAQ,UAAWD,WAAY,aAC3IC,OAAQ,UAAWD,WAAY,UAAWE,WAAaD,OAAQ,UAAWD,WAAY,WAAaG,OAASF,OAAQ,UAAWD,WAAY,aAC3IC,OAAQ,UAAWD,WAAY,UAAWE,WAAaD,OAAQ,UAAWD,WAAY,WAAaG,OAASF,OAAQ,UAAWD,WAAY,aAC3IC,OAAQ,UAAWD,WAAY,UAAWE,WAAaD,OAAQ,UAAWD,WAAY,WAAaG,OAASF,OAAQ,UAAWD,WAAY,aAC3IC,OAAQ,UAAWD,WAAY,UAAWE,WAAaD,OAAQ,UAAWD,WAAY,WAAaG,OAASF,OAAQ,UAAWD,WAAY,aAE3IC,OAAQ,UAAWD,WAAY,UAAWE,WAAaD,OAAQ,UAAWD,WAAY,WAAaG,OAASF,OAAQ,UAAWD,WAAY,aAE3IC,OAAQ,UAAWD,WAAY,UAAWE,WAAaD,OAAQ,UAAWD,WAAY,WAAaG,OAASF,OAAQ,UAAWD,WAAY,aAC3IC,OAAQ,UAAWD,WAAY,UAAWE,WAAaD,OAAQ,UAAWD,WAAY,WAAaG,OAASF,OAAQ,UAAWD,WAAY,aAC3IC,OAAQ,UAAWD,WAAY,UAAWE,WAAaD,OAAQ,UAAWD,WAAY,WAAaG,OAASF,OAAQ,UAAWD,WAAY,aAC3IC,OAAQ,UAAWD,WAAY,UAAWE,WAAaD,OAAQ,UAAWD,WAAY,WAAaG,OAASF,OAAQ,UAAWD,WAAY,aAC3IC,OAAQ,UAAWD,WAAY,UAAWE,WAAaD,OAAQ,UAAWD,WAAY,WAAaG,OAASF,OAAQ,UAAWD,WAAY,aAC3IC,OAAQ,UAAWD,WAAY,UAAWE,WAAaD,OAAQ,UAAWD,WAAY,WAAaG,OAASF,OAAQ,UAAWD,WAAY,aAC3IC,OAAQ,UAAWD,WAAY,UAAWE,WAAaD,OAAQ,UAAWD,WAAY,WAAaG,OAASF,OAAQ,UAAWD,WAAY,aAC3IC,OAAQ,UAAWD,WAAY,UAAWE,WAAaD,OAAQ,UAAWD,WAAY,WAAaG,OAASF,OAAQ,UAAWD,WAAY,aAE3IC,OAAQ,UAAWD,WAAY,UAAWE,WAAaD,OAAQ,UAAWD,WAAY,WAAaG,OAASF,OAAQ,UAAWD,WAAY,aAG7IjO,KAAK6D,WACL7D,KAAKw7C,gBACHwhD,kBAAkB,GAEpBr8F,EAAKgG,OAAO3G,KAAK6D,QAAS7D,KAAKw7C,gBA6EjC,MA1EAw3B,GAAa4pB,IACXjzF,IAAK,aACL5E,MAAO,SAAoBlB,GACzB,GAAIo5F,IAAgB,mBAEpB,IAAgB12F,SAAZ1C,EACF,IAAK,GAAIq5F,KAAar5F,GACpB,GAAIA,EAAQmC,eAAek3F,IACe,KAApCD,EAAa11F,QAAQ21F,GAAmB,CAC1C,GAAIr9C,GAAQh8C,EAAQq5F,EACpBl9F,MAAK0gB,IAAIw8E,EAAWr9C,OAW9Bl2C,IAAK,QACL5E,MAAO,WACL/E,KAAKs7C,UACLt7C,KAAK88F,kBAUPnzF,IAAK,MACL5E,MAAO,SAAao4F,GAClB,GAAIt9C,GAAQ7/C,KAAKs7C,OAAO6hD,EACxB,IAAc52F,SAAVs5C,EACF,GAAI7/C,KAAK6D,QAAQm5F,oBAAqB,GAASh9F,KAAK88F,YAAYx2F,OAAS,EAAG,CAE1E,GAAI8C,GAAQpJ,KAAKwkE,WAAaxkE,KAAK88F,YAAYx2F,MAC/CtG,MAAKwkE,aACL3kB,KACAA,EAAMpzC,MAAQzM,KAAKs7C,OAAOt7C,KAAK88F,YAAY1zF,IAC3CpJ,KAAKs7C,OAAO6hD,GAAat9C,MACpB,CAEL,GAAIz2C,GAAQpJ,KAAK68F,aAAe78F,KAAK+8F,cAAcz2F,MACnDtG,MAAK68F,eACLh9C,KACAA,EAAMpzC,MAAQzM,KAAK+8F,cAAc3zF,GACjCpJ,KAAKs7C,OAAO6hD,GAAat9C,EAI7B,MAAOA,MAWTl2C,IAAK,MACL5E,MAAO,SAAam4F,EAAWpuF,GAG7B,MAFA9O,MAAKs7C,OAAO4hD,GAAapuF,EACzB9O,KAAK88F,YAAYt1F,KAAK01F,GACfpuF,MAIJ8tF,IAGTh9F,GAAQ,WAAag9F,EACrB/8F,EAAOD,QAAUA,EAAQ,YAIrB,SAASC,EAAQD,EAASM,GAU9B,QAASuyE,GAAuB3sE,GAAO,MAAOA,IAAOA,EAAI4sE,WAAa5sE,GAAQ6sE,UAAW7sE,GAEzF,QAAS8sE,GAAgBC,EAAUC,GAAe,KAAMD,YAAoBC,IAAgB,KAAM,IAAI5rE,WAAU,qCARhHE,OAAO2rE,eAAenzE,EAAS,cAC7BmF,OAAO,GAGT,IAAIiuE,GAAe,WAAe,QAASC,GAAiB/nE,EAAQrE,GAAS,IAAK,GAAIJ,GAAI,EAAGA,EAAII,EAAMP,OAAQG,IAAK,CAAE,GAAIysE,GAAarsE,EAAMJ,EAAIysE,GAAWC,WAAaD,EAAWC,aAAc,EAAOD,EAAWE,cAAe,EAAU,SAAWF,KAAYA,EAAWG,UAAW,GAAMjsE,OAAO2rE,eAAe7nE,EAAQgoE,EAAWvpE,IAAKupE,IAAiB,MAAO,UAAUJ,EAAaQ,EAAYC,GAAiJ,MAA9HD,IAAYL,EAAiBH,EAAY7/D,UAAWqgE,GAAiBC,GAAaN,EAAiBH,EAAaS,GAAqBT,MAM7hBsqB,EAAkBl9F,EAAoB,IAEtCm9F,EAAmB5qB,EAAuB2qB,GAE1CE,EAAyBp9F,EAAoB,IAE7Cq9F,EAA0B9qB,EAAuB6qB,GAEjD38F,EAAOT,EAAoB,GAC3BW,EAAUX,EAAoB,GAC9BY,EAAWZ,EAAoB,IAE/Bs9F,EAAe,WACjB,QAASA,GAAaxhD,EAAMg7C,EAAQ17C,EAAQq8C,GAC1C,GAAI74C,GAAQ9+C,IAEZ4yE,GAAgB5yE,KAAMw9F,GAEtBx9F,KAAKg8C,KAAOA,EACZh8C,KAAKg3F,OAASA,EACdh3F,KAAKs7C,OAASA,EACdt7C,KAAK23F,aAAeA,EAGpB33F,KAAKg8C,KAAK26C,UAAUC,WAAa52F,KAAKoQ,OAAO+rC,KAAKn8C,MAElDA,KAAKy9F,gBACH/8E,IAAK,SAAa5V,EAAOyxB,GACvBuiB,EAAMp+B,IAAI6b,EAAOr6B,QAEnB46B,OAAQ,SAAgBhyB,EAAOyxB,GAC7BuiB,EAAMhiB,OAAOP,EAAOr6B,MAAOq6B,EAAOxkB,OAEpCymB,OAAQ,SAAgB1zB,EAAOyxB,GAC7BuiB,EAAMtgB,OAAOjC,EAAOr6B,SAIxBlC,KAAK6D,WACL7D,KAAKw7C,gBACH7T,YAAa,EACb+1D,oBAAqB,EACrBC,YAAap3F,OACbkG,OACEyB,OAAQ,UACRD,WAAY,UACZE,WACED,OAAQ,UACRD,WAAY,WAEdG,OACEF,OAAQ,UACRD,WAAY,YAGhB2vF,OACEpjE,GAAG,EACH/a,GAAG,GAELmvB,MACEniC,MAAO,UACPouB,KAAM,GACNgjE,KAAM,QACN5vF,WAAY,OACZu2B,YAAa,EACbs5D,YAAa,UACbx/B,MAAO,cAETze,MAAOt5C,OACPsyD,QAAQ,EACRg5B,MACEgM,KAAM,cACNjmF,KAAMrR,OACNs0B,KAAM,GACNpuB,MAAO,WAETsxF,MAAOx3F,OACPu0B,MAAOv0B,OACPy3F,oBAAoB,EACpBC,MAAO13F,OACP23F,KAAM,EACNlmB,SAAS,EACTmmB,SACEv5F,IAAK,GACLC,IAAK,GACLi2B,OACEjqB,SAAS,EACTjM,IAAK,GACLC,IAAK,GACLu5F,WAAY,GACZC,cAAe,GAEjBC,sBAAuB,SAA+B15F,EAAKC,EAAKC,EAAOC,GACrE,GAAIF,IAAQD,EACV,MAAO,EAEP,IAAII,GAAQ,GAAKH,EAAMD,EACvB,OAAOK,MAAKJ,IAAI,GAAIE,EAAQH,GAAOI,KAIzCu5F,QACE1tF,SAAS,EACTgqB,KAAM,GACNL,EAAG,EACH/a,EAAG,GAEL++E,MAAO,UACPC,iBACEC,cAAc,EACdjoD,aAAc,EACdkoD,cAAc,EACdC,oBAAoB,GAEtB/jE,KAAM,GACNyhC,MAAO/1D,OACPxB,MAAOwB,OACPi0B,EAAGj0B,OACHkZ,EAAGlZ,QAEL5F,EAAKgG,OAAO3G,KAAK6D,QAAS7D,KAAKw7C,gBAE/Bx7C,KAAK+2F,qBA8WP,MA3WA/jB,GAAawqB,IACX7zF,IAAK,qBACL5E,MAAO,WACL,GAAIwwE,GAASv1E,IAGbA,MAAKg8C,KAAKE,QAAQlgB,GAAG,eAAgBh8B,KAAKugC,QAAQ4b,KAAKn8C,OACvDA,KAAKg8C,KAAKE,QAAQlgB,GAAG,UAAWh8B,KAAKugC,QAAQ4b,KAAKn8C,OAClDA,KAAKg8C,KAAKE,QAAQlgB,GAAG,UAAW,iBACvBu5C,GAAOv5B,KAAK26C,UAAUC,iBACtBrhB,GAAOkoB,eAAe/8E,UACtB60D,GAAOkoB,eAAe3gE,aACtBy4C,GAAOkoB,eAAej/D,aACtB+2C,GAAOkoB,oBAIlB9zF,IAAK,aACL5E,MAAO,SAAoBlB,GACzB,GAAgB0C,SAAZ1C,EAAuB,CAIzB,GAHAw5F,EAAiB,WAAWwB,aAAa7+F,KAAK6D,QAASA,GAGjC0C,SAAlB1C,EAAQ26F,MACV,IAAK,GAAI5E,KAAU55F,MAAKg8C,KAAK65C,MACvB71F,KAAKg8C,KAAK65C,MAAM7vF,eAAe4zF,IACjC55F,KAAKg8C,KAAK65C,MAAM+D,GAAQkF,aAM9B,IAAqBv4F,SAAjB1C,EAAQ+qC,KAAoB,CAC9B2uD,EAAwB,WAAWsB,aAAa7+F,KAAK6D,QAAQ+qC,KAAM/qC,EACnE,KAAK,GAAI+1F,KAAU55F,MAAKg8C,KAAK65C,MACvB71F,KAAKg8C,KAAK65C,MAAM7vF,eAAe4zF,KACjC55F,KAAKg8C,KAAK65C,MAAM+D,GAAQmF,oBACxB/+F,KAAKg8C,KAAK65C,MAAM+D,GAAQoF,UAM9B,GAAqBz4F,SAAjB1C,EAAQg3B,KACV,IAAK,GAAI++D,KAAU55F,MAAKg8C,KAAK65C,MACvB71F,KAAKg8C,KAAK65C,MAAM7vF,eAAe4zF,IACjC55F,KAAKg8C,KAAK65C,MAAM+D,GAAQoF,UAMPz4F,SAAnB1C,EAAQg1D,QAA4CtyD,SAApB1C,EAAQm0E,UAC1Ch4E,KAAKg8C,KAAKE,QAAQzH,KAAK,oBAW7B9qC,IAAK,UACL5E,MAAO,SAAiB8wF,GACtB,GAAIxf,GAASr2E,KAETi/F,EAAY54F,UAAUC,QAAU,GAAsBC,SAAjBF,UAAU,IAAmB,EAAQA,UAAU,GAEpF64F,EAAel/F,KAAKg8C,KAAKjkC,KAAK89E,KAElC,IAAIA,YAAiBh1F,IAAWg1F,YAAiB/0F,GAC/Cd,KAAKg8C,KAAKjkC,KAAK89E,MAAQA,MAClB,IAAI/uF,MAAMC,QAAQ8uF,GACvB71F,KAAKg8C,KAAKjkC,KAAK89E,MAAQ,GAAIh1F,GAC3Bb,KAAKg8C,KAAKjkC,KAAK89E,MAAMn1E,IAAIm1E,OACpB,CAAA,GAAKA,EAGV,KAAM,IAAI3uF,WAAU,4BAFpBlH,MAAKg8C,KAAKjkC,KAAK89E,MAAQ,GAAIh1F,GAKzBq+F,GAEFv+F,EAAK2I,QAAQtJ,KAAKy9F,eAAgB,SAAUl0F,EAAUuB,GACpDo0F,EAAa/iE,IAAIrxB,EAAOvB,KAK5BvJ,KAAKg8C,KAAK65C,SAEN71F,KAAKg8C,KAAKjkC,KAAK89E,QACjB,WAEE,GAAIj5D,GAAKy5C,CACT11E,GAAK2I,QAAQ+sE,EAAOonB,eAAgB,SAAUl0F,EAAUuB,GACtD8xB,EAAGof,KAAKjkC,KAAK89E,MAAM75D,GAAGlxB,EAAOvB,IAI/B,IAAI8zB,GAAMg5C,EAAOr6B,KAAKjkC,KAAK89E,MAAM73D,QACjCq4C,GAAO31D,IAAI2c,GAAK,MAIhB4hE,KAAc,GAChBj/F,KAAKg8C,KAAKE,QAAQzH,KAAK,mBAU3B9qC,IAAK,MACL5E,MAAO,SAAas4B,GAKlB,IAAK,GAJD4hE,GAAY54F,UAAUC,QAAU,GAAsBC,SAAjBF,UAAU,IAAmB,EAAQA,UAAU,GAEpFhG,EAAKkG,OACL44F,KACK14F,EAAI,EAAGA,EAAI42B,EAAI/2B,OAAQG,IAAK,CACnCpG,EAAKg9B,EAAI52B,EACT,IAAIk8C,GAAa3iD,KAAKg8C,KAAKjkC,KAAK89E,MAAMliE,IAAItzB,GACtCm4B,EAAOx4B,KAAKoQ,OAAOuyC,EACvBw8C,GAAS33F,KAAKgxB,GACdx4B,KAAKg8C,KAAK65C,MAAMx1F,GAAMm4B,EAGxBx4B,KAAK23F,aAAayH,kBAAkBD,GAEhCF,KAAc,GAChBj/F,KAAKg8C,KAAKE,QAAQzH,KAAK,mBAU3B9qC,IAAK,SACL5E,MAAO,SAAgBs4B,EAAKgiE,GAG1B,IAAK,GAFDxJ,GAAQ71F,KAAKg8C,KAAK65C,MAClByJ,GAAc,EACT74F,EAAI,EAAGA,EAAI42B,EAAI/2B,OAAQG,IAAK,CACnC,GAAIpG,GAAKg9B,EAAI52B,GACT+xB,EAAOq9D,EAAMx1F,GACb0X,EAAOsnF,EAAY54F,EACVF,UAATiyB,EAEF8mE,EAAc9mE,EAAKoD,WAAW7jB,IAE9BunF,GAAc,EAEd9mE,EAAOx4B,KAAKoQ,OAAO2H,GACnB89E,EAAMx1F,GAAMm4B,GAGZ8mE,KAAgB,EAClBt/F,KAAKg8C,KAAKE,QAAQzH,KAAK,gBAEvBz0C,KAAKg8C,KAAKE,QAAQzH,KAAK,mBAU3B9qC,IAAK,SACL5E,MAAO,SAAgBs4B,GAGrB,IAAK,GAFDw4D,GAAQ71F,KAAKg8C,KAAK65C,MAEbpvF,EAAI,EAAGA,EAAI42B,EAAI/2B,OAAQG,IAAK,CACnC,GAAIpG,GAAKg9B,EAAI52B,SACNovF,GAAMx1F,GAGfL,KAAKg8C,KAAKE,QAAQzH,KAAK,mBASzB9qC,IAAK,SACL5E,MAAO,SAAgB49C,GACrB,GAAI48C,GAAmBl5F,UAAUC,QAAU,GAAsBC,SAAjBF,UAAU,GAAmBg3F,EAAiB,WAAah3F,UAAU,EAErH,OAAO,IAAIk5F,GAAiB58C,EAAY3iD,KAAKg8C,KAAMh8C,KAAKg3F,OAAQh3F,KAAKs7C,OAAQt7C,KAAK6D,YAGpF8F,IAAK,UACL5E,MAAO,WACL,GAAIy6F,GAAiBn5F,UAAUC,QAAU,GAAsBC,SAAjBF,UAAU,IAAmB,EAAQA,UAAU,GAEzFwvF,EAAQ71F,KAAKg8C,KAAK65C,KACtB,KAAK,GAAI+D,KAAU/D,GAAO,CACxB,GAAIr9D,GAAOjyB,MACPsvF,GAAM7vF,eAAe4zF,KACvBphE,EAAOq9D,EAAM+D,GAEf,IAAI7hF,GAAO/X,KAAKg8C,KAAKjkC,KAAK89E,MAAM5vE,MAAM2zE,EACzBrzF,UAATiyB,GAA+BjyB,SAATwR,IACpBynF,KAAmB,GACrBhnE,EAAKoD,YAAapB,EAAG,KAAM/a,EAAG,OAEhC+Y,EAAKoD,YAAagiE,OAAO,IACzBplE,EAAKoD,WAAW7jB,QAWtBpO,IAAK,eACL5E,MAAO,SAAsBs4B,GAC3B,GAAIoiE,KACJ,IAAYl5F,SAAR82B,GACF,GAAIv2B,MAAMC,QAAQs2B,MAAS,GACzB,IAAK,GAAI52B,GAAI,EAAGA,EAAI42B,EAAI/2B,OAAQG,IAC9B,GAAgCF,SAA5BvG,KAAKg8C,KAAK65C,MAAMx4D,EAAI52B,IAAmB,CACzC,GAAI+xB,GAAOx4B,KAAKg8C,KAAK65C,MAAMx4D,EAAI52B,GAC/Bg5F,GAAUpiE,EAAI52B,KAAQ+zB,EAAGv1B,KAAK0c,MAAM6W,EAAKgC,GAAI/a,EAAGxa,KAAK0c,MAAM6W,EAAK/Y,SAIpE,IAA6BlZ,SAAzBvG,KAAKg8C,KAAK65C,MAAMx4D,GAAoB,CACtC,GAAI7E,GAAOx4B,KAAKg8C,KAAK65C,MAAMx4D,EAC3BoiE,GAAUpiE,IAAS7C,EAAGv1B,KAAK0c,MAAM6W,EAAKgC,GAAI/a,EAAGxa,KAAK0c,MAAM6W,EAAK/Y,SAIjE,KAAK,GAAIhZ,GAAI,EAAGA,EAAIzG,KAAKg8C,KAAK85C,YAAYxvF,OAAQG,IAAK,CACrD,GAAI+xB,GAAOx4B,KAAKg8C,KAAK65C,MAAM71F,KAAKg8C,KAAK85C,YAAYrvF,GACjDg5F,GAAUz/F,KAAKg8C,KAAK85C,YAAYrvF,KAAQ+zB,EAAGv1B,KAAK0c,MAAM6W,EAAKgC,GAAI/a,EAAGxa,KAAK0c,MAAM6W,EAAK/Y,IAGtF,MAAOggF,MAOT91F,IAAK,iBACL5E,MAAO,WAEL,GAAI06F,MACA//C,EAAU1/C,KAAKg8C,KAAKjkC,KAAK89E,MAAM53D,YAEnC,KAAK,GAAI27D,KAAUl6C,GAAQz5B,MACzB,GAAIy5B,EAAQz5B,MAAMjgB,eAAe4zF,GAAS,CACxC,GAAIphE,GAAOx4B,KAAKg8C,KAAK65C,MAAM+D,IACvBl6C,EAAQz5B,MAAM2zE,GAAQp/D,GAAKv1B,KAAK0c,MAAM6W,EAAKgC,IAAMklB,EAAQz5B,MAAM2zE,GAAQn6E,GAAKxa,KAAK0c,MAAM6W,EAAK/Y,KAC9FggF,EAAUj4F,MAAOnH,GAAIu5F,EAAQp/D,EAAGv1B,KAAK0c,MAAM6W,EAAKgC;AAAI/a,EAAGxa,KAAK0c,MAAM6W,EAAK/Y,KAI7EigC,EAAQ5iB,OAAO2iE,MASjB91F,IAAK,iBACL5E,MAAO,SAAwB60F,GAC7B,MAAgCrzF,UAA5BvG,KAAKg8C,KAAK65C,MAAM+D,GACX55F,KAAKg8C,KAAK65C,MAAM+D,GAAQ4E,MAAMkB,YADvC,UAWF/1F,IAAK,oBACL5E,MAAO,SAA2B60F,GAChC,GAAI+F,KACJ,IAAgCp5F,SAA5BvG,KAAKg8C,KAAK65C,MAAM+D,GAGlB,IAAK,GAFDphE,GAAOx4B,KAAKg8C,KAAK65C,MAAM+D,GACvBgG,KACKn5F,EAAI,EAAGA,EAAI+xB,EAAKu9D,MAAMzvF,OAAQG,IAAK,CAC1C,GAAI61F,GAAO9jE,EAAKu9D,MAAMtvF,EAClB61F,GAAKuD,MAAQjG,EAEcrzF,SAAzBq5F,EAAQtD,EAAKwD,UACfH,EAASn4F,KAAK80F,EAAKwD,QACnBF,EAAQtD,EAAKwD,SAAU,GAEhBxD,EAAKwD,QAAUlG,GAEGrzF,SAAvBq5F,EAAQtD,EAAKuD,QACfF,EAASn4F,KAAK80F,EAAKuD,MACnBD,EAAQtD,EAAKuD,OAAQ,GAK7B,MAAOF,MASTh2F,IAAK,oBACL5E,MAAO,SAA2B60F,GAChC,GAAImG,KACJ,IAAgCx5F,SAA5BvG,KAAKg8C,KAAK65C,MAAM+D,GAElB,IAAK,GADDphE,GAAOx4B,KAAKg8C,KAAK65C,MAAM+D,GAClBnzF,EAAI,EAAGA,EAAI+xB,EAAKu9D,MAAMzvF,OAAQG,IACrCs5F,EAASv4F,KAAKgxB,EAAKu9D,MAAMtvF,GAAGpG,QAG9Bme,SAAQu8B,IAAI,mEAAoE6+C,EAElF,OAAOmG,MAUTp2F,IAAK,WACL5E,MAAO,SAAkB60F,EAAQp/D,EAAG/a,GAClC,GAAIg3D,GAASz2E,IAEmBuG,UAA5BvG,KAAKg8C,KAAK65C,MAAM+D,IAClB55F,KAAKg8C,KAAK65C,MAAM+D,GAAQp/D,EAAIn2B,OAAOm2B,GACnCx6B,KAAKg8C,KAAK65C,MAAM+D,GAAQn6E,EAAIpb,OAAOob,GACnCvV,WAAW,WACTusE,EAAOz6B,KAAKE,QAAQzH,KAAK,oBACxB,IAEHj2B,QAAQu8B,IAAI,0DAA2D6+C,OAKtE4D,IAGT59F,GAAQ,WAAa49F,EACrB39F,EAAOD,QAAUA,EAAQ,YAIrB,SAASC,EAAQD,EAASM,GAU9B,QAASuyE,GAAuB3sE,GAAO,MAAOA,IAAOA,EAAI4sE,WAAa5sE,GAAQ6sE,UAAW7sE,GAEzF,QAAS8sE,GAAgBC,EAAUC,GAAe,KAAMD,YAAoBC,IAAgB,KAAM,IAAI5rE,WAAU,qCARhHE,OAAO2rE,eAAenzE,EAAS,cAC7BmF,OAAO,GAGT,IAAIiuE,GAAe,WAAe,QAASC,GAAiB/nE,EAAQrE,GAAS,IAAK,GAAIJ,GAAI,EAAGA,EAAII,EAAMP,OAAQG,IAAK,CAAE,GAAIysE,GAAarsE,EAAMJ,EAAIysE,GAAWC,WAAaD,EAAWC,aAAc,EAAOD,EAAWE,cAAe,EAAU,SAAWF,KAAYA,EAAWG,UAAW,GAAMjsE,OAAO2rE,eAAe7nE,EAAQgoE,EAAWvpE,IAAKupE,IAAiB,MAAO,UAAUJ,EAAaQ,EAAYC,GAAiJ,MAA9HD,IAAYL,EAAiBH,EAAY7/D,UAAWqgE,GAAiBC,GAAaN,EAAiBH,EAAaS,GAAqBT,MAM7hBktB,EAAe9/F,EAAoB,IAEnC+/F,EAAgBxtB,EAAuButB,GAEvCE,EAAkBhgG,EAAoB,IAEtCigG,EAAmB1tB,EAAuBytB,GAE1CE,EAAqBlgG,EAAoB,IAEzCmgG,EAAsB5tB,EAAuB2tB,GAE7CE,EAA4BpgG,EAAoB,IAEhDqgG,EAA6B9tB,EAAuB6tB,GAEpDE,EAAuBtgG,EAAoB,IAE3CugG,EAAwBhuB,EAAuB+tB,GAE/CE,EAAsBxgG,EAAoB,IAE1CygG,EAAuBluB,EAAuBiuB,GAE9CE,EAAkB1gG,EAAoB,IAEtC2gG,EAAmBpuB,EAAuBmuB,GAE1CE,EAAsB5gG,EAAoB,IAE1C6gG,EAAuBtuB,EAAuBquB,GAE9CE,EAAmB9gG,EAAoB,IAEvC+gG,EAAoBxuB,EAAuBuuB,GAE3CE,EAAoBhhG,EAAoB,IAExCihG,EAAqB1uB,EAAuByuB,GAE5CE,EAAqBlhG,EAAoB,IAEzCmhG,EAAsB5uB,EAAuB2uB,GAE7CE,EAAmBphG,EAAoB,IAEvCqhG,EAAoB9uB,EAAuB6uB,GAE3CE,EAAmBthG,EAAoB,IAEvCuhG,EAAoBhvB,EAAuB+uB,GAE3CE,EAAuBxhG,EAAoB,IAE3CyhG,EAAwBlvB,EAAuBivB,GAE/CE,EAA2B1hG,EAAoB,IAE/C2hG,EAA4BpvB,EAAuBmvB,GAEnDxI,EAAmBl5F,EAAoB,IAIvCS,GAFoB8xE,EAAuB2mB,GAEpCl5F,EAAoB,IA4B3B4hG,EAAO,WACT,QAASA,GAAKj+F,EAASm4C,EAAM+lD,EAAW5X,EAAWv5E,GACjDgiE,EAAgB5yE,KAAM8hG,GAEtB9hG,KAAK6D,QAAUlD,EAAK0P,aAAaO,GACjC5Q,KAAK4Q,cAAgBA,EACrB5Q,KAAKg8C,KAAOA,EAEZh8C,KAAK+1F,SAGL/1F,KAAKK,GAAKkG,OACVvG,KAAK+hG,UAAYA,EACjB/hG,KAAKmqF,UAAYA,EAGjBnqF,KAAKw6B,EAAIj0B,OACTvG,KAAKyf,EAAIlZ,OACTvG,KAAKgiG,SAAWhiG,KAAK6D,QAAQg3B,KAC7B76B,KAAKiiG,aAAejiG,KAAK6D,QAAQ+qC,KAAK/T,KACtC76B,KAAKkiG,oBAAqB,EAC1BliG,KAAKmjE,UAAW,EAChBnjE,KAAKoO,OAAQ,EAEbpO,KAAKmiG,YAAc,GAAIlC,GAAc,WAAWjgG,KAAKg8C,KAAMh8C,KAAK6D,SAChE7D,KAAK47B,WAAW/3B,GAmYlB,MA3XAmvE,GAAa8uB,IACXn4F,IAAK,aACL5E,MAAO,SAAoBu3F,GACQ,KAA7Bt8F,KAAK+1F,MAAMxuF,QAAQ+0F,IACrBt8F,KAAK+1F,MAAMvuF,KAAK80F,MASpB3yF,IAAK,aACL5E,MAAO,SAAoBu3F,GACzB,GAAIlzF,GAAQpJ,KAAK+1F,MAAMxuF,QAAQ+0F,EAClB,KAATlzF,GACFpJ,KAAK+1F,MAAM1sF,OAAOD,EAAO,MAU7BO,IAAK,aACL5E,MAAO,SAAoBlB,GACzB,GAAIu+F,GAAepiG,KAAK6D,QAAQ26F,KAChC,IAAK36F,EAAL,CAQA,GAJmB0C,SAAf1C,EAAQxD,KACVL,KAAKK,GAAKwD,EAAQxD,IAGJkG,SAAZvG,KAAKK,GACP,KAAM,sBA2BR,IAtBkBkG,SAAd1C,EAAQ22B,IACQ,OAAd32B,EAAQ22B,GACVx6B,KAAKw6B,EAAIj0B,OAAUvG,KAAKkiG,oBAAqB,IAE7CliG,KAAKw6B,EAAIjuB,SAAS1I,EAAQ22B,GAAGx6B,KAAKkiG,oBAAqB,IAGzC37F,SAAd1C,EAAQ4b,IACQ,OAAd5b,EAAQ4b,GACVzf,KAAKyf,EAAIlZ,OAAUvG,KAAKkiG,oBAAqB,IAE7CliG,KAAKyf,EAAIlT,SAAS1I,EAAQ4b,GAAGzf,KAAKkiG,oBAAqB,IAGtC37F,SAAjB1C,EAAQg3B,OACV76B,KAAKgiG,SAAWn+F,EAAQg3B,MAEJt0B,SAAlB1C,EAAQkB,QACVlB,EAAQkB,MAAQ4jB,WAAW9kB,EAAQkB,QAIR,gBAAlBlB,GAAQg8C,OAA+C,gBAAlBh8C,GAAQg8C,OAAuC,IAAjBh8C,EAAQg8C,MAAa,CACjG,GAAIwiD,GAAWriG,KAAKmqF,UAAUx2D,IAAI9vB,EAAQg8C,MAC1Cl/C,GAAK0G,WAAWrH,KAAK6D,QAASw+F,GAE9BriG,KAAK6D,QAAQ4I,MAAQ9L,EAAKwM,WAAWnN,KAAK6D,QAAQ4I,OAOpD,GAHAq1F,EAAKjD,aAAa7+F,KAAK6D,QAASA,GAAS,EAAM7D,KAAK4Q,eAGzBrK,SAAvBvG,KAAK6D,QAAQk6F,MAAqB,CACpC,IAAI/9F,KAAK+hG,UAGP,KAAM,uBAFN/hG,MAAKsiG,SAAWtiG,KAAK+hG,UAAUQ,KAAKviG,KAAK6D,QAAQk6F,MAAO/9F,KAAK6D,QAAQ85F,YAAa39F,KAAKK,IAS3F,MAHAL,MAAK++F,oBACL/+F,KAAK8+F,YAAYsD,GAEM77F,SAAnB1C,EAAQg1D,QAA4CtyD,SAApB1C,EAAQm0E,SACnC,GAEF,MAUTruE,IAAK,oBACL5E,MAAO,YACsBwB,SAAvBvG,KAAK6D,QAAQi3B,OAA8C,OAAvB96B,KAAK6D,QAAQi3B,SACnD96B,KAAK6D,QAAQi3B,MAAQ,IAEvB96B,KAAKmiG,YAAYvmE,WAAW57B,KAAK6D,SAAS,GACR0C,SAA9BvG,KAAKmiG,YAAYH,WACnBhiG,KAAKiiG,aAAejiG,KAAKmiG,YAAYH,aAIzCr4F,IAAK,cACL5E,MAAO,SAAqBq9F,GAC1B,GAAIA,IAAiBpiG,KAAK6D,QAAQ26F,OAASx+F,KAAKw+F,MAC9Cx+F,KAAKw+F,MAAM5iE,WAAW57B,KAAK6D,QAAS7D,KAAKsiG,cAGzC,QAAQtiG,KAAK6D,QAAQ26F,OACnB,IAAK,MACHx+F,KAAKw+F,MAAQ,GAAI2B,GAAiB,WAAWngG,KAAK6D,QAAS7D,KAAKg8C,KAAMh8C,KAAKmiG,YAC3E,MACF,KAAK,SACHniG,KAAKw+F,MAAQ,GAAI6B,GAAoB,WAAWrgG,KAAK6D,QAAS7D,KAAKg8C,KAAMh8C,KAAKmiG,YAC9E,MACF,KAAK,gBACHniG,KAAKw+F,MAAQ,GAAI+B,GAA2B,WAAWvgG,KAAK6D,QAAS7D,KAAKg8C,KAAMh8C,KAAKmiG,YAAaniG,KAAKsiG,SACvG,MACF,KAAK,WACHtiG,KAAKw+F,MAAQ,GAAIiC,GAAsB,WAAWzgG,KAAK6D,QAAS7D,KAAKg8C,KAAMh8C,KAAKmiG,YAChF,MACF,KAAK,UACHniG,KAAKw+F,MAAQ,GAAImC,GAAqB,WAAW3gG,KAAK6D,QAAS7D,KAAKg8C,KAAMh8C,KAAKmiG,YAC/E,MACF,KAAK,MACHniG,KAAKw+F,MAAQ,GAAIqC,GAAiB,WAAW7gG,KAAK6D,QAAS7D,KAAKg8C,KAAMh8C,KAAKmiG,YAC3E,MACF,KAAK,UACHniG,KAAKw+F,MAAQ,GAAIuC,GAAqB,WAAW/gG,KAAK6D,QAAS7D,KAAKg8C,KAAMh8C,KAAKmiG,YAC/E,MACF,KAAK,OACHniG,KAAKw+F,MAAQ,GAAIyC,GAAkB,WAAWjhG,KAAK6D,QAAS7D,KAAKg8C,KAAMh8C,KAAKmiG,YAC5E,MACF,KAAK,QACHniG,KAAKw+F,MAAQ,GAAI2C,GAAmB,WAAWnhG,KAAK6D,QAAS7D,KAAKg8C,KAAMh8C,KAAKmiG,YAAaniG,KAAKsiG,SAC/F,MACF,KAAK,SACHtiG,KAAKw+F,MAAQ,GAAI6C,GAAoB,WAAWrhG,KAAK6D,QAAS7D,KAAKg8C,KAAMh8C,KAAKmiG,YAC9E,MACF,KAAK,OACHniG,KAAKw+F,MAAQ,GAAI+C,GAAkB,WAAWvhG,KAAK6D,QAAS7D,KAAKg8C,KAAMh8C,KAAKmiG,YAC5E,MACF,KAAK,OACHniG,KAAKw+F,MAAQ,GAAIiD,GAAkB,WAAWzhG,KAAK6D,QAAS7D,KAAKg8C,KAAMh8C,KAAKmiG,YAC5E,MACF,KAAK,WACHniG,KAAKw+F,MAAQ,GAAImD,GAAsB,WAAW3hG,KAAK6D,QAAS7D,KAAKg8C,KAAMh8C,KAAKmiG,YAChF,MACF,KAAK,eACHniG,KAAKw+F,MAAQ,GAAIqD,GAA0B,WAAW7hG,KAAK6D,QAAS7D,KAAKg8C,KAAMh8C,KAAKmiG,YACpF,MACF,SACEniG,KAAKw+F,MAAQ,GAAIuC,GAAqB,WAAW/gG,KAAK6D,QAAS7D,KAAKg8C,KAAMh8C,KAAKmiG,aAIrFniG,KAAKg/F,YAOPr1F,IAAK,SACL5E,MAAO,WACL/E,KAAKmjE,UAAW,EAChBnjE,KAAKg/F,YAOPr1F,IAAK,WACL5E,MAAO,WACL/E,KAAKmjE,UAAW,EAChBnjE,KAAKg/F,YAQPr1F,IAAK,SACL5E,MAAO,WACL/E,KAAKw+F,MAAMpjE,MAAQ70B,OACnBvG,KAAKw+F,MAAMnjE,OAAS90B,UAStBoD,IAAK,WACL5E,MAAO,WACL,MAAO/E,MAAK6D,QAAQy4D,SAUtB3yD,IAAK,mBACL5E,MAAO,SAA0BqpC,EAAK4Y,GACpC,MAAOhnD,MAAKw+F,MAAMgE,iBAAiBp0D,EAAK4Y,MAQ1Cr9C,IAAK,UACL5E,MAAO,WACL,MAAO/E,MAAK6D,QAAQ+5F,MAAMpjE,GAAKx6B,KAAK6D,QAAQ+5F,MAAMn+E,KAQpD9V,IAAK,aACL5E,MAAO,WACL,MAAO/E,MAAKmjE,YAQdx5D,IAAK,WACL5E,MAAO,WACL,MAAO/E,MAAK6D,QAAQkB,SAUtB4E,IAAK,gBACL5E,MAAO,SAAuBH,EAAKC,EAAKC,GACtC,GAA2ByB,SAAvBvG,KAAK6D,QAAQkB,MAAqB,CACpC,GAAIC,GAAQhF,KAAK6D,QAAQs6F,QAAQG,sBAAsB15F,EAAKC,EAAKC,EAAO9E,KAAK6D,QAAQkB,OACjF09F,EAAWziG,KAAK6D,QAAQs6F,QAAQt5F,IAAM7E,KAAK6D,QAAQs6F,QAAQv5F,GAC/D,IAAI5E,KAAK6D,QAAQs6F,QAAQrjE,MAAMjqB,WAAY,EAAM,CAC/C,GAAI6xF,GAAW1iG,KAAK6D,QAAQs6F,QAAQrjE,MAAMj2B,IAAM7E,KAAK6D,QAAQs6F,QAAQrjE,MAAMl2B,GAC3E5E,MAAK6D,QAAQ+qC,KAAK/T,KAAO76B,KAAK6D,QAAQs6F,QAAQrjE,MAAMl2B,IAAMI,EAAQ09F,EAEpE1iG,KAAK6D,QAAQg3B,KAAO76B,KAAK6D,QAAQs6F,QAAQv5F,IAAMI,EAAQy9F,MAEvDziG,MAAK6D,QAAQg3B,KAAO76B,KAAKgiG,SACzBhiG,KAAK6D,QAAQ+qC,KAAK/T,KAAO76B,KAAKiiG,YAGhCjiG,MAAK++F,uBASPp1F,IAAK,OACL5E,MAAO,SAAcqpC,GACnBpuC,KAAKw+F,MAAMzmB,KAAK3pC,EAAKpuC,KAAKw6B,EAAGx6B,KAAKyf,EAAGzf,KAAKmjE,SAAUnjE,KAAKoO,UAO3DzE,IAAK,oBACL5E,MAAO,SAA2BqpC,GAChCpuC,KAAKw+F,MAAMmE,kBAAkB3iG,KAAKw6B,EAAGx6B,KAAKyf,EAAG2uB,MAS/CzkC,IAAK,SACL5E,MAAO,SAAgBqpC,GACrBpuC,KAAKw+F,MAAMoE,OAAOx0D,EAAKpuC,KAAKmjE,aAS9Bx5D,IAAK,oBACL5E,MAAO,SAA2Be,GAChC,MAAO9F,MAAKw+F,MAAM71F,KAAO7C,EAAI4oC,OAAS1uC,KAAKw+F,MAAM71F,KAAO3I,KAAKw+F,MAAMpjE,MAAQt1B,EAAI6C,MAAQ3I,KAAKw+F,MAAM31F,IAAM/C,EAAIolC,QAAUlrC,KAAKw+F,MAAM31F,IAAM7I,KAAKw+F,MAAMnjE,OAASv1B,EAAI+C,OASjKc,IAAK,+BACL5E,MAAO,SAAsCe,GAC3C,MAAO9F,MAAKw+F,MAAMkB,YAAY/2F,KAAO7C,EAAI4oC,OAAS1uC,KAAKw+F,MAAMkB,YAAYhxD,MAAQ5oC,EAAI6C,MAAQ3I,KAAKw+F,MAAMkB,YAAY72F,IAAM/C,EAAIolC,QAAUlrC,KAAKw+F,MAAMkB,YAAYx0D,OAASplC,EAAI+C,SAG9Kc,IAAK,eACL5E,MAAO,SAAsB89F,EAAeC,GAC1C,GAAI18F,GAAgBC,UAAUC,QAAU,GAAsBC,SAAjBF,UAAU,IAAmB,EAAQA,UAAU,GACxFuK,EAAgBvK,UAAUC,QAAU,GAAsBC,SAAjBF,UAAU,MAAwBA,UAAU,GAErF4J,GAAU,QAAS,OAAQ,QAAS,SAOxC,IANAtP,EAAK2G,uBAAuB2I,EAAQ4yF,EAAeC,EAAY18F,GAG/DzF,EAAK+P,aAAamyF,EAAeC,EAAY,SAAU18F,EAAewK,GAG7CrK,SAArBu8F,EAAWr2F,OAA4C,OAArBq2F,EAAWr2F,MAAgB,CAC/D,GAAIs2F,GAAcpiG,EAAKwM,WAAW21F,EAAWr2F,MAC7C9L,GAAKsF,cAAc48F,EAAcp2F,MAAOs2F,OAC/B38F,MAAkB,GAA6B,OAArB08F,EAAWr2F,QAC9Co2F,EAAcp2F,MAAQ9L,EAAK0P,aAAaO,EAAcnE,OAI/BlG,UAArBu8F,EAAWlF,OAA4C,OAArBkF,EAAWlF,QACf,iBAArBkF,GAAWlF,OACpBiF,EAAcjF,MAAMpjE,EAAIsoE,EAAWlF,MACnCiF,EAAcjF,MAAMn+E,EAAIqjF,EAAWlF,QAERr3F,SAAvBu8F,EAAWlF,MAAMpjE,GAAiD,iBAAvBsoE,GAAWlF,MAAMpjE,IAC9DqoE,EAAcjF,MAAMpjE,EAAIsoE,EAAWlF,MAAMpjE,GAEhBj0B,SAAvBu8F,EAAWlF,MAAMn+E,GAAiD,iBAAvBqjF,GAAWlF,MAAMn+E,IAC9DojF,EAAcjF,MAAMn+E,EAAIqjF,EAAWlF,MAAMn+E,KAMvBlZ,SAApBu8F,EAAWl0D,MAA0C,OAApBk0D,EAAWl0D,KAC9CqxD,EAAc,WAAWpB,aAAagE,EAAcj0D,KAAMk0D,GACjD18F,KAAkB,GAA4B,OAApB08F,EAAWl0D,OAC9Ci0D,EAAcj0D,KAAOjuC,EAAK0P,aAAaO,EAAcg+B,OAI5BroC,SAAvBu8F,EAAW3E,SACbx9F,EAAK+P,aAAamyF,EAAc1E,QAAS2E,EAAW3E,QAAS,QAAS/3F,EAAewK,EAAcutF,aAKlG2D,IAGTliG,GAAQ,WAAakiG,EACrBjiG,EAAOD,QAAUA,EAAQ,YAIrB,SAASC,EAAQD,EAASM,GAY9B,QAAS0yE,GAAgBC,EAAUC,GAAe,KAAMD,YAAoBC,IAAgB,KAAM,IAAI5rE,WAAU,qCARhHE,OAAO2rE,eAAenzE,EAAS,cAC7BmF,OAAO,GAGT,IAAIi+F,GAAiB,WAAe,QAASC,GAAc76F,EAAK3B,GAAK,GAAIy8F,MAAeC,GAAK,EAAUzuF,GAAK,EAAW0uF,EAAK78F,MAAW,KAAM,IAAK,GAAiC88F,GAA7B/tF,EAAKlN,EAAIk7F,OAAOjhD,cAAmB8gD,GAAME,EAAK/tF,EAAG+B,QAAQo+C,QAAoBytC,EAAK17F,KAAK67F,EAAGt+F,QAAY0B,GAAKy8F,EAAK58F,SAAWG,GAA3D08F,GAAK,IAAoE,MAAOntB,GAAOthE,GAAK,EAAM0uF,EAAKptB,EAAO,QAAU,KAAWmtB,GAAM7tF,EAAG,WAAWA,EAAG,YAAe,QAAU,GAAIZ,EAAI,KAAM0uF,IAAQ,MAAOF,GAAQ,MAAO,UAAU96F,EAAK3B,GAAK,GAAIK,MAAMC,QAAQqB,GAAQ,MAAOA,EAAY,IAAIk7F,OAAOjhD,WAAYj7C,QAAOgB,GAAQ,MAAO66F,GAAc76F,EAAK3B,EAAa,MAAM,IAAIS,WAAU,4DAEnlB8rE,EAAe,WAAe,QAASC,GAAiB/nE,EAAQrE,GAAS,IAAK,GAAIJ,GAAI,EAAGA,EAAII,EAAMP,OAAQG,IAAK,CAAE,GAAIysE,GAAarsE,EAAMJ,EAAIysE,GAAWC,WAAaD,EAAWC,aAAc,EAAOD,EAAWE,cAAe,EAAU,SAAWF,KAAYA,EAAWG,UAAW,GAAMjsE,OAAO2rE,eAAe7nE,EAAQgoE,EAAWvpE,IAAKupE,IAAiB,MAAO,UAAUJ,EAAaQ,EAAYC,GAAiJ,MAA9HD,IAAYL,EAAiBH,EAAY7/D,UAAWqgE,GAAiBC,GAAaN,EAAiBH,EAAaS,GAAqBT,MAI7hBnyE,EAAOT,EAAoB,GAE3BqjG,EAAQ,WACV,QAASA,GAAMvnD,EAAMn4C,GACnB+uE,EAAgB5yE,KAAMujG,GAEtBvjG,KAAKg8C,KAAOA,EAEZh8C,KAAKwjG,aAAc,EACnBxjG,KAAKgiG,SAAWz7F,OAChBvG,KAAKyjG,eACLzjG,KAAK47B,WAAW/3B,GAChB7D,KAAK66B,MAAShyB,IAAK,EAAGF,KAAM,EAAGyyB,MAAO,EAAGC,OAAQ,EAAGqoE,MAAO,GA+R7D,MA5RA1wB,GAAauwB,IACX55F,IAAK,aACL5E,MAAO,SAAoBlB,GACzB,GAAIuC,GAAgBC,UAAUC,QAAU,GAAsBC,SAAjBF,UAAU,IAAmB,EAAQA,UAAU,EAE5FrG,MAAK2jG,YAAc9/F,EAInB7D,KAAKyjG,YAAc9iG,EAAK0G,cAAexD,EAAQ+qC,MAAM,GAE/BroC,SAAlB1C,EAAQi3B,QACV96B,KAAK4jG,YAAa,GAGCr9F,SAAjB1C,EAAQ+qC,OACV20D,EAAM1E,aAAa7+F,KAAKyjG,YAAa5/F,EAASuC,GAClB,gBAAjBvC,GAAQ+qC,KACjB5uC,KAAKgiG,SAAWhiG,KAAKyjG,YAAY5oE,KACA,gBAAjBh3B,GAAQ+qC,MACEroC,SAAtB1C,EAAQ+qC,KAAK/T,OACf76B,KAAKgiG,SAAWn+F,EAAQ+qC,KAAK/T,UAMrClxB,IAAK,OAUL5E,MAAO,SAAcqpC,EAAK5T,EAAG/a,EAAG0jD,GAC9B,GAAI0gC,GAAWx9F,UAAUC,QAAU,GAAsBC,SAAjBF,UAAU,GAAmB,SAAWA,UAAU,EAG1F,IAA+BE,SAA3BvG,KAAK2jG,YAAY7oE,MAArB,CAGA,GAAIgpE,GAAe9jG,KAAKyjG,YAAY5oE,KAAO76B,KAAKg8C,KAAK86C,KAAK9xF,KACtDhF,MAAK2jG,YAAY7oE,OAASgpE,EAAe9jG,KAAK2jG,YAAYxF,QAAQrjE,MAAMujE,cAAgB,IAG5Fr+F,KAAK+jG,mBAAmB31D,EAAK+0B,EAAU3oC,EAAG/a,EAAGokF,GAG7C7jG,KAAKgkG,gBAAgB51D,GAErBpuC,KAAKikG,UAAU71D,EAAK+0B,EAAU3oC,EAAG/a,EAAGokF,QAStCl6F,IAAK,kBACL5E,MAAO,SAAyBqpC,GAC9B,GAAoC7nC,SAAhCvG,KAAKyjG,YAAYx1F,YAA4D,SAAhCjO,KAAKyjG,YAAYx1F,WAAuB,CACvFmgC,EAAIiB,UAAYrvC,KAAKyjG,YAAYx1F,UAEjC,IAAIi2F,GAAa,CAEjB,QAAQlkG,KAAKyjG,YAAYnlC,OACvB,IAAK,SACHlwB,EAAI42C,SAA4B,IAAlBhlF,KAAK66B,KAAKO,MAAiC,IAAnBp7B,KAAK66B,KAAKQ,OAAcr7B,KAAK66B,KAAKO,MAAOp7B,KAAK66B,KAAKQ,OACzF,MACF,KAAK,MACH+S,EAAI42C,SAA4B,IAAlBhlF,KAAK66B,KAAKO,QAAep7B,KAAK66B,KAAKQ,OAAS6oE,GAAalkG,KAAK66B,KAAKO,MAAOp7B,KAAK66B,KAAKQ,OAClG,MACF,KAAK,SACH+S,EAAI42C,SAA4B,IAAlBhlF,KAAK66B,KAAKO,MAAa8oE,EAAYlkG,KAAK66B,KAAKO,MAAOp7B,KAAK66B,KAAKQ,OAC5E,MACF,SACE+S,EAAI42C,SAAShlF,KAAK66B,KAAKlyB,KAAM3I,KAAK66B,KAAKhyB,IAAM,GAAMq7F,EAAYlkG,KAAK66B,KAAKO,MAAOp7B,KAAK66B,KAAKQ,aAclG1xB,IAAK,YACL5E,MAAO,SAAmBqpC,EAAK+0B,EAAU3oC,EAAG/a,GAC1C,GAAIokF,GAAWx9F,UAAUC,QAAU,GAAsBC,SAAjBF,UAAU,GAAmB,SAAWA,UAAU,GAEtF89F,EAAWnkG,KAAKyjG,YAAY5oE,KAC5BipE,EAAeK,EAAWnkG,KAAKg8C,KAAK86C,KAAK9xF,KAEzC8+F,IAAgB9jG,KAAK2jG,YAAYxF,QAAQrjE,MAAMsjE,aACjD+F,EAAW9/F,OAAOrE,KAAK2jG,YAAYxF,QAAQrjE,MAAMsjE,YAAcp+F,KAAKg8C,KAAK86C,KAAK9xF,MAGhF,IAAI0+F,GAAQ1jG,KAAK66B,KAAK6oE,MAElBU,EAAapkG,KAAKqkG,UAAUP,GAE5BQ,EAActB,EAAeoB,EAAY,GAEzCG,EAAYD,EAAY,GACxBxG,EAAcwG,EAAY,GAI1BE,EAAiBxkG,KAAKykG,cAAcr2D,EAAK5T,EAAGkpE,EAAOG,GAEnDa,EAAkB1B,EAAewB,EAAgB,EAErDhqE,GAAIkqE,EAAgB,GACpBhB,EAAQgB,EAAgB,GACxBt2D,EAAIQ,MAAQu0B,GAAYnjE,KAAK2jG,YAAY3F,mBAAqB,QAAU,IAAMmG,EAAW,MAAQnkG,KAAKyjG,YAAY5F,KAClHzvD,EAAIiB,UAAYk1D,EAChBn2D,EAAIuB,UAAY,SAGZ3vC,KAAKyjG,YAAYj/D,YAAc,IACjC4J,EAAIO,UAAY3uC,KAAKyjG,YAAYj/D,YACjC4J,EAAIY,YAAc8uD,EAClB1vD,EAAI2D,SAAW,QAIjB,KAAK,GAAItrC,GAAI,EAAGA,EAAIzG,KAAK2kG,UAAWl+F,IAC9BzG,KAAKyjG,YAAYj/D,YAAc,GACjC4J,EAAIw2D,WAAW5kG,KAAK+tE,MAAMtnE,GAAI+zB,EAAGkpE,GAEnCt1D,EAAIyB,SAAS7vC,KAAK+tE,MAAMtnE,GAAI+zB,EAAGkpE,GAC/BA,GAASS,KAIbx6F,IAAK,gBACL5E,MAAO,SAAuBqpC,EAAK5T,EAAGkpE,EAAOG,GAG3C,GAA+B,eAA3B7jG,KAAKyjG,YAAYnlC,OAA0Bt+D,KAAKwjG,eAAgB,EAAO,CACzEhpE,EAAI,EACJkpE,EAAQ,CAER,IAAIQ,GAAa,CACc,SAA3BlkG,KAAKyjG,YAAYnlC,OACnBlwB,EAAIwB,aAAe,aACnB8zD,GAAS,EAAIQ,GACuB,WAA3BlkG,KAAKyjG,YAAYnlC,OACxBlwB,EAAIwB,aAAe,UACnB8zD,GAAS,EAAIQ,GAEX91D,EAAIwB,aAAe,aAGzBxB,GAAIwB,aAAei0D,CAGrB,QAAQrpE,EAAGkpE,MAYb/5F,IAAK,YACL5E,MAAO,SAAmB++F,GACxB,GAAIS,GAAYvkG,KAAKyjG,YAAYh3F,OAAS,UACtCqxF,EAAc99F,KAAKyjG,YAAY3F,aAAe,SAClD,IAAIgG,GAAgB9jG,KAAK2jG,YAAYxF,QAAQrjE,MAAMujE,cAAe,CAChE,GAAI3xF,GAAUzH,KAAKJ,IAAI,EAAGI,KAAKL,IAAI,EAAG,GAAK5E,KAAK2jG,YAAYxF,QAAQrjE,MAAMujE,cAAgByF,IAC1FS,GAAY5jG,EAAK6L,gBAAgB+3F,EAAW73F,GAC5CoxF,EAAcn9F,EAAK6L,gBAAgBsxF,EAAapxF,GAElD,OAAQ63F,EAAWzG,MAUrBn0F,IAAK,cACL5E,MAAO,SAAqBqpC,GAC1B,GAAI+0B,GAAW98D,UAAUC,QAAU,GAAsBC,SAAjBF,UAAU,IAAmB,EAAQA,UAAU,GAEnFw0B,GACFO,MAAOp7B,KAAK6kG,cAAcz2D,EAAK+0B,GAC/B9nC,OAAQr7B,KAAKyjG,YAAY5oE,KAAO76B,KAAK2kG,UACrCA,UAAW3kG,KAAK2kG,UAElB,OAAO9pE,MAYTlxB,IAAK,qBACL5E,MAAO,SAA4BqpC,EAAK+0B,GACtC,GAAI3oC,GAAIn0B,UAAUC,QAAU,GAAsBC,SAAjBF,UAAU,GAAmB,EAAIA,UAAU,GACxEoZ,EAAIpZ,UAAUC,QAAU,GAAsBC,SAAjBF,UAAU,GAAmB,EAAIA,UAAU,GACxEw9F,EAAWx9F,UAAUC,QAAU,GAAsBC,SAAjBF,UAAU,GAAmB,SAAWA,UAAU,EAEtFrG,MAAK4jG,cAAe,IACtB5jG,KAAK66B,KAAKO,MAAQp7B,KAAK6kG,cAAcz2D,EAAK+0B,IAE5CnjE,KAAK66B,KAAKQ,OAASr7B,KAAKyjG,YAAY5oE,KAAO76B,KAAK2kG,UAChD3kG,KAAK66B,KAAKlyB,KAAO6xB,EAAsB,GAAlBx6B,KAAK66B,KAAKO,MAC/Bp7B,KAAK66B,KAAKhyB,IAAM4W,EAAuB,GAAnBzf,KAAK66B,KAAKQ,OAC9Br7B,KAAK66B,KAAK6oE,MAAQjkF,EAA2B,IAAtB,EAAIzf,KAAK2kG,WAAmB3kG,KAAKyjG,YAAY5oE,KACnD,YAAbgpE,IACF7jG,KAAK66B,KAAKhyB,KAAO,GAAM7I,KAAKyjG,YAAY5oE,KACxC76B,KAAK66B,KAAKhyB,KAAO,EACjB7I,KAAK66B,KAAK6oE,OAAS,GAGrB1jG,KAAK4jG,YAAa,KAWpBj6F,IAAK,gBACL5E,MAAO,SAAuBqpC,EAAK+0B,GACjC,GAAI/nC,GAAQ,EACR2yC,GAAS,IACT42B,EAAY,CAChB,IAA+Bp+F,SAA3BvG,KAAK2jG,YAAY7oE,MAAqB,CACxCizC,EAAQ5oE,OAAOnF,KAAK2jG,YAAY7oE,OAAO7xB,MAAM,MAC7C07F,EAAY52B,EAAMznE,OAClB8nC,EAAIQ,MAAQu0B,GAAYnjE,KAAK2jG,YAAY3F,mBAAqB,QAAU,IAAMh+F,KAAKyjG,YAAY5oE,KAAO,MAAQ76B,KAAKyjG,YAAY5F,KAC/HziE,EAAQgT,EAAI02D,YAAY/2B,EAAM,IAAI3yC,KAClC,KAAK,GAAI30B,GAAI,EAAOk+F,EAAJl+F,EAAeA,IAAK,CAClC,GAAIkoC,GAAYP,EAAI02D,YAAY/2B,EAAMtnE,IAAI20B,KAC1CA,GAAQuT,EAAYvT,EAAQuT,EAAYvT,GAM5C,MAHAp7B,MAAK+tE,MAAQA,EACb/tE,KAAK2kG,UAAYA,EAEVvpE,OAGTzxB,IAAK,eACL5E,MAAO,SAAsB89F,EAAeC,GAC1C,GAAI18F,GAAgBC,UAAUC,QAAU,GAAsBC,SAAjBF,UAAU,IAAmB,EAAQA,UAAU,EAE5F,IAA+B,gBAApBy8F,GAAWl0D,KAAmB,CACvC,GAAIm2D,GAAkBjC,EAAWl0D,KAAK3lC,MAAM,IAC5C45F,GAAchoE,KAAOkqE,EAAgB,GAAG54F,QAAQ,KAAM,IACtD02F,EAAchF,KAAOkH,EAAgB,GACrClC,EAAcp2F,MAAQs4F,EAAgB,OACF,gBAApBjC,GAAWl0D,MAC3BjuC,EAAKsF,cAAc48F,EAAeC,EAAWl0D,KAAMxoC,EAErDy8F,GAAchoE,KAAOx2B,OAAOw+F,EAAchoE,UAIvC0oE,IAGT3jG,GAAQ,WAAa2jG,EACrB1jG,EAAOD,QAAUA,EAAQ,YAIrB,SAASC,EAAQD,EAASM,GAY9B,QAASuyE,GAAuB3sE,GAAO,MAAOA,IAAOA,EAAI4sE,WAAa5sE,GAAQ6sE,UAAW7sE,GAEzF,QAAS8sE,GAAgBC,EAAUC,GAAe,KAAMD,YAAoBC,IAAgB,KAAM,IAAI5rE,WAAU,qCAEhH,QAAS89F,GAAUC,EAAUC,GAAc,GAA0B,kBAAfA,IAA4C,OAAfA,EAAuB,KAAM,IAAIh+F,WAAU,iEAAoEg+F,GAAeD,GAAShyF,UAAY7L,OAAOgJ,OAAO80F,GAAcA,EAAWjyF,WAAa9L,aAAepC,MAAOkgG,EAAU9xB,YAAY,EAAOE,UAAU,EAAMD,cAAc,KAAe8xB,IAAY99F,OAAO+9F,eAAiB/9F,OAAO+9F,eAAeF,EAAUC,GAAcD,EAASG,UAAYF,GAZje99F,OAAO2rE,eAAenzE,EAAS,cAC7BmF,OAAO,GAGT,IAAIiuE,GAAe,WAAe,QAASC,GAAiB/nE,EAAQrE,GAAS,IAAK,GAAIJ,GAAI,EAAGA,EAAII,EAAMP,OAAQG,IAAK,CAAE,GAAIysE,GAAarsE,EAAMJ,EAAIysE,GAAWC,WAAaD,EAAWC,aAAc,EAAOD,EAAWE,cAAe,EAAU,SAAWF,KAAYA,EAAWG,UAAW,GAAMjsE,OAAO2rE,eAAe7nE,EAAQgoE,EAAWvpE,IAAKupE,IAAiB,MAAO,UAAUJ,EAAaQ,EAAYC,GAAiJ,MAA9HD,IAAYL,EAAiBH,EAAY7/D,UAAWqgE,GAAiBC,GAAaN,EAAiBH,EAAaS,GAAqBT,MAE7hBuyB,EAAO,SAAaC,EAAIC,EAAKC,GAAqC,IAA9B,GAAIC,IAAS,EAAwBA,GAAQ,CAAE,GAAIrhG,GAASkhG,EAAIvhD,EAAWwhD,EAAKG,EAAWF,CAAKC,IAAS,EAAsB,OAAXrhG,IAAiBA,EAASmW,SAAStH,UAAW,IAAI0yF,GAAOv+F,OAAOw+F,yBAAyBxhG,EAAQ2/C,EAAW,IAAax9C,SAATo/F,EAAJ,CAA4O,GAAI,SAAWA,GAAQ,MAAOA,GAAK5gG,KAAgB,IAAI0mB,GAASk6E,EAAKhyE,GAAK,IAAeptB,SAAXklB,EAAwB,MAAoB,OAAOA,GAAOlrB,KAAKmlG,GAA/V,GAAIn6F,GAASnE,OAAOy+F,eAAezhG,EAAS,IAAe,OAAXmH,EAAmB,MAA2B+5F,GAAK/5F,EAAQg6F,EAAMxhD,EAAUyhD,EAAME,EAAUD,GAAS,EAAME,EAAOp6F,EAAShF,SAQxcu/F,EAAgB5lG,EAAoB,IAEpC6lG,EAAiBtzB,EAAuBqzB,GAExCE,EAAM,SAAWC,GAGnB,QAASD,GAAIniG,EAASm4C,EAAMmmD,GAC1BvvB,EAAgB5yE,KAAMgmG,GAEtBX,EAAKj+F,OAAOy+F,eAAeG,EAAI/yF,WAAY,cAAejT,MAAMO,KAAKP,KAAM6D,EAASm4C,EAAMmmD,GA6E5F,MAlFA6C,GAAUgB,EAAKC,GAQfjzB,EAAagzB,IACXr8F,IAAK,SACL5E,MAAO,SAAgBqpC,EAAK+0B,GAC1B,GAAmB58D,SAAfvG,KAAKo7B,MAAqB,CAC5B,GAAIgG,GAAS,EACT8kE,EAAWlmG,KAAKmiG,YAAYgE,YAAY/3D,EAAK+0B,EACjDnjE,MAAKo7B,MAAQ8qE,EAAS9qE,MAAQ,EAAIgG,EAClCphC,KAAKq7B,OAAS6qE,EAAS7qE,OAAS,EAAI+F,EACpCphC,KAAKyyC,OAAS,GAAMzyC,KAAKo7B,UAI7BzxB,IAAK,OACL5E,MAAO,SAAcqpC,EAAK5T,EAAG/a,EAAG0jD,EAAU/0D,GACxCpO,KAAK4iG,OAAOx0D,EAAK+0B,GACjBnjE,KAAK2I,KAAO6xB,EAAIx6B,KAAKo7B,MAAQ,EAC7Bp7B,KAAK6I,IAAM4W,EAAIzf,KAAKq7B,OAAS,CAE7B,IAAIsM,GAAc3nC,KAAK6D,QAAQ8jC,YAC3By+D,EAAqBpmG,KAAK6D,QAAQ65F,qBAAuB,EAAI19F,KAAK6D,QAAQ8jC,WAE9EyG,GAAIY,YAAcm0B,EAAWnjE,KAAK6D,QAAQ4I,MAAM0B,UAAUD,OAASE,EAAQpO,KAAK6D,QAAQ4I,MAAM2B,MAAMF,OAASlO,KAAK6D,QAAQ4I,MAAMyB,OAChIkgC,EAAIO,UAAYw0B,EAAWijC,EAAqBz+D,EAChDyG,EAAIO,WAAa3uC,KAAKg8C,KAAK86C,KAAK9xF,MAChCopC,EAAIO,UAAY1pC,KAAKL,IAAI5E,KAAKo7B,MAAOgT,EAAIO,WAEzCP,EAAIiB,UAAY8zB,EAAWnjE,KAAK6D,QAAQ4I,MAAM0B,UAAUF,WAAaG,EAAQpO,KAAK6D,QAAQ4I,MAAM2B,MAAMH,WAAajO,KAAK6D,QAAQ4I,MAAMwB,UAEtI,IAAIwoC,GAAez2C,KAAK6D,QAAQ46F,gBAAgBhoD,YAChDrI,GAAIi4D,UAAUrmG,KAAK2I,KAAM3I,KAAK6I,IAAK7I,KAAKo7B,MAAOp7B,KAAKq7B,OAAQob,GAG5Dz2C,KAAKsmG,aAAal4D,GAElBA,EAAI9J,OAEJtkC,KAAKumG,cAAcn4D,GAGnBA,EAAIo4D,OACJxmG,KAAKymG,mBAAmBr4D,GAExBA,EAAI7J,SAEJvkC,KAAK0mG,oBAAoBt4D,GACzBA,EAAIu4D,UAEJ3mG,KAAK2iG,kBAAkBnoE,EAAG/a,EAAG2uB,EAAK+0B,GAClCnjE,KAAKmiG,YAAYpqB,KAAK3pC,EAAK5T,EAAG/a,EAAG0jD,MAGnCx5D,IAAK,oBACL5E,MAAO,SAA2By1B,EAAG/a,EAAG2uB,EAAK+0B,GAC3CnjE,KAAK4iG,OAAOx0D,EAAK+0B,GACjBnjE,KAAK2I,KAAO6xB,EAAiB,GAAbx6B,KAAKo7B,MACrBp7B,KAAK6I,IAAM4W,EAAkB,GAAdzf,KAAKq7B,OAEpBr7B,KAAK0/F,YAAY/2F,KAAO3I,KAAK2I,KAC7B3I,KAAK0/F,YAAY72F,IAAM7I,KAAK6I,IAC5B7I,KAAK0/F,YAAYx0D,OAASlrC,KAAK6I,IAAM7I,KAAKq7B,OAC1Cr7B,KAAK0/F,YAAYhxD,MAAQ1uC,KAAK2I,KAAO3I,KAAKo7B,SAG5CzxB,IAAK,mBACL5E,MAAO,SAA0BqpC,EAAK4Y,GACpChnD,KAAK4iG,OAAOx0D,EACZ,IAAIloC,GAAIlG,KAAKo7B,MAAQ,EACjBj1B,EAAInG,KAAKq7B,OAAS,EAClBtY,EAAI9d,KAAKihC,IAAI8gB,GAAS9gD,EACtBwH,EAAIzI,KAAKohC,IAAI2gB,GAAS7gD,CAC1B,OAAOD,GAAIC,EAAIlB,KAAKoxC,KAAKtzB,EAAIA,EAAIrV,EAAIA,OAIlCs4F,GACND,EAAe,WAElBnmG,GAAQ,WAAaomG,EACrBnmG,EAAOD,QAAUA,EAAQ,YAIrB,SAASC,EAAQD,GAUrB,QAASgzE,GAAgBC,EAAUC,GAAe,KAAMD,YAAoBC,IAAgB,KAAM,IAAI5rE,WAAU,qCANhHE,OAAO2rE,eAAenzE,EAAS,cAC7BmF,OAAO,GAGT,IAAIiuE,GAAe,WAAe,QAASC,GAAiB/nE,EAAQrE,GAAS,IAAK,GAAIJ,GAAI,EAAGA,EAAII,EAAMP,OAAQG,IAAK,CAAE,GAAIysE,GAAarsE,EAAMJ,EAAIysE,GAAWC,WAAaD,EAAWC,aAAc,EAAOD,EAAWE,cAAe,EAAU,SAAWF,KAAYA,EAAWG,UAAW,GAAMjsE,OAAO2rE,eAAe7nE,EAAQgoE,EAAWvpE,IAAKupE,IAAiB,MAAO,UAAUJ,EAAaQ,EAAYC,GAAiJ,MAA9HD,IAAYL,EAAiBH,EAAY7/D,UAAWqgE,GAAiBC,GAAaN,EAAiBH,EAAaS,GAAqBT,MAI7hB8zB,EAAW,WACb,QAASA,GAAS/iG,EAASm4C,EAAMmmD,GAC/BvvB,EAAgB5yE,KAAM4mG,GAEtB5mG,KAAKg8C,KAAOA,EACZh8C,KAAKmiG,YAAcA,EACnBniG,KAAK47B,WAAW/3B,GAChB7D,KAAK6I,IAAMtC,OACXvG,KAAK2I,KAAOpC,OACZvG,KAAKq7B,OAAS90B,OACdvG,KAAKo7B,MAAQ70B,OACbvG,KAAKyyC,OAASlsC,OACdvG,KAAK0/F,aAAgB72F,IAAK,EAAGF,KAAM,EAAG+lC,MAAO,EAAGxD,OAAQ,GAiE1D,MA9DA8nC,GAAa4zB,IACXj9F,IAAK,aACL5E,MAAO,SAAoBlB,GACzB7D,KAAK6D,QAAUA,KAGjB8F,IAAK,oBACL5E,MAAO,SAA2BqpC,EAAK4Y,GACrC,GAAIrf,GAAc,CAElB,OADA3nC,MAAK4iG,OAAOx0D,GACLnpC,KAAKL,IAAIK,KAAK6R,IAAI9W,KAAKo7B,MAAQ,EAAIn2B,KAAKohC,IAAI2gB,IAAS/hD,KAAK6R,IAAI9W,KAAKq7B,OAAS,EAAIp2B,KAAKihC,IAAI8gB,KAAWrf,KAG7Gh+B,IAAK,eACL5E,MAAO,SAAsBqpC,GACvBpuC,KAAK6D,QAAQ06F,OAAO1tF,WAAY,IAClCu9B,EAAIy4D,YAAc,kBAClBz4D,EAAI04D,WAAa9mG,KAAK6D,QAAQ06F,OAAO1jE,KACrCuT,EAAI24D,cAAgB/mG,KAAK6D,QAAQ06F,OAAO/jE,EACxC4T,EAAI44D,cAAgBhnG,KAAK6D,QAAQ06F,OAAO9+E,MAI5C9V,IAAK,gBACL5E,MAAO,SAAuBqpC,GACxBpuC,KAAK6D,QAAQ06F,OAAO1tF,WAAY,IAClCu9B,EAAIy4D,YAAc,gBAClBz4D,EAAI04D,WAAa,EACjB14D,EAAI24D,cAAgB,EACpB34D,EAAI44D,cAAgB,MAIxBr9F,IAAK,qBACL5E,MAAO,SAA4BqpC,GACjC,GAAIpuC,KAAK6D,QAAQ46F,gBAAgBC,gBAAiB,EAChD,GAAwBn4F,SAApB6nC,EAAI64D,YAA2B,CACjC,GAAIC,GAASlnG,KAAK6D,QAAQ46F,gBAAgBC,YACtCwI,MAAW,IACbA,GAAU,EAAG,KAEf94D,EAAI64D,YAAYC,OAEhB1oF,SAAQH,KAAK,oFACbre,KAAK6D,QAAQ46F,gBAAgBC,cAAe,KAKlD/0F,IAAK,sBACL5E,MAAO,SAA6BqpC,GAC9BpuC,KAAK6D,QAAQ46F,gBAAgBC,gBAAiB,IACxBn4F,SAApB6nC,EAAI64D,YACN74D,EAAI64D,aAAa,KAEjBzoF,QAAQH,KAAK,oFACbre,KAAK6D,QAAQ46F,gBAAgBC,cAAe,QAM7CkI,IAGThnG,GAAQ,WAAagnG,EACrB/mG,EAAOD,QAAUA,EAAQ,YAIrB,SAASC,EAAQD,EAASM,GAY9B,QAASuyE,GAAuB3sE,GAAO,MAAOA,IAAOA,EAAI4sE,WAAa5sE,GAAQ6sE,UAAW7sE,GAEzF,QAAS8sE,GAAgBC,EAAUC,GAAe,KAAMD,YAAoBC,IAAgB,KAAM,IAAI5rE,WAAU,qCAEhH,QAAS89F,GAAUC,EAAUC,GAAc,GAA0B,kBAAfA,IAA4C,OAAfA,EAAuB,KAAM,IAAIh+F,WAAU,iEAAoEg+F,GAAeD,GAAShyF,UAAY7L,OAAOgJ,OAAO80F,GAAcA,EAAWjyF,WAAa9L,aAAepC,MAAOkgG,EAAU9xB,YAAY,EAAOE,UAAU,EAAMD,cAAc,KAAe8xB,IAAY99F,OAAO+9F,eAAiB/9F,OAAO+9F,eAAeF,EAAUC,GAAcD,EAASG,UAAYF,GAZje99F,OAAO2rE,eAAenzE,EAAS,cAC7BmF,OAAO,GAGT,IAAIiuE,GAAe,WAAe,QAASC,GAAiB/nE,EAAQrE,GAAS,IAAK,GAAIJ,GAAI,EAAGA,EAAII,EAAMP,OAAQG,IAAK,CAAE,GAAIysE,GAAarsE,EAAMJ,EAAIysE,GAAWC,WAAaD,EAAWC,aAAc,EAAOD,EAAWE,cAAe,EAAU,SAAWF,KAAYA,EAAWG,UAAW,GAAMjsE,OAAO2rE,eAAe7nE,EAAQgoE,EAAWvpE,IAAKupE,IAAiB,MAAO,UAAUJ,EAAaQ,EAAYC,GAAiJ,MAA9HD,IAAYL,EAAiBH,EAAY7/D,UAAWqgE,GAAiBC,GAAaN,EAAiBH,EAAaS,GAAqBT,MAE7hBuyB,EAAO,SAAaC,EAAIC,EAAKC,GAAqC,IAA9B,GAAIC,IAAS,EAAwBA,GAAQ,CAAE,GAAIrhG,GAASkhG,EAAIvhD,EAAWwhD,EAAKG,EAAWF,CAAKC,IAAS,EAAsB,OAAXrhG,IAAiBA,EAASmW,SAAStH,UAAW,IAAI0yF,GAAOv+F,OAAOw+F,yBAAyBxhG,EAAQ2/C,EAAW,IAAax9C,SAATo/F,EAAJ,CAA4O,GAAI,SAAWA,GAAQ,MAAOA,GAAK5gG,KAAgB,IAAI0mB,GAASk6E,EAAKhyE,GAAK,IAAeptB,SAAXklB,EAAwB,MAAoB,OAAOA,GAAOlrB,KAAKmlG,GAA/V,GAAIn6F,GAASnE,OAAOy+F,eAAezhG,EAAS,IAAe,OAAXmH,EAAmB,MAA2B+5F,GAAK/5F,EAAQg6F,EAAMxhD,EAAUyhD,EAAME,EAAUD,GAAS,EAAME,EAAOp6F,EAAShF,SAQxc4gG,EAAuBjnG,EAAoB,IAE3CknG,EAAwB30B,EAAuB00B,GAE/CE,EAAS,SAAWC,GAGtB,QAASD,GAAOxjG,EAASm4C,EAAMmmD,GAC7BvvB,EAAgB5yE,KAAMqnG,GAEtBhC,EAAKj+F,OAAOy+F,eAAewB,EAAOp0F,WAAY,cAAejT,MAAMO,KAAKP,KAAM6D,EAASm4C,EAAMmmD,GAsD/F,MA3DA6C,GAAUqC,EAAQC,GAQlBt0B,EAAaq0B,IACX19F,IAAK,SACL5E,MAAO,SAAgBqpC,EAAK+0B,GAC1B,GAAmB58D,SAAfvG,KAAKo7B,MAAqB,CAC5B,GAAIgG,GAAS,EACT8kE,EAAWlmG,KAAKmiG,YAAYgE,YAAY/3D,EAAK+0B,GAC7CokC,EAAWtiG,KAAKJ,IAAIqhG,EAAS9qE,MAAO8qE,EAAS7qE,QAAU,EAAI+F,CAC/DphC,MAAK6D,QAAQg3B,KAAO0sE,EAAW,EAE/BvnG,KAAKo7B,MAAQmsE,EACbvnG,KAAKq7B,OAASksE,EACdvnG,KAAKyyC,OAAS,GAAMzyC,KAAKo7B,UAI7BzxB,IAAK,OACL5E,MAAO,SAAcqpC,EAAK5T,EAAG/a,EAAG0jD,EAAU/0D,GACxCpO,KAAK4iG,OAAOx0D,EAAK+0B,GACjBnjE,KAAK2I,KAAO6xB,EAAIx6B,KAAKo7B,MAAQ,EAC7Bp7B,KAAK6I,IAAM4W,EAAIzf,KAAKq7B,OAAS,EAE7Br7B,KAAKwnG,eAAep5D,EAAK5T,EAAG/a,EAAG0jD,EAAU/0D,EAAOpO,KAAK6D,QAAQg3B,MAE7D76B,KAAK0/F,YAAY72F,IAAM4W,EAAIzf,KAAK6D,QAAQg3B,KACxC76B,KAAK0/F,YAAY/2F,KAAO6xB,EAAIx6B,KAAK6D,QAAQg3B,KACzC76B,KAAK0/F,YAAYhxD,MAAQlU,EAAIx6B,KAAK6D,QAAQg3B,KAC1C76B,KAAK0/F,YAAYx0D,OAASzrB,EAAIzf,KAAK6D,QAAQg3B,KAE3C76B,KAAK2iG,kBAAkBnoE,EAAG/a,GAC1Bzf,KAAKmiG,YAAYpqB,KAAK3pC,EAAK5T,EAAG/a,EAAG0jD,MAGnCx5D,IAAK,oBACL5E,MAAO,SAA2By1B,EAAG/a,GACnCzf,KAAK0/F,YAAY72F,IAAM4W,EAAIzf,KAAK6D,QAAQg3B,KACxC76B,KAAK0/F,YAAY/2F,KAAO6xB,EAAIx6B,KAAK6D,QAAQg3B,KACzC76B,KAAK0/F,YAAYhxD,MAAQlU,EAAIx6B,KAAK6D,QAAQg3B,KAC1C76B,KAAK0/F,YAAYx0D,OAASzrB,EAAIzf,KAAK6D,QAAQg3B,QAG7ClxB,IAAK,mBACL5E,MAAO,SAA0BqpC,EAAK4Y,GACpChnD,KAAK4iG,OAAOx0D,EACZ,IAAIloC,GAAIlG,KAAKo7B,MAAQ,EACjBj1B,EAAInG,KAAKq7B,OAAS,EAClBtY,EAAI9d,KAAKihC,IAAI8gB,GAAS9gD,EACtBwH,EAAIzI,KAAKohC,IAAI2gB,GAAS7gD,CAC1B,OAAOD,GAAIC,EAAIlB,KAAKoxC,KAAKtzB,EAAIA,EAAIrV,EAAIA,OAIlC25F,GACND,EAAsB,WAEzBxnG,GAAQ,WAAaynG,EACrBxnG,EAAOD,QAAUA,EAAQ,YAIrB,SAASC,EAAQD,EAASM,GAY9B,QAASuyE,GAAuB3sE,GAAO,MAAOA,IAAOA,EAAI4sE,WAAa5sE,GAAQ6sE,UAAW7sE,GAEzF,QAAS8sE,GAAgBC,EAAUC,GAAe,KAAMD,YAAoBC,IAAgB,KAAM,IAAI5rE,WAAU,qCAEhH,QAAS89F,GAAUC,EAAUC,GAAc,GAA0B,kBAAfA,IAA4C,OAAfA,EAAuB,KAAM,IAAIh+F,WAAU,iEAAoEg+F,GAAeD,GAAShyF,UAAY7L,OAAOgJ,OAAO80F,GAAcA,EAAWjyF,WAAa9L,aAAepC,MAAOkgG,EAAU9xB,YAAY,EAAOE,UAAU,EAAMD,cAAc,KAAe8xB,IAAY99F,OAAO+9F,eAAiB/9F,OAAO+9F,eAAeF,EAAUC,GAAcD,EAASG,UAAYF,GAZje99F,OAAO2rE,eAAenzE,EAAS,cAC7BmF,OAAO,GAGT,IAAIiuE,GAAe,WAAe,QAASC,GAAiB/nE,EAAQrE,GAAS,IAAK,GAAIJ,GAAI,EAAGA,EAAII,EAAMP,OAAQG,IAAK,CAAE,GAAIysE,GAAarsE,EAAMJ,EAAIysE,GAAWC,WAAaD,EAAWC,aAAc,EAAOD,EAAWE,cAAe,EAAU,SAAWF,KAAYA,EAAWG,UAAW,GAAMjsE,OAAO2rE,eAAe7nE,EAAQgoE,EAAWvpE,IAAKupE,IAAiB,MAAO,UAAUJ,EAAaQ,EAAYC,GAAiJ,MAA9HD,IAAYL,EAAiBH,EAAY7/D,UAAWqgE,GAAiBC,GAAaN,EAAiBH,EAAaS,GAAqBT,MAE7hBuyB,EAAO,SAAaC,EAAIC,EAAKC,GAAqC,IAA9B,GAAIC,IAAS,EAAwBA,GAAQ,CAAE,GAAIrhG,GAASkhG,EAAIvhD,EAAWwhD,EAAKG,EAAWF,CAAKC,IAAS,EAAsB,OAAXrhG,IAAiBA,EAASmW,SAAStH,UAAW,IAAI0yF,GAAOv+F,OAAOw+F,yBAAyBxhG,EAAQ2/C,EAAW,IAAax9C,SAATo/F,EAAJ,CAA4O,GAAI,SAAWA,GAAQ,MAAOA,GAAK5gG,KAAgB,IAAI0mB,GAASk6E,EAAKhyE,GAAK,IAAeptB,SAAXklB,EAAwB,MAAoB,OAAOA,GAAOlrB,KAAKmlG,GAA/V,GAAIn6F,GAASnE,OAAOy+F,eAAezhG,EAAS,IAAe,OAAXmH,EAAmB,MAA2B+5F,GAAK/5F,EAAQg6F,EAAMxhD,EAAUyhD,EAAME,EAAUD,GAAS,EAAME,EAAOp6F,EAAShF,SAQxcu/F,EAAgB5lG,EAAoB,IAEpC6lG,EAAiBtzB,EAAuBqzB,GAExC2B,EAAkB,SAAWxB,GAG/B,QAASwB,GAAgB5jG,EAASm4C,EAAMmmD,GACtCvvB,EAAgB5yE,KAAMynG,GAEtBpC,EAAKj+F,OAAOy+F,eAAe4B,EAAgBx0F,WAAY,cAAejT,MAAMO,KAAKP,KAAM6D,EAASm4C,EAAMmmD,GACtGniG,KAAK0nG,YAAc,EACnB1nG,KAAK2nG,aAAc,EAqIrB,MA5IA3C,GAAUyC,EAAiBxB,GAU3BjzB,EAAay0B,IACX99F,IAAK,aACL5E,MAAO,SAAoBlB,EAASy+F,GAClCtiG,KAAK6D,QAAUA,EACXy+F,IACFtiG,KAAKsiG,SAAWA,MAWpB34F,IAAK,eACL5E,MAAO,WACL,GAAImuD,IAAQ,CASZ,IARKlzD,KAAKsiG,SAASlnE,OAAUp7B,KAAKsiG,SAASjnE,OAGhCr7B,KAAK2nG,eAAgB,IAC9B3nG,KAAK2nG,aAAc,EACnBz0C,GAAQ,GAHRlzD,KAAK2nG,aAAc,GAMhB3nG,KAAKo7B,QAAUp7B,KAAKq7B,QAAU63B,KAAU,EAAM,CAEjD,GAAI93B,GAAOC,EAAQusE,CACf5nG,MAAKsiG,SAASlnE,OAASp7B,KAAKsiG,SAASjnE,SAEvCD,EAAQ,EACRC,EAAS,GAEPr7B,KAAK6D,QAAQ46F,gBAAgBE,gBAAiB,EAC5C3+F,KAAKsiG,SAASlnE,MAAQp7B,KAAKsiG,SAASjnE,QACtCusE,EAAQ5nG,KAAKsiG,SAASlnE,MAAQp7B,KAAKsiG,SAASjnE,OAC5CD,EAA4B,EAApBp7B,KAAK6D,QAAQg3B,KAAW+sE,GAAS5nG,KAAKsiG,SAASlnE,MACvDC,EAA6B,EAApBr7B,KAAK6D,QAAQg3B,MAAY76B,KAAKsiG,SAASjnE,SAI9CusE,EAFE5nG,KAAKsiG,SAASlnE,OAASp7B,KAAKsiG,SAASjnE,OAE/Br7B,KAAKsiG,SAASjnE,OAASr7B,KAAKsiG,SAASlnE,MAErC,EAEVA,EAA4B,EAApBp7B,KAAK6D,QAAQg3B,KACrBQ,EAA6B,EAApBr7B,KAAK6D,QAAQg3B,KAAW+sE,IAInCxsE,EAAQp7B,KAAKsiG,SAASlnE,MACtBC,EAASr7B,KAAKsiG,SAASjnE,QAEzBr7B,KAAKo7B,MAAQA,EACbp7B,KAAKq7B,OAASA,EACdr7B,KAAKyyC,OAAS,GAAMzyC,KAAKo7B,UAI7BzxB,IAAK,iBACL5E,MAAO,SAAwBqpC,EAAK5T,EAAG/a,EAAG0jD,EAAU/0D,EAAOysB,GACzD,GAAI8M,GAAc3nC,KAAK6D,QAAQ8jC,YAC3By+D,EAAqBpmG,KAAK6D,QAAQ65F,qBAAuB,EAAI19F,KAAK6D,QAAQ8jC,WAE9EyG,GAAIY,YAAcm0B,EAAWnjE,KAAK6D,QAAQ4I,MAAM0B,UAAUD,OAASE,EAAQpO,KAAK6D,QAAQ4I,MAAM2B,MAAMF,OAASlO,KAAK6D,QAAQ4I,MAAMyB,OAEhIkgC,EAAIO,UAAYw0B,EAAWijC,EAAqBz+D,EAChDyG,EAAIO,WAAa3uC,KAAK6nG,gBACtBz5D,EAAIO,UAAY1pC,KAAKL,IAAI5E,KAAKo7B,MAAOgT,EAAIO,WACzCP,EAAIiB,UAAY8zB,EAAWnjE,KAAK6D,QAAQ4I,MAAM0B,UAAUF,WAAaG,EAAQpO,KAAK6D,QAAQ4I,MAAM2B,MAAMH,WAAajO,KAAK6D,QAAQ4I,MAAMwB,WACtImgC,EAAIm1C,OAAO/oD,EAAG/a,EAAGob,GAGjB76B,KAAKsmG,aAAal4D,GAElBA,EAAI9J,OAEJtkC,KAAKumG,cAAcn4D,GAGnBA,EAAIo4D,OACJxmG,KAAKymG,mBAAmBr4D,GAExBA,EAAI7J,SAEJvkC,KAAK0mG,oBAAoBt4D,GACzBA,EAAIu4D,aAGNh9F,IAAK,uBACL5E,MAAO,SAA8BqpC,GACR,GAAvBpuC,KAAKsiG,SAASlnE,QAEhBgT,EAAI05D,YAAc,EAGlB9nG,KAAKsmG,aAAal4D,GAGlBA,EAAI25D,UAAU/nG,KAAKsiG,SAAUtiG,KAAK2I,KAAM3I,KAAK6I,IAAK7I,KAAKo7B,MAAOp7B,KAAKq7B,QAGnEr7B,KAAKumG,cAAcn4D,OAIvBzkC,IAAK,kBACL5E,MAAO,SAAyBqpC,EAAK5T,EAAG/a,EAAG0jD,GACzC,GAAI3hC,GACApb,EAAS,CAEb,IAAoB7f,SAAhBvG,KAAKq7B,OAAsB,CAC7BjV,EAAuB,GAAdpmB,KAAKq7B,MACd,IAAI2sE,GAAkBhoG,KAAKmiG,YAAYgE,YAAY/3D,EAC/C45D,GAAgBrD,WAAa,IAC/Bv+E,GAAU4hF,EAAgB3sE,OAAS,GAIvCmG,EAAS/hB,EAAI2G,EAETpmB,KAAK6D,QAAQi3B,QACf96B,KAAK0nG,YAActhF,GAErBpmB,KAAKmiG,YAAYpqB,KAAK3pC,EAAK5T,EAAGgH,EAAQ2hC,EAAU,eAI7CskC,GACN1B,EAAe,WAElBnmG,GAAQ,WAAa6nG,EACrB5nG,EAAOD,QAAUA,EAAQ,YAIrB,SAASC,EAAQD,EAASM,GAY9B,QAASuyE,GAAuB3sE,GAAO,MAAOA,IAAOA,EAAI4sE,WAAa5sE,GAAQ6sE,UAAW7sE,GAEzF,QAAS8sE,GAAgBC,EAAUC,GAAe,KAAMD,YAAoBC,IAAgB,KAAM,IAAI5rE,WAAU,qCAEhH,QAAS89F,GAAUC,EAAUC,GAAc,GAA0B,kBAAfA,IAA4C,OAAfA,EAAuB,KAAM,IAAIh+F,WAAU,iEAAoEg+F,GAAeD,GAAShyF,UAAY7L,OAAOgJ,OAAO80F,GAAcA,EAAWjyF,WAAa9L,aAAepC,MAAOkgG,EAAU9xB,YAAY,EAAOE,UAAU,EAAMD,cAAc,KAAe8xB,IAAY99F,OAAO+9F,eAAiB/9F,OAAO+9F,eAAeF,EAAUC,GAAcD,EAASG,UAAYF,GAZje99F,OAAO2rE,eAAenzE,EAAS,cAC7BmF,OAAO,GAGT,IAAIiuE,GAAe,WAAe,QAASC,GAAiB/nE,EAAQrE,GAAS,IAAK,GAAIJ,GAAI,EAAGA,EAAII,EAAMP,OAAQG,IAAK,CAAE,GAAIysE,GAAarsE,EAAMJ,EAAIysE,GAAWC,WAAaD,EAAWC,aAAc,EAAOD,EAAWE,cAAe,EAAU,SAAWF,KAAYA,EAAWG,UAAW,GAAMjsE,OAAO2rE,eAAe7nE,EAAQgoE,EAAWvpE,IAAKupE,IAAiB,MAAO,UAAUJ,EAAaQ,EAAYC,GAAiJ,MAA9HD,IAAYL,EAAiBH,EAAY7/D,UAAWqgE,GAAiBC,GAAaN,EAAiBH,EAAaS,GAAqBT,MAE7hBuyB,EAAO,SAAaC,EAAIC,EAAKC,GAAqC,IAA9B,GAAIC,IAAS,EAAwBA,GAAQ,CAAE,GAAIrhG,GAASkhG,EAAIvhD,EAAWwhD,EAAKG,EAAWF,CAAKC,IAAS,EAAsB,OAAXrhG,IAAiBA,EAASmW,SAAStH,UAAW,IAAI0yF,GAAOv+F,OAAOw+F,yBAAyBxhG,EAAQ2/C,EAAW,IAAax9C,SAATo/F,EAAJ,CAA4O,GAAI,SAAWA,GAAQ,MAAOA,GAAK5gG,KAAgB,IAAI0mB,GAASk6E,EAAKhyE,GAAK,IAAeptB,SAAXklB,EAAwB,MAAoB,OAAOA,GAAOlrB,KAAKmlG,GAA/V,GAAIn6F,GAASnE,OAAOy+F,eAAezhG,EAAS,IAAe,OAAXmH,EAAmB,MAA2B+5F,GAAK/5F,EAAQg6F,EAAMxhD,EAAUyhD,EAAME,EAAUD,GAAS,EAAME,EAAOp6F,EAAShF,SAQxc4gG,EAAuBjnG,EAAoB,IAE3CknG,EAAwB30B,EAAuB00B,GAE/Cc,EAAgB,SAAWX,GAG7B,QAASW,GAAcpkG,EAASm4C,EAAMmmD,EAAaG,GACjD1vB,EAAgB5yE,KAAMioG,GAEtB5C,EAAKj+F,OAAOy+F,eAAeoC,EAAch1F,WAAY,cAAejT,MAAMO,KAAKP,KAAM6D,EAASm4C,EAAMmmD,GACpGniG,KAAKsiG,SAAWA,EAChBtiG,KAAKkoG,mCAAoC,EAoE3C,MA3EAlD,GAAUiD,EAAeX,GAUzBt0B,EAAai1B,IACXt+F,IAAK,SACL5E,MAAO,WACL,GAA0BwB,SAAtBvG,KAAKsiG,SAAS//C,KAA6Ch8C,SAAxBvG,KAAKsiG,SAASlnE,OAAgD70B,SAAzBvG,KAAKsiG,SAASjnE,QACxF,IAAKr7B,KAAKo7B,MAAO,CACf,GAAImsE,GAA+B,EAApBvnG,KAAK6D,QAAQg3B,IAC5B76B,MAAKo7B,MAAQmsE,EACbvnG,KAAKq7B,OAASksE,EACdvnG,KAAKkoG,mCAAoC,EACzCloG,KAAKyyC,OAAS,GAAMzyC,KAAKo7B,WAGvBp7B,MAAKkoG,oCACPloG,KAAKo7B,MAAQ70B,OACbvG,KAAKq7B,OAAS90B,OACdvG,KAAKkoG,mCAAoC,GAE3CloG,KAAKmoG,kBAITx+F,IAAK,OACL5E,MAAO,SAAcqpC,EAAK5T,EAAG/a,EAAG0jD,EAAU/0D,GACxCpO,KAAK4iG,SAEL5iG,KAAK2I,KAAO6xB,EAAIx6B,KAAKo7B,MAAQ,EAC7Bp7B,KAAK6I,IAAM4W,EAAIzf,KAAKq7B,OAAS,CAE7B,IAAIR,GAAO51B,KAAKL,IAAI,GAAM5E,KAAKq7B,OAAQ,GAAMr7B,KAAKo7B,MAGlDp7B,MAAKwnG,eAAep5D,EAAK5T,EAAG/a,EAAG0jD,EAAU/0D,EAAOysB,GAGhDuT,EAAIo4D,OAEJp4D,EAAIg6D,OAEJpoG,KAAKqoG,qBAAqBj6D,GAE1BA,EAAIu4D,UAEJ3mG,KAAKsoG,gBAAgBl6D,EAAK5T,EAAG/a,EAAG0jD,GAEhCnjE,KAAK2iG,kBAAkBnoE,EAAG/a,MAG5B9V,IAAK,oBACL5E,MAAO,SAA2By1B,EAAG/a,GACnCzf,KAAK0/F,YAAY72F,IAAM4W,EAAIzf,KAAK6D,QAAQg3B,KACxC76B,KAAK0/F,YAAY/2F,KAAO6xB,EAAIx6B,KAAK6D,QAAQg3B,KACzC76B,KAAK0/F,YAAYhxD,MAAQlU,EAAIx6B,KAAK6D,QAAQg3B,KAC1C76B,KAAK0/F,YAAYx0D,OAASzrB,EAAIzf,KAAK6D,QAAQg3B,KAC3C76B,KAAK0/F,YAAY/2F,KAAO1D,KAAKL,IAAI5E,KAAK0/F,YAAY/2F,KAAM3I,KAAKmiG,YAAYtnE,KAAKlyB,MAC9E3I,KAAK0/F,YAAYhxD,MAAQzpC,KAAKJ,IAAI7E,KAAK0/F,YAAYhxD,MAAO1uC,KAAKmiG,YAAYtnE,KAAKlyB,KAAO3I,KAAKmiG,YAAYtnE,KAAKO,OAC7Gp7B,KAAK0/F,YAAYx0D,OAASjmC,KAAKJ,IAAI7E,KAAK0/F,YAAYx0D,OAAQlrC,KAAK0/F,YAAYx0D,OAASlrC,KAAK0nG,gBAG7F/9F,IAAK,mBACL5E,MAAO,SAA0BqpC,EAAK4Y,GAEpC,MADAhnD,MAAK4iG,OAAOx0D,GACLpuC,KAAKuoG,kBAAkBn6D,EAAK4Y,OAIhCihD,GACNb,EAAsB,WAEzBxnG,GAAQ,WAAaqoG,EACrBpoG,EAAOD,QAAUA,EAAQ,YAIrB,SAASC,EAAQD,EAASM,GAY9B,QAASuyE,GAAuB3sE,GAAO,MAAOA,IAAOA,EAAI4sE,WAAa5sE,GAAQ6sE,UAAW7sE,GAEzF,QAAS8sE,GAAgBC,EAAUC,GAAe,KAAMD,YAAoBC,IAAgB,KAAM,IAAI5rE,WAAU,qCAEhH,QAAS89F,GAAUC,EAAUC,GAAc,GAA0B,kBAAfA,IAA4C,OAAfA,EAAuB,KAAM,IAAIh+F,WAAU,iEAAoEg+F,GAAeD,GAAShyF,UAAY7L,OAAOgJ,OAAO80F,GAAcA,EAAWjyF,WAAa9L,aAAepC,MAAOkgG,EAAU9xB,YAAY,EAAOE,UAAU,EAAMD,cAAc,KAAe8xB,IAAY99F,OAAO+9F,eAAiB/9F,OAAO+9F,eAAeF,EAAUC,GAAcD,EAASG,UAAYF,GAZje99F,OAAO2rE,eAAenzE,EAAS,cAC7BmF,OAAO,GAGT,IAAIiuE,GAAe,WAAe,QAASC,GAAiB/nE,EAAQrE,GAAS,IAAK,GAAIJ,GAAI,EAAGA,EAAII,EAAMP,OAAQG,IAAK,CAAE,GAAIysE,GAAarsE,EAAMJ,EAAIysE,GAAWC,WAAaD,EAAWC,aAAc,EAAOD,EAAWE,cAAe,EAAU,SAAWF,KAAYA,EAAWG,UAAW,GAAMjsE,OAAO2rE,eAAe7nE,EAAQgoE,EAAWvpE,IAAKupE,IAAiB,MAAO,UAAUJ,EAAaQ,EAAYC,GAAiJ,MAA9HD,IAAYL,EAAiBH,EAAY7/D,UAAWqgE,GAAiBC,GAAaN,EAAiBH,EAAaS,GAAqBT,MAE7hBuyB,EAAO,SAAaC,EAAIC,EAAKC,GAAqC,IAA9B,GAAIC,IAAS,EAAwBA,GAAQ,CAAE,GAAIrhG,GAASkhG,EAAIvhD,EAAWwhD,EAAKG,EAAWF,CAAKC,IAAS,EAAsB,OAAXrhG,IAAiBA,EAASmW,SAAStH,UAAW,IAAI0yF,GAAOv+F,OAAOw+F,yBAAyBxhG,EAAQ2/C,EAAW,IAAax9C,SAATo/F,EAAJ,CAA4O,GAAI,SAAWA,GAAQ,MAAOA,GAAK5gG,KAAgB,IAAI0mB,GAASk6E,EAAKhyE,GAAK,IAAeptB,SAAXklB,EAAwB,MAAoB,OAAOA,GAAOlrB,KAAKmlG,GAA/V,GAAIn6F,GAASnE,OAAOy+F,eAAezhG,EAAS,IAAe,OAAXmH,EAAmB,MAA2B+5F,GAAK/5F,EAAQg6F,EAAMxhD,EAAUyhD,EAAME,EAAUD,GAAS,EAAME,EAAOp6F,EAAShF,SAQxcu/F,EAAgB5lG,EAAoB,IAEpC6lG,EAAiBtzB,EAAuBqzB,GAExC0C,EAAW,SAAWvC,GAGxB,QAASuC,GAAS3kG,EAASm4C,EAAMmmD,GAC/BvvB,EAAgB5yE,KAAMwoG,GAEtBnD,EAAKj+F,OAAOy+F,eAAe2C,EAASv1F,WAAY,cAAejT,MAAMO,KAAKP,KAAM6D,EAASm4C,EAAMmmD,GA6EjG,MAlFA6C,GAAUwD,EAAUvC,GAQpBjzB,EAAaw1B,IACX7+F,IAAK,SACL5E,MAAO,SAAgBqpC,EAAK+0B,GAC1B,GAAmB58D,SAAfvG,KAAKo7B,MAAqB,CAC5B,GAAIgG,GAAS,EACT8kE,EAAWlmG,KAAKmiG,YAAYgE,YAAY/3D,EAAK+0B,GAC7CtoC,EAAOqrE,EAAS9qE,MAAQ,EAAIgG,CAChCphC,MAAKo7B,MAAQP,EACb76B,KAAKq7B,OAASR,EACd76B,KAAKyyC,OAAS,GAAMzyC,KAAKo7B,UAI7BzxB,IAAK,OACL5E,MAAO,SAAcqpC,EAAK5T,EAAG/a,EAAG0jD,EAAU/0D,GACxCpO,KAAK4iG,OAAOx0D,EAAK+0B,GACjBnjE,KAAK2I,KAAO6xB,EAAIx6B,KAAKo7B,MAAQ,EAC7Bp7B,KAAK6I,IAAM4W,EAAIzf,KAAKq7B,OAAS,CAE7B,IAAIsM,GAAc3nC,KAAK6D,QAAQ8jC,YAC3By+D,EAAqBpmG,KAAK6D,QAAQ65F,qBAAuB,EAAI19F,KAAK6D,QAAQ8jC,WAE9EyG,GAAIY,YAAcm0B,EAAWnjE,KAAK6D,QAAQ4I,MAAM0B,UAAUD,OAASE,EAAQpO,KAAK6D,QAAQ4I,MAAM2B,MAAMF,OAASlO,KAAK6D,QAAQ4I,MAAMyB,OAChIkgC,EAAIO,UAAY3uC,KAAKmjE,SAAWijC,EAAqBz+D,EACrDyG,EAAIO,WAAa3uC,KAAK6nG,gBACtBz5D,EAAIO,UAAY1pC,KAAKL,IAAI5E,KAAKo7B,MAAOgT,EAAIO,WAEzCP,EAAIiB,UAAY8zB,EAAWnjE,KAAK6D,QAAQ4I,MAAM0B,UAAUF,WAAaG,EAAQpO,KAAK6D,QAAQ4I,MAAM2B,MAAMH,WAAajO,KAAK6D,QAAQ4I,MAAMwB,WACtImgC,EAAIq6D,SAASjuE,EAAIx6B,KAAKo7B,MAAQ,EAAG3b,EAAkB,GAAdzf,KAAKq7B,OAAcr7B,KAAKo7B,MAAOp7B,KAAKq7B,QAGzEr7B,KAAKsmG,aAAal4D,GAElBA,EAAI9J,OAEJtkC,KAAKumG,cAAcn4D,GAGnBA,EAAIo4D,OACJxmG,KAAKymG,mBAAmBr4D,GAExBA,EAAI7J,SAEJvkC,KAAK0mG,oBAAoBt4D,GACzBA,EAAIu4D,UAEJ3mG,KAAK2iG,kBAAkBnoE,EAAG/a,EAAG2uB,EAAK+0B,GAClCnjE,KAAKmiG,YAAYpqB,KAAK3pC,EAAK5T,EAAG/a,EAAG0jD,MAGnCx5D,IAAK,oBACL5E,MAAO,SAA2By1B,EAAG/a,EAAG2uB,EAAK+0B,GAC3CnjE,KAAK4iG,OAAOx0D,EAAK+0B,GAEjBnjE,KAAK2I,KAAO6xB,EAAiB,GAAbx6B,KAAKo7B,MACrBp7B,KAAK6I,IAAM4W,EAAkB,GAAdzf,KAAKq7B,OAEpBr7B,KAAK0/F,YAAY/2F,KAAO3I,KAAK2I,KAC7B3I,KAAK0/F,YAAY72F,IAAM7I,KAAK6I,IAC5B7I,KAAK0/F,YAAYx0D,OAASlrC,KAAK6I,IAAM7I,KAAKq7B,OAC1Cr7B,KAAK0/F,YAAYhxD,MAAQ1uC,KAAK2I,KAAO3I,KAAKo7B,SAG5CzxB,IAAK,mBACL5E,MAAO,SAA0BqpC,EAAK4Y,GACpChnD,KAAK4iG,OAAOx0D,EACZ,IAAIloC,GAAIlG,KAAKo7B,MAAQ,EACjBj1B,EAAInG,KAAKq7B,OAAS,EAClBtY,EAAI9d,KAAKihC,IAAI8gB,GAAS9gD,EACtBwH,EAAIzI,KAAKohC,IAAI2gB,GAAS7gD,CAC1B,OAAOD,GAAIC,EAAIlB,KAAKoxC,KAAKtzB,EAAIA,EAAIrV,EAAIA,OAIlC86F,GACNzC,EAAe,WAElBnmG,GAAQ,WAAa4oG,EACrB3oG,EAAOD,QAAUA,EAAQ,YAIrB,SAASC,EAAQD,EAASM,GAY9B,QAASuyE,GAAuB3sE,GAAO,MAAOA,IAAOA,EAAI4sE,WAAa5sE,GAAQ6sE,UAAW7sE,GAEzF,QAAS8sE,GAAgBC,EAAUC,GAAe,KAAMD,YAAoBC,IAAgB,KAAM,IAAI5rE,WAAU,qCAEhH,QAAS89F,GAAUC,EAAUC,GAAc,GAA0B,kBAAfA,IAA4C,OAAfA,EAAuB,KAAM,IAAIh+F,WAAU,iEAAoEg+F,GAAeD,GAAShyF,UAAY7L,OAAOgJ,OAAO80F,GAAcA,EAAWjyF,WAAa9L,aAAepC,MAAOkgG,EAAU9xB,YAAY,EAAOE,UAAU,EAAMD,cAAc,KAAe8xB,IAAY99F,OAAO+9F,eAAiB/9F,OAAO+9F,eAAeF,EAAUC,GAAcD,EAASG,UAAYF,GAZje99F,OAAO2rE,eAAenzE,EAAS,cAC7BmF,OAAO,GAGT,IAAIiuE,GAAe,WAAe,QAASC,GAAiB/nE,EAAQrE,GAAS,IAAK,GAAIJ,GAAI,EAAGA,EAAII,EAAMP,OAAQG,IAAK,CAAE,GAAIysE,GAAarsE,EAAMJ,EAAIysE,GAAWC,WAAaD,EAAWC,aAAc,EAAOD,EAAWE,cAAe,EAAU,SAAWF,KAAYA,EAAWG,UAAW,GAAMjsE,OAAO2rE,eAAe7nE,EAAQgoE,EAAWvpE,IAAKupE,IAAiB,MAAO,UAAUJ,EAAaQ,EAAYC,GAAiJ,MAA9HD,IAAYL,EAAiBH,EAAY7/D,UAAWqgE,GAAiBC,GAAaN,EAAiBH,EAAaS,GAAqBT,MAE7hBuyB,EAAO,SAAaC,EAAIC,EAAKC,GAAqC,IAA9B,GAAIC,IAAS,EAAwBA,GAAQ,CAAE,GAAIrhG,GAASkhG,EAAIvhD,EAAWwhD,EAAKG,EAAWF,CAAKC,IAAS,EAAsB,OAAXrhG,IAAiBA,EAASmW,SAAStH,UAAW,IAAI0yF,GAAOv+F,OAAOw+F,yBAAyBxhG,EAAQ2/C,EAAW,IAAax9C,SAATo/F,EAAJ,CAA4O,GAAI,SAAWA,GAAQ,MAAOA,GAAK5gG,KAAgB,IAAI0mB,GAASk6E,EAAKhyE,GAAK,IAAeptB,SAAXklB,EAAwB,MAAoB,OAAOA,GAAOlrB,KAAKmlG,GAA/V,GAAIn6F,GAASnE,OAAOy+F,eAAezhG,EAAS,IAAe,OAAXmH,EAAmB,MAA2B+5F,GAAK/5F,EAAQg6F,EAAMxhD,EAAUyhD,EAAME,EAAUD,GAAS,EAAME,EAAOp6F,EAAShF,SAQxcmiG,EAAiBxoG,EAAoB,IAErCyoG,EAAkBl2B,EAAuBi2B,GAEzCE,EAAU,SAAWC,GAGvB,QAASD,GAAQ/kG,EAASm4C,EAAMmmD,GAC9BvvB,EAAgB5yE,KAAM4oG,GAEtBvD,EAAKj+F,OAAOy+F,eAAe+C,EAAQ31F,WAAY,cAAejT,MAAMO,KAAKP,KAAM6D,EAASm4C,EAAMmmD,GAoBhG,MAzBA6C,GAAU4D,EAASC,GAQnB71B,EAAa41B,IACXj/F,IAAK,SACL5E,MAAO,SAAgBqpC,GACrBpuC,KAAK8oG,kBAGPn/F,IAAK,OACL5E,MAAO,SAAcqpC,EAAK5T,EAAG/a,EAAG0jD,EAAU/0D,GACxCpO,KAAK+oG,WAAW36D,EAAK,UAAW,EAAG5T,EAAG/a,EAAG0jD,EAAU/0D,MAGrDzE,IAAK,mBACL5E,MAAO,SAA0BqpC,EAAK4Y,GACpC,MAAOhnD,MAAKuoG,kBAAkBn6D,EAAK4Y,OAIhC4hD,GACND,EAAgB,WAEnB/oG,GAAQ,WAAagpG,EACrB/oG,EAAOD,QAAUA,EAAQ,YAIrB,SAASC,EAAQD,EAASM,GAY9B,QAASuyE,GAAuB3sE,GAAO,MAAOA,IAAOA,EAAI4sE,WAAa5sE,GAAQ6sE,UAAW7sE,GAEzF,QAAS8sE,GAAgBC,EAAUC,GAAe,KAAMD,YAAoBC,IAAgB,KAAM,IAAI5rE,WAAU,qCAEhH,QAAS89F,GAAUC,EAAUC,GAAc,GAA0B,kBAAfA,IAA4C,OAAfA,EAAuB,KAAM,IAAIh+F,WAAU,iEAAoEg+F,GAAeD,GAAShyF,UAAY7L,OAAOgJ,OAAO80F,GAAcA,EAAWjyF,WAAa9L,aAAepC,MAAOkgG,EAAU9xB,YAAY,EAAOE,UAAU,EAAMD,cAAc,KAAe8xB,IAAY99F,OAAO+9F,eAAiB/9F,OAAO+9F,eAAeF,EAAUC,GAAcD,EAASG,UAAYF,GAZje99F,OAAO2rE,eAAenzE,EAAS,cAC7BmF,OAAO,GAGT,IAAIiuE,GAAe,WAAe,QAASC,GAAiB/nE,EAAQrE,GAAS,IAAK,GAAIJ,GAAI,EAAGA,EAAII,EAAMP,OAAQG,IAAK,CAAE,GAAIysE,GAAarsE,EAAMJ,EAAIysE,GAAWC,WAAaD,EAAWC,aAAc,EAAOD,EAAWE,cAAe,EAAU,SAAWF,KAAYA,EAAWG,UAAW,GAAMjsE,OAAO2rE,eAAe7nE,EAAQgoE,EAAWvpE,IAAKupE,IAAiB,MAAO,UAAUJ,EAAaQ,EAAYC,GAAiJ,MAA9HD,IAAYL,EAAiBH,EAAY7/D,UAAWqgE,GAAiBC,GAAaN,EAAiBH,EAAaS,GAAqBT,MAE7hBuyB,EAAO,SAAaC,EAAIC,EAAKC,GAAqC,IAA9B,GAAIC,IAAS,EAAwBA,GAAQ,CAAE,GAAIrhG,GAASkhG,EAAIvhD,EAAWwhD,EAAKG,EAAWF,CAAKC,IAAS,EAAsB,OAAXrhG,IAAiBA,EAASmW,SAAStH,UAAW,IAAI0yF,GAAOv+F,OAAOw+F,yBAAyBxhG,EAAQ2/C,EAAW,IAAax9C,SAATo/F,EAAJ,CAA4O,GAAI,SAAWA,GAAQ,MAAOA,GAAK5gG,KAAgB,IAAI0mB,GAASk6E,EAAKhyE,GAAK,IAAeptB,SAAXklB,EAAwB,MAAoB,OAAOA,GAAOlrB,KAAKmlG,GAA/V,GAAIn6F,GAASnE,OAAOy+F,eAAezhG,EAAS,IAAe,OAAXmH,EAAmB,MAA2B+5F,GAAK/5F,EAAQg6F,EAAMxhD,EAAUyhD,EAAME,EAAUD,GAAS,EAAME,EAAOp6F,EAAShF,SAQxcu/F,EAAgB5lG,EAAoB,IAEpC6lG,EAAiBtzB,EAAuBqzB,GAExCkD,EAAY,SAAW/C,GAGzB,QAAS+C,GAAUnlG,EAASm4C,EAAMmmD,GAChCvvB,EAAgB5yE,KAAMgpG,GAEtB3D,EAAKj+F,OAAOy+F,eAAemD,EAAU/1F,WAAY,cAAejT,MAAMO,KAAKP,KAAM6D,EAASm4C,EAAMmmD,GAsElG,MA3EA6C,GAAUgE,EAAW/C,GAQrBjzB,EAAag2B,IACXr/F,IAAK,eACL5E,MAAO,WACL,GAAmBwB,SAAfvG,KAAKo7B,MAAqB,CAC5B,GAAIP,GAAO,EAAI76B,KAAK6D,QAAQg3B,IAC5B76B,MAAKo7B,MAAQP,EACb76B,KAAKq7B,OAASR,EACd76B,KAAKyyC,OAAS,GAAMzyC,KAAKo7B,UAI7BzxB,IAAK,aACL5E,MAAO,SAAoBqpC,EAAKowD,EAAOyK,EAAgBzuE,EAAG/a,EAAG0jD,EAAU/0D,GACrEpO,KAAK8oG,eAEL9oG,KAAK2I,KAAO6xB,EAAIx6B,KAAKo7B,MAAQ,EAC7Bp7B,KAAK6I,IAAM4W,EAAIzf,KAAKq7B,OAAS,CAE7B,IAAIsM,GAAc3nC,KAAK6D,QAAQ8jC,YAC3By+D,EAAqBpmG,KAAK6D,QAAQ65F,qBAAuB,EAAI19F,KAAK6D,QAAQ8jC,WAyB9E,IAvBAyG,EAAIY,YAAcm0B,EAAWnjE,KAAK6D,QAAQ4I,MAAM0B,UAAUD,OAASE,EAAQpO,KAAK6D,QAAQ4I,MAAM2B,MAAMF,OAASlO,KAAK6D,QAAQ4I,MAAMyB,OAChIkgC,EAAIO,UAAYw0B,EAAWijC,EAAqBz+D,EAChDyG,EAAIO,WAAa3uC,KAAKg8C,KAAK86C,KAAK9xF,MAChCopC,EAAIO,UAAY1pC,KAAKL,IAAI5E,KAAKo7B,MAAOgT,EAAIO,WACzCP,EAAIiB,UAAY8zB,EAAWnjE,KAAK6D,QAAQ4I,MAAM0B,UAAUF,WAAaG,EAAQpO,KAAK6D,QAAQ4I,MAAM2B,MAAMH,WAAajO,KAAK6D,QAAQ4I,MAAMwB;AACtImgC,EAAIowD,GAAOhkE,EAAG/a,EAAGzf,KAAK6D,QAAQg3B,MAG9B76B,KAAKsmG,aAAal4D,GAElBA,EAAI9J,OAEJtkC,KAAKumG,cAAcn4D,GAGnBA,EAAIo4D,OACJxmG,KAAKymG,mBAAmBr4D,GAExBA,EAAI7J,SAEJvkC,KAAK0mG,oBAAoBt4D,GACzBA,EAAIu4D,UAEuBpgG,SAAvBvG,KAAK6D,QAAQi3B,MAAqB,CACpC,GAAI0G,GAAS/hB,EAAI,GAAMzf,KAAKq7B,OAAS,CACrCr7B,MAAKmiG,YAAYpqB,KAAK3pC,EAAK5T,EAAGgH,EAAQ2hC,EAAU,WAGlDnjE,KAAK2iG,kBAAkBnoE,EAAG/a,MAG5B9V,IAAK,oBACL5E,MAAO,SAA2By1B,EAAG/a,GACnCzf,KAAK0/F,YAAY72F,IAAM4W,EAAIzf,KAAK6D,QAAQg3B,KACxC76B,KAAK0/F,YAAY/2F,KAAO6xB,EAAIx6B,KAAK6D,QAAQg3B,KACzC76B,KAAK0/F,YAAYhxD,MAAQlU,EAAIx6B,KAAK6D,QAAQg3B,KAC1C76B,KAAK0/F,YAAYx0D,OAASzrB,EAAIzf,KAAK6D,QAAQg3B,KAEhBt0B,SAAvBvG,KAAK6D,QAAQi3B,OAAuB96B,KAAKmiG,YAAYtnE,KAAKO,MAAQ,IACpEp7B,KAAK0/F,YAAY/2F,KAAO1D,KAAKL,IAAI5E,KAAK0/F,YAAY/2F,KAAM3I,KAAKmiG,YAAYtnE,KAAKlyB,MAC9E3I,KAAK0/F,YAAYhxD,MAAQzpC,KAAKJ,IAAI7E,KAAK0/F,YAAYhxD,MAAO1uC,KAAKmiG,YAAYtnE,KAAKlyB,KAAO3I,KAAKmiG,YAAYtnE,KAAKO,OAC7Gp7B,KAAK0/F,YAAYx0D,OAASjmC,KAAKJ,IAAI7E,KAAK0/F,YAAYx0D,OAAQlrC,KAAK0/F,YAAYx0D,OAASlrC,KAAKmiG,YAAYtnE,KAAKQ,OAAS,QAKpH2tE,GACNjD,EAAe,WAElBnmG,GAAQ,WAAaopG,EACrBnpG,EAAOD,QAAUA,EAAQ,YAIrB,SAASC,EAAQD,EAASM,GAY9B,QAASuyE,GAAuB3sE,GAAO,MAAOA,IAAOA,EAAI4sE,WAAa5sE,GAAQ6sE,UAAW7sE,GAEzF,QAAS8sE,GAAgBC,EAAUC,GAAe,KAAMD,YAAoBC,IAAgB,KAAM,IAAI5rE,WAAU,qCAEhH,QAAS89F,GAAUC,EAAUC,GAAc,GAA0B,kBAAfA,IAA4C,OAAfA,EAAuB,KAAM,IAAIh+F,WAAU,iEAAoEg+F,GAAeD,GAAShyF,UAAY7L,OAAOgJ,OAAO80F,GAAcA,EAAWjyF,WAAa9L,aAAepC,MAAOkgG,EAAU9xB,YAAY,EAAOE,UAAU,EAAMD,cAAc,KAAe8xB,IAAY99F,OAAO+9F,eAAiB/9F,OAAO+9F,eAAeF,EAAUC,GAAcD,EAASG,UAAYF,GAZje99F,OAAO2rE,eAAenzE,EAAS,cAC7BmF,OAAO,GAGT,IAAIiuE,GAAe,WAAe,QAASC,GAAiB/nE,EAAQrE,GAAS,IAAK,GAAIJ,GAAI,EAAGA,EAAII,EAAMP,OAAQG,IAAK,CAAE,GAAIysE,GAAarsE,EAAMJ,EAAIysE,GAAWC,WAAaD,EAAWC,aAAc,EAAOD,EAAWE,cAAe,EAAU,SAAWF,KAAYA,EAAWG,UAAW,GAAMjsE,OAAO2rE,eAAe7nE,EAAQgoE,EAAWvpE,IAAKupE,IAAiB,MAAO,UAAUJ,EAAaQ,EAAYC,GAAiJ,MAA9HD,IAAYL,EAAiBH,EAAY7/D,UAAWqgE,GAAiBC,GAAaN,EAAiBH,EAAaS,GAAqBT,MAE7hBuyB,EAAO,SAAaC,EAAIC,EAAKC,GAAqC,IAA9B,GAAIC,IAAS,EAAwBA,GAAQ,CAAE,GAAIrhG,GAASkhG,EAAIvhD,EAAWwhD,EAAKG,EAAWF,CAAKC,IAAS,EAAsB,OAAXrhG,IAAiBA,EAASmW,SAAStH,UAAW,IAAI0yF,GAAOv+F,OAAOw+F,yBAAyBxhG,EAAQ2/C,EAAW,IAAax9C,SAATo/F,EAAJ,CAA4O,GAAI,SAAWA,GAAQ,MAAOA,GAAK5gG,KAAgB,IAAI0mB,GAASk6E,EAAKhyE,GAAK,IAAeptB,SAAXklB,EAAwB,MAAoB,OAAOA,GAAOlrB,KAAKmlG,GAA/V,GAAIn6F,GAASnE,OAAOy+F,eAAezhG,EAAS,IAAe,OAAXmH,EAAmB,MAA2B+5F,GAAK/5F,EAAQg6F,EAAMxhD,EAAUyhD,EAAME,EAAUD,GAAS,EAAME,EAAOp6F,EAAShF,SAQxcmiG,EAAiBxoG,EAAoB,IAErCyoG,EAAkBl2B,EAAuBi2B,GAEzCQ,EAAM,SAAWL,GAGnB,QAASK,GAAIrlG,EAASm4C,EAAMmmD,GAC1BvvB,EAAgB5yE,KAAMkpG,GAEtB7D,EAAKj+F,OAAOy+F,eAAeqD,EAAIj2F,WAAY,cAAejT,MAAMO,KAAKP,KAAM6D,EAASm4C,EAAMmmD,GAqB5F,MA1BA6C,GAAUkE,EAAKL,GAQf71B,EAAak2B,IACXv/F,IAAK,SACL5E,MAAO,SAAgBqpC,GACrBpuC,KAAK8oG,kBAGPn/F,IAAK,OACL5E,MAAO,SAAcqpC,EAAK5T,EAAG/a,EAAG0jD,EAAU/0D,GACxCpO,KAAK+oG,WAAW36D,EAAK,SAAU,EAAG5T,EAAG/a,EAAG0jD,EAAU/0D,MAGpDzE,IAAK,mBACL5E,MAAO,SAA0BqpC,EAAK4Y,GAEpC,MADAhnD,MAAK4iG,OAAOx0D,GACLpuC,KAAK6D,QAAQg3B,KAAO76B,KAAK6D,QAAQ8jC,gBAIrCuhE,GACNP,EAAgB,WAEnB/oG,GAAQ,WAAaspG,EACrBrpG,EAAOD,QAAUA,EAAQ,YAIrB,SAASC,EAAQD,EAASM,GAY9B,QAASuyE,GAAuB3sE,GAAO,MAAOA,IAAOA,EAAI4sE,WAAa5sE,GAAQ6sE,UAAW7sE,GAEzF,QAAS8sE,GAAgBC,EAAUC,GAAe,KAAMD,YAAoBC,IAAgB,KAAM,IAAI5rE,WAAU,qCAEhH,QAAS89F,GAAUC,EAAUC,GAAc,GAA0B,kBAAfA,IAA4C,OAAfA,EAAuB,KAAM,IAAIh+F,WAAU,iEAAoEg+F,GAAeD,GAAShyF,UAAY7L,OAAOgJ,OAAO80F,GAAcA,EAAWjyF,WAAa9L,aAAepC,MAAOkgG,EAAU9xB,YAAY,EAAOE,UAAU,EAAMD,cAAc,KAAe8xB,IAAY99F,OAAO+9F,eAAiB/9F,OAAO+9F,eAAeF,EAAUC,GAAcD,EAASG,UAAYF,GAZje99F,OAAO2rE,eAAenzE,EAAS,cAC7BmF,OAAO,GAGT,IAAIiuE,GAAe,WAAe,QAASC,GAAiB/nE,EAAQrE,GAAS,IAAK,GAAIJ,GAAI,EAAGA,EAAII,EAAMP,OAAQG,IAAK,CAAE,GAAIysE,GAAarsE,EAAMJ,EAAIysE,GAAWC,WAAaD,EAAWC,aAAc,EAAOD,EAAWE,cAAe,EAAU,SAAWF,KAAYA,EAAWG,UAAW,GAAMjsE,OAAO2rE,eAAe7nE,EAAQgoE,EAAWvpE,IAAKupE,IAAiB,MAAO,UAAUJ,EAAaQ,EAAYC,GAAiJ,MAA9HD,IAAYL,EAAiBH,EAAY7/D,UAAWqgE,GAAiBC,GAAaN,EAAiBH,EAAaS,GAAqBT,MAE7hBuyB,EAAO,SAAaC,EAAIC,EAAKC,GAAqC,IAA9B,GAAIC,IAAS,EAAwBA,GAAQ,CAAE,GAAIrhG,GAASkhG,EAAIvhD,EAAWwhD,EAAKG,EAAWF,CAAKC,IAAS,EAAsB,OAAXrhG,IAAiBA,EAASmW,SAAStH,UAAW,IAAI0yF,GAAOv+F,OAAOw+F,yBAAyBxhG,EAAQ2/C,EAAW,IAAax9C,SAATo/F,EAAJ,CAA4O,GAAI,SAAWA,GAAQ,MAAOA,GAAK5gG,KAAgB,IAAI0mB,GAASk6E,EAAKhyE,GAAK,IAAeptB,SAAXklB,EAAwB,MAAoB,OAAOA,GAAOlrB,KAAKmlG,GAA/V,GAAIn6F,GAASnE,OAAOy+F,eAAezhG,EAAS,IAAe,OAAXmH,EAAmB,MAA2B+5F,GAAK/5F,EAAQg6F,EAAMxhD,EAAUyhD,EAAME,EAAUD,GAAS,EAAME,EAAOp6F,EAAShF,SAQxcu/F,EAAgB5lG,EAAoB,IAEpC6lG,EAAiBtzB,EAAuBqzB,GAExCqD,EAAU,SAAWlD,GAGvB,QAASkD,GAAQtlG,EAASm4C,EAAMmmD,GAC9BvvB,EAAgB5yE,KAAMmpG,GAEtB9D,EAAKj+F,OAAOy+F,eAAesD,EAAQl2F,WAAY,cAAejT,MAAMO,KAAKP,KAAM6D,EAASm4C,EAAMmmD,GAgFhG,MArFA6C,GAAUmE,EAASlD,GAQnBjzB,EAAam2B,IACXx/F,IAAK,SACL5E,MAAO,SAAgBqpC,EAAK+0B,GAC1B,GAAmB58D,SAAfvG,KAAKo7B,MAAqB,CAC5B,GAAI8qE,GAAWlmG,KAAKmiG,YAAYgE,YAAY/3D,EAAK+0B,EAEjDnjE,MAAKo7B,MAAyB,IAAjB8qE,EAAS9qE,MACtBp7B,KAAKq7B,OAA2B,EAAlB6qE,EAAS7qE,OACnBr7B,KAAKo7B,MAAQp7B,KAAKq7B,SACpBr7B,KAAKo7B,MAAQp7B,KAAKq7B,QAEpBr7B,KAAKyyC,OAAS,GAAMzyC,KAAKo7B,UAI7BzxB,IAAK,OACL5E,MAAO,SAAcqpC,EAAK5T,EAAG/a,EAAG0jD,EAAU/0D,GACxCpO,KAAK4iG,OAAOx0D,EAAK+0B,GACjBnjE,KAAK2I,KAAO6xB,EAAiB,GAAbx6B,KAAKo7B,MACrBp7B,KAAK6I,IAAM4W,EAAkB,GAAdzf,KAAKq7B,MAEpB,IAAIsM,GAAc3nC,KAAK6D,QAAQ8jC,YAC3By+D,EAAqBpmG,KAAK6D,QAAQ65F,qBAAuB,EAAI19F,KAAK6D,QAAQ8jC,WAE9EyG,GAAIY,YAAcm0B,EAAWnjE,KAAK6D,QAAQ4I,MAAM0B,UAAUD,OAASE,EAAQpO,KAAK6D,QAAQ4I,MAAM2B,MAAMF,OAASlO,KAAK6D,QAAQ4I,MAAMyB,OAEhIkgC,EAAIO,UAAYw0B,EAAWijC,EAAqBz+D,EAChDyG,EAAIO,WAAa3uC,KAAKg8C,KAAK86C,KAAK9xF,MAChCopC,EAAIO,UAAY1pC,KAAKL,IAAI5E,KAAKo7B,MAAOgT,EAAIO,WAEzCP,EAAIiB,UAAY8zB,EAAWnjE,KAAK6D,QAAQ4I,MAAM0B,UAAUF,WAAaG,EAAQpO,KAAK6D,QAAQ4I,MAAM2B,MAAMH,WAAajO,KAAK6D,QAAQ4I,MAAMwB,WACtImgC,EAAIg7D,QAAQppG,KAAK2I,KAAM3I,KAAK6I,IAAK7I,KAAKo7B,MAAOp7B,KAAKq7B,QAGlDr7B,KAAKsmG,aAAal4D,GAElBA,EAAI9J,OAEJtkC,KAAKumG,cAAcn4D,GAGnBA,EAAIo4D,OACJxmG,KAAKymG,mBAAmBr4D,GAExBA,EAAI7J,SAEJvkC,KAAK0mG,oBAAoBt4D,GACzBA,EAAIu4D,UAEJ3mG,KAAK2iG,kBAAkBnoE,EAAG/a,EAAG2uB,EAAK+0B,GAClCnjE,KAAKmiG,YAAYpqB,KAAK3pC,EAAK5T,EAAG/a,EAAG0jD,MAGnCx5D,IAAK,oBACL5E,MAAO,SAA2By1B,EAAG/a,EAAG2uB,EAAK+0B,GAC3CnjE,KAAK4iG,OAAOx0D,EAAK+0B,GAEjBnjE,KAAK2I,KAAO6xB,EAAiB,GAAbx6B,KAAKo7B,MACrBp7B,KAAK6I,IAAM4W,EAAkB,GAAdzf,KAAKq7B,OAEpBr7B,KAAK0/F,YAAY/2F,KAAO3I,KAAK2I,KAC7B3I,KAAK0/F,YAAY72F,IAAM7I,KAAK6I,IAC5B7I,KAAK0/F,YAAYx0D,OAASlrC,KAAK6I,IAAM7I,KAAKq7B,OAC1Cr7B,KAAK0/F,YAAYhxD,MAAQ1uC,KAAK2I,KAAO3I,KAAKo7B,SAG5CzxB,IAAK,mBACL5E,MAAO,SAA0BqpC,EAAK4Y,GACpChnD,KAAK4iG,OAAOx0D,EACZ,IAAIloC,GAAiB,GAAblG,KAAKo7B,MACTj1B,EAAkB,GAAdnG,KAAKq7B,OACTtY,EAAI9d,KAAKihC,IAAI8gB,GAAS9gD,EACtBwH,EAAIzI,KAAKohC,IAAI2gB,GAAS7gD,CAC1B,OAAOD,GAAIC,EAAIlB,KAAKoxC,KAAKtzB,EAAIA,EAAIrV,EAAIA,OAIlCy7F,GACNpD,EAAe,WAElBnmG,GAAQ,WAAaupG,EACrBtpG,EAAOD,QAAUA,EAAQ,YAIrB,SAASC,EAAQD,EAASM,GAY9B,QAASuyE,GAAuB3sE,GAAO,MAAOA,IAAOA,EAAI4sE,WAAa5sE,GAAQ6sE,UAAW7sE,GAEzF,QAAS8sE,GAAgBC,EAAUC,GAAe,KAAMD,YAAoBC,IAAgB,KAAM,IAAI5rE,WAAU,qCAEhH,QAAS89F,GAAUC,EAAUC,GAAc,GAA0B,kBAAfA,IAA4C,OAAfA,EAAuB,KAAM,IAAIh+F,WAAU,iEAAoEg+F,GAAeD,GAAShyF,UAAY7L,OAAOgJ,OAAO80F,GAAcA,EAAWjyF,WAAa9L,aAAepC,MAAOkgG,EAAU9xB,YAAY,EAAOE,UAAU,EAAMD,cAAc,KAAe8xB,IAAY99F,OAAO+9F,eAAiB/9F,OAAO+9F,eAAeF,EAAUC,GAAcD,EAASG,UAAYF,GAZje99F,OAAO2rE,eAAenzE,EAAS,cAC7BmF,OAAO,GAGT,IAAIiuE,GAAe,WAAe,QAASC,GAAiB/nE,EAAQrE,GAAS,IAAK,GAAIJ,GAAI,EAAGA,EAAII,EAAMP,OAAQG,IAAK,CAAE,GAAIysE,GAAarsE,EAAMJ,EAAIysE,GAAWC,WAAaD,EAAWC,aAAc,EAAOD,EAAWE,cAAe,EAAU,SAAWF,KAAYA,EAAWG,UAAW,GAAMjsE,OAAO2rE,eAAe7nE,EAAQgoE,EAAWvpE,IAAKupE,IAAiB,MAAO,UAAUJ,EAAaQ,EAAYC,GAAiJ,MAA9HD,IAAYL,EAAiBH,EAAY7/D,UAAWqgE,GAAiBC,GAAaN,EAAiBH,EAAaS,GAAqBT,MAE7hBuyB,EAAO,SAAaC,EAAIC,EAAKC,GAAqC,IAA9B,GAAIC,IAAS,EAAwBA,GAAQ,CAAE,GAAIrhG,GAASkhG,EAAIvhD,EAAWwhD,EAAKG,EAAWF,CAAKC,IAAS,EAAsB,OAAXrhG,IAAiBA,EAASmW,SAAStH,UAAW,IAAI0yF,GAAOv+F,OAAOw+F,yBAAyBxhG,EAAQ2/C,EAAW,IAAax9C,SAATo/F,EAAJ,CAA4O,GAAI,SAAWA,GAAQ,MAAOA,GAAK5gG,KAAgB,IAAI0mB,GAASk6E,EAAKhyE,GAAK,IAAeptB,SAAXklB,EAAwB,MAAoB,OAAOA,GAAOlrB,KAAKmlG,GAA/V,GAAIn6F,GAASnE,OAAOy+F,eAAezhG,EAAS,IAAe,OAAXmH,EAAmB,MAA2B+5F,GAAK/5F,EAAQg6F,EAAMxhD,EAAUyhD,EAAME,EAAUD,GAAS,EAAME,EAAOp6F,EAAShF,SAQxcu/F,EAAgB5lG,EAAoB,IAEpC6lG,EAAiBtzB,EAAuBqzB,GAExCuD,EAAO,SAAWpD,GAGpB,QAASoD,GAAKxlG,EAASm4C,EAAMmmD,GAC3BvvB,EAAgB5yE,KAAMqpG,GAEtBhE,EAAKj+F,OAAOy+F,eAAewD,EAAKp2F,WAAY,cAAejT,MAAMO,KAAKP,KAAM6D,EAASm4C,EAAMmmD,GA+E7F,MApFA6C,GAAUqE,EAAMpD,GAQhBjzB,EAAaq2B,IACX1/F,IAAK,SACL5E,MAAO,SAAgBqpC,GACrB,GAAmB7nC,SAAfvG,KAAKo7B,MAAqB,CAC5B,GAAIgG,GAAS,EACTk0D,GACFl6D,MAAO/2B,OAAOrE,KAAK6D,QAAQguF,KAAKh3D,MAChCQ,OAAQh3B,OAAOrE,KAAK6D,QAAQguF,KAAKh3D,MAEnC76B,MAAKo7B,MAAQk6D,EAASl6D,MAAQ,EAAIgG,EAClCphC,KAAKq7B,OAASi6D,EAASj6D,OAAS,EAAI+F,EACpCphC,KAAKyyC,OAAS,GAAMzyC,KAAKo7B,UAI7BzxB,IAAK,OACL5E,MAAO,SAAcqpC,EAAK5T,EAAG/a,EAAG0jD,EAAU/0D,GAQxC,GAPApO,KAAK4iG,OAAOx0D,GACZpuC,KAAK6D,QAAQguF,KAAKh3D,KAAO76B,KAAK6D,QAAQguF,KAAKh3D,MAAQ,GAEnD76B,KAAK2I,KAAO6xB,EAAiB,GAAbx6B,KAAKo7B,MACrBp7B,KAAK6I,IAAM4W,EAAkB,GAAdzf,KAAKq7B,OACpBr7B,KAAKspG,MAAMl7D,EAAK5T,EAAG/a,EAAG0jD,GAEK58D,SAAvBvG,KAAK6D,QAAQi3B,MAAqB,CACpC,GAAIyuE,GAAkB,CACtBvpG,MAAKmiG,YAAYpqB,KAAK3pC,EAAK5T,EAAG/a,EAAkB,GAAdzf,KAAKq7B,OAAekuE,EAAiBpmC,GAGzEnjE,KAAK2iG,kBAAkBnoE,EAAG/a,MAG5B9V,IAAK,oBACL5E,MAAO,SAA2By1B,EAAG/a,GAMnC,GALAzf,KAAK0/F,YAAY72F,IAAM4W,EAA6B,GAAzBzf,KAAK6D,QAAQguF,KAAKh3D,KAC7C76B,KAAK0/F,YAAY/2F,KAAO6xB,EAA6B,GAAzBx6B,KAAK6D,QAAQguF,KAAKh3D,KAC9C76B,KAAK0/F,YAAYhxD,MAAQlU,EAA6B,GAAzBx6B,KAAK6D,QAAQguF,KAAKh3D,KAC/C76B,KAAK0/F,YAAYx0D,OAASzrB,EAA6B,GAAzBzf,KAAK6D,QAAQguF,KAAKh3D,KAErBt0B,SAAvBvG,KAAK6D,QAAQi3B,OAAuB96B,KAAKmiG,YAAYtnE,KAAKO,MAAQ,EAAG,CACvE,GAAImuE,GAAkB,CACtBvpG,MAAK0/F,YAAY/2F,KAAO1D,KAAKL,IAAI5E,KAAK0/F,YAAY/2F,KAAM3I,KAAKmiG,YAAYtnE,KAAKlyB,MAC9E3I,KAAK0/F,YAAYhxD,MAAQzpC,KAAKJ,IAAI7E,KAAK0/F,YAAYhxD,MAAO1uC,KAAKmiG,YAAYtnE,KAAKlyB,KAAO3I,KAAKmiG,YAAYtnE,KAAKO,OAC7Gp7B,KAAK0/F,YAAYx0D,OAASjmC,KAAKJ,IAAI7E,KAAK0/F,YAAYx0D,OAAQlrC,KAAK0/F,YAAYx0D,OAASlrC,KAAKmiG,YAAYtnE,KAAKQ,OAASkuE,OAIzH5/F,IAAK,QACL5E,MAAO,SAAeqpC,EAAK5T,EAAG/a,EAAG0jD,GAC/B,GAAImyB,GAAWjxF,OAAOrE,KAAK6D,QAAQguF,KAAKh3D,KAETt0B,UAA3BvG,KAAK6D,QAAQguF,KAAKj6E,MACpBw2B,EAAIQ,MAAQu0B,EAAW,QAAU,IAAMmyB,EAAW,MAAQt1F,KAAK6D,QAAQguF,KAAKgM,KAG5EzvD,EAAIiB,UAAYrvC,KAAK6D,QAAQguF,KAAKplF,OAAS,QAC3C2hC,EAAIuB,UAAY,SAChBvB,EAAIwB,aAAe,SAGnB5vC,KAAKsmG,aAAal4D,GAClBA,EAAIyB,SAAS7vC,KAAK6D,QAAQguF,KAAKj6E,KAAM4iB,EAAG/a,GAGxCzf,KAAKumG,cAAcn4D,IAEnB5vB,QAAQ45D,MAAM,gIAIlBzuE,IAAK,mBACL5E,MAAO,SAA0BqpC,EAAK4Y,GACpC,MAAOhnD,MAAKuoG,kBAAkBn6D,EAAK4Y,OAIhCqiD,GACNtD,EAAe,WAElBnmG,GAAQ,WAAaypG,EACrBxpG,EAAOD,QAAUA,EAAQ,YAIrB,SAASC,EAAQD,EAASM,GAY9B,QAASuyE,GAAuB3sE,GAAO,MAAOA,IAAOA,EAAI4sE,WAAa5sE,GAAQ6sE,UAAW7sE,GAEzF,QAAS8sE,GAAgBC,EAAUC,GAAe,KAAMD,YAAoBC,IAAgB,KAAM,IAAI5rE,WAAU,qCAEhH,QAAS89F,GAAUC,EAAUC,GAAc,GAA0B,kBAAfA,IAA4C,OAAfA,EAAuB,KAAM,IAAIh+F,WAAU,iEAAoEg+F,GAAeD,GAAShyF,UAAY7L,OAAOgJ,OAAO80F,GAAcA,EAAWjyF,WAAa9L,aAAepC,MAAOkgG,EAAU9xB,YAAY,EAAOE,UAAU,EAAMD,cAAc,KAAe8xB,IAAY99F,OAAO+9F,eAAiB/9F,OAAO+9F,eAAeF,EAAUC,GAAcD,EAASG,UAAYF,GAZje99F,OAAO2rE,eAAenzE,EAAS,cAC7BmF,OAAO,GAGT,IAAIiuE,GAAe,WAAe,QAASC,GAAiB/nE,EAAQrE,GAAS,IAAK,GAAIJ,GAAI,EAAGA,EAAII,EAAMP,OAAQG,IAAK,CAAE,GAAIysE,GAAarsE,EAAMJ,EAAIysE,GAAWC,WAAaD,EAAWC,aAAc,EAAOD,EAAWE,cAAe,EAAU,SAAWF,KAAYA,EAAWG,UAAW,GAAMjsE,OAAO2rE,eAAe7nE,EAAQgoE,EAAWvpE,IAAKupE,IAAiB,MAAO,UAAUJ,EAAaQ,EAAYC,GAAiJ,MAA9HD,IAAYL,EAAiBH,EAAY7/D,UAAWqgE,GAAiBC,GAAaN,EAAiBH,EAAaS,GAAqBT,MAE7hBuyB,EAAO,SAAaC,EAAIC,EAAKC,GAAqC,IAA9B,GAAIC,IAAS,EAAwBA,GAAQ,CAAE,GAAIrhG,GAASkhG,EAAIvhD,EAAWwhD,EAAKG,EAAWF,CAAKC,IAAS,EAAsB,OAAXrhG,IAAiBA,EAASmW,SAAStH,UAAW,IAAI0yF,GAAOv+F,OAAOw+F,yBAAyBxhG,EAAQ2/C,EAAW,IAAax9C,SAATo/F,EAAJ,CAA4O,GAAI,SAAWA,GAAQ,MAAOA,GAAK5gG,KAAgB,IAAI0mB,GAASk6E,EAAKhyE,GAAK,IAAeptB,SAAXklB,EAAwB,MAAoB,OAAOA,GAAOlrB,KAAKmlG,GAA/V,GAAIn6F,GAASnE,OAAOy+F,eAAezhG,EAAS,IAAe,OAAXmH,EAAmB,MAA2B+5F,GAAK/5F,EAAQg6F,EAAMxhD,EAAUyhD,EAAME,EAAUD,GAAS,EAAME,EAAOp6F,EAAShF,SAQxc4gG,EAAuBjnG,EAAoB,IAE3CknG,EAAwB30B,EAAuB00B,GAE/CqC,EAAQ,SAAWlC,GAGrB,QAASkC,GAAM3lG,EAASm4C,EAAMmmD,EAAaG,GACzC1vB,EAAgB5yE,KAAMwpG,GAEtBnE,EAAKj+F,OAAOy+F,eAAe2D,EAAMv2F,WAAY,cAAejT,MAAMO,KAAKP,KAAM6D,EAASm4C,EAAMmmD,GAC5FniG,KAAKsiG,SAAWA,EAmFlB,MAzFA0C,GAAUwE,EAAOlC,GASjBt0B,EAAaw2B,IACX7/F,IAAK,SACL5E,MAAO,WACL/E,KAAKmoG,kBAGPx+F,IAAK,OACL5E,MAAO,SAAcqpC,EAAK5T,EAAG/a,EAAG0jD,EAAU/0D,GAKxC,GAJApO,KAAK4iG,SACL5iG,KAAK2I,KAAO6xB,EAAIx6B,KAAKo7B,MAAQ,EAC7Bp7B,KAAK6I,IAAM4W,EAAIzf,KAAKq7B,OAAS,EAEzBr7B,KAAK6D,QAAQ46F,gBAAgBG,sBAAuB,EAAM,CAC5D,GAAIj3D,GAAc3nC,KAAK6D,QAAQ8jC,YAE3By+D,EAAqBpmG,KAAK6D,QAAQ65F,qBAAuB,EAAI19F,KAAK6D,QAAQ8jC,WAE9EyG,GAAIa,YAGJb,EAAIY,YAAcm0B,EAAWnjE,KAAK6D,QAAQ4I,MAAM0B,UAAUD,OAASE,EAAQpO,KAAK6D,QAAQ4I,MAAM2B,MAAMF,OAASlO,KAAK6D,QAAQ4I,MAAMyB,OAChIkgC,EAAIO,UAAYw0B,EAAWijC,EAAqBz+D,EAChDyG,EAAIO,WAAa3uC,KAAKg8C,KAAK86C,KAAK9xF,MAChCopC,EAAIO,UAAY1pC,KAAKL,IAAI5E,KAAKo7B,MAAOgT,EAAIO,WAGzCP,EAAIiB,UAAY8zB,EAAWnjE,KAAK6D,QAAQ4I,MAAM0B,UAAUF,WAAaG,EAAQpO,KAAK6D,QAAQ4I,MAAM2B,MAAMH,WAAajO,KAAK6D,QAAQ4I,MAAMwB,WAGtImgC,EAAI9S,KAAKt7B,KAAK2I,KAAO,GAAMylC,EAAIO,UAAW3uC,KAAK6I,IAAM,GAAMulC,EAAIO,UAAW3uC,KAAKo7B,MAAQgT,EAAIO,UAAW3uC,KAAKq7B,OAAS+S,EAAIO,WACxHP,EAAI9J,OAGJ8J,EAAIo4D,OACJxmG,KAAKymG,mBAAmBr4D,GAExBA,EAAI7J,SAEJvkC,KAAK0mG,oBAAoBt4D,GACzBA,EAAIu4D,UAEJv4D,EAAIkB,YAGNtvC,KAAKqoG,qBAAqBj6D,GAE1BpuC,KAAKsoG,gBAAgBl6D,EAAK5T,EAAG/a,EAAG0jD,GAAY/0D,GAE5CpO,KAAK2iG,kBAAkBnoE,EAAG/a,MAG5B9V,IAAK,oBACL5E,MAAO,SAA2By1B,EAAG/a,GACnCzf,KAAK4iG,SACL5iG,KAAK2I,KAAO6xB,EAAIx6B,KAAKo7B,MAAQ,EAC7Bp7B,KAAK6I,IAAM4W,EAAIzf,KAAKq7B,OAAS,EAE7Br7B,KAAK0/F,YAAY72F,IAAM7I,KAAK6I,IAC5B7I,KAAK0/F,YAAY/2F,KAAO3I,KAAK2I,KAC7B3I,KAAK0/F,YAAYhxD,MAAQ1uC,KAAK2I,KAAO3I,KAAKo7B,MAC1Cp7B,KAAK0/F,YAAYx0D,OAASlrC,KAAK6I,IAAM7I,KAAKq7B,OAEf90B,SAAvBvG,KAAK6D,QAAQi3B,OAAuB96B,KAAKmiG,YAAYtnE,KAAKO,MAAQ,IACpEp7B,KAAK0/F,YAAY/2F,KAAO1D,KAAKL,IAAI5E,KAAK0/F,YAAY/2F,KAAM3I,KAAKmiG,YAAYtnE,KAAKlyB,MAC9E3I,KAAK0/F,YAAYhxD,MAAQzpC,KAAKJ,IAAI7E,KAAK0/F,YAAYhxD,MAAO1uC,KAAKmiG,YAAYtnE,KAAKlyB,KAAO3I,KAAKmiG,YAAYtnE,KAAKO,OAC7Gp7B,KAAK0/F,YAAYx0D,OAASjmC,KAAKJ,IAAI7E,KAAK0/F,YAAYx0D,OAAQlrC,KAAK0/F,YAAYx0D,OAASlrC,KAAK0nG,iBAI/F/9F,IAAK,mBACL5E,MAAO,SAA0BqpC,EAAK4Y,GACpChnD,KAAK4iG,OAAOx0D,EACZ,IAAIloC,GAAIlG,KAAKo7B,MAAQ,EACjBj1B,EAAInG,KAAKq7B,OAAS,EAClBtY,EAAI9d,KAAKihC,IAAI8gB,GAAS9gD,EACtBwH,EAAIzI,KAAKohC,IAAI2gB,GAAS7gD,CAC1B,OAAOD,GAAIC,EAAIlB,KAAKoxC,KAAKtzB,EAAIA,EAAIrV,EAAIA,OAIlC87F,GACNpC,EAAsB,WAEzBxnG,GAAQ,WAAa4pG,EACrB3pG,EAAOD,QAAUA,EAAQ,YAIrB,SAASC,EAAQD,EAASM,GAY9B,QAASuyE,GAAuB3sE,GAAO,MAAOA,IAAOA,EAAI4sE,WAAa5sE,GAAQ6sE,UAAW7sE,GAEzF,QAAS8sE,GAAgBC,EAAUC,GAAe,KAAMD,YAAoBC,IAAgB,KAAM,IAAI5rE,WAAU,qCAEhH,QAAS89F,GAAUC,EAAUC,GAAc,GAA0B,kBAAfA,IAA4C,OAAfA,EAAuB,KAAM,IAAIh+F,WAAU,iEAAoEg+F,GAAeD,GAAShyF,UAAY7L,OAAOgJ,OAAO80F,GAAcA,EAAWjyF,WAAa9L,aAAepC,MAAOkgG,EAAU9xB,YAAY,EAAOE,UAAU,EAAMD,cAAc,KAAe8xB,IAAY99F,OAAO+9F,eAAiB/9F,OAAO+9F,eAAeF,EAAUC,GAAcD,EAASG,UAAYF,GAZje99F,OAAO2rE,eAAenzE,EAAS,cAC7BmF,OAAO,GAGT,IAAIiuE,GAAe,WAAe,QAASC,GAAiB/nE,EAAQrE,GAAS,IAAK,GAAIJ,GAAI,EAAGA,EAAII,EAAMP,OAAQG,IAAK,CAAE,GAAIysE,GAAarsE,EAAMJ,EAAIysE,GAAWC,WAAaD,EAAWC,aAAc,EAAOD,EAAWE,cAAe,EAAU,SAAWF,KAAYA,EAAWG,UAAW,GAAMjsE,OAAO2rE,eAAe7nE,EAAQgoE,EAAWvpE,IAAKupE,IAAiB,MAAO,UAAUJ,EAAaQ,EAAYC,GAAiJ,MAA9HD,IAAYL,EAAiBH,EAAY7/D,UAAWqgE,GAAiBC,GAAaN,EAAiBH,EAAaS,GAAqBT,MAE7hBuyB,EAAO,SAAaC,EAAIC,EAAKC,GAAqC,IAA9B,GAAIC,IAAS,EAAwBA,GAAQ,CAAE,GAAIrhG,GAASkhG,EAAIvhD,EAAWwhD,EAAKG,EAAWF,CAAKC,IAAS,EAAsB,OAAXrhG,IAAiBA,EAASmW,SAAStH,UAAW,IAAI0yF,GAAOv+F,OAAOw+F,yBAAyBxhG,EAAQ2/C,EAAW,IAAax9C,SAATo/F,EAAJ,CAA4O,GAAI,SAAWA,GAAQ,MAAOA,GAAK5gG,KAAgB,IAAI0mB,GAASk6E,EAAKhyE,GAAK,IAAeptB,SAAXklB,EAAwB,MAAoB,OAAOA,GAAOlrB,KAAKmlG,GAA/V,GAAIn6F,GAASnE,OAAOy+F,eAAezhG,EAAS,IAAe,OAAXmH,EAAmB,MAA2B+5F,GAAK/5F,EAAQg6F,EAAMxhD,EAAUyhD,EAAME,EAAUD,GAAS,EAAME,EAAOp6F,EAAShF,SAQxcmiG,EAAiBxoG,EAAoB,IAErCyoG,EAAkBl2B,EAAuBi2B,GAEzCe,EAAS,SAAWZ,GAGtB,QAASY,GAAO5lG,EAASm4C,EAAMmmD,GAC7BvvB,EAAgB5yE,KAAMypG,GAEtBpE,EAAKj+F,OAAOy+F,eAAe4D,EAAOx2F,WAAY,cAAejT,MAAMO,KAAKP,KAAM6D,EAASm4C,EAAMmmD,GAoB/F,MAzBA6C,GAAUyE,EAAQZ,GAQlB71B,EAAay2B,IACX9/F,IAAK,SACL5E,MAAO,WACL/E,KAAK8oG,kBAGPn/F,IAAK,OACL5E,MAAO,SAAcqpC,EAAK5T,EAAG/a,EAAG0jD,EAAU/0D,GACxCpO,KAAK+oG,WAAW36D,EAAK,SAAU,EAAG5T,EAAG/a,EAAG0jD,EAAU/0D,MAGpDzE,IAAK,mBACL5E,MAAO,SAA0BqpC,EAAK4Y,GACpC,MAAOhnD,MAAKuoG,kBAAkBn6D,EAAK4Y,OAIhCyiD,GACNd,EAAgB,WAEnB/oG,GAAQ,WAAa6pG,EACrB5pG,EAAOD,QAAUA,EAAQ,YAIrB,SAASC,EAAQD,EAASM,GAY9B,QAASuyE,GAAuB3sE,GAAO,MAAOA,IAAOA,EAAI4sE,WAAa5sE,GAAQ6sE,UAAW7sE,GAEzF,QAAS8sE,GAAgBC,EAAUC,GAAe,KAAMD,YAAoBC,IAAgB,KAAM,IAAI5rE,WAAU,qCAEhH,QAAS89F,GAAUC,EAAUC,GAAc,GAA0B,kBAAfA,IAA4C,OAAfA,EAAuB,KAAM,IAAIh+F,WAAU,iEAAoEg+F,GAAeD,GAAShyF,UAAY7L,OAAOgJ,OAAO80F,GAAcA,EAAWjyF,WAAa9L,aAAepC,MAAOkgG,EAAU9xB,YAAY,EAAOE,UAAU,EAAMD,cAAc,KAAe8xB,IAAY99F,OAAO+9F,eAAiB/9F,OAAO+9F,eAAeF,EAAUC,GAAcD,EAASG,UAAYF,GAZje99F,OAAO2rE,eAAenzE,EAAS,cAC7BmF,OAAO,GAGT,IAAIiuE,GAAe,WAAe,QAASC,GAAiB/nE,EAAQrE,GAAS,IAAK,GAAIJ,GAAI,EAAGA,EAAII,EAAMP,OAAQG,IAAK,CAAE,GAAIysE,GAAarsE,EAAMJ,EAAIysE,GAAWC,WAAaD,EAAWC,aAAc,EAAOD,EAAWE,cAAe,EAAU,SAAWF,KAAYA,EAAWG,UAAW,GAAMjsE,OAAO2rE,eAAe7nE,EAAQgoE,EAAWvpE,IAAKupE,IAAiB,MAAO,UAAUJ,EAAaQ,EAAYC,GAAiJ,MAA9HD,IAAYL,EAAiBH,EAAY7/D,UAAWqgE,GAAiBC,GAAaN,EAAiBH,EAAaS,GAAqBT,MAE7hBuyB,EAAO,SAAaC,EAAIC,EAAKC,GAAqC,IAA9B,GAAIC,IAAS,EAAwBA,GAAQ,CAAE,GAAIrhG,GAASkhG,EAAIvhD,EAAWwhD,EAAKG,EAAWF,CAAKC,IAAS,EAAsB,OAAXrhG,IAAiBA,EAASmW,SAAStH,UAAW,IAAI0yF,GAAOv+F,OAAOw+F,yBAAyBxhG,EAAQ2/C,EAAW,IAAax9C,SAATo/F,EAAJ,CAA4O,GAAI,SAAWA,GAAQ,MAAOA,GAAK5gG,KAAgB,IAAI0mB,GAASk6E,EAAKhyE,GAAK,IAAeptB,SAAXklB,EAAwB,MAAoB,OAAOA,GAAOlrB,KAAKmlG,GAA/V,GAAIn6F,GAASnE,OAAOy+F,eAAezhG,EAAS,IAAe,OAAXmH,EAAmB,MAA2B+5F,GAAK/5F,EAAQg6F,EAAMxhD,EAAUyhD,EAAME,EAAUD,GAAS,EAAME,EAAOp6F,EAAShF,SAQxcmiG,EAAiBxoG,EAAoB,IAErCyoG,EAAkBl2B,EAAuBi2B,GAEzCgB,EAAO,SAAWb,GAGpB,QAASa,GAAK7lG,EAASm4C,EAAMmmD,GAC3BvvB,EAAgB5yE,KAAM0pG,GAEtBrE,EAAKj+F,OAAOy+F,eAAe6D,EAAKz2F,WAAY,cAAejT,MAAMO,KAAKP,KAAM6D,EAASm4C,EAAMmmD,GAoB7F,MAzBA6C,GAAU0E,EAAMb,GAQhB71B,EAAa02B,IACX//F,IAAK,SACL5E,MAAO,SAAgBqpC,GACrBpuC,KAAK8oG,kBAGPn/F,IAAK,OACL5E,MAAO,SAAcqpC,EAAK5T,EAAG/a,EAAG0jD,EAAU/0D,GACxCpO,KAAK+oG,WAAW36D,EAAK,OAAQ,EAAG5T,EAAG/a,EAAG0jD,EAAU/0D,MAGlDzE,IAAK,mBACL5E,MAAO,SAA0BqpC,EAAK4Y,GACpC,MAAOhnD,MAAKuoG,kBAAkBn6D,EAAK4Y,OAIhC0iD,GACNf,EAAgB,WAEnB/oG,GAAQ,WAAa8pG,EACrB7pG,EAAOD,QAAUA,EAAQ,YAIrB,SAASC,EAAQD,EAASM,GAY9B,QAASuyE,GAAuB3sE,GAAO,MAAOA,IAAOA,EAAI4sE,WAAa5sE,GAAQ6sE,UAAW7sE,GAEzF,QAAS8sE,GAAgBC,EAAUC,GAAe,KAAMD,YAAoBC,IAAgB,KAAM,IAAI5rE,WAAU,qCAEhH,QAAS89F,GAAUC,EAAUC,GAAc,GAA0B,kBAAfA,IAA4C,OAAfA,EAAuB,KAAM,IAAIh+F,WAAU,iEAAoEg+F,GAAeD,GAAShyF,UAAY7L,OAAOgJ,OAAO80F,GAAcA,EAAWjyF,WAAa9L,aAAepC,MAAOkgG,EAAU9xB,YAAY,EAAOE,UAAU,EAAMD,cAAc,KAAe8xB,IAAY99F,OAAO+9F,eAAiB/9F,OAAO+9F,eAAeF,EAAUC,GAAcD,EAASG,UAAYF,GAZje99F,OAAO2rE,eAAenzE,EAAS,cAC7BmF,OAAO,GAGT,IAAIiuE,GAAe,WAAe,QAASC,GAAiB/nE,EAAQrE,GAAS,IAAK,GAAIJ,GAAI,EAAGA,EAAII,EAAMP,OAAQG,IAAK,CAAE,GAAIysE,GAAarsE,EAAMJ,EAAIysE,GAAWC,WAAaD,EAAWC,aAAc,EAAOD,EAAWE,cAAe,EAAU,SAAWF,KAAYA,EAAWG,UAAW,GAAMjsE,OAAO2rE,eAAe7nE,EAAQgoE,EAAWvpE,IAAKupE,IAAiB,MAAO,UAAUJ,EAAaQ,EAAYC,GAAiJ,MAA9HD,IAAYL,EAAiBH,EAAY7/D,UAAWqgE,GAAiBC,GAAaN,EAAiBH,EAAaS,GAAqBT,MAE7hBuyB,EAAO,SAAaC,EAAIC,EAAKC,GAAqC,IAA9B,GAAIC,IAAS,EAAwBA,GAAQ,CAAE,GAAIrhG,GAASkhG,EAAIvhD,EAAWwhD,EAAKG,EAAWF,CAAKC,IAAS,EAAsB,OAAXrhG,IAAiBA,EAASmW,SAAStH,UAAW,IAAI0yF,GAAOv+F,OAAOw+F,yBAAyBxhG,EAAQ2/C,EAAW,IAAax9C,SAATo/F,EAAJ,CAA4O,GAAI,SAAWA,GAAQ,MAAOA,GAAK5gG,KAAgB,IAAI0mB,GAASk6E,EAAKhyE,GAAK,IAAeptB,SAAXklB,EAAwB,MAAoB,OAAOA,GAAOlrB,KAAKmlG,GAA/V,GAAIn6F,GAASnE,OAAOy+F,eAAezhG,EAAS,IAAe,OAAXmH,EAAmB,MAA2B+5F,GAAK/5F,EAAQg6F,EAAMxhD,EAAUyhD,EAAME,EAAUD,GAAS,EAAME,EAAOp6F,EAAShF,SAQxcu/F,EAAgB5lG,EAAoB,IAEpC6lG,EAAiBtzB,EAAuBqzB,GAExC6D,EAAO,SAAW1D,GAGpB,QAAS0D,GAAK9lG,EAASm4C,EAAMmmD,GAC3BvvB,EAAgB5yE,KAAM2pG,GAEtBtE,EAAKj+F,OAAOy+F,eAAe8D,EAAK12F,WAAY,cAAejT,MAAMO,KAAKP,KAAM6D,EAASm4C,EAAMmmD,GAkD7F,MAvDA6C,GAAU2E,EAAM1D,GAQhBjzB,EAAa22B,IACXhgG,IAAK,SACL5E,MAAO,SAAgBqpC,EAAK+0B,GAC1B,GAAmB58D,SAAfvG,KAAKo7B,MAAqB,CAC5B,GAAIgG,GAAS,EACT8kE,EAAWlmG,KAAKmiG,YAAYgE,YAAY/3D,EAAK+0B,EACjDnjE,MAAKo7B,MAAQ8qE,EAAS9qE,MAAQ,EAAIgG,EAClCphC,KAAKq7B,OAAS6qE,EAAS7qE,OAAS,EAAI+F,EACpCphC,KAAKyyC,OAAS,GAAMzyC,KAAKo7B,UAI7BzxB,IAAK,OACL5E,MAAO,SAAcqpC,EAAK5T,EAAG/a,EAAG0jD,EAAU/0D,GACxCpO,KAAK4iG,OAAOx0D,EAAK+0B,GAAY/0D,GAC7BpO,KAAK2I,KAAO6xB,EAAIx6B,KAAKo7B,MAAQ,EAC7Bp7B,KAAK6I,IAAM4W,EAAIzf,KAAKq7B,OAAS,EAG7Br7B,KAAKsmG,aAAal4D,GAClBpuC,KAAKmiG,YAAYpqB,KAAK3pC,EAAK5T,EAAG/a,EAAG0jD,GAAY/0D,GAG7CpO,KAAKumG,cAAcn4D,GAEnBpuC,KAAK2iG,kBAAkBnoE,EAAG/a,EAAG2uB,EAAK+0B,MAGpCx5D,IAAK,oBACL5E,MAAO,SAA2By1B,EAAG/a,EAAG2uB,EAAK+0B,GAC3CnjE,KAAK4iG,OAAOx0D,EAAK+0B,GAEjBnjE,KAAK2I,KAAO6xB,EAAIx6B,KAAKo7B,MAAQ,EAC7Bp7B,KAAK6I,IAAM4W,EAAIzf,KAAKq7B,OAAS,EAE7Br7B,KAAK0/F,YAAY72F,IAAM7I,KAAK6I,IAC5B7I,KAAK0/F,YAAY/2F,KAAO3I,KAAK2I,KAC7B3I,KAAK0/F,YAAYhxD,MAAQ1uC,KAAK2I,KAAO3I,KAAKo7B,MAC1Cp7B,KAAK0/F,YAAYx0D,OAASlrC,KAAK6I,IAAM7I,KAAKq7B,UAG5C1xB,IAAK,mBACL5E,MAAO,SAA0BqpC,EAAK4Y,GACpC,MAAOhnD,MAAKuoG,kBAAkBn6D,EAAK4Y,OAIhC2iD,GACN5D,EAAe,WAElBnmG,GAAQ,WAAa+pG,EACrB9pG,EAAOD,QAAUA,EAAQ,YAIrB,SAASC,EAAQD,EAASM,GAY9B,QAASuyE,GAAuB3sE,GAAO,MAAOA,IAAOA,EAAI4sE,WAAa5sE,GAAQ6sE,UAAW7sE,GAEzF,QAAS8sE,GAAgBC,EAAUC,GAAe,KAAMD,YAAoBC,IAAgB,KAAM,IAAI5rE,WAAU,qCAEhH,QAAS89F,GAAUC,EAAUC,GAAc,GAA0B,kBAAfA,IAA4C,OAAfA,EAAuB,KAAM,IAAIh+F,WAAU,iEAAoEg+F,GAAeD,GAAShyF,UAAY7L,OAAOgJ,OAAO80F,GAAcA,EAAWjyF,WAAa9L,aAAepC,MAAOkgG,EAAU9xB,YAAY,EAAOE,UAAU,EAAMD,cAAc,KAAe8xB,IAAY99F,OAAO+9F,eAAiB/9F,OAAO+9F,eAAeF,EAAUC,GAAcD,EAASG,UAAYF,GAZje99F,OAAO2rE,eAAenzE,EAAS,cAC7BmF,OAAO,GAGT,IAAIiuE,GAAe,WAAe,QAASC,GAAiB/nE,EAAQrE,GAAS,IAAK,GAAIJ,GAAI,EAAGA,EAAII,EAAMP,OAAQG,IAAK,CAAE,GAAIysE,GAAarsE,EAAMJ,EAAIysE,GAAWC,WAAaD,EAAWC,aAAc,EAAOD,EAAWE,cAAe,EAAU,SAAWF,KAAYA,EAAWG,UAAW,GAAMjsE,OAAO2rE,eAAe7nE,EAAQgoE,EAAWvpE,IAAKupE,IAAiB,MAAO,UAAUJ,EAAaQ,EAAYC,GAAiJ,MAA9HD,IAAYL,EAAiBH,EAAY7/D,UAAWqgE,GAAiBC,GAAaN,EAAiBH,EAAaS,GAAqBT,MAE7hBuyB,EAAO,SAAaC,EAAIC,EAAKC,GAAqC,IAA9B,GAAIC,IAAS,EAAwBA,GAAQ,CAAE,GAAIrhG,GAASkhG,EAAIvhD,EAAWwhD,EAAKG,EAAWF,CAAKC,IAAS,EAAsB,OAAXrhG,IAAiBA,EAASmW,SAAStH,UAAW,IAAI0yF,GAAOv+F,OAAOw+F,yBAAyBxhG,EAAQ2/C,EAAW,IAAax9C,SAATo/F,EAAJ,CAA4O,GAAI,SAAWA,GAAQ,MAAOA,GAAK5gG,KAAgB,IAAI0mB,GAASk6E,EAAKhyE,GAAK,IAAeptB,SAAXklB,EAAwB,MAAoB,OAAOA,GAAOlrB,KAAKmlG,GAA/V,GAAIn6F,GAASnE,OAAOy+F,eAAezhG,EAAS,IAAe,OAAXmH,EAAmB,MAA2B+5F,GAAK/5F,EAAQg6F,EAAMxhD,EAAUyhD,EAAME,EAAUD,GAAS,EAAME,EAAOp6F,EAAShF,SAQxcmiG,EAAiBxoG,EAAoB,IAErCyoG,EAAkBl2B,EAAuBi2B,GAEzCkB,EAAW,SAAWf,GAGxB,QAASe,GAAS/lG,EAASm4C,EAAMmmD,GAC/BvvB,EAAgB5yE,KAAM4pG,GAEtBvE,EAAKj+F,OAAOy+F,eAAe+D,EAAS32F,WAAY,cAAejT,MAAMO,KAAKP,KAAM6D,EAASm4C,EAAMmmD,GAoBjG,MAzBA6C,GAAU4E,EAAUf,GAQpB71B,EAAa42B,IACXjgG,IAAK,SACL5E,MAAO,SAAgBqpC,GACrBpuC,KAAK8oG,kBAGPn/F,IAAK,OACL5E,MAAO,SAAcqpC,EAAK5T,EAAG/a,EAAG0jD,EAAU/0D,GACxCpO,KAAK+oG,WAAW36D,EAAK,WAAY,EAAG5T,EAAG/a,EAAG0jD,EAAU/0D,MAGtDzE,IAAK,mBACL5E,MAAO,SAA0BqpC,EAAK4Y,GACpC,MAAOhnD,MAAKuoG,kBAAkBn6D,EAAK4Y,OAIhC4iD,GACNjB,EAAgB,WAEnB/oG,GAAQ,WAAagqG,EACrB/pG,EAAOD,QAAUA,EAAQ,YAIrB,SAASC,EAAQD,EAASM,GAY9B,QAASuyE,GAAuB3sE,GAAO,MAAOA,IAAOA,EAAI4sE,WAAa5sE,GAAQ6sE,UAAW7sE,GAEzF,QAAS8sE,GAAgBC,EAAUC,GAAe,KAAMD,YAAoBC,IAAgB,KAAM,IAAI5rE,WAAU,qCAEhH,QAAS89F,GAAUC,EAAUC,GAAc,GAA0B,kBAAfA,IAA4C,OAAfA,EAAuB,KAAM,IAAIh+F,WAAU,iEAAoEg+F,GAAeD,GAAShyF,UAAY7L,OAAOgJ,OAAO80F,GAAcA,EAAWjyF,WAAa9L,aAAepC,MAAOkgG,EAAU9xB,YAAY,EAAOE,UAAU,EAAMD,cAAc,KAAe8xB,IAAY99F,OAAO+9F,eAAiB/9F,OAAO+9F,eAAeF,EAAUC,GAAcD,EAASG,UAAYF,GAZje99F,OAAO2rE,eAAenzE,EAAS,cAC7BmF,OAAO,GAGT,IAAIiuE,GAAe,WAAe,QAASC,GAAiB/nE,EAAQrE,GAAS,IAAK,GAAIJ,GAAI,EAAGA,EAAII,EAAMP,OAAQG,IAAK,CAAE,GAAIysE,GAAarsE,EAAMJ,EAAIysE,GAAWC,WAAaD,EAAWC,aAAc,EAAOD,EAAWE,cAAe,EAAU,SAAWF,KAAYA,EAAWG,UAAW,GAAMjsE,OAAO2rE,eAAe7nE,EAAQgoE,EAAWvpE,IAAKupE,IAAiB,MAAO,UAAUJ,EAAaQ,EAAYC,GAAiJ,MAA9HD,IAAYL,EAAiBH,EAAY7/D,UAAWqgE,GAAiBC,GAAaN,EAAiBH,EAAaS,GAAqBT,MAE7hBuyB,EAAO,SAAaC,EAAIC,EAAKC,GAAqC,IAA9B,GAAIC,IAAS,EAAwBA,GAAQ,CAAE,GAAIrhG,GAASkhG,EAAIvhD,EAAWwhD,EAAKG,EAAWF,CAAKC,IAAS,EAAsB,OAAXrhG,IAAiBA,EAASmW,SAAStH,UAAW,IAAI0yF,GAAOv+F,OAAOw+F,yBAAyBxhG,EAAQ2/C,EAAW,IAAax9C,SAATo/F,EAAJ,CAA4O,GAAI,SAAWA,GAAQ,MAAOA,GAAK5gG,KAAgB,IAAI0mB,GAASk6E,EAAKhyE,GAAK,IAAeptB,SAAXklB,EAAwB,MAAoB,OAAOA,GAAOlrB,KAAKmlG,GAA/V,GAAIn6F,GAASnE,OAAOy+F,eAAezhG,EAAS,IAAe,OAAXmH,EAAmB,MAA2B+5F,GAAK/5F,EAAQg6F,EAAMxhD,EAAUyhD,EAAME,EAAUD,GAAS,EAAME,EAAOp6F,EAAShF,SAQxcmiG,EAAiBxoG,EAAoB,IAErCyoG,EAAkBl2B,EAAuBi2B,GAEzCmB,EAAe,SAAWhB,GAG5B,QAASgB,GAAahmG,EAASm4C,EAAMmmD,GACnCvvB,EAAgB5yE,KAAM6pG,GAEtBxE,EAAKj+F,OAAOy+F,eAAegE,EAAa52F,WAAY,cAAejT,MAAMO,KAAKP,KAAM6D,EAASm4C,EAAMmmD,GAoBrG,MAzBA6C,GAAU6E,EAAchB,GAQxB71B,EAAa62B,IACXlgG,IAAK,SACL5E,MAAO,SAAgBqpC,GACrBpuC,KAAK8oG,kBAGPn/F,IAAK,OACL5E,MAAO,SAAcqpC,EAAK5T,EAAG/a,EAAG0jD,EAAU/0D,GACxCpO,KAAK+oG,WAAW36D,EAAK,eAAgB,EAAG5T,EAAG/a,EAAG0jD,EAAU/0D,MAG1DzE,IAAK,mBACL5E,MAAO,SAA0BqpC,EAAK4Y,GACpC,MAAOhnD,MAAKuoG,kBAAkBn6D,EAAK4Y,OAIhC6iD,GACNlB,EAAgB,WAEnB/oG,GAAQ,WAAaiqG,EACrBhqG,EAAOD,QAAUA,EAAQ,YAIrB,SAASC,EAAQD,EAASM,GAU9B,QAASuyE,GAAuB3sE,GAAO,MAAOA,IAAOA,EAAI4sE,WAAa5sE,GAAQ6sE,UAAW7sE,GAEzF,QAAS8sE,GAAgBC,EAAUC,GAAe,KAAMD,YAAoBC,IAAgB,KAAM,IAAI5rE,WAAU,qCARhHE,OAAO2rE,eAAenzE,EAAS,cAC7BmF,OAAO,GAGT,IAAIiuE,GAAe,WAAe,QAASC,GAAiB/nE,EAAQrE,GAAS,IAAK,GAAIJ,GAAI,EAAGA,EAAII,EAAMP,OAAQG,IAAK,CAAE,GAAIysE,GAAarsE,EAAMJ,EAAIysE,GAAWC,WAAaD,EAAWC,aAAc,EAAOD,EAAWE,cAAe,EAAU,SAAWF,KAAYA,EAAWG,UAAW,GAAMjsE,OAAO2rE,eAAe7nE,EAAQgoE,EAAWvpE,IAAKupE,IAAiB,MAAO,UAAUJ,EAAaQ,EAAYC,GAAiJ,MAA9HD,IAAYL,EAAiBH,EAAY7/D,UAAWqgE,GAAiBC,GAAaN,EAAiBH,EAAaS,GAAqBT,MAM7hBg3B,EAAkB5pG,EAAoB,IAEtC6pG,EAAmBt3B,EAAuBq3B,GAE1CxM,EAAyBp9F,EAAoB,IAE7Cq9F,EAA0B9qB,EAAuB6qB,GAEjD38F,EAAOT,EAAoB,GAC3BW,EAAUX,EAAoB,GAC9BY,EAAWZ,EAAoB,IAE/B8pG,EAAe,WACjB,QAASA,GAAahuD,EAAMg7C,EAAQ17C,GAClC,GAAIwD,GAAQ9+C,IAEZ4yE,GAAgB5yE,KAAMgqG,GAEtBhqG,KAAKg8C,KAAOA,EACZh8C,KAAKg3F,OAASA,EACdh3F,KAAKs7C,OAASA,EAGdt7C,KAAKg8C,KAAK26C,UAAUE,WAAa72F,KAAKoQ,OAAO+rC,KAAKn8C,MAElDA,KAAKiqG,gBACHvpF,IAAK,SAAa5V,EAAOyxB,GACvBuiB,EAAMp+B,IAAI6b,EAAOr6B,QAEnB46B,OAAQ,SAAgBhyB,EAAOyxB,GAC7BuiB,EAAMhiB,OAAOP,EAAOr6B,QAEtBs8B,OAAQ,SAAgB1zB,EAAOyxB,GAC7BuiB,EAAMtgB,OAAOjC,EAAOr6B,SAIxBlC,KAAK6D,WACL7D,KAAKw7C,gBACH0uD,QACEh1F,IAAMrE,SAAS,EAAOs5F,YAAa,GACnC54F,QAAUV,SAAS,EAAOs5F,YAAa,GACvCh1F,MAAQtE,SAAS,EAAOs5F,YAAa,IAEvC19F,OACEA,MAAO,UACP0B,UAAW,UACXC,MAAO,UACPq0C,QAAS,OACT/1C,QAAS,GAEXw6F,QAAQ,EACRt4D,MACEniC,MAAO,UACPouB,KAAM,GACNgjE,KAAM,QACN5vF,WAAY,OACZu2B,YAAa,EACbs5D,YAAa,UACbx/B,MAAO,cAETzF,QAAQ,EACRuxC,WAAY,IACZtvE,MAAOv0B,OACPy3F,oBAAoB,EACpB13F,OAAQC,OACRyxE,SAAS,EACTmmB,SACEv5F,IAAK,EACLC,IAAK,GACLi2B,OACEjqB,SAAS,EACTjM,IAAK,GACLC,IAAK,GACLu5F,WAAY,GACZC,cAAe,GAEjBC,sBAAuB,SAA+B15F,EAAKC,EAAKC,EAAOC,GACrE,GAAIF,IAAQD,EACV,MAAO,EAEP,IAAII,GAAQ,GAAKH,EAAMD,EACvB,OAAOK,MAAKJ,IAAI,GAAIE,EAAQH,GAAOI,KAIzCqlG,eAAgB,IAChBC,kBAAmB,GACnB/L,QACE1tF,SAAS,EACTgqB,KAAM,GACNL,EAAG,EACH/a,EAAG,GAEL8qF,QACE15F,SAAS,EACTjJ,KAAM,UACN4iG,eAAgB,OAChBC,UAAW,IAEbnuC,MAAO/1D,OACP60B,MAAO,EACPr2B,MAAOwB,QAGT5F,EAAKgG,OAAO3G,KAAK6D,QAAS7D,KAAKw7C,gBAE/Bx7C,KAAK+2F,qBAoTP,MAjTA/jB,GAAag3B,IACXrgG,IAAK,qBACL5E,MAAO,WACL,GAAIwwE,GAASv1E,IAGbA,MAAKg8C,KAAKE,QAAQlgB,GAAG,6BAA8B,SAAUp0B,GAC9C,YAATA,IACFA,EAAO,aAET,IAAI8iG,IAAa,CACjB,KAAK,GAAI7Q,KAAUtkB,GAAOv5B,KAAK+5C,MAC7B,GAAIxgB,EAAOv5B,KAAK+5C,MAAM/vF,eAAe6zF,GAAS,CAC5C,GAAIyC,GAAO/mB,EAAOv5B,KAAK+5C,MAAM8D,GACzB8Q,EAAWp1B,EAAOv5B,KAAKjkC,KAAKg+E,MAAM9vE,MAAM4zE,EAI5C,IAAiBtzF,SAAbokG,EAAwB,CAC1B,GAAIC,GAAcD,EAASJ,MACPhkG,UAAhBqkG,GACEA,EAAY/5F,WAAY,GAA6B,YAArB+5F,EAAYhjG,OACjCrB,SAATqB,EACF00F,EAAK1gE,YAAa2uE,QAAQ,IAE1BjO,EAAK1gE,YAAa2uE,QAAU3iG,KAAMA,KAEpC8iG,GAAa,IAMnBA,KAAe,GACjBn1B,EAAOv5B,KAAKE,QAAQzH,KAAK,kBAK7Bz0C,KAAKg8C,KAAKE,QAAQlgB,GAAG,eAAgB,WACnCu5C,EAAOs1B,iBACPt1B,EAAOu1B,wBAIT9qG,KAAKg8C,KAAKE,QAAQlgB,GAAG,eAAgBh8B,KAAKugC,QAAQ4b,KAAKn8C,OACvDA,KAAKg8C,KAAKE,QAAQlgB,GAAG,UAAWh8B,KAAKugC,QAAQ4b,KAAKn8C,OAClDA,KAAKg8C,KAAKE,QAAQlgB,GAAG,UAAW,iBACvBu5C,GAAOv5B,KAAK26C,UAAUE,iBACtBthB,GAAO00B,eAAevpF,UACtB60D,GAAO00B,eAAentE,aACtBy4C,GAAO00B,eAAezrE,aACtB+2C,GAAO00B,oBAIlBtgG,IAAK,aACL5E,MAAO,SAAoBlB,GACzB,GAAgB0C,SAAZ1C,EAAuB,CAEzBkmG,EAAiB,WAAWlL,aAAa7+F,KAAK6D,QAASA,GAGjC0C,SAAlB1C,EAAQ4I,OACVzM,KAAK8qG,qBAIP,IAAIxL,IAAc,CAClB,IAAuB/4F,SAAnB1C,EAAQ0mG,OACV,IAAK,GAAI1Q,KAAU75F,MAAKg8C,KAAK+5C,MACvB/1F,KAAKg8C,KAAK+5C,MAAM/vF,eAAe6zF,KACjCyF,EAAct/F,KAAKg8C,KAAK+5C,MAAM8D,GAAQkR,kBAAoBzL,EAMhE,IAAqB/4F,SAAjB1C,EAAQ+qC,KAAoB,CAE9B2uD,EAAwB,WAAWsB,aAAa7+F,KAAK6D,QAAQ+qC,KAAM/qC,EACnE,KAAK,GAAIg2F,KAAU75F,MAAKg8C,KAAK+5C,MACvB/1F,KAAKg8C,KAAK+5C,MAAM/vF,eAAe6zF,IACjC75F,KAAKg8C,KAAK+5C,MAAM8D,GAAQkF,qBAMPx4F,SAAnB1C,EAAQg1D,QAA4CtyD,SAApB1C,EAAQm0E,SAAyBsnB,KAAgB,IACnFt/F,KAAKg8C,KAAKE,QAAQzH,KAAK,oBAY7B9qC,IAAK,UACL5E,MAAO,SAAiBgxF,GACtB,GAAI1f,GAASr2E,KAETi/F,EAAY54F,UAAUC,QAAU,GAAsBC,SAAjBF,UAAU,IAAmB,EAAQA,UAAU,GAEpF2kG,EAAehrG,KAAKg8C,KAAKjkC,KAAKg+E,KAElC,IAAIA,YAAiBl1F,IAAWk1F,YAAiBj1F,GAC/Cd,KAAKg8C,KAAKjkC,KAAKg+E,MAAQA,MAClB,IAAIjvF,MAAMC,QAAQgvF,GACvB/1F,KAAKg8C,KAAKjkC,KAAKg+E,MAAQ,GAAIl1F,GAC3Bb,KAAKg8C,KAAKjkC,KAAKg+E,MAAMr1E,IAAIq1E,OACpB,CAAA,GAAKA,EAGV,KAAM,IAAI7uF,WAAU,4BAFpBlH,MAAKg8C,KAAKjkC,KAAKg+E,MAAQ,GAAIl1F,GAiB7B,GAXImqG,GAEFrqG,EAAK2I,QAAQtJ,KAAKiqG,eAAgB,SAAU1gG,EAAUuB,GACpDkgG,EAAa7uE,IAAIrxB,EAAOvB,KAK5BvJ,KAAKg8C,KAAK+5C,SAGN/1F,KAAKg8C,KAAKjkC,KAAKg+E,MAAO,CAExBp1F,EAAK2I,QAAQtJ,KAAKiqG,eAAgB,SAAU1gG,EAAUuB,GACpDurE,EAAOr6B,KAAKjkC,KAAKg+E,MAAM/5D,GAAGlxB,EAAOvB,IAInC,IAAI8zB,GAAMr9B,KAAKg8C,KAAKjkC,KAAKg+E,MAAM/3D,QAC/Bh+B,MAAK0gB,IAAI2c,GAAK,GAGZ4hE,KAAc,GAChBj/F,KAAKg8C,KAAKE,QAAQzH,KAAK,mBAU3B9qC,IAAK,MACL5E,MAAO,SAAas4B,GAMlB,IAAK,GALD4hE,GAAY54F,UAAUC,QAAU,GAAsBC,SAAjBF,UAAU,IAAmB,EAAQA,UAAU,GAEpF0vF,EAAQ/1F,KAAKg8C,KAAK+5C,MAClBkV,EAAYjrG,KAAKg8C,KAAKjkC,KAAKg+E,MAEtBtvF,EAAI,EAAGA,EAAI42B,EAAI/2B,OAAQG,IAAK,CACnC,GAAIpG,GAAKg9B,EAAI52B,GAETykG,EAAUnV,EAAM11F,EAChB6qG,IACFA,EAAQC,YAGV,IAAIpzF,GAAOkzF,EAAUt3E,IAAItzB,GAAM+qG,iBAAmB,GAClDrV,GAAM11F,GAAML,KAAKoQ,OAAO2H,GAGtBknF,KAAc,GAChBj/F,KAAKg8C,KAAKE,QAAQzH,KAAK,mBAU3B9qC,IAAK,SACL5E,MAAO,SAAgBs4B,GAIrB,IAAK,GAHD04D,GAAQ/1F,KAAKg8C,KAAK+5C,MAClBkV,EAAYjrG,KAAKg8C,KAAKjkC,KAAKg+E,MAC3BuJ,GAAc,EACT74F,EAAI,EAAGA,EAAI42B,EAAI/2B,OAAQG,IAAK,CACnC,GAAIpG,GAAKg9B,EAAI52B,GACTsR,EAAOkzF,EAAUt3E,IAAItzB,GACrBi8F,EAAOvG,EAAM11F,EACJkG,UAAT+1F,GAEFA,EAAK6O,aACL7L,EAAchD,EAAK1gE,WAAW7jB,IAASunF,EACvChD,EAAK+O,YAGLrrG,KAAKg8C,KAAK+5C,MAAM11F,GAAML,KAAKoQ,OAAO2H,GAClCunF,GAAc,GAIdA,KAAgB,EAClBt/F,KAAKg8C,KAAKE,QAAQzH,KAAK,gBAEvBz0C,KAAKg8C,KAAKE,QAAQzH,KAAK,mBAU3B9qC,IAAK,SACL5E,MAAO,SAAgBs4B,GAErB,IAAK,GADD04D,GAAQ/1F,KAAKg8C,KAAK+5C,MACbtvF,EAAI,EAAGA,EAAI42B,EAAI/2B,OAAQG,IAAK,CACnC,GAAIpG,GAAKg9B,EAAI52B,GACT61F,EAAOvG,EAAM11F,EACJkG,UAAT+1F,IACFA,EAAKgP,UACLhP,EAAK6O,mBACEpV,GAAM11F,IAIjBL,KAAKg8C,KAAKE,QAAQzH,KAAK,mBAGzB9qC,IAAK,UACL5E,MAAO,WACL,GAAIgxF,GAAQ/1F,KAAKg8C,KAAK+5C,KACtB,KAAK,GAAI8D,KAAU9D,GAAO,CACxB,GAAIuG,GAAO/1F,MACPwvF,GAAM/vF,eAAe6zF,KACvByC,EAAOvG,EAAM8D,GAEf,IAAI9hF,GAAO/X,KAAKg8C,KAAKjkC,KAAKg+E,MAAM9vE,MAAM4zE,EACzBtzF,UAAT+1F,GAA+B/1F,SAATwR,GACxBukF,EAAK1gE,WAAW7jB,OAKtBpO,IAAK,SACL5E,MAAO,SAAgB49C,GACrB,MAAO,IAAIonD,GAAiB,WAAWpnD,EAAY3iD,KAAKg8C,KAAMh8C,KAAK6D,YAGrE8F,IAAK,sBACL5E,MAAO,WACL,IAAK,GAAI80F,KAAU75F,MAAKg8C,KAAK+5C,MAC3B/1F,KAAKg8C,KAAK+5C,MAAM8D,GAAQ0R,SAASC,YAAa,KASlD7hG,IAAK,iBACL5E,MAAO,WACL,GAAI1E,GACAw1F,EAAQ71F,KAAKg8C,KAAK65C,MAClBE,EAAQ/1F,KAAKg8C,KAAK+5C,KAEtB,KAAK11F,IAAMw1F,GACLA,EAAM7vF,eAAe3F,KACvBw1F,EAAMx1F,GAAI01F,SAId,KAAK11F,IAAM01F,GACT,GAAIA,EAAM/vF,eAAe3F,GAAK,CAC5B,GAAIi8F,GAAOvG,EAAM11F,EACjBi8F,GAAKnnF,KAAO,KACZmnF,EAAKpnF,GAAK,KACVonF,EAAK+O,cAKX1hG,IAAK,oBACL5E,MAAO,SAA2B80F,GAChC,GAAI8F,KACJ,IAAgCp5F,SAA5BvG,KAAKg8C,KAAK+5C,MAAM8D,GAAuB,CACzC,GAAIyC,GAAOt8F,KAAKg8C,KAAK+5C,MAAM8D,EACvByC,GAAKwD,QACPH,EAASn4F,KAAK80F,EAAKwD,QAEjBxD,EAAKuD,MACPF,EAASn4F,KAAK80F,EAAKuD,MAGvB,MAAOF,OAIJqK,IAGTpqG,GAAQ,WAAaoqG,EACrBnqG,EAAOD,QAAUA,EAAQ,YAIrB,SAASC,EAAQD,EAASM,GAU9B,QAASuyE,GAAuB3sE,GAAO,MAAOA,IAAOA,EAAI4sE,WAAa5sE,GAAQ6sE,UAAW7sE,GAEzF,QAAS8sE,GAAgBC,EAAUC,GAAe,KAAMD,YAAoBC,IAAgB,KAAM,IAAI5rE,WAAU,qCARhHE,OAAO2rE,eAAenzE,EAAS,cAC7BmF,OAAO,GAGT,IAAIiuE,GAAe,WAAe,QAASC,GAAiB/nE,EAAQrE,GAAS,IAAK,GAAIJ,GAAI,EAAGA,EAAII,EAAMP,OAAQG,IAAK,CAAE,GAAIysE,GAAarsE,EAAMJ,EAAIysE,GAAWC,WAAaD,EAAWC,aAAc,EAAOD,EAAWE,cAAe,EAAU,SAAWF,KAAYA,EAAWG,UAAW,GAAMjsE,OAAO2rE,eAAe7nE,EAAQgoE,EAAWvpE,IAAKupE,IAAiB,MAAO,UAAUJ,EAAaQ,EAAYC,GAAiJ,MAA9HD,IAAYL,EAAiBH,EAAY7/D,UAAWqgE,GAAiBC,GAAaN,EAAiBH,EAAaS,GAAqBT,MAM7hBktB,EAAe9/F,EAAoB,IAEnC+/F,EAAgBxtB,EAAuButB,GAEvCyL,EAAwBvrG,EAAoB,IAE5CwrG,EAAyBj5B,EAAuBg5B,GAEhDE,EAA0BzrG,EAAoB,IAE9C0rG,EAA2Bn5B,EAAuBk5B,GAElDE,EAAyB3rG,EAAoB,IAE7C4rG,EAA0Br5B,EAAuBo5B,GAEjDE,EAAqB7rG,EAAoB,IAEzC8rG,EAAsBv5B,EAAuBs5B,GAiB7CprG,EAAOT,EAAoB,GAE3B+rG,EAAO,WACT,QAASA,GAAKpoG,EAASm4C,EAAMprC,GAG3B,GAFAgiE,EAAgB5yE,KAAMisG,GAET1lG,SAATy1C,EACF,KAAM,kBAERh8C,MAAK6D,QAAUlD,EAAK0P,aAAaO,GACjC5Q,KAAK4Q,cAAgBA,EACrB5Q,KAAKg8C,KAAOA,EAGZh8C,KAAKK,GAAKkG,OACVvG,KAAK8/F,OAASv5F,OACdvG,KAAK6/F,KAAOt5F,OACZvG,KAAKmjE,UAAW,EAChBnjE,KAAKoO,OAAQ,EACbpO,KAAK4jG,YAAa,EAClB5jG,KAAKwrG,YAAa,EAElBxrG,KAAKksG,UAAYlsG,KAAK6D,QAAQu3B,MAC9Bp7B,KAAKiiG,aAAejiG,KAAK6D,QAAQ+qC,KAAK/T,KAEtC76B,KAAKmV,KAAO5O,OACZvG,KAAKkV,GAAK3O,OAEVvG,KAAKurG,SAAWhlG,OAEhBvG,KAAKmsG,WAAY,EAEjBnsG,KAAKmiG,YAAc,GAAIlC,GAAc,WAAWjgG,KAAKg8C,KAAMh8C,KAAK6D,SAEhE7D,KAAK47B,WAAW/3B,GAqelB,MA5dAmvE,GAAai5B,IACXtiG,IAAK,aACL5E,MAAO,SAAoBlB,GACzB,GAAKA,EAAL,CAGA7D,KAAKwrG,YAAa,EAElBS,EAAKpN,aAAa7+F,KAAK6D,QAASA,GAAS,EAAM7D,KAAK4Q,eAEjCrK,SAAf1C,EAAQxD,KACVL,KAAKK,GAAKwD,EAAQxD,IAECkG,SAAjB1C,EAAQsR,OACVnV,KAAK8/F,OAASj8F,EAAQsR,MAEL5O,SAAf1C,EAAQqR,KACVlV,KAAK6/F,KAAOh8F,EAAQqR,IAEA3O,SAAlB1C,EAAQy4D,QACVt8D,KAAKs8D,MAAQz4D,EAAQy4D,OAED/1D,SAAlB1C,EAAQkB,QACVlB,EAAQkB,MAAQ4jB,WAAW9kB,EAAQkB,QAIrC/E,KAAK++F,mBAEL,IAAIO,GAAct/F,KAAK+qG,gBAYvB,OATA/qG,MAAKosG,wBAGLpsG,KAAKqrG,WAEkB9kG,SAAnB1C,EAAQg1D,QAA4CtyD,SAApB1C,EAAQm0E,WAC1CsnB,GAAc,GAGTA,MAGT31F,IAAK,oBAML5E,MAAO,WACL/E,KAAKmiG,YAAYvmE,WAAW57B,KAAK6D,SAAS,GACR0C,SAA9BvG,KAAKmiG,YAAYH,WACnBhiG,KAAKiiG,aAAejiG,KAAKmiG,YAAYH,aASzCr4F,IAAK,iBACL5E,MAAO,WACL,GAAIu6F,IAAc,EACd+M,GAAe,EACf9B,EAASvqG,KAAK6D,QAAQ0mG,MAsC1B,OArCsBhkG,UAAlBvG,KAAKurG,WACHvrG,KAAKurG,mBAAoBK,GAAyB,YAAcrB,EAAO15F,WAAY,GAAwB,YAAhB05F,EAAO3iG,OACpGykG,GAAe,GAEbrsG,KAAKurG,mBAAoBG,GAAuB,YAAcnB,EAAO15F,WAAY,GAAwB,gBAAhB05F,EAAO3iG,OAClGykG,GAAe,GAEbrsG,KAAKurG,mBAAoBO,GAAwB,YAAcvB,EAAO15F,WAAY,GAAwB,YAAhB05F,EAAO3iG,MAAsC,gBAAhB2iG,EAAO3iG,OAChIykG,GAAe,GAEbrsG,KAAKurG,mBAAoBS,GAAoB,YAAczB,EAAO15F,WAAY,IAChFw7F,GAAe,GAGbA,KAAiB,IACnB/M,EAAct/F,KAAKsrG,YAInBe,KAAiB,EACfrsG,KAAK6D,QAAQ0mG,OAAO15F,WAAY,EACD,YAA7B7Q,KAAK6D,QAAQ0mG,OAAO3iG,MACtB03F,GAAc,EACdt/F,KAAKurG,SAAW,GAAIK,GAAyB,WAAW5rG,KAAK6D,QAAS7D,KAAKg8C,KAAMh8C,KAAKmiG,cAChD,gBAA7BniG,KAAK6D,QAAQ0mG,OAAO3iG,KAC7B5H,KAAKurG,SAAW,GAAIG,GAAuB,WAAW1rG,KAAK6D,QAAS7D,KAAKg8C,KAAMh8C,KAAKmiG,aAEpFniG,KAAKurG,SAAW,GAAIO,GAAwB,WAAW9rG,KAAK6D,QAAS7D,KAAKg8C,KAAMh8C,KAAKmiG,aAGvFniG,KAAKurG,SAAW,GAAIS,GAAoB,WAAWhsG,KAAK6D,QAAS7D,KAAKg8C,KAAMh8C,KAAKmiG,aAInFniG,KAAKurG,SAAS3vE,WAAW57B,KAAK6D,SAGzBy7F,KAOT31F,IAAK,UACL5E,MAAO,WACL/E,KAAKmrG,aAELnrG,KAAKmV,KAAOnV,KAAKg8C,KAAK65C,MAAM71F,KAAK8/F,SAAWv5F,OAC5CvG,KAAKkV,GAAKlV,KAAKg8C,KAAK65C,MAAM71F,KAAK6/F,OAASt5F,OACxCvG,KAAKmsG,UAA0B5lG,SAAdvG,KAAKmV,MAAkC5O,SAAZvG,KAAKkV,GAE7ClV,KAAKmsG,aAAc,GACrBnsG,KAAKmV,KAAKm3F,WAAWtsG,MACrBA,KAAKkV,GAAGo3F,WAAWtsG,QAEfA,KAAKmV,MACPnV,KAAKmV,KAAKo3F,WAAWvsG,MAEnBA,KAAKkV,IACPlV,KAAKkV,GAAGq3F,WAAWvsG,OAIvBA,KAAKurG,SAASF,aAOhB1hG,IAAK,aACL5E,MAAO,WACD/E,KAAKmV,OACPnV,KAAKmV,KAAKo3F,WAAWvsG,MACrBA,KAAKmV,KAAO5O,QAEVvG,KAAKkV,KACPlV,KAAKkV,GAAGq3F,WAAWvsG,MACnBA,KAAKkV,GAAK3O,QAGZvG,KAAKmsG,WAAY,KASnBxiG,IAAK,WACL5E,MAAO,WACL,MAAO/E,MAAKs8D,SAQd3yD,IAAK,aACL5E,MAAO,WACL,MAAO/E,MAAKmjE,YAQdx5D,IAAK,WACL5E,MAAO,WACL,MAAO/E,MAAK6D,QAAQkB,SAWtB4E,IAAK,gBACL5E,MAAO,SAAuBH,EAAKC,EAAKC,GACtC,GAA2ByB,SAAvBvG,KAAK6D,QAAQkB,MAAqB,CACpC,GAAIC,GAAQhF,KAAK6D,QAAQs6F,QAAQG,sBAAsB15F,EAAKC,EAAKC,EAAO9E,KAAK6D,QAAQkB,OACjFynG,EAAYxsG,KAAK6D,QAAQs6F,QAAQt5F,IAAM7E,KAAK6D,QAAQs6F,QAAQv5F,GAChE,IAAI5E,KAAK6D,QAAQs6F,QAAQrjE,MAAMjqB,WAAY,EAAM,CAC/C,GAAI6xF,GAAW1iG,KAAK6D,QAAQs6F,QAAQrjE,MAAMj2B,IAAM7E,KAAK6D,QAAQs6F,QAAQrjE,MAAMl2B,GAC3E5E,MAAK6D,QAAQ+qC,KAAK/T,KAAO76B,KAAK6D,QAAQs6F,QAAQrjE,MAAMl2B,IAAMI,EAAQ09F,EAEpE1iG,KAAK6D,QAAQu3B,MAAQp7B,KAAK6D,QAAQs6F,QAAQv5F,IAAMI,EAAQwnG,MAExDxsG,MAAK6D,QAAQu3B,MAAQp7B,KAAKksG,UAC1BlsG,KAAK6D,QAAQ+qC,KAAK/T,KAAO76B,KAAKiiG,YAGhCjiG,MAAKosG,wBACLpsG,KAAK++F,uBAGPp1F,IAAK,wBACL5E,MAAO,WACkC,kBAA5B/E,MAAK6D,QAAQumG,WACtBpqG,KAAKurG,SAASnB,WAAapqG,KAAK6D,QAAQumG,WAAWpqG,KAAK6D,QAAQu3B,OAEhEp7B,KAAKurG,SAASnB,WAAapqG,KAAK6D,QAAQumG,WAAapqG,KAAK6D,QAAQu3B,MAGzB,kBAAhCp7B,MAAK6D,QAAQwmG,eACtBrqG,KAAKurG,SAASlB,eAAiBrqG,KAAK6D,QAAQwmG,eAAerqG,KAAK6D,QAAQu3B,OAExEp7B,KAAKurG,SAASlB,eAAiBrqG,KAAK6D,QAAQwmG,eAAiBrqG,KAAK6D,QAAQu3B,SAW9EzxB,IAAK,OACL5E,MAAO,SAAcqpC,GACnB,GAAIq+D,GAAMzsG,KAAKurG,SAASmB,SAASt+D,EAAKpuC,KAAKmjE,SAAUnjE,KAAKoO,MAC1DpO,MAAK2sG,WAAWv+D,EAAKq+D,GACrBzsG,KAAK4sG,UAAUx+D,EAAKq+D,MAGtB9iG,IAAK,aACL5E,MAAO,SAAoBqpC,EAAKy+D,GAC1B7sG,KAAK6D,QAAQqmG,OAAO/0F,KAAKtE,WAAY,GACvC7Q,KAAKurG,SAASuB,cAAc1+D,EAAK,OAAQy+D,EAAS7sG,KAAKmjE,SAAUnjE,KAAKoO,OAEpEpO,KAAK6D,QAAQqmG,OAAO34F,OAAOV,WAAY,GACzC7Q,KAAKurG,SAASuB,cAAc1+D,EAAK,SAAUy+D,EAAS7sG,KAAKmjE,SAAUnjE,KAAKoO,OAEtEpO,KAAK6D,QAAQqmG,OAAOh1F,GAAGrE,WAAY,GACrC7Q,KAAKurG,SAASuB,cAAc1+D,EAAK,KAAMy+D,EAAS7sG,KAAKmjE,SAAUnjE,KAAKoO,UAIxEzE,IAAK,YACL5E,MAAO,SAAmBqpC,EAAKy+D,GAC7B,GAA2BtmG,SAAvBvG,KAAK6D,QAAQi3B,MAAqB,CAEpC,GAAIiyE,GAAQ/sG,KAAKmV,KACb63F,EAAQhtG,KAAKkV,GACbiuD,EAAWnjE,KAAKmV,KAAKguD,UAAYnjE,KAAKkV,GAAGiuD,UAAYnjE,KAAKmjE,QAC9D,IAAI4pC,EAAM1sG,IAAM2sG,EAAM3sG,GAAI,CACxBL,KAAKmiG,YAAYqB,aAAc,CAC/B,IAAI7oE,GAAQ36B,KAAKurG,SAAS0B,SAAS,GAAKJ,EACxCz+D,GAAIo4D,OAG4B,eAA5BxmG,KAAK6D,QAAQ+qC,KAAK0vB,QACpBt+D,KAAKmiG,YAAY4B,mBAAmB31D,EAAK+0B,EAAUxoC,EAAMH,EAAGG,EAAMlb,GAClE2uB,EAAI8+D,UAAUvyE,EAAMH,EAAGx6B,KAAKmiG,YAAYtnE,KAAK6oE,OAC7C1jG,KAAKmtG,yBAAyB/+D,IAIhCpuC,KAAKmiG,YAAYpqB,KAAK3pC,EAAKzT,EAAMH,EAAGG,EAAMlb,EAAG0jD,GAC7C/0B,EAAIu4D,cACC,CAEL3mG,KAAKmiG,YAAYqB,aAAc,CAC/B,IAAIhpE,GAAG/a,EACHgzB,EAASzyC,KAAK6D,QAAQymG,iBACtByC,GAAMvO,MAAMpjE,MAAQ2xE,EAAMvO,MAAMnjE,QAClCb,EAAIuyE,EAAMvyE,EAAwB,GAApBuyE,EAAMvO,MAAMpjE,MAC1B3b,EAAIstF,EAAMttF,EAAIgzB,IAEdjY,EAAIuyE,EAAMvyE,EAAIiY,EACdhzB,EAAIstF,EAAMttF,EAAyB,GAArBstF,EAAMvO,MAAMnjE,QAE5BV,EAAQ36B,KAAKotG,eAAe5yE,EAAG/a,EAAGgzB,EAAQ,MAC1CzyC,KAAKmiG,YAAYpqB,KAAK3pC,EAAKzT,EAAMH,EAAGG,EAAMlb,EAAG0jD,QAWnDx5D,IAAK,oBACL5E,MAAO,SAA2Be,GAChC,GAAI9F,KAAKmsG,UAAW,CAClB,GAAIr2D,GAAU,GACVu3D,EAAQrtG,KAAKmV,KAAKqlB,EAClB8yE,EAAQttG,KAAKmV,KAAKsK,EAClB8tF,EAAMvtG,KAAKkV,GAAGslB,EACdgzE,EAAMxtG,KAAKkV,GAAGuK,EACdguF,EAAO3nG,EAAI6C,KACX+kG,EAAO5nG,EAAI+C,IAEXqpC,EAAOlyC,KAAKurG,SAASoC,kBAAkBN,EAAOC,EAAOC,EAAKC,EAAKC,EAAMC,EAEzE,OAAc53D,GAAP5D,EAEP,OAAO,KAUXvoC,IAAK,2BACL5E,MAAO,SAAkCqpC,GACvC,GAAIzH,GAAK3mC,KAAKmV,KAAKsK,EAAIzf,KAAKkV,GAAGuK,EAC3BinB,EAAK1mC,KAAKmV,KAAKqlB,EAAIx6B,KAAKkV,GAAGslB,EAC3BozE,EAAiB3oG,KAAKyjD,MAAM/hB,EAAID,IAGf,GAAjBknE,GAA4B,EAALlnE,GAAUknE,EAAiB,GAAU,EAALlnE,KACzDknE,GAAkC3oG,KAAK0tC,IAGzCvE,EAAIy/D,OAAOD,MAabjkG,IAAK,iBACL5E,MAAO,SAAwBy1B,EAAG/a,EAAGgzB,EAAQq7D,GAC3C,GAAI9mD,GAAqB,EAAb8mD,EAAiB7oG,KAAK0tC,EAClC,QACEnY,EAAGA,EAAIiY,EAASxtC,KAAKohC,IAAI2gB,GACzBvnC,EAAGA,EAAIgzB,EAASxtC,KAAKihC,IAAI8gB,OAI7Br9C,IAAK,SACL5E,MAAO,WACL/E,KAAKmjE,UAAW,KAGlBx5D,IAAK,WACL5E,MAAO,WACL/E,KAAKmjE,UAAW,KAQlBx5D,IAAK,UACL5E,MAAO,WACL,MAAO/E,MAAKurG,SAASD,eAGvB3hG,IAAK,eACL5E,MAAO,SAAsB89F,EAAeC,GAC1C,GAAI18F,GAAgBC,UAAUC,QAAU,GAAsBC,SAAjBF,UAAU,IAAmB,EAAQA,UAAU,GACxFuK,EAAgBvK,UAAUC,QAAU,GAAsBC,SAAjBF,UAAU,MAAwBA,UAAU,GAErF4J,GAAU,KAAM,OAAQ,SAAU,aAAc,QAAS,qBAAsB,SAAU,OAAQ,UAAW,UAAW,UAAW,iBAAkB,oBAAqB,KAAM,QAAS,QAAS,QA4BrM,IAzBAtP,EAAKsG,oBAAoBgJ,EAAQ4yF,EAAeC,EAAY18F,GAE5DzF,EAAK+P,aAAamyF,EAAeC,EAAY,SAAU18F,EAAewK,GACtEjQ,EAAK+P,aAAamyF,EAAeC,EAAY,SAAU18F,EAAewK,GAE5CrK,SAAtBu8F,EAAWoE,QAA8C,OAAtBpE,EAAWoE,OAChDrE,EAAcqE,OAASpE,EAAWoE,OACzB9gG,KAAkB,GAA8B,OAAtB08F,EAAWoE,SAC9CrE,EAAcqE,OAAS9/F,OAAOgJ,OAAOQ,EAAcs2F,SAI1B3gG,SAAvBu8F,EAAW3E,SAAgD,OAAvB2E,EAAW3E,SAClB53F,SAA3Bu8F,EAAW3E,QAAQv5F,MACrBi+F,EAAc1E,QAAQv5F,IAAMk+F,EAAW3E,QAAQv5F,KAElB2B,SAA3Bu8F,EAAW3E,QAAQt5F,MACrBg+F,EAAc1E,QAAQt5F,IAAMi+F,EAAW3E,QAAQt5F,KAEjDlE,EAAK+P,aAAamyF,EAAc1E,QAAS2E,EAAW3E,QAAS,QAAS/3F,EAAewK,EAAcutF,UAC1F/3F,KAAkB,GAA+B,OAAvB08F,EAAW3E,UAC9C0E,EAAc1E,QAAU/2F,OAAOgJ,OAAOQ,EAAcutF,UAI5B53F,SAAtBu8F,EAAWoH,QAA8C,OAAtBpH,EAAWoH,OAChD,GAAiC,gBAAtBpH,GAAWoH,OAAqB,CACzC,GAAIA,GAASpH,EAAWoH,OAAOhzF,aACH,KAAxBgzF,EAAO3iG,QAAQ,QACjBs7F,EAAcqH,OAAOh1F,GAAGrE,SAAU,GAEJ,IAA5Bq5F,EAAO3iG,QAAQ,YACjBs7F,EAAcqH,OAAO34F,OAAOV,SAAU,GAEV,IAA1Bq5F,EAAO3iG,QAAQ,UACjBs7F,EAAcqH,OAAO/0F,KAAKtE,SAAU,OAEjC,CAAA,GAAiC,gBAAtBiyF,GAAWoH,OAK3B,KAAM,IAAIljG,OAAM,gGAAkGs4B,KAAKC,UAAUujE,EAAWoH;AAJ5IvpG,EAAK+P,aAAamyF,EAAcqH,OAAQpH,EAAWoH,OAAQ,KAAM9jG,EAAewK,EAAcs5F,QAC9FvpG,EAAK+P,aAAamyF,EAAcqH,OAAQpH,EAAWoH,OAAQ,SAAU9jG,EAAewK,EAAcs5F,QAClGvpG,EAAK+P,aAAamyF,EAAcqH,OAAQpH,EAAWoH,OAAQ,OAAQ9jG,EAAewK,EAAcs5F,YAIzF9jG,MAAkB,GAA8B,OAAtB08F,EAAWoH,SAC9CrH,EAAcqH,OAAS9iG,OAAOgJ,OAAOQ,EAAcs5F,QAIrD,IAAyB3jG,SAArBu8F,EAAWr2F,OAA4C,OAArBq2F,EAAWr2F,MAG/C,GADAo2F,EAAcp2F,MAAQ9L,EAAK0G,cAAew7F,EAAcp2F,OAAO,GAC3D9L,EAAKuE,SAAS49F,EAAWr2F,OAC3Bo2F,EAAcp2F,MAAMA,MAAQq2F,EAAWr2F,MACvCo2F,EAAcp2F,MAAM0B,UAAY20F,EAAWr2F,MAC3Co2F,EAAcp2F,MAAM2B,MAAQ00F,EAAWr2F,MACvCo2F,EAAcp2F,MAAMg2C,SAAU,MACzB,CACL,GAAIsrD,IAAgB,CACWxnG,UAA3Bu8F,EAAWr2F,MAAMA,QACnBo2F,EAAcp2F,MAAMA,MAAQq2F,EAAWr2F,MAAMA,MAAMshG,GAAgB,GAElCxnG,SAA/Bu8F,EAAWr2F,MAAM0B,YACnB00F,EAAcp2F,MAAM0B,UAAY20F,EAAWr2F,MAAM0B,UAAU4/F,GAAgB,GAE9CxnG,SAA3Bu8F,EAAWr2F,MAAM2B,QACnBy0F,EAAcp2F,MAAM2B,MAAQ00F,EAAWr2F,MAAM2B,MAAM2/F,GAAgB,GAEpCxnG,SAA7Bu8F,EAAWr2F,MAAMg2C,UACnBogD,EAAcp2F,MAAMg2C,QAAUqgD,EAAWr2F,MAAMg2C,SAEhBl8C,SAA7Bu8F,EAAWr2F,MAAMC,UACnBm2F,EAAcp2F,MAAMC,QAAUzH,KAAKL,IAAI,EAAGK,KAAKJ,IAAI,EAAGi+F,EAAWr2F,MAAMC,WAGxCnG,SAA7Bu8F,EAAWr2F,MAAMg2C,SAAyBsrD,KAAkB,IAC9DlL,EAAcp2F,MAAMg2C,SAAU,OAGzBr8C,MAAkB,GAA6B,OAArB08F,EAAWr2F,QAC9Co2F,EAAcp2F,MAAQ9L,EAAK0P,aAAaO,EAAcnE,OAIhClG,UAApBu8F,EAAWl0D,MAA0C,OAApBk0D,EAAWl0D,KAC9CqxD,EAAc,WAAWpB,aAAagE,EAAcj0D,KAAMk0D,GACjD18F,KAAkB,GAA4B,OAApB08F,EAAWl0D,OAC9Ci0D,EAAcj0D,KAAOjuC,EAAK0P,aAAaO,EAAcg+B,WAKpDq9D,IAGTrsG,GAAQ,WAAaqsG,EACrBpsG,EAAOD,QAAUA,EAAQ,YAIrB,SAASC,EAAQD,EAASM,GAc9B,QAASuyE,GAAuB3sE,GAAO,MAAOA,IAAOA,EAAI4sE,WAAa5sE,GAAQ6sE,UAAW7sE,GAEzF,QAAS8sE,GAAgBC,EAAUC,GAAe,KAAMD,YAAoBC,IAAgB,KAAM,IAAI5rE,WAAU,qCAEhH,QAAS89F,GAAUC,EAAUC,GAAc,GAA0B,kBAAfA,IAA4C,OAAfA,EAAuB,KAAM,IAAIh+F,WAAU,iEAAoEg+F,GAAeD,GAAShyF,UAAY7L,OAAOgJ,OAAO80F,GAAcA,EAAWjyF,WAAa9L,aAAepC,MAAOkgG,EAAU9xB,YAAY,EAAOE,UAAU,EAAMD,cAAc,KAAe8xB,IAAY99F,OAAO+9F,eAAiB/9F,OAAO+9F,eAAeF,EAAUC,GAAcD,EAASG,UAAYF,GAdje99F,OAAO2rE,eAAenzE,EAAS,cAC7BmF,OAAO,GAGT,IAAIi+F,GAAiB,WAAe,QAASC,GAAc76F,EAAK3B,GAAK,GAAIy8F,MAAeC,GAAK,EAAUzuF,GAAK,EAAW0uF,EAAK78F,MAAW,KAAM,IAAK,GAAiC88F,GAA7B/tF,EAAKlN,EAAIk7F,OAAOjhD,cAAmB8gD,GAAME,EAAK/tF,EAAG+B,QAAQo+C,QAAoBytC,EAAK17F,KAAK67F,EAAGt+F,QAAY0B,GAAKy8F,EAAK58F,SAAWG,GAA3D08F,GAAK,IAAoE,MAAOntB,GAAOthE,GAAK,EAAM0uF,EAAKptB,EAAO,QAAU,KAAWmtB,GAAM7tF,EAAG,WAAWA,EAAG,YAAe,QAAU,GAAIZ,EAAI,KAAM0uF,IAAQ,MAAOF,GAAQ,MAAO,UAAU96F,EAAK3B,GAAK,GAAIK,MAAMC,QAAQqB,GAAQ,MAAOA,EAAY,IAAIk7F,OAAOjhD,WAAYj7C,QAAOgB,GAAQ,MAAO66F,GAAc76F,EAAK3B,EAAa,MAAM,IAAIS,WAAU,4DAEnlB8rE,EAAe,WAAe,QAASC,GAAiB/nE,EAAQrE,GAAS,IAAK,GAAIJ,GAAI,EAAGA,EAAII,EAAMP,OAAQG,IAAK,CAAE,GAAIysE,GAAarsE,EAAMJ,EAAIysE,GAAWC,WAAaD,EAAWC,aAAc,EAAOD,EAAWE,cAAe,EAAU,SAAWF,KAAYA,EAAWG,UAAW,GAAMjsE,OAAO2rE,eAAe7nE,EAAQgoE,EAAWvpE,IAAKupE,IAAiB,MAAO,UAAUJ,EAAaQ,EAAYC,GAAiJ,MAA9HD,IAAYL,EAAiBH,EAAY7/D,UAAWqgE,GAAiBC,GAAaN,EAAiBH,EAAaS,GAAqBT,MAE7hBuyB,EAAO,SAAaG,EAAKwI,EAAKC,GAAqC,IAA9B,GAAIxI,IAAS,EAAwBA,GAAQ,CAAE,GAAIrhG,GAASohG,EAAKzhD,EAAWiqD,EAAKtI,EAAWuI,CAAKxI,IAAS,EAAsB,OAAXrhG,IAAiBA,EAASmW,SAAStH,UAAW,IAAI0yF,GAAOv+F,OAAOw+F,yBAAyBxhG,EAAQ2/C,EAAW,IAAax9C,SAATo/F,EAAJ,CAA6O,GAAI,SAAWA,GAAQ,MAAOA,GAAK5gG,KAAgB,IAAI0mB,GAASk6E,EAAKhyE,GAAK,IAAeptB,SAAXklB,EAAwB,MAAoB,OAAOA,GAAOlrB,KAAKmlG,GAAhW,GAAIn6F,GAASnE,OAAOy+F,eAAezhG,EAAS,IAAe,OAAXmH,EAAmB,MAA2Bi6F,GAAMj6F,EAAQyiG,EAAMjqD,EAAUkqD,EAAMvI,EAAUD,GAAS,EAAME,EAAOp6F,EAAShF,SAQ3c2nG,EAA2BhuG,EAAoB,IAE/CiuG,EAA4B17B,EAAuBy7B,GAEnDE,EAAkB,SAAWC,GAG/B,QAASD,GAAgBvqG,EAASm4C,EAAMmmD,GACtCvvB,EAAgB5yE,KAAMouG,GAEtB/I,EAAKj+F,OAAOy+F,eAAeuI,EAAgBn7F,WAAY,cAAejT,MAAMO,KAAKP,KAAM6D,EAASm4C,EAAMmmD,GAmHxG,MAxHA6C,GAAUoJ,EAAiBC,GAc3Br7B,EAAao7B,IACXzkG,IAAK,QACL5E,MAAO,SAAeqpC,GAGpB,GAAIkgE,GAAsBtuG,KAAKuuG,qBAE3BC,EAAuBxL,EAAesL,EAAqB,GAE3DG,EAAOD,EAAqB,GAC5BE,EAAOF,EAAqB,GAE5BxjG,GAAeyjG,EAAMC,EAiBzB,OAdAtgE,GAAIa,YACJb,EAAIc,OAAOlvC,KAAKmV,KAAKqlB,EAAGx6B,KAAKmV,KAAKsK,GAGnBlZ,SAAXkoG,EAAKj0E,GACP4T,EAAIe,OAAOnvC,KAAKkV,GAAGslB,EAAGx6B,KAAKkV,GAAGuK,GAC9BzU,EAAczE,QAEd6nC,EAAIugE,cAAcF,EAAKj0E,EAAGi0E,EAAKhvF,EAAGivF,EAAKl0E,EAAGk0E,EAAKjvF,EAAGzf,KAAKkV,GAAGslB,EAAGx6B,KAAKkV,GAAGuK,GAGvEzf,KAAKsmG,aAAal4D,GAClBA,EAAI7J,SACJvkC,KAAKumG,cAAcn4D,GACZpjC,KAGTrB,IAAK,qBACL5E,MAAO,WACL,GAAI2hC,GAAK1mC,KAAKmV,KAAKqlB,EAAIx6B,KAAKkV,GAAGslB,EAC3BmM,EAAK3mC,KAAKmV,KAAKsK,EAAIzf,KAAKkV,GAAGuK,EAE3BmvF,EAAKroG,OACLsoG,EAAKtoG,OACLuoG,EAAKvoG,OACLwoG,EAAKxoG,OACLkkG,EAAYzqG,KAAK6D,QAAQ0mG,OAAOE,SAepC,QAZKxlG,KAAK6R,IAAI4vB,GAAMzhC,KAAK6R,IAAI6vB,IAAO3mC,KAAK6D,QAAQ0mG,OAAOC,kBAAmB,GAA+C,eAAvCxqG,KAAK6D,QAAQ0mG,OAAOC,iBAA2E,aAAvCxqG,KAAK6D,QAAQ0mG,OAAOC,gBAC7JqE,EAAK7uG,KAAKmV,KAAKsK,EACfsvF,EAAK/uG,KAAKkV,GAAGuK,EACbmvF,EAAK5uG,KAAKmV,KAAKqlB,EAAIiwE,EAAY/jE,EAC/BooE,EAAK9uG,KAAKkV,GAAGslB,EAAIiwE,EAAY/jE,IAE7BmoE,EAAK7uG,KAAKmV,KAAKsK,EAAIgrF,EAAY9jE,EAC/BooE,EAAK/uG,KAAKkV,GAAGuK,EAAIgrF,EAAY9jE,EAC7BioE,EAAK5uG,KAAKmV,KAAKqlB,EACfs0E,EAAK9uG,KAAKkV,GAAGslB,KAGLA,EAAGo0E,EAAInvF,EAAGovF,IAAQr0E,EAAGs0E,EAAIrvF,EAAGsvF,OAGxCplG,IAAK,sBACL5E,MAAO,SAA6BiqG,EAAU5gE,GAC5C,MAAOpuC,MAAKivG,0BAA0BD,EAAU5gE,MAGlDzkC,IAAK,qBACL5E,MAAO,SAA4B6pG,EAAIC,EAAIC,EAAIC,EAAIG,EAAIC,GACrD,GAAIC,GAAO/oG,UAAUC,QAAU,GAAsBC,SAAjBF,UAAU,GAAmBrG,KAAKuuG,qBAAuBloG,UAAU,GAEnGgpG,EAAQrM,EAAeoM,EAAM,GAE7BX,EAAOY,EAAM,GACbX,EAAOW,EAAM,EAEjB,OAAOrvG,MAAKsvG,yBAAyBV,EAAIC,EAAIC,EAAIC,EAAIG,EAAIC,EAAIV,EAAMC,MAWrE/kG,IAAK,WACL5E,MAAO,SAAkB+oG,GACvB,GAAIyB,GAAQlpG,UAAUC,QAAU,GAAsBC,SAAjBF,UAAU,GAAmBrG,KAAKuuG,qBAAuBloG,UAAU,GAEpGmpG,EAASxM,EAAeuM,EAAO,GAE/Bd,EAAOe,EAAO,GACdd,EAAOc,EAAO,GAEd7/F,EAAIm+F,EACJ2B,IACJA,GAAI,GAAKxqG,KAAK0U,IAAI,EAAIhK,EAAG,GACzB8/F,EAAI,GAAK,EAAI9/F,EAAI1K,KAAK0U,IAAI,EAAIhK,EAAG,GACjC8/F,EAAI,GAAK,EAAIxqG,KAAK0U,IAAIhK,EAAG,IAAM,EAAIA,GACnC8/F,EAAI,GAAKxqG,KAAK0U,IAAIhK,EAAG,EACrB,IAAI6qB,GAAIi1E,EAAI,GAAKzvG,KAAKmV,KAAKqlB,EAAIi1E,EAAI,GAAKhB,EAAKj0E,EAAIi1E,EAAI,GAAKf,EAAKl0E,EAAIi1E,EAAI,GAAKzvG,KAAKkV,GAAGslB,EAChF/a,EAAIgwF,EAAI,GAAKzvG,KAAKmV,KAAKsK,EAAIgwF,EAAI,GAAKhB,EAAKhvF,EAAIgwF,EAAI,GAAKf,EAAKjvF,EAAIgwF,EAAI,GAAKzvG,KAAKkV,GAAGuK,CAEpF,QAAS+a,EAAGA,EAAG/a,EAAGA,OAIf2uF,GACND,EAA0B,WAE7BvuG,GAAQ,WAAawuG,EACrBvuG,EAAOD,QAAUA,EAAQ,YAIrB,SAASC,EAAQD,EAASM,GAY9B,QAASuyE,GAAuB3sE,GAAO,MAAOA,IAAOA,EAAI4sE,WAAa5sE,GAAQ6sE,UAAW7sE,GAEzF,QAAS8sE,GAAgBC,EAAUC,GAAe,KAAMD,YAAoBC,IAAgB,KAAM,IAAI5rE,WAAU,qCAEhH,QAAS89F,GAAUC,EAAUC,GAAc,GAA0B,kBAAfA,IAA4C,OAAfA,EAAuB,KAAM,IAAIh+F,WAAU,iEAAoEg+F,GAAeD,GAAShyF,UAAY7L,OAAOgJ,OAAO80F,GAAcA,EAAWjyF,WAAa9L,aAAepC,MAAOkgG,EAAU9xB,YAAY,EAAOE,UAAU,EAAMD,cAAc,KAAe8xB,IAAY99F,OAAO+9F,eAAiB/9F,OAAO+9F,eAAeF,EAAUC,GAAcD,EAASG,UAAYF,GAZje99F,OAAO2rE,eAAenzE,EAAS,cAC7BmF,OAAO,GAGT,IAAIiuE,GAAe,WAAe,QAASC,GAAiB/nE,EAAQrE,GAAS,IAAK,GAAIJ,GAAI,EAAGA,EAAII,EAAMP,OAAQG,IAAK,CAAE,GAAIysE,GAAarsE,EAAMJ,EAAIysE,GAAWC,WAAaD,EAAWC,aAAc,EAAOD,EAAWE,cAAe,EAAU,SAAWF,KAAYA,EAAWG,UAAW,GAAMjsE,OAAO2rE,eAAe7nE,EAAQgoE,EAAWvpE,IAAKupE,IAAiB,MAAO,UAAUJ,EAAaQ,EAAYC,GAAiJ,MAA9HD,IAAYL,EAAiBH,EAAY7/D,UAAWqgE,GAAiBC,GAAaN,EAAiBH,EAAaS,GAAqBT,MAE7hBuyB,EAAO,SAAaC,EAAIC,EAAKC,GAAqC,IAA9B,GAAIC,IAAS,EAAwBA,GAAQ,CAAE,GAAIrhG,GAASkhG,EAAIvhD,EAAWwhD,EAAKG,EAAWF,CAAKC,IAAS,EAAsB,OAAXrhG,IAAiBA,EAASmW,SAAStH,UAAW,IAAI0yF,GAAOv+F,OAAOw+F,yBAAyBxhG,EAAQ2/C,EAAW,IAAax9C,SAATo/F,EAAJ,CAA4O,GAAI,SAAWA,GAAQ,MAAOA,GAAK5gG,KAAgB,IAAI0mB,GAASk6E,EAAKhyE,GAAK,IAAeptB,SAAXklB,EAAwB,MAAoB,OAAOA,GAAOlrB,KAAKmlG,GAA/V,GAAIn6F,GAASnE,OAAOy+F,eAAezhG,EAAS,IAAe,OAAXmH,EAAmB,MAA2B+5F,GAAK/5F,EAAQg6F,EAAMxhD,EAAUyhD,EAAME,EAAUD,GAAS,EAAME,EAAOp6F,EAAShF,SAQxcmpG,EAAmBxvG,EAAoB,IAEvCyvG,EAAmBl9B,EAAuBi9B,GAE1CE,EAAsB,SAAWC,GAGnC,QAASD,GAAoB/rG,EAASm4C,EAAMmmD,GAC1CvvB,EAAgB5yE,KAAM4vG,GAEtBvK,EAAKj+F,OAAOy+F,eAAe+J,EAAoB38F,WAAY,cAAejT,MAAMO,KAAKP,KAAM6D,EAASm4C,EAAMmmD,GAkD5G,MAvDA6C,GAAU4K,EAAqBC,GAsB/B78B,EAAa48B,IACXjmG,IAAK,2BACL5E,MAAO,SAAkC6pG,EAAIC,EAAIC,EAAIC,EAAIG,EAAIC,EAAIV,EAAMC,GAErE,GAAIoB,GAAc,IACd7iE,EAAW1mC,OACXE,EAAIF,OACJoJ,EAAIpJ,OACJi0B,EAAIj0B,OACJkZ,EAAIlZ,OACJwpG,EAAQnB,EACRoB,EAAQnB,EACRY,GAAO,EAAG,EAAG,EAAG,EACpB,KAAKhpG,EAAI,EAAO,GAAJA,EAAQA,IAClBkJ,EAAI,GAAMlJ,EACVgpG,EAAI,GAAKxqG,KAAK0U,IAAI,EAAIhK,EAAG,GACzB8/F,EAAI,GAAK,EAAI9/F,EAAI1K,KAAK0U,IAAI,EAAIhK,EAAG,GACjC8/F,EAAI,GAAK,EAAIxqG,KAAK0U,IAAIhK,EAAG,IAAM,EAAIA,GACnC8/F,EAAI,GAAKxqG,KAAK0U,IAAIhK,EAAG,GACrB6qB,EAAIi1E,EAAI,GAAKb,EAAKa,EAAI,GAAKhB,EAAKj0E,EAAIi1E,EAAI,GAAKf,EAAKl0E,EAAIi1E,EAAI,GAAKX,EAC/DrvF,EAAIgwF,EAAI,GAAKZ,EAAKY,EAAI,GAAKhB,EAAKhvF,EAAIgwF,EAAI,GAAKf,EAAKjvF,EAAIgwF,EAAI,GAAKV,EAC3DtoG,EAAI,IACNwmC,EAAWjtC,KAAKiwG,mBAAmBF,EAAOC,EAAOx1E,EAAG/a,EAAGyvF,EAAIC,GAC3DW,EAAyBA,EAAX7iE,EAAyBA,EAAW6iE,GAEpDC,EAAQv1E,EACRw1E,EAAQvwF,CAGV,OAAOqwF,OAIJF,GACND,EAAiB,WAEpB/vG,GAAQ,WAAagwG,EACrB/vG,EAAOD,QAAUA,EAAQ,YAIrB,SAASC,EAAQD,EAASM,GAY9B,QAASuyE,GAAuB3sE,GAAO,MAAOA,IAAOA,EAAI4sE,WAAa5sE,GAAQ6sE,UAAW7sE,GAEzF,QAAS8sE,GAAgBC,EAAUC,GAAe,KAAMD,YAAoBC,IAAgB,KAAM,IAAI5rE,WAAU,qCAEhH,QAAS89F,GAAUC,EAAUC,GAAc,GAA0B,kBAAfA,IAA4C,OAAfA,EAAuB,KAAM,IAAIh+F,WAAU,iEAAoEg+F,GAAeD,GAAShyF,UAAY7L,OAAOgJ,OAAO80F,GAAcA,EAAWjyF,WAAa9L,aAAepC,MAAOkgG,EAAU9xB,YAAY,EAAOE,UAAU,EAAMD,cAAc,KAAe8xB,IAAY99F,OAAO+9F,eAAiB/9F,OAAO+9F,eAAeF,EAAUC,GAAcD,EAASG,UAAYF,GAZje99F,OAAO2rE,eAAenzE,EAAS,cAC7BmF,OAAO,GAGT,IAAIiuE,GAAe,WAAe,QAASC,GAAiB/nE,EAAQrE,GAAS,IAAK,GAAIJ,GAAI,EAAGA,EAAII,EAAMP,OAAQG,IAAK,CAAE,GAAIysE,GAAarsE,EAAMJ,EAAIysE,GAAWC,WAAaD,EAAWC,aAAc,EAAOD,EAAWE,cAAe,EAAU,SAAWF,KAAYA,EAAWG,UAAW,GAAMjsE,OAAO2rE,eAAe7nE,EAAQgoE,EAAWvpE,IAAKupE,IAAiB,MAAO,UAAUJ,EAAaQ,EAAYC,GAAiJ,MAA9HD,IAAYL,EAAiBH,EAAY7/D,UAAWqgE,GAAiBC,GAAaN,EAAiBH,EAAaS,GAAqBT,MAE7hBuyB,EAAO,SAAaE,EAAKC,EAAKwI,GAAqC,IAA9B,GAAIvI,IAAS,EAAwBA,GAAQ,CAAE,GAAIrhG,GAASmhG,EAAKxhD,EAAWyhD,EAAKE,EAAWsI,CAAKvI,IAAS,EAAsB,OAAXrhG,IAAiBA,EAASmW,SAAStH,UAAW,IAAI0yF,GAAOv+F,OAAOw+F,yBAAyBxhG,EAAQ2/C,EAAW,IAAax9C,SAATo/F,EAAJ,CAA6O,GAAI,SAAWA,GAAQ,MAAOA,GAAK5gG,KAAgB,IAAI0mB,GAASk6E,EAAKhyE,GAAK,IAAeptB,SAAXklB,EAAwB,MAAoB,OAAOA,GAAOlrB,KAAKmlG,GAAhW,GAAIn6F,GAASnE,OAAOy+F,eAAezhG,EAAS,IAAe,OAAXmH,EAAmB,MAA2Bg6F,GAAMh6F,EAAQi6F,EAAMzhD,EAAUiqD,EAAMtI,EAAUD,GAAS,EAAME,EAAOp6F,EAAShF,SAQ3c2pG,EAAahwG,EAAoB,IAEjCiwG,EAAa19B,EAAuBy9B,GAEpCE,EAAiB,SAAWC,GAG9B,QAASD,GAAevsG,EAASm4C,EAAMmmD,GACrCvvB,EAAgB5yE,KAAMowG,GAEtB/K,EAAKj+F,OAAOy+F,eAAeuK,EAAen9F,WAAY,cAAejT,MAAMO,KAAKP,KAAM6D,EAASm4C,EAAMmmD,GA2GvG,MAhHA6C,GAAUoL,EAAgBC,GAsB1Br9B,EAAao9B,IACXzmG,IAAK,4BACL5E,MAAO,SAAmCiqG,EAAU5gE,GAClD,GAMItB,GAAKka,EAAOw7C,EAAkB8N,EAAiBC,EAN/C1D,EAAUxmG,UAAUC,QAAU,GAAsBC,SAAjBF,UAAU,GAAmBrG,KAAKuuG,qBAAuBloG,UAAU,GAEtG8K,EAAgB,GAChBC,EAAY,EACZC,EAAM,EACNC,EAAO,EAEP0f,EAAY,GACZwH,EAAOx4B,KAAKkV,GACZC,GAAO,CAMX,KALI65F,EAAS3uG,KAAOL,KAAKmV,KAAK9U,KAC5Bm4B,EAAOx4B,KAAKmV,KACZA,GAAO,GAGK7D,GAAPD,GAA2BF,EAAZC,GAA2B,CAC/C,GAAIG,GAAwB,IAAdF,EAAMC,EAOpB,IALAw7B,EAAM9sC,KAAKitG,SAAS17F,EAAQs7F,GAC5B7lD,EAAQ/hD,KAAKyjD,MAAMlwB,EAAK/Y,EAAIqtB,EAAIrtB,EAAG+Y,EAAKgC,EAAIsS,EAAItS,GAChDgoE,EAAmBhqE,EAAKgqE,iBAAiBp0D,EAAK4Y,GAC9CspD,EAAkBrrG,KAAKoxC,KAAKpxC,KAAK0U,IAAImzB,EAAItS,EAAIhC,EAAKgC,EAAG,GAAKv1B,KAAK0U,IAAImzB,EAAIrtB,EAAI+Y,EAAK/Y,EAAG,IACnF8wF,EAAa/N,EAAmB8N,EAC5BrrG,KAAK6R,IAAIy5F,GAAcv/E,EACzB,KACsB,GAAbu/E,EAEHp7F,KAAS,EACX9D,EAAME,EAEND,EAAOC,EAGL4D,KAAS,EACX7D,EAAOC,EAEPF,EAAME,EAIZH,IAIF,MAFA07B,GAAIn9B,EAAI4B,EAEDu7B,KAgBTnjC,IAAK,2BACL5E,MAAO,SAAkC6pG,EAAIC,EAAIC,EAAIC,EAAIG,EAAIC,EAAI1C,GAE/D,GAAIqD,GAAc,IACd7iE,EAAW1mC,OACXE,EAAIF,OACJoJ,EAAIpJ,OACJi0B,EAAIj0B,OACJkZ,EAAIlZ,OACJwpG,EAAQnB,EACRoB,EAAQnB,CACZ,KAAKpoG,EAAI,EAAO,GAAJA,EAAQA,IAClBkJ,EAAI,GAAMlJ,EACV+zB,EAAIv1B,KAAK0U,IAAI,EAAIhK,EAAG,GAAKi/F,EAAK,EAAIj/F,GAAK,EAAIA,GAAK88F,EAAIjyE,EAAIv1B,KAAK0U,IAAIhK,EAAG,GAAKm/F,EACzErvF,EAAIxa,KAAK0U,IAAI,EAAIhK,EAAG,GAAKk/F,EAAK,EAAIl/F,GAAK,EAAIA,GAAK88F,EAAIhtF,EAAIxa,KAAK0U,IAAIhK,EAAG,GAAKo/F,EACrEtoG,EAAI,IACNwmC,EAAWjtC,KAAKiwG,mBAAmBF,EAAOC,EAAOx1E,EAAG/a,EAAGyvF,EAAIC,GAC3DW,EAAyBA,EAAX7iE,EAAyBA,EAAW6iE,GAEpDC,EAAQv1E,EACRw1E,EAAQvwF,CAGV,OAAOqwF,OAIJM,GACND,EAAW,WAEdvwG,GAAQ,WAAawwG,EACrBvwG,EAAOD,QAAUA,EAAQ,YAIrB,SAASC,EAAQD,EAASM,GAY9B,QAAS0yE,GAAgBC,EAAUC,GAAe,KAAMD,YAAoBC,IAAgB,KAAM,IAAI5rE,WAAU,qCARhHE,OAAO2rE,eAAenzE,EAAS,cAC7BmF,OAAO,GAGT,IAAIi+F,GAAiB,WAAe,QAASC,GAAc76F,EAAK3B,GAAK,GAAIy8F,MAAeC,GAAK,EAAUzuF,GAAK,EAAW0uF,EAAK78F,MAAW,KAAM,IAAK,GAAiC88F,GAA7B/tF,EAAKlN,EAAIk7F,OAAOjhD,cAAmB8gD,GAAME,EAAK/tF,EAAG+B,QAAQo+C,QAAoBytC,EAAK17F,KAAK67F,EAAGt+F,QAAY0B,GAAKy8F,EAAK58F,SAAWG,GAA3D08F,GAAK,IAAoE,MAAOntB,GAAOthE,GAAK,EAAM0uF,EAAKptB,EAAO,QAAU,KAAWmtB,GAAM7tF,EAAG,WAAWA,EAAG,YAAe,QAAU,GAAIZ,EAAI,KAAM0uF,IAAQ,MAAOF,GAAQ,MAAO,UAAU96F,EAAK3B,GAAK,GAAIK,MAAMC,QAAQqB,GAAQ,MAAOA,EAAY,IAAIk7F,OAAOjhD,WAAYj7C,QAAOgB,GAAQ,MAAO66F,GAAc76F,EAAK3B,EAAa,MAAM,IAAIS,WAAU,4DAEnlB8rE,EAAe,WAAe,QAASC,GAAiB/nE,EAAQrE,GAAS,IAAK,GAAIJ,GAAI,EAAGA,EAAII,EAAMP,OAAQG,IAAK,CAAE,GAAIysE,GAAarsE,EAAMJ,EAAIysE,GAAWC,WAAaD,EAAWC,aAAc,EAAOD,EAAWE,cAAe,EAAU,SAAWF,KAAYA,EAAWG,UAAW,GAAMjsE,OAAO2rE,eAAe7nE,EAAQgoE,EAAWvpE,IAAKupE,IAAiB,MAAO,UAAUJ,EAAaQ,EAAYC,GAAiJ,MAA9HD,IAAYL,EAAiBH,EAAY7/D,UAAWqgE,GAAiBC,GAAaN,EAAiBH,EAAaS,GAAqBT,MAI7hBnyE,EAAOT,EAAoB,GAE3BswG,EAAW,WACb,QAASA,GAAS3sG,EAASm4C,EAAMmmD,GAC/BvvB,EAAgB5yE,KAAMwwG,GAEtBxwG,KAAKg8C,KAAOA,EACZh8C,KAAKmiG,YAAcA,EACnBniG,KAAK6D,WACL7D,KAAK47B,WAAW/3B,GAChB7D,KAAKwrG,YAAa,EAClBxrG,KAAKyM,SACLzM,KAAKqqG,eAAiB,EACtBrqG,KAAKoqG,WAAa,IA0iBpB,MAviBAp3B,GAAaw9B,IACX7mG,IAAK,UACL5E,MAAO,WACL/E,KAAKmV,KAAOnV,KAAKg8C,KAAK65C,MAAM71F,KAAK6D,QAAQsR,MACzCnV,KAAKkV,GAAKlV,KAAKg8C,KAAK65C,MAAM71F,KAAK6D,QAAQqR,OAGzCvL,IAAK,UACL5E,MAAO,WACL,OAAO,KAGT4E,IAAK,aACL5E,MAAO,SAAoBlB,GACzB7D,KAAK6D,QAAUA,EACf7D,KAAKmV,KAAOnV,KAAKg8C,KAAK65C,MAAM71F,KAAK6D,QAAQsR,MACzCnV,KAAKkV,GAAKlV,KAAKg8C,KAAK65C,MAAM71F,KAAK6D,QAAQqR,IACvClV,KAAKK,GAAKL,KAAK6D,QAAQxD,MAWzBsJ,IAAK,WACL5E,MAAO,SAAkBqpC,EAAK+0B,EAAU/0D,GAEtCggC,EAAIY,YAAchvC,KAAKywG,SAASriE,EAAK+0B,EAAU/0D,GAC/CggC,EAAIO,UAAY3uC,KAAK0wG,aAAavtC,EAAU/0D,EAC5C,IAAIq+F,GAAMlmG,MAMV,OAJEkmG,GADEzsG,KAAK6D,QAAQqjG,UAAW,EACpBlnG,KAAK2wG,gBAAgBviE,GAErBpuC,KAAK4wG,UAAUxiE,MAKzBzkC,IAAK,YACL5E,MAAO,SAAmBqpC,GACxB,GAAIq+D,GAAMlmG,MACV,IAAIvG,KAAKmV,MAAQnV,KAAKkV,GAEpBu3F,EAAMzsG,KAAK6wG,MAAMziE,OACZ,CACL,GAAI0iE,GAAkB9wG,KAAK+wG,eAAe3iE,GAEtC4iE,EAAmBhO,EAAe8N,EAAiB,GAEnDt2E,EAAIw2E,EAAiB,GACrBvxF,EAAIuxF,EAAiB,GACrBv+D,EAASu+D,EAAiB,EAE9BhxG,MAAKixG,QAAQ7iE,EAAK5T,EAAG/a,EAAGgzB,GAE1B,MAAOg6D,MAGT9iG,IAAK,kBACL5E,MAAO,SAAyBqpC,GAC9B,GAAIq+D,GAAMlmG,MACV6nC,GAAI4D,QAAU,OACd,IAAIk/D,IAAW,EAAG,EAMlB,IALIpqG,MAAMC,QAAQ/G,KAAK6D,QAAQqjG,WAAY,IACzCgK,EAAUlxG,KAAK6D,QAAQqjG,QAID3gG,SAApB6nC,EAAI64D,YAA2B,CAQjC,GAPA74D,EAAIo4D,OAGJp4D,EAAI64D,YAAYiK,GAChB9iE,EAAI+iE,eAAiB,EAGjBnxG,KAAKmV,MAAQnV,KAAKkV,GAEpBu3F,EAAMzsG,KAAK6wG,MAAMziE,OACZ,CACL,GAAIgjE,GAAkBpxG,KAAK+wG,eAAe3iE,GAEtCijE,EAAmBrO,EAAeoO,EAAiB,GAEnD52E,EAAI62E,EAAiB,GACrB5xF,EAAI4xF,EAAiB,GACrB5+D,EAAS4+D,EAAiB,EAE9BrxG,MAAKixG,QAAQ7iE,EAAK5T,EAAG/a,EAAGgzB,GAI1BrE,EAAI64D,aAAa,IACjB74D,EAAI+iE,eAAiB,EACrB/iE,EAAIu4D,cACC,CAEL,GAAI3mG,KAAKmV,MAAQnV,KAAKkV,GAEpBk5B,EAAIkjE,WAAWtxG,KAAKmV,KAAKqlB,EAAGx6B,KAAKmV,KAAKsK,EAAGzf,KAAKkV,GAAGslB,EAAGx6B,KAAKkV,GAAGuK,EAAGyxF,OAC1D,CACL,GAAIK,GAAkBvxG,KAAK+wG,eAAe3iE,GAEtCojE,EAAmBxO,EAAeuO,EAAiB,GAEnD/2E,EAAIg3E,EAAiB,GACrB/xF,EAAI+xF,EAAiB,GACrB/+D,EAAS++D,EAAiB,EAE9BxxG,MAAKixG,QAAQ7iE,EAAK5T,EAAG/a,EAAGgzB,GAG1BzyC,KAAKsmG,aAAal4D,GAElBA,EAAI7J,SAGJvkC,KAAKumG,cAAcn4D,GAErB,MAAOq+D,MAGT9iG,IAAK,qBACL5E,MAAO,SAA4BiqG,EAAU5gE,EAAKvqC,GAChD,MAAI7D,MAAKmV,MAAQnV,KAAKkV,GACblV,KAAKyxG,oBAAoBzC,EAAU5gE,EAAKvqC,GAExC7D,KAAK0xG,0BAA0B1C,EAAU5gE,EAAKvqC,MAIzD8F,IAAK,sBACL5E,MAAO,SAA6BqpC,GAClC,GAAIj5B,MACAD,IACJ,IAAIlV,KAAKmV,MAAQnV,KAAKkV,GACpBC,EAAOnV,KAAKyxG,oBAAoBzxG,KAAKmV,KAAMi5B,GAC3Cl5B,EAAKlV,KAAKyxG,oBAAoBzxG,KAAKkV,GAAIk5B,OAClC,CACL,GAAIujE,GAAkB3xG,KAAK+wG,eAAe3iE,GAEtCwjE,EAAmB5O,EAAe2O,EAAiB,GAEnDn3E,EAAIo3E,EAAiB,GACrBnyF,EAAImyF,EAAiB,EACZA,GAAiB,EAE9Bz8F,GAAOnV,KAAK0xG,0BAA0B1xG,KAAKmV,KAAMi5B,GAAO5T,EAAGA,EAAG/a,EAAGA,EAAGpO,IAAK,IAAMC,KAAM,GAAK2X,UAAW,KACrG/T,EAAKlV,KAAK0xG,0BAA0B1xG,KAAKmV,KAAMi5B,GAAO5T,EAAGA,EAAG/a,EAAGA,EAAGpO,IAAK,GAAKC,KAAM,GAAK2X,UAAW,IAEpG,OAAS9T,KAAMA,EAAMD,GAAIA,MAG3BvL,IAAK,iBACL5E,MAAO,SAAwBqpC,GAC7B,GAAI5T,GAAIj0B,OACJkZ,EAAIlZ,OACJiyB,EAAOx4B,KAAKmV,KACZs9B,EAASzyC,KAAK6D,QAAQymG,iBAgB1B,OAdY/jG,UAAR6nC,GACuB7nC,SAArBiyB,EAAKgmE,MAAMpjE,OACb5C,EAAKgmE,MAAMoE,OAAOx0D,GAKlB5V,EAAKgmE,MAAMpjE,MAAQ5C,EAAKgmE,MAAMnjE,QAChCb,EAAIhC,EAAKgC,EAAuB,GAAnBhC,EAAKgmE,MAAMpjE,MACxB3b,EAAI+Y,EAAK/Y,EAAIgzB,IAEbjY,EAAIhC,EAAKgC,EAAIiY,EACbhzB,EAAI+Y,EAAK/Y,EAAwB,GAApB+Y,EAAKgmE,MAAMnjE,SAElBb,EAAG/a,EAAGgzB,MAahB9oC,IAAK,iBACL5E,MAAO,SAAwBy1B,EAAG/a,EAAGgzB,EAAQq7D,GAC3C,GAAI9mD,GAAqB,EAAb8mD,EAAiB7oG,KAAK0tC,EAClC,QACEnY,EAAGA,EAAIiY,EAASxtC,KAAKohC,IAAI2gB,GACzBvnC,EAAGA,EAAIgzB,EAASxtC,KAAKihC,IAAI8gB,OAa7Br9C,IAAK,4BACL5E,MAAO,SAAmCyzB,EAAM4V,EAAKvqC,GAkBnD,IAjBA,GAAI22B,GAAI32B,EAAQ22B,EACZ/a,EAAI5b,EAAQ4b,EACZpO,EAAMxN,EAAQwN,IACdC,EAAOzN,EAAQyN,KACf2X,EAAYplB,EAAQolB,UAEpB9X,EAAgB,GAChBC,EAAY,EACZqhC,EAASzyC,KAAK6D,QAAQymG,kBACtBx9D,EAAMvmC,OACNygD,EAAQzgD,OACRi8F,EAAmBj8F,OACnB+pG,EAAkB/pG,OAClBgqG,EAAahqG,OACbyqB,EAAY,IACZzf,EAAwB,IAAdF,EAAMC,GAENA,GAAPD,GAA2BF,EAAZC,IACpBG,EAAwB,IAAdF,EAAMC,GAEhBw7B,EAAM9sC,KAAKotG,eAAe5yE,EAAG/a,EAAGgzB,EAAQlhC,GACxCy1C,EAAQ/hD,KAAKyjD,MAAMlwB,EAAK/Y,EAAIqtB,EAAIrtB,EAAG+Y,EAAKgC,EAAIsS,EAAItS,GAChDgoE,EAAmBhqE,EAAKgqE,iBAAiBp0D,EAAK4Y,GAC9CspD,EAAkBrrG,KAAKoxC,KAAKpxC,KAAK0U,IAAImzB,EAAItS,EAAIhC,EAAKgC,EAAG,GAAKv1B,KAAK0U,IAAImzB,EAAIrtB,EAAI+Y,EAAK/Y,EAAG,IACnF8wF,EAAa/N,EAAmB8N,IAC5BrrG,KAAK6R,IAAIy5F,GAAcv/E,KAEhBu/E,EAAa,EAEhBtnF,EAAY,EACd5X,EAAME,EAEND,EAAOC,EAGL0X,EAAY,EACd3X,EAAOC,EAEPF,EAAME,EAGZH,GAIF,OAFA07B,GAAIn9B,EAAI4B,EAEDu7B,KAUTnjC,IAAK,eACL5E,MAAO,SAAsBo+D,EAAU/0D,GACrC,MAAI+0D,MAAa,EACRl+D,KAAKJ,IAAI7E,KAAKqqG,eAAgB,GAAMrqG,KAAKg8C,KAAK86C,KAAK9xF,OAEtDoJ,KAAU,EACLnJ,KAAKJ,IAAI7E,KAAKoqG,WAAY,GAAMpqG,KAAKg8C,KAAK86C,KAAK9xF,OAE/CC,KAAKJ,IAAI7E,KAAK6D,QAAQu3B,MAAO,GAAMp7B,KAAKg8C,KAAK86C,KAAK9xF,UAK/D2E,IAAK,WACL5E,MAAO,SAAkBqpC,EAAK+0B,EAAU/0D,GACtC,GAAIyjG,GAAe7xG,KAAK6D,QAAQ4I,KAChC,IAAIolG,EAAapvD,WAAY,EAAO,CAElC,GAA6B,SAAzBovD,EAAapvD,SAAsBziD,KAAKmV,KAAK9U,KAAOL,KAAKkV,GAAG7U,GAAI,CAClE,GAAIyxG,GAAM1jE,EAAI2jE,qBAAqB/xG,KAAKmV,KAAKqlB,EAAGx6B,KAAKmV,KAAKsK,EAAGzf,KAAKkV,GAAGslB,EAAGx6B,KAAKkV,GAAGuK,GAC5EuyF,EAAYzrG,OACZ0rG,EAAU1rG,MAgBd,OAfAyrG,GAAYhyG,KAAKmV,KAAKtR,QAAQ4I,MAAM0B,UAAUD,OAC9C+jG,EAAUjyG,KAAKkV,GAAGrR,QAAQ4I,MAAM0B,UAAUD,OAEtClO,KAAKmV,KAAKguD,YAAa,GAASnjE,KAAKkV,GAAGiuD,YAAa,GACvD6uC,EAAYrxG,EAAK6L,gBAAgBxM,KAAKmV,KAAKtR,QAAQ4I,MAAMyB,OAAQlO,KAAK6D,QAAQ4I,MAAMC,SACpFulG,EAAUtxG,EAAK6L,gBAAgBxM,KAAKkV,GAAGrR,QAAQ4I,MAAMyB,OAAQlO,KAAK6D,QAAQ4I,MAAMC,UACvE1M,KAAKmV,KAAKguD,YAAa,GAAQnjE,KAAKkV,GAAGiuD,YAAa,EAC7D8uC,EAAUjyG,KAAKkV,GAAGrR,QAAQ4I,MAAMyB,OACvBlO,KAAKmV,KAAKguD,YAAa,GAASnjE,KAAKkV,GAAGiuD,YAAa,IAC9D6uC,EAAYhyG,KAAKmV,KAAKtR,QAAQ4I,MAAMyB,QAEtC4jG,EAAII,aAAa,EAAGF,GACpBF,EAAII,aAAa,EAAGD,GAGbH,EAGL9xG,KAAKwrG,cAAe,IACO,OAAzBqG,EAAapvD,SACfziD,KAAKyM,MAAM0B,UAAYnO,KAAKkV,GAAGrR,QAAQ4I,MAAM0B,UAAUD,OACvDlO,KAAKyM,MAAM2B,MAAQpO,KAAKkV,GAAGrR,QAAQ4I,MAAM2B,MAAMF,OAC/ClO,KAAKyM,MAAMA,MAAQ9L,EAAK6L,gBAAgBxM,KAAKkV,GAAGrR,QAAQ4I,MAAMyB,OAAQ2jG,EAAanlG,WAGnF1M,KAAKyM,MAAM0B,UAAYnO,KAAKmV,KAAKtR,QAAQ4I,MAAM0B,UAAUD,OACzDlO,KAAKyM,MAAM2B,MAAQpO,KAAKmV,KAAKtR,QAAQ4I,MAAM2B,MAAMF,OACjDlO,KAAKyM,MAAMA,MAAQ9L,EAAK6L,gBAAgBxM,KAAKmV,KAAKtR,QAAQ4I,MAAMyB,OAAQ2jG,EAAanlG,eAGhF1M,MAAKwrG,cAAe,IAC7BxrG,KAAKyM,MAAM0B,UAAY0jG,EAAa1jG,UACpCnO,KAAKyM,MAAM2B,MAAQyjG,EAAazjG,MAChCpO,KAAKyM,MAAMA,MAAQ9L,EAAK6L,gBAAgBqlG,EAAaplG,MAAOolG,EAAanlG,SAM3E,OAFA1M,MAAKwrG,YAAa,EAEdroC,KAAa,EACRnjE,KAAKyM,MAAM0B,UACTC,KAAU,EACZpO,KAAKyM,MAAM2B,MAEXpO,KAAKyM,MAAMA,SAatB9C,IAAK,UACL5E,MAAO,SAAiBqpC,EAAK5T,EAAG/a,EAAGgzB,GAEjCzyC,KAAKsmG,aAAal4D,GAGlBA,EAAIa,YACJb,EAAIsE,IAAIlY,EAAG/a,EAAGgzB,EAAQ,EAAG,EAAIxtC,KAAK0tC,IAAI,GACtCvE,EAAI7J,SAGJvkC,KAAKumG,cAAcn4D,MAgBrBzkC,IAAK,oBACL5E,MAAO,SAA2B6pG,EAAIC,EAAIC,EAAIC,EAAIG,EAAIC,EAAI1C,GAExD,GAAIzhG,GAAc,CAClB,IAAIhL,KAAKmV,MAAQnV,KAAKkV,GACpBlK,EAAchL,KAAKmyG,mBAAmBvD,EAAIC,EAAIC,EAAIC,EAAIG,EAAIC,EAAI1C,OACzD,CACL,GAAI2F,GAAkBpyG,KAAK+wG,iBAEvBsB,EAAmBrP,EAAeoP,EAAiB,GAEnD53E,EAAI63E,EAAiB,GACrB5yF,EAAI4yF,EAAiB,GACrB5/D,EAAS4/D,EAAiB,GAE1B3rE,EAAKlM,EAAI00E,EACTvoE,EAAKlnB,EAAI0vF,CACbnkG,GAAc/F,KAAK6R,IAAI7R,KAAKoxC,KAAK3P,EAAKA,EAAKC,EAAKA,GAAM8L,GAGxD,MAAIzyC,MAAKmiG,YAAYtnE,KAAKlyB,KAAOumG,GAAMlvG,KAAKmiG,YAAYtnE,KAAKlyB,KAAO3I,KAAKmiG,YAAYtnE,KAAKO,MAAQ8zE,GAAMlvG,KAAKmiG,YAAYtnE,KAAKhyB,IAAMsmG,GAAMnvG,KAAKmiG,YAAYtnE,KAAKhyB,IAAM7I,KAAKmiG,YAAYtnE,KAAKQ,OAAS8zE,EAC5L,EAEAnkG,KAIXrB,IAAK,qBACL5E,MAAO,SAA4B6pG,EAAIC,EAAIC,EAAIC,EAAIG,EAAIC,GACrD,GAAImD,GAAKxD,EAAKF,EACV2D,EAAKxD,EAAKF,EACV2D,EAAYF,EAAKA,EAAKC,EAAKA,EAC3BE,IAAMvD,EAAKN,GAAM0D,GAAMnD,EAAKN,GAAM0D,GAAMC,CAExCC,GAAI,EACNA,EAAI,EACS,EAAJA,IACTA,EAAI,EAGN,IAAIj4E,GAAIo0E,EAAK6D,EAAIH,EACb7yF,EAAIovF,EAAK4D,EAAIF,EACb7rE,EAAKlM,EAAI00E,EACTvoE,EAAKlnB,EAAI0vF,CAQb,OAAOlqG,MAAKoxC,KAAK3P,EAAKA,EAAKC,EAAKA,MAUlCh9B,IAAK,gBACL5E,MAAO,SAAuBqpC,EAAK9C,EAAUuhE,EAAS1pC,EAAU/0D,GAE9DggC,EAAIY,YAAchvC,KAAKywG,SAASriE,EAAK+0B,EAAU/0D,GAC/CggC,EAAIiB,UAAYjB,EAAIY,YACpBZ,EAAIO,UAAY3uC,KAAK0wG,aAAavtC,EAAU/0D,EAG5C,IAAI44C,GAAQzgD,OACRD,EAASC,OACTmsG,EAAWnsG,OACXwmG,EAAQxmG,OACRymG,EAAQzmG,OACRosG,EAAcpsG,OACd4jG,EAAc5jG,MAmBlB,IAjBiB,SAAb+kC,GACFyhE,EAAQ/sG,KAAKmV,KACb63F,EAAQhtG,KAAKkV,GACby9F,EAAc,GACdxI,EAAcnqG,KAAK6D,QAAQqmG,OAAO/0F,KAAKg1F,aACjB,OAAb7+D,GACTyhE,EAAQ/sG,KAAKkV,GACb83F,EAAQhtG,KAAKmV,KACbw9F,GAAe,GACfxI,EAAcnqG,KAAK6D,QAAQqmG,OAAOh1F,GAAGi1F,cAErC4C,EAAQ/sG,KAAKkV,GACb83F,EAAQhtG,KAAKmV,KACbg1F,EAAcnqG,KAAK6D,QAAQqmG,OAAO34F,OAAO44F,aAIvC4C,GAASC,EAAO,CAClB,GAAiB,WAAb1hE,EAEF,GAAItrC,KAAK6D,QAAQ0mG,OAAO15F,WAAY,EAAM,CACxC6hG,EAAW1yG,KAAK4yG,mBAAmB7F,EAAO3+D,GAAOq+D,IAAKI,GACtD,IAAIgG,GAAW7yG,KAAKitG,SAAShoG,KAAKJ,IAAI,EAAKI,KAAKL,IAAI,EAAK8tG,EAAS/iG,EAAIgjG,IAAe9F,EACrF7lD,GAAQ/hD,KAAKyjD,MAAMgqD,EAASjzF,EAAIozF,EAASpzF,EAAGizF,EAASl4E,EAAIq4E,EAASr4E,OAElEwsB,GAAQ/hD,KAAKyjD,MAAMqkD,EAAMttF,EAAIutF,EAAMvtF,EAAGstF,EAAMvyE,EAAIwyE,EAAMxyE,GACtDk4E,EAAW1yG,KAAK4yG,mBAAmB7F,EAAO3+D,OAG5C4Y,GAAQ/hD,KAAKyjD,MAAMqkD,EAAMttF,EAAIutF,EAAMvtF,EAAGstF,EAAMvyE,EAAIwyE,EAAMxyE,GACtDk4E,EAAW1yG,KAAKitG,SAAS,GAAKJ,EAGhCvmG,IAAU,GAAK,EAAItG,KAAK6D,QAAQu3B,OAAS+uE,EACzC/7D,EAAI0kE,MAAMJ,EAASl4E,EAAGk4E,EAASjzF,EAAGunC,EAAO1gD,GAGzCtG,KAAKsmG,aAAal4D,GAClBA,EAAI9J,OAGJtkC,KAAKumG,cAAcn4D,GACnBA,EAAI7J,aACC,CAEL,GAAIwuE,GAASxsG,OACTo0B,EAAQp0B,OAERysG,EAAkBhzG,KAAK+wG,eAAe3iE,GAEtC6kE,EAAmBjQ,EAAegQ,EAAiB,GAEnDx4E,EAAIy4E,EAAiB,GACrBxzF,EAAIwzF,EAAiB,GACrBxgE,EAASwgE,EAAiB,EAEb,UAAb3nE,GACF3Q,EAAQ36B,KAAK4yG,mBAAmB5yG,KAAKmV,KAAMi5B,GAAO5T,EAAGA,EAAG/a,EAAGA,EAAGpO,IAAK,IAAMC,KAAM,GAAK2X,UAAW,KAC/F8pF,EAAmB,GAAVp4E,EAAMhrB,EAAS1K,KAAK0tC,GAAK,IAAM1tC,KAAK0tC,GAAK,GAAM1tC,KAAK0tC,IACvC,OAAbrH,GACT3Q,EAAQ36B,KAAK4yG,mBAAmB5yG,KAAKmV,KAAMi5B,GAAO5T,EAAGA,EAAG/a,EAAGA,EAAGpO,IAAK,GAAKC,KAAM,EAAK2X,UAAW,IAC9F8pF,EAAmB,GAAVp4E,EAAMhrB,EAAS1K,KAAK0tC,GAAK,IAAM1tC,KAAK0tC,GAAK,IAAM1tC,KAAK0tC,KAE7DhY,EAAQ36B,KAAKotG,eAAe5yE,EAAG/a,EAAGgzB,EAAQ,MAC1CsgE,EAAS,mBAIX,IAAIG,IAAW,GAAK,EAAIlzG,KAAK6D,QAAQu3B,OAAS+uE,CAC9C/7D,GAAI0kE,MAAMn4E,EAAMH,EAAGG,EAAMlb,EAAGszF,EAAQG,GAGpClzG,KAAKsmG,aAAal4D,GAClBA,EAAI9J,OAGJtkC,KAAKumG,cAAcn4D,GACnBA,EAAI7J,aAIR56B,IAAK,eACL5E,MAAO,SAAsBqpC,GACvBpuC,KAAK6D,QAAQ06F,OAAO1tF,WAAY,IAClCu9B,EAAIy4D,YAAc,kBAClBz4D,EAAI04D,WAAa9mG,KAAK6D,QAAQ06F,OAAO1jE,KACrCuT,EAAI24D,cAAgB/mG,KAAK6D,QAAQ06F,OAAO/jE,EACxC4T,EAAI44D,cAAgBhnG,KAAK6D,QAAQ06F,OAAO9+E,MAI5C9V,IAAK,gBACL5E,MAAO,SAAuBqpC,GACxBpuC,KAAK6D,QAAQ06F,OAAO1tF,WAAY,IAClCu9B,EAAIy4D,YAAc,gBAClBz4D,EAAI04D,WAAa,EACjB14D,EAAI24D,cAAgB,EACpB34D,EAAI44D,cAAgB,OAKnBwJ,IAGT5wG,GAAQ,WAAa4wG,EACrB3wG,EAAOD,QAAUA,EAAQ,YAIrB,SAASC,EAAQD,EAASM,GAY9B,QAASuyE,GAAuB3sE,GAAO,MAAOA,IAAOA,EAAI4sE,WAAa5sE,GAAQ6sE,UAAW7sE,GAEzF,QAAS8sE,GAAgBC,EAAUC,GAAe,KAAMD,YAAoBC,IAAgB,KAAM,IAAI5rE,WAAU,qCAEhH,QAAS89F,GAAUC,EAAUC,GAAc,GAA0B,kBAAfA,IAA4C,OAAfA,EAAuB,KAAM,IAAIh+F,WAAU,iEAAoEg+F,GAAeD,GAAShyF,UAAY7L,OAAOgJ,OAAO80F,GAAcA,EAAWjyF,WAAa9L,aAAepC,MAAOkgG,EAAU9xB,YAAY,EAAOE,UAAU,EAAMD,cAAc,KAAe8xB,IAAY99F,OAAO+9F,eAAiB/9F,OAAO+9F,eAAeF,EAAUC,GAAcD,EAASG,UAAYF,GAZje99F,OAAO2rE,eAAenzE,EAAS,cAC7BmF,OAAO,GAGT,IAAIiuE,GAAe,WAAe,QAASC,GAAiB/nE,EAAQrE,GAAS,IAAK,GAAIJ,GAAI,EAAGA,EAAII,EAAMP,OAAQG,IAAK,CAAE,GAAIysE,GAAarsE,EAAMJ,EAAIysE,GAAWC,WAAaD,EAAWC,aAAc,EAAOD,EAAWE,cAAe,EAAU,SAAWF,KAAYA,EAAWG,UAAW,GAAMjsE,OAAO2rE,eAAe7nE,EAAQgoE,EAAWvpE,IAAKupE,IAAiB,MAAO,UAAUJ,EAAaQ,EAAYC,GAAiJ,MAA9HD,IAAYL,EAAiBH,EAAY7/D,UAAWqgE,GAAiBC,GAAaN,EAAiBH,EAAaS,GAAqBT,MAE7hBuyB,EAAO,SAAaC,EAAIC,EAAKC,GAAqC,IAA9B,GAAIC,IAAS,EAAwBA,GAAQ,CAAE,GAAIrhG,GAASkhG,EAAIvhD,EAAWwhD,EAAKG,EAAWF,CAAKC,IAAS,EAAsB,OAAXrhG,IAAiBA,EAASmW,SAAStH,UAAW,IAAI0yF,GAAOv+F,OAAOw+F,yBAAyBxhG,EAAQ2/C,EAAW,IAAax9C,SAATo/F,EAAJ,CAA4O,GAAI,SAAWA,GAAQ,MAAOA,GAAK5gG,KAAgB,IAAI0mB,GAASk6E,EAAKhyE,GAAK,IAAeptB,SAAXklB,EAAwB,MAAoB,OAAOA,GAAOlrB,KAAKmlG,GAA/V,GAAIn6F,GAASnE,OAAOy+F,eAAezhG,EAAS,IAAe,OAAXmH,EAAmB,MAA2B+5F,GAAK/5F,EAAQg6F,EAAMxhD,EAAUyhD,EAAME,EAAUD,GAAS,EAAME,EAAOp6F,EAAShF,SAQxc4sG,EAAsBjzG,EAAoB,IAE1CkzG,EAAuB3gC,EAAuB0gC,GAE9CE,EAAoB,SAAWxD,GAGjC,QAASwD,GAAkBxvG,EAASm4C,EAAMmmD,GACxC,GAAIrjD,GAAQ9+C,IAEZ4yE,GAAgB5yE,KAAMqzG,GAGtBhO,EAAKj+F,OAAOy+F,eAAewN,EAAkBpgG,WAAY,cAAejT,MAAMO,KAAKP,KAAM6D,EAASm4C,EAAMmmD,GACxGniG,KAAKszG,eAAiB,WACpBx0D,EAAMy0D,sBAERvzG,KAAKg8C,KAAKE,QAAQlgB,GAAG,yBAA0Bh8B,KAAKszG,gBAiJtD,MA7JAtO,GAAUqO,EAAmBxD,GAe7B78B,EAAaqgC,IACX1pG,IAAK,aACL5E,MAAO,SAAoBlB,GAEzB,GAAI2vG,IAAgB,CAChBxzG,MAAK6D,QAAQm0E,UAAYn0E,EAAQm0E,UACnCw7B,GAAgB,GAIlBxzG,KAAK6D,QAAUA,EACf7D,KAAKK,GAAKL,KAAK6D,QAAQxD,GACvBL,KAAKmV,KAAOnV,KAAKg8C,KAAK65C,MAAM71F,KAAK6D,QAAQsR,MACzCnV,KAAKkV,GAAKlV,KAAKg8C,KAAK65C,MAAM71F,KAAK6D,QAAQqR,IAGvClV,KAAKyzG,mBACLzzG,KAAKqrG,UAGDmI,KAAkB,IACpBxzG,KAAKysG,IAAI7wE,YAAao8C,QAASh4E,KAAK6D,QAAQm0E,UAC5Ch4E,KAAKuzG,yBAIT5pG,IAAK,UACL5E,MAAO,WACL/E,KAAKmV,KAAOnV,KAAKg8C,KAAK65C,MAAM71F,KAAK6D,QAAQsR,MACzCnV,KAAKkV,GAAKlV,KAAKg8C,KAAK65C,MAAM71F,KAAK6D,QAAQqR,IACrB3O,SAAdvG,KAAKmV,MAAkC5O,SAAZvG,KAAKkV,IAAoBlV,KAAK6D,QAAQm0E,WAAY,EAC/Eh4E,KAAKysG,IAAI7wE,YAAao8C,SAAS,IAG3Bh4E,KAAKmV,KAAK9U,KAAOL,KAAKkV,GAAG7U,GAC3BL,KAAKysG,IAAI7wE,YAAao8C,SAAS,IAE/Bh4E,KAAKysG,IAAI7wE,YAAao8C,SAAS,OAUrCruE,IAAK,UACL5E,MAAO,WAEL,MADA/E,MAAKg8C,KAAKE,QAAQ/f,IAAI,yBAA0Bn8B,KAAKszG,gBACpC/sG,SAAbvG,KAAKysG,WACAzsG,MAAKg8C,KAAK65C,MAAM71F,KAAKysG,IAAIpsG,IAChCL,KAAKysG,IAAMlmG,QACJ,IAEF,KAWToD,IAAK,mBACL5E,MAAO,WACL,GAAiBwB,SAAbvG,KAAKysG,IAAmB,CAC1B,GAAI7S,GAAS,UAAY55F,KAAKK,GAC1Bm4B,EAAOx4B,KAAKg8C,KAAK26C,UAAUC,YAC7Bv2F,GAAIu5F,EACJ4E,MAAO,SACPxmB,SAAS,EACTnf,QAAQ,GAEV74D,MAAKg8C,KAAK65C,MAAM+D,GAAUphE,EAC1Bx4B,KAAKysG,IAAMj0E,EACXx4B,KAAKysG,IAAIiH,aAAe1zG,KAAKK,GAC7BL,KAAKuzG,yBAIT5pG,IAAK,qBACL5E,MAAO,WACYwB,SAAbvG,KAAKysG,KAAmClmG,SAAdvG,KAAKmV,MAAkC5O,SAAZvG,KAAKkV,IAC5DlV,KAAKysG,IAAIjyE,EAAI,IAAOx6B,KAAKmV,KAAKqlB,EAAIx6B,KAAKkV,GAAGslB,GAC1Cx6B,KAAKysG,IAAIhtF,EAAI,IAAOzf,KAAKmV,KAAKsK,EAAIzf,KAAKkV,GAAGuK,IACpBlZ,SAAbvG,KAAKysG,MACdzsG,KAAKysG,IAAIjyE,EAAI,EACbx6B,KAAKysG,IAAIhtF,EAAI,MAUjB9V,IAAK,QACL5E,MAAO,SAAeqpC,GASpB,MAPAA,GAAIa,YACJb,EAAIc,OAAOlvC,KAAKmV,KAAKqlB,EAAGx6B,KAAKmV,KAAKsK,GAClC2uB,EAAIulE,iBAAiB3zG,KAAKysG,IAAIjyE,EAAGx6B,KAAKysG,IAAIhtF,EAAGzf,KAAKkV,GAAGslB,EAAGx6B,KAAKkV,GAAGuK,GAEhEzf,KAAKsmG,aAAal4D,GAClBA,EAAI7J,SACJvkC,KAAKumG,cAAcn4D,GACZpuC,KAAKysG,OAWd9iG,IAAK,WACL5E,MAAO,SAAkB+oG,GACvB,GAAIn+F,GAAIm+F,EACJtzE,EAAIv1B,KAAK0U,IAAI,EAAIhK,EAAG,GAAK3P,KAAKmV,KAAKqlB,EAAI,EAAI7qB,GAAK,EAAIA,GAAK3P,KAAKysG,IAAIjyE,EAAIv1B,KAAK0U,IAAIhK,EAAG,GAAK3P,KAAKkV,GAAGslB,EAC/F/a,EAAIxa,KAAK0U,IAAI,EAAIhK,EAAG,GAAK3P,KAAKmV,KAAKsK,EAAI,EAAI9P,GAAK,EAAIA,GAAK3P,KAAKysG,IAAIhtF,EAAIxa,KAAK0U,IAAIhK,EAAG,GAAK3P,KAAKkV,GAAGuK,CAEnG,QAAS+a,EAAGA,EAAG/a,EAAGA,MAGpB9V,IAAK,sBACL5E,MAAO,SAA6BiqG,EAAU5gE,GAC5C,MAAOpuC,MAAKivG,0BAA0BD,EAAU5gE,EAAKpuC,KAAKysG,QAG5D9iG,IAAK,qBACL5E,MAAO,SAA4B6pG,EAAIC,EAAIC,EAAIC,EAAIG,EAAIC,GAErD,MAAOnvG,MAAKsvG,yBAAyBV,EAAIC,EAAIC,EAAIC,EAAIG,EAAIC,EAAInvG,KAAKysG,SAI/D4G,GACND,EAAqB,WAExBxzG,GAAQ,WAAayzG,EACrBxzG,EAAOD,QAAUA,EAAQ,YAIrB,SAASC,EAAQD,EAASM,GAY9B,QAASuyE,GAAuB3sE,GAAO,MAAOA,IAAOA,EAAI4sE,WAAa5sE,GAAQ6sE,UAAW7sE,GAEzF,QAAS8sE,GAAgBC,EAAUC,GAAe,KAAMD,YAAoBC,IAAgB,KAAM,IAAI5rE,WAAU,qCAEhH,QAAS89F,GAAUC,EAAUC,GAAc,GAA0B,kBAAfA,IAA4C,OAAfA,EAAuB,KAAM,IAAIh+F,WAAU,iEAAoEg+F,GAAeD,GAAShyF,UAAY7L,OAAOgJ,OAAO80F,GAAcA,EAAWjyF,WAAa9L,aAAepC,MAAOkgG,EAAU9xB,YAAY,EAAOE,UAAU,EAAMD,cAAc,KAAe8xB,IAAY99F,OAAO+9F,eAAiB/9F,OAAO+9F,eAAeF,EAAUC,GAAcD,EAASG,UAAYF,GAZje99F,OAAO2rE,eAAenzE,EAAS,cAC7BmF,OAAO,GAGT,IAAIiuE,GAAe,WAAe,QAASC,GAAiB/nE,EAAQrE,GAAS,IAAK,GAAIJ,GAAI,EAAGA,EAAII,EAAMP,OAAQG,IAAK,CAAE,GAAIysE,GAAarsE,EAAMJ,EAAIysE,GAAWC,WAAaD,EAAWC,aAAc,EAAOD,EAAWE,cAAe,EAAU,SAAWF,KAAYA,EAAWG,UAAW,GAAMjsE,OAAO2rE,eAAe7nE,EAAQgoE,EAAWvpE,IAAKupE,IAAiB,MAAO,UAAUJ,EAAaQ,EAAYC,GAAiJ,MAA9HD,IAAYL,EAAiBH,EAAY7/D,UAAWqgE,GAAiBC,GAAaN,EAAiBH,EAAaS,GAAqBT,MAE7hBuyB,EAAO,SAAa2I,EAAKC,EAAK2F,GAAqC,IAA9B,GAAInO,IAAS,EAAwBA,GAAQ,CAAE,GAAIrhG,GAAS4pG,EAAKjqD,EAAWkqD,EAAKvI,EAAWkO,CAAKnO,IAAS,EAAsB,OAAXrhG,IAAiBA,EAASmW,SAAStH,UAAW,IAAI0yF,GAAOv+F,OAAOw+F,yBAAyBxhG,EAAQ2/C,EAAW,IAAax9C,SAATo/F,EAAJ,CAA6O,GAAI,SAAWA,GAAQ,MAAOA,GAAK5gG,KAAgB,IAAI0mB,GAASk6E,EAAKhyE,GAAK,IAAeptB,SAAXklB,EAAwB,MAAoB,OAAOA,GAAOlrB,KAAKmlG,GAAhW,GAAIn6F,GAASnE,OAAOy+F,eAAezhG,EAAS,IAAe,OAAXmH,EAAmB,MAA2ByiG,GAAMziG,EAAQ0iG,EAAMlqD,EAAU6vD,EAAMlO,EAAUD,GAAS,EAAME,EAAOp6F,EAAShF,SAQ3c4sG,EAAsBjzG,EAAoB,IAE1CkzG,EAAuB3gC,EAAuB0gC,GAE9CU,EAAmB,SAAWhE,GAGhC,QAASgE,GAAiBhwG,EAASm4C,EAAMmmD,GACvCvvB,EAAgB5yE,KAAM6zG,GAEtBxO,EAAKj+F,OAAOy+F,eAAegO,EAAiB5gG,WAAY,cAAejT,MAAMO,KAAKP,KAAM6D,EAASm4C,EAAMmmD,GA+NzG,MApOA6C,GAAU6O,EAAkBhE,GAc5B78B,EAAa6gC,IACXlqG,IAAK,QACL5E,MAAO,SAAeqpC,GAEpBA,EAAIa,YACJb,EAAIc,OAAOlvC,KAAKmV,KAAKqlB,EAAGx6B,KAAKmV,KAAKsK,EAClC,IAAIgtF,GAAMzsG,KAAKuuG,qBACXvjG,EAAcyhG,CAalB,OAVclmG,UAAVkmG,EAAIjyE,GACN4T,EAAIe,OAAOnvC,KAAKkV,GAAGslB,EAAGx6B,KAAKkV,GAAGuK,GAC9BzU,EAAczE,QAEd6nC,EAAIulE,iBAAiBlH,EAAIjyE,EAAGiyE,EAAIhtF,EAAGzf,KAAKkV,GAAGslB,EAAGx6B,KAAKkV,GAAGuK,GAGxDzf,KAAKsmG,aAAal4D,GAClBA,EAAI7J,SACJvkC,KAAKumG,cAAcn4D,GACZpjC,KAGTrB,IAAK,qBACL5E,MAAO,WACL,GAAI+uG,GAAOvtG,OACPwtG,EAAOxtG,OACP24C,EAASl/C,KAAK6D,QAAQ0mG,OAAOE,UAC7B7iG,EAAO5H,KAAK6D,QAAQ0mG,OAAO3iG,KAC3B8+B,EAAKzhC,KAAK6R,IAAI9W,KAAKmV,KAAKqlB,EAAIx6B,KAAKkV,GAAGslB,GACpCmM,EAAK1hC,KAAK6R,IAAI9W,KAAKmV,KAAKsK,EAAIzf,KAAKkV,GAAGuK,EACxC,IAAa,aAAT7X,GAAgC,kBAATA,EACrB3C,KAAK6R,IAAI9W,KAAKmV,KAAKqlB,EAAIx6B,KAAKkV,GAAGslB,IAAMv1B,KAAK6R,IAAI9W,KAAKmV,KAAKsK,EAAIzf,KAAKkV,GAAGuK,IAClEzf,KAAKmV,KAAKsK,GAAKzf,KAAKkV,GAAGuK,EACrBzf,KAAKmV,KAAKqlB,GAAKx6B,KAAKkV,GAAGslB,GACzBs5E,EAAO9zG,KAAKmV,KAAKqlB,EAAI0kB,EAASvY,EAC9BotE,EAAO/zG,KAAKmV,KAAKsK,EAAIy/B,EAASvY,GACrB3mC,KAAKmV,KAAKqlB,EAAIx6B,KAAKkV,GAAGslB,IAC/Bs5E,EAAO9zG,KAAKmV,KAAKqlB,EAAI0kB,EAASvY,EAC9BotE,EAAO/zG,KAAKmV,KAAKsK,EAAIy/B,EAASvY,GAEvB3mC,KAAKmV,KAAKsK,EAAIzf,KAAKkV,GAAGuK,IAC3Bzf,KAAKmV,KAAKqlB,GAAKx6B,KAAKkV,GAAGslB,GACzBs5E,EAAO9zG,KAAKmV,KAAKqlB,EAAI0kB,EAASvY,EAC9BotE,EAAO/zG,KAAKmV,KAAKsK,EAAIy/B,EAASvY,GACrB3mC,KAAKmV,KAAKqlB,EAAIx6B,KAAKkV,GAAGslB,IAC/Bs5E,EAAO9zG,KAAKmV,KAAKqlB,EAAI0kB,EAASvY,EAC9BotE,EAAO/zG,KAAKmV,KAAKsK,EAAIy/B,EAASvY,IAGrB,aAAT/+B,IACFksG,EAAY50D,EAASvY,EAAdD,EAAmB1mC,KAAKmV,KAAKqlB,EAAIs5E,IAEjC7uG,KAAK6R,IAAI9W,KAAKmV,KAAKqlB,EAAIx6B,KAAKkV,GAAGslB,GAAKv1B,KAAK6R,IAAI9W,KAAKmV,KAAKsK,EAAIzf,KAAKkV,GAAGuK,KACxEzf,KAAKmV,KAAKsK,GAAKzf,KAAKkV,GAAGuK,EACrBzf,KAAKmV,KAAKqlB,GAAKx6B,KAAKkV,GAAGslB,GACzBs5E,EAAO9zG,KAAKmV,KAAKqlB,EAAI0kB,EAASxY,EAC9BqtE,EAAO/zG,KAAKmV,KAAKsK,EAAIy/B,EAASxY,GACrB1mC,KAAKmV,KAAKqlB,EAAIx6B,KAAKkV,GAAGslB,IAC/Bs5E,EAAO9zG,KAAKmV,KAAKqlB,EAAI0kB,EAASxY,EAC9BqtE,EAAO/zG,KAAKmV,KAAKsK,EAAIy/B,EAASxY,GAEvB1mC,KAAKmV,KAAKsK,EAAIzf,KAAKkV,GAAGuK,IAC3Bzf,KAAKmV,KAAKqlB,GAAKx6B,KAAKkV,GAAGslB,GACzBs5E,EAAO9zG,KAAKmV,KAAKqlB,EAAI0kB,EAASxY,EAC9BqtE,EAAO/zG,KAAKmV,KAAKsK,EAAIy/B,EAASxY,GACrB1mC,KAAKmV,KAAKqlB,EAAIx6B,KAAKkV,GAAGslB,IAC/Bs5E,EAAO9zG,KAAKmV,KAAKqlB,EAAI0kB,EAASxY,EAC9BqtE,EAAO/zG,KAAKmV,KAAKsK,EAAIy/B,EAASxY,IAGrB,aAAT9+B,IACFmsG,EAAY70D,EAASxY,EAAdC,EAAmB3mC,KAAKmV,KAAKsK,EAAIs0F,QAGvC,IAAa,kBAATnsG,EACL3C,KAAK6R,IAAI9W,KAAKmV,KAAKqlB,EAAIx6B,KAAKkV,GAAGslB,IAAMv1B,KAAK6R,IAAI9W,KAAKmV,KAAKsK,EAAIzf,KAAKkV,GAAGuK,IAEtEq0F,EAAO9zG,KAAKmV,KAAKqlB,EAEfu5E,EADE/zG,KAAKmV,KAAKsK,EAAIzf,KAAKkV,GAAGuK,EACjBzf,KAAKkV,GAAGuK,GAAK,EAAIy/B,GAAUvY,EAE3B3mC,KAAKkV,GAAGuK,GAAK,EAAIy/B,GAAUvY,GAE3B1hC,KAAK6R,IAAI9W,KAAKmV,KAAKqlB,EAAIx6B,KAAKkV,GAAGslB,GAAKv1B,KAAK6R,IAAI9W,KAAKmV,KAAKsK,EAAIzf,KAAKkV,GAAGuK,KAG1Eq0F,EADE9zG,KAAKmV,KAAKqlB,EAAIx6B,KAAKkV,GAAGslB,EACjBx6B,KAAKkV,GAAGslB,GAAK,EAAI0kB,GAAUxY,EAE3B1mC,KAAKkV,GAAGslB,GAAK,EAAI0kB,GAAUxY,EAEpCqtE,EAAO/zG,KAAKmV,KAAKsK,OAEd,IAAa,eAAT7X,EAEPksG,EADE9zG,KAAKmV,KAAKqlB,EAAIx6B,KAAKkV,GAAGslB,EACjBx6B,KAAKkV,GAAGslB,GAAK,EAAI0kB,GAAUxY,EAE3B1mC,KAAKkV,GAAGslB,GAAK,EAAI0kB,GAAUxY,EAEpCqtE,EAAO/zG,KAAKmV,KAAKsK,MACZ,IAAa,aAAT7X,EACTksG,EAAO9zG,KAAKmV,KAAKqlB,EAEfu5E,EADE/zG,KAAKmV,KAAKsK,EAAIzf,KAAKkV,GAAGuK,EACjBzf,KAAKkV,GAAGuK,GAAK,EAAIy/B,GAAUvY,EAE3B3mC,KAAKkV,GAAGuK,GAAK,EAAIy/B,GAAUvY,MAE/B,IAAa,aAAT/+B,EAAqB,CAC9B8+B,EAAK1mC,KAAKkV,GAAGslB,EAAIx6B,KAAKmV,KAAKqlB,EAC3BmM,EAAK3mC,KAAKmV,KAAKsK,EAAIzf,KAAKkV,GAAGuK,CAC3B,IAAIgzB,GAASxtC,KAAKoxC,KAAK3P,EAAKA,EAAKC,EAAKA,GAClCqtE,EAAK/uG,KAAK0tC,GAEVshE,EAAgBhvG,KAAKyjD,MAAM/hB,EAAID,GAC/BwtE,GAAWD,GAA0B,GAAT/0D,EAAe,IAAO80D,IAAO,EAAIA,EAEjEF,GAAO9zG,KAAKmV,KAAKqlB,GAAc,GAAT0kB,EAAe,IAAOzM,EAASxtC,KAAKihC,IAAIguE,GAC9DH,EAAO/zG,KAAKmV,KAAKsK,GAAc,GAATy/B,EAAe,IAAOzM,EAASxtC,KAAKohC,IAAI6tE,OACzD,IAAa,cAATtsG,EAAsB,CAC/B8+B,EAAK1mC,KAAKkV,GAAGslB,EAAIx6B,KAAKmV,KAAKqlB,EAC3BmM,EAAK3mC,KAAKmV,KAAKsK,EAAIzf,KAAKkV,GAAGuK,CAC3B,IAAIgzB,GAASxtC,KAAKoxC,KAAK3P,EAAKA,EAAKC,EAAKA,GAClCqtE,EAAK/uG,KAAK0tC,GAEVshE,EAAgBhvG,KAAKyjD,MAAM/hB,EAAID,GAC/BwtE,GAAWD,GAA2B,IAAT/0D,EAAe,IAAO80D,IAAO,EAAIA,EAElEF,GAAO9zG,KAAKmV,KAAKqlB,GAAc,GAAT0kB,EAAe,IAAOzM,EAASxtC,KAAKihC,IAAIguE,GAC9DH,EAAO/zG,KAAKmV,KAAKsK,GAAc,GAATy/B,EAAe,IAAOzM,EAASxtC,KAAKohC,IAAI6tE,OAG1DjvG,MAAK6R,IAAI9W,KAAKmV,KAAKqlB,EAAIx6B,KAAKkV,GAAGslB,IAAMv1B,KAAK6R,IAAI9W,KAAKmV,KAAKsK,EAAIzf,KAAKkV,GAAGuK,GAClEzf,KAAKmV,KAAKsK,GAAKzf,KAAKkV,GAAGuK,EACrBzf,KAAKmV,KAAKqlB,GAAKx6B,KAAKkV,GAAGslB,GACzBs5E,EAAO9zG,KAAKmV,KAAKqlB,EAAI0kB,EAASvY,EAC9BotE,EAAO/zG,KAAKmV,KAAKsK,EAAIy/B,EAASvY,EAC9BmtE,EAAO9zG,KAAKkV,GAAGslB,EAAIs5E,EAAO9zG,KAAKkV,GAAGslB,EAAIs5E,GAC7B9zG,KAAKmV,KAAKqlB,EAAIx6B,KAAKkV,GAAGslB,IAC/Bs5E,EAAO9zG,KAAKmV,KAAKqlB,EAAI0kB,EAASvY,EAC9BotE,EAAO/zG,KAAKmV,KAAKsK,EAAIy/B,EAASvY,EAC9BmtE,EAAO9zG,KAAKkV,GAAGslB,EAAIs5E,EAAO9zG,KAAKkV,GAAGslB,EAAIs5E,GAE/B9zG,KAAKmV,KAAKsK,EAAIzf,KAAKkV,GAAGuK,IAC3Bzf,KAAKmV,KAAKqlB,GAAKx6B,KAAKkV,GAAGslB,GACzBs5E,EAAO9zG,KAAKmV,KAAKqlB,EAAI0kB,EAASvY,EAC9BotE,EAAO/zG,KAAKmV,KAAKsK,EAAIy/B,EAASvY,EAC9BmtE,EAAO9zG,KAAKkV,GAAGslB,EAAIs5E,EAAO9zG,KAAKkV,GAAGslB,EAAIs5E,GAC7B9zG,KAAKmV,KAAKqlB,EAAIx6B,KAAKkV,GAAGslB,IAC/Bs5E,EAAO9zG,KAAKmV,KAAKqlB,EAAI0kB,EAASvY,EAC9BotE,EAAO/zG,KAAKmV,KAAKsK,EAAIy/B,EAASvY,EAC9BmtE,EAAO9zG,KAAKkV,GAAGslB,EAAIs5E,EAAO9zG,KAAKkV,GAAGslB,EAAIs5E,IAGjC7uG,KAAK6R,IAAI9W,KAAKmV,KAAKqlB,EAAIx6B,KAAKkV,GAAGslB,GAAKv1B,KAAK6R,IAAI9W,KAAKmV,KAAKsK,EAAIzf,KAAKkV,GAAGuK,KACxEzf,KAAKmV,KAAKsK,GAAKzf,KAAKkV,GAAGuK,EACrBzf,KAAKmV,KAAKqlB,GAAKx6B,KAAKkV,GAAGslB,GACzBs5E,EAAO9zG,KAAKmV,KAAKqlB,EAAI0kB,EAASxY,EAC9BqtE,EAAO/zG,KAAKmV,KAAKsK,EAAIy/B,EAASxY,EAC9BqtE,EAAO/zG,KAAKkV,GAAGuK,EAAIs0F,EAAO/zG,KAAKkV,GAAGuK,EAAIs0F,GAC7B/zG,KAAKmV,KAAKqlB,EAAIx6B,KAAKkV,GAAGslB,IAC/Bs5E,EAAO9zG,KAAKmV,KAAKqlB,EAAI0kB,EAASxY,EAC9BqtE,EAAO/zG,KAAKmV,KAAKsK,EAAIy/B,EAASxY,EAC9BqtE,EAAO/zG,KAAKkV,GAAGuK,EAAIs0F,EAAO/zG,KAAKkV,GAAGuK,EAAIs0F,GAE/B/zG,KAAKmV,KAAKsK,EAAIzf,KAAKkV,GAAGuK,IAC3Bzf,KAAKmV,KAAKqlB,GAAKx6B,KAAKkV,GAAGslB,GACzBs5E,EAAO9zG,KAAKmV,KAAKqlB,EAAI0kB,EAASxY,EAC9BqtE,EAAO/zG,KAAKmV,KAAKsK,EAAIy/B,EAASxY,EAC9BqtE,EAAO/zG,KAAKkV,GAAGuK,EAAIs0F,EAAO/zG,KAAKkV,GAAGuK,EAAIs0F,GAC7B/zG,KAAKmV,KAAKqlB,EAAIx6B,KAAKkV,GAAGslB,IAC/Bs5E,EAAO9zG,KAAKmV,KAAKqlB,EAAI0kB,EAASxY,EAC9BqtE,EAAO/zG,KAAKmV,KAAKsK,EAAIy/B,EAASxY,EAC9BqtE,EAAO/zG,KAAKkV,GAAGuK,EAAIs0F,EAAO/zG,KAAKkV,GAAGuK,EAAIs0F,IAK9C,QAASv5E,EAAGs5E,EAAMr0F,EAAGs0F,MAGvBpqG,IAAK,sBACL5E,MAAO,SAA6BiqG,EAAU5gE,GAC5C,GAAIvqC,GAAUwC,UAAUC,QAAU,GAAsBC,SAAjBF,UAAU,MAAwBA,UAAU,EAEnF,OAAOrG,MAAKivG,0BAA0BD,EAAU5gE,EAAKvqC,EAAQ4oG,QAG/D9iG,IAAK,qBACL5E,MAAO,SAA4B6pG,EAAIC,EAAIC,EAAIC,EAAIG,EAAIC,GACrD,GAAI1C,GAAMpmG,UAAUC,QAAU,GAAsBC,SAAjBF,UAAU,GAAmBrG,KAAKuuG,qBAAuBloG,UAAU,EAEtG,OAAOrG,MAAKsvG,yBAAyBV,EAAIC,EAAIC,EAAIC,EAAIG,EAAIC,EAAI1C,MAW/D9iG,IAAK,WACL5E,MAAO,SAAkB+oG,GACvB,GAAIrB,GAAMpmG,UAAUC,QAAU,GAAsBC,SAAjBF,UAAU,GAAmBrG,KAAKuuG,qBAAuBloG,UAAU,GAElGsJ,EAAIm+F,EACJtzE,EAAIv1B,KAAK0U,IAAI,EAAIhK,EAAG,GAAK3P,KAAKmV,KAAKqlB,EAAI,EAAI7qB,GAAK,EAAIA,GAAK88F,EAAIjyE,EAAIv1B,KAAK0U,IAAIhK,EAAG,GAAK3P,KAAKkV,GAAGslB,EAC1F/a,EAAIxa,KAAK0U,IAAI,EAAIhK,EAAG,GAAK3P,KAAKmV,KAAKsK,EAAI,EAAI9P,GAAK,EAAIA,GAAK88F,EAAIhtF,EAAIxa,KAAK0U,IAAIhK,EAAG,GAAK3P,KAAKkV,GAAGuK,CAE9F,QAAS+a,EAAGA,EAAG/a,EAAGA,OAIfo0F,GACNT,EAAqB,WAExBxzG,GAAQ,WAAai0G,EACrBh0G,EAAOD,QAAUA,EAAQ,YAIrB,SAASC,EAAQD,EAASM,GAY9B,QAASuyE,GAAuB3sE,GAAO,MAAOA,IAAOA,EAAI4sE,WAAa5sE,GAAQ6sE,UAAW7sE,GAEzF,QAAS8sE,GAAgBC,EAAUC,GAAe,KAAMD,YAAoBC,IAAgB,KAAM,IAAI5rE,WAAU,qCAEhH,QAAS89F,GAAUC,EAAUC,GAAc,GAA0B,kBAAfA,IAA4C,OAAfA,EAAuB,KAAM,IAAIh+F,WAAU,iEAAoEg+F,GAAeD,GAAShyF,UAAY7L,OAAOgJ,OAAO80F,GAAcA,EAAWjyF,WAAa9L,aAAepC,MAAOkgG,EAAU9xB,YAAY,EAAOE,UAAU,EAAMD,cAAc,KAAe8xB,IAAY99F,OAAO+9F,eAAiB/9F,OAAO+9F,eAAeF,EAAUC,GAAcD,EAASG,UAAYF,GAZje99F,OAAO2rE,eAAenzE,EAAS,cAC7BmF,OAAO,GAGT,IAAIiuE,GAAe,WAAe,QAASC,GAAiB/nE,EAAQrE,GAAS,IAAK,GAAIJ,GAAI,EAAGA,EAAII,EAAMP,OAAQG,IAAK,CAAE,GAAIysE,GAAarsE,EAAMJ,EAAIysE,GAAWC,WAAaD,EAAWC,aAAc,EAAOD,EAAWE,cAAe,EAAU,SAAWF,KAAYA,EAAWG,UAAW,GAAMjsE,OAAO2rE,eAAe7nE,EAAQgoE,EAAWvpE,IAAKupE,IAAiB,MAAO,UAAUJ,EAAaQ,EAAYC,GAAiJ,MAA9HD,IAAYL,EAAiBH,EAAY7/D,UAAWqgE,GAAiBC,GAAaN,EAAiBH,EAAaS,GAAqBT,MAE7hBuyB,EAAO,SAAaC,EAAIC,EAAKC,GAAqC,IAA9B,GAAIC,IAAS,EAAwBA,GAAQ,CAAE,GAAIrhG,GAASkhG,EAAIvhD,EAAWwhD,EAAKG,EAAWF,CAAKC,IAAS,EAAsB,OAAXrhG,IAAiBA,EAASmW,SAAStH,UAAW,IAAI0yF,GAAOv+F,OAAOw+F,yBAAyBxhG,EAAQ2/C,EAAW,IAAax9C,SAATo/F,EAAJ,CAA4O,GAAI,SAAWA,GAAQ,MAAOA,GAAK5gG,KAAgB,IAAI0mB,GAASk6E,EAAKhyE,GAAK,IAAeptB,SAAXklB,EAAwB,MAAoB,OAAOA,GAAOlrB,KAAKmlG,GAA/V,GAAIn6F,GAASnE,OAAOy+F,eAAezhG,EAAS,IAAe,OAAXmH,EAAmB,MAA2B+5F,GAAK/5F,EAAQg6F,EAAMxhD,EAAUyhD,EAAME,EAAUD,GAAS,EAAME,EAAOp6F,EAAShF,SAQxc4tG,EAAgBj0G,EAAoB,IAEpCk0G,EAAiB3hC,EAAuB0hC,GAExCE,EAAe,SAAWhE,GAG5B,QAASgE,GAAaxwG,EAASm4C,EAAMmmD,GACnCvvB,EAAgB5yE,KAAMq0G,GAEtBhP,EAAKj+F,OAAOy+F,eAAewO,EAAaphG,WAAY,cAAejT,MAAMO,KAAKP,KAAM6D,EAASm4C,EAAMmmD,GAqErG,MA1EA6C,GAAUqP,EAAchE,GAcxBr9B,EAAaqhC,IACX1qG,IAAK,QACL5E,MAAO,SAAeqpC,GAEpBA,EAAIa,YACJb,EAAIc,OAAOlvC,KAAKmV,KAAKqlB,EAAGx6B,KAAKmV,KAAKsK,GAClC2uB,EAAIe,OAAOnvC,KAAKkV,GAAGslB,EAAGx6B,KAAKkV,GAAGuK,GAE9Bzf,KAAKsmG,aAAal4D,GAClBA,EAAI7J,SACJvkC,KAAKumG,cAAcn4D,MAYrBzkC,IAAK,WACL5E,MAAO,SAAkB+oG,GACvB,OACEtzE,GAAI,EAAIszE,GAAc9tG,KAAKmV,KAAKqlB,EAAIszE,EAAa9tG,KAAKkV,GAAGslB,EACzD/a,GAAI,EAAIquF,GAAc9tG,KAAKmV,KAAKsK,EAAIquF,EAAa9tG,KAAKkV,GAAGuK,MAI7D9V,IAAK,sBACL5E,MAAO,SAA6BiqG,EAAU5gE,GAC5C,GAAI2+D,GAAQ/sG,KAAKkV,GACb83F,EAAQhtG,KAAKmV,IACb65F,GAAS3uG,KAAOL,KAAKmV,KAAK9U,KAC5B0sG,EAAQ/sG,KAAKmV,KACb63F,EAAQhtG,KAAKkV,GAGf,IAAI8xC,GAAQ/hD,KAAKyjD,MAAMqkD,EAAMttF,EAAIutF,EAAMvtF,EAAGstF,EAAMvyE,EAAIwyE,EAAMxyE,GACtDkM,EAAKqmE,EAAMvyE,EAAIwyE,EAAMxyE,EACrBmM,EAAKomE,EAAMttF,EAAIutF,EAAMvtF,EACrB60F,EAAoBrvG,KAAKoxC,KAAK3P,EAAKA,EAAKC,EAAKA,GAC7C4tE,EAAevF,EAASxM,iBAAiBp0D,EAAK4Y,GAC9CwtD,GAAiBF,EAAoBC,GAAgBD,EAErDG,IAIJ,OAHAA,GAAUj6E,GAAK,EAAIg6E,GAAiBxH,EAAMxyE,EAAIg6E,EAAgBzH,EAAMvyE,EACpEi6E,EAAUh1F,GAAK,EAAI+0F,GAAiBxH,EAAMvtF,EAAI+0F,EAAgBzH,EAAMttF,EAE7Dg1F,KAGT9qG,IAAK,qBACL5E,MAAO,SAA4B6pG,EAAIC,EAAIC,EAAIC,EAAIG,EAAIC,GAErD,MAAOnvG,MAAKiwG,mBAAmBrB,EAAIC,EAAIC,EAAIC,EAAIG,EAAIC,OAIhDkF,GACND,EAAe,WAElBx0G,GAAQ,WAAay0G,EACrBx0G,EAAOD,QAAUA,EAAQ,YAIrB,SAASC,EAAQD,EAASM,GAU9B,QAASuyE,GAAuB3sE,GAAO,MAAOA,IAAOA,EAAI4sE,WAAa5sE,GAAQ6sE,UAAW7sE,GAEzF,QAAS8sE,GAAgBC,EAAUC,GAAe,KAAMD,YAAoBC,IAAgB,KAAM,IAAI5rE,WAAU,qCARhHE,OAAO2rE,eAAenzE,EAAS,cAC7BmF,OAAO,GAGT,IAAIiuE,GAAe,WAAe,QAASC,GAAiB/nE,EAAQrE,GAAS,IAAK,GAAIJ,GAAI,EAAGA,EAAII,EAAMP,OAAQG,IAAK,CAAE,GAAIysE,GAAarsE,EAAMJ,EAAIysE,GAAWC,WAAaD,EAAWC,aAAc,EAAOD,EAAWE,cAAe,EAAU,SAAWF,KAAYA,EAAWG,UAAW,GAAMjsE,OAAO2rE,eAAe7nE,EAAQgoE,EAAWvpE,IAAKupE,IAAiB,MAAO,UAAUJ,EAAaQ,EAAYC,GAAiJ,MAA9HD,IAAYL,EAAiBH,EAAY7/D,UAAWqgE,GAAiBC,GAAaN,EAAiBH,EAAaS,GAAqBT,MAM7hB4hC,EAAoCx0G,EAAoB,IAExDy0G,EAAqCliC,EAAuBiiC,GAE5DE,EAAoC10G,EAAoB,IAExD20G,EAAqCpiC,EAAuBmiC,GAE5DE,EAAgD50G,EAAoB,IAEpE60G,EAAiDtiC,EAAuBqiC,GAExEE,EAAiC90G,EAAoB,IAErD+0G,EAAkCxiC,EAAuBuiC,GAEzDE,EAA6Ch1G,EAAoB,IAEjEi1G,EAA8C1iC,EAAuByiC,GAErEE,EAAyCl1G,EAAoB,IAE7Dm1G,EAA0C5iC,EAAuB2iC,GAEjEE,EAA4Cp1G,EAAoB,IAEhEq1G,EAA6C9iC,EAAuB6iC,GAEpEE,EAAiDt1G,EAAoB,IAErEu1G,EAAkDhjC,EAAuB+iC,GAEzE70G,EAAOT,EAAoB,GAE3Bw1G,EAAgB,WAClB,QAASA,GAAc15D,GACrB42B,EAAgB5yE,KAAM01G,GAEtB11G,KAAKg8C,KAAOA,EACZh8C,KAAK21G,aAAgBC,sBAAwBC,sBAAwBC,UAAYC,eAEjF/1G,KAAKg2G,gBAAiB,EACtBh2G,KAAKi2G,mBAAqB,IAAO,GACjCj2G,KAAKk2G,iBAAkB,EACvBl2G,KAAKm2G,kBACLn2G,KAAKo2G,kBACLp2G,KAAKq2G,eACLr2G,KAAKs2G,YAAc/vG,OAGnBvG,KAAKu2G,kBAAmB,EACxBv2G,KAAKw2G,yBAA0B,EAC/Bx2G,KAAKy2G,gBAAkB,EACvBz2G,KAAK02G,iBAAmB,EAExB12G,KAAK22G,YAAa,EAClB32G,KAAK42G,sBAAuB,EAC5B52G,KAAK62G,wBAA0B,EAC/B72G,KAAK82G,OAAQ,EAGb92G,KAAK6D,WACL7D,KAAKw7C,gBACH3qC,SAAS,EACTkmG,WACEC,MAAO,GACPC,sBAAuB,KACvBC,eAAgB,GAChBC,aAAc,GACdC,eAAgB,IAChBC,QAAS,IACTC,aAAc,GAEhBC,kBACEP,MAAO,GACPC,sBAAuB,IACvBC,eAAgB,IAChBE,eAAgB,IAChBD,aAAc,IACdE,QAAS,GACTC,aAAc,GAEhBE,WACEN,eAAgB,GAChBC,aAAc,IACdC,eAAgB,IAChBK,aAAc,IACdJ,QAAS,IACTC,aAAc,GAEhBI,uBACER,eAAgB,EAChBC,aAAc,IACdC,eAAgB,IAChBK,aAAc,IACdJ,QAAS,KAEXM,YAAa,GACbC,YAAa,IACb3/B,OAAQ,YACR4/B,eACEhnG,SAAS,EACTinG,WAAY,IACZC,eAAgB,GAChBC,kBAAkB,EAClBr5D,KAAK,GAEPs5D,SAAU,GACV1B,kBAAkB,GAEpB51G,EAAKgG,OAAO3G,KAAK6D,QAAS7D,KAAKw7C,gBAC/Bx7C,KAAKi4G,SAAW,GAChBj4G,KAAKk4G,cAAe,EAEpBl4G,KAAK+2F,qBA2pBP,MAxpBA/jB,GAAa0iC,IACX/rG,IAAK,qBACL5E,MAAO,WACL,GAAI+5C,GAAQ9+C,IAEZA,MAAKg8C,KAAKE,QAAQlgB,GAAG,cAAe,WAClC8iB,EAAMq5D,gBAERn4G,KAAKg8C,KAAKE,QAAQlgB,GAAG,gBAAiB,WACpC8iB,EAAMo5D,cAAe,IAEvBl4G,KAAKg8C,KAAKE,QAAQlgB,GAAG,eAAgB,WACnC8iB,EAAMk9C,iBAAiBl9C,EAAMg4D,OAAQ,IAEvC92G,KAAKg8C,KAAKE,QAAQlgB,GAAG,iBAAkB,WACrC8iB,EAAMk3D,gBAAiB,EAAMl3D,EAAMk9C,mBAErCh8F,KAAKg8C,KAAKE,QAAQlgB,GAAG,iBAAkB,WACrC8iB,EAAMljB,WAAWkjB,EAAMj7C,SACnBi7C,EAAMg4D,SAAU,GAClBh4D,EAAMi9C,oBAGV/7F,KAAKg8C,KAAKE,QAAQlgB,GAAG,kBAAmB,WAClC8iB,EAAMg4D,SAAU,GAClBh4D,EAAMi9C,oBAGV/7F,KAAKg8C,KAAKE,QAAQlgB,GAAG,iBAAkB,WACrC8iB,EAAMk9C,mBAERh8F,KAAKg8C,KAAKE,QAAQlgB,GAAG,UAAW,WAC9B8iB,EAAMk9C,gBAAe,GACrBl9C,EAAM9C,KAAKE,QAAQ/f,QAGrBn8B,KAAKg8C,KAAKE,QAAQlgB,GAAG,eAAgB,WAEnC8iB,EAAMs5D,yBAYVzuG,IAAK,aACL5E,MAAO,SAAoBlB,GACT0C,SAAZ1C,IACEA,KAAY,GACd7D,KAAK6D,QAAQgN,SAAU,EACvB7Q,KAAKg2G,gBAAiB,EACtBh2G,KAAKg8F,mBAELh8F,KAAKg2G,gBAAiB,EACtBr1G,EAAK2G,wBAAwB,iBAAkBtH,KAAK6D,QAASA,GAC7DlD,EAAK+P,aAAa1Q,KAAK6D,QAASA,EAAS,iBAEjB0C,SAApB1C,EAAQgN,UACV7Q,KAAK6D,QAAQgN,SAAU,GAGrB7Q,KAAK6D,QAAQgN,WAAY,IAC3B7Q,KAAKg2G,gBAAiB,EACtBh2G,KAAKg8F,kBAIPh8F,KAAKi4G,SAAWj4G,KAAK6D,QAAQo0G,WAGjCj4G,KAAKglD,UAOPr7C,IAAK,OACL5E,MAAO,WACL,GAAIlB,EACwB,sBAAxB7D,KAAK6D,QAAQo0E,QACfp0E,EAAU7D,KAAK6D,QAAQ0zG,iBACvBv3G,KAAKq4G,YAAc,GAAI9C,GAA2C,WAAWv1G,KAAKg8C,KAAMh8C,KAAK21G,YAAa9xG,GAC1G7D,KAAKs4G,YAAc,GAAIrD,GAAgC,WAAWj1G,KAAKg8C,KAAMh8C,KAAK21G,YAAa9xG,GAC/F7D,KAAKu4G,cAAgB,GAAI9C,GAAgD,WAAWz1G,KAAKg8C,KAAMh8C,KAAK21G,YAAa9xG,IAChF,cAAxB7D,KAAK6D,QAAQo0E,QACtBp0E,EAAU7D,KAAK6D,QAAQ2zG,UACvBx3G,KAAKq4G,YAAc,GAAIxD,GAAmC,WAAW70G,KAAKg8C,KAAMh8C,KAAK21G,YAAa9xG,GAClG7D,KAAKs4G,YAAc,GAAIrD,GAAgC,WAAWj1G,KAAKg8C,KAAMh8C,KAAK21G,YAAa9xG,GAC/F7D,KAAKu4G,cAAgB,GAAIlD,GAAwC,WAAWr1G,KAAKg8C,KAAMh8C,KAAK21G,YAAa9xG,IACxE,0BAAxB7D,KAAK6D,QAAQo0E,QACtBp0E,EAAU7D,KAAK6D,QAAQ6zG,sBACvB13G,KAAKq4G,YAAc,GAAItD,GAA+C,WAAW/0G,KAAKg8C,KAAMh8C,KAAK21G,YAAa9xG,GAC9G7D,KAAKs4G,YAAc,GAAInD,GAA4C,WAAWn1G,KAAKg8C,KAAMh8C,KAAK21G,YAAa9xG,GAC3G7D,KAAKu4G,cAAgB,GAAIlD,GAAwC,WAAWr1G,KAAKg8C,KAAMh8C,KAAK21G,YAAa9xG,KAGzGA,EAAU7D,KAAK6D,QAAQkzG,UACvB/2G,KAAKq4G,YAAc,GAAI1D,GAAmC,WAAW30G,KAAKg8C,KAAMh8C,KAAK21G,YAAa9xG,GAClG7D,KAAKs4G,YAAc,GAAIrD,GAAgC,WAAWj1G,KAAKg8C,KAAMh8C,KAAK21G,YAAa9xG,GAC/F7D,KAAKu4G,cAAgB,GAAIlD,GAAwC,WAAWr1G,KAAKg8C,KAAMh8C,KAAK21G,YAAa9xG,IAG3G7D,KAAKw4G,aAAe30G,KAOtB8F,IAAK,cACL5E,MAAO,WACD/E,KAAKg2G,kBAAmB,GAAQh2G,KAAK6D,QAAQgN,WAAY,EACvD7Q,KAAK6D,QAAQg0G,cAAchnG,WAAY,EACzC7Q,KAAKi8F,aAELj8F,KAAK22G,YAAa,EAClB32G,KAAK82G,OAAQ,EACb92G,KAAKg8C,KAAKE,QAAQzH,KAAK,SAAWz0C,KAAKk4G,cACvCl4G,KAAK+7F,oBAGP/7F,KAAK82G,OAAQ,EACb92G,KAAKg8C,KAAKE,QAAQzH,KAAK,WAQ3B9qC,IAAK,kBACL5E,MAAO,WACD/E,KAAKg2G,kBAAmB,GAAQh2G,KAAK6D,QAAQgN,WAAY,GAC3D7Q,KAAK22G,YAAa,EAGlB32G,KAAKu2G,kBAAmB,EAGxBv2G,KAAKg8C,KAAKE,QAAQzH,KAAK,gBACGluC,SAAtBvG,KAAKy4G,eACPz4G,KAAKy4G,aAAez4G,KAAK04G,eAAev8D,KAAKn8C,MAC7CA,KAAKg8C,KAAKE,QAAQlgB,GAAG,aAAch8B,KAAKy4G,cACxCz4G,KAAKg8C,KAAKE,QAAQzH,KAAK,qBAGzBz0C,KAAKg8C,KAAKE,QAAQzH,KAAK,cAQ3B9qC,IAAK,iBACL5E,MAAO,WACL,GAAI0vC,GAAOpuC,UAAUC,QAAU,GAAsBC,SAAjBF,UAAU,IAAmB,EAAOA,UAAU,EAElFrG,MAAK22G,YAAa,EACdliE,KAAS,GACXz0C,KAAK24G,kBAEmBpyG,SAAtBvG,KAAKy4G,eACPz4G,KAAKg8C,KAAKE,QAAQ/f,IAAI,aAAcn8B,KAAKy4G,cACzCz4G,KAAKy4G,aAAelyG,OAChBkuC,KAAS,GACXz0C,KAAKg8C,KAAKE,QAAQzH,KAAK,sBAU7B9qC,IAAK,iBACL5E,MAAO,WAEL,GAAI6zG,GAAYvzG,KAAK2c,KACrBhiB,MAAK64G,aACL,IAAIC,GAAczzG,KAAK2c,MAAQ42F,GAG1BE,EAAc,GAAM94G,KAAKi2G,oBAAsBj2G,KAAK+4G,kBAAmB,IAAS/4G,KAAK22G,cAAe,IACvG32G,KAAK64G,cAGL74G,KAAK+4G,gBAAiB,GAGpB/4G,KAAK22G,cAAe,GACtB32G,KAAKg8F,oBASTryF,IAAK,kBACL5E,MAAO,WACL,GAAIwwE,GAASv1E,KAETg5G,EAAqB3yG,UAAUC,QAAU,GAAsBC,SAAjBF,UAAU,GAAmBrG,KAAK62G,wBAA0BxwG,UAAU;CAEpHrG,KAAK62G,wBAA0B,GAAK72G,KAAK42G,wBAAyB,IACpE1sG,WAAW,WACTqrE,EAAOv5B,KAAKE,QAAQzH,KAAK,cAAgBqjE,WAAYkB,IACrDzjC,EAAOqhC,sBAAuB,EAC9BrhC,EAAOshC,wBAA0B,GAChC,MAUPltG,IAAK,cACL5E,MAAO,WAOL,GALI/E,KAAK42G,wBAAyB,IAChC52G,KAAKg8C,KAAKE,QAAQzH,KAAK,oBACvBz0C,KAAK42G,sBAAuB,GAG1B52G,KAAK22G,cAAe,EAAO,CAE7B,GAAI32G,KAAKu2G,oBAAqB,GAAQv2G,KAAKw2G,2BAA4B,EAAM,CAE3E,GAAIt3D,GAAS,GAGTl/C,MAAKy2G,gBAAkBz2G,KAAK02G,mBAAqB,GAGnD12G,KAAKi4G,SAAW,EAAIj4G,KAAKi4G,SACzBj4G,KAAKi5G,kBACLj5G,KAAKk5G,YACLl5G,KAAKm5G,SAGLn5G,KAAKi4G,SAAW,GAAMj4G,KAAKi4G,SAG3Bj4G,KAAKi5G,kBACLj5G,KAAKk5G,YACLl5G,KAAKi5G,kBACLj5G,KAAKk5G,YAGDl5G,KAAKo5G,0BAA2B,EAClCp5G,KAAKi4G,SAAW/4D,EAASl/C,KAAKi4G,SAK1Bj4G,KAAKi4G,SAAW/4D,EAASl/C,KAAK6D,QAAQo0G,SACxCj4G,KAAKi4G,SAAWj4G,KAAK6D,QAAQo0G,UAI7Bj4G,KAAKy2G,gBAAkB,GACvBz2G,KAAKi4G,SAAWhzG,KAAKJ,IAAI7E,KAAK6D,QAAQo0G,SAAUj4G,KAAKi4G,SAAW/4D,MAKpEl/C,KAAKi5G,kBACLj5G,KAAKk5G,aAIPl5G,KAAKy2G,iBAAmB,MAGxBz2G,MAAKi4G,SAAWj4G,KAAK6D,QAAQo0G,SAC7Bj4G,KAAKi5G,kBACLj5G,KAAKk5G,WAIHl5G,MAAK22G,cAAe,GACtB32G,KAAKm5G,SAGPn5G,KAAK62G,8BAUTltG,IAAK,oBACL5E,MAAO,WACL/E,KAAK21G,YAAYG,UACjB91G,KAAK21G,YAAYC,sBACjB51G,KAAK21G,YAAYE,qBACjB,IAAIhgB,GAAQ71F,KAAKg8C,KAAK65C,MAClBE,EAAQ/1F,KAAKg8C,KAAK+5C,KAGtB,KAAK,GAAI6D,KAAU/D,GACbA,EAAM7vF,eAAe4zF,IACnB/D,EAAM+D,GAAQ/1F,QAAQm0E,WAAY,GACpCh4E,KAAK21G,YAAYC,mBAAmBpuG,KAAKoyF,EAM/C,KAAK,GAAIC,KAAU9D,GACbA,EAAM/vF,eAAe6zF,IACnB9D,EAAM8D,GAAQh2F,QAAQm0E,WAAY,GACpCh4E,KAAK21G,YAAYE,mBAAmBruG,KAAKqyF,EAM/C,KAAK,GAAIpzF,GAAI,EAAGA,EAAIzG,KAAK21G,YAAYC,mBAAmBtvG,OAAQG,IAAK,CACnE,GAAImzF,GAAS55F,KAAK21G,YAAYC,mBAAmBnvG,EACjDzG,MAAK21G,YAAYG,OAAOlc,IAAYp/D,EAAG,EAAG/a,EAAG,GAGDlZ,SAAxCvG,KAAK21G,YAAYI,WAAWnc,KAC9B55F,KAAK21G,YAAYI,WAAWnc,IAAYp/D,EAAG,EAAG/a,EAAG,IAKrD,IAAK,GAAIm6E,KAAU55F,MAAK21G,YAAYI,WACZxvG,SAAlBsvF,EAAM+D,UACD55F,MAAK21G,YAAYI,WAAWnc,MASzCjwF,IAAK,SACL5E,MAAO,WACL,GAAIs0G,GAAUjyG,OAAO6H,KAAKjP,KAAKm2G,gBAC3BtgB,EAAQ71F,KAAKg8C,KAAK65C,MAClBkgB,EAAa/1G,KAAK21G,YAAYI,UAClC/1G,MAAKo2G,iBAEL,KAAK,GAAI3vG,GAAI,EAAGA,EAAI4yG,EAAQ/yG,OAAQG,IAAK,CACvC,GAAImzF,GAASyf,EAAQ5yG,EACCF,UAAlBsvF,EAAM+D,GACJ/D,EAAM+D,GAAQ/1F,QAAQm0E,WAAY,IACpCh4E,KAAKo2G,eAAexc,IAClB0f,WAAa9+E,EAAGq7D,EAAM+D,GAAQp/D,EAAG/a,EAAGo2E,EAAM+D,GAAQn6E,IAEpDs2F,EAAWnc,GAAQp/D,EAAIx6B,KAAKm2G,eAAevc,GAAQ2f,GACnDxD,EAAWnc,GAAQn6E,EAAIzf,KAAKm2G,eAAevc,GAAQ4f,GACnD3jB,EAAM+D,GAAQp/D,EAAIx6B,KAAKm2G,eAAevc,GAAQp/D,EAC9Cq7D,EAAM+D,GAAQn6E,EAAIzf,KAAKm2G,eAAevc,GAAQn6E,SAGzCzf,MAAKm2G,eAAevc,OASjCjwF,IAAK,uBACL5E,MAAO,WACL,GAAI2hC,GAAKngC,OACLogC,EAAKpgC,OACLkzG,EAAOlzG,OACPsvF,EAAQ71F,KAAKg8C,KAAK65C,MAClB6jB,EAAY15G,KAAKo2G,eACjBlkD,EAAe,EAEnB,KAAK,GAAI0nC,KAAU55F,MAAKo2G,eACtB,GAAIp2G,KAAKo2G,eAAepwG,eAAe4zF,IAA6BrzF,SAAlBsvF,EAAM+D,KACtDlzD,EAAKmvD,EAAM+D,GAAQp/D,EAAIk/E,EAAU9f,GAAQ0f,UAAU9+E,EACnDmM,EAAKkvD,EAAM+D,GAAQn6E,EAAIi6F,EAAU9f,GAAQ0f,UAAU75F,EAEnDg6F,EAAOx0G,KAAKoxC,KAAKpxC,KAAK0U,IAAI+sB,EAAI,GAAKzhC,KAAK0U,IAAIgtB,EAAI,IAE5C8yE,EAAOvnD,GACT,OAAO,CAIb,QAAO,KAQTvoD,IAAK,YACL5E,MAAO,WASL,IAAK,GARD+wF,GAAc91F,KAAK21G,YAAYC,mBAC/B+B,EAAc33G,KAAK6D,QAAQ8zG,YAAc33G,KAAK6D,QAAQ8zG,YAAc,IACpEgC,EAAkB,EAClBC,EAAsB,EAGtBC,EAA4B,EAEvBpzG,EAAI,EAAGA,EAAIqvF,EAAYxvF,OAAQG,IAAK,CAC3C,GAAImzF,GAAS9D,EAAYrvF,GACrBqzG,EAAe95G,KAAK+5G,aAAangB,EAAQ+d,EAE7CgC,GAAkB10G,KAAKJ,IAAI80G,EAAiBG,GAC5CF,GAAuBE,EAIzB95G,KAAKw2G,wBAA0BoD,EAAsB9jB,EAAYxvF,OAASuzG,EAC1E75G,KAAK22G,WAAagD,EAAkB35G,KAAK6D,QAAQ+zG,eAYnDjuG,IAAK,eACL5E,MAAO,SAAsB60F,EAAQ+d,GACnC,GAAIn/E,GAAOx4B,KAAKg8C,KAAK65C,MAAM+D,GACvBqe,EAAWj4G,KAAKi4G,SAChBnC,EAAS91G,KAAK21G,YAAYG,OAC1BC,EAAa/1G,KAAK21G,YAAYI,UAKlC,IAFA/1G,KAAKm2G,eAAevc,IAAYp/D,EAAGhC,EAAKgC,EAAG/a,EAAG+Y,EAAK/Y,EAAG85F,GAAIxD,EAAWnc,GAAQp/D,EAAGg/E,GAAIzD,EAAWnc,GAAQn6E,GAEnG+Y,EAAK30B,QAAQ+5F,MAAMpjE,KAAM,EAAO,CAClC,GAAIkM,GAAK1mC,KAAKw4G,aAAanB,QAAUtB,EAAWnc,GAAQp/D,EACpDkL,GAAMowE,EAAOlc,GAAQp/D,EAAIkM,GAAMlO,EAAK30B,QAAQq6F,IAChD6X,GAAWnc,GAAQp/D,GAAKkL,EAAKuyE,EAC7BlC,EAAWnc,GAAQp/D,EAAIv1B,KAAK6R,IAAIi/F,EAAWnc,GAAQp/D,GAAKm9E,EAAc5B,EAAWnc,GAAQp/D,EAAI,EAAIm9E,GAAeA,EAAc5B,EAAWnc,GAAQp/D,EACjJhC,EAAKgC,GAAKu7E,EAAWnc,GAAQp/D,EAAIy9E,MAE/BnC,GAAOlc,GAAQp/D,EAAI,EACnBu7E,EAAWnc,GAAQp/D,EAAI,CAG3B,IAAIhC,EAAK30B,QAAQ+5F,MAAMn+E,KAAM,EAAO,CAClC,GAAIknB,GAAK3mC,KAAKw4G,aAAanB,QAAUtB,EAAWnc,GAAQn6E,EACpDkmB,GAAMmwE,EAAOlc,GAAQn6E,EAAIknB,GAAMnO,EAAK30B,QAAQq6F,IAChD6X,GAAWnc,GAAQn6E,GAAKkmB,EAAKsyE,EAC7BlC,EAAWnc,GAAQn6E,EAAIxa,KAAK6R,IAAIi/F,EAAWnc,GAAQn6E,GAAKk4F,EAAc5B,EAAWnc,GAAQn6E,EAAI,EAAIk4F,GAAeA,EAAc5B,EAAWnc,GAAQn6E,EACjJ+Y,EAAK/Y,GAAKs2F,EAAWnc,GAAQn6E,EAAIw4F,MAE/BnC,GAAOlc,GAAQn6E,EAAI,EACnBs2F,EAAWnc,GAAQn6E,EAAI,CAG3B,IAAIu6F,GAAgB/0G,KAAKoxC,KAAKpxC,KAAK0U,IAAIo8F,EAAWnc,GAAQp/D,EAAG,GAAKv1B,KAAK0U,IAAIo8F,EAAWnc,GAAQn6E,EAAG,GACjG,OAAOu6F,MAOTrwG,IAAK,kBACL5E,MAAO,WACL/E,KAAKu4G,cAAc0B,QACnBj6G,KAAKq4G,YAAY4B,QACjBj6G,KAAKs4G,YAAY2B,WAUnBtwG,IAAK,eACL5E,MAAO,WACL,GAAI8wF,GAAQ71F,KAAKg8C,KAAK65C,KACtB,KAAK,GAAIx1F,KAAMw1F,GACTA,EAAM7vF,eAAe3F,IACnBw1F,EAAMx1F,GAAIm6B,GAAKq7D,EAAMx1F,GAAIof,IAC3Bzf,KAAKq2G,YAAYh2G,IAAQm6B,EAAGq7D,EAAMx1F,GAAIwD,QAAQ+5F,MAAMpjE,EAAG/a,EAAGo2E,EAAMx1F,GAAIwD,QAAQ+5F,MAAMn+E,GAClFo2E,EAAMx1F,GAAIwD,QAAQ+5F,MAAMpjE,GAAI,EAC5Bq7D,EAAMx1F,GAAIwD,QAAQ+5F,MAAMn+E,GAAI,MAYpC9V,IAAK,sBACL5E,MAAO,WACL,GAAI8wF,GAAQ71F,KAAKg8C,KAAK65C,KACtB,KAAK,GAAIx1F,KAAMw1F,GACTA,EAAM7vF,eAAe3F,IACMkG,SAAzBvG,KAAKq2G,YAAYh2G,KACnBw1F,EAAMx1F,GAAIwD,QAAQ+5F,MAAMpjE,EAAIx6B,KAAKq2G,YAAYh2G,GAAIm6B,EACjDq7D,EAAMx1F,GAAIwD,QAAQ+5F,MAAMn+E,EAAIzf,KAAKq2G,YAAYh2G,GAAIof,EAIvDzf,MAAKq2G,kBAOP1sG,IAAK,YACL5E,MAAO,WACL,GAAIsxE,GAASr2E,KAET83G,EAAazxG,UAAUC,QAAU,GAAsBC,SAAjBF,UAAU,GAAmBrG,KAAK6D,QAAQg0G,cAAcC,WAAazxG,UAAU,EAOzH,OAL0B,gBAAfyxG,KACTt5F,QAAQu8B,IAAI,oFAAqF/6C,KAAK6D,QAAQg0G,cAAcC,YAC5HA,EAAa93G,KAAK6D,QAAQg0G,cAAcC,YAGS,IAA/C93G,KAAK21G,YAAYC,mBAAmBtvG,YACtCtG,KAAK82G,OAAQ,IAKf92G,KAAKu2G,iBAA2Bv2G,KAAK6D,QAAQ0yG,iBAG7Cv2G,KAAKg8C,KAAKE,QAAQzH,KAAK,gBAGvBz0C,KAAKg8F,iBAGLh8F,KAAK22G,YAAa,EAGlB32G,KAAKg8C,KAAKE,QAAQzH,KAAK,gBACvBz0C,KAAKk6G,iBAAmBpC,EAGpB93G,KAAK6D,QAAQg0G,cAAcG,oBAAqB,GAClDh4G,KAAKm6G,eAEPn6G,KAAK62G,wBAA0B,MAE/B3sG,YAAW,WACT,MAAOmsE,GAAO+jC,uBACb,OAQLzwG,IAAK,sBACL5E,MAAO,WAED/E,KAAK42G,wBAAyB,IAChC52G,KAAKg8C,KAAKE,QAAQzH,KAAK,oBACvBz0C,KAAK42G,sBAAuB,EAI9B,KADA,GAAIznF,GAAQ,EACLnvB,KAAK22G,cAAe,GAASxnF,EAAQnvB,KAAK6D,QAAQg0G,cAAcE,gBAAkB/3G,KAAK62G,wBAA0B72G,KAAKk6G,kBAC3Hl6G,KAAK64G,cACL1pF,GAGEnvB,MAAK22G,cAAe,GAAS32G,KAAK62G,wBAA0B72G,KAAKk6G,kBACnEl6G,KAAKg8C,KAAKE,QAAQzH,KAAK,yBAA2BqjE,WAAY93G,KAAK62G,wBAAyB/xG,MAAO9E,KAAKk6G,mBACxGhwG,WAAWlK,KAAKo6G,oBAAoBj+D,KAAKn8C,MAAO,IAEhDA,KAAKq6G,4BAST1wG,IAAK,yBACL5E,MAAO,WACL/E,KAAKg8C,KAAKE,QAAQzH,KAAK,gBACnBz0C,KAAK6D,QAAQg0G,cAAcl5D,OAAQ,GACrC3+C,KAAKg8C,KAAKE,QAAQzH,KAAK,OAGrBz0C,KAAK6D,QAAQg0G,cAAcG,oBAAqB,GAClDh4G,KAAKs6G,sBAGPt6G,KAAKg8C,KAAKE,QAAQzH,KAAK,+BACvBz0C,KAAKg8C,KAAKE,QAAQzH,KAAK,kBAEnBz0C,KAAK22G,cAAe,EACtB32G,KAAK24G,kBAEL34G,KAAK+7F,kBAGP/7F,KAAK82G,OAAQ,KAGfntG,IAAK,cACL5E,MAAO,SAAqBqpC,GAC1B,IAAK,GAAI3nC,GAAI,EAAGA,EAAIzG,KAAK21G,YAAYC,mBAAmBtvG,OAAQG,IAAK,CACnE,GAAI+xB,GAAOx4B,KAAKg8C,KAAK65C,MAAM71F,KAAK21G,YAAYC,mBAAmBnvG,IAC3DysD,EAAQlzD,KAAK21G,YAAYG,OAAO91G,KAAK21G,YAAYC,mBAAmBnvG,IACpEy4C,EAAS,GACTq7D,EAAc,IACdC,EAAYv1G,KAAKoxC,KAAKpxC,KAAK0U,IAAIu5C,EAAM14B,EAAG,GAAKv1B,KAAK0U,IAAIu5C,EAAM14B,EAAG,IAE/DK,EAAO51B,KAAKL,IAAIK,KAAKJ,IAAI,EAAG21G,GAAY,IACxCC,EAAY,EAAI5/E,EAEhBpuB,EAAQ9L,EAAKoN,UAAU,IAA0D,IAApD9I,KAAKL,IAAI,EAAGK,KAAKJ,IAAI,EAAG01G,EAAcC,KAAqB,IAAK,EAAG,EAEpGpsE,GAAIO,UAAY9T,EAChBuT,EAAIY,YAAcviC,EAClB2hC,EAAIa,YACJb,EAAIc,OAAO1W,EAAKgC,EAAGhC,EAAK/Y,GACxB2uB,EAAIe,OAAO3W,EAAKgC,EAAI0kB,EAASgU,EAAM14B,EAAGhC,EAAK/Y,EAAIy/B,EAASgU,EAAMzzC,GAC9D2uB,EAAI7J,QAEJ,IAAIyiB,GAAQ/hD,KAAKyjD,MAAMwK,EAAMzzC,EAAGyzC,EAAM14B,EACtC4T,GAAIiB,UAAY5iC,EAChB2hC,EAAI0kE,MAAMt6E,EAAKgC,EAAI0kB,EAASgU,EAAM14B,EAAIv1B,KAAKohC,IAAI2gB,GAASyzD,EAAWjiF,EAAK/Y,EAAIy/B,EAASgU,EAAMzzC,EAAIxa,KAAKihC,IAAI8gB,GAASyzD,EAAWzzD,EAAOyzD,GACnIrsE,EAAI9J,YAKHoxE,IAGT91G,GAAQ,WAAa81G,EACrB71G,EAAOD,QAAUA,EAAQ,YAIrB,SAASC,EAAQD,GAUrB,QAASgzE,GAAgBC,EAAUC,GAAe,KAAMD,YAAoBC,IAAgB,KAAM,IAAI5rE,WAAU,qCANhHE,OAAO2rE,eAAenzE,EAAS,cAC7BmF,OAAO,GAGT,IAAIiuE,GAAe,WAAe,QAASC,GAAiB/nE,EAAQrE,GAAS,IAAK,GAAIJ,GAAI,EAAGA,EAAII,EAAMP,OAAQG,IAAK,CAAE,GAAIysE,GAAarsE,EAAMJ,EAAIysE,GAAWC,WAAaD,EAAWC,aAAc,EAAOD,EAAWE,cAAe,EAAU,SAAWF,KAAYA,EAAWG,UAAW,GAAMjsE,OAAO2rE,eAAe7nE,EAAQgoE,EAAWvpE,IAAKupE,IAAiB,MAAO,UAAUJ,EAAaQ,EAAYC,GAAiJ,MAA9HD,IAAYL,EAAiBH,EAAY7/D,UAAWqgE,GAAiBC,GAAaN,EAAiBH,EAAaS,GAAqBT,MAI7hB4nC,EAAkB,WACpB,QAASA,GAAgB1+D,EAAM25D,EAAa9xG,GAC1C+uE,EAAgB5yE,KAAM06G,GAEtB16G,KAAKg8C,KAAOA,EACZh8C,KAAK21G,YAAcA,EACnB31G,KAAK26G,cACL36G,KAAK47B,WAAW/3B,GAChB7D,KAAK46G,WAAa,EA0dpB,MApdA5nC,GAAa0nC,IACX/wG,IAAK,aACL5E,MAAO,SAAoBlB,GACzB7D,KAAK6D,QAAUA,EACf7D,KAAK66G,cAAgB,EAAI76G,KAAK6D,QAAQmzG,MACtCh3G,KAAK86G,uBAAyB,EAAI71G,KAAKJ,IAAI,EAAGI,KAAKL,IAAI,EAAG5E,KAAK6D,QAAQyzG,kBAGzE3tG,IAAK,eACL5E,MAAO,WACL,GAAIy1B,GAAkC,IAA9Bv1B,KAAKihC,IAAIlmC,KAAK46G,aACtB,OAAOpgF,GAAIv1B,KAAKuK,MAAMgrB,MAUxB7wB,IAAK,QACL5E,MAAO,WACL,GAA2C,IAAvC/E,KAAK6D,QAAQozG,uBAA+Bj3G,KAAK21G,YAAYC,mBAAmBtvG,OAAS,EAAG,CAC9F,GAAIkyB,GAAOjyB,OACPsvF,EAAQ71F,KAAKg8C,KAAK65C,MAClBC,EAAc91F,KAAK21G,YAAYC,mBAC/BmF,EAAYjlB,EAAYxvF,OAGxBq0G,EAAgB36G,KAAKg7G,mBAAmBnlB,EAAOC,EAGnD91F,MAAK26G,cAAgBA,CAGrB,KAAK,GAAIl0G,GAAI,EAAOs0G,EAAJt0G,EAAeA,IAC7B+xB,EAAOq9D,EAAMC,EAAYrvF,IACrB+xB,EAAK30B,QAAQq6F,KAAO,IAEtBl+F,KAAKi7G,sBAAsBN,EAAcj7G,KAAKy3B,SAAS+jF,GAAI1iF,GAC3Dx4B,KAAKi7G,sBAAsBN,EAAcj7G,KAAKy3B,SAASgkF,GAAI3iF,GAC3Dx4B,KAAKi7G,sBAAsBN,EAAcj7G,KAAKy3B,SAASikF,GAAI5iF,GAC3Dx4B,KAAKi7G,sBAAsBN,EAAcj7G,KAAKy3B,SAASkkF,GAAI7iF,QAenE7uB,IAAK,wBACL5E,MAAO,SAA+Bu2G,EAAc9iF,GAElD,GAAI8iF,EAAaC,cAAgB,EAAG,CAClC,GAAI70E,GAAKngC,OACLogC,EAAKpgC,OACL0mC,EAAW1mC,MAGfmgC,GAAK40E,EAAaE,aAAahhF,EAAIhC,EAAKgC,EACxCmM,EAAK20E,EAAaE,aAAa/7F,EAAI+Y,EAAK/Y,EACxCwtB,EAAWhoC,KAAKoxC,KAAK3P,EAAKA,EAAKC,EAAKA,GAKhCsG,EAAWquE,EAAaG,SAAWz7G,KAAK66G,cAC1C76G,KAAK07G,iBAAiBzuE,EAAUvG,EAAIC,EAAInO,EAAM8iF,GAGX,IAA/BA,EAAaC,eACfv7G,KAAKi7G,sBAAsBK,EAAankF,SAAS+jF,GAAI1iF,GACrDx4B,KAAKi7G,sBAAsBK,EAAankF,SAASgkF,GAAI3iF,GACrDx4B,KAAKi7G,sBAAsBK,EAAankF,SAASikF,GAAI5iF,GACrDx4B,KAAKi7G,sBAAsBK,EAAankF,SAASkkF,GAAI7iF,IAGjD8iF,EAAankF,SAASpf,KAAK1X,IAAMm4B,EAAKn4B,IAExCL,KAAK07G,iBAAiBzuE,EAAUvG,EAAIC,EAAInO,EAAM8iF,OAkBxD3xG,IAAK,mBACL5E,MAAO,SAA0BkoC,EAAUvG,EAAIC,EAAInO,EAAM8iF,GACtC,IAAbruE,IACFA,EAAW,GACXvG,EAAKuG,GAGHjtC,KAAK86G,uBAAyB,IAChC7tE,EAAWhoC,KAAKJ,IAAI,GAAM7E,KAAK86G,uBAAyBtiF,EAAKgmE,MAAM/rD,OAAQxF,EAAWzU,EAAKgmE,MAAM/rD,QAKnG,IAAIkpE,GAAe37G,KAAK6D,QAAQozG,sBAAwBqE,EAAapd,KAAO1lE,EAAK30B,QAAQq6F,KAAOj5F,KAAK0U,IAAIszB,EAAU,GAC/G2uE,EAAKl1E,EAAKi1E,EACVE,EAAKl1E,EAAKg1E,CAEd37G,MAAK21G,YAAYG,OAAOt9E,EAAKn4B,IAAIm6B,GAAKohF,EACtC57G,KAAK21G,YAAYG,OAAOt9E,EAAKn4B,IAAIof,GAAKo8F,KAWxClyG,IAAK,qBACL5E,MAAO,SAA4B8wF,EAAOC,GAUxC,IAAK,GATDt9D,GAAOjyB,OACPw0G,EAAYjlB,EAAYxvF,OAExBw1G,EAAOjmB,EAAMC,EAAY,IAAIt7D,EAC7BuhF,EAAOlmB,EAAMC,EAAY,IAAIr2E,EAC7Bu8F,EAAOnmB,EAAMC,EAAY,IAAIt7D,EAC7ByhF,EAAOpmB,EAAMC,EAAY,IAAIr2E,EAGxBhZ,EAAI,EAAOs0G,EAAJt0G,EAAeA,IAAK,CAClC,GAAI+zB,GAAIq7D,EAAMC,EAAYrvF,IAAI+zB,EAC1B/a,EAAIo2E,EAAMC,EAAYrvF,IAAIgZ,CAC1Bo2E,GAAMC,EAAYrvF,IAAI5C,QAAQq6F,KAAO,IAC/B4d,EAAJthF,IACFshF,EAAOthF,GAELA,EAAIwhF,IACNA,EAAOxhF,GAEDuhF,EAAJt8F,IACFs8F,EAAOt8F,GAELA,EAAIw8F,IACNA,EAAOx8F,IAKb,GAAIgjF,GAAWx9F,KAAK6R,IAAIklG,EAAOF,GAAQ72G,KAAK6R,IAAImlG,EAAOF,EACnDtZ,GAAW,GACbsZ,GAAQ,GAAMtZ,EACdwZ,GAAQ,GAAMxZ,IAGZqZ,GAAQ,GAAMrZ,EACduZ,GAAQ,GAAMvZ,EAGlB,IAAIyZ,GAAkB,KAClBC,EAAWl3G,KAAKJ,IAAIq3G,EAAiBj3G,KAAK6R,IAAIklG,EAAOF,IACrDM,EAAe,GAAMD,EACrBh3B,EAAU,IAAO22B,EAAOE,GACxB92B,EAAU,IAAO62B,EAAOE,GAGxBtB,GACFj7G,MACE87G,cAAgBhhF,EAAG,EAAG/a,EAAG,GACzBy+E,KAAM,EACNnhD,OACE++D,KAAM32B,EAAUi3B,EAAcJ,KAAM72B,EAAUi3B,EAC9CL,KAAM72B,EAAUk3B,EAAcH,KAAM/2B,EAAUk3B,GAEhDvhF,KAAMshF,EACNV,SAAU,EAAIU,EACdhlF,UAAYpf,KAAM,MAClB00D,SAAU,EACVwxB,MAAO,EACPsd,cAAe,GAGnBv7G,MAAKq8G,aAAa1B,EAAcj7G,KAGhC,KAAK,GAAI+G,GAAI,EAAOs0G,EAAJt0G,EAAeA,IAC7B+xB,EAAOq9D,EAAMC,EAAYrvF,IACrB+xB,EAAK30B,QAAQq6F,KAAO,GACtBl+F,KAAKs8G,aAAa3B,EAAcj7G,KAAM84B,EAK1C,OAAOmiF,MAWThxG,IAAK,oBACL5E,MAAO,SAA2Bu2G,EAAc9iF,GAC9C,GAAI+jF,GAAYjB,EAAapd,KAAO1lE,EAAK30B,QAAQq6F,KAC7Cse,EAAe,EAAID,CAEvBjB,GAAaE,aAAahhF,EAAI8gF,EAAaE,aAAahhF,EAAI8gF,EAAapd,KAAO1lE,EAAKgC,EAAIhC,EAAK30B,QAAQq6F,KACtGod,EAAaE,aAAahhF,GAAKgiF,EAE/BlB,EAAaE,aAAa/7F,EAAI67F,EAAaE,aAAa/7F,EAAI67F,EAAapd,KAAO1lE,EAAK/Y,EAAI+Y,EAAK30B,QAAQq6F,KACtGod,EAAaE,aAAa/7F,GAAK+8F,EAE/BlB,EAAapd,KAAOqe,CACpB,IAAIE,GAAcx3G,KAAKJ,IAAII,KAAKJ,IAAI2zB,EAAK6C,OAAQ7C,EAAKia,QAASja,EAAK4C,MACpEkgF,GAAa7uC,SAAW6uC,EAAa7uC,SAAWgwC,EAAcA,EAAcnB,EAAa7uC,YAY3F9iE,IAAK,eACL5E,MAAO,SAAsBu2G,EAAc9iF,EAAMkkF,IACzB,GAAlBA,GAA6Cn2G,SAAnBm2G,IAE5B18G,KAAK28G,kBAAkBrB,EAAc9iF,GAGnC8iF,EAAankF,SAAS+jF,GAAGn+D,MAAMi/D,KAAOxjF,EAAKgC,EAEzC8gF,EAAankF,SAAS+jF,GAAGn+D,MAAMk/D,KAAOzjF,EAAK/Y,EAE7Czf,KAAK48G,eAAetB,EAAc9iF,EAAM,MAGxCx4B,KAAK48G,eAAetB,EAAc9iF,EAAM,MAItC8iF,EAAankF,SAAS+jF,GAAGn+D,MAAMk/D,KAAOzjF,EAAK/Y,EAE7Czf,KAAK48G,eAAetB,EAAc9iF,EAAM,MAGxCx4B,KAAK48G,eAAetB,EAAc9iF,EAAM,SAc9C7uB,IAAK,iBACL5E,MAAO,SAAwBu2G,EAAc9iF,EAAMqkF,GACjD,OAAQvB,EAAankF,SAAS0lF,GAAQtB,eACpC,IAAK,GAEHD,EAAankF,SAAS0lF,GAAQ1lF,SAASpf,KAAOygB,EAC9C8iF,EAAankF,SAAS0lF,GAAQtB,cAAgB,EAC9Cv7G,KAAK28G,kBAAkBrB,EAAankF,SAAS0lF,GAASrkF,EACtD,MACF,KAAK,GAIC8iF,EAAankF,SAAS0lF,GAAQ1lF,SAASpf,KAAKyiB,IAAMhC,EAAKgC,GAAK8gF,EAAankF,SAAS0lF,GAAQ1lF,SAASpf,KAAK0H,IAAM+Y,EAAK/Y,GACrH+Y,EAAKgC,GAAKx6B,KAAK88G,eACftkF,EAAK/Y,GAAKzf,KAAK88G,iBAEf98G,KAAKq8G,aAAaf,EAAankF,SAAS0lF,IACxC78G,KAAKs8G,aAAahB,EAAankF,SAAS0lF,GAASrkF,GAEnD,MACF,KAAK,GAEHx4B,KAAKs8G,aAAahB,EAAankF,SAAS0lF,GAASrkF,OAavD7uB,IAAK,eACL5E,MAAO,SAAsBu2G,GAE3B,GAAIyB,GAAgB,IACe,KAA/BzB,EAAaC,gBACfwB,EAAgBzB,EAAankF,SAASpf,KACtCujG,EAAapd,KAAO,EACpBod,EAAaE,aAAahhF,EAAI,EAC9B8gF,EAAaE,aAAa/7F,EAAI,GAEhC67F,EAAaC,cAAgB,EAC7BD,EAAankF,SAASpf,KAAO,KAC7B/X,KAAKg9G,cAAc1B,EAAc,MACjCt7G,KAAKg9G,cAAc1B,EAAc,MACjCt7G,KAAKg9G,cAAc1B,EAAc,MACjCt7G,KAAKg9G,cAAc1B,EAAc,MAEZ,MAAjByB,GACF/8G,KAAKs8G,aAAahB,EAAcyB,MAepCpzG,IAAK,gBACL5E,MAAO,SAAuBu2G,EAAcuB,GAC1C,GAAIf,GAAOv1G,OACPy1G,EAAOz1G,OACPw1G,EAAOx1G,OACP01G,EAAO11G,OACP02G,EAAY,GAAM3B,EAAazgF,IACnC,QAAQgiF,GACN,IAAK,KACHf,EAAOR,EAAav+D,MAAM++D,KAC1BE,EAAOV,EAAav+D,MAAM++D,KAAOmB,EACjClB,EAAOT,EAAav+D,MAAMg/D,KAC1BE,EAAOX,EAAav+D,MAAMg/D,KAAOkB,CACjC,MACF,KAAK,KACHnB,EAAOR,EAAav+D,MAAM++D,KAAOmB,EACjCjB,EAAOV,EAAav+D,MAAMi/D,KAC1BD,EAAOT,EAAav+D,MAAMg/D,KAC1BE,EAAOX,EAAav+D,MAAMg/D,KAAOkB,CACjC,MACF,KAAK,KACHnB,EAAOR,EAAav+D,MAAM++D,KAC1BE,EAAOV,EAAav+D,MAAM++D,KAAOmB,EACjClB,EAAOT,EAAav+D,MAAMg/D,KAAOkB,EACjChB,EAAOX,EAAav+D,MAAMk/D,IAC1B,MACF,KAAK,KACHH,EAAOR,EAAav+D,MAAM++D,KAAOmB,EACjCjB,EAAOV,EAAav+D,MAAMi/D,KAC1BD,EAAOT,EAAav+D,MAAMg/D,KAAOkB,EACjChB,EAAOX,EAAav+D,MAAMk/D,KAI9BX,EAAankF,SAAS0lF,IACpBrB,cAAgBhhF,EAAG,EAAG/a,EAAG,GACzBy+E,KAAM,EACNnhD,OAAS++D,KAAMA,EAAME,KAAMA,EAAMD,KAAMA,EAAME,KAAMA,GACnDphF,KAAM,GAAMygF,EAAazgF,KACzB4gF,SAAU,EAAIH,EAAaG,SAC3BtkF,UAAYpf,KAAM,MAClB00D,SAAU,EACVwxB,MAAOqd,EAAard,MAAQ,EAC5Bsd,cAAe,MAcnB5xG,IAAK,SACL5E,MAAO,SAAgBqpC,EAAK3hC,GACClG,SAAvBvG,KAAK26G,gBAEPvsE,EAAIO,UAAY,EAEhB3uC,KAAKk9G,YAAYl9G,KAAK26G,cAAcj7G,KAAM0uC,EAAK3hC,OAanD9C,IAAK,cACL5E,MAAO,SAAqBo4G,EAAQ/uE,EAAK3hC,GACzBlG,SAAVkG,IACFA,EAAQ,WAGmB,IAAzB0wG,EAAO5B,gBACTv7G,KAAKk9G,YAAYC,EAAOhmF,SAAS+jF,GAAI9sE,GACrCpuC,KAAKk9G,YAAYC,EAAOhmF,SAASgkF,GAAI/sE,GACrCpuC,KAAKk9G,YAAYC,EAAOhmF,SAASkkF,GAAIjtE,GACrCpuC,KAAKk9G,YAAYC,EAAOhmF,SAASikF,GAAIhtE,IAEvCA,EAAIY,YAAcviC,EAClB2hC,EAAIa,YACJb,EAAIc,OAAOiuE,EAAOpgE,MAAM++D,KAAMqB,EAAOpgE,MAAMg/D,MAC3C3tE,EAAIe,OAAOguE,EAAOpgE,MAAMi/D,KAAMmB,EAAOpgE,MAAMg/D,MAC3C3tE,EAAI7J,SAEJ6J,EAAIa,YACJb,EAAIc,OAAOiuE,EAAOpgE,MAAMi/D,KAAMmB,EAAOpgE,MAAMg/D,MAC3C3tE,EAAIe,OAAOguE,EAAOpgE,MAAMi/D,KAAMmB,EAAOpgE,MAAMk/D,MAC3C7tE,EAAI7J,SAEJ6J,EAAIa,YACJb,EAAIc,OAAOiuE,EAAOpgE,MAAMi/D,KAAMmB,EAAOpgE,MAAMk/D,MAC3C7tE,EAAIe,OAAOguE,EAAOpgE,MAAM++D,KAAMqB,EAAOpgE,MAAMk/D,MAC3C7tE,EAAI7J,SAEJ6J,EAAIa,YACJb,EAAIc,OAAOiuE,EAAOpgE,MAAM++D,KAAMqB,EAAOpgE,MAAMk/D,MAC3C7tE,EAAIe,OAAOguE,EAAOpgE,MAAM++D,KAAMqB,EAAOpgE,MAAMg/D,MAC3C3tE,EAAI7J,aAWDm2E,IAGT96G,GAAQ,WAAa86G,EACrB76G,EAAOD,QAAUA,EAAQ,YAIrB,SAASC,EAAQD,GAUrB,QAASgzE,GAAgBC,EAAUC,GAAe,KAAMD,YAAoBC,IAAgB,KAAM,IAAI5rE,WAAU,qCANhHE,OAAO2rE,eAAenzE,EAAS,cAC7BmF,OAAO,GAGT,IAAIiuE,GAAe,WAAe,QAASC,GAAiB/nE,EAAQrE,GAAS,IAAK,GAAIJ,GAAI,EAAGA,EAAII,EAAMP,OAAQG,IAAK,CAAE,GAAIysE,GAAarsE,EAAMJ,EAAIysE,GAAWC,WAAaD,EAAWC,aAAc,EAAOD,EAAWE,cAAe,EAAU,SAAWF,KAAYA,EAAWG,UAAW,GAAMjsE,OAAO2rE,eAAe7nE,EAAQgoE,EAAWvpE,IAAKupE,IAAiB,MAAO,UAAUJ,EAAaQ,EAAYC,GAAiJ,MAA9HD,IAAYL,EAAiBH,EAAY7/D,UAAWqgE,GAAiBC,GAAaN,EAAiBH,EAAaS,GAAqBT,MAI7hBsqC,EAAkB,WACpB,QAASA,GAAgBphE,EAAM25D,EAAa9xG,GAC1C+uE,EAAgB5yE,KAAMo9G,GAEtBp9G,KAAKg8C,KAAOA,EACZh8C,KAAK21G,YAAcA,EACnB31G,KAAK47B,WAAW/3B,GAqElB,MAlEAmvE,GAAaoqC,IACXzzG,IAAK,aACL5E,MAAO,SAAoBlB,GACzB7D,KAAK6D,QAAUA,KAUjB8F,IAAK,QACL5E,MAAO,WAgBL,IAAK,GAfD2hC,GAAIC,EAAIsG,EAAU2uE,EAAIC,EAAIwB,EAAgBtQ,EAAOC,EAEjDnX,EAAQ71F,KAAKg8C,KAAK65C,MAClBC,EAAc91F,KAAK21G,YAAYC,mBAC/BE,EAAS91G,KAAK21G,YAAYG,OAG1B2B,EAAez3G,KAAK6D,QAAQ4zG,aAG5BvxG,EAAI,GAAK,EAAIuxG,EACbtxG,EAAI,EAAI,EAIHM,EAAI,EAAGA,EAAIqvF,EAAYxvF,OAAS,EAAGG,IAAK,CAC/CsmG,EAAQlX,EAAMC,EAAYrvF,GAC1B,KAAK,GAAIgK,GAAIhK,EAAI,EAAGgK,EAAIqlF,EAAYxvF,OAAQmK,IAC1Cu8F,EAAQnX,EAAMC,EAAYrlF,IAE1Bi2B,EAAKsmE,EAAMxyE,EAAIuyE,EAAMvyE,EACrBmM,EAAKqmE,EAAMvtF,EAAIstF,EAAMttF,EACrBwtB,EAAWhoC,KAAKoxC,KAAK3P,EAAKA,EAAKC,EAAKA,GAGnB,IAAbsG,IACFA,EAAW,GAAMhoC,KAAK2zB,SACtB8N,EAAKuG,GAGQ,EAAIwqE,EAAfxqE,IAEAowE,EADa,GAAM5F,EAAjBxqE,EACe,EAEA/mC,EAAI+mC,EAAW9mC,EAElCk3G,GAAkCpwE,EAElC2uE,EAAKl1E,EAAK22E,EACVxB,EAAKl1E,EAAK02E,EAEVvH,EAAO/I,EAAM1sG,IAAIm6B,GAAKohF,EACtB9F,EAAO/I,EAAM1sG,IAAIof,GAAKo8F,EACtB/F,EAAO9I,EAAM3sG,IAAIm6B,GAAKohF,EACtB9F,EAAO9I,EAAM3sG,IAAIof,GAAKo8F,QAOzBuB,IAGTx9G,GAAQ,WAAaw9G,EACrBv9G,EAAOD,QAAUA,EAAQ,YAIrB,SAASC,EAAQD,GAUrB,QAASgzE,GAAgBC,EAAUC,GAAe,KAAMD,YAAoBC,IAAgB,KAAM,IAAI5rE,WAAU,qCANhHE,OAAO2rE,eAAenzE,EAAS,cAC7BmF,OAAO,GAGT,IAAIiuE,GAAe,WAAe,QAASC,GAAiB/nE,EAAQrE,GAAS,IAAK,GAAIJ,GAAI,EAAGA,EAAII,EAAMP,OAAQG,IAAK,CAAE,GAAIysE,GAAarsE,EAAMJ,EAAIysE,GAAWC,WAAaD,EAAWC,aAAc,EAAOD,EAAWE,cAAe,EAAU,SAAWF,KAAYA,EAAWG,UAAW,GAAMjsE,OAAO2rE,eAAe7nE,EAAQgoE,EAAWvpE,IAAKupE,IAAiB,MAAO,UAAUJ,EAAaQ,EAAYC,GAAiJ,MAA9HD,IAAYL,EAAiBH,EAAY7/D,UAAWqgE,GAAiBC,GAAaN,EAAiBH,EAAaS,GAAqBT,MAI7hBwqC,EAA8B,WAChC,QAASA,GAA4BthE,EAAM25D,EAAa9xG,GACtD+uE,EAAgB5yE,KAAMs9G,GAEtBt9G,KAAKg8C,KAAOA,EACZh8C,KAAK21G,YAAcA,EACnB31G,KAAK47B,WAAW/3B,GAiElB,MA9DAmvE,GAAasqC,IACX3zG,IAAK,aACL5E,MAAO,SAAoBlB,GACzB7D,KAAK6D,QAAUA,KAUjB8F,IAAK,QACL5E,MAAO,WACL,GAAI2hC,GAAIC,EAAIsG,EAAU2uE,EAAIC,EAAIwB,EAAgBtQ,EAAOC,EAAOvmG,EAAGgK,EAE3DolF,EAAQ71F,KAAKg8C,KAAK65C,MAClBC,EAAc91F,KAAK21G,YAAYC,mBAC/BE,EAAS91G,KAAK21G,YAAYG,OAG1B2B,EAAez3G,KAAK6D,QAAQ4zG,YAIhC,KAAKhxG,EAAI,EAAGA,EAAIqvF,EAAYxvF,OAAS,EAAGG,IAEtC,IADAsmG,EAAQlX,EAAMC,EAAYrvF,IACrBgK,EAAIhK,EAAI,EAAGgK,EAAIqlF,EAAYxvF,OAAQmK,IAItC,GAHAu8F,EAAQnX,EAAMC,EAAYrlF,IAGtBs8F,EAAM9O,QAAU+O,EAAM/O,MAAO,CAC/Bv3D,EAAKsmE,EAAMxyE,EAAIuyE,EAAMvyE,EACrBmM,EAAKqmE,EAAMvtF,EAAIstF,EAAMttF,EACrBwtB,EAAWhoC,KAAKoxC,KAAK3P,EAAKA,EAAKC,EAAKA,EAEpC,IAAI42E,GAAY,GAEdF,GADa5F,EAAXxqE,GACgBhoC,KAAK0U,IAAI4jG,EAAYtwE,EAAU,GAAKhoC,KAAK0U,IAAI4jG,EAAY9F,EAAc,GAExE,EAGF,IAAbxqE,EACFA,EAAW,IAEXowE,GAAkCpwE,EAEpC2uE,EAAKl1E,EAAK22E,EACVxB,EAAKl1E,EAAK02E,EAEVvH,EAAO/I,EAAM1sG,IAAIm6B,GAAKohF,EACtB9F,EAAO/I,EAAM1sG,IAAIof,GAAKo8F,EACtB/F,EAAO9I,EAAM3sG,IAAIm6B,GAAKohF,EACtB9F,EAAO9I,EAAM3sG,IAAIof,GAAKo8F,OAOzByB,IAGT19G,GAAQ,WAAa09G,EACrBz9G,EAAOD,QAAUA,EAAQ,YAIrB,SAASC,EAAQD,GAUrB,QAASgzE,GAAgBC,EAAUC,GAAe,KAAMD,YAAoBC,IAAgB,KAAM,IAAI5rE,WAAU,qCANhHE,OAAO2rE,eAAenzE,EAAS,cAC7BmF,OAAO,GAGT,IAAIiuE,GAAe,WAAe,QAASC,GAAiB/nE,EAAQrE,GAAS,IAAK,GAAIJ,GAAI,EAAGA,EAAII,EAAMP,OAAQG,IAAK,CAAE,GAAIysE,GAAarsE,EAAMJ,EAAIysE,GAAWC,WAAaD,EAAWC,aAAc,EAAOD,EAAWE,cAAe,EAAU,SAAWF,KAAYA,EAAWG,UAAW,GAAMjsE,OAAO2rE,eAAe7nE,EAAQgoE,EAAWvpE,IAAKupE,IAAiB,MAAO,UAAUJ,EAAaQ,EAAYC,GAAiJ,MAA9HD,IAAYL,EAAiBH,EAAY7/D,UAAWqgE,GAAiBC,GAAaN,EAAiBH,EAAaS,GAAqBT,MAI7hB0qC,EAAe,WACjB,QAASA,GAAaxhE,EAAM25D,EAAa9xG,GACvC+uE,EAAgB5yE,KAAMw9G,GAEtBx9G,KAAKg8C,KAAOA,EACZh8C,KAAK21G,YAAcA,EACnB31G,KAAK47B,WAAW/3B,GAoFlB,MAjFAmvE,GAAawqC,IACX7zG,IAAK,aACL5E,MAAO,SAAoBlB,GACzB7D,KAAK6D,QAAUA,KASjB8F,IAAK,QACL5E,MAAO,WAUL,IAAK,GATD04G,GAAal3G,OACb+1F,EAAO/1F,OACPyvF,EAAch2F,KAAK21G,YAAYE,mBAC/B9f,EAAQ/1F,KAAKg8C,KAAK+5C,MAClBgX,EAAQxmG,OACRymG,EAAQzmG,OACRm3G,EAAQn3G,OAGHE,EAAI,EAAGA,EAAIuvF,EAAY1vF,OAAQG,IACtC61F,EAAOvG,EAAMC,EAAYvvF,IACrB61F,EAAK6P,aAAc,GAAQ7P,EAAKuD,OAASvD,EAAKwD,QAEbv5F,SAA/BvG,KAAKg8C,KAAK65C,MAAMyG,EAAKuD,OAAwDt5F,SAAjCvG,KAAKg8C,KAAK65C,MAAMyG,EAAKwD,UACzCv5F,SAAtB+1F,EAAKiP,SAASkB,KAChBgR,EAAqCl3G,SAAxB+1F,EAAKz4F,QAAQyC,OAAuBtG,KAAK6D,QAAQszG,aAAe7a,EAAKz4F,QAAQyC,OAC1FymG,EAAQzQ,EAAKpnF,GACb83F,EAAQ1Q,EAAKiP,SAASkB,IACtBiR,EAAQphB,EAAKnnF,KAEbnV,KAAK29G,sBAAsB5Q,EAAOC,EAAO,GAAMyQ,GAC/Cz9G,KAAK29G,sBAAsB3Q,EAAO0Q,EAAO,GAAMD,KAI/CA,EAAqCl3G,SAAxB+1F,EAAKz4F,QAAQyC,OAAmD,IAA5BtG,KAAK6D,QAAQszG,aAAqB7a,EAAKz4F,QAAQyC,OAChGtG,KAAK29G,sBAAsBrhB,EAAKnnF,KAAMmnF,EAAKpnF,GAAIuoG,QAgBzD9zG,IAAK,wBACL5E,MAAO,SAA+BgoG,EAAOC,EAAOyQ,GAClD,GAAI/2E,GAAKqmE,EAAMvyE,EAAIwyE,EAAMxyE,EACrBmM,EAAKomE,EAAMttF,EAAIutF,EAAMvtF,EACrBwtB,EAAWhoC,KAAKJ,IAAII,KAAKoxC,KAAK3P,EAAKA,EAAKC,EAAKA,GAAK,KAGlDi3E,EAAc59G,KAAK6D,QAAQuzG,gBAAkBqG,EAAaxwE,GAAYA,EAEtE2uE,EAAKl1E,EAAKk3E,EACV/B,EAAKl1E,EAAKi3E,CAG4Br3G,UAAtCvG,KAAK21G,YAAYG,OAAO/I,EAAM1sG,MAChCL,KAAK21G,YAAYG,OAAO/I,EAAM1sG,IAAIm6B,GAAKohF,EACvC57G,KAAK21G,YAAYG,OAAO/I,EAAM1sG,IAAIof,GAAKo8F,GAGCt1G,SAAtCvG,KAAK21G,YAAYG,OAAO9I,EAAM3sG,MAChCL,KAAK21G,YAAYG,OAAO9I,EAAM3sG,IAAIm6B,GAAKohF,EACvC57G,KAAK21G,YAAYG,OAAO9I,EAAM3sG,IAAIof,GAAKo8F,OAKtC2B,IAGT59G,GAAQ,WAAa49G,EACrB39G,EAAOD,QAAUA,EAAQ,YAIrB,SAASC,EAAQD,GAUrB,QAASgzE,GAAgBC,EAAUC,GAAe,KAAMD,YAAoBC,IAAgB,KAAM,IAAI5rE,WAAU,qCANhHE,OAAO2rE,eAAenzE,EAAS,cAC7BmF,OAAO,GAGT,IAAIiuE,GAAe,WAAe,QAASC,GAAiB/nE,EAAQrE,GAAS,IAAK,GAAIJ,GAAI,EAAGA,EAAII,EAAMP,OAAQG,IAAK,CAAE,GAAIysE,GAAarsE,EAAMJ,EAAIysE,GAAWC,WAAaD,EAAWC,aAAc,EAAOD,EAAWE,cAAe,EAAU,SAAWF,KAAYA,EAAWG,UAAW,GAAMjsE,OAAO2rE,eAAe7nE,EAAQgoE,EAAWvpE,IAAKupE,IAAiB,MAAO,UAAUJ,EAAaQ,EAAYC,GAAiJ,MAA9HD,IAAYL,EAAiBH,EAAY7/D,UAAWqgE,GAAiBC,GAAaN,EAAiBH,EAAaS,GAAqBT,MAI7hB+qC,EAA2B,WAC7B,QAASA,GAAyB7hE,EAAM25D,EAAa9xG,GACnD+uE,EAAgB5yE,KAAM69G,GAEtB79G,KAAKg8C,KAAOA,EACZh8C,KAAK21G,YAAcA,EACnB31G,KAAK47B,WAAW/3B,GAuGlB,MApGAmvE,GAAa6qC,IACXl0G,IAAK,aACL5E,MAAO,SAAoBlB,GACzB7D,KAAK6D,QAAUA,KASjB8F,IAAK,QACL5E,MAAO,WAWL,IAAK,GAVD04G,GAAYnhB,EACZ51D,EAAIC,EAAIi1E,EAAIC,EAAI+B,EAAa3wE,EAC7B8oD,EAAQ/1F,KAAKg8C,KAAK+5C,MAClB72C,EAAS,GAET82C,EAAch2F,KAAK21G,YAAYE,mBAC/B/f,EAAc91F,KAAK21G,YAAYC,mBAC/BE,EAAS91G,KAAK21G,YAAYG,OAGrBrvG,EAAI,EAAGA,EAAIqvF,EAAYxvF,OAAQG,IAAK,CAC3C,GAAImzF,GAAS9D,EAAYrvF,EACzBqvG,GAAOlc,GAAQkkB,SAAW,EAC1BhI,EAAOlc,GAAQmkB,SAAW,EAI5B,IAAK,GAAIt3G,GAAI,EAAGA,EAAIuvF,EAAY1vF,OAAQG,IACtC61F,EAAOvG,EAAMC,EAAYvvF,IACrB61F,EAAK6P,aAAc,IACrBsR,EAAqCl3G,SAAxB+1F,EAAKz4F,QAAQyC,OAAuBtG,KAAK6D,QAAQszG,aAAe7a,EAAKz4F,QAAQyC,OAE1FogC,EAAK41D,EAAKnnF,KAAKqlB,EAAI8hE,EAAKpnF,GAAGslB,EAC3BmM,EAAK21D,EAAKnnF,KAAKsK,EAAI68E,EAAKpnF,GAAGuK,EAC3BwtB,EAAWhoC,KAAKoxC,KAAK3P,EAAKA,EAAKC,EAAKA,GACpCsG,EAAwB,IAAbA,EAAiB,IAAOA,EAGnC2wE,EAAc59G,KAAK6D,QAAQuzG,gBAAkBqG,EAAaxwE,GAAYA,EAEtE2uE,EAAKl1E,EAAKk3E,EACV/B,EAAKl1E,EAAKi3E,EAENthB,EAAKpnF,GAAG+oF,OAAS3B,EAAKnnF,KAAK8oF,OACH13F,SAAtBuvG,EAAOxZ,EAAKuD,QACdiW,EAAOxZ,EAAKuD,MAAMie,UAAYlC,EAC9B9F,EAAOxZ,EAAKuD,MAAMke,UAAYlC,GAEJt1G,SAAxBuvG,EAAOxZ,EAAKwD,UACdgW,EAAOxZ,EAAKwD,QAAQge,UAAYlC,EAChC9F,EAAOxZ,EAAKwD,QAAQie,UAAYlC,KAGRt1G,SAAtBuvG,EAAOxZ,EAAKuD,QACdiW,EAAOxZ,EAAKuD,MAAMrlE,GAAK0kB,EAAS08D,EAChC9F,EAAOxZ,EAAKuD,MAAMpgF,GAAKy/B,EAAS28D,GAENt1G,SAAxBuvG,EAAOxZ,EAAKwD,UACdgW,EAAOxZ,EAAKwD,QAAQtlE,GAAK0kB,EAAS08D,EAClC9F,EAAOxZ,EAAKwD,QAAQrgF,GAAKy/B,EAAS28D,IAS1C,KAAK,GADDiC,GAAUC,EADVH,EAAc,EAETn3G,EAAI,EAAGA,EAAIqvF,EAAYxvF,OAAQG,IAAK,CAC3C,GAAImzF,GAAS9D,EAAYrvF,EACzBq3G,GAAW74G,KAAKL,IAAIg5G,EAAa34G,KAAKJ,KAAK+4G,EAAa9H,EAAOlc,GAAQkkB,WACvEC,EAAW94G,KAAKL,IAAIg5G,EAAa34G,KAAKJ,KAAK+4G,EAAa9H,EAAOlc,GAAQmkB,WAEvEjI,EAAOlc,GAAQp/D,GAAKsjF,EACpBhI,EAAOlc,GAAQn6E,GAAKs+F,EAMtB,IAAK,GAFDC,GAAU,EACVC,EAAU,EACLx3G,EAAI,EAAGA,EAAIqvF,EAAYxvF,OAAQG,IAAK,CAC3C,GAAImzF,GAAS9D,EAAYrvF,EACzBu3G,IAAWlI,EAAOlc,GAAQp/D,EAC1ByjF,GAAWnI,EAAOlc,GAAQn6E,EAK5B,IAAK,GAHDy+F,GAAeF,EAAUloB,EAAYxvF,OACrC63G,EAAeF,EAAUnoB,EAAYxvF,OAEhCG,EAAI,EAAGA,EAAIqvF,EAAYxvF,OAAQG,IAAK,CAC3C,GAAImzF,GAAS9D,EAAYrvF,EACzBqvG,GAAOlc,GAAQp/D,GAAK0jF,EACpBpI,EAAOlc,GAAQn6E,GAAK0+F,OAKnBN,IAGTj+G,GAAQ,WAAai+G,EACrBh+G,EAAOD,QAAUA,EAAQ,YAIrB,SAASC,EAAQD,GAUrB,QAASgzE,GAAgBC,EAAUC,GAAe,KAAMD,YAAoBC,IAAgB,KAAM,IAAI5rE,WAAU,qCANhHE,OAAO2rE,eAAenzE,EAAS,cAC7BmF,OAAO,GAGT,IAAIiuE,GAAe,WAAe,QAASC,GAAiB/nE,EAAQrE,GAAS,IAAK,GAAIJ,GAAI,EAAGA,EAAII,EAAMP,OAAQG,IAAK,CAAE,GAAIysE,GAAarsE,EAAMJ,EAAIysE,GAAWC,WAAaD,EAAWC,aAAc,EAAOD,EAAWE,cAAe,EAAU,SAAWF,KAAYA,EAAWG,UAAW,GAAMjsE,OAAO2rE,eAAe7nE,EAAQgoE,EAAWvpE,IAAKupE,IAAiB,MAAO,UAAUJ,EAAaQ,EAAYC,GAAiJ,MAA9HD,IAAYL,EAAiBH,EAAY7/D,UAAWqgE,GAAiBC,GAAaN,EAAiBH,EAAaS,GAAqBT,MAI7hBsrC,EAAuB,WACzB,QAASA,GAAqBpiE,EAAM25D,EAAa9xG,GAC/C+uE,EAAgB5yE,KAAMo+G,GAEtBp+G,KAAKg8C,KAAOA,EACZh8C,KAAK21G,YAAcA,EACnB31G,KAAK47B,WAAW/3B,GA2ClB,MAxCAmvE,GAAaorC,IACXz0G,IAAK,aACL5E,MAAO,SAAoBlB,GACzB7D,KAAK6D,QAAUA,KAGjB8F,IAAK,QACL5E,MAAO,WASL,IAAK,GARD2hC,GAAKngC,OACLogC,EAAKpgC,OACL0mC,EAAW1mC,OACXiyB,EAAOjyB,OACPsvF,EAAQ71F,KAAKg8C,KAAK65C,MAClBC,EAAc91F,KAAK21G,YAAYC,mBAC/BE,EAAS91G,KAAK21G,YAAYG,OAErBrvG,EAAI,EAAGA,EAAIqvF,EAAYxvF,OAAQG,IAAK,CAC3C,GAAImzF,GAAS9D,EAAYrvF,EACzB+xB,GAAOq9D,EAAM+D,GACblzD,GAAMlO,EAAKgC,EACXmM,GAAMnO,EAAK/Y,EACXwtB,EAAWhoC,KAAKoxC,KAAK3P,EAAKA,EAAKC,EAAKA,GAEpC3mC,KAAK07G,iBAAiBzuE,EAAUvG,EAAIC,EAAImvE,EAAQt9E,OASpD7uB,IAAK,mBACL5E,MAAO,SAA0BkoC,EAAUvG,EAAIC,EAAImvE,EAAQt9E,GACzD,GAAImjF,GAA4B,IAAb1uE,EAAiB,EAAIjtC,KAAK6D,QAAQqzG,eAAiBjqE,CACtE6oE,GAAOt9E,EAAKn4B,IAAIm6B,EAAIkM,EAAKi1E,EACzB7F,EAAOt9E,EAAKn4B,IAAIof,EAAIknB,EAAKg1E,MAItByC,IAGTx+G,GAAQ,WAAaw+G,EACrBv+G,EAAOD,QAAUA,EAAQ,YAIrB,SAASC,EAAQD,EAASM,GAY9B,QAASuyE,GAAuB3sE,GAAO,MAAOA,IAAOA,EAAI4sE,WAAa5sE,GAAQ6sE,UAAW7sE,GAEzF,QAAS8sE,GAAgBC,EAAUC,GAAe,KAAMD,YAAoBC,IAAgB,KAAM,IAAI5rE,WAAU,qCAEhH,QAAS89F,GAAUC,EAAUC,GAAc,GAA0B,kBAAfA,IAA4C,OAAfA,EAAuB,KAAM,IAAIh+F,WAAU,iEAAoEg+F,GAAeD,GAAShyF,UAAY7L,OAAOgJ,OAAO80F,GAAcA,EAAWjyF,WAAa9L,aAAepC,MAAOkgG,EAAU9xB,YAAY,EAAOE,UAAU,EAAMD,cAAc,KAAe8xB,IAAY99F,OAAO+9F,eAAiB/9F,OAAO+9F,eAAeF,EAAUC,GAAcD,EAASG,UAAYF,GAZje99F,OAAO2rE,eAAenzE,EAAS,cAC7BmF,OAAO,GAGT,IAAIiuE,GAAe,WAAe,QAASC,GAAiB/nE,EAAQrE,GAAS,IAAK,GAAIJ,GAAI,EAAGA,EAAII,EAAMP,OAAQG,IAAK,CAAE,GAAIysE,GAAarsE,EAAMJ,EAAIysE,GAAWC,WAAaD,EAAWC,aAAc,EAAOD,EAAWE,cAAe,EAAU,SAAWF,KAAYA,EAAWG,UAAW,GAAMjsE,OAAO2rE,eAAe7nE,EAAQgoE,EAAWvpE,IAAKupE,IAAiB,MAAO,UAAUJ,EAAaQ,EAAYC,GAAiJ,MAA9HD,IAAYL,EAAiBH,EAAY7/D,UAAWqgE,GAAiBC,GAAaN,EAAiBH,EAAaS,GAAqBT,MAE7hBuyB,EAAO,SAAaC,EAAIC,EAAKC,GAAqC,IAA9B,GAAIC,IAAS,EAAwBA,GAAQ,CAAE,GAAIrhG,GAASkhG,EAAIvhD,EAAWwhD,EAAKG,EAAWF,CAAKC,IAAS,EAAsB,OAAXrhG,IAAiBA,EAASmW,SAAStH,UAAW,IAAI0yF,GAAOv+F,OAAOw+F,yBAAyBxhG,EAAQ2/C,EAAW,IAAax9C,SAATo/F,EAAJ,CAA4O,GAAI,SAAWA,GAAQ,MAAOA,GAAK5gG,KAAgB,IAAI0mB,GAASk6E,EAAKhyE,GAAK,IAAeptB,SAAXklB,EAAwB,MAAoB,OAAOA,GAAOlrB,KAAKmlG,GAA/V,GAAIn6F,GAASnE,OAAOy+F,eAAezhG,EAAS,IAAe,OAAXmH,EAAmB,MAA2B+5F,GAAK/5F,EAAQg6F,EAAMxhD,EAAUyhD,EAAME,EAAUD,GAAS,EAAME,EAAOp6F,EAAShF,SAQxc83G,EAAoBn+G,EAAoB,IAExCo+G,EAAoB7rC,EAAuB4rC,GAE3CE,EAAkC,SAAWC,GAG/C,QAASD,GAAgCviE,EAAM25D,EAAa9xG,GAC1D+uE,EAAgB5yE,KAAMu+G,GAEtBlZ,EAAKj+F,OAAOy+F,eAAe0Y,EAAgCtrG,WAAY,cAAejT,MAAMO,KAAKP,KAAMg8C,EAAM25D,EAAa9xG,GAsC5H,MA3CAmhG,GAAUuZ,EAAiCC,GAmB3CxrC,EAAaurC,IACX50G,IAAK,mBACL5E,MAAO,SAA0BkoC,EAAUvG,EAAIC,EAAInO,EAAM8iF,GACtC,IAAbruE,IACFA,EAAW,GAAMhoC,KAAK2zB,SACtB8N,EAAKuG,GAGHjtC,KAAK86G,uBAAyB,IAChC7tE,EAAWhoC,KAAKJ,IAAI,GAAM7E,KAAK86G,uBAAyBtiF,EAAKgmE,MAAM/rD,OAAQxF,EAAWzU,EAAKgmE,MAAM/rD,QAGnG,IAAIgsE,GAASjmF,EAAKu9D,MAAMzvF,OAAS,EAG7Bq1G,EAAe37G,KAAK6D,QAAQozG,sBAAwBqE,EAAapd,KAAO1lE,EAAK30B,QAAQq6F,KAAOugB,EAASx5G,KAAK0U,IAAIszB,EAAU,GACxH2uE,EAAKl1E,EAAKi1E,EACVE,EAAKl1E,EAAKg1E,CAEd37G,MAAK21G,YAAYG,OAAOt9E,EAAKn4B,IAAIm6B,GAAKohF,EACtC57G,KAAK21G,YAAYG,OAAOt9E,EAAKn4B,IAAIof,GAAKo8F,MAInC0C,GACND,EAAkB,WAErB1+G,GAAQ,WAAa2+G,EACrB1+G,EAAOD,QAAUA,EAAQ,YAIrB,SAASC,EAAQD,EAASM,GAY9B,QAASuyE,GAAuB3sE,GAAO,MAAOA,IAAOA,EAAI4sE,WAAa5sE,GAAQ6sE,UAAW7sE,GAEzF,QAAS8sE,GAAgBC,EAAUC,GAAe,KAAMD,YAAoBC,IAAgB,KAAM,IAAI5rE,WAAU,qCAEhH,QAAS89F,GAAUC,EAAUC,GAAc,GAA0B,kBAAfA,IAA4C,OAAfA,EAAuB,KAAM,IAAIh+F,WAAU,iEAAoEg+F,GAAeD,GAAShyF,UAAY7L,OAAOgJ,OAAO80F,GAAcA,EAAWjyF,WAAa9L,aAAepC,MAAOkgG,EAAU9xB,YAAY,EAAOE,UAAU,EAAMD,cAAc,KAAe8xB,IAAY99F,OAAO+9F,eAAiB/9F,OAAO+9F,eAAeF,EAAUC,GAAcD,EAASG,UAAYF,GAZje99F,OAAO2rE,eAAenzE,EAAS,cAC7BmF,OAAO,GAGT,IAAIiuE,GAAe,WAAe,QAASC,GAAiB/nE,EAAQrE,GAAS,IAAK,GAAIJ,GAAI,EAAGA,EAAII,EAAMP,OAAQG,IAAK,CAAE,GAAIysE,GAAarsE,EAAMJ,EAAIysE,GAAWC,WAAaD,EAAWC,aAAc,EAAOD,EAAWE,cAAe,EAAU,SAAWF,KAAYA,EAAWG,UAAW,GAAMjsE,OAAO2rE,eAAe7nE,EAAQgoE,EAAWvpE,IAAKupE,IAAiB,MAAO,UAAUJ,EAAaQ,EAAYC,GAAiJ,MAA9HD,IAAYL,EAAiBH,EAAY7/D,UAAWqgE,GAAiBC,GAAaN,EAAiBH,EAAaS,GAAqBT,MAE7hBuyB,EAAO,SAAaC,EAAIC,EAAKC,GAAqC,IAA9B,GAAIC,IAAS,EAAwBA,GAAQ,CAAE,GAAIrhG,GAASkhG,EAAIvhD,EAAWwhD,EAAKG,EAAWF,CAAKC,IAAS,EAAsB,OAAXrhG,IAAiBA,EAASmW,SAAStH,UAAW,IAAI0yF,GAAOv+F,OAAOw+F,yBAAyBxhG,EAAQ2/C,EAAW,IAAax9C,SAATo/F,EAAJ,CAA4O,GAAI,SAAWA,GAAQ,MAAOA,GAAK5gG,KAAgB,IAAI0mB,GAASk6E,EAAKhyE,GAAK,IAAeptB,SAAXklB,EAAwB,MAAoB,OAAOA,GAAOlrB,KAAKmlG,GAA/V,GAAIn6F,GAASnE,OAAOy+F,eAAezhG,EAAS,IAAe,OAAXmH,EAAmB,MAA2B+5F,GAAK/5F,EAAQg6F,EAAMxhD,EAAUyhD,EAAME,EAAUD,GAAS,EAAME,EAAOp6F,EAAShF,SAQxcm4G,EAAyBx+G,EAAoB,IAE7Cy+G,EAAyBlsC,EAAuBisC,GAEhDE,EAAuC,SAAWC,GAGpD,QAASD,GAAqC5iE,EAAM25D,EAAa9xG,GAC/D+uE,EAAgB5yE,KAAM4+G,GAEtBvZ,EAAKj+F,OAAOy+F,eAAe+Y,EAAqC3rG,WAAY,cAAejT,MAAMO,KAAKP,KAAMg8C,EAAM25D,EAAa9xG,GAoBjI,MAzBAmhG,GAAU4Z,EAAsCC,GAahD7rC,EAAa4rC,IACXj1G,IAAK,mBACL5E,MAAO,SAA0BkoC,EAAUvG,EAAIC,EAAImvE,EAAQt9E,GACzD,GAAIyU,EAAW,EAAG,CAChB,GAAIwxE,GAASjmF,EAAKu9D,MAAMzvF,OAAS,EAC7Bq1G,EAAe37G,KAAK6D,QAAQqzG,eAAiBuH,EAASjmF,EAAK30B,QAAQq6F,IACvE4X,GAAOt9E,EAAKn4B,IAAIm6B,EAAIkM,EAAKi1E,EACzB7F,EAAOt9E,EAAKn4B,IAAIof,EAAIknB,EAAKg1E,OAKxBiD,GACND,EAAuB,WAE1B/+G,GAAQ,WAAag/G,EACrB/+G,EAAOD,QAAUA,EAAQ,YAIrB,SAASC,EAAQD,EAASM,GAU9B,QAASuyE,GAAuB3sE,GAAO,MAAOA,IAAOA,EAAI4sE,WAAa5sE,GAAQ6sE,UAAW7sE,GAEzF,QAAS8sE,GAAgBC,EAAUC,GAAe,KAAMD,YAAoBC,IAAgB,KAAM,IAAI5rE,WAAU,qCARhHE,OAAO2rE,eAAenzE,EAAS,cAC7BmF,OAAO,GAGT,IAAIiuE,GAAe,WAAe,QAASC,GAAiB/nE,EAAQrE,GAAS,IAAK,GAAIJ,GAAI,EAAGA,EAAII,EAAMP,OAAQG,IAAK,CAAE,GAAIysE,GAAarsE,EAAMJ,EAAIysE,GAAWC,WAAaD,EAAWC,aAAc,EAAOD,EAAWE,cAAe,EAAU,SAAWF,KAAYA,EAAWG,UAAW,GAAMjsE,OAAO2rE,eAAe7nE,EAAQgoE,EAAWvpE,IAAKupE,IAAiB,MAAO,UAAUJ,EAAaQ,EAAYC,GAAiJ,MAA9HD,IAAYL,EAAiBH,EAAY7/D,UAAWqgE,GAAiBC,GAAaN,EAAiBH,EAAaS,GAAqBT,MAM7hBgsC,EAAe5+G,EAAoB,KAEnC6+G,EAAgBtsC,EAAuBqsC,GAEvCE,EAA0B9+G,EAAoB,KAE9C++G,EAA2BxsC,EAAuBusC,GAElDr+G,EAAOT,EAAoB,GAE3Bg/G,EAAgB,WAClB,QAASA,GAAcljE,GACrB,GAAI8C,GAAQ9+C,IAEZ4yE,GAAgB5yE,KAAMk/G,GAEtBl/G,KAAKg8C,KAAOA,EACZh8C,KAAKm/G,kBAELn/G,KAAK6D,WACL7D,KAAKw7C,kBACL76C,EAAKgG,OAAO3G,KAAK6D,QAAS7D,KAAKw7C,gBAE/Bx7C,KAAKg8C,KAAKE,QAAQlgB,GAAG,aAAc,WACjC8iB,EAAMqgE,oBAoxBV,MAhxBAnsC,GAAaksC,IACXv1G,IAAK,aACL5E,MAAO,SAAoBlB,OAU3B8F,IAAK,mBACL5E,MAAO,SAA0Bq6G,EAASv7G,GACxB0C,SAAZ64G,EACFA,EAAUp/G,KAAKq/G,cACa,gBAAZD,KAChBv7G,EAAU7D,KAAKs/G,cAAcF,GAC7BA,EAAUp/G,KAAKq/G,cAIjB,KAAK,GADDE,MACK94G,EAAI,EAAGA,EAAIzG,KAAKg8C,KAAK85C,YAAYxvF,OAAQG,IAAK,CACrD,GAAI+xB,GAAOx4B,KAAKg8C,KAAK65C,MAAM71F,KAAKg8C,KAAK85C,YAAYrvF,GAC7C+xB,GAAKu9D,MAAMzvF,QAAU84G,GACvBG,EAAe/3G,KAAKgxB,EAAKn4B,IAI7B,IAAK,GAAIoG,GAAI,EAAGA,EAAI84G,EAAej5G,OAAQG,IACzCzG,KAAK46F,oBAAoB2kB,EAAe94G,GAAI5C,GAAS,EAGvD7D,MAAKg8C,KAAKE,QAAQzH,KAAK,mBASzB9qC,IAAK,UACL5E,MAAO,WACL,GAAIlB,GAAUwC,UAAUC,QAAU,GAAsBC,SAAjBF,UAAU,MAAwBA,UAAU,GAC/Em5G,EAAcn5G,UAAUC,QAAU,GAAsBC,SAAjBF,UAAU,IAAmB,EAAOA,UAAU,EAEzF,IAA8BE,SAA1B1C,EAAQ47G,cACV,KAAM,IAAIz4G,OAAM,iFAIlBnD,GAAU7D,KAAKs/G,cAAcz7G,EAM7B,KAAK,GAJD67G,MACAC,KAGKl5G,EAAI,EAAGA,EAAIzG,KAAKg8C,KAAK85C,YAAYxvF,OAAQG,IAAK,CACrD,GAAImzF,GAAS55F,KAAKg8C,KAAK85C,YAAYrvF,GAC/B+xB,EAAOx4B,KAAKg8C,KAAK65C,MAAM+D,GACvBgmB,EAAgBb,EAAc,WAAWc,cAAcrnF,EAC3D,IAAI30B,EAAQ47G,cAAcG,MAAmB,EAAM,CACjDF,EAAc9lB,GAAU55F,KAAKg8C,KAAK65C,MAAM+D,EAGxC,KAAK,GAAItkF,GAAK,EAAGA,EAAKkjB,EAAKu9D,MAAMzvF,OAAQgP,IAAM,CAC7C,GAAIgnF,GAAO9jE,EAAKu9D,MAAMzgF,EAClBgnF,GAAKwjB,mBAAoB,IAC3BH,EAAcrjB,EAAKj8F,IAAMi8F,KAMjCt8F,KAAK+/G,SAASL,EAAeC,EAAe97G,EAAS27G,MAUvD71G,IAAK,qBACL5E,MAAO,SAA4Bi7G,EAAWn8G,GAC5C,GAAI27G,GAAcn5G,UAAUC,QAAU,GAAsBC,SAAjBF,UAAU,IAAmB,EAAOA,UAAU,EAEzFxC,GAAU7D,KAAKs/G,cAAcz7G,EAS7B,KAAK,GARDo8G,MACAC,KACA5jB,EAAO/1F,OACPwvF,EAAQxvF,OACRiyB,EAAOjyB,OACPqzF,EAASrzF,OACT45G,EAAoB55G,OAEfE,EAAI,EAAGA,EAAIzG,KAAKg8C,KAAK85C,YAAYxvF,OAAQG,IAAK,CACrD,GAAIi5G,MACAC,IAIJ,IAHA/lB,EAAS55F,KAAKg8C,KAAK85C,YAAYrvF,GAGLF,SAAtB25G,EAAUtmB,GAAuB,CACnCumB,EAAoB,EACpB3nF,EAAOx4B,KAAKg8C,KAAK65C,MAAM+D,GACvB7D,IACA,KAAK,GAAItlF,GAAI,EAAGA,EAAI+nB,EAAKu9D,MAAMzvF,OAAQmK,IACrC6rF,EAAO9jE,EAAKu9D,MAAMtlF,GACd6rF,EAAKwjB,mBAAoB,IACvBxjB,EAAKuD,OAASvD,EAAKwD,QACrBqgB,IAEFpqB,EAAMvuF,KAAK80F,GAKf,IAAI6jB,IAAsBH,EAAW,CAEnC,IAAK,GADDI,IAAsB,EACjB3vG,EAAI,EAAGA,EAAIslF,EAAMzvF,OAAQmK,IAAK,CACrC6rF,EAAOvG,EAAMtlF,EACb,IAAI4vG,GAAcrgH,KAAKsgH,gBAAgBhkB,EAAM1C,EAE7C,IAA8BrzF,SAA1B1C,EAAQ47G,cACVE,EAAcrjB,EAAKj8F,IAAMi8F,EACzBojB,EAAc9lB,GAAU55F,KAAKg8C,KAAK65C,MAAM+D,GACxC8lB,EAAcW,GAAergH,KAAKg8C,KAAK65C,MAAMwqB,GAC7CH,EAAUtmB,IAAU,MACf,CACL,GAAIgmB,GAAgBb,EAAc,WAAWc,cAAc7/G,KAAKg8C,KAAK65C,MAAM+D,GAC3E,IAAI/1F,EAAQ47G,cAAcG,MAAmB,EAItC,CAELQ,GAAsB,CACtB,OANAT,EAAcrjB,EAAKj8F,IAAMi8F,EACzBojB,EAAc9lB,GAAU55F,KAAKg8C,KAAK65C,MAAM+D,GACxCsmB,EAAUtmB,IAAU,GAUtBxyF,OAAO6H,KAAKywG,GAAep5G,OAAS,GAAKc,OAAO6H,KAAK0wG,GAAer5G,OAAS,GAAK85G,KAAwB,GAC5GH,EAASz4G,MAAOquF,MAAO6pB,EAAe3pB,MAAO4pB,MAMrD,IAAK,GAAIl5G,GAAI,EAAGA,EAAIw5G,EAAS35G,OAAQG,IACnCzG,KAAK+/G,SAASE,EAASx5G,GAAGovF,MAAOoqB,EAASx5G,GAAGsvF,MAAOlyF,GAAS,EAG3D27G,MAAgB,GAClBx/G,KAAKg8C,KAAKE,QAAQzH,KAAK,mBAU3B9qC,IAAK,kBACL5E,MAAO,SAAyBlB,GAC9B,GAAI27G,GAAcn5G,UAAUC,QAAU,GAAsBC,SAAjBF,UAAU,IAAmB,EAAOA,UAAU,EAEzFrG,MAAKugH,mBAAmB,EAAG18G,EAAS27G,MAStC71G,IAAK,iBACL5E,MAAO,SAAwBlB,GAC7B,GAAI27G,GAAcn5G,UAAUC,QAAU,GAAsBC,SAAjBF,UAAU,IAAmB,EAAOA,UAAU,EAEzFrG,MAAKugH,mBAAmB,EAAG18G,EAAS27G,MAUtC71G,IAAK,sBACL5E,MAAO,SAA6B60F,EAAQ/1F,GAC1C,GAAI27G,GAAcn5G,UAAUC,QAAU,GAAsBC,SAAjBF,UAAU,IAAmB,EAAOA,UAAU,EAGzF,IAAeE,SAAXqzF,EACF,KAAM,IAAI5yF,OAAM,6CAElB,IAAgCT,SAA5BvG,KAAKg8C,KAAK65C,MAAM+D,GAClB,KAAM,IAAI5yF,OAAM,0DAGlB,IAAIwxB,GAAOx4B,KAAKg8C,KAAK65C,MAAM+D,EAC3B/1F,GAAU7D,KAAKs/G,cAAcz7G,EAAS20B,GACEjyB,SAApC1C,EAAQ28G,sBAAsBhmF,IAChC32B,EAAQ28G,sBAAsBhmF,EAAIhC,EAAKgC,GAEDj0B,SAApC1C,EAAQ28G,sBAAsB/gG,IAChC5b,EAAQ28G,sBAAsB/gG,EAAI+Y,EAAK/Y,GAEGlZ,SAAxC1C,EAAQ28G,sBAAsB5iB,QAChC/5F,EAAQ28G,sBAAsB5iB,SAC9B/5F,EAAQ28G,sBAAsB5iB,MAAMpjE,EAAIhC,EAAK30B,QAAQ+5F,MAAMpjE,EAC3D32B,EAAQ28G,sBAAsB5iB,MAAMn+E,EAAI+Y,EAAK30B,QAAQ+5F,MAAMn+E,EAG7D,IAAIigG,MACAC,KACAc,EAAejoF,EAAKn4B,GACpBqgH,EAAsB3B,EAAc,WAAWc,cAAcrnF,EACjEknF,GAAce,GAAgBjoF,CAG9B,KAAK,GAAI/xB,GAAI,EAAGA,EAAI+xB,EAAKu9D,MAAMzvF,OAAQG,IAAK,CAC1C,GAAI61F,GAAO9jE,EAAKu9D,MAAMtvF,EACtB,IAAI61F,EAAKwjB,mBAAoB,EAAM,CACjC,GAAIO,GAAcrgH,KAAKsgH,gBAAgBhkB,EAAMmkB,EAG7C,IAAyCl6G,SAArCvG,KAAKm/G,eAAekB,GACtB,GAAIA,IAAgBI,EAClB,GAA8Bl6G,SAA1B1C,EAAQ47G,cACVE,EAAcrjB,EAAKj8F,IAAMi8F,EACzBojB,EAAcW,GAAergH,KAAKg8C,KAAK65C,MAAMwqB,OACxC,CAEL,GAAIM,GAAqB5B,EAAc,WAAWc,cAAc7/G,KAAKg8C,KAAK65C,MAAMwqB,GAC5Ex8G,GAAQ47G,cAAciB,EAAqBC,MAAwB,IACrEhB,EAAcrjB,EAAKj8F,IAAMi8F,EACzBojB,EAAcW,GAAergH,KAAKg8C,KAAK65C,MAAMwqB,QAKjDV,GAAcrjB,EAAKj8F,IAAMi8F,GAMjCt8F,KAAK+/G,SAASL,EAAeC,EAAe97G,EAAS27G,MAavD71G,IAAK,sBACL5E,MAAO,SAA6B26G,EAAeC,EAAea,EAAuBI,GAYvF,IAAK,GAXDtkB,GAAO/1F,OACP85G,EAAc95G,OACds6G,EAAYt6G,OACZs5F,EAAOt5F,OACPu5F,EAASv5F,OACTu6G,EAAcv6G,OAIdw6G,EAAY35G,OAAO6H,KAAKywG,GACxBsB,KACKv6G,EAAI,EAAGA,EAAIs6G,EAAUz6G,OAAQG,IAAK,CACzC45G,EAAcU,EAAUt6G,GACxBo6G,EAAYnB,EAAcW,EAG1B,KAAK,GAAI5vG,GAAI,EAAGA,EAAIowG,EAAU9qB,MAAMzvF,OAAQmK,IAC1C6rF,EAAOukB,EAAU9qB,MAAMtlF,GAEnB6rF,EAAKwjB,mBAAoB,IAEvBxjB,EAAKuD,MAAQvD,EAAKwD,OACpB6f,EAAcrjB,EAAKj8F,IAAMi8F,EAGrBA,EAAKuD,MAAQwgB,GAEfxgB,EAAO2gB,EAAsBngH,GAC7By/F,EAASxD,EAAKwD,OACdghB,EAAchhB,IAEdD,EAAOvD,EAAKuD,KACZC,EAAS0gB,EAAsBngH,GAC/BygH,EAAcjhB,GAKiBt5F,SAA/Bm5G,EAAcoB,IAChBE,EAAYx5G,MAAO80F,KAAMA,EAAMwD,OAAQA,EAAQD,KAAMA,KAQ7D,IAAK,GAAIpvF,GAAI,EAAGA,EAAIuwG,EAAY16G,OAAQmK,IAAK,CAC3C,GAAIwwG,GAAQD,EAAYvwG,GAAG6rF,KAEvBsjB,EAAgBb,EAAc,WAAWc,cAAcoB,EAAO,OAElEtgH,GAAK0G,WAAWu4G,EAAegB,GAG/BhB,EAAczqG,KAAO6rG,EAAYvwG,GAAGqvF,OACpC8f,EAAc1qG,GAAK8rG,EAAYvwG,GAAGovF,KAClC+f,EAAcv/G,GAAK,eAAiBM,EAAKgF,YAIzC,IAAIu7G,GAAUlhH,KAAKg8C,KAAK26C,UAAUE,WAAW+oB,EAC7CsB,GAAQC,0BAA4BF,EAAM5gH,GAG1CL,KAAKg8C,KAAK+5C,MAAMmrB,EAAQ7gH,IAAM6gH,EAC9BA,EAAQ7V,UAGR4V,EAAMrlF,YAAao8C,SAAS,EAAOnf,QAAQ,IAC3CooD,EAAMnB,iBAAkB,MAY5Bn2G,IAAK,gBACL5E,MAAO,WACL,GAAIlB,GAAUwC,UAAUC,QAAU,GAAsBC,SAAjBF,UAAU,MAAwBA,UAAU,EASnF,OAPsCE,UAAlC1C,EAAQ+8G,wBACV/8G,EAAQ+8G,0BAE4Br6G,SAAlC1C,EAAQ28G,wBACV38G,EAAQ28G,0BAGH38G,KAYT8F,IAAK,WACL5E,MAAO,SAAkB26G,EAAeC,EAAe97G,GACrD,GAAI27G,GAAcn5G,UAAUC,QAAU,GAAsBC,SAAjBF,UAAU,IAAmB,EAAOA,UAAU,EAGzF,MAAIe,OAAO6H,KAAKywG,GAAep5G,OAAS,GAAxC,CAKA,IAAK,GAAIszF,KAAU8lB,GACjB,GAAIA,EAAc15G,eAAe4zF,IACKrzF,SAAhCvG,KAAKm/G,eAAevlB,GACtB,MAKN,IAAI4mB,GAAwB7/G,EAAK0G,cAAexD,EAAQ28G,sBAGxD,IAAkCj6G,SAA9B1C,EAAQu9G,kBAAiC,CAE3C,GAAIC,KACJ,KAAK,GAAIznB,KAAU8lB,GACjB,GAAIA,EAAc15G,eAAe4zF,GAAS,CACxC,GAAIgmB,GAAgBb,EAAc,WAAWc,cAAcH,EAAc9lB,GACzEynB,GAAkB75G,KAAKo4G,GAK3B,GAAI0B,KACJ,KAAK,GAAIznB,KAAU8lB,GACjB,GAAIA,EAAc35G,eAAe6zF,IAEF,iBAAzBA,EAAOjtF,OAAO,EAAG,IAAwB,CAC3C,GAAIgzG,GAAgBb,EAAc,WAAWc,cAAcF,EAAc9lB,GAAS,OAClFynB,GAAkB95G,KAAKo4G,GAM7B,GADAY,EAAwB38G,EAAQu9G,kBAAkBZ,EAAuBa,EAAmBC,IACvFd,EACH,KAAM,IAAIx5G,OAAM,8DAKaT,SAA7Bi6G,EAAsBngH,KACxBmgH,EAAsBngH,GAAK,WAAaM,EAAKgF,aAE/C,IAAI47G,GAAYf,EAAsBngH,EAEFkG,UAAhCi6G,EAAsB1lF,QACxB0lF,EAAsB1lF,MAAQ,UAIhC,IAAIgS,GAAMvmC,MACsBA,UAA5Bi6G,EAAsBhmF,IACxBsS,EAAM9sC,KAAKwhH,oBAAoB9B,GAC/Bc,EAAsBhmF,EAAIsS,EAAItS,GAEAj0B,SAA5Bi6G,EAAsB/gG,IACZlZ,SAARumC,IACFA,EAAM9sC,KAAKwhH,oBAAoB9B,IAEjCc,EAAsB/gG,EAAIqtB,EAAIrtB,GAIhC+gG,EAAsBngH,GAAKkhH,CAG3B,IAAIE,GAAczhH,KAAKg8C,KAAK26C,UAAUC,WAAW4pB,EAAuBvB,EAAyB,WACjGwC,GAAYjnB,WAAY,EACxBinB,EAAYC,eAAiBhC,EAC7B+B,EAAYE,eAAiBhC,EAE7B8B,EAAYb,sBAAwB/8G,EAAQ+8G,sBAG5C5gH,KAAKg8C,KAAK65C,MAAM2qB,EAAsBngH,IAAMohH,EAG5CzhH,KAAK4hH,oBAAoBlC,EAAeC,EAAea,EAAuB38G,EAAQ+8G,sBAGtF,KAAK,GAAI/mB,KAAU8lB,GACjB,GAAIA,EAAc35G,eAAe6zF,IACCtzF,SAA5BvG,KAAKg8C,KAAK+5C,MAAM8D,GAAuB,CACzC,GAAIyC,GAAOt8F,KAAKg8C,KAAK+5C,MAAM8D,EAC3ByC,GAAK1gE,YAAao8C,SAAS,EAAOnf,QAAQ,IAC1CyjC,EAAKwjB,iBAAkB,EAM7B,IAAK,GAAIlmB,KAAU8lB,GACbA,EAAc15G,eAAe4zF,KAC/B55F,KAAKm/G,eAAevlB,IAAY2nB,UAAWf,EAAsBngH,GAAIm4B,KAAMx4B,KAAKg8C,KAAK65C,MAAM+D,IAC3F55F,KAAKg8C,KAAK65C,MAAM+D,GAAQh+D,YAAai9B,QAAQ,EAAMmf,SAAS,IAKhEwoC,GAAsBngH,GAAKkG,OAGvBi5G,KAAgB,GAClBx/G,KAAKg8C,KAAKE,QAAQzH,KAAK,oBAU3B9qC,IAAK,YACL5E,MAAO,SAAmB60F,GACxB,MAAgCrzF,UAA5BvG,KAAKg8C,KAAK65C,MAAM+D,GACX55F,KAAKg8C,KAAK65C,MAAM+D,GAAQY,aAAc,GAE7Ch8E,QAAQu8B,IAAI,yBACL,MAWXpxC,IAAK,sBACL5E,MAAO,SAA6B26G,GAOlC,IAAK,GANDqB,GAAY35G,OAAO6H,KAAKywG,GACxB5D,EAAO4D,EAAcqB,EAAU,IAAIvmF,EACnCwhF,EAAO0D,EAAcqB,EAAU,IAAIvmF,EACnCuhF,EAAO2D,EAAcqB,EAAU,IAAIthG,EACnCw8F,EAAOyD,EAAcqB,EAAU,IAAIthG,EACnC+Y,EAAOjyB,OACFE,EAAI,EAAGA,EAAIs6G,EAAUz6G,OAAQG,IACpC+xB,EAAOknF,EAAcqB,EAAUt6G,IAC/Bq1G,EAAOtjF,EAAKgC,EAAIshF,EAAOtjF,EAAKgC,EAAIshF,EAChCE,EAAOxjF,EAAKgC,EAAIwhF,EAAOxjF,EAAKgC,EAAIwhF,EAChCD,EAAOvjF,EAAK/Y,EAAIs8F,EAAOvjF,EAAK/Y,EAAIs8F,EAChCE,EAAOzjF,EAAK/Y,EAAIw8F,EAAOzjF,EAAK/Y,EAAIw8F,CAGlC,QAASzhF,EAAG,IAAOshF,EAAOE,GAAOv8F,EAAG,IAAOs8F,EAAOE,OASpDtyG,IAAK,cACL5E,MAAO,SAAqB88G,EAAeh+G,GACzC,GAAI27G,GAAcn5G,UAAUC,QAAU,GAAsBC,SAAjBF,UAAU,IAAmB,EAAOA,UAAU,EAGzF,IAAsBE,SAAlBs7G,EACF,KAAM,IAAI76G,OAAM,4CAElB,IAAuCT,SAAnCvG,KAAKg8C,KAAK65C,MAAMgsB,GAClB,KAAM,IAAI76G,OAAM,4DAElB,IAAsDT,SAAlDvG,KAAKg8C,KAAK65C,MAAMgsB,GAAeH,eAEjC,WADAljG,SAAQu8B,IAAI,YAAc8mE,EAAgB,qBAG5C,IAAIJ,GAAczhH,KAAKg8C,KAAK65C,MAAMgsB,GAC9BH,EAAiBD,EAAYC,eAC7BC,EAAiBF,EAAYE,cAGjC,IAAgBp7G,SAAZ1C,GAAqD0C,SAA5B1C,EAAQi+G,iBAAoE,kBAA5Bj+G,GAAQi+G,gBAAgC,CACnH,GAAIxI,MACAyI,GAAoBvnF,EAAGinF,EAAYjnF,EAAG/a,EAAGgiG,EAAYhiG,EACzD,KAAK,GAAIm6E,KAAU8nB,GACjB,GAAIA,EAAe17G,eAAe4zF,GAAS,CACzC,GAAImjB,GAAgB/8G,KAAKg8C,KAAK65C,MAAM+D,EACpC0f,GAAU1f,IAAYp/D,EAAGuiF,EAAcviF,EAAG/a,EAAGs9F,EAAct9F,GAG/D,GAAIuiG,GAAen+G,EAAQi+G,gBAAgBC,EAAiBzI,EAE5D,KAAK,GAAI1f,KAAU8nB,GACjB,GAAIA,EAAe17G,eAAe4zF,GAAS,CACzC,GAAImjB,GAAgB/8G,KAAKg8C,KAAK65C,MAAM+D,EACPrzF,UAAzBy7G,EAAapoB,KACfmjB,EAAcviF,EAA+Bj0B,SAA3By7G,EAAapoB,GAAQp/D,EAAkBinF,EAAYjnF,EAAIwnF,EAAapoB,GAAQp/D,EAC9FuiF,EAAct9F,EAA+BlZ,SAA3By7G,EAAapoB,GAAQn6E,EAAkBgiG,EAAYhiG,EAAIuiG,EAAapoB,GAAQn6E,QAMpG,KAAK,GAAIm6E,KAAU8nB,GACjB,GAAIA,EAAe17G,eAAe4zF,GAAS,CACzC,GAAImjB,GAAgB/8G,KAAKg8C,KAAK65C,MAAM+D,EACpCmjB,GAAgB2E,EAAe9nB,GAE3BmjB,EAAcl5G,QAAQ+5F,MAAMpjE,KAAM,IACpCuiF,EAAcviF,EAAIinF,EAAYjnF,GAE5BuiF,EAAcl5G,QAAQ+5F,MAAMn+E,KAAM,IACpCs9F,EAAct9F,EAAIgiG,EAAYhiG,GAOtC,IAAK,GAAIm6E,KAAU8nB,GACjB,GAAIA,EAAe17G,eAAe4zF,GAAS,CACzC,GAAImjB,GAAgB/8G,KAAKg8C,KAAK65C,MAAM+D,EAGpCmjB,GAAcxD,GAAKkI,EAAYlI,GAC/BwD,EAAcvD,GAAKiI,EAAYjI,GAG/BuD,EAAcnhF,YAAai9B,QAAQ,EAAOmf,SAAS,UAE5Ch4E,MAAKm/G,eAAevlB,GAM/B,IAAK,GADDqoB,MACKx7G,EAAI,EAAGA,EAAIg7G,EAAY1rB,MAAMzvF,OAAQG,IAC5Cw7G,EAAiBz6G,KAAKi6G,EAAY1rB,MAAMtvF,GAI1C,KAAK,GAAIA,GAAI,EAAGA,EAAIw7G,EAAiB37G,OAAQG,IAAK,CAChD,GAAI61F,GAAO2lB,EAAiBx7G,GAExBq6G,EAAc9gH,KAAKsgH,gBAAgBhkB,EAAMulB,EAE7C,IAAyCt7G,SAArCvG,KAAKm/G,eAAe2B,GAA4B,CAElD,GAAIoB,GAAeliH,KAAKg8C,KAAK65C,MAAM71F,KAAKm/G,eAAe2B,GAAaS,WAChEY,EAAeniH,KAAKg8C,KAAK+5C,MAAMuG,EAAK6kB,0BACxC,IAAqB56G,SAAjB47G,EAA4B,CAC9BD,EAAaP,eAAeQ,EAAa9hH,IAAM8hH,QAGxCR,GAAeQ,EAAa9hH,GAInC,IAAIy/F,GAASqiB,EAAariB,OACtBD,EAAOsiB,EAAatiB,IACpBsiB,GAAatiB,MAAQihB,EACvBjhB,EAAO7/F,KAAKm/G,eAAe2B,GAAaS,UAExCzhB,EAAS9/F,KAAKm/G,eAAe2B,GAAaS,SAI5C,IAAI3B,GAAgBb,EAAc,WAAWc,cAAcsC,EAAc,OACzExhH,GAAK0G,WAAWu4G,EAAesC,EAAatB,sBAG5C,IAAIvgH,GAAK,eAAiBM,EAAKgF,YAC/BhF,GAAK0G,WAAWu4G,GAAiBzqG,KAAM2qF,EAAQ5qF,GAAI2qF,EAAMhnC,QAAQ,EAAOmf,SAAS,EAAM33E,GAAIA,GAG3F,IAAI6gH,GAAUlhH,KAAKg8C,KAAK26C,UAAUE,WAAW+oB,EAC7CsB,GAAQC,0BAA4BgB,EAAa9hH,GACjDL,KAAKg8C,KAAK+5C,MAAM11F,GAAM6gH,EACtBlhH,KAAKg8C,KAAK+5C,MAAM11F,GAAIgrG,eAEjB,CACL,GAAI+W,GAAepiH,KAAKg8C,KAAK+5C,MAAMuG,EAAK6kB,0BACnB56G,UAAjB67G,IACFA,EAAaxmF,YAAao8C,SAAS,EAAMnf,QAAQ,IACjDupD,EAAatC,iBAAkB,GAGnCxjB,EAAKgP,UAELhP,EAAK6O,mBACEnrG,MAAKg8C,KAAK+5C,MAAMuG,EAAKj8F,IAI9B,IAAK,GAAIw5F,KAAU8nB,GACjB,GAAIA,EAAe37G,eAAe6zF,GAAS,CACzC,GAAIyC,GAAOqlB,EAAe9nB,EAC1ByC,GAAK1gE,YAAao8C,SAAS,EAAMnf,QAAQ,IACzCyjC,EAAKwjB,gBAAkBv5G,aAChB+1F,GAAKwjB,sBAKT9/G,MAAKg8C,KAAK65C,MAAMgsB,GAEnBrC,KAAgB,GAClBx/G,KAAKg8C,KAAKE,QAAQzH,KAAK,mBAI3B9qC,IAAK,oBACL5E,MAAO,SAA2Bw8G,GAChC,GAAIc,KACJ,IAAIriH,KAAKw6F,UAAU+mB,MAAe,EAAM,CACtC,GAAIG,GAAiB1hH,KAAKg8C,KAAK65C,MAAM0rB,GAAWG,cAChD,KAAK,GAAI9nB,KAAU8nB,GACbA,EAAe17G,eAAe4zF,IAChCyoB,EAAW76G,KAAKoyF,GAKtB,MAAOyoB,MAST14G,IAAK,WACL5E,MAAO,SAAkB60F,GAKvB,IAJA,GAAI73F,MACA8C,EAAM,IACN8jC,EAAU,EAEyBpiC,SAAhCvG,KAAKm/G,eAAevlB,IAAmC/0F,EAAV8jC,GAClD5mC,EAAMyF,KAAKxH,KAAKm/G,eAAevlB,GAAQphE,MACvCohE,EAAS55F,KAAKm/G,eAAevlB,GAAQ2nB,UACrC54E,GAGF,OADA5mC,GAAMyF,KAAKxH,KAAKg8C,KAAK65C,MAAM+D,IACpB73F,KAWT4H,IAAK,kBACL5E,MAAO,SAAyBu3F,EAAM1C,GACpC,MAAI0C,GAAKuD,MAAQjG,EACR0C,EAAKuD,KACHvD,EAAKwD,QAAUlG,EACjB0C,EAAKwD,OAELxD,EAAKwD,UAWhBn2F,IAAK,cACL5E,MAAO,WAML,IAAK,GALDu9G,GAAU,EACVC,EAAiB,EACjBC,EAAa,EACbC,EAAa,EAERh8G,EAAI,EAAGA,EAAIzG,KAAKg8C,KAAK85C,YAAYxvF,OAAQG,IAAK,CACrD,GAAI+xB,GAAOx4B,KAAKg8C,KAAK65C,MAAM71F,KAAKg8C,KAAK85C,YAAYrvF,GAC7C+xB,GAAKu9D,MAAMzvF,OAASm8G,IACtBA,EAAajqF,EAAKu9D,MAAMzvF,QAE1Bg8G,GAAW9pF,EAAKu9D,MAAMzvF,OACtBi8G,GAAkBt9G,KAAK0U,IAAI6e,EAAKu9D,MAAMzvF,OAAQ,GAC9Ck8G,GAAc,EAEhBF,GAAoBE,EACpBD,GAAkCC,CAElC,IAAIE,GAAWH,EAAiBt9G,KAAK0U,IAAI2oG,EAAS,GAC9CK,EAAoB19G,KAAKoxC,KAAKqsE,GAE9BE,EAAe39G,KAAKuK,MAAM8yG,EAAU,EAAIK,EAO5C,OAJIC,GAAeH,IACjBG,EAAeH,GAGVG,MAIJ1D,IAGTt/G,GAAQ,WAAas/G,EACrBr/G,EAAOD,QAAUA,EAAQ,YAIrB,SAASC,EAAQD,EAASM,GAU9B,QAAS0yE,GAAgBC,EAAUC,GAAe,KAAMD,YAAoBC,IAAgB,KAAM,IAAI5rE,WAAU,qCANhHE,OAAO2rE,eAAenzE,EAAS,cAC7BmF,OAAO,GAGT,IAAIiuE,GAAe,WAAe,QAASC,GAAiB/nE,EAAQrE,GAAS,IAAK,GAAIJ,GAAI,EAAGA,EAAII,EAAMP,OAAQG,IAAK,CAAE,GAAIysE,GAAarsE,EAAMJ,EAAIysE,GAAWC,WAAaD,EAAWC,aAAc,EAAOD,EAAWE,cAAe,EAAU,SAAWF,KAAYA,EAAWG,UAAW,GAAMjsE,OAAO2rE,eAAe7nE,EAAQgoE,EAAWvpE,IAAKupE,IAAiB,MAAO,UAAUJ,EAAaQ,EAAYC;AAAiJ,MAA9HD,IAAYL,EAAiBH,EAAY7/D,UAAWqgE,GAAiBC,GAAaN,EAAiBH,EAAaS,GAAqBT,MAI7hBnyE,EAAOT,EAAoB,GAE3B2iH,EAAc,WAChB,QAASA,KACPjwC,EAAgB5yE,KAAM6iH,GAmHxB,MA3GA7vC,GAAa6vC,EAAa,OACxBl5G,IAAK,YACL5E,MAAO,SAAmB+9G,GACxB,GAMItqF,GANAuqF,EAAgB18G,UAAUC,QAAU,GAAsBC,SAAjBF,UAAU,MAAwBA,UAAU,GAErF01G,EAAO,IACPE,EAAO,KACPH,EAAO,IACPE,EAAO,IAEX,IAAI+G,EAAcz8G,OAAS,EACzB,IAAK,GAAIG,GAAI,EAAGA,EAAIs8G,EAAcz8G,OAAQG,IACxC+xB,EAAOsqF,EAASC,EAAct8G,IAC1Bq1G,EAAOtjF,EAAKgmE,MAAMkB,YAAY/2F,OAChCmzG,EAAOtjF,EAAKgmE,MAAMkB,YAAY/2F,MAE5BqzG,EAAOxjF,EAAKgmE,MAAMkB,YAAYhxD,QAChCstE,EAAOxjF,EAAKgmE,MAAMkB,YAAYhxD,OAE5BqtE,EAAOvjF,EAAKgmE,MAAMkB,YAAY72F,MAChCkzG,EAAOvjF,EAAKgmE,MAAMkB,YAAY72F,KAE5BozG,EAAOzjF,EAAKgmE,MAAMkB,YAAYx0D,SAChC+wE,EAAOzjF,EAAKgmE,MAAMkB,YAAYx0D,OAQpC,OAHa,OAAT4wE,GAAyB,OAATE,GAA0B,MAATD,GAAyB,OAATE,IACnDF,EAAO,EAAGE,EAAO,EAAGH,EAAO,EAAGE,EAAO,IAE9BF,KAAMA,EAAME,KAAMA,EAAMD,KAAMA,EAAME,KAAMA,MAQrDtyG,IAAK,gBACL5E,MAAO,SAAuB+9G,GAC5B,GAMItqF,GANAuqF,EAAgB18G,UAAUC,QAAU,GAAsBC,SAAjBF,UAAU,MAAwBA,UAAU,GAErF01G,EAAO,IACPE,EAAO,KACPH,EAAO,IACPE,EAAO,IAEX,IAAI+G,EAAcz8G,OAAS,EACzB,IAAK,GAAIG,GAAI,EAAGA,EAAIs8G,EAAcz8G,OAAQG,IACxC+xB,EAAOsqF,EAASC,EAAct8G,IAC1Bq1G,EAAOtjF,EAAKgC,IACdshF,EAAOtjF,EAAKgC,GAEVwhF,EAAOxjF,EAAKgC,IACdwhF,EAAOxjF,EAAKgC,GAEVuhF,EAAOvjF,EAAK/Y,IACds8F,EAAOvjF,EAAK/Y,GAEVw8F,EAAOzjF,EAAK/Y,IACdw8F,EAAOzjF,EAAK/Y,EAQlB,OAHa,OAATq8F,GAAyB,OAATE,GAA0B,MAATD,GAAyB,OAATE,IACnDF,EAAO,EAAGE,EAAO,EAAGH,EAAO,EAAGE,EAAO,IAE9BF,KAAMA,EAAME,KAAMA,EAAMD,KAAMA,EAAME,KAAMA,MASrDtyG,IAAK,cACL5E,MAAO,SAAqBg4C,GAC1B,OAASviB,EAAG,IAAOuiB,EAAMi/D,KAAOj/D,EAAM++D,MACpCr8F,EAAG,IAAOs9B,EAAMk/D,KAAOl/D,EAAMg/D,UAWjCpyG,IAAK,gBACL5E,MAAO,SAAuByM,EAAM5J,GAClC,GAAIg4G,KASJ,OARar5G,UAATqB,GAA+B,SAATA,GACxBjH,EAAK0G,WAAWu4G,EAAepuG,EAAK3N,SAAS,GAC7C+7G,EAAcplF,EAAIhpB,EAAKgpB,EACvBolF,EAAcngG,EAAIjO,EAAKiO,EACvBmgG,EAAcoD,oBAAsBxxG,EAAKukF,MAAMzvF,QAE/C3F,EAAK0G,WAAWu4G,EAAepuG,EAAK3N,SAAS,GAExC+7G,MAIJiD,IAGTjjH,GAAQ,WAAaijH,EACrBhjH,EAAOD,QAAUA,EAAQ,YAIrB,SAASC,EAAQD,EAASM,GAU9B,QAASuyE,GAAuB3sE,GAAO,MAAOA,IAAOA,EAAI4sE,WAAa5sE,GAAQ6sE,UAAW7sE,GAEzF,QAAS8sE,GAAgBC,EAAUC,GAAe,KAAMD,YAAoBC,IAAgB,KAAM,IAAI5rE,WAAU,qCAEhH,QAAS89F,GAAUC,EAAUC,GAAc,GAA0B,kBAAfA,IAA4C,OAAfA,EAAuB,KAAM,IAAIh+F,WAAU,iEAAoEg+F,GAAeD,GAAShyF,UAAY7L,OAAOgJ,OAAO80F,GAAcA,EAAWjyF,WAAa9L,aAAepC,MAAOkgG,EAAU9xB,YAAY,EAAOE,UAAU,EAAMD,cAAc,KAAe8xB,IAAY99F,OAAO+9F,eAAiB/9F,OAAO+9F,eAAeF,EAAUC,GAAcD,EAASG,UAAYF,GAVje99F,OAAO2rE,eAAenzE,EAAS,cAC7BmF,OAAO,GAGT,IAAIsgG,GAAO,SAAaC,EAAIC,EAAKC,GAAqC,IAA9B,GAAIC,IAAS,EAAwBA,GAAQ,CAAE,GAAIrhG,GAASkhG,EAAIvhD,EAAWwhD,EAAKG,EAAWF,CAAKC,IAAS,EAAsB,OAAXrhG,IAAiBA,EAASmW,SAAStH,UAAW,IAAI0yF,GAAOv+F,OAAOw+F,yBAAyBxhG,EAAQ2/C,EAAW,IAAax9C,SAATo/F,EAAJ,CAA4O,GAAI,SAAWA,GAAQ,MAAOA,GAAK5gG,KAAgB,IAAI0mB,GAASk6E,EAAKhyE,GAAK,IAAeptB,SAAXklB,EAAwB,MAAoB,OAAOA,GAAOlrB,KAAKmlG,GAA/V,GAAIn6F,GAASnE,OAAOy+F,eAAezhG,EAAS,IAAe,OAAXmH,EAAmB,MAA2B+5F,GAAK/5F,EAAQg6F,EAAMxhD,EAAUyhD,EAAME,EAAUD,GAAS,EAAME,EAAOp6F,EAAShF,SAQxc08G,EAAS/iH,EAAoB,IAE7BgjH,EAASzwC,EAAuBwwC,GAMhCE,EAAU,SAAWC,GAGvB,QAASD,GAAQt/G,EAASm4C,EAAM+lD,EAAW5X,EAAWv5E,GACpDgiE,EAAgB5yE,KAAMmjH,GAEtB9d,EAAKj+F,OAAOy+F,eAAesd,EAAQlwG,WAAY,cAAejT,MAAMO,KAAKP,KAAM6D,EAASm4C,EAAM+lD,EAAW5X,EAAWv5E,GAEpH5Q,KAAKw6F,WAAY,EACjBx6F,KAAK0hH,kBACL1hH,KAAK2hH,kBAGP,MAZA3c,GAAUme,EAASC,GAYZD,GACND,EAAO,WAEVtjH,GAAQ,WAAaujH,EACrBtjH,EAAOD,QAAUA,EAAQ,YAIrB,SAASC,EAAQD,EAASM,GAU9B,QAAS0yE,GAAgBC,EAAUC,GAAe,KAAMD,YAAoBC,IAAgB,KAAM,IAAI5rE,WAAU,qCANhHE,OAAO2rE,eAAenzE,EAAS,cAC7BmF,OAAO,GAGT,IAAIiuE,GAAe,WAAe,QAASC,GAAiB/nE,EAAQrE,GAAS,IAAK,GAAIJ,GAAI,EAAGA,EAAII,EAAMP,OAAQG,IAAK,CAAE,GAAIysE,GAAarsE,EAAMJ,EAAIysE,GAAWC,WAAaD,EAAWC,aAAc,EAAOD,EAAWE,cAAe,EAAU,SAAWF,KAAYA,EAAWG,UAAW,GAAMjsE,OAAO2rE,eAAe7nE,EAAQgoE,EAAWvpE,IAAKupE,IAAiB,MAAO,UAAUJ,EAAaQ,EAAYC,GAAiJ,MAA9HD,IAAYL,EAAiBH,EAAY7/D,UAAWqgE,GAAiBC,GAAaN,EAAiBH,EAAaS,GAAqBT,KAI3gB,oBAAX/nE,UACTA,OAAOs4G,sBAAwBt4G,OAAOs4G,uBAAyBt4G,OAAOu4G,0BAA4Bv4G,OAAOw4G,6BAA+Bx4G,OAAOy4G,wBAGjJ,IAAI7iH,GAAOT,EAAoB,GAE3BujH,EAAiB,WACnB,QAASA,GAAeznE,EAAM3U,GAC5BurC,EAAgB5yE,KAAMyjH,GAEtBzjH,KAAKg8C,KAAOA,EACZh8C,KAAKqnC,OAASA,EAEdrnC,KAAK0jH,iBAAkB,EACvB1jH,KAAKs2G,YAAc/vG,OACnBvG,KAAKk2G,iBAAkB,EACvBl2G,KAAK2jH,iBAAkB,EACvB3jH,KAAK4jH,eAAiB,EACtB5jH,KAAK4zE,WAAartE,OAClBvG,KAAK6jH,aAAc,EAEnB7jH,KAAKu1D,UAAW,EAChBv1D,KAAK6D,WACL7D,KAAKw7C,gBACHsoE,iBAAiB,EACjBC,iBAAiB,GAEnBpjH,EAAKgG,OAAO3G,KAAK6D,QAAS7D,KAAKw7C,gBAE/Bx7C,KAAKgkH,0BACLhkH,KAAK+2F,qBAqVP,MAlVA/jB,GAAaywC,IACX95G,IAAK,qBACL5E,MAAO,WACL,GAAI+5C,GAAQ9+C,IAEZA,MAAKg8C,KAAKE,QAAQlgB,GAAG,YAAa,WAChC8iB,EAAMyW,UAAW,IAEnBv1D,KAAKg8C,KAAKE,QAAQlgB,GAAG,UAAW,WAC9B,MAAO8iB,GAAMyW,UAAW,IAE1Bv1D,KAAKg8C,KAAKE,QAAQlgB,GAAG,eAAgB,WACnC,MAAO8iB,GAAMmlE,iBAEfjkH,KAAKg8C,KAAKE,QAAQlgB,GAAG,UAAW,WAC1B8iB,EAAM6kE,mBAAoB,GAC5B7kE,EAAMrB,YAGVz9C,KAAKg8C,KAAKE,QAAQlgB,GAAG,eAAgB,WACnC8iB,EAAM+kE,aAAc,IAEtB7jH,KAAKg8C,KAAKE,QAAQlgB,GAAG,eAAgB,WACnC8iB,EAAM+kE,aAAc,EAAK/kE,EAAM4kE,iBAAkB,IAEnD1jH,KAAKg8C,KAAKE,QAAQlgB,GAAG,iBAAkBh8B,KAAKkkH,eAAe/nE,KAAKn8C,OAChEA,KAAKg8C,KAAKE,QAAQlgB,GAAG,kBAAmB,WACtC8iB,EAAM8kE,gBAAkB,EACxB9kE,EAAM6kE,iBAAkB,EACxB7kE,EAAMqlE,oBAERnkH,KAAKg8C,KAAKE,QAAQlgB,GAAG,iBAAkB,WACrC8iB,EAAM8kE,gBAAkB,EACxB9kE,EAAM6kE,gBAAkB7kE,EAAM8kE,eAAiB,EAC/C9kE,EAAMw3D,YAAc/vG,SAEtBvG,KAAKg8C,KAAKE,QAAQlgB,GAAG,UAAW,WAC9B8iB,EAAM8kE,eAAiB,EACvB9kE,EAAM+kE,aAAc,EACpB/kE,EAAM6kE,iBAAkB,EACpB7kE,EAAMo3D,mBAAoB,EAC5B/1E,aAAa2e,EAAMw3D,aAEnB8N,qBAAqBtlE,EAAMw3D,aAE7Bx3D,EAAM9C,KAAKE,QAAQ/f,WAIvBxyB,IAAK,aACL5E,MAAO,SAAoBlB,GACzB,GAAgB0C,SAAZ1C,EAAuB,CACzB,GAAIoM,IAAU,kBAAmB,kBACjCtP,GAAKsG,oBAAoBgJ,EAAQjQ,KAAK6D,QAASA,OAInD8F,IAAK,kBACL5E,MAAO,WACD/E,KAAK2jH,mBAAoB,GACFp9G,SAArBvG,KAAKs2G,cACHt2G,KAAKk2G,mBAAoB,EAC3Bl2G,KAAKs2G,YAAcvrG,OAAOb,WAAWlK,KAAKqkH,YAAYloE,KAAKn8C,MAAOA,KAAKi2G,oBAErEj2G,KAAKs2G,YAAcvrG,OAAOs4G,sBAAsBrjH,KAAKqkH,YAAYloE,KAAKn8C,WAMhF2J,IAAK,cACL5E,MAAO,WACD/E,KAAK2jH,mBAAoB,IAE3B3jH,KAAKs2G,YAAc/vG,OAEfvG,KAAKk2G,mBAAoB,GAE3Bl2G,KAAKmkH,kBAGPnkH,KAAKy9C,UAEDz9C,KAAKk2G,mBAAoB,GAE3Bl2G,KAAKmkH,sBAUXx6G,IAAK,SACL5E,MAAO,WACL/E,KAAKg8C,KAAKE,QAAQzH,KAAK,WACvBz0C,KAAKy9C,aASP9zC,IAAK,iBACL5E,MAAO,WACL,GAAIwwE,GAASv1E,IAETA,MAAK0jH,mBAAoB,GAAQ1jH,KAAK2jH,mBAAoB,GAAS3jH,KAAK6jH,eAAgB,IAC1F7jH,KAAK0jH,iBAAkB,EACnB1jH,KAAKk2G,mBAAoB,EAC3BnrG,OAAOb,WAAW,WAChBqrE,EAAO93B,SAAQ,IACd,GAEH1yC,OAAOs4G,sBAAsB,WAC3B9tC,EAAO93B,SAAQ,SAMvB9zC,IAAK,UACL5E,MAAO,WACL,GAAI8zD,GAASxyD,UAAUC,QAAU,GAAsBC,SAAjBF,UAAU,IAAmB,EAAQA,UAAU,EAErF,IAAIrG,KAAK6jH,eAAgB,EAAM,CAC7B7jH,KAAKg8C,KAAKE,QAAQzH,KAAK,cAEvBz0C,KAAK0jH,iBAAkB,CACvB,IAAIt1E,GAAMpuC,KAAKqnC,OAAOD,MAAMC,OAAOgH,WAAW,OAGP,IAAnCruC,KAAKqnC,OAAOD,MAAMC,OAAOjM,OAAmD,IAApCp7B,KAAKqnC,OAAOD,MAAMC,OAAOhM,SACnEr7B,KAAKqnC,OAAO+E,UAGdpsC,KAAK4zE,YAAc7oE,OAAOg4E,kBAAoB,IAAM30C,EAAI40C,8BAAgC50C,EAAI60C,2BAA6B70C,EAAI80C,0BAA4B90C,EAAI+0C,yBAA2B/0C,EAAIg1C,wBAA0B,GAEtNh1C,EAAIi1C,aAAarjF,KAAK4zE,WAAY,EAAG,EAAG5zE,KAAK4zE,WAAY,EAAG,EAG5D,IAAI7wD,GAAI/iB,KAAKqnC,OAAOD,MAAMC,OAAOC,YAC7B55B,EAAI1N,KAAKqnC,OAAOD,MAAMC,OAAOiF,YAIjC,IAHA8B,EAAIE,UAAU,EAAG,EAAGvrB,EAAGrV,GAGe,IAAlC1N,KAAKqnC,OAAOD,MAAME,YACpB,MAIF8G,GAAIo4D,OACJp4D,EAAI8+D,UAAUltG,KAAKg8C,KAAK86C,KAAKvxD,YAAY/K,EAAGx6B,KAAKg8C,KAAK86C,KAAKvxD,YAAY9lB,GACvE2uB,EAAIppC,MAAMhF,KAAKg8C,KAAK86C,KAAK9xF,MAAOhF,KAAKg8C,KAAK86C,KAAK9xF,OAE/CopC,EAAIa,YACJjvC,KAAKg8C,KAAKE,QAAQzH,KAAK,gBAAiBrG,GACxCA,EAAIkB,YAEAupB,KAAW,IACT74D,KAAKu1D,YAAa,GAASv1D,KAAKu1D,YAAa,GAAQv1D,KAAK6D,QAAQigH,mBAAoB,IACxF9jH,KAAKskH,WAAWl2E,IAIhBpuC,KAAKu1D,YAAa,GAASv1D,KAAKu1D,YAAa,GAAQv1D,KAAK6D,QAAQkgH,mBAAoB,IACxF/jH,KAAKukH,WAAWn2E,EAAKyqB,GAGnB74D,KAAKwkH,sBAAuB,GAC9BxkH,KAAKykH,kBAAkBr2E,GAGzBA,EAAIa,YACJjvC,KAAKg8C,KAAKE,QAAQzH,KAAK,eAAgBrG,GACvCA,EAAIkB,YAGJlB,EAAIu4D,UACA9tC,KAAW,GACbzqB,EAAIE,UAAU,EAAG,EAAGvrB,EAAGrV,OAa7B/D,IAAK,eACL5E,MAAO,WACL,GAAIqpC,GAAMpuC,KAAKqnC,OAAOD,MAAMC,OAAOgH,WAAW,KACtB9nC,UAApBvG,KAAK4zE,aACP5zE,KAAK4zE,YAAc7oE,OAAOg4E,kBAAoB,IAAM30C,EAAI40C,8BAAgC50C,EAAI60C,2BAA6B70C,EAAI80C,0BAA4B90C,EAAI+0C,yBAA2B/0C,EAAIg1C,wBAA0B,IAExNh1C,EAAIi1C,aAAarjF,KAAK4zE,WAAY,EAAG,EAAG5zE,KAAK4zE,WAAY,EAAG,GAC5DxlC,EAAIo4D,OACJp4D,EAAI8+D,UAAUltG,KAAKg8C,KAAK86C,KAAKvxD,YAAY/K,EAAGx6B,KAAKg8C,KAAK86C,KAAKvxD,YAAY9lB,GACvE2uB,EAAIppC,MAAMhF,KAAKg8C,KAAK86C,KAAK9xF,MAAOhF,KAAKg8C,KAAK86C,KAAK9xF,MAE/C,IAAI6wF,GAAQ71F,KAAKg8C,KAAK65C,MAClBr9D,EAAOjyB,MAGX,KAAK,GAAIqzF,KAAU/D,GACbA,EAAM7vF,eAAe4zF,KACvBphE,EAAOq9D,EAAM+D,GACbphE,EAAKoqE,OAAOx0D,GACZ5V,EAAKmqE,kBAAkBv0D,EAAK5V,EAAK2qC,UAKrC/0B,GAAIu4D,aAWNh9F,IAAK,aACL5E,MAAO,SAAoBqpC,GAgBzB,IAAK,GAfDs2E,GAAar+G,UAAUC,QAAU,GAAsBC,SAAjBF,UAAU,IAAmB,EAAQA,UAAU,GAErFwvF,EAAQ71F,KAAKg8C,KAAK65C,MAClBC,EAAc91F,KAAKg8C,KAAK85C,YACxBt9D,EAAOjyB,OACP48D,KACA/hC,EAAS,GACTujF,EAAU3kH,KAAKqnC,OAAOizD,aAAc9/D,GAAI4G,EAAQ3hB,GAAI2hB,IACpDwjF,EAAc5kH,KAAKqnC,OAAOizD,aAC5B9/D,EAAGx6B,KAAKqnC,OAAOD,MAAMC,OAAOC,YAAclG,EAC1C3hB,EAAGzf,KAAKqnC,OAAOD,MAAMC,OAAOiF,aAAelL,IAEzCyjF,GAAiBh8G,IAAK87G,EAAQllG,EAAG9W,KAAMg8G,EAAQnqF,EAAG0Q,OAAQ05E,EAAYnlG,EAAGivB,MAAOk2E,EAAYpqF,GAGvF/zB,EAAI,EAAGA,EAAIqvF,EAAYxvF,OAAQG,IACtC+xB,EAAOq9D,EAAMC,EAAYrvF,IAErB+xB,EAAKssF,aACP3hD,EAAS37D,KAAKsuF,EAAYrvF,IAEtBi+G,KAAe,EACjBlsF,EAAKu/C,KAAK3pC,GACD5V,EAAKusF,6BAA6BF,MAAkB,EAC7DrsF,EAAKu/C,KAAK3pC,GAEV5V,EAAKmqE,kBAAkBv0D,EAAK5V,EAAK2qC,SAMvC,KAAK,GAAI18D,GAAI,EAAGA,EAAI08D,EAAS78D,OAAQG,IACnC+xB,EAAOq9D,EAAM1yB,EAAS18D,IACtB+xB,EAAKu/C,KAAK3pC,MAWdzkC,IAAK,aACL5E,MAAO,SAAoBqpC,GAKzB,IAAK,GAJD2nD,GAAQ/1F,KAAKg8C,KAAK+5C,MAClBC,EAAch2F,KAAKg8C,KAAKg6C,YACxBsG,EAAO/1F,OAEFE,EAAI,EAAGA,EAAIuvF,EAAY1vF,OAAQG,IACtC61F,EAAOvG,EAAMC,EAAYvvF,IACrB61F,EAAK6P,aAAc,GACrB7P,EAAKvkB,KAAK3pC,MAYhBzkC,IAAK,oBACL5E,MAAO,SAA2BqpC,GAKhC,IAAK,GAJD2nD,GAAQ/1F,KAAKg8C,KAAK+5C,MAClBC,EAAch2F,KAAKg8C,KAAKg6C,YACxBsG,EAAO/1F,OAEFE,EAAI,EAAGA,EAAIuvF,EAAY1vF,OAAQG,IACtC61F,EAAOvG,EAAMC,EAAYvvF,IACzB61F,EAAKmoB,kBAAkBr2E,MAU3BzkC,IAAK,0BACL5E,MAAO,WACL,GAAsB,mBAAXgG,QAAwB,CACjC,GAAIi6G,GAAcx6G,UAAUC,UAAUyM,aACtClX,MAAKk2G,iBAAkB,EACgB,IAAnC8O,EAAYz9G,QAAQ,YAEtBvH,KAAKk2G,iBAAkB,EACmB,IAAjC8O,EAAYz9G,QAAQ,WAEzBy9G,EAAYz9G,QAAQ,WAAa,KACnCvH,KAAKk2G,iBAAkB,OAI3Bl2G,MAAKk2G,iBAAkB,MAKtBuN,IAGT7jH,GAAQ,WAAa6jH,EACrB5jH,EAAOD,QAAUA,EAAQ,YAIrB,SAASC,EAAQD,EAASM,GAU9B,QAAS0yE,GAAgBC,EAAUC,GAAe,KAAMD,YAAoBC,IAAgB,KAAM,IAAI5rE,WAAU,qCANhHE,OAAO2rE,eAAenzE,EAAS,cAC7BmF,OAAO,GAGT,IAAIiuE,GAAe,WAAe,QAASC,GAAiB/nE,EAAQrE,GAAS,IAAK,GAAIJ,GAAI,EAAGA,EAAII,EAAMP,OAAQG,IAAK,CAAE,GAAIysE,GAAarsE,EAAMJ,EAAIysE,GAAWC,WAAaD,EAAWC,aAAc,EAAOD,EAAWE,cAAe,EAAU,SAAWF,KAAYA,EAAWG,UAAW,GAAMjsE,OAAO2rE,eAAe7nE,EAAQgoE,EAAWvpE,IAAKupE,IAAiB,MAAO,UAAUJ,EAAaQ,EAAYC,GAAiJ,MAA9HD,IAAYL,EAAiBH,EAAY7/D,UAAWqgE,GAAiBC,GAAaN,EAAiBH,EAAaS,GAAqBT,MAI7hB9uE,EAAS9D,EAAoB,IAC7Bi6D,EAAaj6D,EAAoB,IAEjCS,EAAOT,EAAoB,GAU3B+kH,EAAS,WACX,QAASA,GAAOjpE,GACd42B,EAAgB5yE,KAAMilH,GAEtBjlH,KAAKg8C,KAAOA,EACZh8C,KAAK4zE,WAAa,EAClB5zE,KAAKklH,YAAc3+G,OACnBvG,KAAKmlH,eAAiBnlH,KAAK49D,UAAUzhB,KAAKn8C,MAC1CA,KAAKolH,eAELplH,KAAK6D,WACL7D,KAAKw7C,gBACHC,YAAY,EACZpgB,OAAQ,OACRD,MAAO,QAETz6B,EAAKgG,OAAO3G,KAAK6D,QAAS7D,KAAKw7C,gBAE/Bx7C,KAAK+2F,qBAgYP,MA7XA/jB,GAAaiyC,IACXt7G,IAAK,qBACL5E,MAAO,WACL,GAAI+5C,GAAQ9+C,IAGZA,MAAKg8C,KAAKE,QAAQ7E,KAAK,SAAU,SAAUvxC,GACvB,IAAdA,EAAIs1B,QACN0jB,EAAM9C,KAAK86C,KAAKvxD,YAAY/K,EAAgB,GAAZ10B,EAAIs1B,OAEnB,IAAft1B,EAAIu1B,SACNyjB,EAAM9C,KAAK86C,KAAKvxD,YAAY9lB,EAAiB,GAAb3Z,EAAIu1B,UAGxCr7B,KAAKg8C,KAAKE,QAAQlgB,GAAG,UAAWh8B,KAAKosC,QAAQ+P,KAAKn8C,OAClDA,KAAKg8C,KAAKE,QAAQlgB,GAAG,UAAW,WAC9B8iB,EAAMumE,YAAYtpF,UAClB+iB,EAAMiC,OAAOhlB,UACb+iB,EAAMwmE,gBAIV37G,IAAK,aACL5E,MAAO,SAAoBlB,GACzB,GAAI0xE,GAASv1E,IAEb,IAAgBuG,SAAZ1C,EAAuB,CACzB,GAAIoM,IAAU,QAAS,SAAU,aACjCtP,GAAKsG,oBAAoBgJ,EAAQjQ,KAAK6D,QAASA,GAG7C7D,KAAK6D,QAAQ43C,cAAe,IAE9Bz7C,KAAKslH,WACLtlH,KAAKklH,YAAclnD,YAAY,WAC7B,GAAIlU,GAAUyrB,EAAOnpC,SACjB0d,MAAY,GACdyrB,EAAOv5B,KAAKE,QAAQzH,KAAK,mBAE1B,KACHz0C,KAAKmlH,eAAiBnlH,KAAK49D,UAAUzhB,KAAKn8C,MAC1CW,EAAKwJ,iBAAiBY,OAAQ,SAAU/K,KAAKmlH,oBAIjDx7G,IAAK,WACL5E,MAAO,WAEoBwB,SAArBvG,KAAKklH,aACPrrE,cAAc75C,KAAKklH,aAErBvkH,EAAKgK,oBAAoBI,OAAQ,SAAU/K,KAAKmlH,gBAChDnlH,KAAKmlH,eAAiB5+G,UAGxBoD,IAAK,YACL5E,MAAO,WACL/E,KAAKosC,UACLpsC,KAAKg8C,KAAKE,QAAQzH,KAAK,cAQzB9qC,IAAK,kBACL5E,MAAO,WACL,GAAI6uE,GAAavtE,UAAUC,QAAU,GAAsBC,SAAjBF,UAAU,GAAmBrG,KAAK4zE,WAAavtE,UAAU,EAEnGrG,MAAKolH,YAAYG,cAAgBvlH,KAAKonC,MAAMC,OAAOjM,MAAQw4C,EAC3D5zE,KAAKolH,YAAYI,eAAiBxlH,KAAKonC,MAAMC,OAAOhM,OAASu4C,EAC7D5zE,KAAKolH,YAAYpgH,MAAQhF,KAAKg8C,KAAK86C,KAAK9xF,MACxChF,KAAKolH,YAAY95E,SAAWtrC,KAAKs6F,aAAc9/D,EAAG,GAAMx6B,KAAKonC,MAAMC,OAAOjM,MAAQw4C,EAAYn0D,EAAG,GAAMzf,KAAKonC,MAAMC,OAAOhM,OAASu4C,OAQpIjqE,IAAK,kBACL5E,MAAO,WACL,GAA+BwB,SAA3BvG,KAAKolH,YAAYpgH,OAAyD,IAAlChF,KAAKonC,MAAMC,OAAOC,aAAwD,IAAnCtnC,KAAKonC,MAAMC,OAAOiF,cAA0C,IAApBtsC,KAAK4zE,YAAoB5zE,KAAKolH,YAAYG,cAAgB,EAAG,CAEtLvlH,KAAKg8C,KAAK86C,KAAK9xF,MAAQhF,KAAKolH,YAAYpgH,MAAQC,KAAKL,IAAI5E,KAAKonC,MAAMC,OAAOjM,MAAQp7B,KAAK4zE,WAAa5zE,KAAKolH,YAAYG,cAAevlH,KAAKonC,MAAMC,OAAOhM,OAASr7B,KAAK4zE,WAAa5zE,KAAKolH,YAAYI,eAGnM,IAAIC,GAAoBzlH,KAAKs6F,aAC3B9/D,EAAG,GAAMx6B,KAAKonC,MAAMC,OAAOC,YAC3B7nB,EAAG,GAAMzf,KAAKonC,MAAMC,OAAOiF,eAGzBo5E,GACFlrF,EAAGirF,EAAkBjrF,EAAIx6B,KAAKolH,YAAY95E,SAAS9Q,EACnD/a,EAAGgmG,EAAkBhmG,EAAIzf,KAAKolH,YAAY95E,SAAS7rB,EAErDzf,MAAKg8C,KAAK86C,KAAKvxD,YAAY/K,GAAKkrF,EAAmBlrF,EAAIx6B,KAAKg8C,KAAK86C,KAAK9xF,MACtEhF,KAAKg8C,KAAK86C,KAAKvxD,YAAY9lB,GAAKimG,EAAmBjmG,EAAIzf,KAAKg8C,KAAK86C,KAAK9xF,UAI1E2E,IAAK,gBACL5E,MAAO,SAAuBA,GAC5B,GAAqB,gBAAVA,GACT,MAAOA,GAAQ,IACV,IAAqB,gBAAVA,GAAoB,CACpC,GAA2B,KAAvBA,EAAMwC,QAAQ,MAAuC,KAAxBxC,EAAMwC,QAAQ,MAC7C,MAAOxC,EACF,IAA2B,KAAvBA,EAAMwC,QAAQ,KACvB,MAAOxC,GAAQ,KAGnB,KAAM,IAAIiC,OAAM,wDAA0DjC,MAO5E4E,IAAK,UACL5E,MAAO,WAEL,KAAO/E,KAAKg8C,KAAK/a,UAAUz8B,iBACzBxE,KAAKg8C,KAAK/a,UAAUv8B,YAAY1E,KAAKg8C,KAAK/a,UAAUx8B,WAetD,IAZAzE,KAAKonC,MAAQpN,SAASM,cAAc,OACpCt6B,KAAKonC,MAAMr+B,UAAY,cACvB/I,KAAKonC,MAAMt4B,MAAMw8B,SAAW,WAC5BtrC,KAAKonC,MAAMt4B,MAAMgF,SAAW,SAC5B9T,KAAKonC,MAAMu+E,SAAW,IAItB3lH,KAAKonC,MAAMC,OAASrN,SAASM,cAAc,UAC3Ct6B,KAAKonC,MAAMC,OAAOv4B,MAAMw8B,SAAW,WACnCtrC,KAAKonC,MAAMlN,YAAYl6B,KAAKonC,MAAMC,QAE7BrnC,KAAKonC,MAAMC,OAAOgH,WAOhB,CACL,GAAID,GAAMpuC,KAAKonC,MAAMC,OAAOgH,WAAW,KACvCruC,MAAK4zE,YAAc7oE,OAAOg4E,kBAAoB,IAAM30C,EAAI40C,8BAAgC50C,EAAI60C,2BAA6B70C,EAAI80C,0BAA4B90C,EAAI+0C,yBAA2B/0C,EAAIg1C,wBAA0B,GAEtNpjF,KAAKonC,MAAMC,OAAOgH,WAAW,MAAMg1C,aAAarjF,KAAK4zE,WAAY,EAAG,EAAG5zE,KAAK4zE,WAAY,EAAG,OAX1D,CACjC,GAAIroC,GAAWvR,SAASM,cAAc,MACtCiR,GAASz8B,MAAMrC,MAAQ,MACvB8+B,EAASz8B,MAAM08B,WAAa,OAC5BD,EAASz8B,MAAM28B,QAAU,OACzBF,EAASG,UAAY,mDACrB1rC,KAAKonC,MAAMC,OAAOnN,YAAYqR,GAShCvrC,KAAKg8C,KAAK/a,UAAU/G,YAAYl6B,KAAKonC,OAErCpnC,KAAKg8C,KAAK86C,KAAK9xF,MAAQ,EACvBhF,KAAKg8C,KAAK86C,KAAKvxD,aAAgB/K,EAAG,GAAMx6B,KAAKonC,MAAMC,OAAOC,YAAa7nB,EAAG,GAAMzf,KAAKonC,MAAMC,OAAOiF,cAElGtsC,KAAKm5E,iBAQPxvE,IAAK,cACL5E,MAAO,WACL,GAAIsxE,GAASr2E,IAEOuG,UAAhBvG,KAAK+gD,QACP/gD,KAAK+gD,OAAOhlB,UAEd/7B,KAAKoyE,QACLpyE,KAAK2kF,SAGL3kF,KAAK+gD,OAAS,GAAI/8C,GAAOhE,KAAKonC,MAAMC,QACpCrnC,KAAK+gD,OAAOptB,IAAI,SAASxb,KAAM4sC,QAAQ,IAEvC/kD,KAAK+gD,OAAOptB,IAAI,OAAOxb,KAAM6Y,UAAW,EAAG/H,UAAW,KAEtDkxC,EAAW/C,QAAQp3D,KAAK+gD,OAAQ,SAAUj2C,GACxCurE,EAAOr6B,KAAKi6C,eAAe7+B,QAAQtsD,KAErC9K,KAAK+gD,OAAO/kB,GAAG,MAAO,SAAUlxB,GAC9BurE,EAAOr6B,KAAKi6C,eAAeC,MAAMprF,KAEnC9K,KAAK+gD,OAAO/kB,GAAG,YAAa,SAAUlxB,GACpCurE,EAAOr6B,KAAKi6C,eAAeE,YAAYrrF,KAEzC9K,KAAK+gD,OAAO/kB,GAAG,QAAS,SAAUlxB,GAChCurE,EAAOr6B,KAAKi6C,eAAeG,OAAOtrF,KAEpC9K,KAAK+gD,OAAO/kB,GAAG,WAAY,SAAUlxB,GACnCurE,EAAOr6B,KAAKi6C,eAAeI,YAAYvrF,KAEzC9K,KAAK+gD,OAAO/kB,GAAG,UAAW,SAAUlxB,GAClCurE,EAAOr6B,KAAKi6C,eAAeK,OAAOxrF,KAEpC9K,KAAK+gD,OAAO/kB,GAAG,SAAU,SAAUlxB,GACjCurE,EAAOr6B,KAAKi6C,eAAeM,UAAUzrF,KAEvC9K,KAAK+gD,OAAO/kB,GAAG,QAAS,SAAUlxB,GAChCurE,EAAOr6B,KAAKi6C,eAAeO,QAAQ1rF,KAIrC9K,KAAKonC,MAAMC,OAAOl9B,iBAAiB,aAAc,SAAUW,GACzDurE,EAAOr6B,KAAKi6C,eAAe57B,aAAavvD,KAE1C9K,KAAKonC,MAAMC,OAAOl9B,iBAAiB,iBAAkB,SAAUW,GAC7DurE,EAAOr6B,KAAKi6C,eAAe57B,aAAavvD,KAG1C9K,KAAKonC,MAAMC,OAAOl9B,iBAAiB,YAAa,SAAUW,GACxDurE,EAAOr6B,KAAKi6C,eAAeQ,YAAY3rF,KAEzC9K,KAAKonC,MAAMC,OAAOl9B,iBAAiB,cAAe,SAAUW,GAC1DurE,EAAOr6B,KAAKi6C,eAAeS,UAAU5rF,KAGvC9K,KAAKqlH,YAAc,GAAIrhH,GAAOhE,KAAKonC,OACnC+yB,EAAW7C,UAAUt3D,KAAKqlH,YAAa,SAAUv6G,GAC/CurE,EAAOr6B,KAAKi6C,eAAe3+B,UAAUxsD,QAYzCnB,IAAK,UACL5E,MAAO,WACL,GAAIq2B,GAAQ/0B,UAAUC,QAAU,GAAsBC,SAAjBF,UAAU,GAAmBrG,KAAK6D,QAAQu3B,MAAQ/0B,UAAU,GAC7Fg1B,EAASh1B,UAAUC,QAAU,GAAsBC,SAAjBF,UAAU,GAAmBrG,KAAK6D,QAAQw3B,OAASh1B,UAAU,EAEnG+0B,GAAQp7B,KAAK4lH,cAAcxqF,GAC3BC,EAASr7B,KAAK4lH,cAAcvqF,EAE5B,IAAIwqF,IAAY,EACZC,EAAW9lH,KAAKonC,MAAMC,OAAOjM,MAC7B2qF,EAAY/lH,KAAKonC,MAAMC,OAAOhM,OAG9B+S,EAAMpuC,KAAKonC,MAAMC,OAAOgH,WAAW,MACnC23E,EAAiBhmH,KAAK4zE,UAkD1B,OAjDA5zE,MAAK4zE,YAAc7oE,OAAOg4E,kBAAoB,IAAM30C,EAAI40C,8BAAgC50C,EAAI60C,2BAA6B70C,EAAI80C,0BAA4B90C,EAAI+0C,yBAA2B/0C,EAAIg1C,wBAA0B,GAElNhoD,GAASp7B,KAAK6D,QAAQu3B,OAASC,GAAUr7B,KAAK6D,QAAQw3B,QAAUr7B,KAAKonC,MAAMt4B,MAAMssB,OAASA,GAASp7B,KAAKonC,MAAMt4B,MAAMusB,QAAUA,GAChIr7B,KAAKimH,gBAAgBD,GAErBhmH,KAAKonC,MAAMt4B,MAAMssB,MAAQA,EACzBp7B,KAAKonC,MAAMt4B,MAAMusB,OAASA,EAE1Br7B,KAAKonC,MAAMC,OAAOv4B,MAAMssB,MAAQ,OAChCp7B,KAAKonC,MAAMC,OAAOv4B,MAAMusB,OAAS,OAEjCr7B,KAAKonC,MAAMC,OAAOjM,MAAQn2B,KAAK0c,MAAM3hB,KAAKonC,MAAMC,OAAOC,YAActnC,KAAK4zE,YAC1E5zE,KAAKonC,MAAMC,OAAOhM,OAASp2B,KAAK0c,MAAM3hB,KAAKonC,MAAMC,OAAOiF,aAAetsC,KAAK4zE,YAE5E5zE,KAAK6D,QAAQu3B,MAAQA,EACrBp7B,KAAK6D,QAAQw3B,OAASA,EAEtBwqF,GAAY,KAMR7lH,KAAKonC,MAAMC,OAAOjM,OAASn2B,KAAK0c,MAAM3hB,KAAKonC,MAAMC,OAAOC,YAActnC,KAAK4zE,aAAe5zE,KAAKonC,MAAMC,OAAOhM,QAAUp2B,KAAK0c,MAAM3hB,KAAKonC,MAAMC,OAAOiF,aAAetsC,KAAK4zE,cACzK5zE,KAAKimH,gBAAgBD,GAGnBhmH,KAAKonC,MAAMC,OAAOjM,OAASn2B,KAAK0c,MAAM3hB,KAAKonC,MAAMC,OAAOC,YAActnC,KAAK4zE,cAC7E5zE,KAAKonC,MAAMC,OAAOjM,MAAQn2B,KAAK0c,MAAM3hB,KAAKonC,MAAMC,OAAOC,YAActnC,KAAK4zE,YAC1EiyC,GAAY,GAEV7lH,KAAKonC,MAAMC,OAAOhM,QAAUp2B,KAAK0c,MAAM3hB,KAAKonC,MAAMC,OAAOiF,aAAetsC,KAAK4zE,cAC/E5zE,KAAKonC,MAAMC,OAAOhM,OAASp2B,KAAK0c,MAAM3hB,KAAKonC,MAAMC,OAAOiF,aAAetsC,KAAK4zE,YAC5EiyC,GAAY,IAIZA,KAAc,IAChB7lH,KAAKg8C,KAAKE,QAAQzH,KAAK,UACrBrZ,MAAOn2B,KAAK0c,MAAM3hB,KAAKonC,MAAMC,OAAOjM,MAAQp7B,KAAK4zE,YACjDv4C,OAAQp2B,KAAK0c,MAAM3hB,KAAKonC,MAAMC,OAAOhM,OAASr7B,KAAK4zE,YACnDkyC,SAAU7gH,KAAK0c,MAAMmkG,EAAW9lH,KAAK4zE,YACrCmyC,UAAW9gH,KAAK0c,MAAMokG,EAAY/lH,KAAK4zE,cAIzC5zE,KAAKkmH,mBAGAL,KAGTl8G,IAAK,uBASL5E,MAAO,SAA8By1B,GACnC,OAAQA,EAAIx6B,KAAKg8C,KAAK86C,KAAKvxD,YAAY/K,GAAKx6B,KAAKg8C,KAAK86C,KAAK9xF,SAW7D2E,IAAK,uBACL5E,MAAO,SAA8By1B,GACnC,MAAOA,GAAIx6B,KAAKg8C,KAAK86C,KAAK9xF,MAAQhF,KAAKg8C,KAAK86C,KAAKvxD,YAAY/K,KAW/D7wB,IAAK,uBACL5E,MAAO,SAA8B0a,GACnC,OAAQA,EAAIzf,KAAKg8C,KAAK86C,KAAKvxD,YAAY9lB,GAAKzf,KAAKg8C,KAAK86C,KAAK9xF,SAW7D2E,IAAK,uBACL5E,MAAO,SAA8B0a,GACnC,MAAOA,GAAIzf,KAAKg8C,KAAK86C,KAAK9xF,MAAQhF,KAAKg8C,KAAK86C,KAAKvxD,YAAY9lB,KAU/D9V,IAAK,cACL5E,MAAO,SAAqB+nC,GAC1B,OAAStS,EAAGx6B,KAAKmmH,qBAAqBr5E,EAAItS,GAAI/a,EAAGzf,KAAKomH,qBAAqBt5E,EAAIrtB,OAUjF9V,IAAK,cACL5E,MAAO,SAAqB+nC,GAC1B,OAAStS,EAAGx6B,KAAKqmH,qBAAqBv5E,EAAItS,GAAI/a,EAAGzf,KAAKsmH,qBAAqBx5E,EAAIrtB,QAI5EwlG,IAGTrlH,GAAQ,WAAaqlH,EACrBplH,EAAOD,QAAUA,EAAQ,YAIrB,SAASC,EAAQD,EAASM,GAU9B,QAASuyE,GAAuB3sE,GAAO,MAAOA,IAAOA,EAAI4sE,WAAa5sE,GAAQ6sE,UAAW7sE,GAEzF,QAAS8sE,GAAgBC,EAAUC,GAAe,KAAMD,YAAoBC,IAAgB,KAAM,IAAI5rE,WAAU,qCARhHE,OAAO2rE,eAAenzE,EAAS,cAC7BmF,OAAO,GAGT,IAAIiuE,GAAe,WAAe,QAASC,GAAiB/nE,EAAQrE,GAAS,IAAK,GAAIJ,GAAI,EAAGA,EAAII,EAAMP,OAAQG,IAAK,CAAE,GAAIysE,GAAarsE,EAAMJ,EAAIysE,GAAWC,WAAaD,EAAWC,aAAc,EAAOD,EAAWE,cAAe,EAAU,SAAWF,KAAYA,EAAWG,UAAW,GAAMjsE,OAAO2rE,eAAe7nE,EAAQgoE,EAAWvpE,IAAKupE,IAAiB,MAAO,UAAUJ,EAAaQ,EAAYC,GAAiJ,MAA9HD,IAAYL,EAAiBH,EAAY7/D,UAAWqgE,GAAiBC,GAAaN,EAAiBH,EAAaS,GAAqBT,MAM7hBgsC,EAAe5+G,EAAoB,KAEnC6+G,EAAgBtsC,EAAuBqsC,GAEvCn+G,EAAOT,EAAoB,GAE3BqmH,EAAO,WACT,QAASA,GAAKvqE,EAAM3U,GAClB,GAAIyX,GAAQ9+C,IAEZ4yE,GAAgB5yE,KAAMumH,GAEtBvmH,KAAKg8C,KAAOA,EACZh8C,KAAKqnC,OAASA,EAEdrnC,KAAKwmH,eAAiB,EAAIxmH,KAAKymH,kBAC/BzmH,KAAK0mH,wBAA0B,iBAC/B1mH,KAAK2mH,WAAa,EAClB3mH,KAAK4mH,YAAc,EACnB5mH,KAAK6mH,YAAc,EACnB7mH,KAAK8mH,kBAAoB,EACzB9mH,KAAK+mH,kBAAoB,EACzB/mH,KAAKgnH,eAAiBzgH,OACtBvG,KAAKinH,mBAAqB1gH,OAC1BvG,KAAKknH,UAAY,EAEjBlnH,KAAKy4G,aAAelyG,OAEpBvG,KAAKg8C,KAAKE,QAAQlgB,GAAG,MAAOh8B,KAAK2+C,IAAIxC,KAAKn8C,OAC1CA,KAAKg8C,KAAKE,QAAQlgB,GAAG,oBAAqB,WACxC8iB,EAAM9C,KAAKE,QAAQzH,KAAK,oBAE1Bz0C,KAAKg8C,KAAKE,QAAQlgB,GAAG,aAAch8B,KAAK08F,YAAYvgD,KAAKn8C,OAmS3D,MAhSAgzE,GAAauzC,IACX58G,IAAK,aACL5E,MAAO,WACL,GAAIlB,GAAUwC,UAAUC,QAAU,GAAsBC,SAAjBF,UAAU,MAAwBA,UAAU,EAEnFrG,MAAK6D,QAAUA,KASjB8F,IAAK,MACL5E,MAAO,WACL,GAAIlB,GAAUwC,UAAUC,QAAU,GAAsBC,SAAjBF,UAAU,IAAqBwvF,UAAcxvF,UAAU,GAC1F8gH,EAAc9gH,UAAUC,QAAU,GAAsBC,SAAjBF,UAAU,IAAmB,EAAQA,UAAU,GAEtF02C,EAAQx2C,OACR6gH,EAAY7gH,MAKhB,KAJsBA,SAAlB1C,EAAQgyF,OAAgD,IAAzBhyF,EAAQgyF,MAAMvvF,UAC/CzC,EAAQgyF,MAAQ71F,KAAKg8C,KAAK85C,aAGxBqxB,KAAgB,EAAM,CAExB,GAAIE,GAAkB,CACtB,KAAK,GAAIztB,KAAU55F,MAAKg8C,KAAK65C,MAC3B,GAAI71F,KAAKg8C,KAAK65C,MAAM7vF,eAAe4zF,GAAS,CAC1C,GAAIphE,GAAOx4B,KAAKg8C,KAAK65C,MAAM+D,EACvBphE,GAAK0pE,sBAAuB,IAC9BmlB,GAAmB,GAIzB,GAAIA,EAAkB,GAAMrnH,KAAKg8C,KAAK85C,YAAYxvF,OAEhD,WADAtG,MAAK2+C,IAAI96C,GAAS,EAIpBk5C,GAAQgiE,EAAc,WAAWuI,UAAUtnH,KAAKg8C,KAAK65C,MAAOhyF,EAAQgyF,MAEpE,IAAI0xB,GAAgBvnH,KAAKg8C,KAAK85C,YAAYxvF,MAC1C8gH,GAAY,QAAUG,EAAgB,QAAU,QAGhD,IAAIroE,GAASj6C,KAAKL,IAAI5E,KAAKqnC,OAAOD,MAAMC,OAAOC,YAAc,IAAKtnC,KAAKqnC,OAAOD,MAAMC,OAAOiF,aAAe,IAC1G86E,IAAaloE,MACR,CACLl/C,KAAKg8C,KAAKE,QAAQzH,KAAK,gBACvBsI,EAAQgiE,EAAc,WAAWuI,UAAUtnH,KAAKg8C,KAAK65C,MAAOhyF,EAAQgyF,MAEpE,IAAI/J,GAAgD,IAApC7mF,KAAK6R,IAAIimC,EAAMi/D,KAAOj/D,EAAM++D,MACxC0L,EAAgD,IAApCviH,KAAK6R,IAAIimC,EAAMk/D,KAAOl/D,EAAMg/D,MAExC0L,EAAaznH,KAAKqnC,OAAOD,MAAMC,OAAOC,YAAcwkD,EACpD47B,EAAa1nH,KAAKqnC,OAAOD,MAAMC,OAAOiF,aAAek7E,CAEzDJ,GAA0BM,GAAdD,EAA2BA,EAAaC,EAGlDN,EAAY,EACdA,EAAY,EACW,IAAdA,IACTA,EAAY,EAGd,IAAIn0E,GAAS8rE,EAAc,WAAW4I,YAAY5qE,GAC9C6qE,GAAqBt8E,SAAU2H,EAAQjuC,MAAOoiH,EAAW1oE,UAAW76C,EAAQ66C,UAChF1+C,MAAKkvC,OAAO04E,MAYdj+G,IAAK,QACL5E,MAAO,SAAe60F,GACpB,GAAI/1F,GAAUwC,UAAUC,QAAU,GAAsBC,SAAjBF,UAAU,MAAwBA,UAAU,EAEnF,IAAgCE,SAA5BvG,KAAKg8C,KAAK65C,MAAM+D,GAAuB,CACzC,GAAIiuB,IAAiBrtF,EAAGx6B,KAAKg8C,KAAK65C,MAAM+D,GAAQp/D,EAAG/a,EAAGzf,KAAKg8C,KAAK65C,MAAM+D,GAAQn6E,EAC9E5b,GAAQynC,SAAWu8E,EACnBhkH,EAAQikH,aAAeluB,EAEvB55F,KAAKkvC,OAAOrrC,OAEZ2a,SAAQu8B,IAAI,SAAW6+C,EAAS,wBAYpCjwF,IAAK,SACL5E,MAAO,SAAgBlB,GACrB,MAAgB0C,UAAZ1C,OACFA,OAGqB0C,SAAnB1C,EAAQuiB,SACVviB,EAAQuiB,QAAWoU,EAAG,EAAG/a,EAAG,IAELlZ,SAArB1C,EAAQuiB,OAAOoU,IACjB32B,EAAQuiB,OAAOoU,EAAI,GAEIj0B,SAArB1C,EAAQuiB,OAAO3G,IACjB5b,EAAQuiB,OAAO3G,EAAI,GAEClZ,SAAlB1C,EAAQmB,QACVnB,EAAQmB,MAAQhF,KAAKg8C,KAAK86C,KAAK9xF,OAERuB,SAArB1C,EAAQynC,WACVznC,EAAQynC,SAAWtrC,KAAKy8F,mBAEAl2F,SAAtB1C,EAAQ66C,YACV76C,EAAQ66C,WAAcr5B,SAAU,IAE9BxhB,EAAQ66C,aAAc,IACxB76C,EAAQ66C,WAAcr5B,SAAU,IAE9BxhB,EAAQ66C,aAAc,IACxB76C,EAAQ66C,cAEyBn4C,SAA/B1C,EAAQ66C,UAAUr5B,WACpBxhB,EAAQ66C,UAAUr5B,SAAW,KAEU9e,SAArC1C,EAAQ66C,UAAU0W,iBACpBvxD,EAAQ66C,UAAU0W,eAAiB,qBAGrCp1D,MAAK+nH,YAAYlkH,OAenB8F,IAAK,cACL5E,MAAO,SAAqBlB,GAC1B,GAAgB0C,SAAZ1C,EAAJ,CAGA7D,KAAK0mH,wBAA0B7iH,EAAQ66C,UAAU0W,eAEjDp1D,KAAK08F,cACD74F,EAAQmkH,UAAW,IACrBhoH,KAAKgnH,eAAiBnjH,EAAQikH,aAC9B9nH,KAAKinH,mBAAqBpjH,EAAQuiB,QAIb,GAAnBpmB,KAAK2mH,YACP3mH,KAAKioH,mBAAkB,GAGzBjoH,KAAK4mH,YAAc5mH,KAAKg8C,KAAK86C,KAAK9xF,MAClChF,KAAK8mH,kBAAoB9mH,KAAKg8C,KAAK86C,KAAKvxD,YACxCvlC,KAAK6mH,YAAchjH,EAAQmB,MAI3BhF,KAAKg8C,KAAK86C,KAAK9xF,MAAQhF,KAAK6mH,WAC5B,IAAIqB,GAAaloH,KAAKqnC,OAAOizD,aAAc9/D,EAAG,GAAMx6B,KAAKqnC,OAAOD,MAAMC,OAAOC,YAAa7nB,EAAG,GAAMzf,KAAKqnC,OAAOD,MAAMC,OAAOiF,eAExHo5E,GACFlrF,EAAG0tF,EAAW1tF,EAAI32B,EAAQynC,SAAS9Q,EACnC/a,EAAGyoG,EAAWzoG,EAAI5b,EAAQynC,SAAS7rB,EAErCzf,MAAK+mH,mBACHvsF,EAAGx6B,KAAK8mH,kBAAkBtsF,EAAIkrF,EAAmBlrF,EAAIx6B,KAAK6mH,YAAchjH,EAAQuiB,OAAOoU,EACvF/a,EAAGzf,KAAK8mH,kBAAkBrnG,EAAIimG,EAAmBjmG,EAAIzf,KAAK6mH,YAAchjH,EAAQuiB,OAAO3G,GAItD,IAA/B5b,EAAQ66C,UAAUr5B,SACO9e,QAAvBvG,KAAKgnH,gBACPhnH,KAAKy4G,aAAez4G,KAAKmoH,cAAchsE,KAAKn8C,MAC5CA,KAAKg8C,KAAKE,QAAQlgB,GAAG,aAAch8B,KAAKy4G,gBAExCz4G,KAAKg8C,KAAK86C,KAAK9xF,MAAQhF,KAAK6mH,YAC5B7mH,KAAKg8C,KAAK86C,KAAKvxD,YAAcvlC,KAAK+mH,kBAClC/mH,KAAKg8C,KAAKE,QAAQzH,KAAK,oBAGzBz0C,KAAKwmH,eAAiB,GAAK,GAAK3iH,EAAQ66C,UAAUr5B,SAAW,OAAU,EAAI,GAC3ErlB,KAAK0mH,wBAA0B7iH,EAAQ66C,UAAU0W,eAEjDp1D,KAAKy4G,aAAez4G,KAAKioH,kBAAkB9rE,KAAKn8C,MAChDA,KAAKg8C,KAAKE,QAAQlgB,GAAG,aAAch8B,KAAKy4G,cACxCz4G,KAAKg8C,KAAKE,QAAQzH,KAAK,wBAS3B9qC,IAAK,gBACL5E,MAAO,WACL,GAAI8iH,IAAiBrtF,EAAGx6B,KAAKg8C,KAAK65C,MAAM71F,KAAKgnH,gBAAgBxsF,EAAG/a,EAAGzf,KAAKg8C,KAAK65C,MAAM71F,KAAKgnH,gBAAgBvnG,GACpGyoG,EAAaloH,KAAKqnC,OAAOizD,aAAc9/D,EAAG,GAAMx6B,KAAKqnC,OAAOD,MAAMC,OAAOC,YAAa7nB,EAAG,GAAMzf,KAAKqnC,OAAOD,MAAMC,OAAOiF,eACxHo5E,GACFlrF,EAAG0tF,EAAW1tF,EAAIqtF,EAAartF,EAC/B/a,EAAGyoG,EAAWzoG,EAAIooG,EAAapoG,GAE7BqnG,EAAoB9mH,KAAKg8C,KAAK86C,KAAKvxD,YACnCwhF,GACFvsF,EAAGssF,EAAkBtsF,EAAIkrF,EAAmBlrF,EAAIx6B,KAAKg8C,KAAK86C,KAAK9xF,MAAQhF,KAAKinH,mBAAmBzsF,EAC/F/a,EAAGqnG,EAAkBrnG,EAAIimG,EAAmBjmG,EAAIzf,KAAKg8C,KAAK86C,KAAK9xF,MAAQhF,KAAKinH,mBAAmBxnG,EAGjGzf,MAAKg8C,KAAK86C,KAAKvxD,YAAcwhF,KAG/Bp9G,IAAK,cACL5E,MAAO,WACuBwB,SAAxBvG,KAAKgnH,gBAAsDzgH,SAAtBvG,KAAKy4G,eAC5Cz4G,KAAKg8C,KAAKE,QAAQ/f,IAAI,aAAcn8B,KAAKy4G,cACzCz4G,KAAKgnH,eAAiBzgH,OACtBvG,KAAKinH,mBAAqB1gH,WAU9BoD,IAAK,oBACL5E,MAAO,WACL,GAAIqjH,GAAW/hH,UAAUC,QAAU,GAAsBC,SAAjBF,UAAU,IAAmB,EAAQA,UAAU,EAEvFrG,MAAK2mH,YAAc3mH,KAAKwmH,eACxBxmH,KAAK2mH,WAAayB,KAAa,EAAO,EAAMpoH,KAAK2mH,UAEjD,IAAI5tE,GAAWp4C,EAAKmR,gBAAgB9R,KAAK0mH,yBAAyB1mH,KAAK2mH,WAEvE3mH,MAAKg8C,KAAK86C,KAAK9xF,MAAQhF,KAAK4mH,aAAe5mH,KAAK6mH,YAAc7mH,KAAK4mH,aAAe7tE,EAClF/4C,KAAKg8C,KAAK86C,KAAKvxD,aACb/K,EAAGx6B,KAAK8mH,kBAAkBtsF,GAAKx6B,KAAK+mH,kBAAkBvsF,EAAIx6B,KAAK8mH,kBAAkBtsF,GAAKue,EACtFt5B,EAAGzf,KAAK8mH,kBAAkBrnG,GAAKzf,KAAK+mH,kBAAkBtnG,EAAIzf,KAAK8mH,kBAAkBrnG,GAAKs5B,GAIpF/4C,KAAK2mH,YAAc,IACrB3mH,KAAKg8C,KAAKE,QAAQ/f,IAAI,aAAcn8B,KAAKy4G,cACzCz4G,KAAK2mH,WAAa,EACSpgH,QAAvBvG,KAAKgnH,iBACPhnH,KAAKy4G,aAAez4G,KAAKmoH,cAAchsE,KAAKn8C,MAC5CA,KAAKg8C,KAAKE,QAAQlgB,GAAG,aAAch8B,KAAKy4G,eAE1Cz4G,KAAKg8C,KAAKE,QAAQzH,KAAK,yBAI3B9qC,IAAK,WACL5E,MAAO,WACL,MAAO/E,MAAKg8C,KAAK86C,KAAK9xF,SAGxB2E,IAAK,kBACL5E,MAAO,WACL,MAAO/E,MAAKqnC,OAAOizD,aAAc9/D,EAAG,GAAMx6B,KAAKqnC,OAAOD,MAAMC,OAAOC,YAAa7nB,EAAG,GAAMzf,KAAKqnC,OAAOD,MAAMC,OAAOiF,mBAI/Gi6E,IAGT3mH,GAAQ,WAAa2mH,EACrB1mH,EAAOD,QAAUA,EAAQ,YAIrB,SAASC,EAAQD,EAASM,GAU9B,QAASuyE,GAAuB3sE,GAAO,MAAOA,IAAOA,EAAI4sE,WAAa5sE,GAAQ6sE,UAAW7sE,GAEzF,QAAS8sE,GAAgBC,EAAUC,GAAe,KAAMD,YAAoBC,IAAgB,KAAM,IAAI5rE,WAAU,qCARhHE,OAAO2rE,eAAenzE,EAAS,cAC7BmF,OAAO,GAGT,IAAIiuE,GAAe,WAAe,QAASC,GAAiB/nE,EAAQrE,GAAS,IAAK,GAAIJ,GAAI,EAAGA,EAAII,EAAMP,OAAQG,IAAK,CAAE,GAAIysE,GAAarsE,EAAMJ,EAAIysE,GAAWC,WAAaD,EAAWC,aAAc,EAAOD,EAAWE,cAAe,EAAU,SAAWF,KAAYA,EAAWG,UAAW,GAAMjsE,OAAO2rE,eAAe7nE,EAAQgoE,EAAWvpE,IAAKupE,IAAiB,MAAO,UAAUJ,EAAaQ,EAAYC,GAAiJ,MAA9HD,IAAYL,EAAiBH,EAAY7/D,UAAWqgE,GAAiBC,GAAaN,EAAiBH,EAAaS,GAAqBT,MAM7hBu1C,EAA+BnoH,EAAoB,KAEnDooH,EAAgC71C,EAAuB41C,GAEvDE,EAAmBroH,EAAoB,KAEvCsoH,EAAoB/1C,EAAuB81C,GAE3C5nH,EAAOT,EAAoB,GAE3BuoH,EAAqB,WACvB,QAASA,GAAmBzsE,EAAM3U,EAAQ8vD,GACxCvkB,EAAgB5yE,KAAMyoH,GAEtBzoH,KAAKg8C,KAAOA,EACZh8C,KAAKqnC,OAASA,EACdrnC,KAAKm3F,iBAAmBA,EACxBn3F,KAAK0oH,kBAAoB,GAAIJ,GAA8B,WAAWtsE,EAAM3U,GAG5ErnC,KAAKg8C,KAAKi6C,eAAeC,MAAQl2F,KAAKk2F,MAAM/5C,KAAKn8C,MACjDA,KAAKg8C,KAAKi6C,eAAe7+B,QAAUp3D,KAAKo3D,QAAQjb,KAAKn8C,MACrDA,KAAKg8C,KAAKi6C,eAAeE,YAAcn2F,KAAKm2F,YAAYh6C,KAAKn8C,MAC7DA,KAAKg8C,KAAKi6C,eAAeG,OAASp2F,KAAKo2F,OAAOj6C,KAAKn8C,MACnDA,KAAKg8C,KAAKi6C,eAAeI,YAAcr2F,KAAKq2F,YAAYl6C,KAAKn8C,MAC7DA,KAAKg8C,KAAKi6C,eAAeK,OAASt2F,KAAKs2F,OAAOn6C,KAAKn8C,MACnDA,KAAKg8C,KAAKi6C,eAAeM,UAAYv2F,KAAKu2F,UAAUp6C,KAAKn8C,MACzDA,KAAKg8C,KAAKi6C,eAAe57B,aAAer6D,KAAKq6D,aAAale,KAAKn8C,MAC/DA,KAAKg8C,KAAKi6C,eAAeO,QAAUx2F,KAAKw2F,QAAQr6C,KAAKn8C,MACrDA,KAAKg8C,KAAKi6C,eAAeQ,YAAcz2F,KAAKy2F,YAAYt6C,KAAKn8C,MAC7DA,KAAKg8C,KAAKi6C,eAAe3+B,UAAYt3D,KAAKs3D,UAAUnb,KAAKn8C,MACzDA,KAAKg8C,KAAKi6C,eAAeS,UAAY12F,KAAK02F,UAAUv6C,KAAKn8C,MAEzDA,KAAKknH,UAAY,EACjBlnH,KAAKoyE,QACLpyE,KAAK2kF,SACL3kF,KAAK2oH,MAAQpiH,OACbvG,KAAK4oH,SAAWriH,OAChBvG,KAAK6oH,WAAatiH,OAElBvG,KAAKg8C,KAAK26C,UAAU/hC,WAAa50D,KAAK40D,WAAWzY,KAAKn8C,MAEtDA,KAAK6D,WACL7D,KAAKw7C,gBACHstE,WAAW,EACXC,UAAU,EACV36G,OAAO,EACP46G,UACEn4G,SAAS,EACTo4G,OAASzuF,EAAG,GAAI/a,EAAG,GAAIo3C,KAAM,KAC7BqyD,cAAc,GAEhBC,mBAAmB,EACnBC,aAAc,IACdC,UAAU,GAEZ1oH,EAAKgG,OAAO3G,KAAK6D,QAAS7D,KAAKw7C,gBAE/Bx7C,KAAK+2F,qBAkrBP,MA/qBA/jB,GAAay1C,IACX9+G,IAAK,qBACL5E,MAAO,WACL,GAAI+5C,GAAQ9+C,IAEZA,MAAKg8C,KAAKE,QAAQlgB,GAAG,UAAW,WAC9BmE,aAAa2e,EAAM+pE,kBACZ/pE,GAAM9C,KAAK26C,UAAU/hC,gBAIhCjrD,IAAK,aACL5E,MAAO,SAAoBlB,GACzB,GAAgB0C,SAAZ1C,EAAuB,CAEzB,GAAIoM,IAAU,kBAAmB,kBAAmB,WAAY,cAAe,aAAc,uBAC7FtP,GAAK2G,uBAAuB2I,EAAQjQ,KAAK6D,QAASA,GAGlDlD,EAAK+P,aAAa1Q,KAAK6D,QAASA,EAAS,YAErCA,EAAQ4pC,UACV9sC,EAAKgG,OAAO3G,KAAK6D,QAAQ4pC,QAAS5pC,EAAQ4pC,SACtC5pC,EAAQ4pC,QAAQhhC,QAClBzM,KAAK6D,QAAQ4pC,QAAQhhC,MAAQ9L,EAAKwM,WAAWtJ,EAAQ4pC,QAAQhhC,SAKnEzM,KAAK0oH,kBAAkB9sF,WAAW57B,KAAK6D,YAUzC8F,IAAK,aACL5E,MAAO,SAAoBwlD,GACzB,OACE/vB,EAAG+vB,EAAM/vB,EAAI75B,EAAK6H,gBAAgBxI,KAAKqnC,OAAOD,MAAMC,QACpD5nB,EAAG8qC,EAAM9qC,EAAI9e,EAAKiI,eAAe5I,KAAKqnC,OAAOD,MAAMC,YAUvD19B,IAAK,UACL5E,MAAO,SAAiB+F,IAClB,GAAIzF,OAAOyC,UAAY9H,KAAKknH,UAAY,KAC1ClnH,KAAKoyE,KAAK1b,QAAU12D,KAAK40D,WAAW9pD,EAAMmoC,QAC1CjzC,KAAKoyE,KAAKk3C,SAAU,EACpBtpH,KAAK2kF,MAAM3/E,MAAQhF,KAAKg8C,KAAK86C,KAAK9xF,MAElChF,KAAKknH,WAAY,GAAI7hH,OAAOyC,cAShC6B,IAAK,QACL5E,MAAO,SAAe+F,GACpB,GAAI4rD,GAAU12D,KAAK40D,WAAW9pD,EAAMmoC,QAChC4rB,EAAc7+D,KAAKm3F,iBAAiBtzF,QAAQg7D,cAAgB/zD,EAAMi7C,gBAAgB,GAAG2e,SAAW55D,EAAMi7C,gBAAgB,GAAG4e,QAE7H3kE,MAAKupH,sBAAsB7yD,EAAS5rD,EAAO+zD,GAC3C7+D,KAAKm3F,iBAAiBqyB,oBAAoB,QAAS1+G,EAAO4rD,MAQ5D/sD,IAAK,cACL5E,MAAO,SAAqB+F,GAC1B,GAAI4rD,GAAU12D,KAAK40D,WAAW9pD,EAAMmoC,OACpCjzC,MAAKm3F,iBAAiBqyB,oBAAoB,cAAe1+G,EAAO4rD,MAQlE/sD,IAAK,SACL5E,MAAO,SAAgB+F,GACrB,GAAI4rD,GAAU12D,KAAK40D,WAAW9pD,EAAMmoC,QAChC4rB,EAAc7+D,KAAKm3F,iBAAiBtzF,QAAQg7D,WAEhD7+D,MAAKupH,sBAAsB7yD,EAAS5rD,EAAO+zD,GAE3C7+D,KAAKm3F,iBAAiBqyB,oBAAoB,QAAS1+G,EAAO4rD,GAC1D12D,KAAKm3F,iBAAiBqyB,oBAAoB,OAAQ1+G,EAAO4rD,MAS3D/sD,IAAK,YACL5E,MAAO,SAAmB+F,GACxB,IAAI,GAAIzF,OAAOyC,UAAY9H,KAAKknH,UAAY,GAAI,CAC9C,GAAIxwD,GAAU12D,KAAK40D,WAAW9pD,EAAMmoC,OACpCjzC,MAAKm3F,iBAAiBqyB,oBAAoB,UAAW1+G,EAAO4rD,GAE5D12D,KAAKknH,WAAY,GAAI7hH,OAAOyC,cAIhC6B,IAAK,YACL5E,MAAO,SAAmB+F,GACxB,GAAI4rD,GAAU12D,KAAK40D,YAAap6B,EAAG1vB,EAAM45B,QAASjlB,EAAG3U,EAAM+5B,SAC3D7kC,MAAKm3F,iBAAiBqyB,oBAAoB,YAAa1+G,EAAO4rD,MAShE/sD,IAAK,wBACL5E,MAAO,SAA+B2xD,EAAS5rD,GAC7C,GAAI4V,GAAMra,UAAUC,QAAU,GAAsBC,SAAjBF,UAAU,IAAmB,EAAQA,UAAU,GAE9EojH,EAA8BzpH,KAAKm3F,iBAAiBuyB,wBACpDC,EAA8B3pH,KAAKm3F,iBAAiByyB,wBACpDC,EAAoB7pH,KAAKm3F,iBAAiB/4C,eAC1C+kB,EAAW58D,MAEb48D,GADEziD,KAAQ,EACC1gB,KAAKm3F,iBAAiB2yB,wBAAwBpzD,GAE9C12D,KAAKm3F,iBAAiB4yB,cAAcrzD,EAEjD,IAAIszD,GAAqBhqH,KAAKm3F,iBAAiBuyB,wBAC3CO,EAAqBjqH,KAAKm3F,iBAAiByyB,wBAC3CM,EAAmBlqH,KAAKm3F,iBAAiB/4C,eAEzC+rE,EAAyBnqH,KAAKoqH,sBAAsBP,EAAmBK,GAEvEG,EAAeF,EAAuBE,aACtCC,EAAeH,EAAuBG,aAEtCC,GAAe,CAEfN,GAAqBN,EAA8B,GAErD3pH,KAAKm3F,iBAAiBqyB,oBAAoB,aAAc1+G,EAAO4rD,GAC/DyM,GAAW,EACXonD,GAAe,GAC6C,EAAnDN,EAAqBN,GAE9B3pH,KAAKm3F,iBAAiBqyB,oBAAoB,eAAgB1+G,EAAO4rD,EAASmzD,GAC1E1mD,GAAW,GACF8mD,IAAuBN,GAA+BU,KAAiB,IAChFrqH,KAAKm3F,iBAAiBqyB,oBAAoB,eAAgB1+G,EAAO4rD,EAASmzD,GAC1E7pH,KAAKm3F,iBAAiBqyB,oBAAoB,aAAc1+G,EAAO4rD,GAC/D6zD,GAAe,EACfpnD,GAAW,GAIT6mD,EAAqBP,EAA8B,GAAKc,KAAiB,GAE3EvqH,KAAKm3F,iBAAiBqyB,oBAAoB,aAAc1+G,EAAO4rD,GAC/DyM,GAAW,GACiD,EAAnD6mD,EAAqBP,GAE9BzpH,KAAKm3F,iBAAiBqyB,oBAAoB,eAAgB1+G,EAAO4rD,EAASmzD,GAC1E1mD,GAAW,GACF6mD,IAAuBP,GAA+Ba,KAAiB,IAChFtqH,KAAKm3F,iBAAiBqyB,oBAAoB,eAAgB1+G,EAAO4rD,EAASmzD,GAC1E7pH,KAAKm3F,iBAAiBqyB,oBAAoB,aAAc1+G,EAAO4rD,GAC/DyM,GAAW,GAITA,KAAa,GAEfnjE,KAAKm3F,iBAAiBqyB,oBAAoB,SAAU1+G,EAAO4rD,MAY/D/sD,IAAK,wBACL5E,MAAO,SAA+B8kH,EAAmBK,GAIvD,IAAK,GAHDG,IAAe,EACfC,GAAe,EAEV7jH,EAAI,EAAGA,EAAIojH,EAAkBh0B,MAAMvvF,OAAQG,IACiB,KAA/DyjH,EAAiBr0B,MAAMtuF,QAAQsiH,EAAkBh0B,MAAMpvF,MACzD4jH,GAAe,EAGnB,KAAK,GAAI5jH,GAAI,EAAGA,EAAIyjH,EAAiBr0B,MAAMvvF,OAAQG,IACmB,KAAhEojH,EAAkBh0B,MAAMtuF,QAAQsiH,EAAkBh0B,MAAMpvF,MAC1D4jH,GAAe,EAGnB,KAAK,GAAI5jH,GAAI,EAAGA,EAAIojH,EAAkB9zB,MAAMzvF,OAAQG,IACiB,KAA/DyjH,EAAiBn0B,MAAMxuF,QAAQsiH,EAAkB9zB,MAAMtvF,MACzD6jH,GAAe,EAGnB,KAAK,GAAI7jH,GAAI,EAAGA,EAAIyjH,EAAiBn0B,MAAMzvF,OAAQG,IACmB,KAAhEojH,EAAkB9zB,MAAMxuF,QAAQsiH,EAAkB9zB,MAAMtvF,MAC1D6jH,GAAe,EAInB,QAASD,aAAcA,EAAcC,aAAcA,MAUrD3gH,IAAK,cACL5E,MAAO,SAAqB+F,GAEAvE,SAAtBvG,KAAKoyE,KAAK1b,SACZ12D,KAAKo3D,QAAQtsD,EAIf,IAAI0tB,GAAOx4B,KAAKm3F,iBAAiBiF,UAAUp8F,KAAKoyE,KAAK1b,QAOrD,IALA12D,KAAKoyE,KAAK7c,UAAW,EACrBv1D,KAAKoyE,KAAKj0B,aACVn+C,KAAKoyE,KAAK7sC,YAAc5kC,EAAKgG,UAAW3G,KAAKg8C,KAAK86C,KAAKvxD,aACvDvlC,KAAKoyE,KAAKwnB,OAASrzF,OAENA,SAATiyB,GAAsBx4B,KAAK6D,QAAQilH,aAAc,EAAM,CACzD9oH,KAAKoyE,KAAKwnB,OAASphE,EAAKn4B,GAEpBm4B,EAAKssF,gBAAiB,IACxB9kH,KAAKm3F,iBAAiB4C,cACtB/5F,KAAKm3F,iBAAiBqzB,aAAahyF,IAIrCx4B,KAAKm3F,iBAAiBqyB,oBAAoB,YAAa1+G,EAAO9K,KAAKoyE,KAAK1b,QAExE,IAAIvY,GAAYn+C,KAAKm3F,iBAAiBszB,aAAa50B,KAEnD,KAAK,GAAI+D,KAAUz7C,GACjB,GAAIA,EAAUn4C,eAAe4zF,GAAS,CACpC,GAAIx1F,GAAS+5C,EAAUy7C,GACnBjsF,GACFtN,GAAI+D,EAAO/D,GACXm4B,KAAMp0B,EAGNo2B,EAAGp2B,EAAOo2B,EACV/a,EAAGrb,EAAOqb,EACVirG,OAAQtmH,EAAOP,QAAQ+5F,MAAMpjE,EAC7BmwF,OAAQvmH,EAAOP,QAAQ+5F,MAAMn+E,EAG/Brb,GAAOP,QAAQ+5F,MAAMpjE,GAAI,EACzBp2B,EAAOP,QAAQ+5F,MAAMn+E,GAAI,EAEzBzf,KAAKoyE,KAAKj0B,UAAU32C,KAAKmG,QAK7B3N,MAAKm3F,iBAAiBqyB,oBAAoB,YAAa1+G,EAAO9K,KAAKoyE,KAAK1b,QAASnwD,QAAW,MAShGoD,IAAK,SACL5E,MAAO,SAAgB+F,GACrB,GAAIyqE,GAASv1E,IAEb,IAAIA,KAAKoyE,KAAKk3C,WAAY,EAA1B,CAKAtpH,KAAKg8C,KAAKE,QAAQzH,KAAK,aAEvB,IAAIiiB,GAAU12D,KAAK40D,WAAW9pD,EAAMmoC,QAEhCkL,EAAYn+C,KAAKoyE,KAAKj0B,SAC1B,IAAIA,GAAaA,EAAU73C,QAAUtG,KAAK6D,QAAQilH,aAAc,GAC9D,WACEvzC,EAAO4hB,iBAAiBqyB,oBAAoB,WAAY1+G,EAAO4rD,EAG/D,IAAIpP,GAASoP,EAAQl8B,EAAI+6C,EAAOnD,KAAK1b,QAAQl8B,EACzC+sB,EAASmP,EAAQj3C,EAAI81D,EAAOnD,KAAK1b,QAAQj3C,CAG7C0+B,GAAU70C,QAAQ,SAAU60C,GAC1B,GAAI3lB,GAAO2lB,EAAU3lB,IAEjB2lB,GAAUusE,UAAW,IACvBlyF,EAAKgC,EAAI+6C,EAAOluC,OAAOg/E,qBAAqB9wC,EAAOluC,OAAO8+E,qBAAqBhoE,EAAU3jB,GAAK8sB,IAG5FnJ,EAAUwsE,UAAW,IACvBnyF,EAAK/Y,EAAI81D,EAAOluC,OAAOi/E,qBAAqB/wC,EAAOluC,OAAO++E,qBAAqBjoE,EAAU1+B,GAAK8nC,MAKlGguB,EAAOv5B,KAAKE,QAAQzH,KAAK,0BAI3B,IAAIz0C,KAAK6D,QAAQklH,YAAa,EAAM,CAIlC,GAHA/oH,KAAKm3F,iBAAiBqyB,oBAAoB,WAAY1+G,EAAO4rD,EAASnwD,QAAW,GAGvDA,SAAtBvG,KAAKoyE,KAAK1b,QAEZ,WADA12D,MAAKq2F,YAAYvrF,EAGnB,IAAIopC,GAAQwiB,EAAQl8B,EAAIx6B,KAAKoyE,KAAK1b,QAAQl8B,EACtC2Z,EAAQuiB,EAAQj3C,EAAIzf,KAAKoyE,KAAK1b,QAAQj3C,CAE1Czf,MAAKg8C,KAAK86C,KAAKvxD,aAAgB/K,EAAGx6B,KAAKoyE,KAAK7sC,YAAY/K,EAAI0Z,EAAOz0B,EAAGzf,KAAKoyE,KAAK7sC,YAAY9lB,EAAI00B,GAChGn0C,KAAKg8C,KAAKE,QAAQzH,KAAK,gBAU7B9qC,IAAK,YACL5E,MAAO,SAAmB+F,GACxB9K,KAAKoyE,KAAK7c,UAAW,CACrB,IAAIpX,GAAYn+C,KAAKoyE,KAAKj0B,SACtBA,IAAaA,EAAU73C,QACzB63C,EAAU70C,QAAQ,SAAUqE,GAE1BA,EAAE6qB,KAAK30B,QAAQ+5F,MAAMpjE,EAAI7sB,EAAE+8G,OAC3B/8G,EAAE6qB,KAAK30B,QAAQ+5F,MAAMn+E,EAAI9R,EAAEg9G,SAE7B3qH,KAAKm3F,iBAAiBqyB,oBAAoB,UAAW1+G,EAAO9K,KAAK40D,WAAW9pD,EAAMmoC,SAClFjzC,KAAKg8C,KAAKE,QAAQzH,KAAK,qBAEvBz0C,KAAKm3F,iBAAiBqyB,oBAAoB,UAAW1+G,EAAO9K,KAAK40D,WAAW9pD,EAAMmoC,QAAS1sC,QAAW,GACtGvG,KAAKg8C,KAAKE,QAAQzH,KAAK,sBAU3B9qC,IAAK,UACL5E,MAAO,SAAiB+F,GACtB,GAAI4rD,GAAU12D,KAAK40D,WAAW9pD,EAAMmoC,OAEpCjzC,MAAKoyE,KAAKk3C,SAAU,EACQ/iH,SAAxBvG,KAAK2kF,MAAa,QACpB3kF,KAAK2kF,MAAM3/E,MAAQ,EAIrB,IAAIA,GAAQhF,KAAK2kF,MAAM3/E,MAAQ8F,EAAM9F,KACrChF,MAAK62D,KAAK7xD,EAAO0xD,MAWnB/sD,IAAK,OACL5E,MAAO,SAAcC,EAAO0xD,GAC1B,GAAI12D,KAAK6D,QAAQwlH,YAAa,EAAM,CAClC,GAAIuB,GAAW5qH,KAAKg8C,KAAK86C,KAAK9xF,KAClB,MAARA,IACFA,EAAQ,MAENA,EAAQ,KACVA,EAAQ,GAGV,IAAI6lH,GAAsBtkH,MACRA,UAAdvG,KAAKoyE,MACHpyE,KAAKoyE,KAAK7c,YAAa,IACzBs1D,EAAsB7qH,KAAKqnC,OAAOizD,YAAYt6F,KAAKoyE,KAAK1b,SAI5D,IAAInxB,GAAcvlC,KAAKg8C,KAAK86C,KAAKvxD,YAE7BulF,EAAY9lH,EAAQ4lH,EACpBG,GAAM,EAAID,GAAap0D,EAAQl8B,EAAI+K,EAAY/K,EAAIswF,EACnDE,GAAM,EAAIF,GAAap0D,EAAQj3C,EAAI8lB,EAAY9lB,EAAIqrG,CAKvD,IAHA9qH,KAAKg8C,KAAK86C,KAAK9xF,MAAQA,EACvBhF,KAAKg8C,KAAK86C,KAAKvxD,aAAgB/K,EAAGuwF,EAAItrG,EAAGurG,GAEdzkH,QAAvBskH,EAAkC,CACpC,GAAII,GAAuBjrH,KAAKqnC,OAAOgzD,YAAYwwB,EACnD7qH,MAAKoyE,KAAK1b,QAAQl8B,EAAIywF,EAAqBzwF,EAC3Cx6B,KAAKoyE,KAAK1b,QAAQj3C,EAAIwrG,EAAqBxrG,EAG7Czf,KAAKg8C,KAAKE,QAAQzH,KAAK,kBAERzvC,EAAX4lH,EACF5qH,KAAKg8C,KAAKE,QAAQzH,KAAK,QAAUxrB,UAAW,IAAKjkB,MAAOhF,KAAKg8C,KAAK86C,KAAK9xF,QAEvEhF,KAAKg8C,KAAKE,QAAQzH,KAAK,QAAUxrB,UAAW,IAAKjkB,MAAOhF,KAAKg8C,KAAK86C,KAAK9xF,YAa7E2E,IAAK,eACL5E,MAAO,SAAsB+F,GAE3B,GAAIkf,GAAQ,CAcZ,IAbIlf,EAAMwqC,WAERtrB,EAAQlf,EAAMwqC,WAAa,IAClBxqC,EAAMyqC,SAIfvrB,GAASlf,EAAMyqC,OAAS,GAMZ,IAAVvrB,EAAa,CAGf,GAAIhlB,GAAQhF,KAAKg8C,KAAK86C,KAAK9xF,MACvB6xD,EAAO7sC,EAAQ,EACP,GAARA,IACF6sC,GAAe,EAAIA,GAErB7xD,GAAS,EAAI6xD,CAGb,IAAIH,GAAU12D,KAAK40D,YAAap6B,EAAG1vB,EAAM45B,QAASjlB,EAAG3U,EAAM+5B,SAG3D7kC,MAAK62D,KAAK7xD,EAAO0xD,GAInB5rD,EAAMD,oBASRlB,IAAK,cACL5E,MAAO,SAAqB+F,GAC1B,GAAIurE,GAASr2E,KAET02D,EAAU12D,KAAK40D,YAAap6B,EAAG1vB,EAAM45B,QAASjlB,EAAG3U,EAAM+5B,UACvDqmF,GAAe,CAqCnB,IAlCmB3kH,SAAfvG,KAAK2oH,QACH3oH,KAAK2oH,MAAM9vD,UAAW,GACxB74D,KAAKmrH,gBAAgBz0D,GAInB12D,KAAK2oH,MAAM9vD,UAAW,IACxBqyD,GAAe,EACflrH,KAAK2oH,MAAMyC,YAAY10D,EAAQl8B,EAAI,EAAGk8B,EAAQj3C,EAAI,GAClDzf,KAAK2oH,MAAMppE,SAKXv/C,KAAK6D,QAAQmlH,SAASE,gBAAiB,GAASlpH,KAAK6D,QAAQmlH,SAASn4G,WAAY,GACpF7Q,KAAKqnC,OAAOD,MAAMwX,QAIhBssE,KAAiB,IACK3kH,SAApBvG,KAAK6oH,aACPhvE,cAAc75C,KAAK6oH,YACnB7oH,KAAK6oH,WAAatiH,QAEfvG,KAAKoyE,KAAK7c,WACbv1D,KAAK6oH,WAAa3+G,WAAW;AAC3B,MAAOmsE,GAAOg1C,gBAAgB30D,IAC7B12D,KAAK6D,QAAQulH,gBAOhBppH,KAAK6D,QAAQuK,SAAU,EAAM,CAE/B,GAAItI,GAAM9F,KAAKm3F,iBAAiBiF,UAAU1lC,EAC9BnwD,UAART,IACFA,EAAM9F,KAAKm3F,iBAAiBkF,UAAU3lC,IAExC12D,KAAKm3F,iBAAiBm0B,YAAYxlH,OAatC6D,IAAK,kBACL5E,MAAO,SAAyB2xD,GAC9B,GAAIl8B,GAAIx6B,KAAKqnC,OAAOg/E,qBAAqB3vD,EAAQl8B,GAC7C/a,EAAIzf,KAAKqnC,OAAOi/E,qBAAqB5vD,EAAQj3C,GAC7C8rG,GACF5iH,KAAM6xB,EACN3xB,IAAK4W,EACLivB,MAAOlU,EACP0Q,OAAQzrB,GAGN+rG,EAAuCjlH,SAAlBvG,KAAK4oH,SAAyBriH,OAAYvG,KAAK4oH,SAASvoH,GAC7EorH,GAAkB,EAClBC,EAAY,MAGhB,IAAsBnlH,SAAlBvG,KAAK4oH,SAAwB,CAM/B,IAAK,GAJD9yB,GAAc91F,KAAKg8C,KAAK85C,YACxBD,EAAQ71F,KAAKg8C,KAAK65C,MAClBr9D,EAAOjyB,OACPolH,KACKllH,EAAI,EAAGA,EAAIqvF,EAAYxvF,OAAQG,IACtC+xB,EAAOq9D,EAAMC,EAAYrvF,IACrB+xB,EAAKozF,kBAAkBL,MAAgB,GACjBhlH,SAApBiyB,EAAKqzF,YACPF,EAAiBnkH,KAAKsuF,EAAYrvF,GAKpCklH,GAAiBrlH,OAAS,IAE5BtG,KAAK4oH,SAAW/yB,EAAM81B,EAAiBA,EAAiBrlH,OAAS,IAEjEmlH,GAAkB,GAItB,GAAsBllH,SAAlBvG,KAAK4oH,UAA0B6C,KAAoB,EAAO,CAM5D,IAAK,GAJDz1B,GAAch2F,KAAKg8C,KAAKg6C,YACxBD,EAAQ/1F,KAAKg8C,KAAK+5C,MAClBuG,EAAO/1F,OACPulH,KACKrlH,EAAI,EAAGA,EAAIuvF,EAAY1vF,OAAQG,IACtC61F,EAAOvG,EAAMC,EAAYvvF,IACrB61F,EAAKsvB,kBAAkBL,MAAgB,GACrCjvB,EAAK6P,aAAc,GAA4B5lG,SAApB+1F,EAAKuvB,YAClCC,EAAiBtkH,KAAKwuF,EAAYvvF,GAKpCqlH,GAAiBxlH,OAAS,IAC5BtG,KAAK4oH,SAAW7yB,EAAM+1B,EAAiBA,EAAiBxlH,OAAS,IACjEolH,EAAY,QAIMnlH,SAAlBvG,KAAK4oH,SAEH5oH,KAAK4oH,SAASvoH,KAAOmrH,IACJjlH,SAAfvG,KAAK2oH,QACP3oH,KAAK2oH,MAAQ,GAAIH,GAAkB,WAAWxoH,KAAKqnC,OAAOD,QAG5DpnC,KAAK2oH,MAAMoD,gBAAkBL,EAC7B1rH,KAAK2oH,MAAMqD,cAAgBhsH,KAAK4oH,SAASvoH,GAKzCL,KAAK2oH,MAAMyC,YAAY10D,EAAQl8B,EAAI,EAAGk8B,EAAQj3C,EAAI,GAClDzf,KAAK2oH,MAAMsD,QAAQjsH,KAAK4oH,SAASiD,YACjC7rH,KAAK2oH,MAAMppE,OACXv/C,KAAKg8C,KAAKE,QAAQzH,KAAK,YAAaz0C,KAAK4oH,SAASvoH,KAGjCkG,SAAfvG,KAAK2oH,QACP3oH,KAAK2oH,MAAMpnD,OACXvhE,KAAKg8C,KAAKE,QAAQzH,KAAK,iBAY7B9qC,IAAK,kBACL5E,MAAO,SAAyB2xD,GAC9B,GAAI60D,GAAavrH,KAAKm3F,iBAAiB+0B,yBAAyBx1D,GAE5Dy1D,GAAa,CACjB,IAAmC,SAA/BnsH,KAAK2oH,MAAMoD,iBACb,GAAkDxlH,SAA9CvG,KAAKg8C,KAAK65C,MAAM71F,KAAK2oH,MAAMqD,iBAC7BG,EAAansH,KAAKg8C,KAAK65C,MAAM71F,KAAK2oH,MAAMqD,eAAeJ,kBAAkBL,GAIrEY,KAAe,GAAM,CACvB,GAAIC,GAAWpsH,KAAKm3F,iBAAiBiF,UAAU1lC,EAC/Cy1D,GAAaC,EAAS/rH,KAAOL,KAAK2oH,MAAMqD,mBAIKzlH,UAA7CvG,KAAKm3F,iBAAiBiF,UAAU1lC,IACgBnwD,SAA9CvG,KAAKg8C,KAAK+5C,MAAM/1F,KAAK2oH,MAAMqD,iBAC7BG,EAAansH,KAAKg8C,KAAK+5C,MAAM/1F,KAAK2oH,MAAMqD,eAAeJ,kBAAkBL,GAK3EY,MAAe,IACjBnsH,KAAK4oH,SAAWriH,OAChBvG,KAAK2oH,MAAMpnD,OACXvhE,KAAKg8C,KAAKE,QAAQzH,KAAK,kBAKtBg0E,IAGT7oH,GAAQ,WAAa6oH,EACrB5oH,EAAOD,QAAUA,EAAQ,YAIrB,SAASC,EAAQD,EAASM,GAU9B,QAAS0yE,GAAgBC,EAAUC,GAAe,KAAMD,YAAoBC,IAAgB,KAAM,IAAI5rE,WAAU,qCANhHE,OAAO2rE,eAAenzE,EAAS,cAC7BmF,OAAO,GAGT,IAAIiuE,GAAe,WAAe,QAASC,GAAiB/nE,EAAQrE,GAAS,IAAK,GAAIJ,GAAI,EAAGA,EAAII,EAAMP,OAAQG,IAAK,CAAE,GAAIysE,GAAarsE,EAAMJ,EAAIysE,GAAWC,WAAaD,EAAWC,aAAc,EAAOD,EAAWE,cAAe,EAAU,SAAWF,KAAYA,EAAWG,UAAW,GAAMjsE,OAAO2rE,eAAe7nE,EAAQgoE,EAAWvpE,IAAKupE,IAAiB,MAAO,UAAUJ,EAAaQ,EAAYC,GAAiJ,MAA9HD,IAAYL,EAAiBH,EAAY7/D,UAAWqgE,GAAiBC,GAAaN,EAAiBH,EAAaS,GAAqBT,MAK7hB9uE,GADO9D,EAAoB,GAClBA,EAAoB,KAC7Bi6D,EAAaj6D,EAAoB,IACjC+D,EAAW/D,EAAoB,IAE/BmsH,EAAoB,WACtB,QAASA,GAAkBrwE,EAAM3U,GAC/B,GAAIyX,GAAQ9+C,IAEZ4yE,GAAgB5yE,KAAMqsH,GAEtBrsH,KAAKg8C,KAAOA,EACZh8C,KAAKqnC,OAASA,EAEdrnC,KAAKssH,cAAe,EACpBtsH,KAAKusH,qBACLvsH,KAAKwsH,kBACLxsH,KAAKknH,UAAY,EACjBlnH,KAAKysH,WAAY,EAEjBzsH,KAAKg8C,KAAKE,QAAQlgB,GAAG,WAAY,WAC/B8iB,EAAM2tE,WAAY,EAAK3tE,EAAM4tE,8BAE/B1sH,KAAKg8C,KAAKE,QAAQlgB,GAAG,aAAc,WACjC8iB,EAAM2tE,WAAY,EAAM3tE,EAAM4tE,8BAEhC1sH,KAAKg8C,KAAKE,QAAQlgB,GAAG,UAAW,WACPz1B,SAAnBu4C,EAAM76C,UACR66C,EAAM76C,SAAS83B,YAInB/7B,KAAK6D,WAkRP,MA/QAmvE,GAAaq5C,IACX1iH,IAAK,aACL5E,MAAO,SAAoBlB,GACT0C,SAAZ1C,IACF7D,KAAK6D,QAAUA,EACf7D,KAAKoQ,aAITzG,IAAK,SACL5E,MAAO,WACD/E,KAAK6D,QAAQslH,qBAAsB,EACjCnpH,KAAKssH,gBAAiB,GACxBtsH,KAAK2sH,yBAEE3sH,KAAKssH,gBAAiB,GAC/BtsH,KAAK4sH,kBAGP5sH,KAAK0sH,+BAGP/iH,IAAK,kBACL5E,MAAO,WAEL,GAAqC,GAAjC/E,KAAKusH,kBAAkBjmH,OAAa,CACtC,IAAK,GAAIG,GAAI,EAAGA,EAAIzG,KAAKusH,kBAAkBjmH,OAAQG,IACjDzG,KAAKusH,kBAAkB9lH,GAAGs1B,SAE5B/7B,MAAKusH,qBAIHvsH,KAAK6sH,eAAiB7sH,KAAK6sH,cAAuB,SAAK7sH,KAAK6sH,cAAuB,QAAExhH,YACvFrL,KAAK6sH,cAAuB,QAAExhH,WAAW3G,YAAY1E,KAAK6sH,cAAuB,SAGnF7sH,KAAKssH,cAAe,KAYtB3iH,IAAK,yBACL5E,MAAO,WACL,GAAIwwE,GAASv1E,IAEbA,MAAK4sH,kBAEL5sH,KAAK6sH,gBACL,IAAIC,IAAkB,KAAM,OAAQ,OAAQ,QAAS,SAAU,UAAW,eACtEC,GAAwB,UAAW,YAAa,YAAa,aAAc,UAAW,WAAY,OAEtG/sH,MAAK6sH,cAAuB,QAAI7yF,SAASM,cAAc,OACvDt6B,KAAK6sH,cAAuB,QAAE9jH,UAAY,iBAC1C/I,KAAKqnC,OAAOD,MAAMlN,YAAYl6B,KAAK6sH,cAAuB,QAE1D,KAAK,GAAIpmH,GAAI,EAAGA,EAAIqmH,EAAexmH,OAAQG,IAAK,CAC9CzG,KAAK6sH,cAAcC,EAAermH,IAAMuzB,SAASM,cAAc,OAC/Dt6B,KAAK6sH,cAAcC,EAAermH,IAAIsC,UAAY,kBAAoB+jH,EAAermH,GACrFzG,KAAK6sH,cAAuB,QAAE3yF,YAAYl6B,KAAK6sH,cAAcC,EAAermH,IAE5E,IAAIs6C,GAAS,GAAI/8C,GAAOhE,KAAK6sH,cAAcC,EAAermH,IAC1B,UAA5BsmH,EAAqBtmH,GACvB0zD,EAAW/C,QAAQrW,EAAQ/gD,KAAKgtH,KAAK7wE,KAAKn8C,OAE1Cm6D,EAAW/C,QAAQrW,EAAQ/gD,KAAKitH,aAAa9wE,KAAKn8C,KAAM+sH,EAAqBtmH,KAG/EzG,KAAKusH,kBAAkB/kH,KAAKu5C,GAK9B,GAAIskE,GAAc,GAAIrhH,GAAOhE,KAAKqnC,OAAOD,MACzC+yB,GAAW7C,UAAU+tD,EAAa,WAChC9vC,EAAO23C,kBAETltH,KAAKusH,kBAAkB/kH,KAAK69G,GAE5BrlH,KAAKssH,cAAe,KAGtB3iH,IAAK,eACL5E,MAAO,SAAsBsF,GACS9D,SAAhCvG,KAAKwsH,eAAeniH,KACtBrK,KAAKwsH,eAAeniH,GAAUrK,KAAKqK,GAAQ8xC,KAAKn8C,MAChDA,KAAKg8C,KAAKE,QAAQlgB,GAAG,aAAch8B,KAAKwsH,eAAeniH,IACvDrK,KAAKg8C,KAAKE,QAAQzH,KAAK,uBAI3B9qC,IAAK,mBACL5E,MAAO,SAA0BsF,GACK9D,SAAhCvG,KAAKwsH,eAAeniH,KACtBrK,KAAKg8C,KAAKE,QAAQ/f,IAAI,aAAcn8B,KAAKwsH,eAAeniH,IACxDrK,KAAKg8C,KAAKE,QAAQzH,KAAK,wBAChBz0C,MAAKwsH,eAAeniH,OAU/BV,IAAK,OACL5E,MAAO,YACD,GAAIM,OAAOyC,UAAY9H,KAAKknH,UAAY,MAE1ClnH,KAAKg8C,KAAKE,QAAQzH,KAAK,OAASpvB,SAAU,MAC1CrlB,KAAKknH,WAAY,GAAI7hH,OAAOyC,cAUhC6B,IAAK,gBACL5E,MAAO,WACL,IAAK,GAAIooH,KAAentH,MAAKwsH,eACvBxsH,KAAKwsH,eAAexmH,eAAemnH,KACrCntH,KAAKg8C,KAAKE,QAAQ/f,IAAI,aAAcn8B,KAAKwsH,eAAeW,IACxDntH,KAAKg8C,KAAKE,QAAQzH,KAAK,kBAG3Bz0C,MAAKwsH,qBAGP7iH,IAAK,UACL5E,MAAO,WACL/E,KAAKg8C,KAAK86C,KAAKvxD,YAAY9lB,GAAKzf,KAAK6D,QAAQmlH,SAASC,MAAMxpG,KAG9D9V,IAAK,YACL5E,MAAO,WACL/E,KAAKg8C,KAAK86C,KAAKvxD,YAAY9lB,GAAKzf,KAAK6D,QAAQmlH,SAASC,MAAMxpG,KAG9D9V,IAAK,YACL5E,MAAO,WACL/E,KAAKg8C,KAAK86C,KAAKvxD,YAAY/K,GAAKx6B,KAAK6D,QAAQmlH,SAASC,MAAMzuF,KAG9D7wB,IAAK,aACL5E,MAAO,WACL/E,KAAKg8C,KAAK86C,KAAKvxD,YAAY/K,GAAKx6B,KAAK6D,QAAQmlH,SAASC,MAAMzuF,KAG9D7wB,IAAK,UACL5E,MAAO,WACL/E,KAAKg8C,KAAK86C,KAAK9xF,OAAS,EAAIhF,KAAK6D,QAAQmlH,SAASC,MAAMpyD,KACxD72D,KAAKg8C,KAAKE,QAAQzH,KAAK,QAAUxrB,UAAW,IAAKjkB,MAAOhF,KAAKg8C,KAAK86C,KAAK9xF,WAGzE2E,IAAK,WACL5E,MAAO,WACL/E,KAAKg8C,KAAK86C,KAAK9xF,OAAS,EAAIhF,KAAK6D,QAAQmlH,SAASC,MAAMpyD,KACxD72D,KAAKg8C,KAAKE,QAAQzH,KAAK,QAAUxrB,UAAW,IAAKjkB,MAAOhF,KAAKg8C,KAAK86C,KAAK9xF,WAOzE2E,IAAK,4BACL5E,MAAO,WACL,GAAIsxE,GAASr2E,IAESuG,UAAlBvG,KAAKiE,UACPjE,KAAKiE,SAAS83B,UAGZ/7B,KAAK6D,QAAQmlH,SAASn4G,WAAY,IAChC7Q,KAAK6D,QAAQmlH,SAASE,gBAAiB,EACzClpH,KAAKiE,SAAWA,GAAWg9B,UAAWl2B,OAAQF,gBAAgB,IAE9D7K,KAAKiE,SAAWA,GAAWg9B,UAAWjhC,KAAKqnC,OAAOD,MAAOv8B,gBAAgB,IAG3E7K,KAAKiE,SAASstD,QAEVvxD,KAAKysH,aAAc,IACrBzsH,KAAKiE,SAASk4C,KAAK,KAAM,WACvBk6B,EAAO42C,aAAa,YACnB,WACHjtH,KAAKiE,SAASk4C,KAAK,OAAQ,WACzBk6B,EAAO42C,aAAa,cACnB,WACHjtH,KAAKiE,SAASk4C,KAAK,OAAQ,WACzBk6B,EAAO42C,aAAa,cACnB,WACHjtH,KAAKiE,SAASk4C,KAAK,QAAS,WAC1Bk6B,EAAO42C,aAAa,eACnB,WACHjtH,KAAKiE,SAASk4C,KAAK,IAAK,WACtBk6B,EAAO42C,aAAa,YACnB,WACHjtH,KAAKiE,SAASk4C,KAAK,OAAQ,WACzBk6B,EAAO42C,aAAa,YACnB,WACHjtH,KAAKiE,SAASk4C,KAAK,OAAQ,WACzBk6B,EAAO42C,aAAa,aACnB,WACHjtH,KAAKiE,SAASk4C,KAAK,IAAK,WACtBk6B,EAAO42C,aAAa,aACnB,WACHjtH,KAAKiE,SAASk4C,KAAK,IAAK,WACtBk6B,EAAO42C,aAAa,aACnB,WACHjtH,KAAKiE,SAASk4C,KAAK,IAAK,WACtBk6B,EAAO42C,aAAa,YACnB,WACHjtH,KAAKiE,SAASk4C,KAAK,SAAU,WAC3Bk6B,EAAO42C,aAAa,YACnB,WACHjtH,KAAKiE,SAASk4C,KAAK,WAAY,WAC7Bk6B,EAAO42C,aAAa,aACnB,WAEHjtH,KAAKiE,SAASk4C,KAAK,KAAM,WACvBk6B,EAAO+2C,iBAAiB,YACvB,SACHptH,KAAKiE,SAASk4C,KAAK,OAAQ,WACzBk6B,EAAO+2C,iBAAiB,cACvB,SACHptH,KAAKiE,SAASk4C,KAAK,OAAQ,WACzBk6B,EAAO+2C,iBAAiB,cACvB,SACHptH,KAAKiE,SAASk4C,KAAK,QAAS,WAC1Bk6B,EAAO+2C,iBAAiB,eACvB,SACHptH,KAAKiE,SAASk4C,KAAK,IAAK,WACtBk6B,EAAO+2C,iBAAiB,YACvB,SACHptH,KAAKiE,SAASk4C,KAAK,OAAQ,WACzBk6B,EAAO+2C,iBAAiB,YACvB,SACHptH,KAAKiE,SAASk4C,KAAK,OAAQ,WACzBk6B,EAAO+2C,iBAAiB,aACvB,SACHptH,KAAKiE,SAASk4C,KAAK,IAAK,WACtBk6B,EAAO+2C,iBAAiB,aACvB,SACHptH,KAAKiE,SAASk4C,KAAK,IAAK,WACtBk6B,EAAO+2C,iBAAiB,aACvB,SACHptH,KAAKiE,SAASk4C,KAAK,IAAK,WACtBk6B,EAAO+2C,iBAAiB,YACvB,SACHptH,KAAKiE,SAASk4C,KAAK,SAAU,WAC3Bk6B,EAAO+2C,iBAAiB,YACvB,SACHptH,KAAKiE,SAASk4C,KAAK,WAAY,WAC7Bk6B,EAAO+2C,iBAAiB,aACvB,eAMJf,IAGTzsH,GAAQ,WAAaysH,EACrBxsH,EAAOD,QAAUA,EAAQ,YAIrB,SAASC,EAAQD,GAmBrB,QAASgzE,GAAgBC,EAAUC,GAAe,KAAMD,YAAoBC,IAAgB,KAAM,IAAI5rE,WAAU,qCANhHE,OAAO2rE,eAAenzE,EAAS,cAC7BmF,OAAO,GAGT,IAAIiuE,GAAe,WAAe,QAASC,GAAiB/nE,EAAQrE,GAAS,IAAK,GAAIJ,GAAI,EAAGA,EAAII,EAAMP,OAAQG,IAAK,CAAE,GAAIysE,GAAarsE,EAAMJ,EAAIysE,GAAWC,WAAaD,EAAWC,aAAc,EAAOD,EAAWE,cAAe,EAAU,SAAWF,KAAYA,EAAWG,UAAW,GAAMjsE,OAAO2rE,eAAe7nE,EAAQgoE,EAAWvpE,IAAKupE,IAAiB,MAAO,UAAUJ,EAAaQ,EAAYC,GAAiJ,MAA9HD,IAAYL,EAAiBH,EAAY7/D,UAAWqgE,GAAiBC,GAAaN,EAAiBH,EAAaS,GAAqBT,MAI7hBu6C,EAAQ,WACV,QAASA,GAAMpsF,GACb2xC,EAAgB5yE,KAAMqtH,GAEtBrtH,KAAKihC,UAAYA,EAEjBjhC,KAAKw6B,EAAI,EACTx6B,KAAKyf,EAAI,EACTzf,KAAKyrC,QAAU,EACfzrC,KAAK64D,QAAS,EAGd74D,KAAKonC,MAAQpN,SAASM,cAAc,OACpCt6B,KAAKonC,MAAMr+B,UAAY,sBACvB/I,KAAKihC,UAAU/G,YAAYl6B,KAAKonC,OAmFlC,MA3EA4rC,GAAaq6C,IACX1jH,IAAK,cACL5E,MAAO,SAAqBy1B,EAAG/a,GAC7Bzf,KAAKw6B,EAAIjuB,SAASiuB,GAClBx6B,KAAKyf,EAAIlT,SAASkT,MAQpB9V,IAAK,UACL5E,MAAO,SAAiBk2B,GAClBA,YAAmBuuC,UACrBxpE,KAAKonC,MAAMsE,UAAY,GACvB1rC,KAAKonC,MAAMlN,YAAYe,IAEvBj7B,KAAKonC,MAAMsE,UAAYzQ,KAS3BtxB,IAAK,OACL5E,MAAO,SAAcuoH,GAKnB,GAJe/mH,SAAX+mH,IACFA,GAAS,GAGPA,KAAW,EAAM,CACnB,GAAIjyF,GAASr7B,KAAKonC,MAAMkF,aACpBlR,EAAQp7B,KAAKonC,MAAME,YACnBuU,EAAY77C,KAAKonC,MAAM/7B,WAAWihC,aAClCmgC,EAAWzsE,KAAKonC,MAAM/7B,WAAWi8B,YAEjCz+B,EAAM7I,KAAKyf,EAAI4b,CACfxyB,GAAMwyB,EAASr7B,KAAKyrC,QAAUoQ,IAChChzC,EAAMgzC,EAAYxgB,EAASr7B,KAAKyrC,SAE9B5iC,EAAM7I,KAAKyrC,UACb5iC,EAAM7I,KAAKyrC,QAGb,IAAI9iC,GAAO3I,KAAKw6B,CACZ7xB,GAAOyyB,EAAQp7B,KAAKyrC,QAAUghC,IAChC9jE,EAAO8jE,EAAWrxC,EAAQp7B,KAAKyrC,SAE7B9iC,EAAO3I,KAAKyrC,UACd9iC,EAAO3I,KAAKyrC,SAGdzrC,KAAKonC,MAAMt4B,MAAMnG,KAAOA,EAAO,KAC/B3I,KAAKonC,MAAMt4B,MAAMjG,IAAMA,EAAM,KAC7B7I,KAAKonC,MAAMt4B,MAAMwuD,WAAa,UAC9Bt9D,KAAK64D,QAAS,MAEd74D,MAAKuhE,UAQT53D,IAAK,OACL5E,MAAO,WACL/E,KAAK64D,QAAS,EACd74D,KAAKonC,MAAMt4B,MAAMwuD,WAAa,aAI3B+vD,IAGTztH,GAAQ,WAAaytH,EACrBxtH,EAAOD,QAAUA,EAAQ,YAIrB,SAASC,EAAQD,EAASM,GAU9B,QAAS0yE,GAAgBC,EAAUC,GAAe,KAAMD,YAAoBC,IAAgB,KAAM,IAAI5rE,WAAU,qCANhHE,OAAO2rE,eAAenzE,EAAS,cAC7BmF,OAAO,GAGT,IAAIiuE,GAAe,WAAe,QAASC,GAAiB/nE,EAAQrE,GAAS,IAAK,GAAIJ,GAAI,EAAGA,EAAII,EAAMP,OAAQG,IAAK,CAAE,GAAIysE,GAAarsE,EAAMJ,EAAIysE,GAAWC,WAAaD,EAAWC,aAAc,EAAOD,EAAWE,cAAe,EAAU,SAAWF,KAAYA,EAAWG,UAAW,GAAMjsE,OAAO2rE,eAAe7nE,EAAQgoE,EAAWvpE,IAAKupE,IAAiB,MAAO,UAAUJ,EAAaQ,EAAYC,GAAiJ,MAA9HD,IAAYL,EAAiBH,EAAY7/D,UAAWqgE,GAAiBC,GAAaN,EAAiBH,EAAaS,GAAqBT,MAI7hBgvB,EAAO5hG,EAAoB,IAC3B+rG,EAAO/rG,EAAoB,IAC3BS,EAAOT,EAAoB,GAE3BqtH,EAAmB,WACrB,QAASA,GAAiBvxE,EAAM3U,GAC9B,GAAIyX,GAAQ9+C,IAEZ4yE,GAAgB5yE,KAAMutH,GAEtBvtH,KAAKg8C,KAAOA,EACZh8C,KAAKqnC,OAASA,EACdrnC,KAAKyqH,cAAiB50B,SAAWE,UACjC/1F,KAAKwtH,UAAa33B,SAAWE,UAE7B/1F,KAAK6D,WACL7D,KAAKw7C,gBACHqjB,aAAa,EACbD,YAAY,EACZ6uD,sBAAsB,EACtBC,qBAAqB,GAEvB/sH,EAAKgG,OAAO3G,KAAK6D,QAAS7D,KAAKw7C,gBAE/Bx7C,KAAKg8C,KAAKE,QAAQlgB,GAAG,eAAgB,WACnC8iB,EAAM6uE,oBAusBV,MAnsBA36C,GAAau6C,IACX5jH,IAAK,aACL5E,MAAO,SAAoBlB,GACzB,GAAgB0C,SAAZ1C,EAAuB,CACzB,GAAIoM,IAAU,cAAe,sBAAuB,aAAc,uBAClEtP,GAAKsG,oBAAoBgJ,EAAQjQ,KAAK6D,QAASA,OAWnD8F,IAAK,gBACL5E,MAAO,SAAuB2xD,GAC5B,GAAIyM,IAAW,CACf,IAAInjE,KAAK6D,QAAQ+6D,cAAe,EAAM,CACpC,GAAI94D,GAAM9F,KAAKo8F,UAAU1lC,IAAY12D,KAAKq8F,UAAU3lC,EAGpD12D,MAAK+5F,cAEOxzF,SAART,IACFq9D,EAAWnjE,KAAKwqH,aAAa1kH,IAE/B9F,KAAKg8C,KAAKE,QAAQzH,KAAK,kBAEzB,MAAO0uB,MAGTx5D,IAAK,0BACL5E,MAAO,SAAiC2xD,GACtC,GAAIk3D,IAAmB,CACvB,IAAI5tH,KAAK6D,QAAQ+6D,cAAe,EAAM,CACpC,GAAI94D,GAAM9F,KAAKo8F,UAAU1lC,IAAY12D,KAAKq8F,UAAU3lC,EAExCnwD,UAART,IACF8nH,GAAmB,EACf9nH,EAAIg/G,gBAAiB,EACvB9kH,KAAK6tH,eAAe/nH,GAEpB9F,KAAKwqH,aAAa1kH,GAGpB9F,KAAKg8C,KAAKE,QAAQzH,KAAK,mBAG3B,MAAOm5E,MAGTjkH,IAAK,sBACL5E,MAAO,SAA6B+8C,EAAWh3C,EAAO4rD,EAASgQ,GAC7D,GAAIonD,GAAiBznH,UAAUC,QAAU,GAAsBC,SAAjBF,UAAU,IAAmB,EAAQA,UAAU,GAEzFs8C,EAAap8C,MAEfo8C,GADEmrE,KAAmB,GACNj4B,SAAWE,UAEb/1F,KAAKo+C,eAEpBuE,EAAoB,SAClBorE,KAAOvzF,EAAGk8B,EAAQl8B,EAAG/a,EAAGi3C,EAAQj3C,GAChC4nB,OAAQrnC,KAAKqnC,OAAOizD,YAAY5jC,IAElC/T,EAAkB,MAAI73C,EAEDvE,SAAjBmgE,IACF/jB,EAA8B,kBAAI+jB,GAEpC1mE,KAAKg8C,KAAKE,QAAQzH,KAAKqN,EAAWa,MAGpCh5C,IAAK,eACL5E,MAAO,SAAsBe,GAC3B,GAAIkoH,GAAiB3nH,UAAUC,QAAU,GAAsBC,SAAjBF,UAAU,GAAmBrG,KAAK6D,QAAQ4pH,qBAAuBpnH,UAAU,EAEzH,OAAYE,UAART,GACEA,YAAeg8F,IACbksB,KAAmB,GACrBhuH,KAAKiuH,sBAAsBnoH,GAG/BA,EAAI27D,SACJzhE,KAAKkuH,gBAAgBpoH,IACd,IAEF,KAGT6D,IAAK,iBACL5E,MAAO,SAAwBe,GACzBA,EAAIg/G,gBAAiB,IACvBh/G,EAAIq9D,UAAW,EACfnjE,KAAKmuH,qBAAqBroH,OAW9B6D,IAAK,8BACL5E,MAAO,SAAqCX,GAG1C,IAAK,GAFDunH,MACA91B,EAAQ71F,KAAKg8C,KAAK65C,MACbpvF,EAAI,EAAGA,EAAIzG,KAAKg8C,KAAK85C,YAAYxvF,OAAQG,IAAK,CACrD,GAAImzF,GAAS55F,KAAKg8C,KAAK85C,YAAYrvF,EAC/BovF,GAAM+D,GAAQgyB,kBAAkBxnH,IAClCunH,EAAiBnkH,KAAKoyF,GAG1B,MAAO+xB,MAWThiH,IAAK,2BACL5E,MAAO,SAAkC2xD,GACvC,GAAI03D,GAAYpuH,KAAKqnC,OAAOizD,YAAY5jC,EACxC,QACE/tD,KAAMylH,EAAU5zF,EAAI,EACpB3xB,IAAKulH,EAAU3uG,EAAI,EACnBivB,MAAO0/E,EAAU5zF,EAAI,EACrB0Q,OAAQkjF,EAAU3uG,EAAI,MAW1B9V,IAAK,YACL5E,MAAO,SAAmB2xD,GACxB,GAAI23D,GAAahoH,UAAUC,QAAU,GAAsBC,SAAjBF,UAAU,IAAmB,EAAOA,UAAU,GAGpFioH,EAAiBtuH,KAAKksH,yBAAyBx1D,GAC/Ci1D,EAAmB3rH,KAAKuuH,4BAA4BD,EAGxD,OAAI3C,GAAiBrlH,OAAS,EACxB+nH,KAAe,EACVruH,KAAKg8C,KAAK65C,MAAM81B,EAAiBA,EAAiBrlH,OAAS,IAE3DqlH,EAAiBA,EAAiBrlH,OAAS,GAGpD,UAWJqD,IAAK,2BACL5E,MAAO,SAAkCX,EAAQ0nH,GAE/C,IAAK,GADD/1B,GAAQ/1F,KAAKg8C,KAAK+5C,MACbtvF,EAAI,EAAGA,EAAIzG,KAAKg8C,KAAKg6C,YAAY1vF,OAAQG,IAAK,CACrD,GAAIozF,GAAS75F,KAAKg8C,KAAKg6C,YAAYvvF,EAC/BsvF,GAAM8D,GAAQ+xB,kBAAkBxnH,IAClC0nH,EAAiBtkH,KAAKqyF,OAY5BlwF,IAAK,8BACL5E,MAAO,SAAqCX,GAC1C,GAAI0nH,KAEJ,OADA9rH,MAAKwuH,yBAAyBpqH,EAAQ0nH,GAC/BA,KAWTniH,IAAK,YACL5E,MAAO,SAAmB2xD,GACxB,GAAI+3D,GAAapoH,UAAUC,QAAU,GAAsBC,SAAjBF,UAAU,IAAmB,EAAOA,UAAU,GAEpFioH,EAAiBtuH,KAAKksH,yBAAyBx1D,GAC/Co1D,EAAmB9rH,KAAK0uH,4BAA4BJ,EAExD,OAAIxC,GAAiBxlH,OAAS,EACxBmoH,KAAe,EACVzuH,KAAKg8C,KAAK+5C,MAAM+1B,EAAiBA,EAAiBxlH,OAAS,IAE3DwlH,EAAiBA,EAAiBxlH,OAAS,GAGpD,UAWJqD,IAAK,kBACL5E,MAAO,SAAyBe,GAC1BA,YAAeg8F,GACjB9hG,KAAKyqH,aAAa50B,MAAM/vF,EAAIzF,IAAMyF,EAElC9F,KAAKyqH,aAAa10B,MAAMjwF,EAAIzF,IAAMyF,KAWtC6D,IAAK,cACL5E,MAAO,SAAqBe,GACtBA,YAAeg8F,GACjB9hG,KAAKwtH,SAAS33B,MAAM/vF,EAAIzF,IAAMyF,EAE9B9F,KAAKwtH,SAASz3B,MAAMjwF,EAAIzF,IAAMyF,KAWlC6D,IAAK,uBACL5E,MAAO,SAA8Be,GAC/BA,YAAeg8F,UACV9hG,MAAKyqH,aAAa50B,MAAM/vF,EAAIzF,IACnCL,KAAK2uH,wBAAwB7oH,UAEtB9F,MAAKyqH,aAAa10B,MAAMjwF,EAAIzF,OAQvCsJ,IAAK,cACL5E,MAAO,WACL,IAAK,GAAI60F,KAAU55F,MAAKyqH,aAAa50B,MAC/B71F,KAAKyqH,aAAa50B,MAAM7vF,eAAe4zF,IACzC55F,KAAKyqH,aAAa50B,MAAM+D,GAAQp4B,UAGpC,KAAK,GAAIq4B,KAAU75F,MAAKyqH,aAAa10B,MAC/B/1F,KAAKyqH,aAAa10B,MAAM/vF,eAAe6zF,IACzC75F,KAAKyqH,aAAa10B,MAAM8D,GAAQr4B,UAIpCxhE,MAAKyqH,cAAiB50B,SAAWE,aAUnCpsF,IAAK,wBACL5E,MAAO,WACL,GAAIoqB,GAAQ,CACZ,KAAK,GAAIyqE,KAAU55F,MAAKyqH,aAAa50B,MAC/B71F,KAAKyqH,aAAa50B,MAAM7vF,eAAe4zF,KACzCzqE,GAAS,EAGb,OAAOA,MAUTxlB,IAAK,mBACL5E,MAAO,WACL,IAAK,GAAI60F,KAAU55F,MAAKyqH,aAAa50B,MACnC,GAAI71F,KAAKyqH,aAAa50B,MAAM7vF,eAAe4zF,GACzC,MAAO55F,MAAKyqH,aAAa50B,MAAM+D,MAarCjwF,IAAK,mBACL5E,MAAO,WACL,IAAK,GAAI80F,KAAU75F,MAAKyqH,aAAa10B,MACnC,GAAI/1F,KAAKyqH,aAAa10B,MAAM/vF,eAAe6zF,GACzC,MAAO75F,MAAKyqH,aAAa10B,MAAM8D,MAarClwF,IAAK,wBACL5E,MAAO,WACL,GAAIoqB,GAAQ,CACZ,KAAK,GAAI0qE,KAAU75F,MAAKyqH,aAAa10B,MAC/B/1F,KAAKyqH,aAAa10B,MAAM/vF,eAAe6zF,KACzC1qE,GAAS,EAGb,OAAOA,MAUTxlB,IAAK,0BACL5E,MAAO,WACL,GAAIoqB,GAAQ,CACZ,KAAK,GAAIyqE,KAAU55F,MAAKyqH,aAAa50B,MAC/B71F,KAAKyqH,aAAa50B,MAAM7vF,eAAe4zF,KACzCzqE,GAAS,EAGb,KAAK,GAAI0qE,KAAU75F,MAAKyqH,aAAa10B,MAC/B/1F,KAAKyqH,aAAa10B,MAAM/vF,eAAe6zF,KACzC1qE,GAAS,EAGb,OAAOA,MAUTxlB,IAAK,oBACL5E,MAAO,WACL,IAAK,GAAI60F,KAAU55F,MAAKyqH,aAAa50B,MACnC,GAAI71F,KAAKyqH,aAAa50B,MAAM7vF,eAAe4zF,GACzC,OAAO,CAGX,KAAK,GAAIC,KAAU75F,MAAKyqH,aAAa10B,MACnC,GAAI/1F,KAAKyqH,aAAa10B,MAAM/vF,eAAe6zF,GACzC,OAAO,CAGX,QAAO,KAUTlwF,IAAK,sBACL5E,MAAO,WACL,IAAK,GAAI60F,KAAU55F,MAAKyqH,aAAa50B,MACnC,GAAI71F,KAAKyqH,aAAa50B,MAAM7vF,eAAe4zF,IACrC55F,KAAKyqH,aAAa50B,MAAM+D,GAAQg1B,YAAc,EAChD,OAAO,CAIb,QAAO,KAUTjlH,IAAK,wBACL5E,MAAO,SAA+ByzB,GACpC,IAAK,GAAI/xB,GAAI,EAAGA,EAAI+xB,EAAKu9D,MAAMzvF,OAAQG,IAAK,CAC1C,GAAI61F,GAAO9jE,EAAKu9D,MAAMtvF,EACtB61F,GAAK76B,SACLzhE,KAAKkuH,gBAAgB5xB,OAWzB3yF,IAAK,uBACL5E,MAAO,SAA8ByzB,GACnC,IAAK,GAAI/xB,GAAI,EAAGA,EAAI+xB,EAAKu9D,MAAMzvF,OAAQG,IAAK,CAC1C,GAAI61F,GAAO9jE,EAAKu9D,MAAMtvF,EACtB61F,GAAKluF,OAAQ,EACbpO,KAAK6uH,YAAYvyB,OAWrB3yF,IAAK,0BACL5E,MAAO,SAAiCyzB,GACtC,IAAK,GAAI/xB,GAAI,EAAGA,EAAI+xB,EAAKu9D,MAAMzvF,OAAQG,IAAK,CAC1C,GAAI61F,GAAO9jE,EAAKu9D,MAAMtvF,EACtB61F,GAAK96B,WACLxhE,KAAKmuH,qBAAqB7xB,OAY9B3yF,IAAK,aACL5E,MAAO,SAAoBX,GACrBA,EAAOgK,SAAU,IACnBhK,EAAOgK,OAAQ,EACXhK,YAAkB09F,GACpB9hG,KAAKg8C,KAAKE,QAAQzH,KAAK,YAAcjc,KAAMp0B,EAAO/D,KAElDL,KAAKg8C,KAAKE,QAAQzH,KAAK,YAAc6nD,KAAMl4F,EAAO/D,SAaxDsJ,IAAK,cACL5E,MAAO,SAAqBX,GAC1B,GAAI0qH,IAAe,CAEnB,KAAK,GAAIl1B,KAAU55F,MAAKwtH,SAAS33B,MAC3B71F,KAAKwtH,SAAS33B,MAAM7vF,eAAe4zF,KACtBrzF,SAAXnC,GAAwBA,YAAkB09F,IAAQ19F,EAAO/D,IAAMu5F,GAAUx1F,YAAkB6nG,MAC7FjsG,KAAK+uH,WAAW/uH,KAAKwtH,SAAS33B,MAAM+D,UAC7B55F,MAAKwtH,SAAS33B,MAAM+D,GAC3Bk1B,GAAe,EAMrB,KAAK,GAAIj1B,KAAU75F,MAAKwtH,SAASz3B,MAC3B/1F,KAAKwtH,SAASz3B,MAAM/vF,eAAe6zF,KAGjCi1B,KAAiB,GACnB9uH,KAAKwtH,SAASz3B,MAAM8D,GAAQzrF,OAAQ,QAC7BpO,MAAKwtH,SAASz3B,MAAM8D,IAGTtzF,SAAXnC,IACLpE,KAAK+uH,WAAW/uH,KAAKwtH,SAASz3B,MAAM8D,UAC7B75F,MAAKwtH,SAASz3B,MAAM8D,GAC3Bi1B,GAAe,GAKRvoH,UAAXnC,IACEA,EAAOgK,SAAU,IACnBhK,EAAOgK,OAAQ,EACfpO,KAAK6uH,YAAYzqH,GACjB0qH,GAAe,EACX1qH,YAAkB09F,GACpB9hG,KAAKg8C,KAAKE,QAAQzH,KAAK,aAAejc,KAAMp0B,EAAO/D,KAEnDL,KAAKg8C,KAAKE,QAAQzH,KAAK,aAAe6nD,KAAMl4F,EAAO/D,MAGnD+D,YAAkB09F,IAAQ9hG,KAAK6D,QAAQ6pH,uBAAwB,GACjE1tH,KAAKgvH,qBAAqB5qH,IAI1B0qH,KAAiB,GACnB9uH,KAAKg8C,KAAKE,QAAQzH,KAAK,qBAU3B9qC,IAAK,eACL5E,MAAO,WACL,GAAIs0G,GAAUr5G,KAAKk8F,mBACf+yB,EAAUjvH,KAAKm8F,kBACnB,QAAStG,MAAOwjB,EAAStjB,MAAOk5B,MAUlCtlH,IAAK,mBACL5E,MAAO,WACL,GAAImqH,KACJ,IAAIlvH,KAAK6D,QAAQ+6D,cAAe,EAC9B,IAAK,GAAIg7B,KAAU55F,MAAKyqH,aAAa50B,MAC/B71F,KAAKyqH,aAAa50B,MAAM7vF,eAAe4zF,IACzCs1B,EAAQ1nH,KAAKoyF,EAInB,OAAOs1B,MAUTvlH,IAAK,mBACL5E,MAAO,WACL,GAAImqH,KACJ,IAAIlvH,KAAK6D,QAAQ+6D,cAAe,EAC9B,IAAK,GAAIi7B,KAAU75F,MAAKyqH,aAAa10B,MAC/B/1F,KAAKyqH,aAAa10B,MAAM/vF,eAAe6zF,IACzCq1B,EAAQ1nH,KAAKqyF,EAInB,OAAOq1B,MASTvlH,IAAK,eACL5E,MAAO,SAAsBo5C,GAC3B,GAAIt6C,GAAUwC,UAAUC,QAAU,GAAsBC,SAAjBF,UAAU,MAAwBA,UAAU,GAE/EI,EAAIF,OACJlG,EAAKkG,MAET,KAAK43C,IAAcA,EAAU03C,QAAU13C,EAAU43C,MAAO,KAAM,gEAK9D,KAHIlyF,EAAQk2F,aAAuCxzF,SAAxB1C,EAAQk2F,cACjC/5F,KAAK+5F,cAEH57C,EAAU03C,MACZ,IAAKpvF,EAAI,EAAGA,EAAI03C,EAAU03C,MAAMvvF,OAAQG,IAAK,CAC3CpG,EAAK89C,EAAU03C,MAAMpvF,EAErB,IAAI+xB,GAAOx4B,KAAKg8C,KAAK65C,MAAMx1F,EAC3B,KAAKm4B,EACH,KAAM,IAAI22F,YAAW,iBAAmB9uH,EAAK,cAG/CL,MAAKwqH,aAAahyF,EAAM30B,EAAQmqH,gBAIpC,GAAI7vE,EAAU43C,MACZ,IAAKtvF,EAAI,EAAGA,EAAI03C,EAAU43C,MAAMzvF,OAAQG,IAAK,CAC3CpG,EAAK89C,EAAU43C,MAAMtvF,EAErB,IAAI61F,GAAOt8F,KAAKg8C,KAAK+5C,MAAM11F,EAC3B,KAAKi8F,EACH,KAAM,IAAI6yB,YAAW,iBAAmB9uH,EAAK,cAE/CL,MAAKwqH,aAAaluB,GAGtBt8F,KAAKg8C,KAAKE,QAAQzH,KAAK,qBAUzB9qC,IAAK,cACL5E,MAAO,SAAqBo5C,GAC1B,GAAI6vE,GAAiB3nH,UAAUC,QAAU,GAAsBC,SAAjBF,UAAU,IAAmB,EAAOA,UAAU,EAE5F,KAAK83C,GAAkC53C,SAArB43C,EAAU73C,OAAsB,KAAM,qCAExDtG,MAAKq+C,cAAew3C,MAAO13C,IAAe6vE,eAAgBA,OAS5DrkH,IAAK,cACL5E,MAAO,SAAqBo5C,GAC1B,IAAKA,GAAkC53C,SAArB43C,EAAU73C,OAAsB,KAAM,qCAExDtG,MAAKq+C,cAAe03C,MAAO53C,OAQ7Bx0C,IAAK,kBACL5E,MAAO,WACL,IAAK,GAAI60F,KAAU55F,MAAKyqH,aAAa50B,MAC/B71F,KAAKyqH,aAAa50B,MAAM7vF,eAAe4zF,KACpC55F,KAAKg8C,KAAK65C,MAAM7vF,eAAe4zF,UAC3B55F,MAAKyqH,aAAa50B,MAAM+D,GAIrC,KAAK,GAAIC,KAAU75F,MAAKyqH,aAAa10B,MAC/B/1F,KAAKyqH,aAAa10B,MAAM/vF,eAAe6zF,KACpC75F,KAAKg8C,KAAK+5C,MAAM/vF,eAAe6zF,UAC3B75F,MAAKyqH,aAAa10B,MAAM8D,QAOlC0zB,IAGT3tH,GAAQ,WAAa2tH,EACrB1tH,EAAOD,QAAUA,EAAQ,YAIrB,SAASC,EAAQD,EAASM,GAU9B,QAASuyE,GAAuB3sE,GAAO,MAAOA,IAAOA,EAAI4sE,WAAa5sE,GAAQ6sE,UAAW7sE,GAEzF,QAAS8sE,GAAgBC,EAAUC,GAAe,KAAMD,YAAoBC,IAAgB,KAAM,IAAI5rE,WAAU,qCARhHE,OAAO2rE,eAAenzE,EAAS,cAC7BmF,OAAO,GAGT,IAAIiuE,GAAe,WAAe,QAASC,GAAiB/nE,EAAQrE,GAAS,IAAK,GAAIJ,GAAI,EAAGA,EAAII,EAAMP,OAAQG,IAAK,CAAE,GAAIysE,GAAarsE,EAAMJ,EAAIysE,GAAWC,WAAaD,EAAWC,aAAc,EAAOD,EAAWE,cAAe,EAAU,SAAWF,KAAYA,EAAWG,UAAW,GAAMjsE,OAAO2rE,eAAe7nE,EAAQgoE,EAAWvpE,IAAKupE,IAAiB,MAAO,UAAUJ,EAAaQ,EAAYC,GAAiJ,MAA9HD,IAAYL,EAAiBH,EAAY7/D,UAAWqgE,GAAiBC,GAAaN,EAAiBH,EAAaS,GAAqBT,MAM7hBgsC,EAAe5+G,EAAoB,KAEnC6+G,EAAgBtsC,EAAuBqsC,GAEvCn+G,EAAOT,EAAoB,GAE3BkvH,EAAe,WACjB,QAASA,GAAapzE,GACpB42B,EAAgB5yE,KAAMovH,GAEtBpvH,KAAKg8C,KAAOA,EAEZh8C,KAAKqvH,kBAAoBpqH,KAAK0c,MAAsB,IAAhB1c,KAAK2zB,UACzC54B,KAAK46G,WAAa56G,KAAKqvH,kBACvBrvH,KAAK6D,WACL7D,KAAKsvH,iBAELtvH,KAAKw7C,gBACHo/D,WAAYr0G,OACZgpH,gBAAgB,EAChBC,cACE3+G,SAAS,EACT4+G,gBAAiB,IACjBxmG,UAAW,KACXymG,WAAY,YAGhB/uH,EAAKgG,OAAO3G,KAAK6D,QAAS7D,KAAKw7C,gBAE/Bx7C,KAAK2vH,mBACL3vH,KAAK4vH,uBACL5vH,KAAK6vH,wBAEL7vH,KAAK+2F,qBAgzBP,MA7yBA/jB,GAAao8C,IACXzlH,IAAK,qBACL5E,MAAO,WACL,GAAI+5C,GAAQ9+C,IAEZA,MAAKg8C,KAAKE,QAAQlgB,GAAG,eAAgB,WACnC8iB,EAAMgxE,4BAER9vH,KAAKg8C,KAAKE,QAAQlgB,GAAG,cAAe,WAClC8iB,EAAMixE,kBAER/vH,KAAKg8C,KAAKE,QAAQlgB,GAAG,2BAA4B,WAC/C8iB,EAAMgxE,+BAIVnmH,IAAK,aACL5E,MAAO,SAAoBlB,EAASL,GAClC,GAAgB+C,SAAZ1C,EAAuB,CACzB,GAAImsH,GAAwBhwH,KAAK6D,QAAQ2rH,aAAa3+G,OAOtD,IANAlQ,EAAKsG,qBAAqB,aAAc,kBAAmBjH,KAAK6D,QAASA,GACzElD,EAAK+P,aAAa1Q,KAAK6D,QAASA,EAAS,gBACd0C,SAAvB1C,EAAQ+2G,aACV56G,KAAKqvH,kBAAoBxrH,EAAQ+2G,YAG/B56G,KAAK6D,QAAQ2rH,aAAa3+G,WAAY,EAmBxC,MAlBIm/G,MAA0B,GAE5BhwH,KAAKg8C,KAAKE,QAAQzH,KAAK,WAAW,GAIQ,OAAxCz0C,KAAK6D,QAAQ2rH,aAAavmG,WAA8D,OAAxCjpB,KAAK6D,QAAQ2rH,aAAavmG,UACxEjpB,KAAK6D,QAAQ2rH,aAAaC,gBAAkB,IAC9CzvH,KAAK6D,QAAQ2rH,aAAaC,iBAAmB,IAG3CzvH,KAAK6D,QAAQ2rH,aAAaC,gBAAkB,IAC9CzvH,KAAK6D,QAAQ2rH,aAAaC,iBAAmB,IAIjDzvH,KAAKg8C,KAAKE,QAAQzH,KAAK,4BAEhBz0C,KAAKiwH,qCAAqCzsH,EAEjD,IAAIwsH,KAA0B,EAG5B,MADAhwH,MAAKg8C,KAAKE,QAAQzH,KAAK,WAChB9zC,EAAK0G,WAAW7D,EAAYxD,KAAKsvH,eAI9C,MAAO9rH,MAGTmG,IAAK,uCACL5E,MAAO,SAA8CvB,GACnD,GAAIxD,KAAK6D,QAAQ2rH,aAAa3+G,WAAY,EAAM,CAEnBtK,SAAvB/C,EAAWw0E,SAAyBx0E,EAAWw0E,WAAY,GAC7Dx0E,EAAWw0E,SAAYC,OAAQ,yBAC/Bj4E,KAAKsvH,cAAct3C,SAAYC,OAAQ,cACA,gBAAvBz0E,GAAWw0E,SAC3Bh4E,KAAKsvH,cAAct3C,SAAYC,OAAQ,aACL1xE,SAA9B/C,EAAWw0E,QAAQC,SACrBj4E,KAAKsvH,cAAct3C,SAAYC,OAAQz0E,EAAWw0E,QAAQC,SAE5Dz0E,EAAWw0E,QAAgB,OAAI,yBACtBx0E,EAAWw0E,WAAY,IAChCh4E,KAAKsvH,cAAct3C,SAAYC,OAAQ,aACvCz0E,EAAWw0E,QAAgB,OAAI,wBAIjC,IAAIpwE,GAAO,cACiC,OAAxC5H,KAAK6D,QAAQ2rH,aAAavmG,WAA8D,OAAxCjpB,KAAK6D,QAAQ2rH,aAAavmG,aAC5ErhB,EAAO,YAIgBrB,SAArB/C,EAAWuyF,OACb/1F,KAAKsvH,cAAcv5B,OAAUwU,QAAU15F,SAAS,EAAMjJ,KAAM,YAC5DpE,EAAWuyF,OAAUwU,QAAQ,IACQhkG,SAA5B/C,EAAWuyF,MAAMwU,QAC1BvqG,KAAKsvH,cAAcv5B,OAAUwU,QAAU15F,SAAS,EAAMjJ,KAAM,YAC5DpE,EAAWuyF,MAAMwU,QAAS,GAEa,iBAA5B/mG,GAAWuyF,MAAMwU,QAC1BvqG,KAAKsvH,cAAcv5B,OAAUwU,OAAQ/mG,EAAWuyF,MAAMwU,QACtD/mG,EAAWuyF,MAAMwU,QAAW15F,QAASrN,EAAWuyF,MAAMwU,OAAQ3iG,KAAMA,KAG/BrB,SAAjC/C,EAAWuyF,MAAMwU,OAAO3iG,MAAuD,YAAjCpE,EAAWuyF,MAAMwU,OAAO3iG,OACxEA,EAAOpE,EAAWuyF,MAAMwU,OAAO3iG,MAGjC5H,KAAKsvH,cAAcv5B,OACjBwU,OAA4ChkG,SAApC/C,EAAWuyF,MAAMwU,OAAO15F,SAAwB,EAAOrN,EAAWuyF,MAAMwU,OAAO15F,QACvFjJ,KAAuCrB,SAAjC/C,EAAWuyF,MAAMwU,OAAO3iG,KAAqB,UAAYpE,EAAWuyF,MAAMwU,OAAO3iG,KACvF6iG,UAAiDlkG,SAAtC/C,EAAWuyF,MAAMwU,OAAOE,UAA0B,GAAMjnG,EAAWuyF,MAAMwU,OAAOE,UAC3FD,eAA2DjkG,SAA3C/C,EAAWuyF,MAAMwU,OAAOC,gBAA+B,EAAQhnG,EAAWuyF,MAAMwU,OAAOC,gBAEzGhnG,EAAWuyF,MAAMwU,QACf15F,QAA6CtK,SAApC/C,EAAWuyF,MAAMwU,OAAO15F,SAAwB,EAAOrN,EAAWuyF,MAAMwU,OAAO15F,QACxFjJ,KAAMA,EACN6iG,UAAiDlkG,SAAtC/C,EAAWuyF,MAAMwU,OAAOE,UAA0B,GAAMjnG,EAAWuyF,MAAMwU,OAAOE,UAC3FD,eAA2DjkG,SAA3C/C,EAAWuyF,MAAMwU,OAAOC,gBAA+B,EAAQhnG,EAAWuyF,MAAMwU,OAAOC,iBAM7GxqG,KAAKg8C,KAAKE,QAAQzH,KAAK,6BAA8B7sC,GAEvD,MAAOpE,MAGTmG,IAAK,eACL5E,MAAO,WACL,GAAIy1B,GAAkC,IAA9Bv1B,KAAKihC,IAAIlmC,KAAK46G,aACtB,OAAOpgF,GAAIv1B,KAAKuK,MAAMgrB,MAGxB7wB,IAAK,oBACL5E,MAAO,SAA2Bs9G,GAChC,GAAIriH,KAAK6D,QAAQ2rH,aAAa3+G,WAAY,EAAM,CAC9C7Q,KAAK46G,WAAa56G,KAAKqvH,iBACvB,KAAK,GAAI5oH,GAAI,EAAGA,EAAI47G,EAAW/7G,OAAQG,IAAK,CAC1C,GAAI+xB,GAAO6pF,EAAW57G,GAClBgsC,EAAS,EAAW4vE,EAAW/7G,OAAS,GACxC0gD,EAAQ,EAAI/hD,KAAK0tC,GAAK3yC,KAAK88G,cAChBv2G,UAAXiyB,EAAKgC,IACPhC,EAAKgC,EAAIiY,EAASxtC,KAAKohC,IAAI2gB,IAEdzgD,SAAXiyB,EAAK/Y,IACP+Y,EAAK/Y,EAAIgzB,EAASxtC,KAAKihC,IAAI8gB,SAWnCr9C,IAAK,gBACL5E,MAAO,WACL,GAAI/E,KAAK6D,QAAQ2rH,aAAa3+G,WAAY,GAAQ7Q,KAAK6D,QAAQ0rH,kBAAmB,EAAM,CAItF,IAAK,GADDlI,GAAkB,EACb5gH,EAAI,EAAGA,EAAIzG,KAAKg8C,KAAK85C,YAAYxvF,OAAQG,IAAK,CACrD,GAAI+xB,GAAOx4B,KAAKg8C,KAAK65C,MAAM71F,KAAKg8C,KAAK85C,YAAYrvF,GAC7C+xB,GAAK0pE,sBAAuB,IAC9BmlB,GAAmB,GAKvB,GAAIA,EAAkB,GAAMrnH,KAAKg8C,KAAK85C,YAAYxvF,OAAQ,CACxD,GAAI4pH,GAAa,GACbjyB,EAAQ,EACRkyB,EAAmB,GAEvB,IAAInwH,KAAKg8C,KAAK85C,YAAYxvF,OAAS6pH,EAAkB,CAEnD,IADA,GAAIC,GAAcpwH,KAAKg8C,KAAK85C,YAAYxvF,OACjCtG,KAAKg8C,KAAK85C,YAAYxvF,OAAS6pH,GAAkB,CAEtDlyB,GAAS,CACT,IAAIoyB,GAASrwH,KAAKg8C,KAAK85C,YAAYxvF,MAE/B23F,GAAQ,IAAM,EAChBj+F,KAAKg8C,KAAK/7C,QAAQ43F,WAAWy4B,iBAE7BtwH,KAAKg8C,KAAK/7C,QAAQ43F,WAAWiD,iBAE/B,IAAIy1B,GAAQvwH,KAAKg8C,KAAK85C,YAAYxvF,MAClC,IAAI+pH,GAAUE,GAAStyB,EAAQ,IAAM,GAAKA,EAAQiyB,EAIhD,MAHAlwH,MAAKwwH,gBACLxwH,KAAKg8C,KAAKE,QAAQzH,KAAK,qBACvBj2B,SAAQiyG,KAAK,gJAOjBzwH,KAAKg8C,KAAK/7C,QAAQywH,YAAY90F,YAAau7E,aAAclyG,KAAKJ,IAAI,IAAK,EAAIurH,KAI7EpwH,KAAKg8C,KAAK/7C,QAAQywH,YAAYzW,MAAMj6G,KAAKg8C,KAAK85C,YAAa91F,KAAKg8C,KAAKg6C,aAAa,GAGlFh2F,KAAK2wH,gBAIL,KAAK,GADDvqG,GAAS,GACJ3f,EAAI,EAAGA,EAAIzG,KAAKg8C,KAAK85C,YAAYxvF,OAAQG,IAChDzG,KAAKg8C,KAAK65C,MAAM71F,KAAKg8C,KAAK85C,YAAYrvF,IAAI+zB,IAAM,GAAMx6B,KAAK88G,gBAAkB12F,EAC7EpmB,KAAKg8C,KAAK65C,MAAM71F,KAAKg8C,KAAK85C,YAAYrvF,IAAIgZ,IAAM,GAAMzf,KAAK88G,gBAAkB12F,CAI/EpmB,MAAKwwH,gBAGLxwH,KAAKg8C,KAAKE,QAAQzH,KAAK,+BAU7B9qC,IAAK,iBACL5E,MAAO,WAGL,IAAK,GAFDg4C,GAAQgiE,EAAc,WAAW6R,cAAc5wH,KAAKg8C,KAAK65C,MAAO71F,KAAKg8C,KAAK85C,aAC1E7iD,EAAS8rE,EAAc,WAAW4I,YAAY5qE,GACzCt2C,EAAI,EAAGA,EAAIzG,KAAKg8C,KAAK85C,YAAYxvF,OAAQG,IAChDzG,KAAKg8C,KAAK65C,MAAM71F,KAAKg8C,KAAK85C,YAAYrvF,IAAI+zB,GAAKyY,EAAOzY,EACtDx6B,KAAKg8C,KAAK65C,MAAM71F,KAAKg8C,KAAK85C,YAAYrvF,IAAIgZ,GAAKwzB,EAAOxzB,KAI1D9V,IAAK,gBACL5E,MAAO,WAEL,IADA,GAAI8rH,IAAkB,EACfA,KAAoB,GAAM,CAC/BA,GAAkB,CAClB,KAAK,GAAIpqH,GAAI,EAAGA,EAAIzG,KAAKg8C,KAAK85C,YAAYxvF,OAAQG,IAC5CzG,KAAKg8C,KAAK65C,MAAM71F,KAAKg8C,KAAK85C,YAAYrvF,IAAI+zF,aAAc,IAC1Dq2B,GAAkB,EAClB7wH,KAAKg8C,KAAK/7C,QAAQ43F,WAAW4C,YAAYz6F,KAAKg8C,KAAK85C,YAAYrvF,OAAQ,GAGvEoqH,MAAoB,GACtB7wH,KAAKg8C,KAAKE,QAAQzH,KAAK,oBAK7B9qC,IAAK,UACL5E,MAAO,WACL,MAAO/E,MAAKqvH,qBAUd1lH,IAAK,0BACL5E,MAAO,WACL,GAAI/E,KAAK6D,QAAQ2rH,aAAa3+G,WAAY,GAAQ7Q,KAAKg8C,KAAK85C,YAAYxvF,OAAS,EAAG,CAElF,GAAIkyB,GAAOjyB,OACPqzF,EAASrzF,OACTuqH,GAAe,EACfC,GAAiB,CACrB/wH,MAAKgxH,sBACLhxH,KAAKixH,YAAc,GAEnB,KAAKr3B,IAAU55F,MAAKg8C,KAAK65C,MACnB71F,KAAKg8C,KAAK65C,MAAM7vF,eAAe4zF,KACjCphE,EAAOx4B,KAAKg8C,KAAK65C,MAAM+D,GACIrzF,SAAvBiyB,EAAK30B,QAAQo6F,OACf6yB,GAAe,EACf9wH,KAAKgxH,mBAAmBp3B,GAAUphE,EAAK30B,QAAQo6F,OAE/C8yB,GAAiB,EAMvB,IAAIA,KAAmB,GAAQD,KAAiB,EAC9C,KAAM,IAAI9pH,OAAM,wHAIZ+pH,MAAmB,IACwB,YAAzC/wH,KAAK6D,QAAQ2rH,aAAaE,WAC5B1vH,KAAKkxH,4BAC6C,aAAzClxH,KAAK6D,QAAQ2rH,aAAaE,WACnC1vH,KAAKmxH,2BAC6C,WAAzCnxH,KAAK6D,QAAQ2rH,aAAaE,YACnC1vH,KAAKoxH,iCAKT,IAAIC,GAAerxH,KAAKsxH,kBAGxBtxH,MAAKuxH,eAGLvxH,KAAKwxH,uBAAuBH,GAG5BrxH,KAAKyxH,mBAAmBJ,GAGxBrxH,KAAK2wH,qBAUXhnH,IAAK,qBACL5E,MAAO,SAA4BssH,OASnC1nH,IAAK,yBACL5E,MAAO,SAAgCssH,GACrCrxH,KAAK0xH,kBAEL,KAAK,GAAIzzB,KAASozB,GAChB,GAAIA,EAAarrH,eAAei4F,GAAQ,CAEtC,GAAI0zB,GAAYvqH,OAAO6H,KAAKoiH,EAAapzB,GACzC0zB,GAAY3xH,KAAK4xH,mBAAmBD,GACpC3xH,KAAK6xH,eAAeF,EAEpB,KAAK,GAAIlrH,GAAI,EAAGA,EAAIkrH,EAAUrrH,OAAQG,IAAK,CACzC,GAAI+xB,GAAOm5F,EAAUlrH,EACiBF,UAAlCvG,KAAK0xH,gBAAgBl5F,EAAKn4B,MAC5BL,KAAK8xH,yBAAyBt5F,EAAMx4B,KAAKixH,YAAcxqH,GACvDzG,KAAK0xH,gBAAgBl5F,EAAKn4B,KAAM,EAChCL,KAAK+xH,kBAAkBv5F,EAAKn4B,GAAI49F,SAa1Ct0F,IAAK,qBACL5E,MAAO,SAA4BmqH,GAEjC,IAAK,GADDzlH,MACKhD,EAAI,EAAGA,EAAIyoH,EAAQ5oH,OAAQG,IAClCgD,EAAMjC,KAAKxH,KAAKg8C,KAAK65C,MAAMq5B,EAAQzoH,IAErC,OAAOgD,MAUTE,IAAK,mBACL5E,MAAO,WACL,GAAIssH,MACAz3B,EAASrzF,OACTiyB,EAAOjyB,MAIX,KAAKqzF,IAAU55F,MAAKg8C,KAAK65C,MACvB,GAAI71F,KAAKg8C,KAAK65C,MAAM7vF,eAAe4zF,GAAS,CAC1CphE,EAAOx4B,KAAKg8C,KAAK65C,MAAM+D,EACvB,IAAIqE,GAA4C13F,SAApCvG,KAAKgxH,mBAAmBp3B,GAAwB,EAAI55F,KAAKgxH,mBAAmBp3B,EAC5C,QAAxC55F,KAAK6D,QAAQ2rH,aAAavmG,WAA8D,OAAxCjpB,KAAK6D,QAAQ2rH,aAAavmG,WAC5EuP,EAAK/Y,EAAIzf,KAAK6D,QAAQ2rH,aAAaC,gBAAkBxxB,EACrDzlE,EAAK30B,QAAQ+5F,MAAMn+E,GAAI,IAEvB+Y,EAAKgC,EAAIx6B,KAAK6D,QAAQ2rH,aAAaC,gBAAkBxxB,EACrDzlE,EAAK30B,QAAQ+5F,MAAMpjE,GAAI,GAEGj0B,SAAxB8qH,EAAapzB,KACfozB,EAAapzB,OAEfozB,EAAapzB,GAAOrE,GAAUphE,EAGlC,MAAO64F,MAUT1nH,IAAK,cACL5E,MAAO,WACL,GAAIitH,GAAU,CACd,KAAK,GAAIp4B,KAAU55F,MAAKg8C,KAAK65C,MAC3B,GAAI71F,KAAKg8C,KAAK65C,MAAM7vF,eAAe4zF,GAAS,CAC1C,GAAIphE,GAAOx4B,KAAKg8C,KAAK65C,MAAM+D,EACarzF,UAApCvG,KAAKgxH,mBAAmBp3B,KAC1Bo4B,EAAUx5F,EAAKu9D,MAAMzvF,OAAS0rH,EAAUA,EAAUx5F,EAAKu9D,MAAMzvF,QAInE,MAAO0rH,MAUTroH,IAAK,4BACL5E,MAAO,WAgBL,IAfA,GAAIwwE,GAASv1E,KAETgyH,EAAU,EAEVC,EAAkB,SAAyBC,EAAOC,GACR5rH,SAAxCgvE,EAAOy7C,mBAAmBmB,EAAM9xH,MAEUkG,SAAxCgvE,EAAOy7C,mBAAmBkB,EAAM7xH,MAClCk1E,EAAOy7C,mBAAmBkB,EAAM7xH,IAAM,GAGxCk1E,EAAOy7C,mBAAmBmB,EAAM9xH,IAAMk1E,EAAOy7C,mBAAmBkB,EAAM7xH,IAAM,IAIzE2xH,EAAU,IAEfA,EAAUhyH,KAAKq/G,cACC,IAAZ2S,IAEJ,IAAK,GAAIp4B,KAAU55F,MAAKg8C,KAAK65C,MAC3B,GAAI71F,KAAKg8C,KAAK65C,MAAM7vF,eAAe4zF,GAAS,CAC1C,GAAIphE,GAAOx4B,KAAKg8C,KAAK65C,MAAM+D,EACvBphE,GAAKu9D,MAAMzvF,SAAW0rH,GACxBhyH,KAAKoyH,cAAcH,EAAiBr4B,OAY9CjwF,IAAK,iCACL5E,MAAO,WACL,GAAIsxE,GAASr2E,KAETqyH,EAAW,IAGXC,EAAiB,SAAwBJ,EAAOC,EAAO71B,KAEvDi2B,EAAmB,SAA0BL,EAAOC,EAAO71B,GAC7D,GAAIk2B,GAASn8C,EAAO26C,mBAAmBkB,EAAM7xH,GAE9BkG,UAAXisH,IACFn8C,EAAO26C,mBAAmBkB,EAAM7xH,IAAMgyH,EAGxC,IAAIxrG,GAAOyrG,EAAevT,EAAc,WAAWc,cAAcqS,EAAO,QAASnT,EAAc,WAAWc,cAAcsS,EAAO,QAASpT,EAAc,WAAWc,cAAcvjB,EAAM,QAErLjmB,GAAO26C,mBAAmBmB,EAAM9xH,IAAMg2E,EAAO26C,mBAAmBkB,EAAM7xH,IAAMwmB,EAG9E7mB,MAAKoyH,cAAcG,GACnBvyH,KAAKyyH,wBAUP9oH,IAAK,2BACL5E,MAAO,WACL,GAAI0xE,GAASz2E,KAETqyH,EAAW,IACXE,EAAmB,SAA0BL,EAAOC,EAAO71B,GAC7D,GAAIk2B,GAAS/7C,EAAOu6C,mBAAmBkB,EAAM7xH,GAE9BkG,UAAXisH,IACF/7C,EAAOu6C,mBAAmBkB,EAAM7xH,IAAMgyH,GAEpC/1B,EAAKuD,MAAQsyB,EAAM9xH,GACrBo2E,EAAOu6C,mBAAmBmB,EAAM9xH,IAAMo2E,EAAOu6C,mBAAmBkB,EAAM7xH,IAAM,EAE5Eo2E,EAAOu6C,mBAAmBmB,EAAM9xH,IAAMo2E,EAAOu6C,mBAAmBkB,EAAM7xH,IAAM,EAGhFL,MAAKoyH,cAAcG,GACnBvyH,KAAKyyH,wBAQP9oH,IAAK,qBACL5E,MAAO,WACL,GAAIstH,GAAW,GAEf,KAAK,GAAIz4B,KAAU55F,MAAKg8C,KAAK65C,MACvB71F,KAAKg8C,KAAK65C,MAAM7vF,eAAe4zF,KACjCy4B,EAAWptH,KAAKL,IAAI5E,KAAKgxH,mBAAmBp3B,GAASy4B,GAKzD,KAAK,GAAIz4B,KAAU55F,MAAKg8C,KAAK65C,MACvB71F,KAAKg8C,KAAK65C,MAAM7vF,eAAe4zF,KACjC55F,KAAKgxH,mBAAmBp3B,IAAWy4B,MAYzC1oH,IAAK,eACL5E,MAAO,WACL,GAAI8xE,GAAS72E,KAET0yH,EAAkB,SAAyBrnH,EAAYw1G,GACzD,GAAIhqC,EAAOm6C,mBAAmBnQ,EAAUxgH,IAAMw2E,EAAOm6C,mBAAmB3lH,EAAWhL,IAAK,CACtF,GAAIogH,GAAep1G,EAAWhL,GAC1BggH,EAAcQ,EAAUxgH,EACqBkG,UAA7CswE,EAAO+4C,oBAAoBnP,KAC7B5pC,EAAO+4C,oBAAoBnP,IAAkBtpF,YAAc47D,OAAQ,IAErElc,EAAO+4C,oBAAoBnP,GAActpF,SAAS3vB,KAAK64G,GACN95G,SAA7CswE,EAAOg5C,qBAAqBxP,KAC9BxpC,EAAOg5C,qBAAqBxP,IAAiBsS,WAAa5/B,OAAQ,IAEpElc,EAAOg5C,qBAAqBxP,GAAasS,QAAQnrH,KAAKi5G,IAI1DzgH,MAAKoyH,cAAcM,MAUrB/oH,IAAK,gBACL5E,MAAO,SAAuBwE,EAAUqpH,GACrBrsH,SAAbgD,IAAwBA,EAAW,aAEvC,IAAIwvC,MACA85E,EAAU,QAASA,GAAQr6F,GAC7B,GAA0BjyB,SAAtBwyC,EAASvgB,EAAKn4B,IAAmB,CACnC04C,EAASvgB,EAAKn4B,KAAM,CAEpB,KAAK,GADDwgH,GAAYt6G,OACPE,EAAI,EAAGA,EAAI+xB,EAAKu9D,MAAMzvF,OAAQG,IAEnCo6G,EADEroF,EAAKu9D,MAAMtvF,GAAGo5F,OAASrnE,EAAKn4B,GAClBm4B,EAAKu9D,MAAMtvF,GAAG0O,KAEdqjB,EAAKu9D,MAAMtvF,GAAGyO,GAGxBsjB,EAAKn4B,KAAOwgH,EAAUxgH,KACxBkJ,EAASivB,EAAMqoF,EAAWroF,EAAKu9D,MAAMtvF,IACrCosH,EAAQhS,KAOhB,IAAuBt6G,SAAnBqsH,EACF,IAAK,GAAInsH,GAAI,EAAGA,EAAIzG,KAAKg8C,KAAK85C,YAAYxvF,OAAQG,IAAK,CACrD,GAAI+xB,GAAOx4B,KAAKg8C,KAAK65C,MAAM71F,KAAKg8C,KAAK85C,YAAYrvF,GACjDosH,GAAQr6F,OAEL,CACL,GAAIA,GAAOx4B,KAAKg8C,KAAK65C,MAAM+8B,EAC3B,IAAarsH,SAATiyB,EAEF,WADAha,SAAQ45D,MAAM,kBAAmBw6C,EAGnCC,GAAQr6F,OAaZ7uB,IAAK,oBACL5E,MAAO,SAA2B+tH,EAAUC,GAE1C,GAA2CxsH,SAAvCvG,KAAK4vH,oBAAoBkD,GAA7B,CAMA,IAAK,GADDtiD,MACK/pE,EAAI,EAAGA,EAAIzG,KAAK4vH,oBAAoBkD,GAAU37F,SAAS7wB,OAAQG,IACtE+pE,EAAWhpE,KAAKxH,KAAKg8C,KAAK65C,MAAM71F,KAAK4vH,oBAAoBkD,GAAU37F,SAAS1wB,IAI9EzG,MAAK6xH,eAAerhD,EAGpB,KAAK,GAAI/pE,GAAI,EAAGA,EAAI+pE,EAAWlqE,OAAQG,IAAK,CAC1C,GAAIo6G,GAAYrwC,EAAW/pE,GACvBusH,EAAiBhzH,KAAKgxH,mBAAmBnQ,EAAUxgH,GAEvD,MAAI2yH,EAAiBD,GAAsDxsH,SAAvCvG,KAAK0xH,gBAAgB7Q,EAAUxgH,KA6BjE,MA3BA,IAAIysC,GAAMvmC,MAWV,IAPEumC,EADQ,IAANrmC,EACIzG,KAAKizH,yBAAyBjzH,KAAKg8C,KAAK65C,MAAMi9B,IAE9C9yH,KAAKizH,yBAAyBziD,EAAW/pE,EAAI,IAAMzG,KAAKixH,YAEhEjxH,KAAK8xH,yBAAyBjR,EAAW/zE,GAGIvmC,SAAzCvG,KAAK2vH,gBAAgBqD,GAA+B,CACtD,GAAIE,GAAclzH,KAAKizH,yBAAyBjzH,KAAKg8C,KAAK65C,MAAM71F,KAAK2vH,gBAAgBqD,IACrF,IAAIlmF,EAAMomF,EAAclzH,KAAKixH,YAAa,CACxC,GAAIpqG,GAAOqsG,EAAclzH,KAAKixH,YAAcnkF,EACxCqmF,EAAenzH,KAAKozH,kBAAkBpzH,KAAK2vH,gBAAgBqD,GAAiBnS,EAAUxgH,GAC1FL,MAAKqzH,YAAYF,EAAaG,UAAWzsG,IAK7C7mB,KAAK2vH,gBAAgBqD,GAAkBnS,EAAUxgH,GAEjDL,KAAK0xH,gBAAgB7Q,EAAUxgH,KAAM,EAErCL,KAAK+xH,kBAAkBlR,EAAUxgH,GAAI2yH,GASzC,IAAK,GAFDO,GAAS,IACTC,EAAS,KACJ/sH,EAAI,EAAGA,EAAI+pE,EAAWlqE,OAAQG,IAAK,CAC1C,GAAI45G,GAAc7vC,EAAW/pE,GAAGpG,EAChCkzH,GAAStuH,KAAKL,IAAI2uH,EAAQvzH,KAAKizH,yBAAyBjzH,KAAKg8C,KAAK65C,MAAMwqB,KACxEmT,EAASvuH,KAAKJ,IAAI2uH,EAAQxzH,KAAKizH,yBAAyBjzH,KAAKg8C,KAAK65C,MAAMwqB,KAE1ErgH,KAAK8xH,yBAAyB9xH,KAAKg8C,KAAK65C,MAAMi9B,GAAW,IAAOS,EAASC,QAU3E7pH,IAAK,cACL5E,MAAO,SAAqB+tH,EAAUjsG,GAMpC,GAL4C,OAAxC7mB,KAAK6D,QAAQ2rH,aAAavmG,WAA8D,OAAxCjpB,KAAK6D,QAAQ2rH,aAAavmG,UAC5EjpB,KAAKg8C,KAAK65C,MAAMi9B,GAAUt4F,GAAK3T,EAE/B7mB,KAAKg8C,KAAK65C,MAAMi9B,GAAUrzG,GAAKoH,EAEUtgB,SAAvCvG,KAAK4vH,oBAAoBkD,GAC3B,IAAK,GAAIrsH,GAAI,EAAGA,EAAIzG,KAAK4vH,oBAAoBkD,GAAU37F,SAAS7wB,OAAQG,IACtEzG,KAAKqzH,YAAYrzH,KAAK4vH,oBAAoBkD,GAAU37F,SAAS1wB,GAAIogB,MAavEld,IAAK,oBACL5E,MAAO,SAA2B0uH,EAAQC,GACxC,GAAI18C,GAASh3E,KAET2yH,KACAgB,EAAiB,QAASA,GAAehB,EAASjwE,GACpD,GAA2Cn8C,SAAvCywE,EAAO64C,qBAAqBntE,GAC9B,IAAK,GAAIj8C,GAAI,EAAGA,EAAIuwE,EAAO64C,qBAAqBntE,GAAOiwE,QAAQrsH,OAAQG,IAAK,CAC1E,GAAImtH,GAAU58C,EAAO64C,qBAAqBntE,GAAOiwE,QAAQlsH,EACzDksH,GAAQiB,IAAW,EACnBD,EAAehB,EAASiB,KAI1BC,EAAa,QAASA,GAAWlB,EAASjwE,GAC5C,GAA2Cn8C,SAAvCywE,EAAO64C,qBAAqBntE,GAC9B,IAAK,GAAIj8C,GAAI,EAAGA,EAAIuwE,EAAO64C,qBAAqBntE,GAAOiwE,QAAQrsH,OAAQG,IAAK,CAC1E,GAAIqtH,GAAW98C,EAAO64C,qBAAqBntE,GAAOiwE,QAAQlsH,EAC1D,IAA0BF,SAAtBosH,EAAQmB,GACV,OAASC,YAAaD,EAAUR,UAAW5wE,EAE7C,IAAIy6D,GAAS0W,EAAWlB,EAASmB,EACjC,IAA2B,OAAvB3W,EAAO4W,YACT,MAAO5W,GAIb,OAAS4W,YAAa,KAAMT,UAAW5wE,GAIzC,OADAixE,GAAehB,EAASc,GACjBI,EAAWlB,EAASe,MAU7B/pH,IAAK,2BACL5E,MAAO,SAAkCyzB,EAAM8S,GACD,OAAxCtrC,KAAK6D,QAAQ2rH,aAAavmG,WAA8D,OAAxCjpB,KAAK6D,QAAQ2rH,aAAavmG,UAC5EuP,EAAKgC,EAAI8Q,EAET9S,EAAK/Y,EAAI6rB,KAWb3hC,IAAK,2BACL5E,MAAO,SAAkCyzB,GACvC,MAA4C,OAAxCx4B,KAAK6D,QAAQ2rH,aAAavmG,WAA8D,OAAxCjpB,KAAK6D,QAAQ2rH,aAAavmG,UACrEuP,EAAKgC,EAELhC,EAAK/Y,KAUhB9V,IAAK,iBACL5E,MAAO,SAAwB4sH,GACzBA,EAAUrrH,OAAS,IACuB,OAAxCtG,KAAK6D,QAAQ2rH,aAAavmG,WAA8D,OAAxCjpB,KAAK6D,QAAQ2rH,aAAavmG,UAC5E0oG,EAAUtzF,KAAK,SAAUn4B,EAAGC,GAC1B,MAAOD,GAAEs0B,EAAIr0B,EAAEq0B,IAGjBm3F,EAAUtzF,KAAK,SAAUn4B,EAAGC,GAC1B,MAAOD,GAAEuZ,EAAItZ,EAAEsZ,SAOlB2vG,IAGTxvH,GAAQ,WAAawvH,EACrBvvH,EAAOD,QAAUA,EAAQ,YAIrB,SAASC,EAAQD,EAASM,GAU9B,QAAS0yE,GAAgBC,EAAUC,GAAe,KAAMD,YAAoBC,IAAgB,KAAM,IAAI5rE,WAAU,qCANhHE,OAAO2rE,eAAenzE,EAAS,cAC7BmF,OAAO,GAGT,IAAIiuE,GAAe,WAAe,QAASC,GAAiB/nE,EAAQrE,GAAS,IAAK,GAAIJ,GAAI,EAAGA,EAAII,EAAMP,OAAQG,IAAK,CAAE,GAAIysE,GAAarsE,EAAMJ,EAAIysE,GAAWC,WAAaD,EAAWC,aAAc,EAAOD,EAAWE,cAAe,EAAU,SAAWF,KAAYA,EAAWG,UAAW,GAAMjsE,OAAO2rE,eAAe7nE,EAAQgoE,EAAWvpE,IAAKupE,IAAiB,MAAO,UAAUJ,EAAaQ,EAAYC,GAAiJ,MAA9HD,IAAYL,EAAiBH,EAAY7/D,UAAWqgE,GAAiBC,GAAaN,EAAiBH,EAAaS,GAAqBT,MAI7hBnyE,EAAOT,EAAoB,GAC3B8D,EAAS9D,EAAoB,IAC7Bi6D,EAAaj6D,EAAoB,IAQjC8zH,EAAqB,WACvB,QAASA,GAAmBh4E,EAAM3U,EAAQ8vD,GACxC,GAAIr4C,GAAQ9+C;AAEZ4yE,EAAgB5yE,KAAMg0H,GAEtBh0H,KAAKg8C,KAAOA,EACZh8C,KAAKqnC,OAASA,EACdrnC,KAAKm3F,iBAAmBA,EAExBn3F,KAAKi0H,UAAW,EAChBj0H,KAAKk0H,gBAAkB3tH,OACvBvG,KAAKm0H,YAAc5tH,OACnBvG,KAAKo0H,SAAW7tH,OAEhBvG,KAAKq0H,uBACLr0H,KAAKs0H,wBACLt0H,KAAKu0H,2BAELv0H,KAAKknH,UAAY,EACjBlnH,KAAKw0H,cAAiB3+B,SAAWE,UACjC/1F,KAAKy0H,YAAa,EAClBz0H,KAAK00H,QAAS,EACd10H,KAAK20H,oBAAsBpuH,OAE3BvG,KAAK6D,WACL7D,KAAKw7C,gBACH3qC,SAAS,EACT+jH,iBAAiB,EACjBC,SAAS,EACTC,SAAS,EACT35B,SAAU50F,OACVwuH,UAAU,EACVC,YAAY,EACZC,YAAY,EACZC,kBACE12B,MAAO,MACP3jE,KAAM,EACNpuB,OAASwB,WAAY,UAAWC,OAAQ,UAAWC,WAAaF,WAAY,UAAWC,OAAQ,YAC/Fy5B,YAAa,EACb+1D,oBAAqB,IAGzB/8F,EAAKgG,OAAO3G,KAAK6D,QAAS7D,KAAKw7C,gBAE/Bx7C,KAAKg8C,KAAKE,QAAQlgB,GAAG,UAAW,WAC9B8iB,EAAM21B,WAERz0E,KAAKg8C,KAAKE,QAAQlgB,GAAG,eAAgBh8B,KAAKm1H,SAASh5E,KAAKn8C,OACxDA,KAAKg8C,KAAKE,QAAQlgB,GAAG,aAAch8B,KAAKm1H,SAASh5E,KAAKn8C,OA0mCxD,MAlmCAgzE,GAAaghD,IACXrqH,IAAK,WACL5E,MAAO,WACD/E,KAAK00H,UAAW,IACd10H,KAAK6D,QAAQ+wH,mBAAoB,EACnC50H,KAAKg7F,iBAELh7F,KAAKi7F,sBAUXtxF,IAAK,aACL5E,MAAO,SAAoBlB,EAASL,EAAYoN,GAC3BrK,SAAf/C,IACwB+C,SAAtB/C,EAAW8P,OACbtT,KAAK6D,QAAQyP,OAAS9P,EAAW8P,OAEjCtT,KAAK6D,QAAQyP,OAAS1C,EAAc0C,OAEX/M,SAAvB/C,EAAWiU,QACbzX,KAAK6D,QAAQ4T,QAAUjU,EAAWiU,QAElCzX,KAAK6D,QAAQ4T,QAAU7G,EAAc6G,SAIzBlR,SAAZ1C,IACqB,iBAAZA,GACT7D,KAAK6D,QAAQgN,QAAUhN,GAEvB7D,KAAK6D,QAAQgN,SAAU,EACvBlQ,EAAK0G,WAAWrH,KAAK6D,QAASA,IAE5B7D,KAAK6D,QAAQ+wH,mBAAoB,IACnC50H,KAAKi0H,UAAW,GAElBj0H,KAAKo1H,aAUTzrH,IAAK,iBACL5E,MAAO,WACD/E,KAAKi0H,YAAa,EACpBj0H,KAAKi7F,kBAELj7F,KAAKg7F,oBAITrxF,IAAK,iBACL5E,MAAO,WACL/E,KAAKi0H,UAAW,EAEhBj0H,KAAKy0E,SACDz0E,KAAKy0H,cAAe,IACtBz0H,KAAKk0H,gBAAgBplH,MAAMqiE,QAAU,QACrCnxE,KAAKo0H,SAAStlH,MAAMqiE,QAAU,QAC9BnxE,KAAKm0H,YAAYrlH,MAAMqiE,QAAU,OACjCnxE,KAAKq1H,6BAIT1rH,IAAK,kBACL5E,MAAO,WACL/E,KAAKi0H,UAAW,EAEhBj0H,KAAKy0E,SACDz0E,KAAKy0H,cAAe,IACtBz0H,KAAKk0H,gBAAgBplH,MAAMqiE,QAAU,OACrCnxE,KAAKo0H,SAAStlH,MAAMqiE,QAAU,OAC9BnxE,KAAKm0H,YAAYrlH,MAAMqiE,QAAU,QACjCnxE,KAAKs1H,wBAUT3rH,IAAK,yBACL5E,MAAO,WAQL,GANA/E,KAAKy0E,SAGLz0E,KAAKu1H,mBAGDv1H,KAAKy0H,cAAe,EAAM,CAE5Bz0H,KAAKi0H,UAAW,EAChBj0H,KAAKk0H,gBAAgBplH,MAAMqiE,QAAU,QACrCnxE,KAAKo0H,SAAStlH,MAAMqiE,QAAU,OAE9B,IAAIqkD,GAAoBx1H,KAAKm3F,iBAAiByyB,wBAC1C6L,EAAoBz1H,KAAKm3F,iBAAiBuyB,wBAC1CgM,EAAqBF,EAAoBC,EACzCniH,EAAStT,KAAK6D,QAAQ4T,QAAQzX,KAAK6D,QAAQyP,QAC3CqiH,GAAgB,CAEhB31H,MAAK6D,QAAQgxH,WAAY,IAC3B70H,KAAK41H,qBAAqBtiH,GAC1BqiH,GAAgB,GAEd31H,KAAK6D,QAAQixH,WAAY,IACvBa,KAAkB,EACpB31H,KAAK61H,iBAAiB,GAEtBF,GAAgB,EAElB31H,KAAK81H,qBAAqBxiH,IAGF,IAAtBkiH,GAA4D,kBAA1Bx1H,MAAK6D,QAAQs3F,UAC7Cw6B,KAAkB,EACpB31H,KAAK61H,iBAAiB,GAEtBF,GAAgB,EAElB31H,KAAK+1H,sBAAsBziH,IACI,IAAtBmiH,GAAiD,IAAtBD,GAA2Bx1H,KAAK6D,QAAQkxH,YAAa,IACrFY,KAAkB,EACpB31H,KAAK61H,iBAAiB,GAEtBF,GAAgB,EAElB31H,KAAKg2H,sBAAsB1iH,IAIF,IAAvBoiH,IACEF,EAAoB,GAAKx1H,KAAK6D,QAAQmxH,cAAe,GACnDW,KAAkB,GACpB31H,KAAK61H,iBAAiB,GAExB71H,KAAKi2H,oBAAoB3iH,IACM,IAAtBkiH,GAA2Bx1H,KAAK6D,QAAQoxH,cAAe,IAC5DU,KAAkB,GACpB31H,KAAK61H,iBAAiB,GAExB71H,KAAKi2H,oBAAoB3iH,KAK7BtT,KAAKk2H,iBAAiBl2H,KAAKo0H,SAAUp0H,KAAKm2H,eAAeh6E,KAAKn8C,OAG9DA,KAAKo2H,oBAAoB,SAAUp2H,KAAKq1H,uBAAuBl5E,KAAKn8C,OAItEA,KAAKg8C,KAAKE,QAAQzH,KAAK,cAOzB9qC,IAAK,cACL5E,MAAO,WAUL,GARI/E,KAAKi0H,YAAa,GACpBj0H,KAAKg7F,iBAIPh7F,KAAKy0E,SAELz0E,KAAK00H,OAAS,UACV10H,KAAKy0H,cAAe,EAAM,CAC5B,GAAInhH,GAAStT,KAAK6D,QAAQ4T,QAAQzX,KAAK6D,QAAQyP,OAC/CtT,MAAKu1H,mBACLv1H,KAAKq2H,kBAAkB/iH,GACvBtT,KAAK61H,mBACL71H,KAAKs2H,mBAAmBhjH,EAAuB,gBAAKtT,KAAK6D,QAAQ4T,QAAY,GAAkB,gBAG/FzX,KAAKk2H,iBAAiBl2H,KAAKo0H,SAAUp0H,KAAKm2H,eAAeh6E,KAAKn8C,OAGhEA,KAAKo2H,oBAAoB,QAASp2H,KAAKu2H,gBAAgBp6E,KAAKn8C,UAO9D2J,IAAK,WACL5E,MAAO,WACL,GAAIwwE,GAASv1E,IAGTA,MAAKi0H,YAAa,GACpBj0H,KAAKg7F,iBAIPh7F,KAAKy0E,QACL,IAAIj8C,GAAOx4B,KAAKm3F,iBAAiBq/B,kBACjC,IAAajwH,SAATiyB,EAAoB,CAEtB,GADAx4B,KAAK00H,OAAS,WACuB,kBAA1B10H,MAAK6D,QAAQs3F,SAqBtB,KAAM,IAAIn0F,OAAM,kEApBhB,IAAIwxB,EAAKgiE,aAAc,EAAM,CAC3B,GAAIziF,GAAOpX,EAAK0G,cAAemxB,EAAK30B,SAAS,EAI7C,IAHAkU,EAAKyiB,EAAIhC,EAAKgC,EACdziB,EAAK0H,EAAI+Y,EAAK/Y,EAEuB,IAAjCzf,KAAK6D,QAAQs3F,SAAS70F,OASxB,KAAM,IAAIU,OAAM,wEARhBhH,MAAK6D,QAAQs3F,SAASpjF,EAAM,SAAU0+G,GACd,OAAlBA,GAA4ClwH,SAAlBkwH,GAAiD,aAAlBlhD,EAAOm/C,QAElEn/C,EAAOv5B,KAAKjkC,KAAK89E,MAAM53D,aAAanB,OAAO25F,GAE7ClhD,EAAO8/C,+BAMX3yC,OAAM1iF,KAAK6D,QAAQ4T,QAAQzX,KAAK6D,QAAQyP,QAA0B,kBAAKtT,KAAK6D,QAAQ4T,QAAY,GAAoB,sBAMxHzX,MAAKq1H,4BAQT1rH,IAAK,cACL5E,MAAO,WAUL,GARI/E,KAAKi0H,YAAa,GACpBj0H,KAAKg7F,iBAIPh7F,KAAKy0E,SAELz0E,KAAK00H,OAAS,UACV10H,KAAKy0H,cAAe,EAAM,CAC5B,GAAInhH,GAAStT,KAAK6D,QAAQ4T,QAAQzX,KAAK6D,QAAQyP,OAC/CtT,MAAKu1H,mBACLv1H,KAAKq2H,kBAAkB/iH,GACvBtT,KAAK61H,mBACL71H,KAAKs2H,mBAAmBhjH,EAAwB,iBAAKtT,KAAK6D,QAAQ4T,QAAY,GAAmB,iBAGjGzX,KAAKk2H,iBAAiBl2H,KAAKo0H,SAAUp0H,KAAKm2H,eAAeh6E,KAAKn8C,OAIhEA,KAAK02H,iBAAiB,UAAW12H,KAAK22H,eAAex6E,KAAKn8C,OAC1DA,KAAK02H,iBAAiB,YAAa12H,KAAK42H,eAAez6E,KAAKn8C,OAC5DA,KAAK02H,iBAAiB,SAAU12H,KAAK62H,iBAAiB16E,KAAKn8C,OAC3DA,KAAK02H,iBAAiB,YAAa12H,KAAK42H,eAAez6E,KAAKn8C,OAE5DA,KAAK02H,iBAAiB,cAAe,cACrC12H,KAAK02H,iBAAiB,SAAU,iBAOlC/sH,IAAK,eACL5E,MAAO,WACL,GAAIsxE,GAASr2E,IAWb,IARIA,KAAKi0H,YAAa,GACpBj0H,KAAKg7F,iBAIPh7F,KAAKy0E,SAELz0E,KAAK00H,OAAS,WACV10H,KAAKy0H,cAAe,EAAM,CAC5B,GAAInhH,GAAStT,KAAK6D,QAAQ4T,QAAQzX,KAAK6D,QAAQyP,OAC/CtT,MAAKu1H,mBACLv1H,KAAKq2H,kBAAkB/iH,GACvBtT,KAAK61H,mBACL71H,KAAKs2H,mBAAmBhjH,EAA4B,qBAAKtT,KAAK6D,QAAQ4T,QAAY,GAAuB,qBAGzGzX,KAAKk2H,iBAAiBl2H,KAAKo0H,SAAUp0H,KAAKm2H,eAAeh6E,KAAKn8C,OAGhEA,KAAK82H,kBAAoB92H,KAAKm3F,iBAAiBgF,mBAAmB,GACnC51F,SAA3BvG,KAAK82H,mBACP,WACE,GAAIx6B,GAAOjmB,EAAOr6B,KAAK+5C,MAAM1f,EAAOygD,mBAGhCC,EAAkB1gD,EAAO2gD,kBAAkB16B,EAAKnnF,KAAKqlB,EAAG8hE,EAAKnnF,KAAKsK,GAClEw3G,EAAgB5gD,EAAO2gD,kBAAkB16B,EAAKpnF,GAAGslB,EAAG8hE,EAAKpnF,GAAGuK,EAEhE42D,GAAOm+C,aAAa3+B,MAAMruF,KAAKuvH,EAAgB12H,IAC/Cg2E,EAAOm+C,aAAa3+B,MAAMruF,KAAKyvH,EAAc52H,IAE7Cg2E,EAAOr6B,KAAK65C,MAAMkhC,EAAgB12H,IAAM02H,EACxC1gD,EAAOr6B,KAAK85C,YAAYtuF,KAAKuvH,EAAgB12H,IAC7Cg2E,EAAOr6B,KAAK65C,MAAMohC,EAAc52H,IAAM42H,EACtC5gD,EAAOr6B,KAAK85C,YAAYtuF,KAAKyvH,EAAc52H,IAG3Cg2E,EAAOqgD,iBAAiB,UAAWrgD,EAAO6gD,kBAAkB/6E,KAAKk6B,IACjEA,EAAOqgD,iBAAiB,QAAS,cACjCrgD,EAAOqgD,iBAAiB,SAAU,cAClCrgD,EAAOqgD,iBAAiB,cAAergD,EAAO8gD,sBAAsBh7E,KAAKk6B,IACzEA,EAAOqgD,iBAAiB,SAAUrgD,EAAO+gD,iBAAiBj7E,KAAKk6B,IAC/DA,EAAOqgD,iBAAiB,YAAargD,EAAOghD,oBAAoBl7E,KAAKk6B,IACrEA,EAAOqgD,iBAAiB,cAAe,cAIvCrgD,EAAO+/C,oBAAoB,gBAAiB,SAAUhoF,GACpD,GAAIkrE,GAAYhd,EAAKiP,SAAS+rB,oBAAoBlpF,EAC9C2oF,GAAgB5zD,YAAa,IAC/B4zD,EAAgBv8F,EAAI8+E,EAAUnkG,KAAKqlB,EACnCu8F,EAAgBt3G,EAAI65F,EAAUnkG,KAAKsK,GAEjCw3G,EAAc9zD,YAAa,IAC7B8zD,EAAcz8F,EAAI8+E,EAAUpkG,GAAGslB,EAC/By8F,EAAcx3G,EAAI65F,EAAUpkG,GAAGuK,KAInC42D,EAAOr6B,KAAKE,QAAQzH,KAAK,cAG3Bz0C,KAAKq1H,4BAQT1rH,IAAK,iBACL5E,MAAO,WACL,GAAI0xE,GAASz2E,IAGTA,MAAKi0H,YAAa,GACpBj0H,KAAKg7F,iBAIPh7F,KAAKy0E,SAELz0E,KAAK00H,OAAS,QACd,IAAI6C,GAAgBv3H,KAAKm3F,iBAAiB+E,mBACtCs7B,EAAgBx3H,KAAKm3F,iBAAiBgF,mBACtCs7B,EAAiBlxH,MACrB,IAAIgxH,EAAcjxH,OAAS,EAAG,CAC5B,IAAK,GAAIG,GAAI,EAAGA,EAAI8wH,EAAcjxH,OAAQG,IACxC,GAAIzG,KAAKg8C,KAAK65C,MAAM0hC,EAAc9wH,IAAI+zF,aAAc,EAElD,WADA9X,OAAM1iF,KAAK6D,QAAQ4T,QAAQzX,KAAK6D,QAAQyP,QAA4B,oBAAKtT,KAAK6D,QAAQ4T,QAAY,GAAsB,mBAKrF,mBAA5BzX,MAAK6D,QAAQmxH,aACtByC,EAAiBz3H,KAAK6D,QAAQmxH,gBAEvBwC,GAAclxH,OAAS,GACO,kBAA5BtG,MAAK6D,QAAQoxH,aACtBwC,EAAiBz3H,KAAK6D,QAAQoxH,WAIlC,IAA8B,kBAAnBwC,GAA+B,CACxC,GAAI1/G,IAAS89E,MAAO0hC,EAAexhC,MAAOyhC,EAC1C,IAA8B,IAA1BC,EAAenxH,OAcjB,KAAM,IAAIU,OAAM,0EAbhBywH,GAAe1/G,EAAM,SAAU0+G,GACP,OAAlBA,GAA4ClwH,SAAlBkwH,GAAiD,WAAlBhgD,EAAOi+C,QAElEj+C,EAAOz6B,KAAKjkC,KAAKg+E,MAAM93D,aAAaO,OAAOi4F,EAAc1gC,OACzDtf,EAAOz6B,KAAKjkC,KAAK89E,MAAM53D,aAAaO,OAAOi4F,EAAc5gC,OACzDpf,EAAOz6B,KAAKE,QAAQzH,KAAK,mBACzBgiC,EAAO4+C,2BAEP5+C,EAAOz6B,KAAKE,QAAQzH,KAAK,mBACzBgiC,EAAO4+C,gCAObr1H,MAAKg8C,KAAKjkC,KAAKg+E,MAAM93D,aAAaO,OAAOg5F,GACzCx3H,KAAKg8C,KAAKjkC,KAAK89E,MAAM53D,aAAaO,OAAO+4F,GACzCv3H,KAAKg8C,KAAKE,QAAQzH,KAAK,mBACvBz0C,KAAKq1H,4BAWT1rH,IAAK,SACL5E,MAAO,WACD/E,KAAK6D,QAAQgN,WAAY,GAE3B7Q,KAAKy0H,YAAa,EAElBz0H,KAAK03H,kBACD13H,KAAKi0H,YAAa,EACpBj0H,KAAKs1H,oBAELt1H,KAAKq1H,2BAGPr1H,KAAK23H,yBAGL33H,KAAKy0H,YAAa,MAStB9qH,IAAK,kBACL5E,MAAO,WAEwBwB,SAAzBvG,KAAKk0H,kBACPl0H,KAAKk0H,gBAAkBl6F,SAASM,cAAc,OAC9Ct6B,KAAKk0H,gBAAgBnrH,UAAY,mBAC7B/I,KAAKi0H,YAAa,EACpBj0H,KAAKk0H,gBAAgBplH,MAAMqiE,QAAU,QAErCnxE,KAAKk0H,gBAAgBplH,MAAMqiE,QAAU,OAEvCnxE,KAAKqnC,OAAOD,MAAMlN,YAAYl6B,KAAKk0H,kBAIZ3tH,SAArBvG,KAAKm0H,cACPn0H,KAAKm0H,YAAcn6F,SAASM,cAAc,OAC1Ct6B,KAAKm0H,YAAYprH,UAAY,gBACzB/I,KAAKi0H,YAAa,EACpBj0H,KAAKm0H,YAAYrlH,MAAMqiE,QAAU,OAEjCnxE,KAAKm0H,YAAYrlH,MAAMqiE,QAAU,QAEnCnxE,KAAKqnC,OAAOD,MAAMlN,YAAYl6B,KAAKm0H,cAIf5tH,SAAlBvG,KAAKo0H,WACPp0H,KAAKo0H,SAAWp6F,SAASM,cAAc,OACvCt6B,KAAKo0H,SAASrrH,UAAY,YAC1B/I,KAAKo0H,SAAStlH,MAAMqiE,QAAUnxE,KAAKk0H,gBAAgBplH,MAAMqiE,QACzDnxE,KAAKqnC,OAAOD,MAAMlN,YAAYl6B,KAAKo0H,cAYvCzqH,IAAK,oBACL5E,MAAO,SAA2By1B,EAAG/a,GACnC,GAAIy1G,GAAmBv0H,EAAK0G,cAAerH,KAAK6D,QAAQqxH,iBAQxD,OANAA,GAAiB70H,GAAK,aAAeM,EAAKgF,aAC1CuvH,EAAiBr8D,QAAS,EAC1Bq8D,EAAiBl9C,SAAU,EAC3Bk9C,EAAiB16F,EAAIA,EACrB06F,EAAiBz1G,EAAIA,EAEdzf,KAAKg8C,KAAK26C,UAAUC,WAAWs+B,MAOxCvrH,IAAK,oBACL5E,MAAO,WAEL/E,KAAKy0E,SAGLz0E,KAAKu1H,mBAGL50H,EAAK2D,mBAAmBtE,KAAKm0H,YAG7B,IAAI7gH,GAAStT,KAAK6D,QAAQ4T,QAAQzX,KAAK6D,QAAQyP,QAC3CigC,EAASvzC,KAAK43H,cAAc,WAAY,oCAAqCtkH,EAAa,MAAKtT,KAAK6D,QAAQ4T,QAAY,GAAQ,KACpIzX,MAAKm0H,YAAYj6F,YAAYqZ,GAG7BvzC,KAAKk2H,iBAAiB3iF,EAAQvzC,KAAKm2H,eAAeh6E,KAAKn8C,UAQzD2J,IAAK,SACL5E,MAAO,WAEL/E,KAAK00H,QAAS,EAGV10H,KAAKy0H,cAAe,IACtB9zH,EAAK2D,mBAAmBtE,KAAKm0H,aAC7BxzH,EAAK2D,mBAAmBtE,KAAKk0H,iBAG7Bl0H,KAAK63H,4BAIP73H,KAAK83H,iCAGL93H,KAAK+3H,sBAGL/3H,KAAKg4H,yBAGLh4H,KAAKg8C,KAAKE,QAAQzH,KAAK,qBAQzB9qC,IAAK,2BACL5E,MAAO,WAEL,GAAuC,GAAnC/E,KAAKq0H,oBAAoB/tH,OAAa,CACxC,IAAK,GAAIG,GAAI,EAAGA,EAAIzG,KAAKq0H,oBAAoB/tH,OAAQG,IACnDzG,KAAKq0H,oBAAoB5tH,GAAGs1B,SAE9B/7B,MAAKq0H,2BAST1qH,IAAK,yBACL5E,MAAO,WAEL/E,KAAKy0E,SAGL9zE,EAAK2D,mBAAmBtE,KAAKk0H,iBAC7BvzH,EAAK2D,mBAAmBtE,KAAKm0H,aAC7BxzH,EAAK2D,mBAAmBtE,KAAKo0H,UAGzBp0H,KAAKk0H,iBACPl0H,KAAKqnC,OAAOD,MAAM1iC,YAAY1E,KAAKk0H,iBAEjCl0H,KAAKm0H,aACPn0H,KAAKqnC,OAAOD,MAAM1iC,YAAY1E,KAAKm0H,aAEjCn0H,KAAKo0H,UACPp0H,KAAKqnC,OAAOD,MAAM1iC,YAAY1E,KAAKk0H,iBAIrCl0H,KAAKk0H,gBAAkB3tH,OACvBvG,KAAKm0H,YAAc5tH,OACnBvG,KAAKo0H,SAAW7tH,UASlBoD,IAAK,mBACL5E,MAAO,WACL,GAAIqE,GAAQ/C,UAAUC,QAAU,GAAsBC,SAAjBF,UAAU,GAAmB,EAAIA,UAAU,EAEhFrG,MAAKu1H,gBAAgB,mBAAqBnsH,GAAS4wB,SAASM,cAAc,OAC1Et6B,KAAKu1H,gBAAgB,mBAAqBnsH,GAAOL,UAAY,qBAC7D/I,KAAKk0H,gBAAgBh6F,YAAYl6B,KAAKu1H,gBAAgB,mBAAqBnsH,OAM7EO,IAAK,uBACL5E,MAAO,SAA8BuO,GACnC,GAAIigC,GAASvzC,KAAK43H,cAAc,UAAW,qBAAsBtkH,EAAgB,SAAKtT,KAAK6D,QAAQ4T,QAAY,GAAW,QAC1HzX,MAAKk0H,gBAAgBh6F,YAAYqZ,GACjCvzC,KAAKk2H,iBAAiB3iF,EAAQvzC,KAAKk7F,YAAY/+C,KAAKn8C,UAGtD2J,IAAK,uBACL5E,MAAO,SAA8BuO,GACnC,GAAIigC,GAASvzC,KAAK43H,cAAc,UAAW,yBAA0BtkH,EAAgB,SAAKtT,KAAK6D,QAAQ4T,QAAY,GAAW,QAC9HzX,MAAKk0H,gBAAgBh6F,YAAYqZ,GACjCvzC,KAAKk2H,iBAAiB3iF,EAAQvzC,KAAKq7F,YAAYl/C,KAAKn8C,UAGtD2J,IAAK,wBACL5E,MAAO,SAA+BuO,GACpC,GAAIigC,GAASvzC,KAAK43H,cAAc,WAAY,sBAAuBtkH,EAAiB,UAAKtT,KAAK6D,QAAQ4T,QAAY,GAAY,SAC9HzX,MAAKk0H,gBAAgBh6F,YAAYqZ,GACjCvzC,KAAKk2H,iBAAiB3iF,EAAQvzC,KAAKm7F,SAASh/C,KAAKn8C,UAGnD2J,IAAK,wBACL5E,MAAO,SAA+BuO,GACpC,GAAIigC,GAASvzC,KAAK43H,cAAc,WAAY,sBAAuBtkH,EAAiB,UAAKtT,KAAK6D,QAAQ4T,QAAY,GAAY,SAC9HzX,MAAKk0H,gBAAgBh6F,YAAYqZ,GACjCvzC,KAAKk2H,iBAAiB3iF,EAAQvzC,KAAKs7F,aAAan/C,KAAKn8C,UAGvD2J,IAAK,sBACL5E,MAAO,SAA6BuO,GAClC,GAAIigC,GAASvzC,KAAK43H,cAAc,SAAU,wBAAyBtkH,EAAY,KAAKtT,KAAK6D,QAAQ4T,QAAY,GAAO,IACpHzX,MAAKk0H,gBAAgBh6F,YAAYqZ,GACjCvzC,KAAKk2H,iBAAiB3iF,EAAQvzC,KAAKu7F,eAAep/C,KAAKn8C,UAGzD2J,IAAK,oBACL5E,MAAO,SAA2BuO,GAChC,GAAIigC,GAASvzC,KAAK43H,cAAc,OAAQ,sBAAuBtkH,EAAa,MAAKtT,KAAK6D,QAAQ4T,QAAY,GAAQ,KAClHzX,MAAKk0H,gBAAgBh6F,YAAYqZ,GACjCvzC,KAAKk2H,iBAAiB3iF,EAAQvzC,KAAKq1H,uBAAuBl5E,KAAKn8C,UAGjE2J,IAAK,gBACL5E,MAAO,SAAuB1E,EAAI0I,EAAW+xB,GAC3C,GAAIm9F,GAAiB5xH,UAAUC,QAAU,GAAsBC,SAAjBF,UAAU,GAAmB,YAAcA,UAAU,EAQnG,OANArG,MAAKu1H,gBAAgBl1H,EAAK,OAAS25B,SAASM,cAAc,OAC1Dt6B,KAAKu1H,gBAAgBl1H,EAAK,OAAO0I,UAAYA,EAC7C/I,KAAKu1H,gBAAgBl1H,EAAK,SAAW25B,SAASM,cAAc,OAC5Dt6B,KAAKu1H,gBAAgBl1H,EAAK,SAAS0I,UAAYkvH,EAC/Cj4H,KAAKu1H,gBAAgBl1H,EAAK,SAASqrC,UAAY5Q,EAC/C96B,KAAKu1H,gBAAgBl1H,EAAK,OAAO65B,YAAYl6B,KAAKu1H,gBAAgBl1H,EAAK,UAChEL,KAAKu1H,gBAAgBl1H,EAAK,UAGnCsJ,IAAK,qBACL5E,MAAO,SAA4B+1B,GACjC96B,KAAKk0H,gBAAgBh6F,YAAYl6B,KAAK43H,cAAc,cAAe,sBAAuB98F,OAY5FnxB,IAAK,sBACL5E,MAAO,SAA6B+F,EAAOotH,GACzCl4H,KAAKu0H,wBAAwB/sH,MAAOsD,MAAOA,EAAOqtH,cAAeD,IACjEl4H,KAAKg8C,KAAKE,QAAQlgB,GAAGlxB,EAAOotH,MAU9BvuH,IAAK,mBACL5E,MAAO,SAA0BqzH,EAAgBF,GAC/C,GAAiD3xH,SAA7CvG,KAAKg8C,KAAKi6C,eAAemiC,GAI3B,KAAM,IAAIpxH,OAAM,qDAAuDoxH,EAAiB,kBAAoB94F,KAAKC,UAAUn4B,OAAO6H,KAAKjP,KAAKg8C,KAAKi6C,iBAHjJj2F,MAAKs0H,qBAAqB8D,GAAkBp4H,KAAKg8C,KAAKi6C,eAAemiC,GACrEp4H,KAAKg8C,KAAKi6C,eAAemiC,GAAkBF,KAY/CvuH,IAAK,sBACL5E,MAAO,WACL,IAAK,GAAIszH,KAAgBr4H,MAAKs0H,qBACxBt0H,KAAKs0H,qBAAqBtuH,eAAeqyH,KAC3Cr4H,KAAKg8C,KAAKi6C,eAAeoiC,GAAgBr4H,KAAKs0H,qBAAqB+D,SAC5Dr4H,MAAKs0H,qBAAqB+D,GAGrCr4H,MAAKs0H,2BAQP3qH,IAAK,yBACL5E,MAAO,WACL,IAAK,GAAI0B,GAAI,EAAGA,EAAIzG,KAAKu0H,wBAAwBjuH,OAAQG,IAAK,CAC5D,GAAI6xH,GAAYt4H,KAAKu0H,wBAAwB9tH,GAAGqE,MAC5CqtH,EAAgBn4H,KAAKu0H,wBAAwB9tH,GAAG0xH,aACpDn4H,MAAKg8C,KAAKE,QAAQ/f,IAAIm8F,EAAWH,GAEnCn4H,KAAKu0H,8BASP5qH,IAAK,mBACL5E,MAAO,SAA0BwzH,EAAYJ,GAC3C,GAAIp3E,GAAS,GAAI/8C,GAAOu0H,KACxBp+D,GAAW/C,QAAQrW,EAAQo3E,GAC3Bn4H,KAAKq0H,oBAAoB7sH,KAAKu5C,MAQhCp3C,IAAK,iCACL5E,MAAO,WAEL,IAAK,GAAI0B,GAAI,EAAGA,EAAIzG,KAAKw0H,aAAaz+B,MAAMzvF,OAAQG,IAAK,CACvDzG,KAAKg8C,KAAK+5C,MAAM/1F,KAAKw0H,aAAaz+B,MAAMtvF,IAAI0kG,mBACrCnrG,MAAKg8C,KAAK+5C,MAAM/1F,KAAKw0H,aAAaz+B,MAAMtvF,GAC/C,IAAI+xH,GAAgBx4H,KAAKg8C,KAAKg6C,YAAYzuF,QAAQvH,KAAKw0H,aAAaz+B,MAAMtvF,GACpD,MAAlB+xH,GACFx4H,KAAKg8C,KAAKg6C,YAAY3sF,OAAOmvH,EAAe,GAKhD,IAAK,GAAI/xH,GAAI,EAAGA,EAAIzG,KAAKw0H,aAAa3+B,MAAMvvF,OAAQG,IAAK,OAChDzG,MAAKg8C,KAAK65C,MAAM71F,KAAKw0H,aAAa3+B,MAAMpvF,GAC/C,IAAIgyH,GAAgBz4H,KAAKg8C,KAAK85C,YAAYvuF,QAAQvH,KAAKw0H,aAAa3+B,MAAMpvF,GACpD,MAAlBgyH,GACFz4H,KAAKg8C,KAAK85C,YAAYzsF,OAAOovH,EAAe,GAIhDz4H,KAAKw0H,cAAiB3+B,SAAWE,aAWnCpsF,IAAK,oBACL5E,MAAO,SAA2B+F,GAChC9K,KAAKm3F,iBAAiB4C,cACtB/5F,KAAK04H,UAAY14H,KAAKg8C,KAAK26C,UAAU/hC,WAAW9pD,EAAMmoC,QACtDjzC,KAAK04H,UAAUnzF,YAAc5kC,EAAKgG,UAAW3G,KAAKg8C,KAAK86C,KAAKvxD,gBAS9D57B,IAAK,wBACL5E,MAAO,SAA+B+F,GACpC,GAAI4rD,GAAU12D,KAAK04H,UACfnN,EAAavrH,KAAKm3F,iBAAiB+0B,yBAAyBx1D,GAC5DvhD,EAAOnV,KAAKg8C,KAAK65C,MAAM71F,KAAKw0H,aAAa3+B,MAAM,IAC/C3gF,EAAKlV,KAAKg8C,KAAK65C,MAAM71F,KAAKw0H,aAAa3+B,MAAM,IAC7CyG,EAAOt8F,KAAKg8C,KAAK+5C,MAAM/1F,KAAK82H,kBAChC92H,MAAK20H,oBAAsBpuH,MAE3B,IAAIoyH,GAAaxjH,EAAKy2G,kBAAkBL,GACpCqN,EAAW1jH,EAAG02G,kBAAkBL,EAEhCoN,MAAe,GACjB34H,KAAK20H,oBAAsBx/G,EAC3BmnF,EAAKiP,SAASp2F,KAAOA,GACZyjH,KAAa,IACtB54H,KAAK20H,oBAAsBz/G,EAC3BonF,EAAKiP,SAASr2F,GAAKA,GAGrBlV,KAAKg8C,KAAKE,QAAQzH,KAAK,cASzB9qC,IAAK,mBACL5E,MAAO,SAA0B+F,GAC/B9K,KAAKg8C,KAAKE,QAAQzH,KAAK,iBACvB,IAAIiiB,GAAU12D,KAAKg8C,KAAK26C,UAAU/hC,WAAW9pD,EAAMmoC,QAC/CnG,EAAM9sC,KAAKqnC,OAAOizD,YAAY5jC,EAElC,IAAiCnwD,SAA7BvG,KAAK20H,oBACP30H,KAAK20H,oBAAoBn6F,EAAIsS,EAAItS,EACjCx6B,KAAK20H,oBAAoBl1G,EAAIqtB,EAAIrtB,MAC5B,CAEL,GAAIy0B,GAAQwiB,EAAQl8B,EAAIx6B,KAAK04H,UAAUl+F,EACnC2Z,EAAQuiB,EAAQj3C,EAAIzf,KAAK04H,UAAUj5G,CACvCzf,MAAKg8C,KAAK86C,KAAKvxD,aAAgB/K,EAAGx6B,KAAK04H,UAAUnzF,YAAY/K,EAAI0Z,EAAOz0B,EAAGzf,KAAK04H,UAAUnzF,YAAY9lB,EAAI00B,GAE5Gn0C,KAAKg8C,KAAKE,QAAQzH,KAAK,cASzB9qC,IAAK,sBACL5E,MAAO,SAA6B+F,GAClC,GAAI4rD,GAAU12D,KAAKg8C,KAAK26C,UAAU/hC,WAAW9pD,EAAMmoC,QAC/Cs4E,EAAavrH,KAAKm3F,iBAAiB+0B,yBAAyBx1D,GAC5D4lC,EAAOt8F,KAAKg8C,KAAK+5C,MAAM/1F,KAAK82H,kBAGhC,IAAiCvwH,SAA7BvG,KAAK20H,oBAAT,CAMA,IAAK,GAFDkE,GAAqB74H,KAAKm3F,iBAAiBo3B,4BAA4BhD,GACvE/yF,EAAOjyB,OACFE,EAAIoyH,EAAmBvyH,OAAS,EAAGG,GAAK,EAAGA,IAClD,GAAIoyH,EAAmBpyH,KAAOzG,KAAK20H,oBAAoBt0H,GAAI,CACzDm4B,EAAOx4B,KAAKg8C,KAAK65C,MAAMgjC,EAAmBpyH,GAC1C,OAKJ,GAAaF,SAATiyB,GAAmDjyB,SAA7BvG,KAAK20H,oBAC7B,GAAIn8F,EAAKgiE,aAAc,EACrB9X,MAAM1iF,KAAK6D,QAAQ4T,QAAQzX,KAAK6D,QAAQyP,QAAyB,iBAAKtT,KAAK6D,QAAQ4T,QAAY,GAAmB,qBAC7G,CACL,GAAItC,GAAOnV,KAAKg8C,KAAK65C,MAAM71F,KAAKw0H,aAAa3+B,MAAM,GAC/C71F,MAAK20H,oBAAoBt0H,KAAO8U,EAAK9U,GACvCL,KAAK84H,iBAAiBtgG,EAAKn4B,GAAIi8F,EAAKpnF,GAAG7U,IAEvCL,KAAK84H,iBAAiBx8B,EAAKnnF,KAAK9U,GAAIm4B,EAAKn4B,QAI7Ci8F,GAAKyO,iBACL/qG,KAAKg8C,KAAKE,QAAQzH,KAAK,iBAEzBz0C,MAAKg8C,KAAKE,QAAQzH,KAAK,eAazB9qC,IAAK,iBACL5E,MAAO,SAAwB+F,GAE7B,IAAI,GAAIzF,OAAOyC,UAAY9H,KAAKknH,UAAY,IAAK,CAC/ClnH,KAAK04H,UAAY14H,KAAKg8C,KAAK26C,UAAU/hC,WAAW9pD,EAAMmoC,QACtDjzC,KAAK04H,UAAUnzF,YAAc5kC,EAAKgG,UAAW3G,KAAKg8C,KAAK86C,KAAKvxD,YAE5D,IAAImxB,GAAU12D,KAAK04H,UACflgG,EAAOx4B,KAAKm3F,iBAAiBiF,UAAU1lC,EAE3C,IAAanwD,SAATiyB,EACF,GAAIA,EAAKgiE,aAAc,EACrB9X,MAAM1iF,KAAK6D,QAAQ4T,QAAQzX,KAAK6D,QAAQyP,QAAyB,iBAAKtT,KAAK6D,QAAQ4T,QAAY,GAAmB,qBAC7G,CAEL,GAAIshH,GAAa/4H,KAAKg3H,kBAAkBx+F,EAAKgC,EAAGhC,EAAK/Y,EACrDzf,MAAKg8C,KAAK65C,MAAMkjC,EAAW14H,IAAM04H,EACjC/4H,KAAKg8C,KAAK85C,YAAYtuF,KAAKuxH,EAAW14H,GAGtC,IAAI24H,GAAiBh5H,KAAKg8C,KAAK26C,UAAUE,YACvCx2F,GAAI,iBAAmBM,EAAKgF,aAC5BwP,KAAMqjB,EAAKn4B,GACX6U,GAAI6jH,EAAW14H,GACf23E,SAAS,EACTuyB,QACE15F,SAAS,EACTjJ,KAAM,aACN6iG,UAAW,KAGfzqG,MAAKg8C,KAAK+5C,MAAMijC,EAAe34H,IAAM24H,EACrCh5H,KAAKg8C,KAAKg6C,YAAYxuF,KAAKwxH,EAAe34H,IAE1CL,KAAKw0H,aAAa3+B,MAAMruF,KAAKuxH,EAAW14H,IACxCL,KAAKw0H,aAAaz+B,MAAMvuF,KAAKwxH,EAAe34H,IAGhDL,KAAKknH,WAAY,GAAI7hH,OAAOyC,cAIhC6B,IAAK,mBACL5E,MAAO,SAA0B+F,GAC/B,GAAI4rD,GAAU12D,KAAKg8C,KAAK26C,UAAU/hC,WAAW9pD,EAAMmoC,OACnD,IAAmC1sC,SAA/BvG,KAAKw0H,aAAa3+B,MAAM,GAAkB,CAC5C,GAAIkjC,GAAa/4H,KAAKg8C,KAAK65C,MAAM71F,KAAKw0H,aAAa3+B,MAAM,GACzDkjC,GAAWv+F,EAAIx6B,KAAKqnC,OAAOg/E,qBAAqB3vD,EAAQl8B,GACxDu+F,EAAWt5G,EAAIzf,KAAKqnC,OAAOi/E,qBAAqB5vD,EAAQj3C,GACxDzf,KAAKg8C,KAAKE,QAAQzH,KAAK,eAClB,CACL,GAAIP,GAAQwiB,EAAQl8B,EAAIx6B,KAAK04H,UAAUl+F,EACnC2Z,EAAQuiB,EAAQj3C,EAAIzf,KAAK04H,UAAUj5G,CACvCzf,MAAKg8C,KAAK86C,KAAKvxD,aAAgB/K,EAAGx6B,KAAK04H,UAAUnzF,YAAY/K,EAAI0Z,EAAOz0B,EAAGzf,KAAK04H,UAAUnzF,YAAY9lB,EAAI00B,OAU9GxqC,IAAK,iBACL5E,MAAO,SAAwB+F,GAC7B,GAAI4rD,GAAU12D,KAAKg8C,KAAK26C,UAAU/hC,WAAW9pD,EAAMmoC,QAC/Cs4E,EAAavrH,KAAKm3F,iBAAiB+0B,yBAAyBx1D,GAG5DuiE,EAAgB1yH,MACeA,UAA/BvG,KAAKw0H,aAAaz+B,MAAM,KAC1BkjC,EAAgBj5H,KAAKg8C,KAAK+5C,MAAM/1F,KAAKw0H,aAAaz+B,MAAM,IAAI+J,OAM9D,KAAK,GAFD+4B,GAAqB74H,KAAKm3F,iBAAiBo3B,4BAA4BhD,GACvE/yF,EAAOjyB,OACFE,EAAIoyH,EAAmBvyH,OAAS,EAAGG,GAAK,EAAGA,IAElD,GAA+D,KAA3DzG,KAAKw0H,aAAa3+B,MAAMtuF,QAAQsxH,EAAmBpyH,IAAY,CACjE+xB,EAAOx4B,KAAKg8C,KAAK65C,MAAMgjC,EAAmBpyH,GAC1C,OAKJzG,KAAK83H,iCAGQvxH,SAATiyB,IACEA,EAAKgiE,aAAc,EACrB9X,MAAM1iF,KAAK6D,QAAQ4T,QAAQzX,KAAK6D,QAAQyP,QAAyB,iBAAKtT,KAAK6D,QAAQ4T,QAAY,GAAmB,iBAE3ElR,SAAnCvG,KAAKg8C,KAAK65C,MAAMojC,IAA6D1yH,SAA7BvG,KAAKg8C,KAAK65C,MAAMr9D,EAAKn4B,KACvEL,KAAKk5H,gBAAgBD,EAAezgG,EAAKn4B,KAI/CL,KAAKg8C,KAAKE,QAAQzH,KAAK,cAWzB9qC,IAAK,kBACL5E,MAAO,SAAyBo0H,GAC9B,GAAItiD,GAAS72E,KAETo5H,GACF/4H,GAAIM,EAAKgF,aACT60B,EAAG2+F,EAAUziE,QAAQrvB,OAAO7M,EAC5B/a,EAAG05G,EAAUziE,QAAQrvB,OAAO5nB,EAC5Bqb,MAAO,MAGT,IAAoC,kBAAzB96B,MAAK6D,QAAQgxH,QAAwB,CAC9C,GAAoC,IAAhC70H,KAAK6D,QAAQgxH,QAAQvuH,OASvB,KAAM,IAAIU,OAAM,sEARhBhH,MAAK6D,QAAQgxH,QAAQuE,EAAa,SAAU3C,GACpB,OAAlBA,GAA4ClwH,SAAlBkwH,GAAiD,YAAlB5/C,EAAO69C,SAElE79C,EAAO76B,KAAKjkC,KAAK89E,MAAM53D,aAAavd,IAAI+1G,GACxC5/C,EAAOw+C,gCAQbr1H,MAAKg8C,KAAKjkC,KAAK89E,MAAM53D,aAAavd,IAAI04G,GACtCp5H,KAAKq1H,4BAUT1rH,IAAK,kBACL5E,MAAO,SAAyBs0H,EAAcC,GAC5C,GAAItiD,GAASh3E,KAETo5H,GAAgBjkH,KAAMkkH,EAAcnkH,GAAIokH,EAC5C,IAAoC,kBAAzBt5H,MAAK6D,QAAQixH,QAAwB,CAC9C,GAAoC,IAAhC90H,KAAK6D,QAAQixH,QAAQxuH,OAUvB,KAAM,IAAIU,OAAM,0EAThBhH,MAAK6D,QAAQixH,QAAQsE,EAAa,SAAU3C,GACpB,OAAlBA,GAA4ClwH,SAAlBkwH,GAAiD,YAAlBz/C,EAAO09C,SAElE19C,EAAOh7B,KAAKjkC,KAAKg+E,MAAM93D,aAAavd,IAAI+1G,GACxCz/C,EAAOmgB,iBAAiB4C,cACxB/iB,EAAOq+C,gCAObr1H,MAAKg8C,KAAKjkC,KAAKg+E,MAAM93D,aAAavd,IAAI04G,GACtCp5H,KAAKm3F,iBAAiB4C,cACtB/5F,KAAKq1H,4BAUT1rH,IAAK,mBACL5E,MAAO,SAA0Bs0H,EAAcC,GAC7C,GAAIC,GAASv5H,KAETo5H,GAAgB/4H,GAAIL,KAAK82H,kBAAmB3hH,KAAMkkH,EAAcnkH,GAAIokH,EACxE,IAAqC,kBAA1Bt5H,MAAK6D,QAAQkxH,SAAyB,CAC/C,GAAqC,IAAjC/0H,KAAK6D,QAAQkxH,SAASzuH,OAaxB,KAAM,IAAIU,OAAM,wEAZhBhH,MAAK6D,QAAQkxH,SAASqE,EAAa,SAAU3C,GACrB,OAAlBA,GAA4ClwH,SAAlBkwH,GAAiD,aAAlB8C,EAAO7E,QAElE6E,EAAOv9E,KAAK+5C,MAAMqjC,EAAY/4H,IAAI0qG,iBAClCwuB,EAAOv9E,KAAKE,QAAQzH,KAAK,aAEzB8kF,EAAOv9E,KAAKjkC,KAAKg+E,MAAM93D,aAAanB,OAAO25F,GAC3C8C,EAAOpiC,iBAAiB4C,cACxBw/B,EAAOlE,gCAObr1H,MAAKg8C,KAAKjkC,KAAKg+E,MAAM93D,aAAanB,OAAOs8F,GACzCp5H,KAAKm3F,iBAAiB4C,cACtB/5F,KAAKq1H,6BAKJrB,IAGTp0H,GAAQ,WAAao0H,EACrBn0H,EAAOD,QAAUA,EAAQ,YAIrB,SAASC,EAAQD,GAWrBwH,OAAO2rE,eAAenzE,EAAS,cAC7BmF,OAAO,GAET,IAAIga,GAAS,SACTioE,EAAU,UACV7wE,EAAS,SACT1M,EAAQ,QACRrF,EAAS,SACToyC,EAAM,MACNywC,EAAM,MAENzjF,GACFq4D,WACEhrD,SAAWm2E,UAASA,GACpB5qD,QAAU4qD,UAASA,EAASjoE,OAAQA,EAAQtV,MAAOA,EAAOy9E,WAAY,YACtEjmD,WAAauV,IAAKA,GAClBy9B,YAAc+S,UAASA,GACvBrB,UAAYvhF,OAAQA,EAAQ4iF,UAASA,EAASjoE,OAAQA,EAAQtV,MAAOA,EAAOy9E,WAAY,aAE1F6O,OACEmU,QACEh1F,IAAMrE,SAAWm2E,UAASA,GAAWmjB,aAAeh0F,OAAQA,GAAUwvE,UAAYvhF,OAAQA,EAAQ4iF,UAASA,IAC3Gz1E,QAAUV,SAAWm2E,UAASA,GAAWmjB,aAAeh0F,OAAQA,GAAUwvE,UAAYvhF,OAAQA,EAAQ4iF,UAASA,IAC/G7xE,MAAQtE,SAAWm2E,UAASA,GAAWmjB,aAAeh0F,OAAQA,GAAUwvE,UAAYvhF,OAAQA,EAAQ4iF,UAASA,IAC7GrB,UAAY5mE,QAAS,OAAQ,KAAM,UAAW3a,OAAQA,IAExDqI,OACEA,OAASsS,OAAQA,GACjB5Q,WAAa4Q,OAAQA,GACrB3Q,OAAS2Q,OAAQA,GACjB0jC,SAAW1jC,QAAS,OAAQ,KAAM,QAASioE,UAASA,GACpDt6E,SAAWyJ,OAAQA,GACnBwvE,UAAYvhF,OAAQA,EAAQ2a,OAAQA,IAEtCmoF,QAAUlgB,UAASA,EAASv9E,MAAOA,GACnCmlC,MACEniC,OAASsS,OAAQA,GACjB8b,MAAQ1kB,OAAQA,GAChB0nF,MAAQ9+E,OAAQA,GAChB9Q,YAAc8Q,OAAQA,GACtBylB,aAAeruB,OAAQA,GACvB2nF,aAAe/+E,OAAQA,GACvBu/C,OAASv/C,QAAS,aAAc,MAAO,SAAU,WACjD4mE,UAAYvhF,OAAQA,EAAQ2a,OAAQA,IAEtC85C,QAAUmuB,UAASA,GACnBojB,YAAcljB,WAAY,WAAY/wE,OAAQA,GAC9C2kB,OAAS/b,OAAQA,EAAQxY,UAAa,aACtCy3F,oBAAsBhX,UAASA,GAC/B1gF,QAAU6P,OAAQA,EAAQ5P,UAAa,aACvCyxE,SAAWgP,UAASA,GACpBmX,SACEv5F,KAAOuR,OAAQA,GACftR,KAAOsR,OAAQA,GACf2kB,OACEjqB,SAAWm2E,UAASA,GACpBpiF,KAAOuR,OAAQA,GACftR,KAAOsR,OAAQA,GACfioF,YAAcjoF,OAAQA,GACtBkoF,eAAiBloF,OAAQA,GACzBwvE,UAAYvhF,OAAQA,EAAQ4iF,UAASA,IAEvCsX,uBAAyBpX,WAAY,YACrCvB,UAAYvhF,OAAQA,IAEtBimG,gBAAkBnjB,WAAY,WAAY/wE,OAAQA,GAClDm0F,mBAAqBn0F,OAAQA,GAC7BooF,QACE1tF,SAAWm2E,UAASA,GACpBnsD,MAAQ1kB,OAAQA,GAChBqkB,GAAKrkB,OAAQA,GACbsJ,GAAKtJ,OAAQA,GACbwvE,UAAYvhF,OAAQA,EAAQ4iF,UAASA,IAEvCujB,QACE15F,SAAWm2E,UAASA,GACpBp/E,MAAQmX,QAAS,UAAW,aAAc,WAAY,gBAAiB,gBAAiB,aAAc,WAAY,WAAY,YAAa,gBAC3I0rF,WAAat0F,OAAQA,GACrBq0F,gBAAkBzrF,QAAS,aAAc,WAAY,QAASioE,UAASA,GACvErB,UAAYvhF,OAAQA,EAAQ4iF,UAASA,IAEvC1qB,OAASv9C,OAAQA,EAAQxY,UAAa,aACtC60B,OAASjlB,OAAQA,GACjBpR,OAASoR,OAAQA,EAAQ5P,UAAa,aACtCo/E,UAAYvhF,OAAQA,IAEtBk3C,QACE0hD,kBAAoBhW,UAASA,GAC7BvB,QAAS,4CACTE,UAAYvhF,OAAQA,IAEtBq1F,aACEqvB,WAAa9hC,UAASA,GACtB+hC,UAAY/hC,UAASA,GACrB88B,iBAAmB98B,UAASA,GAC5B+8B,iBAAmB/8B,UAASA,GAC5B54E,OAAS44E,UAASA,GAClBgiC,UACEn4G,SAAWm2E,UAASA,GACpBiiC,OAASzuF,GAAKrkB,OAAQA,GAAUsJ,GAAKtJ,OAAQA,GAAU0gD,MAAQ1gD,OAAQA,GAAUwvE,UAAYvhF,OAAQA,IACrG8kH,cAAgBliC,UAASA,GACzBrB,UAAYvhF,OAAQA,EAAQ4iF,UAASA,IAEvCnoB,aAAemoB,UAASA,GACxBmiC,mBAAqBniC,UAASA,GAC9BpoB,YAAcooB,UAASA,GACvBymC,sBAAwBzmC,UAASA,GACjC0mC,qBAAuB1mC,UAASA,GAChCoiC,cAAgBjzG,OAAQA,GACxBkzG,UAAYriC,UAASA,GACrBrB,UAAYvhF,OAAQA,IAEtBo1F,QACEohB,YAAcr0G,UAAa,YAAa4P,OAAQA,GAChDo5G,gBAAkBvoC,UAASA,GAC3BwoC,cACE3+G,SAAWm2E,UAASA,GACpByoC,iBAAmBt5G,OAAQA,GAC3B8S,WAAalK,QAAS,KAAM,KAAM,KAAM,OACxC2wG,YAAc3wG,QAAS,UAAW,aAClC4mE,UAAYvhF,OAAQA,EAAQ4iF,UAASA,IAEvCrB,UAAYvhF,OAAQA,IAEtB2zF,cACElnF,SAAWm2E,UAASA,GACpB4tC,iBAAmB5tC,UAASA,GAC5B6tC,SAAW7tC,UAASA,EAASE,WAAY,YACzC4tC,SAAW9tC,UAASA,EAASE,WAAY,YACzCiU,UAAYjU,WAAY,YACxB6tC,UAAY/tC,UAASA,EAASE,WAAY,YAC1C8tC,YAAchuC,UAASA,EAASE,WAAY,YAC5C+tC,YAAcjuC,UAASA,EAASE,WAAY,YAC5CguC,iBAAkB,4CAClBvvC,UAAYvhF,OAAQA,EAAQ4iF,UAASA,IAEvC6O,OACEluD,aAAexxB,OAAQA,GACvBunF,qBAAuBvnF,OAAQA,EAAQ5P,UAAa,aACpDo3F,aAAe5+E,OAAQA,EAAQxY,UAAa,aAC5CkG,OACEyB,QAAU6Q,OAAQA,GAClB9Q,YAAc8Q,OAAQA,GACtB5Q,WACED,QAAU6Q,OAAQA,GAClB9Q,YAAc8Q,OAAQA,GACtB4mE,UAAYvhF,OAAQA,EAAQ2a,OAAQA,IAEtC3Q,OACEF,QAAU6Q,OAAQA,GAClB9Q,YAAc8Q,OAAQA,GACtB4mE,UAAYvhF,OAAQA,EAAQ2a,OAAQA,IAEtC4mE,UAAYvhF,OAAQA,EAAQ2a,OAAQA,IAEtC6+E,OACEpjE,GAAKwsD,UAASA,GACdvnE,GAAKunE,UAASA,GACdrB,UAAYvhF,OAAQA,EAAQ4iF,UAASA,IAEvCp4C,MACEniC,OAASsS,OAAQA,GACjB8b,MAAQ1kB,OAAQA,GAChB0nF,MAAQ9+E,OAAQA,GAChB9Q,YAAc8Q,OAAQA,GACtBylB,aAAeruB,OAAQA,GACvB2nF,aAAe/+E,OAAQA,GACvB4mE,UAAYvhF,OAAQA,EAAQ2a,OAAQA,IAEtC8gC,OAAS9gC,OAAQA,EAAQ5I,OAAQA,EAAQ5P,UAAa,aACtDsyD,QAAUmuB,UAASA,GACnB6K,MACEgM,MAAQ9+E,OAAQA,GAChBnH,MAAQmH,OAAQA,GAChB8b,MAAQ1kB,OAAQA,GAChB1J,OAASsS,OAAQA,GACjB4mE,UAAYvhF,OAAQA,IAEtB/D,IAAM0e,OAAQA,EAAQ5I,OAAQA,GAC9B4nF,OAASh/E,OAAQA,EAAQxY,UAAa,aACtCu0B,OAAS/b,OAAQA,EAAQxY,UAAa,aACtCy3F,oBAAsBhX,UAASA,GAC/BiX,OAAS9nF,OAAQA,EAAQ5P,UAAa,aACtC23F,MAAQ/nF,OAAQA,GAChB6hE,SAAWgP,UAASA,GACpBmX,SACEv5F,KAAOuR,OAAQA,GACftR,KAAOsR,OAAQA,GACf2kB,OACEjqB,SAAWm2E,UAASA,GACpBpiF,KAAOuR,OAAQA,GACftR,KAAOsR,OAAQA,GACfioF,YAAcjoF,OAAQA,GACtBkoF,eAAiBloF,OAAQA,GACzBwvE,UAAYvhF,OAAQA,EAAQ4iF,UAASA,IAEvCsX,uBAAyBpX,WAAY,YACrCvB,UAAYvhF,OAAQA,IAEtBm6F,QACE1tF,SAAWm2E,UAASA,GACpBnsD,MAAQ1kB,OAAQA,GAChBqkB,GAAKrkB,OAAQA,GACbsJ,GAAKtJ,OAAQA,GACbwvE,UAAYvhF,OAAQA,EAAQ4iF,UAASA,IAEvCwX,OAASz/E,QAAS,UAAW,SAAU,WAAY,MAAO,OAAQ,QAAS,gBAAiB,UAAW,MAAO,OAAQ,WAAY,eAAgB,SAAU,SAC5J0/E,iBACEC,cAAgB1X,UAASA,EAASv9E,MAAOA,GACzCgtC,cAAgBtgC,OAAQA,GACxBwoF,cAAgB3X,UAASA,GACzB4X,oBAAsB5X,UAASA,GAC/BrB,UAAYvhF,OAAQA,IAEtBy2B,MAAQ1kB,OAAQA,GAChBmmD,OAASv9C,OAAQA,EAAQxY,UAAa,aACtCxB,OAASoR,OAAQA,EAAQ5P,UAAa,aACtCi0B,GAAKrkB,OAAQA,GACbsJ,GAAKtJ,OAAQA,GACbwvE,UAAYvhF,OAAQA,IAEtB4zE,SACEnnE,SAAWm2E,UAASA,GACpB+vB,WACEE,uBAAyB9gG,OAAQA,GACjC+gG,gBAAkB/gG,OAAQA,GAC1BghG,cAAgBhhG,OAAQA,GACxBihG,gBAAkBjhG,OAAQA,GAC1BkhG,SAAWlhG,OAAQA,GACnBmhG,cAAgBnhG,OAAQA,GACxBwvE,UAAYvhF,OAAQA,IAEtBmzG,kBACEN,uBAAyB9gG,OAAQA,GACjC+gG,gBAAkB/gG,OAAQA,GAC1BghG,cAAgBhhG,OAAQA,GACxBihG,gBAAkBjhG,OAAQA,GAC1BkhG,SAAWlhG,OAAQA,GACnBmhG,cAAgBnhG,OAAQA,GACxBwvE,UAAYvhF,OAAQA,IAEtBozG,WACEN,gBAAkB/gG,OAAQA,GAC1BghG,cAAgBhhG,OAAQA,GACxBihG,gBAAkBjhG,OAAQA,GAC1BshG,cAAgBthG,OAAQA,GACxBkhG,SAAWlhG,OAAQA,GACnBwvE,UAAYvhF,OAAQA,IAEtBszG,uBACER,gBAAkB/gG,OAAQA,GAC1BghG,cAAgBhhG,OAAQA,GACxBihG,gBAAkBjhG,OAAQA,GAC1BshG,cAAgBthG,OAAQA,GACxBkhG,SAAWlhG,OAAQA,GACnBwvE,UAAYvhF,OAAQA,IAEtBuzG,aAAexhG,OAAQA,GACvByhG,aAAezhG,OAAQA,GACvB8hE,QAAUl5D,QAAS,YAAa,YAAa,wBAAyB,qBACtE84F,eACEhnG,SAAWm2E,UAASA,GACpB8wB,YAAc3hG,OAAQA,GACtB4hG,gBAAkB5hG,OAAQA,GAC1B6hG,kBAAoBhxB,UAASA,GAC7BroC,KAAOqoC,UAASA,GAChBrB,UAAYvhF,OAAQA,EAAQ4iF,UAASA,IAEvCixB,UAAY9hG,OAAQA,GACpBogG,kBAAoBvvB,UAASA,GAC7BrB,UAAYvhF,OAAQA,EAAQ4iF,UAASA,IAIvCvrC,YAAcurC,UAASA,GACvBxrB,YAAcwrB,UAASA,GACvB1zE,QAAUyL,OAAQA,GAClBtH,SACEguE,SAAWwB,IAAKA,GAChBtB,UAAYvhF,OAAQA,IAEtBi3B,QAAUtc,OAAQA,GAClBqc,OAASrc,OAAQA,GACjB4mE,UAAYvhF,OAAQA,GAGtBZ,GAAW83C,OAAOmqC,QAAUjiF,EAAWqyF,MACvCryF,EAAWu0F,aAAam9B,iBAAmB1xH,EAAWqyF,KAEtD,IAAIh4C,IACFg4C,OACEluD,aAAc,EAAG,EAAG,GAAI,GACxB+1D,qBAAsB,EAAG,EAAG,GAAI,GAChCjxF,OACEyB,QAAS,QAAS,WAClBD,YAAa,QAAS,WACtBE,WACED,QAAS,QAAS,WAClBD,YAAa,QAAS,YAExBG,OACEF,QAAS,QAAS,WAClBD,YAAa,QAAS,aAG1B2vF,OACEpjE,GAAG,EACH/a,GAAG,GAELmvB,MACEniC,OAAQ,QAAS,WACjBouB,MAAO,GAAI,EAAG,IAAK,GACnBgjE,MAAO,QAAS,UAAW,UAC3B5vF,YAAa,QAAS,QACtBu2B,aAAc,EAAG,EAAG,GAAI,GACxBs5D,aAAc,QAAS,YAGzBjlC,QAAQ,EACRmlC,oBAAoB,EAQpBhmB,SAAS,EACTmmB,SACEv5F,KAAM,GAAI,EAAG,IAAK,GAClBC,KAAM,GAAI,EAAG,IAAK,GAClBi2B,OACEjqB,SAAS,EACTjM,KAAM,GAAI,EAAG,IAAK,GAClBC,KAAM,GAAI,EAAG,IAAK,GAClBu5F,YAAa,GAAI,EAAG,IAAK,GACzBC,eAAgB,EAAG,EAAG,GAAI,KAG9BE,QACE1tF,SAAS,EACTgqB,MAAO,GAAI,EAAG,GAAI,GAClBL,GAAI,EAAG,IAAK,GAAI,GAChB/a,GAAI,EAAG,IAAK,GAAI,IAElB++E,OAAQ,UAAW,MAAO,SAAU,WAAY,UAAW,MAAO,SAAU,OAAQ,OAAQ,WAAY,gBACxGC,iBACEC,cAAc,EACdjoD,cAAe,EAAG,EAAG,GAAI,GACzBkoD,cAAc,GAEhB9jE,MAAO,GAAI,EAAG,IAAK,IAErBk7D,OACEmU,QACEh1F,IAAMrE,SAAS,EAAOs5F,aAAc,EAAG,EAAG,EAAG,MAC7C54F,QAAUV,SAAS,EAAOs5F,aAAc,EAAG,EAAG,EAAG,MACjDh1F,MAAQtE,SAAS,EAAOs5F,aAAc,EAAG,EAAG,EAAG,OAEjD19F,OACEA,OAAQ,QAAS,WACjB0B,WAAY,QAAS,WACrBC,OAAQ,QAAS,WACjBq0C,SAAU,OAAQ,KAAM,QAAQ,GAAM,GACtC/1C,SAAU,EAAG,EAAG,EAAG,MAErBw6F,QAAQ,EACRt4D,MACEniC,OAAQ,QAAS,WACjBouB,MAAO,GAAI,EAAG,IAAK,GACnBgjE,MAAO,QAAS,UAAW,UAC3B5vF,YAAa,QAAS,QACtBu2B,aAAc,EAAG,EAAG,GAAI,GACxBs5D,aAAc,QAAS,WACvBx/B,OAAQ,aAAc,MAAO,SAAU,WAEzCzF,QAAQ,EACRuxC,YAAa,IAAK,EAAG,EAAG,IACxBpM,oBAAoB,EACpBhmB,SAAS,EACTmmB,SACEv5F,KAAM,EAAG,EAAG,IAAK,GACjBC,KAAM,GAAI,EAAG,IAAK,GAClBi2B,OACEjqB,SAAS,EACTjM,KAAM,GAAI,EAAG,IAAK,GAClBC,KAAM,GAAI,EAAG,IAAK,GAClBu5F,YAAa,GAAI,EAAG,IAAK,GACzBC,eAAgB,EAAG,EAAG,GAAI,KAG9BgM,gBAAiB,IAAK,EAAG,EAAG,IAC5BC,mBAAoB,GAAI,EAAG,IAAK,GAChC/L,QACE1tF,SAAS,EACTgqB,MAAO,GAAI,EAAG,GAAI,GAClBL,GAAI,EAAG,IAAK,GAAI,GAChB/a,GAAI,EAAG,IAAK,GAAI,IAElB8qF,QACE15F,SAAS,EACTjJ,MAAO,UAAW,aAAc,WAAY,gBAAiB,gBAAiB,aAAc,WAAY,WAAY,YAAa,eACjI4iG,gBAAiB,aAAc,WAAY,QAC3CC,WAAY,GAAK,EAAG,EAAG,MAEzBrvE,OAAQ,EAAG,EAAG,GAAI,IAEpBo+D,QAGEg2B,cACE3+G,SAAS,EACT4+G,iBAAkB,IAAK,GAAI,IAAK,GAChCxmG,WAAY,KAAM,KAAM,KAAM,MAC9BymG,YAAa,UAAW,cAG5Bj2B,aACEqvB,WAAW,EACXC,UAAU,EACVjF,iBAAiB,EACjBC,iBAAiB,EACjB31G,OAAO,EACP46G,UACEn4G,SAAS,EACTo4G,OAASzuF,GAAI,GAAI,EAAG,GAAI,GAAI/a,GAAI,GAAI,EAAG,GAAI,GAAIo3C,MAAO,IAAM,EAAG,GAAK,OACpEqyD,cAAc,GAEhBrqD,aAAa,EACbsqD,mBAAmB,EACnBvqD,YAAY,EACZ6uD,sBAAsB,EACtBC,qBAAqB,EACrBtE,cAAe,IAAK,EAAG,IAAM,IAC7BC,UAAU,GAEZtxB,cACElnF,SAAS,EACT+jH,iBAAiB,GAEnB58C,SACEnnE,SAAS,EACTkmG,WAEEE,uBAAwB,KAAO,KAAQ,EAAG,IAC1CC,gBAAiB,GAAK,EAAG,GAAI,KAC7BC,cAAe,GAAI,EAAG,IAAK,GAC3BC,gBAAiB,IAAM,EAAG,IAAK,MAC/BC,SAAU,IAAM,EAAG,EAAG,KACtBC,cAAe,EAAG,EAAG,EAAG,MAE1BC,kBAEEN,uBAAwB,IAAK,KAAM,EAAG,GACtCC,gBAAiB,IAAM,EAAG,EAAG,MAC7BC,cAAe,GAAI,EAAG,IAAK,GAC3BC,gBAAiB,IAAM,EAAG,IAAK,MAC/BC,SAAU,GAAK,EAAG,EAAG,KACrBC,cAAe,EAAG,EAAG,EAAG,MAE1BE,WACEN,gBAAiB,GAAK,EAAG,GAAI,KAC7BC,cAAe,IAAK,EAAG,IAAK,GAC5BC,gBAAiB,IAAM,EAAG,IAAK,MAC/BK,cAAe,IAAK,EAAG,IAAK,GAC5BJ,SAAU,IAAM,EAAG,EAAG,MAExBK,uBACER,gBAAiB,GAAK,EAAG,GAAI,KAC7BC,cAAe,IAAK,EAAG,IAAK,GAC5BC,gBAAiB,IAAM,EAAG,IAAK,MAC/BK,cAAe,IAAK,EAAG,IAAK,GAC5BJ,SAAU,IAAM,EAAG,EAAG,MAExBM,aAAc,GAAI,EAAG,IAAK,GAC1BC,aAAc,GAAK,IAAM,GAAK,KAC9B3/B,QAAS,YAAa,mBAAoB,YAAa,yBACvDggC,UAAW,GAAK,IAAM,EAAG,MAG3BrlG,QACEU,QAAS,KAAM,OAInB1T,GAAQ4D,WAAaA,EACrB5D,EAAQi+C,iBAAmBA,GAIvB,SAASh+C,EAAQD,EAASM,GAiB9B,QAASuyE,GAAuB3sE,GAAO,MAAOA,IAAOA,EAAI4sE,WAAa5sE,GAAQ6sE,UAAW7sE,GAEzF,QAAS8sE,GAAgBC,EAAUC,GAAe,KAAMD,YAAoBC,IAAgB,KAAM,IAAI5rE,WAAU,qCAVhHE,OAAO2rE,eAAenzE,EAAS,cAC7BmF,OAAO,GAGT,IAAIi+F,GAAiB,WAAe,QAASC,GAAc76F,EAAK3B,GAAK,GAAIy8F,MAAeC,GAAK,EAAUzuF,GAAK,EAAW0uF,EAAK78F,MAAW,KAAM,IAAK,GAAiC88F,GAA7B/tF,EAAKlN,EAAIk7F,OAAOjhD,cAAmB8gD,GAAME,EAAK/tF,EAAG+B,QAAQo+C,QAAoBytC,EAAK17F,KAAK67F,EAAGt+F,QAAY0B,GAAKy8F,EAAK58F,SAAWG,GAA3D08F,GAAK,IAAoE,MAAOntB,GAAOthE,GAAK,EAAM0uF,EAAKptB,EAAO,QAAU,KAAWmtB,GAAM7tF,EAAG,WAAWA,EAAG,YAAe,QAAU,GAAIZ,EAAI,KAAM0uF,IAAQ,MAAOF,GAAQ,MAAO,UAAU96F,EAAK3B,GAAK,GAAIK,MAAMC,QAAQqB,GAAQ,MAAOA,EAAY,IAAIk7F,OAAOjhD,WAAYj7C,QAAOgB,GAAQ,MAAO66F,GAAc76F,EAAK3B,EAAa,MAAM,IAAIS,WAAU,4DAEnlB8rE,EAAe,WAAe,QAASC,GAAiB/nE,EAAQrE,GAAS,IAAK,GAAIJ,GAAI,EAAGA,EAAII,EAAMP,OAAQG,IAAK,CAAE,GAAIysE,GAAarsE,EAAMJ,EAAIysE,GAAWC,WAAaD,EAAWC,aAAc,EAAOD,EAAWE,cAAe,EAAU,SAAWF,KAAYA,EAAWG,UAAW,GAAMjsE,OAAO2rE,eAAe7nE,EAAQgoE,EAAWvpE,IAAKupE,IAAiB,MAAO,UAAUJ,EAAaQ,EAAYC,GAAiJ,MAA9HD,IAAYL,EAAiBH,EAAY7/D,UAAWqgE,GAAiBC,GAAaN,EAAiBH,EAAaS,GAAqBT,MAM7hB0mD,EAAuCt5H,EAAoB,KAE3Du5H,EAAwChnD,EAAuB+mD,GAW/DE,EAAc,WAChB,QAASA,GAAY19E,EAAMyhE,EAAYkc,GACrC/mD,EAAgB5yE,KAAM05H,GAEtB15H,KAAKg8C,KAAOA,EACZh8C,KAAKm3G,aAAesG,EACpBz9G,KAAKo3G,eAAiBuiB,EACtB35H,KAAK45H,eAAiB,GAAIH,GAAsC,WAgPlE,MAxOAzmD,GAAa0mD,IACX/vH,IAAK,aACL5E,MAAO,SAAoBlB,GACrBA,IACEA,EAAQszG,eACVn3G,KAAKm3G,aAAetzG,EAAQszG,cAE1BtzG,EAAQuzG,iBACVp3G,KAAKo3G,eAAiBvzG,EAAQuzG,oBAWpCztG,IAAK,QACL5E,MAAO,SAAes9G,EAAYwX,GAChC,GAAIC,GAAiBzzH,UAAUC,QAAU,GAAsBC,SAAjBF,UAAU,IAAmB,EAAQA,UAAU,GAGzF0zH,EAAW/5H,KAAK45H,eAAeI,aAAah6H,KAAKg8C,KAAMqmE,EAAYwX,EAGvE75H,MAAKi6H,gBAAgBF,GAGrB/5H,KAAKk6H,gBAAgBH,EAgBrB,KAbA,GAAI/oG,GAAY,IACZmpG,EAAiB,EACjBriB,EAAa,EACb3mG,EAAgBlM,KAAKJ,IAAI,IAAMI,KAAKL,IAAI,GAAK5E,KAAKg8C,KAAK85C,YAAYxvF,OAAQ,MAC3E8zH,EAAqB,EAErBC,EAAY,IACZC,EAAe,EACfC,EAAQ,EACRC,EAAQ,EACRC,EAAU,EACVC,EAAgB,EAEbL,EAAYrpG,GAA0B7f,EAAb2mG,GAA4B,CAC1DA,GAAc,CAEd,IAAI6iB,GAAyB36H,KAAK46H,sBAAsBd,GAEpDe,EAA0B73B,EAAe23B,EAAwB,EASrE,KAPAL,EAAeO,EAAwB,GACvCR,EAAYQ,EAAwB,GACpCN,EAAQM,EAAwB,GAChCL,EAAQK,EAAwB,GAEhCJ,EAAUJ,EACVK,EAAgB,EACTD,EAAUN,GAAkCC,EAAhBM,GAAoC,CACrEA,GAAiB,EACjB16H,KAAK86H,UAAUR,EAAcC,EAAOC,EAEpC,IAAIO,GAAc/6H,KAAKg7H,WAAWV,GAE9BW,EAAej4B,EAAe+3B,EAAa,EAE/CN,GAAUQ,EAAa,GACvBV,EAAQU,EAAa,GACrBT,EAAQS,EAAa,QAW3BtxH,IAAK,wBACL5E,MAAO,SAA+B+0H,GAQpC,IAAK,GAPDzX,GAAariH,KAAKg8C,KAAK85C,YACvBD,EAAQ71F,KAAKg8C,KAAK65C,MAClBwkC,EAAY,EACZa,EAAkB7Y,EAAW,GAC7B8Y,EAAY,EACZC,EAAY,EAEPC,EAAU,EAAGA,EAAUhZ,EAAW/7G,OAAQ+0H,IAAW,CAC5D,GAAI76H,GAAI6hH,EAAWgZ,EAEnB,IAAIxlC,EAAMr1F,GAAG0hG,sBAAuB,GAASrM,EAAMr1F,GAAGg6F,aAAc,GAAQs/B,KAAmB,GAAQjkC,EAAMr1F,GAAGqD,QAAQ+5F,MAAMpjE,KAAM,GAAQq7D,EAAMr1F,GAAGqD,QAAQ+5F,MAAMn+E,KAAM,EAAM;AAC7K,GAAI67G,GAAct7H,KAAKg7H,WAAWx6H,GAE9B+6H,EAAev4B,EAAes4B,EAAa,GAE3Cb,EAAUc,EAAa,GACvBhB,EAAQgB,EAAa,GACrBf,EAAQe,EAAa,EAETd,GAAZJ,IACFA,EAAYI,EACZS,EAAkB16H,EAClB26H,EAAYZ,EACZa,EAAYZ,IAKlB,OAAQU,EAAiBb,EAAWc,EAAWC,MAUjDzxH,IAAK,aACL5E,MAAO,SAAoBvE,GAQzB,IAAK,GAPD6hH,GAAariH,KAAKg8C,KAAK85C,YACvBD,EAAQ71F,KAAKg8C,KAAK65C,MAElB2lC,EAAM3lC,EAAMr1F,GAAGg6B,EACfihG,EAAM5lC,EAAMr1F,GAAGif,EACf86G,EAAQ,EACRC,EAAQ,EACHkB,EAAO,EAAGA,EAAOrZ,EAAW/7G,OAAQo1H,IAAQ,CACnD,GAAIj1H,GAAI47G,EAAWqZ,EACnB,IAAIj1H,IAAMjG,EAAG,CACX,GAAIm7H,GAAM9lC,EAAMpvF,GAAG+zB,EACfohG,EAAM/lC,EAAMpvF,GAAGgZ,EACfo8G,EAAc,EAAM52H,KAAKoxC,KAAKpxC,KAAK0U,IAAI6hH,EAAMG,EAAK,GAAK12H,KAAK0U,IAAI8hH,EAAMG,EAAK,GAC/ErB,IAASv6H,KAAK87H,SAASt7H,GAAGiG,IAAM+0H,EAAMG,EAAM37H,KAAK+7H,SAASv7H,GAAGiG,IAAM+0H,EAAMG,GAAOE,GAChFrB,GAASx6H,KAAK87H,SAASt7H,GAAGiG,IAAMg1H,EAAMG,EAAM57H,KAAK+7H,SAASv7H,GAAGiG,IAAMg1H,EAAMG,GAAOC,IAIpF,GAAIpB,GAAUx1H,KAAKoxC,KAAKpxC,KAAK0U,IAAI4gH,EAAO,GAAKt1H,KAAK0U,IAAI6gH,EAAO,GAC7D,QAAQC,EAASF,EAAOC,MAY1B7wH,IAAK,YACL5E,MAAO,SAAmBvE,EAAG+5H,EAAOC,GASlC,IAAK,GARDnY,GAAariH,KAAKg8C,KAAK85C,YACvBD,EAAQ71F,KAAKg8C,KAAK65C,MAClBmmC,EAAU,EACVC,EAAW,EACXC,EAAU,EAEVV,EAAM3lC,EAAMr1F,GAAGg6B,EACfihG,EAAM5lC,EAAMr1F,GAAGif,EACVi8G,EAAO,EAAGA,EAAOrZ,EAAW/7G,OAAQo1H,IAAQ,CACnD,GAAIj1H,GAAI47G,EAAWqZ,EACnB,IAAIj1H,IAAMjG,EAAG,CACX,GAAIm7H,GAAM9lC,EAAMpvF,GAAG+zB,EACfohG,EAAM/lC,EAAMpvF,GAAGgZ,EACfo8G,EAAc,EAAM52H,KAAK0U,IAAI1U,KAAK0U,IAAI6hH,EAAMG,EAAK,GAAK12H,KAAK0U,IAAI8hH,EAAMG,EAAK,GAAI,IAClFI,IAAWh8H,KAAK87H,SAASt7H,GAAGiG,IAAM,EAAIzG,KAAK+7H,SAASv7H,GAAGiG,GAAKxB,KAAK0U,IAAI8hH,EAAMG,EAAK,GAAKC,GACrFI,GAAYj8H,KAAK87H,SAASt7H,GAAGiG,IAAMzG,KAAK+7H,SAASv7H,GAAGiG,IAAM+0H,EAAMG,IAAQF,EAAMG,GAAOC,GACrFK,GAAWl8H,KAAK87H,SAASt7H,GAAGiG,IAAM,EAAIzG,KAAK+7H,SAASv7H,GAAGiG,GAAKxB,KAAK0U,IAAI6hH,EAAMG,EAAK,GAAKE,IAIzF,GAAIhnC,GAAImnC,EACJxqF,EAAIyqF,EACJxqF,EAAI8oF,EACJjpG,EAAI4qG,EACJ94G,EAAIo3G,EAGJ7zF,GAAM8K,EAAIojD,EAAIzxE,EAAIouB,IAAMA,EAAIqjD,EAAIvjE,EAAIkgB,GACpC9K,IAAO8K,EAAI7K,EAAK8K,GAAKojD,CAGzBgB,GAAMr1F,GAAGg6B,GAAKkM,EACdmvD,EAAMr1F,GAAGif,GAAKknB,KAShBh9B,IAAK,kBACL5E,MAAO,SAAyBg1H,GAC9B,GAAI1X,GAAariH,KAAKg8C,KAAK85C,YACvB2nB,EAAaz9G,KAAKm3G,YAEtBn3G,MAAK+7H,WACL,KAAK,GAAIt1H,GAAI,EAAGA,EAAI47G,EAAW/7G,OAAQG,IAAK,CAC1CzG,KAAK+7H,SAAS1Z,EAAW57G,MACzB,KAAK,GAAIgK,GAAI,EAAGA,EAAI4xG,EAAW/7G,OAAQmK,IACrCzQ,KAAK+7H,SAAS1Z,EAAW57G,IAAI47G,EAAW5xG,IAAMgtG,EAAasc,EAAS1X,EAAW57G,IAAI47G,EAAW5xG,QAWpG9G,IAAK,kBACL5E,MAAO,SAAyBg1H,GAC9B,GAAI1X,GAAariH,KAAKg8C,KAAK85C,YACvB6jC,EAAe35H,KAAKo3G,cAExBp3G,MAAK87H,WACL,KAAK,GAAIr1H,GAAI,EAAGA,EAAI47G,EAAW/7G,OAAQG,IAAK,CAC1CzG,KAAK87H,SAASzZ,EAAW57G,MACzB,KAAK,GAAIgK,GAAI,EAAGA,EAAI4xG,EAAW/7G,OAAQmK,IACrCzQ,KAAK87H,SAASzZ,EAAW57G,IAAI47G,EAAW5xG,IAAMkpH,EAAe10H,KAAK0U,IAAIogH,EAAS1X,EAAW57G,IAAI47G,EAAW5xG,IAAK,SAM/GipH,IAGT95H,GAAQ,WAAa85H,EACrB75H,EAAOD,QAAUA,EAAQ,YAIrB,SAASC,EAAQD,GAcrB,QAASgzE,GAAgBC,EAAUC,GAAe,KAAMD,YAAoBC,IAAgB,KAAM,IAAI5rE,WAAU,qCANhHE,OAAO2rE,eAAenzE,EAAS,cAC7BmF,OAAO,GAGT,IAAIiuE,GAAe,WAAe,QAASC,GAAiB/nE,EAAQrE,GAAS,IAAK,GAAIJ,GAAI,EAAGA,EAAII,EAAMP,OAAQG,IAAK,CAAE,GAAIysE,GAAarsE,EAAMJ,EAAIysE,GAAWC,WAAaD,EAAWC,aAAc,EAAOD,EAAWE,cAAe,EAAU,SAAWF,KAAYA,EAAWG,UAAW,GAAMjsE,OAAO2rE,eAAe7nE,EAAQgoE,EAAWvpE,IAAKupE,IAAiB,MAAO,UAAUJ,EAAaQ,EAAYC,GAAiJ,MAA9HD,IAAYL,EAAiBH,EAAY7/D,UAAWqgE,GAAiBC,GAAaN,EAAiBH,EAAaS,GAAqBT,MAI7hBqpD,EAAgB,WAClB,QAASA,KACPvpD,EAAgB5yE,KAAMm8H,GA6CxB,MA1CAnpD,GAAampD,IACXxyH,IAAK,eACL5E,MAAO,SAAsBi3C,EAAMqmE,EAAYwX,GAK7C,IAAK,GAJDE,MACAhkC,EAAQ/5C,EAAK+5C,MAGRtvF,EAAI,EAAGA,EAAI47G,EAAW/7G,OAAQG,IAAK,CAC1CszH,EAAS1X,EAAW57G,OACpBszH,EAAS1X,EAAW57G,MACpB,KAAK,GAAIgK,GAAI,EAAGA,EAAI4xG,EAAW/7G,OAAQmK,IACrCspH,EAAS1X,EAAW57G,IAAI47G,EAAW5xG,IAAMhK,GAAKgK,EAAI,EAAI,IACtDspH,EAAS1X,EAAW57G,IAAI47G,EAAW5xG,IAAMhK,GAAKgK,EAAI,EAAI,IAK1D,IAAK,GAAIhK,GAAI,EAAGA,EAAIozH,EAAWvzH,OAAQG,IAAK,CAC1C,GAAI61F,GAAOvG,EAAM8jC,EAAWpzH,GAExB61F,GAAK6P,aAAc,GAAkC5lG,SAA1BwzH,EAASz9B,EAAKwD,SAAiDv5F,SAAxBwzH,EAASz9B,EAAKuD,QAClFk6B,EAASz9B,EAAKwD,QAAQxD,EAAKuD,MAAQ,EACnCk6B,EAASz9B,EAAKuD,MAAMvD,EAAKwD,QAAU,GAOvC,IAAK,GAHDib,GAAYsH,EAAW/7G,OAGlBkK,EAAI,EAAOuqG,EAAJvqG,EAAeA,IAC7B,IAAK,GAAI/J,GAAI,EAAOs0G,EAAY,EAAhBt0G,EAAmBA,IACjC,IAAK,GAAIgK,GAAIhK,EAAI,EAAOs0G,EAAJtqG,EAAeA,IACjCspH,EAAS1X,EAAW57G,IAAI47G,EAAW5xG,IAAMxL,KAAKL,IAAIm1H,EAAS1X,EAAW57G,IAAI47G,EAAW5xG,IAAKspH,EAAS1X,EAAW57G,IAAI47G,EAAW7xG,IAAMupH,EAAS1X,EAAW7xG,IAAI6xG,EAAW5xG,KACtKspH,EAAS1X,EAAW5xG,IAAI4xG,EAAW57G,IAAMszH,EAAS1X,EAAW57G,IAAI47G,EAAW5xG,GAKlF,OAAOspH,OAIJoC,IAGTv8H,GAAQ,WAAau8H,EACrBt8H,EAAOD,QAAUA,EAAQ,YAIrB,SAASC,EAAQD,GAOmB,mBAA7Bw8H,4BAKTA,yBAAyBnpH,UAAUswE,OAAS,SAAU/oD,EAAG/a,EAAGrT,GAC1DpM,KAAKivC,YACLjvC,KAAK0yC,IAAIlY,EAAG/a,EAAGrT,EAAG,EAAG,EAAInH,KAAK0tC,IAAI,GAClC3yC,KAAKsvC,aASP8sF,yBAAyBnpH,UAAUopH,OAAS,SAAU7hG,EAAG/a,EAAGrT,GAC1DpM,KAAKivC,YACLjvC,KAAKs7B,KAAKd,EAAIpuB,EAAGqT,EAAIrT,EAAO,EAAJA,EAAW,EAAJA,GAC/BpM,KAAKsvC,aASP8sF,yBAAyBnpH,UAAU0iC,SAAW,SAAUnb,EAAG/a,EAAGrT,GAE5DpM,KAAKivC,YAGL7iC,GAAK,KACLqT,GAAK,KAAQrT,CAEb,IAAIuB,GAAQ,EAAJvB,EACJkwH,EAAK3uH,EAAI,EACT4uH,EAAKt3H,KAAKoxC,KAAK,GAAK,EAAI1oC,EACxBD,EAAIzI,KAAKoxC,KAAK1oC,EAAIA,EAAI2uH,EAAKA,EAE/Bt8H,MAAKkvC,OAAO1U,EAAG/a,GAAK/R,EAAI6uH,IACxBv8H,KAAKmvC,OAAO3U,EAAI8hG,EAAI78G,EAAI88G,GACxBv8H,KAAKmvC,OAAO3U,EAAI8hG,EAAI78G,EAAI88G,GACxBv8H,KAAKmvC,OAAO3U,EAAG/a,GAAK/R,EAAI6uH,IACxBv8H,KAAKsvC,aASP8sF,yBAAyBnpH,UAAUupH,aAAe,SAAUhiG,EAAG/a,EAAGrT,GAEhEpM,KAAKivC,YAGL7iC,GAAK,KACLqT,GAAK,KAAQrT,CAEb,IAAIuB,GAAQ,EAAJvB,EACJkwH,EAAK3uH,EAAI,EACT4uH,EAAKt3H,KAAKoxC,KAAK,GAAK,EAAI1oC,EACxBD,EAAIzI,KAAKoxC,KAAK1oC,EAAIA,EAAI2uH,EAAKA,EAE/Bt8H,MAAKkvC,OAAO1U,EAAG/a,GAAK/R,EAAI6uH,IACxBv8H,KAAKmvC,OAAO3U,EAAI8hG,EAAI78G,EAAI88G,GACxBv8H,KAAKmvC,OAAO3U,EAAI8hG,EAAI78G,EAAI88G,GACxBv8H,KAAKmvC,OAAO3U,EAAG/a,GAAK/R,EAAI6uH,IACxBv8H,KAAKsvC,aASP8sF,yBAAyBnpH,UAAUwpH,KAAO,SAAUjiG,EAAG/a,EAAGrT,GAExDpM,KAAKivC,YAGL7iC,GAAK,IACLqT,GAAK,GAAMrT,CAEX,KAAK,GAAIssB,GAAI,EAAO,GAAJA,EAAQA,IAAK,CAC3B,GAAI+Z,GAAS/Z,EAAI,IAAM,EAAQ,IAAJtsB,EAAc,GAAJA,CACrCpM,MAAKmvC,OAAO3U,EAAIiY,EAASxtC,KAAKihC,IAAQ,EAAJxN,EAAQzzB,KAAK0tC,GAAK,IAAKlzB,EAAIgzB,EAASxtC,KAAKohC,IAAQ,EAAJ3N,EAAQzzB,KAAK0tC,GAAK,KAGnG3yC,KAAKsvC,aASP8sF,yBAAyBnpH,UAAUypH,QAAU,SAAUliG,EAAG/a,EAAGrT,GAE3DpM,KAAKivC,YAELjvC,KAAKmvC,OAAO3U,EAAG/a,EAAIrT,GACnBpM,KAAKmvC,OAAO3U,EAAIpuB,EAAGqT,GACnBzf,KAAKmvC,OAAO3U,EAAG/a,EAAIrT,GACnBpM,KAAKmvC,OAAO3U,EAAIpuB,EAAGqT,GAEnBzf,KAAKsvC,aAMP8sF,yBAAyBnpH,UAAUozF,UAAY,SAAU7rE,EAAG/a,EAAGsD,EAAGrV,EAAGtB,GACnE,GAAIuwH,GAAM13H,KAAK0tC,GAAK,GACJ,GAAZ5vB,EAAI,EAAI3W,IACVA,EAAI2W,EAAI,GAEM,EAAZrV,EAAI,EAAItB,IACVA,EAAIsB,EAAI,GAEV1N,KAAKivC,YACLjvC,KAAKkvC,OAAO1U,EAAIpuB,EAAGqT,GACnBzf,KAAKmvC,OAAO3U,EAAIzX,EAAI3W,EAAGqT,GACvBzf,KAAK0yC,IAAIlY,EAAIzX,EAAI3W,EAAGqT,EAAIrT,EAAGA,EAAS,IAANuwH,EAAiB,IAANA,GAAW,GACpD38H,KAAKmvC,OAAO3U,EAAIzX,EAAGtD,EAAI/R,EAAItB,GAC3BpM,KAAK0yC,IAAIlY,EAAIzX,EAAI3W,EAAGqT,EAAI/R,EAAItB,EAAGA,EAAG,EAAS,GAANuwH,GAAU,GAC/C38H,KAAKmvC,OAAO3U,EAAIpuB,EAAGqT,EAAI/R,GACvB1N,KAAK0yC,IAAIlY,EAAIpuB,EAAGqT,EAAI/R,EAAItB,EAAGA,EAAS,GAANuwH,EAAgB,IAANA,GAAW,GACnD38H,KAAKmvC,OAAO3U,EAAG/a,EAAIrT,GACnBpM,KAAK0yC,IAAIlY,EAAIpuB,EAAGqT,EAAIrT,EAAGA,EAAS,IAANuwH,EAAiB,IAANA,GAAW,GAChD38H,KAAKsvC,aAMP8sF,yBAAyBnpH,UAAUm2F,QAAU,SAAU5uE,EAAG/a,EAAGsD,EAAGrV,GAC9D,GAAIkvH,GAAQ,SACRC,EAAK95G,EAAI,EAAI65G,EAEjBE,EAAKpvH,EAAI,EAAIkvH,EAEbG,EAAKviG,EAAIzX,EAETi6G,EAAKv9G,EAAI/R,EAETuvH,EAAKziG,EAAIzX,EAAI,EAEbm6G,EAAKz9G,EAAI/R,EAAI,CAEb1N,MAAKivC,YACLjvC,KAAKkvC,OAAO1U,EAAG0iG,GACfl9H,KAAK2uG,cAAcn0E,EAAG0iG,EAAKJ,EAAIG,EAAKJ,EAAIp9G,EAAGw9G,EAAIx9G,GAC/Czf,KAAK2uG,cAAcsuB,EAAKJ,EAAIp9G,EAAGs9G,EAAIG,EAAKJ,EAAIC,EAAIG,GAChDl9H,KAAK2uG,cAAcouB,EAAIG,EAAKJ,EAAIG,EAAKJ,EAAIG,EAAIC,EAAID,GACjDh9H,KAAK2uG,cAAcsuB,EAAKJ,EAAIG,EAAIxiG,EAAG0iG,EAAKJ,EAAItiG,EAAG0iG,GAC/Cl9H,KAAKsvC,aAMP8sF,yBAAyBnpH,UAAUw1F,SAAW,SAAUjuE,EAAG/a,EAAGsD,EAAGrV,GAC/D,GAAI+B,GAAI,EAAI,EACR0tH,EAAWp6G,EACXq6G,EAAW1vH,EAAI+B,EAEfmtH,EAAQ,SACRC,EAAKM,EAAW,EAAIP,EAExBE,EAAKM,EAAW,EAAIR,EAEpBG,EAAKviG,EAAI2iG,EAETH,EAAKv9G,EAAI29G,EAETH,EAAKziG,EAAI2iG,EAAW,EAEpBD,EAAKz9G,EAAI29G,EAAW,EAEpBC,EAAM59G,GAAK/R,EAAI0vH,EAAW,GAE1BE,EAAM79G,EAAI/R,CAEV1N,MAAKivC,YACLjvC,KAAKkvC,OAAO6tF,EAAIG,GAEhBl9H,KAAK2uG,cAAcouB,EAAIG,EAAKJ,EAAIG,EAAKJ,EAAIG,EAAIC,EAAID,GACjDh9H,KAAK2uG,cAAcsuB,EAAKJ,EAAIG,EAAIxiG,EAAG0iG,EAAKJ,EAAItiG,EAAG0iG,GAE/Cl9H,KAAK2uG,cAAcn0E,EAAG0iG,EAAKJ,EAAIG,EAAKJ,EAAIp9G,EAAGw9G,EAAIx9G,GAC/Czf,KAAK2uG,cAAcsuB,EAAKJ,EAAIp9G,EAAGs9G,EAAIG,EAAKJ,EAAIC,EAAIG,GAEhDl9H,KAAKmvC,OAAO4tF,EAAIM,GAEhBr9H,KAAK2uG,cAAcouB,EAAIM,EAAMP,EAAIG,EAAKJ,EAAIS,EAAKL,EAAIK,GACnDt9H,KAAK2uG,cAAcsuB,EAAKJ,EAAIS,EAAK9iG,EAAG6iG,EAAMP,EAAItiG,EAAG6iG,GAEjDr9H,KAAKmvC,OAAO3U,EAAG0iG,IAMjBd,yBAAyBnpH,UAAU6/F,MAAQ,SAAUt4E,EAAG/a,EAAGunC,EAAO1gD,GAEhE,GAAIi3H,GAAK/iG,EAAIl0B,EAASrB,KAAKohC,IAAI2gB,GAC3Bw2E,EAAK/9G,EAAInZ,EAASrB,KAAKihC,IAAI8gB,GAG3By2E,EAAKjjG,EAAa,GAATl0B,EAAerB,KAAKohC,IAAI2gB,GACjC02E,EAAKj+G,EAAa,GAATnZ,EAAerB,KAAKihC,IAAI8gB,GAGjC22E,EAAKJ,EAAKj3H,EAAS,EAAIrB,KAAKohC,IAAI2gB,EAAQ,GAAM/hD,KAAK0tC,IACnDirF,EAAKJ,EAAKl3H,EAAS,EAAIrB,KAAKihC,IAAI8gB,EAAQ,GAAM/hD,KAAK0tC,IAGnDkrF,EAAKN,EAAKj3H,EAAS,EAAIrB,KAAKohC,IAAI2gB,EAAQ,GAAM/hD,KAAK0tC,IACnDmrF,EAAKN,EAAKl3H,EAAS,EAAIrB,KAAKihC,IAAI8gB,EAAQ,GAAM/hD,KAAK0tC,GAEvD3yC,MAAKivC,YACLjvC,KAAKkvC,OAAO1U,EAAG/a,GACfzf,KAAKmvC,OAAOwuF,EAAIC,GAChB59H,KAAKmvC,OAAOsuF,EAAIC,GAChB19H,KAAKmvC,OAAO0uF,EAAIC,GAChB99H,KAAKsvC,aASP8sF,yBAAyBnpH,UAAUq+F,WAAa,SAAU92E,EAAG/a,EAAGqvF,EAAIC,EAAImC,GACtElxG,KAAKivC,YACLjvC,KAAKkvC,OAAO1U,EAAG/a,EAYf,KAVA,GAAIs+G,GAAgB7sB,EAAQ5qG,OACxBogC,EAAKooE,EAAKt0E,EACVmM,EAAKooE,EAAKtvF,EACVu+G,EAAQr3F,EAAKD,EACbu3F,EAAgBh5H,KAAKoxC,KAAK3P,EAAKA,EAAKC,EAAKA,GACzCu3F,EAAe,EACfnmD,GAAO,EACPx0C,EAAQ,EACR46F,EAAajtB,EAAQ,GAElB+sB,GAAiB,IACtBE,EAAajtB,EAAQgtB,IAAiBH,GAClCI,EAAaF,IACfE,EAAaF,GAGf16F,EAAQt+B,KAAKoxC,KAAK8nF,EAAaA,GAAc,EAAIH,EAAQA,IACzDz6F,EAAa,EAALmD,GAAUnD,EAAQA,EAC1B/I,GAAK+I,EACL9jB,GAAKu+G,EAAQz6F,EAETw0C,KAAS,EACX/3E,KAAKmvC,OAAO3U,EAAG/a,GAEfzf,KAAKkvC,OAAO1U,EAAG/a,GAGjBw+G,GAAiBE,EACjBpmD,GAAQA,KAOV,SAASl4E,EAAQD,GAiBrB,QAASw+H,GAASrmH,GAEhB,MADAw+B,GAAMx+B,EACCsmH,IAkDT,QAAS3yC,KACPtiF,EAAQ,EACR3I,EAAI81C,EAAIhpB,OAAO,GAQjB,QAASlW,KACPjO,IACA3I,EAAI81C,EAAIhpB,OAAOnkB,GAOjB,QAASk1H,KACP,MAAO/nF,GAAIhpB,OAAOnkB,EAAQ,GAS5B,QAASm1H,GAAe99H,GACtB,MAAO+9H,GAAkB3uH,KAAKpP,GAShC,QAAS+hD,GAAMt8C,EAAGC,GAKhB,GAJKD,IACHA,MAGEC,EACF,IAAK,GAAIoR,KAAQpR,GACXA,EAAEH,eAAeuR,KACnBrR,EAAEqR,GAAQpR,EAAEoR,GAIlB,OAAOrR,GAeT,QAASu4H,GAAS34H,EAAKuvE,EAAMtwE,GAG3B,IAFA,GAAIkK,GAAOomE,EAAKpsE,MAAM,KAClBw4C,EAAI37C,EACDmJ,EAAK3I,QAAQ,CAClB,GAAIqD,GAAMsF,EAAK8qB,OACX9qB,GAAK3I,QAEFm7C,EAAE93C,KACL83C,EAAE93C,OAEJ83C,EAAIA,EAAE93C,IAGN83C,EAAE93C,GAAO5E,GAWf,QAAS8vH,GAAQv8E,EAAO9f,GAOtB,IANA,GAAI/xB,GAAGiB,EACH2xD,EAAU,KAGVqlE,GAAUpmF,GACV54C,EAAO44C,EACJ54C,EAAK6L,QACVmzH,EAAOl3H,KAAK9H,EAAK6L,QACjB7L,EAAOA,EAAK6L,MAId,IAAI7L,EAAKm2F,MACP,IAAKpvF,EAAI,EAAGiB,EAAMhI,EAAKm2F,MAAMvvF,OAAYoB,EAAJjB,EAASA,IAC5C,GAAI+xB,EAAKn4B,KAAOX,EAAKm2F,MAAMpvF,GAAGpG,GAAI,CAChCg5D,EAAU35D,EAAKm2F,MAAMpvF,EACrB,OAiBN,IAZK4yD,IAEHA,GACEh5D,GAAIm4B,EAAKn4B,IAEPi4C,EAAM9f,OAER6gC,EAAQslE,KAAOn8E,EAAM6W,EAAQslE,KAAMrmF,EAAM9f,QAKxC/xB,EAAIi4H,EAAOp4H,OAAS,EAAGG,GAAK,EAAGA,IAAK,CACvC,GAAI4F,GAAIqyH,EAAOj4H,EAEV4F,GAAEwpF,QACLxpF,EAAEwpF,UAE6B,KAA7BxpF,EAAEwpF,MAAMtuF,QAAQ8xD,IAClBhtD,EAAEwpF,MAAMruF,KAAK6xD,GAKb7gC,EAAKmmG,OACPtlE,EAAQslE,KAAOn8E,EAAM6W,EAAQslE,KAAMnmG,EAAKmmG,OAS5C,QAAS7J,GAAQx8E,EAAOgkD,GAKtB,GAJKhkD,EAAMy9C,QACTz9C,EAAMy9C,UAERz9C,EAAMy9C,MAAMvuF,KAAK80F,GACbhkD,EAAMgkD,KAAM,CACd,GAAIqiC,GAAOn8E,KAAUlK,EAAMgkD,KAC3BA,GAAKqiC,KAAOn8E,EAAMm8E,EAAMriC,EAAKqiC,OAajC,QAAS9nC,GAAWv+C,EAAOnjC,EAAMD,EAAItN,EAAM+2H,GACzC,GAAIriC,IACFnnF,KAAMA,EACND,GAAIA,EACJtN,KAAMA,EAQR,OALI0wC,GAAMgkD,OACRA,EAAKqiC,KAAOn8E,KAAUlK,EAAMgkD,OAE9BA,EAAKqiC,KAAOn8E,EAAM85C,EAAKqiC,SAAYA,GAE5BriC,EAOT,QAASsiC,KAKP,IAJAC,EAAYC,EAAUC,KACtBllH,EAAQ,GAGK,MAANpZ,GAAmB,MAANA,GAAoB,OAANA,GAAoB,OAANA,GAE9C4W,GAGF,GAAG,CACD,GAAI2nH,IAAY,CAGhB,IAAU,MAANv+H,EAAW,CAGb,IADA,GAAIgG,GAAI2C,EAAQ,EACS,MAAlBmtC,EAAIhpB,OAAO9mB,IAAgC,MAAlB8vC,EAAIhpB,OAAO9mB,IACzCA,GAEF,IAAsB,OAAlB8vC,EAAIhpB,OAAO9mB,IAAiC,KAAlB8vC,EAAIhpB,OAAO9mB,GAAW,CAElD,KAAY,IAALhG,GAAgB,MAALA,GAChB4W,GAEF2nH,IAAY,GAGhB,GAAU,MAANv+H,GAA+B,MAAlB69H,IAAuB,CAEtC,KAAY,IAAL79H,GAAgB,MAALA,GAChB4W,GAEF2nH,IAAY,EAEd,GAAU,MAANv+H,GAA+B,MAAlB69H,IAAuB,CAEtC,KAAY,IAAL79H,GAAS,CACd,GAAU,MAANA,GAA+B,MAAlB69H,IAAuB,CAEtCjnH,IACAA,GACA,OAEAA,IAGJ2nH,GAAY,EAId,KAAa,MAANv+H,GAAmB,MAANA,GAAoB,OAANA,GAAoB,OAANA,GAE9C4W,UAEK2nH,EAGT,IAAU,KAANv+H,EAGF,YADAo+H,EAAYC,EAAUG,UAKxB,IAAIC,GAAKz+H,EAAI69H,GACb,IAAIa,EAAWD,GAKb,MAJAL,GAAYC,EAAUG,UACtBplH,EAAQqlH,EACR7nH,QACAA,IAKF,IAAI8nH,EAAW1+H,GAIb,MAHAo+H,GAAYC,EAAUG,UACtBplH,EAAQpZ,MACR4W,IAMF,IAAIknH,EAAe99H,IAAY,MAANA,EAAW,CAIlC,IAHAoZ,GAASpZ,EACT4W,IAEOknH,EAAe99H,IACpBoZ,GAASpZ,EACT4W,GAUF,OARc,UAAVwC,EACFA,GAAQ,EACW,SAAVA,EACPA,GAAQ,EACEpU,MAAMpB,OAAOwV,MACrBA,EAAQxV,OAAOwV,SAErBglH,EAAYC,EAAUM,YAKxB,GAAU,MAAN3+H,EAAW,CAEb,IADA4W,IACY,IAAL5W,IAAiB,KAALA,GAAkB,MAANA,GAA+B,MAAlB69H,MAC1CzkH,GAASpZ,EACC,MAANA,GAEF4W,IAEFA,GAEF,IAAS,KAAL5W,EACF,KAAM4+H,GAAe,2BAIvB,OAFAhoH,UACAwnH,EAAYC,EAAUM,YAMxB,IADAP,EAAYC,EAAUQ,QACV,IAAL7+H,GACLoZ,GAASpZ,EACT4W,GAEF,MAAM,IAAI6pB,aAAY,yBAA2Bq+F,EAAK1lH,EAAO,IAAM,KAOrE,QAASwkH,KACP,GAAI/lF,KAwBJ,IAtBAozC,IACAkzC,IAGc,WAAV/kH,IACFy+B,EAAM/kC,QAAS,EACfqrH,MAIY,UAAV/kH,GAA+B,YAAVA,KACvBy+B,EAAM1wC,KAAOiS,EACb+kH,KAIEC,IAAcC,EAAUM,aAC1B9mF,EAAMj4C,GAAKwZ,EACX+kH,KAIW,KAAT/kH,EACF,KAAMwlH,GAAe,2BAQvB,IANAT,IAGAY,EAAgBlnF,GAGH,KAATz+B,EACF,KAAMwlH,GAAe,2BAKvB,IAHAT,IAGc,KAAV/kH,EACF,KAAMwlH,GAAe,uBASvB,OAPAT,WAGOtmF,GAAM9f,WACN8f,GAAMgkD,WACNhkD,GAAMA,MAENA,EAOT,QAASknF,GAAgBlnF,GACvB,KAAiB,KAAVz+B,GAAyB,KAATA,GACrB4lH,EAAennF,GACD,MAAVz+B,GACF+kH,IAWN,QAASa,GAAennF,GAEtB,GAAIonF,GAAWC,EAAcrnF,EAC7B,IAAIonF,EAIF,WAFAE,GAAUtnF,EAAOonF,EAMnB,IAAIf,GAAOkB,EAAwBvnF,EACnC,KAAIqmF,EAAJ,CAKA,GAAIE,GAAaC,EAAUM,WACzB,KAAMC,GAAe,sBAEvB,IAAIh/H,GAAKwZ,CAGT,IAFA+kH,IAEc,MAAV/kH,EAAe,CAGjB,GADA+kH,IACIC,GAAaC,EAAUM,WACzB,KAAMC,GAAe,sBAEvB/mF,GAAMj4C,GAAMwZ,EACZ+kH,QAGEkB,GAAmBxnF,EAAOj4C,IAShC,QAASs/H,GAAcrnF,GACrB,GAAIonF,GAAW,IAgBf,IAbc,aAAV7lH,IACF6lH,KACAA,EAAS93H,KAAO,WAChBg3H,IAGIC,IAAcC,EAAUM,aAC1BM,EAASr/H,GAAKwZ,EACd+kH,MAKU,MAAV/kH,EAAe,CAejB,GAdA+kH,IAEKc,IACHA,MAEFA,EAASn0H,OAAS+sC,EAClBonF,EAASlnG,KAAO8f,EAAM9f,KACtBknG,EAASpjC,KAAOhkD,EAAMgkD,KACtBojC,EAASpnF,MAAQA,EAAMA,MAGvBknF,EAAgBE,GAGH,KAAT7lH,EACF,KAAMwlH,GAAe,2BAEvBT,WAGOc,GAASlnG,WACTknG,GAASpjC,WACTojC,GAASpnF,YACTonF,GAASn0H,OAGX+sC,EAAMynF,YACTznF,EAAMynF,cAERznF,EAAMynF,UAAUv4H,KAAKk4H,GAGvB,MAAOA,GAYT,QAASG,GAAwBvnF,GAE/B,MAAc,SAAVz+B,GACF+kH,IAGAtmF,EAAM9f,KAAOwnG,IACN,QACY,SAAVnmH,GACT+kH,IAGAtmF,EAAMgkD,KAAO0jC,IACN,QACY,UAAVnmH,GACT+kH,IAGAtmF,EAAMA,MAAQ0nF,IACP,SAGF,KAQT,QAASF,GAAmBxnF,EAAOj4C,GAEjC,GAAIm4B,IACFn4B,GAAIA,GAEFs+H,EAAOqB,GACPrB,KACFnmG,EAAKmmG,KAAOA,GAEd9J,EAAQv8E,EAAO9f,GAGfonG,EAAUtnF,EAAOj4C,GAQnB,QAASu/H,GAAUtnF,EAAOnjC,GACxB,KAAiB,OAAV0E,GAA4B,OAAVA,GAAgB,CACvC,GAAI3E,GACAtN,EAAOiS,CACX+kH,IAEA,IAAIc,GAAWC,EAAcrnF,EAC7B,IAAIonF,EACFxqH,EAAKwqH,MACA,CACL,GAAIb,GAAaC,EAAUM,WACzB,KAAMC,GAAe,kCAEvBnqH,GAAK2E,EACLg7G,EAAQv8E,GACNj4C,GAAI6U,IAEN0pH,IAIF,GAAID,GAAOqB,IAGP1jC,EAAOzF,EAAWv+C,EAAOnjC,EAAMD,EAAItN,EAAM+2H,EAC7C7J,GAAQx8E,EAAOgkD,GAEfnnF,EAAOD,GASX,QAAS8qH,KAGP,IAFA,GAAIrB,GAAO,KAEM,MAAV9kH,GAAe,CAGpB,IAFA+kH,IACAD,KACiB,KAAV9kH,GAAyB,KAATA,GAAc,CACnC,GAAIglH,GAAaC,EAAUM,WACzB,KAAMC,GAAe,0BAEvB,IAAI9nH,GAAOsC,CAGX,IADA+kH,IACa,KAAT/kH,EACF,KAAMwlH,GAAe,wBAIvB,IAFAT,IAEIC,GAAaC,EAAUM,WACzB,KAAMC,GAAe,2BAEvB,IAAIt6H,GAAQ8U,CACZ4kH,GAASE,EAAMpnH,EAAMxS,GAErB65H,IACa,KAAT/kH,GACF+kH,IAIJ,GAAa,KAAT/kH,EACF,KAAMwlH,GAAe,qBAEvBT,KAGF,MAAOD,GAQT,QAASU,GAAeY,GACtB,MAAO,IAAI/+F,aAAY++F,EAAU,UAAYV,EAAK1lH,EAAO,IAAM,WAAazQ,EAAQ,KAStF,QAASm2H,GAAK9uF,EAAMyvF,GAClB,MAAOzvF,GAAKnqC,QAAU45H,EAAYzvF,EAAOA,EAAK7jC,OAAO,EAAG,IAAM,MAShE,QAASuzH,GAASzpH,EAAQC,EAAQ9M,GAC5B/C,MAAMC,QAAQ2P,GAChBA,EAAOpN,QAAQ,SAAU82H,GACnBt5H,MAAMC,QAAQ4P,GAChBA,EAAOrN,QAAQ,SAAU+2H,GACvBx2H,EAAGu2H,EAAOC,KAGZx2H,EAAGu2H,EAAOzpH,KAIV7P,MAAMC,QAAQ4P,GAChBA,EAAOrN,QAAQ,SAAU+2H,GACvBx2H,EAAG6M,EAAQ2pH,KAGbx2H,EAAG6M,EAAQC,GAcjB,QAAS2pH,GAAQl8H,EAAQixE,EAAMtwE,GAM7B,IAAK,GALDqS,GAAQi+D,EAAKpsE,MAAM,KACnBlD,EAAOqR,EAAMk5D,MAGbxqE,EAAM1B,EACDqC,EAAI,EAAGA,EAAI2Q,EAAM9Q,OAAQG,IAAK,CACrC,GAAI8Q,GAAOH,EAAM3Q,EACX8Q,KAAQzR,KACZA,EAAIyR,OAENzR,EAAMA,EAAIyR,GAMZ,MAFAzR,GAAIC,GAAQhB,EAELX,EAST,QAASm8H,GAAY5B,EAAM6B,GACzB,GAAInhG,KAEJ,KAAK,GAAIt5B,KAAQ44H,GACf,GAAIA,EAAK34H,eAAeD,GAAO,CAC7B,GAAI06H,GAAUD,EAAQz6H,EAClBe,OAAMC,QAAQ05H,GAChBA,EAAQn3H,QAAQ,SAAUo3H,GACxBJ,EAAQjhG,EAAWqhG,EAAU/B,EAAK54H,MAER,gBAAZ06H,GAChBH,EAAQjhG,EAAWohG,EAAS9B,EAAK54H,IAEjCu6H,EAAQjhG,EAAWt5B,EAAM44H,EAAK54H,IAKpC,MAAOs5B,GAST,QAAS17B,GAAWoU,GAElB,GAAIiiF,GAAUokC,EAASrmH,GACnB4oH,GACF9qC,SACAE,SACAlyF,WAmBF,IAfIm2F,EAAQnE,OACVmE,EAAQnE,MAAMvsF,QAAQ,SAAUs3H,GAC9B,GAAIC,IACFxgI,GAAIugI,EAAQvgI,GACZy6B,MAAO31B,OAAOy7H,EAAQ9lG,OAAS8lG,EAAQvgI,IAEzCmiD,GAAMq+E,EAAWN,EAAYK,EAAQjC,KAAMmC,IACvCD,EAAU9iC,QACZ8iC,EAAUriC,MAAQ,SAEpBmiC,EAAU9qC,MAAMruF,KAAKq5H,KAKrB7mC,EAAQjE,MAAO,CAMjB,GAAIgrC,GAAc,SAAqBC,GACrC,GAAIC,IACF9rH,KAAM6rH,EAAQ7rH,KACdD,GAAI8rH,EAAQ9rH,GAKd,OAHAstC,GAAMy+E,EAAWV,EAAYS,EAAQrC,KAAMuC,IAC3CD,EAAU/2B,OAA0B,OAAjB82B,EAAQp5H,KAAgB,KAAOrB,OAE3C06H,EAGTjnC,GAAQjE,MAAMzsF,QAAQ,SAAU03H,GAC9B,GAAI7rH,GAAMD,CAERC,GADE6rH,EAAQ7rH,eAAgB/N,QACnB45H,EAAQ7rH,KAAK0gF,OAGlBx1F,GAAI2gI,EAAQ7rH,MAQdD,EADE8rH,EAAQ9rH,aAAc9N,QACnB45H,EAAQ9rH,GAAG2gF,OAGdx1F,GAAI2gI,EAAQ9rH,IAIZ8rH,EAAQ7rH,eAAgB/N,SAAU45H,EAAQ7rH,KAAK4gF,OACjDirC,EAAQ7rH,KAAK4gF,MAAMzsF,QAAQ,SAAU63H,GACnC,GAAIF,GAAYF,EAAYI,EAC5BR,GAAU5qC,MAAMvuF,KAAKy5H,KAIzBd,EAAShrH,EAAMD,EAAI,SAAUC,EAAMD,GACjC,GAAIisH,GAAUtqC,EAAW8pC,EAAWxrH,EAAK9U,GAAI6U,EAAG7U,GAAI2gI,EAAQp5H,KAAMo5H,EAAQrC,MACtEsC,EAAYF,EAAYI,EAC5BR,GAAU5qC,MAAMvuF,KAAKy5H,KAGnBD,EAAQ9rH,aAAc9N,SAAU45H,EAAQ9rH,GAAG6gF,OAC7CirC,EAAQ9rH,GAAG6gF,MAAMzsF,QAAQ,SAAU63H,GACjC,GAAIF,GAAYF,EAAYI,EAC5BR,GAAU5qC,MAAMvuF,KAAKy5H,OAW7B,MAJIjnC,GAAQ2kC,OACVgC,EAAU98H,QAAUm2F,EAAQ2kC,MAGvBgC,EAl2BT,GAAIG,IACFM,SAAY,YACZC,UAAa,aACbC,eAAkB,aAClBC,SAAY,YACZ90H,OAAU,eAAgB,oBAC1B+0H,UAAa,mBACb/zF,QAAW,QACXg0F,aAAgB,SAEdP,EAAoB95H,OAAOgJ,OAAO0wH,EACtCI,GAAkBz0H,MAAQ,aAG1B,IAAIqyH,IACFC,KAAM,EACNE,UAAW,EACXG,WAAY,EACZE,QAAS,GAIPH,GACFuC,KAAK,EACLC,KAAK,EACLC,KAAK,EACLC,KAAK,EACLC,KAAK,EACLC,KAAK,EACLC,KAAK,EAELC,MAAM,EACNC,MAAM,GAGJ3rF,EAAM,GACNntC,EAAQ,EACR3I,EAAI,GACJoZ,EAAQ,GACRglH,EAAYC,EAAUC,KAmCtBP,EAAoB,iBA4xBxB5+H,GAAQw+H,SAAWA,EACnBx+H,EAAQ+D,WAAaA,GAIjB,SAAS9D,EAAQD,GAIrB,QAASkE,GAAWq+H,EAAW1pD,GAC7B,GAAIsd,MACAF,KACAhyF,GACFkyF,OACEqsC,cAAc,GAEhBvsC,OACE+H,OAAO,EACPzwF,YAAY,GAIG5G,UAAfkyE,IACuBlyE,SAArBkyE,EAAWmlB,QACb/5F,EAAQgyF,MAAM+H,MAAQnlB,EAAWmlB,OAELr3F,SAA1BkyE,EAAWtrE,aACbtJ,EAAQgyF,MAAM1oF,WAAasrE,EAAWtrE,YAER5G,SAA5BkyE,EAAW2pD,eACbv+H,EAAQkyF,MAAMqsC,aAAe3pD,EAAW2pD,cAM5C,KAAK,GAFDC,GAASF,EAAUpsC,MACnBusC,EAASH,EAAUtsC,MACdpvF,EAAI,EAAGA,EAAI47H,EAAO/7H,OAAQG,IAAK,CACtC,GAAI61F,MACAimC,EAAQF,EAAO57H,EACnB61F,GAAS,GAAIimC,EAAMliI,GACnBi8F,EAAW,KAAIimC,EAAMxzG,OACrButE,EAAS,GAAIimC,EAAMr3H,OACnBoxF,EAAiB,WAAIimC,EAAMj1D,WAC3BgvB,EAAY,MAAIimC,EAAMznG,MACtBwhE,EAAY,MAAyB/1F,SAArBg8H,EAAMj1D,WAA2Bi1D,EAAMj1D,WAAWhR,MAAQ/1D,OACpD,aAAlBg8H,EAAY,OACdjmC,EAAa,OAAI,MAIfimC,EAAM91H,OAAS5I,EAAQu+H,gBAAiB,IAC1C9lC,EAAY,MAAIimC,EAAM91H,OAExBspF,EAAMvuF,KAAK80F,GAGb,IAAK,GAAI71F,GAAI,EAAGA,EAAI67H,EAAOh8H,OAAQG,IAAK,CACtC,GAAI+xB,MACAgqG,EAAQF,EAAO77H,EACnB+xB,GAAS,GAAIgqG,EAAMniI,GACnBm4B,EAAiB,WAAIgqG,EAAMl1D,WAC3B90C,EAAY,MAAIgqG,EAAMlmE,MACtB9jC,EAAQ,EAAIgqG,EAAMhoG,EAClBhC,EAAQ,EAAIgqG,EAAM/iH,EAClB+Y,EAAY,MAAIgqG,EAAM1nG,MACtBtC,EAAY,MAAyBjyB,SAArBi8H,EAAMl1D,WAA2Bk1D,EAAMl1D,WAAWhR,MAAQ/1D,OACtE1C,EAAQgyF,MAAM1oF,cAAe,EAC/BqrB,EAAY,MAAIgqG,EAAM/1H,MAEtB+rB,EAAY,MAAoBjyB,SAAhBi8H,EAAM/1H,OAAwBwB,WAAYu0H,EAAM/1H,MAAOyB,OAAQs0H,EAAM/1H,MAAO0B,WAAaF,WAAYu0H,EAAM/1H,MAAOyB,OAAQs0H,EAAM/1H,OAAS2B,OAASH,WAAYu0H,EAAM/1H,MAAOyB,OAAQs0H,EAAM/1H,QAAYlG,OAEvNiyB,EAAW,KAAIgqG,EAAM3nG,KACrBrC,EAAY,MAAI30B,EAAQgyF,MAAM+H,OAAqBr3F,SAAZi8H,EAAMhoG,GAA+Bj0B,SAAZi8H,EAAM/iH,EACtEo2E,EAAMruF,KAAKgxB,GAGb,OAASq9D,MAAOA,EAAOE,MAAOA,GAGhCn2F,EAAQkE,WAAaA,GAIjB,SAASjE,EAAQD,GAcrB,QAASgzE,GAAgBC,EAAUC,GAAe,KAAMD,YAAoBC,IAAgB,KAAM,IAAI5rE,WAAU,qCANhHE,OAAO2rE,eAAenzE,EAAS,cAC3BmF,OAAO,GAGX,IAAIiuE,GAAe,WAAe,QAASC,GAAiB/nE,EAAQrE,GAAS,IAAK,GAAIJ,GAAI,EAAGA,EAAII,EAAMP,OAAQG,IAAK,CAAE,GAAIysE,GAAarsE,EAAMJ,EAAIysE,GAAWC,WAAaD,EAAWC,aAAc,EAAOD,EAAWE,cAAe,EAAU,SAAWF,KAAYA,EAAWG,UAAW,GAAMjsE,OAAO2rE,eAAe7nE,EAAQgoE,EAAWvpE,IAAKupE,IAAiB,MAAO,UAAUJ,EAAaQ,EAAYC,GAAiJ,MAA9HD,IAAYL,EAAiBH,EAAY7/D,UAAWqgE,GAAiBC,GAAaN,EAAiBH,EAAaS,GAAqBT,MAI7hBzvE,EAAS,WACT,QAASA,GAAOkG,GACZqpE,EAAgB5yE,KAAMqD,GAEtBrD,KAAKg3F,UACLh3F,KAAKyiI,eACLziI,KAAKuJ,SAAWA,EAgGpB,MAxFAypE,GAAa3vE,IACTsG,IAAK,mBACL5E,MAAO,SAA0B29H,EAAKC,GAEP,IAAvBA,EAAavnG,QACbpB,SAASgiB,KAAK9hB,YAAYyoG,GAC1BA,EAAavnG,MAAQunG,EAAa9rF,YAClC8rF,EAAatnG,OAASsnG,EAAa5rF,aACnC/c,SAASgiB,KAAKt3C,YAAYi+H,IAG9B3iI,KAAKg3F,OAAO0rC,GAAOC,KASvBh5H,IAAK,oBACL5E,MAAO,SAA2B29H,EAAKE,EAAWC,GAC9C,GAAI/jF,GAAQ9+C,IAGAuG,UAARm8H,GAAmCn8H,SAAdq8H,GAAsDr8H,SAA3Bs8H,IAGpDA,EAAuBC,QAAU,WAC7BtkH,QAAQ45D,MAAM,8BAA+BwqD,GAE7C9jF,EAAMikF,iBAAiBL,EAAK,GAAIl5B,SAIpCq5B,EAAuBtgF,IAAMqgF,MAOjCj5H,IAAK,mBACL5E,MAAO,SAA0Bi+H,GACzBhjI,KAAKuJ,UACLvJ,KAAKuJ,SAASy5H,MAUtBr5H,IAAK,OACL5E,MAAO,SAAc29H,EAAKE,EAAWviI,GACjC,GAAIk1E,GAASv1E,KAGTijI,EAAcjjI,KAAKg3F,OAAO0rC,EAC9B,IAAIO,EAAa,MAAOA,EAGxB,IAAIC,GAAM,GAAI15B,MAoBd,OAjBA05B,GAAIC,OAAS,WAET5tD,EAAOwtD,iBAAiBL,EAAKQ,GAC7B3tD,EAAO6tD,iBAAiBF,IAI5BA,EAAIJ,QAAU,WACVtkH,QAAQ45D,MAAM,wBAAyBsqD,GAEvCntD,EAAO8tD,kBAAkBX,EAAKE,EAAWM,IAI7CA,EAAI3gF,IAAMmgF,EAGHQ,MAIR7/H,IAGXzD,GAAQ,WAAayD,EACrBxD,EAAOD,QAAUA,EAAQ,YAIrB,SAASC,EAAQD,GAKrBA,EAAY,IACV0jI,KAAM,OACNC,IAAK,kBACLC,KAAM,OACN3O,QAAS,WACTC,QAAS,WACT35B,SAAU,YACV45B,SAAU,YACV0O,eAAgB,+CAChBC,gBAAiB,qEACjBC,oBAAqB,wEACrBC,gBAAiB,kCACjBC,mBAAoB,8BACpBC,iBAAkB,8BAEpBlkI,EAAe,MAAIA,EAAY,GAC/BA,EAAe,MAAIA,EAAY,GAG/BA,EAAY,IACV0jI,KAAM,YACNC,IAAK,iBACLC,KAAM,SACN3O,QAAS,oBACTC,QAAS,mBACT35B,SAAU,mBACV45B,SAAU,kBACV0O,eAAgB,oEAChBC,gBAAiB,8FACjBC,oBAAqB,0FACrBC,gBAAiB,0DACjBC,mBAAoB,wCACpBC,iBAAkB,yCAEpBlkI,EAAe,MAAIA,EAAY,GAG/BA,EAAY,IACV0jI,KAAM,SACNC,IAAK,qBACLC,KAAM,QACN3O,QAAS,cACTC,QAAS,gBACT35B,SAAU,cACV45B,SAAU,gBACV0O,eAAgB,0DAChBC,gBAAiB,8EACjBC,oBAAqB,2EACrBC,gBAAiB,8CACjBC,mBAAoB,iCACpBC,iBAAkB,gCAEpBlkI,EAAe,MAAIA,EAAY,GAG/BA,EAAY,IACV0jI,KAAM,WACNC,IAAK,uBACLC,KAAM,QACN3O,QAAS,iBACTC,QAAS,iBACT35B,SAAU,gBACV45B,SAAU,gBACV0O,eAAgB,uDAChBC,gBAAiB,6EACjBC,oBAAqB,kFACrBC,gBAAiB,wCACjBC,mBAAoB,0CACpBC,iBAAkB,0CAEpBlkI,EAAe,MAAIA,EAAY,GAC/BA,EAAe,MAAIA,EAAY","file":"vis.map"} \ No newline at end of file
+{"version":3,"sources":["vis.js"],"names":["root","factory","exports","module","define","amd","this","modules","__webpack_require__","moduleId","installedModules","id","loaded","call","m","c","p","util","extend","_typeof","Symbol","iterator","obj","constructor","moment","uuid","isNumber","object","Number","recursiveDOMDelete","DOMobject","hasChildNodes","firstChild","removeChild","giveRange","min","max","total","value","scale","Math","isString","String","isDate","Date","match","ASPDateRegex","exec","isNaN","parse","randomUUID","v4","assignAllKeys","prop","hasOwnProperty","fillIfDefined","a","b","allowDeletion","arguments","length","undefined","protoExtend","i","other","selectiveExtend","props","Array","isArray","Error","selectiveDeepExtend","TypeError","Object","deepExtend","selectiveNotDeepExtend","indexOf","push","equalArray","len","convert","type","Boolean","valueOf","isMoment","toDate","getType","toISOString","copyAndExtendArray","arr","newValue","newArr","copyArray","getAbsoluteLeft","elem","getBoundingClientRect","left","getAbsoluteRight","right","getAbsoluteTop","top","addClassName","className","classes","split","join","removeClassName","index","splice","forEach","callback","toArray","array","updateProperty","key","throttle","fn","wait","timeout","needExecution","throttled","setTimeout","addEventListener","element","action","listener","useCapture","navigator","userAgent","attachEvent","removeEventListener","detachEvent","preventDefault","event","window","returnValue","getTarget","target","srcElement","nodeType","parentNode","hasParent","parent","e","option","asBoolean","defaultValue","asNumber","asString","asSize","asElement","hexToRGB","hex","shorthandRegex","replace","r","g","result","parseInt","overrideOpacity","color","opacity","rgb","substr","RGBToHex","red","green","blue","toString","slice","parseColor","isValidRGB","map","isValidHex","hsv","hexToHSV","lighterColorHSV","h","s","v","darkerColorHSV","darkerColorHex","HSVToHex","lighterColorHex","background","border","highlight","hover","RGBToHSV","minRGB","maxRGB","d","hue","saturation","cssUtil","cssText","styles","style","trim","parts","keys","addCssText","currentStyles","newStyles","removeCssText","removeStyles","HSVToRGB","floor","f","q","t","isOk","test","isValidRGBA","rgba","selectiveBridgeObject","fields","referenceObject","objectTo","create","bridgeObject","insertSort","compare","k","j","mergeOptions","mergeTarget","options","globalOptions","enabled","binarySearchCustom","orderedItems","comparator","field","field2","maxIterations","iteration","low","high","middle","item","searchResult","binarySearchValue","sidePreference","prevValue","nextValue","easingFunctions","linear","easeInQuad","easeOutQuad","easeInOutQuad","easeInCubic","easeOutCubic","easeInOutCubic","easeInQuart","easeOutQuart","easeInOutQuart","easeInQuint","easeOutQuint","easeInOutQuint","global","utils_hooks__hooks","hookCallback","apply","setHookCallback","input","prototype","res","hasOwnProp","create_utc__createUTC","format","locale","strict","createLocalOrUTC","utc","defaultParsingFlags","empty","unusedTokens","unusedInput","overflow","charsLeftOver","nullInput","invalidMonth","invalidFormat","userInvalidated","iso","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/www/lib/vis/dist/vis.min.css b/www/lib/vis/dist/vis.min.css
index 4c4f34be..40d182cf 100644
--- a/www/lib/vis/dist/vis.min.css
+++ b/www/lib/vis/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.vis-config-option-container{display:block;width:495px;background-color:#fff;border:2px solid #f7f8fa;border-radius:4px;margin-top:20px;left:10px;padding-left:5px}div.vis-configuration.vis-config-button{display:block;width:495px;height:25px;vertical-align:middle;line-height:25px;background-color:#f7f8fa;border:2px solid #ceced0;border-radius:4px;margin-top:20px;left:10px;padding-left:5px;cursor:pointer;margin-bottom:30px}div.vis-configuration.vis-config-button.hover{background-color:#4588e6;border:2px solid #214373;color:#fff}div.vis-configuration.vis-config-item{display:block;float:left;width:495px;height:25px;vertical-align:middle;line-height:25px}div.vis-configuration.vis-config-item.vis-config-s2{left:10px;background-color:#f7f8fa;padding-left:5px;border-radius:3px}div.vis-configuration.vis-config-item.vis-config-s3{left:20px;background-color:#e4e9f0;padding-left:5px;border-radius:3px}div.vis-configuration.vis-config-item.vis-config-s4{left:30px;background-color:#cfd8e6;padding-left:5px;border-radius:3px}div.vis-configuration.vis-config-header{font-size:18px;font-weight:700}div.vis-configuration.vis-config-label{width:120px;height:25px;line-height:25px}div.vis-configuration.vis-config-label.vis-config-s3{width:110px}div.vis-configuration.vis-config-label.vis-config-s4{width:100px}div.vis-configuration.vis-config-colorBlock{top:1px;width:30px;height:19px;border:1px solid #444;border-radius:2px;padding:0;margin:0;cursor:pointer}input.vis-configuration.vis-config-checkbox{left:-5px}input.vis-configuration.vis-config-rangeinput{position:relative;top:-5px;width:60px;height:13px;padding:1px;margin:0;pointer-events:none}.vis-panel,.vis-timeline{padding:0;box-sizing:border-box}input.vis-configuration.vis-config-range{-webkit-appearance:none;border:0 solid #fff;background-color:rgba(0,0,0,0);width:300px;height:20px}input.vis-configuration.vis-config-range::-webkit-slider-runnable-track{width:300px;height:5px;background:#dedede;background:-moz-linear-gradient(top,#dedede 0,#c8c8c8 99%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0,#dedede),color-stop(99%,#c8c8c8));background:-webkit-linear-gradient(top,#dedede 0,#c8c8c8 99%);background:-o-linear-gradient(top,#dedede 0,#c8c8c8 99%);background:-ms-linear-gradient(top,#dedede 0,#c8c8c8 99%);background:linear-gradient(to bottom,#dedede 0,#c8c8c8 99%);filter:progid:DXImageTransform.Microsoft.gradient( startColorstr='#dedede', endColorstr='#c8c8c8', GradientType=0 );border:1px solid #999;box-shadow:#aaa 0 0 3px 0;border-radius:3px}input.vis-configuration.vis-config-range::-webkit-slider-thumb{-webkit-appearance:none;border:1px solid #14334b;height:17px;width:17px;border-radius:50%;background:#3876c2;background:-moz-linear-gradient(top,#3876c2 0,#385380 100%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0,#3876c2),color-stop(100%,#385380));background:-webkit-linear-gradient(top,#3876c2 0,#385380 100%);background:-o-linear-gradient(top,#3876c2 0,#385380 100%);background:-ms-linear-gradient(top,#3876c2 0,#385380 100%);background:linear-gradient(to bottom,#3876c2 0,#385380 100%);filter:progid:DXImageTransform.Microsoft.gradient( startColorstr='#3876c2', endColorstr='#385380', GradientType=0 );box-shadow:#111927 0 0 1px 0;margin-top:-7px}input.vis-configuration.vis-config-range:focus{outline:0}input.vis-configuration.vis-config-range:focus::-webkit-slider-runnable-track{background:#9d9d9d;background:-moz-linear-gradient(top,#9d9d9d 0,#c8c8c8 99%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0,#9d9d9d),color-stop(99%,#c8c8c8));background:-webkit-linear-gradient(top,#9d9d9d 0,#c8c8c8 99%);background:-o-linear-gradient(top,#9d9d9d 0,#c8c8c8 99%);background:-ms-linear-gradient(top,#9d9d9d 0,#c8c8c8 99%);background:linear-gradient(to bottom,#9d9d9d 0,#c8c8c8 99%);filter:progid:DXImageTransform.Microsoft.gradient( startColorstr='#9d9d9d', endColorstr='#c8c8c8', GradientType=0 )}input.vis-configuration.vis-config-range::-moz-range-track{width:300px;height:10px;background:#dedede;background:-moz-linear-gradient(top,#dedede 0,#c8c8c8 99%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0,#dedede),color-stop(99%,#c8c8c8));background:-webkit-linear-gradient(top,#dedede 0,#c8c8c8 99%);background:-o-linear-gradient(top,#dedede 0,#c8c8c8 99%);background:-ms-linear-gradient(top,#dedede 0,#c8c8c8 99%);background:linear-gradient(to bottom,#dedede 0,#c8c8c8 99%);filter:progid:DXImageTransform.Microsoft.gradient( startColorstr='#dedede', endColorstr='#c8c8c8', GradientType=0 );border:1px solid #999;box-shadow:#aaa 0 0 3px 0;border-radius:3px}input.vis-configuration.vis-config-range::-moz-range-thumb{border:none;height:16px;width:16px;border-radius:50%;background:#385380}input.vis-configuration.vis-config-range:-moz-focusring{outline:#fff solid 1px;outline-offset:-1px}input.vis-configuration.vis-config-range::-ms-track{width:300px;height:5px;background:0 0;border-color:transparent;border-width:6px 0;color:transparent}input.vis-configuration.vis-config-range::-ms-fill-lower{background:#777;border-radius:10px}input.vis-configuration.vis-config-range::-ms-fill-upper{background:#ddd;border-radius:10px}input.vis-configuration.vis-config-range::-ms-thumb{border:none;height:16px;width:16px;border-radius:50%;background:#385380}input.vis-configuration.vis-config-range:focus::-ms-fill-lower{background:#888}input.vis-configuration.vis-config-range:focus::-ms-fill-upper{background:#ccc}.vis-configuration-popup{position:absolute;background:rgba(57,76,89,.85);border:2px solid #f2faff;line-height:30px;height:30px;width:150px;text-align:center;color:#fff;font-size:14px;border-radius:4px;-webkit-transition:opacity .3s ease-in-out;-moz-transition:opacity .3s ease-in-out;transition:opacity .3s ease-in-out}.vis-configuration-popup:after,.vis-configuration-popup:before{left:100%;top:50%;border:solid transparent;content:" ";height:0;width:0;position:absolute;pointer-events:none}.vis-configuration-popup:after{border-color:rgba(136,183,213,0);border-left-color:rgba(57,76,89,.85);border-width:8px;margin-top:-8px}.vis-configuration-popup:before{border-color:rgba(194,225,245,0);border-left-color:#f2faff;border-width:12px;margin-top:-12px}.vis-timeline{position:relative;border:1px solid #bfbfbf;margin:0}.vis-panel{position:absolute;margin:0}.vis-panel.vis-bottom,.vis-panel.vis-center,.vis-panel.vis-left,.vis-panel.vis-right,.vis-panel.vis-top{border:1px #bfbfbf}.vis-panel.vis-center,.vis-panel.vis-left,.vis-panel.vis-right{border-top-style:solid;border-bottom-style:solid;overflow:hidden}.vis-panel.vis-bottom,.vis-panel.vis-center,.vis-panel.vis-top{border-left-style:solid;border-right-style:solid}.vis-panel>.vis-content{position:relative}.vis-panel .vis-shadow{position:absolute;width:100%;height:1px;box-shadow:0 0 10px rgba(0,0,0,.8)}.vis-itemset,.vis-labelset,.vis-labelset .vis-label{position:relative;box-sizing:border-box}.vis-panel .vis-shadow.vis-top{top:-1px;left:0}.vis-panel .vis-shadow.vis-bottom{bottom:-1px;left:0}.vis-labelset .vis-label{left:0;top:0;width:100%;color:#4d4d4d;border-bottom:1px solid #bfbfbf}.vis-labelset .vis-label.draggable{cursor:pointer}.vis-labelset .vis-label:last-child{border-bottom:none}.vis-labelset .vis-label .vis-inner{display:inline-block;padding:5px}.vis-labelset .vis-label .vis-inner.vis-hidden{padding:0}.vis-itemset{padding:0;margin:0}.vis-itemset .vis-background,.vis-itemset .vis-foreground{position:absolute;width:100%;height:100%;overflow:visible}.vis-axis{position:absolute;width:100%;height:0;left:0;z-index:1}.vis-foreground .vis-group{position:relative;box-sizing:border-box;border-bottom:1px solid #bfbfbf}.vis-foreground .vis-group:last-child{border-bottom:none}.vis-overlay{position:absolute;top:0;left:0;width:100%;height:100%;z-index:10}.vis-item{position:absolute;color:#1A1A1A;border-color:#97B0F8;border-width:1px;background-color:#D5DDF6;display:inline-block}.vis-item.vis-point.vis-selected,.vis-item.vis-selected{background-color:#FFF785}.vis-item.vis-selected{border-color:#FFC200;z-index:2}.vis-editable.vis-selected{cursor:move}.vis-item.vis-box{text-align:center;border-style:solid;border-radius:2px}.vis-item.vis-point{background:0 0}.vis-item.vis-dot{position:absolute;padding:0;border-width:4px;border-style:solid;border-radius:4px}.vis-item.vis-range{border-style:solid;border-radius:2px;box-sizing:border-box}.vis-item.vis-background{border:none;background-color:rgba(213,221,246,.4);box-sizing:border-box;padding:0;margin:0}.vis-item .vis-item-overflow{position:relative;width:100%;height:100%;padding:0;margin:0;overflow:hidden}.vis-item.vis-range .vis-item-content{position:relative;display:inline-block}.vis-item.vis-background .vis-item-content{position:absolute;display:inline-block}.vis-item.vis-line{padding:0;position:absolute;width:0;border-left-width:1px;border-left-style:solid}.vis-item .vis-item-content{white-space:nowrap;box-sizing:border-box;padding:5px}.vis-item .vis-delete{background:url(img/timeline/delete.png) center no-repeat;position:absolute;width:24px;height:24px;top:-4px;right:-24px;cursor:pointer}.vis-item.vis-range .vis-drag-left{position:absolute;width:24px;max-width:20%;min-width:2px;height:100%;top:0;left:-4px;cursor:w-resize}.vis-item.vis-range .vis-drag-right{position:absolute;width:24px;max-width:20%;min-width:2px;height:100%;top:0;right:-4px;cursor:e-resize}.vis-time-axis{position:relative;overflow:hidden}.vis-time-axis.vis-foreground{top:0;left:0;width:100%}.vis-time-axis.vis-background{position:absolute;top:0;left:0;width:100%;height:100%}.vis-time-axis .vis-text{position:absolute;color:#4d4d4d;padding:3px;overflow:hidden;box-sizing:border-box;white-space:nowrap}.vis-time-axis .vis-text.vis-measure{position:absolute;padding-left:0;padding-right:0;margin-left:0;margin-right:0;visibility:hidden}.vis-time-axis .vis-grid.vis-vertical{position:absolute;border-left:1px solid}.vis-time-axis .vis-grid.vis-minor{border-color:#e5e5e5}.vis-time-axis .vis-grid.vis-major{border-color:#bfbfbf}.vis-current-time{background-color:#FF7F6E;width:2px;z-index:1}.vis-custom-time{background-color:#6E94FF;width:2px;cursor:move;z-index:1}div.vis-network div.vis-close,div.vis-network div.vis-edit-mode div.vis-button,div.vis-network div.vis-manipulation div.vis-button{cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;-webkit-touch-callout:none;-khtml-user-select:none}.vis-panel.vis-background.vis-horizontal .vis-grid.vis-horizontal{position:absolute;width:100%;height:0;border-bottom:1px solid}.vis-panel.vis-background.vis-horizontal .vis-grid.vis-minor{border-color:#e5e5e5}.vis-panel.vis-background.vis-horizontal .vis-grid.vis-major{border-color:#bfbfbf}.vis-data-axis .vis-y-axis.vis-major{width:100%;position:absolute;color:#4d4d4d;white-space:nowrap}.vis-data-axis .vis-y-axis.vis-major.vis-measure{padding:0;margin:0;border:0;visibility:hidden;width:auto}.vis-data-axis .vis-y-axis.vis-minor{position:absolute;width:100%;color:#bebebe;white-space:nowrap}.vis-data-axis .vis-y-axis.vis-minor.vis-measure{padding:0;margin:0;border:0;visibility:hidden;width:auto}.vis-data-axis .vis-y-axis.vis-title{position:absolute;color:#4d4d4d;white-space:nowrap;bottom:20px;text-align:center}.vis-data-axis .vis-y-axis.vis-title.vis-measure{padding:0;margin:0;visibility:hidden;width:auto}.vis-data-axis .vis-y-axis.vis-title.vis-left{bottom:0;-webkit-transform-origin:left top;-moz-transform-origin:left top;-ms-transform-origin:left top;-o-transform-origin:left top;transform-origin:left bottom;-webkit-transform:rotate(-90deg);-moz-transform:rotate(-90deg);-ms-transform:rotate(-90deg);-o-transform:rotate(-90deg);transform:rotate(-90deg)}.vis-data-axis .vis-y-axis.vis-title.vis-right{bottom:0;-webkit-transform-origin:right bottom;-moz-transform-origin:right bottom;-ms-transform-origin:right bottom;-o-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:rotate(90deg);-moz-transform:rotate(90deg);-ms-transform:rotate(90deg);-o-transform:rotate(90deg);transform:rotate(90deg)}.vis-legend{background-color:rgba(247,252,255,.65);padding:5px;border:1px solid #b3b3b3;box-shadow:2px 2px 10px rgba(154,154,154,.55)}.vis-legend-text{white-space:nowrap;display:inline-block}.vis-graph-group0{fill:#4f81bd;fill-opacity:0;stroke-width:2px;stroke:#4f81bd}.vis-graph-group1{fill:#f79646;fill-opacity:0;stroke-width:2px;stroke:#f79646}.vis-graph-group2{fill:#8c51cf;fill-opacity:0;stroke-width:2px;stroke:#8c51cf}.vis-graph-group3{fill:#75c841;fill-opacity:0;stroke-width:2px;stroke:#75c841}.vis-graph-group4{fill:#ff0100;fill-opacity:0;stroke-width:2px;stroke:#ff0100}.vis-graph-group5{fill:#37d8e6;fill-opacity:0;stroke-width:2px;stroke:#37d8e6}.vis-graph-group6{fill:#042662;fill-opacity:0;stroke-width:2px;stroke:#042662}.vis-graph-group7{fill:#00ff26;fill-opacity:0;stroke-width:2px;stroke:#00ff26}.vis-graph-group8{fill:#f0f;fill-opacity:0;stroke-width:2px;stroke:#f0f}.vis-graph-group9{fill:#8f3938;fill-opacity:0;stroke-width:2px;stroke:#8f3938}.vis-timeline .vis-fill{fill-opacity:.1;stroke:none}.vis-timeline .vis-bar{fill-opacity:.5;stroke-width:1px}.vis-timeline .vis-point{stroke-width:2px;fill-opacity:1}.vis-timeline .vis-legend-background{stroke-width:1px;fill-opacity:.9;fill:#fff;stroke:#c2c2c2}.vis-timeline .vis-outline{stroke-width:1px;fill-opacity:1;fill:#fff;stroke:#e5e5e5}.vis-timeline .vis-icon-fill{fill-opacity:.3;stroke:none}div.vis-network div.vis-manipulation{border-width:0;border-bottom:1px;border-style:solid;border-color:#d6d9d8;background:#fff;background:-moz-linear-gradient(top,#fff 0,#fcfcfc 48%,#fafafa 50%,#fcfcfc 100%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0,#fff),color-stop(48%,#fcfcfc),color-stop(50%,#fafafa),color-stop(100%,#fcfcfc));background:-webkit-linear-gradient(top,#fff 0,#fcfcfc 48%,#fafafa 50%,#fcfcfc 100%);background:-o-linear-gradient(top,#fff 0,#fcfcfc 48%,#fafafa 50%,#fcfcfc 100%);background:-ms-linear-gradient(top,#fff 0,#fcfcfc 48%,#fafafa 50%,#fcfcfc 100%);background:linear-gradient(to bottom,#fff 0,#fcfcfc 48%,#fafafa 50%,#fcfcfc 100%);filter:progid:DXImageTransform.Microsoft.gradient( startColorstr='#ffffff', endColorstr='#fcfcfc', GradientType=0 );padding-top:4px;position:absolute;left:0;top:0;width:100%;height:28px}div.vis-network div.vis-edit-mode{position:absolute;left:0;top:5px;height:30px}div.vis-network div.vis-close{position:absolute;right:0;top:0;width:30px;height:30px;background-position:20px 3px;background-repeat:no-repeat;background-image:url(img/network/cross.png);user-select:none}div.vis-network div.vis-close:hover{opacity:.6}div.vis-network div.vis-edit-mode div.vis-button,div.vis-network div.vis-manipulation div.vis-button{float:left;font-family:verdana;font-size:12px;-moz-border-radius:15px;border-radius:15px;display:inline-block;background-position:0 0;background-repeat:no-repeat;height:24px;margin-left:10px;padding:0 8px;user-select:none}div.vis-network div.vis-manipulation div.vis-button:hover{box-shadow:1px 1px 8px rgba(0,0,0,.2)}div.vis-network div.vis-manipulation div.vis-button:active{box-shadow:1px 1px 8px rgba(0,0,0,.5)}div.vis-network div.vis-manipulation div.vis-button.vis-back{background-image:url(img/network/backIcon.png)}div.vis-network div.vis-manipulation div.vis-button.vis-none:hover{box-shadow:1px 1px 8px transparent;cursor:default}div.vis-network div.vis-manipulation div.vis-button.vis-none:active{box-shadow:1px 1px 8px transparent}div.vis-network div.vis-manipulation div.vis-button.vis-none{padding:0}div.vis-network div.vis-manipulation div.notification{margin:2px;font-weight:700}div.vis-network div.vis-manipulation div.vis-button.vis-add{background-image:url(img/network/addNodeIcon.png)}div.vis-network div.vis-edit-mode div.vis-button.vis-edit,div.vis-network div.vis-manipulation div.vis-button.vis-edit{background-image:url(img/network/editIcon.png)}div.vis-network div.vis-edit-mode div.vis-button.vis-edit.vis-edit-mode{background-color:#fcfcfc;border:1px solid #ccc}div.vis-network div.vis-manipulation div.vis-button.vis-connect{background-image:url(img/network/connectIcon.png)}div.vis-network div.vis-manipulation div.vis-button.vis-delete{background-image:url(img/network/deleteIcon.png)}div.vis-network div.vis-edit-mode div.vis-label,div.vis-network div.vis-manipulation div.vis-label{margin:0 0 0 23px;line-height:25px}div.vis-network div.vis-manipulation div.vis-separator-line{float:left;display:inline-block;width:1px;height:21px;background-color:#bdbdbd;margin:0 7px 0 15px}div.vis-network-tooltip{position:absolute;visibility:hidden;padding:5px;white-space:nowrap;font-family:verdana;font-size:14px;font-color:#000;background-color:#f5f4ed;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;border:1px solid #808074;box-shadow:3px 3px 10px rgba(0,0,0,.2);pointer-events:none}div.vis-network div.vis-navigation div.vis-button{width:34px;height:34px;-moz-border-radius:17px;border-radius:17px;position:absolute;display:inline-block;background-position:2px 2px;background-repeat:no-repeat;cursor:pointer;-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}div.vis-network div.vis-navigation div.vis-button:hover{box-shadow:0 0 3px 3px rgba(56,207,21,.3)}div.vis-network div.vis-navigation div.vis-button:active{box-shadow:0 0 1px 3px rgba(56,207,21,.95)}div.vis-network div.vis-navigation div.vis-button.vis-up{background-image:url(img/network/upArrow.png);bottom:50px;left:55px}div.vis-network div.vis-navigation div.vis-button.vis-down{background-image:url(img/network/downArrow.png);bottom:10px;left:55px}div.vis-network div.vis-navigation div.vis-button.vis-left{background-image:url(img/network/leftArrow.png);bottom:10px;left:15px}div.vis-network div.vis-navigation div.vis-button.vis-right{background-image:url(img/network/rightArrow.png);bottom:10px;left:95px}div.vis-network div.vis-navigation div.vis-button.vis-zoomIn{background-image:url(img/network/plus.png);bottom:10px;right:15px}div.vis-network div.vis-navigation div.vis-button.vis-zoomOut{background-image:url(img/network/minus.png);bottom:10px;right:55px}div.vis-network div.vis-navigation div.vis-button.vis-zoomExtends{background-image:url(img/network/zoomExtends.png);bottom:50px;right:15px}div.vis-color-picker{position:absolute;margin-top:-140px;margin-left:30px;width:293px;height:425px;padding:10px;border-radius:15px;background-color:#fff;display:none;box-shadow:rgba(0,0,0,.5) 0 0 10px 0}div.vis-color-picker div.vis-arrow{position:absolute;top:147px;left:5px}div.vis-color-picker div.vis-arrow:after,div.vis-color-picker div.vis-arrow:before{right:100%;top:50%;border:solid transparent;content:" ";height:0;width:0;position:absolute;pointer-events:none}div.vis-color-picker div.vis-arrow:after{border-color:rgba(255,255,255,0);border-right-color:#fff;border-width:30px;margin-top:-30px}div.vis-color-picker div.vis-color{position:absolute;width:289px;height:289px;cursor:pointer}div.vis-color-picker div.vis-brightness{position:absolute;top:313px}div.vis-color-picker div.vis-opacity{position:absolute;top:350px}div.vis-color-picker div.vis-selector{position:absolute;top:137px;left:137px;width:15px;height:15px;border-radius:15px;border:1px solid #fff;background:#4c4c4c;background:-moz-linear-gradient(top,#4c4c4c 0,#595959 12%,#666 25%,#474747 39%,#2c2c2c 50%,#000 51%,#111 60%,#2b2b2b 76%,#1c1c1c 91%,#131313 100%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0,#4c4c4c),color-stop(12%,#595959),color-stop(25%,#666),color-stop(39%,#474747),color-stop(50%,#2c2c2c),color-stop(51%,#000),color-stop(60%,#111),color-stop(76%,#2b2b2b),color-stop(91%,#1c1c1c),color-stop(100%,#131313));background:-webkit-linear-gradient(top,#4c4c4c 0,#595959 12%,#666 25%,#474747 39%,#2c2c2c 50%,#000 51%,#111 60%,#2b2b2b 76%,#1c1c1c 91%,#131313 100%);background:-o-linear-gradient(top,#4c4c4c 0,#595959 12%,#666 25%,#474747 39%,#2c2c2c 50%,#000 51%,#111 60%,#2b2b2b 76%,#1c1c1c 91%,#131313 100%);background:-ms-linear-gradient(top,#4c4c4c 0,#595959 12%,#666 25%,#474747 39%,#2c2c2c 50%,#000 51%,#111 60%,#2b2b2b 76%,#1c1c1c 91%,#131313 100%);background:linear-gradient(to bottom,#4c4c4c 0,#595959 12%,#666 25%,#474747 39%,#2c2c2c 50%,#000 51%,#111 60%,#2b2b2b 76%,#1c1c1c 91%,#131313 100%);filter:progid:DXImageTransform.Microsoft.gradient( startColorstr='#4c4c4c', endColorstr='#131313', GradientType=0 )}div.vis-color-picker div.vis-initial-color,div.vis-color-picker div.vis-new-color{width:140px;height:20px;top:380px;font-size:10px;color:rgba(0,0,0,.4);line-height:20px;position:absolute;vertical-align:middle}div.vis-color-picker div.vis-new-color{border:1px solid rgba(0,0,0,.1);border-radius:5px;left:159px;text-align:right;padding-right:2px}div.vis-color-picker div.vis-initial-color{border:1px solid rgba(0,0,0,.1);border-radius:5px;left:10px;text-align:left;padding-left:2px}div.vis-color-picker div.vis-label{position:absolute;width:300px;left:10px}div.vis-color-picker div.vis-label.vis-brightness{top:300px}div.vis-color-picker div.vis-label.vis-opacity{top:338px}div.vis-color-picker div.vis-button{position:absolute;width:68px;height:25px;border-radius:10px;vertical-align:middle;text-align:center;line-height:25px;top:410px;border:2px solid #d9d9d9;background-color:#f7f7f7;cursor:pointer}div.vis-color-picker div.vis-button.vis-cancel{left:5px}div.vis-color-picker div.vis-button.vis-load{left:82px}div.vis-color-picker div.vis-button.vis-apply{left:159px}div.vis-color-picker div.vis-button.vis-save{left:236px}div.vis-color-picker input.vis-range{width:290px;height:20px} \ No newline at end of file
+.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
diff --git a/www/lib/vis/dist/vis.min.js b/www/lib/vis/dist/vis.min.js
index fda4916e..92b8ed75 100644
--- a/www/lib/vis/dist/vis.min.js
+++ b/www/lib/vis/dist/vis.min.js
@@ -4,11 +4,11 @@
*
* A dynamic, browser-based visualization library.
*
- * @version 4.11.0
- * @date 2015-12-18
+ * @version 4.16.1
+ * @date 2016-04-18
*
* @license
- * Copyright (C) 2011-2015 Almende B.V, http://almende.com
+ * Copyright (C) 2011-2016 Almende B.V, http://almende.com
*
* Vis.js is dual licensed under both
*
@@ -22,23 +22,24 @@
*
* Vis.js may be distributed under either license.
*/
-"use strict";!function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?exports.vis=e():t.vis=e()}(this,function(){return function(t){function e(o){if(i[o])return i[o].exports;var n=i[o]={exports:{},id:o,loaded:!1};return t[o].call(n.exports,n,n.exports,e),n.loaded=!0,n.exports}var i={};return e.m=t,e.c=i,e.p="",e(0)}([function(t,e,i){e.util=i(1),e.DOMutil=i(7),e.DataSet=i(8),e.DataView=i(10),e.Queue=i(9),e.Graph3d=i(11),e.graph3d={Camera:i(15),Filter:i(16),Point2d:i(14),Point3d:i(13),Slider:i(17),StepNumber:i(18)},e.Timeline=i(19),e.Graph2d=i(49),e.timeline={Core:i(28),DataStep:i(52),DateUtil:i(27),Range:i(24),stack:i(32),TimeStep:i(30),components:{items:{Item:i(34),BackgroundItem:i(38),BoxItem:i(36),PointItem:i(37),RangeItem:i(33)},BackgroundGroup:i(35),Component:i(26),CurrentTime:i(44),CustomTime:i(42),DataAxis:i(51),GraphGroup:i(53),Group:i(31),ItemSet:i(29),Legend:i(57),LineGraph:i(50),TimeAxis:i(39)}},e.Network=i(59),e.network={Images:i(117),dotparser:i(115),gephiParser:i(116),allOptions:i(111)},e.network.convertDot=function(t){return e.network.dotparser.DOTToGraph(t)},e.network.convertGephi=function(t,i){return e.network.gephiParser.parseGephi(t,i)},e.moment=i(2),e.Hammer=i(20),e.keycharm=i(41)},function(t,e,i){var o=i(2),n=i(6);e.isNumber=function(t){return t instanceof Number||"number"==typeof t},e.recursiveDOMDelete=function(t){if(t)for(;t.hasChildNodes()===!0;)e.recursiveDOMDelete(t.firstChild),t.removeChild(t.firstChild)},e.giveRange=function(t,e,i,o){if(e==t)return.5;var n=1/(e-t);return Math.max(0,(o-t)*n)},e.isString=function(t){return t instanceof String||"string"==typeof t},e.isDate=function(t){if(t instanceof Date)return!0;if(e.isString(t)){var i=s.exec(t);if(i)return!0;if(!isNaN(Date.parse(t)))return!0}return!1},e.randomUUID=function(){return n.v4()},e.assignAllKeys=function(t,e){for(var i in t)t.hasOwnProperty(i)&&"object"!=typeof t[i]&&(t[i]=e)},e.fillIfDefined=function(t,i){var o=arguments.length<=2||void 0===arguments[2]?!1:arguments[2];for(var n in t)void 0!==i[n]&&("object"!=typeof i[n]?void 0!==i[n]&&null!==i[n]||void 0===t[n]||o!==!0?t[n]=i[n]:delete t[n]:"object"==typeof t[n]&&e.fillIfDefined(t[n],i[n],o))},e.protoExtend=function(t,e){for(var i=1;i<arguments.length;i++){var o=arguments[i];for(var n in o)t[n]=o[n]}return t},e.extend=function(t,e){for(var i=1;i<arguments.length;i++){var o=arguments[i];for(var n in o)o.hasOwnProperty(n)&&(t[n]=o[n])}return t},e.selectiveExtend=function(t,e,i){if(!Array.isArray(t))throw new Error("Array with property names expected as first argument");for(var o=2;o<arguments.length;o++)for(var n=arguments[o],s=0;s<t.length;s++){var r=t[s];n.hasOwnProperty(r)&&(e[r]=n[r])}return e},e.selectiveDeepExtend=function(t,i,o){var n=arguments.length<=3||void 0===arguments[3]?!1:arguments[3];if(Array.isArray(o))throw new TypeError("Arrays are not supported by deepExtend");for(var s=2;s<arguments.length;s++)for(var r=arguments[s],a=0;a<t.length;a++){var h=t[a];if(r.hasOwnProperty(h))if(o[h]&&o[h].constructor===Object)void 0===i[h]&&(i[h]={}),i[h].constructor===Object?e.deepExtend(i[h],o[h],!1,n):null===o[h]&&void 0!==i[h]&&n===!0?delete i[h]:i[h]=o[h];else{if(Array.isArray(o[h]))throw new TypeError("Arrays are not supported by deepExtend");null===o[h]&&void 0!==i[h]&&n===!0?delete i[h]:i[h]=o[h]}}return i},e.selectiveNotDeepExtend=function(t,i,o){var n=arguments.length<=3||void 0===arguments[3]?!1:arguments[3];if(Array.isArray(o))throw new TypeError("Arrays are not supported by deepExtend");for(var s in o)if(o.hasOwnProperty(s)&&-1==t.indexOf(s))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<o[s].length;r++)i[s].push(o[s][r])}else null===o[s]&&void 0!==i[s]&&n===!0?delete i[s]:i[s]=o[s];return i},e.deepExtend=function(t,i,o,n){for(var s in i)if(i.hasOwnProperty(s)||o===!0)if(i[s]&&i[s].constructor===Object)void 0===t[s]&&(t[s]={}),t[s].constructor===Object?e.deepExtend(t[s],i[s],o):null===i[s]&&void 0!==t[s]&&n===!0?delete t[s]:t[s]=i[s];else if(Array.isArray(i[s])){t[s]=[];for(var r=0;r<i[s].length;r++)t[s].push(i[s][r])}else null===i[s]&&void 0!==t[s]&&n===!0?delete t[s]:t[s]=i[s];return t},e.equalArray=function(t,e){if(t.length!=e.length)return!1;for(var i=0,o=t.length;o>i;i++)if(t[i]!=e[i])return!1;return!0},e.convert=function(t,i){var n;if(void 0!==t){if(null===t)return null;if(!i)return t;if("string"!=typeof i&&!(i instanceof String))throw new Error("Type must be a string");switch(i){case"boolean":case"Boolean":return Boolean(t);case"number":case"Number":return Number(t.valueOf());case"string":case"String":return String(t);case"Date":if(e.isNumber(t))return new Date(t);if(t instanceof Date)return new Date(t.valueOf());if(o.isMoment(t))return new Date(t.valueOf());if(e.isString(t))return n=s.exec(t),n?new Date(Number(n[1])):o(t).toDate();throw new Error("Cannot convert object of type "+e.getType(t)+" to type Date");case"Moment":if(e.isNumber(t))return o(t);if(t instanceof Date)return o(t.valueOf());if(o.isMoment(t))return o(t);if(e.isString(t))return n=s.exec(t),o(n?Number(n[1]):t);throw new Error("Cannot convert object of type "+e.getType(t)+" to type Date");case"ISODate":if(e.isNumber(t))return new Date(t);if(t instanceof Date)return t.toISOString();if(o.isMoment(t))return t.toDate().toISOString();if(e.isString(t))return n=s.exec(t),n?new Date(Number(n[1])).toISOString():new Date(t).toISOString();throw new Error("Cannot convert object of type "+e.getType(t)+" to type ISODate");case"ASPDate":if(e.isNumber(t))return"/Date("+t+")/";if(t instanceof Date)return"/Date("+t.valueOf()+")/";if(e.isString(t)){n=s.exec(t);var r;return r=n?new Date(Number(n[1])).valueOf():new Date(t).valueOf(),"/Date("+r+")/"}throw new Error("Cannot convert object of type "+e.getType(t)+" to type ASPDate");default:throw new Error('Unknown type "'+i+'"')}}};var s=/^\/?Date\((\-?\d+)/i;e.getType=function(t){var e=typeof t;return"object"==e?null===t?"null":t instanceof Boolean?"Boolean":t instanceof Number?"Number":t instanceof String?"String":Array.isArray(t)?"Array":t instanceof Date?"Date":"Object":"number"==e?"Number":"boolean"==e?"Boolean":"string"==e?"String":void 0===e?"undefined":e},e.copyAndExtendArray=function(t,e){for(var i=[],o=0;o<t.length;o++)i.push(t[o]);return i.push(e),i},e.copyArray=function(t){for(var e=[],i=0;i<t.length;i++)e.push(t[i]);return e},e.getAbsoluteLeft=function(t){return t.getBoundingClientRect().left},e.getAbsoluteTop=function(t){return t.getBoundingClientRect().top},e.addClassName=function(t,e){var i=t.className.split(" ");-1==i.indexOf(e)&&(i.push(e),t.className=i.join(" "))},e.removeClassName=function(t,e){var i=t.className.split(" "),o=i.indexOf(e);-1!=o&&(i.splice(o,1),t.className=i.join(" "))},e.forEach=function(t,e){var i,o;if(Array.isArray(t))for(i=0,o=t.length;o>i;i++)e(t[i],i,t);else for(i in t)t.hasOwnProperty(i)&&e(t[i],i,t)},e.toArray=function(t){var e=[];for(var i in t)t.hasOwnProperty(i)&&e.push(t[i]);return e},e.updateProperty=function(t,e,i){return t[e]!==i?(t[e]=i,!0):!1},e.throttle=function(t,e){var i=null,o=!1;return function n(){i?o=!0:(o=!1,t(),i=setTimeout(function(){i=null,o&&n()},e))}},e.addEventListener=function(t,e,i,o){t.addEventListener?(void 0===o&&(o=!1),"mousewheel"===e&&navigator.userAgent.indexOf("Firefox")>=0&&(e="DOMMouseScroll"),t.addEventListener(e,i,o)):t.attachEvent("on"+e,i)},e.removeEventListener=function(t,e,i,o){t.removeEventListener?(void 0===o&&(o=!1),"mousewheel"===e&&navigator.userAgent.indexOf("Firefox")>=0&&(e="DOMMouseScroll"),t.removeEventListener(e,i,o)):t.detachEvent("on"+e,i)},e.preventDefault=function(t){t||(t=window.event),t.preventDefault?t.preventDefault():t.returnValue=!1},e.getTarget=function(t){t||(t=window.event);var e;return t.target?e=t.target:t.srcElement&&(e=t.srcElement),void 0!=e.nodeType&&3==e.nodeType&&(e=e.parentNode),e},e.hasParent=function(t,e){for(var i=t;i;){if(i===e)return!0;i=i.parentNode}return!1},e.option={},e.option.asBoolean=function(t,e){return"function"==typeof t&&(t=t()),null!=t?0!=t:e||null},e.option.asNumber=function(t,e){return"function"==typeof t&&(t=t()),null!=t?Number(t)||e||null:e||null},e.option.asString=function(t,e){return"function"==typeof t&&(t=t()),null!=t?String(t):e||null},e.option.asSize=function(t,i){return"function"==typeof t&&(t=t()),e.isString(t)?t:e.isNumber(t)?t+"px":i||null},e.option.asElement=function(t,e){return"function"==typeof t&&(t=t()),t||e||null},e.hexToRGB=function(t){var e=/^#?([a-f\d])([a-f\d])([a-f\d])$/i;t=t.replace(e,function(t,e,i,o){return e+e+i+i+o+o});var i=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(t);return i?{r:parseInt(i[1],16),g:parseInt(i[2],16),b:parseInt(i[3],16)}:null},e.overrideOpacity=function(t,i){if(-1!=t.indexOf("rgba"))return t;if(-1!=t.indexOf("rgb")){var o=t.substr(t.indexOf("(")+1).replace(")","").split(",");return"rgba("+o[0]+","+o[1]+","+o[2]+","+i+")"}var o=e.hexToRGB(t);return null==o?t:"rgba("+o.r+","+o.g+","+o.b+","+i+")"},e.RGBToHex=function(t,e,i){return"#"+((1<<24)+(t<<16)+(e<<8)+i).toString(16).slice(1)},e.parseColor=function(t){var i;if(e.isString(t)===!0){if(e.isValidRGB(t)===!0){var o=t.substr(4).substr(0,t.length-5).split(",").map(function(t){return parseInt(t)});t=e.RGBToHex(o[0],o[1],o[2])}if(e.isValidHex(t)===!0){var n=e.hexToHSV(t),s={h:n.h,s:.8*n.s,v:Math.min(1,1.02*n.v)},r={h:n.h,s:Math.min(1,1.25*n.s),v:.8*n.v},a=e.HSVToHex(r.h,r.s,r.v),h=e.HSVToHex(s.h,s.s,s.v);i={background:t,border:a,highlight:{background:h,border:a},hover:{background:h,border:a}}}else i={background:t,border:t,highlight:{background:t,border:t},hover:{background:t,border:t}}}else i={},i.background=t.background||void 0,i.border=t.border||void 0,e.isString(t.highlight)?i.highlight={border:t.highlight,background:t.highlight}:(i.highlight={},i.highlight.background=t.highlight&&t.highlight.background||void 0,i.highlight.border=t.highlight&&t.highlight.border||void 0),e.isString(t.hover)?i.hover={border:t.hover,background:t.hover}:(i.hover={},i.hover.background=t.hover&&t.hover.background||void 0,i.hover.border=t.hover&&t.hover.border||void 0);return i},e.RGBToHSV=function(t,e,i){t/=255,e/=255,i/=255;var o=Math.min(t,Math.min(e,i)),n=Math.max(t,Math.max(e,i));if(o==n)return{h:0,s:0,v:o};var s=t==o?e-i:i==o?t-e:i-t,r=t==o?3:i==o?1:5,a=60*(r-s/(n-o))/360,h=(n-o)/n,d=n;return{h:a,s:h,v:d}};var r={split:function(t){var e={};return t.split(";").forEach(function(t){if(""!=t.trim()){var i=t.split(":"),o=i[0].trim(),n=i[1].trim();e[o]=n}}),e},join:function(t){return Object.keys(t).map(function(e){return e+": "+t[e]}).join("; ")}};e.addCssText=function(t,i){var o=r.split(t.style.cssText),n=r.split(i),s=e.extend(o,n);t.style.cssText=r.join(s)},e.removeCssText=function(t,e){var i=r.split(t.style.cssText),o=r.split(e);for(var n in o)o.hasOwnProperty(n)&&delete i[n];t.style.cssText=r.join(i)},e.HSVToRGB=function(t,e,i){var o,n,s,r=Math.floor(6*t),a=6*t-r,h=i*(1-e),d=i*(1-a*e),l=i*(1-(1-a)*e);switch(r%6){case 0:o=i,n=l,s=h;break;case 1:o=d,n=i,s=h;break;case 2:o=h,n=i,s=l;break;case 3:o=h,n=d,s=i;break;case 4:o=l,n=h,s=i;break;case 5:o=i,n=h,s=d}return{r:Math.floor(255*o),g:Math.floor(255*n),b:Math.floor(255*s)}},e.HSVToHex=function(t,i,o){var n=e.HSVToRGB(t,i,o);return e.RGBToHex(n.r,n.g,n.b)},e.hexToHSV=function(t){var i=e.hexToRGB(t);return e.RGBToHSV(i.r,i.g,i.b)},e.isValidHex=function(t){var e=/(^#[0-9A-F]{6}$)|(^#[0-9A-F]{3}$)/i.test(t);return e},e.isValidRGB=function(t){t=t.replace(" ","");var e=/rgb\((\d{1,3}),(\d{1,3}),(\d{1,3})\)/i.test(t);return e},e.isValidRGBA=function(t){t=t.replace(" ","");var e=/rgba\((\d{1,3}),(\d{1,3}),(\d{1,3}),(.{1,3})\)/i.test(t);return e},e.selectiveBridgeObject=function(t,i){if("object"==typeof i){for(var o=Object.create(i),n=0;n<t.length;n++)i.hasOwnProperty(t[n])&&"object"==typeof i[t[n]]&&(o[t[n]]=e.bridgeObject(i[t[n]]));return o}return null},e.bridgeObject=function(t){if("object"==typeof t){var i=Object.create(t);for(var o in t)t.hasOwnProperty(o)&&"object"==typeof t[o]&&(i[o]=e.bridgeObject(t[o]));return i}return null},e.insertSort=function(t,e){for(var i=0;i<t.length;i++){for(var o=t[i],n=i;n>0&&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){for(var n,s,r,a,h=1e4,d=0,l=0,u=t.length-1;u>=l&&h>d;){if(a=Math.floor(.5*(u+l)),n=t[Math.max(0,a-1)][i],s=t[a][i],r=t[Math.min(t.length-1,a+1)][i],s==e)return a;if(e>n&&s>e)return"before"==o?Math.max(0,a-1):a;if(e>s&&r>e)return"before"==o?a:Math.min(t.length-1,a+1);e>s?l=a+1:u=a-1,d++}return-1},e.easingFunctions={linear:function(t){return t},easeInQuad:function(t){return t*t},easeOutQuad:function(t){return t*(2-t)},easeInOutQuad:function(t){return.5>t?2*t*t:-1+(4-2*t)*t},easeInCubic:function(t){return t*t*t},easeOutCubic:function(t){return--t*t*t+1},easeInOutCubic:function(t){return.5>t?4*t*t*t:(t-1)*(2*t-2)*(2*t-2)+1},easeInQuart:function(t){return t*t*t*t},easeOutQuart:function(t){return 1- --t*t*t*t},easeInOutQuart:function(t){return.5>t?8*t*t*t*t:1-8*--t*t*t*t},easeInQuint:function(t){return t*t*t*t*t},easeOutQuint:function(t){return 1+--t*t*t*t*t},easeInOutQuint:function(t){return.5>t?16*t*t*t*t*t:1+16*--t*t*t*t*t}}},function(t,e,i){t.exports="undefined"!=typeof window&&window.moment||i(3)},function(t,e,i){(function(t){!function(e,i){t.exports=i()}(this,function(){function e(){return zi.apply(null,arguments)}function i(t){zi=t}function o(t){return"[object Array]"===Object.prototype.toString.call(t)}function n(t){return t instanceof Date||"[object Date]"===Object.prototype.toString.call(t)}function s(t,e){var i,o=[];for(i=0;i<t.length;++i)o.push(e(t[i],i));return o}function r(t,e){return Object.prototype.hasOwnProperty.call(t,e)}function a(t,e){for(var i in e)r(e,i)&&(t[i]=e[i]);return r(e,"toString")&&(t.toString=e.toString),r(e,"valueOf")&&(t.valueOf=e.valueOf),t}function h(t,e,i,o){return St(t,e,i,o,!0).utc()}function d(){return{empty:!1,unusedTokens:[],unusedInput:[],overflow:-2,charsLeftOver:0,nullInput:!1,invalidMonth:null,invalidFormat:!1,userInvalidated:!1,iso:!1}}function l(t){return null==t._pf&&(t._pf=d()),t._pf}function u(t){if(null==t._isValid){var e=l(t);t._isValid=!(isNaN(t._d.getTime())||!(e.overflow<0)||e.empty||e.invalidMonth||e.invalidWeekday||e.nullInput||e.invalidFormat||e.userInvalidated),t._strict&&(t._isValid=t._isValid&&0===e.charsLeftOver&&0===e.unusedTokens.length&&void 0===e.bigHour)}return t._isValid}function c(t){var e=h(NaN);return null!=t?a(l(e),t):l(e).userInvalidated=!0,e}function p(t,e){var i,o,n;if("undefined"!=typeof e._isAMomentObject&&(t._isAMomentObject=e._isAMomentObject),"undefined"!=typeof e._i&&(t._i=e._i),"undefined"!=typeof e._f&&(t._f=e._f),"undefined"!=typeof e._l&&(t._l=e._l),"undefined"!=typeof e._strict&&(t._strict=e._strict),"undefined"!=typeof e._tzm&&(t._tzm=e._tzm),"undefined"!=typeof e._isUTC&&(t._isUTC=e._isUTC),"undefined"!=typeof e._offset&&(t._offset=e._offset),"undefined"!=typeof e._pf&&(t._pf=l(e)),"undefined"!=typeof e._locale&&(t._locale=e._locale),Ai.length>0)for(i in Ai)o=Ai[i],n=e[o],"undefined"!=typeof n&&(t[o]=n);return t}function f(t){p(this,t),this._d=new Date(null!=t._d?t._d.getTime():NaN),Bi===!1&&(Bi=!0,e.updateOffset(this),Bi=!1)}function m(t){return t instanceof f||null!=t&&null!=t._isAMomentObject}function v(t){return 0>t?Math.ceil(t):Math.floor(t)}function g(t){var e=+t,i=0;return 0!==e&&isFinite(e)&&(i=v(e)),i}function y(t,e,i){var o,n=Math.min(t.length,e.length),s=Math.abs(t.length-e.length),r=0;for(o=0;n>o;o++)(i&&t[o]!==e[o]||!i&&g(t[o])!==g(e[o]))&&r++;return r+s}function b(){}function w(t){return t?t.toLowerCase().replace("_","-"):t}function _(t){for(var e,i,o,n,s=0;s<t.length;){for(n=w(t[s]).split("-"),e=n.length,i=w(t[s+1]),i=i?i.split("-"):null;e>0;){if(o=x(n.slice(0,e).join("-")))return o;if(i&&i.length>=e&&y(n,i,!0)>=e-1)break;e--}s++}return null}function x(e){var i=null;if(!Fi[e]&&"undefined"!=typeof t&&t&&t.exports)try{i=Li._abbr,!function(){var t=new Error('Cannot find module "./locale"');throw t.code="MODULE_NOT_FOUND",t}(),k(i)}catch(o){}return Fi[e]}function k(t,e){var i;return t&&(i="undefined"==typeof e?M(t):O(t,e),i&&(Li=i)),Li._abbr}function O(t,e){return null!==e?(e.abbr=t,Fi[t]=Fi[t]||new b,Fi[t].set(e),k(t),Fi[t]):(delete Fi[t],null)}function M(t){var e;if(t&&t._locale&&t._locale._abbr&&(t=t._locale._abbr),!t)return Li;if(!o(t)){if(e=x(t))return e;t=[t]}return _(t)}function D(t,e){var i=t.toLowerCase();Ri[i]=Ri[i+"s"]=Ri[e]=t}function C(t){return"string"==typeof t?Ri[t]||Ri[t.toLowerCase()]:void 0}function T(t){var e,i,o={};for(i in t)r(t,i)&&(e=C(i),e&&(o[e]=t[i]));return o}function S(t,i){return function(o){return null!=o?(P(this,t,o),e.updateOffset(this,i),this):E(this,t)}}function E(t,e){return t._d["get"+(t._isUTC?"UTC":"")+e]()}function P(t,e,i){return t._d["set"+(t._isUTC?"UTC":"")+e](i)}function I(t,e){var i;if("object"==typeof t)for(i in t)this.set(i,t[i]);else if(t=C(t),"function"==typeof this[t])return this[t](e);return this}function N(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 z(t,e,i,o){var n=o;"string"==typeof o&&(n=function(){return this[o]()}),t&&(Yi[t]=n),e&&(Yi[e[0]]=function(){return N(n.apply(this,arguments),e[1],e[2])}),i&&(Yi[i]=function(){return this.localeData().ordinal(n.apply(this,arguments),t)})}function L(t){return t.match(/\[[\s\S]/)?t.replace(/^\[|\]$/g,""):t.replace(/\\/g,"")}function A(t){var e,i,o=t.match(ji);for(e=0,i=o.length;i>e;e++)Yi[o[e]]?o[e]=Yi[o[e]]:o[e]=L(o[e]);return function(n){var s="";for(e=0;i>e;e++)s+=o[e]instanceof Function?o[e].call(n,t):o[e];return s}}function B(t,e){return t.isValid()?(e=F(e,t.localeData()),Wi[e]=Wi[e]||A(e),Wi[e](t)):t.localeData().invalidDate()}function F(t,e){function i(t){return e.longDateFormat(t)||t}var o=5;for(Hi.lastIndex=0;o>=0&&Hi.test(t);)t=t.replace(Hi,i),Hi.lastIndex=0,o-=1;return t}function R(t){return"function"==typeof t&&"[object Function]"===Object.prototype.toString.call(t)}function j(t,e,i){no[t]=R(e)?e:function(t){return t&&i?i:e}}function H(t,e){return r(no,t)?no[t](e._strict,e._locale):new RegExp(W(t))}function W(t){return t.replace("\\","").replace(/\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g,function(t,e,i,o,n){return e||i||o||n}).replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&")}function Y(t,e){var i,o=e;for("string"==typeof t&&(t=[t]),"number"==typeof e&&(o=function(t,i){i[e]=g(t)}),i=0;i<t.length;i++)so[t[i]]=o}function G(t,e){Y(t,function(t,i,o,n){o._w=o._w||{},e(t,o._w,o,n)})}function U(t,e,i){null!=e&&r(so,t)&&so[t](e,i._a,i,t)}function V(t,e){return new Date(Date.UTC(t,e+1,0)).getUTCDate()}function q(t){return this._months[t.month()]}function X(t){return this._monthsShort[t.month()]}function Z(t,e,i){var o,n,s;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 K(t,e){var i;return"string"==typeof e&&(e=t.localeData().monthsParse(e),"number"!=typeof e)?t:(i=Math.min(t.date(),V(t.year(),e)),t._d["set"+(t._isUTC?"UTC":"")+"Month"](e,i),t)}function J(t){return null!=t?(K(this,t),e.updateOffset(this,!0),this):E(this,"Month")}function Q(){return V(this.year(),this.month())}function $(t){var e,i=t._a;return i&&-2===l(t).overflow&&(e=i[ao]<0||i[ao]>11?ao:i[ho]<1||i[ho]>V(i[ro],i[ao])?ho:i[lo]<0||i[lo]>24||24===i[lo]&&(0!==i[uo]||0!==i[co]||0!==i[po])?lo:i[uo]<0||i[uo]>59?uo:i[co]<0||i[co]>59?co:i[po]<0||i[po]>999?po:-1,l(t)._overflowDayOfYear&&(ro>e||e>ho)&&(e=ho),l(t).overflow=e),t}function tt(t){e.suppressDeprecationWarnings===!1&&"undefined"!=typeof console&&console.warn&&console.warn("Deprecation warning: "+t)}function et(t,e){var i=!0;return a(function(){return i&&(tt(t+"\n"+(new Error).stack),i=!1),e.apply(this,arguments)},e)}function it(t,e){vo[t]||(tt(e),vo[t]=!0)}function ot(t){var e,i,o=t._i,n=go.exec(o);if(n){for(l(t).iso=!0,e=0,i=yo.length;i>e;e++)if(yo[e][1].exec(o)){t._f=yo[e][0];break}for(e=0,i=bo.length;i>e;e++)if(bo[e][1].exec(o)){t._f+=(n[6]||" ")+bo[e][0];break}o.match(eo)&&(t._f+="Z"),xt(t)}else t._isValid=!1}function nt(t){var i=wo.exec(t._i);return null!==i?void(t._d=new Date(+i[1])):(ot(t),void(t._isValid===!1&&(delete t._isValid,e.createFromInputFallback(t))))}function st(t,e,i,o,n,s,r){var a=new Date(t,e,i,o,n,s,r);return 1970>t&&a.setFullYear(t),a}function rt(t){var e=new Date(Date.UTC.apply(null,arguments));return 1970>t&&e.setUTCFullYear(t),e}function at(t){return ht(t)?366:365}function ht(t){return t%4===0&&t%100!==0||t%400===0}function dt(){return ht(this.year())}function lt(t,e,i){var o,n=i-e,s=i-t.day();return s>n&&(s-=7),n-7>s&&(s+=7),o=Et(t).add(s,"d"),{week:Math.ceil(o.dayOfYear()/7),year:o.year()}}function ut(t){return lt(t,this._week.dow,this._week.doy).week}function ct(){return this._week.dow}function pt(){return this._week.doy}function ft(t){var e=this.localeData().week(this);return null==t?e:this.add(7*(t-e),"d")}function mt(t){var e=lt(this,1,4).week;return null==t?e:this.add(7*(t-e),"d")}function vt(t,e,i,o,n){var s,r=6+n-o,a=rt(t,0,1+r),h=a.getUTCDay();return n>h&&(h+=7),i=null!=i?1*i:n,s=1+r+7*(e-1)-h+i,{year:s>0?t:t-1,dayOfYear:s>0?s:at(t-1)+s}}function gt(t){var e=Math.round((this.clone().startOf("day")-this.clone().startOf("year"))/864e5)+1;return null==t?e:this.add(t-e,"d")}function yt(t,e,i){return null!=t?t:null!=e?e:i}function bt(t){var e=new Date;return t._useUTC?[e.getUTCFullYear(),e.getUTCMonth(),e.getUTCDate()]:[e.getFullYear(),e.getMonth(),e.getDate()]}function wt(t){var e,i,o,n,s=[];if(!t._d){for(o=bt(t),t._w&&null==t._a[ho]&&null==t._a[ao]&&_t(t),t._dayOfYear&&(n=yt(t._a[ro],o[ro]),t._dayOfYear>at(n)&&(l(t)._overflowDayOfYear=!0),i=rt(n,0,t._dayOfYear),t._a[ao]=i.getUTCMonth(),t._a[ho]=i.getUTCDate()),e=0;3>e&&null==t._a[e];++e)t._a[e]=s[e]=o[e];for(;7>e;e++)t._a[e]=s[e]=null==t._a[e]?2===e?1:0:t._a[e];24===t._a[lo]&&0===t._a[uo]&&0===t._a[co]&&0===t._a[po]&&(t._nextDay=!0,t._a[lo]=0),t._d=(t._useUTC?rt:st).apply(null,s),null!=t._tzm&&t._d.setUTCMinutes(t._d.getUTCMinutes()-t._tzm),t._nextDay&&(t._a[lo]=24)}}function _t(t){var e,i,o,n,s,r,a;e=t._w,null!=e.GG||null!=e.W||null!=e.E?(s=1,r=4,i=yt(e.GG,t._a[ro],lt(Et(),1,4).year),o=yt(e.W,1),n=yt(e.E,1)):(s=t._locale._week.dow,r=t._locale._week.doy,i=yt(e.gg,t._a[ro],lt(Et(),s,r).year),o=yt(e.w,1),null!=e.d?(n=e.d,s>n&&++o):n=null!=e.e?e.e+s:s),a=vt(i,o,n,r,s),t._a[ro]=a.year,t._dayOfYear=a.dayOfYear}function xt(t){if(t._f===e.ISO_8601)return void ot(t);t._a=[],l(t).empty=!0;var i,o,n,s,r,a=""+t._i,h=a.length,d=0;for(n=F(t._f,t._locale).match(ji)||[],i=0;i<n.length;i++)s=n[i],o=(a.match(H(s,t))||[])[0],o&&(r=a.substr(0,a.indexOf(o)),r.length>0&&l(t).unusedInput.push(r),a=a.slice(a.indexOf(o)+o.length),d+=o.length),Yi[s]?(o?l(t).empty=!1:l(t).unusedTokens.push(s),U(s,o,t)):t._strict&&!o&&l(t).unusedTokens.push(s);l(t).charsLeftOver=h-d,a.length>0&&l(t).unusedInput.push(a),l(t).bigHour===!0&&t._a[lo]<=12&&t._a[lo]>0&&(l(t).bigHour=void 0),t._a[lo]=kt(t._locale,t._a[lo],t._meridiem),wt(t),$(t)}function kt(t,e,i){var o;return null==i?e:null!=t.meridiemHour?t.meridiemHour(e,i):null!=t.isPM?(o=t.isPM(i),o&&12>e&&(e+=12),o||12!==e||(e=0),e):e}function Ot(t){var e,i,o,n,s;if(0===t._f.length)return l(t).invalidFormat=!0,void(t._d=new Date(NaN));for(n=0;n<t._f.length;n++)s=0,e=p({},t),null!=t._useUTC&&(e._useUTC=t._useUTC),e._f=t._f[n],xt(e),u(e)&&(s+=l(e).charsLeftOver,s+=10*l(e).unusedTokens.length,l(e).score=s,(null==o||o>s)&&(o=s,i=e));a(t,i||e)}function Mt(t){if(!t._d){var e=T(t._i);t._a=[e.year,e.month,e.day||e.date,e.hour,e.minute,e.second,e.millisecond],wt(t)}}function Dt(t){var e=new f($(Ct(t)));return e._nextDay&&(e.add(1,"d"),e._nextDay=void 0),e}function Ct(t){var e=t._i,i=t._f;return t._locale=t._locale||M(t._l),null===e||void 0===i&&""===e?c({nullInput:!0}):("string"==typeof e&&(t._i=e=t._locale.preparse(e)),m(e)?new f($(e)):(o(i)?Ot(t):i?xt(t):n(e)?t._d=e:Tt(t),t))}function Tt(t){var i=t._i;void 0===i?t._d=new Date:n(i)?t._d=new Date(+i):"string"==typeof i?nt(t):o(i)?(t._a=s(i.slice(0),function(t){return parseInt(t,10)}),wt(t)):"object"==typeof i?Mt(t):"number"==typeof i?t._d=new Date(i):e.createFromInputFallback(t)}function St(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,Dt(s)}function Et(t,e,i,o){return St(t,e,i,o,!1)}function Pt(t,e){var i,n;if(1===e.length&&o(e[0])&&(e=e[0]),!e.length)return Et();for(i=e[0],n=1;n<e.length;++n)(!e[n].isValid()||e[n][t](i))&&(i=e[n]);return i}function It(){var t=[].slice.call(arguments,0);return Pt("isBefore",t)}function Nt(){var t=[].slice.call(arguments,0);return Pt("isAfter",t)}function zt(t){var e=T(t),i=e.year||0,o=e.quarter||0,n=e.month||0,s=e.week||0,r=e.day||0,a=e.hour||0,h=e.minute||0,d=e.second||0,l=e.millisecond||0;this._milliseconds=+l+1e3*d+6e4*h+36e5*a,this._days=+r+7*s,this._months=+n+3*o+12*i,this._data={},this._locale=M(),this._bubble()}function Lt(t){return t instanceof zt}function At(t,e){z(t,0,0,function(){var t=this.utcOffset(),i="+";return 0>t&&(t=-t,i="-"),i+N(~~(t/60),2)+e+N(~~t%60,2)})}function Bt(t){var e=(t||"").match(eo)||[],i=e[e.length-1]||[],o=(i+"").match(Mo)||["-",0,0],n=+(60*o[1])+g(o[2]);return"+"===o[0]?n:-n}function Ft(t,i){var o,s;return i._isUTC?(o=i.clone(),s=(m(t)||n(t)?+t:+Et(t))-+o,o._d.setTime(+o._d+s),e.updateOffset(o,!1),o):Et(t).local()}function Rt(t){return 15*-Math.round(t._d.getTimezoneOffset()/15)}function jt(t,i){var o,n=this._offset||0;return null!=t?("string"==typeof t&&(t=Bt(t)),Math.abs(t)<16&&(t=60*t),!this._isUTC&&i&&(o=Rt(this)),this._offset=t,this._isUTC=!0,null!=o&&this.add(o,"m"),n!==t&&(!i||this._changeInProgress?ie(this,Jt(t-n,"m"),1,!1):this._changeInProgress||(this._changeInProgress=!0,e.updateOffset(this,!0),this._changeInProgress=null)),this):this._isUTC?n:Rt(this)}function Ht(t,e){return null!=t?("string"!=typeof t&&(t=-t),this.utcOffset(t,e),this):-this.utcOffset()}function Wt(t){return this.utcOffset(0,t)}function Yt(t){return this._isUTC&&(this.utcOffset(0,t),this._isUTC=!1,t&&this.subtract(Rt(this),"m")),this}function Gt(){return this._tzm?this.utcOffset(this._tzm):"string"==typeof this._i&&this.utcOffset(Bt(this._i)),this}function Ut(t){return t=t?Et(t).utcOffset():0,(this.utcOffset()-t)%60===0}function Vt(){return this.utcOffset()>this.clone().month(0).utcOffset()||this.utcOffset()>this.clone().month(5).utcOffset()}function qt(){if("undefined"!=typeof this._isDSTShifted)return this._isDSTShifted;var t={};if(p(t,this),t=Ct(t),t._a){var e=t._isUTC?h(t._a):Et(t._a);this._isDSTShifted=this.isValid()&&y(t._a,e.toArray())>0}else this._isDSTShifted=!1;return this._isDSTShifted}function Xt(){return!this._isUTC}function Zt(){return this._isUTC}function Kt(){return this._isUTC&&0===this._offset}function Jt(t,e){var i,o,n,s=t,a=null;return Lt(t)?s={ms:t._milliseconds,d:t._days,M:t._months}:"number"==typeof t?(s={},e?s[e]=t:s.milliseconds=t):(a=Do.exec(t))?(i="-"===a[1]?-1:1,s={y:0,d:g(a[ho])*i,h:g(a[lo])*i,m:g(a[uo])*i,s:g(a[co])*i,ms:g(a[po])*i}):(a=Co.exec(t))?(i="-"===a[1]?-1:1,s={y:Qt(a[2],i),M:Qt(a[3],i),d:Qt(a[4],i),h:Qt(a[5],i),m:Qt(a[6],i),s:Qt(a[7],i),w:Qt(a[8],i)}):null==s?s={}:"object"==typeof s&&("from"in s||"to"in s)&&(n=te(Et(s.from),Et(s.to)),s={},s.ms=n.milliseconds,s.M=n.months),o=new zt(s),Lt(t)&&r(t,"_locale")&&(o._locale=t._locale),o}function Qt(t,e){var i=t&&parseFloat(t.replace(",","."));return(isNaN(i)?0:i)*e}function $t(t,e){var i={milliseconds:0,months:0};return i.months=e.month()-t.month()+12*(e.year()-t.year()),t.clone().add(i.months,"M").isAfter(e)&&--i.months,i.milliseconds=+e-+t.clone().add(i.months,"M"),i}function te(t,e){var i;return e=Ft(e,t),t.isBefore(e)?i=$t(t,e):(i=$t(e,t),i.milliseconds=-i.milliseconds,i.months=-i.months),i}function ee(t,e){return function(i,o){var n,s;return null===o||isNaN(+o)||(it(e,"moment()."+e+"(period, number) is deprecated. Please use moment()."+e+"(number, period)."),s=i,i=o,o=s),i="string"==typeof i?+i:i,n=Jt(i,o),ie(this,n,t),this}}function ie(t,i,o,n){var s=i._milliseconds,r=i._days,a=i._months;n=null==n?!0:n,s&&t._d.setTime(+t._d+s*o),r&&P(t,"Date",E(t,"Date")+r*o),a&&K(t,E(t,"Month")+a*o),n&&e.updateOffset(t,r||a)}function oe(t,e){var i=t||Et(),o=Ft(i,this).startOf("day"),n=this.diff(o,"days",!0),s=-6>n?"sameElse":-1>n?"lastWeek":0>n?"lastDay":1>n?"sameDay":2>n?"nextDay":7>n?"nextWeek":"sameElse";return this.format(e&&e[s]||this.localeData().calendar(s,this,Et(i)))}function ne(){return new f(this)}function se(t,e){var i;return e=C("undefined"!=typeof e?e:"millisecond"),"millisecond"===e?(t=m(t)?t:Et(t),+this>+t):(i=m(t)?+t:+Et(t),i<+this.clone().startOf(e))}function re(t,e){var i;return e=C("undefined"!=typeof e?e:"millisecond"),"millisecond"===e?(t=m(t)?t:Et(t),+t>+this):(i=m(t)?+t:+Et(t),+this.clone().endOf(e)<i)}function ae(t,e,i){return this.isAfter(t,i)&&this.isBefore(e,i)}function he(t,e){var i;return e=C(e||"millisecond"),"millisecond"===e?(t=m(t)?t:Et(t),+this===+t):(i=+Et(t),+this.clone().startOf(e)<=i&&i<=+this.clone().endOf(e))}function de(t,e,i){var o,n,s=Ft(t,this),r=6e4*(s.utcOffset()-this.utcOffset());return e=C(e),"year"===e||"month"===e||"quarter"===e?(n=le(this,s),"quarter"===e?n/=3:"year"===e&&(n/=12)):(o=this-s,n="second"===e?o/1e3:"minute"===e?o/6e4:"hour"===e?o/36e5:"day"===e?(o-r)/864e5:"week"===e?(o-r)/6048e5:o),i?n:v(n)}function le(t,e){var i,o,n=12*(e.year()-t.year())+(e.month()-t.month()),s=t.clone().add(n,"months");return 0>e-s?(i=t.clone().add(n-1,"months"),o=(e-s)/(s-i)):(i=t.clone().add(n+1,"months"),o=(e-s)/(i-s)),-(n+o)}function ue(){return this.clone().locale("en").format("ddd MMM DD YYYY HH:mm:ss [GMT]ZZ")}function ce(){var t=this.clone().utc();return 0<t.year()&&t.year()<=9999?"function"==typeof Date.prototype.toISOString?this.toDate().toISOString():B(t,"YYYY-MM-DD[T]HH:mm:ss.SSS[Z]"):B(t,"YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]")}function pe(t){var i=B(this,t||e.defaultFormat);return this.localeData().postformat(i)}function fe(t,e){return this.isValid()?Jt({to:this,from:t}).locale(this.locale()).humanize(!e):this.localeData().invalidDate()}function me(t){return this.from(Et(),t)}function ve(t,e){return this.isValid()?Jt({from:this,to:t}).locale(this.locale()).humanize(!e):this.localeData().invalidDate()}function ge(t){return this.to(Et(),t)}function ye(t){var e;return void 0===t?this._locale._abbr:(e=M(t),null!=e&&(this._locale=e),this)}function be(){return this._locale}function we(t){switch(t=C(t)){case"year":this.month(0);case"quarter":case"month":this.date(1);case"week":case"isoWeek":case"day":this.hours(0);case"hour":this.minutes(0);case"minute":this.seconds(0);case"second":this.milliseconds(0)}return"week"===t&&this.weekday(0),"isoWeek"===t&&this.isoWeekday(1),"quarter"===t&&this.month(3*Math.floor(this.month()/3)),this}function _e(t){
-return t=C(t),void 0===t||"millisecond"===t?this:this.startOf(t).add(1,"isoWeek"===t?"week":t).subtract(1,"ms")}function xe(){return+this._d-6e4*(this._offset||0)}function ke(){return Math.floor(+this/1e3)}function Oe(){return this._offset?new Date(+this):this._d}function Me(){var t=this;return[t.year(),t.month(),t.date(),t.hour(),t.minute(),t.second(),t.millisecond()]}function De(){var t=this;return{years:t.year(),months:t.month(),date:t.date(),hours:t.hours(),minutes:t.minutes(),seconds:t.seconds(),milliseconds:t.milliseconds()}}function Ce(){return u(this)}function Te(){return a({},l(this))}function Se(){return l(this).overflow}function Ee(t,e){z(0,[t,t.length],0,e)}function Pe(t,e,i){return lt(Et([t,11,31+e-i]),e,i).week}function Ie(t){var e=lt(this,this.localeData()._week.dow,this.localeData()._week.doy).year;return null==t?e:this.add(t-e,"y")}function Ne(t){var e=lt(this,1,4).year;return null==t?e:this.add(t-e,"y")}function ze(){return Pe(this.year(),1,4)}function Le(){var t=this.localeData()._week;return Pe(this.year(),t.dow,t.doy)}function Ae(t){return null==t?Math.ceil((this.month()+1)/3):this.month(3*(t-1)+this.month()%3)}function Be(t,e){return"string"!=typeof t?t:isNaN(t)?(t=e.weekdaysParse(t),"number"==typeof t?t:null):parseInt(t,10)}function Fe(t){return this._weekdays[t.day()]}function Re(t){return this._weekdaysShort[t.day()]}function je(t){return this._weekdaysMin[t.day()]}function He(t){var e,i,o;for(this._weekdaysParse=this._weekdaysParse||[],e=0;7>e;e++)if(this._weekdaysParse[e]||(i=Et([2e3,1]).day(e),o="^"+this.weekdays(i,"")+"|^"+this.weekdaysShort(i,"")+"|^"+this.weekdaysMin(i,""),this._weekdaysParse[e]=new RegExp(o.replace(".",""),"i")),this._weekdaysParse[e].test(t))return e}function We(t){var e=this._isUTC?this._d.getUTCDay():this._d.getDay();return null!=t?(t=Be(t,this.localeData()),this.add(t-e,"d")):e}function Ye(t){var e=(this.day()+7-this.localeData()._week.dow)%7;return null==t?e:this.add(t-e,"d")}function Ge(t){return null==t?this.day()||7:this.day(this.day()%7?t:t-7)}function Ue(t,e){z(t,0,0,function(){return this.localeData().meridiem(this.hours(),this.minutes(),e)})}function Ve(t,e){return e._meridiemParse}function qe(t){return"p"===(t+"").toLowerCase().charAt(0)}function Xe(t,e,i){return t>11?i?"pm":"PM":i?"am":"AM"}function Ze(t,e){e[po]=g(1e3*("0."+t))}function Ke(){return this._isUTC?"UTC":""}function Je(){return this._isUTC?"Coordinated Universal Time":""}function Qe(t){return Et(1e3*t)}function $e(){return Et.apply(null,arguments).parseZone()}function ti(t,e,i){var o=this._calendar[t];return"function"==typeof o?o.call(e,i):o}function ei(t){var e=this._longDateFormat[t],i=this._longDateFormat[t.toUpperCase()];return e||!i?e:(this._longDateFormat[t]=i.replace(/MMMM|MM|DD|dddd/g,function(t){return t.slice(1)}),this._longDateFormat[t])}function ii(){return this._invalidDate}function oi(t){return this._ordinal.replace("%d",t)}function ni(t){return t}function si(t,e,i,o){var n=this._relativeTime[i];return"function"==typeof n?n(t,e,i,o):n.replace(/%d/i,t)}function ri(t,e){var i=this._relativeTime[t>0?"future":"past"];return"function"==typeof i?i(e):i.replace(/%s/i,e)}function ai(t){var e,i;for(i in t)e=t[i],"function"==typeof e?this[i]=e:this["_"+i]=e;this._ordinalParseLenient=new RegExp(this._ordinalParse.source+"|"+/\d{1,2}/.source)}function hi(t,e,i,o){var n=M(),s=h().set(o,e);return n[i](s,t)}function di(t,e,i,o,n){if("number"==typeof t&&(e=t,t=void 0),t=t||"",null!=e)return hi(t,e,i,n);var s,r=[];for(s=0;o>s;s++)r[s]=hi(t,s,i,n);return r}function li(t,e){return di(t,e,"months",12,"month")}function ui(t,e){return di(t,e,"monthsShort",12,"month")}function ci(t,e){return di(t,e,"weekdays",7,"day")}function pi(t,e){return di(t,e,"weekdaysShort",7,"day")}function fi(t,e){return di(t,e,"weekdaysMin",7,"day")}function mi(){var t=this._data;return this._milliseconds=Ko(this._milliseconds),this._days=Ko(this._days),this._months=Ko(this._months),t.milliseconds=Ko(t.milliseconds),t.seconds=Ko(t.seconds),t.minutes=Ko(t.minutes),t.hours=Ko(t.hours),t.months=Ko(t.months),t.years=Ko(t.years),this}function vi(t,e,i,o){var n=Jt(e,i);return t._milliseconds+=o*n._milliseconds,t._days+=o*n._days,t._months+=o*n._months,t._bubble()}function gi(t,e){return vi(this,t,e,1)}function yi(t,e){return vi(this,t,e,-1)}function bi(t){return 0>t?Math.floor(t):Math.ceil(t)}function wi(){var t,e,i,o,n,s=this._milliseconds,r=this._days,a=this._months,h=this._data;return s>=0&&r>=0&&a>=0||0>=s&&0>=r&&0>=a||(s+=864e5*bi(xi(a)+r),r=0,a=0),h.milliseconds=s%1e3,t=v(s/1e3),h.seconds=t%60,e=v(t/60),h.minutes=e%60,i=v(e/60),h.hours=i%24,r+=v(i/24),n=v(_i(r)),a+=n,r-=bi(xi(n)),o=v(a/12),a%=12,h.days=r,h.months=a,h.years=o,this}function _i(t){return 4800*t/146097}function xi(t){return 146097*t/4800}function ki(t){var e,i,o=this._milliseconds;if(t=C(t),"month"===t||"year"===t)return e=this._days+o/864e5,i=this._months+_i(e),"month"===t?i:i/12;switch(e=this._days+Math.round(xi(this._months)),t){case"week":return e/7+o/6048e5;case"day":return e+o/864e5;case"hour":return 24*e+o/36e5;case"minute":return 1440*e+o/6e4;case"second":return 86400*e+o/1e3;case"millisecond":return Math.floor(864e5*e)+o;default:throw new Error("Unknown unit "+t)}}function Oi(){return this._milliseconds+864e5*this._days+this._months%12*2592e6+31536e6*g(this._months/12)}function Mi(t){return function(){return this.as(t)}}function Di(t){return t=C(t),this[t+"s"]()}function Ci(t){return function(){return this._data[t]}}function Ti(){return v(this.days()/7)}function Si(t,e,i,o,n){return n.relativeTime(e||1,!!i,t,o)}function Ei(t,e,i){var o=Jt(t).abs(),n=pn(o.as("s")),s=pn(o.as("m")),r=pn(o.as("h")),a=pn(o.as("d")),h=pn(o.as("M")),d=pn(o.as("y")),l=n<fn.s&&["s",n]||1===s&&["m"]||s<fn.m&&["mm",s]||1===r&&["h"]||r<fn.h&&["hh",r]||1===a&&["d"]||a<fn.d&&["dd",a]||1===h&&["M"]||h<fn.M&&["MM",h]||1===d&&["y"]||["yy",d];return l[2]=e,l[3]=+t>0,l[4]=i,Si.apply(null,l)}function Pi(t,e){return void 0===fn[t]?!1:void 0===e?fn[t]:(fn[t]=e,!0)}function Ii(t){var e=this.localeData(),i=Ei(this,!t,e);return t&&(i=e.pastFuture(+this,i)),e.postformat(i)}function Ni(){var t,e,i,o=mn(this._milliseconds)/1e3,n=mn(this._days),s=mn(this._months);t=v(o/60),e=v(t/60),o%=60,t%=60,i=v(s/12),s%=12;var r=i,a=s,h=n,d=e,l=t,u=o,c=this.asSeconds();return c?(0>c?"-":"")+"P"+(r?r+"Y":"")+(a?a+"M":"")+(h?h+"D":"")+(d||l||u?"T":"")+(d?d+"H":"")+(l?l+"M":"")+(u?u+"S":""):"P0D"}var zi,Li,Ai=e.momentProperties=[],Bi=!1,Fi={},Ri={},ji=/(\[[^\[]*\])|(\\)?(Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Q|YYYYYY|YYYYY|YYYY|YY|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g,Hi=/(\[[^\[]*\])|(\\)?(LTS|LT|LL?L?L?|l{1,4})/g,Wi={},Yi={},Gi=/\d/,Ui=/\d\d/,Vi=/\d{3}/,qi=/\d{4}/,Xi=/[+-]?\d{6}/,Zi=/\d\d?/,Ki=/\d{1,3}/,Ji=/\d{1,4}/,Qi=/[+-]?\d{1,6}/,$i=/\d+/,to=/[+-]?\d+/,eo=/Z|[+-]\d\d:?\d\d/gi,io=/[+-]?\d+(\.\d{1,3})?/,oo=/[0-9]*['a-z\u00A0-\u05FF\u0700-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]+|[\u0600-\u06FF\/]+(\s*?[\u0600-\u06FF]+){1,2}/i,no={},so={},ro=0,ao=1,ho=2,lo=3,uo=4,co=5,po=6;z("M",["MM",2],"Mo",function(){return this.month()+1}),z("MMM",0,0,function(t){return this.localeData().monthsShort(this,t)}),z("MMMM",0,0,function(t){return this.localeData().months(this,t)}),D("month","M"),j("M",Zi),j("MM",Zi,Ui),j("MMM",oo),j("MMMM",oo),Y(["M","MM"],function(t,e){e[ao]=g(t)-1}),Y(["MMM","MMMM"],function(t,e,i,o){var n=i._locale.monthsParse(t,o,i._strict);null!=n?e[ao]=n:l(i).invalidMonth=t});var fo="January_February_March_April_May_June_July_August_September_October_November_December".split("_"),mo="Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),vo={};e.suppressDeprecationWarnings=!1;var go=/^\s*(?:[+-]\d{6}|\d{4})-(?:(\d\d-\d\d)|(W\d\d$)|(W\d\d-\d)|(\d\d\d))((T| )(\d\d(:\d\d(:\d\d(\.\d+)?)?)?)?([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?$/,yo=[["YYYYYY-MM-DD",/[+-]\d{6}-\d{2}-\d{2}/],["YYYY-MM-DD",/\d{4}-\d{2}-\d{2}/],["GGGG-[W]WW-E",/\d{4}-W\d{2}-\d/],["GGGG-[W]WW",/\d{4}-W\d{2}/],["YYYY-DDD",/\d{4}-\d{3}/]],bo=[["HH:mm:ss.SSSS",/(T| )\d\d:\d\d:\d\d\.\d+/],["HH:mm:ss",/(T| )\d\d:\d\d:\d\d/],["HH:mm",/(T| )\d\d:\d\d/],["HH",/(T| )\d\d/]],wo=/^\/?Date\((\-?\d+)/i;e.createFromInputFallback=et("moment construction falls back to js Date. This is discouraged and will be removed in upcoming major release. Please refer to https://github.com/moment/moment/issues/1407 for more info.",function(t){t._d=new Date(t._i+(t._useUTC?" UTC":""))}),z(0,["YY",2],0,function(){return this.year()%100}),z(0,["YYYY",4],0,"year"),z(0,["YYYYY",5],0,"year"),z(0,["YYYYYY",6,!0],0,"year"),D("year","y"),j("Y",to),j("YY",Zi,Ui),j("YYYY",Ji,qi),j("YYYYY",Qi,Xi),j("YYYYYY",Qi,Xi),Y(["YYYYY","YYYYYY"],ro),Y("YYYY",function(t,i){i[ro]=2===t.length?e.parseTwoDigitYear(t):g(t)}),Y("YY",function(t,i){i[ro]=e.parseTwoDigitYear(t)}),e.parseTwoDigitYear=function(t){return g(t)+(g(t)>68?1900:2e3)};var _o=S("FullYear",!1);z("w",["ww",2],"wo","week"),z("W",["WW",2],"Wo","isoWeek"),D("week","w"),D("isoWeek","W"),j("w",Zi),j("ww",Zi,Ui),j("W",Zi),j("WW",Zi,Ui),G(["w","ww","W","WW"],function(t,e,i,o){e[o.substr(0,1)]=g(t)});var xo={dow:0,doy:6};z("DDD",["DDDD",3],"DDDo","dayOfYear"),D("dayOfYear","DDD"),j("DDD",Ki),j("DDDD",Vi),Y(["DDD","DDDD"],function(t,e,i){i._dayOfYear=g(t)}),e.ISO_8601=function(){};var ko=et("moment().min is deprecated, use moment.min instead. https://github.com/moment/moment/issues/1548",function(){var t=Et.apply(null,arguments);return this>t?this:t}),Oo=et("moment().max is deprecated, use moment.max instead. https://github.com/moment/moment/issues/1548",function(){var t=Et.apply(null,arguments);return t>this?this:t});At("Z",":"),At("ZZ",""),j("Z",eo),j("ZZ",eo),Y(["Z","ZZ"],function(t,e,i){i._useUTC=!0,i._tzm=Bt(t)});var Mo=/([\+\-]|\d\d)/gi;e.updateOffset=function(){};var Do=/(\-)?(?:(\d*)\.)?(\d+)\:(\d+)(?:\:(\d+)\.?(\d{3})?)?/,Co=/^(-)?P(?:(?:([0-9,.]*)Y)?(?:([0-9,.]*)M)?(?:([0-9,.]*)D)?(?:T(?:([0-9,.]*)H)?(?:([0-9,.]*)M)?(?:([0-9,.]*)S)?)?|([0-9,.]*)W)$/;Jt.fn=zt.prototype;var To=ee(1,"add"),So=ee(-1,"subtract");e.defaultFormat="YYYY-MM-DDTHH:mm:ssZ";var Eo=et("moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.",function(t){return void 0===t?this.localeData():this.locale(t)});z(0,["gg",2],0,function(){return this.weekYear()%100}),z(0,["GG",2],0,function(){return this.isoWeekYear()%100}),Ee("gggg","weekYear"),Ee("ggggg","weekYear"),Ee("GGGG","isoWeekYear"),Ee("GGGGG","isoWeekYear"),D("weekYear","gg"),D("isoWeekYear","GG"),j("G",to),j("g",to),j("GG",Zi,Ui),j("gg",Zi,Ui),j("GGGG",Ji,qi),j("gggg",Ji,qi),j("GGGGG",Qi,Xi),j("ggggg",Qi,Xi),G(["gggg","ggggg","GGGG","GGGGG"],function(t,e,i,o){e[o.substr(0,2)]=g(t)}),G(["gg","GG"],function(t,i,o,n){i[n]=e.parseTwoDigitYear(t)}),z("Q",0,0,"quarter"),D("quarter","Q"),j("Q",Gi),Y("Q",function(t,e){e[ao]=3*(g(t)-1)}),z("D",["DD",2],"Do","date"),D("date","D"),j("D",Zi),j("DD",Zi,Ui),j("Do",function(t,e){return t?e._ordinalParse:e._ordinalParseLenient}),Y(["D","DD"],ho),Y("Do",function(t,e){e[ho]=g(t.match(Zi)[0],10)});var Po=S("Date",!0);z("d",0,"do","day"),z("dd",0,0,function(t){return this.localeData().weekdaysMin(this,t)}),z("ddd",0,0,function(t){return this.localeData().weekdaysShort(this,t)}),z("dddd",0,0,function(t){return this.localeData().weekdays(this,t)}),z("e",0,0,"weekday"),z("E",0,0,"isoWeekday"),D("day","d"),D("weekday","e"),D("isoWeekday","E"),j("d",Zi),j("e",Zi),j("E",Zi),j("dd",oo),j("ddd",oo),j("dddd",oo),G(["dd","ddd","dddd"],function(t,e,i){var o=i._locale.weekdaysParse(t);null!=o?e.d=o:l(i).invalidWeekday=t}),G(["d","e","E"],function(t,e,i,o){e[o]=g(t)});var Io="Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),No="Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),zo="Su_Mo_Tu_We_Th_Fr_Sa".split("_");z("H",["HH",2],0,"hour"),z("h",["hh",2],0,function(){return this.hours()%12||12}),Ue("a",!0),Ue("A",!1),D("hour","h"),j("a",Ve),j("A",Ve),j("H",Zi),j("h",Zi),j("HH",Zi,Ui),j("hh",Zi,Ui),Y(["H","HH"],lo),Y(["a","A"],function(t,e,i){i._isPm=i._locale.isPM(t),i._meridiem=t}),Y(["h","hh"],function(t,e,i){e[lo]=g(t),l(i).bigHour=!0});var Lo=/[ap]\.?m?\.?/i,Ao=S("Hours",!0);z("m",["mm",2],0,"minute"),D("minute","m"),j("m",Zi),j("mm",Zi,Ui),Y(["m","mm"],uo);var Bo=S("Minutes",!1);z("s",["ss",2],0,"second"),D("second","s"),j("s",Zi),j("ss",Zi,Ui),Y(["s","ss"],co);var Fo=S("Seconds",!1);z("S",0,0,function(){return~~(this.millisecond()/100)}),z(0,["SS",2],0,function(){return~~(this.millisecond()/10)}),z(0,["SSS",3],0,"millisecond"),z(0,["SSSS",4],0,function(){return 10*this.millisecond()}),z(0,["SSSSS",5],0,function(){return 100*this.millisecond()}),z(0,["SSSSSS",6],0,function(){return 1e3*this.millisecond()}),z(0,["SSSSSSS",7],0,function(){return 1e4*this.millisecond()}),z(0,["SSSSSSSS",8],0,function(){return 1e5*this.millisecond()}),z(0,["SSSSSSSSS",9],0,function(){return 1e6*this.millisecond()}),D("millisecond","ms"),j("S",Ki,Gi),j("SS",Ki,Ui),j("SSS",Ki,Vi);var Ro;for(Ro="SSSS";Ro.length<=9;Ro+="S")j(Ro,$i);for(Ro="S";Ro.length<=9;Ro+="S")Y(Ro,Ze);var jo=S("Milliseconds",!1);z("z",0,0,"zoneAbbr"),z("zz",0,0,"zoneName");var Ho=f.prototype;Ho.add=To,Ho.calendar=oe,Ho.clone=ne,Ho.diff=de,Ho.endOf=_e,Ho.format=pe,Ho.from=fe,Ho.fromNow=me,Ho.to=ve,Ho.toNow=ge,Ho.get=I,Ho.invalidAt=Se,Ho.isAfter=se,Ho.isBefore=re,Ho.isBetween=ae,Ho.isSame=he,Ho.isValid=Ce,Ho.lang=Eo,Ho.locale=ye,Ho.localeData=be,Ho.max=Oo,Ho.min=ko,Ho.parsingFlags=Te,Ho.set=I,Ho.startOf=we,Ho.subtract=So,Ho.toArray=Me,Ho.toObject=De,Ho.toDate=Oe,Ho.toISOString=ce,Ho.toJSON=ce,Ho.toString=ue,Ho.unix=ke,Ho.valueOf=xe,Ho.year=_o,Ho.isLeapYear=dt,Ho.weekYear=Ie,Ho.isoWeekYear=Ne,Ho.quarter=Ho.quarters=Ae,Ho.month=J,Ho.daysInMonth=Q,Ho.week=Ho.weeks=ft,Ho.isoWeek=Ho.isoWeeks=mt,Ho.weeksInYear=Le,Ho.isoWeeksInYear=ze,Ho.date=Po,Ho.day=Ho.days=We,Ho.weekday=Ye,Ho.isoWeekday=Ge,Ho.dayOfYear=gt,Ho.hour=Ho.hours=Ao,Ho.minute=Ho.minutes=Bo,Ho.second=Ho.seconds=Fo,Ho.millisecond=Ho.milliseconds=jo,Ho.utcOffset=jt,Ho.utc=Wt,Ho.local=Yt,Ho.parseZone=Gt,Ho.hasAlignedHourOffset=Ut,Ho.isDST=Vt,Ho.isDSTShifted=qt,Ho.isLocal=Xt,Ho.isUtcOffset=Zt,Ho.isUtc=Kt,Ho.isUTC=Kt,Ho.zoneAbbr=Ke,Ho.zoneName=Je,Ho.dates=et("dates accessor is deprecated. Use date instead.",Po),Ho.months=et("months accessor is deprecated. Use month instead",J),Ho.years=et("years accessor is deprecated. Use year instead",_o),Ho.zone=et("moment().zone is deprecated, use moment().utcOffset instead. https://github.com/moment/moment/issues/1779",Ht);var Wo=Ho,Yo={sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},Go={LTS:"h:mm:ss A",LT:"h:mm A",L:"MM/DD/YYYY",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY h:mm A",LLLL:"dddd, MMMM D, YYYY h:mm A"},Uo="Invalid date",Vo="%d",qo=/\d{1,2}/,Xo={future:"in %s",past:"%s ago",s:"a few seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},Zo=b.prototype;Zo._calendar=Yo,Zo.calendar=ti,Zo._longDateFormat=Go,Zo.longDateFormat=ei,Zo._invalidDate=Uo,Zo.invalidDate=ii,Zo._ordinal=Vo,Zo.ordinal=oi,Zo._ordinalParse=qo,Zo.preparse=ni,Zo.postformat=ni,Zo._relativeTime=Xo,Zo.relativeTime=si,Zo.pastFuture=ri,Zo.set=ai,Zo.months=q,Zo._months=fo,Zo.monthsShort=X,Zo._monthsShort=mo,Zo.monthsParse=Z,Zo.week=ut,Zo._week=xo,Zo.firstDayOfYear=pt,Zo.firstDayOfWeek=ct,Zo.weekdays=Fe,Zo._weekdays=Io,Zo.weekdaysMin=je,Zo._weekdaysMin=zo,Zo.weekdaysShort=Re,Zo._weekdaysShort=No,Zo.weekdaysParse=He,Zo.isPM=qe,Zo._meridiemParse=Lo,Zo.meridiem=Xe,k("en",{ordinalParse:/\d{1,2}(th|st|nd|rd)/,ordinal:function(t){var e=t%10,i=1===g(t%100/10)?"th":1===e?"st":2===e?"nd":3===e?"rd":"th";return t+i}}),e.lang=et("moment.lang is deprecated. Use moment.locale instead.",k),e.langData=et("moment.langData is deprecated. Use moment.localeData instead.",M);var Ko=Math.abs,Jo=Mi("ms"),Qo=Mi("s"),$o=Mi("m"),tn=Mi("h"),en=Mi("d"),on=Mi("w"),nn=Mi("M"),sn=Mi("y"),rn=Ci("milliseconds"),an=Ci("seconds"),hn=Ci("minutes"),dn=Ci("hours"),ln=Ci("days"),un=Ci("months"),cn=Ci("years"),pn=Math.round,fn={s:45,m:45,h:22,d:26,M:11},mn=Math.abs,vn=zt.prototype;vn.abs=mi,vn.add=gi,vn.subtract=yi,vn.as=ki,vn.asMilliseconds=Jo,vn.asSeconds=Qo,vn.asMinutes=$o,vn.asHours=tn,vn.asDays=en,vn.asWeeks=on,vn.asMonths=nn,vn.asYears=sn,vn.valueOf=Oi,vn._bubble=wi,vn.get=Di,vn.milliseconds=rn,vn.seconds=an,vn.minutes=hn,vn.hours=dn,vn.days=ln,vn.weeks=Ti,vn.months=un,vn.years=cn,vn.humanize=Ii,vn.toISOString=Ni,vn.toString=Ni,vn.toJSON=Ni,vn.locale=ye,vn.localeData=be,vn.toIsoString=et("toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)",Ni),vn.lang=Eo,z("X",0,0,"unix"),z("x",0,0,"valueOf"),j("x",to),j("X",io),Y("X",function(t,e,i){i._d=new Date(1e3*parseFloat(t,10))}),Y("x",function(t,e,i){i._d=new Date(g(t))}),e.version="2.10.6",i(Et),e.fn=Wo,e.min=It,e.max=Nt,e.utc=h,e.unix=Qe,e.months=li,e.isDate=n,e.locale=k,e.invalid=c,e.duration=Jt,e.isMoment=m,e.weekdays=ci,e.parseZone=$e,e.localeData=M,e.isDuration=Lt,e.monthsShort=ui,e.weekdaysMin=fi,e.defineLocale=O,e.weekdaysShort=pi,e.normalizeUnits=C,e.relativeTimeThreshold=Pi;var gn=e;return gn})}).call(e,i(4)(t))},function(t,e){t.exports=function(t){return t.webpackPolyfill||(t.deprecate=function(){},t.paths=[],t.children=[],t.webpackPolyfill=1),t}},function(t,e){function i(t){throw new Error("Cannot find module '"+t+"'.")}i.keys=function(){return[]},i.resolve=i,t.exports=i,i.id=5},function(t,e){(function(e){function i(t,e,i){var o=e&&i||0,n=0;for(e=e||[],t.toLowerCase().replace(/[0-9a-f]{2}/g,function(t){16>n&&(e[o+n++]=u[t])});16>n;)e[o+n++]=0;return e}function o(t,e){var i=e||0,o=l;return o[t[i++]]+o[t[i++]]+o[t[i++]]+o[t[i++]]+"-"+o[t[i++]]+o[t[i++]]+"-"+o[t[i++]]+o[t[i++]]+"-"+o[t[i++]]+o[t[i++]]+"-"+o[t[i++]]+o[t[i++]]+o[t[i++]]+o[t[i++]]+o[t[i++]]+o[t[i++]]}function n(t,e,i){var n=e&&i||0,s=e||[];t=t||{};var r=void 0!==t.clockseq?t.clockseq:m,a=void 0!==t.msecs?t.msecs:(new Date).getTime(),h=void 0!==t.nsecs?t.nsecs:g+1,d=a-v+(h-g)/1e4;if(0>d&&void 0===t.clockseq&&(r=r+1&16383),(0>d||a>v)&&void 0===t.nsecs&&(h=0),h>=1e4)throw new Error("uuid.v1(): Can't create more than 10M uuids/sec");v=a,g=h,m=r,a+=122192928e5;var l=(1e4*(268435455&a)+h)%4294967296;s[n++]=l>>>24&255,s[n++]=l>>>16&255,s[n++]=l>>>8&255,s[n++]=255&l;var u=a/4294967296*1e4&268435455;s[n++]=u>>>8&255,s[n++]=255&u,s[n++]=u>>>24&15|16,s[n++]=u>>>16&255,s[n++]=r>>>8|128,s[n++]=255&r;for(var c=t.node||f,p=0;6>p;p++)s[n+p]=c[p];return e?e:o(s)}function s(t,e,i){var n=e&&i||0;"string"==typeof t&&(e="binary"==t?new Array(16):null,t=null),t=t||{};var s=t.random||(t.rng||r)();if(s[6]=15&s[6]|64,s[8]=63&s[8]|128,e)for(var a=0;16>a;a++)e[n+a]=s[a];return e||o(s)}var r,a="undefined"!=typeof window?window:"undefined"!=typeof e?e:null;if(a&&a.crypto&&crypto.getRandomValues){var h=new Uint8Array(16);r=function(){return crypto.getRandomValues(h),h}}if(!r){var d=new Array(16);r=function(){for(var t,e=0;16>e;e++)0===(3&e)&&(t=4294967296*Math.random()),d[e]=t>>>((3&e)<<3)&255;return d}}for(var l=[],u={},c=0;256>c;c++)l[c]=(c+256).toString(16).substr(1),u[l[c]]=c;var p=r(),f=[1|p[0],p[1],p[2],p[3],p[4],p[5]],m=16383&(p[6]<<8|p[7]),v=0,g=0,y=s;y.v1=n,y.v4=s,y.parse=i,y.unparse=o,t.exports=y}).call(e,function(){return this}())},function(t,e){e.prepareElements=function(t){for(var e in t)t.hasOwnProperty(e)&&(t[e].redundant=t[e].used,t[e].used=[])},e.cleanupElements=function(t){for(var e in t)if(t.hasOwnProperty(e)&&t[e].redundant){for(var i=0;i<t[e].redundant.length;i++)t[e].redundant[i].parentNode.removeChild(t[e].redundant[i]);t[e].redundant=[]}},e.resetElements=function(t){e.prepareElements(t),e.cleanupElements(t),e.prepareElements(t)},e.getSVGElement=function(t,e,i){var o;return e.hasOwnProperty(t)?e[t].redundant.length>0?(o=e[t].redundant[0],e[t].redundant.shift()):(o=document.createElementNS("http://www.w3.org/2000/svg",t),i.appendChild(o)):(o=document.createElementNS("http://www.w3.org/2000/svg",t),e[t]={used:[],redundant:[]},i.appendChild(o)),e[t].used.push(o),o},e.getDOMElement=function(t,e,i,o){var n;return e.hasOwnProperty(t)?e[t].redundant.length>0?(n=e[t].redundant[0],e[t].redundant.shift()):(n=document.createElement(t),void 0!==o?i.insertBefore(n,o):i.appendChild(n)):(n=document.createElement(t),e[t]={used:[],redundant:[]},void 0!==o?i.insertBefore(n,o):i.appendChild(n)),e[t].used.push(n),n},e.drawPoint=function(t,i,o,n,s,r){var a;if("circle"==o.style?(a=e.getSVGElement("circle",n,s),a.setAttributeNS(null,"cx",t),a.setAttributeNS(null,"cy",i),a.setAttributeNS(null,"r",.5*o.size)):(a=e.getSVGElement("rect",n,s),a.setAttributeNS(null,"x",t-.5*o.size),a.setAttributeNS(null,"y",i-.5*o.size),a.setAttributeNS(null,"width",o.size),a.setAttributeNS(null,"height",o.size)),void 0!==o.styles&&a.setAttributeNS(null,"style",o.styles),a.setAttributeNS(null,"class",o.className+" vis-point"),r){var h=e.getSVGElement("text",n,s);r.xOffset&&(t+=r.xOffset),r.yOffset&&(i+=r.yOffset),r.content&&(h.textContent=r.content),r.className&&h.setAttributeNS(null,"class",r.className+" vis-label"),h.setAttributeNS(null,"x",t),h.setAttributeNS(null,"y",i)}return a},e.drawBar=function(t,i,o,n,s,r,a,h){if(0!=n){0>n&&(n*=-1,i-=n);var d=e.getSVGElement("rect",r,a);d.setAttributeNS(null,"x",t-.5*o),d.setAttributeNS(null,"y",i),d.setAttributeNS(null,"width",o),d.setAttributeNS(null,"height",n),d.setAttributeNS(null,"class",s),h&&d.setAttributeNS(null,"style",h)}}},function(t,e,i){function o(t,e){if(t&&!Array.isArray(t)&&(e=t,t=null),this._options=e||{},this._data={},this.length=0,this._fieldId=this._options.fieldId||"id",this._type={},this._options.type)for(var i=Object.keys(this._options.type),o=0,n=i.length;n>o;o++){var s=i[o],r=this._options.type[s];"Date"==r||"ISODate"==r||"ASPDate"==r?this._type[s]="Date":this._type[s]=r}if(this._options.convert)throw new Error('Option "convert" is deprecated. Use "type" instead.');this._subscribers={},t&&this.add(t),this.setOptions(e)}var n=i(1),s=i(9);o.prototype.setOptions=function(t){t&&void 0!==t.queue&&(t.queue===!1?this._queue&&(this._queue.destroy(),delete this._queue):(this._queue||(this._queue=s.extend(this,{replace:["add","update","remove"]})),"object"==typeof t.queue&&this._queue.setOptions(t.queue)))},o.prototype.on=function(t,e){var i=this._subscribers[t];i||(i=[],this._subscribers[t]=i),i.push({callback:e})},o.prototype.subscribe=function(){throw new Error("DataSet.subscribe is deprecated. Use DataSet.on instead.")},o.prototype.off=function(t,e){var i=this._subscribers[t];i&&(this._subscribers[t]=i.filter(function(t){return t.callback!=e}))},o.prototype.unsubscribe=function(){throw new Error("DataSet.unsubscribe is deprecated. Use DataSet.off instead.")},o.prototype._trigger=function(t,e,i){if("*"==t)throw new Error("Cannot trigger event *");var o=[];t in this._subscribers&&(o=o.concat(this._subscribers[t])),"*"in this._subscribers&&(o=o.concat(this._subscribers["*"]));for(var n=0,s=o.length;s>n;n++){var r=o[n];r.callback&&r.callback(t,e,i||null)}},o.prototype.add=function(t,e){var i,o=[],n=this;if(Array.isArray(t))for(var s=0,r=t.length;r>s;s++)i=n._addItem(t[s]),o.push(i);else{if(!(t instanceof Object))throw new Error("Unknown dataType");i=n._addItem(t),o.push(i)}return o.length&&this._trigger("add",{items:o},e),o},o.prototype.update=function(t,e){var i=[],o=[],s=[],r=[],a=this,h=a._fieldId,d=function(t){var e=t[h];if(a._data[e]){var d=n.extend({},a._data[e]);e=a._updateItem(t),o.push(e),r.push(t),s.push(d)}else e=a._addItem(t),i.push(e)};if(Array.isArray(t))for(var l=0,u=t.length;u>l;l++)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:s,data:r};this._trigger("update",c,e)}return i.concat(o)},o.prototype.get=function(t){var e,i,o,s=this,r=n.getType(arguments[0]);"String"==r||"Number"==r?(e=arguments[0],o=arguments[1]):"Array"==r?(i=arguments[0],o=arguments[1]):o=arguments[0];var a;if(o&&o.returnType){var h=["Array","Object"];a=-1==h.indexOf(o.returnType)?"Array":o.returnType}else a="Array";var d,l,u,c,p,f=o&&o.type||this._options.type,m=o&&o.filter,v=[];if(void 0!=e)d=s._getItem(e,f),d&&m&&!m(d)&&(d=null);else if(void 0!=i)for(c=0,p=i.length;p>c;c++)d=s._getItem(i[c],f),(!m||m(d))&&v.push(d);else for(l=Object.keys(this._data),c=0,p=l.length;p>c;c++)u=l[c],d=s._getItem(u,f),(!m||m(d))&&v.push(d);if(o&&o.order&&void 0==e&&this._sort(v,o.order),o&&o.fields){var g=o.fields;if(void 0!=e)d=this._filterFields(d,g);else for(c=0,p=v.length;p>c;c++)v[c]=this._filterFields(v[c],g)}if("Object"==a){var y,b={};for(c=0,p=v.length;p>c;c++)y=v[c],b[y.id]=y;return b}return void 0!=e?d:v},o.prototype.getIds=function(t){var e,i,o,n,s,r=this._data,a=t&&t.filter,h=t&&t.order,d=t&&t.type||this._options.type,l=Object.keys(r),u=[];if(a)if(h){for(s=[],e=0,i=l.length;i>e;e++)o=l[e],n=this._getItem(o,d),a(n)&&s.push(n);for(this._sort(s,h),e=0,i=s.length;i>e;e++)u.push(s[e][this._fieldId])}else for(e=0,i=l.length;i>e;e++)o=l[e],n=this._getItem(o,d),a(n)&&u.push(n[this._fieldId]);else if(h){for(s=[],e=0,i=l.length;i>e;e++)o=l[e],s.push(r[o]);for(this._sort(s,h),e=0,i=s.length;i>e;e++)u.push(s[e][this._fieldId])}else for(e=0,i=l.length;i>e;e++)o=l[e],n=r[o],u.push(n[this._fieldId]);return u},o.prototype.getDataSet=function(){return this},o.prototype.forEach=function(t,e){var i,o,n,s,r=e&&e.filter,a=e&&e.type||this._options.type,h=this._data,d=Object.keys(h);if(e&&e.order){var l=this.get(e);for(i=0,o=l.length;o>i;i++)n=l[i],s=n[this._fieldId],t(n,s)}else for(i=0,o=d.length;o>i;i++)s=d[i],n=this._getItem(s,a),(!r||r(n))&&t(n,s)},o.prototype.map=function(t,e){var i,o,n,s,r=e&&e.filter,a=e&&e.type||this._options.type,h=[],d=this._data,l=Object.keys(d);for(i=0,o=l.length;o>i;i++)n=l[i],s=this._getItem(n,a),(!r||r(s))&&h.push(t(s,n));return e&&e.order&&this._sort(h,e.order),h},o.prototype._filterFields=function(t,e){if(!t)return t;var i,o,n={},s=Object.keys(t),r=s.length;if(Array.isArray(e))for(i=0;r>i;i++)o=s[i],-1!=e.indexOf(o)&&(n[o]=t[o]);else for(i=0;r>i;i++)o=s[i],e.hasOwnProperty(o)&&(n[e[o]]=t[o]);return n},o.prototype._sort=function(t,e){if(n.isString(e)){var i=e;t.sort(function(t,e){var o=t[i],n=e[i];return o>n?1:n>o?-1:0})}else{if("function"!=typeof e)throw new TypeError("Order must be a function or a string");t.sort(e)}},o.prototype.remove=function(t,e){var i,o,n,s=[];if(Array.isArray(t))for(i=0,o=t.length;o>i;i++)n=this._remove(t[i]),null!=n&&s.push(n);else n=this._remove(t),null!=n&&s.push(n);return s.length&&this._trigger("remove",{items:s},e),s},o.prototype._remove=function(t){if(n.isNumber(t)||n.isString(t)){if(this._data[t])return delete this._data[t],this.length--,t}else if(t instanceof Object){var e=t[this._fieldId];if(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,s=this._data,r=Object.keys(s),a=[],h=this._options.type&&this._options.type[t]||null,d=0;for(e=0,o=r.length;o>e;e++){var l=r[e],u=s[l],c=u[t],p=!1;for(i=0;d>i;i++)if(a[i]==c){p=!0;break}p||void 0===c||(a[d]=c,d++)}if(h)for(e=0,o=a.length;o>e;e++)a[e]=n.convert(a[e],h);return a},o.prototype._addItem=function(t){var e=t[this._fieldId];if(void 0!=e){if(this._data[e])throw new Error("Cannot add item: item with id "+e+" already exists")}else e=n.randomUUID(),t[this._fieldId]=e;var i,o,s={},r=Object.keys(t);for(i=0,o=r.length;o>i;i++){var a=r[i],h=this._type[a];s[a]=n.convert(t[a],h)}return this._data[e]=s,this.length++,e},o.prototype._getItem=function(t,e){var i,o,s,r,a=this._data[t];if(!a)return null;var h={},d=Object.keys(a);if(e)for(s=0,r=d.length;r>s;s++)i=d[s],o=a[i],h[i]=n.convert(o,e[i]);else for(s=0,r=d.length;r>s;s++)i=d[s],o=a[i],h[i]=o;return h},o.prototype._updateItem=function(t){var e=t[this._fieldId];if(void 0==e)throw new Error("Cannot update item: item has no id (item: "+JSON.stringify(t)+")");var i=this._data[e];if(!i)throw new Error("Cannot update item: no item with id "+e+" found");for(var o=Object.keys(t),s=0,r=o.length;r>s;s++){var a=o[s],h=this._type[a];i[a]=n.convert(t[a],h)}return e},t.exports=o},function(t,e){function i(t){this.delay=null,this.max=1/0,this._queue=[],this._timeout=null,this._extended=null,this.setOptions(t)}i.prototype.setOptions=function(t){t&&"undefined"!=typeof t.delay&&(this.delay=t.delay),t&&"undefined"!=typeof t.max&&(this.max=t.max),this._flushIfNeeded()},i.extend=function(t,e){var o=new i(e);if(void 0!==t.flush)throw new Error("Target object already has a property flush");t.flush=function(){o.flush()};var n=[{name:"flush",original:void 0}];if(e&&e.replace)for(var s=0;s<e.replace.length;s++){var r=e.replace[s];n.push({name:r,original:t[r]}),o.replace(t,r)}return o._extended={object:t,methods:n},o},i.prototype.destroy=function(){if(this.flush(),this._extended){for(var t=this._extended.object,e=this._extended.methods,i=0;i<e.length;i++){var o=e[i];o.original?t[o.name]=o.original:delete t[o.name]}this._extended=null}},i.prototype.replace=function(t,e){var i=this,o=t[e];if(!o)throw new Error("Method "+e+" undefined");t[e]=function(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];i.queue({args:t,fn:o,context:this})}},i.prototype.queue=function(t){"function"==typeof t?this._queue.push({fn:t}):this._queue.push(t),this._flushIfNeeded()},i.prototype._flushIfNeeded=function(){if(this._queue.length>this.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,e,i){if(!(this instanceof o))throw new SyntaxError("Constructor must be called with the new operator");this.containerElement=t,this.width="400px",this.height="400px",this.margin=10,this.defaultXCenter="55%",this.defaultYCenter="50%",this.xLabel="x",this.yLabel="y",this.zLabel="z";var n=function(t){return t};this.xValueLabel=n,this.yValueLabel=n,this.zValueLabel=n,this.filterLabel="time",this.legendLabel="value",this.style=o.STYLE.DOT,this.showPerspective=!0,this.showGrid=!0,this.keepAspectRatio=!0,this.showShadow=!1,this.showGrayBottom=!1,this.showTooltip=!1,this.verticalRatio=.5,this.animationInterval=1e3,this.animationPreload=!1,this.camera=new c,this.camera.setArmRotation(1,.5),this.camera.setArmLength(1.7),this.eye=new l(0,0,-1),this.dataTable=null,this.dataPoints=null,this.colX=void 0,this.colY=void 0,this.colZ=void 0,this.colValue=void 0,this.colFilter=void 0,this.xMin=0,this.xStep=void 0,this.xMax=1,this.yMin=0,this.yStep=void 0,this.yMax=1,this.zMin=0,this.zStep=void 0,this.zMax=1,this.valueMin=0,this.valueMax=1,this.xBarWidth=1,this.yBarWidth=1,this.axisColor="#4D4D4D",this.gridColor="#D3D3D3",this.dataColor={fill:"#7DC1FF",stroke:"#3267D2",strokeWidth:1},this.create(),this.setOptions(i),e&&this.setData(e)}function n(t){return"clientX"in t?t.clientX:t.targetTouches[0]&&t.targetTouches[0].clientX||0}function s(t){return"clientY"in t?t.clientY:t.targetTouches[0]&&t.targetTouches[0].clientY||0}var r=i(12),a=i(8),h=i(10),d=i(1),l=i(13),u=i(14),c=i(15),p=i(16),f=i(17),m=i(18);r(o.prototype),o.prototype._setScale=function(){this.scale=new l(1/(this.xMax-this.xMin),1/(this.yMax-this.yMin),1/(this.zMax-this.zMin)),this.keepAspectRatio&&(this.scale.x<this.scale.y?this.scale.y=this.scale.x:this.scale.x=this.scale.y),this.scale.z*=this.verticalRatio,this.scale.value=1/(this.valueMax-this.valueMin);var t=(this.xMax+this.xMin)/2*this.scale.x,e=(this.yMax+this.yMin)/2*this.scale.y,i=(this.zMax+this.zMin)/2*this.scale.z;this.camera.setArmLocation(t,e,i)},o.prototype._convert3Dto2D=function(t){var e=this._convertPointToTranslation(t);return this._convertTranslationToScreen(e)},o.prototype._convertPointToTranslation=function(t){var e=t.x*this.scale.x,i=t.y*this.scale.y,o=t.z*this.scale.z,n=this.camera.getCameraLocation().x,s=this.camera.getCameraLocation().y,r=this.camera.getCameraLocation().z,a=Math.sin(this.camera.getCameraRotation().x),h=Math.cos(this.camera.getCameraRotation().x),d=Math.sin(this.camera.getCameraRotation().y),u=Math.cos(this.camera.getCameraRotation().y),c=Math.sin(this.camera.getCameraRotation().z),p=Math.cos(this.camera.getCameraRotation().z),f=u*(c*(i-s)+p*(e-n))-d*(o-r),m=a*(u*(o-r)+d*(c*(i-s)+p*(e-n)))+h*(p*(i-s)-c*(e-n)),v=h*(u*(o-r)+d*(c*(i-s)+p*(e-n)))-a*(p*(i-s)-c*(e-n));return new l(f,m,v)},o.prototype._convertTranslationToScreen=function(t){var e,i,o=this.eye.x,n=this.eye.y,s=this.eye.z,r=t.x,a=t.y,h=t.z;return this.showPerspective?(e=(r-o)*(s/h),i=(a-n)*(s/h)):(e=r*-(s/this.camera.getArmLength()),i=a*-(s/this.camera.getArmLength())),new u(this.xcenter+e*this.frame.canvas.clientWidth,this.ycenter-i*this.frame.canvas.clientWidth)},o.prototype._setBackgroundColor=function(t){var e="white",i="gray",o=1;if("string"==typeof t)e=t,i="none",o=0;else if("object"==typeof t)void 0!==t.fill&&(e=t.fill),void 0!==t.stroke&&(i=t.stroke),void 0!==t.strokeWidth&&(o=t.strokeWidth);else if(void 0!==t)throw"Unsupported type of backgroundColor";this.frame.style.backgroundColor=e,this.frame.style.borderColor=i,this.frame.style.borderWidth=o+"px",this.frame.style.borderStyle="solid"},o.STYLE={BAR:0,BARCOLOR:1,BARSIZE:2,DOT:3,DOTLINE:4,DOTCOLOR:5,DOTSIZE:6,GRID:7,LINE:8,SURFACE:9},o.prototype._getStyleNumber=function(t){switch(t){case"dot":return o.STYLE.DOT;case"dot-line":return o.STYLE.DOTLINE;case"dot-color":return o.STYLE.DOTCOLOR;case"dot-size":return o.STYLE.DOTSIZE;case"line":return o.STYLE.LINE;case"grid":return o.STYLE.GRID;case"surface":return o.STYLE.SURFACE;case"bar":return o.STYLE.BAR;case"bar-color":return o.STYLE.BARCOLOR;case"bar-size":return o.STYLE.BARSIZE}return-1},o.prototype._determineColumnIndexes=function(t,e){if(this.style===o.STYLE.DOT||this.style===o.STYLE.DOTLINE||this.style===o.STYLE.LINE||this.style===o.STYLE.GRID||this.style===o.STYLE.SURFACE||this.style===o.STYLE.BAR)this.colX=0,this.colY=1,this.colZ=2,this.colValue=void 0,t.getNumberOfColumns()>3&&(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;o<t.length;o++)-1==i.indexOf(t[o][e])&&i.push(t[o][e]);return i},o.prototype.getColumnRange=function(t,e){for(var i={min:t[0][e],max:t[0][e]},o=0;o<t.length;o++)i.min>t[o][e]&&(i.min=t[o][e]),i.max<t[o][e]&&(i.max=t[o][e]);return i},o.prototype._dataInitialize=function(t,e){var i=this;if(this.dataSet&&this.dataSet.off("*",this._onChange),void 0!==t){Array.isArray(t)&&(t=new a(t));var n;if(!(t instanceof a||t instanceof h))throw new Error("Array, DataSet, or DataView expected");if(n=t.get(),0!=n.length){this.dataSet=t,this.dataTable=n,this._onChange=function(){i.setData(i.dataSet)},this.dataSet.on("*",this._onChange),this.colX="x",this.colY="y",this.colZ="z",this.colValue="style",this.colFilter="filter",n[0].hasOwnProperty("filter")&&void 0===this.dataFilter&&(this.dataFilter=new p(t,this.colFilter,this),this.dataFilter.setOnLoadCallback(function(){i.redraw()}));var s=this.style==o.STYLE.BAR||this.style==o.STYLE.BARCOLOR||this.style==o.STYLE.BARSIZE;if(s){if(void 0!==this.defaultXBarWidth)this.xBarWidth=this.defaultXBarWidth;else{var r=this.getDistinctValues(n,this.colX);this.xBarWidth=r[1]-r[0]||1}if(void 0!==this.defaultYBarWidth)this.yBarWidth=this.defaultYBarWidth;else{var d=this.getDistinctValues(n,this.colY);this.yBarWidth=d[1]-d[0]||1}}var l=this.getColumnRange(n,this.colX);s&&(l.min-=this.xBarWidth/2,l.max+=this.xBarWidth/2),this.xMin=void 0!==this.defaultXMin?this.defaultXMin:l.min,this.xMax=void 0!==this.defaultXMax?this.defaultXMax:l.max,this.xMax<=this.xMin&&(this.xMax=this.xMin+1),this.xStep=void 0!==this.defaultXStep?this.defaultXStep:(this.xMax-this.xMin)/5;var u=this.getColumnRange(n,this.colY);s&&(u.min-=this.yBarWidth/2,u.max+=this.yBarWidth/2),this.yMin=void 0!==this.defaultYMin?this.defaultYMin:u.min,this.yMax=void 0!==this.defaultYMax?this.defaultYMax:u.max,this.yMax<=this.yMin&&(this.yMax=this.yMin+1),this.yStep=void 0!==this.defaultYStep?this.defaultYStep:(this.yMax-this.yMin)/5;var c=this.getColumnRange(n,this.colZ);if(this.zMin=void 0!==this.defaultZMin?this.defaultZMin:c.min,this.zMax=void 0!==this.defaultZMax?this.defaultZMax:c.max,this.zMax<=this.zMin&&(this.zMax=this.zMin+1),this.zStep=void 0!==this.defaultZStep?this.defaultZStep:(this.zMax-this.zMin)/5,void 0!==this.colValue){var f=this.getColumnRange(n,this.colValue);this.valueMin=void 0!==this.defaultValueMin?this.defaultValueMin:f.min,this.valueMax=void 0!==this.defaultValueMax?this.defaultValueMax:f.max,this.valueMax<=this.valueMin&&(this.valueMax=this.valueMin+1)}this._setScale()}}},o.prototype._getDataPoints=function(t){var e,i,n,s,r,a,h=[];if(this.style===o.STYLE.GRID||this.style===o.STYLE.SURFACE){var d=[],u=[];for(n=0;n<this.getNumberOfRows(t);n++)e=t[n][this.colX]||0,i=t[n][this.colY]||0,-1===d.indexOf(e)&&d.push(e),-1===u.indexOf(i)&&u.push(i);var c=function(t,e){return t-e};d.sort(c),u.sort(c);var p=[];for(n=0;n<t.length;n++){e=t[n][this.colX]||0,i=t[n][this.colY]||0,s=t[n][this.colZ]||0;var f=d.indexOf(e),m=u.indexOf(i);void 0===p[f]&&(p[f]=[]);var v=new l;v.x=e,v.y=i,v.z=s,r={},r.point=v,r.trans=void 0,r.screen=void 0,r.bottom=new l(e,i,this.zMin),p[f][m]=r,h.push(r)}for(e=0;e<p.length;e++)for(i=0;i<p[e].length;i++)p[e][i]&&(p[e][i].pointRight=e<p.length-1?p[e+1][i]:void 0,p[e][i].pointTop=i<p[e].length-1?p[e][i+1]:void 0,p[e][i].pointCross=e<p.length-1&&i<p[e].length-1?p[e+1][i+1]:void 0)}else for(n=0;n<t.length;n++)a=new l,a.x=t[n][this.colX]||0,a.y=t[n][this.colY]||0,a.z=t[n][this.colZ]||0,void 0!==this.colValue&&(a.value=t[n][this.colValue]||0),r={},r.point=a,r.bottom=new l(a.x,a.y,this.zMin),r.trans=void 0,r.screen=void 0,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"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.defaultXCenter.charAt(this.defaultXCenter.length-1)?this.xcenter=parseFloat(this.defaultXCenter)/100*this.frame.canvas.clientWidth:this.xcenter=parseFloat(this.defaultXCenter),"%"===this.defaultYCenter.charAt(this.defaultYCenter.length-1)?this.ycenter=parseFloat(this.defaultYCenter)/100*(this.frame.canvas.clientHeight-this.frame.filter.clientHeight):this.ycenter=parseFloat(this.defaultYCenter)},o.prototype.setCameraPosition=function(t){void 0!==t&&(void 0!==t.horizontal&&void 0!==t.vertical&&this.camera.setArmRotation(t.horizontal,t.vertical),void 0!==t.distance&&this.camera.setArmLength(t.distance),this.redraw())},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){var e=void 0;if(this.animationStop(),void 0!==t){if(void 0!==t.width&&(this.width=t.width),void 0!==t.height&&(this.height=t.height),void 0!==t.xCenter&&(this.defaultXCenter=t.xCenter),void 0!==t.yCenter&&(this.defaultYCenter=t.yCenter),void 0!==t.filterLabel&&(this.filterLabel=t.filterLabel),void 0!==t.legendLabel&&(this.legendLabel=t.legendLabel),void 0!==t.xLabel&&(this.xLabel=t.xLabel),void 0!==t.yLabel&&(this.yLabel=t.yLabel),void 0!==t.zLabel&&(this.zLabel=t.zLabel),void 0!==t.xValueLabel&&(this.xValueLabel=t.xValueLabel),void 0!==t.yValueLabel&&(this.yValueLabel=t.yValueLabel),void 0!==t.zValueLabel&&(this.zValueLabel=t.zValueLabel),void 0!==t.style){var i=this._getStyleNumber(t.style);-1!==i&&(this.style=i)}void 0!==t.showGrid&&(this.showGrid=t.showGrid),void 0!==t.showPerspective&&(this.showPerspective=t.showPerspective),void 0!==t.showShadow&&(this.showShadow=t.showShadow),void 0!==t.tooltip&&(this.showTooltip=t.tooltip),void 0!==t.showAnimationControls&&(this.showAnimationControls=t.showAnimationControls),void 0!==t.keepAspectRatio&&(this.keepAspectRatio=t.keepAspectRatio),void 0!==t.verticalRatio&&(this.verticalRatio=t.verticalRatio),void 0!==t.animationInterval&&(this.animationInterval=t.animationInterval),void 0!==t.animationPreload&&(this.animationPreload=t.animationPreload),void 0!==t.animationAutoStart&&(this.animationAutoStart=t.animationAutoStart),void 0!==t.xBarWidth&&(this.defaultXBarWidth=t.xBarWidth),void 0!==t.yBarWidth&&(this.defaultYBarWidth=t.yBarWidth),void 0!==t.xMin&&(this.defaultXMin=t.xMin),void 0!==t.xStep&&(this.defaultXStep=t.xStep),void 0!==t.xMax&&(this.defaultXMax=t.xMax),void 0!==t.yMin&&(this.defaultYMin=t.yMin),void 0!==t.yStep&&(this.defaultYStep=t.yStep),void 0!==t.yMax&&(this.defaultYMax=t.yMax),void 0!==t.zMin&&(this.defaultZMin=t.zMin),void 0!==t.zStep&&(this.defaultZStep=t.zStep),void 0!==t.zMax&&(this.defaultZMax=t.zMax),void 0!==t.valueMin&&(this.defaultValueMin=t.valueMin),void 0!==t.valueMax&&(this.defaultValueMax=t.valueMax),void 0!==t.backgroundColor&&this._setBackgroundColor(t.backgroundColor),void 0!==t.cameraPosition&&(e=t.cameraPosition),void 0!==e&&(this.camera.setArmRotation(e.horizontal,e.vertical),this.camera.setArmLength(e.distance)),void 0!==t.axisColor&&(this.axisColor=t.axisColor),void 0!==t.gridColor&&(this.gridColor=t.gridColor),t.dataColor&&("string"==typeof t.dataColor?(this.dataColor.fill=t.dataColor,this.dataColor.stroke=t.dataColor):(t.dataColor.fill&&(this.dataColor.fill=t.dataColor.fill),t.dataColor.stroke&&(this.dataColor.stroke=t.dataColor.stroke),void 0!==t.dataColor.strokeWidth&&(this.dataColor.strokeWidth=t.dataColor.strokeWidth)))}this.setSize(this.width,this.height),this.dataTable&&this.setData(this.dataTable),this.animationAutoStart&&this.dataFilter&&this.animationStart()},o.prototype.redraw=function(){if(void 0===this.dataPoints)throw"Error: graph data not initialized";this._resizeCanvas(),this._resizeCenter(),this._redrawSlider(),this._redrawClear(),this._redrawAxis(),this.style===o.STYLE.GRID||this.style===o.STYLE.SURFACE?this._redrawDataGrid():this.style===o.STYLE.LINE?this._redrawDataLine():this.style===o.STYLE.BAR||this.style===o.STYLE.BARCOLOR||this.style===o.STYLE.BARSIZE?this._redrawDataBar():this._redrawDataDot(),this._redrawInfo(),this._redrawLegend()},o.prototype._redrawClear=function(){var t=this.frame.canvas,e=t.getContext("2d");e.clearRect(0,0,t.width,t.height)},o.prototype._redrawLegend=function(){var t;if(this.style===o.STYLE.DOTCOLOR||this.style===o.STYLE.DOTSIZE){var e,i,n=.02*this.frame.clientWidth;this.style===o.STYLE.DOTSIZE?(e=n/2,i=n/2+2*n):(e=20,i=20);var s=Math.max(.25*this.frame.clientHeight,100),r=this.margin,a=this.frame.clientWidth-this.margin,h=a-i,d=r+s}var l=this.frame.canvas,u=l.getContext("2d");if(u.lineWidth=1,u.font="14px arial",this.style===o.STYLE.DOTCOLOR){var c=0,p=s;for(t=c;p>t;t++){var f=(t-c)/(p-c),v=240*f,g=this._hsv2rgb(v,1,1);u.strokeStyle=g,u.beginPath(),u.moveTo(h,r+t),u.lineTo(a,r+t),u.stroke()}u.strokeStyle=this.axisColor,u.strokeRect(h,r,i,s)}if(this.style===o.STYLE.DOTSIZE&&(u.strokeStyle=this.axisColor,u.fillStyle=this.dataColor.fill,u.beginPath(),u.moveTo(h,r),u.lineTo(a,r),u.lineTo(a-i+e,d),u.lineTo(h,d),u.closePath(),u.fill(),u.stroke()),this.style===o.STYLE.DOTCOLOR||this.style===o.STYLE.DOTSIZE){var y=5,b=new m(this.valueMin,this.valueMax,(this.valueMax-this.valueMin)/5,!0);for(b.start(),b.getCurrent()<this.valueMin&&b.next();!b.end();)t=d-(b.getCurrent()-this.valueMin)/(this.valueMax-this.valueMin)*s,u.beginPath(),u.moveTo(h-y,t),u.lineTo(h,t),u.stroke(),u.textAlign="right",u.textBaseline="middle",u.fillStyle=this.axisColor,u.fillText(b.getCurrent(),h-2*y,t),b.next();u.textAlign="right",u.textBaseline="top";var w=this.legendLabel;u.fillText(w,a,d+this.margin)}},o.prototype._redrawFilter=function(){if(this.frame.filter.innerHTML="",this.dataFilter){var t={visible:this.showAnimationControls},e=new f(this.frame.filter,t);this.frame.filter.slider=e,this.frame.filter.style.padding="10px",e.setValues(this.dataFilter.values),e.setPlayInterval(this.animationInterval);var i=this,o=function(){var t=e.getIndex();i.dataFilter.selectValue(t),i.dataPoints=i.dataFilter._getDataPoints(),i.redraw()};e.setOnChangeCallback(o)}else this.frame.filter.slider=void 0},o.prototype._redrawSlider=function(){void 0!==this.frame.filter.slider&&this.frame.filter.slider.redraw()},o.prototype._redrawInfo=function(){if(this.dataFilter){var t=this.frame.canvas,e=t.getContext("2d");e.font="14px arial",e.lineStyle="gray",e.fillStyle="gray",e.textAlign="left",e.textBaseline="top";var i=this.margin,o=this.margin;e.fillText(this.dataFilter.getLabel()+": "+this.dataFilter.getSelectedValue(),i,o)}},o.prototype._redrawAxis=function(){var t,e,i,o,n,s,r,a,h,d,u,c,p,f=this.frame.canvas,v=f.getContext("2d");v.font=24/this.camera.getArmLength()+"px arial";var g=.025/this.scale.x,y=.025/this.scale.y,b=5/this.camera.getArmLength(),w=this.camera.getArmRotation().horizontal;for(v.lineWidth=1,o=void 0===this.defaultXStep,i=new m(this.xMin,this.xMax,this.xStep,o),i.start(),i.getCurrent()<this.xMin&&i.next();!i.end();){var _=i.getCurrent();this.showGrid?(t=this._convert3Dto2D(new l(_,this.yMin,this.zMin)),e=this._convert3Dto2D(new l(_,this.yMax,this.zMin)),v.strokeStyle=this.gridColor,v.beginPath(),v.moveTo(t.x,t.y),v.lineTo(e.x,e.y),v.stroke()):(t=this._convert3Dto2D(new l(_,this.yMin,this.zMin)),e=this._convert3Dto2D(new l(_,this.yMin+g,this.zMin)),v.strokeStyle=this.axisColor,v.beginPath(),v.moveTo(t.x,t.y),v.lineTo(e.x,e.y),v.stroke(),t=this._convert3Dto2D(new l(_,this.yMax,this.zMin)),e=this._convert3Dto2D(new l(_,this.yMax-g,this.zMin)),v.strokeStyle=this.axisColor,v.beginPath(),v.moveTo(t.x,t.y),v.lineTo(e.x,e.y),v.stroke()),r=Math.cos(w)>0?this.yMin:this.yMax,n=this._convert3Dto2D(new l(_,r,this.zMin)),Math.cos(2*w)>0?(v.textAlign="center",v.textBaseline="top",n.y+=b):Math.sin(2*w)<0?(v.textAlign="right",v.textBaseline="middle"):(v.textAlign="left",v.textBaseline="middle"),v.fillStyle=this.axisColor,v.fillText(" "+this.xValueLabel(i.getCurrent())+" ",n.x,n.y),i.next()}for(v.lineWidth=1,o=void 0===this.defaultYStep,i=new m(this.yMin,this.yMax,this.yStep,o),i.start(),i.getCurrent()<this.yMin&&i.next();!i.end();)this.showGrid?(t=this._convert3Dto2D(new l(this.xMin,i.getCurrent(),this.zMin)),e=this._convert3Dto2D(new l(this.xMax,i.getCurrent(),this.zMin)),v.strokeStyle=this.gridColor,v.beginPath(),v.moveTo(t.x,t.y),v.lineTo(e.x,e.y),v.stroke()):(t=this._convert3Dto2D(new l(this.xMin,i.getCurrent(),this.zMin)),e=this._convert3Dto2D(new l(this.xMin+y,i.getCurrent(),this.zMin)),v.strokeStyle=this.axisColor,v.beginPath(),v.moveTo(t.x,t.y),v.lineTo(e.x,e.y),v.stroke(),t=this._convert3Dto2D(new l(this.xMax,i.getCurrent(),this.zMin)),e=this._convert3Dto2D(new l(this.xMax-y,i.getCurrent(),this.zMin)),v.strokeStyle=this.axisColor,v.beginPath(),v.moveTo(t.x,t.y),v.lineTo(e.x,e.y),v.stroke()),s=Math.sin(w)>0?this.xMin:this.xMax,n=this._convert3Dto2D(new l(s,i.getCurrent(),this.zMin)),Math.cos(2*w)<0?(v.textAlign="center",v.textBaseline="top",n.y+=b):Math.sin(2*w)>0?(v.textAlign="right",v.textBaseline="middle"):(v.textAlign="left",v.textBaseline="middle"),v.fillStyle=this.axisColor,v.fillText(" "+this.yValueLabel(i.getCurrent())+" ",n.x,n.y),i.next();for(v.lineWidth=1,o=void 0===this.defaultZStep,i=new m(this.zMin,this.zMax,this.zStep,o),i.start(),i.getCurrent()<this.zMin&&i.next(),s=Math.cos(w)>0?this.xMin:this.xMax,r=Math.sin(w)<0?this.yMin:this.yMax;!i.end();)t=this._convert3Dto2D(new l(s,r,i.getCurrent())),v.strokeStyle=this.axisColor,v.beginPath(),v.moveTo(t.x,t.y),v.lineTo(t.x-b,t.y),v.stroke(),v.textAlign="right",v.textBaseline="middle",v.fillStyle=this.axisColor,v.fillText(this.zValueLabel(i.getCurrent())+" ",t.x-5,t.y),i.next();v.lineWidth=1,t=this._convert3Dto2D(new l(s,r,this.zMin)),e=this._convert3Dto2D(new l(s,r,this.zMax)),v.strokeStyle=this.axisColor,v.beginPath(),v.moveTo(t.x,t.y),v.lineTo(e.x,e.y),v.stroke(),v.lineWidth=1,c=this._convert3Dto2D(new l(this.xMin,this.yMin,this.zMin)),p=this._convert3Dto2D(new l(this.xMax,this.yMin,this.zMin)),v.strokeStyle=this.axisColor,v.beginPath(),v.moveTo(c.x,c.y),v.lineTo(p.x,p.y),v.stroke(),c=this._convert3Dto2D(new l(this.xMin,this.yMax,this.zMin)),p=this._convert3Dto2D(new l(this.xMax,this.yMax,this.zMin)),v.strokeStyle=this.axisColor,v.beginPath(),v.moveTo(c.x,c.y),v.lineTo(p.x,p.y),v.stroke(),v.lineWidth=1,t=this._convert3Dto2D(new l(this.xMin,this.yMin,this.zMin)),e=this._convert3Dto2D(new l(this.xMin,this.yMax,this.zMin)),v.strokeStyle=this.axisColor,v.beginPath(),v.moveTo(t.x,t.y),v.lineTo(e.x,e.y),v.stroke(),t=this._convert3Dto2D(new l(this.xMax,this.yMin,this.zMin)),e=this._convert3Dto2D(new l(this.xMax,this.yMax,this.zMin)),v.strokeStyle=this.axisColor,v.beginPath(),v.moveTo(t.x,t.y),v.lineTo(e.x,e.y),v.stroke();var x=this.xLabel;x.length>0&&(u=.1/this.scale.y,s=(this.xMin+this.xMax)/2,r=Math.cos(w)>0?this.yMin-u:this.yMax+u,n=this._convert3Dto2D(new l(s,r,this.zMin)),Math.cos(2*w)>0?(v.textAlign="center",v.textBaseline="top"):Math.sin(2*w)<0?(v.textAlign="right",v.textBaseline="middle"):(v.textAlign="left",v.textBaseline="middle"),v.fillStyle=this.axisColor,v.fillText(x,n.x,n.y));var k=this.yLabel;k.length>0&&(d=.1/this.scale.x,s=Math.sin(w)>0?this.xMin-d:this.xMax+d,r=(this.yMin+this.yMax)/2,n=this._convert3Dto2D(new l(s,r,this.zMin)),Math.cos(2*w)<0?(v.textAlign="center",v.textBaseline="top"):Math.sin(2*w)>0?(v.textAlign="right",v.textBaseline="middle"):(v.textAlign="left",v.textBaseline="middle"),v.fillStyle=this.axisColor,v.fillText(k,n.x,n.y));var O=this.zLabel;O.length>0&&(h=30,s=Math.cos(w)>0?this.xMin:this.xMax,r=Math.sin(w)<0?this.yMin:this.yMax,a=(this.zMin+this.zMax)/2,n=this._convert3Dto2D(new l(s,r,a)),v.textAlign="right",v.textBaseline="middle",v.fillStyle=this.axisColor,v.fillText(O,n.x-h,n.y))},o.prototype._hsv2rgb=function(t,e,i){var o,n,s,r,a,h;switch(r=i*e,a=Math.floor(t/60),h=r*(1-Math.abs(t/60%2-1)),a){case 0:o=r,n=h,s=0;break;case 1:o=h,n=r,s=0;break;case 2:o=0,n=r,s=h;break;case 3:o=0,n=h,s=r;break;case 4:o=h,n=0,s=r;break;case 5:o=r,n=0,s=h;break;default:o=0,n=0,s=0}return"RGB("+parseInt(255*o)+","+parseInt(255*n)+","+parseInt(255*s)+")"},o.prototype._redrawDataGrid=function(){var t,e,i,n,s,r,a,h,d,u,c,p,f=this.frame.canvas,m=f.getContext("2d");if(m.lineJoin="round",m.lineCap="round",!(void 0===this.dataPoints||this.dataPoints.length<=0)){for(s=0;s<this.dataPoints.length;s++){var v=this._convertPointToTranslation(this.dataPoints[s].point),g=this._convertTranslationToScreen(v);this.dataPoints[s].trans=v,this.dataPoints[s].screen=g;var y=this._convertPointToTranslation(this.dataPoints[s].bottom);this.dataPoints[s].dist=this.showPerspective?y.length():-y.z}var b=function(t,e){return e.dist-t.dist};if(this.dataPoints.sort(b),this.style===o.STYLE.SURFACE){for(s=0;s<this.dataPoints.length;s++)if(t=this.dataPoints[s],e=this.dataPoints[s].pointRight,i=this.dataPoints[s].pointTop,n=this.dataPoints[s].pointCross,void 0!==t&&void 0!==e&&void 0!==i&&void 0!==n){if(this.showGrayBottom||this.showShadow){var w=l.subtract(n.trans,t.trans),_=l.subtract(i.trans,e.trans),x=l.crossProduct(w,_),k=x.length();r=x.z>0}else r=!0;r?(p=(t.point.z+e.point.z+i.point.z+n.point.z)/4,d=240*(1-(p-this.zMin)*this.scale.z/this.verticalRatio),u=1,this.showShadow?(c=Math.min(1+x.x/k/2,1),a=this._hsv2rgb(d,u,c),h=a):(c=1,a=this._hsv2rgb(d,u,c),h=this.axisColor)):(a="gray",h=this.axisColor),m.lineWidth=this._getStrokeWidth(t),m.fillStyle=a,m.strokeStyle=h,m.beginPath(),m.moveTo(t.screen.x,t.screen.y),m.lineTo(e.screen.x,e.screen.y),m.lineTo(n.screen.x,n.screen.y),m.lineTo(i.screen.x,i.screen.y),m.closePath(),m.fill(),m.stroke()}}else for(s=0;s<this.dataPoints.length;s++)t=this.dataPoints[s],e=this.dataPoints[s].pointRight,i=this.dataPoints[s].pointTop,void 0!==t&&void 0!==e&&(p=(t.point.z+e.point.z)/2,d=240*(1-(p-this.zMin)*this.scale.z/this.verticalRatio),m.lineWidth=2*this._getStrokeWidth(t),m.strokeStyle=this._hsv2rgb(d,1,1),m.beginPath(),m.moveTo(t.screen.x,t.screen.y),m.lineTo(e.screen.x,e.screen.y),m.stroke()),void 0!==t&&void 0!==i&&(p=(t.point.z+i.point.z)/2,d=240*(1-(p-this.zMin)*this.scale.z/this.verticalRatio),m.lineWidth=2*this._getStrokeWidth(t),m.strokeStyle=this._hsv2rgb(d,1,1),m.beginPath(),m.moveTo(t.screen.x,t.screen.y),m.lineTo(i.screen.x,i.screen.y),m.stroke())}},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._redrawDataDot=function(){var t,e=this.frame.canvas,i=e.getContext("2d");if(!(void 0===this.dataPoints||this.dataPoints.length<=0)){for(t=0;t<this.dataPoints.length;t++){var n=this._convertPointToTranslation(this.dataPoints[t].point),s=this._convertTranslationToScreen(n);this.dataPoints[t].trans=n,this.dataPoints[t].screen=s;var r=this._convertPointToTranslation(this.dataPoints[t].bottom);this.dataPoints[t].dist=this.showPerspective?r.length():-r.z}var a=function(t,e){return e.dist-t.dist};this.dataPoints.sort(a);var h=.02*this.frame.clientWidth;for(t=0;t<this.dataPoints.length;t++){var d=this.dataPoints[t];if(this.style===o.STYLE.DOTLINE){var l=this._convert3Dto2D(d.bottom);i.lineWidth=1,i.strokeStyle=this.gridColor,i.beginPath(),i.moveTo(l.x,l.y),i.lineTo(d.screen.x,d.screen.y),i.stroke()}var u;u=this.style===o.STYLE.DOTSIZE?h/2+2*h*(d.point.value-this.valueMin)/(this.valueMax-this.valueMin):h;var c;c=this.showPerspective?u/-d.trans.z:u*-(this.eye.z/this.camera.getArmLength()),0>c&&(c=0);var p,f,m;this.style===o.STYLE.DOTCOLOR?(p=240*(1-(d.point.value-this.valueMin)*this.scale.value),f=this._hsv2rgb(p,1,1),m=this._hsv2rgb(p,1,.8)):this.style===o.STYLE.DOTSIZE?(f=this.dataColor.fill,m=this.dataColor.stroke):(p=240*(1-(d.point.z-this.zMin)*this.scale.z/this.verticalRatio),f=this._hsv2rgb(p,1,1),m=this._hsv2rgb(p,1,.8)),i.lineWidth=this._getStrokeWidth(d),i.strokeStyle=m,i.fillStyle=f,i.beginPath(),i.arc(d.screen.x,d.screen.y,c,0,2*Math.PI,!0),i.fill(),i.stroke()}}},o.prototype._redrawDataBar=function(){var t,e,i,n,s=this.frame.canvas,r=s.getContext("2d");if(!(void 0===this.dataPoints||this.dataPoints.length<=0)){for(t=0;t<this.dataPoints.length;t++){var a=this._convertPointToTranslation(this.dataPoints[t].point),h=this._convertTranslationToScreen(a);this.dataPoints[t].trans=a,this.dataPoints[t].screen=h;var d=this._convertPointToTranslation(this.dataPoints[t].bottom);this.dataPoints[t].dist=this.showPerspective?d.length():-d.z}var u=function(t,e){return e.dist-t.dist};this.dataPoints.sort(u),r.lineJoin="round",r.lineCap="round";var c=this.xBarWidth/2,p=this.yBarWidth/2;for(t=0;t<this.dataPoints.length;t++){var f,m,v,g=this.dataPoints[t];this.style===o.STYLE.BARCOLOR?(f=240*(1-(g.point.value-this.valueMin)*this.scale.value),m=this._hsv2rgb(f,1,1),v=this._hsv2rgb(f,1,.8)):this.style===o.STYLE.BARSIZE?(m=this.dataColor.fill,v=this.dataColor.stroke):(f=240*(1-(g.point.z-this.zMin)*this.scale.z/this.verticalRatio),m=this._hsv2rgb(f,1,1),v=this._hsv2rgb(f,1,.8)),this.style===o.STYLE.BARSIZE&&(c=this.xBarWidth/2*((g.point.value-this.valueMin)/(this.valueMax-this.valueMin)*.8+.2),p=this.yBarWidth/2*((g.point.value-this.valueMin)/(this.valueMax-this.valueMin)*.8+.2));var y=this,b=g.point,w=[{point:new l(b.x-c,b.y-p,b.z)},{point:new l(b.x+c,b.y-p,b.z)},{point:new l(b.x+c,b.y+p,b.z)},{point:new l(b.x-c,b.y+p,b.z)}],_=[{point:new l(b.x-c,b.y-p,this.zMin)},{point:new l(b.x+c,b.y-p,this.zMin)},{point:new l(b.x+c,b.y+p,this.zMin)},{point:new l(b.x-c,b.y+p,this.zMin)}];w.forEach(function(t){t.screen=y._convert3Dto2D(t.point)}),_.forEach(function(t){t.screen=y._convert3Dto2D(t.point)});var x=[{corners:w,center:l.avg(_[0].point,_[2].point)},{corners:[w[0],w[1],_[1],_[0]],center:l.avg(_[1].point,_[0].point)},{corners:[w[1],w[2],_[2],_[1]],center:l.avg(_[2].point,_[1].point)},{corners:[w[2],w[3],_[3],_[2]],center:l.avg(_[3].point,_[2].point)},{corners:[w[3],w[0],_[0],_[3]],center:l.avg(_[0].point,_[3].point)}];for(g.surfaces=x,e=0;e<x.length;e++){i=x[e];var k=this._convertPointToTranslation(i.center);i.dist=this.showPerspective?k.length():-k.z}for(x.sort(function(t,e){var i=e.dist-t.dist;return i?i:t.corners===w?1:e.corners===w?-1:0}),r.lineWidth=this._getStrokeWidth(g),r.strokeStyle=v,r.fillStyle=m,e=2;e<x.length;e++)i=x[e],n=i.corners,r.beginPath(),r.moveTo(n[3].screen.x,n[3].screen.y),r.lineTo(n[0].screen.x,n[0].screen.y),r.lineTo(n[1].screen.x,n[1].screen.y),r.lineTo(n[2].screen.x,n[2].screen.y),r.lineTo(n[3].screen.x,n[3].screen.y),r.fill(),r.stroke()}}},o.prototype._redrawDataLine=function(){var t,e,i=this.frame.canvas,o=i.getContext("2d");if(!(void 0===this.dataPoints||this.dataPoints.length<=0)){for(e=0;e<this.dataPoints.length;e++){var n=this._convertPointToTranslation(this.dataPoints[e].point),s=this._convertTranslationToScreen(n);this.dataPoints[e].trans=n,this.dataPoints[e].screen=s}if(this.dataPoints.length>0){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;e<this.dataPoints.length;e++)t=this.dataPoints[e],o.lineTo(t.screen.x,t.screen.y);o.stroke()}}},o.prototype._onMouseDown=function(t){if(t=t||window.event,this.leftButtonDown&&this._onMouseUp(t),this.leftButtonDown=t.which?1===t.which:1===t.button,this.leftButtonDown||this.touchDown){this.startMouseX=n(t),this.startMouseY=s(t),this.startStart=new Date(this.start),this.startEnd=new Date(this.end),this.startArmRotation=this.camera.getArmRotation(),this.frame.style.cursor="move";var e=this;this.onmousemove=function(t){e._onMouseMove(t)},this.onmouseup=function(t){e._onMouseUp(t)},d.addEventListener(document,"mousemove",e.onmousemove),d.addEventListener(document,"mouseup",e.onmouseup),d.preventDefault(t)}},o.prototype._onMouseMove=function(t){t=t||window.event;var e=parseFloat(n(t))-this.startMouseX,i=parseFloat(s(t))-this.startMouseY,o=this.startArmRotation.horizontal+e/200,r=this.startArmRotation.vertical+i/200,a=4,h=Math.sin(a/360*2*Math.PI);
-Math.abs(Math.sin(o))<h&&(o=Math.round(o/Math.PI)*Math.PI-.001),Math.abs(Math.cos(o))<h&&(o=(Math.round(o/Math.PI-.5)+.5)*Math.PI-.001),Math.abs(Math.sin(r))<h&&(r=Math.round(r/Math.PI)*Math.PI),Math.abs(Math.cos(r))<h&&(r=(Math.round(r/Math.PI-.5)+.5)*Math.PI),this.camera.setArmRotation(o,r),this.redraw();var l=this.getCameraPosition();this.emit("cameraPositionChange",l),d.preventDefault(t)},o.prototype._onMouseUp=function(t){this.frame.style.cursor="auto",this.leftButtonDown=!1,d.removeEventListener(document,"mousemove",this.onmousemove),d.removeEventListener(document,"mouseup",this.onmouseup),d.preventDefault(t)},o.prototype._onTooltip=function(t){var e=300,i=this.frame.getBoundingClientRect(),o=n(t)-i.left,r=s(t)-i.top;if(this.showTooltip){if(this.tooltipTimeout&&clearTimeout(this.tooltipTimeout),this.leftButtonDown)return void this._hideTooltip();if(this.tooltip&&this.tooltip.dataPoint){var a=this._dataPointFromXY(o,r);a!==this.tooltip.dataPoint&&(a?this._showTooltip(a):this._hideTooltip())}else{var h=this;this.tooltipTimeout=setTimeout(function(){h.tooltipTimeout=null;var t=h._dataPointFromXY(o,r);t&&h._showTooltip(t)},e)}}},o.prototype._onTouchStart=function(t){this.touchDown=!0;var e=this;this.ontouchmove=function(t){e._onTouchMove(t)},this.ontouchend=function(t){e._onTouchEnd(t)},d.addEventListener(document,"touchmove",e.ontouchmove),d.addEventListener(document,"touchend",e.ontouchend),this._onMouseDown(t)},o.prototype._onTouchMove=function(t){this._onMouseMove(t)},o.prototype._onTouchEnd=function(t){this.touchDown=!1,d.removeEventListener(document,"touchmove",this.ontouchmove),d.removeEventListener(document,"touchend",this.ontouchend),this._onMouseUp(t)},o.prototype._onWheel=function(t){t||(t=window.event);var e=0;if(t.wheelDelta?e=t.wheelDelta/120:t.detail&&(e=-t.detail/3),e){var i=this.camera.getArmLength(),o=i*(1-e/10);this.camera.setArmLength(o),this.redraw(),this._hideTooltip()}var n=this.getCameraPosition();this.emit("cameraPositionChange",n),d.preventDefault(t)},o.prototype._insideTriangle=function(t,e){function i(t){return t>0?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;i<this.dataPoints.length;i++){s=this.dataPoints[i];var v=s.screen;if(v){var g=Math.abs(t-v.x),y=Math.abs(e-v.y),b=Math.sqrt(g*g+y*y);(null===a||a>b)&&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="<table><tr><td>x:</td><td>"+t.point.x+"</td></tr><tr><td>y:</td><td>"+t.point.y+"</td></tr><tr><td>z:</td><td>"+t.point.z+"</td></tr></table>",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;n<i.length;n++)if(o=i[n],o===e||o.fn===e){i.splice(n,1);break}return this},i.prototype.emit=function(t){this._callbacks=this._callbacks||{};var e=[].slice.call(arguments,1),i=this._callbacks[t];if(i){i=i.slice(0);for(var o=0,n=i.length;n>o;++o)i[o].apply(this,e)}return this},i.prototype.listeners=function(t){return this._callbacks=this._callbacks||{},this._callbacks[t]||[]},i.prototype.hasListeners=function(t){return!!this.listeners(t).length}},function(t,e){function i(t,e,i){this.x=void 0!==t?t:0,this.y=void 0!==e?e:0,this.z=void 0!==i?i:0}i.subtract=function(t,e){var o=new i;return o.x=t.x-e.x,o.y=t.y-e.y,o.z=t.z-e.z,o},i.add=function(t,e){var o=new i;return o.x=t.x+e.x,o.y=t.y+e.y,o.z=t.z+e.z,o},i.avg=function(t,e){return new i((t.x+e.x)/2,(t.y+e.y)/2,(t.z+e.z)/2)},i.crossProduct=function(t,e){var o=new i;return o.x=t.y*e.z-t.z*e.y,o.y=t.z*e.x-t.x*e.z,o.z=t.x*e.y-t.y*e.x,o},i.prototype.length=function(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z)},t.exports=i},function(t,e){function i(t,e){this.x=void 0!==t?t:0,this.y=void 0!==e?e:0}t.exports=i},function(t,e,i){function o(){this.armLocation=new n,this.armRotation={},this.armRotation.horizontal=0,this.armRotation.vertical=0,this.armLength=1.7,this.cameraLocation=new n,this.cameraRotation=new n(.5*Math.PI,0,0),this.calculateCameraOrientation()}var n=i(13);o.prototype.setArmLocation=function(t,e,i){this.armLocation.x=t,this.armLocation.y=e,this.armLocation.z=i,this.calculateCameraOrientation()},o.prototype.setArmRotation=function(t,e){void 0!==t&&(this.armRotation.horizontal=t),void 0!==e&&(this.armRotation.vertical=e,this.armRotation.vertical<0&&(this.armRotation.vertical=0),this.armRotation.vertical>.5*Math.PI&&(this.armRotation.vertical=.5*Math.PI)),(void 0!==t||void 0!==e)&&this.calculateCameraOrientation()},o.prototype.getArmRotation=function(){var t={};return t.horizontal=this.armRotation.horizontal,t.vertical=this.armRotation.vertical,t},o.prototype.setArmLength=function(t){void 0!==t&&(this.armLength=t,this.armLength<.71&&(this.armLength=.71),this.armLength>5&&(this.armLength=5),this.calculateCameraOrientation())},o.prototype.getArmLength=function(){return this.armLength},o.prototype.getCameraLocation=function(){return this.cameraLocation},o.prototype.getCameraRotation=function(){return this.cameraRotation},o.prototype.calculateCameraOrientation=function(){this.cameraLocation.x=this.armLocation.x-this.armLength*Math.sin(this.armRotation.horizontal)*Math.cos(this.armRotation.vertical),this.cameraLocation.y=this.armLocation.y-this.armLength*Math.cos(this.armRotation.horizontal)*Math.cos(this.armRotation.vertical),this.cameraLocation.z=this.armLocation.z+this.armLength*Math.sin(this.armRotation.vertical),this.cameraRotation.x=Math.PI/2-this.armRotation.vertical,this.cameraRotation.y=0,this.cameraRotation.z=-this.armRotation.horizontal},t.exports=o},function(t,e,i){function o(t,e,i){this.data=t,this.column=e,this.graph=i,this.index=void 0,this.value=void 0,this.values=i.getDistinctValues(t.get(),this.column),this.values.sort(function(t,e){return t>e?1:e>t?-1:0}),this.values.length>0&&this.selectValue(0),this.dataPoints=[],this.loaded=!1,this.onLoadCallback=void 0,i.animationPreload?(this.loaded=!1,this.loadInBackground()):this.loaded=!0}var n=i(10);o.prototype.isLoaded=function(){return this.loaded},o.prototype.getLoadedProgress=function(){for(var t=this.values.length,e=0;this.dataPoints[e];)e++;return Math.round(e/t*100)},o.prototype.getLabel=function(){return this.graph.filterLabel},o.prototype.getColumn=function(){return this.column},o.prototype.getSelectedValue=function(){return void 0!==this.index?this.values[this.index]:void 0},o.prototype.getValues=function(){return this.values},o.prototype.getValue=function(t){if(t>=this.values.length)throw"Error: index out of range";return this.values[t]},o.prototype._getDataPoints=function(t){if(void 0===t&&(t=this.index),void 0===t)return[];var e;if(this.dataPoints[t])e=this.dataPoints[t];else{var i={};i.column=this.column,i.value=this.values[t];var o=new n(this.data,{filter:function(t){return t[i.column]==i.value}}).get();e=this.graph._getDataPoints(o),this.dataPoints[t]=e}return e},o.prototype.setOnLoadCallback=function(t){this.onLoadCallback=t},o.prototype.selectValue=function(t){if(t>=this.values.length)throw"Error: index out of range";this.index=t,this.value=this.values[t]},o.prototype.loadInBackground=function(t){void 0===t&&(t=0);var e=this.graph.frame;if(t<this.values.length){this._getDataPoints(t);void 0===e.progress&&(e.progress=document.createElement("DIV"),e.progress.style.position="absolute",e.progress.style.color="gray",e.appendChild(e.progress));var i=this.getLoadedProgress();e.progress.innerHTML="Loading animation... "+i+"%",e.progress.style.bottom="60px",e.progress.style.left="10px";var o=this;setTimeout(function(){o.loadInBackground(t+1)},10),this.loaded=!1}else this.loaded=!0,void 0!==e.progress&&(e.removeChild(e.progress),e.progress=void 0),this.onLoadCallback&&this.onLoadCallback()},t.exports=o},function(t,e,i){function o(t,e){if(void 0===t)throw"Error: No container element defined";if(this.container=t,this.visible=e&&void 0!=e.visible?e.visible:!0,this.visible){this.frame=document.createElement("DIV"),this.frame.style.width="100%",this.frame.style.position="relative",this.container.appendChild(this.frame),this.frame.prev=document.createElement("INPUT"),this.frame.prev.type="BUTTON",this.frame.prev.value="Prev",this.frame.appendChild(this.frame.prev),this.frame.play=document.createElement("INPUT"),this.frame.play.type="BUTTON",this.frame.play.value="Play",this.frame.appendChild(this.frame.play),this.frame.next=document.createElement("INPUT"),this.frame.next.type="BUTTON",this.frame.next.value="Next",this.frame.appendChild(this.frame.next),this.frame.bar=document.createElement("INPUT"),this.frame.bar.type="BUTTON",this.frame.bar.style.position="absolute",this.frame.bar.style.border="1px solid red",this.frame.bar.style.width="100px",this.frame.bar.style.height="6px",this.frame.bar.style.borderRadius="2px",this.frame.bar.style.MozBorderRadius="2px",this.frame.bar.style.border="1px solid #7F7F7F",this.frame.bar.style.backgroundColor="#E5E5E5",this.frame.appendChild(this.frame.bar),this.frame.slide=document.createElement("INPUT"),this.frame.slide.type="BUTTON",this.frame.slide.style.margin="0px",this.frame.slide.value=" ",this.frame.slide.style.position="relative",this.frame.slide.style.left="-100px",this.frame.appendChild(this.frame.slide);var i=this;this.frame.slide.onmousedown=function(t){i._onMouseDown(t)},this.frame.prev.onclick=function(t){i.prev(t)},this.frame.play.onclick=function(t){i.togglePlay(t)},this.frame.next.onclick=function(t){i.next(t)}}this.onChangeCallback=void 0,this.values=[],this.index=void 0,this.playTimeout=void 0,this.playInterval=1e3,this.playLoop=!0}var n=i(1);o.prototype.prev=function(){var t=this.getIndex();t>0&&(t--,this.setIndex(t))},o.prototype.next=function(){var t=this.getIndex();t<this.values.length-1&&(t++,this.setIndex(t))},o.prototype.playNext=function(){var t=new Date,e=this.getIndex();e<this.values.length-1?(e++,this.setIndex(e)):this.playLoop&&(e=0,this.setIndex(e));var i=new Date,o=i-t,n=Math.max(this.playInterval-o,0),s=this;this.playTimeout=setTimeout(function(){s.playNext()},n)},o.prototype.togglePlay=function(){void 0===this.playTimeout?this.play():this.stop()},o.prototype.play=function(){this.playTimeout||(this.playNext(),this.frame&&(this.frame.play.value="Stop"))},o.prototype.stop=function(){clearInterval(this.playTimeout),this.playTimeout=void 0,this.frame&&(this.frame.play.value="Play")},o.prototype.setOnChangeCallback=function(t){this.onChangeCallback=t},o.prototype.setPlayInterval=function(t){this.playInterval=t},o.prototype.getPlayInterval=function(t){return this.playInterval},o.prototype.setPlayLoop=function(t){this.playLoop=t},o.prototype.onChange=function(){void 0!==this.onChangeCallback&&this.onChangeCallback()},o.prototype.redraw=function(){if(this.frame){this.frame.bar.style.top=this.frame.clientHeight/2-this.frame.bar.offsetHeight/2+"px",this.frame.bar.style.width=this.frame.clientWidth-this.frame.prev.clientWidth-this.frame.play.clientWidth-this.frame.next.clientWidth-30+"px";var t=this.indexToLeft(this.index);this.frame.slide.style.left=t+"px"}},o.prototype.setValues=function(t){this.values=t,this.values.length>0?this.setIndex(0):this.index=void 0},o.prototype.setIndex=function(t){if(!(t<this.values.length))throw"Error: index out of range";this.index=t,this.redraw(),this.onChange()},o.prototype.getIndex=function(){return this.index},o.prototype.get=function(){return this.values[this.index]},o.prototype._onMouseDown=function(t){var e=t.which?1===t.which:1===t.button;if(e){this.startClientX=t.clientX,this.startSlideX=parseFloat(this.frame.slide.style.left),this.frame.style.cursor="move";var i=this;this.onmousemove=function(t){i._onMouseMove(t)},this.onmouseup=function(t){i._onMouseUp(t)},n.addEventListener(document,"mousemove",this.onmousemove),n.addEventListener(document,"mouseup",this.onmouseup),n.preventDefault(t)}},o.prototype.leftToIndex=function(t){var e=parseFloat(this.frame.bar.style.width)-this.frame.slide.clientWidth-10,i=t-3,o=Math.round(i/e*(this.values.length-1));return 0>o&&(o=0),o>this.values.length-1&&(o=this.values.length-1),o},o.prototype.indexToLeft=function(t){var e=parseFloat(this.frame.bar.style.width)-this.frame.slide.clientWidth-10,i=t/(this.values.length-1)*e,o=i+3;return o},o.prototype._onMouseMove=function(t){var e=t.clientX-this.startClientX,i=this.startSlideX+e,o=this.leftToIndex(i);this.setIndex(o),n.preventDefault()},o.prototype._onMouseUp=function(t){this.frame.style.cursor="auto",n.removeEventListener(document,"mousemove",this.onmousemove),n.removeEventListener(document,"mouseup",this.onmouseup),n.preventDefault()},t.exports=o},function(t,e){function i(t,e,i,o){this._start=0,this._end=0,this._step=1,this.prettyStep=!0,this.precision=5,this._current=0,this.setRange(t,e,i,o)}i.prototype.setRange=function(t,e,i,o){this._start=t?t:0,this._end=e?e:0,this.setStep(i,o)},i.prototype.setStep=function(t,e){void 0===t||0>=t||(void 0!==e&&(this.prettyStep=e),this.prettyStep===!0?this._step=i.calculatePrettyStep(t):this._step=t)},i.calculatePrettyStep=function(t){var e=function(t){return Math.log(t)/Math.LN10},i=Math.pow(10,Math.round(e(t))),o=2*Math.pow(10,Math.round(e(t/2))),n=5*Math.pow(10,Math.round(e(t/5))),s=i;return Math.abs(o-t)<=Math.abs(s-t)&&(s=o),Math.abs(n-t)<=Math.abs(s-t)&&(s=n),0>=s&&(s=1),s},i.prototype.getCurrent=function(){return parseFloat(this._current.toPrecision(this.precision))},i.prototype.getStep=function(){return this._step},i.prototype.start=function(){this._current=this._start-this._start%this._step},i.prototype.next=function(){this._current+=this._step},i.prototype.end=function(){return this._current>this._end},t.exports=i},function(t,e,i){function o(t,e,i,d){if(!(this instanceof o))throw new SyntaxError("Constructor must be called with the new operator");if(!(Array.isArray(i)||i instanceof r||i instanceof a)&&i instanceof Object){var c=d;d=i,i=c}var f=this;this.defaultOptions={start:null,end:null,autoResize:!0,throttleRedraw:0,orientation:{axis:"bottom",item:"bottom"},moment:n,width:null,height:null,maxHeight:null,minHeight:null},this.options=s.deepExtend({},this.defaultOptions),this._create(t),this.components=[],this.body={dom:this.dom,domProps:this.props,emitter:{on:this.on.bind(this),off:this.off.bind(this),emit:this.emit.bind(this)},hiddenDates:[],util:{getScale:function(){return f.timeAxis.step.scale},getStep:function(){return f.timeAxis.step.step},toScreen:f._toScreen.bind(f),toGlobalScreen:f._toGlobalScreen.bind(f),toTime:f._toTime.bind(f),toGlobalTime:f._toGlobalTime.bind(f)}},this.range=new h(this.body),this.components.push(this.range),this.body.range=this.range,this.timeAxis=new l(this.body),this.timeAxis2=null,this.components.push(this.timeAxis),this.currentTime=new u(this.body),this.components.push(this.currentTime),this.itemSet=new p(this.body),this.components.push(this.itemSet),this.itemsData=null,this.groupsData=null,this.on("tap",function(t){f.emit("click",f.getEventProperties(t))}),this.on("doubletap",function(t){f.emit("doubleClick",f.getEventProperties(t))}),this.dom.root.oncontextmenu=function(t){f.emit("contextmenu",f.getEventProperties(t))},d&&this.setOptions(d),i&&this.setGroups(i),e?this.setItems(e):this._redraw()}var n=(i(12),i(20),i(2)),s=i(1),r=i(8),a=i(10),h=i(24),d=i(28),l=i(39),u=i(44),c=i(42),p=i(29),f=i(45),m=i(47)["default"],v=i(47).printStyle,g=i(48).allOptions,y=i(48).configureOptions;o.prototype=new d,o.prototype._createConfigurator=function(){return new f(this,this.dom.container,y)},o.prototype.redraw=function(){this.itemSet&&this.itemSet.markDirty({refreshItems:!0}),this._redraw()},o.prototype.setOptions=function(t){var e=m.validate(t,g);if(e===!0&&console.log("%cErrors have been found in the supplied options object.",v),d.prototype.setOptions.call(this,t),"type"in t&&t.type!==this.options.type){this.options.type=t.type;var i=this.itemsData;if(i){var o=this.getSelection();this.setItems(null),this.setItems(i),this.setSelection(o)}}},o.prototype.setItems=function(t){var e,i=null==this.itemsData;if(e=t?t instanceof r||t instanceof a?t:new r(t,{type:{start:"Date",end:"Date"}}):null,this.itemsData=e,this.itemSet&&this.itemSet.setItems(e),i)if(void 0!=this.options.start||void 0!=this.options.end){if(void 0==this.options.start||void 0==this.options.end)var o=this.getItemRange();var n=void 0!=this.options.start?this.options.start:o.min,s=void 0!=this.options.end?this.options.end:o.max;this.setWindow(n,s,{animation:!1})}else this.fit({animation:!1})},o.prototype.setGroups=function(t){var e;e=t?t instanceof r||t instanceof a?t:new r(t):null,this.groupsData=e,this.itemSet.setGroups(e)},o.prototype.setData=function(t){t&&t.groups&&this.setGroups(t.groups),t&&t.items&&this.setItems(t.items)},o.prototype.setSelection=function(t,e){this.itemSet&&this.itemSet.setSelection(t),e&&e.focus&&this.focus(t,e)},o.prototype.getSelection=function(){return this.itemSet&&this.itemSet.getSelection()||[]},o.prototype.focus=function(t,e){if(this.itemsData&&void 0!=t){var i=Array.isArray(t)?t:[t],o=this.itemsData.getDataSet().get(i,{type:{start:"Date",end:"Date"}}),n=null,s=null;if(o.forEach(function(t){var e=t.start.valueOf(),i="end"in t?t.end.valueOf():t.start.valueOf();(null===n||n>e)&&(n=e),(null===s||i>s)&&(s=i)}),null!==n&&null!==s){var r=(n+s)/2,a=Math.max(this.range.end-this.range.start,1.1*(s-n)),h=e&&void 0!==e.animation?e.animation:!0;this.range.setRange(r-a/2,r+a/2,h)}}},o.prototype.fit=function(t){var e=t&&void 0!==t.animation?t.animation:!0,i=this.getItemRange();this.range.setRange(i.min,i.max,e)},o.prototype.getItemRange=function(){var t=this,e=this.getDataRange(),i=e.min.valueOf(),o=e.max.valueOf(),n=null,r=null;if(null!=i&&null!=o){var a,h,d,l,u;!function(){var e=function(t){return s.convert(t.data.start,"Date").valueOf()},c=function(t){var e=void 0!=t.data.end?t.data.end:t.data.start;return s.convert(e,"Date").valueOf()};a=o-i,0>=a&&(a=10),h=a/t.props.center.width,s.forEach(t.itemSet.items,function(t){t.show();var s=e(t),a=c(t),d=s-(t.getWidthLeft()+10)*h,l=a+(t.getWidthRight()+10)*h;i>d&&(i=d,n=t),l>o&&(o=l,r=t)}.bind(t)),n&&r&&(d=n.getWidthLeft()+10,l=r.getWidthRight()+10,u=t.props.center.width-d-l,u>0&&(i=e(n)-d*a/u,o=c(r)+l*a/u))}()}return{min:null!=i?new Date(i):null,max:null!=o?new Date(o):null}},o.prototype.getDataRange=function(){var t=null,e=null,i=this.itemsData&&this.itemsData.getDataSet();return i&&i.forEach(function(i){var o=s.convert(i.start,"Date").valueOf(),n=s.convert(void 0!=i.end?i.end:i.start,"Date").valueOf();(null===t||t>o)&&(t=o),(null===e||n>e)&&(e=n)}),{min:null!=t?new Date(t):null,max:null!=e?new Date(e):null}},o.prototype.getEventProperties=function(t){var e=t.center?t.center.x:t.clientX,i=t.center?t.center.y:t.clientY,o=e-s.getAbsoluteLeft(this.dom.centerContainer),n=i-s.getAbsoluteTop(this.dom.centerContainer),r=this.itemSet.itemFromTarget(t),a=this.itemSet.groupFromTarget(t),h=c.customTimeFromTarget(t),d=this.itemSet.options.snap||null,l=this.body.util.getScale(),u=this.body.util.getStep(),p=this._toTime(o),f=d?d(p,l,u):p,m=s.getTarget(t),v=null;return null!=r?v="item":null!=h?v="custom-time":s.hasParent(m,this.timeAxis.dom.foreground)?v="axis":this.timeAxis2&&s.hasParent(m,this.timeAxis2.dom.foreground)?v="axis":s.hasParent(m,this.itemSet.dom.labelSet)?v="group-label":s.hasParent(m,this.currentTime.bar)?v="current-time":s.hasParent(m,this.dom.center)&&(v="background"),{event:t,item:r?r.id:null,group:a?a.groupId:null,what:v,pageX:t.srcEvent?t.srcEvent.pageX:t.pageX,pageY:t.srcEvent?t.srcEvent.pageY:t.pageY,x:o,y:n,time:p,snappedTime:f}},t.exports=o},function(t,e,i){if("undefined"!=typeof window){var o=i(21),n=window.Hammer||i(22);t.exports=o(n,{preventDefault:"mouse"})}else t.exports=function(){throw Error("hammer.js is only available in a browser, not in node.js.")}},function(t,e,i){var o,n,s;!function(i){n=[],o=i,s="function"==typeof o?o.apply(e,n):o,!(void 0!==s&&(t.exports=s))}(function(){var t=null;return function e(i,o){function n(t){return t.match(/[^ ]+/g)}function s(e){if("hammer.input"!==e.type){if(e.srcEvent._handled||(e.srcEvent._handled={}),e.srcEvent._handled[e.type])return;e.srcEvent._handled[e.type]=!0}var i=!1;e.stopPropagation=function(){i=!0},e.firstTarget=t;for(var o=t;o&&!i;){var n=o.hammer&&o.hammer._handlers[e.type];if(n)for(var s=0;s<n.length&&!i;s++)n[s](e);o=o.parentNode}}var r=o||{preventDefault:!1};if(i.Manager){var a=i,h=function(t,i){var o=Object.create(r);return i&&a.extend(o,i),e(new a(t,o),o)};return a.extend(h,a),h.Manager=function(t,i){var o=Object.create(r);return i&&a.extend(o,i),e(new a.Manager(t,o),o)},h}var d=Object.create(i),l=i.element;return l.hammer=d,i.on("hammer.input",function(e){(r.preventDefault===!0||r.preventDefault===e.pointerType)&&e.preventDefault(),e.isFirst&&(t=e.target)}),d._handlers={},d.on=function(t,e){return n(t).forEach(function(t){var o=d._handlers[t];o||(d._handlers[t]=o=[],i.on(t,s)),o.push(e)}),d},d.off=function(t,e){return n(t).forEach(function(t){var o=d._handlers[t];o&&(o=e?o.filter(function(t){return t!==e}):[],o.length>0?d._handlers[t]=o:(i.off(t,s),delete d._handlers[t]))}),d},d.emit=function(e,o){t=o.target,i.emit(e,o)},d.destroy=function(){delete i.element.hammer,d._handlers={},i.destroy()},d}})},function(t,e,i){var o;!function(n,s,r,a){function h(t,e,i){return setTimeout(f(t,i),e)}function d(t,e,i){return Array.isArray(t)?(l(t,i[e],i),!0):!1}function l(t,e,i){var o;if(t)if(t.forEach)t.forEach(e,i);else if(t.length!==a)for(o=0;o<t.length;)e.call(i,t[o],o,t),o++;else for(o in t)t.hasOwnProperty(o)&&e.call(i,t[o],o,t)}function u(t,e,i){for(var o=Object.keys(e),n=0;n<o.length;)(!i||i&&t[o[n]]===a)&&(t[o[n]]=e[o[n]]),n++;return t}function c(t,e){return u(t,e,!0)}function p(t,e,i){var o,n=e.prototype;o=t.prototype=Object.create(n),o.constructor=t,o._super=n,i&&u(o,i)}function f(t,e){return function(){return t.apply(e,arguments)}}function m(t,e){return typeof t==ft?t.apply(e?e[0]||a:a,e):t}function v(t,e){return t===a?e:t}function g(t,e,i){l(_(e),function(e){t.addEventListener(e,i,!1)})}function y(t,e,i){l(_(e),function(e){t.removeEventListener(e,i,!1)})}function b(t,e){for(;t;){if(t==e)return!0;t=t.parentNode}return!1}function w(t,e){return t.indexOf(e)>-1}function _(t){return t.trim().split(/\s+/g)}function x(t,e,i){if(t.indexOf&&!i)return t.indexOf(e);for(var o=0;o<t.length;){if(i&&t[o][i]==e||!i&&t[o]===e)return o;o++}return-1}function k(t){return Array.prototype.slice.call(t,0)}function O(t,e,i){for(var o=[],n=[],s=0;s<t.length;){var r=e?t[s][e]:t[s];x(n,r)<0&&o.push(t[s]),n[s]=r,s++}return i&&(o=e?o.sort(function(t,i){return t[e]>i[e]}):o.sort()),o}function M(t,e){for(var i,o,n=e[0].toUpperCase()+e.slice(1),s=0;s<ct.length;){if(i=ct[s],o=i?i+n:e,o in t)return o;s++}return a}function D(){return yt++}function C(t){var e=t.ownerDocument;return e.defaultView||e.parentWindow}function T(t,e){var i=this;this.manager=t,this.callback=e,this.element=t.element,this.target=t.options.inputTarget,this.domHandler=function(e){m(t.options.enable,[t])&&i.handler(e)},this.init()}function S(t){var e,i=t.options.inputClass;return new(e=i?i:_t?Y:xt?V:wt?X:W)(t,E)}function E(t,e,i){var o=i.pointers.length,n=i.changedPointers.length,s=e&Tt&&o-n===0,r=e&(Et|Pt)&&o-n===0;i.isFirst=!!s,i.isFinal=!!r,s&&(t.session={}),i.eventType=e,P(t,i),t.emit("hammer.input",i),t.recognize(i),t.session.prevInput=i}function P(t,e){var i=t.session,o=e.pointers,n=o.length;i.firstInput||(i.firstInput=z(e)),n>1&&!i.firstMultiple?i.firstMultiple=z(e):1===n&&(i.firstMultiple=!1);var s=i.firstInput,r=i.firstMultiple,a=r?r.center:s.center,h=e.center=L(o);e.timeStamp=gt(),e.deltaTime=e.timeStamp-s.timeStamp,e.angle=R(a,h),e.distance=F(a,h),I(i,e),e.offsetDirection=B(e.deltaX,e.deltaY),e.scale=r?H(r.pointers,o):1,e.rotation=r?j(r.pointers,o):0,N(i,e);var d=t.element;b(e.srcEvent.target,d)&&(d=e.srcEvent.target),e.target=d}function I(t,e){var i=e.center,o=t.offsetDelta||{},n=t.prevDelta||{},s=t.prevInput||{};(e.eventType===Tt||s.eventType===Et)&&(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 N(t,e){var i,o,n,s,r=t.lastInterval||e,h=e.timeStamp-r.timeStamp;if(e.eventType!=Pt&&(h>Ct||r.velocity===a)){var d=r.deltaX-e.deltaX,l=r.deltaY-e.deltaY,u=A(h,d,l);o=u.x,n=u.y,i=vt(u.x)>vt(u.y)?u.x:u.y,s=B(d,l),t.lastInterval=e}else i=r.velocity,o=r.velocityX,n=r.velocityY,s=r.direction;e.velocity=i,e.velocityX=o,e.velocityY=n,e.direction=s}function z(t){for(var e=[],i=0;i<t.pointers.length;)e[i]={clientX:mt(t.pointers[i].clientX),clientY:mt(t.pointers[i].clientY)},i++;return{timeStamp:gt(),pointers:e,center:L(e),deltaX:t.deltaX,deltaY:t.deltaY}}function L(t){var e=t.length;if(1===e)return{x:mt(t[0].clientX),y:mt(t[0].clientY)};for(var i=0,o=0,n=0;e>n;)i+=t[n].clientX,o+=t[n].clientY,n++;return{x:mt(i/e),y:mt(o/e)}}function A(t,e,i){return{x:e/t||0,y:i/t||0}}function B(t,e){return t===e?It:vt(t)>=vt(e)?t>0?Nt:zt:e>0?Lt:At}function F(t,e,i){i||(i=jt);var o=e[i[0]]-t[i[0]],n=e[i[1]]-t[i[1]];return Math.sqrt(o*o+n*n)}function R(t,e,i){i||(i=jt);var o=e[i[0]]-t[i[0]],n=e[i[1]]-t[i[1]];return 180*Math.atan2(n,o)/Math.PI}function j(t,e){return R(e[1],e[0],Ht)-R(t[1],t[0],Ht)}function H(t,e){return F(e[0],e[1],Ht)/F(t[0],t[1],Ht)}function W(){this.evEl=Yt,this.evWin=Gt,this.allow=!0,this.pressed=!1,T.apply(this,arguments)}function Y(){this.evEl=qt,this.evWin=Xt,T.apply(this,arguments),this.store=this.manager.session.pointerEvents=[]}function G(){this.evTarget=Kt,this.evWin=Jt,this.started=!1,T.apply(this,arguments)}function U(t,e){var i=k(t.touches),o=k(t.changedTouches);return e&(Et|Pt)&&(i=O(i.concat(o),"identifier",!0)),[i,o]}function V(){this.evTarget=$t,this.targetIds={},T.apply(this,arguments)}function q(t,e){var i=k(t.touches),o=this.targetIds;if(e&(Tt|St)&&1===i.length)return o[i[0].identifier]=!0,[i,i];var n,s,r=k(t.changedTouches),a=[],h=this.target;if(s=i.filter(function(t){return b(t.target,h)}),e===Tt)for(n=0;n<s.length;)o[s[n].identifier]=!0,n++;for(n=0;n<r.length;)o[r[n].identifier]&&a.push(r[n]),e&(Et|Pt)&&delete o[r[n].identifier],n++;return a.length?[O(s.concat(a),"identifier",!0),a]:void 0}function X(){T.apply(this,arguments);var t=f(this.handler,this);this.touch=new V(this.manager,t),this.mouse=new W(this.manager,t)}function Z(t,e){this.manager=t,this.set(e)}function K(t){if(w(t,se))return se;var e=w(t,re),i=w(t,ae);return e&&i?re+" "+ae:e||i?e?re:ae:w(t,ne)?ne:oe}function J(t){this.id=D(),this.manager=null,this.options=c(t||{},this.defaults),this.options.enable=v(this.options.enable,!0),this.state=he,this.simultaneous={},this.requireFail=[]}function Q(t){return t&pe?"cancel":t&ue?"end":t&le?"move":t&de?"start":""}function $(t){return t==At?"down":t==Lt?"up":t==Nt?"left":t==zt?"right":""}function tt(t,e){var i=e.manager;return i?i.get(t):t}function et(){J.apply(this,arguments)}function it(){et.apply(this,arguments),this.pX=null,this.pY=null}function ot(){et.apply(this,arguments)}function nt(){J.apply(this,arguments),this._timer=null,this._input=null}function st(){et.apply(this,arguments)}function rt(){et.apply(this,arguments)}function at(){J.apply(this,arguments),this.pTime=!1,this.pCenter=!1,this._timer=null,this._input=null,this.count=0}function ht(t,e){return e=e||{},e.recognizers=v(e.recognizers,ht.defaults.preset),new dt(t,e)}function dt(t,e){e=e||{},this.options=c(e,ht.defaults),this.options.inputTarget=this.options.inputTarget||t,this.handlers={},this.session={},this.recognizers=[],this.element=t,this.input=S(this),this.touchAction=new Z(this,this.options.touchAction),lt(this,!0),l(e.recognizers,function(t){var e=this.add(new t[0](t[1]));t[2]&&e.recognizeWith(t[2]),t[3]&&e.requireFailure(t[3])},this)}function lt(t,e){var i=t.element;l(t.options.cssProps,function(t,o){i.style[M(i.style,o)]=e?t:""})}function ut(t,e){var i=s.createEvent("Event");i.initEvent(t,!0,!0),i.gesture=e,e.target.dispatchEvent(i)}var ct=["","webkit","moz","MS","ms","o"],pt=s.createElement("div"),ft="function",mt=Math.round,vt=Math.abs,gt=Date.now,yt=1,bt=/mobile|tablet|ip(ad|hone|od)|android/i,wt="ontouchstart"in n,_t=M(n,"PointerEvent")!==a,xt=wt&&bt.test(navigator.userAgent),kt="touch",Ot="pen",Mt="mouse",Dt="kinect",Ct=25,Tt=1,St=2,Et=4,Pt=8,It=1,Nt=2,zt=4,Lt=8,At=16,Bt=Nt|zt,Ft=Lt|At,Rt=Bt|Ft,jt=["x","y"],Ht=["clientX","clientY"];T.prototype={handler:function(){},init:function(){this.evEl&&g(this.element,this.evEl,this.domHandler),this.evTarget&&g(this.target,this.evTarget,this.domHandler),this.evWin&&g(C(this.element),this.evWin,this.domHandler)},destroy:function(){this.evEl&&y(this.element,this.evEl,this.domHandler),this.evTarget&&y(this.target,this.evTarget,this.domHandler),this.evWin&&y(C(this.element),this.evWin,this.domHandler)}};var Wt={mousedown:Tt,mousemove:St,mouseup:Et},Yt="mousedown",Gt="mousemove mouseup";p(W,T,{handler:function(t){var e=Wt[t.type];e&Tt&&0===t.button&&(this.pressed=!0),e&St&&1!==t.which&&(e=Et),this.pressed&&this.allow&&(e&Et&&(this.pressed=!1),this.callback(this.manager,e,{pointers:[t],changedPointers:[t],pointerType:Mt,srcEvent:t}))}});var Ut={pointerdown:Tt,pointermove:St,pointerup:Et,pointercancel:Pt,pointerout:Pt},Vt={2:kt,3:Ot,4:Mt,5:Dt},qt="pointerdown",Xt="pointermove pointerup pointercancel";n.MSPointerEvent&&(qt="MSPointerDown",Xt="MSPointerMove MSPointerUp MSPointerCancel"),p(Y,T,{handler:function(t){var e=this.store,i=!1,o=t.type.toLowerCase().replace("ms",""),n=Ut[o],s=Vt[t.pointerType]||t.pointerType,r=s==kt,a=x(e,t.pointerId,"pointerId");
-n&Tt&&(0===t.button||r)?0>a&&(e.push(t),a=e.length-1):n&(Et|Pt)&&(i=!0),0>a||(e[a]=t,this.callback(this.manager,n,{pointers:e,changedPointers:[t],pointerType:s,srcEvent:t}),i&&e.splice(a,1))}});var Zt={touchstart:Tt,touchmove:St,touchend:Et,touchcancel:Pt},Kt="touchstart",Jt="touchstart touchmove touchend touchcancel";p(G,T,{handler:function(t){var e=Zt[t.type];if(e===Tt&&(this.started=!0),this.started){var i=U.call(this,t,e);e&(Et|Pt)&&i[0].length-i[1].length===0&&(this.started=!1),this.callback(this.manager,e,{pointers:i[0],changedPointers:i[1],pointerType:kt,srcEvent:t})}}});var Qt={touchstart:Tt,touchmove:St,touchend:Et,touchcancel:Pt},$t="touchstart touchmove touchend touchcancel";p(V,T,{handler:function(t){var e=Qt[t.type],i=q.call(this,t,e);i&&this.callback(this.manager,e,{pointers:i[0],changedPointers:i[1],pointerType:kt,srcEvent:t})}}),p(X,T,{handler:function(t,e,i){var o=i.pointerType==kt,n=i.pointerType==Mt;if(o)this.mouse.allow=!1;else if(n&&!this.mouse.allow)return;e&(Et|Pt)&&(this.mouse.allow=!0),this.callback(t,e,i)},destroy:function(){this.touch.destroy(),this.mouse.destroy()}});var te=M(pt.style,"touchAction"),ee=te!==a,ie="compute",oe="auto",ne="manipulation",se="none",re="pan-x",ae="pan-y";Z.prototype={set:function(t){t==ie&&(t=this.compute()),ee&&(this.manager.element.style[te]=t),this.actions=t.toLowerCase().trim()},update:function(){this.set(this.manager.options.touchAction)},compute:function(){var t=[];return l(this.manager.recognizers,function(e){m(e.options.enable,[e])&&(t=t.concat(e.getTouchAction()))}),K(t.join(" "))},preventDefaults:function(t){if(!ee){var e=t.srcEvent,i=t.offsetDirection;if(this.manager.session.prevented)return void e.preventDefault();var o=this.actions,n=w(o,se),s=w(o,ae),r=w(o,re);return n||s&&i&Bt||r&&i&Ft?this.preventSrc(e):void 0}},preventSrc:function(t){this.manager.session.prevented=!0,t.preventDefault()}};var he=1,de=2,le=4,ue=8,ce=ue,pe=16,fe=32;J.prototype={defaults:{},set:function(t){return u(this.options,t),this.manager&&this.manager.touchAction.update(),this},recognizeWith:function(t){if(d(t,"recognizeWith",this))return this;var e=this.simultaneous;return t=tt(t,this),e[t.id]||(e[t.id]=t,t.recognizeWith(this)),this},dropRecognizeWith:function(t){return d(t,"dropRecognizeWith",this)?this:(t=tt(t,this),delete this.simultaneous[t.id],this)},requireFailure:function(t){if(d(t,"requireFailure",this))return this;var e=this.requireFail;return t=tt(t,this),-1===x(e,t)&&(e.push(t),t.requireFailure(this)),this},dropRequireFailure:function(t){if(d(t,"dropRequireFailure",this))return this;t=tt(t,this);var e=x(this.requireFail,t);return e>-1&&this.requireFail.splice(e,1),this},hasRequireFailures:function(){return this.requireFail.length>0},canRecognizeWith:function(t){return!!this.simultaneous[t.id]},emit:function(t){function e(e){i.manager.emit(i.options.event+(e?Q(o):""),t)}var i=this,o=this.state;ue>o&&e(!0),e(),o>=ue&&e(!0)},tryEmit:function(t){return this.canEmit()?this.emit(t):void(this.state=fe)},canEmit:function(){for(var t=0;t<this.requireFail.length;){if(!(this.requireFail[t].state&(fe|he)))return!1;t++}return!0},recognize:function(t){var e=u({},t);return m(this.options.enable,[this,e])?(this.state&(ce|pe|fe)&&(this.state=he),this.state=this.process(e),void(this.state&(de|le|ue|pe)&&this.tryEmit(e))):(this.reset(),void(this.state=fe))},process:function(t){},getTouchAction:function(){},reset:function(){}},p(et,J,{defaults:{pointers:1},attrTest:function(t){var e=this.options.pointers;return 0===e||t.pointers.length===e},process:function(t){var e=this.state,i=t.eventType,o=e&(de|le),n=this.attrTest(t);return o&&(i&Pt||!n)?e|pe:o||n?i&Et?e|ue:e&de?e|le:de:fe}}),p(it,et,{defaults:{event:"pan",threshold:10,pointers:1,direction:Rt},getTouchAction:function(){var t=this.options.direction,e=[];return t&Bt&&e.push(ae),t&Ft&&e.push(re),e},directionTest:function(t){var e=this.options,i=!0,o=t.distance,n=t.direction,s=t.deltaX,r=t.deltaY;return n&e.direction||(e.direction&Bt?(n=0===s?It:0>s?Nt:zt,i=s!=this.pX,o=Math.abs(t.deltaX)):(n=0===r?It:0>r?Lt:At,i=r!=this.pY,o=Math.abs(t.deltaY))),t.direction=n,i&&o>e.threshold&&n&e.direction},attrTest:function(t){return et.prototype.attrTest.call(this,t)&&(this.state&de||!(this.state&de)&&this.directionTest(t))},emit:function(t){this.pX=t.deltaX,this.pY=t.deltaY;var e=$(t.direction);e&&this.manager.emit(this.options.event+e,t),this._super.emit.call(this,t)}}),p(ot,et,{defaults:{event:"pinch",threshold:0,pointers:2},getTouchAction:function(){return[se]},attrTest:function(t){return this._super.attrTest.call(this,t)&&(Math.abs(t.scale-1)>this.options.threshold||this.state&de)},emit:function(t){if(this._super.emit.call(this,t),1!==t.scale){var e=t.scale<1?"in":"out";this.manager.emit(this.options.event+e,t)}}}),p(nt,J,{defaults:{event:"press",pointers:1,time:500,threshold:5},getTouchAction:function(){return[oe]},process:function(t){var e=this.options,i=t.pointers.length===e.pointers,o=t.distance<e.threshold,n=t.deltaTime>e.time;if(this._input=t,!o||!i||t.eventType&(Et|Pt)&&!n)this.reset();else if(t.eventType&Tt)this.reset(),this._timer=h(function(){this.state=ce,this.tryEmit()},e.time,this);else if(t.eventType&Et)return ce;return fe},reset:function(){clearTimeout(this._timer)},emit:function(t){this.state===ce&&(t&&t.eventType&Et?this.manager.emit(this.options.event+"up",t):(this._input.timeStamp=gt(),this.manager.emit(this.options.event,this._input)))}}),p(st,et,{defaults:{event:"rotate",threshold:0,pointers:2},getTouchAction:function(){return[se]},attrTest:function(t){return this._super.attrTest.call(this,t)&&(Math.abs(t.rotation)>this.options.threshold||this.state&de)}}),p(rt,et,{defaults:{event:"swipe",threshold:10,velocity:.65,direction:Bt|Ft,pointers:1},getTouchAction:function(){return it.prototype.getTouchAction.call(this)},attrTest:function(t){var e,i=this.options.direction;return i&(Bt|Ft)?e=t.velocity:i&Bt?e=t.velocityX:i&Ft&&(e=t.velocityY),this._super.attrTest.call(this,t)&&i&t.direction&&t.distance>this.options.threshold&&vt(e)>this.options.velocity&&t.eventType&Et},emit:function(t){var e=$(t.direction);e&&this.manager.emit(this.options.event+e,t),this.manager.emit(this.options.event,t)}}),p(at,J,{defaults:{event:"tap",pointers:1,taps:1,interval:300,time:250,threshold:2,posThreshold:10},getTouchAction:function(){return[ne]},process:function(t){var e=this.options,i=t.pointers.length===e.pointers,o=t.distance<e.threshold,n=t.deltaTime<e.time;if(this.reset(),t.eventType&Tt&&0===this.count)return this.failTimeout();if(o&&n&&i){if(t.eventType!=Et)return this.failTimeout();var s=this.pTime?t.timeStamp-this.pTime<e.interval:!0,r=!this.pCenter||F(this.pCenter,t.center)<e.posThreshold;this.pTime=t.timeStamp,this.pCenter=t.center,r&&s?this.count+=1:this.count=1,this._input=t;var a=this.count%e.taps;if(0===a)return this.hasRequireFailures()?(this._timer=h(function(){this.state=ce,this.tryEmit()},e.interval,this),de):ce}return fe},failTimeout:function(){return this._timer=h(function(){this.state=fe},this.options.interval,this),fe},reset:function(){clearTimeout(this._timer)},emit:function(){this.state==ce&&(this._input.tapCount=this.count,this.manager.emit(this.options.event,this._input))}}),ht.VERSION="2.0.4",ht.defaults={domEvents:!1,touchAction:ie,enable:!0,inputTarget:null,inputClass:null,preset:[[st,{enable:!1}],[ot,{enable:!1},["rotate"]],[rt,{direction:Bt}],[it,{direction:Bt},["swipe"]],[at],[at,{event:"doubletap",taps:2},["tap"]],[nt]],cssProps:{userSelect:"none",touchSelect:"none",touchCallout:"none",contentZooming:"none",userDrag:"none",tapHighlightColor:"rgba(0,0,0,0)"}};var me=1,ve=2;dt.prototype={set:function(t){return u(this.options,t),t.touchAction&&this.touchAction.update(),t.inputTarget&&(this.input.destroy(),this.input.target=t.inputTarget,this.input.init()),this},stop:function(t){this.session.stopped=t?ve:me},recognize:function(t){var e=this.session;if(!e.stopped){this.touchAction.preventDefaults(t);var i,o=this.recognizers,n=e.curRecognizer;(!n||n&&n.state&ce)&&(n=e.curRecognizer=null);for(var s=0;s<o.length;)i=o[s],e.stopped===ve||n&&i!=n&&!i.canRecognizeWith(n)?i.reset():i.recognize(t),!n&&i.state&(de|le|ue)&&(n=e.curRecognizer=i),s++}},get:function(t){if(t instanceof J)return t;for(var e=this.recognizers,i=0;i<e.length;i++)if(e[i].options.event==t)return e[i];return null},add:function(t){if(d(t,"add",this))return this;var e=this.get(t.options.event);return e&&this.remove(e),this.recognizers.push(t),t.manager=this,this.touchAction.update(),t},remove:function(t){if(d(t,"remove",this))return this;var e=this.recognizers;return t=this.get(t),e.splice(x(e,t),1),this.touchAction.update(),this},on:function(t,e){var i=this.handlers;return l(_(t),function(t){i[t]=i[t]||[],i[t].push(e)}),this},off:function(t,e){var i=this.handlers;return l(_(t),function(t){e?i[t].splice(x(i[t],e),1):delete i[t]}),this},emit:function(t,e){this.options.domEvents&&ut(t,e);var i=this.handlers[t]&&this.handlers[t].slice();if(i&&i.length){e.type=t,e.preventDefault=function(){e.srcEvent.preventDefault()};for(var o=0;o<i.length;)i[o](e),o++}},destroy:function(){this.element&&lt(this,!1),this.handlers={},this.session={},this.input.destroy(),this.element=null}},u(ht,{INPUT_START:Tt,INPUT_MOVE:St,INPUT_END:Et,INPUT_CANCEL:Pt,STATE_POSSIBLE:he,STATE_BEGAN:de,STATE_CHANGED:le,STATE_ENDED:ue,STATE_RECOGNIZED:ce,STATE_CANCELLED:pe,STATE_FAILED:fe,DIRECTION_NONE:It,DIRECTION_LEFT:Nt,DIRECTION_RIGHT:zt,DIRECTION_UP:Lt,DIRECTION_DOWN:At,DIRECTION_HORIZONTAL:Bt,DIRECTION_VERTICAL:Ft,DIRECTION_ALL:Rt,Manager:dt,Input:T,TouchAction:Z,TouchInput:V,MouseInput:W,PointerEventInput:Y,TouchMouseInput:X,SingleTouchInput:G,Recognizer:J,AttrRecognizer:et,Tap:at,Pan:it,Swipe:rt,Pinch:ot,Rotate:st,Press:nt,on:g,off:y,each:l,merge:c,extend:u,inherit:p,bindFn:f,prefixed:M}),"function"==ft&&i(23)?(o=function(){return ht}.call(e,i,e,t),!(o!==a&&(t.exports=o))):"undefined"!=typeof t&&t.exports?t.exports=ht:n[r]=ht}(window,document,"Hammer")},function(t,e){(function(e){t.exports=e}).call(e,{})},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={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".')}function s(t,e){return{x:t.x-r.getAbsoluteLeft(e),y:t.y-r.getAbsoluteTop(e)}}var r=i(1),a=(i(25),i(2)),h=i(26),d=i(27);o.prototype=new h,o.prototype.setOptions=function(t){if(t){var e=["direction","min","max","zoomMin","zoomMax","moveable","zoomable","moment","activate","hiddenDates","zoomKey"];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,s=void 0!=e?r.convert(e,"Date").valueOf():null;if(this._cancelAnimation(),i){var a=this,h=this.start,l=this.end,u="object"==typeof i&&"duration"in i?i.duration:500,c="object"==typeof i&&"easingFunction"in i?i.easingFunction:"easeInOutQuad",p=r.easingFunctions[c];if(!p)throw new Error("Unknown easing function "+JSON.stringify(c)+". Choose from: "+Object.keys(r.easingFunctions).join(", "));var f=(new Date).valueOf(),m=!1,v=function b(){if(!a.props.touch.dragging){var t=(new Date).valueOf(),e=t-f,i=p(e/u),r=e>u,c=r||null===n?n:h+(n-h)*i,v=r||null===s?s:l+(s-l)*i;g=a._applyRange(c,v),d.updateHiddenDates(a.options.moment,a.body,a.options.hiddenDates),m=m||g,g&&a.body.emitter.emit("rangechange",{start:new Date(a.start),end:new Date(a.end),byUser:o}),r?m&&a.body.emitter.emit("rangechanged",{start:new Date(a.start),end:new Date(a.end),byUser:o}):a.animationTimer=setTimeout(b,20)}};return v()}var g=this._applyRange(n,s);if(d.updateHiddenDates(this.options.moment,this.body,this.options.hiddenDates),g){var y={start:new Date(this.start),end:new Date(this.end),byUser:o};this.body.emitter.emit("rangechange",y),this.body.emitter.emit("rangechanged",y)}},o.prototype._cancelAnimation=function(){this.animationTimer&&(clearTimeout(this.animationTimer),this.animationTimer=null)},o.prototype._applyRange=function(t,e){var i,o=null!=t?r.convert(t,"Date").valueOf():this.start,n=null!=e?r.convert(e,"Date").valueOf():this.end,s=null!=this.options.max?r.convert(this.options.max,"Date").valueOf():null,a=null!=this.options.min?r.convert(this.options.min,"Date").valueOf():null;if(isNaN(o)||null===o)throw new Error('Invalid start "'+t+'"');if(isNaN(n)||null===n)throw new Error('Invalid end "'+e+'"');if(o>n&&(n=o),null!==a&&a>o&&(i=a-o,o+=i,n+=i,null!=s&&n>s&&(n=s)),null!==s&&n>s&&(i=n-s,o-=i,n-=i,null!=a&&a>o&&(o=a)),null!==this.options.zoomMin){var h=parseFloat(this.options.zoomMin);0>h&&(h=0),h>n-o&&(this.end-this.start===h&&o>this.start&&n<this.end?(o=this.start,n=this.end):(i=h-(n-o),o-=i/2,n+=i/2))}if(null!==this.options.zoomMax){var d=parseFloat(this.options.zoomMax);0>d&&(d=0),n-o>d&&(this.end-this.start===d&&o<this.start&&n>this.end?(o=this.start,n=this.end):(i=n-o-d,o+=i/2,n-=i/2))}var l=this.start!=o||this.end!=n;return o>=this.start&&o<=this.end||n>=this.start&&n<=this.end||this.start>=o&&this.start<=n||this.end>=o&&this.end<=n||this.body.emitter.emit("checkRangedItems"),this.start=o,this.end=n,l},o.prototype.getRange=function(){return{start:this.start,end:this.end}},o.prototype.conversion=function(t,e){return o.conversion(this.start,this.end,t,e)},o.conversion=function(t,e,i,o){return void 0===o&&(o=0),0!=i&&e-t!=0?{offset:t,scale:i/(e-t-o)}:{offset:0,scale:1}},o.prototype._onDragStart=function(t){this.deltaDifference=0,this.previousDelta=0,this.options.moveable&&this._isInsideRange(t)&&this.props.touch.allowDragging&&(this.props.touch.start=this.start,this.props.touch.end=this.end,this.props.touch.dragging=!0,this.body.dom.root&&(this.body.dom.root.style.cursor="move"))},o.prototype._onDrag=function(t){if(this.props.touch.dragging&&this.options.moveable&&this.props.touch.allowDragging){var e=this.options.direction;n(e);var i="horizontal"==e?t.deltaX:t.deltaY;i-=this.deltaDifference;var o=this.props.touch.end-this.props.touch.start,s=d.getHiddenDurationBetween(this.body.hiddenDates,this.start,this.end);o-=s;var r="horizontal"==e?this.body.domProps.center.width:this.body.domProps.center.height,a=-i/r*o,h=this.props.touch.start+a,l=this.props.touch.end+a,u=d.snapAwayFromHidden(this.body.hiddenDates,h,this.previousDelta-i,!0),c=d.snapAwayFromHidden(this.body.hiddenDates,l,this.previousDelta-i,!0);if(u!=h||c!=l)return this.deltaDifference+=i,this.props.touch.start=u,this.props.touch.end=c,void this._onDrag(t);this.previousDelta=i,this._applyRange(h,l),this.body.emitter.emit("rangechange",{start:new Date(this.start),end:new Date(this.end),byUser:!0})}},o.prototype._onDragEnd=function(t){this.props.touch.dragging&&this.options.moveable&&this.props.touch.allowDragging&&(this.props.touch.dragging=!1,this.body.dom.root&&(this.body.dom.root.style.cursor="auto"),this.body.emitter.emit("rangechanged",{start:new Date(this.start),end:new Date(this.end),byUser:!0}))},o.prototype._onMouseWheel=function(t){if(this.options.zoomable&&this.options.moveable&&this._isInsideRange(t)&&(!this.options.zoomKey||t[this.options.zoomKey])){var e=0;if(t.wheelDelta?e=t.wheelDelta/120:t.detail&&(e=-t.detail/3),e){var i;i=0>e?1-e/5:1/(1+e/5);var o=s({x:t.clientX,y:t.clientY},this.body.dom.center),n=this._pointerToDate(o);this.zoom(i,n,e)}t.preventDefault()}},o.prototype._onTouch=function(t){this.props.touch.start=this.start,this.props.touch.end=this.end,this.props.touch.allowDragging=!0,this.props.touch.center=null,this.scaleOffset=0,this.deltaDifference=0},o.prototype._onPinch=function(t){if(this.options.zoomable&&this.options.moveable){this.props.touch.allowDragging=!1,this.props.touch.center||(this.props.touch.center=s(t.center,this.body.dom.center));var e=1/(t.scale+this.scaleOffset),i=this._pointerToDate(this.props.touch.center),o=d.getHiddenDurationBetween(this.body.hiddenDates,this.start,this.end),n=d.getHiddenDurationBefore(this.options.moment,this.body.hiddenDates,this,i),r=o-n,a=i-n+(this.props.touch.start-(i-n))*e,h=i+r+(this.props.touch.end-(i+r))*e;this.startToFront=0>=1-e,this.endToFront=0>=e-1;var l=d.snapAwayFromHidden(this.body.hiddenDates,a,1-e,!0),u=d.snapAwayFromHidden(this.body.hiddenDates,h,e-1,!0);(l!=a||u!=h)&&(this.props.touch.start=l,this.props.touch.end=u,this.scaleOffset=1-t.scale,a=l,h=u),this.setRange(a,h,!1,!0),this.startToFront=!1,this.endToFront=!0}},o.prototype._isInsideRange=function(t){var e=t.center?t.center.x:t.clientX,i=e-r.getAbsoluteLeft(this.body.dom.centerContainer),o=this.body.util.toTime(i);return o>=this.start&&o<=this.end},o.prototype._pointerToDate=function(t){var e,i=this.options.direction;if(n(i),"horizontal"==i)return this.body.util.toTime(t.x).valueOf();var o=this.body.domProps.center.height;return e=this.conversion(o),t.y/e.scale+e.offset},o.prototype.zoom=function(t,e,i){null==e&&(e=(this.start+this.end)/2);var o=d.getHiddenDurationBetween(this.body.hiddenDates,this.start,this.end),n=d.getHiddenDurationBefore(this.options.moment,this.body.hiddenDates,this,e),s=o-n,r=e-n+(this.start-(e-n))*t,a=e+s+(this.end-(e+s))*t;this.startToFront=i>0?!1:!0,this.endToFront=-i>0?!1:!0;var h=d.snapAwayFromHidden(this.body.hiddenDates,r,i,!0),l=d.snapAwayFromHidden(this.body.hiddenDates,a,-i,!0);(h!=r||l!=a)&&(r=h,a=l),this.setRange(r,a,!1,!0),this.startToFront=!1,this.endToFront=!0},o.prototype.move=function(t){var e=this.end-this.start,i=this.start+e*t,o=this.end+e*t;this.start=i,this.end=o},o.prototype.moveTo=function(t){var e=(this.start+this.end)/2,i=e-t,o=this.start-i,n=this.end-i;this.setRange(o,n)},t.exports=o},function(t,e,i){i(20);e.onTouch=function(t,e){e.inputHandler=function(t){t.isFirst&&!o&&(e(t),o=!0,setTimeout(function(){o=!1},0))},t.on("hammer.input",e.inputHandler)};var o=!1;e.onRelease=function(t,e){return e.inputHandler=function(t){t.isFinal&&!n&&(e(t),n=!0,setTimeout(function(){n=!1},0))},t.on("hammer.input",e.inputHandler)};var n=!1;e.offTouch=function(t,e){t.off("hammer.input",e.inputHandler)},e.offRelease=e.offTouch},function(t,e){function i(t,e){this.options=null,this.props=null}i.prototype.setOptions=function(t){t&&util.extend(this.options,t)},i.prototype.redraw=function(){return!1},i.prototype.destroy=function(){},i.prototype._isResized=function(){var t=this.props._previousWidth!==this.props.width||this.props._previousHeight!==this.props.height;return this.props._previousWidth=this.props.width,this.props._previousHeight=this.props.height,t},t.exports=i},function(t,e){e.convertHiddenOptions=function(t,i,o){if(o&&!Array.isArray(o))return e.convertHiddenOptions(t,i,[o]);if(i.hiddenDates=[],o&&1==Array.isArray(o)){for(var n=0;n<o.length;n++)if(void 0===o[n].repeat){var s={};s.start=t(o[n].start).toDate().valueOf(),s.end=t(o[n].end).toDate().valueOf(),i.hiddenDates.push(s)}i.hiddenDates.sort(function(t,e){return t.start-e.start})}},e.updateHiddenDates=function(t,i,o){if(o&&!Array.isArray(o))return e.updateHiddenDates(t,i,[o]);if(o&&void 0!==i.domProps.centerContainer.width){e.convertHiddenOptions(t,i,o);for(var n=t(i.range.start),s=t(i.range.end),r=i.range.end-i.range.start,a=r/i.domProps.centerContainer.width,h=0;h<o.length;h++)if(void 0!==o[h].repeat){var d=t(o[h].start),l=t(o[h].end);if("Invalid Date"==d._d)throw new Error("Supplied start date is not valid: "+o[h].start);if("Invalid Date"==l._d)throw new Error("Supplied end date is not valid: "+o[h].end);var u=l-d;if(u>=4*a){var c=0,p=s.clone();switch(o[h].repeat){case"daily":d.day()!=l.day()&&(c=1),d.dayOfYear(n.dayOfYear()),d.year(n.year()),d.subtract(7,"days"),l.dayOfYear(n.dayOfYear()),l.year(n.year()),l.subtract(7-c,"days"),p.add(1,"weeks");break;case"weekly":var f=l.diff(d,"days"),m=d.day();d.date(n.date()),d.month(n.month()),d.year(n.year()),l=d.clone(),d.day(m),l.day(m),l.add(f,"days"),d.subtract(1,"weeks"),l.subtract(1,"weeks"),p.add(1,"weeks");break;case"monthly":d.month()!=l.month()&&(c=1),d.month(n.month()),d.year(n.year()),d.subtract(1,"months"),l.month(n.month()),l.year(n.year()),l.subtract(1,"months"),l.add(c,"months"),p.add(1,"months");break;case"yearly":d.year()!=l.year()&&(c=1),d.year(n.year()),d.subtract(1,"years"),l.year(n.year()),l.subtract(1,"years"),l.add(c,"years"),p.add(1,"years");break;default:return void console.log("Wrong repeat format, allowed are: daily, weekly, monthly, yearly. Given:",o[h].repeat)}for(;p>d;)switch(i.hiddenDates.push({start:d.valueOf(),end:l.valueOf()}),o[h].repeat){case"daily":d.add(1,"days"),l.add(1,"days");break;case"weekly":d.add(1,"weeks"),l.add(1,"weeks");break;case"monthly":d.add(1,"months"),l.add(1,"months");break;case"yearly":d.add(1,"y"),l.add(1,"y");break;default:return void console.log("Wrong repeat format, allowed are: daily, weekly, monthly, yearly. Given:",o[h].repeat)}i.hiddenDates.push({start:d.valueOf(),end:l.valueOf()})}}e.removeDuplicates(i);var v=e.isHidden(i.range.start,i.hiddenDates),g=e.isHidden(i.range.end,i.hiddenDates),y=i.range.start,b=i.range.end;1==v.hidden&&(y=1==i.range.startToFront?v.startDate-1:v.endDate+1),1==g.hidden&&(b=1==i.range.endToFront?g.startDate-1:g.endDate+1),(1==v.hidden||1==g.hidden)&&i.range._applyRange(y,b)}},e.removeDuplicates=function(t){for(var e=t.hiddenDates,i=[],o=0;o<e.length;o++)for(var n=0;n<e.length;n++)o!=n&&1!=e[n].remove&&1!=e[o].remove&&(e[n].start>=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<e.length;o++)e[o].remove!==!0&&i.push(e[o]);t.hiddenDates=i,t.hiddenDates.sort(function(t,e){return t.start-e.start})},e.printDates=function(t){for(var e=0;e<t.length;e++)console.log(e,new Date(t[e].start),new Date(t[e].end),t[e].start,t[e].end,t[e].remove)},e.stepOverHiddenDates=function(t,e,i){for(var o=!1,n=e.current.valueOf(),s=0;s<e.hiddenDates.length;s++){var r=e.hiddenDates[s].start,a=e.hiddenDates[s].end;if(n>=r&&a>n){o=!0;break}}if(1==o&&n<e._end.valueOf()&&n!=i){var h=t(i),d=t(a);h.year()!=d.year()?e.switchedYear=!0:h.month()!=d.month()?e.switchedMonth=!0:h.dayOfYear()!=d.dayOfYear()&&(e.switchedDay=!0),e.current=d}},e.toScreen=function(t,i,o){if(0==t.body.hiddenDates.length){var n=t.range.conversion(o);return(i.valueOf()-n.offset)*n.scale}var s=e.isHidden(i,t.body.hiddenDates);1==s.hidden&&(i=s.startDate);var r=e.getHiddenDurationBetween(t.body.hiddenDates,t.range.start,t.range.end);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<t.length;n++){var s=t[n].start,r=t[n].end;s>=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<e.length;s++){var r=e[s].start,a=e[s].end;r>=i.start&&a<i.end&&o>=a&&(n+=a-r)}return n},e.getAccumulatedHiddenDuration=function(t,e,i){for(var o=0,n=0,s=e.start,r=0;r<t.length;r++){var a=t[r].start,h=t[r].end;if(a>=e.start&&h<e.end){if(n+=a-s,s=h,n>=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<e.length;i++){var o=e[i].start,n=e[i].end;if(t>=o&&n>t)return{hidden:!0,startDate:o,endDate:n}}return{hidden:!1,startDate:o,endDate:n}}},function(t,e,i){function o(){}var n=i(12),s=i(20),r=i(25),a=i(1),h=(i(8),i(10),i(24),i(29),i(39)),d=i(40),l=i(27),u=i(42);n(o.prototype),o.prototype._create=function(t){function e(t){i.isActive()&&i.emit("mousewheel",t)}this.dom={},this.dom.container=t,this.dom.root=document.createElement("div"),this.dom.background=document.createElement("div"),this.dom.backgroundVertical=document.createElement("div"),this.dom.backgroundHorizontal=document.createElement("div"),this.dom.centerContainer=document.createElement("div"),this.dom.leftContainer=document.createElement("div"),this.dom.rightContainer=document.createElement("div"),this.dom.center=document.createElement("div"),this.dom.left=document.createElement("div"),this.dom.right=document.createElement("div"),this.dom.top=document.createElement("div"),this.dom.bottom=document.createElement("div"),this.dom.shadowTop=document.createElement("div"),this.dom.shadowBottom=document.createElement("div"),this.dom.shadowTopLeft=document.createElement("div"),this.dom.shadowBottomLeft=document.createElement("div"),this.dom.shadowTopRight=document.createElement("div"),this.dom.shadowBottomRight=document.createElement("div"),this.dom.root.className="vis-timeline",this.dom.background.className="vis-panel vis-background",this.dom.backgroundVertical.className="vis-panel vis-background vis-vertical",this.dom.backgroundHorizontal.className="vis-panel vis-background vis-horizontal",this.dom.centerContainer.className="vis-panel vis-center",this.dom.leftContainer.className="vis-panel vis-left",this.dom.rightContainer.className="vis-panel vis-right",this.dom.top.className="vis-panel vis-top",this.dom.bottom.className="vis-panel vis-bottom",this.dom.left.className="vis-content",this.dom.center.className="vis-content",this.dom.right.className="vis-content",this.dom.shadowTop.className="vis-shadow vis-top",this.dom.shadowBottom.className="vis-shadow vis-bottom",this.dom.shadowTopLeft.className="vis-shadow vis-top",this.dom.shadowBottomLeft.className="vis-shadow vis-bottom",this.dom.shadowTopRight.className="vis-shadow vis-top",this.dom.shadowBottomRight.className="vis-shadow vis-bottom",this.dom.root.appendChild(this.dom.background),this.dom.root.appendChild(this.dom.backgroundVertical),this.dom.root.appendChild(this.dom.backgroundHorizontal),this.dom.root.appendChild(this.dom.centerContainer),this.dom.root.appendChild(this.dom.leftContainer),this.dom.root.appendChild(this.dom.rightContainer),this.dom.root.appendChild(this.dom.top),this.dom.root.appendChild(this.dom.bottom),this.dom.centerContainer.appendChild(this.dom.center),this.dom.leftContainer.appendChild(this.dom.left),this.dom.rightContainer.appendChild(this.dom.right),this.dom.centerContainer.appendChild(this.dom.shadowTop),this.dom.centerContainer.appendChild(this.dom.shadowBottom),this.dom.leftContainer.appendChild(this.dom.shadowTopLeft),this.dom.leftContainer.appendChild(this.dom.shadowBottomLeft),this.dom.rightContainer.appendChild(this.dom.shadowTopRight),this.dom.rightContainer.appendChild(this.dom.shadowBottomRight),this.on("rangechange",function(){this._redraw()}.bind(this)),this.on("touch",this._onTouch.bind(this)),this.on("pan",this._onDrag.bind(this));var i=this;this.on("change",function(t){t&&1==t.queue?i._redrawTimer||(i._redrawTimer=setTimeout(function(){i._redrawTimer=null,i._redraw()},0)):i._redraw()}),this.hammer=new s(this.dom.root),this.hammer.get("pinch").set({enable:!0}),this.hammer.get("pan").set({threshold:5,direction:30}),this.listeners={};var o=["tap","doubletap","press","pinch","pan","panstart","panmove","panend"];if(o.forEach(function(t){var e=function(e){i.isActive()&&i.emit(t,e)};i.hammer.on(t,e),i.listeners[t]=e}),r.onTouch(this.hammer,function(t){i.emit("touch",t)}.bind(this)),r.onRelease(this.hammer,function(t){i.emit("release",t)}.bind(this)),this.dom.root.addEventListener("mousewheel",e),this.dom.root.addEventListener("DOMMouseScroll",e),this.props={root:{},background:{},centerContainer:{},leftContainer:{},rightContainer:{},center:{},left:{},right:{},top:{},bottom:{},border:{},scrollTop:0,scrollTopMin:0},this.customTimes=[],this.touch={},this.redrawCount=0,!t)throw new Error("No container provided");t.appendChild(this.dom.root)},o.prototype.setOptions=function(t){if(t){var e=["width","height","minHeight","maxHeight","autoResize","start","end","clickToUse","dataAttributes","hiddenDates","locale","locales","moment","throttleRedraw"];if(a.selectiveExtend(e,this.options,t),"orientation"in t&&("string"==typeof t.orientation?this.options.orientation={item:t.orientation,axis:t.orientation}:"object"==typeof t.orientation&&("item"in t.orientation&&(this.options.orientation.item=t.orientation.item),"axis"in t.orientation&&(this.options.orientation.axis=t.orientation.axis))),"both"===this.options.orientation.axis){if(!this.timeAxis2){var i=this.timeAxis2=new h(this.body);i.setOptions=function(t){var e=t?a.extend({},t):{};e.orientation="top",h.prototype.setOptions.call(i,e)},this.components.push(i)}}else if(this.timeAxis2){var o=this.components.indexOf(this.timeAxis2);-1!==o&&this.components.splice(o,1),this.timeAxis2.destroy(),this.timeAxis2=null}if("function"==typeof t.drawPoints&&(t.drawPoints={onRender:t.drawPoints}),"hiddenDates"in this.options&&l.convertHiddenOptions(this.options.moment,this.body,this.options.hiddenDates),"clickToUse"in t&&(t.clickToUse?this.activator||(this.activator=new d(this.dom.root)):this.activator&&(this.activator.destroy(),delete this.activator)),"showCustomTime"in t)throw new Error("Option `showCustomTime` is deprecated. Create a custom time bar via timeline.addCustomTime(time [, id])");this._initAutoResize()}if(this.components.forEach(function(e){return e.setOptions(t)}),"configure"in t){this.configurator||(this.configurator=this._createConfigurator()),this.configurator.setOptions(t.configure);var n=a.deepExtend({},this.options);this.components.forEach(function(t){a.deepExtend(n,t.options)}),this.configurator.setModuleOptions({global:n})}this._origRedraw||(this._origRedraw=this._redraw.bind(this)),this._redraw=a.throttle(this._origRedraw,this.options.throttleRedraw),this._redraw()},o.prototype.isActive=function(){return!this.activator||this.activator.active},o.prototype.destroy=function(){this.setItems(null),this.setGroups(null),this.off(),this._stopAutoResize(),this.dom.root.parentNode&&this.dom.root.parentNode.removeChild(this.dom.root),this.dom=null,this.activator&&(this.activator.destroy(),delete this.activator);for(var t in this.listeners)this.listeners.hasOwnProperty(t)&&delete this.listeners[t];this.listeners=null,this.hammer=null,this.components.forEach(function(t){return t.destroy()}),this.body=null},o.prototype.setCustomTime=function(t,e){var i=this.customTimes.filter(function(t){return e===t.options.id});if(0===i.length)throw new Error("No custom time bar found with id "+JSON.stringify(e));i.length>0&&i[0].setCustomTime(t)},o.prototype.getCustomTime=function(t){var e=this.customTimes.filter(function(e){return e.options.id===t});if(0===e.length)throw new Error("No custom time bar found with id "+JSON.stringify(t));return e[0].getCustomTime()},o.prototype.setCustomTimeTitle=function(t,e){var i=this.customTimes.filter(function(t){return t.options.id===e});if(0===i.length)throw new Error("No custom time bar found with id "+JSON.stringify(e));return i.length>0?i[0].setCustomTitle(t):void 0},o.prototype.getEventProperties=function(t){
-return{event:t}},o.prototype.addCustomTime=function(t,e){var i=void 0!==t?a.convert(t,"Date").valueOf():new Date,o=this.customTimes.some(function(t){return t.options.id===e});if(o)throw new Error("A custom time with id "+JSON.stringify(e)+" already exists");var n=new u(this.body,a.extend({},this.options,{time:i,id:e}));return this.customTimes.push(n),this.components.push(n),this._redraw(),e},o.prototype.removeCustomTime=function(t){var e=this.customTimes.filter(function(e){return e.options.id===t});if(0===e.length)throw new Error("No custom time bar found with id "+JSON.stringify(t));e.forEach(function(t){this.customTimes.splice(this.customTimes.indexOf(t),1),this.components.splice(this.components.indexOf(t),1),t.destroy()}.bind(this))},o.prototype.getVisibleItems=function(){return this.itemSet&&this.itemSet.getVisibleItems()||[]},o.prototype.fit=function(t){var e=this.getDataRange();if(null!==e.min||null!==e.max){var i=e.max-e.min,o=new Date(e.min.valueOf()-.01*i),n=new Date(e.max.valueOf()+.01*i),s=t&&void 0!==t.animation?t.animation:!0;this.range.setRange(o,n,s)}},o.prototype.getDataRange=function(){throw new Error("Cannot invoke abstract method getDataRange")},o.prototype.setWindow=function(t,e,i){var o;if(1==arguments.length){var n=arguments[0];o=void 0!==n.animation?n.animation:!0,this.range.setRange(n.start,n.end,o)}else o=i&&void 0!==i.animation?i.animation:!0,this.range.setRange(t,e,o)},o.prototype.moveTo=function(t,e){var i=this.range.end-this.range.start,o=a.convert(t,"Date").valueOf(),n=o-i/2,s=o+i/2,r=e&&void 0!==e.animation?e.animation:!0;this.range.setRange(n,s,r)},o.prototype.getWindow=function(){var t=this.range.getRange();return{start:new Date(t.start),end:new Date(t.end)}},o.prototype.redraw=function(){this._redraw()},o.prototype._redraw=function(){var t=!1,e=this.options,i=this.props,o=this.dom;if(o){l.updateHiddenDates(this.options.moment,this.body,this.options.hiddenDates),"top"==e.orientation?(a.addClassName(o.root,"vis-top"),a.removeClassName(o.root,"vis-bottom")):(a.removeClassName(o.root,"vis-top"),a.addClassName(o.root,"vis-bottom")),o.root.style.maxHeight=a.option.asSize(e.maxHeight,""),o.root.style.minHeight=a.option.asSize(e.minHeight,""),o.root.style.width=a.option.asSize(e.width,""),i.border.left=(o.centerContainer.offsetWidth-o.centerContainer.clientWidth)/2,i.border.right=i.border.left,i.border.top=(o.centerContainer.offsetHeight-o.centerContainer.clientHeight)/2,i.border.bottom=i.border.top;var n=o.root.offsetHeight-o.root.clientHeight,s=o.root.offsetWidth-o.root.clientWidth;0===o.centerContainer.clientHeight&&(i.border.left=i.border.top,i.border.right=i.border.left),0===o.root.clientHeight&&(s=n),i.center.height=o.center.offsetHeight,i.left.height=o.left.offsetHeight,i.right.height=o.right.offsetHeight,i.top.height=o.top.clientHeight||-i.border.top,i.bottom.height=o.bottom.clientHeight||-i.border.bottom;var r=Math.max(i.left.height,i.center.height,i.right.height),h=i.top.height+r+i.bottom.height+n+i.border.top+i.border.bottom;o.root.style.height=a.option.asSize(e.height,h+"px"),i.root.height=o.root.offsetHeight,i.background.height=i.root.height-n;var d=i.root.height-i.top.height-i.bottom.height-n;i.centerContainer.height=d,i.leftContainer.height=d,i.rightContainer.height=i.leftContainer.height,i.root.width=o.root.offsetWidth,i.background.width=i.root.width-s,i.left.width=o.leftContainer.clientWidth||-i.border.left,i.leftContainer.width=i.left.width,i.right.width=o.rightContainer.clientWidth||-i.border.right,i.rightContainer.width=i.right.width;var u=i.root.width-i.left.width-i.right.width-s;i.center.width=u,i.centerContainer.width=u,i.top.width=u,i.bottom.width=u,o.background.style.height=i.background.height+"px",o.backgroundVertical.style.height=i.background.height+"px",o.backgroundHorizontal.style.height=i.centerContainer.height+"px",o.centerContainer.style.height=i.centerContainer.height+"px",o.leftContainer.style.height=i.leftContainer.height+"px",o.rightContainer.style.height=i.rightContainer.height+"px",o.background.style.width=i.background.width+"px",o.backgroundVertical.style.width=i.centerContainer.width+"px",o.backgroundHorizontal.style.width=i.background.width+"px",o.centerContainer.style.width=i.center.width+"px",o.top.style.width=i.top.width+"px",o.bottom.style.width=i.bottom.width+"px",o.background.style.left="0",o.background.style.top="0",o.backgroundVertical.style.left=i.left.width+i.border.left+"px",o.backgroundVertical.style.top="0",o.backgroundHorizontal.style.left="0",o.backgroundHorizontal.style.top=i.top.height+"px",o.centerContainer.style.left=i.left.width+"px",o.centerContainer.style.top=i.top.height+"px",o.leftContainer.style.left="0",o.leftContainer.style.top=i.top.height+"px",o.rightContainer.style.left=i.left.width+i.center.width+"px",o.rightContainer.style.top=i.top.height+"px",o.top.style.left=i.left.width+"px",o.top.style.top="0",o.bottom.style.left=i.left.width+"px",o.bottom.style.top=i.top.height+i.centerContainer.height+"px",this._updateScrollTop();var c=this.props.scrollTop;"top"!=e.orientation.item&&(c+=Math.max(this.props.centerContainer.height-this.props.center.height-this.props.border.top-this.props.border.bottom,0)),o.center.style.left="0",o.center.style.top=c+"px",o.left.style.left="0",o.left.style.top=c+"px",o.right.style.left="0",o.right.style.top=c+"px";var p=0==this.props.scrollTop?"hidden":"",f=this.props.scrollTop==this.props.scrollTopMin?"hidden":"";if(o.shadowTop.style.visibility=p,o.shadowBottom.style.visibility=f,o.shadowTopLeft.style.visibility=p,o.shadowBottomLeft.style.visibility=f,o.shadowTopRight.style.visibility=p,o.shadowBottomRight.style.visibility=f,this.components.forEach(function(e){t=e.redraw()||t}),t){var m=3;this.redrawCount<m?(this.redrawCount++,this._redraw()):console.log("WARNING: infinite loop in redraw?"),this.redrawCount=0}}},o.prototype.repaint=function(){throw new Error("Function repaint is deprecated. Use redraw instead.")},o.prototype.setCurrentTime=function(t){if(!this.currentTime)throw new Error("Option showCurrentTime must be true");this.currentTime.setCurrentTime(t)},o.prototype.getCurrentTime=function(){if(!this.currentTime)throw new Error("Option showCurrentTime must be true");return this.currentTime.getCurrentTime()},o.prototype._toTime=function(t){return l.toTime(this,t,this.props.center.width)},o.prototype._toGlobalTime=function(t){return l.toTime(this,t,this.props.root.width)},o.prototype._toScreen=function(t){return l.toScreen(this,t,this.props.center.width)},o.prototype._toGlobalScreen=function(t){return l.toScreen(this,t,this.props.root.width)},o.prototype._initAutoResize=function(){1==this.options.autoResize?this._startAutoResize():this._stopAutoResize()},o.prototype._startAutoResize=function(){var t=this;this._stopAutoResize(),this._onResize=function(){return 1!=t.options.autoResize?void t._stopAutoResize():void(t.dom.root&&(t.dom.root.offsetWidth!=t.props.lastWidth||t.dom.root.offsetHeight!=t.props.lastHeight)&&(t.props.lastWidth=t.dom.root.offsetWidth,t.props.lastHeight=t.dom.root.offsetHeight,t.emit("change")))},a.addEventListener(window,"resize",this._onResize),this.watchTimer=setInterval(this._onResize,1e3)},o.prototype._stopAutoResize=function(){this.watchTimer&&(clearInterval(this.watchTimer),this.watchTimer=void 0),this._onResize&&(a.removeEventListener(window,"resize",this._onResize),this._onResize=null)},o.prototype._onTouch=function(t){this.touch.allowDragging=!0,this.touch.initialScrollTop=this.props.scrollTop},o.prototype._onPinch=function(t){this.touch.allowDragging=!1},o.prototype._onDrag=function(t){if(this.touch.allowDragging){var e=t.deltaY,i=this._getScrollTop(),o=this._setScrollTop(this.touch.initialScrollTop+e);o!=i&&(this._redraw(),this.emit("verticalDrag"))}},o.prototype._setScrollTop=function(t){return this.props.scrollTop=t,this._updateScrollTop(),this.props.scrollTop},o.prototype._updateScrollTop=function(){var t=Math.min(this.props.centerContainer.height-this.props.center.height,0);return t!=this.props.scrollTopMin&&("top"!=this.options.orientation.item&&(this.props.scrollTop+=t-this.props.scrollTopMin),this.props.scrollTopMin=t),this.props.scrollTop>0&&(this.props.scrollTop=0),this.props.scrollTop<t&&(this.props.scrollTop=t),this.props.scrollTop},o.prototype._getScrollTop=function(){return this.props.scrollTop},o.prototype._createConfigurator=function(){throw new Error("Cannot invoke abstract method _createConfigurator")},t.exports=o},function(t,e,i){function o(t,e){this.body=t,this.defaultOptions={type:null,orientation:{item:"bottom"},align:"auto",stack:!0,groupOrderSwap:function(t,e,i){var o=e.order;e.order=t.order,t.order=o},groupOrder:"order",selectable:!0,multiselect:!1,itemsAlwaysDraggable:!1,editable:{updateTime:!1,updateGroup:!1,add:!1,remove:!1},groupEditable:{order:!1,add:!1,remove:!1},snap:h.snap,onAdd:function(t,e){e(t)},onUpdate:function(t,e){e(t)},onMove:function(t,e){e(t)},onRemove:function(t,e){e(t)},onMoving:function(t,e){e(t)},onAddGroup:function(t,e){e(t)},onMoveGroup:function(t,e){e(t)},onRemoveGroup:function(t,e){e(t)},margin:{item:{horizontal:10,vertical:10},axis:20}},this.options=s.extend({},this.defaultOptions),this.itemOptions={type:{start:"Date",end:"Date"}},this.conversion={toScreen:t.util.toScreen,toTime:t.util.toTime},this.dom={},this.props={},this.hammer=null;var i=this;this.itemsData=null,this.groupsData=null,this.itemListeners={add:function(t,e,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.groups={},this.groupIds=[],this.selection=[],this.stackDirty=!0,this.touchParams={},this.groupTouchParams={},this._create(),this.setOptions(e)}var n=i(20),s=i(1),r=i(8),a=i(10),h=i(30),d=i(26),l=i(31),u=i(35),c=i(36),p=i(37),f=i(33),m=i(38),v="__ungrouped__",g="__background__";o.prototype=new d,o.types={background:m,box:c,range:f,point:p},o.prototype._create=function(){var t=document.createElement("div");t.className="vis-itemset",t["timeline-itemset"]=this,this.dom.frame=t;var e=document.createElement("div");e.className="vis-background",t.appendChild(e),this.dom.background=e;var i=document.createElement("div");i.className="vis-foreground",t.appendChild(i),this.dom.foreground=i;var o=document.createElement("div");o.className="vis-axis",this.dom.axis=o;var s=document.createElement("div");s.className="vis-labelset",this.dom.labelSet=s,this._updateUngrouped();var r=new u(g,null,this);r.show(),this.groups[g]=r,this.hammer=new n(this.body.dom.centerContainer),this.hammer.on("hammer.input",function(t){t.isFirst&&this._onTouch(t)}.bind(this)),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:30}),this.hammer.on("tap",this._onSelectItem.bind(this)),this.hammer.on("press",this._onMultiSelectItem.bind(this)),this.hammer.on("doubletap",this._onAddItem.bind(this)),this.groupHammer=new n(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:30}),this.show()},o.prototype.setOptions=function(t){if(t){var e=["type","align","order","stack","selectable","multiselect","itemsAlwaysDraggable","multiselectPerGroup","groupOrder","dataAttributes","template","groupTemplate","hide","snap","groupOrderSwap"];s.selectiveExtend(e,this.options,t),"orientation"in t&&("string"==typeof t.orientation?this.options.orientation.item="top"===t.orientation?"top":"bottom":"object"==typeof t.orientation&&"item"in t.orientation&&(this.options.orientation.item=t.orientation.item)),"margin"in t&&("number"==typeof t.margin?(this.options.margin.axis=t.margin,this.options.margin.item.horizontal=t.margin,this.options.margin.item.vertical=t.margin):"object"==typeof t.margin&&(s.selectiveExtend(["axis"],this.options.margin,t.margin),"item"in t.margin&&("number"==typeof t.margin.item?(this.options.margin.item.horizontal=t.margin.item,this.options.margin.item.vertical=t.margin.item):"object"==typeof t.margin.item&&s.selectiveExtend(["horizontal","vertical"],this.options.margin.item,t.margin.item)))),"editable"in t&&("boolean"==typeof t.editable?(this.options.editable.updateTime=t.editable,this.options.editable.updateGroup=t.editable,this.options.editable.add=t.editable,this.options.editable.remove=t.editable):"object"==typeof t.editable&&s.selectiveExtend(["updateTime","updateGroup","add","remove"],this.options.editable,t.editable)),"groupEditable"in t&&("boolean"==typeof t.groupEditable?(this.options.groupEditable.order=t.groupEditable,this.options.groupEditable.add=t.groupEditable,this.options.groupEditable.remove=t.groupEditable):"object"==typeof t.groupEditable&&s.selectiveExtend(["order","add","remove"],this.options.groupEditable,t.groupEditable));var i=function(e){var i=t[e];if(i){if(!(i instanceof Function))throw new Error("option "+e+" must be a function "+e+"(item, callback)");this.options[e]=i}}.bind(this);["onAdd","onUpdate","onRemove","onMove","onMoving","onAddGroup","onMoveGroup","onRemoveGroup"].forEach(i),this.markDirty()}},o.prototype.markDirty=function(t){this.groupIds=[],this.stackDirty=!0,t&&t.refreshItems&&s.forEach(this.items,function(t){t.dirty=!0,t.displayed&&t.redraw()})},o.prototype.destroy=function(){this.hide(),this.setItems(null),this.setGroups(null),this.hammer=null,this.body=null,this.conversion=null},o.prototype.hide=function(){this.dom.frame.parentNode&&this.dom.frame.parentNode.removeChild(this.dom.frame),this.dom.axis.parentNode&&this.dom.axis.parentNode.removeChild(this.dom.axis),this.dom.labelSet.parentNode&&this.dom.labelSet.parentNode.removeChild(this.dom.labelSet)},o.prototype.show=function(){this.dom.frame.parentNode||this.body.dom.center.appendChild(this.dom.frame),this.dom.axis.parentNode||this.body.dom.backgroundVertical.appendChild(this.dom.axis),this.dom.labelSet.parentNode||this.body.dom.left.appendChild(this.dom.labelSet)},o.prototype.setSelection=function(t){var e,i,o,n;for(void 0==t&&(t=[]),Array.isArray(t)||(t=[t]),e=0,i=this.selection.length;i>e;e++)o=this.selection[e],n=this.items[o],n&&n.unselect();for(this.selection=[],e=0,i=t.length;i>e;e++)o=t[e],n=this.items[o],n&&(this.selection.push(o),n.select())},o.prototype.getSelection=function(){return this.selection.concat([])},o.prototype.getVisibleItems=function(){var t=this.body.range.getRange(),e=this.body.util.toScreen(t.start),i=this.body.util.toScreen(t.end),o=[];for(var n in this.groups)if(this.groups.hasOwnProperty(n))for(var s=this.groups[n],r=s.visibleItems,a=0;a<r.length;a++){var h=r[a];h.left<i&&h.left+h.width>e&&o.push(h.id)}return o},o.prototype._deselect=function(t){for(var e=this.selection,i=0,o=e.length;o>i;i++)if(e[i]==t){e.splice(i,1);break}},o.prototype.redraw=function(){var t=this.options.margin,e=this.body.range,i=s.option.asSize,o=this.options,n=o.orientation.item,r=!1,a=this.dom.frame;this.props.top=this.body.domProps.top.height+this.body.domProps.border.top,this.props.left=this.body.domProps.left.width+this.body.domProps.border.left,a.className="vis-itemset",r=this._orderGroups()||r;var h=e.end-e.start,d=h!=this.lastVisibleInterval||this.props.width!=this.props.lastWidth;d&&(this.stackDirty=!0),this.lastVisibleInterval=h,this.props.lastWidth=this.props.width;var l=this.stackDirty,u=this._firstGroup(),c={item:t.item,axis:t.axis},p={item:t.item,axis:t.item.vertical/2},f=0,m=t.axis+t.item.vertical;return this.groups[g].redraw(e,p,l),s.forEach(this.groups,function(t){var i=t==u?c:p,o=t.redraw(e,i,l);r=o||r,f+=t.height}),f=Math.max(f,m),this.stackDirty=!1,a.style.height=i(f),this.props.width=a.offsetWidth,this.props.height=f,this.dom.axis.style.top=i("top"==n?this.body.domProps.top.height+this.body.domProps.border.top:this.body.domProps.top.height+this.body.domProps.centerContainer.height),this.dom.axis.style.left="0",r=this._isResized()||r},o.prototype._firstGroup=function(){var t="top"==this.options.orientation.item?0:this.groupIds.length-1,e=this.groupIds[t],i=this.groups[e]||this.groups[v];return i||null},o.prototype._updateUngrouped=function(){var t,e,i=this.groups[v];this.groups[g];if(this.groupsData){if(i){i.hide(),delete this.groups[v];for(e in this.items)if(this.items.hasOwnProperty(e)){t=this.items[e],t.parent&&t.parent.remove(t);var o=this._getGroupId(t.data),n=this.groups[o];n&&n.add(t)||t.hide()}}}else if(!i){var s=null,r=null;i=new l(s,r,this),this.groups[v]=i;for(e in this.items)this.items.hasOwnProperty(e)&&(t=this.items[e],i.add(t));i.show()}},o.prototype.getLabelSet=function(){return this.dom.labelSet},o.prototype.setItems=function(t){var e,i=this,o=this.itemsData;if(t){if(!(t instanceof r||t instanceof a))throw new TypeError("Data must be an instance of DataSet or DataView");this.itemsData=t}else this.itemsData=null;if(o&&(s.forEach(this.itemListeners,function(t,e){o.off(e,t)}),e=o.getIds(),this._onRemove(e)),this.itemsData){var n=this.id;s.forEach(this.itemListeners,function(t,e){i.itemsData.on(e,t,n)}),e=this.itemsData.getIds(),this._onAdd(e),this._updateUngrouped()}},o.prototype.getItems=function(){return this.itemsData},o.prototype.setGroups=function(t){var e,i=this;if(this.groupsData&&(s.forEach(this.groupListeners,function(t,e){i.groupsData.off(e,t)}),e=this.groupsData.getIds(),this.groupsData=null,this._onRemoveGroups(e)),t){if(!(t instanceof r||t instanceof a))throw new TypeError("Data must be an instance of DataSet or DataView");this.groupsData=t}else this.groupsData=null;if(this.groupsData){var o=this.id;s.forEach(this.groupListeners,function(t,e){i.groupsData.on(e,t,o)}),e=this.groupsData.getIds(),this._onAddGroups(e)}this._updateUngrouped(),this._order(),this.body.emitter.emit("change",{queue:!0})},o.prototype.getGroups=function(){return this.groupsData},o.prototype.removeItem=function(t){var e=this.itemsData.get(t),i=this.itemsData.getDataSet();e&&this.options.onRemove(e,function(e){e&&i.remove(t)})},o.prototype._getType=function(t){return t.type||this.options.type||(t.end?"range":"box")},o.prototype._getGroupId=function(t){var e=this._getType(t);return"background"==e&&void 0==t.group?g:this.groupsData?t.group:v},o.prototype._onUpdate=function(t){var e=this;t.forEach(function(t){var i,n=e.itemsData.get(t,e.itemOptions),s=e.items[t],r=e._getType(n),a=o.types[r];if(s&&(a&&s instanceof a?e._updateItem(s,n):(i=s.selected,e._removeItem(s),s=null)),!s){if(!a)throw"rangeoverflow"==r?new TypeError('Item type "rangeoverflow" is deprecated. Use css styling instead: .vis-item.vis-range .vis-item-content {overflow: visible;}'):new TypeError('Unknown item type "'+r+'"');s=new a(n,e.conversion,e.options),s.id=t,e._addItem(s),i&&(this.selection.push(t),s.select())}}.bind(this)),this._order(),this.stackDirty=!0,this.body.emitter.emit("change",{queue:!0})},o.prototype._onAdd=o.prototype._onUpdate,o.prototype._onRemove=function(t){var e=0,i=this;t.forEach(function(t){var o=i.items[t];o&&(e++,i._removeItem(o))}),e&&(this._order(),this.stackDirty=!0,this.body.emitter.emit("change",{queue:!0}))},o.prototype._order=function(){s.forEach(this.groups,function(t){t.order()})},o.prototype._onUpdateGroups=function(t){this._onAddGroups(t)},o.prototype._onAddGroups=function(t){var e=this;t.forEach(function(t){var i=e.groupsData.get(t),o=e.groups[t];if(o)o.setData(i);else{if(t==v||t==g)throw new Error("Illegal group id. "+t+" is a reserved id.");var n=Object.create(e.options);s.extend(n,{height:null}),o=new l(t,i,e),e.groups[t]=o;for(var r in e.items)if(e.items.hasOwnProperty(r)){var a=e.items[r];a.data.group==t&&o.add(a)}o.order(),o.show()}}),this.body.emitter.emit("change",{queue:!0})},o.prototype._onRemoveGroups=function(t){var e=this.groups;t.forEach(function(t){var i=e[t];i&&(i.hide(),delete e[t])}),this.markDirty(),this.body.emitter.emit("change",{queue:!0})},o.prototype._orderGroups=function(){if(this.groupsData){var t=this.groupsData.getIds({order:this.options.groupOrder}),e=!s.equalArray(t,this.groupIds);if(e){var i=this.groups;t.forEach(function(t){i[t].hide()}),t.forEach(function(t){i[t].show()}),this.groupIds=t}return e}return!1},o.prototype._addItem=function(t){this.items[t.id]=t;var e=this._getGroupId(t.data),i=this.groups[e];i&&i.add(t)},o.prototype._updateItem=function(t,e){var i=t.data.group,o=t.data.subgroup;if(t.setData(e),i!=t.data.group||o!=t.data.subgroup){var n=this.groups[i];n&&n.remove(t);var s=this._getGroupId(t.data),r=this.groups[s];r&&r.add(t)}},o.prototype._removeItem=function(t){t.hide(),delete this.items[t.id];var e=this.selection.indexOf(t.id);-1!=e&&this.selection.splice(e,1),t.parent&&t.parent.remove(t)},o.prototype._constructByEndArray=function(t){for(var e=[],i=0;i<t.length;i++)t[i]instanceof f&&e.push(t[i]);return e},o.prototype._onTouch=function(t){this.touchParams.item=this.itemFromTarget(t),this.touchParams.dragLeftItem=t.target.dragLeftItem||!1,this.touchParams.dragRightItem=t.target.dragRightItem||!1,this.touchParams.itemProps=null},o.prototype._getGroupIndex=function(t){for(var e=0;e<this.groupIds.length;e++)if(t==this.groupIds[e])return e},o.prototype._onDragStart=function(t){var e,i=this.touchParams.item||null,o=this;if(i&&(i.selected||this.options.itemsAlwaysDraggable)){if(!this.options.editable.updateTime&&!this.options.editable.updateGroup&&!i.editable)return;if(i.editable===!1)return;var n=this.touchParams.dragLeftItem,s=this.touchParams.dragRightItem;if(n)e={item:n,initialX:t.center.x,dragLeft:!0,data:this._cloneItemData(i.data)},this.touchParams.itemProps=[e];else if(s)e={item:s,initialX:t.center.x,dragRight:!0,data:this._cloneItemData(i.data)},this.touchParams.itemProps=[e];else{this.touchParams.selectedItem=i;var r=this._getGroupIndex(i.data.group),a=this.options.itemsAlwaysDraggable&&!i.selected?[i.id]:this.getSelection();this.touchParams.itemProps=a.map(function(e){var i=o.items[e],n=o._getGroupIndex(i.data.group);return{item:i,initialX:t.center.x,groupOffset:r-n,data:this._cloneItemData(i.data)}}.bind(this))}t.stopPropagation()}else this.options.editable.add&&(t.srcEvent.ctrlKey||t.srcEvent.metaKey)&&this._onDragStartAddItem(t)},o.prototype._onDragStartAddItem=function(t){var e=this.options.snap||null,i=s.getAbsoluteLeft(this.dom.frame),o=t.center.x-i-10,n=this.body.util.toTime(o),r=this.body.util.getScale(),a=this.body.util.getStep(),h=e?e(n,r,a):n,d=h,l={type:"range",start:h,end:d,content:"new item"},u=s.randomUUID();l[this.itemsData._fieldId]=u;var c=this.groupFromTarget(t);c&&(l.group=c.groupId);var p=new f(l,this.conversion,this.options);p.id=u,p.data=this._cloneItemData(l),this._addItem(p);var m={item:p,dragRight:!0,initialX:t.center.x,data:p.data};this.touchParams.itemProps=[m],t.stopPropagation()},o.prototype._onDrag=function(t){if(this.touchParams.itemProps){t.stopPropagation();var e=this,i=this.options.snap||null,o=this.body.dom.root.offsetLeft+this.body.domProps.left.width,n=this.body.util.getScale(),r=this.body.util.getStep(),a=this.touchParams.selectedItem,h=e.options.editable.updateGroup,d=null;if(h&&a&&void 0!=a.data.group){var l=e.groupFromTarget(t);l&&(d=this._getGroupIndex(l.groupId))}this.touchParams.itemProps.forEach(function(a){var h=e.body.util.toTime(t.center.x-o),l=e.body.util.toTime(a.initialX-o),u=h-l,c=this._cloneItemData(a.item.data);if(a.item.editable!==!1){var p=e.options.editable.updateTime||a.item.editable===!0;if(p)if(a.dragLeft){if(void 0!=c.start){var f=s.convert(a.data.start,"Date"),m=new Date(f.valueOf()+u);c.start=i?i(m,n,r):m}}else if(a.dragRight){if(void 0!=c.end){var v=s.convert(a.data.end,"Date"),g=new Date(v.valueOf()+u);c.end=i?i(g,n,r):g}}else if(void 0!=c.start){var f=s.convert(a.data.start,"Date").valueOf(),m=new Date(f+u);if(void 0!=c.end){var v=s.convert(a.data.end,"Date"),y=v.valueOf()-f.valueOf();c.start=i?i(m,n,r):m,c.end=new Date(c.start.valueOf()+y)}else c.start=i?i(m,n,r):m}var b=e.options.editable.updateGroup||a.item.editable===!0;if(b&&!a.dragLeft&&!a.dragRight&&null!=d&&void 0!=c.group){var w=d-a.groupOffset;w=Math.max(0,w),w=Math.min(e.groupIds.length-1,w),c.group=e.groupIds[w]}c=this._cloneItemData(c),e.options.onMoving(c,function(t){t&&a.item.setData(this._cloneItemData(t,"Date"))}.bind(this))}}.bind(this)),this.stackDirty=!0,this.body.emitter.emit("change")}},o.prototype._moveToGroup=function(t,e){var i=this.groups[e];if(i&&i.groupId!=t.data.group){var o=t.parent;o.remove(t),o.order(),i.add(t),i.order(),t.data.group=i.groupId}},o.prototype._onDragEnd=function(t){if(this.touchParams.itemProps){t.stopPropagation();var e=this,i=this.itemsData.getDataSet(),o=this.touchParams.itemProps;this.touchParams.itemProps=null,o.forEach(function(t){var o=t.item.id,n=null!=e.itemsData.get(o,e.itemOptions);if(n){var s=this._cloneItemData(t.item.data);e.options.onMove(s,function(n){n?(n[i._fieldId]=o,i.update(n)):(t.item.setData(t.data),e.stackDirty=!0,e.body.emitter.emit("change"))})}else e.options.onAdd(t.item.data,function(i){e._removeItem(t.item),i&&e.itemsData.getDataSet().add(i),e.stackDirty=!0,e.body.emitter.emit("change")})}.bind(this))}},o.prototype._onGroupDragStart=function(t){this.options.groupEditable.order&&(this.groupTouchParams.group=this.groupFromTarget(t),this.groupTouchParams.group&&(t.stopPropagation(),this.groupTouchParams.originalOrder=this.groupsData.getIds({order:this.options.groupOrder})))},o.prototype._onGroupDrag=function(t){if(this.options.groupEditable.order&&this.groupTouchParams.group){t.stopPropagation();var e=this.groupFromTarget(t);if(e&&e.height!=this.groupTouchParams.group.height){var i=e.top<this.groupTouchParams.group.top,o=t.center?t.center.y:t.clientY,n=s.getAbsoluteTop(e.dom.foreground),r=this.groupTouchParams.group.height;if(i){if(o>n+r)return}else{var a=e.height;if(n+a-r>o)return}}if(e&&e!=this.groupTouchParams.group){var h=this.groupsData,d=h.get(e.groupId),l=h.get(this.groupTouchParams.group.groupId);l&&d&&(this.options.groupOrderSwap(l,d,this.groupsData),this.groupsData.update(l),this.groupsData.update(d));var u=this.groupsData.getIds({order:this.options.groupOrder});if(!s.equalArray(u,this.groupTouchParams.originalOrder))for(var h=this.groupsData,c=this.groupTouchParams.originalOrder,p=this.groupTouchParams.group.groupId,f=Math.min(c.length,u.length),m=0,v=0,g=0;f>m;){for(;f>m+v&&f>m+g&&u[m+v]==c[m+g];)m++;if(m+v>=f)break;if(u[m+v]!=p)if(c[m+g]!=p){var y=u.indexOf(c[m+g]),b=h.get(u[m+v]),w=h.get(c[m+g]);this.options.groupOrderSwap(b,w,h),h.update(b),h.update(w);var _=u[m+v];u[m+v]=c[m+g],u[y]=_,m++}else g=1;else v=1}}}},o.prototype._onGroupDragEnd=function(t){if(this.options.groupEditable.order&&this.groupTouchParams.group){t.stopPropagation();var e=this,i=e.groupTouchParams.group.groupId,o=e.groupsData.getDataSet(),n=s.extend({},o.get(i));e.options.onMoveGroup(n,function(t){if(t)t[o._fieldId]=i,o.update(t);else{var n=o.getIds({order:e.options.groupOrder});if(!s.equalArray(n,e.groupTouchParams.originalOrder))for(var r=e.groupTouchParams.originalOrder,a=Math.min(r.length,n.length),h=0;a>h;){for(;a>h&&n[h]==r[h];)h++;if(h>=a)break;var d=n.indexOf(r[h]),l=o.get(n[h]),u=o.get(r[h]);e.options.groupOrderSwap(l,u,o),groupsData.update(l),groupsData.update(u);var c=n[h];n[h]=r[h],n[d]=c,h++}}}),e.body.emitter.emit("groupDragged",{groupId:i})}},o.prototype._onSelectItem=function(t){if(this.options.selectable){var e=t.srcEvent&&(t.srcEvent.ctrlKey||t.srcEvent.metaKey),i=t.srcEvent&&t.srcEvent.shiftKey;if(e||i)return void this._onMultiSelectItem(t);var o=this.getSelection(),n=this.itemFromTarget(t),s=n?[n.id]:[];this.setSelection(s);var r=this.getSelection();(r.length>0||o.length>0)&&this.body.emitter.emit("select",{items:r,event:t})}},o.prototype._onAddItem=function(t){if(this.options.selectable&&this.options.editable.add){var e=this,i=this.options.snap||null,o=this.itemFromTarget(t);if(t.stopPropagation(),o){var n=e.itemsData.get(o.id);this.options.onUpdate(n,function(t){t&&e.itemsData.getDataSet().update(t)})}else{var r=s.getAbsoluteLeft(this.dom.frame),a=t.center.x-r,h=this.body.util.toTime(a),d=this.body.util.getScale(),l=this.body.util.getStep(),u={start:i?i(h,d,l):h,content:"new item"};if("range"===this.options.type){var c=this.body.util.toTime(a+this.props.width/5);u.end=i?i(c,d,l):c}u[this.itemsData._fieldId]=s.randomUUID();var p=this.groupFromTarget(t);p&&(u.group=p.groupId),u=this._cloneItemData(u),this.options.onAdd(u,function(t){t&&e.itemsData.getDataSet().add(t)})}}},o.prototype._onMultiSelectItem=function(t){if(this.options.selectable){var e=this.itemFromTarget(t);if(e){var i=this.options.multiselect?this.getSelection():[],n=t.srcEvent&&t.srcEvent.shiftKey||!1;if(n&&this.options.multiselect){var s=this.itemsData.get(e.id).group,r=void 0;this.options.multiselectPerGroup&&i.length>0&&(r=this.itemsData.get(i[0]).group),this.options.multiselectPerGroup&&void 0!=r&&r!=s||i.push(e.id);var a=o._getItemRange(this.itemsData.get(i,this.itemOptions));if(!this.options.multiselectPerGroup||r==s){i=[];for(var h in this.items)if(this.items.hasOwnProperty(h)){var d=this.items[h],l=d.data.start,u=void 0!==d.data.end?d.data.end:l;!(l>=a.min&&u<=a.max)||this.options.multiselectPerGroup&&r!=this.itemsData.get(d.id).group||d instanceof m||i.push(d.id)}}}else{var c=i.indexOf(e.id);-1==c?i.push(e.id):i.splice(c,1)}this.setSelection(i),this.body.emitter.emit("select",{items:this.getSelection(),event:t})}}},o._getItemRange=function(t){var e=null,i=null;return t.forEach(function(t){(null==i||t.start<i)&&(i=t.start),void 0!=t.end?(null==e||t.end>e)&&(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;i<this.groupIds.length;i++){var o=this.groupIds[i],n=this.groups[o],r=n.dom.foreground,a=s.getAbsoluteTop(r);if(e>a&&e<a+r.offsetHeight)return n;if("top"===this.options.orientation.item){if(i===this.groupIds.length-1&&e>a)return n}else if(0===i&&e<a+r.offset)return n}return null},o.itemSetFromTarget=function(t){for(var e=t.target;e;){if(e.hasOwnProperty("timeline-itemset"))return e["timeline-itemset"];e=e.parentNode}return null},o.prototype._cloneItemData=function(t,e){var i=s.extend({},t);return e||(e=this.itemsData.getDataSet()._options.type),void 0!=i.start&&(i.start=s.convert(i.start,e&&e.start||"Date")),void 0!=i.end&&(i.end=s.convert(i.end,e&&e.end||"Date")),i},t.exports=o},function(t,e,i){function o(t,e,i,s){this.moment=n,this.current=this.moment(),this._start=this.moment(),this._end=this.moment(),this.autoScale=!0,this.scale="day",this.step=1,this.setRange(t,e,i),this.switchedDay=!1,this.switchedMonth=!1,this.switchedYear=!1,Array.isArray(s)?this.hiddenDates=s:void 0!=s?this.hiddenDates=[s]:this.hiddenDates=[],this.format=o.FORMAT}var n=i(2),s=i(27),r=i(1);o.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:""}},o.prototype.setMoment=function(t){this.moment=t,this.current=this.moment(this.current),this._start=this.moment(this._start),this._end=this.moment(this._end)},o.prototype.setFormat=function(t){var e=r.deepExtend({},o.FORMAT);this.format=r.deepExtend(e,t)},o.prototype.setRange=function(t,e,i){if(!(t instanceof Date&&e instanceof Date))throw"No legal start or end date in method setRange";this._start=void 0!=t?this.moment(t.valueOf()):new Date,this._end=void 0!=e?this.moment(e.valueOf()):new Date,this.autoScale&&this.setMinimumStep(i)},o.prototype.start=function(){this.current=this._start.clone(),this.roundToMinor()},o.prototype.roundToMinor=function(){
-switch(this.scale){case"year":this.current.year(this.step*Math.floor(this.current.year()/this.step)),this.current.month(0);case"month":this.current.date(1);case"day":case"weekday":this.current.hours(0);case"hour":this.current.minutes(0);case"minute":this.current.seconds(0);case"second":this.current.milliseconds(0)}if(1!=this.step)switch(this.scale){case"millisecond":this.current.subtract(this.current.milliseconds()%this.step,"milliseconds");break;case"second":this.current.subtract(this.current.seconds()%this.step,"seconds");break;case"minute":this.current.subtract(this.current.minutes()%this.step,"minutes");break;case"hour":this.current.subtract(this.current.hours()%this.step,"hours");break;case"weekday":case"day":this.current.subtract((this.current.date()-1)%this.step,"day");break;case"month":this.current.subtract(this.current.month()%this.step,"month");break;case"year":this.current.subtract(this.current.year()%this.step,"year")}},o.prototype.hasNext=function(){return this.current.valueOf()<=this._end.valueOf()},o.prototype.next=function(){var t=this.current.valueOf();if(this.current.month()<6)switch(this.scale){case"millisecond":this.current.add(this.step,"millisecond");break;case"second":this.current.add(this.step,"second");break;case"minute":this.current.add(this.step,"minute");break;case"hour":this.current.add(this.step,"hour"),this.current.subtract(this.current.hours()%this.step,"hour");break;case"weekday":case"day":this.current.add(this.step,"day");break;case"month":this.current.add(this.step,"month");break;case"year":this.current.add(this.step,"year")}else switch(this.scale){case"millisecond":this.current.add(this.step,"millisecond");break;case"second":this.current.add(this.step,"second");break;case"minute":this.current.add(this.step,"minute");break;case"hour":this.current.add(this.step,"hour");break;case"weekday":case"day":this.current.add(this.step,"day");break;case"month":this.current.add(this.step,"month");break;case"year":this.current.add(this.step,"year")}if(1!=this.step)switch(this.scale){case"millisecond":this.current.milliseconds()<this.step&&this.current.milliseconds(0);break;case"second":this.current.seconds()<this.step&&this.current.seconds(0);break;case"minute":this.current.minutes()<this.step&&this.current.minutes(0);break;case"hour":this.current.hours()<this.step&&this.current.hours(0);break;case"weekday":case"day":this.current.date()<this.step+1&&this.current.date(1);break;case"month":this.current.month()<this.step&&this.current.month(0);break;case"year":}this.current.valueOf()==t&&(this.current=this._end.clone()),s.stepOverHiddenDates(this.moment,this,t)},o.prototype.getCurrent=function(){return this.current},o.prototype.setScale=function(t){t&&"string"==typeof t.scale&&(this.scale=t.scale,this.step=t.step>0?t.step:1,this.autoScale=!1)},o.prototype.setAutoScale=function(t){this.autoScale=t},o.prototype.setMinimumStep=function(t){if(void 0!=t){var e=31104e6,i=2592e6,o=864e5,n=36e5,s=6e4,r=1e3,a=1;1e3*e>t&&(this.scale="year",this.step=1e3),500*e>t&&(this.scale="year",this.step=500),100*e>t&&(this.scale="year",this.step=100),50*e>t&&(this.scale="year",this.step=50),10*e>t&&(this.scale="year",this.step=10),5*e>t&&(this.scale="year",this.step=5),e>t&&(this.scale="year",this.step=1),3*i>t&&(this.scale="month",this.step=3),i>t&&(this.scale="month",this.step=1),5*o>t&&(this.scale="day",this.step=5),2*o>t&&(this.scale="day",this.step=2),o>t&&(this.scale="day",this.step=1),o/2>t&&(this.scale="weekday",this.step=1),4*n>t&&(this.scale="hour",this.step=4),n>t&&(this.scale="hour",this.step=1),15*s>t&&(this.scale="minute",this.step=15),10*s>t&&(this.scale="minute",this.step=10),5*s>t&&(this.scale="minute",this.step=5),s>t&&(this.scale="minute",this.step=1),15*r>t&&(this.scale="second",this.step=15),10*r>t&&(this.scale="second",this.step=10),5*r>t&&(this.scale="second",this.step=5),r>t&&(this.scale="second",this.step=1),200*a>t&&(this.scale="millisecond",this.step=200),100*a>t&&(this.scale="millisecond",this.step=100),50*a>t&&(this.scale="millisecond",this.step=50),10*a>t&&(this.scale="millisecond",this.step=10),5*a>t&&(this.scale="millisecond",this.step=5),a>t&&(this.scale="millisecond",this.step=1)}},o.snap=function(t,e,i){var o=n(t);if("year"==e){var s=o.year()+Math.round(o.month()/12);o.year(Math.round(s/i)*i),o.month(0),o.date(0),o.hours(0),o.minutes(0),o.seconds(0),o.milliseconds(0)}else if("month"==e)o.date()>15?(o.date(1),o.add(1,"month")):o.date(1),o.hours(0),o.minutes(0),o.seconds(0),o.milliseconds(0);else if("day"==e){switch(i){case 5:case 2:o.hours(24*Math.round(o.hours()/24));break;default:o.hours(12*Math.round(o.hours()/12))}o.minutes(0),o.seconds(0),o.milliseconds(0)}else if("weekday"==e){switch(i){case 5:case 2:o.hours(12*Math.round(o.hours()/12));break;default:o.hours(6*Math.round(o.hours()/6))}o.minutes(0),o.seconds(0),o.milliseconds(0)}else if("hour"==e){switch(i){case 4:o.minutes(60*Math.round(o.minutes()/60));break;default:o.minutes(30*Math.round(o.minutes()/30))}o.seconds(0),o.milliseconds(0)}else if("minute"==e){switch(i){case 15:case 10:o.minutes(5*Math.round(o.minutes()/5)),o.seconds(0);break;case 5:o.seconds(60*Math.round(o.seconds()/60));break;default:o.seconds(30*Math.round(o.seconds()/30))}o.milliseconds(0)}else if("second"==e)switch(i){case 15:case 10:o.seconds(5*Math.round(o.seconds()/5)),o.milliseconds(0);break;case 5:o.milliseconds(1e3*Math.round(o.milliseconds()/1e3));break;default:o.milliseconds(500*Math.round(o.milliseconds()/500))}else if("millisecond"==e){var r=i>5?i/2:1;o.milliseconds(Math.round(o.milliseconds()/r)*r)}return o},o.prototype.isMajor=function(){if(1==this.switchedYear)switch(this.switchedYear=!1,this.scale){case"year":case"month":case"weekday":case"day":case"hour":case"minute":case"second":case"millisecond":return!0;default:return!1}else if(1==this.switchedMonth)switch(this.switchedMonth=!1,this.scale){case"weekday":case"day":case"hour":case"minute":case"second":case"millisecond":return!0;default:return!1}else if(1==this.switchedDay)switch(this.switchedDay=!1,this.scale){case"millisecond":case"second":case"minute":case"hour":return!0;default:return!1}var t=this.moment(this.current);switch(this.scale){case"millisecond":return 0==t.milliseconds();case"second":return 0==t.seconds();case"minute":return 0==t.hours()&&0==t.minutes();case"hour":return 0==t.hours();case"weekday":case"day":return 1==t.date();case"month":return 0==t.month();case"year":return!1;default:return!1}},o.prototype.getLabelMinor=function(t){void 0==t&&(t=this.current);var e=this.format.minorLabels[this.scale];return e&&e.length>0?this.moment(t).format(e):""},o.prototype.getLabelMajor=function(t){void 0==t&&(t=this.current);var e=this.format.majorLabels[this.scale];return e&&e.length>0?this.moment(t).format(e):""},o.prototype.getClassName=function(){function t(t){return t/h%2==0?" vis-even":" vis-odd"}function e(t){return t.isSame(new Date,"day")?" vis-today":t.isSame(s().add(1,"day"),"day")?" vis-tomorrow":t.isSame(s().add(-1,"day"),"day")?" vis-yesterday":""}function i(t){return t.isSame(new Date,"week")?" vis-current-week":""}function o(t){return t.isSame(new Date,"month")?" vis-current-month":""}function n(t){return t.isSame(new Date,"year")?" vis-current-year":""}var s=this.moment,r=this.moment(this.current),a=r.locale?r.locale("en"):r.lang("en"),h=this.step;switch(this.scale){case"millisecond":return t(a.milliseconds()).trim();case"second":return t(a.seconds()).trim();case"minute":return t(a.minutes()).trim();case"hour":var d=a.hours();return 4==this.step&&(d=d+"-h"+(d+4)),"vis-h"+d+e(a)+t(a.hours());case"weekday":return"vis-"+a.format("dddd").toLowerCase()+e(a)+i(a)+t(a.date());case"day":var l=a.date(),u=a.format("MMMM").toLowerCase();return"vis-day"+l+" vis-"+u+o(a)+t(l-1);case"month":return"vis-"+a.format("MMMM").toLowerCase()+o(a)+t(a.month());case"year":var c=a.year();return"vis-year"+c+n(a)+t(c);default:return""}},t.exports=o},function(t,e,i){function o(t,e,i){this.groupId=t,this.subgroups={},this.subgroupIndex=0,this.subgroupOrderer=e&&e.subgroupOrder,this.itemSet=i,this.dom={},this.props={label:{width:0,height:0}},this.className=null,this.items={},this.visibleItems=[],this.orderedItems={byStart:[],byEnd:[]},this.checkRangedItems=!1;var o=this;this.itemSet.body.emitter.on("checkRangedItems",function(){o.checkRangedItems=!0}),this._create(),this.setData(e)}var n=i(1),s=i(32);i(33);o.prototype._create=function(){var t=document.createElement("div");this.itemSet.options.groupEditable.order?t.className="vis-label draggable":t.className="vis-label",this.dom.label=t;var e=document.createElement("div");e.className="vis-inner",t.appendChild(e),this.dom.inner=e;var i=document.createElement("div");i.className="vis-group",i["timeline-group"]=this,this.dom.foreground=i,this.dom.background=document.createElement("div"),this.dom.background.className="vis-group",this.dom.axis=document.createElement("div"),this.dom.axis.className="vis-group",this.dom.marker=document.createElement("div"),this.dom.marker.style.visibility="hidden",this.dom.marker.innerHTML="?",this.dom.background.appendChild(this.dom.marker)},o.prototype.setData=function(t){var e;if(e=this.itemSet.options&&this.itemSet.options.groupTemplate?this.itemSet.options.groupTemplate(t):t&&t.content,e instanceof Element){for(this.dom.inner.appendChild(e);this.dom.inner.firstChild;)this.dom.inner.removeChild(this.dom.inner.firstChild);this.dom.inner.appendChild(e)}else void 0!==e&&null!==e?this.dom.inner.innerHTML=e:this.dom.inner.innerHTML=this.groupId||"";this.dom.label.title=t&&t.title||"",this.dom.inner.firstChild?n.removeClassName(this.dom.inner,"vis-hidden"):n.addClassName(this.dom.inner,"vis-hidden");var i=t&&t.className||null;i!=this.className&&(this.className&&(n.removeClassName(this.dom.label,this.className),n.removeClassName(this.dom.foreground,this.className),n.removeClassName(this.dom.background,this.className),n.removeClassName(this.dom.axis,this.className)),n.addClassName(this.dom.label,i),n.addClassName(this.dom.foreground,i),n.addClassName(this.dom.background,i),n.addClassName(this.dom.axis,i),this.className=i),this.style&&(n.removeCssText(this.dom.label,this.style),this.style=null),t&&t.style&&(n.addCssText(this.dom.label,t.style),this.style=t.style)},o.prototype.getLabelWidth=function(){return this.props.label.width},o.prototype.redraw=function(t,e,i){var o=!1,r=this.dom.marker.clientHeight;if(r!=this.lastMarkerHeight&&(this.lastMarkerHeight=r,n.forEach(this.items,function(t){t.dirty=!0,t.displayed&&t.redraw()}),i=!0),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.left=u.offsetLeft,this.width=u.offsetWidth,o=n.updateProperty(this,"height",l)||o,o=n.updateProperty(this.props.label,"width",this.dom.inner.clientWidth)||o,o=n.updateProperty(this.props.label,"height",this.dom.inner.clientHeight)||o,this.dom.background.style.height=l+"px",this.dom.foreground.style.height=l+"px",this.dom.label.style.height=l+"px";for(var c=0,p=this.visibleItems.length;p>c;c++){var f=this.visibleItems[c];f.repositionY(e)}return o},o.prototype._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;i<t.length;i++)this.subgroups[t[i].subgroup].index=i}},o.prototype.resetSubgroups=function(){for(var t in this.subgroups)this.subgroups.hasOwnProperty(t)&&(this.subgroups[t].visible=!1)},o.prototype.remove=function(t){delete this.items[t.id],t.setParent(null);var e=this.visibleItems.indexOf(t);if(-1!=e&&this.visibleItems.splice(e,1),void 0!==t.data.subgroup){var i=this.subgroups[t.data.subgroup];if(i){var o=i.items.indexOf(t);i.items.splice(o,1),i.items.length||(delete this.subgroups[t.data.subgroup],this.subgroupIndex--),this.orderSubgroups()}}},o.prototype.removeFromDataSet=function(t){this.itemSet.removeItem(t.id)},o.prototype.order=function(){for(var t=n.toArray(this.items),e=[],i=[],o=0;o<t.length;o++)void 0!==t[o].data.end&&i.push(t[o]),e.push(t[o]);this.orderedItems={byStart:e,byEnd:i},s.orderByStart(this.orderedItems.byStart),s.orderByEnd(this.orderedItems.byEnd)},o.prototype._updateVisibleItems=function(t,e,i){var o,s,r=[],a={},h=(i.end-i.start)/4,d=i.start-h,l=i.end+h,u=function(t){return d>t?-1:l>=t?0:1};if(e.length>0)for(s=0;s<e.length;s++)this._checkIfVisibleWithReference(e[s],r,a,i);var c=n.binarySearchCustom(t.byStart,u,"data","start");if(this._traceVisible(c,t.byStart,r,a,function(t){return t.data.start<d||t.data.start>l}),1==this.checkRangedItems)for(this.checkRangedItems=!1,s=0;s<t.byEnd.length;s++)this._checkIfVisibleWithReference(t.byEnd[s],r,a,i);else{var p=n.binarySearchCustom(t.byEnd,u,"data","end");this._traceVisible(p,t.byEnd,r,a,function(t){return t.data.end<d||t.data.end>l})}for(s=0;s<r.length;s++)o=r[s],o.displayed||o.show(),o.repositionX();return r},o.prototype._traceVisible=function(t,e,i,o,n){var s,r;if(-1!=t){for(r=t;r>=0&&(s=e[r],!n(s));r--)void 0===o[s.id]&&(o[s.id]=!0,i.push(s));for(r=t+1;r<e.length&&(s=e[r],!n(s));r++)void 0===o[s.id]&&(o[s.id]=!0,i.push(s))}},o.prototype._checkIfVisible=function(t,e,i){t.isVisible(i)?(t.displayed||t.show(),t.repositionX(),e.push(t)):t.displayed&&t.hide()},o.prototype._checkIfVisibleWithReference=function(t,e,i,o){t.isVisible(o)?void 0===i[t.id]&&(i[t.id]=!0,e.push(t)):t.displayed&&t.hide()},t.exports=o},function(t,e){var i=.001;e.orderByStart=function(t){t.sort(function(t,e){return t.data.start-e.data.start})},e.orderByEnd=function(t){t.sort(function(t,e){var i="end"in t.data?t.data.end:t.data.start,o="end"in e.data?e.data.end:e.data.start;return i-o})},e.stack=function(t,i,o){var n,s;if(o)for(n=0,s=t.length;s>n;n++)t[n].top=null;for(n=0,s=t.length;s>n;n++){var r=t[n];if(r.stack&&null===r.top){r.top=i.axis;do{for(var a=null,h=0,d=t.length;d>h;h++){var l=t[h];if(null!==l.top&&l!==r&&l.stack&&e.collision(r,l,i.item)){a=l;break}}null!=a&&(r.top=a.top+a.height+i.item.vertical)}while(a)}}},e.nostack=function(t,e,i){var o,n,s;for(o=0,n=t.length;n>o;o++)if(void 0!==t[o].data.subgroup){s=e.axis;for(var r in i)i.hasOwnProperty(r)&&1==i[r].visible&&i[r].index<i[t[o].data.subgroup].index&&(s+=i[r].height+e.item.vertical);t[o].top=s}else t[o].top=e.axis},e.collision=function(t,e,o){return t.left-o.horizontal+i<e.left+e.width&&t.left+t.width+o.horizontal-i>e.left&&t.top-o.vertical+i<e.top+e.height&&t.top+t.height+o.vertical-i>e.top}},function(t,e,i){function o(t,e,i){if(this.props={content:{width:0}},this.overflow=!1,t){if(void 0==t.start)throw new Error('Property "start" missing in item '+t.id);if(void 0==t.end)throw new Error('Property "end" missing in item '+t.id)}n.call(this,t,e,i)}var n=(i(20),i(34));o.prototype=new n(null,null,null),o.prototype.baseClassName="vis-item vis-range",o.prototype.isVisible=function(t){return this.data.start<t.end&&this.data.end>t.start},o.prototype.redraw=function(){var t=this.dom;if(t||(this.dom={},t=this.dom,t.box=document.createElement("div"),t.frame=document.createElement("div"),t.frame.className="vis-item-overflow",t.box.appendChild(t.frame),t.content=document.createElement("div"),t.content.className="vis-item-content",t.frame.appendChild(t.content),t.box["timeline-item"]=this,this.dirty=!0),!this.parent)throw new Error("Cannot redraw item: no parent attached");if(!t.box.parentNode){var e=this.parent.dom.foreground;if(!e)throw new Error("Cannot redraw item: parent has no foreground container element");e.appendChild(t.box)}if(this.displayed=!0,this.dirty){this._updateContents(this.dom.content),this._updateTitle(this.dom.box),this._updateDataAttributes(this.dom.box),this._updateStyle(this.dom.box);var i=(this.options.editable.updateTime||this.options.editable.updateGroup||this.editable===!0)&&this.editable!==!1,o=(this.data.className?" "+this.data.className:"")+(this.selected?" vis-selected":"")+(i?" vis-editable":" vis-readonly");t.box.className=this.baseClassName+o,this.overflow="hidden"!==window.getComputedStyle(t.frame).overflow,this.dom.content.style.maxWidth="none",this.props.content.width=this.dom.content.offsetWidth,this.height=this.dom.box.offsetHeight,this.dom.content.style.maxWidth="",this.dirty=!1}this._repaintDeleteButton(t.box),this._repaintDragLeft(),this._repaintDragRight()},o.prototype.show=function(){this.displayed||this.redraw()},o.prototype.hide=function(){if(this.displayed){var t=this.dom.box;t.parentNode&&t.parentNode.removeChild(t),this.displayed=!1}},o.prototype.repositionX=function(t){var e,i,o=this.parent.width,n=this.conversion.toScreen(this.data.start),s=this.conversion.toScreen(this.data.end);(void 0===t||t===!0)&&(-o>n&&(n=-o),s>2*o&&(s=2*o));var r=Math.max(s-n,1);switch(this.overflow?(this.left=n,this.width=r+this.props.content.width,i=this.props.content.width):(this.left=n,this.width=r,i=Math.min(s-n,this.props.content.width)),this.dom.box.style.left=this.left+"px",this.dom.box.style.width=r+"px",this.options.align){case"left":this.dom.content.style.left="0";break;case"right":this.dom.content.style.left=Math.max(r-i,0)+"px";break;case"center":this.dom.content.style.left=Math.max((r-i)/2,0)+"px";break;default:e=this.overflow?s>0?Math.max(-n,0):-i:0>n?-n:0,this.dom.content.style.left=e+"px"}},o.prototype.repositionY=function(){var t=this.options.orientation.item,e=this.dom.box;"top"==t?e.style.top=this.top+"px":e.style.top=this.parent.height-this.top-this.height+"px"},o.prototype._repaintDragLeft=function(){if(this.selected&&this.options.editable.updateTime&&!this.dom.dragLeft){var t=document.createElement("div");t.className="vis-drag-left",t.dragLeftItem=this,this.dom.box.appendChild(t),this.dom.dragLeft=t}else!this.selected&&this.dom.dragLeft&&(this.dom.dragLeft.parentNode&&this.dom.dragLeft.parentNode.removeChild(this.dom.dragLeft),this.dom.dragLeft=null)},o.prototype._repaintDragRight=function(){if(this.selected&&this.options.editable.updateTime&&!this.dom.dragRight){var t=document.createElement("div");t.className="vis-drag-right",t.dragRightItem=this,this.dom.box.appendChild(t),this.dom.dragRight=t}else!this.selected&&this.dom.dragRight&&(this.dom.dragRight.parentNode&&this.dom.dragRight.parentNode.removeChild(this.dom.dragRight),this.dom.dragRight=null)},t.exports=o},function(t,e,i){function o(t,e,i){this.id=null,this.parent=null,this.data=t,this.dom=null,this.conversion=e||{},this.options=i||{},this.selected=!1,this.displayed=!1,this.dirty=!0,this.top=null,this.left=null,this.width=null,this.height=null,this.editable=null,this.data&&this.data.hasOwnProperty("editable")&&"boolean"==typeof this.data.editable&&(this.editable=t.editable)}var n=i(20),s=i(1);o.prototype.stack=!0,o.prototype.select=function(){this.selected=!0,this.dirty=!0,this.displayed&&this.redraw()},o.prototype.unselect=function(){this.selected=!1,this.dirty=!0,this.displayed&&this.redraw()},o.prototype.setData=function(t){var e=void 0!=t.group&&this.data.group!=t.group;e&&this.parent.itemSet._moveToGroup(this,t.group),t.hasOwnProperty("editable")&&"boolean"==typeof t.editable&&(this.editable=t.editable),this.data=t,this.dirty=!0,this.displayed&&this.redraw()},o.prototype.setParent=function(t){this.displayed?(this.hide(),this.parent=t,this.parent&&this.show()):this.parent=t},o.prototype.isVisible=function(t){return!1},o.prototype.show=function(){return!1},o.prototype.hide=function(){return!1},o.prototype.redraw=function(){},o.prototype.repositionX=function(){},o.prototype.repositionY=function(){},o.prototype._repaintDeleteButton=function(t){var e=(this.options.editable.remove||this.data.editable===!0)&&this.data.editable!==!1;if(this.selected&&e&&!this.dom.deleteButton){var i=this,o=document.createElement("div");o.className="vis-delete",o.title="Delete this item",new n(o).on("tap",function(t){t.stopPropagation(),i.parent.removeFromDataSet(i)}),t.appendChild(o),this.dom.deleteButton=o}else!this.selected&&this.dom.deleteButton&&(this.dom.deleteButton.parentNode&&this.dom.deleteButton.parentNode.removeChild(this.dom.deleteButton),this.dom.deleteButton=null)},o.prototype._updateContents=function(t){var e;if(this.options.template){var i=this.parent.itemSet.itemsData.get(this.id);e=this.options.template(i)}else e=this.data.content;var o=this._contentToString(this.content)!==this._contentToString(e);if(o){if(e instanceof Element)t.innerHTML="",t.appendChild(e);else if(void 0!=e)t.innerHTML=e;else if("background"!=this.data.type||void 0!==this.data.content)throw new Error('Property "content" missing in item '+this.id);this.content=e}},o.prototype._updateTitle=function(t){null!=this.data.title?t.title=this.data.title||"":t.removeAttribute("vis-title")},o.prototype._updateDataAttributes=function(t){if(this.options.dataAttributes&&this.options.dataAttributes.length>0){var e=[];if(Array.isArray(this.options.dataAttributes))e=this.options.dataAttributes;else{if("all"!=this.options.dataAttributes)return;e=Object.keys(this.data)}for(var i=0;i<e.length;i++){var o=e[i],n=this.data[o];null!=n?t.setAttribute("data-"+o,n):t.removeAttribute("data-"+o)}}},o.prototype._updateStyle=function(t){this.style&&(s.removeCssText(t,this.style),this.style=null),this.data.style&&(s.addCssText(t,this.data.style),this.style=this.data.style)},o.prototype._contentToString=function(t){return"string"==typeof t?t:t&&"outerHTML"in t?t.outerHTML:t},o.prototype.getWidthLeft=function(){return 0},o.prototype.getWidthRight=function(){return 0},t.exports=o},function(t,e,i){function o(t,e,i){n.call(this,t,e,i),this.width=0,this.height=0,this.top=0,this.left=0}var n=(i(1),i(31));o.prototype=Object.create(n.prototype),o.prototype.redraw=function(t,e,i){var o=!1;this.visibleItems=this._updateVisibleItems(this.orderedItems,this.visibleItems,t),this.width=this.dom.background.offsetWidth,this.dom.background.style.height="0";for(var n=0,s=this.visibleItems.length;s>n;n++){var r=this.visibleItems[n];r.repositionY(e)}return o},o.prototype.show=function(){this.dom.background.parentNode||this.itemSet.dom.background.appendChild(this.dom.background)},t.exports=o},function(t,e,i){function o(t,e,i){if(this.props={dot:{width:0,height:0},line:{width:0,height:0}},t&&void 0==t.start)throw new Error('Property "start" missing in item '+t);n.call(this,t,e,i)}var n=i(34);i(1);o.prototype=new n(null,null,null),o.prototype.isVisible=function(t){var e=(t.end-t.start)/4;return this.data.start>t.start-e&&this.data.start<t.end+e},o.prototype.redraw=function(){var t=this.dom;if(t||(this.dom={},t=this.dom,t.box=document.createElement("DIV"),t.content=document.createElement("DIV"),t.content.className="vis-item-content",t.box.appendChild(t.content),t.line=document.createElement("DIV"),t.line.className="vis-line",t.dot=document.createElement("DIV"),t.dot.className="vis-dot",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(!t.line.parentNode){var i=this.parent.dom.background;if(!i)throw new Error("Cannot redraw item: parent has no background container element");i.appendChild(t.line)}if(!t.dot.parentNode){var o=this.parent.dom.axis;if(!i)throw new Error("Cannot redraw item: parent has no axis container element");o.appendChild(t.dot)}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 n=(this.options.editable.updateTime||this.options.editable.updateGroup||this.editable===!0)&&this.editable!==!1,s=(this.data.className?" "+this.data.className:"")+(this.selected?" vis-selected":"")+(n?" vis-editable":" vis-readonly");t.box.className="vis-item vis-box"+s,t.line.className="vis-item vis-line"+s,t.dot.className="vis-item vis-dot"+s,this.props.dot.height=t.dot.offsetHeight,this.props.dot.width=t.dot.offsetWidth,this.props.line.width=t.line.offsetWidth,this.width=t.box.offsetWidth,this.height=t.box.offsetHeight,this.dirty=!1}this._repaintDeleteButton(t.box)},o.prototype.show=function(){this.displayed||this.redraw()},o.prototype.hide=function(){if(this.displayed){var t=this.dom;t.box.parentNode&&t.box.parentNode.removeChild(t.box),t.line.parentNode&&t.line.parentNode.removeChild(t.line),t.dot.parentNode&&t.dot.parentNode.removeChild(t.dot),this.displayed=!1}},o.prototype.repositionX=function(){var t=this.conversion.toScreen(this.data.start),e=this.options.align;"right"==e?this.left=t-this.width:"left"==e?this.left=t:this.left=t-this.width/2,this.dom.box.style.left=this.left+"px",this.dom.line.style.left=t-this.props.line.width/2+"px",this.dom.dot.style.left=t-this.props.dot.width/2+"px"},o.prototype.repositionY=function(){var t=this.options.orientation.item,e=this.dom.box,i=this.dom.line,o=this.dom.dot;if("top"==t)e.style.top=(this.top||0)+"px",i.style.top="0",i.style.height=this.parent.top+this.top+1+"px",i.style.bottom="";else{var n=this.parent.itemSet.props.height,s=n-this.parent.top-this.parent.height+this.top;e.style.top=(this.parent.height-this.top-this.height||0)+"px",i.style.top=n-s+"px",i.style.bottom="0"}o.style.top=-this.props.dot.height/2+"px"},o.prototype.getWidthLeft=function(){return this.width/2},o.prototype.getWidthRight=function(){return this.width/2},t.exports=o},function(t,e,i){function o(t,e,i){if(this.props={dot:{top:0,width:0,height:0},content:{height:0,marginLeft:0}},t&&void 0==t.start)throw new Error('Property "start" missing in item '+t);n.call(this,t,e,i)}var n=i(34);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.start<t.end+e},o.prototype.redraw=function(){var t=this.dom;if(t||(this.dom={},t=this.dom,t.point=document.createElement("div"),t.content=document.createElement("div"),t.content.className="vis-item-content",t.point.appendChild(t.content),t.dot=document.createElement("div"),t.point.appendChild(t.dot),t.point["timeline-item"]=this,this.dirty=!0),!this.parent)throw new Error("Cannot redraw item: no parent attached");if(!t.point.parentNode){var e=this.parent.dom.foreground;if(!e)throw new Error("Cannot redraw item: parent has no foreground container element");e.appendChild(t.point)}if(this.displayed=!0,this.dirty){this._updateContents(this.dom.content),this._updateTitle(this.dom.point),this._updateDataAttributes(this.dom.point),this._updateStyle(this.dom.point);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.point.className="vis-item vis-point"+o,t.dot.className="vis-item vis-dot"+o,this.props.dot.width=t.dot.offsetWidth,this.props.dot.height=t.dot.offsetHeight,this.props.content.height=t.content.offsetHeight,t.content.style.marginLeft=2*this.props.dot.width+"px",this.width=t.point.offsetWidth,this.height=t.point.offsetHeight,t.dot.style.top=(this.height-this.props.dot.height)/2+"px",t.dot.style.left=this.props.dot.width/2+"px",this.dirty=!1}this._repaintDeleteButton(t.point)},o.prototype.show=function(){this.displayed||this.redraw()},o.prototype.hide=function(){this.displayed&&(this.dom.point.parentNode&&this.dom.point.parentNode.removeChild(this.dom.point),this.displayed=!1)},o.prototype.repositionX=function(){var t=this.conversion.toScreen(this.data.start);this.left=t-this.props.dot.width,this.dom.point.style.left=this.left+"px"},o.prototype.repositionY=function(){var t=this.options.orientation.item,e=this.dom.point;"top"==t?e.style.top=this.top+"px":e.style.top=this.parent.height-this.top-this.height+"px"},o.prototype.getWidthLeft=function(){return this.props.dot.width},o.prototype.getWidthRight=function(){return this.width-this.props.dot.width},t.exports=o},function(t,e,i){function o(t,e,i){if(this.props={content:{width:0}},this.overflow=!1,t){if(void 0==t.start)throw new Error('Property "start" missing in item '+t.id);if(void 0==t.end)throw new Error('Property "end" missing in item '+t.id)}n.call(this,t,e,i)}var n=(i(20),i(34)),s=i(35),r=i(33);o.prototype=new n(null,null,null),o.prototype.baseClassName="vis-item vis-background",o.prototype.stack=!1,o.prototype.isVisible=function(t){return this.data.start<t.end&&this.data.end>t.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].index<r&&(a+=n[h].height+t.item.vertical);a+=0!=r?t.axis-.5*t.item.vertical:0,this.dom.box.style.top=a+"px",this.dom.box.style.bottom=""}else{var a=this.parent.top,d=0;for(var h in n)if(n.hasOwnProperty(h)&&1==n[h].visible){var l=n[h].height+t.item.vertical;d+=l,n[h].index>r&&(a+=l)}i=this.parent.subgroups[o].height+t.item.vertical,this.dom.box.style.top=this.parent.height-d+a+"px",this.dom.box.style.bottom=""}}else this.parent instanceof s?(i=Math.max(this.parent.height,this.parent.itemSet.body.domProps.center.height,this.parent.itemSet.body.domProps.centerContainer.height),this.dom.box.style.top=e?"0":"",this.dom.box.style.bottom=e?"":"0"):(i=this.parent.height,this.dom.box.style.top=this.parent.top+"px",this.dom.box.style.bottom="");this.dom.box.style.height=i+"px"},t.exports=o},function(t,e,i){function o(t,e){this.dom={foreground:null,lines:[],majorTexts:[],minorTexts:[],redundant:{lines:[],majorTexts:[],minorTexts:[]}},this.props={range:{start:0,end:0,minimumStep:0},lineTop:0},this.defaultOptions={orientation:{axis:"bottom"},showMinorLabels:!0,showMajorLabels:!0,maxMinorChars:7,format:r.FORMAT,moment:h,timeAxis:null},this.options=n.extend({},this.defaultOptions),this.body=t,this._create(),this.setOptions(e)}var n=i(1),s=i(26),r=i(30),a=i(27),h=i(2);o.prototype=new s,o.prototype.setOptions=function(t){t&&(n.selectiveExtend(["showMinorLabels","showMajorLabels","maxMinorChars","hiddenDates","timeAxis","moment"],this.options,t),n.selectiveDeepExtend(["format"],this.options,t),"orientation"in t&&("string"==typeof t.orientation?this.options.orientation.axis=t.orientation:"object"==typeof t.orientation&&"axis"in t.orientation&&(this.options.orientation.axis=t.orientation.axis)),"locale"in t&&("function"==typeof h.locale?h.locale(t.locale):h.lang(t.locale)))},o.prototype._create=function(){this.dom.foreground=document.createElement("div"),this.dom.background=document.createElement("div"),this.dom.foreground.className="vis-time-axis vis-foreground",this.dom.background.className="vis-time-axis vis-background"},o.prototype.destroy=function(){this.dom.foreground.parentNode&&this.dom.foreground.parentNode.removeChild(this.dom.foreground),this.dom.background.parentNode&&this.dom.background.parentNode.removeChild(this.dom.background),this.body=null},o.prototype.redraw=function(){var t=this.props,e=this.dom.foreground,i=this.dom.background,o="top"==this.options.orientation.axis?this.body.dom.top:this.body.dom.bottom,n=e.parentNode!==o;this._calculateCharSize();var s=this.options.showMinorLabels&&"none"!==this.options.orientation.axis,r=this.options.showMajorLabels&&"none"!==this.options.orientation.axis;t.minorLabelHeight=s?t.minorCharHeight:0,t.majorLabelHeight=r?t.majorCharHeight:0,t.height=t.minorLabelHeight+t.majorLabelHeight,t.width=e.offsetWidth,t.minorLineHeight=this.body.domProps.root.height-t.majorLabelHeight-("top"==this.options.orientation.axis?this.body.domProps.bottom.height:this.body.domProps.top.height),t.minorLineWidth=1,t.majorLineHeight=t.minorLineHeight+t.majorLabelHeight,t.majorLineWidth=1;var a=e.nextSibling,h=i.nextSibling;return e.parentNode&&e.parentNode.removeChild(e),i.parentNode&&i.parentNode.removeChild(i),e.style.height=this.props.height+"px",this._repaintLabels(),a?o.insertBefore(e,a):o.appendChild(e),h?this.body.dom.backgroundVertical.insertBefore(i,h):this.body.dom.backgroundVertical.appendChild(i),this._isResized()||n},o.prototype._repaintLabels=function(){var t=this.options.orientation.axis,e=n.convert(this.body.range.start,"Number"),i=n.convert(this.body.range.end,"Number"),o=this.body.util.toTime((this.props.minorCharWidth||10)*this.options.maxMinorChars).valueOf(),s=o-a.getHiddenDurationBefore(this.options.moment,this.body.hiddenDates,this.body.range,o);s-=this.body.util.toTime(0).valueOf();var h=new r(new Date(e),new Date(i),s,this.body.hiddenDates);h.setMoment(this.options.moment),this.options.format&&h.setFormat(this.options.format),this.options.timeAxis&&h.setScale(this.options.timeAxis),this.step=h;var l=this.dom;l.redundant.lines=l.lines,l.redundant.majorTexts=l.majorTexts,l.redundant.minorTexts=l.minorTexts,l.lines=[],l.majorTexts=[],l.minorTexts=[];var u,c,p,f,m,v,g,y,b,w,_=0,x=void 0,k=0,O=1e3;for(h.start(),c=h.getCurrent(),f=this.body.util.toScreen(c);h.hasNext()&&O>k;){k++,m=h.isMajor(),w=h.getClassName(),b=h.getLabelMinor(),u=c,p=f,h.next(),c=h.getCurrent(),v=h.isMajor(),f=this.body.util.toScreen(c),g=_,_=f-p;var 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,h.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||d||(console.warn("Something is wrong with the Timeline scale. Limited drawing of grid lines to "+O+" lines."),d=!0),this.options.showMajorLabels){var C=this.body.util.toTime(0),T=h.getLabelMajor(C),S=T.length*(this.props.majorCharWidth||10)+10;(void 0==x||x>S)&&this._repaintMajorText(0,T,t,w)}n.forEach(this.dom.redundant,function(t){for(;t.length;){var e=t.pop();e&&e.parentNode&&e.parentNode.removeChild(e)}})},o.prototype._repaintMinorText=function(t,e,i,o){var n=this.dom.redundant.minorTexts.shift();if(!n){var s=document.createTextNode("");n=document.createElement("div"),n.appendChild(s),this.dom.foreground.appendChild(n)}return this.dom.minorTexts.push(n),n.childNodes[0].nodeValue=e,n.style.top="top"==i?this.props.majorLabelHeight+"px":"0",n.style.left=t+"px",n.className="vis-text vis-minor "+o,n},o.prototype._repaintMajorText=function(t,e,i,o){var n=this.dom.redundant.majorTexts.shift();if(!n){var s=document.createTextNode(e);n=document.createElement("div"),n.appendChild(s),this.dom.foreground.appendChild(n)}return this.dom.majorTexts.push(n),n.childNodes[0].nodeValue=e,n.className="vis-text vis-major "+o,n.style.top="top"==i?"0":this.props.minorLabelHeight+"px",n.style.left=t+"px",n},o.prototype._repaintMinorLine=function(t,e,i,o){var n=this.dom.redundant.lines.shift();n||(n=document.createElement("div"),this.dom.background.appendChild(n)),this.dom.lines.push(n);var s=this.props;return"top"==i?n.style.top=s.majorLabelHeight+"px":n.style.top=this.body.domProps.top.height+"px",n.style.height=s.minorLineHeight+"px",n.style.left=t-s.minorLineWidth/2+"px",n.style.width=e+"px",n.className="vis-grid vis-vertical vis-minor "+o,n},o.prototype._repaintMajorLine=function(t,e,i,o){var n=this.dom.redundant.lines.shift();n||(n=document.createElement("div"),this.dom.background.appendChild(n)),this.dom.lines.push(n);var s=this.props;return"top"==i?n.style.top="0":n.style.top=this.body.domProps.top.height+"px",n.style.left=t-s.majorLineWidth/2+"px",n.style.height=s.majorLineHeight+"px",n.style.width=e+"px",n.className="vis-grid vis-vertical vis-major "+o,n},o.prototype._calculateCharSize=function(){this.dom.measureCharMinor||(this.dom.measureCharMinor=document.createElement("DIV"),this.dom.measureCharMinor.className="vis-text vis-minor vis-measure",this.dom.measureCharMinor.style.position="absolute",this.dom.measureCharMinor.appendChild(document.createTextNode("0")),this.dom.foreground.appendChild(this.dom.measureCharMinor)),this.props.minorCharHeight=this.dom.measureCharMinor.clientHeight,this.props.minorCharWidth=this.dom.measureCharMinor.clientWidth,this.dom.measureCharMajor||(this.dom.measureCharMajor=document.createElement("DIV"),this.dom.measureCharMajor.className="vis-text vis-major vis-measure",this.dom.measureCharMajor.style.position="absolute",this.dom.measureCharMajor.appendChild(document.createTextNode("0")),this.dom.foreground.appendChild(this.dom.measureCharMajor)),this.props.majorCharHeight=this.dom.measureCharMajor.clientHeight,this.props.majorCharWidth=this.dom.measureCharMajor.clientWidth};var d=!1;t.exports=o},function(t,e,i){function o(t){this.active=!1,this.dom={container:t},this.dom.overlay=document.createElement("div"),this.dom.overlay.className="vis-overlay",this.dom.container.appendChild(this.dom.overlay),this.hammer=a(this.dom.overlay),this.hammer.on("tap",this._onTapOverlay.bind(this));var e=this,i=["tap","doubletap","press","pinch","pan","panstart","panmove","panend"];i.forEach(function(t){e.hammer.on(t,function(t){t.stopPropagation()})}),document&&document.body&&(this.onClick=function(i){n(i.target,t)||e.deactivate()},document.body.addEventListener("click",this.onClick)),void 0!==this.keycharm&&this.keycharm.destroy(),this.keycharm=s(),this.escListener=this.deactivate.bind(this)}function n(t,e){for(;t;){if(t===e)return!0;t=t.parentNode}return!1}var s=i(41),r=i(12),a=i(20),h=i(1);r(o.prototype),o.current=null,o.prototype.destroy=function(){this.deactivate(),this.dom.overlay.parentNode.removeChild(this.dom.overlay),this.onClick&&document.body.removeEventListener("click",this.onClick),this.hammer.destroy(),this.hammer=null},o.prototype.activate=function(){o.current&&o.current.deactivate(),o.current=this,this.active=!0,this.dom.overlay.style.display="none",h.addClassName(this.dom.container,"vis-active"),this.emit("change"),this.emit("activate"),this.keycharm.bind("esc",this.escListener)},o.prototype.deactivate=function(){this.active=!1,this.dom.overlay.style.display="",h.removeClassName(this.dom.container,"vis-active"),this.keycharm.unbind("esc",this.escListener),this.emit("change"),this.emit("deactivate")},o.prototype._onTapOverlay=function(t){this.activate(),t.stopPropagation()},t.exports=o},function(t,e,i){var o,n,s;!function(i,r){n=[],o=r,s="function"==typeof o?o.apply(e,n):o,!(void 0!==s&&(t.exports=s))}(this,function(){function t(t){var e,i=t&&t.preventDefault||!1,o=t&&t.container||window,n={},s={keydown:{},keyup:{}},r={};for(e=97;122>=e;e++)r[String.fromCharCode(e)]={code:65+(e-97),shift:!1};for(e=65;90>=e;e++)r[String.fromCharCode(e)]={code:e,shift:!0};for(e=0;9>=e;e++)r[""+e]={code:48+e,shift:!1};for(e=1;12>=e;e++)r["F"+e]={code:111+e,shift:!1};for(e=0;9>=e;e++)r["num"+e]={code:96+e,shift:!1};r["num*"]={code:106,shift:!1},r["num+"]={code:107,shift:!1},r["num-"]={code:109,shift:!1},r["num/"]={code:111,shift:!1},r["num."]={code:110,shift:!1},r.left={code:37,shift:!1},r.up={code:38,shift:!1},r.right={code:39,shift:!1},r.down={code:40,shift:!1},r.space={code:32,shift:!1},r.enter={code:13,shift:!1},r.shift={code:16,shift:void 0},r.esc={code:27,shift:!1},r.backspace={code:8,shift:!1},r.tab={code:9,shift:!1},r.ctrl={code:17,shift:!1},r.alt={code:18,shift:!1},r["delete"]={code:46,shift:!1},r.pageup={code:33,shift:!1},r.pagedown={code:34,shift:!1},r["="]={code:187,shift:!1},r["-"]={code:189,shift:!1},r["]"]={code:221,shift:!1},r["["]={code:219,shift:!1};var a=function(t){d(t,"keydown")},h=function(t){d(t,"keyup")},d=function(t,e){if(void 0!==s[e][t.keyCode]){for(var o=s[e][t.keyCode],n=0;n<o.length;n++)void 0===o[n].shift?o[n].fn(t):1==o[n].shift&&1==t.shiftKey?o[n].fn(t):0==o[n].shift&&0==t.shiftKey&&o[n].fn(t);1==i&&t.preventDefault()}};return n.bind=function(t,e,i){if(void 0===i&&(i="keydown"),void 0===r[t])throw new Error("unsupported key: "+t);void 0===s[i][r[t].code]&&(s[i][r[t].code]=[]),s[i][r[t].code].push({fn:e,shift:r[t].shift})},n.bindAll=function(t,e){void 0===e&&(e="keydown");for(var i in r)r.hasOwnProperty(i)&&n.bind(i,t,e)},n.getKey=function(t){for(var e in r)if(r.hasOwnProperty(e)){if(1==t.shiftKey&&1==r[e].shift&&t.keyCode==r[e].code)return e;if(0==t.shiftKey&&0==r[e].shift&&t.keyCode==r[e].code)return e;if(t.keyCode==r[e].code&&"shift"==e)return e}return"unknown key, currently not supported"},n.unbind=function(t,e,i){if(void 0===i&&(i="keydown"),void 0===r[t])throw new Error("unsupported key: "+t);if(void 0!==e){var o=[],n=s[i][r[t].code];if(void 0!==n)for(var a=0;a<n.length;a++)(n[a].fn!=e||n[a].shift!=r[t].shift)&&o.push(s[i][r[t].code][a]);s[i][r[t].code]=o}else s[i][r[t].code]=[]},n.reset=function(){s={keydown:{},keyup:{}}},n.destroy=function(){s={keydown:{},keyup:{}},o.removeEventListener("keydown",a,!0),o.removeEventListener("keyup",h,!0)},o.addEventListener("keydown",a,!0),o.addEventListener("keyup",h,!0),n}return t})},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(26),a=i(2),h=i(43);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:30})},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={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(26),r=i(2),a=i(43);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(["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.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.currentTimeTimer=setTimeout(t,o)}var e=this;t()},o.prototype.stop=function(){void 0!==this.currentTimeTimer&&(clearTimeout(this.currentTimeTimer),delete this.currentTimeTimer)},o.prototype.setCurrentTime=function(t){var e=n.convert(t,"Date").valueOf(),i=(new Date).valueOf();this.offset=e-i,this.redraw()},o.prototype.getCurrentTime=function(){return new Date((new Date).valueOf()+this.offset)},t.exports=o},function(t,e,i){function o(t){return t&&t.__esModule?t:{"default":t}}function n(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(e,"__esModule",{value:!0});var s=function(){function t(t,e){for(var i=0;i<e.length;i++){var o=e[i];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(t,o.key,o)}}return function(e,i,o){return i&&t(e.prototype,i),o&&t(e,o),e}}(),r=i(46),a=o(r),h=i(1),d=function(){function t(e,i,o){var s=arguments.length<=3||void 0===arguments[3]?1:arguments[3];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},h.extend(this.options,this.defaultOptions),this.configureOptions=o,this.moduleOptions={},this.domElements=[],this.popupDiv={},this.popupLimit=5,this.popupHistory={},this.colorPicker=new a["default"](s),this.wrapper=void 0}return s(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"==typeof 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||-1!==e.indexOf(n))&&(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(),this.colorPicker.insertTo(this.container)}},{key:"_push",value:function(){this.wrapper=document.createElement("div"),this.wrapper.className="vis-configuration-wrapper",this.container.appendChild(this.wrapper);for(var t=0;t<this.domElements.length;t++)this.wrapper.appendChild(this.domElements[t]);this._showPopupIfNeeded()}},{key:"_clean",value:function(){for(var t=0;t<this.domElements.length;t++)this.wrapper.removeChild(this.domElements[t]);void 0!==this.wrapper&&(this.container.removeChild(this.wrapper),this.wrapper=void 0),this.domElements=[],this._removePopup()}},{key:"_getValue",value:function(t){for(var e=this.moduleOptions,i=0;i<t.length;i++){if(void 0===e[t[i]]){e=void 0;break}e=e[t[i]]}return e}},{key:"_makeItem",value:function(t){var e=arguments,i=this;if(this.allowCreation===!0){var o,n,s,r=function(){var r=document.createElement("div");for(r.className="vis-configuration vis-config-item vis-config-s"+t.length,o=e.length,n=Array(o>1?o-1:0),s=1;o>s;s++)n[s-1]=e[s];return n.forEach(function(t){r.appendChild(t)}),i.domElements.push(r),{v:i.domElements.length}}();if("object"==typeof r)return r.v}return 0}},{key:"_makeHeader",value:function(t){var e=document.createElement("div");e.className="vis-configuration vis-config-header",e.innerHTML=t,this._makeItem([],e)}},{key:"_makeLabel",value:function(t,e){var i=arguments.length<=2||void 0===arguments[2]?!1:arguments[2],o=document.createElement("div");return o.className="vis-configuration vis-config-label vis-config-s"+e.length,i===!0?o.innerHTML="<i><b>"+t+":</b></i>":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;s<t.length;s++){var r=document.createElement("option");r.value=t[s],s===n&&(r.selected="selected"),r.innerHTML=t[s],o.appendChild(r)}var a=this;o.onchange=function(){a._update(this.value,i)};var h=this._makeLabel(i[i.length-1],i);this._makeItem(i,h,o)}},{key:"_makeRange",value:function(t,e,i){var o=t[0],n=t[1],s=t[2],r=t[3],a=document.createElement("input");a.className="vis-configuration vis-config-range";try{a.type="range",a.min=n,a.max=s}catch(h){}a.step=r;var d="",l=0;if(void 0!==e){var u=1.2;0>e&&n>e*u?(a.min=Math.ceil(e*u),l=a.min,d="range increased"):n>e/u&&(a.min=Math.ceil(e/u),l=a.min,d="range increased"),e*u>s&&1!==s&&(a.max=Math.ceil(e*u),l=a.max,d="range increased"),a.value=e}else a.value=o;var c=document.createElement("input");c.className="vis-configuration vis-config-rangeinput",c.value=a.value;var p=this;a.onchange=function(){c.value=this.value,p._update(Number(this.value),i)},a.oninput=function(){c.value=this.value};var f=this._makeLabel(i[i.length-1],i),m=this._makeItem(i,f,a,c);""!==d&&this.popupHistory[m]!==l&&(this.popupHistory[m]=l,this._setupPopup(d,m))}},{key:"_setupPopup",value:function(t,e){var i=this;if(this.initialized===!0&&this.allowCreation===!0&&this.popupCounter<this.popupLimit){var o=document.createElement("div");o.id="vis-configuration-popup",o.className="vis-configuration-popup",o.innerHTML=t,o.onclick=function(){i._removePopup()},this.popupCounter+=1,this.popupDiv={html:o,index:e}}}},{key:"_removePopup",value:function(){void 0!==this.popupDiv.html&&(this.popupDiv.html.parentNode.removeChild(this.popupDiv.html),clearTimeout(this.popupDiv.hideTimeout),clearTimeout(this.popupDiv.deleteTimeout),this.popupDiv={})}},{key:"_showPopupIfNeeded",value:function(){var t=this;if(void 0!==this.popupDiv.html){var e=this.domElements[this.popupDiv.index],i=e.getBoundingClientRect();this.popupDiv.html.style.left=i.left+"px",this.popupDiv.html.style.top=i.top-30+"px",document.body.appendChild(this.popupDiv.html),this.popupDiv.hideTimeout=setTimeout(function(){t.popupDiv.html.style.opacity=0},1500),this.popupDiv.deleteTimeout=setTimeout(function(){t._removePopup()},1800)}}},{key:"_makeCheckbox",value:function(t,e,i){var o=document.createElement("input");o.type="checkbox",o.className="vis-configuration vis-config-checkbox",o.checked=t,void 0!==e&&(o.checked=e,e!==t&&("object"==typeof t?e!==t.enabled&&this.changedOptions.push({path:i,value:e}):this.changedOptions.push({path:i,value:e})));var n=this;o.onchange=function(){n._update(this.checked,i)};var s=this._makeLabel(i[i.length-1],i);this._makeItem(i,s,o)}},{key:"_makeTextInput",value:function(t,e,i){var o=document.createElement("input");o.type="text",o.className="vis-configuration vis-config-text",o.value=e,e!==t&&this.changedOptions.push({path:i,value:e});var n=this;o.onchange=function(){n._update(this.value,i)};var s=this._makeLabel(i[i.length-1],i);this._makeItem(i,s,o)}},{key:"_makeColorField",value:function(t,e,i){var o=this,n=t[1],s=document.createElement("div");e=void 0===e?n:e,"none"!==e?(s.className="vis-configuration vis-config-colorBlock",s.style.backgroundColor=e):s.className="vis-configuration vis-config-colorBlock none",e=void 0===e?n:e,s.onclick=function(){o._showColorPicker(e,s,i)};var r=this._makeLabel(i[i.length-1],i);this._makeItem(i,r,s)}},{key:"_showColorPicker",value:function(t,e,i){var o=this,n=e.getBoundingClientRect(),s=document.body.getBoundingClientRect(),r=n.left+n.width+5,a=n.top-s.top+n.height+2;this.colorPicker.show(r,a),this.colorPicker.setColor(t),this.colorPicker.setCallback(function(t){var n="rgba("+t.r+","+t.g+","+t.b+","+t.a+")";e.style.backgroundColor=n,o._update(n,i)})}},{key:"_handleObject",value:function(t){var e=arguments.length<=1||void 0===arguments[1]?[]:arguments[1],i=arguments.length<=2||void 0===arguments[2]?!1: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],d=h.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,d,!0),this.allowCreation=i===!1)),o!==!1){s=!0;var l=this._getValue(d);if(a instanceof Array)this._handleArray(a,l,d);else if("string"==typeof a)this._makeTextInput(a,l,d);else if("boolean"==typeof a)this._makeCheckbox(a,l,d);else if(a instanceof Object){var u=!0;if(-1!==e.indexOf("physics")&&this.moduleOptions.physics.solver!==r&&(u=!1),u===!0)if(void 0!==a.enabled){var c=h.copyAndExtendArray(d,"enabled"),p=this._getValue(c);if(p===!0){var f=this._makeLabel(r,d,!0);this._makeItem(d,f),s=this._handleObject(a,d)||s}else this._makeCheckbox(a,p,d)}else{var f=this._makeLabel(r,d,!0);this._makeItem(d,f),s=this._handleObject(a,d)||s}}else console.error("dont know how to handle",a,r,d)}}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?!0:t,t="false"===t?!1:t;for(var n=0;n<e.length;n++)"global"!==e[n]&&(void 0===o[e[n]]&&(o[e[n]]={}),n!==e.length-1?o=o[e[n]]:o[e[n]]=t);return i}},{key:"_printOptions",value:function(){var t=this.getOptions();this.optionsContainer.innerHTML="<pre>var options = "+JSON.stringify(t,null,2)+"</pre>"}},{key:"getOptions",value:function(){for(var t={},e=0;e<this.changedOptions.length;e++)this._constructOptions(this.changedOptions[e].value,this.changedOptions[e].path,t);return t}}]),t}();e["default"]=d,t.exports=e["default"]},function(t,e,i){function o(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(e,"__esModule",{value:!0});var n=function(){function t(t,e){for(var i=0;i<e.length;i++){var o=e[i];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(t,o.key,o)}}return function(e,i,o){return i&&t(e.prototype,i),o&&t(e,o),e}}(),s=i(20),r=i(25),a=i(1),h=function(){function t(){var e=arguments.length<=0||void 0===arguments[0]?1:arguments[0];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._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:"setCallback",value:function(t){if("function"!=typeof t)throw new Error("Function attempted to set as colorPicker callback is not a function.");this.updateCallback=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"};return"string"==typeof t?e[t]:void 0}},{key:"setColor",value:function(t){var e=arguments.length<=1||void 0===arguments[1]?!0: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 n=t.substr(5).substr(0,t.length-6).split(",");i={r:n[0],g:n[1],b:n[2],a:n[3]}}else if(a.isValidHex(t)===!0){var s=a.hexToRGB(t);i={r:s.r,g:s.g,b:s.b,a:1}}}else if(t instanceof Object&&void 0!==t.r&&void 0!==t.g&&void 0!==t.b){var r=void 0!==t.a?t.a:"1.0";i={r:t.r,g:t.g,b:t.b,a:r}}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(t,e){this.applied=!1,this.frame.style.display="block",this.frame.style.top=e+"px",this.frame.style.left=t+"px",this._generateHueCircle()}},{key:"_hide",value:function(){var t=arguments.length<=0||void 0===arguments[0]?!0:arguments[0];t===!0&&(this.previousColor=a.extend({},this.color)),this.applied===!0&&this.updateCallback(this.initialColor),this.frame.style.display="none"}},{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]?!0: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]?this.color:arguments[0],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(i){}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(i){}this.brightnessRange.value="100",this.brightnessRange.className="vis-range",this.opacityDiv.appendChild(this.opacityRange),this.brightnessDiv.appendChild(this.brightnessRange);var o=this;this.opacityRange.onchange=function(){o._setOpacity(this.value)},this.opacityRange.oninput=function(){o._setOpacity(this.value)},this.brightnessRange.onchange=function(){o._setBrightness(this.value)},this.brightnessRange.oninput=function(){o._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;360>s;s++)for(r=0;r<this.r;r++)o=this.centerCoordinates.x+r*Math.sin(h*s),n=this.centerCoordinates.y+r*Math.cos(h*s),u=a.HSVToRGB(s*d,r*l,1),t.fillStyle="rgb("+u.r+","+u.g+","+u.b+")",t.fillRect(o-.5,n-.5,2,2);t.strokeStyle="rgba(0,0,0,1)",t.circle(this.centerCoordinates.x,this.centerCoordinates.y,this.r),t.stroke(),this.hueCircle=t.getImageData(0,0,e,i)}this.generated=!0}},{key:"_moveSelector",value:function(t){var e=this.colorPickerDiv.getBoundingClientRect(),i=t.center.x-e.left,o=t.center.y-e.top,n=.5*this.colorPickerDiv.clientHeight,s=.5*this.colorPickerDiv.clientWidth,r=i-s,h=o-n,d=Math.atan2(r,h),l=.98*Math.min(Math.sqrt(r*r+h*h),s),u=Math.cos(d)*l+n,c=Math.sin(d)*l+s;this.colorPickerSelector.style.top=u-.5*this.colorPickerSelector.clientHeight+"px",this.colorPickerSelector.style.left=c-.5*this.colorPickerSelector.clientWidth+"px";var p=d/(2*Math.PI);p=0>p?p+1:p;var f=l/this.r,m=a.RGBToHSV(this.color.r,this.color.g,this.color.b);m.h=p,m.s=f;var v=a.HSVToRGB(m.h,m.s,m.v);v.a=this.color.a,this.color=v,this.initialColorDiv.style.backgroundColor="rgba("+this.initialColor.r+","+this.initialColor.g+","+this.initialColor.b+","+this.initialColor.a+")",this.newColorDiv.style.backgroundColor="rgba("+this.color.r+","+this.color.g+","+this.color.b+","+this.color.a+")"}}]),t}();e["default"]=h,t.exports=e["default"]},function(t,e,i){function o(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(e,"__esModule",{value:!0});var n=function(){function t(t,e){for(var i=0;i<e.length;i++){var o=e[i];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(t,o.key,o)}}return function(e,i,o){return i&&t(e.prototype,i),o&&t(e,o),e}}(),s=i(1),r=!1,a=void 0,h="background: #FFeeee; color: #dd0000",d=function(){function t(){o(this,t)}return n(t,null,[{key:"validate",value:function(e,i,o){r=!1,a=i;var n=i;return void 0!==o&&(n=i[o]),t.parse(e,n,[]),r}},{key:"parse",value:function(e,i,o){for(var n in e)e.hasOwnProperty(n)&&t.check(n,e,i,o)}},{key:"check",value:function(e,i,o,n){void 0===o[e]&&void 0===o.__any__?t.getSuggestion(e,o,n):void 0===o[e]&&void 0!==o.__any__?"object"===t.getType(i[e])&&void 0!==o.__any__.__type__?t.checkFields(e,i,o,"__any__",o.__any__.__type__,n):t.checkFields(e,i,o,"__any__",o.__any__,n):void 0!==o[e].__type__?t.checkFields(e,i,o,e,o[e].__type__,n):t.checkFields(e,i,o,e,o[e],n)}},{key:"checkFields",value:function(e,i,o,n,a,d){var l=t.getType(i[e]),u=a[l];void 0!==u?"array"===t.getType(u)&&-1===u.indexOf(i[e])?(console.log('%cInvalid option detected in "'+e+'". Allowed values are:'+t.print(u)+' not "'+i[e]+'". '+t.printLocation(d,e),h),r=!0):"object"===l&&"__any__"!==n&&(d=s.copyAndExtendArray(d,e),t.parse(i[e],o[n],d)):void 0===a.any&&(console.log('%cInvalid type received for "'+e+'". Expected: '+t.print(Object.keys(a))+". Received ["+l+'] "'+i[e]+'"'+t.printLocation(d,e),h),r=!0)}},{key:"getType",value:function(t){var e=typeof t;return"object"===e?null===t?"null":t instanceof Boolean?"boolean":t instanceof Number?"number":t instanceof String?"string":Array.isArray(t)?"array":t instanceof Date?"date":void 0!==t.nodeType?"dom":t._isAMomentObject===!0?"moment":"object":"number"===e?"number":"boolean"===e?"boolean":"string"===e?"string":void 0===e?"undefined":e}},{key:"getSuggestion",value:function(e,i,o){var n=t.findInOptions(e,i,o,!1),s=t.findInOptions(e,a,[],!0),d=8,l=4;void 0!==n.indexMatch?console.log('%cUnknown option detected: "'+e+'" in '+t.printLocation(n.path,e,"")+'Perhaps it was incomplete? Did you mean: "'+n.indexMatch+'"?\n\n',h):s.distance<=l&&n.distance>s.distance?console.log('%cUnknown option detected: "'+e+'" in '+t.printLocation(n.path,e,"")+"Perhaps it was misplaced? Matching option found at: "+t.printLocation(s.path,s.closestMatch,""),h):n.distance<=d?console.log('%cUnknown option detected: "'+e+'". Did you mean "'+n.closestMatch+'"?'+t.printLocation(n.path,e),h):console.log('%cUnknown option detected: "'+e+'". Did you mean one of these: '+t.print(Object.keys(i))+t.printLocation(o,e),h),r=!0}},{key:"findInOptions",value:function(e,i,o){var n=arguments.length<=3||void 0===arguments[3]?!1:arguments[3],r=1e9,a="",h=[],d=e.toLowerCase(),l=void 0;for(var u in i){var c=void 0;if(void 0!==i[u].__type__&&n===!0){var p=t.findInOptions(e,i[u],s.copyAndExtendArray(o,u));r>p.distance&&(a=p.closestMatch,h=p.path,r=p.distance,l=p.indexMatch)}else-1!==u.toLowerCase().indexOf(d)&&(l=u),c=t.levenshteinDistance(e,u),r>c&&(a=u,h=s.copyArray(o),r=c)}return{closestMatch:a,path:h,distance:r,indexMatch:l}}},{key:"printLocation",value:function(t,e){for(var i=arguments.length<=2||void 0===arguments[2]?"Problem value found at: \n":arguments[2],o="\n\n"+i+"options = {\n",n=0;n<t.length;n++){for(var s=0;n+1>s;s++)o+=" ";o+=t[n]+": {\n"}for(var s=0;s<t.length+1;s++)o+=" ";o+=e+"\n";for(var n=0;n<t.length+1;n++){for(var s=0;s<t.length-n;s++)o+=" ";o+="}\n"}return o+"\n\n"}},{key:"print",value:function(t){return JSON.stringify(t).replace(/(\")|(\[)|(\])|(,"__type__")/g,"").replace(/(\,)/g,", ")}},{key:"levenshteinDistance",value:function(t,e){if(0===t.length)return e.length;if(0===e.length)return t.length;var i,o=[];for(i=0;i<=e.length;i++)o[i]=[i];var n;for(n=0;n<=t.length;n++)o[0][n]=n;for(i=1;i<=e.length;i++)for(n=1;n<=t.length;n++)e.charAt(i-1)==t.charAt(n-1)?o[i][n]=o[i-1][n-1]:o[i][n]=Math.min(o[i-1][n-1]+1,Math.min(o[i][n-1]+1,o[i-1][n]+1));return o[e.length][t.length]}}]),t}();e["default"]=d,e.printStyle=h},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},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"],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,e,i,o){if(!(Array.isArray(i)||i instanceof r||i instanceof a)&&i instanceof Object){var d=o;o=i,i=d}var c=this;this.defaultOptions={start:null,end:null,autoResize:!0,orientation:{axis:"bottom",item:"bottom"},moment:n,width:null,height:null,maxHeight:null,minHeight:null},this.options=s.deepExtend({},this.defaultOptions),this._create(t),this.components=[],this.body={dom:this.dom,domProps:this.props,emitter:{on:this.on.bind(this),off:this.off.bind(this),emit:this.emit.bind(this)},hiddenDates:[],util:{toScreen:c._toScreen.bind(c),toGlobalScreen:c._toGlobalScreen.bind(c),toTime:c._toTime.bind(c),toGlobalTime:c._toGlobalTime.bind(c)}},this.range=new h(this.body),this.components.push(this.range),this.body.range=this.range,this.timeAxis=new l(this.body),this.components.push(this.timeAxis),this.currentTime=new u(this.body),this.components.push(this.currentTime),this.linegraph=new p(this.body),this.components.push(this.linegraph),this.itemsData=null,this.groupsData=null,this.on("tap",function(t){c.emit("click",c.getEventProperties(t))}),this.on("doubletap",function(t){c.emit("doubleClick",c.getEventProperties(t))}),this.dom.root.oncontextmenu=function(t){c.emit("contextmenu",c.getEventProperties(t))},o&&this.setOptions(o),i&&this.setGroups(i),e?this.setItems(e):this._redraw()}var n=(i(12),i(20),i(2)),s=i(1),r=i(8),a=i(10),h=i(24),d=i(28),l=i(39),u=i(44),c=i(42),p=i(50),f=i(45),m=i(47)["default"],v=i(47).printStyle,g=i(58).allOptions,y=i(58).configureOptions;o.prototype=new d,o.prototype.setOptions=function(t){var e=m.validate(t,g);e===!0&&console.log("%cErrors have been found in the supplied options object.",v),d.prototype.setOptions.call(this,t)},o.prototype.setItems=function(t){var e,i=null==this.itemsData;if(e=t?t instanceof r||t instanceof a?t:new r(t,{type:{start:"Date",end:"Date"}}):null,this.itemsData=e,this.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})},o.prototype.setGroups=function(t){var e;e=t?t instanceof r||t instanceof a?t:new r(t):null,this.groupsData=e,this.linegraph.setGroups(e)},o.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+"'"},o.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},o.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;o<this.linegraph.groups[i].itemsData.length;o++){var n=this.linegraph.groups[i].itemsData[o],r=s.convert(n.x,"Date").valueOf();t=null==t?r:t>r?r:t,e=null==e?r:r>e?r:e}return{min:null!=t?new Date(t):null,max:null!=e?new Date(e):null}},o.prototype.getEventProperties=function(t){var e=t.center?t.center.x:t.clientX,i=t.center?t.center.y:t.clientY,o=e-s.getAbsoluteLeft(this.dom.centerContainer),n=i-s.getAbsoluteTop(this.dom.centerContainer),r=this._toTime(o),a=c.customTimeFromTarget(t),h=s.getTarget(t),d=null;s.hasParent(h,this.timeAxis.dom.foreground)?d="axis":this.timeAxis2&&s.hasParent(h,this.timeAxis2.dom.foreground)?d="axis":s.hasParent(h,this.linegraph.yAxisLeft.dom.frame)?d="data-axis":s.hasParent(h,this.linegraph.yAxisRight.dom.frame)?d="data-axis":s.hasParent(h,this.linegraph.legendLeft.dom.frame)?d="legend":s.hasParent(h,this.linegraph.legendRight.dom.frame)?d="legend":null!=a?d="custom-time":s.hasParent(h,this.currentTime.bar)?d="current-time":s.hasParent(h,this.dom.center)&&(d="background");var l=[],u=this.linegraph.yAxisLeft,p=this.linegraph.yAxisRight;return u.hidden||l.push(u.screenToValue(n)),p.hidden||l.push(p.screenToValue(n)),{event:t,what:d,pageX:t.srcEvent?t.srcEvent.pageX:t.pageX,pageY:t.srcEvent?t.srcEvent.pageY:t.pageY,x:o,y:n,time:r,value:l}},o.prototype._createConfigurator=function(){return new f(this,this.dom.container,y)},t.exports=o},function(t,e,i){function o(t,e){this.id=n.randomUUID(),this.body=t,this.defaultOptions={yAxisOrientation:"left",defaultGroup:"default",sort:!0,sampling:!0,stack:!1,graphHeight:"400px",shaded:{enabled:!1,orientation:"bottom"},style:"line",barChart:{width:50,sideBySide:!1,align:"center"},interpolation:{enabled:!0,parametrization:"centripetal",alpha:.5},drawPoints:{enabled:!0,size:6,style:"square"},dataAxis:{showMinorLabels:!0,showMajorLabels:!0,icons:!1,width:"40px",visible:!0,alignZeros:!0,left:{range:{min:void 0,max:void 0},format:function(t){return t},title:{text:void 0,style:void 0}},right:{range:{min:void 0,max:void 0},format:function(t){return t},title:{text:void 0,style:void 0}}},legend:{enabled:!1,icons:!0,left:{visible:!0,position:"top-left"},right:{visible:!0,position:"top-right"}},groups:{visibility:{}}},this.options=n.extend({},this.defaultOptions),this.dom={},this.props={},this.hammer=null,this.groups={},this.abortedGraphUpdate=!1,this.updateSVGheight=!1,this.updateSVGheightOnResize=!1;var i=this;this.itemsData=null,this.groupsData=null,this.itemListeners={add:function(t,e,o){i._onAdd(e.items)},update:function(t,e,o){i._onUpdate(e.items)},remove:function(t,e,o){i._onRemove(e.items)}},this.groupListeners={add:function(t,e,o){i._onAddGroups(e.items)},update:function(t,e,o){i._onUpdateGroups(e.items)},remove:function(t,e,o){i._onRemoveGroups(e.items)}},this.items={},this.selection=[],this.lastStart=this.body.range.start,this.touchParams={},this.svgElements={},this.setOptions(e),this.groupsUsingDefaultStyles=[0],this.COUNTER=0,this.body.emitter.on("rangechanged",function(){i.lastStart=i.body.range.start,i.svg.style.left=n.option.asSize(-i.props.width),i.redraw.call(i,!0)}),this._create(),this.framework={svg:this.svg,svgElements:this.svgElements,options:this.options,groups:this.groups},this.body.emitter.emit("change")}var n=i(1),s=i(7),r=i(8),a=i(10),h=i(26),d=i(51),l=i(53),u=i(57),c=i(54),p=i(56),f=i(55),m="__ungrouped__";o.prototype=new h,o.prototype._create=function(){var t=document.createElement("div");t.className="vis-line-graph",this.dom.frame=t,this.svg=document.createElementNS("http://www.w3.org/2000/svg","svg"),this.svg.style.position="relative",this.svg.style.height=(""+this.options.graphHeight).replace("px","")+"px",this.svg.style.display="block",t.appendChild(this.svg),this.options.dataAxis.orientation="left",this.yAxisLeft=new d(this.body,this.options.dataAxis,this.svg,this.options.groups),this.options.dataAxis.orientation="right",this.yAxisRight=new d(this.body,this.options.dataAxis,this.svg,this.options.groups),delete this.options.dataAxis.orientation,this.legendLeft=new u(this.body,this.options.legend,"left",this.options.groups),this.legendRight=new u(this.body,this.options.legend,"right",this.options.groups),this.show()},o.prototype.setOptions=function(t){if(t){var e=["sampling","defaultGroup","stack","height","graphHeight","yAxisOrientation","style","barChart","dataAxis","sort","groups"];void 0===t.graphHeight&&void 0!==t.height&&void 0!==this.body.domProps.centerContainer.height?(this.updateSVGheight=!0,this.updateSVGheightOnResize=!0):void 0!==this.body.domProps.centerContainer.height&&void 0!==t.graphHeight&&parseInt((t.graphHeight+"").replace("px",""))<this.body.domProps.centerContainer.height&&(this.updateSVGheight=!0),n.selectiveDeepExtend(e,this.options,t),n.mergeOptions(this.options,t,"interpolation"),n.mergeOptions(this.options,t,"drawPoints"),n.mergeOptions(this.options,t,"shaded"),n.mergeOptions(this.options,t,"legend"),t.interpolation&&"object"==typeof 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)),this.yAxisLeft&&void 0!==t.dataAxis&&(this.yAxisLeft.setOptions(this.options.dataAxis),this.yAxisRight.setOptions(this.options.dataAxis)),this.legendLeft&&void 0!==t.legend&&(this.legendLeft.setOptions(this.options.legend),this.legendRight.setOptions(this.options.legend)),this.groups.hasOwnProperty(m)&&this.groups[m].setOptions(t)}this.dom.frame&&this.redraw(!0)},o.prototype.hide=function(){this.dom.frame.parentNode&&this.dom.frame.parentNode.removeChild(this.dom.frame)},o.prototype.show=function(){this.dom.frame.parentNode||this.body.dom.center.appendChild(this.dom.frame)},o.prototype.setItems=function(t){var e,i=this,o=this.itemsData;if(t){if(!(t instanceof r||t instanceof a))throw new TypeError("Data must be an instance of DataSet or DataView");this.itemsData=t}else this.itemsData=null;if(o&&(n.forEach(this.itemListeners,function(t,e){o.off(e,t)}),e=o.getIds(),this._onRemove(e)),this.itemsData){var s=this.id;n.forEach(this.itemListeners,function(t,e){i.itemsData.on(e,t,s)}),e=this.itemsData.getIds(),this._onAdd(e)}},o.prototype.setGroups=function(t){var e,i=this;if(this.groupsData){n.forEach(this.groupListeners,function(t,e){i.groupsData.off(e,t)}),e=this.groupsData.getIds(),this.groupsData=null;for(var o=0;o<e.length;o++)this._removeGroup(e[o])}if(t){if(!(t instanceof r||t instanceof a))throw new TypeError("Data must be an instance of DataSet or DataView");this.groupsData=t}else this.groupsData=null;if(this.groupsData){var s=this.id;n.forEach(this.groupListeners,function(t,e){i.groupsData.on(e,t,s)}),e=this.groupsData.getIds(),this._onAddGroups(e)}},o.prototype._onUpdate=function(t){this._updateAllGroupData(),this.redraw(!0)},o.prototype._onAdd=function(t){this._onUpdate(t)},o.prototype._onRemove=function(t){this._onUpdate(t)},o.prototype._onUpdateGroups=function(t){this._updateAllGroupData(),this.redraw(!0)},o.prototype._onAddGroups=function(t){this._onUpdateGroups(t)},o.prototype._onRemoveGroups=function(t){for(var e=0;e<t.length;e++)this._removeGroup(t[e]);this.redraw(!0)},o.prototype._removeGroup=function(t){this.groups.hasOwnProperty(t)&&("right"==this.groups[t].options.yAxisOrientation?(this.yAxisRight.removeGroup(t),this.legendRight.removeGroup(t),this.legendRight.redraw()):(this.yAxisLeft.removeGroup(t),this.legendLeft.removeGroup(t),this.legendLeft.redraw()),delete this.groups[t])},o.prototype._updateGroup=function(t,e){this.groups.hasOwnProperty(e)?(this.groups[e].update(t),"right"==this.groups[e].options.yAxisOrientation?(this.yAxisRight.updateGroup(e,this.groups[e]),this.legendRight.updateGroup(e,this.groups[e])):(this.yAxisLeft.updateGroup(e,this.groups[e]),this.legendLeft.updateGroup(e,this.groups[e]))):(this.groups[e]=new l(t,e,this.options,this.groupsUsingDefaultStyles),"right"==this.groups[e].options.yAxisOrientation?(this.yAxisRight.addGroup(e,this.groups[e]),this.legendRight.addGroup(e,this.groups[e])):(this.yAxisLeft.addGroup(e,this.groups[e]),this.legendLeft.addGroup(e,this.groups[e]))),this.legendLeft.redraw(),this.legendRight.redraw()},o.prototype._updateAllGroupData=function(){if(null!=this.itemsData){for(var t={},e=this.itemsData.get(),i={},o=0;o<e.length;o++){var s=e[o],r=s.group;(null===r||void 0===r)&&(r=m),i.hasOwnProperty(r)?i[r]++:i[r]=1}for(var o=0;o<e.length;o++){var s=e[o],r=s.group;(null===r||void 0===r)&&(r=m),t.hasOwnProperty(r)||(t[r]=new Array(i[r]));var a=n.bridgeObject(s);a.x=n.convert(s.x,"Date"),a.orginalY=s.y,a.y=Number(s.y);var h=t[r].length-i[r]--;t[r][h]=a}for(var r in this.groups)this.groups.hasOwnProperty(r)&&(t.hasOwnProperty(r)||(t[r]=new Array(0)));for(var r in t)if(t.hasOwnProperty(r))if(0==t[r].length)this.groups.hasOwnProperty(r)&&this._removeGroup(r);else{var d=void 0;void 0!=this.groupsData&&(d=this.groupsData.get(r)),void 0==d&&(d={id:r,content:this.options.defaultGroup+r}),this._updateGroup(d,r),this.groups[r].setItems(t[r])}}},o.prototype.redraw=function(t){var e=!1;this.props.width=this.dom.frame.offsetWidth,this.props.height=this.body.domProps.centerContainer.height-this.body.domProps.border.top-this.body.domProps.border.bottom,void 0===this.lastWidth&&this.props.width&&(t=!0),e=this._isResized()||e;var i=this.body.range.end-this.body.range.start,o=i!=this.lastVisibleInterval;if(this.lastVisibleInterval=i,1==e&&(this.svg.style.width=n.option.asSize(3*this.props.width),this.svg.style.left=n.option.asSize(-this.props.width),(-1!=(this.options.height+"").indexOf("%")||1==this.updateSVGheightOnResize)&&(this.updateSVGheight=!0)),1==this.updateSVGheight?(this.options.graphHeight!=this.props.height+"px"&&(this.options.graphHeight=this.props.height+"px",this.svg.style.height=this.props.height+"px"),this.updateSVGheight=!1):this.svg.style.height=(""+this.options.graphHeight).replace("px","")+"px",1==e||1==o||1==this.abortedGraphUpdate||1==t)e=this._updateGraph()||e;else if(0!=this.lastStart){var s=this.body.range.start-this.lastStart,r=this.body.range.end-this.body.range.start;if(0!=this.props.width){var a=this.props.width/r,h=s*a;this.svg.style.left=-this.props.width-h+"px";
-}}return this.legendLeft.redraw(),this.legendRight.redraw(),e},o.prototype._getSortedGroupIds=function(){var t=[];for(var e in this.groups)if(this.groups.hasOwnProperty(e)){var i=this.groups[e];1!=i.visible||void 0!==this.options.groups.visibility[e]&&1!=this.options.groups.visibility[e]||t.push({id:e,zIndex:i.options.zIndex})}n.insertSort(t,function(t,e){var i=t.zIndex,o=e.zIndex;return void 0===i&&(i=0),void 0===o&&(o=0),i==o?0:o>i?-1:1});for(var o=new Array(t.length),s=0;s<t.length;s++)o[s]=t[s].id;return o},o.prototype._updateGraph=function(){if(s.prepareElements(this.svgElements),0!=this.props.width&&null!=this.itemsData){var t,e,i={},o=!1,n=this.body.util.toGlobalTime(-this.body.domProps.root.width),r=this.body.util.toGlobalTime(2*this.body.domProps.root.width),a=this._getSortedGroupIds();if(a.length>0){var h={};for(this._getRelevantData(a,h,n,r),this._applySampling(a,h),e=0;e<a.length;e++)this._convertXcoordinates(h[a[e]]);this._getYRanges(a,h,i),o=this._updateYAxis(a,i);var d=5;if(1==o&&this.COUNTER<d)return s.cleanupElements(this.svgElements),this.abortedGraphUpdate=!0,this.COUNTER++,this.body.emitter.emit("change"),!0;this.COUNTER>d&&console.log("WARNING: there may be an infinite loop in the _updateGraph emitter cycle."),this.COUNTER=0,this.abortedGraphUpdate=!1;var l=void 0;for(e=0;e<a.length;e++)t=this.groups[a[e]],this.options.stack===!0&&"line"===this.options.style&&(void 0!=t.options.excludeFromStacking&&t.options.excludeFromStacking||(void 0!=l&&(this._stack(h[t.id],h[l.id]),1==t.options.shaded.enabled&&"group"!==t.options.shaded.orientation&&("top"==t.options.shaded.orientation&&"group"!==l.options.shaded.orientation?(l.options.shaded.orientation="group",l.options.shaded.groupId=t.id):(t.options.shaded.orientation="group",t.options.shaded.groupId=l.id))),l=t)),this._convertYcoordinates(h[a[e]],t);var u={};for(e=0;e<a.length;e++)if(t=this.groups[a[e]],"line"===t.options.style&&1==t.options.shaded.enabled){var m=h[a[e]];if(u.hasOwnProperty(a[e])||(u[a[e]]=p.calcPath(m,t)),"group"===t.options.shaded.orientation){var v=t.options.shaded.groupId;if(-1===a.indexOf(v)){console.log(t.id+": Unknown shading group target given:"+v);continue}u.hasOwnProperty(v)||(u[v]=p.calcPath(h[v],this.groups[v])),p.drawShading(u[a[e]],t,u[v],this.framework)}else p.drawShading(u[a[e]],t,void 0,this.framework)}for(c.draw(a,h,this.framework),e=0;e<a.length;e++)if(t=this.groups[a[e]],h[a[e]].length>0)switch(t.options.style){case"line":u.hasOwnProperty(a[e])||(u[a[e]]=p.calcPath(h[a[e]],t)),p.draw(u[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 s.cleanupElements(this.svgElements),!1},o.prototype._stack=function(t,e){var i,o,n,s,r;i=0;for(var a=0;a<t.length;a++){s=void 0,r=void 0;for(var h=i;h<e.length;h++){if(e[h].x===t[a].x){s=e[h],r=e[h],i=h;break}if(e[h].x>t[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 s,r,a,h;if(t.length>0)for(r=0;r<t.length;r++){s=this.groups[t[r]];var d=s.getItems();if(1==s.options.sort){var l=Math.max(0,n.binarySearchValue(d,i,"x","before")),u=Math.min(d.length,n.binarySearchValue(d,o,"x","after")+1);0>=u&&(u=d.length);var c=new Array(u-l);for(a=l;u>a;a++)h=s.itemsData[a],c[a-l]=h;e[t[r]]=c}else e[t[r]]=s.itemsData}},o.prototype._applySampling=function(t,e){var i;if(t.length>0)for(var o=0;o<t.length;o++)if(i=this.groups[t[o]],1==i.options.sampling){var n=e[t[o]];if(n.length>0){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;s<t.length;s++)o=e[t[s]],r=this.groups[t[s]].options,o.length>0&&(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;u<t.length;u++){var c=this.groups[t[u]];c&&"right"!=c.options.yAxisOrientation?(s=!0,a=1e9,d=-1e9):c&&c.options.yAxisOrientation&&(r=!0,h=1e9,l=-1e9)}for(var u=0;u<t.length;u++)e.hasOwnProperty(t[u])&&e[t[u]].ignore!==!0&&(i=e[t[u]].min,o=e[t[u]].max,"right"!=e[t[u]].yAxisOrientation?(s=!0,a=a>i?i:a,d=o>d?o:d):(r=!0,h=h>i?i:h,l=o>l?o:l));1==s&&this.yAxisLeft.setRange(a,d),1==r&&this.yAxisRight.setRange(h,l)}n=this._toggleAxisVisiblity(s,this.yAxisLeft)||n,n=this._toggleAxisVisiblity(r,this.yAxisRight)||n,1==r&&1==s?(this.yAxisLeft.drawIcons=!0,this.yAxisRight.drawIcons=!0):(this.yAxisLeft.drawIcons=!1,this.yAxisRight.drawIcons=!1),this.yAxisRight.master=!s,0==this.yAxisRight.master?(1==r?this.yAxisLeft.lineOffset=this.yAxisRight.width:this.yAxisLeft.lineOffset=0,n=this.yAxisLeft.redraw()||n,this.yAxisRight.stepPixels=this.yAxisLeft.stepPixels,this.yAxisRight.zeroCrossing=this.yAxisLeft.zeroCrossing,this.yAxisRight.amountOfSteps=this.yAxisLeft.amountOfSteps,n=this.yAxisRight.redraw()||n):n=this.yAxisRight.redraw()||n;for(var p=["__barStackLeft","__barStackRight","__lineStackLeft","__lineStackRight"],u=0;u<p.length;u++)-1!=t.indexOf(p[u])&&t.splice(t.indexOf(p[u]),1);return n},o.prototype._toggleAxisVisiblity=function(t,e){var i=!1;return 0==t?e.dom.frame.parentNode&&0==e.hidden&&(e.hide(),i=!0):e.dom.frame.parentNode||1!=e.hidden||(e.show(),i=!0),i},o.prototype._convertXcoordinates=function(t){for(var e=this.body.util.toScreen,i=0;i<t.length;i++)t[i].screen_x=e(t[i].x)+this.props.width,t[i].screen_y=t[i].y},o.prototype._convertYcoordinates=function(t,e){var i=this.yAxisLeft,o=Number(this.svg.style.height.replace("px",""));"right"==e.options.yAxisOrientation&&(i=this.yAxisRight);for(var n=0;n<t.length;n++)t[n].screen_y=Math.round(i.convertValue(t[n].y));e.setZeroPosition(Math.min(o,i.convertValue(0)))},t.exports=o},function(t,e,i){function o(t,e,i,o){this.id=n.randomUUID(),this.body=t,this.defaultOptions={orientation:"left",showMinorLabels:!0,showMajorLabels:!0,icons:!0,majorLinesOffset:7,minorLinesOffset:4,labelOffsetX:10,labelOffsetY:2,iconWidth:20,width:"40px",visible:!0,alignZeros:!0,left:{range:{min:void 0,max:void 0},format:function(t){return t},title:{text:void 0,style:void 0}},right:{range:{min:void 0,max:void 0},format:function(t){return t},title:{text:void 0,style:void 0}}},this.linegraphOptions=o,this.linegraphSVG=i,this.props={},this.DOMelements={lines:{},labels:{},title:{}},this.dom={},this.range={start:0,end:0},this.options=n.extend({},this.defaultOptions),this.conversionFactor=1,this.setOptions(e),this.width=Number((""+this.options.width).replace("px","")),this.minWidth=this.width,this.height=this.linegraphSVG.getBoundingClientRect().height,this.hidden=!1,this.stepPixels=25,this.zeroCrossing=-1,this.amountOfSteps=-1,this.lineOffset=0,this.master=!0,this.svgElements={},this.iconsRemoved=!1,this.groups={},this.amountOfGroups=0,this._create(),this.framework={svg:this.svg,svgElements:this.svgElements,options:this.options,groups:this.groups};var s=this;this.body.emitter.on("verticalDrag",function(){s.dom.lineContainer.style.top=s.body.domProps.scrollTop+"px"})}var n=i(1),s=i(7),r=i(26),a=i(52);o.prototype=new r,o.prototype.addGroup=function(t,e){this.groups.hasOwnProperty(t)||(this.groups[t]=e),this.amountOfGroups+=1},o.prototype.updateGroup=function(t,e){this.groups[t]=e},o.prototype.removeGroup=function(t){this.groups.hasOwnProperty(t)&&(delete this.groups[t],this.amountOfGroups-=1)},o.prototype.setOptions=function(t){if(t){var e=!1;this.options.orientation!=t.orientation&&void 0!==t.orientation&&(e=!0);var i=["orientation","showMinorLabels","showMajorLabels","icons","majorLinesOffset","minorLinesOffset","labelOffsetX","labelOffsetY","iconWidth","width","visible","left","right","alignZeros"];n.selectiveExtend(i,this.options,t),this.minWidth=Number((""+this.options.width).replace("px","")),e===!0&&this.dom.frame&&(this.hide(),this.show())}},o.prototype._create=function(){this.dom.frame=document.createElement("div"),this.dom.frame.style.width=this.options.width,this.dom.frame.style.height=this.height,this.dom.lineContainer=document.createElement("div"),this.dom.lineContainer.style.width="100%",this.dom.lineContainer.style.height=this.height,this.dom.lineContainer.style.position="relative",this.svg=document.createElementNS("http://www.w3.org/2000/svg","svg"),this.svg.style.position="absolute",this.svg.style.top="0px",this.svg.style.height="100%",this.svg.style.width="100%",this.svg.style.display="block",this.dom.frame.appendChild(this.svg)},o.prototype._redrawGroupIcons=function(){s.prepareElements(this.svgElements);var t,e=this.options.iconWidth,i=15,o=4,n=o+.5*i;t="left"===this.options.orientation?o:this.width-e-o;var r=Object.keys(this.groups);r.sort(function(t,e){return e>t?-1:1});for(var a=0;a<r.length;a++){var h=r[a];this.groups[h].visible!==!0||void 0!==this.linegraphOptions.visibility[h]&&this.linegraphOptions.visibility[h]!==!0||(this.groups[h].getLegend(e,i,this.framework,t,n),n+=i+o)}s.cleanupElements(this.svgElements),this.iconsRemoved=!1},o.prototype._cleanupIcons=function(){this.iconsRemoved===!1&&(s.prepareElements(this.svgElements),s.cleanupElements(this.svgElements),this.iconsRemoved=!0)},o.prototype.show=function(){this.hidden=!1,this.dom.frame.parentNode||("left"===this.options.orientation?this.body.dom.left.appendChild(this.dom.frame):this.body.dom.right.appendChild(this.dom.frame)),this.dom.lineContainer.parentNode||this.body.dom.backgroundHorizontal.appendChild(this.dom.lineContainer)},o.prototype.hide=function(){this.hidden=!0,this.dom.frame.parentNode&&this.dom.frame.parentNode.removeChild(this.dom.frame),this.dom.lineContainer.parentNode&&this.dom.lineContainer.parentNode.removeChild(this.dom.lineContainer)},o.prototype.setRange=function(t,e){this.master===!1&&this.options.alignZeros===!0&&-1!=this.zeroCrossing&&t>0&&(t=0),this.range.start=t,this.range.end=e},o.prototype.redraw=function(){var t=!1,e=0;this.dom.lineContainer.style.top=this.body.domProps.scrollTop+"px";for(var i in this.groups)this.groups.hasOwnProperty(i)&&(this.groups[i].visible!==!0||void 0!==this.linegraphOptions.visibility[i]&&this.linegraphOptions.visibility[i]!==!0||e++);if(0===this.amountOfGroups||0===e)this.hide();else{this.show(),this.height=Number(this.linegraphSVG.style.height.replace("px","")),this.dom.lineContainer.style.height=this.height+"px",this.width=this.options.visible===!0?Number((""+this.options.width).replace("px","")):0;var o=this.props,n=this.dom.frame;n.className="vis-data-axis",this._calculateCharSize();var s=this.options.orientation,r=this.options.showMinorLabels,a=this.options.showMajorLabels;o.minorLabelHeight=r?o.minorCharHeight:0,o.majorLabelHeight=a?o.majorCharHeight:0,o.minorLineWidth=this.body.dom.backgroundHorizontal.offsetWidth-this.lineOffset-this.width+2*this.options.minorLinesOffset,o.minorLineHeight=1,o.majorLineWidth=this.body.dom.backgroundHorizontal.offsetWidth-this.lineOffset-this.width+2*this.options.majorLinesOffset,o.majorLineHeight=1,"left"===s?(n.style.top="0",n.style.left="0",n.style.bottom="",n.style.width=this.width+"px",n.style.height=this.height+"px",this.props.width=this.body.domProps.left.width,this.props.height=this.body.domProps.left.height):(n.style.top="",n.style.bottom="0",n.style.left="0",n.style.width=this.width+"px",n.style.height=this.height+"px",this.props.width=this.body.domProps.right.width,this.props.height=this.body.domProps.right.height),t=this._redrawLabels(),t=this._isResized()||t,this.options.icons===!0?this._redrawGroupIcons():this._cleanupIcons(),this._redrawTitle(s)}return t},o.prototype._redrawLabels=function(){var t=!1;s.prepareElements(this.DOMelements.lines),s.prepareElements(this.DOMelements.labels);var e,i=this.options.orientation;if(this.master===!1){var o,n,r,h;-1!==this.zeroCrossing&&this.options.alignZeros===!0?this.range.end>0?(o=this.range.end/this.zeroCrossing,n=this.range.end-this.amountOfSteps*o,r=this.range.end):(o=-1*this.range.start/(this.amountOfSteps-this.zeroCrossing),n=this.range.start,r=this.range.start+o*this.amountOfSteps):(n=this.range.start,r=this.range.end),h=this.stepPixels}else h=this.props.majorCharHeight,n=this.range.start,r=this.range.end;if(this.step=e=new a(n,r,h,this.dom.frame.offsetHeight,this.options[this.options.orientation].range,this.options[this.options.orientation].format,this.master===!1&&this.options.alignZeros),this.master===!0)this.stepPixels=this.dom.frame.offsetHeight/e.marginRange*e.step,this.amountOfSteps=Math.ceil(this.dom.frame.offsetHeight/this.stepPixels);else if(this.options.alignZeros===!0&&-1!==this.zeroCrossing){var d=(e.current-this.zeroCrossing*e.step)/e.step;this.step.shift(d)}this.valueAtBottom=e.marginEnd,this.maxLabelSize=0;for(var l=0,u=0,c=!1;u<this.amountOfSteps;)l=Math.round(u*this.stepPixels),c=e.isMajor(),u>0&&u!==this.amountOfSteps&&((this.options.showMinorLabels&&c===!1||this.master===!1&&this.options.showMinorLabels===!0)&&this._redrawLabel(l-2,e.getCurrent(),i,"vis-y-axis vis-minor",this.props.minorCharHeight),c&&this.options.showMajorLabels&&this.master===!0||this.options.showMinorLabels===!1&&this.master===!1&&c===!0?(l>=0&&this._redrawLabel(l-2,e.getCurrent(),i,"vis-y-axis vis-major",this.props.majorCharHeight),this._redrawLine(l,i,"vis-grid vis-horizontal vis-major",this.options.majorLinesOffset,this.props.majorLineWidth)):this._redrawLine(l,i,"vis-grid vis-horizontal vis-minor",this.options.minorLinesOffset,this.props.minorLineWidth)),this.master===!0&&0===e.current&&(this.zeroCrossing=u),e.next(),u+=1;this.master===!0&&0===e.current&&(this.zeroCrossing=u),this.conversionFactor=this.stepPixels/e.step;var p=0;void 0!==this.options[i].title&&void 0!==this.options[i].title.text&&(p=this.props.titleCharHeight);var f=this.options.icons===!0?Math.max(this.options.iconWidth,p)+this.options.labelOffsetX+15:p+this.options.labelOffsetX+15;return this.maxLabelSize>this.width-f&&this.options.visible===!0?(this.width=this.maxLabelSize+f,this.options.width=this.width+"px",s.cleanupElements(this.DOMelements.lines),s.cleanupElements(this.DOMelements.labels),this.redraw(),t=!0):this.maxLabelSize<this.width-f&&this.options.visible===!0&&this.width>this.minWidth?(this.width=Math.max(this.minWidth,this.maxLabelSize+f),this.options.width=this.width+"px",s.cleanupElements(this.DOMelements.lines),s.cleanupElements(this.DOMelements.labels),this.redraw(),t=!0):(s.cleanupElements(this.DOMelements.lines),s.cleanupElements(this.DOMelements.labels),t=!1),t},o.prototype.convertValue=function(t){var e=this.valueAtBottom-t,i=e*this.conversionFactor;return i},o.prototype.screenToValue=function(t){return this.valueAtBottom-t/this.conversionFactor},o.prototype._redrawLabel=function(t,e,i,o,n){var r=s.getDOMElement("div",this.DOMelements.labels,this.dom.frame);r.className=o,r.innerHTML=e,"left"===i?(r.style.left="-"+this.options.labelOffsetX+"px",r.style.textAlign="right"):(r.style.right="-"+this.options.labelOffsetX+"px",r.style.textAlign="left"),r.style.top=t-.5*n+this.options.labelOffsetY+"px",e+="";var a=Math.max(this.props.majorCharWidth,this.props.minorCharWidth);this.maxLabelSize<e.length*a&&(this.maxLabelSize=e.length*a)},o.prototype._redrawLine=function(t,e,i,o,n){if(this.master===!0){var r=s.getDOMElement("div",this.DOMelements.lines,this.dom.lineContainer);r.className=i,r.innerHTML="","left"===e?r.style.left=this.width-o+"px":r.style.right=this.width-o+"px",r.style.width=n+"px",r.style.top=t+"px"}},o.prototype._redrawTitle=function(t){if(s.prepareElements(this.DOMelements.title),void 0!==this.options[t].title&&void 0!==this.options[t].title.text){var e=s.getDOMElement("div",this.DOMelements.title,this.dom.frame);e.className="vis-y-axis vis-title vis-"+t,e.innerHTML=this.options[t].title.text,void 0!==this.options[t].title.style&&n.addCssText(e,this.options[t].title.style),"left"===t?e.style.left=this.props.titleCharHeight+"px":e.style.right=this.props.titleCharHeight+"px",e.style.width=this.height+"px"}s.cleanupElements(this.DOMelements.title)},o.prototype._calculateCharSize=function(){if(!("minorCharHeight"in this.props)){var t=document.createTextNode("0"),e=document.createElement("div");e.className="vis-y-axis vis-minor vis-measure",e.appendChild(t),this.dom.frame.appendChild(e),this.props.minorCharHeight=e.clientHeight,this.props.minorCharWidth=e.clientWidth,this.dom.frame.removeChild(e)}if(!("majorCharHeight"in this.props)){var i=document.createTextNode("0"),o=document.createElement("div");o.className="vis-y-axis vis-major vis-measure",o.appendChild(i),this.dom.frame.appendChild(o),this.props.majorCharHeight=o.clientHeight,this.props.majorCharWidth=o.clientWidth,this.dom.frame.removeChild(o)}if(!("titleCharHeight"in this.props)){var n=document.createTextNode("0"),s=document.createElement("div");s.className="vis-y-axis vis-title vis-measure",s.appendChild(n),this.dom.frame.appendChild(s),this.props.titleCharHeight=s.clientHeight,this.props.titleCharWidth=s.clientWidth,this.dom.frame.removeChild(s)}},t.exports=o},function(t,e){function i(t,e,i,o,n,s,r){this.current=0,this.autoScale=!0,this.stepIndex=0,this.step=1,this.scale=1,this.formattingFunction=s,this.marginStart,this.marginEnd,this.deadSpace=0,this.majorSteps=[1,2,5,10],this.minorSteps=[.25,.5,1,2],this.alignZeros=r,this.setRange(t,e,i,o,n)}i.prototype.setRange=function(t,e,i,o,n){this._start=void 0===n.min?t:n.min,this._end=void 0===n.max?e:n.max,this._start===this._end&&(this._start=void 0===n.min?this._start-.75:this._start,this._end=void 0===n.max?this._end+1:this._end),this.autoScale===!0&&this.setMinimumStep(i,o),this.setFirst(n)},i.prototype.setMinimumStep=function(t,e){var i=this._end-this._start,o=1.2*i,n=t*(o/e),s=Math.round(Math.log(o)/Math.LN10),r=-1,a=Math.pow(10,s),h=0;0>s&&(h=s);for(var d=!1,l=h;Math.abs(l)<=Math.abs(s);l++){a=Math.pow(10,l);for(var u=0;u<this.minorSteps.length;u++){var c=a*this.minorSteps[u];if(c>=n){d=!0,r=u;break}}if(d===!0)break}this.stepIndex=r,this.scale=a,this.step=a*this.minorSteps[r]},i.prototype.setFirst=function(t){void 0===t&&(t={});var e=void 0===t.min?this._start-2*this.scale*this.minorSteps[this.stepIndex]:t.min,i=void 0===t.max?this._end+this.scale*this.minorSteps[this.stepIndex]:t.max;this.marginEnd=void 0===t.max?this.roundToMinor(i):t.max,this.marginStart=void 0===t.min?this.roundToMinor(e):t.min,this.alignZeros===!0&&(this.marginEnd-this.marginStart)%this.step!=0&&(this.marginEnd+=this.marginEnd%this.step),this.deadSpace=this.roundToMinor(i)-i+this.roundToMinor(e)-e,this.marginRange=this.marginEnd-this.marginStart,this.current=this.marginEnd},i.prototype.roundToMinor=function(t){var e=t-t%(this.scale*this.minorSteps[this.stepIndex]);return t%(this.scale*this.minorSteps[this.stepIndex])>.5*(this.scale*this.minorSteps[this.stepIndex])?e+this.scale*this.minorSteps[this.stepIndex]:e},i.prototype.hasNext=function(){return this.current>=this.marginStart},i.prototype.next=function(){var t=this.current;this.current-=this.step,this.current===t&&(this.current=this._end)},i.prototype.previous=function(){this.current+=this.step,this.marginEnd+=this.step,this.marginRange=this.marginEnd-this.marginStart},i.prototype.getCurrent=function(){var t=Math.abs(this.current)<this.step/2?0:this.current,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.isMajor=function(){return this.current%(this.scale*this.majorSteps[this.stepIndex])===0},i.prototype.shift=function(t){if(0>t)for(var e=0;-t>e;e++)this.previous();else if(t>0)for(var e=0;t>e;e++)this.next()},t.exports=i},function(t,e,i){function o(t,e,i,o){this.id=e;var s=["sampling","style","sort","yAxisOrientation","barChart","drawPoints","shaded","interpolation","zIndex"];this.options=n.selectiveBridgeObject(s,i),this.usingDefaultStyle=void 0===t.className,this.groupsUsingDefaultStyles=o,this.zeroPosition=0,this.update(t),1==this.usingDefaultStyle&&(this.groupsUsingDefaultStyles[0]+=1),this.itemsData=[],this.visible=void 0===t.visible?!0:t.visible}var n=i(1),s=(i(7),i(54)),r=i(56),a=i(55);o.prototype.setItems=function(t){null!=t?(this.itemsData=t,1==this.options.sort&&n.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","excludeFromLegend","excludeFromStacking","zIndex"];n.selectiveDeepExtend(e,this.options,t),"function"==typeof t.drawPoints&&(t.drawPoints={onRender:t.drawPoints}),n.mergeOptions(this.options,t,"interpolation"),n.mergeOptions(this.options,t,"drawPoints"),n.mergeOptions(this.options,t,"shaded"),t.interpolation&&"object"==typeof 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 h=document.createElementNS("http://www.w3.org/2000/svg","svg");i={svg:h,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":r.drawIcon(this,o,n,t,e,i);break;case"points":case"point":a.drawIcon(this,o,n,t,e,i);break;case"bar":s.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;o<t.length;o++)e=e>t[o].y?t[o].y:e,i=i<t[o].y?t[o].y:i;return{min:e,max:i,yAxisOrientation:this.options.yAxisOrientation}},t.exports=o},function(t,e,i){function o(t,e){}var n=i(7),s=i(55);o.drawIcon=function(t,e,i,o,s,r){var a=.5*s,h=n.getSVGElement("rect",r.svgElements,r.svg);h.setAttributeNS(null,"x",e),h.setAttributeNS(null,"y",i-a),h.setAttributeNS(null,"width",o),h.setAttributeNS(null,"height",2*a),h.setAttributeNS(null,"class","vis-outline");var d=Math.round(.3*o),l=t.options.barChart.width,u=l/d,c=Math.round(.4*s),p=Math.round(.75*s),f=Math.round((o-2*d)/3);if(n.drawBar(e+.5*d+f,i+a-c-1,d,c,t.className+" vis-bar",r.svgElements,r.svg,t.style),n.drawBar(e+1.5*d+f+2,i+a-p-1,d,p,t.className+" vis-bar",r.svgElements,r.svg,t.style),1==t.options.drawPoints.enabled){var m={style:t.options.drawPoints.style,styles:t.options.drawPoints.styles,size:t.options.drawPoints.size/u,className:t.className};n.drawPoint(e+.5*d+f,i+a-c-1,m,r.svgElements,r.svg),n.drawPoint(e+1.5*d+f+2,i+a-p-1,m,r.svgElements,r.svg)}},o.draw=function(t,e,i){var r,a,h,d,l,u,c=[],p={},f=0;for(l=0;l<t.length;l++)if(d=i.groups[t[l]],"bar"===d.options.style&&d.visible===!0&&(void 0===i.options.groups.visibility[t[l]]||i.options.groups.visibility[t[l]]===!0))for(u=0;u<e[t[l]].length;u++)c.push({screen_x:e[t[l]][u].screen_x,screen_y:e[t[l]][u].screen_y,x:e[t[l]][u].x,y:e[t[l]][u].y,groupId:t[l],label:e[t[l]][u].label}),f+=1;if(0!==f)for(c.sort(function(t,e){return t.screen_x===e.screen_x?t.groupId<e.groupId?-1:1:t.screen_x-e.screen_x}),o._getDataIntersections(p,c),l=0;l<c.length;l++){d=i.groups[c[l].groupId];var m=.1*d.options.barChart.width;a=c[l].screen_x;var v=0;if(void 0===p[a])l+1<c.length&&(r=Math.abs(c[l+1].screen_x-a)),l>0&&(r=Math.min(r,Math.abs(c[l-1].screen_x-a))),h=o._getSafeDrawData(r,d,m);else{var g=l+(p[a].amount-p[a].resolved),y=l-(p[a].resolved+1);g<c.length&&(r=Math.abs(c[g].screen_x-a)),y>0&&(r=Math.min(r,Math.abs(c[y].screen_x-a))),h=o._getSafeDrawData(r,d,m),p[a].resolved+=1,d.options.stack===!0?c[l].screen_y<d.zeroPosition?(v=p[a].accumulatedNegative,p[a].accumulatedNegative+=d.zeroPosition-c[l].screen_y):(v=p[a].accumulatedPositive,p[a].accumulatedPositive+=d.zeroPosition-c[l].screen_y):d.options.barChart.sideBySide===!0&&(h.width=h.width/p[a].amount,h.offset+=p[a].resolved*h.width-.5*h.width*(p[a].amount+1),"left"===d.options.barChart.align?h.offset-=.5*h.width:"right"===d.options.barChart.align&&(h.offset+=.5*h.width))}if(n.drawBar(c[l].screen_x+h.offset,c[l].screen_y-v,h.width,d.zeroPosition-c[l].screen_y,d.className+" vis-bar",i.svgElements,i.svg,d.style),d.options.drawPoints.enabled===!0){var b={screen_x:c[l].screen_x,screen_y:c[l].screen_y-v,x:c[l].x,y:c[l].y,groupId:c[l].groupId,label:c[l].label};s.draw([b],d,i,h.offset)}}},o._getDataIntersections=function(t,e){for(var i,o=0;o<e.length;o++)o+1<e.length&&(i=Math.abs(e[o+1].screen_x-e[o].screen_x)),o>0&&(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 t<e.options.barChart.width&&t>0?(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.groupId<e.groupId?-1:1:t.screen_x-e.screen_x});var r={};o._getDataIntersections(r,t),e[n]=o._getStackedYRange(r,t),e[n].yAxisOrientation=s,i.push(n)}},o._getStackedYRange=function(t,e){for(var i,o=e[0].screen_y,n=e[0].screen_y,s=0;s<e.length;s++)i=e[s].screen_x,void 0===t[i]?(o=o>e[s].screen_y?e[s].screen_y:o,n=n<e[s].screen_y?e[s].screen_y:n):e[s].screen_y<0?t[i].accumulatedNegative+=e[s].screen_y:t[i].accumulatedPositive+=e[s].screen_y;for(var r in t)t.hasOwnProperty(r)&&(o=o>t[r].accumulatedNegative?t[r].accumulatedNegative:o,o=o>t[r].accumulatedPositive?t[r].accumulatedPositive:o,n=n<t[r].accumulatedNegative?t[r].accumulatedNegative:n,n=n<t[r].accumulatedPositive?t[r].accumulatedPositive:n);return{min:o,max:n}},t.exports=o},function(t,e,i){function o(t,e){}function n(t,e){return e="undefined"==typeof e?{}:e,{style:e.style||t.options.drawPoints.style,styles:e.styles||t.options.drawPoints.styles,size:e.size||t.options.drawPoints.size,className:e.className||t.className}}function s(t,e){var i=void 0;return t.options&&t.options.drawPoints&&t.options.drawPoints.onRender&&"function"==typeof t.options.drawPoints.onRender&&(i=t.options.drawPoints.onRender),e.group.options&&e.group.options.drawPoints&&e.group.options.drawPoints.onRender&&"function"==typeof e.group.options.drawPoints.onRender&&(i=e.group.options.drawPoints.onRender),i}var r=i(7);o.draw=function(t,e,i,o){o=o||0;for(var a=s(i,e),h=0;h<t.length;h++)if(a){var d=a(t[h],e);(d===!0||"object"==typeof d)&&r.drawPoint(t[h].screen_x+o,t[h].screen_y,n(e,d),i.svgElements,i.svg,t[h].label)}else r.drawPoint(t[h].screen_x+o,t[h].screen_y,n(e),i.svgElements,i.svg,t[h].label)},o.drawIcon=function(t,e,i,o,s,a){var h=.5*s,d=r.getSVGElement("rect",a.svgElements,a.svg);d.setAttributeNS(null,"x",e),d.setAttributeNS(null,"y",i-h),d.setAttributeNS(null,"width",o),d.setAttributeNS(null,"height",2*h),d.setAttributeNS(null,"class","vis-outline"),r.drawPoint(e+.5*o,i,n(t),a.svgElements,a.svg)},t.exports=o},function(t,e,i){function o(t,e){}var n=i(7);o.calcPath=function(t,e){if(null!=t&&t.length>0){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;n<t.length;n++)o+=t[n][0]+","+t[n][1]+" ";return o},o._catmullRomUniform=function(t){var e,i,o,n,s,r,a=[];a.push([Math.round(t[0].screen_x),Math.round(t[0].screen_y)]);for(var h=1/6,d=t.length,l=0;d-1>l;l++)e=0==l?t[0]:t[l-1],i=t[l],o=t[l+1],n=d>l+2?t[l+2]:o,s={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,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)),u=Math.sqrt(Math.pow(s.screen_x-r.screen_x,2)+Math.pow(s.screen_y-r.screen_y,2)),v=Math.pow(u,i),y=Math.pow(u,2*i),g=Math.pow(l,i),b=Math.pow(l,2*i),_=Math.pow(d,i),w=Math.pow(d,2*i),c=2*w+3*_*g+b,p=2*y+3*v*g+b,f=3*_*(_+g),f>0&&(f=1/f),m=3*v*(v+g),m>0&&(m=1/m),a={screen_x:(-b*o.screen_x+c*n.screen_x+w*s.screen_x)*f,screen_y:(-b*o.screen_y+c*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;i<t.length;i++)e.push([t[i].screen_x,t[i].screen_y]);return e},t.exports=o},function(t,e,i){function o(t,e,i,o){this.body=t,this.defaultOptions={enabled:!0,icons:!0,iconSize:20,iconSpacing:6,left:{visible:!0,position:"top-left"},right:{visible:!0,position:"top-left"}},this.side=i,this.options=n.extend({},this.defaultOptions),this.linegraphOptions=o,this.svgElements={},this.dom={},this.groups={},this.amountOfGroups=0,this._create(),this.framework={svg:this.svg,svgElements:this.svgElements,options:this.options,groups:this.groups},this.setOptions(e)}var n=i(1),s=i(7),r=i(26);o.prototype=new r,o.prototype.clear=function(){this.groups={},this.amountOfGroups=0},o.prototype.addGroup=function(t,e){1!=e.options.excludeFromLegend&&(this.groups.hasOwnProperty(t)||(this.groups[t]=e),this.amountOfGroups+=1)},o.prototype.updateGroup=function(t,e){this.groups[t]=e},o.prototype.removeGroup=function(t){this.groups.hasOwnProperty(t)&&(delete this.groups[t],this.amountOfGroups-=1)},o.prototype._create=function(){this.dom.frame=document.createElement("div"),this.dom.frame.className="vis-legend",this.dom.frame.style.position="absolute",this.dom.frame.style.top="10px",this.dom.frame.style.display="block",this.dom.textArea=document.createElement("div"),this.dom.textArea.className="vis-legend-text",this.dom.textArea.style.position="relative",this.dom.textArea.style.top="0px",this.svg=document.createElementNS("http://www.w3.org/2000/svg","svg"),this.svg.style.position="absolute",this.svg.style.top="0px",this.svg.style.width=this.options.iconSize+5+"px",this.svg.style.height="100%",this.dom.frame.appendChild(this.svg),this.dom.frame.appendChild(this.dom.textArea)},o.prototype.hide=function(){this.dom.frame.parentNode&&this.dom.frame.parentNode.removeChild(this.dom.frame)},o.prototype.show=function(){this.dom.frame.parentNode||this.body.dom.center.appendChild(this.dom.frame)},o.prototype.setOptions=function(t){var e=["enabled","orientation","icons","left","right"];n.selectiveDeepExtend(e,this.options,t)},o.prototype.redraw=function(){var t=0,e=Object.keys(this.groups);e.sort(function(t,e){return e>t?-1:1});for(var i=0;i<e.length;i++){var o=e[i];1!=this.groups[o].visible||void 0!==this.linegraphOptions.visibility[o]&&1!=this.linegraphOptions.visibility[o]||t++}if(0==this.options[this.side].visible||0==this.amountOfGroups||0==this.options.enabled||0==t)this.hide();else{if(this.show(),"top-left"==this.options[this.side].position||"bottom-left"==this.options[this.side].position?(this.dom.frame.style.left="4px",this.dom.frame.style.textAlign="left",this.dom.textArea.style.textAlign="left",this.dom.textArea.style.left=this.options.iconSize+15+"px",this.dom.textArea.style.right="",this.svg.style.left="0px",this.svg.style.right=""):(this.dom.frame.style.right="4px",this.dom.frame.style.textAlign="right",this.dom.textArea.style.textAlign="right",this.dom.textArea.style.right=this.options.iconSize+15+"px",this.dom.textArea.style.left="",this.svg.style.right="0px",this.svg.style.left=""),"top-left"==this.options[this.side].position||"top-right"==this.options[this.side].position)this.dom.frame.style.top=4-Number(this.body.dom.center.style.top.replace("px",""))+"px",this.dom.frame.style.bottom="";else{var n=this.body.domProps.center.height-this.body.domProps.centerContainer.height;this.dom.frame.style.bottom=4+n+Number(this.body.dom.center.style.top.replace("px",""))+"px",this.dom.frame.style.top=""}0==this.options.icons?(this.dom.frame.style.width=this.dom.textArea.offsetWidth+10+"px",this.dom.textArea.style.right="",this.dom.textArea.style.left="",this.svg.style.width="0px"):(this.dom.frame.style.width=this.options.iconSize+15+this.dom.textArea.offsetWidth+10+"px",this.drawLegendIcons());for(var s="",i=0;i<e.length;i++){var o=e[i];1!=this.groups[o].visible||void 0!==this.linegraphOptions.visibility[o]&&1!=this.linegraphOptions.visibility[o]||(s+=this.groups[o].content+"<br />")}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<t.length;h++){var d=t[h];1!=this.groups[d].visible||void 0!==this.linegraphOptions.visibility[d]&&1!=this.linegraphOptions.visibility[d]||(this.groups[d].getLegend(n,r,this.framework,o,a),a+=r+this.options.iconSpacing)}}},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"}},yAxisOrientation:{string:["left","right"]},defaultGroup:{string:i},sort:{"boolean":o},sampling:{"boolean":o},stack:{"boolean":o},graphHeight:{string:i,number:n},shaded:{enabled:{"boolean":o},orientation:{string:["bottom","top","zero","group"]},groupId:{object:a},__type__:{"boolean":o,object:a}},style:{string:["line","bar","points"]},barChart:{width:{number:n},sideBySide:{"boolean":o},align:{string:["left","center","right"]},__type__:{object:a}},interpolation:{enabled:{"boolean":o},parametrization:{string:["centripetal","chordal","uniform"]},alpha:{number:n},__type__:{object:a,"boolean":o}},drawPoints:{enabled:{"boolean":o},onRender:{"function":"function"},size:{number:n},style:{string:["square","circle"]},__type__:{object:a,"boolean":o,"function":"function"}},dataAxis:{showMinorLabels:{"boolean":o},showMajorLabels:{"boolean":o},icons:{"boolean":o},width:{string:i,number:n},visible:{"boolean":o},alignZeros:{"boolean":o},left:{range:{min:{number:n},max:{number:n},__type__:{object:a}},format:{"function":"function"},title:{text:{string:i,number:n},style:{string:i},__type__:{object:a}},__type__:{object:a}},right:{range:{min:{number:n},max:{number:n},__type__:{object:a}},format:{"function":"function"},title:{text:{string:i,number:n},style:{string:i},__type__:{object:a}},__type__:{object:a}},__type__:{object:a}},legend:{enabled:{"boolean":o},icons:{"boolean":o},left:{visible:{"boolean":o},position:{string:["top-right","bottom-right","top-left","bottom-left"]},__type__:{object:a}},right:{visible:{"boolean":o},position:{string:["top-right","bottom-right","top-left","bottom-left"]},__type__:{object:a}},__type__:{object:a,"boolean":o}},groups:{visibility:{any:l},__type__:{object:a}},autoResize:{"boolean":o},throttleRedraw:{number:n},clickToUse:{"boolean":o},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"},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}},locale:{string:i},locales:{__any__:{any:l},__type__:{object:a}},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},orientation:{string:i},showCurrentTime:{"boolean":o},showMajorLabels:{"boolean":o},showMinorLabels:{"boolean":o},start:{date:r,number:n,string:i,moment:d},timeAxis:{scale:{string:i,undefined:"undefined"},step:{number:n,undefined:"undefined"},__type__:{object:a}},width:{string:i,number:n},zoomable:{"boolean":o},zoomKey:{string:["ctrlKey","altKey","metaKey",""]},zoomMax:{number:n},zoomMin:{number:n},zIndex:{number:n},__type__:{object:a}},c={global:{sort:!0,sampling:!0,stack:!1,shaded:{enabled:!1,orientation:["zero","top","bottom","group"]},style:["line","bar","points"],barChart:{width:[50,5,100,5],sideBySide:!1,align:["left","center","right"]},interpolation:{enabled:!0,parametrization:["centripetal","chordal","uniform"]},drawPoints:{enabled:!0,size:[6,2,30,1],style:["square","circle"]},dataAxis:{showMinorLabels:!0,showMajorLabels:!0,icons:!1,width:[40,0,200,1],visible:!0,alignZeros:!0,left:{title:{text:"",style:""}},right:{title:{text:"",style:""}}},legend:{enabled:!1,icons:!0,left:{visible:!0,position:["top-right","bottom-right","top-left","bottom-left"]},right:{visible:!0,position:["top-right","bottom-right","top-left","bottom-left"]}},autoResize:!0,throttleRedraw:[10,0,1e3,10],clickToUse:!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:""}},height:"",locale:"",max:"",maxHeight:"",maxMinorChars:[7,0,20,1],min:"",minHeight:"",moveable:!0,orientation:["both","bottom","top"],showCurrentTime:!1,showMajorLabels:!0,showMinorLabels:!0,start:"",width:"100%",zoomable:!0,zoomKey:["ctrlKey","altKey","metaKey",""],zoomMax:[31536e10,10,31536e10,1],zoomMin:[10,10,31536e10,1],zIndex:0}};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){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:W,clickToUse:!1},B.extend(this.options,this.defaultOptions),this.body={container:t,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 j(function(){return o.body.emitter.emit("_requestRedraw")}),this.groups=new r["default"],this.canvas=new y["default"](this.body),this.selectionHandler=new O["default"](this.body,this.canvas),this.interactionHandler=new x["default"](this.body,this.canvas,this.selectionHandler),this.view=new w["default"](this.body,this.canvas),this.renderer=new v["default"](this.body,this.canvas),this.physics=new c["default"](this.body),this.layoutEngine=new D["default"](this.body),this.clustering=new f["default"](this.body),this.manipulation=new T["default"](this.body,this.canvas,this.selectionHandler),this.nodesHandler=new h["default"](this.body,this.images,this.groups,this.layoutEngine),this.edgesHandler=new l["default"](this.body,this.images,this.groups),this.body.modules.kamadaKawai=new L["default"](this.body,150,.05),this.body.modules.clustering=this.clustering,this.canvas._create(),this.setOptions(i),this.setData(e)}var s=i(60),r=o(s),a=i(61),h=o(a),d=i(81),l=o(d),u=i(90),c=o(u),p=i(99),f=o(p),m=i(102),v=o(m),g=i(103),y=o(g),b=i(104),w=o(b),_=i(105),x=o(_),k=i(108),O=o(k),M=i(109),D=o(M),C=i(110),T=o(C),S=i(45),E=o(S),P=i(47),I=o(P),N=i(111),z=i(112),L=o(z);i(114);var A=i(12),B=(i(20),i(1)),F=(i(8),i(10),i(115)),R=i(116),j=i(117),H=i(40),W=i(118);A(n.prototype),n.prototype.setOptions=function(t){var e=this;if(void 0!==t){var i=I["default"].validate(t,N.allOptions);i===!0&&console.log("%cErrors have been found in the supplied options object.",P.printStyle);var o=["locale","locales","clickToUse"];if(B.selectiveDeepExtend(o,this.options,t),t=this.layoutEngine.setOptions(t.layout,t),this.canvas.setOptions(t),this.groups.setOptions(t.groups),this.nodesHandler.setOptions(t.nodes),this.edgesHandler.setOptions(t.edges),this.physics.setOptions(t.physics),this.manipulation.setOptions(t.manipulation,t,this.options),this.interactionHandler.setOptions(t.interaction),this.renderer.setOptions(t.interaction),this.selectionHandler.setOptions(t.interaction),void 0!==t.groups&&this.body.emitter.emit("refreshNodes"),"configure"in t&&(this.configurator||(this.configurator=new E["default"](this,this.body.container,N.configureOptions,this.canvas.pixelRatio)),this.configurator.setOptions(t.configure)),this.configurator&&this.configurator.options.enabled===!0){var n={nodes:{},edges:{},layout:{},interaction:{},manipulation:{},physics:{},global:{}};B.deepExtend(n.nodes,this.nodesHandler.options),B.deepExtend(n.edges,this.edgesHandler.options),B.deepExtend(n.layout,this.layoutEngine.options),B.deepExtend(n.interaction,this.selectionHandler.options),B.deepExtend(n.interaction,this.renderer.options),B.deepExtend(n.interaction,this.interactionHandler.options),B.deepExtend(n.manipulation,this.manipulation.options),B.deepExtend(n.physics,this.physics.options),B.deepExtend(n.global,this.canvas.options),B.deepExtend(n.global,this.options),this.configurator.setModuleOptions(n)}void 0!==t.clickToUse?t.clickToUse===!0?void 0===this.activator&&(this.activator=new H(this.canvas.frame),this.activator.on("change",function(){e.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 t=this.body.nodes,e=this.body.edges;this.body.nodeIndices=[],this.body.edgeIndices=[];for(var i in t)t.hasOwnProperty(i)&&t[i].options.hidden===!1&&this.body.nodeIndices.push(i);for(var o in e)e.hasOwnProperty(o)&&e[o].options.hidden===!1&&this.body.edgeIndices.push(o)},n.prototype.bindEventListeners=function(){var t=this;this.body.emitter.on("_dataChanged",function(){t._updateVisibleIndices(),t.body.emitter.emit("_requestRedraw"),t.body.emitter.emit("_dataUpdated")}),this.body.emitter.on("_dataUpdated",function(){t._updateValueRange(t.body.nodes),t._updateValueRange(t.body.edges),t.body.emitter.emit("startSimulation"),t.body.emitter.emit("_requestRedraw")})},n.prototype.setData=function(t){if(this.body.emitter.emit("resetPhysics"),this.body.emitter.emit("_resetData"),this.selectionHandler.unselectAll(),t&&t.dot&&(t.nodes||t.edges))throw new SyntaxError('Data must contain either parameter "dot" or parameter pair "nodes" and "edges", but not both.');if(this.setOptions(t&&t.options),t&&t.dot){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 e=F.DOTToGraph(t.dot);return void this.setData(e)}if(t&&t.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=R.parseGephi(t.gephi);return void this.setData(i)}this.nodesHandler.setData(t&&t.nodes,!0),this.edgesHandler.setData(t&&t.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 t in this.body.nodes)delete this.body.nodes[t];for(var e in this.body.edges)delete this.body.edges[e];B.recursiveDOMDelete(this.body.container)},n.prototype._updateValueRange=function(t){var e,i=void 0,o=void 0,n=0;for(e in t)if(t.hasOwnProperty(e)){var s=t[e].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(e in t)t.hasOwnProperty(e)&&t[e].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(t){return void 0!==this.body.nodes[t]?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 t=this.selectionHandler.getNodeAt.apply(this.selectionHandler,arguments);return void 0!==t&&void 0!==t.id?t.id:t},n.prototype.getEdgeAt=function(){var t=this.selectionHandler.getEdgeAt.apply(this.selectionHandler,arguments);return void 0!==t&&void 0!==t.id?t.id:t},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 t={};return this.configurator&&(t=this.configurator.getOptions.apply(this.configurator)),t},t.exports=n},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;i<e.length;i++){var o=e[i];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(t,o.key,o)}}return function(e,i,o){return i&&t(e.prototype,i),o&&t(e,o),e}}(),s=i(1),r=function(){function t(){o(this,t),this.clear(),this.defaultIndex=0,this.groupsArray=[],this.groupIndex=0,this.defaultGroups=[{border:"#2B7CE9",background:"#97C2FC",highlight:{border:"#2B7CE9",background:"#D2E5FF"},hover:{border:"#2B7CE9",background:"#D2E5FF"}},{border:"#FFA500",background:"#FFFF00",highlight:{border:"#FFA500",background:"#FFFFA3"},hover:{border:"#FFA500",background:"#FFFFA3"}},{border:"#FA0A10",background:"#FB7E81",highlight:{border:"#FA0A10",background:"#FFAFB1"},hover:{border:"#FA0A10",background:"#FFAFB1"}},{border:"#41A906",background:"#7BE141",highlight:{border:"#41A906",background:"#A1EC76"},hover:{border:"#41A906",background:"#A1EC76"}},{border:"#E129F0",background:"#EB7DF4",highlight:{border:"#E129F0",background:"#F0B3F5"},hover:{border:"#E129F0",background:"#F0B3F5"}},{border:"#7C29F0",background:"#AD85E4",highlight:{border:"#7C29F0",background:"#D3BDF0"},hover:{border:"#7C29F0",background:"#D3BDF0"}},{border:"#C37F00",background:"#FFA807",highlight:{border:"#C37F00",background:"#FFCA66"},hover:{border:"#C37F00",background:"#FFCA66"}},{border:"#4220FB",background:"#6E6EFD",highlight:{border:"#4220FB",background:"#9B9BFD"},hover:{border:"#4220FB",background:"#9B9BFD"}},{border:"#FD5A77",background:"#FFC0CB",highlight:{border:"#FD5A77",background:"#FFD1D9"},hover:{border:"#FD5A77",background:"#FFD1D9"}},{border:"#4AD63A",background:"#C2FABC",highlight:{border:"#4AD63A",background:"#E6FFE3"},hover:{border:"#4AD63A",background:"#E6FFE3"}},{border:"#990000",background:"#EE0000",highlight:{border:"#BB0000",background:"#FF3333"},hover:{border:"#BB0000",background:"#FF3333"}},{border:"#FF6000",background:"#FF6000",highlight:{border:"#FF6000",background:"#FF6000"},hover:{border:"#FF6000",background:"#FF6000"}},{border:"#97C2FC",background:"#2B7CE9",highlight:{border:"#D2E5FF",background:"#2B7CE9"},hover:{border:"#D2E5FF",background:"#2B7CE9"}},{border:"#399605",background:"#255C03",highlight:{border:"#399605",background:"#255C03"},hover:{border:"#399605",background:"#255C03"}},{border:"#B70054",background:"#FF007E",highlight:{border:"#B70054",background:"#FF007E"},hover:{border:"#B70054",background:"#FF007E"}},{border:"#AD85E4",background:"#7C29F0",highlight:{border:"#D3BDF0",background:"#7C29F0"},hover:{border:"#D3BDF0",background:"#7C29F0"}},{border:"#4557FA",background:"#000EA1",highlight:{border:"#6E6EFD",background:"#000EA1"},hover:{border:"#6E6EFD",background:"#000EA1"}},{border:"#FFC0CB",background:"#FD5A77",highlight:{border:"#FFD1D9",background:"#FD5A77"},hover:{border:"#FFD1D9",background:"#FD5A77"}},{border:"#C2FABC",background:"#74D66A",highlight:{border:"#E6FFE3",background:"#74D66A"},hover:{border:"#E6FFE3",background:"#74D66A"}},{border:"#EE0000",background:"#990000",highlight:{border:"#FF3333",background:"#BB0000"},hover:{border:"#FF3333",background:"#BB0000"}}],this.options={},this.defaultOptions={useDefaultGroups:!0},s.extend(this.options,this.defaultOptions)}return n(t,[{key:"setOptions",value:function(t){var e=["useDefaultGroups"];if(void 0!==t)for(var i in t)if(t.hasOwnProperty(i)&&-1===e.indexOf(i)){var o=t[i];this.add(i,o)}}},{key:"clear",value:function(){this.groups={},this.groupsArray=[]}},{key:"get",value:function(t){var e=this.groups[t];if(void 0===e)if(this.options.useDefaultGroups===!1&&this.groupsArray.length>0){var i=this.groupIndex%this.groupsArray.length;this.groupIndex++,e={},e.color=this.groups[this.groupsArray[i]],this.groups[t]=e}else{var i=this.defaultIndex%this.defaultGroups.length;this.defaultIndex++,e={},e.color=this.defaultGroups[i],this.groups[t]=e}return e}},{key:"add",value:function(t,e){return this.groups[t]=e,this.groupsArray.push(t),e}}]),t}();e["default"]=r,t.exports=e["default"]},function(t,e,i){function o(t){return t&&t.__esModule?t:{"default":t}}function n(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(e,"__esModule",{value:!0});var s=function(){function t(t,e){for(var i=0;i<e.length;i++){var o=e[i];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(t,o.key,o)}}return function(e,i,o){return i&&t(e.prototype,i),o&&t(e,o),e}}(),r=i(62),a=o(r),h=i(63),d=o(h),l=i(1),u=i(8),c=i(10),p=function(){function t(e,i,o,s){var r=this;n(this,t),this.body=e,this.images=i,this.groups=o,this.layoutEngine=s,this.body.functions.createNode=this.create.bind(this),this.nodesListeners={add:function(t,e){r.add(e.items)},update:function(t,e){r.update(e.items,e.data)},remove:function(t,e){r.remove(e.items)}},this.options={},this.defaultOptions={borderWidth:1,borderWidthSelected:2,brokenImage:void 0,color:{border:"#2B7CE9",background:"#97C2FC",highlight:{border:"#2B7CE9",background:"#D2E5FF"},hover:{border:"#2B7CE9",background:"#D2E5FF"}},fixed:{x:!1,y:!1},font:{color:"#343434",size:14,face:"arial",background:"none",strokeWidth:0,strokeColor:"#ffffff",align:"horizontal"},group:void 0,hidden:!1,icon:{face:"FontAwesome",code:void 0,size:50,color:"#2B7CE9"},image:void 0,label:void 0,labelHighlightBold:!0,level:void 0,mass:1,physics:!0,scaling:{min:10,max:30,label:{enabled:!1,min:14,max:30,maxVisible:30,drawThreshold:5},customScalingFunction:function(t,e,i,o){if(e===t)return.5;var n=1/(e-t);return Math.max(0,(o-t)*n)}},shadow:{enabled:!1,size:10,x:5,y:5},shape:"ellipse",shapeProperties:{borderDashes:!1,borderRadius:6,useImageSize:!1,useBorderWithImage:!1},size:25,title:void 0,value:void 0,x:void 0,y:void 0},l.extend(this.options,this.defaultOptions),this.bindEventListeners()}return s(t,[{key:"bindEventListeners",value:function(){var t=this;this.body.emitter.on("refreshNodes",this.refresh.bind(this)),this.body.emitter.on("refresh",this.refresh.bind(this)),this.body.emitter.on("destroy",function(){delete t.body.functions.createNode,delete t.nodesListeners.add,delete t.nodesListeners.update,delete t.nodesListeners.remove,delete t.nodesListeners})}},{key:"setOptions",value:function(t){if(void 0!==t){if(a["default"].parseOptions(this.options,t),void 0!==t.shape)for(var e in this.body.nodes)this.body.nodes.hasOwnProperty(e)&&this.body.nodes[e].updateShape();if(void 0!==t.font){d["default"].parseOptions(this.options.font,t);for(var e in this.body.nodes)this.body.nodes.hasOwnProperty(e)&&(this.body.nodes[e].updateLabelModule(),this.body.nodes[e]._reset())}if(void 0!==t.size)for(var e in this.body.nodes)this.body.nodes.hasOwnProperty(e)&&this.body.nodes[e]._reset();(void 0!==t.hidden||void 0!==t.physics)&&this.body.emitter.emit("_dataChanged")}}},{key:"setData",value:function(t){var e=this,i=arguments.length<=1||void 0===arguments[1]?!1:arguments[1],o=this.body.data.nodes;if(t instanceof u||t instanceof c)this.body.data.nodes=t;else if(Array.isArray(t))this.body.data.nodes=new u,this.body.data.nodes.add(t);else{if(t)throw new TypeError("Array or DataSet expected");this.body.data.nodes=new u}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]?!1:arguments[1],i=void 0,o=[],n=0;n<t.length;n++){i=t[n];var s=this.body.data.nodes.get(i),r=this.create(s);o.push(r),this.body.nodes[i]=r}this.layoutEngine.positionInitially(o),e===!1&&this.body.emitter.emit("_dataChanged")}},{key:"update",value:function(t,e){for(var i=this.body.nodes,o=!1,n=0;n<t.length;n++){var s=t[n],r=i[s],a=e[n];void 0!==r?o=r.setOptions(a):(o=!0,r=this.create(a),i[s]=r)}o===!0?this.body.emitter.emit("_dataChanged"):this.body.emitter.emit("_dataUpdated")}},{key:"remove",value:function(t){for(var e=this.body.nodes,i=0;i<t.length;i++){var o=t[i];delete e[o]}this.body.emitter.emit("_dataChanged")}},{key:"create",value:function(t){var e=arguments.length<=1||void 0===arguments[1]?a["default"]:arguments[1];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]?!1: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;i<t.length;i++)if(void 0!==this.body.nodes[t[i]]){var o=this.body.nodes[t[i]];e[t[i]]={x:Math.round(o.x),y:Math.round(o.y)}}}else if(void 0!==this.body.nodes[t]){var o=this.body.nodes[t];e[t]={x:Math.round(o.x),y:Math.round(o.y)}}}else for(var i=0;i<this.body.nodeIndices.length;i++){var o=this.body.nodes[this.body.nodeIndices[i]];e[this.body.nodeIndices[i]]={x:Math.round(o.x),y:Math.round(o.y)}}return e}},{key:"storePositions",value:function(){var t=[],e=this.body.data.nodes.getDataSet();for(var i in e._data)if(e._data.hasOwnProperty(i)){var o=this.body.nodes[i];(e._data[i].x!=Math.round(o.x)||e._data[i].y!=Math.round(o.y))&&t.push({id:i,x:Math.round(o.x),
-y:Math.round(o.y)})}e.update(t)}},{key:"getBoundingBox",value:function(t){return void 0!==this.body.nodes[t]?this.body.nodes[t].shape.boundingBox:void 0}},{key:"getConnectedNodes",value:function(t){var e=[];if(void 0!==this.body.nodes[t])for(var i=this.body.nodes[t],o={},n=0;n<i.edges.length;n++){var s=i.edges[n];s.toId==t?void 0===o[s.fromId]&&(e.push(s.fromId),o[s.fromId]=!0):s.fromId==t&&void 0===o[s.toId]&&(e.push(s.toId),o[s.toId]=!0)}return e}},{key:"getConnectedEdges",value:function(t){var e=[];if(void 0!==this.body.nodes[t])for(var i=this.body.nodes[t],o=0;o<i.edges.length;o++)e.push(i.edges[o].id);else console.log("NodeId provided for getConnectedEdges does not exist. Provided: ",t);return e}},{key:"moveNode",value:function(t,e,i){var o=this;void 0!==this.body.nodes[t]?(this.body.nodes[t].x=Number(e),this.body.nodes[t].y=Number(i),setTimeout(function(){o.body.emitter.emit("startSimulation")},0)):console.log("Node id supplied to moveNode does not exist. Provided: ",t)}}]),t}();e["default"]=p,t.exports=e["default"]},function(t,e,i){function o(t){return t&&t.__esModule?t:{"default":t}}function n(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(e,"__esModule",{value:!0});var s=function(){function t(t,e){for(var i=0;i<e.length;i++){var o=e[i];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(t,o.key,o)}}return function(e,i,o){return i&&t(e.prototype,i),o&&t(e,o),e}}(),r=i(63),a=o(r),h=i(64),d=o(h),l=i(66),u=o(l),c=i(68),p=o(c),f=i(69),m=o(f),v=i(70),g=o(v),y=i(72),b=o(y),w=i(73),_=o(w),x=i(74),k=o(x),O=i(75),M=o(O),D=i(76),C=o(D),T=i(77),S=o(T),E=i(78),P=o(E),I=i(79),N=o(I),z=i(80),L=o(z),A=i(47),B=(o(A),i(1)),F=function(){function t(e,i,o,s,r){n(this,t),this.options=B.bridgeObject(r),this.globalOptions=r,this.body=i,this.edges=[],this.id=void 0,this.imagelist=o,this.grouplist=s,this.x=void 0,this.y=void 0,this.baseSize=this.options.size,this.baseFontSize=this.options.font.size,this.predefinedPosition=!1,this.selected=!1,this.hover=!1,this.labelModule=new a["default"](this.body,this.options),this.setOptions(e)}return s(t,[{key:"attachEdge",value:function(t){-1===this.edges.indexOf(t)&&this.edges.push(t)}},{key:"detachEdge",value:function(t){var e=this.edges.indexOf(t);-1!=e&&this.edges.splice(e,1)}},{key:"setOptions",value:function(e){var i=this.options.shape;if(e){if(void 0!==e.id&&(this.id=e.id),void 0===this.id)throw"Node must have an id";if(void 0!==e.x&&(null===e.x?(this.x=void 0,this.predefinedPosition=!1):(this.x=parseInt(e.x),this.predefinedPosition=!0)),void 0!==e.y&&(null===e.y?(this.y=void 0,this.predefinedPosition=!1):(this.y=parseInt(e.y),this.predefinedPosition=!0)),void 0!==e.size&&(this.baseSize=e.size),void 0!==e.value&&(e.value=parseFloat(e.value)),"number"==typeof e.group||"string"==typeof e.group&&""!=e.group){var o=this.grouplist.get(e.group);B.deepExtend(this.options,o),this.options.color=B.parseColor(this.options.color)}if(t.parseOptions(this.options,e,!0,this.globalOptions),void 0!==this.options.image){if(!this.imagelist)throw"No imagelist provided";this.imageObj=this.imagelist.load(this.options.image,this.options.brokenImage,this.id)}return this.updateLabelModule(),this.updateShape(i),void 0!==e.hidden||void 0!==e.physics?!0:!1}}},{key:"updateLabelModule",value:function(){(void 0===this.options.label||null===this.options.label)&&(this.options.label=""),this.labelModule.setOptions(this.options,!0),void 0!==this.labelModule.baseSize&&(this.baseFontSize=this.labelModule.baseSize)}},{key:"updateShape",value:function(t){if(t===this.options.shape&&this.shape)this.shape.setOptions(this.options,this.imageObj);else switch(this.options.shape){case"box":this.shape=new d["default"](this.options,this.body,this.labelModule);break;case"circle":this.shape=new u["default"](this.options,this.body,this.labelModule);break;case"circularImage":this.shape=new p["default"](this.options,this.body,this.labelModule,this.imageObj);break;case"database":this.shape=new m["default"](this.options,this.body,this.labelModule);break;case"diamond":this.shape=new g["default"](this.options,this.body,this.labelModule);break;case"dot":this.shape=new b["default"](this.options,this.body,this.labelModule);break;case"ellipse":this.shape=new _["default"](this.options,this.body,this.labelModule);break;case"icon":this.shape=new k["default"](this.options,this.body,this.labelModule);break;case"image":this.shape=new M["default"](this.options,this.body,this.labelModule,this.imageObj);break;case"square":this.shape=new C["default"](this.options,this.body,this.labelModule);break;case"star":this.shape=new S["default"](this.options,this.body,this.labelModule);break;case"text":this.shape=new P["default"](this.options,this.body,this.labelModule);break;case"triangle":this.shape=new N["default"](this.options,this.body,this.labelModule);break;case"triangleDown":this.shape=new L["default"](this.options,this.body,this.labelModule);break;default:this.shape=new _["default"](this.options,this.body,this.labelModule)}this._reset()}},{key:"select",value:function(){this.selected=!0,this._reset()}},{key:"unselect",value:function(){this.selected=!1,this._reset()}},{key:"_reset",value:function(){this.shape.width=void 0,this.shape.height=void 0}},{key:"getTitle",value:function(){return this.options.title}},{key:"distanceToBorder",value:function(t,e){return this.shape.distanceToBorder(t,e)}},{key:"isFixed",value:function(){return this.options.fixed.x&&this.options.fixed.y}},{key:"isSelected",value:function(){return this.selected}},{key:"getValue",value:function(){return this.options.value}},{key:"setValueRange",value:function(t,e,i){if(void 0!==this.options.value){var o=this.options.scaling.customScalingFunction(t,e,i,this.options.value),n=this.options.scaling.max-this.options.scaling.min;if(this.options.scaling.label.enabled===!0){var s=this.options.scaling.label.max-this.options.scaling.label.min;this.options.font.size=this.options.scaling.label.min+o*s}this.options.size=this.options.scaling.min+o*n}else this.options.size=this.baseSize,this.options.font.size=this.baseFontSize;this.updateLabelModule()}},{key:"draw",value:function(t){this.shape.draw(t,this.x,this.y,this.selected,this.hover)}},{key:"updateBoundingBox",value:function(t){this.shape.updateBoundingBox(this.x,this.y,t)}},{key:"resize",value:function(t){this.shape.resize(t,this.selected)}},{key:"isOverlappingWith",value:function(t){return this.shape.left<t.right&&this.shape.left+this.shape.width>t.left&&this.shape.top<t.bottom&&this.shape.top+this.shape.height>t.top}},{key:"isBoundingBoxOverlappingWith",value:function(t){return this.shape.boundingBox.left<t.right&&this.shape.boundingBox.right>t.left&&this.shape.boundingBox.top<t.bottom&&this.shape.boundingBox.bottom>t.top}}],[{key:"parseOptions",value:function(t,e){var i=arguments.length<=2||void 0===arguments[2]?!1:arguments[2],o=arguments.length<=3||void 0===arguments[3]?{}:arguments[3],n=["color","font","fixed","shadow"];if(B.selectiveNotDeepExtend(n,t,e,i),B.mergeOptions(t,e,"shadow",i,o),void 0!==e.color&&null!==e.color){var s=B.parseColor(e.color);B.fillIfDefined(t.color,s)}else i===!0&&null===e.color&&(t.color=B.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=B.bridgeObject(o.font)),void 0!==e.scaling&&B.mergeOptions(t.scaling,e.scaling,"label",i,o.scaling)}}]),t}();e["default"]=F,t.exports=e["default"]},function(t,e,i){function o(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(e,"__esModule",{value:!0});var n=function(){function t(t,e){var i=[],o=!0,n=!1,s=void 0;try{for(var r,a=t[Symbol.iterator]();!(o=(r=a.next()).done)&&(i.push(r.value),!e||i.length!==e);o=!0);}catch(h){n=!0,s=h}finally{try{!o&&a["return"]&&a["return"]()}finally{if(n)throw s}}return i}return function(e,i){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return t(e,i);throw new TypeError("Invalid attempt to destructure non-iterable instance")}}(),s=function(){function t(t,e){for(var i=0;i<e.length;i++){var o=e[i];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(t,o.key,o)}}return function(e,i,o){return i&&t(e.prototype,i),o&&t(e,o),e}}(),r=i(1),a=function(){function t(e,i){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}}return s(t,[{key:"setOptions",value:function(e){var i=arguments.length<=1||void 0===arguments[1]?!1:arguments[1];this.nodeOptions=e,this.fontOptions=r.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"==typeof 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]?"middle":arguments[4];if(void 0!==this.nodeOptions.label){var s=this.fontOptions.size*this.body.view.scale;this.nodeOptions.label&&s<this.nodeOptions.scaling.label.drawThreshold-1||(this.calculateLabelSize(t,o,e,i,n),this._drawBackground(t),this._drawText(t,o,e,i,n))}}},{key:"_drawBackground",value:function(t){if(void 0!==this.fontOptions.background&&"none"!==this.fontOptions.background){t.fillStyle=this.fontOptions.background;var e=2;switch(this.fontOptions.align){case"middle":t.fillRect(.5*-this.size.width,.5*-this.size.height,this.size.width,this.size.height);break;case"top":t.fillRect(.5*-this.size.width,-(this.size.height+e),this.size.width,this.size.height);break;case"bottom":t.fillRect(.5*-this.size.width,e,this.size.width,this.size.height);break;default:t.fillRect(this.size.left,this.size.top-.5*e,this.size.width,this.size.height)}}}},{key:"_drawText",value:function(t,e,i,o){var s=arguments.length<=4||void 0===arguments[4]?"middle":arguments[4],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),u=l[0],c=l[1],p=this._setAlignment(t,i,h,s),f=n(p,2);i=f[0],h=f[1],t.font=(e&&this.nodeOptions.labelHighlightBold?"bold ":"")+r+"px "+this.fontOptions.face,t.fillStyle=u,t.textAlign="center",this.fontOptions.strokeWidth>0&&(t.lineWidth=this.fontOptions.strokeWidth,t.strokeStyle=c,t.lineJoin="round");for(var m=0;m<this.lineCount;m++)this.fontOptions.strokeWidth>0&&t.strokeText(this.lines[m],i,h),t.fillText(this.lines[m],i,h),h+=r}},{key:"_setAlignment",value:function(t,e,i,o){if("horizontal"!==this.fontOptions.align&&this.pointToSelf===!1){e=0,i=0;var n=2;"top"===this.fontOptions.align?(t.textBaseline="alphabetic",i-=2*n):"bottom"===this.fontOptions.align?(t.textBaseline="hanging",i+=2*n):t.textBaseline="middle"}else t.textBaseline=o;return[e,i]}},{key:"_getColor",value:function(t){var e=this.fontOptions.color||"#000000",i=this.fontOptions.strokeColor||"#ffffff";if(t<=this.nodeOptions.scaling.label.drawThreshold){var o=Math.max(0,Math.min(1,1-(this.nodeOptions.scaling.label.drawThreshold-t)));e=r.overrideOpacity(e,o),i=r.overrideOpacity(i,o)}return[e,i]}},{key:"getTextSize",value:function(t){var e=arguments.length<=1||void 0===arguments[1]?!1:arguments[1],i={width:this._processLabel(t,e),height:this.fontOptions.size*this.lineCount,lineCount:this.lineCount};return i}},{key:"calculateLabelSize",value:function(t,e){var i=arguments.length<=2||void 0===arguments[2]?0:arguments[2],o=arguments.length<=3||void 0===arguments[3]?0:arguments[3],n=arguments.length<=4||void 0===arguments[4]?"middle":arguments[4];this.labelDirty===!0&&(this.size.width=this._processLabel(t,e)),this.size.height=this.fontOptions.size*this.lineCount,this.size.left=i-.5*this.size.width,this.size.top=o-.5*this.size.height,this.size.yLine=o+.5*(1-this.lineCount)*this.fontOptions.size,"hanging"===n&&(this.size.top+=.5*this.fontOptions.size,this.size.top+=4,this.size.yLine+=4),this.labelDirty=!1}},{key:"_processLabel",value:function(t,e){var i=0,o=[""],n=0;if(void 0!==this.nodeOptions.label){o=String(this.nodeOptions.label).split("\n"),n=o.length,t.font=(e&&this.nodeOptions.labelHighlightBold?"bold ":"")+this.fontOptions.size+"px "+this.fontOptions.face,i=t.measureText(o[0]).width;for(var s=1;n>s;s++){var r=t.measureText(o[s]).width;i=r>i?r:i}}return this.lines=o,this.lineCount=n,i}}],[{key:"parseOptions",value:function(t,e){var i=arguments.length<=2||void 0===arguments[2]?!1:arguments[2];if("string"==typeof e.font){var o=e.font.split(" ");t.size=o[0].replace("px",""),t.face=o[1],t.color=o[2]}else"object"==typeof e.font&&r.fillIfDefined(t,e.font,i);t.size=Number(t.size)}}]),t}();e["default"]=a,t.exports=e["default"]},function(t,e,i){function o(t){return t&&t.__esModule?t:{"default":t}}function n(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function s(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}Object.defineProperty(e,"__esModule",{value:!0});var r=function(){function t(t,e){for(var i=0;i<e.length;i++){var o=e[i];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(t,o.key,o)}}return function(e,i,o){return i&&t(e.prototype,i),o&&t(e,o),e}}(),a=function(t,e,i){for(var o=!0;o;){var n=t,s=e,r=i;o=!1,null===n&&(n=Function.prototype);var a=Object.getOwnPropertyDescriptor(n,s);if(void 0!==a){if("value"in a)return a.value;var h=a.get;if(void 0===h)return;return h.call(r)}var d=Object.getPrototypeOf(n);if(null===d)return;t=d,e=s,i=r,o=!0,a=d=void 0}},h=i(65),d=o(h),l=function(t){function e(t,i,o){n(this,e),a(Object.getPrototypeOf(e.prototype),"constructor",this).call(this,t,i,o)}return s(e,t),r(e,[{key:"resize",value:function(t,e){if(void 0===this.width){var i=5,o=this.labelModule.getTextSize(t,e);this.width=o.width+2*i,this.height=o.height+2*i,this.radius=.5*this.width}}},{key:"draw",value:function(t,e,i,o,n){this.resize(t,o),this.left=e-this.width/2,this.top=i-this.height/2;var s=this.options.borderWidth,r=this.options.borderWidthSelected||2*this.options.borderWidth;t.strokeStyle=o?this.options.color.highlight.border:n?this.options.color.hover.border:this.options.color.border,t.lineWidth=o?r:s,t.lineWidth/=this.body.view.scale,t.lineWidth=Math.min(this.width,t.lineWidth),t.fillStyle=o?this.options.color.highlight.background:n?this.options.color.hover.background:this.options.color.background;var a=this.options.shapeProperties.borderRadius;t.roundRect(this.left,this.top,this.width,this.height,a),this.enableShadow(t),t.fill(),this.disableShadow(t),t.save(),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=this.width/2,o=this.height/2,n=Math.sin(e)*i,s=Math.cos(e)*o;return i*o/Math.sqrt(n*n+s*s)}}]),e}(d["default"]);e["default"]=l,t.exports=e["default"]},function(t,e){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;i<e.length;i++){var o=e[i];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(t,o.key,o)}}return function(e,i,o){return i&&t(e.prototype,i),o&&t(e,o),e}}(),n=function(){function t(e,o,n){i(this,t),this.body=o,this.labelModule=n,this.setOptions(e),this.top=void 0,this.left=void 0,this.height=void 0,this.width=void 0,this.radius=void 0,this.boundingBox={top:0,left:0,right:0,bottom:0}}return o(t,[{key:"setOptions",value:function(t){this.options=t}},{key:"_distanceToBorder",value:function(t,e){var i=1;return this.resize(t),Math.min(Math.abs(this.width/2/Math.cos(e)),Math.abs(this.height/2/Math.sin(e)))+i}},{key:"enableShadow",value:function(t){this.options.shadow.enabled===!0&&(t.shadowColor="rgba(0,0,0,0.5)",t.shadowBlur=this.options.shadow.size,t.shadowOffsetX=this.options.shadow.x,t.shadowOffsetY=this.options.shadow.y)}},{key:"disableShadow",value:function(t){this.options.shadow.enabled===!0&&(t.shadowColor="rgba(0,0,0,0)",t.shadowBlur=0,t.shadowOffsetX=0,t.shadowOffsetY=0)}},{key:"enableBorderDashes",value:function(t){if(this.options.shapeProperties.borderDashes!==!1)if(void 0!==t.setLineDash){var e=this.options.shapeProperties.borderDashes;e===!0&&(e=[5,15]),t.setLineDash(e)}else console.warn("setLineDash is not supported in this browser. The dashed borders cannot be used."),this.options.shapeProperties.borderDashes=!1}},{key:"disableBorderDashes",value:function(t){this.options.shapeProperties.borderDashes!==!1&&(void 0!==t.setLineDash?t.setLineDash([0]):(console.warn("setLineDash is not supported in this browser. The dashed borders cannot be used."),this.options.shapeProperties.borderDashes=!1))}}]),t}();e["default"]=n,t.exports=e["default"]},function(t,e,i){function o(t){return t&&t.__esModule?t:{"default":t}}function n(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function s(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}Object.defineProperty(e,"__esModule",{value:!0});var r=function(){function t(t,e){for(var i=0;i<e.length;i++){var o=e[i];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(t,o.key,o)}}return function(e,i,o){return i&&t(e.prototype,i),o&&t(e,o),e}}(),a=function(t,e,i){for(var o=!0;o;){var n=t,s=e,r=i;o=!1,null===n&&(n=Function.prototype);var a=Object.getOwnPropertyDescriptor(n,s);if(void 0!==a){if("value"in a)return a.value;var h=a.get;if(void 0===h)return;return h.call(r)}var d=Object.getPrototypeOf(n);if(null===d)return;t=d,e=s,i=r,o=!0,a=d=void 0}},h=i(67),d=o(h),l=function(t){function e(t,i,o){n(this,e),a(Object.getPrototypeOf(e.prototype),"constructor",this).call(this,t,i,o)}return s(e,t),r(e,[{key:"resize",value:function(t,e){if(void 0===this.width){var i=5,o=this.labelModule.getTextSize(t,e),n=Math.max(o.width,o.height)+2*i;this.options.size=n/2,this.width=n,this.height=n,this.radius=.5*this.width}}},{key:"draw",value:function(t,e,i,o,n){this.resize(t,o),this.left=e-this.width/2,this.top=i-this.height/2,this._drawRawCircle(t,e,i,o,n,this.options.size),this.boundingBox.top=i-this.options.size,this.boundingBox.left=e-this.options.size,this.boundingBox.right=e+this.options.size,this.boundingBox.bottom=i+this.options.size,this.updateBoundingBox(e,i),this.labelModule.draw(t,e,i,o)}},{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}},{key:"distanceToBorder",value:function(t,e){this.resize(t);var i=this.width/2,o=this.height/2,n=Math.sin(e)*i,s=Math.cos(e)*o;return i*o/Math.sqrt(n*n+s*s)}}]),e}(d["default"]);e["default"]=l,t.exports=e["default"]},function(t,e,i){function o(t){return t&&t.__esModule?t:{"default":t}}function n(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function s(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}Object.defineProperty(e,"__esModule",{value:!0});var r=function(){function t(t,e){for(var i=0;i<e.length;i++){var o=e[i];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(t,o.key,o)}}return function(e,i,o){return i&&t(e.prototype,i),o&&t(e,o),e}}(),a=function(t,e,i){for(var o=!0;o;){var n=t,s=e,r=i;o=!1,null===n&&(n=Function.prototype);var a=Object.getOwnPropertyDescriptor(n,s);if(void 0!==a){if("value"in a)return a.value;var h=a.get;if(void 0===h)return;return h.call(r)}var d=Object.getPrototypeOf(n);if(null===d)return;t=d,e=s,i=r,o=!0,a=d=void 0}},h=i(65),d=o(h),l=function(t){function e(t,i,o){n(this,e),a(Object.getPrototypeOf(e.prototype),"constructor",this).call(this,t,i,o),this.labelOffset=0,this.imageLoaded=!1}return s(e,t),r(e,[{key:"setOptions",value:function(t,e){this.options=t,e&&(this.imageObj=e)}},{key:"_resizeImage",value:function(){var t=!1;if(this.imageObj.width&&this.imageObj.height?this.imageLoaded===!1&&(this.imageLoaded=!0,t=!0):this.imageLoaded=!1,!this.width||!this.height||t===!0){var e,i,o;this.imageObj.width&&this.imageObj.height&&(e=0,i=0),this.options.shapeProperties.useImageSize===!1?this.imageObj.width>this.imageObj.height?(o=this.imageObj.width/this.imageObj.height,e=2*this.options.size*o||this.imageObj.width,i=2*this.options.size||this.imageObj.height):(o=this.imageObj.width&&this.imageObj.height?this.imageObj.height/this.imageObj.width:1,e=2*this.options.size,i=2*this.options.size*o):(e=this.imageObj.width,i=this.imageObj.height),this.width=e,this.height=i,this.radius=.5*this.width}}},{key:"_drawRawCircle",value:function(t,e,i,o,n,s){var r=this.options.borderWidth,a=this.options.borderWidthSelected||2*this.options.borderWidth;t.strokeStyle=o?this.options.color.highlight.border:n?this.options.color.hover.border:this.options.color.border,t.lineWidth=o?a:r,t.lineWidth*=this.networkScaleInv,t.lineWidth=Math.min(this.width,t.lineWidth),t.fillStyle=o?this.options.color.highlight.background:n?this.options.color.hover.background:this.options.color.background,t.circle(e,i,s),this.enableShadow(t),t.fill(),this.disableShadow(t),t.save(),this.enableBorderDashes(t),t.stroke(),this.disableBorderDashes(t),t.restore()}},{key:"_drawImageAtPosition",value:function(t){0!=this.imageObj.width&&(t.globalAlpha=1,this.enableShadow(t),t.drawImage(this.imageObj,this.left,this.top,this.width,this.height),this.disableShadow(t))}},{key:"_drawImageLabel",value:function(t,e,i,o){var n,s=0;if(void 0!==this.height){s=.5*this.height;var r=this.labelModule.getTextSize(t);r.lineCount>=1&&(s+=r.height/2)}n=i+s,this.options.label&&(this.labelOffset=s),this.labelModule.draw(t,e,n,o,"hanging")}}]),e}(d["default"]);e["default"]=l,t.exports=e["default"]},function(t,e,i){function o(t){return t&&t.__esModule?t:{"default":t}}function n(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function s(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}Object.defineProperty(e,"__esModule",{value:!0});var r=function(){function t(t,e){for(var i=0;i<e.length;i++){var o=e[i];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(t,o.key,o)}}return function(e,i,o){return i&&t(e.prototype,i),o&&t(e,o),e}}(),a=function(t,e,i){for(var o=!0;o;){var n=t,s=e,r=i;o=!1,null===n&&(n=Function.prototype);var a=Object.getOwnPropertyDescriptor(n,s);if(void 0!==a){if("value"in a)return a.value;var h=a.get;if(void 0===h)return;return h.call(r)}var d=Object.getPrototypeOf(n);if(null===d)return;t=d,e=s,i=r,o=!0,a=d=void 0}},h=i(67),d=o(h),l=function(t){function e(t,i,o,s){n(this,e),a(Object.getPrototypeOf(e.prototype),"constructor",this).call(this,t,i,o),this.imageObj=s,this._swapToImageResizeWhenImageLoaded=!0}return s(e,t),r(e,[{key:"resize",value:function(){if(void 0===this.imageObj.src||void 0===this.imageObj.width||void 0===this.imageObj.height){if(!this.width){var t=2*this.options.size;this.width=t,this.height=t,this._swapToImageResizeWhenImageLoaded=!0,this.radius=.5*this.width}}else this._swapToImageResizeWhenImageLoaded&&(this.width=void 0,this.height=void 0,this._swapToImageResizeWhenImageLoaded=!1),this._resizeImage()}},{key:"draw",value:function(t,e,i,o,n){this.resize(),this.left=e-this.width/2,this.top=i-this.height/2;var s=Math.min(.5*this.height,.5*this.width);this._drawRawCircle(t,e,i,o,n,s),t.save(),t.clip(),this._drawImageAtPosition(t),t.restore(),this._drawImageLabel(t,e,i,o),this.updateBoundingBox(e,i)}},{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,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.resize(t),this._distanceToBorder(t,e)}}]),e}(d["default"]);e["default"]=l,t.exports=e["default"]},function(t,e,i){function o(t){return t&&t.__esModule?t:{"default":t}}function n(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function s(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}Object.defineProperty(e,"__esModule",{value:!0});var r=function(){function t(t,e){for(var i=0;i<e.length;i++){var o=e[i];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(t,o.key,o)}}return function(e,i,o){return i&&t(e.prototype,i),o&&t(e,o),e}}(),a=function(t,e,i){for(var o=!0;o;){var n=t,s=e,r=i;o=!1,null===n&&(n=Function.prototype);var a=Object.getOwnPropertyDescriptor(n,s);if(void 0!==a){if("value"in a)return a.value;var h=a.get;if(void 0===h)return;return h.call(r)}var d=Object.getPrototypeOf(n);if(null===d)return;t=d,e=s,i=r,o=!0,a=d=void 0}},h=i(65),d=o(h),l=function(t){function e(t,i,o){n(this,e),a(Object.getPrototypeOf(e.prototype),"constructor",this).call(this,t,i,o)}return s(e,t),r(e,[{key:"resize",value:function(t,e){if(void 0===this.width){var i=5,o=this.labelModule.getTextSize(t,e),n=o.width+2*i;this.width=n,this.height=n,this.radius=.5*this.width}}},{key:"draw",value:function(t,e,i,o,n){this.resize(t,o),this.left=e-this.width/2,this.top=i-this.height/2;var s=this.options.borderWidth,r=this.options.borderWidthSelected||2*this.options.borderWidth;t.strokeStyle=o?this.options.color.highlight.border:n?this.options.color.hover.border:this.options.color.border,t.lineWidth=this.selected?r:s,t.lineWidth*=this.networkScaleInv,t.lineWidth=Math.min(this.width,t.lineWidth),t.fillStyle=o?this.options.color.highlight.background:n?this.options.color.hover.background:this.options.color.background,t.database(e-this.width/2,i-.5*this.height,this.width,this.height),this.enableShadow(t),t.fill(),this.disableShadow(t),t.save(),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=this.width/2,o=this.height/2,n=Math.sin(e)*i,s=Math.cos(e)*o;return i*o/Math.sqrt(n*n+s*s)}}]),e}(d["default"]);e["default"]=l,t.exports=e["default"]},function(t,e,i){function o(t){return t&&t.__esModule?t:{"default":t}}function n(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function s(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}Object.defineProperty(e,"__esModule",{value:!0});var r=function(){function t(t,e){for(var i=0;i<e.length;i++){var o=e[i];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(t,o.key,o)}}return function(e,i,o){return i&&t(e.prototype,i),o&&t(e,o),e}}(),a=function(t,e,i){for(var o=!0;o;){var n=t,s=e,r=i;o=!1,null===n&&(n=Function.prototype);var a=Object.getOwnPropertyDescriptor(n,s);if(void 0!==a){if("value"in a)return a.value;var h=a.get;if(void 0===h)return;return h.call(r)}var d=Object.getPrototypeOf(n);if(null===d)return;t=d,e=s,i=r,o=!0,a=d=void 0}},h=i(71),d=o(h),l=function(t){function e(t,i,o){n(this,e),a(Object.getPrototypeOf(e.prototype),"constructor",this).call(this,t,i,o)}return s(e,t),r(e,[{key:"resize",value:function(t){this._resizeShape()}},{key:"draw",value:function(t,e,i,o,n){this._drawShape(t,"diamond",4,e,i,o,n)}},{key:"distanceToBorder",value:function(t,e){return this._distanceToBorder(t,e)}}]),e}(d["default"]);e["default"]=l,t.exports=e["default"]},function(t,e,i){function o(t){return t&&t.__esModule?t:{"default":t}}function n(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function s(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}Object.defineProperty(e,"__esModule",{value:!0});var r=function(){function t(t,e){for(var i=0;i<e.length;i++){var o=e[i];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(t,o.key,o)}}return function(e,i,o){return i&&t(e.prototype,i),o&&t(e,o),e}}(),a=function(t,e,i){for(var o=!0;o;){var n=t,s=e,r=i;o=!1,null===n&&(n=Function.prototype);var a=Object.getOwnPropertyDescriptor(n,s);if(void 0!==a){if("value"in a)return a.value;var h=a.get;if(void 0===h)return;return h.call(r)}var d=Object.getPrototypeOf(n);if(null===d)return;t=d,e=s,i=r,o=!0,a=d=void 0}},h=i(65),d=o(h),l=function(t){function e(t,i,o){n(this,e),a(Object.getPrototypeOf(e.prototype),"constructor",this).call(this,t,i,o)}return s(e,t),r(e,[{key:"_resizeShape",value:function(){if(void 0===this.width){var t=2*this.options.size;this.width=t,this.height=t,this.radius=.5*this.width}}},{key:"_drawShape",value:function(t,e,i,o,n,s,r){this._resizeShape(),this.left=o-this.width/2,this.top=n-this.height/2;var a=this.options.borderWidth,h=this.options.borderWidthSelected||2*this.options.borderWidth;if(t.strokeStyle=s?this.options.color.highlight.border:r?this.options.color.hover.border:this.options.color.border,t.lineWidth=s?h:a,t.lineWidth/=this.body.view.scale,t.lineWidth=Math.min(this.width,t.lineWidth),t.fillStyle=s?this.options.color.highlight.background:r?this.options.color.hover.background:this.options.color.background,
-t[e](o,n,this.options.size),this.enableShadow(t),t.fill(),this.disableShadow(t),t.save(),this.enableBorderDashes(t),t.stroke(),this.disableBorderDashes(t),t.restore(),void 0!==this.options.label){var d=n+.5*this.height+3;this.labelModule.draw(t,o,d,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,t.exports=e["default"]},function(t,e,i){function o(t){return t&&t.__esModule?t:{"default":t}}function n(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function s(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}Object.defineProperty(e,"__esModule",{value:!0});var r=function(){function t(t,e){for(var i=0;i<e.length;i++){var o=e[i];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(t,o.key,o)}}return function(e,i,o){return i&&t(e.prototype,i),o&&t(e,o),e}}(),a=function(t,e,i){for(var o=!0;o;){var n=t,s=e,r=i;o=!1,null===n&&(n=Function.prototype);var a=Object.getOwnPropertyDescriptor(n,s);if(void 0!==a){if("value"in a)return a.value;var h=a.get;if(void 0===h)return;return h.call(r)}var d=Object.getPrototypeOf(n);if(null===d)return;t=d,e=s,i=r,o=!0,a=d=void 0}},h=i(71),d=o(h),l=function(t){function e(t,i,o){n(this,e),a(Object.getPrototypeOf(e.prototype),"constructor",this).call(this,t,i,o)}return s(e,t),r(e,[{key:"resize",value:function(t){this._resizeShape()}},{key:"draw",value:function(t,e,i,o,n){this._drawShape(t,"circle",2,e,i,o,n)}},{key:"distanceToBorder",value:function(t,e){return this.resize(t),this.options.size+this.options.borderWidth}}]),e}(d["default"]);e["default"]=l,t.exports=e["default"]},function(t,e,i){function o(t){return t&&t.__esModule?t:{"default":t}}function n(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function s(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}Object.defineProperty(e,"__esModule",{value:!0});var r=function(){function t(t,e){for(var i=0;i<e.length;i++){var o=e[i];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(t,o.key,o)}}return function(e,i,o){return i&&t(e.prototype,i),o&&t(e,o),e}}(),a=function(t,e,i){for(var o=!0;o;){var n=t,s=e,r=i;o=!1,null===n&&(n=Function.prototype);var a=Object.getOwnPropertyDescriptor(n,s);if(void 0!==a){if("value"in a)return a.value;var h=a.get;if(void 0===h)return;return h.call(r)}var d=Object.getPrototypeOf(n);if(null===d)return;t=d,e=s,i=r,o=!0,a=d=void 0}},h=i(65),d=o(h),l=function(t){function e(t,i,o){n(this,e),a(Object.getPrototypeOf(e.prototype),"constructor",this).call(this,t,i,o)}return s(e,t),r(e,[{key:"resize",value:function(t,e){if(void 0===this.width){var i=this.labelModule.getTextSize(t,e);this.width=1.5*i.width,this.height=2*i.height,this.width<this.height&&(this.width=this.height),this.radius=.5*this.width}}},{key:"draw",value:function(t,e,i,o,n){this.resize(t,o),this.left=e-.5*this.width,this.top=i-.5*this.height;var s=this.options.borderWidth,r=this.options.borderWidthSelected||2*this.options.borderWidth;t.strokeStyle=o?this.options.color.highlight.border:n?this.options.color.hover.border:this.options.color.border,t.lineWidth=o?r:s,t.lineWidth/=this.body.view.scale,t.lineWidth=Math.min(this.width,t.lineWidth),t.fillStyle=o?this.options.color.highlight.background:n?this.options.color.hover.background:this.options.color.background,t.ellipse(this.left,this.top,this.width,this.height),this.enableShadow(t),t.fill(),this.disableShadow(t),t.save(),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,t.exports=e["default"]},function(t,e,i){function o(t){return t&&t.__esModule?t:{"default":t}}function n(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function s(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}Object.defineProperty(e,"__esModule",{value:!0});var r=function(){function t(t,e){for(var i=0;i<e.length;i++){var o=e[i];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(t,o.key,o)}}return function(e,i,o){return i&&t(e.prototype,i),o&&t(e,o),e}}(),a=function(t,e,i){for(var o=!0;o;){var n=t,s=e,r=i;o=!1,null===n&&(n=Function.prototype);var a=Object.getOwnPropertyDescriptor(n,s);if(void 0!==a){if("value"in a)return a.value;var h=a.get;if(void 0===h)return;return h.call(r)}var d=Object.getPrototypeOf(n);if(null===d)return;t=d,e=s,i=r,o=!0,a=d=void 0}},h=i(65),d=o(h),l=function(t){function e(t,i,o){n(this,e),a(Object.getPrototypeOf(e.prototype),"constructor",this).call(this,t,i,o)}return s(e,t),r(e,[{key:"resize",value:function(t){if(void 0===this.width){var e=5,i={width:Number(this.options.icon.size),height:Number(this.options.icon.size)};this.width=i.width+2*e,this.height=i.height+2*e,this.radius=.5*this.width}}},{key:"draw",value:function(t,e,i,o,n){if(this.resize(t),this.options.icon.size=this.options.icon.size||50,this.left=e-.5*this.width,this.top=i-.5*this.height,this._icon(t,e,i,o),void 0!==this.options.label){var s=5;this.labelModule.draw(t,e,i+.5*this.height+s,o)}this.updateBoundingBox(e,i)}},{key:"updateBoundingBox",value:function(t,e){if(this.boundingBox.top=e-.5*this.options.icon.size,this.boundingBox.left=t-.5*this.options.icon.size,this.boundingBox.right=t+.5*this.options.icon.size,this.boundingBox.bottom=e+.5*this.options.icon.size,void 0!==this.options.label&&this.labelModule.size.width>0){var i=5;this.boundingBox.left=Math.min(this.boundingBox.left,this.labelModule.size.left),this.boundingBox.right=Math.max(this.boundingBox.right,this.labelModule.size.left+this.labelModule.size.width),this.boundingBox.bottom=Math.max(this.boundingBox.bottom,this.boundingBox.bottom+this.labelModule.size.height+i)}}},{key:"_icon",value:function(t,e,i,o){var n=Number(this.options.icon.size);void 0!==this.options.icon.code?(t.font=(o?"bold ":"")+n+"px "+this.options.icon.face,t.fillStyle=this.options.icon.color||"black",t.textAlign="center",t.textBaseline="middle",this.enableShadow(t),t.fillText(this.options.icon.code,e,i),this.disableShadow(t)):console.error("When using the icon shape, you need to define the code in the icon options object. This can be done per node or globally.")}},{key:"distanceToBorder",value:function(t,e){return this._distanceToBorder(t,e)}}]),e}(d["default"]);e["default"]=l,t.exports=e["default"]},function(t,e,i){function o(t){return t&&t.__esModule?t:{"default":t}}function n(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function s(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}Object.defineProperty(e,"__esModule",{value:!0});var r=function(){function t(t,e){for(var i=0;i<e.length;i++){var o=e[i];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(t,o.key,o)}}return function(e,i,o){return i&&t(e.prototype,i),o&&t(e,o),e}}(),a=function(t,e,i){for(var o=!0;o;){var n=t,s=e,r=i;o=!1,null===n&&(n=Function.prototype);var a=Object.getOwnPropertyDescriptor(n,s);if(void 0!==a){if("value"in a)return a.value;var h=a.get;if(void 0===h)return;return h.call(r)}var d=Object.getPrototypeOf(n);if(null===d)return;t=d,e=s,i=r,o=!0,a=d=void 0}},h=i(67),d=o(h),l=function(t){function e(t,i,o,s){n(this,e),a(Object.getPrototypeOf(e.prototype),"constructor",this).call(this,t,i,o),this.imageObj=s}return s(e,t),r(e,[{key:"resize",value:function(){this._resizeImage()}},{key:"draw",value:function(t,e,i,o,n){if(this.resize(),this.left=e-this.width/2,this.top=i-this.height/2,this.options.shapeProperties.useBorderWithImage===!0){var s=this.options.borderWidth,r=this.options.borderWidthSelected||2*this.options.borderWidth;t.beginPath(),t.strokeStyle=o?this.options.color.highlight.border:n?this.options.color.hover.border:this.options.color.border,t.lineWidth=o?r:s,t.lineWidth/=this.body.view.scale,t.lineWidth=Math.min(this.width,t.lineWidth),t.fillStyle=o?this.options.color.highlight.background:n?this.options.color.hover.background:this.options.color.background,t.rect(this.left-.5*t.lineWidth,this.top-.5*t.lineWidth,this.width+t.lineWidth,this.height+t.lineWidth),t.fill(),t.save(),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){this.resize(t);var i=this.width/2,o=this.height/2,n=Math.sin(e)*i,s=Math.cos(e)*o;return i*o/Math.sqrt(n*n+s*s)}}]),e}(d["default"]);e["default"]=l,t.exports=e["default"]},function(t,e,i){function o(t){return t&&t.__esModule?t:{"default":t}}function n(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function s(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}Object.defineProperty(e,"__esModule",{value:!0});var r=function(){function t(t,e){for(var i=0;i<e.length;i++){var o=e[i];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(t,o.key,o)}}return function(e,i,o){return i&&t(e.prototype,i),o&&t(e,o),e}}(),a=function(t,e,i){for(var o=!0;o;){var n=t,s=e,r=i;o=!1,null===n&&(n=Function.prototype);var a=Object.getOwnPropertyDescriptor(n,s);if(void 0!==a){if("value"in a)return a.value;var h=a.get;if(void 0===h)return;return h.call(r)}var d=Object.getPrototypeOf(n);if(null===d)return;t=d,e=s,i=r,o=!0,a=d=void 0}},h=i(71),d=o(h),l=function(t){function e(t,i,o){n(this,e),a(Object.getPrototypeOf(e.prototype),"constructor",this).call(this,t,i,o)}return s(e,t),r(e,[{key:"resize",value:function(){this._resizeShape()}},{key:"draw",value:function(t,e,i,o,n){this._drawShape(t,"square",2,e,i,o,n)}},{key:"distanceToBorder",value:function(t,e){return this._distanceToBorder(t,e)}}]),e}(d["default"]);e["default"]=l,t.exports=e["default"]},function(t,e,i){function o(t){return t&&t.__esModule?t:{"default":t}}function n(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function s(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}Object.defineProperty(e,"__esModule",{value:!0});var r=function(){function t(t,e){for(var i=0;i<e.length;i++){var o=e[i];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(t,o.key,o)}}return function(e,i,o){return i&&t(e.prototype,i),o&&t(e,o),e}}(),a=function(t,e,i){for(var o=!0;o;){var n=t,s=e,r=i;o=!1,null===n&&(n=Function.prototype);var a=Object.getOwnPropertyDescriptor(n,s);if(void 0!==a){if("value"in a)return a.value;var h=a.get;if(void 0===h)return;return h.call(r)}var d=Object.getPrototypeOf(n);if(null===d)return;t=d,e=s,i=r,o=!0,a=d=void 0}},h=i(71),d=o(h),l=function(t){function e(t,i,o){n(this,e),a(Object.getPrototypeOf(e.prototype),"constructor",this).call(this,t,i,o)}return s(e,t),r(e,[{key:"resize",value:function(t){this._resizeShape()}},{key:"draw",value:function(t,e,i,o,n){this._drawShape(t,"star",4,e,i,o,n)}},{key:"distanceToBorder",value:function(t,e){return this._distanceToBorder(t,e)}}]),e}(d["default"]);e["default"]=l,t.exports=e["default"]},function(t,e,i){function o(t){return t&&t.__esModule?t:{"default":t}}function n(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function s(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}Object.defineProperty(e,"__esModule",{value:!0});var r=function(){function t(t,e){for(var i=0;i<e.length;i++){var o=e[i];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(t,o.key,o)}}return function(e,i,o){return i&&t(e.prototype,i),o&&t(e,o),e}}(),a=function(t,e,i){for(var o=!0;o;){var n=t,s=e,r=i;o=!1,null===n&&(n=Function.prototype);var a=Object.getOwnPropertyDescriptor(n,s);if(void 0!==a){if("value"in a)return a.value;var h=a.get;if(void 0===h)return;return h.call(r)}var d=Object.getPrototypeOf(n);if(null===d)return;t=d,e=s,i=r,o=!0,a=d=void 0}},h=i(65),d=o(h),l=function(t){function e(t,i,o){n(this,e),a(Object.getPrototypeOf(e.prototype),"constructor",this).call(this,t,i,o)}return s(e,t),r(e,[{key:"resize",value:function(t,e){if(void 0===this.width){var i=5,o=this.labelModule.getTextSize(t,e);this.width=o.width+2*i,this.height=o.height+2*i,this.radius=.5*this.width}}},{key:"draw",value:function(t,e,i,o,n){this.resize(t,o||n),this.left=e-this.width/2,this.top=i-this.height/2,this.enableShadow(t),this.labelModule.draw(t,e,i,o||n),this.disableShadow(t),this.updateBoundingBox(e,i,t,o)}},{key:"updateBoundingBox",value:function(t,e,i,o){this.resize(i,o),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}},{key:"distanceToBorder",value:function(t,e){return this._distanceToBorder(t,e)}}]),e}(d["default"]);e["default"]=l,t.exports=e["default"]},function(t,e,i){function o(t){return t&&t.__esModule?t:{"default":t}}function n(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function s(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}Object.defineProperty(e,"__esModule",{value:!0});var r=function(){function t(t,e){for(var i=0;i<e.length;i++){var o=e[i];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(t,o.key,o)}}return function(e,i,o){return i&&t(e.prototype,i),o&&t(e,o),e}}(),a=function(t,e,i){for(var o=!0;o;){var n=t,s=e,r=i;o=!1,null===n&&(n=Function.prototype);var a=Object.getOwnPropertyDescriptor(n,s);if(void 0!==a){if("value"in a)return a.value;var h=a.get;if(void 0===h)return;return h.call(r)}var d=Object.getPrototypeOf(n);if(null===d)return;t=d,e=s,i=r,o=!0,a=d=void 0}},h=i(71),d=o(h),l=function(t){function e(t,i,o){n(this,e),a(Object.getPrototypeOf(e.prototype),"constructor",this).call(this,t,i,o)}return s(e,t),r(e,[{key:"resize",value:function(t){this._resizeShape()}},{key:"draw",value:function(t,e,i,o,n){this._drawShape(t,"triangle",3,e,i,o,n)}},{key:"distanceToBorder",value:function(t,e){return this._distanceToBorder(t,e)}}]),e}(d["default"]);e["default"]=l,t.exports=e["default"]},function(t,e,i){function o(t){return t&&t.__esModule?t:{"default":t}}function n(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function s(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}Object.defineProperty(e,"__esModule",{value:!0});var r=function(){function t(t,e){for(var i=0;i<e.length;i++){var o=e[i];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(t,o.key,o)}}return function(e,i,o){return i&&t(e.prototype,i),o&&t(e,o),e}}(),a=function(t,e,i){for(var o=!0;o;){var n=t,s=e,r=i;o=!1,null===n&&(n=Function.prototype);var a=Object.getOwnPropertyDescriptor(n,s);if(void 0!==a){if("value"in a)return a.value;var h=a.get;if(void 0===h)return;return h.call(r)}var d=Object.getPrototypeOf(n);if(null===d)return;t=d,e=s,i=r,o=!0,a=d=void 0}},h=i(71),d=o(h),l=function(t){function e(t,i,o){n(this,e),a(Object.getPrototypeOf(e.prototype),"constructor",this).call(this,t,i,o)}return s(e,t),r(e,[{key:"resize",value:function(t){this._resizeShape()}},{key:"draw",value:function(t,e,i,o,n){this._drawShape(t,"triangleDown",3,e,i,o,n)}},{key:"distanceToBorder",value:function(t,e){return this._distanceToBorder(t,e)}}]),e}(d["default"]);e["default"]=l,t.exports=e["default"]},function(t,e,i){function o(t){return t&&t.__esModule?t:{"default":t}}function n(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(e,"__esModule",{value:!0});var s=function(){function t(t,e){for(var i=0;i<e.length;i++){var o=e[i];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(t,o.key,o)}}return function(e,i,o){return i&&t(e.prototype,i),o&&t(e,o),e}}(),r=i(82),a=o(r),h=i(63),d=o(h),l=i(1),u=i(8),c=i(10),p=function(){function t(e,i,o){var s=this;n(this,t),this.body=e,this.images=i,this.groups=o,this.body.functions.createEdge=this.create.bind(this),this.edgesListeners={add:function(t,e){s.add(e.items)},update:function(t,e){s.update(e.items)},remove:function(t,e){s.remove(e.items)}},this.options={},this.defaultOptions={arrows:{to:{enabled:!1,scaleFactor:1},middle:{enabled:!1,scaleFactor:1},from:{enabled:!1,scaleFactor:1}},color:{color:"#848484",highlight:"#848484",hover:"#848484",inherit:"from",opacity:1},dashes:!1,font:{color:"#343434",size:14,face:"arial",background:"none",strokeWidth:2,strokeColor:"#ffffff",align:"horizontal"},hidden:!1,hoverWidth:1.5,label:void 0,labelHighlightBold:!0,length:void 0,physics:!0,scaling:{min:1,max:15,label:{enabled:!0,min:14,max:30,maxVisible:30,drawThreshold:5},customScalingFunction:function(t,e,i,o){if(e===t)return.5;var n=1/(e-t);return Math.max(0,(o-t)*n)}},selectionWidth:1.5,selfReferenceSize:20,shadow:{enabled:!1,size:10,x:5,y:5},smooth:{enabled:!0,type:"dynamic",forceDirection:"none",roundness:.5},title:void 0,width:1,value:void 0},l.extend(this.options,this.defaultOptions),this.bindEventListeners()}return s(t,[{key:"bindEventListeners",value:function(){var t=this;this.body.emitter.on("_forceDisableDynamicCurves",function(e){"dynamic"===e&&(e="continuous");var i=!1;for(var o in t.body.edges)if(t.body.edges.hasOwnProperty(o)){var n=t.body.edges[o],s=t.body.data.edges._data[o];if(void 0!==s){var r=s.smooth;void 0!==r&&r.enabled===!0&&"dynamic"===r.type&&(void 0===e?n.setOptions({smooth:!1}):n.setOptions({smooth:{type:e}}),i=!0)}}i===!0&&t.body.emitter.emit("_dataChanged")}),this.body.emitter.on("_dataUpdated",function(){t.reconnectEdges(),t.markAllEdgesAsDirty()}),this.body.emitter.on("refreshEdges",this.refresh.bind(this)),this.body.emitter.on("refresh",this.refresh.bind(this)),this.body.emitter.on("destroy",function(){delete t.body.functions.createEdge,delete t.edgesListeners.add,delete t.edgesListeners.update,delete t.edgesListeners.remove,delete t.edgesListeners})}},{key:"setOptions",value:function(t){if(void 0!==t){a["default"].parseOptions(this.options,t),void 0!==t.color&&this.markAllEdgesAsDirty();var e=!1;if(void 0!==t.smooth)for(var i in this.body.edges)this.body.edges.hasOwnProperty(i)&&(e=this.body.edges[i].updateEdgeType()||e);if(void 0!==t.font){d["default"].parseOptions(this.options.font,t);for(var i in this.body.edges)this.body.edges.hasOwnProperty(i)&&this.body.edges[i].updateLabelModule()}(void 0!==t.hidden||void 0!==t.physics||e===!0)&&this.body.emitter.emit("_dataChanged")}}},{key:"setData",value:function(t){var e=this,i=arguments.length<=1||void 0===arguments[1]?!1:arguments[1],o=this.body.data.edges;if(t instanceof u||t instanceof c)this.body.data.edges=t;else if(Array.isArray(t))this.body.data.edges=new u,this.body.data.edges.add(t);else{if(t)throw new TypeError("Array or DataSet expected");this.body.data.edges=new u}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]?!1:arguments[1],i=this.body.edges,o=this.body.data.edges,n=0;n<t.length;n++){var s=t[n],r=i[s];r&&r.disconnect();var a=o.get(s,{showInternalIds:!0});i[s]=this.create(a)}e===!1&&this.body.emitter.emit("_dataChanged")}},{key:"update",value:function(t){for(var e=this.body.edges,i=this.body.data.edges,o=!1,n=0;n<t.length;n++){var s=t[n],r=i.get(s),a=e[s];void 0!==a?(a.disconnect(),o=a.setOptions(r)||o,a.connect()):(this.body.edges[s]=this.create(r),o=!0)}o===!0?this.body.emitter.emit("_dataChanged"):this.body.emitter.emit("_dataUpdated")}},{key:"remove",value:function(t){for(var e=this.body.edges,i=0;i<t.length;i++){var o=t[i],n=e[o];void 0!==n&&(n.cleanup(),n.disconnect(),delete e[o])}this.body.emitter.emit("_dataChanged")}},{key:"refresh",value:function(){var t=this.body.edges;for(var e in t){var i=void 0;t.hasOwnProperty(e)&&(i=t[e]);var o=this.body.data.edges._data[e];void 0!==i&&void 0!==o&&i.setOptions(o)}}},{key:"create",value:function(t){return new a["default"](t,this.body,this.options)}},{key:"markAllEdgesAsDirty",value:function(){for(var t in this.body.edges)this.body.edges[t].edgeType.colorDirty=!0}},{key:"reconnectEdges",value:function(){var t,e=this.body.nodes,i=this.body.edges;for(t in e)e.hasOwnProperty(t)&&(e[t].edges=[]);for(t in i)if(i.hasOwnProperty(t)){var o=i[t];o.from=null,o.to=null,o.connect()}}},{key:"getConnectedNodes",value:function(t){var e=[];if(void 0!==this.body.edges[t]){var i=this.body.edges[t];i.fromId&&e.push(i.fromId),i.toId&&e.push(i.toId)}return e}}]),t}();e["default"]=p,t.exports=e["default"]},function(t,e,i){function o(t){return t&&t.__esModule?t:{"default":t}}function n(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(e,"__esModule",{value:!0});var s=function(){function t(t,e){for(var i=0;i<e.length;i++){var o=e[i];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(t,o.key,o)}}return function(e,i,o){return i&&t(e.prototype,i),o&&t(e,o),e}}(),r=i(63),a=o(r),h=i(83),d=o(h),l=i(87),u=o(l),c=i(88),p=o(c),f=i(89),m=o(f),v=i(1),g=function(){function t(e,i,o){if(n(this,t),void 0===i)throw"No body provided";this.options=v.bridgeObject(o),this.globalOptions=o,this.body=i,this.id=void 0,this.fromId=void 0,this.toId=void 0,this.selected=!1,this.hover=!1,this.labelDirty=!0,this.colorDirty=!0,this.baseWidth=this.options.width,this.baseFontSize=this.options.font.size,this.from=void 0,this.to=void 0,this.edgeType=void 0,this.connected=!1,this.labelModule=new a["default"](this.body,this.options),this.setOptions(e)}return s(t,[{key:"setOptions",value:function(e){if(e){this.colorDirty=!0,t.parseOptions(this.options,e,!0,this.globalOptions),void 0!==e.id&&(this.id=e.id),void 0!==e.from&&(this.fromId=e.from),void 0!==e.to&&(this.toId=e.to),void 0!==e.title&&(this.title=e.title),void 0!==e.value&&(e.value=parseFloat(e.value)),this.updateLabelModule();var i=this.updateEdgeType();return this._setInteractionWidths(),this.connect(),(void 0!==e.hidden||void 0!==e.physics)&&(i=!0),i}}},{key:"updateLabelModule",value:function(){this.labelModule.setOptions(this.options,!0),void 0!==this.labelModule.baseSize&&(this.baseFontSize=this.labelModule.baseSize)}},{key:"updateEdgeType",value:function(){var t=!1,e=!0,i=this.options.smooth;return void 0!==this.edgeType&&(this.edgeType instanceof u["default"]&&i.enabled===!0&&"dynamic"===i.type&&(e=!1),this.edgeType instanceof d["default"]&&i.enabled===!0&&"cubicBezier"===i.type&&(e=!1),this.edgeType instanceof p["default"]&&i.enabled===!0&&"dynamic"!==i.type&&"cubicBezier"!==i.type&&(e=!1),this.edgeType instanceof m["default"]&&i.enabled===!1&&(e=!1),e===!0&&(t=this.cleanup())),e===!0?this.options.smooth.enabled===!0?"dynamic"===this.options.smooth.type?(t=!0,this.edgeType=new u["default"](this.options,this.body,this.labelModule)):"cubicBezier"===this.options.smooth.type?this.edgeType=new d["default"](this.options,this.body,this.labelModule):this.edgeType=new p["default"](this.options,this.body,this.labelModule):this.edgeType=new m["default"](this.options,this.body,this.labelModule):this.edgeType.setOptions(this.options),t}},{key:"connect",value:function(){this.disconnect(),this.from=this.body.nodes[this.fromId]||void 0,this.to=this.body.nodes[this.toId]||void 0,this.connected=void 0!==this.from&&void 0!==this.to,this.connected===!0?(this.from.attachEdge(this),this.to.attachEdge(this)):(this.from&&this.from.detachEdge(this),this.to&&this.to.detachEdge(this)),this.edgeType.connect()}},{key:"disconnect",value:function(){this.from&&(this.from.detachEdge(this),this.from=void 0),this.to&&(this.to.detachEdge(this),this.to=void 0),this.connected=!1}},{key:"getTitle",value:function(){return this.title}},{key:"isSelected",value:function(){return this.selected}},{key:"getValue",value:function(){return this.options.value}},{key:"setValueRange",value:function(t,e,i){if(void 0!==this.options.value){var o=this.options.scaling.customScalingFunction(t,e,i,this.options.value),n=this.options.scaling.max-this.options.scaling.min;if(this.options.scaling.label.enabled===!0){var s=this.options.scaling.label.max-this.options.scaling.label.min;this.options.font.size=this.options.scaling.label.min+o*s}this.options.width=this.options.scaling.min+o*n}else this.options.width=this.baseWidth,this.options.font.size=this.baseFontSize;this._setInteractionWidths(),this.updateLabelModule()}},{key:"_setInteractionWidths",value:function(){"function"==typeof this.options.hoverWidth?this.edgeType.hoverWidth=this.options.hoverWidth(this.options.width):this.edgeType.hoverWidth=this.options.hoverWidth+this.options.width,"function"==typeof this.options.selectionWidth?this.edgeType.selectionWidth=this.options.selectionWidth(this.options.width):this.edgeType.selectionWidth=this.options.selectionWidth+this.options.width}},{key:"draw",value:function(t){var e=this.edgeType.drawLine(t,this.selected,this.hover);this.drawArrows(t,e),this.drawLabel(t,e)}},{key:"drawArrows",value:function(t,e){this.options.arrows.from.enabled===!0&&this.edgeType.drawArrowHead(t,"from",e,this.selected,this.hover),this.options.arrows.middle.enabled===!0&&this.edgeType.drawArrowHead(t,"middle",e,this.selected,this.hover),this.options.arrows.to.enabled===!0&&this.edgeType.drawArrowHead(t,"to",e,this.selected,this.hover)}},{key:"drawLabel",value:function(t,e){if(void 0!==this.options.label){var i=this.from,o=this.to,n=this.from.selected||this.to.selected||this.selected;if(i.id!=o.id){this.labelModule.pointToSelf=!1;var s=this.edgeType.getPoint(.5,e);t.save(),"horizontal"!==this.options.font.align&&(this.labelModule.calculateLabelSize(t,n,s.x,s.y),t.translate(s.x,this.labelModule.size.yLine),this._rotateForLabelAlignment(t)),this.labelModule.draw(t,s.x,s.y,n),t.restore()}else{this.labelModule.pointToSelf=!0;var r,a,h=this.options.selfReferenceSize;i.shape.width>i.shape.height?(r=i.x+.5*i.shape.width,a=i.y-h):(r=i.x+h,a=i.y-.5*i.shape.height),s=this._pointOnCircle(r,a,h,.125),this.labelModule.draw(t,s.x,s.y,n)}}}},{key:"isOverlappingWith",value:function(t){if(this.connected){var e=10,i=this.from.x,o=this.from.y,n=this.to.x,s=this.to.y,r=t.left,a=t.top,h=this.edgeType.getDistanceToEdge(i,o,n,s,r,a);return e>h}return!1}},{key:"_rotateForLabelAlignment",value:function(t){var e=this.from.y-this.to.y,i=this.from.x-this.to.x,o=Math.atan2(e,i);(-1>o&&0>i||o>0&&0>i)&&(o+=Math.PI),t.rotate(o)}},{key:"_pointOnCircle",value:function(t,e,i,o){var n=2*o*Math.PI;return{x:t+i*Math.cos(n),y:e-i*Math.sin(n)}}},{key:"select",value:function(){this.selected=!0}},{key:"unselect",value:function(){this.selected=!1}},{key:"cleanup",value:function(){return this.edgeType.cleanup()}}],[{key:"parseOptions",value:function(t,e){var i=arguments.length<=2||void 0===arguments[2]?!1:arguments[2],o=arguments.length<=3||void 0===arguments[3]?{}:arguments[3],n=["id","from","hidden","hoverWidth","label","labelHighlightBold","length","line","opacity","physics","scaling","selectionWidth","selfReferenceSize","to","title","value","width"];if(v.selectiveDeepExtend(n,t,e,i),v.mergeOptions(t,e,"smooth",i,o),v.mergeOptions(t,e,"shadow",i,o),void 0!==e.dashes&&null!==e.dashes?t.dashes=e.dashes:i===!0&&null===e.dashes&&(t.dashes=Object.create(o.dashes)),void 0!==e.scaling&&null!==e.scaling?(void 0!==e.scaling.min&&(t.scaling.min=e.scaling.min),void 0!==e.scaling.max&&(t.scaling.max=e.scaling.max),v.mergeOptions(t.scaling,e.scaling,"label",i,o.scaling)):i===!0&&null===e.scaling&&(t.scaling=Object.create(o.scaling)),void 0!==e.arrows&&null!==e.arrows)if("string"==typeof e.arrows){var s=e.arrows.toLowerCase();-1!=s.indexOf("to")&&(t.arrows.to.enabled=!0),-1!=s.indexOf("middle")&&(t.arrows.middle.enabled=!0),-1!=s.indexOf("from")&&(t.arrows.from.enabled=!0)}else{if("object"!=typeof e.arrows)throw new Error("The arrow newOptions can only be an object or a string. Refer to the documentation. You used:"+JSON.stringify(e.arrows));
-v.mergeOptions(t.arrows,e.arrows,"to",i,o.arrows),v.mergeOptions(t.arrows,e.arrows,"middle",i,o.arrows),v.mergeOptions(t.arrows,e.arrows,"from",i,o.arrows)}else i===!0&&null===e.arrows&&(t.arrows=Object.create(o.arrows));if(void 0!==e.color&&null!==e.color)if(t.color=v.deepExtend({},t.color,!0),v.isString(e.color))t.color.color=e.color,t.color.highlight=e.color,t.color.hover=e.color,t.color.inherit=!1;else{var r=!1;void 0!==e.color.color&&(t.color.color=e.color.color,r=!0),void 0!==e.color.highlight&&(t.color.highlight=e.color.highlight,r=!0),void 0!==e.color.hover&&(t.color.hover=e.color.hover,r=!0),void 0!==e.color.inherit&&(t.color.inherit=e.color.inherit),void 0!==e.color.opacity&&(t.color.opacity=Math.min(1,Math.max(0,e.color.opacity))),void 0===e.color.inherit&&r===!0&&(t.color.inherit=!1)}else i===!0&&null===e.color&&(t.color=v.bridgeObject(o.color));void 0!==e.font&&null!==e.font?a["default"].parseOptions(t.font,e):i===!0&&null===e.font&&(t.font=v.bridgeObject(o.font))}}]),t}();e["default"]=g,t.exports=e["default"]},function(t,e,i){function o(t){return t&&t.__esModule?t:{"default":t}}function n(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function s(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}Object.defineProperty(e,"__esModule",{value:!0});var r=function(){function t(t,e){var i=[],o=!0,n=!1,s=void 0;try{for(var r,a=t[Symbol.iterator]();!(o=(r=a.next()).done)&&(i.push(r.value),!e||i.length!==e);o=!0);}catch(h){n=!0,s=h}finally{try{!o&&a["return"]&&a["return"]()}finally{if(n)throw s}}return i}return function(e,i){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return t(e,i);throw new TypeError("Invalid attempt to destructure non-iterable instance")}}(),a=function(){function t(t,e){for(var i=0;i<e.length;i++){var o=e[i];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(t,o.key,o)}}return function(e,i,o){return i&&t(e.prototype,i),o&&t(e,o),e}}(),h=function(t,e,i){for(var o=!0;o;){var n=t,s=e,r=i;o=!1,null===n&&(n=Function.prototype);var a=Object.getOwnPropertyDescriptor(n,s);if(void 0!==a){if("value"in a)return a.value;var h=a.get;if(void 0===h)return;return h.call(r)}var d=Object.getPrototypeOf(n);if(null===d)return;t=d,e=s,i=r,o=!0,a=d=void 0}},d=i(84),l=o(d),u=function(t){function e(t,i,o){n(this,e),h(Object.getPrototypeOf(e.prototype),"constructor",this).call(this,t,i,o)}return s(e,t),a(e,[{key:"_line",value:function(t){var e=this._getViaCoordinates(),i=r(e,2),o=i[0],n=i[1],s=[o,n];return t.beginPath(),t.moveTo(this.from.x,this.from.y),void 0===o.x?(t.lineTo(this.to.x,this.to.y),s=void 0):t.bezierCurveTo(o.x,o.y,n.x,n.y,this.to.x,this.to.y),this.enableShadow(t),t.stroke(),this.disableShadow(t),s}},{key:"_getViaCoordinates",value:function(){var t=this.from.x-this.to.x,e=this.from.y-this.to.y,i=void 0,o=void 0,n=void 0,s=void 0,r=this.options.smooth.roundness;return(Math.abs(t)>Math.abs(e)||this.options.smooth.forceDirection===!0||"horizontal"===this.options.smooth.forceDirection)&&"vertical"!==this.options.smooth.forceDirection?(o=this.from.y,s=this.to.y,i=this.from.x-r*t,n=this.to.x+r*t):(o=this.from.y-r*e,s=this.to.y+r*e,i=this.from.x,n=this.to.x),[{x:i,y:o},{x:n,y:s}]}},{key:"_findBorderPosition",value:function(t,e){return this._findBorderPositionBezier(t,e)}},{key:"_getDistanceToEdge",value:function(t,e,i,o,n,s){var a=arguments.length<=6||void 0===arguments[6]?this._getViaCoordinates():arguments[6],h=r(a,2),d=h[0],l=h[1];return this._getDistanceToBezierEdge(t,e,i,o,n,s,d,l)}},{key:"getPoint",value:function(t){var e=arguments.length<=1||void 0===arguments[1]?this._getViaCoordinates():arguments[1],i=r(e,2),o=i[0],n=i[1],s=t,a=[];a[0]=Math.pow(1-s,3),a[1]=3*s*Math.pow(1-s,2),a[2]=3*Math.pow(s,2)*(1-s),a[3]=Math.pow(s,3);var h=a[0]*this.from.x+a[1]*o.x+a[2]*n.x+a[3]*this.to.x,d=a[0]*this.from.y+a[1]*o.y+a[2]*n.y+a[3]*this.to.y;return{x:h,y:d}}}]),e}(l["default"]);e["default"]=u,t.exports=e["default"]},function(t,e,i){function o(t){return t&&t.__esModule?t:{"default":t}}function n(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function s(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}Object.defineProperty(e,"__esModule",{value:!0});var r=function(){function t(t,e){for(var i=0;i<e.length;i++){var o=e[i];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(t,o.key,o)}}return function(e,i,o){return i&&t(e.prototype,i),o&&t(e,o),e}}(),a=function(t,e,i){for(var o=!0;o;){var n=t,s=e,r=i;o=!1,null===n&&(n=Function.prototype);var a=Object.getOwnPropertyDescriptor(n,s);if(void 0!==a){if("value"in a)return a.value;var h=a.get;if(void 0===h)return;return h.call(r)}var d=Object.getPrototypeOf(n);if(null===d)return;t=d,e=s,i=r,o=!0,a=d=void 0}},h=i(85),d=o(h),l=function(t){function e(t,i,o){n(this,e),a(Object.getPrototypeOf(e.prototype),"constructor",this).call(this,t,i,o)}return s(e,t),r(e,[{key:"_getDistanceToBezierEdge",value:function(t,e,i,o,n,s,r,a){var h=1e9,d=void 0,l=void 0,u=void 0,c=void 0,p=void 0,f=t,m=e,v=[0,0,0,0];for(l=1;10>l;l++)u=.1*l,v[0]=Math.pow(1-u,3),v[1]=3*u*Math.pow(1-u,2),v[2]=3*Math.pow(u,2)*(1-u),v[3]=Math.pow(u,3),c=v[0]*t+v[1]*r.x+v[2]*a.x+v[3]*i,p=v[0]*e+v[1]*r.y+v[2]*a.y+v[3]*o,l>0&&(d=this._getDistanceToLine(f,m,c,p,n,s),h=h>d?d:h),f=c,m=p;return h}}]),e}(d["default"]);e["default"]=l,t.exports=e["default"]},function(t,e,i){function o(t){return t&&t.__esModule?t:{"default":t}}function n(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function s(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}Object.defineProperty(e,"__esModule",{value:!0});var r=function(){function t(t,e){for(var i=0;i<e.length;i++){var o=e[i];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(t,o.key,o)}}return function(e,i,o){return i&&t(e.prototype,i),o&&t(e,o),e}}(),a=function(t,e,i){for(var o=!0;o;){var n=t,s=e,r=i;o=!1,null===n&&(n=Function.prototype);var a=Object.getOwnPropertyDescriptor(n,s);if(void 0!==a){if("value"in a)return a.value;var h=a.get;if(void 0===h)return;return h.call(r)}var d=Object.getPrototypeOf(n);if(null===d)return;t=d,e=s,i=r,o=!0,a=d=void 0}},h=i(86),d=o(h),l=function(t){function e(t,i,o){n(this,e),a(Object.getPrototypeOf(e.prototype),"constructor",this).call(this,t,i,o)}return s(e,t),r(e,[{key:"_findBorderPositionBezier",value:function(t,e){var i,o,n,s,r,a=arguments.length<=2||void 0===arguments[2]?this._getViaCoordinates():arguments[2],h=10,d=0,l=0,u=1,c=.2,p=this.to,f=!1;for(t.id===this.from.id&&(p=this.from,f=!0);u>=l&&h>d;){var m=.5*(l+u);if(i=this.getPoint(m,a),o=Math.atan2(p.y-i.y,p.x-i.x),n=p.distanceToBorder(e,o),s=Math.sqrt(Math.pow(i.x-p.x,2)+Math.pow(i.y-p.y,2)),r=n-s,Math.abs(r)<c)break;0>r?f===!1?l=m:u=m:f===!1?u=m:l=m,d++}return i.t=m,i}},{key:"_getDistanceToBezierEdge",value:function(t,e,i,o,n,s,r){var a=1e9,h=void 0,d=void 0,l=void 0,u=void 0,c=void 0,p=t,f=e;for(d=1;10>d;d++)l=.1*d,u=Math.pow(1-l,2)*t+2*l*(1-l)*r.x+Math.pow(l,2)*i,c=Math.pow(1-l,2)*e+2*l*(1-l)*r.y+Math.pow(l,2)*o,d>0&&(h=this._getDistanceToLine(p,f,u,c,n,s),a=a>h?h:a),p=u,f=c;return a}}]),e}(d["default"]);e["default"]=l,t.exports=e["default"]},function(t,e,i){function o(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(e,"__esModule",{value:!0});var n=function(){function t(t,e){var i=[],o=!0,n=!1,s=void 0;try{for(var r,a=t[Symbol.iterator]();!(o=(r=a.next()).done)&&(i.push(r.value),!e||i.length!==e);o=!0);}catch(h){n=!0,s=h}finally{try{!o&&a["return"]&&a["return"]()}finally{if(n)throw s}}return i}return function(e,i){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return t(e,i);throw new TypeError("Invalid attempt to destructure non-iterable instance")}}(),s=function(){function t(t,e){for(var i=0;i<e.length;i++){var o=e[i];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(t,o.key,o)}}return function(e,i,o){return i&&t(e.prototype,i),o&&t(e,o),e}}(),r=i(1),a=function(){function t(e,i,n){o(this,t),this.body=i,this.labelModule=n,this.options={},this.setOptions(e),this.colorDirty=!0,this.color={},this.selectionWidth=2,this.hoverWidth=1.5}return s(t,[{key:"connect",value:function(){this.from=this.body.nodes[this.options.from],this.to=this.body.nodes[this.options.to]}},{key:"cleanup",value:function(){return!1}},{key:"setOptions",value:function(t){this.options=t,this.from=this.body.nodes[this.options.from],this.to=this.body.nodes[this.options.to],this.id=this.options.id}},{key:"drawLine",value:function(t,e,i){t.strokeStyle=this.getColor(t,e,i),t.lineWidth=this.getLineWidth(e,i);var o=void 0;return o=this.options.dashes!==!1?this._drawDashedLine(t):this._drawLine(t)}},{key:"_drawLine",value:function(t){var e=void 0;if(this.from!=this.to)e=this._line(t);else{var i=this._getCircleData(t),o=n(i,3),s=o[0],r=o[1],a=o[2];this._circle(t,s,r,a)}return e}},{key:"_drawDashedLine",value:function(t){var e=void 0;t.lineCap="round";var i=[5,5];if(Array.isArray(this.options.dashes)===!0&&(i=this.options.dashes),void 0!==t.setLineDash){if(t.save(),t.setLineDash(i),t.lineDashOffset=0,this.from!=this.to)e=this._line(t);else{var o=this._getCircleData(t),s=n(o,3),r=s[0],a=s[1],h=s[2];this._circle(t,r,a,h)}t.setLineDash([0]),t.lineDashOffset=0,t.restore()}else{if(this.from!=this.to)t.dashedLine(this.from.x,this.from.y,this.to.x,this.to.y,i);else{var d=this._getCircleData(t),l=n(d,3),r=l[0],a=l[1],h=l[2];this._circle(t,r,a,h)}this.enableShadow(t),t.stroke(),this.disableShadow(t)}return e}},{key:"findBorderPosition",value:function(t,e,i){return this.from!=this.to?this._findBorderPosition(t,e,i):this._findBorderPositionCircle(t,e,i)}},{key:"findBorderPositions",value:function(t){var e={},i={};if(this.from!=this.to)e=this._findBorderPosition(this.from,t),i=this._findBorderPosition(this.to,t);else{var o=this._getCircleData(t),s=n(o,3),r=s[0],a=s[1];s[2];e=this._findBorderPositionCircle(this.from,t,{x:r,y:a,low:.25,high:.6,direction:-1}),i=this._findBorderPositionCircle(this.from,t,{x:r,y:a,low:.6,high:.8,direction:1})}return{from:e,to:i}}},{key:"_getCircleData",value:function(t){var e=void 0,i=void 0,o=this.from,n=this.options.selfReferenceSize;return void 0!==t&&void 0===o.shape.width&&o.shape.resize(t),o.shape.width>o.shape.height?(e=o.x+.5*o.shape.width,i=o.y-n):(e=o.x+n,i=o.y-.5*o.shape.height),[e,i,n]}},{key:"_pointOnCircle",value:function(t,e,i,o){var n=2*o*Math.PI;return{x:t+i*Math.cos(n),y:e-i*Math.sin(n)}}},{key:"_findBorderPositionCircle",value:function(t,e,i){for(var o=i.x,n=i.y,s=i.low,r=i.high,a=i.direction,h=10,d=0,l=this.options.selfReferenceSize,u=void 0,c=void 0,p=void 0,f=void 0,m=void 0,v=.05,g=.5*(s+r);r>=s&&h>d&&(g=.5*(s+r),u=this._pointOnCircle(o,n,l,g),c=Math.atan2(t.y-u.y,t.x-u.x),p=t.distanceToBorder(e,c),f=Math.sqrt(Math.pow(u.x-t.x,2)+Math.pow(u.y-t.y,2)),m=p-f,!(Math.abs(m)<v));)m>0?a>0?s=g:r=g:a>0?r=g:s=g,d++;return u.t=g,u}},{key:"getLineWidth",value:function(t,e){return t===!0?Math.max(this.selectionWidth,.3/this.body.view.scale):e===!0?Math.max(this.hoverWidth,.3/this.body.view.scale):Math.max(this.options.width,.3/this.body.view.scale)}},{key:"getColor",value:function(t,e,i){var o=this.options.color;if(o.inherit!==!1){if("both"===o.inherit&&this.from.id!==this.to.id){var n=t.createLinearGradient(this.from.x,this.from.y,this.to.x,this.to.y),s=void 0,a=void 0;return s=this.from.options.color.highlight.border,a=this.to.options.color.highlight.border,this.from.selected===!1&&this.to.selected===!1?(s=r.overrideOpacity(this.from.options.color.border,this.options.color.opacity),a=r.overrideOpacity(this.to.options.color.border,this.options.color.opacity)):this.from.selected===!0&&this.to.selected===!1?a=this.to.options.color.border:this.from.selected===!1&&this.to.selected===!0&&(s=this.from.options.color.border),n.addColorStop(0,s),n.addColorStop(1,a),n}this.colorDirty===!0&&("to"===o.inherit?(this.color.highlight=this.to.options.color.highlight.border,this.color.hover=this.to.options.color.hover.border,this.color.color=r.overrideOpacity(this.to.options.color.border,o.opacity)):(this.color.highlight=this.from.options.color.highlight.border,this.color.hover=this.from.options.color.hover.border,this.color.color=r.overrideOpacity(this.from.options.color.border,o.opacity)))}else this.colorDirty===!0&&(this.color.highlight=o.highlight,this.color.hover=o.hover,this.color.color=r.overrideOpacity(o.color,o.opacity));return this.colorDirty=!1,e===!0?this.color.highlight:i===!0?this.color.hover:this.color.color}},{key:"_circle",value:function(t,e,i,o){this.enableShadow(t),t.beginPath(),t.arc(e,i,o,0,2*Math.PI,!1),t.stroke(),this.disableShadow(t)}},{key:"getDistanceToEdge",value:function(t,e,i,o,s,r,a){var h=0;if(this.from!=this.to)h=this._getDistanceToEdge(t,e,i,o,s,r,a);else{var d=this._getCircleData(),l=n(d,3),u=l[0],c=l[1],p=l[2],f=u-s,m=c-r;h=Math.abs(Math.sqrt(f*f+m*m)-p)}return this.labelModule.size.left<s&&this.labelModule.size.left+this.labelModule.size.width>s&&this.labelModule.size.top<r&&this.labelModule.size.top+this.labelModule.size.height>r?0:h}},{key:"_getDistanceToLine",value:function(t,e,i,o,n,s){var r=i-t,a=o-e,h=r*r+a*a,d=((n-t)*r+(s-e)*a)/h;d>1?d=1:0>d&&(d=0);var l=t+d*r,u=e+d*a,c=l-n,p=u-s;return Math.sqrt(c*c+p*p)}},{key:"drawArrowHead",value:function(t,e,i,o,s){t.strokeStyle=this.getColor(t,o,s),t.fillStyle=t.strokeStyle,t.lineWidth=this.getLineWidth(o,s);var r=void 0,a=void 0,h=void 0,d=void 0,l=void 0,u=void 0,c=void 0;if("from"===e?(d=this.from,l=this.to,u=.1,c=this.options.arrows.from.scaleFactor):"to"===e?(d=this.to,l=this.from,u=-.1,c=this.options.arrows.to.scaleFactor):(d=this.to,l=this.from,c=this.options.arrows.middle.scaleFactor),d!=l){if("middle"!==e)if(this.options.smooth.enabled===!0){h=this.findBorderPosition(d,t,{via:i});var p=this.getPoint(Math.max(0,Math.min(1,h.t+u)),i);r=Math.atan2(h.y-p.y,h.x-p.x)}else r=Math.atan2(d.y-l.y,d.x-l.x),h=this.findBorderPosition(d,t);else r=Math.atan2(d.y-l.y,d.x-l.x),h=this.getPoint(.6,i);a=(10+5*this.options.width)*c,t.arrow(h.x,h.y,r,a),this.enableShadow(t),t.fill(),this.disableShadow(t),t.stroke()}else{var f=void 0,m=void 0,v=this._getCircleData(t),g=n(v,3),y=g[0],b=g[1],w=g[2];"from"===e?(m=this.findBorderPosition(this.from,t,{x:y,y:b,low:.25,high:.6,direction:-1}),f=-2*m.t*Math.PI+1.5*Math.PI+.1*Math.PI):"to"===e?(m=this.findBorderPosition(this.from,t,{x:y,y:b,low:.6,high:1,direction:1}),f=-2*m.t*Math.PI+1.5*Math.PI-1.1*Math.PI):(m=this._pointOnCircle(y,b,w,.175),f=3.9269908169872414);var _=(10+5*this.options.width)*c;t.arrow(m.x,m.y,f,_),this.enableShadow(t),t.fill(),this.disableShadow(t),t.stroke()}}},{key:"enableShadow",value:function(t){this.options.shadow.enabled===!0&&(t.shadowColor="rgba(0,0,0,0.5)",t.shadowBlur=this.options.shadow.size,t.shadowOffsetX=this.options.shadow.x,t.shadowOffsetY=this.options.shadow.y)}},{key:"disableShadow",value:function(t){this.options.shadow.enabled===!0&&(t.shadowColor="rgba(0,0,0,0)",t.shadowBlur=0,t.shadowOffsetX=0,t.shadowOffsetY=0)}}]),t}();e["default"]=a,t.exports=e["default"]},function(t,e,i){function o(t){return t&&t.__esModule?t:{"default":t}}function n(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function s(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}Object.defineProperty(e,"__esModule",{value:!0});var r=function(){function t(t,e){for(var i=0;i<e.length;i++){var o=e[i];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(t,o.key,o)}}return function(e,i,o){return i&&t(e.prototype,i),o&&t(e,o),e}}(),a=function(t,e,i){for(var o=!0;o;){var n=t,s=e,r=i;o=!1,null===n&&(n=Function.prototype);var a=Object.getOwnPropertyDescriptor(n,s);if(void 0!==a){if("value"in a)return a.value;var h=a.get;if(void 0===h)return;return h.call(r)}var d=Object.getPrototypeOf(n);if(null===d)return;t=d,e=s,i=r,o=!0,a=d=void 0}},h=i(85),d=o(h),l=function(t){function e(t,i,o){var s=this;n(this,e),a(Object.getPrototypeOf(e.prototype),"constructor",this).call(this,t,i,o),this._boundFunction=function(){s.positionBezierNode()},this.body.emitter.on("_repositionBezierNodes",this._boundFunction)}return s(e,t),r(e,[{key:"setOptions",value:function(t){var e=!1;this.options.physics!==t.physics&&(e=!0),this.options=t,this.id=this.options.id,this.from=this.body.nodes[this.options.from],this.to=this.body.nodes[this.options.to],this.setupSupportNode(),this.connect(),e===!0&&(this.via.setOptions({physics:this.options.physics}),this.positionBezierNode())}},{key:"connect",value:function(){this.from=this.body.nodes[this.options.from],this.to=this.body.nodes[this.options.to],void 0===this.from||void 0===this.to||this.options.physics===!1?this.via.setOptions({physics:!1}):this.from.id===this.to.id?this.via.setOptions({physics:!1}):this.via.setOptions({physics:!0})}},{key:"cleanup",value:function(){return this.body.emitter.off("_repositionBezierNodes",this._boundFunction),void 0!==this.via?(delete this.body.nodes[this.via.id],this.via=void 0,!0):!1}},{key:"setupSupportNode",value:function(){if(void 0===this.via){var t="edgeId:"+this.id,e=this.body.functions.createNode({id:t,shape:"circle",physics:!0,hidden:!0});this.body.nodes[t]=e,this.via=e,this.via.parentEdgeId=this.id,this.positionBezierNode()}}},{key:"positionBezierNode",value:function(){void 0!==this.via&&void 0!==this.from&&void 0!==this.to?(this.via.x=.5*(this.from.x+this.to.x),this.via.y=.5*(this.from.y+this.to.y)):void 0!==this.via&&(this.via.x=0,this.via.y=0)}},{key:"_line",value:function(t){return t.beginPath(),t.moveTo(this.from.x,this.from.y),t.quadraticCurveTo(this.via.x,this.via.y,this.to.x,this.to.y),this.enableShadow(t),t.stroke(),this.disableShadow(t),this.via}},{key:"getPoint",value:function(t){var e=t,i=Math.pow(1-e,2)*this.from.x+2*e*(1-e)*this.via.x+Math.pow(e,2)*this.to.x,o=Math.pow(1-e,2)*this.from.y+2*e*(1-e)*this.via.y+Math.pow(e,2)*this.to.y;return{x:i,y:o}}},{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}(d["default"]);e["default"]=l,t.exports=e["default"]},function(t,e,i){function o(t){return t&&t.__esModule?t:{"default":t}}function n(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function s(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}Object.defineProperty(e,"__esModule",{value:!0});var r=function(){function t(t,e){for(var i=0;i<e.length;i++){var o=e[i];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(t,o.key,o)}}return function(e,i,o){return i&&t(e.prototype,i),o&&t(e,o),e}}(),a=function(t,e,i){for(var o=!0;o;){var n=t,s=e,r=i;o=!1,null===n&&(n=Function.prototype);var a=Object.getOwnPropertyDescriptor(n,s);if(void 0!==a){if("value"in a)return a.value;var h=a.get;if(void 0===h)return;return h.call(r)}var d=Object.getPrototypeOf(n);if(null===d)return;t=d,e=s,i=r,o=!0,a=d=void 0}},h=i(85),d=o(h),l=function(t){function e(t,i,o){n(this,e),a(Object.getPrototypeOf(e.prototype),"constructor",this).call(this,t,i,o)}return s(e,t),r(e,[{key:"_line",value:function(t){t.beginPath(),t.moveTo(this.from.x,this.from.y);var e=this._getViaCoordinates(),i=e;return void 0===e.x?(t.lineTo(this.to.x,this.to.y),i=void 0):t.quadraticCurveTo(e.x,e.y,this.to.x,this.to.y),this.enableShadow(t),t.stroke(),this.disableShadow(t),i}},{key:"_getViaCoordinates",value:function(){var t=void 0,e=void 0,i=this.options.smooth.roundness,o=this.options.smooth.type,n=Math.abs(this.from.x-this.to.x),s=Math.abs(this.from.y-this.to.y);if("discrete"===o||"diagonalCross"===o)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*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.y<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)),"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.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)),"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.y<this.to.y?this.to.y-(1-i)*s:this.to.y+(1-i)*s):Math.abs(this.from.x-this.to.x)>Math.abs(this.from.y-this.to.y)&&(t=this.from.x<this.to.x?this.to.x-(1-i)*n:this.to.x+(1-i)*n,e=this.from.y);else if("horizontal"===o)t=this.from.x<this.to.x?this.to.x-(1-i)*n:this.to.x+(1-i)*n,e=this.from.y;else if("vertical"===o)t=this.from.x,e=this.from.y<this.to.y?this.to.y-(1-i)*s:this.to.y+(1-i)*s;else if("curvedCW"===o){n=this.to.x-this.from.x,s=this.from.y-this.to.y;var r=Math.sqrt(n*n+s*s),a=Math.PI,h=Math.atan2(s,n),d=(h+(.5*i+.5)*a)%(2*a);t=this.from.x+(.5*i+.5)*r*Math.sin(d),e=this.from.y+(.5*i+.5)*r*Math.cos(d)}else if("curvedCCW"===o){n=this.to.x-this.from.x,s=this.from.y-this.to.y;var r=Math.sqrt(n*n+s*s),a=Math.PI,h=Math.atan2(s,n),d=(h+(.5*-i+.5)*a)%(2*a);t=this.from.x+(.5*i+.5)*r*Math.sin(d),e=this.from.y+(.5*i+.5)*r*Math.cos(d)}else 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*s,e=this.from.y-i*s,t=this.to.x<t?this.to.x:t):this.from.x>this.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.y<this.to.y&&(this.from.x<=this.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.x>this.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.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)));return{x:t,y:e}}},{key:"_findBorderPosition",value:function(t,e){var i=arguments.length<=2||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]?this._getViaCoordinates():arguments[6];return this._getDistanceToBezierEdge(t,e,i,o,n,s,r)}},{key:"getPoint",value:function(t){var e=arguments.length<=1||void 0===arguments[1]?this._getViaCoordinates():arguments[1],i=t,o=Math.pow(1-i,2)*this.from.x+2*i*(1-i)*e.x+Math.pow(i,2)*this.to.x,n=Math.pow(1-i,2)*this.from.y+2*i*(1-i)*e.y+Math.pow(i,2)*this.to.y;return{x:o,y:n}}}]),e}(d["default"]);e["default"]=l,t.exports=e["default"]},function(t,e,i){function o(t){return t&&t.__esModule?t:{"default":t}}function n(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function s(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}Object.defineProperty(e,"__esModule",{value:!0});var r=function(){function t(t,e){for(var i=0;i<e.length;i++){var o=e[i];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(t,o.key,o)}}return function(e,i,o){return i&&t(e.prototype,i),o&&t(e,o),e}}(),a=function(t,e,i){for(var o=!0;o;){var n=t,s=e,r=i;o=!1,null===n&&(n=Function.prototype);var a=Object.getOwnPropertyDescriptor(n,s);if(void 0!==a){if("value"in a)return a.value;var h=a.get;if(void 0===h)return;return h.call(r)}var d=Object.getPrototypeOf(n);if(null===d)return;t=d,e=s,i=r,o=!0,a=d=void 0}},h=i(86),d=o(h),l=function(t){function e(t,i,o){n(this,e),a(Object.getPrototypeOf(e.prototype),"constructor",this).call(this,t,i,o)}return s(e,t),r(e,[{key:"_line",value:function(t){t.beginPath(),t.moveTo(this.from.x,this.from.y),t.lineTo(this.to.x,this.to.y),this.enableShadow(t),t.stroke(),this.disableShadow(t)}},{key:"getPoint",value:function(t){return{x:(1-t)*this.from.x+t*this.to.x,y:(1-t)*this.from.y+t*this.to.y}}},{key:"_findBorderPosition",value:function(t,e){var i=this.to,o=this.from;t.id===this.from.id&&(i=this.from,o=this.to);var n=Math.atan2(i.y-o.y,i.x-o.x),s=i.x-o.x,r=i.y-o.y,a=Math.sqrt(s*s+r*r),h=t.distanceToBorder(e,n),d=(a-h)/a,l={};return l.x=(1-d)*o.x+d*i.x,l.y=(1-d)*o.y+d*i.y,l}},{key:"_getDistanceToEdge",value:function(t,e,i,o,n,s){return this._getDistanceToLine(t,e,i,o,n,s)}}]),e}(d["default"]);e["default"]=l,t.exports=e["default"]},function(t,e,i){function o(t){return t&&t.__esModule?t:{"default":t}}function n(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(e,"__esModule",{value:!0});var s=function(){function t(t,e){for(var i=0;i<e.length;i++){var o=e[i];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(t,o.key,o)}}return function(e,i,o){return i&&t(e.prototype,i),o&&t(e,o),e}}(),r=i(91),a=o(r),h=i(92),d=o(h),l=i(93),u=o(l),c=i(94),p=o(c),f=i(95),m=o(f),v=i(96),g=o(v),y=i(97),b=o(y),w=i(98),_=o(w),x=i(1),k=function(){function t(e){n(this,t),this.body=e,this.physicsBody={physicsNodeIndices:[],physicsEdgeIndices:[],forces:{},velocities:{}},this.physicsEnabled=!0,this.simulationInterval=1e3/60,this.requiresTimeout=!0,this.previousStates={},this.referenceState={},this.freezeCache={},this.renderTimer=void 0,this.adaptiveTimestep=!1,this.adaptiveTimestepEnabled=!1,this.adaptiveCounter=0,this.adaptiveInterval=3,this.stabilized=!1,this.startedStabilization=!1,this.stabilizationIterations=0,this.ready=!1,this.options={},this.defaultOptions={enabled:!0,barnesHut:{theta:.5,gravitationalConstant:-2e3,centralGravity:.3,springLength:95,springConstant:.04,damping:.09,avoidOverlap:0},forceAtlas2Based:{theta:.5,gravitationalConstant:-50,centralGravity:.01,springConstant:.08,springLength:100,damping:.4,avoidOverlap:0},repulsion:{centralGravity:.2,springLength:200,springConstant:.05,nodeDistance:100,damping:.09,avoidOverlap:0},hierarchicalRepulsion:{centralGravity:0,springLength:100,springConstant:.01,nodeDistance:120,damping:.09},maxVelocity:50,minVelocity:.75,solver:"barnesHut",stabilization:{enabled:!0,iterations:1e3,updateInterval:50,onlyDynamicEdges:!1,fit:!0},timestep:.5,adaptiveTimestep:!0},x.extend(this.options,this.defaultOptions),this.timestep=.5,this.layoutFailed=!1,this.bindEventListeners()}return s(t,[{key:"bindEventListeners",value:function(){var t=this;this.body.emitter.on("initPhysics",function(){t.initPhysics()}),this.body.emitter.on("_layoutFailed",function(){t.layoutFailed=!0}),this.body.emitter.on("resetPhysics",function(){t.stopSimulation(),t.ready=!1}),this.body.emitter.on("disablePhysics",function(){t.physicsEnabled=!1,t.stopSimulation()}),this.body.emitter.on("restorePhysics",function(){t.setOptions(t.options),t.ready===!0&&t.startSimulation()}),this.body.emitter.on("startSimulation",function(){t.ready===!0&&t.startSimulation()}),this.body.emitter.on("stopSimulation",function(){t.stopSimulation()}),this.body.emitter.on("destroy",function(){t.stopSimulation(!1),t.body.emitter.off()}),this.body.emitter.on("_dataChanged",function(){t.updatePhysicsData()})}},{key:"setOptions",value:function(t){void 0!==t&&(t===!1?(this.options.enabled=!1,this.physicsEnabled=!1,this.stopSimulation()):(this.physicsEnabled=!0,x.selectiveNotDeepExtend(["stabilization"],this.options,t),x.mergeOptions(this.options,t,"stabilization"),void 0===t.enabled&&(this.options.enabled=!0),this.options.enabled===!1&&(this.physicsEnabled=!1,this.stopSimulation()),this.timestep=this.options.timestep)),this.init()}},{key:"init",value:function(){var t;"forceAtlas2Based"===this.options.solver?(t=this.options.forceAtlas2Based,this.nodesSolver=new b["default"](this.body,this.physicsBody,t),this.edgesSolver=new p["default"](this.body,this.physicsBody,t),this.gravitySolver=new _["default"](this.body,this.physicsBody,t)):"repulsion"===this.options.solver?(t=this.options.repulsion,this.nodesSolver=new d["default"](this.body,this.physicsBody,t),this.edgesSolver=new p["default"](this.body,this.physicsBody,t),this.gravitySolver=new g["default"](this.body,this.physicsBody,t)):"hierarchicalRepulsion"===this.options.solver?(t=this.options.hierarchicalRepulsion,this.nodesSolver=new u["default"](this.body,this.physicsBody,t),this.edgesSolver=new m["default"](this.body,this.physicsBody,t),this.gravitySolver=new g["default"](this.body,this.physicsBody,t)):(t=this.options.barnesHut,this.nodesSolver=new a["default"](this.body,this.physicsBody,t),this.edgesSolver=new p["default"](this.body,this.physicsBody,t),this.gravitySolver=new g["default"](this.body,this.physicsBody,t)),this.modelOptions=t}},{key:"initPhysics",value:function(){this.physicsEnabled===!0&&this.options.enabled===!0?this.options.stabilization.enabled===!0?this.stabilize():(this.stabilized=!1,this.ready=!0,this.body.emitter.emit("fit",{},this.layoutFailed),this.startSimulation()):(this.ready=!0,this.body.emitter.emit("fit"))}},{key:"startSimulation",value:function(){this.physicsEnabled===!0&&this.options.enabled===!0?(this.stabilized=!1,this.adaptiveTimestep=!1,this.body.emitter.emit("_resizeNodes"),void 0===this.viewFunction&&(this.viewFunction=this.simulationStep.bind(this),this.body.emitter.on("initRedraw",this.viewFunction),this.body.emitter.emit("_startRendering"))):this.body.emitter.emit("_redraw")}},{key:"stopSimulation",value:function(){var t=arguments.length<=0||void 0===arguments[0]?!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]?this.stabilizationIterations:arguments[0];
-(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/t<this.options.timestep?this.timestep=this.options.timestep:(this.adaptiveCounter=-1,this.timestep=Math.max(this.options.timestep,this.timestep/t))):(this.calculateForces(),this.moveNodes()),this.adaptiveCounter+=1}else this.timestep=this.options.timestep,this.calculateForces(),this.moveNodes();this.stabilized===!0&&this.revert(),this.stabilizationIterations++}}},{key:"updatePhysicsData",value:function(){this.physicsBody.forces={},this.physicsBody.physicsNodeIndices=[],this.physicsBody.physicsEdgeIndices=[];var t=this.body.nodes,e=this.body.edges;for(var i in t)t.hasOwnProperty(i)&&t[i].options.physics===!0&&this.physicsBody.physicsNodeIndices.push(i);for(var o in e)e.hasOwnProperty(o)&&e[o].options.physics===!0&&this.physicsBody.physicsEdgeIndices.push(o);for(var n=0;n<this.physicsBody.physicsNodeIndices.length;n++){var i=this.physicsBody.physicsNodeIndices[n];this.physicsBody.forces[i]={x:0,y:0},void 0===this.physicsBody.velocities[i]&&(this.physicsBody.velocities[i]={x:0,y:0})}for(var i in this.physicsBody.velocities)void 0===t[i]&&delete this.physicsBody.velocities[i]}},{key:"revert",value:function(){var t=Object.keys(this.previousStates),e=this.body.nodes,i=this.physicsBody.velocities;this.referenceState={};for(var o=0;o<t.length;o++){var n=t[o];void 0!==e[n]?e[n].options.physics===!0&&(this.referenceState[n]={positions:{x:e[n].x,y:e[n].y}},i[n].x=this.previousStates[n].vx,i[n].y=this.previousStates[n].vy,e[n].x=this.previousStates[n].x,e[n].y=this.previousStates[n].y):delete this.previousStates[n]}}},{key:"_evaluateStepQuality",value:function(){var t=void 0,e=void 0,i=void 0,o=this.body.nodes,n=this.referenceState,s=.3;for(var r in this.referenceState)if(this.referenceState.hasOwnProperty(r)&&void 0!==o[r]&&(t=o[r].x-n[r].positions.x,e=o[r].y-n[r].positions.y,i=Math.sqrt(Math.pow(t,2)+Math.pow(e,2)),i>s))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;s<t.length;s++){var r=t[s],a=this._performStep(r,e);i=Math.max(i,a),o+=a}this.adaptiveTimestepEnabled=o/t.length<n,this.stabilized=i<this.options.minVelocity}},{key:"_performStep",value:function(t,e){var i=this.body.nodes[t],o=this.timestep,n=this.physicsBody.forces,s=this.physicsBody.velocities;if(this.previousStates[t]={x:i.x,y:i.y,vx:s[t].x,vy:s[t].y},i.options.fixed.x===!1){var r=this.modelOptions.damping*s[t].x,a=(n[t].x-r)/i.options.mass;s[t].x+=a*o,s[t].x=Math.abs(s[t].x)>e?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&&t<this.options.stabilization.updateInterval&&this.stabilizationIterations<this.targetIterations;)this.physicsTick(),t++;this.stabilized===!1&&this.stabilizationIterations<this.targetIterations?(this.body.emitter.emit("stabilizationProgress",{iterations:this.stabilizationIterations,total:this.targetIterations}),setTimeout(this._stabilizationBatch.bind(this),0)):this._finalizeStabilization()}},{key:"_finalizeStabilization",value:function(){this.body.emitter.emit("_allowRedraw"),this.options.stabilization.fit===!0&&this.body.emitter.emit("fit"),this.options.stabilization.onlyDynamicEdges===!0&&this._restoreFrozenNodes(),this.body.emitter.emit("stabilizationIterationsDone"),this.body.emitter.emit("_requestRedraw"),this.stabilized===!0?this._emitStabilized():this.startSimulation(),this.ready=!0}},{key:"_drawForces",value:function(t){for(var e=0;e<this.physicsBody.physicsNodeIndices.length;e++){var i=this.body.nodes[this.physicsBody.physicsNodeIndices[e]],o=this.physicsBody.forces[this.physicsBody.physicsNodeIndices[e]],n=20,s=.03,r=Math.sqrt(Math.pow(o.x,2)+Math.pow(o.x,2)),a=Math.min(Math.max(5,r),15),h=3*a,d=x.HSVToHex((180-180*Math.min(1,Math.max(0,s*r)))/360,1,1);t.lineWidth=a,t.strokeStyle=d,t.beginPath(),t.moveTo(i.x,i.y),t.lineTo(i.x+n*o.x,i.y+n*o.y),t.stroke();var l=Math.atan2(o.y,o.x);t.fillStyle=d,t.arrow(i.x+n*o.x+Math.cos(l)*h,i.y+n*o.y+Math.sin(l)*h,l,h),t.fill()}}}]),t}();e["default"]=k,t.exports=e["default"]},function(t,e){function i(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(e,"__esModule",{value:!0});var o=function(){function t(t,e){for(var i=0;i<e.length;i++){var o=e[i];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(t,o.key,o)}}return function(e,i,o){return i&&t(e.prototype,i),o&&t(e,o),e}}(),n=function(){function t(e,o,n){i(this,t),this.body=e,this.physicsBody=o,this.barnesHutTree,this.setOptions(n),this.randomSeed=5}return o(t,[{key:"setOptions",value:function(t){this.options=t,this.thetaInversed=1/this.options.theta,this.overlapAvoidanceFactor=1-Math.max(0,Math.min(1,this.options.avoidOverlap))}},{key:"seededRandom",value:function(){var t=1e4*Math.sin(this.randomSeed++);return t-Math.floor(t)}},{key:"solve",value:function(){if(0!==this.options.gravitationalConstant&&this.physicsBody.physicsNodeIndices.length>0){var t=void 0,e=this.body.nodes,i=this.physicsBody.physicsNodeIndices,o=i.length,n=this._formBarnesHutTree(e,i);this.barnesHutTree=n;for(var s=0;o>s;s++)t=e[i[s]],t.options.mass>0&&(this._getForceContribution(n.root.children.NW,t),this._getForceContribution(n.root.children.NE,t),this._getForceContribution(n.root.children.SW,t),this._getForceContribution(n.root.children.SE,t))}}},{key:"_getForceContribution",value:function(t,e){if(t.childrenCount>0){var i=void 0,o=void 0,n=void 0;i=t.centerOfMass.x-e.x,o=t.centerOfMass.y-e.y,n=Math.sqrt(i*i+o*o),n*t.calcSize>this.thetaInversed?this._calculateForces(n,i,o,e,t):4===t.childrenCount?(this._getForceContribution(t.children.NW,e),this._getForceContribution(t.children.NE,e),this._getForceContribution(t.children.SW,e),this._getForceContribution(t.children.SE,e)):t.children.data.id!=e.id&&this._calculateForces(n,i,o,e,t)}}},{key:"_calculateForces",value:function(t,e,i,o,n){0===t&&(t=.1,e=t),this.overlapAvoidanceFactor<1&&(t=Math.max(.1+this.overlapAvoidanceFactor*o.shape.radius,t-o.shape.radius));var s=this.options.gravitationalConstant*n.mass*o.options.mass/Math.pow(t,3),r=e*s,a=i*s;this.physicsBody.forces[o.id].x+=r,this.physicsBody.forces[o.id].y+=a}},{key:"_formBarnesHutTree",value:function(t,e){for(var i=void 0,o=e.length,n=t[e[0]].x,s=t[e[0]].y,r=t[e[0]].x,a=t[e[0]].y,h=1;o>h;h++){var d=t[e[h]].x,l=t[e[h]].y;t[e[h]].options.mass>0&&(n>d&&(n=d),d>r&&(r=d),s>l&&(s=l),l>a&&(a=l))}var u=Math.abs(r-n)-Math.abs(a-s);u>0?(s-=.5*u,a+=.5*u):(n+=.5*u,r-=.5*u);var c=1e-5,p=Math.max(c,Math.abs(r-n)),f=.5*p,m=.5*(n+r),v=.5*(s+a),g={root:{centerOfMass:{x:0,y:0},mass:0,range:{minX:m-f,maxX:m+f,minY:v-f,maxY:v+f},size:p,calcSize:1/p,children:{data:null},maxWidth:0,level:0,childrenCount:4}};this._splitBranch(g.root);for(var h=0;o>h;h++)i=t[e[h]],i.options.mass>0&&this._placeInTree(g.root,i);return g}},{key:"_updateBranchMass",value:function(t,e){var i=t.mass+e.options.mass,o=1/i;t.centerOfMass.x=t.centerOfMass.x*t.mass+e.x*e.options.mass,t.centerOfMass.x*=o,t.centerOfMass.y=t.centerOfMass.y*t.mass+e.y*e.options.mass,t.centerOfMass.y*=o,t.mass=i;var n=Math.max(Math.max(e.height,e.radius),e.width);t.maxWidth=t.maxWidth<n?n:t.maxWidth}},{key:"_placeInTree",value:function(t,e,i){(1!=i||void 0===i)&&this._updateBranchMass(t,e),t.children.NW.range.maxX>e.x?t.children.NW.range.maxY>e.y?this._placeInRegion(t,e,"NW"):this._placeInRegion(t,e,"SW"):t.children.NW.range.maxY>e.y?this._placeInRegion(t,e,"NE"):this._placeInRegion(t,e,"SE")}},{key:"_placeInRegion",value:function(t,e,i){switch(t.children[i].childrenCount){case 0:t.children[i].children.data=e,t.children[i].childrenCount=1,this._updateBranchMass(t.children[i],e);break;case 1:t.children[i].children.data.x===e.x&&t.children[i].children.data.y===e.y?(e.x+=this.seededRandom(),e.y+=this.seededRandom()):(this._splitBranch(t.children[i]),this._placeInTree(t.children[i],e));break;case 4:this._placeInTree(t.children[i],e)}}},{key:"_splitBranch",value:function(t){var e=null;1===t.childrenCount&&(e=t.children.data,t.mass=0,t.centerOfMass.x=0,t.centerOfMass.y=0),t.childrenCount=4,t.children.data=null,this._insertRegion(t,"NW"),this._insertRegion(t,"NE"),this._insertRegion(t,"SW"),this._insertRegion(t,"SE"),null!=e&&this._placeInTree(t,e)}},{key:"_insertRegion",value:function(t,e){var i=void 0,o=void 0,n=void 0,s=void 0,r=.5*t.size;switch(e){case"NW":i=t.range.minX,o=t.range.minX+r,n=t.range.minY,s=t.range.minY+r;break;case"NE":i=t.range.minX+r,o=t.range.maxX,n=t.range.minY,s=t.range.minY+r;break;case"SW":i=t.range.minX,o=t.range.minX+r,n=t.range.minY+r,s=t.range.maxY;break;case"SE":i=t.range.minX+r,o=t.range.maxX,n=t.range.minY+r,s=t.range.maxY}t.children[e]={centerOfMass:{x:0,y:0},mass:0,range:{minX:i,maxX:o,minY:n,maxY:s},size:.5*t.size,calcSize:2*t.calcSize,children:{data:null},maxWidth:0,level:t.level+1,childrenCount:0}}},{key:"_debug",value:function(t,e){void 0!==this.barnesHutTree&&(t.lineWidth=1,this._drawBranch(this.barnesHutTree.root,t,e))}},{key:"_drawBranch",value:function(t,e,i){void 0===i&&(i="#FF0000"),4===t.childrenCount&&(this._drawBranch(t.children.NW,e),this._drawBranch(t.children.NE,e),this._drawBranch(t.children.SE,e),this._drawBranch(t.children.SW,e)),e.strokeStyle=i,e.beginPath(),e.moveTo(t.range.minX,t.range.minY),e.lineTo(t.range.maxX,t.range.minY),e.stroke(),e.beginPath(),e.moveTo(t.range.maxX,t.range.minY),e.lineTo(t.range.maxX,t.range.maxY),e.stroke(),e.beginPath(),e.moveTo(t.range.maxX,t.range.maxY),e.lineTo(t.range.minX,t.range.maxY),e.stroke(),e.beginPath(),e.moveTo(t.range.minX,t.range.maxY),e.lineTo(t.range.minX,t.range.minY),e.stroke()}}]),t}();e["default"]=n,t.exports=e["default"]},function(t,e){function i(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(e,"__esModule",{value:!0});var o=function(){function t(t,e){for(var i=0;i<e.length;i++){var o=e[i];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(t,o.key,o)}}return function(e,i,o){return i&&t(e.prototype,i),o&&t(e,o),e}}(),n=function(){function t(e,o,n){i(this,t),this.body=e,this.physicsBody=o,this.setOptions(n)}return o(t,[{key:"setOptions",value:function(t){this.options=t}},{key:"solve",value:function(){for(var t,e,i,o,n,s,r,a,h=this.body.nodes,d=this.physicsBody.physicsNodeIndices,l=this.physicsBody.forces,u=this.options.nodeDistance,c=-2/3/u,p=4/3,f=0;f<d.length-1;f++){r=h[d[f]];for(var m=f+1;m<d.length;m++)a=h[d[m]],t=a.x-r.x,e=a.y-r.y,i=Math.sqrt(t*t+e*e),0===i&&(i=.1*Math.random(),t=i),2*u>i&&(s=.5*u>i?1:c*i+p,s/=i,o=t*s,n=e*s,l[r.id].x-=o,l[r.id].y-=n,l[a.id].x+=o,l[a.id].y+=n)}}}]),t}();e["default"]=n,t.exports=e["default"]},function(t,e){function i(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(e,"__esModule",{value:!0});var o=function(){function t(t,e){for(var i=0;i<e.length;i++){var o=e[i];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(t,o.key,o)}}return function(e,i,o){return i&&t(e.prototype,i),o&&t(e,o),e}}(),n=function(){function t(e,o,n){i(this,t),this.body=e,this.physicsBody=o,this.setOptions(n)}return o(t,[{key:"setOptions",value:function(t){this.options=t}},{key:"solve",value:function(){var t,e,i,o,n,s,r,a,h,d,l=this.body.nodes,u=this.physicsBody.physicsNodeIndices,c=this.physicsBody.forces,p=this.options.nodeDistance;for(h=0;h<u.length-1;h++)for(r=l[u[h]],d=h+1;d<u.length;d++)if(a=l[u[d]],r.level===a.level){t=a.x-r.x,e=a.y-r.y,i=Math.sqrt(t*t+e*e);var f=.05;s=p>i?-Math.pow(f*i,2)+Math.pow(f*p,2):0,0===i?i=.01:s/=i,o=t*s,n=e*s,c[r.id].x-=o,c[r.id].y-=n,c[a.id].x+=o,c[a.id].y+=n}}}]),t}();e["default"]=n,t.exports=e["default"]},function(t,e){function i(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(e,"__esModule",{value:!0});var o=function(){function t(t,e){for(var i=0;i<e.length;i++){var o=e[i];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(t,o.key,o)}}return function(e,i,o){return i&&t(e.prototype,i),o&&t(e,o),e}}(),n=function(){function t(e,o,n){i(this,t),this.body=e,this.physicsBody=o,this.setOptions(n)}return o(t,[{key:"setOptions",value:function(t){this.options=t}},{key:"solve",value:function(){for(var t=void 0,e=void 0,i=this.physicsBody.physicsEdgeIndices,o=this.body.edges,n=void 0,s=void 0,r=void 0,a=0;a<i.length;a++)e=o[i[a]],e.connected===!0&&e.toId!==e.fromId&&void 0!==this.body.nodes[e.toId]&&void 0!==this.body.nodes[e.fromId]&&(void 0!==e.edgeType.via?(t=void 0===e.options.length?this.options.springLength:e.options.length,n=e.to,s=e.edgeType.via,r=e.from,this._calculateSpringForce(n,s,.5*t),this._calculateSpringForce(s,r,.5*t)):(t=void 0===e.options.length?1.5*this.options.springLength:e.options.length,this._calculateSpringForce(e.from,e.to,t)))}},{key:"_calculateSpringForce",value:function(t,e,i){var o=t.x-e.x,n=t.y-e.y,s=Math.max(Math.sqrt(o*o+n*n),.01),r=this.options.springConstant*(i-s)/s,a=o*r,h=n*r;void 0!==this.physicsBody.forces[t.id]&&(this.physicsBody.forces[t.id].x+=a,this.physicsBody.forces[t.id].y+=h),void 0!==this.physicsBody.forces[e.id]&&(this.physicsBody.forces[e.id].x-=a,this.physicsBody.forces[e.id].y-=h)}}]),t}();e["default"]=n,t.exports=e["default"]},function(t,e){function i(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(e,"__esModule",{value:!0});var o=function(){function t(t,e){for(var i=0;i<e.length;i++){var o=e[i];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(t,o.key,o)}}return function(e,i,o){return i&&t(e.prototype,i),o&&t(e,o),e}}(),n=function(){function t(e,o,n){i(this,t),this.body=e,this.physicsBody=o,this.setOptions(n)}return o(t,[{key:"setOptions",value:function(t){this.options=t}},{key:"solve",value:function(){for(var t,e,i,o,n,s,r,a,h=this.body.edges,d=.5,l=this.physicsBody.physicsEdgeIndices,u=this.physicsBody.physicsNodeIndices,c=this.physicsBody.forces,p=0;p<u.length;p++){var f=u[p];c[f].springFx=0,c[f].springFy=0}for(var p=0;p<l.length;p++)e=h[l[p]],e.connected===!0&&(t=void 0===e.options.length?this.options.springLength:e.options.length,i=e.from.x-e.to.x,o=e.from.y-e.to.y,a=Math.sqrt(i*i+o*o),a=0===a?.01:a,r=this.options.springConstant*(t-a)/a,n=i*r,s=o*r,e.to.level!=e.from.level?(void 0!==c[e.toId]&&(c[e.toId].springFx-=n,c[e.toId].springFy-=s),void 0!==c[e.fromId]&&(c[e.fromId].springFx+=n,c[e.fromId].springFy+=s)):(void 0!==c[e.toId]&&(c[e.toId].x-=d*n,c[e.toId].y-=d*s),void 0!==c[e.fromId]&&(c[e.fromId].x+=d*n,c[e.fromId].y+=d*s)));for(var m,v,r=1,p=0;p<u.length;p++){var f=u[p];m=Math.min(r,Math.max(-r,c[f].springFx)),v=Math.min(r,Math.max(-r,c[f].springFy)),c[f].x+=m,c[f].y+=v}for(var g=0,y=0,p=0;p<u.length;p++){var f=u[p];g+=c[f].x,y+=c[f].y}for(var b=g/u.length,w=y/u.length,p=0;p<u.length;p++){var f=u[p];c[f].x-=b,c[f].y-=w}}}]),t}();e["default"]=n,t.exports=e["default"]},function(t,e){function i(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(e,"__esModule",{value:!0});var o=function(){function t(t,e){for(var i=0;i<e.length;i++){var o=e[i];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(t,o.key,o)}}return function(e,i,o){return i&&t(e.prototype,i),o&&t(e,o),e}}(),n=function(){function t(e,o,n){i(this,t),this.body=e,this.physicsBody=o,this.setOptions(n)}return o(t,[{key:"setOptions",value:function(t){this.options=t}},{key:"solve",value:function(){for(var t=void 0,e=void 0,i=void 0,o=void 0,n=this.body.nodes,s=this.physicsBody.physicsNodeIndices,r=this.physicsBody.forces,a=0;a<s.length;a++){var h=s[a];o=n[h],t=-o.x,e=-o.y,i=Math.sqrt(t*t+e*e),this._calculateForces(i,t,e,r,o)}}},{key:"_calculateForces",value:function(t,e,i,o,n){var s=0===t?0:this.options.centralGravity/t;o[n.id].x=e*s,o[n.id].y=i*s}}]),t}();e["default"]=n,t.exports=e["default"]},function(t,e,i){function o(t){return t&&t.__esModule?t:{"default":t}}function n(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function s(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}Object.defineProperty(e,"__esModule",{value:!0});var r=function(){function t(t,e){for(var i=0;i<e.length;i++){var o=e[i];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(t,o.key,o)}}return function(e,i,o){return i&&t(e.prototype,i),o&&t(e,o),e}}(),a=function(t,e,i){for(var o=!0;o;){var n=t,s=e,r=i;o=!1,null===n&&(n=Function.prototype);var a=Object.getOwnPropertyDescriptor(n,s);if(void 0!==a){if("value"in a)return a.value;var h=a.get;if(void 0===h)return;return h.call(r)}var d=Object.getPrototypeOf(n);if(null===d)return;t=d,e=s,i=r,o=!0,a=d=void 0}},h=i(91),d=o(h),l=function(t){function e(t,i,o){n(this,e),a(Object.getPrototypeOf(e.prototype),"constructor",this).call(this,t,i,o)}return s(e,t),r(e,[{key:"_calculateForces",value:function(t,e,i,o,n){0===t&&(t=.1*Math.random(),e=t),this.overlapAvoidanceFactor<1&&(t=Math.max(.1+this.overlapAvoidanceFactor*o.shape.radius,t-o.shape.radius));var s=o.edges.length+1,r=this.options.gravitationalConstant*n.mass*o.options.mass*s/Math.pow(t,2),a=e*r,h=i*r;this.physicsBody.forces[o.id].x+=a,this.physicsBody.forces[o.id].y+=h}}]),e}(d["default"]);e["default"]=l,t.exports=e["default"]},function(t,e,i){function o(t){return t&&t.__esModule?t:{"default":t}}function n(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function s(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}Object.defineProperty(e,"__esModule",{value:!0});var r=function(){function t(t,e){for(var i=0;i<e.length;i++){var o=e[i];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(t,o.key,o)}}return function(e,i,o){return i&&t(e.prototype,i),o&&t(e,o),e}}(),a=function(t,e,i){for(var o=!0;o;){var n=t,s=e,r=i;o=!1,null===n&&(n=Function.prototype);var a=Object.getOwnPropertyDescriptor(n,s);if(void 0!==a){if("value"in a)return a.value;var h=a.get;if(void 0===h)return;return h.call(r)}var d=Object.getPrototypeOf(n);if(null===d)return;t=d,e=s,i=r,o=!0,a=d=void 0}},h=i(96),d=o(h),l=function(t){function e(t,i,o){n(this,e),a(Object.getPrototypeOf(e.prototype),"constructor",this).call(this,t,i,o)}return s(e,t),r(e,[{key:"_calculateForces",value:function(t,e,i,o,n){if(t>0){var s=n.edges.length+1,r=this.options.centralGravity*s*n.options.mass;o[n.id].x=e*r,o[n.id].y=i*r}}}]),e}(d["default"]);e["default"]=l,t.exports=e["default"]},function(t,e,i){function o(t){return t&&t.__esModule?t:{"default":t}}function n(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(e,"__esModule",{value:!0});var s=function(){function t(t,e){for(var i=0;i<e.length;i++){var o=e[i];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(t,o.key,o)}}return function(e,i,o){return i&&t(e.prototype,i),o&&t(e,o),e}}(),r=i(100),a=o(r),h=i(101),d=o(h),l=i(1),u=function(){function t(e){var i=this;n(this,t),this.body=e,this.clusteredNodes={},this.options={},this.defaultOptions={},l.extend(this.options,this.defaultOptions),this.body.emitter.on("_resetData",function(){i.clusteredNodes={}})}return s(t,[{key:"setOptions",value:function(t){}},{key:"clusterByHubsize",value:function(t,e){void 0===t?t=this._getHubSize():"object"==typeof t&&(e=this._checkOptions(t),t=this._getHubSize());for(var i=[],o=0;o<this.body.nodeIndices.length;o++){var n=this.body.nodes[this.body.nodeIndices[o]];n.edges.length>=t&&i.push(n.id)}for(var o=0;o<i.length;o++)this.clusterByConnection(i[o],e,!0);this.body.emitter.emit("_dataChanged")}},{key:"cluster",value:function(){var t=arguments.length<=0||void 0===arguments[0]?{}:arguments[0],e=arguments.length<=1||void 0===arguments[1]?!0: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;n<this.body.nodeIndices.length;n++){var s=this.body.nodeIndices[n],r=this.body.nodes[s],h=a["default"]._cloneOptions(r);if(t.joinCondition(h)===!0){i[s]=this.body.nodes[s];for(var d=0;d<r.edges.length;d++){var l=r.edges[d];l.hiddenByCluster!==!0&&(o[l.id]=l)}}}this._cluster(i,o,t,e)}},{key:"clusterByEdgeCount",value:function(t,e){var i=arguments.length<=2||void 0===arguments[2]?!0:arguments[2];e=this._checkOptions(e);for(var o=[],n={},s=void 0,r=void 0,h=void 0,d=void 0,l=void 0,u=0;u<this.body.nodeIndices.length;u++){var c={},p={};if(d=this.body.nodeIndices[u],void 0===n[d]){l=0,h=this.body.nodes[d],r=[];for(var f=0;f<h.edges.length;f++)s=h.edges[f],s.hiddenByCluster!==!0&&(s.toId!==s.fromId&&l++,r.push(s));if(l===t){for(var m=!0,f=0;f<r.length;f++){s=r[f];var v=this._getConnectedId(s,d);if(void 0===e.joinCondition)p[s.id]=s,c[d]=this.body.nodes[d],c[v]=this.body.nodes[v],n[d]=!0;else{var g=a["default"]._cloneOptions(this.body.nodes[d]);if(e.joinCondition(g)!==!0){m=!1;break}p[s.id]=s,c[d]=this.body.nodes[d],n[d]=!0}}Object.keys(c).length>0&&Object.keys(p).length>0&&m===!0&&o.push({nodes:c,edges:p})}}}for(var u=0;u<o.length;u++)this._cluster(o[u].nodes,o[u].edges,e,!1);i===!0&&this.body.emitter.emit("_dataChanged")}},{key:"clusterOutliers",value:function(t){var e=arguments.length<=1||void 0===arguments[1]?!0:arguments[1];this.clusterByEdgeCount(1,t,e)}},{key:"clusterBridges",value:function(t){var e=arguments.length<=1||void 0===arguments[1]?!0:arguments[1];this.clusterByEdgeCount(2,t,e)}},{key:"clusterByConnection",value:function(t,e){var i=arguments.length<=2||void 0===arguments[2]?!0: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,h=a["default"]._cloneOptions(o);n[r]=o;for(var d=0;d<o.edges.length;d++){var l=o.edges[d];if(l.hiddenByCluster!==!0){var u=this._getConnectedId(l,r);if(void 0===this.clusteredNodes[u])if(u!==r)if(void 0===e.joinCondition)s[l.id]=l,n[u]=this.body.nodes[u];else{var c=a["default"]._cloneOptions(this.body.nodes[u]);e.joinCondition(h,c)===!0&&(s[l.id]=l,n[u]=this.body.nodes[u])}else s[l.id]=l}}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,h=void 0,d=void 0,u=void 0,c=Object.keys(t),p=[],f=0;f<c.length;f++){s=c[f],r=t[s];for(var m=0;m<r.edges.length;m++)n=r.edges[m],n.hiddenByCluster!==!0&&(n.toId==n.fromId?e[n.id]=n:n.toId==s?(h=i.id,d=n.fromId,u=d):(h=n.toId,d=i.id,u=h),void 0===t[u]&&p.push({edge:n,fromId:d,toId:h}))}for(var m=0;m<p.length;m++){var v=p[m].edge,g=a["default"]._cloneOptions(v,"edge");l.deepExtend(g,o),g.from=p[m].fromId,g.to=p[m].toId,g.id="clusterEdge:"+l.randomUUID();var y=this.body.functions.createEdge(g);y.clusteringEdgeReplacingId=v.id,this.body.edges[y.id]=y,y.connect(),v.setOptions({physics:!1,hidden:!0}),v.hiddenByCluster=!0}}},{key:"_checkOptions",value:function(){var t=arguments.length<=0||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]?!0:arguments[3];if(!(Object.keys(t).length<2)){for(var n in t)if(t.hasOwnProperty(n)&&void 0!==this.clusteredNodes[n])return;var s=l.deepExtend({},i.clusterNodeProperties);if(void 0!==i.processProperties){var r=[];for(var n in t)if(t.hasOwnProperty(n)){var h=a["default"]._cloneOptions(t[n]);r.push(h)}var u=[];for(var c in e)if(e.hasOwnProperty(c)&&"clusterEdge:"!==c.substr(0,12)){var h=a["default"]._cloneOptions(e[c],"edge");u.push(h)}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:"+l.randomUUID());var p=s.id;void 0===s.label&&(s.label="cluster");var f=void 0;void 0===s.x&&(f=this._getClusterPosition(t),s.x=f.x),void 0===s.y&&(void 0===f&&(f=this._getClusterPosition(t)),s.y=f.y),s.id=p;var m=this.body.functions.createNode(s,d["default"]);m.isCluster=!0,m.containedNodes=t,m.containedEdges=e,m.clusterEdgeProperties=i.clusterEdgeProperties,this.body.nodes[s.id]=m,this._createClusterEdges(t,e,s,i.clusterEdgeProperties);for(var c in e)if(e.hasOwnProperty(c)&&void 0!==this.body.edges[c]){var v=this.body.edges[c];v.setOptions({physics:!1,hidden:!0}),v.hiddenByCluster=!0}for(var n in t)t.hasOwnProperty(n)&&(this.clusteredNodes[n]={clusterId:s.id,node:this.body.nodes[n]},this.body.nodes[n].setOptions({hidden:!0,physics:!1}));s.id=void 0,o===!0&&this.body.emitter.emit("_dataChanged")}}},{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;a<e.length;a++)r=t[e[a]],i=r.x<i?r.x:i,o=r.x>o?r.x:o,n=r.y<n?r.y:n,s=r.y>s?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={},h={x:o.x,y:o.y};for(var d in n)if(n.hasOwnProperty(d)){var u=this.body.nodes[d];r[d]={x:u.x,y:u.y}}var c=e.releaseFunction(h,r);for(var d in n)if(n.hasOwnProperty(d)){var u=this.body.nodes[d];void 0!==c[d]&&(u.x=void 0===c[d].x?o.x:c[d].x,u.y=void 0===c[d].y?o.y:c[d].y)}}else for(var d in n)if(n.hasOwnProperty(d)){var u=this.body.nodes[d];u=n[d],u.options.fixed.x===!1&&(u.x=o.x),u.options.fixed.y===!1&&(u.y=o.y)}for(var d in n)if(n.hasOwnProperty(d)){var u=this.body.nodes[d];u.vx=o.vx,u.vy=o.vy,u.setOptions({hidden:!1,physics:!0}),delete this.clusteredNodes[d]}for(var p=[],f=0;f<o.edges.length;f++)p.push(o.edges[f]);for(var f=0;f<p.length;f++){var m=p[f],v=this._getConnectedId(m,t);if(void 0!==this.clusteredNodes[v]){var g=this.body.nodes[this.clusteredNodes[v].clusterId],y=this.body.edges[m.clusteringEdgeReplacingId];if(void 0!==y){g.containedEdges[y.id]=y,delete s[y.id];var b=y.fromId,w=y.toId;y.toId==v?w=this.clusteredNodes[v].clusterId:b=this.clusteredNodes[v].clusterId;var _=a["default"]._cloneOptions(y,"edge");l.deepExtend(_,g.clusterEdgeProperties);var x="clusterEdge:"+l.randomUUID();l.deepExtend(_,{from:b,to:w,hidden:!1,physics:!0,id:x});var k=this.body.functions.createEdge(_);k.clusteringEdgeReplacingId=y.id,this.body.edges[x]=k,this.body.edges[x].connect()}}else{var O=this.body.edges[m.clusteringEdgeReplacingId];void 0!==O&&(O.setOptions({physics:!0,hidden:!1}),O.hiddenByCluster=!1)}m.cleanup(),m.disconnect(),delete this.body.edges[m.id]}for(var M in s)if(s.hasOwnProperty(M)){var m=s[M];m.setOptions({physics:!0,hidden:!1}),m.hiddenByCluster=void 0,delete m.hiddenByCluster}delete this.body.nodes[t],i===!0&&this.body.emitter.emit("_dataChanged")}},{key:"getNodesInCluster",value:function(t){var e=[];if(this.isCluster(t)===!0){var i=this.body.nodes[t].containedNodes;for(var o in i)i.hasOwnProperty(o)&&e.push(o)}return e}},{key:"findNode",value:function(t){for(var e=[],i=100,o=0;void 0!==this.clusteredNodes[t]&&i>o;)e.push(this.clusteredNodes[t].node),t=this.clusteredNodes[t].clusterId,o++;return e.push(this.body.nodes[t]),e}},{key:"_getConnectedId",value:function(t,e){return t.toId!=e?t.toId:t.fromId!=e?t.fromId:t.fromId}},{key:"_getHubSize",value:function(){for(var t=0,e=0,i=0,o=0,n=0;n<this.body.nodeIndices.length;n++){var s=this.body.nodes[this.body.nodeIndices[n]];s.edges.length>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,t.exports=e["default"]},function(t,e,i){function o(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(e,"__esModule",{value:!0});var n=function(){function t(t,e){for(var i=0;i<e.length;i++){var o=e[i];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(t,o.key,o)}}return function(e,i,o){
-return i&&t(e.prototype,i),o&&t(e,o),e}}(),s=i(1),r=function(){function t(){o(this,t)}return n(t,null,[{key:"_getRange",value:function(t){var e,i=arguments.length<=1||void 0===arguments[1]?[]:arguments[1],o=1e9,n=-1e9,s=1e9,r=-1e9;if(i.length>0)for(var a=0;a<i.length;a++)e=t[i[a]],s>e.shape.boundingBox.left&&(s=e.shape.boundingBox.left),r<e.shape.boundingBox.right&&(r=e.shape.boundingBox.right),o>e.shape.boundingBox.top&&(o=e.shape.boundingBox.top),n<e.shape.boundingBox.bottom&&(n=e.shape.boundingBox.bottom);return 1e9===s&&-1e9===r&&1e9===o&&-1e9===n&&(o=0,n=0,s=0,r=0),{minX:s,maxX:r,minY:o,maxY:n}}},{key:"_getRangeCore",value:function(t){var e,i=arguments.length<=1||void 0===arguments[1]?[]:arguments[1],o=1e9,n=-1e9,s=1e9,r=-1e9;if(i.length>0)for(var a=0;a<i.length;a++)e=t[i[a]],s>e.x&&(s=e.x),r<e.x&&(r=e.x),o>e.y&&(o=e.y),n<e.y&&(n=e.y);return 1e9===s&&-1e9===r&&1e9===o&&-1e9===n&&(o=0,n=0,s=0,r=0),{minX:s,maxX:r,minY:o,maxY:n}}},{key:"_findCenter",value:function(t){return{x:.5*(t.maxX+t.minX),y:.5*(t.maxY+t.minY)}}},{key:"_cloneOptions",value:function(t,e){var i={};return void 0===e||"node"===e?(s.deepExtend(i,t.options,!0),i.x=t.x,i.y=t.y,i.amountOfConnections=t.edges.length):s.deepExtend(i,t.options,!0),i}}]),t}();e["default"]=r,t.exports=e["default"]},function(t,e,i){function o(t){return t&&t.__esModule?t:{"default":t}}function n(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function s(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}Object.defineProperty(e,"__esModule",{value:!0});var r=function(t,e,i){for(var o=!0;o;){var n=t,s=e,r=i;o=!1,null===n&&(n=Function.prototype);var a=Object.getOwnPropertyDescriptor(n,s);if(void 0!==a){if("value"in a)return a.value;var h=a.get;if(void 0===h)return;return h.call(r)}var d=Object.getPrototypeOf(n);if(null===d)return;t=d,e=s,i=r,o=!0,a=d=void 0}},a=i(62),h=o(a),d=function(t){function e(t,i,o,s,a){n(this,e),r(Object.getPrototypeOf(e.prototype),"constructor",this).call(this,t,i,o,s,a),this.isCluster=!0,this.containedNodes={},this.containedEdges={}}return s(e,t),e}(h["default"]);e["default"]=d,t.exports=e["default"]},function(t,e,i){function o(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(e,"__esModule",{value:!0});var n=function(){function t(t,e){for(var i=0;i<e.length;i++){var o=e[i];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(t,o.key,o)}}return function(e,i,o){return i&&t(e.prototype,i),o&&t(e,o),e}}();"undefined"!=typeof window&&(window.requestAnimationFrame=window.requestAnimationFrame||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame||window.msRequestAnimationFrame);var s=i(1),r=function(){function t(e,i){o(this,t),this.body=e,this.canvas=i,this.redrawRequested=!1,this.renderTimer=void 0,this.requiresTimeout=!0,this.renderingActive=!1,this.renderRequests=0,this.pixelRatio=void 0,this.allowRedraw=!0,this.dragging=!1,this.options={},this.defaultOptions={hideEdgesOnDrag:!1,hideNodesOnDrag:!1},s.extend(this.options,this.defaultOptions),this._determineBrowserMethod(),this.bindEventListeners()}return n(t,[{key:"bindEventListeners",value:function(){var t=this;this.body.emitter.on("dragStart",function(){t.dragging=!0}),this.body.emitter.on("dragEnd",function(){return t.dragging=!1}),this.body.emitter.on("_resizeNodes",function(){return t._resizeNodes()}),this.body.emitter.on("_redraw",function(){t.renderingActive===!1&&t._redraw()}),this.body.emitter.on("_blockRedraw",function(){t.allowRedraw=!1}),this.body.emitter.on("_allowRedraw",function(){t.allowRedraw=!0,t.redrawRequested=!1}),this.body.emitter.on("_requestRedraw",this._requestRedraw.bind(this)),this.body.emitter.on("_startRendering",function(){t.renderRequests+=1,t.renderingActive=!0,t._startRendering()}),this.body.emitter.on("_stopRendering",function(){t.renderRequests-=1,t.renderingActive=t.renderRequests>0,t.renderTimer=void 0}),this.body.emitter.on("destroy",function(){t.renderRequests=0,t.allowRedraw=!1,t.renderingActive=!1,t.requiresTimeout===!0?clearTimeout(t.renderTimer):cancelAnimationFrame(t.renderTimer),t.body.emitter.off()})}},{key:"setOptions",value:function(t){if(void 0!==t){var e=["hideEdgesOnDrag","hideNodesOnDrag"];s.selectiveDeepExtend(e,this.options,t)}}},{key:"_startRendering",value:function(){this.renderingActive===!0&&void 0===this.renderTimer&&(this.requiresTimeout===!0?this.renderTimer=window.setTimeout(this._renderStep.bind(this),this.simulationInterval):this.renderTimer=window.requestAnimationFrame(this._renderStep.bind(this)))}},{key:"_renderStep",value:function(){this.renderingActive===!0&&(this.renderTimer=void 0,this.requiresTimeout===!0&&this._startRendering(),this._redraw(),this.requiresTimeout===!1&&this._startRendering())}},{key:"redraw",value:function(){this.body.emitter.emit("setSize"),this._redraw()}},{key:"_requestRedraw",value:function(){var t=this;this.redrawRequested!==!0&&this.renderingActive===!1&&this.allowRedraw===!0&&(this.redrawRequested=!0,this.requiresTimeout===!0?window.setTimeout(function(){t._redraw(!1)},0):window.requestAnimationFrame(function(){t._redraw(!1)}))}},{key:"_redraw",value:function(){var t=arguments.length<=0||void 0===arguments[0]?!1:arguments[0];if(this.allowRedraw===!0){this.body.emitter.emit("initRedraw"),this.redrawRequested=!1;var e=this.canvas.frame.canvas.getContext("2d");(0===this.canvas.frame.canvas.width||0===this.canvas.frame.canvas.height)&&this.canvas.setSize(),this.pixelRatio=(window.devicePixelRatio||1)/(e.webkitBackingStorePixelRatio||e.mozBackingStorePixelRatio||e.msBackingStorePixelRatio||e.oBackingStorePixelRatio||e.backingStorePixelRatio||1),e.setTransform(this.pixelRatio,0,0,this.pixelRatio,0,0);var i=this.canvas.frame.canvas.clientWidth,o=this.canvas.frame.canvas.clientHeight;if(e.clearRect(0,0,i,o),0===this.canvas.frame.clientWidth)return;e.save(),e.translate(this.body.view.translation.x,this.body.view.translation.y),e.scale(this.body.view.scale,this.body.view.scale),e.beginPath(),this.body.emitter.emit("beforeDrawing",e),e.closePath(),t===!1&&(this.dragging===!1||this.dragging===!0&&this.options.hideEdgesOnDrag===!1)&&this._drawEdges(e),(this.dragging===!1||this.dragging===!0&&this.options.hideNodesOnDrag===!1)&&this._drawNodes(e,t),this.controlNodesActive===!0&&this._drawControlNodes(e),e.beginPath(),this.body.emitter.emit("afterDrawing",e),e.closePath(),e.restore(),t===!0&&e.clearRect(0,0,i,o)}}},{key:"_resizeNodes",value:function(){var t=this.canvas.frame.canvas.getContext("2d");void 0===this.pixelRatio&&(this.pixelRatio=(window.devicePixelRatio||1)/(t.webkitBackingStorePixelRatio||t.mozBackingStorePixelRatio||t.msBackingStorePixelRatio||t.oBackingStorePixelRatio||t.backingStorePixelRatio||1)),t.setTransform(this.pixelRatio,0,0,this.pixelRatio,0,0),t.save(),t.translate(this.body.view.translation.x,this.body.view.translation.y),t.scale(this.body.view.scale,this.body.view.scale);var e=this.body.nodes,i=void 0;for(var o in e)e.hasOwnProperty(o)&&(i=e[o],i.resize(t),i.updateBoundingBox(t,i.selected));t.restore()}},{key:"_drawNodes",value:function(t){for(var e=arguments.length<=1||void 0===arguments[1]?!1:arguments[1],i=this.body.nodes,o=this.body.nodeIndices,n=void 0,s=[],r=20,a=this.canvas.DOMtoCanvas({x:-r,y:-r}),h=this.canvas.DOMtoCanvas({x:this.canvas.frame.canvas.clientWidth+r,y:this.canvas.frame.canvas.clientHeight+r}),d={top:a.y,left:a.x,bottom:h.y,right:h.x},l=0;l<o.length;l++)n=i[o[l]],n.isSelected()?s.push(o[l]):e===!0?n.draw(t):n.isBoundingBoxOverlappingWith(d)===!0?n.draw(t):n.updateBoundingBox(t,n.selected);for(var l=0;l<s.length;l++)n=i[s[l]],n.draw(t)}},{key:"_drawEdges",value:function(t){for(var e=this.body.edges,i=this.body.edgeIndices,o=void 0,n=0;n<i.length;n++)o=e[i[n]],o.connected===!0&&o.draw(t)}},{key:"_drawControlNodes",value:function(t){for(var e=this.body.edges,i=this.body.edgeIndices,o=void 0,n=0;n<i.length;n++)o=e[i[n]],o._drawControlNodes(t)}},{key:"_determineBrowserMethod",value:function(){if("undefined"!=typeof window){var t=navigator.userAgent.toLowerCase();this.requiresTimeout=!1,-1!=t.indexOf("msie 9.0")?this.requiresTimeout=!0:-1!=t.indexOf("safari")&&t.indexOf("chrome")<=-1&&(this.requiresTimeout=!0)}else this.requiresTimeout=!0}}]),t}();e["default"]=r,t.exports=e["default"]},function(t,e,i){function o(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(e,"__esModule",{value:!0});var n=function(){function t(t,e){for(var i=0;i<e.length;i++){var o=e[i];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(t,o.key,o)}}return function(e,i,o){return i&&t(e.prototype,i),o&&t(e,o),e}}(),s=i(20),r=i(25),a=i(1),h=function(){function t(e){o(this,t),this.body=e,this.pixelRatio=1,this.resizeTimer=void 0,this.resizeFunction=this._onResize.bind(this),this.cameraState={},this.options={},this.defaultOptions={autoResize:!0,height:"100%",width:"100%"},a.extend(this.options,this.defaultOptions),this.bindEventListeners()}return n(t,[{key:"bindEventListeners",value:function(){var t=this;this.body.emitter.once("resize",function(e){0!==e.width&&(t.body.view.translation.x=.5*e.width),0!==e.height&&(t.body.view.translation.y=.5*e.height)}),this.body.emitter.on("setSize",this.setSize.bind(this)),this.body.emitter.on("destroy",function(){t.hammerFrame.destroy(),t.hammer.destroy(),t._cleanUp()})}},{key:"setOptions",value:function(t){var e=this;if(void 0!==t){var i=["width","height","autoResize"];a.selectiveDeepExtend(i,this.options,t)}this.options.autoResize===!0&&(this._cleanUp(),this.resizeTimer=setInterval(function(){var t=e.setSize();t===!0&&e.body.emitter.emit("_requestRedraw")},1e3),this.resizeFunction=this._onResize.bind(this),a.addEventListener(window,"resize",this.resizeFunction))}},{key:"_cleanUp",value:function(){void 0!==this.resizeTimer&&clearInterval(this.resizeTimer),a.removeEventListener(window,"resize",this.resizeFunction),this.resizeFunction=void 0}},{key:"_onResize",value:function(){this.setSize(),this.body.emitter.emit("_redraw")}},{key:"_getCameraState",value:function(){var t=arguments.length<=0||void 0===arguments[0]?this.pixelRatio:arguments[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){this.body.view.scale=this.cameraState.scale*Math.min(this.frame.canvas.width/this.pixelRatio/this.cameraState.previousWidth,this.frame.canvas.height/this.pixelRatio/this.cameraState.previousHeight);var t=this.DOMtoCanvas({x:.5*this.frame.canvas.clientWidth,y:.5*this.frame.canvas.clientHeight}),e={x:t.x-this.cameraState.position.x,y:t.y-this.cameraState.position.y};this.body.view.translation.x+=e.x*this.body.view.scale,this.body.view.translation.y+=e.y*this.body.view.scale}}},{key:"_prepareValue",value:function(t){if("number"==typeof t)return t+"px";if("string"==typeof t){if(-1!==t.indexOf("%")||-1!==t.indexOf("px"))return t;if(-1===t.indexOf("%"))return t+"px"}throw new Error("Could not use the value supplied for width or height:"+t)}},{key:"_create",value:function(){for(;this.body.container.hasChildNodes();)this.body.container.removeChild(this.body.container.firstChild);if(this.frame=document.createElement("div"),this.frame.className="vis-network",this.frame.style.position="relative",this.frame.style.overflow="hidden",this.frame.tabIndex=900,this.frame.canvas=document.createElement("canvas"),this.frame.canvas.style.position="relative",this.frame.appendChild(this.frame.canvas),this.frame.canvas.getContext){var t=this.frame.canvas.getContext("2d");this.pixelRatio=(window.devicePixelRatio||1)/(t.webkitBackingStorePixelRatio||t.mozBackingStorePixelRatio||t.msBackingStorePixelRatio||t.oBackingStorePixelRatio||t.backingStorePixelRatio||1),this.frame.canvas.getContext("2d").setTransform(this.pixelRatio,0,0,this.pixelRatio,0,0)}else{var e=document.createElement("DIV");e.style.color="red",e.style.fontWeight="bold",e.style.padding="10px",e.innerHTML="Error: your browser does not support HTML canvas",this.frame.canvas.appendChild(e)}this.body.container.appendChild(this.frame),this.body.view.scale=1,this.body.view.translation={x:.5*this.frame.canvas.clientWidth,y:.5*this.frame.canvas.clientHeight},this._bindHammer()}},{key:"_bindHammer",value:function(){var t=this;void 0!==this.hammer&&this.hammer.destroy(),this.drag={},this.pinch={},this.hammer=new s(this.frame.canvas),this.hammer.get("pinch").set({enable:!0}),this.hammer.get("pan").set({threshold:5,direction:30}),r.onTouch(this.hammer,function(e){t.body.eventListeners.onTouch(e)}),this.hammer.on("tap",function(e){t.body.eventListeners.onTap(e)}),this.hammer.on("doubletap",function(e){t.body.eventListeners.onDoubleTap(e)}),this.hammer.on("press",function(e){t.body.eventListeners.onHold(e)}),this.hammer.on("panstart",function(e){t.body.eventListeners.onDragStart(e)}),this.hammer.on("panmove",function(e){t.body.eventListeners.onDrag(e)}),this.hammer.on("panend",function(e){t.body.eventListeners.onDragEnd(e)}),this.hammer.on("pinch",function(e){t.body.eventListeners.onPinch(e)}),this.frame.canvas.addEventListener("mousewheel",function(e){t.body.eventListeners.onMouseWheel(e)}),this.frame.canvas.addEventListener("DOMMouseScroll",function(e){t.body.eventListeners.onMouseWheel(e)}),this.frame.canvas.addEventListener("mousemove",function(e){t.body.eventListeners.onMouseMove(e)}),this.frame.canvas.addEventListener("contextmenu",function(e){t.body.eventListeners.onContext(e)}),this.hammerFrame=new s(this.frame),r.onRelease(this.hammerFrame,function(e){t.body.eventListeners.onRelease(e)})}},{key:"setSize",value:function(){var t=arguments.length<=0||void 0===arguments[0]?this.options.width:arguments[0],e=arguments.length<=1||void 0===arguments[1]?this.options.height:arguments[1];t=this._prepareValue(t),e=this._prepareValue(e);var i=!1,o=this.frame.canvas.width,n=this.frame.canvas.height,s=this.frame.canvas.getContext("2d"),r=this.pixelRatio;return this.pixelRatio=(window.devicePixelRatio||1)/(s.webkitBackingStorePixelRatio||s.mozBackingStorePixelRatio||s.msBackingStorePixelRatio||s.oBackingStorePixelRatio||s.backingStorePixelRatio||1),t!=this.options.width||e!=this.options.height||this.frame.style.width!=t||this.frame.style.height!=e?(this._getCameraState(r),this.frame.style.width=t,this.frame.style.height=e,this.frame.canvas.style.width="100%",this.frame.canvas.style.height="100%",this.frame.canvas.width=Math.round(this.frame.canvas.clientWidth*this.pixelRatio),this.frame.canvas.height=Math.round(this.frame.canvas.clientHeight*this.pixelRatio),this.options.width=t,this.options.height=e,i=!0):((this.frame.canvas.width!=Math.round(this.frame.canvas.clientWidth*this.pixelRatio)||this.frame.canvas.height!=Math.round(this.frame.canvas.clientHeight*this.pixelRatio))&&this._getCameraState(r),this.frame.canvas.width!=Math.round(this.frame.canvas.clientWidth*this.pixelRatio)&&(this.frame.canvas.width=Math.round(this.frame.canvas.clientWidth*this.pixelRatio),i=!0),this.frame.canvas.height!=Math.round(this.frame.canvas.clientHeight*this.pixelRatio)&&(this.frame.canvas.height=Math.round(this.frame.canvas.clientHeight*this.pixelRatio),i=!0)),i===!0&&(this.body.emitter.emit("resize",{width:Math.round(this.frame.canvas.width/this.pixelRatio),height:Math.round(this.frame.canvas.height/this.pixelRatio),oldWidth:Math.round(o/this.pixelRatio),oldHeight:Math.round(n/this.pixelRatio)}),this._setCameraState()),i}},{key:"_XconvertDOMtoCanvas",value:function(t){return(t-this.body.view.translation.x)/this.body.view.scale}},{key:"_XconvertCanvasToDOM",value:function(t){return t*this.body.view.scale+this.body.view.translation.x}},{key:"_YconvertDOMtoCanvas",value:function(t){return(t-this.body.view.translation.y)/this.body.view.scale}},{key:"_YconvertCanvasToDOM",value:function(t){return t*this.body.view.scale+this.body.view.translation.y}},{key:"canvasToDOM",value:function(t){return{x:this._XconvertCanvasToDOM(t.x),y:this._YconvertCanvasToDOM(t.y)}}},{key:"DOMtoCanvas",value:function(t){return{x:this._XconvertDOMtoCanvas(t.x),y:this._YconvertDOMtoCanvas(t.y)}}}]),t}();e["default"]=h,t.exports=e["default"]},function(t,e,i){function o(t){return t&&t.__esModule?t:{"default":t}}function n(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(e,"__esModule",{value:!0});var s=function(){function t(t,e){for(var i=0;i<e.length;i++){var o=e[i];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(t,o.key,o)}}return function(e,i,o){return i&&t(e.prototype,i),o&&t(e,o),e}}(),r=i(100),a=o(r),h=i(1),d=function(){function t(e,i){var o=this;n(this,t),this.body=e,this.canvas=i,this.animationSpeed=1/this.renderRefreshRate,this.animationEasingFunction="easeInOutQuint",this.easingTime=0,this.sourceScale=0,this.targetScale=0,this.sourceTranslation=0,this.targetTranslation=0,this.lockedOnNodeId=void 0,this.lockedOnNodeOffset=void 0,this.touchTime=0,this.viewFunction=void 0,this.body.emitter.on("fit",this.fit.bind(this)),this.body.emitter.on("animationFinished",function(){o.body.emitter.emit("_stopRendering")}),this.body.emitter.on("unlockNode",this.releaseNode.bind(this))}return s(t,[{key:"setOptions",value:function(){var t=arguments.length<=0||void 0===arguments[0]?{}:arguments[0];this.options=t}},{key:"fit",value:function(){var t=arguments.length<=0||void 0===arguments[0]?{nodes:[]}:arguments[0],e=arguments.length<=1||void 0===arguments[1]?!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),u=1.1*Math.abs(i.maxY-i.minY),c=this.canvas.frame.canvas.clientWidth/l,p=this.canvas.frame.canvas.clientHeight/u;o=p>=c?c:p}o>1?o=1:0===o&&(o=1);var f=a["default"]._findCenter(i),m={position:f,scale:o,animation:t.animation};this.moveTo(m)}},{key:"focus",value:function(t){var e=arguments.length<=1||void 0===arguments[1]?{}:arguments[1];if(void 0!==this.body.nodes[t]){var i={x:this.body.nodes[t].x,y:this.body.nodes[t].y};e.position=i,e.lockedOnNode=t,this.moveTo(e)}else console.log("Node: "+t+" cannot be found.")}},{key:"moveTo",value:function(t){return void 0===t?void(t={}):(void 0===t.offset&&(t.offset={x:0,y:0}),void 0===t.offset.x&&(t.offset.x=0),void 0===t.offset.y&&(t.offset.y=0),void 0===t.scale&&(t.scale=this.body.view.scale),void 0===t.position&&(t.position=this.getViewPosition()),void 0===t.animation&&(t.animation={duration:0}),t.animation===!1&&(t.animation={duration:0}),t.animation===!0&&(t.animation={}),void 0===t.animation.duration&&(t.animation.duration=1e3),void 0===t.animation.easingFunction&&(t.animation.easingFunction="easeInOutQuad"),void this.animateView(t))}},{key:"animateView",value:function(t){if(void 0!==t){this.animationEasingFunction=t.animation.easingFunction,this.releaseNode(),t.locked===!0&&(this.lockedOnNodeId=t.lockedOnNode,this.lockedOnNodeOffset=t.offset),0!=this.easingTime&&this._transitionRedraw(!0),this.sourceScale=this.body.view.scale,this.sourceTranslation=this.body.view.translation,this.targetScale=t.scale,this.body.view.scale=this.targetScale;var e=this.canvas.DOMtoCanvas({x:.5*this.canvas.frame.canvas.clientWidth,y:.5*this.canvas.frame.canvas.clientHeight}),i={x:e.x-t.position.x,y:e.y-t.position.y};this.targetTranslation={x:this.sourceTranslation.x+i.x*this.targetScale+t.offset.x,y:this.sourceTranslation.y+i.y*this.targetScale+t.offset.y},0===t.animation.duration?void 0!=this.lockedOnNodeId?(this.viewFunction=this._lockedRedraw.bind(this),this.body.emitter.on("initRedraw",this.viewFunction)):(this.body.view.scale=this.targetScale,this.body.view.translation=this.targetTranslation,this.body.emitter.emit("_requestRedraw")):(this.animationSpeed=1/(60*t.animation.duration*.001)||1/60,this.animationEasingFunction=t.animation.easingFunction,this.viewFunction=this._transitionRedraw.bind(this),this.body.emitter.on("initRedraw",this.viewFunction),this.body.emitter.emit("_startRendering"))}}},{key:"_lockedRedraw",value:function(){var t={x:this.body.nodes[this.lockedOnNodeId].x,y:this.body.nodes[this.lockedOnNodeId].y},e=this.canvas.DOMtoCanvas({x:.5*this.canvas.frame.canvas.clientWidth,y:.5*this.canvas.frame.canvas.clientHeight}),i={x:e.x-t.x,y:e.y-t.y},o=this.body.view.translation,n={x:o.x+i.x*this.body.view.scale+this.lockedOnNodeOffset.x,y:o.y+i.y*this.body.view.scale+this.lockedOnNodeOffset.y};this.body.view.translation=n}},{key:"releaseNode",value:function(){void 0!==this.lockedOnNodeId&&void 0!==this.viewFunction&&(this.body.emitter.off("initRedraw",this.viewFunction),this.lockedOnNodeId=void 0,this.lockedOnNodeOffset=void 0)}},{key:"_transitionRedraw",value:function(){var t=arguments.length<=0||void 0===arguments[0]?!1:arguments[0];this.easingTime+=this.animationSpeed,this.easingTime=t===!0?1:this.easingTime;var e=h.easingFunctions[this.animationEasingFunction](this.easingTime);this.body.view.scale=this.sourceScale+(this.targetScale-this.sourceScale)*e,this.body.view.translation={x:this.sourceTranslation.x+(this.targetTranslation.x-this.sourceTranslation.x)*e,y:this.sourceTranslation.y+(this.targetTranslation.y-this.sourceTranslation.y)*e},this.easingTime>=1&&(this.body.emitter.off("initRedraw",this.viewFunction),this.easingTime=0,void 0!=this.lockedOnNodeId&&(this.viewFunction=this._lockedRedraw.bind(this),this.body.emitter.on("initRedraw",this.viewFunction)),this.body.emitter.emit("animationFinished"))}},{key:"getScale",value:function(){return this.body.view.scale}},{key:"getViewPosition",value:function(){return this.canvas.DOMtoCanvas({x:.5*this.canvas.frame.canvas.clientWidth,y:.5*this.canvas.frame.canvas.clientHeight})}}]),t}();e["default"]=d,t.exports=e["default"]},function(t,e,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<e.length;i++){var o=e[i];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(t,o.key,o)}}return function(e,i,o){return i&&t(e.prototype,i),o&&t(e,o),e}}(),r=i(106),a=o(r),h=i(107),d=o(h),l=i(1),u=function(){function t(e,i,o){n(this,t),this.body=e,this.canvas=i,this.selectionHandler=o,this.navigationHandler=new a["default"](e,i),this.body.eventListeners.onTap=this.onTap.bind(this),this.body.eventListeners.onTouch=this.onTouch.bind(this),this.body.eventListeners.onDoubleTap=this.onDoubleTap.bind(this),this.body.eventListeners.onHold=this.onHold.bind(this),this.body.eventListeners.onDragStart=this.onDragStart.bind(this),this.body.eventListeners.onDrag=this.onDrag.bind(this),this.body.eventListeners.onDragEnd=this.onDragEnd.bind(this),this.body.eventListeners.onMouseWheel=this.onMouseWheel.bind(this),this.body.eventListeners.onPinch=this.onPinch.bind(this),this.body.eventListeners.onMouseMove=this.onMouseMove.bind(this),this.body.eventListeners.onRelease=this.onRelease.bind(this),this.body.eventListeners.onContext=this.onContext.bind(this),this.touchTime=0,this.drag={},this.pinch={},this.popup=void 0,this.popupObj=void 0,this.popupTimer=void 0,this.body.functions.getPointer=this.getPointer.bind(this),this.options={},this.defaultOptions={dragNodes:!0,dragView:!0,hover:!1,keyboard:{enabled:!1,speed:{x:10,y:10,zoom:.02},bindToWindow:!0},navigationButtons:!1,tooltipDelay:300,zoomView:!0},l.extend(this.options,this.defaultOptions),this.bindEventListeners()}return s(t,[{key:"bindEventListeners",value:function(){var t=this;this.body.emitter.on("destroy",function(){clearTimeout(t.popupTimer),delete t.body.functions.getPointer})}},{key:"setOptions",value:function(t){if(void 0!==t){var e=["hideEdgesOnDrag","hideNodesOnDrag","keyboard","multiselect","selectable","selectConnectedEdges"];l.selectiveNotDeepExtend(e,this.options,t),l.mergeOptions(this.options,t,"keyboard"),t.tooltip&&(l.extend(this.options.tooltip,t.tooltip),t.tooltip.color&&(this.options.tooltip.color=l.parseColor(t.tooltip.color)))}this.navigationHandler.setOptions(this.options)}},{key:"getPointer",value:function(t){return{x:t.x-l.getAbsoluteLeft(this.canvas.frame.canvas),y:t.y-l.getAbsoluteTop(this.canvas.frame.canvas)}}},{key:"onTouch",value:function(t){(new Date).valueOf()-this.touchTime>50&&(this.drag.pointer=this.getPointer(t.center),this.drag.pinched=!1,this.pinch.scale=this.body.view.scale,this.touchTime=(new Date).valueOf())}},{key:"onTap",value:function(t){var e=this.getPointer(t.center),i=this.selectionHandler.options.multiselect&&(t.changedPointers[0].ctrlKey||t.changedPointers[0].metaKey);this.checkSelectionChanges(e,t,i),this.selectionHandler._generateClickEvent("click",t,e)}},{key:"onDoubleTap",value:function(t){var e=this.getPointer(t.center);this.selectionHandler._generateClickEvent("doubleClick",t,e)}},{key:"onHold",value:function(t){var e=this.getPointer(t.center),i=this.selectionHandler.options.multiselect;this.checkSelectionChanges(e,t,i),this.selectionHandler._generateClickEvent("click",t,e),this.selectionHandler._generateClickEvent("hold",t,e)}},{key:"onRelease",value:function(t){if((new Date).valueOf()-this.touchTime>10){var e=this.getPointer(t.center);this.selectionHandler._generateClickEvent("release",t,e),this.touchTime=(new Date).valueOf()}}},{key:"onContext",value:function(t){var e=this.getPointer({x:t.clientX,y:t.clientY});this.selectionHandler._generateClickEvent("oncontext",t,e)}},{key:"checkSelectionChanges",value:function(t,e){var i=arguments.length<=2||void 0===arguments[2]?!1:arguments[2],o=this.selectionHandler._getSelectedEdgeCount(),n=this.selectionHandler._getSelectedNodeCount(),s=this.selectionHandler.getSelection(),r=void 0;r=i===!0?this.selectionHandler.selectAdditionalOnPoint(t):this.selectionHandler.selectOnPoint(t);var a=this.selectionHandler._getSelectedEdgeCount(),h=this.selectionHandler._getSelectedNodeCount(),d=this.selectionHandler.getSelection(),l=this._determineIfDifferent(s,d),u=l.nodesChanges,c=l.edgesChanges,p=!1;h-n>0?(this.selectionHandler._generateClickEvent("selectNode",e,t),r=!0,p=!0):0>h-n?(this.selectionHandler._generateClickEvent("deselectNode",e,t,s),r=!0):h===n&&u===!0&&(this.selectionHandler._generateClickEvent("deselectNode",e,t,s),this.selectionHandler._generateClickEvent("selectNode",e,t),p=!0,r=!0),a-o>0&&p===!1?(this.selectionHandler._generateClickEvent("selectEdge",e,t),r=!0):0>a-o?(this.selectionHandler._generateClickEvent("deselectEdge",e,t,s),r=!0):a===o&&c===!0&&(this.selectionHandler._generateClickEvent("deselectEdge",e,t,s),this.selectionHandler._generateClickEvent("selectEdge",e,t),r=!0),r===!0&&this.selectionHandler._generateClickEvent("select",e,t)}},{key:"_determineIfDifferent",value:function(t,e){for(var i=!1,o=!1,n=0;n<t.nodes.length;n++)-1===e.nodes.indexOf(t.nodes[n])&&(i=!0);for(var n=0;n<e.nodes.length;n++)-1===t.nodes.indexOf(t.nodes[n])&&(i=!0);for(var n=0;n<t.edges.length;n++)-1===e.edges.indexOf(t.edges[n])&&(o=!0);for(var n=0;n<e.edges.length;n++)-1===t.edges.indexOf(t.edges[n])&&(o=!0);return{nodesChanges:i,edgesChanges:o}}},{key:"onDragStart",value:function(t){void 0===this.drag.pointer&&this.onTouch(t);var e=this.selectionHandler.getNodeAt(this.drag.pointer);if(this.drag.dragging=!0,this.drag.selection=[],this.drag.translation=l.extend({},this.body.view.translation),this.drag.nodeId=void 0,void 0!==e&&this.options.dragNodes===!0){this.drag.nodeId=e.id,e.isSelected()===!1&&(this.selectionHandler.unselectAll(),this.selectionHandler.selectObject(e)),this.selectionHandler._generateClickEvent("dragStart",t,this.drag.pointer);var i=this.selectionHandler.selectionObj.nodes;for(var o in i)if(i.hasOwnProperty(o)){var n=i[o],s={id:n.id,node:n,x:n.x,y:n.y,xFixed:n.options.fixed.x,yFixed:n.options.fixed.y};n.options.fixed.x=!0,n.options.fixed.y=!0,this.drag.selection.push(s)}}else this.selectionHandler._generateClickEvent("dragStart",t,this.drag.pointer,void 0,!0)}},{key:"onDrag",value:function(t){var e=this;if(this.drag.pinched!==!0){this.body.emitter.emit("unlockNode");var i=this.getPointer(t.center),o=this.drag.selection;if(o&&o.length&&this.options.dragNodes===!0)!function(){e.selectionHandler._generateClickEvent("dragging",t,i);var n=i.x-e.drag.pointer.x,s=i.y-e.drag.pointer.y;o.forEach(function(t){var i=t.node;t.xFixed===!1&&(i.x=e.canvas._XconvertDOMtoCanvas(e.canvas._XconvertCanvasToDOM(t.x)+n)),t.yFixed===!1&&(i.y=e.canvas._YconvertDOMtoCanvas(e.canvas._YconvertCanvasToDOM(t.y)+s))}),e.body.emitter.emit("startSimulation")}();else if(this.options.dragView===!0){if(this.selectionHandler._generateClickEvent("dragging",t,i,void 0,!0),void 0===this.drag.pointer)return void this.onDragStart(t);var n=i.x-this.drag.pointer.x,s=i.y-this.drag.pointer.y;this.body.view.translation={x:this.drag.translation.x+n,y:this.drag.translation.y+s},this.body.emitter.emit("_redraw")}}}},{key:"onDragEnd",value:function(t){this.drag.dragging=!1;var e=this.drag.selection;e&&e.length?(e.forEach(function(t){t.node.options.fixed.x=t.xFixed,t.node.options.fixed.y=t.yFixed}),this.selectionHandler._generateClickEvent("dragEnd",t,this.getPointer(t.center)),this.body.emitter.emit("startSimulation")):(this.selectionHandler._generateClickEvent("dragEnd",t,this.getPointer(t.center),void 0,!0),this.body.emitter.emit("_requestRedraw"))}},{key:"onPinch",value:function(t){var e=this.getPointer(t.center);this.drag.pinched=!0,void 0===this.pinch.scale&&(this.pinch.scale=1);var i=this.pinch.scale*t.scale;this.zoom(i,e)}},{key:"zoom",value:function(t,e){if(this.options.zoomView===!0){var i=this.body.view.scale;1e-5>t&&(t=1e-5),t>10&&(t=10);var o=void 0;void 0!==this.drag&&this.drag.dragging===!0&&(o=this.canvas.DOMtoCanvas(this.drag.pointer));var n=this.body.view.translation,s=t/i,r=(1-s)*e.x+n.x*s,a=(1-s)*e.y+n.y*s;if(this.body.view.scale=t,this.body.view.translation={x:r,y:a},void 0!=o){var h=this.canvas.canvasToDOM(o);this.drag.pointer.x=h.x,this.drag.pointer.y=h.y}this.body.emitter.emit("_requestRedraw"),t>i?this.body.emitter.emit("zoom",{direction:"+",scale:this.body.view.scale}):this.body.emitter.emit("zoom",{direction:"-",scale:this.body.view.scale})}}},{key:"onMouseWheel",value:function(t){var e=0;if(t.wheelDelta?e=t.wheelDelta/120:t.detail&&(e=-t.detail/3),0!==e){var i=this.body.view.scale,o=e/10;0>e&&(o/=1-o),i*=1+o;var n=this.getPointer({x:t.clientX,y:t.clientY});this.zoom(i,n)}t.preventDefault()}},{key:"onMouseMove",value:function(t){var e=this,i=this.getPointer({x:t.clientX,y:t.clientY}),o=!1;if(void 0!==this.popup&&(this.popup.hidden===!1&&this._checkHidePopup(i),this.popup.hidden===!1&&(o=!0,this.popup.setPosition(i.x+3,i.y-5),this.popup.show())),this.options.keyboard.bindToWindow===!1&&this.options.keyboard.enabled===!0&&this.canvas.frame.focus(),o===!1&&(void 0!==this.popupTimer&&(clearInterval(this.popupTimer),this.popupTimer=void 0),this.drag.dragging||(this.popupTimer=setTimeout(function(){
-return e._checkShowPopup(i)},this.options.tooltipDelay))),this.options.hover===!0){var n=this.selectionHandler.getNodeAt(i);void 0===n&&(n=this.selectionHandler.getEdgeAt(i)),this.selectionHandler.hoverObject(n)}}},{key:"_checkShowPopup",value:function(t){var e=this.canvas._XconvertDOMtoCanvas(t.x),i=this.canvas._YconvertDOMtoCanvas(t.y),o={left:e,top:i,right:e,bottom:i},n=void 0===this.popupObj?void 0:this.popupObj.id,s=!1,r="node";if(void 0===this.popupObj){for(var a=this.body.nodeIndices,h=this.body.nodes,l=void 0,u=[],c=0;c<a.length;c++)l=h[a[c]],l.isOverlappingWith(o)===!0&&void 0!==l.getTitle()&&u.push(a[c]);u.length>0&&(this.popupObj=h[u[u.length-1]],s=!0)}if(void 0===this.popupObj&&s===!1){for(var p=this.body.edgeIndices,f=this.body.edges,m=void 0,v=[],c=0;c<p.length;c++)m=f[p[c]],m.isOverlappingWith(o)===!0&&m.connected===!0&&void 0!==m.getTitle()&&v.push(p[c]);v.length>0&&(this.popupObj=f[v[v.length-1]],r="edge")}void 0!==this.popupObj?this.popupObj.id!==n&&(void 0===this.popup&&(this.popup=new d["default"](this.canvas.frame)),this.popup.popupTargetType=r,this.popup.popupTargetId=this.popupObj.id,this.popup.setPosition(t.x+3,t.y-5),this.popup.setText(this.popupObj.getTitle()),this.popup.show(),this.body.emitter.emit("showPopup",this.popupObj.id)):void 0!==this.popup&&(this.popup.hide(),this.body.emitter.emit("hidePopup"))}},{key:"_checkHidePopup",value:function(t){var e=this.selectionHandler._pointerToPositionObject(t),i=!1;if("node"===this.popup.popupTargetType){if(void 0!==this.body.nodes[this.popup.popupTargetId]&&(i=this.body.nodes[this.popup.popupTargetId].isOverlappingWith(e),i===!0)){var o=this.selectionHandler.getNodeAt(t);i=o.id===this.popup.popupTargetId}}else void 0===this.selectionHandler.getNodeAt(t)&&void 0!==this.body.edges[this.popup.popupTargetId]&&(i=this.body.edges[this.popup.popupTargetId].isOverlappingWith(e));i===!1&&(this.popupObj=void 0,this.popup.hide(),this.body.emitter.emit("hidePopup"))}}]),t}();e["default"]=u,t.exports=e["default"]},function(t,e,i){function o(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(e,"__esModule",{value:!0});var n=function(){function t(t,e){for(var i=0;i<e.length;i++){var o=e[i];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(t,o.key,o)}}return function(e,i,o){return i&&t(e.prototype,i),o&&t(e,o),e}}(),s=(i(1),i(20)),r=i(25),a=i(41),h=function(){function t(e,i){var n=this;o(this,t),this.body=e,this.canvas=i,this.iconsCreated=!1,this.navigationHammers=[],this.boundFunctions={},this.touchTime=0,this.activated=!1,this.body.emitter.on("activate",function(){n.activated=!0,n.configureKeyboardBindings()}),this.body.emitter.on("deactivate",function(){n.activated=!1,n.configureKeyboardBindings()}),this.body.emitter.on("destroy",function(){void 0!==n.keycharm&&n.keycharm.destroy()}),this.options={}}return n(t,[{key:"setOptions",value:function(t){void 0!==t&&(this.options=t,this.create())}},{key:"create",value:function(){this.options.navigationButtons===!0?this.iconsCreated===!1&&this.loadNavigationElements():this.iconsCreated===!0&&this.cleanNavigation(),this.configureKeyboardBindings()}},{key:"cleanNavigation",value:function(){if(0!=this.navigationHammers.length){for(var t=0;t<this.navigationHammers.length;t++)this.navigationHammers[t].destroy();this.navigationHammers=[]}this.navigationDOM&&this.navigationDOM.wrapper&&this.navigationDOM.wrapper.parentNode&&this.navigationDOM.wrapper.parentNode.removeChild(this.navigationDOM.wrapper),this.iconsCreated=!1}},{key:"loadNavigationElements",value:function(){var t=this;this.cleanNavigation(),this.navigationDOM={};var e=["up","down","left","right","zoomIn","zoomOut","zoomExtends"],i=["_moveUp","_moveDown","_moveLeft","_moveRight","_zoomIn","_zoomOut","_fit"];this.navigationDOM.wrapper=document.createElement("div"),this.navigationDOM.wrapper.className="vis-navigation",this.canvas.frame.appendChild(this.navigationDOM.wrapper);for(var o=0;o<e.length;o++){this.navigationDOM[e[o]]=document.createElement("div"),this.navigationDOM[e[o]].className="vis-button vis-"+e[o],this.navigationDOM.wrapper.appendChild(this.navigationDOM[e[o]]);var n=new s(this.navigationDOM[e[o]]);"_fit"===i[o]?r.onTouch(n,this._fit.bind(this)):r.onTouch(n,this.bindToRedraw.bind(this,i[o])),this.navigationHammers.push(n)}var a=new s(this.canvas.frame);r.onRelease(a,function(){t._stopMovement()}),this.navigationHammers.push(a),this.iconsCreated=!0}},{key:"bindToRedraw",value:function(t){void 0===this.boundFunctions[t]&&(this.boundFunctions[t]=this[t].bind(this),this.body.emitter.on("initRedraw",this.boundFunctions[t]),this.body.emitter.emit("_startRendering"))}},{key:"unbindFromRedraw",value:function(t){void 0!==this.boundFunctions[t]&&(this.body.emitter.off("initRedraw",this.boundFunctions[t]),this.body.emitter.emit("_stopRendering"),delete this.boundFunctions[t])}},{key:"_fit",value:function(){(new Date).valueOf()-this.touchTime>700&&(this.body.emitter.emit("fit",{duration:700}),this.touchTime=(new Date).valueOf())}},{key:"_stopMovement",value:function(){for(var t in this.boundFunctions)this.boundFunctions.hasOwnProperty(t)&&(this.body.emitter.off("initRedraw",this.boundFunctions[t]),this.body.emitter.emit("_stopRendering"));this.boundFunctions={}}},{key:"_moveUp",value:function(){this.body.view.translation.y+=this.options.keyboard.speed.y}},{key:"_moveDown",value:function(){this.body.view.translation.y-=this.options.keyboard.speed.y}},{key:"_moveLeft",value:function(){this.body.view.translation.x+=this.options.keyboard.speed.x}},{key:"_moveRight",value:function(){this.body.view.translation.x-=this.options.keyboard.speed.x}},{key:"_zoomIn",value:function(){this.body.view.scale*=1+this.options.keyboard.speed.zoom,this.body.emitter.emit("zoom",{direction:"+",scale:this.body.view.scale})}},{key:"_zoomOut",value:function(){this.body.view.scale/=1+this.options.keyboard.speed.zoom,this.body.emitter.emit("zoom",{direction:"-",scale:this.body.view.scale})}},{key:"configureKeyboardBindings",value:function(){var t=this;void 0!==this.keycharm&&this.keycharm.destroy(),this.options.keyboard.enabled===!0&&(this.options.keyboard.bindToWindow===!0?this.keycharm=a({container:window,preventDefault:!0}):this.keycharm=a({container:this.canvas.frame,preventDefault:!0}),this.keycharm.reset(),this.activated===!0&&(this.keycharm.bind("up",function(){t.bindToRedraw("_moveUp")},"keydown"),this.keycharm.bind("down",function(){t.bindToRedraw("_moveDown")},"keydown"),this.keycharm.bind("left",function(){t.bindToRedraw("_moveLeft")},"keydown"),this.keycharm.bind("right",function(){t.bindToRedraw("_moveRight")},"keydown"),this.keycharm.bind("=",function(){t.bindToRedraw("_zoomIn")},"keydown"),this.keycharm.bind("num+",function(){t.bindToRedraw("_zoomIn")},"keydown"),this.keycharm.bind("num-",function(){t.bindToRedraw("_zoomOut")},"keydown"),this.keycharm.bind("-",function(){t.bindToRedraw("_zoomOut")},"keydown"),this.keycharm.bind("[",function(){t.bindToRedraw("_zoomOut")},"keydown"),this.keycharm.bind("]",function(){t.bindToRedraw("_zoomIn")},"keydown"),this.keycharm.bind("pageup",function(){t.bindToRedraw("_zoomIn")},"keydown"),this.keycharm.bind("pagedown",function(){t.bindToRedraw("_zoomOut")},"keydown"),this.keycharm.bind("up",function(){t.unbindFromRedraw("_moveUp")},"keyup"),this.keycharm.bind("down",function(){t.unbindFromRedraw("_moveDown")},"keyup"),this.keycharm.bind("left",function(){t.unbindFromRedraw("_moveLeft")},"keyup"),this.keycharm.bind("right",function(){t.unbindFromRedraw("_moveRight")},"keyup"),this.keycharm.bind("=",function(){t.unbindFromRedraw("_zoomIn")},"keyup"),this.keycharm.bind("num+",function(){t.unbindFromRedraw("_zoomIn")},"keyup"),this.keycharm.bind("num-",function(){t.unbindFromRedraw("_zoomOut")},"keyup"),this.keycharm.bind("-",function(){t.unbindFromRedraw("_zoomOut")},"keyup"),this.keycharm.bind("[",function(){t.unbindFromRedraw("_zoomOut")},"keyup"),this.keycharm.bind("]",function(){t.unbindFromRedraw("_zoomIn")},"keyup"),this.keycharm.bind("pageup",function(){t.unbindFromRedraw("_zoomIn")},"keyup"),this.keycharm.bind("pagedown",function(){t.unbindFromRedraw("_zoomOut")},"keyup")))}}]),t}();e["default"]=h,t.exports=e["default"]},function(t,e){function i(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(e,"__esModule",{value:!0});var o=function(){function t(t,e){for(var i=0;i<e.length;i++){var o=e[i];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(t,o.key,o)}}return function(e,i,o){return i&&t(e.prototype,i),o&&t(e,o),e}}(),n=function(){function t(e){i(this,t),this.container=e,this.x=0,this.y=0,this.padding=5,this.hidden=!1,this.frame=document.createElement("div"),this.frame.className="vis-network-tooltip",this.container.appendChild(this.frame)}return o(t,[{key:"setPosition",value:function(t,e){this.x=parseInt(t),this.y=parseInt(e)}},{key:"setText",value:function(t){t instanceof Element?(this.frame.innerHTML="",this.frame.appendChild(t)):this.frame.innerHTML=t}},{key:"show",value:function(t){if(void 0===t&&(t=!0),t===!0){var e=this.frame.clientHeight,i=this.frame.clientWidth,o=this.frame.parentNode.clientHeight,n=this.frame.parentNode.clientWidth,s=this.y-e;s+e+this.padding>o&&(s=o-e-this.padding),s<this.padding&&(s=this.padding);var r=this.x;r+i+this.padding>n&&(r=n-i-this.padding),r<this.padding&&(r=this.padding),this.frame.style.left=r+"px",this.frame.style.top=s+"px",this.frame.style.visibility="visible",this.hidden=!1}else this.hide()}},{key:"hide",value:function(){this.hidden=!0,this.frame.style.visibility="hidden"}}]),t}();e["default"]=n,t.exports=e["default"]},function(t,e,i){function o(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(e,"__esModule",{value:!0});var n=function(){function t(t,e){for(var i=0;i<e.length;i++){var o=e[i];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(t,o.key,o)}}return function(e,i,o){return i&&t(e.prototype,i),o&&t(e,o),e}}(),s=i(62),r=i(82),a=i(1),h=function(){function t(e,i){var n=this;o(this,t),this.body=e,this.canvas=i,this.selectionObj={nodes:[],edges:[]},this.hoverObj={nodes:{},edges:{}},this.options={},this.defaultOptions={multiselect:!1,selectable:!0,selectConnectedEdges:!0,hoverConnectedEdges:!0},a.extend(this.options,this.defaultOptions),this.body.emitter.on("_dataChanged",function(){n.updateSelection()})}return n(t,[{key:"setOptions",value:function(t){if(void 0!==t){var e=["multiselect","hoverConnectedEdges","selectable","selectConnectedEdges"];a.selectiveDeepExtend(e,this.options,t)}}},{key:"selectOnPoint",value:function(t){var e=!1;if(this.options.selectable===!0){var i=this.getNodeAt(t)||this.getEdgeAt(t);this.unselectAll(),void 0!==i&&(e=this.selectObject(i)),this.body.emitter.emit("_requestRedraw")}return e}},{key:"selectAdditionalOnPoint",value:function(t){var e=!1;if(this.options.selectable===!0){var i=this.getNodeAt(t)||this.getEdgeAt(t);void 0!==i&&(e=!0,i.isSelected()===!0?this.deselectObject(i):this.selectObject(i),this.body.emitter.emit("_requestRedraw"))}return e}},{key:"_generateClickEvent",value:function(t,e,i,o){var n=arguments.length<=4||void 0===arguments[4]?!1: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]?this.options.selectConnectedEdges:arguments[1];return void 0!==t?(t instanceof s&&e===!0&&this._selectConnectedEdges(t),t.select(),this._addToSelection(t),!0):!1}},{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;o<this.body.nodeIndices.length;o++){var n=this.body.nodeIndices[o];i[n].isOverlappingWith(t)&&e.push(n)}return e}},{key:"_pointerToPositionObject",value:function(t){var e=this.canvas.DOMtoCanvas(t);return{left:e.x-1,top:e.y+1,right:e.x+1,bottom:e.y-1}}},{key:"getNodeAt",value:function(t){var e=arguments.length<=1||void 0===arguments[1]?!0: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;o<this.body.edgeIndices.length;o++){var n=this.body.edgeIndices[o];i[n].isOverlappingWith(t)&&e.push(n)}}},{key:"_getAllEdgesOverlappingWith",value:function(t){var e=[];return this._getEdgesOverlappingWith(t,e),e}},{key:"getEdgeAt",value:function(t){var e=arguments.length<=1||void 0===arguments[1]?!0:arguments[1],i=this._pointerToPositionObject(t),o=this._getAllEdgesOverlappingWith(i);return o.length>0?e===!0?this.body.edges[o[o.length-1]]:o[o.length-1]:void 0}},{key:"_addToSelection",value:function(t){t instanceof s?this.selectionObj.nodes[t.id]=t:this.selectionObj.edges[t.id]=t}},{key:"_addToHover",value:function(t){t instanceof s?this.hoverObj.nodes[t.id]=t:this.hoverObj.edges[t.id]=t}},{key:"_removeFromSelection",value:function(t){t instanceof s?(delete this.selectionObj.nodes[t.id],this._unselectConnectedEdges(t)):delete this.selectionObj.edges[t.id]}},{key:"unselectAll",value:function(){for(var t in this.selectionObj.nodes)this.selectionObj.nodes.hasOwnProperty(t)&&this.selectionObj.nodes[t].unselect();for(var e in this.selectionObj.edges)this.selectionObj.edges.hasOwnProperty(e)&&this.selectionObj.edges[e].unselect();this.selectionObj={nodes:{},edges:{}}}},{key:"_getSelectedNodeCount",value:function(){var t=0;for(var e in this.selectionObj.nodes)this.selectionObj.nodes.hasOwnProperty(e)&&(t+=1);return t}},{key:"_getSelectedNode",value:function(){for(var t in this.selectionObj.nodes)if(this.selectionObj.nodes.hasOwnProperty(t))return this.selectionObj.nodes[t]}},{key:"_getSelectedEdge",value:function(){for(var t in this.selectionObj.edges)if(this.selectionObj.edges.hasOwnProperty(t))return this.selectionObj.edges[t]}},{key:"_getSelectedEdgeCount",value:function(){var t=0;for(var e in this.selectionObj.edges)this.selectionObj.edges.hasOwnProperty(e)&&(t+=1);return t}},{key:"_getSelectedObjectCount",value:function(){var t=0;for(var e in this.selectionObj.nodes)this.selectionObj.nodes.hasOwnProperty(e)&&(t+=1);for(var i in this.selectionObj.edges)this.selectionObj.edges.hasOwnProperty(i)&&(t+=1);return t}},{key:"_selectionIsEmpty",value:function(){for(var t in this.selectionObj.nodes)if(this.selectionObj.nodes.hasOwnProperty(t))return!1;for(var e in this.selectionObj.edges)if(this.selectionObj.edges.hasOwnProperty(e))return!1;return!0}},{key:"_clusterInSelection",value:function(){for(var t in this.selectionObj.nodes)if(this.selectionObj.nodes.hasOwnProperty(t)&&this.selectionObj.nodes[t].clusterSize>1)return!0;return!1}},{key:"_selectConnectedEdges",value:function(t){for(var e=0;e<t.edges.length;e++){var i=t.edges[e];i.select(),this._addToSelection(i)}}},{key:"_hoverConnectedEdges",value:function(t){for(var e=0;e<t.edges.length;e++){var i=t.edges[e];i.hover=!0,this._addToHover(i)}}},{key:"_unselectConnectedEdges",value:function(t){for(var e=0;e<t.edges.length;e++){var i=t.edges[e];i.unselect(),this._removeFromSelection(i)}}},{key:"blurObject",value:function(t){t.hover===!0&&(t.hover=!1,t instanceof s?this.body.emitter.emit("blurNode",{node:t.id}):this.body.emitter.emit("blurEdge",{edge:t.id}))}},{key:"hoverObject",value:function(t){var e=!1;for(var i in this.hoverObj.nodes)this.hoverObj.nodes.hasOwnProperty(i)&&(void 0===t||t instanceof s&&t.id!=i||t instanceof r)&&(this.blurObject(this.hoverObj.nodes[i]),delete this.hoverObj.nodes[i],e=!0);for(var o in this.hoverObj.edges)this.hoverObj.edges.hasOwnProperty(o)&&(e===!0?(this.hoverObj.edges[o].hover=!1,delete this.hoverObj.edges[o]):void 0===t&&(this.blurObject(this.hoverObj.edges[o]),delete this.hoverObj.edges[o],e=!0));void 0!==t&&(t.hover===!1&&(t.hover=!0,this._addToHover(t),e=!0,t instanceof s?this.body.emitter.emit("hoverNode",{node:t.id}):this.body.emitter.emit("hoverEdge",{edge:t.id})),t instanceof s&&this.options.hoverConnectedEdges===!0&&this._hoverConnectedEdges(t)),e===!0&&this.body.emitter.emit("_requestRedraw")}},{key:"getSelection",value:function(){var t=this.getSelectedNodes(),e=this.getSelectedEdges();return{nodes:t,edges:e}}},{key:"getSelectedNodes",value:function(){var t=[];if(this.options.selectable===!0)for(var e in this.selectionObj.nodes)this.selectionObj.nodes.hasOwnProperty(e)&&t.push(e);return t}},{key:"getSelectedEdges",value:function(){var t=[];if(this.options.selectable===!0)for(var e in this.selectionObj.edges)this.selectionObj.edges.hasOwnProperty(e)&&t.push(e);return t}},{key:"setSelection",value:function(t){var e=arguments.length<=1||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;i<t.nodes.length;i++){o=t.nodes[i];var n=this.body.nodes[o];if(!n)throw new RangeError('Node with id "'+o+'" not found');this.selectObject(n,e.highlightEdges)}if(t.edges)for(i=0;i<t.edges.length;i++){o=t.edges[i];var s=this.body.edges[o];if(!s)throw new RangeError('Edge with id "'+o+'" not found');this.selectObject(s)}this.body.emitter.emit("_requestRedraw")}},{key:"selectNodes",value:function(t){var e=arguments.length<=1||void 0===arguments[1]?!0: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"]=h,t.exports=e["default"]},function(t,e,i){function o(t){return t&&t.__esModule?t:{"default":t}}function n(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(e,"__esModule",{value:!0});var s=function(){function t(t,e){for(var i=0;i<e.length;i++){var o=e[i];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(t,o.key,o)}}return function(e,i,o){return i&&t(e.prototype,i),o&&t(e,o),e}}(),r=i(100),a=o(r),h=i(1),d=function(){function t(e){n(this,t),this.body=e,this.initialRandomSeed=Math.round(1e6*Math.random()),this.randomSeed=this.initialRandomSeed,this.options={},this.optionsBackup={},this.defaultOptions={randomSeed:void 0,improvedLayout:!0,hierarchical:{enabled:!1,levelSeparation:150,direction:"UD",sortMethod:"hubsize"}},h.extend(this.options,this.defaultOptions),this.lastNodeOnLevel={},this.hierarchicalParents={},this.hierarchicalChildren={},this.bindEventListeners()}return s(t,[{key:"bindEventListeners",value:function(){var t=this;this.body.emitter.on("_dataChanged",function(){t.setupHierarchicalLayout()}),this.body.emitter.on("_dataLoaded",function(){t.layoutNetwork()}),this.body.emitter.on("_resetHierarchicalLayout",function(){t.setupHierarchicalLayout()})}},{key:"setOptions",value:function(t,e){if(void 0!==t){var i=this.options.hierarchical.enabled;if(h.selectiveDeepExtend(["randomSeed","improvedLayout"],this.options,t),h.mergeOptions(this.options,t,"hierarchical"),void 0!==t.randomSeed&&(this.initialRandomSeed=t.randomSeed),this.options.hierarchical.enabled===!0)return i===!0&&this.body.emitter.emit("refresh",!0),"RL"===this.options.hierarchical.direction||"DU"===this.options.hierarchical.direction?this.options.hierarchical.levelSeparation>0&&(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"),h.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={solver:"hierarchicalRepulsion"},this.optionsBackup.physics={solver:"barnesHut"}):"object"==typeof t.physics?(this.optionsBackup.physics={solver:"barnesHut"},void 0!==t.physics.solver&&(this.optionsBackup.physics={solver:t.physics.solver}),t.physics.solver="hierarchicalRepulsion"):t.physics!==!1&&(this.optionsBackup.physics={solver:"barnesHut"},t.physics.solver="hierarchicalRepulsion");var e="horizontal";("RL"===this.options.hierarchical.direction||"LR"===this.options.hierarchical.direction)&&(e="vertical"),void 0===t.edges?(this.optionsBackup.edges={smooth:{enabled:!0,type:"dynamic"}},t.edges={smooth:!1}):void 0===t.edges.smooth?(this.optionsBackup.edges={smooth:{enabled:!0,type:"dynamic"}},t.edges.smooth=!1):"boolean"==typeof t.edges.smooth?(this.optionsBackup.edges={smooth:t.edges.smooth},t.edges.smooth={enabled:t.edges.smooth,type:e}):(void 0!==t.edges.smooth.type&&"dynamic"!==t.edges.smooth.type&&(e=t.edges.smooth.type),this.optionsBackup.edges={smooth:void 0===t.edges.smooth.enabled?!0:t.edges.smooth.enabled,type:void 0===t.edges.smooth.type?"dynamic":t.edges.smooth.type,roundness:void 0===t.edges.smooth.roundness?.5:t.edges.smooth.roundness,forceDirection:void 0===t.edges.smooth.forceDirection?!1:t.edges.smooth.forceDirection},t.edges.smooth={enabled:void 0===t.edges.smooth.enabled?!0:t.edges.smooth.enabled,type:e,roundness:void 0===t.edges.smooth.roundness?.5:t.edges.smooth.roundness,forceDirection:void 0===t.edges.smooth.forceDirection?!1:t.edges.smooth.forceDirection}),this.body.emitter.emit("_forceDisableDynamicCurves",e)}return t}},{key:"seededRandom",value:function(){var t=1e4*Math.sin(this.randomSeed++);return t-Math.floor(t)}},{key:"positionInitially",value:function(t){if(this.options.hierarchical.enabled!==!0){this.randomSeed=this.initialRandomSeed;for(var e=0;e<t.length;e++){var i=t[e],o=1*t.length+10,n=2*Math.PI*this.seededRandom();void 0===i.x&&(i.x=o*Math.cos(n)),void 0===i.y&&(i.y=o*Math.sin(n))}}}},{key:"layoutNetwork",value:function(){if(this.options.hierarchical.enabled!==!0&&this.options.improvedLayout===!0){for(var t=0,e=0;e<this.body.nodeIndices.length;e++){var i=this.body.nodes[this.body.nodeIndices[e]];i.predefinedPosition===!0&&(t+=1)}if(t<.5*this.body.nodeIndices.length){var o=10,n=0,s=100;if(this.body.nodeIndices.length>s){for(var r=this.body.nodeIndices.length;this.body.nodeIndices.length>s;){n+=1;var a=this.body.nodeIndices.length;n%3===0?this.body.modules.clustering.clusterBridges():this.body.modules.clustering.clusterOutliers();var h=this.body.nodeIndices.length;if(a==h&&n%3!==0||n>o)return this._declusterAll(),this.body.emitter.emit("_layoutFailed"),void console.info("This network could not be positioned by this version of the improved layout algorithm. Please disable improvedLayout for better performance.")}this.body.modules.kamadaKawai.setOptions({springLength:Math.max(150,2*r)})}this.body.modules.kamadaKawai.solve(this.body.nodeIndices,this.body.edgeIndices,!0),this._shiftToCenter();for(var d=70,e=0;e<this.body.nodeIndices.length;e++)this.body.nodes[this.body.nodeIndices[e]].x+=(.5-this.seededRandom())*d,this.body.nodes[this.body.nodeIndices[e]].y+=(.5-this.seededRandom())*d;this._declusterAll(),this.body.emitter.emit("_repositionBezierNodes")}}}},{key:"_shiftToCenter",value:function(){for(var t=a["default"]._getRangeCore(this.body.nodes,this.body.nodeIndices),e=a["default"]._findCenter(t),i=0;i<this.body.nodeIndices.length;i++)this.body.nodes[this.body.nodeIndices[i]].x-=e.x,this.body.nodes[this.body.nodeIndices[i]].y-=e.y}},{key:"_declusterAll",value:function(){for(var t=!0;t===!0;){t=!1;for(var e=0;e<this.body.nodeIndices.length;e++)this.body.nodes[this.body.nodeIndices[e]].isCluster===!0&&(t=!0,this.body.modules.clustering.openCluster(this.body.nodeIndices[e],{},!1));t===!0&&this.body.emitter.emit("_dataChanged")}}},{key:"getSeed",value:function(){return this.initialRandomSeed}},{key:"setupHierarchicalLayout",value:function(){if(this.options.hierarchical.enabled===!0&&this.body.nodeIndices.length>0){var t=void 0,e=void 0,i=!1,o=!1;this.hierarchicalLevels={},this.nodeSpacing=100;for(e in this.body.nodes)this.body.nodes.hasOwnProperty(e)&&(t=this.body.nodes[e],void 0!==t.options.level?(i=!0,this.hierarchicalLevels[e]=t.options.level):o=!0);if(o===!0&&i===!0)throw new Error("To use the hierarchical layout, nodes require either no predefined levels or levels have to be defined for all nodes.");o===!0&&("hubsize"===this.options.hierarchical.sortMethod?this._determineLevelsByHubsize():"directed"===this.options.hierarchical.sortMethod?this._determineLevelsDirected():"custom"===this.options.hierarchical.sortMethod&&this._determineLevelsCustomCallback());var n=this._getDistribution();this._generateMap(),this._placeNodesByHierarchy(n),this._condenseHierarchy(n),this._shiftToCenter()}}},{key:"_condenseHierarchy",value:function(t){}},{key:"_placeNodesByHierarchy",value:function(t){this.positionedNodes={};for(var e in t)if(t.hasOwnProperty(e)){var i=Object.keys(t[e]);i=this._indexArrayToNodes(i),this._sortNodeArray(i);for(var o=0;o<i.length;o++){var n=i[o];void 0===this.positionedNodes[n.id]&&(this._setPositionForHierarchy(n,this.nodeSpacing*o),this.positionedNodes[n.id]=!0,this._placeBranchNodes(n.id,e))}}}},{key:"_indexArrayToNodes",value:function(t){for(var e=[],i=0;i<t.length;i++)e.push(this.body.nodes[t[i]]);return e}},{key:"_getDistribution",value:function(){var t={},e=void 0,i=void 0;for(e in this.body.nodes)if(this.body.nodes.hasOwnProperty(e)){i=this.body.nodes[e];var o=void 0===this.hierarchicalLevels[e]?0:this.hierarchicalLevels[e];"UD"===this.options.hierarchical.direction||"DU"===this.options.hierarchical.direction?(i.y=this.options.hierarchical.levelSeparation*o,i.options.fixed.y=!0):(i.x=this.options.hierarchical.levelSeparation*o,i.options.fixed.x=!0),void 0===t[o]&&(t[o]={}),t[o][e]=i}return t}},{key:"_getHubSize",value:function(){var t=0;for(var e in this.body.nodes)if(this.body.nodes.hasOwnProperty(e)){var i=this.body.nodes[e];void 0===this.hierarchicalLevels[e]&&(t=i.edges.length<t?t:i.edges.length)}return t}},{key:"_determineLevelsByHubsize",value:function(){for(var t=this,e=1,i=function(e,i){void 0===t.hierarchicalLevels[i.id]&&(void 0===t.hierarchicalLevels[e.id]&&(t.hierarchicalLevels[e.id]=0),t.hierarchicalLevels[i.id]=t.hierarchicalLevels[e.id]+1)};e>0&&(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 h=i(a["default"]._cloneOptions(o,"node"),a["default"]._cloneOptions(n,"node"),a["default"]._cloneOptions(s,"edge"));t.hierarchicalLevels[n.id]=t.hierarchicalLevels[o.id]+h};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)&&(t=Math.min(this.hierarchicalLevels[e],t));for(var e in this.body.nodes)this.body.nodes.hasOwnProperty(e)&&(this.hierarchicalLevels[e]-=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.hierarchicalParents[o]&&(t.hierarchicalParents[o]={children:[],amount:0}),t.hierarchicalParents[o].children.push(n),void 0===t.hierarchicalChildren[n]&&(t.hierarchicalChildren[n]={parents:[],amount:0}),t.hierarchicalChildren[n].parents.push(o)}};this._crawlNetwork(e)}},{key:"_crawlNetwork",value:function(t,e){void 0===t&&(t=function(){});var i={},o=function r(e){if(void 0===i[e.id]){i[e.id]=!0;for(var o=void 0,n=0;n<e.edges.length;n++)o=e.edges[n].toId===e.id?e.edges[n].from:e.edges[n].to,e.id!==o.id&&(t(e,o,e.edges[n]),r(o))}};if(void 0===e)for(var n=0;n<this.body.nodeIndices.length;n++){var s=this.body.nodes[this.body.nodeIndices[n]];o(s)}else{var s=this.body.nodes[e];if(void 0===s)return void console.error("Node not found:",e);o(s)}}},{key:"_placeBranchNodes",value:function(t,e){if(void 0!==this.hierarchicalParents[t]){for(var i=[],o=0;o<this.hierarchicalParents[t].children.length;o++)i.push(this.body.nodes[this.hierarchicalParents[t].children[o]]);this._sortNodeArray(i);for(var o=0;o<i.length;o++){var n=i[o],s=this.hierarchicalLevels[n.id];if(!(s>e&&void 0===this.positionedNodes[n.id]))return;var r=void 0;if(r=0===o?this._getPositionForHierarchy(this.body.nodes[t]):this._getPositionForHierarchy(i[o-1])+this.nodeSpacing,this._setPositionForHierarchy(n,r),void 0!==this.lastNodeOnLevel[s]){var a=this._getPositionForHierarchy(this.body.nodes[this.lastNodeOnLevel[s]]);if(r-a<this.nodeSpacing){var h=a+this.nodeSpacing-r,d=this._findCommonParent(this.lastNodeOnLevel[s],n.id);this._shiftBlock(d.withChild,h)}}this.lastNodeOnLevel[s]=n.id,this.positionedNodes[n.id]=!0,this._placeBranchNodes(n.id,s)}for(var l=1e9,u=-1e9,o=0;o<i.length;o++){var c=i[o].id;l=Math.min(l,this._getPositionForHierarchy(this.body.nodes[c])),u=Math.max(u,this._getPositionForHierarchy(this.body.nodes[c]))}this._setPositionForHierarchy(this.body.nodes[t],.5*(l+u))}}},{key:"_shiftBlock",value:function(t,e){if("UD"===this.options.hierarchical.direction||"DU"===this.options.hierarchical.direction?this.body.nodes[t].x+=e:this.body.nodes[t].y+=e,void 0!==this.hierarchicalParents[t])for(var i=0;i<this.hierarchicalParents[t].children.length;i++)this._shiftBlock(this.hierarchicalParents[t].children[i],e)}},{key:"_findCommonParent",value:function(t,e){var i=this,o={},n=function r(t,e){if(void 0!==i.hierarchicalChildren[e])for(var o=0;o<i.hierarchicalChildren[e].parents.length;o++){var n=i.hierarchicalChildren[e].parents[o];t[n]=!0,r(t,n)}},s=function a(t,e){if(void 0!==i.hierarchicalChildren[e])for(var o=0;o<i.hierarchicalChildren[e].parents.length;o++){var n=i.hierarchicalChildren[e].parents[o];if(void 0!==t[n])return{foundParent:n,withChild:e};var s=a(t,n);if(null!==s.foundParent)return s}return{foundParent:null,withChild:e}};return n(o,t),s(o,e)}},{key:"_setPositionForHierarchy",value:function(t,e){"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"]=d,t.exports=e["default"]},function(t,e,i){function o(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(e,"__esModule",{value:!0});var n=function(){function t(t,e){for(var i=0;i<e.length;i++){var o=e[i];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(t,o.key,o)}}return function(e,i,o){return i&&t(e.prototype,i),o&&t(e,o),e}}(),s=i(1),r=i(20),a=i(25),h=function(){function t(e,i,n){var r=this;
-o(this,t),this.body=e,this.canvas=i,this.selectionHandler=n,this.editMode=!1,this.manipulationDiv=void 0,this.editModeDiv=void 0,this.closeDiv=void 0,this.manipulationHammers=[],this.temporaryUIFunctions={},this.temporaryEventFunctions=[],this.touchTime=0,this.temporaryIds={nodes:[],edges:[]},this.guiEnabled=!1,this.inMode=!1,this.selectedControlNode=void 0,this.options={},this.defaultOptions={enabled:!1,initiallyActive:!1,addNode:!0,addEdge:!0,editNode:void 0,editEdge:!0,deleteNode:!0,deleteEdge:!0,controlNodeStyle:{shape:"dot",size:6,color:{background:"#ff0000",border:"#3c3c3c",highlight:{background:"#07f968",border:"#3c3c3c"}},borderWidth:2,borderWidthSelected:2}},s.extend(this.options,this.defaultOptions),this.body.emitter.on("destroy",function(){r._clean()}),this.body.emitter.on("_dataChanged",this._restore.bind(this)),this.body.emitter.on("_resetData",this._restore.bind(this))}return n(t,[{key:"_restore",value:function(){this.inMode!==!1&&(this.options.initiallyActive===!0?this.enableEditMode():this.disableEditMode())}},{key:"setOptions",value:function(t,e,i){void 0!==e&&(void 0!==e.locale?this.options.locale=e.locale:this.options.locale=i.locale,void 0!==e.locales?this.options.locales=e.locales:this.options.locales=i.locales),void 0!==t&&("boolean"==typeof t?this.options.enabled=t:(this.options.enabled=!0,s.deepExtend(this.options,t)),this.options.initiallyActive===!0&&(this.editMode=!0),this._setup())}},{key:"toggleEditMode",value:function(){this.editMode===!0?this.disableEditMode():this.enableEditMode()}},{key:"enableEditMode",value:function(){this.editMode=!0,this._clean(),this.guiEnabled===!0&&(this.manipulationDiv.style.display="block",this.closeDiv.style.display="block",this.editModeDiv.style.display="none",this.showManipulatorToolbar())}},{key:"disableEditMode",value:function(){this.editMode=!1,this._clean(),this.guiEnabled===!0&&(this.manipulationDiv.style.display="none",this.closeDiv.style.display="none",this.editModeDiv.style.display="block",this._createEditButton())}},{key:"showManipulatorToolbar",value:function(){if(this._clean(),this.manipulationDOM={},this.guiEnabled===!0){this.editMode=!0,this.manipulationDiv.style.display="block",this.closeDiv.style.display="block";var t=this.selectionHandler._getSelectedNodeCount(),e=this.selectionHandler._getSelectedEdgeCount(),i=t+e,o=this.options.locales[this.options.locale],n=!1;this.options.addNode!==!1&&(this._createAddNodeButton(o),n=!0),this.options.addEdge!==!1&&(n===!0?this._createSeperator(1):n=!0,this._createAddEdgeButton(o)),1===t&&"function"==typeof this.options.editNode?(n===!0?this._createSeperator(2):n=!0,this._createEditNodeButton(o)):1===e&&0===t&&this.options.editEdge!==!1&&(n===!0?this._createSeperator(3):n=!0,this._createEditEdgeButton(o)),0!==i&&(t>0&&this.options.deleteNode!==!1?(n===!0&&this._createSeperator(4),this._createDeleteButton(o)):0===t&&this.options.deleteEdge!==!1&&(n===!0&&this._createSeperator(4),this._createDeleteButton(o))),this._bindHammerToDiv(this.closeDiv,this.toggleEditMode.bind(this)),this._temporaryBindEvent("select",this.showManipulatorToolbar.bind(this))}this.body.emitter.emit("_redraw")}},{key:"addNodeMode",value:function(){if(this.editMode!==!0&&this.enableEditMode(),this._clean(),this.inMode="addNode",this.guiEnabled===!0){var t=this.options.locales[this.options.locale];this.manipulationDOM={},this._createBackButton(t),this._createSeperator(),this._createDescription(t.addDescription||this.options.locales.en.addDescription),this._bindHammerToDiv(this.closeDiv,this.toggleEditMode.bind(this))}this._temporaryBindEvent("click",this._performAddNode.bind(this))}},{key:"editNode",value:function(){var t=this;this.editMode!==!0&&this.enableEditMode(),this._clean();var e=this.selectionHandler._getSelectedNode();if(void 0!==e){if(this.inMode="editNode","function"!=typeof this.options.editNode)throw new Error("No function has been configured to handle the editing of nodes.");if(e.isCluster!==!0){var i=s.deepExtend({},e.options,!0);if(i.x=e.x,i.y=e.y,2!==this.options.editNode.length)throw new Error("The function for edit does not support two arguments (data, callback)");this.options.editNode(i,function(e){null!==e&&void 0!==e&&"editNode"===t.inMode&&t.body.data.nodes.getDataSet().update(e),t.showManipulatorToolbar()})}else alert(this.options.locales[this.options.locale].editClusterError||this.options.locales.en.editClusterError)}else this.showManipulatorToolbar()}},{key:"addEdgeMode",value:function(){if(this.editMode!==!0&&this.enableEditMode(),this._clean(),this.inMode="addEdge",this.guiEnabled===!0){var t=this.options.locales[this.options.locale];this.manipulationDOM={},this._createBackButton(t),this._createSeperator(),this._createDescription(t.edgeDescription||this.options.locales.en.edgeDescription),this._bindHammerToDiv(this.closeDiv,this.toggleEditMode.bind(this))}this._temporaryBindUI("onTouch",this._handleConnect.bind(this)),this._temporaryBindUI("onDragEnd",this._finishConnect.bind(this)),this._temporaryBindUI("onDrag",this._dragControlNode.bind(this)),this._temporaryBindUI("onRelease",this._finishConnect.bind(this)),this._temporaryBindUI("onDragStart",function(){}),this._temporaryBindUI("onHold",function(){})}},{key:"editEdgeMode",value:function(){var t=this;if(this.editMode!==!0&&this.enableEditMode(),this._clean(),this.inMode="editEdge",this.guiEnabled===!0){var e=this.options.locales[this.options.locale];this.manipulationDOM={},this._createBackButton(e),this._createSeperator(),this._createDescription(e.editEdgeDescription||this.options.locales.en.editEdgeDescription),this._bindHammerToDiv(this.closeDiv,this.toggleEditMode.bind(this))}this.edgeBeingEditedId=this.selectionHandler.getSelectedEdges()[0],void 0!==this.edgeBeingEditedId?!function(){var e=t.body.edges[t.edgeBeingEditedId],i=t._getNewTargetNode(e.from.x,e.from.y),o=t._getNewTargetNode(e.to.x,e.to.y);t.temporaryIds.nodes.push(i.id),t.temporaryIds.nodes.push(o.id),t.body.nodes[i.id]=i,t.body.nodeIndices.push(i.id),t.body.nodes[o.id]=o,t.body.nodeIndices.push(o.id),t._temporaryBindUI("onTouch",t._controlNodeTouch.bind(t)),t._temporaryBindUI("onTap",function(){}),t._temporaryBindUI("onHold",function(){}),t._temporaryBindUI("onDragStart",t._controlNodeDragStart.bind(t)),t._temporaryBindUI("onDrag",t._controlNodeDrag.bind(t)),t._temporaryBindUI("onDragEnd",t._controlNodeDragEnd.bind(t)),t._temporaryBindUI("onMouseMove",function(){}),t._temporaryBindEvent("beforeDrawing",function(t){var n=e.edgeType.findBorderPositions(t);i.selected===!1&&(i.x=n.from.x,i.y=n.from.y),o.selected===!1&&(o.x=n.to.x,o.y=n.to.y)}),t.body.emitter.emit("_redraw")}():this.showManipulatorToolbar()}},{key:"deleteSelected",value:function(){var t=this;this.editMode!==!0&&this.enableEditMode(),this._clean(),this.inMode="delete";var e=this.selectionHandler.getSelectedNodes(),i=this.selectionHandler.getSelectedEdges(),o=void 0;if(e.length>0){for(var n=0;n<e.length;n++)if(this.body.nodes[e[n]].isCluster===!0)return void alert(this.options.locales[this.options.locale].deleteClusterError||this.options.locales.en.deleteClusterError);"function"==typeof this.options.deleteNode&&(o=this.options.deleteNode)}else i.length>0&&"function"==typeof this.options.deleteEdge&&(o=this.options.deleteEdge);if("function"==typeof o){var s={nodes:e,edges:i};if(2!==o.length)throw new Error("The function for delete does not support two arguments (data, callback)");o(s,function(e){null!==e&&void 0!==e&&"delete"===t.inMode?(t.body.data.edges.getDataSet().remove(e.edges),t.body.data.nodes.getDataSet().remove(e.nodes),t.body.emitter.emit("startSimulation"),t.showManipulatorToolbar()):(t.body.emitter.emit("startSimulation"),t.showManipulatorToolbar())})}else this.body.data.edges.getDataSet().remove(i),this.body.data.nodes.getDataSet().remove(e),this.body.emitter.emit("startSimulation"),this.showManipulatorToolbar()}},{key:"_setup",value:function(){this.options.enabled===!0?(this.guiEnabled=!0,this._createWrappers(),this.editMode===!1?this._createEditButton():this.showManipulatorToolbar()):(this._removeManipulationDOM(),this.guiEnabled=!1)}},{key:"_createWrappers",value:function(){void 0===this.manipulationDiv&&(this.manipulationDiv=document.createElement("div"),this.manipulationDiv.className="vis-manipulation",this.editMode===!0?this.manipulationDiv.style.display="block":this.manipulationDiv.style.display="none",this.canvas.frame.appendChild(this.manipulationDiv)),void 0===this.editModeDiv&&(this.editModeDiv=document.createElement("div"),this.editModeDiv.className="vis-edit-mode",this.editMode===!0?this.editModeDiv.style.display="none":this.editModeDiv.style.display="block",this.canvas.frame.appendChild(this.editModeDiv)),void 0===this.closeDiv&&(this.closeDiv=document.createElement("div"),this.closeDiv.className="vis-close",this.closeDiv.style.display=this.manipulationDiv.style.display,this.canvas.frame.appendChild(this.closeDiv))}},{key:"_getNewTargetNode",value:function(t,e){var i=s.deepExtend({},this.options.controlNodeStyle);return i.id="targetNode"+s.randomUUID(),i.hidden=!1,i.physics=!1,i.x=t,i.y=e,this.body.functions.createNode(i)}},{key:"_createEditButton",value:function(){this._clean(),this.manipulationDOM={},s.recursiveDOMDelete(this.editModeDiv);var t=this.options.locales[this.options.locale],e=this._createButton("editMode","vis-button vis-edit vis-edit-mode",t.edit||this.options.locales.en.edit);this.editModeDiv.appendChild(e),this._bindHammerToDiv(e,this.toggleEditMode.bind(this))}},{key:"_clean",value:function(){this.inMode=!1,this.guiEnabled===!0&&(s.recursiveDOMDelete(this.editModeDiv),s.recursiveDOMDelete(this.manipulationDiv),this._cleanManipulatorHammers()),this._cleanupTemporaryNodesAndEdges(),this._unbindTemporaryUIs(),this._unbindTemporaryEvents(),this.body.emitter.emit("restorePhysics")}},{key:"_cleanManipulatorHammers",value:function(){if(0!=this.manipulationHammers.length){for(var t=0;t<this.manipulationHammers.length;t++)this.manipulationHammers[t].destroy();this.manipulationHammers=[]}}},{key:"_removeManipulationDOM",value:function(){this._clean(),s.recursiveDOMDelete(this.manipulationDiv),s.recursiveDOMDelete(this.editModeDiv),s.recursiveDOMDelete(this.closeDiv),this.manipulationDiv&&this.canvas.frame.removeChild(this.manipulationDiv),this.editModeDiv&&this.canvas.frame.removeChild(this.editModeDiv),this.closeDiv&&this.canvas.frame.removeChild(this.manipulationDiv),this.manipulationDiv=void 0,this.editModeDiv=void 0,this.closeDiv=void 0}},{key:"_createSeperator",value:function(){var t=arguments.length<=0||void 0===arguments[0]?1:arguments[0];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){var e=this._createButton("delete","vis-button vis-delete",t.del||this.options.locales.en.del);this.manipulationDiv.appendChild(e),this._bindHammerToDiv(e,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]?"vis-label":arguments[3];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<this.temporaryEventFunctions.length;t++){var e=this.temporaryEventFunctions[t].event,i=this.temporaryEventFunctions[t].boundFunction;this.body.emitter.off(e,i)}this.temporaryEventFunctions=[]}},{key:"_bindHammerToDiv",value:function(t,e){var i=new r(t,{});a.onTouch(i,e),this.manipulationHammers.push(i)}},{key:"_cleanupTemporaryNodesAndEdges",value:function(){for(var t=0;t<this.temporaryIds.edges.length;t++){this.body.edges[this.temporaryIds.edges[t]].disconnect(),delete this.body.edges[this.temporaryIds.edges[t]];var e=this.body.edgeIndices.indexOf(this.temporaryIds.edges[t]);-1!==e&&this.body.edgeIndices.splice(e,1)}for(var t=0;t<this.temporaryIds.nodes.length;t++){delete this.body.nodes[this.temporaryIds.nodes[t]];var i=this.body.nodeIndices.indexOf(this.temporaryIds.nodes[t]);-1!==i&&this.body.nodeIndices.splice(i,1)}this.temporaryIds={nodes:[],edges:[]}}},{key:"_controlNodeTouch",value:function(t){this.selectionHandler.unselectAll(),this.lastTouch=this.body.functions.getPointer(t.center),this.lastTouch.translation=s.extend({},this.body.view.translation)}},{key:"_controlNodeDragStart",value:function(t){var e=this.lastTouch,i=this.selectionHandler._pointerToPositionObject(e),o=this.body.nodes[this.temporaryIds.nodes[0]],n=this.body.nodes[this.temporaryIds.nodes[1]],s=this.body.edges[this.edgeBeingEditedId];this.selectedControlNode=void 0;var r=o.isOverlappingWith(i),a=n.isOverlappingWith(i);r===!0?(this.selectedControlNode=o,s.edgeType.from=o):a===!0&&(this.selectedControlNode=n,s.edgeType.to=n),this.body.emitter.emit("_redraw")}},{key:"_controlNodeDrag",value:function(t){this.body.emitter.emit("disablePhysics");var e=this.body.functions.getPointer(t.center),i=this.canvas.DOMtoCanvas(e);if(void 0!==this.selectedControlNode)this.selectedControlNode.x=i.x,this.selectedControlNode.y=i.y;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}}this.body.emitter.emit("_redraw")}},{key:"_controlNodeDragEnd",value:function(t){var e=this.body.functions.getPointer(t.center),i=this.selectionHandler._pointerToPositionObject(e),o=this.body.edges[this.edgeBeingEditedId];if(void 0!==this.selectedControlNode){for(var n=this.selectionHandler._getAllNodesOverlappingWith(i),s=void 0,r=n.length-1;r>=0;r--)if(n[r]!==this.selectedControlNode.id){s=this.body.nodes[n[r]];break}if(void 0!==s&&void 0!==this.selectedControlNode)if(s.isCluster===!0)alert(this.options.locales[this.options.locale].createEdgeError||this.options.locales.en.createEdgeError);else{var a=this.body.nodes[this.temporaryIds.nodes[0]];this.selectedControlNode.id===a.id?this._performEditEdge(s.id,o.to.id):this._performEditEdge(o.from.id,s.id)}else o.updateEdgeType(),this.body.emitter.emit("restorePhysics");this.body.emitter.emit("_redraw")}}},{key:"_handleConnect",value:function(t){if((new Date).valueOf()-this.touchTime>100){this.lastTouch=this.body.functions.getPointer(t.center),this.lastTouch.translation=s.extend({},this.body.view.translation);var e=this.lastTouch,i=this.selectionHandler.getNodeAt(e);if(void 0!==i)if(i.isCluster===!0)alert(this.options.locales[this.options.locale].createEdgeError||this.options.locales.en.createEdgeError);else{var o=this._getNewTargetNode(i.x,i.y);this.body.nodes[o.id]=o,this.body.nodeIndices.push(o.id);var n=this.body.functions.createEdge({id:"connectionEdge"+s.randomUUID(),from:i.id,to:o.id,physics:!1,smooth:{enabled:!0,type:"continuous",roundness:.5}});this.body.edges[n.id]=n,this.body.edgeIndices.push(n.id),this.temporaryIds.nodes.push(o.id),this.temporaryIds.edges.push(n.id)}this.touchTime=(new Date).valueOf()}}},{key:"_dragControlNode",value:function(t){var e=this.body.functions.getPointer(t.center);if(void 0!==this.temporaryIds.nodes[0]){var i=this.body.nodes[this.temporaryIds.nodes[0]];i.x=this.canvas._XconvertDOMtoCanvas(e.x),i.y=this.canvas._YconvertDOMtoCanvas(e.y),this.body.emitter.emit("_redraw")}else{var o=e.x-this.lastTouch.x,n=e.y-this.lastTouch.y;this.body.view.translation={x:this.lastTouch.translation.x+o,y:this.lastTouch.translation.y+n}}}},{key:"_finishConnect",value:function(t){var e=this.body.functions.getPointer(t.center),i=this.selectionHandler._pointerToPositionObject(e),o=void 0;void 0!==this.temporaryIds.edges[0]&&(o=this.body.edges[this.temporaryIds.edges[0]].fromId);for(var n=this.selectionHandler._getAllNodesOverlappingWith(i),s=void 0,r=n.length-1;r>=0;r--)if(-1===this.temporaryIds.nodes.indexOf(n[r])){s=this.body.nodes[n[r]];break}this._cleanupTemporaryNodesAndEdges(),void 0!==s&&(s.isCluster===!0?alert(this.options.locales[this.options.locale].createEdgeError||this.options.locales.en.createEdgeError):void 0!==this.body.nodes[o]&&void 0!==this.body.nodes[s.id]&&this._performAddEdge(o,s.id)),this.body.emitter.emit("_redraw")}},{key:"_performAddNode",value:function(t){var e=this,i={id:s.randomUUID(),x:t.pointer.canvas.x,y:t.pointer.canvas.y,label:"new"};if("function"==typeof this.options.addNode){if(2!==this.options.addNode.length)throw new Error("The function for add does not support two arguments (data,callback)");this.options.addNode(i,function(t){null!==t&&void 0!==t&&"addNode"===e.inMode&&(e.body.data.nodes.getDataSet().add(t),e.showManipulatorToolbar())})}else this.body.data.nodes.getDataSet().add(i),this.showManipulatorToolbar()}},{key:"_performAddEdge",value:function(t,e){var i=this,o={from:t,to:e};if("function"==typeof this.options.addEdge){if(2!==this.options.addEdge.length)throw new Error("The function for connect does not support two arguments (data,callback)");this.options.addEdge(o,function(t){null!==t&&void 0!==t&&"addEdge"===i.inMode&&(i.body.data.edges.getDataSet().add(t),i.selectionHandler.unselectAll(),i.showManipulatorToolbar())})}else this.body.data.edges.getDataSet().add(o),this.selectionHandler.unselectAll(),this.showManipulatorToolbar()}},{key:"_performEditEdge",value:function(t,e){var i=this,o={id:this.edgeBeingEditedId,from:t,to:e};if("function"==typeof this.options.editEdge){if(2!==this.options.editEdge.length)throw new Error("The function for edit does not support two arguments (data, callback)");this.options.editEdge(o,function(t){null===t||void 0===t||"editEdge"!==i.inMode?(i.body.edges[o.id].updateEdgeType(),i.body.emitter.emit("_redraw")):(i.body.data.edges.getDataSet().update(t),i.selectionHandler.unselectAll(),i.showManipulatorToolbar())})}else this.body.data.edges.getDataSet().update(o),this.selectionHandler.unselectAll(),this.showManipulatorToolbar()}}]),t}();e["default"]=h,t.exports=e["default"]},function(t,e){Object.defineProperty(e,"__esModule",{value:!0});var i="string",o="boolean",n="number",s="array",r="object",a="dom",h="any",d={configure:{enabled:{"boolean":o},filter:{"boolean":o,string:i,array:s,"function":"function"},container:{dom:a},showButton:{"boolean":o},__type__:{object:r,"boolean":o,string:i,array:s,"function":"function"}},edges:{arrows:{to:{enabled:{"boolean":o},scaleFactor:{number:n},__type__:{object:r,"boolean":o}},middle:{enabled:{"boolean":o},scaleFactor:{number:n},__type__:{object:r,"boolean":o}},from:{enabled:{"boolean":o},scaleFactor:{number:n},__type__:{object:r,"boolean":o}},__type__:{string:["from","to","middle"],object:r}},color:{color:{string:i},highlight:{string:i},hover:{string:i},inherit:{string:["from","to","both"],"boolean":o},opacity:{number:n},__type__:{object:r,string:i}},dashes:{"boolean":o,array:s},font:{color:{string:i},size:{number:n},face:{string:i},background:{string:i},strokeWidth:{number:n},strokeColor:{string:i},align:{string:["horizontal","top","middle","bottom"]},__type__:{object:r,string:i}},hidden:{"boolean":o},hoverWidth:{"function":"function",number:n},label:{string:i,undefined:"undefined"},labelHighlightBold:{"boolean":o},length:{number:n,undefined:"undefined"},physics:{"boolean":o},scaling:{min:{number:n},max:{number:n},label:{enabled:{"boolean":o},min:{number:n},max:{number:n},maxVisible:{number:n},drawThreshold:{number:n},__type__:{object:r,"boolean":o}},customScalingFunction:{"function":"function"},__type__:{object:r}},selectionWidth:{"function":"function",number:n},selfReferenceSize:{number:n},shadow:{enabled:{"boolean":o},size:{number:n},x:{number:n},y:{number:n},__type__:{object:r,"boolean":o}},smooth:{enabled:{"boolean":o},type:{string:["dynamic","continuous","discrete","diagonalCross","straightCross","horizontal","vertical","curvedCW","curvedCCW","cubicBezier"]},roundness:{number:n},forceDirection:{string:["horizontal","vertical","none"],"boolean":o},__type__:{object:r,"boolean":o}},title:{string:i,undefined:"undefined"},width:{number:n},value:{number:n,undefined:"undefined"},__type__:{object:r}},groups:{useDefaultGroups:{"boolean":o},__any__:"get from nodes, will be overwritten below",__type__:{object:r}},interaction:{dragNodes:{"boolean":o},dragView:{"boolean":o},hideEdgesOnDrag:{"boolean":o},hideNodesOnDrag:{"boolean":o},hover:{"boolean":o},keyboard:{enabled:{"boolean":o},speed:{x:{number:n},y:{number:n},zoom:{number:n},__type__:{object:r}},bindToWindow:{"boolean":o},__type__:{object:r,"boolean":o}},multiselect:{"boolean":o},navigationButtons:{"boolean":o},selectable:{"boolean":o},selectConnectedEdges:{"boolean":o},hoverConnectedEdges:{"boolean":o},tooltipDelay:{number:n},zoomView:{"boolean":o},__type__:{object:r}},layout:{randomSeed:{undefined:"undefined",number:n},improvedLayout:{"boolean":o},hierarchical:{enabled:{"boolean":o},levelSeparation:{number:n},direction:{string:["UD","DU","LR","RL"]},sortMethod:{string:["hubsize","directed"]},__type__:{object:r,"boolean":o}},__type__:{object:r}},manipulation:{enabled:{"boolean":o},initiallyActive:{"boolean":o},addNode:{"boolean":o,"function":"function"},addEdge:{"boolean":o,"function":"function"},editNode:{"function":"function"},editEdge:{"boolean":o,"function":"function"},deleteNode:{"boolean":o,"function":"function"},deleteEdge:{"boolean":o,"function":"function"},controlNodeStyle:"get from nodes, will be overwritten below",__type__:{object:r,"boolean":o}},nodes:{borderWidth:{number:n},borderWidthSelected:{number:n,undefined:"undefined"},brokenImage:{string:i,undefined:"undefined"},color:{border:{string:i},background:{string:i},highlight:{border:{string:i},background:{string:i},__type__:{object:r,string:i}},hover:{border:{string:i},background:{string:i},__type__:{object:r,string:i}},__type__:{object:r,string:i}},fixed:{x:{"boolean":o},y:{"boolean":o},__type__:{object:r,"boolean":o}},font:{color:{string:i},size:{number:n},face:{string:i},background:{string:i},strokeWidth:{number:n},strokeColor:{string:i},__type__:{object:r,string:i}},group:{string:i,number:n,undefined:"undefined"},hidden:{"boolean":o},icon:{face:{string:i},code:{string:i},size:{number:n},color:{string:i},__type__:{object:r}},id:{string:i,number:n},image:{string:i,undefined:"undefined"},label:{string:i,undefined:"undefined"},labelHighlightBold:{"boolean":o},level:{number:n,undefined:"undefined"},mass:{number:n},physics:{"boolean":o},scaling:{min:{number:n},max:{number:n},label:{enabled:{"boolean":o},min:{number:n},max:{number:n},maxVisible:{number:n},drawThreshold:{number:n},__type__:{object:r,"boolean":o}},customScalingFunction:{"function":"function"},__type__:{object:r}},shadow:{enabled:{"boolean":o},size:{number:n},x:{number:n},y:{number:n},__type__:{object:r,"boolean":o}},shape:{string:["ellipse","circle","database","box","text","image","circularImage","diamond","dot","star","triangle","triangleDown","square","icon"]},shapeProperties:{borderDashes:{"boolean":o,array:s},borderRadius:{number:n},useImageSize:{"boolean":o},useBorderWithImage:{"boolean":o},__type__:{object:r}},size:{number:n},title:{string:i,undefined:"undefined"},value:{number:n,undefined:"undefined"},x:{number:n},y:{number:n},__type__:{object:r}},physics:{enabled:{"boolean":o},barnesHut:{gravitationalConstant:{number:n},centralGravity:{number:n},springLength:{number:n},springConstant:{number:n},damping:{number:n},avoidOverlap:{number:n},__type__:{object:r}},forceAtlas2Based:{gravitationalConstant:{number:n},centralGravity:{number:n},springLength:{number:n},springConstant:{number:n},damping:{number:n},avoidOverlap:{number:n},__type__:{object:r}},repulsion:{centralGravity:{number:n},springLength:{number:n},springConstant:{number:n},nodeDistance:{number:n},damping:{number:n},__type__:{object:r}},hierarchicalRepulsion:{centralGravity:{number:n},springLength:{number:n},springConstant:{number:n},nodeDistance:{number:n},damping:{number:n},__type__:{object:r}},maxVelocity:{number:n},minVelocity:{number:n},solver:{string:["barnesHut","repulsion","hierarchicalRepulsion","forceAtlas2Based"]},stabilization:{enabled:{"boolean":o},iterations:{number:n},updateInterval:{number:n},onlyDynamicEdges:{"boolean":o},fit:{"boolean":o},__type__:{object:r,"boolean":o}},timestep:{number:n},adaptiveTimestep:{"boolean":o},__type__:{object:r,"boolean":o}},autoResize:{"boolean":o},clickToUse:{"boolean":o},locale:{string:i},locales:{__any__:{any:h},__type__:{object:r}},height:{string:i},width:{string:i},__type__:{object:r}};d.groups.__any__=d.nodes,d.manipulation.controlNodeStyle=d.nodes;var l={nodes:{borderWidth:[1,0,10,1],borderWidthSelected:[2,0,10,1],color:{border:["color","#2B7CE9"],background:["color","#97C2FC"],highlight:{border:["color","#2B7CE9"],background:["color","#D2E5FF"]},hover:{border:["color","#2B7CE9"],background:["color","#D2E5FF"]}},fixed:{x:!1,y:!1},font:{color:["color","#343434"],size:[14,0,100,1],face:["arial","verdana","tahoma"],background:["color","none"],strokeWidth:[0,0,50,1],strokeColor:["color","#ffffff"]},hidden:!1,labelHighlightBold:!0,physics:!0,scaling:{min:[10,0,200,1],max:[30,0,200,1],label:{enabled:!1,min:[14,0,200,1],max:[30,0,200,1],maxVisible:[30,0,200,1],drawThreshold:[5,0,20,1]}},shadow:{enabled:!1,size:[10,0,20,1],x:[5,-30,30,1],y:[5,-30,30,1]},shape:["ellipse","box","circle","database","diamond","dot","square","star","text","triangle","triangleDown"],shapeProperties:{borderDashes:!1,borderRadius:[6,0,20,1],useImageSize:!1},size:[25,0,200,1]},edges:{arrows:{to:{enabled:!1,scaleFactor:[1,0,3,.05]},middle:{enabled:!1,scaleFactor:[1,0,3,.05]},from:{enabled:!1,scaleFactor:[1,0,3,.05]}},color:{color:["color","#848484"],highlight:["color","#848484"],hover:["color","#848484"],inherit:["from","to","both",!0,!1],opacity:[1,0,1,.05]},dashes:!1,font:{color:["color","#343434"],size:[14,0,100,1],face:["arial","verdana","tahoma"],background:["color","none"],strokeWidth:[2,0,50,1],strokeColor:["color","#ffffff"],align:["horizontal","top","middle","bottom"]},hidden:!1,hoverWidth:[1.5,0,5,.1],labelHighlightBold:!0,physics:!0,scaling:{min:[1,0,100,1],max:[15,0,100,1],label:{enabled:!0,min:[14,0,200,1],max:[30,0,200,1],maxVisible:[30,0,200,1],drawThreshold:[5,0,20,1]}},selectionWidth:[1.5,0,5,.1],selfReferenceSize:[20,0,200,1],shadow:{enabled:!1,size:[10,0,20,1],x:[5,-30,30,1],y:[5,-30,30,1]},smooth:{enabled:!0,type:["dynamic","continuous","discrete","diagonalCross","straightCross","horizontal","vertical","curvedCW","curvedCCW","cubicBezier"],forceDirection:["horizontal","vertical","none"],roundness:[.5,0,1,.05]},width:[1,0,30,1]},layout:{hierarchical:{enabled:!1,levelSeparation:[150,20,500,5],direction:["UD","DU","LR","RL"],sortMethod:["hubsize","directed"]}},interaction:{dragNodes:!0,dragView:!0,hideEdgesOnDrag:!1,hideNodesOnDrag:!1,hover:!1,keyboard:{enabled:!1,speed:{x:[10,0,40,1],y:[10,0,40,1],zoom:[.02,0,.1,.005]},bindToWindow:!0},multiselect:!1,navigationButtons:!1,selectable:!0,selectConnectedEdges:!0,hoverConnectedEdges:!0,tooltipDelay:[300,0,1e3,25],zoomView:!0},manipulation:{enabled:!1,initiallyActive:!1},physics:{enabled:!0,barnesHut:{gravitationalConstant:[-2e3,-3e4,0,50],centralGravity:[.3,0,10,.05],springLength:[95,0,500,5],springConstant:[.04,0,1.2,.005],damping:[.09,0,1,.01],avoidOverlap:[0,0,1,.01]},forceAtlas2Based:{gravitationalConstant:[-50,-500,0,1],centralGravity:[.01,0,1,.005],springLength:[95,0,500,5],springConstant:[.08,0,1.2,.005],damping:[.4,0,1,.01],avoidOverlap:[0,0,1,.01]},repulsion:{centralGravity:[.2,0,10,.05],springLength:[200,0,500,5],springConstant:[.05,0,1.2,.005],nodeDistance:[100,0,500,5],damping:[.09,0,1,.01]},hierarchicalRepulsion:{centralGravity:[.2,0,10,.05],springLength:[100,0,500,5],springConstant:[.01,0,1.2,.005],nodeDistance:[120,0,500,5],damping:[.09,0,1,.01]},maxVelocity:[50,0,150,1],minVelocity:[.1,.01,.5,.01],solver:["barnesHut","forceAtlas2Based","repulsion","hierarchicalRepulsion"],timestep:[.5,.01,1,.01]},global:{locale:["en","nl"]}};e.allOptions=d,e.configureOptions=l},function(t,e,i){function o(t){return t&&t.__esModule?t:{"default":t}}function n(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(e,"__esModule",{value:!0});var s=function(){function t(t,e){var i=[],o=!0,n=!1,s=void 0;try{for(var r,a=t[Symbol.iterator]();!(o=(r=a.next()).done)&&(i.push(r.value),!e||i.length!==e);o=!0);}catch(h){n=!0,s=h}finally{try{!o&&a["return"]&&a["return"]()}finally{if(n)throw s}}return i}return function(e,i){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return t(e,i);throw new TypeError("Invalid attempt to destructure non-iterable instance")}}(),r=function(){function t(t,e){for(var i=0;i<e.length;i++){var o=e[i];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(t,o.key,o)}}return function(e,i,o){return i&&t(e.prototype,i),o&&t(e,o),e}}(),a=i(113),h=o(a),d=function(){function t(e,i,o){n(this,t),this.body=e,this.springLength=i,this.springConstant=o,this.distanceSolver=new h["default"]}return r(t,[{key:"setOptions",value:function(t){t&&(t.springLength&&(this.springLength=t.springLength),t.springConstant&&(this.springConstant=t.springConstant))}},{key:"solve",value:function(t,e){var i=arguments.length<=2||void 0===arguments[2]?!1: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,u=0,c=0,p=0,f=0,m=0;l>n&&h>a;){a+=1;var v=this._getHighestEnergyNode(i),g=s(v,4);for(u=g[0],l=g[1],c=g[2],p=g[3],f=l,m=0;f>r&&d>m;){m+=1,this._moveNode(u,c,p);var y=this._getEnergy(u),b=s(y,3);f=b[0],c=b[1],p=b[2]}}}},{key:"_getHighestEnergyNode",value:function(t){for(var e=this.body.nodeIndices,i=this.body.nodes,o=0,n=e[0],r=0,a=0,h=0;h<e.length;h++){var d=e[h];if(i[d].predefinedPosition===!1||i[d].isCluster===!0&&t===!0||i[d].options.fixed.x===!0||i[d].options.fixed.y===!0){
-var l=this._getEnergy(d),u=s(l,3),c=u[0],p=u[1],f=u[2];c>o&&(o=c,n=d,r=p,a=f)}}return[n,o,r,a]}},{key:"_getEnergy",value:function(t){for(var e=this.body.nodeIndices,i=this.body.nodes,o=i[t].x,n=i[t].y,s=0,r=0,a=0;a<e.length;a++){var h=e[a];if(h!==t){var d=i[h].x,l=i[h].y,u=1/Math.sqrt(Math.pow(o-d,2)+Math.pow(n-l,2));s+=this.K_matrix[t][h]*(o-d-this.L_matrix[t][h]*(o-d)*u),r+=this.K_matrix[t][h]*(n-l-this.L_matrix[t][h]*(n-l)*u)}}var c=Math.sqrt(Math.pow(s,2)+Math.pow(r,2));return[c,s,r]}},{key:"_moveNode",value:function(t,e,i){for(var o=this.body.nodeIndices,n=this.body.nodes,s=0,r=0,a=0,h=n[t].x,d=n[t].y,l=0;l<o.length;l++){var u=o[l];if(u!==t){var c=n[u].x,p=n[u].y,f=1/Math.pow(Math.pow(h-c,2)+Math.pow(d-p,2),1.5);s+=this.K_matrix[t][u]*(1-this.L_matrix[t][u]*Math.pow(d-p,2)*f),r+=this.K_matrix[t][u]*(this.L_matrix[t][u]*(h-c)*(d-p)*f),a+=this.K_matrix[t][u]*(1-this.L_matrix[t][u]*Math.pow(h-c,2)*f)}}var m=s,v=r,g=e,y=a,b=i,w=(g/m+b/v)/(v/m-y/v),_=-(v*w+g)/m;n[t].x+=_,n[t].y+=w}},{key:"_createL_matrix",value:function(t){var e=this.body.nodeIndices,i=this.springLength;this.L_matrix=[];for(var o=0;o<e.length;o++){this.L_matrix[e[o]]={};for(var n=0;n<e.length;n++)this.L_matrix[e[o]][e[n]]=i*t[e[o]][e[n]]}}},{key:"_createK_matrix",value:function(t){var e=this.body.nodeIndices,i=this.springConstant;this.K_matrix=[];for(var o=0;o<e.length;o++){this.K_matrix[e[o]]={};for(var n=0;n<e.length;n++)this.K_matrix[e[o]][e[n]]=i*Math.pow(t[e[o]][e[n]],-2)}}}]),t}();e["default"]=d,t.exports=e["default"]},function(t,e){function i(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(e,"__esModule",{value:!0});var o=function(){function t(t,e){for(var i=0;i<e.length;i++){var o=e[i];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(t,o.key,o)}}return function(e,i,o){return i&&t(e.prototype,i),o&&t(e,o),e}}(),n=function(){function t(){i(this,t)}return o(t,[{key:"getDistances",value:function(t,e,i){for(var o={},n=t.edges,s=0;s<e.length;s++){o[e[s]]={},o[e[s]]={};for(var r=0;r<e.length;r++)o[e[s]][e[r]]=s==r?0:1e9,o[e[s]][e[r]]=s==r?0:1e9}for(var s=0;s<i.length;s++){var a=n[i[s]];a.connected===!0&&void 0!==o[a.fromId]&&void 0!==o[a.toId]&&(o[a.fromId][a.toId]=1,o[a.toId][a.fromId]=1)}for(var h=e.length,d=0;h>d;d++)for(var s=0;h-1>s;s++)for(var r=s+1;h>r;r++)o[e[s]][e[r]]=Math.min(o[e[s]][e[r]],o[e[s]][e[d]]+o[e[d]][e[r]]),o[e[r]][e[s]]=o[e[s]][e[r]];return o}}]),t}();e["default"]=n,t.exports=e["default"]},function(t,e){"undefined"!=typeof CanvasRenderingContext2D&&(CanvasRenderingContext2D.prototype.circle=function(t,e,i){this.beginPath(),this.arc(t,e,i,0,2*Math.PI,!1),this.closePath()},CanvasRenderingContext2D.prototype.square=function(t,e,i){this.beginPath(),this.rect(t-i,e-i,2*i,2*i),this.closePath()},CanvasRenderingContext2D.prototype.triangle=function(t,e,i){this.beginPath(),i*=1.15,e+=.275*i;var o=2*i,n=o/2,s=Math.sqrt(3)/6*o,r=Math.sqrt(o*o-n*n);this.moveTo(t,e-(r-s)),this.lineTo(t+n,e+s),this.lineTo(t-n,e+s),this.lineTo(t,e-(r-s)),this.closePath()},CanvasRenderingContext2D.prototype.triangleDown=function(t,e,i){this.beginPath(),i*=1.15,e-=.275*i;var o=2*i,n=o/2,s=Math.sqrt(3)/6*o,r=Math.sqrt(o*o-n*n);this.moveTo(t,e+(r-s)),this.lineTo(t+n,e-s),this.lineTo(t-n,e-s),this.lineTo(t,e+(r-s)),this.closePath()},CanvasRenderingContext2D.prototype.star=function(t,e,i){this.beginPath(),i*=.82,e+=.1*i;for(var o=0;10>o;o++){var n=o%2===0?1.3*i:.5*i;this.lineTo(t+n*Math.sin(2*o*Math.PI/10),e-n*Math.cos(2*o*Math.PI/10))}this.closePath()},CanvasRenderingContext2D.prototype.diamond=function(t,e,i){this.beginPath(),this.lineTo(t,e+i),this.lineTo(t+i,e),this.lineTo(t,e-i),this.lineTo(t-i,e),this.closePath()},CanvasRenderingContext2D.prototype.roundRect=function(t,e,i,o,n){var s=Math.PI/180;0>i-2*n&&(n=i/2),0>o-2*n&&(n=o/2),this.beginPath(),this.moveTo(t+n,e),this.lineTo(t+i-n,e),this.arc(t+i-n,e+n,n,270*s,360*s,!1),this.lineTo(t+i,e+o-n),this.arc(t+i-n,e+o-n,n,0,90*s,!1),this.lineTo(t+n,e+o),this.arc(t+n,e+o-n,n,90*s,180*s,!1),this.lineTo(t,e+n),this.arc(t+n,e+n,n,180*s,270*s,!1),this.closePath()},CanvasRenderingContext2D.prototype.ellipse=function(t,e,i,o){var n=.5522848,s=i/2*n,r=o/2*n,a=t+i,h=e+o,d=t+i/2,l=e+o/2;this.beginPath(),this.moveTo(t,l),this.bezierCurveTo(t,l-r,d-s,e,d,e),this.bezierCurveTo(d+s,e,a,l-r,a,l),this.bezierCurveTo(a,l+r,d+s,h,d,h),this.bezierCurveTo(d-s,h,t,l+r,t,l),this.closePath()},CanvasRenderingContext2D.prototype.database=function(t,e,i,o){var n=1/3,s=i,r=o*n,a=.5522848,h=s/2*a,d=r/2*a,l=t+s,u=e+r,c=t+s/2,p=e+r/2,f=e+(o-r/2),m=e+o;this.beginPath(),this.moveTo(l,p),this.bezierCurveTo(l,p+d,c+h,u,c,u),this.bezierCurveTo(c-h,u,t,p+d,t,p),this.bezierCurveTo(t,p-d,c-h,e,c,e),this.bezierCurveTo(c+h,e,l,p-d,l,p),this.lineTo(l,f),this.bezierCurveTo(l,f+d,c+h,m,c,m),this.bezierCurveTo(c-h,m,t,f+d,t,f),this.lineTo(t,p)},CanvasRenderingContext2D.prototype.arrow=function(t,e,i,o){var n=t-o*Math.cos(i),s=e-o*Math.sin(i),r=t-.9*o*Math.cos(i),a=e-.9*o*Math.sin(i),h=n+o/3*Math.cos(i+.5*Math.PI),d=s+o/3*Math.sin(i+.5*Math.PI),l=n+o/3*Math.cos(i-.5*Math.PI),u=s+o/3*Math.sin(i-.5*Math.PI);this.beginPath(),this.moveTo(t,e),this.lineTo(h,d),this.lineTo(r,a),this.lineTo(l,u),this.closePath()},CanvasRenderingContext2D.prototype.dashedLine=function(t,e,i,o,n){this.beginPath(),this.moveTo(t,e);for(var s=n.length,r=i-t,a=o-e,h=a/r,d=Math.sqrt(r*r+a*a),l=0,u=!0,c=0,p=n[0];d>=.1;)p=n[l++%s],p>d&&(p=d),c=Math.sqrt(p*p/(1+h*h)),c=0>r?-c:c,t+=c,e+=h*c,u===!0?this.lineTo(t,e):this.moveTo(t,e),d-=p,u=!u})},function(t,e){function i(t){return P=t,p()}function o(){I=0,N=P.charAt(0)}function n(){I++,N=P.charAt(I)}function s(){return P.charAt(I+1)}function r(t){return A.test(t)}function a(t,e){if(t||(t={}),e)for(var i in e)e.hasOwnProperty(i)&&(t[i]=e[i]);return t}function h(t,e,i){for(var o=e.split("."),n=t;o.length;){var s=o.shift();o.length?(n[s]||(n[s]={}),n=n[s]):n[s]=i}}function d(t,e){for(var i,o,n=null,s=[t],r=t;r.parent;)s.push(r.parent),r=r.parent;if(r.nodes)for(i=0,o=r.nodes.length;o>i;i++)if(e.id===r.nodes[i].id){n=r.nodes[i];break}for(n||(n={id:e.id},t.node&&(n.attr=a(n.attr,t.node))),i=s.length-1;i>=0;i--){var h=s[i];h.nodes||(h.nodes=[]),-1===h.nodes.indexOf(n)&&h.nodes.push(n)}e.attr&&(n.attr=a(n.attr,e.attr))}function l(t,e){if(t.edges||(t.edges=[]),t.edges.push(e),t.edge){var i=a({},t.edge);e.attr=a(i,e.attr)}}function u(t,e,i,o,n){var s={from:e,to:i,type:o};return t.edge&&(s.attr=a({},t.edge)),s.attr=a(s.attr||{},n),s}function c(){for(L=S.NULL,z="";" "===N||" "===N||"\n"===N||"\r"===N;)n();do{var t=!1;if("#"===N){for(var e=I-1;" "===P.charAt(e)||" "===P.charAt(e);)e--;if("\n"===P.charAt(e)||""===P.charAt(e)){for(;""!=N&&"\n"!=N;)n();t=!0}}if("/"===N&&"/"===s()){for(;""!=N&&"\n"!=N;)n();t=!0}if("/"===N&&"*"===s()){for(;""!=N;){if("*"===N&&"/"===s()){n(),n();break}n()}t=!0}for(;" "===N||" "===N||"\n"===N||"\r"===N;)n()}while(t);if(""===N)return void(L=S.DELIMITER);var i=N+s();if(E[i])return L=S.DELIMITER,z=i,n(),void n();if(E[N])return L=S.DELIMITER,z=N,void n();if(r(N)||"-"===N){for(z+=N,n();r(N);)z+=N,n();return"false"===z?z=!1:"true"===z?z=!0:isNaN(Number(z))||(z=Number(z)),void(L=S.IDENTIFIER)}if('"'===N){for(n();""!=N&&('"'!=N||'"'===N&&'"'===s());)z+=N,'"'===N&&n(),n();if('"'!=N)throw _('End of string " expected');return n(),void(L=S.IDENTIFIER)}for(L=S.UNKNOWN;""!=N;)z+=N,n();throw new SyntaxError('Syntax error in part "'+x(z,30)+'"')}function p(){var t={};if(o(),c(),"strict"===z&&(t.strict=!0,c()),("graph"===z||"digraph"===z)&&(t.type=z,c()),L===S.IDENTIFIER&&(t.id=z,c()),"{"!=z)throw _("Angle bracket { expected");if(c(),f(t),"}"!=z)throw _("Angle bracket } expected");if(c(),""!==z)throw _("End of file expected");return c(),delete t.node,delete t.edge,delete t.graph,t}function f(t){for(;""!==z&&"}"!=z;)m(t),";"===z&&c()}function m(t){var e=v(t);if(e)return void b(t,e);var i=g(t);if(!i){if(L!=S.IDENTIFIER)throw _("Identifier expected");var o=z;if(c(),"="===z){if(c(),L!=S.IDENTIFIER)throw _("Identifier expected");t[o]=z,c()}else y(t,o)}}function v(t){var e=null;if("subgraph"===z&&(e={},e.type="subgraph",c(),L===S.IDENTIFIER&&(e.id=z,c())),"{"===z){if(c(),e||(e={}),e.parent=t,e.node=t.node,e.edge=t.edge,e.graph=t.graph,f(e),"}"!=z)throw _("Angle bracket } expected");c(),delete e.node,delete e.edge,delete e.graph,delete e.parent,t.subgraphs||(t.subgraphs=[]),t.subgraphs.push(e)}return e}function g(t){return"node"===z?(c(),t.node=w(),"node"):"edge"===z?(c(),t.edge=w(),"edge"):"graph"===z?(c(),t.graph=w(),"graph"):null}function y(t,e){var i={id:e},o=w();o&&(i.attr=o),d(t,i),b(t,e)}function b(t,e){for(;"->"===z||"--"===z;){var i,o=z;c();var n=v(t);if(n)i=n;else{if(L!=S.IDENTIFIER)throw _("Identifier or subgraph expected");i=z,d(t,{id:i}),c()}var s=w(),r=u(t,e,i,o,s);l(t,r),e=i}}function w(){for(var t=null;"["===z;){for(c(),t={};""!==z&&"]"!=z;){if(L!=S.IDENTIFIER)throw _("Attribute name expected");var e=z;if(c(),"="!=z)throw _("Equal sign = expected");if(c(),L!=S.IDENTIFIER)throw _("Attribute value expected");var i=z;h(t,e,i),c(),","==z&&c()}if("]"!=z)throw _("Bracket ] expected");c()}return t}function _(t){return new SyntaxError(t+', got "'+x(z,30)+'" (char '+I+")")}function x(t,e){return t.length<=e?t:t.substr(0,27)+"..."}function k(t,e,i){Array.isArray(t)?t.forEach(function(t){Array.isArray(e)?e.forEach(function(e){i(t,e)}):i(t,e)}):Array.isArray(e)?e.forEach(function(e){i(t,e)}):i(t,e)}function O(t,e,i){for(var o=e.split("."),n=o.pop(),s=t,r=0;r<o.length;r++){var a=o[r];a in s||(s[a]={}),s=s[a]}return s[n]=i,t}function M(t,e){var i={};for(var o in t)if(t.hasOwnProperty(o)){var n=e[o];Array.isArray(n)?n.forEach(function(e){O(i,e,t[o])}):"string"==typeof n?O(i,n,t[o]):O(i,o,t[o])}return i}function D(t){var e=i(t),o={nodes:[],edges:[],options:{}};if(e.nodes&&e.nodes.forEach(function(t){var e={id:t.id,label:String(t.label||t.id)};a(e,M(t.attr,C)),e.image&&(e.shape="image"),o.nodes.push(e)}),e.edges){var n=function(t){var e={from:t.from,to:t.to};return a(e,M(t.attr,T)),e.arrows="->"===t.type?"to":void 0,e};e.edges.forEach(function(t){var e,i;e=t.from instanceof Object?t.from.nodes:{id:t.from},i=t.to instanceof Object?t.to.nodes:{id:t.to},t.from instanceof Object&&t.from.edges&&t.from.edges.forEach(function(t){var e=n(t);o.edges.push(e)}),k(e,i,function(e,i){var s=u(o,e.id,i.id,t.type,t.attr),r=n(s);o.edges.push(r)}),t.to instanceof Object&&t.to.edges&&t.to.edges.forEach(function(t){var e=n(t);o.edges.push(e)})})}return e.attr&&(o.options=e.attr),o}var C={fontsize:"font.size",fontcolor:"font.color",labelfontcolor:"font.color",fontname:"font.face",color:["color.border","color.background"],fillcolor:"color.background",tooltip:"title",labeltooltip:"title"},T=Object.create(C);T.color="color.color";var S={NULL:0,DELIMITER:1,IDENTIFIER:2,UNKNOWN:3},E={"{":!0,"}":!0,"[":!0,"]":!0,";":!0,"=":!0,",":!0,"->":!0,"--":!0},P="",I=0,N="",z="",L=S.NULL,A=/[a-zA-Z_0-9.:#]/;e.parseDOT=i,e.DOTToGraph=D},function(t,e){function i(t,e){var i=[],o=[],n={edges:{inheritColor:!1},nodes:{fixed:!1,parseColor:!1}};void 0!==e&&(void 0!==e.fixed&&(n.nodes.fixed=e.fixed),void 0!==e.parseColor&&(n.nodes.parseColor=e.parseColor),void 0!==e.inheritColor&&(n.edges.inheritColor=e.inheritColor));for(var s=t.edges,r=t.nodes,a=0;a<s.length;a++){var h={},d=s[a];h.id=d.id,h.from=d.source,h.to=d.target,h.attributes=d.attributes,h.label=d.label,h.title=void 0!==d.attributes?d.attributes.title:void 0,"Directed"===d.type&&(h.arrows="to"),d.color&&n.inheritColor===!1&&(h.color=d.color),i.push(h)}for(var a=0;a<r.length;a++){var l={},u=r[a];l.id=u.id,l.attributes=u.attributes,l.title=u.title,l.x=u.x,l.y=u.y,l.label=u.label,l.title=void 0!==u.attributes?u.attributes.title:void 0,n.nodes.parseColor===!0?l.color=u.color:l.color=void 0!==u.color?{background:u.color,border:u.color,highlight:{background:u.color,border:u.color},hover:{background:u.color,border:u.color}}:void 0,l.size=u.size,l.fixed=n.nodes.fixed&&void 0!==u.x&&void 0!==u.y,o.push(l)}return{nodes:o,edges:i}}e.parseGephi=i},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;i<e.length;i++){var o=e[i];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(t,o.key,o)}}return function(e,i,o){return i&&t(e.prototype,i),o&&t(e,o),e}}(),n=function(){function t(e){i(this,t),this.images={},this.imageBroken={},this.callback=e}return o(t,[{key:"_addImageToCache",value:function(t,e){0===e.width&&(document.body.appendChild(e),e.width=e.offsetWidth,e.height=e.offsetHeight,document.body.removeChild(e)),this.images[t]=e}},{key:"_tryloadBrokenUrl",value:function(t,e,i){var o=this;void 0!==t&&void 0!==e&&void 0!==i&&(i.onerror=function(){console.error("Could not load brokenImage:",e),o._addImageToCache(t,new Image)},i.src=e)}},{key:"_redrawWithImage",value:function(t){this.callback&&this.callback(t)}},{key:"load",value:function(t,e,i){var o=this,n=this.images[t];if(n)return n;var s=new Image;return s.onload=function(){o._addImageToCache(t,s),o._redrawWithImage(s)},s.onerror=function(){console.error("Could not load image:",t),o._tryloadBrokenUrl(t,e,s)},s.src=t,s}}]),t}();e["default"]=n,t.exports=e["default"]},function(t,e){e.en={edit:"Edit",del:"Delete selected",back:"Back",addNode:"Add Node",addEdge:"Add Edge",editNode:"Edit Node",editEdge:"Edit Edge",addDescription:"Click in an empty space to place a new node.",edgeDescription:"Click on a node and drag the edge to another node to connect them.",editEdgeDescription:"Click on the control points and drag them to a node to connect to it.",createEdgeError:"Cannot link edges to a cluster.",deleteClusterError:"Clusters cannot be deleted.",editClusterError:"Clusters cannot be edited."},e.en_EN=e.en,e.en_US=e.en,e.de={edit:"Editieren",del:"Lösche Auswahl",back:"Zurück",addNode:"Knoten hinzufügen",addEdge:"Kante hinzufügen",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."},e.de_DE=e.de,e.es={edit:"Editar",del:"Eliminar selección",back:"Átras",addNode:"Añadir nodo",addEdge:"Añadir arista",editNode:"Editar nodo",editEdge:"Editar arista",addDescription:"Haga clic en un lugar vacío 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.",deleteClusterError:"No es posible eliminar grupos.",editClusterError:"No es posible editar grupos."},e.es_ES=e.es,e.nl={edit:"Wijzigen",del:"Selectie verwijderen",back:"Terug",addNode:"Node toevoegen",addEdge:"Link toevoegen",editNode:"Node wijzigen",editEdge:"Link wijzigen",addDescription:"Klik op een leeg gebied om een nieuwe node te maken.",edgeDescription:"Klik op een node en sleep de link naar een andere node om ze te verbinden.",editEdgeDescription:"Klik op de verbindingspunten en sleep ze naar een node om daarmee te verbinden.",createEdgeError:"Kan geen link maken naar een cluster.",deleteClusterError:"Clusters kunnen niet worden verwijderd.",editClusterError:"Clusters kunnen niet worden aangepast."},e.nl_NL=e.nl,e.nl_BE=e.nl}])});
+"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;i<arguments.length;i++){var o=arguments[i];for(var n in o)t[n]=o[n]}return t},e.extend=function(t,e){for(var i=1;i<arguments.length;i++){var o=arguments[i];for(var n in o)o.hasOwnProperty(n)&&(t[n]=o[n])}return t},e.selectiveExtend=function(t,e,i){if(!Array.isArray(t))throw new Error("Array with property names expected as first argument");for(var o=2;o<arguments.length;o++)for(var n=arguments[o],s=0;s<t.length;s++){var r=t[s];n.hasOwnProperty(r)&&(e[r]=n[r])}return e},e.selectiveDeepExtend=function(t,i,o){var n=arguments.length<=3||void 0===arguments[3]?!1:arguments[3];if(Array.isArray(o))throw new TypeError("Arrays are not supported by deepExtend");for(var s=2;s<arguments.length;s++)for(var r=arguments[s],a=0;a<t.length;a++){var h=t[a];if(r.hasOwnProperty(h))if(o[h]&&o[h].constructor===Object)void 0===i[h]&&(i[h]={}),i[h].constructor===Object?e.deepExtend(i[h],o[h],!1,n):null===o[h]&&void 0!==i[h]&&n===!0?delete i[h]:i[h]=o[h];else{if(Array.isArray(o[h]))throw new TypeError("Arrays are not supported by deepExtend");null===o[h]&&void 0!==i[h]&&n===!0?delete i[h]:i[h]=o[h]}}return i},e.selectiveNotDeepExtend=function(t,i,o){var n=arguments.length<=3||void 0===arguments[3]?!1:arguments[3];if(Array.isArray(o))throw new TypeError("Arrays are not supported by deepExtend");for(var s in o)if(o.hasOwnProperty(s)&&-1==t.indexOf(s))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<o[s].length;r++)i[s].push(o[s][r])}else null===o[s]&&void 0!==i[s]&&n===!0?delete i[s]:i[s]=o[s];return i},e.deepExtend=function(t,i,o,n){for(var s in i)if(i.hasOwnProperty(s)||o===!0)if(i[s]&&i[s].constructor===Object)void 0===t[s]&&(t[s]={}),t[s].constructor===Object?e.deepExtend(t[s],i[s],o):null===i[s]&&void 0!==t[s]&&n===!0?delete t[s]:t[s]=i[s];else if(Array.isArray(i[s])){t[s]=[];for(var r=0;r<i[s].length;r++)t[s].push(i[s][r])}else null===i[s]&&void 0!==t[s]&&n===!0?delete t[s]:t[s]=i[s];return t},e.equalArray=function(t,e){if(t.length!=e.length)return!1;for(var i=0,o=t.length;o>i;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;o<t.length;o++)i.push(t[o]);return i.push(e),i},e.copyArray=function(t){for(var e=[],i=0;i<t.length;i++)e.push(t[i]);return e},e.getAbsoluteLeft=function(t){return t.getBoundingClientRect().left},e.getAbsoluteRight=function(t){return t.getBoundingClientRect().right},e.getAbsoluteTop=function(t){return t.getBoundingClientRect().top},e.addClassName=function(t,e){var i=t.className.split(" ");-1==i.indexOf(e)&&(i.push(e),t.className=i.join(" "))},e.removeClassName=function(t,e){var i=t.className.split(" "),o=i.indexOf(e);-1!=o&&(i.splice(o,1),t.className=i.join(" "))},e.forEach=function(t,e){var i,o;if(Array.isArray(t))for(i=0,o=t.length;o>i;i++)e(t[i],i,t);else for(i in t)t.hasOwnProperty(i)&&e(t[i],i,t)},e.toArray=function(t){var e=[];for(var i in t)t.hasOwnProperty(i)&&e.push(t[i]);return e},e.updateProperty=function(t,e,i){return t[e]!==i?(t[e]=i,!0):!1},e.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;s<t.length;s++)i.hasOwnProperty(t[s])&&"object"==o(i[t[s]])&&(n[t[s]]=e.bridgeObject(i[t[s]]));return n}return null},e.bridgeObject=function(t){if("object"==("undefined"==typeof t?"undefined":o(t))){var i=Object.create(t);for(var n in t)t.hasOwnProperty(n)&&"object"==o(t[n])&&(i[n]=e.bridgeObject(t[n]));return i}return null},e.insertSort=function(t,e){for(var i=0;i<t.length;i++){for(var o=t[i],n=i;n>0&&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;i<t.length;++i)o.push(e(t[i],i));return o}function r(t,e){return Object.prototype.hasOwnProperty.call(t,e)}function a(t,e){for(var i in e)r(e,i)&&(t[i]=e[i]);return r(e,"toString")&&(t.toString=e.toString),r(e,"valueOf")&&(t.valueOf=e.valueOf),t}function h(t,e,i,o){return Lt(t,e,i,o,!0).utc()}function d(){return{empty:!1,unusedTokens:[],unusedInput:[],overflow:-2,charsLeftOver:0,nullInput:!1,invalidMonth:null,invalidFormat:!1,userInvalidated:!1,iso:!1,parsedDateParts:[],meridiem:null}}function l(t){return null==t._pf&&(t._pf=d()),t._pf}function c(t){if(null==t._isValid){var e=l(t),i=ao.call(e.parsedDateParts,function(t){return null!=t});t._isValid=!isNaN(t._d.getTime())&&e.overflow<0&&!e.empty&&!e.invalidMonth&&!e.invalidWeekday&&!e.nullInput&&!e.invalidFormat&&!e.userInvalidated&&(!e.meridiem||e.meridiem&&i),t._strict&&(t._isValid=t._isValid&&0===e.charsLeftOver&&0===e.unusedTokens.length&&void 0===e.bigHour)}return t._isValid}function u(t){var e=h(NaN);return null!=t?a(l(e),t):l(e).userInvalidated=!0,e}function p(t){return void 0===t}function f(t,e){var i,o,n;if(p(e._isAMomentObject)||(t._isAMomentObject=e._isAMomentObject),p(e._i)||(t._i=e._i),p(e._f)||(t._f=e._f),p(e._l)||(t._l=e._l),p(e._strict)||(t._strict=e._strict),p(e._tzm)||(t._tzm=e._tzm),p(e._isUTC)||(t._isUTC=e._isUTC),p(e._offset)||(t._offset=e._offset),p(e._pf)||(t._pf=l(e)),p(e._locale)||(t._locale=e._locale),ho.length>0)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;s<t.length;){for(n=C(t[s]).split("-"),e=n.length,i=C(t[s+1]),i=i?i.split("-"):null;e>0;){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;i<t.length;i++)Fo[t[i]]=o}function tt(t,e){$(t,function(t,i,o,n){o._w=o._w||{},e(t,o._w,o,n)})}function et(t,e,i){null!=e&&r(Fo,t)&&Fo[t](e,i._a,i,t)}function it(t,e){return new Date(Date.UTC(t,e+1,0)).getUTCDate()}function ot(t,e){return o(this._months)?this._months[t.month()]:this._months[Zo.test(e)?"format":"standalone"][t.month()]}function nt(t,e){return o(this._monthsShort)?this._monthsShort[t.month()]:this._monthsShort[Zo.test(e)?"format":"standalone"][t.month()]}function st(t,e,i){var o,n,s,r=t.toLocaleLowerCase();if(!this._monthsParse)for(this._monthsParse=[],this._longMonthsParse=[],this._shortMonthsParse=[],o=0;12>o;++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;i<n.length;i++)s=n[i],o=(a.match(K(s,t))||[])[0],o&&(r=a.substr(0,a.indexOf(o)),r.length>0&&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;n<t._f.length;n++)s=0,e=f({},t),null!=t._useUTC&&(e._useUTC=t._useUTC),e._f=t._f[n],Tt(e),c(e)&&(s+=l(e).charsLeftOver,s+=10*l(e).unusedTokens.length,l(e).score=s,(null==o||o>s)&&(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;n<e.length;++n)e[n].isValid()&&!e[n][t](i)||(i=e[n]);return i}function Ft(){var t=[].slice.call(arguments,0);return Bt("isBefore",t)}function jt(){var t=[].slice.call(arguments,0);return Bt("isAfter",t)}function Ht(t){var e=B(t),i=e.year||0,o=e.quarter||0,n=e.month||0,s=e.week||0,r=e.day||0,a=e.hour||0,h=e.minute||0,d=e.second||0,l=e.millisecond||0;this._milliseconds=+l+1e3*d+6e4*h+1e3*a*60*60,this._days=+r+7*s,this._months=+n+3*o+12*i,this._data={},this._locale=R(),this._bubble()}function Wt(t){return t instanceof Ht}function Yt(t,e){G(t,0,0,function(){var t=this.utcOffset(),i="+";return 0>t&&(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()<this.clone().startOf(e).valueOf()):!1}function fe(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():this.clone().endOf(e).valueOf()<i.valueOf()):!1}function me(t,e,i,o){return o=o||"()",("("===o[0]?this.isAfter(t,i):!this.isBefore(t,i))&&(")"===o[1]?this.isBefore(e,i):!this.isAfter(e,i))}function ve(t,e){var i,o=v(t)?t:At(t);return this.isValid()&&o.isValid()?(e=A(e||"millisecond"),"millisecond"===e?this.valueOf()===o.valueOf():(i=o.valueOf(),this.clone().startOf(e).valueOf()<=i&&i<=this.clone().endOf(e).valueOf())):!1}function ge(t,e){return this.isSame(t,e)||this.isAfter(t,e)}function ye(t,e){return this.isSame(t,e)||this.isBefore(t,e)}function be(t,e,i){var o,n,s,r;return this.isValid()?(o=Vt(t,this),o.isValid()?(n=6e4*(o.utcOffset()-this.utcOffset()),e=A(e),"year"===e||"month"===e||"quarter"===e?(r=we(this,o),"quarter"===e?r/=3:"year"===e&&(r/=12)):(s=this-o,r="second"===e?s/1e3:"minute"===e?s/6e4:"hour"===e?s/36e5:"day"===e?(s-n)/864e5:"week"===e?(s-n)/6048e5:s),i?r:g(r)):NaN):NaN}function we(t,e){var i,o,n=12*(e.year()-t.year())+(e.month()-t.month()),s=t.clone().add(n,"months");return 0>e-s?(i=t.clone().add(n-1,"months"),o=(e-s)/(s-i)):(i=t.clone().add(n+1,"months"),o=(e-s)/(i-s)),-(n+o)||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 0<t.year()&&t.year()<=9999?k(Date.prototype.toISOString)?this.toDate().toISOString():q(t,"YYYY-MM-DD[T]HH:mm:ss.SSS[Z]"):q(t,"YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]")}function ke(t){t||(t=this.isUtc()?e.defaultFormatUtc:e.defaultFormat);var i=q(this,t);return this.localeData().postformat(i)}function Oe(t,e){return this.isValid()&&(v(t)&&t.isValid()||At(t).isValid())?ne({to:this,from:t}).locale(this.locale()).humanize(!e):this.localeData().invalidDate()}function Me(t){return this.from(At(),t)}function De(t,e){return this.isValid()&&(v(t)&&t.isValid()||At(t).isValid())?ne({from:this,to:t}).locale(this.locale()).humanize(!e):this.localeData().invalidDate()}function Se(t){return this.to(At(),t)}function Ce(t){var e;return void 0===t?this._locale._abbr:(e=R(t),null!=e&&(this._locale=e),this)}function Te(){return this._locale}function Ee(t){switch(t=A(t)){case"year":this.month(0);case"quarter":case"month":this.date(1);case"week":case"isoWeek":case"day":case"date":this.hours(0);case"hour":this.minutes(0);case"minute":this.seconds(0);case"second":this.milliseconds(0)}return"week"===t&&this.weekday(0),"isoWeek"===t&&this.isoWeekday(1),"quarter"===t&&this.month(3*Math.floor(this.month()/3)),this}function Pe(t){return t=A(t),void 0===t||"millisecond"===t?this:("date"===t&&(t="day"),this.startOf(t).add(1,"isoWeek"===t?"week":t).subtract(1,"ms"))}function Ie(){return this._d.valueOf()-6e4*(this._offset||0)}function Ne(){return Math.floor(this.valueOf()/1e3)}function Re(){return this._offset?new Date(this.valueOf()):this._d}function ze(){var t=this;return[t.year(),t.month(),t.date(),t.hour(),t.minute(),t.second(),t.millisecond()]}function Le(){var t=this;return{years:t.year(),months:t.month(),date:t.date(),hours:t.hours(),minutes:t.minutes(),seconds:t.seconds(),milliseconds:t.milliseconds()}}function Ae(){return this.isValid()?this.toISOString():null}function Be(){return c(this)}function Fe(){return a({},l(this))}function je(){return l(this).overflow}function He(){return{input:this._i,format:this._f,locale:this._locale,isUTC:this._isUTC,strict:this._strict}}function We(t,e){G(0,[t,t.length],0,e)}function Ye(t){return qe.call(this,t,this.week(),this.weekday(),this.localeData()._week.dow,this.localeData()._week.doy)}function Ge(t){return qe.call(this,t,this.isoWeek(),this.isoWeekday(),1,4)}function Ve(){return Ot(this.year(),1,4)}function Ue(){var t=this.localeData()._week;return Ot(this.year(),t.dow,t.doy)}function qe(t,e,i,o,n){var s;return null==t?kt(this,o,n).year:(s=Ot(t,o,n),e>s&&(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<os.s&&["s",n]||1>=s&&["m"]||s<os.m&&["mm",s]||1>=r&&["h"]||r<os.h&&["hh",r]||1>=a&&["d"]||a<os.d&&["dd",a]||1>=h&&["M"]||h<os.M&&["MM",h]||1>=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<this.length;++e)if(this[e]===t)return e;return-1},G("M",["MM",2],"Mo",function(){return this.month()+1}),G("MMM",0,0,function(t){return this.localeData().monthsShort(this,t)}),G("MMMM",0,0,function(t){return this.localeData().months(this,t)}),L("month","M"),Z("M",Do),Z("MM",Do,xo),Z("MMM",function(t,e){return e.monthsShortRegex(t)}),Z("MMMM",function(t,e){return e.monthsRegex(t)}),$(["M","MM"],function(t,e){e[Ho]=y(t)-1}),$(["MMM","MMMM"],function(t,e,i,o){var n=i._locale.monthsParse(t,o,i._strict);null!=n?e[Ho]=n:l(i).invalidMonth=t});var Zo=/D[oD]?(\[[^\[\]]*\]|\s+)+MMMM?/,Ko="January_February_March_April_May_June_July_August_September_October_November_December".split("_"),Jo="Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),Qo=Ao,$o=Ao,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)?)?/,en=/^\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)?/,nn=[["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}/]],sn=[["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/]],rn=/^\/?Date\((\-?\d+)/i;e.createFromInputFallback=_("moment construction falls back to js Date. This is discouraged and will be removed in upcoming major release. Please refer to https://github.com/moment/moment/issues/1407 for more info.",function(t){t._d=new Date(t._i+(t._useUTC?" UTC":""))}),G("Y",0,0,function(){var t=this.year();return 9999>=t?""+t:"+"+t}),G(0,["YY",2],0,function(){return this.year()%100}),G(0,["YYYY",4],0,"year"),G(0,["YYYYY",5],0,"year"),G(0,["YYYYYY",6,!0],0,"year"),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;i<t[e].redundant.length;i++)t[e].redundant[i].parentNode.removeChild(t[e].redundant[i]);t[e].redundant=[]}},e.resetElements=function(t){e.prepareElements(t),e.cleanupElements(t),e.prepareElements(t)},e.getSVGElement=function(t,e,i){var o;return e.hasOwnProperty(t)?e[t].redundant.length>0?(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;s<e.replace.length;s++){var r=e.replace[s];n.push({name:r,original:t[r]}),o.replace(t,r)}return o._extended={object:t,methods:n},o},i.prototype.destroy=function(){if(this.flush(),this._extended){for(var t=this._extended.object,e=this._extended.methods,i=0;i<e.length;i++){var o=e[i];o.original?t[o.name]=o.original:delete t[o.name]}this._extended=null}},i.prototype.replace=function(t,e){var i=this,o=t[e];if(!o)throw new Error("Method "+e+" undefined");t[e]=function(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];i.queue({args:t,fn:o,context:this})}},i.prototype.queue=function(t){"function"==typeof t?this._queue.push({fn:t}):this._queue.push(t),this._flushIfNeeded()},i.prototype._flushIfNeeded=function(){if(this._queue.length>this.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.x<this.scale.y?this.scale.y=this.scale.x:this.scale.x=this.scale.y),this.scale.z*=this.verticalRatio,this.scale.value=1/(this.valueMax-this.valueMin);var t=(this.xMax+this.xMin)/2*this.scale.x,e=(this.yMax+this.yMin)/2*this.scale.y,i=(this.zMax+this.zMin)/2*this.scale.z;this.camera.setArmLocation(t,e,i)},o.prototype._convert3Dto2D=function(t){var e=this._convertPointToTranslation(t);return this._convertTranslationToScreen(e)},o.prototype._convertPointToTranslation=function(t){var e=t.x*this.scale.x,i=t.y*this.scale.y,o=t.z*this.scale.z,n=this.camera.getCameraLocation().x,s=this.camera.getCameraLocation().y,r=this.camera.getCameraLocation().z,a=Math.sin(this.camera.getCameraRotation().x),h=Math.cos(this.camera.getCameraRotation().x),d=Math.sin(this.camera.getCameraRotation().y),l=Math.cos(this.camera.getCameraRotation().y),u=Math.sin(this.camera.getCameraRotation().z),p=Math.cos(this.camera.getCameraRotation().z),f=l*(u*(i-s)+p*(e-n))-d*(o-r),m=a*(l*(o-r)+d*(u*(i-s)+p*(e-n)))+h*(p*(i-s)-u*(e-n)),v=h*(l*(o-r)+d*(u*(i-s)+p*(e-n)))-a*(p*(i-s)-u*(e-n));return new c(f,m,v)},o.prototype._convertTranslationToScreen=function(t){var e,i,o=this.eye.x,n=this.eye.y,s=this.eye.z,r=t.x,a=t.y,h=t.z;return this.showPerspective?(e=(r-o)*(s/h),i=(a-n)*(s/h)):(e=r*-(s/this.camera.getArmLength()),i=a*-(s/this.camera.getArmLength())),new u(this.xcenter+e*this.frame.canvas.clientWidth,this.ycenter-i*this.frame.canvas.clientWidth)},o.prototype._setBackgroundColor=function(t){var e="white",i="gray",o=1;if("string"==typeof t)e=t,i="none",o=0;else if("object"===("undefined"==typeof t?"undefined":r(t)))void 0!==t.fill&&(e=t.fill),void 0!==t.stroke&&(i=t.stroke),void 0!==t.strokeWidth&&(o=t.strokeWidth);else if(void 0!==t)throw"Unsupported type of backgroundColor";this.frame.style.backgroundColor=e,this.frame.style.borderColor=i,this.frame.style.borderWidth=o+"px",this.frame.style.borderStyle="solid"},o.STYLE={BAR:0,BARCOLOR:1,BARSIZE:2,DOT:3,DOTLINE:4,DOTCOLOR:5,DOTSIZE:6,GRID:7,LINE:8,SURFACE:9},o.prototype._getStyleNumber=function(t){switch(t){case"dot":return o.STYLE.DOT;case"dot-line":return o.STYLE.DOTLINE;case"dot-color":return o.STYLE.DOTCOLOR;case"dot-size":return o.STYLE.DOTSIZE;case"line":return o.STYLE.LINE;case"grid":return o.STYLE.GRID;case"surface":return o.STYLE.SURFACE;case"bar":return o.STYLE.BAR;case"bar-color":return o.STYLE.BARCOLOR;case"bar-size":return o.STYLE.BARSIZE}return-1},o.prototype._determineColumnIndexes=function(t,e){if(this.style===o.STYLE.DOT||this.style===o.STYLE.DOTLINE||this.style===o.STYLE.LINE||this.style===o.STYLE.GRID||this.style===o.STYLE.SURFACE||this.style===o.STYLE.BAR)this.colX=0,this.colY=1,this.colZ=2,this.colValue=void 0,t.getNumberOfColumns()>3&&(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;o<t.length;o++)-1==i.indexOf(t[o][e])&&i.push(t[o][e]);return i},o.prototype.getColumnRange=function(t,e){for(var i={min:t[0][e],max:t[0][e]},o=0;o<t.length;o++)i.min>t[o][e]&&(i.min=t[o][e]),i.max<t[o][e]&&(i.max=t[o][e]);return i},o.prototype._dataInitialize=function(t,e){var i=this;if(this.dataSet&&this.dataSet.off("*",this._onChange),void 0!==t){Array.isArray(t)&&(t=new h(t));var n;if(!(t instanceof h||t instanceof d))throw new Error("Array, DataSet, or DataView expected");if(n=t.get(),0!=n.length){this.dataSet=t,this.dataTable=n,this._onChange=function(){i.setData(i.dataSet)},this.dataSet.on("*",this._onChange),this.colX="x",this.colY="y",this.colZ="z",this.colValue="style",this.colFilter="filter",n[0].hasOwnProperty("filter")&&void 0===this.dataFilter&&(this.dataFilter=new f(t,this.colFilter,this),this.dataFilter.setOnLoadCallback(function(){i.redraw()}));var s=this.style==o.STYLE.BAR||this.style==o.STYLE.BARCOLOR||this.style==o.STYLE.BARSIZE;if(s){if(void 0!==this.defaultXBarWidth)this.xBarWidth=this.defaultXBarWidth;else{var r=this.getDistinctValues(n,this.colX);this.xBarWidth=r[1]-r[0]||1}if(void 0!==this.defaultYBarWidth)this.yBarWidth=this.defaultYBarWidth;else{var a=this.getDistinctValues(n,this.colY);this.yBarWidth=a[1]-a[0]||1}}var l=this.getColumnRange(n,this.colX);s&&(l.min-=this.xBarWidth/2,l.max+=this.xBarWidth/2),this.xMin=void 0!==this.defaultXMin?this.defaultXMin:l.min,this.xMax=void 0!==this.defaultXMax?this.defaultXMax:l.max,this.xMax<=this.xMin&&(this.xMax=this.xMin+1),this.xStep=void 0!==this.defaultXStep?this.defaultXStep:(this.xMax-this.xMin)/5;var c=this.getColumnRange(n,this.colY);s&&(c.min-=this.yBarWidth/2,c.max+=this.yBarWidth/2),this.yMin=void 0!==this.defaultYMin?this.defaultYMin:c.min,this.yMax=void 0!==this.defaultYMax?this.defaultYMax:c.max,this.yMax<=this.yMin&&(this.yMax=this.yMin+1),this.yStep=void 0!==this.defaultYStep?this.defaultYStep:(this.yMax-this.yMin)/5;var u=this.getColumnRange(n,this.colZ);if(this.zMin=void 0!==this.defaultZMin?this.defaultZMin:u.min,this.zMax=void 0!==this.defaultZMax?this.defaultZMax:u.max,this.zMax<=this.zMin&&(this.zMax=this.zMin+1),this.zStep=void 0!==this.defaultZStep?this.defaultZStep:(this.zMax-this.zMin)/5,void 0!==this.colValue){var p=this.getColumnRange(n,this.colValue);this.valueMin=void 0!==this.defaultValueMin?this.defaultValueMin:p.min,this.valueMax=void 0!==this.defaultValueMax?this.defaultValueMax:p.max,this.valueMax<=this.valueMin&&(this.valueMax=this.valueMin+1)}this._setScale()}}},o.prototype._getDataPoints=function(t){var e,i,n,s,r,a,h=[];if(this.style===o.STYLE.GRID||this.style===o.STYLE.SURFACE){var d=[],l=[];for(n=0;n<this.getNumberOfRows(t);n++)e=t[n][this.colX]||0,i=t[n][this.colY]||0,-1===d.indexOf(e)&&d.push(e),-1===l.indexOf(i)&&l.push(i);var u=function(t,e){return t-e};d.sort(u),l.sort(u);var p=[];for(n=0;n<t.length;n++){e=t[n][this.colX]||0,i=t[n][this.colY]||0,s=t[n][this.colZ]||0;var f=d.indexOf(e),m=l.indexOf(i);void 0===p[f]&&(p[f]=[]);var v=new c;v.x=e,v.y=i,v.z=s,r={},r.point=v,r.trans=void 0,r.screen=void 0,r.bottom=new c(e,i,this.zMin),p[f][m]=r,h.push(r)}for(e=0;e<p.length;e++)for(i=0;i<p[e].length;i++)p[e][i]&&(p[e][i].pointRight=e<p.length-1?p[e+1][i]:void 0,p[e][i].pointTop=i<p[e].length-1?p[e][i+1]:void 0,p[e][i].pointCross=e<p.length-1&&i<p[e].length-1?p[e+1][i+1]:void 0)}else for(n=0;n<t.length;n++)a=new c,a.x=t[n][this.colX]||0,a.y=t[n][this.colY]||0,a.z=t[n][this.colZ]||0,void 0!==this.colValue&&(a.value=t[n][this.colValue]||0),r={},r.point=a,r.bottom=new c(a.x,a.y,this.zMin),r.trans=void 0,r.screen=void 0,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)};l.addEventListener(this.frame.canvas,"keydown",onkeydown),l.addEventListener(this.frame.canvas,"mousedown",i),l.addEventListener(this.frame.canvas,"touchstart",o),l.addEventListener(this.frame.canvas,"mousewheel",n),l.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"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.defaultXCenter.charAt(this.defaultXCenter.length-1)?this.xcenter=parseFloat(this.defaultXCenter)/100*this.frame.canvas.clientWidth:this.xcenter=parseFloat(this.defaultXCenter),"%"===this.defaultYCenter.charAt(this.defaultYCenter.length-1)?this.ycenter=parseFloat(this.defaultYCenter)/100*(this.frame.canvas.clientHeight-this.frame.filter.clientHeight):this.ycenter=parseFloat(this.defaultYCenter)},o.prototype.setCameraPosition=function(t){void 0!==t&&(void 0!==t.horizontal&&void 0!==t.vertical&&this.camera.setArmRotation(t.horizontal,t.vertical),void 0!==t.distance&&this.camera.setArmLength(t.distance),this.redraw())},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){var e=void 0;if(this.animationStop(),void 0!==t){if(void 0!==t.width&&(this.width=t.width),void 0!==t.height&&(this.height=t.height),void 0!==t.xCenter&&(this.defaultXCenter=t.xCenter),void 0!==t.yCenter&&(this.defaultYCenter=t.yCenter),void 0!==t.filterLabel&&(this.filterLabel=t.filterLabel),void 0!==t.legendLabel&&(this.legendLabel=t.legendLabel),void 0!==t.xLabel&&(this.xLabel=t.xLabel),void 0!==t.yLabel&&(this.yLabel=t.yLabel),void 0!==t.zLabel&&(this.zLabel=t.zLabel),void 0!==t.xValueLabel&&(this.xValueLabel=t.xValueLabel),void 0!==t.yValueLabel&&(this.yValueLabel=t.yValueLabel),void 0!==t.zValueLabel&&(this.zValueLabel=t.zValueLabel),void 0!==t.dotSizeRatio&&(this.dotSizeRatio=t.dotSizeRatio),void 0!==t.style){var i=this._getStyleNumber(t.style);-1!==i&&(this.style=i)}void 0!==t.showGrid&&(this.showGrid=t.showGrid),void 0!==t.showPerspective&&(this.showPerspective=t.showPerspective),void 0!==t.showShadow&&(this.showShadow=t.showShadow),void 0!==t.tooltip&&(this.showTooltip=t.tooltip),void 0!==t.showAnimationControls&&(this.showAnimationControls=t.showAnimationControls),void 0!==t.keepAspectRatio&&(this.keepAspectRatio=t.keepAspectRatio),void 0!==t.verticalRatio&&(this.verticalRatio=t.verticalRatio),void 0!==t.animationInterval&&(this.animationInterval=t.animationInterval),void 0!==t.animationPreload&&(this.animationPreload=t.animationPreload),void 0!==t.animationAutoStart&&(this.animationAutoStart=t.animationAutoStart),void 0!==t.xBarWidth&&(this.defaultXBarWidth=t.xBarWidth),void 0!==t.yBarWidth&&(this.defaultYBarWidth=t.yBarWidth),void 0!==t.xMin&&(this.defaultXMin=t.xMin),void 0!==t.xStep&&(this.defaultXStep=t.xStep),void 0!==t.xMax&&(this.defaultXMax=t.xMax),void 0!==t.yMin&&(this.defaultYMin=t.yMin),void 0!==t.yStep&&(this.defaultYStep=t.yStep),void 0!==t.yMax&&(this.defaultYMax=t.yMax),void 0!==t.zMin&&(this.defaultZMin=t.zMin),void 0!==t.zStep&&(this.defaultZStep=t.zStep),void 0!==t.zMax&&(this.defaultZMax=t.zMax),void 0!==t.valueMin&&(this.defaultValueMin=t.valueMin),void 0!==t.valueMax&&(this.defaultValueMax=t.valueMax),void 0!==t.backgroundColor&&this._setBackgroundColor(t.backgroundColor),void 0!==t.cameraPosition&&(e=t.cameraPosition),void 0!==e&&(this.camera.setArmRotation(e.horizontal,e.vertical),this.camera.setArmLength(e.distance)),void 0!==t.axisColor&&(this.axisColor=t.axisColor),void 0!==t.gridColor&&(this.gridColor=t.gridColor),t.dataColor&&("string"==typeof t.dataColor?(this.dataColor.fill=t.dataColor,this.dataColor.stroke=t.dataColor):(t.dataColor.fill&&(this.dataColor.fill=t.dataColor.fill),t.dataColor.stroke&&(this.dataColor.stroke=t.dataColor.stroke),void 0!==t.dataColor.strokeWidth&&(this.dataColor.strokeWidth=t.dataColor.strokeWidth)))}this.setSize(this.width,this.height),this.dataTable&&this.setData(this.dataTable),this.animationAutoStart&&this.dataFilter&&this.animationStart()},o.prototype.redraw=function(){if(void 0===this.dataPoints)throw"Error: graph data not initialized";this._resizeCanvas(),this._resizeCenter(),this._redrawSlider(),this._redrawClear(),this._redrawAxis(),this.style===o.STYLE.GRID||this.style===o.STYLE.SURFACE?this._redrawDataGrid():this.style===o.STYLE.LINE?this._redrawDataLine():this.style===o.STYLE.BAR||this.style===o.STYLE.BARCOLOR||this.style===o.STYLE.BARSIZE?this._redrawDataBar():this._redrawDataDot(),this._redrawInfo(),this._redrawLegend()},o.prototype._redrawClear=function(){var t=this.frame.canvas,e=t.getContext("2d");e.clearRect(0,0,t.width,t.height)},o.prototype._redrawLegend=function(){var t;if(this.style===o.STYLE.DOTCOLOR||this.style===o.STYLE.DOTSIZE){var e,i,n=this.frame.clientWidth*this.dotSizeRatio;this.style===o.STYLE.DOTSIZE?(e=n/2,i=n/2+2*n):(e=20,i=20);var s=Math.max(.25*this.frame.clientHeight,100),r=this.margin,a=this.frame.clientWidth-this.margin,h=a-i,d=r+s}var l=this.frame.canvas,c=l.getContext("2d");if(c.lineWidth=1,c.font="14px arial",this.style===o.STYLE.DOTCOLOR){var u=0,p=s;for(t=u;p>t;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()<this.valueMin&&b.next();!b.end();)t=d-(b.getCurrent()-this.valueMin)/(this.valueMax-this.valueMin)*s,c.beginPath(),c.moveTo(h-y,t),c.lineTo(h,t),c.stroke(),c.textAlign="right",c.textBaseline="middle",c.fillStyle=this.axisColor,c.fillText(b.getCurrent(),h-2*y,t),b.next();c.textAlign="right",c.textBaseline="top";var w=this.legendLabel;c.fillText(w,a,d+this.margin)}},o.prototype._redrawFilter=function(){if(this.frame.filter.innerHTML="",this.dataFilter){var t={visible:this.showAnimationControls},e=new m(this.frame.filter,t);this.frame.filter.slider=e,this.frame.filter.style.padding="10px",e.setValues(this.dataFilter.values),e.setPlayInterval(this.animationInterval);var i=this,o=function(){var t=e.getIndex();i.dataFilter.selectValue(t),i.dataPoints=i.dataFilter._getDataPoints(),i.redraw()};e.setOnChangeCallback(o)}else this.frame.filter.slider=void 0},o.prototype._redrawSlider=function(){void 0!==this.frame.filter.slider&&this.frame.filter.slider.redraw()},o.prototype._redrawInfo=function(){if(this.dataFilter){var t=this.frame.canvas,e=t.getContext("2d");e.font="14px arial",e.lineStyle="gray",e.fillStyle="gray",e.textAlign="left",e.textBaseline="top";var i=this.margin,o=this.margin;e.fillText(this.dataFilter.getLabel()+": "+this.dataFilter.getSelectedValue(),i,o)}},o.prototype._redrawAxis=function(){var t,e,i,o,n,s,r,a,h,d,l,u,p,f=this.frame.canvas,m=f.getContext("2d");m.font=24/this.camera.getArmLength()+"px arial";var g=.025/this.scale.x,y=.025/this.scale.y,b=5/this.camera.getArmLength(),w=this.camera.getArmRotation().horizontal;for(m.lineWidth=1,o=void 0===this.defaultXStep,i=new v(this.xMin,this.xMax,this.xStep,o),i.start(),i.getCurrent()<this.xMin&&i.next();!i.end();){var _=i.getCurrent();this.showGrid?(t=this._convert3Dto2D(new c(_,this.yMin,this.zMin)),e=this._convert3Dto2D(new c(_,this.yMax,this.zMin)),m.strokeStyle=this.gridColor,m.beginPath(),m.moveTo(t.x,t.y),m.lineTo(e.x,e.y),m.stroke()):(t=this._convert3Dto2D(new c(_,this.yMin,this.zMin)),e=this._convert3Dto2D(new c(_,this.yMin+g,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.yMax,this.zMin)),e=this._convert3Dto2D(new c(_,this.yMax-g,this.zMin)),m.strokeStyle=this.axisColor,m.beginPath(),m.moveTo(t.x,t.y),m.lineTo(e.x,e.y),m.stroke()),r=Math.cos(w)>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()<this.yMin&&i.next();!i.end();)this.showGrid?(t=this._convert3Dto2D(new c(this.xMin,i.getCurrent(),this.zMin)),e=this._convert3Dto2D(new c(this.xMax,i.getCurrent(),this.zMin)),m.strokeStyle=this.gridColor,m.beginPath(),m.moveTo(t.x,t.y),m.lineTo(e.x,e.y),m.stroke()):(t=this._convert3Dto2D(new c(this.xMin,i.getCurrent(),this.zMin)),e=this._convert3Dto2D(new c(this.xMin+y,i.getCurrent(),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,i.getCurrent(),this.zMin)),e=this._convert3Dto2D(new c(this.xMax-y,i.getCurrent(),this.zMin)),m.strokeStyle=this.axisColor,m.beginPath(),m.moveTo(t.x,t.y),m.lineTo(e.x,e.y),m.stroke()),s=Math.sin(w)>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()<this.zMin&&i.next(),s=Math.cos(w)>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;s<this.dataPoints.length;s++){var v=this._convertPointToTranslation(this.dataPoints[s].point),g=this._convertTranslationToScreen(v);this.dataPoints[s].trans=v,this.dataPoints[s].screen=g;var y=this._convertPointToTranslation(this.dataPoints[s].bottom);this.dataPoints[s].dist=this.showPerspective?y.length():-y.z}var b=function(t,e){return e.dist-t.dist};if(this.dataPoints.sort(b),this.style===o.STYLE.SURFACE){for(s=0;s<this.dataPoints.length;s++)if(t=this.dataPoints[s],e=this.dataPoints[s].pointRight,i=this.dataPoints[s].pointTop,n=this.dataPoints[s].pointCross,void 0!==t&&void 0!==e&&void 0!==i&&void 0!==n){if(this.showGrayBottom||this.showShadow){var w=c.subtract(n.trans,t.trans),_=c.subtract(i.trans,e.trans),x=c.crossProduct(w,_),k=x.length();r=x.z>0}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;s<this.dataPoints.length;s++)t=this.dataPoints[s],e=this.dataPoints[s].pointRight,i=this.dataPoints[s].pointTop,void 0!==t&&void 0!==e&&(p=(t.point.z+e.point.z)/2,d=240*(1-(p-this.zMin)*this.scale.z/this.verticalRatio),m.lineWidth=2*this._getStrokeWidth(t),m.strokeStyle=this._hsv2rgb(d,1,1),m.beginPath(),m.moveTo(t.screen.x,t.screen.y),m.lineTo(e.screen.x,e.screen.y),m.stroke()),void 0!==t&&void 0!==i&&(p=(t.point.z+i.point.z)/2,d=240*(1-(p-this.zMin)*this.scale.z/this.verticalRatio),m.lineWidth=2*this._getStrokeWidth(t),m.strokeStyle=this._hsv2rgb(d,1,1),m.beginPath(),m.moveTo(t.screen.x,t.screen.y),m.lineTo(i.screen.x,i.screen.y),m.stroke())}},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._redrawDataDot=function(){var t,e=this.frame.canvas,i=e.getContext("2d");if(!(void 0===this.dataPoints||this.dataPoints.length<=0)){for(t=0;t<this.dataPoints.length;t++){var n=this._convertPointToTranslation(this.dataPoints[t].point),s=this._convertTranslationToScreen(n);this.dataPoints[t].trans=n,this.dataPoints[t].screen=s;var r=this._convertPointToTranslation(this.dataPoints[t].bottom);this.dataPoints[t].dist=this.showPerspective?r.length():-r.z}var a=function(t,e){return e.dist-t.dist};this.dataPoints.sort(a);var h=this.frame.clientWidth*this.dotSizeRatio;for(t=0;t<this.dataPoints.length;t++){var d=this.dataPoints[t];if(this.style===o.STYLE.DOTLINE){var l=this._convert3Dto2D(d.bottom);i.lineWidth=1,i.strokeStyle=this.gridColor,i.beginPath(),i.moveTo(l.x,l.y),i.lineTo(d.screen.x,d.screen.y),i.stroke()}var c;c=this.style===o.STYLE.DOTSIZE?h/2+2*h*(d.point.value-this.valueMin)/(this.valueMax-this.valueMin):h;var u;u=this.showPerspective?c/-d.trans.z:c*-(this.eye.z/this.camera.getArmLength()),0>u&&(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;t<this.dataPoints.length;t++){var a=this._convertPointToTranslation(this.dataPoints[t].point),h=this._convertTranslationToScreen(a);this.dataPoints[t].trans=a,this.dataPoints[t].screen=h;var d=this._convertPointToTranslation(this.dataPoints[t].bottom);this.dataPoints[t].dist=this.showPerspective?d.length():-d.z}var l=function(t,e){return e.dist-t.dist};this.dataPoints.sort(l),r.lineJoin="round",r.lineCap="round";var u=this.xBarWidth/2,p=this.yBarWidth/2;for(t=0;t<this.dataPoints.length;t++){var f,m,v,g=this.dataPoints[t];this.style===o.STYLE.BARCOLOR?(f=240*(1-(g.point.value-this.valueMin)*this.scale.value),m=this._hsv2rgb(f,1,1),v=this._hsv2rgb(f,1,.8)):this.style===o.STYLE.BARSIZE?(m=this.dataColor.fill,v=this.dataColor.stroke):(f=240*(1-(g.point.z-this.zMin)*this.scale.z/this.verticalRatio),m=this._hsv2rgb(f,1,1),v=this._hsv2rgb(f,1,.8)),this.style===o.STYLE.BARSIZE&&(u=this.xBarWidth/2*((g.point.value-this.valueMin)/(this.valueMax-this.valueMin)*.8+.2),p=this.yBarWidth/2*((g.point.value-this.valueMin)/(this.valueMax-this.valueMin)*.8+.2));var y=this,b=g.point,w=[{point:new c(b.x-u,b.y-p,b.z)},{point:new c(b.x+u,b.y-p,b.z)},{point:new c(b.x+u,b.y+p,b.z)},{point:new c(b.x-u,b.y+p,b.z)}],_=[{point:new c(b.x-u,b.y-p,this.zMin)},{point:new c(b.x+u,b.y-p,this.zMin)},{point:new c(b.x+u,b.y+p,this.zMin)},{point:new c(b.x-u,b.y+p,this.zMin)}];w.forEach(function(t){t.screen=y._convert3Dto2D(t.point)}),_.forEach(function(t){t.screen=y._convert3Dto2D(t.point)});var x=[{corners:w,center:c.avg(_[0].point,_[2].point)},{corners:[w[0],w[1],_[1],_[0]],center:c.avg(_[1].point,_[0].point)},{corners:[w[1],w[2],_[2],_[1]],center:c.avg(_[2].point,_[1].point)},{corners:[w[2],w[3],_[3],_[2]],center:c.avg(_[3].point,_[2].point)},{corners:[w[3],w[0],_[0],_[3]],center:c.avg(_[0].point,_[3].point)}];for(g.surfaces=x,e=0;e<x.length;e++){i=x[e];var k=this._convertPointToTranslation(i.center);i.dist=this.showPerspective?k.length():-k.z}for(x.sort(function(t,e){var i=e.dist-t.dist;return i?i:t.corners===w?1:e.corners===w?-1:0}),r.lineWidth=this._getStrokeWidth(g),r.strokeStyle=v,r.fillStyle=m,e=2;e<x.length;e++)i=x[e],n=i.corners,r.beginPath(),r.moveTo(n[3].screen.x,n[3].screen.y),r.lineTo(n[0].screen.x,n[0].screen.y),r.lineTo(n[1].screen.x,n[1].screen.y),r.lineTo(n[2].screen.x,n[2].screen.y),r.lineTo(n[3].screen.x,n[3].screen.y),r.fill(),r.stroke()}}},o.prototype._redrawDataLine=function(){var t,e,i=this.frame.canvas,o=i.getContext("2d");if(!(void 0===this.dataPoints||this.dataPoints.length<=0)){for(e=0;e<this.dataPoints.length;e++){var n=this._convertPointToTranslation(this.dataPoints[e].point),s=this._convertTranslationToScreen(n);this.dataPoints[e].trans=n,this.dataPoints[e].screen=s}if(this.dataPoints.length>0){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;e<this.dataPoints.length;e++)t=this.dataPoints[e],o.lineTo(t.screen.x,t.screen.y);o.stroke()}}},o.prototype._onMouseDown=function(t){if(t=t||window.event,this.leftButtonDown&&this._onMouseUp(t),this.leftButtonDown=t.which?1===t.which:1===t.button,this.leftButtonDown||this.touchDown){this.startMouseX=n(t),this.startMouseY=s(t),this.startStart=new Date(this.start),this.startEnd=new Date(this.end),this.startArmRotation=this.camera.getArmRotation(),this.frame.style.cursor="move";var e=this;this.onmousemove=function(t){e._onMouseMove(t)},this.onmouseup=function(t){e._onMouseUp(t)},l.addEventListener(document,"mousemove",e.onmousemove),l.addEventListener(document,"mouseup",e.onmouseup),l.preventDefault(t)}},o.prototype._onMouseMove=function(t){t=t||window.event;var e=parseFloat(n(t))-this.startMouseX,i=parseFloat(s(t))-this.startMouseY,o=this.startArmRotation.horizontal+e/200,r=this.startArmRotation.vertical+i/200,a=4,h=Math.sin(a/360*2*Math.PI);Math.abs(Math.sin(o))<h&&(o=Math.round(o/Math.PI)*Math.PI-.001),Math.abs(Math.cos(o))<h&&(o=(Math.round(o/Math.PI-.5)+.5)*Math.PI-.001),Math.abs(Math.sin(r))<h&&(r=Math.round(r/Math.PI)*Math.PI),Math.abs(Math.cos(r))<h&&(r=(Math.round(r/Math.PI-.5)+.5)*Math.PI),this.camera.setArmRotation(o,r),this.redraw();var d=this.getCameraPosition();this.emit("cameraPositionChange",d),l.preventDefault(t)},o.prototype._onMouseUp=function(t){this.frame.style.cursor="auto",this.leftButtonDown=!1,l.removeEventListener(document,"mousemove",this.onmousemove),l.removeEventListener(document,"mouseup",this.onmouseup),l.preventDefault(t)},o.prototype._onTooltip=function(t){var e=300,i=this.frame.getBoundingClientRect(),o=n(t)-i.left,r=s(t)-i.top;if(this.showTooltip){if(this.tooltipTimeout&&clearTimeout(this.tooltipTimeout),this.leftButtonDown)return void this._hideTooltip();if(this.tooltip&&this.tooltip.dataPoint){var a=this._dataPointFromXY(o,r);a!==this.tooltip.dataPoint&&(a?this._showTooltip(a):this._hideTooltip())}else{var h=this;this.tooltipTimeout=setTimeout(function(){h.tooltipTimeout=null;var t=h._dataPointFromXY(o,r);t&&h._showTooltip(t)},e)}}},o.prototype._onTouchStart=function(t){this.touchDown=!0;var e=this;this.ontouchmove=function(t){e._onTouchMove(t)},this.ontouchend=function(t){e._onTouchEnd(t)},l.addEventListener(document,"touchmove",e.ontouchmove),l.addEventListener(document,"touchend",e.ontouchend),this._onMouseDown(t)},o.prototype._onTouchMove=function(t){this._onMouseMove(t)},o.prototype._onTouchEnd=function(t){this.touchDown=!1,l.removeEventListener(document,"touchmove",this.ontouchmove),l.removeEventListener(document,"touchend",this.ontouchend),this._onMouseUp(t)},o.prototype._onWheel=function(t){t||(t=window.event);var e=0;if(t.wheelDelta?e=t.wheelDelta/120:t.detail&&(e=-t.detail/3),e){var i=this.camera.getArmLength(),o=i*(1-e/10);this.camera.setArmLength(o),this.redraw(),this._hideTooltip()}var n=this.getCameraPosition();this.emit("cameraPositionChange",n),l.preventDefault(t)},o.prototype._insideTriangle=function(t,e){function i(t){return t>0?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;i<this.dataPoints.length;i++){s=this.dataPoints[i];var v=s.screen;if(v){var g=Math.abs(t-v.x),y=Math.abs(e-v.y),b=Math.sqrt(g*g+y*y);(null===a||a>b)&&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="<table><tr><td>"+this.xLabel+":</td><td>"+t.point.x+"</td></tr><tr><td>"+this.yLabel+":</td><td>"+t.point.y+"</td></tr><tr><td>"+this.zLabel+":</td><td>"+t.point.z+"</td></tr></table>",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;n<i.length;n++)if(o=i[n],o===e||o.fn===e){i.splice(n,1);break}return this},i.prototype.emit=function(t){this._callbacks=this._callbacks||{};var e=[].slice.call(arguments,1),i=this._callbacks[t];if(i){i=i.slice(0);for(var o=0,n=i.length;n>o;++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(t<this.values.length){this._getDataPoints(t);void 0===e.progress&&(e.progress=document.createElement("DIV"),e.progress.style.position="absolute",e.progress.style.color="gray",e.appendChild(e.progress));var i=this.getLoadedProgress();e.progress.innerHTML="Loading animation... "+i+"%",e.progress.style.bottom="60px",e.progress.style.left="10px";var o=this;setTimeout(function(){o.loadInBackground(t+1)},10),this.loaded=!1}else this.loaded=!0,void 0!==e.progress&&(e.removeChild(e.progress),e.progress=void 0),this.onLoadCallback&&this.onLoadCallback()},t.exports=o},function(t,e,i){function o(t,e){if(void 0===t)throw"Error: No container element defined";if(this.container=t,this.visible=e&&void 0!=e.visible?e.visible:!0,this.visible){this.frame=document.createElement("DIV"),this.frame.style.width="100%",this.frame.style.position="relative",this.container.appendChild(this.frame),this.frame.prev=document.createElement("INPUT"),this.frame.prev.type="BUTTON",this.frame.prev.value="Prev",this.frame.appendChild(this.frame.prev),this.frame.play=document.createElement("INPUT"),this.frame.play.type="BUTTON",this.frame.play.value="Play",this.frame.appendChild(this.frame.play),this.frame.next=document.createElement("INPUT"),this.frame.next.type="BUTTON",this.frame.next.value="Next",this.frame.appendChild(this.frame.next),this.frame.bar=document.createElement("INPUT"),this.frame.bar.type="BUTTON",this.frame.bar.style.position="absolute",this.frame.bar.style.border="1px solid red",this.frame.bar.style.width="100px",this.frame.bar.style.height="6px",this.frame.bar.style.borderRadius="2px",this.frame.bar.style.MozBorderRadius="2px",this.frame.bar.style.border="1px solid #7F7F7F",this.frame.bar.style.backgroundColor="#E5E5E5",this.frame.appendChild(this.frame.bar),this.frame.slide=document.createElement("INPUT"),this.frame.slide.type="BUTTON",this.frame.slide.style.margin="0px",this.frame.slide.value=" ",this.frame.slide.style.position="relative",this.frame.slide.style.left="-100px",this.frame.appendChild(this.frame.slide);var i=this;this.frame.slide.onmousedown=function(t){i._onMouseDown(t)},this.frame.prev.onclick=function(t){i.prev(t)},this.frame.play.onclick=function(t){i.togglePlay(t)},this.frame.next.onclick=function(t){i.next(t)}}this.onChangeCallback=void 0,this.values=[],this.index=void 0,this.playTimeout=void 0,this.playInterval=1e3,this.playLoop=!0}var n=i(1);o.prototype.prev=function(){var t=this.getIndex();t>0&&(t--,this.setIndex(t))},o.prototype.next=function(){var t=this.getIndex();t<this.values.length-1&&(t++,this.setIndex(t))},o.prototype.playNext=function(){var t=new Date,e=this.getIndex();e<this.values.length-1?(e++,this.setIndex(e)):this.playLoop&&(e=0,this.setIndex(e));var i=new Date,o=i-t,n=Math.max(this.playInterval-o,0),s=this;this.playTimeout=setTimeout(function(){s.playNext()},n)},o.prototype.togglePlay=function(){void 0===this.playTimeout?this.play():this.stop()},o.prototype.play=function(){this.playTimeout||(this.playNext(),this.frame&&(this.frame.play.value="Stop"))},o.prototype.stop=function(){clearInterval(this.playTimeout),this.playTimeout=void 0,this.frame&&(this.frame.play.value="Play")},o.prototype.setOnChangeCallback=function(t){this.onChangeCallback=t},o.prototype.setPlayInterval=function(t){this.playInterval=t},o.prototype.getPlayInterval=function(t){return this.playInterval},o.prototype.setPlayLoop=function(t){this.playLoop=t},o.prototype.onChange=function(){void 0!==this.onChangeCallback&&this.onChangeCallback()},o.prototype.redraw=function(){if(this.frame){this.frame.bar.style.top=this.frame.clientHeight/2-this.frame.bar.offsetHeight/2+"px",this.frame.bar.style.width=this.frame.clientWidth-this.frame.prev.clientWidth-this.frame.play.clientWidth-this.frame.next.clientWidth-30+"px";var t=this.indexToLeft(this.index);this.frame.slide.style.left=t+"px"}},o.prototype.setValues=function(t){this.values=t,this.values.length>0?this.setIndex(0):this.index=void 0},o.prototype.setIndex=function(t){if(!(t<this.values.length))throw"Error: index out of range";this.index=t,this.redraw(),this.onChange()},o.prototype.getIndex=function(){return this.index},o.prototype.get=function(){return this.values[this.index]},o.prototype._onMouseDown=function(t){var e=t.which?1===t.which:1===t.button;if(e){this.startClientX=t.clientX,this.startSlideX=parseFloat(this.frame.slide.style.left),this.frame.style.cursor="move";var i=this;this.onmousemove=function(t){i._onMouseMove(t)},this.onmouseup=function(t){i._onMouseUp(t)},n.addEventListener(document,"mousemove",this.onmousemove),n.addEventListener(document,"mouseup",this.onmouseup),n.preventDefault(t)}},o.prototype.leftToIndex=function(t){var e=parseFloat(this.frame.bar.style.width)-this.frame.slide.clientWidth-10,i=t-3,o=Math.round(i/e*(this.values.length-1));return 0>o&&(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;a<s.length;a++)if(r=s[a]._handlers[e.type])for(var h=0;h<r.length&&!i;h++)r[h](e);n=n.parentNode}}var r=o||{preventDefault:!1};if(i.Manager){var a=i,h=function(t,i){var o=Object.create(r);return i&&a.assign(o,i),e(new a(t,o),o)};return a.assign(h,a),h.Manager=function(t,i){var o=Object.create(r);return i&&a.assign(o,i),e(new a.Manager(t,o),o)},h}var d=Object.create(i),l=i.element;return l.hammer||(l.hammer=[]),l.hammer.push(d),i.on("hammer.input",function(e){r.preventDefault!==!0&&r.preventDefault!==e.pointerType||e.preventDefault(),e.isFirst&&(t=e.target)}),d._handlers={},d.on=function(t,e){return n(t).forEach(function(t){var o=d._handlers[t];o||(d._handlers[t]=o=[],i.on(t,s)),o.push(e)}),d},d.off=function(t,e){return n(t).forEach(function(t){var o=d._handlers[t];o&&(o=e?o.filter(function(t){return t!==e}):[],o.length>0?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<t.length;)e.call(i,t[o],o,t),o++;else for(o in t)t.hasOwnProperty(o)&&e.call(i,t[o],o,t)}function c(t,e,i){var o="DEPRECATED METHOD: "+e+"\n"+i+" AT \n";return function(){var e=new Error("get-stack-trace"),i=e&&e.stack?e.stack.replace(/^[^\(]+?[\n$]/gm,"").replace(/^\s+at\s+/gm,"").replace(/^Object.<anonymous>\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;o<t.length;){if(i&&t[o][i]==e||!i&&t[o]===e)return o;o++}return-1}function x(t){return Array.prototype.slice.call(t,0)}function k(t,e,i){for(var o=[],n=[],s=0;s<t.length;){var r=e?t[s][e]:t[s];_(n,r)<0&&o.push(t[s]),n[s]=r,s++}return i&&(o=e?o.sort(function(t,i){return t[e]>i[e]}):o.sort()),o}function O(t,e){for(var i,o,n=e[0].toUpperCase()+e.slice(1),s=0;s<ut.length;){if(i=ut[s],o=i?i+n:e,o in t)return o;s++}return a}function M(){return wt++}function D(t){var e=t.ownerDocument||t;return e.defaultView||e.parentWindow||n}function S(t,e){var i=this;this.manager=t,this.callback=e,this.element=t.element,this.target=t.options.inputTarget,this.domHandler=function(e){f(t.options.enable,[t])&&i.handler(e)},this.init()}function C(t){var e,i=t.options.inputClass;return new(e=i?i:kt?W:Ot?V:xt?q:H)(t,T)}function T(t,e,i){var o=i.pointers.length,n=i.changedPointers.length,s=e&Et&&o-n===0,r=e&(It|Nt)&&o-n===0;
+i.isFirst=!!s,i.isFinal=!!r,s&&(t.session={}),i.eventType=e,E(t,i),t.emit("hammer.input",i),t.recognize(i),t.session.prevInput=i}function E(t,e){var i=t.session,o=e.pointers,n=o.length;i.firstInput||(i.firstInput=N(e)),n>1&&!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;i<t.pointers.length;)e[i]={clientX:mt(t.pointers[i].clientX),clientY:mt(t.pointers[i].clientY)},i++;return{timeStamp:gt(),pointers:e,center:R(e),deltaX:t.deltaX,deltaY:t.deltaY}}function R(t){var e=t.length;if(1===e)return{x:mt(t[0].clientX),y:mt(t[0].clientY)};for(var i=0,o=0,n=0;e>n;)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;n<s.length;)o[s[n].identifier]=!0,n++;for(n=0;n<r.length;)o[r[n].identifier]&&a.push(r[n]),e&(It|Nt)&&delete o[r[n].identifier],n++;return a.length?[k(s.concat(a),"identifier",!0),a]:void 0}function q(){S.apply(this,arguments);var t=p(this.handler,this);this.touch=new V(this.manager,t),this.mouse=new H(this.manager,t)}function X(t,e){this.manager=t,this.set(e)}function Z(t){if(b(t,ae))return ae;var e=b(t,he),i=b(t,de);return e&&i?ae:e||i?e?he:de:b(t,re)?re:se}function K(t){this.options=ct({},this.defaults,t||{}),this.id=M(),this.manager=null,this.options.enable=m(this.options.enable,!0),this.state=le,this.simultaneous={},this.requireFail=[]}function J(t){return t&me?"cancel":t&pe?"end":t&ue?"move":t&ce?"start":""}function Q(t){return t==Bt?"down":t==At?"up":t==zt?"left":t==Lt?"right":""}function $(t,e){var i=e.manager;return i?i.get(t):t}function tt(){K.apply(this,arguments)}function et(){tt.apply(this,arguments),this.pX=null,this.pY=null}function it(){tt.apply(this,arguments)}function ot(){K.apply(this,arguments),this._timer=null,this._input=null}function nt(){tt.apply(this,arguments)}function st(){tt.apply(this,arguments)}function rt(){K.apply(this,arguments),this.pTime=!1,this.pCenter=!1,this._timer=null,this._input=null,this.count=0}function at(t,e){return e=e||{},e.recognizers=m(e.recognizers,at.defaults.preset),new ht(t,e)}function ht(t,e){this.options=ct({},at.defaults,e||{}),this.options.inputTarget=this.options.inputTarget||t,this.handlers={},this.session={},this.recognizers=[],this.element=t,this.input=C(this),this.touchAction=new X(this,this.options.touchAction),dt(this,!0),l(this.options.recognizers,function(t){var e=this.add(new t[0](t[1]));t[2]&&e.recognizeWith(t[2]),t[3]&&e.requireFailure(t[3])},this)}function dt(t,e){var i=t.element;i.style&&l(t.options.cssProps,function(t,o){i.style[O(i.style,o)]=e?t:""})}function lt(t,e){var i=s.createEvent("Event");i.initEvent(t,!0,!0),i.gesture=e,e.target.dispatchEvent(i)}var ct,ut=["","webkit","Moz","MS","ms","o"],pt=s.createElement("div"),ft="function",mt=Math.round,vt=Math.abs,gt=Date.now;ct="function"!=typeof Object.assign?function(t){if(t===a||null===t)throw new TypeError("Cannot convert undefined or null to object");for(var e=Object(t),i=1;i<arguments.length;i++){var o=arguments[i];if(o!==a&&null!==o)for(var n in o)o.hasOwnProperty(n)&&(e[n]=o[n])}return e}:Object.assign;var yt=c(function(t,e,i){for(var o=Object.keys(e),n=0;n<o.length;)(!i||i&&t[o[n]]===a)&&(t[o[n]]=e[o[n]]),n++;return t},"extend","Use `assign`."),bt=c(function(t,e){return yt(t,e,!0)},"merge","Use `assign`."),wt=1,_t=/mobile|tablet|ip(ad|hone|od)|android/i,xt="ontouchstart"in n,kt=O(n,"PointerEvent")!==a,Ot=xt&&_t.test(navigator.userAgent),Mt="touch",Dt="pen",St="mouse",Ct="kinect",Tt=25,Et=1,Pt=2,It=4,Nt=8,Rt=1,zt=2,Lt=4,At=8,Bt=16,Ft=zt|Lt,jt=At|Bt,Ht=Ft|jt,Wt=["x","y"],Yt=["clientX","clientY"];S.prototype={handler:function(){},init:function(){this.evEl&&v(this.element,this.evEl,this.domHandler),this.evTarget&&v(this.target,this.evTarget,this.domHandler),this.evWin&&v(D(this.element),this.evWin,this.domHandler)},destroy:function(){this.evEl&&g(this.element,this.evEl,this.domHandler),this.evTarget&&g(this.target,this.evTarget,this.domHandler),this.evWin&&g(D(this.element),this.evWin,this.domHandler)}};var Gt={mousedown:Et,mousemove:Pt,mouseup:It},Vt="mousedown",Ut="mousemove mouseup";u(H,S,{handler:function(t){var e=Gt[t.type];e&Et&&0===t.button&&(this.pressed=!0),e&Pt&&1!==t.which&&(e=It),this.pressed&&this.allow&&(e&It&&(this.pressed=!1),this.callback(this.manager,e,{pointers:[t],changedPointers:[t],pointerType:St,srcEvent:t}))}});var qt={pointerdown:Et,pointermove:Pt,pointerup:It,pointercancel:Nt,pointerout:Nt},Xt={2:Mt,3:Dt,4:St,5:Ct},Zt="pointerdown",Kt="pointermove pointerup pointercancel";n.MSPointerEvent&&!n.PointerEvent&&(Zt="MSPointerDown",Kt="MSPointerMove MSPointerUp MSPointerCancel"),u(W,S,{handler:function(t){var e=this.store,i=!1,o=t.type.toLowerCase().replace("ms",""),n=qt[o],s=Xt[t.pointerType]||t.pointerType,r=s==Mt,a=_(e,t.pointerId,"pointerId");n&Et&&(0===t.button||r)?0>a&&(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;t<this.requireFail.length;){if(!(this.requireFail[t].state&(ve|le)))return!1;t++}return!0},recognize:function(t){var e=ct({},t);return f(this.options.enable,[this,e])?(this.state&(fe|me|ve)&&(this.state=le),this.state=this.process(e),void(this.state&(ce|ue|pe|me)&&this.tryEmit(e))):(this.reset(),void(this.state=ve))},process:function(t){},getTouchAction:function(){},reset:function(){}},u(tt,K,{defaults:{pointers:1},attrTest:function(t){var e=this.options.pointers;return 0===e||t.pointers.length===e},process:function(t){var e=this.state,i=t.eventType,o=e&(ce|ue),n=this.attrTest(t);return o&&(i&Nt||!n)?e|me:o||n?i&It?e|pe:e&ce?e|ue:ce:ve}}),u(et,tt,{defaults:{event:"pan",threshold:10,pointers:1,direction:Ht},getTouchAction:function(){var t=this.options.direction,e=[];return t&Ft&&e.push(de),t&jt&&e.push(he),e},directionTest:function(t){var e=this.options,i=!0,o=t.distance,n=t.direction,s=t.deltaX,r=t.deltaY;return n&e.direction||(e.direction&Ft?(n=0===s?Rt:0>s?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.distance<e.threshold,n=t.deltaTime>e.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.threshold,n=t.deltaTime<e.time;if(this.reset(),t.eventType&Et&&0===this.count)return this.failTimeout();if(o&&n&&i){if(t.eventType!=It)return this.failTimeout();var s=this.pTime?t.timeStamp-this.pTime<e.interval:!0,r=!this.pCenter||A(this.pCenter,t.center)<e.posThreshold;this.pTime=t.timeStamp,this.pCenter=t.center,r&&s?this.count+=1:this.count=1,this._input=t;var a=this.count%e.taps;if(0===a)return this.hasRequireFailures()?(this._timer=h(function(){this.state=fe,this.tryEmit()},e.interval,this),ce):fe}return ve},failTimeout:function(){return this._timer=h(function(){this.state=ve},this.options.interval,this),ve},reset:function(){clearTimeout(this._timer)},emit:function(){this.state==fe&&(this._input.tapCount=this.count,this.manager.emit(this.options.event,this._input))}}),at.VERSION="2.0.6",at.defaults={domEvents:!1,touchAction:ne,enable:!0,inputTarget:null,inputClass:null,preset:[[nt,{enable:!1}],[it,{enable:!1},["rotate"]],[st,{direction:Ft}],[et,{direction:Ft},["swipe"]],[rt],[rt,{event:"doubletap",taps:2},["tap"]],[ot]],cssProps:{userSelect:"none",touchSelect:"none",touchCallout:"none",contentZooming:"none",userDrag:"none",tapHighlightColor:"rgba(0,0,0,0)"}};var ge=1,ye=2;ht.prototype={set:function(t){return ct(this.options,t),t.touchAction&&this.touchAction.update(),t.inputTarget&&(this.input.destroy(),this.input.target=t.inputTarget,this.input.init()),this},stop:function(t){this.session.stopped=t?ye:ge},recognize:function(t){var e=this.session;if(!e.stopped){this.touchAction.preventDefaults(t);var i,o=this.recognizers,n=e.curRecognizer;(!n||n&&n.state&fe)&&(n=e.curRecognizer=null);for(var s=0;s<o.length;)i=o[s],e.stopped===ye||n&&i!=n&&!i.canRecognizeWith(n)?i.reset():i.recognize(t),!n&&i.state&(ce|ue|pe)&&(n=e.curRecognizer=i),s++}},get:function(t){if(t instanceof K)return t;for(var e=this.recognizers,i=0;i<e.length;i++)if(e[i].options.event==t)return e[i];return null},add:function(t){if(d(t,"add",this))return this;var e=this.get(t.options.event);return e&&this.remove(e),this.recognizers.push(t),t.manager=this,this.touchAction.update(),t},remove:function(t){if(d(t,"remove",this))return this;if(t=this.get(t)){var e=this.recognizers,i=_(e,t);-1!==i&&(e.splice(i,1),this.touchAction.update())}return this},on:function(t,e){var i=this.handlers;return l(w(t),function(t){i[t]=i[t]||[],i[t].push(e)}),this},off:function(t,e){var i=this.handlers;return l(w(t),function(t){e?i[t]&&i[t].splice(_(i[t],e),1):delete i[t]}),this},emit:function(t,e){this.options.domEvents&&lt(t,e);var i=this.handlers[t]&&this.handlers[t].slice();if(i&&i.length){e.type=t,e.preventDefault=function(){e.srcEvent.preventDefault()};for(var o=0;o<i.length;)i[o](e),o++}},destroy:function(){this.element&&dt(this,!1),this.handlers={},this.session={},this.input.destroy(),this.element=null}},ct(at,{INPUT_START:Et,INPUT_MOVE:Pt,INPUT_END:It,INPUT_CANCEL:Nt,STATE_POSSIBLE:le,STATE_BEGAN:ce,STATE_CHANGED:ue,STATE_ENDED:pe,STATE_RECOGNIZED:fe,STATE_CANCELLED:me,STATE_FAILED:ve,DIRECTION_NONE:Rt,DIRECTION_LEFT:zt,DIRECTION_RIGHT:Lt,DIRECTION_UP:At,DIRECTION_DOWN:Bt,DIRECTION_HORIZONTAL:Ft,DIRECTION_VERTICAL:jt,DIRECTION_ALL:Ht,Manager:ht,Input:S,TouchAction:X,TouchInput:V,MouseInput:H,PointerEventInput:W,TouchMouseInput:q,SingleTouchInput:Y,Recognizer:K,AttrRecognizer:tt,Tap:rt,Pan:et,Swipe:st,Pinch:it,Rotate:nt,Press:ot,on:v,off:g,each:l,merge:bt,extend:yt,assign:ct,inherit:u,bindFn:p,prefixed:O});var be="undefined"!=typeof n?n:"undefined"!=typeof self?self:{};be.Hammer=at,o=function(){return at}.call(e,i,e,t),!(o!==a&&(t.exports=o))}(window,document,"Hammer")},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;n<o.length;n++)void 0===o[n].shift?o[n].fn(t):1==o[n].shift&&1==t.shiftKey?o[n].fn(t):0==o[n].shift&&0==t.shiftKey&&o[n].fn(t);1==i&&t.preventDefault()}};return n.bind=function(t,e,i){if(void 0===i&&(i="keydown"),void 0===r[t])throw new Error("unsupported key: "+t);void 0===s[i][r[t].code]&&(s[i][r[t].code]=[]),s[i][r[t].code].push({fn:e,shift:r[t].shift})},n.bindAll=function(t,e){void 0===e&&(e="keydown");for(var i in r)r.hasOwnProperty(i)&&n.bind(i,t,e)},n.getKey=function(t){for(var e in r)if(r.hasOwnProperty(e)){if(1==t.shiftKey&&1==r[e].shift&&t.keyCode==r[e].code)return e;if(0==t.shiftKey&&0==r[e].shift&&t.keyCode==r[e].code)return e;if(t.keyCode==r[e].code&&"shift"==e)return e}return"unknown key, currently not supported"},n.unbind=function(t,e,i){if(void 0===i&&(i="keydown"),void 0===r[t])throw new Error("unsupported key: "+t);if(void 0!==e){var o=[],n=s[i][r[t].code];if(void 0!==n)for(var a=0;a<n.length;a++)n[a].fn==e&&n[a].shift==r[t].shift||o.push(s[i][r[t].code][a]);s[i][r[t].code]=o}else s[i][r[t].code]=[]},n.reset=function(){s={keydown:{},keyup:{}}},n.destroy=function(){s={keydown:{},keyup:{}},o.removeEventListener("keydown",a,!0),o.removeEventListener("keyup",h,!0)},o.addEventListener("keydown",a,!0),o.addEventListener("keyup",h,!0),n}return t})},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.Timeline=i(25),e.Graph2d=i(50),e.timeline={Core:i(33),DateUtil:i(32),Range:i(30),stack:i(37),TimeStep:i(35),components:{items:{Item:i(39),BackgroundItem:i(43),BoxItem:i(41),PointItem:i(42),RangeItem:i(38)},BackgroundGroup:i(40),Component:i(31),CurrentTime:i(48),CustomTime:i(46),DataAxis:i(52),DataScale:i(53),GraphGroup:i(54),Group:i(36),ItemSet:i(34),Legend:i(58),LineGraph:i(51),TimeAxis:i(44)}},e.moment=i(2),e.Hammer=i(20),e.keycharm=i(23)},function(t,e,i){function o(t){return t&&t.__esModule?t:{"default":t}}function n(t,e,i,o){if(!(this instanceof n))throw new SyntaxError("Constructor must be called with the new operator");if(!(Array.isArray(i)||i instanceof c||i instanceof u)&&i instanceof Object){var s=o;o=i,i=s}var r=this;this.defaultOptions={start:null,end:null,autoResize:!0,throttleRedraw:0,orientation:{axis:"bottom",item:"bottom"},rtl:!1,moment:d,width:null,height:null,maxHeight:null,minHeight:null},this.options=l.deepExtend({},this.defaultOptions),this._create(t),this.components=[],this.body={dom:this.dom,domProps:this.props,emitter:{on:this.on.bind(this),off:this.off.bind(this),emit:this.emit.bind(this)},hiddenDates:[],util:{getScale:function(){return r.timeAxis.step.scale},getStep:function(){return r.timeAxis.step.step},toScreen:r._toScreen.bind(r),toGlobalScreen:r._toGlobalScreen.bind(r),toTime:r._toTime.bind(r),toGlobalTime:r._toGlobalTime.bind(r)}},this.range=new p(this.body),this.components.push(this.range),this.body.range=this.range,this.timeAxis=new m(this.body),this.timeAxis2=null,this.components.push(this.timeAxis),this.currentTime=new v(this.body),this.components.push(this.currentTime),this.itemSet=new y(this.body,this.options),this.components.push(this.itemSet),this.itemsData=null,this.groupsData=null,this.on("tap",function(t){r.emit("click",r.getEventProperties(t))}),this.on("doubletap",function(t){r.emit("doubleClick",r.getEventProperties(t))}),this.dom.root.oncontextmenu=function(t){r.emit("contextmenu",r.getEventProperties(t))},this.fitDone=!1,this.on("changed",function(){if(null!=this.itemsData&&!r.fitDone)if(r.fitDone=!0,void 0!=r.options.start||void 0!=r.options.end){if(void 0==r.options.start||void 0==r.options.end)var t=r.getItemRange();var e=void 0!=r.options.start?r.options.start:t.min,i=void 0!=r.options.end?r.options.end:t.max;r.setWindow(e,i,{animation:!1})}else r.fit({animation:!1})}),o&&this.setOptions(o),i&&this.setGroups(i),e&&this.setItems(e),this._redraw()}var s=i(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(34),b=i(29).printStyle,w=i(49).allOptions,_=i(49).configureOptions;n.prototype=new f,n.prototype._createConfigurator=function(){return new r["default"](this,this.dom.container,_)},n.prototype.redraw=function(){this.itemSet&&this.itemSet.markDirty({refreshItems:!0}),this._redraw()},n.prototype.setOptions=function(t){var e=h["default"].validate(t,w);if(e===!0&&console.log("%cErrors have been found in the supplied options object.",b),f.prototype.setOptions.call(this,t),"type"in t&&t.type!==this.options.type){this.options.type=t.type;var i=this.itemsData;if(i){var o=this.getSelection();this.setItems(null),this.setItems(i),this.setSelection(o)}}},n.prototype.setItems=function(t){var e;e=t?t instanceof c||t instanceof u?t:new c(t,{type:{start:"Date",end:"Date"}}):null,this.itemsData=e,this.itemSet&&this.itemSet.setItems(e)},n.prototype.setGroups=function(t){var e;e=t?t instanceof c||t instanceof u?t:new c(t):null,this.groupsData=e,this.itemSet.setGroups(e)},n.prototype.setData=function(t){t&&t.groups&&this.setGroups(t.groups),t&&t.items&&this.setItems(t.items)},n.prototype.setSelection=function(t,e){this.itemSet&&this.itemSet.setSelection(t),e&&e.focus&&this.focus(t,e)},n.prototype.getSelection=function(){return this.itemSet&&this.itemSet.getSelection()||[]},n.prototype.focus=function(t,e){if(this.itemsData&&void 0!=t){var i=Array.isArray(t)?t:[t],o=this.itemsData.getDataSet().get(i,{type:{start:"Date",end:"Date"}}),n=null,s=null;if(o.forEach(function(t){var e=t.start.valueOf(),i="end"in t?t.end.valueOf():t.start.valueOf();(null===n||n>e)&&(n=e),(null===s||i>s)&&(s=i)}),null!==n&&null!==s){var r=(n+s)/2,a=Math.max(this.range.end-this.range.start,1.1*(s-n)),h=e&&void 0!==e.animation?e.animation:!0;this.range.setRange(r-a/2,r+a/2,h)}}},n.prototype.fit=function(t){var e,i=t&&void 0!==t.animation?t.animation:!0,o=this.itemsData&&this.itemsData.getDataSet();1===o.length&&void 0===o.get()[0].end?(e=this.getDataRange(),this.moveTo(e.min.valueOf(),{animation:i})):(e=this.getItemRange(),this.range.setRange(e.min,e.max,i))},n.prototype.getItemRange=function(){var t=this,e=this.getDataRange(),i=null!==e.min?e.min.valueOf():null,o=null!==e.max?e.max.valueOf():null,n=null,s=null;if(null!=i&&null!=o){var r,a,h,d,c;!function(){var e=function(t){return l.convert(t.data.start,"Date").valueOf()},u=function(t){var e=void 0!=t.data.end?t.data.end:t.data.start;return l.convert(e,"Date").valueOf()};r=o-i,0>=r&&(r=10),a=r/t.props.center.width,l.forEach(t.itemSet.items,function(t){t.show(),t.repositionX();var r=e(t),h=u(t);if(this.options.rtl)var d=r-(t.getWidthRight()+10)*a,l=h+(t.getWidthLeft()+10)*a;else var d=r-(t.getWidthLeft()+10)*a,l=h+(t.getWidthRight()+10)*a;i>d&&(i=d,n=t),l>o&&(o=l,s=t)}.bind(t)),n&&s&&(h=n.getWidthLeft()+10,d=s.getWidthRight()+10,c=t.props.center.width-h-d,c>0&&(t.options.rtl?(i=e(n)-d*r/c,o=u(s)+h*r/c):(i=e(n)-h*r/c,o=u(s)+d*r/c)))}()}return{min:null!=i?new Date(i):null,max:null!=o?new Date(o):null}},n.prototype.getDataRange=function(){var t=null,e=null,i=this.itemsData&&this.itemsData.getDataSet();return i&&i.forEach(function(i){var o=l.convert(i.start,"Date").valueOf(),n=l.convert(void 0!=i.end?i.end:i.start,"Date").valueOf();(null===t||t>o)&&(t=o),(null===e||n>e)&&(e=n)}),{min:null!=t?new Date(t):null,max:null!=e?new Date(e):null}},n.prototype.getEventProperties=function(t){var e=t.center?t.center.x:t.clientX,i=t.center?t.center.y:t.clientY;if(this.options.rtl)var o=l.getAbsoluteRight(this.dom.centerContainer)-e;else var o=e-l.getAbsoluteLeft(this.dom.centerContainer);var n=i-l.getAbsoluteTop(this.dom.centerContainer),s=this.itemSet.itemFromTarget(t),r=this.itemSet.groupFromTarget(t),a=g.customTimeFromTarget(t),h=this.itemSet.options.snap||null,d=this.body.util.getScale(),c=this.body.util.getStep(),u=this._toTime(o),p=h?h(u,d,c):u,f=l.getTarget(t),m=null;return null!=s?m="item":null!=a?m="custom-time":l.hasParent(f,this.timeAxis.dom.foreground)?m="axis":this.timeAxis2&&l.hasParent(f,this.timeAxis2.dom.foreground)?m="axis":l.hasParent(f,this.itemSet.dom.labelSet)?m="group-label":l.hasParent(f,this.currentTime.bar)?m="current-time":l.hasParent(f,this.dom.center)&&(m="background"),{event:t,item:s?s.id:null,group:r?r.groupId:null,what:m,pageX:t.srcEvent?t.srcEvent.pageX:t.pageX,pageY:t.srcEvent?t.srcEvent.pageY:t.pageY,x:o,y:n,time:u,snappedTime:p}},t.exports=n},function(t,e,i){function o(t){return t&&t.__esModule?t:{"default":t}}function n(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(e,"__esModule",{value:!0});var s="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol?"symbol":typeof t},r=function(){function t(t,e){for(var i=0;i<e.length;i++){var o=e[i];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(t,o.key,o)}}return function(e,i,o){return i&&t(e.prototype,i),o&&t(e,o),e}}(),a=i(27),h=o(a),d=i(1),l=function(){function t(e,i,o){var s=arguments.length<=3||void 0===arguments[3]?1:arguments[3];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&&-1===e.indexOf(n)||(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;t<this.domElements.length;t++)this.wrapper.appendChild(this.domElements[t]);this._showPopupIfNeeded()}},{key:"_clean",value:function(){for(var t=0;t<this.domElements.length;t++)this.wrapper.removeChild(this.domElements[t]);void 0!==this.wrapper&&(this.container.removeChild(this.wrapper),this.wrapper=void 0),this.domElements=[],this._removePopup()}},{key:"_getValue",value:function(t){for(var e=this.moduleOptions,i=0;i<t.length;i++){if(void 0===e[t[i]]){e=void 0;break}e=e[t[i]]}return e}},{key:"_makeItem",value:function(t){var e=arguments,i=this;if(this.allowCreation===!0){var o,n,r,a=function(){var s=document.createElement("div");for(s.className="vis-configuration vis-config-item vis-config-s"+t.length,o=e.length,n=Array(o>1?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="<i><b>"+t+":</b></i>":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;s<t.length;s++){var r=document.createElement("option");r.value=t[s],s===n&&(r.selected="selected"),r.innerHTML=t[s],o.appendChild(r)}var a=this;o.onchange=function(){a._update(this.value,i)};var h=this._makeLabel(i[i.length-1],i);this._makeItem(i,h,o)}},{key:"_makeRange",value:function(t,e,i){
+var o=t[0],n=t[1],s=t[2],r=t[3],a=document.createElement("input");a.className="vis-configuration vis-config-range";try{a.type="range",a.min=n,a.max=s}catch(h){}a.step=r;var d="",l=0;if(void 0!==e){var c=1.2;0>e&&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.popupCounter<this.popupLimit){var o=document.createElement("div");o.id="vis-configuration-popup",o.className="vis-configuration-popup",o.innerHTML=t,o.onclick=function(){i._removePopup()},this.popupCounter+=1,this.popupDiv={html:o,index:e}}}},{key:"_removePopup",value:function(){void 0!==this.popupDiv.html&&(this.popupDiv.html.parentNode.removeChild(this.popupDiv.html),clearTimeout(this.popupDiv.hideTimeout),clearTimeout(this.popupDiv.deleteTimeout),this.popupDiv={})}},{key:"_showPopupIfNeeded",value:function(){var t=this;if(void 0!==this.popupDiv.html){var e=this.domElements[this.popupDiv.index],i=e.getBoundingClientRect();this.popupDiv.html.style.left=i.left+"px",this.popupDiv.html.style.top=i.top-30+"px",document.body.appendChild(this.popupDiv.html),this.popupDiv.hideTimeout=setTimeout(function(){t.popupDiv.html.style.opacity=0},1500),this.popupDiv.deleteTimeout=setTimeout(function(){t._removePopup()},1800)}}},{key:"_makeCheckbox",value:function(t,e,i){var o=document.createElement("input");o.type="checkbox",o.className="vis-configuration vis-config-checkbox",o.checked=t,void 0!==e&&(o.checked=e,e!==t&&("object"===("undefined"==typeof t?"undefined":s(t))?e!==t.enabled&&this.changedOptions.push({path:i,value:e}):this.changedOptions.push({path:i,value:e})));var n=this;o.onchange=function(){n._update(this.checked,i)};var r=this._makeLabel(i[i.length-1],i);this._makeItem(i,r,o)}},{key:"_makeTextInput",value:function(t,e,i){var o=document.createElement("input");o.type="text",o.className="vis-configuration vis-config-text",o.value=e,e!==t&&this.changedOptions.push({path:i,value:e});var n=this;o.onchange=function(){n._update(this.value,i)};var s=this._makeLabel(i[i.length-1],i);this._makeItem(i,s,o)}},{key:"_makeColorField",value:function(t,e,i){var o=this,n=t[1],s=document.createElement("div");e=void 0===e?n:e,"none"!==e?(s.className="vis-configuration vis-config-colorBlock",s.style.backgroundColor=e):s.className="vis-configuration vis-config-colorBlock none",e=void 0===e?n:e,s.onclick=function(){o._showColorPicker(e,s,i)};var r=this._makeLabel(i[i.length-1],i);this._makeItem(i,r,s)}},{key:"_showColorPicker",value:function(t,e,i){var o=this;e.onclick=function(){},this.colorPicker.insertTo(e),this.colorPicker.show(),this.colorPicker.setColor(t),this.colorPicker.setUpdateCallback(function(t){var n="rgba("+t.r+","+t.g+","+t.b+","+t.a+")";e.style.backgroundColor=n,o._update(n,i)}),this.colorPicker.setCloseCallback(function(){e.onclick=function(){o._showColorPicker(t,e,i)}})}},{key:"_handleObject",value:function(t){var e=arguments.length<=1||void 0===arguments[1]?[]:arguments[1],i=arguments.length<=2||void 0===arguments[2]?!1: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(-1!==e.indexOf("physics")&&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?!0:t,t="false"===t?!1:t;for(var n=0;n<e.length;n++)"global"!==e[n]&&(void 0===o[e[n]]&&(o[e[n]]={}),n!==e.length-1?o=o[e[n]]:o[e[n]]=t);return i}},{key:"_printOptions",value:function(){var t=this.getOptions();this.optionsContainer.innerHTML="<pre>var options = "+JSON.stringify(t,null,2)+"</pre>"}},{key:"getOptions",value:function(){for(var t={},e=0;e<this.changedOptions.length;e++)this._constructOptions(this.changedOptions[e].value,this.changedOptions[e].path,t);return t}}]),t}();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){for(var i=0;i<e.length;i++){var o=e[i];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(t,o.key,o)}}return function(e,i,o){return i&&t(e.prototype,i),o&&t(e,o),e}}(),s=i(20),r=i(28),a=i(1),h=function(){function t(){var e=arguments.length<=0||void 0===arguments[0]?1:arguments[0];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"};return"string"==typeof t?e[t]:void 0}},{key:"setColor",value:function(t){var e=arguments.length<=1||void 0===arguments[1]?!0: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]?!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]?!0: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]?this.color:arguments[0],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(i){}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(i){}this.brightnessRange.value="100",this.brightnessRange.className="vis-range",this.opacityDiv.appendChild(this.opacityRange),this.brightnessDiv.appendChild(this.brightnessRange);var o=this;this.opacityRange.onchange=function(){o._setOpacity(this.value)},this.opacityRange.oninput=function(){o._setOpacity(this.value)},this.brightnessRange.onchange=function(){o._setBrightness(this.value)},this.brightnessRange.oninput=function(){o._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;360>s;s++)for(r=0;r<this.r;r++)o=this.centerCoordinates.x+r*Math.sin(h*s),n=this.centerCoordinates.y+r*Math.cos(h*s),c=a.HSVToRGB(s*d,r*l,1),t.fillStyle="rgb("+c.r+","+c.g+","+c.b+")",t.fillRect(o-.5,n-.5,2,2);t.strokeStyle="rgba(0,0,0,1)",t.circle(this.centerCoordinates.x,this.centerCoordinates.y,this.r),t.stroke(),this.hueCircle=t.getImageData(0,0,e,i)}this.generated=!0}},{key:"_moveSelector",value:function(t){var e=this.colorPickerDiv.getBoundingClientRect(),i=t.center.x-e.left,o=t.center.y-e.top,n=.5*this.colorPickerDiv.clientHeight,s=.5*this.colorPickerDiv.clientWidth,r=i-s,h=o-n,d=Math.atan2(r,h),l=.98*Math.min(Math.sqrt(r*r+h*h),s),c=Math.cos(d)*l+n,u=Math.sin(d)*l+s;this.colorPickerSelector.style.top=c-.5*this.colorPickerSelector.clientHeight+"px",this.colorPickerSelector.style.left=u-.5*this.colorPickerSelector.clientWidth+"px";var p=d/(2*Math.PI);p=0>p?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;i<e.length;i++){var o=e[i];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(t,o.key,o)}}return function(e,i,o){return i&&t(e.prototype,i),o&&t(e,o),e}}(),r=i(1),a=!1,h=void 0,d="background: #FFeeee; color: #dd0000",l=function(){function t(){o(this,t)}return s(t,null,[{key:"validate",value:function(e,i,o){a=!1,h=i;var n=i;return void 0!==o&&(n=i[o]),t.parse(e,n,[]),a}},{key:"parse",value:function(e,i,o){for(var n in e)e.hasOwnProperty(n)&&t.check(n,e,i,o)}},{key:"check",value:function(e,i,o,n){void 0===o[e]&&void 0===o.__any__?t.getSuggestion(e,o,n):void 0===o[e]&&void 0!==o.__any__?"object"===t.getType(i[e])&&void 0!==o.__any__.__type__?t.checkFields(e,i,o,"__any__",o.__any__.__type__,n):t.checkFields(e,i,o,"__any__",o.__any__,n):void 0!==o[e].__type__?t.checkFields(e,i,o,e,o[e].__type__,n):t.checkFields(e,i,o,e,o[e],n)}},{key:"checkFields",value:function(e,i,o,n,s,h){var l=t.getType(i[e]),c=s[l];void 0!==c?"array"===t.getType(c)&&-1===c.indexOf(i[e])?(console.log('%cInvalid option detected in "'+e+'". Allowed values are:'+t.print(c)+' not "'+i[e]+'". '+t.printLocation(h,e),d),a=!0):"object"===l&&"__any__"!==n&&(h=r.copyAndExtendArray(h,e),t.parse(i[e],o[n],h)):void 0===s.any&&(console.log('%cInvalid type received for "'+e+'". Expected: '+t.print(Object.keys(s))+". Received ["+l+'] "'+i[e]+'"'+t.printLocation(h,e),d),a=!0)}},{key:"getType",value: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":void 0!==t.nodeType?"dom":t._isAMomentObject===!0?"moment":"object":"number"===e?"number":"boolean"===e?"boolean":"string"===e?"string":void 0===e?"undefined":e}},{key:"getSuggestion",value:function(e,i,o){var n=t.findInOptions(e,i,o,!1),s=t.findInOptions(e,h,[],!0),r=8,l=4;void 0!==n.indexMatch?console.log('%cUnknown option detected: "'+e+'" in '+t.printLocation(n.path,e,"")+'Perhaps it was incomplete? Did you mean: "'+n.indexMatch+'"?\n\n',d):s.distance<=l&&n.distance>s.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;n<t.length;n++){for(var s=0;n+1>s;s++)o+=" ";o+=t[n]+": {\n"}for(var r=0;r<t.length+1;r++)o+=" ";o+=e+"\n";for(var a=0;a<t.length+1;a++){for(var h=0;h<t.length-a;h++)o+=" ";o+="}\n"}return o+"\n\n"}},{key:"print",value:function(t){return JSON.stringify(t).replace(/(\")|(\[)|(\])|(,"__type__")/g,"").replace(/(\,)/g,", ")}},{key:"levenshteinDistance",value:function(t,e){if(0===t.length)return e.length;if(0===e.length)return t.length;var i,o=[];for(i=0;i<=e.length;i++)o[i]=[i];var n;for(n=0;n<=t.length;n++)o[0][n]=n;for(i=1;i<=e.length;i++)for(n=1;n<=t.length;n++)e.charAt(i-1)==t.charAt(n-1)?o[i][n]=o[i-1][n-1]:o[i][n]=Math.min(o[i-1][n-1]+1,Math.min(o[i][n-1]+1,o[i-1][n]+1));return o[e.length][t.length]}}]),t}();e["default"]=l,e.printStyle=d},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(28),i(2)),h=i(31),d=i(32);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,c=this.end,u="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",f=r.easingFunctions[p];if(!f)throw new Error("Unknown easing function "+JSON.stringify(p)+". Choose from: "+Object.keys(r.easingFunctions).join(", "));var m=(new Date).valueOf(),v=!1,g=function w(){if(!h.props.touch.dragging){var t=(new Date).valueOf(),e=t-m,i=f(e/u),s=e>u,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&&n<this.end?(o=this.start,n=this.end):(i=h-(n-o),o-=i/2,n+=i/2))}if(null!==this.options.zoomMax){var d=parseFloat(this.options.zoomMax);0>d&&(d=0),n-o>d&&(this.end-this.start===d&&o<this.start&&n>this.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<o.length;n++)if(void 0===o[n].repeat){var s={};s.start=t(o[n].start).toDate().valueOf(),s.end=t(o[n].end).toDate().valueOf(),i.hiddenDates.push(s)}i.hiddenDates.sort(function(t,e){return t.start-e.start})}},e.updateHiddenDates=function(t,i,o){if(o&&!Array.isArray(o))return e.updateHiddenDates(t,i,[o]);if(o&&void 0!==i.domProps.centerContainer.width){e.convertHiddenOptions(t,i,o);for(var n=t(i.range.start),s=t(i.range.end),r=i.range.end-i.range.start,a=r/i.domProps.centerContainer.width,h=0;h<o.length;h++)if(void 0!==o[h].repeat){var d=t(o[h].start),l=t(o[h].end);if("Invalid Date"==d._d)throw new Error("Supplied start date is not valid: "+o[h].start);if("Invalid Date"==l._d)throw new Error("Supplied end date is not valid: "+o[h].end);var c=l-d;if(c>=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.length;o++)for(var n=0;n<e.length;n++)o!=n&&1!=e[n].remove&&1!=e[o].remove&&(e[n].start>=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<e.length;o++)e[o].remove!==!0&&i.push(e[o]);t.hiddenDates=i,t.hiddenDates.sort(function(t,e){return t.start-e.start})},e.printDates=function(t){for(var e=0;e<t.length;e++)console.log(e,new Date(t[e].start),new Date(t[e].end),t[e].start,t[e].end,t[e].remove)},e.stepOverHiddenDates=function(t,e,i){for(var o=!1,n=e.current.valueOf(),s=0;s<e.hiddenDates.length;s++){var r=e.hiddenDates[s].start,a=e.hiddenDates[s].end;if(n>=r&&a>n){o=!0;break}}if(1==o&&n<e._end.valueOf()&&n!=i){var h=t(i),d=t(a);h.year()!=d.year()?e.switchedYear=!0:h.month()!=d.month()?e.switchedMonth=!0:h.dayOfYear()!=d.dayOfYear()&&(e.switchedDay=!0),e.current=d}},e.toScreen=function(t,i,o){if(0==t.body.hiddenDates.length){var n=t.range.conversion(o);return(i.valueOf()-n.offset)*n.scale}var s=e.isHidden(i,t.body.hiddenDates);1==s.hidden&&(i=s.startDate);var r=e.getHiddenDurationBetween(t.body.hiddenDates,t.range.start,t.range.end);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<t.length;n++){var s=t[n].start,r=t[n].end;s>=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<e.length;s++){var r=e[s].start,a=e[s].end;r>=i.start&&a<i.end&&o>=a&&(n+=a-r)}return n},e.getAccumulatedHiddenDuration=function(t,e,i){for(var o=0,n=0,s=e.start,r=0;r<t.length;r++){var a=t[r].start,h=t[r].end;if(a>=e.start&&h<e.end){if(n+=a-s,s=h,n>=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<e.length;i++){var o=e[i].start,n=e[i].end;if(t>=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.redrawCount<g)return void this.body.emitter.emit("_change");console.log("WARNING: infinite loop in redraw?")}else this.redrawCount=0;this.initialDrawDone=!0,this.body.emitter.emit("changed")}},o.prototype.repaint=function(){throw new Error("Function repaint is deprecated. Use redraw instead.")},o.prototype.setCurrentTime=function(t){if(!this.currentTime)throw new Error("Option showCurrentTime must be true");this.currentTime.setCurrentTime(t)},o.prototype.getCurrentTime=function(){if(!this.currentTime)throw new Error("Option showCurrentTime must be true");return this.currentTime.getCurrentTime()},o.prototype._toTime=function(t){return c.toTime(this,t,this.props.center.width)},o.prototype._toGlobalTime=function(t){return c.toTime(this,t,this.props.root.width)},o.prototype._toScreen=function(t){return c.toScreen(this,t,this.props.center.width)},o.prototype._toGlobalScreen=function(t){return c.toScreen(this,t,this.props.root.width)},o.prototype._initAutoResize=function(){1==this.options.autoResize?this._startAutoResize():this._stopAutoResize()},o.prototype._startAutoResize=function(){var t=this;this._stopAutoResize(),this._onResize=function(){return 1!=t.options.autoResize?void t._stopAutoResize():void(t.dom.root&&(t.dom.root.offsetWidth==t.props.lastWidth&&t.dom.root.offsetHeight==t.props.lastHeight||(t.props.lastWidth=t.dom.root.offsetWidth,t.props.lastHeight=t.dom.root.offsetHeight,t.body.emitter.emit("_change"))))},h.addEventListener(window,"resize",this._onResize),t.dom.root&&(t.props.lastWidth=t.dom.root.offsetWidth,t.props.lastHeight=t.dom.root.offsetHeight),this.watchTimer=setInterval(this._onResize,1e3)},o.prototype._stopAutoResize=function(){this.watchTimer&&(clearInterval(this.watchTimer),this.watchTimer=void 0),this._onResize&&(h.removeEventListener(window,"resize",this._onResize),this._onResize=null)},o.prototype._onTouch=function(t){this.touch.allowDragging=!0,this.touch.initialScrollTop=this.props.scrollTop},o.prototype._onPinch=function(t){this.touch.allowDragging=!1},o.prototype._onDrag=function(t){if(this.touch.allowDragging){var e=t.deltaY,i=this._getScrollTop(),o=this._setScrollTop(this.touch.initialScrollTop+e);o!=i&&this.emit("verticalDrag")}},o.prototype._setScrollTop=function(t){return this.props.scrollTop=t,this._updateScrollTop(),this.props.scrollTop},o.prototype._updateScrollTop=function(){var t=Math.min(this.props.centerContainer.height-this.props.center.height,0);return t!=this.props.scrollTopMin&&("top"!=this.options.orientation.item&&(this.props.scrollTop+=t-this.props.scrollTopMin),this.props.scrollTopMin=t),this.props.scrollTop>0&&(this.props.scrollTop=0),this.props.scrollTop<t&&(this.props.scrollTop=t),this.props.scrollTop},o.prototype._getScrollTop=function(){return this.props.scrollTop},o.prototype._createConfigurator=function(){throw new Error("Cannot invoke abstract method _createConfigurator")},t.exports=o},function(t,e,i){function o(t,e){this.body=t,this.defaultOptions={rtl:!1,type:null,orientation:{item:"bottom"},align:"auto",stack:!0,groupOrderSwap:function(t,e,i){var o=e.order;e.order=t.order,t.order=o},groupOrder:"order",selectable:!0,multiselect:!1,itemsAlwaysDraggable:!1,editable:{updateTime:!1,updateGroup:!1,add:!1,remove:!1},groupEditable:{order:!1,add:!1,remove:!1},snap:d.snap,onAdd:function(t,e){e(t)},onUpdate:function(t,e){e(t)},onMove:function(t,e){e(t)},onRemove:function(t,e){e(t)},onMoving:function(t,e){e(t)},onAddGroup:function(t,e){e(t)},onMoveGroup:function(t,e){e(t)},onRemoveGroup:function(t,e){e(t)},margin:{item:{horizontal:10,vertical:10},axis:20}},this.options=r.extend({},this.defaultOptions),this.itemOptions={type:{start:"Date",end:"Date"}},this.conversion={toScreen:t.util.toScreen,toTime:t.util.toTime},this.dom={},this.props={},this.hammer=null;var i=this;this.itemsData=null,this.groupsData=null,this.itemListeners={add:function(t,e,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.groups={},this.groupIds=[],this.selection=[],this.stackDirty=!0,this.touchParams={},this.groupTouchParams={},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(20),r=i(1),a=i(9),h=i(11),d=i(35),l=i(31),c=i(36),u=i(40),p=i(41),f=i(42),m=i(38),v=i(43),g="__ungrouped__",y="__background__";o.prototype=new l,o.types={background:v,box:p,range:m,point:f},o.prototype._create=function(){var t=document.createElement("div");t.className="vis-itemset",t["timeline-itemset"]=this,this.dom.frame=t;var e=document.createElement("div");e.className="vis-background",t.appendChild(e),this.dom.background=e;var i=document.createElement("div");i.className="vis-foreground",t.appendChild(i),this.dom.foreground=i;var o=document.createElement("div");o.className="vis-axis",this.dom.axis=o;var n=document.createElement("div");n.className="vis-labelset",this.dom.labelSet=n,this._updateUngrouped();var r=new u(y,null,this);r.show(),this.groups[y]=r,this.hammer=new s(this.body.dom.centerContainer),this.hammer.on("hammer.input",function(t){t.isFirst&&this._onTouch(t)}.bind(this)),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:s.DIRECTION_HORIZONTAL}),this.hammer.on("tap",this._onSelectItem.bind(this)),this.hammer.on("press",this._onMultiSelectItem.bind(this)),this.hammer.on("doubletap",this._onAddItem.bind(this)),this.groupHammer=new s(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:s.DIRECTION_HORIZONTAL}),this.show()},o.prototype.setOptions=function(t){if(t){var e=["type","rtl","align","order","stack","selectable","multiselect","itemsAlwaysDraggable","multiselectPerGroup","groupOrder","dataAttributes","template","groupTemplate","hide","snap","groupOrderSwap"];r.selectiveExtend(e,this.options,t),"orientation"in t&&("string"==typeof t.orientation?this.options.orientation.item="top"===t.orientation?"top":"bottom":"object"===n(t.orientation)&&"item"in t.orientation&&(this.options.orientation.item=t.orientation.item)),"margin"in t&&("number"==typeof t.margin?(this.options.margin.axis=t.margin,this.options.margin.item.horizontal=t.margin,this.options.margin.item.vertical=t.margin):"object"===n(t.margin)&&(r.selectiveExtend(["axis"],this.options.margin,t.margin),"item"in t.margin&&("number"==typeof t.margin.item?(this.options.margin.item.horizontal=t.margin.item,this.options.margin.item.vertical=t.margin.item):"object"===n(t.margin.item)&&r.selectiveExtend(["horizontal","vertical"],this.options.margin.item,t.margin.item)))),"editable"in t&&("boolean"==typeof t.editable?(this.options.editable.updateTime=t.editable,this.options.editable.updateGroup=t.editable,this.options.editable.add=t.editable,this.options.editable.remove=t.editable):"object"===n(t.editable)&&r.selectiveExtend(["updateTime","updateGroup","add","remove"],this.options.editable,t.editable)),"groupEditable"in t&&("boolean"==typeof t.groupEditable?(this.options.groupEditable.order=t.groupEditable,this.options.groupEditable.add=t.groupEditable,this.options.groupEditable.remove=t.groupEditable):"object"===n(t.groupEditable)&&r.selectiveExtend(["order","add","remove"],this.options.groupEditable,t.groupEditable));var i=function(e){var i=t[e];if(i){if(!(i instanceof Function))throw new Error("option "+e+" must be a function "+e+"(item, callback)");this.options[e]=i}}.bind(this);["onAdd","onUpdate","onRemove","onMove","onMoving","onAddGroup","onMoveGroup","onRemoveGroup"].forEach(i),this.markDirty()}},o.prototype.markDirty=function(t){this.groupIds=[],this.stackDirty=!0,t&&t.refreshItems&&r.forEach(this.items,function(t){t.dirty=!0,t.displayed&&t.redraw()})},o.prototype.destroy=function(){this.hide(),this.setItems(null),this.setGroups(null),this.hammer=null,this.body=null,this.conversion=null},o.prototype.hide=function(){this.dom.frame.parentNode&&this.dom.frame.parentNode.removeChild(this.dom.frame),this.dom.axis.parentNode&&this.dom.axis.parentNode.removeChild(this.dom.axis),this.dom.labelSet.parentNode&&this.dom.labelSet.parentNode.removeChild(this.dom.labelSet)},o.prototype.show=function(){this.dom.frame.parentNode||this.body.dom.center.appendChild(this.dom.frame),this.dom.axis.parentNode||this.body.dom.backgroundVertical.appendChild(this.dom.axis),this.dom.labelSet.parentNode||this.body.dom.left.appendChild(this.dom.labelSet)},o.prototype.setSelection=function(t){var e,i,o,n;for(void 0==t&&(t=[]),Array.isArray(t)||(t=[t]),e=0,i=this.selection.length;i>e;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;a<r.length;a++){var h=r[a];this.options.rtl?h.right<i&&h.right+h.width>e&&o.push(h.id):h.left<e&&h.left+h.width>i&&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;i<t.length;i++)t[i]instanceof m&&e.push(t[i]);return e},o.prototype._onTouch=function(t){this.touchParams.item=this.itemFromTarget(t),this.touchParams.dragLeftItem=t.target.dragLeftItem||!1,this.touchParams.dragRightItem=t.target.dragRightItem||!1,this.touchParams.itemProps=null},o.prototype._getGroupIndex=function(t){for(var e=0;e<this.groupIds.length;e++)if(t==this.groupIds[e])return e},o.prototype._onDragStart=function(t){var e,i=this.touchParams.item||null,o=this;if(i&&(i.selected||this.options.itemsAlwaysDraggable)){if(!this.options.editable.updateTime&&!this.options.editable.updateGroup&&!i.editable)return;if(i.editable===!1)return;var n=this.touchParams.dragLeftItem,s=this.touchParams.dragRightItem;if(n)e={item:n,initialX:t.center.x,dragLeft:!0,data:this._cloneItemData(i.data)},this.touchParams.itemProps=[e];else if(s)e={item:s,initialX:t.center.x,dragRight:!0,data:this._cloneItemData(i.data)},this.touchParams.itemProps=[e];else{this.touchParams.selectedItem=i;var r=this._getGroupIndex(i.data.group),a=this.options.itemsAlwaysDraggable&&!i.selected?[i.id]:this.getSelection();this.touchParams.itemProps=a.map(function(e){var i=o.items[e],n=o._getGroupIndex(i.data.group);return{item:i,initialX:t.center.x,groupOffset:r-n,data:this._cloneItemData(i.data)}}.bind(this))}t.stopPropagation()}else this.options.editable.add&&(t.srcEvent.ctrlKey||t.srcEvent.metaKey)&&this._onDragStartAddItem(t)},o.prototype._onDragStartAddItem=function(t){var e=this.options.snap||null;if(this.options.rtl)var i=r.getAbsoluteRight(this.dom.frame),o=i-t.center.x+10;else var i=r.getAbsoluteLeft(this.dom.frame),o=t.center.x-i-10;var n=this.body.util.toTime(o),s=this.body.util.getScale(),a=this.body.util.getStep(),h=e?e(n,s,a):n,d=h,l={type:"range",start:h,end:d,content:"new item"},c=r.randomUUID();l[this.itemsData._fieldId]=c;var u=this.groupFromTarget(t);u&&(l.group=u.groupId);var p=new m(l,this.conversion,this.options);p.id=c,p.data=this._cloneItemData(l),this._addItem(p);var f={item:p,initialX:t.center.x,data:p.data};this.options.rtl?f.dragLeft=!0:f.dragRight=!0,this.touchParams.itemProps=[f],t.stopPropagation()},o.prototype._onDrag=function(t){if(this.touchParams.itemProps){t.stopPropagation();var e=this,i=this.options.snap||null;if(this.options.rtl)var o=this.body.dom.root.offsetLeft+this.body.domProps.right.width;else var o=this.body.dom.root.offsetLeft+this.body.domProps.left.width;var n=this.body.util.getScale(),s=this.body.util.getStep(),a=this.touchParams.selectedItem,h=e.options.editable.updateGroup,d=null;if(h&&a&&void 0!=a.data.group){var l=e.groupFromTarget(t);l&&(d=this._getGroupIndex(l.groupId))}this.touchParams.itemProps.forEach(function(a){var h=e.body.util.toTime(t.center.x-o),l=e.body.util.toTime(a.initialX-o);if(this.options.rtl)var c=-(h-l);else var c=h-l;var u=this._cloneItemData(a.item.data);if(a.item.editable!==!1){var p=e.options.editable.updateTime||a.item.editable===!0;if(p)if(a.dragLeft){if(this.options.rtl){if(void 0!=u.end){var f=r.convert(a.data.end,"Date"),m=new Date(f.valueOf()+c);u.end=i?i(m,n,s):m}}else if(void 0!=u.start){var v=r.convert(a.data.start,"Date"),g=new Date(v.valueOf()+c);u.start=i?i(g,n,s):g}}else if(a.dragRight){if(this.options.rtl){if(void 0!=u.start){var v=r.convert(a.data.start,"Date"),g=new Date(v.valueOf()+c);u.start=i?i(g,n,s):g}}else if(void 0!=u.end){var f=r.convert(a.data.end,"Date"),m=new Date(f.valueOf()+c);u.end=i?i(m,n,s):m}}else if(void 0!=u.start){var v=r.convert(a.data.start,"Date").valueOf(),g=new Date(v+c);if(void 0!=u.end){var f=r.convert(a.data.end,"Date"),y=f.valueOf()-v.valueOf();u.start=i?i(g,n,s):g,u.end=new Date(u.start.valueOf()+y)}else u.start=i?i(g,n,s):g}var b=e.options.editable.updateGroup||a.item.editable===!0;if(b&&!a.dragLeft&&!a.dragRight&&null!=d&&void 0!=u.group){var w=d-a.groupOffset;w=Math.max(0,w),w=Math.min(e.groupIds.length-1,w),u.group=e.groupIds[w]}u=this._cloneItemData(u),e.options.onMoving(u,function(t){t&&a.item.setData(this._cloneItemData(t,"Date"))}.bind(this))}}.bind(this)),this.stackDirty=!0,this.body.emitter.emit("_change")}},o.prototype._moveToGroup=function(t,e){var i=this.groups[e];if(i&&i.groupId!=t.data.group){var o=t.parent;o.remove(t),o.order(),i.add(t),i.order(),t.data.group=i.groupId}},o.prototype._onDragEnd=function(t){if(this.touchParams.itemProps){t.stopPropagation();var e=this,i=this.itemsData.getDataSet(),o=this.touchParams.itemProps;this.touchParams.itemProps=null,o.forEach(function(t){var o=t.item.id,n=null!=e.itemsData.get(o,e.itemOptions);if(n){var s=this._cloneItemData(t.item.data);e.options.onMove(s,function(n){n?(n[i._fieldId]=o,i.update(n)):(t.item.setData(t.data),e.stackDirty=!0,e.body.emitter.emit("_change"))})}else e.options.onAdd(t.item.data,function(i){e._removeItem(t.item),i&&e.itemsData.getDataSet().add(i),e.stackDirty=!0,e.body.emitter.emit("_change")})}.bind(this))}},o.prototype._onGroupDragStart=function(t){this.options.groupEditable.order&&(this.groupTouchParams.group=this.groupFromTarget(t),this.groupTouchParams.group&&(t.stopPropagation(),this.groupTouchParams.originalOrder=this.groupsData.getIds({order:this.options.groupOrder})))},o.prototype._onGroupDrag=function(t){if(this.options.groupEditable.order&&this.groupTouchParams.group){t.stopPropagation();var e=this.groupFromTarget(t);if(e&&e.height!=this.groupTouchParams.group.height){var i=e.top<this.groupTouchParams.group.top,o=t.center?t.center.y:t.clientY,n=r.getAbsoluteTop(e.dom.foreground),s=this.groupTouchParams.group.height;if(i){if(o>n+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.start<i)&&(i=t.start),void 0!=t.end?(null==e||t.end>e)&&(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;i<this.groupIds.length;i++){var o=this.groupIds[i],n=this.groups[o],s=n.dom.foreground,a=r.getAbsoluteTop(s);if(e>a&&e<a+s.offsetHeight)return n;if("top"===this.options.orientation.item){if(i===this.groupIds.length-1&&e>a)return n}else if(0===i&&e<a+s.offset)return n}return null},o.itemSetFromTarget=function(t){for(var e=t.target;e;){if(e.hasOwnProperty("timeline-itemset"))return e["timeline-itemset"];e=e.parentNode}return null},o.prototype._cloneItemData=function(t,e){var i=r.extend({},t);return e||(e=this.itemsData.getDataSet()._options.type),void 0!=i.start&&(i.start=r.convert(i.start,e&&e.start||"Date")),void 0!=i.end&&(i.end=r.convert(i.end,e&&e.end||"Date")),i},t.exports=o},function(t,e,i){function o(t,e,i,s){this.moment=n,this.current=this.moment(),this._start=this.moment(),this._end=this.moment(),this.autoScale=!0,this.scale="day",this.step=1,this.setRange(t,e,i),this.switchedDay=!1,this.switchedMonth=!1,this.switchedYear=!1,Array.isArray(s)?this.hiddenDates=s:void 0!=s?this.hiddenDates=[s]:this.hiddenDates=[],this.format=o.FORMAT}var n=i(2),s=i(32),r=i(1);o.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:""}},o.prototype.setMoment=function(t){this.moment=t,this.current=this.moment(this.current),this._start=this.moment(this._start),this._end=this.moment(this._end)},o.prototype.setFormat=function(t){var e=r.deepExtend({},o.FORMAT);this.format=r.deepExtend(e,t)},o.prototype.setRange=function(t,e,i){if(!(t instanceof Date&&e instanceof Date))throw"No legal start or end date in method setRange";this._start=void 0!=t?this.moment(t.valueOf()):new Date,this._end=void 0!=e?this.moment(e.valueOf()):new Date,this.autoScale&&this.setMinimumStep(i)},o.prototype.start=function(){this.current=this._start.clone(),this.roundToMinor()},o.prototype.roundToMinor=function(){switch(this.scale){case"year":this.current.year(this.step*Math.floor(this.current.year()/this.step)),this.current.month(0);case"month":this.current.date(1);case"day":case"weekday":this.current.hours(0);case"hour":this.current.minutes(0);case"minute":this.current.seconds(0);case"second":this.current.milliseconds(0)}if(1!=this.step)switch(this.scale){case"millisecond":this.current.subtract(this.current.milliseconds()%this.step,"milliseconds");break;case"second":this.current.subtract(this.current.seconds()%this.step,"seconds");break;case"minute":this.current.subtract(this.current.minutes()%this.step,"minutes");break;case"hour":this.current.subtract(this.current.hours()%this.step,"hours");break;case"weekday":case"day":this.current.subtract((this.current.date()-1)%this.step,"day");break;case"month":this.current.subtract(this.current.month()%this.step,"month");break;case"year":this.current.subtract(this.current.year()%this.step,"year")}},o.prototype.hasNext=function(){return this.current.valueOf()<=this._end.valueOf()},o.prototype.next=function(){var t=this.current.valueOf();if(this.current.month()<6)switch(this.scale){case"millisecond":this.current.add(this.step,"millisecond");break;case"second":this.current.add(this.step,"second");break;case"minute":this.current.add(this.step,"minute");break;case"hour":this.current.add(this.step,"hour"),this.current.subtract(this.current.hours()%this.step,"hour");break;case"weekday":case"day":this.current.add(this.step,"day");break;case"month":this.current.add(this.step,"month");break;case"year":this.current.add(this.step,"year")}else switch(this.scale){case"millisecond":this.current.add(this.step,"millisecond");break;case"second":this.current.add(this.step,"second");break;case"minute":this.current.add(this.step,"minute");break;case"hour":this.current.add(this.step,"hour");break;case"weekday":case"day":this.current.add(this.step,"day");break;case"month":this.current.add(this.step,"month");break;case"year":this.current.add(this.step,"year")}if(1!=this.step)switch(this.scale){case"millisecond":this.current.milliseconds()<this.step&&this.current.milliseconds(0);break;case"second":this.current.seconds()<this.step&&this.current.seconds(0);break;case"minute":this.current.minutes()<this.step&&this.current.minutes(0);break;case"hour":this.current.hours()<this.step&&this.current.hours(0);break;case"weekday":case"day":this.current.date()<this.step+1&&this.current.date(1);break;case"month":this.current.month()<this.step&&this.current.month(0);break;case"year":}this.current.valueOf()==t&&(this.current=this._end.clone()),s.stepOverHiddenDates(this.moment,this,t)},o.prototype.getCurrent=function(){return this.current},o.prototype.setScale=function(t){t&&"string"==typeof t.scale&&(this.scale=t.scale,this.step=t.step>0?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;i<t.length;i++)this.subgroups[t[i].subgroup].index=i}},o.prototype.resetSubgroups=function(){for(var t in this.subgroups)this.subgroups.hasOwnProperty(t)&&(this.subgroups[t].visible=!1)},o.prototype.remove=function(t){delete this.items[t.id],t.setParent(null);var e=this.visibleItems.indexOf(t);if(-1!=e&&this.visibleItems.splice(e,1),void 0!==t.data.subgroup){var i=this.subgroups[t.data.subgroup];if(i){var o=i.items.indexOf(t);i.items.splice(o,1),i.items.length||(delete this.subgroups[t.data.subgroup],this.subgroupIndex--),this.orderSubgroups()}}},o.prototype.removeFromDataSet=function(t){this.itemSet.removeItem(t.id)},o.prototype.order=function(){for(var t=n.toArray(this.items),e=[],i=[],o=0;o<t.length;o++)void 0!==t[o].data.end&&i.push(t[o]),e.push(t[o]);this.orderedItems={byStart:e,byEnd:i},s.orderByStart(this.orderedItems.byStart),s.orderByEnd(this.orderedItems.byEnd)},o.prototype._updateVisibleItems=function(t,e,i){var o,s,r=[],a={},h=(i.end-i.start)/4,d=i.start-h,l=i.end+h,c=function(t){
+return d>t?-1:l>=t?0:1};if(e.length>0)for(s=0;s<e.length;s++)this._checkIfVisibleWithReference(e[s],r,a,i);var u=n.binarySearchCustom(t.byStart,c,"data","start");if(this._traceVisible(u,t.byStart,r,a,function(t){return t.data.start<d||t.data.start>l}),1==this.checkRangedItems)for(this.checkRangedItems=!1,s=0;s<t.byEnd.length;s++)this._checkIfVisibleWithReference(t.byEnd[s],r,a,i);else{var p=n.binarySearchCustom(t.byEnd,c,"data","end");this._traceVisible(p,t.byEnd,r,a,function(t){return t.data.end<d||t.data.end>l})}for(s=0;s<r.length;s++)o=r[s],o.displayed||o.show(),o.repositionX();return r},o.prototype._traceVisible=function(t,e,i,o,n){var s,r;if(-1!=t){for(r=t;r>=0&&(s=e[r],!n(s));r--)void 0===o[s.id]&&(o[s.id]=!0,i.push(s));for(r=t+1;r<e.length&&(s=e[r],!n(s));r++)void 0===o[s.id]&&(o[s.id]=!0,i.push(s))}},o.prototype._checkIfVisible=function(t,e,i){t.isVisible(i)?(t.displayed||t.show(),t.repositionX(),e.push(t)):t.displayed&&t.hide()},o.prototype._checkIfVisibleWithReference=function(t,e,i,o){t.isVisible(o)?void 0===i[t.id]&&(i[t.id]=!0,e.push(t)):t.displayed&&t.hide()},t.exports=o},function(t,e){var i=.001;e.orderByStart=function(t){t.sort(function(t,e){return t.data.start-e.data.start})},e.orderByEnd=function(t){t.sort(function(t,e){var i="end"in t.data?t.data.end:t.data.start,o="end"in e.data?e.data.end:e.data.start;return i-o})},e.stack=function(t,i,o){var n,s;if(o)for(n=0,s=t.length;s>n;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].index<i[t[o].data.subgroup].index&&(s+=i[r].height+e.item.vertical);t[o].top=s}else t[o].top=e.axis},e.collision=function(t,e,o,n){return n?t.right-o.horizontal+i<e.right+e.width&&t.right+t.width+o.horizontal-i>e.right&&t.top-o.vertical+i<e.top+e.height&&t.top+t.height+o.vertical-i>e.top:t.left-o.horizontal+i<e.left+e.width&&t.left+t.width+o.horizontal-i>e.left&&t.top-o.vertical+i<e.top+e.height&&t.top+t.height+o.vertical-i>e.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.start<t.end&&this.data.end>t.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;i<e.length;i++){var o=e[i],n=this.data[o];null!=n?t.setAttribute("data-"+o,n):t.removeAttribute("data-"+o)}}},o.prototype._updateStyle=function(t){this.style&&(s.removeCssText(t,this.style),this.style=null),this.data.style&&(s.addCssText(t,this.data.style),this.style=this.data.style)},o.prototype._contentToString=function(t){return"string"==typeof t?t:t&&"outerHTML"in t?t.outerHTML:t},o.prototype.getWidthLeft=function(){return 0},o.prototype.getWidthRight=function(){return 0},t.exports=o},function(t,e,i){function o(t,e,i){n.call(this,t,e,i),this.width=0,this.height=0,this.top=0,this.left=0}var n=(i(1),i(36));o.prototype=Object.create(n.prototype),o.prototype.redraw=function(t,e,i){var o=!1;this.visibleItems=this._updateVisibleItems(this.orderedItems,this.visibleItems,t),this.width=this.dom.background.offsetWidth,this.dom.background.style.height="0";for(var n=0,s=this.visibleItems.length;s>n;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.start<t.end+e},o.prototype.redraw=function(){var t=this.dom;if(t||(this.dom={},t=this.dom,t.box=document.createElement("DIV"),t.content=document.createElement("DIV"),t.content.className="vis-item-content",t.box.appendChild(t.content),t.line=document.createElement("DIV"),t.line.className="vis-line",t.dot=document.createElement("DIV"),t.dot.className="vis-dot",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(!t.line.parentNode){var i=this.parent.dom.background;if(!i)throw new Error("Cannot redraw item: parent has no background container element");i.appendChild(t.line)}if(!t.dot.parentNode){var o=this.parent.dom.axis;if(!i)throw new Error("Cannot redraw item: parent has no axis container element");o.appendChild(t.dot)}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 n=(this.options.editable.updateTime||this.options.editable.updateGroup||this.editable===!0)&&this.editable!==!1,s=(this.data.className?" "+this.data.className:"")+(this.selected?" vis-selected":"")+(n?" vis-editable":" vis-readonly");t.box.className="vis-item vis-box"+s,t.line.className="vis-item vis-line"+s,t.dot.className="vis-item vis-dot"+s,this.props.dot.height=t.dot.offsetHeight,this.props.dot.width=t.dot.offsetWidth,this.props.line.width=t.line.offsetWidth,this.width=t.box.offsetWidth,this.height=t.box.offsetHeight,this.dirty=!1}this._repaintDeleteButton(t.box)},o.prototype.show=function(){this.displayed||this.redraw()},o.prototype.hide=function(){if(this.displayed){var t=this.dom;t.box.parentNode&&t.box.parentNode.removeChild(t.box),t.line.parentNode&&t.line.parentNode.removeChild(t.line),t.dot.parentNode&&t.dot.parentNode.removeChild(t.dot),this.displayed=!1}},o.prototype.repositionX=function(){var t=this.conversion.toScreen(this.data.start),e=this.options.align;"right"==e?this.options.rtl?(this.right=t-this.width,this.dom.box.style.right=this.right+"px",this.dom.line.style.right=t-this.props.line.width+"px",this.dom.dot.style.right=t-this.props.line.width/2-this.props.dot.width/2+"px"):(this.left=t-this.width,this.dom.box.style.left=this.left+"px",this.dom.line.style.left=t-this.props.line.width+"px",this.dom.dot.style.left=t-this.props.line.width/2-this.props.dot.width/2+"px"):"left"==e?this.options.rtl?(this.right=t,this.dom.box.style.right=this.right+"px",this.dom.line.style.right=t+"px",this.dom.dot.style.right=t+this.props.line.width/2-this.props.dot.width/2+"px"):(this.left=t,this.dom.box.style.left=this.left+"px",this.dom.line.style.left=t+"px",this.dom.dot.style.left=t+this.props.line.width/2-this.props.dot.width/2+"px"):this.options.rtl?(this.right=t-this.width/2,this.dom.box.style.right=this.right+"px",this.dom.line.style.right=t-this.props.line.width+"px",this.dom.dot.style.right=t-this.props.dot.width/2+"px"):(this.left=t-this.width/2,this.dom.box.style.left=this.left+"px",this.dom.line.style.left=t-this.props.line.width/2+"px",this.dom.dot.style.left=t-this.props.dot.width/2+"px")},o.prototype.repositionY=function(){var t=this.options.orientation.item,e=this.dom.box,i=this.dom.line,o=this.dom.dot;if("top"==t)e.style.top=(this.top||0)+"px",i.style.top="0",i.style.height=this.parent.top+this.top+1+"px",i.style.bottom="";else{var n=this.parent.itemSet.props.height,s=n-this.parent.top-this.parent.height+this.top;e.style.top=(this.parent.height-this.top-this.height||0)+"px",i.style.top=n-s+"px",i.style.bottom="0"}o.style.top=-this.props.dot.height/2+"px"},o.prototype.getWidthLeft=function(){return this.width/2},o.prototype.getWidthRight=function(){return this.width/2},t.exports=o},function(t,e,i){function o(t,e,i){if(this.props={dot:{top:0,width:0,height:0},content:{height:0,marginLeft:0,marginRight: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);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.start<t.end+e},o.prototype.redraw=function(){var t=this.dom;if(t||(this.dom={},t=this.dom,t.point=document.createElement("div"),t.content=document.createElement("div"),t.content.className="vis-item-content",t.point.appendChild(t.content),t.dot=document.createElement("div"),t.point.appendChild(t.dot),t.point["timeline-item"]=this,this.dirty=!0),!this.parent)throw new Error("Cannot redraw item: no parent attached");if(!t.point.parentNode){var e=this.parent.dom.foreground;if(!e)throw new Error("Cannot redraw item: parent has no foreground container element");e.appendChild(t.point)}if(this.displayed=!0,this.dirty){this._updateContents(this.dom.content),this._updateTitle(this.dom.point),this._updateDataAttributes(this.dom.point),this._updateStyle(this.dom.point);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.point.className="vis-item vis-point"+o,t.dot.className="vis-item vis-dot"+o,this.props.dot.width=t.dot.offsetWidth,this.props.dot.height=t.dot.offsetHeight,this.props.content.height=t.content.offsetHeight,this.options.rtl?t.content.style.marginRight=2*this.props.dot.width+"px":t.content.style.marginLeft=2*this.props.dot.width+"px",this.width=t.point.offsetWidth,this.height=t.point.offsetHeight,t.dot.style.top=(this.height-this.props.dot.height)/2+"px",this.options.rtl?t.dot.style.right=this.props.dot.width/2+"px":t.dot.style.left=this.props.dot.width/2+"px",this.dirty=!1}this._repaintDeleteButton(t.point)},o.prototype.show=function(){this.displayed||this.redraw()},o.prototype.hide=function(){this.displayed&&(this.dom.point.parentNode&&this.dom.point.parentNode.removeChild(this.dom.point),this.displayed=!1)},o.prototype.repositionX=function(){var t=this.conversion.toScreen(this.data.start);this.options.rtl?(this.right=t-this.props.dot.width,this.dom.point.style.right=this.right+"px"):(this.left=t-this.props.dot.width,this.dom.point.style.left=this.left+"px")},o.prototype.repositionY=function(){var t=this.options.orientation.item,e=this.dom.point;"top"==t?e.style.top=this.top+"px":e.style.top=this.parent.height-this.top-this.height+"px"},o.prototype.getWidthLeft=function(){return this.props.dot.width},o.prototype.getWidthRight=function(){return this.props.dot.width},t.exports=o},function(t,e,i){function o(t,e,i){if(this.props={content:{width:0}},this.overflow=!1,t){if(void 0==t.start)throw new Error('Property "start" missing in item '+t.id);if(void 0==t.end)throw new Error('Property "end" missing in item '+t.id)}n.call(this,t,e,i)}var n=(i(20),i(39)),s=i(40),r=i(38);o.prototype=new n(null,null,null),o.prototype.baseClassName="vis-item vis-background",o.prototype.stack=!1,o.prototype.isVisible=function(t){return this.data.start<t.end&&this.data.end>t.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].index<r&&(a+=n[h].height+t.item.vertical);a+=0!=r?t.axis-.5*t.item.vertical:0,this.dom.box.style.top=a+"px",this.dom.box.style.bottom=""}else{var a=this.parent.top,d=0;for(var h in n)if(n.hasOwnProperty(h)&&1==n[h].visible){var l=n[h].height+t.item.vertical;d+=l,n[h].index>r&&(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;o<this.linegraph.groups[i].itemsData.length;o++){var n=this.linegraph.groups[i].itemsData[o],s=l.convert(n.x,"Date").valueOf();t=null==t?s:t>s?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",""))<this.body.domProps.centerContainer.height&&(this.updateSVGheight=!0),s.selectiveDeepExtend(e,this.options,t),s.mergeOptions(this.options,t,"interpolation"),s.mergeOptions(this.options,t,"drawPoints"),s.mergeOptions(this.options,t,"shaded"),s.mergeOptions(this.options,t,"legend"),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)),this.yAxisLeft&&void 0!==t.dataAxis&&(this.yAxisLeft.setOptions(this.options.dataAxis),this.yAxisRight.setOptions(this.options.dataAxis)),this.legendLeft&&void 0!==t.legend&&(this.legendLeft.setOptions(this.options.legend),this.legendRight.setOptions(this.options.legend)),this.groups.hasOwnProperty(v)&&this.groups[v].setOptions(t)}this.dom.frame&&(this.forceGraphUpdate=!0,this.body.emitter.emit("_change",{queue:!0}))},o.prototype.hide=function(){this.dom.frame.parentNode&&this.dom.frame.parentNode.removeChild(this.dom.frame)},o.prototype.show=function(){this.dom.frame.parentNode||this.body.dom.center.appendChild(this.dom.frame)},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&&(s.forEach(this.itemListeners,function(t,e){o.off(e,t)}),e=o.getIds(),this._onRemove(e)),this.itemsData){var n=this.id;s.forEach(this.itemListeners,function(t,e){i.itemsData.on(e,t,n)}),e=this.itemsData.getIds(),this._onAdd(e)}},o.prototype.setGroups=function(t){var e,i=this;if(this.groupsData){s.forEach(this.groupListeners,function(t,e){i.groupsData.off(e,t)}),e=this.groupsData.getIds(),this.groupsData=null;for(var o=0;o<e.length;o++)this._removeGroup(e[o])}if(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 n=this.id;s.forEach(this.groupListeners,function(t,e){i.groupsData.on(e,t,n)}),e=this.groupsData.getIds(),this._onAddGroups(e)}},o.prototype._onUpdate=function(t){this._updateAllGroupData()},o.prototype._onAdd=function(t){this._onUpdate(t)},o.prototype._onRemove=function(t){this._onUpdate(t)},o.prototype._onUpdateGroups=function(t){this._updateAllGroupData()},o.prototype._onAddGroups=function(t){this._onUpdateGroups(t)},o.prototype._onRemoveGroups=function(t){for(var e=0;e<t.length;e++)this._removeGroup(t[e]);this.forceGraphUpdate=!0,this.body.emitter.emit("_change",{queue:!0})},o.prototype._removeGroup=function(t){this.groups.hasOwnProperty(t)&&("right"==this.groups[t].options.yAxisOrientation?(this.yAxisRight.removeGroup(t),this.legendRight.removeGroup(t),this.legendRight.redraw()):(this.yAxisLeft.removeGroup(t),this.legendLeft.removeGroup(t),this.legendLeft.redraw()),delete this.groups[t])},o.prototype._updateGroup=function(t,e){this.groups.hasOwnProperty(e)?(this.groups[e].update(t),"right"==this.groups[e].options.yAxisOrientation?(this.yAxisRight.updateGroup(e,this.groups[e]),this.legendRight.updateGroup(e,this.groups[e]),this.yAxisLeft.removeGroup(e),this.legendLeft.removeGroup(e)):(this.yAxisLeft.updateGroup(e,this.groups[e]),this.legendLeft.updateGroup(e,this.groups[e]),this.yAxisRight.removeGroup(e),this.legendRight.removeGroup(e))):(this.groups[e]=new c(t,e,this.options,this.groupsUsingDefaultStyles),"right"==this.groups[e].options.yAxisOrientation?(this.yAxisRight.addGroup(e,this.groups[e]),this.legendRight.addGroup(e,this.groups[e])):(this.yAxisLeft.addGroup(e,this.groups[e]),this.legendLeft.addGroup(e,this.groups[e]))),this.legendLeft.redraw(),this.legendRight.redraw()},o.prototype._updateAllGroupData=function(){if(null!=this.itemsData){for(var t={},e=this.itemsData.get(),i={},o=0;o<e.length;o++){var n=e[o],r=n.group;null!==r&&void 0!==r||(r=v),i.hasOwnProperty(r)?i[r]++:i[r]=1}for(var o=0;o<e.length;o++){var n=e[o],r=n.group;null!==r&&void 0!==r||(r=v),t.hasOwnProperty(r)||(t[r]=new Array(i[r]));var a=s.bridgeObject(n);a.x=s.convert(n.x,"Date"),a.orginalY=n.y,a.y=Number(n.y);var h=t[r].length-i[r]--;t[r][h]=a}for(var r in this.groups)this.groups.hasOwnProperty(r)&&(t.hasOwnProperty(r)||(t[r]=new Array(0)));for(var r in t)if(t.hasOwnProperty(r))if(0==t[r].length)this.groups.hasOwnProperty(r)&&this._removeGroup(r);else{var d=void 0;void 0!=this.groupsData&&(d=this.groupsData.get(r)),void 0==d&&(d={id:r,content:this.options.defaultGroup+r}),this._updateGroup(d,r),this.groups[r].setItems(t[r])}this.forceGraphUpdate=!0,this.body.emitter.emit("_change",{queue:!0})}},o.prototype.redraw=function(){var t=!1;this.props.width=this.dom.frame.offsetWidth,this.props.height=this.body.domProps.centerContainer.height-this.body.domProps.border.top-this.body.domProps.border.bottom,t=this._isResized()||t;var e=this.body.range.end-this.body.range.start,i=e!=this.lastVisibleInterval;if(this.lastVisibleInterval=e,1==t&&(this.svg.style.width=s.option.asSize(3*this.props.width),this.svg.style.left=s.option.asSize(-this.props.width),-1==(this.options.height+"").indexOf("%")&&1!=this.updateSVGheightOnResize||(this.updateSVGheight=!0)),1==this.updateSVGheight?(this.options.graphHeight!=this.props.height+"px"&&(this.options.graphHeight=this.props.height+"px",this.svg.style.height=this.props.height+"px"),this.updateSVGheight=!1):this.svg.style.height=(""+this.options.graphHeight).replace("px","")+"px",1==t||1==i||1==this.abortedGraphUpdate||1==this.forceGraphUpdate)t=this._updateGraph()||t,this.forceGraphUpdate=!1;else if(0!=this.lastStart){var o=this.body.range.start-this.lastStart,n=this.body.range.end-this.body.range.start;if(0!=this.props.width){var r=this.props.width/n,a=o*r;this.svg.style.left=-this.props.width-a+"px"}}return this.legendLeft.redraw(),this.legendRight.redraw(),t},o.prototype._getSortedGroupIds=function(){var t=[];for(var e in this.groups)if(this.groups.hasOwnProperty(e)){var i=this.groups[e];1!=i.visible||void 0!==this.options.groups.visibility[e]&&1!=this.options.groups.visibility[e]||t.push({id:e,zIndex:i.options.zIndex})}s.insertSort(t,function(t,e){var i=t.zIndex,o=e.zIndex;return void 0===i&&(i=0),void 0===o&&(o=0),i==o?0:o>i?-1:1});for(var o=new Array(t.length),n=0;n<t.length;n++)o[n]=t[n].id;return o},o.prototype._updateGraph=function(){if(r.prepareElements(this.svgElements),0!=this.props.width&&null!=this.itemsData){var t,e,i={},o=!1,n=this.body.util.toGlobalTime(-this.body.domProps.root.width),s=this.body.util.toGlobalTime(2*this.body.domProps.root.width),a=this._getSortedGroupIds();if(a.length>0){var h={};for(this._getRelevantData(a,h,n,s),this._applySampling(a,h),e=0;e<a.length;e++)this._convertXcoordinates(h[a[e]]);if(this._getYRanges(a,h,i),o=this._updateYAxis(a,i),1==o)return r.cleanupElements(this.svgElements),this.abortedGraphUpdate=!0,!0;this.abortedGraphUpdate=!1;var d=void 0;for(e=0;e<a.length;e++)t=this.groups[a[e]],this.options.stack===!0&&"line"===this.options.style&&(void 0!=t.options.excludeFromStacking&&t.options.excludeFromStacking||(void 0!=d&&(this._stack(h[t.id],h[d.id]),1==t.options.shaded.enabled&&"group"!==t.options.shaded.orientation&&("top"==t.options.shaded.orientation&&"group"!==d.options.shaded.orientation?(d.options.shaded.orientation="group",d.options.shaded.groupId=t.id):(t.options.shaded.orientation="group",t.options.shaded.groupId=d.id))),d=t)),this._convertYcoordinates(h[a[e]],t);var l={};for(e=0;e<a.length;e++)if(t=this.groups[a[e]],"line"===t.options.style&&1==t.options.shaded.enabled){var c=h[a[e]];if(null==c||0==c.length)continue;if(l.hasOwnProperty(a[e])||(l[a[e]]=f.calcPath(c,t)),"group"===t.options.shaded.orientation){var u=t.options.shaded.groupId;if(-1===a.indexOf(u)){console.log(t.id+": Unknown shading group target given:"+u);continue}l.hasOwnProperty(u)||(l[u]=f.calcPath(h[u],this.groups[u])),f.drawShading(l[a[e]],t,l[u],this.framework)}else f.drawShading(l[a[e]],t,void 0,this.framework)}for(p.draw(a,h,this.framework),e=0;e<a.length;e++)if(t=this.groups[a[e]],h[a[e]].length>0)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;a<t.length;a++){s=void 0,r=void 0;for(var h=i;h<e.length;h++){if(e[h].x===t[a].x){s=e[h],r=e[h],i=h;break}if(e[h].x>t[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;r<t.length;r++){n=this.groups[t[r]];var d=n.getItems();if(1==n.options.sort){var l=function(t,e){return t.getTime()==e.getTime()?0:e>t?-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;o<t.length;o++)if(i=this.groups[t[o]],1==i.options.sampling){var n=e[t[o]];if(n.length>0){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;s<t.length;s++)o=e[t[s]],r=this.groups[t[s]].options,o.length>0&&(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;c<t.length;c++){var u=this.groups[t[c]];u&&"right"!=u.options.yAxisOrientation?(s=!0,a=1e9,d=-1e9):u&&u.options.yAxisOrientation&&(r=!0,h=1e9,l=-1e9)}for(var c=0;c<t.length;c++)e.hasOwnProperty(t[c])&&e[t[c]].ignore!==!0&&(i=e[t[c]].min,o=e[t[c]].max,"right"!=e[t[c]].yAxisOrientation?(s=!0,a=a>i?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;c<p.length;c++)-1!=t.indexOf(p[c])&&t.splice(t.indexOf(p[c]),1);return n},o.prototype._toggleAxisVisiblity=function(t,e){var i=!1;return 0==t?e.dom.frame.parentNode&&0==e.hidden&&(e.hide(),i=!0):e.dom.frame.parentNode||1!=e.hidden||(e.show(),i=!0),i},o.prototype._convertXcoordinates=function(t){for(var e=this.body.util.toScreen,i=0;i<t.length;i++)t[i].screen_x=e(t[i].x)+this.props.width,t[i].screen_y=t[i].y},o.prototype._convertYcoordinates=function(t,e){var i=this.yAxisLeft,o=Number(this.svg.style.height.replace("px",""));"right"==e.options.yAxisOrientation&&(i=this.yAxisRight);for(var n=0;n<t.length;n++)t[n].screen_y=Math.round(i.convertValue(t[n].y));e.setZeroPosition(Math.min(o,i.convertValue(0)))},t.exports=o},function(t,e,i){function o(t,e,i,o){this.id=n.randomUUID(),this.body=t,this.defaultOptions={orientation:"left",showMinorLabels:!0,showMajorLabels:!0,icons:!1,majorLinesOffset:7,minorLinesOffset:4,labelOffsetX:10,labelOffsetY:2,iconWidth:20,width:"40px",visible:!0,alignZeros:!0,left:{range:{min:void 0,max:void 0},format:function(t){return""+parseFloat(t.toPrecision(3))},title:{text:void 0,style:void 0}},right:{range:{min:void 0,max:void 0},format:function(t){return""+parseFloat(t.toPrecision(3))},title:{text:void 0,style:void 0}}},this.linegraphOptions=o,this.linegraphSVG=i,this.props={},this.DOMelements={lines:{},labels:{},title:{}},this.dom={},this.scale=void 0,this.range={start:0,end:0},this.options=n.extend({},this.defaultOptions),this.conversionFactor=1,this.setOptions(e),this.width=Number((""+this.options.width).replace("px","")),this.minWidth=this.width,this.height=this.linegraphSVG.getBoundingClientRect().height,this.hidden=!1,this.stepPixels=25,this.zeroCrossing=-1,this.amountOfSteps=-1,this.lineOffset=0,this.master=!0,this.masterAxis=null,this.svgElements={},this.iconsRemoved=!1,this.groups={},this.amountOfGroups=0,this._create(),this.framework={svg:this.svg,svgElements:this.svgElements,options:this.options,groups:this.groups};var s=this;this.body.emitter.on("verticalDrag",function(){s.dom.lineContainer.style.top=s.body.domProps.scrollTop+"px"})}var n=i(1),s=i(8),r=i(31),a=i(53);o.prototype=new r,o.prototype.addGroup=function(t,e){this.groups.hasOwnProperty(t)||(this.groups[t]=e),this.amountOfGroups+=1},o.prototype.updateGroup=function(t,e){this.groups.hasOwnProperty(t)||(this.amountOfGroups+=1),this.groups[t]=e},o.prototype.removeGroup=function(t){this.groups.hasOwnProperty(t)&&(delete this.groups[t],this.amountOfGroups-=1)},o.prototype.setOptions=function(t){if(t){var e=!1;this.options.orientation!=t.orientation&&void 0!==t.orientation&&(e=!0);var i=["orientation","showMinorLabels","showMajorLabels","icons","majorLinesOffset","minorLinesOffset","labelOffsetX","labelOffsetY","iconWidth","width","visible","left","right","alignZeros"];n.selectiveDeepExtend(i,this.options,t),this.minWidth=Number((""+this.options.width).replace("px","")),e===!0&&this.dom.frame&&(this.hide(),this.show())}},o.prototype._create=function(){this.dom.frame=document.createElement("div"),this.dom.frame.style.width=this.options.width,this.dom.frame.style.height=this.height,this.dom.lineContainer=document.createElement("div"),this.dom.lineContainer.style.width="100%",this.dom.lineContainer.style.height=this.height,this.dom.lineContainer.style.position="relative",this.svg=document.createElementNS("http://www.w3.org/2000/svg","svg"),this.svg.style.position="absolute",this.svg.style.top="0px",this.svg.style.height="100%",this.svg.style.width="100%",this.svg.style.display="block",this.dom.frame.appendChild(this.svg)},o.prototype._redrawGroupIcons=function(){s.prepareElements(this.svgElements);var t,e=this.options.iconWidth,i=15,o=4,n=o+.5*i;t="left"===this.options.orientation?o:this.width-e-o;var r=Object.keys(this.groups);r.sort(function(t,e){return e>t?-1:1});for(var a=0;a<r.length;a++){var h=r[a];this.groups[h].visible!==!0||void 0!==this.linegraphOptions.visibility[h]&&this.linegraphOptions.visibility[h]!==!0||(this.groups[h].getLegend(e,i,this.framework,t,n),n+=i+o)}s.cleanupElements(this.svgElements),this.iconsRemoved=!1},o.prototype._cleanupIcons=function(){this.iconsRemoved===!1&&(s.prepareElements(this.svgElements),s.cleanupElements(this.svgElements),this.iconsRemoved=!0)},o.prototype.show=function(){this.hidden=!1,this.dom.frame.parentNode||(this.options.rtl?this.body.dom.left.appendChild(this.dom.frame):this.body.dom.left.appendChild(this.dom.frame)),this.dom.lineContainer.parentNode||this.body.dom.backgroundHorizontal.appendChild(this.dom.lineContainer)},o.prototype.hide=function(){this.hidden=!0,this.dom.frame.parentNode&&this.dom.frame.parentNode.removeChild(this.dom.frame),this.dom.lineContainer.parentNode&&this.dom.lineContainer.parentNode.removeChild(this.dom.lineContainer)},o.prototype.setRange=function(t,e){this.range.start=t,this.range.end=e},o.prototype.redraw=function(){var t=!1,e=0;this.dom.lineContainer.style.top=this.body.domProps.scrollTop+"px";for(var i in this.groups)this.groups.hasOwnProperty(i)&&(this.groups[i].visible!==!0||void 0!==this.linegraphOptions.visibility[i]&&this.linegraphOptions.visibility[i]!==!0||e++);if(0===this.amountOfGroups||0===e)this.hide();else{this.show(),this.height=Number(this.linegraphSVG.style.height.replace("px","")),this.dom.lineContainer.style.height=this.height+"px",this.width=this.options.visible===!0?Number((""+this.options.width).replace("px","")):0;var o=this.props,n=this.dom.frame;n.className="vis-data-axis",this._calculateCharSize();var s=this.options.orientation,r=this.options.showMinorLabels,a=this.options.showMajorLabels;o.minorLabelHeight=r?o.minorCharHeight:0,o.majorLabelHeight=a?o.majorCharHeight:0,o.minorLineWidth=this.body.dom.backgroundHorizontal.offsetWidth-this.lineOffset-this.width+2*this.options.minorLinesOffset,o.minorLineHeight=1,o.majorLineWidth=this.body.dom.backgroundHorizontal.offsetWidth-this.lineOffset-this.width+2*this.options.majorLinesOffset,o.majorLineHeight=1,"left"===s?(n.style.top="0",n.style.left="0",n.style.bottom="",n.style.width=this.width+"px",n.style.height=this.height+"px",this.props.width=this.body.domProps.left.width,this.props.height=this.body.domProps.left.height):(n.style.top="",n.style.bottom="0",n.style.left="0",n.style.width=this.width+"px",n.style.height=this.height+"px",this.props.width=this.body.domProps.right.width,
+this.props.height=this.body.domProps.right.height),t=this._redrawLabels(),t=this._isResized()||t,this.options.icons===!0?this._redrawGroupIcons():this._cleanupIcons(),this._redrawTitle(s)}return t},o.prototype._redrawLabels=function(){var t=this,e=!1;s.prepareElements(this.DOMelements.lines),s.prepareElements(this.DOMelements.labels);var i=this.options.orientation,o=void 0!=this.options[i].range?this.options[i].range:{},n=!0;void 0!=o.max&&(this.range.end=o.max,n=!1);var r=!0;void 0!=o.min&&(this.range.start=o.min,r=!1),this.scale=new a(this.range.start,this.range.end,r,n,this.dom.frame.offsetHeight,this.props.majorCharHeight,this.options.alignZeros,this.options[i].format),this.master===!1&&void 0!=this.masterAxis&&this.scale.followScale(this.masterAxis.scale),this.maxLabelSize=0;var h=this.scale.getLines();h.forEach(function(e){var o=e.y,n=e.major;t.options.showMinorLabels&&n===!1&&t._redrawLabel(o-2,e.val,i,"vis-y-axis vis-minor",t.props.minorCharHeight),n&&o>=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.maxLabelSize<this.width-l&&this.options.visible===!0&&this.width>this.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<e.length*a&&(this.maxLabelSize=e.length*a)},o.prototype._redrawLine=function(t,e,i,o,n){if(this.master===!0){var r=s.getDOMElement("div",this.DOMelements.lines,this.dom.lineContainer);r.className=i,r.innerHTML="","left"===e?r.style.left=this.width-o+"px":r.style.right=this.width-o+"px",r.style.width=n+"px",r.style.top=t+"px"}},o.prototype._redrawTitle=function(t){if(s.prepareElements(this.DOMelements.title),void 0!==this.options[t].title&&void 0!==this.options[t].title.text){var e=s.getDOMElement("div",this.DOMelements.title,this.dom.frame);e.className="vis-y-axis vis-title vis-"+t,e.innerHTML=this.options[t].title.text,void 0!==this.options[t].title.style&&n.addCssText(e,this.options[t].title.style),"left"===t?e.style.left=this.props.titleCharHeight+"px":e.style.right=this.props.titleCharHeight+"px",e.style.width=this.height+"px"}s.cleanupElements(this.DOMelements.title)},o.prototype._calculateCharSize=function(){if(!("minorCharHeight"in this.props)){var t=document.createTextNode("0"),e=document.createElement("div");e.className="vis-y-axis vis-minor vis-measure",e.appendChild(t),this.dom.frame.appendChild(e),this.props.minorCharHeight=e.clientHeight,this.props.minorCharWidth=e.clientWidth,this.dom.frame.removeChild(e)}if(!("majorCharHeight"in this.props)){var i=document.createTextNode("0"),o=document.createElement("div");o.className="vis-y-axis vis-major vis-measure",o.appendChild(i),this.dom.frame.appendChild(o),this.props.majorCharHeight=o.clientHeight,this.props.majorCharWidth=o.clientWidth,this.dom.frame.removeChild(o)}if(!("titleCharHeight"in this.props)){var n=document.createTextNode("0"),s=document.createElement("div");s.className="vis-y-axis vis-title vis-measure",s.appendChild(n),this.dom.frame.appendChild(s),this.props.titleCharHeight=s.clientHeight,this.props.titleCharWidth=s.clientWidth,this.dom.frame.removeChild(s)}},t.exports=o},function(t,e){function i(t,e,i,o,n,s){var r=arguments.length<=6||void 0===arguments[6]?!1:arguments[6],a=arguments.length<=7||void 0===arguments[7]?!1: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;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<this.minorSteps.length;r++){var a=this.magnitudefactor*this.minorSteps[r];if(a>=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.minorStepIdx<this.minorStepIdx?(this.minorStepIdx=1,2==e?s():(s(),s())):(this.minorStepIdx=2,1==e?r():(r(),r())));for(var a=(t.getLines(),t.convertValue(0)),h=t.getStep()*t.scale,d=!1,l=0;!d&&l++<5;){this.scale=h/(this.minorSteps[this.minorStepIdx]*this.magnitudefactor);var c=this.containerHeight/this.scale;this._start=i,this._end=this._start+c;var u=this._end*this.scale,p=this.magnitudefactor*this.majorSteps[this.minorStepIdx],f=this.getFirstMajor()-t.getFirstMajor();if(this.zeroAlign){var m=a-u;this._end+=m/this.scale,this._start=this._end-c}else this.autoScaleStart?(this._start-=f/this.scale,this._end=this._start+c):(this._start+=p-f/this.scale,this._end=this._start+c);if(!this.autoScaleEnd&&this._end>o+1e-5)r(),d=!1;else{if(!this.autoScaleStart&&this._start<i-1e-5){if(!(this.zeroAlign&&i>=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;o<t.length;o++)e=e>t[o].y?t[o].y:e,i=i<t[o].y?t[o].y:i;return{min:e,max:i,yAxisOrientation:this.options.yAxisOrientation}},t.exports=o},function(t,e,i){function o(t,e){}var n=i(8),s=i(56);o.drawIcon=function(t,e,i,o,s,r){var a=.5*s,h=n.getSVGElement("rect",r.svgElements,r.svg);h.setAttributeNS(null,"x",e),h.setAttributeNS(null,"y",i-a),h.setAttributeNS(null,"width",o),h.setAttributeNS(null,"height",2*a),h.setAttributeNS(null,"class","vis-outline");var d=Math.round(.3*o),l=t.options.barChart.width,c=l/d,u=Math.round(.4*s),p=Math.round(.75*s),f=Math.round((o-2*d)/3);if(n.drawBar(e+.5*d+f,i+a-u-1,d,u,t.className+" vis-bar",r.svgElements,r.svg,t.style),n.drawBar(e+1.5*d+f+2,i+a-p-1,d,p,t.className+" vis-bar",r.svgElements,r.svg,t.style),1==t.options.drawPoints.enabled){var m={style:t.options.drawPoints.style,styles:t.options.drawPoints.styles,size:t.options.drawPoints.size/c,className:t.className};n.drawPoint(e+.5*d+f,i+a-u-1,m,r.svgElements,r.svg),n.drawPoint(e+1.5*d+f+2,i+a-p-1,m,r.svgElements,r.svg)}},o.draw=function(t,e,i){var r,a,h,d,l,c,u=[],p={},f=0;for(l=0;l<t.length;l++)if(d=i.groups[t[l]],"bar"===d.options.style&&d.visible===!0&&(void 0===i.options.groups.visibility[t[l]]||i.options.groups.visibility[t[l]]===!0))for(c=0;c<e[t[l]].length;c++)u.push({screen_x:e[t[l]][c].screen_x,screen_y:e[t[l]][c].screen_y,x:e[t[l]][c].x,y:e[t[l]][c].y,groupId:t[l],label:e[t[l]][c].label}),f+=1;if(0!==f)for(u.sort(function(t,e){return t.screen_x===e.screen_x?t.groupId<e.groupId?-1:1:t.screen_x-e.screen_x}),o._getDataIntersections(p,u),l=0;l<u.length;l++){d=i.groups[u[l].groupId];var m=void 0!=d.options.barChart.minWidth?d.options.barChart.minWidth:.1*d.options.barChart.width;a=u[l].screen_x;var v=0;if(void 0===p[a])l+1<u.length&&(r=Math.abs(u[l+1].screen_x-a)),h=o._getSafeDrawData(r,d,m);else{var g=l+(p[a].amount-p[a].resolved);l-(p[a].resolved+1);g<u.length&&(r=Math.abs(u[g].screen_x-a)),h=o._getSafeDrawData(r,d,m),p[a].resolved+=1,d.options.stack===!0&&d.options.excludeFromStacking!==!0?u[l].screen_y<d.zeroPosition?(v=p[a].accumulatedNegative,p[a].accumulatedNegative+=d.zeroPosition-u[l].screen_y):(v=p[a].accumulatedPositive,p[a].accumulatedPositive+=d.zeroPosition-u[l].screen_y):d.options.barChart.sideBySide===!0&&(h.width=h.width/p[a].amount,h.offset+=p[a].resolved*h.width-.5*h.width*(p[a].amount+1))}if(n.drawBar(u[l].screen_x+h.offset,u[l].screen_y-v,h.width,d.zeroPosition-u[l].screen_y,d.className+" vis-bar",i.svgElements,i.svg,d.style),d.options.drawPoints.enabled===!0){var y={screen_x:u[l].screen_x,screen_y:u[l].screen_y-v,x:u[l].x,y:u[l].y,groupId:u[l].groupId,label:u[l].label};s.draw([y],d,i,h.offset)}}},o._getDataIntersections=function(t,e){for(var i,o=0;o<e.length;o++)o+1<e.length&&(i=Math.abs(e[o+1].screen_x-e[o].screen_x)),o>0&&(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 t<e.options.barChart.width&&t>0?(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.groupId<e.groupId?-1:1:t.screen_x-e.screen_x});var r={};o._getDataIntersections(r,t),e[n]=o._getStackedYRange(r,t),e[n].yAxisOrientation=s,i.push(n)}},o._getStackedYRange=function(t,e){for(var i,o=e[0].screen_y,n=e[0].screen_y,s=0;s<e.length;s++)i=e[s].screen_x,void 0===t[i]?(o=o>e[s].screen_y?e[s].screen_y:o,n=n<e[s].screen_y?e[s].screen_y:n):e[s].screen_y<0?t[i].accumulatedNegative+=e[s].screen_y:t[i].accumulatedPositive+=e[s].screen_y;for(var r in t)t.hasOwnProperty(r)&&(o=o>t[r].accumulatedNegative?t[r].accumulatedNegative:o,o=o>t[r].accumulatedPositive?t[r].accumulatedPositive:o,n=n<t[r].accumulatedNegative?t[r].accumulatedNegative:n,n=n<t[r].accumulatedPositive?t[r].accumulatedPositive:n);return{min:o,max:n}},t.exports=o},function(t,e,i){function o(t,e){}function n(t,e){return e="undefined"==typeof e?{}:e,{style:e.style||t.options.drawPoints.style,styles:e.styles||t.options.drawPoints.styles,size:e.size||t.options.drawPoints.size,className:e.className||t.className}}function s(t,e){var i=void 0;return t.options&&t.options.drawPoints&&t.options.drawPoints.onRender&&"function"==typeof t.options.drawPoints.onRender&&(i=t.options.drawPoints.onRender),e.group.options&&e.group.options.drawPoints&&e.group.options.drawPoints.onRender&&"function"==typeof e.group.options.drawPoints.onRender&&(i=e.group.options.drawPoints.onRender),i}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(8);o.draw=function(t,e,i,o){o=o||0;for(var h=s(i,e),d=0;d<t.length;d++)if(h){var l=h(t[d],e);l!==!0&&"object"!==("undefined"==typeof l?"undefined":r(l))||a.drawPoint(t[d].screen_x+o,t[d].screen_y,n(e,l),i.svgElements,i.svg,t[d].label)}else a.drawPoint(t[d].screen_x+o,t[d].screen_y,n(e),i.svgElements,i.svg,t[d].label)},o.drawIcon=function(t,e,i,o,s,r){var h=.5*s,d=a.getSVGElement("rect",r.svgElements,r.svg);d.setAttributeNS(null,"x",e),d.setAttributeNS(null,"y",i-h),d.setAttributeNS(null,"width",o),d.setAttributeNS(null,"height",2*h),d.setAttributeNS(null,"class","vis-outline"),a.drawPoint(e+.5*o,i,n(t),r.svgElements,r.svg)},t.exports=o},function(t,e,i){function o(t,e){}var n=i(8);o.calcPath=function(t,e){if(null!=t&&t.length>0){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;n<t.length;n++)o+=t[n][0]+","+t[n][1]+" ";return o},o._catmullRomUniform=function(t){var e,i,o,n,s,r,a=[];a.push([Math.round(t[0].screen_x),Math.round(t[0].screen_y)]);for(var h=1/6,d=t.length,l=0;d-1>l;l++)e=0==l?t[0]:t[l-1],i=t[l],o=t[l+1],n=d>l+2?t[l+2]:o,s={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;i<t.length;i++)e.push([t[i].screen_x,t[i].screen_y]);return e},t.exports=o},function(t,e,i){function o(t,e,i,o){this.body=t,this.defaultOptions={enabled:!1,icons:!0,iconSize:20,iconSpacing:6,left:{visible:!0,position:"top-left"},right:{visible:!0,position:"top-right"}},this.side=i,this.options=n.extend({},this.defaultOptions),this.linegraphOptions=o,this.svgElements={},this.dom={},this.groups={},this.amountOfGroups=0,this._create(),this.framework={svg:this.svg,svgElements:this.svgElements,options:this.options,groups:this.groups},this.setOptions(e)}var n=i(1),s=i(8),r=i(31);o.prototype=new r,o.prototype.clear=function(){this.groups={},this.amountOfGroups=0},o.prototype.addGroup=function(t,e){1!=e.options.excludeFromLegend&&(this.groups.hasOwnProperty(t)||(this.groups[t]=e),this.amountOfGroups+=1)},o.prototype.updateGroup=function(t,e){this.groups[t]=e},o.prototype.removeGroup=function(t){this.groups.hasOwnProperty(t)&&(delete this.groups[t],this.amountOfGroups-=1)},o.prototype._create=function(){this.dom.frame=document.createElement("div"),this.dom.frame.className="vis-legend",this.dom.frame.style.position="absolute",this.dom.frame.style.top="10px",this.dom.frame.style.display="block",this.dom.textArea=document.createElement("div"),this.dom.textArea.className="vis-legend-text",this.dom.textArea.style.position="relative",this.dom.textArea.style.top="0px",this.svg=document.createElementNS("http://www.w3.org/2000/svg","svg"),this.svg.style.position="absolute",this.svg.style.top="0px",this.svg.style.width=this.options.iconSize+5+"px",this.svg.style.height="100%",this.dom.frame.appendChild(this.svg),this.dom.frame.appendChild(this.dom.textArea)},o.prototype.hide=function(){this.dom.frame.parentNode&&this.dom.frame.parentNode.removeChild(this.dom.frame)},o.prototype.show=function(){this.dom.frame.parentNode||this.body.dom.center.appendChild(this.dom.frame)},o.prototype.setOptions=function(t){var e=["enabled","orientation","icons","left","right"];n.selectiveDeepExtend(e,this.options,t)},o.prototype.redraw=function(){var t=0,e=Object.keys(this.groups);e.sort(function(t,e){return e>t?-1:1});for(var i=0;i<e.length;i++){var o=e[i];1!=this.groups[o].visible||void 0!==this.linegraphOptions.visibility[o]&&1!=this.linegraphOptions.visibility[o]||t++}if(0==this.options[this.side].visible||0==this.amountOfGroups||0==this.options.enabled||0==t)this.hide();else{if(this.show(),"top-left"==this.options[this.side].position||"bottom-left"==this.options[this.side].position?(this.dom.frame.style.left="4px",this.dom.frame.style.textAlign="left",this.dom.textArea.style.textAlign="left",this.dom.textArea.style.left=this.options.iconSize+15+"px",this.dom.textArea.style.right="",this.svg.style.left="0px",this.svg.style.right=""):(this.dom.frame.style.right="4px",this.dom.frame.style.textAlign="right",this.dom.textArea.style.textAlign="right",this.dom.textArea.style.right=this.options.iconSize+15+"px",this.dom.textArea.style.left="",this.svg.style.right="0px",this.svg.style.left=""),"top-left"==this.options[this.side].position||"top-right"==this.options[this.side].position)this.dom.frame.style.top=4-Number(this.body.dom.center.style.top.replace("px",""))+"px",this.dom.frame.style.bottom="";else{var n=this.body.domProps.center.height-this.body.domProps.centerContainer.height;this.dom.frame.style.bottom=4+n+Number(this.body.dom.center.style.top.replace("px",""))+"px",this.dom.frame.style.top=""}0==this.options.icons?(this.dom.frame.style.width=this.dom.textArea.offsetWidth+10+"px",this.dom.textArea.style.right="",this.dom.textArea.style.left="",this.svg.style.width="0px"):(this.dom.frame.style.width=this.options.iconSize+15+this.dom.textArea.offsetWidth+10+"px",this.drawLegendIcons());for(var s="",i=0;i<e.length;i++){var o=e[i];1!=this.groups[o].visible||void 0!==this.linegraphOptions.visibility[o]&&1!=this.linegraphOptions.visibility[o]||(s+=this.groups[o].content+"<br />")}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<t.length;h++){var d=t[h];1!=this.groups[d].visible||void 0!==this.linegraphOptions.visibility[d]&&1!=this.linegraphOptions.visibility[d]||(this.groups[d].getLegend(n,r,this.framework,o,a),a+=r+this.options.iconSpacing)}}},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"}},yAxisOrientation:{string:["left","right"]},defaultGroup:{string:i},sort:{"boolean":o},sampling:{"boolean":o},stack:{"boolean":o},graphHeight:{string:i,number:n},shaded:{enabled:{"boolean":o},orientation:{string:["bottom","top","zero","group"]},groupId:{object:a},__type__:{"boolean":o,object:a}},style:{string:["line","bar","points"]},barChart:{width:{number:n},minWidth:{number:n},sideBySide:{"boolean":o},align:{string:["left","center","right"]},__type__:{object:a}},interpolation:{enabled:{"boolean":o},parametrization:{string:["centripetal","chordal","uniform"]},alpha:{number:n},__type__:{object:a,"boolean":o}},drawPoints:{enabled:{"boolean":o},onRender:{"function":"function"},size:{number:n},style:{string:["square","circle"]},__type__:{object:a,"boolean":o,"function":"function"}},dataAxis:{showMinorLabels:{"boolean":o},showMajorLabels:{"boolean":o},icons:{"boolean":o},width:{string:i,number:n},visible:{"boolean":o},alignZeros:{"boolean":o},left:{range:{min:{number:n},max:{number:n},__type__:{object:a}},format:{"function":"function"},title:{text:{string:i,number:n},style:{string:i},__type__:{object:a}},__type__:{object:a}},right:{range:{min:{number:n},max:{number:n},__type__:{object:a}},format:{"function":"function"},title:{text:{string:i,number:n},style:{string:i},__type__:{object:a}},__type__:{object:a}},__type__:{object:a}},legend:{enabled:{"boolean":o},icons:{"boolean":o},left:{visible:{"boolean":o},position:{string:["top-right","bottom-right","top-left","bottom-left"]},__type__:{object:a}},right:{visible:{"boolean":o},position:{string:["top-right","bottom-right","top-left","bottom-left"]},__type__:{object:a}},__type__:{object:a,"boolean":o}},groups:{visibility:{any:l},__type__:{object:a}},autoResize:{"boolean":o},throttleRedraw:{number:n},clickToUse:{"boolean":o},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"},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}},locale:{string:i},locales:{__any__:{any:l},__type__:{object:a}},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},orientation:{string:i},showCurrentTime:{"boolean":o},showMajorLabels:{"boolean":o},showMinorLabels:{"boolean":o},start:{date:r,number:n,string:i,moment:d},timeAxis:{scale:{string:i,undefined:"undefined"},step:{number:n,undefined:"undefined"},__type__:{object:a}},width:{string:i,number:n},zoomable:{"boolean":o},zoomKey:{string:["ctrlKey","altKey","metaKey",""]},zoomMax:{number:n},zoomMin:{number:n},zIndex:{number:n},__type__:{object:a}},u={global:{sort:!0,sampling:!0,stack:!1,shaded:{enabled:!1,orientation:["zero","top","bottom","group"]},style:["line","bar","points"],barChart:{width:[50,5,100,5],minWidth:[50,5,100,5],sideBySide:!1,align:["left","center","right"]},interpolation:{enabled:!0,parametrization:["centripetal","chordal","uniform"]},drawPoints:{enabled:!0,size:[6,2,30,1],style:["square","circle"]},dataAxis:{showMinorLabels:!0,showMajorLabels:!0,icons:!1,width:[40,0,200,1],visible:!0,alignZeros:!0,left:{title:{text:"",style:""}},right:{title:{text:"",style:""}}},legend:{enabled:!1,icons:!0,left:{visible:!0,position:["top-right","bottom-right","top-left","bottom-left"]},right:{visible:!0,position:["top-right","bottom-right","top-left","bottom-left"]}},autoResize:!0,throttleRedraw:[10,0,1e3,10],clickToUse:!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:""}},height:"",locale:"",max:"",maxHeight:"",maxMinorChars:[7,0,20,1],min:"",minHeight:"",moveable:!0,orientation:["both","bottom","top"],showCurrentTime:!1,showMajorLabels:!0,showMinorLabels:!0,start:"",width:"100%",zoomable:!0,zoomKey:["ctrlKey","altKey","metaKey",""],zoomMax:[31536e10,10,31536e10,1],zoomMin:[10,10,31536e10,1],zIndex:0}};e.allOptions=c,e.configureOptions=u},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.Network=i(61),e.network={Images:i(62),dotparser:i(118),gephiParser:i(119),allOptions:i(114)},e.network.convertDot=function(t){return e.network.dotparser.DOTToGraph(t)},e.network.convertGephi=function(t,i){return e.network.gephiParser.parseGephi(t,i)},e.moment=i(2),e.Hammer=i(20),e.keycharm=i(23)},function(t,e,i){function o(t){return t&&t.__esModule?t:{"default":t}}function n(t,e,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},F.extend(this.options,this.defaultOptions),this.body={container:t,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 w["default"](this.body),this.selectionHandler=new D["default"](this.body,this.canvas),this.interactionHandler=new O["default"](this.body,this.canvas,this.selectionHandler),this.view=new x["default"](this.body,this.canvas),this.renderer=new y["default"](this.body,this.canvas),this.physics=new f["default"](this.body),this.layoutEngine=new C["default"](this.body),this.clustering=new v["default"](this.body),this.manipulation=new E["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 A["default"](this.body,150,.05),this.body.modules.clustering=this.clustering,this.canvas._create(),this.setOptions(i),this.setData(e)}var s=i(62),r=o(s),a=i(63),h=o(a),d=i(64),l=o(d),c=i(84),u=o(c),p=i(93),f=o(p),m=i(102),v=o(m),g=i(105),y=o(g),b=i(106),w=o(b),_=i(107),x=o(_),k=i(108),O=o(k),M=i(111),D=o(M),S=i(112),C=o(S),T=i(113),E=o(T),P=i(26),I=o(P),N=i(29),R=o(N),z=i(114),L=i(115),A=o(L);i(117);var B=i(13),F=i(1),j=(i(9),i(11),i(118)),H=i(119),W=i(45),Y=i(120);B(n.prototype),n.prototype.setOptions=function(t){var e=this;if(void 0!==t){var i=R["default"].validate(t,z.allOptions);i===!0&&console.log("%cErrors have been found in the supplied options object.",N.printStyle);var o=["locale","locales","clickToUse"];if(F.selectiveDeepExtend(o,this.options,t),t=this.layoutEngine.setOptions(t.layout,t),this.canvas.setOptions(t),this.groups.setOptions(t.groups),this.nodesHandler.setOptions(t.nodes),this.edgesHandler.setOptions(t.edges),this.physics.setOptions(t.physics),this.manipulation.setOptions(t.manipulation,t,this.options),this.interactionHandler.setOptions(t.interaction),this.renderer.setOptions(t.interaction),this.selectionHandler.setOptions(t.interaction),void 0!==t.groups&&this.body.emitter.emit("refreshNodes"),"configure"in t&&(this.configurator||(this.configurator=new I["default"](this,this.body.container,z.configureOptions,this.canvas.pixelRatio)),this.configurator.setOptions(t.configure)),this.configurator&&this.configurator.options.enabled===!0){var n={nodes:{},edges:{},layout:{},interaction:{},manipulation:{},physics:{},global:{}};F.deepExtend(n.nodes,this.nodesHandler.options),F.deepExtend(n.edges,this.edgesHandler.options),F.deepExtend(n.layout,this.layoutEngine.options),F.deepExtend(n.interaction,this.selectionHandler.options),F.deepExtend(n.interaction,this.renderer.options),F.deepExtend(n.interaction,this.interactionHandler.options),F.deepExtend(n.manipulation,this.manipulation.options),F.deepExtend(n.physics,this.physics.options),F.deepExtend(n.global,this.canvas.options),F.deepExtend(n.global,this.options),this.configurator.setModuleOptions(n)}void 0!==t.clickToUse?t.clickToUse===!0?void 0===this.activator&&(this.activator=new W(this.canvas.frame),this.activator.on("change",function(){e.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 t=this.body.nodes,e=this.body.edges;this.body.nodeIndices=[],this.body.edgeIndices=[];for(var i in t)t.hasOwnProperty(i)&&t[i].options.hidden===!1&&this.body.nodeIndices.push(t[i].id);for(var o in e)e.hasOwnProperty(o)&&e[o].options.hidden===!1&&this.body.edgeIndices.push(e[o].id)},n.prototype.bindEventListeners=function(){var t=this;this.body.emitter.on("_dataChanged",function(){t._updateVisibleIndices(),t.body.emitter.emit("_requestRedraw"),t.body.emitter.emit("_dataUpdated")}),this.body.emitter.on("_dataUpdated",function(){t._updateValueRange(t.body.nodes),t._updateValueRange(t.body.edges),t.body.emitter.emit("startSimulation"),t.body.emitter.emit("_requestRedraw")})},n.prototype.setData=function(t){if(this.body.emitter.emit("resetPhysics"),this.body.emitter.emit("_resetData"),this.selectionHandler.unselectAll(),t&&t.dot&&(t.nodes||t.edges))throw new SyntaxError('Data must contain either parameter "dot" or parameter pair "nodes" and "edges", but not both.');if(this.setOptions(t&&t.options),t&&t.dot){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 e=j.DOTToGraph(t.dot);return void this.setData(e)}if(t&&t.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(t.gephi);return void this.setData(i)}this.nodesHandler.setData(t&&t.nodes,!0),this.edgesHandler.setData(t&&t.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 t in this.body.nodes)delete this.body.nodes[t];for(var e in this.body.edges)delete this.body.edges[e];F.recursiveDOMDelete(this.body.container)},n.prototype._updateValueRange=function(t){var e,i=void 0,o=void 0,n=0;for(e in t)if(t.hasOwnProperty(e)){var s=t[e].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(e in t)t.hasOwnProperty(e)&&t[e].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(t){return void 0!==this.body.nodes[t]?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 t=this.selectionHandler.getNodeAt.apply(this.selectionHandler,arguments);return void 0!==t&&void 0!==t.id?t.id:t},n.prototype.getEdgeAt=function(){var t=this.selectionHandler.getEdgeAt.apply(this.selectionHandler,arguments);return void 0!==t&&void 0!==t.id?t.id:t},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 t={};return this.configurator&&(t=this.configurator.getOptions.apply(this.configurator)),t},t.exports=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;i<e.length;i++){var o=e[i];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(t,o.key,o)}}return function(e,i,o){return i&&t(e.prototype,i),o&&t(e,o),e}}(),n=function(){function t(e){i(this,t),this.images={},this.imageBroken={},this.callback=e}return o(t,[{key:"_addImageToCache",value:function(t,e){0===e.width&&(document.body.appendChild(e),e.width=e.offsetWidth,e.height=e.offsetHeight,document.body.removeChild(e)),this.images[t]=e}},{key:"_tryloadBrokenUrl",value:function(t,e,i){var o=this;void 0!==t&&void 0!==e&&void 0!==i&&(i.onerror=function(){console.error("Could not load brokenImage:",e),o._addImageToCache(t,new Image)},i.src=e)}},{key:"_redrawWithImage",value:function(t){this.callback&&this.callback(t)}},{key:"load",value:function(t,e,i){var o=this,n=this.images[t];if(n)return n;var s=new Image;return s.onload=function(){o._addImageToCache(t,s),o._redrawWithImage(s)},s.onerror=function(){console.error("Could not load image:",t),o._tryloadBrokenUrl(t,e,s)},s.src=t,s}}]),t}();e["default"]=n},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;i<e.length;i++){var o=e[i];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(t,o.key,o)}}return function(e,i,o){return i&&t(e.prototype,i),o&&t(e,o),e}}(),s=i(1),r=function(){function t(){o(this,t),this.clear(),this.defaultIndex=0,this.groupsArray=[],this.groupIndex=0,this.defaultGroups=[{border:"#2B7CE9",background:"#97C2FC",highlight:{border:"#2B7CE9",background:"#D2E5FF"},hover:{border:"#2B7CE9",background:"#D2E5FF"}},{border:"#FFA500",background:"#FFFF00",highlight:{border:"#FFA500",background:"#FFFFA3"},hover:{border:"#FFA500",background:"#FFFFA3"}},{border:"#FA0A10",background:"#FB7E81",highlight:{border:"#FA0A10",background:"#FFAFB1"},hover:{border:"#FA0A10",background:"#FFAFB1"}},{border:"#41A906",background:"#7BE141",highlight:{border:"#41A906",background:"#A1EC76"},hover:{border:"#41A906",background:"#A1EC76"}},{border:"#E129F0",background:"#EB7DF4",highlight:{border:"#E129F0",background:"#F0B3F5"},hover:{border:"#E129F0",background:"#F0B3F5"}},{border:"#7C29F0",background:"#AD85E4",highlight:{border:"#7C29F0",background:"#D3BDF0"},hover:{border:"#7C29F0",background:"#D3BDF0"}},{border:"#C37F00",background:"#FFA807",highlight:{border:"#C37F00",background:"#FFCA66"},hover:{border:"#C37F00",background:"#FFCA66"}},{border:"#4220FB",background:"#6E6EFD",highlight:{border:"#4220FB",background:"#9B9BFD"},hover:{border:"#4220FB",background:"#9B9BFD"}},{border:"#FD5A77",background:"#FFC0CB",highlight:{border:"#FD5A77",background:"#FFD1D9"},hover:{border:"#FD5A77",background:"#FFD1D9"}},{border:"#4AD63A",background:"#C2FABC",highlight:{border:"#4AD63A",background:"#E6FFE3"},hover:{border:"#4AD63A",background:"#E6FFE3"}},{border:"#990000",background:"#EE0000",highlight:{border:"#BB0000",background:"#FF3333"},hover:{border:"#BB0000",background:"#FF3333"}},{border:"#FF6000",background:"#FF6000",highlight:{border:"#FF6000",background:"#FF6000"},hover:{border:"#FF6000",background:"#FF6000"}},{border:"#97C2FC",background:"#2B7CE9",highlight:{border:"#D2E5FF",background:"#2B7CE9"},hover:{border:"#D2E5FF",background:"#2B7CE9"}},{border:"#399605",background:"#255C03",highlight:{border:"#399605",background:"#255C03"},hover:{border:"#399605",background:"#255C03"}},{border:"#B70054",background:"#FF007E",highlight:{border:"#B70054",background:"#FF007E"},hover:{border:"#B70054",background:"#FF007E"}},{border:"#AD85E4",background:"#7C29F0",highlight:{border:"#D3BDF0",background:"#7C29F0"},hover:{border:"#D3BDF0",background:"#7C29F0"}},{border:"#4557FA",background:"#000EA1",highlight:{border:"#6E6EFD",background:"#000EA1"},hover:{border:"#6E6EFD",background:"#000EA1"}},{border:"#FFC0CB",background:"#FD5A77",highlight:{border:"#FFD1D9",background:"#FD5A77"},hover:{border:"#FFD1D9",background:"#FD5A77"}},{border:"#C2FABC",background:"#74D66A",highlight:{border:"#E6FFE3",background:"#74D66A"},hover:{border:"#E6FFE3",background:"#74D66A"}},{border:"#EE0000",background:"#990000",highlight:{border:"#FF3333",background:"#BB0000"},hover:{border:"#FF3333",background:"#BB0000"}}],this.options={},this.defaultOptions={useDefaultGroups:!0},s.extend(this.options,this.defaultOptions)}return n(t,[{key:"setOptions",value:function(t){var e=["useDefaultGroups"];if(void 0!==t)for(var i in t)if(t.hasOwnProperty(i)&&-1===e.indexOf(i)){var o=t[i];this.add(i,o)}}},{key:"clear",value:function(){this.groups={},this.groupsArray=[]}},{key:"get",value:function(t){var e=this.groups[t];if(void 0===e)if(this.options.useDefaultGroups===!1&&this.groupsArray.length>0){var i=this.groupIndex%this.groupsArray.length;this.groupIndex++,e={},e.color=this.groups[this.groupsArray[i]],this.groups[t]=e}else{var 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;i<e.length;i++){var o=e[i];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(t,o.key,o)}}return function(e,i,o){return i&&t(e.prototype,i),o&&t(e,o),e}}(),r=i(65),a=o(r),h=i(66),d=o(h),l=i(1),c=i(9),u=i(11),p=function(){function t(e,i,o,s){var r=this;n(this,t),this.body=e,this.images=i,this.groups=o,this.layoutEngine=s,this.body.functions.createNode=this.create.bind(this),this.nodesListeners={add:function(t,e){r.add(e.items)},update:function(t,e){r.update(e.items,e.data)},remove:function(t,e){r.remove(e.items)}},this.options={},this.defaultOptions={borderWidth:1,borderWidthSelected:2,brokenImage:void 0,color:{border:"#2B7CE9",background:"#97C2FC",highlight:{border:"#2B7CE9",background:"#D2E5FF"},hover:{border:"#2B7CE9",background:"#D2E5FF"}},fixed:{x:!1,y:!1},font:{color:"#343434",size:14,face:"arial",background:"none",strokeWidth:0,strokeColor:"#ffffff",align:"center"},group:void 0,hidden:!1,icon:{face:"FontAwesome",code:void 0,size:50,color:"#2B7CE9"},image:void 0,label:void 0,labelHighlightBold:!0,level:void 0,mass:1,physics:!0,scaling:{min:10,max:30,label:{enabled:!1,min:14,max:30,maxVisible:30,drawThreshold:5},customScalingFunction:function(t,e,i,o){if(e===t)return.5;var n=1/(e-t);return Math.max(0,(o-t)*n)}},shadow:{enabled:!1,color:"rgba(0,0,0,0.5)",size:10,x:5,y:5},shape:"ellipse",shapeProperties:{borderDashes:!1,borderRadius:6,interpolation:!0,useImageSize:!1,useBorderWithImage:!1},size:25,title:void 0,value:void 0,x:void 0,y:void 0},l.extend(this.options,this.defaultOptions),this.bindEventListeners()}return s(t,[{key:"bindEventListeners",value:function(){var t=this;this.body.emitter.on("refreshNodes",this.refresh.bind(this)),this.body.emitter.on("refresh",this.refresh.bind(this)),this.body.emitter.on("destroy",function(){l.forEach(t.nodesListeners,function(e,i){t.body.data.nodes&&t.body.data.nodes.off(i,e)}),delete t.body.functions.createNode,delete t.nodesListeners.add,delete t.nodesListeners.update,delete t.nodesListeners.remove,delete t.nodesListeners})}},{key:"setOptions",value:function(t){if(void 0!==t){if(a["default"].parseOptions(this.options,t),void 0!==t.shape)for(var e in this.body.nodes)this.body.nodes.hasOwnProperty(e)&&this.body.nodes[e].updateShape();if(void 0!==t.font){d["default"].parseOptions(this.options.font,t);for(var i in this.body.nodes)this.body.nodes.hasOwnProperty(i)&&(this.body.nodes[i].updateLabelModule(),this.body.nodes[i]._reset())}if(void 0!==t.size)for(var o in this.body.nodes)this.body.nodes.hasOwnProperty(o)&&this.body.nodes[o]._reset();void 0===t.hidden&&void 0===t.physics||this.body.emitter.emit("_dataChanged")}}},{key:"setData",value:function(t){var e=this,i=arguments.length<=1||void 0===arguments[1]?!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]?!1:arguments[1],i=void 0,o=[],n=0;n<t.length;n++){i=t[n];var s=this.body.data.nodes.get(i),r=this.create(s);o.push(r),this.body.nodes[i]=r}this.layoutEngine.positionInitially(o),e===!1&&this.body.emitter.emit("_dataChanged")}},{key:"update",value:function(t,e){for(var i=this.body.nodes,o=!1,n=0;n<t.length;n++){var s=t[n],r=i[s],a=e[n];void 0!==r?o=r.setOptions(a):(o=!0,r=this.create(a),i[s]=r)}o===!0?this.body.emitter.emit("_dataChanged"):this.body.emitter.emit("_dataUpdated")}},{key:"remove",value:function(t){for(var e=this.body.nodes,i=0;i<t.length;i++){var o=t[i];delete e[o]}this.body.emitter.emit("_dataChanged")}},{key:"create",value:function(t){var e=arguments.length<=1||void 0===arguments[1]?a["default"]:arguments[1];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]?!1: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;i<t.length;i++)if(void 0!==this.body.nodes[t[i]]){var o=this.body.nodes[t[i]];e[t[i]]={x:Math.round(o.x),y:Math.round(o.y)}}}else if(void 0!==this.body.nodes[t]){var n=this.body.nodes[t];e[t]={x:Math.round(n.x),y:Math.round(n.y)}}}else for(var s=0;s<this.body.nodeIndices.length;s++){var r=this.body.nodes[this.body.nodeIndices[s]];e[this.body.nodeIndices[s]]={x:Math.round(r.x),y:Math.round(r.y)}}return e}},{key:"storePositions",value:function(){var t=[],e=this.body.data.nodes.getDataSet();for(var i in e._data)if(e._data.hasOwnProperty(i)){var o=this.body.nodes[i];e._data[i].x==Math.round(o.x)&&e._data[i].y==Math.round(o.y)||t.push({id:o.id,x:Math.round(o.x),y:Math.round(o.y)})}e.update(t)}},{key:"getBoundingBox",value:function(t){return void 0!==this.body.nodes[t]?this.body.nodes[t].shape.boundingBox:void 0}},{key:"getConnectedNodes",value:function(t){var e=[];if(void 0!==this.body.nodes[t])for(var i=this.body.nodes[t],o={},n=0;n<i.edges.length;n++){var s=i.edges[n];s.toId==i.id?void 0===o[s.fromId]&&(e.push(s.fromId),o[s.fromId]=!0):s.fromId==i.id&&void 0===o[s.toId]&&(e.push(s.toId),o[s.toId]=!0)}return e}},{key:"getConnectedEdges",value:function(t){var e=[];if(void 0!==this.body.nodes[t])for(var i=this.body.nodes[t],o=0;o<i.edges.length;o++)e.push(i.edges[o].id);else console.log("NodeId provided for getConnectedEdges does not exist. Provided: ",t);return e}},{key:"moveNode",value:function(t,e,i){var o=this;void 0!==this.body.nodes[t]?(this.body.nodes[t].x=Number(e),this.body.nodes[t].y=Number(i),setTimeout(function(){o.body.emitter.emit("startSimulation")},0)):console.log("Node id supplied to moveNode does not exist. Provided: ",t)}}]),t}();e["default"]=p},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<e.length;i++){var o=e[i];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(t,o.key,o)}}return function(e,i,o){return i&&t(e.prototype,i),o&&t(e,o),e}}(),r=i(66),a=o(r),h=i(67),d=o(h),l=i(69),c=o(l),u=i(71),p=o(u),f=i(72),m=o(f),v=i(73),g=o(v),y=i(75),b=o(y),w=i(76),_=o(w),x=i(77),k=o(x),O=i(78),M=o(O),D=i(79),S=o(D),C=i(80),T=o(C),E=i(81),P=o(E),I=i(82),N=o(I),R=i(83),z=o(R),L=i(29),A=(o(L),i(1)),B=function(){function t(e,i,o,s,r){n(this,t),this.options=A.bridgeObject(r),this.globalOptions=r,this.body=i,this.edges=[],this.id=void 0,this.imagelist=o,this.grouplist=s,this.x=void 0,this.y=void 0,this.baseSize=this.options.size,this.baseFontSize=this.options.font.size,this.predefinedPosition=!1,this.selected=!1,this.hover=!1,this.labelModule=new a["default"](this.body,this.options,!1),this.setOptions(e)}return s(t,[{key:"attachEdge",value:function(t){-1===this.edges.indexOf(t)&&this.edges.push(t)}},{key:"detachEdge",value:function(t){var e=this.edges.indexOf(t);-1!=e&&this.edges.splice(e,1)}},{key:"setOptions",value:function(e){var i=this.options.shape;if(e){if(void 0!==e.id&&(this.id=e.id),void 0===this.id)throw"Node must have an id";if(void 0!==e.x&&(null===e.x?(this.x=void 0,this.predefinedPosition=!1):(this.x=parseInt(e.x),this.predefinedPosition=!0)),void 0!==e.y&&(null===e.y?(this.y=void 0,this.predefinedPosition=!1):(this.y=parseInt(e.y),this.predefinedPosition=!0)),void 0!==e.size&&(this.baseSize=e.size),void 0!==e.value&&(e.value=parseFloat(e.value)),"number"==typeof e.group||"string"==typeof e.group&&""!=e.group){var o=this.grouplist.get(e.group);A.deepExtend(this.options,o),this.options.color=A.parseColor(this.options.color)}if(t.parseOptions(this.options,e,!0,this.globalOptions),void 0!==this.options.image){if(!this.imagelist)throw"No imagelist provided";this.imageObj=this.imagelist.load(this.options.image,this.options.brokenImage,this.id)}return this.updateLabelModule(),this.updateShape(i),void 0!==e.hidden||void 0!==e.physics}}},{key:"updateLabelModule",value:function(){void 0!==this.options.label&&null!==this.options.label||(this.options.label=""),this.labelModule.setOptions(this.options,!0),void 0!==this.labelModule.baseSize&&(this.baseFontSize=this.labelModule.baseSize)}},{key:"updateShape",value:function(t){if(t===this.options.shape&&this.shape)this.shape.setOptions(this.options,this.imageObj);else switch(this.options.shape){case"box":this.shape=new d["default"](this.options,this.body,this.labelModule);break;case"circle":this.shape=new c["default"](this.options,this.body,this.labelModule);break;case"circularImage":this.shape=new p["default"](this.options,this.body,this.labelModule,this.imageObj);break;case"database":this.shape=new m["default"](this.options,this.body,this.labelModule);break;case"diamond":this.shape=new g["default"](this.options,this.body,this.labelModule);break;case"dot":this.shape=new b["default"](this.options,this.body,this.labelModule);break;case"ellipse":this.shape=new _["default"](this.options,this.body,this.labelModule);break;case"icon":this.shape=new k["default"](this.options,this.body,this.labelModule);break;case"image":this.shape=new M["default"](this.options,this.body,this.labelModule,this.imageObj);break;case"square":this.shape=new S["default"](this.options,this.body,this.labelModule);break;case"star":this.shape=new T["default"](this.options,this.body,this.labelModule);break;case"text":this.shape=new P["default"](this.options,this.body,this.labelModule);break;case"triangle":this.shape=new N["default"](this.options,this.body,this.labelModule);break;case"triangleDown":this.shape=new z["default"](this.options,this.body,this.labelModule);break;default:this.shape=new _["default"](this.options,this.body,this.labelModule)}this._reset()}},{key:"select",value:function(){this.selected=!0,this._reset()}},{key:"unselect",value:function(){this.selected=!1,this._reset()}},{key:"_reset",value:function(){this.shape.width=void 0,this.shape.height=void 0}},{key:"getTitle",value:function(){return this.options.title}},{key:"distanceToBorder",value:function(t,e){return this.shape.distanceToBorder(t,e)}},{key:"isFixed",value:function(){return this.options.fixed.x&&this.options.fixed.y}},{key:"isSelected",value:function(){return this.selected}},{key:"getValue",value:function(){return this.options.value}},{key:"setValueRange",value:function(t,e,i){if(void 0!==this.options.value){var o=this.options.scaling.customScalingFunction(t,e,i,this.options.value),n=this.options.scaling.max-this.options.scaling.min;if(this.options.scaling.label.enabled===!0){var s=this.options.scaling.label.max-this.options.scaling.label.min;this.options.font.size=this.options.scaling.label.min+o*s}this.options.size=this.options.scaling.min+o*n}else this.options.size=this.baseSize,this.options.font.size=this.baseFontSize;this.updateLabelModule()}},{key:"draw",value:function(t){this.shape.draw(t,this.x,this.y,this.selected,this.hover)}},{key:"updateBoundingBox",value:function(t){this.shape.updateBoundingBox(this.x,this.y,t)}},{key:"resize",value:function(t){this.shape.resize(t,this.selected)}},{key:"isOverlappingWith",value:function(t){return this.shape.left<t.right&&this.shape.left+this.shape.width>t.left&&this.shape.top<t.bottom&&this.shape.top+this.shape.height>t.top}},{key:"isBoundingBoxOverlappingWith",value:function(t){return this.shape.boundingBox.left<t.right&&this.shape.boundingBox.right>t.left&&this.shape.boundingBox.top<t.bottom&&this.shape.boundingBox.bottom>t.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<e.length;i++){var o=e[i];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(t,o.key,o)}}return function(e,i,o){return i&&t(e.prototype,i),o&&t(e,o),e}}(),a=i(1),h=function(){function t(e,i){var n=arguments.length<=2||void 0===arguments[2]?!1: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]?!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]?"middle":arguments[4];if(void 0!==this.nodeOptions.label){var s=this.fontOptions.size*this.body.view.scale;this.nodeOptions.label&&s<this.nodeOptions.scaling.label.drawThreshold-1||(this.calculateLabelSize(t,o,e,i,n),
+this._drawBackground(t),this._drawText(t,o,e,i,n))}}},{key:"_drawBackground",value:function(t){if(void 0!==this.fontOptions.background&&"none"!==this.fontOptions.background){t.fillStyle=this.fontOptions.background;var e=2;if(this.isEdgeLabel)switch(this.fontOptions.align){case"middle":t.fillRect(.5*-this.size.width,.5*-this.size.height,this.size.width,this.size.height);break;case"top":t.fillRect(.5*-this.size.width,-(this.size.height+e),this.size.width,this.size.height);break;case"bottom":t.fillRect(.5*-this.size.width,e,this.size.width,this.size.height);break;default:t.fillRect(this.size.left,this.size.top-.5*e,this.size.width,this.size.height)}else t.fillRect(this.size.left,this.size.top-.5*e,this.size.width,this.size.height)}}},{key:"_drawText",value:function(t,e,i,o){var s=arguments.length<=4||void 0===arguments[4]?"middle":arguments[4],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;m<this.lineCount;m++)this.fontOptions.strokeWidth>0&&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;i<e.length;i++){var o=e[i];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(t,o.key,o)}}return function(e,i,o){return i&&t(e.prototype,i),o&&t(e,o),e}}(),h=i(68),d=o(h),l=function(t){function e(t,i,o){return n(this,e),s(this,Object.getPrototypeOf(e).call(this,t,i,o))}return r(e,t),a(e,[{key:"resize",value:function(t,e){if(void 0===this.width){var i=5,o=this.labelModule.getTextSize(t,e);this.width=o.width+2*i,this.height=o.height+2*i,this.radius=.5*this.width}}},{key:"draw",value:function(t,e,i,o,n){this.resize(t,o),this.left=e-this.width/2,this.top=i-this.height/2;var s=this.options.borderWidth,r=this.options.borderWidthSelected||2*this.options.borderWidth;t.strokeStyle=o?this.options.color.highlight.border:n?this.options.color.hover.border:this.options.color.border,t.lineWidth=o?r:s,t.lineWidth/=this.body.view.scale,t.lineWidth=Math.min(this.width,t.lineWidth),t.fillStyle=o?this.options.color.highlight.background:n?this.options.color.hover.background:this.options.color.background;var a=this.options.shapeProperties.borderRadius;t.roundRect(this.left,this.top,this.width,this.height,a),this.enableShadow(t),t.fill(),this.disableShadow(t),t.save(),s>0&&(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;i<e.length;i++){var o=e[i];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(t,o.key,o)}}return function(e,i,o){return i&&t(e.prototype,i),o&&t(e,o),e}}(),n=function(){function t(e,o,n){i(this,t),this.body=o,this.labelModule=n,this.setOptions(e),this.top=void 0,this.left=void 0,this.height=void 0,this.width=void 0,this.radius=void 0,this.boundingBox={top:0,left:0,right:0,bottom:0}}return o(t,[{key:"setOptions",value:function(t){this.options=t}},{key:"_distanceToBorder",value:function(t,e){var i=this.options.borderWidth;return this.resize(t),Math.min(Math.abs(this.width/2/Math.cos(e)),Math.abs(this.height/2/Math.sin(e)))+i}},{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)}},{key:"enableBorderDashes",value:function(t){if(this.options.shapeProperties.borderDashes!==!1)if(void 0!==t.setLineDash){var e=this.options.shapeProperties.borderDashes;e===!0&&(e=[5,15]),t.setLineDash(e)}else console.warn("setLineDash is not supported in this browser. The dashed borders cannot be used."),this.options.shapeProperties.borderDashes=!1}},{key:"disableBorderDashes",value:function(t){this.options.shapeProperties.borderDashes!==!1&&(void 0!==t.setLineDash?t.setLineDash([0]):(console.warn("setLineDash is not supported in this browser. The dashed borders cannot be used."),this.options.shapeProperties.borderDashes=!1))}}]),t}();e["default"]=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")}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<e.length;i++){var o=e[i];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(t,o.key,o)}}return function(e,i,o){return i&&t(e.prototype,i),o&&t(e,o),e}}(),h=i(70),d=o(h),l=function(t){function e(t,i,o){return n(this,e),s(this,Object.getPrototypeOf(e).call(this,t,i,o))}return r(e,t),a(e,[{key:"resize",value:function(t,e){if(void 0===this.width){var i=5,o=this.labelModule.getTextSize(t,e),n=Math.max(o.width,o.height)+2*i;this.options.size=n/2,this.width=n,this.height=n,this.radius=.5*this.width}}},{key:"draw",value:function(t,e,i,o,n){this.resize(t,o),this.left=e-this.width/2,this.top=i-this.height/2,this._drawRawCircle(t,e,i,o,n,this.options.size),this.boundingBox.top=i-this.options.size,this.boundingBox.left=e-this.options.size,this.boundingBox.right=e+this.options.size,this.boundingBox.bottom=i+this.options.size,this.updateBoundingBox(e,i),this.labelModule.draw(t,e,i,o)}},{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}},{key:"distanceToBorder",value:function(t,e){return this.resize(t),.5*this.width}}]),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<e.length;i++){var o=e[i];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(t,o.key,o)}}return function(e,i,o){return i&&t(e.prototype,i),o&&t(e,o),e}}(),h=i(68),d=o(h),l=function(t){function e(t,i,o){n(this,e);var r=s(this,Object.getPrototypeOf(e).call(this,t,i,o));return r.labelOffset=0,r.imageLoaded=!1,r}return r(e,t),a(e,[{key:"setOptions",value:function(t,e){this.options=t,e&&(this.imageObj=e)}},{key:"_resizeImage",value:function(){var t=!1;if(this.imageObj.width&&this.imageObj.height?this.imageLoaded===!1&&(this.imageLoaded=!0,t=!0):this.imageLoaded=!1,!this.width||!this.height||t===!0){var e,i,o;this.imageObj.width&&this.imageObj.height&&(e=0,i=0),this.options.shapeProperties.useImageSize===!1?this.imageObj.width>this.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;i<e.length;i++){var o=e[i];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(t,o.key,o)}}return function(e,i,o){return i&&t(e.prototype,i),o&&t(e,o),e}}(),h=i(70),d=o(h),l=function(t){function e(t,i,o,r){n(this,e);var a=s(this,Object.getPrototypeOf(e).call(this,t,i,o));return a.imageObj=r,a._swapToImageResizeWhenImageLoaded=!0,a}return r(e,t),a(e,[{key:"resize",value:function(){if(void 0===this.imageObj.src||void 0===this.imageObj.width||void 0===this.imageObj.height){if(!this.width){var t=2*this.options.size;this.width=t,this.height=t,this._swapToImageResizeWhenImageLoaded=!0,this.radius=.5*this.width}}else this._swapToImageResizeWhenImageLoaded&&(this.width=void 0,this.height=void 0,this._swapToImageResizeWhenImageLoaded=!1),this._resizeImage()}},{key:"draw",value:function(t,e,i,o,n){this.resize(),this.left=e-this.width/2,this.top=i-this.height/2;var s=Math.min(.5*this.height,.5*this.width);this._drawRawCircle(t,e,i,o,n,s),t.save(),t.clip(),this._drawImageAtPosition(t),t.restore(),this._drawImageLabel(t,e,i,o),this.updateBoundingBox(e,i)}},{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,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.resize(t),.5*this.width}}]),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<e.length;i++){var o=e[i];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(t,o.key,o)}}return function(e,i,o){return i&&t(e.prototype,i),o&&t(e,o),e}}(),h=i(68),d=o(h),l=function(t){function e(t,i,o){return n(this,e),s(this,Object.getPrototypeOf(e).call(this,t,i,o))}return r(e,t),a(e,[{key:"resize",value:function(t,e){if(void 0===this.width){var i=5,o=this.labelModule.getTextSize(t,e),n=o.width+2*i;this.width=n,this.height=n,this.radius=.5*this.width}}},{key:"draw",value:function(t,e,i,o,n){this.resize(t,o),this.left=e-this.width/2,this.top=i-this.height/2;var s=this.options.borderWidth,r=this.options.borderWidthSelected||2*this.options.borderWidth,a=(o?r:s)/this.body.view.scale;t.lineWidth=Math.min(this.width,a),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.database(e-this.width/2,i-.5*this.height,this.width,this.height),this.enableShadow(t),t.fill(),this.disableShadow(t),t.save(),a>0&&(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;i<e.length;i++){var o=e[i];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(t,o.key,o)}}return function(e,i,o){return i&&t(e.prototype,i),o&&t(e,o),e}}(),h=i(74),d=o(h),l=function(t){function e(t,i,o){return n(this,e),s(this,Object.getPrototypeOf(e).call(this,t,i,o))}return r(e,t),a(e,[{key:"resize",value:function(t){this._resizeShape()}},{key:"draw",value:function(t,e,i,o,n){this._drawShape(t,"diamond",4,e,i,o,n)}},{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;i<e.length;i++){var o=e[i];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(t,o.key,o)}}return function(e,i,o){return i&&t(e.prototype,i),o&&t(e,o),e}}(),h=i(68),d=o(h),l=function(t){function e(t,i,o){return n(this,e),s(this,Object.getPrototypeOf(e).call(this,t,i,o))}return r(e,t),a(e,[{key:"_resizeShape",value:function(){if(void 0===this.width){var t=2*this.options.size;this.width=t,this.height=t,this.radius=.5*this.width}}},{key:"_drawShape",value:function(t,e,i,o,n,s,r){this._resizeShape(),this.left=o-this.width/2,this.top=n-this.height/2;var a=this.options.borderWidth,h=this.options.borderWidthSelected||2*this.options.borderWidth,d=(s?h:a)/this.body.view.scale;if(t.lineWidth=Math.min(this.width,d),t.strokeStyle=s?this.options.color.highlight.border:r?this.options.color.hover.border:this.options.color.border,t.fillStyle=s?this.options.color.highlight.background:r?this.options.color.hover.background:this.options.color.background,t[e](o,n,this.options.size),this.enableShadow(t),t.fill(),this.disableShadow(t),t.save(),d>0&&(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;i<e.length;i++){var o=e[i];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(t,o.key,o)}}return function(e,i,o){return i&&t(e.prototype,i),o&&t(e,o),e}}(),h=i(74),d=o(h),l=function(t){function e(t,i,o){return n(this,e),s(this,Object.getPrototypeOf(e).call(this,t,i,o))}return r(e,t),a(e,[{key:"resize",value:function(t){this._resizeShape()}},{key:"draw",value:function(t,e,i,o,n){this._drawShape(t,"circle",2,e,i,o,n)}},{key:"distanceToBorder",value:function(t,e){return this.resize(t),this.options.size}}]),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<e.length;i++){var o=e[i];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(t,o.key,o)}}return function(e,i,o){return i&&t(e.prototype,i),o&&t(e,o),e}}(),h=i(68),d=o(h),l=function(t){function e(t,i,o){return n(this,e),s(this,Object.getPrototypeOf(e).call(this,t,i,o))}return r(e,t),a(e,[{key:"resize",value:function(t,e){if(void 0===this.width){var i=this.labelModule.getTextSize(t,e);this.width=1.5*i.width,this.height=2*i.height,this.width<this.height&&(this.width=this.height),this.radius=.5*this.width}}},{key:"draw",value:function(t,e,i,o,n){this.resize(t,o),this.left=e-.5*this.width,this.top=i-.5*this.height;var s=this.options.borderWidth,r=this.options.borderWidthSelected||2*this.options.borderWidth,a=(o?r:s)/this.body.view.scale;t.lineWidth=Math.min(this.width,a),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.ellipse(this.left,this.top,this.width,this.height),this.enableShadow(t),t.fill(),this.disableShadow(t),t.save(),a>0&&(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;i<e.length;i++){var o=e[i];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(t,o.key,o)}}return function(e,i,o){return i&&t(e.prototype,i),o&&t(e,o),e}}(),h=i(68),d=o(h),l=function(t){function e(t,i,o){return n(this,e),s(this,Object.getPrototypeOf(e).call(this,t,i,o))}return r(e,t),a(e,[{key:"resize",value:function(t){if(void 0===this.width){var e=5,i={width:Number(this.options.icon.size),height:Number(this.options.icon.size)};this.width=i.width+2*e,this.height=i.height+2*e,this.radius=.5*this.width}}},{key:"draw",value:function(t,e,i,o,n){if(this.resize(t),this.options.icon.size=this.options.icon.size||50,this.left=e-.5*this.width,this.top=i-.5*this.height,this._icon(t,e,i,o),void 0!==this.options.label){var s=5;this.labelModule.draw(t,e,i+.5*this.height+s,o)}this.updateBoundingBox(e,i)}},{key:"updateBoundingBox",value:function(t,e){if(this.boundingBox.top=e-.5*this.options.icon.size,this.boundingBox.left=t-.5*this.options.icon.size,this.boundingBox.right=t+.5*this.options.icon.size,this.boundingBox.bottom=e+.5*this.options.icon.size,void 0!==this.options.label&&this.labelModule.size.width>0){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;i<e.length;i++){var o=e[i];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(t,o.key,o)}}return function(e,i,o){return i&&t(e.prototype,i),o&&t(e,o),e}}(),h=i(70),d=o(h),l=function(t){function e(t,i,o,r){n(this,e);var a=s(this,Object.getPrototypeOf(e).call(this,t,i,o));return a.imageObj=r,a}return r(e,t),a(e,[{key:"resize",value:function(){this._resizeImage()}},{key:"draw",value:function(t,e,i,o,n){if(this.resize(),this.left=e-this.width/2,this.top=i-this.height/2,this.options.shapeProperties.useBorderWithImage===!0){var s=this.options.borderWidth,r=this.options.borderWidthSelected||2*this.options.borderWidth,a=(o?r:s)/this.body.view.scale;t.lineWidth=Math.min(this.width,a),t.beginPath(),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.rect(this.left-.5*t.lineWidth,this.top-.5*t.lineWidth,this.width+t.lineWidth,this.height+t.lineWidth),t.fill(),t.save(),a>0&&(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;i<e.length;i++){var o=e[i];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(t,o.key,o)}}return function(e,i,o){return i&&t(e.prototype,i),o&&t(e,o),e}}(),h=i(74),d=o(h),l=function(t){function e(t,i,o){return n(this,e),s(this,Object.getPrototypeOf(e).call(this,t,i,o))}return r(e,t),a(e,[{key:"resize",value:function(){this._resizeShape()}},{key:"draw",value:function(t,e,i,o,n){this._drawShape(t,"square",2,e,i,o,n)}},{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;i<e.length;i++){var o=e[i];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(t,o.key,o)}}return function(e,i,o){return i&&t(e.prototype,i),o&&t(e,o),e}}(),h=i(74),d=o(h),l=function(t){function e(t,i,o){return n(this,e),s(this,Object.getPrototypeOf(e).call(this,t,i,o))}return r(e,t),a(e,[{key:"resize",value:function(t){this._resizeShape()}},{key:"draw",value:function(t,e,i,o,n){this._drawShape(t,"star",4,e,i,o,n)}},{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;i<e.length;i++){var o=e[i];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(t,o.key,o)}}return function(e,i,o){return i&&t(e.prototype,i),o&&t(e,o),e}}(),h=i(68),d=o(h),l=function(t){function e(t,i,o){return n(this,e),s(this,Object.getPrototypeOf(e).call(this,t,i,o))}return r(e,t),a(e,[{key:"resize",value:function(t,e){if(void 0===this.width){var i=5,o=this.labelModule.getTextSize(t,e);this.width=o.width+2*i,this.height=o.height+2*i,this.radius=.5*this.width}}},{key:"draw",value:function(t,e,i,o,n){this.resize(t,o||n),this.left=e-this.width/2,this.top=i-this.height/2,this.enableShadow(t),this.labelModule.draw(t,e,i,o||n),this.disableShadow(t),this.updateBoundingBox(e,i,t,o)}},{key:"updateBoundingBox",value:function(t,e,i,o){this.resize(i,o),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}},{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;i<e.length;i++){var o=e[i];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(t,o.key,o)}}return function(e,i,o){return i&&t(e.prototype,i),o&&t(e,o),e}}(),h=i(74),d=o(h),l=function(t){function e(t,i,o){return n(this,e),s(this,Object.getPrototypeOf(e).call(this,t,i,o))}return r(e,t),a(e,[{key:"resize",value:function(t){this._resizeShape()}},{key:"draw",value:function(t,e,i,o,n){this._drawShape(t,"triangle",3,e,i,o,n)}},{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;i<e.length;i++){var o=e[i];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(t,o.key,o)}}return function(e,i,o){return i&&t(e.prototype,i),o&&t(e,o),e}}(),h=i(74),d=o(h),l=function(t){function e(t,i,o){return n(this,e),s(this,Object.getPrototypeOf(e).call(this,t,i,o))}return r(e,t),a(e,[{key:"resize",value:function(t){this._resizeShape()}},{key:"draw",value:function(t,e,i,o,n){this._drawShape(t,"triangleDown",3,e,i,o,n)}},{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")}Object.defineProperty(e,"__esModule",{value:!0});var s=function(){function t(t,e){for(var i=0;i<e.length;i++){var o=e[i];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(t,o.key,o)}}return function(e,i,o){return i&&t(e.prototype,i),o&&t(e,o),e}}(),r=i(85),a=o(r),h=i(66),d=o(h),l=i(1),c=i(9),u=i(11),p=function(){function t(e,i,o){var s=this;n(this,t),this.body=e,this.images=i,this.groups=o,this.body.functions.createEdge=this.create.bind(this),this.edgesListeners={add:function(t,e){s.add(e.items)},update:function(t,e){s.update(e.items)},remove:function(t,e){s.remove(e.items)}},this.options={},this.defaultOptions={arrows:{to:{enabled:!1,scaleFactor:1},middle:{enabled:!1,scaleFactor:1},from:{enabled:!1,scaleFactor:1}},arrowStrikethrough:!0,color:{color:"#848484",highlight:"#848484",hover:"#848484",inherit:"from",opacity:1},dashes:!1,font:{color:"#343434",size:14,face:"arial",background:"none",strokeWidth:2,strokeColor:"#ffffff",align:"horizontal"},hidden:!1,hoverWidth:1.5,label:void 0,labelHighlightBold:!0,length:void 0,physics:!0,scaling:{min:1,max:15,label:{enabled:!0,min:14,max:30,maxVisible:30,drawThreshold:5},customScalingFunction:function(t,e,i,o){if(e===t)return.5;var n=1/(e-t);return Math.max(0,(o-t)*n)}},selectionWidth:1.5,selfReferenceSize:20,shadow:{enabled:!1,color:"rgba(0,0,0,0.5)",size:10,x:5,y:5},smooth:{enabled:!0,type:"dynamic",forceDirection:"none",roundness:.5},title:void 0,width:1,value:void 0},l.extend(this.options,this.defaultOptions),this.bindEventListeners()}return s(t,[{key:"bindEventListeners",value:function(){var t=this;this.body.emitter.on("_forceDisableDynamicCurves",function(e){"dynamic"===e&&(e="continuous");var i=!1;for(var o in t.body.edges)if(t.body.edges.hasOwnProperty(o)){var n=t.body.edges[o],s=t.body.data.edges._data[o];if(void 0!==s){var r=s.smooth;void 0!==r&&r.enabled===!0&&"dynamic"===r.type&&(void 0===e?n.setOptions({smooth:!1}):n.setOptions({smooth:{type:e}}),i=!0)}}i===!0&&t.body.emitter.emit("_dataChanged")}),this.body.emitter.on("_dataUpdated",function(){t.reconnectEdges(),t.markAllEdgesAsDirty()}),this.body.emitter.on("refreshEdges",this.refresh.bind(this)),this.body.emitter.on("refresh",this.refresh.bind(this)),this.body.emitter.on("destroy",function(){l.forEach(t.edgesListeners,function(e,i){t.body.data.edges&&t.body.data.edges.off(i,e)}),delete t.body.functions.createEdge,delete t.edgesListeners.add,delete t.edgesListeners.update,delete t.edgesListeners.remove,delete t.edgesListeners})}},{key:"setOptions",value:function(t){if(void 0!==t){a["default"].parseOptions(this.options,t),void 0!==t.color&&this.markAllEdgesAsDirty();var e=!1;if(void 0!==t.smooth)for(var i in this.body.edges)this.body.edges.hasOwnProperty(i)&&(e=this.body.edges[i].updateEdgeType()||e);if(void 0!==t.font){d["default"].parseOptions(this.options.font,t);for(var o in this.body.edges)this.body.edges.hasOwnProperty(o)&&this.body.edges[o].updateLabelModule()}void 0===t.hidden&&void 0===t.physics&&e!==!0||this.body.emitter.emit("_dataChanged")}}},{key:"setData",value:function(t){var e=this,i=arguments.length<=1||void 0===arguments[1]?!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]?!1:arguments[1],i=this.body.edges,o=this.body.data.edges,n=0;n<t.length;n++){var s=t[n],r=i[s];r&&r.disconnect();var a=o.get(s,{showInternalIds:!0});i[s]=this.create(a)}e===!1&&this.body.emitter.emit("_dataChanged")}},{key:"update",value:function(t){for(var e=this.body.edges,i=this.body.data.edges,o=!1,n=0;n<t.length;n++){var s=t[n],r=i.get(s),a=e[s];void 0!==a?(a.disconnect(),o=a.setOptions(r)||o,a.connect()):(this.body.edges[s]=this.create(r),o=!0)}o===!0?this.body.emitter.emit("_dataChanged"):this.body.emitter.emit("_dataUpdated")}},{key:"remove",value:function(t){for(var e=this.body.edges,i=0;i<t.length;i++){var o=t[i],n=e[o];void 0!==n&&(n.cleanup(),n.disconnect(),delete e[o])}this.body.emitter.emit("_dataChanged")}},{key:"refresh",value:function(){var t=this.body.edges;for(var e in t){var i=void 0;t.hasOwnProperty(e)&&(i=t[e]);var o=this.body.data.edges._data[e];void 0!==i&&void 0!==o&&i.setOptions(o)}}},{key:"create",value:function(t){return new a["default"](t,this.body,this.options)}},{key:"markAllEdgesAsDirty",value:function(){for(var t in this.body.edges)this.body.edges[t].edgeType.colorDirty=!0}},{key:"reconnectEdges",value:function(){var t,e=this.body.nodes,i=this.body.edges;for(t in e)e.hasOwnProperty(t)&&(e[t].edges=[]);for(t in i)if(i.hasOwnProperty(t)){var o=i[t];o.from=null,o.to=null,o.connect()}}},{key:"getConnectedNodes",value:function(t){var e=[];if(void 0!==this.body.edges[t]){var i=this.body.edges[t];i.fromId&&e.push(i.fromId),i.toId&&e.push(i.toId)}return e}}]),t}();e["default"]=p},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<e.length;i++){var o=e[i];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(t,o.key,o)}}return function(e,i,o){return i&&t(e.prototype,i),o&&t(e,o),e}}(),a=i(66),h=o(a),d=i(86),l=o(d),c=i(90),u=o(c),p=i(91),f=o(p),m=i(92),v=o(m),g=i(1),y=function(){function t(e,i,o){if(n(this,t),void 0===i)throw"No body provided";this.options=g.bridgeObject(o),this.globalOptions=o,this.body=i,this.id=void 0,this.fromId=void 0,this.toId=void 0,this.selected=!1,this.hover=!1,this.labelDirty=!0,this.colorDirty=!0,this.baseWidth=this.options.width,this.baseFontSize=this.options.font.size,this.from=void 0,this.to=void 0,this.edgeType=void 0,this.connected=!1,this.labelModule=new h["default"](this.body,this.options,!0),this.setOptions(e)}return r(t,[{key:"setOptions",value:function(e){if(e){this.colorDirty=!0,t.parseOptions(this.options,e,!0,this.globalOptions),void 0!==e.id&&(this.id=e.id),void 0!==e.from&&(this.fromId=e.from),void 0!==e.to&&(this.toId=e.to),void 0!==e.title&&(this.title=e.title),void 0!==e.value&&(e.value=parseFloat(e.value)),this.updateLabelModule();var i=this.updateEdgeType();return this._setInteractionWidths(),this.connect(),void 0===e.hidden&&void 0===e.physics||(i=!0),i}}},{key:"updateLabelModule",value:function(){this.labelModule.setOptions(this.options,!0),void 0!==this.labelModule.baseSize&&(this.baseFontSize=this.labelModule.baseSize)}},{key:"updateEdgeType",value:function(){var t=!1,e=!0,i=this.options.smooth;return void 0!==this.edgeType&&(this.edgeType instanceof u["default"]&&i.enabled===!0&&"dynamic"===i.type&&(e=!1),this.edgeType instanceof l["default"]&&i.enabled===!0&&"cubicBezier"===i.type&&(e=!1),this.edgeType instanceof f["default"]&&i.enabled===!0&&"dynamic"!==i.type&&"cubicBezier"!==i.type&&(e=!1),this.edgeType instanceof v["default"]&&i.enabled===!1&&(e=!1),e===!0&&(t=this.cleanup())),e===!0?this.options.smooth.enabled===!0?"dynamic"===this.options.smooth.type?(t=!0,this.edgeType=new u["default"](this.options,this.body,this.labelModule)):"cubicBezier"===this.options.smooth.type?this.edgeType=new l["default"](this.options,this.body,this.labelModule):this.edgeType=new f["default"](this.options,this.body,this.labelModule):this.edgeType=new v["default"](this.options,this.body,this.labelModule):this.edgeType.setOptions(this.options),t}},{key:"connect",value:function(){this.disconnect(),this.from=this.body.nodes[this.fromId]||void 0,this.to=this.body.nodes[this.toId]||void 0,this.connected=void 0!==this.from&&void 0!==this.to,this.connected===!0?(this.from.attachEdge(this),this.to.attachEdge(this)):(this.from&&this.from.detachEdge(this),this.to&&this.to.detachEdge(this)),this.edgeType.connect()}},{key:"disconnect",value:function(){this.from&&(this.from.detachEdge(this),this.from=void 0),this.to&&(this.to.detachEdge(this),this.to=void 0),this.connected=!1}},{key:"getTitle",value:function(){return this.title}},{key:"isSelected",value:function(){return this.selected}},{key:"getValue",value:function(){return this.options.value}},{key:"setValueRange",value:function(t,e,i){if(void 0!==this.options.value){var o=this.options.scaling.customScalingFunction(t,e,i,this.options.value),n=this.options.scaling.max-this.options.scaling.min;if(this.options.scaling.label.enabled===!0){var s=this.options.scaling.label.max-this.options.scaling.label.min;this.options.font.size=this.options.scaling.label.min+o*s}this.options.width=this.options.scaling.min+o*n}else this.options.width=this.baseWidth,this.options.font.size=this.baseFontSize;this._setInteractionWidths(),this.updateLabelModule()}},{key:"_setInteractionWidths",value:function(){"function"==typeof this.options.hoverWidth?this.edgeType.hoverWidth=this.options.hoverWidth(this.options.width):this.edgeType.hoverWidth=this.options.hoverWidth+this.options.width,"function"==typeof this.options.selectionWidth?this.edgeType.selectionWidth=this.options.selectionWidth(this.options.width):this.edgeType.selectionWidth=this.options.selectionWidth+this.options.width}},{key:"draw",value:function(t){var e=this.edgeType.getViaNode(),i={};this.edgeType.fromPoint=this.edgeType.from,this.edgeType.toPoint=this.edgeType.to,this.options.arrows.from.enabled===!0&&(i.from=this.edgeType.getArrowData(t,"from",e,this.selected,this.hover),this.options.arrowStrikethrough===!1&&(this.edgeType.fromPoint=i.from.core)),this.options.arrows.to.enabled===!0&&(i.to=this.edgeType.getArrowData(t,"to",e,this.selected,this.hover),this.options.arrowStrikethrough===!1&&(this.edgeType.toPoint=i.to.core)),this.options.arrows.middle.enabled===!0&&(i.middle=this.edgeType.getArrowData(t,"middle",e,this.selected,this.hover)),this.edgeType.drawLine(t,this.selected,this.hover,e),this.drawArrows(t,i),this.drawLabel(t,e)}},{key:"drawArrows",value:function(t,e){this.options.arrows.from.enabled===!0&&this.edgeType.drawArrowHead(t,this.selected,this.hover,e.from),this.options.arrows.middle.enabled===!0&&this.edgeType.drawArrowHead(t,this.selected,this.hover,e.middle),this.options.arrows.to.enabled===!0&&this.edgeType.drawArrowHead(t,this.selected,this.hover,e.to)}},{key:"drawLabel",value:function(t,e){if(void 0!==this.options.label){var i=this.from,o=this.to,n=this.from.selected||this.to.selected||this.selected;if(i.id!=o.id){this.labelModule.pointToSelf=!1;var s=this.edgeType.getPoint(.5,e);t.save(),"horizontal"!==this.options.font.align&&(this.labelModule.calculateLabelSize(t,n,s.x,s.y),t.translate(s.x,this.labelModule.size.yLine),this._rotateForLabelAlignment(t)),this.labelModule.draw(t,s.x,s.y,n),t.restore()}else{this.labelModule.pointToSelf=!0;var r,a,h=this.options.selfReferenceSize;i.shape.width>i.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;i<e.length;i++){var o=e[i];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(t,o.key,o)}}return function(e,i,o){return i&&t(e.prototype,i),o&&t(e,o),e}}(),d=i(87),l=o(d),c=function(t){function e(t,i,o){return n(this,e),s(this,Object.getPrototypeOf(e).call(this,t,i,o))}return r(e,t),h(e,[{key:"_line",value:function(t,e){var i=e[0],o=e[1];t.beginPath(),t.moveTo(this.fromPoint.x,this.fromPoint.y),void 0===e||void 0===i.x?t.lineTo(this.toPoint.x,this.toPoint.y):t.bezierCurveTo(i.x,i.y,o.x,o.y,this.toPoint.x,this.toPoint.y),this.enableShadow(t),t.stroke(),this.disableShadow(t)}},{key:"_getViaCoordinates",value:function(){var t=this.from.x-this.to.x,e=this.from.y-this.to.y,i=void 0,o=void 0,n=void 0,s=void 0,r=this.options.smooth.roundness;return(Math.abs(t)>Math.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;i<e.length;i++){var o=e[i];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(t,o.key,o)}}return function(e,i,o){return i&&t(e.prototype,i),o&&t(e,o),e}}(),h=i(88),d=o(h),l=function(t){function e(t,i,o){return n(this,e),s(this,Object.getPrototypeOf(e).call(this,t,i,o))}return r(e,t),a(e,[{key:"_getDistanceToBezierEdge",value:function(t,e,i,o,n,s,r,a){var h=1e9,d=void 0,l=void 0,c=void 0,u=void 0,p=void 0,f=t,m=e,v=[0,0,0,0];for(l=1;10>l;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<e.length;i++){var o=e[i];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(t,o.key,o)}}return function(e,i,o){return i&&t(e.prototype,i),o&&t(e,o),e}}(),h=i(89),d=o(h),l=function(t){function e(t,i,o){return n(this,e),s(this,Object.getPrototypeOf(e).call(this,t,i,o))}return r(e,t),a(e,[{key:"_findBorderPositionBezier",value:function(t,e){var i,o,n,s,r,a=arguments.length<=2||void 0===arguments[2]?this._getViaCoordinates():arguments[2],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);c>=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)<u)break;0>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;i<e.length;i++){var o=e[i];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(t,o.key,o)}}return function(e,i,o){return i&&t(e.prototype,i),o&&t(e,o),e}}(),r=i(1),a=function(){function t(e,i,n){o(this,t),this.body=i,this.labelModule=n,this.options={},this.setOptions(e),this.colorDirty=!0,this.color={},this.selectionWidth=2,this.hoverWidth=1.5,this.fromPoint=this.from,this.toPoint=this.to}return s(t,[{key:"connect",value:function(){this.from=this.body.nodes[this.options.from],this.to=this.body.nodes[this.options.to]}},{key:"cleanup",value:function(){return!1}},{key:"setOptions",value:function(t){this.options=t,this.from=this.body.nodes[this.options.from],this.to=this.body.nodes[this.options.to],this.id=this.options.id}},{key:"drawLine",value:function(t,e,i,o){t.strokeStyle=this.getColor(t,e,i),t.lineWidth=this.getLineWidth(e,i),this.options.dashes!==!1?this._drawDashedLine(t,o):this._drawLine(t,o)}},{key:"_drawLine",value:function(t,e,i,o){if(this.from!=this.to)this._line(t,e,i,o);else{var s=this._getCircleData(t),r=n(s,3),a=r[0],h=r[1],d=r[2];this._circle(t,a,h,d)}}},{key:"_drawDashedLine",value:function(t,e,i,o){t.lineCap="round";var s=[5,5];if(Array.isArray(this.options.dashes)===!0&&(s=this.options.dashes),void 0!==t.setLineDash){if(t.save(),t.setLineDash(s),t.lineDashOffset=0,this.from!=this.to)this._line(t,e);else{var r=this._getCircleData(t),a=n(r,3),h=a[0],d=a[1],l=a[2];this._circle(t,h,d,l)}t.setLineDash([0]),t.lineDashOffset=0,t.restore()}else{if(this.from!=this.to)t.dashedLine(this.from.x,this.from.y,this.to.x,this.to.y,s);else{var c=this._getCircleData(t),u=n(c,3),p=u[0],f=u[1],m=u[2];this._circle(t,p,f,m)}this.enableShadow(t),t.stroke(),this.disableShadow(t)}}},{key:"findBorderPosition",value:function(t,e,i){return this.from!=this.to?this._findBorderPosition(t,e,i):this._findBorderPositionCircle(t,e,i)}},{key:"findBorderPositions",value:function(t){var e={},i={};if(this.from!=this.to)e=this._findBorderPosition(this.from,t),i=this._findBorderPosition(this.to,t);else{var o=this._getCircleData(t),s=n(o,3),r=s[0],a=s[1];s[2];e=this._findBorderPositionCircle(this.from,t,{x:r,y:a,low:.25,high:.6,direction:-1}),i=this._findBorderPositionCircle(this.from,t,{x:r,y:a,low:.6,high:.8,direction:1})}return{from:e,to:i}}},{key:"_getCircleData",value:function(t){var e=void 0,i=void 0,o=this.from,n=this.options.selfReferenceSize;return void 0!==t&&void 0===o.shape.width&&o.shape.resize(t),o.shape.width>o.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)<v));)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.left<s&&this.labelModule.size.left+this.labelModule.size.width>s&&this.labelModule.size.top<r&&this.labelModule.size.top+this.labelModule.size.height>r?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<e.length;i++){var o=e[i];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(t,o.key,o)}}return function(e,i,o){return i&&t(e.prototype,i),o&&t(e,o),e}}(),h=i(88),d=o(h),l=function(t){function e(t,i,o){n(this,e);var r=s(this,Object.getPrototypeOf(e).call(this,t,i,o));return r._boundFunction=function(){r.positionBezierNode()},r.body.emitter.on("_repositionBezierNodes",r._boundFunction),r}return r(e,t),a(e,[{key:"setOptions",value:function(t){var e=!1;this.options.physics!==t.physics&&(e=!0),this.options=t,this.id=this.options.id,this.from=this.body.nodes[this.options.from],this.to=this.body.nodes[this.options.to],this.setupSupportNode(),this.connect(),e===!0&&(this.via.setOptions({physics:this.options.physics}),this.positionBezierNode())}},{key:"connect",value:function(){this.from=this.body.nodes[this.options.from],this.to=this.body.nodes[this.options.to],void 0===this.from||void 0===this.to||this.options.physics===!1?this.via.setOptions({physics:!1}):this.from.id===this.to.id?this.via.setOptions({physics:!1}):this.via.setOptions({physics:!0})}},{key:"cleanup",value:function(){return this.body.emitter.off("_repositionBezierNodes",this._boundFunction),void 0!==this.via?(delete this.body.nodes[this.via.id],this.via=void 0,!0):!1}},{key:"setupSupportNode",value:function(){if(void 0===this.via){var t="edgeId:"+this.id,e=this.body.functions.createNode({id:t,shape:"circle",physics:!0,hidden:!0});this.body.nodes[t]=e,this.via=e,this.via.parentEdgeId=this.id,this.positionBezierNode()}}},{key:"positionBezierNode",value:function(){void 0!==this.via&&void 0!==this.from&&void 0!==this.to?(this.via.x=.5*(this.from.x+this.to.x),this.via.y=.5*(this.from.y+this.to.y)):void 0!==this.via&&(this.via.x=0,this.via.y=0)}},{key:"_line",value:function(t,e){t.beginPath(),t.moveTo(this.fromPoint.x,this.fromPoint.y),void 0===e.x?t.lineTo(this.toPoint.x,this.toPoint.y):t.quadraticCurveTo(e.x,e.y,this.toPoint.x,this.toPoint.y),this.enableShadow(t),t.stroke(),this.disableShadow(t)}},{key:"getViaNode",value:function(){return this.via}},{key:"getPoint",value:function(t){var e=arguments.length<=1||void 0===arguments[1]?this.via:arguments[1],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}}},{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}(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<e.length;i++){var o=e[i];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(t,o.key,o)}}return function(e,i,o){return i&&t(e.prototype,i),o&&t(e,o),e}}(),h=i(88),d=o(h),l=function(t){function e(t,i,o){return n(this,e),s(this,Object.getPrototypeOf(e).call(this,t,i,o))}return r(e,t),a(e,[{key:"_line",value:function(t,e){t.beginPath(),t.moveTo(this.fromPoint.x,this.fromPoint.y),void 0===e.x?t.lineTo(this.toPoint.x,this.toPoint.y):t.quadraticCurveTo(e.x,e.y,this.toPoint.x,this.toPoint.y),this.enableShadow(t),t.stroke(),this.disableShadow(t)}},{key:"getViaNode",value:function(){return this._getViaCoordinates()}},{key:"_getViaCoordinates",value:function(){var t=void 0,e=void 0,i=this.options.smooth.roundness,o=this.options.smooth.type,n=Math.abs(this.from.x-this.to.x),s=Math.abs(this.from.y-this.to.y);if("discrete"===o||"diagonalCross"===o)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*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.y<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)),"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.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)),"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.y<this.to.y?this.to.y-(1-i)*s:this.to.y+(1-i)*s):Math.abs(this.from.x-this.to.x)>Math.abs(this.from.y-this.to.y)&&(t=this.from.x<this.to.x?this.to.x-(1-i)*n:this.to.x+(1-i)*n,e=this.from.y);else if("horizontal"===o)t=this.from.x<this.to.x?this.to.x-(1-i)*n:this.to.x+(1-i)*n,e=this.from.y;else if("vertical"===o)t=this.from.x,e=this.from.y<this.to.y?this.to.y-(1-i)*s:this.to.y+(1-i)*s;else if("curvedCW"===o){n=this.to.x-this.from.x,s=this.from.y-this.to.y;var r=Math.sqrt(n*n+s*s),a=Math.PI,h=Math.atan2(s,n),d=(h+(.5*i+.5)*a)%(2*a);t=this.from.x+(.5*i+.5)*r*Math.sin(d),e=this.from.y+(.5*i+.5)*r*Math.cos(d)}else if("curvedCCW"===o){n=this.to.x-this.from.x,s=this.from.y-this.to.y;var l=Math.sqrt(n*n+s*s),c=Math.PI,u=Math.atan2(s,n),p=(u+(.5*-i+.5)*c)%(2*c);t=this.from.x+(.5*i+.5)*l*Math.sin(p),e=this.from.y+(.5*i+.5)*l*Math.cos(p)}else 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*s,e=this.from.y-i*s,t=this.to.x<t?this.to.x:t):this.from.x>this.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.y<this.to.y&&(this.from.x<=this.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.x>this.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.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)));return{x:t,y:e}}},{key:"_findBorderPosition",value:function(t,e){var i=arguments.length<=2||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]?this._getViaCoordinates():arguments[6];return this._getDistanceToBezierEdge(t,e,i,o,n,s,r)}},{key:"getPoint",value:function(t){var e=arguments.length<=1||void 0===arguments[1]?this._getViaCoordinates():arguments[1],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;i<e.length;i++){var o=e[i];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(t,o.key,o)}}return function(e,i,o){return i&&t(e.prototype,i),o&&t(e,o),e}}(),h=i(89),d=o(h),l=function(t){function e(t,i,o){return n(this,e),s(this,Object.getPrototypeOf(e).call(this,t,i,o))}return r(e,t),a(e,[{key:"_line",value:function(t){t.beginPath(),t.moveTo(this.fromPoint.x,this.fromPoint.y),t.lineTo(this.toPoint.x,this.toPoint.y),this.enableShadow(t),t.stroke(),this.disableShadow(t)}},{key:"getViaNode",value:function(){}},{key:"getPoint",value:function(t){return{x:(1-t)*this.fromPoint.x+t*this.toPoint.x,y:(1-t)*this.fromPoint.y+t*this.toPoint.y}}},{key:"_findBorderPosition",value:function(t,e){var i=this.to,o=this.from;t.id===this.from.id&&(i=this.from,o=this.to);var n=Math.atan2(i.y-o.y,i.x-o.x),s=i.x-o.x,r=i.y-o.y,a=Math.sqrt(s*s+r*r),h=t.distanceToBorder(e,n),d=(a-h)/a,l={};return l.x=(1-d)*o.x+d*i.x,l.y=(1-d)*o.y+d*i.y,l}},{key:"_getDistanceToEdge",value:function(t,e,i,o,n,s){return this._getDistanceToLine(t,e,i,o,n,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")}Object.defineProperty(e,"__esModule",{value:!0});var s=function(){function t(t,e){for(var i=0;i<e.length;i++){var o=e[i];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(t,o.key,o)}}return function(e,i,o){return i&&t(e.prototype,i),o&&t(e,o),e}}(),r=i(94),a=o(r),h=i(95),d=o(h),l=i(96),c=o(l),u=i(97),p=o(u),f=i(98),m=o(f),v=i(99),g=o(v),y=i(100),b=o(y),w=i(101),_=o(w),x=i(1),k=function(){function t(e){n(this,t),this.body=e,this.physicsBody={physicsNodeIndices:[],physicsEdgeIndices:[],forces:{},velocities:{}},this.physicsEnabled=!0,this.simulationInterval=1e3/60,this.requiresTimeout=!0,this.previousStates={},this.referenceState={},this.freezeCache={},this.renderTimer=void 0,this.adaptiveTimestep=!1,this.adaptiveTimestepEnabled=!1,this.adaptiveCounter=0,this.adaptiveInterval=3,this.stabilized=!1,this.startedStabilization=!1,this.stabilizationIterations=0,this.ready=!1,this.options={},this.defaultOptions={enabled:!0,barnesHut:{theta:.5,gravitationalConstant:-2e3,centralGravity:.3,springLength:95,springConstant:.04,damping:.09,avoidOverlap:0},forceAtlas2Based:{theta:.5,gravitationalConstant:-50,centralGravity:.01,springConstant:.08,springLength:100,damping:.4,avoidOverlap:0},repulsion:{centralGravity:.2,springLength:200,springConstant:.05,nodeDistance:100,damping:.09,avoidOverlap:0},hierarchicalRepulsion:{centralGravity:0,springLength:100,springConstant:.01,nodeDistance:120,damping:.09},maxVelocity:50,minVelocity:.75,solver:"barnesHut",stabilization:{enabled:!0,iterations:1e3,updateInterval:50,onlyDynamicEdges:!1,fit:!0},timestep:.5,adaptiveTimestep:!0},x.extend(this.options,this.defaultOptions),this.timestep=.5,this.layoutFailed=!1,this.bindEventListeners()}return s(t,[{key:"bindEventListeners",value:function(){var t=this;this.body.emitter.on("initPhysics",function(){t.initPhysics()}),this.body.emitter.on("_layoutFailed",function(){t.layoutFailed=!0}),this.body.emitter.on("resetPhysics",function(){t.stopSimulation(),t.ready=!1}),this.body.emitter.on("disablePhysics",function(){t.physicsEnabled=!1,t.stopSimulation()}),this.body.emitter.on("restorePhysics",function(){t.setOptions(t.options),t.ready===!0&&t.startSimulation()}),this.body.emitter.on("startSimulation",function(){t.ready===!0&&t.startSimulation()}),this.body.emitter.on("stopSimulation",function(){t.stopSimulation()}),this.body.emitter.on("destroy",function(){t.stopSimulation(!1),t.body.emitter.off()}),this.body.emitter.on("_dataChanged",function(){t.updatePhysicsData()})}},{key:"setOptions",value:function(t){void 0!==t&&(t===!1?(this.options.enabled=!1,this.physicsEnabled=!1,this.stopSimulation()):(this.physicsEnabled=!0,x.selectiveNotDeepExtend(["stabilization"],this.options,t),x.mergeOptions(this.options,t,"stabilization"),void 0===t.enabled&&(this.options.enabled=!0),this.options.enabled===!1&&(this.physicsEnabled=!1,this.stopSimulation()),this.timestep=this.options.timestep)),this.init()}},{key:"init",value:function(){var t;"forceAtlas2Based"===this.options.solver?(t=this.options.forceAtlas2Based,this.nodesSolver=new b["default"](this.body,this.physicsBody,t),this.edgesSolver=new p["default"](this.body,this.physicsBody,t),this.gravitySolver=new _["default"](this.body,this.physicsBody,t)):"repulsion"===this.options.solver?(t=this.options.repulsion,this.nodesSolver=new d["default"](this.body,this.physicsBody,t),this.edgesSolver=new p["default"](this.body,this.physicsBody,t),this.gravitySolver=new g["default"](this.body,this.physicsBody,t)):"hierarchicalRepulsion"===this.options.solver?(t=this.options.hierarchicalRepulsion,this.nodesSolver=new c["default"](this.body,this.physicsBody,t),this.edgesSolver=new m["default"](this.body,this.physicsBody,t),this.gravitySolver=new g["default"](this.body,this.physicsBody,t)):(t=this.options.barnesHut,this.nodesSolver=new a["default"](this.body,this.physicsBody,t),this.edgesSolver=new p["default"](this.body,this.physicsBody,t),this.gravitySolver=new g["default"](this.body,this.physicsBody,t)),this.modelOptions=t}},{key:"initPhysics",value:function(){this.physicsEnabled===!0&&this.options.enabled===!0?this.options.stabilization.enabled===!0?this.stabilize():(this.stabilized=!1,this.ready=!0,this.body.emitter.emit("fit",{},this.layoutFailed),this.startSimulation()):(this.ready=!0,this.body.emitter.emit("fit"))}},{key:"startSimulation",value:function(){this.physicsEnabled===!0&&this.options.enabled===!0?(this.stabilized=!1,this.adaptiveTimestep=!1,this.body.emitter.emit("_resizeNodes"),void 0===this.viewFunction&&(this.viewFunction=this.simulationStep.bind(this),this.body.emitter.on("initRedraw",this.viewFunction),this.body.emitter.emit("_startRendering"))):this.body.emitter.emit("_redraw")}},{key:"stopSimulation",value:function(){var t=arguments.length<=0||void 0===arguments[0]?!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]?this.stabilizationIterations:arguments[0];(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/t<this.options.timestep?this.timestep=this.options.timestep:(this.adaptiveCounter=-1,this.timestep=Math.max(this.options.timestep,this.timestep/t))):(this.calculateForces(),this.moveNodes()),this.adaptiveCounter+=1}else this.timestep=this.options.timestep,this.calculateForces(),this.moveNodes();this.stabilized===!0&&this.revert(),this.stabilizationIterations++}}},{key:"updatePhysicsData",value:function(){this.physicsBody.forces={},this.physicsBody.physicsNodeIndices=[],this.physicsBody.physicsEdgeIndices=[];var t=this.body.nodes,e=this.body.edges;for(var i in t)t.hasOwnProperty(i)&&t[i].options.physics===!0&&this.physicsBody.physicsNodeIndices.push(t[i].id);for(var o in e)e.hasOwnProperty(o)&&e[o].options.physics===!0&&this.physicsBody.physicsEdgeIndices.push(e[o].id);for(var n=0;n<this.physicsBody.physicsNodeIndices.length;n++){var s=this.physicsBody.physicsNodeIndices[n];this.physicsBody.forces[s]={x:0,y:0},void 0===this.physicsBody.velocities[s]&&(this.physicsBody.velocities[s]={x:0,y:0})}for(var r in this.physicsBody.velocities)void 0===t[r]&&delete this.physicsBody.velocities[r]}},{key:"revert",value:function(){var t=Object.keys(this.previousStates),e=this.body.nodes,i=this.physicsBody.velocities;this.referenceState={};for(var o=0;o<t.length;o++){var n=t[o];void 0!==e[n]?e[n].options.physics===!0&&(this.referenceState[n]={positions:{x:e[n].x,y:e[n].y}},i[n].x=this.previousStates[n].vx,i[n].y=this.previousStates[n].vy,e[n].x=this.previousStates[n].x,e[n].y=this.previousStates[n].y):delete this.previousStates[n]}}},{key:"_evaluateStepQuality",value:function(){var t=void 0,e=void 0,i=void 0,o=this.body.nodes,n=this.referenceState,s=.3;for(var r in this.referenceState)if(this.referenceState.hasOwnProperty(r)&&void 0!==o[r]&&(t=o[r].x-n[r].positions.x,e=o[r].y-n[r].positions.y,i=Math.sqrt(Math.pow(t,2)+Math.pow(e,2)),i>s))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;s<t.length;s++){var r=t[s],a=this._performStep(r,e);i=Math.max(i,a),o+=a}this.adaptiveTimestepEnabled=o/t.length<n,this.stabilized=i<this.options.minVelocity}},{key:"_performStep",value:function(t,e){var i=this.body.nodes[t],o=this.timestep,n=this.physicsBody.forces,s=this.physicsBody.velocities;if(this.previousStates[t]={x:i.x,y:i.y,vx:s[t].x,vy:s[t].y},i.options.fixed.x===!1){var r=this.modelOptions.damping*s[t].x,a=(n[t].x-r)/i.options.mass;s[t].x+=a*o,s[t].x=Math.abs(s[t].x)>e?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&&t<this.options.stabilization.updateInterval&&this.stabilizationIterations<this.targetIterations;)this.physicsTick(),t++;this.stabilized===!1&&this.stabilizationIterations<this.targetIterations?(this.body.emitter.emit("stabilizationProgress",{iterations:this.stabilizationIterations,total:this.targetIterations}),setTimeout(this._stabilizationBatch.bind(this),0)):this._finalizeStabilization()}},{key:"_finalizeStabilization",value:function(){this.body.emitter.emit("_allowRedraw"),this.options.stabilization.fit===!0&&this.body.emitter.emit("fit"),this.options.stabilization.onlyDynamicEdges===!0&&this._restoreFrozenNodes(),this.body.emitter.emit("stabilizationIterationsDone"),this.body.emitter.emit("_requestRedraw"),this.stabilized===!0?this._emitStabilized():this.startSimulation(),this.ready=!0}},{key:"_drawForces",value:function(t){for(var e=0;e<this.physicsBody.physicsNodeIndices.length;e++){var i=this.body.nodes[this.physicsBody.physicsNodeIndices[e]],o=this.physicsBody.forces[this.physicsBody.physicsNodeIndices[e]],n=20,s=.03,r=Math.sqrt(Math.pow(o.x,2)+Math.pow(o.x,2)),a=Math.min(Math.max(5,r),15),h=3*a,d=x.HSVToHex((180-180*Math.min(1,Math.max(0,s*r)))/360,1,1);t.lineWidth=a,t.strokeStyle=d,t.beginPath(),t.moveTo(i.x,i.y),t.lineTo(i.x+n*o.x,i.y+n*o.y),t.stroke();var l=Math.atan2(o.y,o.x);t.fillStyle=d,t.arrow(i.x+n*o.x+Math.cos(l)*h,i.y+n*o.y+Math.sin(l)*h,l,h),t.fill()}}}]),t}();e["default"]=k},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;i<e.length;i++){var o=e[i];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(t,o.key,o)}}return function(e,i,o){return i&&t(e.prototype,i),o&&t(e,o),e}}(),n=function(){function t(e,o,n){i(this,t),this.body=e,this.physicsBody=o,this.barnesHutTree,this.setOptions(n),this.randomSeed=5}return o(t,[{key:"setOptions",value:function(t){this.options=t,this.thetaInversed=1/this.options.theta,this.overlapAvoidanceFactor=1-Math.max(0,Math.min(1,this.options.avoidOverlap))}},{key:"seededRandom",value:function(){var t=1e4*Math.sin(this.randomSeed++);return t-Math.floor(t)}},{key:"solve",value:function(){if(0!==this.options.gravitationalConstant&&this.physicsBody.physicsNodeIndices.length>0){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.maxWidth<n?n:t.maxWidth}},{key:"_placeInTree",value:function(t,e,i){1==i&&void 0!==i||this._updateBranchMass(t,e),t.children.NW.range.maxX>e.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;i<e.length;i++){var o=e[i];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(t,o.key,o)}}return function(e,i,o){return i&&t(e.prototype,i),o&&t(e,o),e}}(),n=function(){function t(e,o,n){i(this,t),this.body=e,this.physicsBody=o,this.setOptions(n)}return o(t,[{key:"setOptions",value:function(t){this.options=t}},{key:"solve",value:function(){for(var t,e,i,o,n,s,r,a,h=this.body.nodes,d=this.physicsBody.physicsNodeIndices,l=this.physicsBody.forces,c=this.options.nodeDistance,u=-2/3/c,p=4/3,f=0;f<d.length-1;f++){r=h[d[f]];for(var m=f+1;m<d.length;m++)a=h[d[m]],t=a.x-r.x,e=a.y-r.y,i=Math.sqrt(t*t+e*e),0===i&&(i=.1*Math.random(),t=i),2*c>i&&(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;i<e.length;i++){var o=e[i];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(t,o.key,o)}}return function(e,i,o){return i&&t(e.prototype,i),o&&t(e,o),e}}(),n=function(){function t(e,o,n){i(this,t),this.body=e,this.physicsBody=o,this.setOptions(n)}return o(t,[{key:"setOptions",value:function(t){this.options=t}},{key:"solve",value:function(){var t,e,i,o,n,s,r,a,h,d,l=this.body.nodes,c=this.physicsBody.physicsNodeIndices,u=this.physicsBody.forces,p=this.options.nodeDistance;for(h=0;h<c.length-1;h++)for(r=l[c[h]],d=h+1;d<c.length;d++)if(a=l[c[d]],r.level===a.level){t=a.x-r.x,e=a.y-r.y,i=Math.sqrt(t*t+e*e);var f=.05;s=p>i?-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;i<e.length;i++){var o=e[i];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(t,o.key,o)}}return function(e,i,o){return i&&t(e.prototype,i),o&&t(e,o),e}}(),n=function(){function t(e,o,n){i(this,t),this.body=e,this.physicsBody=o,this.setOptions(n)}return o(t,[{key:"setOptions",value:function(t){this.options=t}},{key:"solve",value:function(){for(var t=void 0,e=void 0,i=this.physicsBody.physicsEdgeIndices,o=this.body.edges,n=void 0,s=void 0,r=void 0,a=0;a<i.length;a++)e=o[i[a]],e.connected===!0&&e.toId!==e.fromId&&void 0!==this.body.nodes[e.toId]&&void 0!==this.body.nodes[e.fromId]&&(void 0!==e.edgeType.via?(t=void 0===e.options.length?this.options.springLength:e.options.length,n=e.to,s=e.edgeType.via,r=e.from,this._calculateSpringForce(n,s,.5*t),this._calculateSpringForce(s,r,.5*t)):(t=void 0===e.options.length?1.5*this.options.springLength:e.options.length,this._calculateSpringForce(e.from,e.to,t)))}},{key:"_calculateSpringForce",value:function(t,e,i){var o=t.x-e.x,n=t.y-e.y,s=Math.max(Math.sqrt(o*o+n*n),.01),r=this.options.springConstant*(i-s)/s,a=o*r,h=n*r;void 0!==this.physicsBody.forces[t.id]&&(this.physicsBody.forces[t.id].x+=a,this.physicsBody.forces[t.id].y+=h),void 0!==this.physicsBody.forces[e.id]&&(this.physicsBody.forces[e.id].x-=a,this.physicsBody.forces[e.id].y-=h)}}]),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;i<e.length;i++){var o=e[i];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(t,o.key,o)}}return function(e,i,o){return i&&t(e.prototype,i),o&&t(e,o),e}}(),n=function(){function t(e,o,n){i(this,t),this.body=e,this.physicsBody=o,this.setOptions(n)}return o(t,[{key:"setOptions",value:function(t){this.options=t}},{key:"solve",value:function(){for(var t,e,i,o,n,s,r,a,h=this.body.edges,d=.5,l=this.physicsBody.physicsEdgeIndices,c=this.physicsBody.physicsNodeIndices,u=this.physicsBody.forces,p=0;p<c.length;p++){var f=c[p];u[f].springFx=0,u[f].springFy=0}for(var m=0;m<l.length;m++)e=h[l[m]],e.connected===!0&&(t=void 0===e.options.length?this.options.springLength:e.options.length,i=e.from.x-e.to.x,o=e.from.y-e.to.y,a=Math.sqrt(i*i+o*o),a=0===a?.01:a,r=this.options.springConstant*(t-a)/a,n=i*r,s=o*r,e.to.level!=e.from.level?(void 0!==u[e.toId]&&(u[e.toId].springFx-=n,u[e.toId].springFy-=s),void 0!==u[e.fromId]&&(u[e.fromId].springFx+=n,u[e.fromId].springFy+=s)):(void 0!==u[e.toId]&&(u[e.toId].x-=d*n,u[e.toId].y-=d*s),void 0!==u[e.fromId]&&(u[e.fromId].x+=d*n,u[e.fromId].y+=d*s)));for(var v,g,r=1,y=0;y<c.length;y++){var b=c[y];v=Math.min(r,Math.max(-r,u[b].springFx)),g=Math.min(r,Math.max(-r,u[b].springFy)),u[b].x+=v,u[b].y+=g}for(var w=0,_=0,x=0;x<c.length;x++){var k=c[x];w+=u[k].x,_+=u[k].y}for(var O=w/c.length,M=_/c.length,D=0;D<c.length;D++){var S=c[D];u[S].x-=O,u[S].y-=M}}}]),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;i<e.length;i++){var o=e[i];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(t,o.key,o)}}return function(e,i,o){return i&&t(e.prototype,i),o&&t(e,o),e}}(),n=function(){function t(e,o,n){i(this,t),this.body=e,this.physicsBody=o,this.setOptions(n)}return o(t,[{key:"setOptions",value:function(t){this.options=t}},{key:"solve",value:function(){for(var t=void 0,e=void 0,i=void 0,o=void 0,n=this.body.nodes,s=this.physicsBody.physicsNodeIndices,r=this.physicsBody.forces,a=0;a<s.length;a++){var h=s[a];o=n[h],t=-o.x,e=-o.y,i=Math.sqrt(t*t+e*e),this._calculateForces(i,t,e,r,o)}}},{key:"_calculateForces",value:function(t,e,i,o,n){var s=0===t?0:this.options.centralGravity/t;o[n.id].x=e*s,o[n.id].y=i*s}}]),t}();e["default"]=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")}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<e.length;i++){var o=e[i];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(t,o.key,o)}}return function(e,i,o){return i&&t(e.prototype,i),o&&t(e,o),e}}(),h=i(94),d=o(h),l=function(t){function e(t,i,o){return n(this,e),s(this,Object.getPrototypeOf(e).call(this,t,i,o))}return r(e,t),a(e,[{key:"_calculateForces",value:function(t,e,i,o,n){0===t&&(t=.1*Math.random(),e=t),this.overlapAvoidanceFactor<1&&(t=Math.max(.1+this.overlapAvoidanceFactor*o.shape.radius,t-o.shape.radius));var s=o.edges.length+1,r=this.options.gravitationalConstant*n.mass*o.options.mass*s/Math.pow(t,2),a=e*r,h=i*r;this.physicsBody.forces[o.id].x+=a,this.physicsBody.forces[o.id].y+=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<e.length;i++){var o=e[i];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(t,o.key,o)}}return function(e,i,o){return i&&t(e.prototype,i),o&&t(e,o),e}}(),h=i(99),d=o(h),l=function(t){function e(t,i,o){return n(this,e),s(this,Object.getPrototypeOf(e).call(this,t,i,o))}return r(e,t),a(e,[{key:"_calculateForces",value:function(t,e,i,o,n){if(t>0){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<e.length;i++){var o=e[i];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(t,o.key,o)}}return function(e,i,o){return i&&t(e.prototype,i),o&&t(e,o),e}}(),a=i(103),h=o(a),d=i(104),l=o(d),c=i(1),u=function(){function t(e){var i=this;n(this,t),this.body=e,this.clusteredNodes={},this.clusteredEdges={},this.options={},this.defaultOptions={},c.extend(this.options,this.defaultOptions),this.body.emitter.on("_resetData",function(){i.clusteredNodes={},i.clusteredEdges={}})}return r(t,[{key:"setOptions",value:function(t){}},{key:"clusterByHubsize",value:function(t,e){void 0===t?t=this._getHubSize():"object"===("undefined"==typeof t?"undefined":s(t))&&(e=this._checkOptions(t),t=this._getHubSize());for(var i=[],o=0;o<this.body.nodeIndices.length;o++){var n=this.body.nodes[this.body.nodeIndices[o]];n.edges.length>=t&&i.push(n.id)}for(var r=0;r<i.length;r++)this.clusterByConnection(i[r],e,!0);this.body.emitter.emit("_dataChanged")}},{key:"cluster",value:function(){var t=arguments.length<=0||void 0===arguments[0]?{}:arguments[0],e=arguments.length<=1||void 0===arguments[1]?!0: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;n<this.body.nodeIndices.length;n++){var s=this.body.nodeIndices[n],r=this.body.nodes[s],a=h["default"].cloneOptions(r);if(t.joinCondition(a)===!0){i[s]=this.body.nodes[s];for(var d=0;d<r.edges.length;d++){var l=r.edges[d];void 0===this.clusteredEdges[l.id]&&(o[l.id]=l)}}}this._cluster(i,o,t,e)}},{key:"clusterByEdgeCount",value:function(t,e){var i=arguments.length<=2||void 0===arguments[2]?!0: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;c<this.body.nodeIndices.length;c++){var u={},p={};if(d=this.body.nodeIndices[c],void 0===n[d]){l=0,a=this.body.nodes[d],r=[];for(var f=0;f<a.edges.length;f++)s=a.edges[f],void 0===this.clusteredEdges[s.id]&&(s.toId!==s.fromId&&l++,r.push(s));if(l===t){for(var m=!0,v=0;v<r.length;v++){s=r[v];var g=this._getConnectedId(s,d);if(void 0===e.joinCondition)p[s.id]=s,u[d]=this.body.nodes[d],u[g]=this.body.nodes[g],n[d]=!0;else{var y=h["default"].cloneOptions(this.body.nodes[d]);if(e.joinCondition(y)!==!0){m=!1;break}p[s.id]=s,u[d]=this.body.nodes[d],n[d]=!0}}Object.keys(u).length>0&&Object.keys(p).length>0&&m===!0&&o.push({nodes:u,edges:p})}}}for(var b=0;b<o.length;b++)this._cluster(o[b].nodes,o[b].edges,e,!1);i===!0&&this.body.emitter.emit("_dataChanged")}},{key:"clusterOutliers",value:function(t){var e=arguments.length<=1||void 0===arguments[1]?!0:arguments[1];this.clusterByEdgeCount(1,t,e)}},{key:"clusterBridges",value:function(t){var e=arguments.length<=1||void 0===arguments[1]?!0:arguments[1];this.clusterByEdgeCount(2,t,e)}},{key:"clusterByConnection",value:function(t,e){var i=arguments.length<=2||void 0===arguments[2]?!0: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<o.edges.length;d++){var l=o.edges[d];if(void 0===this.clusteredEdges[l.id]){var c=this._getConnectedId(l,r);if(void 0===this.clusteredNodes[c])if(c!==r)if(void 0===e.joinCondition)s[l.id]=l,n[c]=this.body.nodes[c];else{var u=h["default"].cloneOptions(this.body.nodes[c]);e.joinCondition(a,u)===!0&&(s[l.id]=l,n[c]=this.body.nodes[c])}else s[l.id]=l}}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;f<u.length;f++){s=u[f],r=t[s];for(var m=0;m<r.edges.length;m++)n=r.edges[m],void 0===this.clusteredEdges[n.id]&&(n.toId==n.fromId?e[n.id]=n:n.toId==s?(a=i.id,d=n.fromId,l=d):(a=n.toId,d=i.id,l=a),void 0===t[l]&&p.push({edge:n,fromId:d,toId:a}))}for(var v=0;v<p.length;v++){var g=p[v].edge,y=h["default"].cloneOptions(g,"edge");c.deepExtend(y,o),y.from=p[v].fromId,y.to=p[v].toId,y.id="clusterEdge:"+c.randomUUID();var b=this.body.functions.createEdge(y);b.clusteringEdgeReplacingId=g.id,this.body.edges[b.id]=b,b.connect(),this._backupEdgeOptions(g),g.setOptions({physics:!1,hidden:!0})}}},{key:"_checkOptions",value:function(){var t=arguments.length<=0||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]?!0:arguments[3];if(!(Object.keys(t).length<2)){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 w in t)t.hasOwnProperty(w)&&(this.clusteredNodes[w]={clusterId:s.id,node:this.body.nodes[w]},this.body.nodes[w].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;a<e.length;a++)r=t[e[a]],i=r.x<i?r.x:i,o=r.x>o?r.x:o,n=r.y<n?r.y:n,s=r.y>s?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;w<o.edges.length;w++)b.push(o.edges[w]);for(var _=0;_<b.length;_++){var x=b[_],k=this._getConnectedId(x,t);if(void 0!==this.clusteredNodes[k]){var O=this.body.nodes[this.clusteredNodes[k].clusterId],M=this.body.edges[x.clusteringEdgeReplacingId];if(void 0!==M){O.containedEdges[M.id]=M,delete s[M.id];var D=M.fromId,S=M.toId;M.toId==k?S=this.clusteredNodes[k].clusterId:D=this.clusteredNodes[k].clusterId;var C=h["default"].cloneOptions(M,"edge");c.deepExtend(C,O.clusterEdgeProperties);var T="clusterEdge:"+c.randomUUID();c.deepExtend(C,{from:D,to:S,hidden:!1,physics:!0,id:T});var E=this.body.functions.createEdge(C);E.clusteringEdgeReplacingId=M.id,this.body.edges[T]=E,this.body.edges[T].connect()}}else{var P=this.body.edges[x.clusteringEdgeReplacingId];void 0!==P&&this._restoreEdge(P)}x.cleanup(),x.disconnect(),delete this.body.edges[x.id]}for(var I in s)s.hasOwnProperty(I)&&this._restoreEdge(s[I]);delete this.body.nodes[t],i===!0&&this.body.emitter.emit("_dataChanged")}},{key:"getNodesInCluster",value:function(t){var e=[];if(this.isCluster(t)===!0){var i=this.body.nodes[t].containedNodes;for(var o in i)i.hasOwnProperty(o)&&e.push(this.body.nodes[o].id)}return e}},{key:"findNode",value:function(t){for(var e=[],i=100,o=0;void 0!==this.clusteredNodes[t]&&i>o;)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;n<this.body.nodeIndices.length;n++){var s=this.body.nodes[this.body.nodeIndices[n]];s.edges.length>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;i<e.length;i++){var o=e[i];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(t,o.key,o)}}return function(e,i,o){return i&&t(e.prototype,i),o&&t(e,o),e}}(),s=i(1),r=function(){function t(){o(this,t)}return n(t,null,[{key:"getRange",value:function(t){var e,i=arguments.length<=1||void 0===arguments[1]?[]:arguments[1],o=1e9,n=-1e9,s=1e9,r=-1e9;if(i.length>0)for(var a=0;a<i.length;a++)e=t[i[a]],s>e.shape.boundingBox.left&&(s=e.shape.boundingBox.left),r<e.shape.boundingBox.right&&(r=e.shape.boundingBox.right),o>e.shape.boundingBox.top&&(o=e.shape.boundingBox.top),n<e.shape.boundingBox.bottom&&(n=e.shape.boundingBox.bottom);return 1e9===s&&-1e9===r&&1e9===o&&-1e9===n&&(o=0,n=0,s=0,r=0),{minX:s,maxX:r,minY:o,maxY:n}}},{key:"getRangeCore",value:function(t){var e,i=arguments.length<=1||void 0===arguments[1]?[]:arguments[1],o=1e9,n=-1e9,s=1e9,r=-1e9;if(i.length>0)for(var a=0;a<i.length;a++)e=t[i[a]],s>e.x&&(s=e.x),r<e.x&&(r=e.x),o>e.y&&(o=e.y),n<e.y&&(n=e.y);return 1e9===s&&-1e9===r&&1e9===o&&-1e9===n&&(o=0,n=0,s=0,r=0),{minX:s,maxX:r,minY:o,maxY:n}}},{key:"findCenter",value:function(t){return{x:.5*(t.maxX+t.minX),y:.5*(t.maxY+t.minY)}}},{key:"cloneOptions",value:function(t,e){var i={};return void 0===e||"node"===e?(s.deepExtend(i,t.options,!0),i.x=t.x,i.y=t.y,i.amountOfConnections=t.edges.length):s.deepExtend(i,t.options,!0),i}}]),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")}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=i(65),h=o(a),d=function(t){function e(t,i,o,r,a){n(this,e);var h=s(this,Object.getPrototypeOf(e).call(this,t,i,o,r,a));return h.isCluster=!0,h.containedNodes={},h.containedEdges={},h}return r(e,t),e}(h["default"]);e["default"]=d},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;i<e.length;i++){var o=e[i];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(t,o.key,o)}}return function(e,i,o){return i&&t(e.prototype,i),o&&t(e,o),e}}();"undefined"!=typeof window&&(window.requestAnimationFrame=window.requestAnimationFrame||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame||window.msRequestAnimationFrame);var s=i(1),r=function(){function t(e,i){o(this,t),this.body=e,this.canvas=i,this.redrawRequested=!1,this.renderTimer=void 0,this.requiresTimeout=!0,this.renderingActive=!1,this.renderRequests=0,this.pixelRatio=void 0,this.allowRedraw=!0,this.dragging=!1,this.options={},this.defaultOptions={hideEdgesOnDrag:!1,hideNodesOnDrag:!1},s.extend(this.options,this.defaultOptions),this._determineBrowserMethod(),this.bindEventListeners()}return n(t,[{key:"bindEventListeners",value:function(){var t=this;this.body.emitter.on("dragStart",function(){t.dragging=!0}),this.body.emitter.on("dragEnd",function(){return t.dragging=!1}),this.body.emitter.on("_resizeNodes",function(){return t._resizeNodes()}),this.body.emitter.on("_redraw",function(){t.renderingActive===!1&&t._redraw()}),this.body.emitter.on("_blockRedraw",function(){t.allowRedraw=!1}),this.body.emitter.on("_allowRedraw",function(){t.allowRedraw=!0,t.redrawRequested=!1}),this.body.emitter.on("_requestRedraw",this._requestRedraw.bind(this)),this.body.emitter.on("_startRendering",function(){t.renderRequests+=1,t.renderingActive=!0,t._startRendering()}),this.body.emitter.on("_stopRendering",function(){t.renderRequests-=1,t.renderingActive=t.renderRequests>0,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;l<o.length;l++)n=i[o[l]],n.isSelected()?s.push(o[l]):e===!0?n.draw(t):n.isBoundingBoxOverlappingWith(d)===!0?n.draw(t):n.updateBoundingBox(t,n.selected);for(var c=0;c<s.length;c++)n=i[s[c]],n.draw(t)}},{key:"_drawEdges",value:function(t){for(var e=this.body.edges,i=this.body.edgeIndices,o=void 0,n=0;n<i.length;n++)o=e[i[n]],o.connected===!0&&o.draw(t)}},{key:"_determineBrowserMethod",value:function(){if("undefined"!=typeof window){var t=navigator.userAgent.toLowerCase();this.requiresTimeout=!1,-1!=t.indexOf("msie 9.0")?this.requiresTimeout=!0:-1!=t.indexOf("safari")&&t.indexOf("chrome")<=-1&&(this.requiresTimeout=!0)}else this.requiresTimeout=!0}}]),t}();e["default"]=r},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;i<e.length;i++){var o=e[i];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(t,o.key,o)}}return function(e,i,o){return i&&t(e.prototype,i),o&&t(e,o),e}}(),s=i(20),r=i(28),a=i(1),h=function(){function t(e){o(this,t),this.body=e,this.pixelRatio=1,this.resizeTimer=void 0,this.resizeFunction=this._onResize.bind(this),this.cameraState={},this.initialized=!1,this.options={},this.defaultOptions={autoResize:!0,height:"100%",width:"100%"},a.extend(this.options,this.defaultOptions),this.bindEventListeners()}return n(t,[{key:"bindEventListeners",value:function(){var t=this;this.body.emitter.once("resize",function(e){0!==e.width&&(t.body.view.translation.x=.5*e.width),0!==e.height&&(t.body.view.translation.y=.5*e.height)}),this.body.emitter.on("setSize",this.setSize.bind(this)),this.body.emitter.on("destroy",function(){t.hammerFrame.destroy(),t.hammer.destroy(),t._cleanUp()})}},{key:"setOptions",value:function(t){var e=this;if(void 0!==t){var i=["width","height","autoResize"];a.selectiveDeepExtend(i,this.options,t)}this.options.autoResize===!0&&(this._cleanUp(),this.resizeTimer=setInterval(function(){var t=e.setSize();t===!0&&e.body.emitter.emit("_requestRedraw")},1e3),this.resizeFunction=this._onResize.bind(this),a.addEventListener(window,"resize",this.resizeFunction))}},{key:"_cleanUp",value:function(){void 0!==this.resizeTimer&&clearInterval(this.resizeTimer),a.removeEventListener(window,"resize",this.resizeFunction),this.resizeFunction=void 0}},{key:"_onResize",value:function(){this.setSize(),this.body.emitter.emit("_redraw")}},{key:"_getCameraState",value:function(){var t=arguments.length<=0||void 0===arguments[0]?this.pixelRatio:arguments[0];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(-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<e.length;i++){var o=e[i];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(t,o.key,o)}}return function(e,i,o){return i&&t(e.prototype,i),o&&t(e,o),e}}(),r=i(103),a=o(r),h=i(1),d=function(){function t(e,i){var o=this;n(this,t),this.body=e,this.canvas=i,this.animationSpeed=1/this.renderRefreshRate,this.animationEasingFunction="easeInOutQuint",this.easingTime=0,this.sourceScale=0,this.targetScale=0,this.sourceTranslation=0,this.targetTranslation=0,this.lockedOnNodeId=void 0,this.lockedOnNodeOffset=void 0,this.touchTime=0,this.viewFunction=void 0,this.body.emitter.on("fit",this.fit.bind(this)),this.body.emitter.on("animationFinished",function(){o.body.emitter.emit("_stopRendering")}),this.body.emitter.on("unlockNode",this.releaseNode.bind(this))}return s(t,[{key:"setOptions",value:function(){var t=arguments.length<=0||void 0===arguments[0]?{}:arguments[0];this.options=t}},{key:"fit",value:function(){var t=arguments.length<=0||void 0===arguments[0]?{nodes:[]}:arguments[0],e=arguments.length<=1||void 0===arguments[1]?!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=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;i<e.length;i++){var o=e[i];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(t,o.key,o)}}return function(e,i,o){return i&&t(e.prototype,i),o&&t(e,o),e}}(),r=i(109),a=o(r),h=i(110),d=o(h),l=i(1),c=function(){function t(e,i,o){n(this,t),this.body=e,this.canvas=i,this.selectionHandler=o,this.navigationHandler=new a["default"](e,i),this.body.eventListeners.onTap=this.onTap.bind(this),this.body.eventListeners.onTouch=this.onTouch.bind(this),this.body.eventListeners.onDoubleTap=this.onDoubleTap.bind(this),this.body.eventListeners.onHold=this.onHold.bind(this),this.body.eventListeners.onDragStart=this.onDragStart.bind(this),this.body.eventListeners.onDrag=this.onDrag.bind(this),this.body.eventListeners.onDragEnd=this.onDragEnd.bind(this),this.body.eventListeners.onMouseWheel=this.onMouseWheel.bind(this),this.body.eventListeners.onPinch=this.onPinch.bind(this),this.body.eventListeners.onMouseMove=this.onMouseMove.bind(this),this.body.eventListeners.onRelease=this.onRelease.bind(this),this.body.eventListeners.onContext=this.onContext.bind(this),this.touchTime=0,this.drag={},this.pinch={},this.popup=void 0,this.popupObj=void 0,this.popupTimer=void 0,this.body.functions.getPointer=this.getPointer.bind(this),this.options={},this.defaultOptions={dragNodes:!0,dragView:!0,hover:!1,keyboard:{enabled:!1,speed:{x:10,y:10,zoom:.02},bindToWindow:!0},navigationButtons:!1,tooltipDelay:300,zoomView:!0},l.extend(this.options,this.defaultOptions),this.bindEventListeners()}return s(t,[{key:"bindEventListeners",value:function(){var t=this;this.body.emitter.on("destroy",function(){clearTimeout(t.popupTimer),delete t.body.functions.getPointer})}},{key:"setOptions",value:function(t){if(void 0!==t){var e=["hideEdgesOnDrag","hideNodesOnDrag","keyboard","multiselect","selectable","selectConnectedEdges"];l.selectiveNotDeepExtend(e,this.options,t),l.mergeOptions(this.options,t,"keyboard"),t.tooltip&&(l.extend(this.options.tooltip,t.tooltip),t.tooltip.color&&(this.options.tooltip.color=l.parseColor(t.tooltip.color)))}this.navigationHandler.setOptions(this.options)}},{key:"getPointer",value:function(t){return{x:t.x-l.getAbsoluteLeft(this.canvas.frame.canvas),y:t.y-l.getAbsoluteTop(this.canvas.frame.canvas)}}},{key:"onTouch",value:function(t){(new Date).valueOf()-this.touchTime>50&&(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;n<t.nodes.length;n++)-1===e.nodes.indexOf(t.nodes[n])&&(i=!0);for(var s=0;s<e.nodes.length;s++)-1===t.nodes.indexOf(t.nodes[s])&&(i=!0);for(var r=0;r<t.edges.length;r++)-1===e.edges.indexOf(t.edges[r])&&(o=!0);for(var a=0;a<e.edges.length;a++)-1===t.edges.indexOf(t.edges[a])&&(o=!0);return{nodesChanged:i,edgesChanged:o}}},{key:"onDragStart",value:function(t){void 0===this.drag.pointer&&this.onTouch(t);var e=this.selectionHandler.getNodeAt(this.drag.pointer);if(this.drag.dragging=!0,this.drag.selection=[],this.drag.translation=l.extend({},this.body.view.translation),this.drag.nodeId=void 0,void 0!==e&&this.options.dragNodes===!0){this.drag.nodeId=e.id,e.isSelected()===!1&&(this.selectionHandler.unselectAll(),this.selectionHandler.selectObject(e)),this.selectionHandler._generateClickEvent("dragStart",t,this.drag.pointer);var i=this.selectionHandler.selectionObj.nodes;for(var o in i)if(i.hasOwnProperty(o)){var n=i[o],s={id:n.id,node:n,x:n.x,y:n.y,xFixed:n.options.fixed.x,yFixed:n.options.fixed.y};n.options.fixed.x=!0,n.options.fixed.y=!0,this.drag.selection.push(s)}}else this.selectionHandler._generateClickEvent("dragStart",t,this.drag.pointer,void 0,!0)}},{key:"onDrag",value:function(t){var e=this;if(this.drag.pinched!==!0){this.body.emitter.emit("unlockNode");var i=this.getPointer(t.center),o=this.drag.selection;if(o&&o.length&&this.options.dragNodes===!0)!function(){e.selectionHandler._generateClickEvent("dragging",t,i);var n=i.x-e.drag.pointer.x,s=i.y-e.drag.pointer.y;o.forEach(function(t){var i=t.node;t.xFixed===!1&&(i.x=e.canvas._XconvertDOMtoCanvas(e.canvas._XconvertCanvasToDOM(t.x)+n)),t.yFixed===!1&&(i.y=e.canvas._YconvertDOMtoCanvas(e.canvas._YconvertCanvasToDOM(t.y)+s))}),e.body.emitter.emit("startSimulation")}();else if(this.options.dragView===!0){if(this.selectionHandler._generateClickEvent("dragging",t,i,void 0,!0),void 0===this.drag.pointer)return void this.onDragStart(t);var n=i.x-this.drag.pointer.x,s=i.y-this.drag.pointer.y;this.body.view.translation={x:this.drag.translation.x+n,y:this.drag.translation.y+s},this.body.emitter.emit("_redraw")}}}},{key:"onDragEnd",value:function(t){this.drag.dragging=!1;var e=this.drag.selection;e&&e.length?(e.forEach(function(t){t.node.options.fixed.x=t.xFixed,t.node.options.fixed.y=t.yFixed}),this.selectionHandler._generateClickEvent("dragEnd",t,this.getPointer(t.center)),this.body.emitter.emit("startSimulation")):(this.selectionHandler._generateClickEvent("dragEnd",t,this.getPointer(t.center),void 0,!0),this.body.emitter.emit("_requestRedraw"))}},{key:"onPinch",value:function(t){var e=this.getPointer(t.center);this.drag.pinched=!0,void 0===this.pinch.scale&&(this.pinch.scale=1);var i=this.pinch.scale*t.scale;this.zoom(i,e)}},{key:"zoom",value:function(t,e){if(this.options.zoomView===!0){var i=this.body.view.scale;1e-5>t&&(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;u<a.length;u++)l=h[a[u]],l.isOverlappingWith(o)===!0&&void 0!==l.getTitle()&&c.push(a[u]);c.length>0&&(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;g<p.length;g++)m=f[p[g]],m.isOverlappingWith(o)===!0&&m.connected===!0&&void 0!==m.getTitle()&&v.push(p[g]);v.length>0&&(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;i<e.length;i++){var o=e[i];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(t,o.key,o)}}return function(e,i,o){return i&&t(e.prototype,i),o&&t(e,o),e}}(),s=(i(1),i(20)),r=i(28),a=i(23),h=function(){function t(e,i){var n=this;o(this,t),this.body=e,this.canvas=i,this.iconsCreated=!1,this.navigationHammers=[],this.boundFunctions={},this.touchTime=0,this.activated=!1,this.body.emitter.on("activate",function(){n.activated=!0,n.configureKeyboardBindings()}),this.body.emitter.on("deactivate",function(){n.activated=!1,n.configureKeyboardBindings()}),this.body.emitter.on("destroy",function(){void 0!==n.keycharm&&n.keycharm.destroy()}),this.options={}}return n(t,[{key:"setOptions",value:function(t){void 0!==t&&(this.options=t,this.create())}},{key:"create",value:function(){this.options.navigationButtons===!0?this.iconsCreated===!1&&this.loadNavigationElements():this.iconsCreated===!0&&this.cleanNavigation(),this.configureKeyboardBindings()}},{key:"cleanNavigation",value:function(){if(0!=this.navigationHammers.length){for(var t=0;t<this.navigationHammers.length;t++)this.navigationHammers[t].destroy();this.navigationHammers=[]}this.navigationDOM&&this.navigationDOM.wrapper&&this.navigationDOM.wrapper.parentNode&&this.navigationDOM.wrapper.parentNode.removeChild(this.navigationDOM.wrapper),this.iconsCreated=!1}},{key:"loadNavigationElements",value:function(){var t=this;this.cleanNavigation(),this.navigationDOM={};var e=["up","down","left","right","zoomIn","zoomOut","zoomExtends"],i=["_moveUp","_moveDown","_moveLeft","_moveRight","_zoomIn","_zoomOut","_fit"];this.navigationDOM.wrapper=document.createElement("div"),this.navigationDOM.wrapper.className="vis-navigation",this.canvas.frame.appendChild(this.navigationDOM.wrapper);for(var o=0;o<e.length;o++){this.navigationDOM[e[o]]=document.createElement("div"),this.navigationDOM[e[o]].className="vis-button vis-"+e[o],this.navigationDOM.wrapper.appendChild(this.navigationDOM[e[o]]);var n=new s(this.navigationDOM[e[o]]);"_fit"===i[o]?r.onTouch(n,this._fit.bind(this)):r.onTouch(n,this.bindToRedraw.bind(this,i[o])),this.navigationHammers.push(n)}var a=new s(this.canvas.frame);r.onRelease(a,function(){t._stopMovement()}),this.navigationHammers.push(a),this.iconsCreated=!0}},{key:"bindToRedraw",value:function(t){void 0===this.boundFunctions[t]&&(this.boundFunctions[t]=this[t].bind(this),this.body.emitter.on("initRedraw",this.boundFunctions[t]),this.body.emitter.emit("_startRendering"))}},{key:"unbindFromRedraw",value:function(t){void 0!==this.boundFunctions[t]&&(this.body.emitter.off("initRedraw",this.boundFunctions[t]),this.body.emitter.emit("_stopRendering"),delete this.boundFunctions[t])}},{key:"_fit",value:function(){(new Date).valueOf()-this.touchTime>700&&(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;i<e.length;i++){var o=e[i];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(t,o.key,o)}}return function(e,i,o){return i&&t(e.prototype,i),o&&t(e,o),e}}(),n=function(){function t(e){i(this,t),this.container=e,this.x=0,this.y=0,this.padding=5,this.hidden=!1,this.frame=document.createElement("div"),this.frame.className="vis-network-tooltip",this.container.appendChild(this.frame)}return o(t,[{key:"setPosition",value:function(t,e){this.x=parseInt(t),this.y=parseInt(e)}},{key:"setText",value:function(t){t instanceof Element?(this.frame.innerHTML="",this.frame.appendChild(t)):this.frame.innerHTML=t}},{key:"show",value:function(t){if(void 0===t&&(t=!0),t===!0){var e=this.frame.clientHeight,i=this.frame.clientWidth,o=this.frame.parentNode.clientHeight,n=this.frame.parentNode.clientWidth,s=this.y-e;s+e+this.padding>o&&(s=o-e-this.padding),s<this.padding&&(s=this.padding);var r=this.x;r+i+this.padding>n&&(r=n-i-this.padding),r<this.padding&&(r=this.padding),this.frame.style.left=r+"px",this.frame.style.top=s+"px",this.frame.style.visibility="visible",this.hidden=!1}else this.hide()}},{key:"hide",value:function(){this.hidden=!0,this.frame.style.visibility="hidden"}}]),t}();e["default"]=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(){function t(t,e){for(var i=0;i<e.length;i++){var o=e[i];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(t,o.key,o)}}return function(e,i,o){return i&&t(e.prototype,i),o&&t(e,o),e}}(),r=i(65),a=o(r),h=i(85),d=o(h),l=i(1),c=function(){function t(e,i){var o=this;n(this,t),this.body=e,this.canvas=i,this.selectionObj={nodes:[],edges:[]},this.hoverObj={nodes:{},edges:{}},this.options={},this.defaultOptions={multiselect:!1,selectable:!0,selectConnectedEdges:!0,hoverConnectedEdges:!0},l.extend(this.options,this.defaultOptions),this.body.emitter.on("_dataChanged",function(){o.updateSelection()})}return s(t,[{key:"setOptions",value:function(t){if(void 0!==t){var e=["multiselect","hoverConnectedEdges","selectable","selectConnectedEdges"];l.selectiveDeepExtend(e,this.options,t)}}},{key:"selectOnPoint",value:function(t){var e=!1;if(this.options.selectable===!0){var i=this.getNodeAt(t)||this.getEdgeAt(t);this.unselectAll(),void 0!==i&&(e=this.selectObject(i)),this.body.emitter.emit("_requestRedraw")}return e}},{key:"selectAdditionalOnPoint",value:function(t){var e=!1;if(this.options.selectable===!0){var i=this.getNodeAt(t)||this.getEdgeAt(t);void 0!==i&&(e=!0,i.isSelected()===!0?this.deselectObject(i):this.selectObject(i),this.body.emitter.emit("_requestRedraw"))}return e}},{key:"_generateClickEvent",value:function(t,e,i,o){var n=arguments.length<=4||void 0===arguments[4]?!1: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]?this.options.selectConnectedEdges:arguments[1];return void 0!==t?(t instanceof a["default"]&&e===!0&&this._selectConnectedEdges(t),t.select(),this._addToSelection(t),!0):!1}},{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;o<this.body.nodeIndices.length;o++){var n=this.body.nodeIndices[o];i[n].isOverlappingWith(t)&&e.push(n)}return e}},{key:"_pointerToPositionObject",value:function(t){var e=this.canvas.DOMtoCanvas(t);return{left:e.x-1,top:e.y+1,right:e.x+1,bottom:e.y-1}}},{key:"getNodeAt",value:function(t){var e=arguments.length<=1||void 0===arguments[1]?!0: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;o<this.body.edgeIndices.length;o++){var n=this.body.edgeIndices[o];i[n].isOverlappingWith(t)&&e.push(n)}}},{key:"_getAllEdgesOverlappingWith",value:function(t){var e=[];return this._getEdgesOverlappingWith(t,e),e}},{key:"getEdgeAt",value:function(t){var e=arguments.length<=1||void 0===arguments[1]?!0:arguments[1],i=this._pointerToPositionObject(t),o=this._getAllEdgesOverlappingWith(i);return o.length>0?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;e<t.edges.length;e++){var i=t.edges[e];i.select(),this._addToSelection(i)}}},{key:"_hoverConnectedEdges",value:function(t){for(var e=0;e<t.edges.length;e++){var i=t.edges[e];i.hover=!0,this._addToHover(i)}}},{key:"_unselectConnectedEdges",value:function(t){for(var e=0;e<t.edges.length;e++){var i=t.edges[e];i.unselect(),this._removeFromSelection(i)}}},{key:"blurObject",value:function(t){t.hover===!0&&(t.hover=!1,t instanceof a["default"]?this.body.emitter.emit("blurNode",{node:t.id}):this.body.emitter.emit("blurEdge",{edge:t.id}))}},{key:"hoverObject",value:function(t){var e=!1;for(var i in this.hoverObj.nodes)this.hoverObj.nodes.hasOwnProperty(i)&&(void 0===t||t instanceof a["default"]&&t.id!=i||t instanceof d["default"])&&(this.blurObject(this.hoverObj.nodes[i]),delete this.hoverObj.nodes[i],e=!0);for(var o in this.hoverObj.edges)this.hoverObj.edges.hasOwnProperty(o)&&(e===!0?(this.hoverObj.edges[o].hover=!1,delete this.hoverObj.edges[o]):void 0===t&&(this.blurObject(this.hoverObj.edges[o]),delete this.hoverObj.edges[o],e=!0));void 0!==t&&(t.hover===!1&&(t.hover=!0,this._addToHover(t),e=!0,t instanceof a["default"]?this.body.emitter.emit("hoverNode",{node:t.id}):this.body.emitter.emit("hoverEdge",{edge:t.id})),t instanceof a["default"]&&this.options.hoverConnectedEdges===!0&&this._hoverConnectedEdges(t)),e===!0&&this.body.emitter.emit("_requestRedraw")}},{key:"getSelection",value:function(){var t=this.getSelectedNodes(),e=this.getSelectedEdges();return{nodes:t,edges:e}}},{key:"getSelectedNodes",value:function(){var t=[];if(this.options.selectable===!0)for(var e in this.selectionObj.nodes)this.selectionObj.nodes.hasOwnProperty(e)&&t.push(this.selectionObj.nodes[e].id);return t}},{key:"getSelectedEdges",value:function(){var t=[];if(this.options.selectable===!0)for(var e in this.selectionObj.edges)this.selectionObj.edges.hasOwnProperty(e)&&t.push(this.selectionObj.edges[e].id);return t}},{key:"setSelection",value:function(t){var e=arguments.length<=1||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;i<t.nodes.length;i++){o=t.nodes[i];var n=this.body.nodes[o];if(!n)throw new RangeError('Node with id "'+o+'" not found');this.selectObject(n,e.highlightEdges)}if(t.edges)for(i=0;i<t.edges.length;i++){o=t.edges[i];var s=this.body.edges[o];if(!s)throw new RangeError('Edge with id "'+o+'" not found');this.selectObject(s)}this.body.emitter.emit("_requestRedraw")}},{key:"selectNodes",value:function(t){var e=arguments.length<=1||void 0===arguments[1]?!0: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(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"==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=function(){function t(t,e){for(var i=0;i<e.length;i++){var o=e[i];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(t,o.key,o)}}return function(e,i,o){return i&&t(e.prototype,i),o&&t(e,o),e}}(),h=i(103),d=o(h),l=i(1),c=function(){function t(e){n(this,t),this.body=e,this.initialRandomSeed=Math.round(1e6*Math.random()),this.randomSeed=this.initialRandomSeed,this.setPhysics=!1,this.options={},this.optionsBackup={physics:{}},this.defaultOptions={randomSeed:void 0,improvedLayout:!0,hierarchical:{enabled:!1,levelSeparation:150,nodeSpacing:100,treeSpacing:200,blockShifting:!0,edgeMinimization:!0,parentCentralization:!0,direction:"UD",sortMethod:"hubsize"}},l.extend(this.options,this.defaultOptions),this.bindEventListeners()}return a(t,[{key:"bindEventListeners",value:function(){var t=this;this.body.emitter.on("_dataChanged",function(){t.setupHierarchicalLayout()}),this.body.emitter.on("_dataLoaded",function(){t.layoutNetwork()}),this.body.emitter.on("_resetHierarchicalLayout",function(){t.setupHierarchicalLayout()})}},{key:"setOptions",value:function(t,e){if(void 0!==t){var i=this.options.hierarchical.enabled;if(l.selectiveDeepExtend(["randomSeed","improvedLayout"],this.options,t),l.mergeOptions(this.options,t,"hierarchical"),void 0!==t.randomSeed&&(this.initialRandomSeed=t.randomSeed),this.options.hierarchical.enabled===!0)return i===!0&&this.body.emitter.emit("refresh",!0),"RL"===this.options.hierarchical.direction||"DU"===this.options.hierarchical.direction?this.options.hierarchical.levelSeparation>0&&(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;e<t.length;e++){var i=t[e],o=1*t.length+10,n=2*Math.PI*this.seededRandom();void 0===i.x&&(i.x=o*Math.cos(n)),void 0===i.y&&(i.y=o*Math.sin(n))}}}},{key:"layoutNetwork",value:function(){if(this.options.hierarchical.enabled!==!0&&this.options.improvedLayout===!0){for(var t=0,e=0;e<this.body.nodeIndices.length;e++){var i=this.body.nodes[this.body.nodeIndices[e]];i.predefinedPosition===!0&&(t+=1)}if(t<.5*this.body.nodeIndices.length){var o=10,n=0,s=100;if(this.body.nodeIndices.length>s){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;l<this.body.nodeIndices.length;l++)this.body.nodes[this.body.nodeIndices[l]].x+=(.5-this.seededRandom())*d,this.body.nodes[this.body.nodeIndices[l]].y+=(.5-this.seededRandom())*d;this._declusterAll(),this.body.emitter.emit("_repositionBezierNodes")}}}},{key:"_shiftToCenter",value:function(){for(var t=d["default"].getRangeCore(this.body.nodes,this.body.nodeIndices),e=d["default"].findCenter(t),i=0;i<this.body.nodeIndices.length;i++)this.body.nodes[this.body.nodeIndices[i]].x-=e.x,this.body.nodes[this.body.nodeIndices[i]].y-=e.y}},{key:"_declusterAll",value:function(){for(var t=!0;t===!0;){t=!1;for(var e=0;e<this.body.nodeIndices.length;e++)this.body.nodes[this.body.nodeIndices[e]].isCluster===!0&&(t=!0,this.body.modules.clustering.openCluster(this.body.nodeIndices[e],{},!1));t===!0&&this.body.emitter.emit("_dataChanged")}}},{key:"getSeed",value:function(){return this.initialRandomSeed}},{key:"setupHierarchicalLayout",value:function(){if(this.options.hierarchical.enabled===!0&&this.body.nodeIndices.length>0){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;i<e.length-1;i++){var o=e[i].max-e[i+1].min;n(i+1,o+t.options.hierarchical.treeSpacing)}},n=function(e,i){for(var o in t.hierarchicalTrees)if(t.hierarchicalTrees.hasOwnProperty(o)&&t.hierarchicalTrees[o]===e){var n=t.body.nodes[o],s=t._getPositionForHierarchy(n);t._setPositionForHierarchy(n,s+i,void 0,!0)}},r=function(e){var i=1e9,o=-1e9;for(var n in t.hierarchicalTrees)if(t.hierarchicalTrees.hasOwnProperty(n)&&t.hierarchicalTrees[n]===e){var s=t._getPositionForHierarchy(t.body.nodes[n]);i=Math.min(s,i),o=Math.max(s,o)}return{min:i,max:o}},a=function(){for(var e=[],i=0;i<=t.treeIndex;i++)e.push(r(i));return e},h=function w(e,i){if(i[e.id]=!0,t.hierarchicalChildrenReference[e.id]){var o=t.hierarchicalChildrenReference[e.id];if(o.length>0)for(var n=0;n<o.length;n++)w(t.body.nodes[o[n]],i)}},d=function(e){var i=arguments.length<=1||void 0===arguments[1]?1e9:arguments[1],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),i>=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;n<o.length;n++)i=Math.max(i,_(o[n]))}return i},c=function(t,e){var i=l(t.id),o=l(e.id);return Math.min(i,o)},u=function(e,i){var o=t.hierarchicalParentReference[e.id],n=t.hierarchicalParentReference[i.id];if(void 0===o||void 0===n)return!1;for(var s=0;s<o.length;s++)for(var r=0;r<n.length;r++)if(o[s]==n[r])return!0;return!1},p=function(e,i,o){for(var n=0;n<i.length;n++){var s=i[n],r=t.distributionOrdering[s];if(r.length>1)for(var a=0;a<r.length-1;a++)u(r[a],r[a+1])===!0&&t.hierarchicalTrees[r[a].id]===t.hierarchicalTrees[r[a+1].id]&&e(r[a],r[a+1],o)}},f=function(i,o){var n=arguments.length<=2||void 0===arguments[2]?!1: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),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;f<a.length;f++){var m=a[f];if(m.toId!=m.fromId){var v=m.toId==r?m.from:m.to;u[a[f].id]=v,t.hierarchicalLevels[v.id]<l&&p.push(m)}}var g=function(e,i){for(var o=0,n=0;n<i.length;n++)if(void 0!==u[i[n].id]){var s=t._getPositionForHierarchy(u[i[n].id])-e;o+=s/Math.sqrt(s*s+c)}return o},y=function(e,i){for(var o=0,n=0;n<i.length;n++)if(void 0!==u[i[n].id]){var s=t._getPositionForHierarchy(u[i[n].id])-e;o-=c*Math.pow(s*s+c,-1.5)}return o},b=function(e,i){for(var o=t._getPositionForHierarchy(n),s={},r=0;e>r;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;s<o.length;s++)for(var r=o[s],a=t.distributionOrdering[r],h=0;h<a.length;h++)m(1e3,a[h]);if(e!==!0)break}},g=function(i){var o=Object.keys(t.distributionOrdering);o=o.reverse();for(var n=0;i>n&&(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;i<e.length;i++)for(var o=e[i],n=t.distributionOrdering[o],s=0;s<n.length;s++)t._centerParent(n[s])};this.options.hierarchical.blockShifting===!0&&(g(5),y()),this.options.hierarchical.edgeMinimization===!0&&v(20),this.options.hierarchical.parentCentralization===!0&&b(),o()}},{key:"_getSpaceAroundNode",value:function(t,e){var i=!0;void 0===e&&(i=!1);var o=this.hierarchicalLevels[t.id];if(void 0!==o){var n=this.distributionIndex[t.id],s=this._getPositionForHierarchy(t),r=1e9,a=1e9;if(0!==n){var h=this.distributionOrdering[o][n-1];if(i===!0&&void 0===e[h.id]||i===!1){var d=this._getPositionForHierarchy(h);r=s-d}}if(n!=this.distributionOrdering[o].length-1){var l=this.distributionOrdering[o][n+1];if(i===!0&&void 0===e[l.id]||i===!1){var c=this._getPositionForHierarchy(l);a=Math.min(a,c-s)}}return[r,a]}return[0,0]}},{key:"_centerParent",value:function(t){if(this.hierarchicalParentReference[t.id])for(var e=this.hierarchicalParentReference[t.id],i=0;i<e.length;i++){var o=e[i],n=this.body.nodes[o];if(this.hierarchicalChildrenReference[o]){var r=1e9,a=-1e9,h=this.hierarchicalChildrenReference[o];if(h.length>0)for(var d=0;d<h.length;d++){var l=this.body.nodes[h[d]];r=Math.min(r,this._getPositionForHierarchy(l)),a=Math.max(a,this._getPositionForHierarchy(l))}var c=this._getPositionForHierarchy(n),u=this._getSpaceAroundNode(n),p=s(u,2),f=p[0],m=p[1],v=.5*(r+a),g=c-v;(0>g&&Math.abs(g)<m-this.options.hierarchical.nodeSpacing||g>0&&Math.abs(g)<f-this.options.hierarchical.nodeSpacing)&&this._setPositionForHierarchy(n,v,void 0,!0)}}}},{key:"_placeNodesByHierarchy",value:function(t){this.positionedNodes={};for(var e in t)if(t.hasOwnProperty(e)){var i=Object.keys(t[e]);i=this._indexArrayToNodes(i),this._sortNodeArray(i);for(var o=0,n=0;n<i.length;n++){var s=i[n];if(void 0===this.positionedNodes[s.id]){var r=this.options.hierarchical.nodeSpacing*o;o>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;o<this.hierarchicalChildrenReference[t].length;o++)i.push(this.body.nodes[this.hierarchicalChildrenReference[t][o]]);this._sortNodeArray(i);for(var n=0;n<i.length;n++){var s=i[n],r=this.hierarchicalLevels[s.id];if(!(r>e&&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;l<i.length;l++){var c=i[l].id;h=Math.min(h,this._getPositionForHierarchy(this.body.nodes[c])),d=Math.max(d,this._getPositionForHierarchy(this.body.nodes[c]))}this._setPositionForHierarchy(this.body.nodes[t],.5*(h+d),e)}}},{key:"_validataPositionAndContinue",value:function(t,e,i){if(void 0!==this.lastNodeOnLevel[e]){var o=this._getPositionForHierarchy(this.body.nodes[this.lastNodeOnLevel[e]]);if(i-o<this.options.hierarchical.nodeSpacing){var n=o+this.options.hierarchical.nodeSpacing-i,s=this._findCommonParent(this.lastNodeOnLevel[e],t.id);this._shiftBlock(s.withChild,n)}}this.lastNodeOnLevel[e]=t.id,this.positionedNodes[t.id]=!0,this._placeBranchNodes(t.id,e)}},{key:"_indexArrayToNodes",value:function(t){for(var e=[],i=0;i<t.length;i++)e.push(this.body.nodes[t[i]]);return e}},{key:"_getDistribution",value:function(){var t={},e=void 0,i=void 0;for(e in this.body.nodes)if(this.body.nodes.hasOwnProperty(e)){i=this.body.nodes[e];var o=void 0===this.hierarchicalLevels[e]?0:this.hierarchicalLevels[e];"UD"===this.options.hierarchical.direction||"DU"===this.options.hierarchical.direction?(i.y=this.options.hierarchical.levelSeparation*o,i.options.fixed.y=!0):(i.x=this.options.hierarchical.levelSeparation*o,i.options.fixed.x=!0),void 0===t[o]&&(t[o]={}),t[o][e]=i}return t}},{key:"_getHubSize",value:function(){var t=0;for(var e in this.body.nodes)if(this.body.nodes.hasOwnProperty(e)){var i=this.body.nodes[e];void 0===this.hierarchicalLevels[e]&&(t=i.edges.length<t?t:i.edges.length)}return t}},{key:"_determineLevelsByHubsize",value:function(){for(var t=this,e=1,i=function(e,i){void 0===t.hierarchicalLevels[i.id]&&(void 0===t.hierarchicalLevels[e.id]&&(t.hierarchicalLevels[e.id]=0),t.hierarchicalLevels[i.id]=t.hierarchicalLevels[e.id]+1)};e>0&&(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;r<i.edges.length;r++)i.edges[r].connected===!0&&(s=i.edges[r].toId===i.id?i.edges[r].from:i.edges[r].to,i.id!==s.id&&(e(i,s,i.edges[r]),d(s,n)))}};if(void 0===i)for(var r=0;r<this.body.nodeIndices.length;r++){var a=this.body.nodes[this.body.nodeIndices[r]];void 0===o[a.id]&&(s(a,n),n+=1)}else{var h=this.body.nodes[i];if(void 0===h)return void console.error("Node not found:",i);s(h)}}},{key:"_shiftBlock",value:function(t,e){if("UD"===this.options.hierarchical.direction||"DU"===this.options.hierarchical.direction?this.body.nodes[t].x+=e:this.body.nodes[t].y+=e,void 0!==this.hierarchicalChildrenReference[t])for(var i=0;i<this.hierarchicalChildrenReference[t].length;i++)this._shiftBlock(this.hierarchicalChildrenReference[t][i],e)}},{key:"_findCommonParent",value:function(t,e){var i=this,o={},n=function r(t,e){if(void 0!==i.hierarchicalParentReference[e])for(var o=0;o<i.hierarchicalParentReference[e].length;o++){var n=i.hierarchicalParentReference[e][o];t[n]=!0,r(t,n)}},s=function a(t,e){if(void 0!==i.hierarchicalParentReference[e])for(var o=0;o<i.hierarchicalParentReference[e].length;o++){var n=i.hierarchicalParentReference[e][o];if(void 0!==t[n])return{foundParent:n,withChild:e};var s=a(t,n);if(null!==s.foundParent)return s}return{foundParent:null,withChild:e}};return n(o,t),s(o,e)}},{key:"_setPositionForHierarchy",value:function(t,e,i){var o=arguments.length<=3||void 0===arguments[3]?!1: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;i<e.length;i++){var o=e[i];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(t,o.key,o)}}return function(e,i,o){return i&&t(e.prototype,i),o&&t(e,o),e}}(),s=i(1),r=i(20),a=i(28),h=function(){function t(e,i,n){var r=this;o(this,t),this.body=e,this.canvas=i,this.selectionHandler=n,this.editMode=!1,this.manipulationDiv=void 0,this.editModeDiv=void 0,this.closeDiv=void 0,this.manipulationHammers=[],this.temporaryUIFunctions={},this.temporaryEventFunctions=[],this.touchTime=0,this.temporaryIds={nodes:[],edges:[]},this.guiEnabled=!1,this.inMode=!1,this.selectedControlNode=void 0,this.options={},this.defaultOptions={enabled:!1,initiallyActive:!1,addNode:!0,addEdge:!0,editNode:void 0,editEdge:!0,deleteNode:!0,deleteEdge:!0,controlNodeStyle:{shape:"dot",size:6,color:{background:"#ff0000",border:"#3c3c3c",highlight:{background:"#07f968",border:"#3c3c3c"}},borderWidth:2,borderWidthSelected:2}},s.extend(this.options,this.defaultOptions),this.body.emitter.on("destroy",function(){r._clean()}),this.body.emitter.on("_dataChanged",this._restore.bind(this)),this.body.emitter.on("_resetData",this._restore.bind(this))}return n(t,[{key:"_restore",value:function(){this.inMode!==!1&&(this.options.initiallyActive===!0?this.enableEditMode():this.disableEditMode())}},{key:"setOptions",value:function(t,e,i){void 0!==e&&(void 0!==e.locale?this.options.locale=e.locale:this.options.locale=i.locale,void 0!==e.locales?this.options.locales=e.locales:this.options.locales=i.locales),void 0!==t&&("boolean"==typeof t?this.options.enabled=t:(this.options.enabled=!0,s.deepExtend(this.options,t)),this.options.initiallyActive===!0&&(this.editMode=!0),this._setup())}},{key:"toggleEditMode",value:function(){this.editMode===!0?this.disableEditMode():this.enableEditMode()}},{key:"enableEditMode",value:function(){this.editMode=!0,this._clean(),this.guiEnabled===!0&&(this.manipulationDiv.style.display="block",this.closeDiv.style.display="block",this.editModeDiv.style.display="none",this.showManipulatorToolbar())}},{key:"disableEditMode",value:function(){this.editMode=!1,this._clean(),this.guiEnabled===!0&&(this.manipulationDiv.style.display="none",this.closeDiv.style.display="none",this.editModeDiv.style.display="block",this._createEditButton())}},{key:"showManipulatorToolbar",value:function(){if(this._clean(),this.manipulationDOM={},this.guiEnabled===!0){this.editMode=!0,this.manipulationDiv.style.display="block",this.closeDiv.style.display="block";var t=this.selectionHandler._getSelectedNodeCount(),e=this.selectionHandler._getSelectedEdgeCount(),i=t+e,o=this.options.locales[this.options.locale],n=!1;this.options.addNode!==!1&&(this._createAddNodeButton(o),n=!0),this.options.addEdge!==!1&&(n===!0?this._createSeperator(1):n=!0,this._createAddEdgeButton(o)),1===t&&"function"==typeof this.options.editNode?(n===!0?this._createSeperator(2):n=!0,this._createEditNodeButton(o)):1===e&&0===t&&this.options.editEdge!==!1&&(n===!0?this._createSeperator(3):n=!0,this._createEditEdgeButton(o)),0!==i&&(t>0&&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;n<e.length;n++)if(this.body.nodes[e[n]].isCluster===!0)return void alert(this.options.locales[this.options.locale].deleteClusterError||this.options.locales.en.deleteClusterError);"function"==typeof this.options.deleteNode&&(o=this.options.deleteNode)}else i.length>0&&"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<this.manipulationHammers.length;t++)this.manipulationHammers[t].destroy();this.manipulationHammers=[]}}},{key:"_removeManipulationDOM",value:function(){this._clean(),s.recursiveDOMDelete(this.manipulationDiv),s.recursiveDOMDelete(this.editModeDiv),s.recursiveDOMDelete(this.closeDiv),this.manipulationDiv&&this.canvas.frame.removeChild(this.manipulationDiv),this.editModeDiv&&this.canvas.frame.removeChild(this.editModeDiv),this.closeDiv&&this.canvas.frame.removeChild(this.closeDiv),this.manipulationDiv=void 0,this.editModeDiv=void 0,this.closeDiv=void 0}},{key:"_createSeperator",value:function(){var t=arguments.length<=0||void 0===arguments[0]?1:arguments[0];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]?"vis-label":arguments[3];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<this.temporaryEventFunctions.length;t++){var e=this.temporaryEventFunctions[t].event,i=this.temporaryEventFunctions[t].boundFunction;this.body.emitter.off(e,i)}this.temporaryEventFunctions=[]}},{key:"_bindHammerToDiv",value:function(t,e){var i=new r(t,{});a.onTouch(i,e),this.manipulationHammers.push(i)}},{key:"_cleanupTemporaryNodesAndEdges",value:function(){for(var t=0;t<this.temporaryIds.edges.length;t++){this.body.edges[this.temporaryIds.edges[t]].disconnect(),delete this.body.edges[this.temporaryIds.edges[t]];var e=this.body.edgeIndices.indexOf(this.temporaryIds.edges[t]);-1!==e&&this.body.edgeIndices.splice(e,1)}for(var i=0;i<this.temporaryIds.nodes.length;i++){delete this.body.nodes[this.temporaryIds.nodes[i]];var o=this.body.nodeIndices.indexOf(this.temporaryIds.nodes[i]);-1!==o&&this.body.nodeIndices.splice(o,1)}this.temporaryIds={nodes:[],edges:[]}}},{key:"_controlNodeTouch",value:function(t){this.selectionHandler.unselectAll(),this.lastTouch=this.body.functions.getPointer(t.center),this.lastTouch.translation=s.extend({},this.body.view.translation)}},{key:"_controlNodeDragStart",value:function(t){var e=this.lastTouch,i=this.selectionHandler._pointerToPositionObject(e),o=this.body.nodes[this.temporaryIds.nodes[0]],n=this.body.nodes[this.temporaryIds.nodes[1]],s=this.body.edges[this.edgeBeingEditedId];this.selectedControlNode=void 0;var r=o.isOverlappingWith(i),a=n.isOverlappingWith(i);r===!0?(this.selectedControlNode=o,s.edgeType.from=o):a===!0&&(this.selectedControlNode=n,s.edgeType.to=n),void 0!==this.selectedControlNode&&this.selectionHandler.selectObject(this.selectedControlNode),this.body.emitter.emit("_redraw")}},{key:"_controlNodeDrag",value:function(t){this.body.emitter.emit("disablePhysics");var e=this.body.functions.getPointer(t.center),i=this.canvas.DOMtoCanvas(e);if(void 0!==this.selectedControlNode)this.selectedControlNode.x=i.x,this.selectedControlNode.y=i.y;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}}this.body.emitter.emit("_redraw")}},{key:"_controlNodeDragEnd",value:function(t){var e=this.body.functions.getPointer(t.center),i=this.selectionHandler._pointerToPositionObject(e),o=this.body.edges[this.edgeBeingEditedId];if(void 0!==this.selectedControlNode){this.selectionHandler.unselectAll();for(var n=this.selectionHandler._getAllNodesOverlappingWith(i),s=void 0,r=n.length-1;r>=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;i<e.length;i++){var o=e[i];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(t,o.key,o)}}return function(e,i,o){return i&&t(e.prototype,i),o&&t(e,o),e}}(),a=i(116),h=o(a),d=function(){function t(e,i,o){n(this,t),this.body=e,this.springLength=i,this.springConstant=o,this.distanceSolver=new h["default"]}return r(t,[{key:"setOptions",value:function(t){t&&(t.springLength&&(this.springLength=t.springLength),t.springConstant&&(this.springConstant=t.springConstant))}},{key:"solve",value:function(t,e){var i=arguments.length<=2||void 0===arguments[2]?!1: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&&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;h<e.length;h++){var d=e[h];if(i[d].predefinedPosition===!1||i[d].isCluster===!0&&t===!0||i[d].options.fixed.x===!0||i[d].options.fixed.y===!0){var l=this._getEnergy(d),c=s(l,3),u=c[0],p=c[1],f=c[2];u>o&&(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;a<e.length;a++){var h=e[a];if(h!==t){var d=i[h].x,l=i[h].y,c=1/Math.sqrt(Math.pow(o-d,2)+Math.pow(n-l,2));s+=this.K_matrix[t][h]*(o-d-this.L_matrix[t][h]*(o-d)*c),r+=this.K_matrix[t][h]*(n-l-this.L_matrix[t][h]*(n-l)*c)}}var u=Math.sqrt(Math.pow(s,2)+Math.pow(r,2));return[u,s,r]}},{key:"_moveNode",value:function(t,e,i){for(var o=this.body.nodeIndices,n=this.body.nodes,s=0,r=0,a=0,h=n[t].x,d=n[t].y,l=0;l<o.length;l++){var c=o[l];if(c!==t){var u=n[c].x,p=n[c].y,f=1/Math.pow(Math.pow(h-u,2)+Math.pow(d-p,2),1.5);s+=this.K_matrix[t][c]*(1-this.L_matrix[t][c]*Math.pow(d-p,2)*f),r+=this.K_matrix[t][c]*(this.L_matrix[t][c]*(h-u)*(d-p)*f),a+=this.K_matrix[t][c]*(1-this.L_matrix[t][c]*Math.pow(h-u,2)*f)}}var m=s,v=r,g=e,y=a,b=i,w=(g/m+b/v)/(v/m-y/v),_=-(v*w+g)/m;n[t].x+=_,n[t].y+=w}},{key:"_createL_matrix",value:function(t){var e=this.body.nodeIndices,i=this.springLength;this.L_matrix=[];for(var o=0;o<e.length;o++){this.L_matrix[e[o]]={};for(var n=0;n<e.length;n++)this.L_matrix[e[o]][e[n]]=i*t[e[o]][e[n]]}}},{key:"_createK_matrix",value:function(t){var e=this.body.nodeIndices,i=this.springConstant;this.K_matrix=[];for(var o=0;o<e.length;o++){this.K_matrix[e[o]]={};for(var n=0;n<e.length;n++)this.K_matrix[e[o]][e[n]]=i*Math.pow(t[e[o]][e[n]],-2)}}}]),t}();e["default"]=d},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;i<e.length;i++){var o=e[i];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(t,o.key,o)}}return function(e,i,o){return i&&t(e.prototype,i),o&&t(e,o),e}}(),n=function(){function t(){i(this,t)}return o(t,[{key:"getDistances",value:function(t,e,i){for(var o={},n=t.edges,s=0;s<e.length;s++){o[e[s]]={},o[e[s]]={};for(var r=0;r<e.length;r++)o[e[s]][e[r]]=s==r?0:1e9,o[e[s]][e[r]]=s==r?0:1e9}for(var a=0;a<i.length;a++){var h=n[i[a]];h.connected===!0&&void 0!==o[h.fromId]&&void 0!==o[h.toId]&&(o[h.fromId][h.toId]=1,o[h.toId][h.fromId]=1)}for(var d=e.length,l=0;d>l;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<o.length;r++){var a=o[r];a in s||(s[a]={}),s=s[a]}return s[n]=i,t}function M(t,e){var i={};for(var o in t)if(t.hasOwnProperty(o)){var n=e[o];Array.isArray(n)?n.forEach(function(e){O(i,e,t[o])}):"string"==typeof n?O(i,n,t[o]):O(i,o,t[o])}return i}function D(t){var e=i(t),o={nodes:[],edges:[],options:{}};if(e.nodes&&e.nodes.forEach(function(t){var e={id:t.id,label:String(t.label||t.id)};a(e,M(t.attr,S)),e.image&&(e.shape="image"),o.nodes.push(e)}),e.edges){var n=function(t){var e={from:t.from,to:t.to};return a(e,M(t.attr,C)),e.arrows="->"===t.type?"to":void 0,e};e.edges.forEach(function(t){var e,i;e=t.from instanceof Object?t.from.nodes:{id:t.from},i=t.to instanceof Object?t.to.nodes:{id:t.to},t.from instanceof Object&&t.from.edges&&t.from.edges.forEach(function(t){var e=n(t);o.edges.push(e)}),k(e,i,function(e,i){var s=c(o,e.id,i.id,t.type,t.attr),r=n(s);o.edges.push(r)}),t.to instanceof Object&&t.to.edges&&t.to.edges.forEach(function(t){var e=n(t);o.edges.push(e)})})}return e.attr&&(o.options=e.attr),o}var S={fontsize:"font.size",fontcolor:"font.color",labelfontcolor:"font.color",fontname:"font.face",color:["color.border","color.background"],fillcolor:"color.background",tooltip:"title",labeltooltip:"title"},C=Object.create(S);C.color="color.color";var T={NULL:0,DELIMITER:1,IDENTIFIER:2,UNKNOWN:3},E={"{":!0,"}":!0,"[":!0,"]":!0,";":!0,"=":!0,",":!0,"->":!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;a<s.length;a++){var h={},d=s[a];h.id=d.id,h.from=d.source,h.to=d.target,h.attributes=d.attributes,h.label=d.label,h.title=void 0!==d.attributes?d.attributes.title:void 0,"Directed"===d.type&&(h.arrows="to"),d.color&&n.inheritColor===!1&&(h.color=d.color),i.push(h)}for(var a=0;a<r.length;a++){var l={},c=r[a];l.id=c.id,l.attributes=c.attributes,l.title=c.title,l.x=c.x,l.y=c.y,l.label=c.label,l.title=void 0!==c.attributes?c.attributes.title:void 0,n.nodes.parseColor===!0?l.color=c.color:l.color=void 0!==c.color?{background:c.color,border:c.color,highlight:{background:c.color,border:c.color},hover:{background:c.color,border:c.color}}:void 0,l.size=c.size,l.fixed=n.nodes.fixed&&void 0!==c.x&&void 0!==c.y,o.push(l)}return{nodes:o,edges:i}}e.parseGephi=i},function(t,e){e.en={edit:"Edit",del:"Delete selected",back:"Back",addNode:"Add Node",addEdge:"Add Edge",editNode:"Edit Node",editEdge:"Edit Edge",addDescription:"Click in an empty space to place a new node.",edgeDescription:"Click on a node and drag the edge to another node to connect them.",editEdgeDescription:"Click on the control points and drag them to a node to connect to it.",createEdgeError:"Cannot link edges to a cluster.",deleteClusterError:"Clusters cannot be deleted.",editClusterError:"Clusters cannot be edited."},e.en_EN=e.en,e.en_US=e.en,e.de={edit:"Editieren",del:"Lösche Auswahl",back:"Zurück",addNode:"Knoten hinzufügen",addEdge:"Kante hinzufügen",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."},e.de_DE=e.de,e.es={edit:"Editar",del:"Eliminar selección",back:"Átras",addNode:"Añadir nodo",addEdge:"Añadir arista",editNode:"Editar nodo",editEdge:"Editar arista",addDescription:"Haga clic en un lugar vacío 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.",deleteClusterError:"No es posible eliminar grupos.",editClusterError:"No es posible editar grupos."},e.es_ES=e.es,e.nl={edit:"Wijzigen",del:"Selectie verwijderen",back:"Terug",addNode:"Node toevoegen",addEdge:"Link toevoegen",editNode:"Node wijzigen",editEdge:"Link wijzigen",addDescription:"Klik op een leeg gebied om een nieuwe node te maken.",edgeDescription:"Klik op een node en sleep de link naar een andere node om ze te verbinden.",editEdgeDescription:"Klik op de verbindingspunten en sleep ze naar een node om daarmee te verbinden.",createEdgeError:"Kan geen link maken naar een cluster.",deleteClusterError:"Clusters kunnen niet worden verwijderd.",editClusterError:"Clusters kunnen niet worden aangepast."},e.nl_NL=e.nl,e.nl_BE=e.nl}])});
//# sourceMappingURL=vis.map