i+1e-5||n.bounds.height>s+1e-5)&&Kt.n('Geometry made with figure "'+e.figure+'" has bounds '+n.bounds.toString()+" that are too large for the given size ("+i+","+s+"). See documentation for Shape.defineFigureGenerator."),n}static getFigureGenerators(){var t,e=new L;for(const i in z.qn)i!==i.toLowerCase()&&(t=z.qn[i],e.add(i,t));return e.w(),e}static defineFigureGenerator(t,e){Kt.t(t,"string",G,"defineFigureGenerator:name"),"string"==typeof e?(Ht,""!==e&&z.qn[e]||Kt.n("Shape.defineFigureGenerator synonym must not be empty or None or not a defined figure name: "+e)):Kt.t(e,"function",G,"defineFigureGenerator:func");var i=t.toLowerCase(),s=(Ht,""!==t&&t!==i||Kt.n("Shape.defineFigureGenerator name must not be empty or all-lower-case: "+t),z.qn);s[t]=e,s[i]=t}static getArrowheadGeometries(){var t,e,i=new L;for(const s in z.$g)void 0===G.co[s]&&(t=W.parse(z.$g[s],!1),G.co[s]=t,(t=s.toLowerCase())!==s)&&(G.co[t]=s);for(const n in G.co)n!==n.toLowerCase()&&(e=G.co[n])instanceof W&&i.add(n,e);return i.w(),i}static defineArrowheadGeometry(t,e){Kt.t(t,"string",G,"defineArrowheadGeometry:name");let i=null;i="string"==typeof e?(Kt.t(e,"string",G,"defineArrowheadGeometry:pathstr"),W.parse(e,!1)):(Kt.s(e,W,G,"defineArrowheadGeometry:pathstr"),e);var e=t.toLowerCase(),s=(Ht,""!==t&&"none"!==e&&t!==e||Kt.n("Shape.defineArrowheadGeometry name must not be empty or None or all-lower-case: "+t),G.co);s[t]=i,s[e]=t}static co=new l;static K2=new l;static RL(t){let e=G.co[t];if(void 0===e){var i,s=t.toLowerCase();if("none"===s)return"None";if(void 0===(e=G.co[s])){let t=null;for(const n in z.$g)if(n.toLowerCase()===s){t=n;break}if(null!==t)return i=W.parse(z.$g[t],!1),G.co[t]=i,s!==t&&(G.co[s]=t),t}}return"string"==typeof e?e:e instanceof W?t:null}}class Ae{xi;Mp;Pp;Np;wh;Lp;Tp;Wn;jn;constructor(){this.xi=!1,this.Mp="butt",this.Pp="miter",this.Np=10,this.wh=0,this.Lp=null,this.Tp=1,this.Wn=Z.Default,this.jn=Z.Default}copy(){var t=new Ae;return t.Mp=this.Mp,t.Pp=this.Pp,t.Np=this.Np,t.wh=this.wh,t.Lp=this.Lp,t.Tp=this.Tp,t.Wn=this.Wn.L(),t.jn=this.jn.L(),t}}(a={})[a.None=0]="None",a[a.Fit=1]="Fit",a[a.DesiredSize=2]="DesiredSize",a[a.BreakAll=3]="BreakAll";var Pe=a,ke=((a={})[a.Clip=0]="Clip",a[a.Ellipsis=1]="Ellipsis",a),Se=((a={})[a.Trim=0]="Trim",a[a.None=1]="None",a);class j extends y{di;$i;Ln;Oe;bi;C0;Fd;tt;_;Bl;uo;Tn;Ee;Ei;Dn;constructor(t,e){return super(),this.l|=2097152,this.di="",this.$i="black",this.Ln="13px sans-serif",this.Oe=0,this.bi=0,this.C0=0,this.Fd=null,this.tt=null,this._=null,this.Bl=0,this.uo=null,this.Tn=0,this.Ee=null,this.Ei=null,this.Dn=null,"string"==typeof t?this.text=t:t&&Object.assign(this,t),e&&Object.assign(this,e),this}cloneProtected(t){super.cloneProtected(t),t.di=this.di,t.$i=this.$i,t.Ln=this.Ln,t.Oe=this.Oe,t.bi=this.bi,t.C0=this.C0,t.Fd=this.Fd,null!==this.tt&&(t.tt=this.tt.copy()),null!==this._&&(this._.xi?t._=this._:t._=this._.copy()),t.Bl=this.Bl,t.uo=this.uo,t.Tn=this.Tn,t.Ee=this.Ee,t.Ei=this.Ei,t.Dn=this.Dn}Fn(){null===this._?this._=new Me:this._.xi&&(this._=this._.copy())}uh(){super.uh(),null!==this._&&(this._.xi=!0)}uI(t){this.l=6144|t.l,this._t=t.opacity,this.Ft=t.background,this.We=t.desiredSize.L(),this.minSize=t.minSize.L(),this.maxSize=t.maxSize.L(),null!==t.Ni?this.Ni=t.Ni.copy():this.Ni=null,this.v=t.scale,this.qt=t.angle,this.stretch=t.stretch,this.ol=t.margin.L(),this.fi=t.alignment.L(),this._f=t.alignmentFocus.L(),this.segmentFraction=t.segmentFraction,this.segmentOffset=t.segmentOffset.L(),this.segmentOrientation=t.segmentOrientation,null!==t.hi&&(this.hi=t.hi.copy()),this.shadowVisible=t.shadowVisible,this.di=t.di,this.$i=t.$i,this.Ln=t.Ln,null!==this.tt&&(this.tt=t.tt.copy()),null!==t._&&(t._.xi?this._=t._:this._=t._.copy()),this.Bl=t.Bl}fI(t){this.di=t.text||"",this.qt=t.labelAngle||0,this.Oe=t.lineCount||0,this.TI(t.lines),t.naturalBounds&&(this.Hi=t.naturalBounds),t.actualBounds&&(t=t.actualBounds,this.vt(t.x,t.y,t.width,t.height))}ci(t){t in Pe?this.wrap=t:super.ci(t)}toString(){return 22g&&(t=g),s+=m,this.EL(this.Dn,a,0,s,g,h,t,n,i,d,c)}else if(null!==this.Ee&&null!==this.Ei)for(let e=0;eg&&(t=g),s+=m,this.EL(this.Ei[e],a,0,s,g,h,t,n,i,d,c),s+=h+f}switch(this.flip){case 0:break;case 2:a.scale(-1,1),a.translate(-o,0);break;case 1:a.scale(1,-1),a.translate(0,-l);break;case 3:a.scale(-1,-1),a.translate(-o,-l)}}}EL(t,i,s,n,a,r,o,l,h,u,d){let c=0;if(l)"left"===h?c=0:"right"===h?c=a-o:"center"===h&&(c=(a-o)/2),i.fillRect(s+c,n+.25*r,o,1);else{"left"===h?c=0:"right"===h?c=a:"center"===h&&(c=a/2);l=null!==j.ab?j.ab(this,r):.75*r;i.fillText(t,s+c,n+l);let e=r/20|0;if(0===e&&(e=1),"right"===h?c-=o:"center"===h&&(c-=o/2),u&&(a=null!==j.fb?j.fb(this,r):.8*r,this.VL(s+c,n+a,s+c+o,n+a,e,i),i instanceof Jt)&&i.lastCreatedElement.classList.add("gojs-td"),d){let t=n+r-r/2.2|0;e%2!=0&&(t+=.5),this.VL(s+c,t,s+c+o,t,e,i),i instanceof Jt&&i.lastCreatedElement.classList.add("gojs-td")}}}VL(t,e,i,s,n,a){a.beginPath(),a.lineWidth=n,a.moveTo(t,e),a.lineTo(i,s),a.stroke(),a.endPath()}sc(e,t,i){if(!super.sc(e,t,i))return!1;if(this.bn(e,this.$i,!0,!1,this.naturalBounds,this.actualBounds),i){if(0===this.svg.getElementsByTagName("text").length)return!0;var s=this.svg.getElementsByClassName("gojs-td");for(let t=0;tthis.maxLines&&(this.l|=16777216))}G2(t,a,r){var o=0===this.formatting;o&&(t=t.trim());let l=0,h=0,u=0;var s=this.Ln,d=this.spacingAbove+this.spacingBelow,d=Math.max(0,this.Op()+d),s=1===this.overflow?this.zL(s):0;if(this.Oe>=this.maxLines)null!==r&&r.e(0,d);else{let n=t;if(0===this.wrap){if(this.Tn=1,h=this.getStringWidth(t),0===s||h<=a)return this.bi=Math.max(this.bi,h),this.Rn(t,this.bi),void(null!==r&&r.e(h,d));let e=this.Rd(n),i=(n=n.substring(e.length),this.Rd(n));for(h=this.getStringWidth(e+i),u=0;0a&&1a;){let t=1;for(h=this.getStringWidth(i.substring(0,t)),u=0;h<=a;)t++,u=h,h=this.getStringWidth(i.substring(0,t));let e=0;l=1===t?(e=h,Math.max(l,h)):(e=u,Math.max(l,u)),--t<1&&(t=1);var c=i.substring(0,t);if(this.Rn(c,e),s++,i=i.substring(t),this.Oe+s>this.maxLines)break}let e=this.Rd(n);for(h=this.getStringWidth(i+e),u=0;0this.maxLines)break}}this.Tn=Math.min(this.maxLines,s),this.bi=Math.max(this.bi,l),null!==r&&r.e(this.bi,d*this.Tn)}}}II(e,i){if(0!==this.bi&&null!==this.Ee&&null!==this.Ei&&1===this.overflow){var s=this.Ln,s=1===this.overflow?this.zL(s):0,n=this.spacingAbove+this.spacingBelow,n=Math.max(0,this.Op()+n),i=Math.min(this.maxLines-1,Math.max(Math.floor(i/n+.01)-1,0));if(!(i+1>=this.Ei.length)){this.H2(!0);let t=this.Ei[i];for(var a=Math.max(1,e-s);this.getStringWidth(t)>a&&1=t.length?t:t.substring(0,i)}getStringWidth(t){return null===j.al?8*t.length:j.al.measureText(t).width}Op(){if(null!==this.uo)return this.uo;var t=this.Ln;let e=0;return null===j.al?e=16:void 0!==j.v2[t]&&j.XL<5e3?e=j.v2[t]:(e=1.3*j.al.measureText("M").width,j.v2[t]=e,j.XL++),this.uo=e}zL(t){if(null===j.al)return 6;let e=0;return void 0!==j.hb[t]&&j.U2<5e3?e=j.hb[t]:(e=j.al.measureText(j.Dp).width,j.hb[t]=e,j.U2++),e}cb(t,e){return t.indexOf(`
+ `+this.history.elt(t).toString(e-1)}return i}clear(){var e=this.history;e.ut();for(let t=e.count-1;0<=t;t--){var i=e.elt(t);null!==i&&i.clear()}e.clear(),this.Ys=-1,e.w(),this.Ks=!1,this.km=null,this.Zn=0,this.pn.ut(),this.pn.clear(),this.pn.w(),this.yf.clear(),this.zw=!1,this.Xw=!1,this.Sm=!1,this.Yw=!1}copyProperties(t){this.isEnabled=t.isEnabled,this.maxHistoryLength=t.maxHistoryLength,this.bu=t.bu}addModel(t){this.Ew.add(t)}removeModel(t){this.Ew.remove(t)}startTransaction(t){if(null===(t=void 0===t?"":t)&&(t=""),this.isUndoingRedoing)return!1;!0===this.Bw&&(this.Bw=!1,this.Zn++,this.Cl||this.i("StartingFirstTransaction",t,this.currentTransaction),0=a&&(null!==(r=o.elt(0))&&r.clear(),o.removeAt(0),this.Ys--)),0===a||0!==o.count&&o.get(o.count-1)===n||(o.add(n),this.Ys++),o.w(),t=n),this.Cl||this.i("CommittedTransaction",s,t);else{this.Ks=!0;try{this.isEnabled&&null!==t&&(t.isComplete=!0,t.undo())}finally{this.Cl||this.i("RolledBackTransaction",s,t),this.Ks=!1}null!==t&&t.clear()}return this.km=null,this.Kw&&this.clear(),this.Kw=!1,!(this.Uw=!1)}this.isEnabled&&!i&&null!==t&&t.jD(e)}return!1}discardHistoryAfterIndex(){if(!this.isUndoingRedoing&&this.canRedo()){var e=this.history;e.ut();for(let t=e.count-1;t>this.historyIndex;t--){var i=e.elt(t);null!==i&&i.clear(),e.removeAt(t),this.Sm=!0}e.w()}}oE(t){this.Zn+=t,this.Zn<0&&(this.Zn=0)}canUndo(){var t;return!(!this.isEnabled||0!t.layer.isTemporary:e);return s.targetObject=t,this.JD(t,s,i),s.handled}JD(i,s,n){if(s.handled=!1,null===i||i.isEnabledObject()){let e=0,t=(s.left?e=1!==s.clickCount&&2===s.clickCount?2:1:s.right&&1===s.clickCount&&(e=3),"ObjectSingleClicked");if(null!==i){switch(e){case 1:t="ObjectSingleClicked";break;case 2:t="ObjectDoubleClicked";break;case 3:t="ObjectContextClicked"}0!==e&&n.V(t,i)}else{switch(e){case 1:t="BackgroundSingleClicked";break;case 2:t="BackgroundDoubleClicked";break;case 3:t="BackgroundContextClicked"}0!==e&&n.V(t)}if(null!==i)for(;null!==i;){let t=null;switch(e){case 1:t=i.click;break;case 2:t=i.doubleClick||i.click;break;case 3:t=i.contextClick}if(null!==t&&(t(s,i),s.handled))break;i=i.panel}else{let t=null;switch(e){case 1:t=n.click;break;case 2:t=n.doubleClick||n.click;break;case 3:t=n.contextClick}null!==t&&t(s)}}}standardMouseOver(){var n=this.diagram,a=n.lastInput;if(!0!==n.animationManager.Mi){var t=n.skipsUndoManager;n.skipsUndoManager=!0;let i=n.viewportBounds.containsPoint(a.documentPoint)?n.findObjectAt(a.documentPoint,null,null):null,s=(!a.event||"pointercancel"!==a.event.type&&"pointerout"!==a.event.type||(i=null),!1);if((a.targetObject=i)!==n.wf){let t=n.wf;var e=t;for(n.wf=i,this.doCurrentObjectChanged(t,i),a.handled=!1;null!==t;){var r=t.mouseLeave;if(null!==r&&(i===t||null!==i&&i.isContainedBy(t)||(r(a,t,i),s=!0,a.handled)))break;t=t.panel}for(t=e,a.handled=!1;null!==i;){var o=i.mouseEnter;if(null!==o&&(t===i||null!==t&&t.isContainedBy(i)||(o(a,i,t),s=!0,a.handled)))break;i=i.panel}i=n.wf}if(null!==i){let t=i,e="";for(;null!==t&&""===(e=t.cursor);)t=t.panel;for(n.currentCursor=e,a.handled=!1,t=i;null!==t;){var l=t.mouseOver;if(null!==l&&(l(a,t),s=!0,a.handled))break;t=t.panel}}else{this.doUpdateCursor(null);e=n.mouseOver;null!==e&&(e(a),s=!0)}s&&n.requestUpdate(),n.skipsUndoManager=t}}doUpdateCursor(t){var e=this.diagram;e&&(e.currentCursor="")}doCurrentObjectChanged(t,e){}standardMouseWheel(){var s=this.diagram,n=s.lastInput;let a=n.delta;if(0!==a&&s.documentBounds.isReal()){var r=s.commandHandler,o=s.toolManager.mouseWheelBehavior;if(null!==r&&(2===o&&!n.shift||1===o&&n.control))(0i.doWaitAfter(s),t)}cancelWaitAfter(){-1!==this.Mm&&Kt.Gg(this.Mm),this.Mm=-1}doWaitAfter(t){}findToolHandleAt(t,e){t=this.diagram.findObjectAt(t,t=>{for(;null!==t&&!(t.panel instanceof K);)t=t.panel;return t});return null!==t&&t.part.category===e?t:null}isBeyondDragSize(t,e){var i=this.diagram,s=(void 0===t&&(t=i.firstInput.viewPoint),void 0===e&&(e=i.lastInput.viewPoint),i.toolManager.dragSize);let n=s.width,a=s.height;return i.firstInput.isTouchEvent&&(n+=6,a+=6),Math.abs(e.x-t.x)>n||Math.abs(e.y-t.y)>a}get name(){return this.Tt}set name(t){Kt.t(t,"string",J,"name"),this.Tt=t}get isEnabled(){return this.Xi}set isEnabled(t){Kt.t(t,"boolean",J,"isEnabled"),this.Xi=t}get isActive(){return this.tS}set isActive(t){Kt.t(t,"boolean",J,"isActive"),this.tS=t}get transactionResult(){return this.iS}set transactionResult(t){null!==t&&Kt.t(t,"string",J,"transactionResult"),this.iS=t}}(t={})[t.Scroll=1]="Scroll",t[t.Zoom=2]="Zoom",t[t.None=3]="None";var $=t,it=((t={})[t.Zoom=1]="Zoom",t[t.Cancel=2]="Cancel",t[t.None=3]="None",t);class st extends J{FC;RC;IC;nS;oS;rS;lS;hS;aS;fS;Nm;Gh;constructor(t){super(),this.name="ToolManager",this.FC=new O,this.RC=new O,this.IC=new O,this.nS=850,this.oS=850,this.rS=new Yt(2,2).rt(),this.lS=5e3,this.hS=1,this.aS=1,this.fS=null,this.Nm=null,this.Gh=-1,t&&Object.assign(this,t)}static WheelScroll=1;static WheelZoom=2;static WheelNone=3;static GestureZoom=1;static GestureCancel=2;static GestureNone=3;get mouseWheelBehavior(){return this.hS}set mouseWheelBehavior(t){Kt.it(t,$,"WheelMode"),this.hS=t}get gestureBehavior(){return this.aS}set gestureBehavior(t){Kt.it(t,it,"GestureMode"),this.aS=t}initializeStandardTools(){}updateAdornments(t){var e,i=this.currentToolTip;i instanceof K&&this.Nm===t&&(e=i.adornedObject,(null!==t?e.part===t:null===e)?this.showToolTip(i,e):this.hideToolTip())}doMouseDown(){var e=this.diagram,t=e.lastInput;if(t.isTouchEvent&&2===this.gestureBehavior&&(t.bubbles=!1),t.isMultiTouch){if(this.cancelWaitAfter(),3===this.gestureBehavior)return void(t.bubbles=!0);if(2===this.gestureBehavior)return;if(e.currentTool.canStartMultiTouch())return void e.currentTool.standardPinchZoomStart()}var i=e.undoManager,s=(Ht,i.bu&&0!==i.transactionLevel&&Kt.ft("WARNING: In ToolManager.doMouseDown: UndoManager.transactionLevel is not zero"),this.mouseDownTools.length);for(let t=0;tn.hideToolTip(),s)}}positionToolTip(t,e){var i,s,n,a;t.hasPlaceholder()||(t=t,s=(i=this.diagram).lastInput.documentPoint.copy(),n=t.measuredBounds,a=i.viewportBounds,i.lastInput.isTouchEvent&&(s.x-=n.width),s.x+n.width>a.right&&(s.x-=n.width+5/i.scale),s.xa.bottom?s.y-=n.height+5/i.scale:s.y+=20/i.scale,s.yn&&(n=o),l>a&&(a=l)))}return i===1/0?e.e(0,0,0,0):e.e(i,s,n-i,a-s),e}AS(t){if(null===this.copiedParts){var e=this.diagram;if(!(t&&(e.isReadOnly||e.isModelReadOnly)||null===this.draggedParts)){for(var i=e.undoManager,i=(i.isEnabled&&i.isInTransaction?null!==i.currentTransaction&&0!this.tF(t))}doUpdateCursor(t){var e=this.diagram;null!==t&&this.Su===t||(!this.diagram.currentTool.isActive||this.mayCopy()?e.currentCursor=this.copyCursor:this.mayMove()?e.currentCursor=this.moveCursor:this.mayDragOut()&&(e.currentCursor=this.nodropCursor))}VC(e,i){let s=!1,n=this.Sr.length;var a=0s.findValidLinkablePort(t,e)),a=_.a();let r=1/0,o=null;for(var l=n.iterator;l.next();){var h,u=l.value;null!==u.part&&(h=u.getDocumentPoint(Z.Center,a),(h=t.distanceSquaredPoint(h))t.wn=!1)}if(this.doDropOnto(t,i),this.isActive||null!==d.St){for(var l=Q.a(),h=e.selection.iterator;h.next();){var u=h.value;u instanceof D&&this.eF(e,u,l)}Q.o(l)}}}iF(t,e){var i=this.diagram,e=e.part;!i.handlesDragDropForTopLevelParts||!e.isTopLevel||e instanceof X||null!==(e=i.mouseDrop)&&e(t)}eF(e,i,s){if(i.canAvoid()){let t=!1;s=i.getAvoidableRect(s),e.viewportBounds.containsRect(s)&&(t=!0);var n=this.copiedParts||this.draggedParts,e=e.IS(s,t=>t.part,t=>t instanceof Y,!0,t=>t instanceof Y,t);if(0!==e.count)for(var a=e.iterator;a.next();){var r=a.value;n.contains(r)&&n.contains(i)||!r.isMemberOf(i)&&r.isAvoiding&&r.invalidateRoute()}}}doDropOnto(t,e){}doMouseMove(){var t,e;this.isActive&&(e=(t=this.diagram).lastInput,this.simulatedMouseMove(e.event,e.documentPoint,e.targetDiagram)||null!==this.currentPart&&null!==this.draggedParts&&(this.mayCopy()?(this.AS(!1),t.qw(this.copiedParts),this.kf(this.copiedParts,!1),t.Lm(this.copiedParts)):this.mayMove()?(this.Ll(),this.kf(this.draggedParts,!0)):this.mayDragOut()?(this.AS(!1),this.kf(this.copiedParts,!1)):this.Ll(),this.TS(t.lastInput.documentPoint)))}doMouseUp(){if(this.isActive){var e=this.diagram,i=e.lastInput;if(!this.simulatedMouseUp(i.event,i.documentPoint,i.targetDiagram)){let t=!1;var s,i=this.mayCopy();i&&null!==this.copiedParts?(this.Ll(),this.AS(!0),e.qw(this.copiedParts),this.kf(this.copiedParts,!1),e.Lm(this.copiedParts),null!==this.copiedParts&&(e.V("ChangingSelection",e.selection),e.clearSelection(!0),this.copiedParts.iteratorKeys.each(t=>{t.isSelected=!0}))):(t=!0,this.Ll(),this.mayMove()&&(this.kf(this.draggedParts,!0),this.TS(e.lastInput.documentPoint))),this.ku=!0,this.KC(e.lastInput.documentPoint),this.isActive&&(s=(i?this.copiedParts:this.draggedParts).toKeySet(),this.copiedParts=null,t&&this.sF(),e.invalidateDocumentBounds(),e.Lm(this.draggedParts),this.transactionResult=i?"Copy":"Move",e.V(i?"SelectionCopied":"SelectionMoved",s)),this.stopTool(),i&&e.V("ChangedSelection",e.selection)}}}simulatedMouseMove(e,i,s){if(null===d.St)return!1;var t=d.St.diagram,n=(s instanceof G||(s=null),d.vh);if(s!==n&&(null!==n&&n!==t&&(n.stopAutoScroll(),d.St.isDragOutStarted=!1,null!==(n=n.toolManager.findTool("Dragging")))&&n.doSimulatedDragLeave(),null!==(d.vh=s)&&s!==t&&(d.St.BC(),null!==(n=s.toolManager.findTool("Dragging")))&&(n.UC(),n.doSimulatedDragEnter()),this.doUpdateCursor(null)),null===s||s===t||!s.allowDrop||s.isReadOnly||!s.allowInsert)return!1;n=s.toolManager.findTool("Dragging");if(null!==n){let t=i;null!==e&&(void 0!==e.targetTouches&&(0{t.isSelected=!0,s.add(t)})),this.KC(t.lastInput.documentPoint),t.invalidateDocumentBounds(),null!==this.copiedParts&&(this.transactionResult="ExternalCopy"),this.copiedParts=null,t.doFocus(),t.V("ExternalObjectsDropped",s,i),this.stopTransaction(),t.V("ChangedSelection",t.selection)}t.animationManager.Nu=!1}GC(t,e,i){if(null===this.copiedParts){var s=this.diagram;if(!s.isReadOnly&&!s.isModelReadOnly){s.skipsUndoManager=!e,s.partManager.addsToTemporaryLayer=!e,this.startPoint=i.documentPoint;for(var n=s.copyParts(t,s,!0),e=Q.a(),a=(this._D(t,e),e.x+e.width/2),r=e.y+e.height/2,o=(Q.o(e),this.Cm),l=new L,h=_.a(),u=t.iterator;u.next();){var d,c=u.value;c instanceof Y&&c.canCopy()&&null!==(d=n.getValue(c))&&(d.points=c.points,d.Mr(o.x-a,o.y-r),d.wn=!0,l.add(d,this.Us()))}for(var g=t.iterator;g.next();){var m,f=g.value;f.De()&&f.canCopy()&&null!==(m=n.getValue(f))&&(f=f.location,h.e(o.x-(a-f.x),o.y-(r-f.y)),m.location=h,m.ensureBounds(),l.add(m,this.Us(h)))}_.o(h),this.copiedParts=l,this.MS(l.toKeySet()),null!==this.draggedLink&&(s=(i=this.draggedLink).routeBounds,i.Mr(this.startPoint.x-(s.x+s.width/2),this.startPoint.y-(s.y+s.height/2))),this.doUpdateCursor(null)}}}$D(){this.isDragOutStarted=!0,this.ku=!1,d.St=this,d.vh=this.diagram,this.doSimulatedDragOut()}doSimulatedDragOut(){var t=this.diagram;t.Am=!1,this.mayCopy()||this.mayMove()?t.currentCursor="":t.currentCursor=this.nodropCursor,this.Su=null}computeMove(t,e,i,s){var n=this.diagram;return null!==n?n.computeMove(t,e,this.dragOptions,s):new _}static Ww=new O;static St=null;static vh=null}st.prototype.doCancel=function(){null!==d.St&&d.St.doCancel(),J.prototype.doCancel.call(this)};class nt extends J{OS;ES;Dl;VS;BS;qh;zS;Wh;XS;YS;KS;US;GS;HS;HC;vS;Fl;qS;constructor(){super(),this.OS=100,this.ES=!1,this.Dl="pointer",this.VS=new Y({layerName:"Tool"}).add(new q({isPanelMain:!0,stroke:"blue"}).theme("stroke","tempLink"),new q({toArrow:"Standard",fill:"blue",stroke:"blue"}).theme("fill","tempLink").theme("stroke","tempLink")).ui(),this.qh=new q("Rectangle",{portId:"",fill:null,stroke:"magenta",strokeWidth:2,desiredSize:Yt.Bk}).theme("stroke","tempPort"),this.BS=new D({selectable:!1,layerName:"Tool"}).add(this.qh).ui(),this.Wh=new q("Rectangle",{portId:"",fill:null,stroke:"magenta",strokeWidth:2,desiredSize:Yt.Bk}).theme("stroke","tempPort"),this.zS=new D({selectable:!1,layerName:"Tool"}).add(this.Wh).ui(),this.XS=null,this.YS=null,this.KS=null,this.US=null,this.GS=null,this.HS=!0,this.HC=new L,this.vS=null,this.Fl=null,this.qS=null}doStop(){this.diagram.stopAutoScroll(),this.originalLink=null,this.originalFromNode=null,this.originalFromPort=null,this.originalToNode=null,this.originalToPort=null,this.validPortsCache.clear(),this.targetPort=null}get portGravity(){return this.OS}set portGravity(t){Kt.t(t,"number",nt,"portGravity"),0<=t&&(this.OS=t)}get isUnconnectedLinkValid(){return this.ES}set isUnconnectedLinkValid(t){Kt.t(t,"boolean",nt,"isUnconnectedLinkValid"),this.ES=t}get linkingCursor(){return this.Dl}set linkingCursor(t){this.Dl=t}get temporaryLink(){return this.VS}set temporaryLink(t){Kt.s(t,Y,nt,"temporaryLink"),t.ui(),this.VS=t}get temporaryFromNode(){return this.BS}set temporaryFromNode(t){Kt.s(t,D,nt,"temporaryFromNode"),t.ui(),(this.BS=t)&&(this.qh=t.port)}get temporaryFromPort(){return this.qh}set temporaryFromPort(t){var e,i;Kt.s(t,y,nt,"temporaryFromPort"),null!==this.qh&&null!==(e=this.qh.panel)&&(i=e.F.indexOf(this.qh),e.removeAt(i),e.insertAt(i,t)),this.qh=t}get temporaryToNode(){return this.zS}set temporaryToNode(t){Kt.s(t,D,nt,"temporaryToNode"),t.ui(),(this.zS=t)&&(this.Wh=t.port)}get temporaryToPort(){return this.Wh}set temporaryToPort(t){var e,i;Kt.s(t,y,nt,"temporaryToPort"),null!==this.Wh&&null!==(e=this.Wh.panel)&&(i=e.F.indexOf(this.Wh),e.removeAt(i),e.insertAt(i,t)),this.Wh=t}get originalLink(){return this.XS}set originalLink(t){null!==t&&Kt.s(t,Y,nt,"originalLink"),this.XS=t}get originalFromNode(){return this.YS}set originalFromNode(t){null!==t&&Kt.s(t,D,nt,"originalFromNode"),this.YS=t}get originalFromPort(){return this.KS}set originalFromPort(t){null!==t&&Kt.s(t,y,nt,"originalFromPort"),this.KS=t}get originalToNode(){return this.US}set originalToNode(t){null!==t&&Kt.s(t,D,nt,"originalToNode"),this.US=t}get originalToPort(){return this.GS}set originalToPort(t){null!==t&&Kt.s(t,y,nt,"originalToPort"),this.GS=t}get isForwards(){return this.HS}set isForwards(t){this.HS=t}get validPortsCache(){return this.HC}get targetPort(){return this.vS}set targetPort(t){null!==t&&Kt.s(t,y,nt,"targetPort"),this.vS=t}copyPortProperties(t,e,i,s,n){var a,r;null!==t&&null!==e&&null!==i&&null!==s&&(r=e.getDocumentScale(),(a=Yt.a()).width=e.naturalBounds.width*r,a.height=e.naturalBounds.height*r,s.desiredSize=a,Yt.o(a),n?(s.toSpot=e.toSpot,s.toEndSegmentLength=e.toEndSegmentLength):(s.fromSpot=e.fromSpot,s.fromEndSegmentLength=e.fromEndSegmentLength),i.locationSpot=Z.Center,r=_.a(),i.location=e.getDocumentPoint(Z.Center,r),_.o(r),s.angle=e.getDocumentAngle(),null!==this.portTargeted)&&this.portTargeted(t,e,i,s,n)}setNoTargetPortProperties(t,e,i){null!==e&&(e.desiredSize=Yt.Bk,e.fromSpot=Z.None,e.toSpot=Z.None),null!==t&&(t.location=this.diagram.lastInput.documentPoint),null!==this.portTargeted&&this.portTargeted(null,null,t,e,i)}doMouseDown(){this.isActive&&this.doMouseMove()}doMouseMove(){var t,e;this.isActive&&(t=this.diagram,this.targetPort=this.findTargetPort(this.isForwards),null!==this.targetPort&&this.targetPort.part instanceof D?(e=this.targetPort.part,this.isForwards?this.copyPortProperties(e,this.targetPort,this.temporaryToNode,this.temporaryToPort,!0):this.copyPortProperties(e,this.targetPort,this.temporaryFromNode,this.temporaryFromPort,!1)):this.isForwards?this.setNoTargetPortProperties(this.temporaryToNode,this.temporaryToPort,!0):this.setNoTargetPortProperties(this.temporaryFromNode,this.temporaryFromPort,!1),t.allowHorizontalScroll||t.allowVerticalScroll)&&t.doAutoScroll(t.lastInput.viewPoint)}findValidLinkablePort(t,e){if(null!==t){var i=t.part;if(i instanceof D)for(;null!==t;){var s=e?t.toLinkable:t.fromLinkable;if(!0===s&&(null!==t.portId||t instanceof D)&&(e?this.isValidTo(i,t):this.isValidFrom(i,t)))return t;if(!1===s)return null;t=t.panel}}return null}findTargetPort(e){var t=this.diagram,i=t.lastInput.documentPoint;let s=this.portGravity;s<=0&&(s=.1);const n=this,a=t.findObjectsNear(i,s,t=>n.findValidLinkablePort(t,e),null,!0);let r=1/0,o=null;for(var l=a.iterator;l.next();){var h,u,d,c=l.value,g=c.part;g instanceof D&&(u=c.getDocumentPoint(Z.Center,_.a()),d=i.x-u.x,h=i.y-u.y,_.o(u),(u=d*d+h*h)=s)return!1}return!0}isValidTo(e,i){if(null===e||null===i)return this.isUnconnectedLinkValid;if(this.diagram.currentTool===this&&(null!==e.layer&&!e.layer.allowLink||!0!==i.toLinkable))return!1;var s=i.toMaxLinks;if(s<1/0){if(null!==this.originalLink&&e===this.originalToNode&&i===this.originalToPort)return!0;let t=i.portId;if(null===t&&(t=""),e.findLinksInto(t).count>=s)return!1}return!0}isInSameNode(t,e){return null!==t&&null!==e&&(t===e||(t=t.part,e=e.part,null!==t&&t===e))}isLinked(i,s){if(null!==i&&null!==s){var n=i.part;if(n instanceof D){let e=i.portId;null===e&&(e="");i=s.part;if(i instanceof D){let t=s.portId;null===t&&(t="");for(var a=i.findLinksInto(t);a.next();){var r=a.value;if(r.fromNode===n&&r.fromPortId===e)return!0}}}}return!1}isValidLink(t,e,i,s){if(!this.isValidFrom(t,e)||!this.isValidTo(i,s)||null!==e&&null!==s&&((!e.fromLinkableSelfNode||!s.toLinkableSelfNode)&&this.isInSameNode(e,s)||(!e.fromLinkableDuplicates||!s.toLinkableDuplicates)&&this.isLinked(e,s))||null!==this.originalLink&&(null!==t&&this.isLabelDependentOnLink(t,this.originalLink)||null!==i&&this.isLabelDependentOnLink(i,this.originalLink))||null!==t&&null!==i&&(null===t.data&&null!==i.data||null!==t.data&&null===i.data)||!this.isValidCycle(t,i,this.originalLink))return!1;let n;return!(null!==t&&null!==(n=t.linkValidation)&&!n(t,e,i,s,this.originalLink)||null!==i&&null!==(n=i.linkValidation)&&!n(t,e,i,s,this.originalLink))&&(null===(n=this.linkValidation)||n(t,e,i,s,this.originalLink))}isLabelDependentOnLink(t,e){var i,s;return null!==t&&null!==(i=t.labeledLink)&&(i===e||((s=new N).add(t),this.WS(i,e,s)))}WS(t,e,i){var s;return t===e||!(null===(s=t.fromNode)||!s.isLinkLabel||(i.add(s),!this.WS(s.labeledLink,e,i)))||!(null===(s=t.toNode)||!s.isLinkLabel||(i.add(s),!this.WS(s.labeledLink,e,i)))}isValidCycle(t,e,i){if(void 0===i&&(i=null),null===t||null===e)return this.isUnconnectedLinkValid;var s=this.diagram.validCycle;if(1===s)return!0;if(5===s){var n=i||this.temporaryLink;if(null!==n&&!n.isTreeLink)return!0;for(var a=e.linksConnected;a.next();){var r=a.value;if(r!==i&&r.isTreeLink&&r.toNode===e)return!1}}else{if(6!==s)return 2===s?!this.nF(t,e,i):3===s?!this.Cu(t,e,i,!1):4!==s||!this.oF(t,e,i);n=i||this.temporaryLink;if(null!==n&&!n.isTreeLink)return!0;for(var o=t.linksConnected;o.next();){var l=o.value;if(l!==i&&l.isTreeLink&&l.fromNode===t)return!1}}return!this.Cu(t,e,i,!0)}Cu(t,e,i,s){if(t===e)return!0;if(null!==t&&null!==e)for(var n=t.linksConnected;n.next();){var a=n.value;if(a!==i&&(!s||a.isTreeLink)&&a.toNode===t){a=a.fromNode;if(a!==t&&this.Cu(a,e,i,s))return!0}}return!1}nF(t,e,i){var s;return t===e||((s=new N).add(e),this.vC(s,t,e,i))}vC(t,e,i,s){if(e===i)return!0;if(null!==e&&null!==i&&!t.contains(e)){t.add(e);for(var n=e.linksConnected;n.next();){var a=n.value;if(a!==s&&a.toNode===e){a=a.fromNode;if(a!==e&&this.vC(t,a,i,s))return!0}}}return!1}oF(t,e,i){var s;return t===e||((s=new N).add(e),this.qC(s,t,e,i))}qC(t,e,i,s){if(e===i)return!0;if(null!==e&&null!==i&&!t.contains(e)){t.add(e);for(var n=e.linksConnected;n.next();){var a=n.value;if(a!==s){var r=a.fromNode,a=a.toNode,a=r===e?a:r;if(a!==e&&this.qC(t,a,i,s))return!0}}}return!1}get linkValidation(){return this.Fl}set linkValidation(t){null!==t&&Kt.t(t,"function",nt,"linkValidation"),this.Fl=t}get portTargeted(){return this.qS}set portTargeted(t){null!==t&&Kt.t(t,"function",nt,"portTargeted"),this.qS=t}}(t={})[t.Either=1]="Either",t[t.ForwardsOnly=2]="ForwardsOnly",t[t.BackwardsOnly=3]="BackwardsOnly";var at=t;class rt extends nt{jS;JS;C;ZS;constructor(t){super(),this.name="Linking",this.jS={},this.JS=null,this.C=1,this.ZS=null,t&&Object.assign(this,t)}static Either=1;static ForwardsOnly=2;static BackwardsOnly=3;get archetypeLinkData(){return this.jS}set archetypeLinkData(t){null!==t&&Kt.t(t,"object",rt,"archetypeLinkData"),t instanceof y&&Kt.s(t,Y,rt,"archetypeLinkData"),this.jS=t}get archetypeLabelNodeData(){return this.JS}set archetypeLabelNodeData(t){null!==t&&Kt.t(t,"object",rt,"archetypeLabelNodeData"),t instanceof y&&Kt.s(t,D,rt,"archetypeLabelNodeData"),this.JS=t}get direction(){return this.C}set direction(t){Kt.it(t,at,"LinkingDirection"),this.C=t}get startObject(){return this.ZS}set startObject(t){null!==t&&Kt.s(t,y,rt,"startObject"),this.ZS=t}canStart(){var t;return!(!this.isEnabled||(t=this.diagram).isReadOnly||t.isModelReadOnly||!t.allowLink||!t.model.jw()||!t.lastInput.left||t.currentTool!==this&&!this.isBeyondDragSize()||null===this.findLinkablePort())}findLinkablePort(){var t=this.diagram;let e=this.startObject;if(null!==(e=null===e?t.findObjectAt(t.firstInput.documentPoint,null,null):e)){t=e.part;if(t instanceof D){var i=this.direction;if(1===i||2===i){var s=this.findValidLinkablePort(e,!1);if(null!==s)return this.isForwards=!0,s;if(this.startObject===t){s=t.port;if(this.findValidLinkablePort(s,!1))return this.isForwards=!0,s}}if(1===i||3===i){s=this.findValidLinkablePort(e,!0);if(null!==s)return this.isForwards=!1,s;if(this.startObject===t){i=t.port;if(this.findValidLinkablePort(i,!0))return this.isForwards=!1,i}}}}return null}doActivate(){var t,e=this.diagram,i=this.findLinkablePort();null===i?this.stopTool():(this.startTransaction(this.name),e.isMouseCaptured=!0,e.currentCursor=this.linkingCursor,this.isForwards?(null!==this.temporaryToNode&&(this.temporaryToNode.location=e.lastInput.documentPoint),this.originalFromPort=i,(t=this.originalFromPort.part)instanceof D&&(this.originalFromNode=t),this.copyPortProperties(this.originalFromNode,this.originalFromPort,this.temporaryFromNode,this.temporaryFromPort,!1)):(null!==this.temporaryFromNode&&(this.temporaryFromNode.location=e.lastInput.documentPoint),this.originalToPort=i,(t=this.originalToPort.part)instanceof D&&(this.originalToNode=t),this.copyPortProperties(this.originalToNode,this.originalToPort,this.temporaryToNode,this.temporaryToPort,!0)),e.add(this.temporaryFromNode),this.temporaryFromNode&&this.temporaryFromNode.ensureBounds(),e.add(this.temporaryToNode),this.temporaryToNode&&this.temporaryToNode.ensureBounds(),null!==this.temporaryLink&&(null!==this.temporaryFromNode&&(this.temporaryLink.fromNode=this.temporaryFromNode),null!==this.temporaryToNode&&(this.temporaryLink.toNode=this.temporaryToNode),this.temporaryLink.isTreeLink=this.isNewTreeLink(),this.temporaryLink.invalidateRoute(),e.add(this.temporaryLink)),this.isActive=!0)}doDeactivate(){this.isActive=!1;var t=this.diagram;t.remove(this.temporaryLink),t.remove(this.temporaryFromNode),t.remove(this.temporaryToNode),t.isMouseCaptured=!1,t.currentCursor="",this.stopTransaction()}doStop(){super.doStop(),this.startObject=null}doMouseUp(){if(this.isActive){var a=this.diagram;let t=this.transactionResult=null,e=null,i=null,s=null,n=null;try{this.targetPort=this.findTargetPort(this.isForwards);var r,o=this.targetPort;null!==o?(r=o.part)instanceof D&&(this.isForwards?(null!==this.originalFromNode&&(t=this.originalFromNode,e=this.originalFromPort),i=r,s=o):(t=r,e=o,null!==this.originalToNode&&(i=this.originalToNode,s=this.originalToPort))):this.isForwards?null!==this.originalFromNode&&this.isUnconnectedLinkValid&&(t=this.originalFromNode,e=this.originalFromPort):null!==this.originalToNode&&this.isUnconnectedLinkValid&&(i=this.originalToNode,s=this.originalToPort),null!==t||null!==i?null!==(n=this.insertLink(t,e,i,s))?(null===o&&(this.isForwards?n.defaultToPoint=a.lastInput.documentPoint:n.defaultFromPoint=a.lastInput.documentPoint),a.allowSelect&&(a.V("ChangingSelection",a.selection),a.clearSelection(!0),n.isSelected=!0),this.transactionResult=this.name,a.V("LinkDrawn",n)):this.doNoLink(t,e,i,s):this.isForwards?this.doNoLink(this.originalFromNode,this.originalFromPort,null,null):this.doNoLink(null,null,this.originalToNode,this.originalToPort)}finally{this.stopTool(),n&&a.allowSelect&&a.V("ChangedSelection",a.selection)}}}isNewTreeLink(){var t,e=this.archetypeLinkData;return null===e||(e instanceof Y?e.isTreeLink:null===(t=this.diagram)||(e=t.partManager.getLinkCategoryForData(e),null===(t=t.partManager.findLinkTemplateForCategory(e)))||t.isTreeLink)}insertLink(t,e,i,s){return this.diagram.partManager.insertLink(t,e,i,s)}doNoLink(t,e,i,s){}}class ot extends nt{$S;QS;ws;_S;constructor(t){super(),this.name="Relinking",this.$S=new q("Diamond",{desiredSize:Yt.du,fill:"lightblue",stroke:"dodgerblue",cursor:this.linkingCursor,segmentIndex:0}).theme("fill","adornmentFill").theme("stroke","adornmentStroke"),this.QS=new q("Diamond",{desiredSize:Yt.du,fill:"lightblue",stroke:"dodgerblue",cursor:this.linkingCursor,segmentIndex:-1}).theme("fill","adornmentFill").theme("stroke","adornmentStroke"),this.ws=null,this._S=new Q,t&&Object.assign(this,t)}updateAdornments(i){if(null!==i&&i instanceof Y){let t="RelinkFrom",e=null;var s;i.isSelected&&!this.diagram.isReadOnly&&null!==(s=i.selectionObject)&&i.canRelinkFrom()&&i.actualBounds.isReal()&&i.isVisible()&&s.actualBounds.isReal()&&s.isVisibleObject()&&null===(e=i.findAdornment(t))&&(e=this.makeAdornment(s,!1),i.addAdornment(t,e)),null===e&&i.removeAdornment(t),t="RelinkTo",e=null,i.isSelected&&!this.diagram.isReadOnly&&null!==(s=i.selectionObject)&&i.canRelinkTo()&&i.actualBounds.isReal()&&i.isVisible()&&s.actualBounds.isReal()&&s.isVisibleObject()&&(null===(e=i.findAdornment(t))?(e=this.makeAdornment(s,!0),i.addAdornment(t,e)):e.u()),null===e&&i.removeAdornment(t)}}makeAdornment(t,e){var i=new K,e=(i.type=Xt.Link,e?this.toHandleArchetype:this.fromHandleArchetype);return null!==e&&i.add(e.copy().Tm()),i.adornedObject=t,i}get fromHandleArchetype(){return this.$S}set fromHandleArchetype(t){null!==t&&Kt.s(t,y,ot,"fromHandleArchetype"),this.$S=t}get toHandleArchetype(){return this.QS}set toHandleArchetype(t){null!==t&&Kt.s(t,y,ot,"toHandleArchetype"),this.QS=t}get handle(){return this.ws}set handle(t){if(null!==t&&(Kt.s(t,y,ot,"handle"),!(t.part instanceof K)))throw new Error("new handle is not in an Adornment: "+t);this.ws=t}canStart(){if(!this.isEnabled)return!1;var t=this.diagram;if(t.isReadOnly||t.isModelReadOnly||!t.allowRelink||!t.model.jw()||!t.lastInput.left)return!1;let e=this.findToolHandleAt(t.firstInput.documentPoint,"RelinkFrom");return null!==(e=null===e?this.findToolHandleAt(t.firstInput.documentPoint,"RelinkTo"):e)}doActivate(){var e=this.diagram;if(null===this.originalLink){let t=this.handle;if(null===(t=null===t&&null===(t=this.findToolHandleAt(e.firstInput.documentPoint,"RelinkFrom"))?this.findToolHandleAt(e.firstInput.documentPoint,"RelinkTo"):t))return;var i=t.part;if(!(i instanceof K&&i.adornedPart instanceof Y))return;this.handle=t,this.isForwards=null===i||"RelinkTo"===i.category,this.originalLink=i.adornedPart}this.startTransaction(this.name),e.isMouseCaptured=!0,e.currentCursor=this.linkingCursor,this.originalFromPort=this.originalLink.fromPort,this.originalFromNode=this.originalLink.fromNode,this.originalToPort=this.originalLink.toPort,this.originalToNode=this.originalLink.toNode,this._S.set(this.originalLink.actualBounds),null!==this.originalLink&&0t.firstPickIndex+1&&et.width&&(t.width=e.width),!isNaN(e.height)&&e.height>t.height&&(t.height=e.height),t}computeMaxSize(){var t=this.adornedObject.maxSize.copy(),e=this.maxSize;return!isNaN(e.width)&&e.widtht-i&&(e=(Math.floor(e/t)+1)*t)),360<=e?e-=360:e<0&&(e+=360),e}get snapAngleMultiple(){return this.hM}set snapAngleMultiple(t){Kt.t(t,"number",ut,"snapAngleMultiple"),this.hM=t}get snapAngleEpsilon(){return this.aM}set snapAngleEpsilon(t){Kt.t(t,"number",ut,"snapAngleEpsilon"),this.aM=t}get originalAngle(){return this.fM}get rotationPoint(){return this.Rm}set rotationPoint(t){this.Rm=t.copy()}get handleAngle(){return this.cM}set handleAngle(t){Kt.t(t,"number",ut,"handleAngle"),this.cM=t}get handleDistance(){return this.uM}set handleDistance(t){Kt.t(t,"number",ut,"handleDistance"),this.uM=t}}class dt extends J{constructor(t){super(),this.name="ClickSelecting",t&&Object.assign(this,t)}canStart(){return!(!this.isEnabled||this.isBeyondDragSize())}doMouseUp(){this.isActive&&(this.standardMouseSelect(),this.standardMouseClick()||this.diagram.lastInput.isTouchEvent&&this.diagram.toolManager.doToolTip()),this.stopTool()}}class ct extends J{Pf;constructor(t){super(),this.name="Action",this.Pf=null,t&&Object.assign(this,t)}canStart(){var t,e,i;return!(!this.isEnabled||(e=(t=this.diagram).lastInput,null===(i=t.findObjectAt(e.documentPoint,t=>{for(;null!==t.panel;){if(t.isActionable)return t;t=t.panel}return t})))||!i.isActionable||(this.Pf=i,t.wf=t.findObjectAt(e.documentPoint,null,null),0))}doMouseDown(){var t,e;this.isActive?(t=this.diagram.lastInput,null!==(e=this.Pf)&&null!==(t.targetObject=e).actionDown&&e.actionDown(t,e)):this.canStart()&&this.doActivate()}doMouseMove(){var t,e;this.isActive&&(t=this.diagram.lastInput,null!==(e=this.Pf))&&null!==(t.targetObject=e).actionMove&&e.actionMove(t,e)}doMouseUp(){if(this.isActive){const t=this.diagram.lastInput,e=this.Pf;if(null===e)return;null!==(t.targetObject=e).actionUp&&e.actionUp(t,e),this.standardMouseClick(t=>{for(;null!==t.panel;){if(t.isActionable&&t===e)return t;t=t.panel}return t},t=>t===e)}this.stopTool()}doCancel(){var t=this.diagram.lastInput,e=this.Pf;null!==e&&(null!==(t.targetObject=e).actionCancel&&e.actionCancel(t,e),this.stopTool())}doStop(){this.Pf=null}}class gt extends J{Ol;dM;Sf;gM;constructor(t){super(),this.name="ClickCreating",this.Ol=null,this.dM=!0,this.Sf=!1,this.gM=new _(0,0),t&&Object.assign(this,t)}canStart(){if(!this.isEnabled||null===this.archetypeNodeData)return!1;var t=this.diagram;if(t.isReadOnly||t.isModelReadOnly||!t.allowInsert||!t.lastInput.left||this.isBeyondDragSize())return!1;if(this.isDoubleClick){if(1===t.lastInput.clickCount&&(this.gM=t.lastInput.viewPoint.copy()),2!==t.lastInput.clickCount||this.isBeyondDragSize(this.gM))return!1}else if(1!==t.lastInput.clickCount)return!1;return!(t.currentTool!==this&&null!==t.findPartAt(t.lastInput.documentPoint,!0))}doMouseUp(){var t=this.diagram;this.isActive&&this.insertPart(t.lastInput.documentPoint),this.stopTool()}insertPart(t){var e,i,s=this.diagram,n=this.archetypeNodeData;if(null===n)return null;let a=null;try{s.V("ChangingSelection",s.selection),this.startTransaction(this.name),n instanceof H?n.De()&&(n.ui(),null!==(a=n.copy()))&&s.add(a):null!==n&&(e=s.model.copyNodeData(n),Kt.Mt(e))&&(s.model.addNodeData(e),a=s.findPartForData(e)),null!==a&&(i=_.H(t.x,t.y),this.isGridSnapEnabled&&this.diagram.mM(a,t,i),a.location=i,s.allowSelect&&(s.clearSelection(!0),a.isSelected=!0),_.o(i)),s.invalidateDocumentBounds(),this.transactionResult=this.name,s.V("PartCreated",a)}finally{this.stopTransaction(),s.V("ChangedSelection",s.selection)}return a}get archetypeNodeData(){return this.Ol}set archetypeNodeData(t){null!==t&&Kt.t(t,"object",gt,"archetypeNodeData"),this.Ol=t}get isDoubleClick(){return this.dM}set isDoubleClick(t){Kt.t(t,"boolean",gt,"isDoubleClick"),this.dM=t}get isGridSnapEnabled(){return this.Sf}set isGridSnapEnabled(t){Kt.t(t,"boolean",gt,"isGridSnapEnabled"),this.Sf=t}}class mt extends J{Hh;pM;El;constructor(t){super(),this.name="DragSelecting",this.Hh=175,this.pM=!1,this.El=new H({layerName:"Tool",selectable:!1}).add(new q("Rectangle",{name:"SHAPE",fill:null,stroke:"magenta"}).theme("stroke","dragSelect")).ui(),t&&Object.assign(this,t)}canStart(){var t,e;return!!this.isEnabled&&!!(t=this.diagram).allowSelect&&!(!(e=t.lastInput).left||t.currentTool!==this&&(!this.isBeyondDragSize()||e.timestamp-t.firstInput.timestamp{var t=e.diagram;null!==t&&t.Ti(v.document,"scroll",e.yM,!1),e.stopTool()},t&&Object.assign(this,t)}canStart(){var t;return!!this.isEnabled&&!(!(t=this.diagram).allowHorizontalScroll&&!t.allowVerticalScroll||!t.lastInput.left||t.currentTool!==this&&!this.isBeyondDragSize())}doActivate(){var t=this.diagram;this.Ro?(t.lastInput.bubbles=!0,t.Ht(v.document,"scroll",this.yM,!1)):(t.currentCursor="move",t.isMouseCaptured=!0,this._w.c(t.position)),this.isActive=!0}doDeactivate(){var t=this.diagram;t.currentCursor="",t.isMouseCaptured=!1,this.isActive=!1}doCancel(){var t=this.diagram;t.position=this._w,t.isMouseCaptured=!1,this.stopTool()}doMouseMove(){this.jC()}doMouseUp(){this.jC(),this.stopTool()}jC(){var i=this.diagram;if(this.isActive&&i)if(this.Ro)i.lastInput.bubbles=!0;else{var s=i.position,n=i.firstInput.documentPoint,a=i.lastInput.documentPoint;let t=s.x+n.x-a.x,e=s.y+n.y-a.y;i.allowHorizontalScroll||(t=s.x),i.allowVerticalScroll||(e=s.y),i.position=this.WC.e(t,e)}}get bubbles(){return this.Ro}set bubbles(t){Kt.t(t,"boolean",ft,"bubbles"),this.Ro=t}get originalPosition(){return this._w}}class pt{tx;ix;wM;xM;constructor(t){this.tx=null,this.ix=null,this.wM=null,this.xM=null,t&&Object.assign(this,t)}get mainElement(){return this.wM}set mainElement(t){null!==t&&Kt.s(t,HTMLElement,pt,"mainElement"),this.wM=t}get show(){return this.tx}set show(t){this.tx!==t&&(null!==t&&Kt.t(t,"function",pt,"show"),this.tx=t)}get hide(){return this.ix}set hide(t){this.ix!==t&&(null!==t&&Kt.t(t,"function",pt,"hide"),this.ix=t)}get valueFunction(){return this.xM}set valueFunction(t){this.xM=t}}class vt{di;Im;Cf;constructor(t,e,i){this.di=t,this.Im=e,this.Cf=i}}class yt extends J{bM;ex;kM;SM;sx;nx;ox;constructor(t){super(),this.name="ContextMenu",this.bM=null,this.ex=null,this.kM=null,this.SM=new _,this.sx=null,this.ox=!1;const e=this;this.nx=()=>e.stopTool(),t&&Object.assign(this,t)}lF(){var t=new pt;t.show=(t,e,i)=>i.showDefaultContextMenu(),t.hide=(t,e)=>e.hideDefaultContextMenu(),yt.Au=t;const e=this;this.nx=()=>e.stopTool();var t=Kt.hn("div"),i=Kt.hn("div"),s=(t.style.cssText="top: 0px;z-index:10002;position: fixed;display: none;text-align: center;left: 25%;width: 50%;background-color: #F5F5F5;padding: 16px;border: 16px solid #444;border-radius: 10px;margin-top: 10px",i.style.cssText="z-index:10001;position: fixed;display: none;top: 0;left: 0;width: 100%;height: 100%;background-color: black;opacity: 0.8;",Kt.hn("style")),s=(v.document.getElementsByTagName("head")[0].appendChild(s),s.sheet.insertRule(".goCXul { list-style: none; }",0),s.sheet.insertRule(".goCXli {font:700 1.5em Helvetica, Arial, sans-serif;position: relative;min-width: 60px; }",0),s.sheet.insertRule(".goCXa {color: #444;display: inline-block;padding: 4px;text-decoration: none;margin: 2px;border: 1px solid gray;border-radius: 10px; }",0),this.diagram);null!==s&&(s.Ht(t,"contextmenu",yt.jh,!1),s.Ht(t,"selectstart",yt.jh,!1),s.Ht(i,"contextmenu",yt.jh,!1)),t.className="goCXforeground",i.className="goCXbackground",v.document.body&&(v.document.body.appendChild(t),v.document.body.appendChild(i)),yt.Om=t,yt.Em=i,yt.MM=!0}static Au=null;static MM=!1;static Em=null;static Om=null;static jh(t){return t.preventDefault(),!1}canStart(){var t;return!(!this.isEnabled||(t=this.diagram,this.isBeyondDragSize())||!t.lastInput.right||1!t.layer.isTemporary))){let t=s;for(;null!==t;){if(null!==t.contextMenu)return t;t=t.panel}if(e.lastInput.isTouchEvent&&this.defaultTouchContextMenu)return s.part}else if(null!==e.contextMenu)return e;return null}doActivate(){}doMouseDown(){var t;super.doMouseDown(),this.isActive&&this.currentContextMenu instanceof K&&null!==(t=this.diagram.toolManager.findTool("Action"))&&t.canStart()&&(t.doActivate(),t.doMouseDown(),t.doDeactivate()),this.diagram.toolManager.mouseDownTools.contains(this)&&this.doContextClick()}doMouseUp(){var t;this.isActive&&this.currentContextMenu instanceof K&&null!==(t=this.diagram.toolManager.findTool("Action"))&&t.canStart()&&(t.doActivate(),t.doCancel(),t.doDeactivate()),this.doContextClick()}doContextClick(){var e=this.diagram;if(this.isActive){var i=this.currentContextMenu;if(null!==i){let t=null;i instanceof pt||null!==(t=e.findObjectAt(e.lastInput.documentPoint,null,null))&&t.isContainedBy(i)&&this.standardMouseClick(null,null),this.maybeStopTool(t)}}else this.canStart()&&(this.openMenu(!0),this.isActive||this.stopTool())}maybeStopTool(t){this.stopTool(),this.canStart()&&(this.diagram.currentTool=this).doMouseUp()}openMenu(t,e){var i;void 0===e&&(e=null),this.ox||(this.ox=!0,t&&this.standardMouseSelect(),t=this.standardMouseClick(),this.ox=!1,t)||(this.isActive=!0,t=yt.Au,null!==(e=null===e?this.findObjectWithContextMenu():e)?null!==(i=e.contextMenu)?(this.currentObject=e instanceof y?e:null,this.showContextMenu(i,this.currentObject)):null!==t&&this.showContextMenu(t,this.currentObject):null!==t&&this.showContextMenu(t,null),this.currentContextMenu instanceof K&&!this.currentContextMenu.visible&&this.stopTool())}doMouseMove(){var t=this.diagram.toolManager.findTool("Action");null!==t&&t.doMouseMove(),this.isActive&&this.diagram.toolManager.doMouseMove()}showContextMenu(t,e){Ht,t instanceof K||t instanceof pt||Kt.n("showContextMenu:contextMenu must be an Adornment or HTMLInfo."),null!==e&&Kt.s(e,y,yt,"showContextMenu:obj");var i,s,n=this.diagram;t!==this.currentContextMenu&&this.hideContextMenu(),t instanceof K?((i=t).layerName="Tool",i.selectable=!1,i.scale=1/n.scale,i.category=this.name,i.hasPlaceholder()&&(i.placeholder.scale=n.scale),null!==(s=i.diagram)&&s!==n&&s.remove(i),n.add(i),null!==e?i.adornedObject=e:i.data=n.model,i.ensureBounds(),this.positionContextMenu(i,e)):t instanceof pt&&t.show(e,n,this),this.currentContextMenu=t}positionContextMenu(t,e){var i,s,n,a;t.hasPlaceholder()||(t=t,s=(i=this.diagram).lastInput.documentPoint.copy(),n=t.measuredBounds,a=i.viewportBounds,i.lastInput.isTouchEvent&&(s.x-=n.width),s.x+n.width>a.right&&(s.x-=n.width+5/i.scale),s.xa.bottom&&(s.y-=n.height+5/i.scale),s.yt.commandHandler.copySelection(),t=>t.commandHandler.canCopySelection())),t.add(new vt("Cut",t=>t.commandHandler.cutSelection(),t=>t.commandHandler.canCutSelection())),t.add(new vt("Delete",t=>t.commandHandler.deleteSelection(),t=>t.commandHandler.canDeleteSelection())),t.add(new vt("Paste",t=>t.commandHandler.pasteSelection(e.mouseDownPoint),t=>t.commandHandler.canPasteSelection(e.mouseDownPoint))),t.add(new vt("Select All",t=>t.commandHandler.selectAll(),t=>t.commandHandler.canSelectAll())),t.add(new vt("Undo",t=>t.commandHandler.undo(),t=>t.commandHandler.canUndo())),t.add(new vt("Redo",t=>t.commandHandler.redo(),t=>t.commandHandler.canRedo())),t.add(new vt("Scroll To Part",t=>t.commandHandler.scrollToPart(),t=>t.commandHandler.canScrollToPart())),t.add(new vt("Zoom To Fit",t=>t.commandHandler.zoomToFit(),t=>t.commandHandler.canZoomToFit())),t.add(new vt("Reset Zoom",t=>t.commandHandler.resetZoom(),t=>t.commandHandler.canResetZoom())),t.add(new vt("Group Selection",t=>t.commandHandler.groupSelection(),t=>t.commandHandler.canGroupSelection())),t.add(new vt("Ungroup Selection",t=>t.commandHandler.ungroupSelection(),t=>t.commandHandler.canUngroupSelection())),t.add(new vt("Edit Text",t=>t.commandHandler.editTextBlock(),t=>t.commandHandler.canEditTextBlock())),t}showDefaultContextMenu(){const e=this.diagram,i=(null===this.sx&&(this.sx=this.hF()),yt.Om.innerHTML="",yt.Em.addEventListener("pointerdown",this.nx,!1),this),t=Kt.hn("ul");t.className="goCXul",yt.Om.appendChild(t),t.innerHTML="";for(var s=this.sx.iterator;s.next();){var n=s.value,a=n.Im,r=n.Cf;"function"!=typeof a||"function"==typeof r&&!r(e)||((a=Kt.hn("li")).className="goCXli",(r=Kt.hn("a")).className="goCXa",r.href="#",r.Im=n.Im,r.addEventListener("pointerdown",function(t){return this.Im(e),i.stopTool(),t.preventDefault(),!1},!1),r.textContent=n.di,a.appendChild(r),t.appendChild(a))}yt.Om.style.display="block",yt.Em.style.display="block"}hideDefaultContextMenu(){var t;null!==this.currentContextMenu&&this.currentContextMenu===yt.Au&&(yt.Om.style.display="none",yt.Em.style.display="none",null!==(t=this.diagram)&&t.Ti(yt.Em,"pointerdown",this.nx,!1),this.currentContextMenu=null)}get currentContextMenu(){return this.bM}set currentContextMenu(t){Ht,null===t||(t instanceof K||t instanceof pt)||Kt.n("ContextMenuTool.currentContextMenu must be an Adornment or HTMLInfo."),this.bM=t,this.ex=t instanceof K?t.adornedPart:null}get defaultTouchContextMenu(){return!1===yt.MM&&null===yt.Au&&G.isUsingDOM()&&this.lF(),yt.Au}set defaultTouchContextMenu(t){Ht,null===t||(t instanceof K||t instanceof pt)||Kt.n("ContextMenuTool.defaultTouchContextMenu must be an Adornment or HTMLInfo."),null===t&&(yt.MM=!0),yt.Au=t}get currentObject(){return this.kM}set currentObject(t){null!==t&&Kt.s(t,y,yt,"currentObject"),this.kM=t}get mouseDownPoint(){return this.SM}}(bt={})[bt.LostFocus=1]="LostFocus",bt[bt.MouseDown=2]="MouseDown",bt[bt.Tab=3]="Tab",bt[bt.Enter=4]="Enter";(e={})[e.SingleClick=1]="SingleClick",e[e.SingleClickSelected=2]="SingleClickSelected",e[e.DoubleClick=3]="DoubleClick";var bt,xt=e,wt=((e={})[e.None=1]="None",e[e.Active=2]="Active",e[e.Editing=3]="Editing",e[e.Validating=4]="Validating",e[e.Invalid=5]="Invalid",e[e.Validated=6]="Validated",e);class At extends J{Fe;PM;NM;Vl;jt;CM;AM;LM;rx;lx;constructor(t){super(),this.name="TextEditing",this.Fe=new j,this.PM=null,this.NM=2,this.Vl=null,this.jt=1,this.CM=1,this.AM=!0,this.LM=null,this.rx=new pt,this.lx=null,this.aF(this.rx),t&&Object.assign(this,t)}static LostFocus=1;static MouseDown=2;static Tab=3;static Enter=4;static SingleClick=1;static SingleClickSelected=2;static DoubleClick=3;static StateNone=1;static StateActive=2;static StateEditing=3;static StateValidating=4;static StateInvalid=5;static StateValidated=6;aF(t){if(G.isUsingDOM()){const u=Kt.hn("textarea"),s=(this.lx=u,this);u.addEventListener("input",function(t){var e,i;null!==s.textBlock&&(e=s.measureTemporaryTextBlock(this.value),i=this.textScale,this.style.width=20+Math.max(s.textBlock.measuredBounds.width,e.measuredBounds.width)*i+"px",this.rows=Math.max(s.textBlock.lineCount,e.lineCount))},!1),u.addEventListener("keydown",function(t){var e;t.isComposing||null===s.textBlock||("Enter"===(e=t.key)?(!1===s.textBlock.isMultiline&&t.preventDefault(),s.acceptText(4)):"Tab"===e?(s.acceptText(3),t.preventDefault()):"Escape"===e&&(s.doCancel(),null!==s.diagram)&&s.diagram.doFocus())},!1),u.addEventListener("focus",function(t){s.fF(t)},!1),u.addEventListener("blur",function(t){s.cF(t)},!1),t.valueFunction=()=>u.value,t.mainElement=u,t.show=(e,i,s)=>{if(e instanceof j&&s instanceof At)if(5===s.state)u.style.border="3px solid red",u.focus();else{var n=e.getDocumentPoint(Z.Center),a=i.position,r=i.scale;let t=e.getDocumentScale()*r;t{t.div.removeChild(u)}}}get textBlock(){return this.PM}set textBlock(t){null!==t&&Kt.s(t,j,At,"textBlock"),this.PM=t}get currentTextEditor(){return this.LM}set currentTextEditor(t){this.LM=t}get defaultTextEditor(){return this.rx}set defaultTextEditor(t){Ht,t instanceof pt||Kt.n("TextEditingTool.defaultTextEditor must be an HTMLInfo."),this.rx=t}get starting(){return this.NM}set starting(t){Kt.it(t,xt,"TextEditingStarting"),this.NM=t}canStart(){var t,e;return!!this.isEnabled&&!(null===(t=this.diagram)||t.isReadOnly||At.Af&&At.Af!==this&&(At.Af.acceptText(2),At.Af)&&At.Af!==this||!t.lastInput.left||this.isBeyondDragSize()||(e=t.lastInput.documentPoint,!(null!==(e=t.findObjectAt(e))&&e instanceof j&&e.editable&&e.part.canEdit()))||null===(e=e.part)||2===this.starting&&!e.isSelected||3===this.starting&&t.lastInput.clickCount<2)}doStart(){null!==(At.Af=this).textBlock&&this.doActivate()}doActivate(){if(!this.isActive){var i=this.diagram;if(null!==i){let e=this.textBlock;if(null!==(e=null===e?i.findObjectAt(i.lastInput.documentPoint):e)&&e instanceof j&&null!==(this.textBlock=e).part){i.animationManager.stopAnimation(),this.isActive=!0,this.jt=2;let t=this.defaultTextEditor;null!==e.textEditor&&(t=e.textEditor),this.Fe=this.textBlock.copy();var s=new Q(this.textBlock.getDocumentPoint(Z.TopLeft),this.textBlock.getDocumentPoint(Z.BottomRight));i.scrollToRect(s),t.show(e,i,this),this.currentTextEditor=t}}}}doCancel(){this.stopTool()}doMouseUp(){this.canStart()&&this.doActivate()}doMouseDown(){this.isActive&&this.acceptText(2)}acceptText(t){switch(t){case 2:6===this.jt?this.currentTextEditor instanceof HTMLElement&&this.currentTextEditor.focus():2!==this.jt&&5!==this.jt&&3!==this.jt||(this.jt=4,this.JC());break;case 1:case 4:case 3:4===t&&!0===this.textBlock.isMultiline||2!==this.jt&&5!==this.jt&&3!==this.jt||(this.jt=4,this.JC())}}JC(){var e=this.textBlock,i=this.diagram,s=this.currentTextEditor;if(null!==e&&null!==s){var n=e.text;let t="";(null!==s.valueFunction&&(t=s.valueFunction()),this.isValidText(e,n,t))?(this.startTransaction(this.name),this.jt=6,this.transactionResult=this.name,e.text=t,this.doSuccess(n,t),null!==i&&i.V("TextEdited",e,n),this.stopTransaction(),this.stopTool(),null!==i&&i.doFocus()):(this.jt=5,this.doError(n,t))}}doError(t,e){var i=this.textBlock,t=(null!==i.errorFunction&&i.errorFunction(this,t,e),this.currentTextEditor);t&&t.show(i,this.diagram,this)}doSuccess(t,e){var i=this.textBlock;null!==i.textEdited&&i.textEdited(i,t,e)}doDeactivate(){var t=this.diagram;null!==t&&(this.jt=1,null!==this.currentTextEditor&&this.currentTextEditor.hide(t,this),this.textBlock=null,this.isActive=!1)}doStop(){At.Af=null}fF(t){var e;null!==this.currentTextEditor&&1!==this.state&&(e=this.lx,2===this.jt&&(this.jt=3),"function"==typeof e.select)&&this.selectsTextOnActivate&&(e.select(),e.setSelectionRange(0,9999))}cF(t){var e;null!==this.currentTextEditor&&1!==this.state&&("function"==typeof(e=this.lx).focus&&e.focus(),"function"==typeof e.select)&&this.selectsTextOnActivate&&(e.select(),e.setSelectionRange(0,9999))}isValidText(t,e,i){Kt.s(t,j,At,"isValidText:textblock");var s=this.textValidation;return!(null!==s&&!s(t,e,i)||null!==(s=t.textValidation)&&!s(t,e,i))}get textValidation(){return this.Vl}set textValidation(t){null!==t&&Kt.t(t,"function",At,"textValidation"),this.Vl=t}get minimumEditorScale(){return this.CM}set minimumEditorScale(t){null!==t&&Kt.t(t,"number",At,"minimumEditorScale"),this.CM=t}get selectsTextOnActivate(){return this.AM}set selectsTextOnActivate(t){null!==t&&Kt.t(t,"boolean",At,"selectsTextOnActivate"),this.AM=t}get state(){return this.jt}set state(t){this.jt!==t&&(Kt.it(t,wt,"TextEditingState"),this.jt=t)}measureTemporaryTextBlock(t){var e=this.Fe;return e.text=t,e.wt(this.textBlock.Bl,1/0),e}static Af=null}(e={})[e.Default=1]="Default",e[e.AnimateLocations=2]="AnimateLocations",e[e.None=3]="None";var Pt=e;class kt{b;Di;Xi;Lr;$n;Eo;TM;DM;Vm;Mi;Lf;xn;Bm;Jh;hx;zm;ax;Tf;Nu;Xm;constructor(t){this.b=G.Pm(),this.Di=!1,this.Vm=!1,this.Mi=!1,this.Lf=!1,this.ax=!0,this.Tf=1,this.Nu=!1,this.Xi=!0,this.Lr=!0,this.Eo=600,this.TM=!1,this.DM=!1,this.$n=new N,this.xn=new St,this.Bm=new St,(this.xn.bs=this).Jh=new N,this.hx=new N,this.zm=new N,this.Xm=new N,t&&Object.assign(this,t)}Vo(t){this.b=t}lE(){return this.b}canStart(t){return!0}zl(t){return!(!this.Xi||!this.canStart(t)||(this.$n.add(t),this.defaultAnimation.isAnimating&&this.stopAnimation(),this.b.Fi(),this.Mi=!0,0))}getBundleAnimation(){return this.Bm}FM(){if(this.Xi&&(0{!1===n.Mi||e.Di||(i.getRenderingHint("temporaryPixelRatio")&&i.vw(),i.RM(),n.Mi=!1,e.start(),e.Di&&(n.Lu(),i.invalidateDocumentBounds(),e.ZC(0),i.Pr(!0),n.Tu(),i.V("AnimationStarting",n)))})}}}IM(){return this.$n.contains("Trigger")&&1===this.$n.count}$C(t,e,i,s){this.isTicking||this.IM()||t instanceof Y&&(null!==t.fromNode||null!==t.toNode)||this.xn.add(t,"position",e,i,s)}ux(t){return this.xn.ux(t)}OM(t){return this.xn.OM(t)}uF(t){const i=this.Jh,s=this;function n(){if(0n()))}gF(t){this.zm.add(t)}mF(){for(var t=this.Jh.iterator;t.next();)t.value.Df=!1}Lu(){var t;this.Vm||(t=this.b,this.TM=t.skipsUndoManager,this.DM=t.xe,t.skipsUndoManager=!0,t.xe=!0,this.Vm=!0)}Tu(){var t=this.b;t.skipsUndoManager=this.TM,t.xe=this.DM,this.Vm=!1}stopAnimation(t){var e=this.xn;if(!0===this.Mi&&(this.Mi=!1,this.Lf=!1,this.$n.clear(),e.pF())&&this.b.requestUpdate(),this.Di){if(e.Du(!0),e.cx(null),!0===t){var i=this.Jh.toArray();for(let t=0;t{t.isAnimating||t.runCount!==1/0||t.start()})}get duration(){return this.Eo}set duration(t){Kt.t(t,"number",kt,"duration"),t<1&&Kt.G(t,">= 1",kt,"duration"),this.Eo=t}get isAnimating(){return this.Di}get isTicking(){return this.Vm}get isInitial(){return this.Lr}set isInitial(t){Kt.t(t,"boolean",kt,"isInitial"),this.Lr=t}get defaultAnimation(){return this.xn}get activeAnimations(){return this.Jh}get initialAnimationStyle(){return this.Tf}set initialAnimationStyle(t){Ht,Kt.it(t,Pt,"AnimationStyle"),this.Tf=t}static gx=new L;static defineAnimationEffect(t,e){kt.gx.add(t,e)}static BM(t,e,i,s,n){let a=(t=null===t?[0,0,0,0]:t)[0],r=t[1];var o=t[2],t=t[3];let l=(e=null===e?[0,0,0,0]:e)[0],h=e[1];var u=e[2],e=e[3],d=(0===o||100===o?(a=l,r=h):0!==u&&100!==u||(l=a,h=r),180a?a+=360:l+=360),n(i,a,l-a,s)%360);return"hsla("+d+", "+n(i,r,h-r,s)+"%, "+n(i,o,u-o,s)+"%, "+n(i,t,e-t,s)+")"}static{var t=kt.gx,e=(t,e,i,s,n,a)=>{t.position=new _(s(n,e.x,i.x-e.x,a),s(n,e.y,i.y-e.y,a))};t.add("position:diagram",e),t.add("position",e),t.add("position:part",(t,e,i,s,n,a)=>{n{n{n{var r=t.actualBounds,i=i.actualBounds,o=i.x+i.width/2-r.width/2,i=i.y+i.height/2-r.height/2;n{t.desiredSize=new Q(s(n,e.width,i.width-e.width,a),s(n,e.height,i.height-e.height,a))}),t.add("width",(t,e,i,s,n,a)=>{t.width=s(n,e,i-e,a)}),t.add("height",(t,e,i,s,n,a)=>{t.height=s(n,e,i-e,a)}),t.add("fill",(t,e,i,s,n,a)=>{t.fill=kt.BM(e,i,n,a,s)}),t.add("stroke",(t,e,i,s,n,a)=>{t.stroke=kt.BM(e,i,n,a,s)}),t.add("strokeWidth",(t,e,i,s,n,a)=>{t.strokeWidth=s(n,e,i-e,a)}),t.add("strokeDashOffset",(t,e,i,s,n,a)=>{t.strokeDashOffset=s(n,e,i-e,a)}),t.add("background",(t,e,i,s,n,a)=>{t.background=kt.BM(e,i,n,a,s)}),t.add("opacity",(t,e,i,s,n,a)=>{t.opacity=s(n,e,i-e,a)}),t.add("scale",(t,e,i,s,n,a)=>{t.scale=s(n,e,i-e,a)}),t.add("angle",(t,e,i,s,n,a)=>{t.angle=s(n,e,i-e,a)})}static Default=1;static AnimateLocations=2;static None=3}class St{mx;Ym;Di;Fu;Eo;Ss;eA;If;we;px;li;Qn;Ru;Of;yx;wx;Df;zM;xx;bs;b;XM;YM;KM;constructor(t){this.b=null,this.bs=null,this.zM=null,this.xx=null,this.XM=!1,this.Di=!1,this.Df=!1,this.li=0,this.Qn=0,this.mx=St.EaseInOutQuad,this.Ym=St.EaseInOutQuad,this.Ru=!1,this.Of=!1,this.yx=1,this.wx=0,this.Eo=NaN,this.Ss=NaN,this.YM=0,this.Fu=null,this.eA=_.To,this.we=new L,this.px=new L,this.If=new N,this.KM=1,t&&Object.assign(this,t)}suspend(){this.Df=!0}advanceTo(t,e){e&&(this.Df=!1),this.Ru&&t>=this.Ss&&(this.Of=!0,t-=this.Ss),this.YM=t,this.QC(!0),this.bs.Lu(),this.b.Pr(),this.bs.Tu(),this.b.redraw()}cx(t){if(this.px.clear(),this.Of=!1,this.wx=0,this.Ss=NaN,0{t.data=null,e.add(t)}),t.Tu(),this.Di=!0,this.li=+new Date,this.Qn=this.li+this.Ss,t.uF(this))}return this}addTemporaryPart(t,e){return t.De()&&((Ht,void 0===e&&Kt.n("addTemporaryPart: Required Diagram argument missing"),t.diagram===e&&Kt.n("addTemporaryPart: Part already in Diagram, did you mean to pass in a copy?"),null!==this.b)&&this.b!==e&&Kt.n("addTemporaryPart: A different Diagram is already associated with this Animation: "+this.b.toString()),this.If.add(t),this.b=e),this}add(t,e,i,s,n){if(null===this.b&&(t instanceof G?this.b=t:t instanceof y&&null!==t.diagram&&(this.b=t.diagram)),t instanceof H){if(!t.isAnimated)return this;"position"===e&&(e="position:part")}return this.EM(t,e,i,s,n),this}EM(t,e,i,s,n){var a=this.we;let r,o,l;if("fill"!==(e=t instanceof G&&"position"===e?"position:diagram":e)&&"stroke"!==e&&"background"!==e||(m.Bo(i),m.UM(),i=[m.Yi.n0,m.Yi.n1,m.Yi.n2,m.Yi.n3],m.Bo(s),m.UM(),s=[m.Yi.n0,m.Yi.n1,m.Yi.n2,m.Yi.n3]),a.contains(t))r=a.getValue(t),o=r.li,l=r.ks,void 0===o[e]&&(o[e]=this.Iu(i)),l[e]=this.Iu(s);else{if("position"===e&&i.equalsApprox(s))return;o={},l={},o[e]=this.Iu(i),l[e]=this.Iu(s),r=new Mt(o,l,n),a.add(t,r)}s=o[e];s instanceof _&&!s.isReal()&&s.c(this.eA),n&&0===e.indexOf("position:")&&t instanceof H?r.bx.location=this.Iu(t.location):n&&(r.bx[e]=this.Iu(i))}Iu(t){return t instanceof _||t instanceof Yt?t.copy():t}yF(t){var e=this.we;e.contains(t)&&(e.getValue(t).kx=!0)}ux(t){return!!this.Di&&null!==(t=this.we.getValue(t))&&t.kx}OM(t){return!!this.Di&&null!==(t=this.we.getValue(t))&&!!(t.li.position||t.li["position:part"]||t.li.location)}dF(){if(0this.Qn?this.Ss:s-this.li;e&&((t=this.YM)this.Qn&&(this.Ru&&!this.Of?(this.li=+new Date,this.Qn=this.li+this.Ss,this.Of=!0):this.Du(!1))}}}ZC(t){for(var e=this.Ss,i=this.we.iterator,s=this.Of;i.next();){var n=i.key;if(!(n instanceof y&&null===n.diagram)){var a=i.value,r=s?a.ks:a.li,o=s?a.li:a.ks,l=kt.gx;for(const h in o)"position"===h&&(o["position:placeholder"]||o["position:nodeCollapse"])||null!==l.get(h)&&l.get(h)(n,r[h],o[h],this.Ym,t,e,this)}}}stop(){return this.Di&&this.Du(!0),this}Du(t){if(null!==this.xx&&this.xx.wF(this.zM),this.Di){for(var e=this.b,i=this.bs,s=(i.Lf=!1,this.Di=!1,this.Df=!1,i.Lu(),this.we),n=this.If.iterator;n.next();)e.remove(n.value);for(var a=this.Ru,r=s.iterator,o=kt.gx;r.next();){var l=r.key,h=r.value,u=a?h.ks:h.li,d=a?h.li:h.ks,c=h.bx;for(const m in d)if(null!==o.get(m)){let t=m;!h.Sx||"position:nodeCollapse"!==t&&"position:placeholder"!==t||(t="position"),o.get(t)(l,u[m],(void 0!==c[m]?c:h.Sx?u:d)[m],this.Ym,this.Ss,this.Ss,this)}h.Sx&&void 0!==c.location&&l instanceof H&&(l.location=c.location),h.kx&&l instanceof H&&l.Ki(!1)}this.wx++;s=!t&&this.yx>this.wx;if(s||this!==i.Bm&&this!==i.defaultAnimation||this.we.clear(),e.Mx.clear(),e.NS(!1),e.invalidateDocumentBounds(),e.T(),e.Pr(!0),i.defaultAnimation===this){for(var g=i.Xm.iterator;g.next();)g.value.xF();i.Xm.clear()}e.Pr(!0),this.isViewportUnconstrained&&(e.scrollMode=this.KM),i.Tu(),s?(this.Of=!1,this.start()):(this.cx(null),i.Du(this),this.Fu&&this.Fu(this),e.requestUpdate())}}Ff(t,e){var i,s,n=e.actualBounds;let a=null;null!==(a=e instanceof X?e.placeholder:a)&&a.visible?(i=a.getDocumentPoint(Z.TopLeft),s=a.padding,i.x+=s.left,i.y+=s.top,this.add(t,"position",i,t.position,!1)):this.add(t,"position",new _(n.x+n.width/2,n.y+n.height/2),t.position,!1),this.add(t,"scale",.01,t.scale,!1),t instanceof X&&this.bF(t,e)}bF(t,e){for(var i=t.memberParts;i.next();){var s=i.value;s instanceof D&&this.Ff(s,e)}}Rf(e,i){if(e.isVisible()){let t=null;var s,n;null!==(t=i instanceof X?i.placeholder:t)&&t.visible?(s=t.getDocumentPoint(Z.TopLeft),n=t.padding,s.x+=n.left,s.y+=n.top,this.add(e,"position:placeholder",e.position,s,!0)):this.add(e,"position:nodeCollapse",e.position,i,!0),this.add(e,"scale",e.scale,.01,!0),this.yF(e),e instanceof X&&this.kF(e,i)}}kF(t,e){for(var i=t.memberParts;i.next();){var s=i.value;s instanceof D&&this.Rf(s,e)}}get duration(){return this.Eo}set duration(t){Kt.t(t,"number",St,"duration"),t<1&&Kt.G(t,">= 1",St,"duration"),this.Eo=t}get reversible(){return this.Ru}set reversible(t){this.Ru=t}get runCount(){return this.yx}set runCount(t){0i*t/s+e;static EaseInOutQuad=(t,e,i,s)=>(t/=s/2)<1?i/2*t*t+e:-i/2*(--t*(t-2)-1)+e;static EaseInQuad=(t,e,i,s)=>i*(t/=s)*t+e;static EaseOutQuad=(t,e,i,s)=>-i*(t/=s)*(t-2)+e;static EaseInExpo=(t,e,i,s)=>0===t?e:i*Math.pow(2,10*(t/s-1))+e;static EaseOutExpo=(t,e,i,s)=>t===s?e+i:i*(1-Math.pow(2,-10*t/s))+e}class Mt{li;ks;bx;Sx;kx;constructor(t,e,i){this.li=t,this.ks=e,this.bx={},this.Sx=i,this.kx=!1}}(e={})[e.Default=1]="Default",e[e.Immediate=2]="Immediate",e[e.Bundled=3]="Bundled";var Ct=e;class Nt{Te;mn;Ou;Ef;constructor(t,e,i){i&&(Ht,Kt.it(i,Ct,"TriggerStart")),this.Te=null,this.mn=t,this.Ou=i||1,this.Ef=null,void 0!==e&&(this.Ef=e,void 0===i)&&(this.Ou=2)}copy(){var t,e=new Nt(this.mn),i=(e.Ou=this.Ou,this.Ef);return null!==i&&(t={},void 0!==i.duration&&(t.duration=i.duration),void 0!==i.finished&&(t.finished=i.finished),void 0!==i.easing&&(t.easing=i.easing),e.Ef=t),e}get propertyName(){return this.mn}set propertyName(t){this.mn=t}get animationSettings(){return this.Ef}set animationSettings(t){this.Ef=t}SF(t){var e=this.Ef;null!==e&&(e.duration&&(t.duration=e.duration),e.finished&&(t.finished=e.finished),e.easing)&&(t.easing=e.easing)}get startCondition(){return this.Ou}set startCondition(t){Ht,Kt.it(t,Ct,"TriggerStart"),this.Ou=t}static Default=1;static Immediate=2;static Bundled=3}class Lt{b;Tt;_t;Fr;Xl;Yl;Kl;Ul;Gl;Hl;vl;ql;Wl;jl;Jl;Zl;Cf;$l;Px;Km;Eu;It;constructor(t){N.ji(this),this.b=null,this.It=new O,this.Tt="",this._t=1,this.Fr=!1,this.Xl=!0,this.Yl=!0,this.Kl=!0,this.Ul=!0,this.Gl=!0,this.Hl=!0,this.vl=!0,this.ql=!0,this.Wl=!0,this.jl=!0,this.Jl=!0,this.Zl=!0,this.Cf=!0,this.$l=!0,this.Px=!0,this.Km=!1,this.Eu=[],t&&Object.assign(this,t)}MF(){var e=this.It;for(let t=0;ta.Hm||l.height*r>a.Hm?n.Ji(s,a):this.AF(s,n),i&&(s.restore(),s.clearContextCache(!0))}}AF(t,e){var i,s=e.actualBounds,n=e.naturalBounds;0===s.width||0===s.height||isNaN(s.x)||isNaN(s.y)||!e.isVisible()||(i=e.D,null===e.background&&(e.bn(t,"rgba(0,0,0,0.3)",!0,!1,n,s),t.fillRect(s.x,s.y,s.width,s.height)),null===e.background)||(t.transform(i.m11,i.m12,i.m21,i.m22,i.dx,i.dy),e.bn(t,e.background,!0,!1,n,s),t.fillRect(0,0,n.width/2,n.height/2),i.Gk())||(e=1/(i.m11*i.m22-i.m12*i.m21),t.transform(i.m22*e,-i.m12*e,-i.m21*e,i.m11*e,e*(i.m21*i.dy-i.m22*i.dx),e*(i.m12*i.dx-i.m11*i.dy)))}CF(e,i,s,t){var n=2/t,a=4/t;for(let t=0;t=s.count)t=s.count;else if(s.elt(t)===e)return-1;s.insertAt(t,e),e.vm(i);s=this.diagram;return null!==s&&(i?s.T():s.Qh(e)),this.Nx(t,e),t}re(t,e,i){if(!i&&e.layer!==this&&null!==e.layer)return e.layer.re(t,e,i);var s=this.It;if(t<0||t>=s.length){if((t=s.indexOf(e))<0)return-1}else if(s.elt(t)!==e&&(t=s.indexOf(e))<0)return-1;e.qm(i),s.removeAt(t);s=this.diagram;return null!==s&&(i?s.T():s.re(e)),e.GM(null),t}Nx(t,e){t=this.LF(t,e),e instanceof X&&this.TF(t,e),null!==e.svg&&e.svg.remove()}LF(n,a){var r=a.zOrder;if(!isNaN(r)){var o=this.It,l=o.count;if(!(l<=1)){if((n=n<0?o.indexOf(a):n)<0)return-1;let t=n-1,e=NaN;for(;0<=t&&(e=o.elt(t).zOrder,isNaN(e));)t--;let i=n+1,s=NaN;for(;ir)for(;;){if(-1===t||e<=r)return++t===n?n:(o.removeAt(n),o.insertAt(t,a),t);for(e=NaN;0<=--t&&(e=o.elt(t).zOrder,isNaN(e)););}else if(!isNaN(s)&&s=r)return--i===n?n:(o.removeAt(n),o.insertAt(i,a),i);for(s=NaN;++i{s.Ti(v.document,"DOMContentLoaded",n,!1),s.setRTL()};null!==v.document.body?this.setRTL():s.Ht(v.document,"DOMContentLoaded",n,!1)}this.Uf=null,G.xP("Model",ei);const i=this;return this.sP=t=>i.partManager.doModelDataChanged(t),this.nP=t=>i.partManager.doModelChanged(t),this.g1=null,this.m1=null,this.dA(),this.model=b.initDiagramModel(),this.C1=null,this.themeManager=new ji,this.Xo=!0,this.gA(),this.layout=new Ue,this.Xo=!1,this.BF=null,this.zF=null,this.XF=null,this.w1=null,this.YF=null,this.KF=null,this.UF=null,this.oa=null,this.fA=null,this.nh=null,this.ra=null,this.la=null,this.ha=null,this.aa=null,this.Pu=()=>{},this.jh=null,this.vu=!1,this.Hf=new Ft(this),void 0!==t&&("string"==typeof t||v.Element&&t instanceof Element?this.bP(t):e=t),e&&this.setProperties(e),this.$t=!1,this.requestUpdate(),this}ZD(){return null!==this.xt}get renderer(){return this.Yf}set renderer(e){if(!(this instanceof Vt)){var e=(e=""===e?"default":e).toLowerCase(),t=this.Yf;if(e!==t){let t=null;"default"===(this.Yf=e)||"canvas"===e?(null!==(t=this.ih.get("svg"))&&t.Bt.remove(),this.xt&&(this.ai=this.xt.gi)):"svg"===e?(this.ih.contains("svg")?t=this.ih.get("svg"):(t=new Zt(this,v.document),this.addRenderer("svg",t)),null!==this.div&&this.div.appendChild(t.Bt),this.ai=t.gi,this.xt&&(this.xt.gi.setTransform(this.Gi,0,0,this.Gi,0,0),this.xt.gi.clearRect(0,0,this.Ct,this.At))):"debug"!==e||this.ih.contains("SVG")||(t=new Zt(this,v.document),this.addRenderer("SVG",t),t.Bt.style.backgroundColor="whitesmoke",null!==this.div&&this.div.after(t.Bt)),this.$t||this.redraw()}}}dA(){this.vf=new O,this.setupRouters(),this.bs=new kt,this.bs.Vo(this),this.wi=17,this.WM=!1,this.ju=!1,this.Cx="default",this.Jt=new O,this.ih=new L,this.Yf="default",this.resetRenderingHints(),this.GF(),this._t=1,this.lt=new _(NaN,NaN).w(),this.fx=new _(NaN,NaN),this.v=1,this.s0=1,this.Ax=new _(NaN,NaN).w(),this.Lx=NaN,this.Tx=1e-4,this.Dx=100,this.D=new V,this.Fx=new _(NaN,NaN).w(),this.Rx=new Q(NaN,NaN,NaN,NaN).w(),this.Vf=new I(0,0,0,0).w(),this.Zh=1,this.Ix=!1,this.Ox=null,this.Ex=null,this.Ql=1,this.Bf=Z.Default,this.Ir=1,this.Wm=Z.Default,this.Vx=Z.None,this.Bx=Z.None,this.qe=!0,this.Xu=!1,this._n=new Set,this.Or=new N,this._h=new N,this.zo=!1,this.sh=new L,this.qu=!0,this.jm=250,this.zf=-1,this.Jm=new I(16,16,16,16).w(),this.Tr=!1,this.Xf=!1,this.Yu=!0,this.e0=new C,(this.e0.diagram=this).jr=new C,(this.jr.diagram=this).ia=new C,(this.ia.diagram=this).Er=null,this.to=null,this.Hw=!1,this.HF(),this.Zr=new N,this.zx=!0,this.Xx=1,this.ZM=!1,this.Yx=1,this.Kx="auto",this.Zm="auto",this.Vr=null,this.Br=null,this.zr=null,this.Xr=null,this.Yr=null,this.Kr=null,this.Ux=null,this.Ur=null,this.Gx=!1,this.Gr=null,this.Hr=null,this.vr=null,this.qr=null,this.Hx=!1,this.d1={},this.na=[null,null],this.Xo=!1,this.iP=!1,this.vx=!1,this.qx=!1,this.eP=!0,this.Ps=!1,this.sa=!1,this.oP=!0,this.Ys=-2,this.eh=new L,this.Wu=new O,this.Yo=!1,this.Xi=!0,this.Wx=!0,this.Xl=!0,this.Yl=!0,this.jx=!1,this.Jx=!0,this.Kl=!0,this.Ul=!0,this.Gl=!0,this.Zx=!0,this.Hl=!0,this.vl=!0,this.ql=!0,this.Wl=!0,this.jl=!0,this.Jl=!0,this.Zl=!0,this.$x=!0,this.Qx=!0,this.rP=!1,this.Gf=!1,this.Ku=!0,this.Uu=!0,this._x=!0,this.t1=!0,this.i1=16,this.e1=16,this.$m=!1,this.s1=!1,this.o1=0,this.l1=0,this.ei=new I(5).w(),this.lP=(new N).w(),this.h1=999999999,this.hP=(new N).w(),this.ea=!0,this.Gu=!0,this.Kf=!0,this.kn=!1,this.io=!1,this.Jr=!0,this.Al=!1,this.eo=!1,this.hA=new N,this.uP=new N,this._l=null,this.aP=new Yt(8,8),this.fP=999,this.eS=1,this.sS=0,this.Ui={scale:1,position:new _,bounds:new Q,canvasSize:new Yt,newCanvasSize:new Yt,isScroll:!1},this.Ui.canvasSize=this.Ui.canvasSize,this.Ui.newCanvasSize=this.Ui.newCanvasSize,this.Ui.isScroll=!1,this.a1=new Q(NaN,NaN,NaN,NaN).w(),this.Hu=new Yt(NaN,NaN).w(),this.Qm=new Q(NaN,NaN,NaN,NaN).w(),this.f1=!1,this.vF(),this.ls=null,this.t0=!1,this.wf=null,this.partManager=new ei,this.toolManager=new st,this.toolManager.initializeStandardTools(),this.defaultTool=this.toolManager,this.currentTool=this.defaultTool,this.S1=null,this.M1=new Ot,this.P1=null,this.N1=null,this.k1=!1,this.Mu=!1,this.commandHandler=new Gt,this.a0=null,this.f0=_.Ek,this.wP=!1,this.Gi=1,this.Tl=null,this.Hm=1,this.l0=0,this.yP=[0,0,0,0,0],this.h0=0,this.o0=1,this.dP=0,this.gP=new _,this.aA=500,this.i0=new _,this.r0=!1}static mA=void 0!==v.document;static isUsingDOM(){return G.mA}static useDOM(t){G.mA=!!t&&void 0!==v.document}static he=new WeakMap;clear(){this.animationManager.stopAnimation(),this.model.clear(),G.pA(),this.yA(!1),this.Wu.clear(),this.wA(),this._l=null,this.invalidateDocumentBounds(),this.ensureBounds(),this.T()}yA(t){this.animationManager.stopAnimation(!0),this.lP=(new N).w(),this.hP=(new N).w();var e=this.skipsUndoManager,i=null!==this.Li&&void 0!==this.Li;i&&(this.skipsUndoManager=!0);let s=null;null!==this.ls&&null!==(s=this.ls.part)&&this.remove(s);var n=[],a=this.Jt.length;if(t){for(let t=0;tt?new I(t/2):1.5)),this.c1=this._m,this.u1=new K(Xt.Link).add(new q({isPanelMain:!0,fill:null,stroke:"dodgerblue",strokeWidth:3}).theme("stroke","selection").theme("strokeWidth","selection"))}setRTL(t){let e=void 0===t?this.div:t;null===e&&(e=v.document.body);t=Kt.hn("div");t.dir="rtl",t.style.cssText="font-size: 14px; width: 1px; height: 1px; position: absolute; top: -1000px; overflow: scroll;",t.textContent="A",e.appendChild(t);let i="reverse";0t.cancelWaitAfter()),e.mouseMoveTools.each(t=>t.cancelWaitAfter()),e.mouseUpTools.each(t=>t.cancelWaitAfter())),e.cancelWaitAfter(),this.currentTool.doCancel(),this.xt=null,this.Ti(v,"resize",this.w1,!1),this.Ti(v,"wheel",this.oa,!0),G.Pm()===this&&G.uA(null)):null===this.nh&&(this.eo=!1),(this.Ot=null)!==t?((e=G.he.get(t))&&(e.div=null),this.bP(t),this.Pu(),this.themeManager&&this.themeManager.qF()):this.themeManager&&this.themeManager.WF())}setupRouters(){this.vf.push(new Ki)}bP(t){const a=this;if(G.isUsingDOM()){null==t&&Kt.n("Diagram setup requires an argument DIV."),null!==a.Ot&&Kt.n("Diagram has already completed setup."),"string"==typeof t?a.Ot=v.document.getElementById(t):t instanceof HTMLDivElement?a.Ot=t:Kt.n("No DIV or DIV id supplied: "+t),null===a.Ot&&Kt.n("Invalid DIV id; could not get element with id: "+t);t=G.he.get(a.Ot);if(t&&t!==this&&Kt.n("Invalid div id; div already has a Diagram associated with it."),!a.Uf&&v.ResizeObserver){const s=v.ResizeObserver,n=Kt.Rk(()=>a.requestUpdate(),250,!1);a.Uf=new s(()=>n()),a.Uf.observe(a.Ot)}"static"===v.getComputedStyle(a.Ot,null).position&&(a.Ot.style.position="relative");a.Ot.style["-webkit-tap-highlight-color"]="rgba(255, 255, 255, 0)",a.Ot.innerHTML="",G.he.set(a.Ot,a),(a.Ot.goDiagram=a).Ot.go=v.go;var t=new $t(a),e=(void 0!==t.style&&(t.style.position="absolute",t.style.top="0px",t.style.left="0px","rtl"===v.getComputedStyle(a.Ot,null).getPropertyValue("direction")&&(a.ju=!0),t.style.zIndex="2",t.style.userSelect="none",t.style.MozUserSelect="none",t.style.touchAction="none",t.style.letterSpacing="normal !important",t.style.wordSpacing="normal !important",t.style.lang="unknown"),a.xt=t,a.ai=t.gi,a.ai);a.Gi=a.computePixelRatio(),a.viewSize.isReal()||(a.Ct=a.Ot.clientWidth||1,a.At=a.Ot.clientHeight||1),a.xA(a.Ct,a.At);const r=a;a.Ot.insertBefore(t.Bt,a.Ot.firstChild);var i,t=new $t(null),t=(t.width=1,t.height=1,a.EF=t,a.VF=t.gi,G.isUsingDOM()&&(t=Kt.hn("div"),i=Kt.hn("div"),t.style.position="absolute",t.style.overflow="auto",t.style.width=a.Ct+"px",t.style.height=a.At+"px",t.style.zIndex="1",i.style.position="absolute",i.style.width="1px",i.style.height="1px",a.Ot.appendChild(t),t.appendChild(i),t.onscroll=G.jF,t.addEventListener("pointerdown",G.JF),t.b=a,t.ZF=!0,t.$F=!0,a.g1=t,a.m1=i),a.Pu=Kt.Rk(()=>{a.Tl=null,a.T()},300,!1),a.w1=Kt.Rk(()=>{a.RM()},250,!1),a.jh=t=>(t.preventDefault(),!1),a.oa=i=>{if(r.isEnabled){var s=r.qf(i,!0);s.bubbles=!0;let t=0,e=0;void(s.delta=0)!==i.deltaX?(0!==i.deltaX&&(t=0Math.abs(i.deltaY)?-t:-e):void 0!==i.wheelDeltaX?(0!==i.wheelDeltaX&&(t=0Math.abs(i.wheelDeltaY)?-t:-e):void 0!==i.wheelDelta&&0!==i.wheelDelta&&(s.delta=0