@abi-software/map-utilities 1.3.2 → 1.3.3-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,4 +1,4 @@
1
- (function(Re,o){typeof exports=="object"&&typeof module<"u"?o(exports,require("vue")):typeof define=="function"&&define.amd?define(["exports","vue"],o):(Re=typeof globalThis<"u"?globalThis:Re||self,o(Re.MapUtilities={},Re.Vue))})(this,function(Re,o){"use strict";var KP=Object.defineProperty;var qP=(Re,o,Ft)=>o in Re?KP(Re,o,{enumerable:!0,configurable:!0,writable:!0,value:Ft}):Re[o]=Ft;var mn=(Re,o,Ft)=>qP(Re,typeof o!="symbol"?o+"":o,Ft);const Ft=(t,e,{checkForDefaultPrevented:n=!0}={})=>a=>{const i=t==null?void 0:t(a);if(n===!1||!i)return e==null?void 0:e(a)};var Gc;const et=typeof window<"u",Tg=t=>typeof t=="string",Wc=()=>{},Ps=et&&((Gc=window==null?void 0:window.navigator)==null?void 0:Gc.userAgent)&&/iP(ad|hone|od)/.test(window.navigator.userAgent);function jc(t){return typeof t=="function"?t():o.unref(t)}function Bg(t){return t}function Yi(t){return o.getCurrentScope()?(o.onScopeDispose(t),!0):!1}function Ng(t,e=!0){o.getCurrentInstance()?o.onMounted(t):e?t():o.nextTick(t)}function _n(t){var e;const n=jc(t);return(e=n==null?void 0:n.$el)!=null?e:n}const Zi=et?window:void 0;function jt(...t){let e,n,r,a;if(Tg(t[0])||Array.isArray(t[0])?([n,r,a]=t,e=Zi):[e,n,r,a]=t,!e)return Wc;Array.isArray(n)||(n=[n]),Array.isArray(r)||(r=[r]);const i=[],s=()=>{i.forEach(d=>d()),i.length=0},l=(d,f,p,v)=>(d.addEventListener(f,p,v),()=>d.removeEventListener(f,p,v)),c=o.watch(()=>[_n(e),jc(a)],([d,f])=>{s(),d&&i.push(...n.flatMap(p=>r.map(v=>l(d,p,v,f))))},{immediate:!0,flush:"post"}),u=()=>{c(),s()};return Yi(u),u}let Yc=!1;function Dg(t,e,n={}){const{window:r=Zi,ignore:a=[],capture:i=!0,detectIframe:s=!1}=n;if(!r)return;Ps&&!Yc&&(Yc=!0,Array.from(r.document.body.children).forEach(p=>p.addEventListener("click",Wc)));let l=!0;const c=p=>a.some(v=>{if(typeof v=="string")return Array.from(r.document.querySelectorAll(v)).some(h=>h===p.target||p.composedPath().includes(h));{const h=_n(v);return h&&(p.target===h||p.composedPath().includes(h))}}),d=[jt(r,"click",p=>{const v=_n(t);if(!(!v||v===p.target||p.composedPath().includes(v))){if(p.detail===0&&(l=!c(p)),!l){l=!0;return}e(p)}},{passive:!0,capture:i}),jt(r,"pointerdown",p=>{const v=_n(t);v&&(l=!p.composedPath().includes(v)&&!c(p))},{passive:!0}),s&&jt(r,"blur",p=>{var v;const h=_n(t);((v=r.document.activeElement)==null?void 0:v.tagName)==="IFRAME"&&!(h!=null&&h.contains(r.document.activeElement))&&e(p)})].filter(Boolean);return()=>d.forEach(p=>p())}function Zc(t,e=!1){const n=o.ref(),r=()=>n.value=!!t();return r(),Ng(r,e),n}const Xc=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{},Qc="__vueuse_ssr_handlers__";Xc[Qc]=Xc[Qc]||{};var Jc=Object.getOwnPropertySymbols,_g=Object.prototype.hasOwnProperty,Pg=Object.prototype.propertyIsEnumerable,Og=(t,e)=>{var n={};for(var r in t)_g.call(t,r)&&e.indexOf(r)<0&&(n[r]=t[r]);if(t!=null&&Jc)for(var r of Jc(t))e.indexOf(r)<0&&Pg.call(t,r)&&(n[r]=t[r]);return n};function Pn(t,e,n={}){const r=n,{window:a=Zi}=r,i=Og(r,["window"]);let s;const l=Zc(()=>a&&"ResizeObserver"in a),c=()=>{s&&(s.disconnect(),s=void 0)},u=o.watch(()=>_n(t),f=>{c(),l.value&&a&&f&&(s=new ResizeObserver(e),s.observe(f,i))},{immediate:!0,flush:"post"}),d=()=>{c(),u()};return Yi(d),{isSupported:l,stop:d}}var eu=Object.getOwnPropertySymbols,Ig=Object.prototype.hasOwnProperty,Lg=Object.prototype.propertyIsEnumerable,Mg=(t,e)=>{var n={};for(var r in t)Ig.call(t,r)&&e.indexOf(r)<0&&(n[r]=t[r]);if(t!=null&&eu)for(var r of eu(t))e.indexOf(r)<0&&Lg.call(t,r)&&(n[r]=t[r]);return n};function Fg(t,e,n={}){const r=n,{window:a=Zi}=r,i=Mg(r,["window"]);let s;const l=Zc(()=>a&&"MutationObserver"in a),c=()=>{s&&(s.disconnect(),s=void 0)},u=o.watch(()=>_n(t),f=>{c(),l.value&&a&&f&&(s=new MutationObserver(e),s.observe(f,i))},{immediate:!0}),d=()=>{c(),u()};return Yi(d),{isSupported:l,stop:d}}var tu;(function(t){t.UP="UP",t.RIGHT="RIGHT",t.DOWN="DOWN",t.LEFT="LEFT",t.NONE="NONE"})(tu||(tu={}));var Ag=Object.defineProperty,nu=Object.getOwnPropertySymbols,Vg=Object.prototype.hasOwnProperty,Rg=Object.prototype.propertyIsEnumerable,ru=(t,e,n)=>e in t?Ag(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n,$g=(t,e)=>{for(var n in e||(e={}))Vg.call(e,n)&&ru(t,n,e[n]);if(nu)for(var n of nu(e))Rg.call(e,n)&&ru(t,n,e[n]);return t};$g({linear:Bg},{easeInSine:[.12,0,.39,0],easeOutSine:[.61,1,.88,1],easeInOutSine:[.37,0,.63,1],easeInQuad:[.11,0,.5,0],easeOutQuad:[.5,1,.89,1],easeInOutQuad:[.45,0,.55,1],easeInCubic:[.32,0,.67,0],easeOutCubic:[.33,1,.68,1],easeInOutCubic:[.65,0,.35,1],easeInQuart:[.5,0,.75,0],easeOutQuart:[.25,1,.5,1],easeInOutQuart:[.76,0,.24,1],easeInQuint:[.64,0,.78,0],easeOutQuint:[.22,1,.36,1],easeInOutQuint:[.83,0,.17,1],easeInExpo:[.7,0,.84,0],easeOutExpo:[.16,1,.3,1],easeInOutExpo:[.87,0,.13,1],easeInCirc:[.55,0,1,.45],easeOutCirc:[0,.55,.45,1],easeInOutCirc:[.85,0,.15,1],easeInBack:[.36,0,.66,-.56],easeOutBack:[.34,1.56,.64,1],easeInOutBack:[.68,-.6,.32,1.6]});const zg=()=>et&&/firefox/i.test(window.navigator.userAgent),Os=t=>{let e,n;return t.type==="touchend"?(n=t.changedTouches[0].clientY,e=t.changedTouches[0].clientX):t.type.startsWith("touch")?(n=t.touches[0].clientY,e=t.touches[0].clientX):(n=t.clientY,e=t.clientX),{clientX:e,clientY:n}};/**
1
+ (function(Re,o){typeof exports=="object"&&typeof module<"u"?o(exports,require("vue")):typeof define=="function"&&define.amd?define(["exports","vue"],o):(Re=typeof globalThis<"u"?globalThis:Re||self,o(Re.MapUtilities={},Re.Vue))})(this,function(Re,o){"use strict";var qP=Object.defineProperty;var UP=(Re,o,Ft)=>o in Re?qP(Re,o,{enumerable:!0,configurable:!0,writable:!0,value:Ft}):Re[o]=Ft;var mn=(Re,o,Ft)=>UP(Re,typeof o!="symbol"?o+"":o,Ft);const Ft=(t,e,{checkForDefaultPrevented:n=!0}={})=>a=>{const i=t==null?void 0:t(a);if(n===!1||!i)return e==null?void 0:e(a)};var Gc;const et=typeof window<"u",Tg=t=>typeof t=="string",Wc=()=>{},Ps=et&&((Gc=window==null?void 0:window.navigator)==null?void 0:Gc.userAgent)&&/iP(ad|hone|od)/.test(window.navigator.userAgent);function jc(t){return typeof t=="function"?t():o.unref(t)}function Bg(t){return t}function Yi(t){return o.getCurrentScope()?(o.onScopeDispose(t),!0):!1}function Ng(t,e=!0){o.getCurrentInstance()?o.onMounted(t):e?t():o.nextTick(t)}function _n(t){var e;const n=jc(t);return(e=n==null?void 0:n.$el)!=null?e:n}const Zi=et?window:void 0;function jt(...t){let e,n,r,a;if(Tg(t[0])||Array.isArray(t[0])?([n,r,a]=t,e=Zi):[e,n,r,a]=t,!e)return Wc;Array.isArray(n)||(n=[n]),Array.isArray(r)||(r=[r]);const i=[],s=()=>{i.forEach(d=>d()),i.length=0},l=(d,f,p,v)=>(d.addEventListener(f,p,v),()=>d.removeEventListener(f,p,v)),c=o.watch(()=>[_n(e),jc(a)],([d,f])=>{s(),d&&i.push(...n.flatMap(p=>r.map(v=>l(d,p,v,f))))},{immediate:!0,flush:"post"}),u=()=>{c(),s()};return Yi(u),u}let Yc=!1;function Dg(t,e,n={}){const{window:r=Zi,ignore:a=[],capture:i=!0,detectIframe:s=!1}=n;if(!r)return;Ps&&!Yc&&(Yc=!0,Array.from(r.document.body.children).forEach(p=>p.addEventListener("click",Wc)));let l=!0;const c=p=>a.some(v=>{if(typeof v=="string")return Array.from(r.document.querySelectorAll(v)).some(h=>h===p.target||p.composedPath().includes(h));{const h=_n(v);return h&&(p.target===h||p.composedPath().includes(h))}}),d=[jt(r,"click",p=>{const v=_n(t);if(!(!v||v===p.target||p.composedPath().includes(v))){if(p.detail===0&&(l=!c(p)),!l){l=!0;return}e(p)}},{passive:!0,capture:i}),jt(r,"pointerdown",p=>{const v=_n(t);v&&(l=!p.composedPath().includes(v)&&!c(p))},{passive:!0}),s&&jt(r,"blur",p=>{var v;const h=_n(t);((v=r.document.activeElement)==null?void 0:v.tagName)==="IFRAME"&&!(h!=null&&h.contains(r.document.activeElement))&&e(p)})].filter(Boolean);return()=>d.forEach(p=>p())}function Zc(t,e=!1){const n=o.ref(),r=()=>n.value=!!t();return r(),Ng(r,e),n}const Xc=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{},Qc="__vueuse_ssr_handlers__";Xc[Qc]=Xc[Qc]||{};var Jc=Object.getOwnPropertySymbols,_g=Object.prototype.hasOwnProperty,Pg=Object.prototype.propertyIsEnumerable,Og=(t,e)=>{var n={};for(var r in t)_g.call(t,r)&&e.indexOf(r)<0&&(n[r]=t[r]);if(t!=null&&Jc)for(var r of Jc(t))e.indexOf(r)<0&&Pg.call(t,r)&&(n[r]=t[r]);return n};function Pn(t,e,n={}){const r=n,{window:a=Zi}=r,i=Og(r,["window"]);let s;const l=Zc(()=>a&&"ResizeObserver"in a),c=()=>{s&&(s.disconnect(),s=void 0)},u=o.watch(()=>_n(t),f=>{c(),l.value&&a&&f&&(s=new ResizeObserver(e),s.observe(f,i))},{immediate:!0,flush:"post"}),d=()=>{c(),u()};return Yi(d),{isSupported:l,stop:d}}var eu=Object.getOwnPropertySymbols,Ig=Object.prototype.hasOwnProperty,Lg=Object.prototype.propertyIsEnumerable,Mg=(t,e)=>{var n={};for(var r in t)Ig.call(t,r)&&e.indexOf(r)<0&&(n[r]=t[r]);if(t!=null&&eu)for(var r of eu(t))e.indexOf(r)<0&&Lg.call(t,r)&&(n[r]=t[r]);return n};function Fg(t,e,n={}){const r=n,{window:a=Zi}=r,i=Mg(r,["window"]);let s;const l=Zc(()=>a&&"MutationObserver"in a),c=()=>{s&&(s.disconnect(),s=void 0)},u=o.watch(()=>_n(t),f=>{c(),l.value&&a&&f&&(s=new MutationObserver(e),s.observe(f,i))},{immediate:!0}),d=()=>{c(),u()};return Yi(d),{isSupported:l,stop:d}}var tu;(function(t){t.UP="UP",t.RIGHT="RIGHT",t.DOWN="DOWN",t.LEFT="LEFT",t.NONE="NONE"})(tu||(tu={}));var Ag=Object.defineProperty,nu=Object.getOwnPropertySymbols,Vg=Object.prototype.hasOwnProperty,Rg=Object.prototype.propertyIsEnumerable,ru=(t,e,n)=>e in t?Ag(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n,$g=(t,e)=>{for(var n in e||(e={}))Vg.call(e,n)&&ru(t,n,e[n]);if(nu)for(var n of nu(e))Rg.call(e,n)&&ru(t,n,e[n]);return t};$g({linear:Bg},{easeInSine:[.12,0,.39,0],easeOutSine:[.61,1,.88,1],easeInOutSine:[.37,0,.63,1],easeInQuad:[.11,0,.5,0],easeOutQuad:[.5,1,.89,1],easeInOutQuad:[.45,0,.55,1],easeInCubic:[.32,0,.67,0],easeOutCubic:[.33,1,.68,1],easeInOutCubic:[.65,0,.35,1],easeInQuart:[.5,0,.75,0],easeOutQuart:[.25,1,.5,1],easeInOutQuart:[.76,0,.24,1],easeInQuint:[.64,0,.78,0],easeOutQuint:[.22,1,.36,1],easeInOutQuint:[.83,0,.17,1],easeInExpo:[.7,0,.84,0],easeOutExpo:[.16,1,.3,1],easeInOutExpo:[.87,0,.13,1],easeInCirc:[.55,0,1,.45],easeOutCirc:[0,.55,.45,1],easeInOutCirc:[.85,0,.15,1],easeInBack:[.36,0,.66,-.56],easeOutBack:[.34,1.56,.64,1],easeInOutBack:[.68,-.6,.32,1.6]});const zg=()=>et&&/firefox/i.test(window.navigator.userAgent),Os=t=>{let e,n;return t.type==="touchend"?(n=t.changedTouches[0].clientY,e=t.changedTouches[0].clientX):t.type.startsWith("touch")?(n=t.touches[0].clientY,e=t.touches[0].clientX):(n=t.clientY,e=t.clientX),{clientX:e,clientY:n}};/**
2
2
  * @vue/shared v3.4.27
3
3
  * (c) 2018-present Yuxi (Evan) You and Vue contributors
4
4
  * @license MIT
@@ -41,18 +41,18 @@ Licensed under The MIT License (http://opensource.org/licenses/MIT)
41
41
  */var yp=function(e,n){this.recycle(e,n)};function Ai(){return!1}function is(){return!0}yp.prototype={instanceString:function(){return"event"},recycle:function(e,n){if(this.isImmediatePropagationStopped=this.isPropagationStopped=this.isDefaultPrevented=Ai,e!=null&&e.preventDefault?(this.type=e.type,this.isDefaultPrevented=e.defaultPrevented?is:Ai):e!=null&&e.type?n=e:this.type=e,n!=null&&(this.originalEvent=n.originalEvent,this.type=n.type!=null?n.type:this.type,this.cy=n.cy,this.target=n.target,this.position=n.position,this.renderedPosition=n.renderedPosition,this.namespace=n.namespace,this.layout=n.layout),this.cy!=null&&this.position!=null&&this.renderedPosition==null){var r=this.position,a=this.cy.zoom(),i=this.cy.pan();this.renderedPosition={x:r.x*a+i.x,y:r.y*a+i.y}}this.timeStamp=e&&e.timeStamp||Date.now()},preventDefault:function(){this.isDefaultPrevented=is;var e=this.originalEvent;e&&e.preventDefault&&e.preventDefault()},stopPropagation:function(){this.isPropagationStopped=is;var e=this.originalEvent;e&&e.stopPropagation&&e.stopPropagation()},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=is,this.stopPropagation()},isDefaultPrevented:Ai,isPropagationStopped:Ai,isImmediatePropagationStopped:Ai};var bp=/^([^.]+)(\.(?:[^.]+))?$/,N4=".*",wp={qualifierCompare:function(e,n){return e===n},eventMatches:function(){return!0},addEventFields:function(){},callbackContext:function(e){return e},beforeEmit:function(){},afterEmit:function(){},bubble:function(){return!1},parent:function(){return null},context:null},Cp=Object.keys(wp),D4={};function os(){for(var t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:D4,e=arguments.length>1?arguments[1]:void 0,n=0;n<Cp.length;n++){var r=Cp[n];this[r]=t[r]||wp[r]}this.context=e||this.context,this.listeners=[],this.emitting=0}var pr=os.prototype,kp=function(e,n,r,a,i,s,l){Ye(a)&&(i=a,a=null),l&&(s==null?s=l:s=xe({},s,l));for(var c=Ke(r)?r:r.split(/\s+/),u=0;u<c.length;u++){var d=c[u];if(!ar(d)){var f=d.match(bp);if(f){var p=f[1],v=f[2]?f[2]:null,h=n(e,d,p,v,a,i,s);if(h===!1)break}}}},xp=function(e,n){return e.addEventFields(e.context,n),new yp(n.type,n)},_4=function(e,n,r){if(ZE(r)){n(e,r);return}else if(Oe(r)){n(e,xp(e,r));return}for(var a=Ke(r)?r:r.split(/\s+/),i=0;i<a.length;i++){var s=a[i];if(!ar(s)){var l=s.match(bp);if(l){var c=l[1],u=l[2]?l[2]:null,d=xp(e,{type:c,namespace:u,target:e.context});n(e,d)}}}};pr.on=pr.addListener=function(t,e,n,r,a){return kp(this,function(i,s,l,c,u,d,f){Ye(d)&&i.listeners.push({event:s,callback:d,type:l,namespace:c,qualifier:u,conf:f})},t,e,n,r,a),this},pr.one=function(t,e,n,r){return this.on(t,e,n,r,{one:!0})},pr.removeListener=pr.off=function(t,e,n,r){var a=this;this.emitting!==0&&(this.listeners=iT(this.listeners));for(var i=this.listeners,s=function(u){var d=i[u];kp(a,function(f,p,v,h,g,y){if((d.type===v||t==="*")&&(!h&&d.namespace!==".*"||d.namespace===h)&&(!g||f.qualifierCompare(d.qualifier,g))&&(!y||d.callback===y))return i.splice(u,1),!1},t,e,n,r)},l=i.length-1;l>=0;l--)s(l);return this},pr.removeAllListeners=function(){return this.removeListener("*")},pr.emit=pr.trigger=function(t,e,n){var r=this.listeners,a=r.length;return this.emitting++,Ke(e)||(e=[e]),_4(this,function(i,s){n!=null&&(r=[{event:s.event,type:s.type,namespace:s.namespace,callback:n}],a=r.length);for(var l=function(d){var f=r[d];if(f.type===s.type&&(!f.namespace||f.namespace===s.namespace||f.namespace===N4)&&i.eventMatches(i.context,f,s)){var p=[s];e!=null&&sT(p,e),i.beforeEmit(i.context,f,s),f.conf&&f.conf.one&&(i.listeners=i.listeners.filter(function(g){return g!==f}));var v=i.callbackContext(i.context,f,s),h=f.callback.apply(v,p);i.afterEmit(i.context,f,s),h===!1&&(s.stopPropagation(),s.preventDefault())}},c=0;c<a;c++)l(c);i.bubble(i.context)&&!s.isPropagationStopped()&&i.parent(i.context).emit(s,e)},t),this.emitting--,this};var P4={qualifierCompare:function(e,n){return e==null||n==null?e==null&&n==null:e.sameText(n)},eventMatches:function(e,n,r){var a=n.qualifier;return a!=null?e!==r.target&&mi(r.target)&&a.matches(r.target):!0},addEventFields:function(e,n){n.cy=e.cy(),n.target=e},callbackContext:function(e,n,r){return n.qualifier!=null?r.target:e},beforeEmit:function(e,n){n.conf&&n.conf.once&&n.conf.onceCollection.removeListener(n.event,n.qualifier,n.callback)},bubble:function(){return!0},parent:function(e){return e.isChild()?e.parent():e.cy()}},ss=function(e){return be(e)?new ur(e):e},Ep={createEmitter:function(){for(var e=0;e<this.length;e++){var n=this[e],r=n._private;r.emitter||(r.emitter=new os(P4,n))}return this},emitter:function(){return this._private.emitter},on:function(e,n,r){for(var a=ss(n),i=0;i<this.length;i++){var s=this[i];s.emitter().on(e,a,r)}return this},removeListener:function(e,n,r){for(var a=ss(n),i=0;i<this.length;i++){var s=this[i];s.emitter().removeListener(e,a,r)}return this},removeAllListeners:function(){for(var e=0;e<this.length;e++){var n=this[e];n.emitter().removeAllListeners()}return this},one:function(e,n,r){for(var a=ss(n),i=0;i<this.length;i++){var s=this[i];s.emitter().one(e,a,r)}return this},once:function(e,n,r){for(var a=ss(n),i=0;i<this.length;i++){var s=this[i];s.emitter().on(e,a,r,{once:!0,onceCollection:this})}},emit:function(e,n){for(var r=0;r<this.length;r++){var a=this[r];a.emitter().emit(e,n)}return this},emitAndNotify:function(e,n){if(this.length!==0)return this.cy().notify(e,this),this.emit(e,n),this}};Ve.eventAliasesOn(Ep);var Sp={nodes:function(e){return this.filter(function(n){return n.isNode()}).filter(e)},edges:function(e){return this.filter(function(n){return n.isEdge()}).filter(e)},byGroup:function(){for(var e=this.spawn(),n=this.spawn(),r=0;r<this.length;r++){var a=this[r];a.isNode()?e.push(a):n.push(a)}return{nodes:e,edges:n}},filter:function(e,n){if(e===void 0)return this;if(be(e)||Ut(e))return new ur(e).filter(this);if(Ye(e)){for(var r=this.spawn(),a=this,i=0;i<a.length;i++){var s=a[i],l=n?e.apply(n,[s,i,a]):e(s,i,a);l&&r.push(s)}return r}return this.spawn()},not:function(e){if(e){be(e)&&(e=this.filter(e));for(var n=this.spawn(),r=0;r<this.length;r++){var a=this[r],i=e.has(a);i||n.push(a)}return n}else return this},absoluteComplement:function(){var e=this.cy();return e.mutableElements().not(this)},intersect:function(e){if(be(e)){var n=e;return this.filter(n)}for(var r=this.spawn(),a=this,i=e,s=this.length<e.length,l=s?a:i,c=s?i:a,u=0;u<l.length;u++){var d=l[u];c.has(d)&&r.push(d)}return r},xor:function(e){var n=this._private.cy;be(e)&&(e=n.$(e));var r=this.spawn(),a=this,i=e,s=function(c,u){for(var d=0;d<c.length;d++){var f=c[d],p=f._private.data.id,v=u.hasElementWithId(p);v||r.push(f)}};return s(a,i),s(i,a),r},diff:function(e){var n=this._private.cy;be(e)&&(e=n.$(e));var r=this.spawn(),a=this.spawn(),i=this.spawn(),s=this,l=e,c=function(d,f,p){for(var v=0;v<d.length;v++){var h=d[v],g=h._private.data.id,y=f.hasElementWithId(g);y?i.merge(h):p.push(h)}};return c(s,l,r),c(l,s,a),{left:r,right:a,both:i}},add:function(e){var n=this._private.cy;if(!e)return this;if(be(e)){var r=e;e=n.mutableElements().filter(r)}for(var a=this.spawnSelf(),i=0;i<e.length;i++){var s=e[i],l=!this.has(s);l&&a.push(s)}return a},merge:function(e){var n=this._private,r=n.cy;if(!e)return this;if(e&&be(e)){var a=e;e=r.mutableElements().filter(a)}for(var i=n.map,s=0;s<e.length;s++){var l=e[s],c=l._private.data.id,u=!i.has(c);if(u){var d=this.length++;this[d]=l,i.set(c,{ele:l,index:d})}}return this},unmergeAt:function(e){var n=this[e],r=n.id(),a=this._private,i=a.map;this[e]=void 0,i.delete(r);var s=e===this.length-1;if(this.length>1&&!s){var l=this.length-1,c=this[l],u=c._private.data.id;this[l]=void 0,this[e]=c,i.set(u,{ele:c,index:e})}return this.length--,this},unmergeOne:function(e){e=e[0];var n=this._private,r=e._private.data.id,a=n.map,i=a.get(r);if(!i)return this;var s=i.index;return this.unmergeAt(s),this},unmerge:function(e){var n=this._private.cy;if(!e)return this;if(e&&be(e)){var r=e;e=n.mutableElements().filter(r)}for(var a=0;a<e.length;a++)this.unmergeOne(e[a]);return this},unmergeBy:function(e){for(var n=this.length-1;n>=0;n--){var r=this[n];e(r)&&this.unmergeAt(n)}return this},map:function(e,n){for(var r=[],a=this,i=0;i<a.length;i++){var s=a[i],l=n?e.apply(n,[s,i,a]):e(s,i,a);r.push(l)}return r},reduce:function(e,n){for(var r=n,a=this,i=0;i<a.length;i++)r=e(r,a[i],i,a);return r},max:function(e,n){for(var r=-1/0,a,i=this,s=0;s<i.length;s++){var l=i[s],c=n?e.apply(n,[l,s,i]):e(l,s,i);c>r&&(r=c,a=l)}return{value:r,ele:a}},min:function(e,n){for(var r=1/0,a,i=this,s=0;s<i.length;s++){var l=i[s],c=n?e.apply(n,[l,s,i]):e(l,s,i);c<r&&(r=c,a=l)}return{value:r,ele:a}}},Le=Sp;Le.u=Le["|"]=Le["+"]=Le.union=Le.or=Le.add,Le["\\"]=Le["!"]=Le["-"]=Le.difference=Le.relativeComplement=Le.subtract=Le.not,Le.n=Le["&"]=Le["."]=Le.and=Le.intersection=Le.intersect,Le["^"]=Le["(+)"]=Le["(-)"]=Le.symmetricDifference=Le.symdiff=Le.xor,Le.fnFilter=Le.filterFn=Le.stdFilter=Le.filter,Le.complement=Le.abscomp=Le.absoluteComplement;var O4={isNode:function(){return this.group()==="nodes"},isEdge:function(){return this.group()==="edges"},isLoop:function(){return this.isEdge()&&this.source()[0]===this.target()[0]},isSimple:function(){return this.isEdge()&&this.source()[0]!==this.target()[0]},group:function(){var e=this[0];if(e)return e._private.group}},Tp=function(e,n){var r=e.cy(),a=r.hasCompoundNodes();function i(d){var f=d.pstyle("z-compound-depth");return f.value==="auto"?a?d.zDepth():0:f.value==="bottom"?-1:f.value==="top"?Ul:0}var s=i(e)-i(n);if(s!==0)return s;function l(d){var f=d.pstyle("z-index-compare");return f.value==="auto"&&d.isNode()?1:0}var c=l(e)-l(n);if(c!==0)return c;var u=e.pstyle("z-index").value-n.pstyle("z-index").value;return u!==0?u:e.poolIndex()-n.poolIndex()},ls={forEach:function(e,n){if(Ye(e))for(var r=this.length,a=0;a<r;a++){var i=this[a],s=n?e.apply(n,[i,a,this]):e(i,a,this);if(s===!1)break}return this},toArray:function(){for(var e=[],n=0;n<this.length;n++)e.push(this[n]);return e},slice:function(e,n){var r=[],a=this.length;n==null&&(n=a),e==null&&(e=0),e<0&&(e=a+e),n<0&&(n=a+n);for(var i=e;i>=0&&i<n&&i<a;i++)r.push(this[i]);return this.spawn(r)},size:function(){return this.length},eq:function(e){return this[e]||this.spawn()},first:function(){return this[0]||this.spawn()},last:function(){return this[this.length-1]||this.spawn()},empty:function(){return this.length===0},nonempty:function(){return!this.empty()},sort:function(e){if(!Ye(e))return this;var n=this.toArray().sort(e);return this.spawn(n)},sortByZIndex:function(){return this.sort(Tp)},zDepth:function(){var e=this[0];if(e){var n=e._private,r=n.group;if(r==="nodes"){var a=n.data.parent?e.parents().size():0;return e.isParent()?a:Ul-1}else{var i=n.source,s=n.target,l=i.zDepth(),c=s.zDepth();return Math.max(l,c,0)}}}};ls.each=ls.forEach;var I4=function(){var e="undefined",n=(typeof Symbol>"u"?"undefined":ot(Symbol))!=e&&ot(Symbol.iterator)!=e;n&&(ls[Symbol.iterator]=function(){var r=this,a={value:void 0,done:!1},i=0,s=this.length;return Rf({next:function(){return i<s?a.value=r[i++]:(a.value=void 0,a.done=!0),a}},Symbol.iterator,function(){return this})})};I4();var L4=wt({nodeDimensionsIncludeLabels:!1}),cs={layoutDimensions:function(e){e=L4(e);var n;if(!this.takesUpSpace())n={w:0,h:0};else if(e.nodeDimensionsIncludeLabels){var r=this.boundingBox();n={w:r.w,h:r.h}}else n={w:this.outerWidth(),h:this.outerHeight()};return(n.w===0||n.h===0)&&(n.w=n.h=1),n},layoutPositions:function(e,n,r){var a=this.nodes().filter(function(k){return!k.isParent()}),i=this.cy(),s=n.eles,l=function(E){return E.id()},c=yi(r,l);e.emit({type:"layoutstart",layout:e}),e.animations=[];var u=function(E,x,B){var S={x:x.x1+x.w/2,y:x.y1+x.h/2},N={x:(B.x-S.x)*E,y:(B.y-S.y)*E};return{x:S.x+N.x,y:S.y+N.y}},d=n.spacingFactor&&n.spacingFactor!==1,f=function(){if(!d)return null;for(var E=zt(),x=0;x<a.length;x++){var B=a[x],S=c(B,x);MT(E,S.x,S.y)}return E},p=f(),v=yi(function(k,E){var x=c(k,E);if(d){var B=Math.abs(n.spacingFactor);x=u(B,p,x)}return n.transform!=null&&(x=n.transform(k,x)),x},l);if(n.animate){for(var h=0;h<a.length;h++){var g=a[h],y=v(g,h),m=n.animateFilter==null||n.animateFilter(g,h);if(m){var b=g.animation({position:y,duration:n.animationDuration,easing:n.animationEasing});e.animations.push(b)}else g.position(y)}if(n.fit){var w=i.animation({fit:{boundingBox:s.boundingBoxAt(v),padding:n.padding},duration:n.animationDuration,easing:n.animationEasing});e.animations.push(w)}else if(n.zoom!==void 0&&n.pan!==void 0){var C=i.animation({zoom:n.zoom,pan:n.pan,duration:n.animationDuration,easing:n.animationEasing});e.animations.push(C)}e.animations.forEach(function(k){return k.play()}),e.one("layoutready",n.ready),e.emit({type:"layoutready",layout:e}),xa.all(e.animations.map(function(k){return k.promise()})).then(function(){e.one("layoutstop",n.stop),e.emit({type:"layoutstop",layout:e})})}else a.positions(v),n.fit&&i.fit(n.eles,n.padding),n.zoom!=null&&i.zoom(n.zoom),n.pan&&i.pan(n.pan),e.one("layoutready",n.ready),e.emit({type:"layoutready",layout:e}),e.one("layoutstop",n.stop),e.emit({type:"layoutstop",layout:e});return this},layout:function(e){var n=this.cy();return n.makeLayout(xe({},e,{eles:this}))}};cs.createLayout=cs.makeLayout=cs.layout;function Bp(t,e,n){var r=n._private,a=r.styleCache=r.styleCache||[],i;return(i=a[t])!=null||(i=a[t]=e(n)),i}function us(t,e){return t=Mr(t),function(r){return Bp(t,e,r)}}function ds(t,e){t=Mr(t);var n=function(a){return e.call(a)};return function(){var a=this[0];if(a)return Bp(t,n,a)}}var Ct={recalculateRenderedStyle:function(e){var n=this.cy(),r=n.renderer(),a=n.styleEnabled();return r&&a&&r.recalculateRenderedStyle(this,e),this},dirtyStyleCache:function(){var e=this.cy(),n=function(i){return i._private.styleCache=null};if(e.hasCompoundNodes()){var r;r=this.spawnSelf().merge(this.descendants()).merge(this.parents()),r.merge(r.connectedEdges()),r.forEach(n)}else this.forEach(function(a){n(a),a.connectedEdges().forEach(n)});return this},updateStyle:function(e){var n=this._private.cy;if(!n.styleEnabled())return this;if(n.batching()){var r=n._private.batchStyleEles;return r.merge(this),this}var a=n.hasCompoundNodes(),i=this;e=!!(e||e===void 0),a&&(i=this.spawnSelf().merge(this.descendants()).merge(this.parents()));var s=i;return e?s.emitAndNotify("style"):s.emit("style"),i.forEach(function(l){return l._private.styleDirty=!0}),this},cleanStyle:function(){var e=this.cy();if(e.styleEnabled())for(var n=0;n<this.length;n++){var r=this[n];r._private.styleDirty&&(r._private.styleDirty=!1,e.style().apply(r))}},parsedStyle:function(e){var n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0,r=this[0],a=r.cy();if(a.styleEnabled()&&r){this.cleanStyle();var i=r._private.style[e];return i??(n?a.style().getDefaultProperty(e):null)}},numericStyle:function(e){var n=this[0];if(n.cy().styleEnabled()&&n){var r=n.pstyle(e);return r.pfValue!==void 0?r.pfValue:r.value}},numericStyleUnits:function(e){var n=this[0];if(n.cy().styleEnabled()&&n)return n.pstyle(e).units},renderedStyle:function(e){var n=this.cy();if(!n.styleEnabled())return this;var r=this[0];if(r)return n.style().getRenderedStyle(r,e)},style:function(e,n){var r=this.cy();if(!r.styleEnabled())return this;var a=!1,i=r.style();if(Oe(e)){var s=e;i.applyBypass(this,s,a),this.emitAndNotify("style")}else if(be(e))if(n===void 0){var l=this[0];return l?i.getStylePropertyValue(l,e):void 0}else i.applyBypass(this,e,n,a),this.emitAndNotify("style");else if(e===void 0){var c=this[0];return c?i.getRawStyle(c):void 0}return this},removeStyle:function(e){var n=this.cy();if(!n.styleEnabled())return this;var r=!1,a=n.style(),i=this;if(e===void 0)for(var s=0;s<i.length;s++){var l=i[s];a.removeAllBypasses(l,r)}else{e=e.split(/\s+/);for(var c=0;c<i.length;c++){var u=i[c];a.removeBypasses(u,e,r)}}return this.emitAndNotify("style"),this},show:function(){return this.css("display","element"),this},hide:function(){return this.css("display","none"),this},effectiveOpacity:function(){var e=this.cy();if(!e.styleEnabled())return 1;var n=e.hasCompoundNodes(),r=this[0];if(r){var a=r._private,i=r.pstyle("opacity").value;if(!n)return i;var s=a.data.parent?r.parents():null;if(s)for(var l=0;l<s.length;l++){var c=s[l],u=c.pstyle("opacity").value;i=u*i}return i}},transparent:function(){var e=this.cy();if(!e.styleEnabled())return!1;var n=this[0],r=n.cy().hasCompoundNodes();if(n)return r?n.effectiveOpacity()===0:n.pstyle("opacity").value===0},backgrounding:function(){var e=this.cy();if(!e.styleEnabled())return!1;var n=this[0];return!!n._private.backgrounding}};function vc(t,e){var n=t._private,r=n.data.parent?t.parents():null;if(r)for(var a=0;a<r.length;a++){var i=r[a];if(!e(i))return!1}return!0}function gc(t){var e=t.ok,n=t.edgeOkViaNode||t.ok,r=t.parentOk||t.ok;return function(){var a=this.cy();if(!a.styleEnabled())return!0;var i=this[0],s=a.hasCompoundNodes();if(i){var l=i._private;if(!e(i))return!1;if(i.isNode())return!s||vc(i,r);var c=l.source,u=l.target;return n(c)&&(!s||vc(c,n))&&(c===u||n(u)&&(!s||vc(u,n)))}}}var Pa=us("eleTakesUpSpace",function(t){return t.pstyle("display").value==="element"&&t.width()!==0&&(t.isNode()?t.height()!==0:!0)});Ct.takesUpSpace=ds("takesUpSpace",gc({ok:Pa}));var M4=us("eleInteractive",function(t){return t.pstyle("events").value==="yes"&&t.pstyle("visibility").value==="visible"&&Pa(t)}),F4=us("parentInteractive",function(t){return t.pstyle("visibility").value==="visible"&&Pa(t)});Ct.interactive=ds("interactive",gc({ok:M4,parentOk:F4,edgeOkViaNode:Pa})),Ct.noninteractive=function(){var t=this[0];if(t)return!t.interactive()};var A4=us("eleVisible",function(t){return t.pstyle("visibility").value==="visible"&&t.pstyle("opacity").pfValue!==0&&Pa(t)}),V4=Pa;Ct.visible=ds("visible",gc({ok:A4,edgeOkViaNode:V4})),Ct.hidden=function(){var t=this[0];if(t)return!t.visible()},Ct.isBundledBezier=ds("isBundledBezier",function(){return this.cy().styleEnabled()?!this.removed()&&this.pstyle("curve-style").value==="bezier"&&this.takesUpSpace():!1}),Ct.bypass=Ct.css=Ct.style,Ct.renderedCss=Ct.renderedStyle,Ct.removeBypass=Ct.removeCss=Ct.removeStyle,Ct.pstyle=Ct.parsedStyle;var vr={};function Np(t){return function(){var e=arguments,n=[];if(e.length===2){var r=e[0],a=e[1];this.on(t.event,r,a)}else if(e.length===1&&Ye(e[0])){var i=e[0];this.on(t.event,i)}else if(e.length===0||e.length===1&&Ke(e[0])){for(var s=e.length===1?e[0]:null,l=0;l<this.length;l++){var c=this[l],u=!t.ableField||c._private[t.ableField],d=c._private[t.field]!=t.value;if(t.overrideAble){var f=t.overrideAble(c);if(f!==void 0&&(u=f,!f))return this}u&&(c._private[t.field]=t.value,d&&n.push(c))}var p=this.spawn(n);p.updateStyle(),p.emit(t.event),s&&p.emit(s)}return this}}function Oa(t){vr[t.field]=function(){var e=this[0];if(e){if(t.overrideField){var n=t.overrideField(e);if(n!==void 0)return n}return e._private[t.field]}},vr[t.on]=Np({event:t.on,field:t.field,ableField:t.ableField,overrideAble:t.overrideAble,value:!0}),vr[t.off]=Np({event:t.off,field:t.field,ableField:t.ableField,overrideAble:t.overrideAble,value:!1})}Oa({field:"locked",overrideField:function(e){return e.cy().autolock()?!0:void 0},on:"lock",off:"unlock"}),Oa({field:"grabbable",overrideField:function(e){return e.cy().autoungrabify()||e.pannable()?!1:void 0},on:"grabify",off:"ungrabify"}),Oa({field:"selected",ableField:"selectable",overrideAble:function(e){return e.cy().autounselectify()?!1:void 0},on:"select",off:"unselect"}),Oa({field:"selectable",overrideField:function(e){return e.cy().autounselectify()?!1:void 0},on:"selectify",off:"unselectify"}),vr.deselect=vr.unselect,vr.grabbed=function(){var t=this[0];if(t)return t._private.grabbed},Oa({field:"active",on:"activate",off:"unactivate"}),Oa({field:"pannable",on:"panify",off:"unpanify"}),vr.inactive=function(){var t=this[0];if(t)return!t._private.active};var Tt={},Dp=function(e){return function(r){for(var a=this,i=[],s=0;s<a.length;s++){var l=a[s];if(l.isNode()){for(var c=!1,u=l.connectedEdges(),d=0;d<u.length;d++){var f=u[d],p=f.source(),v=f.target();if(e.noIncomingEdges&&v===l&&p!==l||e.noOutgoingEdges&&p===l&&v!==l){c=!0;break}}c||i.push(l)}}return this.spawn(i,!0).filter(r)}},_p=function(e){return function(n){for(var r=this,a=[],i=0;i<r.length;i++){var s=r[i];if(s.isNode())for(var l=s.connectedEdges(),c=0;c<l.length;c++){var u=l[c],d=u.source(),f=u.target();e.outgoing&&d===s?(a.push(u),a.push(f)):e.incoming&&f===s&&(a.push(u),a.push(d))}}return this.spawn(a,!0).filter(n)}},Pp=function(e){return function(n){for(var r=this,a=[],i={};;){var s=e.outgoing?r.outgoers():r.incomers();if(s.length===0)break;for(var l=!1,c=0;c<s.length;c++){var u=s[c],d=u.id();i[d]||(i[d]=!0,a.push(u),l=!0)}if(!l)break;r=s}return this.spawn(a,!0).filter(n)}};Tt.clearTraversalCache=function(){for(var t=0;t<this.length;t++)this[t]._private.traversalCache=null},xe(Tt,{roots:Dp({noIncomingEdges:!0}),leaves:Dp({noOutgoingEdges:!0}),outgoers:Qt(_p({outgoing:!0}),"outgoers"),successors:Pp({outgoing:!0}),incomers:Qt(_p({incoming:!0}),"incomers"),predecessors:Pp({incoming:!0})}),xe(Tt,{neighborhood:Qt(function(t){for(var e=[],n=this.nodes(),r=0;r<n.length;r++)for(var a=n[r],i=a.connectedEdges(),s=0;s<i.length;s++){var l=i[s],c=l.source(),u=l.target(),d=a===c?u:c;d.length>0&&e.push(d[0]),e.push(l[0])}return this.spawn(e,!0).filter(t)},"neighborhood"),closedNeighborhood:function(e){return this.neighborhood().add(this).filter(e)},openNeighborhood:function(e){return this.neighborhood(e)}}),Tt.neighbourhood=Tt.neighborhood,Tt.closedNeighbourhood=Tt.closedNeighborhood,Tt.openNeighbourhood=Tt.openNeighborhood,xe(Tt,{source:Qt(function(e){var n=this[0],r;return n&&(r=n._private.source||n.cy().collection()),r&&e?r.filter(e):r},"source"),target:Qt(function(e){var n=this[0],r;return n&&(r=n._private.target||n.cy().collection()),r&&e?r.filter(e):r},"target"),sources:Op({attr:"source"}),targets:Op({attr:"target"})});function Op(t){return function(n){for(var r=[],a=0;a<this.length;a++){var i=this[a],s=i._private[t.attr];s&&r.push(s)}return this.spawn(r,!0).filter(n)}}xe(Tt,{edgesWith:Qt(Ip(),"edgesWith"),edgesTo:Qt(Ip({thisIsSrc:!0}),"edgesTo")});function Ip(t){return function(n){var r=[],a=this._private.cy,i=t||{};be(n)&&(n=a.$(n));for(var s=0;s<n.length;s++)for(var l=n[s]._private.edges,c=0;c<l.length;c++){var u=l[c],d=u._private.data,f=this.hasElementWithId(d.source)&&n.hasElementWithId(d.target),p=n.hasElementWithId(d.source)&&this.hasElementWithId(d.target),v=f||p;v&&((i.thisIsSrc||i.thisIsTgt)&&(i.thisIsSrc&&!f||i.thisIsTgt&&!p)||r.push(u))}return this.spawn(r,!0)}}xe(Tt,{connectedEdges:Qt(function(t){for(var e=[],n=this,r=0;r<n.length;r++){var a=n[r];if(a.isNode())for(var i=a._private.edges,s=0;s<i.length;s++){var l=i[s];e.push(l)}}return this.spawn(e,!0).filter(t)},"connectedEdges"),connectedNodes:Qt(function(t){for(var e=[],n=this,r=0;r<n.length;r++){var a=n[r];a.isEdge()&&(e.push(a.source()[0]),e.push(a.target()[0]))}return this.spawn(e,!0).filter(t)},"connectedNodes"),parallelEdges:Qt(Lp(),"parallelEdges"),codirectedEdges:Qt(Lp({codirected:!0}),"codirectedEdges")});function Lp(t){var e={codirected:!1};return t=xe({},e,t),function(r){for(var a=[],i=this.edges(),s=t,l=0;l<i.length;l++)for(var c=i[l],u=c._private,d=u.source,f=d._private.data.id,p=u.data.target,v=d._private.edges,h=0;h<v.length;h++){var g=v[h],y=g._private.data,m=y.target,b=y.source,w=m===p&&b===f,C=f===m&&p===b;(s.codirected&&w||!s.codirected&&(w||C))&&a.push(g)}return this.spawn(a,!0).filter(r)}}xe(Tt,{components:function(e){var n=this,r=n.cy(),a=r.collection(),i=e==null?n.nodes():e.nodes(),s=[];e!=null&&i.empty()&&(i=e.sources());var l=function(d,f){a.merge(d),i.unmerge(d),f.merge(d)};if(i.empty())return n.spawn();var c=function(){var d=r.collection();s.push(d);var f=i[0];l(f,d),n.bfs({directed:!1,roots:f,visit:function(v){return l(v,d)}}),d.forEach(function(p){p.connectedEdges().forEach(function(v){n.has(v)&&d.has(v.source())&&d.has(v.target())&&d.merge(v)})})};do c();while(i.length>0);return s},component:function(){var e=this[0];return e.cy().mutableElements().components(e)[0]}}),Tt.componentsOf=Tt.components;var kt=function(e,n){var r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1,a=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!1;if(e===void 0){Ze("A collection must have a reference to the core");return}var i=new xn,s=!1;if(!n)n=[];else if(n.length>0&&Oe(n[0])&&!mi(n[0])){s=!0;for(var l=[],c=new ga,u=0,d=n.length;u<d;u++){var f=n[u];f.data==null&&(f.data={});var p=f.data;if(p.id==null)p.id=dh();else if(e.hasElementWithId(p.id)||c.has(p.id))continue;var v=new $o(e,f,!1);l.push(v),c.add(p.id)}n=l}this.length=0;for(var h=0,g=n.length;h<g;h++){var y=n[h][0];if(y!=null){var m=y._private.data.id;(!r||!i.has(m))&&(r&&i.set(m,{index:this.length,ele:y}),this[this.length]=y,this.length++)}}this._private={eles:this,cy:e,get map(){return this.lazyMap==null&&this.rebuildMap(),this.lazyMap},set map(b){this.lazyMap=b},rebuildMap:function(){for(var w=this.lazyMap=new xn,C=this.eles,k=0;k<C.length;k++){var E=C[k];w.set(E.id(),{index:k,ele:E})}}},r&&(this._private.map=i),s&&!a&&this.restore()},qe=$o.prototype=kt.prototype=Object.create(Array.prototype);qe.instanceString=function(){return"collection"},qe.spawn=function(t,e){return new kt(this.cy(),t,e)},qe.spawnSelf=function(){return this.spawn(this)},qe.cy=function(){return this._private.cy},qe.renderer=function(){return this._private.cy.renderer()},qe.element=function(){return this[0]},qe.collection=function(){return Uf(this)?this:new kt(this._private.cy,[this])},qe.unique=function(){return new kt(this._private.cy,this,!0)},qe.hasElementWithId=function(t){return t=""+t,this._private.map.has(t)},qe.getElementById=function(t){t=""+t;var e=this._private.cy,n=this._private.map.get(t);return n?n.ele:new kt(e)},qe.$id=qe.getElementById,qe.poolIndex=function(){var t=this._private.cy,e=t._private.elements,n=this[0]._private.data.id;return e._private.map.get(n).index},qe.indexOf=function(t){var e=t[0]._private.data.id;return this._private.map.get(e).index},qe.indexOfId=function(t){return t=""+t,this._private.map.get(t).index},qe.json=function(t){var e=this.element(),n=this.cy();if(e==null&&t)return this;if(e!=null){var r=e._private;if(Oe(t)){if(n.startBatch(),t.data){e.data(t.data);var a=r.data;if(e.isEdge()){var i=!1,s={},l=t.data.source,c=t.data.target;l!=null&&l!=a.source&&(s.source=""+l,i=!0),c!=null&&c!=a.target&&(s.target=""+c,i=!0),i&&(e=e.move(s))}else{var u="parent"in t.data,d=t.data.parent;u&&(d!=null||a.parent!=null)&&d!=a.parent&&(d===void 0&&(d=null),d!=null&&(d=""+d),e=e.move({parent:d}))}}t.position&&e.position(t.position);var f=function(g,y,m){var b=t[g];b!=null&&b!==r[g]&&(b?e[y]():e[m]())};return f("removed","remove","restore"),f("selected","select","unselect"),f("selectable","selectify","unselectify"),f("locked","lock","unlock"),f("grabbable","grabify","ungrabify"),f("pannable","panify","unpanify"),t.classes!=null&&e.classes(t.classes),n.endBatch(),this}else if(t===void 0){var p={data:kn(r.data),position:kn(r.position),group:r.group,removed:r.removed,selected:r.selected,selectable:r.selectable,locked:r.locked,grabbable:r.grabbable,pannable:r.pannable,classes:null};p.classes="";var v=0;return r.classes.forEach(function(h){return p.classes+=v++===0?h:" "+h}),p}}},qe.jsons=function(){for(var t=[],e=0;e<this.length;e++){var n=this[e],r=n.json();t.push(r)}return t},qe.clone=function(){for(var t=this.cy(),e=[],n=0;n<this.length;n++){var r=this[n],a=r.json(),i=new $o(t,a,!1);e.push(i)}return new kt(t,e)},qe.copy=qe.clone,qe.restore=function(){for(var t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!0,e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0,n=this,r=n.cy(),a=r._private,i=[],s=[],l,c=0,u=n.length;c<u;c++){var d=n[c];e&&!d.removed()||(d.isNode()?i.push(d):s.push(d))}l=i.concat(s);var f,p=function(){l.splice(f,1),f--};for(f=0;f<l.length;f++){var v=l[f],h=v._private,g=h.data;if(v.clearTraversalCache(),!(!e&&!h.removed)){if(g.id===void 0)g.id=dh();else if(le(g.id))g.id=""+g.id;else if(ar(g.id)||!be(g.id)){Ze("Can not create element with invalid string ID `"+g.id+"`"),p();continue}else if(r.hasElementWithId(g.id)){Ze("Can not create second element with ID `"+g.id+"`"),p();continue}}var y=g.id;if(v.isNode()){var m=h.position;m.x==null&&(m.x=0),m.y==null&&(m.y=0)}if(v.isEdge()){for(var b=v,w=["source","target"],C=w.length,k=!1,E=0;E<C;E++){var x=w[E],B=g[x];le(B)&&(B=g[x]=""+g[x]),B==null||B===""?(Ze("Can not create edge `"+y+"` with unspecified "+x),k=!0):r.hasElementWithId(B)||(Ze("Can not create edge `"+y+"` with nonexistant "+x+" `"+B+"`"),k=!0)}if(k){p();continue}var S=r.getElementById(g.source),N=r.getElementById(g.target);S.same(N)?S._private.edges.push(b):(S._private.edges.push(b),N._private.edges.push(b)),b._private.source=S,b._private.target=N}h.map=new xn,h.map.set(y,{ele:v,index:0}),h.removed=!1,e&&r.addToPool(v)}for(var D=0;D<i.length;D++){var _=i[D],I=_._private.data;le(I.parent)&&(I.parent=""+I.parent);var P=I.parent,F=P!=null;if(F||_._private.parent){var O=_._private.parent?r.collection().merge(_._private.parent):r.getElementById(P);if(O.empty())I.parent=void 0;else if(O[0].removed())Ae("Node added with missing parent, reference to parent removed"),I.parent=void 0,_._private.parent=null;else{for(var M=!1,L=O;!L.empty();){if(_.same(L)){M=!0,I.parent=void 0;break}L=L.parent()}M||(O[0]._private.children.push(_),_._private.parent=O[0],a.hasCompoundNodes=!0)}}}if(l.length>0){for(var V=l.length===n.length?n:new kt(r,l),H=0;H<V.length;H++){var $=V[H];$.isNode()||($.parallelEdges().clearTraversalCache(),$.source().clearTraversalCache(),$.target().clearTraversalCache())}var z;a.hasCompoundNodes?z=r.collection().merge(V).merge(V.connectedNodes()).merge(V.parent()):z=V,z.dirtyCompoundBoundsCache().dirtyBoundingBoxCache().updateStyle(t),t?V.emitAndNotify("add"):e&&V.emit("add")}return n},qe.removed=function(){var t=this[0];return t&&t._private.removed},qe.inside=function(){var t=this[0];return t&&!t._private.removed},qe.remove=function(){var t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!0,e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0,n=this,r=[],a={},i=n._private.cy;function s(P){for(var F=P._private.edges,O=0;O<F.length;O++)c(F[O])}function l(P){for(var F=P._private.children,O=0;O<F.length;O++)c(F[O])}function c(P){var F=a[P.id()];e&&P.removed()||F||(a[P.id()]=!0,P.isNode()?(r.push(P),s(P),l(P)):r.unshift(P))}for(var u=0,d=n.length;u<d;u++){var f=n[u];c(f)}function p(P,F){var O=P._private.edges;or(O,F),P.clearTraversalCache()}function v(P){P.clearTraversalCache()}var h=[];h.ids={};function g(P,F){F=F[0],P=P[0];var O=P._private.children,M=P.id();or(O,F),F._private.parent=null,h.ids[M]||(h.ids[M]=!0,h.push(P))}n.dirtyCompoundBoundsCache(),e&&i.removeFromPool(r);for(var y=0;y<r.length;y++){var m=r[y];if(m.isEdge()){var b=m.source()[0],w=m.target()[0];p(b,m),p(w,m);for(var C=m.parallelEdges(),k=0;k<C.length;k++){var E=C[k];v(E),E.isBundledBezier()&&E.dirtyBoundingBoxCache()}}else{var x=m.parent();x.length!==0&&g(x,m)}e&&(m._private.removed=!0)}var B=i._private.elements;i._private.hasCompoundNodes=!1;for(var S=0;S<B.length;S++){var N=B[S];if(N.isParent()){i._private.hasCompoundNodes=!0;break}}var D=new kt(this.cy(),r);D.size()>0&&(t?D.emitAndNotify("remove"):e&&D.emit("remove"));for(var _=0;_<h.length;_++){var I=h[_];(!e||!I.removed())&&I.updateStyle()}return D},qe.move=function(t){var e=this._private.cy,n=this,r=!1,a=!1,i=function(h){return h==null?h:""+h};if(t.source!==void 0||t.target!==void 0){var s=i(t.source),l=i(t.target),c=s!=null&&e.hasElementWithId(s),u=l!=null&&e.hasElementWithId(l);(c||u)&&(e.batch(function(){n.remove(r,a),n.emitAndNotify("moveout");for(var v=0;v<n.length;v++){var h=n[v],g=h._private.data;h.isEdge()&&(c&&(g.source=s),u&&(g.target=l))}n.restore(r,a)}),n.emitAndNotify("move"))}else if(t.parent!==void 0){var d=i(t.parent),f=d===null||e.hasElementWithId(d);if(f){var p=d===null?void 0:d;e.batch(function(){var v=n.remove(r,a);v.emitAndNotify("moveout");for(var h=0;h<n.length;h++){var g=n[h],y=g._private.data;g.isNode()&&(y.parent=p)}v.restore(r,a)}),n.emitAndNotify("move")}}return this},[Vh,YN,ns,fr,Na,d4,rs,B4,Ep,Sp,O4,ls,cs,Ct,vr,Tt].forEach(function(t){xe(qe,t)});var R4={add:function(e){var n,r=this;if(Ut(e)){var a=e;if(a._private.cy===r)n=a.restore();else{for(var i=[],s=0;s<a.length;s++){var l=a[s];i.push(l.json())}n=new kt(r,i)}}else if(Ke(e)){var c=e;n=new kt(r,c)}else if(Oe(e)&&(Ke(e.nodes)||Ke(e.edges))){for(var u=e,d=[],f=["nodes","edges"],p=0,v=f.length;p<v;p++){var h=f[p],g=u[h];if(Ke(g))for(var y=0,m=g.length;y<m;y++){var b=xe({group:h},g[y]);d.push(b)}}n=new kt(r,d)}else{var w=e;n=new $o(r,w).collection()}return n},remove:function(e){if(!Ut(e)){if(be(e)){var n=e;e=this.$(n)}}return e.remove()}};/*! Bezier curve function generator. Copyright Gaetan Renaudeau. MIT License: http://en.wikipedia.org/wiki/MIT_License */function $4(t,e,n,r){var a=4,i=.001,s=1e-7,l=10,c=11,u=1/(c-1),d=typeof Float32Array<"u";if(arguments.length!==4)return!1;for(var f=0;f<4;++f)if(typeof arguments[f]!="number"||isNaN(arguments[f])||!isFinite(arguments[f]))return!1;t=Math.min(t,1),n=Math.min(n,1),t=Math.max(t,0),n=Math.max(n,0);var p=d?new Float32Array(c):new Array(c);function v(N,D){return 1-3*D+3*N}function h(N,D){return 3*D-6*N}function g(N){return 3*N}function y(N,D,_){return((v(D,_)*N+h(D,_))*N+g(D))*N}function m(N,D,_){return 3*v(D,_)*N*N+2*h(D,_)*N+g(D)}function b(N,D){for(var _=0;_<a;++_){var I=m(D,t,n);if(I===0)return D;var P=y(D,t,n)-N;D-=P/I}return D}function w(){for(var N=0;N<c;++N)p[N]=y(N*u,t,n)}function C(N,D,_){var I,P,F=0;do P=D+(_-D)/2,I=y(P,t,n)-N,I>0?_=P:D=P;while(Math.abs(I)>s&&++F<l);return P}function k(N){for(var D=0,_=1,I=c-1;_!==I&&p[_]<=N;++_)D+=u;--_;var P=(N-p[_])/(p[_+1]-p[_]),F=D+P*u,O=m(F,t,n);return O>=i?b(N,F):O===0?F:C(N,D,D+u)}var E=!1;function x(){E=!0,(t!==e||n!==r)&&w()}var B=function(D){return E||x(),t===e&&n===r?D:D===0?0:D===1?1:y(k(D),e,r)};B.getControlPoints=function(){return[{x:t,y:e},{x:n,y:r}]};var S="generateBezier("+[t,e,n,r]+")";return B.toString=function(){return S},B}/*! Runge-Kutta spring physics function generator. Adapted from Framer.js, copyright Koen Bok. MIT License: http://en.wikipedia.org/wiki/MIT_License */var z4=function(){function t(r){return-r.tension*r.x-r.friction*r.v}function e(r,a,i){var s={x:r.x+i.dx*a,v:r.v+i.dv*a,tension:r.tension,friction:r.friction};return{dx:s.v,dv:t(s)}}function n(r,a){var i={dx:r.v,dv:t(r)},s=e(r,a*.5,i),l=e(r,a*.5,s),c=e(r,a,l),u=1/6*(i.dx+2*(s.dx+l.dx)+c.dx),d=1/6*(i.dv+2*(s.dv+l.dv)+c.dv);return r.x=r.x+u*a,r.v=r.v+d*a,r}return function r(a,i,s){var l={x:-1,v:0,tension:null,friction:null},c=[0],u=0,d=1/1e4,f=16/1e3,p,v,h;for(a=parseFloat(a)||500,i=parseFloat(i)||20,s=s||null,l.tension=a,l.friction=i,p=s!==null,p?(u=r(a,i),v=u/s*f):v=f;h=n(h||l,v),c.push(1+h.x),u+=16,Math.abs(h.x)>d&&Math.abs(h.v)>d;);return p?function(g){return c[g*(c.length-1)|0]}:u}}(),Ue=function(e,n,r,a){var i=$4(e,n,r,a);return function(s,l,c){return s+(l-s)*i(c)}},fs={linear:function(e,n,r){return e+(n-e)*r},ease:Ue(.25,.1,.25,1),"ease-in":Ue(.42,0,1,1),"ease-out":Ue(0,0,.58,1),"ease-in-out":Ue(.42,0,.58,1),"ease-in-sine":Ue(.47,0,.745,.715),"ease-out-sine":Ue(.39,.575,.565,1),"ease-in-out-sine":Ue(.445,.05,.55,.95),"ease-in-quad":Ue(.55,.085,.68,.53),"ease-out-quad":Ue(.25,.46,.45,.94),"ease-in-out-quad":Ue(.455,.03,.515,.955),"ease-in-cubic":Ue(.55,.055,.675,.19),"ease-out-cubic":Ue(.215,.61,.355,1),"ease-in-out-cubic":Ue(.645,.045,.355,1),"ease-in-quart":Ue(.895,.03,.685,.22),"ease-out-quart":Ue(.165,.84,.44,1),"ease-in-out-quart":Ue(.77,0,.175,1),"ease-in-quint":Ue(.755,.05,.855,.06),"ease-out-quint":Ue(.23,1,.32,1),"ease-in-out-quint":Ue(.86,0,.07,1),"ease-in-expo":Ue(.95,.05,.795,.035),"ease-out-expo":Ue(.19,1,.22,1),"ease-in-out-expo":Ue(1,0,0,1),"ease-in-circ":Ue(.6,.04,.98,.335),"ease-out-circ":Ue(.075,.82,.165,1),"ease-in-out-circ":Ue(.785,.135,.15,.86),spring:function(e,n,r){if(r===0)return fs.linear;var a=z4(e,n,r);return function(i,s,l){return i+(s-i)*a(l)}},"cubic-bezier":Ue};function Mp(t,e,n,r,a){if(r===1||e===n)return n;var i=a(e,n,r);return t==null||((t.roundValue||t.color)&&(i=Math.round(i)),t.min!==void 0&&(i=Math.max(i,t.min)),t.max!==void 0&&(i=Math.min(i,t.max))),i}function Fp(t,e){return t.pfValue!=null||t.value!=null?t.pfValue!=null&&(e==null||e.type.units!=="%")?t.pfValue:t.value:t}function Ia(t,e,n,r,a){var i=a!=null?a.type:null;n<0?n=0:n>1&&(n=1);var s=Fp(t,a),l=Fp(e,a);if(le(s)&&le(l))return Mp(i,s,l,n,r);if(Ke(s)&&Ke(l)){for(var c=[],u=0;u<l.length;u++){var d=s[u],f=l[u];if(d!=null&&f!=null){var p=Mp(i,d,f,n,r);c.push(p)}else c.push(f)}return c}}function H4(t,e,n,r){var a=!r,i=t._private,s=e._private,l=s.easing,c=s.startTime,u=r?t:t.cy(),d=u.style();if(!s.easingImpl)if(l==null)s.easingImpl=fs.linear;else{var f;if(be(l)){var p=d.parse("transition-timing-function",l);f=p.value}else f=l;var v,h;be(f)?(v=f,h=[]):(v=f[1],h=f.slice(2).map(function(V){return+V})),h.length>0?(v==="spring"&&h.push(s.duration),s.easingImpl=fs[v].apply(null,h)):s.easingImpl=fs[v]}var g=s.easingImpl,y;if(s.duration===0?y=1:y=(n-c)/s.duration,s.applying&&(y=s.progress),y<0?y=0:y>1&&(y=1),s.delay==null){var m=s.startPosition,b=s.position;if(b&&a&&!t.locked()){var w={};Vi(m.x,b.x)&&(w.x=Ia(m.x,b.x,y,g)),Vi(m.y,b.y)&&(w.y=Ia(m.y,b.y,y,g)),t.position(w)}var C=s.startPan,k=s.pan,E=i.pan,x=k!=null&&r;x&&(Vi(C.x,k.x)&&(E.x=Ia(C.x,k.x,y,g)),Vi(C.y,k.y)&&(E.y=Ia(C.y,k.y,y,g)),t.emit("pan"));var B=s.startZoom,S=s.zoom,N=S!=null&&r;N&&(Vi(B,S)&&(i.zoom=Bi(i.minZoom,Ia(B,S,y,g),i.maxZoom)),t.emit("zoom")),(x||N)&&t.emit("viewport");var D=s.style;if(D&&D.length>0&&a){for(var _=0;_<D.length;_++){var I=D[_],P=I.name,F=I,O=s.startStyle[P],M=d.properties[O.name],L=Ia(O,F,y,g,M);d.overrideBypass(t,P,L)}t.emit("style")}}return s.progress=y,y}function Vi(t,e){return t==null||e==null?!1:le(t)&&le(e)?!0:!!(t&&e)}function K4(t,e,n,r){var a=e._private;a.started=!0,a.startTime=n-a.progress*a.duration}function Ap(t,e){var n=e._private.aniEles,r=[];function a(d,f){var p=d._private,v=p.animation.current,h=p.animation.queue,g=!1;if(v.length===0){var y=h.shift();y&&v.push(y)}for(var m=function(E){for(var x=E.length-1;x>=0;x--){var B=E[x];B()}E.splice(0,E.length)},b=v.length-1;b>=0;b--){var w=v[b],C=w._private;if(C.stopped){v.splice(b,1),C.hooked=!1,C.playing=!1,C.started=!1,m(C.frames);continue}!C.playing&&!C.applying||(C.playing&&C.applying&&(C.applying=!1),C.started||K4(d,w,t),H4(d,w,t,f),C.applying&&(C.applying=!1),m(C.frames),C.step!=null&&C.step(t),w.completed()&&(v.splice(b,1),C.hooked=!1,C.playing=!1,C.started=!1,m(C.completes)),g=!0)}return!f&&v.length===0&&h.length===0&&r.push(d),g}for(var i=!1,s=0;s<n.length;s++){var l=n[s],c=a(l);i=i||c}var u=a(e,!0);(i||u)&&(n.length>0?e.notify("draw",n):e.notify("draw")),n.unmerge(r),e.emit("step")}var q4={animate:Ve.animate(),animation:Ve.animation(),animated:Ve.animated(),clearQueue:Ve.clearQueue(),delay:Ve.delay(),delayAnimation:Ve.delayAnimation(),stop:Ve.stop(),addToAnimationPool:function(e){var n=this;n.styleEnabled()&&n._private.aniEles.merge(e)},stopAnimationLoop:function(){this._private.animationsRunning=!1},startAnimationLoop:function(){var e=this;if(e._private.animationsRunning=!0,!e.styleEnabled())return;function n(){e._private.animationsRunning&&Ao(function(i){Ap(i,e),n()})}var r=e.renderer();r&&r.beforeRender?r.beforeRender(function(i,s){Ap(s,e)},r.beforeRenderPriorities.animations):n()}},U4={qualifierCompare:function(e,n){return e==null||n==null?e==null&&n==null:e.sameText(n)},eventMatches:function(e,n,r){var a=n.qualifier;return a!=null?e!==r.target&&mi(r.target)&&a.matches(r.target):!0},addEventFields:function(e,n){n.cy=e,n.target=e},callbackContext:function(e,n,r){return n.qualifier!=null?r.target:e}},hs=function(e){return be(e)?new ur(e):e},Vp={createEmitter:function(){var e=this._private;return e.emitter||(e.emitter=new os(U4,this)),this},emitter:function(){return this._private.emitter},on:function(e,n,r){return this.emitter().on(e,hs(n),r),this},removeListener:function(e,n,r){return this.emitter().removeListener(e,hs(n),r),this},removeAllListeners:function(){return this.emitter().removeAllListeners(),this},one:function(e,n,r){return this.emitter().one(e,hs(n),r),this},once:function(e,n,r){return this.emitter().one(e,hs(n),r),this},emit:function(e,n){return this.emitter().emit(e,n),this},emitAndNotify:function(e,n){return this.emit(e),this.notify(e,n),this}};Ve.eventAliasesOn(Vp);var mc={png:function(e){var n=this._private.renderer;return e=e||{},n.png(e)},jpg:function(e){var n=this._private.renderer;return e=e||{},e.bg=e.bg||"#fff",n.jpg(e)}};mc.jpeg=mc.jpg;var ps={layout:function(e){var n=this;if(e==null){Ze("Layout options must be specified to make a layout");return}if(e.name==null){Ze("A `name` must be specified to make a layout");return}var r=e.name,a=n.extension("layout",r);if(a==null){Ze("No such layout `"+r+"` found. Did you forget to import it and `cytoscape.use()` it?");return}var i;be(e.eles)?i=n.$(e.eles):i=e.eles!=null?e.eles:n.$();var s=new a(xe({},e,{cy:n,eles:i}));return s}};ps.createLayout=ps.makeLayout=ps.layout;var G4={notify:function(e,n){var r=this._private;if(this.batching()){r.batchNotifications=r.batchNotifications||{};var a=r.batchNotifications[e]=r.batchNotifications[e]||this.collection();n!=null&&a.merge(n);return}if(r.notificationsEnabled){var i=this.renderer();this.destroyed()||!i||i.notify(e,n)}},notifications:function(e){var n=this._private;return e===void 0?n.notificationsEnabled:(n.notificationsEnabled=!!e,this)},noNotifications:function(e){this.notifications(!1),e(),this.notifications(!0)},batching:function(){return this._private.batchCount>0},startBatch:function(){var e=this._private;return e.batchCount==null&&(e.batchCount=0),e.batchCount===0&&(e.batchStyleEles=this.collection(),e.batchNotifications={}),e.batchCount++,this},endBatch:function(){var e=this._private;if(e.batchCount===0)return this;if(e.batchCount--,e.batchCount===0){e.batchStyleEles.updateStyle();var n=this.renderer();Object.keys(e.batchNotifications).forEach(function(r){var a=e.batchNotifications[r];a.empty()?n.notify(r):n.notify(r,a)})}return this},batch:function(e){return this.startBatch(),e(),this.endBatch(),this},batchData:function(e){var n=this;return this.batch(function(){for(var r=Object.keys(e),a=0;a<r.length;a++){var i=r[a],s=e[i],l=n.getElementById(i);l.data(s)}})}},W4=wt({hideEdgesOnViewport:!1,textureOnViewport:!1,motionBlur:!1,motionBlurOpacity:.05,pixelRatio:void 0,desktopTapThreshold:4,touchTapThreshold:8,wheelSensitivity:1,debug:!1,showFps:!1}),yc={renderTo:function(e,n,r,a){var i=this._private.renderer;return i.renderTo(e,n,r,a),this},renderer:function(){return this._private.renderer},forceRender:function(){return this.notify("draw"),this},resize:function(){return this.invalidateSize(),this.emitAndNotify("resize"),this},initRenderer:function(e){var n=this,r=n.extension("renderer",e.name);if(r==null){Ze("Can not initialise: No such renderer `".concat(e.name,"` found. Did you forget to import it and `cytoscape.use()` it?"));return}e.wheelSensitivity!==void 0&&Ae("You have set a custom wheel sensitivity. This will make your app zoom unnaturally when using mainstream mice. You should change this value from the default only if you can guarantee that all your users will use the same hardware and OS configuration as your current machine.");var a=W4(e);a.cy=n,n._private.renderer=new r(a),this.notify("init")},destroyRenderer:function(){var e=this;e.notify("destroy");var n=e.container();if(n)for(n._cyreg=null;n.childNodes.length>0;)n.removeChild(n.childNodes[0]);e._private.renderer=null,e.mutableElements().forEach(function(r){var a=r._private;a.rscratch={},a.rstyle={},a.animation.current=[],a.animation.queue=[]})},onRender:function(e){return this.on("render",e)},offRender:function(e){return this.off("render",e)}};yc.invalidateDimensions=yc.resize;var vs={collection:function(e,n){return be(e)?this.$(e):Ut(e)?e.collection():Ke(e)?(n||(n={}),new kt(this,e,n.unique,n.removed)):new kt(this)},nodes:function(e){var n=this.$(function(r){return r.isNode()});return e?n.filter(e):n},edges:function(e){var n=this.$(function(r){return r.isEdge()});return e?n.filter(e):n},$:function(e){var n=this._private.elements;return e?n.filter(e):n.spawnSelf()},mutableElements:function(){return this._private.elements}};vs.elements=vs.filter=vs.$;var Bt={},Ri="t",j4="f";Bt.apply=function(t){for(var e=this,n=e._private,r=n.cy,a=r.collection(),i=0;i<t.length;i++){var s=t[i],l=e.getContextMeta(s);if(!l.empty){var c=e.getContextStyle(l),u=e.applyContextStyle(l,c,s);s._private.appliedInitStyle?e.updateTransitions(s,u.diffProps):s._private.appliedInitStyle=!0;var d=e.updateStyleHints(s);d&&a.push(s)}}return a},Bt.getPropertiesDiff=function(t,e){var n=this,r=n._private.propDiffs=n._private.propDiffs||{},a=t+"-"+e,i=r[a];if(i)return i;for(var s=[],l={},c=0;c<n.length;c++){var u=n[c],d=t[c]===Ri,f=e[c]===Ri,p=d!==f,v=u.mappedProperties.length>0;if(p||f&&v){var h=void 0;p&&v||p?h=u.properties:v&&(h=u.mappedProperties);for(var g=0;g<h.length;g++){for(var y=h[g],m=y.name,b=!1,w=c+1;w<n.length;w++){var C=n[w],k=e[w]===Ri;if(k&&(b=C.properties[y.name]!=null,b))break}!l[m]&&!b&&(l[m]=!0,s.push(m))}}}return r[a]=s,s},Bt.getContextMeta=function(t){for(var e=this,n="",r,a=t._private.styleCxtKey||"",i=0;i<e.length;i++){var s=e[i],l=s.selector&&s.selector.matches(t);l?n+=Ri:n+=j4}return r=e.getPropertiesDiff(a,n),t._private.styleCxtKey=n,{key:n,diffPropNames:r,empty:r.length===0}},Bt.getContextStyle=function(t){var e=t.key,n=this,r=this._private.contextStyles=this._private.contextStyles||{};if(r[e])return r[e];for(var a={_private:{key:e}},i=0;i<n.length;i++){var s=n[i],l=e[i]===Ri;if(l)for(var c=0;c<s.properties.length;c++){var u=s.properties[c];a[u.name]=u}}return r[e]=a,a},Bt.applyContextStyle=function(t,e,n){for(var r=this,a=t.diffPropNames,i={},s=r.types,l=0;l<a.length;l++){var c=a[l],u=e[c],d=n.pstyle(c);if(!u)if(d)d.bypass?u={name:c,deleteBypassed:!0}:u={name:c,delete:!0};else continue;if(d!==u){if(u.mapped===s.fn&&d!=null&&d.mapping!=null&&d.mapping.value===u.value){var f=d.mapping,p=f.fnValue=u.value(n);if(p===f.prevFnValue)continue}var v=i[c]={prev:d};r.applyParsedProperty(n,u),v.next=n.pstyle(c),v.next&&v.next.bypass&&(v.next=v.next.bypassed)}}return{diffProps:i}},Bt.updateStyleHints=function(t){var e=t._private,n=this,r=n.propertyGroupNames,a=n.propertyGroupKeys,i=function(W,oe,he){return n.getPropertiesHash(W,oe,he)},s=e.styleKey;if(t.removed())return!1;var l=e.group==="nodes",c=t._private.style;r=Object.keys(c);for(var u=0;u<a.length;u++){var d=a[u];e.styleKeys[d]=[va,ki]}for(var f=function(W,oe){return e.styleKeys[oe][0]=xi(W,e.styleKeys[oe][0])},p=function(W,oe){return e.styleKeys[oe][1]=Ei(W,e.styleKeys[oe][1])},v=function(W,oe){f(W,oe),p(W,oe)},h=function(W,oe){for(var he=0;he<W.length;he++){var re=W.charCodeAt(he);f(re,oe),p(re,oe)}},g=2e9,y=function(W){return-128<W&&W<128&&Math.floor(W)!==W?g-(W*1024|0):W},m=0;m<r.length;m++){var b=r[m],w=c[b];if(w!=null){var C=this.properties[b],k=C.type,E=C.groupKey,x=void 0;C.hashOverride!=null?x=C.hashOverride(t,w):w.pfValue!=null&&(x=w.pfValue);var B=C.enums==null?w.value:null,S=x!=null,N=B!=null,D=S||N,_=w.units;if(k.number&&D&&!k.multiple){var I=S?x:B;v(y(I),E),!S&&_!=null&&h(_,E)}else h(w.strValue,E)}}for(var P=[va,ki],F=0;F<a.length;F++){var O=a[F],M=e.styleKeys[O];P[0]=xi(M[0],P[0]),P[1]=Ei(M[1],P[1])}e.styleKey=JS(P[0],P[1]);var L=e.styleKeys;e.labelDimsKey=ir(L.labelDimensions);var V=i(t,["label"],L.labelDimensions);if(e.labelKey=ir(V),e.labelStyleKey=ir(Vo(L.commonLabel,V)),!l){var H=i(t,["source-label"],L.labelDimensions);e.sourceLabelKey=ir(H),e.sourceLabelStyleKey=ir(Vo(L.commonLabel,H));var $=i(t,["target-label"],L.labelDimensions);e.targetLabelKey=ir($),e.targetLabelStyleKey=ir(Vo(L.commonLabel,$))}if(l){var z=e.styleKeys,j=z.nodeBody,ee=z.nodeBorder,J=z.nodeOutline,X=z.backgroundImage,ne=z.compound,Y=z.pie,A=[j,ee,J,X,ne,Y].filter(function(K){return K!=null}).reduce(Vo,[va,ki]);e.nodeKey=ir(A),e.hasPie=Y!=null&&Y[0]!==va&&Y[1]!==ki}return s!==e.styleKey},Bt.clearStyleHints=function(t){var e=t._private;e.styleCxtKey="",e.styleKeys={},e.styleKey=null,e.labelKey=null,e.labelStyleKey=null,e.sourceLabelKey=null,e.sourceLabelStyleKey=null,e.targetLabelKey=null,e.targetLabelStyleKey=null,e.nodeKey=null,e.hasPie=null},Bt.applyParsedProperty=function(t,e){var n=this,r=e,a=t._private.style,i,s=n.types,l=n.properties[r.name].type,c=r.bypass,u=a[r.name],d=u&&u.bypass,f=t._private,p="mapping",v=function(j){return j==null?null:j.pfValue!=null?j.pfValue:j.value},h=function(){var j=v(u),ee=v(r);n.checkTriggers(t,r.name,j,ee)};if(e.name==="curve-style"&&t.isEdge()&&(e.value!=="bezier"&&t.isLoop()||e.value==="haystack"&&(t.source().isParent()||t.target().isParent()))&&(r=e=this.parse(e.name,"bezier",c)),r.delete)return a[r.name]=void 0,h(),!0;if(r.deleteBypassed)return u?u.bypass?(u.bypassed=void 0,h(),!0):!1:(h(),!0);if(r.deleteBypass)return u?u.bypass?(a[r.name]=u.bypassed,h(),!0):!1:(h(),!0);var g=function(){Ae("Do not assign mappings to elements without corresponding data (i.e. ele `"+t.id()+"` has no mapping for property `"+r.name+"` with data field `"+r.field+"`); try a `["+r.field+"]` selector to limit scope to elements with `"+r.field+"` defined")};switch(r.mapped){case s.mapData:{for(var y=r.field.split("."),m=f.data,b=0;b<y.length&&m;b++){var w=y[b];m=m[w]}if(m==null)return g(),!1;var C;if(le(m)){var k=r.fieldMax-r.fieldMin;k===0?C=0:C=(m-r.fieldMin)/k}else return Ae("Do not use continuous mappers without specifying numeric data (i.e. `"+r.field+": "+m+"` for `"+t.id()+"` is non-numeric)"),!1;if(C<0?C=0:C>1&&(C=1),l.color){var E=r.valueMin[0],x=r.valueMax[0],B=r.valueMin[1],S=r.valueMax[1],N=r.valueMin[2],D=r.valueMax[2],_=r.valueMin[3]==null?1:r.valueMin[3],I=r.valueMax[3]==null?1:r.valueMax[3],P=[Math.round(E+(x-E)*C),Math.round(B+(S-B)*C),Math.round(N+(D-N)*C),Math.round(_+(I-_)*C)];i={bypass:r.bypass,name:r.name,value:P,strValue:"rgb("+P[0]+", "+P[1]+", "+P[2]+")"}}else if(l.number){var F=r.valueMin+(r.valueMax-r.valueMin)*C;i=this.parse(r.name,F,r.bypass,p)}else return!1;if(!i)return g(),!1;i.mapping=r,r=i;break}case s.data:{for(var O=r.field.split("."),M=f.data,L=0;L<O.length&&M;L++){var V=O[L];M=M[V]}if(M!=null&&(i=this.parse(r.name,M,r.bypass,p)),!i)return g(),!1;i.mapping=r,r=i;break}case s.fn:{var H=r.value,$=r.fnValue!=null?r.fnValue:H(t);if(r.prevFnValue=$,$==null)return Ae("Custom function mappers may not return null (i.e. `"+r.name+"` for ele `"+t.id()+"` is null)"),!1;if(i=this.parse(r.name,$,r.bypass,p),!i)return Ae("Custom function mappers may not return invalid values for the property type (i.e. `"+r.name+"` for ele `"+t.id()+"` is invalid)"),!1;i.mapping=kn(r),r=i;break}case void 0:break;default:return!1}return c?(d?r.bypassed=u.bypassed:r.bypassed=u,a[r.name]=r):d?u.bypassed=r:a[r.name]=r,h(),!0},Bt.cleanElements=function(t,e){for(var n=0;n<t.length;n++){var r=t[n];if(this.clearStyleHints(r),r.dirtyCompoundBoundsCache(),r.dirtyBoundingBoxCache(),!e)r._private.style={};else for(var a=r._private.style,i=Object.keys(a),s=0;s<i.length;s++){var l=i[s],c=a[l];c!=null&&(c.bypass?c.bypassed=null:a[l]=null)}}},Bt.update=function(){var t=this._private.cy,e=t.mutableElements();e.updateStyle()},Bt.updateTransitions=function(t,e){var n=this,r=t._private,a=t.pstyle("transition-property").value,i=t.pstyle("transition-duration").pfValue,s=t.pstyle("transition-delay").pfValue;if(a.length>0&&i>0){for(var l={},c=!1,u=0;u<a.length;u++){var d=a[u],f=t.pstyle(d),p=e[d];if(p){var v=p.prev,h=v,g=p.next!=null?p.next:f,y=!1,m=void 0,b=1e-6;h&&(le(h.pfValue)&&le(g.pfValue)?(y=g.pfValue-h.pfValue,m=h.pfValue+b*y):le(h.value)&&le(g.value)?(y=g.value-h.value,m=h.value+b*y):Ke(h.value)&&Ke(g.value)&&(y=h.value[0]!==g.value[0]||h.value[1]!==g.value[1]||h.value[2]!==g.value[2],m=h.strValue),y&&(l[d]=g.strValue,this.applyBypass(t,d,m),c=!0))}}if(!c)return;r.transitioning=!0,new xa(function(w){s>0?t.delayAnimation(s).play().promise().then(w):w()}).then(function(){return t.animation({style:l,duration:i,easing:t.pstyle("transition-timing-function").value,queue:!1}).play().promise()}).then(function(){n.removeBypasses(t,a),t.emitAndNotify("style"),r.transitioning=!1})}else r.transitioning&&(this.removeBypasses(t,a),t.emitAndNotify("style"),r.transitioning=!1)},Bt.checkTrigger=function(t,e,n,r,a,i){var s=this.properties[e],l=a(s);l!=null&&l(n,r)&&i(s)},Bt.checkZOrderTrigger=function(t,e,n,r){var a=this;this.checkTrigger(t,e,n,r,function(i){return i.triggersZOrder},function(){a._private.cy.notify("zorder",t)})},Bt.checkBoundsTrigger=function(t,e,n,r){this.checkTrigger(t,e,n,r,function(a){return a.triggersBounds},function(a){t.dirtyCompoundBoundsCache(),t.dirtyBoundingBoxCache(),a.triggersBoundsOfParallelBeziers&&e==="curve-style"&&(n==="bezier"||r==="bezier")&&t.parallelEdges().forEach(function(i){i.isBundledBezier()&&i.dirtyBoundingBoxCache()}),a.triggersBoundsOfConnectedEdges&&e==="display"&&(n==="none"||r==="none")&&t.connectedEdges().forEach(function(i){i.dirtyBoundingBoxCache()})})},Bt.checkTriggers=function(t,e,n,r){t.dirtyStyleCache(),this.checkZOrderTrigger(t,e,n,r),this.checkBoundsTrigger(t,e,n,r)};var $i={};$i.applyBypass=function(t,e,n,r){var a=this,i=[],s=!0;if(e==="*"||e==="**"){if(n!==void 0)for(var l=0;l<a.properties.length;l++){var c=a.properties[l],u=c.name,d=this.parse(u,n,!0);d&&i.push(d)}}else if(be(e)){var f=this.parse(e,n,!0);f&&i.push(f)}else if(Oe(e)){var p=e;r=n;for(var v=Object.keys(p),h=0;h<v.length;h++){var g=v[h],y=p[g];if(y===void 0&&(y=p[Lo(g)]),y!==void 0){var m=this.parse(g,y,!0);m&&i.push(m)}}}else return!1;if(i.length===0)return!1;for(var b=!1,w=0;w<t.length;w++){for(var C=t[w],k={},E=void 0,x=0;x<i.length;x++){var B=i[x];if(r){var S=C.pstyle(B.name);E=k[B.name]={prev:S}}b=this.applyParsedProperty(C,kn(B))||b,r&&(E.next=C.pstyle(B.name))}b&&this.updateStyleHints(C),r&&this.updateTransitions(C,k,s)}return b},$i.overrideBypass=function(t,e,n){e=Hl(e);for(var r=0;r<t.length;r++){var a=t[r],i=a._private.style[e],s=this.properties[e].type,l=s.color,c=s.mutiple,u=i?i.pfValue!=null?i.pfValue:i.value:null;!i||!i.bypass?this.applyBypass(a,e,n):(i.value=n,i.pfValue!=null&&(i.pfValue=n),l?i.strValue="rgb("+n.join(",")+")":c?i.strValue=n.join(" "):i.strValue=""+n,this.updateStyleHints(a)),this.checkTriggers(a,e,u,n)}},$i.removeAllBypasses=function(t,e){return this.removeBypasses(t,this.propertyNames,e)},$i.removeBypasses=function(t,e,n){for(var r=!0,a=0;a<t.length;a++){for(var i=t[a],s={},l=0;l<e.length;l++){var c=e[l],u=this.properties[c],d=i.pstyle(u.name);if(!(!d||!d.bypass)){var f="",p=this.parse(c,f,!0),v=s[u.name]={prev:d};this.applyParsedProperty(i,p),v.next=i.pstyle(u.name)}}this.updateStyleHints(i),n&&this.updateTransitions(i,s,r)}};var bc={};bc.getEmSizeInPixels=function(){var t=this.containerCss("font-size");return t!=null?parseFloat(t):1},bc.containerCss=function(t){var e=this._private.cy,n=e.container(),r=e.window();if(r&&n&&r.getComputedStyle)return r.getComputedStyle(n).getPropertyValue(t)};var En={};En.getRenderedStyle=function(t,e){return e?this.getStylePropertyValue(t,e,!0):this.getRawStyle(t,!0)},En.getRawStyle=function(t,e){var n=this;if(t=t[0],t){for(var r={},a=0;a<n.properties.length;a++){var i=n.properties[a],s=n.getStylePropertyValue(t,i.name,e);s!=null&&(r[i.name]=s,r[Lo(i.name)]=s)}return r}},En.getIndexedStyle=function(t,e,n,r){var a=t.pstyle(e)[n][r];return a??t.cy().style().getDefaultProperty(e)[n][0]},En.getStylePropertyValue=function(t,e,n){var r=this;if(t=t[0],t){var a=r.properties[e];a.alias&&(a=a.pointsTo);var i=a.type,s=t.pstyle(a.name);if(s){var l=s.value,c=s.units,u=s.strValue;if(n&&i.number&&l!=null&&le(l)){var d=t.cy().zoom(),f=function(y){return y*d},p=function(y,m){return f(y)+m},v=Ke(l),h=v?c.every(function(g){return g!=null}):c!=null;return h?v?l.map(function(g,y){return p(g,c[y])}).join(" "):p(l,c):v?l.map(function(g){return be(g)?g:""+f(g)}).join(" "):""+f(l)}else if(u!=null)return u}return null}},En.getAnimationStartStyle=function(t,e){for(var n={},r=0;r<e.length;r++){var a=e[r],i=a.name,s=t.pstyle(i);s!==void 0&&(Oe(s)?s=this.parse(i,s.strValue):s=this.parse(i,s)),s&&(n[i]=s)}return n},En.getPropsList=function(t){var e=this,n=[],r=t,a=e.properties;if(r)for(var i=Object.keys(r),s=0;s<i.length;s++){var l=i[s],c=r[l],u=a[l]||a[Hl(l)],d=this.parse(u.name,c);d&&n.push(d)}return n},En.getNonDefaultPropertiesHash=function(t,e,n){var r=n.slice(),a,i,s,l,c,u;for(c=0;c<e.length;c++)if(a=e[c],i=t.pstyle(a,!1),i!=null)if(i.pfValue!=null)r[0]=xi(l,r[0]),r[1]=Ei(l,r[1]);else for(s=i.strValue,u=0;u<s.length;u++)l=s.charCodeAt(u),r[0]=xi(l,r[0]),r[1]=Ei(l,r[1]);return r},En.getPropertiesHash=En.getNonDefaultPropertiesHash;var gs={};gs.appendFromJson=function(t){for(var e=this,n=0;n<t.length;n++){var r=t[n],a=r.selector,i=r.style||r.css,s=Object.keys(i);e.selector(a);for(var l=0;l<s.length;l++){var c=s[l],u=i[c];e.css(c,u)}}return e},gs.fromJson=function(t){var e=this;return e.resetToDefault(),e.appendFromJson(t),e},gs.json=function(){for(var t=[],e=this.defaultLength;e<this.length;e++){for(var n=this[e],r=n.selector,a=n.properties,i={},s=0;s<a.length;s++){var l=a[s];i[l.name]=l.strValue}t.push({selector:r?r.toString():"core",style:i})}return t};var wc={};wc.appendFromString=function(t){var e=this,n=this,r=""+t,a,i,s;r=r.replace(/[/][*](\s|.)+?[*][/]/g,"");function l(){r.length>a.length?r=r.substr(a.length):r=""}function c(){i.length>s.length?i=i.substr(s.length):i=""}for(;;){var u=r.match(/^\s*$/);if(u)break;var d=r.match(/^\s*((?:.|\s)+?)\s*\{((?:.|\s)+?)\}/);if(!d){Ae("Halting stylesheet parsing: String stylesheet contains more to parse but no selector and block found in: "+r);break}a=d[0];var f=d[1];if(f!=="core"){var p=new ur(f);if(p.invalid){Ae("Skipping parsing of block: Invalid selector found in string stylesheet: "+f),l();continue}}var v=d[2],h=!1;i=v;for(var g=[];;){var y=i.match(/^\s*$/);if(y)break;var m=i.match(/^\s*(.+?)\s*:\s*(.+?)(?:\s*;|\s*$)/);if(!m){Ae("Skipping parsing of block: Invalid formatting of style property and value definitions found in:"+v),h=!0;break}s=m[0];var b=m[1],w=m[2],C=e.properties[b];if(!C){Ae("Skipping property: Invalid property name in: "+s),c();continue}var k=n.parse(b,w);if(!k){Ae("Skipping property: Invalid property definition in: "+s),c();continue}g.push({name:b,val:w}),c()}if(h){l();break}n.selector(f);for(var E=0;E<g.length;E++){var x=g[E];n.css(x.name,x.val)}l()}return n},wc.fromString=function(t){var e=this;return e.resetToDefault(),e.appendFromString(t),e};var xt={};(function(){var t=lt,e=nS,n=aS,r=iS,a=oS,i=function(A){return"^"+A+"\\s*\\(\\s*([\\w\\.]+)\\s*\\)$"},s=function(A){var K=t+"|\\w+|"+e+"|"+n+"|"+r+"|"+a;return"^"+A+"\\s*\\(([\\w\\.]+)\\s*\\,\\s*("+t+")\\s*\\,\\s*("+t+")\\s*,\\s*("+K+")\\s*\\,\\s*("+K+")\\)$"},l=[`^url\\s*\\(\\s*['"]?(.+?)['"]?\\s*\\)$`,"^(none)$","^(.+)$"];xt.types={time:{number:!0,min:0,units:"s|ms",implicitUnits:"ms"},percent:{number:!0,min:0,max:100,units:"%",implicitUnits:"%"},percentages:{number:!0,min:0,max:100,units:"%",implicitUnits:"%",multiple:!0},zeroOneNumber:{number:!0,min:0,max:1,unitless:!0},zeroOneNumbers:{number:!0,min:0,max:1,unitless:!0,multiple:!0},nOneOneNumber:{number:!0,min:-1,max:1,unitless:!0},nonNegativeInt:{number:!0,min:0,integer:!0,unitless:!0},nonNegativeNumber:{number:!0,min:0,unitless:!0},position:{enums:["parent","origin"]},nodeSize:{number:!0,min:0,enums:["label"]},number:{number:!0,unitless:!0},numbers:{number:!0,unitless:!0,multiple:!0},positiveNumber:{number:!0,unitless:!0,min:0,strictMin:!0},size:{number:!0,min:0},bidirectionalSize:{number:!0},bidirectionalSizeMaybePercent:{number:!0,allowPercent:!0},bidirectionalSizes:{number:!0,multiple:!0},sizeMaybePercent:{number:!0,min:0,allowPercent:!0},axisDirection:{enums:["horizontal","leftward","rightward","vertical","upward","downward","auto"]},paddingRelativeTo:{enums:["width","height","average","min","max"]},bgWH:{number:!0,min:0,allowPercent:!0,enums:["auto"],multiple:!0},bgPos:{number:!0,allowPercent:!0,multiple:!0},bgRelativeTo:{enums:["inner","include-padding"],multiple:!0},bgRepeat:{enums:["repeat","repeat-x","repeat-y","no-repeat"],multiple:!0},bgFit:{enums:["none","contain","cover"],multiple:!0},bgCrossOrigin:{enums:["anonymous","use-credentials","null"],multiple:!0},bgClip:{enums:["none","node"],multiple:!0},bgContainment:{enums:["inside","over"],multiple:!0},color:{color:!0},colors:{color:!0,multiple:!0},fill:{enums:["solid","linear-gradient","radial-gradient"]},bool:{enums:["yes","no"]},bools:{enums:["yes","no"],multiple:!0},lineStyle:{enums:["solid","dotted","dashed"]},lineCap:{enums:["butt","round","square"]},linePosition:{enums:["center","inside","outside"]},lineJoin:{enums:["round","bevel","miter"]},borderStyle:{enums:["solid","dotted","dashed","double"]},curveStyle:{enums:["bezier","unbundled-bezier","haystack","segments","straight","straight-triangle","taxi","round-segments","round-taxi"]},radiusType:{enums:["arc-radius","influence-radius"],multiple:!0},fontFamily:{regex:'^([\\w- \\"]+(?:\\s*,\\s*[\\w- \\"]+)*)$'},fontStyle:{enums:["italic","normal","oblique"]},fontWeight:{enums:["normal","bold","bolder","lighter","100","200","300","400","500","600","800","900",100,200,300,400,500,600,700,800,900]},textDecoration:{enums:["none","underline","overline","line-through"]},textTransform:{enums:["none","uppercase","lowercase"]},textWrap:{enums:["none","wrap","ellipsis"]},textOverflowWrap:{enums:["whitespace","anywhere"]},textBackgroundShape:{enums:["rectangle","roundrectangle","round-rectangle"]},nodeShape:{enums:["rectangle","roundrectangle","round-rectangle","cutrectangle","cut-rectangle","bottomroundrectangle","bottom-round-rectangle","barrel","ellipse","triangle","round-triangle","square","pentagon","round-pentagon","hexagon","round-hexagon","concavehexagon","concave-hexagon","heptagon","round-heptagon","octagon","round-octagon","tag","round-tag","star","diamond","round-diamond","vee","rhomboid","right-rhomboid","polygon"]},overlayShape:{enums:["roundrectangle","round-rectangle","ellipse"]},cornerRadius:{number:!0,min:0,units:"px|em",implicitUnits:"px",enums:["auto"]},compoundIncludeLabels:{enums:["include","exclude"]},arrowShape:{enums:["tee","triangle","triangle-tee","circle-triangle","triangle-cross","triangle-backcurve","vee","square","circle","diamond","chevron","none"]},arrowFill:{enums:["filled","hollow"]},arrowWidth:{number:!0,units:"%|px|em",implicitUnits:"px",enums:["match-line"]},display:{enums:["element","none"]},visibility:{enums:["hidden","visible"]},zCompoundDepth:{enums:["bottom","orphan","auto","top"]},zIndexCompare:{enums:["auto","manual"]},valign:{enums:["top","center","bottom"]},halign:{enums:["left","center","right"]},justification:{enums:["left","center","right","auto"]},text:{string:!0},data:{mapping:!0,regex:i("data")},layoutData:{mapping:!0,regex:i("layoutData")},scratch:{mapping:!0,regex:i("scratch")},mapData:{mapping:!0,regex:s("mapData")},mapLayoutData:{mapping:!0,regex:s("mapLayoutData")},mapScratch:{mapping:!0,regex:s("mapScratch")},fn:{mapping:!0,fn:!0},url:{regexes:l,singleRegexMatchValue:!0},urls:{regexes:l,singleRegexMatchValue:!0,multiple:!0},propList:{propList:!0},angle:{number:!0,units:"deg|rad",implicitUnits:"rad"},textRotation:{number:!0,units:"deg|rad",implicitUnits:"rad",enums:["none","autorotate"]},polygonPointList:{number:!0,multiple:!0,evenMultiple:!0,min:-1,max:1,unitless:!0},edgeDistances:{enums:["intersection","node-position","endpoints"]},edgeEndpoint:{number:!0,multiple:!0,units:"%|px|em|deg|rad",implicitUnits:"px",enums:["inside-to-node","outside-to-node","outside-to-node-or-label","outside-to-line","outside-to-line-or-label"],singleEnum:!0,validate:function(A,K){switch(A.length){case 2:return K[0]!=="deg"&&K[0]!=="rad"&&K[1]!=="deg"&&K[1]!=="rad";case 1:return be(A[0])||K[0]==="deg"||K[0]==="rad";default:return!1}}},easing:{regexes:["^(spring)\\s*\\(\\s*("+t+")\\s*,\\s*("+t+")\\s*\\)$","^(cubic-bezier)\\s*\\(\\s*("+t+")\\s*,\\s*("+t+")\\s*,\\s*("+t+")\\s*,\\s*("+t+")\\s*\\)$"],enums:["linear","ease","ease-in","ease-out","ease-in-out","ease-in-sine","ease-out-sine","ease-in-out-sine","ease-in-quad","ease-out-quad","ease-in-out-quad","ease-in-cubic","ease-out-cubic","ease-in-out-cubic","ease-in-quart","ease-out-quart","ease-in-out-quart","ease-in-quint","ease-out-quint","ease-in-out-quint","ease-in-expo","ease-out-expo","ease-in-out-expo","ease-in-circ","ease-out-circ","ease-in-out-circ"]},gradientDirection:{enums:["to-bottom","to-top","to-left","to-right","to-bottom-right","to-bottom-left","to-top-right","to-top-left","to-right-bottom","to-left-bottom","to-right-top","to-left-top"]},boundsExpansion:{number:!0,multiple:!0,min:0,validate:function(A){var K=A.length;return K===1||K===2||K===4}}};var c={zeroNonZero:function(A,K){return(A==null||K==null)&&A!==K||A==0&&K!=0?!0:A!=0&&K==0},any:function(A,K){return A!=K},emptyNonEmpty:function(A,K){var W=ar(A),oe=ar(K);return W&&!oe||!W&&oe}},u=xt.types,d=[{name:"label",type:u.text,triggersBounds:c.any,triggersZOrder:c.emptyNonEmpty},{name:"text-rotation",type:u.textRotation,triggersBounds:c.any},{name:"text-margin-x",type:u.bidirectionalSize,triggersBounds:c.any},{name:"text-margin-y",type:u.bidirectionalSize,triggersBounds:c.any}],f=[{name:"source-label",type:u.text,triggersBounds:c.any},{name:"source-text-rotation",type:u.textRotation,triggersBounds:c.any},{name:"source-text-margin-x",type:u.bidirectionalSize,triggersBounds:c.any},{name:"source-text-margin-y",type:u.bidirectionalSize,triggersBounds:c.any},{name:"source-text-offset",type:u.size,triggersBounds:c.any}],p=[{name:"target-label",type:u.text,triggersBounds:c.any},{name:"target-text-rotation",type:u.textRotation,triggersBounds:c.any},{name:"target-text-margin-x",type:u.bidirectionalSize,triggersBounds:c.any},{name:"target-text-margin-y",type:u.bidirectionalSize,triggersBounds:c.any},{name:"target-text-offset",type:u.size,triggersBounds:c.any}],v=[{name:"font-family",type:u.fontFamily,triggersBounds:c.any},{name:"font-style",type:u.fontStyle,triggersBounds:c.any},{name:"font-weight",type:u.fontWeight,triggersBounds:c.any},{name:"font-size",type:u.size,triggersBounds:c.any},{name:"text-transform",type:u.textTransform,triggersBounds:c.any},{name:"text-wrap",type:u.textWrap,triggersBounds:c.any},{name:"text-overflow-wrap",type:u.textOverflowWrap,triggersBounds:c.any},{name:"text-max-width",type:u.size,triggersBounds:c.any},{name:"text-outline-width",type:u.size,triggersBounds:c.any},{name:"line-height",type:u.positiveNumber,triggersBounds:c.any}],h=[{name:"text-valign",type:u.valign,triggersBounds:c.any},{name:"text-halign",type:u.halign,triggersBounds:c.any},{name:"color",type:u.color},{name:"text-outline-color",type:u.color},{name:"text-outline-opacity",type:u.zeroOneNumber},{name:"text-background-color",type:u.color},{name:"text-background-opacity",type:u.zeroOneNumber},{name:"text-background-padding",type:u.size,triggersBounds:c.any},{name:"text-border-opacity",type:u.zeroOneNumber},{name:"text-border-color",type:u.color},{name:"text-border-width",type:u.size,triggersBounds:c.any},{name:"text-border-style",type:u.borderStyle,triggersBounds:c.any},{name:"text-background-shape",type:u.textBackgroundShape,triggersBounds:c.any},{name:"text-justification",type:u.justification}],g=[{name:"events",type:u.bool,triggersZOrder:c.any},{name:"text-events",type:u.bool,triggersZOrder:c.any}],y=[{name:"display",type:u.display,triggersZOrder:c.any,triggersBounds:c.any,triggersBoundsOfConnectedEdges:!0},{name:"visibility",type:u.visibility,triggersZOrder:c.any},{name:"opacity",type:u.zeroOneNumber,triggersZOrder:c.zeroNonZero},{name:"text-opacity",type:u.zeroOneNumber},{name:"min-zoomed-font-size",type:u.size},{name:"z-compound-depth",type:u.zCompoundDepth,triggersZOrder:c.any},{name:"z-index-compare",type:u.zIndexCompare,triggersZOrder:c.any},{name:"z-index",type:u.number,triggersZOrder:c.any}],m=[{name:"overlay-padding",type:u.size,triggersBounds:c.any},{name:"overlay-color",type:u.color},{name:"overlay-opacity",type:u.zeroOneNumber,triggersBounds:c.zeroNonZero},{name:"overlay-shape",type:u.overlayShape,triggersBounds:c.any},{name:"overlay-corner-radius",type:u.cornerRadius}],b=[{name:"underlay-padding",type:u.size,triggersBounds:c.any},{name:"underlay-color",type:u.color},{name:"underlay-opacity",type:u.zeroOneNumber,triggersBounds:c.zeroNonZero},{name:"underlay-shape",type:u.overlayShape,triggersBounds:c.any},{name:"underlay-corner-radius",type:u.cornerRadius}],w=[{name:"transition-property",type:u.propList},{name:"transition-duration",type:u.time},{name:"transition-delay",type:u.time},{name:"transition-timing-function",type:u.easing}],C=function(A,K){return K.value==="label"?-A.poolIndex():K.pfValue},k=[{name:"height",type:u.nodeSize,triggersBounds:c.any,hashOverride:C},{name:"width",type:u.nodeSize,triggersBounds:c.any,hashOverride:C},{name:"shape",type:u.nodeShape,triggersBounds:c.any},{name:"shape-polygon-points",type:u.polygonPointList,triggersBounds:c.any},{name:"corner-radius",type:u.cornerRadius},{name:"background-color",type:u.color},{name:"background-fill",type:u.fill},{name:"background-opacity",type:u.zeroOneNumber},{name:"background-blacken",type:u.nOneOneNumber},{name:"background-gradient-stop-colors",type:u.colors},{name:"background-gradient-stop-positions",type:u.percentages},{name:"background-gradient-direction",type:u.gradientDirection},{name:"padding",type:u.sizeMaybePercent,triggersBounds:c.any},{name:"padding-relative-to",type:u.paddingRelativeTo,triggersBounds:c.any},{name:"bounds-expansion",type:u.boundsExpansion,triggersBounds:c.any}],E=[{name:"border-color",type:u.color},{name:"border-opacity",type:u.zeroOneNumber},{name:"border-width",type:u.size,triggersBounds:c.any},{name:"border-style",type:u.borderStyle},{name:"border-cap",type:u.lineCap},{name:"border-join",type:u.lineJoin},{name:"border-dash-pattern",type:u.numbers},{name:"border-dash-offset",type:u.number},{name:"border-position",type:u.linePosition}],x=[{name:"outline-color",type:u.color},{name:"outline-opacity",type:u.zeroOneNumber},{name:"outline-width",type:u.size,triggersBounds:c.any},{name:"outline-style",type:u.borderStyle},{name:"outline-offset",type:u.size,triggersBounds:c.any}],B=[{name:"background-image",type:u.urls},{name:"background-image-crossorigin",type:u.bgCrossOrigin},{name:"background-image-opacity",type:u.zeroOneNumbers},{name:"background-image-containment",type:u.bgContainment},{name:"background-image-smoothing",type:u.bools},{name:"background-position-x",type:u.bgPos},{name:"background-position-y",type:u.bgPos},{name:"background-width-relative-to",type:u.bgRelativeTo},{name:"background-height-relative-to",type:u.bgRelativeTo},{name:"background-repeat",type:u.bgRepeat},{name:"background-fit",type:u.bgFit},{name:"background-clip",type:u.bgClip},{name:"background-width",type:u.bgWH},{name:"background-height",type:u.bgWH},{name:"background-offset-x",type:u.bgPos},{name:"background-offset-y",type:u.bgPos}],S=[{name:"position",type:u.position,triggersBounds:c.any},{name:"compound-sizing-wrt-labels",type:u.compoundIncludeLabels,triggersBounds:c.any},{name:"min-width",type:u.size,triggersBounds:c.any},{name:"min-width-bias-left",type:u.sizeMaybePercent,triggersBounds:c.any},{name:"min-width-bias-right",type:u.sizeMaybePercent,triggersBounds:c.any},{name:"min-height",type:u.size,triggersBounds:c.any},{name:"min-height-bias-top",type:u.sizeMaybePercent,triggersBounds:c.any},{name:"min-height-bias-bottom",type:u.sizeMaybePercent,triggersBounds:c.any}],N=[{name:"line-style",type:u.lineStyle},{name:"line-color",type:u.color},{name:"line-fill",type:u.fill},{name:"line-cap",type:u.lineCap},{name:"line-opacity",type:u.zeroOneNumber},{name:"line-dash-pattern",type:u.numbers},{name:"line-dash-offset",type:u.number},{name:"line-outline-width",type:u.size},{name:"line-outline-color",type:u.color},{name:"line-gradient-stop-colors",type:u.colors},{name:"line-gradient-stop-positions",type:u.percentages},{name:"curve-style",type:u.curveStyle,triggersBounds:c.any,triggersBoundsOfParallelBeziers:!0},{name:"haystack-radius",type:u.zeroOneNumber,triggersBounds:c.any},{name:"source-endpoint",type:u.edgeEndpoint,triggersBounds:c.any},{name:"target-endpoint",type:u.edgeEndpoint,triggersBounds:c.any},{name:"control-point-step-size",type:u.size,triggersBounds:c.any},{name:"control-point-distances",type:u.bidirectionalSizes,triggersBounds:c.any},{name:"control-point-weights",type:u.numbers,triggersBounds:c.any},{name:"segment-distances",type:u.bidirectionalSizes,triggersBounds:c.any},{name:"segment-weights",type:u.numbers,triggersBounds:c.any},{name:"segment-radii",type:u.numbers,triggersBounds:c.any},{name:"radius-type",type:u.radiusType,triggersBounds:c.any},{name:"taxi-turn",type:u.bidirectionalSizeMaybePercent,triggersBounds:c.any},{name:"taxi-turn-min-distance",type:u.size,triggersBounds:c.any},{name:"taxi-direction",type:u.axisDirection,triggersBounds:c.any},{name:"taxi-radius",type:u.number,triggersBounds:c.any},{name:"edge-distances",type:u.edgeDistances,triggersBounds:c.any},{name:"arrow-scale",type:u.positiveNumber,triggersBounds:c.any},{name:"loop-direction",type:u.angle,triggersBounds:c.any},{name:"loop-sweep",type:u.angle,triggersBounds:c.any},{name:"source-distance-from-node",type:u.size,triggersBounds:c.any},{name:"target-distance-from-node",type:u.size,triggersBounds:c.any}],D=[{name:"ghost",type:u.bool,triggersBounds:c.any},{name:"ghost-offset-x",type:u.bidirectionalSize,triggersBounds:c.any},{name:"ghost-offset-y",type:u.bidirectionalSize,triggersBounds:c.any},{name:"ghost-opacity",type:u.zeroOneNumber}],_=[{name:"selection-box-color",type:u.color},{name:"selection-box-opacity",type:u.zeroOneNumber},{name:"selection-box-border-color",type:u.color},{name:"selection-box-border-width",type:u.size},{name:"active-bg-color",type:u.color},{name:"active-bg-opacity",type:u.zeroOneNumber},{name:"active-bg-size",type:u.size},{name:"outside-texture-bg-color",type:u.color},{name:"outside-texture-bg-opacity",type:u.zeroOneNumber}],I=[];xt.pieBackgroundN=16,I.push({name:"pie-size",type:u.sizeMaybePercent});for(var P=1;P<=xt.pieBackgroundN;P++)I.push({name:"pie-"+P+"-background-color",type:u.color}),I.push({name:"pie-"+P+"-background-size",type:u.percent}),I.push({name:"pie-"+P+"-background-opacity",type:u.zeroOneNumber});var F=[],O=xt.arrowPrefixes=["source","mid-source","target","mid-target"];[{name:"arrow-shape",type:u.arrowShape,triggersBounds:c.any},{name:"arrow-color",type:u.color},{name:"arrow-fill",type:u.arrowFill},{name:"arrow-width",type:u.arrowWidth}].forEach(function(Y){O.forEach(function(A){var K=A+"-"+Y.name,W=Y.type,oe=Y.triggersBounds;F.push({name:K,type:W,triggersBounds:oe})})},{});var M=xt.properties=[].concat(g,w,y,m,b,D,h,v,d,f,p,k,E,x,B,I,S,N,F,_),L=xt.propertyGroups={behavior:g,transition:w,visibility:y,overlay:m,underlay:b,ghost:D,commonLabel:h,labelDimensions:v,mainLabel:d,sourceLabel:f,targetLabel:p,nodeBody:k,nodeBorder:E,nodeOutline:x,backgroundImage:B,pie:I,compound:S,edgeLine:N,edgeArrow:F,core:_},V=xt.propertyGroupNames={},H=xt.propertyGroupKeys=Object.keys(L);H.forEach(function(Y){V[Y]=L[Y].map(function(A){return A.name}),L[Y].forEach(function(A){return A.groupKey=Y})});var $=xt.aliases=[{name:"content",pointsTo:"label"},{name:"control-point-distance",pointsTo:"control-point-distances"},{name:"control-point-weight",pointsTo:"control-point-weights"},{name:"segment-distance",pointsTo:"segment-distances"},{name:"segment-weight",pointsTo:"segment-weights"},{name:"segment-radius",pointsTo:"segment-radii"},{name:"edge-text-rotation",pointsTo:"text-rotation"},{name:"padding-left",pointsTo:"padding"},{name:"padding-right",pointsTo:"padding"},{name:"padding-top",pointsTo:"padding"},{name:"padding-bottom",pointsTo:"padding"}];xt.propertyNames=M.map(function(Y){return Y.name});for(var z=0;z<M.length;z++){var j=M[z];M[j.name]=j}for(var ee=0;ee<$.length;ee++){var J=$[ee],X=M[J.pointsTo],ne={name:J.name,alias:!0,pointsTo:X};M.push(ne),M[J.name]=ne}})(),xt.getDefaultProperty=function(t){return this.getDefaultProperties()[t]},xt.getDefaultProperties=function(){var t=this._private;if(t.defaultProperties!=null)return t.defaultProperties;for(var e=xe({"selection-box-color":"#ddd","selection-box-opacity":.65,"selection-box-border-color":"#aaa","selection-box-border-width":1,"active-bg-color":"black","active-bg-opacity":.15,"active-bg-size":30,"outside-texture-bg-color":"#000","outside-texture-bg-opacity":.125,events:"yes","text-events":"no","text-valign":"top","text-halign":"center","text-justification":"auto","line-height":1,color:"#000","text-outline-color":"#000","text-outline-width":0,"text-outline-opacity":1,"text-opacity":1,"text-decoration":"none","text-transform":"none","text-wrap":"none","text-overflow-wrap":"whitespace","text-max-width":9999,"text-background-color":"#000","text-background-opacity":0,"text-background-shape":"rectangle","text-background-padding":0,"text-border-opacity":0,"text-border-width":0,"text-border-style":"solid","text-border-color":"#000","font-family":"Helvetica Neue, Helvetica, sans-serif","font-style":"normal","font-weight":"normal","font-size":16,"min-zoomed-font-size":0,"text-rotation":"none","source-text-rotation":"none","target-text-rotation":"none",visibility:"visible",display:"element",opacity:1,"z-compound-depth":"auto","z-index-compare":"auto","z-index":0,label:"","text-margin-x":0,"text-margin-y":0,"source-label":"","source-text-offset":0,"source-text-margin-x":0,"source-text-margin-y":0,"target-label":"","target-text-offset":0,"target-text-margin-x":0,"target-text-margin-y":0,"overlay-opacity":0,"overlay-color":"#000","overlay-padding":10,"overlay-shape":"round-rectangle","overlay-corner-radius":"auto","underlay-opacity":0,"underlay-color":"#000","underlay-padding":10,"underlay-shape":"round-rectangle","underlay-corner-radius":"auto","transition-property":"none","transition-duration":0,"transition-delay":0,"transition-timing-function":"linear","background-blacken":0,"background-color":"#999","background-fill":"solid","background-opacity":1,"background-image":"none","background-image-crossorigin":"anonymous","background-image-opacity":1,"background-image-containment":"inside","background-image-smoothing":"yes","background-position-x":"50%","background-position-y":"50%","background-offset-x":0,"background-offset-y":0,"background-width-relative-to":"include-padding","background-height-relative-to":"include-padding","background-repeat":"no-repeat","background-fit":"none","background-clip":"node","background-width":"auto","background-height":"auto","border-color":"#000","border-opacity":1,"border-width":0,"border-style":"solid","border-dash-pattern":[4,2],"border-dash-offset":0,"border-cap":"butt","border-join":"miter","border-position":"center","outline-color":"#999","outline-opacity":1,"outline-width":0,"outline-offset":0,"outline-style":"solid",height:30,width:30,shape:"ellipse","shape-polygon-points":"-1, -1, 1, -1, 1, 1, -1, 1","corner-radius":"auto","bounds-expansion":0,"background-gradient-direction":"to-bottom","background-gradient-stop-colors":"#999","background-gradient-stop-positions":"0%",ghost:"no","ghost-offset-y":0,"ghost-offset-x":0,"ghost-opacity":0,padding:0,"padding-relative-to":"width",position:"origin","compound-sizing-wrt-labels":"include","min-width":0,"min-width-bias-left":0,"min-width-bias-right":0,"min-height":0,"min-height-bias-top":0,"min-height-bias-bottom":0},{"pie-size":"100%"},[{name:"pie-{{i}}-background-color",value:"black"},{name:"pie-{{i}}-background-size",value:"0%"},{name:"pie-{{i}}-background-opacity",value:1}].reduce(function(c,u){for(var d=1;d<=xt.pieBackgroundN;d++){var f=u.name.replace("{{i}}",d),p=u.value;c[f]=p}return c},{}),{"line-style":"solid","line-color":"#999","line-fill":"solid","line-cap":"butt","line-opacity":1,"line-outline-width":0,"line-outline-color":"#000","line-gradient-stop-colors":"#999","line-gradient-stop-positions":"0%","control-point-step-size":40,"control-point-weights":.5,"segment-weights":.5,"segment-distances":20,"segment-radii":15,"radius-type":"arc-radius","taxi-turn":"50%","taxi-radius":15,"taxi-turn-min-distance":10,"taxi-direction":"auto","edge-distances":"intersection","curve-style":"haystack","haystack-radius":0,"arrow-scale":1,"loop-direction":"-45deg","loop-sweep":"-90deg","source-distance-from-node":0,"target-distance-from-node":0,"source-endpoint":"outside-to-node","target-endpoint":"outside-to-node","line-dash-pattern":[6,3],"line-dash-offset":0},[{name:"arrow-shape",value:"none"},{name:"arrow-color",value:"#999"},{name:"arrow-fill",value:"filled"},{name:"arrow-width",value:1}].reduce(function(c,u){return xt.arrowPrefixes.forEach(function(d){var f=d+"-"+u.name,p=u.value;c[f]=p}),c},{})),n={},r=0;r<this.properties.length;r++){var a=this.properties[r];if(!a.pointsTo){var i=a.name,s=e[i],l=this.parse(i,s);n[i]=l}}return t.defaultProperties=n,t.defaultProperties},xt.addDefaultStylesheet=function(){this.selector(":parent").css({shape:"rectangle",padding:10,"background-color":"#eee","border-color":"#ccc","border-width":1}).selector("edge").css({width:3}).selector(":loop").css({"curve-style":"bezier"}).selector("edge:compound").css({"curve-style":"bezier","source-endpoint":"outside-to-line","target-endpoint":"outside-to-line"}).selector(":selected").css({"background-color":"#0169D9","line-color":"#0169D9","source-arrow-color":"#0169D9","target-arrow-color":"#0169D9","mid-source-arrow-color":"#0169D9","mid-target-arrow-color":"#0169D9"}).selector(":parent:selected").css({"background-color":"#CCE1F9","border-color":"#aec8e5"}).selector(":active").css({"overlay-color":"black","overlay-padding":10,"overlay-opacity":.25}),this.defaultLength=this.length};var ms={};ms.parse=function(t,e,n,r){var a=this;if(Ye(e))return a.parseImplWarn(t,e,n,r);var i=r==="mapping"||r===!0||r===!1||r==null?"dontcare":r,s=n?"t":"f",l=""+e,c=oh(t,l,s,i),u=a.propCache=a.propCache||[],d;return(d=u[c])||(d=u[c]=a.parseImplWarn(t,e,n,r)),(n||r==="mapping")&&(d=kn(d),d&&(d.value=kn(d.value))),d},ms.parseImplWarn=function(t,e,n,r){var a=this.parseImpl(t,e,n,r);return!a&&e!=null&&Ae("The style property `".concat(t,": ").concat(e,"` is invalid")),a&&(a.name==="width"||a.name==="height")&&e==="label"&&Ae("The style value of `label` is deprecated for `"+a.name+"`"),a},ms.parseImpl=function(t,e,n,r){var a=this;t=Hl(t);var i=a.properties[t],s=e,l=a.types;if(!i||e===void 0)return null;i.alias&&(i=i.pointsTo,t=i.name);var c=be(e);c&&(e=e.trim());var u=i.type;if(!u)return null;if(n&&(e===""||e===null))return{name:t,value:e,bypass:!0,deleteBypass:!0};if(Ye(e))return{name:t,value:e,strValue:"fn",mapped:l.fn,bypass:n};var d,f;if(!(!c||r||e.length<7||e[1]!=="a")){if(e.length>=7&&e[0]==="d"&&(d=new RegExp(l.data.regex).exec(e))){if(n)return!1;var p=l.data;return{name:t,value:d,strValue:""+e,mapped:p,field:d[1],bypass:n}}else if(e.length>=10&&e[0]==="m"&&(f=new RegExp(l.mapData.regex).exec(e))){if(n||u.multiple)return!1;var v=l.mapData;if(!(u.color||u.number))return!1;var h=this.parse(t,f[4]);if(!h||h.mapped)return!1;var g=this.parse(t,f[5]);if(!g||g.mapped)return!1;if(h.pfValue===g.pfValue||h.strValue===g.strValue)return Ae("`"+t+": "+e+"` is not a valid mapper because the output range is zero; converting to `"+t+": "+h.strValue+"`"),this.parse(t,h.strValue);if(u.color){var y=h.value,m=g.value,b=y[0]===m[0]&&y[1]===m[1]&&y[2]===m[2]&&(y[3]===m[3]||(y[3]==null||y[3]===1)&&(m[3]==null||m[3]===1));if(b)return!1}return{name:t,value:f,strValue:""+e,mapped:v,field:f[1],fieldMin:parseFloat(f[2]),fieldMax:parseFloat(f[3]),valueMin:h.value,valueMax:g.value,bypass:n}}}if(u.multiple&&r!=="multiple"){var w;if(c?w=e.split(/\s+/):Ke(e)?w=e:w=[e],u.evenMultiple&&w.length%2!==0)return null;for(var C=[],k=[],E=[],x="",B=!1,S=0;S<w.length;S++){var N=a.parse(t,w[S],n,"multiple");B=B||be(N.value),C.push(N.value),E.push(N.pfValue!=null?N.pfValue:N.value),k.push(N.units),x+=(S>0?" ":"")+N.strValue}return u.validate&&!u.validate(C,k)?null:u.singleEnum&&B?C.length===1&&be(C[0])?{name:t,value:C[0],strValue:C[0],bypass:n}:null:{name:t,value:C,pfValue:E,strValue:x,bypass:n,units:k}}var D=function(){for(var A=0;A<u.enums.length;A++){var K=u.enums[A];if(K===e)return{name:t,value:e,strValue:""+e,bypass:n}}return null};if(u.number){var _,I="px";if(u.units&&(_=u.units),u.implicitUnits&&(I=u.implicitUnits),!u.unitless)if(c){var P="px|em"+(u.allowPercent?"|\\%":"");_&&(P=_);var F=e.match("^("+lt+")("+P+")?$");F&&(e=F[1],_=F[2]||I)}else(!_||u.implicitUnits)&&(_=I);if(e=parseFloat(e),isNaN(e)&&u.enums===void 0)return null;if(isNaN(e)&&u.enums!==void 0)return e=s,D();if(u.integer&&!YE(e)||u.min!==void 0&&(e<u.min||u.strictMin&&e===u.min)||u.max!==void 0&&(e>u.max||u.strictMax&&e===u.max))return null;var O={name:t,value:e,strValue:""+e+(_||""),units:_,bypass:n};return u.unitless||_!=="px"&&_!=="em"?O.pfValue=e:O.pfValue=_==="px"||!_?e:this.getEmSizeInPixels()*e,(_==="ms"||_==="s")&&(O.pfValue=_==="ms"?e:1e3*e),(_==="deg"||_==="rad")&&(O.pfValue=_==="rad"?e:DT(e)),_==="%"&&(O.pfValue=e/100),O}else if(u.propList){var M=[],L=""+e;if(L!=="none"){for(var V=L.split(/\s*,\s*|\s+/),H=0;H<V.length;H++){var $=V[H].trim();a.properties[$]?M.push($):Ae("`"+$+"` is not a valid property name")}if(M.length===0)return null}return{name:t,value:M,strValue:M.length===0?"none":M.join(" "),bypass:n}}else if(u.color){var z=fS(e);return z?{name:t,value:z,pfValue:z,strValue:"rgb("+z[0]+","+z[1]+","+z[2]+")",bypass:n}:null}else if(u.regex||u.regexes){if(u.enums){var j=D();if(j)return j}for(var ee=u.regexes?u.regexes:[u.regex],J=0;J<ee.length;J++){var X=new RegExp(ee[J]),ne=X.exec(e);if(ne)return{name:t,value:u.singleRegexMatchValue?ne[1]:ne,strValue:""+e,bypass:n}}return null}else return u.string?{name:t,value:""+e,strValue:""+e,bypass:n}:u.enums?D():null};var Nt=function t(e){if(!(this instanceof t))return new t(e);if(!zl(e)){Ze("A style must have a core reference");return}this._private={cy:e,coreStyle:{}},this.length=0,this.resetToDefault()},Dt=Nt.prototype;Dt.instanceString=function(){return"style"},Dt.clear=function(){for(var t=this._private,e=t.cy,n=e.elements(),r=0;r<this.length;r++)this[r]=void 0;return this.length=0,t.contextStyles={},t.propDiffs={},this.cleanElements(n,!0),n.forEach(function(a){var i=a[0]._private;i.styleDirty=!0,i.appliedInitStyle=!1}),this},Dt.resetToDefault=function(){return this.clear(),this.addDefaultStylesheet(),this},Dt.core=function(t){return this._private.coreStyle[t]||this.getDefaultProperty(t)},Dt.selector=function(t){var e=t==="core"?null:new ur(t),n=this.length++;return this[n]={selector:e,properties:[],mappedProperties:[],index:n},this},Dt.css=function(){var t=this,e=arguments;if(e.length===1)for(var n=e[0],r=0;r<t.properties.length;r++){var a=t.properties[r],i=n[a.name];i===void 0&&(i=n[Lo(a.name)]),i!==void 0&&this.cssRule(a.name,i)}else e.length===2&&this.cssRule(e[0],e[1]);return this},Dt.style=Dt.css,Dt.cssRule=function(t,e){var n=this.parse(t,e);if(n){var r=this.length-1;this[r].properties.push(n),this[r].properties[n.name]=n,n.name.match(/pie-(\d+)-background-size/)&&n.value&&(this._private.hasPie=!0),n.mapped&&this[r].mappedProperties.push(n);var a=!this[r].selector;a&&(this._private.coreStyle[n.name]=n)}return this},Dt.append=function(t){return Gf(t)?t.appendToStyle(this):Ke(t)?this.appendFromJson(t):be(t)&&this.appendFromString(t),this},Nt.fromJson=function(t,e){var n=new Nt(t);return n.fromJson(e),n},Nt.fromString=function(t,e){return new Nt(t).fromString(e)},[Bt,$i,bc,En,gs,wc,xt,ms].forEach(function(t){xe(Dt,t)}),Nt.types=Dt.types,Nt.properties=Dt.properties,Nt.propertyGroups=Dt.propertyGroups,Nt.propertyGroupNames=Dt.propertyGroupNames,Nt.propertyGroupKeys=Dt.propertyGroupKeys;var Y4={style:function(e){if(e){var n=this.setStyle(e);n.update()}return this._private.style},setStyle:function(e){var n=this._private;return Gf(e)?n.style=e.generateStyle(this):Ke(e)?n.style=Nt.fromJson(this,e):be(e)?n.style=Nt.fromString(this,e):n.style=Nt(this),n.style},updateStyle:function(){this.mutableElements().updateStyle()}},Z4="single",Hr={autolock:function(e){if(e!==void 0)this._private.autolock=!!e;else return this._private.autolock;return this},autoungrabify:function(e){if(e!==void 0)this._private.autoungrabify=!!e;else return this._private.autoungrabify;return this},autounselectify:function(e){if(e!==void 0)this._private.autounselectify=!!e;else return this._private.autounselectify;return this},selectionType:function(e){var n=this._private;if(n.selectionType==null&&(n.selectionType=Z4),e!==void 0)(e==="additive"||e==="single")&&(n.selectionType=e);else return n.selectionType;return this},panningEnabled:function(e){if(e!==void 0)this._private.panningEnabled=!!e;else return this._private.panningEnabled;return this},userPanningEnabled:function(e){if(e!==void 0)this._private.userPanningEnabled=!!e;else return this._private.userPanningEnabled;return this},zoomingEnabled:function(e){if(e!==void 0)this._private.zoomingEnabled=!!e;else return this._private.zoomingEnabled;return this},userZoomingEnabled:function(e){if(e!==void 0)this._private.userZoomingEnabled=!!e;else return this._private.userZoomingEnabled;return this},boxSelectionEnabled:function(e){if(e!==void 0)this._private.boxSelectionEnabled=!!e;else return this._private.boxSelectionEnabled;return this},pan:function(){var e=arguments,n=this._private.pan,r,a,i,s,l;switch(e.length){case 0:return n;case 1:if(be(e[0]))return r=e[0],n[r];if(Oe(e[0])){if(!this._private.panningEnabled)return this;i=e[0],s=i.x,l=i.y,le(s)&&(n.x=s),le(l)&&(n.y=l),this.emit("pan viewport")}break;case 2:if(!this._private.panningEnabled)return this;r=e[0],a=e[1],(r==="x"||r==="y")&&le(a)&&(n[r]=a),this.emit("pan viewport");break}return this.notify("viewport"),this},panBy:function(e,n){var r=arguments,a=this._private.pan,i,s,l,c,u;if(!this._private.panningEnabled)return this;switch(r.length){case 1:Oe(e)&&(l=r[0],c=l.x,u=l.y,le(c)&&(a.x+=c),le(u)&&(a.y+=u),this.emit("pan viewport"));break;case 2:i=e,s=n,(i==="x"||i==="y")&&le(s)&&(a[i]+=s),this.emit("pan viewport");break}return this.notify("viewport"),this},fit:function(e,n){var r=this.getFitViewport(e,n);if(r){var a=this._private;a.zoom=r.zoom,a.pan=r.pan,this.emit("pan zoom viewport"),this.notify("viewport")}return this},getFitViewport:function(e,n){if(le(e)&&n===void 0&&(n=e,e=void 0),!(!this._private.panningEnabled||!this._private.zoomingEnabled)){var r;if(be(e)){var a=e;e=this.$(a)}else if(QE(e)){var i=e;r={x1:i.x1,y1:i.y1,x2:i.x2,y2:i.y2},r.w=r.x2-r.x1,r.h=r.y2-r.y1}else Ut(e)||(e=this.mutableElements());if(!(Ut(e)&&e.empty())){r=r||e.boundingBox();var s=this.width(),l=this.height(),c;if(n=le(n)?n:0,!isNaN(s)&&!isNaN(l)&&s>0&&l>0&&!isNaN(r.w)&&!isNaN(r.h)&&r.w>0&&r.h>0){c=Math.min((s-2*n)/r.w,(l-2*n)/r.h),c=c>this._private.maxZoom?this._private.maxZoom:c,c=c<this._private.minZoom?this._private.minZoom:c;var u={x:(s-c*(r.x1+r.x2))/2,y:(l-c*(r.y1+r.y2))/2};return{zoom:c,pan:u}}}}},zoomRange:function(e,n){var r=this._private;if(n==null){var a=e;e=a.min,n=a.max}return le(e)&&le(n)&&e<=n?(r.minZoom=e,r.maxZoom=n):le(e)&&n===void 0&&e<=r.maxZoom?r.minZoom=e:le(n)&&e===void 0&&n>=r.minZoom&&(r.maxZoom=n),this},minZoom:function(e){return e===void 0?this._private.minZoom:this.zoomRange({min:e})},maxZoom:function(e){return e===void 0?this._private.maxZoom:this.zoomRange({max:e})},getZoomedViewport:function(e){var n=this._private,r=n.pan,a=n.zoom,i,s,l=!1;if(n.zoomingEnabled||(l=!0),le(e)?s=e:Oe(e)&&(s=e.level,e.position!=null?i=zo(e.position,a,r):e.renderedPosition!=null&&(i=e.renderedPosition),i!=null&&!n.panningEnabled&&(l=!0)),s=s>n.maxZoom?n.maxZoom:s,s=s<n.minZoom?n.minZoom:s,l||!le(s)||s===a||i!=null&&(!le(i.x)||!le(i.y)))return null;if(i!=null){var c=r,u=a,d=s,f={x:-d/u*(i.x-c.x)+i.x,y:-d/u*(i.y-c.y)+i.y};return{zoomed:!0,panned:!0,zoom:d,pan:f}}else return{zoomed:!0,panned:!1,zoom:s,pan:r}},zoom:function(e){if(e===void 0)return this._private.zoom;var n=this.getZoomedViewport(e),r=this._private;return n==null||!n.zoomed?this:(r.zoom=n.zoom,n.panned&&(r.pan.x=n.pan.x,r.pan.y=n.pan.y),this.emit("zoom"+(n.panned?" pan":"")+" viewport"),this.notify("viewport"),this)},viewport:function(e){var n=this._private,r=!0,a=!0,i=[],s=!1,l=!1;if(!e)return this;if(le(e.zoom)||(r=!1),Oe(e.pan)||(a=!1),!r&&!a)return this;if(r){var c=e.zoom;c<n.minZoom||c>n.maxZoom||!n.zoomingEnabled?s=!0:(n.zoom=c,i.push("zoom"))}if(a&&(!s||!e.cancelOnFailedZoom)&&n.panningEnabled){var u=e.pan;le(u.x)&&(n.pan.x=u.x,l=!1),le(u.y)&&(n.pan.y=u.y,l=!1),l||i.push("pan")}return i.length>0&&(i.push("viewport"),this.emit(i.join(" ")),this.notify("viewport")),this},center:function(e){var n=this.getCenterPan(e);return n&&(this._private.pan=n,this.emit("pan viewport"),this.notify("viewport")),this},getCenterPan:function(e,n){if(this._private.panningEnabled){if(be(e)){var r=e;e=this.mutableElements().filter(r)}else Ut(e)||(e=this.mutableElements());if(e.length!==0){var a=e.boundingBox(),i=this.width(),s=this.height();n=n===void 0?this._private.zoom:n;var l={x:(i-n*(a.x1+a.x2))/2,y:(s-n*(a.y1+a.y2))/2};return l}}},reset:function(){return!this._private.panningEnabled||!this._private.zoomingEnabled?this:(this.viewport({pan:{x:0,y:0},zoom:1}),this)},invalidateSize:function(){this._private.sizeCache=null},size:function(){var e=this._private,n=e.container,r=this;return e.sizeCache=e.sizeCache||(n?function(){var a=r.window().getComputedStyle(n),i=function(l){return parseFloat(a.getPropertyValue(l))};return{width:n.clientWidth-i("padding-left")-i("padding-right"),height:n.clientHeight-i("padding-top")-i("padding-bottom")}}():{width:1,height:1})},width:function(){return this.size().width},height:function(){return this.size().height},extent:function(){var e=this._private.pan,n=this._private.zoom,r=this.renderedExtent(),a={x1:(r.x1-e.x)/n,x2:(r.x2-e.x)/n,y1:(r.y1-e.y)/n,y2:(r.y2-e.y)/n};return a.w=a.x2-a.x1,a.h=a.y2-a.y1,a},renderedExtent:function(){var e=this.width(),n=this.height();return{x1:0,y1:0,x2:e,y2:n,w:e,h:n}},multiClickDebounceTime:function(e){if(e)this._private.multiClickDebounceTime=e;else return this._private.multiClickDebounceTime;return this}};Hr.centre=Hr.center,Hr.autolockNodes=Hr.autolock,Hr.autoungrabifyNodes=Hr.autoungrabify;var zi={data:Ve.data({field:"data",bindingEvent:"data",allowBinding:!0,allowSetting:!0,settingEvent:"data",settingTriggersEvent:!0,triggerFnName:"trigger",allowGetting:!0,updateStyle:!0}),removeData:Ve.removeData({field:"data",event:"data",triggerFnName:"trigger",triggerEvent:!0,updateStyle:!0}),scratch:Ve.data({field:"scratch",bindingEvent:"scratch",allowBinding:!0,allowSetting:!0,settingEvent:"scratch",settingTriggersEvent:!0,triggerFnName:"trigger",allowGetting:!0,updateStyle:!0}),removeScratch:Ve.removeData({field:"scratch",event:"scratch",triggerFnName:"trigger",triggerEvent:!0,updateStyle:!0})};zi.attr=zi.data,zi.removeAttr=zi.removeData;var Hi=function(e){var n=this;e=xe({},e);var r=e.container;r&&!Io(r)&&Io(r[0])&&(r=r[0]);var a=r?r._cyreg:null;a=a||{},a&&a.cy&&(a.cy.destroy(),a={});var i=a.readies=a.readies||[];r&&(r._cyreg=a),a.cy=n;var s=st!==void 0&&r!==void 0&&!e.headless,l=e;l.layout=xe({name:s?"grid":"null"},l.layout),l.renderer=xe({name:s?"canvas":"null"},l.renderer);var c=function(h,g,y){return g!==void 0?g:y!==void 0?y:h},u=this._private={container:r,ready:!1,options:l,elements:new kt(this),listeners:[],aniEles:new kt(this),data:l.data||{},scratch:{},layout:null,renderer:null,destroyed:!1,notificationsEnabled:!0,minZoom:1e-50,maxZoom:1e50,zoomingEnabled:c(!0,l.zoomingEnabled),userZoomingEnabled:c(!0,l.userZoomingEnabled),panningEnabled:c(!0,l.panningEnabled),userPanningEnabled:c(!0,l.userPanningEnabled),boxSelectionEnabled:c(!0,l.boxSelectionEnabled),autolock:c(!1,l.autolock,l.autolockNodes),autoungrabify:c(!1,l.autoungrabify,l.autoungrabifyNodes),autounselectify:c(!1,l.autounselectify),styleEnabled:l.styleEnabled===void 0?s:l.styleEnabled,zoom:le(l.zoom)?l.zoom:1,pan:{x:Oe(l.pan)&&le(l.pan.x)?l.pan.x:0,y:Oe(l.pan)&&le(l.pan.y)?l.pan.y:0},animation:{current:[],queue:[]},hasCompoundNodes:!1,multiClickDebounceTime:c(250,l.multiClickDebounceTime)};this.createEmitter(),this.selectionType(l.selectionType),this.zoomRange({min:l.minZoom,max:l.maxZoom});var d=function(h,g){var y=h.some(JE);if(y)return xa.all(h).then(g);g(h)};u.styleEnabled&&n.setStyle([]);var f=xe({},l,l.renderer);n.initRenderer(f);var p=function(h,g,y){n.notifications(!1);var m=n.mutableElements();m.length>0&&m.remove(),h!=null&&(Oe(h)||Ke(h))&&n.add(h),n.one("layoutready",function(w){n.notifications(!0),n.emit(w),n.one("load",g),n.emitAndNotify("load")}).one("layoutstop",function(){n.one("done",y),n.emit("done")});var b=xe({},n._private.options.layout);b.eles=n.elements(),n.layout(b).run()};d([l.style,l.elements],function(v){var h=v[0],g=v[1];u.styleEnabled&&n.style().append(h),p(g,function(){n.startAnimationLoop(),u.ready=!0,Ye(l.ready)&&n.on("ready",l.ready);for(var y=0;y<i.length;y++){var m=i[y];n.on("ready",m)}a&&(a.readies=[]),n.emit("ready")},l.done)})},ys=Hi.prototype;xe(ys,{instanceString:function(){return"core"},isReady:function(){return this._private.ready},destroyed:function(){return this._private.destroyed},ready:function(e){return this.isReady()?this.emitter().emit("ready",[],e):this.on("ready",e),this},destroy:function(){var e=this;if(!e.destroyed())return e.stopAnimationLoop(),e.destroyRenderer(),this.emit("destroy"),e._private.destroyed=!0,e},hasElementWithId:function(e){return this._private.elements.hasElementWithId(e)},getElementById:function(e){return this._private.elements.getElementById(e)},hasCompoundNodes:function(){return this._private.hasCompoundNodes},headless:function(){return this._private.renderer.isHeadless()},styleEnabled:function(){return this._private.styleEnabled},addToPool:function(e){return this._private.elements.merge(e),this},removeFromPool:function(e){return this._private.elements.unmerge(e),this},container:function(){return this._private.container||null},window:function(){var e=this._private.container;if(e==null)return st;var n=this._private.container.ownerDocument;return n===void 0||n==null?st:n.defaultView||st},mount:function(e){if(e!=null){var n=this,r=n._private,a=r.options;return!Io(e)&&Io(e[0])&&(e=e[0]),n.stopAnimationLoop(),n.destroyRenderer(),r.container=e,r.styleEnabled=!0,n.invalidateSize(),n.initRenderer(xe({},a,a.renderer,{name:a.renderer.name==="null"?"canvas":a.renderer.name})),n.startAnimationLoop(),n.style(a.style),n.emit("mount"),n}},unmount:function(){var e=this;return e.stopAnimationLoop(),e.destroyRenderer(),e.initRenderer({name:"null"}),e.emit("unmount"),e},options:function(){return kn(this._private.options)},json:function(e){var n=this,r=n._private,a=n.mutableElements(),i=function(C){return n.getElementById(C.id())};if(Oe(e)){if(n.startBatch(),e.elements){var s={},l=function(C,k){for(var E=[],x=[],B=0;B<C.length;B++){var S=C[B];if(!S.data.id){Ae("cy.json() cannot handle elements without an ID attribute");continue}var N=""+S.data.id,D=n.getElementById(N);s[N]=!0,D.length!==0?x.push({ele:D,json:S}):(k&&(S.group=k),E.push(S))}n.add(E);for(var _=0;_<x.length;_++){var I=x[_],P=I.ele,F=I.json;P.json(F)}};if(Ke(e.elements))l(e.elements);else for(var c=["nodes","edges"],u=0;u<c.length;u++){var d=c[u],f=e.elements[d];Ke(f)&&l(f,d)}var p=n.collection();a.filter(function(w){return!s[w.id()]}).forEach(function(w){w.isParent()?p.merge(w):w.remove()}),p.forEach(function(w){return w.children().move({parent:null})}),p.forEach(function(w){return i(w).remove()})}e.style&&n.style(e.style),e.zoom!=null&&e.zoom!==r.zoom&&n.zoom(e.zoom),e.pan&&(e.pan.x!==r.pan.x||e.pan.y!==r.pan.y)&&n.pan(e.pan),e.data&&n.data(e.data);for(var v=["minZoom","maxZoom","zoomingEnabled","userZoomingEnabled","panningEnabled","userPanningEnabled","boxSelectionEnabled","autolock","autoungrabify","autounselectify","multiClickDebounceTime"],h=0;h<v.length;h++){var g=v[h];e[g]!=null&&n[g](e[g])}return n.endBatch(),this}else{var y=!!e,m={};y?m.elements=this.elements().map(function(w){return w.json()}):(m.elements={},a.forEach(function(w){var C=w.group();m.elements[C]||(m.elements[C]=[]),m.elements[C].push(w.json())})),this._private.styleEnabled&&(m.style=n.style().json()),m.data=kn(n.data());var b=r.options;return m.zoomingEnabled=r.zoomingEnabled,m.userZoomingEnabled=r.userZoomingEnabled,m.zoom=r.zoom,m.minZoom=r.minZoom,m.maxZoom=r.maxZoom,m.panningEnabled=r.panningEnabled,m.userPanningEnabled=r.userPanningEnabled,m.pan=kn(r.pan),m.boxSelectionEnabled=r.boxSelectionEnabled,m.renderer=kn(b.renderer),m.hideEdgesOnViewport=b.hideEdgesOnViewport,m.textureOnViewport=b.textureOnViewport,m.wheelSensitivity=b.wheelSensitivity,m.motionBlur=b.motionBlur,m.multiClickDebounceTime=b.multiClickDebounceTime,m}}}),ys.$id=ys.getElementById,[R4,q4,Vp,mc,ps,G4,yc,vs,Y4,Hr,zi].forEach(function(t){xe(ys,t)});var X4={fit:!0,directed:!1,padding:30,circle:!1,grid:!1,spacingFactor:1.75,boundingBox:void 0,avoidOverlap:!0,nodeDimensionsIncludeLabels:!1,roots:void 0,depthSort:void 0,animate:!1,animationDuration:500,animationEasing:void 0,animateFilter:function(e,n){return!0},ready:void 0,stop:void 0,transform:function(e,n){return n}},Q4={maximal:!1,acyclic:!1},La=function(e){return e.scratch("breadthfirst")},Rp=function(e,n){return e.scratch("breadthfirst",n)};function $p(t){this.options=xe({},X4,Q4,t)}$p.prototype.run=function(){var t=this.options,e=t,n=t.cy,r=e.eles,a=r.nodes().filter(function(re){return!re.isParent()}),i=r,s=e.directed,l=e.acyclic||e.maximal||e.maximalAdjustments>0,c=zt(e.boundingBox?e.boundingBox:{x1:0,y1:0,w:n.width(),h:n.height()}),u;if(Ut(e.roots))u=e.roots;else if(Ke(e.roots)){for(var d=[],f=0;f<e.roots.length;f++){var p=e.roots[f],v=n.getElementById(p);d.push(v)}u=n.collection(d)}else if(be(e.roots))u=n.$(e.roots);else if(s)u=a.roots();else{var h=r.components();u=n.collection();for(var g=function(se){var ue=h[se],pe=ue.maxDegree(!1),de=ue.filter(function(me){return me.degree(!1)===pe});u=u.add(de)},y=0;y<h.length;y++)g(y)}var m=[],b={},w=function(se,ue){m[ue]==null&&(m[ue]=[]);var pe=m[ue].length;m[ue].push(se),Rp(se,{index:pe,depth:ue})},C=function(se,ue){var pe=La(se),de=pe.depth,me=pe.index;m[de][me]=null,w(se,ue)};i.bfs({roots:u,directed:e.directed,visit:function(se,ue,pe,de,me){var Ne=se[0],De=Ne.id();w(Ne,me),b[De]=!0}});for(var k=[],E=0;E<a.length;E++){var x=a[E];b[x.id()]||k.push(x)}var B=function(se){for(var ue=m[se],pe=0;pe<ue.length;pe++){var de=ue[pe];if(de==null){ue.splice(pe,1),pe--;continue}Rp(de,{depth:se,index:pe})}},S=function(){for(var se=0;se<m.length;se++)B(se)},N=function(se,ue){for(var pe=La(se),de=se.incomers().filter(function(T){return T.isNode()&&r.has(T)}),me=-1,Ne=se.id(),De=0;De<de.length;De++){var Ee=de[De],_e=La(Ee);me=Math.max(me,_e.depth)}if(pe.depth<=me){if(!e.acyclic&&ue[Ne])return null;var te=me+1;return C(se,te),ue[Ne]=te,!0}return!1};if(s&&l){var D=[],_={},I=function(se){return D.push(se)},P=function(){return D.shift()};for(a.forEach(function(re){return D.push(re)});D.length>0;){var F=P(),O=N(F,_);if(O)F.outgoers().filter(function(re){return re.isNode()&&r.has(re)}).forEach(I);else if(O===null){Ae("Detected double maximal shift for node `"+F.id()+"`. Bailing maximal adjustment due to cycle. Use `options.maximal: true` only on DAGs.");break}}}S();var M=0;if(e.avoidOverlap)for(var L=0;L<a.length;L++){var V=a[L],H=V.layoutDimensions(e),$=H.w,z=H.h;M=Math.max(M,$,z)}var j={},ee=function(se){if(j[se.id()])return j[se.id()];for(var ue=La(se).depth,pe=se.neighborhood(),de=0,me=0,Ne=0;Ne<pe.length;Ne++){var De=pe[Ne];if(!(De.isEdge()||De.isParent()||!a.has(De))){var Ee=La(De);if(Ee!=null){var _e=Ee.index,te=Ee.depth;if(!(_e==null||te==null)){var T=m[te].length;te<ue&&(de+=_e/T,me++)}}}}return me=Math.max(1,me),de=de/me,me===0&&(de=0),j[se.id()]=de,de},J=function(se,ue){var pe=ee(se),de=ee(ue),me=pe-de;return me===0?Yf(se.id(),ue.id()):me};e.depthSort!==void 0&&(J=e.depthSort);for(var X=0;X<m.length;X++)m[X].sort(J),B(X);for(var ne=[],Y=0;Y<k.length;Y++)ne.push(k[Y]);m.unshift(ne),S();for(var A=0,K=0;K<m.length;K++)A=Math.max(m[K].length,A);var W={x:c.x1+c.w/2,y:c.x1+c.h/2},oe=m.reduce(function(re,se){return Math.max(re,se.length)},0),he=function(se){var ue=La(se),pe=ue.depth,de=ue.index,me=m[pe].length,Ne=Math.max(c.w/((e.grid?oe:me)+1),M),De=Math.max(c.h/(m.length+1),M),Ee=Math.min(c.w/2/m.length,c.h/2/m.length);if(Ee=Math.max(Ee,M),e.circle){var te=Ee*pe+Ee-(m.length>0&&m[0].length<=3?Ee/2:0),T=2*Math.PI/m[pe].length*de;return pe===0&&m[0].length===1&&(te=1),{x:W.x+te*Math.cos(T),y:W.y+te*Math.sin(T)}}else{var _e={x:W.x+(de+1-(me+1)/2)*Ne,y:(pe+1)*De};return _e}};return r.nodes().layoutPositions(this,e,he),this};var J4={fit:!0,padding:30,boundingBox:void 0,avoidOverlap:!0,nodeDimensionsIncludeLabels:!1,spacingFactor:void 0,radius:void 0,startAngle:3/2*Math.PI,sweep:void 0,clockwise:!0,sort:void 0,animate:!1,animationDuration:500,animationEasing:void 0,animateFilter:function(e,n){return!0},ready:void 0,stop:void 0,transform:function(e,n){return n}};function zp(t){this.options=xe({},J4,t)}zp.prototype.run=function(){var t=this.options,e=t,n=t.cy,r=e.eles,a=e.counterclockwise!==void 0?!e.counterclockwise:e.clockwise,i=r.nodes().not(":parent");e.sort&&(i=i.sort(e.sort));for(var s=zt(e.boundingBox?e.boundingBox:{x1:0,y1:0,w:n.width(),h:n.height()}),l={x:s.x1+s.w/2,y:s.y1+s.h/2},c=e.sweep===void 0?2*Math.PI-2*Math.PI/i.length:e.sweep,u=c/Math.max(1,i.length-1),d,f=0,p=0;p<i.length;p++){var v=i[p],h=v.layoutDimensions(e),g=h.w,y=h.h;f=Math.max(f,g,y)}if(le(e.radius)?d=e.radius:i.length<=1?d=0:d=Math.min(s.h,s.w)/2-f,i.length>1&&e.avoidOverlap){f*=1.75;var m=Math.cos(u)-Math.cos(0),b=Math.sin(u)-Math.sin(0),w=Math.sqrt(f*f/(m*m+b*b));d=Math.max(w,d)}var C=function(E,x){var B=e.startAngle+x*u*(a?1:-1),S=d*Math.cos(B),N=d*Math.sin(B),D={x:l.x+S,y:l.y+N};return D};return r.nodes().layoutPositions(this,e,C),this};var eD={fit:!0,padding:30,startAngle:3/2*Math.PI,sweep:void 0,clockwise:!0,equidistant:!1,minNodeSpacing:10,boundingBox:void 0,avoidOverlap:!0,nodeDimensionsIncludeLabels:!1,height:void 0,width:void 0,spacingFactor:void 0,concentric:function(e){return e.degree()},levelWidth:function(e){return e.maxDegree()/4},animate:!1,animationDuration:500,animationEasing:void 0,animateFilter:function(e,n){return!0},ready:void 0,stop:void 0,transform:function(e,n){return n}};function Hp(t){this.options=xe({},eD,t)}Hp.prototype.run=function(){for(var t=this.options,e=t,n=e.counterclockwise!==void 0?!e.counterclockwise:e.clockwise,r=t.cy,a=e.eles,i=a.nodes().not(":parent"),s=zt(e.boundingBox?e.boundingBox:{x1:0,y1:0,w:r.width(),h:r.height()}),l={x:s.x1+s.w/2,y:s.y1+s.h/2},c=[],u=0,d=0;d<i.length;d++){var f=i[d],p=void 0;p=e.concentric(f),c.push({value:p,node:f}),f._private.scratch.concentric=p}i.updateStyle();for(var v=0;v<i.length;v++){var h=i[v],g=h.layoutDimensions(e);u=Math.max(u,g.w,g.h)}c.sort(function(re,se){return se.value-re.value});for(var y=e.levelWidth(i),m=[[]],b=m[0],w=0;w<c.length;w++){var C=c[w];if(b.length>0){var k=Math.abs(b[0].value-C.value);k>=y&&(b=[],m.push(b))}b.push(C)}var E=u+e.minNodeSpacing;if(!e.avoidOverlap){var x=m.length>0&&m[0].length>1,B=Math.min(s.w,s.h)/2-E,S=B/(m.length+x?1:0);E=Math.min(E,S)}for(var N=0,D=0;D<m.length;D++){var _=m[D],I=e.sweep===void 0?2*Math.PI-2*Math.PI/_.length:e.sweep,P=_.dTheta=I/Math.max(1,_.length-1);if(_.length>1&&e.avoidOverlap){var F=Math.cos(P)-Math.cos(0),O=Math.sin(P)-Math.sin(0),M=Math.sqrt(E*E/(F*F+O*O));N=Math.max(M,N)}_.r=N,N+=E}if(e.equidistant){for(var L=0,V=0,H=0;H<m.length;H++){var $=m[H],z=$.r-V;L=Math.max(L,z)}V=0;for(var j=0;j<m.length;j++){var ee=m[j];j===0&&(V=ee.r),ee.r=V,V+=L}}for(var J={},X=0;X<m.length;X++)for(var ne=m[X],Y=ne.dTheta,A=ne.r,K=0;K<ne.length;K++){var W=ne[K],oe=e.startAngle+(n?1:-1)*Y*K,he={x:l.x+A*Math.cos(oe),y:l.y+A*Math.sin(oe)};J[W.node.id()]=he}return a.nodes().layoutPositions(this,e,function(re){var se=re.id();return J[se]}),this};var Cc,tD={ready:function(){},stop:function(){},animate:!0,animationEasing:void 0,animationDuration:void 0,animateFilter:function(e,n){return!0},animationThreshold:250,refresh:20,fit:!0,padding:30,boundingBox:void 0,nodeDimensionsIncludeLabels:!1,randomize:!1,componentSpacing:40,nodeRepulsion:function(e){return 2048},nodeOverlap:4,idealEdgeLength:function(e){return 32},edgeElasticity:function(e){return 32},nestingFactor:1.2,gravity:1,numIter:1e3,initialTemp:1e3,coolingFactor:.99,minTemp:1};function bs(t){this.options=xe({},tD,t),this.options.layout=this;var e=this.options.eles.nodes(),n=this.options.eles.edges(),r=n.filter(function(a){var i=a.source().data("id"),s=a.target().data("id"),l=e.some(function(u){return u.data("id")===i}),c=e.some(function(u){return u.data("id")===s});return!l||!c});this.options.eles=this.options.eles.not(r)}bs.prototype.run=function(){var t=this.options,e=t.cy,n=this;n.stopped=!1,(t.animate===!0||t.animate===!1)&&n.emit({type:"layoutstart",layout:n}),t.debug===!0?Cc=!0:Cc=!1;var r=nD(e,n,t);Cc&&iD(r),t.randomize&&oD(r);var a=Rn(),i=function(){sD(r,e,t),t.fit===!0&&e.fit(t.padding)},s=function(p){return!(n.stopped||p>=t.numIter||(lD(r,t),r.temperature=r.temperature*t.coolingFactor,r.temperature<t.minTemp))},l=function(){if(t.animate===!0||t.animate===!1)i(),n.one("layoutstop",t.stop),n.emit({type:"layoutstop",layout:n});else{var p=t.eles.nodes(),v=Kp(r,t,p);p.layoutPositions(n,t,v)}},c=0,u=!0;if(t.animate===!0){var d=function f(){for(var p=0;u&&p<t.refresh;)u=s(c),c++,p++;if(!u)Up(r,t),l();else{var v=Rn();v-a>=t.animationThreshold&&i(),Ao(f)}};d()}else{for(;u;)u=s(c),c++;Up(r,t),l()}return this},bs.prototype.stop=function(){return this.stopped=!0,this.thread&&this.thread.stop(),this.emit("layoutstop"),this},bs.prototype.destroy=function(){return this.thread&&this.thread.stop(),this};var nD=function(e,n,r){for(var a=r.eles.edges(),i=r.eles.nodes(),s=zt(r.boundingBox?r.boundingBox:{x1:0,y1:0,w:e.width(),h:e.height()}),l={isCompound:e.hasCompoundNodes(),layoutNodes:[],idToIndex:{},nodeSize:i.size(),graphSet:[],indexToGraph:[],layoutEdges:[],edgeSize:a.size(),temperature:r.initialTemp,clientWidth:s.w,clientHeight:s.h,boundingBox:s},c=r.eles.components(),u={},d=0;d<c.length;d++)for(var f=c[d],p=0;p<f.length;p++){var v=f[p];u[v.id()]=d}for(var d=0;d<l.nodeSize;d++){var h=i[d],g=h.layoutDimensions(r),y={};y.isLocked=h.locked(),y.id=h.data("id"),y.parentId=h.data("parent"),y.cmptId=u[h.id()],y.children=[],y.positionX=h.position("x"),y.positionY=h.position("y"),y.offsetX=0,y.offsetY=0,y.height=g.w,y.width=g.h,y.maxX=y.positionX+y.width/2,y.minX=y.positionX-y.width/2,y.maxY=y.positionY+y.height/2,y.minY=y.positionY-y.height/2,y.padLeft=parseFloat(h.style("padding")),y.padRight=parseFloat(h.style("padding")),y.padTop=parseFloat(h.style("padding")),y.padBottom=parseFloat(h.style("padding")),y.nodeRepulsion=Ye(r.nodeRepulsion)?r.nodeRepulsion(h):r.nodeRepulsion,l.layoutNodes.push(y),l.idToIndex[y.id]=d}for(var m=[],b=0,w=-1,C=[],d=0;d<l.nodeSize;d++){var h=l.layoutNodes[d],k=h.parentId;k!=null?l.layoutNodes[l.idToIndex[k]].children.push(h.id):(m[++w]=h.id,C.push(h.id))}for(l.graphSet.push(C);b<=w;){var E=m[b++],x=l.idToIndex[E],v=l.layoutNodes[x],B=v.children;if(B.length>0){l.graphSet.push(B);for(var d=0;d<B.length;d++)m[++w]=B[d]}}for(var d=0;d<l.graphSet.length;d++)for(var S=l.graphSet[d],p=0;p<S.length;p++){var N=l.idToIndex[S[p]];l.indexToGraph[N]=d}for(var d=0;d<l.edgeSize;d++){var D=a[d],_={};_.id=D.data("id"),_.sourceId=D.data("source"),_.targetId=D.data("target");var I=Ye(r.idealEdgeLength)?r.idealEdgeLength(D):r.idealEdgeLength,P=Ye(r.edgeElasticity)?r.edgeElasticity(D):r.edgeElasticity,F=l.idToIndex[_.sourceId],O=l.idToIndex[_.targetId],M=l.indexToGraph[F],L=l.indexToGraph[O];if(M!=L){for(var V=rD(_.sourceId,_.targetId,l),H=l.graphSet[V],$=0,y=l.layoutNodes[F];H.indexOf(y.id)===-1;)y=l.layoutNodes[l.idToIndex[y.parentId]],$++;for(y=l.layoutNodes[O];H.indexOf(y.id)===-1;)y=l.layoutNodes[l.idToIndex[y.parentId]],$++;I*=$*r.nestingFactor}_.idealLength=I,_.elasticity=P,l.layoutEdges.push(_)}return l},rD=function(e,n,r){var a=aD(e,n,0,r);return 2>a.count?0:a.graph},aD=function t(e,n,r,a){var i=a.graphSet[r];if(-1<i.indexOf(e)&&-1<i.indexOf(n))return{count:2,graph:r};for(var s=0,l=0;l<i.length;l++){var c=i[l],u=a.idToIndex[c],d=a.layoutNodes[u].children;if(d.length!==0){var f=a.indexToGraph[a.idToIndex[d[0]]],p=t(e,n,f,a);if(p.count!==0)if(p.count===1){if(s++,s===2)break}else return p}}return{count:s,graph:r}},iD,oD=function(e,n){for(var r=e.clientWidth,a=e.clientHeight,i=0;i<e.nodeSize;i++){var s=e.layoutNodes[i];s.children.length===0&&!s.isLocked&&(s.positionX=Math.random()*r,s.positionY=Math.random()*a)}},Kp=function(e,n,r){var a=e.boundingBox,i={x1:1/0,x2:-1/0,y1:1/0,y2:-1/0};return n.boundingBox&&(r.forEach(function(s){var l=e.layoutNodes[e.idToIndex[s.data("id")]];i.x1=Math.min(i.x1,l.positionX),i.x2=Math.max(i.x2,l.positionX),i.y1=Math.min(i.y1,l.positionY),i.y2=Math.max(i.y2,l.positionY)}),i.w=i.x2-i.x1,i.h=i.y2-i.y1),function(s,l){var c=e.layoutNodes[e.idToIndex[s.data("id")]];if(n.boundingBox){var u=(c.positionX-i.x1)/i.w,d=(c.positionY-i.y1)/i.h;return{x:a.x1+u*a.w,y:a.y1+d*a.h}}else return{x:c.positionX,y:c.positionY}}},sD=function(e,n,r){var a=r.layout,i=r.eles.nodes(),s=Kp(e,r,i);i.positions(s),e.ready!==!0&&(e.ready=!0,a.one("layoutready",r.ready),a.emit({type:"layoutready",layout:this}))},lD=function(e,n,r){cD(e,n),fD(e),hD(e,n),pD(e),vD(e)},cD=function(e,n){for(var r=0;r<e.graphSet.length;r++)for(var a=e.graphSet[r],i=a.length,s=0;s<i;s++)for(var l=e.layoutNodes[e.idToIndex[a[s]]],c=s+1;c<i;c++){var u=e.layoutNodes[e.idToIndex[a[c]]];uD(l,u,e,n)}},qp=function(e){return-e+2*e*Math.random()},uD=function(e,n,r,a){var i=e.cmptId,s=n.cmptId;if(!(i!==s&&!r.isCompound)){var l=n.positionX-e.positionX,c=n.positionY-e.positionY,u=1;l===0&&c===0&&(l=qp(u),c=qp(u));var d=dD(e,n,l,c);if(d>0)var f=a.nodeOverlap*d,p=Math.sqrt(l*l+c*c),v=f*l/p,h=f*c/p;else var g=ws(e,l,c),y=ws(n,-1*l,-1*c),m=y.x-g.x,b=y.y-g.y,w=m*m+b*b,p=Math.sqrt(w),f=(e.nodeRepulsion+n.nodeRepulsion)/w,v=f*m/p,h=f*b/p;e.isLocked||(e.offsetX-=v,e.offsetY-=h),n.isLocked||(n.offsetX+=v,n.offsetY+=h)}},dD=function(e,n,r,a){if(r>0)var i=e.maxX-n.minX;else var i=n.maxX-e.minX;if(a>0)var s=e.maxY-n.minY;else var s=n.maxY-e.minY;return i>=0&&s>=0?Math.sqrt(i*i+s*s):0},ws=function(e,n,r){var a=e.positionX,i=e.positionY,s=e.height||1,l=e.width||1,c=r/n,u=s/l,d={};return n===0&&0<r||n===0&&0>r?(d.x=a,d.y=i+s/2,d):0<n&&-1*u<=c&&c<=u?(d.x=a+l/2,d.y=i+l*r/2/n,d):0>n&&-1*u<=c&&c<=u?(d.x=a-l/2,d.y=i-l*r/2/n,d):0<r&&(c<=-1*u||c>=u)?(d.x=a+s*n/2/r,d.y=i+s/2,d):(0>r&&(c<=-1*u||c>=u)&&(d.x=a-s*n/2/r,d.y=i-s/2),d)},fD=function(e,n){for(var r=0;r<e.edgeSize;r++){var a=e.layoutEdges[r],i=e.idToIndex[a.sourceId],s=e.layoutNodes[i],l=e.idToIndex[a.targetId],c=e.layoutNodes[l],u=c.positionX-s.positionX,d=c.positionY-s.positionY;if(!(u===0&&d===0)){var f=ws(s,u,d),p=ws(c,-1*u,-1*d),v=p.x-f.x,h=p.y-f.y,g=Math.sqrt(v*v+h*h),y=Math.pow(a.idealLength-g,2)/a.elasticity;if(g!==0)var m=y*v/g,b=y*h/g;else var m=0,b=0;s.isLocked||(s.offsetX+=m,s.offsetY+=b),c.isLocked||(c.offsetX-=m,c.offsetY-=b)}}},hD=function(e,n){if(n.gravity!==0)for(var r=1,a=0;a<e.graphSet.length;a++){var i=e.graphSet[a],s=i.length;if(a===0)var l=e.clientHeight/2,c=e.clientWidth/2;else var u=e.layoutNodes[e.idToIndex[i[0]]],d=e.layoutNodes[e.idToIndex[u.parentId]],l=d.positionX,c=d.positionY;for(var f=0;f<s;f++){var p=e.layoutNodes[e.idToIndex[i[f]]];if(!p.isLocked){var v=l-p.positionX,h=c-p.positionY,g=Math.sqrt(v*v+h*h);if(g>r){var y=n.gravity*v/g,m=n.gravity*h/g;p.offsetX+=y,p.offsetY+=m}}}}},pD=function(e,n){var r=[],a=0,i=-1;for(r.push.apply(r,e.graphSet[0]),i+=e.graphSet[0].length;a<=i;){var s=r[a++],l=e.idToIndex[s],c=e.layoutNodes[l],u=c.children;if(0<u.length&&!c.isLocked){for(var d=c.offsetX,f=c.offsetY,p=0;p<u.length;p++){var v=e.layoutNodes[e.idToIndex[u[p]]];v.offsetX+=d,v.offsetY+=f,r[++i]=u[p]}c.offsetX=0,c.offsetY=0}}},vD=function(e,n){for(var r=0;r<e.nodeSize;r++){var a=e.layoutNodes[r];0<a.children.length&&(a.maxX=void 0,a.minX=void 0,a.maxY=void 0,a.minY=void 0)}for(var r=0;r<e.nodeSize;r++){var a=e.layoutNodes[r];if(!(0<a.children.length||a.isLocked)){var i=gD(a.offsetX,a.offsetY,e.temperature);a.positionX+=i.x,a.positionY+=i.y,a.offsetX=0,a.offsetY=0,a.minX=a.positionX-a.width,a.maxX=a.positionX+a.width,a.minY=a.positionY-a.height,a.maxY=a.positionY+a.height,mD(a,e)}}for(var r=0;r<e.nodeSize;r++){var a=e.layoutNodes[r];0<a.children.length&&!a.isLocked&&(a.positionX=(a.maxX+a.minX)/2,a.positionY=(a.maxY+a.minY)/2,a.width=a.maxX-a.minX,a.height=a.maxY-a.minY)}},gD=function(e,n,r){var a=Math.sqrt(e*e+n*n);if(a>r)var i={x:r*e/a,y:r*n/a};else var i={x:e,y:n};return i},mD=function t(e,n){var r=e.parentId;if(r!=null){var a=n.layoutNodes[n.idToIndex[r]],i=!1;if((a.maxX==null||e.maxX+a.padRight>a.maxX)&&(a.maxX=e.maxX+a.padRight,i=!0),(a.minX==null||e.minX-a.padLeft<a.minX)&&(a.minX=e.minX-a.padLeft,i=!0),(a.maxY==null||e.maxY+a.padBottom>a.maxY)&&(a.maxY=e.maxY+a.padBottom,i=!0),(a.minY==null||e.minY-a.padTop<a.minY)&&(a.minY=e.minY-a.padTop,i=!0),i)return t(a,n)}},Up=function(e,n){for(var r=e.layoutNodes,a=[],i=0;i<r.length;i++){var s=r[i],l=s.cmptId,c=a[l]=a[l]||[];c.push(s)}for(var u=0,i=0;i<a.length;i++){var d=a[i];if(d){d.x1=1/0,d.x2=-1/0,d.y1=1/0,d.y2=-1/0;for(var f=0;f<d.length;f++){var p=d[f];d.x1=Math.min(d.x1,p.positionX-p.width/2),d.x2=Math.max(d.x2,p.positionX+p.width/2),d.y1=Math.min(d.y1,p.positionY-p.height/2),d.y2=Math.max(d.y2,p.positionY+p.height/2)}d.w=d.x2-d.x1,d.h=d.y2-d.y1,u+=d.w*d.h}}a.sort(function(b,w){return w.w*w.h-b.w*b.h});for(var v=0,h=0,g=0,y=0,m=Math.sqrt(u)*e.clientWidth/e.clientHeight,i=0;i<a.length;i++){var d=a[i];if(d){for(var f=0;f<d.length;f++){var p=d[f];p.isLocked||(p.positionX+=v-d.x1,p.positionY+=h-d.y1)}v+=d.w+n.componentSpacing,g+=d.w+n.componentSpacing,y=Math.max(y,d.h),g>m&&(h+=y+n.componentSpacing,v=0,g=0,y=0)}}},yD={fit:!0,padding:30,boundingBox:void 0,avoidOverlap:!0,avoidOverlapPadding:10,nodeDimensionsIncludeLabels:!1,spacingFactor:void 0,condense:!1,rows:void 0,cols:void 0,position:function(e){},sort:void 0,animate:!1,animationDuration:500,animationEasing:void 0,animateFilter:function(e,n){return!0},ready:void 0,stop:void 0,transform:function(e,n){return n}};function Gp(t){this.options=xe({},yD,t)}Gp.prototype.run=function(){var t=this.options,e=t,n=t.cy,r=e.eles,a=r.nodes().not(":parent");e.sort&&(a=a.sort(e.sort));var i=zt(e.boundingBox?e.boundingBox:{x1:0,y1:0,w:n.width(),h:n.height()});if(i.h===0||i.w===0)r.nodes().layoutPositions(this,e,function(j){return{x:i.x1,y:i.y1}});else{var s=a.size(),l=Math.sqrt(s*i.h/i.w),c=Math.round(l),u=Math.round(i.w/i.h*l),d=function(ee){if(ee==null)return Math.min(c,u);var J=Math.min(c,u);J==c?c=ee:u=ee},f=function(ee){if(ee==null)return Math.max(c,u);var J=Math.max(c,u);J==c?c=ee:u=ee},p=e.rows,v=e.cols!=null?e.cols:e.columns;if(p!=null&&v!=null)c=p,u=v;else if(p!=null&&v==null)c=p,u=Math.ceil(s/c);else if(p==null&&v!=null)u=v,c=Math.ceil(s/u);else if(u*c>s){var h=d(),g=f();(h-1)*g>=s?d(h-1):(g-1)*h>=s&&f(g-1)}else for(;u*c<s;){var y=d(),m=f();(m+1)*y>=s?f(m+1):d(y+1)}var b=i.w/u,w=i.h/c;if(e.condense&&(b=0,w=0),e.avoidOverlap)for(var C=0;C<a.length;C++){var k=a[C],E=k._private.position;(E.x==null||E.y==null)&&(E.x=0,E.y=0);var x=k.layoutDimensions(e),B=e.avoidOverlapPadding,S=x.w+B,N=x.h+B;b=Math.max(b,S),w=Math.max(w,N)}for(var D={},_=function(ee,J){return!!D["c-"+ee+"-"+J]},I=function(ee,J){D["c-"+ee+"-"+J]=!0},P=0,F=0,O=function(){F++,F>=u&&(F=0,P++)},M={},L=0;L<a.length;L++){var V=a[L],H=e.position(V);if(H&&(H.row!==void 0||H.col!==void 0)){var $={row:H.row,col:H.col};if($.col===void 0)for($.col=0;_($.row,$.col);)$.col++;else if($.row===void 0)for($.row=0;_($.row,$.col);)$.row++;M[V.id()]=$,I($.row,$.col)}}var z=function(ee,J){var X,ne;if(ee.locked()||ee.isParent())return!1;var Y=M[ee.id()];if(Y)X=Y.col*b+b/2+i.x1,ne=Y.row*w+w/2+i.y1;else{for(;_(P,F);)O();X=F*b+b/2+i.x1,ne=P*w+w/2+i.y1,I(P,F),O()}return{x:X,y:ne}};a.layoutPositions(this,e,z)}return this};var bD={ready:function(){},stop:function(){}};function kc(t){this.options=xe({},bD,t)}kc.prototype.run=function(){var t=this.options,e=t.eles,n=this;return t.cy,n.emit("layoutstart"),e.nodes().positions(function(){return{x:0,y:0}}),n.one("layoutready",t.ready),n.emit("layoutready"),n.one("layoutstop",t.stop),n.emit("layoutstop"),this},kc.prototype.stop=function(){return this};var wD={positions:void 0,zoom:void 0,pan:void 0,fit:!0,padding:30,spacingFactor:void 0,animate:!1,animationDuration:500,animationEasing:void 0,animateFilter:function(e,n){return!0},ready:void 0,stop:void 0,transform:function(e,n){return n}};function Wp(t){this.options=xe({},wD,t)}Wp.prototype.run=function(){var t=this.options,e=t.eles,n=e.nodes(),r=Ye(t.positions);function a(i){if(t.positions==null)return ET(i.position());if(r)return t.positions(i);var s=t.positions[i._private.data.id];return s??null}return n.layoutPositions(this,t,function(i,s){var l=a(i);return i.locked()||l==null?!1:l}),this};var CD={fit:!0,padding:30,boundingBox:void 0,animate:!1,animationDuration:500,animationEasing:void 0,animateFilter:function(e,n){return!0},ready:void 0,stop:void 0,transform:function(e,n){return n}};function jp(t){this.options=xe({},CD,t)}jp.prototype.run=function(){var t=this.options,e=t.cy,n=t.eles,r=zt(t.boundingBox?t.boundingBox:{x1:0,y1:0,w:e.width(),h:e.height()}),a=function(s,l){return{x:r.x1+Math.round(Math.random()*r.w),y:r.y1+Math.round(Math.random()*r.h)}};return n.nodes().layoutPositions(this,t,a),this};var kD=[{name:"breadthfirst",impl:$p},{name:"circle",impl:zp},{name:"concentric",impl:Hp},{name:"cose",impl:bs},{name:"grid",impl:Gp},{name:"null",impl:kc},{name:"preset",impl:Wp},{name:"random",impl:jp}];function Yp(t){this.options=t,this.notifications=0}var Zp=function(){},Xp=function(){throw new Error("A headless instance can not render images")};Yp.prototype={recalculateRenderedStyle:Zp,notify:function(){this.notifications++},init:Zp,isHeadless:function(){return!0},png:Xp,jpg:Xp};var xc={};xc.arrowShapeWidth=.3,xc.registerArrowShapes=function(){var t=this.arrowShapes={},e=this,n=function(u,d,f,p,v,h,g){var y=v.x-f/2-g,m=v.x+f/2+g,b=v.y-f/2-g,w=v.y+f/2+g,C=y<=u&&u<=m&&b<=d&&d<=w;return C},r=function(u,d,f,p,v){var h=u*Math.cos(p)-d*Math.sin(p),g=u*Math.sin(p)+d*Math.cos(p),y=h*f,m=g*f,b=y+v.x,w=m+v.y;return{x:b,y:w}},a=function(u,d,f,p){for(var v=[],h=0;h<u.length;h+=2){var g=u[h],y=u[h+1];v.push(r(g,y,d,f,p))}return v},i=function(u){for(var d=[],f=0;f<u.length;f++){var p=u[f];d.push(p.x,p.y)}return d},s=function(u){return u.pstyle("width").pfValue*u.pstyle("arrow-scale").pfValue*2},l=function(u,d){be(d)&&(d=t[d]),t[u]=xe({name:u,points:[-.15,-.3,.15,-.3,.15,.3,-.15,.3],collide:function(p,v,h,g,y,m){var b=i(a(this.points,h+2*m,g,y)),w=Ht(p,v,b);return w},roughCollide:n,draw:function(p,v,h,g){var y=a(this.points,v,h,g);e.arrowShapeImpl("polygon")(p,y)},spacing:function(p){return 0},gap:s},d)};l("none",{collide:Ro,roughCollide:Ro,draw:Gl,spacing:ch,gap:ch}),l("triangle",{points:[-.15,-.3,0,0,.15,-.3]}),l("arrow","triangle"),l("triangle-backcurve",{points:t.triangle.points,controlPoint:[0,-.15],roughCollide:n,draw:function(u,d,f,p,v){var h=a(this.points,d,f,p),g=this.controlPoint,y=r(g[0],g[1],d,f,p);e.arrowShapeImpl(this.name)(u,h,y)},gap:function(u){return s(u)*.8}}),l("triangle-tee",{points:[0,0,.15,-.3,-.15,-.3,0,0],pointsTee:[-.15,-.4,-.15,-.5,.15,-.5,.15,-.4],collide:function(u,d,f,p,v,h,g){var y=i(a(this.points,f+2*g,p,v)),m=i(a(this.pointsTee,f+2*g,p,v)),b=Ht(u,d,y)||Ht(u,d,m);return b},draw:function(u,d,f,p,v){var h=a(this.points,d,f,p),g=a(this.pointsTee,d,f,p);e.arrowShapeImpl(this.name)(u,h,g)}}),l("circle-triangle",{radius:.15,pointsTr:[0,-.15,.15,-.45,-.15,-.45,0,-.15],collide:function(u,d,f,p,v,h,g){var y=v,m=Math.pow(y.x-u,2)+Math.pow(y.y-d,2)<=Math.pow((f+2*g)*this.radius,2),b=i(a(this.points,f+2*g,p,v));return Ht(u,d,b)||m},draw:function(u,d,f,p,v){var h=a(this.pointsTr,d,f,p);e.arrowShapeImpl(this.name)(u,h,p.x,p.y,this.radius*d)},spacing:function(u){return e.getArrowWidth(u.pstyle("width").pfValue,u.pstyle("arrow-scale").value)*this.radius}}),l("triangle-cross",{points:[0,0,.15,-.3,-.15,-.3,0,0],baseCrossLinePts:[-.15,-.4,-.15,-.4,.15,-.4,.15,-.4],crossLinePts:function(u,d){var f=this.baseCrossLinePts.slice(),p=d/u,v=3,h=5;return f[v]=f[v]-p,f[h]=f[h]-p,f},collide:function(u,d,f,p,v,h,g){var y=i(a(this.points,f+2*g,p,v)),m=i(a(this.crossLinePts(f,h),f+2*g,p,v)),b=Ht(u,d,y)||Ht(u,d,m);return b},draw:function(u,d,f,p,v){var h=a(this.points,d,f,p),g=a(this.crossLinePts(d,v),d,f,p);e.arrowShapeImpl(this.name)(u,h,g)}}),l("vee",{points:[-.15,-.3,0,0,.15,-.3,0,-.15],gap:function(u){return s(u)*.525}}),l("circle",{radius:.15,collide:function(u,d,f,p,v,h,g){var y=v,m=Math.pow(y.x-u,2)+Math.pow(y.y-d,2)<=Math.pow((f+2*g)*this.radius,2);return m},draw:function(u,d,f,p,v){e.arrowShapeImpl(this.name)(u,p.x,p.y,this.radius*d)},spacing:function(u){return e.getArrowWidth(u.pstyle("width").pfValue,u.pstyle("arrow-scale").value)*this.radius}}),l("tee",{points:[-.15,0,-.15,-.1,.15,-.1,.15,0],spacing:function(u){return 1},gap:function(u){return 1}}),l("square",{points:[-.15,0,.15,0,.15,-.3,-.15,-.3]}),l("diamond",{points:[-.15,-.15,0,-.3,.15,-.15,0,0],gap:function(u){return u.pstyle("width").pfValue*u.pstyle("arrow-scale").value}}),l("chevron",{points:[0,0,-.15,-.15,-.1,-.2,0,-.1,.1,-.2,.15,-.15],gap:function(u){return .95*u.pstyle("width").pfValue*u.pstyle("arrow-scale").value}})};var Kr={};Kr.projectIntoViewport=function(t,e){var n=this.cy,r=this.findContainerClientCoords(),a=r[0],i=r[1],s=r[4],l=n.pan(),c=n.zoom(),u=((t-a)/s-l.x)/c,d=((e-i)/s-l.y)/c;return[u,d]},Kr.findContainerClientCoords=function(){if(this.containerBB)return this.containerBB;var t=this.container,e=t.getBoundingClientRect(),n=this.cy.window().getComputedStyle(t),r=function(m){return parseFloat(n.getPropertyValue(m))},a={left:r("padding-left"),right:r("padding-right"),top:r("padding-top"),bottom:r("padding-bottom")},i={left:r("border-left-width"),right:r("border-right-width"),top:r("border-top-width"),bottom:r("border-bottom-width")},s=t.clientWidth,l=t.clientHeight,c=a.left+a.right,u=a.top+a.bottom,d=i.left+i.right,f=e.width/(s+d),p=s-c,v=l-u,h=e.left+a.left+i.left,g=e.top+a.top+i.top;return this.containerBB=[h,g,p,v,f]},Kr.invalidateContainerClientCoordsCache=function(){this.containerBB=null},Kr.findNearestElement=function(t,e,n,r){return this.findNearestElements(t,e,n,r)[0]},Kr.findNearestElements=function(t,e,n,r){var a=this,i=this,s=i.getCachedZSortedEles(),l=[],c=i.cy.zoom(),u=i.cy.hasCompoundNodes(),d=(r?24:8)/c,f=(r?8:2)/c,p=(r?8:2)/c,v=1/0,h,g;n&&(s=s.interactive);function y(x,B){if(x.isNode()){if(g)return;g=x,l.push(x)}if(x.isEdge()&&(B==null||B<v))if(h){if(h.pstyle("z-compound-depth").value===x.pstyle("z-compound-depth").value&&h.pstyle("z-compound-depth").value===x.pstyle("z-compound-depth").value){for(var S=0;S<l.length;S++)if(l[S].isEdge()){l[S]=x,h=x,v=B??v;break}}}else l.push(x),h=x,v=B??v}function m(x){var B=x.outerWidth()+2*f,S=x.outerHeight()+2*f,N=B/2,D=S/2,_=x.position(),I=x.pstyle("corner-radius").value==="auto"?"auto":x.pstyle("corner-radius").pfValue,P=x._private.rscratch;if(_.x-N<=t&&t<=_.x+N&&_.y-D<=e&&e<=_.y+D){var F=i.nodeShapes[a.getNodeShape(x)];if(F.checkPoint(t,e,0,B,S,_.x,_.y,I,P))return y(x,0),!0}}function b(x){var B=x._private,S=B.rscratch,N=x.pstyle("width").pfValue,D=x.pstyle("arrow-scale").value,_=N/2+d,I=_*_,P=_*2,L=B.source,V=B.target,F;if(S.edgeType==="segments"||S.edgeType==="straight"||S.edgeType==="haystack"){for(var O=S.allpts,M=0;M+3<O.length;M+=2)if(AT(t,e,O[M],O[M+1],O[M+2],O[M+3],P)&&I>(F=HT(t,e,O[M],O[M+1],O[M+2],O[M+3])))return y(x,F),!0}else if(S.edgeType==="bezier"||S.edgeType==="multibezier"||S.edgeType==="self"||S.edgeType==="compound"){for(var O=S.allpts,M=0;M+5<S.allpts.length;M+=4)if(VT(t,e,O[M],O[M+1],O[M+2],O[M+3],O[M+4],O[M+5],P)&&I>(F=zT(t,e,O[M],O[M+1],O[M+2],O[M+3],O[M+4],O[M+5])))return y(x,F),!0}for(var L=L||B.source,V=V||B.target,H=a.getArrowWidth(N,D),$=[{name:"source",x:S.arrowStartX,y:S.arrowStartY,angle:S.srcArrowAngle},{name:"target",x:S.arrowEndX,y:S.arrowEndY,angle:S.tgtArrowAngle},{name:"mid-source",x:S.midX,y:S.midY,angle:S.midsrcArrowAngle},{name:"mid-target",x:S.midX,y:S.midY,angle:S.midtgtArrowAngle}],M=0;M<$.length;M++){var z=$[M],j=i.arrowShapes[x.pstyle(z.name+"-arrow-shape").value],ee=x.pstyle("width").pfValue;if(j.roughCollide(t,e,H,z.angle,{x:z.x,y:z.y},ee,d)&&j.collide(t,e,H,z.angle,{x:z.x,y:z.y},ee,d))return y(x),!0}u&&l.length>0&&(m(L),m(V))}function w(x,B,S){return dn(x,B,S)}function C(x,B){var S=x._private,N=p,D;B?D=B+"-":D="",x.boundingBox();var _=S.labelBounds[B||"main"],I=x.pstyle(D+"label").value,P=x.pstyle("text-events").strValue==="yes";if(!(!P||!I)){var F=w(S.rscratch,"labelX",B),O=w(S.rscratch,"labelY",B),M=w(S.rscratch,"labelAngle",B),L=x.pstyle(D+"text-margin-x").pfValue,V=x.pstyle(D+"text-margin-y").pfValue,H=_.x1-N-L,$=_.x2+N-L,z=_.y1-N-V,j=_.y2+N-V;if(M){var ee=Math.cos(M),J=Math.sin(M),X=function(he,re){return he=he-F,re=re-O,{x:he*ee-re*J+F,y:he*J+re*ee+O}},ne=X(H,z),Y=X(H,j),A=X($,z),K=X($,j),W=[ne.x+L,ne.y+V,A.x+L,A.y+V,K.x+L,K.y+V,Y.x+L,Y.y+V];if(Ht(t,e,W))return y(x),!0}else if(ba(_,t,e))return y(x),!0}}for(var k=s.length-1;k>=0;k--){var E=s[k];E.isNode()?m(E)||C(E):b(E)||C(E)||C(E,"source")||C(E,"target")}return l},Kr.getAllInBox=function(t,e,n,r){var a=this.getCachedZSortedEles().interactive,i=[],s=Math.min(t,n),l=Math.max(t,n),c=Math.min(e,r),u=Math.max(e,r);t=s,n=l,e=c,r=u;for(var d=zt({x1:t,y1:e,x2:n,y2:r}),f=0;f<a.length;f++){var p=a[f];if(p.isNode()){var v=p,h=v.boundingBox({includeNodes:!0,includeEdges:!1,includeLabels:!1});Zl(d,h)&&!yh(h,d)&&i.push(v)}else{var g=p,y=g._private,m=y.rscratch;if(m.startX!=null&&m.startY!=null&&!ba(d,m.startX,m.startY)||m.endX!=null&&m.endY!=null&&!ba(d,m.endX,m.endY))continue;if(m.edgeType==="bezier"||m.edgeType==="multibezier"||m.edgeType==="self"||m.edgeType==="compound"||m.edgeType==="segments"||m.edgeType==="haystack"){for(var b=y.rstyle.bezierPts||y.rstyle.linePts||y.rstyle.haystackPts,w=!0,C=0;C<b.length;C++)if(!FT(d,b[C])){w=!1;break}w&&i.push(g)}else(m.edgeType==="haystack"||m.edgeType==="straight")&&i.push(g)}}return i};var Cs={};Cs.calculateArrowAngles=function(t){var e=t._private.rscratch,n=e.edgeType==="haystack",r=e.edgeType==="bezier",a=e.edgeType==="multibezier",i=e.edgeType==="segments",s=e.edgeType==="compound",l=e.edgeType==="self",c,u,d,f,p,v,m,b;if(n?(d=e.haystackPts[0],f=e.haystackPts[1],p=e.haystackPts[2],v=e.haystackPts[3]):(d=e.arrowStartX,f=e.arrowStartY,p=e.arrowEndX,v=e.arrowEndY),m=e.midX,b=e.midY,i)c=d-e.segpts[0],u=f-e.segpts[1];else if(a||s||l||r){var h=e.allpts,g=ft(h[0],h[2],h[4],.1),y=ft(h[1],h[3],h[5],.1);c=d-g,u=f-y}else c=d-m,u=f-b;e.srcArrowAngle=Ho(c,u);var m=e.midX,b=e.midY;if(n&&(m=(d+p)/2,b=(f+v)/2),c=p-d,u=v-f,i){var h=e.allpts;if(h.length/2%2===0){var w=h.length/2,C=w-2;c=h[w]-h[C],u=h[w+1]-h[C+1]}else if(e.isRound)c=e.midVector[1],u=-e.midVector[0];else{var w=h.length/2-1,C=w-2;c=h[w]-h[C],u=h[w+1]-h[C+1]}}else if(a||s||l){var h=e.allpts,k=e.ctrlpts,E,x,B,S;if(k.length/2%2===0){var N=h.length/2-1,D=N+2,_=D+2;E=ft(h[N],h[D],h[_],0),x=ft(h[N+1],h[D+1],h[_+1],0),B=ft(h[N],h[D],h[_],1e-4),S=ft(h[N+1],h[D+1],h[_+1],1e-4)}else{var D=h.length/2-1,N=D-2,_=D+2;E=ft(h[N],h[D],h[_],.4999),x=ft(h[N+1],h[D+1],h[_+1],.4999),B=ft(h[N],h[D],h[_],.5),S=ft(h[N+1],h[D+1],h[_+1],.5)}c=B-E,u=S-x}if(e.midtgtArrowAngle=Ho(c,u),e.midDispX=c,e.midDispY=u,c*=-1,u*=-1,i){var h=e.allpts;if(h.length/2%2!==0){if(!e.isRound){var w=h.length/2-1,I=w+2;c=-(h[I]-h[w]),u=-(h[I+1]-h[w+1])}}}if(e.midsrcArrowAngle=Ho(c,u),i)c=p-e.segpts[e.segpts.length-2],u=v-e.segpts[e.segpts.length-1];else if(a||s||l||r){var h=e.allpts,P=h.length,g=ft(h[P-6],h[P-4],h[P-2],.9),y=ft(h[P-5],h[P-3],h[P-1],.9);c=p-g,u=v-y}else c=p-m,u=v-b;e.tgtArrowAngle=Ho(c,u)},Cs.getArrowWidth=Cs.getArrowHeight=function(t,e){var n=this.arrowWidthCache=this.arrowWidthCache||{},r=n[t+", "+e];return r||(r=Math.max(Math.pow(t*13.37,.9),29)*e,n[t+", "+e]=r,r)};var Ec,Sc,Sn={},en={},Qp,Jp,qr,ks,Hn,Ur,Gr,Tn,Ma,xs,ev,tv,Tc,Bc,nv,rv=function(e,n,r){r.x=n.x-e.x,r.y=n.y-e.y,r.len=Math.sqrt(r.x*r.x+r.y*r.y),r.nx=r.x/r.len,r.ny=r.y/r.len,r.ang=Math.atan2(r.ny,r.nx)},xD=function(e,n){n.x=e.x*-1,n.y=e.y*-1,n.nx=e.nx*-1,n.ny=e.ny*-1,n.ang=e.ang>0?-(Math.PI-e.ang):Math.PI+e.ang},ED=function(e,n,r,a,i){if(e!==nv?rv(n,e,Sn):xD(en,Sn),rv(n,r,en),Qp=Sn.nx*en.ny-Sn.ny*en.nx,Jp=Sn.nx*en.nx-Sn.ny*-en.ny,Hn=Math.asin(Math.max(-1,Math.min(1,Qp))),Math.abs(Hn)<1e-6){Ec=n.x,Sc=n.y,Gr=Ma=0;return}qr=1,ks=!1,Jp<0?Hn<0?Hn=Math.PI+Hn:(Hn=Math.PI-Hn,qr=-1,ks=!0):Hn>0&&(qr=-1,ks=!0),n.radius!==void 0?Ma=n.radius:Ma=a,Ur=Hn/2,xs=Math.min(Sn.len/2,en.len/2),i?(Tn=Math.abs(Math.cos(Ur)*Ma/Math.sin(Ur)),Tn>xs?(Tn=xs,Gr=Math.abs(Tn*Math.sin(Ur)/Math.cos(Ur))):Gr=Ma):(Tn=Math.min(xs,Ma),Gr=Math.abs(Tn*Math.sin(Ur)/Math.cos(Ur))),Tc=n.x+en.nx*Tn,Bc=n.y+en.ny*Tn,Ec=Tc-en.ny*Gr*qr,Sc=Bc+en.nx*Gr*qr,ev=n.x+Sn.nx*Tn,tv=n.y+Sn.ny*Tn,nv=n};function av(t,e){e.radius===0?t.lineTo(e.cx,e.cy):t.arc(e.cx,e.cy,e.radius,e.startAngle,e.endAngle,e.counterClockwise)}function Nc(t,e,n,r){var a=arguments.length>4&&arguments[4]!==void 0?arguments[4]:!0;return r===0||e.radius===0?{cx:e.x,cy:e.y,radius:0,startX:e.x,startY:e.y,stopX:e.x,stopY:e.y,startAngle:void 0,endAngle:void 0,counterClockwise:void 0}:(ED(t,e,n,r,a),{cx:Ec,cy:Sc,radius:Gr,startX:ev,startY:tv,stopX:Tc,stopY:Bc,startAngle:Sn.ang+Math.PI/2*qr,endAngle:en.ang-Math.PI/2*qr,counterClockwise:ks})}var _t={};_t.findMidptPtsEtc=function(t,e){var n=e.posPts,r=e.intersectionPts,a=e.vectorNormInverse,i,s=t.pstyle("source-endpoint"),l=t.pstyle("target-endpoint"),c=s.units!=null&&l.units!=null,u=function(k,E,x,B){var S=B-E,N=x-k,D=Math.sqrt(N*N+S*S);return{x:-S/D,y:N/D}},d=t.pstyle("edge-distances").value;switch(d){case"node-position":i=n;break;case"intersection":i=r;break;case"endpoints":{if(c){var f=this.manualEndptToPx(t.source()[0],s),p=un(f,2),v=p[0],h=p[1],g=this.manualEndptToPx(t.target()[0],l),y=un(g,2),m=y[0],b=y[1],w={x1:v,y1:h,x2:m,y2:b};a=u(v,h,m,b),i=w}else Ae("Edge ".concat(t.id()," has edge-distances:endpoints specified without manual endpoints specified via source-endpoint and target-endpoint. Falling back on edge-distances:intersection (default).")),i=r;break}}return{midptPts:i,vectorNormInverse:a}},_t.findHaystackPoints=function(t){for(var e=0;e<t.length;e++){var n=t[e],r=n._private,a=r.rscratch;if(!a.haystack){var i=Math.random()*2*Math.PI;a.source={x:Math.cos(i),y:Math.sin(i)},i=Math.random()*2*Math.PI,a.target={x:Math.cos(i),y:Math.sin(i)}}var s=r.source,l=r.target,c=s.position(),u=l.position(),d=s.width(),f=l.width(),p=s.height(),v=l.height(),h=n.pstyle("haystack-radius").value,g=h/2;a.haystackPts=a.allpts=[a.source.x*d*g+c.x,a.source.y*p*g+c.y,a.target.x*f*g+u.x,a.target.y*v*g+u.y],a.midX=(a.allpts[0]+a.allpts[2])/2,a.midY=(a.allpts[1]+a.allpts[3])/2,a.edgeType="haystack",a.haystack=!0,this.storeEdgeProjections(n),this.calculateArrowAngles(n),this.recalculateEdgeLabelProjections(n),this.calculateLabelAngles(n)}},_t.findSegmentsPoints=function(t,e){var n=t._private.rscratch,r=t.pstyle("segment-weights"),a=t.pstyle("segment-distances"),i=t.pstyle("segment-radii"),s=t.pstyle("radius-type"),l=Math.min(r.pfValue.length,a.pfValue.length),c=i.pfValue[i.pfValue.length-1],u=s.pfValue[s.pfValue.length-1];n.edgeType="segments",n.segpts=[],n.radii=[],n.isArcRadius=[];for(var d=0;d<l;d++){var f=r.pfValue[d],p=a.pfValue[d],v=1-f,h=f,g=this.findMidptPtsEtc(t,e),y=g.midptPts,m=g.vectorNormInverse,b={x:y.x1*v+y.x2*h,y:y.y1*v+y.y2*h};n.segpts.push(b.x+m.x*p,b.y+m.y*p),n.radii.push(i.pfValue[d]!==void 0?i.pfValue[d]:c),n.isArcRadius.push((s.pfValue[d]!==void 0?s.pfValue[d]:u)==="arc-radius")}},_t.findLoopPoints=function(t,e,n,r){var a=t._private.rscratch,i=e.dirCounts,s=e.srcPos,l=t.pstyle("control-point-distances"),c=l?l.pfValue[0]:void 0,u=t.pstyle("loop-direction").pfValue,d=t.pstyle("loop-sweep").pfValue,f=t.pstyle("control-point-step-size").pfValue;a.edgeType="self";var p=n,v=f;r&&(p=0,v=c);var h=u-Math.PI/2,g=h-d/2,y=h+d/2,m=u+"_"+d;p=i[m]===void 0?i[m]=0:++i[m],a.ctrlpts=[s.x+Math.cos(g)*1.4*v*(p/3+1),s.y+Math.sin(g)*1.4*v*(p/3+1),s.x+Math.cos(y)*1.4*v*(p/3+1),s.y+Math.sin(y)*1.4*v*(p/3+1)]},_t.findCompoundLoopPoints=function(t,e,n,r){var a=t._private.rscratch;a.edgeType="compound";var i=e.srcPos,s=e.tgtPos,l=e.srcW,c=e.srcH,u=e.tgtW,d=e.tgtH,f=t.pstyle("control-point-step-size").pfValue,p=t.pstyle("control-point-distances"),v=p?p.pfValue[0]:void 0,h=n,g=f;r&&(h=0,g=v);var y=50,m={x:i.x-l/2,y:i.y-c/2},b={x:s.x-u/2,y:s.y-d/2},w={x:Math.min(m.x,b.x),y:Math.min(m.y,b.y)},C=.5,k=Math.max(C,Math.log(l*.01)),E=Math.max(C,Math.log(u*.01));a.ctrlpts=[w.x,w.y-(1+Math.pow(y,1.12)/100)*g*(h/3+1)*k,w.x-(1+Math.pow(y,1.12)/100)*g*(h/3+1)*E,w.y]},_t.findStraightEdgePoints=function(t){t._private.rscratch.edgeType="straight"},_t.findBezierPoints=function(t,e,n,r,a){var i=t._private.rscratch,s=t.pstyle("control-point-step-size").pfValue,l=t.pstyle("control-point-distances"),c=t.pstyle("control-point-weights"),u=l&&c?Math.min(l.value.length,c.value.length):1,d=l?l.pfValue[0]:void 0,f=c.value[0],p=r;i.edgeType=p?"multibezier":"bezier",i.ctrlpts=[];for(var v=0;v<u;v++){var h=(.5-e.eles.length/2+n)*s*(a?-1:1),g=void 0,y=vh(h);p&&(d=l?l.pfValue[v]:s,f=c.value[v]),r?g=d:g=d!==void 0?y*d:void 0;var m=g!==void 0?g:h,b=1-f,w=f,C=this.findMidptPtsEtc(t,e),k=C.midptPts,E=C.vectorNormInverse,x={x:k.x1*b+k.x2*w,y:k.y1*b+k.y2*w};i.ctrlpts.push(x.x+E.x*m,x.y+E.y*m)}},_t.findTaxiPoints=function(t,e){var n=t._private.rscratch;n.edgeType="segments";var r="vertical",a="horizontal",i="leftward",s="rightward",l="downward",c="upward",u="auto",d=e.posPts,f=e.srcW,p=e.srcH,v=e.tgtW,h=e.tgtH,g=t.pstyle("edge-distances").value,y=g!=="node-position",m=t.pstyle("taxi-direction").value,b=m,w=t.pstyle("taxi-turn"),C=w.units==="%",k=w.pfValue,E=k<0,x=t.pstyle("taxi-turn-min-distance").pfValue,B=y?(f+v)/2:0,S=y?(p+h)/2:0,N=d.x2-d.x1,D=d.y2-d.y1,_=function(we,Ce){return we>0?Math.max(we-Ce,0):Math.min(we+Ce,0)},I=_(N,B),P=_(D,S),F=!1;b===u?m=Math.abs(I)>Math.abs(P)?a:r:b===c||b===l?(m=r,F=!0):(b===i||b===s)&&(m=a,F=!0);var O=m===r,M=O?P:I,L=O?D:N,V=vh(L),H=!1;!(F&&(C||E))&&(b===l&&L<0||b===c&&L>0||b===i&&L>0||b===s&&L<0)&&(V*=-1,M=V*Math.abs(M),H=!0);var $;if(C){var z=k<0?1+k:k;$=z*M}else{var j=k<0?M:0;$=j+k*V}var ee=function(we){return Math.abs(we)<x||Math.abs(we)>=Math.abs(M)},J=ee($),X=ee(Math.abs(M)-Math.abs($)),ne=J||X;if(ne&&!H)if(O){var Y=Math.abs(L)<=p/2,A=Math.abs(N)<=v/2;if(Y){var K=(d.x1+d.x2)/2,W=d.y1,oe=d.y2;n.segpts=[K,W,K,oe]}else if(A){var he=(d.y1+d.y2)/2,re=d.x1,se=d.x2;n.segpts=[re,he,se,he]}else n.segpts=[d.x1,d.y2]}else{var ue=Math.abs(L)<=f/2,pe=Math.abs(D)<=h/2;if(ue){var de=(d.y1+d.y2)/2,me=d.x1,Ne=d.x2;n.segpts=[me,de,Ne,de]}else if(pe){var De=(d.x1+d.x2)/2,Ee=d.y1,_e=d.y2;n.segpts=[De,Ee,De,_e]}else n.segpts=[d.x2,d.y1]}else if(O){var te=d.y1+$+(y?p/2*V:0),T=d.x1,R=d.x2;n.segpts=[T,te,R,te]}else{var Q=d.x1+$+(y?f/2*V:0),G=d.y1,U=d.y2;n.segpts=[Q,G,Q,U]}if(n.isRound){var ie=t.pstyle("taxi-radius").value,Z=t.pstyle("radius-type").value[0]==="arc-radius";n.radii=new Array(n.segpts.length/2).fill(ie),n.isArcRadius=new Array(n.segpts.length/2).fill(Z)}},_t.tryToCorrectInvalidPoints=function(t,e){var n=t._private.rscratch;if(n.edgeType==="bezier"){var r=e.srcPos,a=e.tgtPos,i=e.srcW,s=e.srcH,l=e.tgtW,c=e.tgtH,u=e.srcShape,d=e.tgtShape,f=e.srcCornerRadius,p=e.tgtCornerRadius,v=e.srcRs,h=e.tgtRs,g=!le(n.startX)||!le(n.startY),y=!le(n.arrowStartX)||!le(n.arrowStartY),m=!le(n.endX)||!le(n.endY),b=!le(n.arrowEndX)||!le(n.arrowEndY),w=3,C=this.getArrowWidth(t.pstyle("width").pfValue,t.pstyle("arrow-scale").value)*this.arrowShapeWidth,k=w*C,E=Fr({x:n.ctrlpts[0],y:n.ctrlpts[1]},{x:n.startX,y:n.startY}),x=E<k,B=Fr({x:n.ctrlpts[0],y:n.ctrlpts[1]},{x:n.endX,y:n.endY}),S=B<k,N=!1;if(g||y||x){N=!0;var D={x:n.ctrlpts[0]-r.x,y:n.ctrlpts[1]-r.y},_=Math.sqrt(D.x*D.x+D.y*D.y),I={x:D.x/_,y:D.y/_},P=Math.max(i,s),F={x:n.ctrlpts[0]+I.x*2*P,y:n.ctrlpts[1]+I.y*2*P},O=u.intersectLine(r.x,r.y,i,s,F.x,F.y,0,f,v);x?(n.ctrlpts[0]=n.ctrlpts[0]+I.x*(k-E),n.ctrlpts[1]=n.ctrlpts[1]+I.y*(k-E)):(n.ctrlpts[0]=O[0]+I.x*k,n.ctrlpts[1]=O[1]+I.y*k)}if(m||b||S){N=!0;var M={x:n.ctrlpts[0]-a.x,y:n.ctrlpts[1]-a.y},L=Math.sqrt(M.x*M.x+M.y*M.y),V={x:M.x/L,y:M.y/L},H=Math.max(i,s),$={x:n.ctrlpts[0]+V.x*2*H,y:n.ctrlpts[1]+V.y*2*H},z=d.intersectLine(a.x,a.y,l,c,$.x,$.y,0,p,h);S?(n.ctrlpts[0]=n.ctrlpts[0]+V.x*(k-B),n.ctrlpts[1]=n.ctrlpts[1]+V.y*(k-B)):(n.ctrlpts[0]=z[0]+V.x*k,n.ctrlpts[1]=z[1]+V.y*k)}N&&this.findEndpoints(t)}},_t.storeAllpts=function(t){var e=t._private.rscratch;if(e.edgeType==="multibezier"||e.edgeType==="bezier"||e.edgeType==="self"||e.edgeType==="compound"){e.allpts=[],e.allpts.push(e.startX,e.startY);for(var n=0;n+1<e.ctrlpts.length;n+=2)e.allpts.push(e.ctrlpts[n],e.ctrlpts[n+1]),n+3<e.ctrlpts.length&&e.allpts.push((e.ctrlpts[n]+e.ctrlpts[n+2])/2,(e.ctrlpts[n+1]+e.ctrlpts[n+3])/2);e.allpts.push(e.endX,e.endY);var r,a;e.ctrlpts.length/2%2===0?(r=e.allpts.length/2-1,e.midX=e.allpts[r],e.midY=e.allpts[r+1]):(r=e.allpts.length/2-3,a=.5,e.midX=ft(e.allpts[r],e.allpts[r+2],e.allpts[r+4],a),e.midY=ft(e.allpts[r+1],e.allpts[r+3],e.allpts[r+5],a))}else if(e.edgeType==="straight")e.allpts=[e.startX,e.startY,e.endX,e.endY],e.midX=(e.startX+e.endX+e.arrowStartX+e.arrowEndX)/4,e.midY=(e.startY+e.endY+e.arrowStartY+e.arrowEndY)/4;else if(e.edgeType==="segments"){if(e.allpts=[],e.allpts.push(e.startX,e.startY),e.allpts.push.apply(e.allpts,e.segpts),e.allpts.push(e.endX,e.endY),e.isRound){e.roundCorners=[];for(var i=2;i+3<e.allpts.length;i+=2){var s=e.radii[i/2-1],l=e.isArcRadius[i/2-1];e.roundCorners.push(Nc({x:e.allpts[i-2],y:e.allpts[i-1]},{x:e.allpts[i],y:e.allpts[i+1],radius:s},{x:e.allpts[i+2],y:e.allpts[i+3]},s,l))}}if(e.segpts.length%4===0){var c=e.segpts.length/2,u=c-2;e.midX=(e.segpts[u]+e.segpts[c])/2,e.midY=(e.segpts[u+1]+e.segpts[c+1])/2}else{var d=e.segpts.length/2-1;if(!e.isRound)e.midX=e.segpts[d],e.midY=e.segpts[d+1];else{var f={x:e.segpts[d],y:e.segpts[d+1]},p=e.roundCorners[d/2],v=[f.x-p.cx,f.y-p.cy],h=p.radius/Math.sqrt(Math.pow(v[0],2)+Math.pow(v[1],2));v=v.map(function(g){return g*h}),e.midX=p.cx+v[0],e.midY=p.cy+v[1],e.midVector=v}}}},_t.checkForInvalidEdgeWarning=function(t){var e=t[0]._private.rscratch;e.nodesOverlap||le(e.startX)&&le(e.startY)&&le(e.endX)&&le(e.endY)?e.loggedErr=!1:e.loggedErr||(e.loggedErr=!0,Ae("Edge `"+t.id()+"` has invalid endpoints and so it is impossible to draw. Adjust your edge style (e.g. control points) accordingly or use an alternative edge type. This is expected behaviour when the source node and the target node overlap."))},_t.findEdgeControlPoints=function(t){var e=this;if(!(!t||t.length===0)){for(var n=this,r=n.cy,a=r.hasCompoundNodes(),i={map:new xn,get:function(x){var B=this.map.get(x[0]);return B!=null?B.get(x[1]):null},set:function(x,B){var S=this.map.get(x[0]);S==null&&(S=new xn,this.map.set(x[0],S)),S.set(x[1],B)}},s=[],l=[],c=0;c<t.length;c++){var u=t[c],d=u._private,f=u.pstyle("curve-style").value;if(!(u.removed()||!u.takesUpSpace())){if(f==="haystack"){l.push(u);continue}var p=f==="unbundled-bezier"||f.endsWith("segments")||f==="straight"||f==="straight-triangle"||f.endsWith("taxi"),v=f==="unbundled-bezier"||f==="bezier",h=d.source,g=d.target,y=h.poolIndex(),m=g.poolIndex(),b=[y,m].sort(),w=i.get(b);w==null&&(w={eles:[]},i.set(b,w),s.push(b)),w.eles.push(u),p&&(w.hasUnbundled=!0),v&&(w.hasBezier=!0)}}for(var C=function(x){var B=s[x],S=i.get(B),N=void 0;if(!S.hasUnbundled){var D=S.eles[0].parallelEdges().filter(function(Q){return Q.isBundledBezier()});Wl(S.eles),D.forEach(function(Q){return S.eles.push(Q)}),S.eles.sort(function(Q,G){return Q.poolIndex()-G.poolIndex()})}var _=S.eles[0],I=_.source(),P=_.target();if(I.poolIndex()>P.poolIndex()){var F=I;I=P,P=F}var O=S.srcPos=I.position(),M=S.tgtPos=P.position(),L=S.srcW=I.outerWidth(),V=S.srcH=I.outerHeight(),H=S.tgtW=P.outerWidth(),$=S.tgtH=P.outerHeight(),z=S.srcShape=n.nodeShapes[e.getNodeShape(I)],j=S.tgtShape=n.nodeShapes[e.getNodeShape(P)],ee=S.srcCornerRadius=I.pstyle("corner-radius").value==="auto"?"auto":I.pstyle("corner-radius").pfValue,J=S.tgtCornerRadius=P.pstyle("corner-radius").value==="auto"?"auto":P.pstyle("corner-radius").pfValue,X=S.tgtRs=P._private.rscratch,ne=S.srcRs=I._private.rscratch;S.dirCounts={north:0,west:0,south:0,east:0,northwest:0,southwest:0,northeast:0,southeast:0};for(var Y=0;Y<S.eles.length;Y++){var A=S.eles[Y],K=A[0]._private.rscratch,W=A.pstyle("curve-style").value,oe=W==="unbundled-bezier"||W.endsWith("segments")||W.endsWith("taxi"),he=!I.same(A.source());if(!S.calculatedIntersection&&I!==P&&(S.hasBezier||S.hasUnbundled)){S.calculatedIntersection=!0;var re=z.intersectLine(O.x,O.y,L,V,M.x,M.y,0,ee,ne),se=S.srcIntn=re,ue=j.intersectLine(M.x,M.y,H,$,O.x,O.y,0,J,X),pe=S.tgtIntn=ue,de=S.intersectionPts={x1:re[0],x2:ue[0],y1:re[1],y2:ue[1]},me=S.posPts={x1:O.x,x2:M.x,y1:O.y,y2:M.y},Ne=ue[1]-re[1],De=ue[0]-re[0],Ee=Math.sqrt(De*De+Ne*Ne),_e=S.vector={x:De,y:Ne},te=S.vectorNorm={x:_e.x/Ee,y:_e.y/Ee},T={x:-te.y,y:te.x};S.nodesOverlap=!le(Ee)||j.checkPoint(re[0],re[1],0,H,$,M.x,M.y,J,X)||z.checkPoint(ue[0],ue[1],0,L,V,O.x,O.y,ee,ne),S.vectorNormInverse=T,N={nodesOverlap:S.nodesOverlap,dirCounts:S.dirCounts,calculatedIntersection:!0,hasBezier:S.hasBezier,hasUnbundled:S.hasUnbundled,eles:S.eles,srcPos:M,tgtPos:O,srcW:H,srcH:$,tgtW:L,tgtH:V,srcIntn:pe,tgtIntn:se,srcShape:j,tgtShape:z,posPts:{x1:me.x2,y1:me.y2,x2:me.x1,y2:me.y1},intersectionPts:{x1:de.x2,y1:de.y2,x2:de.x1,y2:de.y1},vector:{x:-_e.x,y:-_e.y},vectorNorm:{x:-te.x,y:-te.y},vectorNormInverse:{x:-T.x,y:-T.y}}}var R=he?N:S;K.nodesOverlap=R.nodesOverlap,K.srcIntn=R.srcIntn,K.tgtIntn=R.tgtIntn,K.isRound=W.startsWith("round"),a&&(I.isParent()||I.isChild()||P.isParent()||P.isChild())&&(I.parents().anySame(P)||P.parents().anySame(I)||I.same(P)&&I.isParent())?e.findCompoundLoopPoints(A,R,Y,oe):I===P?e.findLoopPoints(A,R,Y,oe):W.endsWith("segments")?e.findSegmentsPoints(A,R):W.endsWith("taxi")?e.findTaxiPoints(A,R):W==="straight"||!oe&&S.eles.length%2===1&&Y===Math.floor(S.eles.length/2)?e.findStraightEdgePoints(A):e.findBezierPoints(A,R,Y,oe,he),e.findEndpoints(A),e.tryToCorrectInvalidPoints(A,R),e.checkForInvalidEdgeWarning(A),e.storeAllpts(A),e.storeEdgeProjections(A),e.calculateArrowAngles(A),e.recalculateEdgeLabelProjections(A),e.calculateLabelAngles(A)}},k=0;k<s.length;k++)C(k);this.findHaystackPoints(l)}};function iv(t){var e=[];if(t!=null){for(var n=0;n<t.length;n+=2){var r=t[n],a=t[n+1];e.push({x:r,y:a})}return e}}_t.getSegmentPoints=function(t){var e=t[0]._private.rscratch,n=e.edgeType;if(n==="segments")return this.recalculateRenderedStyle(t),iv(e.segpts)},_t.getControlPoints=function(t){var e=t[0]._private.rscratch,n=e.edgeType;if(n==="bezier"||n==="multibezier"||n==="self"||n==="compound")return this.recalculateRenderedStyle(t),iv(e.ctrlpts)},_t.getEdgeMidpoint=function(t){var e=t[0]._private.rscratch;return this.recalculateRenderedStyle(t),{x:e.midX,y:e.midY}};var Ki={};Ki.manualEndptToPx=function(t,e){var n=this,r=t.position(),a=t.outerWidth(),i=t.outerHeight(),s=t._private.rscratch;if(e.value.length===2){var l=[e.pfValue[0],e.pfValue[1]];return e.units[0]==="%"&&(l[0]=l[0]*a),e.units[1]==="%"&&(l[1]=l[1]*i),l[0]+=r.x,l[1]+=r.y,l}else{var c=e.pfValue[0];c=-Math.PI/2+c;var u=2*Math.max(a,i),d=[r.x+Math.cos(c)*u,r.y+Math.sin(c)*u];return n.nodeShapes[this.getNodeShape(t)].intersectLine(r.x,r.y,a,i,d[0],d[1],0,t.pstyle("corner-radius").value==="auto"?"auto":t.pstyle("corner-radius").pfValue,s)}},Ki.findEndpoints=function(t){var e=this,n,r=t.source()[0],a=t.target()[0],i=r.position(),s=a.position(),l=t.pstyle("target-arrow-shape").value,c=t.pstyle("source-arrow-shape").value,u=t.pstyle("target-distance-from-node").pfValue,d=t.pstyle("source-distance-from-node").pfValue,f=r._private.rscratch,p=a._private.rscratch,v=t.pstyle("curve-style").value,h=t._private.rscratch,g=h.edgeType,y=v==="taxi",m=g==="self"||g==="compound",b=g==="bezier"||g==="multibezier"||m,w=g!=="bezier",C=g==="straight"||g==="segments",k=g==="segments",E=b||w||C,x=m||y,B=t.pstyle("source-endpoint"),S=x?"outside-to-node":B.value,N=r.pstyle("corner-radius").value==="auto"?"auto":r.pstyle("corner-radius").pfValue,D=t.pstyle("target-endpoint"),_=x?"outside-to-node":D.value,I=a.pstyle("corner-radius").value==="auto"?"auto":a.pstyle("corner-radius").pfValue;h.srcManEndpt=B,h.tgtManEndpt=D;var P,F,O,M;if(b){var L=[h.ctrlpts[0],h.ctrlpts[1]],V=w?[h.ctrlpts[h.ctrlpts.length-2],h.ctrlpts[h.ctrlpts.length-1]]:L;P=V,F=L}else if(C){var H=k?h.segpts.slice(0,2):[s.x,s.y],$=k?h.segpts.slice(h.segpts.length-2):[i.x,i.y];P=$,F=H}if(_==="inside-to-node")n=[s.x,s.y];else if(D.units)n=this.manualEndptToPx(a,D);else if(_==="outside-to-line")n=h.tgtIntn;else if(_==="outside-to-node"||_==="outside-to-node-or-label"?O=P:(_==="outside-to-line"||_==="outside-to-line-or-label")&&(O=[i.x,i.y]),n=e.nodeShapes[this.getNodeShape(a)].intersectLine(s.x,s.y,a.outerWidth(),a.outerHeight(),O[0],O[1],0,I,p),_==="outside-to-node-or-label"||_==="outside-to-line-or-label"){var z=a._private.rscratch,j=z.labelWidth,ee=z.labelHeight,J=z.labelX,X=z.labelY,ne=j/2,Y=ee/2,A=a.pstyle("text-valign").value;A==="top"?X-=Y:A==="bottom"&&(X+=Y);var K=a.pstyle("text-halign").value;K==="left"?J-=ne:K==="right"&&(J+=ne);var W=Di(O[0],O[1],[J-ne,X-Y,J+ne,X-Y,J+ne,X+Y,J-ne,X+Y],s.x,s.y);if(W.length>0){var oe=i,he=Ar(oe,ma(n)),re=Ar(oe,ma(W)),se=he;if(re<he&&(n=W,se=re),W.length>2){var ue=Ar(oe,{x:W[2],y:W[3]});ue<se&&(n=[W[2],W[3]])}}}var pe=Wo(n,P,e.arrowShapes[l].spacing(t)+u),de=Wo(n,P,e.arrowShapes[l].gap(t)+u);if(h.endX=de[0],h.endY=de[1],h.arrowEndX=pe[0],h.arrowEndY=pe[1],S==="inside-to-node")n=[i.x,i.y];else if(B.units)n=this.manualEndptToPx(r,B);else if(S==="outside-to-line")n=h.srcIntn;else if(S==="outside-to-node"||S==="outside-to-node-or-label"?M=F:(S==="outside-to-line"||S==="outside-to-line-or-label")&&(M=[s.x,s.y]),n=e.nodeShapes[this.getNodeShape(r)].intersectLine(i.x,i.y,r.outerWidth(),r.outerHeight(),M[0],M[1],0,N,f),S==="outside-to-node-or-label"||S==="outside-to-line-or-label"){var me=r._private.rscratch,Ne=me.labelWidth,De=me.labelHeight,Ee=me.labelX,_e=me.labelY,te=Ne/2,T=De/2,R=r.pstyle("text-valign").value;R==="top"?_e-=T:R==="bottom"&&(_e+=T);var Q=r.pstyle("text-halign").value;Q==="left"?Ee-=te:Q==="right"&&(Ee+=te);var G=Di(M[0],M[1],[Ee-te,_e-T,Ee+te,_e-T,Ee+te,_e+T,Ee-te,_e+T],i.x,i.y);if(G.length>0){var U=s,ie=Ar(U,ma(n)),Z=Ar(U,ma(G)),ae=ie;if(Z<ie&&(n=[G[0],G[1]],ae=Z),G.length>2){var we=Ar(U,{x:G[2],y:G[3]});we<ae&&(n=[G[2],G[3]])}}}var Ce=Wo(n,F,e.arrowShapes[c].spacing(t)+d),ge=Wo(n,F,e.arrowShapes[c].gap(t)+d);h.startX=ge[0],h.startY=ge[1],h.arrowStartX=Ce[0],h.arrowStartY=Ce[1],E&&(!le(h.startX)||!le(h.startY)||!le(h.endX)||!le(h.endY)?h.badLine=!0:h.badLine=!1)},Ki.getSourceEndpoint=function(t){var e=t[0]._private.rscratch;switch(this.recalculateRenderedStyle(t),e.edgeType){case"haystack":return{x:e.haystackPts[0],y:e.haystackPts[1]};default:return{x:e.arrowStartX,y:e.arrowStartY}}},Ki.getTargetEndpoint=function(t){var e=t[0]._private.rscratch;switch(this.recalculateRenderedStyle(t),e.edgeType){case"haystack":return{x:e.haystackPts[2],y:e.haystackPts[3]};default:return{x:e.arrowEndX,y:e.arrowEndY}}};var Dc={};function SD(t,e,n){for(var r=function(u,d,f,p){return ft(u,d,f,p)},a=e._private,i=a.rstyle.bezierPts,s=0;s<t.bezierProjPcts.length;s++){var l=t.bezierProjPcts[s];i.push({x:r(n[0],n[2],n[4],l),y:r(n[1],n[3],n[5],l)})}}Dc.storeEdgeProjections=function(t){var e=t._private,n=e.rscratch,r=n.edgeType;if(e.rstyle.bezierPts=null,e.rstyle.linePts=null,e.rstyle.haystackPts=null,r==="multibezier"||r==="bezier"||r==="self"||r==="compound"){e.rstyle.bezierPts=[];for(var a=0;a+5<n.allpts.length;a+=4)SD(this,t,n.allpts.slice(a,a+6))}else if(r==="segments")for(var i=e.rstyle.linePts=[],a=0;a+1<n.allpts.length;a+=2)i.push({x:n.allpts[a],y:n.allpts[a+1]});else if(r==="haystack"){var s=n.haystackPts;e.rstyle.haystackPts=[{x:s[0],y:s[1]},{x:s[2],y:s[3]}]}e.rstyle.arrowWidth=this.getArrowWidth(t.pstyle("width").pfValue,t.pstyle("arrow-scale").value)*this.arrowShapeWidth},Dc.recalculateEdgeProjections=function(t){this.findEdgeControlPoints(t)};var Bn={};Bn.recalculateNodeLabelProjection=function(t){var e=t.pstyle("label").strValue;if(!ar(e)){var n,r,a=t._private,i=t.width(),s=t.height(),l=t.padding(),c=t.position(),u=t.pstyle("text-halign").strValue,d=t.pstyle("text-valign").strValue,f=a.rscratch,p=a.rstyle;switch(u){case"left":n=c.x-i/2-l;break;case"right":n=c.x+i/2+l;break;default:n=c.x}switch(d){case"top":r=c.y-s/2-l;break;case"bottom":r=c.y+s/2+l;break;default:r=c.y}f.labelX=n,f.labelY=r,p.labelX=n,p.labelY=r,this.calculateLabelAngles(t),this.applyLabelDimensions(t)}};var ov=function(e,n){var r=Math.atan(n/e);return e===0&&r<0&&(r=r*-1),r},sv=function(e,n){var r=n.x-e.x,a=n.y-e.y;return ov(r,a)},TD=function(e,n,r,a){var i=Bi(0,a-.001,1),s=Bi(0,a+.001,1),l=ya(e,n,r,i),c=ya(e,n,r,s);return sv(l,c)};Bn.recalculateEdgeLabelProjections=function(t){var e,n=t._private,r=n.rscratch,a=this,i={mid:t.pstyle("label").strValue,source:t.pstyle("source-label").strValue,target:t.pstyle("target-label").strValue};if(i.mid||i.source||i.target){e={x:r.midX,y:r.midY};var s=function(f,p,v){sr(n.rscratch,f,p,v),sr(n.rstyle,f,p,v)};s("labelX",null,e.x),s("labelY",null,e.y);var l=ov(r.midDispX,r.midDispY);s("labelAutoAngle",null,l);var c=function d(){if(d.cache)return d.cache;for(var f=[],p=0;p+5<r.allpts.length;p+=4){var v={x:r.allpts[p],y:r.allpts[p+1]},h={x:r.allpts[p+2],y:r.allpts[p+3]},g={x:r.allpts[p+4],y:r.allpts[p+5]};f.push({p0:v,p1:h,p2:g,startDist:0,length:0,segments:[]})}var y=n.rstyle.bezierPts,m=a.bezierProjPcts.length;function b(x,B,S,N,D){var _=Fr(B,S),I=x.segments[x.segments.length-1],P={p0:B,p1:S,t0:N,t1:D,startDist:I?I.startDist+I.length:0,length:_};x.segments.push(P),x.length+=_}for(var w=0;w<f.length;w++){var C=f[w],k=f[w-1];k&&(C.startDist=k.startDist+k.length),b(C,C.p0,y[w*m],0,a.bezierProjPcts[0]);for(var E=0;E<m-1;E++)b(C,y[w*m+E],y[w*m+E+1],a.bezierProjPcts[E],a.bezierProjPcts[E+1]);b(C,y[w*m+m-1],C.p2,a.bezierProjPcts[m-1],1)}return d.cache=f},u=function(f){var p,v=f==="source";if(i[f]){var h=t.pstyle(f+"-text-offset").pfValue;switch(r.edgeType){case"self":case"compound":case"bezier":case"multibezier":{for(var g=c(),y,m=0,b=0,w=0;w<g.length;w++){for(var C=g[v?w:g.length-1-w],k=0;k<C.segments.length;k++){var E=C.segments[v?k:C.segments.length-1-k],x=w===g.length-1&&k===C.segments.length-1;if(m=b,b+=E.length,b>=h||x){y={cp:C,segment:E};break}}if(y)break}var B=y.cp,S=y.segment,N=(h-m)/S.length,D=S.t1-S.t0,_=v?S.t0+D*N:S.t1-D*N;_=Bi(0,_,1),e=ya(B.p0,B.p1,B.p2,_),p=TD(B.p0,B.p1,B.p2,_);break}case"straight":case"segments":case"haystack":{for(var I=0,P,F,O,M,L=r.allpts.length,V=0;V+3<L&&(v?(O={x:r.allpts[V],y:r.allpts[V+1]},M={x:r.allpts[V+2],y:r.allpts[V+3]}):(O={x:r.allpts[L-2-V],y:r.allpts[L-1-V]},M={x:r.allpts[L-4-V],y:r.allpts[L-3-V]}),P=Fr(O,M),F=I,I+=P,!(I>=h));V+=2);var H=h-F,$=H/P;$=Bi(0,$,1),e=PT(O,M,$),p=sv(O,M);break}}s("labelX",f,e.x),s("labelY",f,e.y),s("labelAutoAngle",f,p)}};u("source"),u("target"),this.applyLabelDimensions(t)}},Bn.applyLabelDimensions=function(t){this.applyPrefixedLabelDimensions(t),t.isEdge()&&(this.applyPrefixedLabelDimensions(t,"source"),this.applyPrefixedLabelDimensions(t,"target"))},Bn.applyPrefixedLabelDimensions=function(t,e){var n=t._private,r=this.getLabelText(t,e),a=this.calculateLabelDimensions(t,r),i=t.pstyle("line-height").pfValue,s=t.pstyle("text-wrap").strValue,l=dn(n.rscratch,"labelWrapCachedLines",e)||[],c=s!=="wrap"?1:Math.max(l.length,1),u=a.height/c,d=u*i,f=a.width,p=a.height+(c-1)*(i-1)*u;sr(n.rstyle,"labelWidth",e,f),sr(n.rscratch,"labelWidth",e,f),sr(n.rstyle,"labelHeight",e,p),sr(n.rscratch,"labelHeight",e,p),sr(n.rscratch,"labelLineHeight",e,d)},Bn.getLabelText=function(t,e){var n=t._private,r=e?e+"-":"",a=t.pstyle(r+"label").strValue,i=t.pstyle("text-transform").value,s=function(j,ee){return ee?(sr(n.rscratch,j,e,ee),ee):dn(n.rscratch,j,e)};if(!a)return"";i=="none"||(i=="uppercase"?a=a.toUpperCase():i=="lowercase"&&(a=a.toLowerCase()));var l=t.pstyle("text-wrap").value;if(l==="wrap"){var c=s("labelKey");if(c!=null&&s("labelWrapKey")===c)return s("labelWrapCachedText");for(var u="​",d=a.split(`
42
42
  `),f=t.pstyle("text-max-width").pfValue,p=t.pstyle("text-overflow-wrap").value,v=p==="anywhere",h=[],g=/[\s\u200b]+|$/g,y=0;y<d.length;y++){var m=d[y],b=this.calculateLabelDimensions(t,m),w=b.width;if(v){var C=m.split("").join(u);m=C}if(w>f){var k=m.matchAll(g),E="",x=0,B=Hf(k),S;try{for(B.s();!(S=B.n()).done;){var N=S.value,D=N[0],_=m.substring(x,N.index);x=N.index+D.length;var I=E.length===0?_:E+_+D,P=this.calculateLabelDimensions(t,I),F=P.width;F<=f?E+=_+D:(E&&h.push(E),E=_+D)}}catch(z){B.e(z)}finally{B.f()}E.match(/^[\s\u200b]+$/)||h.push(E)}else h.push(m)}s("labelWrapCachedLines",h),a=s("labelWrapCachedText",h.join(`
43
43
  `)),s("labelWrapKey",c)}else if(l==="ellipsis"){var O=t.pstyle("text-max-width").pfValue,M="",L="…",V=!1;if(this.calculateLabelDimensions(t,a).width<O)return a;for(var H=0;H<a.length;H++){var $=this.calculateLabelDimensions(t,M+a[H]+L).width;if($>O)break;M+=a[H],H===a.length-1&&(V=!0)}return V||(M+=L),M}return a},Bn.getLabelJustification=function(t){var e=t.pstyle("text-justification").strValue,n=t.pstyle("text-halign").strValue;if(e==="auto")if(t.isNode())switch(n){case"left":return"right";case"right":return"left";default:return"center"}else return"center";else return e},Bn.calculateLabelDimensions=function(t,e){var n=this,r=n.cy.window(),a=r.document,i=Mr(e,t._private.labelDimsKey),s=n.labelDimCache||(n.labelDimCache=[]),l=s[i];if(l!=null)return l;var c=0,u=t.pstyle("font-style").strValue,d=t.pstyle("font-size").pfValue,f=t.pstyle("font-family").strValue,p=t.pstyle("font-weight").strValue,v=this.labelCalcCanvas,h=this.labelCalcCanvasContext;if(!v){v=this.labelCalcCanvas=a.createElement("canvas"),h=this.labelCalcCanvasContext=v.getContext("2d");var g=v.style;g.position="absolute",g.left="-9999px",g.top="-9999px",g.zIndex="-1",g.visibility="hidden",g.pointerEvents="none"}h.font="".concat(u," ").concat(p," ").concat(d,"px ").concat(f);for(var y=0,m=0,b=e.split(`
44
- `),w=0;w<b.length;w++){var C=b[w],k=h.measureText(C),E=Math.ceil(k.width),x=d;y=Math.max(E,y),m+=x}return y+=c,m+=c,s[i]={width:y,height:m}},Bn.calculateLabelAngle=function(t,e){var n=t._private,r=n.rscratch,a=t.isEdge(),i=e?e+"-":"",s=t.pstyle(i+"text-rotation"),l=s.strValue;return l==="none"?0:a&&l==="autorotate"?r.labelAutoAngle:l==="autorotate"?0:s.pfValue},Bn.calculateLabelAngles=function(t){var e=this,n=t.isEdge(),r=t._private,a=r.rscratch;a.labelAngle=e.calculateLabelAngle(t),n&&(a.sourceLabelAngle=e.calculateLabelAngle(t,"source"),a.targetLabelAngle=e.calculateLabelAngle(t,"target"))};var lv={},cv=28,uv=!1;lv.getNodeShape=function(t){var e=this,n=t.pstyle("shape").value;if(n==="cutrectangle"&&(t.width()<cv||t.height()<cv))return uv||(Ae("The `cutrectangle` node shape can not be used at small sizes so `rectangle` is used instead"),uv=!0),"rectangle";if(t.isParent())return n==="rectangle"||n==="roundrectangle"||n==="round-rectangle"||n==="cutrectangle"||n==="cut-rectangle"||n==="barrel"?n:"rectangle";if(n==="polygon"){var r=t.pstyle("shape-polygon-points").value;return e.nodeShapes.makePolygon(r).name}return n};var Es={};Es.registerCalculationListeners=function(){var t=this.cy,e=t.collection(),n=this,r=function(s){var l=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0;if(e.merge(s),l)for(var c=0;c<s.length;c++){var u=s[c],d=u._private,f=d.rstyle;f.clean=!1,f.cleanConnected=!1}};n.binder(t).on("bounds.* dirty.*",function(s){var l=s.target;r(l)}).on("style.* background.*",function(s){var l=s.target;r(l,!1)});var a=function(s){if(s){var l=n.onUpdateEleCalcsFns;e.cleanStyle();for(var c=0;c<e.length;c++){var u=e[c],d=u._private.rstyle;u.isNode()&&!d.cleanConnected&&(r(u.connectedEdges()),d.cleanConnected=!0)}if(l)for(var f=0;f<l.length;f++){var p=l[f];p(s,e)}n.recalculateRenderedStyle(e),e=t.collection()}};n.flushRenderedStyleQueue=function(){a(!0)},n.beforeRender(a,n.beforeRenderPriorities.eleCalcs)},Es.onUpdateEleCalcs=function(t){var e=this.onUpdateEleCalcsFns=this.onUpdateEleCalcsFns||[];e.push(t)},Es.recalculateRenderedStyle=function(t,e){var n=function(C){return C._private.rstyle.cleanConnected},r=[],a=[];if(!this.destroyed){e===void 0&&(e=!0);for(var i=0;i<t.length;i++){var s=t[i],l=s._private,c=l.rstyle;s.isEdge()&&(!n(s.source())||!n(s.target()))&&(c.clean=!1),!(e&&c.clean||s.removed())&&s.pstyle("display").value!=="none"&&(l.group==="nodes"?a.push(s):r.push(s),c.clean=!0)}for(var u=0;u<a.length;u++){var d=a[u],f=d._private,p=f.rstyle,v=d.position();this.recalculateNodeLabelProjection(d),p.nodeX=v.x,p.nodeY=v.y,p.nodeW=d.pstyle("width").pfValue,p.nodeH=d.pstyle("height").pfValue}this.recalculateEdgeProjections(r);for(var h=0;h<r.length;h++){var g=r[h],y=g._private,m=y.rstyle,b=y.rscratch;m.srcX=b.arrowStartX,m.srcY=b.arrowStartY,m.tgtX=b.arrowEndX,m.tgtY=b.arrowEndY,m.midX=b.midX,m.midY=b.midY,m.labelAngle=b.labelAngle,m.sourceLabelAngle=b.sourceLabelAngle,m.targetLabelAngle=b.targetLabelAngle}}};var Ss={};Ss.updateCachedGrabbedEles=function(){var t=this.cachedZSortedEles;if(t){t.drag=[],t.nondrag=[];for(var e=[],n=0;n<t.length;n++){var r=t[n],a=r._private.rscratch;r.grabbed()&&!r.isParent()?e.push(r):a.inDragLayer?t.drag.push(r):t.nondrag.push(r)}for(var n=0;n<e.length;n++){var r=e[n];t.drag.push(r)}}},Ss.invalidateCachedZSortedEles=function(){this.cachedZSortedEles=null},Ss.getCachedZSortedEles=function(t){if(t||!this.cachedZSortedEles){var e=this.cy.mutableElements().toArray();e.sort(Tp),e.interactive=e.filter(function(n){return n.interactive()}),this.cachedZSortedEles=e,this.updateCachedGrabbedEles()}else e=this.cachedZSortedEles;return e};var dv={};[Kr,Cs,_t,Ki,Dc,Bn,lv,Es,Ss].forEach(function(t){xe(dv,t)});var fv={};fv.getCachedImage=function(t,e,n){var r=this,a=r.imageCache=r.imageCache||{},i=a[t];if(i)return i.image.complete||i.image.addEventListener("load",n),i.image;i=a[t]=a[t]||{};var s=i.image=new Image;s.addEventListener("load",n),s.addEventListener("error",function(){s.error=!0});var l="data:",c=t.substring(0,l.length).toLowerCase()===l;return c||(e=e==="null"?null:e,s.crossOrigin=e),s.src=t,s};var Fa={};Fa.registerBinding=function(t,e,n,r){var a=Array.prototype.slice.apply(arguments,[1]),i=this.binder(t);return i.on.apply(i,a)},Fa.binder=function(t){var e=this,n=e.cy.window(),r=t===n||t===n.document||t===n.document.body||XE(t);if(e.supportsPassiveEvents==null){var a=!1;try{var i=Object.defineProperty({},"passive",{get:function(){return a=!0,!0}});n.addEventListener("test",null,i)}catch{}e.supportsPassiveEvents=a}var s=function(c,u,d){var f=Array.prototype.slice.call(arguments);return r&&e.supportsPassiveEvents&&(f[2]={capture:d??!1,passive:!1,once:!1}),e.bindings.push({target:t,args:f}),(t.addEventListener||t.on).apply(t,f),this};return{on:s,addEventListener:s,addListener:s,bind:s}},Fa.nodeIsDraggable=function(t){return t&&t.isNode()&&!t.locked()&&t.grabbable()},Fa.nodeIsGrabbable=function(t){return this.nodeIsDraggable(t)&&t.interactive()},Fa.load=function(){var t=this,e=t.cy.window(),n=function(T){return T.selected()},r=function(T,R,Q,G){T==null&&(T=t.cy);for(var U=0;U<R.length;U++){var ie=R[U];T.emit({originalEvent:Q,type:ie,position:G})}},a=function(T){return T.shiftKey||T.metaKey||T.ctrlKey},i=function(T,R){var Q=!0;if(t.cy.hasCompoundNodes()&&T&&T.pannable())for(var G=0;R&&G<R.length;G++){var T=R[G];if(T.isNode()&&T.isParent()&&!T.pannable()){Q=!1;break}}else Q=!0;return Q},s=function(T){T[0]._private.grabbed=!0},l=function(T){T[0]._private.grabbed=!1},c=function(T){T[0]._private.rscratch.inDragLayer=!0},u=function(T){T[0]._private.rscratch.inDragLayer=!1},d=function(T){T[0]._private.rscratch.isGrabTarget=!0},f=function(T){T[0]._private.rscratch.isGrabTarget=!1},p=function(T,R){var Q=R.addToList,G=Q.has(T);!G&&T.grabbable()&&!T.locked()&&(Q.merge(T),s(T))},v=function(T,R){if(T.cy().hasCompoundNodes()&&!(R.inDragLayer==null&&R.addToList==null)){var Q=T.descendants();R.inDragLayer&&(Q.forEach(c),Q.connectedEdges().forEach(c)),R.addToList&&p(Q,R)}},h=function(T,R){R=R||{};var Q=T.cy().hasCompoundNodes();R.inDragLayer&&(T.forEach(c),T.neighborhood().stdFilter(function(G){return!Q||G.isEdge()}).forEach(c)),R.addToList&&T.forEach(function(G){p(G,R)}),v(T,R),m(T,{inDragLayer:R.inDragLayer}),t.updateCachedGrabbedEles()},g=h,y=function(T){T&&(t.getCachedZSortedEles().forEach(function(R){l(R),u(R),f(R)}),t.updateCachedGrabbedEles())},m=function(T,R){if(!(R.inDragLayer==null&&R.addToList==null)&&T.cy().hasCompoundNodes()){var Q=T.ancestors().orphans();if(!Q.same(T)){var G=Q.descendants().spawnSelf().merge(Q).unmerge(T).unmerge(T.descendants()),U=G.connectedEdges();R.inDragLayer&&(U.forEach(c),G.forEach(c)),R.addToList&&G.forEach(function(ie){p(ie,R)})}}},b=function(){document.activeElement!=null&&document.activeElement.blur!=null&&document.activeElement.blur()},w=typeof MutationObserver<"u",C=typeof ResizeObserver<"u";w?(t.removeObserver=new MutationObserver(function(te){for(var T=0;T<te.length;T++){var R=te[T],Q=R.removedNodes;if(Q)for(var G=0;G<Q.length;G++){var U=Q[G];if(U===t.container){t.destroy();break}}}}),t.container.parentNode&&t.removeObserver.observe(t.container.parentNode,{childList:!0})):t.registerBinding(t.container,"DOMNodeRemoved",function(te){t.destroy()});var k=Fo(function(){t.cy.resize()},100);w&&(t.styleObserver=new MutationObserver(k),t.styleObserver.observe(t.container,{attributes:!0})),t.registerBinding(e,"resize",k),C&&(t.resizeObserver=new ResizeObserver(k),t.resizeObserver.observe(t.container));var E=function(T,R){for(;T!=null;)R(T),T=T.parentNode},x=function(){t.invalidateContainerClientCoordsCache()};E(t.container,function(te){t.registerBinding(te,"transitionend",x),t.registerBinding(te,"animationend",x),t.registerBinding(te,"scroll",x)}),t.registerBinding(t.container,"contextmenu",function(te){te.preventDefault()});var B=function(){return t.selection[4]!==0},S=function(T){for(var R=t.findContainerClientCoords(),Q=R[0],G=R[1],U=R[2],ie=R[3],Z=T.touches?T.touches:[T],ae=!1,we=0;we<Z.length;we++){var Ce=Z[we];if(Q<=Ce.clientX&&Ce.clientX<=Q+U&&G<=Ce.clientY&&Ce.clientY<=G+ie){ae=!0;break}}if(!ae)return!1;for(var ge=t.container,Se=T.target,ve=Se.parentNode,ye=!1;ve;){if(ve===ge){ye=!0;break}ve=ve.parentNode}return!!ye};t.registerBinding(t.container,"mousedown",function(T){if(S(T)&&!(t.hoverData.which===1&&T.which!==1)){T.preventDefault(),b(),t.hoverData.capture=!0,t.hoverData.which=T.which;var R=t.cy,Q=[T.clientX,T.clientY],G=t.projectIntoViewport(Q[0],Q[1]),U=t.selection,ie=t.findNearestElements(G[0],G[1],!0,!1),Z=ie[0],ae=t.dragData.possibleDragElements;t.hoverData.mdownPos=G,t.hoverData.mdownGPos=Q;var we=function(){t.hoverData.tapholdCancelled=!1,clearTimeout(t.hoverData.tapholdTimeout),t.hoverData.tapholdTimeout=setTimeout(function(){if(!t.hoverData.tapholdCancelled){var Ge=t.hoverData.down;Ge?Ge.emit({originalEvent:T,type:"taphold",position:{x:G[0],y:G[1]}}):R.emit({originalEvent:T,type:"taphold",position:{x:G[0],y:G[1]}})}},t.tapholdDuration)};if(T.which==3){t.hoverData.cxtStarted=!0;var Ce={originalEvent:T,type:"cxttapstart",position:{x:G[0],y:G[1]}};Z?(Z.activate(),Z.emit(Ce),t.hoverData.down=Z):R.emit(Ce),t.hoverData.downTime=new Date().getTime(),t.hoverData.cxtDragged=!1}else if(T.which==1){Z&&Z.activate();{if(Z!=null&&t.nodeIsGrabbable(Z)){var ge=function(Ge){return{originalEvent:T,type:Ge,position:{x:G[0],y:G[1]}}},Se=function(Ge){Ge.emit(ge("grab"))};if(d(Z),!Z.selected())ae=t.dragData.possibleDragElements=R.collection(),g(Z,{addToList:ae}),Z.emit(ge("grabon")).emit(ge("grab"));else{ae=t.dragData.possibleDragElements=R.collection();var ve=R.$(function(ye){return ye.isNode()&&ye.selected()&&t.nodeIsGrabbable(ye)});h(ve,{addToList:ae}),Z.emit(ge("grabon")),ve.forEach(Se)}t.redrawHint("eles",!0),t.redrawHint("drag",!0)}t.hoverData.down=Z,t.hoverData.downs=ie,t.hoverData.downTime=new Date().getTime()}r(Z,["mousedown","tapstart","vmousedown"],T,{x:G[0],y:G[1]}),Z==null?(U[4]=1,t.data.bgActivePosistion={x:G[0],y:G[1]},t.redrawHint("select",!0),t.redraw()):Z.pannable()&&(U[4]=1),we()}U[0]=U[2]=G[0],U[1]=U[3]=G[1]}},!1),t.registerBinding(e,"mousemove",function(T){var R=t.hoverData.capture;if(!(!R&&!S(T))){var Q=!1,G=t.cy,U=G.zoom(),ie=[T.clientX,T.clientY],Z=t.projectIntoViewport(ie[0],ie[1]),ae=t.hoverData.mdownPos,we=t.hoverData.mdownGPos,Ce=t.selection,ge=null;!t.hoverData.draggingEles&&!t.hoverData.dragging&&!t.hoverData.selecting&&(ge=t.findNearestElement(Z[0],Z[1],!0,!1));var Se=t.hoverData.last,ve=t.hoverData.down,ye=[Z[0]-Ce[2],Z[1]-Ce[3]],Ge=t.dragData.possibleDragElements,$e;if(we){var nt=ie[0]-we[0],rt=nt*nt,Qe=ie[1]-we[1],Pt=Qe*Qe,ut=rt+Pt;t.hoverData.isOverThresholdDrag=$e=ut>=t.desktopTapThreshold2}var ht=a(T);$e&&(t.hoverData.tapholdCancelled=!0);var Wt=function(){var q=t.hoverData.dragDelta=t.hoverData.dragDelta||[];q.length===0?(q.push(ye[0]),q.push(ye[1])):(q[0]+=ye[0],q[1]+=ye[1])};Q=!0,r(ge,["mousemove","vmousemove","tapdrag"],T,{x:Z[0],y:Z[1]});var Ot=function(){t.data.bgActivePosistion=void 0,t.hoverData.selecting||G.emit({originalEvent:T,type:"boxstart",position:{x:Z[0],y:Z[1]}}),Ce[4]=1,t.hoverData.selecting=!0,t.redrawHint("select",!0),t.redraw()};if(t.hoverData.which===3){if($e){var It={originalEvent:T,type:"cxtdrag",position:{x:Z[0],y:Z[1]}};ve?ve.emit(It):G.emit(It),t.hoverData.cxtDragged=!0,(!t.hoverData.cxtOver||ge!==t.hoverData.cxtOver)&&(t.hoverData.cxtOver&&t.hoverData.cxtOver.emit({originalEvent:T,type:"cxtdragout",position:{x:Z[0],y:Z[1]}}),t.hoverData.cxtOver=ge,ge&&ge.emit({originalEvent:T,type:"cxtdragover",position:{x:Z[0],y:Z[1]}}))}}else if(t.hoverData.dragging){if(Q=!0,G.panningEnabled()&&G.userPanningEnabled()){var tn;if(t.hoverData.justStartedPan){var pn=t.hoverData.mdownPos;tn={x:(Z[0]-pn[0])*U,y:(Z[1]-pn[1])*U},t.hoverData.justStartedPan=!1}else tn={x:ye[0]*U,y:ye[1]*U};G.panBy(tn),G.emit("dragpan"),t.hoverData.dragged=!0}Z=t.projectIntoViewport(T.clientX,T.clientY)}else if(Ce[4]==1&&(ve==null||ve.pannable())){if($e){if(!t.hoverData.dragging&&G.boxSelectionEnabled()&&(ht||!G.panningEnabled()||!G.userPanningEnabled()))Ot();else if(!t.hoverData.selecting&&G.panningEnabled()&&G.userPanningEnabled()){var Kt=i(ve,t.hoverData.downs);Kt&&(t.hoverData.dragging=!0,t.hoverData.justStartedPan=!0,Ce[4]=0,t.data.bgActivePosistion=ma(ae),t.redrawHint("select",!0),t.redraw())}ve&&ve.pannable()&&ve.active()&&ve.unactivate()}}else{if(ve&&ve.pannable()&&ve.active()&&ve.unactivate(),(!ve||!ve.grabbed())&&ge!=Se&&(Se&&r(Se,["mouseout","tapdragout"],T,{x:Z[0],y:Z[1]}),ge&&r(ge,["mouseover","tapdragover"],T,{x:Z[0],y:Z[1]}),t.hoverData.last=ge),ve)if($e){if(G.boxSelectionEnabled()&&ht)ve&&ve.grabbed()&&(y(Ge),ve.emit("freeon"),Ge.emit("free"),t.dragData.didDrag&&(ve.emit("dragfreeon"),Ge.emit("dragfree"))),Ot();else if(ve&&ve.grabbed()&&t.nodeIsDraggable(ve)){var Je=!t.dragData.didDrag;Je&&t.redrawHint("eles",!0),t.dragData.didDrag=!0,t.hoverData.draggingEles||h(Ge,{inDragLayer:!0});var at={x:0,y:0};if(le(ye[0])&&le(ye[1])&&(at.x+=ye[0],at.y+=ye[1],Je)){var pt=t.hoverData.dragDelta;pt&&le(pt[0])&&le(pt[1])&&(at.x+=pt[0],at.y+=pt[1])}t.hoverData.draggingEles=!0,Ge.silentShift(at).emit("position drag"),t.redrawHint("drag",!0),t.redraw()}}else Wt();Q=!0}if(Ce[2]=Z[0],Ce[3]=Z[1],Q)return T.stopPropagation&&T.stopPropagation(),T.preventDefault&&T.preventDefault(),!1}},!1);var N,D,_;t.registerBinding(e,"mouseup",function(T){if(!(t.hoverData.which===1&&T.which!==1&&t.hoverData.capture)){var R=t.hoverData.capture;if(R){t.hoverData.capture=!1;var Q=t.cy,G=t.projectIntoViewport(T.clientX,T.clientY),U=t.selection,ie=t.findNearestElement(G[0],G[1],!0,!1),Z=t.dragData.possibleDragElements,ae=t.hoverData.down,we=a(T);if(t.data.bgActivePosistion&&(t.redrawHint("select",!0),t.redraw()),t.hoverData.tapholdCancelled=!0,t.data.bgActivePosistion=void 0,ae&&ae.unactivate(),t.hoverData.which===3){var Ce={originalEvent:T,type:"cxttapend",position:{x:G[0],y:G[1]}};if(ae?ae.emit(Ce):Q.emit(Ce),!t.hoverData.cxtDragged){var ge={originalEvent:T,type:"cxttap",position:{x:G[0],y:G[1]}};ae?ae.emit(ge):Q.emit(ge)}t.hoverData.cxtDragged=!1,t.hoverData.which=null}else if(t.hoverData.which===1){if(r(ie,["mouseup","tapend","vmouseup"],T,{x:G[0],y:G[1]}),!t.dragData.didDrag&&!t.hoverData.dragged&&!t.hoverData.selecting&&!t.hoverData.isOverThresholdDrag&&(r(ae,["click","tap","vclick"],T,{x:G[0],y:G[1]}),D=!1,T.timeStamp-_<=Q.multiClickDebounceTime()?(N&&clearTimeout(N),D=!0,_=null,r(ae,["dblclick","dbltap","vdblclick"],T,{x:G[0],y:G[1]})):(N=setTimeout(function(){D||r(ae,["oneclick","onetap","voneclick"],T,{x:G[0],y:G[1]})},Q.multiClickDebounceTime()),_=T.timeStamp)),ae==null&&!t.dragData.didDrag&&!t.hoverData.selecting&&!t.hoverData.dragged&&!a(T)&&(Q.$(n).unselect(["tapunselect"]),Z.length>0&&t.redrawHint("eles",!0),t.dragData.possibleDragElements=Z=Q.collection()),ie==ae&&!t.dragData.didDrag&&!t.hoverData.selecting&&ie!=null&&ie._private.selectable&&(t.hoverData.dragging||(Q.selectionType()==="additive"||we?ie.selected()?ie.unselect(["tapunselect"]):ie.select(["tapselect"]):we||(Q.$(n).unmerge(ie).unselect(["tapunselect"]),ie.select(["tapselect"]))),t.redrawHint("eles",!0)),t.hoverData.selecting){var Se=Q.collection(t.getAllInBox(U[0],U[1],U[2],U[3]));t.redrawHint("select",!0),Se.length>0&&t.redrawHint("eles",!0),Q.emit({type:"boxend",originalEvent:T,position:{x:G[0],y:G[1]}});var ve=function($e){return $e.selectable()&&!$e.selected()};Q.selectionType()==="additive"||we||Q.$(n).unmerge(Se).unselect(),Se.emit("box").stdFilter(ve).select().emit("boxselect"),t.redraw()}if(t.hoverData.dragging&&(t.hoverData.dragging=!1,t.redrawHint("select",!0),t.redrawHint("eles",!0),t.redraw()),!U[4]){t.redrawHint("drag",!0),t.redrawHint("eles",!0);var ye=ae&&ae.grabbed();y(Z),ye&&(ae.emit("freeon"),Z.emit("free"),t.dragData.didDrag&&(ae.emit("dragfreeon"),Z.emit("dragfree")))}}U[4]=0,t.hoverData.down=null,t.hoverData.cxtStarted=!1,t.hoverData.draggingEles=!1,t.hoverData.selecting=!1,t.hoverData.isOverThresholdDrag=!1,t.dragData.didDrag=!1,t.hoverData.dragged=!1,t.hoverData.dragDelta=[],t.hoverData.mdownPos=null,t.hoverData.mdownGPos=null,t.hoverData.which=null}}},!1);var I=function(T){if(!t.scrollingPage){var R=t.cy,Q=R.zoom(),G=R.pan(),U=t.projectIntoViewport(T.clientX,T.clientY),ie=[U[0]*Q+G.x,U[1]*Q+G.y];if(t.hoverData.draggingEles||t.hoverData.dragging||t.hoverData.cxtStarted||B()){T.preventDefault();return}if(R.panningEnabled()&&R.userPanningEnabled()&&R.zoomingEnabled()&&R.userZoomingEnabled()){T.preventDefault(),t.data.wheelZooming=!0,clearTimeout(t.data.wheelTimeout),t.data.wheelTimeout=setTimeout(function(){t.data.wheelZooming=!1,t.redrawHint("eles",!0),t.redraw()},150);var Z;T.deltaY!=null?Z=T.deltaY/-250:T.wheelDeltaY!=null?Z=T.wheelDeltaY/1e3:Z=T.wheelDelta/1e3,Z=Z*t.wheelSensitivity;var ae=T.deltaMode===1;ae&&(Z*=33);var we=R.zoom()*Math.pow(10,Z);T.type==="gesturechange"&&(we=t.gestureStartZoom*T.scale),R.zoom({level:we,renderedPosition:{x:ie[0],y:ie[1]}}),R.emit(T.type==="gesturechange"?"pinchzoom":"scrollzoom")}}};t.registerBinding(t.container,"wheel",I,!0),t.registerBinding(e,"scroll",function(T){t.scrollingPage=!0,clearTimeout(t.scrollingPageTimeout),t.scrollingPageTimeout=setTimeout(function(){t.scrollingPage=!1},250)},!0),t.registerBinding(t.container,"gesturestart",function(T){t.gestureStartZoom=t.cy.zoom(),t.hasTouchStarted||T.preventDefault()},!0),t.registerBinding(t.container,"gesturechange",function(te){t.hasTouchStarted||I(te)},!0),t.registerBinding(t.container,"mouseout",function(T){var R=t.projectIntoViewport(T.clientX,T.clientY);t.cy.emit({originalEvent:T,type:"mouseout",position:{x:R[0],y:R[1]}})},!1),t.registerBinding(t.container,"mouseover",function(T){var R=t.projectIntoViewport(T.clientX,T.clientY);t.cy.emit({originalEvent:T,type:"mouseover",position:{x:R[0],y:R[1]}})},!1);var P,F,O,M,L,V,H,$,z,j,ee,J,X,ne=function(T,R,Q,G){return Math.sqrt((Q-T)*(Q-T)+(G-R)*(G-R))},Y=function(T,R,Q,G){return(Q-T)*(Q-T)+(G-R)*(G-R)},A;t.registerBinding(t.container,"touchstart",A=function(T){if(t.hasTouchStarted=!0,!!S(T)){b(),t.touchData.capture=!0,t.data.bgActivePosistion=void 0;var R=t.cy,Q=t.touchData.now,G=t.touchData.earlier;if(T.touches[0]){var U=t.projectIntoViewport(T.touches[0].clientX,T.touches[0].clientY);Q[0]=U[0],Q[1]=U[1]}if(T.touches[1]){var U=t.projectIntoViewport(T.touches[1].clientX,T.touches[1].clientY);Q[2]=U[0],Q[3]=U[1]}if(T.touches[2]){var U=t.projectIntoViewport(T.touches[2].clientX,T.touches[2].clientY);Q[4]=U[0],Q[5]=U[1]}if(T.touches[1]){t.touchData.singleTouchMoved=!0,y(t.dragData.touchDragEles);var ie=t.findContainerClientCoords();z=ie[0],j=ie[1],ee=ie[2],J=ie[3],P=T.touches[0].clientX-z,F=T.touches[0].clientY-j,O=T.touches[1].clientX-z,M=T.touches[1].clientY-j,X=0<=P&&P<=ee&&0<=O&&O<=ee&&0<=F&&F<=J&&0<=M&&M<=J;var Z=R.pan(),ae=R.zoom();L=ne(P,F,O,M),V=Y(P,F,O,M),H=[(P+O)/2,(F+M)/2],$=[(H[0]-Z.x)/ae,(H[1]-Z.y)/ae];var we=200,Ce=we*we;if(V<Ce&&!T.touches[2]){var ge=t.findNearestElement(Q[0],Q[1],!0,!0),Se=t.findNearestElement(Q[2],Q[3],!0,!0);ge&&ge.isNode()?(ge.activate().emit({originalEvent:T,type:"cxttapstart",position:{x:Q[0],y:Q[1]}}),t.touchData.start=ge):Se&&Se.isNode()?(Se.activate().emit({originalEvent:T,type:"cxttapstart",position:{x:Q[0],y:Q[1]}}),t.touchData.start=Se):R.emit({originalEvent:T,type:"cxttapstart",position:{x:Q[0],y:Q[1]}}),t.touchData.start&&(t.touchData.start._private.grabbed=!1),t.touchData.cxt=!0,t.touchData.cxtDragged=!1,t.data.bgActivePosistion=void 0,t.redraw();return}}if(T.touches[2])R.boxSelectionEnabled()&&T.preventDefault();else if(!T.touches[1]){if(T.touches[0]){var ve=t.findNearestElements(Q[0],Q[1],!0,!0),ye=ve[0];if(ye!=null&&(ye.activate(),t.touchData.start=ye,t.touchData.starts=ve,t.nodeIsGrabbable(ye))){var Ge=t.dragData.touchDragEles=R.collection(),$e=null;t.redrawHint("eles",!0),t.redrawHint("drag",!0),ye.selected()?($e=R.$(function(ut){return ut.selected()&&t.nodeIsGrabbable(ut)}),h($e,{addToList:Ge})):g(ye,{addToList:Ge}),d(ye);var nt=function(ht){return{originalEvent:T,type:ht,position:{x:Q[0],y:Q[1]}}};ye.emit(nt("grabon")),$e?$e.forEach(function(ut){ut.emit(nt("grab"))}):ye.emit(nt("grab"))}r(ye,["touchstart","tapstart","vmousedown"],T,{x:Q[0],y:Q[1]}),ye==null&&(t.data.bgActivePosistion={x:U[0],y:U[1]},t.redrawHint("select",!0),t.redraw()),t.touchData.singleTouchMoved=!1,t.touchData.singleTouchStartTime=+new Date,clearTimeout(t.touchData.tapholdTimeout),t.touchData.tapholdTimeout=setTimeout(function(){t.touchData.singleTouchMoved===!1&&!t.pinching&&!t.touchData.selecting&&r(t.touchData.start,["taphold"],T,{x:Q[0],y:Q[1]})},t.tapholdDuration)}}if(T.touches.length>=1){for(var rt=t.touchData.startPosition=[null,null,null,null,null,null],Qe=0;Qe<Q.length;Qe++)rt[Qe]=G[Qe]=Q[Qe];var Pt=T.touches[0];t.touchData.startGPosition=[Pt.clientX,Pt.clientY]}}},!1);var K;t.registerBinding(e,"touchmove",K=function(T){var R=t.touchData.capture;if(!(!R&&!S(T))){var Q=t.selection,G=t.cy,U=t.touchData.now,ie=t.touchData.earlier,Z=G.zoom();if(T.touches[0]){var ae=t.projectIntoViewport(T.touches[0].clientX,T.touches[0].clientY);U[0]=ae[0],U[1]=ae[1]}if(T.touches[1]){var ae=t.projectIntoViewport(T.touches[1].clientX,T.touches[1].clientY);U[2]=ae[0],U[3]=ae[1]}if(T.touches[2]){var ae=t.projectIntoViewport(T.touches[2].clientX,T.touches[2].clientY);U[4]=ae[0],U[5]=ae[1]}var we=t.touchData.startGPosition,Ce;if(R&&T.touches[0]&&we){for(var ge=[],Se=0;Se<U.length;Se++)ge[Se]=U[Se]-ie[Se];var ve=T.touches[0].clientX-we[0],ye=ve*ve,Ge=T.touches[0].clientY-we[1],$e=Ge*Ge,nt=ye+$e;Ce=nt>=t.touchTapThreshold2}if(R&&t.touchData.cxt){T.preventDefault();var rt=T.touches[0].clientX-z,Qe=T.touches[0].clientY-j,Pt=T.touches[1].clientX-z,ut=T.touches[1].clientY-j,ht=Y(rt,Qe,Pt,ut),Wt=ht/V,Ot=150,It=Ot*Ot,tn=1.5,pn=tn*tn;if(Wt>=pn||ht>=It){t.touchData.cxt=!1,t.data.bgActivePosistion=void 0,t.redrawHint("select",!0);var Kt={originalEvent:T,type:"cxttapend",position:{x:U[0],y:U[1]}};t.touchData.start?(t.touchData.start.unactivate().emit(Kt),t.touchData.start=null):G.emit(Kt)}}if(R&&t.touchData.cxt){var Kt={originalEvent:T,type:"cxtdrag",position:{x:U[0],y:U[1]}};t.data.bgActivePosistion=void 0,t.redrawHint("select",!0),t.touchData.start?t.touchData.start.emit(Kt):G.emit(Kt),t.touchData.start&&(t.touchData.start._private.grabbed=!1),t.touchData.cxtDragged=!0;var Je=t.findNearestElement(U[0],U[1],!0,!0);(!t.touchData.cxtOver||Je!==t.touchData.cxtOver)&&(t.touchData.cxtOver&&t.touchData.cxtOver.emit({originalEvent:T,type:"cxtdragout",position:{x:U[0],y:U[1]}}),t.touchData.cxtOver=Je,Je&&Je.emit({originalEvent:T,type:"cxtdragover",position:{x:U[0],y:U[1]}}))}else if(R&&T.touches[2]&&G.boxSelectionEnabled())T.preventDefault(),t.data.bgActivePosistion=void 0,this.lastThreeTouch=+new Date,t.touchData.selecting||G.emit({originalEvent:T,type:"boxstart",position:{x:U[0],y:U[1]}}),t.touchData.selecting=!0,t.touchData.didSelect=!0,Q[4]=1,!Q||Q.length===0||Q[0]===void 0?(Q[0]=(U[0]+U[2]+U[4])/3,Q[1]=(U[1]+U[3]+U[5])/3,Q[2]=(U[0]+U[2]+U[4])/3+1,Q[3]=(U[1]+U[3]+U[5])/3+1):(Q[2]=(U[0]+U[2]+U[4])/3,Q[3]=(U[1]+U[3]+U[5])/3),t.redrawHint("select",!0),t.redraw();else if(R&&T.touches[1]&&!t.touchData.didSelect&&G.zoomingEnabled()&&G.panningEnabled()&&G.userZoomingEnabled()&&G.userPanningEnabled()){T.preventDefault(),t.data.bgActivePosistion=void 0,t.redrawHint("select",!0);var at=t.dragData.touchDragEles;if(at){t.redrawHint("drag",!0);for(var pt=0;pt<at.length;pt++){var mr=at[pt]._private;mr.grabbed=!1,mr.rscratch.inDragLayer=!1}}var q=t.touchData.start,rt=T.touches[0].clientX-z,Qe=T.touches[0].clientY-j,Pt=T.touches[1].clientX-z,ut=T.touches[1].clientY-j,ce=ne(rt,Qe,Pt,ut),Pe=ce/L;if(X){var He=rt-P,Dn=Qe-F,yr=Pt-O,Ha=ut-M,Un=(He+yr)/2,nn=(Dn+Ha)/2,br=G.zoom(),qc=br*Pe,_s=G.pan(),xg=$[0]*br+_s.x,Eg=$[1]*br+_s.y,zP={x:-qc/br*(xg-_s.x-Un)+xg,y:-qc/br*(Eg-_s.y-nn)+Eg};if(q&&q.active()){var at=t.dragData.touchDragEles;y(at),t.redrawHint("drag",!0),t.redrawHint("eles",!0),q.unactivate().emit("freeon"),at.emit("free"),t.dragData.didDrag&&(q.emit("dragfreeon"),at.emit("dragfree"))}G.viewport({zoom:qc,pan:zP,cancelOnFailedZoom:!0}),G.emit("pinchzoom"),L=ce,P=rt,F=Qe,O=Pt,M=ut,t.pinching=!0}if(T.touches[0]){var ae=t.projectIntoViewport(T.touches[0].clientX,T.touches[0].clientY);U[0]=ae[0],U[1]=ae[1]}if(T.touches[1]){var ae=t.projectIntoViewport(T.touches[1].clientX,T.touches[1].clientY);U[2]=ae[0],U[3]=ae[1]}if(T.touches[2]){var ae=t.projectIntoViewport(T.touches[2].clientX,T.touches[2].clientY);U[4]=ae[0],U[5]=ae[1]}}else if(T.touches[0]&&!t.touchData.didSelect){var vn=t.touchData.start,Uc=t.touchData.last,Je;if(!t.hoverData.draggingEles&&!t.swipePanning&&(Je=t.findNearestElement(U[0],U[1],!0,!0)),R&&vn!=null&&T.preventDefault(),R&&vn!=null&&t.nodeIsDraggable(vn))if(Ce){var at=t.dragData.touchDragEles,Sg=!t.dragData.didDrag;Sg&&h(at,{inDragLayer:!0}),t.dragData.didDrag=!0;var ji={x:0,y:0};if(le(ge[0])&&le(ge[1])&&(ji.x+=ge[0],ji.y+=ge[1],Sg)){t.redrawHint("eles",!0);var gn=t.touchData.dragDelta;gn&&le(gn[0])&&le(gn[1])&&(ji.x+=gn[0],ji.y+=gn[1])}t.hoverData.draggingEles=!0,at.silentShift(ji).emit("position drag"),t.redrawHint("drag",!0),t.touchData.startPosition[0]==ie[0]&&t.touchData.startPosition[1]==ie[1]&&t.redrawHint("eles",!0),t.redraw()}else{var gn=t.touchData.dragDelta=t.touchData.dragDelta||[];gn.length===0?(gn.push(ge[0]),gn.push(ge[1])):(gn[0]+=ge[0],gn[1]+=ge[1])}if(r(vn||Je,["touchmove","tapdrag","vmousemove"],T,{x:U[0],y:U[1]}),(!vn||!vn.grabbed())&&Je!=Uc&&(Uc&&Uc.emit({originalEvent:T,type:"tapdragout",position:{x:U[0],y:U[1]}}),Je&&Je.emit({originalEvent:T,type:"tapdragover",position:{x:U[0],y:U[1]}})),t.touchData.last=Je,R)for(var pt=0;pt<U.length;pt++)U[pt]&&t.touchData.startPosition[pt]&&Ce&&(t.touchData.singleTouchMoved=!0);if(R&&(vn==null||vn.pannable())&&G.panningEnabled()&&G.userPanningEnabled()){var HP=i(vn,t.touchData.starts);HP&&(T.preventDefault(),t.data.bgActivePosistion||(t.data.bgActivePosistion=ma(t.touchData.startPosition)),t.swipePanning?(G.panBy({x:ge[0]*Z,y:ge[1]*Z}),G.emit("dragpan")):Ce&&(t.swipePanning=!0,G.panBy({x:ve*Z,y:Ge*Z}),G.emit("dragpan"),vn&&(vn.unactivate(),t.redrawHint("select",!0),t.touchData.start=null)));var ae=t.projectIntoViewport(T.touches[0].clientX,T.touches[0].clientY);U[0]=ae[0],U[1]=ae[1]}}for(var Se=0;Se<U.length;Se++)ie[Se]=U[Se];R&&T.touches.length>0&&!t.hoverData.draggingEles&&!t.swipePanning&&t.data.bgActivePosistion!=null&&(t.data.bgActivePosistion=void 0,t.redrawHint("select",!0),t.redraw())}},!1);var W;t.registerBinding(e,"touchcancel",W=function(T){var R=t.touchData.start;t.touchData.capture=!1,R&&R.unactivate()});var oe,he,re,se;if(t.registerBinding(e,"touchend",oe=function(T){var R=t.touchData.start,Q=t.touchData.capture;if(Q)T.touches.length===0&&(t.touchData.capture=!1),T.preventDefault();else return;var G=t.selection;t.swipePanning=!1,t.hoverData.draggingEles=!1;var U=t.cy,ie=U.zoom(),Z=t.touchData.now,ae=t.touchData.earlier;if(T.touches[0]){var we=t.projectIntoViewport(T.touches[0].clientX,T.touches[0].clientY);Z[0]=we[0],Z[1]=we[1]}if(T.touches[1]){var we=t.projectIntoViewport(T.touches[1].clientX,T.touches[1].clientY);Z[2]=we[0],Z[3]=we[1]}if(T.touches[2]){var we=t.projectIntoViewport(T.touches[2].clientX,T.touches[2].clientY);Z[4]=we[0],Z[5]=we[1]}R&&R.unactivate();var Ce;if(t.touchData.cxt){if(Ce={originalEvent:T,type:"cxttapend",position:{x:Z[0],y:Z[1]}},R?R.emit(Ce):U.emit(Ce),!t.touchData.cxtDragged){var ge={originalEvent:T,type:"cxttap",position:{x:Z[0],y:Z[1]}};R?R.emit(ge):U.emit(ge)}t.touchData.start&&(t.touchData.start._private.grabbed=!1),t.touchData.cxt=!1,t.touchData.start=null,t.redraw();return}if(!T.touches[2]&&U.boxSelectionEnabled()&&t.touchData.selecting){t.touchData.selecting=!1;var Se=U.collection(t.getAllInBox(G[0],G[1],G[2],G[3]));G[0]=void 0,G[1]=void 0,G[2]=void 0,G[3]=void 0,G[4]=0,t.redrawHint("select",!0),U.emit({type:"boxend",originalEvent:T,position:{x:Z[0],y:Z[1]}});var ve=function(It){return It.selectable()&&!It.selected()};Se.emit("box").stdFilter(ve).select().emit("boxselect"),Se.nonempty()&&t.redrawHint("eles",!0),t.redraw()}if(R!=null&&R.unactivate(),T.touches[2])t.data.bgActivePosistion=void 0,t.redrawHint("select",!0);else if(!T.touches[1]){if(!T.touches[0]){if(!T.touches[0]){t.data.bgActivePosistion=void 0,t.redrawHint("select",!0);var ye=t.dragData.touchDragEles;if(R!=null){var Ge=R._private.grabbed;y(ye),t.redrawHint("drag",!0),t.redrawHint("eles",!0),Ge&&(R.emit("freeon"),ye.emit("free"),t.dragData.didDrag&&(R.emit("dragfreeon"),ye.emit("dragfree"))),r(R,["touchend","tapend","vmouseup","tapdragout"],T,{x:Z[0],y:Z[1]}),R.unactivate(),t.touchData.start=null}else{var $e=t.findNearestElement(Z[0],Z[1],!0,!0);r($e,["touchend","tapend","vmouseup","tapdragout"],T,{x:Z[0],y:Z[1]})}var nt=t.touchData.startPosition[0]-Z[0],rt=nt*nt,Qe=t.touchData.startPosition[1]-Z[1],Pt=Qe*Qe,ut=rt+Pt,ht=ut*ie*ie;t.touchData.singleTouchMoved||(R||U.$(":selected").unselect(["tapunselect"]),r(R,["tap","vclick"],T,{x:Z[0],y:Z[1]}),he=!1,T.timeStamp-se<=U.multiClickDebounceTime()?(re&&clearTimeout(re),he=!0,se=null,r(R,["dbltap","vdblclick"],T,{x:Z[0],y:Z[1]})):(re=setTimeout(function(){he||r(R,["onetap","voneclick"],T,{x:Z[0],y:Z[1]})},U.multiClickDebounceTime()),se=T.timeStamp)),R!=null&&!t.dragData.didDrag&&R._private.selectable&&ht<t.touchTapThreshold2&&!t.pinching&&(U.selectionType()==="single"?(U.$(n).unmerge(R).unselect(["tapunselect"]),R.select(["tapselect"])):R.selected()?R.unselect(["tapunselect"]):R.select(["tapselect"]),t.redrawHint("eles",!0)),t.touchData.singleTouchMoved=!0}}}for(var Wt=0;Wt<Z.length;Wt++)ae[Wt]=Z[Wt];t.dragData.didDrag=!1,T.touches.length===0&&(t.touchData.dragDelta=[],t.touchData.startPosition=[null,null,null,null,null,null],t.touchData.startGPosition=null,t.touchData.didSelect=!1),T.touches.length<2&&(T.touches.length===1&&(t.touchData.startGPosition=[T.touches[0].clientX,T.touches[0].clientY]),t.pinching=!1,t.redrawHint("eles",!0),t.redraw())},!1),typeof TouchEvent>"u"){var ue=[],pe=function(T){return{clientX:T.clientX,clientY:T.clientY,force:1,identifier:T.pointerId,pageX:T.pageX,pageY:T.pageY,radiusX:T.width/2,radiusY:T.height/2,screenX:T.screenX,screenY:T.screenY,target:T.target}},de=function(T){return{event:T,touch:pe(T)}},me=function(T){ue.push(de(T))},Ne=function(T){for(var R=0;R<ue.length;R++){var Q=ue[R];if(Q.event.pointerId===T.pointerId){ue.splice(R,1);return}}},De=function(T){var R=ue.filter(function(Q){return Q.event.pointerId===T.pointerId})[0];R.event=T,R.touch=pe(T)},Ee=function(T){T.touches=ue.map(function(R){return R.touch})},_e=function(T){return T.pointerType==="mouse"||T.pointerType===4};t.registerBinding(t.container,"pointerdown",function(te){_e(te)||(te.preventDefault(),me(te),Ee(te),A(te))}),t.registerBinding(t.container,"pointerup",function(te){_e(te)||(Ne(te),Ee(te),oe(te))}),t.registerBinding(t.container,"pointercancel",function(te){_e(te)||(Ne(te),Ee(te),W(te))}),t.registerBinding(t.container,"pointermove",function(te){_e(te)||(te.preventDefault(),De(te),Ee(te),K(te))})}};var Kn={};Kn.generatePolygon=function(t,e){return this.nodeShapes[t]={renderer:this,name:t,points:e,draw:function(r,a,i,s,l,c){this.renderer.nodeShapeImpl("polygon",r,a,i,s,l,this.points)},intersectLine:function(r,a,i,s,l,c,u,d){return Di(l,c,this.points,r,a,i/2,s/2,u)},checkPoint:function(r,a,i,s,l,c,u,d){return $n(r,a,this.points,c,u,s,l,[0,-1],i)}}},Kn.generateEllipse=function(){return this.nodeShapes.ellipse={renderer:this,name:"ellipse",draw:function(e,n,r,a,i,s){this.renderer.nodeShapeImpl(this.name,e,n,r,a,i)},intersectLine:function(e,n,r,a,i,s,l,c){return qT(i,s,e,n,r/2+l,a/2+l)},checkPoint:function(e,n,r,a,i,s,l,c){return Vr(e,n,a,i,s,l,r)}}},Kn.generateRoundPolygon=function(t,e){return this.nodeShapes[t]={renderer:this,name:t,points:e,getOrCreateCorners:function(r,a,i,s,l,c,u){if(c[u]!==void 0&&c[u+"-cx"]===r&&c[u+"-cy"]===a)return c[u];c[u]=new Array(e.length/2),c[u+"-cx"]=r,c[u+"-cy"]=a;var d=i/2,f=s/2;l=l==="auto"?Ch(i,s):l;for(var p=new Array(e.length/2),v=0;v<e.length/2;v++)p[v]={x:r+d*e[v*2],y:a+f*e[v*2+1]};var h,g,y,m,b=p.length;for(g=p[b-1],h=0;h<b;h++)y=p[h%b],m=p[(h+1)%b],c[u][h]=Nc(g,y,m,l),g=y,y=m;return c[u]},draw:function(r,a,i,s,l,c,u){this.renderer.nodeShapeImpl("round-polygon",r,a,i,s,l,this.points,this.getOrCreateCorners(a,i,s,l,c,u,"drawCorners"))},intersectLine:function(r,a,i,s,l,c,u,d,f){return UT(l,c,this.points,r,a,i,s,u,this.getOrCreateCorners(r,a,i,s,d,f,"corners"))},checkPoint:function(r,a,i,s,l,c,u,d,f){return KT(r,a,this.points,c,u,s,l,this.getOrCreateCorners(c,u,s,l,d,f,"corners"))}}},Kn.generateRoundRectangle=function(){return this.nodeShapes["round-rectangle"]=this.nodeShapes.roundrectangle={renderer:this,name:"round-rectangle",points:Mt(4,0),draw:function(e,n,r,a,i,s){this.renderer.nodeShapeImpl(this.name,e,n,r,a,i,this.points,s)},intersectLine:function(e,n,r,a,i,s,l,c){return bh(i,s,e,n,r,a,l,c)},checkPoint:function(e,n,r,a,i,s,l,c){var u=a/2,d=i/2;c=c==="auto"?Rr(a,i):c,c=Math.min(u,d,c);var f=c*2;return!!($n(e,n,this.points,s,l,a,i-f,[0,-1],r)||$n(e,n,this.points,s,l,a-f,i,[0,-1],r)||Vr(e,n,f,f,s-u+c,l-d+c,r)||Vr(e,n,f,f,s+u-c,l-d+c,r)||Vr(e,n,f,f,s+u-c,l+d-c,r)||Vr(e,n,f,f,s-u+c,l+d-c,r))}}},Kn.generateCutRectangle=function(){return this.nodeShapes["cut-rectangle"]=this.nodeShapes.cutrectangle={renderer:this,name:"cut-rectangle",cornerLength:Jl(),points:Mt(4,0),draw:function(e,n,r,a,i,s){this.renderer.nodeShapeImpl(this.name,e,n,r,a,i,null,s)},generateCutTrianglePts:function(e,n,r,a,i){var s=i==="auto"?this.cornerLength:i,l=n/2,c=e/2,u=r-c,d=r+c,f=a-l,p=a+l;return{topLeft:[u,f+s,u+s,f,u+s,f+s],topRight:[d-s,f,d,f+s,d-s,f+s],bottomRight:[d,p-s,d-s,p,d-s,p-s],bottomLeft:[u+s,p,u,p-s,u+s,p-s]}},intersectLine:function(e,n,r,a,i,s,l,c){var u=this.generateCutTrianglePts(r+2*l,a+2*l,e,n,c),d=[].concat.apply([],[u.topLeft.splice(0,4),u.topRight.splice(0,4),u.bottomRight.splice(0,4),u.bottomLeft.splice(0,4)]);return Di(i,s,d,e,n)},checkPoint:function(e,n,r,a,i,s,l,c){var u=c==="auto"?this.cornerLength:c;if($n(e,n,this.points,s,l,a,i-2*u,[0,-1],r)||$n(e,n,this.points,s,l,a-2*u,i,[0,-1],r))return!0;var d=this.generateCutTrianglePts(a,i,s,l);return Ht(e,n,d.topLeft)||Ht(e,n,d.topRight)||Ht(e,n,d.bottomRight)||Ht(e,n,d.bottomLeft)}}},Kn.generateBarrel=function(){return this.nodeShapes.barrel={renderer:this,name:"barrel",points:Mt(4,0),draw:function(e,n,r,a,i,s){this.renderer.nodeShapeImpl(this.name,e,n,r,a,i)},intersectLine:function(e,n,r,a,i,s,l,c){var u=.15,d=.5,f=.85,p=this.generateBarrelBezierPts(r+2*l,a+2*l,e,n),v=function(y){var m=ya({x:y[0],y:y[1]},{x:y[2],y:y[3]},{x:y[4],y:y[5]},u),b=ya({x:y[0],y:y[1]},{x:y[2],y:y[3]},{x:y[4],y:y[5]},d),w=ya({x:y[0],y:y[1]},{x:y[2],y:y[3]},{x:y[4],y:y[5]},f);return[y[0],y[1],m.x,m.y,b.x,b.y,w.x,w.y,y[4],y[5]]},h=[].concat(v(p.topLeft),v(p.topRight),v(p.bottomRight),v(p.bottomLeft));return Di(i,s,h,e,n)},generateBarrelBezierPts:function(e,n,r,a){var i=n/2,s=e/2,l=r-s,c=r+s,u=a-i,d=a+i,f=ec(e,n),p=f.heightOffset,v=f.widthOffset,h=f.ctrlPtOffsetPct*e,g={topLeft:[l,u+p,l+h,u,l+v,u],topRight:[c-v,u,c-h,u,c,u+p],bottomRight:[c,d-p,c-h,d,c-v,d],bottomLeft:[l+v,d,l+h,d,l,d-p]};return g.topLeft.isTop=!0,g.topRight.isTop=!0,g.bottomLeft.isBottom=!0,g.bottomRight.isBottom=!0,g},checkPoint:function(e,n,r,a,i,s,l,c){var u=ec(a,i),d=u.heightOffset,f=u.widthOffset;if($n(e,n,this.points,s,l,a,i-2*d,[0,-1],r)||$n(e,n,this.points,s,l,a-2*f,i,[0,-1],r))return!0;for(var p=this.generateBarrelBezierPts(a,i,s,l),v=function(B,S,N){var D=N[4],_=N[2],I=N[0],P=N[5],F=N[1],O=Math.min(D,I),M=Math.max(D,I),L=Math.min(P,F),V=Math.max(P,F);if(O<=B&&B<=M&&L<=S&&S<=V){var H=GT(D,_,I),$=RT(H[0],H[1],H[2],B),z=$.filter(function(j){return 0<=j&&j<=1});if(z.length>0)return z[0]}return null},h=Object.keys(p),g=0;g<h.length;g++){var y=h[g],m=p[y],b=v(e,n,m);if(b!=null){var w=m[5],C=m[3],k=m[1],E=ft(w,C,k,b);if(m.isTop&&E<=n||m.isBottom&&n<=E)return!0}}return!1}}},Kn.generateBottomRoundrectangle=function(){return this.nodeShapes["bottom-round-rectangle"]=this.nodeShapes.bottomroundrectangle={renderer:this,name:"bottom-round-rectangle",points:Mt(4,0),draw:function(e,n,r,a,i,s){this.renderer.nodeShapeImpl(this.name,e,n,r,a,i,this.points,s)},intersectLine:function(e,n,r,a,i,s,l,c){var u=e-(r/2+l),d=n-(a/2+l),f=d,p=e+(r/2+l),v=lr(i,s,e,n,u,d,p,f,!1);return v.length>0?v:bh(i,s,e,n,r,a,l,c)},checkPoint:function(e,n,r,a,i,s,l,c){c=c==="auto"?Rr(a,i):c;var u=2*c;if($n(e,n,this.points,s,l,a,i-u,[0,-1],r)||$n(e,n,this.points,s,l,a-u,i,[0,-1],r))return!0;var d=a/2+2*r,f=i/2+2*r,p=[s-d,l-f,s-d,l,s+d,l,s+d,l-f];return!!(Ht(e,n,p)||Vr(e,n,u,u,s+a/2-c,l+i/2-c,r)||Vr(e,n,u,u,s-a/2+c,l+i/2-c,r))}}},Kn.registerNodeShapes=function(){var t=this.nodeShapes={},e=this;this.generateEllipse(),this.generatePolygon("triangle",Mt(3,0)),this.generateRoundPolygon("round-triangle",Mt(3,0)),this.generatePolygon("rectangle",Mt(4,0)),t.square=t.rectangle,this.generateRoundRectangle(),this.generateCutRectangle(),this.generateBarrel(),this.generateBottomRoundrectangle();{var n=[0,1,1,0,0,-1,-1,0];this.generatePolygon("diamond",n),this.generateRoundPolygon("round-diamond",n)}this.generatePolygon("pentagon",Mt(5,0)),this.generateRoundPolygon("round-pentagon",Mt(5,0)),this.generatePolygon("hexagon",Mt(6,0)),this.generateRoundPolygon("round-hexagon",Mt(6,0)),this.generatePolygon("heptagon",Mt(7,0)),this.generateRoundPolygon("round-heptagon",Mt(7,0)),this.generatePolygon("octagon",Mt(8,0)),this.generateRoundPolygon("round-octagon",Mt(8,0));var r=new Array(20);{var a=Ql(5,0),i=Ql(5,Math.PI/5),s=.5*(3-Math.sqrt(5));s*=1.57;for(var l=0;l<i.length/2;l++)i[l*2]*=s,i[l*2+1]*=s;for(var l=0;l<20/4;l++)r[l*4]=a[l*2],r[l*4+1]=a[l*2+1],r[l*4+2]=i[l*2],r[l*4+3]=i[l*2+1]}r=wh(r),this.generatePolygon("star",r),this.generatePolygon("vee",[-1,-1,0,-.333,1,-1,0,1]),this.generatePolygon("rhomboid",[-1,-1,.333,-1,1,1,-.333,1]),this.generatePolygon("right-rhomboid",[-.333,-1,1,-1,.333,1,-1,1]),this.nodeShapes.concavehexagon=this.generatePolygon("concave-hexagon",[-1,-.95,-.75,0,-1,.95,1,.95,.75,0,1,-.95]);{var c=[-1,-1,.25,-1,1,0,.25,1,-1,1];this.generatePolygon("tag",c),this.generateRoundPolygon("round-tag",c)}t.makePolygon=function(u){var d=u.join("$"),f="polygon-"+d,p;return(p=this[f])?p:e.generatePolygon(f,u)}};var qi={};qi.timeToRender=function(){return this.redrawTotalTime/this.redrawCount},qi.redraw=function(t){t=t||fh();var e=this;e.averageRedrawTime===void 0&&(e.averageRedrawTime=0),e.lastRedrawTime===void 0&&(e.lastRedrawTime=0),e.lastDrawTime===void 0&&(e.lastDrawTime=0),e.requestedFrame=!0,e.renderOptions=t},qi.beforeRender=function(t,e){if(!this.destroyed){e==null&&Ze("Priority is not optional for beforeRender");var n=this.beforeRenderCallbacks;n.push({fn:t,priority:e}),n.sort(function(r,a){return a.priority-r.priority})}};var hv=function(e,n,r){for(var a=e.beforeRenderCallbacks,i=0;i<a.length;i++)a[i].fn(n,r)};qi.startRenderLoop=function(){var t=this,e=t.cy;if(!t.renderLoopStarted){t.renderLoopStarted=!0;var n=function r(a){if(!t.destroyed){if(!e.batching())if(t.requestedFrame&&!t.skipFrame){hv(t,!0,a);var i=Rn();t.render(t.renderOptions);var s=t.lastDrawTime=Rn();t.averageRedrawTime===void 0&&(t.averageRedrawTime=s-i),t.redrawCount===void 0&&(t.redrawCount=0),t.redrawCount++,t.redrawTotalTime===void 0&&(t.redrawTotalTime=0);var l=s-i;t.redrawTotalTime+=l,t.lastRedrawTime=l,t.averageRedrawTime=t.averageRedrawTime/2+l/2,t.requestedFrame=!1}else hv(t,!1,a);t.skipFrame=!1,Ao(r)}};Ao(n)}};var BD=function(e){this.init(e)},pv=BD,Aa=pv.prototype;Aa.clientFunctions=["redrawHint","render","renderTo","matchCanvasSize","nodeShapeImpl","arrowShapeImpl"],Aa.init=function(t){var e=this;e.options=t,e.cy=t.cy;var n=e.container=t.cy.container(),r=e.cy.window();if(r){var a=r.document,i=a.head,s="__________cytoscape_stylesheet",l="__________cytoscape_container",c=a.getElementById(s)!=null;if(n.className.indexOf(l)<0&&(n.className=(n.className||"")+" "+l),!c){var u=a.createElement("style");u.id=s,u.textContent="."+l+" { position: relative; }",i.insertBefore(u,i.children[0])}var d=r.getComputedStyle(n),f=d.getPropertyValue("position");f==="static"&&Ae("A Cytoscape container has style position:static and so can not use UI extensions properly")}e.selection=[void 0,void 0,void 0,void 0,0],e.bezierProjPcts=[.05,.225,.4,.5,.6,.775,.95],e.hoverData={down:null,last:null,downTime:null,triggerMode:null,dragging:!1,initialPan:[null,null],capture:!1},e.dragData={possibleDragElements:[]},e.touchData={start:null,capture:!1,startPosition:[null,null,null,null,null,null],singleTouchStartTime:null,singleTouchMoved:!0,now:[null,null,null,null,null,null],earlier:[null,null,null,null,null,null]},e.redraws=0,e.showFps=t.showFps,e.debug=t.debug,e.hideEdgesOnViewport=t.hideEdgesOnViewport,e.textureOnViewport=t.textureOnViewport,e.wheelSensitivity=t.wheelSensitivity,e.motionBlurEnabled=t.motionBlur,e.forcedPixelRatio=le(t.pixelRatio)?t.pixelRatio:null,e.motionBlur=t.motionBlur,e.motionBlurOpacity=t.motionBlurOpacity,e.motionBlurTransparency=1-e.motionBlurOpacity,e.motionBlurPxRatio=1,e.mbPxRBlurry=1,e.minMbLowQualFrames=4,e.fullQualityMb=!1,e.clearedForMotionBlur=[],e.desktopTapThreshold=t.desktopTapThreshold,e.desktopTapThreshold2=t.desktopTapThreshold*t.desktopTapThreshold,e.touchTapThreshold=t.touchTapThreshold,e.touchTapThreshold2=t.touchTapThreshold*t.touchTapThreshold,e.tapholdDuration=500,e.bindings=[],e.beforeRenderCallbacks=[],e.beforeRenderPriorities={animations:400,eleCalcs:300,eleTxrDeq:200,lyrTxrDeq:150,lyrTxrSkip:100},e.registerNodeShapes(),e.registerArrowShapes(),e.registerCalculationListeners()},Aa.notify=function(t,e){var n=this,r=n.cy;if(!this.destroyed){if(t==="init"){n.load();return}if(t==="destroy"){n.destroy();return}(t==="add"||t==="remove"||t==="move"&&r.hasCompoundNodes()||t==="load"||t==="zorder"||t==="mount")&&n.invalidateCachedZSortedEles(),t==="viewport"&&n.redrawHint("select",!0),(t==="load"||t==="resize"||t==="mount")&&(n.invalidateContainerClientCoordsCache(),n.matchCanvasSize(n.container)),n.redrawHint("eles",!0),n.redrawHint("drag",!0),this.startRenderLoop(),this.redraw()}},Aa.destroy=function(){var t=this;t.destroyed=!0,t.cy.stopAnimationLoop();for(var e=0;e<t.bindings.length;e++){var n=t.bindings[e],r=n,a=r.target;(a.off||a.removeEventListener).apply(a,r.args)}if(t.bindings=[],t.beforeRenderCallbacks=[],t.onUpdateEleCalcsFns=[],t.removeObserver&&t.removeObserver.disconnect(),t.styleObserver&&t.styleObserver.disconnect(),t.resizeObserver&&t.resizeObserver.disconnect(),t.labelCalcDiv)try{document.body.removeChild(t.labelCalcDiv)}catch{}},Aa.isHeadless=function(){return!1},[xc,dv,fv,Fa,Kn,qi].forEach(function(t){xe(Aa,t)});var _c=1e3/60,vv={setupDequeueing:function(e){return function(){var r=this,a=this.renderer;if(!r.dequeueingSetup){r.dequeueingSetup=!0;var i=Fo(function(){a.redrawHint("eles",!0),a.redrawHint("drag",!0),a.redraw()},e.deqRedrawThreshold),s=function(u,d){var f=Rn(),p=a.averageRedrawTime,v=a.lastRedrawTime,h=[],g=a.cy.extent(),y=a.getPixelRatio();for(u||a.flushRenderedStyleQueue();;){var m=Rn(),b=m-f,w=m-d;if(v<_c){var C=_c-(u?p:0);if(w>=e.deqFastCost*C)break}else if(u){if(b>=e.deqCost*v||b>=e.deqAvgCost*p)break}else if(w>=e.deqNoDrawCost*_c)break;var k=e.deq(r,y,g);if(k.length>0)for(var E=0;E<k.length;E++)h.push(k[E]);else break}h.length>0&&(e.onDeqd(r,h),!u&&e.shouldRedraw(r,h,y,g)&&i())},l=e.priority||Gl;a.beforeRender(s,l(r))}}}},ND=function(){function t(e){var n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:Ro;Rl(this,t),this.idsByKey=new xn,this.keyForId=new xn,this.cachesByLvl=new xn,this.lvls=[],this.getKey=e,this.doesEleInvalidateKey=n}return $l(t,[{key:"getIdsFor",value:function(n){n==null&&Ze("Can not get id list for null key");var r=this.idsByKey,a=this.idsByKey.get(n);return a||(a=new ga,r.set(n,a)),a}},{key:"addIdForKey",value:function(n,r){n!=null&&this.getIdsFor(n).add(r)}},{key:"deleteIdForKey",value:function(n,r){n!=null&&this.getIdsFor(n).delete(r)}},{key:"getNumberOfIdsForKey",value:function(n){return n==null?0:this.getIdsFor(n).size}},{key:"updateKeyMappingFor",value:function(n){var r=n.id(),a=this.keyForId.get(r),i=this.getKey(n);this.deleteIdForKey(a,r),this.addIdForKey(i,r),this.keyForId.set(r,i)}},{key:"deleteKeyMappingFor",value:function(n){var r=n.id(),a=this.keyForId.get(r);this.deleteIdForKey(a,r),this.keyForId.delete(r)}},{key:"keyHasChangedFor",value:function(n){var r=n.id(),a=this.keyForId.get(r),i=this.getKey(n);return a!==i}},{key:"isInvalid",value:function(n){return this.keyHasChangedFor(n)||this.doesEleInvalidateKey(n)}},{key:"getCachesAt",value:function(n){var r=this.cachesByLvl,a=this.lvls,i=r.get(n);return i||(i=new xn,r.set(n,i),a.push(n)),i}},{key:"getCache",value:function(n,r){return this.getCachesAt(r).get(n)}},{key:"get",value:function(n,r){var a=this.getKey(n),i=this.getCache(a,r);return i!=null&&this.updateKeyMappingFor(n),i}},{key:"getForCachedKey",value:function(n,r){var a=this.keyForId.get(n.id()),i=this.getCache(a,r);return i}},{key:"hasCache",value:function(n,r){return this.getCachesAt(r).has(n)}},{key:"has",value:function(n,r){var a=this.getKey(n);return this.hasCache(a,r)}},{key:"setCache",value:function(n,r,a){a.key=n,this.getCachesAt(r).set(n,a)}},{key:"set",value:function(n,r,a){var i=this.getKey(n);this.setCache(i,r,a),this.updateKeyMappingFor(n)}},{key:"deleteCache",value:function(n,r){this.getCachesAt(r).delete(n)}},{key:"delete",value:function(n,r){var a=this.getKey(n);this.deleteCache(a,r)}},{key:"invalidateKey",value:function(n){var r=this;this.lvls.forEach(function(a){return r.deleteCache(n,a)})}},{key:"invalidate",value:function(n){var r=n.id(),a=this.keyForId.get(r);this.deleteKeyMappingFor(n);var i=this.doesEleInvalidateKey(n);return i&&this.invalidateKey(a),i||this.getNumberOfIdsForKey(a)===0}}]),t}(),gv=25,Ts=50,Bs=-4,Pc=3,DD=7.99,_D=8,PD=1024,OD=1024,ID=1024,LD=.2,MD=.8,FD=10,AD=.15,VD=.1,RD=.9,$D=.9,zD=100,HD=1,Va={dequeue:"dequeue",downscale:"downscale",highQuality:"highQuality"},KD=wt({getKey:null,doesEleInvalidateKey:Ro,drawElement:null,getBoundingBox:null,getRotationPoint:null,getRotationOffset:null,isVisible:lh,allowEdgeTxrCaching:!0,allowParentTxrCaching:!0}),Ui=function(e,n){var r=this;r.renderer=e,r.onDequeues=[];var a=KD(n);xe(r,a),r.lookup=new ND(a.getKey,a.doesEleInvalidateKey),r.setupDequeueing()},ct=Ui.prototype;ct.reasons=Va,ct.getTextureQueue=function(t){var e=this;return e.eleImgCaches=e.eleImgCaches||{},e.eleImgCaches[t]=e.eleImgCaches[t]||[]},ct.getRetiredTextureQueue=function(t){var e=this,n=e.eleImgCaches.retired=e.eleImgCaches.retired||{},r=n[t]=n[t]||[];return r},ct.getElementQueue=function(){var t=this,e=t.eleCacheQueue=t.eleCacheQueue||new Ti(function(n,r){return r.reqs-n.reqs});return e},ct.getElementKeyToQueue=function(){var t=this,e=t.eleKeyToCacheQueue=t.eleKeyToCacheQueue||{};return e},ct.getElement=function(t,e,n,r,a){var i=this,s=this.renderer,l=s.cy.zoom(),c=this.lookup;if(!e||e.w===0||e.h===0||isNaN(e.w)||isNaN(e.h)||!t.visible()||t.removed()||!i.allowEdgeTxrCaching&&t.isEdge()||!i.allowParentTxrCaching&&t.isParent())return null;if(r==null&&(r=Math.ceil(Yl(l*n))),r<Bs)r=Bs;else if(l>=DD||r>Pc)return null;var u=Math.pow(2,r),d=e.h*u,f=e.w*u,p=s.eleTextBiggerThanMin(t,u);if(!this.isVisible(t,p))return null;var v=c.get(t,r);if(v&&v.invalidated&&(v.invalidated=!1,v.texture.invalidatedWidth-=v.width),v)return v;var h;if(d<=gv?h=gv:d<=Ts?h=Ts:h=Math.ceil(d/Ts)*Ts,d>ID||f>OD)return null;var g=i.getTextureQueue(h),y=g[g.length-2],m=function(){return i.recycleTexture(h,f)||i.addTexture(h,f)};y||(y=g[g.length-1]),y||(y=m()),y.width-y.usedWidth<f&&(y=m());for(var b=function(O){return O&&O.scaledLabelShown===p},w=a&&a===Va.dequeue,C=a&&a===Va.highQuality,k=a&&a===Va.downscale,E,x=r+1;x<=Pc;x++){var B=c.get(t,x);if(B){E=B;break}}var S=E&&E.level===r+1?E:null,N=function(){y.context.drawImage(S.texture.canvas,S.x,0,S.width,S.height,y.usedWidth,0,f,d)};if(y.context.setTransform(1,0,0,1,0,0),y.context.clearRect(y.usedWidth,0,f,h),b(S))N();else if(b(E))if(C){for(var D=E.level;D>r;D--)S=i.getElement(t,e,n,D,Va.downscale);N()}else return i.queueElement(t,E.level-1),E;else{var _;if(!w&&!C&&!k)for(var I=r-1;I>=Bs;I--){var P=c.get(t,I);if(P){_=P;break}}if(b(_))return i.queueElement(t,r),_;y.context.translate(y.usedWidth,0),y.context.scale(u,u),this.drawElement(y.context,t,e,p,!1),y.context.scale(1/u,1/u),y.context.translate(-y.usedWidth,0)}return v={x:y.usedWidth,texture:y,level:r,scale:u,width:f,height:d,scaledLabelShown:p},y.usedWidth+=Math.ceil(f+_D),y.eleCaches.push(v),c.set(t,r,v),i.checkTextureFullness(y),v},ct.invalidateElements=function(t){for(var e=0;e<t.length;e++)this.invalidateElement(t[e])},ct.invalidateElement=function(t){var e=this,n=e.lookup,r=[],a=n.isInvalid(t);if(a){for(var i=Bs;i<=Pc;i++){var s=n.getForCachedKey(t,i);s&&r.push(s)}var l=n.invalidate(t);if(l)for(var c=0;c<r.length;c++){var u=r[c],d=u.texture;d.invalidatedWidth+=u.width,u.invalidated=!0,e.checkTextureUtility(d)}e.removeFromQueue(t)}},ct.checkTextureUtility=function(t){t.invalidatedWidth>=LD*t.width&&this.retireTexture(t)},ct.checkTextureFullness=function(t){var e=this,n=e.getTextureQueue(t.height);t.usedWidth/t.width>MD&&t.fullnessChecks>=FD?or(n,t):t.fullnessChecks++},ct.retireTexture=function(t){var e=this,n=t.height,r=e.getTextureQueue(n),a=this.lookup;or(r,t),t.retired=!0;for(var i=t.eleCaches,s=0;s<i.length;s++){var l=i[s];a.deleteCache(l.key,l.level)}Wl(i);var c=e.getRetiredTextureQueue(n);c.push(t)},ct.addTexture=function(t,e){var n=this,r=n.getTextureQueue(t),a={};return r.push(a),a.eleCaches=[],a.height=t,a.width=Math.max(PD,e),a.usedWidth=0,a.invalidatedWidth=0,a.fullnessChecks=0,a.canvas=n.renderer.makeOffscreenCanvas(a.width,a.height),a.context=a.canvas.getContext("2d"),a},ct.recycleTexture=function(t,e){for(var n=this,r=n.getTextureQueue(t),a=n.getRetiredTextureQueue(t),i=0;i<a.length;i++){var s=a[i];if(s.width>=e)return s.retired=!1,s.usedWidth=0,s.invalidatedWidth=0,s.fullnessChecks=0,Wl(s.eleCaches),s.context.setTransform(1,0,0,1,0,0),s.context.clearRect(0,0,s.width,s.height),or(a,s),r.push(s),s}},ct.queueElement=function(t,e){var n=this,r=n.getElementQueue(),a=n.getElementKeyToQueue(),i=this.getKey(t),s=a[i];if(s)s.level=Math.max(s.level,e),s.eles.merge(t),s.reqs++,r.updateItem(s);else{var l={eles:t.spawn().merge(t),level:e,reqs:1,key:i};r.push(l),a[i]=l}},ct.dequeue=function(t){for(var e=this,n=e.getElementQueue(),r=e.getElementKeyToQueue(),a=[],i=e.lookup,s=0;s<HD&&n.size()>0;s++){var l=n.pop(),c=l.key,u=l.eles[0],d=i.hasCache(u,l.level);if(r[c]=null,d)continue;a.push(l);var f=e.getBoundingBox(u);e.getElement(u,f,t,l.level,Va.dequeue)}return a},ct.removeFromQueue=function(t){var e=this,n=e.getElementQueue(),r=e.getElementKeyToQueue(),a=this.getKey(t),i=r[a];i!=null&&(i.eles.length===1?(i.reqs=Ul,n.updateItem(i),n.pop(),r[a]=null):i.eles.unmerge(t))},ct.onDequeue=function(t){this.onDequeues.push(t)},ct.offDequeue=function(t){or(this.onDequeues,t)},ct.setupDequeueing=vv.setupDequeueing({deqRedrawThreshold:zD,deqCost:AD,deqAvgCost:VD,deqNoDrawCost:RD,deqFastCost:$D,deq:function(e,n,r){return e.dequeue(n,r)},onDeqd:function(e,n){for(var r=0;r<e.onDequeues.length;r++){var a=e.onDequeues[r];a(n)}},shouldRedraw:function(e,n,r,a){for(var i=0;i<n.length;i++)for(var s=n[i].eles,l=0;l<s.length;l++){var c=s[l].boundingBox();if(Zl(c,a))return!0}return!1},priority:function(e){return e.renderer.beforeRenderPriorities.eleTxrDeq}});var qD=1,Gi=-4,Ns=2,UD=3.99,GD=50,WD=50,jD=.15,YD=.1,ZD=.9,XD=.9,QD=1,mv=250,JD=4e3*4e3,e3=!0,yv=function(e){var n=this,r=n.renderer=e,a=r.cy;n.layersByLevel={},n.firstGet=!0,n.lastInvalidationTime=Rn()-2*mv,n.skipping=!1,n.eleTxrDeqs=a.collection(),n.scheduleElementRefinement=Fo(function(){n.refineElementTextures(n.eleTxrDeqs),n.eleTxrDeqs.unmerge(n.eleTxrDeqs)},WD),r.beforeRender(function(s,l){l-n.lastInvalidationTime<=mv?n.skipping=!0:n.skipping=!1},r.beforeRenderPriorities.lyrTxrSkip);var i=function(l,c){return c.reqs-l.reqs};n.layersQueue=new Ti(i),n.setupDequeueing()},Et=yv.prototype,bv=0,t3=Math.pow(2,53)-1;Et.makeLayer=function(t,e){var n=Math.pow(2,e),r=Math.ceil(t.w*n),a=Math.ceil(t.h*n),i=this.renderer.makeOffscreenCanvas(r,a),s={id:bv=++bv%t3,bb:t,level:e,width:r,height:a,canvas:i,context:i.getContext("2d"),eles:[],elesQueue:[],reqs:0},l=s.context,c=-s.bb.x1,u=-s.bb.y1;return l.scale(n,n),l.translate(c,u),s},Et.getLayers=function(t,e,n){var r=this,a=r.renderer,i=a.cy,s=i.zoom(),l=r.firstGet;if(r.firstGet=!1,n==null){if(n=Math.ceil(Yl(s*e)),n<Gi)n=Gi;else if(s>=UD||n>Ns)return null}r.validateLayersElesOrdering(n,t);var c=r.layersByLevel,u=Math.pow(2,n),d=c[n]=c[n]||[],f,p=r.levelIsComplete(n,t),v,h=function(){var N=function(F){if(r.validateLayersElesOrdering(F,t),r.levelIsComplete(F,t))return v=c[F],!0},D=function(F){if(!v)for(var O=n+F;Gi<=O&&O<=Ns&&!N(O);O+=F);};D(1),D(-1);for(var _=d.length-1;_>=0;_--){var I=d[_];I.invalid&&or(d,I)}};if(!p)h();else return d;var g=function(){if(!f){f=zt();for(var N=0;N<t.length;N++)gh(f,t[N].boundingBox())}return f},y=function(N){N=N||{};var D=N.after;g();var _=f.w*u*(f.h*u);if(_>JD)return null;var I=r.makeLayer(f,n);if(D!=null){var P=d.indexOf(D)+1;d.splice(P,0,I)}else(N.insert===void 0||N.insert)&&d.unshift(I);return I};if(r.skipping&&!l)return null;for(var m=null,b=t.length/qD,w=!l,C=0;C<t.length;C++){var k=t[C],E=k._private.rscratch,x=E.imgLayerCaches=E.imgLayerCaches||{},B=x[n];if(B){m=B;continue}if((!m||m.eles.length>=b||!yh(m.bb,k.boundingBox()))&&(m=y({insert:!0,after:m}),!m))return null;v||w?r.queueLayer(m,k):r.drawEleInLayer(m,k,n,e),m.eles.push(k),x[n]=m}return v||(w?null:d)},Et.getEleLevelForLayerLevel=function(t,e){return t},Et.drawEleInLayer=function(t,e,n,r){var a=this,i=this.renderer,s=t.context,l=e.boundingBox();l.w===0||l.h===0||!e.visible()||(n=a.getEleLevelForLayerLevel(n,r),i.setImgSmoothing(s,!1),i.drawCachedElement(s,e,null,null,n,e3),i.setImgSmoothing(s,!0))},Et.levelIsComplete=function(t,e){var n=this,r=n.layersByLevel[t];if(!r||r.length===0)return!1;for(var a=0,i=0;i<r.length;i++){var s=r[i];if(s.reqs>0||s.invalid)return!1;a+=s.eles.length}return a===e.length},Et.validateLayersElesOrdering=function(t,e){var n=this.layersByLevel[t];if(n)for(var r=0;r<n.length;r++){for(var a=n[r],i=-1,s=0;s<e.length;s++)if(a.eles[0]===e[s]){i=s;break}if(i<0){this.invalidateLayer(a);continue}for(var l=i,s=0;s<a.eles.length;s++)if(a.eles[s]!==e[l+s]){this.invalidateLayer(a);break}}},Et.updateElementsInLayers=function(t,e){for(var n=this,r=mi(t[0]),a=0;a<t.length;a++)for(var i=r?null:t[a],s=r?t[a]:t[a].ele,l=s._private.rscratch,c=l.imgLayerCaches=l.imgLayerCaches||{},u=Gi;u<=Ns;u++){var d=c[u];d&&(i&&n.getEleLevelForLayerLevel(d.level)!==i.level||e(d,s,i))}},Et.haveLayers=function(){for(var t=this,e=!1,n=Gi;n<=Ns;n++){var r=t.layersByLevel[n];if(r&&r.length>0){e=!0;break}}return e},Et.invalidateElements=function(t){var e=this;t.length!==0&&(e.lastInvalidationTime=Rn(),!(t.length===0||!e.haveLayers())&&e.updateElementsInLayers(t,function(r,a,i){e.invalidateLayer(r)}))},Et.invalidateLayer=function(t){if(this.lastInvalidationTime=Rn(),!t.invalid){var e=t.level,n=t.eles,r=this.layersByLevel[e];or(r,t),t.elesQueue=[],t.invalid=!0,t.replacement&&(t.replacement.invalid=!0);for(var a=0;a<n.length;a++){var i=n[a]._private.rscratch.imgLayerCaches;i&&(i[e]=null)}}},Et.refineElementTextures=function(t){var e=this;e.updateElementsInLayers(t,function(r,a,i){var s=r.replacement;if(s||(s=r.replacement=e.makeLayer(r.bb,r.level),s.replaces=r,s.eles=r.eles),!s.reqs)for(var l=0;l<s.eles.length;l++)e.queueLayer(s,s.eles[l])})},Et.enqueueElementRefinement=function(t){this.eleTxrDeqs.merge(t),this.scheduleElementRefinement()},Et.queueLayer=function(t,e){var n=this,r=n.layersQueue,a=t.elesQueue,i=a.hasId=a.hasId||{};if(!t.replacement){if(e){if(i[e.id()])return;a.push(e),i[e.id()]=!0}t.reqs?(t.reqs++,r.updateItem(t)):(t.reqs=1,r.push(t))}},Et.dequeue=function(t){for(var e=this,n=e.layersQueue,r=[],a=0;a<QD&&n.size()!==0;){var i=n.peek();if(i.replacement){n.pop();continue}if(i.replaces&&i!==i.replaces.replacement){n.pop();continue}if(i.invalid){n.pop();continue}var s=i.elesQueue.shift();s&&(e.drawEleInLayer(i,s,i.level,t),a++),r.length===0&&r.push(!0),i.elesQueue.length===0&&(n.pop(),i.reqs=0,i.replaces&&e.applyLayerReplacement(i),e.requestRedraw())}return r},Et.applyLayerReplacement=function(t){var e=this,n=e.layersByLevel[t.level],r=t.replaces,a=n.indexOf(r);if(!(a<0||r.invalid)){n[a]=t;for(var i=0;i<t.eles.length;i++){var s=t.eles[i]._private,l=s.imgLayerCaches=s.imgLayerCaches||{};l&&(l[t.level]=t)}e.requestRedraw()}},Et.requestRedraw=Fo(function(){var t=this.renderer;t.redrawHint("eles",!0),t.redrawHint("drag",!0),t.redraw()},100),Et.setupDequeueing=vv.setupDequeueing({deqRedrawThreshold:GD,deqCost:jD,deqAvgCost:YD,deqNoDrawCost:ZD,deqFastCost:XD,deq:function(e,n){return e.dequeue(n)},onDeqd:Gl,shouldRedraw:lh,priority:function(e){return e.renderer.beforeRenderPriorities.lyrTxrDeq}});var wv={},Cv;function n3(t,e){for(var n=0;n<e.length;n++){var r=e[n];t.lineTo(r.x,r.y)}}function r3(t,e,n){for(var r,a=0;a<e.length;a++){var i=e[a];a===0&&(r=i),t.lineTo(i.x,i.y)}t.quadraticCurveTo(n.x,n.y,r.x,r.y)}function kv(t,e,n){t.beginPath&&t.beginPath();for(var r=e,a=0;a<r.length;a++){var i=r[a];t.lineTo(i.x,i.y)}var s=n,l=n[0];t.moveTo(l.x,l.y);for(var a=1;a<s.length;a++){var i=s[a];t.lineTo(i.x,i.y)}t.closePath&&t.closePath()}function a3(t,e,n,r,a){t.beginPath&&t.beginPath(),t.arc(n,r,a,0,Math.PI*2,!1);var i=e,s=i[0];t.moveTo(s.x,s.y);for(var l=0;l<i.length;l++){var c=i[l];t.lineTo(c.x,c.y)}t.closePath&&t.closePath()}function i3(t,e,n,r){t.arc(e,n,r,0,Math.PI*2,!1)}wv.arrowShapeImpl=function(t){return(Cv||(Cv={polygon:n3,"triangle-backcurve":r3,"triangle-tee":kv,"circle-triangle":a3,"triangle-cross":kv,circle:i3}))[t]};var Nn={};Nn.drawElement=function(t,e,n,r,a,i){var s=this;e.isNode()?s.drawNode(t,e,n,r,a,i):s.drawEdge(t,e,n,r,a,i)},Nn.drawElementOverlay=function(t,e){var n=this;e.isNode()?n.drawNodeOverlay(t,e):n.drawEdgeOverlay(t,e)},Nn.drawElementUnderlay=function(t,e){var n=this;e.isNode()?n.drawNodeUnderlay(t,e):n.drawEdgeUnderlay(t,e)},Nn.drawCachedElementPortion=function(t,e,n,r,a,i,s,l){var c=this,u=n.getBoundingBox(e);if(!(u.w===0||u.h===0)){var d=n.getElement(e,u,r,a,i);if(d!=null){var f=l(c,e);if(f===0)return;var p=s(c,e),v=u.x1,h=u.y1,g=u.w,y=u.h,m,b,w,C,k;if(p!==0){var E=n.getRotationPoint(e);w=E.x,C=E.y,t.translate(w,C),t.rotate(p),k=c.getImgSmoothing(t),k||c.setImgSmoothing(t,!0);var x=n.getRotationOffset(e);m=x.x,b=x.y}else m=v,b=h;var B;f!==1&&(B=t.globalAlpha,t.globalAlpha=B*f),t.drawImage(d.texture.canvas,d.x,0,d.width,d.height,m,b,g,y),f!==1&&(t.globalAlpha=B),p!==0&&(t.rotate(-p),t.translate(-w,-C),k||c.setImgSmoothing(t,!1))}else n.drawElement(t,e)}};var o3=function(){return 0},s3=function(e,n){return e.getTextAngle(n,null)},l3=function(e,n){return e.getTextAngle(n,"source")},c3=function(e,n){return e.getTextAngle(n,"target")},u3=function(e,n){return n.effectiveOpacity()},Oc=function(e,n){return n.pstyle("text-opacity").pfValue*n.effectiveOpacity()};Nn.drawCachedElement=function(t,e,n,r,a,i){var s=this,l=s.data,c=l.eleTxrCache,u=l.lblTxrCache,d=l.slbTxrCache,f=l.tlbTxrCache,p=e.boundingBox(),v=i===!0?c.reasons.highQuality:null;if(!(p.w===0||p.h===0||!e.visible())&&(!r||Zl(p,r))){var h=e.isEdge(),g=e.element()._private.rscratch.badLine;s.drawElementUnderlay(t,e),s.drawCachedElementPortion(t,e,c,n,a,v,o3,u3),(!h||!g)&&s.drawCachedElementPortion(t,e,u,n,a,v,s3,Oc),h&&!g&&(s.drawCachedElementPortion(t,e,d,n,a,v,l3,Oc),s.drawCachedElementPortion(t,e,f,n,a,v,c3,Oc)),s.drawElementOverlay(t,e)}},Nn.drawElements=function(t,e){for(var n=this,r=0;r<e.length;r++){var a=e[r];n.drawElement(t,a)}},Nn.drawCachedElements=function(t,e,n,r){for(var a=this,i=0;i<e.length;i++){var s=e[i];a.drawCachedElement(t,s,n,r)}},Nn.drawCachedNodes=function(t,e,n,r){for(var a=this,i=0;i<e.length;i++){var s=e[i];s.isNode()&&a.drawCachedElement(t,s,n,r)}},Nn.drawLayeredElements=function(t,e,n,r){var a=this,i=a.data.lyrTxrCache.getLayers(e,n);if(i)for(var s=0;s<i.length;s++){var l=i[s],c=l.bb;c.w===0||c.h===0||t.drawImage(l.canvas,c.x1,c.y1,c.w,c.h)}else a.drawCachedElements(t,e,n,r)};var qn={};qn.drawEdge=function(t,e,n){var r=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!0,a=arguments.length>4&&arguments[4]!==void 0?arguments[4]:!0,i=arguments.length>5&&arguments[5]!==void 0?arguments[5]:!0,s=this,l=e._private.rscratch;if(!(i&&!e.visible())&&!(l.badLine||l.allpts==null||isNaN(l.allpts[0]))){var c;n&&(c=n,t.translate(-c.x1,-c.y1));var u=i?e.pstyle("opacity").value:1,d=i?e.pstyle("line-opacity").value:1,f=e.pstyle("curve-style").value,p=e.pstyle("line-style").value,v=e.pstyle("width").pfValue,h=e.pstyle("line-cap").value,g=e.pstyle("line-outline-width").value,y=e.pstyle("line-outline-color").value,m=u*d,b=u*d,w=function(){var F=arguments.length>0&&arguments[0]!==void 0?arguments[0]:m;f==="straight-triangle"?(s.eleStrokeStyle(t,e,F),s.drawEdgeTrianglePath(e,t,l.allpts)):(t.lineWidth=v,t.lineCap=h,s.eleStrokeStyle(t,e,F),s.drawEdgePath(e,t,l.allpts,p),t.lineCap="butt")},C=function(){var F=arguments.length>0&&arguments[0]!==void 0?arguments[0]:m;if(t.lineWidth=v+g,t.lineCap=h,g>0)s.colorStrokeStyle(t,y[0],y[1],y[2],F);else{t.lineCap="butt";return}f==="straight-triangle"?s.drawEdgeTrianglePath(e,t,l.allpts):(s.drawEdgePath(e,t,l.allpts,p),t.lineCap="butt")},k=function(){a&&s.drawEdgeOverlay(t,e)},E=function(){a&&s.drawEdgeUnderlay(t,e)},x=function(){var F=arguments.length>0&&arguments[0]!==void 0?arguments[0]:b;s.drawArrowheads(t,e,F)},B=function(){s.drawElementText(t,e,null,r)};t.lineJoin="round";var S=e.pstyle("ghost").value==="yes";if(S){var N=e.pstyle("ghost-offset-x").pfValue,D=e.pstyle("ghost-offset-y").pfValue,_=e.pstyle("ghost-opacity").value,I=m*_;t.translate(N,D),w(I),x(I),t.translate(-N,-D)}else C();E(),w(),x(),k(),B(),n&&t.translate(c.x1,c.y1)}};var xv=function(e){if(!["overlay","underlay"].includes(e))throw new Error("Invalid state");return function(n,r){if(r.visible()){var a=r.pstyle("".concat(e,"-opacity")).value;if(a!==0){var i=this,s=i.usePaths(),l=r._private.rscratch,c=r.pstyle("".concat(e,"-padding")).pfValue,u=2*c,d=r.pstyle("".concat(e,"-color")).value;n.lineWidth=u,l.edgeType==="self"&&!s?n.lineCap="butt":n.lineCap="round",i.colorStrokeStyle(n,d[0],d[1],d[2],a),i.drawEdgePath(r,n,l.allpts,"solid")}}}};qn.drawEdgeOverlay=xv("overlay"),qn.drawEdgeUnderlay=xv("underlay"),qn.drawEdgePath=function(t,e,n,r){var a=t._private.rscratch,i=e,s,l=!1,c=this.usePaths(),u=t.pstyle("line-dash-pattern").pfValue,d=t.pstyle("line-dash-offset").pfValue;if(c){var f=n.join("$"),p=a.pathCacheKey&&a.pathCacheKey===f;p?(s=e=a.pathCache,l=!0):(s=e=new Path2D,a.pathCacheKey=f,a.pathCache=s)}if(i.setLineDash)switch(r){case"dotted":i.setLineDash([1,1]);break;case"dashed":i.setLineDash(u),i.lineDashOffset=d;break;case"solid":i.setLineDash([]);break}if(!l&&!a.badLine)switch(e.beginPath&&e.beginPath(),e.moveTo(n[0],n[1]),a.edgeType){case"bezier":case"self":case"compound":case"multibezier":for(var v=2;v+3<n.length;v+=4)e.quadraticCurveTo(n[v],n[v+1],n[v+2],n[v+3]);break;case"straight":case"haystack":for(var h=2;h+1<n.length;h+=2)e.lineTo(n[h],n[h+1]);break;case"segments":if(a.isRound){var g=Hf(a.roundCorners),y;try{for(g.s();!(y=g.n()).done;){var m=y.value;av(e,m)}}catch(w){g.e(w)}finally{g.f()}e.lineTo(n[n.length-2],n[n.length-1])}else for(var b=2;b+1<n.length;b+=2)e.lineTo(n[b],n[b+1]);break}e=i,c?e.stroke(s):e.stroke(),e.setLineDash&&e.setLineDash([])},qn.drawEdgeTrianglePath=function(t,e,n){e.fillStyle=e.strokeStyle;for(var r=t.pstyle("width").pfValue,a=0;a+1<n.length;a+=2){var i=[n[a+2]-n[a],n[a+3]-n[a+1]],s=Math.sqrt(i[0]*i[0]+i[1]*i[1]),l=[i[1]/s,-i[0]/s],c=[l[0]*r/2,l[1]*r/2];e.beginPath(),e.moveTo(n[a]-c[0],n[a+1]-c[1]),e.lineTo(n[a]+c[0],n[a+1]+c[1]),e.lineTo(n[a+2],n[a+3]),e.closePath(),e.fill()}},qn.drawArrowheads=function(t,e,n){var r=e._private.rscratch,a=r.edgeType==="haystack";a||this.drawArrowhead(t,e,"source",r.arrowStartX,r.arrowStartY,r.srcArrowAngle,n),this.drawArrowhead(t,e,"mid-target",r.midX,r.midY,r.midtgtArrowAngle,n),this.drawArrowhead(t,e,"mid-source",r.midX,r.midY,r.midsrcArrowAngle,n),a||this.drawArrowhead(t,e,"target",r.arrowEndX,r.arrowEndY,r.tgtArrowAngle,n)},qn.drawArrowhead=function(t,e,n,r,a,i,s){if(!(isNaN(r)||r==null||isNaN(a)||a==null||isNaN(i)||i==null)){var l=this,c=e.pstyle(n+"-arrow-shape").value;if(c!=="none"){var u=e.pstyle(n+"-arrow-fill").value==="hollow"?"both":"filled",d=e.pstyle(n+"-arrow-fill").value,f=e.pstyle("width").pfValue,p=e.pstyle(n+"-arrow-width"),v=p.value==="match-line"?f:p.pfValue;p.units==="%"&&(v*=f);var h=e.pstyle("opacity").value;s===void 0&&(s=h);var g=t.globalCompositeOperation;(s!==1||d==="hollow")&&(t.globalCompositeOperation="destination-out",l.colorFillStyle(t,255,255,255,1),l.colorStrokeStyle(t,255,255,255,1),l.drawArrowShape(e,t,u,f,c,v,r,a,i),t.globalCompositeOperation=g);var y=e.pstyle(n+"-arrow-color").value;l.colorFillStyle(t,y[0],y[1],y[2],s),l.colorStrokeStyle(t,y[0],y[1],y[2],s),l.drawArrowShape(e,t,d,f,c,v,r,a,i)}}},qn.drawArrowShape=function(t,e,n,r,a,i,s,l,c){var u=this,d=this.usePaths()&&a!=="triangle-cross",f=!1,p,v=e,h={x:s,y:l},g=t.pstyle("arrow-scale").value,y=this.getArrowWidth(r,g),m=u.arrowShapes[a];if(d){var b=u.arrowPathCache=u.arrowPathCache||[],w=Mr(a),C=b[w];C!=null?(p=e=C,f=!0):(p=e=new Path2D,b[w]=p)}f||(e.beginPath&&e.beginPath(),d?m.draw(e,1,0,{x:0,y:0},1):m.draw(e,y,c,h,r),e.closePath&&e.closePath()),e=v,d&&(e.translate(s,l),e.rotate(c),e.scale(y,y)),(n==="filled"||n==="both")&&(d?e.fill(p):e.fill()),(n==="hollow"||n==="both")&&(e.lineWidth=i/(d?y:1),e.lineJoin="miter",d?e.stroke(p):e.stroke()),d&&(e.scale(1/y,1/y),e.rotate(-c),e.translate(-s,-l))};var Ic={};Ic.safeDrawImage=function(t,e,n,r,a,i,s,l,c,u){if(!(a<=0||i<=0||c<=0||u<=0))try{t.drawImage(e,n,r,a,i,s,l,c,u)}catch(d){Ae(d)}},Ic.drawInscribedImage=function(t,e,n,r,a){var i=this,s=n.position(),l=s.x,c=s.y,u=n.cy().style(),d=u.getIndexedStyle.bind(u),f=d(n,"background-fit","value",r),p=d(n,"background-repeat","value",r),v=n.width(),h=n.height(),g=n.padding()*2,y=v+(d(n,"background-width-relative-to","value",r)==="inner"?0:g),m=h+(d(n,"background-height-relative-to","value",r)==="inner"?0:g),b=n._private.rscratch,w=d(n,"background-clip","value",r),C=w==="node",k=d(n,"background-image-opacity","value",r)*a,E=d(n,"background-image-smoothing","value",r),x=n.pstyle("corner-radius").value;x!=="auto"&&(x=n.pstyle("corner-radius").pfValue);var B=e.width||e.cachedW,S=e.height||e.cachedH;(B==null||S==null)&&(document.body.appendChild(e),B=e.cachedW=e.width||e.offsetWidth,S=e.cachedH=e.height||e.offsetHeight,document.body.removeChild(e));var N=B,D=S;if(d(n,"background-width","value",r)!=="auto"&&(d(n,"background-width","units",r)==="%"?N=d(n,"background-width","pfValue",r)*y:N=d(n,"background-width","pfValue",r)),d(n,"background-height","value",r)!=="auto"&&(d(n,"background-height","units",r)==="%"?D=d(n,"background-height","pfValue",r)*m:D=d(n,"background-height","pfValue",r)),!(N===0||D===0)){if(f==="contain"){var _=Math.min(y/N,m/D);N*=_,D*=_}else if(f==="cover"){var _=Math.max(y/N,m/D);N*=_,D*=_}var I=l-y/2,P=d(n,"background-position-x","units",r),F=d(n,"background-position-x","pfValue",r);P==="%"?I+=(y-N)*F:I+=F;var O=d(n,"background-offset-x","units",r),M=d(n,"background-offset-x","pfValue",r);O==="%"?I+=(y-N)*M:I+=M;var L=c-m/2,V=d(n,"background-position-y","units",r),H=d(n,"background-position-y","pfValue",r);V==="%"?L+=(m-D)*H:L+=H;var $=d(n,"background-offset-y","units",r),z=d(n,"background-offset-y","pfValue",r);$==="%"?L+=(m-D)*z:L+=z,b.pathCache&&(I-=l,L-=c,l=0,c=0);var j=t.globalAlpha;t.globalAlpha=k;var ee=i.getImgSmoothing(t),J=!1;if(E==="no"&&ee?(i.setImgSmoothing(t,!1),J=!0):E==="yes"&&!ee&&(i.setImgSmoothing(t,!0),J=!0),p==="no-repeat")C&&(t.save(),b.pathCache?t.clip(b.pathCache):(i.nodeShapes[i.getNodeShape(n)].draw(t,l,c,y,m,x,b),t.clip())),i.safeDrawImage(t,e,0,0,B,S,I,L,N,D),C&&t.restore();else{var X=t.createPattern(e,p);t.fillStyle=X,i.nodeShapes[i.getNodeShape(n)].draw(t,l,c,y,m,x,b),t.translate(I,L),t.fill(),t.translate(-I,-L)}t.globalAlpha=j,J&&i.setImgSmoothing(t,ee)}};var Wr={};Wr.eleTextBiggerThanMin=function(t,e){if(!e){var n=t.cy().zoom(),r=this.getPixelRatio(),a=Math.ceil(Yl(n*r));e=Math.pow(2,a)}var i=t.pstyle("font-size").pfValue*e,s=t.pstyle("min-zoomed-font-size").pfValue;return!(i<s)},Wr.drawElementText=function(t,e,n,r,a){var i=arguments.length>5&&arguments[5]!==void 0?arguments[5]:!0,s=this;if(r==null){if(i&&!s.eleTextBiggerThanMin(e))return}else if(r===!1)return;if(e.isNode()){var l=e.pstyle("label");if(!l||!l.value)return;var c=s.getLabelJustification(e);t.textAlign=c,t.textBaseline="bottom"}else{var u=e.element()._private.rscratch.badLine,d=e.pstyle("label"),f=e.pstyle("source-label"),p=e.pstyle("target-label");if(u||(!d||!d.value)&&(!f||!f.value)&&(!p||!p.value))return;t.textAlign="center",t.textBaseline="bottom"}var v=!n,h;n&&(h=n,t.translate(-h.x1,-h.y1)),a==null?(s.drawText(t,e,null,v,i),e.isEdge()&&(s.drawText(t,e,"source",v,i),s.drawText(t,e,"target",v,i))):s.drawText(t,e,a,v,i),n&&t.translate(h.x1,h.y1)},Wr.getFontCache=function(t){var e;this.fontCaches=this.fontCaches||[];for(var n=0;n<this.fontCaches.length;n++)if(e=this.fontCaches[n],e.context===t)return e;return e={context:t},this.fontCaches.push(e),e},Wr.setupTextStyle=function(t,e){var n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0,r=e.pstyle("font-style").strValue,a=e.pstyle("font-size").pfValue+"px",i=e.pstyle("font-family").strValue,s=e.pstyle("font-weight").strValue,l=n?e.effectiveOpacity()*e.pstyle("text-opacity").value:1,c=e.pstyle("text-outline-opacity").value*l,u=e.pstyle("color").value,d=e.pstyle("text-outline-color").value;t.font=r+" "+s+" "+a+" "+i,t.lineJoin="round",this.colorFillStyle(t,u[0],u[1],u[2],l),this.colorStrokeStyle(t,d[0],d[1],d[2],c)};function Lc(t,e,n,r,a){var i=arguments.length>5&&arguments[5]!==void 0?arguments[5]:5,s=arguments.length>6?arguments[6]:void 0;t.beginPath(),t.moveTo(e+i,n),t.lineTo(e+r-i,n),t.quadraticCurveTo(e+r,n,e+r,n+i),t.lineTo(e+r,n+a-i),t.quadraticCurveTo(e+r,n+a,e+r-i,n+a),t.lineTo(e+i,n+a),t.quadraticCurveTo(e,n+a,e,n+a-i),t.lineTo(e,n+i),t.quadraticCurveTo(e,n,e+i,n),t.closePath(),s?t.stroke():t.fill()}Wr.getTextAngle=function(t,e){var n,r=t._private,a=r.rscratch,i=e?e+"-":"",s=t.pstyle(i+"text-rotation"),l=dn(a,"labelAngle",e);return s.strValue==="autorotate"?n=t.isEdge()?l:0:s.strValue==="none"?n=0:n=s.pfValue,n},Wr.drawText=function(t,e,n){var r=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!0,a=arguments.length>4&&arguments[4]!==void 0?arguments[4]:!0,i=e._private,s=i.rscratch,l=a?e.effectiveOpacity():1;if(!(a&&(l===0||e.pstyle("text-opacity").value===0))){n==="main"&&(n=null);var c=dn(s,"labelX",n),u=dn(s,"labelY",n),d,f,p=this.getLabelText(e,n);if(p!=null&&p!==""&&!isNaN(c)&&!isNaN(u)){this.setupTextStyle(t,e,a);var v=n?n+"-":"",h=dn(s,"labelWidth",n),g=dn(s,"labelHeight",n),y=e.pstyle(v+"text-margin-x").pfValue,m=e.pstyle(v+"text-margin-y").pfValue,b=e.isEdge(),w=e.pstyle("text-halign").value,C=e.pstyle("text-valign").value;b&&(w="center",C="center"),c+=y,u+=m;var k;switch(r?k=this.getTextAngle(e,n):k=0,k!==0&&(d=c,f=u,t.translate(d,f),t.rotate(k),c=0,u=0),C){case"top":break;case"center":u+=g/2;break;case"bottom":u+=g;break}var E=e.pstyle("text-background-opacity").value,x=e.pstyle("text-border-opacity").value,B=e.pstyle("text-border-width").pfValue,S=e.pstyle("text-background-padding").pfValue,N=e.pstyle("text-background-shape").strValue,D=N.indexOf("round")===0,_=2;if(E>0||B>0&&x>0){var I=c-S;switch(w){case"left":I-=h;break;case"center":I-=h/2;break}var P=u-g-S,F=h+2*S,O=g+2*S;if(E>0){var M=t.fillStyle,L=e.pstyle("text-background-color").value;t.fillStyle="rgba("+L[0]+","+L[1]+","+L[2]+","+E*l+")",D?Lc(t,I,P,F,O,_):t.fillRect(I,P,F,O),t.fillStyle=M}if(B>0&&x>0){var V=t.strokeStyle,H=t.lineWidth,$=e.pstyle("text-border-color").value,z=e.pstyle("text-border-style").value;if(t.strokeStyle="rgba("+$[0]+","+$[1]+","+$[2]+","+x*l+")",t.lineWidth=B,t.setLineDash)switch(z){case"dotted":t.setLineDash([1,1]);break;case"dashed":t.setLineDash([4,2]);break;case"double":t.lineWidth=B/4,t.setLineDash([]);break;case"solid":t.setLineDash([]);break}if(D?Lc(t,I,P,F,O,_,"stroke"):t.strokeRect(I,P,F,O),z==="double"){var j=B/2;D?Lc(t,I+j,P+j,F-j*2,O-j*2,_,"stroke"):t.strokeRect(I+j,P+j,F-j*2,O-j*2)}t.setLineDash&&t.setLineDash([]),t.lineWidth=H,t.strokeStyle=V}}var ee=2*e.pstyle("text-outline-width").pfValue;if(ee>0&&(t.lineWidth=ee),e.pstyle("text-wrap").value==="wrap"){var J=dn(s,"labelWrapCachedLines",n),X=dn(s,"labelLineHeight",n),ne=h/2,Y=this.getLabelJustification(e);switch(Y==="auto"||(w==="left"?Y==="left"?c+=-h:Y==="center"&&(c+=-ne):w==="center"?Y==="left"?c+=-ne:Y==="right"&&(c+=ne):w==="right"&&(Y==="center"?c+=ne:Y==="right"&&(c+=h))),C){case"top":u-=(J.length-1)*X;break;case"center":case"bottom":u-=(J.length-1)*X;break}for(var A=0;A<J.length;A++)ee>0&&t.strokeText(J[A],c,u),t.fillText(J[A],c,u),u+=X}else ee>0&&t.strokeText(p,c,u),t.fillText(p,c,u);k!==0&&(t.rotate(-k),t.translate(-d,-f))}}};var Ra={};Ra.drawNode=function(t,e,n){var r=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!0,a=arguments.length>4&&arguments[4]!==void 0?arguments[4]:!0,i=arguments.length>5&&arguments[5]!==void 0?arguments[5]:!0,s=this,l,c,u=e._private,d=u.rscratch,f=e.position();if(!(!le(f.x)||!le(f.y))&&!(i&&!e.visible())){var p=i?e.effectiveOpacity():1,v=s.usePaths(),h,g=!1,y=e.padding();l=e.width()+2*y,c=e.height()+2*y;var m;n&&(m=n,t.translate(-m.x1,-m.y1));for(var b=e.pstyle("background-image"),w=b.value,C=new Array(w.length),k=new Array(w.length),E=0,x=0;x<w.length;x++){var B=w[x],S=C[x]=B!=null&&B!=="none";if(S){var N=e.cy().style().getIndexedStyle(e,"background-image-crossorigin","value",x);E++,k[x]=s.getCachedImage(B,N,function(){u.backgroundTimestamp=Date.now(),e.emitAndNotify("background")})}}var D=e.pstyle("background-blacken").value,_=e.pstyle("border-width").pfValue,I=e.pstyle("background-opacity").value*p,P=e.pstyle("border-color").value,F=e.pstyle("border-style").value,O=e.pstyle("border-join").value,M=e.pstyle("border-cap").value,L=e.pstyle("border-position").value,V=e.pstyle("border-dash-pattern").pfValue,H=e.pstyle("border-dash-offset").pfValue,$=e.pstyle("border-opacity").value*p,z=e.pstyle("outline-width").pfValue,j=e.pstyle("outline-color").value,ee=e.pstyle("outline-style").value,J=e.pstyle("outline-opacity").value*p,X=e.pstyle("outline-offset").value,ne=e.pstyle("corner-radius").value;ne!=="auto"&&(ne=e.pstyle("corner-radius").pfValue);var Y=function(){var ie=arguments.length>0&&arguments[0]!==void 0?arguments[0]:I;s.eleFillStyle(t,e,ie)},A=function(){var ie=arguments.length>0&&arguments[0]!==void 0?arguments[0]:$;s.colorStrokeStyle(t,P[0],P[1],P[2],ie)},K=function(){var ie=arguments.length>0&&arguments[0]!==void 0?arguments[0]:J;s.colorStrokeStyle(t,j[0],j[1],j[2],ie)},W=function(ie,Z,ae,we){var Ce=s.nodePathCache=s.nodePathCache||[],ge=oh(ae==="polygon"?ae+","+we.join(","):ae,""+Z,""+ie,""+ne),Se=Ce[ge],ve,ye=!1;return Se!=null?(ve=Se,ye=!0,d.pathCache=ve):(ve=new Path2D,Ce[ge]=d.pathCache=ve),{path:ve,cacheHit:ye}},oe=e.pstyle("shape").strValue,he=e.pstyle("shape-polygon-points").pfValue;if(v){t.translate(f.x,f.y);var re=W(l,c,oe,he);h=re.path,g=re.cacheHit}var se=function(){if(!g){var ie=f;v&&(ie={x:0,y:0}),s.nodeShapes[s.getNodeShape(e)].draw(h||t,ie.x,ie.y,l,c,ne,d)}v?t.fill(h):t.fill()},ue=function(){for(var ie=arguments.length>0&&arguments[0]!==void 0?arguments[0]:p,Z=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0,ae=u.backgrounding,we=0,Ce=0;Ce<k.length;Ce++){var ge=e.cy().style().getIndexedStyle(e,"background-image-containment","value",Ce);if(Z&&ge==="over"||!Z&&ge==="inside"){we++;continue}C[Ce]&&k[Ce].complete&&!k[Ce].error&&(we++,s.drawInscribedImage(t,k[Ce],e,Ce,ie))}u.backgrounding=we!==E,ae!==u.backgrounding&&e.updateStyle(!1)},pe=function(){var ie=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!1,Z=arguments.length>1&&arguments[1]!==void 0?arguments[1]:p;s.hasPie(e)&&(s.drawPie(t,e,Z),ie&&(v||s.nodeShapes[s.getNodeShape(e)].draw(t,f.x,f.y,l,c,ne,d)))},de=function(){var ie=arguments.length>0&&arguments[0]!==void 0?arguments[0]:p,Z=(D>0?D:-D)*ie,ae=D>0?0:255;D!==0&&(s.colorFillStyle(t,ae,ae,ae,Z),v?t.fill(h):t.fill())},me=function(){if(_>0){if(t.lineWidth=_,t.lineCap=M,t.lineJoin=O,t.setLineDash)switch(F){case"dotted":t.setLineDash([1,1]);break;case"dashed":t.setLineDash(V),t.lineDashOffset=H;break;case"solid":case"double":t.setLineDash([]);break}if(L!=="center"){if(t.save(),t.lineWidth*=2,L==="inside")v?t.clip(h):t.clip();else{var ie=new Path2D;ie.rect(-l/2-_,-c/2-_,l+2*_,c+2*_),ie.addPath(h),t.clip(ie,"evenodd")}v?t.stroke(h):t.stroke(),t.restore()}else v?t.stroke(h):t.stroke();if(F==="double"){t.lineWidth=_/3;var Z=t.globalCompositeOperation;t.globalCompositeOperation="destination-out",v?t.stroke(h):t.stroke(),t.globalCompositeOperation=Z}t.setLineDash&&t.setLineDash([])}},Ne=function(){if(z>0){if(t.lineWidth=z,t.lineCap="butt",t.setLineDash)switch(ee){case"dotted":t.setLineDash([1,1]);break;case"dashed":t.setLineDash([4,2]);break;case"solid":case"double":t.setLineDash([]);break}var ie=f;v&&(ie={x:0,y:0});var Z=s.getNodeShape(e),ae=_;L==="inside"&&(ae=0),L==="outside"&&(ae*=2);var we=(l+ae+(z+X))/l,Ce=(c+ae+(z+X))/c,ge=l*we,Se=c*Ce,ve=s.nodeShapes[Z].points,ye;if(v){var Ge=W(ge,Se,Z,ve);ye=Ge.path}if(Z==="ellipse")s.drawEllipsePath(ye||t,ie.x,ie.y,ge,Se);else if(["round-diamond","round-heptagon","round-hexagon","round-octagon","round-pentagon","round-polygon","round-triangle","round-tag"].includes(Z)){var $e=0,nt=0,rt=0;Z==="round-diamond"?$e=(ae+X+z)*1.4:Z==="round-heptagon"?($e=(ae+X+z)*1.075,rt=-(ae/2+X+z)/35):Z==="round-hexagon"?$e=(ae+X+z)*1.12:Z==="round-pentagon"?($e=(ae+X+z)*1.13,rt=-(ae/2+X+z)/15):Z==="round-tag"?($e=(ae+X+z)*1.12,nt=(ae/2+z+X)*.07):Z==="round-triangle"&&($e=(ae+X+z)*(Math.PI/2),rt=-(ae+X/2+z)/Math.PI),$e!==0&&(we=(l+$e)/l,ge=l*we,["round-hexagon","round-tag"].includes(Z)||(Ce=(c+$e)/c,Se=c*Ce)),ne=ne==="auto"?Ch(ge,Se):ne;for(var Qe=ge/2,Pt=Se/2,ut=ne+(ae+z+X)/2,ht=new Array(ve.length/2),Wt=new Array(ve.length/2),Ot=0;Ot<ve.length/2;Ot++)ht[Ot]={x:ie.x+nt+Qe*ve[Ot*2],y:ie.y+rt+Pt*ve[Ot*2+1]};var It,tn,pn,Kt,Je=ht.length;for(tn=ht[Je-1],It=0;It<Je;It++)pn=ht[It%Je],Kt=ht[(It+1)%Je],Wt[It]=Nc(tn,pn,Kt,ut),tn=pn,pn=Kt;s.drawRoundPolygonPath(ye||t,ie.x+nt,ie.y+rt,l*we,c*Ce,ve,Wt)}else if(["roundrectangle","round-rectangle"].includes(Z))ne=ne==="auto"?Rr(ge,Se):ne,s.drawRoundRectanglePath(ye||t,ie.x,ie.y,ge,Se,ne+(ae+z+X)/2);else if(["cutrectangle","cut-rectangle"].includes(Z))ne=ne==="auto"?Jl():ne,s.drawCutRectanglePath(ye||t,ie.x,ie.y,ge,Se,null,ne+(ae+z+X)/4);else if(["bottomroundrectangle","bottom-round-rectangle"].includes(Z))ne=ne==="auto"?Rr(ge,Se):ne,s.drawBottomRoundRectanglePath(ye||t,ie.x,ie.y,ge,Se,ne+(ae+z+X)/2);else if(Z==="barrel")s.drawBarrelPath(ye||t,ie.x,ie.y,ge,Se);else if(Z.startsWith("polygon")||["rhomboid","right-rhomboid","round-tag","tag","vee"].includes(Z)){var at=(ae+z+X)/l;ve=Uo(Go(ve,at)),s.drawPolygonPath(ye||t,ie.x,ie.y,l,c,ve)}else{var pt=(ae+z+X)/l;ve=Uo(Go(ve,-pt)),s.drawPolygonPath(ye||t,ie.x,ie.y,l,c,ve)}if(v?t.stroke(ye):t.stroke(),ee==="double"){t.lineWidth=ae/3;var mr=t.globalCompositeOperation;t.globalCompositeOperation="destination-out",v?t.stroke(ye):t.stroke(),t.globalCompositeOperation=mr}t.setLineDash&&t.setLineDash([])}},De=function(){a&&s.drawNodeOverlay(t,e,f,l,c)},Ee=function(){a&&s.drawNodeUnderlay(t,e,f,l,c)},_e=function(){s.drawElementText(t,e,null,r)},te=e.pstyle("ghost").value==="yes";if(te){var T=e.pstyle("ghost-offset-x").pfValue,R=e.pstyle("ghost-offset-y").pfValue,Q=e.pstyle("ghost-opacity").value,G=Q*p;t.translate(T,R),K(),Ne(),Y(Q*I),se(),ue(G,!0),A(Q*$),me(),pe(D!==0||_!==0),ue(G,!1),de(G),t.translate(-T,-R)}v&&t.translate(-f.x,-f.y),Ee(),v&&t.translate(f.x,f.y),K(),Ne(),Y(),se(),ue(p,!0),A(),me(),pe(D!==0||_!==0),ue(p,!1),de(),v&&t.translate(-f.x,-f.y),_e(),De(),n&&t.translate(m.x1,m.y1)}};var Ev=function(e){if(!["overlay","underlay"].includes(e))throw new Error("Invalid state");return function(n,r,a,i,s){var l=this;if(r.visible()){var c=r.pstyle("".concat(e,"-padding")).pfValue,u=r.pstyle("".concat(e,"-opacity")).value,d=r.pstyle("".concat(e,"-color")).value,f=r.pstyle("".concat(e,"-shape")).value,p=r.pstyle("".concat(e,"-corner-radius")).value;if(u>0){if(a=a||r.position(),i==null||s==null){var v=r.padding();i=r.width()+2*v,s=r.height()+2*v}l.colorFillStyle(n,d[0],d[1],d[2],u),l.nodeShapes[f].draw(n,a.x,a.y,i+c*2,s+c*2,p),n.fill()}}}};Ra.drawNodeOverlay=Ev("overlay"),Ra.drawNodeUnderlay=Ev("underlay"),Ra.hasPie=function(t){return t=t[0],t._private.hasPie},Ra.drawPie=function(t,e,n,r){e=e[0],r=r||e.position();var a=e.cy().style(),i=e.pstyle("pie-size"),s=r.x,l=r.y,c=e.width(),u=e.height(),d=Math.min(c,u)/2,f=0,p=this.usePaths();p&&(s=0,l=0),i.units==="%"?d=d*i.pfValue:i.pfValue!==void 0&&(d=i.pfValue/2);for(var v=1;v<=a.pieBackgroundN;v++){var h=e.pstyle("pie-"+v+"-background-size").value,g=e.pstyle("pie-"+v+"-background-color").value,y=e.pstyle("pie-"+v+"-background-opacity").value*n,m=h/100;m+f>1&&(m=1-f);var b=1.5*Math.PI+2*Math.PI*f,w=2*Math.PI*m,C=b+w;h===0||f>=1||f+m>1||(t.beginPath(),t.moveTo(s,l),t.arc(s,l,d,b,C),t.closePath(),this.colorFillStyle(t,g[0],g[1],g[2],y),t.fill(),f+=m)}};var Gt={},d3=100;Gt.getPixelRatio=function(){var t=this.data.contexts[0];if(this.forcedPixelRatio!=null)return this.forcedPixelRatio;var e=this.cy.window(),n=t.backingStorePixelRatio||t.webkitBackingStorePixelRatio||t.mozBackingStorePixelRatio||t.msBackingStorePixelRatio||t.oBackingStorePixelRatio||t.backingStorePixelRatio||1;return(e.devicePixelRatio||1)/n},Gt.paintCache=function(t){for(var e=this.paintCaches=this.paintCaches||[],n=!0,r,a=0;a<e.length;a++)if(r=e[a],r.context===t){n=!1;break}return n&&(r={context:t},e.push(r)),r},Gt.createGradientStyleFor=function(t,e,n,r,a){var i,s=this.usePaths(),l=n.pstyle(e+"-gradient-stop-colors").value,c=n.pstyle(e+"-gradient-stop-positions").pfValue;if(r==="radial-gradient")if(n.isEdge()){var u=n.sourceEndpoint(),d=n.targetEndpoint(),f=n.midpoint(),p=Fr(u,f),v=Fr(d,f);i=t.createRadialGradient(f.x,f.y,0,f.x,f.y,Math.max(p,v))}else{var h=s?{x:0,y:0}:n.position(),g=n.paddedWidth(),y=n.paddedHeight();i=t.createRadialGradient(h.x,h.y,0,h.x,h.y,Math.max(g,y))}else if(n.isEdge()){var m=n.sourceEndpoint(),b=n.targetEndpoint();i=t.createLinearGradient(m.x,m.y,b.x,b.y)}else{var w=s?{x:0,y:0}:n.position(),C=n.paddedWidth(),k=n.paddedHeight(),E=C/2,x=k/2,B=n.pstyle("background-gradient-direction").value;switch(B){case"to-bottom":i=t.createLinearGradient(w.x,w.y-x,w.x,w.y+x);break;case"to-top":i=t.createLinearGradient(w.x,w.y+x,w.x,w.y-x);break;case"to-left":i=t.createLinearGradient(w.x+E,w.y,w.x-E,w.y);break;case"to-right":i=t.createLinearGradient(w.x-E,w.y,w.x+E,w.y);break;case"to-bottom-right":case"to-right-bottom":i=t.createLinearGradient(w.x-E,w.y-x,w.x+E,w.y+x);break;case"to-top-right":case"to-right-top":i=t.createLinearGradient(w.x-E,w.y+x,w.x+E,w.y-x);break;case"to-bottom-left":case"to-left-bottom":i=t.createLinearGradient(w.x+E,w.y-x,w.x-E,w.y+x);break;case"to-top-left":case"to-left-top":i=t.createLinearGradient(w.x+E,w.y+x,w.x-E,w.y-x);break}}if(!i)return null;for(var S=c.length===l.length,N=l.length,D=0;D<N;D++)i.addColorStop(S?c[D]:D/(N-1),"rgba("+l[D][0]+","+l[D][1]+","+l[D][2]+","+a+")");return i},Gt.gradientFillStyle=function(t,e,n,r){var a=this.createGradientStyleFor(t,"background",e,n,r);if(!a)return null;t.fillStyle=a},Gt.colorFillStyle=function(t,e,n,r,a){t.fillStyle="rgba("+e+","+n+","+r+","+a+")"},Gt.eleFillStyle=function(t,e,n){var r=e.pstyle("background-fill").value;if(r==="linear-gradient"||r==="radial-gradient")this.gradientFillStyle(t,e,r,n);else{var a=e.pstyle("background-color").value;this.colorFillStyle(t,a[0],a[1],a[2],n)}},Gt.gradientStrokeStyle=function(t,e,n,r){var a=this.createGradientStyleFor(t,"line",e,n,r);if(!a)return null;t.strokeStyle=a},Gt.colorStrokeStyle=function(t,e,n,r,a){t.strokeStyle="rgba("+e+","+n+","+r+","+a+")"},Gt.eleStrokeStyle=function(t,e,n){var r=e.pstyle("line-fill").value;if(r==="linear-gradient"||r==="radial-gradient")this.gradientStrokeStyle(t,e,r,n);else{var a=e.pstyle("line-color").value;this.colorStrokeStyle(t,a[0],a[1],a[2],n)}},Gt.matchCanvasSize=function(t){var e=this,n=e.data,r=e.findContainerClientCoords(),a=r[2],i=r[3],s=e.getPixelRatio(),l=e.motionBlurPxRatio;(t===e.data.bufferCanvases[e.MOTIONBLUR_BUFFER_NODE]||t===e.data.bufferCanvases[e.MOTIONBLUR_BUFFER_DRAG])&&(s=l);var c=a*s,u=i*s,d;if(!(c===e.canvasWidth&&u===e.canvasHeight)){e.fontCaches=null;var f=n.canvasContainer;f.style.width=a+"px",f.style.height=i+"px";for(var p=0;p<e.CANVAS_LAYERS;p++)d=n.canvases[p],d.width=c,d.height=u,d.style.width=a+"px",d.style.height=i+"px";for(var p=0;p<e.BUFFER_COUNT;p++)d=n.bufferCanvases[p],d.width=c,d.height=u,d.style.width=a+"px",d.style.height=i+"px";e.textureMult=1,s<=1&&(d=n.bufferCanvases[e.TEXTURE_BUFFER],e.textureMult=2,d.width=c*e.textureMult,d.height=u*e.textureMult),e.canvasWidth=c,e.canvasHeight=u}},Gt.renderTo=function(t,e,n,r){this.render({forcedContext:t,forcedZoom:e,forcedPan:n,drawAllLayers:!0,forcedPxRatio:r})},Gt.render=function(t){t=t||fh();var e=t.forcedContext,n=t.drawAllLayers,r=t.drawOnlyNodeLayer,a=t.forcedZoom,i=t.forcedPan,s=this,l=t.forcedPxRatio===void 0?this.getPixelRatio():t.forcedPxRatio,c=s.cy,u=s.data,d=u.canvasNeedsRedraw,f=s.textureOnViewport&&!e&&(s.pinching||s.hoverData.dragging||s.swipePanning||s.data.wheelZooming),p=t.motionBlur!==void 0?t.motionBlur:s.motionBlur,v=s.motionBlurPxRatio,h=c.hasCompoundNodes(),g=s.hoverData.draggingEles,y=!!(s.hoverData.selecting||s.touchData.selecting);p=p&&!e&&s.motionBlurEnabled&&!y;var m=p;e||(s.prevPxRatio!==l&&(s.invalidateContainerClientCoordsCache(),s.matchCanvasSize(s.container),s.redrawHint("eles",!0),s.redrawHint("drag",!0)),s.prevPxRatio=l),!e&&s.motionBlurTimeout&&clearTimeout(s.motionBlurTimeout),p&&(s.mbFrames==null&&(s.mbFrames=0),s.mbFrames++,s.mbFrames<3&&(m=!1),s.mbFrames>s.minMbLowQualFrames&&(s.motionBlurPxRatio=s.mbPxRBlurry)),s.clearingMotionBlur&&(s.motionBlurPxRatio=1),s.textureDrawLastFrame&&!f&&(d[s.NODE]=!0,d[s.SELECT_BOX]=!0);var b=c.style(),w=c.zoom(),C=a!==void 0?a:w,k=c.pan(),E={x:k.x,y:k.y},x={zoom:w,pan:{x:k.x,y:k.y}},B=s.prevViewport,S=B===void 0||x.zoom!==B.zoom||x.pan.x!==B.pan.x||x.pan.y!==B.pan.y;!S&&!(g&&!h)&&(s.motionBlurPxRatio=1),i&&(E=i),C*=l,E.x*=l,E.y*=l;var N=s.getCachedZSortedEles();function D(re,se,ue,pe,de){var me=re.globalCompositeOperation;re.globalCompositeOperation="destination-out",s.colorFillStyle(re,255,255,255,s.motionBlurTransparency),re.fillRect(se,ue,pe,de),re.globalCompositeOperation=me}function _(re,se){var ue,pe,de,me;!s.clearingMotionBlur&&(re===u.bufferContexts[s.MOTIONBLUR_BUFFER_NODE]||re===u.bufferContexts[s.MOTIONBLUR_BUFFER_DRAG])?(ue={x:k.x*v,y:k.y*v},pe=w*v,de=s.canvasWidth*v,me=s.canvasHeight*v):(ue=E,pe=C,de=s.canvasWidth,me=s.canvasHeight),re.setTransform(1,0,0,1,0,0),se==="motionBlur"?D(re,0,0,de,me):!e&&(se===void 0||se)&&re.clearRect(0,0,de,me),n||(re.translate(ue.x,ue.y),re.scale(pe,pe)),i&&re.translate(i.x,i.y),a&&re.scale(a,a)}if(f||(s.textureDrawLastFrame=!1),f){if(s.textureDrawLastFrame=!0,!s.textureCache){s.textureCache={},s.textureCache.bb=c.mutableElements().boundingBox(),s.textureCache.texture=s.data.bufferCanvases[s.TEXTURE_BUFFER];var I=s.data.bufferContexts[s.TEXTURE_BUFFER];I.setTransform(1,0,0,1,0,0),I.clearRect(0,0,s.canvasWidth*s.textureMult,s.canvasHeight*s.textureMult),s.render({forcedContext:I,drawOnlyNodeLayer:!0,forcedPxRatio:l*s.textureMult});var x=s.textureCache.viewport={zoom:c.zoom(),pan:c.pan(),width:s.canvasWidth,height:s.canvasHeight};x.mpan={x:(0-x.pan.x)/x.zoom,y:(0-x.pan.y)/x.zoom}}d[s.DRAG]=!1,d[s.NODE]=!1;var P=u.contexts[s.NODE],F=s.textureCache.texture,x=s.textureCache.viewport;P.setTransform(1,0,0,1,0,0),p?D(P,0,0,x.width,x.height):P.clearRect(0,0,x.width,x.height);var O=b.core("outside-texture-bg-color").value,M=b.core("outside-texture-bg-opacity").value;s.colorFillStyle(P,O[0],O[1],O[2],M),P.fillRect(0,0,x.width,x.height);var w=c.zoom();_(P,!1),P.clearRect(x.mpan.x,x.mpan.y,x.width/x.zoom/l,x.height/x.zoom/l),P.drawImage(F,x.mpan.x,x.mpan.y,x.width/x.zoom/l,x.height/x.zoom/l)}else s.textureOnViewport&&!e&&(s.textureCache=null);var L=c.extent(),V=s.pinching||s.hoverData.dragging||s.swipePanning||s.data.wheelZooming||s.hoverData.draggingEles||s.cy.animated(),H=s.hideEdgesOnViewport&&V,$=[];if($[s.NODE]=!d[s.NODE]&&p&&!s.clearedForMotionBlur[s.NODE]||s.clearingMotionBlur,$[s.NODE]&&(s.clearedForMotionBlur[s.NODE]=!0),$[s.DRAG]=!d[s.DRAG]&&p&&!s.clearedForMotionBlur[s.DRAG]||s.clearingMotionBlur,$[s.DRAG]&&(s.clearedForMotionBlur[s.DRAG]=!0),d[s.NODE]||n||r||$[s.NODE]){var z=p&&!$[s.NODE]&&v!==1,P=e||(z?s.data.bufferContexts[s.MOTIONBLUR_BUFFER_NODE]:u.contexts[s.NODE]),j=p&&!z?"motionBlur":void 0;_(P,j),H?s.drawCachedNodes(P,N.nondrag,l,L):s.drawLayeredElements(P,N.nondrag,l,L),s.debug&&s.drawDebugPoints(P,N.nondrag),!n&&!p&&(d[s.NODE]=!1)}if(!r&&(d[s.DRAG]||n||$[s.DRAG])){var z=p&&!$[s.DRAG]&&v!==1,P=e||(z?s.data.bufferContexts[s.MOTIONBLUR_BUFFER_DRAG]:u.contexts[s.DRAG]);_(P,p&&!z?"motionBlur":void 0),H?s.drawCachedNodes(P,N.drag,l,L):s.drawCachedElements(P,N.drag,l,L),s.debug&&s.drawDebugPoints(P,N.drag),!n&&!p&&(d[s.DRAG]=!1)}if(s.showFps||!r&&d[s.SELECT_BOX]&&!n){var P=e||u.contexts[s.SELECT_BOX];if(_(P),s.selection[4]==1&&(s.hoverData.selecting||s.touchData.selecting)){var w=s.cy.zoom(),ee=b.core("selection-box-border-width").value/w;P.lineWidth=ee,P.fillStyle="rgba("+b.core("selection-box-color").value[0]+","+b.core("selection-box-color").value[1]+","+b.core("selection-box-color").value[2]+","+b.core("selection-box-opacity").value+")",P.fillRect(s.selection[0],s.selection[1],s.selection[2]-s.selection[0],s.selection[3]-s.selection[1]),ee>0&&(P.strokeStyle="rgba("+b.core("selection-box-border-color").value[0]+","+b.core("selection-box-border-color").value[1]+","+b.core("selection-box-border-color").value[2]+","+b.core("selection-box-opacity").value+")",P.strokeRect(s.selection[0],s.selection[1],s.selection[2]-s.selection[0],s.selection[3]-s.selection[1]))}if(u.bgActivePosistion&&!s.hoverData.selecting){var w=s.cy.zoom(),J=u.bgActivePosistion;P.fillStyle="rgba("+b.core("active-bg-color").value[0]+","+b.core("active-bg-color").value[1]+","+b.core("active-bg-color").value[2]+","+b.core("active-bg-opacity").value+")",P.beginPath(),P.arc(J.x,J.y,b.core("active-bg-size").pfValue/w,0,2*Math.PI),P.fill()}var X=s.lastRedrawTime;if(s.showFps&&X){X=Math.round(X);var ne=Math.round(1e3/X);P.setTransform(1,0,0,1,0,0),P.fillStyle="rgba(255, 0, 0, 0.75)",P.strokeStyle="rgba(255, 0, 0, 0.75)",P.lineWidth=1,P.fillText("1 frame = "+X+" ms = "+ne+" fps",0,20);var Y=60;P.strokeRect(0,30,250,20),P.fillRect(0,30,250*Math.min(ne/Y,1),20)}n||(d[s.SELECT_BOX]=!1)}if(p&&v!==1){var A=u.contexts[s.NODE],K=s.data.bufferCanvases[s.MOTIONBLUR_BUFFER_NODE],W=u.contexts[s.DRAG],oe=s.data.bufferCanvases[s.MOTIONBLUR_BUFFER_DRAG],he=function(se,ue,pe){se.setTransform(1,0,0,1,0,0),pe||!m?se.clearRect(0,0,s.canvasWidth,s.canvasHeight):D(se,0,0,s.canvasWidth,s.canvasHeight);var de=v;se.drawImage(ue,0,0,s.canvasWidth*de,s.canvasHeight*de,0,0,s.canvasWidth,s.canvasHeight)};(d[s.NODE]||$[s.NODE])&&(he(A,K,$[s.NODE]),d[s.NODE]=!1),(d[s.DRAG]||$[s.DRAG])&&(he(W,oe,$[s.DRAG]),d[s.DRAG]=!1)}s.prevViewport=x,s.clearingMotionBlur&&(s.clearingMotionBlur=!1,s.motionBlurCleared=!0,s.motionBlur=!0),p&&(s.motionBlurTimeout=setTimeout(function(){s.motionBlurTimeout=null,s.clearedForMotionBlur[s.NODE]=!1,s.clearedForMotionBlur[s.DRAG]=!1,s.motionBlur=!1,s.clearingMotionBlur=!f,s.mbFrames=0,d[s.NODE]=!0,d[s.DRAG]=!0,s.redraw()},d3)),e||c.emit("render")};var gr={};gr.drawPolygonPath=function(t,e,n,r,a,i){var s=r/2,l=a/2;t.beginPath&&t.beginPath(),t.moveTo(e+s*i[0],n+l*i[1]);for(var c=1;c<i.length/2;c++)t.lineTo(e+s*i[c*2],n+l*i[c*2+1]);t.closePath()},gr.drawRoundPolygonPath=function(t,e,n,r,a,i,s){s.forEach(function(l){return av(t,l)}),t.closePath()},gr.drawRoundRectanglePath=function(t,e,n,r,a,i){var s=r/2,l=a/2,c=i==="auto"?Rr(r,a):Math.min(i,l,s);t.beginPath&&t.beginPath(),t.moveTo(e,n-l),t.arcTo(e+s,n-l,e+s,n,c),t.arcTo(e+s,n+l,e,n+l,c),t.arcTo(e-s,n+l,e-s,n,c),t.arcTo(e-s,n-l,e,n-l,c),t.lineTo(e,n-l),t.closePath()},gr.drawBottomRoundRectanglePath=function(t,e,n,r,a,i){var s=r/2,l=a/2,c=i==="auto"?Rr(r,a):i;t.beginPath&&t.beginPath(),t.moveTo(e,n-l),t.lineTo(e+s,n-l),t.lineTo(e+s,n),t.arcTo(e+s,n+l,e,n+l,c),t.arcTo(e-s,n+l,e-s,n,c),t.lineTo(e-s,n-l),t.lineTo(e,n-l),t.closePath()},gr.drawCutRectanglePath=function(t,e,n,r,a,i,s){var l=r/2,c=a/2,u=s==="auto"?Jl():s;t.beginPath&&t.beginPath(),t.moveTo(e-l+u,n-c),t.lineTo(e+l-u,n-c),t.lineTo(e+l,n-c+u),t.lineTo(e+l,n+c-u),t.lineTo(e+l-u,n+c),t.lineTo(e-l+u,n+c),t.lineTo(e-l,n+c-u),t.lineTo(e-l,n-c+u),t.closePath()},gr.drawBarrelPath=function(t,e,n,r,a){var i=r/2,s=a/2,l=e-i,c=e+i,u=n-s,d=n+s,f=ec(r,a),p=f.widthOffset,v=f.heightOffset,h=f.ctrlPtOffsetPct*p;t.beginPath&&t.beginPath(),t.moveTo(l,u+v),t.lineTo(l,d-v),t.quadraticCurveTo(l+h,d,l+p,d),t.lineTo(c-p,d),t.quadraticCurveTo(c-h,d,c,d-v),t.lineTo(c,u+v),t.quadraticCurveTo(c-h,u,c-p,u),t.lineTo(l+p,u),t.quadraticCurveTo(l+h,u,l,u+v),t.closePath()};for(var Sv=Math.sin(0),Tv=Math.cos(0),Mc={},Fc={},Bv=Math.PI/40,$a=0*Math.PI;$a<2*Math.PI;$a+=Bv)Mc[$a]=Math.sin($a),Fc[$a]=Math.cos($a);gr.drawEllipsePath=function(t,e,n,r,a){if(t.beginPath&&t.beginPath(),t.ellipse)t.ellipse(e,n,r/2,a/2,0,0,2*Math.PI);else for(var i,s,l=r/2,c=a/2,u=0*Math.PI;u<2*Math.PI;u+=Bv)i=e-l*Mc[u]*Sv+l*Fc[u]*Tv,s=n+c*Fc[u]*Sv+c*Mc[u]*Tv,u===0?t.moveTo(i,s):t.lineTo(i,s);t.closePath()};var Wi={};Wi.createBuffer=function(t,e){var n=document.createElement("canvas");return n.width=t,n.height=e,[n,n.getContext("2d")]},Wi.bufferCanvasImage=function(t){var e=this.cy,n=e.mutableElements(),r=n.boundingBox(),a=this.findContainerClientCoords(),i=t.full?Math.ceil(r.w):a[2],s=t.full?Math.ceil(r.h):a[3],l=le(t.maxWidth)||le(t.maxHeight),c=this.getPixelRatio(),u=1;if(t.scale!==void 0)i*=t.scale,s*=t.scale,u=t.scale;else if(l){var d=1/0,f=1/0;le(t.maxWidth)&&(d=u*t.maxWidth/i),le(t.maxHeight)&&(f=u*t.maxHeight/s),u=Math.min(d,f),i*=u,s*=u}l||(i*=c,s*=c,u*=c);var p=document.createElement("canvas");p.width=i,p.height=s,p.style.width=i+"px",p.style.height=s+"px";var v=p.getContext("2d");if(i>0&&s>0){v.clearRect(0,0,i,s),v.globalCompositeOperation="source-over";var h=this.getCachedZSortedEles();if(t.full)v.translate(-r.x1*u,-r.y1*u),v.scale(u,u),this.drawElements(v,h),v.scale(1/u,1/u),v.translate(r.x1*u,r.y1*u);else{var g=e.pan(),y={x:g.x*u,y:g.y*u};u*=e.zoom(),v.translate(y.x,y.y),v.scale(u,u),this.drawElements(v,h),v.scale(1/u,1/u),v.translate(-y.x,-y.y)}t.bg&&(v.globalCompositeOperation="destination-over",v.fillStyle=t.bg,v.rect(0,0,i,s),v.fill())}return p};function f3(t,e){for(var n=atob(t),r=new ArrayBuffer(n.length),a=new Uint8Array(r),i=0;i<n.length;i++)a[i]=n.charCodeAt(i);return new Blob([r],{type:e})}function Nv(t){var e=t.indexOf(",");return t.substr(e+1)}function Dv(t,e,n){var r=function(){return e.toDataURL(n,t.quality)};switch(t.output){case"blob-promise":return new xa(function(a,i){try{e.toBlob(function(s){s!=null?a(s):i(new Error("`canvas.toBlob()` sent a null value in its callback"))},n,t.quality)}catch(s){i(s)}});case"blob":return f3(Nv(r()),n);case"base64":return Nv(r());case"base64uri":default:return r()}}Wi.png=function(t){return Dv(t,this.bufferCanvasImage(t),"image/png")},Wi.jpg=function(t){return Dv(t,this.bufferCanvasImage(t),"image/jpeg")};var _v={};_v.nodeShapeImpl=function(t,e,n,r,a,i,s,l){switch(t){case"ellipse":return this.drawEllipsePath(e,n,r,a,i);case"polygon":return this.drawPolygonPath(e,n,r,a,i,s);case"round-polygon":return this.drawRoundPolygonPath(e,n,r,a,i,s,l);case"roundrectangle":case"round-rectangle":return this.drawRoundRectanglePath(e,n,r,a,i,l);case"cutrectangle":case"cut-rectangle":return this.drawCutRectanglePath(e,n,r,a,i,s,l);case"bottomroundrectangle":case"bottom-round-rectangle":return this.drawBottomRoundRectanglePath(e,n,r,a,i,l);case"barrel":return this.drawBarrelPath(e,n,r,a,i)}};var h3=Pv,Me=Pv.prototype;Me.CANVAS_LAYERS=3,Me.SELECT_BOX=0,Me.DRAG=1,Me.NODE=2,Me.BUFFER_COUNT=3,Me.TEXTURE_BUFFER=0,Me.MOTIONBLUR_BUFFER_NODE=1,Me.MOTIONBLUR_BUFFER_DRAG=2;function Pv(t){var e=this,n=e.cy.window(),r=n.document;e.data={canvases:new Array(Me.CANVAS_LAYERS),contexts:new Array(Me.CANVAS_LAYERS),canvasNeedsRedraw:new Array(Me.CANVAS_LAYERS),bufferCanvases:new Array(Me.BUFFER_COUNT),bufferContexts:new Array(Me.CANVAS_LAYERS)};var a="-webkit-tap-highlight-color",i="rgba(0,0,0,0)";e.data.canvasContainer=r.createElement("div");var s=e.data.canvasContainer.style;e.data.canvasContainer.style[a]=i,s.position="relative",s.zIndex="0",s.overflow="hidden";var l=t.cy.container();l.appendChild(e.data.canvasContainer),l.style[a]=i;var c={"-webkit-user-select":"none","-moz-user-select":"-moz-none","user-select":"none","-webkit-tap-highlight-color":"rgba(0,0,0,0)","outline-style":"none"};eS()&&(c["-ms-touch-action"]="none",c["touch-action"]="none");for(var u=0;u<Me.CANVAS_LAYERS;u++){var d=e.data.canvases[u]=r.createElement("canvas");e.data.contexts[u]=d.getContext("2d"),Object.keys(c).forEach(function(Y){d.style[Y]=c[Y]}),d.style.position="absolute",d.setAttribute("data-id","layer"+u),d.style.zIndex=String(Me.CANVAS_LAYERS-u),e.data.canvasContainer.appendChild(d),e.data.canvasNeedsRedraw[u]=!1}e.data.topCanvas=e.data.canvases[0],e.data.canvases[Me.NODE].setAttribute("data-id","layer"+Me.NODE+"-node"),e.data.canvases[Me.SELECT_BOX].setAttribute("data-id","layer"+Me.SELECT_BOX+"-selectbox"),e.data.canvases[Me.DRAG].setAttribute("data-id","layer"+Me.DRAG+"-drag");for(var u=0;u<Me.BUFFER_COUNT;u++)e.data.bufferCanvases[u]=r.createElement("canvas"),e.data.bufferContexts[u]=e.data.bufferCanvases[u].getContext("2d"),e.data.bufferCanvases[u].style.position="absolute",e.data.bufferCanvases[u].setAttribute("data-id","buffer"+u),e.data.bufferCanvases[u].style.zIndex=String(-u-1),e.data.bufferCanvases[u].style.visibility="hidden";e.pathsEnabled=!0;var f=zt(),p=function(A){return{x:(A.x1+A.x2)/2,y:(A.y1+A.y2)/2}},v=function(A){return{x:-A.w/2,y:-A.h/2}},h=function(A){var K=A[0]._private,W=K.oldBackgroundTimestamp===K.backgroundTimestamp;return!W},g=function(A){return A[0]._private.nodeKey},y=function(A){return A[0]._private.labelStyleKey},m=function(A){return A[0]._private.sourceLabelStyleKey},b=function(A){return A[0]._private.targetLabelStyleKey},w=function(A,K,W,oe,he){return e.drawElement(A,K,W,!1,!1,he)},C=function(A,K,W,oe,he){return e.drawElementText(A,K,W,oe,"main",he)},k=function(A,K,W,oe,he){return e.drawElementText(A,K,W,oe,"source",he)},E=function(A,K,W,oe,he){return e.drawElementText(A,K,W,oe,"target",he)},x=function(A){return A.boundingBox(),A[0]._private.bodyBounds},B=function(A){return A.boundingBox(),A[0]._private.labelBounds.main||f},S=function(A){return A.boundingBox(),A[0]._private.labelBounds.source||f},N=function(A){return A.boundingBox(),A[0]._private.labelBounds.target||f},D=function(A,K){return K},_=function(A){return p(x(A))},I=function(A,K,W){var oe=A?A+"-":"";return{x:K.x+W.pstyle(oe+"text-margin-x").pfValue,y:K.y+W.pstyle(oe+"text-margin-y").pfValue}},P=function(A,K,W){var oe=A[0]._private.rscratch;return{x:oe[K],y:oe[W]}},F=function(A){return I("",P(A,"labelX","labelY"),A)},O=function(A){return I("source",P(A,"sourceLabelX","sourceLabelY"),A)},M=function(A){return I("target",P(A,"targetLabelX","targetLabelY"),A)},L=function(A){return v(x(A))},V=function(A){return v(S(A))},H=function(A){return v(N(A))},$=function(A){var K=B(A),W=v(B(A));if(A.isNode()){switch(A.pstyle("text-halign").value){case"left":W.x=-K.w;break;case"right":W.x=0;break}switch(A.pstyle("text-valign").value){case"top":W.y=-K.h;break;case"bottom":W.y=0;break}}return W},z=e.data.eleTxrCache=new Ui(e,{getKey:g,doesEleInvalidateKey:h,drawElement:w,getBoundingBox:x,getRotationPoint:_,getRotationOffset:L,allowEdgeTxrCaching:!1,allowParentTxrCaching:!1}),j=e.data.lblTxrCache=new Ui(e,{getKey:y,drawElement:C,getBoundingBox:B,getRotationPoint:F,getRotationOffset:$,isVisible:D}),ee=e.data.slbTxrCache=new Ui(e,{getKey:m,drawElement:k,getBoundingBox:S,getRotationPoint:O,getRotationOffset:V,isVisible:D}),J=e.data.tlbTxrCache=new Ui(e,{getKey:b,drawElement:E,getBoundingBox:N,getRotationPoint:M,getRotationOffset:H,isVisible:D}),X=e.data.lyrTxrCache=new yv(e);e.onUpdateEleCalcs(function(A,K){z.invalidateElements(K),j.invalidateElements(K),ee.invalidateElements(K),J.invalidateElements(K),X.invalidateElements(K);for(var W=0;W<K.length;W++){var oe=K[W]._private;oe.oldBackgroundTimestamp=oe.backgroundTimestamp}});var ne=function(A){for(var K=0;K<A.length;K++)X.enqueueElementRefinement(A[K].ele)};z.onDequeue(ne),j.onDequeue(ne),ee.onDequeue(ne),J.onDequeue(ne)}Me.redrawHint=function(t,e){var n=this;switch(t){case"eles":n.data.canvasNeedsRedraw[Me.NODE]=e;break;case"drag":n.data.canvasNeedsRedraw[Me.DRAG]=e;break;case"select":n.data.canvasNeedsRedraw[Me.SELECT_BOX]=e;break}};var p3=typeof Path2D<"u";Me.path2dEnabled=function(t){if(t===void 0)return this.pathsEnabled;this.pathsEnabled=!!t},Me.usePaths=function(){return p3&&this.pathsEnabled},Me.setImgSmoothing=function(t,e){t.imageSmoothingEnabled!=null?t.imageSmoothingEnabled=e:(t.webkitImageSmoothingEnabled=e,t.mozImageSmoothingEnabled=e,t.msImageSmoothingEnabled=e)},Me.getImgSmoothing=function(t){return t.imageSmoothingEnabled!=null?t.imageSmoothingEnabled:t.webkitImageSmoothingEnabled||t.mozImageSmoothingEnabled||t.msImageSmoothingEnabled},Me.makeOffscreenCanvas=function(t,e){var n;if((typeof OffscreenCanvas>"u"?"undefined":ot(OffscreenCanvas))!=="undefined")n=new OffscreenCanvas(t,e);else{var r=this.cy.window(),a=r.document;n=a.createElement("canvas"),n.width=t,n.height=e}return n},[wv,Nn,qn,Ic,Wr,Ra,Gt,gr,Wi,_v].forEach(function(t){xe(Me,t)});var v3=[{name:"null",impl:Yp},{name:"base",impl:pv},{name:"canvas",impl:h3}],g3=[{type:"layout",extensions:kD},{type:"renderer",extensions:v3}],Ov={},Iv={};function Lv(t,e,n){var r=n,a=function(B){Ae("Can not register `"+e+"` for `"+t+"` since `"+B+"` already exists in the prototype and can not be overridden")};if(t==="core"){if(Hi.prototype[e])return a(e);Hi.prototype[e]=n}else if(t==="collection"){if(kt.prototype[e])return a(e);kt.prototype[e]=n}else if(t==="layout"){for(var i=function(B){this.options=B,n.call(this,B),Oe(this._private)||(this._private={}),this._private.cy=B.cy,this._private.listeners=[],this.createEmitter()},s=i.prototype=Object.create(n.prototype),l=[],c=0;c<l.length;c++){var u=l[c];s[u]=s[u]||function(){return this}}s.start&&!s.run?s.run=function(){return this.start(),this}:!s.start&&s.run&&(s.start=function(){return this.run(),this});var d=n.prototype.stop;s.stop=function(){var x=this.options;if(x&&x.animate){var B=this.animations;if(B)for(var S=0;S<B.length;S++)B[S].stop()}return d?d.call(this):this.emit("layoutstop"),this},s.destroy||(s.destroy=function(){return this}),s.cy=function(){return this._private.cy};var f=function(B){return B._private.cy},p={addEventFields:function(B,S){S.layout=B,S.cy=f(B),S.target=B},bubble:function(){return!0},parent:function(B){return f(B)}};xe(s,{createEmitter:function(){return this._private.emitter=new os(p,this),this},emitter:function(){return this._private.emitter},on:function(B,S){return this.emitter().on(B,S),this},one:function(B,S){return this.emitter().one(B,S),this},once:function(B,S){return this.emitter().one(B,S),this},removeListener:function(B,S){return this.emitter().removeListener(B,S),this},removeAllListeners:function(){return this.emitter().removeAllListeners(),this},emit:function(B,S){return this.emitter().emit(B,S),this}}),Ve.eventAliasesOn(s),r=i}else if(t==="renderer"&&e!=="null"&&e!=="base"){var v=Mv("renderer","base"),h=v.prototype,g=n,y=n.prototype,m=function(){v.apply(this,arguments),g.apply(this,arguments)},b=m.prototype;for(var w in h){var C=h[w],k=y[w]!=null;if(k)return a(w);b[w]=C}for(var E in y)b[E]=y[E];h.clientFunctions.forEach(function(x){b[x]=b[x]||function(){Ze("Renderer does not implement `renderer."+x+"()` on its prototype")}}),r=m}else if(t==="__proto__"||t==="constructor"||t==="prototype")return Ze(t+" is an illegal type to be registered, possibly lead to prototype pollutions");return Zf({map:Ov,keys:[t,e],value:r})}function Mv(t,e){return Xf({map:Ov,keys:[t,e]})}function m3(t,e,n,r,a){return Zf({map:Iv,keys:[t,e,n,r],value:a})}function y3(t,e,n,r){return Xf({map:Iv,keys:[t,e,n,r]})}var Ac=function(){if(arguments.length===2)return Mv.apply(null,arguments);if(arguments.length===3)return Lv.apply(null,arguments);if(arguments.length===4)return y3.apply(null,arguments);if(arguments.length===5)return m3.apply(null,arguments);Ze("Invalid extension access syntax")};Hi.prototype.extension=Ac,g3.forEach(function(t){t.extensions.forEach(function(e){Lv(t.type,e.name,e.impl)})});var Fv=function t(){if(!(this instanceof t))return new t;this.length=0},jr=Fv.prototype;jr.instanceString=function(){return"stylesheet"},jr.selector=function(t){var e=this.length++;return this[e]={selector:t,properties:[]},this},jr.css=function(t,e){var n=this.length-1;if(be(t))this[n].properties.push({name:t,value:e});else if(Oe(t))for(var r=t,a=Object.keys(r),i=0;i<a.length;i++){var s=a[i],l=r[s];if(l!=null){var c=Nt.properties[s]||Nt.properties[Lo(s)];if(c!=null){var u=c.name,d=l;this[n].properties.push({name:u,value:d})}}}return this},jr.style=jr.css,jr.generateStyle=function(t){var e=new Nt(t);return this.appendToStyle(e)},jr.appendToStyle=function(t){for(var e=0;e<this.length;e++){var n=this[e],r=n.selector,a=n.properties;t.selector(r);for(var i=0;i<a.length;i++){var s=a[i];t.css(s.name,s.value)}}return t};var b3="3.30.2",Yr=function(e){if(e===void 0&&(e={}),Oe(e))return new Hi(e);if(be(e))return Ac.apply(Ac,arguments)};Yr.use=function(t){var e=Array.prototype.slice.call(arguments,1);return e.unshift(Yr),t.apply(null,e),this},Yr.warnings=function(t){return uh(t)},Yr.version=b3,Yr.stylesheet=Yr.Stylesheet=Fv;let w3=class extends EventTarget{constructor(n,r){super();mn(this,"cyg",null);mn(this,"nodes",[]);mn(this,"edges",[]);mn(this,"axons",[]);mn(this,"dendrites",[]);mn(this,"somas",[]);mn(this,"labelCache",new Map);mn(this,"graphCanvas",null);this.labelCache=n,this.graphCanvas=r}async addConnectivity(n){var r;if(this.axons=n.axons.map(a=>JSON.stringify(a)),this.dendrites=n.dendrites.map(a=>JSON.stringify(a)),(r=n.somas)!=null&&r.length&&(this.somas=n.somas.map(a=>JSON.stringify(a))),n.connectivity.length)for(const a of n.connectivity){const i=await this.graphNode(a[0]),s=await this.graphNode(a[1]);this.nodes.push(i),this.nodes.push(s),this.edges.push({id:`${i.id}_${s.id}`,source:i.id,target:s.id})}else this.nodes.push({id:"MISSING",label:"NO PATHS"})}showConnectivity(n){this.cyg=new E3(this,n),this.cyg.on("tap-node",r=>{const a=new CustomEvent("tap-node",{detail:r.detail});this.dispatchEvent(a)})}selectConnectivity(n){var r;if((r=this.cyg)!=null&&r.cy){let a="";this.cyg.cy.elements().forEach(i=>{const s=i.data("label"),l=Vc(s);x3(n,l)&&(a=i.id())}),a&&this.cyg.cy.$id(a).select()}}clearConnectivity(){var n;(n=this.cyg)!=null&&n.cy&&(this.cyg.cy.remove(),this.cyg.cy=null)}reset(){var n;(n=this.cyg)!=null&&n.cy&&this.cyg.cy.reset()}zoom(n){var r;if((r=this.cyg)!=null&&r.cy){const a=this.cyg.cy.zoom(),i=this.cyg.cy.width(),s=this.cyg.cy.height(),l={x:i/2,y:s/2};this.cyg.cy.zoom({level:a+n,renderedPosition:l})}}enableZoom(n){var r;(r=this.cyg)!=null&&r.cy&&this.cyg.cy.userZoomingEnabled(n)}get elements(){return[...this.nodes.map(n=>({data:n})),...this.edges.map(n=>({data:n}))]}get roots(){return[...this.dendrites,...this.somas]}async graphNode(n){const r=JSON.stringify(n),a=[n[0],...n[1]],i=[];for(const l of a){const c=this.labelCache.has(l)?this.labelCache.get(l):"";i.push(c)}a.push(...i);const s={id:r,label:a.join(`
44
+ `),w=0;w<b.length;w++){var C=b[w],k=h.measureText(C),E=Math.ceil(k.width),x=d;y=Math.max(E,y),m+=x}return y+=c,m+=c,s[i]={width:y,height:m}},Bn.calculateLabelAngle=function(t,e){var n=t._private,r=n.rscratch,a=t.isEdge(),i=e?e+"-":"",s=t.pstyle(i+"text-rotation"),l=s.strValue;return l==="none"?0:a&&l==="autorotate"?r.labelAutoAngle:l==="autorotate"?0:s.pfValue},Bn.calculateLabelAngles=function(t){var e=this,n=t.isEdge(),r=t._private,a=r.rscratch;a.labelAngle=e.calculateLabelAngle(t),n&&(a.sourceLabelAngle=e.calculateLabelAngle(t,"source"),a.targetLabelAngle=e.calculateLabelAngle(t,"target"))};var lv={},cv=28,uv=!1;lv.getNodeShape=function(t){var e=this,n=t.pstyle("shape").value;if(n==="cutrectangle"&&(t.width()<cv||t.height()<cv))return uv||(Ae("The `cutrectangle` node shape can not be used at small sizes so `rectangle` is used instead"),uv=!0),"rectangle";if(t.isParent())return n==="rectangle"||n==="roundrectangle"||n==="round-rectangle"||n==="cutrectangle"||n==="cut-rectangle"||n==="barrel"?n:"rectangle";if(n==="polygon"){var r=t.pstyle("shape-polygon-points").value;return e.nodeShapes.makePolygon(r).name}return n};var Es={};Es.registerCalculationListeners=function(){var t=this.cy,e=t.collection(),n=this,r=function(s){var l=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0;if(e.merge(s),l)for(var c=0;c<s.length;c++){var u=s[c],d=u._private,f=d.rstyle;f.clean=!1,f.cleanConnected=!1}};n.binder(t).on("bounds.* dirty.*",function(s){var l=s.target;r(l)}).on("style.* background.*",function(s){var l=s.target;r(l,!1)});var a=function(s){if(s){var l=n.onUpdateEleCalcsFns;e.cleanStyle();for(var c=0;c<e.length;c++){var u=e[c],d=u._private.rstyle;u.isNode()&&!d.cleanConnected&&(r(u.connectedEdges()),d.cleanConnected=!0)}if(l)for(var f=0;f<l.length;f++){var p=l[f];p(s,e)}n.recalculateRenderedStyle(e),e=t.collection()}};n.flushRenderedStyleQueue=function(){a(!0)},n.beforeRender(a,n.beforeRenderPriorities.eleCalcs)},Es.onUpdateEleCalcs=function(t){var e=this.onUpdateEleCalcsFns=this.onUpdateEleCalcsFns||[];e.push(t)},Es.recalculateRenderedStyle=function(t,e){var n=function(C){return C._private.rstyle.cleanConnected},r=[],a=[];if(!this.destroyed){e===void 0&&(e=!0);for(var i=0;i<t.length;i++){var s=t[i],l=s._private,c=l.rstyle;s.isEdge()&&(!n(s.source())||!n(s.target()))&&(c.clean=!1),!(e&&c.clean||s.removed())&&s.pstyle("display").value!=="none"&&(l.group==="nodes"?a.push(s):r.push(s),c.clean=!0)}for(var u=0;u<a.length;u++){var d=a[u],f=d._private,p=f.rstyle,v=d.position();this.recalculateNodeLabelProjection(d),p.nodeX=v.x,p.nodeY=v.y,p.nodeW=d.pstyle("width").pfValue,p.nodeH=d.pstyle("height").pfValue}this.recalculateEdgeProjections(r);for(var h=0;h<r.length;h++){var g=r[h],y=g._private,m=y.rstyle,b=y.rscratch;m.srcX=b.arrowStartX,m.srcY=b.arrowStartY,m.tgtX=b.arrowEndX,m.tgtY=b.arrowEndY,m.midX=b.midX,m.midY=b.midY,m.labelAngle=b.labelAngle,m.sourceLabelAngle=b.sourceLabelAngle,m.targetLabelAngle=b.targetLabelAngle}}};var Ss={};Ss.updateCachedGrabbedEles=function(){var t=this.cachedZSortedEles;if(t){t.drag=[],t.nondrag=[];for(var e=[],n=0;n<t.length;n++){var r=t[n],a=r._private.rscratch;r.grabbed()&&!r.isParent()?e.push(r):a.inDragLayer?t.drag.push(r):t.nondrag.push(r)}for(var n=0;n<e.length;n++){var r=e[n];t.drag.push(r)}}},Ss.invalidateCachedZSortedEles=function(){this.cachedZSortedEles=null},Ss.getCachedZSortedEles=function(t){if(t||!this.cachedZSortedEles){var e=this.cy.mutableElements().toArray();e.sort(Tp),e.interactive=e.filter(function(n){return n.interactive()}),this.cachedZSortedEles=e,this.updateCachedGrabbedEles()}else e=this.cachedZSortedEles;return e};var dv={};[Kr,Cs,_t,Ki,Dc,Bn,lv,Es,Ss].forEach(function(t){xe(dv,t)});var fv={};fv.getCachedImage=function(t,e,n){var r=this,a=r.imageCache=r.imageCache||{},i=a[t];if(i)return i.image.complete||i.image.addEventListener("load",n),i.image;i=a[t]=a[t]||{};var s=i.image=new Image;s.addEventListener("load",n),s.addEventListener("error",function(){s.error=!0});var l="data:",c=t.substring(0,l.length).toLowerCase()===l;return c||(e=e==="null"?null:e,s.crossOrigin=e),s.src=t,s};var Fa={};Fa.registerBinding=function(t,e,n,r){var a=Array.prototype.slice.apply(arguments,[1]),i=this.binder(t);return i.on.apply(i,a)},Fa.binder=function(t){var e=this,n=e.cy.window(),r=t===n||t===n.document||t===n.document.body||XE(t);if(e.supportsPassiveEvents==null){var a=!1;try{var i=Object.defineProperty({},"passive",{get:function(){return a=!0,!0}});n.addEventListener("test",null,i)}catch{}e.supportsPassiveEvents=a}var s=function(c,u,d){var f=Array.prototype.slice.call(arguments);return r&&e.supportsPassiveEvents&&(f[2]={capture:d??!1,passive:!1,once:!1}),e.bindings.push({target:t,args:f}),(t.addEventListener||t.on).apply(t,f),this};return{on:s,addEventListener:s,addListener:s,bind:s}},Fa.nodeIsDraggable=function(t){return t&&t.isNode()&&!t.locked()&&t.grabbable()},Fa.nodeIsGrabbable=function(t){return this.nodeIsDraggable(t)&&t.interactive()},Fa.load=function(){var t=this,e=t.cy.window(),n=function(T){return T.selected()},r=function(T,R,Q,G){T==null&&(T=t.cy);for(var U=0;U<R.length;U++){var ie=R[U];T.emit({originalEvent:Q,type:ie,position:G})}},a=function(T){return T.shiftKey||T.metaKey||T.ctrlKey},i=function(T,R){var Q=!0;if(t.cy.hasCompoundNodes()&&T&&T.pannable())for(var G=0;R&&G<R.length;G++){var T=R[G];if(T.isNode()&&T.isParent()&&!T.pannable()){Q=!1;break}}else Q=!0;return Q},s=function(T){T[0]._private.grabbed=!0},l=function(T){T[0]._private.grabbed=!1},c=function(T){T[0]._private.rscratch.inDragLayer=!0},u=function(T){T[0]._private.rscratch.inDragLayer=!1},d=function(T){T[0]._private.rscratch.isGrabTarget=!0},f=function(T){T[0]._private.rscratch.isGrabTarget=!1},p=function(T,R){var Q=R.addToList,G=Q.has(T);!G&&T.grabbable()&&!T.locked()&&(Q.merge(T),s(T))},v=function(T,R){if(T.cy().hasCompoundNodes()&&!(R.inDragLayer==null&&R.addToList==null)){var Q=T.descendants();R.inDragLayer&&(Q.forEach(c),Q.connectedEdges().forEach(c)),R.addToList&&p(Q,R)}},h=function(T,R){R=R||{};var Q=T.cy().hasCompoundNodes();R.inDragLayer&&(T.forEach(c),T.neighborhood().stdFilter(function(G){return!Q||G.isEdge()}).forEach(c)),R.addToList&&T.forEach(function(G){p(G,R)}),v(T,R),m(T,{inDragLayer:R.inDragLayer}),t.updateCachedGrabbedEles()},g=h,y=function(T){T&&(t.getCachedZSortedEles().forEach(function(R){l(R),u(R),f(R)}),t.updateCachedGrabbedEles())},m=function(T,R){if(!(R.inDragLayer==null&&R.addToList==null)&&T.cy().hasCompoundNodes()){var Q=T.ancestors().orphans();if(!Q.same(T)){var G=Q.descendants().spawnSelf().merge(Q).unmerge(T).unmerge(T.descendants()),U=G.connectedEdges();R.inDragLayer&&(U.forEach(c),G.forEach(c)),R.addToList&&G.forEach(function(ie){p(ie,R)})}}},b=function(){document.activeElement!=null&&document.activeElement.blur!=null&&document.activeElement.blur()},w=typeof MutationObserver<"u",C=typeof ResizeObserver<"u";w?(t.removeObserver=new MutationObserver(function(te){for(var T=0;T<te.length;T++){var R=te[T],Q=R.removedNodes;if(Q)for(var G=0;G<Q.length;G++){var U=Q[G];if(U===t.container){t.destroy();break}}}}),t.container.parentNode&&t.removeObserver.observe(t.container.parentNode,{childList:!0})):t.registerBinding(t.container,"DOMNodeRemoved",function(te){t.destroy()});var k=Fo(function(){t.cy.resize()},100);w&&(t.styleObserver=new MutationObserver(k),t.styleObserver.observe(t.container,{attributes:!0})),t.registerBinding(e,"resize",k),C&&(t.resizeObserver=new ResizeObserver(k),t.resizeObserver.observe(t.container));var E=function(T,R){for(;T!=null;)R(T),T=T.parentNode},x=function(){t.invalidateContainerClientCoordsCache()};E(t.container,function(te){t.registerBinding(te,"transitionend",x),t.registerBinding(te,"animationend",x),t.registerBinding(te,"scroll",x)}),t.registerBinding(t.container,"contextmenu",function(te){te.preventDefault()});var B=function(){return t.selection[4]!==0},S=function(T){for(var R=t.findContainerClientCoords(),Q=R[0],G=R[1],U=R[2],ie=R[3],Z=T.touches?T.touches:[T],ae=!1,we=0;we<Z.length;we++){var Ce=Z[we];if(Q<=Ce.clientX&&Ce.clientX<=Q+U&&G<=Ce.clientY&&Ce.clientY<=G+ie){ae=!0;break}}if(!ae)return!1;for(var ge=t.container,Se=T.target,ve=Se.parentNode,ye=!1;ve;){if(ve===ge){ye=!0;break}ve=ve.parentNode}return!!ye};t.registerBinding(t.container,"mousedown",function(T){if(S(T)&&!(t.hoverData.which===1&&T.which!==1)){T.preventDefault(),b(),t.hoverData.capture=!0,t.hoverData.which=T.which;var R=t.cy,Q=[T.clientX,T.clientY],G=t.projectIntoViewport(Q[0],Q[1]),U=t.selection,ie=t.findNearestElements(G[0],G[1],!0,!1),Z=ie[0],ae=t.dragData.possibleDragElements;t.hoverData.mdownPos=G,t.hoverData.mdownGPos=Q;var we=function(){t.hoverData.tapholdCancelled=!1,clearTimeout(t.hoverData.tapholdTimeout),t.hoverData.tapholdTimeout=setTimeout(function(){if(!t.hoverData.tapholdCancelled){var Ge=t.hoverData.down;Ge?Ge.emit({originalEvent:T,type:"taphold",position:{x:G[0],y:G[1]}}):R.emit({originalEvent:T,type:"taphold",position:{x:G[0],y:G[1]}})}},t.tapholdDuration)};if(T.which==3){t.hoverData.cxtStarted=!0;var Ce={originalEvent:T,type:"cxttapstart",position:{x:G[0],y:G[1]}};Z?(Z.activate(),Z.emit(Ce),t.hoverData.down=Z):R.emit(Ce),t.hoverData.downTime=new Date().getTime(),t.hoverData.cxtDragged=!1}else if(T.which==1){Z&&Z.activate();{if(Z!=null&&t.nodeIsGrabbable(Z)){var ge=function(Ge){return{originalEvent:T,type:Ge,position:{x:G[0],y:G[1]}}},Se=function(Ge){Ge.emit(ge("grab"))};if(d(Z),!Z.selected())ae=t.dragData.possibleDragElements=R.collection(),g(Z,{addToList:ae}),Z.emit(ge("grabon")).emit(ge("grab"));else{ae=t.dragData.possibleDragElements=R.collection();var ve=R.$(function(ye){return ye.isNode()&&ye.selected()&&t.nodeIsGrabbable(ye)});h(ve,{addToList:ae}),Z.emit(ge("grabon")),ve.forEach(Se)}t.redrawHint("eles",!0),t.redrawHint("drag",!0)}t.hoverData.down=Z,t.hoverData.downs=ie,t.hoverData.downTime=new Date().getTime()}r(Z,["mousedown","tapstart","vmousedown"],T,{x:G[0],y:G[1]}),Z==null?(U[4]=1,t.data.bgActivePosistion={x:G[0],y:G[1]},t.redrawHint("select",!0),t.redraw()):Z.pannable()&&(U[4]=1),we()}U[0]=U[2]=G[0],U[1]=U[3]=G[1]}},!1),t.registerBinding(e,"mousemove",function(T){var R=t.hoverData.capture;if(!(!R&&!S(T))){var Q=!1,G=t.cy,U=G.zoom(),ie=[T.clientX,T.clientY],Z=t.projectIntoViewport(ie[0],ie[1]),ae=t.hoverData.mdownPos,we=t.hoverData.mdownGPos,Ce=t.selection,ge=null;!t.hoverData.draggingEles&&!t.hoverData.dragging&&!t.hoverData.selecting&&(ge=t.findNearestElement(Z[0],Z[1],!0,!1));var Se=t.hoverData.last,ve=t.hoverData.down,ye=[Z[0]-Ce[2],Z[1]-Ce[3]],Ge=t.dragData.possibleDragElements,$e;if(we){var nt=ie[0]-we[0],rt=nt*nt,Qe=ie[1]-we[1],Pt=Qe*Qe,ut=rt+Pt;t.hoverData.isOverThresholdDrag=$e=ut>=t.desktopTapThreshold2}var ht=a(T);$e&&(t.hoverData.tapholdCancelled=!0);var Wt=function(){var q=t.hoverData.dragDelta=t.hoverData.dragDelta||[];q.length===0?(q.push(ye[0]),q.push(ye[1])):(q[0]+=ye[0],q[1]+=ye[1])};Q=!0,r(ge,["mousemove","vmousemove","tapdrag"],T,{x:Z[0],y:Z[1]});var Ot=function(){t.data.bgActivePosistion=void 0,t.hoverData.selecting||G.emit({originalEvent:T,type:"boxstart",position:{x:Z[0],y:Z[1]}}),Ce[4]=1,t.hoverData.selecting=!0,t.redrawHint("select",!0),t.redraw()};if(t.hoverData.which===3){if($e){var It={originalEvent:T,type:"cxtdrag",position:{x:Z[0],y:Z[1]}};ve?ve.emit(It):G.emit(It),t.hoverData.cxtDragged=!0,(!t.hoverData.cxtOver||ge!==t.hoverData.cxtOver)&&(t.hoverData.cxtOver&&t.hoverData.cxtOver.emit({originalEvent:T,type:"cxtdragout",position:{x:Z[0],y:Z[1]}}),t.hoverData.cxtOver=ge,ge&&ge.emit({originalEvent:T,type:"cxtdragover",position:{x:Z[0],y:Z[1]}}))}}else if(t.hoverData.dragging){if(Q=!0,G.panningEnabled()&&G.userPanningEnabled()){var tn;if(t.hoverData.justStartedPan){var pn=t.hoverData.mdownPos;tn={x:(Z[0]-pn[0])*U,y:(Z[1]-pn[1])*U},t.hoverData.justStartedPan=!1}else tn={x:ye[0]*U,y:ye[1]*U};G.panBy(tn),G.emit("dragpan"),t.hoverData.dragged=!0}Z=t.projectIntoViewport(T.clientX,T.clientY)}else if(Ce[4]==1&&(ve==null||ve.pannable())){if($e){if(!t.hoverData.dragging&&G.boxSelectionEnabled()&&(ht||!G.panningEnabled()||!G.userPanningEnabled()))Ot();else if(!t.hoverData.selecting&&G.panningEnabled()&&G.userPanningEnabled()){var Kt=i(ve,t.hoverData.downs);Kt&&(t.hoverData.dragging=!0,t.hoverData.justStartedPan=!0,Ce[4]=0,t.data.bgActivePosistion=ma(ae),t.redrawHint("select",!0),t.redraw())}ve&&ve.pannable()&&ve.active()&&ve.unactivate()}}else{if(ve&&ve.pannable()&&ve.active()&&ve.unactivate(),(!ve||!ve.grabbed())&&ge!=Se&&(Se&&r(Se,["mouseout","tapdragout"],T,{x:Z[0],y:Z[1]}),ge&&r(ge,["mouseover","tapdragover"],T,{x:Z[0],y:Z[1]}),t.hoverData.last=ge),ve)if($e){if(G.boxSelectionEnabled()&&ht)ve&&ve.grabbed()&&(y(Ge),ve.emit("freeon"),Ge.emit("free"),t.dragData.didDrag&&(ve.emit("dragfreeon"),Ge.emit("dragfree"))),Ot();else if(ve&&ve.grabbed()&&t.nodeIsDraggable(ve)){var Je=!t.dragData.didDrag;Je&&t.redrawHint("eles",!0),t.dragData.didDrag=!0,t.hoverData.draggingEles||h(Ge,{inDragLayer:!0});var at={x:0,y:0};if(le(ye[0])&&le(ye[1])&&(at.x+=ye[0],at.y+=ye[1],Je)){var pt=t.hoverData.dragDelta;pt&&le(pt[0])&&le(pt[1])&&(at.x+=pt[0],at.y+=pt[1])}t.hoverData.draggingEles=!0,Ge.silentShift(at).emit("position drag"),t.redrawHint("drag",!0),t.redraw()}}else Wt();Q=!0}if(Ce[2]=Z[0],Ce[3]=Z[1],Q)return T.stopPropagation&&T.stopPropagation(),T.preventDefault&&T.preventDefault(),!1}},!1);var N,D,_;t.registerBinding(e,"mouseup",function(T){if(!(t.hoverData.which===1&&T.which!==1&&t.hoverData.capture)){var R=t.hoverData.capture;if(R){t.hoverData.capture=!1;var Q=t.cy,G=t.projectIntoViewport(T.clientX,T.clientY),U=t.selection,ie=t.findNearestElement(G[0],G[1],!0,!1),Z=t.dragData.possibleDragElements,ae=t.hoverData.down,we=a(T);if(t.data.bgActivePosistion&&(t.redrawHint("select",!0),t.redraw()),t.hoverData.tapholdCancelled=!0,t.data.bgActivePosistion=void 0,ae&&ae.unactivate(),t.hoverData.which===3){var Ce={originalEvent:T,type:"cxttapend",position:{x:G[0],y:G[1]}};if(ae?ae.emit(Ce):Q.emit(Ce),!t.hoverData.cxtDragged){var ge={originalEvent:T,type:"cxttap",position:{x:G[0],y:G[1]}};ae?ae.emit(ge):Q.emit(ge)}t.hoverData.cxtDragged=!1,t.hoverData.which=null}else if(t.hoverData.which===1){if(r(ie,["mouseup","tapend","vmouseup"],T,{x:G[0],y:G[1]}),!t.dragData.didDrag&&!t.hoverData.dragged&&!t.hoverData.selecting&&!t.hoverData.isOverThresholdDrag&&(r(ae,["click","tap","vclick"],T,{x:G[0],y:G[1]}),D=!1,T.timeStamp-_<=Q.multiClickDebounceTime()?(N&&clearTimeout(N),D=!0,_=null,r(ae,["dblclick","dbltap","vdblclick"],T,{x:G[0],y:G[1]})):(N=setTimeout(function(){D||r(ae,["oneclick","onetap","voneclick"],T,{x:G[0],y:G[1]})},Q.multiClickDebounceTime()),_=T.timeStamp)),ae==null&&!t.dragData.didDrag&&!t.hoverData.selecting&&!t.hoverData.dragged&&!a(T)&&(Q.$(n).unselect(["tapunselect"]),Z.length>0&&t.redrawHint("eles",!0),t.dragData.possibleDragElements=Z=Q.collection()),ie==ae&&!t.dragData.didDrag&&!t.hoverData.selecting&&ie!=null&&ie._private.selectable&&(t.hoverData.dragging||(Q.selectionType()==="additive"||we?ie.selected()?ie.unselect(["tapunselect"]):ie.select(["tapselect"]):we||(Q.$(n).unmerge(ie).unselect(["tapunselect"]),ie.select(["tapselect"]))),t.redrawHint("eles",!0)),t.hoverData.selecting){var Se=Q.collection(t.getAllInBox(U[0],U[1],U[2],U[3]));t.redrawHint("select",!0),Se.length>0&&t.redrawHint("eles",!0),Q.emit({type:"boxend",originalEvent:T,position:{x:G[0],y:G[1]}});var ve=function($e){return $e.selectable()&&!$e.selected()};Q.selectionType()==="additive"||we||Q.$(n).unmerge(Se).unselect(),Se.emit("box").stdFilter(ve).select().emit("boxselect"),t.redraw()}if(t.hoverData.dragging&&(t.hoverData.dragging=!1,t.redrawHint("select",!0),t.redrawHint("eles",!0),t.redraw()),!U[4]){t.redrawHint("drag",!0),t.redrawHint("eles",!0);var ye=ae&&ae.grabbed();y(Z),ye&&(ae.emit("freeon"),Z.emit("free"),t.dragData.didDrag&&(ae.emit("dragfreeon"),Z.emit("dragfree")))}}U[4]=0,t.hoverData.down=null,t.hoverData.cxtStarted=!1,t.hoverData.draggingEles=!1,t.hoverData.selecting=!1,t.hoverData.isOverThresholdDrag=!1,t.dragData.didDrag=!1,t.hoverData.dragged=!1,t.hoverData.dragDelta=[],t.hoverData.mdownPos=null,t.hoverData.mdownGPos=null,t.hoverData.which=null}}},!1);var I=function(T){if(!t.scrollingPage){var R=t.cy,Q=R.zoom(),G=R.pan(),U=t.projectIntoViewport(T.clientX,T.clientY),ie=[U[0]*Q+G.x,U[1]*Q+G.y];if(t.hoverData.draggingEles||t.hoverData.dragging||t.hoverData.cxtStarted||B()){T.preventDefault();return}if(R.panningEnabled()&&R.userPanningEnabled()&&R.zoomingEnabled()&&R.userZoomingEnabled()){T.preventDefault(),t.data.wheelZooming=!0,clearTimeout(t.data.wheelTimeout),t.data.wheelTimeout=setTimeout(function(){t.data.wheelZooming=!1,t.redrawHint("eles",!0),t.redraw()},150);var Z;T.deltaY!=null?Z=T.deltaY/-250:T.wheelDeltaY!=null?Z=T.wheelDeltaY/1e3:Z=T.wheelDelta/1e3,Z=Z*t.wheelSensitivity;var ae=T.deltaMode===1;ae&&(Z*=33);var we=R.zoom()*Math.pow(10,Z);T.type==="gesturechange"&&(we=t.gestureStartZoom*T.scale),R.zoom({level:we,renderedPosition:{x:ie[0],y:ie[1]}}),R.emit(T.type==="gesturechange"?"pinchzoom":"scrollzoom")}}};t.registerBinding(t.container,"wheel",I,!0),t.registerBinding(e,"scroll",function(T){t.scrollingPage=!0,clearTimeout(t.scrollingPageTimeout),t.scrollingPageTimeout=setTimeout(function(){t.scrollingPage=!1},250)},!0),t.registerBinding(t.container,"gesturestart",function(T){t.gestureStartZoom=t.cy.zoom(),t.hasTouchStarted||T.preventDefault()},!0),t.registerBinding(t.container,"gesturechange",function(te){t.hasTouchStarted||I(te)},!0),t.registerBinding(t.container,"mouseout",function(T){var R=t.projectIntoViewport(T.clientX,T.clientY);t.cy.emit({originalEvent:T,type:"mouseout",position:{x:R[0],y:R[1]}})},!1),t.registerBinding(t.container,"mouseover",function(T){var R=t.projectIntoViewport(T.clientX,T.clientY);t.cy.emit({originalEvent:T,type:"mouseover",position:{x:R[0],y:R[1]}})},!1);var P,F,O,M,L,V,H,$,z,j,ee,J,X,ne=function(T,R,Q,G){return Math.sqrt((Q-T)*(Q-T)+(G-R)*(G-R))},Y=function(T,R,Q,G){return(Q-T)*(Q-T)+(G-R)*(G-R)},A;t.registerBinding(t.container,"touchstart",A=function(T){if(t.hasTouchStarted=!0,!!S(T)){b(),t.touchData.capture=!0,t.data.bgActivePosistion=void 0;var R=t.cy,Q=t.touchData.now,G=t.touchData.earlier;if(T.touches[0]){var U=t.projectIntoViewport(T.touches[0].clientX,T.touches[0].clientY);Q[0]=U[0],Q[1]=U[1]}if(T.touches[1]){var U=t.projectIntoViewport(T.touches[1].clientX,T.touches[1].clientY);Q[2]=U[0],Q[3]=U[1]}if(T.touches[2]){var U=t.projectIntoViewport(T.touches[2].clientX,T.touches[2].clientY);Q[4]=U[0],Q[5]=U[1]}if(T.touches[1]){t.touchData.singleTouchMoved=!0,y(t.dragData.touchDragEles);var ie=t.findContainerClientCoords();z=ie[0],j=ie[1],ee=ie[2],J=ie[3],P=T.touches[0].clientX-z,F=T.touches[0].clientY-j,O=T.touches[1].clientX-z,M=T.touches[1].clientY-j,X=0<=P&&P<=ee&&0<=O&&O<=ee&&0<=F&&F<=J&&0<=M&&M<=J;var Z=R.pan(),ae=R.zoom();L=ne(P,F,O,M),V=Y(P,F,O,M),H=[(P+O)/2,(F+M)/2],$=[(H[0]-Z.x)/ae,(H[1]-Z.y)/ae];var we=200,Ce=we*we;if(V<Ce&&!T.touches[2]){var ge=t.findNearestElement(Q[0],Q[1],!0,!0),Se=t.findNearestElement(Q[2],Q[3],!0,!0);ge&&ge.isNode()?(ge.activate().emit({originalEvent:T,type:"cxttapstart",position:{x:Q[0],y:Q[1]}}),t.touchData.start=ge):Se&&Se.isNode()?(Se.activate().emit({originalEvent:T,type:"cxttapstart",position:{x:Q[0],y:Q[1]}}),t.touchData.start=Se):R.emit({originalEvent:T,type:"cxttapstart",position:{x:Q[0],y:Q[1]}}),t.touchData.start&&(t.touchData.start._private.grabbed=!1),t.touchData.cxt=!0,t.touchData.cxtDragged=!1,t.data.bgActivePosistion=void 0,t.redraw();return}}if(T.touches[2])R.boxSelectionEnabled()&&T.preventDefault();else if(!T.touches[1]){if(T.touches[0]){var ve=t.findNearestElements(Q[0],Q[1],!0,!0),ye=ve[0];if(ye!=null&&(ye.activate(),t.touchData.start=ye,t.touchData.starts=ve,t.nodeIsGrabbable(ye))){var Ge=t.dragData.touchDragEles=R.collection(),$e=null;t.redrawHint("eles",!0),t.redrawHint("drag",!0),ye.selected()?($e=R.$(function(ut){return ut.selected()&&t.nodeIsGrabbable(ut)}),h($e,{addToList:Ge})):g(ye,{addToList:Ge}),d(ye);var nt=function(ht){return{originalEvent:T,type:ht,position:{x:Q[0],y:Q[1]}}};ye.emit(nt("grabon")),$e?$e.forEach(function(ut){ut.emit(nt("grab"))}):ye.emit(nt("grab"))}r(ye,["touchstart","tapstart","vmousedown"],T,{x:Q[0],y:Q[1]}),ye==null&&(t.data.bgActivePosistion={x:U[0],y:U[1]},t.redrawHint("select",!0),t.redraw()),t.touchData.singleTouchMoved=!1,t.touchData.singleTouchStartTime=+new Date,clearTimeout(t.touchData.tapholdTimeout),t.touchData.tapholdTimeout=setTimeout(function(){t.touchData.singleTouchMoved===!1&&!t.pinching&&!t.touchData.selecting&&r(t.touchData.start,["taphold"],T,{x:Q[0],y:Q[1]})},t.tapholdDuration)}}if(T.touches.length>=1){for(var rt=t.touchData.startPosition=[null,null,null,null,null,null],Qe=0;Qe<Q.length;Qe++)rt[Qe]=G[Qe]=Q[Qe];var Pt=T.touches[0];t.touchData.startGPosition=[Pt.clientX,Pt.clientY]}}},!1);var K;t.registerBinding(e,"touchmove",K=function(T){var R=t.touchData.capture;if(!(!R&&!S(T))){var Q=t.selection,G=t.cy,U=t.touchData.now,ie=t.touchData.earlier,Z=G.zoom();if(T.touches[0]){var ae=t.projectIntoViewport(T.touches[0].clientX,T.touches[0].clientY);U[0]=ae[0],U[1]=ae[1]}if(T.touches[1]){var ae=t.projectIntoViewport(T.touches[1].clientX,T.touches[1].clientY);U[2]=ae[0],U[3]=ae[1]}if(T.touches[2]){var ae=t.projectIntoViewport(T.touches[2].clientX,T.touches[2].clientY);U[4]=ae[0],U[5]=ae[1]}var we=t.touchData.startGPosition,Ce;if(R&&T.touches[0]&&we){for(var ge=[],Se=0;Se<U.length;Se++)ge[Se]=U[Se]-ie[Se];var ve=T.touches[0].clientX-we[0],ye=ve*ve,Ge=T.touches[0].clientY-we[1],$e=Ge*Ge,nt=ye+$e;Ce=nt>=t.touchTapThreshold2}if(R&&t.touchData.cxt){T.preventDefault();var rt=T.touches[0].clientX-z,Qe=T.touches[0].clientY-j,Pt=T.touches[1].clientX-z,ut=T.touches[1].clientY-j,ht=Y(rt,Qe,Pt,ut),Wt=ht/V,Ot=150,It=Ot*Ot,tn=1.5,pn=tn*tn;if(Wt>=pn||ht>=It){t.touchData.cxt=!1,t.data.bgActivePosistion=void 0,t.redrawHint("select",!0);var Kt={originalEvent:T,type:"cxttapend",position:{x:U[0],y:U[1]}};t.touchData.start?(t.touchData.start.unactivate().emit(Kt),t.touchData.start=null):G.emit(Kt)}}if(R&&t.touchData.cxt){var Kt={originalEvent:T,type:"cxtdrag",position:{x:U[0],y:U[1]}};t.data.bgActivePosistion=void 0,t.redrawHint("select",!0),t.touchData.start?t.touchData.start.emit(Kt):G.emit(Kt),t.touchData.start&&(t.touchData.start._private.grabbed=!1),t.touchData.cxtDragged=!0;var Je=t.findNearestElement(U[0],U[1],!0,!0);(!t.touchData.cxtOver||Je!==t.touchData.cxtOver)&&(t.touchData.cxtOver&&t.touchData.cxtOver.emit({originalEvent:T,type:"cxtdragout",position:{x:U[0],y:U[1]}}),t.touchData.cxtOver=Je,Je&&Je.emit({originalEvent:T,type:"cxtdragover",position:{x:U[0],y:U[1]}}))}else if(R&&T.touches[2]&&G.boxSelectionEnabled())T.preventDefault(),t.data.bgActivePosistion=void 0,this.lastThreeTouch=+new Date,t.touchData.selecting||G.emit({originalEvent:T,type:"boxstart",position:{x:U[0],y:U[1]}}),t.touchData.selecting=!0,t.touchData.didSelect=!0,Q[4]=1,!Q||Q.length===0||Q[0]===void 0?(Q[0]=(U[0]+U[2]+U[4])/3,Q[1]=(U[1]+U[3]+U[5])/3,Q[2]=(U[0]+U[2]+U[4])/3+1,Q[3]=(U[1]+U[3]+U[5])/3+1):(Q[2]=(U[0]+U[2]+U[4])/3,Q[3]=(U[1]+U[3]+U[5])/3),t.redrawHint("select",!0),t.redraw();else if(R&&T.touches[1]&&!t.touchData.didSelect&&G.zoomingEnabled()&&G.panningEnabled()&&G.userZoomingEnabled()&&G.userPanningEnabled()){T.preventDefault(),t.data.bgActivePosistion=void 0,t.redrawHint("select",!0);var at=t.dragData.touchDragEles;if(at){t.redrawHint("drag",!0);for(var pt=0;pt<at.length;pt++){var mr=at[pt]._private;mr.grabbed=!1,mr.rscratch.inDragLayer=!1}}var q=t.touchData.start,rt=T.touches[0].clientX-z,Qe=T.touches[0].clientY-j,Pt=T.touches[1].clientX-z,ut=T.touches[1].clientY-j,ce=ne(rt,Qe,Pt,ut),Pe=ce/L;if(X){var He=rt-P,Dn=Qe-F,yr=Pt-O,Ha=ut-M,Un=(He+yr)/2,nn=(Dn+Ha)/2,br=G.zoom(),qc=br*Pe,_s=G.pan(),xg=$[0]*br+_s.x,Eg=$[1]*br+_s.y,HP={x:-qc/br*(xg-_s.x-Un)+xg,y:-qc/br*(Eg-_s.y-nn)+Eg};if(q&&q.active()){var at=t.dragData.touchDragEles;y(at),t.redrawHint("drag",!0),t.redrawHint("eles",!0),q.unactivate().emit("freeon"),at.emit("free"),t.dragData.didDrag&&(q.emit("dragfreeon"),at.emit("dragfree"))}G.viewport({zoom:qc,pan:HP,cancelOnFailedZoom:!0}),G.emit("pinchzoom"),L=ce,P=rt,F=Qe,O=Pt,M=ut,t.pinching=!0}if(T.touches[0]){var ae=t.projectIntoViewport(T.touches[0].clientX,T.touches[0].clientY);U[0]=ae[0],U[1]=ae[1]}if(T.touches[1]){var ae=t.projectIntoViewport(T.touches[1].clientX,T.touches[1].clientY);U[2]=ae[0],U[3]=ae[1]}if(T.touches[2]){var ae=t.projectIntoViewport(T.touches[2].clientX,T.touches[2].clientY);U[4]=ae[0],U[5]=ae[1]}}else if(T.touches[0]&&!t.touchData.didSelect){var vn=t.touchData.start,Uc=t.touchData.last,Je;if(!t.hoverData.draggingEles&&!t.swipePanning&&(Je=t.findNearestElement(U[0],U[1],!0,!0)),R&&vn!=null&&T.preventDefault(),R&&vn!=null&&t.nodeIsDraggable(vn))if(Ce){var at=t.dragData.touchDragEles,Sg=!t.dragData.didDrag;Sg&&h(at,{inDragLayer:!0}),t.dragData.didDrag=!0;var ji={x:0,y:0};if(le(ge[0])&&le(ge[1])&&(ji.x+=ge[0],ji.y+=ge[1],Sg)){t.redrawHint("eles",!0);var gn=t.touchData.dragDelta;gn&&le(gn[0])&&le(gn[1])&&(ji.x+=gn[0],ji.y+=gn[1])}t.hoverData.draggingEles=!0,at.silentShift(ji).emit("position drag"),t.redrawHint("drag",!0),t.touchData.startPosition[0]==ie[0]&&t.touchData.startPosition[1]==ie[1]&&t.redrawHint("eles",!0),t.redraw()}else{var gn=t.touchData.dragDelta=t.touchData.dragDelta||[];gn.length===0?(gn.push(ge[0]),gn.push(ge[1])):(gn[0]+=ge[0],gn[1]+=ge[1])}if(r(vn||Je,["touchmove","tapdrag","vmousemove"],T,{x:U[0],y:U[1]}),(!vn||!vn.grabbed())&&Je!=Uc&&(Uc&&Uc.emit({originalEvent:T,type:"tapdragout",position:{x:U[0],y:U[1]}}),Je&&Je.emit({originalEvent:T,type:"tapdragover",position:{x:U[0],y:U[1]}})),t.touchData.last=Je,R)for(var pt=0;pt<U.length;pt++)U[pt]&&t.touchData.startPosition[pt]&&Ce&&(t.touchData.singleTouchMoved=!0);if(R&&(vn==null||vn.pannable())&&G.panningEnabled()&&G.userPanningEnabled()){var KP=i(vn,t.touchData.starts);KP&&(T.preventDefault(),t.data.bgActivePosistion||(t.data.bgActivePosistion=ma(t.touchData.startPosition)),t.swipePanning?(G.panBy({x:ge[0]*Z,y:ge[1]*Z}),G.emit("dragpan")):Ce&&(t.swipePanning=!0,G.panBy({x:ve*Z,y:Ge*Z}),G.emit("dragpan"),vn&&(vn.unactivate(),t.redrawHint("select",!0),t.touchData.start=null)));var ae=t.projectIntoViewport(T.touches[0].clientX,T.touches[0].clientY);U[0]=ae[0],U[1]=ae[1]}}for(var Se=0;Se<U.length;Se++)ie[Se]=U[Se];R&&T.touches.length>0&&!t.hoverData.draggingEles&&!t.swipePanning&&t.data.bgActivePosistion!=null&&(t.data.bgActivePosistion=void 0,t.redrawHint("select",!0),t.redraw())}},!1);var W;t.registerBinding(e,"touchcancel",W=function(T){var R=t.touchData.start;t.touchData.capture=!1,R&&R.unactivate()});var oe,he,re,se;if(t.registerBinding(e,"touchend",oe=function(T){var R=t.touchData.start,Q=t.touchData.capture;if(Q)T.touches.length===0&&(t.touchData.capture=!1),T.preventDefault();else return;var G=t.selection;t.swipePanning=!1,t.hoverData.draggingEles=!1;var U=t.cy,ie=U.zoom(),Z=t.touchData.now,ae=t.touchData.earlier;if(T.touches[0]){var we=t.projectIntoViewport(T.touches[0].clientX,T.touches[0].clientY);Z[0]=we[0],Z[1]=we[1]}if(T.touches[1]){var we=t.projectIntoViewport(T.touches[1].clientX,T.touches[1].clientY);Z[2]=we[0],Z[3]=we[1]}if(T.touches[2]){var we=t.projectIntoViewport(T.touches[2].clientX,T.touches[2].clientY);Z[4]=we[0],Z[5]=we[1]}R&&R.unactivate();var Ce;if(t.touchData.cxt){if(Ce={originalEvent:T,type:"cxttapend",position:{x:Z[0],y:Z[1]}},R?R.emit(Ce):U.emit(Ce),!t.touchData.cxtDragged){var ge={originalEvent:T,type:"cxttap",position:{x:Z[0],y:Z[1]}};R?R.emit(ge):U.emit(ge)}t.touchData.start&&(t.touchData.start._private.grabbed=!1),t.touchData.cxt=!1,t.touchData.start=null,t.redraw();return}if(!T.touches[2]&&U.boxSelectionEnabled()&&t.touchData.selecting){t.touchData.selecting=!1;var Se=U.collection(t.getAllInBox(G[0],G[1],G[2],G[3]));G[0]=void 0,G[1]=void 0,G[2]=void 0,G[3]=void 0,G[4]=0,t.redrawHint("select",!0),U.emit({type:"boxend",originalEvent:T,position:{x:Z[0],y:Z[1]}});var ve=function(It){return It.selectable()&&!It.selected()};Se.emit("box").stdFilter(ve).select().emit("boxselect"),Se.nonempty()&&t.redrawHint("eles",!0),t.redraw()}if(R!=null&&R.unactivate(),T.touches[2])t.data.bgActivePosistion=void 0,t.redrawHint("select",!0);else if(!T.touches[1]){if(!T.touches[0]){if(!T.touches[0]){t.data.bgActivePosistion=void 0,t.redrawHint("select",!0);var ye=t.dragData.touchDragEles;if(R!=null){var Ge=R._private.grabbed;y(ye),t.redrawHint("drag",!0),t.redrawHint("eles",!0),Ge&&(R.emit("freeon"),ye.emit("free"),t.dragData.didDrag&&(R.emit("dragfreeon"),ye.emit("dragfree"))),r(R,["touchend","tapend","vmouseup","tapdragout"],T,{x:Z[0],y:Z[1]}),R.unactivate(),t.touchData.start=null}else{var $e=t.findNearestElement(Z[0],Z[1],!0,!0);r($e,["touchend","tapend","vmouseup","tapdragout"],T,{x:Z[0],y:Z[1]})}var nt=t.touchData.startPosition[0]-Z[0],rt=nt*nt,Qe=t.touchData.startPosition[1]-Z[1],Pt=Qe*Qe,ut=rt+Pt,ht=ut*ie*ie;t.touchData.singleTouchMoved||(R||U.$(":selected").unselect(["tapunselect"]),r(R,["tap","vclick"],T,{x:Z[0],y:Z[1]}),he=!1,T.timeStamp-se<=U.multiClickDebounceTime()?(re&&clearTimeout(re),he=!0,se=null,r(R,["dbltap","vdblclick"],T,{x:Z[0],y:Z[1]})):(re=setTimeout(function(){he||r(R,["onetap","voneclick"],T,{x:Z[0],y:Z[1]})},U.multiClickDebounceTime()),se=T.timeStamp)),R!=null&&!t.dragData.didDrag&&R._private.selectable&&ht<t.touchTapThreshold2&&!t.pinching&&(U.selectionType()==="single"?(U.$(n).unmerge(R).unselect(["tapunselect"]),R.select(["tapselect"])):R.selected()?R.unselect(["tapunselect"]):R.select(["tapselect"]),t.redrawHint("eles",!0)),t.touchData.singleTouchMoved=!0}}}for(var Wt=0;Wt<Z.length;Wt++)ae[Wt]=Z[Wt];t.dragData.didDrag=!1,T.touches.length===0&&(t.touchData.dragDelta=[],t.touchData.startPosition=[null,null,null,null,null,null],t.touchData.startGPosition=null,t.touchData.didSelect=!1),T.touches.length<2&&(T.touches.length===1&&(t.touchData.startGPosition=[T.touches[0].clientX,T.touches[0].clientY]),t.pinching=!1,t.redrawHint("eles",!0),t.redraw())},!1),typeof TouchEvent>"u"){var ue=[],pe=function(T){return{clientX:T.clientX,clientY:T.clientY,force:1,identifier:T.pointerId,pageX:T.pageX,pageY:T.pageY,radiusX:T.width/2,radiusY:T.height/2,screenX:T.screenX,screenY:T.screenY,target:T.target}},de=function(T){return{event:T,touch:pe(T)}},me=function(T){ue.push(de(T))},Ne=function(T){for(var R=0;R<ue.length;R++){var Q=ue[R];if(Q.event.pointerId===T.pointerId){ue.splice(R,1);return}}},De=function(T){var R=ue.filter(function(Q){return Q.event.pointerId===T.pointerId})[0];R.event=T,R.touch=pe(T)},Ee=function(T){T.touches=ue.map(function(R){return R.touch})},_e=function(T){return T.pointerType==="mouse"||T.pointerType===4};t.registerBinding(t.container,"pointerdown",function(te){_e(te)||(te.preventDefault(),me(te),Ee(te),A(te))}),t.registerBinding(t.container,"pointerup",function(te){_e(te)||(Ne(te),Ee(te),oe(te))}),t.registerBinding(t.container,"pointercancel",function(te){_e(te)||(Ne(te),Ee(te),W(te))}),t.registerBinding(t.container,"pointermove",function(te){_e(te)||(te.preventDefault(),De(te),Ee(te),K(te))})}};var Kn={};Kn.generatePolygon=function(t,e){return this.nodeShapes[t]={renderer:this,name:t,points:e,draw:function(r,a,i,s,l,c){this.renderer.nodeShapeImpl("polygon",r,a,i,s,l,this.points)},intersectLine:function(r,a,i,s,l,c,u,d){return Di(l,c,this.points,r,a,i/2,s/2,u)},checkPoint:function(r,a,i,s,l,c,u,d){return $n(r,a,this.points,c,u,s,l,[0,-1],i)}}},Kn.generateEllipse=function(){return this.nodeShapes.ellipse={renderer:this,name:"ellipse",draw:function(e,n,r,a,i,s){this.renderer.nodeShapeImpl(this.name,e,n,r,a,i)},intersectLine:function(e,n,r,a,i,s,l,c){return qT(i,s,e,n,r/2+l,a/2+l)},checkPoint:function(e,n,r,a,i,s,l,c){return Vr(e,n,a,i,s,l,r)}}},Kn.generateRoundPolygon=function(t,e){return this.nodeShapes[t]={renderer:this,name:t,points:e,getOrCreateCorners:function(r,a,i,s,l,c,u){if(c[u]!==void 0&&c[u+"-cx"]===r&&c[u+"-cy"]===a)return c[u];c[u]=new Array(e.length/2),c[u+"-cx"]=r,c[u+"-cy"]=a;var d=i/2,f=s/2;l=l==="auto"?Ch(i,s):l;for(var p=new Array(e.length/2),v=0;v<e.length/2;v++)p[v]={x:r+d*e[v*2],y:a+f*e[v*2+1]};var h,g,y,m,b=p.length;for(g=p[b-1],h=0;h<b;h++)y=p[h%b],m=p[(h+1)%b],c[u][h]=Nc(g,y,m,l),g=y,y=m;return c[u]},draw:function(r,a,i,s,l,c,u){this.renderer.nodeShapeImpl("round-polygon",r,a,i,s,l,this.points,this.getOrCreateCorners(a,i,s,l,c,u,"drawCorners"))},intersectLine:function(r,a,i,s,l,c,u,d,f){return UT(l,c,this.points,r,a,i,s,u,this.getOrCreateCorners(r,a,i,s,d,f,"corners"))},checkPoint:function(r,a,i,s,l,c,u,d,f){return KT(r,a,this.points,c,u,s,l,this.getOrCreateCorners(c,u,s,l,d,f,"corners"))}}},Kn.generateRoundRectangle=function(){return this.nodeShapes["round-rectangle"]=this.nodeShapes.roundrectangle={renderer:this,name:"round-rectangle",points:Mt(4,0),draw:function(e,n,r,a,i,s){this.renderer.nodeShapeImpl(this.name,e,n,r,a,i,this.points,s)},intersectLine:function(e,n,r,a,i,s,l,c){return bh(i,s,e,n,r,a,l,c)},checkPoint:function(e,n,r,a,i,s,l,c){var u=a/2,d=i/2;c=c==="auto"?Rr(a,i):c,c=Math.min(u,d,c);var f=c*2;return!!($n(e,n,this.points,s,l,a,i-f,[0,-1],r)||$n(e,n,this.points,s,l,a-f,i,[0,-1],r)||Vr(e,n,f,f,s-u+c,l-d+c,r)||Vr(e,n,f,f,s+u-c,l-d+c,r)||Vr(e,n,f,f,s+u-c,l+d-c,r)||Vr(e,n,f,f,s-u+c,l+d-c,r))}}},Kn.generateCutRectangle=function(){return this.nodeShapes["cut-rectangle"]=this.nodeShapes.cutrectangle={renderer:this,name:"cut-rectangle",cornerLength:Jl(),points:Mt(4,0),draw:function(e,n,r,a,i,s){this.renderer.nodeShapeImpl(this.name,e,n,r,a,i,null,s)},generateCutTrianglePts:function(e,n,r,a,i){var s=i==="auto"?this.cornerLength:i,l=n/2,c=e/2,u=r-c,d=r+c,f=a-l,p=a+l;return{topLeft:[u,f+s,u+s,f,u+s,f+s],topRight:[d-s,f,d,f+s,d-s,f+s],bottomRight:[d,p-s,d-s,p,d-s,p-s],bottomLeft:[u+s,p,u,p-s,u+s,p-s]}},intersectLine:function(e,n,r,a,i,s,l,c){var u=this.generateCutTrianglePts(r+2*l,a+2*l,e,n,c),d=[].concat.apply([],[u.topLeft.splice(0,4),u.topRight.splice(0,4),u.bottomRight.splice(0,4),u.bottomLeft.splice(0,4)]);return Di(i,s,d,e,n)},checkPoint:function(e,n,r,a,i,s,l,c){var u=c==="auto"?this.cornerLength:c;if($n(e,n,this.points,s,l,a,i-2*u,[0,-1],r)||$n(e,n,this.points,s,l,a-2*u,i,[0,-1],r))return!0;var d=this.generateCutTrianglePts(a,i,s,l);return Ht(e,n,d.topLeft)||Ht(e,n,d.topRight)||Ht(e,n,d.bottomRight)||Ht(e,n,d.bottomLeft)}}},Kn.generateBarrel=function(){return this.nodeShapes.barrel={renderer:this,name:"barrel",points:Mt(4,0),draw:function(e,n,r,a,i,s){this.renderer.nodeShapeImpl(this.name,e,n,r,a,i)},intersectLine:function(e,n,r,a,i,s,l,c){var u=.15,d=.5,f=.85,p=this.generateBarrelBezierPts(r+2*l,a+2*l,e,n),v=function(y){var m=ya({x:y[0],y:y[1]},{x:y[2],y:y[3]},{x:y[4],y:y[5]},u),b=ya({x:y[0],y:y[1]},{x:y[2],y:y[3]},{x:y[4],y:y[5]},d),w=ya({x:y[0],y:y[1]},{x:y[2],y:y[3]},{x:y[4],y:y[5]},f);return[y[0],y[1],m.x,m.y,b.x,b.y,w.x,w.y,y[4],y[5]]},h=[].concat(v(p.topLeft),v(p.topRight),v(p.bottomRight),v(p.bottomLeft));return Di(i,s,h,e,n)},generateBarrelBezierPts:function(e,n,r,a){var i=n/2,s=e/2,l=r-s,c=r+s,u=a-i,d=a+i,f=ec(e,n),p=f.heightOffset,v=f.widthOffset,h=f.ctrlPtOffsetPct*e,g={topLeft:[l,u+p,l+h,u,l+v,u],topRight:[c-v,u,c-h,u,c,u+p],bottomRight:[c,d-p,c-h,d,c-v,d],bottomLeft:[l+v,d,l+h,d,l,d-p]};return g.topLeft.isTop=!0,g.topRight.isTop=!0,g.bottomLeft.isBottom=!0,g.bottomRight.isBottom=!0,g},checkPoint:function(e,n,r,a,i,s,l,c){var u=ec(a,i),d=u.heightOffset,f=u.widthOffset;if($n(e,n,this.points,s,l,a,i-2*d,[0,-1],r)||$n(e,n,this.points,s,l,a-2*f,i,[0,-1],r))return!0;for(var p=this.generateBarrelBezierPts(a,i,s,l),v=function(B,S,N){var D=N[4],_=N[2],I=N[0],P=N[5],F=N[1],O=Math.min(D,I),M=Math.max(D,I),L=Math.min(P,F),V=Math.max(P,F);if(O<=B&&B<=M&&L<=S&&S<=V){var H=GT(D,_,I),$=RT(H[0],H[1],H[2],B),z=$.filter(function(j){return 0<=j&&j<=1});if(z.length>0)return z[0]}return null},h=Object.keys(p),g=0;g<h.length;g++){var y=h[g],m=p[y],b=v(e,n,m);if(b!=null){var w=m[5],C=m[3],k=m[1],E=ft(w,C,k,b);if(m.isTop&&E<=n||m.isBottom&&n<=E)return!0}}return!1}}},Kn.generateBottomRoundrectangle=function(){return this.nodeShapes["bottom-round-rectangle"]=this.nodeShapes.bottomroundrectangle={renderer:this,name:"bottom-round-rectangle",points:Mt(4,0),draw:function(e,n,r,a,i,s){this.renderer.nodeShapeImpl(this.name,e,n,r,a,i,this.points,s)},intersectLine:function(e,n,r,a,i,s,l,c){var u=e-(r/2+l),d=n-(a/2+l),f=d,p=e+(r/2+l),v=lr(i,s,e,n,u,d,p,f,!1);return v.length>0?v:bh(i,s,e,n,r,a,l,c)},checkPoint:function(e,n,r,a,i,s,l,c){c=c==="auto"?Rr(a,i):c;var u=2*c;if($n(e,n,this.points,s,l,a,i-u,[0,-1],r)||$n(e,n,this.points,s,l,a-u,i,[0,-1],r))return!0;var d=a/2+2*r,f=i/2+2*r,p=[s-d,l-f,s-d,l,s+d,l,s+d,l-f];return!!(Ht(e,n,p)||Vr(e,n,u,u,s+a/2-c,l+i/2-c,r)||Vr(e,n,u,u,s-a/2+c,l+i/2-c,r))}}},Kn.registerNodeShapes=function(){var t=this.nodeShapes={},e=this;this.generateEllipse(),this.generatePolygon("triangle",Mt(3,0)),this.generateRoundPolygon("round-triangle",Mt(3,0)),this.generatePolygon("rectangle",Mt(4,0)),t.square=t.rectangle,this.generateRoundRectangle(),this.generateCutRectangle(),this.generateBarrel(),this.generateBottomRoundrectangle();{var n=[0,1,1,0,0,-1,-1,0];this.generatePolygon("diamond",n),this.generateRoundPolygon("round-diamond",n)}this.generatePolygon("pentagon",Mt(5,0)),this.generateRoundPolygon("round-pentagon",Mt(5,0)),this.generatePolygon("hexagon",Mt(6,0)),this.generateRoundPolygon("round-hexagon",Mt(6,0)),this.generatePolygon("heptagon",Mt(7,0)),this.generateRoundPolygon("round-heptagon",Mt(7,0)),this.generatePolygon("octagon",Mt(8,0)),this.generateRoundPolygon("round-octagon",Mt(8,0));var r=new Array(20);{var a=Ql(5,0),i=Ql(5,Math.PI/5),s=.5*(3-Math.sqrt(5));s*=1.57;for(var l=0;l<i.length/2;l++)i[l*2]*=s,i[l*2+1]*=s;for(var l=0;l<20/4;l++)r[l*4]=a[l*2],r[l*4+1]=a[l*2+1],r[l*4+2]=i[l*2],r[l*4+3]=i[l*2+1]}r=wh(r),this.generatePolygon("star",r),this.generatePolygon("vee",[-1,-1,0,-.333,1,-1,0,1]),this.generatePolygon("rhomboid",[-1,-1,.333,-1,1,1,-.333,1]),this.generatePolygon("right-rhomboid",[-.333,-1,1,-1,.333,1,-1,1]),this.nodeShapes.concavehexagon=this.generatePolygon("concave-hexagon",[-1,-.95,-.75,0,-1,.95,1,.95,.75,0,1,-.95]);{var c=[-1,-1,.25,-1,1,0,.25,1,-1,1];this.generatePolygon("tag",c),this.generateRoundPolygon("round-tag",c)}t.makePolygon=function(u){var d=u.join("$"),f="polygon-"+d,p;return(p=this[f])?p:e.generatePolygon(f,u)}};var qi={};qi.timeToRender=function(){return this.redrawTotalTime/this.redrawCount},qi.redraw=function(t){t=t||fh();var e=this;e.averageRedrawTime===void 0&&(e.averageRedrawTime=0),e.lastRedrawTime===void 0&&(e.lastRedrawTime=0),e.lastDrawTime===void 0&&(e.lastDrawTime=0),e.requestedFrame=!0,e.renderOptions=t},qi.beforeRender=function(t,e){if(!this.destroyed){e==null&&Ze("Priority is not optional for beforeRender");var n=this.beforeRenderCallbacks;n.push({fn:t,priority:e}),n.sort(function(r,a){return a.priority-r.priority})}};var hv=function(e,n,r){for(var a=e.beforeRenderCallbacks,i=0;i<a.length;i++)a[i].fn(n,r)};qi.startRenderLoop=function(){var t=this,e=t.cy;if(!t.renderLoopStarted){t.renderLoopStarted=!0;var n=function r(a){if(!t.destroyed){if(!e.batching())if(t.requestedFrame&&!t.skipFrame){hv(t,!0,a);var i=Rn();t.render(t.renderOptions);var s=t.lastDrawTime=Rn();t.averageRedrawTime===void 0&&(t.averageRedrawTime=s-i),t.redrawCount===void 0&&(t.redrawCount=0),t.redrawCount++,t.redrawTotalTime===void 0&&(t.redrawTotalTime=0);var l=s-i;t.redrawTotalTime+=l,t.lastRedrawTime=l,t.averageRedrawTime=t.averageRedrawTime/2+l/2,t.requestedFrame=!1}else hv(t,!1,a);t.skipFrame=!1,Ao(r)}};Ao(n)}};var BD=function(e){this.init(e)},pv=BD,Aa=pv.prototype;Aa.clientFunctions=["redrawHint","render","renderTo","matchCanvasSize","nodeShapeImpl","arrowShapeImpl"],Aa.init=function(t){var e=this;e.options=t,e.cy=t.cy;var n=e.container=t.cy.container(),r=e.cy.window();if(r){var a=r.document,i=a.head,s="__________cytoscape_stylesheet",l="__________cytoscape_container",c=a.getElementById(s)!=null;if(n.className.indexOf(l)<0&&(n.className=(n.className||"")+" "+l),!c){var u=a.createElement("style");u.id=s,u.textContent="."+l+" { position: relative; }",i.insertBefore(u,i.children[0])}var d=r.getComputedStyle(n),f=d.getPropertyValue("position");f==="static"&&Ae("A Cytoscape container has style position:static and so can not use UI extensions properly")}e.selection=[void 0,void 0,void 0,void 0,0],e.bezierProjPcts=[.05,.225,.4,.5,.6,.775,.95],e.hoverData={down:null,last:null,downTime:null,triggerMode:null,dragging:!1,initialPan:[null,null],capture:!1},e.dragData={possibleDragElements:[]},e.touchData={start:null,capture:!1,startPosition:[null,null,null,null,null,null],singleTouchStartTime:null,singleTouchMoved:!0,now:[null,null,null,null,null,null],earlier:[null,null,null,null,null,null]},e.redraws=0,e.showFps=t.showFps,e.debug=t.debug,e.hideEdgesOnViewport=t.hideEdgesOnViewport,e.textureOnViewport=t.textureOnViewport,e.wheelSensitivity=t.wheelSensitivity,e.motionBlurEnabled=t.motionBlur,e.forcedPixelRatio=le(t.pixelRatio)?t.pixelRatio:null,e.motionBlur=t.motionBlur,e.motionBlurOpacity=t.motionBlurOpacity,e.motionBlurTransparency=1-e.motionBlurOpacity,e.motionBlurPxRatio=1,e.mbPxRBlurry=1,e.minMbLowQualFrames=4,e.fullQualityMb=!1,e.clearedForMotionBlur=[],e.desktopTapThreshold=t.desktopTapThreshold,e.desktopTapThreshold2=t.desktopTapThreshold*t.desktopTapThreshold,e.touchTapThreshold=t.touchTapThreshold,e.touchTapThreshold2=t.touchTapThreshold*t.touchTapThreshold,e.tapholdDuration=500,e.bindings=[],e.beforeRenderCallbacks=[],e.beforeRenderPriorities={animations:400,eleCalcs:300,eleTxrDeq:200,lyrTxrDeq:150,lyrTxrSkip:100},e.registerNodeShapes(),e.registerArrowShapes(),e.registerCalculationListeners()},Aa.notify=function(t,e){var n=this,r=n.cy;if(!this.destroyed){if(t==="init"){n.load();return}if(t==="destroy"){n.destroy();return}(t==="add"||t==="remove"||t==="move"&&r.hasCompoundNodes()||t==="load"||t==="zorder"||t==="mount")&&n.invalidateCachedZSortedEles(),t==="viewport"&&n.redrawHint("select",!0),(t==="load"||t==="resize"||t==="mount")&&(n.invalidateContainerClientCoordsCache(),n.matchCanvasSize(n.container)),n.redrawHint("eles",!0),n.redrawHint("drag",!0),this.startRenderLoop(),this.redraw()}},Aa.destroy=function(){var t=this;t.destroyed=!0,t.cy.stopAnimationLoop();for(var e=0;e<t.bindings.length;e++){var n=t.bindings[e],r=n,a=r.target;(a.off||a.removeEventListener).apply(a,r.args)}if(t.bindings=[],t.beforeRenderCallbacks=[],t.onUpdateEleCalcsFns=[],t.removeObserver&&t.removeObserver.disconnect(),t.styleObserver&&t.styleObserver.disconnect(),t.resizeObserver&&t.resizeObserver.disconnect(),t.labelCalcDiv)try{document.body.removeChild(t.labelCalcDiv)}catch{}},Aa.isHeadless=function(){return!1},[xc,dv,fv,Fa,Kn,qi].forEach(function(t){xe(Aa,t)});var _c=1e3/60,vv={setupDequeueing:function(e){return function(){var r=this,a=this.renderer;if(!r.dequeueingSetup){r.dequeueingSetup=!0;var i=Fo(function(){a.redrawHint("eles",!0),a.redrawHint("drag",!0),a.redraw()},e.deqRedrawThreshold),s=function(u,d){var f=Rn(),p=a.averageRedrawTime,v=a.lastRedrawTime,h=[],g=a.cy.extent(),y=a.getPixelRatio();for(u||a.flushRenderedStyleQueue();;){var m=Rn(),b=m-f,w=m-d;if(v<_c){var C=_c-(u?p:0);if(w>=e.deqFastCost*C)break}else if(u){if(b>=e.deqCost*v||b>=e.deqAvgCost*p)break}else if(w>=e.deqNoDrawCost*_c)break;var k=e.deq(r,y,g);if(k.length>0)for(var E=0;E<k.length;E++)h.push(k[E]);else break}h.length>0&&(e.onDeqd(r,h),!u&&e.shouldRedraw(r,h,y,g)&&i())},l=e.priority||Gl;a.beforeRender(s,l(r))}}}},ND=function(){function t(e){var n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:Ro;Rl(this,t),this.idsByKey=new xn,this.keyForId=new xn,this.cachesByLvl=new xn,this.lvls=[],this.getKey=e,this.doesEleInvalidateKey=n}return $l(t,[{key:"getIdsFor",value:function(n){n==null&&Ze("Can not get id list for null key");var r=this.idsByKey,a=this.idsByKey.get(n);return a||(a=new ga,r.set(n,a)),a}},{key:"addIdForKey",value:function(n,r){n!=null&&this.getIdsFor(n).add(r)}},{key:"deleteIdForKey",value:function(n,r){n!=null&&this.getIdsFor(n).delete(r)}},{key:"getNumberOfIdsForKey",value:function(n){return n==null?0:this.getIdsFor(n).size}},{key:"updateKeyMappingFor",value:function(n){var r=n.id(),a=this.keyForId.get(r),i=this.getKey(n);this.deleteIdForKey(a,r),this.addIdForKey(i,r),this.keyForId.set(r,i)}},{key:"deleteKeyMappingFor",value:function(n){var r=n.id(),a=this.keyForId.get(r);this.deleteIdForKey(a,r),this.keyForId.delete(r)}},{key:"keyHasChangedFor",value:function(n){var r=n.id(),a=this.keyForId.get(r),i=this.getKey(n);return a!==i}},{key:"isInvalid",value:function(n){return this.keyHasChangedFor(n)||this.doesEleInvalidateKey(n)}},{key:"getCachesAt",value:function(n){var r=this.cachesByLvl,a=this.lvls,i=r.get(n);return i||(i=new xn,r.set(n,i),a.push(n)),i}},{key:"getCache",value:function(n,r){return this.getCachesAt(r).get(n)}},{key:"get",value:function(n,r){var a=this.getKey(n),i=this.getCache(a,r);return i!=null&&this.updateKeyMappingFor(n),i}},{key:"getForCachedKey",value:function(n,r){var a=this.keyForId.get(n.id()),i=this.getCache(a,r);return i}},{key:"hasCache",value:function(n,r){return this.getCachesAt(r).has(n)}},{key:"has",value:function(n,r){var a=this.getKey(n);return this.hasCache(a,r)}},{key:"setCache",value:function(n,r,a){a.key=n,this.getCachesAt(r).set(n,a)}},{key:"set",value:function(n,r,a){var i=this.getKey(n);this.setCache(i,r,a),this.updateKeyMappingFor(n)}},{key:"deleteCache",value:function(n,r){this.getCachesAt(r).delete(n)}},{key:"delete",value:function(n,r){var a=this.getKey(n);this.deleteCache(a,r)}},{key:"invalidateKey",value:function(n){var r=this;this.lvls.forEach(function(a){return r.deleteCache(n,a)})}},{key:"invalidate",value:function(n){var r=n.id(),a=this.keyForId.get(r);this.deleteKeyMappingFor(n);var i=this.doesEleInvalidateKey(n);return i&&this.invalidateKey(a),i||this.getNumberOfIdsForKey(a)===0}}]),t}(),gv=25,Ts=50,Bs=-4,Pc=3,DD=7.99,_D=8,PD=1024,OD=1024,ID=1024,LD=.2,MD=.8,FD=10,AD=.15,VD=.1,RD=.9,$D=.9,zD=100,HD=1,Va={dequeue:"dequeue",downscale:"downscale",highQuality:"highQuality"},KD=wt({getKey:null,doesEleInvalidateKey:Ro,drawElement:null,getBoundingBox:null,getRotationPoint:null,getRotationOffset:null,isVisible:lh,allowEdgeTxrCaching:!0,allowParentTxrCaching:!0}),Ui=function(e,n){var r=this;r.renderer=e,r.onDequeues=[];var a=KD(n);xe(r,a),r.lookup=new ND(a.getKey,a.doesEleInvalidateKey),r.setupDequeueing()},ct=Ui.prototype;ct.reasons=Va,ct.getTextureQueue=function(t){var e=this;return e.eleImgCaches=e.eleImgCaches||{},e.eleImgCaches[t]=e.eleImgCaches[t]||[]},ct.getRetiredTextureQueue=function(t){var e=this,n=e.eleImgCaches.retired=e.eleImgCaches.retired||{},r=n[t]=n[t]||[];return r},ct.getElementQueue=function(){var t=this,e=t.eleCacheQueue=t.eleCacheQueue||new Ti(function(n,r){return r.reqs-n.reqs});return e},ct.getElementKeyToQueue=function(){var t=this,e=t.eleKeyToCacheQueue=t.eleKeyToCacheQueue||{};return e},ct.getElement=function(t,e,n,r,a){var i=this,s=this.renderer,l=s.cy.zoom(),c=this.lookup;if(!e||e.w===0||e.h===0||isNaN(e.w)||isNaN(e.h)||!t.visible()||t.removed()||!i.allowEdgeTxrCaching&&t.isEdge()||!i.allowParentTxrCaching&&t.isParent())return null;if(r==null&&(r=Math.ceil(Yl(l*n))),r<Bs)r=Bs;else if(l>=DD||r>Pc)return null;var u=Math.pow(2,r),d=e.h*u,f=e.w*u,p=s.eleTextBiggerThanMin(t,u);if(!this.isVisible(t,p))return null;var v=c.get(t,r);if(v&&v.invalidated&&(v.invalidated=!1,v.texture.invalidatedWidth-=v.width),v)return v;var h;if(d<=gv?h=gv:d<=Ts?h=Ts:h=Math.ceil(d/Ts)*Ts,d>ID||f>OD)return null;var g=i.getTextureQueue(h),y=g[g.length-2],m=function(){return i.recycleTexture(h,f)||i.addTexture(h,f)};y||(y=g[g.length-1]),y||(y=m()),y.width-y.usedWidth<f&&(y=m());for(var b=function(O){return O&&O.scaledLabelShown===p},w=a&&a===Va.dequeue,C=a&&a===Va.highQuality,k=a&&a===Va.downscale,E,x=r+1;x<=Pc;x++){var B=c.get(t,x);if(B){E=B;break}}var S=E&&E.level===r+1?E:null,N=function(){y.context.drawImage(S.texture.canvas,S.x,0,S.width,S.height,y.usedWidth,0,f,d)};if(y.context.setTransform(1,0,0,1,0,0),y.context.clearRect(y.usedWidth,0,f,h),b(S))N();else if(b(E))if(C){for(var D=E.level;D>r;D--)S=i.getElement(t,e,n,D,Va.downscale);N()}else return i.queueElement(t,E.level-1),E;else{var _;if(!w&&!C&&!k)for(var I=r-1;I>=Bs;I--){var P=c.get(t,I);if(P){_=P;break}}if(b(_))return i.queueElement(t,r),_;y.context.translate(y.usedWidth,0),y.context.scale(u,u),this.drawElement(y.context,t,e,p,!1),y.context.scale(1/u,1/u),y.context.translate(-y.usedWidth,0)}return v={x:y.usedWidth,texture:y,level:r,scale:u,width:f,height:d,scaledLabelShown:p},y.usedWidth+=Math.ceil(f+_D),y.eleCaches.push(v),c.set(t,r,v),i.checkTextureFullness(y),v},ct.invalidateElements=function(t){for(var e=0;e<t.length;e++)this.invalidateElement(t[e])},ct.invalidateElement=function(t){var e=this,n=e.lookup,r=[],a=n.isInvalid(t);if(a){for(var i=Bs;i<=Pc;i++){var s=n.getForCachedKey(t,i);s&&r.push(s)}var l=n.invalidate(t);if(l)for(var c=0;c<r.length;c++){var u=r[c],d=u.texture;d.invalidatedWidth+=u.width,u.invalidated=!0,e.checkTextureUtility(d)}e.removeFromQueue(t)}},ct.checkTextureUtility=function(t){t.invalidatedWidth>=LD*t.width&&this.retireTexture(t)},ct.checkTextureFullness=function(t){var e=this,n=e.getTextureQueue(t.height);t.usedWidth/t.width>MD&&t.fullnessChecks>=FD?or(n,t):t.fullnessChecks++},ct.retireTexture=function(t){var e=this,n=t.height,r=e.getTextureQueue(n),a=this.lookup;or(r,t),t.retired=!0;for(var i=t.eleCaches,s=0;s<i.length;s++){var l=i[s];a.deleteCache(l.key,l.level)}Wl(i);var c=e.getRetiredTextureQueue(n);c.push(t)},ct.addTexture=function(t,e){var n=this,r=n.getTextureQueue(t),a={};return r.push(a),a.eleCaches=[],a.height=t,a.width=Math.max(PD,e),a.usedWidth=0,a.invalidatedWidth=0,a.fullnessChecks=0,a.canvas=n.renderer.makeOffscreenCanvas(a.width,a.height),a.context=a.canvas.getContext("2d"),a},ct.recycleTexture=function(t,e){for(var n=this,r=n.getTextureQueue(t),a=n.getRetiredTextureQueue(t),i=0;i<a.length;i++){var s=a[i];if(s.width>=e)return s.retired=!1,s.usedWidth=0,s.invalidatedWidth=0,s.fullnessChecks=0,Wl(s.eleCaches),s.context.setTransform(1,0,0,1,0,0),s.context.clearRect(0,0,s.width,s.height),or(a,s),r.push(s),s}},ct.queueElement=function(t,e){var n=this,r=n.getElementQueue(),a=n.getElementKeyToQueue(),i=this.getKey(t),s=a[i];if(s)s.level=Math.max(s.level,e),s.eles.merge(t),s.reqs++,r.updateItem(s);else{var l={eles:t.spawn().merge(t),level:e,reqs:1,key:i};r.push(l),a[i]=l}},ct.dequeue=function(t){for(var e=this,n=e.getElementQueue(),r=e.getElementKeyToQueue(),a=[],i=e.lookup,s=0;s<HD&&n.size()>0;s++){var l=n.pop(),c=l.key,u=l.eles[0],d=i.hasCache(u,l.level);if(r[c]=null,d)continue;a.push(l);var f=e.getBoundingBox(u);e.getElement(u,f,t,l.level,Va.dequeue)}return a},ct.removeFromQueue=function(t){var e=this,n=e.getElementQueue(),r=e.getElementKeyToQueue(),a=this.getKey(t),i=r[a];i!=null&&(i.eles.length===1?(i.reqs=Ul,n.updateItem(i),n.pop(),r[a]=null):i.eles.unmerge(t))},ct.onDequeue=function(t){this.onDequeues.push(t)},ct.offDequeue=function(t){or(this.onDequeues,t)},ct.setupDequeueing=vv.setupDequeueing({deqRedrawThreshold:zD,deqCost:AD,deqAvgCost:VD,deqNoDrawCost:RD,deqFastCost:$D,deq:function(e,n,r){return e.dequeue(n,r)},onDeqd:function(e,n){for(var r=0;r<e.onDequeues.length;r++){var a=e.onDequeues[r];a(n)}},shouldRedraw:function(e,n,r,a){for(var i=0;i<n.length;i++)for(var s=n[i].eles,l=0;l<s.length;l++){var c=s[l].boundingBox();if(Zl(c,a))return!0}return!1},priority:function(e){return e.renderer.beforeRenderPriorities.eleTxrDeq}});var qD=1,Gi=-4,Ns=2,UD=3.99,GD=50,WD=50,jD=.15,YD=.1,ZD=.9,XD=.9,QD=1,mv=250,JD=4e3*4e3,e3=!0,yv=function(e){var n=this,r=n.renderer=e,a=r.cy;n.layersByLevel={},n.firstGet=!0,n.lastInvalidationTime=Rn()-2*mv,n.skipping=!1,n.eleTxrDeqs=a.collection(),n.scheduleElementRefinement=Fo(function(){n.refineElementTextures(n.eleTxrDeqs),n.eleTxrDeqs.unmerge(n.eleTxrDeqs)},WD),r.beforeRender(function(s,l){l-n.lastInvalidationTime<=mv?n.skipping=!0:n.skipping=!1},r.beforeRenderPriorities.lyrTxrSkip);var i=function(l,c){return c.reqs-l.reqs};n.layersQueue=new Ti(i),n.setupDequeueing()},Et=yv.prototype,bv=0,t3=Math.pow(2,53)-1;Et.makeLayer=function(t,e){var n=Math.pow(2,e),r=Math.ceil(t.w*n),a=Math.ceil(t.h*n),i=this.renderer.makeOffscreenCanvas(r,a),s={id:bv=++bv%t3,bb:t,level:e,width:r,height:a,canvas:i,context:i.getContext("2d"),eles:[],elesQueue:[],reqs:0},l=s.context,c=-s.bb.x1,u=-s.bb.y1;return l.scale(n,n),l.translate(c,u),s},Et.getLayers=function(t,e,n){var r=this,a=r.renderer,i=a.cy,s=i.zoom(),l=r.firstGet;if(r.firstGet=!1,n==null){if(n=Math.ceil(Yl(s*e)),n<Gi)n=Gi;else if(s>=UD||n>Ns)return null}r.validateLayersElesOrdering(n,t);var c=r.layersByLevel,u=Math.pow(2,n),d=c[n]=c[n]||[],f,p=r.levelIsComplete(n,t),v,h=function(){var N=function(F){if(r.validateLayersElesOrdering(F,t),r.levelIsComplete(F,t))return v=c[F],!0},D=function(F){if(!v)for(var O=n+F;Gi<=O&&O<=Ns&&!N(O);O+=F);};D(1),D(-1);for(var _=d.length-1;_>=0;_--){var I=d[_];I.invalid&&or(d,I)}};if(!p)h();else return d;var g=function(){if(!f){f=zt();for(var N=0;N<t.length;N++)gh(f,t[N].boundingBox())}return f},y=function(N){N=N||{};var D=N.after;g();var _=f.w*u*(f.h*u);if(_>JD)return null;var I=r.makeLayer(f,n);if(D!=null){var P=d.indexOf(D)+1;d.splice(P,0,I)}else(N.insert===void 0||N.insert)&&d.unshift(I);return I};if(r.skipping&&!l)return null;for(var m=null,b=t.length/qD,w=!l,C=0;C<t.length;C++){var k=t[C],E=k._private.rscratch,x=E.imgLayerCaches=E.imgLayerCaches||{},B=x[n];if(B){m=B;continue}if((!m||m.eles.length>=b||!yh(m.bb,k.boundingBox()))&&(m=y({insert:!0,after:m}),!m))return null;v||w?r.queueLayer(m,k):r.drawEleInLayer(m,k,n,e),m.eles.push(k),x[n]=m}return v||(w?null:d)},Et.getEleLevelForLayerLevel=function(t,e){return t},Et.drawEleInLayer=function(t,e,n,r){var a=this,i=this.renderer,s=t.context,l=e.boundingBox();l.w===0||l.h===0||!e.visible()||(n=a.getEleLevelForLayerLevel(n,r),i.setImgSmoothing(s,!1),i.drawCachedElement(s,e,null,null,n,e3),i.setImgSmoothing(s,!0))},Et.levelIsComplete=function(t,e){var n=this,r=n.layersByLevel[t];if(!r||r.length===0)return!1;for(var a=0,i=0;i<r.length;i++){var s=r[i];if(s.reqs>0||s.invalid)return!1;a+=s.eles.length}return a===e.length},Et.validateLayersElesOrdering=function(t,e){var n=this.layersByLevel[t];if(n)for(var r=0;r<n.length;r++){for(var a=n[r],i=-1,s=0;s<e.length;s++)if(a.eles[0]===e[s]){i=s;break}if(i<0){this.invalidateLayer(a);continue}for(var l=i,s=0;s<a.eles.length;s++)if(a.eles[s]!==e[l+s]){this.invalidateLayer(a);break}}},Et.updateElementsInLayers=function(t,e){for(var n=this,r=mi(t[0]),a=0;a<t.length;a++)for(var i=r?null:t[a],s=r?t[a]:t[a].ele,l=s._private.rscratch,c=l.imgLayerCaches=l.imgLayerCaches||{},u=Gi;u<=Ns;u++){var d=c[u];d&&(i&&n.getEleLevelForLayerLevel(d.level)!==i.level||e(d,s,i))}},Et.haveLayers=function(){for(var t=this,e=!1,n=Gi;n<=Ns;n++){var r=t.layersByLevel[n];if(r&&r.length>0){e=!0;break}}return e},Et.invalidateElements=function(t){var e=this;t.length!==0&&(e.lastInvalidationTime=Rn(),!(t.length===0||!e.haveLayers())&&e.updateElementsInLayers(t,function(r,a,i){e.invalidateLayer(r)}))},Et.invalidateLayer=function(t){if(this.lastInvalidationTime=Rn(),!t.invalid){var e=t.level,n=t.eles,r=this.layersByLevel[e];or(r,t),t.elesQueue=[],t.invalid=!0,t.replacement&&(t.replacement.invalid=!0);for(var a=0;a<n.length;a++){var i=n[a]._private.rscratch.imgLayerCaches;i&&(i[e]=null)}}},Et.refineElementTextures=function(t){var e=this;e.updateElementsInLayers(t,function(r,a,i){var s=r.replacement;if(s||(s=r.replacement=e.makeLayer(r.bb,r.level),s.replaces=r,s.eles=r.eles),!s.reqs)for(var l=0;l<s.eles.length;l++)e.queueLayer(s,s.eles[l])})},Et.enqueueElementRefinement=function(t){this.eleTxrDeqs.merge(t),this.scheduleElementRefinement()},Et.queueLayer=function(t,e){var n=this,r=n.layersQueue,a=t.elesQueue,i=a.hasId=a.hasId||{};if(!t.replacement){if(e){if(i[e.id()])return;a.push(e),i[e.id()]=!0}t.reqs?(t.reqs++,r.updateItem(t)):(t.reqs=1,r.push(t))}},Et.dequeue=function(t){for(var e=this,n=e.layersQueue,r=[],a=0;a<QD&&n.size()!==0;){var i=n.peek();if(i.replacement){n.pop();continue}if(i.replaces&&i!==i.replaces.replacement){n.pop();continue}if(i.invalid){n.pop();continue}var s=i.elesQueue.shift();s&&(e.drawEleInLayer(i,s,i.level,t),a++),r.length===0&&r.push(!0),i.elesQueue.length===0&&(n.pop(),i.reqs=0,i.replaces&&e.applyLayerReplacement(i),e.requestRedraw())}return r},Et.applyLayerReplacement=function(t){var e=this,n=e.layersByLevel[t.level],r=t.replaces,a=n.indexOf(r);if(!(a<0||r.invalid)){n[a]=t;for(var i=0;i<t.eles.length;i++){var s=t.eles[i]._private,l=s.imgLayerCaches=s.imgLayerCaches||{};l&&(l[t.level]=t)}e.requestRedraw()}},Et.requestRedraw=Fo(function(){var t=this.renderer;t.redrawHint("eles",!0),t.redrawHint("drag",!0),t.redraw()},100),Et.setupDequeueing=vv.setupDequeueing({deqRedrawThreshold:GD,deqCost:jD,deqAvgCost:YD,deqNoDrawCost:ZD,deqFastCost:XD,deq:function(e,n){return e.dequeue(n)},onDeqd:Gl,shouldRedraw:lh,priority:function(e){return e.renderer.beforeRenderPriorities.lyrTxrDeq}});var wv={},Cv;function n3(t,e){for(var n=0;n<e.length;n++){var r=e[n];t.lineTo(r.x,r.y)}}function r3(t,e,n){for(var r,a=0;a<e.length;a++){var i=e[a];a===0&&(r=i),t.lineTo(i.x,i.y)}t.quadraticCurveTo(n.x,n.y,r.x,r.y)}function kv(t,e,n){t.beginPath&&t.beginPath();for(var r=e,a=0;a<r.length;a++){var i=r[a];t.lineTo(i.x,i.y)}var s=n,l=n[0];t.moveTo(l.x,l.y);for(var a=1;a<s.length;a++){var i=s[a];t.lineTo(i.x,i.y)}t.closePath&&t.closePath()}function a3(t,e,n,r,a){t.beginPath&&t.beginPath(),t.arc(n,r,a,0,Math.PI*2,!1);var i=e,s=i[0];t.moveTo(s.x,s.y);for(var l=0;l<i.length;l++){var c=i[l];t.lineTo(c.x,c.y)}t.closePath&&t.closePath()}function i3(t,e,n,r){t.arc(e,n,r,0,Math.PI*2,!1)}wv.arrowShapeImpl=function(t){return(Cv||(Cv={polygon:n3,"triangle-backcurve":r3,"triangle-tee":kv,"circle-triangle":a3,"triangle-cross":kv,circle:i3}))[t]};var Nn={};Nn.drawElement=function(t,e,n,r,a,i){var s=this;e.isNode()?s.drawNode(t,e,n,r,a,i):s.drawEdge(t,e,n,r,a,i)},Nn.drawElementOverlay=function(t,e){var n=this;e.isNode()?n.drawNodeOverlay(t,e):n.drawEdgeOverlay(t,e)},Nn.drawElementUnderlay=function(t,e){var n=this;e.isNode()?n.drawNodeUnderlay(t,e):n.drawEdgeUnderlay(t,e)},Nn.drawCachedElementPortion=function(t,e,n,r,a,i,s,l){var c=this,u=n.getBoundingBox(e);if(!(u.w===0||u.h===0)){var d=n.getElement(e,u,r,a,i);if(d!=null){var f=l(c,e);if(f===0)return;var p=s(c,e),v=u.x1,h=u.y1,g=u.w,y=u.h,m,b,w,C,k;if(p!==0){var E=n.getRotationPoint(e);w=E.x,C=E.y,t.translate(w,C),t.rotate(p),k=c.getImgSmoothing(t),k||c.setImgSmoothing(t,!0);var x=n.getRotationOffset(e);m=x.x,b=x.y}else m=v,b=h;var B;f!==1&&(B=t.globalAlpha,t.globalAlpha=B*f),t.drawImage(d.texture.canvas,d.x,0,d.width,d.height,m,b,g,y),f!==1&&(t.globalAlpha=B),p!==0&&(t.rotate(-p),t.translate(-w,-C),k||c.setImgSmoothing(t,!1))}else n.drawElement(t,e)}};var o3=function(){return 0},s3=function(e,n){return e.getTextAngle(n,null)},l3=function(e,n){return e.getTextAngle(n,"source")},c3=function(e,n){return e.getTextAngle(n,"target")},u3=function(e,n){return n.effectiveOpacity()},Oc=function(e,n){return n.pstyle("text-opacity").pfValue*n.effectiveOpacity()};Nn.drawCachedElement=function(t,e,n,r,a,i){var s=this,l=s.data,c=l.eleTxrCache,u=l.lblTxrCache,d=l.slbTxrCache,f=l.tlbTxrCache,p=e.boundingBox(),v=i===!0?c.reasons.highQuality:null;if(!(p.w===0||p.h===0||!e.visible())&&(!r||Zl(p,r))){var h=e.isEdge(),g=e.element()._private.rscratch.badLine;s.drawElementUnderlay(t,e),s.drawCachedElementPortion(t,e,c,n,a,v,o3,u3),(!h||!g)&&s.drawCachedElementPortion(t,e,u,n,a,v,s3,Oc),h&&!g&&(s.drawCachedElementPortion(t,e,d,n,a,v,l3,Oc),s.drawCachedElementPortion(t,e,f,n,a,v,c3,Oc)),s.drawElementOverlay(t,e)}},Nn.drawElements=function(t,e){for(var n=this,r=0;r<e.length;r++){var a=e[r];n.drawElement(t,a)}},Nn.drawCachedElements=function(t,e,n,r){for(var a=this,i=0;i<e.length;i++){var s=e[i];a.drawCachedElement(t,s,n,r)}},Nn.drawCachedNodes=function(t,e,n,r){for(var a=this,i=0;i<e.length;i++){var s=e[i];s.isNode()&&a.drawCachedElement(t,s,n,r)}},Nn.drawLayeredElements=function(t,e,n,r){var a=this,i=a.data.lyrTxrCache.getLayers(e,n);if(i)for(var s=0;s<i.length;s++){var l=i[s],c=l.bb;c.w===0||c.h===0||t.drawImage(l.canvas,c.x1,c.y1,c.w,c.h)}else a.drawCachedElements(t,e,n,r)};var qn={};qn.drawEdge=function(t,e,n){var r=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!0,a=arguments.length>4&&arguments[4]!==void 0?arguments[4]:!0,i=arguments.length>5&&arguments[5]!==void 0?arguments[5]:!0,s=this,l=e._private.rscratch;if(!(i&&!e.visible())&&!(l.badLine||l.allpts==null||isNaN(l.allpts[0]))){var c;n&&(c=n,t.translate(-c.x1,-c.y1));var u=i?e.pstyle("opacity").value:1,d=i?e.pstyle("line-opacity").value:1,f=e.pstyle("curve-style").value,p=e.pstyle("line-style").value,v=e.pstyle("width").pfValue,h=e.pstyle("line-cap").value,g=e.pstyle("line-outline-width").value,y=e.pstyle("line-outline-color").value,m=u*d,b=u*d,w=function(){var F=arguments.length>0&&arguments[0]!==void 0?arguments[0]:m;f==="straight-triangle"?(s.eleStrokeStyle(t,e,F),s.drawEdgeTrianglePath(e,t,l.allpts)):(t.lineWidth=v,t.lineCap=h,s.eleStrokeStyle(t,e,F),s.drawEdgePath(e,t,l.allpts,p),t.lineCap="butt")},C=function(){var F=arguments.length>0&&arguments[0]!==void 0?arguments[0]:m;if(t.lineWidth=v+g,t.lineCap=h,g>0)s.colorStrokeStyle(t,y[0],y[1],y[2],F);else{t.lineCap="butt";return}f==="straight-triangle"?s.drawEdgeTrianglePath(e,t,l.allpts):(s.drawEdgePath(e,t,l.allpts,p),t.lineCap="butt")},k=function(){a&&s.drawEdgeOverlay(t,e)},E=function(){a&&s.drawEdgeUnderlay(t,e)},x=function(){var F=arguments.length>0&&arguments[0]!==void 0?arguments[0]:b;s.drawArrowheads(t,e,F)},B=function(){s.drawElementText(t,e,null,r)};t.lineJoin="round";var S=e.pstyle("ghost").value==="yes";if(S){var N=e.pstyle("ghost-offset-x").pfValue,D=e.pstyle("ghost-offset-y").pfValue,_=e.pstyle("ghost-opacity").value,I=m*_;t.translate(N,D),w(I),x(I),t.translate(-N,-D)}else C();E(),w(),x(),k(),B(),n&&t.translate(c.x1,c.y1)}};var xv=function(e){if(!["overlay","underlay"].includes(e))throw new Error("Invalid state");return function(n,r){if(r.visible()){var a=r.pstyle("".concat(e,"-opacity")).value;if(a!==0){var i=this,s=i.usePaths(),l=r._private.rscratch,c=r.pstyle("".concat(e,"-padding")).pfValue,u=2*c,d=r.pstyle("".concat(e,"-color")).value;n.lineWidth=u,l.edgeType==="self"&&!s?n.lineCap="butt":n.lineCap="round",i.colorStrokeStyle(n,d[0],d[1],d[2],a),i.drawEdgePath(r,n,l.allpts,"solid")}}}};qn.drawEdgeOverlay=xv("overlay"),qn.drawEdgeUnderlay=xv("underlay"),qn.drawEdgePath=function(t,e,n,r){var a=t._private.rscratch,i=e,s,l=!1,c=this.usePaths(),u=t.pstyle("line-dash-pattern").pfValue,d=t.pstyle("line-dash-offset").pfValue;if(c){var f=n.join("$"),p=a.pathCacheKey&&a.pathCacheKey===f;p?(s=e=a.pathCache,l=!0):(s=e=new Path2D,a.pathCacheKey=f,a.pathCache=s)}if(i.setLineDash)switch(r){case"dotted":i.setLineDash([1,1]);break;case"dashed":i.setLineDash(u),i.lineDashOffset=d;break;case"solid":i.setLineDash([]);break}if(!l&&!a.badLine)switch(e.beginPath&&e.beginPath(),e.moveTo(n[0],n[1]),a.edgeType){case"bezier":case"self":case"compound":case"multibezier":for(var v=2;v+3<n.length;v+=4)e.quadraticCurveTo(n[v],n[v+1],n[v+2],n[v+3]);break;case"straight":case"haystack":for(var h=2;h+1<n.length;h+=2)e.lineTo(n[h],n[h+1]);break;case"segments":if(a.isRound){var g=Hf(a.roundCorners),y;try{for(g.s();!(y=g.n()).done;){var m=y.value;av(e,m)}}catch(w){g.e(w)}finally{g.f()}e.lineTo(n[n.length-2],n[n.length-1])}else for(var b=2;b+1<n.length;b+=2)e.lineTo(n[b],n[b+1]);break}e=i,c?e.stroke(s):e.stroke(),e.setLineDash&&e.setLineDash([])},qn.drawEdgeTrianglePath=function(t,e,n){e.fillStyle=e.strokeStyle;for(var r=t.pstyle("width").pfValue,a=0;a+1<n.length;a+=2){var i=[n[a+2]-n[a],n[a+3]-n[a+1]],s=Math.sqrt(i[0]*i[0]+i[1]*i[1]),l=[i[1]/s,-i[0]/s],c=[l[0]*r/2,l[1]*r/2];e.beginPath(),e.moveTo(n[a]-c[0],n[a+1]-c[1]),e.lineTo(n[a]+c[0],n[a+1]+c[1]),e.lineTo(n[a+2],n[a+3]),e.closePath(),e.fill()}},qn.drawArrowheads=function(t,e,n){var r=e._private.rscratch,a=r.edgeType==="haystack";a||this.drawArrowhead(t,e,"source",r.arrowStartX,r.arrowStartY,r.srcArrowAngle,n),this.drawArrowhead(t,e,"mid-target",r.midX,r.midY,r.midtgtArrowAngle,n),this.drawArrowhead(t,e,"mid-source",r.midX,r.midY,r.midsrcArrowAngle,n),a||this.drawArrowhead(t,e,"target",r.arrowEndX,r.arrowEndY,r.tgtArrowAngle,n)},qn.drawArrowhead=function(t,e,n,r,a,i,s){if(!(isNaN(r)||r==null||isNaN(a)||a==null||isNaN(i)||i==null)){var l=this,c=e.pstyle(n+"-arrow-shape").value;if(c!=="none"){var u=e.pstyle(n+"-arrow-fill").value==="hollow"?"both":"filled",d=e.pstyle(n+"-arrow-fill").value,f=e.pstyle("width").pfValue,p=e.pstyle(n+"-arrow-width"),v=p.value==="match-line"?f:p.pfValue;p.units==="%"&&(v*=f);var h=e.pstyle("opacity").value;s===void 0&&(s=h);var g=t.globalCompositeOperation;(s!==1||d==="hollow")&&(t.globalCompositeOperation="destination-out",l.colorFillStyle(t,255,255,255,1),l.colorStrokeStyle(t,255,255,255,1),l.drawArrowShape(e,t,u,f,c,v,r,a,i),t.globalCompositeOperation=g);var y=e.pstyle(n+"-arrow-color").value;l.colorFillStyle(t,y[0],y[1],y[2],s),l.colorStrokeStyle(t,y[0],y[1],y[2],s),l.drawArrowShape(e,t,d,f,c,v,r,a,i)}}},qn.drawArrowShape=function(t,e,n,r,a,i,s,l,c){var u=this,d=this.usePaths()&&a!=="triangle-cross",f=!1,p,v=e,h={x:s,y:l},g=t.pstyle("arrow-scale").value,y=this.getArrowWidth(r,g),m=u.arrowShapes[a];if(d){var b=u.arrowPathCache=u.arrowPathCache||[],w=Mr(a),C=b[w];C!=null?(p=e=C,f=!0):(p=e=new Path2D,b[w]=p)}f||(e.beginPath&&e.beginPath(),d?m.draw(e,1,0,{x:0,y:0},1):m.draw(e,y,c,h,r),e.closePath&&e.closePath()),e=v,d&&(e.translate(s,l),e.rotate(c),e.scale(y,y)),(n==="filled"||n==="both")&&(d?e.fill(p):e.fill()),(n==="hollow"||n==="both")&&(e.lineWidth=i/(d?y:1),e.lineJoin="miter",d?e.stroke(p):e.stroke()),d&&(e.scale(1/y,1/y),e.rotate(-c),e.translate(-s,-l))};var Ic={};Ic.safeDrawImage=function(t,e,n,r,a,i,s,l,c,u){if(!(a<=0||i<=0||c<=0||u<=0))try{t.drawImage(e,n,r,a,i,s,l,c,u)}catch(d){Ae(d)}},Ic.drawInscribedImage=function(t,e,n,r,a){var i=this,s=n.position(),l=s.x,c=s.y,u=n.cy().style(),d=u.getIndexedStyle.bind(u),f=d(n,"background-fit","value",r),p=d(n,"background-repeat","value",r),v=n.width(),h=n.height(),g=n.padding()*2,y=v+(d(n,"background-width-relative-to","value",r)==="inner"?0:g),m=h+(d(n,"background-height-relative-to","value",r)==="inner"?0:g),b=n._private.rscratch,w=d(n,"background-clip","value",r),C=w==="node",k=d(n,"background-image-opacity","value",r)*a,E=d(n,"background-image-smoothing","value",r),x=n.pstyle("corner-radius").value;x!=="auto"&&(x=n.pstyle("corner-radius").pfValue);var B=e.width||e.cachedW,S=e.height||e.cachedH;(B==null||S==null)&&(document.body.appendChild(e),B=e.cachedW=e.width||e.offsetWidth,S=e.cachedH=e.height||e.offsetHeight,document.body.removeChild(e));var N=B,D=S;if(d(n,"background-width","value",r)!=="auto"&&(d(n,"background-width","units",r)==="%"?N=d(n,"background-width","pfValue",r)*y:N=d(n,"background-width","pfValue",r)),d(n,"background-height","value",r)!=="auto"&&(d(n,"background-height","units",r)==="%"?D=d(n,"background-height","pfValue",r)*m:D=d(n,"background-height","pfValue",r)),!(N===0||D===0)){if(f==="contain"){var _=Math.min(y/N,m/D);N*=_,D*=_}else if(f==="cover"){var _=Math.max(y/N,m/D);N*=_,D*=_}var I=l-y/2,P=d(n,"background-position-x","units",r),F=d(n,"background-position-x","pfValue",r);P==="%"?I+=(y-N)*F:I+=F;var O=d(n,"background-offset-x","units",r),M=d(n,"background-offset-x","pfValue",r);O==="%"?I+=(y-N)*M:I+=M;var L=c-m/2,V=d(n,"background-position-y","units",r),H=d(n,"background-position-y","pfValue",r);V==="%"?L+=(m-D)*H:L+=H;var $=d(n,"background-offset-y","units",r),z=d(n,"background-offset-y","pfValue",r);$==="%"?L+=(m-D)*z:L+=z,b.pathCache&&(I-=l,L-=c,l=0,c=0);var j=t.globalAlpha;t.globalAlpha=k;var ee=i.getImgSmoothing(t),J=!1;if(E==="no"&&ee?(i.setImgSmoothing(t,!1),J=!0):E==="yes"&&!ee&&(i.setImgSmoothing(t,!0),J=!0),p==="no-repeat")C&&(t.save(),b.pathCache?t.clip(b.pathCache):(i.nodeShapes[i.getNodeShape(n)].draw(t,l,c,y,m,x,b),t.clip())),i.safeDrawImage(t,e,0,0,B,S,I,L,N,D),C&&t.restore();else{var X=t.createPattern(e,p);t.fillStyle=X,i.nodeShapes[i.getNodeShape(n)].draw(t,l,c,y,m,x,b),t.translate(I,L),t.fill(),t.translate(-I,-L)}t.globalAlpha=j,J&&i.setImgSmoothing(t,ee)}};var Wr={};Wr.eleTextBiggerThanMin=function(t,e){if(!e){var n=t.cy().zoom(),r=this.getPixelRatio(),a=Math.ceil(Yl(n*r));e=Math.pow(2,a)}var i=t.pstyle("font-size").pfValue*e,s=t.pstyle("min-zoomed-font-size").pfValue;return!(i<s)},Wr.drawElementText=function(t,e,n,r,a){var i=arguments.length>5&&arguments[5]!==void 0?arguments[5]:!0,s=this;if(r==null){if(i&&!s.eleTextBiggerThanMin(e))return}else if(r===!1)return;if(e.isNode()){var l=e.pstyle("label");if(!l||!l.value)return;var c=s.getLabelJustification(e);t.textAlign=c,t.textBaseline="bottom"}else{var u=e.element()._private.rscratch.badLine,d=e.pstyle("label"),f=e.pstyle("source-label"),p=e.pstyle("target-label");if(u||(!d||!d.value)&&(!f||!f.value)&&(!p||!p.value))return;t.textAlign="center",t.textBaseline="bottom"}var v=!n,h;n&&(h=n,t.translate(-h.x1,-h.y1)),a==null?(s.drawText(t,e,null,v,i),e.isEdge()&&(s.drawText(t,e,"source",v,i),s.drawText(t,e,"target",v,i))):s.drawText(t,e,a,v,i),n&&t.translate(h.x1,h.y1)},Wr.getFontCache=function(t){var e;this.fontCaches=this.fontCaches||[];for(var n=0;n<this.fontCaches.length;n++)if(e=this.fontCaches[n],e.context===t)return e;return e={context:t},this.fontCaches.push(e),e},Wr.setupTextStyle=function(t,e){var n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0,r=e.pstyle("font-style").strValue,a=e.pstyle("font-size").pfValue+"px",i=e.pstyle("font-family").strValue,s=e.pstyle("font-weight").strValue,l=n?e.effectiveOpacity()*e.pstyle("text-opacity").value:1,c=e.pstyle("text-outline-opacity").value*l,u=e.pstyle("color").value,d=e.pstyle("text-outline-color").value;t.font=r+" "+s+" "+a+" "+i,t.lineJoin="round",this.colorFillStyle(t,u[0],u[1],u[2],l),this.colorStrokeStyle(t,d[0],d[1],d[2],c)};function Lc(t,e,n,r,a){var i=arguments.length>5&&arguments[5]!==void 0?arguments[5]:5,s=arguments.length>6?arguments[6]:void 0;t.beginPath(),t.moveTo(e+i,n),t.lineTo(e+r-i,n),t.quadraticCurveTo(e+r,n,e+r,n+i),t.lineTo(e+r,n+a-i),t.quadraticCurveTo(e+r,n+a,e+r-i,n+a),t.lineTo(e+i,n+a),t.quadraticCurveTo(e,n+a,e,n+a-i),t.lineTo(e,n+i),t.quadraticCurveTo(e,n,e+i,n),t.closePath(),s?t.stroke():t.fill()}Wr.getTextAngle=function(t,e){var n,r=t._private,a=r.rscratch,i=e?e+"-":"",s=t.pstyle(i+"text-rotation"),l=dn(a,"labelAngle",e);return s.strValue==="autorotate"?n=t.isEdge()?l:0:s.strValue==="none"?n=0:n=s.pfValue,n},Wr.drawText=function(t,e,n){var r=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!0,a=arguments.length>4&&arguments[4]!==void 0?arguments[4]:!0,i=e._private,s=i.rscratch,l=a?e.effectiveOpacity():1;if(!(a&&(l===0||e.pstyle("text-opacity").value===0))){n==="main"&&(n=null);var c=dn(s,"labelX",n),u=dn(s,"labelY",n),d,f,p=this.getLabelText(e,n);if(p!=null&&p!==""&&!isNaN(c)&&!isNaN(u)){this.setupTextStyle(t,e,a);var v=n?n+"-":"",h=dn(s,"labelWidth",n),g=dn(s,"labelHeight",n),y=e.pstyle(v+"text-margin-x").pfValue,m=e.pstyle(v+"text-margin-y").pfValue,b=e.isEdge(),w=e.pstyle("text-halign").value,C=e.pstyle("text-valign").value;b&&(w="center",C="center"),c+=y,u+=m;var k;switch(r?k=this.getTextAngle(e,n):k=0,k!==0&&(d=c,f=u,t.translate(d,f),t.rotate(k),c=0,u=0),C){case"top":break;case"center":u+=g/2;break;case"bottom":u+=g;break}var E=e.pstyle("text-background-opacity").value,x=e.pstyle("text-border-opacity").value,B=e.pstyle("text-border-width").pfValue,S=e.pstyle("text-background-padding").pfValue,N=e.pstyle("text-background-shape").strValue,D=N.indexOf("round")===0,_=2;if(E>0||B>0&&x>0){var I=c-S;switch(w){case"left":I-=h;break;case"center":I-=h/2;break}var P=u-g-S,F=h+2*S,O=g+2*S;if(E>0){var M=t.fillStyle,L=e.pstyle("text-background-color").value;t.fillStyle="rgba("+L[0]+","+L[1]+","+L[2]+","+E*l+")",D?Lc(t,I,P,F,O,_):t.fillRect(I,P,F,O),t.fillStyle=M}if(B>0&&x>0){var V=t.strokeStyle,H=t.lineWidth,$=e.pstyle("text-border-color").value,z=e.pstyle("text-border-style").value;if(t.strokeStyle="rgba("+$[0]+","+$[1]+","+$[2]+","+x*l+")",t.lineWidth=B,t.setLineDash)switch(z){case"dotted":t.setLineDash([1,1]);break;case"dashed":t.setLineDash([4,2]);break;case"double":t.lineWidth=B/4,t.setLineDash([]);break;case"solid":t.setLineDash([]);break}if(D?Lc(t,I,P,F,O,_,"stroke"):t.strokeRect(I,P,F,O),z==="double"){var j=B/2;D?Lc(t,I+j,P+j,F-j*2,O-j*2,_,"stroke"):t.strokeRect(I+j,P+j,F-j*2,O-j*2)}t.setLineDash&&t.setLineDash([]),t.lineWidth=H,t.strokeStyle=V}}var ee=2*e.pstyle("text-outline-width").pfValue;if(ee>0&&(t.lineWidth=ee),e.pstyle("text-wrap").value==="wrap"){var J=dn(s,"labelWrapCachedLines",n),X=dn(s,"labelLineHeight",n),ne=h/2,Y=this.getLabelJustification(e);switch(Y==="auto"||(w==="left"?Y==="left"?c+=-h:Y==="center"&&(c+=-ne):w==="center"?Y==="left"?c+=-ne:Y==="right"&&(c+=ne):w==="right"&&(Y==="center"?c+=ne:Y==="right"&&(c+=h))),C){case"top":u-=(J.length-1)*X;break;case"center":case"bottom":u-=(J.length-1)*X;break}for(var A=0;A<J.length;A++)ee>0&&t.strokeText(J[A],c,u),t.fillText(J[A],c,u),u+=X}else ee>0&&t.strokeText(p,c,u),t.fillText(p,c,u);k!==0&&(t.rotate(-k),t.translate(-d,-f))}}};var Ra={};Ra.drawNode=function(t,e,n){var r=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!0,a=arguments.length>4&&arguments[4]!==void 0?arguments[4]:!0,i=arguments.length>5&&arguments[5]!==void 0?arguments[5]:!0,s=this,l,c,u=e._private,d=u.rscratch,f=e.position();if(!(!le(f.x)||!le(f.y))&&!(i&&!e.visible())){var p=i?e.effectiveOpacity():1,v=s.usePaths(),h,g=!1,y=e.padding();l=e.width()+2*y,c=e.height()+2*y;var m;n&&(m=n,t.translate(-m.x1,-m.y1));for(var b=e.pstyle("background-image"),w=b.value,C=new Array(w.length),k=new Array(w.length),E=0,x=0;x<w.length;x++){var B=w[x],S=C[x]=B!=null&&B!=="none";if(S){var N=e.cy().style().getIndexedStyle(e,"background-image-crossorigin","value",x);E++,k[x]=s.getCachedImage(B,N,function(){u.backgroundTimestamp=Date.now(),e.emitAndNotify("background")})}}var D=e.pstyle("background-blacken").value,_=e.pstyle("border-width").pfValue,I=e.pstyle("background-opacity").value*p,P=e.pstyle("border-color").value,F=e.pstyle("border-style").value,O=e.pstyle("border-join").value,M=e.pstyle("border-cap").value,L=e.pstyle("border-position").value,V=e.pstyle("border-dash-pattern").pfValue,H=e.pstyle("border-dash-offset").pfValue,$=e.pstyle("border-opacity").value*p,z=e.pstyle("outline-width").pfValue,j=e.pstyle("outline-color").value,ee=e.pstyle("outline-style").value,J=e.pstyle("outline-opacity").value*p,X=e.pstyle("outline-offset").value,ne=e.pstyle("corner-radius").value;ne!=="auto"&&(ne=e.pstyle("corner-radius").pfValue);var Y=function(){var ie=arguments.length>0&&arguments[0]!==void 0?arguments[0]:I;s.eleFillStyle(t,e,ie)},A=function(){var ie=arguments.length>0&&arguments[0]!==void 0?arguments[0]:$;s.colorStrokeStyle(t,P[0],P[1],P[2],ie)},K=function(){var ie=arguments.length>0&&arguments[0]!==void 0?arguments[0]:J;s.colorStrokeStyle(t,j[0],j[1],j[2],ie)},W=function(ie,Z,ae,we){var Ce=s.nodePathCache=s.nodePathCache||[],ge=oh(ae==="polygon"?ae+","+we.join(","):ae,""+Z,""+ie,""+ne),Se=Ce[ge],ve,ye=!1;return Se!=null?(ve=Se,ye=!0,d.pathCache=ve):(ve=new Path2D,Ce[ge]=d.pathCache=ve),{path:ve,cacheHit:ye}},oe=e.pstyle("shape").strValue,he=e.pstyle("shape-polygon-points").pfValue;if(v){t.translate(f.x,f.y);var re=W(l,c,oe,he);h=re.path,g=re.cacheHit}var se=function(){if(!g){var ie=f;v&&(ie={x:0,y:0}),s.nodeShapes[s.getNodeShape(e)].draw(h||t,ie.x,ie.y,l,c,ne,d)}v?t.fill(h):t.fill()},ue=function(){for(var ie=arguments.length>0&&arguments[0]!==void 0?arguments[0]:p,Z=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0,ae=u.backgrounding,we=0,Ce=0;Ce<k.length;Ce++){var ge=e.cy().style().getIndexedStyle(e,"background-image-containment","value",Ce);if(Z&&ge==="over"||!Z&&ge==="inside"){we++;continue}C[Ce]&&k[Ce].complete&&!k[Ce].error&&(we++,s.drawInscribedImage(t,k[Ce],e,Ce,ie))}u.backgrounding=we!==E,ae!==u.backgrounding&&e.updateStyle(!1)},pe=function(){var ie=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!1,Z=arguments.length>1&&arguments[1]!==void 0?arguments[1]:p;s.hasPie(e)&&(s.drawPie(t,e,Z),ie&&(v||s.nodeShapes[s.getNodeShape(e)].draw(t,f.x,f.y,l,c,ne,d)))},de=function(){var ie=arguments.length>0&&arguments[0]!==void 0?arguments[0]:p,Z=(D>0?D:-D)*ie,ae=D>0?0:255;D!==0&&(s.colorFillStyle(t,ae,ae,ae,Z),v?t.fill(h):t.fill())},me=function(){if(_>0){if(t.lineWidth=_,t.lineCap=M,t.lineJoin=O,t.setLineDash)switch(F){case"dotted":t.setLineDash([1,1]);break;case"dashed":t.setLineDash(V),t.lineDashOffset=H;break;case"solid":case"double":t.setLineDash([]);break}if(L!=="center"){if(t.save(),t.lineWidth*=2,L==="inside")v?t.clip(h):t.clip();else{var ie=new Path2D;ie.rect(-l/2-_,-c/2-_,l+2*_,c+2*_),ie.addPath(h),t.clip(ie,"evenodd")}v?t.stroke(h):t.stroke(),t.restore()}else v?t.stroke(h):t.stroke();if(F==="double"){t.lineWidth=_/3;var Z=t.globalCompositeOperation;t.globalCompositeOperation="destination-out",v?t.stroke(h):t.stroke(),t.globalCompositeOperation=Z}t.setLineDash&&t.setLineDash([])}},Ne=function(){if(z>0){if(t.lineWidth=z,t.lineCap="butt",t.setLineDash)switch(ee){case"dotted":t.setLineDash([1,1]);break;case"dashed":t.setLineDash([4,2]);break;case"solid":case"double":t.setLineDash([]);break}var ie=f;v&&(ie={x:0,y:0});var Z=s.getNodeShape(e),ae=_;L==="inside"&&(ae=0),L==="outside"&&(ae*=2);var we=(l+ae+(z+X))/l,Ce=(c+ae+(z+X))/c,ge=l*we,Se=c*Ce,ve=s.nodeShapes[Z].points,ye;if(v){var Ge=W(ge,Se,Z,ve);ye=Ge.path}if(Z==="ellipse")s.drawEllipsePath(ye||t,ie.x,ie.y,ge,Se);else if(["round-diamond","round-heptagon","round-hexagon","round-octagon","round-pentagon","round-polygon","round-triangle","round-tag"].includes(Z)){var $e=0,nt=0,rt=0;Z==="round-diamond"?$e=(ae+X+z)*1.4:Z==="round-heptagon"?($e=(ae+X+z)*1.075,rt=-(ae/2+X+z)/35):Z==="round-hexagon"?$e=(ae+X+z)*1.12:Z==="round-pentagon"?($e=(ae+X+z)*1.13,rt=-(ae/2+X+z)/15):Z==="round-tag"?($e=(ae+X+z)*1.12,nt=(ae/2+z+X)*.07):Z==="round-triangle"&&($e=(ae+X+z)*(Math.PI/2),rt=-(ae+X/2+z)/Math.PI),$e!==0&&(we=(l+$e)/l,ge=l*we,["round-hexagon","round-tag"].includes(Z)||(Ce=(c+$e)/c,Se=c*Ce)),ne=ne==="auto"?Ch(ge,Se):ne;for(var Qe=ge/2,Pt=Se/2,ut=ne+(ae+z+X)/2,ht=new Array(ve.length/2),Wt=new Array(ve.length/2),Ot=0;Ot<ve.length/2;Ot++)ht[Ot]={x:ie.x+nt+Qe*ve[Ot*2],y:ie.y+rt+Pt*ve[Ot*2+1]};var It,tn,pn,Kt,Je=ht.length;for(tn=ht[Je-1],It=0;It<Je;It++)pn=ht[It%Je],Kt=ht[(It+1)%Je],Wt[It]=Nc(tn,pn,Kt,ut),tn=pn,pn=Kt;s.drawRoundPolygonPath(ye||t,ie.x+nt,ie.y+rt,l*we,c*Ce,ve,Wt)}else if(["roundrectangle","round-rectangle"].includes(Z))ne=ne==="auto"?Rr(ge,Se):ne,s.drawRoundRectanglePath(ye||t,ie.x,ie.y,ge,Se,ne+(ae+z+X)/2);else if(["cutrectangle","cut-rectangle"].includes(Z))ne=ne==="auto"?Jl():ne,s.drawCutRectanglePath(ye||t,ie.x,ie.y,ge,Se,null,ne+(ae+z+X)/4);else if(["bottomroundrectangle","bottom-round-rectangle"].includes(Z))ne=ne==="auto"?Rr(ge,Se):ne,s.drawBottomRoundRectanglePath(ye||t,ie.x,ie.y,ge,Se,ne+(ae+z+X)/2);else if(Z==="barrel")s.drawBarrelPath(ye||t,ie.x,ie.y,ge,Se);else if(Z.startsWith("polygon")||["rhomboid","right-rhomboid","round-tag","tag","vee"].includes(Z)){var at=(ae+z+X)/l;ve=Uo(Go(ve,at)),s.drawPolygonPath(ye||t,ie.x,ie.y,l,c,ve)}else{var pt=(ae+z+X)/l;ve=Uo(Go(ve,-pt)),s.drawPolygonPath(ye||t,ie.x,ie.y,l,c,ve)}if(v?t.stroke(ye):t.stroke(),ee==="double"){t.lineWidth=ae/3;var mr=t.globalCompositeOperation;t.globalCompositeOperation="destination-out",v?t.stroke(ye):t.stroke(),t.globalCompositeOperation=mr}t.setLineDash&&t.setLineDash([])}},De=function(){a&&s.drawNodeOverlay(t,e,f,l,c)},Ee=function(){a&&s.drawNodeUnderlay(t,e,f,l,c)},_e=function(){s.drawElementText(t,e,null,r)},te=e.pstyle("ghost").value==="yes";if(te){var T=e.pstyle("ghost-offset-x").pfValue,R=e.pstyle("ghost-offset-y").pfValue,Q=e.pstyle("ghost-opacity").value,G=Q*p;t.translate(T,R),K(),Ne(),Y(Q*I),se(),ue(G,!0),A(Q*$),me(),pe(D!==0||_!==0),ue(G,!1),de(G),t.translate(-T,-R)}v&&t.translate(-f.x,-f.y),Ee(),v&&t.translate(f.x,f.y),K(),Ne(),Y(),se(),ue(p,!0),A(),me(),pe(D!==0||_!==0),ue(p,!1),de(),v&&t.translate(-f.x,-f.y),_e(),De(),n&&t.translate(m.x1,m.y1)}};var Ev=function(e){if(!["overlay","underlay"].includes(e))throw new Error("Invalid state");return function(n,r,a,i,s){var l=this;if(r.visible()){var c=r.pstyle("".concat(e,"-padding")).pfValue,u=r.pstyle("".concat(e,"-opacity")).value,d=r.pstyle("".concat(e,"-color")).value,f=r.pstyle("".concat(e,"-shape")).value,p=r.pstyle("".concat(e,"-corner-radius")).value;if(u>0){if(a=a||r.position(),i==null||s==null){var v=r.padding();i=r.width()+2*v,s=r.height()+2*v}l.colorFillStyle(n,d[0],d[1],d[2],u),l.nodeShapes[f].draw(n,a.x,a.y,i+c*2,s+c*2,p),n.fill()}}}};Ra.drawNodeOverlay=Ev("overlay"),Ra.drawNodeUnderlay=Ev("underlay"),Ra.hasPie=function(t){return t=t[0],t._private.hasPie},Ra.drawPie=function(t,e,n,r){e=e[0],r=r||e.position();var a=e.cy().style(),i=e.pstyle("pie-size"),s=r.x,l=r.y,c=e.width(),u=e.height(),d=Math.min(c,u)/2,f=0,p=this.usePaths();p&&(s=0,l=0),i.units==="%"?d=d*i.pfValue:i.pfValue!==void 0&&(d=i.pfValue/2);for(var v=1;v<=a.pieBackgroundN;v++){var h=e.pstyle("pie-"+v+"-background-size").value,g=e.pstyle("pie-"+v+"-background-color").value,y=e.pstyle("pie-"+v+"-background-opacity").value*n,m=h/100;m+f>1&&(m=1-f);var b=1.5*Math.PI+2*Math.PI*f,w=2*Math.PI*m,C=b+w;h===0||f>=1||f+m>1||(t.beginPath(),t.moveTo(s,l),t.arc(s,l,d,b,C),t.closePath(),this.colorFillStyle(t,g[0],g[1],g[2],y),t.fill(),f+=m)}};var Gt={},d3=100;Gt.getPixelRatio=function(){var t=this.data.contexts[0];if(this.forcedPixelRatio!=null)return this.forcedPixelRatio;var e=this.cy.window(),n=t.backingStorePixelRatio||t.webkitBackingStorePixelRatio||t.mozBackingStorePixelRatio||t.msBackingStorePixelRatio||t.oBackingStorePixelRatio||t.backingStorePixelRatio||1;return(e.devicePixelRatio||1)/n},Gt.paintCache=function(t){for(var e=this.paintCaches=this.paintCaches||[],n=!0,r,a=0;a<e.length;a++)if(r=e[a],r.context===t){n=!1;break}return n&&(r={context:t},e.push(r)),r},Gt.createGradientStyleFor=function(t,e,n,r,a){var i,s=this.usePaths(),l=n.pstyle(e+"-gradient-stop-colors").value,c=n.pstyle(e+"-gradient-stop-positions").pfValue;if(r==="radial-gradient")if(n.isEdge()){var u=n.sourceEndpoint(),d=n.targetEndpoint(),f=n.midpoint(),p=Fr(u,f),v=Fr(d,f);i=t.createRadialGradient(f.x,f.y,0,f.x,f.y,Math.max(p,v))}else{var h=s?{x:0,y:0}:n.position(),g=n.paddedWidth(),y=n.paddedHeight();i=t.createRadialGradient(h.x,h.y,0,h.x,h.y,Math.max(g,y))}else if(n.isEdge()){var m=n.sourceEndpoint(),b=n.targetEndpoint();i=t.createLinearGradient(m.x,m.y,b.x,b.y)}else{var w=s?{x:0,y:0}:n.position(),C=n.paddedWidth(),k=n.paddedHeight(),E=C/2,x=k/2,B=n.pstyle("background-gradient-direction").value;switch(B){case"to-bottom":i=t.createLinearGradient(w.x,w.y-x,w.x,w.y+x);break;case"to-top":i=t.createLinearGradient(w.x,w.y+x,w.x,w.y-x);break;case"to-left":i=t.createLinearGradient(w.x+E,w.y,w.x-E,w.y);break;case"to-right":i=t.createLinearGradient(w.x-E,w.y,w.x+E,w.y);break;case"to-bottom-right":case"to-right-bottom":i=t.createLinearGradient(w.x-E,w.y-x,w.x+E,w.y+x);break;case"to-top-right":case"to-right-top":i=t.createLinearGradient(w.x-E,w.y+x,w.x+E,w.y-x);break;case"to-bottom-left":case"to-left-bottom":i=t.createLinearGradient(w.x+E,w.y-x,w.x-E,w.y+x);break;case"to-top-left":case"to-left-top":i=t.createLinearGradient(w.x+E,w.y+x,w.x-E,w.y-x);break}}if(!i)return null;for(var S=c.length===l.length,N=l.length,D=0;D<N;D++)i.addColorStop(S?c[D]:D/(N-1),"rgba("+l[D][0]+","+l[D][1]+","+l[D][2]+","+a+")");return i},Gt.gradientFillStyle=function(t,e,n,r){var a=this.createGradientStyleFor(t,"background",e,n,r);if(!a)return null;t.fillStyle=a},Gt.colorFillStyle=function(t,e,n,r,a){t.fillStyle="rgba("+e+","+n+","+r+","+a+")"},Gt.eleFillStyle=function(t,e,n){var r=e.pstyle("background-fill").value;if(r==="linear-gradient"||r==="radial-gradient")this.gradientFillStyle(t,e,r,n);else{var a=e.pstyle("background-color").value;this.colorFillStyle(t,a[0],a[1],a[2],n)}},Gt.gradientStrokeStyle=function(t,e,n,r){var a=this.createGradientStyleFor(t,"line",e,n,r);if(!a)return null;t.strokeStyle=a},Gt.colorStrokeStyle=function(t,e,n,r,a){t.strokeStyle="rgba("+e+","+n+","+r+","+a+")"},Gt.eleStrokeStyle=function(t,e,n){var r=e.pstyle("line-fill").value;if(r==="linear-gradient"||r==="radial-gradient")this.gradientStrokeStyle(t,e,r,n);else{var a=e.pstyle("line-color").value;this.colorStrokeStyle(t,a[0],a[1],a[2],n)}},Gt.matchCanvasSize=function(t){var e=this,n=e.data,r=e.findContainerClientCoords(),a=r[2],i=r[3],s=e.getPixelRatio(),l=e.motionBlurPxRatio;(t===e.data.bufferCanvases[e.MOTIONBLUR_BUFFER_NODE]||t===e.data.bufferCanvases[e.MOTIONBLUR_BUFFER_DRAG])&&(s=l);var c=a*s,u=i*s,d;if(!(c===e.canvasWidth&&u===e.canvasHeight)){e.fontCaches=null;var f=n.canvasContainer;f.style.width=a+"px",f.style.height=i+"px";for(var p=0;p<e.CANVAS_LAYERS;p++)d=n.canvases[p],d.width=c,d.height=u,d.style.width=a+"px",d.style.height=i+"px";for(var p=0;p<e.BUFFER_COUNT;p++)d=n.bufferCanvases[p],d.width=c,d.height=u,d.style.width=a+"px",d.style.height=i+"px";e.textureMult=1,s<=1&&(d=n.bufferCanvases[e.TEXTURE_BUFFER],e.textureMult=2,d.width=c*e.textureMult,d.height=u*e.textureMult),e.canvasWidth=c,e.canvasHeight=u}},Gt.renderTo=function(t,e,n,r){this.render({forcedContext:t,forcedZoom:e,forcedPan:n,drawAllLayers:!0,forcedPxRatio:r})},Gt.render=function(t){t=t||fh();var e=t.forcedContext,n=t.drawAllLayers,r=t.drawOnlyNodeLayer,a=t.forcedZoom,i=t.forcedPan,s=this,l=t.forcedPxRatio===void 0?this.getPixelRatio():t.forcedPxRatio,c=s.cy,u=s.data,d=u.canvasNeedsRedraw,f=s.textureOnViewport&&!e&&(s.pinching||s.hoverData.dragging||s.swipePanning||s.data.wheelZooming),p=t.motionBlur!==void 0?t.motionBlur:s.motionBlur,v=s.motionBlurPxRatio,h=c.hasCompoundNodes(),g=s.hoverData.draggingEles,y=!!(s.hoverData.selecting||s.touchData.selecting);p=p&&!e&&s.motionBlurEnabled&&!y;var m=p;e||(s.prevPxRatio!==l&&(s.invalidateContainerClientCoordsCache(),s.matchCanvasSize(s.container),s.redrawHint("eles",!0),s.redrawHint("drag",!0)),s.prevPxRatio=l),!e&&s.motionBlurTimeout&&clearTimeout(s.motionBlurTimeout),p&&(s.mbFrames==null&&(s.mbFrames=0),s.mbFrames++,s.mbFrames<3&&(m=!1),s.mbFrames>s.minMbLowQualFrames&&(s.motionBlurPxRatio=s.mbPxRBlurry)),s.clearingMotionBlur&&(s.motionBlurPxRatio=1),s.textureDrawLastFrame&&!f&&(d[s.NODE]=!0,d[s.SELECT_BOX]=!0);var b=c.style(),w=c.zoom(),C=a!==void 0?a:w,k=c.pan(),E={x:k.x,y:k.y},x={zoom:w,pan:{x:k.x,y:k.y}},B=s.prevViewport,S=B===void 0||x.zoom!==B.zoom||x.pan.x!==B.pan.x||x.pan.y!==B.pan.y;!S&&!(g&&!h)&&(s.motionBlurPxRatio=1),i&&(E=i),C*=l,E.x*=l,E.y*=l;var N=s.getCachedZSortedEles();function D(re,se,ue,pe,de){var me=re.globalCompositeOperation;re.globalCompositeOperation="destination-out",s.colorFillStyle(re,255,255,255,s.motionBlurTransparency),re.fillRect(se,ue,pe,de),re.globalCompositeOperation=me}function _(re,se){var ue,pe,de,me;!s.clearingMotionBlur&&(re===u.bufferContexts[s.MOTIONBLUR_BUFFER_NODE]||re===u.bufferContexts[s.MOTIONBLUR_BUFFER_DRAG])?(ue={x:k.x*v,y:k.y*v},pe=w*v,de=s.canvasWidth*v,me=s.canvasHeight*v):(ue=E,pe=C,de=s.canvasWidth,me=s.canvasHeight),re.setTransform(1,0,0,1,0,0),se==="motionBlur"?D(re,0,0,de,me):!e&&(se===void 0||se)&&re.clearRect(0,0,de,me),n||(re.translate(ue.x,ue.y),re.scale(pe,pe)),i&&re.translate(i.x,i.y),a&&re.scale(a,a)}if(f||(s.textureDrawLastFrame=!1),f){if(s.textureDrawLastFrame=!0,!s.textureCache){s.textureCache={},s.textureCache.bb=c.mutableElements().boundingBox(),s.textureCache.texture=s.data.bufferCanvases[s.TEXTURE_BUFFER];var I=s.data.bufferContexts[s.TEXTURE_BUFFER];I.setTransform(1,0,0,1,0,0),I.clearRect(0,0,s.canvasWidth*s.textureMult,s.canvasHeight*s.textureMult),s.render({forcedContext:I,drawOnlyNodeLayer:!0,forcedPxRatio:l*s.textureMult});var x=s.textureCache.viewport={zoom:c.zoom(),pan:c.pan(),width:s.canvasWidth,height:s.canvasHeight};x.mpan={x:(0-x.pan.x)/x.zoom,y:(0-x.pan.y)/x.zoom}}d[s.DRAG]=!1,d[s.NODE]=!1;var P=u.contexts[s.NODE],F=s.textureCache.texture,x=s.textureCache.viewport;P.setTransform(1,0,0,1,0,0),p?D(P,0,0,x.width,x.height):P.clearRect(0,0,x.width,x.height);var O=b.core("outside-texture-bg-color").value,M=b.core("outside-texture-bg-opacity").value;s.colorFillStyle(P,O[0],O[1],O[2],M),P.fillRect(0,0,x.width,x.height);var w=c.zoom();_(P,!1),P.clearRect(x.mpan.x,x.mpan.y,x.width/x.zoom/l,x.height/x.zoom/l),P.drawImage(F,x.mpan.x,x.mpan.y,x.width/x.zoom/l,x.height/x.zoom/l)}else s.textureOnViewport&&!e&&(s.textureCache=null);var L=c.extent(),V=s.pinching||s.hoverData.dragging||s.swipePanning||s.data.wheelZooming||s.hoverData.draggingEles||s.cy.animated(),H=s.hideEdgesOnViewport&&V,$=[];if($[s.NODE]=!d[s.NODE]&&p&&!s.clearedForMotionBlur[s.NODE]||s.clearingMotionBlur,$[s.NODE]&&(s.clearedForMotionBlur[s.NODE]=!0),$[s.DRAG]=!d[s.DRAG]&&p&&!s.clearedForMotionBlur[s.DRAG]||s.clearingMotionBlur,$[s.DRAG]&&(s.clearedForMotionBlur[s.DRAG]=!0),d[s.NODE]||n||r||$[s.NODE]){var z=p&&!$[s.NODE]&&v!==1,P=e||(z?s.data.bufferContexts[s.MOTIONBLUR_BUFFER_NODE]:u.contexts[s.NODE]),j=p&&!z?"motionBlur":void 0;_(P,j),H?s.drawCachedNodes(P,N.nondrag,l,L):s.drawLayeredElements(P,N.nondrag,l,L),s.debug&&s.drawDebugPoints(P,N.nondrag),!n&&!p&&(d[s.NODE]=!1)}if(!r&&(d[s.DRAG]||n||$[s.DRAG])){var z=p&&!$[s.DRAG]&&v!==1,P=e||(z?s.data.bufferContexts[s.MOTIONBLUR_BUFFER_DRAG]:u.contexts[s.DRAG]);_(P,p&&!z?"motionBlur":void 0),H?s.drawCachedNodes(P,N.drag,l,L):s.drawCachedElements(P,N.drag,l,L),s.debug&&s.drawDebugPoints(P,N.drag),!n&&!p&&(d[s.DRAG]=!1)}if(s.showFps||!r&&d[s.SELECT_BOX]&&!n){var P=e||u.contexts[s.SELECT_BOX];if(_(P),s.selection[4]==1&&(s.hoverData.selecting||s.touchData.selecting)){var w=s.cy.zoom(),ee=b.core("selection-box-border-width").value/w;P.lineWidth=ee,P.fillStyle="rgba("+b.core("selection-box-color").value[0]+","+b.core("selection-box-color").value[1]+","+b.core("selection-box-color").value[2]+","+b.core("selection-box-opacity").value+")",P.fillRect(s.selection[0],s.selection[1],s.selection[2]-s.selection[0],s.selection[3]-s.selection[1]),ee>0&&(P.strokeStyle="rgba("+b.core("selection-box-border-color").value[0]+","+b.core("selection-box-border-color").value[1]+","+b.core("selection-box-border-color").value[2]+","+b.core("selection-box-opacity").value+")",P.strokeRect(s.selection[0],s.selection[1],s.selection[2]-s.selection[0],s.selection[3]-s.selection[1]))}if(u.bgActivePosistion&&!s.hoverData.selecting){var w=s.cy.zoom(),J=u.bgActivePosistion;P.fillStyle="rgba("+b.core("active-bg-color").value[0]+","+b.core("active-bg-color").value[1]+","+b.core("active-bg-color").value[2]+","+b.core("active-bg-opacity").value+")",P.beginPath(),P.arc(J.x,J.y,b.core("active-bg-size").pfValue/w,0,2*Math.PI),P.fill()}var X=s.lastRedrawTime;if(s.showFps&&X){X=Math.round(X);var ne=Math.round(1e3/X);P.setTransform(1,0,0,1,0,0),P.fillStyle="rgba(255, 0, 0, 0.75)",P.strokeStyle="rgba(255, 0, 0, 0.75)",P.lineWidth=1,P.fillText("1 frame = "+X+" ms = "+ne+" fps",0,20);var Y=60;P.strokeRect(0,30,250,20),P.fillRect(0,30,250*Math.min(ne/Y,1),20)}n||(d[s.SELECT_BOX]=!1)}if(p&&v!==1){var A=u.contexts[s.NODE],K=s.data.bufferCanvases[s.MOTIONBLUR_BUFFER_NODE],W=u.contexts[s.DRAG],oe=s.data.bufferCanvases[s.MOTIONBLUR_BUFFER_DRAG],he=function(se,ue,pe){se.setTransform(1,0,0,1,0,0),pe||!m?se.clearRect(0,0,s.canvasWidth,s.canvasHeight):D(se,0,0,s.canvasWidth,s.canvasHeight);var de=v;se.drawImage(ue,0,0,s.canvasWidth*de,s.canvasHeight*de,0,0,s.canvasWidth,s.canvasHeight)};(d[s.NODE]||$[s.NODE])&&(he(A,K,$[s.NODE]),d[s.NODE]=!1),(d[s.DRAG]||$[s.DRAG])&&(he(W,oe,$[s.DRAG]),d[s.DRAG]=!1)}s.prevViewport=x,s.clearingMotionBlur&&(s.clearingMotionBlur=!1,s.motionBlurCleared=!0,s.motionBlur=!0),p&&(s.motionBlurTimeout=setTimeout(function(){s.motionBlurTimeout=null,s.clearedForMotionBlur[s.NODE]=!1,s.clearedForMotionBlur[s.DRAG]=!1,s.motionBlur=!1,s.clearingMotionBlur=!f,s.mbFrames=0,d[s.NODE]=!0,d[s.DRAG]=!0,s.redraw()},d3)),e||c.emit("render")};var gr={};gr.drawPolygonPath=function(t,e,n,r,a,i){var s=r/2,l=a/2;t.beginPath&&t.beginPath(),t.moveTo(e+s*i[0],n+l*i[1]);for(var c=1;c<i.length/2;c++)t.lineTo(e+s*i[c*2],n+l*i[c*2+1]);t.closePath()},gr.drawRoundPolygonPath=function(t,e,n,r,a,i,s){s.forEach(function(l){return av(t,l)}),t.closePath()},gr.drawRoundRectanglePath=function(t,e,n,r,a,i){var s=r/2,l=a/2,c=i==="auto"?Rr(r,a):Math.min(i,l,s);t.beginPath&&t.beginPath(),t.moveTo(e,n-l),t.arcTo(e+s,n-l,e+s,n,c),t.arcTo(e+s,n+l,e,n+l,c),t.arcTo(e-s,n+l,e-s,n,c),t.arcTo(e-s,n-l,e,n-l,c),t.lineTo(e,n-l),t.closePath()},gr.drawBottomRoundRectanglePath=function(t,e,n,r,a,i){var s=r/2,l=a/2,c=i==="auto"?Rr(r,a):i;t.beginPath&&t.beginPath(),t.moveTo(e,n-l),t.lineTo(e+s,n-l),t.lineTo(e+s,n),t.arcTo(e+s,n+l,e,n+l,c),t.arcTo(e-s,n+l,e-s,n,c),t.lineTo(e-s,n-l),t.lineTo(e,n-l),t.closePath()},gr.drawCutRectanglePath=function(t,e,n,r,a,i,s){var l=r/2,c=a/2,u=s==="auto"?Jl():s;t.beginPath&&t.beginPath(),t.moveTo(e-l+u,n-c),t.lineTo(e+l-u,n-c),t.lineTo(e+l,n-c+u),t.lineTo(e+l,n+c-u),t.lineTo(e+l-u,n+c),t.lineTo(e-l+u,n+c),t.lineTo(e-l,n+c-u),t.lineTo(e-l,n-c+u),t.closePath()},gr.drawBarrelPath=function(t,e,n,r,a){var i=r/2,s=a/2,l=e-i,c=e+i,u=n-s,d=n+s,f=ec(r,a),p=f.widthOffset,v=f.heightOffset,h=f.ctrlPtOffsetPct*p;t.beginPath&&t.beginPath(),t.moveTo(l,u+v),t.lineTo(l,d-v),t.quadraticCurveTo(l+h,d,l+p,d),t.lineTo(c-p,d),t.quadraticCurveTo(c-h,d,c,d-v),t.lineTo(c,u+v),t.quadraticCurveTo(c-h,u,c-p,u),t.lineTo(l+p,u),t.quadraticCurveTo(l+h,u,l,u+v),t.closePath()};for(var Sv=Math.sin(0),Tv=Math.cos(0),Mc={},Fc={},Bv=Math.PI/40,$a=0*Math.PI;$a<2*Math.PI;$a+=Bv)Mc[$a]=Math.sin($a),Fc[$a]=Math.cos($a);gr.drawEllipsePath=function(t,e,n,r,a){if(t.beginPath&&t.beginPath(),t.ellipse)t.ellipse(e,n,r/2,a/2,0,0,2*Math.PI);else for(var i,s,l=r/2,c=a/2,u=0*Math.PI;u<2*Math.PI;u+=Bv)i=e-l*Mc[u]*Sv+l*Fc[u]*Tv,s=n+c*Fc[u]*Sv+c*Mc[u]*Tv,u===0?t.moveTo(i,s):t.lineTo(i,s);t.closePath()};var Wi={};Wi.createBuffer=function(t,e){var n=document.createElement("canvas");return n.width=t,n.height=e,[n,n.getContext("2d")]},Wi.bufferCanvasImage=function(t){var e=this.cy,n=e.mutableElements(),r=n.boundingBox(),a=this.findContainerClientCoords(),i=t.full?Math.ceil(r.w):a[2],s=t.full?Math.ceil(r.h):a[3],l=le(t.maxWidth)||le(t.maxHeight),c=this.getPixelRatio(),u=1;if(t.scale!==void 0)i*=t.scale,s*=t.scale,u=t.scale;else if(l){var d=1/0,f=1/0;le(t.maxWidth)&&(d=u*t.maxWidth/i),le(t.maxHeight)&&(f=u*t.maxHeight/s),u=Math.min(d,f),i*=u,s*=u}l||(i*=c,s*=c,u*=c);var p=document.createElement("canvas");p.width=i,p.height=s,p.style.width=i+"px",p.style.height=s+"px";var v=p.getContext("2d");if(i>0&&s>0){v.clearRect(0,0,i,s),v.globalCompositeOperation="source-over";var h=this.getCachedZSortedEles();if(t.full)v.translate(-r.x1*u,-r.y1*u),v.scale(u,u),this.drawElements(v,h),v.scale(1/u,1/u),v.translate(r.x1*u,r.y1*u);else{var g=e.pan(),y={x:g.x*u,y:g.y*u};u*=e.zoom(),v.translate(y.x,y.y),v.scale(u,u),this.drawElements(v,h),v.scale(1/u,1/u),v.translate(-y.x,-y.y)}t.bg&&(v.globalCompositeOperation="destination-over",v.fillStyle=t.bg,v.rect(0,0,i,s),v.fill())}return p};function f3(t,e){for(var n=atob(t),r=new ArrayBuffer(n.length),a=new Uint8Array(r),i=0;i<n.length;i++)a[i]=n.charCodeAt(i);return new Blob([r],{type:e})}function Nv(t){var e=t.indexOf(",");return t.substr(e+1)}function Dv(t,e,n){var r=function(){return e.toDataURL(n,t.quality)};switch(t.output){case"blob-promise":return new xa(function(a,i){try{e.toBlob(function(s){s!=null?a(s):i(new Error("`canvas.toBlob()` sent a null value in its callback"))},n,t.quality)}catch(s){i(s)}});case"blob":return f3(Nv(r()),n);case"base64":return Nv(r());case"base64uri":default:return r()}}Wi.png=function(t){return Dv(t,this.bufferCanvasImage(t),"image/png")},Wi.jpg=function(t){return Dv(t,this.bufferCanvasImage(t),"image/jpeg")};var _v={};_v.nodeShapeImpl=function(t,e,n,r,a,i,s,l){switch(t){case"ellipse":return this.drawEllipsePath(e,n,r,a,i);case"polygon":return this.drawPolygonPath(e,n,r,a,i,s);case"round-polygon":return this.drawRoundPolygonPath(e,n,r,a,i,s,l);case"roundrectangle":case"round-rectangle":return this.drawRoundRectanglePath(e,n,r,a,i,l);case"cutrectangle":case"cut-rectangle":return this.drawCutRectanglePath(e,n,r,a,i,s,l);case"bottomroundrectangle":case"bottom-round-rectangle":return this.drawBottomRoundRectanglePath(e,n,r,a,i,l);case"barrel":return this.drawBarrelPath(e,n,r,a,i)}};var h3=Pv,Me=Pv.prototype;Me.CANVAS_LAYERS=3,Me.SELECT_BOX=0,Me.DRAG=1,Me.NODE=2,Me.BUFFER_COUNT=3,Me.TEXTURE_BUFFER=0,Me.MOTIONBLUR_BUFFER_NODE=1,Me.MOTIONBLUR_BUFFER_DRAG=2;function Pv(t){var e=this,n=e.cy.window(),r=n.document;e.data={canvases:new Array(Me.CANVAS_LAYERS),contexts:new Array(Me.CANVAS_LAYERS),canvasNeedsRedraw:new Array(Me.CANVAS_LAYERS),bufferCanvases:new Array(Me.BUFFER_COUNT),bufferContexts:new Array(Me.CANVAS_LAYERS)};var a="-webkit-tap-highlight-color",i="rgba(0,0,0,0)";e.data.canvasContainer=r.createElement("div");var s=e.data.canvasContainer.style;e.data.canvasContainer.style[a]=i,s.position="relative",s.zIndex="0",s.overflow="hidden";var l=t.cy.container();l.appendChild(e.data.canvasContainer),l.style[a]=i;var c={"-webkit-user-select":"none","-moz-user-select":"-moz-none","user-select":"none","-webkit-tap-highlight-color":"rgba(0,0,0,0)","outline-style":"none"};eS()&&(c["-ms-touch-action"]="none",c["touch-action"]="none");for(var u=0;u<Me.CANVAS_LAYERS;u++){var d=e.data.canvases[u]=r.createElement("canvas");e.data.contexts[u]=d.getContext("2d"),Object.keys(c).forEach(function(Y){d.style[Y]=c[Y]}),d.style.position="absolute",d.setAttribute("data-id","layer"+u),d.style.zIndex=String(Me.CANVAS_LAYERS-u),e.data.canvasContainer.appendChild(d),e.data.canvasNeedsRedraw[u]=!1}e.data.topCanvas=e.data.canvases[0],e.data.canvases[Me.NODE].setAttribute("data-id","layer"+Me.NODE+"-node"),e.data.canvases[Me.SELECT_BOX].setAttribute("data-id","layer"+Me.SELECT_BOX+"-selectbox"),e.data.canvases[Me.DRAG].setAttribute("data-id","layer"+Me.DRAG+"-drag");for(var u=0;u<Me.BUFFER_COUNT;u++)e.data.bufferCanvases[u]=r.createElement("canvas"),e.data.bufferContexts[u]=e.data.bufferCanvases[u].getContext("2d"),e.data.bufferCanvases[u].style.position="absolute",e.data.bufferCanvases[u].setAttribute("data-id","buffer"+u),e.data.bufferCanvases[u].style.zIndex=String(-u-1),e.data.bufferCanvases[u].style.visibility="hidden";e.pathsEnabled=!0;var f=zt(),p=function(A){return{x:(A.x1+A.x2)/2,y:(A.y1+A.y2)/2}},v=function(A){return{x:-A.w/2,y:-A.h/2}},h=function(A){var K=A[0]._private,W=K.oldBackgroundTimestamp===K.backgroundTimestamp;return!W},g=function(A){return A[0]._private.nodeKey},y=function(A){return A[0]._private.labelStyleKey},m=function(A){return A[0]._private.sourceLabelStyleKey},b=function(A){return A[0]._private.targetLabelStyleKey},w=function(A,K,W,oe,he){return e.drawElement(A,K,W,!1,!1,he)},C=function(A,K,W,oe,he){return e.drawElementText(A,K,W,oe,"main",he)},k=function(A,K,W,oe,he){return e.drawElementText(A,K,W,oe,"source",he)},E=function(A,K,W,oe,he){return e.drawElementText(A,K,W,oe,"target",he)},x=function(A){return A.boundingBox(),A[0]._private.bodyBounds},B=function(A){return A.boundingBox(),A[0]._private.labelBounds.main||f},S=function(A){return A.boundingBox(),A[0]._private.labelBounds.source||f},N=function(A){return A.boundingBox(),A[0]._private.labelBounds.target||f},D=function(A,K){return K},_=function(A){return p(x(A))},I=function(A,K,W){var oe=A?A+"-":"";return{x:K.x+W.pstyle(oe+"text-margin-x").pfValue,y:K.y+W.pstyle(oe+"text-margin-y").pfValue}},P=function(A,K,W){var oe=A[0]._private.rscratch;return{x:oe[K],y:oe[W]}},F=function(A){return I("",P(A,"labelX","labelY"),A)},O=function(A){return I("source",P(A,"sourceLabelX","sourceLabelY"),A)},M=function(A){return I("target",P(A,"targetLabelX","targetLabelY"),A)},L=function(A){return v(x(A))},V=function(A){return v(S(A))},H=function(A){return v(N(A))},$=function(A){var K=B(A),W=v(B(A));if(A.isNode()){switch(A.pstyle("text-halign").value){case"left":W.x=-K.w;break;case"right":W.x=0;break}switch(A.pstyle("text-valign").value){case"top":W.y=-K.h;break;case"bottom":W.y=0;break}}return W},z=e.data.eleTxrCache=new Ui(e,{getKey:g,doesEleInvalidateKey:h,drawElement:w,getBoundingBox:x,getRotationPoint:_,getRotationOffset:L,allowEdgeTxrCaching:!1,allowParentTxrCaching:!1}),j=e.data.lblTxrCache=new Ui(e,{getKey:y,drawElement:C,getBoundingBox:B,getRotationPoint:F,getRotationOffset:$,isVisible:D}),ee=e.data.slbTxrCache=new Ui(e,{getKey:m,drawElement:k,getBoundingBox:S,getRotationPoint:O,getRotationOffset:V,isVisible:D}),J=e.data.tlbTxrCache=new Ui(e,{getKey:b,drawElement:E,getBoundingBox:N,getRotationPoint:M,getRotationOffset:H,isVisible:D}),X=e.data.lyrTxrCache=new yv(e);e.onUpdateEleCalcs(function(A,K){z.invalidateElements(K),j.invalidateElements(K),ee.invalidateElements(K),J.invalidateElements(K),X.invalidateElements(K);for(var W=0;W<K.length;W++){var oe=K[W]._private;oe.oldBackgroundTimestamp=oe.backgroundTimestamp}});var ne=function(A){for(var K=0;K<A.length;K++)X.enqueueElementRefinement(A[K].ele)};z.onDequeue(ne),j.onDequeue(ne),ee.onDequeue(ne),J.onDequeue(ne)}Me.redrawHint=function(t,e){var n=this;switch(t){case"eles":n.data.canvasNeedsRedraw[Me.NODE]=e;break;case"drag":n.data.canvasNeedsRedraw[Me.DRAG]=e;break;case"select":n.data.canvasNeedsRedraw[Me.SELECT_BOX]=e;break}};var p3=typeof Path2D<"u";Me.path2dEnabled=function(t){if(t===void 0)return this.pathsEnabled;this.pathsEnabled=!!t},Me.usePaths=function(){return p3&&this.pathsEnabled},Me.setImgSmoothing=function(t,e){t.imageSmoothingEnabled!=null?t.imageSmoothingEnabled=e:(t.webkitImageSmoothingEnabled=e,t.mozImageSmoothingEnabled=e,t.msImageSmoothingEnabled=e)},Me.getImgSmoothing=function(t){return t.imageSmoothingEnabled!=null?t.imageSmoothingEnabled:t.webkitImageSmoothingEnabled||t.mozImageSmoothingEnabled||t.msImageSmoothingEnabled},Me.makeOffscreenCanvas=function(t,e){var n;if((typeof OffscreenCanvas>"u"?"undefined":ot(OffscreenCanvas))!=="undefined")n=new OffscreenCanvas(t,e);else{var r=this.cy.window(),a=r.document;n=a.createElement("canvas"),n.width=t,n.height=e}return n},[wv,Nn,qn,Ic,Wr,Ra,Gt,gr,Wi,_v].forEach(function(t){xe(Me,t)});var v3=[{name:"null",impl:Yp},{name:"base",impl:pv},{name:"canvas",impl:h3}],g3=[{type:"layout",extensions:kD},{type:"renderer",extensions:v3}],Ov={},Iv={};function Lv(t,e,n){var r=n,a=function(B){Ae("Can not register `"+e+"` for `"+t+"` since `"+B+"` already exists in the prototype and can not be overridden")};if(t==="core"){if(Hi.prototype[e])return a(e);Hi.prototype[e]=n}else if(t==="collection"){if(kt.prototype[e])return a(e);kt.prototype[e]=n}else if(t==="layout"){for(var i=function(B){this.options=B,n.call(this,B),Oe(this._private)||(this._private={}),this._private.cy=B.cy,this._private.listeners=[],this.createEmitter()},s=i.prototype=Object.create(n.prototype),l=[],c=0;c<l.length;c++){var u=l[c];s[u]=s[u]||function(){return this}}s.start&&!s.run?s.run=function(){return this.start(),this}:!s.start&&s.run&&(s.start=function(){return this.run(),this});var d=n.prototype.stop;s.stop=function(){var x=this.options;if(x&&x.animate){var B=this.animations;if(B)for(var S=0;S<B.length;S++)B[S].stop()}return d?d.call(this):this.emit("layoutstop"),this},s.destroy||(s.destroy=function(){return this}),s.cy=function(){return this._private.cy};var f=function(B){return B._private.cy},p={addEventFields:function(B,S){S.layout=B,S.cy=f(B),S.target=B},bubble:function(){return!0},parent:function(B){return f(B)}};xe(s,{createEmitter:function(){return this._private.emitter=new os(p,this),this},emitter:function(){return this._private.emitter},on:function(B,S){return this.emitter().on(B,S),this},one:function(B,S){return this.emitter().one(B,S),this},once:function(B,S){return this.emitter().one(B,S),this},removeListener:function(B,S){return this.emitter().removeListener(B,S),this},removeAllListeners:function(){return this.emitter().removeAllListeners(),this},emit:function(B,S){return this.emitter().emit(B,S),this}}),Ve.eventAliasesOn(s),r=i}else if(t==="renderer"&&e!=="null"&&e!=="base"){var v=Mv("renderer","base"),h=v.prototype,g=n,y=n.prototype,m=function(){v.apply(this,arguments),g.apply(this,arguments)},b=m.prototype;for(var w in h){var C=h[w],k=y[w]!=null;if(k)return a(w);b[w]=C}for(var E in y)b[E]=y[E];h.clientFunctions.forEach(function(x){b[x]=b[x]||function(){Ze("Renderer does not implement `renderer."+x+"()` on its prototype")}}),r=m}else if(t==="__proto__"||t==="constructor"||t==="prototype")return Ze(t+" is an illegal type to be registered, possibly lead to prototype pollutions");return Zf({map:Ov,keys:[t,e],value:r})}function Mv(t,e){return Xf({map:Ov,keys:[t,e]})}function m3(t,e,n,r,a){return Zf({map:Iv,keys:[t,e,n,r],value:a})}function y3(t,e,n,r){return Xf({map:Iv,keys:[t,e,n,r]})}var Ac=function(){if(arguments.length===2)return Mv.apply(null,arguments);if(arguments.length===3)return Lv.apply(null,arguments);if(arguments.length===4)return y3.apply(null,arguments);if(arguments.length===5)return m3.apply(null,arguments);Ze("Invalid extension access syntax")};Hi.prototype.extension=Ac,g3.forEach(function(t){t.extensions.forEach(function(e){Lv(t.type,e.name,e.impl)})});var Fv=function t(){if(!(this instanceof t))return new t;this.length=0},jr=Fv.prototype;jr.instanceString=function(){return"stylesheet"},jr.selector=function(t){var e=this.length++;return this[e]={selector:t,properties:[]},this},jr.css=function(t,e){var n=this.length-1;if(be(t))this[n].properties.push({name:t,value:e});else if(Oe(t))for(var r=t,a=Object.keys(r),i=0;i<a.length;i++){var s=a[i],l=r[s];if(l!=null){var c=Nt.properties[s]||Nt.properties[Lo(s)];if(c!=null){var u=c.name,d=l;this[n].properties.push({name:u,value:d})}}}return this},jr.style=jr.css,jr.generateStyle=function(t){var e=new Nt(t);return this.appendToStyle(e)},jr.appendToStyle=function(t){for(var e=0;e<this.length;e++){var n=this[e],r=n.selector,a=n.properties;t.selector(r);for(var i=0;i<a.length;i++){var s=a[i];t.css(s.name,s.value)}}return t};var b3="3.30.2",Yr=function(e){if(e===void 0&&(e={}),Oe(e))return new Hi(e);if(be(e))return Ac.apply(Ac,arguments)};Yr.use=function(t){var e=Array.prototype.slice.call(arguments,1);return e.unshift(Yr),t.apply(null,e),this},Yr.warnings=function(t){return uh(t)},Yr.version=b3,Yr.stylesheet=Yr.Stylesheet=Fv;let w3=class extends EventTarget{constructor(n,r){super();mn(this,"cyg",null);mn(this,"nodes",[]);mn(this,"edges",[]);mn(this,"axons",[]);mn(this,"dendrites",[]);mn(this,"somas",[]);mn(this,"labelCache",new Map);mn(this,"graphCanvas",null);this.labelCache=n,this.graphCanvas=r}async addConnectivity(n){var r;if(this.axons=n.axons.map(a=>JSON.stringify(a)),this.dendrites=n.dendrites.map(a=>JSON.stringify(a)),(r=n.somas)!=null&&r.length&&(this.somas=n.somas.map(a=>JSON.stringify(a))),n.connectivity.length)for(const a of n.connectivity){const i=await this.graphNode(a[0]),s=await this.graphNode(a[1]);this.nodes.push(i),this.nodes.push(s),this.edges.push({id:`${i.id}_${s.id}`,source:i.id,target:s.id})}else this.nodes.push({id:"MISSING",label:"NO PATHS"})}showConnectivity(n){this.cyg=new E3(this,n),this.cyg.on("tap-node",r=>{const a=new CustomEvent("tap-node",{detail:r.detail});this.dispatchEvent(a)})}selectConnectivity(n){var r;if((r=this.cyg)!=null&&r.cy){let a="";this.cyg.cy.elements().forEach(i=>{const s=i.data("label"),l=Vc(s);x3(n,l)&&(a=i.id())}),a&&this.cyg.cy.$id(a).select()}}clearConnectivity(){var n;(n=this.cyg)!=null&&n.cy&&(this.cyg.cy.remove(),this.cyg.cy=null)}reset(){var n;(n=this.cyg)!=null&&n.cy&&this.cyg.cy.reset()}zoom(n){var r;if((r=this.cyg)!=null&&r.cy){const a=this.cyg.cy.zoom(),i=this.cyg.cy.width(),s=this.cyg.cy.height(),l={x:i/2,y:s/2};this.cyg.cy.zoom({level:a+n,renderedPosition:l})}}enableZoom(n){var r;(r=this.cyg)!=null&&r.cy&&this.cyg.cy.userZoomingEnabled(n)}get elements(){return[...this.nodes.map(n=>({data:n})),...this.edges.map(n=>({data:n}))]}get roots(){return[...this.dendrites,...this.somas]}async graphNode(n){const r=JSON.stringify(n),a=[n[0],...n[1]],i=[];for(const l of a){const c=this.labelCache.has(l)?this.labelCache.get(l):"";i.push(c)}a.push(...i);const s={id:r,label:a.join(`
45
45
  `)};return this.axons.includes(r)?this.dendrites.includes(r)||this.somas.includes(r)?s["both-a-d"]=!0:s.axon=!0:(this.dendrites.includes(r)||this.somas.includes(r))&&(s.dendrite=!0),s}on(n,r){this.addEventListener(n,r)}};const C3=[{selector:"node",style:{label:function(t){return k3(t.data("label"))},"background-color":"transparent","background-opacity":"0","text-valign":"center","text-wrap":"wrap",width:"80px",height:"80px","text-max-width":"80px","font-size":"6px",shape:"round-rectangle","border-width":1,"border-style":"solid","border-color":"gray"}},{selector:"node[axon]",style:{shape:"round-diamond",width:"100px",height:"100px"}},{selector:"node[dendrite]",style:{shape:"ellipse"}},{selector:"node[both-a-d]",style:{shape:"round-rectangle"}},{selector:"edge",style:{width:1,"line-color":"dimgray","target-arrow-color":"dimgray","target-arrow-shape":"triangle","curve-style":"bezier"}},{selector:"node.active",style:{"border-color":"#8300bf","background-color":"#f3ecf6","background-opacity":.75}}];function k3(t){const e=t.split(`
46
46
  `),n=e.length/2,r=e.slice(n);return Av(r.join(`
47
47
  `))}function Av(t){return t.split(`
48
48
  `).map(e=>e&&e[0]>="a"&&e[0]<="z"?e.charAt(0).toUpperCase()+e.slice(1):e).join(`
49
49
  `)}function Vc(t){const e=t?t.split(`
50
50
  `):[],n=[];for(let r=0;r<e.length/2;r++)n.push({id:e[r],label:e[r+e.length/2]});return n}function x3(t,e){t.sort((n,r)=>n.id<r.id?-1:n.id>r.id?1:0),e.sort((n,r)=>n.id<r.id?-1:n.id>r.id?1:0);for(let n=0;n<t.length;n++)if(JSON.stringify(t[n])!==JSON.stringify(e[n]))return!1;return!0}class E3 extends EventTarget{constructor(n,r){var a;super();mn(this,"cy");mn(this,"tooltip");this.cy=Yr({container:r,elements:n.elements,layout:{name:"breadthfirst",circle:!1,roots:n.roots},directed:!0,style:C3,minZoom:.1,maxZoom:10,wheelSensitivity:.4}).on("mouseover","node",this.overNode.bind(this)).on("mouseout","node",this.exitNode.bind(this)).on("position","node",this.moveNode.bind(this)),this.tooltip=document.createElement("div"),this.tooltip.className="cy-graph-tooltip",this.tooltip.hidden=!0,(a=r==null?void 0:r.lastChild)==null||a.appendChild(this.tooltip)}remove(){this.cy&&this.cy.destroy()}checkRightBoundary(n){var r;n+this.tooltip.offsetWidth>=((r=this.tooltip.parentElement)==null?void 0:r.offsetWidth)&&(this.tooltip.style.left=`${n-this.tooltip.offsetWidth}px`)}overNode(n){const a=n.target.data(),{label:i}=a,l=Vc(i).map(c=>c.label+" ("+c.id+")");this.tooltip.innerText=Av(l.join(`
51
- `)),this.tooltip.style.left=`${n.renderedPosition.x}px`,this.tooltip.style.top=`${n.renderedPosition.y}px`,this.tooltip.style.maxWidth="240px",this.tooltip.style.zIndex=2,this.tooltip.hidden=!1,this.checkRightBoundary(n.renderedPosition.x),this.tapNode(n,!0)}moveNode(n){const r=n.target;this.tooltip.style.left=`${r.renderedPosition().x}px`,this.tooltip.style.top=`${r.renderedPosition().y}px`,this.checkRightBoundary(r.renderedPosition().x)}exitNode(n){this.tooltip.hidden=!0,this.tapNode(n,!1)}tapNode(n,r){const a=n.target,i=a.data();let{label:s}=i;r?a.addClass("active"):(a.removeClass("active"),s="",setTimeout(()=>{a.unselect()}));const l=Vc(s),c=new CustomEvent("tap-node",{detail:l});this.dispatchEvent(c)}on(n,r){this.addEventListener(n,r)}}const S3=t=>new Promise(e=>setTimeout(e,t)),T3=1.3,B3=24*60*60*1e3,N3="Reset position",Vv="Lock zoom",D3="Unlock zoom",_3="Zoom in",P3="Zoom out",Rv=.25,O3="#8300bf",I3=3e3,L3={name:"ConnectivityGraph",props:{entry:{type:String,default:""},mapServer:{type:String,default:""},selectedConnectivityData:{type:Array,default:[]}},data:function(){return{loading:!0,connectivityGraph:null,selectedSource:"",pathList:[],schemaVersion:"",knowledgeByPath:new Map,labelledTerms:new Set,labelCache:new Map,resetLabel:N3,zoomLockLabel:Vv,zoomInLabel:_3,zoomOutLabel:P3,iconColor:O3,zoomEnabled:!1,connectivityError:null,timeoutID:void 0,connectivityGraphContainer:null}},mounted(){this.updateTooltipContainer(),this.refreshCache(),this.loadCacheData(),this.run().then(t=>{this.showGraph(this.entry)})},methods:{updateTooltipContainer:function(){this.connectivityGraphContainer=this.$refs.connectivityGraphRef},loadCacheData:function(){const t=sessionStorage.getItem("connectivity-graph-source"),e=sessionStorage.getItem("connectivity-graph-labels"),n=sessionStorage.getItem("connectivity-graph-pathlist"),r=sessionStorage.getItem("connectivity-graph-schema-version");if(t&&(this.selectedSource=t),n&&(this.pathList=JSON.parse(n)),e){const a=JSON.parse(e);this.labelCache=new Map(Object.entries(a))}r&&(this.schemaVersion=r)},removeAllCacheData:function(){["connectivity-graph-expiry","connectivity-graph-source","connectivity-graph-labels","connectivity-graph-pathlist","connectivity-graph-schema-version"].forEach(e=>{sessionStorage.removeItem(e)})},refreshCache:function(){const t=sessionStorage.getItem("connectivity-graph-expiry");new Date().getTime()>t&&this.removeAllCacheData()},updateCacheExpiry:function(){const e=new Date().getTime()+B3;sessionStorage.setItem("connectivity-graph-expiry",e)},run:async function(){if(this.schemaVersion||(this.schemaVersion=await this.getSchemaVersion(),sessionStorage.setItem("connectivity-graph-schema-version",this.schemaVersion),this.updateCacheExpiry()),this.schemaVersion<T3){console.warn("No Server!");return}this.showSpinner(),this.selectedSource||(this.selectedSource=await this.setSourceList(),sessionStorage.setItem("connectivity-graph-source",this.selectedSource),this.updateCacheExpiry()),await this.setPathList(this.selectedSource),this.hideSpinner()},showGraph:async function(t){const e=this.$refs.graphCanvas;this.showSpinner(),this.connectivityGraph=new w3(this.labelCache,e),await this.connectivityGraph.addConnectivity(this.knowledgeByPath.get(t)),this.hideSpinner(),this.connectivityGraph.showConnectivity(e),this.selectedConnectivityData.length&&this.connectivityGraph.selectConnectivity(this.selectedConnectivityData),this.connectivityGraph.on("tap-node",n=>{const r=n.detail;this.$emit("tap-node",r)})},query:async function(t,e){const n=`${this.mapServer}knowledge/query/`,r={sql:t,params:e};try{const a=await fetch(n,{method:"POST",headers:{Accept:"application/json; charset=utf-8","Cache-Control":"no-store","Content-Type":"application/json"},body:JSON.stringify(r)});if(!a.ok)throw new Error(`Cannot access ${n}`);return await a.json()}catch{return{values:[]}}},setSourceList:async function(){const t=await this.getJsonData(`${this.mapServer}knowledge/sources`),e=t?t.sources||[]:[];let n="";for(const r of e)r&&n===""&&(n=r);return n},loadPathData:async function(t){const e=await this.query(`select entity, knowledge from knowledge
51
+ `)),this.tooltip.style.left=`${n.renderedPosition.x}px`,this.tooltip.style.top=`${n.renderedPosition.y}px`,this.tooltip.style.maxWidth="240px",this.tooltip.style.zIndex=2,this.tooltip.hidden=!1,this.checkRightBoundary(n.renderedPosition.x),this.tapNode(n,!0)}moveNode(n){const r=n.target;this.tooltip.style.left=`${r.renderedPosition().x}px`,this.tooltip.style.top=`${r.renderedPosition().y}px`,this.checkRightBoundary(r.renderedPosition().x)}exitNode(n){this.tooltip.hidden=!0,this.tapNode(n,!1)}tapNode(n,r){const a=n.target,i=a.data();let{label:s}=i;r?a.addClass("active"):(a.removeClass("active"),s="",setTimeout(()=>{a.unselect()}));const l=Vc(s),c=new CustomEvent("tap-node",{detail:l});this.dispatchEvent(c)}on(n,r){this.addEventListener(n,r)}}const S3=t=>new Promise(e=>setTimeout(e,t)),T3=1.3,B3=24*60*60*1e3,N3="Reset position",Vv="Lock zoom",D3="Unlock zoom",_3="Zoom in",P3="Zoom out",Rv=.25,O3="#8300bf",I3=3e3,L3={name:"ConnectivityGraph",props:{entry:{type:String,default:""},mapServer:{type:String,default:""},sckanVersion:{type:String,default:""},selectedConnectivityData:{type:Array,default:[]}},data:function(){return{loading:!0,connectivityGraph:null,selectedSource:"",pathList:[],schemaVersion:"",knowledgeByPath:new Map,labelledTerms:new Set,labelCache:new Map,resetLabel:N3,zoomLockLabel:Vv,zoomInLabel:_3,zoomOutLabel:P3,iconColor:O3,zoomEnabled:!1,connectivityError:null,timeoutID:void 0,connectivityGraphContainer:null}},mounted(){this.updateTooltipContainer(),this.refreshCache(),this.loadCacheData(),this.run().then(t=>{this.showGraph(this.entry)})},methods:{updateTooltipContainer:function(){this.connectivityGraphContainer=this.$refs.connectivityGraphRef},loadCacheData:function(){const t=sessionStorage.getItem("connectivity-graph-source"),e=sessionStorage.getItem("connectivity-graph-labels"),n=sessionStorage.getItem("connectivity-graph-pathlist"),r=sessionStorage.getItem("connectivity-graph-schema-version");if(t&&(this.selectedSource=t),this.sckanVersion&&(this.selectedSource=this.sckanVersion,sessionStorage.setItem("connectivity-graph-source",this.selectedSource),this.updateCacheExpiry()),n&&(this.pathList=JSON.parse(n)),e){const a=JSON.parse(e);this.labelCache=new Map(Object.entries(a))}r&&(this.schemaVersion=r)},isValidKnowledgeSource:function(){const t=sessionStorage.getItem("connectivity-graph-source");return!(this.sckanVersion&&this.sckanVersion!==t)},removeAllCacheData:function(){["connectivity-graph-expiry","connectivity-graph-source","connectivity-graph-labels","connectivity-graph-pathlist","connectivity-graph-schema-version"].forEach(e=>{sessionStorage.removeItem(e)})},refreshCache:function(){const t=sessionStorage.getItem("connectivity-graph-expiry"),e=new Date,n=this.isValidKnowledgeSource();(e.getTime()>t||!n)&&this.removeAllCacheData()},updateCacheExpiry:function(){const e=new Date().getTime()+B3;sessionStorage.setItem("connectivity-graph-expiry",e)},run:async function(){if(this.schemaVersion||(this.schemaVersion=await this.getSchemaVersion(),sessionStorage.setItem("connectivity-graph-schema-version",this.schemaVersion),this.updateCacheExpiry()),this.schemaVersion<T3){console.warn("No Server!");return}this.showSpinner(),this.selectedSource||(this.selectedSource=await this.setSourceList(),sessionStorage.setItem("connectivity-graph-source",this.selectedSource),this.updateCacheExpiry()),await this.setPathList(this.selectedSource),this.hideSpinner()},showGraph:async function(t){const e=this.$refs.graphCanvas;this.showSpinner(),this.connectivityGraph=new w3(this.labelCache,e),await this.connectivityGraph.addConnectivity(this.knowledgeByPath.get(t)),this.hideSpinner(),this.connectivityGraph.showConnectivity(e),this.selectedConnectivityData.length&&this.connectivityGraph.selectConnectivity(this.selectedConnectivityData),this.connectivityGraph.on("tap-node",n=>{const r=n.detail;this.$emit("tap-node",r)})},query:async function(t,e){const n=`${this.mapServer}knowledge/query/`,r={sql:t,params:e};try{const a=await fetch(n,{method:"POST",headers:{Accept:"application/json; charset=utf-8","Cache-Control":"no-store","Content-Type":"application/json"},body:JSON.stringify(r)});if(!a.ok)throw new Error(`Cannot access ${n}`);return await a.json()}catch{return{values:[]}}},setSourceList:async function(){const t=await this.getJsonData(`${this.mapServer}knowledge/sources`),e=t?t.sources||[]:[];let n="";for(const r of e)r&&n===""&&(n=r);return n},loadPathData:async function(t){const e=await this.query(`select entity, knowledge from knowledge
52
52
  where entity like 'ilxtr:%' and source=?
53
53
  order by entity`,[t]);return e?e.values:[]},setPathList:async function(t){this.pathList.length||(this.pathList=await this.loadPathData(t),sessionStorage.setItem("connectivity-graph-pathlist",JSON.stringify(this.pathList)),this.updateCacheExpiry()),this.knowledgeByPath.clear(),this.labelledTerms=new Set;for(const[e,n]of this.pathList){const r=JSON.parse(n);"connectivity"in r&&(this.knowledgeByPath.set(e,r),this.cacheLabels(r))}return this.labelCache.size||await this.getCachedTermLabels(),""},getSchemaVersion:async function(){const t=await this.getJsonData(`${this.mapServer}knowledge/schema-version`);return t&&+t.version||0},getJsonData:async function(t){try{const e=await fetch(t,{method:"GET",headers:{Accept:"application/json; charset=utf-8","Cache-Control":"no-store","Content-Type":"application/json"}});return e.ok||console.error(`Cannot access ${t}`),await e.json()}catch{return null}},getCachedTermLabels:async function(){if(this.labelledTerms.size){const t=await this.query(`select entity, knowledge from knowledge
54
54
  where entity in (?${", ?".repeat(this.labelledTerms.size-1)})
55
- order by source desc`,[...this.labelledTerms.values()]);let e=null;for(const[r,a]of t.values)if(r!==e){const i=JSON.parse(a);this.labelCache.set(r,i.label||r),e=r}const n=Object.fromEntries(this.labelCache);sessionStorage.setItem("connectivity-graph-labels",JSON.stringify(n)),this.updateCacheExpiry()}},cacheNodeLabels:function(t){for(const e of[t[0],...t[1]])this.labelledTerms.add(e)},cacheLabels:async function(t){for(const e of t.connectivity)this.cacheNodeLabels(e[0]),this.cacheNodeLabels(e[1])},showSpinner:function(){this.loading=!0},hideSpinner:function(){this.loading=!1},reset:function(){this.connectivityGraph.reset()},zoomIn:function(){this.connectivityGraph.zoom(Rv)},zoomOut:function(){this.connectivityGraph.zoom(-Rv)},toggleZoom:function(){this.zoomEnabled=!this.zoomEnabled,this.zoomLockLabel=this.zoomEnabled?D3:Vv,this.connectivityGraph.enableZoom(!this.zoomEnabled)},showErrorMessage:function(t){this.connectivityError={...t},this.timeoutID&&clearTimeout(this.timeoutID),this.timeoutID=setTimeout(()=>{this.connectivityError=null},I3)}}},M3={class:"connectivity-graph",ref:"connectivityGraphRef"},F3={ref:"graphCanvas",class:"graph-canvas"},A3={class:"control-panel control-panel-tools"},V3={class:"visually-hidden"},R3={class:"visually-hidden"},$3={class:"visually-hidden"},z3={class:"visually-hidden"},H3=o.createStaticVNode('<div class="control-panel control-panel-nodes" data-v-14856fe8><div class="node-key" data-v-14856fe8><div class="key-box-container" data-v-14856fe8><div class="key-box key-box-dendrite" data-v-14856fe8> Origin </div><div class="key-box key-box-node" data-v-14856fe8> Components </div><div class="key-box key-box-axon" data-v-14856fe8> Destination </div></div></div></div>',1),K3={key:0,class:"connectivity-graph-error"},q3={key:0};function U3(t,e,n,r,a,i){const s=U1,l=yt,c=ln,u=ci,d=fb,f=pb,p=wb,v=kb,h=Al;return o.withDirectives((o.openBlock(),o.createElementBlock("div",M3,[o.createElementVNode("div",F3,null,512),o.createElementVNode("div",A3,[o.createElementVNode("div",{class:o.normalizeClass(["tools",{"zoom-locked":t.zoomEnabled}])},[o.createVNode(u,{content:t.resetLabel,placement:"top",effect:"control-tooltip",teleported:!0,"append-to":t.connectivityGraphContainer},{default:o.withCtx(()=>[o.createVNode(c,{class:"control-button",size:"small",onClick:i.reset},{default:o.withCtx(()=>[o.createVNode(l,{color:"white"},{default:o.withCtx(()=>[o.createVNode(s)]),_:1}),o.createElementVNode("span",V3,o.toDisplayString(t.resetLabel),1)]),_:1},8,["onClick"])]),_:1},8,["content","append-to"]),o.createVNode(u,{content:t.zoomLockLabel,placement:"top",effect:"control-tooltip",teleported:!0,"append-to":t.connectivityGraphContainer},{default:o.withCtx(()=>[o.createVNode(c,{class:"control-button",size:"small",onClick:i.toggleZoom},{default:o.withCtx(()=>[o.createVNode(l,{color:"white"},{default:o.withCtx(()=>[t.zoomEnabled?(o.openBlock(),o.createBlock(d,{key:0})):(o.openBlock(),o.createBlock(f,{key:1}))]),_:1}),o.createElementVNode("span",R3,o.toDisplayString(t.zoomLockLabel),1)]),_:1},8,["onClick"])]),_:1},8,["content","append-to"]),o.createVNode(u,{content:t.zoomInLabel,placement:"left",effect:"control-tooltip",teleported:!0,"append-to":t.connectivityGraphContainer},{default:o.withCtx(()=>[o.createVNode(c,{class:"control-button",size:"small",onClick:i.zoomIn},{default:o.withCtx(()=>[o.createVNode(l,{color:"white"},{default:o.withCtx(()=>[o.createVNode(p)]),_:1}),o.createElementVNode("span",$3,o.toDisplayString(t.zoomInLabel),1)]),_:1},8,["onClick"])]),_:1},8,["content","append-to"]),o.createVNode(u,{content:t.zoomOutLabel,placement:"left",effect:"control-tooltip",teleported:!0,"append-to":t.connectivityGraphContainer},{default:o.withCtx(()=>[o.createVNode(c,{class:"control-button",size:"small",onClick:i.zoomOut},{default:o.withCtx(()=>[o.createVNode(l,{color:"white"},{default:o.withCtx(()=>[o.createVNode(v)]),_:1}),o.createElementVNode("span",z3,o.toDisplayString(t.zoomOutLabel),1)]),_:1},8,["onClick"])]),_:1},8,["content","append-to"])],2)]),H3,t.connectivityError?(o.openBlock(),o.createElementBlock("div",K3,[t.connectivityError.errorConnectivities?(o.openBlock(),o.createElementBlock("strong",q3,o.toDisplayString(t.connectivityError.errorConnectivities),1)):o.createCommentVNode("",!0),o.createTextVNode(" "+o.toDisplayString(t.connectivityError.errorMessage),1)])):o.createCommentVNode("",!0)])),[[h,t.loading]])}const G3=cn(L3,[["render",U3],["__scopeId","data-v-14856fe8"]]),W3=function(t){return t?t.charAt(0).toUpperCase()+t.slice(1):""},j3={name:"ConnectionDialog",props:{connectionEntry:{type:Object,default:{}},inDrawing:{type:Boolean,default:!1},connectionExist:{type:Boolean,default:!1}},data:function(){return{tooltipId:void 0}},methods:{shadowDisplay:function(t){return this.tooltipId===t?"always":"hover"},capitalize:function(t){return W3(t)},handleTooltip:function(t){this.tooltipId=this.tooltipId===t?void 0:t,this.$emit("featureTooltip",this.tooltipId)}}},Rc=t=>(o.pushScopeId("data-v-1ddab772"),t=t(),o.popScopeId(),t),Y3={class:"dialog-container"},Z3=Rc(()=>o.createElementVNode("span",{class:"dialog-title"},"Finalize drawing",-1)),X3=Rc(()=>o.createElementVNode("span",{class:"dialog-title"},"Visualize connection",-1)),Q3=Rc(()=>o.createElementVNode("b",null,[o.createElementVNode("span",null,"Related Features")],-1)),J3={class:"connection-label"};function e_(t,e,n,r,a,i){const s=ln,l=Bo,c=ui,u=Do,d=ak;return o.openBlock(),o.createElementBlock("div",Y3,[o.createVNode(l,null,{default:o.withCtx(()=>[o.createVNode(c,null,{default:o.withCtx(()=>[n.inDrawing?(o.openBlock(),o.createBlock(l,{key:0},{default:o.withCtx(()=>[Z3,o.createVNode(s,{type:"primary",plain:"",onClick:e[0]||(e[0]=f=>t.$emit("confirmDrawn",!0))},{default:o.withCtx(()=>[o.createTextVNode(" Confirm ")]),_:1}),o.createVNode(s,{type:"primary",plain:"",onClick:e[1]||(e[1]=f=>t.$emit("cancelDrawn",!0))},{default:o.withCtx(()=>[o.createTextVNode(" Cancel ")]),_:1})]),_:1})):(o.openBlock(),o.createBlock(l,{key:1},{default:o.withCtx(()=>[X3,o.createVNode(s,{type:"primary",plain:"",onClick:e[2]||(e[2]=f=>t.$emit("dialogDisplay",!1))},{default:o.withCtx(()=>[o.createTextVNode(" Close ")]),_:1})]),_:1}))]),_:1})]),_:1}),n.connectionExist?(o.openBlock(),o.createBlock(l,{key:0},{default:o.withCtx(()=>[o.createVNode(c,null,{default:o.withCtx(()=>[Q3,(o.openBlock(!0),o.createElementBlock(o.Fragment,null,o.renderList(n.connectionEntry,(f,p)=>(o.openBlock(),o.createBlock(l,{key:p},{default:o.withCtx(()=>[o.createVNode(d,{shadow:i.shadowDisplay(p),onClick:v=>i.handleTooltip(p)},{default:o.withCtx(()=>[o.createVNode(u,{trigger:"hover",disabled:f.label.length<20,width:200,content:i.capitalize(f.label)},{reference:o.withCtx(()=>[o.createElementVNode("span",J3,o.toDisplayString(i.capitalize(f.label)),1)]),_:2},1032,["disabled","content"])]),_:2},1032,["shadow","onClick"])]),_:2},1024))),128))]),_:1})]),_:1})):o.createCommentVNode("",!0)])}const t_=cn(j3,[["render",e_],["__scopeId","data-v-1ddab772"]]),$v=(t,e)=>{const n=t.__vccOpts||t;for(const[r,a]of e)n[r]=a;return n},n_=["xlink:href"],r_={__name:"SvgIcon",props:{icon:{type:String,required:!0},spin:{type:Boolean,default:!1}},setup(t){return(e,n)=>(o.openBlock(),o.createElementBlock("svg",{class:o.normalizeClass(["map-icon",{"map-icon-spin":t.spin}])},[o.createElementVNode("use",{"xlink:href":`#${t.icon}`},null,8,n_)],2))}},a_=$v(r_,[["__scopeId","data-v-e172d5ff"]]),zv=`<?xml version="1.0" encoding="UTF-8"?>
55
+ order by source desc`,[...this.labelledTerms.values()]);let e=null;for(const[r,a]of t.values)if(r!==e){const i=JSON.parse(a);this.labelCache.set(r,i.label||r),e=r}const n=Object.fromEntries(this.labelCache);sessionStorage.setItem("connectivity-graph-labels",JSON.stringify(n)),this.updateCacheExpiry()}},cacheNodeLabels:function(t){for(const e of[t[0],...t[1]])this.labelledTerms.add(e)},cacheLabels:async function(t){for(const e of t.connectivity)this.cacheNodeLabels(e[0]),this.cacheNodeLabels(e[1])},showSpinner:function(){this.loading=!0},hideSpinner:function(){this.loading=!1},reset:function(){this.connectivityGraph.reset()},zoomIn:function(){this.connectivityGraph.zoom(Rv)},zoomOut:function(){this.connectivityGraph.zoom(-Rv)},toggleZoom:function(){this.zoomEnabled=!this.zoomEnabled,this.zoomLockLabel=this.zoomEnabled?D3:Vv,this.connectivityGraph.enableZoom(!this.zoomEnabled)},showErrorMessage:function(t){this.connectivityError={...t},this.timeoutID&&clearTimeout(this.timeoutID),this.timeoutID=setTimeout(()=>{this.connectivityError=null},I3)}}},M3={class:"connectivity-graph",ref:"connectivityGraphRef"},F3={class:"sckan-version"},A3={ref:"graphCanvas",class:"graph-canvas"},V3={class:"control-panel control-panel-tools"},R3={class:"visually-hidden"},$3={class:"visually-hidden"},z3={class:"visually-hidden"},H3={class:"visually-hidden"},K3=o.createStaticVNode('<div class="control-panel control-panel-nodes" data-v-df553fbc><div class="node-key" data-v-df553fbc><div class="key-box-container" data-v-df553fbc><div class="key-box key-box-dendrite" data-v-df553fbc> Origin </div><div class="key-box key-box-node" data-v-df553fbc> Components </div><div class="key-box key-box-axon" data-v-df553fbc> Destination </div></div></div></div>',1),q3={key:0,class:"connectivity-graph-error"},U3={key:0};function G3(t,e,n,r,a,i){const s=U1,l=yt,c=ln,u=ci,d=fb,f=pb,p=wb,v=kb,h=Al;return o.withDirectives((o.openBlock(),o.createElementBlock("div",M3,[o.createElementVNode("div",F3," SCKAN Release: "+o.toDisplayString(this.selectedSource),1),o.createElementVNode("div",A3,null,512),o.createElementVNode("div",V3,[o.createElementVNode("div",{class:o.normalizeClass(["tools",{"zoom-locked":t.zoomEnabled}])},[o.createVNode(u,{content:t.resetLabel,placement:"top",effect:"control-tooltip",teleported:!0,"append-to":t.connectivityGraphContainer},{default:o.withCtx(()=>[o.createVNode(c,{class:"control-button",size:"small",onClick:i.reset},{default:o.withCtx(()=>[o.createVNode(l,{color:"white"},{default:o.withCtx(()=>[o.createVNode(s)]),_:1}),o.createElementVNode("span",R3,o.toDisplayString(t.resetLabel),1)]),_:1},8,["onClick"])]),_:1},8,["content","append-to"]),o.createVNode(u,{content:t.zoomLockLabel,placement:"top",effect:"control-tooltip",teleported:!0,"append-to":t.connectivityGraphContainer},{default:o.withCtx(()=>[o.createVNode(c,{class:"control-button",size:"small",onClick:i.toggleZoom},{default:o.withCtx(()=>[o.createVNode(l,{color:"white"},{default:o.withCtx(()=>[t.zoomEnabled?(o.openBlock(),o.createBlock(d,{key:0})):(o.openBlock(),o.createBlock(f,{key:1}))]),_:1}),o.createElementVNode("span",$3,o.toDisplayString(t.zoomLockLabel),1)]),_:1},8,["onClick"])]),_:1},8,["content","append-to"]),o.createVNode(u,{content:t.zoomInLabel,placement:"left",effect:"control-tooltip",teleported:!0,"append-to":t.connectivityGraphContainer},{default:o.withCtx(()=>[o.createVNode(c,{class:"control-button",size:"small",onClick:i.zoomIn},{default:o.withCtx(()=>[o.createVNode(l,{color:"white"},{default:o.withCtx(()=>[o.createVNode(p)]),_:1}),o.createElementVNode("span",z3,o.toDisplayString(t.zoomInLabel),1)]),_:1},8,["onClick"])]),_:1},8,["content","append-to"]),o.createVNode(u,{content:t.zoomOutLabel,placement:"left",effect:"control-tooltip",teleported:!0,"append-to":t.connectivityGraphContainer},{default:o.withCtx(()=>[o.createVNode(c,{class:"control-button",size:"small",onClick:i.zoomOut},{default:o.withCtx(()=>[o.createVNode(l,{color:"white"},{default:o.withCtx(()=>[o.createVNode(v)]),_:1}),o.createElementVNode("span",H3,o.toDisplayString(t.zoomOutLabel),1)]),_:1},8,["onClick"])]),_:1},8,["content","append-to"])],2)]),K3,t.connectivityError?(o.openBlock(),o.createElementBlock("div",q3,[t.connectivityError.errorConnectivities?(o.openBlock(),o.createElementBlock("strong",U3,o.toDisplayString(t.connectivityError.errorConnectivities),1)):o.createCommentVNode("",!0),o.createTextVNode(" "+o.toDisplayString(t.connectivityError.errorMessage),1)])):o.createCommentVNode("",!0)])),[[h,t.loading]])}const W3=cn(L3,[["render",G3],["__scopeId","data-v-df553fbc"]]),j3=function(t){return t?t.charAt(0).toUpperCase()+t.slice(1):""},Y3={name:"ConnectionDialog",props:{connectionEntry:{type:Object,default:{}},inDrawing:{type:Boolean,default:!1},connectionExist:{type:Boolean,default:!1}},data:function(){return{tooltipId:void 0}},methods:{shadowDisplay:function(t){return this.tooltipId===t?"always":"hover"},capitalize:function(t){return j3(t)},handleTooltip:function(t){this.tooltipId=this.tooltipId===t?void 0:t,this.$emit("featureTooltip",this.tooltipId)}}},Rc=t=>(o.pushScopeId("data-v-1ddab772"),t=t(),o.popScopeId(),t),Z3={class:"dialog-container"},X3=Rc(()=>o.createElementVNode("span",{class:"dialog-title"},"Finalize drawing",-1)),Q3=Rc(()=>o.createElementVNode("span",{class:"dialog-title"},"Visualize connection",-1)),J3=Rc(()=>o.createElementVNode("b",null,[o.createElementVNode("span",null,"Related Features")],-1)),e_={class:"connection-label"};function t_(t,e,n,r,a,i){const s=ln,l=Bo,c=ui,u=Do,d=ak;return o.openBlock(),o.createElementBlock("div",Z3,[o.createVNode(l,null,{default:o.withCtx(()=>[o.createVNode(c,null,{default:o.withCtx(()=>[n.inDrawing?(o.openBlock(),o.createBlock(l,{key:0},{default:o.withCtx(()=>[X3,o.createVNode(s,{type:"primary",plain:"",onClick:e[0]||(e[0]=f=>t.$emit("confirmDrawn",!0))},{default:o.withCtx(()=>[o.createTextVNode(" Confirm ")]),_:1}),o.createVNode(s,{type:"primary",plain:"",onClick:e[1]||(e[1]=f=>t.$emit("cancelDrawn",!0))},{default:o.withCtx(()=>[o.createTextVNode(" Cancel ")]),_:1})]),_:1})):(o.openBlock(),o.createBlock(l,{key:1},{default:o.withCtx(()=>[Q3,o.createVNode(s,{type:"primary",plain:"",onClick:e[2]||(e[2]=f=>t.$emit("dialogDisplay",!1))},{default:o.withCtx(()=>[o.createTextVNode(" Close ")]),_:1})]),_:1}))]),_:1})]),_:1}),n.connectionExist?(o.openBlock(),o.createBlock(l,{key:0},{default:o.withCtx(()=>[o.createVNode(c,null,{default:o.withCtx(()=>[J3,(o.openBlock(!0),o.createElementBlock(o.Fragment,null,o.renderList(n.connectionEntry,(f,p)=>(o.openBlock(),o.createBlock(l,{key:p},{default:o.withCtx(()=>[o.createVNode(d,{shadow:i.shadowDisplay(p),onClick:v=>i.handleTooltip(p)},{default:o.withCtx(()=>[o.createVNode(u,{trigger:"hover",disabled:f.label.length<20,width:200,content:i.capitalize(f.label)},{reference:o.withCtx(()=>[o.createElementVNode("span",e_,o.toDisplayString(i.capitalize(f.label)),1)]),_:2},1032,["disabled","content"])]),_:2},1032,["shadow","onClick"])]),_:2},1024))),128))]),_:1})]),_:1})):o.createCommentVNode("",!0)])}const n_=cn(Y3,[["render",t_],["__scopeId","data-v-1ddab772"]]),$v=(t,e)=>{const n=t.__vccOpts||t;for(const[r,a]of e)n[r]=a;return n},r_=["xlink:href"],a_={__name:"SvgIcon",props:{icon:{type:String,required:!0},spin:{type:Boolean,default:!1}},setup(t){return(e,n)=>(o.openBlock(),o.createElementBlock("svg",{class:o.normalizeClass(["map-icon",{"map-icon-spin":t.spin}])},[o.createElementVNode("use",{"xlink:href":`#${t.icon}`},null,8,r_)],2))}},i_=$v(a_,[["__scopeId","data-v-e172d5ff"]]),zv=`<?xml version="1.0" encoding="UTF-8"?>
56
56
  <svg width="24px" height="24px" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
57
57
  <title>2horpanel</title>
58
58
  <g id="2horpanel" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
@@ -461,8 +461,8 @@ Licensed under The MIT License (http://opensource.org/licenses/MIT)
461
461
  <line x1="9" y1="9.5" x2="12" y2="9.5" id="Line-6-Copy-2" stroke="#FFFFFF" stroke-width="2" stroke-linecap="square"></line>
462
462
  </g>
463
463
  </g>
464
- </svg>`,wg=(t,e,n,r)=>{const a=["title","desc","defs","style"],i=["width","height"],s=r||[];let l=document.createElement("div");l.innerHTML=t,a.map(u=>{const d=l.querySelector(u);d&&d.remove()}),i.map(u=>{l.querySelector("svg").removeAttribute(u)}),r&&s.map(u=>{Object.values(l.querySelectorAll(`[${u}]`)).map(d=>{d.removeAttribute(u)})});const c=l.innerHTML;return l=null,c},Cg=t=>[[/<\?xml[\s\S]*?>/gi,""],[/<!doctype[\s\S]*?>/gi,""],[/<!--.*-->/gi,""],[/\<([A-Za-z]+)([^\>]*)\/\>/g,"<$1$2></$1>"],[/\s+/g," "],[/\> \</g,"><"]].reduce((e,n)=>"".replace.apply(e,n),t).trim(),i_=!0,o_=!0,s_=["fill"],$c=Object.assign({"/assets/icons/2horpanel.svg":zv,"/assets/icons/2vertpanel.svg":Hv,"/assets/icons/3panel.svg":Kv,"/assets/icons/4panel.svg":qv,"/assets/icons/5panel.svg":Uv,"/assets/icons/6panel.svg":Gv,"/assets/icons/6panelVertical.svg":Wv,"/assets/icons/changeBckgd.svg":jv,"/assets/icons/close-no-bk.svg":Yv,"/assets/icons/close.svg":Zv,"/assets/icons/closeFullScreen.svg":Xv,"/assets/icons/comment.svg":Qv,"/assets/icons/connection.svg":Jv,"/assets/icons/dock.svg":eg,"/assets/icons/drawLine.svg":tg,"/assets/icons/drawPoint.svg":ng,"/assets/icons/drawPolygon.svg":rg,"/assets/icons/drawTrash.svg":ag,"/assets/icons/fitWindow.svg":ig,"/assets/icons/fullScreen.svg":og,"/assets/icons/help.svg":sg,"/assets/icons/magnifyingGlass.svg":lg,"/assets/icons/noun-filter.svg":cg,"/assets/icons/openMap.svg":ug,"/assets/icons/pause.svg":dg,"/assets/icons/permalink.svg":fg,"/assets/icons/play.svg":hg,"/assets/icons/resetZoom.svg":pg,"/assets/icons/singlepanel.svg":vg,"/assets/icons/tooltips.svg":gg,"/assets/icons/undock.svg":mg,"/assets/icons/zoomIn.svg":yg,"/assets/icons/zoomOut.svg":bg});Object.keys($c).map(t=>{const e=wg($c[t],i_,o_,s_),n=t.replace(/^.+\/(\w+).svg$/,"$1");return Cg(e).replace("<svg",`<symbol id="${n}"`).replace("svg>","symbol>")}).join(`
465
- `);const zc=Object.assign({"/assets/icons/2horpanel.svg":zv,"/assets/icons/2vertpanel.svg":Hv,"/assets/icons/3panel.svg":Kv,"/assets/icons/4panel.svg":qv,"/assets/icons/5panel.svg":Uv,"/assets/icons/6panel.svg":Gv,"/assets/icons/6panelVertical.svg":Wv,"/assets/icons/changeBckgd.svg":jv,"/assets/icons/close-no-bk.svg":Yv,"/assets/icons/close.svg":Zv,"/assets/icons/closeFullScreen.svg":Xv,"/assets/icons/comment.svg":Qv,"/assets/icons/connection.svg":Jv,"/assets/icons/dock.svg":eg,"/assets/icons/drawLine.svg":tg,"/assets/icons/drawPoint.svg":ng,"/assets/icons/drawPolygon.svg":rg,"/assets/icons/drawTrash.svg":ag,"/assets/icons/fitWindow.svg":ig,"/assets/icons/fullScreen.svg":og,"/assets/icons/help.svg":sg,"/assets/icons/magnifyingGlass.svg":lg,"/assets/icons/noun-filter.svg":cg,"/assets/icons/openMap.svg":ug,"/assets/icons/pause.svg":dg,"/assets/icons/permalink.svg":fg,"/assets/icons/play.svg":hg,"/assets/icons/resetZoom.svg":pg,"/assets/icons/singlepanel.svg":vg,"/assets/icons/tooltips.svg":gg,"/assets/icons/undock.svg":mg,"/assets/icons/zoomIn.svg":yg,"/assets/icons/zoomOut.svg":bg}),l_=Object.keys(zc).map(t=>{const e=wg(zc[t]),n=t.replace(/^.+\/(\w+).svg$/,"$1");return Cg(e).replace("<svg",`<symbol id="${n}"`).replace("svg>","symbol>")}),c_={name:"MapSvgSpriteColor",svgContext:zc,svgSprite:l_.join(`
466
- `)},u_=["innerHTML"];function d_(t,e,n,r,a,i){return o.openBlock(),o.createElementBlock("svg",{width:"0",height:"0",style:{display:"none"},innerHTML:t.$options.svgSprite},null,8,u_)}const f_=$v(c_,[["render",d_]]),h_=(t,e)=>{let n,r,a,i,s,l;e.style.left="",e.style.top="",e.addEventListener("mousedown",u=>{u.preventDefault(),n=e.offsetLeft,r=e.offsetTop,a=u.clientX,i=u.clientY,e.addEventListener("mousemove",c,!1),document.addEventListener("mouseup",()=>{e.removeEventListener("mousemove",c,!1)},!1)},!1);function c(u){u.preventDefault(),s=n-(a-u.clientX),l=r-(i-u.clientY),e.style.left=`${s}px`,e.style.top=`${l}px`}},p_={name:"DrawToolbar",components:{MapSvgIcon:a_,MapSvgSpriteColor:f_},props:{mapCanvas:{type:Object,default:void 0},toolbarOptions:{type:Array,default:["Edit","Delete","Point","LineString","Polygon","Connection"]},drawnType:{type:String,default:"All tools"},activeDrawTool:{required:!0},activeDrawMode:{required:!0},newlyDrawnEntry:{type:Object,default:{}},connectionEntry:{type:Object,default:{}},hoverVisibilities:{type:Array,required:!0,default:[{value:!1,ref:"editPopover"},{value:!1,ref:"deletePopover"},{value:!1,ref:"pointPopover"},{value:!1,ref:"lineStringPopover"},{value:!1,ref:"polygonPopover"},{value:!1,ref:"connectionPopover"}]}},data:function(){return{toolbarIcons:[{name:"Edit",active:!1,disabled:!1,type:"mode"},{name:"Delete",active:!1,disabled:!1,type:"mode"},{name:"Point",active:!1,disabled:!1,type:"tool"},{name:"LineString",active:!1,disabled:!1,type:"tool"},{name:"Polygon",active:!1,disabled:!1,type:"tool"},{name:"Connection",active:!1,disabled:!0,type:"conn"}],connectionDisplay:!1,dialogPosition:{offsetX:0,offsetY:0,x:void 0,y:void 0}}},computed:{showAllToolIcons:function(){return this.drawnType==="All tools"||this.drawnType==="None"},showEditModeIcon:function(){return this.toolbarOptions.includes("Edit")},showDeleteModeIcon:function(){return this.toolbarOptions.includes("Delete")},showDrawPointIcon:function(){return this.toolbarOptions.includes("Point")&&(this.showAllToolIcons||this.drawnType==="Point")},showDrawLineStringIcon:function(){return this.toolbarOptions.includes("LineString")&&(this.showAllToolIcons||this.drawnType==="LineString")},showDrawPolygonIcon:function(){return this.toolbarOptions.includes("Polygon")&&(this.showAllToolIcons||this.drawnType==="Polygon")},showConnectionIcon:function(){return this.toolbarOptions.includes("Connection")&&this.toolbarOptions.includes("LineString")&&(this.showAllToolIcons||this.drawnType==="LineString")},inDrawing:function(){return this.activeDrawTool!==void 0},newlyDrawnExist:function(){return Object.keys(this.newlyDrawnEntry).length>0},connectionExist:function(){return Object.keys(this.connectionEntry).length>0}},watch:{drawnType:function(){this.disabledToolbarConnectionIcon(!0)},activeDrawMode:function(t){this.updateToolbarIcons(t,"mode"),t==="Delete"&&(this.connectionDisplay=!1)},activeDrawTool:function(t){this.updateToolbarIcons(t,"tool"),t||(this.connectionDisplay=!1)},newlyDrawnExist:function(t){t&&(this.connectionDisplay=!0)},connectionExist:function(t){this.disabledToolbarConnectionIcon(!t),t||(this.connectionDisplay=!1)},connectionDisplay:function(t){this.activeToolbarConnectionIcon(t),t?this.dialogCssHacks():this.$emit("featureTooltip",void 0)},dialogPosition:{handler:function(){const t=this.$el.getBoundingClientRect();this.dialogPosition.offsetX=t.x,this.dialogPosition.offsetY=t.y},deep:!0,once:!0}},methods:{iconDisabled:function(t){return this.toolbarIcons.filter(e=>e.name===t)[0].disabled},modeClickEvent:function(t){if(!this.iconDisabled(t)){const e=this.activeDrawMode===t?void 0:t;this.$emit("clickToolbar","mode",e)}},toolClickEvent:function(t){if(!this.iconDisabled(t)){const e=this.activeDrawTool===t?void 0:t;this.$emit("clickToolbar","tool",e)}},connectionClickEvent:function(){!this.iconDisabled("Connection")&&!this.newlyDrawnExist&&(this.connectionDisplay=!this.connectionDisplay)},updateToolbarIcons:function(t,e){this.toolbarIcons.map(n=>{n.name===t?n.active=!0:n.active=!1}),this.toolbarIcons.filter(n=>n.type!=="conn").filter(n=>n.type!==e).map(n=>{t?n.disabled=!0:n.disabled=!1}),this.toolbarCssHacks()},disabledToolbarConnectionIcon:function(t){this.toolbarIcons.filter(e=>e.type==="conn").map(e=>{t?e.disabled=!0:e.disabled=!1,this.activeDrawMode==="Delete"&&(e.disabled=!0)}),this.toolbarCssHacks()},activeToolbarConnectionIcon:function(t){this.toolbarIcons.filter(e=>e.type==="conn").map(e=>{t?e.active=!0:e.active=!1}),this.toolbarCssHacks()},toolbarCssHacks:function(){this.$nextTick(()=>{this.toolbarIcons.map(t=>{const e=this.$el.querySelector(`.draw${t.name}`);e&&(t.active?e.classList.add("active"):e.classList.remove("active"),t.disabled?e.classList.add("disabled"):e.classList.remove("disabled"))})})},dialogCssHacks:function(){this.$nextTick(()=>{const t=this.$el.querySelector(".connection-dialog");h_(this.mapCanvas.containerHTML,t);let e,n;const r=this.mapCanvas.containerHTML.getBoundingClientRect(),a=t.getBoundingClientRect();this.dialogPosition.x>r.width/2?e=this.dialogPosition.x-a.width:e=this.dialogPosition.x,this.dialogPosition.y>r.height/2?n=this.dialogPosition.y-a.height:n=this.dialogPosition.y,t.style.transform=`translate(${e-this.dialogPosition.offsetX}px, ${n-this.dialogPosition.offsetY}px)`})},hoverIndex:function(t){return this.hoverVisibilities.findIndex(e=>e.ref===t)},showTooltip:function(t){this.$emit("showTooltip",t)},hideTooltip:function(t){this.$emit("hideTooltip",t)},dialogPopUpPositionHandler:function(t){t.preventDefault(),this.dialogPosition.x=t.clientX,this.dialogPosition.y=t.clientY,this.activeDrawTool==="Point"&&this.dialogCssHacks()}},mounted:function(){this.$nextTick(()=>{this.toolbarCssHacks(),this.mapCanvas&&this.mapCanvas.containerHTML.querySelector(this.mapCanvas.class).addEventListener("click",this.dialogPopUpPositionHandler,!1)})},destroyed:function(){this.mapCanvas&&this.mapCanvas.containerHTML.querySelector(this.mapCanvas.class).removeEventListener("click",this.dialogPopUpPositionHandler,!1)}},v_={class:"toolbar-container"},g_={class:"toolbar-icons"};function m_(t,e,n,r,a,i){const s=o.resolveComponent("map-svg-sprite-color"),l=o.resolveComponent("map-svg-icon"),c=Do,u=t_;return o.openBlock(),o.createElementBlock("div",v_,[o.createVNode(s),o.createElementVNode("div",g_,[i.showEditModeIcon?(o.openBlock(),o.createBlock(c,{key:0,content:"Edit Mode",placement:"top",teleported:!1,trigger:"manual",width:"100","popper-class":"flatmap-popper",visible:n.hoverVisibilities[i.hoverIndex("editPopover")].value,ref:"editPopover"},{reference:o.withCtx(()=>[o.createVNode(l,{icon:"comment",class:"icon-button drawEdit",onClick:e[0]||(e[0]=d=>i.modeClickEvent("Edit")),onMouseover:e[1]||(e[1]=d=>i.showTooltip(i.hoverIndex("editPopover"))),onMouseout:e[2]||(e[2]=d=>i.hideTooltip(i.hoverIndex("editPopover")))})]),_:1},8,["visible"])):o.createCommentVNode("",!0),i.showDeleteModeIcon?(o.openBlock(),o.createBlock(c,{key:1,content:"Delete Mode",placement:"top",teleported:!1,trigger:"manual",width:"100","popper-class":"flatmap-popper",visible:n.hoverVisibilities[i.hoverIndex("deletePopover")].value,ref:"deletePopover"},{reference:o.withCtx(()=>[o.createVNode(l,{icon:"drawTrash",class:"icon-button drawDelete",onClick:e[3]||(e[3]=d=>i.modeClickEvent("Delete")),onMouseover:e[4]||(e[4]=d=>i.showTooltip(i.hoverIndex("deletePopover"))),onMouseout:e[5]||(e[5]=d=>i.hideTooltip(i.hoverIndex("deletePopover")))})]),_:1},8,["visible"])):o.createCommentVNode("",!0),i.showDrawPointIcon?(o.openBlock(),o.createBlock(c,{key:2,content:"Draw Point",placement:"top",teleported:!1,trigger:"manual",width:"100","popper-class":"flatmap-popper",visible:n.hoverVisibilities[i.hoverIndex("pointPopover")].value,ref:"pointPopover"},{reference:o.withCtx(()=>[o.createVNode(l,{icon:"drawPoint",class:"icon-button drawPoint",onClick:e[6]||(e[6]=d=>i.toolClickEvent("Point")),onMouseover:e[7]||(e[7]=d=>i.showTooltip(i.hoverIndex("pointPopover"))),onMouseout:e[8]||(e[8]=d=>i.hideTooltip(i.hoverIndex("pointPopover")))})]),_:1},8,["visible"])):o.createCommentVNode("",!0),i.showDrawLineStringIcon?(o.openBlock(),o.createBlock(c,{key:3,content:"Draw LineString",placement:"top",teleported:!1,trigger:"manual",width:"100","popper-class":"flatmap-popper",visible:n.hoverVisibilities[i.hoverIndex("lineStringPopover")].value,ref:"drawLinePopover"},{reference:o.withCtx(()=>[o.createVNode(l,{icon:"drawLine",class:"icon-button drawLineString",onClick:e[9]||(e[9]=d=>i.toolClickEvent("LineString")),onMouseover:e[10]||(e[10]=d=>i.showTooltip(i.hoverIndex("lineStringPopover"))),onMouseout:e[11]||(e[11]=d=>i.hideTooltip(i.hoverIndex("lineStringPopover")))})]),_:1},8,["visible"])):o.createCommentVNode("",!0),i.showDrawPolygonIcon?(o.openBlock(),o.createBlock(c,{key:4,content:"Draw Polygon",placement:"top",teleported:!1,trigger:"manual",width:"100","popper-class":"flatmap-popper",visible:n.hoverVisibilities[i.hoverIndex("polygonPopover")].value,ref:"polygonPopover"},{reference:o.withCtx(()=>[o.createVNode(l,{icon:"drawPolygon",class:"icon-button drawPolygon",onClick:e[12]||(e[12]=d=>i.toolClickEvent("Polygon")),onMouseover:e[13]||(e[13]=d=>i.showTooltip(i.hoverIndex("polygonPopover"))),onMouseout:e[14]||(e[14]=d=>i.hideTooltip(i.hoverIndex("polygonPopover")))})]),_:1},8,["visible"])):o.createCommentVNode("",!0),i.showConnectionIcon?(o.openBlock(),o.createBlock(c,{key:5,content:"Connectivity",placement:"top",teleported:!1,trigger:"manual",width:"100","popper-class":"flatmap-popper",visible:n.hoverVisibilities[i.hoverIndex("connectionPopover")].value,ref:"connectionPopover"},{reference:o.withCtx(()=>[o.createVNode(l,{icon:"connection",class:"icon-button drawConnection",onClick:e[15]||(e[15]=d=>i.connectionClickEvent()),onMouseover:e[16]||(e[16]=d=>i.showTooltip(i.hoverIndex("connectionPopover"))),onMouseout:e[17]||(e[17]=d=>i.hideTooltip(i.hoverIndex("connectionPopover")))})]),_:1},8,["visible"])):o.createCommentVNode("",!0)]),n.mapCanvas?o.withDirectives((o.openBlock(),o.createBlock(u,{key:0,class:"connection-dialog",connectionEntry:n.connectionEntry,inDrawing:i.inDrawing,connectionExist:i.connectionExist,onDialogDisplay:e[18]||(e[18]=d=>i.connectionClickEvent()),onConfirmDrawn:e[19]||(e[19]=d=>t.$emit("confirmDrawn",d)),onCancelDrawn:e[20]||(e[20]=d=>t.$emit("cancelDrawn",d)),onFeatureTooltip:e[21]||(e[21]=d=>t.$emit("featureTooltip",d))},null,8,["connectionEntry","inDrawing","connectionExist"])),[[o.vShow,t.connectionDisplay]]):o.createCommentVNode("",!0)])}const y_=cn(p_,[["render",m_],["__scopeId","data-v-8a96a220"]]),b_={name:"HelpModeDialog",props:{multiflatmapRef:{type:Object,default:null},flatmapRef:{type:Object,default:null},scaffoldRef:{type:Object,default:null},lastItem:{type:Boolean,default:!1,required:!1}},mounted:function(){this.toggleHelpModeHighlight(!0),this.toggleTooltipHighlight()},unmounted:function(){this.toggleHelpModeHighlight(!1)},watch:{lastItem:function(t){t&&this.toggleTooltipHighlight()}},methods:{showNext:function(){this.$emit("show-next")},finishHelpMode:function(){this.$emit("finish-help-mode")},toggleTooltipPinHighlight:function(){const t=this.getCurrentFlatmap();this.resetHighlightedItems(),this.$nextTick(()=>{var i;const e=t.querySelectorAll(".maplibregl-marker"),n=t.querySelector(".flatmap-popup-popper"),r=((i=n==null?void 0:n.style)==null?void 0:i.transform)||"",a=this.extractMarkerPosition(r);e.forEach(s=>{const l=s.style.transform;this.extractMarkerPosition(l)===a&&s.classList.add("in-help-highlight")})})},toggleTooltipHighlight:function(){this.resetHighlightedItems(),this.$nextTick(()=>{document.querySelectorAll('.el-popper:not([style*="none"])').forEach(e=>{const n=e.classList.contains("flatmap-popper"),r=e.classList.contains("el-fade-in-linear-enter-active");(n||r)&&this.toggleHighlight(e)})})},toggleHighlight:function(t){const e=(t==null?void 0:t.id)||"",n=document.querySelector(`[aria-describedby="${e}"]`);n&&n.classList.add("in-help-highlight")},resetHighlightedItems:function(){document.querySelectorAll(".in-help-highlight").forEach(e=>{e.classList.remove("in-help-highlight")})},getCurrentScaffold:function(){var e;return((e=this.scaffoldRef)==null?void 0:e.$el)||null},getCurrentMultiflatmap:function(){var e;return((e=this.multiflatmapRef)==null?void 0:e.$el)||null},getCurrentFlatmap:function(){var n;const t=this.flatmapRef||((n=this.multiflatmapRef)==null?void 0:n.getCurrentFlatmap());return(t==null?void 0:t.$el)||null},toggleHelpModeHighlight:function(t){const e=this.getCurrentMultiflatmap(),n=this.getCurrentFlatmap(),r=this.getCurrentScaffold(),a=document.querySelectorAll(".in-help-highlight");e&&(t?e.classList.add("in-help"):e.classList.remove("in-help")),n&&(t?n.classList.add("in-help"):n.classList.remove("in-help")),r&&(t?r.classList.add("in-help"):r.classList.remove("in-help")),t||a.forEach(i=>{i.classList.remove("in-help-highlight")})},extractMarkerPosition:function(t){const e=/translate\((.*?)\)/g,n=t.match(e);return n?n[n.length-1].slice(10,-1):""}}},Hc=t=>(o.pushScopeId("data-v-3efb89fb"),t=t(),o.popScopeId(),t),w_=Hc(()=>o.createElementVNode("h4",null,"Help Mode",-1)),C_=Hc(()=>o.createElementVNode("p",null,[o.createTextVNode(" All caught up! "),o.createElementVNode("br"),o.createTextVNode(" Click 'Help' to restart. ")],-1)),k_=Hc(()=>o.createElementVNode("p",null,'Click "Next" to see the next item.',-1));function x_(t,e,n,r,a,i){const s=ln;return o.openBlock(),o.createElementBlock("div",{class:o.normalizeClass(["help-mode-dialog",{finish:n.lastItem}])},[w_,n.lastItem?(o.openBlock(),o.createElementBlock(o.Fragment,{key:0},[C_,o.createElementVNode("div",null,[o.createVNode(s,{class:"button",onClick:i.finishHelpMode},{default:o.withCtx(()=>[o.createTextVNode(" Finish ")]),_:1},8,["onClick"])])],64)):(o.openBlock(),o.createElementBlock(o.Fragment,{key:1},[k_,o.createElementVNode("div",null,[o.createVNode(s,{class:"button",onClick:i.showNext},{default:o.withCtx(()=>[o.createTextVNode(" Next ")]),_:1},8,["onClick"]),o.createVNode(s,{class:"button secondary",onClick:i.finishHelpMode},{default:o.withCtx(()=>[o.createTextVNode(" Exit Help Mode ")]),_:1},8,["onClick"])])],64))],2)}const E_=cn(b_,[["render",x_],["__scopeId","data-v-3efb89fb"]]),S_="https://citation.doi.org",T_=[{label:"APA",value:"apa"},{label:"Chicago",value:"chicago-note-bibliography"},{label:"IEEE",value:"ieee"},{label:"Bibtex",value:"bibtex"}],Kc="apa",B_=600,N_={name:"ExternalResourceCard",props:{resources:{type:Array,default:()=>[]}},data:function(){return{pubMedReferences:[],openLibReferences:[],isbnDBReferences:[],referecesListContent:"",citationOptions:T_,citationType:Kc,crosscite_host:S_}},watch:{resources:function(t){this.formatReferences([...t]),this.getCitationText(Kc)}},computed:{referencesWithDOI:function(){return this.pubMedReferences.filter(e=>e.type==="doi"||e.doi).length}},mounted:function(){this.formatReferences([...this.resources]),this.getCitationText(Kc)},methods:{formatReferences:function(t){const e=this.extractNonPubMedReferences(t),n=t.filter(r=>!e.includes(r));this.pubMedReferences=n.map(r=>typeof r=="object"?this.extractPublicationIdFromURLString(r[0]):this.extractPublicationIdFromURLString(r)),this.pubMedReferences.forEach(r=>{if(r.type==="pmc"){const a=r.id;this.searchPMID(a).then(i=>{if(i&&i.esearchresult){const s=i.esearchresult.idlist||[];r.id=s[0],r.type="pmid"}})}}),this.formatNonPubMedReferences(e).then(r=>{this.openLibReferences=r.filter(a=>a.type==="openlib"),this.isbnDBReferences=r.filter(a=>a.type==="isbndb"),this.formatOpenLibReferences()})},extractNonPubMedReferences:function(t){const e=[],n=this.getPubMedDomains();return t.forEach(r=>{let a=0;n.forEach(i=>{r.includes(i)&&a++}),a||e.push(r)}),e},formatNonPubMedReferences:async function(t){const e=[],r=t.filter(c=>c.indexOf("isbn")!==-1).map(c=>"ISBN:"+c.split("/").pop()),a=r.join(","),i=r.slice(),s=`https://openlibrary.org/api/books?bibkeys=${a}&format=json`,l=await this.fetchData(s);for(const c in l){const u=i.indexOf(c);i.splice(u,1);const d=l[c].info_url,f=d.split("/"),p=f.indexOf("books"),v=f[p+1];e.push({id:c.split(":")[1],type:"openlib",url:d,bookId:v})}return i.forEach(c=>{const u=c.split(":")[1],d=`https://isbndb.com/book/${u}`;e.push({id:u,url:d,type:"isbndb"})}),e},extractPublicationIdFromURLString:function(t){if(!t)return;const e=decodeURIComponent(t);let n={id:"",type:"",citation:{}};return this.getPubMedDomains().forEach(a=>{const i=e.lastIndexOf(a);i!==-1&&(n.id=e.slice(i+a.length),a==="doi.org/"?n.type="doi":a==="pmc/articles/"?n.type="pmc":n.type="pmid")}),n.id===""&&(t.includes("doi:")?(n.id=this.stripPMIDPrefix(t),n.type="doi"):t.includes("PMID:")&&(n.id=this.stripPMIDPrefix(t),n.type="pmid")),n.id.endsWith("/")&&(n.id=n.id.slice(0,-1)),n},getPubMedDomains:function(){return["doi.org/","nih.gov/pubmed/","pmc/articles/","pubmed.ncbi.nlm.nih.gov/"]},stripPMIDPrefix:function(t){return t.split(":")[1]},onCitationFormatChange:function(t){this.citationType=t,this.getCitationText(t)},generateCitationText:function(t,e){const{id:n,type:r,doi:a}=t;if(!(t.citation&&t.citation[e])&&n)if(t.citation[e]="",t.citation.error=null,r==="doi"||a){const i=r==="doi"?n:a;this.getCitationTextByDOI(i).then(s=>{const l=this.replaceLinkInText(s);t.citation[e]=l,this.updateCopyContents()}).catch(s=>{t.citation.error={type:e,ref:"doi"}})}else r==="pmid"&&this.getDOIFromPubMedID(n).then(i=>{if(i!=null&&i.result){const s=i.result[n],c=((s==null?void 0:s.articleids)||[]).find(d=>d.idtype==="doi"),u=c==null?void 0:c.value;if(u)t.doi=u,this.getCitationTextByDOI(u).then(d=>{const f=this.replaceLinkInText(d);t.citation[e]=f,this.updateCopyContents()}).catch(d=>{t.citation.error={type:e,ref:"doi"}});else{const{title:d,pubdate:f,authors:p}=s,v=p?p.map(g=>g.name):[],h=this.formatCopyReference({title:d||"",date:f||"",authors:v,url:`https://pubmed.ncbi.nlm.nih.gov/${n}`});t.citation[e]=h,this.updateCopyContents()}}}).catch(i=>{t.citation.error={type:e,ref:"pubmed"}})},getCitationText:function(t){async function e(n){for(let r=0;r<n.pubMedReferences.length;r++)n.generateCitationText(n.pubMedReferences[r],t),n.pubMedReferences.length>3&&r<n.pubMedReferences.length-1&&await S3(B_)}e(this)},reloadCitation:function(t){this.generateCitationText(t,this.citationType)},updateCopyContents:function(){const t=this.citationOptions.find(r=>r.value===this.citationType);let e="";const n=[];if(this.referencesWithDOI&&(e=t==null?void 0:t.label),this.pubMedReferences.forEach(r=>{n.push(r.citation[this.citationType])}),this.openLibReferences.forEach(r=>{n.push(this.formatCopyReference(r))}),this.isbnDBReferences.forEach(r=>{n.push(r.url)}),n.length){const a=`<ul>${n.map(s=>`<li>${s}</li>`).join(`
464
+ </svg>`,wg=(t,e,n,r)=>{const a=["title","desc","defs","style"],i=["width","height"],s=r||[];let l=document.createElement("div");l.innerHTML=t,a.map(u=>{const d=l.querySelector(u);d&&d.remove()}),i.map(u=>{l.querySelector("svg").removeAttribute(u)}),r&&s.map(u=>{Object.values(l.querySelectorAll(`[${u}]`)).map(d=>{d.removeAttribute(u)})});const c=l.innerHTML;return l=null,c},Cg=t=>[[/<\?xml[\s\S]*?>/gi,""],[/<!doctype[\s\S]*?>/gi,""],[/<!--.*-->/gi,""],[/\<([A-Za-z]+)([^\>]*)\/\>/g,"<$1$2></$1>"],[/\s+/g," "],[/\> \</g,"><"]].reduce((e,n)=>"".replace.apply(e,n),t).trim(),o_=!0,s_=!0,l_=["fill"],$c=Object.assign({"/assets/icons/2horpanel.svg":zv,"/assets/icons/2vertpanel.svg":Hv,"/assets/icons/3panel.svg":Kv,"/assets/icons/4panel.svg":qv,"/assets/icons/5panel.svg":Uv,"/assets/icons/6panel.svg":Gv,"/assets/icons/6panelVertical.svg":Wv,"/assets/icons/changeBckgd.svg":jv,"/assets/icons/close-no-bk.svg":Yv,"/assets/icons/close.svg":Zv,"/assets/icons/closeFullScreen.svg":Xv,"/assets/icons/comment.svg":Qv,"/assets/icons/connection.svg":Jv,"/assets/icons/dock.svg":eg,"/assets/icons/drawLine.svg":tg,"/assets/icons/drawPoint.svg":ng,"/assets/icons/drawPolygon.svg":rg,"/assets/icons/drawTrash.svg":ag,"/assets/icons/fitWindow.svg":ig,"/assets/icons/fullScreen.svg":og,"/assets/icons/help.svg":sg,"/assets/icons/magnifyingGlass.svg":lg,"/assets/icons/noun-filter.svg":cg,"/assets/icons/openMap.svg":ug,"/assets/icons/pause.svg":dg,"/assets/icons/permalink.svg":fg,"/assets/icons/play.svg":hg,"/assets/icons/resetZoom.svg":pg,"/assets/icons/singlepanel.svg":vg,"/assets/icons/tooltips.svg":gg,"/assets/icons/undock.svg":mg,"/assets/icons/zoomIn.svg":yg,"/assets/icons/zoomOut.svg":bg});Object.keys($c).map(t=>{const e=wg($c[t],o_,s_,l_),n=t.replace(/^.+\/(\w+).svg$/,"$1");return Cg(e).replace("<svg",`<symbol id="${n}"`).replace("svg>","symbol>")}).join(`
465
+ `);const zc=Object.assign({"/assets/icons/2horpanel.svg":zv,"/assets/icons/2vertpanel.svg":Hv,"/assets/icons/3panel.svg":Kv,"/assets/icons/4panel.svg":qv,"/assets/icons/5panel.svg":Uv,"/assets/icons/6panel.svg":Gv,"/assets/icons/6panelVertical.svg":Wv,"/assets/icons/changeBckgd.svg":jv,"/assets/icons/close-no-bk.svg":Yv,"/assets/icons/close.svg":Zv,"/assets/icons/closeFullScreen.svg":Xv,"/assets/icons/comment.svg":Qv,"/assets/icons/connection.svg":Jv,"/assets/icons/dock.svg":eg,"/assets/icons/drawLine.svg":tg,"/assets/icons/drawPoint.svg":ng,"/assets/icons/drawPolygon.svg":rg,"/assets/icons/drawTrash.svg":ag,"/assets/icons/fitWindow.svg":ig,"/assets/icons/fullScreen.svg":og,"/assets/icons/help.svg":sg,"/assets/icons/magnifyingGlass.svg":lg,"/assets/icons/noun-filter.svg":cg,"/assets/icons/openMap.svg":ug,"/assets/icons/pause.svg":dg,"/assets/icons/permalink.svg":fg,"/assets/icons/play.svg":hg,"/assets/icons/resetZoom.svg":pg,"/assets/icons/singlepanel.svg":vg,"/assets/icons/tooltips.svg":gg,"/assets/icons/undock.svg":mg,"/assets/icons/zoomIn.svg":yg,"/assets/icons/zoomOut.svg":bg}),c_=Object.keys(zc).map(t=>{const e=wg(zc[t]),n=t.replace(/^.+\/(\w+).svg$/,"$1");return Cg(e).replace("<svg",`<symbol id="${n}"`).replace("svg>","symbol>")}),u_={name:"MapSvgSpriteColor",svgContext:zc,svgSprite:c_.join(`
466
+ `)},d_=["innerHTML"];function f_(t,e,n,r,a,i){return o.openBlock(),o.createElementBlock("svg",{width:"0",height:"0",style:{display:"none"},innerHTML:t.$options.svgSprite},null,8,d_)}const h_=$v(u_,[["render",f_]]),p_=(t,e)=>{let n,r,a,i,s,l;e.style.left="",e.style.top="",e.addEventListener("mousedown",u=>{u.preventDefault(),n=e.offsetLeft,r=e.offsetTop,a=u.clientX,i=u.clientY,e.addEventListener("mousemove",c,!1),document.addEventListener("mouseup",()=>{e.removeEventListener("mousemove",c,!1)},!1)},!1);function c(u){u.preventDefault(),s=n-(a-u.clientX),l=r-(i-u.clientY),e.style.left=`${s}px`,e.style.top=`${l}px`}},v_={name:"DrawToolbar",components:{MapSvgIcon:i_,MapSvgSpriteColor:h_},props:{mapCanvas:{type:Object,default:void 0},toolbarOptions:{type:Array,default:["Edit","Delete","Point","LineString","Polygon","Connection"]},drawnType:{type:String,default:"All tools"},activeDrawTool:{required:!0},activeDrawMode:{required:!0},newlyDrawnEntry:{type:Object,default:{}},connectionEntry:{type:Object,default:{}},hoverVisibilities:{type:Array,required:!0,default:[{value:!1,ref:"editPopover"},{value:!1,ref:"deletePopover"},{value:!1,ref:"pointPopover"},{value:!1,ref:"lineStringPopover"},{value:!1,ref:"polygonPopover"},{value:!1,ref:"connectionPopover"}]}},data:function(){return{toolbarIcons:[{name:"Edit",active:!1,disabled:!1,type:"mode"},{name:"Delete",active:!1,disabled:!1,type:"mode"},{name:"Point",active:!1,disabled:!1,type:"tool"},{name:"LineString",active:!1,disabled:!1,type:"tool"},{name:"Polygon",active:!1,disabled:!1,type:"tool"},{name:"Connection",active:!1,disabled:!0,type:"conn"}],connectionDisplay:!1,dialogPosition:{offsetX:0,offsetY:0,x:void 0,y:void 0}}},computed:{showAllToolIcons:function(){return this.drawnType==="All tools"||this.drawnType==="None"},showEditModeIcon:function(){return this.toolbarOptions.includes("Edit")},showDeleteModeIcon:function(){return this.toolbarOptions.includes("Delete")},showDrawPointIcon:function(){return this.toolbarOptions.includes("Point")&&(this.showAllToolIcons||this.drawnType==="Point")},showDrawLineStringIcon:function(){return this.toolbarOptions.includes("LineString")&&(this.showAllToolIcons||this.drawnType==="LineString")},showDrawPolygonIcon:function(){return this.toolbarOptions.includes("Polygon")&&(this.showAllToolIcons||this.drawnType==="Polygon")},showConnectionIcon:function(){return this.toolbarOptions.includes("Connection")&&this.toolbarOptions.includes("LineString")&&(this.showAllToolIcons||this.drawnType==="LineString")},inDrawing:function(){return this.activeDrawTool!==void 0},newlyDrawnExist:function(){return Object.keys(this.newlyDrawnEntry).length>0},connectionExist:function(){return Object.keys(this.connectionEntry).length>0}},watch:{drawnType:function(){this.disabledToolbarConnectionIcon(!0)},activeDrawMode:function(t){this.updateToolbarIcons(t,"mode"),t==="Delete"&&(this.connectionDisplay=!1)},activeDrawTool:function(t){this.updateToolbarIcons(t,"tool"),t||(this.connectionDisplay=!1)},newlyDrawnExist:function(t){t&&(this.connectionDisplay=!0)},connectionExist:function(t){this.disabledToolbarConnectionIcon(!t),t||(this.connectionDisplay=!1)},connectionDisplay:function(t){this.activeToolbarConnectionIcon(t),t?this.dialogCssHacks():this.$emit("featureTooltip",void 0)},dialogPosition:{handler:function(){const t=this.$el.getBoundingClientRect();this.dialogPosition.offsetX=t.x,this.dialogPosition.offsetY=t.y},deep:!0,once:!0}},methods:{iconDisabled:function(t){return this.toolbarIcons.filter(e=>e.name===t)[0].disabled},modeClickEvent:function(t){if(!this.iconDisabled(t)){const e=this.activeDrawMode===t?void 0:t;this.$emit("clickToolbar","mode",e)}},toolClickEvent:function(t){if(!this.iconDisabled(t)){const e=this.activeDrawTool===t?void 0:t;this.$emit("clickToolbar","tool",e)}},connectionClickEvent:function(){!this.iconDisabled("Connection")&&!this.newlyDrawnExist&&(this.connectionDisplay=!this.connectionDisplay)},updateToolbarIcons:function(t,e){this.toolbarIcons.map(n=>{n.name===t?n.active=!0:n.active=!1}),this.toolbarIcons.filter(n=>n.type!=="conn").filter(n=>n.type!==e).map(n=>{t?n.disabled=!0:n.disabled=!1}),this.toolbarCssHacks()},disabledToolbarConnectionIcon:function(t){this.toolbarIcons.filter(e=>e.type==="conn").map(e=>{t?e.disabled=!0:e.disabled=!1,this.activeDrawMode==="Delete"&&(e.disabled=!0)}),this.toolbarCssHacks()},activeToolbarConnectionIcon:function(t){this.toolbarIcons.filter(e=>e.type==="conn").map(e=>{t?e.active=!0:e.active=!1}),this.toolbarCssHacks()},toolbarCssHacks:function(){this.$nextTick(()=>{this.toolbarIcons.map(t=>{const e=this.$el.querySelector(`.draw${t.name}`);e&&(t.active?e.classList.add("active"):e.classList.remove("active"),t.disabled?e.classList.add("disabled"):e.classList.remove("disabled"))})})},dialogCssHacks:function(){this.$nextTick(()=>{const t=this.$el.querySelector(".connection-dialog");p_(this.mapCanvas.containerHTML,t);let e,n;const r=this.mapCanvas.containerHTML.getBoundingClientRect(),a=t.getBoundingClientRect();this.dialogPosition.x>r.width/2?e=this.dialogPosition.x-a.width:e=this.dialogPosition.x,this.dialogPosition.y>r.height/2?n=this.dialogPosition.y-a.height:n=this.dialogPosition.y,t.style.transform=`translate(${e-this.dialogPosition.offsetX}px, ${n-this.dialogPosition.offsetY}px)`})},hoverIndex:function(t){return this.hoverVisibilities.findIndex(e=>e.ref===t)},showTooltip:function(t){this.$emit("showTooltip",t)},hideTooltip:function(t){this.$emit("hideTooltip",t)},dialogPopUpPositionHandler:function(t){t.preventDefault(),this.dialogPosition.x=t.clientX,this.dialogPosition.y=t.clientY,this.activeDrawTool==="Point"&&this.dialogCssHacks()}},mounted:function(){this.$nextTick(()=>{this.toolbarCssHacks(),this.mapCanvas&&this.mapCanvas.containerHTML.querySelector(this.mapCanvas.class).addEventListener("click",this.dialogPopUpPositionHandler,!1)})},destroyed:function(){this.mapCanvas&&this.mapCanvas.containerHTML.querySelector(this.mapCanvas.class).removeEventListener("click",this.dialogPopUpPositionHandler,!1)}},g_={class:"toolbar-container"},m_={class:"toolbar-icons"};function y_(t,e,n,r,a,i){const s=o.resolveComponent("map-svg-sprite-color"),l=o.resolveComponent("map-svg-icon"),c=Do,u=n_;return o.openBlock(),o.createElementBlock("div",g_,[o.createVNode(s),o.createElementVNode("div",m_,[i.showEditModeIcon?(o.openBlock(),o.createBlock(c,{key:0,content:"Edit Mode",placement:"top",teleported:!1,trigger:"manual",width:"100","popper-class":"flatmap-popper",visible:n.hoverVisibilities[i.hoverIndex("editPopover")].value,ref:"editPopover"},{reference:o.withCtx(()=>[o.createVNode(l,{icon:"comment",class:"icon-button drawEdit",onClick:e[0]||(e[0]=d=>i.modeClickEvent("Edit")),onMouseover:e[1]||(e[1]=d=>i.showTooltip(i.hoverIndex("editPopover"))),onMouseout:e[2]||(e[2]=d=>i.hideTooltip(i.hoverIndex("editPopover")))})]),_:1},8,["visible"])):o.createCommentVNode("",!0),i.showDeleteModeIcon?(o.openBlock(),o.createBlock(c,{key:1,content:"Delete Mode",placement:"top",teleported:!1,trigger:"manual",width:"100","popper-class":"flatmap-popper",visible:n.hoverVisibilities[i.hoverIndex("deletePopover")].value,ref:"deletePopover"},{reference:o.withCtx(()=>[o.createVNode(l,{icon:"drawTrash",class:"icon-button drawDelete",onClick:e[3]||(e[3]=d=>i.modeClickEvent("Delete")),onMouseover:e[4]||(e[4]=d=>i.showTooltip(i.hoverIndex("deletePopover"))),onMouseout:e[5]||(e[5]=d=>i.hideTooltip(i.hoverIndex("deletePopover")))})]),_:1},8,["visible"])):o.createCommentVNode("",!0),i.showDrawPointIcon?(o.openBlock(),o.createBlock(c,{key:2,content:"Draw Point",placement:"top",teleported:!1,trigger:"manual",width:"100","popper-class":"flatmap-popper",visible:n.hoverVisibilities[i.hoverIndex("pointPopover")].value,ref:"pointPopover"},{reference:o.withCtx(()=>[o.createVNode(l,{icon:"drawPoint",class:"icon-button drawPoint",onClick:e[6]||(e[6]=d=>i.toolClickEvent("Point")),onMouseover:e[7]||(e[7]=d=>i.showTooltip(i.hoverIndex("pointPopover"))),onMouseout:e[8]||(e[8]=d=>i.hideTooltip(i.hoverIndex("pointPopover")))})]),_:1},8,["visible"])):o.createCommentVNode("",!0),i.showDrawLineStringIcon?(o.openBlock(),o.createBlock(c,{key:3,content:"Draw LineString",placement:"top",teleported:!1,trigger:"manual",width:"100","popper-class":"flatmap-popper",visible:n.hoverVisibilities[i.hoverIndex("lineStringPopover")].value,ref:"drawLinePopover"},{reference:o.withCtx(()=>[o.createVNode(l,{icon:"drawLine",class:"icon-button drawLineString",onClick:e[9]||(e[9]=d=>i.toolClickEvent("LineString")),onMouseover:e[10]||(e[10]=d=>i.showTooltip(i.hoverIndex("lineStringPopover"))),onMouseout:e[11]||(e[11]=d=>i.hideTooltip(i.hoverIndex("lineStringPopover")))})]),_:1},8,["visible"])):o.createCommentVNode("",!0),i.showDrawPolygonIcon?(o.openBlock(),o.createBlock(c,{key:4,content:"Draw Polygon",placement:"top",teleported:!1,trigger:"manual",width:"100","popper-class":"flatmap-popper",visible:n.hoverVisibilities[i.hoverIndex("polygonPopover")].value,ref:"polygonPopover"},{reference:o.withCtx(()=>[o.createVNode(l,{icon:"drawPolygon",class:"icon-button drawPolygon",onClick:e[12]||(e[12]=d=>i.toolClickEvent("Polygon")),onMouseover:e[13]||(e[13]=d=>i.showTooltip(i.hoverIndex("polygonPopover"))),onMouseout:e[14]||(e[14]=d=>i.hideTooltip(i.hoverIndex("polygonPopover")))})]),_:1},8,["visible"])):o.createCommentVNode("",!0),i.showConnectionIcon?(o.openBlock(),o.createBlock(c,{key:5,content:"Connectivity",placement:"top",teleported:!1,trigger:"manual",width:"100","popper-class":"flatmap-popper",visible:n.hoverVisibilities[i.hoverIndex("connectionPopover")].value,ref:"connectionPopover"},{reference:o.withCtx(()=>[o.createVNode(l,{icon:"connection",class:"icon-button drawConnection",onClick:e[15]||(e[15]=d=>i.connectionClickEvent()),onMouseover:e[16]||(e[16]=d=>i.showTooltip(i.hoverIndex("connectionPopover"))),onMouseout:e[17]||(e[17]=d=>i.hideTooltip(i.hoverIndex("connectionPopover")))})]),_:1},8,["visible"])):o.createCommentVNode("",!0)]),n.mapCanvas?o.withDirectives((o.openBlock(),o.createBlock(u,{key:0,class:"connection-dialog",connectionEntry:n.connectionEntry,inDrawing:i.inDrawing,connectionExist:i.connectionExist,onDialogDisplay:e[18]||(e[18]=d=>i.connectionClickEvent()),onConfirmDrawn:e[19]||(e[19]=d=>t.$emit("confirmDrawn",d)),onCancelDrawn:e[20]||(e[20]=d=>t.$emit("cancelDrawn",d)),onFeatureTooltip:e[21]||(e[21]=d=>t.$emit("featureTooltip",d))},null,8,["connectionEntry","inDrawing","connectionExist"])),[[o.vShow,t.connectionDisplay]]):o.createCommentVNode("",!0)])}const b_=cn(v_,[["render",y_],["__scopeId","data-v-8a96a220"]]),w_={name:"HelpModeDialog",props:{multiflatmapRef:{type:Object,default:null},flatmapRef:{type:Object,default:null},scaffoldRef:{type:Object,default:null},lastItem:{type:Boolean,default:!1,required:!1}},mounted:function(){this.toggleHelpModeHighlight(!0),this.toggleTooltipHighlight()},unmounted:function(){this.toggleHelpModeHighlight(!1)},watch:{lastItem:function(t){t&&this.toggleTooltipHighlight()}},methods:{showNext:function(){this.$emit("show-next")},finishHelpMode:function(){this.$emit("finish-help-mode")},toggleTooltipPinHighlight:function(){const t=this.getCurrentFlatmap();this.resetHighlightedItems(),this.$nextTick(()=>{var i;const e=t.querySelectorAll(".maplibregl-marker"),n=t.querySelector(".flatmap-popup-popper"),r=((i=n==null?void 0:n.style)==null?void 0:i.transform)||"",a=this.extractMarkerPosition(r);e.forEach(s=>{const l=s.style.transform;this.extractMarkerPosition(l)===a&&s.classList.add("in-help-highlight")})})},toggleTooltipHighlight:function(){this.resetHighlightedItems(),this.$nextTick(()=>{document.querySelectorAll('.el-popper:not([style*="none"])').forEach(e=>{const n=e.classList.contains("flatmap-popper"),r=e.classList.contains("el-fade-in-linear-enter-active");(n||r)&&this.toggleHighlight(e)})})},toggleHighlight:function(t){const e=(t==null?void 0:t.id)||"",n=document.querySelector(`[aria-describedby="${e}"]`);n&&n.classList.add("in-help-highlight")},resetHighlightedItems:function(){document.querySelectorAll(".in-help-highlight").forEach(e=>{e.classList.remove("in-help-highlight")})},getCurrentScaffold:function(){var e;return((e=this.scaffoldRef)==null?void 0:e.$el)||null},getCurrentMultiflatmap:function(){var e;return((e=this.multiflatmapRef)==null?void 0:e.$el)||null},getCurrentFlatmap:function(){var n;const t=this.flatmapRef||((n=this.multiflatmapRef)==null?void 0:n.getCurrentFlatmap());return(t==null?void 0:t.$el)||null},toggleHelpModeHighlight:function(t){const e=this.getCurrentMultiflatmap(),n=this.getCurrentFlatmap(),r=this.getCurrentScaffold(),a=document.querySelectorAll(".in-help-highlight");e&&(t?e.classList.add("in-help"):e.classList.remove("in-help")),n&&(t?n.classList.add("in-help"):n.classList.remove("in-help")),r&&(t?r.classList.add("in-help"):r.classList.remove("in-help")),t||a.forEach(i=>{i.classList.remove("in-help-highlight")})},extractMarkerPosition:function(t){const e=/translate\((.*?)\)/g,n=t.match(e);return n?n[n.length-1].slice(10,-1):""}}},Hc=t=>(o.pushScopeId("data-v-3efb89fb"),t=t(),o.popScopeId(),t),C_=Hc(()=>o.createElementVNode("h4",null,"Help Mode",-1)),k_=Hc(()=>o.createElementVNode("p",null,[o.createTextVNode(" All caught up! "),o.createElementVNode("br"),o.createTextVNode(" Click 'Help' to restart. ")],-1)),x_=Hc(()=>o.createElementVNode("p",null,'Click "Next" to see the next item.',-1));function E_(t,e,n,r,a,i){const s=ln;return o.openBlock(),o.createElementBlock("div",{class:o.normalizeClass(["help-mode-dialog",{finish:n.lastItem}])},[C_,n.lastItem?(o.openBlock(),o.createElementBlock(o.Fragment,{key:0},[k_,o.createElementVNode("div",null,[o.createVNode(s,{class:"button",onClick:i.finishHelpMode},{default:o.withCtx(()=>[o.createTextVNode(" Finish ")]),_:1},8,["onClick"])])],64)):(o.openBlock(),o.createElementBlock(o.Fragment,{key:1},[x_,o.createElementVNode("div",null,[o.createVNode(s,{class:"button",onClick:i.showNext},{default:o.withCtx(()=>[o.createTextVNode(" Next ")]),_:1},8,["onClick"]),o.createVNode(s,{class:"button secondary",onClick:i.finishHelpMode},{default:o.withCtx(()=>[o.createTextVNode(" Exit Help Mode ")]),_:1},8,["onClick"])])],64))],2)}const S_=cn(w_,[["render",E_],["__scopeId","data-v-3efb89fb"]]),T_="https://citation.doi.org",B_=[{label:"APA",value:"apa"},{label:"Chicago",value:"chicago-note-bibliography"},{label:"IEEE",value:"ieee"},{label:"Bibtex",value:"bibtex"}],Kc="apa",N_=600,D_={name:"ExternalResourceCard",props:{resources:{type:Array,default:()=>[]}},data:function(){return{pubMedReferences:[],openLibReferences:[],isbnDBReferences:[],referecesListContent:"",citationOptions:B_,citationType:Kc,crosscite_host:T_}},watch:{resources:function(t){this.formatReferences([...t]),this.getCitationText(Kc)}},computed:{referencesWithDOI:function(){return this.pubMedReferences.filter(e=>e.type==="doi"||e.doi).length}},mounted:function(){this.formatReferences([...this.resources]),this.getCitationText(Kc)},methods:{formatReferences:function(t){const e=this.extractNonPubMedReferences(t),n=t.filter(r=>!e.includes(r));this.pubMedReferences=n.map(r=>typeof r=="object"?this.extractPublicationIdFromURLString(r[0]):this.extractPublicationIdFromURLString(r)),this.pubMedReferences.forEach(r=>{if(r.type==="pmc"){const a=r.id;this.searchPMID(a).then(i=>{if(i&&i.esearchresult){const s=i.esearchresult.idlist||[];r.id=s[0],r.type="pmid"}})}}),this.formatNonPubMedReferences(e).then(r=>{this.openLibReferences=r.filter(a=>a.type==="openlib"),this.isbnDBReferences=r.filter(a=>a.type==="isbndb"),this.formatOpenLibReferences()})},extractNonPubMedReferences:function(t){const e=[],n=this.getPubMedDomains();return t.forEach(r=>{let a=0;n.forEach(i=>{r.includes(i)&&a++}),a||e.push(r)}),e},formatNonPubMedReferences:async function(t){const e=[],r=t.filter(c=>c.indexOf("isbn")!==-1).map(c=>"ISBN:"+c.split("/").pop()),a=r.join(","),i=r.slice(),s=`https://openlibrary.org/api/books?bibkeys=${a}&format=json`,l=await this.fetchData(s);for(const c in l){const u=i.indexOf(c);i.splice(u,1);const d=l[c].info_url,f=d.split("/"),p=f.indexOf("books"),v=f[p+1];e.push({id:c.split(":")[1],type:"openlib",url:d,bookId:v})}return i.forEach(c=>{const u=c.split(":")[1],d=`https://isbndb.com/book/${u}`;e.push({id:u,url:d,type:"isbndb"})}),e},extractPublicationIdFromURLString:function(t){if(!t)return;const e=decodeURIComponent(t);let n={id:"",type:"",citation:{}};return this.getPubMedDomains().forEach(a=>{const i=e.lastIndexOf(a);i!==-1&&(n.id=e.slice(i+a.length),a==="doi.org/"?n.type="doi":a==="pmc/articles/"?n.type="pmc":n.type="pmid")}),n.id===""&&(t.includes("doi:")?(n.id=this.stripPMIDPrefix(t),n.type="doi"):t.includes("PMID:")&&(n.id=this.stripPMIDPrefix(t),n.type="pmid")),n.id.endsWith("/")&&(n.id=n.id.slice(0,-1)),n},getPubMedDomains:function(){return["doi.org/","nih.gov/pubmed/","pmc/articles/","pubmed.ncbi.nlm.nih.gov/"]},stripPMIDPrefix:function(t){return t.split(":")[1]},onCitationFormatChange:function(t){this.citationType=t,this.getCitationText(t)},generateCitationText:function(t,e){const{id:n,type:r,doi:a}=t;if(!(t.citation&&t.citation[e])&&n)if(t.citation[e]="",t.citation.error=null,r==="doi"||a){const i=r==="doi"?n:a;this.getCitationTextByDOI(i).then(s=>{const l=this.replaceLinkInText(s);t.citation[e]=l,this.updateCopyContents()}).catch(s=>{t.citation.error={type:e,ref:"doi"}})}else r==="pmid"&&this.getDOIFromPubMedID(n).then(i=>{if(i!=null&&i.result){const s=i.result[n],c=((s==null?void 0:s.articleids)||[]).find(d=>d.idtype==="doi"),u=c==null?void 0:c.value;if(u)t.doi=u,this.getCitationTextByDOI(u).then(d=>{const f=this.replaceLinkInText(d);t.citation[e]=f,this.updateCopyContents()}).catch(d=>{t.citation.error={type:e,ref:"doi"}});else{const{title:d,pubdate:f,authors:p}=s,v=p?p.map(g=>g.name):[],h=this.formatCopyReference({title:d||"",date:f||"",authors:v,url:`https://pubmed.ncbi.nlm.nih.gov/${n}`});t.citation[e]=h,this.updateCopyContents()}}}).catch(i=>{t.citation.error={type:e,ref:"pubmed"}})},getCitationText:function(t){async function e(n){for(let r=0;r<n.pubMedReferences.length;r++)n.generateCitationText(n.pubMedReferences[r],t),n.pubMedReferences.length>3&&r<n.pubMedReferences.length-1&&await S3(N_)}e(this)},reloadCitation:function(t){this.generateCitationText(t,this.citationType)},updateCopyContents:function(){const t=this.citationOptions.find(r=>r.value===this.citationType);let e="";const n=[];if(this.referencesWithDOI&&(e=t==null?void 0:t.label),this.pubMedReferences.forEach(r=>{n.push(r.citation[this.citationType])}),this.openLibReferences.forEach(r=>{n.push(this.formatCopyReference(r))}),this.isbnDBReferences.forEach(r=>{n.push(r.url)}),n.length){const a=`<ul>${n.map(s=>`<li>${s}</li>`).join(`
467
467
  `)}</ul>`,i="<div><strong>References</strong></div>";this.referecesListContent=i+`
468
- `+a}this.$emit("references-loaded",{style:e,list:n})},replaceLinkInText:function(t){const e="https://";let n=t.split(e)[1];if(n){n=n.split(" ")[0],n=n.trim(),n.endsWith(".")&&(n=n.substring(0,n.length-1));const r=e+n,a=`<a href="${r}" target="_blank">${r}</a>`;return t.replace(r,a)}return t},searchPMID:async function(t){const e=`https://eutils.ncbi.nlm.nih.gov/entrez/eutils/esearch.fcgi?db=pubmed&term=${t}&format=json`;return await this.fetchData(e)},getCitationTextByDOI:async function(t){const e=`${this.crosscite_host}/format?doi=${t}&style=${this.citationType}&lang=en-US`;return await this.fetchData(e,"text")},getDOIFromPubMedID:async function(t){const e=`https://eutils.ncbi.nlm.nih.gov/entrez/eutils/esummary.fcgi?db=pubmed&id=${t}&format=json`;return await this.fetchData(e)},formatOpenLibReferences:function(){this.openLibReferences.forEach(t=>{const{bookId:e}=t;this.getBookData(e).then(n=>{const{title:r,authors:a,publish_date:i}=n;r&&(t.title=r),i&&(t.date=i),a&&(t.authors=[],a.forEach(s=>{this.getBookAuthor(s.key).then(l=>{const{name:c}=l;c&&(t.authors.push(c),this.updateCopyContents())})})),this.updateCopyContents()})})},getBookData:async function(t){const e=`https://openlibrary.org/books/${t}.json`;return await this.fetchData(e)},getBookAuthor:async function(t){const e=`https://openlibrary.org${t}.json`;return await this.fetchData(e)},formatCopyReference:function(t){const e=[],{title:n,date:r,authors:a,url:i}=t;return n&&e.push(n),r&&e.push(`(${r})`),a&&e.push(`- ${a.join(", ")}`),e.push(`<div><a href="${i}" target="_blank">${i}</a></div>`),e.join(" ")},fetchData:async function(t,e){try{const n=await fetch(t);if(!n.ok)throw new Error(`Response status: ${n.status}`);return e==="text"?await n.text():await n.json()}catch(n){throw new Error(n)}}}},Zr=t=>(o.pushScopeId("data-v-e8282d9f"),t=t(),o.popScopeId(),t),D_={class:"resource-container"},__={class:"attribute-title-container"},P_=Zr(()=>o.createElementVNode("div",{class:"attribute-title"},"References",-1)),O_={class:"copy-button"},I_={key:0,class:"citation-tabs"},L_={class:"citation-list"},M_=Zr(()=>o.createElementVNode("span",null,"Internal Server Error",-1)),F_=Zr(()=>o.createElementVNode("br",null,null,-1)),A_=Zr(()=>o.createElementVNode("br",null,null,-1)),V_=["href"],R_=Zr(()=>o.createElementVNode("br",null,null,-1)),$_=Zr(()=>o.createElementVNode("span",null,"Sorry, something went wrong.",-1)),z_=Zr(()=>o.createElementVNode("br",null,null,-1)),H_=["onClick"],K_=["innerHTML"],q_=["innerHTML"],U_=["href"];function G_(t,e,n,r,a,i){const s=Vl,l=ln;return o.openBlock(),o.createElementBlock("div",D_,[o.createElementVNode("div",__,[P_,o.createElementVNode("div",O_,[o.createVNode(s,{label:"Copy list to clipboard",content:t.referecesListContent},null,8,["content"])])]),i.referencesWithDOI?(o.openBlock(),o.createElementBlock("div",I_,[(o.openBlock(!0),o.createElementBlock(o.Fragment,null,o.renderList(t.citationOptions,c=>(o.openBlock(),o.createBlock(l,{link:"",key:c.value,type:t.citationType===c.value?"primary":"",onClick:u=>i.onCitationFormatChange(c.value)},{default:o.withCtx(()=>[o.createTextVNode(o.toDisplayString(c.label),1)]),_:2},1032,["type","onClick"]))),128))])):o.createCommentVNode("",!0),o.createElementVNode("ul",L_,[(o.openBlock(!0),o.createElementBlock(o.Fragment,null,o.renderList(t.pubMedReferences,c=>{var u,d,f,p;return o.openBlock(),o.createElementBlock("li",{key:c.id,class:o.normalizeClass({loading:c.citation&&!c.citation.error&&c.citation[t.citationType]===""})},[c.citation?(o.openBlock(),o.createElementBlock(o.Fragment,{key:0},[((u=c.citation.error)==null?void 0:u.ref)==="doi"&&((d=c.citation.error)==null?void 0:d.type)===t.citationType?(o.openBlock(),o.createElementBlock(o.Fragment,{key:0},[M_,F_,o.createTextVNode(" Sorry, something went wrong."),A_,o.createTextVNode(" The dataset citation generator ("),o.createElementVNode("a",{href:t.crosscite_host,target:"_blank"},o.toDisplayString(t.crosscite_host),9,V_),o.createTextVNode(") encountered an internal error and was unable to complete your request."),R_,o.createTextVNode(" Please come back later. ")],64)):((f=c.citation.error)==null?void 0:f.ref)==="pubmed"&&((p=c.citation.error)==null?void 0:p.type)===t.citationType?(o.openBlock(),o.createElementBlock(o.Fragment,{key:1},[$_,z_,o.createTextVNode(" Please try again. "),o.createElementVNode("span",{class:"reload-button",onClick:v=>i.reloadCitation(c)},"Reload",8,H_)],64)):(o.openBlock(),o.createElementBlock(o.Fragment,{key:2},[o.createElementVNode("span",{innerHTML:c.citation[t.citationType]},null,8,K_),o.createVNode(s,{content:c.citation[t.citationType]},null,8,["content"])],64))],64)):o.createCommentVNode("",!0)],2)}),128)),(o.openBlock(!0),o.createElementBlock(o.Fragment,null,o.renderList(t.openLibReferences,c=>(o.openBlock(),o.createElementBlock("li",null,[o.createElementVNode("div",{innerHTML:i.formatCopyReference(c)},null,8,q_),o.createVNode(s,{content:i.formatCopyReference(c)},null,8,["content"])]))),256)),(o.openBlock(!0),o.createElementBlock(o.Fragment,null,o.renderList(t.isbnDBReferences,c=>(o.openBlock(),o.createElementBlock("li",null,[o.createElementVNode("a",{href:c.url,target:"_blank"},o.toDisplayString(c.url),9,U_),o.createVNode(s,{content:c.url},null,8,["content"])]))),256))])])}const kg=cn(N_,[["render",G_],["__scopeId","data-v-e8282d9f"]]);function W_(t){return{all:t=t||new Map,on:function(e,n){var r=t.get(e);r?r.push(n):t.set(e,[n])},off:function(e,n){var r=t.get(e);r&&(n?r.splice(r.indexOf(n)>>>0,1):t.set(e,[]))},emit:function(e,n){var r=t.get(e);r&&r.slice().map(function(a){a(n)}),(r=t.get("*"))&&r.slice().map(function(a){a(e,n)})}}}const Ds=new W_,j_=t=>t.replace(/\w\S*/g,e=>e.charAt(0).toUpperCase()+e.substr(1).toLowerCase()),Y_=function(t){return t?t.charAt(0).toUpperCase()+t.slice(1):""},Z_={name:"ProvenancePopup",props:{tooltipEntry:{type:Object,default:()=>({destinations:[],origins:[],components:[],destinationsWithDatasets:[],originsWithDatasets:[],componentsWithDatasets:[],resource:void 0})}},inject:["getFeaturesAlert"],data:function(){return{controller:void 0,activeSpecies:void 0,pubmedSearchUrl:"",loading:!1,showToolip:!1,showDetails:!1,originDescriptions:{motor:"is the location of the initial cell body of the circuit",sensory:"is the location of the initial cell body in the PNS circuit"},componentsWithDatasets:[],uberons:[{id:void 0,name:void 0}]}},computed:{featuresAlert(){return this.getFeaturesAlert()},resources:function(){let t=[];return this.tooltipEntry&&this.tooltipEntry.hyperlinks&&(t=this.tooltipEntry.hyperlinks),t},originDescription:function(){return this.tooltipEntry&&this.tooltipEntry.title&&this.tooltipEntry.title.toLowerCase().includes("motor")?this.originDescriptions.motor:this.originDescriptions.sensory},provSpeciesDescription:function(){let t="Studied in";return this.tooltipEntry.provenanceTaxonomyLabel.forEach(e=>{t+=` ${e},`}),t=t.slice(0,-1),t+=" species",t}},methods:{titleCase:function(t){return j_(t)},capitalise:function(t){return Y_(t)},openUrl:function(t){window.open(t,"_blank")},openAll:function(){Ds.emit("onActionClick",{type:"Facets",labels:this.tooltipEntry.componentsWithDatasets.map(t=>t.name)})},openAxons:function(){Ds.emit("onActionClick",{type:"Facets",labels:this.tooltipEntry.destinationsWithDatasets.map(t=>t.name)})},openDendrites:function(){Ds.emit("onActionClick",{type:"Facets",labels:this.tooltipEntry.originsWithDatasets.map(t=>t.name)})},pubmedSearchUrlUpdate:function(t){this.pubmedSearchUrl=t}}},za=t=>(o.pushScopeId("data-v-3d217adc"),t=t(),o.popScopeId(),t),X_={key:0,class:"main"},Q_={key:0,class:"block"},J_={class:"title"},eP={key:0,class:"subtitle"},tP={key:1,class:"block"},nP={class:"title"},rP={key:2,class:"attribute-title-container"},aP=za(()=>o.createElementVNode("span",{class:"attribute-title"},"Alert",-1)),iP={style:{"word-break":"keep-all"}},oP={class:"content-container scrollbar"},sP={key:0,class:"block"},lP={class:"attribute-title-container"},cP=za(()=>o.createElementVNode("span",{class:"attribute-title"},"Origin",-1)),uP={style:{"word-break":"keep-all"}},dP=za(()=>o.createElementVNode("i",null,"Origin",-1)),fP=["origin-item-label"],hP={key:0,class:"separator"},pP={key:1,class:"block"},vP=za(()=>o.createElementVNode("div",{class:"attribute-title-container"},[o.createElementVNode("div",{class:"attribute-title"},"Components")],-1)),gP=["component-item-label"],mP={key:0,class:"separator"},yP={key:2,class:"block"},bP={class:"attribute-title-container"},wP=za(()=>o.createElementVNode("span",{class:"attribute-title"},"Destination",-1)),CP=za(()=>o.createElementVNode("span",{style:{"word-break":"keep-all"}},[o.createElementVNode("i",null,"Destination"),o.createTextVNode(" is where the axons terminate ")],-1)),kP=["destination-item-label"],xP={key:0,class:"separator"};function EP(t,e,n,r,a,i){const s=yb,l=yt,c=Do,u=Zu,d=lo,f=ln,p=kg,v=Al;return n.tooltipEntry?o.withDirectives((o.openBlock(),o.createElementBlock("div",X_,[n.tooltipEntry.title?(o.openBlock(),o.createElementBlock("div",Q_,[o.createElementVNode("div",J_,o.toDisplayString(i.capitalise(n.tooltipEntry.title)),1),n.tooltipEntry.provenanceTaxonomyLabel&&n.tooltipEntry.provenanceTaxonomyLabel.length>0?(o.openBlock(),o.createElementBlock("div",eP,o.toDisplayString(i.provSpeciesDescription),1)):o.createCommentVNode("",!0)])):(o.openBlock(),o.createElementBlock("div",tP,[o.createElementVNode("div",nP,o.toDisplayString(n.tooltipEntry.featureId),1)])),i.featuresAlert?(o.openBlock(),o.createElementBlock("div",rP,[aP,o.createVNode(c,{width:"250",trigger:"hover",teleported:!1,"popper-class":"popover-origin-help"},{reference:o.withCtx(()=>[o.createVNode(l,{class:"info"},{default:o.withCtx(()=>[o.createVNode(s)]),_:1})]),default:o.withCtx(()=>[o.createElementVNode("span",iP,o.toDisplayString(i.featuresAlert),1)]),_:1})])):o.createCommentVNode("",!0),o.withDirectives(o.createElementVNode("div",{class:"hide",id:"hide-path-info",onClick:e[0]||(e[0]=h=>t.showDetails=!1)},[o.createTextVNode(" Hide path information "),o.createVNode(l,null,{default:o.withCtx(()=>[o.createVNode(u)]),_:1})],512),[[o.vShow,t.showDetails]]),o.withDirectives(o.createElementVNode("div",{class:"hide",id:"show-path-info",onClick:e[1]||(e[1]=h=>t.showDetails=!0)},[o.createTextVNode(" Show path information "),o.createVNode(l,null,{default:o.withCtx(()=>[o.createVNode(d)]),_:1})],512),[[o.vShow,!t.showDetails]]),o.createVNode(o.Transition,{name:"slide-fade"},{default:o.withCtx(()=>[o.withDirectives(o.createElementVNode("div",oP,[o.createTextVNode(o.toDisplayString(n.tooltipEntry.paths)+" ",1),n.tooltipEntry.origins&&n.tooltipEntry.origins.length>0?(o.openBlock(),o.createElementBlock("div",sP,[o.createElementVNode("div",lP,[cP,o.createVNode(c,{width:"250",trigger:"hover",teleported:!1,"popper-class":"popover-origin-help"},{reference:o.withCtx(()=>[o.createVNode(l,{class:"info"},{default:o.withCtx(()=>[o.createVNode(s)]),_:1})]),default:o.withCtx(()=>[o.createElementVNode("span",uP,[dP,o.createTextVNode(" "+o.toDisplayString(i.originDescription),1)])]),_:1})]),(o.openBlock(!0),o.createElementBlock(o.Fragment,null,o.renderList(n.tooltipEntry.origins,(h,g)=>(o.openBlock(),o.createElementBlock("div",{class:"attribute-content","origin-item-label":h,key:h},[o.createTextVNode(o.toDisplayString(i.capitalise(h))+" ",1),g!=n.tooltipEntry.origins.length-1?(o.openBlock(),o.createElementBlock("div",hP)):o.createCommentVNode("",!0)],8,fP))),128)),o.withDirectives(o.createVNode(f,{class:"button",id:"open-dendrites-button",onClick:i.openDendrites},{default:o.withCtx(()=>[o.createTextVNode(" Explore origin data ")]),_:1},8,["onClick"]),[[o.vShow,n.tooltipEntry.originsWithDatasets&&n.tooltipEntry.originsWithDatasets.length>0]])])):o.createCommentVNode("",!0),n.tooltipEntry.components&&n.tooltipEntry.components.length>0?(o.openBlock(),o.createElementBlock("div",pP,[vP,(o.openBlock(!0),o.createElementBlock(o.Fragment,null,o.renderList(n.tooltipEntry.components,(h,g)=>(o.openBlock(),o.createElementBlock("div",{class:"attribute-content","component-item-label":h,key:h},[o.createTextVNode(o.toDisplayString(i.capitalise(h))+" ",1),g!=n.tooltipEntry.components.length-1?(o.openBlock(),o.createElementBlock("div",mP)):o.createCommentVNode("",!0)],8,gP))),128))])):o.createCommentVNode("",!0),n.tooltipEntry.destinations&&n.tooltipEntry.destinations.length>0?(o.openBlock(),o.createElementBlock("div",yP,[o.createElementVNode("div",bP,[wP,o.createVNode(c,{width:"250",trigger:"hover",teleported:!1,"popper-class":"popover-origin-help"},{reference:o.withCtx(()=>[o.createVNode(l,{class:"info"},{default:o.withCtx(()=>[o.createVNode(s)]),_:1})]),default:o.withCtx(()=>[CP]),_:1})]),(o.openBlock(!0),o.createElementBlock(o.Fragment,null,o.renderList(n.tooltipEntry.destinations,(h,g)=>(o.openBlock(),o.createElementBlock("div",{class:"attribute-content","destination-item-label":h,key:h},[o.createTextVNode(o.toDisplayString(i.capitalise(h))+" ",1),g!=n.tooltipEntry.destinations.length-1?(o.openBlock(),o.createElementBlock("div",xP)):o.createCommentVNode("",!0)],8,kP))),128)),o.withDirectives(o.createVNode(f,{class:"button",onClick:i.openAxons},{default:o.withCtx(()=>[o.createTextVNode(" Explore destination data ")]),_:1},8,["onClick"]),[[o.vShow,n.tooltipEntry.destinationsWithDatasets&&n.tooltipEntry.destinationsWithDatasets.length>0]])])):o.createCommentVNode("",!0),o.withDirectives(o.createVNode(f,{class:"button",onClick:i.openAll},{default:o.withCtx(()=>[o.createTextVNode(" Search for data on components ")]),_:1},8,["onClick"]),[[o.vShow,n.tooltipEntry.componentsWithDatasets&&n.tooltipEntry.componentsWithDatasets.length>0]]),i.resources.length?(o.openBlock(),o.createBlock(p,{key:3,resources:i.resources},null,8,["resources"])):o.createCommentVNode("",!0)],512),[[o.vShow,t.showDetails]])]),_:1})])),[[v,t.loading]]):o.createCommentVNode("",!0)}const SP=cn(Z_,[["render",EP],["__scopeId","data-v-3d217adc"]]),TP={name:"Tooltip",props:{tooltipEntry:{type:Object},annotationDisplay:{type:Boolean,default:!1},annotationEntry:{type:Object}},mounted:function(){Ds.on("onActionClick",t=>{this.$emit("onActionClick",t)})}},BP={class:"tooltip-container",id:"tooltip-container"};function NP(t,e,n,r,a,i){const s=Vf,l=SP;return o.openBlock(),o.createElementBlock("div",BP,[n.annotationDisplay?(o.openBlock(),o.createBlock(s,{key:0,annotationEntry:n.annotationEntry,onAnnotation:e[0]||(e[0]=c=>t.$emit("annotation",c))},null,8,["annotationEntry"])):(o.openBlock(),o.createBlock(l,{key:1,tooltipEntry:n.tooltipEntry},null,8,["tooltipEntry"]))])}const DP=cn(TP,[["render",NP],["__scopeId","data-v-229b3988"]]),_P={name:"TreeControls",props:{mapType:{type:String,required:!0},isReady:{type:Boolean,default:!0},title:{type:String},treeData:{type:Array,default:function(){return[]}},showColourPicker:{type:Boolean,default:!1},active:{type:[String,Array],required:!0},hover:{type:[String,Array],required:!0},enableFilter:{type:Boolean,default:!0}},data:function(){return{defaultExpandedKeys:["All"],filterText:"",myPopperClass:"hide-scaffold-colour-popup",tooltipVisible:!1,tooltipLabel:"",tooltipAtBottom:!1}},computed:{isFlatmap:function(){return this.mapType==="flatmap"},isScaffold:function(){return this.mapType==="scaffold"},nodeKey:function(){if(this.isFlatmap)return"key";if(this.isScaffold)return"id"},expandedKeys:function(){if(this.isFlatmap)return this.defaultExpandedKeys;if(this.isScaffold)return[]}},watch:{showColourPicker:{immediate:!0,handler:function(){this.showColourPicker?this.myPopperClass="showPicker":this.myPopperClass="hide-scaffold-colour-popup"}},filterText:{handler:function(t){this.$refs.regionTree&&this.$refs.regionTree.filter(t)}}},methods:{filterNode:function(t,e){return t?e.label?e.label.toLowerCase().includes(t.toLowerCase()):!1:!0},setColour:function(t,e){this.$emit("setColour",t,e)},getBackgroundStyles:function(t){return"colour"in t?{background:t.colour}:{}},nodeIsActive:function(t){return this.active===t.models},nodeIsHover:function(t){return this.hover===t.models},changeActiveByNode:function(t,e=!1){this.isFlatmap?t.models&&this.$emit("changeActive",t.models):this.isScaffold&&(t.isPrimitives||t.isRegion)&&this.$emit("changeActive",t,e)},changeHoverByNode:function(t,e=!1){this.isFlatmap?t.models&&this.$emit("changeHover",t.models):this.isScaffold&&t.isPrimitives&&this.$emit("changeHover",t,e)},checkChanged:function(t,e){if(this.isFlatmap){const n=e.checkedKeys.includes(t.key);t.key==="All"?this.$emit("checkAll",n):this.$emit("checkChanged",{key:t.key,value:n})}else this.isScaffold&&this.$emit("checkChanged",t,e)},displayTooltip:function(t,e,n){const a=n.target.closest(".el-tree-node__content"),i=a.clientWidth,s=a.getBoundingClientRect().x,l=a.querySelector(".lastChildInItem");let c=0;if(l){const d=l.getBoundingClientRect();c=d.x+d.width-s}const u=c>i;this.tooltipVisible=u&&e,this.tooltipLabel=t,this.tooltipAtBottom=.5>n.layerY/this.$refs.treeContainer.clientHeight}},unmounted:function(){this.sortedPrimitiveGroups=void 0},mounted:function(){this.$refs.regionTree&&this.$refs.regionTree.filter(this.filterText)}},PP={class:"selections-container"},OP={class:"title-text"},IP={class:"tree-container",ref:"treeContainer"},LP={class:"tooltip-text"},MP=["onClick","onMouseover","onMouseenter"],FP=["onClick","onMouseover","onMouseenter"],AP={class:"lastChildInItem"},VP={key:0,class:"node-options"};function RP(t,e,n,r,a,i){const s=ui,l=si,c=Bo,u=Do,d=ix,f=lE,p=Al;return o.openBlock(),o.createElementBlock("div",PP,[n.title?(o.openBlock(),o.createBlock(c,{key:0},{default:o.withCtx(()=>[o.createVNode(s,{span:12},{default:o.withCtx(()=>[o.createElementVNode("div",OP,o.toDisplayString(n.title),1)]),_:1}),n.enableFilter?(o.openBlock(),o.createBlock(s,{key:0,span:12},{default:o.withCtx(()=>[o.createElementVNode("div",null,[o.createVNode(l,{class:"tree-filter-input",modelValue:t.filterText,"onUpdate:modelValue":e[0]||(e[0]=v=>t.filterText=v),placeholder:"Filter "+n.title},null,8,["modelValue","placeholder"])])]),_:1})):o.createCommentVNode("",!0)]),_:1})):o.createCommentVNode("",!0),o.createElementVNode("div",IP,[o.createElementVNode("div",{class:o.normalizeClass(["tree-tooltip",t.tooltipAtBottom?"bottom":""])},[o.createVNode(u,{ref:"tooltip",visible:t.tooltipVisible&&t.tooltipLabel!=="",placement:"top","show-arrow":!1,teleported:!1,trigger:"manual","popper-class":"tree-tooltip-popper","virtual-triggering":"",width:260},{default:o.withCtx(()=>[o.createElementVNode("div",LP,o.toDisplayString(t.tooltipLabel),1)]),_:1},8,["visible"])],2),o.withDirectives((o.openBlock(),o.createBlock(f,{ref:"regionTree","element-loading-background":"rgba(0, 0, 0, 0.3)","show-checkbox":"","node-key":i.nodeKey,data:n.treeData,"check-strictly":!1,"expand-on-click-node":!1,"render-after-expand":!1,"default-expanded-keys":i.expandedKeys,onCheck:i.checkChanged,indent:8,"filter-node-method":i.filterNode,class:o.normalizeClass([n.mapType==="flatmap"?"hide_grandchildren_checkbox":""])},{default:o.withCtx(({node:v,data:h})=>[n.mapType==="flatmap"?(o.openBlock(),o.createElementBlock("span",{key:0,class:o.normalizeClass(["region-tree-node",{activeItem:i.nodeIsActive(h),hoverItem:i.nodeIsHover(h)}]),onClick:g=>i.changeActiveByNode(h),onMouseover:g=>i.changeHoverByNode(h,!1),onMouseenter:g=>i.displayTooltip(v.label,!0,g),onMouseleave:e[1]||(e[1]=g=>i.displayTooltip("",!1,g))},[o.createElementVNode("div",{style:o.normalizeStyle(i.getBackgroundStyles(h)),class:"lastChildInItem"},o.toDisplayString(v.label),5)],42,MP)):n.mapType==="scaffold"?(o.openBlock(),o.createElementBlock("span",{key:1,class:o.normalizeClass(["region-tree-node",{activeItem:n.active.includes(h.id),hoverItem:n.hover.includes(h.id)}]),onClick:g=>i.changeActiveByNode(h,!0),onMouseover:g=>i.changeHoverByNode(h,!0,g),onMouseenter:g=>i.displayTooltip(v.label,!0,g),onMouseleave:e[2]||(e[2]=g=>i.displayTooltip("",!1,g))},[h.isPrimitives?(o.openBlock(),o.createBlock(d,{key:0,class:o.normalizeClass({"show-picker":n.showColourPicker}),modelValue:h.activeColour,"onUpdate:modelValue":g=>h.activeColour=g,size:"small","popper-class":t.myPopperClass,onChange:g=>i.setColour(h,g)},null,8,["class","modelValue","onUpdate:modelValue","popper-class","onChange"])):o.createCommentVNode("",!0),o.createElementVNode("div",AP,[o.createElementVNode("span",null,o.toDisplayString(v.label),1),h.isTextureSlides?(o.openBlock(),o.createElementBlock("span",VP," (Texture) ")):o.createCommentVNode("",!0)])],42,FP)):o.createCommentVNode("",!0)]),_:1},8,["node-key","data","default-expanded-keys","onCheck","filter-node-method","class"])),[[p,!n.isReady]])],512)])}const $P=cn(_P,[["render",RP],["__scopeId","data-v-823a8388"]]);Re.AnnotationPopup=Vf,Re.ConnectivityGraph=G3,Re.CopyToClipboard=Vl,Re.CreateTooltipContent=$E,Re.DrawToolbar=y_,Re.ExternalResourceCard=kg,Re.HelpModeDialog=E_,Re.Tooltip=DP,Re.TreeControls=$P,Object.defineProperty(Re,Symbol.toStringTag,{value:"Module"})});
468
+ `+a}this.$emit("references-loaded",{style:e,list:n})},replaceLinkInText:function(t){const e="https://";let n=t.split(e)[1];if(n){n=n.split(" ")[0],n=n.trim(),n.endsWith(".")&&(n=n.substring(0,n.length-1));const r=e+n,a=`<a href="${r}" target="_blank">${r}</a>`;return t.replace(r,a)}return t},searchPMID:async function(t){const e=`https://eutils.ncbi.nlm.nih.gov/entrez/eutils/esearch.fcgi?db=pubmed&term=${t}&format=json`;return await this.fetchData(e)},getCitationTextByDOI:async function(t){const e=`${this.crosscite_host}/format?doi=${t}&style=${this.citationType}&lang=en-US`;return await this.fetchData(e,"text")},getDOIFromPubMedID:async function(t){const e=`https://eutils.ncbi.nlm.nih.gov/entrez/eutils/esummary.fcgi?db=pubmed&id=${t}&format=json`;return await this.fetchData(e)},formatOpenLibReferences:function(){this.openLibReferences.forEach(t=>{const{bookId:e}=t;this.getBookData(e).then(n=>{const{title:r,authors:a,publish_date:i}=n;r&&(t.title=r),i&&(t.date=i),a&&(t.authors=[],a.forEach(s=>{this.getBookAuthor(s.key).then(l=>{const{name:c}=l;c&&(t.authors.push(c),this.updateCopyContents())})})),this.updateCopyContents()})})},getBookData:async function(t){const e=`https://openlibrary.org/books/${t}.json`;return await this.fetchData(e)},getBookAuthor:async function(t){const e=`https://openlibrary.org${t}.json`;return await this.fetchData(e)},formatCopyReference:function(t){const e=[],{title:n,date:r,authors:a,url:i}=t;return n&&e.push(n),r&&e.push(`(${r})`),a&&e.push(`- ${a.join(", ")}`),e.push(`<div><a href="${i}" target="_blank">${i}</a></div>`),e.join(" ")},fetchData:async function(t,e){try{const n=await fetch(t);if(!n.ok)throw new Error(`Response status: ${n.status}`);return e==="text"?await n.text():await n.json()}catch(n){throw new Error(n)}}}},Zr=t=>(o.pushScopeId("data-v-e8282d9f"),t=t(),o.popScopeId(),t),__={class:"resource-container"},P_={class:"attribute-title-container"},O_=Zr(()=>o.createElementVNode("div",{class:"attribute-title"},"References",-1)),I_={class:"copy-button"},L_={key:0,class:"citation-tabs"},M_={class:"citation-list"},F_=Zr(()=>o.createElementVNode("span",null,"Internal Server Error",-1)),A_=Zr(()=>o.createElementVNode("br",null,null,-1)),V_=Zr(()=>o.createElementVNode("br",null,null,-1)),R_=["href"],$_=Zr(()=>o.createElementVNode("br",null,null,-1)),z_=Zr(()=>o.createElementVNode("span",null,"Sorry, something went wrong.",-1)),H_=Zr(()=>o.createElementVNode("br",null,null,-1)),K_=["onClick"],q_=["innerHTML"],U_=["innerHTML"],G_=["href"];function W_(t,e,n,r,a,i){const s=Vl,l=ln;return o.openBlock(),o.createElementBlock("div",__,[o.createElementVNode("div",P_,[O_,o.createElementVNode("div",I_,[o.createVNode(s,{label:"Copy list to clipboard",content:t.referecesListContent},null,8,["content"])])]),i.referencesWithDOI?(o.openBlock(),o.createElementBlock("div",L_,[(o.openBlock(!0),o.createElementBlock(o.Fragment,null,o.renderList(t.citationOptions,c=>(o.openBlock(),o.createBlock(l,{link:"",key:c.value,type:t.citationType===c.value?"primary":"",onClick:u=>i.onCitationFormatChange(c.value)},{default:o.withCtx(()=>[o.createTextVNode(o.toDisplayString(c.label),1)]),_:2},1032,["type","onClick"]))),128))])):o.createCommentVNode("",!0),o.createElementVNode("ul",M_,[(o.openBlock(!0),o.createElementBlock(o.Fragment,null,o.renderList(t.pubMedReferences,c=>{var u,d,f,p;return o.openBlock(),o.createElementBlock("li",{key:c.id,class:o.normalizeClass({loading:c.citation&&!c.citation.error&&c.citation[t.citationType]===""})},[c.citation?(o.openBlock(),o.createElementBlock(o.Fragment,{key:0},[((u=c.citation.error)==null?void 0:u.ref)==="doi"&&((d=c.citation.error)==null?void 0:d.type)===t.citationType?(o.openBlock(),o.createElementBlock(o.Fragment,{key:0},[F_,A_,o.createTextVNode(" Sorry, something went wrong."),V_,o.createTextVNode(" The dataset citation generator ("),o.createElementVNode("a",{href:t.crosscite_host,target:"_blank"},o.toDisplayString(t.crosscite_host),9,R_),o.createTextVNode(") encountered an internal error and was unable to complete your request."),$_,o.createTextVNode(" Please come back later. ")],64)):((f=c.citation.error)==null?void 0:f.ref)==="pubmed"&&((p=c.citation.error)==null?void 0:p.type)===t.citationType?(o.openBlock(),o.createElementBlock(o.Fragment,{key:1},[z_,H_,o.createTextVNode(" Please try again. "),o.createElementVNode("span",{class:"reload-button",onClick:v=>i.reloadCitation(c)},"Reload",8,K_)],64)):(o.openBlock(),o.createElementBlock(o.Fragment,{key:2},[o.createElementVNode("span",{innerHTML:c.citation[t.citationType]},null,8,q_),o.createVNode(s,{content:c.citation[t.citationType]},null,8,["content"])],64))],64)):o.createCommentVNode("",!0)],2)}),128)),(o.openBlock(!0),o.createElementBlock(o.Fragment,null,o.renderList(t.openLibReferences,c=>(o.openBlock(),o.createElementBlock("li",null,[o.createElementVNode("div",{innerHTML:i.formatCopyReference(c)},null,8,U_),o.createVNode(s,{content:i.formatCopyReference(c)},null,8,["content"])]))),256)),(o.openBlock(!0),o.createElementBlock(o.Fragment,null,o.renderList(t.isbnDBReferences,c=>(o.openBlock(),o.createElementBlock("li",null,[o.createElementVNode("a",{href:c.url,target:"_blank"},o.toDisplayString(c.url),9,G_),o.createVNode(s,{content:c.url},null,8,["content"])]))),256))])])}const kg=cn(D_,[["render",W_],["__scopeId","data-v-e8282d9f"]]);function j_(t){return{all:t=t||new Map,on:function(e,n){var r=t.get(e);r?r.push(n):t.set(e,[n])},off:function(e,n){var r=t.get(e);r&&(n?r.splice(r.indexOf(n)>>>0,1):t.set(e,[]))},emit:function(e,n){var r=t.get(e);r&&r.slice().map(function(a){a(n)}),(r=t.get("*"))&&r.slice().map(function(a){a(e,n)})}}}const Ds=new j_,Y_=t=>t.replace(/\w\S*/g,e=>e.charAt(0).toUpperCase()+e.substr(1).toLowerCase()),Z_=function(t){return t?t.charAt(0).toUpperCase()+t.slice(1):""},X_={name:"ProvenancePopup",props:{tooltipEntry:{type:Object,default:()=>({destinations:[],origins:[],components:[],destinationsWithDatasets:[],originsWithDatasets:[],componentsWithDatasets:[],resource:void 0})}},inject:["getFeaturesAlert"],data:function(){return{controller:void 0,activeSpecies:void 0,pubmedSearchUrl:"",loading:!1,showToolip:!1,showDetails:!1,originDescriptions:{motor:"is the location of the initial cell body of the circuit",sensory:"is the location of the initial cell body in the PNS circuit"},componentsWithDatasets:[],uberons:[{id:void 0,name:void 0}]}},computed:{featuresAlert(){return this.getFeaturesAlert()},resources:function(){let t=[];return this.tooltipEntry&&this.tooltipEntry.hyperlinks&&(t=this.tooltipEntry.hyperlinks),t},originDescription:function(){return this.tooltipEntry&&this.tooltipEntry.title&&this.tooltipEntry.title.toLowerCase().includes("motor")?this.originDescriptions.motor:this.originDescriptions.sensory},provSpeciesDescription:function(){let t="Studied in";return this.tooltipEntry.provenanceTaxonomyLabel.forEach(e=>{t+=` ${e},`}),t=t.slice(0,-1),t+=" species",t}},methods:{titleCase:function(t){return Y_(t)},capitalise:function(t){return Z_(t)},openUrl:function(t){window.open(t,"_blank")},openAll:function(){Ds.emit("onActionClick",{type:"Facets",labels:this.tooltipEntry.componentsWithDatasets.map(t=>t.name)})},openAxons:function(){Ds.emit("onActionClick",{type:"Facets",labels:this.tooltipEntry.destinationsWithDatasets.map(t=>t.name)})},openDendrites:function(){Ds.emit("onActionClick",{type:"Facets",labels:this.tooltipEntry.originsWithDatasets.map(t=>t.name)})},pubmedSearchUrlUpdate:function(t){this.pubmedSearchUrl=t}}},za=t=>(o.pushScopeId("data-v-3d217adc"),t=t(),o.popScopeId(),t),Q_={key:0,class:"main"},J_={key:0,class:"block"},eP={class:"title"},tP={key:0,class:"subtitle"},nP={key:1,class:"block"},rP={class:"title"},aP={key:2,class:"attribute-title-container"},iP=za(()=>o.createElementVNode("span",{class:"attribute-title"},"Alert",-1)),oP={style:{"word-break":"keep-all"}},sP={class:"content-container scrollbar"},lP={key:0,class:"block"},cP={class:"attribute-title-container"},uP=za(()=>o.createElementVNode("span",{class:"attribute-title"},"Origin",-1)),dP={style:{"word-break":"keep-all"}},fP=za(()=>o.createElementVNode("i",null,"Origin",-1)),hP=["origin-item-label"],pP={key:0,class:"separator"},vP={key:1,class:"block"},gP=za(()=>o.createElementVNode("div",{class:"attribute-title-container"},[o.createElementVNode("div",{class:"attribute-title"},"Components")],-1)),mP=["component-item-label"],yP={key:0,class:"separator"},bP={key:2,class:"block"},wP={class:"attribute-title-container"},CP=za(()=>o.createElementVNode("span",{class:"attribute-title"},"Destination",-1)),kP=za(()=>o.createElementVNode("span",{style:{"word-break":"keep-all"}},[o.createElementVNode("i",null,"Destination"),o.createTextVNode(" is where the axons terminate ")],-1)),xP=["destination-item-label"],EP={key:0,class:"separator"};function SP(t,e,n,r,a,i){const s=yb,l=yt,c=Do,u=Zu,d=lo,f=ln,p=kg,v=Al;return n.tooltipEntry?o.withDirectives((o.openBlock(),o.createElementBlock("div",Q_,[n.tooltipEntry.title?(o.openBlock(),o.createElementBlock("div",J_,[o.createElementVNode("div",eP,o.toDisplayString(i.capitalise(n.tooltipEntry.title)),1),n.tooltipEntry.provenanceTaxonomyLabel&&n.tooltipEntry.provenanceTaxonomyLabel.length>0?(o.openBlock(),o.createElementBlock("div",tP,o.toDisplayString(i.provSpeciesDescription),1)):o.createCommentVNode("",!0)])):(o.openBlock(),o.createElementBlock("div",nP,[o.createElementVNode("div",rP,o.toDisplayString(n.tooltipEntry.featureId),1)])),i.featuresAlert?(o.openBlock(),o.createElementBlock("div",aP,[iP,o.createVNode(c,{width:"250",trigger:"hover",teleported:!1,"popper-class":"popover-origin-help"},{reference:o.withCtx(()=>[o.createVNode(l,{class:"info"},{default:o.withCtx(()=>[o.createVNode(s)]),_:1})]),default:o.withCtx(()=>[o.createElementVNode("span",oP,o.toDisplayString(i.featuresAlert),1)]),_:1})])):o.createCommentVNode("",!0),o.withDirectives(o.createElementVNode("div",{class:"hide",id:"hide-path-info",onClick:e[0]||(e[0]=h=>t.showDetails=!1)},[o.createTextVNode(" Hide path information "),o.createVNode(l,null,{default:o.withCtx(()=>[o.createVNode(u)]),_:1})],512),[[o.vShow,t.showDetails]]),o.withDirectives(o.createElementVNode("div",{class:"hide",id:"show-path-info",onClick:e[1]||(e[1]=h=>t.showDetails=!0)},[o.createTextVNode(" Show path information "),o.createVNode(l,null,{default:o.withCtx(()=>[o.createVNode(d)]),_:1})],512),[[o.vShow,!t.showDetails]]),o.createVNode(o.Transition,{name:"slide-fade"},{default:o.withCtx(()=>[o.withDirectives(o.createElementVNode("div",sP,[o.createTextVNode(o.toDisplayString(n.tooltipEntry.paths)+" ",1),n.tooltipEntry.origins&&n.tooltipEntry.origins.length>0?(o.openBlock(),o.createElementBlock("div",lP,[o.createElementVNode("div",cP,[uP,o.createVNode(c,{width:"250",trigger:"hover",teleported:!1,"popper-class":"popover-origin-help"},{reference:o.withCtx(()=>[o.createVNode(l,{class:"info"},{default:o.withCtx(()=>[o.createVNode(s)]),_:1})]),default:o.withCtx(()=>[o.createElementVNode("span",dP,[fP,o.createTextVNode(" "+o.toDisplayString(i.originDescription),1)])]),_:1})]),(o.openBlock(!0),o.createElementBlock(o.Fragment,null,o.renderList(n.tooltipEntry.origins,(h,g)=>(o.openBlock(),o.createElementBlock("div",{class:"attribute-content","origin-item-label":h,key:h},[o.createTextVNode(o.toDisplayString(i.capitalise(h))+" ",1),g!=n.tooltipEntry.origins.length-1?(o.openBlock(),o.createElementBlock("div",pP)):o.createCommentVNode("",!0)],8,hP))),128)),o.withDirectives(o.createVNode(f,{class:"button",id:"open-dendrites-button",onClick:i.openDendrites},{default:o.withCtx(()=>[o.createTextVNode(" Explore origin data ")]),_:1},8,["onClick"]),[[o.vShow,n.tooltipEntry.originsWithDatasets&&n.tooltipEntry.originsWithDatasets.length>0]])])):o.createCommentVNode("",!0),n.tooltipEntry.components&&n.tooltipEntry.components.length>0?(o.openBlock(),o.createElementBlock("div",vP,[gP,(o.openBlock(!0),o.createElementBlock(o.Fragment,null,o.renderList(n.tooltipEntry.components,(h,g)=>(o.openBlock(),o.createElementBlock("div",{class:"attribute-content","component-item-label":h,key:h},[o.createTextVNode(o.toDisplayString(i.capitalise(h))+" ",1),g!=n.tooltipEntry.components.length-1?(o.openBlock(),o.createElementBlock("div",yP)):o.createCommentVNode("",!0)],8,mP))),128))])):o.createCommentVNode("",!0),n.tooltipEntry.destinations&&n.tooltipEntry.destinations.length>0?(o.openBlock(),o.createElementBlock("div",bP,[o.createElementVNode("div",wP,[CP,o.createVNode(c,{width:"250",trigger:"hover",teleported:!1,"popper-class":"popover-origin-help"},{reference:o.withCtx(()=>[o.createVNode(l,{class:"info"},{default:o.withCtx(()=>[o.createVNode(s)]),_:1})]),default:o.withCtx(()=>[kP]),_:1})]),(o.openBlock(!0),o.createElementBlock(o.Fragment,null,o.renderList(n.tooltipEntry.destinations,(h,g)=>(o.openBlock(),o.createElementBlock("div",{class:"attribute-content","destination-item-label":h,key:h},[o.createTextVNode(o.toDisplayString(i.capitalise(h))+" ",1),g!=n.tooltipEntry.destinations.length-1?(o.openBlock(),o.createElementBlock("div",EP)):o.createCommentVNode("",!0)],8,xP))),128)),o.withDirectives(o.createVNode(f,{class:"button",onClick:i.openAxons},{default:o.withCtx(()=>[o.createTextVNode(" Explore destination data ")]),_:1},8,["onClick"]),[[o.vShow,n.tooltipEntry.destinationsWithDatasets&&n.tooltipEntry.destinationsWithDatasets.length>0]])])):o.createCommentVNode("",!0),o.withDirectives(o.createVNode(f,{class:"button",onClick:i.openAll},{default:o.withCtx(()=>[o.createTextVNode(" Search for data on components ")]),_:1},8,["onClick"]),[[o.vShow,n.tooltipEntry.componentsWithDatasets&&n.tooltipEntry.componentsWithDatasets.length>0]]),i.resources.length?(o.openBlock(),o.createBlock(p,{key:3,resources:i.resources},null,8,["resources"])):o.createCommentVNode("",!0)],512),[[o.vShow,t.showDetails]])]),_:1})])),[[v,t.loading]]):o.createCommentVNode("",!0)}const TP=cn(X_,[["render",SP],["__scopeId","data-v-3d217adc"]]),BP={name:"Tooltip",props:{tooltipEntry:{type:Object},annotationDisplay:{type:Boolean,default:!1},annotationEntry:{type:Object}},mounted:function(){Ds.on("onActionClick",t=>{this.$emit("onActionClick",t)})}},NP={class:"tooltip-container",id:"tooltip-container"};function DP(t,e,n,r,a,i){const s=Vf,l=TP;return o.openBlock(),o.createElementBlock("div",NP,[n.annotationDisplay?(o.openBlock(),o.createBlock(s,{key:0,annotationEntry:n.annotationEntry,onAnnotation:e[0]||(e[0]=c=>t.$emit("annotation",c))},null,8,["annotationEntry"])):(o.openBlock(),o.createBlock(l,{key:1,tooltipEntry:n.tooltipEntry},null,8,["tooltipEntry"]))])}const _P=cn(BP,[["render",DP],["__scopeId","data-v-229b3988"]]),PP={name:"TreeControls",props:{mapType:{type:String,required:!0},isReady:{type:Boolean,default:!0},title:{type:String},treeData:{type:Array,default:function(){return[]}},showColourPicker:{type:Boolean,default:!1},active:{type:[String,Array],required:!0},hover:{type:[String,Array],required:!0},enableFilter:{type:Boolean,default:!0}},data:function(){return{defaultExpandedKeys:["All"],filterText:"",myPopperClass:"hide-scaffold-colour-popup",tooltipVisible:!1,tooltipLabel:"",tooltipAtBottom:!1}},computed:{isFlatmap:function(){return this.mapType==="flatmap"},isScaffold:function(){return this.mapType==="scaffold"},nodeKey:function(){if(this.isFlatmap)return"key";if(this.isScaffold)return"id"},expandedKeys:function(){if(this.isFlatmap)return this.defaultExpandedKeys;if(this.isScaffold)return[]}},watch:{showColourPicker:{immediate:!0,handler:function(){this.showColourPicker?this.myPopperClass="showPicker":this.myPopperClass="hide-scaffold-colour-popup"}},filterText:{handler:function(t){this.$refs.regionTree&&this.$refs.regionTree.filter(t)}}},methods:{filterNode:function(t,e){return t?e.label?e.label.toLowerCase().includes(t.toLowerCase()):!1:!0},setColour:function(t,e){this.$emit("setColour",t,e)},getBackgroundStyles:function(t){return"colour"in t?{background:t.colour}:{}},nodeIsActive:function(t){return this.active===t.models},nodeIsHover:function(t){return this.hover===t.models},changeActiveByNode:function(t,e=!1){this.isFlatmap?t.models&&this.$emit("changeActive",t.models):this.isScaffold&&(t.isPrimitives||t.isRegion)&&this.$emit("changeActive",t,e)},changeHoverByNode:function(t,e=!1){this.isFlatmap?t.models&&this.$emit("changeHover",t.models):this.isScaffold&&t.isPrimitives&&this.$emit("changeHover",t,e)},checkChanged:function(t,e){if(this.isFlatmap){const n=e.checkedKeys.includes(t.key);t.key==="All"?this.$emit("checkAll",n):this.$emit("checkChanged",{key:t.key,value:n})}else this.isScaffold&&this.$emit("checkChanged",t,e)},displayTooltip:function(t,e,n){const a=n.target.closest(".el-tree-node__content"),i=a.clientWidth,s=a.getBoundingClientRect().x,l=a.querySelector(".lastChildInItem");let c=0;if(l){const d=l.getBoundingClientRect();c=d.x+d.width-s}const u=c>i;this.tooltipVisible=u&&e,this.tooltipLabel=t,this.tooltipAtBottom=.5>n.layerY/this.$refs.treeContainer.clientHeight}},unmounted:function(){this.sortedPrimitiveGroups=void 0},mounted:function(){this.$refs.regionTree&&this.$refs.regionTree.filter(this.filterText)}},OP={class:"selections-container"},IP={class:"title-text"},LP={class:"tree-container",ref:"treeContainer"},MP={class:"tooltip-text"},FP=["onClick","onMouseover","onMouseenter"],AP=["onClick","onMouseover","onMouseenter"],VP={class:"lastChildInItem"},RP={key:0,class:"node-options"};function $P(t,e,n,r,a,i){const s=ui,l=si,c=Bo,u=Do,d=ix,f=lE,p=Al;return o.openBlock(),o.createElementBlock("div",OP,[n.title?(o.openBlock(),o.createBlock(c,{key:0},{default:o.withCtx(()=>[o.createVNode(s,{span:12},{default:o.withCtx(()=>[o.createElementVNode("div",IP,o.toDisplayString(n.title),1)]),_:1}),n.enableFilter?(o.openBlock(),o.createBlock(s,{key:0,span:12},{default:o.withCtx(()=>[o.createElementVNode("div",null,[o.createVNode(l,{class:"tree-filter-input",modelValue:t.filterText,"onUpdate:modelValue":e[0]||(e[0]=v=>t.filterText=v),placeholder:"Filter "+n.title},null,8,["modelValue","placeholder"])])]),_:1})):o.createCommentVNode("",!0)]),_:1})):o.createCommentVNode("",!0),o.createElementVNode("div",LP,[o.createElementVNode("div",{class:o.normalizeClass(["tree-tooltip",t.tooltipAtBottom?"bottom":""])},[o.createVNode(u,{ref:"tooltip",visible:t.tooltipVisible&&t.tooltipLabel!=="",placement:"top","show-arrow":!1,teleported:!1,trigger:"manual","popper-class":"tree-tooltip-popper","virtual-triggering":"",width:260},{default:o.withCtx(()=>[o.createElementVNode("div",MP,o.toDisplayString(t.tooltipLabel),1)]),_:1},8,["visible"])],2),o.withDirectives((o.openBlock(),o.createBlock(f,{ref:"regionTree","element-loading-background":"rgba(0, 0, 0, 0.3)","show-checkbox":"","node-key":i.nodeKey,data:n.treeData,"check-strictly":!1,"expand-on-click-node":!1,"render-after-expand":!1,"default-expanded-keys":i.expandedKeys,onCheck:i.checkChanged,indent:8,"filter-node-method":i.filterNode,class:o.normalizeClass([n.mapType==="flatmap"?"hide_grandchildren_checkbox":""])},{default:o.withCtx(({node:v,data:h})=>[n.mapType==="flatmap"?(o.openBlock(),o.createElementBlock("span",{key:0,class:o.normalizeClass(["region-tree-node",{activeItem:i.nodeIsActive(h),hoverItem:i.nodeIsHover(h)}]),onClick:g=>i.changeActiveByNode(h),onMouseover:g=>i.changeHoverByNode(h,!1),onMouseenter:g=>i.displayTooltip(v.label,!0,g),onMouseleave:e[1]||(e[1]=g=>i.displayTooltip("",!1,g))},[o.createElementVNode("div",{style:o.normalizeStyle(i.getBackgroundStyles(h)),class:"lastChildInItem"},o.toDisplayString(v.label),5)],42,FP)):n.mapType==="scaffold"?(o.openBlock(),o.createElementBlock("span",{key:1,class:o.normalizeClass(["region-tree-node",{activeItem:n.active.includes(h.id),hoverItem:n.hover.includes(h.id)}]),onClick:g=>i.changeActiveByNode(h,!0),onMouseover:g=>i.changeHoverByNode(h,!0,g),onMouseenter:g=>i.displayTooltip(v.label,!0,g),onMouseleave:e[2]||(e[2]=g=>i.displayTooltip("",!1,g))},[h.isPrimitives?(o.openBlock(),o.createBlock(d,{key:0,class:o.normalizeClass({"show-picker":n.showColourPicker}),modelValue:h.activeColour,"onUpdate:modelValue":g=>h.activeColour=g,size:"small","popper-class":t.myPopperClass,onChange:g=>i.setColour(h,g)},null,8,["class","modelValue","onUpdate:modelValue","popper-class","onChange"])):o.createCommentVNode("",!0),o.createElementVNode("div",VP,[o.createElementVNode("span",null,o.toDisplayString(v.label),1),h.isTextureSlides?(o.openBlock(),o.createElementBlock("span",RP," (Texture) ")):o.createCommentVNode("",!0)])],42,AP)):o.createCommentVNode("",!0)]),_:1},8,["node-key","data","default-expanded-keys","onCheck","filter-node-method","class"])),[[p,!n.isReady]])],512)])}const zP=cn(PP,[["render",$P],["__scopeId","data-v-823a8388"]]);Re.AnnotationPopup=Vf,Re.ConnectivityGraph=W3,Re.CopyToClipboard=Vl,Re.CreateTooltipContent=$E,Re.DrawToolbar=b_,Re.ExternalResourceCard=kg,Re.HelpModeDialog=S_,Re.Tooltip=_P,Re.TreeControls=zP,Object.defineProperty(Re,Symbol.toStringTag,{value:"Module"})});