code-constraints 0.1.0__py3-none-any.whl

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.
Files changed (116) hide show
  1. code_constraints/__init__.py +1 -0
  2. code_constraints/cli/__init__.py +0 -0
  3. code_constraints/cli/__main__.py +1555 -0
  4. code_constraints/cli/_assets/agents/cdec-architect.md +468 -0
  5. code_constraints/cli/_assets/agents/oop-refactor-architect.md +317 -0
  6. code_constraints/cli/_assets/shims/csharp/CodeConstraintsRules.cs +94 -0
  7. code_constraints/cli/_assets/shims/julia/CdecRules.jl +129 -0
  8. code_constraints/cli/_assets/shims/lua/cdec_rules.lua +92 -0
  9. code_constraints/cli/_assets/shims/odin/cdec_rules.odin +67 -0
  10. code_constraints/cli/_assets/shims/python/cdec_rules.py +94 -0
  11. code_constraints/cli/_assets/skills/cdec-architecture-loop/SKILL.md +152 -0
  12. code_constraints/cli/depstamp.py +118 -0
  13. code_constraints/cli/detect.py +77 -0
  14. code_constraints/cli/interactive.py +304 -0
  15. code_constraints/cli/scaffold.py +602 -0
  16. code_constraints/cli/update.py +157 -0
  17. code_constraints/core/__init__.py +41 -0
  18. code_constraints/core/annotations.py +217 -0
  19. code_constraints/core/associations.py +134 -0
  20. code_constraints/core/diff.py +302 -0
  21. code_constraints/core/editor_io.py +280 -0
  22. code_constraints/core/graph_model.py +681 -0
  23. code_constraints/core/keys.py +105 -0
  24. code_constraints/core/model.py +294 -0
  25. code_constraints/core/model_io.py +65 -0
  26. code_constraints/core/receivers.py +34 -0
  27. code_constraints/core/rules.py +177 -0
  28. code_constraints/core/rulesdoc.py +208 -0
  29. code_constraints/core/tags.py +114 -0
  30. code_constraints/core/ts_fingerprint.py +88 -0
  31. code_constraints/core/xmi_reader.py +358 -0
  32. code_constraints/core/xmi_writer.py +373 -0
  33. code_constraints/csharp/__init__.py +3 -0
  34. code_constraints/csharp/activity.py +250 -0
  35. code_constraints/csharp/conformance.py +331 -0
  36. code_constraints/csharp/fingerprint.py +274 -0
  37. code_constraints/csharp/parser.py +436 -0
  38. code_constraints/csharp/rules_extract.py +78 -0
  39. code_constraints/csharp/sequence.py +295 -0
  40. code_constraints/enforce/__init__.py +15 -0
  41. code_constraints/enforce/engine.py +122 -0
  42. code_constraints/enforce/model.py +74 -0
  43. code_constraints/julia/__init__.py +5 -0
  44. code_constraints/julia/conformance.py +282 -0
  45. code_constraints/julia/fingerprint.py +226 -0
  46. code_constraints/julia/parser.py +523 -0
  47. code_constraints/julia/rules_extract.py +216 -0
  48. code_constraints/lint/__init__.py +10 -0
  49. code_constraints/lint/baseline.py +96 -0
  50. code_constraints/lint/config.py +239 -0
  51. code_constraints/lint/engine.py +179 -0
  52. code_constraints/lint/pipeline.py +108 -0
  53. code_constraints/lint/report.py +151 -0
  54. code_constraints/lint/rules/__init__.py +50 -0
  55. code_constraints/lint/rules/base.py +200 -0
  56. code_constraints/lint/rules/cyclic_package_dependencies.py +69 -0
  57. code_constraints/lint/rules/dangling_classes.py +98 -0
  58. code_constraints/lint/rules/forbidden_package_references.py +47 -0
  59. code_constraints/lint/rules/forbidden_references.py +48 -0
  60. code_constraints/lint/rules/frozen_members.py +67 -0
  61. code_constraints/lint/rules/frozen_rules.py +105 -0
  62. code_constraints/lint/rules/implementation_locks.py +156 -0
  63. code_constraints/lint/rules/layer_dependencies.py +92 -0
  64. code_constraints/lint/rules/max_class_fanout.py +41 -0
  65. code_constraints/lint/rules/no_new_classes.py +27 -0
  66. code_constraints/lint/rules/no_removed_classes.py +27 -0
  67. code_constraints/lint/rules/reference_architecture.py +111 -0
  68. code_constraints/lint/rules/subclass_naming.py +71 -0
  69. code_constraints/lint/rules/tag_conformance.py +76 -0
  70. code_constraints/lock/__init__.py +73 -0
  71. code_constraints/lock/engine.py +395 -0
  72. code_constraints/lock/model.py +235 -0
  73. code_constraints/lock/store.py +144 -0
  74. code_constraints/lua/__init__.py +5 -0
  75. code_constraints/lua/conformance.py +239 -0
  76. code_constraints/lua/fingerprint.py +252 -0
  77. code_constraints/lua/parser.py +500 -0
  78. code_constraints/lua/rules_extract.py +55 -0
  79. code_constraints/mcp/__init__.py +20 -0
  80. code_constraints/mcp/__main__.py +73 -0
  81. code_constraints/mcp/server.py +1203 -0
  82. code_constraints/odin/__init__.py +5 -0
  83. code_constraints/odin/conformance.py +244 -0
  84. code_constraints/odin/fingerprint.py +159 -0
  85. code_constraints/odin/parser.py +471 -0
  86. code_constraints/odin/rules_extract.py +38 -0
  87. code_constraints/python/__init__.py +3 -0
  88. code_constraints/python/activity.py +278 -0
  89. code_constraints/python/conformance.py +249 -0
  90. code_constraints/python/fingerprint.py +231 -0
  91. code_constraints/python/parser.py +330 -0
  92. code_constraints/python/rules_extract.py +83 -0
  93. code_constraints/python/sequence.py +257 -0
  94. code_constraints/reference/__init__.py +15 -0
  95. code_constraints/reference/compare.py +356 -0
  96. code_constraints/reference/report.py +38 -0
  97. code_constraints/svelte/__init__.py +3 -0
  98. code_constraints/svelte/parser.py +523 -0
  99. code_constraints/typescript/__init__.py +3 -0
  100. code_constraints/typescript/parser.py +590 -0
  101. code_constraints/waivers/__init__.py +89 -0
  102. code_constraints/waivers/collect.py +167 -0
  103. code_constraints/waivers/model.py +90 -0
  104. code_constraints/waivers/ops.py +150 -0
  105. code_constraints/waivers/review.py +156 -0
  106. code_constraints/waivers/store.py +300 -0
  107. code_constraints/web/__init__.py +0 -0
  108. code_constraints/web/_static/assets/index-3ivBsYY4.css +1 -0
  109. code_constraints/web/_static/assets/index-BTzTqGFp.js +9 -0
  110. code_constraints/web/_static/index.html +13 -0
  111. code_constraints/web/app.py +1076 -0
  112. code_constraints-0.1.0.dist-info/METADATA +663 -0
  113. code_constraints-0.1.0.dist-info/RECORD +116 -0
  114. code_constraints-0.1.0.dist-info/WHEEL +4 -0
  115. code_constraints-0.1.0.dist-info/entry_points.txt +3 -0
  116. code_constraints-0.1.0.dist-info/licenses/LICENSE +21 -0
@@ -0,0 +1,9 @@
1
+ var dh=Object.defineProperty;var Tc=e=>{throw TypeError(e)};var fh=(e,t,n)=>t in e?dh(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;var Ze=(e,t,n)=>fh(e,typeof t!="symbol"?t+"":t,n),So=(e,t,n)=>t.has(e)||Tc("Cannot "+n);var M=(e,t,n)=>(So(e,t,"read from private field"),n?n.call(e):t.get(e)),re=(e,t,n)=>t.has(e)?Tc("Cannot add the same private member more than once"):t instanceof WeakSet?t.add(e):t.set(e,n),Oe=(e,t,n,r)=>(So(e,t,"write to private field"),r?r.call(e,n):t.set(e,n),n),Ke=(e,t,n)=>(So(e,t,"access private method"),n);(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const i of document.querySelectorAll('link[rel="modulepreload"]'))r(i);new MutationObserver(i=>{for(const a of i)if(a.type==="childList")for(const o of a.addedNodes)o.tagName==="LINK"&&o.rel==="modulepreload"&&r(o)}).observe(document,{childList:!0,subtree:!0});function n(i){const a={};return i.integrity&&(a.integrity=i.integrity),i.referrerPolicy&&(a.referrerPolicy=i.referrerPolicy),i.crossOrigin==="use-credentials"?a.credentials="include":i.crossOrigin==="anonymous"?a.credentials="omit":a.credentials="same-origin",a}function r(i){if(i.ep)return;i.ep=!0;const a=n(i);fetch(i.href,a)}})();const $u=!1;var eo=Array.isArray,vh=Array.prototype.indexOf,Ii=Array.prototype.includes,to=Array.from,hh=Object.defineProperty,br=Object.getOwnPropertyDescriptor,ed=Object.getOwnPropertyDescriptors,td=Object.prototype,gh=Array.prototype,no=Object.getPrototypeOf,Ac=Object.isExtensible;function Ui(e){return typeof e=="function"}const sr=()=>{};function mh(e){for(var t=0;t<e.length;t++)e[t]()}function nd(){var e,t,n=new Promise((r,i)=>{e=r,t=i});return{promise:n,resolve:e,reject:t}}function jt(e,t,n=!1){return e===void 0?n?t():t:e}function Da(e,t){if(Array.isArray(e))return e;if(t===void 0||!(Symbol.iterator in e))return Array.from(e);const n=[];for(const r of e)if(n.push(r),n.length===t)break;return n}function ph(e,t){var n={};for(var r in e)t.includes(r)||(n[r]=e[r]);for(var i of Object.getOwnPropertySymbols(e))Object.propertyIsEnumerable.call(e,i)&&!t.includes(i)&&(n[i]=e[i]);return n}const zt=2,Pi=4,La=8,Kl=1<<24,pn=16,xn=32,nr=64,ll=128,sn=512,Ct=1024,Pt=2048,jn=4096,Ht=8192,on=16384,ni=32768,cl=1<<25,xr=65536,Ns=1<<17,_h=1<<18,ri=1<<19,rd=1<<20,Tn=1<<25,Ur=65536,Is=1<<21,hi=1<<22,yr=1<<23,zn=Symbol("$state"),id=Symbol("legacy props"),bh=Symbol(""),hs=Symbol("attributes"),ul=Symbol("class"),dl=Symbol("style"),ea=Symbol("text"),gs=Symbol("form reset"),ro=new class extends Error{constructor(){super(...arguments);Ze(this,"name","StaleReactionError");Ze(this,"message","The reaction that called `getAbortSignal()` was re-run or destroyed")}};var Uu;const Yl=!!((Uu=globalThis.document)!=null&&Uu.contentType)&&globalThis.document.contentType.includes("xml");function Xl(e){throw new Error("https://svelte.dev/e/lifecycle_outside_component")}function yh(){throw new Error("https://svelte.dev/e/async_derived_orphan")}function wh(e,t,n){throw new Error("https://svelte.dev/e/each_key_duplicate")}function xh(e){throw new Error("https://svelte.dev/e/effect_in_teardown")}function kh(){throw new Error("https://svelte.dev/e/effect_in_unowned_derived")}function Eh(e){throw new Error("https://svelte.dev/e/effect_orphan")}function Sh(){throw new Error("https://svelte.dev/e/effect_update_depth_exceeded")}function Ch(e){throw new Error("https://svelte.dev/e/props_invalid_value")}function Nh(){throw new Error("https://svelte.dev/e/state_descriptors_fixed")}function Ih(){throw new Error("https://svelte.dev/e/state_prototype_fixed")}function Ph(){throw new Error("https://svelte.dev/e/state_unsafe_mutation")}function Oh(){throw new Error("https://svelte.dev/e/svelte_boundary_reset_onerror")}const Mh=1,Th=2,ad=4,Ah=8,zh=16,Dh=1,Lh=4,Rh=8,jh=16,sd=1,qh=2,St=Symbol(),od="http://www.w3.org/1999/xhtml",Vh="@attach";function Hh(){console.warn("https://svelte.dev/e/derived_inert")}function Fh(){console.warn("https://svelte.dev/e/select_multiple_invalid_value")}function Bh(){console.warn("https://svelte.dev/e/svelte_boundary_reset_noop")}function ld(e){return e===this.v}function cd(e,t){return e!=e?t==t:e!==t||e!==null&&typeof e=="object"||typeof e=="function"}function ud(e){return!cd(e,this.v)}let Kh=!1;const Yh=[];function Oi(e,t=!1,n=!1){return ms(e,new Map,"",Yh,null,n)}function ms(e,t,n,r,i=null,a=!1){if(typeof e=="object"&&e!==null){var o=t.get(e);if(o!==void 0)return o;if(e instanceof Map)return new Map(e);if(e instanceof Set)return new Set(e);if(eo(e)){var l=Array(e.length);t.set(e,l),i!==null&&t.set(i,l);for(var c=0;c<e.length;c+=1){var u=e[c];c in e&&(l[c]=ms(u,t,n,r,null,a))}return l}if(no(e)===td){l={},t.set(e,l),i!==null&&t.set(i,l);for(var d of Object.keys(e))l[d]=ms(e[d],t,n,r,null,a);return l}if(e instanceof Date)return structuredClone(e);if(typeof e.toJSON=="function"&&!a)return ms(e.toJSON(),t,n,r,e)}if(e instanceof EventTarget)return e;try{return structuredClone(e)}catch{return e}}let bt=null;function Mi(e){bt=e}function Wl(e){return Zl().get(e)}function Gl(e,t){return Zl().set(e,t),t}function Xh(e){return Zl().has(e)}function he(e,t=!1,n){bt={p:bt,i:!1,c:null,e:null,s:e,x:null,r:Ve,l:null}}function ge(e){var t=bt,n=t.e;if(n!==null){t.e=null;for(var r of n)Dd(r)}return t.i=!0,bt=t.p,{}}function dd(){return!0}function Zl(e){return bt===null&&Xl(),bt.c??(bt.c=new Map(Wh(bt)||void 0))}function Wh(e){let t=e.p;for(;t!==null;){const n=t.c;if(n!==null)return n;t=t.p}return null}let Lr=[];function fd(){var e=Lr;Lr=[],mh(e)}function wn(e){if(Lr.length===0&&!la){var t=Lr;queueMicrotask(()=>{t===Lr&&fd()})}Lr.push(e)}function Gh(){for(;Lr.length>0;)fd()}function vd(e){var t=Ve;if(t===null)return Be.f|=yr,e;if((t.f&ni)===0&&(t.f&Pi)===0)throw e;pr(e,t)}function pr(e,t){for(;t!==null;){if((t.f&ll)!==0){if((t.f&ni)===0)throw e;try{t.b.error(e);return}catch(n){e=n}}t=t.parent}throw e}const Zh=-7169;function ft(e,t){e.f=e.f&Zh|t}function Ul(e){(e.f&sn)!==0||e.deps===null?ft(e,Ct):ft(e,jn)}function hd(e){if(e!==null)for(const t of e)(t.f&zt)===0||(t.f&Ur)===0||(t.f^=Ur,hd(t.deps))}function gd(e,t,n){(e.f&Pt)!==0?t.add(e):(e.f&jn)!==0&&n.add(e),hd(e.deps),ft(e,Ct)}let rs=!1;function Uh(e){var t=rs;try{return rs=!1,[e(),rs]}finally{rs=t}}let Co=null,li=null,Ne=null,oa=null,Tt=null,fl=null,la=!1,No=!1,fi=null,ps=null;var zc=0;let Qh=1;var yi,vr,Vr,wi,xi,Hr,ki,Yn,Ca,Gt,Na,hr,Cn,Nn,Ei,Si,Xe,vl,ta,hl,md,pd,_s,Jh,gl,di;const Zs=class Zs{constructor(){re(this,Xe);Ze(this,"id",Qh++);re(this,yi,!1);Ze(this,"linked",!0);re(this,vr,null);re(this,Vr,null);Ze(this,"async_deriveds",new Map);Ze(this,"current",new Map);Ze(this,"previous",new Map);Ze(this,"unblocked",new Set);re(this,wi,new Set);re(this,xi,new Set);re(this,Hr,new Set);re(this,ki,0);re(this,Yn,new Map);re(this,Ca,null);re(this,Gt,[]);re(this,Na,[]);re(this,hr,new Set);re(this,Cn,new Set);re(this,Nn,new Map);re(this,Ei,new Set);Ze(this,"is_fork",!1);re(this,Si,!1)}skip_effect(t){M(this,Nn).has(t)||M(this,Nn).set(t,{d:[],m:[]}),M(this,Ei).delete(t)}unskip_effect(t,n=r=>this.schedule(r)){var r=M(this,Nn).get(t);if(r){M(this,Nn).delete(t);for(var i of r.d)ft(i,Pt),n(i);for(i of r.m)ft(i,jn),n(i)}M(this,Ei).add(t)}capture(t,n,r=!1){t.v!==St&&!this.previous.has(t)&&this.previous.set(t,t.v),(t.f&yr)===0&&(this.current.set(t,[n,r]),Tt==null||Tt.set(t,n)),this.is_fork||(t.v=n)}activate(){Ne=this}deactivate(){Ne=null,Tt=null}flush(){try{No=!0,Ne=this,Ke(this,Xe,ta).call(this)}finally{zc=0,fl=null,fi=null,ps=null,No=!1,Ne=null,Tt=null,Yr.clear()}}discard(){for(const t of M(this,xi))t(this);M(this,xi).clear(),M(this,Hr).clear(),Ke(this,Xe,di).call(this)}register_created_effect(t){M(this,Na).push(t)}increment(t,n){if(Oe(this,ki,M(this,ki)+1),t){let r=M(this,Yn).get(n)??0;M(this,Yn).set(n,r+1)}}decrement(t,n){if(Oe(this,ki,M(this,ki)-1),t){let r=M(this,Yn).get(n)??0;r===1?M(this,Yn).delete(n):M(this,Yn).set(n,r-1)}M(this,Si)||(Oe(this,Si,!0),wn(()=>{Oe(this,Si,!1),this.linked&&this.flush()}))}transfer_effects(t,n){for(const r of t)M(this,hr).add(r);for(const r of n)M(this,Cn).add(r);t.clear(),n.clear()}oncommit(t){M(this,wi).add(t)}ondiscard(t){M(this,xi).add(t)}on_fork_commit(t){M(this,Hr).add(t)}run_fork_commit_callbacks(){for(const t of M(this,Hr))t(this);M(this,Hr).clear()}settled(){return(M(this,Ca)??Oe(this,Ca,nd())).promise}static ensure(){var t;if(Ne===null){const n=Ne=new Zs;Ke(t=n,Xe,gl).call(t),!No&&!la&&wn(()=>{M(n,yi)||n.flush()})}return Ne}apply(){{Tt=null;return}}schedule(t){var i;if(fl=t,(i=t.b)!=null&&i.is_pending&&(t.f&(Pi|La|Kl))!==0&&(t.f&ni)===0){t.b.defer_effect(t);return}for(var n=t;n.parent!==null;){n=n.parent;var r=n.f;if(fi!==null&&n===Ve&&(Be===null||(Be.f&zt)===0))return;if((r&(nr|xn))!==0){if((r&Ct)===0)return;n.f^=Ct}}M(this,Gt).push(n)}};yi=new WeakMap,vr=new WeakMap,Vr=new WeakMap,wi=new WeakMap,xi=new WeakMap,Hr=new WeakMap,ki=new WeakMap,Yn=new WeakMap,Ca=new WeakMap,Gt=new WeakMap,Na=new WeakMap,hr=new WeakMap,Cn=new WeakMap,Nn=new WeakMap,Ei=new WeakMap,Si=new WeakMap,Xe=new WeakSet,vl=function(){if(this.is_fork)return!0;for(const r of M(this,Yn).keys()){for(var t=r,n=!1;t.parent!==null;){if(M(this,Nn).has(t)){n=!0;break}t=t.parent}if(!n)return!0}return!1},ta=function(){var c,u,d,v;if(Oe(this,yi,!0),zc++>1e3&&(Ke(this,Xe,di).call(this),eg()),!Ke(this,Xe,vl).call(this)){for(const f of M(this,hr))M(this,Cn).delete(f),ft(f,Pt),this.schedule(f);for(const f of M(this,Cn))ft(f,jn),this.schedule(f)}const t=M(this,Gt);Oe(this,Gt,[]),this.apply();var n=fi=[],r=[],i=ps=[];for(const f of t)try{Ke(this,Xe,hl).call(this,f,n,r)}catch(h){throw yd(f),h}if(Ne=null,i.length>0){var a=Zs.ensure();for(const f of i)a.schedule(f)}if(fi=null,ps=null,Ke(this,Xe,vl).call(this)){Ke(this,Xe,_s).call(this,r),Ke(this,Xe,_s).call(this,n);for(const[f,h]of M(this,Nn))bd(f,h);i.length>0&&Ke(c=Ne,Xe,ta).call(c);return}const o=Ke(this,Xe,md).call(this);if(o){Ke(u=o,Xe,pd).call(u,this);return}M(this,hr).clear(),M(this,Cn).clear();for(const f of M(this,wi))f(this);M(this,wi).clear(),oa=this,Dc(r),Dc(n),oa=null,(d=M(this,Ca))==null||d.resolve();var l=Ne;if(this.linked&&M(this,ki)===0&&Ke(this,Xe,di).call(this),M(this,Gt).length>0){l===null&&(l=this,Ke(this,Xe,gl).call(this));const f=l;M(f,Gt).push(...M(this,Gt).filter(h=>!M(f,Gt).includes(h)))}l!==null&&Ke(v=l,Xe,ta).call(v)},hl=function(t,n,r){t.f^=Ct;for(var i=t.first;i!==null;){var a=i.f,o=(a&(xn|nr))!==0,l=o&&(a&Ct)!==0,c=l||(a&Ht)!==0||M(this,Nn).has(i);if(!c&&i.fn!==null){o?i.f^=Ct:(a&Pi)!==0?n.push(i):qa(i)&&((a&pn)!==0&&M(this,Cn).add(i),Ai(i));var u=i.first;if(u!==null){i=u;continue}}for(;i!==null;){var d=i.next;if(d!==null){i=d;break}i=i.parent}}},md=function(){for(var t=M(this,vr);t!==null;){if(!t.is_fork){for(const[n,[,r]]of this.current)if(t.current.has(n)&&!r)return t}t=M(t,vr)}return null},pd=function(t){var r;for(const[i,a]of t.current)!this.previous.has(i)&&t.previous.has(i)&&this.previous.set(i,t.previous.get(i)),this.current.set(i,a);for(const[i,a]of t.async_deriveds){const o=this.async_deriveds.get(i);o&&a.promise.then(o.resolve)}const n=i=>{var a=i.reactions;if(a!==null)for(const c of a){var o=c.f;if((o&zt)!==0)n(c);else{var l=c;o&(hi|pn)&&!this.async_deriveds.has(l)&&(M(this,Cn).delete(l),ft(l,Pt),this.schedule(l))}}};for(const i of this.current.keys())n(i);this.oncommit(()=>t.discard()),Ke(r=t,Xe,di).call(r),Ne=this,Ke(this,Xe,ta).call(this)},_s=function(t){for(var n=0;n<t.length;n+=1)gd(t[n],M(this,hr),M(this,Cn))},Jh=function(){var d;Ke(this,Xe,di).call(this);for(let v=Co;v!==null;v=M(v,Vr)){var t=v.id<this.id,n=[];for(const[f,[h,g]]of this.current){if(v.current.has(f)){var r=v.current.get(f)[0];if(t&&h!==r)v.current.set(f,[h,g]);else continue}n.push(f)}if(t)for(const[f,h]of this.async_deriveds){const g=v.async_deriveds.get(f);g&&h.promise.then(g.resolve)}if(M(v,yi)){var i=[...v.current.keys()].filter(f=>!this.current.has(f));if(i.length===0)t&&v.discard();else if(n.length>0){if(t)for(const f of M(this,Ei))v.unskip_effect(f,h=>{var g;(h.f&(pn|hi))!==0?v.schedule(h):Ke(g=v,Xe,_s).call(g,[h])});v.activate();var a=new Set,o=new Map;for(var l of n)_d(l,i,a,o);o=new Map;var c=[...v.current.keys()].filter(f=>this.current.has(f)?this.current.get(f)[0]!==f.v:!0);if(c.length>0)for(const f of M(this,Na))(f.f&(on|Ht|Ns))===0&&Ql(f,c,o)&&((f.f&(hi|pn))!==0?(ft(f,Pt),v.schedule(f)):M(v,hr).add(f));if(M(v,Gt).length>0){v.apply();for(var u of M(v,Gt))Ke(d=v,Xe,hl).call(d,u,[],[]);Oe(v,Gt,[])}v.deactivate()}}}},gl=function(){li===null?Co=li=this:(Oe(li,Vr,this),Oe(this,vr,li)),li=this},di=function(){var t=M(this,vr),n=M(this,Vr);t===null?Co=n:Oe(t,Vr,n),n===null?li=t:Oe(n,vr,t),this.linked=!1};let kr=Zs;function $h(e){var t=la;la=!0;try{for(var n;;){if(Gh(),Ne===null)return n;Ne.flush()}}finally{la=t}}function eg(){try{Sh()}catch(e){pr(e,fl)}}let vn=null;function Dc(e){var t=e.length;if(t!==0){for(var n=0;n<t;){var r=e[n++];if((r.f&(on|Ht))===0&&qa(r)&&(vn=new Set,Ai(r),r.deps===null&&r.first===null&&r.nodes===null&&r.teardown===null&&r.ac===null&&qd(r),(vn==null?void 0:vn.size)>0)){Yr.clear();for(const i of vn){if((i.f&(on|Ht))!==0)continue;const a=[i];let o=i.parent;for(;o!==null;)vn.has(o)&&(vn.delete(o),a.push(o)),o=o.parent;for(let l=a.length-1;l>=0;l--){const c=a[l];(c.f&(on|Ht))===0&&Ai(c)}}vn.clear()}}vn=null}}function _d(e,t,n,r){if(!n.has(e)&&(n.add(e),e.reactions!==null))for(const i of e.reactions){const a=i.f;(a&zt)!==0?_d(i,t,n,r):(a&(hi|pn))!==0&&(a&Pt)===0&&Ql(i,t,r)&&(ft(i,Pt),Jl(i))}}function Ql(e,t,n){const r=n.get(e);if(r!==void 0)return r;if(e.deps!==null)for(const i of e.deps){if(Ii.call(t,i))return!0;if((i.f&zt)!==0&&Ql(i,t,n))return n.set(i,!0),!0}return n.set(e,!1),!1}function Jl(e){Ne.schedule(e)}function bd(e,t){if(!((e.f&xn)!==0&&(e.f&Ct)!==0)){(e.f&Pt)!==0?t.d.push(e):(e.f&jn)!==0&&t.m.push(e),ft(e,Ct);for(var n=e.first;n!==null;)bd(n,t),n=n.next}}function yd(e){ft(e,Ct);for(var t=e.first;t!==null;)yd(t),t=t.next}function wd(e){let t=0,n=Qr(0),r;return()=>{ec()&&(s(n),ii(()=>(t===0&&(r=yt(()=>e(()=>ca(n)))),t+=1,()=>{wn(()=>{t-=1,t===0&&(r==null||r(),r=void 0,ca(n))})})))}}var tg=xr|ri;function ng(e,t,n,r){new rg(e,t,n,r)}var tn,Bl,nn,Fr,Ft,rn,Rt,Zt,Xn,Br,gr,Ci,Ia,Pa,Wn,Us,vt,ig,ag,sg,ml,bs,ys,pl,_l;class rg{constructor(t,n,r,i){re(this,vt);Ze(this,"parent");Ze(this,"is_pending",!1);Ze(this,"transform_error");re(this,tn);re(this,Bl,null);re(this,nn);re(this,Fr);re(this,Ft);re(this,rn,null);re(this,Rt,null);re(this,Zt,null);re(this,Xn,null);re(this,Br,0);re(this,gr,0);re(this,Ci,!1);re(this,Ia,new Set);re(this,Pa,new Set);re(this,Wn,null);re(this,Us,wd(()=>(Oe(this,Wn,Qr(M(this,Br))),()=>{Oe(this,Wn,null)})));var a;Oe(this,tn,t),Oe(this,nn,n),Oe(this,Fr,o=>{var l=Ve;l.b=this,l.f|=ll,r(o)}),this.parent=Ve.b,this.transform_error=i??((a=this.parent)==null?void 0:a.transform_error)??(o=>o),Oe(this,Ft,ja(()=>{Ke(this,vt,ml).call(this)},tg))}defer_effect(t){gd(t,M(this,Ia),M(this,Pa))}is_rendered(){return!this.is_pending&&(!this.parent||this.parent.is_rendered())}has_pending_snippet(){return!!M(this,nn).pending}update_pending_count(t,n){Ke(this,vt,pl).call(this,t,n),Oe(this,Br,M(this,Br)+t),!(!M(this,Wn)||M(this,Ci))&&(Oe(this,Ci,!0),wn(()=>{Oe(this,Ci,!1),M(this,Wn)&&Ti(M(this,Wn),M(this,Br))}))}get_effect_pending(){return M(this,Us).call(this),s(M(this,Wn))}error(t){if(!M(this,nn).onerror&&!M(this,nn).failed)throw t;Ne!=null&&Ne.is_fork?(M(this,rn)&&Ne.skip_effect(M(this,rn)),M(this,Rt)&&Ne.skip_effect(M(this,Rt)),M(this,Zt)&&Ne.skip_effect(M(this,Zt)),Ne.on_fork_commit(()=>{Ke(this,vt,_l).call(this,t)})):Ke(this,vt,_l).call(this,t)}}tn=new WeakMap,Bl=new WeakMap,nn=new WeakMap,Fr=new WeakMap,Ft=new WeakMap,rn=new WeakMap,Rt=new WeakMap,Zt=new WeakMap,Xn=new WeakMap,Br=new WeakMap,gr=new WeakMap,Ci=new WeakMap,Ia=new WeakMap,Pa=new WeakMap,Wn=new WeakMap,Us=new WeakMap,vt=new WeakSet,ig=function(){try{Oe(this,rn,Kt(()=>M(this,Fr).call(this,M(this,tn))))}catch(t){this.error(t)}},ag=function(t){const n=M(this,nn).failed;n&&Oe(this,Zt,Kt(()=>{n(M(this,tn),()=>t,()=>()=>{})}))},sg=function(){const t=M(this,nn).pending;t&&(this.is_pending=!0,Oe(this,Rt,Kt(()=>t(M(this,tn)))),wn(()=>{var n=Oe(this,Xn,document.createDocumentFragment()),r=$n();n.append(r),Oe(this,rn,Ke(this,vt,ys).call(this,()=>Kt(()=>M(this,Fr).call(this,r)))),M(this,gr)===0&&(M(this,tn).before(n),Oe(this,Xn,null),Xr(M(this,Rt),()=>{Oe(this,Rt,null)}),Ke(this,vt,bs).call(this,Ne))}))},ml=function(){try{if(this.is_pending=this.has_pending_snippet(),Oe(this,gr,0),Oe(this,Br,0),Oe(this,rn,Kt(()=>{M(this,Fr).call(this,M(this,tn))})),M(this,gr)>0){var t=Oe(this,Xn,document.createDocumentFragment());rc(M(this,rn),t);const n=M(this,nn).pending;Oe(this,Rt,Kt(()=>n(M(this,tn))))}else Ke(this,vt,bs).call(this,Ne)}catch(n){this.error(n)}},bs=function(t){this.is_pending=!1,t.transfer_effects(M(this,Ia),M(this,Pa))},ys=function(t){var n=Ve,r=Be,i=bt;qn(M(this,Ft)),cn(M(this,Ft)),Mi(M(this,Ft).ctx);try{return kr.ensure(),t()}catch(a){return vd(a),null}finally{qn(n),cn(r),Mi(i)}},pl=function(t,n){var r;if(!this.has_pending_snippet()){this.parent&&Ke(r=this.parent,vt,pl).call(r,t,n);return}Oe(this,gr,M(this,gr)+t),M(this,gr)===0&&(Ke(this,vt,bs).call(this,n),M(this,Rt)&&Xr(M(this,Rt),()=>{Oe(this,Rt,null)}),M(this,Xn)&&(M(this,tn).before(M(this,Xn)),Oe(this,Xn,null)))},_l=function(t){M(this,rn)&&(Ot(M(this,rn)),Oe(this,rn,null)),M(this,Rt)&&(Ot(M(this,Rt)),Oe(this,Rt,null)),M(this,Zt)&&(Ot(M(this,Zt)),Oe(this,Zt,null));var n=M(this,nn).onerror;let r=M(this,nn).failed;var i=!1,a=!1;const o=()=>{if(i){Bh();return}i=!0,a&&Oh(),M(this,Zt)!==null&&Xr(M(this,Zt),()=>{Oe(this,Zt,null)}),Ke(this,vt,ys).call(this,()=>{Ke(this,vt,ml).call(this)})},l=c=>{try{a=!0,n==null||n(c,o),a=!1}catch(u){pr(u,M(this,Ft)&&M(this,Ft).parent)}r&&Oe(this,Zt,Ke(this,vt,ys).call(this,()=>{try{return Kt(()=>{var u=Ve;u.b=this,u.f|=ll,r(M(this,tn),()=>c,()=>o)})}catch(u){return pr(u,M(this,Ft).parent),null}}))};wn(()=>{var c;try{c=this.transform_error(t)}catch(u){pr(u,M(this,Ft)&&M(this,Ft).parent);return}c!==null&&typeof c=="object"&&typeof c.then=="function"?c.then(l,u=>pr(u,M(this,Ft)&&M(this,Ft).parent)):l(c)})};function xd(e,t,n,r){const i=va;var a=e.filter(f=>!f.settled);if(n.length===0&&a.length===0){r(t.map(i));return}var o=Ve,l=og(),c=a.length===1?a[0].promise:a.length>1?Promise.all(a.map(f=>f.promise)):null;function u(f){if((o.f&on)===0){l();try{r(f)}catch(h){pr(h,o)}Ps()}}var d=kd();if(n.length===0){c.then(()=>u(t.map(i))).finally(d);return}function v(){Promise.all(n.map(f=>lg(f))).then(f=>u([...t.map(i),...f])).catch(f=>pr(f,o)).finally(d)}c?c.then(()=>{l(),v(),Ps()}):v()}function og(){var e=Ve,t=Be,n=bt,r=Ne;return function(a=!0){qn(e),cn(t),Mi(n),a&&(e.f&on)===0&&(r==null||r.activate(),r==null||r.apply())}}function Ps(e=!0){qn(null),cn(null),Mi(null),e&&(Ne==null||Ne.deactivate())}function kd(){var e=Ve,t=e.b,n=Ne,r=t.is_rendered();return t.update_pending_count(1,n),n.increment(r,e),()=>{t.update_pending_count(-1,n),n.decrement(r,e)}}function va(e){var t=zt|Pt;return Ve!==null&&(Ve.f|=ri),{ctx:bt,deps:null,effects:null,equals:ld,f:t,fn:e,reactions:null,rv:0,v:St,wv:0,parent:Ve,ac:null}}const is=Symbol("obsolete");function lg(e,t,n){let r=Ve;r===null&&yh();var i=void 0,a=Qr(St),o=!Be,l=new Set;return wg(()=>{var h;var c=Ve,u=nd();i=u.promise;try{Promise.resolve(e()).then(u.resolve,g=>{g!==ro&&u.reject(g)}).finally(Ps)}catch(g){u.reject(g),Ps()}var d=Ne;if(o){if((c.f&ni)!==0)var v=kd();if(r.b.is_rendered())(h=d.async_deriveds.get(c))==null||h.reject(is);else for(const g of l.values())g.reject(is);l.add(u),d.async_deriveds.set(c,u)}const f=(g,p=void 0)=>{v==null||v(),l.delete(u),p!==is&&(d.activate(),p?(a.f|=yr,Ti(a,p)):((a.f&yr)!==0&&(a.f^=yr),Ti(a,g)),d.deactivate())};u.promise.then(f,g=>f(null,g||"unknown"))}),so(()=>{for(const c of l)c.reject(is)}),new Promise(c=>{function u(d){function v(){d===i?c(a):u(i)}d.then(v,v)}u(i)})}function R(e){const t=va(e);return Fd(t),t}function Ed(e){const t=va(e);return t.equals=ud,t}function cg(e){var t=e.effects;if(t!==null){e.effects=null;for(var n=0;n<t.length;n+=1)Ot(t[n])}}function $l(e){var t,n=Ve,r=e.parent;if(!rr&&r!==null&&(r.f&(on|Ht))!==0)return Hh(),e.v;qn(r);try{e.f&=~Ur,cg(e),t=Xd(e)}finally{qn(n)}return t}function Sd(e){var t=$l(e);if(!e.equals(t)&&(e.wv=Kd(),(!(Ne!=null&&Ne.is_fork)||e.deps===null)&&(Ne!==null?(Ne.capture(e,t,!0),oa==null||oa.capture(e,t,!0)):e.v=t,e.deps===null))){ft(e,Ct);return}rr||(Tt!==null?(ec()||Ne!=null&&Ne.is_fork)&&Tt.set(e,t):Ul(e))}function ug(e){var t,n;if(e.effects!==null)for(const r of e.effects)(r.teardown||r.ac)&&((t=r.teardown)==null||t.call(r),(n=r.ac)==null||n.abort(ro),r.teardown=sr,r.ac=null,ha(r,0),tc(r))}function Cd(e){if(e.effects!==null)for(const t of e.effects)t.teardown&&Ai(t)}let Os=new Set;const Yr=new Map;let Nd=!1;function Qr(e,t){var n={f:0,v:e,reactions:null,equals:ld,rv:0,wv:0};return n}function J(e,t){const n=Qr(e);return Fd(n),n}function dg(e,t=!1,n=!0){const r=Qr(e);return t||(r.equals=ud),r}function _(e,t,n=!1){Be!==null&&(!_n||(Be.f&Ns)!==0)&&dd()&&(Be.f&(zt|pn|hi|Ns))!==0&&(ln===null||!Ii.call(ln,e))&&Ph();let r=n?me(t):t;return Ti(e,r,ps)}function Ti(e,t,n=null){if(!e.equals(t)){Yr.set(e,rr?t:e.v);var r=kr.ensure();if(r.capture(e,t),(e.f&zt)!==0){const i=e;(e.f&Pt)!==0&&$l(i),Tt===null&&Ul(i)}e.wv=Kd(),Id(e,Pt,n),Ve!==null&&(Ve.f&Ct)!==0&&(Ve.f&(xn|nr))===0&&(en===null?Eg([e]):en.push(e)),!r.is_fork&&Os.size>0&&!Nd&&fg()}return t}function fg(){Nd=!1;for(const e of Os){(e.f&Ct)!==0&&ft(e,jn);let t;try{t=qa(e)}catch{t=!0}t&&Ai(e)}Os.clear()}function ca(e){_(e,e.v+1)}function Id(e,t,n){var r=e.reactions;if(r!==null)for(var i=r.length,a=0;a<i;a++){var o=r[a],l=o.f,c=(l&Pt)===0;if(c&&ft(o,t),(l&Ns)!==0)Os.add(o);else if((l&zt)!==0){var u=o;Tt==null||Tt.delete(u),(l&Ur)===0&&(l&sn&&(Ve===null||(Ve.f&Is)===0)&&(o.f|=Ur),Id(u,jn,n))}else if(c){var d=o;(l&pn)!==0&&vn!==null&&vn.add(d),n!==null?n.push(d):Jl(d)}}}function me(e){if(typeof e!="object"||e===null||zn in e)return e;const t=no(e);if(t!==td&&t!==gh)return e;var n=new Map,r=eo(e),i=J(0),a=Wr,o=l=>{if(Wr===a)return l();var c=Be,u=Wr;cn(null),qc(a);var d=l();return cn(c),qc(u),d};return r&&n.set("length",J(e.length)),new Proxy(e,{defineProperty(l,c,u){(!("value"in u)||u.configurable===!1||u.enumerable===!1||u.writable===!1)&&Nh();var d=n.get(c);return d===void 0?o(()=>{var v=J(u.value);return n.set(c,v),v}):_(d,u.value,!0),!0},deleteProperty(l,c){var u=n.get(c);if(u===void 0){if(c in l){const d=o(()=>J(St));n.set(c,d),ca(i)}}else _(u,St),ca(i);return!0},get(l,c,u){var h;if(c===zn)return e;var d=n.get(c),v=c in l;if(d===void 0&&(!v||(h=br(l,c))!=null&&h.writable)&&(d=o(()=>{var g=me(v?l[c]:St),p=J(g);return p}),n.set(c,d)),d!==void 0){var f=s(d);return f===St?void 0:f}return Reflect.get(l,c,u)},getOwnPropertyDescriptor(l,c){var u=Reflect.getOwnPropertyDescriptor(l,c);if(u&&"value"in u){var d=n.get(c);d&&(u.value=s(d))}else if(u===void 0){var v=n.get(c),f=v==null?void 0:v.v;if(v!==void 0&&f!==St)return{enumerable:!0,configurable:!0,value:f,writable:!0}}return u},has(l,c){var f;if(c===zn)return!0;var u=n.get(c),d=u!==void 0&&u.v!==St||Reflect.has(l,c);if(u!==void 0||Ve!==null&&(!d||(f=br(l,c))!=null&&f.writable)){u===void 0&&(u=o(()=>{var h=d?me(l[c]):St,g=J(h);return g}),n.set(c,u));var v=s(u);if(v===St)return!1}return d},set(l,c,u,d){var N;var v=n.get(c),f=c in l;if(r&&c==="length")for(var h=u;h<v.v;h+=1){var g=n.get(h+"");g!==void 0?_(g,St):h in l&&(g=o(()=>J(St)),n.set(h+"",g))}if(v===void 0)(!f||(N=br(l,c))!=null&&N.writable)&&(v=o(()=>J(void 0)),_(v,me(u)),n.set(c,v));else{f=v.v!==St;var p=o(()=>me(u));_(v,p)}var m=Reflect.getOwnPropertyDescriptor(l,c);if(m!=null&&m.set&&m.set.call(d,u),!f){if(r&&typeof c=="string"){var y=n.get("length"),E=Number(c);Number.isInteger(E)&&E>=y.v&&_(y,E+1)}ca(i)}return!0},ownKeys(l){s(i);var c=Reflect.ownKeys(l).filter(v=>{var f=n.get(v);return f===void 0||f.v!==St});for(var[u,d]of n)d.v!==St&&!(u in l)&&c.push(u);return c},setPrototypeOf(){Ih()}})}function Lc(e){try{if(e!==null&&typeof e=="object"&&zn in e)return e[zn]}catch{}return e}function Pd(e,t){return Object.is(Lc(e),Lc(t))}var Mt,Od,Md,Td;function vg(){if(Mt===void 0){Mt=window,Od=/Firefox/.test(navigator.userAgent);var e=Element.prototype,t=Node.prototype,n=Text.prototype;Md=br(t,"firstChild").get,Td=br(t,"nextSibling").get,Ac(e)&&(e[ul]=void 0,e[hs]=null,e[dl]=void 0,e.__e=void 0),Ac(n)&&(n[ea]=void 0)}}function $n(e=""){return document.createTextNode(e)}function Gn(e){return Md.call(e)}function Ra(e){return Td.call(e)}function b(e,t){return Gn(e)}function le(e,t=!1){{var n=Gn(e);return n instanceof Comment&&n.data===""?Ra(n):n}}function w(e,t=1,n=!1){let r=e;for(;t--;)r=Ra(r);return r}function hg(e){e.textContent=""}function Ad(){return!1}function gg(e,t,n){return document.createElementNS(od,e,void 0)}function mg(e,t){if(t){const n=document.body;e.autofocus=!0,wn(()=>{document.activeElement===n&&e.focus()})}}let Rc=!1;function pg(){Rc||(Rc=!0,document.addEventListener("reset",e=>{Promise.resolve().then(()=>{var t;if(!e.defaultPrevented)for(const n of e.target.elements)(t=n[gs])==null||t.call(n)})},{capture:!0}))}function io(e){var t=Be,n=Ve;cn(null),qn(null);try{return e()}finally{cn(t),qn(n)}}function ao(e,t,n,r=n){e.addEventListener(t,()=>io(n));const i=e[gs];i?e[gs]=()=>{i(),r(!0)}:e[gs]=()=>r(!0),pg()}function zd(e){Ve===null&&(Be===null&&Eh(),kh()),rr&&xh()}function _g(e,t){var n=t.last;n===null?t.last=t.first=e:(n.next=e,e.prev=n,t.last=e)}function dn(e,t){var n=Ve;n!==null&&(n.f&Ht)!==0&&(e|=Ht);var r={ctx:bt,deps:null,nodes:null,f:e|Pt|sn,first:null,fn:t,last:null,next:null,parent:n,b:n&&n.b,prev:null,teardown:null,wv:0,ac:null};Ne==null||Ne.register_created_effect(r);var i=r;if((e&Pi)!==0)fi!==null?fi.push(r):kr.ensure().schedule(r);else if(t!==null){try{Ai(r)}catch(o){throw Ot(r),o}i.deps===null&&i.teardown===null&&i.nodes===null&&i.first===i.last&&(i.f&ri)===0&&(i=i.first,(e&pn)!==0&&(e&xr)!==0&&i!==null&&(i.f|=xr))}if(i!==null&&(i.parent=n,n!==null&&_g(i,n),Be!==null&&(Be.f&zt)!==0&&(e&nr)===0)){var a=Be;(a.effects??(a.effects=[])).push(i)}return r}function ec(){return Be!==null&&!_n}function so(e){const t=dn(La,null);return ft(t,Ct),t.teardown=e,t}function Ae(e){zd();var t=Ve.f,n=!Be&&(t&xn)!==0&&(t&ni)===0;if(n){var r=bt;(r.e??(r.e=[])).push(e)}else return Dd(e)}function Dd(e){return dn(Pi|rd,e)}function bg(e){return zd(),dn(La|rd,e)}function Ld(e){kr.ensure();const t=dn(nr|ri,e);return()=>{Ot(t)}}function yg(e){kr.ensure();const t=dn(nr|ri,e);return(n={})=>new Promise(r=>{n.outro?Xr(t,()=>{Ot(t),r(void 0)}):(Ot(t),r(void 0))})}function Fi(e){return dn(Pi,e)}function wg(e){return dn(hi|ri,e)}function ii(e,t=0){return dn(La|t,e)}function Q(e,t=[],n=[],r=[]){xd(r,t,n,i=>{dn(La,()=>e(...i.map(s)))})}function ja(e,t=0){var n=dn(pn|t,e);return n}function Rd(e,t=0){var n=dn(Kl|t,e);return n}function Kt(e){return dn(xn|ri,e)}function jd(e){var t=e.teardown;if(t!==null){const n=rr,r=Be;jc(!0),cn(null);try{t.call(null)}finally{jc(n),cn(r)}}}function tc(e,t=!1){var n=e.first;for(e.first=e.last=null;n!==null;){const i=n.ac;i!==null&&io(()=>{i.abort(ro)});var r=n.next;(n.f&nr)!==0?n.parent=null:Ot(n,t),n=r}}function xg(e){for(var t=e.first;t!==null;){var n=t.next;(t.f&xn)===0&&Ot(t),t=n}}function Ot(e,t=!0){var n=!1;(t||(e.f&_h)!==0)&&e.nodes!==null&&e.nodes.end!==null&&(kg(e.nodes.start,e.nodes.end),n=!0),ft(e,cl),tc(e,t&&!n),ha(e,0);var r=e.nodes&&e.nodes.t;if(r!==null)for(const a of r)a.stop();jd(e),e.f^=cl,e.f|=on;var i=e.parent;i!==null&&i.first!==null&&qd(e),e.next=e.prev=e.teardown=e.ctx=e.deps=e.fn=e.nodes=e.ac=e.b=null}function kg(e,t){for(;e!==null;){var n=e===t?null:Ra(e);e.remove(),e=n}}function qd(e){var t=e.parent,n=e.prev,r=e.next;n!==null&&(n.next=r),r!==null&&(r.prev=n),t!==null&&(t.first===e&&(t.first=r),t.last===e&&(t.last=n))}function Xr(e,t,n=!0){var r=[];Vd(e,r,!0);var i=()=>{n&&Ot(e),t&&t()},a=r.length;if(a>0){var o=()=>--a||i();for(var l of r)l.out(o)}else i()}function Vd(e,t,n){if((e.f&Ht)===0){e.f^=Ht;var r=e.nodes&&e.nodes.t;if(r!==null)for(const l of r)(l.is_global||n)&&t.push(l);for(var i=e.first;i!==null;){var a=i.next;if((i.f&nr)===0){var o=(i.f&xr)!==0||(i.f&xn)!==0&&(e.f&pn)!==0;Vd(i,t,o?n:!1)}i=a}}}function nc(e){Hd(e,!0)}function Hd(e,t){if((e.f&Ht)!==0){e.f^=Ht,(e.f&Ct)===0&&(ft(e,Pt),kr.ensure().schedule(e));for(var n=e.first;n!==null;){var r=n.next,i=(n.f&xr)!==0||(n.f&xn)!==0;Hd(n,i?t:!1),n=r}var a=e.nodes&&e.nodes.t;if(a!==null)for(const o of a)(o.is_global||t)&&o.in()}}function rc(e,t){if(e.nodes)for(var n=e.nodes.start,r=e.nodes.end;n!==null;){var i=n===r?null:Ra(n);t.append(n),n=i}}let ws=!1,rr=!1;function jc(e){rr=e}let Be=null,_n=!1;function cn(e){Be=e}let Ve=null;function qn(e){Ve=e}let ln=null;function Fd(e){Be!==null&&(ln===null?ln=[e]:ln.push(e))}let Bt=null,Wt=0,en=null;function Eg(e){en=e}let Bd=1,Rr=0,Wr=Rr;function qc(e){Wr=e}function Kd(){return++Bd}function qa(e){var t=e.f;if((t&Pt)!==0)return!0;if(t&zt&&(e.f&=~Ur),(t&jn)!==0){for(var n=e.deps,r=n.length,i=0;i<r;i++){var a=n[i];if(qa(a)&&Sd(a),a.wv>e.wv)return!0}(t&sn)!==0&&Tt===null&&ft(e,Ct)}return!1}function Yd(e,t,n=!0){var r=e.reactions;if(r!==null&&!(ln!==null&&Ii.call(ln,e)))for(var i=0;i<r.length;i++){var a=r[i];(a.f&zt)!==0?Yd(a,t,!1):t===a&&(n?ft(a,Pt):(a.f&Ct)!==0&&ft(a,jn),Jl(a))}}function Xd(e){var p;var t=Bt,n=Wt,r=en,i=Be,a=ln,o=bt,l=_n,c=Wr,u=e.f;Bt=null,Wt=0,en=null,Be=(u&(xn|nr))===0?e:null,ln=null,Mi(e.ctx),_n=!1,Wr=++Rr,e.ac!==null&&(io(()=>{e.ac.abort(ro)}),e.ac=null);try{e.f|=Is;var d=e.fn,v=d();e.f|=ni;var f=e.deps,h=Ne==null?void 0:Ne.is_fork;if(Bt!==null){var g;if(h||ha(e,Wt),f!==null&&Wt>0)for(f.length=Wt+Bt.length,g=0;g<Bt.length;g++)f[Wt+g]=Bt[g];else e.deps=f=Bt;if(ec()&&(e.f&sn)!==0)for(g=Wt;g<f.length;g++)((p=f[g]).reactions??(p.reactions=[])).push(e)}else!h&&f!==null&&Wt<f.length&&(ha(e,Wt),f.length=Wt);if(dd()&&en!==null&&!_n&&f!==null&&(e.f&(zt|jn|Pt))===0)for(g=0;g<en.length;g++)Yd(en[g],e);if(i!==null&&i!==e){if(Rr++,i.deps!==null)for(let m=0;m<n;m+=1)i.deps[m].rv=Rr;if(t!==null)for(const m of t)m.rv=Rr;en!==null&&(r===null?r=en:r.push(...en))}return(e.f&yr)!==0&&(e.f^=yr),v}catch(m){return vd(m)}finally{e.f^=Is,Bt=t,Wt=n,en=r,Be=i,ln=a,Mi(o),_n=l,Wr=c}}function Sg(e,t){let n=t.reactions;if(n!==null){var r=vh.call(n,e);if(r!==-1){var i=n.length-1;i===0?n=t.reactions=null:(n[r]=n[i],n.pop())}}if(n===null&&(t.f&zt)!==0&&(Bt===null||!Ii.call(Bt,t))){var a=t;(a.f&sn)!==0&&(a.f^=sn,a.f&=~Ur),a.v!==St&&Ul(a),ug(a),ha(a,0)}}function ha(e,t){var n=e.deps;if(n!==null)for(var r=t;r<n.length;r++)Sg(e,n[r])}function Ai(e){var t=e.f;if((t&on)===0){ft(e,Ct);var n=Ve,r=ws;Ve=e,ws=!0;try{(t&(pn|Kl))!==0?xg(e):tc(e),jd(e);var i=Xd(e);e.teardown=typeof i=="function"?i:null,e.wv=Bd;var a;$u&&Kh&&(e.f&Pt)!==0&&e.deps}finally{ws=r,Ve=n}}}async function Cg(){await Promise.resolve(),$h()}function s(e){var t=e.f,n=(t&zt)!==0;if(Be!==null&&!_n){var r=Ve!==null&&(Ve.f&on)!==0;if(!r&&(ln===null||!Ii.call(ln,e))){var i=Be.deps;if((Be.f&Is)!==0)e.rv<Rr&&(e.rv=Rr,Bt===null&&i!==null&&i[Wt]===e?Wt++:Bt===null?Bt=[e]:Bt.push(e));else{(Be.deps??(Be.deps=[])).push(e);var a=e.reactions;a===null?e.reactions=[Be]:Ii.call(a,Be)||a.push(Be)}}}if(rr&&Yr.has(e))return Yr.get(e);if(n){var o=e;if(rr){var l=o.v;return((o.f&Ct)===0&&o.reactions!==null||Gd(o))&&(l=$l(o)),Yr.set(o,l),l}var c=(o.f&sn)===0&&!_n&&Be!==null&&(ws||(Be.f&sn)!==0),u=(o.f&ni)===0;qa(o)&&(c&&(o.f|=sn),Sd(o)),c&&!u&&(Cd(o),Wd(o))}if(Tt!=null&&Tt.has(e))return Tt.get(e);if((e.f&yr)!==0)throw e.v;return e.v}function Wd(e){if(e.f|=sn,e.deps!==null)for(const t of e.deps)(t.reactions??(t.reactions=[])).push(e),(t.f&zt)!==0&&(t.f&sn)===0&&(Cd(t),Wd(t))}function Gd(e){if(e.v===St)return!0;if(e.deps===null)return!1;for(const t of e.deps)if(Yr.has(t)||(t.f&zt)!==0&&Gd(t))return!0;return!1}function yt(e){var t=_n;try{return _n=!0,e()}finally{_n=t}}function Ng(e){if(!(typeof e!="object"||!e||e instanceof EventTarget)){if(zn in e)bl(e);else if(!Array.isArray(e))for(let t in e){const n=e[t];typeof n=="object"&&n&&zn in n&&bl(n)}}}function bl(e,t=new Set){if(typeof e=="object"&&e!==null&&!(e instanceof EventTarget)&&!t.has(e)){t.add(e),e instanceof Date&&e.getTime();for(let r in e)try{bl(e[r],t)}catch{}const n=no(e);if(n!==Object.prototype&&n!==Array.prototype&&n!==Map.prototype&&n!==Set.prototype&&n!==Date.prototype){const r=ed(n);for(let i in r){const a=r[i].get;if(a)try{a.call(e)}catch{}}}}}function Ig(e){return e.endsWith("capture")&&e!=="gotpointercapture"&&e!=="lostpointercapture"}const Pg=["beforeinput","click","change","dblclick","contextmenu","focusin","focusout","input","keydown","keyup","mousedown","mousemove","mouseout","mouseover","mouseup","pointerdown","pointermove","pointerout","pointerover","pointerup","touchend","touchmove","touchstart"];function Og(e){return Pg.includes(e)}const Mg={formnovalidate:"formNoValidate",ismap:"isMap",nomodule:"noModule",playsinline:"playsInline",readonly:"readOnly",defaultvalue:"defaultValue",defaultchecked:"defaultChecked",srcobject:"srcObject",novalidate:"noValidate",allowfullscreen:"allowFullscreen",disablepictureinpicture:"disablePictureInPicture",disableremoteplayback:"disableRemotePlayback"};function Tg(e){return e=e.toLowerCase(),Mg[e]??e}const Ag=["touchstart","touchmove"];function zg(e){return Ag.includes(e)}const jr=Symbol("events"),Zd=new Set,yl=new Set;function ic(e,t,n,r={}){function i(a){if(r.capture||xl.call(t,a),!a.cancelBubble)return io(()=>n==null?void 0:n.call(this,a))}return e.startsWith("pointer")||e.startsWith("touch")||e==="wheel"?wn(()=>{t.addEventListener(e,i,r)}):t.addEventListener(e,i,r),i}function wl(e,t,n,r={}){var i=ic(t,e,n,r);return()=>{e.removeEventListener(t,i,r)}}function Er(e,t,n,r,i){var a={capture:r,passive:i},o=ic(e,t,n,a);(t===document.body||t===window||t===document||t instanceof HTMLMediaElement)&&so(()=>{t.removeEventListener(e,o,a)})}function ne(e,t,n){(t[jr]??(t[jr]={}))[e]=n}function Qe(e){for(var t=0;t<e.length;t++)Zd.add(e[t]);for(var n of yl)n(e)}let Vc=null;function xl(e){var m,y;var t=this,n=t.ownerDocument,r=e.type,i=((m=e.composedPath)==null?void 0:m.call(e))||[],a=i[0]||e.target;Vc=e;var o=0,l=Vc===e&&e[jr];if(l){var c=i.indexOf(l);if(c!==-1&&(t===document||t===window)){e[jr]=t;return}var u=i.indexOf(t);if(u===-1)return;c<=u&&(o=c)}if(a=i[o]||e.target,a!==t){hh(e,"currentTarget",{configurable:!0,get(){return a||n}});var d=Be,v=Ve;cn(null),qn(null);try{for(var f,h=[];a!==null;){var g=a.assignedSlot||a.parentNode||a.host||null;try{var p=(y=a[jr])==null?void 0:y[r];p!=null&&(!a.disabled||e.target===a)&&p.call(a,e)}catch(E){f?h.push(E):f=E}if(e.cancelBubble||g===t||g===null)break;a=g}if(f){for(let E of h)queueMicrotask(()=>{throw E});throw f}}finally{e[jr]=t,delete e.currentTarget,cn(d),qn(v)}}}var Qu;const Io=((Qu=globalThis==null?void 0:globalThis.window)==null?void 0:Qu.trustedTypes)&&globalThis.window.trustedTypes.createPolicy("svelte-trusted-html",{createHTML:e=>e});function Dg(e){return(Io==null?void 0:Io.createHTML(e))??e}function Ud(e){var t=gg("template");return t.innerHTML=Dg(e.replaceAll("<!>","<!---->")),t.content}function zi(e,t){var n=Ve;n.nodes===null&&(n.nodes={start:e,end:t,a:null,t:null})}function j(e,t){var n=(t&sd)!==0,r=(t&qh)!==0,i,a=!e.startsWith("<!>");return()=>{i===void 0&&(i=Ud(a?e:"<!>"+e),n||(i=Gn(i)));var o=r||Od?document.importNode(i,!0):i.cloneNode(!0);if(n){var l=Gn(o),c=o.lastChild;zi(l,c)}else zi(o,o);return o}}function Lg(e,t,n="svg"){var r=!e.startsWith("<!>"),i=(t&sd)!==0,a=`<${n}>${r?e:"<!>"+e}</${n}>`,o;return()=>{if(!o){var l=Ud(a),c=Gn(l);if(i)for(o=document.createDocumentFragment();Gn(c);)o.appendChild(Gn(c));else o=Gn(c)}var u=o.cloneNode(!0);if(i){var d=Gn(u),v=u.lastChild;zi(d,v)}else zi(u,u);return u}}function wt(e,t){return Lg(e,t,"svg")}function Qd(e=""){{var t=$n(e+"");return zi(t,t),t}}function tt(){var e=document.createDocumentFragment(),t=document.createComment(""),n=$n();return e.append(t,n),zi(t,n),e}function O(e,t){e!==null&&e.before(t)}function W(e,t){var n=t==null?"":typeof t=="object"?`${t}`:t;n!==(e[ea]??(e[ea]=e.nodeValue))&&(e[ea]=n,e.nodeValue=`${n}`)}function Rg(e,t){return jg(e,t)}const as=new Map;function jg(e,{target:t,anchor:n,props:r={},events:i,context:a,intro:o=!0,transformError:l}){vg();var c=void 0,u=yg(()=>{var d=n??t.appendChild($n());ng(d,{pending:()=>{}},h=>{he({});var g=bt;a&&(g.c=a),i&&(r.$$events=i),c=e(h,r)||{},ge()},l);var v=new Set,f=h=>{for(var g=0;g<h.length;g++){var p=h[g];if(!v.has(p)){v.add(p);var m=zg(p);for(const N of[t,document]){var y=as.get(N);y===void 0&&(y=new Map,as.set(N,y));var E=y.get(p);E===void 0?(N.addEventListener(p,xl,{passive:m}),y.set(p,1)):y.set(p,E+1)}}}};return f(to(Zd)),yl.add(f),()=>{var m;for(var h of v)for(const y of[t,document]){var g=as.get(y),p=g.get(h);--p==0?(y.removeEventListener(h,xl),g.delete(h),g.size===0&&as.delete(y)):g.set(h,p)}yl.delete(f),d!==n&&((m=d.parentNode)==null||m.removeChild(d))}});return qg.set(c,u),c}let qg=new WeakMap;var hn,In,Ut,Kr,Oa,Ma,Qs;class ac{constructor(t,n=!0){Ze(this,"anchor");re(this,hn,new Map);re(this,In,new Map);re(this,Ut,new Map);re(this,Kr,new Set);re(this,Oa,!0);re(this,Ma,t=>{if(M(this,hn).has(t)){var n=M(this,hn).get(t),r=M(this,In).get(n);if(r)nc(r),M(this,Kr).delete(n);else{var i=M(this,Ut).get(n);i&&(M(this,In).set(n,i.effect),M(this,Ut).delete(n),i.fragment.lastChild.remove(),this.anchor.before(i.fragment),r=i.effect)}for(const[a,o]of M(this,hn)){if(M(this,hn).delete(a),a===t)break;const l=M(this,Ut).get(o);l&&(Ot(l.effect),M(this,Ut).delete(o))}for(const[a,o]of M(this,In)){if(a===n||M(this,Kr).has(a))continue;const l=()=>{if(Array.from(M(this,hn).values()).includes(a)){var u=document.createDocumentFragment();rc(o,u),u.append($n()),M(this,Ut).set(a,{effect:o,fragment:u})}else Ot(o);M(this,Kr).delete(a),M(this,In).delete(a)};M(this,Oa)||!r?(M(this,Kr).add(a),Xr(o,l,!1)):l()}}});re(this,Qs,t=>{M(this,hn).delete(t);const n=Array.from(M(this,hn).values());for(const[r,i]of M(this,Ut))n.includes(r)||(Ot(i.effect),M(this,Ut).delete(r))});this.anchor=t,Oe(this,Oa,n)}ensure(t,n){var r=Ne,i=Ad();if(n&&!M(this,In).has(t)&&!M(this,Ut).has(t))if(i){var a=document.createDocumentFragment(),o=$n();a.append(o),M(this,Ut).set(t,{effect:Kt(()=>n(o)),fragment:a})}else M(this,In).set(t,Kt(()=>n(this.anchor)));if(M(this,hn).set(r,t),i){for(const[l,c]of M(this,In))l===t?r.unskip_effect(c):r.skip_effect(c);for(const[l,c]of M(this,Ut))l===t?r.unskip_effect(c.effect):r.skip_effect(c.effect);r.oncommit(M(this,Ma)),r.ondiscard(M(this,Qs))}else M(this,Ma).call(this,r)}}hn=new WeakMap,In=new WeakMap,Ut=new WeakMap,Kr=new WeakMap,Oa=new WeakMap,Ma=new WeakMap,Qs=new WeakMap;function te(e,t,n=!1){var r=new ac(e),i=n?xr:0;function a(o,l){r.ensure(o,l)}ja(()=>{var o=!1;t((l,c=0)=>{o=!0,a(c,l)}),o||a(-1,null)},i)}function Vg(e,t){ii(()=>{var n=t();for(var r in n){var i=n[r];i?e.style.setProperty(r,i):e.style.removeProperty(r)}})}function Vt(e,t){return t}function Hg(e,t,n){for(var r=[],i=t.length,a,o=t.length,l=0;l<i;l++){let v=t[l];Xr(v,()=>{if(a){if(a.pending.delete(v),a.done.add(v),a.pending.size===0){var f=e.outrogroups;kl(e,to(a.done)),f.delete(a),f.size===0&&(e.outrogroups=null)}}else o-=1},!1)}if(o===0){var c=r.length===0&&n!==null;if(c){var u=n,d=u.parentNode;hg(d),d.append(u),e.items.clear()}kl(e,t,!c)}else a={pending:new Set(t),done:new Set},(e.outrogroups??(e.outrogroups=new Set)).add(a)}function kl(e,t,n=!0){var r;if(e.pending.size>0){r=new Set;for(const o of e.pending.values())for(const l of o)r.add(e.items.get(l).e)}for(var i=0;i<t.length;i++){var a=t[i];if(r!=null&&r.has(a)){a.f|=Tn;const o=document.createDocumentFragment();rc(a,o)}else Ot(t[i],n)}}var Hc;function Pe(e,t,n,r,i,a=null){var o=e,l=new Map,c=(t&ad)!==0;if(c){var u=e;o=u.appendChild($n())}var d=null,v=Ed(()=>{var N=n();return eo(N)?N:N==null?[]:to(N)}),f,h=new Map,g=!0;function p(N){(E.effect.f&on)===0&&(E.pending.delete(N),E.fallback=d,Fg(E,f,o,t,r),d!==null&&(f.length===0?(d.f&Tn)===0?nc(d):(d.f^=Tn,na(d,null,o)):Xr(d,()=>{d=null})))}function m(N){E.pending.delete(N)}var y=ja(()=>{f=s(v);for(var N=f.length,I=new Set,C=Ne,L=Ad(),q=0;q<N;q+=1){var T=f[q],D=r(T,q),F=g?null:l.get(D);F?(F.v&&Ti(F.v,T),F.i&&Ti(F.i,q),L&&C.unskip_effect(F.e)):(F=Bg(l,g?o:Hc??(Hc=$n()),T,D,q,i,t,n),g||(F.e.f|=Tn),l.set(D,F)),I.add(D)}if(N===0&&a&&!d&&(g?d=Kt(()=>a(o)):(d=Kt(()=>a(Hc??(Hc=$n()))),d.f|=Tn)),N>I.size&&wh(),!g)if(h.set(C,I),L){for(const[S,P]of l)I.has(S)||C.skip_effect(P.e);C.oncommit(p),C.ondiscard(m)}else p(C);s(v)}),E={effect:y,items:l,pending:h,outrogroups:null,fallback:d};g=!1}function Qi(e){for(;e!==null&&(e.f&xn)===0;)e=e.next;return e}function Fg(e,t,n,r,i){var F,S,P,H,x,k,A,z,V;var a=(r&Ah)!==0,o=t.length,l=e.items,c=Qi(e.effect.first),u,d=null,v,f=[],h=[],g,p,m,y;if(a)for(y=0;y<o;y+=1)g=t[y],p=i(g,y),m=l.get(p).e,(m.f&Tn)===0&&((S=(F=m.nodes)==null?void 0:F.a)==null||S.measure(),(v??(v=new Set)).add(m));for(y=0;y<o;y+=1){if(g=t[y],p=i(g,y),m=l.get(p).e,e.outrogroups!==null)for(const B of e.outrogroups)B.pending.delete(m),B.done.delete(m);if((m.f&Ht)!==0&&(nc(m),a&&((H=(P=m.nodes)==null?void 0:P.a)==null||H.unfix(),(v??(v=new Set)).delete(m))),(m.f&Tn)!==0)if(m.f^=Tn,m===c)na(m,null,n);else{var E=d?d.next:c;m===e.effect.last&&(e.effect.last=m.prev),m.prev&&(m.prev.next=m.next),m.next&&(m.next.prev=m.prev),ur(e,d,m),ur(e,m,E),na(m,E,n),d=m,f=[],h=[],c=Qi(d.next);continue}if(m!==c){if(u!==void 0&&u.has(m)){if(f.length<h.length){var N=h[0],I;d=N.prev;var C=f[0],L=f[f.length-1];for(I=0;I<f.length;I+=1)na(f[I],N,n);for(I=0;I<h.length;I+=1)u.delete(h[I]);ur(e,C.prev,L.next),ur(e,d,C),ur(e,L,N),c=N,d=L,y-=1,f=[],h=[]}else u.delete(m),na(m,c,n),ur(e,m.prev,m.next),ur(e,m,d===null?e.effect.first:d.next),ur(e,d,m),d=m;continue}for(f=[],h=[];c!==null&&c!==m;)(u??(u=new Set)).add(c),h.push(c),c=Qi(c.next);if(c===null)continue}(m.f&Tn)===0&&f.push(m),d=m,c=Qi(m.next)}if(e.outrogroups!==null){for(const B of e.outrogroups)B.pending.size===0&&(kl(e,to(B.done)),(x=e.outrogroups)==null||x.delete(B));e.outrogroups.size===0&&(e.outrogroups=null)}if(c!==null||u!==void 0){var q=[];if(u!==void 0)for(m of u)(m.f&Ht)===0&&q.push(m);for(;c!==null;)(c.f&Ht)===0&&c!==e.fallback&&q.push(c),c=Qi(c.next);var T=q.length;if(T>0){var D=(r&ad)!==0&&o===0?n:null;if(a){for(y=0;y<T;y+=1)(A=(k=q[y].nodes)==null?void 0:k.a)==null||A.measure();for(y=0;y<T;y+=1)(V=(z=q[y].nodes)==null?void 0:z.a)==null||V.fix()}Hg(e,q,D)}}a&&wn(()=>{var B,Y;if(v!==void 0)for(m of v)(Y=(B=m.nodes)==null?void 0:B.a)==null||Y.apply()})}function Bg(e,t,n,r,i,a,o,l){var c=(o&Mh)!==0?(o&zh)===0?dg(n,!1,!1):Qr(n):null,u=(o&Th)!==0?Qr(i):null;return{v:c,i:u,e:Kt(()=>(a(t,c??n,u??i,l),()=>{e.delete(r)}))}}function na(e,t,n){if(e.nodes)for(var r=e.nodes.start,i=e.nodes.end,a=t&&(t.f&Tn)===0?t.nodes.start:n;r!==null;){var o=Ra(r);if(a.before(r),r===i)return;r=o}}function ur(e,t,n){t===null?e.effect.first=n:t.next=n,n===null?e.effect.last=t:n.prev=t}function At(e,t,...n){var r=new ac(e);ja(()=>{const i=t()??null;r.ensure(i,i&&(a=>i(a,...n)))},xr)}function oo(e,t,n){var r=new ac(e);ja(()=>{var i=t()??null;r.ensure(i,i&&(a=>n(a,i)))},xr)}function qt(e,t,n){Fi(()=>{var r=yt(()=>t(e,n==null?void 0:n())||{});if(n&&(r!=null&&r.update)){var i=!1,a={};ii(()=>{var o=n();Ng(o),i&&cd(a,o)&&(a=o,r.update(o))}),i=!0}if(r!=null&&r.destroy)return()=>r.destroy()})}function Kg(e,t){var n=void 0,r;Rd(()=>{n!==(n=t())&&(r&&(Ot(r),r=null),n&&(r=Kt(()=>{Fi(()=>n(e))})))})}function Jd(e){var t,n,r="";if(typeof e=="string"||typeof e=="number")r+=e;else if(typeof e=="object")if(Array.isArray(e)){var i=e.length;for(t=0;t<i;t++)e[t]&&(n=Jd(e[t]))&&(r&&(r+=" "),r+=n)}else for(n in e)e[n]&&(r&&(r+=" "),r+=n);return r}function Yg(){for(var e,t,n=0,r="",i=arguments.length;n<i;n++)(e=arguments[n])&&(t=Jd(e))&&(r&&(r+=" "),r+=t);return r}function Cr(e){return typeof e=="object"?Yg(e):e??""}const Fc=[...`
2
+ \r\f \v\uFEFF`];function Xg(e,t,n){var r=e==null?"":""+e;if(t&&(r=r?r+" "+t:t),n){for(var i of Object.keys(n))if(n[i])r=r?r+" "+i:i;else if(r.length)for(var a=i.length,o=0;(o=r.indexOf(i,o))>=0;){var l=o+a;(o===0||Fc.includes(r[o-1]))&&(l===r.length||Fc.includes(r[l]))?r=(o===0?"":r.substring(0,o))+r.substring(l+1):o=l}}return r===""?null:r}function Bc(e,t=!1){var n=t?" !important;":";",r="";for(var i of Object.keys(e)){var a=e[i];a!=null&&a!==""&&(r+=" "+i+": "+a+n)}return r}function Po(e){return e[0]!=="-"||e[1]!=="-"?e.toLowerCase():e}function Wg(e,t){if(t){var n="",r,i;if(Array.isArray(t)?(r=t[0],i=t[1]):r=t,e){e=String(e).replaceAll(/\s*\/\*.*?\*\/\s*/g,"").trim();var a=!1,o=0,l=!1,c=[];r&&c.push(...Object.keys(r).map(Po)),i&&c.push(...Object.keys(i).map(Po));var u=0,d=-1;const p=e.length;for(var v=0;v<p;v++){var f=e[v];if(l?f==="/"&&e[v-1]==="*"&&(l=!1):a?a===f&&(a=!1):f==="/"&&e[v+1]==="*"?l=!0:f==='"'||f==="'"?a=f:f==="("?o++:f===")"&&o--,!l&&a===!1&&o===0){if(f===":"&&d===-1)d=v;else if(f===";"||v===p-1){if(d!==-1){var h=Po(e.substring(u,d).trim());if(!c.includes(h)){f!==";"&&v++;var g=e.substring(u,v).trim();n+=" "+g+";"}}u=v+1,d=-1}}}}return r&&(n+=Bc(r)),i&&(n+=Bc(i,!0)),n=n.trim(),n===""?null:n}return e==null?null:String(e)}function we(e,t,n,r,i,a){var o=e[ul];if(o!==n||o===void 0){var l=Xg(n,r,a);l==null?e.removeAttribute("class"):t?e.className=l:e.setAttribute("class",l),e[ul]=n}else if(a&&i!==a)for(var c in a){var u=!!a[c];(i==null||u!==!!i[c])&&e.classList.toggle(c,u)}return a}function Oo(e,t={},n,r){for(var i in n){var a=n[i];t[i]!==a&&(n[i]==null?e.style.removeProperty(i):e.style.setProperty(i,a,r))}}function nt(e,t,n,r){var i=e[dl];if(i!==t){var a=Wg(t,r);a==null?e.removeAttribute("style"):e.style.cssText=a,e[dl]=t}else r&&(Array.isArray(r)?(Oo(e,n==null?void 0:n[0],r[0]),Oo(e,n==null?void 0:n[1],r[1],"important")):Oo(e,n,r));return r}function Ms(e,t,n=!1){if(e.multiple){if(t==null)return;if(!eo(t))return Fh();for(var r of e.options)r.selected=t.includes(ua(r));return}for(r of e.options){var i=ua(r);if(Pd(i,t)){r.selected=!0;return}}(!n||t!==void 0)&&(e.selectedIndex=-1)}function $d(e){var t=new MutationObserver(()=>{Ms(e,e.__value)});t.observe(e,{childList:!0,subtree:!0,attributes:!0,attributeFilter:["value"]}),so(()=>{t.disconnect()})}function El(e,t,n=t){var r=new WeakSet,i=!0;ao(e,"change",a=>{var o=a?"[selected]":":checked",l;if(e.multiple)l=[].map.call(e.querySelectorAll(o),ua);else{var c=e.querySelector(o)??e.querySelector("option:not([disabled])");l=c&&ua(c)}n(l),e.__value=l,Ne!==null&&r.add(Ne)}),Fi(()=>{var a=t();if(e===document.activeElement){var o=Ne;if(r.has(o))return}if(Ms(e,a,i),i&&a===void 0){var l=e.querySelector(":checked");l!==null&&(a=ua(l),n(a))}e.__value=a,i=!1}),$d(e)}function ua(e){return"__value"in e?e.__value:e.value}const dr=Symbol("class"),Zn=Symbol("style"),ef=Symbol("is custom element"),tf=Symbol("is html"),Gg=Yl?"option":"OPTION",Zg=Yl?"select":"SELECT",Ug=Yl?"progress":"PROGRESS";function Qg(e,t){var n=lo(e);n.value===(n.value=t??void 0)||e.value===t&&(t!==0||e.nodeName!==Ug)||(e.value=t??"")}function Gr(e,t){var n=lo(e);n.checked!==(n.checked=t??void 0)&&(e.checked=t)}function Jg(e,t){t?e.hasAttribute("selected")||e.setAttribute("selected",""):e.removeAttribute("selected")}function ce(e,t,n,r){var i=lo(e);i[t]!==(i[t]=n)&&(t==="loading"&&(e[bh]=n),n==null?e.removeAttribute(t):typeof n!="string"&&nf(e).includes(t)?e[t]=n:e.setAttribute(t,n))}function $g(e,t,n,r,i=!1,a=!1){var o=lo(e),l=o[ef],c=!o[tf],u=t||{},d=e.nodeName===Gg;for(var v in t)v in n||(n[v]=null);n.class?n.class=Cr(n.class):(r||n[dr])&&(n.class=null),n[Zn]&&(n.style??(n.style=null));var f=nf(e);for(const I in n){let C=n[I];if(d&&I==="value"&&C==null){e.value=e.__value="",u[I]=C;continue}if(I==="class"){var h=e.namespaceURI==="http://www.w3.org/1999/xhtml";we(e,h,C,r,t==null?void 0:t[dr],n[dr]),u[I]=C,u[dr]=n[dr];continue}if(I==="style"){nt(e,C,t==null?void 0:t[Zn],n[Zn]),u[I]=C,u[Zn]=n[Zn];continue}var g=u[I];if(!(C===g&&!(C===void 0&&e.hasAttribute(I)))){u[I]=C;var p=I[0]+I[1];if(p!=="$$")if(p==="on"){const L={},q="$$"+I;let T=I.slice(2);var m=Og(T);if(Ig(T)&&(T=T.slice(0,-7),L.capture=!0),!m&&g){if(C!=null)continue;e.removeEventListener(T,u[q],L),u[q]=null}if(m)ne(T,e,C),Qe([T]);else if(C!=null){let D=function(F){u[I].call(this,F)};var N=D;u[q]=ic(T,e,D,L)}}else if(I==="style")ce(e,I,C);else if(I==="autofocus")mg(e,!!C);else if(!l&&(I==="__value"||I==="value"&&C!=null))e.value=e.__value=C;else if(I==="selected"&&d)Jg(e,C);else{var y=I;c||(y=Tg(y));var E=y==="defaultValue"||y==="defaultChecked";if(C==null&&!l&&!E)if(o[I]=null,y==="value"||y==="checked"){let L=e;const q=t===void 0;if(y==="value"){let T=L.defaultValue;L.removeAttribute(y),L.defaultValue=T,L.value=L.__value=q?T:null}else{let T=L.defaultChecked;L.removeAttribute(y),L.defaultChecked=T,L.checked=q?T:!1}}else e.removeAttribute(I);else E||f.includes(y)&&(l||typeof C!="string")?(e[y]=C,y in o&&(o[y]=St)):typeof C!="function"&&ce(e,y,C)}}}return u}function Nr(e,t,n=[],r=[],i=[],a,o=!1,l=!1){xd(i,n,r,c=>{var u=void 0,d={},v=e.nodeName===Zg,f=!1;if(Rd(()=>{var g=t(...c.map(s)),p=$g(e,u,g,a,o,l);f&&v&&"value"in g&&Ms(e,g.value);for(let y of Object.getOwnPropertySymbols(d))g[y]||Ot(d[y]);for(let y of Object.getOwnPropertySymbols(g)){var m=g[y];y.description===Vh&&(!u||m!==u[y])&&(d[y]&&Ot(d[y]),d[y]=Kt(()=>Kg(e,()=>m))),p[y]=m}u=p}),v){var h=e;Fi(()=>{Ms(h,u.value,!0),$d(h)})}f=!0})}function lo(e){return e[hs]??(e[hs]={[ef]:e.nodeName.includes("-"),[tf]:e.namespaceURI===od})}var Kc=new Map;function nf(e){var t=e.getAttribute("is")||e.nodeName,n=Kc.get(t);if(n)return n;Kc.set(t,n=[]);for(var r,i=e,a=Element.prototype;a!==i;){r=ed(i);for(var o in r)r[o].set&&o!=="innerHTML"&&o!=="textContent"&&o!=="innerText"&&n.push(o);i=no(i)}return n}function Ye(e,t,n=t){var r=new WeakSet;ao(e,"input",async i=>{var a=i?e.defaultValue:e.value;if(a=To(e)?Ao(a):a,n(a),Ne!==null&&r.add(Ne),await Cg(),a!==(a=t())){var o=e.selectionStart,l=e.selectionEnd,c=e.value.length;if(e.value=a??"",l!==null){var u=e.value.length;o===l&&l===c&&u>c?(e.selectionStart=u,e.selectionEnd=u):(e.selectionStart=o,e.selectionEnd=Math.min(l,u))}}}),yt(t)==null&&e.value&&(n(To(e)?Ao(e.value):e.value),Ne!==null&&r.add(Ne)),ii(()=>{var i=t();if(e===document.activeElement){var a=Ne;if(r.has(a))return}To(e)&&i===Ao(e.value)||e.type==="date"&&!i&&!e.value||i!==e.value&&(e.value=i??"")})}const Mo=new Set;function sc(e,t,n,r,i=r){var a=n.getAttribute("type")==="checkbox",o=e;if(t!==null)for(var l of t)o=o[l]??(o[l]=[]);o.push(n),ao(n,"change",()=>{var c=n.__value;a&&(c=em(o,c,n.checked)),i(c)},()=>i(a?[]:null)),ii(()=>{var c=r();a?(c=c||[],n.checked=c.includes(n.__value)):n.checked=Pd(n.__value,c)}),so(()=>{var c=o.indexOf(n);c!==-1&&o.splice(c,1)}),Mo.has(o)||(Mo.add(o),wn(()=>{o.sort((c,u)=>c.compareDocumentPosition(u)===4?-1:1),Mo.delete(o)})),wn(()=>{})}function Ts(e,t,n=t){ao(e,"change",r=>{var i=r?e.defaultChecked:e.checked;n(i)}),yt(t)==null&&n(e.checked),ii(()=>{var r=t();e.checked=!!r})}function em(e,t,n){for(var r=new Set,i=0;i<e.length;i+=1)e[i].checked&&r.add(e[i].__value);return n||r.delete(t),Array.from(r)}function To(e){var t=e.type;return t==="number"||t==="range"}function Ao(e){return e===""?null:+e}var mr,Ni,Ta,Js,rf;const $s=class $s{constructor(t){re(this,Js);re(this,mr,new WeakMap);re(this,Ni);re(this,Ta);Oe(this,Ta,t)}observe(t,n){var r=M(this,mr).get(t)||new Set;return r.add(n),M(this,mr).set(t,r),Ke(this,Js,rf).call(this).observe(t,M(this,Ta)),()=>{var i=M(this,mr).get(t);i.delete(n),i.size===0&&(M(this,mr).delete(t),M(this,Ni).unobserve(t))}}};mr=new WeakMap,Ni=new WeakMap,Ta=new WeakMap,Js=new WeakSet,rf=function(){return M(this,Ni)??Oe(this,Ni,new ResizeObserver(t=>{for(var n of t){$s.entries.set(n.target,n);for(var r of M(this,mr).get(n.target)||[])r(n)}}))},Ze($s,"entries",new WeakMap);let Sl=$s;var tm=new Sl({box:"border-box"});function Yc(e,t,n){var r=tm.observe(e,()=>n(e[t]));Fi(()=>(yt(()=>n(e[t])),r))}function zo(e,t){return e===t||(e==null?void 0:e[zn])===t}function ir(e={},t,n,r){var i=bt.r,a=Ve;return Fi(()=>{var o,l;return ii(()=>{o=l,l=[],yt(()=>{zo(n(...l),e)||(t(e,...l),o&&zo(n(...o),e)&&t(null,...o))})}),()=>{let c=a;for(;c!==i&&c.parent!==null&&c.parent.f&cl;)c=c.parent;const u=()=>{l&&zo(n(...l),e)&&t(null,...l)},d=c.teardown;c.teardown=()=>{u(),d==null||d()}}}),e}const nm={get(e,t){if(!e.exclude.includes(t))return e.props[t]},set(e,t){return!1},getOwnPropertyDescriptor(e,t){if(!e.exclude.includes(t)&&t in e.props)return{enumerable:!0,configurable:!0,value:e.props[t]}},has(e,t){return e.exclude.includes(t)?!1:t in e.props},ownKeys(e){return Reflect.ownKeys(e.props).filter(t=>!e.exclude.includes(t))}};function Ir(e,t,n){return new Proxy({props:e,exclude:t},nm)}const rm={get(e,t){let n=e.props.length;for(;n--;){let r=e.props[n];if(Ui(r)&&(r=r()),typeof r=="object"&&r!==null&&t in r)return r[t]}},set(e,t,n){let r=e.props.length;for(;r--;){let i=e.props[r];Ui(i)&&(i=i());const a=br(i,t);if(a&&a.set)return a.set(n),!0}return!1},getOwnPropertyDescriptor(e,t){let n=e.props.length;for(;n--;){let r=e.props[n];if(Ui(r)&&(r=r()),typeof r=="object"&&r!==null&&t in r){const i=br(r,t);return i&&!i.configurable&&(i.configurable=!0),i}}},has(e,t){if(t===zn||t===id)return!1;for(let n of e.props)if(Ui(n)&&(n=n()),n!=null&&t in n)return!0;return!1},ownKeys(e){const t=[];for(let n of e.props)if(Ui(n)&&(n=n()),!!n){for(const r in n)t.includes(r)||t.push(r);for(const r of Object.getOwnPropertySymbols(n))t.includes(r)||t.push(r)}return t}};function Dr(...e){return new Proxy({props:e},rm)}function fe(e,t,n,r){var I;var i=!0,a=(n&Rh)!==0,o=(n&jh)!==0,l=r,c=!0,u=void 0,d=()=>o&&i?(u??(u=va(r)),s(u)):(c&&(c=!1,l=o?yt(r):r),l);let v;if(a){var f=zn in e||id in e;v=((I=br(e,t))==null?void 0:I.set)??(f&&t in e?C=>e[t]=C:void 0)}var h,g=!1;a?[h,g]=Uh(()=>e[t]):h=e[t],h===void 0&&r!==void 0&&(h=d(),v&&(Ch(),v(h)));var p;if(p=()=>{var C=e[t];return C===void 0?d():(c=!0,C)},(n&Lh)===0)return p;if(v){var m=e.$$legacy;return(function(C,L){return arguments.length>0?((!L||m||g)&&v(L?p():C),C):p()})}var y=!1,E=((n&Dh)!==0?va:Ed)(()=>(y=!1,p()));a&&s(E);var N=Ve;return(function(C,L){if(arguments.length>0){const q=L?s(E):a?me(C):C;return _(E,q),y=!0,l!==void 0&&(l=q),C}return rr&&y||(N.f&on)!==0?E.v:s(E)})}function af(e){bt===null&&Xl(),Ae(()=>{const t=yt(e);if(typeof t=="function")return t})}function co(e){bt===null&&Xl(),af(()=>()=>yt(e))}const im="5";var Ju;typeof window<"u"&&((Ju=window.__svelte??(window.__svelte={})).v??(Ju.v=new Set)).add(im);async function _t(e,t){const n=await fetch(e,t);if(!n.ok){const r=await n.text();throw new Error(`${n.status} ${n.statusText}: ${r}`)}return n.json()}async function Xc(e,t){const n=await fetch(e,t);if(!n.ok){const r=await n.text();throw new Error(`${n.status} ${n.statusText}: ${r}`)}}const Ie={registerProject(e,t){return _t("/api/projects",{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({path:e,lang:t})})},listProjects(){return _t("/api/projects")},parse(e){return _t(`/api/projects/${e}/parse`,{method:"POST"})},latestProposal(e){return _t(`/api/projects/${e}/proposal`)},referenceModel(e){return _t(`/api/projects/${e}/reference-model`)},refs(e){return _t(`/api/projects/${e}/refs`)},gitInfo(e){return _t(`/api/projects/${e}/git-info`)},async quickDiff(e,t){let n=t;if(n===void 0)try{n=(await Ie.gitInfo(e)).subpath??""}catch{n=""}return _t(`/api/projects/${e}/diff`,{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({old_ref:"HEAD~1",new_ref:"HEAD",subpath:n})})},diff(e,t,n,r=""){return _t(`/api/projects/${e}/diff`,{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({old_ref:t,new_ref:n,subpath:r})})},diagrams(e){return _t(`/api/xmi/${e}/diagrams`)},classGraph(e){return _t(`/api/xmi/${e}/model?diagram=class`)},layerDependencies(e){return _t(`/api/projects/${e}/layers`)},changes(e){return _t(`/api/xmi/${e}/changes`)},packageGraph(e){return _t(`/api/xmi/${e}/model?diagram=package`)},activityGraph(e,t){const n=new URLSearchParams({diagram:"activity",name:t});return _t(`/api/xmi/${e}/model?${n.toString()}`)},sequenceGraph(e,t){const n=new URLSearchParams({diagram:"sequence",name:t});return _t(`/api/xmi/${e}/model?${n.toString()}`)},activityChanges(e){return _t(`/api/xmi/${e}/changes?kind=activity`)},sequenceChanges(e){return _t(`/api/xmi/${e}/changes?kind=sequence`)},async diffXmiFiles(e,t){const n=new FormData;n.append("old_xmi",e),n.append("new_xmi",t);const r=await fetch("/api/xmi/diff",{method:"POST",body:n});if(!r.ok){const i=await r.text();throw new Error(`${r.status} ${r.statusText}: ${i}`)}return r.json()},async diffSourceVsXmi(e,t,n){const r=new FormData;r.append("reference_xmi",n),r.append("path",e),r.append("lang",t);const i=await fetch("/api/projects/diff-vs-xmi",{method:"POST",body:r});if(!i.ok){const a=await i.text();throw new Error(`${i.status} ${i.statusText}: ${a}`)}return i.json()},async projectInfo(e){return(await Ie.listProjects()).find(n=>n.id===e)??null},async editFromXmi(e,t="diagram.xmi"){const n=new FormData;n.append("file",e,t);const r=await fetch("/api/edit/from-xmi",{method:"POST",body:n});if(!r.ok){const i=await r.text();throw new Error(`${r.status} ${r.statusText}: ${i}`)}return r.json()},async editClassGraph(e){const t=await fetch("/api/edit/model?diagram=class",{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify(e)});if(!t.ok){const n=await t.text();throw new Error(`${t.status} ${t.statusText}: ${n}`)}return t.json()},async editDiffGraph(e,t){const n=await fetch("/api/edit/diff-model?diagram=class",{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({old:e,new:t})});if(!n.ok){const r=await n.text();throw new Error(`${n.status} ${n.statusText}: ${r}`)}return n.json()},async setReference(e,t){const n=await fetch(`/api/projects/${e}/reference`,{method:"PUT",headers:{"content-type":"application/xml"},body:t});if(!n.ok){const r=await n.text();throw new Error(`${n.status} ${n.statusText}: ${r}`)}return n.json()},listViews(e){return _t(`/api/projects/${e}/views`)},getView(e,t){return _t(`/api/projects/${e}/views/${encodeURIComponent(t)}`)},saveView(e,t,n){return Xc(`/api/projects/${e}/views/${encodeURIComponent(t)}`,{method:"PUT",headers:{"content-type":"application/json"},body:JSON.stringify(n)})},deleteView(e,t){return Xc(`/api/projects/${e}/views/${encodeURIComponent(t)}`,{method:"DELETE"})},async editToXmi(e,t){const n=t?{...e,download_name:t}:e,r=await fetch("/api/edit/to-xmi",{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify(n)});if(!r.ok){const i=await r.text();throw new Error(`${r.status} ${r.statusText}: ${i}`)}return r.blob()}};var am=j('<span class="muted svelte-1m668wg">Checking git status…</span>'),sm=j('<span class="muted svelte-1m668wg">No project registered yet.</span>'),om=j('<span class="warn svelte-1m668wg">⚠ Path is not inside a git repository — quick-diff disabled.</span>'),lm=j('<span class="dirty svelte-1m668wg" title="Working tree has uncommitted changes">⚠ dirty</span>'),cm=j('<div class="git-line muted svelte-1m668wg"><span class="git-tag svelte-1m668wg">prev</span> <code class="svelte-1m668wg"> </code> <span class="subject svelte-1m668wg"> </span></div>'),um=j('<div class="git-line muted svelte-1m668wg"><span class="warn svelte-1m668wg">first commit — no previous to diff against.</span></div>'),dm=j('<div class="git-line svelte-1m668wg"><span class="git-tag svelte-1m668wg">git</span> <strong> </strong> <code class="svelte-1m668wg"> </code> <span class="subject svelte-1m668wg"> </span> <!></div> <!>',1),fm=j("<div><!></div>"),vm=j('<br/><span class="warn-inline svelte-1m668wg">⚠ working tree is dirty; uncommitted changes are not included.</span>',1),hm=j('Diff <code class="svelte-1m668wg"> </code> → <code class="svelte-1m668wg"> </code>. <!>',1),gm=j('<span class="filename svelte-1m668wg"> <span class="muted svelte-1m668wg"> </span></span>'),mm=j('<span class="filename svelte-1m668wg"> <span class="muted svelte-1m668wg"> </span></span>'),pm=j('<span class="filename svelte-1m668wg"> <span class="muted svelte-1m668wg"> </span></span>'),_m=j('<p class="error svelte-1m668wg"> </p>'),bm=j('<li class="svelte-1m668wg"><div class="recent-meta svelte-1m668wg"><code class="path svelte-1m668wg"> </code> <span class="lang-tag svelte-1m668wg"> </span> <span class="muted svelte-1m668wg"> </span></div> <div class="recent-actions svelte-1m668wg"><button class="svelte-1m668wg">Parse</button> <button class="svelte-1m668wg">Quick diff</button> <button class="ghost svelte-1m668wg" title="Remove from list">×</button></div></li>'),ym=j('<section class="recents svelte-1m668wg"><h2 class="svelte-1m668wg">Recent projects</h2> <ul class="svelte-1m668wg"></ul></section>'),wm=j(`<div class="home svelte-1m668wg"><div class="hero svelte-1m668wg"><h1 class="svelte-1m668wg">code-constraints</h1> <p class="tagline svelte-1m668wg">Parse a codebase, render UML diagrams, diff revisions. The GUI mirrors
3
+ the <code class="svelte-1m668wg">uml</code> CLI verbs.</p></div> <section class="picker svelte-1m668wg"><h2 class="svelte-1m668wg">Project</h2> <label class="row svelte-1m668wg"><span class="lbl svelte-1m668wg">Path</span> <input type="text" placeholder="C:/path/to/code or /path/to/code" autocomplete="off" class="svelte-1m668wg"/></label> <label class="row svelte-1m668wg"><span class="lbl svelte-1m668wg">Language</span> <select class="svelte-1m668wg"><option>Python</option><option>C#</option><option>TypeScript</option><option>Svelte 5</option></select></label> <!></section> <section class="commands svelte-1m668wg"><h2 class="svelte-1m668wg">Run</h2> <div class="cards svelte-1m668wg"><button class="card svelte-1m668wg"><div class="card-title svelte-1m668wg">Parse &amp; view</div> <code class="cli svelte-1m668wg"> </code> <div class="card-desc svelte-1m668wg">Parse the source tree into XMI and open the interactive viewer.</div> <div class="card-action svelte-1m668wg"> </div></button> <button class="card svelte-1m668wg"><div class="card-title svelte-1m668wg">Diff revisions</div> <code class="cli svelte-1m668wg"> </code> <div class="card-desc svelte-1m668wg">Compare any two git refs side-by-side with diff highlighting.</div> <div class="card-action svelte-1m668wg"> </div></button> <button class="card svelte-1m668wg" title="Open the editor to draw a new class diagram"><div class="card-title svelte-1m668wg">Create new diagram</div> <code class="cli svelte-1m668wg">— editor —</code> <div class="card-desc svelte-1m668wg">Open a blank canvas. Add classes, attributes, operations, and
4
+ inheritance / association relationships. Save the result as XMI.</div> <div class="card-action svelte-1m668wg">Open editor</div></button> <button class="card highlight svelte-1m668wg"><div class="card-title svelte-1m668wg">Quick diff vs previous commit</div> <code class="cli svelte-1m668wg"> </code> <div class="card-desc svelte-1m668wg"><!></div> <div class="card-action svelte-1m668wg"> </div></button></div></section> <section class="xmi-diff svelte-1m668wg"><h2 class="svelte-1m668wg">Diff source vs reference XMI</h2> <p class="hint svelte-1m668wg">Parse the path above and diff it against an older XMI snapshot from
5
+ your drive. Useful when the older version isn't in git. <span class="cli-hint svelte-1m668wg">CLI: <code class="svelte-1m668wg"> </code></span></p> <div class="xmi-pickers vs-xmi svelte-1m668wg"><label class="picker-box svelte-1m668wg"><span class="lbl svelte-1m668wg">Reference XMI (old)</span> <input type="file" accept=".xmi,application/xml" class="svelte-1m668wg"/> <!></label> <button class="xmi-run svelte-1m668wg"> </button></div></section> <section class="xmi-diff svelte-1m668wg"><h2 class="svelte-1m668wg">Compare two XMI files</h2> <p class="hint svelte-1m668wg">Skip parsing — pick two existing <code class="svelte-1m668wg">.xmi</code> files and produce an
6
+ annotated diff. Both must declare the same source language. <span class="cli-hint svelte-1m668wg">CLI: <code class="svelte-1m668wg">cdec diff-xmi old.xmi new.xmi --out diff.xmi</code></span></p> <div class="xmi-pickers svelte-1m668wg"><label class="picker-box svelte-1m668wg"><span class="lbl svelte-1m668wg">Old XMI</span> <input type="file" accept=".xmi,application/xml" class="svelte-1m668wg"/> <!></label> <label class="picker-box svelte-1m668wg"><span class="lbl svelte-1m668wg">New XMI</span> <input type="file" accept=".xmi,application/xml" class="svelte-1m668wg"/> <!></label> <button class="xmi-run svelte-1m668wg"> </button></div></section> <!> <!></div>`);function xm(e,t){he(t,!0);const n="code-constraints:recent-projects:v1";function r(){try{const oe=localStorage.getItem(n);return oe?JSON.parse(oe):[]}catch{return[]}}function i(oe){localStorage.setItem(n,JSON.stringify(oe.slice(0,8)))}function a(oe){const be=r(),dt={id:oe.id,path:oe.path,lang:oe.lang,lastUsed:Date.now()},pt=be.filter(ut=>ut.id!==oe.id);pt.unshift(dt),i(pt),_(m,pt,!0)}function o(oe){_(m,s(m).filter(be=>be.id!==oe),!0),i(s(m))}let l=J(""),c=J("python"),u=J(null),d=J(""),v=J(null),f=J(null),h=J(null),g=J(null),p=J(!1),m=J(me(r()));async function y(){if(_(d,""),_(g,null),!!s(l).trim()){_(p,!0);try{const oe=await Ie.registerProject(s(l).trim(),s(c));_(g,await Ie.gitInfo(oe.id),!0)}catch{_(g,null)}finally{_(p,!1)}}}let E=null;Ae(()=>{s(l),s(c),E&&clearTimeout(E),E=setTimeout(y,400)});async function N(){_(u,"parse"),_(d,"");try{const oe=await Ie.registerProject(s(l).trim(),s(c));a(oe);const be=await Ie.parse(oe.id);t.onLaunch({kind:"parse",project:oe,xmi:be})}catch(oe){_(d,oe.message,!0)}finally{_(u,null)}}async function I(){_(u,"diffcustom"),_(d,"");try{const oe=await Ie.registerProject(s(l).trim(),s(c));a(oe),t.onLaunch({kind:"diff_custom",project:oe})}catch(oe){_(d,oe.message,!0)}finally{_(u,null)}}async function C(){_(u,"quickdiff"),_(d,"");try{const oe=await Ie.registerProject(s(l).trim(),s(c));a(oe);const be=await Ie.quickDiff(oe.id);t.onLaunch({kind:"quick_diff",project:oe,xmi:be})}catch(oe){_(d,oe.message,!0)}finally{_(u,null)}}async function L(){if(!(!s(l).trim()||!s(h))){_(u,"vsxmi"),_(d,"");try{const oe=await Ie.diffSourceVsXmi(s(l).trim(),s(c),s(h)),be=await Ie.projectInfo(oe.project_id);if(!be)throw new Error(`backend lost the synthetic project ${oe.project_id}`);t.onLaunch({kind:"xmi_diff",project:be,xmi:oe})}catch(oe){_(d,oe.message,!0)}finally{_(u,null)}}}function q(oe){const be=oe.currentTarget;_(h,be.files&&be.files[0]?be.files[0]:null,!0)}async function T(){if(!(!s(v)||!s(f))){_(u,"xmidiff"),_(d,"");try{const oe=await Ie.diffXmiFiles(s(v),s(f)),be=await Ie.projectInfo(oe.project_id);if(!be)throw new Error(`backend lost the synthetic project ${oe.project_id}`);t.onLaunch({kind:"xmi_diff",project:be,xmi:oe})}catch(oe){_(d,oe.message,!0)}finally{_(u,null)}}}function D(oe){const be=oe.currentTarget;_(v,be.files&&be.files[0]?be.files[0]:null,!0)}function F(oe){const be=oe.currentTarget;_(f,be.files&&be.files[0]?be.files[0]:null,!0)}async function S(oe,be){return _(l,oe.path,!0),_(c,oe.lang,!0),be==="parse"?N():C()}const P=R(()=>!!s(g)&&s(g).is_git&&!!s(g).parent_sha),H=R(()=>!!s(g)&&s(g).is_git);function x(oe){const be=Math.max(1,Math.floor((Date.now()-oe)/1e3));return be<60?`${be}s ago`:be<3600?`${Math.floor(be/60)}m ago`:be<86400?`${Math.floor(be/3600)}h ago`:`${Math.floor(be/86400)}d ago`}var k=wm(),A=w(b(k),2),z=w(b(A),2),V=w(b(z),2),B=w(z,2),Y=w(b(B),2),K=b(Y);K.value=K.__value="python";var G=w(K);G.value=G.__value="csharp";var $=w(G);$.value=$.__value="typescript";var ee=w($);ee.value=ee.__value="svelte";var X=w(B,2);{var U=oe=>{var be=fm();let dt;var pt=b(be);{var ut=lt=>{var Et=am();O(lt,Et)},$t=lt=>{var Et=sm();O(lt,Et)},si=lt=>{var Et=om();O(lt,Et)},zr=lt=>{var Et=dm(),$a=le(Et),es=w(b($a),2),xo=b(es),ts=w(es,2),ns=b(ts),Zi=w(ts,2),ko=b(Zi),Eo=w(Zi,2);{var ih=Sn=>{var oi=lm();O(Sn,oi)};te(Eo,Sn=>{s(g).is_dirty&&Sn(ih)})}var ah=w($a,2);{var sh=Sn=>{var oi=cm(),Mc=w(b(oi),2),lh=b(Mc),ch=w(Mc,2),uh=b(ch);Q(()=>{W(lh,s(g).parent_short),W(uh,s(g).parent_subject)}),O(Sn,oi)},oh=Sn=>{var oi=um();O(Sn,oi)};te(ah,Sn=>{s(g).parent_short?Sn(sh):Sn(oh,-1)})}Q(()=>{W(xo,s(g).branch??"(detached)"),W(ns,s(g).head_short),W(ko,s(g).head_subject)}),O(lt,Et)};te(pt,lt=>{s(p)?lt(ut):s(g)===null?lt($t,1):s(g).is_git?lt(zr,-1):lt(si,2)})}Q(()=>{var lt;return dt=we(be,1,"git-status svelte-1m668wg",null,dt,{tracked:(lt=s(g))==null?void 0:lt.is_git,"not-tracked":s(g)&&!s(g).is_git})}),O(oe,be)},ae=R(()=>s(l).trim());te(X,oe=>{s(ae)&&oe(U)})}var se=w(A,2),ue=w(b(se),2),ve=b(ue),de=w(b(ve),2),Ee=b(de),_e=w(de,4),De=b(_e),Me=w(ve,2),We=w(b(Me),2),He=b(We),ke=w(We,4),je=b(ke),rt=w(Me,2),Le=w(rt,2),it=w(b(Le),2),ct=b(it),xe=w(it,2),Se=b(xe);{var ze=oe=>{var be=hm(),dt=w(le(be)),pt=b(dt),ut=w(dt,2),$t=b(ut),si=w(ut,2);{var zr=lt=>{var Et=vm();O(lt,Et)};te(si,lt=>{var Et;(Et=s(g))!=null&&Et.is_dirty&&lt(zr)})}Q(()=>{var lt,Et;W(pt,(lt=s(g))==null?void 0:lt.parent_short),W($t,(Et=s(g))==null?void 0:Et.head_short)}),O(oe,be)},$e=oe=>{var be=Qd("Path must be inside a git repo with at least two commits.");O(oe,be)};te(Se,oe=>{s(P)?oe(ze):oe($e,-1)})}var et=w(xe,2),ht=b(et),Ge=w(se,2),ot=w(b(Ge),2),Je=w(b(ot)),Fe=w(b(Je)),ye=b(Fe),Re=w(ot,2),at=b(Re),qe=w(b(at),2),xt=w(qe,2);{var Nt=oe=>{var be=gm(),dt=b(be),pt=w(dt),ut=b(pt);Q($t=>{ce(be,"title",s(h).name),W(dt,`${s(h).name??""} `),W(ut,`(${$t??""} kB)`)},[()=>Math.round(s(h).size/1024)]),O(oe,be)};te(xt,oe=>{s(h)&&oe(Nt)})}var gt=w(at,2),Lt=b(gt),Mr=w(Ge,2),Z=w(b(Mr),4),kt=b(Z),Xt=w(b(kt),2),It=w(Xt,2);{var Tr=oe=>{var be=mm(),dt=b(be),pt=w(dt),ut=b(pt);Q($t=>{ce(be,"title",s(v).name),W(dt,`${s(v).name??""} `),W(ut,`(${$t??""} kB)`)},[()=>Math.round(s(v).size/1024)]),O(oe,be)};te(It,oe=>{s(v)&&oe(Tr)})}var Bn=w(kt,2),lr=w(b(Bn),2),Jt=w(lr,2);{var cr=oe=>{var be=pm(),dt=b(be),pt=w(dt),ut=b(pt);Q($t=>{ce(be,"title",s(f).name),W(dt,`${s(f).name??""} `),W(ut,`(${$t??""} kB)`)},[()=>Math.round(s(f).size/1024)]),O(oe,be)};te(Jt,oe=>{s(f)&&oe(cr)})}var mt=w(Bn,2),En=b(mt),Ar=w(Mr,2);{var Gi=oe=>{var be=_m(),dt=b(be);Q(()=>W(dt,s(d))),O(oe,be)};te(Ar,oe=>{s(d)&&oe(Gi)})}var Qa=w(Ar,2);{var Ja=oe=>{var be=ym(),dt=w(b(be),2);Pe(dt,21,()=>s(m),pt=>pt.id,(pt,ut)=>{var $t=bm(),si=b($t),zr=b(si),lt=b(zr),Et=w(zr,2),$a=b(Et),es=w(Et,2),xo=b(es),ts=w(si,2),ns=b(ts),Zi=w(ns,2),ko=w(Zi,2);Q(Eo=>{ce(zr,"title",s(ut).path),W(lt,s(ut).path),W($a,s(ut).lang),W(xo,Eo)},[()=>x(s(ut).lastUsed)]),ne("click",ns,()=>S(s(ut),"parse")),ne("click",Zi,()=>S(s(ut),"quickdiff")),ne("click",ko,()=>o(s(ut).id)),O(pt,$t)}),O(oe,be)};te(Qa,oe=>{s(m).length>0&&oe(Ja)})}Q((oe,be,dt)=>{var pt,ut;ve.disabled=oe,W(Ee,`cdec parse ${(s(l)||"<path>")??""} --lang ${s(c)??""}`),W(De,s(u)==="parse"?"Parsing…":"Run"),Me.disabled=!s(H)||s(u)!==null,ce(Me,"title",s(H)?"":"Path must be inside a git repository"),W(He,`cdec diff <old> <new> --lang ${s(c)??""}`),W(je,s(u)==="diffcustom"?"Opening…":"Choose refs"),rt.disabled=s(u)!==null,Le.disabled=!s(P)||s(u)!==null,ce(Le,"title",s(P)?`Diff ${(pt=s(g))==null?void 0:pt.parent_short} → ${(ut=s(g))==null?void 0:ut.head_short}`:"Need a git repo with at least 2 commits"),W(ct,`cdec diff HEAD~1 HEAD --lang ${s(c)??""}`),W(ht,s(u)==="quickdiff"?"Diffing…":"Run"),W(ye,`cdec diff-vs-xmi reference.xmi ${(s(l)||"<path>")??""} --lang ${s(c)??""} --out diff.xmi`),gt.disabled=be,ce(gt,"title",dt),W(Lt,s(u)==="vsxmi"?"Diffing…":"Run diff vs XMI"),mt.disabled=!s(v)||!s(f)||s(u)!==null,W(En,s(u)==="xmidiff"?"Diffing…":"Run diff")},[()=>!s(l).trim()||s(u)!==null,()=>!s(l).trim()||!s(h)||s(u)!==null,()=>s(l).trim()?"":"Fill in the Path field above"]),Ye(V,()=>s(l),oe=>_(l,oe)),El(Y,()=>s(c),oe=>_(c,oe)),ne("click",ve,N),ne("click",Me,I),ne("click",rt,()=>t.onLaunch({kind:"editor"})),ne("click",Le,C),ne("change",qe,q),ne("click",gt,L),ne("change",Xt,D),ne("change",lr,F),ne("click",mt,T),O(e,k),ge()}Qe(["click","change"]);const km=.55,Em=.3;function Sm(e){return e>=km?"full":e>=Em?"mid":"far"}const ie=me({selectedClassId:null,selectedEdgeId:null,highlightedNodeIds:new Set,visibleClassIds:null,nodePositions:new Map,relayoutToken:0,currentEdges:[],revealStack:[],lodEnabled:!0,lodTier:"full",legendOpen:!0,pendingFocusQnames:null});function Wc(e){ie.pendingFocusQnames=e&&e.length>0?e:null}function st(e){ie.selectedClassId=e,ie.selectedEdgeId=null,ie.highlightedNodeIds=new Set}function Cl(e,t,n){ie.selectedClassId=null,ie.selectedEdgeId=e,ie.highlightedNodeIds=new Set([t,n])}function sf(){ie.selectedEdgeId=null,ie.highlightedNodeIds=new Set}function Un(e){return ie.visibleClassIds===null||ie.visibleClassIds.has(e)}function Dn(e){ie.visibleClassIds=new Set(e)}function Ln(){ie.visibleClassIds=null}function er(){ie.visibleClassIds=new Set}function Va(e,t){const n=ie.visibleClassIds;if(n===null){if(t)return;ie.visibleClassIds=new Set;return}const r=new Set(n);t?r.add(e):r.delete(e),ie.visibleClassIds=r}function Cm(e,t,n){const r=new Map;for(const o of n)r.has(o.source)||r.set(o.source,new Set),r.has(o.target)||r.set(o.target,new Set),r.get(o.source).add(o.target),r.get(o.target).add(o.source);const i=new Set([e]);let a=new Set([e]);for(let o=0;o<t;o++){const l=new Set;for(const c of a)for(const u of r.get(c)??[])i.has(u)||(i.add(u),l.add(u));if(l.size===0)break;a=l}ie.visibleClassIds=i}function Nm(e){ie.visibleClassIds=new Set([e]),ie.revealStack=[]}function Gc(e,t){const n=ie.visibleClassIds;if(n===null)return;const r=new Map;for(const o of t){const l=e==="down"?o.source:o.target,c=e==="down"?o.target:o.source;r.has(l)||r.set(l,new Set),r.get(l).add(c)}const i=[],a=new Set(n);for(const o of n)for(const l of r.get(o)??[])a.has(l)||(a.add(l),i.push(l));i.length!==0&&(ie.revealStack=[...ie.revealStack,i],ie.visibleClassIds=a)}function Do(){const e=ie.revealStack;if(e.length===0)return;const t=e[e.length-1],n=e.slice(0,-1),r=new Set;for(const a of n)for(const o of a)r.add(o);const i=ie.visibleClassIds;if(i!==null){const a=new Set(i);for(const o of t)r.has(o)||a.delete(o);ie.visibleClassIds=a}ie.revealStack=n}function Ha(e,t){const n=new Map(ie.nodePositions);n.set(e,t),ie.nodePositions=n}function ga(e){const t=new Map(ie.nodePositions);for(const[n,r]of e)t.set(n,r);ie.nodePositions=t}function gi(){ie.relayoutToken+=1}function Lo(){ie.lodEnabled=!ie.lodEnabled}function Im(e){ie.lodTier!==e&&(ie.lodTier=e)}function ci(){ie.legendOpen=!ie.legendOpen}function Pm(e,t){const n=[];for(const i of t)i.source===e?n.push({id:i.target,kind:i.kind,direction:"out"}):i.target===e&&n.push({id:i.source,kind:i.kind,direction:"in"});const r=new Set;return n.filter(i=>r.has(i.id)?!1:(r.add(i.id),!0))}const pe=me({project:lf(),mode:"view",dirty:!1,fileName:"diagram.xmi",baseline:null,compare:!1,codePanelOpen:!1});function Nl(e){pe.baseline=e,pe.compare=e!==null}function Ro(){pe.baseline!==null&&(pe.compare=!pe.compare)}function jo(){pe.codePanelOpen=!pe.codePanelOpen}function Om(e){pe.project=e,pe.dirty=!0}const Il={qnameById:new Map},Te=me({classOpen:!1,classInitial:null,classExisting:!1,classOriginalQname:null,assocOpen:!1,assocInitial:null,assocIndex:-1,assocExisting:!1,edgePickerOpen:!1,edgePickerSource:"",edgePickerTarget:"",edgePickerSourceLabel:"",edgePickerTargetLabel:""});function qo(e,t,n=null){Te.classInitial=e,Te.classExisting=t,Te.classOriginalQname=n,Te.classOpen=!0}function Vo(){Te.classOpen=!1,Te.classInitial=null}function of(e,t,n){Te.assocInitial=e,Te.assocIndex=t,Te.assocExisting=n,Te.assocOpen=!0}function Ho(){Te.assocOpen=!1,Te.assocInitial=null}function Mm(e,t,n,r){Te.edgePickerSource=e,Te.edgePickerTarget=t,Te.edgePickerSourceLabel=n,Te.edgePickerTargetLabel=r,Te.edgePickerOpen=!0}function ss(){Te.edgePickerOpen=!1}function lf(){return{source_language:"python",packages:[],activities:[],sequences:[],associations:[],root_path:""}}function cf(e="python"){pe.project=lf(),pe.project.source_language=e,pe.dirty=!1,pe.fileName="diagram.xmi"}function uf(e,t){pe.project=e,pe.dirty=!1,t&&(pe.fileName=t)}function As(e){pe.mode=e}function*Fa(e){yield*df(e.packages)}function*df(e){for(const t of e)yield*t.classes,yield*df(t.sub_packages)}function tr(e){for(const t of Fa(pe.project))if(t.qualified_name===e)return t;return null}function Tm(){return Array.from(Fa(pe.project)).map(e=>e.qualified_name)}function ff(e){e||(e="__root__");let t=pe.project.packages.find(r=>r.qualified_name===e);return t||(t={name:e==="__root__"?"__root__":e.split(".").pop()??e,qualified_name:e,classes:[],sub_packages:[],layout:null,description:null,status:"unchanged"},pe.project.packages.push(t),Hn(),t)}function vf(e){for(const t of pe.project.packages){const n=t.classes.findIndex(r=>r.qualified_name===e);if(n>=0){const[r]=t.classes.splice(n,1);return r}}return null}function Hn(){pe.dirty=!0}function Am(e){const t=(e.package??"").trim(),n=t?`${t}.${e.name}`:e.name;return{name:e.name,qualified_name:n,kind:e.kind??"class",attributes:[],operations:[],bases:e.bases??[],location:null,layout:null,description:null,status:"unchanged"}}function zm(e){const t=gf(e.qualified_name);return ff(t).classes.push(e),Hn(),e}function Dm(e,t){if(!vf(e))return;if(e!==t.qualified_name){for(const i of Fa(pe.project))i.bases=i.bases.map(a=>a===e?t.qualified_name:a);for(const i of pe.project.associations)i.source===e&&(i.source=t.qualified_name),i.target===e&&(i.target=t.qualified_name)}ff(gf(t.qualified_name)).classes.push(t),Hn()}function hf(e){vf(e);for(const t of Fa(pe.project))t.bases=t.bases.filter(n=>n!==e);pe.project.associations=pe.project.associations.filter(t=>t.source!==e&&t.target!==e),Hn()}function gf(e){const t=e.lastIndexOf(".");return t>=0?e.slice(0,t):""}function mf(){return{name:"field",type:"",visibility:"public",is_static:!1,is_readonly:!1,default:null,description:null,status:"unchanged"}}function pf(){return{name:"method",parameters:[],return_type:"",visibility:"public",is_static:!1,is_abstract:!1,description:null,status:"unchanged"}}function Lm(e,t){const n=tr(e);n&&(n.attributes=t,Hn())}function Rm(e,t){const n=tr(e);n&&(n.operations=t,Hn())}function jm(e,t){const n=tr(e);n&&(n.bases=t,Hn())}function qm(e,t){return{source:e,target:t,name:null,source_multiplicity:null,target_multiplicity:null,source_role:null,target_role:null,status:"unchanged"}}function Vm(e){pe.project.associations.push(e),Hn()}function Hm(e,t){e<0||e>=pe.project.associations.length||(pe.project.associations[e]=t,Hn())}function Fm(e){pe.project.associations.splice(e,1),Hn()}var Bm={value:()=>{}};function uo(){for(var e=0,t=arguments.length,n={},r;e<t;++e){if(!(r=arguments[e]+"")||r in n||/[\s.]/.test(r))throw new Error("illegal type: "+r);n[r]=[]}return new xs(n)}function xs(e){this._=e}function Km(e,t){return e.trim().split(/^|\s+/).map(function(n){var r="",i=n.indexOf(".");if(i>=0&&(r=n.slice(i+1),n=n.slice(0,i)),n&&!t.hasOwnProperty(n))throw new Error("unknown type: "+n);return{type:n,name:r}})}xs.prototype=uo.prototype={constructor:xs,on:function(e,t){var n=this._,r=Km(e+"",n),i,a=-1,o=r.length;if(arguments.length<2){for(;++a<o;)if((i=(e=r[a]).type)&&(i=Ym(n[i],e.name)))return i;return}if(t!=null&&typeof t!="function")throw new Error("invalid callback: "+t);for(;++a<o;)if(i=(e=r[a]).type)n[i]=Zc(n[i],e.name,t);else if(t==null)for(i in n)n[i]=Zc(n[i],e.name,null);return this},copy:function(){var e={},t=this._;for(var n in t)e[n]=t[n].slice();return new xs(e)},call:function(e,t){if((i=arguments.length-2)>0)for(var n=new Array(i),r=0,i,a;r<i;++r)n[r]=arguments[r+2];if(!this._.hasOwnProperty(e))throw new Error("unknown type: "+e);for(a=this._[e],r=0,i=a.length;r<i;++r)a[r].value.apply(t,n)},apply:function(e,t,n){if(!this._.hasOwnProperty(e))throw new Error("unknown type: "+e);for(var r=this._[e],i=0,a=r.length;i<a;++i)r[i].value.apply(t,n)}};function Ym(e,t){for(var n=0,r=e.length,i;n<r;++n)if((i=e[n]).name===t)return i.value}function Zc(e,t,n){for(var r=0,i=e.length;r<i;++r)if(e[r].name===t){e[r]=Bm,e=e.slice(0,r).concat(e.slice(r+1));break}return n!=null&&e.push({name:t,value:n}),e}var Pl="http://www.w3.org/1999/xhtml";const Uc={svg:"http://www.w3.org/2000/svg",xhtml:Pl,xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/"};function fo(e){var t=e+="",n=t.indexOf(":");return n>=0&&(t=e.slice(0,n))!=="xmlns"&&(e=e.slice(n+1)),Uc.hasOwnProperty(t)?{space:Uc[t],local:e}:e}function Xm(e){return function(){var t=this.ownerDocument,n=this.namespaceURI;return n===Pl&&t.documentElement.namespaceURI===Pl?t.createElement(e):t.createElementNS(n,e)}}function Wm(e){return function(){return this.ownerDocument.createElementNS(e.space,e.local)}}function _f(e){var t=fo(e);return(t.local?Wm:Xm)(t)}function Gm(){}function oc(e){return e==null?Gm:function(){return this.querySelector(e)}}function Zm(e){typeof e!="function"&&(e=oc(e));for(var t=this._groups,n=t.length,r=new Array(n),i=0;i<n;++i)for(var a=t[i],o=a.length,l=r[i]=new Array(o),c,u,d=0;d<o;++d)(c=a[d])&&(u=e.call(c,c.__data__,d,a))&&("__data__"in c&&(u.__data__=c.__data__),l[d]=u);return new Qt(r,this._parents)}function Um(e){return e==null?[]:Array.isArray(e)?e:Array.from(e)}function Qm(){return[]}function bf(e){return e==null?Qm:function(){return this.querySelectorAll(e)}}function Jm(e){return function(){return Um(e.apply(this,arguments))}}function $m(e){typeof e=="function"?e=Jm(e):e=bf(e);for(var t=this._groups,n=t.length,r=[],i=[],a=0;a<n;++a)for(var o=t[a],l=o.length,c,u=0;u<l;++u)(c=o[u])&&(r.push(e.call(c,c.__data__,u,o)),i.push(c));return new Qt(r,i)}function yf(e){return function(){return this.matches(e)}}function wf(e){return function(t){return t.matches(e)}}var ep=Array.prototype.find;function tp(e){return function(){return ep.call(this.children,e)}}function np(){return this.firstElementChild}function rp(e){return this.select(e==null?np:tp(typeof e=="function"?e:wf(e)))}var ip=Array.prototype.filter;function ap(){return Array.from(this.children)}function sp(e){return function(){return ip.call(this.children,e)}}function op(e){return this.selectAll(e==null?ap:sp(typeof e=="function"?e:wf(e)))}function lp(e){typeof e!="function"&&(e=yf(e));for(var t=this._groups,n=t.length,r=new Array(n),i=0;i<n;++i)for(var a=t[i],o=a.length,l=r[i]=[],c,u=0;u<o;++u)(c=a[u])&&e.call(c,c.__data__,u,a)&&l.push(c);return new Qt(r,this._parents)}function xf(e){return new Array(e.length)}function cp(){return new Qt(this._enter||this._groups.map(xf),this._parents)}function zs(e,t){this.ownerDocument=e.ownerDocument,this.namespaceURI=e.namespaceURI,this._next=null,this._parent=e,this.__data__=t}zs.prototype={constructor:zs,appendChild:function(e){return this._parent.insertBefore(e,this._next)},insertBefore:function(e,t){return this._parent.insertBefore(e,t)},querySelector:function(e){return this._parent.querySelector(e)},querySelectorAll:function(e){return this._parent.querySelectorAll(e)}};function up(e){return function(){return e}}function dp(e,t,n,r,i,a){for(var o=0,l,c=t.length,u=a.length;o<u;++o)(l=t[o])?(l.__data__=a[o],r[o]=l):n[o]=new zs(e,a[o]);for(;o<c;++o)(l=t[o])&&(i[o]=l)}function fp(e,t,n,r,i,a,o){var l,c,u=new Map,d=t.length,v=a.length,f=new Array(d),h;for(l=0;l<d;++l)(c=t[l])&&(f[l]=h=o.call(c,c.__data__,l,t)+"",u.has(h)?i[l]=c:u.set(h,c));for(l=0;l<v;++l)h=o.call(e,a[l],l,a)+"",(c=u.get(h))?(r[l]=c,c.__data__=a[l],u.delete(h)):n[l]=new zs(e,a[l]);for(l=0;l<d;++l)(c=t[l])&&u.get(f[l])===c&&(i[l]=c)}function vp(e){return e.__data__}function hp(e,t){if(!arguments.length)return Array.from(this,vp);var n=t?fp:dp,r=this._parents,i=this._groups;typeof e!="function"&&(e=up(e));for(var a=i.length,o=new Array(a),l=new Array(a),c=new Array(a),u=0;u<a;++u){var d=r[u],v=i[u],f=v.length,h=gp(e.call(d,d&&d.__data__,u,r)),g=h.length,p=l[u]=new Array(g),m=o[u]=new Array(g),y=c[u]=new Array(f);n(d,v,p,m,y,h,t);for(var E=0,N=0,I,C;E<g;++E)if(I=p[E]){for(E>=N&&(N=E+1);!(C=m[N])&&++N<g;);I._next=C||null}}return o=new Qt(o,r),o._enter=l,o._exit=c,o}function gp(e){return typeof e=="object"&&"length"in e?e:Array.from(e)}function mp(){return new Qt(this._exit||this._groups.map(xf),this._parents)}function pp(e,t,n){var r=this.enter(),i=this,a=this.exit();return typeof e=="function"?(r=e(r),r&&(r=r.selection())):r=r.append(e+""),t!=null&&(i=t(i),i&&(i=i.selection())),n==null?a.remove():n(a),r&&i?r.merge(i).order():i}function _p(e){for(var t=e.selection?e.selection():e,n=this._groups,r=t._groups,i=n.length,a=r.length,o=Math.min(i,a),l=new Array(i),c=0;c<o;++c)for(var u=n[c],d=r[c],v=u.length,f=l[c]=new Array(v),h,g=0;g<v;++g)(h=u[g]||d[g])&&(f[g]=h);for(;c<i;++c)l[c]=n[c];return new Qt(l,this._parents)}function bp(){for(var e=this._groups,t=-1,n=e.length;++t<n;)for(var r=e[t],i=r.length-1,a=r[i],o;--i>=0;)(o=r[i])&&(a&&o.compareDocumentPosition(a)^4&&a.parentNode.insertBefore(o,a),a=o);return this}function yp(e){e||(e=wp);function t(v,f){return v&&f?e(v.__data__,f.__data__):!v-!f}for(var n=this._groups,r=n.length,i=new Array(r),a=0;a<r;++a){for(var o=n[a],l=o.length,c=i[a]=new Array(l),u,d=0;d<l;++d)(u=o[d])&&(c[d]=u);c.sort(t)}return new Qt(i,this._parents).order()}function wp(e,t){return e<t?-1:e>t?1:e>=t?0:NaN}function xp(){var e=arguments[0];return arguments[0]=this,e.apply(null,arguments),this}function kp(){return Array.from(this)}function Ep(){for(var e=this._groups,t=0,n=e.length;t<n;++t)for(var r=e[t],i=0,a=r.length;i<a;++i){var o=r[i];if(o)return o}return null}function Sp(){let e=0;for(const t of this)++e;return e}function Cp(){return!this.node()}function Np(e){for(var t=this._groups,n=0,r=t.length;n<r;++n)for(var i=t[n],a=0,o=i.length,l;a<o;++a)(l=i[a])&&e.call(l,l.__data__,a,i);return this}function Ip(e){return function(){this.removeAttribute(e)}}function Pp(e){return function(){this.removeAttributeNS(e.space,e.local)}}function Op(e,t){return function(){this.setAttribute(e,t)}}function Mp(e,t){return function(){this.setAttributeNS(e.space,e.local,t)}}function Tp(e,t){return function(){var n=t.apply(this,arguments);n==null?this.removeAttribute(e):this.setAttribute(e,n)}}function Ap(e,t){return function(){var n=t.apply(this,arguments);n==null?this.removeAttributeNS(e.space,e.local):this.setAttributeNS(e.space,e.local,n)}}function zp(e,t){var n=fo(e);if(arguments.length<2){var r=this.node();return n.local?r.getAttributeNS(n.space,n.local):r.getAttribute(n)}return this.each((t==null?n.local?Pp:Ip:typeof t=="function"?n.local?Ap:Tp:n.local?Mp:Op)(n,t))}function kf(e){return e.ownerDocument&&e.ownerDocument.defaultView||e.document&&e||e.defaultView}function Dp(e){return function(){this.style.removeProperty(e)}}function Lp(e,t,n){return function(){this.style.setProperty(e,t,n)}}function Rp(e,t,n){return function(){var r=t.apply(this,arguments);r==null?this.style.removeProperty(e):this.style.setProperty(e,r,n)}}function jp(e,t,n){return arguments.length>1?this.each((t==null?Dp:typeof t=="function"?Rp:Lp)(e,t,n??"")):Di(this.node(),e)}function Di(e,t){return e.style.getPropertyValue(t)||kf(e).getComputedStyle(e,null).getPropertyValue(t)}function qp(e){return function(){delete this[e]}}function Vp(e,t){return function(){this[e]=t}}function Hp(e,t){return function(){var n=t.apply(this,arguments);n==null?delete this[e]:this[e]=n}}function Fp(e,t){return arguments.length>1?this.each((t==null?qp:typeof t=="function"?Hp:Vp)(e,t)):this.node()[e]}function Ef(e){return e.trim().split(/^|\s+/)}function lc(e){return e.classList||new Sf(e)}function Sf(e){this._node=e,this._names=Ef(e.getAttribute("class")||"")}Sf.prototype={add:function(e){var t=this._names.indexOf(e);t<0&&(this._names.push(e),this._node.setAttribute("class",this._names.join(" ")))},remove:function(e){var t=this._names.indexOf(e);t>=0&&(this._names.splice(t,1),this._node.setAttribute("class",this._names.join(" ")))},contains:function(e){return this._names.indexOf(e)>=0}};function Cf(e,t){for(var n=lc(e),r=-1,i=t.length;++r<i;)n.add(t[r])}function Nf(e,t){for(var n=lc(e),r=-1,i=t.length;++r<i;)n.remove(t[r])}function Bp(e){return function(){Cf(this,e)}}function Kp(e){return function(){Nf(this,e)}}function Yp(e,t){return function(){(t.apply(this,arguments)?Cf:Nf)(this,e)}}function Xp(e,t){var n=Ef(e+"");if(arguments.length<2){for(var r=lc(this.node()),i=-1,a=n.length;++i<a;)if(!r.contains(n[i]))return!1;return!0}return this.each((typeof t=="function"?Yp:t?Bp:Kp)(n,t))}function Wp(){this.textContent=""}function Gp(e){return function(){this.textContent=e}}function Zp(e){return function(){var t=e.apply(this,arguments);this.textContent=t??""}}function Up(e){return arguments.length?this.each(e==null?Wp:(typeof e=="function"?Zp:Gp)(e)):this.node().textContent}function Qp(){this.innerHTML=""}function Jp(e){return function(){this.innerHTML=e}}function $p(e){return function(){var t=e.apply(this,arguments);this.innerHTML=t??""}}function e_(e){return arguments.length?this.each(e==null?Qp:(typeof e=="function"?$p:Jp)(e)):this.node().innerHTML}function t_(){this.nextSibling&&this.parentNode.appendChild(this)}function n_(){return this.each(t_)}function r_(){this.previousSibling&&this.parentNode.insertBefore(this,this.parentNode.firstChild)}function i_(){return this.each(r_)}function a_(e){var t=typeof e=="function"?e:_f(e);return this.select(function(){return this.appendChild(t.apply(this,arguments))})}function s_(){return null}function o_(e,t){var n=typeof e=="function"?e:_f(e),r=t==null?s_:typeof t=="function"?t:oc(t);return this.select(function(){return this.insertBefore(n.apply(this,arguments),r.apply(this,arguments)||null)})}function l_(){var e=this.parentNode;e&&e.removeChild(this)}function c_(){return this.each(l_)}function u_(){var e=this.cloneNode(!1),t=this.parentNode;return t?t.insertBefore(e,this.nextSibling):e}function d_(){var e=this.cloneNode(!0),t=this.parentNode;return t?t.insertBefore(e,this.nextSibling):e}function f_(e){return this.select(e?d_:u_)}function v_(e){return arguments.length?this.property("__data__",e):this.node().__data__}function h_(e){return function(t){e.call(this,t,this.__data__)}}function g_(e){return e.trim().split(/^|\s+/).map(function(t){var n="",r=t.indexOf(".");return r>=0&&(n=t.slice(r+1),t=t.slice(0,r)),{type:t,name:n}})}function m_(e){return function(){var t=this.__on;if(t){for(var n=0,r=-1,i=t.length,a;n<i;++n)a=t[n],(!e.type||a.type===e.type)&&a.name===e.name?this.removeEventListener(a.type,a.listener,a.options):t[++r]=a;++r?t.length=r:delete this.__on}}}function p_(e,t,n){return function(){var r=this.__on,i,a=h_(t);if(r){for(var o=0,l=r.length;o<l;++o)if((i=r[o]).type===e.type&&i.name===e.name){this.removeEventListener(i.type,i.listener,i.options),this.addEventListener(i.type,i.listener=a,i.options=n),i.value=t;return}}this.addEventListener(e.type,a,n),i={type:e.type,name:e.name,value:t,listener:a,options:n},r?r.push(i):this.__on=[i]}}function __(e,t,n){var r=g_(e+""),i,a=r.length,o;if(arguments.length<2){var l=this.node().__on;if(l){for(var c=0,u=l.length,d;c<u;++c)for(i=0,d=l[c];i<a;++i)if((o=r[i]).type===d.type&&o.name===d.name)return d.value}return}for(l=t?p_:m_,i=0;i<a;++i)this.each(l(r[i],t,n));return this}function If(e,t,n){var r=kf(e),i=r.CustomEvent;typeof i=="function"?i=new i(t,n):(i=r.document.createEvent("Event"),n?(i.initEvent(t,n.bubbles,n.cancelable),i.detail=n.detail):i.initEvent(t,!1,!1)),e.dispatchEvent(i)}function b_(e,t){return function(){return If(this,e,t)}}function y_(e,t){return function(){return If(this,e,t.apply(this,arguments))}}function w_(e,t){return this.each((typeof t=="function"?y_:b_)(e,t))}function*x_(){for(var e=this._groups,t=0,n=e.length;t<n;++t)for(var r=e[t],i=0,a=r.length,o;i<a;++i)(o=r[i])&&(yield o)}var Pf=[null];function Qt(e,t){this._groups=e,this._parents=t}function Ba(){return new Qt([[document.documentElement]],Pf)}function k_(){return this}Qt.prototype=Ba.prototype={constructor:Qt,select:Zm,selectAll:$m,selectChild:rp,selectChildren:op,filter:lp,data:hp,enter:cp,exit:mp,join:pp,merge:_p,selection:k_,order:bp,sort:yp,call:xp,nodes:kp,node:Ep,size:Sp,empty:Cp,each:Np,attr:zp,style:jp,property:Fp,classed:Xp,text:Up,html:e_,raise:n_,lower:i_,append:a_,insert:o_,remove:c_,clone:f_,datum:v_,on:__,dispatch:w_,[Symbol.iterator]:x_};function an(e){return typeof e=="string"?new Qt([[document.querySelector(e)]],[document.documentElement]):new Qt([[e]],Pf)}function E_(e){let t;for(;t=e.sourceEvent;)e=t;return e}function gn(e,t){if(e=E_(e),t===void 0&&(t=e.currentTarget),t){var n=t.ownerSVGElement||t;if(n.createSVGPoint){var r=n.createSVGPoint();return r.x=e.clientX,r.y=e.clientY,r=r.matrixTransform(t.getScreenCTM().inverse()),[r.x,r.y]}if(t.getBoundingClientRect){var i=t.getBoundingClientRect();return[e.clientX-i.left-t.clientLeft,e.clientY-i.top-t.clientTop]}}return[e.pageX,e.pageY]}const S_={passive:!1},ma={capture:!0,passive:!1};function Fo(e){e.stopImmediatePropagation()}function mi(e){e.preventDefault(),e.stopImmediatePropagation()}function Of(e){var t=e.document.documentElement,n=an(e).on("dragstart.drag",mi,ma);"onselectstart"in t?n.on("selectstart.drag",mi,ma):(t.__noselect=t.style.MozUserSelect,t.style.MozUserSelect="none")}function Mf(e,t){var n=e.document.documentElement,r=an(e).on("dragstart.drag",null);t&&(r.on("click.drag",mi,ma),setTimeout(function(){r.on("click.drag",null)},0)),"onselectstart"in n?r.on("selectstart.drag",null):(n.style.MozUserSelect=n.__noselect,delete n.__noselect)}const os=e=>()=>e;function Ol(e,{sourceEvent:t,subject:n,target:r,identifier:i,active:a,x:o,y:l,dx:c,dy:u,dispatch:d}){Object.defineProperties(this,{type:{value:e,enumerable:!0,configurable:!0},sourceEvent:{value:t,enumerable:!0,configurable:!0},subject:{value:n,enumerable:!0,configurable:!0},target:{value:r,enumerable:!0,configurable:!0},identifier:{value:i,enumerable:!0,configurable:!0},active:{value:a,enumerable:!0,configurable:!0},x:{value:o,enumerable:!0,configurable:!0},y:{value:l,enumerable:!0,configurable:!0},dx:{value:c,enumerable:!0,configurable:!0},dy:{value:u,enumerable:!0,configurable:!0},_:{value:d}})}Ol.prototype.on=function(){var e=this._.on.apply(this._,arguments);return e===this._?this:e};function C_(e){return!e.ctrlKey&&!e.button}function N_(){return this.parentNode}function I_(e,t){return t??{x:e.x,y:e.y}}function P_(){return navigator.maxTouchPoints||"ontouchstart"in this}function O_(){var e=C_,t=N_,n=I_,r=P_,i={},a=uo("start","drag","end"),o=0,l,c,u,d,v=0;function f(I){I.on("mousedown.drag",h).filter(r).on("touchstart.drag",m).on("touchmove.drag",y,S_).on("touchend.drag touchcancel.drag",E).style("touch-action","none").style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}function h(I,C){if(!(d||!e.call(this,I,C))){var L=N(this,t.call(this,I,C),I,C,"mouse");L&&(an(I.view).on("mousemove.drag",g,ma).on("mouseup.drag",p,ma),Of(I.view),Fo(I),u=!1,l=I.clientX,c=I.clientY,L("start",I))}}function g(I){if(mi(I),!u){var C=I.clientX-l,L=I.clientY-c;u=C*C+L*L>v}i.mouse("drag",I)}function p(I){an(I.view).on("mousemove.drag mouseup.drag",null),Mf(I.view,u),mi(I),i.mouse("end",I)}function m(I,C){if(e.call(this,I,C)){var L=I.changedTouches,q=t.call(this,I,C),T=L.length,D,F;for(D=0;D<T;++D)(F=N(this,q,I,C,L[D].identifier,L[D]))&&(Fo(I),F("start",I,L[D]))}}function y(I){var C=I.changedTouches,L=C.length,q,T;for(q=0;q<L;++q)(T=i[C[q].identifier])&&(mi(I),T("drag",I,C[q]))}function E(I){var C=I.changedTouches,L=C.length,q,T;for(d&&clearTimeout(d),d=setTimeout(function(){d=null},500),q=0;q<L;++q)(T=i[C[q].identifier])&&(Fo(I),T("end",I,C[q]))}function N(I,C,L,q,T,D){var F=a.copy(),S=gn(D||L,C),P,H,x;if((x=n.call(I,new Ol("beforestart",{sourceEvent:L,target:f,identifier:T,active:o,x:S[0],y:S[1],dx:0,dy:0,dispatch:F}),q))!=null)return P=x.x-S[0]||0,H=x.y-S[1]||0,function k(A,z,V){var B=S,Y;switch(A){case"start":i[T]=k,Y=o++;break;case"end":delete i[T],--o;case"drag":S=gn(V||z,C),Y=o;break}F.call(A,I,new Ol(A,{sourceEvent:z,subject:x,target:f,identifier:T,active:Y,x:S[0]+P,y:S[1]+H,dx:S[0]-B[0],dy:S[1]-B[1],dispatch:F}),q)}}return f.filter=function(I){return arguments.length?(e=typeof I=="function"?I:os(!!I),f):e},f.container=function(I){return arguments.length?(t=typeof I=="function"?I:os(I),f):t},f.subject=function(I){return arguments.length?(n=typeof I=="function"?I:os(I),f):n},f.touchable=function(I){return arguments.length?(r=typeof I=="function"?I:os(!!I),f):r},f.on=function(){var I=a.on.apply(a,arguments);return I===a?f:I},f.clickDistance=function(I){return arguments.length?(v=(I=+I)*I,f):Math.sqrt(v)},f}function cc(e,t,n){e.prototype=t.prototype=n,n.constructor=e}function Tf(e,t){var n=Object.create(e.prototype);for(var r in t)n[r]=t[r];return n}function Ka(){}var pa=.7,Ds=1/pa,pi="\\s*([+-]?\\d+)\\s*",_a="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)\\s*",Rn="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)%\\s*",M_=/^#([0-9a-f]{3,8})$/,T_=new RegExp(`^rgb\\(${pi},${pi},${pi}\\)$`),A_=new RegExp(`^rgb\\(${Rn},${Rn},${Rn}\\)$`),z_=new RegExp(`^rgba\\(${pi},${pi},${pi},${_a}\\)$`),D_=new RegExp(`^rgba\\(${Rn},${Rn},${Rn},${_a}\\)$`),L_=new RegExp(`^hsl\\(${_a},${Rn},${Rn}\\)$`),R_=new RegExp(`^hsla\\(${_a},${Rn},${Rn},${_a}\\)$`),Qc={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074};cc(Ka,Jr,{copy(e){return Object.assign(new this.constructor,this,e)},displayable(){return this.rgb().displayable()},hex:Jc,formatHex:Jc,formatHex8:j_,formatHsl:q_,formatRgb:$c,toString:$c});function Jc(){return this.rgb().formatHex()}function j_(){return this.rgb().formatHex8()}function q_(){return Af(this).formatHsl()}function $c(){return this.rgb().formatRgb()}function Jr(e){var t,n;return e=(e+"").trim().toLowerCase(),(t=M_.exec(e))?(n=t[1].length,t=parseInt(t[1],16),n===6?eu(t):n===3?new Yt(t>>8&15|t>>4&240,t>>4&15|t&240,(t&15)<<4|t&15,1):n===8?ls(t>>24&255,t>>16&255,t>>8&255,(t&255)/255):n===4?ls(t>>12&15|t>>8&240,t>>8&15|t>>4&240,t>>4&15|t&240,((t&15)<<4|t&15)/255):null):(t=T_.exec(e))?new Yt(t[1],t[2],t[3],1):(t=A_.exec(e))?new Yt(t[1]*255/100,t[2]*255/100,t[3]*255/100,1):(t=z_.exec(e))?ls(t[1],t[2],t[3],t[4]):(t=D_.exec(e))?ls(t[1]*255/100,t[2]*255/100,t[3]*255/100,t[4]):(t=L_.exec(e))?ru(t[1],t[2]/100,t[3]/100,1):(t=R_.exec(e))?ru(t[1],t[2]/100,t[3]/100,t[4]):Qc.hasOwnProperty(e)?eu(Qc[e]):e==="transparent"?new Yt(NaN,NaN,NaN,0):null}function eu(e){return new Yt(e>>16&255,e>>8&255,e&255,1)}function ls(e,t,n,r){return r<=0&&(e=t=n=NaN),new Yt(e,t,n,r)}function V_(e){return e instanceof Ka||(e=Jr(e)),e?(e=e.rgb(),new Yt(e.r,e.g,e.b,e.opacity)):new Yt}function Ml(e,t,n,r){return arguments.length===1?V_(e):new Yt(e,t,n,r??1)}function Yt(e,t,n,r){this.r=+e,this.g=+t,this.b=+n,this.opacity=+r}cc(Yt,Ml,Tf(Ka,{brighter(e){return e=e==null?Ds:Math.pow(Ds,e),new Yt(this.r*e,this.g*e,this.b*e,this.opacity)},darker(e){return e=e==null?pa:Math.pow(pa,e),new Yt(this.r*e,this.g*e,this.b*e,this.opacity)},rgb(){return this},clamp(){return new Yt(Zr(this.r),Zr(this.g),Zr(this.b),Ls(this.opacity))},displayable(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:tu,formatHex:tu,formatHex8:H_,formatRgb:nu,toString:nu}));function tu(){return`#${qr(this.r)}${qr(this.g)}${qr(this.b)}`}function H_(){return`#${qr(this.r)}${qr(this.g)}${qr(this.b)}${qr((isNaN(this.opacity)?1:this.opacity)*255)}`}function nu(){const e=Ls(this.opacity);return`${e===1?"rgb(":"rgba("}${Zr(this.r)}, ${Zr(this.g)}, ${Zr(this.b)}${e===1?")":`, ${e})`}`}function Ls(e){return isNaN(e)?1:Math.max(0,Math.min(1,e))}function Zr(e){return Math.max(0,Math.min(255,Math.round(e)||0))}function qr(e){return e=Zr(e),(e<16?"0":"")+e.toString(16)}function ru(e,t,n,r){return r<=0?e=t=n=NaN:n<=0||n>=1?e=t=NaN:t<=0&&(e=NaN),new mn(e,t,n,r)}function Af(e){if(e instanceof mn)return new mn(e.h,e.s,e.l,e.opacity);if(e instanceof Ka||(e=Jr(e)),!e)return new mn;if(e instanceof mn)return e;e=e.rgb();var t=e.r/255,n=e.g/255,r=e.b/255,i=Math.min(t,n,r),a=Math.max(t,n,r),o=NaN,l=a-i,c=(a+i)/2;return l?(t===a?o=(n-r)/l+(n<r)*6:n===a?o=(r-t)/l+2:o=(t-n)/l+4,l/=c<.5?a+i:2-a-i,o*=60):l=c>0&&c<1?0:o,new mn(o,l,c,e.opacity)}function F_(e,t,n,r){return arguments.length===1?Af(e):new mn(e,t,n,r??1)}function mn(e,t,n,r){this.h=+e,this.s=+t,this.l=+n,this.opacity=+r}cc(mn,F_,Tf(Ka,{brighter(e){return e=e==null?Ds:Math.pow(Ds,e),new mn(this.h,this.s,this.l*e,this.opacity)},darker(e){return e=e==null?pa:Math.pow(pa,e),new mn(this.h,this.s,this.l*e,this.opacity)},rgb(){var e=this.h%360+(this.h<0)*360,t=isNaN(e)||isNaN(this.s)?0:this.s,n=this.l,r=n+(n<.5?n:1-n)*t,i=2*n-r;return new Yt(Bo(e>=240?e-240:e+120,i,r),Bo(e,i,r),Bo(e<120?e+240:e-120,i,r),this.opacity)},clamp(){return new mn(iu(this.h),cs(this.s),cs(this.l),Ls(this.opacity))},displayable(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl(){const e=Ls(this.opacity);return`${e===1?"hsl(":"hsla("}${iu(this.h)}, ${cs(this.s)*100}%, ${cs(this.l)*100}%${e===1?")":`, ${e})`}`}}));function iu(e){return e=(e||0)%360,e<0?e+360:e}function cs(e){return Math.max(0,Math.min(1,e||0))}function Bo(e,t,n){return(e<60?t+(n-t)*e/60:e<180?n:e<240?t+(n-t)*(240-e)/60:t)*255}const uc=e=>()=>e;function B_(e,t){return function(n){return e+n*t}}function K_(e,t,n){return e=Math.pow(e,n),t=Math.pow(t,n)-e,n=1/n,function(r){return Math.pow(e+r*t,n)}}function Y_(e){return(e=+e)==1?zf:function(t,n){return n-t?K_(t,n,e):uc(isNaN(t)?n:t)}}function zf(e,t){var n=t-e;return n?B_(e,n):uc(isNaN(e)?t:e)}const Rs=(function e(t){var n=Y_(t);function r(i,a){var o=n((i=Ml(i)).r,(a=Ml(a)).r),l=n(i.g,a.g),c=n(i.b,a.b),u=zf(i.opacity,a.opacity);return function(d){return i.r=o(d),i.g=l(d),i.b=c(d),i.opacity=u(d),i+""}}return r.gamma=e,r})(1);function X_(e,t){t||(t=[]);var n=e?Math.min(t.length,e.length):0,r=t.slice(),i;return function(a){for(i=0;i<n;++i)r[i]=e[i]*(1-a)+t[i]*a;return r}}function W_(e){return ArrayBuffer.isView(e)&&!(e instanceof DataView)}function G_(e,t){var n=t?t.length:0,r=e?Math.min(n,e.length):0,i=new Array(r),a=new Array(n),o;for(o=0;o<r;++o)i[o]=da(e[o],t[o]);for(;o<n;++o)a[o]=t[o];return function(l){for(o=0;o<r;++o)a[o]=i[o](l);return a}}function Z_(e,t){var n=new Date;return e=+e,t=+t,function(r){return n.setTime(e*(1-r)+t*r),n}}function Pn(e,t){return e=+e,t=+t,function(n){return e*(1-n)+t*n}}function U_(e,t){var n={},r={},i;(e===null||typeof e!="object")&&(e={}),(t===null||typeof t!="object")&&(t={});for(i in t)i in e?n[i]=da(e[i],t[i]):r[i]=t[i];return function(a){for(i in n)r[i]=n[i](a);return r}}var Tl=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,Ko=new RegExp(Tl.source,"g");function Q_(e){return function(){return e}}function J_(e){return function(t){return e(t)+""}}function Df(e,t){var n=Tl.lastIndex=Ko.lastIndex=0,r,i,a,o=-1,l=[],c=[];for(e=e+"",t=t+"";(r=Tl.exec(e))&&(i=Ko.exec(t));)(a=i.index)>n&&(a=t.slice(n,a),l[o]?l[o]+=a:l[++o]=a),(r=r[0])===(i=i[0])?l[o]?l[o]+=i:l[++o]=i:(l[++o]=null,c.push({i:o,x:Pn(r,i)})),n=Ko.lastIndex;return n<t.length&&(a=t.slice(n),l[o]?l[o]+=a:l[++o]=a),l.length<2?c[0]?J_(c[0].x):Q_(t):(t=c.length,function(u){for(var d=0,v;d<t;++d)l[(v=c[d]).i]=v.x(u);return l.join("")})}function da(e,t){var n=typeof t,r;return t==null||n==="boolean"?uc(t):(n==="number"?Pn:n==="string"?(r=Jr(t))?(t=r,Rs):Df:t instanceof Jr?Rs:t instanceof Date?Z_:W_(t)?X_:Array.isArray(t)?G_:typeof t.valueOf!="function"&&typeof t.toString!="function"||isNaN(t)?U_:Pn)(e,t)}var au=180/Math.PI,Al={translateX:0,translateY:0,rotate:0,skewX:0,scaleX:1,scaleY:1};function Lf(e,t,n,r,i,a){var o,l,c;return(o=Math.sqrt(e*e+t*t))&&(e/=o,t/=o),(c=e*n+t*r)&&(n-=e*c,r-=t*c),(l=Math.sqrt(n*n+r*r))&&(n/=l,r/=l,c/=l),e*r<t*n&&(e=-e,t=-t,c=-c,o=-o),{translateX:i,translateY:a,rotate:Math.atan2(t,e)*au,skewX:Math.atan(c)*au,scaleX:o,scaleY:l}}var us;function $_(e){const t=new(typeof DOMMatrix=="function"?DOMMatrix:WebKitCSSMatrix)(e+"");return t.isIdentity?Al:Lf(t.a,t.b,t.c,t.d,t.e,t.f)}function eb(e){return e==null||(us||(us=document.createElementNS("http://www.w3.org/2000/svg","g")),us.setAttribute("transform",e),!(e=us.transform.baseVal.consolidate()))?Al:(e=e.matrix,Lf(e.a,e.b,e.c,e.d,e.e,e.f))}function Rf(e,t,n,r){function i(u){return u.length?u.pop()+" ":""}function a(u,d,v,f,h,g){if(u!==v||d!==f){var p=h.push("translate(",null,t,null,n);g.push({i:p-4,x:Pn(u,v)},{i:p-2,x:Pn(d,f)})}else(v||f)&&h.push("translate("+v+t+f+n)}function o(u,d,v,f){u!==d?(u-d>180?d+=360:d-u>180&&(u+=360),f.push({i:v.push(i(v)+"rotate(",null,r)-2,x:Pn(u,d)})):d&&v.push(i(v)+"rotate("+d+r)}function l(u,d,v,f){u!==d?f.push({i:v.push(i(v)+"skewX(",null,r)-2,x:Pn(u,d)}):d&&v.push(i(v)+"skewX("+d+r)}function c(u,d,v,f,h,g){if(u!==v||d!==f){var p=h.push(i(h)+"scale(",null,",",null,")");g.push({i:p-4,x:Pn(u,v)},{i:p-2,x:Pn(d,f)})}else(v!==1||f!==1)&&h.push(i(h)+"scale("+v+","+f+")")}return function(u,d){var v=[],f=[];return u=e(u),d=e(d),a(u.translateX,u.translateY,d.translateX,d.translateY,v,f),o(u.rotate,d.rotate,v,f),l(u.skewX,d.skewX,v,f),c(u.scaleX,u.scaleY,d.scaleX,d.scaleY,v,f),u=d=null,function(h){for(var g=-1,p=f.length,m;++g<p;)v[(m=f[g]).i]=m.x(h);return v.join("")}}}var tb=Rf($_,"px, ","px)","deg)"),nb=Rf(eb,", ",")",")"),rb=1e-12;function su(e){return((e=Math.exp(e))+1/e)/2}function ib(e){return((e=Math.exp(e))-1/e)/2}function ab(e){return((e=Math.exp(2*e))-1)/(e+1)}const ks=(function e(t,n,r){function i(a,o){var l=a[0],c=a[1],u=a[2],d=o[0],v=o[1],f=o[2],h=d-l,g=v-c,p=h*h+g*g,m,y;if(p<rb)y=Math.log(f/u)/t,m=function(q){return[l+q*h,c+q*g,u*Math.exp(t*q*y)]};else{var E=Math.sqrt(p),N=(f*f-u*u+r*p)/(2*u*n*E),I=(f*f-u*u-r*p)/(2*f*n*E),C=Math.log(Math.sqrt(N*N+1)-N),L=Math.log(Math.sqrt(I*I+1)-I);y=(L-C)/t,m=function(q){var T=q*y,D=su(C),F=u/(n*E)*(D*ab(t*T+C)-ib(C));return[l+F*h,c+F*g,u*D/su(t*T+C)]}}return m.duration=y*1e3*t/Math.SQRT2,m}return i.rho=function(a){var o=Math.max(.001,+a),l=o*o,c=l*l;return e(o,l,c)},i})(Math.SQRT2,2,4);var Li=0,ra=0,Ji=0,jf=1e3,js,ia,qs=0,$r=0,vo=0,ba=typeof performance=="object"&&performance.now?performance:Date,qf=typeof window=="object"&&window.requestAnimationFrame?window.requestAnimationFrame.bind(window):function(e){setTimeout(e,17)};function dc(){return $r||(qf(sb),$r=ba.now()+vo)}function sb(){$r=0}function Vs(){this._call=this._time=this._next=null}Vs.prototype=Vf.prototype={constructor:Vs,restart:function(e,t,n){if(typeof e!="function")throw new TypeError("callback is not a function");n=(n==null?dc():+n)+(t==null?0:+t),!this._next&&ia!==this&&(ia?ia._next=this:js=this,ia=this),this._call=e,this._time=n,zl()},stop:function(){this._call&&(this._call=null,this._time=1/0,zl())}};function Vf(e,t,n){var r=new Vs;return r.restart(e,t,n),r}function ob(){dc(),++Li;for(var e=js,t;e;)(t=$r-e._time)>=0&&e._call.call(void 0,t),e=e._next;--Li}function ou(){$r=(qs=ba.now())+vo,Li=ra=0;try{ob()}finally{Li=0,cb(),$r=0}}function lb(){var e=ba.now(),t=e-qs;t>jf&&(vo-=t,qs=e)}function cb(){for(var e,t=js,n,r=1/0;t;)t._call?(r>t._time&&(r=t._time),e=t,t=t._next):(n=t._next,t._next=null,t=e?e._next=n:js=n);ia=e,zl(r)}function zl(e){if(!Li){ra&&(ra=clearTimeout(ra));var t=e-$r;t>24?(e<1/0&&(ra=setTimeout(ou,e-ba.now()-vo)),Ji&&(Ji=clearInterval(Ji))):(Ji||(qs=ba.now(),Ji=setInterval(lb,jf)),Li=1,qf(ou))}}function lu(e,t,n){var r=new Vs;return t=t==null?0:+t,r.restart(i=>{r.stop(),e(i+t)},t,n),r}var ub=uo("start","end","cancel","interrupt"),db=[],Hf=0,cu=1,Dl=2,Es=3,uu=4,Ll=5,Ss=6;function ho(e,t,n,r,i,a){var o=e.__transition;if(!o)e.__transition={};else if(n in o)return;fb(e,n,{name:t,index:r,group:i,on:ub,tween:db,time:a.time,delay:a.delay,duration:a.duration,ease:a.ease,timer:null,state:Hf})}function fc(e,t){var n=kn(e,t);if(n.state>Hf)throw new Error("too late; already scheduled");return n}function Fn(e,t){var n=kn(e,t);if(n.state>Es)throw new Error("too late; already running");return n}function kn(e,t){var n=e.__transition;if(!n||!(n=n[t]))throw new Error("transition not found");return n}function fb(e,t,n){var r=e.__transition,i;r[t]=n,n.timer=Vf(a,0,n.time);function a(u){n.state=cu,n.timer.restart(o,n.delay,n.time),n.delay<=u&&o(u-n.delay)}function o(u){var d,v,f,h;if(n.state!==cu)return c();for(d in r)if(h=r[d],h.name===n.name){if(h.state===Es)return lu(o);h.state===uu?(h.state=Ss,h.timer.stop(),h.on.call("interrupt",e,e.__data__,h.index,h.group),delete r[d]):+d<t&&(h.state=Ss,h.timer.stop(),h.on.call("cancel",e,e.__data__,h.index,h.group),delete r[d])}if(lu(function(){n.state===Es&&(n.state=uu,n.timer.restart(l,n.delay,n.time),l(u))}),n.state=Dl,n.on.call("start",e,e.__data__,n.index,n.group),n.state===Dl){for(n.state=Es,i=new Array(f=n.tween.length),d=0,v=-1;d<f;++d)(h=n.tween[d].value.call(e,e.__data__,n.index,n.group))&&(i[++v]=h);i.length=v+1}}function l(u){for(var d=u<n.duration?n.ease.call(null,u/n.duration):(n.timer.restart(c),n.state=Ll,1),v=-1,f=i.length;++v<f;)i[v].call(e,d);n.state===Ll&&(n.on.call("end",e,e.__data__,n.index,n.group),c())}function c(){n.state=Ss,n.timer.stop(),delete r[t];for(var u in r)return;delete e.__transition}}function Cs(e,t){var n=e.__transition,r,i,a=!0,o;if(n){t=t==null?null:t+"";for(o in n){if((r=n[o]).name!==t){a=!1;continue}i=r.state>Dl&&r.state<Ll,r.state=Ss,r.timer.stop(),r.on.call(i?"interrupt":"cancel",e,e.__data__,r.index,r.group),delete n[o]}a&&delete e.__transition}}function vb(e){return this.each(function(){Cs(this,e)})}function hb(e,t){var n,r;return function(){var i=Fn(this,e),a=i.tween;if(a!==n){r=n=a;for(var o=0,l=r.length;o<l;++o)if(r[o].name===t){r=r.slice(),r.splice(o,1);break}}i.tween=r}}function gb(e,t,n){var r,i;if(typeof n!="function")throw new Error;return function(){var a=Fn(this,e),o=a.tween;if(o!==r){i=(r=o).slice();for(var l={name:t,value:n},c=0,u=i.length;c<u;++c)if(i[c].name===t){i[c]=l;break}c===u&&i.push(l)}a.tween=i}}function mb(e,t){var n=this._id;if(e+="",arguments.length<2){for(var r=kn(this.node(),n).tween,i=0,a=r.length,o;i<a;++i)if((o=r[i]).name===e)return o.value;return null}return this.each((t==null?hb:gb)(n,e,t))}function vc(e,t,n){var r=e._id;return e.each(function(){var i=Fn(this,r);(i.value||(i.value={}))[t]=n.apply(this,arguments)}),function(i){return kn(i,r).value[t]}}function Ff(e,t){var n;return(typeof t=="number"?Pn:t instanceof Jr?Rs:(n=Jr(t))?(t=n,Rs):Df)(e,t)}function pb(e){return function(){this.removeAttribute(e)}}function _b(e){return function(){this.removeAttributeNS(e.space,e.local)}}function bb(e,t,n){var r,i=n+"",a;return function(){var o=this.getAttribute(e);return o===i?null:o===r?a:a=t(r=o,n)}}function yb(e,t,n){var r,i=n+"",a;return function(){var o=this.getAttributeNS(e.space,e.local);return o===i?null:o===r?a:a=t(r=o,n)}}function wb(e,t,n){var r,i,a;return function(){var o,l=n(this),c;return l==null?void this.removeAttribute(e):(o=this.getAttribute(e),c=l+"",o===c?null:o===r&&c===i?a:(i=c,a=t(r=o,l)))}}function xb(e,t,n){var r,i,a;return function(){var o,l=n(this),c;return l==null?void this.removeAttributeNS(e.space,e.local):(o=this.getAttributeNS(e.space,e.local),c=l+"",o===c?null:o===r&&c===i?a:(i=c,a=t(r=o,l)))}}function kb(e,t){var n=fo(e),r=n==="transform"?nb:Ff;return this.attrTween(e,typeof t=="function"?(n.local?xb:wb)(n,r,vc(this,"attr."+e,t)):t==null?(n.local?_b:pb)(n):(n.local?yb:bb)(n,r,t))}function Eb(e,t){return function(n){this.setAttribute(e,t.call(this,n))}}function Sb(e,t){return function(n){this.setAttributeNS(e.space,e.local,t.call(this,n))}}function Cb(e,t){var n,r;function i(){var a=t.apply(this,arguments);return a!==r&&(n=(r=a)&&Sb(e,a)),n}return i._value=t,i}function Nb(e,t){var n,r;function i(){var a=t.apply(this,arguments);return a!==r&&(n=(r=a)&&Eb(e,a)),n}return i._value=t,i}function Ib(e,t){var n="attr."+e;if(arguments.length<2)return(n=this.tween(n))&&n._value;if(t==null)return this.tween(n,null);if(typeof t!="function")throw new Error;var r=fo(e);return this.tween(n,(r.local?Cb:Nb)(r,t))}function Pb(e,t){return function(){fc(this,e).delay=+t.apply(this,arguments)}}function Ob(e,t){return t=+t,function(){fc(this,e).delay=t}}function Mb(e){var t=this._id;return arguments.length?this.each((typeof e=="function"?Pb:Ob)(t,e)):kn(this.node(),t).delay}function Tb(e,t){return function(){Fn(this,e).duration=+t.apply(this,arguments)}}function Ab(e,t){return t=+t,function(){Fn(this,e).duration=t}}function zb(e){var t=this._id;return arguments.length?this.each((typeof e=="function"?Tb:Ab)(t,e)):kn(this.node(),t).duration}function Db(e,t){if(typeof t!="function")throw new Error;return function(){Fn(this,e).ease=t}}function Lb(e){var t=this._id;return arguments.length?this.each(Db(t,e)):kn(this.node(),t).ease}function Rb(e,t){return function(){var n=t.apply(this,arguments);if(typeof n!="function")throw new Error;Fn(this,e).ease=n}}function jb(e){if(typeof e!="function")throw new Error;return this.each(Rb(this._id,e))}function qb(e){typeof e!="function"&&(e=yf(e));for(var t=this._groups,n=t.length,r=new Array(n),i=0;i<n;++i)for(var a=t[i],o=a.length,l=r[i]=[],c,u=0;u<o;++u)(c=a[u])&&e.call(c,c.__data__,u,a)&&l.push(c);return new ar(r,this._parents,this._name,this._id)}function Vb(e){if(e._id!==this._id)throw new Error;for(var t=this._groups,n=e._groups,r=t.length,i=n.length,a=Math.min(r,i),o=new Array(r),l=0;l<a;++l)for(var c=t[l],u=n[l],d=c.length,v=o[l]=new Array(d),f,h=0;h<d;++h)(f=c[h]||u[h])&&(v[h]=f);for(;l<r;++l)o[l]=t[l];return new ar(o,this._parents,this._name,this._id)}function Hb(e){return(e+"").trim().split(/^|\s+/).every(function(t){var n=t.indexOf(".");return n>=0&&(t=t.slice(0,n)),!t||t==="start"})}function Fb(e,t,n){var r,i,a=Hb(t)?fc:Fn;return function(){var o=a(this,e),l=o.on;l!==r&&(i=(r=l).copy()).on(t,n),o.on=i}}function Bb(e,t){var n=this._id;return arguments.length<2?kn(this.node(),n).on.on(e):this.each(Fb(n,e,t))}function Kb(e){return function(){var t=this.parentNode;for(var n in this.__transition)if(+n!==e)return;t&&t.removeChild(this)}}function Yb(){return this.on("end.remove",Kb(this._id))}function Xb(e){var t=this._name,n=this._id;typeof e!="function"&&(e=oc(e));for(var r=this._groups,i=r.length,a=new Array(i),o=0;o<i;++o)for(var l=r[o],c=l.length,u=a[o]=new Array(c),d,v,f=0;f<c;++f)(d=l[f])&&(v=e.call(d,d.__data__,f,l))&&("__data__"in d&&(v.__data__=d.__data__),u[f]=v,ho(u[f],t,n,f,u,kn(d,n)));return new ar(a,this._parents,t,n)}function Wb(e){var t=this._name,n=this._id;typeof e!="function"&&(e=bf(e));for(var r=this._groups,i=r.length,a=[],o=[],l=0;l<i;++l)for(var c=r[l],u=c.length,d,v=0;v<u;++v)if(d=c[v]){for(var f=e.call(d,d.__data__,v,c),h,g=kn(d,n),p=0,m=f.length;p<m;++p)(h=f[p])&&ho(h,t,n,p,f,g);a.push(f),o.push(d)}return new ar(a,o,t,n)}var Gb=Ba.prototype.constructor;function Zb(){return new Gb(this._groups,this._parents)}function Ub(e,t){var n,r,i;return function(){var a=Di(this,e),o=(this.style.removeProperty(e),Di(this,e));return a===o?null:a===n&&o===r?i:i=t(n=a,r=o)}}function Bf(e){return function(){this.style.removeProperty(e)}}function Qb(e,t,n){var r,i=n+"",a;return function(){var o=Di(this,e);return o===i?null:o===r?a:a=t(r=o,n)}}function Jb(e,t,n){var r,i,a;return function(){var o=Di(this,e),l=n(this),c=l+"";return l==null&&(c=l=(this.style.removeProperty(e),Di(this,e))),o===c?null:o===r&&c===i?a:(i=c,a=t(r=o,l))}}function $b(e,t){var n,r,i,a="style."+t,o="end."+a,l;return function(){var c=Fn(this,e),u=c.on,d=c.value[a]==null?l||(l=Bf(t)):void 0;(u!==n||i!==d)&&(r=(n=u).copy()).on(o,i=d),c.on=r}}function ey(e,t,n){var r=(e+="")=="transform"?tb:Ff;return t==null?this.styleTween(e,Ub(e,r)).on("end.style."+e,Bf(e)):typeof t=="function"?this.styleTween(e,Jb(e,r,vc(this,"style."+e,t))).each($b(this._id,e)):this.styleTween(e,Qb(e,r,t),n).on("end.style."+e,null)}function ty(e,t,n){return function(r){this.style.setProperty(e,t.call(this,r),n)}}function ny(e,t,n){var r,i;function a(){var o=t.apply(this,arguments);return o!==i&&(r=(i=o)&&ty(e,o,n)),r}return a._value=t,a}function ry(e,t,n){var r="style."+(e+="");if(arguments.length<2)return(r=this.tween(r))&&r._value;if(t==null)return this.tween(r,null);if(typeof t!="function")throw new Error;return this.tween(r,ny(e,t,n??""))}function iy(e){return function(){this.textContent=e}}function ay(e){return function(){var t=e(this);this.textContent=t??""}}function sy(e){return this.tween("text",typeof e=="function"?ay(vc(this,"text",e)):iy(e==null?"":e+""))}function oy(e){return function(t){this.textContent=e.call(this,t)}}function ly(e){var t,n;function r(){var i=e.apply(this,arguments);return i!==n&&(t=(n=i)&&oy(i)),t}return r._value=e,r}function cy(e){var t="text";if(arguments.length<1)return(t=this.tween(t))&&t._value;if(e==null)return this.tween(t,null);if(typeof e!="function")throw new Error;return this.tween(t,ly(e))}function uy(){for(var e=this._name,t=this._id,n=Kf(),r=this._groups,i=r.length,a=0;a<i;++a)for(var o=r[a],l=o.length,c,u=0;u<l;++u)if(c=o[u]){var d=kn(c,t);ho(c,e,n,u,o,{time:d.time+d.delay+d.duration,delay:0,duration:d.duration,ease:d.ease})}return new ar(r,this._parents,e,n)}function dy(){var e,t,n=this,r=n._id,i=n.size();return new Promise(function(a,o){var l={value:o},c={value:function(){--i===0&&a()}};n.each(function(){var u=Fn(this,r),d=u.on;d!==e&&(t=(e=d).copy(),t._.cancel.push(l),t._.interrupt.push(l),t._.end.push(c)),u.on=t}),i===0&&a()})}var fy=0;function ar(e,t,n,r){this._groups=e,this._parents=t,this._name=n,this._id=r}function Kf(){return++fy}var Kn=Ba.prototype;ar.prototype={constructor:ar,select:Xb,selectAll:Wb,selectChild:Kn.selectChild,selectChildren:Kn.selectChildren,filter:qb,merge:Vb,selection:Zb,transition:uy,call:Kn.call,nodes:Kn.nodes,node:Kn.node,size:Kn.size,empty:Kn.empty,each:Kn.each,on:Bb,attr:kb,attrTween:Ib,style:ey,styleTween:ry,text:sy,textTween:cy,remove:Yb,tween:mb,delay:Mb,duration:zb,ease:Lb,easeVarying:jb,end:dy,[Symbol.iterator]:Kn[Symbol.iterator]};function vy(e){return((e*=2)<=1?e*e*e:(e-=2)*e*e+2)/2}var hy={time:null,delay:0,duration:250,ease:vy};function gy(e,t){for(var n;!(n=e.__transition)||!(n=n[t]);)if(!(e=e.parentNode))throw new Error(`transition ${t} not found`);return n}function my(e){var t,n;e instanceof ar?(t=e._id,e=e._name):(t=Kf(),(n=hy).time=dc(),e=e==null?null:e+"");for(var r=this._groups,i=r.length,a=0;a<i;++a)for(var o=r[a],l=o.length,c,u=0;u<l;++u)(c=o[u])&&ho(c,e,t,u,o,n||gy(c,t));return new ar(r,this._parents,e,t)}Ba.prototype.interrupt=vb;Ba.prototype.transition=my;const ds=e=>()=>e;function py(e,{sourceEvent:t,target:n,transform:r,dispatch:i}){Object.defineProperties(this,{type:{value:e,enumerable:!0,configurable:!0},sourceEvent:{value:t,enumerable:!0,configurable:!0},target:{value:n,enumerable:!0,configurable:!0},transform:{value:r,enumerable:!0,configurable:!0},_:{value:i}})}function Qn(e,t,n){this.k=e,this.x=t,this.y=n}Qn.prototype={constructor:Qn,scale:function(e){return e===1?this:new Qn(this.k*e,this.x,this.y)},translate:function(e,t){return e===0&t===0?this:new Qn(this.k,this.x+this.k*e,this.y+this.k*t)},apply:function(e){return[e[0]*this.k+this.x,e[1]*this.k+this.y]},applyX:function(e){return e*this.k+this.x},applyY:function(e){return e*this.k+this.y},invert:function(e){return[(e[0]-this.x)/this.k,(e[1]-this.y)/this.k]},invertX:function(e){return(e-this.x)/this.k},invertY:function(e){return(e-this.y)/this.k},rescaleX:function(e){return e.copy().domain(e.range().map(this.invertX,this).map(e.invert,e))},rescaleY:function(e){return e.copy().domain(e.range().map(this.invertY,this).map(e.invert,e))},toString:function(){return"translate("+this.x+","+this.y+") scale("+this.k+")"}};var go=new Qn(1,0,0);Yf.prototype=Qn.prototype;function Yf(e){for(;!e.__zoom;)if(!(e=e.parentNode))return go;return e.__zoom}function Yo(e){e.stopImmediatePropagation()}function $i(e){e.preventDefault(),e.stopImmediatePropagation()}function _y(e){return(!e.ctrlKey||e.type==="wheel")&&!e.button}function by(){var e=this;return e instanceof SVGElement?(e=e.ownerSVGElement||e,e.hasAttribute("viewBox")?(e=e.viewBox.baseVal,[[e.x,e.y],[e.x+e.width,e.y+e.height]]):[[0,0],[e.width.baseVal.value,e.height.baseVal.value]]):[[0,0],[e.clientWidth,e.clientHeight]]}function du(){return this.__zoom||go}function yy(e){return-e.deltaY*(e.deltaMode===1?.05:e.deltaMode?1:.002)*(e.ctrlKey?10:1)}function wy(){return navigator.maxTouchPoints||"ontouchstart"in this}function xy(e,t,n){var r=e.invertX(t[0][0])-n[0][0],i=e.invertX(t[1][0])-n[1][0],a=e.invertY(t[0][1])-n[0][1],o=e.invertY(t[1][1])-n[1][1];return e.translate(i>r?(r+i)/2:Math.min(0,r)||Math.max(0,i),o>a?(a+o)/2:Math.min(0,a)||Math.max(0,o))}function Xf(){var e=_y,t=by,n=xy,r=yy,i=wy,a=[0,1/0],o=[[-1/0,-1/0],[1/0,1/0]],l=250,c=ks,u=uo("start","zoom","end"),d,v,f,h=500,g=150,p=0,m=10;function y(x){x.property("__zoom",du).on("wheel.zoom",T,{passive:!1}).on("mousedown.zoom",D).on("dblclick.zoom",F).filter(i).on("touchstart.zoom",S).on("touchmove.zoom",P).on("touchend.zoom touchcancel.zoom",H).style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}y.transform=function(x,k,A,z){var V=x.selection?x.selection():x;V.property("__zoom",du),x!==V?C(x,k,A,z):V.interrupt().each(function(){L(this,arguments).event(z).start().zoom(null,typeof k=="function"?k.apply(this,arguments):k).end()})},y.scaleBy=function(x,k,A,z){y.scaleTo(x,function(){var V=this.__zoom.k,B=typeof k=="function"?k.apply(this,arguments):k;return V*B},A,z)},y.scaleTo=function(x,k,A,z){y.transform(x,function(){var V=t.apply(this,arguments),B=this.__zoom,Y=A==null?I(V):typeof A=="function"?A.apply(this,arguments):A,K=B.invert(Y),G=typeof k=="function"?k.apply(this,arguments):k;return n(N(E(B,G),Y,K),V,o)},A,z)},y.translateBy=function(x,k,A,z){y.transform(x,function(){return n(this.__zoom.translate(typeof k=="function"?k.apply(this,arguments):k,typeof A=="function"?A.apply(this,arguments):A),t.apply(this,arguments),o)},null,z)},y.translateTo=function(x,k,A,z,V){y.transform(x,function(){var B=t.apply(this,arguments),Y=this.__zoom,K=z==null?I(B):typeof z=="function"?z.apply(this,arguments):z;return n(go.translate(K[0],K[1]).scale(Y.k).translate(typeof k=="function"?-k.apply(this,arguments):-k,typeof A=="function"?-A.apply(this,arguments):-A),B,o)},z,V)};function E(x,k){return k=Math.max(a[0],Math.min(a[1],k)),k===x.k?x:new Qn(k,x.x,x.y)}function N(x,k,A){var z=k[0]-A[0]*x.k,V=k[1]-A[1]*x.k;return z===x.x&&V===x.y?x:new Qn(x.k,z,V)}function I(x){return[(+x[0][0]+ +x[1][0])/2,(+x[0][1]+ +x[1][1])/2]}function C(x,k,A,z){x.on("start.zoom",function(){L(this,arguments).event(z).start()}).on("interrupt.zoom end.zoom",function(){L(this,arguments).event(z).end()}).tween("zoom",function(){var V=this,B=arguments,Y=L(V,B).event(z),K=t.apply(V,B),G=A==null?I(K):typeof A=="function"?A.apply(V,B):A,$=Math.max(K[1][0]-K[0][0],K[1][1]-K[0][1]),ee=V.__zoom,X=typeof k=="function"?k.apply(V,B):k,U=c(ee.invert(G).concat($/ee.k),X.invert(G).concat($/X.k));return function(ae){if(ae===1)ae=X;else{var se=U(ae),ue=$/se[2];ae=new Qn(ue,G[0]-se[0]*ue,G[1]-se[1]*ue)}Y.zoom(null,ae)}})}function L(x,k,A){return!A&&x.__zooming||new q(x,k)}function q(x,k){this.that=x,this.args=k,this.active=0,this.sourceEvent=null,this.extent=t.apply(x,k),this.taps=0}q.prototype={event:function(x){return x&&(this.sourceEvent=x),this},start:function(){return++this.active===1&&(this.that.__zooming=this,this.emit("start")),this},zoom:function(x,k){return this.mouse&&x!=="mouse"&&(this.mouse[1]=k.invert(this.mouse[0])),this.touch0&&x!=="touch"&&(this.touch0[1]=k.invert(this.touch0[0])),this.touch1&&x!=="touch"&&(this.touch1[1]=k.invert(this.touch1[0])),this.that.__zoom=k,this.emit("zoom"),this},end:function(){return--this.active===0&&(delete this.that.__zooming,this.emit("end")),this},emit:function(x){var k=an(this.that).datum();u.call(x,this.that,new py(x,{sourceEvent:this.sourceEvent,target:y,transform:this.that.__zoom,dispatch:u}),k)}};function T(x,...k){if(!e.apply(this,arguments))return;var A=L(this,k).event(x),z=this.__zoom,V=Math.max(a[0],Math.min(a[1],z.k*Math.pow(2,r.apply(this,arguments)))),B=gn(x);if(A.wheel)(A.mouse[0][0]!==B[0]||A.mouse[0][1]!==B[1])&&(A.mouse[1]=z.invert(A.mouse[0]=B)),clearTimeout(A.wheel);else{if(z.k===V)return;A.mouse=[B,z.invert(B)],Cs(this),A.start()}$i(x),A.wheel=setTimeout(Y,g),A.zoom("mouse",n(N(E(z,V),A.mouse[0],A.mouse[1]),A.extent,o));function Y(){A.wheel=null,A.end()}}function D(x,...k){if(f||!e.apply(this,arguments))return;var A=x.currentTarget,z=L(this,k,!0).event(x),V=an(x.view).on("mousemove.zoom",G,!0).on("mouseup.zoom",$,!0),B=gn(x,A),Y=x.clientX,K=x.clientY;Of(x.view),Yo(x),z.mouse=[B,this.__zoom.invert(B)],Cs(this),z.start();function G(ee){if($i(ee),!z.moved){var X=ee.clientX-Y,U=ee.clientY-K;z.moved=X*X+U*U>p}z.event(ee).zoom("mouse",n(N(z.that.__zoom,z.mouse[0]=gn(ee,A),z.mouse[1]),z.extent,o))}function $(ee){V.on("mousemove.zoom mouseup.zoom",null),Mf(ee.view,z.moved),$i(ee),z.event(ee).end()}}function F(x,...k){if(e.apply(this,arguments)){var A=this.__zoom,z=gn(x.changedTouches?x.changedTouches[0]:x,this),V=A.invert(z),B=A.k*(x.shiftKey?.5:2),Y=n(N(E(A,B),z,V),t.apply(this,k),o);$i(x),l>0?an(this).transition().duration(l).call(C,Y,z,x):an(this).call(y.transform,Y,z,x)}}function S(x,...k){if(e.apply(this,arguments)){var A=x.touches,z=A.length,V=L(this,k,x.changedTouches.length===z).event(x),B,Y,K,G;for(Yo(x),Y=0;Y<z;++Y)K=A[Y],G=gn(K,this),G=[G,this.__zoom.invert(G),K.identifier],V.touch0?!V.touch1&&V.touch0[2]!==G[2]&&(V.touch1=G,V.taps=0):(V.touch0=G,B=!0,V.taps=1+!!d);d&&(d=clearTimeout(d)),B&&(V.taps<2&&(v=G[0],d=setTimeout(function(){d=null},h)),Cs(this),V.start())}}function P(x,...k){if(this.__zooming){var A=L(this,k).event(x),z=x.changedTouches,V=z.length,B,Y,K,G;for($i(x),B=0;B<V;++B)Y=z[B],K=gn(Y,this),A.touch0&&A.touch0[2]===Y.identifier?A.touch0[0]=K:A.touch1&&A.touch1[2]===Y.identifier&&(A.touch1[0]=K);if(Y=A.that.__zoom,A.touch1){var $=A.touch0[0],ee=A.touch0[1],X=A.touch1[0],U=A.touch1[1],ae=(ae=X[0]-$[0])*ae+(ae=X[1]-$[1])*ae,se=(se=U[0]-ee[0])*se+(se=U[1]-ee[1])*se;Y=E(Y,Math.sqrt(ae/se)),K=[($[0]+X[0])/2,($[1]+X[1])/2],G=[(ee[0]+U[0])/2,(ee[1]+U[1])/2]}else if(A.touch0)K=A.touch0[0],G=A.touch0[1];else return;A.zoom("touch",n(N(Y,K,G),A.extent,o))}}function H(x,...k){if(this.__zooming){var A=L(this,k).event(x),z=x.changedTouches,V=z.length,B,Y;for(Yo(x),f&&clearTimeout(f),f=setTimeout(function(){f=null},h),B=0;B<V;++B)Y=z[B],A.touch0&&A.touch0[2]===Y.identifier?delete A.touch0:A.touch1&&A.touch1[2]===Y.identifier&&delete A.touch1;if(A.touch1&&!A.touch0&&(A.touch0=A.touch1,delete A.touch1),A.touch0)A.touch0[1]=this.__zoom.invert(A.touch0[0]);else if(A.end(),A.taps===2&&(Y=gn(Y,this),Math.hypot(v[0]-Y[0],v[1]-Y[1])<m)){var K=an(this).on("dblclick.zoom");K&&K.apply(this,arguments)}}}return y.wheelDelta=function(x){return arguments.length?(r=typeof x=="function"?x:ds(+x),y):r},y.filter=function(x){return arguments.length?(e=typeof x=="function"?x:ds(!!x),y):e},y.touchable=function(x){return arguments.length?(i=typeof x=="function"?x:ds(!!x),y):i},y.extent=function(x){return arguments.length?(t=typeof x=="function"?x:ds([[+x[0][0],+x[0][1]],[+x[1][0],+x[1][1]]]),y):t},y.scaleExtent=function(x){return arguments.length?(a[0]=+x[0],a[1]=+x[1],y):[a[0],a[1]]},y.translateExtent=function(x){return arguments.length?(o[0][0]=+x[0][0],o[1][0]=+x[1][0],o[0][1]=+x[0][1],o[1][1]=+x[1][1],y):[[o[0][0],o[0][1]],[o[1][0],o[1][1]]]},y.constrain=function(x){return arguments.length?(n=x,y):n},y.duration=function(x){return arguments.length?(l=+x,y):l},y.interpolate=function(x){return arguments.length?(c=x,y):c},y.on=function(){var x=u.on.apply(u,arguments);return x===u?y:x},y.clickDistance=function(x){return arguments.length?(p=(x=+x)*x,y):Math.sqrt(p)},y.tapDistance=function(x){return arguments.length?(m=+x,y):m},y}const ya={error001:()=>"[React Flow]: Seems like you have not used zustand provider as an ancestor. Help: https://reactflow.dev/error#001",error002:()=>"It looks like you've created a new nodeTypes or edgeTypes object. If this wasn't on purpose please define the nodeTypes/edgeTypes outside of the component or memoize them.",error003:e=>`Node type "${e}" not found. Using fallback type "default".`,error004:()=>"The React Flow parent container needs a width and a height to render the graph.",error005:()=>"Only child nodes can use a parent extent.",error006:()=>"Can't create edge. An edge needs a source and a target.",error007:e=>`The old edge with id=${e} does not exist.`,error009:e=>`Marker type "${e}" doesn't exist.`,error008:(e,{id:t,sourceHandle:n,targetHandle:r})=>`Couldn't create edge for ${e} handle id: "${e==="source"?n:r}", edge id: ${t}.`,error010:()=>"Handle: No node id found. Make sure to only use a Handle inside a custom Node.",error011:e=>`Edge type "${e}" not found. Using fallback type "default".`,error012:e=>`Node with id "${e}" does not exist, it may have been removed. This can happen when a node is deleted before the "onNodeClick" handler is called.`,error013:(e="react")=>`It seems that you haven't loaded the styles. Please import '@xyflow/${e}/dist/style.css' or base.css to make sure everything is working properly.`,error014:()=>"useNodeConnections: No node ID found. Call useNodeConnections inside a custom Node or provide a node ID.",error015:()=>"It seems that you are trying to drag a node that is not initialized. Please use onNodesChange as explained in the docs."},Rl=[[Number.NEGATIVE_INFINITY,Number.NEGATIVE_INFINITY],[Number.POSITIVE_INFINITY,Number.POSITIVE_INFINITY]],Wf=["Enter"," ","Escape"],ky={"node.a11yDescription.default":"Press enter or space to select a node. Press delete to remove it and escape to cancel.","node.a11yDescription.keyboardDisabled":"Press enter or space to select a node. You can then use the arrow keys to move the node around. Press delete to remove it and escape to cancel.","node.a11yDescription.ariaLiveMessage":({direction:e,x:t,y:n})=>`Moved selected node ${e}. New position, x: ${t}, y: ${n}`,"edge.a11yDescription.default":"Press enter or space to select an edge. You can then press delete to remove it or escape to cancel.","controls.ariaLabel":"Control Panel","controls.zoomIn.ariaLabel":"Zoom In","controls.zoomOut.ariaLabel":"Zoom Out","controls.fitView.ariaLabel":"Fit View","controls.interactive.ariaLabel":"Toggle Interactivity","minimap.ariaLabel":"Mini Map","handle.ariaLabel":"Handle"};var Ri;(function(e){e.Strict="strict",e.Loose="loose"})(Ri||(Ri={}));var _i;(function(e){e.Free="free",e.Vertical="vertical",e.Horizontal="horizontal"})(_i||(_i={}));var Hs;(function(e){e.Partial="partial",e.Full="full"})(Hs||(Hs={}));const jl={inProgress:!1,isValid:null,from:null,fromHandle:null,fromPosition:null,fromNode:null,to:null,toHandle:null,toPosition:null,toNode:null,pointer:null};var fr;(function(e){e.Bezier="default",e.Straight="straight",e.Step="step",e.SmoothStep="smoothstep",e.SimpleBezier="simplebezier"})(fr||(fr={}));var un;(function(e){e.Arrow="arrow",e.ArrowClosed="arrowclosed"})(un||(un={}));var Ce;(function(e){e.Left="left",e.Top="top",e.Right="right",e.Bottom="bottom"})(Ce||(Ce={}));const fu={[Ce.Left]:Ce.Right,[Ce.Right]:Ce.Left,[Ce.Top]:Ce.Bottom,[Ce.Bottom]:Ce.Top};function Ey(e,t){if(!e&&!t)return!0;if(!e||!t||e.size!==t.size)return!1;if(!e.size&&!t.size)return!0;for(const n of e.keys())if(!t.has(n))return!1;return!0}function vu(e,t,n){if(!n)return;const r=[];e.forEach((i,a)=>{t!=null&&t.has(a)||r.push(i)}),r.length&&n(r)}function Sy(e){return e===null?null:e?"valid":"invalid"}const Gf=e=>"id"in e&&"source"in e&&"target"in e,Cy=e=>"id"in e&&"position"in e&&!("source"in e)&&!("target"in e),hc=e=>"id"in e&&"internals"in e&&!("source"in e)&&!("target"in e),Ya=(e,t=[0,0])=>{const{width:n,height:r}=Pr(e),i=e.origin??t,a=n*i[0],o=r*i[1];return{x:e.position.x-a,y:e.position.y-o}},Ny=(e,t={nodeOrigin:[0,0]})=>{if(e.length===0)return{x:0,y:0,width:0,height:0};const n=e.reduce((r,i)=>{const a=typeof i=="string";let o=!t.nodeLookup&&!a?i:void 0;t.nodeLookup&&(o=a?t.nodeLookup.get(i):hc(i)?i:t.nodeLookup.get(i.id));const l=o?Fs(o,t.nodeOrigin):{x:0,y:0,x2:0,y2:0};return mo(r,l)},{x:1/0,y:1/0,x2:-1/0,y2:-1/0});return po(n)},Xa=(e,t={})=>{let n={x:1/0,y:1/0,x2:-1/0,y2:-1/0},r=!1;return e.forEach(i=>{(t.filter===void 0||t.filter(i))&&(n=mo(n,Fs(i)),r=!0)}),r?po(n):{x:0,y:0,width:0,height:0}},gc=(e,t,[n,r,i]=[0,0,1],a=!1,o=!1)=>{const l={...Ga(t,[n,r,i]),width:t.width/i,height:t.height/i},c=[];for(const u of e.values()){const{measured:d,selectable:v=!0,hidden:f=!1}=u;if(o&&!v||f)continue;const h=d.width??u.width??u.initialWidth??null,g=d.height??u.height??u.initialHeight??null,p=wa(l,qi(u)),m=(h??0)*(g??0),y=a&&p>0;(!u.internals.handleBounds||y||p>=m||u.dragging)&&c.push(u)}return c},Iy=(e,t)=>{const n=new Set;return e.forEach(r=>{n.add(r.id)}),t.filter(r=>n.has(r.source)||n.has(r.target))};function Py(e,t){const n=new Map,r=t!=null&&t.nodes?new Set(t.nodes.map(i=>i.id)):null;return e.forEach(i=>{i.measured.width&&i.measured.height&&((t==null?void 0:t.includeHiddenNodes)||!i.hidden)&&(!r||r.has(i.id))&&n.set(i.id,i)}),n}async function Oy({nodes:e,width:t,height:n,panZoom:r,minZoom:i,maxZoom:a},o){if(e.size===0)return Promise.resolve(!0);const l=Py(e,o),c=Xa(l),u=mc(c,t,n,(o==null?void 0:o.minZoom)??i,(o==null?void 0:o.maxZoom)??a,(o==null?void 0:o.padding)??.1);return await r.setViewport(u,{duration:o==null?void 0:o.duration,ease:o==null?void 0:o.ease,interpolate:o==null?void 0:o.interpolate}),Promise.resolve(!0)}function Zf({nodeId:e,nextPosition:t,nodeLookup:n,nodeOrigin:r=[0,0],nodeExtent:i,onError:a}){const o=n.get(e),l=o.parentId?n.get(o.parentId):void 0,{x:c,y:u}=l?l.internals.positionAbsolute:{x:0,y:0},d=o.origin??r;let v=o.extent||i;if(o.extent==="parent"&&!o.expandParent)if(!l)a==null||a("005",ya.error005());else{const h=l.measured.width,g=l.measured.height;h&&g&&(v=[[c,u],[c+h,u+g]])}else l&&Vi(o.extent)&&(v=[[o.extent[0][0]+c,o.extent[0][1]+u],[o.extent[1][0]+c,o.extent[1][1]+u]]);const f=Vi(v)?ei(t,v,o.measured):t;return(o.measured.width===void 0||o.measured.height===void 0)&&(a==null||a("015",ya.error015())),{position:{x:f.x-c+(o.measured.width??0)*d[0],y:f.y-u+(o.measured.height??0)*d[1]},positionAbsolute:f}}async function My({nodesToRemove:e=[],edgesToRemove:t=[],nodes:n,edges:r,onBeforeDelete:i}){const a=new Set(e.map(f=>f.id)),o=[];for(const f of n){if(f.deletable===!1)continue;const h=a.has(f.id),g=!h&&f.parentId&&o.find(p=>p.id===f.parentId);(h||g)&&o.push(f)}const l=new Set(t.map(f=>f.id)),c=r.filter(f=>f.deletable!==!1),d=Iy(o,c);for(const f of c)l.has(f.id)&&!d.find(g=>g.id===f.id)&&d.push(f);if(!i)return{edges:d,nodes:o};const v=await i({nodes:o,edges:d});return typeof v=="boolean"?v?{edges:d,nodes:o}:{edges:[],nodes:[]}:v}const ji=(e,t=0,n=1)=>Math.min(Math.max(e,t),n),ei=(e={x:0,y:0},t,n)=>({x:ji(e.x,t[0][0],t[1][0]-((n==null?void 0:n.width)??0)),y:ji(e.y,t[0][1],t[1][1]-((n==null?void 0:n.height)??0))});function Uf(e,t,n){const{width:r,height:i}=Pr(n),{x:a,y:o}=n.internals.positionAbsolute;return ei(e,[[a,o],[a+r,o+i]],t)}const hu=(e,t,n)=>e<t?ji(Math.abs(e-t),1,t)/t:e>n?-ji(Math.abs(e-n),1,t)/t:0,Qf=(e,t,n=15,r=40)=>{const i=hu(e.x,r,t.width-r)*n,a=hu(e.y,r,t.height-r)*n;return[i,a]},mo=(e,t)=>({x:Math.min(e.x,t.x),y:Math.min(e.y,t.y),x2:Math.max(e.x2,t.x2),y2:Math.max(e.y2,t.y2)}),ql=({x:e,y:t,width:n,height:r})=>({x:e,y:t,x2:e+n,y2:t+r}),po=({x:e,y:t,x2:n,y2:r})=>({x:e,y:t,width:n-e,height:r-t}),qi=(e,t=[0,0])=>{var i,a;const{x:n,y:r}=hc(e)?e.internals.positionAbsolute:Ya(e,t);return{x:n,y:r,width:((i=e.measured)==null?void 0:i.width)??e.width??e.initialWidth??0,height:((a=e.measured)==null?void 0:a.height)??e.height??e.initialHeight??0}},Fs=(e,t=[0,0])=>{var i,a;const{x:n,y:r}=hc(e)?e.internals.positionAbsolute:Ya(e,t);return{x:n,y:r,x2:n+(((i=e.measured)==null?void 0:i.width)??e.width??e.initialWidth??0),y2:r+(((a=e.measured)==null?void 0:a.height)??e.height??e.initialHeight??0)}},Jf=(e,t)=>po(mo(ql(e),ql(t))),wa=(e,t)=>{const n=Math.max(0,Math.min(e.x+e.width,t.x+t.width)-Math.max(e.x,t.x)),r=Math.max(0,Math.min(e.y+e.height,t.y+t.height)-Math.max(e.y,t.y));return Math.ceil(n*r)},gu=e=>Jn(e.width)&&Jn(e.height)&&Jn(e.x)&&Jn(e.y),Jn=e=>!isNaN(e)&&isFinite(e),Ty=(e,t)=>{},Wa=(e,t=[1,1])=>({x:t[0]*Math.round(e.x/t[0]),y:t[1]*Math.round(e.y/t[1])}),Ga=({x:e,y:t},[n,r,i],a=!1,o=[1,1])=>{const l={x:(e-n)/i,y:(t-r)/i};return a?Wa(l,o):l},Bs=({x:e,y:t},[n,r,i])=>({x:e*i+n,y:t*i+r});function ui(e,t){if(typeof e=="number")return Math.floor((t-t/(1+e))*.5);if(typeof e=="string"&&e.endsWith("px")){const n=parseFloat(e);if(!Number.isNaN(n))return Math.floor(n)}if(typeof e=="string"&&e.endsWith("%")){const n=parseFloat(e);if(!Number.isNaN(n))return Math.floor(t*n*.01)}return console.error(`[React Flow] The padding value "${e}" is invalid. Please provide a number or a string with a valid unit (px or %).`),0}function Ay(e,t,n){if(typeof e=="string"||typeof e=="number"){const r=ui(e,n),i=ui(e,t);return{top:r,right:i,bottom:r,left:i,x:i*2,y:r*2}}if(typeof e=="object"){const r=ui(e.top??e.y??0,n),i=ui(e.bottom??e.y??0,n),a=ui(e.left??e.x??0,t),o=ui(e.right??e.x??0,t);return{top:r,right:o,bottom:i,left:a,x:a+o,y:r+i}}return{top:0,right:0,bottom:0,left:0,x:0,y:0}}function zy(e,t,n,r,i,a){const{x:o,y:l}=Bs(e,[t,n,r]),{x:c,y:u}=Bs({x:e.x+e.width,y:e.y+e.height},[t,n,r]),d=i-c,v=a-u;return{left:Math.floor(o),top:Math.floor(l),right:Math.floor(d),bottom:Math.floor(v)}}const mc=(e,t,n,r,i,a)=>{const o=Ay(a,t,n),l=(t-o.x)/e.width,c=(n-o.y)/e.height,u=Math.min(l,c),d=ji(u,r,i),v=e.x+e.width/2,f=e.y+e.height/2,h=t/2-v*d,g=n/2-f*d,p=zy(e,h,g,d,t,n),m={left:Math.min(p.left-o.left,0),top:Math.min(p.top-o.top,0),right:Math.min(p.right-o.right,0),bottom:Math.min(p.bottom-o.bottom,0)};return{x:h-m.left+m.right,y:g-m.top+m.bottom,zoom:d}},xa=()=>{var e;return typeof navigator<"u"&&((e=navigator==null?void 0:navigator.userAgent)==null?void 0:e.indexOf("Mac"))>=0};function Vi(e){return e!=null&&e!=="parent"}function Pr(e){var t,n;return{width:((t=e.measured)==null?void 0:t.width)??e.width??e.initialWidth??0,height:((n=e.measured)==null?void 0:n.height)??e.height??e.initialHeight??0}}function $f(e){var t,n;return(((t=e.measured)==null?void 0:t.width)??e.width??e.initialWidth)!==void 0&&(((n=e.measured)==null?void 0:n.height)??e.height??e.initialHeight)!==void 0}function Dy(e,t={width:0,height:0},n,r,i){const a={...e},o=r.get(n);if(o){const l=o.origin||i;a.x+=o.internals.positionAbsolute.x-(t.width??0)*l[0],a.y+=o.internals.positionAbsolute.y-(t.height??0)*l[1]}return a}function Ly(e){return{...ky,...e||{}}}function Xo(e,{snapGrid:t=[0,0],snapToGrid:n=!1,transform:r,containerBounds:i}){const{x:a,y:o}=bn(e),l=Ga({x:a-((i==null?void 0:i.left)??0),y:o-((i==null?void 0:i.top)??0)},r),{x:c,y:u}=n?Wa(l,t):l;return{xSnapped:c,ySnapped:u,...l}}const ev=e=>({width:e.offsetWidth,height:e.offsetHeight}),tv=e=>{var t;return((t=e==null?void 0:e.getRootNode)==null?void 0:t.call(e))||(window==null?void 0:window.document)},Ry=["INPUT","SELECT","TEXTAREA"];function nv(e){var r,i;const t=((i=(r=e.composedPath)==null?void 0:r.call(e))==null?void 0:i[0])||e.target;return(t==null?void 0:t.nodeType)!==1?!1:Ry.includes(t.nodeName)||t.hasAttribute("contenteditable")||!!t.closest(".nokey")}const rv=e=>"clientX"in e,bn=(e,t)=>{var a,o;const n=rv(e),r=n?e.clientX:(a=e.touches)==null?void 0:a[0].clientX,i=n?e.clientY:(o=e.touches)==null?void 0:o[0].clientY;return{x:r-((t==null?void 0:t.left)??0),y:i-((t==null?void 0:t.top)??0)}},mu=(e,t,n,r,i)=>{const a=t.querySelectorAll(`.${e}`);return!a||!a.length?null:Array.from(a).map(o=>{const l=o.getBoundingClientRect();return{id:o.getAttribute("data-handleid"),type:e,nodeId:i,position:o.getAttribute("data-handlepos"),x:(l.left-n.left)/r,y:(l.top-n.top)/r,...ev(o)}})};function jy({sourceX:e,sourceY:t,targetX:n,targetY:r,sourceControlX:i,sourceControlY:a,targetControlX:o,targetControlY:l}){const c=e*.125+i*.375+o*.375+n*.125,u=t*.125+a*.375+l*.375+r*.125,d=Math.abs(c-e),v=Math.abs(u-t);return[c,u,d,v]}function fs(e,t){return e>=0?.5*e:t*25*Math.sqrt(-e)}function pu({pos:e,x1:t,y1:n,x2:r,y2:i,c:a}){switch(e){case Ce.Left:return[t-fs(t-r,a),n];case Ce.Right:return[t+fs(r-t,a),n];case Ce.Top:return[t,n-fs(n-i,a)];case Ce.Bottom:return[t,n+fs(i-n,a)]}}function iv({sourceX:e,sourceY:t,sourcePosition:n=Ce.Bottom,targetX:r,targetY:i,targetPosition:a=Ce.Top,curvature:o=.25}){const[l,c]=pu({pos:n,x1:e,y1:t,x2:r,y2:i,c:o}),[u,d]=pu({pos:a,x1:r,y1:i,x2:e,y2:t,c:o}),[v,f,h,g]=jy({sourceX:e,sourceY:t,targetX:r,targetY:i,sourceControlX:l,sourceControlY:c,targetControlX:u,targetControlY:d});return[`M${e},${t} C${l},${c} ${u},${d} ${r},${i}`,v,f,h,g]}function av({sourceX:e,sourceY:t,targetX:n,targetY:r}){const i=Math.abs(n-e)/2,a=n<e?n+i:n-i,o=Math.abs(r-t)/2,l=r<t?r+o:r-o;return[a,l,i,o]}function qy({sourceNode:e,targetNode:t,selected:n=!1,zIndex:r=0,elevateOnSelect:i=!1,zIndexMode:a="basic"}){if(a==="manual")return r;const o=i&&n?r+1e3:r,l=Math.max(e.parentId||i&&e.selected?e.internals.z:0,t.parentId||i&&t.selected?t.internals.z:0);return o+l}function Vy({sourceNode:e,targetNode:t,width:n,height:r,transform:i}){const a=mo(Fs(e),Fs(t));a.x===a.x2&&(a.x2+=1),a.y===a.y2&&(a.y2+=1);const o={x:-i[0]/i[2],y:-i[1]/i[2],width:n/i[2],height:r/i[2]};return wa(o,po(a))>0}const Hy=({source:e,sourceHandle:t,target:n,targetHandle:r})=>`xy-edge__${e}${t||""}-${n}${r||""}`,Fy=(e,t)=>t.some(n=>n.source===e.source&&n.target===e.target&&(n.sourceHandle===e.sourceHandle||!n.sourceHandle&&!e.sourceHandle)&&(n.targetHandle===e.targetHandle||!n.targetHandle&&!e.targetHandle)),By=(e,t,n={})=>{if(!e.source||!e.target)return t;const r=n.getEdgeId||Hy;let i;return Gf(e)?i={...e}:i={...e,id:r(e)},Fy(i,t)?t:(i.sourceHandle===null&&delete i.sourceHandle,i.targetHandle===null&&delete i.targetHandle,t.concat(i))};function sv({sourceX:e,sourceY:t,targetX:n,targetY:r}){const[i,a,o,l]=av({sourceX:e,sourceY:t,targetX:n,targetY:r});return[`M ${e},${t}L ${n},${r}`,i,a,o,l]}const _u={[Ce.Left]:{x:-1,y:0},[Ce.Right]:{x:1,y:0},[Ce.Top]:{x:0,y:-1},[Ce.Bottom]:{x:0,y:1}},Ky=({source:e,sourcePosition:t=Ce.Bottom,target:n})=>t===Ce.Left||t===Ce.Right?e.x<n.x?{x:1,y:0}:{x:-1,y:0}:e.y<n.y?{x:0,y:1}:{x:0,y:-1},bu=(e,t)=>Math.sqrt(Math.pow(t.x-e.x,2)+Math.pow(t.y-e.y,2));function Yy({source:e,sourcePosition:t=Ce.Bottom,target:n,targetPosition:r=Ce.Top,center:i,offset:a,stepPosition:o}){const l=_u[t],c=_u[r],u={x:e.x+l.x*a,y:e.y+l.y*a},d={x:n.x+c.x*a,y:n.y+c.y*a},v=Ky({source:u,sourcePosition:t,target:d}),f=v.x!==0?"x":"y",h=v[f];let g=[],p,m;const y={x:0,y:0},E={x:0,y:0},[,,N,I]=av({sourceX:e.x,sourceY:e.y,targetX:n.x,targetY:n.y});if(l[f]*c[f]===-1){f==="x"?(p=i.x??u.x+(d.x-u.x)*o,m=i.y??(u.y+d.y)/2):(p=i.x??(u.x+d.x)/2,m=i.y??u.y+(d.y-u.y)*o);const T=[{x:p,y:u.y},{x:p,y:d.y}],D=[{x:u.x,y:m},{x:d.x,y:m}];l[f]===h?g=f==="x"?T:D:g=f==="x"?D:T}else{const T=[{x:u.x,y:d.y}],D=[{x:d.x,y:u.y}];if(f==="x"?g=l.x===h?D:T:g=l.y===h?T:D,t===r){const x=Math.abs(e[f]-n[f]);if(x<=a){const k=Math.min(a-1,a-x);l[f]===h?y[f]=(u[f]>e[f]?-1:1)*k:E[f]=(d[f]>n[f]?-1:1)*k}}if(t!==r){const x=f==="x"?"y":"x",k=l[f]===c[x],A=u[x]>d[x],z=u[x]<d[x];(l[f]===1&&(!k&&A||k&&z)||l[f]!==1&&(!k&&z||k&&A))&&(g=f==="x"?T:D)}const F={x:u.x+y.x,y:u.y+y.y},S={x:d.x+E.x,y:d.y+E.y},P=Math.max(Math.abs(F.x-g[0].x),Math.abs(S.x-g[0].x)),H=Math.max(Math.abs(F.y-g[0].y),Math.abs(S.y-g[0].y));P>=H?(p=(F.x+S.x)/2,m=g[0].y):(p=g[0].x,m=(F.y+S.y)/2)}const C={x:u.x+y.x,y:u.y+y.y},L={x:d.x+E.x,y:d.y+E.y};return[[e,...C.x!==g[0].x||C.y!==g[0].y?[C]:[],...g,...L.x!==g[g.length-1].x||L.y!==g[g.length-1].y?[L]:[],n],p,m,N,I]}function Xy(e,t,n,r){const i=Math.min(bu(e,t)/2,bu(t,n)/2,r),{x:a,y:o}=t;if(e.x===a&&a===n.x||e.y===o&&o===n.y)return`L${a} ${o}`;if(e.y===o){const u=e.x<n.x?-1:1,d=e.y<n.y?1:-1;return`L ${a+i*u},${o}Q ${a},${o} ${a},${o+i*d}`}const l=e.x<n.x?1:-1,c=e.y<n.y?-1:1;return`L ${a},${o+i*c}Q ${a},${o} ${a+i*l},${o}`}function pc({sourceX:e,sourceY:t,sourcePosition:n=Ce.Bottom,targetX:r,targetY:i,targetPosition:a=Ce.Top,borderRadius:o=5,centerX:l,centerY:c,offset:u=20,stepPosition:d=.5}){const[v,f,h,g,p]=Yy({source:{x:e,y:t},sourcePosition:n,target:{x:r,y:i},targetPosition:a,center:{x:l,y:c},offset:u,stepPosition:d});let m=`M${v[0].x} ${v[0].y}`;for(let y=1;y<v.length-1;y++)m+=Xy(v[y-1],v[y],v[y+1],o);return m+=`L${v[v.length-1].x} ${v[v.length-1].y}`,[m,f,h,g,p]}function yu(e){var t;return e&&!!(e.internals.handleBounds||(t=e.handles)!=null&&t.length)&&!!(e.measured.width||e.width||e.initialWidth)}function Wy(e){var v;const{sourceNode:t,targetNode:n}=e;if(!yu(t)||!yu(n))return null;const r=t.internals.handleBounds||wu(t.handles),i=n.internals.handleBounds||wu(n.handles),a=xu((r==null?void 0:r.source)??[],e.sourceHandle),o=xu(e.connectionMode===Ri.Strict?(i==null?void 0:i.target)??[]:((i==null?void 0:i.target)??[]).concat((i==null?void 0:i.source)??[]),e.targetHandle);if(!a||!o)return(v=e.onError)==null||v.call(e,"008",ya.error008(a?"target":"source",{id:e.id,sourceHandle:e.sourceHandle,targetHandle:e.targetHandle})),null;const l=(a==null?void 0:a.position)||Ce.Bottom,c=(o==null?void 0:o.position)||Ce.Top,u=ti(t,a,l),d=ti(n,o,c);return{sourceX:u.x,sourceY:u.y,targetX:d.x,targetY:d.y,sourcePosition:l,targetPosition:c}}function wu(e){if(!e)return null;const t=[],n=[];for(const r of e)r.width=r.width??1,r.height=r.height??1,r.type==="source"?t.push(r):r.type==="target"&&n.push(r);return{source:t,target:n}}function ti(e,t,n=Ce.Left,r=!1){const i=((t==null?void 0:t.x)??0)+e.internals.positionAbsolute.x,a=((t==null?void 0:t.y)??0)+e.internals.positionAbsolute.y,{width:o,height:l}=t??Pr(e);if(r)return{x:i+o/2,y:a+l/2};switch((t==null?void 0:t.position)??n){case Ce.Top:return{x:i+o/2,y:a};case Ce.Right:return{x:i+o,y:a+l/2};case Ce.Bottom:return{x:i+o/2,y:a+l};case Ce.Left:return{x:i,y:a+l/2}}}function xu(e,t){return e&&(t?e.find(n=>n.id===t):e[0])||null}function Vl(e,t){return e?typeof e=="string"?e:`${t?`${t}__`:""}${Object.keys(e).sort().map(r=>`${r}=${e[r]}`).join("&")}`:""}function Gy(e,{id:t,defaultColor:n,defaultMarkerStart:r,defaultMarkerEnd:i}){const a=new Set;return e.reduce((o,l)=>([l.markerStart||r,l.markerEnd||i].forEach(c=>{if(c&&typeof c=="object"){const u=Vl(c,t);a.has(u)||(o.push({id:u,color:c.color||n,...c}),a.add(u))}}),o),[]).sort((o,l)=>o.id.localeCompare(l.id))}const ov=1e3,Zy=10,_c={nodeOrigin:[0,0],nodeExtent:Rl,elevateNodesOnSelect:!0,zIndexMode:"basic",defaults:{}},Uy={..._c,checkEquality:!0};function bc(e,t){const n={...e};for(const r in t)t[r]!==void 0&&(n[r]=t[r]);return n}function Qy(e,t,n){const r=bc(_c,n);for(const i of e.values())if(i.parentId)wc(i,e,t,r);else{const a=Ya(i,r.nodeOrigin),o=Vi(i.extent)?i.extent:r.nodeExtent,l=ei(a,o,Pr(i));i.internals.positionAbsolute=l}}function Jy(e,t){if(!e.handles)return e.measured?t==null?void 0:t.internals.handleBounds:void 0;const n=[],r=[];for(const i of e.handles){const a={id:i.id,width:i.width??1,height:i.height??1,nodeId:e.id,x:i.x,y:i.y,position:i.position,type:i.type};i.type==="source"?n.push(a):i.type==="target"&&r.push(a)}return{source:n,target:r}}function yc(e){return e==="manual"}function $y(e,t,n,r={}){var d,v;const i=bc(Uy,r),a={i:0},o=new Map(t),l=i!=null&&i.elevateNodesOnSelect&&!yc(i.zIndexMode)?ov:0;let c=e.length>0,u=!1;t.clear(),n.clear();for(const f of e){let h=o.get(f.id);if(i.checkEquality&&f===(h==null?void 0:h.internals.userNode))t.set(f.id,h);else{const g=Ya(f,i.nodeOrigin),p=Vi(f.extent)?f.extent:i.nodeExtent,m=ei(g,p,Pr(f));h={...i.defaults,...f,measured:{width:(d=f.measured)==null?void 0:d.width,height:(v=f.measured)==null?void 0:v.height},internals:{positionAbsolute:m,handleBounds:Jy(f,h),z:lv(f,l,i.zIndexMode),userNode:f}},t.set(f.id,h)}(h.measured===void 0||h.measured.width===void 0||h.measured.height===void 0)&&!h.hidden&&(c=!1),f.parentId&&wc(h,t,n,r,a),u||(u=f.selected??!1)}return{nodesInitialized:c,hasSelectedNodes:u}}function e0(e,t){if(!e.parentId)return;const n=t.get(e.parentId);n?n.set(e.id,e):t.set(e.parentId,new Map([[e.id,e]]))}function wc(e,t,n,r,i){const{elevateNodesOnSelect:a,nodeOrigin:o,nodeExtent:l,zIndexMode:c}=bc(_c,r),u=e.parentId,d=t.get(u);if(!d){console.warn(`Parent node ${u} not found. Please make sure that parent nodes are in front of their child nodes in the nodes array.`);return}e0(e,n),i&&!d.parentId&&d.internals.rootParentIndex===void 0&&c==="auto"&&(d.internals.rootParentIndex=++i.i,d.internals.z=d.internals.z+i.i*Zy),i&&d.internals.rootParentIndex!==void 0&&(i.i=d.internals.rootParentIndex);const v=a&&!yc(c)?ov:0,{x:f,y:h,z:g}=t0(e,d,o,l,v,c),{positionAbsolute:p}=e.internals,m=f!==p.x||h!==p.y;(m||g!==e.internals.z)&&t.set(e.id,{...e,internals:{...e.internals,positionAbsolute:m?{x:f,y:h}:p,z:g}})}function lv(e,t,n){const r=Jn(e.zIndex)?e.zIndex:0;return yc(n)?r:r+(e.selected?t:0)}function t0(e,t,n,r,i,a){const{x:o,y:l}=t.internals.positionAbsolute,c=Pr(e),u=Ya(e,n),d=Vi(e.extent)?ei(u,e.extent,c):u;let v=ei({x:o+d.x,y:l+d.y},r,c);e.extent==="parent"&&(v=Uf(v,c,t));const f=lv(e,i,a),h=t.internals.z??0;return{x:v.x,y:v.y,z:h>=f?h+1:f}}function n0(e,t,n,r=[0,0]){var o;const i=[],a=new Map;for(const l of e){const c=t.get(l.parentId);if(!c)continue;const u=((o=a.get(l.parentId))==null?void 0:o.expandedRect)??qi(c),d=Jf(u,l.rect);a.set(l.parentId,{expandedRect:d,parent:c})}return a.size>0&&a.forEach(({expandedRect:l,parent:c},u)=>{var N;const d=c.internals.positionAbsolute,v=Pr(c),f=c.origin??r,h=l.x<d.x?Math.round(Math.abs(d.x-l.x)):0,g=l.y<d.y?Math.round(Math.abs(d.y-l.y)):0,p=Math.max(v.width,Math.round(l.width)),m=Math.max(v.height,Math.round(l.height)),y=(p-v.width)*f[0],E=(m-v.height)*f[1];(h>0||g>0||y||E)&&(i.push({id:u,type:"position",position:{x:c.position.x-h+y,y:c.position.y-g+E}}),(N=n.get(u))==null||N.forEach(I=>{e.some(C=>C.id===I.id)||i.push({id:I.id,type:"position",position:{x:I.position.x+h,y:I.position.y+g}})})),(v.width<l.width||v.height<l.height||h||g)&&i.push({id:u,type:"dimensions",setAttributes:!0,dimensions:{width:p+(h?f[0]*h-y:0),height:m+(g?f[1]*g-E:0)}})}),i}function r0(e,t,n,r,i,a,o){const l=r==null?void 0:r.querySelector(".xyflow__viewport");let c=!1;if(!l)return{changes:[],updatedInternals:c};const u=[],d=window.getComputedStyle(l),{m22:v}=new window.DOMMatrixReadOnly(d.transform),f=[];for(const h of e.values()){const g=t.get(h.id);if(!g)continue;if(g.hidden){t.set(g.id,{...g,internals:{...g.internals,handleBounds:void 0}}),c=!0;continue}const p=ev(h.nodeElement),m=g.measured.width!==p.width||g.measured.height!==p.height;if(!!(p.width&&p.height&&(m||!g.internals.handleBounds||h.force))){const E=h.nodeElement.getBoundingClientRect(),N=Vi(g.extent)?g.extent:a;let{positionAbsolute:I}=g.internals;g.parentId&&g.extent==="parent"?I=Uf(I,p,t.get(g.parentId)):N&&(I=ei(I,N,p));const C={...g,measured:p,internals:{...g.internals,positionAbsolute:I,handleBounds:{source:mu("source",h.nodeElement,E,v,g.id),target:mu("target",h.nodeElement,E,v,g.id)}}};t.set(g.id,C),g.parentId&&wc(C,t,n,{nodeOrigin:i,zIndexMode:o}),c=!0,m&&(u.push({id:g.id,type:"dimensions",dimensions:p}),g.expandParent&&g.parentId&&f.push({id:g.id,parentId:g.parentId,rect:qi(C,i)}))}}if(f.length>0){const h=n0(f,t,n,i);u.push(...h)}return{changes:u,updatedInternals:c}}async function i0({delta:e,panZoom:t,transform:n,translateExtent:r,width:i,height:a}){if(!t||!e.x&&!e.y)return Promise.resolve(!1);const o=await t.setViewportConstrained({x:n[0]+e.x,y:n[1]+e.y,zoom:n[2]},[[0,0],[i,a]],r),l=!!o&&(o.x!==n[0]||o.y!==n[1]||o.k!==n[2]);return Promise.resolve(l)}function ku(e,t,n,r,i,a){let o=i;const l=r.get(o)||new Map;r.set(o,l.set(n,t)),o=`${i}-${e}`;const c=r.get(o)||new Map;if(r.set(o,c.set(n,t)),a){o=`${i}-${e}-${a}`;const u=r.get(o)||new Map;r.set(o,u.set(n,t))}}function a0(e,t,n){e.clear(),t.clear();for(const r of n){const{source:i,target:a,sourceHandle:o=null,targetHandle:l=null}=r,c={edgeId:r.id,source:i,target:a,sourceHandle:o,targetHandle:l},u=`${i}-${o}--${a}-${l}`,d=`${a}-${l}--${i}-${o}`;ku("source",c,d,e,i,o),ku("target",c,u,e,a,l),t.set(r.id,r)}}function cv(e,t){if(!e.parentId)return!1;const n=t.get(e.parentId);return n?n.selected?!0:cv(n,t):!1}function Eu(e,t,n){var i;let r=e;do{if((i=r==null?void 0:r.matches)!=null&&i.call(r,t))return!0;if(r===n)return!1;r=r==null?void 0:r.parentElement}while(r);return!1}function s0(e,t,n,r){const i=new Map;for(const[a,o]of e)if((o.selected||o.id===r)&&(!o.parentId||!cv(o,e))&&(o.draggable||t&&typeof o.draggable>"u")){const l=e.get(a);l&&i.set(a,{id:a,position:l.position||{x:0,y:0},distance:{x:n.x-l.internals.positionAbsolute.x,y:n.y-l.internals.positionAbsolute.y},extent:l.extent,parentId:l.parentId,origin:l.origin,expandParent:l.expandParent,internals:{positionAbsolute:l.internals.positionAbsolute||{x:0,y:0}},measured:{width:l.measured.width??0,height:l.measured.height??0}})}return i}function Wo({nodeId:e,dragItems:t,nodeLookup:n,dragging:r=!0}){var o,l,c;const i=[];for(const[u,d]of t){const v=(o=n.get(u))==null?void 0:o.internals.userNode;v&&i.push({...v,position:d.position,dragging:r})}if(!e)return[i[0],i];const a=(l=n.get(e))==null?void 0:l.internals.userNode;return[a?{...a,position:((c=t.get(e))==null?void 0:c.position)||a.position,dragging:r}:i[0],i]}function o0({dragItems:e,snapGrid:t,x:n,y:r}){const i=e.values().next().value;if(!i)return null;const a={x:n-i.distance.x,y:r-i.distance.y},o=Wa(a,t);return{x:o.x-a.x,y:o.y-a.y}}function l0({onNodeMouseDown:e,getStoreItems:t,onDragStart:n,onDrag:r,onDragStop:i}){let a={x:null,y:null},o=0,l=new Map,c=!1,u={x:0,y:0},d=null,v=!1,f=null,h=!1,g=!1,p=null;function m({noDragClassName:E,handleSelector:N,domNode:I,isSelectable:C,nodeId:L,nodeClickDistance:q=0}){f=an(I);function T({x:P,y:H}){const{nodeLookup:x,nodeExtent:k,snapGrid:A,snapToGrid:z,nodeOrigin:V,onNodeDrag:B,onSelectionDrag:Y,onError:K,updateNodePositions:G}=t();a={x:P,y:H};let $=!1;const ee=l.size>1,X=ee&&k?ql(Xa(l)):null,U=ee&&z?o0({dragItems:l,snapGrid:A,x:P,y:H}):null;for(const[ae,se]of l){if(!x.has(ae))continue;let ue={x:P-se.distance.x,y:H-se.distance.y};z&&(ue=U?{x:Math.round(ue.x+U.x),y:Math.round(ue.y+U.y)}:Wa(ue,A));let ve=null;if(ee&&k&&!se.extent&&X){const{positionAbsolute:_e}=se.internals,De=_e.x-X.x+k[0][0],Me=_e.x+se.measured.width-X.x2+k[1][0],We=_e.y-X.y+k[0][1],He=_e.y+se.measured.height-X.y2+k[1][1];ve=[[De,We],[Me,He]]}const{position:de,positionAbsolute:Ee}=Zf({nodeId:ae,nextPosition:ue,nodeLookup:x,nodeExtent:ve||k,nodeOrigin:V,onError:K});$=$||se.position.x!==de.x||se.position.y!==de.y,se.position=de,se.internals.positionAbsolute=Ee}if(g=g||$,!!$&&(G(l,!0),p&&(r||B||!L&&Y))){const[ae,se]=Wo({nodeId:L,dragItems:l,nodeLookup:x});r==null||r(p,l,ae,se),B==null||B(p,ae,se),L||Y==null||Y(p,se)}}async function D(){if(!d)return;const{transform:P,panBy:H,autoPanSpeed:x,autoPanOnNodeDrag:k}=t();if(!k){c=!1,cancelAnimationFrame(o);return}const[A,z]=Qf(u,d,x);(A!==0||z!==0)&&(a.x=(a.x??0)-A/P[2],a.y=(a.y??0)-z/P[2],await H({x:A,y:z})&&T(a)),o=requestAnimationFrame(D)}function F(P){var ee;const{nodeLookup:H,multiSelectionActive:x,nodesDraggable:k,transform:A,snapGrid:z,snapToGrid:V,selectNodesOnDrag:B,onNodeDragStart:Y,onSelectionDragStart:K,unselectNodesAndEdges:G}=t();v=!0,(!B||!C)&&!x&&L&&((ee=H.get(L))!=null&&ee.selected||G()),C&&B&&L&&(e==null||e(L));const $=Xo(P.sourceEvent,{transform:A,snapGrid:z,snapToGrid:V,containerBounds:d});if(a=$,l=s0(H,k,$,L),l.size>0&&(n||Y||!L&&K)){const[X,U]=Wo({nodeId:L,dragItems:l,nodeLookup:H});n==null||n(P.sourceEvent,l,X,U),Y==null||Y(P.sourceEvent,X,U),L||K==null||K(P.sourceEvent,U)}}const S=O_().clickDistance(q).on("start",P=>{const{domNode:H,nodeDragThreshold:x,transform:k,snapGrid:A,snapToGrid:z}=t();d=(H==null?void 0:H.getBoundingClientRect())||null,h=!1,g=!1,p=P.sourceEvent,x===0&&F(P),a=Xo(P.sourceEvent,{transform:k,snapGrid:A,snapToGrid:z,containerBounds:d}),u=bn(P.sourceEvent,d)}).on("drag",P=>{const{autoPanOnNodeDrag:H,transform:x,snapGrid:k,snapToGrid:A,nodeDragThreshold:z,nodeLookup:V}=t(),B=Xo(P.sourceEvent,{transform:x,snapGrid:k,snapToGrid:A,containerBounds:d});if(p=P.sourceEvent,(P.sourceEvent.type==="touchmove"&&P.sourceEvent.touches.length>1||L&&!V.has(L))&&(h=!0),!h){if(!c&&H&&v&&(c=!0,D()),!v){const Y=bn(P.sourceEvent,d),K=Y.x-u.x,G=Y.y-u.y;Math.sqrt(K*K+G*G)>z&&F(P)}(a.x!==B.xSnapped||a.y!==B.ySnapped)&&l&&v&&(u=bn(P.sourceEvent,d),T(B))}}).on("end",P=>{if(!(!v||h)&&(c=!1,v=!1,cancelAnimationFrame(o),l.size>0)){const{nodeLookup:H,updateNodePositions:x,onNodeDragStop:k,onSelectionDragStop:A}=t();if(g&&(x(l,!1),g=!1),i||k||!L&&A){const[z,V]=Wo({nodeId:L,dragItems:l,nodeLookup:H,dragging:!1});i==null||i(P.sourceEvent,l,z,V),k==null||k(P.sourceEvent,z,V),L||A==null||A(P.sourceEvent,V)}}}).filter(P=>{const H=P.target;return!P.button&&(!E||!Eu(H,`.${E}`,I))&&(!N||Eu(H,N,I))});f.call(S)}function y(){f==null||f.on(".drag",null)}return{update:m,destroy:y}}function c0(e,t,n){const r=[],i={x:e.x-n,y:e.y-n,width:n*2,height:n*2};for(const a of t.values())wa(i,qi(a))>0&&r.push(a);return r}const u0=250;function d0(e,t,n,r){var l,c;let i=[],a=1/0;const o=c0(e,n,t+u0);for(const u of o){const d=[...((l=u.internals.handleBounds)==null?void 0:l.source)??[],...((c=u.internals.handleBounds)==null?void 0:c.target)??[]];for(const v of d){if(r.nodeId===v.nodeId&&r.type===v.type&&r.id===v.id)continue;const{x:f,y:h}=ti(u,v,v.position,!0),g=Math.sqrt(Math.pow(f-e.x,2)+Math.pow(h-e.y,2));g>t||(g<a?(i=[{...v,x:f,y:h}],a=g):g===a&&i.push({...v,x:f,y:h}))}}if(!i.length)return null;if(i.length>1){const u=r.type==="source"?"target":"source";return i.find(d=>d.type===u)??i[0]}return i[0]}function uv(e,t,n,r,i,a=!1){var u,d,v;const o=r.get(e);if(!o)return null;const l=i==="strict"?(u=o.internals.handleBounds)==null?void 0:u[t]:[...((d=o.internals.handleBounds)==null?void 0:d.source)??[],...((v=o.internals.handleBounds)==null?void 0:v.target)??[]],c=(n?l==null?void 0:l.find(f=>f.id===n):l==null?void 0:l[0])??null;return c&&a?{...c,...ti(o,c,c.position,!0)}:c}function dv(e,t){return e||(t!=null&&t.classList.contains("target")?"target":t!=null&&t.classList.contains("source")?"source":null)}function f0(e,t){let n=null;return t?n=!0:e&&!t&&(n=!1),n}const fv=()=>!0;function v0(e,{connectionMode:t,connectionRadius:n,handleId:r,nodeId:i,edgeUpdaterType:a,isTarget:o,domNode:l,nodeLookup:c,lib:u,autoPanOnConnect:d,flowId:v,panBy:f,cancelConnection:h,onConnectStart:g,onConnect:p,onConnectEnd:m,isValidConnection:y=fv,onReconnectEnd:E,updateConnection:N,getTransform:I,getFromHandle:C,autoPanSpeed:L,dragThreshold:q=1,handleDomNode:T}){const D=tv(e.target);let F=0,S;const{x:P,y:H}=bn(e),x=dv(a,T),k=l==null?void 0:l.getBoundingClientRect();let A=!1;if(!k||!x)return;const z=uv(i,x,r,c,t);if(!z)return;let V=bn(e,k),B=!1,Y=null,K=!1,G=null;function $(){if(!d||!k)return;const[de,Ee]=Qf(V,k,L);f({x:de,y:Ee}),F=requestAnimationFrame($)}const ee={...z,nodeId:i,type:x,position:z.position},X=c.get(i);let ae={inProgress:!0,isValid:null,from:ti(X,ee,Ce.Left,!0),fromHandle:ee,fromPosition:ee.position,fromNode:X,to:V,toHandle:null,toPosition:fu[ee.position],toNode:null,pointer:V};function se(){A=!0,N(ae),g==null||g(e,{nodeId:i,handleId:r,handleType:x})}q===0&&se();function ue(de){if(!A){const{x:He,y:ke}=bn(de),je=He-P,rt=ke-H;if(!(je*je+rt*rt>q*q))return;se()}if(!C()||!ee){ve(de);return}const Ee=I();V=bn(de,k),S=d0(Ga(V,Ee,!1,[1,1]),n,c,ee),B||($(),B=!0);const _e=vv(de,{handle:S,connectionMode:t,fromNodeId:i,fromHandleId:r,fromType:o?"target":"source",isValidConnection:y,doc:D,lib:u,flowId:v,nodeLookup:c});G=_e.handleDomNode,Y=_e.connection,K=f0(!!S,_e.isValid);const De=c.get(i),Me=De?ti(De,ee,Ce.Left,!0):ae.from,We={...ae,from:Me,isValid:K,to:_e.toHandle&&K?Bs({x:_e.toHandle.x,y:_e.toHandle.y},Ee):V,toHandle:_e.toHandle,toPosition:K&&_e.toHandle?_e.toHandle.position:fu[ee.position],toNode:_e.toHandle?c.get(_e.toHandle.nodeId):null,pointer:V};N(We),ae=We}function ve(de){if(!("touches"in de&&de.touches.length>0)){if(A){(S||G)&&Y&&K&&(p==null||p(Y));const{inProgress:Ee,..._e}=ae,De={..._e,toPosition:ae.toHandle?ae.toPosition:null};m==null||m(de,De),a&&(E==null||E(de,De))}h(),cancelAnimationFrame(F),B=!1,K=!1,Y=null,G=null,D.removeEventListener("mousemove",ue),D.removeEventListener("mouseup",ve),D.removeEventListener("touchmove",ue),D.removeEventListener("touchend",ve)}}D.addEventListener("mousemove",ue),D.addEventListener("mouseup",ve),D.addEventListener("touchmove",ue),D.addEventListener("touchend",ve)}function vv(e,{handle:t,connectionMode:n,fromNodeId:r,fromHandleId:i,fromType:a,doc:o,lib:l,flowId:c,isValidConnection:u=fv,nodeLookup:d}){const v=a==="target",f=t?o.querySelector(`.${l}-flow__handle[data-id="${c}-${t==null?void 0:t.nodeId}-${t==null?void 0:t.id}-${t==null?void 0:t.type}"]`):null,{x:h,y:g}=bn(e),p=o.elementFromPoint(h,g),m=p!=null&&p.classList.contains(`${l}-flow__handle`)?p:f,y={handleDomNode:m,isValid:!1,connection:null,toHandle:null};if(m){const E=dv(void 0,m),N=m.getAttribute("data-nodeid"),I=m.getAttribute("data-handleid"),C=m.classList.contains("connectable"),L=m.classList.contains("connectableend");if(!N||!E)return y;const q={source:v?N:r,sourceHandle:v?I:i,target:v?r:N,targetHandle:v?i:I};y.connection=q;const D=C&&L&&(n===Ri.Strict?v&&E==="source"||!v&&E==="target":N!==r||I!==i);y.isValid=D&&u(q),y.toHandle=uv(N,E,I,d,n,!0)}return y}const Su={onPointerDown:v0,isValid:vv};function h0({domNode:e,panZoom:t,getTransform:n,getViewScale:r}){const i=an(e);function a({translateExtent:l,width:c,height:u,zoomStep:d=1,pannable:v=!0,zoomable:f=!0,inversePan:h=!1}){const g=N=>{if(N.sourceEvent.type!=="wheel"||!t)return;const I=n(),C=N.sourceEvent.ctrlKey&&xa()?10:1,L=-N.sourceEvent.deltaY*(N.sourceEvent.deltaMode===1?.05:N.sourceEvent.deltaMode?1:.002)*d,q=I[2]*Math.pow(2,L*C);t.scaleTo(q)};let p=[0,0];const m=N=>{(N.sourceEvent.type==="mousedown"||N.sourceEvent.type==="touchstart")&&(p=[N.sourceEvent.clientX??N.sourceEvent.touches[0].clientX,N.sourceEvent.clientY??N.sourceEvent.touches[0].clientY])},y=N=>{const I=n();if(N.sourceEvent.type!=="mousemove"&&N.sourceEvent.type!=="touchmove"||!t)return;const C=[N.sourceEvent.clientX??N.sourceEvent.touches[0].clientX,N.sourceEvent.clientY??N.sourceEvent.touches[0].clientY],L=[C[0]-p[0],C[1]-p[1]];p=C;const q=r()*Math.max(I[2],Math.log(I[2]))*(h?-1:1),T={x:I[0]-L[0]*q,y:I[1]-L[1]*q},D=[[0,0],[c,u]];t.setViewportConstrained({x:T.x,y:T.y,zoom:I[2]},D,l)},E=Xf().on("start",m).on("zoom",v?y:null).on("zoom.wheel",f?g:null);i.call(E,{})}function o(){i.on("zoom",null)}return{update:a,destroy:o,pointer:gn}}const _o=e=>({x:e.x,y:e.y,zoom:e.k}),Go=({x:e,y:t,zoom:n})=>go.translate(e,t).scale(n),vi=(e,t)=>e.target.closest(`.${t}`),hv=(e,t)=>t===2&&Array.isArray(e)&&e.includes(2),g0=e=>((e*=2)<=1?e*e*e:(e-=2)*e*e+2)/2,Zo=(e,t=0,n=g0,r=()=>{})=>{const i=typeof t=="number"&&t>0;return i||r(),i?e.transition().duration(t).ease(n).on("end",r):e},gv=e=>{const t=e.ctrlKey&&xa()?10:1;return-e.deltaY*(e.deltaMode===1?.05:e.deltaMode?1:.002)*t};function m0({zoomPanValues:e,noWheelClassName:t,d3Selection:n,d3Zoom:r,panOnScrollMode:i,panOnScrollSpeed:a,zoomOnPinch:o,onPanZoomStart:l,onPanZoom:c,onPanZoomEnd:u}){return d=>{if(vi(d,t))return d.ctrlKey&&d.preventDefault(),!1;d.preventDefault(),d.stopImmediatePropagation();const v=n.property("__zoom").k||1;if(d.ctrlKey&&o){const m=gn(d),y=gv(d),E=v*Math.pow(2,y);r.scaleTo(n,E,m,d);return}const f=d.deltaMode===1?20:1;let h=i===_i.Vertical?0:d.deltaX*f,g=i===_i.Horizontal?0:d.deltaY*f;!xa()&&d.shiftKey&&i!==_i.Vertical&&(h=d.deltaY*f,g=0),r.translateBy(n,-(h/v)*a,-(g/v)*a,{internal:!0});const p=_o(n.property("__zoom"));clearTimeout(e.panScrollTimeout),e.isPanScrolling?(c==null||c(d,p),e.panScrollTimeout=setTimeout(()=>{u==null||u(d,p),e.isPanScrolling=!1},150)):(e.isPanScrolling=!0,l==null||l(d,p))}}function p0({noWheelClassName:e,preventScrolling:t,d3ZoomHandler:n}){return function(r,i){const a=r.type==="wheel",o=!t&&a&&!r.ctrlKey,l=vi(r,e);if(r.ctrlKey&&a&&l&&r.preventDefault(),o||l)return null;r.preventDefault(),n.call(this,r,i)}}function _0({zoomPanValues:e,onDraggingChange:t,onPanZoomStart:n}){return r=>{var a,o,l;if((a=r.sourceEvent)!=null&&a.internal)return;const i=_o(r.transform);e.mouseButton=((o=r.sourceEvent)==null?void 0:o.button)||0,e.isZoomingOrPanning=!0,e.prevViewport=i,((l=r.sourceEvent)==null?void 0:l.type)==="mousedown"&&t(!0),n&&(n==null||n(r.sourceEvent,i))}}function b0({zoomPanValues:e,panOnDrag:t,onPaneContextMenu:n,onTransformChange:r,onPanZoom:i}){return a=>{var o,l;e.usedRightMouseButton=!!(n&&hv(t,e.mouseButton??0)),(o=a.sourceEvent)!=null&&o.sync||r([a.transform.x,a.transform.y,a.transform.k]),i&&!((l=a.sourceEvent)!=null&&l.internal)&&(i==null||i(a.sourceEvent,_o(a.transform)))}}function y0({zoomPanValues:e,panOnDrag:t,panOnScroll:n,onDraggingChange:r,onPanZoomEnd:i,onPaneContextMenu:a}){return o=>{var l;if(!((l=o.sourceEvent)!=null&&l.internal)&&(e.isZoomingOrPanning=!1,a&&hv(t,e.mouseButton??0)&&!e.usedRightMouseButton&&o.sourceEvent&&a(o.sourceEvent),e.usedRightMouseButton=!1,r(!1),i)){const c=_o(o.transform);e.prevViewport=c,clearTimeout(e.timerId),e.timerId=setTimeout(()=>{i==null||i(o.sourceEvent,c)},n?150:0)}}}function w0({zoomActivationKeyPressed:e,zoomOnScroll:t,zoomOnPinch:n,panOnDrag:r,panOnScroll:i,zoomOnDoubleClick:a,userSelectionActive:o,noWheelClassName:l,noPanClassName:c,lib:u,connectionInProgress:d}){return v=>{var m;const f=e||t,h=n&&v.ctrlKey,g=v.type==="wheel";if(v.button===1&&v.type==="mousedown"&&(vi(v,`${u}-flow__node`)||vi(v,`${u}-flow__edge`)))return!0;if(!r&&!f&&!i&&!a&&!n||o||d&&!g||vi(v,l)&&g||vi(v,c)&&(!g||i&&g&&!e)||!n&&v.ctrlKey&&g)return!1;if(!n&&v.type==="touchstart"&&((m=v.touches)==null?void 0:m.length)>1)return v.preventDefault(),!1;if(!f&&!i&&!h&&g||!r&&(v.type==="mousedown"||v.type==="touchstart")||Array.isArray(r)&&!r.includes(v.button)&&v.type==="mousedown")return!1;const p=Array.isArray(r)&&r.includes(v.button)||!v.button||v.button<=1;return(!v.ctrlKey||g)&&p}}function x0({domNode:e,minZoom:t,maxZoom:n,translateExtent:r,viewport:i,onPanZoom:a,onPanZoomStart:o,onPanZoomEnd:l,onDraggingChange:c}){const u={isZoomingOrPanning:!1,usedRightMouseButton:!1,prevViewport:{},mouseButton:0,timerId:void 0,panScrollTimeout:void 0,isPanScrolling:!1},d=e.getBoundingClientRect(),v=Xf().scaleExtent([t,n]).translateExtent(r),f=an(e).call(v);E({x:i.x,y:i.y,zoom:ji(i.zoom,t,n)},[[0,0],[d.width,d.height]],r);const h=f.on("wheel.zoom"),g=f.on("dblclick.zoom");v.wheelDelta(gv);function p(S,P){return f?new Promise(H=>{v==null||v.interpolate((P==null?void 0:P.interpolate)==="linear"?da:ks).transform(Zo(f,P==null?void 0:P.duration,P==null?void 0:P.ease,()=>H(!0)),S)}):Promise.resolve(!1)}function m({noWheelClassName:S,noPanClassName:P,onPaneContextMenu:H,userSelectionActive:x,panOnScroll:k,panOnDrag:A,panOnScrollMode:z,panOnScrollSpeed:V,preventScrolling:B,zoomOnPinch:Y,zoomOnScroll:K,zoomOnDoubleClick:G,zoomActivationKeyPressed:$,lib:ee,onTransformChange:X,connectionInProgress:U,paneClickDistance:ae,selectionOnDrag:se}){x&&!u.isZoomingOrPanning&&y();const ue=k&&!$&&!x;v.clickDistance(se?1/0:!Jn(ae)||ae<0?0:ae);const ve=ue?m0({zoomPanValues:u,noWheelClassName:S,d3Selection:f,d3Zoom:v,panOnScrollMode:z,panOnScrollSpeed:V,zoomOnPinch:Y,onPanZoomStart:o,onPanZoom:a,onPanZoomEnd:l}):p0({noWheelClassName:S,preventScrolling:B,d3ZoomHandler:h});if(f.on("wheel.zoom",ve,{passive:!1}),!x){const Ee=_0({zoomPanValues:u,onDraggingChange:c,onPanZoomStart:o});v.on("start",Ee);const _e=b0({zoomPanValues:u,panOnDrag:A,onPaneContextMenu:!!H,onPanZoom:a,onTransformChange:X});v.on("zoom",_e);const De=y0({zoomPanValues:u,panOnDrag:A,panOnScroll:k,onPaneContextMenu:H,onPanZoomEnd:l,onDraggingChange:c});v.on("end",De)}const de=w0({zoomActivationKeyPressed:$,panOnDrag:A,zoomOnScroll:K,panOnScroll:k,zoomOnDoubleClick:G,zoomOnPinch:Y,userSelectionActive:x,noPanClassName:P,noWheelClassName:S,lib:ee,connectionInProgress:U});v.filter(de),G?f.on("dblclick.zoom",g):f.on("dblclick.zoom",null)}function y(){v.on("zoom",null)}async function E(S,P,H){const x=Go(S),k=v==null?void 0:v.constrain()(x,P,H);return k&&await p(k),new Promise(A=>A(k))}async function N(S,P){const H=Go(S);return await p(H,P),new Promise(x=>x(H))}function I(S){if(f){const P=Go(S),H=f.property("__zoom");(H.k!==S.zoom||H.x!==S.x||H.y!==S.y)&&(v==null||v.transform(f,P,null,{sync:!0}))}}function C(){const S=f?Yf(f.node()):{x:0,y:0,k:1};return{x:S.x,y:S.y,zoom:S.k}}function L(S,P){return f?new Promise(H=>{v==null||v.interpolate((P==null?void 0:P.interpolate)==="linear"?da:ks).scaleTo(Zo(f,P==null?void 0:P.duration,P==null?void 0:P.ease,()=>H(!0)),S)}):Promise.resolve(!1)}function q(S,P){return f?new Promise(H=>{v==null||v.interpolate((P==null?void 0:P.interpolate)==="linear"?da:ks).scaleBy(Zo(f,P==null?void 0:P.duration,P==null?void 0:P.ease,()=>H(!0)),S)}):Promise.resolve(!1)}function T(S){v==null||v.scaleExtent(S)}function D(S){v==null||v.translateExtent(S)}function F(S){const P=!Jn(S)||S<0?0:S;v==null||v.clickDistance(P)}return{update:m,destroy:y,setViewport:N,setViewportConstrained:E,getViewport:C,scaleTo:L,scaleBy:q,setScaleExtent:T,setTranslateExtent:D,syncViewport:I,setClickDistance:F}}var Cu;(function(e){e.Line="line",e.Handle="handle"})(Cu||(Cu={}));function xc(){const e={};return[t=>{if(t&&!Xh(e))throw new Error(t);return Wl(e)},t=>Gl(e,t)]}const[k0,E0]=xc(),[S0,C0]=xc(),[N0,I0]=xc();var P0=j("<div><!></div>");function Dt(e,t){he(t,!0);let n=fe(t,"id",3,null),r=fe(t,"type",3,"source"),i=fe(t,"position",19,()=>Ce.Top),a=fe(t,"isConnectableStart",3,!0),o=fe(t,"isConnectableEnd",3,!0),l=Ir(t,["$$slots","$$events","$$legacy","id","type","position","style","class","isConnectable","isConnectableStart","isConnectableEnd","isValidConnection","onconnect","ondisconnect","children"]);const c=k0("Handle must be used within a Custom Node component"),u=S0("Handle must be used within a Custom Node component");let d=R(()=>r()==="target"),v=R(()=>t.isConnectable!==void 0?t.isConnectable:u.value),f=or(),h=R(()=>f.ariaLabelConfig),g=null;bg(()=>{if(t.onconnect||t.ondisconnect){f.edges;let P=f.connectionLookup.get(`${c}-${r()}${n()?`-${n()}`:""}`);if(g&&!Ey(P,g)){const H=P??new Map;vu(g,H,t.ondisconnect),vu(H,g,t.onconnect)}g=new Map(P)}});let p=R(()=>{if(!f.connection.inProgress)return[!1,!1,!1,!1,null];const{fromHandle:P,toHandle:H,isValid:x}=f.connection,k=P&&P.nodeId===c&&P.type===r()&&P.id===n(),A=H&&H.nodeId===c&&H.type===r()&&H.id===n(),z=f.connectionMode===Ri.Strict?(P==null?void 0:P.type)!==r():c!==(P==null?void 0:P.nodeId)||n()!==(P==null?void 0:P.id);return[!0,k,A,z,A&&x]}),m=R(()=>Da(s(p),5)),y=R(()=>s(m)[0]),E=R(()=>s(m)[1]),N=R(()=>s(m)[2]),I=R(()=>s(m)[3]),C=R(()=>s(m)[4]);function L(P){var x;const H=f.onbeforeconnect?f.onbeforeconnect(P):P;H&&(f.addEdge(H),(x=f.onconnect)==null||x.call(f,P))}function q(P){const H=rv(P);P.currentTarget&&(H&&P.button===0||!H)&&Su.onPointerDown(P,{handleId:n(),nodeId:c,isTarget:s(d),connectionRadius:f.connectionRadius,domNode:f.domNode,nodeLookup:f.nodeLookup,connectionMode:f.connectionMode,lib:"svelte",autoPanOnConnect:f.autoPanOnConnect,autoPanSpeed:f.autoPanSpeed,flowId:f.flowId,isValidConnection:t.isValidConnection||((...x)=>{var k;return((k=f.isValidConnection)==null?void 0:k.call(f,...x))??!0}),updateConnection:f.updateConnection,cancelConnection:f.cancelConnection,panBy:f.panBy,onConnect:L,onConnectStart:f.onconnectstart,onConnectEnd:(...x)=>{var k;return(k=f.onconnectend)==null?void 0:k.call(f,...x)},getTransform:()=>[f.viewport.x,f.viewport.y,f.viewport.zoom],getFromHandle:()=>f.connection.fromHandle,dragThreshold:f.connectionDragThreshold,handleDomNode:P.currentTarget})}function T(P){var G,$;if(!c||!f.clickConnectStartHandle&&!a())return;if(!f.clickConnectStartHandle){(G=f.onclickconnectstart)==null||G.call(f,P,{nodeId:c,handleId:n(),handleType:r()}),f.clickConnectStartHandle={nodeId:c,type:r(),id:n()};return}const H=tv(P.target),x=t.isValidConnection??f.isValidConnection,{connectionMode:k,clickConnectStartHandle:A,flowId:z,nodeLookup:V}=f,{connection:B,isValid:Y}=Su.isValid(P,{handle:{nodeId:c,id:n(),type:r()},connectionMode:k,fromNodeId:A.nodeId,fromHandleId:A.id??null,fromType:A.type,isValidConnection:x,flowId:z,doc:H,lib:"svelte",nodeLookup:V});Y&&B&&L(B);const K=structuredClone(Oi(f.connection));delete K.inProgress,K.toPosition=K.toHandle?K.toHandle.position:null,($=f.onclickconnectend)==null||$.call(f,P,K),f.clickConnectStartHandle=null}var D=P0(),F=()=>{};Nr(D,()=>({"data-handleid":n(),"data-nodeid":c,"data-handlepos":i(),"data-id":`${f.flowId??""}-${c??""}-${n()??"null"??""}-${r()??""}`,class:["svelte-flow__handle",`svelte-flow__handle-${i()}`,f.noDragClass,f.noPanClass,i(),t.class],onmousedown:q,ontouchstart:q,onclick:f.clickConnect?T:void 0,onkeypress:F,style:t.style,role:"button","aria-label":s(h)["handle.ariaLabel"],tabindex:"-1",...l,[dr]:{valid:s(C),connectingto:s(N),connectingfrom:s(E),source:!s(d),target:s(d),connectablestart:a(),connectableend:o(),connectable:s(v),connectionindicator:s(v)&&(!s(y)||s(I))&&(s(y)||f.clickConnectStartHandle?o():a())}}));var S=b(D);At(S,()=>t.children??sr),O(e,D),ge()}var O0=j("<!> <!>",1);function mv(e,t){he(t,!0);let n=fe(t,"targetPosition",19,()=>Ce.Top),r=fe(t,"sourcePosition",19,()=>Ce.Bottom);var i=O0(),a=le(i);Dt(a,{type:"target",get position(){return n()}});var o=w(a),l=w(o);Dt(l,{type:"source",get position(){return r()}}),Q(()=>{var c;return W(o,` ${((c=t.data)==null?void 0:c.label)??""} `)}),O(e,i),ge()}var M0=j(" <!>",1);function T0(e,t){he(t,!0);let n=fe(t,"data",19,()=>({label:"Node"})),r=fe(t,"sourcePosition",19,()=>Ce.Bottom);var i=M0(),a=le(i),o=w(a);Dt(o,{type:"source",get position(){return r()}}),Q(()=>{var l;return W(a,`${((l=n())==null?void 0:l.label)??""} `)}),O(e,i),ge()}var A0=j(" <!>",1);function z0(e,t){he(t,!0);let n=fe(t,"data",19,()=>({label:"Node"})),r=fe(t,"targetPosition",19,()=>Ce.Top);var i=A0(),a=le(i),o=w(a);Dt(o,{type:"target",get position(){return r()}}),Q(()=>{var l;return W(a,`${((l=n())==null?void 0:l.label)??""} `)}),O(e,i),ge()}function D0(e,t){}function Uo(e,t,n){if(!n||!t)return;const r=n==="root"?t:t.querySelector(`.svelte-flow__${n}`);r&&r.appendChild(e)}function Qo(e,t){const n=R(or),r=R(()=>s(n).domNode);let i;return s(r)?Uo(e,s(r),t):i=Ld(()=>{Ae(()=>{Uo(e,s(r),t),i==null||i()})}),{async update(a){Uo(e,s(r),a)},destroy(){e.parentNode&&e.parentNode.removeChild(e),i==null||i()}}}function L0(){let e=J(typeof window>"u");if(s(e)){const t=Ld(()=>{Ae(()=>{_(e,!1),t==null||t()})})}return{get value(){return s(e)}}}const Nu=e=>Cy(e),R0=e=>Gf(e);function Vn(e){return e===void 0?void 0:`${e}px`}const Ks={ArrowUp:{x:0,y:-1},ArrowDown:{x:0,y:1},ArrowLeft:{x:-1,y:0},ArrowRight:{x:1,y:0}};var j0=j("<div><!></div>");function pv(e,t){he(t,!0);let n=fe(t,"x",3,0),r=fe(t,"y",3,0),i=fe(t,"selectEdgeOnClick",3,!1),a=fe(t,"transparent",3,!1),o=Ir(t,["$$slots","$$events","$$legacy","x","y","width","height","selectEdgeOnClick","transparent","class","children"]);const l=or(),c=N0("EdgeLabel must be used within a Custom Edge component");let u=R(()=>{var h;return(h=l.visible.edges.get(c))==null?void 0:h.zIndex});var d=j0(),v=()=>{i()&&c&&l.handleEdgeSelection(c)};Nr(d,h=>({class:["svelte-flow__edge-label",{transparent:a()},t.class],tabindex:"-1",onclick:v,...o,[Zn]:h}),[()=>({display:L0().value?"none":void 0,cursor:i()?"pointer":void 0,transform:`translate(-50%, -50%) translate(${n()??""}px,${r()??""}px)`,"pointer-events":"all",width:Vn(t.width),height:Vn(t.height),"z-index":s(u)})],void 0,void 0,"svelte-1wg91mu");var f=b(d);At(f,()=>t.children??sr),qt(d,(h,g)=>Qo==null?void 0:Qo(h,g),()=>"edge-labels"),O(e,d),ge()}var q0=wt("<path></path>"),V0=wt('<path fill="none"></path><!><!>',1);function Za(e,t){let n=fe(t,"interactionWidth",3,20),r=Ir(t,["$$slots","$$events","$$legacy","id","path","label","labelX","labelY","labelStyle","markerStart","markerEnd","style","interactionWidth","class"]);var i=V0(),a=le(i),o=w(a);{var l=d=>{var v=q0();Nr(v,()=>({d:t.path,"stroke-opacity":0,"stroke-width":n(),fill:"none",class:"svelte-flow__edge-interaction",...r})),O(d,v)};te(o,d=>{n()>0&&d(l)})}var c=w(o);{var u=d=>{pv(d,{get x(){return t.labelX},get y(){return t.labelY},get style(){return t.labelStyle},selectEdgeOnClick:!0,children:(v,f)=>{var h=Qd();Q(()=>W(h,t.label)),O(v,h)},$$slots:{default:!0}})};te(c,d=>{t.label&&d(u)})}Q(()=>{ce(a,"id",t.id),ce(a,"d",t.path),we(a,0,Cr(["svelte-flow__edge-path",t.class])),ce(a,"marker-start",t.markerStart),ce(a,"marker-end",t.markerEnd),nt(a,t.style)}),O(e,i)}function _v(e,t){he(t,!0);let n=R(()=>{var l;return iv({sourceX:t.sourceX,sourceY:t.sourceY,targetX:t.targetX,targetY:t.targetY,sourcePosition:t.sourcePosition,targetPosition:t.targetPosition,curvature:(l=t.pathOptions)==null?void 0:l.curvature})}),r=R(()=>Da(s(n),3)),i=R(()=>s(r)[0]),a=R(()=>s(r)[1]),o=R(()=>s(r)[2]);Za(e,{get id(){return t.id},get path(){return s(i)},get labelX(){return s(a)},get labelY(){return s(o)},get label(){return t.label},get labelStyle(){return t.labelStyle},get markerStart(){return t.markerStart},get markerEnd(){return t.markerEnd},get interactionWidth(){return t.interactionWidth},get style(){return t.style}}),ge()}function H0(e,t){he(t,!0);let n=R(()=>pc({sourceX:t.sourceX,sourceY:t.sourceY,targetX:t.targetX,targetY:t.targetY,sourcePosition:t.sourcePosition,targetPosition:t.targetPosition})),r=R(()=>Da(s(n),3)),i=R(()=>s(r)[0]),a=R(()=>s(r)[1]),o=R(()=>s(r)[2]);Za(e,{get path(){return s(i)},get labelX(){return s(a)},get labelY(){return s(o)},get label(){return t.label},get labelStyle(){return t.labelStyle},get markerStart(){return t.markerStart},get markerEnd(){return t.markerEnd},get interactionWidth(){return t.interactionWidth},get style(){return t.style}}),ge()}function F0(e,t){he(t,!0);let n=R(()=>sv({sourceX:t.sourceX,sourceY:t.sourceY,targetX:t.targetX,targetY:t.targetY})),r=R(()=>Da(s(n),3)),i=R(()=>s(r)[0]),a=R(()=>s(r)[1]),o=R(()=>s(r)[2]);Za(e,{get path(){return s(i)},get labelX(){return s(a)},get labelY(){return s(o)},get label(){return t.label},get labelStyle(){return t.labelStyle},get markerStart(){return t.markerStart},get markerEnd(){return t.markerEnd},get interactionWidth(){return t.interactionWidth},get style(){return t.style}}),ge()}function B0(e,t){he(t,!0);let n=R(()=>pc({sourceX:t.sourceX,sourceY:t.sourceY,targetX:t.targetX,targetY:t.targetY,sourcePosition:t.sourcePosition,targetPosition:t.targetPosition,borderRadius:0})),r=R(()=>Da(s(n),3)),i=R(()=>s(r)[0]),a=R(()=>s(r)[1]),o=R(()=>s(r)[2]);Za(e,{get path(){return s(i)},get labelX(){return s(a)},get labelY(){return s(o)},get label(){return t.label},get labelStyle(){return t.labelStyle},get markerStart(){return t.markerStart},get markerEnd(){return t.markerEnd},get interactionWidth(){return t.interactionWidth},get style(){return t.style}}),ge()}var Aa,za;class K0{constructor(t,n){re(this,Aa);re(this,za);Oe(this,Aa,t),Oe(this,za,wd(n))}get current(){return M(this,za).call(this),M(this,Aa).call(this)}}Aa=new WeakMap,za=new WeakMap;const Y0=/\(.+\)/,X0=new Set(["all","print","screen","and","or","not","only"]);class W0 extends K0{constructor(t,n){let r=Y0.test(t)||t.split(/[\s,]+/).some(a=>X0.has(a.trim()))?t:`(${t})`;const i=window.matchMedia(r);super(()=>i.matches,a=>wl(i,"change",a))}}function G0(e,t,n,r){const i=new Map;return gc(e,{x:0,y:0,width:n,height:r},t,!0).forEach(a=>{i.set(a.id,a)}),i}function Iu(e){const{edges:t,defaultEdgeOptions:n,nodeLookup:r,previousEdges:i,connectionMode:a,onerror:o,onlyRenderVisible:l,elevateEdgesOnSelect:c,zIndexMode:u}=e,d=new Map;for(const v of t){const f=r.get(v.source),h=r.get(v.target);if(!f||!h)continue;if(l){const{visibleNodes:m,transform:y,width:E,height:N}=e;if(Vy({sourceNode:f,targetNode:h,width:E,height:N,transform:y}))m.set(f.id,f),m.set(h.id,h);else continue}const g=i.get(v.id);if(g&&v===g.edge&&f==g.sourceNode&&h==g.targetNode){d.set(v.id,g);continue}const p=Wy({id:v.id,sourceNode:f,targetNode:h,sourceHandle:v.sourceHandle||null,targetHandle:v.targetHandle||null,connectionMode:a,onError:o});p&&d.set(v.id,{...n,...v,...p,zIndex:qy({selected:v.selected,zIndex:v.zIndex??n.zIndex,sourceNode:f,targetNode:h,elevateOnSelect:c,zIndexMode:u}),sourceNode:f,targetNode:h,edge:v})}return d}const bv={input:T0,output:z0,default:mv,group:D0},yv={straight:F0,smoothstep:H0,default:_v,step:B0};function Z0(e,t,n,r,i,a){if(t&&!n&&r&&i){const o=Xa(a,{filter:l=>!!((l.width||l.initialWidth)&&(l.height||l.initialHeight))});return mc(o,r,i,.5,2,.1)}else return n??{x:0,y:0,zoom:1}}function U0(e){var n,r,i,a,o,l,c,u,d,v,f,h,g,p,m,y,E,N,I,C,L,q,T,D,F,S,P,H,x,k,A,z,V,B,Y,K,G,$,ee,X,U,ae,se,ue,ve,de,Ee,_e,De,Me,We,He,ke,je,rt,Le,it,ct,xe,Se,ze,$e,et,ht,Ge,ot,Je,Fe,ye,Re,at,qe,xt,Nt,gt,Lt;class t{constructor(){re(this,n,R(()=>e.props.id??"1"));re(this,r,J(null));re(this,i,J(null));re(this,a,J(e.width??0));re(this,o,J(e.height??0));re(this,l,J(e.props.zIndexMode??"basic"));re(this,c,R(()=>{var kt;const{nodesInitialized:Z}=$y(e.nodes,this.nodeLookup,this.parentLookup,{nodeExtent:this.nodeExtent,nodeOrigin:this.nodeOrigin,elevateNodesOnSelect:e.props.elevateNodesOnSelect??!0,checkEquality:!0,zIndexMode:this.zIndexMode});return this.fitViewQueued&&Z&&((kt=this.fitViewOptions)!=null&&kt.duration?this.resolveFitView():queueMicrotask(()=>{this.resolveFitView()})),Z}));re(this,u,R(()=>this.panZoom!==null));re(this,d,R(()=>(a0(this.connectionLookup,this.edgeLookup,e.edges),e.edges)));Ze(this,"_prevSelectedNodes",[]);Ze(this,"_prevSelectedNodeIds",new Set);re(this,v,R(()=>{const Z=this._prevSelectedNodeIds.size,kt=new Set,Xt=this.nodes.filter(It=>(It.selected&&(kt.add(It.id),this._prevSelectedNodeIds.delete(It.id)),It.selected));return(Z!==kt.size||this._prevSelectedNodeIds.size>0)&&(this._prevSelectedNodes=Xt),this._prevSelectedNodeIds=kt,this._prevSelectedNodes}));Ze(this,"_prevSelectedEdges",[]);Ze(this,"_prevSelectedEdgeIds",new Set);re(this,f,R(()=>{const Z=this._prevSelectedEdgeIds.size,kt=new Set,Xt=this.edges.filter(It=>(It.selected&&(kt.add(It.id),this._prevSelectedEdgeIds.delete(It.id)),It.selected));return(Z!==kt.size||this._prevSelectedEdgeIds.size>0)&&(this._prevSelectedEdges=Xt),this._prevSelectedEdgeIds=kt,this._prevSelectedEdges}));Ze(this,"selectionChangeHandlers",new Map);Ze(this,"nodeLookup",new Map);Ze(this,"parentLookup",new Map);Ze(this,"connectionLookup",new Map);Ze(this,"edgeLookup",new Map);Ze(this,"_prevVisibleEdges",new Map);re(this,h,R(()=>{const{nodes:Z,_edges:kt,_prevVisibleEdges:Xt,nodeLookup:It,connectionMode:Tr,onerror:Bn,onlyRenderVisibleElements:lr,defaultEdgeOptions:Jt,zIndexMode:cr}=this;let mt,En;const Ar={edges:kt,defaultEdgeOptions:Jt,previousEdges:Xt,nodeLookup:It,connectionMode:Tr,elevateEdgesOnSelect:e.props.elevateEdgesOnSelect??!0,zIndexMode:cr,onerror:Bn};if(lr){const{viewport:Gi,width:Qa,height:Ja}=this,oe=[Gi.x,Gi.y,Gi.zoom];mt=G0(It,oe,Qa,Ja),En=Iu({...Ar,onlyRenderVisible:!0,visibleNodes:mt,transform:oe,width:Qa,height:Ja})}else mt=this.nodeLookup,En=Iu(Ar);return{nodes:mt,edges:En}}));re(this,g,R(()=>e.props.nodesDraggable??!0));re(this,p,R(()=>e.props.nodesConnectable??!0));re(this,m,R(()=>e.props.elementsSelectable??!0));re(this,y,R(()=>e.props.nodesFocusable??!0));re(this,E,R(()=>e.props.edgesFocusable??!0));re(this,N,R(()=>e.props.disableKeyboardA11y??!1));re(this,I,R(()=>e.props.minZoom??.5));re(this,C,R(()=>e.props.maxZoom??2));re(this,L,R(()=>e.props.nodeOrigin??[0,0]));re(this,q,R(()=>e.props.nodeExtent??Rl));re(this,T,R(()=>e.props.translateExtent??Rl));re(this,D,R(()=>e.props.defaultEdgeOptions??{}));re(this,F,R(()=>e.props.nodeDragThreshold??1));re(this,S,R(()=>e.props.autoPanOnNodeDrag??!0));re(this,P,R(()=>e.props.autoPanOnConnect??!0));re(this,H,R(()=>e.props.autoPanOnNodeFocus??!0));re(this,x,R(()=>e.props.autoPanSpeed??15));re(this,k,R(()=>e.props.connectionDragThreshold??1));Ze(this,"fitViewQueued",e.props.fitView??!1);Ze(this,"fitViewOptions",e.props.fitViewOptions);Ze(this,"fitViewResolver",null);re(this,A,R(()=>e.props.snapGrid??null));re(this,z,J(!1));re(this,V,J(null));re(this,B,J(!1));re(this,Y,J(!1));re(this,K,J(!1));re(this,G,J(!1));re(this,$,J(!1));re(this,ee,J(null));re(this,X,J(""));re(this,U,R(()=>e.props.selectionMode??Hs.Partial));re(this,ae,R(()=>({...bv,...e.props.nodeTypes})));re(this,se,R(()=>({...yv,...e.props.edgeTypes})));re(this,ue,R(()=>e.props.noPanClass??"nopan"));re(this,ve,R(()=>e.props.noDragClass??"nodrag"));re(this,de,R(()=>e.props.noWheelClass??"nowheel"));re(this,Ee,R(()=>Ly(e.props.ariaLabelConfig)));re(this,_e,J(Z0(this.nodesInitialized,e.props.fitView,e.props.initialViewport,this.width,this.height,this.nodeLookup)));re(this,De,J(jl));re(this,Me,R(()=>this._connection.inProgress?{...this._connection,to:Ga(this._connection.to,[this.viewport.x,this.viewport.y,this.viewport.zoom])}:this._connection));re(this,We,R(()=>e.props.connectionMode??Ri.Strict));re(this,He,R(()=>e.props.connectionRadius??20));re(this,ke,R(()=>e.props.isValidConnection??(()=>!0)));re(this,je,R(()=>e.props.selectNodesOnDrag??!0));re(this,rt,R(()=>e.props.defaultMarkerColor===void 0?"#b1b1b7":e.props.defaultMarkerColor));re(this,Le,R(()=>Gy(e.edges,{defaultColor:this.defaultMarkerColor,id:this.flowId,defaultMarkerStart:this.defaultEdgeOptions.markerStart,defaultMarkerEnd:this.defaultEdgeOptions.markerEnd})));re(this,it,R(()=>e.props.onlyRenderVisibleElements??!1));re(this,ct,R(()=>e.props.onflowerror??Ty));re(this,xe,R(()=>e.props.ondelete));re(this,Se,R(()=>e.props.onbeforedelete));re(this,ze,R(()=>e.props.onbeforeconnect));re(this,$e,R(()=>e.props.onconnect));re(this,et,R(()=>e.props.onconnectstart));re(this,ht,R(()=>e.props.onconnectend));re(this,Ge,R(()=>e.props.onbeforereconnect));re(this,ot,R(()=>e.props.onreconnect));re(this,Je,R(()=>e.props.onreconnectstart));re(this,Fe,R(()=>e.props.onreconnectend));re(this,ye,R(()=>e.props.clickConnect??!0));re(this,Re,R(()=>e.props.onclickconnectstart));re(this,at,R(()=>e.props.onclickconnectend));re(this,qe,J(null));re(this,xt,R(()=>e.props.onselectiondrag));re(this,Nt,R(()=>e.props.onselectiondragstart));re(this,gt,R(()=>e.props.onselectiondragstop));Ze(this,"resolveFitView",async()=>{var Z;this.panZoom&&(await Oy({nodes:this.nodeLookup,width:this.width,height:this.height,panZoom:this.panZoom,minZoom:this.minZoom,maxZoom:this.maxZoom},this.fitViewOptions),(Z=this.fitViewResolver)==null||Z.resolve(!0),this.fitViewQueued=!1,this.fitViewOptions=void 0,this.fitViewResolver=null)});Ze(this,"_prefersDark",new W0("(prefers-color-scheme: dark)",e.props.colorModeSSR==="dark"));re(this,Lt,R(()=>e.props.colorMode==="system"?this._prefersDark.current?"dark":"light":e.props.colorMode??"light"))}get flowId(){return s(M(this,n))}set flowId(Z){_(M(this,n),Z)}get domNode(){return s(M(this,r))}set domNode(Z){_(M(this,r),Z)}get panZoom(){return s(M(this,i))}set panZoom(Z){_(M(this,i),Z)}get width(){return s(M(this,a))}set width(Z){_(M(this,a),Z)}get height(){return s(M(this,o))}set height(Z){_(M(this,o),Z)}get zIndexMode(){return s(M(this,l))}set zIndexMode(Z){_(M(this,l),Z)}get nodesInitialized(){return s(M(this,c))}set nodesInitialized(Z){_(M(this,c),Z)}get viewportInitialized(){return s(M(this,u))}set viewportInitialized(Z){_(M(this,u),Z)}get _edges(){return s(M(this,d))}set _edges(Z){_(M(this,d),Z)}get nodes(){return this.nodesInitialized,e.nodes}set nodes(Z){e.nodes=Z}get edges(){return this._edges}set edges(Z){e.edges=Z}get selectedNodes(){return s(M(this,v))}set selectedNodes(Z){_(M(this,v),Z)}get selectedEdges(){return s(M(this,f))}set selectedEdges(Z){_(M(this,f),Z)}get visible(){return s(M(this,h))}set visible(Z){_(M(this,h),Z)}get nodesDraggable(){return s(M(this,g))}set nodesDraggable(Z){_(M(this,g),Z)}get nodesConnectable(){return s(M(this,p))}set nodesConnectable(Z){_(M(this,p),Z)}get elementsSelectable(){return s(M(this,m))}set elementsSelectable(Z){_(M(this,m),Z)}get nodesFocusable(){return s(M(this,y))}set nodesFocusable(Z){_(M(this,y),Z)}get edgesFocusable(){return s(M(this,E))}set edgesFocusable(Z){_(M(this,E),Z)}get disableKeyboardA11y(){return s(M(this,N))}set disableKeyboardA11y(Z){_(M(this,N),Z)}get minZoom(){return s(M(this,I))}set minZoom(Z){_(M(this,I),Z)}get maxZoom(){return s(M(this,C))}set maxZoom(Z){_(M(this,C),Z)}get nodeOrigin(){return s(M(this,L))}set nodeOrigin(Z){_(M(this,L),Z)}get nodeExtent(){return s(M(this,q))}set nodeExtent(Z){_(M(this,q),Z)}get translateExtent(){return s(M(this,T))}set translateExtent(Z){_(M(this,T),Z)}get defaultEdgeOptions(){return s(M(this,D))}set defaultEdgeOptions(Z){_(M(this,D),Z)}get nodeDragThreshold(){return s(M(this,F))}set nodeDragThreshold(Z){_(M(this,F),Z)}get autoPanOnNodeDrag(){return s(M(this,S))}set autoPanOnNodeDrag(Z){_(M(this,S),Z)}get autoPanOnConnect(){return s(M(this,P))}set autoPanOnConnect(Z){_(M(this,P),Z)}get autoPanOnNodeFocus(){return s(M(this,H))}set autoPanOnNodeFocus(Z){_(M(this,H),Z)}get autoPanSpeed(){return s(M(this,x))}set autoPanSpeed(Z){_(M(this,x),Z)}get connectionDragThreshold(){return s(M(this,k))}set connectionDragThreshold(Z){_(M(this,k),Z)}get snapGrid(){return s(M(this,A))}set snapGrid(Z){_(M(this,A),Z)}get dragging(){return s(M(this,z))}set dragging(Z){_(M(this,z),Z)}get selectionRect(){return s(M(this,V))}set selectionRect(Z){_(M(this,V),Z)}get selectionKeyPressed(){return s(M(this,B))}set selectionKeyPressed(Z){_(M(this,B),Z)}get multiselectionKeyPressed(){return s(M(this,Y))}set multiselectionKeyPressed(Z){_(M(this,Y),Z)}get deleteKeyPressed(){return s(M(this,K))}set deleteKeyPressed(Z){_(M(this,K),Z)}get panActivationKeyPressed(){return s(M(this,G))}set panActivationKeyPressed(Z){_(M(this,G),Z)}get zoomActivationKeyPressed(){return s(M(this,$))}set zoomActivationKeyPressed(Z){_(M(this,$),Z)}get selectionRectMode(){return s(M(this,ee))}set selectionRectMode(Z){_(M(this,ee),Z)}get ariaLiveMessage(){return s(M(this,X))}set ariaLiveMessage(Z){_(M(this,X),Z)}get selectionMode(){return s(M(this,U))}set selectionMode(Z){_(M(this,U),Z)}get nodeTypes(){return s(M(this,ae))}set nodeTypes(Z){_(M(this,ae),Z)}get edgeTypes(){return s(M(this,se))}set edgeTypes(Z){_(M(this,se),Z)}get noPanClass(){return s(M(this,ue))}set noPanClass(Z){_(M(this,ue),Z)}get noDragClass(){return s(M(this,ve))}set noDragClass(Z){_(M(this,ve),Z)}get noWheelClass(){return s(M(this,de))}set noWheelClass(Z){_(M(this,de),Z)}get ariaLabelConfig(){return s(M(this,Ee))}set ariaLabelConfig(Z){_(M(this,Ee),Z)}get _viewport(){return s(M(this,_e))}set _viewport(Z){_(M(this,_e),Z)}get viewport(){return e.viewport??this._viewport}set viewport(Z){e.viewport&&(e.viewport=Z),this._viewport=Z}get _connection(){return s(M(this,De))}set _connection(Z){_(M(this,De),Z)}get connection(){return s(M(this,Me))}set connection(Z){_(M(this,Me),Z)}get connectionMode(){return s(M(this,We))}set connectionMode(Z){_(M(this,We),Z)}get connectionRadius(){return s(M(this,He))}set connectionRadius(Z){_(M(this,He),Z)}get isValidConnection(){return s(M(this,ke))}set isValidConnection(Z){_(M(this,ke),Z)}get selectNodesOnDrag(){return s(M(this,je))}set selectNodesOnDrag(Z){_(M(this,je),Z)}get defaultMarkerColor(){return s(M(this,rt))}set defaultMarkerColor(Z){_(M(this,rt),Z)}get markers(){return s(M(this,Le))}set markers(Z){_(M(this,Le),Z)}get onlyRenderVisibleElements(){return s(M(this,it))}set onlyRenderVisibleElements(Z){_(M(this,it),Z)}get onerror(){return s(M(this,ct))}set onerror(Z){_(M(this,ct),Z)}get ondelete(){return s(M(this,xe))}set ondelete(Z){_(M(this,xe),Z)}get onbeforedelete(){return s(M(this,Se))}set onbeforedelete(Z){_(M(this,Se),Z)}get onbeforeconnect(){return s(M(this,ze))}set onbeforeconnect(Z){_(M(this,ze),Z)}get onconnect(){return s(M(this,$e))}set onconnect(Z){_(M(this,$e),Z)}get onconnectstart(){return s(M(this,et))}set onconnectstart(Z){_(M(this,et),Z)}get onconnectend(){return s(M(this,ht))}set onconnectend(Z){_(M(this,ht),Z)}get onbeforereconnect(){return s(M(this,Ge))}set onbeforereconnect(Z){_(M(this,Ge),Z)}get onreconnect(){return s(M(this,ot))}set onreconnect(Z){_(M(this,ot),Z)}get onreconnectstart(){return s(M(this,Je))}set onreconnectstart(Z){_(M(this,Je),Z)}get onreconnectend(){return s(M(this,Fe))}set onreconnectend(Z){_(M(this,Fe),Z)}get clickConnect(){return s(M(this,ye))}set clickConnect(Z){_(M(this,ye),Z)}get onclickconnectstart(){return s(M(this,Re))}set onclickconnectstart(Z){_(M(this,Re),Z)}get onclickconnectend(){return s(M(this,at))}set onclickconnectend(Z){_(M(this,at),Z)}get clickConnectStartHandle(){return s(M(this,qe))}set clickConnectStartHandle(Z){_(M(this,qe),Z)}get onselectiondrag(){return s(M(this,xt))}set onselectiondrag(Z){_(M(this,xt),Z)}get onselectiondragstart(){return s(M(this,Nt))}set onselectiondragstart(Z){_(M(this,Nt),Z)}get onselectiondragstop(){return s(M(this,gt))}set onselectiondragstop(Z){_(M(this,gt),Z)}get colorMode(){return s(M(this,Lt))}set colorMode(Z){_(M(this,Lt),Z)}resetStoreValues(){this.dragging=!1,this.selectionRect=null,this.selectionRectMode=null,this.selectionKeyPressed=!1,this.multiselectionKeyPressed=!1,this.deleteKeyPressed=!1,this.panActivationKeyPressed=!1,this.zoomActivationKeyPressed=!1,this._connection=jl,this.clickConnectStartHandle=null,this.viewport=e.props.initialViewport??{x:0,y:0,zoom:1},this.ariaLiveMessage=""}}return n=new WeakMap,r=new WeakMap,i=new WeakMap,a=new WeakMap,o=new WeakMap,l=new WeakMap,c=new WeakMap,u=new WeakMap,d=new WeakMap,v=new WeakMap,f=new WeakMap,h=new WeakMap,g=new WeakMap,p=new WeakMap,m=new WeakMap,y=new WeakMap,E=new WeakMap,N=new WeakMap,I=new WeakMap,C=new WeakMap,L=new WeakMap,q=new WeakMap,T=new WeakMap,D=new WeakMap,F=new WeakMap,S=new WeakMap,P=new WeakMap,H=new WeakMap,x=new WeakMap,k=new WeakMap,A=new WeakMap,z=new WeakMap,V=new WeakMap,B=new WeakMap,Y=new WeakMap,K=new WeakMap,G=new WeakMap,$=new WeakMap,ee=new WeakMap,X=new WeakMap,U=new WeakMap,ae=new WeakMap,se=new WeakMap,ue=new WeakMap,ve=new WeakMap,de=new WeakMap,Ee=new WeakMap,_e=new WeakMap,De=new WeakMap,Me=new WeakMap,We=new WeakMap,He=new WeakMap,ke=new WeakMap,je=new WeakMap,rt=new WeakMap,Le=new WeakMap,it=new WeakMap,ct=new WeakMap,xe=new WeakMap,Se=new WeakMap,ze=new WeakMap,$e=new WeakMap,et=new WeakMap,ht=new WeakMap,Ge=new WeakMap,ot=new WeakMap,Je=new WeakMap,Fe=new WeakMap,ye=new WeakMap,Re=new WeakMap,at=new WeakMap,qe=new WeakMap,xt=new WeakMap,Nt=new WeakMap,gt=new WeakMap,Lt=new WeakMap,new t}function or(){const e=Wl(Ys);if(!e)throw new Error("To call useStore outside of <SvelteFlow /> you need to wrap your component in a <SvelteFlowProvider />");return e.getStore()}const Ys=Symbol();function wv(e){const t=U0(e);function n(S){t.nodeTypes={...bv,...S}}function r(S){t.edgeTypes={...yv,...S}}function i(S){t.edges=By(S,t.edges)}const a=(S,P=!1)=>{t.nodes=t.nodes.map(H=>{if(t.connection.inProgress&&t.connection.fromNode.id===H.id){const k=t.nodeLookup.get(H.id);k&&(t.connection={...t.connection,from:ti(k,t.connection.fromHandle,Ce.Left,!0)})}const x=S.get(H.id);return x?{...H,position:x.position,dragging:P}:H})};function o(S){var k,A,z;const{changes:P,updatedInternals:H}=r0(S,t.nodeLookup,t.parentLookup,t.domNode,t.nodeOrigin,t.nodeExtent,t.zIndexMode);if(!H)return;Qy(t.nodeLookup,t.parentLookup,{nodeOrigin:t.nodeOrigin,nodeExtent:t.nodeExtent,zIndexMode:t.zIndexMode}),t.fitViewQueued&&t.resolveFitView();const x=new Map;for(const V of P){const B=(k=t.nodeLookup.get(V.id))==null?void 0:k.internals.userNode;if(!B)continue;const Y={...B};switch(V.type){case"dimensions":{const K={...Y.measured,...V.dimensions};V.setAttributes&&(Y.width=((A=V.dimensions)==null?void 0:A.width)??Y.width,Y.height=((z=V.dimensions)==null?void 0:z.height)??Y.height),Y.measured=K;break}case"position":Y.position=V.position??Y.position;break}x.set(V.id,Y)}t.nodes=t.nodes.map(V=>x.get(V.id)??V)}function l(S){const P=t.fitViewResolver??Promise.withResolvers();return t.fitViewQueued=!0,t.fitViewOptions=S,t.fitViewResolver=P,t.nodes=[...t.nodes],P.promise}async function c(S,P,H){const x=typeof(H==null?void 0:H.zoom)<"u"?H.zoom:t.maxZoom,k=t.panZoom;return k?(await k.setViewport({x:t.width/2-S*x,y:t.height/2-P*x,zoom:x},{duration:H==null?void 0:H.duration,ease:H==null?void 0:H.ease,interpolate:H==null?void 0:H.interpolate}),Promise.resolve(!0)):Promise.resolve(!1)}function u(S,P){const H=t.panZoom;return H?H.scaleBy(S,P):Promise.resolve(!1)}function d(S){return u(1.2,S)}function v(S){return u(1/1.2,S)}function f(S){const P=t.panZoom;P&&(P.setScaleExtent([S,t.maxZoom]),t.minZoom=S)}function h(S){const P=t.panZoom;P&&(P.setScaleExtent([t.minZoom,S]),t.maxZoom=S)}function g(S){const P=t.panZoom;P&&(P.setTranslateExtent(S),t.translateExtent=S)}function p(S,P=null){let H=!1;const x=S.map(k=>(P?P.has(k.id):!0)&&k.selected?(H=!0,{...k,selected:!1}):k);return[H,x]}function m(S){const P=S!=null&&S.nodes?new Set(S.nodes.map(V=>V.id)):null,[H,x]=p(t.nodes,P);H&&(t.nodes=x);const k=S!=null&&S.edges?new Set(S.edges.map(V=>V.id)):null,[A,z]=p(t.edges,k);A&&(t.edges=z)}function y(S){const P=t.multiselectionKeyPressed;t.nodes=t.nodes.map(H=>{const x=S.includes(H.id),k=P&&H.selected||x;return!!H.selected!==k?{...H,selected:k}:H}),P||m({nodes:[]})}function E(S){const P=t.multiselectionKeyPressed;t.edges=t.edges.map(H=>{const x=S.includes(H.id),k=P&&H.selected||x;return!!H.selected!==k?{...H,selected:k}:H}),P||m({edges:[]})}function N(S,P,H){const x=t.nodeLookup.get(S);if(!x){console.warn("012",ya.error012(S));return}t.selectionRect=null,t.selectionRectMode=null,x.selected?(P||x.selected&&t.multiselectionKeyPressed)&&(m({nodes:[x],edges:[]}),requestAnimationFrame(()=>H==null?void 0:H.blur())):y([S])}function I(S){const P=t.edgeLookup.get(S);if(!P){console.warn("012",ya.error012(S));return}(P.selectable||t.elementsSelectable&&typeof P.selectable>"u")&&(t.selectionRect=null,t.selectionRectMode=null,P.selected?P.selected&&t.multiselectionKeyPressed&&m({nodes:[],edges:[P]}):E([S]))}function C(S,P){const{nodeExtent:H,snapGrid:x,nodeOrigin:k,nodeLookup:A,nodesDraggable:z,onerror:V}=t,B=new Map,Y=(x==null?void 0:x[0])??5,K=(x==null?void 0:x[1])??5,G=S.x*Y*P,$=S.y*K*P;for(const ee of A.values()){if(!(ee.selected&&(ee.draggable||z&&typeof ee.draggable>"u")))continue;let U={x:ee.internals.positionAbsolute.x+G,y:ee.internals.positionAbsolute.y+$};x&&(U=Wa(U,x));const{position:ae,positionAbsolute:se}=Zf({nodeId:ee.id,nextPosition:U,nodeLookup:A,nodeExtent:H,nodeOrigin:k,onError:V});ee.position=ae,ee.internals.positionAbsolute=se,B.set(ee.id,ee)}a(B)}function L(S){return i0({delta:S,panZoom:t.panZoom,transform:[t.viewport.x,t.viewport.y,t.viewport.zoom],translateExtent:t.translateExtent,width:t.width,height:t.height})}const q=S=>{t._connection={...S}};function T(){t._connection=jl}function D(){t.resetStoreValues(),m()}return Object.assign(t,{setNodeTypes:n,setEdgeTypes:r,addEdge:i,updateNodePositions:a,updateNodeInternals:o,zoomIn:d,zoomOut:v,fitView:l,setCenter:c,setMinZoom:f,setMaxZoom:h,setTranslateExtent:g,unselectNodesAndEdges:m,addSelectedNodes:y,addSelectedEdges:E,handleNodeSelection:N,handleEdgeSelection:I,moveSelectedNodes:C,panBy:L,updateConnection:q,cancelConnection:T,reset:D})}function Jo(e,t){const{minZoom:n,maxZoom:r,initialViewport:i,onPanZoomStart:a,onPanZoom:o,onPanZoomEnd:l,translateExtent:c,setPanZoomInstance:u,onDraggingChange:d,onTransformChange:v}=t,f=x0({domNode:e,minZoom:n,maxZoom:r,translateExtent:c,viewport:i,onPanZoom:o,onPanZoomStart:a,onPanZoomEnd:l,onDraggingChange:d}),h=f.getViewport();return(i.x!==h.x||i.y!==h.y||i.zoom!==h.zoom)&&v([h.x,h.y,h.zoom]),u(f),f.update(t),{update(g){f.update(g)}}}var Q0=j('<div class="svelte-flow__zoom svelte-flow__container"><!></div>');function J0(e,t){he(t,!0);let n=fe(t,"store",15),r=R(()=>n().panActivationKeyPressed||t.panOnDrag),i=R(()=>n().panActivationKeyPressed||t.panOnScroll);const{viewport:a}=n();let o=!1;Ae(()=>{var u;!o&&n().viewportInitialized&&((u=t.oninit)==null||u.call(t),o=!0)});var l=Q0(),c=b(l);At(c,()=>t.children),qt(l,(u,d)=>Jo==null?void 0:Jo(u,d),()=>({viewport:n().viewport,minZoom:n().minZoom,maxZoom:n().maxZoom,initialViewport:a,onDraggingChange:u=>{n(n().dragging=u,!0)},setPanZoomInstance:u=>{n(n().panZoom=u,!0)},onPanZoomStart:t.onmovestart,onPanZoom:t.onmove,onPanZoomEnd:t.onmoveend,zoomOnScroll:t.zoomOnScroll,zoomOnDoubleClick:t.zoomOnDoubleClick,zoomOnPinch:t.zoomOnPinch,panOnScroll:s(i),panOnDrag:s(r),panOnScrollSpeed:t.panOnScrollSpeed,panOnScrollMode:t.panOnScrollMode,zoomActivationKeyPressed:n().zoomActivationKeyPressed,preventScrolling:typeof t.preventScrolling=="boolean"?t.preventScrolling:!0,noPanClassName:n().noPanClass,noWheelClassName:n().noWheelClass,userSelectionActive:!!n().selectionRect,translateExtent:n().translateExtent,lib:"svelte",paneClickDistance:t.paneClickDistance,selectionOnDrag:t.selectionOnDrag,onTransformChange:u=>{n(n().viewport={x:u[0],y:u[1],zoom:u[2]},!0)},connectionInProgress:n().connection.inProgress})),O(e,l),ge()}function Pu(e,t){return n=>{n.target===t&&(e==null||e(n))}}function Ou(e){return t=>{const n=e.has(t.id);return!!t.selected!==n?{...t,selected:n}:t}}function Mu(e,t){if(e.size!==t.size)return!1;for(const n of e)if(!t.has(n))return!1;return!0}var $0=j("<div><!></div>");function ew(e,t){he(t,!0);let n=fe(t,"store",15),r=fe(t,"panOnDrag",3,!0),i=fe(t,"paneClickDistance",3,1),a,o=null,l=new Set,c=new Set,u=R(()=>n().panActivationKeyPressed||r()),d=R(()=>n().selectionKeyPressed||!!n().selectionRect||t.selectionOnDrag&&s(u)!==!0),v=R(()=>n().elementsSelectable&&(s(d)||n().selectionRectMode==="user")),f=!1;function h(T){var x,k;if(o=a==null?void 0:a.getBoundingClientRect(),!o)return;const D=T.target===a,F=!D&&!!T.target.closest(".nokey"),S=t.selectionOnDrag&&D||n().selectionKeyPressed;if(F||!s(d)||!S||T.button!==0||!T.isPrimary)return;(k=(x=T.target)==null?void 0:x.setPointerCapture)==null||k.call(x,T.pointerId),f=!1;const{x:P,y:H}=bn(T,o);n(n().selectionRect={width:0,height:0,startX:P,startY:H,x:P,y:H},!0),D||(T.stopPropagation(),T.preventDefault())}function g(T){var A;if(!s(d)||!o||!n().selectionRect)return;const D=bn(T,o),{startX:F=0,startY:S=0}=n().selectionRect;if(!f){const z=n().selectionKeyPressed?0:i();if(Math.hypot(D.x-F,D.y-S)<=z)return;n().unselectNodesAndEdges(),(A=t.onselectionstart)==null||A.call(t,T)}f=!0;const P={...n().selectionRect,x:D.x<F?D.x:F,y:D.y<S?D.y:S,width:Math.abs(D.x-F),height:Math.abs(D.y-S)},H=l,x=c;l=new Set(gc(n().nodeLookup,P,[n().viewport.x,n().viewport.y,n().viewport.zoom],n().selectionMode===Hs.Partial,!0).map(z=>z.id));const k=n().defaultEdgeOptions.selectable??!0;c=new Set;for(const z of l){const V=n().connectionLookup.get(z);if(V)for(const{edgeId:B}of V.values()){const Y=n().edgeLookup.get(B);Y&&(Y.selectable??k)&&c.add(B)}}Mu(H,l)||n(n().nodes=n().nodes.map(Ou(l)),!0),Mu(x,c)||n(n().edges=n().edges.map(Ou(c)),!0),n(n().selectionRectMode="user",!0),n(n().selectionRect=P,!0)}function p(T){var D,F,S;T.button===0&&((F=(D=T.target)==null?void 0:D.releasePointerCapture)==null||F.call(D,T.pointerId),!f&&T.target===a&&(E==null||E(T)),n(n().selectionRect=null,!0),f&&n(n().selectionRectMode=l.size>0?"nodes":null,!0),f&&((S=t.onselectionend)==null||S.call(t,T)))}const m=T=>{var D;if(Array.isArray(s(u))&&s(u).includes(2)){T.preventDefault();return}(D=t.onpanecontextmenu)==null||D.call(t,{event:T})},y=T=>{f&&(T.stopPropagation(),f=!1)};function E(T){var D;if(f||n().connection.inProgress){f=!1;return}(D=t.onpaneclick)==null||D.call(t,{event:T}),n().unselectNodesAndEdges(),n(n().selectionRectMode=null,!0),n(n().selectionRect=null,!0)}var N=$0();let I;var C=R(()=>s(v)?void 0:Pu(E,a)),L=R(()=>Pu(m,a)),q=b(N);At(q,()=>t.children),ir(N,T=>a=T,()=>a),Q(T=>I=we(N,1,"svelte-flow__pane svelte-flow__container",null,I,T),[()=>({draggable:r()===!0||Array.isArray(r())&&r().includes(0),dragging:n().dragging,selection:s(d)})]),ne("click",N,function(...T){var D;(D=s(C))==null||D.apply(this,T)}),Er("pointerdown",N,function(...T){var D;(D=s(v)?h:void 0)==null||D.apply(this,T)},!0),ne("pointermove",N,function(...T){var D;(D=s(v)?g:void 0)==null||D.apply(this,T)}),ne("pointerup",N,function(...T){var D;(D=s(v)?p:void 0)==null||D.apply(this,T)}),ne("contextmenu",N,function(...T){var D;(D=s(L))==null||D.apply(this,T)}),Er("click",N,function(...T){var D;(D=s(v)?y:void 0)==null||D.apply(this,T)},!0),O(e,N),ge()}Qe(["click","pointermove","pointerup","contextmenu"]);var tw=j('<div class="svelte-flow__viewport xyflow__viewport svelte-flow__container"><!></div>');function nw(e,t){he(t,!0);var n=tw();let r;var i=b(n);At(i,()=>t.children),Q(()=>r=nt(n,"",r,{transform:`translate(${t.store.viewport.x??""}px, ${t.store.viewport.y??""}px) scale(${t.store.viewport.zoom??""})`})),O(e,n),ge()}function bi(e,t){const{store:n,onDrag:r,onDragStart:i,onDragStop:a,onNodeMouseDown:o}=t,l=l0({onDrag:r,onDragStart:i,onDragStop:a,onNodeMouseDown:o,getStoreItems:()=>{const{snapGrid:u,viewport:d}=n;return{nodes:n.nodes,nodeLookup:n.nodeLookup,edges:n.edges,nodeExtent:n.nodeExtent,snapGrid:u||[0,0],snapToGrid:!!u,nodeOrigin:n.nodeOrigin,multiSelectionActive:n.multiselectionKeyPressed,domNode:n.domNode,transform:[d.x,d.y,d.zoom],autoPanOnNodeDrag:n.autoPanOnNodeDrag,nodesDraggable:n.nodesDraggable,selectNodesOnDrag:n.selectNodesOnDrag,nodeDragThreshold:n.nodeDragThreshold,unselectNodesAndEdges:n.unselectNodesAndEdges,updateNodePositions:n.updateNodePositions,onSelectionDrag:n.onselectiondrag,onSelectionDragStart:n.onselectiondragstart,onSelectionDragStop:n.onselectiondragstop,panBy:n.panBy}}});function c(u,d){if(d.disabled){l.destroy();return}l.update({domNode:u,noDragClassName:d.noDragClass,handleSelector:d.handleSelector,nodeId:d.nodeId,isSelectable:d.isSelectable,nodeClickDistance:d.nodeClickDistance})}return c(e,t),{update(u){c(e,u)},destroy(){l.destroy()}}}var rw=j('<div aria-live="assertive" aria-atomic="true" class="a11y-live-msg svelte-13pq11u"> </div>'),iw=j('<div class="a11y-hidden svelte-13pq11u"> </div> <div class="a11y-hidden svelte-13pq11u"> </div> <!>',1);function aw(e,t){he(t,!0);var n=iw(),r=le(n),i=b(r),a=w(r,2),o=b(a),l=w(a,2);{var c=u=>{var d=rw(),v=b(d);Q(()=>{ce(d,"id",`${sw}-${t.store.flowId}`),W(v,t.store.ariaLiveMessage)}),O(u,d)};te(l,u=>{t.store.disableKeyboardA11y||u(c)})}Q(()=>{ce(r,"id",`${xv}-${t.store.flowId}`),W(i,t.store.disableKeyboardA11y?t.store.ariaLabelConfig["node.a11yDescription.default"]:t.store.ariaLabelConfig["node.a11yDescription.keyboardDisabled"]),ce(a,"id",`${kv}-${t.store.flowId}`),W(o,t.store.ariaLabelConfig["edge.a11yDescription.default"])}),O(e,n),ge()}const xv="svelte-flow__node-desc",kv="svelte-flow__edge-desc",sw="svelte-flow__aria-live";var ow=j("<div><!></div>");function lw(e,t){he(t,!0);let n=fe(t,"store",15),r=R(()=>jt(t.node.data,()=>({}),!0)),i=R(()=>jt(t.node.selected,!1)),a=R(()=>t.node.draggable),o=R(()=>t.node.selectable),l=R(()=>jt(t.node.deletable,!0)),c=R(()=>t.node.connectable),u=R(()=>t.node.focusable),d=R(()=>jt(t.node.hidden,!1)),v=R(()=>jt(t.node.dragging,!1)),f=R(()=>jt(t.node.style,"")),h=R(()=>t.node.class),g=R(()=>jt(t.node.type,"default")),p=R(()=>t.node.parentId),m=R(()=>t.node.sourcePosition),y=R(()=>t.node.targetPosition),E=R(()=>jt(t.node.measured,()=>({width:0,height:0}),!0).width),N=R(()=>jt(t.node.measured,()=>({width:0,height:0}),!0).height),I=R(()=>t.node.initialWidth),C=R(()=>t.node.initialHeight),L=R(()=>t.node.width),q=R(()=>t.node.height),T=R(()=>t.node.dragHandle),D=R(()=>jt(t.node.internals.z,0)),F=R(()=>t.node.internals.positionAbsolute.x),S=R(()=>t.node.internals.positionAbsolute.y),P=R(()=>t.node.internals.userNode),{id:H}=t.node,x=R(()=>s(a)??n().nodesDraggable),k=R(()=>s(o)??n().elementsSelectable),A=R(()=>s(c)??n().nodesConnectable),z=R(()=>$f(t.node)),V=R(()=>!!t.node.internals.handleBounds),B=R(()=>s(z)&&s(V)),Y=R(()=>s(u)??n().nodesFocusable);function K(ke){return n().parentLookup.has(ke)}let G=R(()=>K(H)),$=J(null),ee=null,X=s(g),U=s(m),ae=s(y),se=R(()=>n().nodeTypes[s(g)]??mv),ue=R(()=>n().ariaLabelConfig),ve={get value(){return s(A)}};E0(H),C0(ve);let de=R(()=>{const ke=s(E)===void 0?s(L)??s(I):s(L),je=s(N)===void 0?s(q)??s(C):s(q);if(!(ke===void 0&&je===void 0&&s(f)===void 0))return`${s(f)};${ke?`width:${Vn(ke)};`:""}${je?`height:${Vn(je)};`:""}`});Ae(()=>{(s(g)!==X||s(m)!==U||s(y)!==ae)&&s($)!==null&&requestAnimationFrame(()=>{s($)!==null&&n().updateNodeInternals(new Map([[H,{id:H,nodeElement:s($),force:!0}]]))}),X=s(g),U=s(m),ae=s(y)}),Ae(()=>{t.resizeObserver&&(!s(B)||s($)!==ee)&&(ee&&t.resizeObserver.unobserve(ee),s($)&&t.resizeObserver.observe(s($)),ee=s($))}),co(()=>{var ke;ee&&((ke=t.resizeObserver)==null||ke.unobserve(ee))});function Ee(ke){var je;s(k)&&(!n().selectNodesOnDrag||!s(x)||n().nodeDragThreshold>0)&&n().handleNodeSelection(H),(je=t.onnodeclick)==null||je.call(t,{node:s(P),event:ke})}function _e(ke){if(!(nv(ke)||n().disableKeyboardA11y))if(Wf.includes(ke.key)&&s(k)){const je=ke.key==="Escape";n().handleNodeSelection(H,je,s($))}else s(x)&&t.node.selected&&Object.prototype.hasOwnProperty.call(Ks,ke.key)&&(ke.preventDefault(),n(n().ariaLiveMessage=s(ue)["node.a11yDescription.ariaLiveMessage"]({direction:ke.key.replace("Arrow","").toLowerCase(),x:~~t.node.internals.positionAbsolute.x,y:~~t.node.internals.positionAbsolute.y}),!0),n().moveSelectedNodes(Ks[ke.key],ke.shiftKey?4:1))}const De=()=>{var it;if(n().disableKeyboardA11y||!n().autoPanOnNodeFocus||!((it=s($))!=null&&it.matches(":focus-visible")))return;const{width:ke,height:je,viewport:rt}=n();gc(new Map([[H,t.node]]),{x:0,y:0,width:ke,height:je},[rt.x,rt.y,rt.zoom],!0).length>0||n().setCenter(t.node.position.x+(t.node.measured.width??0)/2,t.node.position.y+(t.node.measured.height??0)/2,{zoom:rt.zoom})};var Me=tt(),We=le(Me);{var He=ke=>{var je=ow();Nr(je,()=>({"data-id":H,class:["svelte-flow__node",`svelte-flow__node-${s(g)}`,s(h)],style:s(de),onclick:Ee,onpointerenter:t.onnodepointerenter?Le=>t.onnodepointerenter({node:s(P),event:Le}):void 0,onpointerleave:t.onnodepointerleave?Le=>t.onnodepointerleave({node:s(P),event:Le}):void 0,onpointermove:t.onnodepointermove?Le=>t.onnodepointermove({node:s(P),event:Le}):void 0,oncontextmenu:t.onnodecontextmenu?Le=>t.onnodecontextmenu({node:s(P),event:Le}):void 0,onkeydown:s(Y)?_e:void 0,onfocus:s(Y)?De:void 0,tabIndex:s(Y)?0:void 0,role:t.node.ariaRole??(s(Y)?"group":void 0),"aria-roledescription":"node","aria-describedby":n().disableKeyboardA11y?void 0:`${xv}-${n().flowId}`,...t.node.domAttributes,[dr]:{dragging:s(v),selected:s(i),draggable:s(x),connectable:s(A),selectable:s(k),nopan:s(x),parent:s(G)},[Zn]:{"z-index":s(D),transform:`translate(${s(F)??""}px, ${s(S)??""}px)`,visibility:s(z)?"visible":"hidden"}}));var rt=b(je);oo(rt,()=>s(se),(Le,it)=>{it(Le,{get data(){return s(r)},get id(){return H},get selected(){return s(i)},get selectable(){return s(k)},get deletable(){return s(l)},get sourcePosition(){return s(m)},get targetPosition(){return s(y)},get zIndex(){return s(D)},get dragging(){return s(v)},get draggable(){return s(x)},get dragHandle(){return s(T)},get parentId(){return s(p)},get type(){return s(g)},get isConnectable(){return s(A)},get positionAbsoluteX(){return s(F)},get positionAbsoluteY(){return s(S)},get width(){return s(L)},get height(){return s(q)}})}),qt(je,(Le,it)=>bi==null?void 0:bi(Le,it),()=>({nodeId:H,isSelectable:s(k),disabled:!s(x),handleSelector:s(T),noDragClass:n().noDragClass,nodeClickDistance:t.nodeClickDistance,onNodeMouseDown:n().handleNodeSelection,onDrag:(Le,it,ct,xe)=>{var Se;(Se=t.onnodedrag)==null||Se.call(t,{event:Le,targetNode:ct,nodes:xe})},onDragStart:(Le,it,ct,xe)=>{var Se;(Se=t.onnodedragstart)==null||Se.call(t,{event:Le,targetNode:ct,nodes:xe})},onDragStop:(Le,it,ct,xe)=>{var Se;(Se=t.onnodedragstop)==null||Se.call(t,{event:Le,targetNode:ct,nodes:xe})},store:n()})),ir(je,Le=>_($,Le),()=>s($)),O(ke,je)};te(We,ke=>{s(d)||ke(He)})}O(e,Me),ge()}var cw=j('<div class="svelte-flow__nodes"></div>');function uw(e,t){he(t,!0);let n=fe(t,"store",15);const r=typeof ResizeObserver>"u"?null:new ResizeObserver(a=>{const o=new Map;a.forEach(l=>{const c=l.target.getAttribute("data-id");o.set(c,{id:c,nodeElement:l.target,force:!0})}),n().updateNodeInternals(o)});co(()=>{r==null||r.disconnect()});var i=cw();Pe(i,21,()=>n().visible.nodes.values(),a=>a.id,(a,o)=>{lw(a,{get node(){return s(o)},get resizeObserver(){return r},get nodeClickDistance(){return t.nodeClickDistance},get onnodeclick(){return t.onnodeclick},get onnodepointerenter(){return t.onnodepointerenter},get onnodepointermove(){return t.onnodepointermove},get onnodepointerleave(){return t.onnodepointerleave},get onnodedrag(){return t.onnodedrag},get onnodedragstart(){return t.onnodedragstart},get onnodedragstop(){return t.onnodedragstop},get onnodecontextmenu(){return t.onnodecontextmenu},get store(){return n()},set store(l){n(l)}})}),O(e,i),ge()}var dw=wt('<svg class="svelte-flow__edge-wrapper"><g><!></g></svg>');function fw(e,t){he(t,!0);let n=R(()=>t.edge.id),r=R(()=>t.edge.source),i=R(()=>t.edge.target),a=R(()=>t.edge.sourceX),o=R(()=>t.edge.sourceY),l=R(()=>t.edge.targetX),c=R(()=>t.edge.targetY),u=R(()=>t.edge.sourcePosition),d=R(()=>t.edge.targetPosition),v=R(()=>jt(t.edge.animated,!1)),f=R(()=>jt(t.edge.selected,!1)),h=R(()=>t.edge.label),g=R(()=>t.edge.labelStyle),p=R(()=>jt(t.edge.data,()=>({}),!0)),m=R(()=>t.edge.style),y=R(()=>t.edge.interactionWidth),E=R(()=>jt(t.edge.type,"default")),N=R(()=>t.edge.sourceHandle),I=R(()=>t.edge.targetHandle),C=R(()=>t.edge.markerStart),L=R(()=>t.edge.markerEnd),q=R(()=>t.edge.selectable),T=R(()=>t.edge.focusable),D=R(()=>jt(t.edge.deletable,!0)),F=R(()=>t.edge.hidden),S=R(()=>t.edge.zIndex),P=R(()=>t.edge.class),H=R(()=>t.edge.ariaLabel);I0(s(n));let x=null,k=R(()=>s(q)??t.store.elementsSelectable),A=R(()=>s(T)??t.store.edgesFocusable),z=R(()=>t.store.edgeTypes[s(E)]??_v),V=R(()=>s(C)?`url('#${Vl(s(C),t.store.flowId)}')`:void 0),B=R(()=>s(L)?`url('#${Vl(s(L),t.store.flowId)}')`:void 0);function Y(U){var se;const ae=t.store.edgeLookup.get(s(n));ae&&(s(k)&&t.store.handleEdgeSelection(s(n)),(se=t.onedgeclick)==null||se.call(t,{event:U,edge:ae}))}function K(U,ae){const se=t.store.edgeLookup.get(s(n));se&&ae({event:U,edge:se})}function G(U){if(!t.store.disableKeyboardA11y&&Wf.includes(U.key)&&s(k)){const{unselectNodesAndEdges:ae,addSelectedEdges:se}=t.store;U.key==="Escape"?(x==null||x.blur(),ae({edges:[t.edge]})):se([s(n)])}}var $=tt(),ee=le($);{var X=U=>{var ae=dw();let se;var ue=b(ae);Nr(ue,()=>({class:["svelte-flow__edge",s(P)],"data-id":s(n),onclick:Y,oncontextmenu:t.onedgecontextmenu?de=>{K(de,t.onedgecontextmenu)}:void 0,onpointerenter:t.onedgepointerenter?de=>{K(de,t.onedgepointerenter)}:void 0,onpointerleave:t.onedgepointerleave?de=>{K(de,t.onedgepointerleave)}:void 0,"aria-label":s(H)===null?void 0:s(H)?s(H):`Edge from ${s(r)} to ${s(i)}`,"aria-describedby":s(A)?`${kv}-${t.store.flowId}`:void 0,role:t.edge.ariaRole??(s(A)?"group":"img"),"aria-roledescription":"edge",onkeydown:s(A)?G:void 0,tabindex:s(A)?0:void 0,...t.edge.domAttributes,[dr]:{animated:s(v),selected:s(f),selectable:s(k)}}));var ve=b(ue);oo(ve,()=>s(z),(de,Ee)=>{Ee(de,{get id(){return s(n)},get source(){return s(r)},get target(){return s(i)},get sourceX(){return s(a)},get sourceY(){return s(o)},get targetX(){return s(l)},get targetY(){return s(c)},get sourcePosition(){return s(u)},get targetPosition(){return s(d)},get animated(){return s(v)},get selected(){return s(f)},get label(){return s(h)},get labelStyle(){return s(g)},get data(){return s(p)},get style(){return s(m)},get interactionWidth(){return s(y)},get selectable(){return s(k)},get deletable(){return s(D)},get type(){return s(E)},get sourceHandleId(){return s(N)},get targetHandleId(){return s(I)},get markerStart(){return s(V)},get markerEnd(){return s(B)}})}),ir(ue,de=>x=de,()=>x),Q(()=>se=nt(ae,"",se,{"z-index":s(S)})),O(U,ae)};te(ee,U=>{s(F)||U(X)})}O(e,$),ge()}var vw=wt("<defs></defs>");function hw(e,t){he(t,!0);const n=or();var r=vw();Pe(r,21,()=>n.markers,i=>i.id,(i,a)=>{_w(i,Dr(()=>s(a)))}),O(e,r),ge()}var gw=wt('<polyline class="arrow" fill="none" stroke-linecap="round" stroke-linejoin="round" points="-5,-4 0,0 -5,4"></polyline>'),mw=wt('<polyline class="arrowclosed" stroke-linecap="round" stroke-linejoin="round" points="-5,-4 0,0 -5,4 -5,-4"></polyline>'),pw=wt('<marker class="svelte-flow__arrowhead" viewBox="-10 -10 20 20" refX="0" refY="0"><!></marker>');function _w(e,t){he(t,!0);let n=fe(t,"width",3,12.5),r=fe(t,"height",3,12.5),i=fe(t,"markerUnits",3,"strokeWidth"),a=fe(t,"orient",3,"auto-start-reverse"),o=fe(t,"color",3,"none");var l=pw(),c=b(l);{var u=v=>{var f=gw();let h;Q(()=>{ce(f,"stroke-width",t.strokeWidth),h=nt(f,"",h,{stroke:o()})}),O(v,f)},d=v=>{var f=mw();let h;Q(()=>{ce(f,"stroke-width",t.strokeWidth),h=nt(f,"",h,{stroke:o(),fill:o()})}),O(v,f)};te(c,v=>{t.type===un.Arrow?v(u):t.type===un.ArrowClosed&&v(d,1)})}Q(()=>{ce(l,"id",t.id),ce(l,"markerWidth",`${n()}`),ce(l,"markerHeight",`${r()}`),ce(l,"markerUnits",i()),ce(l,"orient",a())}),O(e,l),ge()}var bw=j('<div class="svelte-flow__edges"><svg class="svelte-flow__marker"><!></svg> <!></div>');function yw(e,t){he(t,!0);let n=fe(t,"store",15);var r=bw(),i=b(r),a=b(i);hw(a,{});var o=w(i,2);Pe(o,17,()=>n().visible.edges.values(),l=>l.id,(l,c)=>{fw(l,{get edge(){return s(c)},get onedgeclick(){return t.onedgeclick},get onedgecontextmenu(){return t.onedgecontextmenu},get onedgepointerenter(){return t.onedgepointerenter},get onedgepointerleave(){return t.onedgepointerleave},get store(){return n()},set store(u){n(u)}})}),O(e,r),ge()}var ww=j('<div class="svelte-flow__selection svelte-1vr3gfi"></div>');function Ev(e,t){he(t,!0);let n=fe(t,"x",3,0),r=fe(t,"y",3,0),i=fe(t,"width",3,0),a=fe(t,"height",3,0),o=fe(t,"isVisible",3,!0);var l=tt(),c=le(l);{var u=d=>{var v=ww();let f;Q(h=>f=nt(v,"",f,h),[()=>({width:typeof i()=="string"?i():Vn(i()),height:typeof a()=="string"?a():Vn(a()),transform:`translate(${n()}px, ${r()}px)`})]),O(d,v)};te(c,d=>{o()&&d(u)})}O(e,l),ge()}var xw=j("<div><!></div>");function kw(e,t){he(t,!0);let n=J(void 0);Ae(()=>{var v;t.store.disableKeyboardA11y||(v=s(n))==null||v.focus({preventScroll:!0})});let r=R(()=>{if(t.store.selectionRectMode==="nodes"){t.store.nodes;const v=Xa(t.store.nodeLookup,{filter:f=>!!f.selected});if(v.width>0&&v.height>0)return v}return null});function i(v){var h;const f=t.store.nodes.filter(g=>g.selected);(h=t.onselectioncontextmenu)==null||h.call(t,{nodes:f,event:v})}function a(v){var h;const f=t.store.nodes.filter(g=>g.selected);(h=t.onselectionclick)==null||h.call(t,{nodes:f,event:v})}function o(v){Object.prototype.hasOwnProperty.call(Ks,v.key)&&(v.preventDefault(),t.store.moveSelectedNodes(Ks[v.key],v.shiftKey?4:1))}var l=tt(),c=le(l);{var u=v=>{var f=xw();let h;var g=b(f);Ev(g,{width:"100%",height:"100%",x:0,y:0}),qt(f,(p,m)=>bi==null?void 0:bi(p,m),()=>({disabled:!1,store:t.store,onDrag:(p,m,y,E)=>{var N;(N=t.onnodedrag)==null||N.call(t,{event:p,targetNode:null,nodes:E})},onDragStart:(p,m,y,E)=>{var N;(N=t.onnodedragstart)==null||N.call(t,{event:p,targetNode:null,nodes:E})},onDragStop:(p,m,y,E)=>{var N;(N=t.onnodedragstop)==null||N.call(t,{event:p,targetNode:null,nodes:E})}})),ir(f,p=>_(n,p),()=>s(n)),Q(p=>{we(f,1,Cr(["svelte-flow__selection-wrapper",t.store.noPanClass]),"svelte-sf2y5e"),ce(f,"role",t.store.disableKeyboardA11y?void 0:"button"),ce(f,"tabindex",t.store.disableKeyboardA11y?void 0:-1),h=nt(f,"",h,p)},[()=>({width:Vn(s(r).width),height:Vn(s(r).height),transform:`translate(${s(r).x??""}px, ${s(r).y??""}px)`})]),ne("contextmenu",f,i),ne("click",f,a),ne("keydown",f,function(...p){var m;(m=t.store.disableKeyboardA11y?void 0:o)==null||m.apply(this,p)}),O(v,f)},d=R(()=>t.store.selectionRectMode==="nodes"&&s(r)&&Jn(s(r).x)&&Jn(s(r).y));te(c,v=>{s(d)&&v(u)})}O(e,l),ge()}Qe(["contextmenu","click","keydown"]);function Ew(e){switch(e){case"ctrl":return 8;case"shift":return 4;case"alt":return 2;case"meta":return 1}}function Ue(e,t){let{enabled:n=!0,trigger:r,type:i="keydown"}=t;function a(l){var d;const c=Array.isArray(r)?r:[r],u=[l.metaKey,l.altKey,l.shiftKey,l.ctrlKey].reduce((v,f,h)=>f?v|1<<h:v,0);for(const v of c){const f={preventDefault:!1,enabled:!0,...v},{modifier:h,key:g,callback:p,preventDefault:m,enabled:y}=f;if(y){if(l.key!==g)continue;if(h===null||h===!1){if(u!==0)continue}else if(h!==void 0&&((d=h==null?void 0:h[0])==null?void 0:d.length)>0){const N=Array.isArray(h)?h:[h];let I=!1;for(const C of N)if((Array.isArray(C)?C:[C]).reduce((q,T)=>q|Ew(T),0)===u){I=!0;break}if(!I)continue}m&&l.preventDefault();const E={node:e,trigger:f,originalEvent:l};e.dispatchEvent(new CustomEvent("shortcut",{detail:E})),p==null||p(E)}}}let o;return n&&(o=wl(e,i,a)),{update:l=>{const{enabled:c=!0,type:u="keydown"}=l;n&&(!c||i!==u)?o==null||o():!n&&c&&(o=wl(e,u,a)),n=c,i=u,r=l.trigger},destroy:()=>{o==null||o()}}}function Sv(){const e=R(or),t=a=>{var u,d;const o=Nu(a)?a:s(e).nodeLookup.get(a.id),l=o.parentId?Dy(o.position,o.measured,o.parentId,s(e).nodeLookup,s(e).nodeOrigin):o.position,c={...o,position:l,width:((u=o.measured)==null?void 0:u.width)??o.width,height:((d=o.measured)==null?void 0:d.height)??o.height};return qi(c)};function n(a,o,l={replace:!1}){s(e).nodes=yt(()=>s(e).nodes).map(c=>{if(c.id===a){const u=typeof o=="function"?o(c):o;return l!=null&&l.replace&&Nu(u)?u:{...c,...u}}return c})}function r(a,o,l={replace:!1}){s(e).edges=yt(()=>s(e).edges).map(c=>{if(c.id===a){const u=typeof o=="function"?o(c):o;return l.replace&&R0(u)?u:{...c,...u}}return c})}const i=a=>s(e).nodeLookup.get(a);return{zoomIn:s(e).zoomIn,zoomOut:s(e).zoomOut,getInternalNode:i,getNode:a=>{var o;return(o=i(a))==null?void 0:o.internals.userNode},getNodes:a=>a===void 0?s(e).nodes:Tu(s(e).nodeLookup,a),getEdge:a=>s(e).edgeLookup.get(a),getEdges:a=>a===void 0?s(e).edges:Tu(s(e).edgeLookup,a),setZoom:(a,o)=>{const l=s(e).panZoom;return l?l.scaleTo(a,o):Promise.resolve(!1)},getZoom:()=>s(e).viewport.zoom,setViewport:async(a,o)=>{const l=s(e).viewport;return s(e).panZoom?(await s(e).panZoom.setViewport({x:a.x??l.x,y:a.y??l.y,zoom:a.zoom??l.zoom},o),Promise.resolve(!0)):Promise.resolve(!1)},getViewport:()=>Oi(s(e).viewport),setCenter:async(a,o,l)=>s(e).setCenter(a,o,l),fitView:a=>s(e).fitView(a),fitBounds:async(a,o)=>{if(!s(e).panZoom)return Promise.resolve(!1);const l=mc(a,s(e).width,s(e).height,s(e).minZoom,s(e).maxZoom,(o==null?void 0:o.padding)??.1);return await s(e).panZoom.setViewport(l,{duration:o==null?void 0:o.duration,ease:o==null?void 0:o.ease,interpolate:o==null?void 0:o.interpolate}),Promise.resolve(!0)},getIntersectingNodes:(a,o=!0,l)=>{const c=gu(a),u=c?a:t(a);return u?(l||s(e).nodes).filter(d=>{const v=s(e).nodeLookup.get(d.id);if(!v||!c&&d.id===a.id)return!1;const f=qi(v),h=wa(f,u);return o&&h>0||h>=f.width*f.height||h>=u.width*u.height}):[]},isNodeIntersecting:(a,o,l=!0)=>{const u=gu(a)?a:t(a);if(!u)return!1;const d=wa(u,o);return l&&d>0||d>=o.width*o.height||d>=u.width*u.height},deleteElements:async({nodes:a=[],edges:o=[]})=>{var u,d;const{nodes:l,edges:c}=await My({nodesToRemove:a,edgesToRemove:o,nodes:s(e).nodes,edges:s(e).edges,onBeforeDelete:s(e).onbeforedelete});return l&&(s(e).nodes=yt(()=>s(e).nodes).filter(v=>!l.some(({id:f})=>f===v.id))),c&&(s(e).edges=yt(()=>s(e).edges).filter(v=>!c.some(({id:f})=>f===v.id))),(l.length>0||c.length>0)&&((d=(u=s(e)).ondelete)==null||d.call(u,{nodes:l,edges:c})),{deletedNodes:l,deletedEdges:c}},screenToFlowPosition:(a,o={snapToGrid:!0})=>{if(!s(e).domNode)return a;const l=o.snapToGrid?s(e).snapGrid:!1,{x:c,y:u,zoom:d}=s(e).viewport,{x:v,y:f}=s(e).domNode.getBoundingClientRect(),h={x:a.x-v,y:a.y-f};return Ga(h,[c,u,d],l!==null,l||[1,1])},flowToScreenPosition:a=>{if(!s(e).domNode)return a;const{x:o,y:l,zoom:c}=s(e).viewport,{x:u,y:d}=s(e).domNode.getBoundingClientRect(),v=Bs(a,[o,l,c]);return{x:v.x+u,y:v.y+d}},toObject:()=>structuredClone({nodes:[...s(e).nodes],edges:[...s(e).edges],viewport:{...s(e).viewport}}),updateNode:n,updateNodeData:(a,o,l)=>{var d;const c=(d=s(e).nodeLookup.get(a))==null?void 0:d.internals.userNode;if(!c)return;const u=typeof o=="function"?o(c):o;n(a,v=>({...v,data:l!=null&&l.replace?u:{...v.data,...u}}))},updateEdge:r,getNodesBounds:a=>Ny(a,{nodeLookup:s(e).nodeLookup,nodeOrigin:s(e).nodeOrigin}),getHandleConnections:({type:a,id:o,nodeId:l})=>{var c;return Array.from(((c=s(e).connectionLookup.get(`${l}-${a}-${o??null}`))==null?void 0:c.values())??[])}}}function Tu(e,t){var r;const n=[];for(const i of t){const a=e.get(i);if(a){const o="internals"in a?(r=a.internals)==null?void 0:r.userNode:a;n.push(o)}}return n}function Sw(e,t){he(t,!0);let n=fe(t,"store",15),r=fe(t,"selectionKey",3,"Shift"),i=fe(t,"multiSelectionKey",19,()=>xa()?"Meta":"Control"),a=fe(t,"deleteKey",3,"Backspace"),o=fe(t,"panActivationKey",3," "),l=fe(t,"zoomActivationKey",19,()=>xa()?"Meta":"Control"),{deleteElements:c}=Sv();function u(p){return p!==null&&typeof p=="object"}function d(p){return u(p)?p.modifier||[]:[]}function v(p){return p==null?"":u(p)?p.key:p}function f(p,m){return(Array.isArray(p)?p:[p]).map(E=>{const N=v(E);return{key:N,modifier:d(E),enabled:N!==null,callback:m}})}function h(){n(n().selectionRect=null,!0),n(n().selectionKeyPressed=!1,!0),n(n().multiselectionKeyPressed=!1,!0),n(n().deleteKeyPressed=!1,!0),n(n().panActivationKeyPressed=!1,!0),n(n().zoomActivationKeyPressed=!1,!0)}function g(){const p=n().nodes.filter(y=>y.selected),m=n().edges.filter(y=>y.selected);c({nodes:p,edges:m})}Er("blur",Mt,h),Er("contextmenu",Mt,h),qt(Mt,(p,m)=>Ue==null?void 0:Ue(p,m),()=>({trigger:f(r(),()=>n(n().selectionKeyPressed=!0,!0)),type:"keydown"})),qt(Mt,(p,m)=>Ue==null?void 0:Ue(p,m),()=>({trigger:f(r(),()=>n(n().selectionKeyPressed=!1,!0)),type:"keyup"})),qt(Mt,(p,m)=>Ue==null?void 0:Ue(p,m),()=>({trigger:f(i(),()=>{n(n().multiselectionKeyPressed=!0,!0)}),type:"keydown"})),qt(Mt,(p,m)=>Ue==null?void 0:Ue(p,m),()=>({trigger:f(i(),()=>n(n().multiselectionKeyPressed=!1,!0)),type:"keyup"})),qt(Mt,(p,m)=>Ue==null?void 0:Ue(p,m),()=>({trigger:f(a(),p=>{!(p.originalEvent.ctrlKey||p.originalEvent.metaKey||p.originalEvent.shiftKey)&&!nv(p.originalEvent)&&(n(n().deleteKeyPressed=!0,!0),g())}),type:"keydown"})),qt(Mt,(p,m)=>Ue==null?void 0:Ue(p,m),()=>({trigger:f(a(),()=>n(n().deleteKeyPressed=!1,!0)),type:"keyup"})),qt(Mt,(p,m)=>Ue==null?void 0:Ue(p,m),()=>({trigger:f(o(),()=>n(n().panActivationKeyPressed=!0,!0)),type:"keydown"})),qt(Mt,(p,m)=>Ue==null?void 0:Ue(p,m),()=>({trigger:f(o(),()=>n(n().panActivationKeyPressed=!1,!0)),type:"keyup"})),qt(Mt,(p,m)=>Ue==null?void 0:Ue(p,m),()=>({trigger:f(l(),()=>n(n().zoomActivationKeyPressed=!0,!0)),type:"keydown"})),qt(Mt,(p,m)=>Ue==null?void 0:Ue(p,m),()=>({trigger:f(l(),()=>n(n().zoomActivationKeyPressed=!1,!0)),type:"keyup"})),ge()}var Cw=wt('<path fill="none" class="svelte-flow__connection-path"></path>'),Nw=wt('<svg class="svelte-flow__connectionline"><g><!></g></svg>');function Iw(e,t){he(t,!0);let n=R(()=>{if(!t.store.connection.inProgress)return"";const o={sourceX:t.store.connection.from.x,sourceY:t.store.connection.from.y,sourcePosition:t.store.connection.fromPosition,targetX:t.store.connection.to.x,targetY:t.store.connection.to.y,targetPosition:t.store.connection.toPosition};switch(t.type){case fr.Bezier:{const[l]=iv(o);return l}case fr.Straight:{const[l]=sv(o);return l}case fr.Step:case fr.SmoothStep:{const[l]=pc({...o,borderRadius:t.type===fr.Step?0:void 0});return l}}});var r=tt(),i=le(r);{var a=o=>{var l=Nw(),c=b(l),u=b(c);{var d=f=>{var h=tt(),g=le(h);oo(g,()=>t.LineComponent,(p,m)=>{m(p,{})}),O(f,h)},v=f=>{var h=Cw();Q(()=>{ce(h,"d",s(n)),nt(h,t.style)}),O(f,h)};te(u,f=>{t.LineComponent?f(d):f(v,-1)})}Q(f=>{ce(l,"width",t.store.width),ce(l,"height",t.store.height),nt(l,t.containerStyle),we(c,0,f)},[()=>Cr(["svelte-flow__connection",Sy(t.store.connection.isValid)])]),O(o,l)};te(i,o=>{t.store.connection.inProgress&&o(a)})}O(e,r),ge()}var Pw=j("<div><!></div>");function kc(e,t){he(t,!0);let n=fe(t,"position",3,"top-right"),r=Ir(t,["$$slots","$$events","$$legacy","position","style","class","children"]),i=R(()=>`${n()}`.split("-"));var a=Pw();Nr(a,l=>({class:l,style:t.style,...r}),[()=>["svelte-flow__panel",t.class,...s(i)]]);var o=b(a);At(o,()=>t.children??sr),O(e,a),ge()}var Ow=j('<a href="https://svelteflow.dev" target="_blank" rel="noopener noreferrer" aria-label="Svelte Flow attribution">Svelte Flow</a>');function Mw(e,t){he(t,!0);let n=fe(t,"position",3,"bottom-right");var r=tt(),i=le(r);{var a=o=>{kc(o,{get position(){return n()},class:"svelte-flow__attribution","data-message":"Feel free to remove the attribution or check out how you could support us: https://svelteflow.dev/support-us",children:(l,c)=>{var u=Ow();O(l,u)},$$slots:{default:!0}})};te(i,o=>{var l;(l=t.proOptions)!=null&&l.hideAttribution||o(a)})}O(e,r),ge()}var Tw=j("<div><!></div>");function Aw(e,t){he(t,!0);let n=fe(t,"domNode",15),r=fe(t,"clientWidth",15),i=fe(t,"clientHeight",15),a=R(()=>t.rest.class),o=R(()=>ph(t.rest,["id","class","nodeTypes","edgeTypes","colorMode","isValidConnection","onmove","onmovestart","onmoveend","onflowerror","ondelete","onbeforedelete","onbeforeconnect","onconnect","onconnectstart","onconnectend","onbeforereconnect","onreconnect","onreconnectstart","onreconnectend","onclickconnectstart","onclickconnectend","oninit","onselectionchange","onselectiondragstart","onselectiondrag","onselectiondragstop","onselectionstart","onselectionend","clickConnect","fitView","fitViewOptions","nodeOrigin","nodeDragThreshold","connectionDragThreshold","minZoom","maxZoom","initialViewport","connectionRadius","connectionMode","selectionMode","selectNodesOnDrag","snapGrid","defaultMarkerColor","translateExtent","nodeExtent","onlyRenderVisibleElements","autoPanOnConnect","autoPanOnNodeDrag","colorModeSSR","defaultEdgeOptions","elevateNodesOnSelect","elevateEdgesOnSelect","nodesDraggable","autoPanOnNodeFocus","nodesConnectable","elementsSelectable","nodesFocusable","edgesFocusable","disableKeyboardA11y","noDragClass","noPanClass","noWheelClass","ariaLabelConfig","autoPanSpeed","panOnScrollSpeed","zIndexMode"]));function l(d){d.currentTarget.scrollTo({top:0,left:0,behavior:"auto"}),t.rest.onscroll&&t.rest.onscroll(d)}var c=Tw();Nr(c,d=>({class:["svelte-flow","svelte-flow__container",s(a),t.colorMode],"data-testid":"svelte-flow__wrapper",role:"application",onscroll:l,...s(o),[Zn]:d}),[()=>({width:Vn(t.width),height:Vn(t.height)})],void 0,void 0,"svelte-mkap6j");var u=b(c);At(u,()=>t.children??sr),ir(c,d=>n(d),()=>n()),Yc(c,"clientHeight",i),Yc(c,"clientWidth",r),O(e,c),ge()}var zw=j('<div class="svelte-flow__viewport-back svelte-flow__container"></div> <!> <div class="svelte-flow__edge-labels svelte-flow__container"></div> <!> <!> <!> <div class="svelte-flow__viewport-front svelte-flow__container"></div>',1),Dw=j("<!> <!>",1),Lw=j("<!> <!> <!> <!> <!>",1);function Bi(e,t){he(t,!0);let n=fe(t,"paneClickDistance",3,1),r=fe(t,"nodeClickDistance",3,1),i=fe(t,"panOnScrollMode",19,()=>_i.Free),a=fe(t,"preventScrolling",3,!0),o=fe(t,"zoomOnScroll",3,!0),l=fe(t,"zoomOnDoubleClick",3,!0),c=fe(t,"zoomOnPinch",3,!0),u=fe(t,"panOnScroll",3,!1),d=fe(t,"panOnScrollSpeed",3,.5),v=fe(t,"panOnDrag",3,!0),f=fe(t,"selectionOnDrag",3,!1),h=fe(t,"connectionLineType",19,()=>fr.Bezier),g=fe(t,"nodes",31,()=>me([])),p=fe(t,"edges",31,()=>me([])),m=fe(t,"viewport",15,void 0),y=Ir(t,["$$slots","$$events","$$legacy","width","height","proOptions","selectionKey","deleteKey","panActivationKey","multiSelectionKey","zoomActivationKey","paneClickDistance","nodeClickDistance","onmovestart","onmoveend","onmove","oninit","onnodeclick","onnodecontextmenu","onnodedrag","onnodedragstart","onnodedragstop","onnodepointerenter","onnodepointermove","onnodepointerleave","onselectionclick","onselectioncontextmenu","onselectionstart","onselectionend","onedgeclick","onedgecontextmenu","onedgepointerenter","onedgepointerleave","onpaneclick","onpanecontextmenu","panOnScrollMode","preventScrolling","zoomOnScroll","zoomOnDoubleClick","zoomOnPinch","panOnScroll","panOnScrollSpeed","panOnDrag","selectionOnDrag","connectionLineComponent","connectionLineStyle","connectionLineContainerStyle","connectionLineType","attributionPosition","children","nodes","edges","viewport"]),E=wv({props:y,width:t.width,height:t.height,get nodes(){return g()},set nodes(I){g(I)},get edges(){return p()},set edges(I){p(I)},get viewport(){return m()},set viewport(I){m(I)}});const N=Wl(Ys);N&&N.setStore&&N.setStore(E),Gl(Ys,{provider:!1,getStore(){return E}}),Ae(()=>{var C;const I={nodes:E.selectedNodes,edges:E.selectedEdges};(C=yt(()=>t.onselectionchange))==null||C(I);for(const L of E.selectionChangeHandlers.values())L(I)}),co(()=>{E.reset()}),Aw(e,{get colorMode(){return E.colorMode},get width(){return t.width},get height(){return t.height},get rest(){return y},get domNode(){return E.domNode},set domNode(I){E.domNode=I},get clientWidth(){return E.width},set clientWidth(I){E.width=I},get clientHeight(){return E.height},set clientHeight(I){E.height=I},children:(I,C)=>{var L=Lw(),q=le(L);Sw(q,{get selectionKey(){return t.selectionKey},get deleteKey(){return t.deleteKey},get panActivationKey(){return t.panActivationKey},get multiSelectionKey(){return t.multiSelectionKey},get zoomActivationKey(){return t.zoomActivationKey},get store(){return E},set store(P){E=P}});var T=w(q,2);J0(T,{get panOnScrollMode(){return i()},get preventScrolling(){return a()},get zoomOnScroll(){return o()},get zoomOnDoubleClick(){return l()},get zoomOnPinch(){return c()},get panOnScroll(){return u()},get panOnScrollSpeed(){return d()},get panOnDrag(){return v()},get paneClickDistance(){return n()},get selectionOnDrag(){return f()},get onmovestart(){return t.onmovestart},get onmove(){return t.onmove},get onmoveend(){return t.onmoveend},get oninit(){return t.oninit},get store(){return E},set store(P){E=P},children:(P,H)=>{ew(P,{get onpaneclick(){return t.onpaneclick},get onpanecontextmenu(){return t.onpanecontextmenu},get onselectionstart(){return t.onselectionstart},get onselectionend(){return t.onselectionend},get panOnDrag(){return v()},get paneClickDistance(){return n()},get selectionOnDrag(){return f()},get store(){return E},set store(x){E=x},children:(x,k)=>{var A=Dw(),z=le(A);nw(z,{get store(){return E},set store(B){E=B},children:(B,Y)=>{var K=zw(),G=w(le(K),2);yw(G,{get onedgeclick(){return t.onedgeclick},get onedgecontextmenu(){return t.onedgecontextmenu},get onedgepointerenter(){return t.onedgepointerenter},get onedgepointerleave(){return t.onedgepointerleave},get store(){return E},set store(U){E=U}});var $=w(G,4);Iw($,{get type(){return h()},get LineComponent(){return t.connectionLineComponent},get containerStyle(){return t.connectionLineContainerStyle},get style(){return t.connectionLineStyle},get store(){return E},set store(U){E=U}});var ee=w($,2);uw(ee,{get nodeClickDistance(){return r()},get onnodeclick(){return t.onnodeclick},get onnodecontextmenu(){return t.onnodecontextmenu},get onnodepointerenter(){return t.onnodepointerenter},get onnodepointermove(){return t.onnodepointermove},get onnodepointerleave(){return t.onnodepointerleave},get onnodedrag(){return t.onnodedrag},get onnodedragstart(){return t.onnodedragstart},get onnodedragstop(){return t.onnodedragstop},get store(){return E},set store(U){E=U}});var X=w(ee,2);kw(X,{get onselectionclick(){return t.onselectionclick},get onselectioncontextmenu(){return t.onselectioncontextmenu},get onnodedrag(){return t.onnodedrag},get onnodedragstart(){return t.onnodedragstart},get onnodedragstop(){return t.onnodedragstop},get store(){return E},set store(U){E=U}}),O(B,K)},$$slots:{default:!0}});var V=w(z,2);{let B=R(()=>!!(E.selectionRect&&E.selectionRectMode==="user")),Y=R(()=>{var ee;return(ee=E.selectionRect)==null?void 0:ee.width}),K=R(()=>{var ee;return(ee=E.selectionRect)==null?void 0:ee.height}),G=R(()=>{var ee;return(ee=E.selectionRect)==null?void 0:ee.x}),$=R(()=>{var ee;return(ee=E.selectionRect)==null?void 0:ee.y});Ev(V,{get isVisible(){return s(B)},get width(){return s(Y)},get height(){return s(K)},get x(){return s(G)},get y(){return s($)}})}O(x,A)},$$slots:{default:!0}})},$$slots:{default:!0}});var D=w(T,2);Mw(D,{get proOptions(){return t.proOptions},get position(){return t.attributionPosition}});var F=w(D,2);aw(F,{get store(){return E}});var S=w(F,2);At(S,()=>t.children??sr),O(I,L)},$$slots:{default:!0}}),ge()}function Ki(e,t){he(t,!0);let n=J(wv({props:{},nodes:[],edges:[]}));Gl(Ys,{provider:!0,getStore(){return s(n)},setStore:a=>{_(n,a)}}),co(()=>{s(n).reset()});var r=tt(),i=le(r);At(i,()=>t.children??sr),O(e,r),ge()}var Rw=j("<button><!></button>");function vs(e,t){let n=Ir(t,["$$slots","$$events","$$legacy","class","bgColor","bgColorHover","color","colorHover","borderColor","onclick","children"]);var r=Rw();Nr(r,()=>({type:"button",onclick:t.onclick,class:["svelte-flow__controls-button",t.class],...n,[Zn]:{"--xy-controls-button-background-color-props":t.bgColor,"--xy-controls-button-background-color-hover-props":t.bgColorHover,"--xy-controls-button-color-props":t.color,"--xy-controls-button-color-hover-props":t.colorHover,"--xy-controls-button-border-color-props":t.borderColor}}));var i=b(r);At(i,()=>t.children??sr),O(e,r)}var jw=wt('<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32"><path d="M32 18.133H18.133V32h-4.266V18.133H0v-4.266h13.867V0h4.266v13.867H32z"></path></svg>');function qw(e){var t=jw();O(e,t)}var Vw=wt('<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 5"><path d="M0 0h32v4.2H0z"></path></svg>');function Hw(e){var t=Vw();O(e,t)}var Fw=wt('<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 30"><path d="M3.692 4.63c0-.53.4-.938.939-.938h5.215V0H4.708C2.13 0 0 2.054 0 4.63v5.216h3.692V4.631zM27.354 0h-5.2v3.692h5.17c.53 0 .984.4.984.939v5.215H32V4.631A4.624 4.624 0 0027.354 0zm.954 24.83c0 .532-.4.94-.939.94h-5.215v3.768h5.215c2.577 0 4.631-2.13 4.631-4.707v-5.139h-3.692v5.139zm-23.677.94c-.531 0-.939-.4-.939-.94v-5.138H0v5.139c0 2.577 2.13 4.707 4.708 4.707h5.138V25.77H4.631z"></path></svg>');function Bw(e){var t=Fw();O(e,t)}var Kw=wt('<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 25 32"><path d="M21.333 10.667H19.81V7.619C19.81 3.429 16.38 0 12.19 0 8 0 4.571 3.429 4.571 7.619v3.048H3.048A3.056 3.056 0 000 13.714v15.238A3.056 3.056 0 003.048 32h18.285a3.056 3.056 0 003.048-3.048V13.714a3.056 3.056 0 00-3.048-3.047zM12.19 24.533a3.056 3.056 0 01-3.047-3.047 3.056 3.056 0 013.047-3.048 3.056 3.056 0 013.048 3.048 3.056 3.056 0 01-3.048 3.047zm4.724-13.866H7.467V7.619c0-2.59 2.133-4.724 4.723-4.724 2.591 0 4.724 2.133 4.724 4.724v3.048z"></path></svg>');function Yw(e){var t=Kw();O(e,t)}var Xw=wt('<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 25 32"><path d="M21.333 10.667H19.81V7.619C19.81 3.429 16.38 0 12.19 0c-4.114 1.828-1.37 2.133.305 2.438 1.676.305 4.42 2.59 4.42 5.181v3.048H3.047A3.056 3.056 0 000 13.714v15.238A3.056 3.056 0 003.048 32h18.285a3.056 3.056 0 003.048-3.048V13.714a3.056 3.056 0 00-3.048-3.047zM12.19 24.533a3.056 3.056 0 01-3.047-3.047 3.056 3.056 0 013.047-3.048 3.056 3.056 0 013.048 3.048 3.056 3.056 0 01-3.048 3.047z"></path></svg>');function Ww(e){var t=Xw();O(e,t)}var Gw=j("<!> <!>",1),Zw=j("<!> <!> <!> <!> <!> <!>",1);function Yi(e,t){he(t,!0);let n=fe(t,"position",3,"bottom-left"),r=fe(t,"orientation",3,"vertical"),i=fe(t,"showZoom",3,!0),a=fe(t,"showFitView",3,!0),o=fe(t,"showLock",3,!0),l=Ir(t,["$$slots","$$events","$$legacy","position","orientation","showZoom","showFitView","showLock","style","class","buttonBgColor","buttonBgColorHover","buttonColor","buttonColorHover","buttonBorderColor","fitViewOptions","children","before","after"]),c=R(or);const u={bgColor:t.buttonBgColor,bgColorHover:t.buttonBgColorHover,color:t.buttonColor,colorHover:t.buttonColorHover,borderColor:t.buttonBorderColor};let d=R(()=>s(c).nodesDraggable||s(c).nodesConnectable||s(c).elementsSelectable),v=R(()=>s(c).viewport.zoom<=s(c).minZoom),f=R(()=>s(c).viewport.zoom>=s(c).maxZoom),h=R(()=>s(c).ariaLabelConfig),g=R(()=>r()==="horizontal"?"horizontal":"vertical");const p=()=>{s(c).zoomIn()},m=()=>{s(c).zoomOut()},y=()=>{s(c).fitView(t.fitViewOptions)},E=()=>{let N=!s(d);s(c).nodesDraggable=N,s(c).nodesConnectable=N,s(c).elementsSelectable=N};{let N=R(()=>["svelte-flow__controls",s(g),t.class]);kc(e,Dr({get class(){return s(N)},get position(){return n()},"data-testid":"svelte-flow__controls",get"aria-label"(){return s(h)["controls.ariaLabel"]},get style(){return t.style}},()=>l,{children:(I,C)=>{var L=Zw(),q=le(L);{var T=B=>{var Y=tt(),K=le(Y);At(K,()=>t.before),O(B,Y)};te(q,B=>{t.before&&B(T)})}var D=w(q,2);{var F=B=>{var Y=Gw(),K=le(Y);vs(K,Dr({onclick:p,class:"svelte-flow__controls-zoomin",get title(){return s(h)["controls.zoomIn.ariaLabel"]},get"aria-label"(){return s(h)["controls.zoomIn.ariaLabel"]},get disabled(){return s(f)}},()=>u,{children:($,ee)=>{qw($)},$$slots:{default:!0}}));var G=w(K,2);vs(G,Dr({onclick:m,class:"svelte-flow__controls-zoomout",get title(){return s(h)["controls.zoomOut.ariaLabel"]},get"aria-label"(){return s(h)["controls.zoomOut.ariaLabel"]},get disabled(){return s(v)}},()=>u,{children:($,ee)=>{Hw($)},$$slots:{default:!0}})),O(B,Y)};te(D,B=>{i()&&B(F)})}var S=w(D,2);{var P=B=>{vs(B,Dr({class:"svelte-flow__controls-fitview",onclick:y,get title(){return s(h)["controls.fitView.ariaLabel"]},get"aria-label"(){return s(h)["controls.fitView.ariaLabel"]}},()=>u,{children:(Y,K)=>{Bw(Y)},$$slots:{default:!0}}))};te(S,B=>{a()&&B(P)})}var H=w(S,2);{var x=B=>{vs(B,Dr({class:"svelte-flow__controls-interactive",onclick:E,get title(){return s(h)["controls.interactive.ariaLabel"]},get"aria-label"(){return s(h)["controls.interactive.ariaLabel"]}},()=>u,{children:(Y,K)=>{var G=tt(),$=le(G);{var ee=U=>{Ww(U)},X=U=>{Yw(U)};te($,U=>{s(d)?U(ee):U(X,-1)})}O(Y,G)},$$slots:{default:!0}}))};te(H,B=>{o()&&B(x)})}var k=w(H,2);{var A=B=>{var Y=tt(),K=le(Y);At(K,()=>t.children),O(B,Y)};te(k,B=>{t.children&&B(A)})}var z=w(k,2);{var V=B=>{var Y=tt(),K=le(Y);At(K,()=>t.after),O(B,Y)};te(z,B=>{t.after&&B(V)})}O(I,L)},$$slots:{default:!0}}))}ge()}var wr;(function(e){e.Lines="lines",e.Dots="dots",e.Cross="cross"})(wr||(wr={}));var Uw=wt("<circle></circle>");function Qw(e,t){var n=Uw();Q(()=>{ce(n,"cx",t.radius),ce(n,"cy",t.radius),ce(n,"r",t.radius),we(n,0,Cr(["svelte-flow__background-pattern","dots",t.class]))}),O(e,n)}var Jw=wt("<path></path>");function $w(e,t){he(t,!0);var n=Jw();Q(()=>{ce(n,"stroke-width",t.lineWidth),ce(n,"d",`M${t.dimensions[0]/2} 0 V${t.dimensions[1]} M0 ${t.dimensions[1]/2} H${t.dimensions[0]}`),we(n,0,Cr(["svelte-flow__background-pattern",t.variant,t.class]))}),O(e,n),ge()}const e1={[wr.Dots]:1,[wr.Lines]:1,[wr.Cross]:6};var t1=wt('<svg data-testid="svelte-flow__background"><pattern patternUnits="userSpaceOnUse"><!></pattern><rect x="0" y="0" width="100%" height="100%"></rect></svg>');function Xi(e,t){he(t,!0);let n=fe(t,"variant",19,()=>wr.Dots),r=fe(t,"gap",3,20),i=fe(t,"lineWidth",3,1),a=R(or),o=R(()=>n()===wr.Dots),l=R(()=>n()===wr.Cross),c=R(()=>Array.isArray(r())?r():[r(),r()]),u=R(()=>`background-pattern-${s(a).flowId}-${t.id??""}`),d=R(()=>[s(c)[0]*s(a).viewport.zoom||1,s(c)[1]*s(a).viewport.zoom||1]),v=R(()=>(t.size??e1[n()])*s(a).viewport.zoom),f=R(()=>s(l)?[s(v),s(v)]:s(d)),h=R(()=>s(o)?[s(v)/2,s(v)/2]:[s(f)[0]/2,s(f)[1]/2]);var g=t1();let p;var m=b(g),y=b(m);{var E=C=>{{let L=R(()=>s(v)/2);Qw(C,{get radius(){return s(L)},get class(){return t.patternClass}})}},N=C=>{$w(C,{get dimensions(){return s(f)},get variant(){return n()},get lineWidth(){return i()},get class(){return t.patternClass}})};te(y,C=>{s(o)?C(E):C(N,-1)})}var I=w(m);Q(()=>{we(g,0,Cr(["svelte-flow__background","svelte-flow__container",t.class])),p=nt(g,"",p,{"--xy-background-color-props":t.bgColor,"--xy-background-pattern-color-props":t.patternColor}),ce(m,"id",s(u)),ce(m,"x",s(a).viewport.x%s(d)[0]),ce(m,"y",s(a).viewport.y%s(d)[1]),ce(m,"width",s(d)[0]),ce(m,"height",s(d)[1]),ce(m,"patternTransform",`translate(-${s(h)[0]},-${s(h)[1]})`),ce(I,"fill",`url(#${s(u)})`)}),O(e,g),ge()}function n1(e){const t=R(or),n=R(()=>s(t).nodeLookup),r=R(()=>s(t).nodes),i=R(()=>(s(r),s(n).get(e)));return{get current(){return s(i)}}}var r1=wt("<rect></rect>");function i1(e,t){he(t,!0);let n=fe(t,"borderRadius",3,5),r=fe(t,"strokeWidth",3,2),i=R(()=>n1(t.id)),a=R(()=>{if(!s(i).current)return{width:0,height:0,x:0,y:0};const{width:g,height:p}=Pr(s(i).current);return{width:t.width??g,height:t.height??p,x:t.x??s(i).current.internals.positionAbsolute.x,y:t.y??s(i).current.internals.positionAbsolute.y}}),o=R(()=>s(a).width),l=R(()=>s(a).height),c=R(()=>s(a).x),u=R(()=>s(a).y);var d=tt(),v=le(d);{var f=g=>{const p=R(()=>t.nodeComponent);var m=tt(),y=le(m);oo(y,()=>s(p),(E,N)=>{N(E,{get id(){return t.id},get x(){return s(c)},get y(){return s(u)},get width(){return s(o)},get height(){return s(l)},get borderRadius(){return n()},get class(){return t.class},get color(){return t.color},get shapeRendering(){return t.shapeRendering},get strokeColor(){return t.strokeColor},get strokeWidth(){return r()},get selected(){return t.selected}})}),O(g,m)},h=g=>{var p=r1();let m,y;Q(()=>{m=we(p,0,Cr(["svelte-flow__minimap-node",t.class]),null,m,{selected:t.selected}),ce(p,"x",s(c)),ce(p,"y",s(u)),ce(p,"rx",n()),ce(p,"ry",n()),ce(p,"width",s(o)),ce(p,"height",s(l)),ce(p,"shape-rendering",t.shapeRendering),y=nt(p,"",y,{fill:t.color,stroke:t.strokeColor,"stroke-width":r()})}),O(g,p)};te(v,g=>{t.nodeComponent?g(f):g(h,-1)})}O(e,d),ge()}function $o(e,t){const n=h0({domNode:e,panZoom:t.panZoom,getTransform:()=>{const{viewport:i}=t.store;return[i.x,i.y,i.zoom]},getViewScale:t.getViewScale});n.update({translateExtent:t.translateExtent,width:t.width,height:t.height,inversePan:t.inversePan,zoomStep:t.zoomStep,pannable:t.pannable,zoomable:t.zoomable});function r(i){n.update({translateExtent:i.translateExtent,width:i.width,height:i.height,inversePan:i.inversePan,zoomStep:i.zoomStep,pannable:i.pannable,zoomable:i.zoomable})}return{update:r,destroy(){n.destroy()}}}const el=e=>e instanceof Function?e:()=>e;var a1=wt("<title> </title>"),s1=wt('<svg class="svelte-flow__minimap-svg" role="img"><!><!><path class="svelte-flow__minimap-mask" fill-rule="evenodd" pointer-events="none"></path></svg>'),o1=j('<svelte-css-wrapper style="display: contents"><!></svelte-css-wrapper>',1);function Ec(e,t){he(t,!0);let n=fe(t,"position",3,"bottom-right"),r=fe(t,"nodeStrokeColor",3,"transparent"),i=fe(t,"nodeClass",3,""),a=fe(t,"nodeBorderRadius",3,5),o=fe(t,"nodeStrokeWidth",3,2),l=fe(t,"width",3,200),c=fe(t,"height",3,150),u=fe(t,"pannable",3,!0),d=fe(t,"zoomable",3,!0),v=Ir(t,["$$slots","$$events","$$legacy","position","ariaLabel","nodeStrokeColor","nodeColor","nodeClass","nodeBorderRadius","nodeStrokeWidth","nodeComponent","bgColor","maskColor","maskStrokeColor","maskStrokeWidth","width","height","pannable","zoomable","inversePan","zoomStep","class"]),f=R(or),h=R(()=>s(f).ariaLabelConfig);const g=typeof window>"u"||window.chrome?"crispEdges":"geometricPrecision";let p=R(()=>`svelte-flow__minimap-desc-${s(f).flowId}`),m=R(()=>({x:-s(f).viewport.x/s(f).viewport.zoom,y:-s(f).viewport.y/s(f).viewport.zoom,width:s(f).width/s(f).viewport.zoom,height:s(f).height/s(f).viewport.zoom})),y=R(()=>Jf(Xa(s(f).nodeLookup,{filter:k=>!k.hidden}),s(m))),E=R(()=>s(y).width/l()),N=R(()=>s(y).height/c()),I=R(()=>Math.max(s(E),s(N))),C=R(()=>s(I)*l()),L=R(()=>s(I)*c()),q=R(()=>5*s(I)),T=R(()=>s(y).x-(s(C)-s(y).width)/2-s(q)),D=R(()=>s(y).y-(s(L)-s(y).height)/2-s(q)),F=R(()=>s(C)+s(q)*2),S=R(()=>s(L)+s(q)*2);const P=()=>s(I);var H=o1(),x=le(H);{let k=R(()=>["svelte-flow__minimap",t.class]);Vg(x,()=>({"--xy-minimap-background-color-props":t.bgColor})),kc(x.lastChild,Dr({get position(){return n()},get class(){return s(k)},"data-testid":"svelte-flow__minimap"},()=>v,{children:(A,z)=>{var V=tt(),B=le(V);{var Y=K=>{var G=s1();let $;var ee=b(G);{var X=se=>{var ue=a1(),ve=b(ue);Q(()=>{ce(ue,"id",s(p)),W(ve,t.ariaLabel??s(h)["minimap.ariaLabel"])}),O(se,ue)};te(ee,se=>{(t.ariaLabel??s(h)["minimap.ariaLabel"])&&se(X)})}var U=w(ee);Pe(U,17,()=>s(f).nodes,se=>se.id,(se,ue)=>{const ve=R(()=>s(f).nodeLookup.get(s(ue).id));var de=tt(),Ee=le(de);{var _e=Me=>{{let We=R(()=>t.nodeColor===void 0?void 0:el(t.nodeColor)(s(ue))),He=R(()=>el(r())(s(ue))),ke=R(()=>el(i())(s(ue)));i1(Me,{get id(){return s(ve).id},get selected(){return s(ve).selected},get nodeComponent(){return t.nodeComponent},get color(){return s(We)},get borderRadius(){return a()},get strokeColor(){return s(He)},get strokeWidth(){return o()},get shapeRendering(){return g},get class(){return s(ke)}})}},De=R(()=>s(ve)&&$f(s(ve))&&!s(ve).hidden);te(Ee,Me=>{s(De)&&Me(_e)})}O(se,de)});var ae=w(U);qt(G,(se,ue)=>$o==null?void 0:$o(se,ue),()=>({store:s(f),panZoom:s(f).panZoom,getViewScale:P,translateExtent:s(f).translateExtent,width:s(f).width,height:s(f).height,inversePan:t.inversePan,zoomStep:t.zoomStep,pannable:u(),zoomable:d()})),Q(()=>{ce(G,"width",l()),ce(G,"height",c()),ce(G,"viewBox",`${s(T)??""} ${s(D)??""} ${s(F)??""} ${s(S)??""}`),ce(G,"aria-labelledby",s(p)),$=nt(G,"",$,{"--xy-minimap-mask-background-color-props":t.maskColor,"--xy-minimap-mask-stroke-color-props":t.maskStrokeColor,"--xy-minimap-mask-stroke-width-props":t.maskStrokeWidth?t.maskStrokeWidth*s(I):void 0}),ce(ae,"d",`M${s(T)-s(q)},${s(D)-s(q)}h${s(F)+s(q)*2}v${s(S)+s(q)*2}h${-s(F)-s(q)*2}z
7
+ M${s(m).x??""},${s(m).y??""}h${s(m).width??""}v${s(m).height??""}h${-s(m).width}z`)}),O(K,G)};te(B,K=>{s(f).panZoom&&K(Y)})}O(A,V)},$$slots:{default:!0}}))}O(e,H),ge()}var Cv=Object.defineProperty,l1=(e,t,n)=>t in e?Cv(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,c1=(e,t)=>{for(var n in t)Cv(e,n,{get:t[n],enumerable:!0})},u1=(e,t,n)=>l1(e,t+"",n),Nv={};c1(Nv,{Graph:()=>fn,alg:()=>Sc,json:()=>Pv,version:()=>v1});var d1=Object.defineProperty,Iv=(e,t)=>{for(var n in t)d1(e,n,{get:t[n],enumerable:!0})},fn=class{constructor(e){this._isDirected=!0,this._isMultigraph=!1,this._isCompound=!1,this._nodes={},this._in={},this._preds={},this._out={},this._sucs={},this._edgeObjs={},this._edgeLabels={},this._nodeCount=0,this._edgeCount=0,this._defaultNodeLabelFn=()=>{},this._defaultEdgeLabelFn=()=>{},e&&(this._isDirected="directed"in e?e.directed:!0,this._isMultigraph="multigraph"in e?e.multigraph:!1,this._isCompound="compound"in e?e.compound:!1),this._isCompound&&(this._parent={},this._children={},this._children["\0"]={})}isDirected(){return this._isDirected}isMultigraph(){return this._isMultigraph}isCompound(){return this._isCompound}setGraph(e){return this._label=e,this}graph(){return this._label}setDefaultNodeLabel(e){return typeof e!="function"?this._defaultNodeLabelFn=()=>e:this._defaultNodeLabelFn=e,this}nodeCount(){return this._nodeCount}nodes(){return Object.keys(this._nodes)}sources(){return this.nodes().filter(e=>Object.keys(this._in[e]).length===0)}sinks(){return this.nodes().filter(e=>Object.keys(this._out[e]).length===0)}setNodes(e,t){return e.forEach(n=>{t!==void 0?this.setNode(n,t):this.setNode(n)}),this}setNode(e,t){return e in this._nodes?(arguments.length>1&&(this._nodes[e]=t),this):(this._nodes[e]=arguments.length>1?t:this._defaultNodeLabelFn(e),this._isCompound&&(this._parent[e]="\0",this._children[e]={},this._children["\0"][e]=!0),this._in[e]={},this._preds[e]={},this._out[e]={},this._sucs[e]={},++this._nodeCount,this)}node(e){return this._nodes[e]}hasNode(e){return e in this._nodes}removeNode(e){if(e in this._nodes){let t=n=>this.removeEdge(this._edgeObjs[n]);delete this._nodes[e],this._isCompound&&(this._removeFromParentsChildList(e),delete this._parent[e],this.children(e).forEach(n=>{this.setParent(n)}),delete this._children[e]),Object.keys(this._in[e]).forEach(t),delete this._in[e],delete this._preds[e],Object.keys(this._out[e]).forEach(t),delete this._out[e],delete this._sucs[e],--this._nodeCount}return this}setParent(e,t){if(!this._isCompound)throw new Error("Cannot set parent in a non-compound graph");if(t===void 0)t="\0";else{t+="";for(let n=t;n!==void 0;n=this.parent(n))if(n===e)throw new Error("Setting "+t+" as parent of "+e+" would create a cycle");this.setNode(t)}return this.setNode(e),this._removeFromParentsChildList(e),this._parent[e]=t,this._children[t][e]=!0,this}parent(e){if(this._isCompound){let t=this._parent[e];if(t!=="\0")return t}}children(e="\0"){if(this._isCompound){let t=this._children[e];if(t)return Object.keys(t)}else{if(e==="\0")return this.nodes();if(this.hasNode(e))return[]}return[]}predecessors(e){let t=this._preds[e];if(t)return Object.keys(t)}successors(e){let t=this._sucs[e];if(t)return Object.keys(t)}neighbors(e){let t=this.predecessors(e);if(t){let n=new Set(t);for(let r of this.successors(e))n.add(r);return Array.from(n.values())}}isLeaf(e){let t;return this.isDirected()?t=this.successors(e):t=this.neighbors(e),t.length===0}filterNodes(e){let t=new this.constructor({directed:this._isDirected,multigraph:this._isMultigraph,compound:this._isCompound});t.setGraph(this.graph()),Object.entries(this._nodes).forEach(([i,a])=>{e(i)&&t.setNode(i,a)}),Object.values(this._edgeObjs).forEach(i=>{t.hasNode(i.v)&&t.hasNode(i.w)&&t.setEdge(i,this.edge(i))});let n={},r=i=>{let a=this.parent(i);return!a||t.hasNode(a)?(n[i]=a??void 0,a??void 0):a in n?n[a]:r(a)};return this._isCompound&&t.nodes().forEach(i=>t.setParent(i,r(i))),t}setDefaultEdgeLabel(e){return typeof e!="function"?this._defaultEdgeLabelFn=()=>e:this._defaultEdgeLabelFn=e,this}edgeCount(){return this._edgeCount}edges(){return Object.values(this._edgeObjs)}setPath(e,t){return e.reduce((n,r)=>(t!==void 0?this.setEdge(n,r,t):this.setEdge(n,r),r)),this}setEdge(e,t,n,r){let i,a,o,l,c=!1;typeof e=="object"&&e!==null&&"v"in e?(i=e.v,a=e.w,o=e.name,arguments.length===2&&(l=t,c=!0)):(i=e,a=t,o=r,arguments.length>2&&(l=n,c=!0)),i=""+i,a=""+a,o!==void 0&&(o=""+o);let u=aa(this._isDirected,i,a,o);if(u in this._edgeLabels)return c&&(this._edgeLabels[u]=l),this;if(o!==void 0&&!this._isMultigraph)throw new Error("Cannot set a named edge when isMultigraph = false");this.setNode(i),this.setNode(a),this._edgeLabels[u]=c?l:this._defaultEdgeLabelFn(i,a,o);let d=f1(this._isDirected,i,a,o);return i=d.v,a=d.w,Object.freeze(d),this._edgeObjs[u]=d,Au(this._preds[a],i),Au(this._sucs[i],a),this._in[a][u]=d,this._out[i][u]=d,this._edgeCount++,this}edge(e,t,n){let r=arguments.length===1?tl(this._isDirected,e):aa(this._isDirected,e,t,n);return this._edgeLabels[r]}edgeAsObj(e,t,n){let r=arguments.length===1?this.edge(e):this.edge(e,t,n);return typeof r!="object"?{label:r}:r}hasEdge(e,t,n){return(arguments.length===1?tl(this._isDirected,e):aa(this._isDirected,e,t,n))in this._edgeLabels}removeEdge(e,t,n){let r=arguments.length===1?tl(this._isDirected,e):aa(this._isDirected,e,t,n),i=this._edgeObjs[r];if(i){let a=i.v,o=i.w;delete this._edgeLabels[r],delete this._edgeObjs[r],zu(this._preds[o],a),zu(this._sucs[a],o),delete this._in[o][r],delete this._out[a][r],this._edgeCount--}return this}inEdges(e,t){return this.isDirected()?this.filterEdges(this._in[e],e,t):this.nodeEdges(e,t)}outEdges(e,t){return this.isDirected()?this.filterEdges(this._out[e],e,t):this.nodeEdges(e,t)}nodeEdges(e,t){if(e in this._nodes)return this.filterEdges({...this._in[e],...this._out[e]},e,t)}_removeFromParentsChildList(e){delete this._children[this._parent[e]][e]}filterEdges(e,t,n){if(!e)return;let r=Object.values(e);return n?r.filter(i=>i.v===t&&i.w===n||i.v===n&&i.w===t):r}};function Au(e,t){e[t]?e[t]++:e[t]=1}function zu(e,t){e[t]!==void 0&&!--e[t]&&delete e[t]}function aa(e,t,n,r){let i=""+t,a=""+n;if(!e&&i>a){let o=i;i=a,a=o}return i+""+a+""+(r===void 0?"\0":r)}function f1(e,t,n,r){let i=""+t,a=""+n;if(!e&&i>a){let l=i;i=a,a=l}let o={v:i,w:a};return r&&(o.name=r),o}function tl(e,t){return aa(e,t.v,t.w,t.name)}var v1="4.0.1",Pv={};Iv(Pv,{read:()=>p1,write:()=>h1});function h1(e){let t={options:{directed:e.isDirected(),multigraph:e.isMultigraph(),compound:e.isCompound()},nodes:g1(e),edges:m1(e)},n=e.graph();return n!==void 0&&(t.value=structuredClone(n)),t}function g1(e){return e.nodes().map(t=>{let n=e.node(t),r=e.parent(t),i={v:t};return n!==void 0&&(i.value=n),r!==void 0&&(i.parent=r),i})}function m1(e){return e.edges().map(t=>{let n=e.edge(t),r={v:t.v,w:t.w};return t.name!==void 0&&(r.name=t.name),n!==void 0&&(r.value=n),r})}function p1(e){let t=new fn(e.options);return e.value!==void 0&&t.setGraph(e.value),e.nodes.forEach(n=>{t.setNode(n.v,n.value),n.parent&&t.setParent(n.v,n.parent)}),e.edges.forEach(n=>{t.setEdge({v:n.v,w:n.w,name:n.name},n.value)}),t}var Sc={};Iv(Sc,{CycleException:()=>Ws,bellmanFord:()=>Ov,components:()=>y1,dijkstra:()=>Xs,dijkstraAll:()=>k1,findCycles:()=>E1,floydWarshall:()=>C1,isAcyclic:()=>I1,postorder:()=>O1,preorder:()=>M1,prim:()=>T1,shortestPaths:()=>A1,tarjan:()=>Tv,topsort:()=>Av});var _1=()=>1;function Ov(e,t,n,r){return b1(e,String(t),n||_1,r||function(i){return e.outEdges(i)})}function b1(e,t,n,r){let i={},a,o=0,l=e.nodes(),c=function(v){let f=n(v);i[v.v].distance+f<i[v.w].distance&&(i[v.w]={distance:i[v.v].distance+f,predecessor:v.v},a=!0)},u=function(){l.forEach(function(v){r(v).forEach(function(f){let h=f.v===v?f.v:f.w,g=h===f.v?f.w:f.v;c({v:h,w:g})})})};l.forEach(function(v){let f=v===t?0:Number.POSITIVE_INFINITY;i[v]={distance:f,predecessor:""}});let d=l.length;for(let v=1;v<d&&(a=!1,o++,u(),!!a);v++);if(o===d-1&&(a=!1,u(),a))throw new Error("The graph contains a negative weight cycle");return i}function y1(e){let t={},n=[],r;function i(a){a in t||(t[a]=!0,r.push(a),e.successors(a).forEach(i),e.predecessors(a).forEach(i))}return e.nodes().forEach(function(a){r=[],i(a),r.length&&n.push(r)}),n}var Mv=class{constructor(){this._arr=[],this._keyIndices={}}size(){return this._arr.length}keys(){return this._arr.map(e=>e.key)}has(e){return e in this._keyIndices}priority(e){let t=this._keyIndices[e];if(t!==void 0)return this._arr[t].priority}min(){if(this.size()===0)throw new Error("Queue underflow");return this._arr[0].key}add(e,t){let n=this._keyIndices,r=String(e);if(!(r in n)){let i=this._arr,a=i.length;return n[r]=a,i.push({key:r,priority:t}),this._decrease(a),!0}return!1}removeMin(){this._swap(0,this._arr.length-1);let e=this._arr.pop();return delete this._keyIndices[e.key],this._heapify(0),e.key}decrease(e,t){let n=this._keyIndices[e];if(n===void 0)throw new Error(`Key not found: ${e}`);let r=this._arr[n].priority;if(t>r)throw new Error(`New priority is greater than current priority. Key: ${e} Old: ${r} New: ${t}`);this._arr[n].priority=t,this._decrease(n)}_heapify(e){let t=this._arr,n=2*e,r=n+1,i=e;n<t.length&&(i=t[n].priority<t[i].priority?n:i,r<t.length&&(i=t[r].priority<t[i].priority?r:i),i!==e&&(this._swap(e,i),this._heapify(i)))}_decrease(e){let t=this._arr,n=t[e].priority,r;for(;e!==0&&(r=e>>1,!(t[r].priority<n));)this._swap(e,r),e=r}_swap(e,t){let n=this._arr,r=this._keyIndices,i=n[e],a=n[t];n[e]=a,n[t]=i,r[a.key]=e,r[i.key]=t}},w1=()=>1;function Xs(e,t,n,r){let i=function(a){return e.outEdges(a)};return x1(e,String(t),n||w1,r||i)}function x1(e,t,n,r){let i={},a=new Mv,o,l,c=function(u){let d=u.v!==o?u.v:u.w,v=i[d],f=n(u),h=l.distance+f;if(f<0)throw new Error("dijkstra does not allow negative edge weights. Bad edge: "+u+" Weight: "+f);h<v.distance&&(v.distance=h,v.predecessor=o,a.decrease(d,h))};for(e.nodes().forEach(function(u){let d=u===t?0:Number.POSITIVE_INFINITY;i[u]={distance:d,predecessor:""},a.add(u,d)});a.size()>0&&(o=a.removeMin(),l=i[o],l.distance!==Number.POSITIVE_INFINITY);)r(o).forEach(c);return i}function k1(e,t,n){return e.nodes().reduce(function(r,i){return r[i]=Xs(e,i,t,n),r},{})}function Tv(e){let t=0,n=[],r={},i=[];function a(o){let l=r[o]={onStack:!0,lowlink:t,index:t++};if(n.push(o),e.successors(o).forEach(function(c){c in r?r[c].onStack&&(l.lowlink=Math.min(l.lowlink,r[c].index)):(a(c),l.lowlink=Math.min(l.lowlink,r[c].lowlink))}),l.lowlink===l.index){let c=[],u;do u=n.pop(),r[u].onStack=!1,c.push(u);while(o!==u);i.push(c)}}return e.nodes().forEach(function(o){o in r||a(o)}),i}function E1(e){return Tv(e).filter(function(t){return t.length>1||t.length===1&&e.hasEdge(t[0],t[0])})}var S1=()=>1;function C1(e,t,n){return N1(e,t||S1,n||function(r){return e.outEdges(r)})}function N1(e,t,n){let r={},i=e.nodes();return i.forEach(function(a){r[a]={},r[a][a]={distance:0,predecessor:""},i.forEach(function(o){a!==o&&(r[a][o]={distance:Number.POSITIVE_INFINITY,predecessor:""})}),n(a).forEach(function(o){let l=o.v===a?o.w:o.v,c=t(o);r[a][l]={distance:c,predecessor:a}})}),i.forEach(function(a){let o=r[a];i.forEach(function(l){let c=r[l];i.forEach(function(u){let d=c[a],v=o[u],f=c[u],h=d.distance+v.distance;h<f.distance&&(f.distance=h,f.predecessor=v.predecessor)})})}),r}var Ws=class extends Error{constructor(...e){super(...e)}};function Av(e){let t={},n={},r=[];function i(a){if(a in n)throw new Ws;a in t||(n[a]=!0,t[a]=!0,e.predecessors(a).forEach(i),delete n[a],r.push(a))}if(e.sinks().forEach(i),Object.keys(t).length!==e.nodeCount())throw new Ws;return r}function I1(e){try{Av(e)}catch(t){if(t instanceof Ws)return!1;throw t}return!0}function P1(e,t,n,r,i){Array.isArray(t)||(t=[t]);let a=(l=>{var c;return(c=e.isDirected()?e.successors(l):e.neighbors(l))!=null?c:[]}),o={};return t.forEach(function(l){if(!e.hasNode(l))throw new Error("Graph does not have node: "+l);i=zv(e,l,n==="post",o,a,r,i)}),i}function zv(e,t,n,r,i,a,o){return t in r||(r[t]=!0,n||(o=a(o,t)),i(t).forEach(function(l){o=zv(e,l,n,r,i,a,o)}),n&&(o=a(o,t))),o}function Dv(e,t,n){return P1(e,t,n,function(r,i){return r.push(i),r},[])}function O1(e,t){return Dv(e,t,"post")}function M1(e,t){return Dv(e,t,"pre")}function T1(e,t){let n=new fn,r={},i=new Mv,a;function o(c){let u=c.v===a?c.w:c.v,d=i.priority(u);if(d!==void 0){let v=t(c);v<d&&(r[u]=a,i.decrease(u,v))}}if(e.nodeCount()===0)return n;e.nodes().forEach(function(c){i.add(c,Number.POSITIVE_INFINITY),n.setNode(c)}),i.decrease(e.nodes()[0],0);let l=!1;for(;i.size()>0;){if(a=i.removeMin(),a in r)n.setEdge(a,r[a]);else{if(l)throw new Error("Input graph is not connected: "+e);l=!0}e.nodeEdges(a).forEach(o)}return n}function A1(e,t,n,r){return z1(e,t,n,r??(i=>{let a=e.outEdges(i);return a??[]}))}function z1(e,t,n,r){if(n===void 0)return Xs(e,t,n,r);let i=!1,a=e.nodes();for(let o=0;o<a.length;o++){let l=r(a[o]);for(let c=0;c<l.length;c++){let u=l[c],d=u.v===a[o]?u.v:u.w,v=d===u.v?u.w:u.v;n({v:d,w:v})<0&&(i=!0)}if(i)return Ov(e,t,n,r)}return Xs(e,t,n,r)}function Wi(e,t,n,r){let i=r;for(;e.hasNode(i);)i=Cc(r);return n.dummy=t,e.setNode(i,n),i}function D1(e){let t=new fn().setGraph(e.graph());return e.nodes().forEach(n=>t.setNode(n,e.node(n))),e.edges().forEach(n=>{let r=t.edge(n.v,n.w)||{weight:0,minlen:1},i=e.edge(n);t.setEdge(n.v,n.w,{weight:r.weight+i.weight,minlen:Math.max(r.minlen,i.minlen)})}),t}function Lv(e){let t=new fn({multigraph:e.isMultigraph()}).setGraph(e.graph());return e.nodes().forEach(n=>{e.children(n).length||t.setNode(n,e.node(n))}),e.edges().forEach(n=>{t.setEdge(n,e.edge(n))}),t}function Du(e,t){let n=e.x,r=e.y,i=t.x-n,a=t.y-r,o=e.width/2,l=e.height/2;if(!i&&!a)throw new Error("Not possible to find intersection inside of the rectangle");let c,u;return Math.abs(a)*o>Math.abs(i)*l?(a<0&&(l=-l),c=l*i/a,u=l):(i<0&&(o=-o),c=o,u=o*a/i),{x:n+c,y:r+u}}function Ua(e){let t=ka(jv(e)+1).map(()=>[]);return e.nodes().forEach(n=>{let r=e.node(n),i=r.rank;i!==void 0&&(t[i]||(t[i]=[]),t[i][r.order]=n)}),t}function L1(e){let t=e.nodes().map(r=>{let i=e.node(r).rank;return i===void 0?Number.MAX_VALUE:i}),n=An(Math.min,t);e.nodes().forEach(r=>{let i=e.node(r);Object.hasOwn(i,"rank")&&(i.rank-=n)})}function R1(e){let t=e.nodes().map(o=>e.node(o).rank).filter(o=>o!==void 0),n=An(Math.min,t),r=[];e.nodes().forEach(o=>{let l=e.node(o).rank-n;r[l]||(r[l]=[]),r[l].push(o)});let i=0,a=e.graph().nodeRankFactor;Array.from(r).forEach((o,l)=>{o===void 0&&l%a!==0?--i:o!==void 0&&i&&o.forEach(c=>e.node(c).rank+=i)})}function Lu(e,t,n,r){let i={width:0,height:0};return arguments.length>=4&&(i.rank=n,i.order=r),Wi(e,"border",i,t)}function j1(e,t=Rv){let n=[];for(let r=0;r<e.length;r+=t){let i=e.slice(r,r+t);n.push(i)}return n}var Rv=65535;function An(e,t){if(t.length>Rv){let n=j1(t);return e(...n.map(r=>e(...r)))}else return e(...t)}function jv(e){let t=e.nodes().map(n=>{let r=e.node(n).rank;return r===void 0?Number.MIN_VALUE:r});return An(Math.max,t)}function q1(e,t){let n={lhs:[],rhs:[]};return e.forEach(r=>{t(r)?n.lhs.push(r):n.rhs.push(r)}),n}function qv(e,t){let n=Date.now();try{return t()}finally{console.log(e+" time: "+(Date.now()-n)+"ms")}}function Vv(e,t){return t()}var V1=0;function Cc(e){let t=++V1;return e+(""+t)}function ka(e,t,n=1){t==null&&(t=e,e=0);let r=a=>a<t;n<0&&(r=a=>t<a);let i=[];for(let a=e;r(a);a+=n)i.push(a);return i}function Gs(e,t){let n={};for(let r of t)e[r]!==void 0&&(n[r]=e[r]);return n}function bo(e,t){let n;return typeof t=="string"?n=r=>r[t]:n=t,Object.entries(e).reduce((r,[i,a])=>(r[i]=n(a,i),r),{})}function H1(e,t){return e.reduce((n,r,i)=>(n[r]=t[i],n),{})}var yo="\0",F1="3.0.0",B1=class{constructor(){u1(this,"_sentinel");let e={};e._next=e._prev=e,this._sentinel=e}dequeue(){let e=this._sentinel,t=e._prev;if(t!==e)return Ru(t),t}enqueue(e){let t=this._sentinel;e._prev&&e._next&&Ru(e),e._next=t._next,t._next._prev=e,t._next=e,e._prev=t}toString(){let e=[],t=this._sentinel,n=t._prev;for(;n!==t;)e.push(JSON.stringify(n,K1)),n=n._prev;return"["+e.join(", ")+"]"}};function Ru(e){e._prev._next=e._next,e._next._prev=e._prev,delete e._next,delete e._prev}function K1(e,t){if(e!=="_next"&&e!=="_prev")return t}var Y1=B1,X1=()=>1;function W1(e,t){if(e.nodeCount()<=1)return[];let n=Z1(e,t||X1);return G1(n.graph,n.buckets,n.zeroIdx).flatMap(r=>e.outEdges(r.v,r.w)||[])}function G1(e,t,n){var r;let i=[],a=t[t.length-1],o=t[0],l;for(;e.nodeCount();){for(;l=o.dequeue();)nl(e,t,n,l);for(;l=a.dequeue();)nl(e,t,n,l);if(e.nodeCount()){for(let c=t.length-2;c>0;--c)if(l=(r=t[c])==null?void 0:r.dequeue(),l){i=i.concat(nl(e,t,n,l,!0)||[]);break}}}return i}function nl(e,t,n,r,i){let a=[],o=i?a:void 0;return(e.inEdges(r.v)||[]).forEach(l=>{let c=e.edge(l),u=e.node(l.v);i&&a.push({v:l.v,w:l.w}),u.out-=c,Hl(t,n,u)}),(e.outEdges(r.v)||[]).forEach(l=>{let c=e.edge(l),u=l.w,d=e.node(u);d.in-=c,Hl(t,n,d)}),e.removeNode(r.v),o}function Z1(e,t){let n=new fn,r=0,i=0;e.nodes().forEach(l=>{n.setNode(l,{v:l,in:0,out:0})}),e.edges().forEach(l=>{let c=n.edge(l.v,l.w)||0,u=t(l),d=c+u;n.setEdge(l.v,l.w,d);let v=n.node(l.v),f=n.node(l.w);i=Math.max(i,v.out+=u),r=Math.max(r,f.in+=u)});let a=U1(i+r+3).map(()=>new Y1),o=r+1;return n.nodes().forEach(l=>{Hl(a,o,n.node(l))}),{graph:n,buckets:a,zeroIdx:o}}function Hl(e,t,n){var r,i,a;n.out?n.in?(a=e[n.out-n.in+t])==null||a.enqueue(n):(i=e[e.length-1])==null||i.enqueue(n):(r=e[0])==null||r.enqueue(n)}function U1(e){let t=[];for(let n=0;n<e;n++)t.push(n);return t}function Q1(e){(e.graph().acyclicer==="greedy"?W1(e,t(e)):J1(e)).forEach(n=>{let r=e.edge(n);e.removeEdge(n),r.forwardName=n.name,r.reversed=!0,e.setEdge(n.w,n.v,r,Cc("rev"))});function t(n){return r=>n.edge(r).weight}}function J1(e){let t=[],n={},r={};function i(a){Object.hasOwn(r,a)||(r[a]=!0,n[a]=!0,e.outEdges(a).forEach(o=>{Object.hasOwn(n,o.w)?t.push(o):i(o.w)}),delete n[a])}return e.nodes().forEach(i),t}function $1(e){e.edges().forEach(t=>{let n=e.edge(t);if(n.reversed){e.removeEdge(t);let r=n.forwardName;delete n.reversed,delete n.forwardName,e.setEdge(t.w,t.v,n,r)}})}function ex(e){e.graph().dummyChains=[],e.edges().forEach(t=>tx(e,t))}function tx(e,t){let n=t.v,r=e.node(n).rank,i=t.w,a=e.node(i).rank,o=t.name,l=e.edge(t),c=l.labelRank;if(a===r+1)return;e.removeEdge(t);let u,d,v;for(v=0,++r;r<a;++v,++r)l.points=[],d={width:0,height:0,edgeLabel:l,edgeObj:t,rank:r},u=Wi(e,"edge",d,"_d"),r===c&&(d.width=l.width,d.height=l.height,d.dummy="edge-label",d.labelpos=l.labelpos),e.setEdge(n,u,{weight:l.weight},o),v===0&&e.graph().dummyChains.push(u),n=u;e.setEdge(n,i,{weight:l.weight},o)}function nx(e){e.graph().dummyChains.forEach(t=>{let n=e.node(t),r=n.edgeLabel,i;for(e.setEdge(n.edgeObj,r);n.dummy;)i=e.successors(t)[0],e.removeNode(t),r.points.push({x:n.x,y:n.y}),n.dummy==="edge-label"&&(r.x=n.x,r.y=n.y,r.width=n.width,r.height=n.height),t=i,n=e.node(t)})}function Nc(e){let t={};function n(r){let i=e.node(r);if(Object.hasOwn(t,r))return i.rank;t[r]=!0;let a=e.outEdges(r),o=a?a.map(c=>c==null?Number.POSITIVE_INFINITY:n(c.w)-e.edge(c).minlen):[],l=An(Math.min,o);return l===Number.POSITIVE_INFINITY&&(l=0),i.rank=l}e.sources().forEach(n)}function Hi(e,t){return e.node(t.w).rank-e.node(t.v).rank-e.edge(t).minlen}var Hv=rx;function rx(e){let t=new fn({directed:!1}),n=e.nodes();if(n.length===0)throw new Error("Graph must have at least one node");let r=n[0],i=e.nodeCount();t.setNode(r,{});let a,o;for(;ix(t,e)<i&&(a=ax(t,e),!!a);)o=t.hasNode(a.v)?Hi(e,a):-Hi(e,a),sx(t,e,o);return t}function ix(e,t){function n(r){let i=t.nodeEdges(r);i&&i.forEach(a=>{let o=a.v,l=r===o?a.w:o;!e.hasNode(l)&&!Hi(t,a)&&(e.setNode(l,{}),e.setEdge(r,l,{}),n(l))})}return e.nodes().forEach(n),e.nodeCount()}function ax(e,t){return t.edges().reduce((n,r)=>{let i=Number.POSITIVE_INFINITY;return e.hasNode(r.v)!==e.hasNode(r.w)&&(i=Hi(t,r)),i<n[0]?[i,r]:n},[Number.POSITIVE_INFINITY,null])[1]}function sx(e,t,n){e.nodes().forEach(r=>t.node(r).rank+=n)}var{preorder:ox,postorder:lx}=Sc,cx=ai;ai.initLowLimValues=Pc;ai.initCutValues=Ic;ai.calcCutValue=Fv;ai.leaveEdge=Kv;ai.enterEdge=Yv;ai.exchangeEdges=Xv;function ai(e){e=D1(e),Nc(e);let t=Hv(e);Pc(t),Ic(t,e);let n,r;for(;n=Kv(t);)r=Yv(t,e,n),Xv(t,e,n,r)}function Ic(e,t){let n=lx(e,e.nodes());n=n.slice(0,n.length-1),n.forEach(r=>ux(e,t,r))}function ux(e,t,n){let r=e.node(n).parent,i=e.edge(n,r);i.cutvalue=Fv(e,t,n)}function Fv(e,t,n){let r=e.node(n).parent,i=!0,a=t.edge(n,r),o=0;a||(i=!1,a=t.edge(r,n)),o=a.weight;let l=t.nodeEdges(n);return l&&l.forEach(c=>{let u=c.v===n,d=u?c.w:c.v;if(d!==r){let v=u===i,f=t.edge(c).weight;if(o+=v?f:-f,fx(e,n,d)){let h=e.edge(n,d).cutvalue;o+=v?-h:h}}}),o}function Pc(e,t){arguments.length<2&&(t=e.nodes()[0]),Bv(e,{},1,t)}function Bv(e,t,n,r,i){let a=n,o=e.node(r);t[r]=!0;let l=e.neighbors(r);return l&&l.forEach(c=>{Object.hasOwn(t,c)||(n=Bv(e,t,n,c,r))}),o.low=a,o.lim=n++,i?o.parent=i:delete o.parent,n}function Kv(e){return e.edges().find(t=>e.edge(t).cutvalue<0)}function Yv(e,t,n){let r=n.v,i=n.w;t.hasEdge(r,i)||(r=n.w,i=n.v);let a=e.node(r),o=e.node(i),l=a,c=!1;return a.lim>o.lim&&(l=o,c=!0),t.edges().filter(u=>c===ju(e,e.node(u.v),l)&&c!==ju(e,e.node(u.w),l)).reduce((u,d)=>Hi(t,d)<Hi(t,u)?d:u)}function Xv(e,t,n,r){let i=n.v,a=n.w;e.removeEdge(i,a),e.setEdge(r.v,r.w,{}),Pc(e),Ic(e,t),dx(e,t)}function dx(e,t){let n=e.nodes().find(i=>!e.node(i).parent);if(!n)return;let r=ox(e,[n]);r=r.slice(1),r.forEach(i=>{let a=e.node(i).parent,o=t.edge(i,a),l=!1;o||(o=t.edge(a,i),l=!0),t.node(i).rank=t.node(a).rank+(l?o.minlen:-o.minlen)})}function fx(e,t,n){return e.hasEdge(t,n)}function ju(e,t,n){return n.low<=t.lim&&t.lim<=n.lim}var vx=hx;function hx(e){let t=e.graph().ranker;if(typeof t=="function")return t(e);switch(t){case"network-simplex":qu(e);break;case"tight-tree":mx(e);break;case"longest-path":gx(e);break;case"none":break;default:qu(e)}}var gx=Nc;function mx(e){Nc(e),Hv(e)}function qu(e){cx(e)}var px=_x;function _x(e){let t=yx(e);e.graph().dummyChains.forEach(n=>{let r=e.node(n),i=r.edgeObj,a=bx(e,t,i.v,i.w),o=a.path,l=a.lca,c=0,u=o[c],d=!0;for(;n!==i.w;){if(r=e.node(n),d){for(;(u=o[c])!==l&&e.node(u).maxRank<r.rank;)c++;u===l&&(d=!1)}if(!d){for(;c<o.length-1&&e.node(o[c+1]).minRank<=r.rank;)c++;u=o[c]}u!==void 0&&e.setParent(n,u),n=e.successors(n)[0]}})}function bx(e,t,n,r){let i=[],a=[],o=Math.min(t[n].low,t[r].low),l=Math.max(t[n].lim,t[r].lim),c;c=n;do c=e.parent(c),i.push(c);while(c&&(t[c].low>o||l>t[c].lim));let u=c,d=r;for(;(d=e.parent(d))!==u;)a.push(d);return{path:i.concat(a.reverse()),lca:u}}function yx(e){let t={},n=0;function r(i){let a=n;e.children(i).forEach(r),t[i]={low:a,lim:n++}}return e.children(yo).forEach(r),t}function wx(e){let t=Wi(e,"root",{},"_root"),n=xx(e),r=Object.values(n),i=An(Math.max,r)-1,a=2*i+1;e.graph().nestingRoot=t,e.edges().forEach(l=>e.edge(l).minlen*=a);let o=kx(e)+1;e.children(yo).forEach(l=>Wv(e,t,a,o,i,n,l)),e.graph().nodeRankFactor=a}function Wv(e,t,n,r,i,a,o){var l;let c=e.children(o);if(!c.length){o!==t&&e.setEdge(t,o,{weight:0,minlen:n});return}let u=Lu(e,"_bt"),d=Lu(e,"_bb"),v=e.node(o);e.setParent(u,o),v.borderTop=u,e.setParent(d,o),v.borderBottom=d,c.forEach(f=>{var h;Wv(e,t,n,r,i,a,f);let g=e.node(f),p=g.borderTop?g.borderTop:f,m=g.borderBottom?g.borderBottom:f,y=g.borderTop?r:2*r,E=p!==m?1:i-((h=a[o])!=null?h:0)+1;e.setEdge(u,p,{weight:y,minlen:E,nestingEdge:!0}),e.setEdge(m,d,{weight:y,minlen:E,nestingEdge:!0})}),e.parent(o)||e.setEdge(t,u,{weight:0,minlen:i+((l=a[o])!=null?l:0)})}function xx(e){let t={};function n(r,i){let a=e.children(r);a&&a.length&&a.forEach(o=>n(o,i+1)),t[r]=i}return e.children(yo).forEach(r=>n(r,1)),t}function kx(e){return e.edges().reduce((t,n)=>t+e.edge(n).weight,0)}function Ex(e){let t=e.graph();e.removeNode(t.nestingRoot),delete t.nestingRoot,e.edges().forEach(n=>{e.edge(n).nestingEdge&&e.removeEdge(n)})}var Sx=Cx;function Cx(e){function t(n){let r=e.children(n),i=e.node(n);if(r.length&&r.forEach(t),Object.hasOwn(i,"minRank")){i.borderLeft=[],i.borderRight=[];for(let a=i.minRank,o=i.maxRank+1;a<o;++a)Vu(e,"borderLeft","_bl",n,i,a),Vu(e,"borderRight","_br",n,i,a)}}e.children(yo).forEach(t)}function Vu(e,t,n,r,i,a){let o={width:0,height:0,rank:a,borderType:t},l=i[t][a-1],c=Wi(e,"border",o,n);i[t][a]=c,e.setParent(c,r),l&&e.setEdge(l,c,{weight:1})}function Nx(e){var t;let n=(t=e.graph().rankdir)==null?void 0:t.toLowerCase();(n==="lr"||n==="rl")&&Gv(e)}function Ix(e){var t;let n=(t=e.graph().rankdir)==null?void 0:t.toLowerCase();(n==="bt"||n==="rl")&&Px(e),(n==="lr"||n==="rl")&&(Ox(e),Gv(e))}function Gv(e){e.nodes().forEach(t=>Hu(e.node(t))),e.edges().forEach(t=>Hu(e.edge(t)))}function Hu(e){let t=e.width;e.width=e.height,e.height=t}function Px(e){e.nodes().forEach(t=>rl(e.node(t))),e.edges().forEach(t=>{var n;let r=e.edge(t);(n=r.points)==null||n.forEach(rl),Object.hasOwn(r,"y")&&rl(r)})}function rl(e){e.y=-e.y}function Ox(e){e.nodes().forEach(t=>il(e.node(t))),e.edges().forEach(t=>{var n;let r=e.edge(t);(n=r.points)==null||n.forEach(il),Object.hasOwn(r,"x")&&il(r)})}function il(e){let t=e.x;e.x=e.y,e.y=t}function Mx(e){let t={},n=e.nodes().filter(l=>!e.children(l).length),r=n.map(l=>e.node(l).rank),i=An(Math.max,r),a=ka(i+1).map(()=>[]);function o(l){if(t[l])return;t[l]=!0;let c=e.node(l);a[c.rank].push(l);let u=e.successors(l);u&&u.forEach(o)}return n.sort((l,c)=>e.node(l).rank-e.node(c).rank).forEach(o),a}function Tx(e,t){let n=0;for(let r=1;r<t.length;++r)n+=Ax(e,t[r-1],t[r]);return n}function Ax(e,t,n){let r=H1(n,n.map((u,d)=>d)),i=t.flatMap(u=>{let d=e.outEdges(u);return d?d.map(v=>({pos:r[v.w],weight:e.edge(v).weight})).sort((v,f)=>v.pos-f.pos):[]}),a=1;for(;a<n.length;)a<<=1;let o=2*a-1;a-=1;let l=new Array(o).fill(0),c=0;return i.forEach(u=>{let d=u.pos+a;l[d]+=u.weight;let v=0;for(;d>0;)d%2&&(v+=l[d+1]),d=d-1>>1,l[d]+=u.weight;c+=u.weight*v}),c}function zx(e,t=[]){return t.map(n=>{let r=e.inEdges(n);if(!r||!r.length)return{v:n};{let i=r.reduce((a,o)=>{let l=e.edge(o),c=e.node(o.v);return{sum:a.sum+l.weight*c.order,weight:a.weight+l.weight}},{sum:0,weight:0});return{v:n,barycenter:i.sum/i.weight,weight:i.weight}}})}function Dx(e,t){let n={};e.forEach((i,a)=>{let o={indegree:0,in:[],out:[],vs:[i.v],i:a};i.barycenter!==void 0&&(o.barycenter=i.barycenter,o.weight=i.weight),n[i.v]=o}),t.edges().forEach(i=>{let a=n[i.v],o=n[i.w];a!==void 0&&o!==void 0&&(o.indegree++,a.out.push(o))});let r=Object.values(n).filter(i=>!i.indegree);return Lx(r)}function Lx(e){let t=[];function n(i){return a=>{a.merged||(a.barycenter===void 0||i.barycenter===void 0||a.barycenter>=i.barycenter)&&Rx(i,a)}}function r(i){return a=>{a.in.push(i),--a.indegree===0&&e.push(a)}}for(;e.length;){let i=e.pop();t.push(i),i.in.reverse().forEach(n(i)),i.out.forEach(r(i))}return t.filter(i=>!i.merged).map(i=>Gs(i,["vs","i","barycenter","weight"]))}function Rx(e,t){let n=0,r=0;e.weight&&(n+=e.barycenter*e.weight,r+=e.weight),t.weight&&(n+=t.barycenter*t.weight,r+=t.weight),e.vs=t.vs.concat(e.vs),e.barycenter=n/r,e.weight=r,e.i=Math.min(t.i,e.i),t.merged=!0}function jx(e,t){let n=q1(e,d=>Object.hasOwn(d,"barycenter")),r=n.lhs,i=n.rhs.sort((d,v)=>v.i-d.i),a=[],o=0,l=0,c=0;r.sort(qx(!!t)),c=Fu(a,i,c),r.forEach(d=>{c+=d.vs.length,a.push(d.vs),o+=d.barycenter*d.weight,l+=d.weight,c=Fu(a,i,c)});let u={vs:a.flat(1)};return l&&(u.barycenter=o/l,u.weight=l),u}function Fu(e,t,n){let r;for(;t.length&&(r=t[t.length-1]).i<=n;)t.pop(),e.push(r.vs),n++;return n}function qx(e){return(t,n)=>t.barycenter<n.barycenter?-1:t.barycenter>n.barycenter?1:e?n.i-t.i:t.i-n.i}function Zv(e,t,n,r){let i=e.children(t),a=e.node(t),o=a?a.borderLeft:void 0,l=a?a.borderRight:void 0,c={};o&&(i=i.filter(f=>f!==o&&f!==l));let u=zx(e,i);u.forEach(f=>{if(e.children(f.v).length){let h=Zv(e,f.v,n,r);c[f.v]=h,Object.hasOwn(h,"barycenter")&&Hx(f,h)}});let d=Dx(u,n);Vx(d,c);let v=jx(d,r);if(o&&l){v.vs=[o,v.vs,l].flat(1);let f=e.predecessors(o);if(f&&f.length){let h=e.node(f[0]),g=e.predecessors(l),p=e.node(g[0]);Object.hasOwn(v,"barycenter")||(v.barycenter=0,v.weight=0),v.barycenter=(v.barycenter*v.weight+h.order+p.order)/(v.weight+2),v.weight+=2}}return v}function Vx(e,t){e.forEach(n=>{n.vs=n.vs.flatMap(r=>t[r]?t[r].vs:r)})}function Hx(e,t){e.barycenter!==void 0?(e.barycenter=(e.barycenter*e.weight+t.barycenter*t.weight)/(e.weight+t.weight),e.weight+=t.weight):(e.barycenter=t.barycenter,e.weight=t.weight)}function Fx(e,t,n,r){r||(r=e.nodes());let i=Bx(e),a=new fn({compound:!0}).setGraph({root:i}).setDefaultNodeLabel(o=>e.node(o));return r.forEach(o=>{let l=e.node(o),c=e.parent(o);if(l.rank===t||l.minRank<=t&&t<=l.maxRank){a.setNode(o),a.setParent(o,c||i);let u=e[n](o);u&&u.forEach(d=>{let v=d.v===o?d.w:d.v,f=a.edge(v,o),h=f!==void 0?f.weight:0;a.setEdge(v,o,{weight:e.edge(d).weight+h})}),Object.hasOwn(l,"minRank")&&a.setNode(o,{borderLeft:l.borderLeft[t],borderRight:l.borderRight[t]})}}),a}function Bx(e){let t;for(;e.hasNode(t=Cc("_root")););return t}function Kx(e,t,n){let r={},i;n.forEach(a=>{let o=e.parent(a),l,c;for(;o;){if(l=e.parent(o),l?(c=r[l],r[l]=o):(c=i,i=o),c&&c!==o){t.setEdge(c,o);return}o=l}})}function Uv(e,t={}){if(typeof t.customOrder=="function"){t.customOrder(e,Uv);return}let n=jv(e),r=Bu(e,ka(1,n+1),"inEdges"),i=Bu(e,ka(n-1,-1,-1),"outEdges"),a=Mx(e);if(Ku(e,a),t.disableOptimalOrderHeuristic)return;let o=Number.POSITIVE_INFINITY,l,c=t.constraints||[];for(let u=0,d=0;d<4;++u,++d){Yx(u%2?r:i,u%4>=2,c),a=Ua(e);let v=Tx(e,a);v<o?(d=0,l=Object.assign({},a),o=v):v===o&&(l=structuredClone(a))}Ku(e,l)}function Bu(e,t,n){let r=new Map,i=(a,o)=>{r.has(a)||r.set(a,[]),r.get(a).push(o)};for(let a of e.nodes()){let o=e.node(a);if(typeof o.rank=="number"&&i(o.rank,a),typeof o.minRank=="number"&&typeof o.maxRank=="number")for(let l=o.minRank;l<=o.maxRank;l++)l!==o.rank&&i(l,a)}return t.map(function(a){return Fx(e,a,n,r.get(a)||[])})}function Yx(e,t,n){let r=new fn;e.forEach(function(i){n.forEach(l=>r.setEdge(l.left,l.right));let a=i.graph().root,o=Zv(i,a,r,t);o.vs.forEach((l,c)=>i.node(l).order=c),Kx(i,r,o.vs)})}function Ku(e,t){Object.values(t).forEach(n=>n.forEach((r,i)=>e.node(r).order=i))}function Xx(e,t){let n={};function r(i,a){let o=0,l=0,c=i.length,u=a[a.length-1];return a.forEach((d,v)=>{let f=Gx(e,d),h=f?e.node(f).order:c;(f||d===u)&&(a.slice(l,v+1).forEach(g=>{let p=e.predecessors(g);p&&p.forEach(m=>{let y=e.node(m),E=y.order;(E<o||h<E)&&!(y.dummy&&e.node(g).dummy)&&Qv(n,m,g)})}),l=v+1,o=h)}),a}return t.length&&t.reduce(r),n}function Wx(e,t){let n={};function r(a,o,l,c,u){ka(o,l).forEach(d=>{let v=a[d];if(v!==void 0&&e.node(v).dummy){let f=e.predecessors(v);f&&f.forEach(h=>{if(h===void 0)return;let g=e.node(h);g.dummy&&(g.order<c||g.order>u)&&Qv(n,h,v)})}})}function i(a,o){let l=-1,c=-1,u=0;return o.forEach((d,v)=>{if(e.node(d).dummy==="border"){let f=e.predecessors(d);if(f&&f.length){let h=f[0];if(h===void 0)return;c=e.node(h).order,r(o,u,v,l,c),u=v,l=c}}r(o,u,o.length,c,a.length)}),o}return t.length&&t.reduce(i),n}function Gx(e,t){if(e.node(t).dummy){let n=e.predecessors(t);if(n)return n.find(r=>e.node(r).dummy)}}function Qv(e,t,n){if(t>n){let i=t;t=n,n=i}let r=e[t];r||(e[t]=r={}),r[n]=!0}function Zx(e,t,n){if(t>n){let i=t;t=n,n=i}let r=e[t];return r!==void 0&&Object.hasOwn(r,n)}function Ux(e,t,n,r){let i={},a={},o={};return t.forEach(l=>{l.forEach((c,u)=>{i[c]=c,a[c]=c,o[c]=u})}),t.forEach(l=>{let c=-1;l.forEach(u=>{let d=r(u);if(d&&d.length){let v=d.sort((h,g)=>{let p=o[h],m=o[g];return(p!==void 0?p:0)-(m!==void 0?m:0)}),f=(v.length-1)/2;for(let h=Math.floor(f),g=Math.ceil(f);h<=g;++h){let p=v[h];if(p===void 0)continue;let m=o[p];if(m!==void 0&&a[u]===u&&c<m&&!Zx(n,u,p)){let y=i[p];y!==void 0&&(a[p]=u,a[u]=i[u]=y,c=m)}}}})}),{root:i,align:a}}function Qx(e,t,n,r,i=!1){let a={},o=Jx(e,t,n,i),l=i?"borderLeft":"borderRight";function c(h,g){let p=o.nodes().slice(),m={},y=p.pop();for(;y;){if(m[y])h(y);else{m[y]=!0,p.push(y);for(let E of g(y))p.push(E)}y=p.pop()}}function u(h){let g=o.inEdges(h);g?a[h]=g.reduce((p,m)=>{var y;let E=(y=a[m.v])!=null?y:0,N=o.edge(m);return Math.max(p,E+(N!==void 0?N:0))},0):a[h]=0}function d(h){let g=o.outEdges(h),p=Number.POSITIVE_INFINITY;g&&(p=g.reduce((y,E)=>{let N=a[E.w],I=o.edge(E);return Math.min(y,(N!==void 0?N:0)-(I!==void 0?I:0))},Number.POSITIVE_INFINITY));let m=e.node(h);p!==Number.POSITIVE_INFINITY&&m.borderType!==l&&(a[h]=Math.max(a[h]!==void 0?a[h]:0,p))}function v(h){return o.predecessors(h)||[]}function f(h){return o.successors(h)||[]}return c(u,v),c(d,f),Object.keys(r).forEach(h=>{var g;let p=n[h];p!==void 0&&(a[h]=(g=a[p])!=null?g:0)}),a}function Jx(e,t,n,r){let i=new fn,a=e.graph(),o=r2(a.nodesep,a.edgesep,r);return t.forEach(l=>{let c;l.forEach(u=>{let d=n[u];if(d!==void 0){if(i.setNode(d),c!==void 0){let v=n[c];if(v!==void 0){let f=i.edge(v,d);i.setEdge(v,d,Math.max(o(e,u,c),f||0))}}c=u}})}),i}function $x(e,t){return Object.values(t).reduce((n,r)=>{let i=Number.NEGATIVE_INFINITY,a=Number.POSITIVE_INFINITY;Object.entries(r).forEach(([l,c])=>{let u=i2(e,l)/2;i=Math.max(c+u,i),a=Math.min(c-u,a)});let o=i-a;return o<n[0]&&(n=[o,r]),n},[Number.POSITIVE_INFINITY,null])[1]}function e2(e,t){let n=Object.values(t),r=An(Math.min,n),i=An(Math.max,n);["u","d"].forEach(a=>{["l","r"].forEach(o=>{let l=a+o,c=e[l];if(!c||c===t)return;let u=Object.values(c),d=r-An(Math.min,u);o!=="l"&&(d=i-An(Math.max,u)),d&&(e[l]=bo(c,v=>v+d))})})}function t2(e,t=void 0){let n=e.ul;return n?bo(n,(r,i)=>{var a,o;if(t){let c=t.toLowerCase(),u=e[c];if(u&&u[i]!==void 0)return u[i]}let l=Object.values(e).map(c=>{let u=c[i];return u!==void 0?u:0}).sort((c,u)=>c-u);return(((a=l[1])!=null?a:0)+((o=l[2])!=null?o:0))/2}):{}}function n2(e){let t=Ua(e),n=Object.assign(Xx(e,t),Wx(e,t)),r={},i;["u","d"].forEach(o=>{i=o==="u"?t:Object.values(t).reverse(),["l","r"].forEach(l=>{l==="r"&&(i=i.map(d=>Object.values(d).reverse()));let c=Ux(e,i,n,d=>(o==="u"?e.predecessors(d):e.successors(d))||[]),u=Qx(e,i,c.root,c.align,l==="r");l==="r"&&(u=bo(u,d=>-d)),r[o+l]=u})});let a=$x(e,r);return e2(r,a),t2(r,e.graph().align)}function r2(e,t,n){return(r,i,a)=>{let o=r.node(i),l=r.node(a),c=0,u;if(c+=o.width/2,Object.hasOwn(o,"labelpos"))switch(o.labelpos.toLowerCase()){case"l":u=-o.width/2;break;case"r":u=o.width/2;break}if(u&&(c+=n?u:-u),u=void 0,c+=(o.dummy?t:e)/2,c+=(l.dummy?t:e)/2,c+=l.width/2,Object.hasOwn(l,"labelpos"))switch(l.labelpos.toLowerCase()){case"l":u=l.width/2;break;case"r":u=-l.width/2;break}return u&&(c+=n?u:-u),c}}function i2(e,t){return e.node(t).width}function a2(e){e=Lv(e),s2(e),Object.entries(n2(e)).forEach(([t,n])=>e.node(t).x=n)}function s2(e){let t=Ua(e),n=e.graph(),r=n.ranksep,i=n.rankalign,a=0;t.forEach(o=>{let l=o.reduce((c,u)=>{var d;let v=(d=e.node(u).height)!=null?d:0;return c>v?c:v},0);o.forEach(c=>{let u=e.node(c);i==="top"?u.y=a+u.height/2:i==="bottom"?u.y=a+l-u.height/2:u.y=a+l/2}),a+=l+r})}function o2(e,t={}){let n=t.debugTiming?qv:Vv;return n("layout",()=>{let r=n(" buildLayoutGraph",()=>p2(e));return n(" runLayout",()=>l2(r,n,t)),n(" updateInputGraph",()=>c2(e,r)),r})}function l2(e,t,n){t(" makeSpaceForEdgeLabels",()=>_2(e)),t(" removeSelfEdges",()=>N2(e)),t(" acyclic",()=>Q1(e)),t(" nestingGraph.run",()=>wx(e)),t(" rank",()=>vx(Lv(e))),t(" injectEdgeLabelProxies",()=>b2(e)),t(" removeEmptyRanks",()=>R1(e)),t(" nestingGraph.cleanup",()=>Ex(e)),t(" normalizeRanks",()=>L1(e)),t(" assignRankMinMax",()=>y2(e)),t(" removeEdgeLabelProxies",()=>w2(e)),t(" normalize.run",()=>ex(e)),t(" parentDummyChains",()=>px(e)),t(" addBorderSegments",()=>Sx(e)),t(" order",()=>Uv(e,n)),t(" insertSelfEdges",()=>I2(e)),t(" adjustCoordinateSystem",()=>Nx(e)),t(" position",()=>a2(e)),t(" positionSelfEdges",()=>P2(e)),t(" removeBorderNodes",()=>C2(e)),t(" normalize.undo",()=>nx(e)),t(" fixupEdgeLabelCoords",()=>E2(e)),t(" undoCoordinateSystem",()=>Ix(e)),t(" translateGraph",()=>x2(e)),t(" assignNodeIntersects",()=>k2(e)),t(" reversePoints",()=>S2(e)),t(" acyclic.undo",()=>$1(e))}function c2(e,t){e.nodes().forEach(n=>{let r=e.node(n),i=t.node(n);r&&(r.x=i.x,r.y=i.y,r.order=i.order,r.rank=i.rank,t.children(n).length&&(r.width=i.width,r.height=i.height))}),e.edges().forEach(n=>{let r=e.edge(n),i=t.edge(n);r.points=i.points,Object.hasOwn(i,"x")&&(r.x=i.x,r.y=i.y)}),e.graph().width=t.graph().width,e.graph().height=t.graph().height}var u2=["nodesep","edgesep","ranksep","marginx","marginy"],d2={ranksep:50,edgesep:20,nodesep:50,rankdir:"TB",rankalign:"center"},f2=["acyclicer","ranker","rankdir","align","rankalign"],v2=["width","height","rank"],Yu={width:0,height:0},h2=["minlen","weight","width","height","labeloffset"],g2={minlen:1,weight:1,width:0,height:0,labeloffset:10,labelpos:"r"},m2=["labelpos"];function p2(e){let t=new fn({multigraph:!0,compound:!0}),n=sl(e.graph());return t.setGraph(Object.assign({},d2,al(n,u2),Gs(n,f2))),e.nodes().forEach(r=>{let i=sl(e.node(r)),a=al(i,v2);Object.keys(Yu).forEach(l=>{a[l]===void 0&&(a[l]=Yu[l])}),t.setNode(r,a);let o=e.parent(r);o!==void 0&&t.setParent(r,o)}),e.edges().forEach(r=>{let i=sl(e.edge(r));t.setEdge(r,Object.assign({},g2,al(i,h2),Gs(i,m2)))}),t}function _2(e){let t=e.graph();t.ranksep/=2,e.edges().forEach(n=>{let r=e.edge(n);r.minlen*=2,r.labelpos.toLowerCase()!=="c"&&(t.rankdir==="TB"||t.rankdir==="BT"?r.width+=r.labeloffset:r.height+=r.labeloffset)})}function b2(e){e.edges().forEach(t=>{let n=e.edge(t);if(n.width&&n.height){let r=e.node(t.v),i={rank:(e.node(t.w).rank-r.rank)/2+r.rank,e:t};Wi(e,"edge-proxy",i,"_ep")}})}function y2(e){let t=0;e.nodes().forEach(n=>{let r=e.node(n);r.borderTop&&(r.minRank=e.node(r.borderTop).rank,r.maxRank=e.node(r.borderBottom).rank,t=Math.max(t,r.maxRank))}),e.graph().maxRank=t}function w2(e){e.nodes().forEach(t=>{let n=e.node(t);if(n.dummy==="edge-proxy"){let r=n;e.edge(r.e).labelRank=n.rank,e.removeNode(t)}})}function x2(e){let t=Number.POSITIVE_INFINITY,n=0,r=Number.POSITIVE_INFINITY,i=0,a=e.graph(),o=a.marginx||0,l=a.marginy||0;function c(u){let d=u.x,v=u.y,f=u.width,h=u.height;t=Math.min(t,d-f/2),n=Math.max(n,d+f/2),r=Math.min(r,v-h/2),i=Math.max(i,v+h/2)}e.nodes().forEach(u=>c(e.node(u))),e.edges().forEach(u=>{let d=e.edge(u);Object.hasOwn(d,"x")&&c(d)}),t-=o,r-=l,e.nodes().forEach(u=>{let d=e.node(u);d.x-=t,d.y-=r}),e.edges().forEach(u=>{let d=e.edge(u);d.points.forEach(v=>{v.x-=t,v.y-=r}),Object.hasOwn(d,"x")&&(d.x-=t),Object.hasOwn(d,"y")&&(d.y-=r)}),a.width=n-t+o,a.height=i-r+l}function k2(e){e.edges().forEach(t=>{let n=e.edge(t),r=e.node(t.v),i=e.node(t.w),a,o;n.points?(a=n.points[0],o=n.points[n.points.length-1]):(n.points=[],a=i,o=r),n.points.unshift(Du(r,a)),n.points.push(Du(i,o))})}function E2(e){e.edges().forEach(t=>{let n=e.edge(t);if(Object.hasOwn(n,"x"))switch((n.labelpos==="l"||n.labelpos==="r")&&(n.width-=n.labeloffset),n.labelpos){case"l":n.x-=n.width/2+n.labeloffset;break;case"r":n.x+=n.width/2+n.labeloffset;break}})}function S2(e){e.edges().forEach(t=>{let n=e.edge(t);n.reversed&&n.points.reverse()})}function C2(e){e.nodes().forEach(t=>{if(e.children(t).length){let n=e.node(t),r=e.node(n.borderTop),i=e.node(n.borderBottom),a=e.node(n.borderLeft[n.borderLeft.length-1]),o=e.node(n.borderRight[n.borderRight.length-1]);n.width=Math.abs(o.x-a.x),n.height=Math.abs(i.y-r.y),n.x=a.x+n.width/2,n.y=r.y+n.height/2}}),e.nodes().forEach(t=>{e.node(t).dummy==="border"&&e.removeNode(t)})}function N2(e){e.edges().forEach(t=>{if(t.v===t.w){let n=e.node(t.v);n.selfEdges||(n.selfEdges=[]),n.selfEdges.push({e:t,label:e.edge(t)}),e.removeEdge(t)}})}function I2(e){Ua(e).forEach(t=>{let n=0;t.forEach((r,i)=>{let a=e.node(r);a.order=i+n,(a.selfEdges||[]).forEach(o=>{Wi(e,"selfedge",{width:o.label.width,height:o.label.height,rank:a.rank,order:i+ ++n,e:o.e,label:o.label},"_se")}),delete a.selfEdges})})}function P2(e){e.nodes().forEach(t=>{let n=e.node(t);if(n.dummy==="selfedge"){let r=n,i=e.node(r.e.v),a=i.x+i.width/2,o=i.y,l=n.x-a,c=i.height/2;e.setEdge(r.e,r.label),e.removeNode(t),r.label.points=[{x:a+2*l/3,y:o-c},{x:a+5*l/6,y:o-c},{x:a+l,y:o},{x:a+5*l/6,y:o+c},{x:a+2*l/3,y:o+c}],r.label.x=n.x,r.label.y=n.y}})}function al(e,t){return bo(Gs(e,t),Number)}function sl(e){let t={};return e&&Object.entries(e).forEach(([n,r])=>{typeof n=="string"&&(n=n.toLowerCase()),t[n]=r}),t}function O2(e){let t=Ua(e),n=new fn({compound:!0,multigraph:!0}).setGraph({});return e.nodes().forEach(r=>{n.setNode(r,{label:r}),n.setParent(r,"layer"+e.node(r).rank)}),e.edges().forEach(r=>n.setEdge(r.v,r.w,{},r.name)),t.forEach((r,i)=>{let a="layer"+i;n.setNode(a,{rank:"same"}),r.reduce((o,l)=>(n.setEdge(o,l,{style:"invis"}),l))}),n}var M2={graphlib:Nv,version:F1,layout:o2,debug:O2,util:{time:qv,notime:Vv}},Xu=M2;/*! For license information please see dagre.esm.js.LEGAL.txt */function Sr(e,t,n={}){const r=new Xu.graphlib.Graph;r.setDefaultEdgeLabel(()=>({})),r.setGraph({rankdir:n.direction??"BT",nodesep:n.nodeSep??60,ranksep:n.rankSep??100});for(const a of e)r.setNode(a.id,{width:a.width,height:a.height});for(const a of t)r.setEdge(a.source,a.target,{weight:a.weight??1,minlen:a.minlen??1});Xu.layout(r);const i=new Map;for(const a of e){const o=r.node(a.id);o&&i.set(a.id,{x:o.x-a.width/2,y:o.y-a.height/2})}return i}const On=me({open:!1,focus:null});function Oc(e){On.focus=e,On.open=!0}function T2(){On.open=!1,On.focus=null}const Mn=me({open:!1,layerName:null});function A2(e){Mn.layerName=e,Mn.open=!0}function z2(){Mn.open=!1,Mn.layerName=null}const D2={"no-instantiation":{label:"no-new",color:"#b45309",summary:"May not construct objects (except types in `allow`)."},"no-side-effects":{label:"pure",color:"#0e7490",summary:"Must be free of side effects."},sealed:{label:"sealed",color:"#6d28d9",summary:"May not be subclassed."},immutable:{label:"immut",color:"#0f766e",summary:"Fields may not be reassigned after construction."},factory:{label:"factory",color:"#9d174d",summary:"Designated constructor of the types in `creates`."},layer:{label:"layer",color:"#1d4ed8",summary:"Assigns the class to an architectural layer."},locked:{label:"locked",color:"#a16207",summary:"Implementation is frozen — any semantic change fails `cdec lock check` until re-baselined."}},L2={label:"rule",color:"#475569",summary:""};function _r(e){return D2[e]??{...L2,label:e}}function Ea(e){return(e.args[0]??"").replace(/^['"]|['"]$/g,"")}function Wu(e){if(e.name==="layer"){const t=Ea(e);return t?`layer: ${t}`:"layer"}return _r(e.name).label}function R2(e){const t=[];for(const n of e.args)t.push(n);for(const[n,r]of Object.entries(e.kwargs))t.push(`${n}=${r}`);return t.length?`(${t.join(", ")})`:""}function ol(e){const t=_r(e.name),n=R2(e),r=`@${e.name}${n}`;return t.summary?`${r} — ${t.summary}`:r}const Sa={class:{label:"Class",color:"#2563eb",tint:"#eff4ff"},interface:{label:"Interface",color:"#0d9488",tint:"#ecfeff"},abstract:{label:"Abstract class",color:"#7c3aed",tint:"#f5f3ff"},enum:{label:"Enum",color:"#b45309",tint:"#fff7ed"},struct:{label:"Struct",color:"#be185d",tint:"#fdf2f8"},record:{label:"Record",color:"#15803d",tint:"#f0fdf4"},static:{label:"Static class",color:"#65a30d",tint:"#f7fee7"},external:{label:"External",color:"#64748b",tint:"#f8fafc"}},j2=Object.keys(Sa);function q2(e){return Sa[e]??Sa.class}var V2=j('<span class="kind-tag svelte-6s4gii">«external»</span>'),H2=j('<span class="kind-tag svelte-6s4gii"> </span>'),F2=j('<button type="button" class="rule-badge layer-badge svelte-6s4gii"> </button>'),B2=j('<span class="rule-badge svelte-6s4gii"> </span>'),K2=j('<span class="rule-badges svelte-6s4gii"></span>'),Y2=j('<span class="type svelte-6s4gii"> </span>'),X2=j('<li><span class="vis svelte-6s4gii"> </span> <span> </span> <!></li>'),W2=j('<ul class="members attributes svelte-6s4gii"></ul>'),G2=j('<span class="type svelte-6s4gii"> </span>'),Z2=j('<span class="rule-badge inline svelte-6s4gii"> </span>'),U2=j('<li><span class="vis svelte-6s4gii"> </span> <span> </span><span class="paren svelte-6s4gii">(</span><span class="paren svelte-6s4gii">)</span><!><!></li>'),Q2=j('<ul class="members operations svelte-6s4gii"></ul>'),J2=j("<!> <!>",1),$2=j('<div><!> <header class="svelte-6s4gii"><!> <span class="name svelte-6s4gii"> </span> <!></header> <!> <!></div>');function Jv(e,t){he(t,!0);const n={public:"+",protected:"#",private:"-",package:"~"},r=R(()=>t.data.kind==="interface"?"«interface»":t.data.kind==="enum"?"«enumeration»":t.data.kind==="abstract"?"«abstract»":t.data.kind==="struct"?"«struct»":t.data.kind==="record"?"«record»":t.data.kind==="static"?"«static»":""),i=R(()=>t.data.kind==="external"),a=R(()=>new Set(t.data.highlightAttributes??[])),o=R(()=>new Set(t.data.highlightOperations??[])),l=R(()=>ie.selectedClassId===t.id||ie.highlightedNodeIds.has(t.id)),c=R(()=>q2(t.data.kind)),u=R(()=>t.data.status==="unchanged"?`background:${s(c).tint}`:""),d=R(()=>ie.lodEnabled&&ie.lodTier!=="full");var v=$2();let f;var h=b(v);Dt(h,{type:"target",get position(){return Ce.Top}});var g=w(h,2),p=b(g);{var m=D=>{var F=V2();Q(()=>nt(F,`color:${s(c).color??""}`)),O(D,F)},y=D=>{var F=H2(),S=b(F);Q(()=>{nt(F,`color:${s(c).color??""}`),W(S,s(r))}),O(D,F)};te(p,D=>{s(i)?D(m):s(r)&&D(y,1)})}var E=w(p,2),N=b(E),I=w(E,2);{var C=D=>{var F=K2();Pe(F,23,()=>t.data.rules,(S,P)=>P+"|"+S.name,(S,P)=>{var H=tt(),x=le(H);{var k=z=>{var V=F2(),B=b(V);Q((Y,K,G)=>{nt(V,`background:${Y??""}`),ce(V,"title",K),W(B,G)},[()=>_r(s(P).name).color,()=>ol(s(P))+" — click to view layer dependencies · right-click to list classes",()=>Wu(s(P))]),ne("pointerdown",V,Y=>Y.stopPropagation()),ne("click",V,Y=>{Y.stopPropagation(),Oc(Ea(s(P)))}),ne("contextmenu",V,Y=>{Y.preventDefault(),Y.stopPropagation(),A2(Ea(s(P)))}),O(z,V)},A=z=>{var V=B2(),B=b(V);Q((Y,K,G)=>{nt(V,`background:${Y??""}`),ce(V,"title",K),W(B,G)},[()=>_r(s(P).name).color,()=>ol(s(P)),()=>Wu(s(P))]),O(z,V)};te(x,z=>{s(P).name==="layer"?z(k):z(A,-1)})}O(S,H)}),O(D,F)};te(I,D=>{!s(d)&&t.data.rules.length&&D(C)})}var L=w(g,2);{var q=D=>{var F=J2(),S=le(F);{var P=k=>{var A=W2();Pe(A,23,()=>t.data.attributes,(z,V)=>V+"|"+z.signature,(z,V)=>{var B=X2();let Y;var K=b(B),G=b(K),$=w(K,2);let ee;var X=b($),U=w($,2);{var ae=se=>{var ue=Y2(),ve=b(ue);Q(()=>W(ve,`: ${s(V).type??""}`)),O(se,ue)};te(U,se=>{s(V).type&&se(ae)})}Q(se=>{Y=we(B,1,`status-${s(V).status??""}`,"svelte-6s4gii",Y,se),W(G,n[s(V).visibility]??"+"),ee=we($,1,"member-name svelte-6s4gii",null,ee,{static:s(V).isStatic}),W(X,s(V).name)},[()=>({"edge-related":s(a).has(s(V).signature)})]),O(z,B)}),O(k,A)};te(S,k=>{t.data.attributes.length&&k(P)})}var H=w(S,2);{var x=k=>{var A=Q2();Pe(A,23,()=>t.data.operations,(z,V)=>V+"|"+z.signature,(z,V)=>{var B=U2();let Y;var K=b(B),G=b(K),$=w(K,2);let ee;var X=b($),U=w($,3);{var ae=ue=>{var ve=G2(),de=b(ve);Q(()=>W(de,`: ${s(V).returnType??""}`)),O(ue,ve)};te(U,ue=>{s(V).returnType&&ue(ae)})}var se=w(U);Pe(se,19,()=>s(V).rules,(ue,ve)=>ve+"|"+ue.name,(ue,ve)=>{var de=Z2(),Ee=b(de);Q((_e,De,Me)=>{nt(de,`background:${_e??""}`),ce(de,"title",De),W(Ee,Me)},[()=>_r(s(ve).name).color,()=>ol(s(ve)),()=>_r(s(ve).name).label]),O(ue,de)}),Q(ue=>{Y=we(B,1,`status-${s(V).status??""}`,"svelte-6s4gii",Y,ue),W(G,n[s(V).visibility]??"+"),ee=we($,1,"member-name svelte-6s4gii",null,ee,{static:s(V).isStatic,abstract:s(V).isAbstract}),W(X,s(V).name)},[()=>({"edge-related":s(o).has(s(V).signature)})]),O(z,B)}),O(k,A)};te(H,k=>{t.data.operations.length&&k(x)})}O(D,F)};te(L,D=>{s(d)||D(q)})}var T=w(L,2);Dt(T,{type:"source",get position(){return Ce.Bottom}}),Q(()=>{f=we(v,1,`class-node status-${t.data.status??""}`,"svelte-6s4gii",f,{selected:t.selected,highlighted:s(l),external:s(i),compact:s(d),"edge-related-header":t.data.highlightHeader}),nt(v,`border-left: 5px solid ${s(c).color??""}`),nt(g,s(u)),W(N,t.data.name)}),O(e,v),ge()}Qe(["pointerdown","click","contextmenu"]);function wo(e,t){he(t,!0);const{fitView:n}=Sv();Ae(()=>{const r=ie.selectedClassId;r&&queueMicrotask(()=>{n({nodes:[{id:r}],padding:.3,duration:400,maxZoom:1.3})})}),Ae(()=>{ie.relayoutToken!==0&&queueMicrotask(()=>{queueMicrotask(()=>{n({padding:.2,duration:500})})})}),ge()}var ek=j('<li class="svelte-i9nwz2"><span class="swatch svelte-i9nwz2"></span> <span class="label"> </span></li>'),tk=j('<div class="head svelte-i9nwz2"><span class="title svelte-i9nwz2">Kinds</span> <button type="button" class="toggle svelte-i9nwz2" title="Hide legend">✕</button></div> <ul class="svelte-i9nwz2"></ul>',1),nk=j('<button type="button" class="pill svelte-i9nwz2" title="Show kind legend">Legend ▸</button>'),rk=j('<div class="legend svelte-i9nwz2" role="presentation"><!></div>');function ik(e,t){he(t,!0);function n(l){l.stopPropagation()}var r=rk(),i=b(r);{var a=l=>{var c=tk(),u=le(c),d=w(b(u),2),v=w(u,2);Pe(v,20,()=>j2,f=>f,(f,h)=>{var g=ek(),p=b(g),m=w(p,2),y=b(m);Q(()=>{nt(p,`background:${Sa[h].color??""}`),W(y,Sa[h].label)}),O(f,g)}),ne("click",d,function(...f){ci==null||ci.apply(this,f)}),O(l,c)},o=l=>{var c=nk();ne("click",c,function(...u){ci==null||ci.apply(this,u)}),O(l,c)};te(i,l=>{ie.legendOpen?l(a):l(o,-1)})}ne("pointerdown",r,n),O(e,r),ge()}Qe(["pointerdown","click"]);const yn=me({open:!1,edge:null,source:null,target:null});let sa=null;function Gu(e){sa=e}function $v(e){if(!sa)return;const t=sa.edges.find(i=>i.id===e);if(!t)return;const n=sa.nodes.find(i=>i.id===t.source),r=sa.nodes.find(i=>i.id===t.target);!n||!r||(yn.edge=t,yn.source=n,yn.target=r,yn.open=!0)}function ak(){yn.open=!1,yn.edge=null,yn.source=null,yn.target=null}var sk=j('<p class="error svelte-1nbs9ah"> </p>'),ok=j('<p class="muted svelte-1nbs9ah">Loading class graph…</p>'),lk=j("<!> <!> <!>",1),ck=j("<!> <!>",1),uk=j('<div class="flow-wrap svelte-1nbs9ah"><svg style="position:absolute;width:0;height:0" aria-hidden="true"><defs><marker id="uml-inheritance" markerWidth="14" markerHeight="14" refX="11" refY="5" orient="auto-start-reverse" markerUnits="userSpaceOnUse"><path d="M0,0 L11,5 L0,10 z" fill="#ffffff" stroke="#475569" stroke-width="1"></path></marker></defs></svg> <!> <!></div>');function dk(e,t){he(t,!0);const n={class:Jv};let r=J(me([])),i=J(me([])),a=J(null),o=J(""),l=J(me([])),c=J(me([]));const u=220,d=40,v=18;function f(q){const T=q.attributes.length+q.operations.length;return d+T*v+16}function h(q){const T=q.kind==="inheritance";return{source:T?q.source:q.target,target:T?q.target:q.source,weight:T?10:1}}const g=R(()=>s(a)?new Set(s(a).edges.filter(q=>q.kind==="inheritance").map(q=>q.source)):new Set);Ae(()=>{const q=ie.visibleClassIds,T=ie.lodEnabled&&ie.lodTier==="far",D=T?s(g):null,F=s(r).filter(k=>(q===null||q.has(k.id))&&!(D&&D.has(k.id))),S=new Set(F.map(k=>k.id)),P=ie.nodePositions;if(_(l,F.map(k=>({...k,position:P.get(k.id)??k.position})),!0),T){_(c,[],!0);return}const H=s(i).filter(k=>S.has(k.source)&&S.has(k.target)),x=ie.selectedEdgeId;_(c,H.map(k=>k.id===x?{...k,style:"stroke:#2563eb;stroke-width:3",zIndex:1e3}:k),!0)}),Ae(()=>{const q=t.xmi.id;_(o,""),_(a,null),_(r,[],!0),_(i,[],!0),Gu(null),Ie.classGraph(q).then(T=>{_(a,T,!0),Gu(T),ie.currentEdges=T.edges.map(S=>({source:S.source,target:S.target}));const D=Sr(T.nodes.map(S=>({id:S.id,width:u,height:f(S)})),T.edges.map(h),{direction:"BT",nodeSep:60,rankSep:100});_(r,T.nodes.map(S=>({id:S.id,type:"class",data:S,position:D.get(S.id)??{x:0,y:0}})),!0);const F=ie.pendingFocusQnames;if(F&&F.length>0){const S=new Set(F),P=T.nodes.filter(H=>S.has(H.qualifiedName)||S.has(H.name)).map(H=>H.id);P.length>0&&(Dn(P),st(P[0])),ie.pendingFocusQnames=null}_(i,T.edges.map(S=>{const P=S.kind==="inheritance";return{id:S.id,source:P?S.target:S.source,target:P?S.source:S.target,label:S.multiplicity||void 0,markerStart:P?"uml-inheritance":void 0,markerEnd:P?void 0:{type:un.Arrow,color:"#94a3b8"},style:P?"stroke:#475569;stroke-width:1.5":"stroke:#94a3b8;stroke-width:1"}}),!0)}).catch(T=>_(o,T.message,!0))});function p({targetNode:q}){q&&Ha(q.id,{...q.position})}function m(q){if(q.key!=="f"&&q.key!=="F"||q.ctrlKey||q.metaKey||q.altKey)return;const T=q.target;if(T&&(T.tagName==="INPUT"||T.tagName==="TEXTAREA"||T.isContentEditable))return;const D=ie.selectedEdgeId;D&&(q.preventDefault(),$v(D))}function y(q){var D;const T=(D=s(a))==null?void 0:D.edges.find(F=>F.id===q.id);T?Cl(q.id,T.source,T.target):Cl(q.id,q.source,q.target)}Ae(()=>{ie.relayoutToken!==0&&yt(()=>{var P;if(s(l).length===0)return;const T=new Set(s(l).map(H=>H.id)),D=s(l).map(H=>({id:H.id,width:u,height:f(H.data)})),F=(((P=s(a))==null?void 0:P.edges)??[]).filter(H=>T.has(H.source)&&T.has(H.target)).map(h),S=Sr(D,F,{direction:"BT",nodeSep:60,rankSep:100});ga(S)})});var E=tt();Er("keydown",Mt,m);var N=le(E);{var I=q=>{var T=sk(),D=b(T);Q(()=>W(D,s(o))),O(q,T)},C=q=>{var T=ok();O(q,T)},L=q=>{var T=uk(),D=w(b(T),2);Ki(D,{children:(S,P)=>{var H=ck(),x=le(H);Bi(x,{get nodeTypes(){return n},fitView:!0,minZoom:.1,maxZoom:2,onlyRenderVisibleElements:!0,elevateNodesOnSelect:!1,elevateEdgesOnSelect:!1,proOptions:{hideAttribution:!0},onnodeclick:({node:A})=>st(A.id),onedgeclick:({edge:A})=>y(A),onpaneclick:()=>{st(null),sf()},onnodedragstop:p,onmoveend:(A,z)=>Im(Sm(z.zoom)),get nodes(){return s(l)},set nodes(A){_(l,A,!0)},get edges(){return s(c)},set edges(A){_(c,A,!0)},children:(A,z)=>{var V=lk(),B=le(V);Xi(B,{});var Y=w(B,2);Yi(Y,{});var K=w(Y,2);Ec(K,{pannable:!0,zoomable:!0}),O(A,V)},$$slots:{default:!0}});var k=w(x,2);wo(k,{}),O(S,H)},$$slots:{default:!0}});var F=w(D,2);ik(F,{}),O(q,T)};te(N,q=>{s(o)?q(I):s(a)?q(L,-1):q(C,1)})}O(e,E),ge()}var fk=j('<div class="qname svelte-p75fka"> </div>'),vk=j('<div><!> <span class="folder-tab svelte-p75fka"></span> <div class="body svelte-p75fka"><div class="title svelte-p75fka"> </div> <!> <div class="badge svelte-p75fka"> </div></div> <!></div>');function hk(e,t){he(t,!0);const n=R(()=>ie.selectedClassId===t.id||ie.highlightedNodeIds.has(t.id));var r=vk();let i;var a=b(r);Dt(a,{type:"target",get position(){return Ce.Top}});var o=w(a,4),l=b(o),c=b(l),u=w(l,2);{var d=g=>{var p=fk(),m=b(p);Q(()=>W(m,t.data.parentQname)),O(g,p)};te(u,g=>{t.data.parentQname&&g(d)})}var v=w(u,2),f=b(v),h=w(o,2);Dt(h,{type:"source",get position(){return Ce.Bottom}}),Q(()=>{i=we(r,1,`package-node status-${t.data.status??""}`,"svelte-p75fka",i,{selected:t.selected,highlighted:s(n)}),W(c,t.data.name),W(f,`${t.data.classCount??""} class${t.data.classCount===1?"":"es"}`)}),O(e,r),ge()}var gk=j('<p class="error svelte-10yxkrx"> </p>'),mk=j('<p class="muted svelte-10yxkrx">Loading package graph…</p>'),pk=j("<!> <!> <!>",1),_k=j("<!> <!>",1),bk=j('<div class="flow-wrap svelte-10yxkrx"><!></div>');function yk(e,t){he(t,!0);const n={package:hk};let r=J(me([])),i=J(me([])),a=J(null),o=J(""),l=J(me([])),c=J(me([]));const u=200,d=80;Ae(()=>{const E=ie.visibleClassIds,N=E===null?s(r):s(r).filter(T=>E.has(T.id)),I=new Set(N.map(T=>T.id)),C=E===null?s(i):s(i).filter(T=>I.has(T.source)&&I.has(T.target)),L=ie.nodePositions;_(l,N.map(T=>({...T,position:L.get(T.id)??T.position})),!0);const q=ie.selectedEdgeId;_(c,C.map(T=>T.id===q?{...T,style:"stroke:#2563eb;stroke-width:3",zIndex:1e3}:T),!0)}),Ae(()=>{const E=t.xmi.id;_(o,""),_(a,null),_(r,[],!0),_(i,[],!0),Ie.packageGraph(E).then(N=>{_(a,N,!0),ie.currentEdges=N.edges.map(C=>({source:C.source,target:C.target}));const I=Sr(N.nodes.map(C=>({id:C.id,width:u,height:d})),N.edges.map(C=>({source:C.source,target:C.target})),{direction:"BT",nodeSep:50,rankSep:90});_(r,N.nodes.map(C=>({id:C.id,type:"package",data:C,position:I.get(C.id)??{x:0,y:0}})),!0),_(i,N.edges.map(C=>({id:C.id,source:C.source,target:C.target,markerEnd:{type:un.Arrow,color:"#475569"},style:"stroke:#475569;stroke-width:1.5"})),!0)}).catch(N=>_(o,N.message,!0))});function v({targetNode:E}){E&&Ha(E.id,{...E.position})}function f(E){Cl(E.id,E.source,E.target)}Ae(()=>{ie.relayoutToken!==0&&yt(()=>{if(s(l).length===0)return;const N=new Set(s(l).map(C=>C.id)),I=Sr(s(l).map(C=>({id:C.id,width:u,height:d})),s(c).filter(C=>N.has(C.source)&&N.has(C.target)).map(C=>({source:C.source,target:C.target})),{direction:"BT",nodeSep:50,rankSep:90});ga(I)})});var h=tt(),g=le(h);{var p=E=>{var N=gk(),I=b(N);Q(()=>W(I,s(o))),O(E,N)},m=E=>{var N=mk();O(E,N)},y=E=>{var N=bk(),I=b(N);Ki(I,{children:(C,L)=>{var q=_k(),T=le(q);Bi(T,{get nodeTypes(){return n},fitView:!0,minZoom:.1,maxZoom:2,onlyRenderVisibleElements:!0,elevateNodesOnSelect:!1,elevateEdgesOnSelect:!1,proOptions:{hideAttribution:!0},onnodeclick:({node:F})=>st(F.id),onedgeclick:({edge:F})=>f(F),onpaneclick:()=>{st(null),sf()},onnodedragstop:v,get nodes(){return s(l)},set nodes(F){_(l,F,!0)},get edges(){return s(c)},set edges(F){_(c,F,!0)},children:(F,S)=>{var P=pk(),H=le(P);Xi(H,{});var x=w(H,2);Yi(x,{});var k=w(x,2);Ec(k,{pannable:!0,zoomable:!0}),O(F,P)},$$slots:{default:!0}});var D=w(T,2);wo(D,{}),O(C,q)},$$slots:{default:!0}}),O(E,N)};te(g,E=>{s(o)?E(p):s(a)?E(y,-1):E(m,1)})}O(e,h),ge()}var wk=j('<span class="dot svelte-jvnkdh"></span>'),xk=j('<span class="diamond svelte-jvnkdh"><span class="diamond-label svelte-jvnkdh"> </span></span>'),kk=j('<span class="bar svelte-jvnkdh"></span>'),Ek=j('<span class="action svelte-jvnkdh"> </span>'),Sk=j("<div><!> <!> <!></div>");function Ck(e,t){he(t,!0);var n=Sk(),r=b(n);Dt(r,{type:"target",get position(){return Ce.Top}});var i=w(r,2);{var a=d=>{var v=wk();Q(()=>ce(v,"aria-label",t.data.kind)),O(d,v)},o=d=>{var v=xk(),f=b(v),h=b(f);Q(()=>W(h,t.data.label)),O(d,v)},l=d=>{var v=kk();Q(()=>ce(v,"aria-label",t.data.kind)),O(d,v)},c=d=>{var v=Ek(),f=b(v);Q(()=>W(f,t.data.label||"(unnamed)")),O(d,v)};te(i,d=>{t.data.kind==="initial"||t.data.kind==="final"?d(a):t.data.kind==="decision"||t.data.kind==="merge"?d(o,1):t.data.kind==="fork"||t.data.kind==="join"?d(l,2):d(c,-1)})}var u=w(i,2);Dt(u,{type:"source",get position(){return Ce.Bottom}}),Q(()=>we(n,1,`activity-node kind-${t.data.kind??""} status-${t.data.status??""}`,"svelte-jvnkdh")),O(e,n),ge()}var Nk=j('<p class="error svelte-1vq1hu4"> </p>'),Ik=j('<p class="muted svelte-1vq1hu4">Loading activity…</p>'),Pk=j("<!> <!>",1),Ok=j("<!> <!>",1),Mk=j('<div class="flow-wrap svelte-1vq1hu4"><!></div>');function Tk(e,t){he(t,!0);const n={activity:Ck};let r=J(null),i=J(me([])),a=J(me([])),o=J(me([])),l=J(me([])),c=J("");function u(y){return y.kind==="initial"||y.kind==="final"?{w:30,h:30}:y.kind==="decision"||y.kind==="merge"?{w:120,h:70}:y.kind==="fork"||y.kind==="join"?{w:90,h:16}:{w:140,h:36}}function d(y){return y==="added"?"stroke:#16a34a;stroke-width:1.8":y==="removed"?"stroke:#dc2626;stroke-width:1.8;stroke-dasharray:4 4":"stroke:#475569;stroke-width:1.5"}Ae(()=>{const y=t.xmi.id,E=t.name;_(c,""),_(r,null),_(i,[],!0),_(a,[],!0),Ie.activityGraph(y,E).then(N=>{_(r,N,!0);const I=Sr(N.nodes.map(C=>{const L=u(C);return{id:C.id,width:L.w,height:L.h}}),N.edges,{direction:"TB",nodeSep:40,rankSep:60});_(i,N.nodes.map(C=>({id:C.id,type:"activity",data:C,position:I.get(C.id)??{x:0,y:0},draggable:!0})),!0),_(a,N.edges.map(C=>({id:C.id,source:C.source,target:C.target,label:C.guard||void 0,markerEnd:{type:un.Arrow,color:C.status==="added"?"#16a34a":C.status==="removed"?"#dc2626":"#475569"},style:d(C.status)})),!0)}).catch(N=>_(c,N.message,!0))}),Ae(()=>{const y=ie.visibleClassIds,E=y===null?s(i):s(i).filter(L=>y.has(L.id)),N=new Set(E.map(L=>L.id)),I=y===null?s(a):s(a).filter(L=>N.has(L.source)&&N.has(L.target)),C=ie.nodePositions;_(o,E.map(L=>({...L,position:C.get(L.id)??L.position})),!0),_(l,[...I],!0)});function v({targetNode:y}){y&&Ha(y.id,{...y.position})}Ae(()=>{ie.relayoutToken!==0&&yt(()=>{if(s(o).length===0)return;const E=new Set(s(o).map(L=>L.id)),N=s(o).map(L=>{const q=u(L.data);return{id:L.id,width:q.w,height:q.h}}),I=s(l).filter(L=>E.has(L.source)&&E.has(L.target)).map(L=>({source:L.source,target:L.target})),C=Sr(N,I,{direction:"TB",nodeSep:40,rankSep:60});ga(C)})});var f=tt(),h=le(f);{var g=y=>{var E=Nk(),N=b(E);Q(()=>W(N,s(c))),O(y,E)},p=y=>{var E=Ik();O(y,E)},m=y=>{var E=Mk(),N=b(E);Ki(N,{children:(I,C)=>{var L=Ok(),q=le(L);Bi(q,{get nodeTypes(){return n},fitView:!0,minZoom:.2,maxZoom:2,proOptions:{hideAttribution:!0},onnodeclick:({node:D})=>st(D.id),onpaneclick:()=>st(null),onnodedragstop:v,get nodes(){return s(o)},set nodes(D){_(o,D,!0)},get edges(){return s(l)},set edges(D){_(l,D,!0)},children:(D,F)=>{var S=Pk(),P=le(S);Xi(P,{});var H=w(P,2);Yi(H,{}),O(D,S)},$$slots:{default:!0}});var T=w(q,2);wo(T,{}),O(I,L)},$$slots:{default:!0}}),O(y,E)};te(h,y=>{s(c)?y(g):s(r)?y(m,-1):y(p,1)})}O(e,f),ge()}var Ak=j('<div class="represents svelte-c0tla6"> </div>'),zk=j("<!> <!> <!> <!>",1),Dk=j('<div><div class="header svelte-c0tla6"><div class="name svelte-c0tla6"> </div> <!></div> <div class="line svelte-c0tla6"></div> <!></div>');function Lk(e,t){he(t,!0);const n=R(()=>{const f=[];for(let h=0;h<t.data.rowCount;h++)f.push(h);return f});function r(f){return t.data.headerH+f*t.data.rowH+t.data.rowH/2}var i=Dk(),a=b(i),o=b(a),l=b(o),c=w(o,2);{var u=f=>{var h=Ak(),g=b(h);Q(()=>W(g,`: ${t.data.represents??""}`)),O(f,h)};te(c,f=>{t.data.represents&&f(u)})}var d=w(a,2),v=w(d,2);Pe(v,16,()=>s(n),f=>f,(f,h)=>{var g=zk(),p=le(g);{let N=R(()=>"row-"+h+"-left"),I=R(()=>"top: "+r(h)+"px; opacity: 0; pointer-events: none;");Dt(p,{type:"source",get position(){return Ce.Left},get id(){return s(N)},get style(){return s(I)}})}var m=w(p,2);{let N=R(()=>"row-"+h+"-left-t"),I=R(()=>"top: "+r(h)+"px; opacity: 0; pointer-events: none;");Dt(m,{type:"target",get position(){return Ce.Left},get id(){return s(N)},get style(){return s(I)}})}var y=w(m,2);{let N=R(()=>"row-"+h+"-right"),I=R(()=>"top: "+r(h)+"px; opacity: 0; pointer-events: none;");Dt(y,{type:"source",get position(){return Ce.Right},get id(){return s(N)},get style(){return s(I)}})}var E=w(y,2);{let N=R(()=>"row-"+h+"-right-t"),I=R(()=>"top: "+r(h)+"px; opacity: 0; pointer-events: none;");Dt(E,{type:"target",get position(){return Ce.Right},get id(){return s(N)},get style(){return s(I)}})}O(f,g)}),Q(()=>{we(i,1,`lifeline status-${t.data.status??""}`,"svelte-c0tla6"),ce(a,"title",t.data.represents),W(l,t.data.name),nt(d,`top: ${t.data.headerH??""}px; height: ${t.data.rowCount*t.data.rowH}px;`)}),O(e,i),ge()}var Rk=j('<span class="guard svelte-16s3aas"> </span>'),jk=j("<div><!> </div>"),qk=j("<!> <!>",1);function Vk(e,t){const n=R(()=>t.data??{label:"",guard:"",isReturn:!1,status:"unchanged",selfCall:!1}),r=R(()=>s(n).status==="added"?"#16a34a":s(n).status==="removed"?"#dc2626":"#1f2937"),i=R(()=>s(n).isReturn||s(n).status==="removed"?"6 4":"0"),a=R(()=>s(n).selfCall?`M ${t.sourceX} ${t.sourceY} h 24 v 24 h -24`:`M ${t.sourceX} ${t.sourceY} L ${t.targetX} ${t.targetY}`),o=R(()=>s(n).selfCall?t.sourceX+28:(t.sourceX+t.targetX)/2),l=R(()=>s(n).selfCall?t.sourceY+12:(t.sourceY+t.targetY)/2-8);var c=qk(),u=le(c);Za(u,{get markerEnd(){return t.markerEnd},get path(){return s(a)},get style(){return`stroke: ${s(r)??""}; stroke-width: 1.6; stroke-dasharray: ${s(i)??""}; fill: none;`}});var d=w(u,2);pv(d,{get x(){return s(o)},get y(){return s(l)},children:(v,f)=>{var h=jk(),g=b(h);{var p=y=>{var E=Rk(),N=b(E);Q(()=>W(N,`[${s(n).guard??""}]`)),O(y,E)};te(g,y=>{s(n).guard&&y(p)})}var m=w(g,1,!0);Q(()=>{we(h,1,`msg-label status-${s(n).status??""}`,"svelte-16s3aas"),ce(h,"title",s(n).guard?`guard: ${s(n).guard}`:void 0),W(m,s(n).label)}),O(v,h)},$$slots:{default:!0}}),O(e,c)}var Hk=j('<span class="label svelte-wmc1xy"> </span>'),Fk=j('<div><div class="header svelte-wmc1xy"><span class="kind svelte-wmc1xy"> </span> <!></div></div>');function Bk(e,t){he(t,!0);var n=Fk();let r;var i=b(n),a=b(i),o=b(a),l=w(a,2);{var c=u=>{var d=Hk(),v=b(d);Q(()=>W(v,`[${t.data.label??""}]`)),O(u,d)};te(l,u=>{t.data.label&&u(c)})}Q(()=>{we(n,1,`frag status-${t.data.status??""} kind-${t.data.kind??""}`,"svelte-wmc1xy"),r=nt(n,"",r,{width:`${t.data.width??""}px`,height:`${t.data.height??""}px`}),W(o,t.data.kind)}),O(e,n),ge()}var Kk=j('<p class="error svelte-12p4ds4"> </p>'),Yk=j('<p class="muted svelte-12p4ds4">Loading sequence…</p>'),Xk=j("<!> <!>",1),Wk=j('<div class="flow-wrap svelte-12p4ds4"><!></div>');function Gk(e,t){he(t,!0);const n={lifeline:Lk,fragment:Bk},r={message:Vk},i=200,a=56,o=44,l=140,c=24,u=6;let d=J(null),v=J(me([])),f=J(me([])),h=J(me([])),g=J(me([])),p=J("");Ae(()=>{const L=t.xmi.id,q=t.name;_(p,""),_(d,null),_(v,[],!0),_(f,[],!0),Ie.sequenceGraph(L,q).then(T=>{_(d,T,!0);const D=Math.max(T.messages.length,1),F=new Map(T.lifelines.map(z=>[z.id,z.column])),S=T.lifelines.length?Math.min(...T.lifelines.map(z=>z.column)):0,P=T.lifelines.length?Math.max(...T.lifelines.map(z=>z.column)):0,H=S*i-c,x=(P-S)*i+l+c*2,k=(T.fragments??[]).map(z=>({id:z.id,type:"fragment",data:{kind:z.kind,label:z.label,width:x,height:(z.endRow-z.startRow+1)*o+u*2,status:z.status},position:{x:H,y:a+z.startRow*o-u},draggable:!1,selectable:!1})),A=T.lifelines.map(z=>({id:z.id,type:"lifeline",data:{...z,rowCount:D,headerH:a,rowH:o},position:{x:z.column*i,y:0},draggable:!0,selectable:!0}));_(v,[...k,...A],!0),_(f,T.messages.map(z=>{const V=F.get(z.sender)??0,B=F.get(z.receiver)??0,Y=z.sender===z.receiver;let K,G;Y?(K=`row-${z.row}-right`,G=`row-${z.row}-right-t`):B>V?(K=`row-${z.row}-right`,G=`row-${z.row}-left-t`):(K=`row-${z.row}-left`,G=`row-${z.row}-right-t`);const $=z.status==="added"?"#16a34a":z.status==="removed"?"#dc2626":"#1f2937";return{id:z.id,source:z.sender,target:z.receiver,sourceHandle:K,targetHandle:G,type:"message",data:{label:z.label,guard:z.guard??"",isReturn:z.isReturn,status:z.status,selfCall:Y},markerEnd:{type:z.isReturn?un.Arrow:un.ArrowClosed,color:$}}}),!0)}).catch(T=>_(p,T.message,!0))}),Ae(()=>{const L=ie.visibleClassIds,q=L===null?s(v):s(v).filter(S=>S.type==="fragment"||L.has(S.id)),T=new Set(q.filter(S=>S.type==="lifeline").map(S=>S.id)),D=L===null?s(f):s(f).filter(S=>T.has(S.source)&&T.has(S.target)),F=ie.nodePositions;_(h,q.map(S=>({...S,position:F.get(S.id)??S.position})),!0),_(g,[...D],!0)});function m({targetNode:L}){L&&Ha(L.id,{...L.position})}var y=tt(),E=le(y);{var N=L=>{var q=Kk(),T=b(q);Q(()=>W(T,s(p))),O(L,q)},I=L=>{var q=Yk();O(L,q)},C=L=>{var q=Wk(),T=b(q);Ki(T,{children:(D,F)=>{Bi(D,{get nodeTypes(){return n},get edgeTypes(){return r},fitView:!0,minZoom:.2,maxZoom:2,proOptions:{hideAttribution:!0},onnodeclick:({node:S})=>st(S.id),onpaneclick:()=>st(null),onnodedragstop:m,get nodes(){return s(h)},set nodes(S){_(h,S,!0)},get edges(){return s(g)},set edges(S){_(g,S,!0)},children:(S,P)=>{var H=Xk(),x=le(H);Xi(x,{});var k=w(x,2);Yi(k,{}),O(S,H)},$$slots:{default:!0}})},$$slots:{default:!0}}),O(L,q)};te(E,L=>{s(p)?L(N):s(d)?L(C,-1):L(I,1)})}O(e,y),ge()}const Fl="code-constraints/view@1";function Zk(e,t){return{schema:Fl,name:e,xmiId:t,visibleClassIds:ie.visibleClassIds===null?null:[...ie.visibleClassIds],nodePositions:Object.fromEntries(ie.nodePositions),selectedClassId:ie.selectedClassId,savedAt:new Date().toISOString()}}function Uk(e,t){const n=Zk(e,t),r=new Blob([JSON.stringify(n,null,2)],{type:"application/json"}),i=URL.createObjectURL(r),a=document.createElement("a");a.href=i,a.download=`${$k(e)}.cdecview.json`,document.body.appendChild(a),a.click(),document.body.removeChild(a),setTimeout(()=>URL.revokeObjectURL(i),1e3)}async function Qk(e){const t=await e.text(),n=JSON.parse(t);if(n.schema!==Fl)throw new Error(`Unrecognised view schema: ${n.schema??"(missing)"}. Expected ${Fl}.`);return n}function Jk(e,t){if(e.visibleClassIds===null)Ln();else{const r=t?e.visibleClassIds.filter(i=>t.has(i)):e.visibleClassIds;Dn(r)}const n=new Map;for(const[r,i]of Object.entries(e.nodePositions??{}))t&&!t.has(r)||typeof(i==null?void 0:i.x)=="number"&&typeof(i==null?void 0:i.y)=="number"&&n.set(r,{x:i.x,y:i.y});ie.nodePositions=n,e.selectedClassId&&(!t||t.has(e.selectedClassId))?st(e.selectedClassId):st(null)}function $k(e){return(e.trim()||"view").replace(/[^a-zA-Z0-9_.-]+/g,"_").slice(0,60)}function Zu(e){return((e.trim()||"view").toLowerCase().replace(/[^a-z0-9_-]+/g,"_").replace(/^_+|_+$/g,"").slice(0,58)||"view")+".json"}function eE(e,t){const n=new Map(t.nodes.map(a=>[a.id,a.qualifiedName]));let r;if(ie.visibleClassIds===null)r=t.nodes.map(a=>a.qualifiedName);else{r=[];for(const a of ie.visibleClassIds){const o=n.get(a);o!==void 0&&r.push(o)}}const i={};for(const[a,o]of ie.nodePositions){const l=n.get(a);l!==void 0&&(i[l]=o)}return{schema:"code-constraints/view@2",name:e,visible:r,...Object.keys(i).length>0?{positions:i}:{}}}function tE(e,t){const n=new Map(t.nodes.map(o=>[o.qualifiedName,o.id])),r=[],i=[];for(const o of e.visible){const l=n.get(o);l!==void 0?i.push(l):r.push(o)}Dn(i);const a=new Map;for(const[o,l]of Object.entries(e.positions??{})){const c=n.get(o);c!==void 0&&typeof(l==null?void 0:l.x)=="number"&&typeof(l==null?void 0:l.y)=="number"&&a.set(c,{x:l.x,y:l.y})}return ie.nodePositions=a,st(null),{dropped:r}}var nE=j('<span class="action svelte-r5ipsg"><!></span>'),rE=j('<div class="section"><div><button type="button" class="toggle svelte-r5ipsg"><span class="caret svelte-r5ipsg"> </span> <span class="title svelte-r5ipsg"> </span></button> <!></div> <!></div>');function fa(e,t){let n=fe(t,"defaultOpen",3,!0),r=fe(t,"indent",3,!1),i=J(me(n()));var a=rE(),o=b(a);let l;var c=b(o),u=b(c),d=b(u),v=w(u,2),f=b(v),h=w(c,2);{var g=y=>{var E=nE(),N=b(E);At(N,()=>t.action),O(y,E)};te(h,y=>{t.action&&y(g)})}var p=w(o,2);{var m=y=>{var E=tt(),N=le(E);At(N,()=>t.children),O(y,E)};te(p,y=>{s(i)&&y(m)})}Q(()=>{l=we(o,1,"section-header svelte-r5ipsg",null,l,{indent:r()}),ce(c,"aria-expanded",s(i)),ce(c,"title",s(i)?"Collapse":"Expand"),W(d,s(i)?"▾":"▸"),W(f,t.title)}),ne("click",c,()=>_(i,!s(i))),O(e,a)}Qe(["click"]);var iE=j('<p class="hint svelte-78mhii">Loading…</p>'),aE=j('<p class="status error svelte-78mhii"> </p>'),sE=j('<p class="hint svelte-78mhii">No saved views yet.</p>'),oE=j('<input class="name-input rename-input svelte-78mhii"/> <button class="icon-btn svelte-78mhii" title="Confirm rename">✓</button> <button class="icon-btn svelte-78mhii" title="Cancel">✕</button>',1),lE=j('<span class="view-name svelte-78mhii"> </span> <button class="action-btn svelte-78mhii">Load</button> <button class="icon-btn svelte-78mhii" title="Rename">✎</button> <button class="icon-btn danger svelte-78mhii" title="Delete">✕</button>',1),cE=j('<li class="view-row svelte-78mhii"><!></li>'),uE=j('<ul class="view-list svelte-78mhii"></ul>'),dE=j("<p> </p>"),fE=j('<!> <div class="save-row svelte-78mhii"><input type="text" placeholder="View name" class="name-input svelte-78mhii"/> <button class="svelte-78mhii"> </button></div> <!> <details class="local-file svelte-78mhii"><summary class="svelte-78mhii">Local file (export / import)</summary> <div class="row svelte-78mhii"><button title="Download view as .cdecview.json" class="svelte-78mhii">Export</button> <button title="Load a view from a .cdecview.json file" class="svelte-78mhii">Import</button> <input type="file" accept=".json,application/json" style="display:none"/></div></details>',1),vE=j('<div class="saved-views svelte-78mhii"><!></div>');function eh(e,t){he(t,!0);let n=J(me([])),r=J(!1),i=J(null),a=J(""),o=J(!1),l=J(null),c=J(""),u=J(null),d=J(void 0);Ae(()=>{t.xmi.project_id,v()});async function v(){_(r,!0),_(i,null);try{_(n,await Ie.listViews(t.xmi.project_id),!0)}catch(L){_(i,L.message,!0)}finally{_(r,!1)}}async function f(L){if(t.graph){_(u,null);try{const q=await Ie.getView(t.xmi.project_id,L),{dropped:T}=tE(q,t.graph);T.length>0?_(u,{kind:"warn",msg:`${T.length} class${T.length===1?"":"es"} from this view no longer exist in the current model and were skipped.`},!0):_(u,{kind:"ok",msg:`Loaded "${q.name}".`},!0)}catch(q){_(u,{kind:"error",msg:q.message},!0)}}}async function h(){if(!(!t.graph||!s(a).trim())){_(o,!0),_(u,null);try{const L=eE(s(a).trim(),t.graph),q=Zu(s(a).trim());await Ie.saveView(t.xmi.project_id,q,L),await v(),_(u,{kind:"ok",msg:`Saved "${L.name}".`},!0)}catch(L){_(u,{kind:"error",msg:L.message},!0)}finally{_(o,!1)}}}async function g(L){_(u,null);try{await Ie.deleteView(t.xmi.project_id,L),await v()}catch(q){_(u,{kind:"error",msg:q.message},!0)}}function p(L,q){_(l,L,!0),_(c,q,!0),_(u,null)}function m(){_(l,null),_(c,"")}async function y(L){const q=s(c).trim();if(!q){m();return}_(u,null);try{const T=Zu(q),F={...await Ie.getView(t.xmi.project_id,L),name:q};await Ie.saveView(t.xmi.project_id,T,F),T!==L&&await Ie.deleteView(t.xmi.project_id,L),_(l,null),await v(),_(u,{kind:"ok",msg:`Renamed to "${q}".`},!0)}catch(T){_(u,{kind:"error",msg:T.message},!0)}}function E(){const L=s(a).trim()||"view";try{Uk(L,t.xmi.id),_(u,{kind:"ok",msg:`Downloaded "${L}.cdecview.json".`},!0)}catch(q){_(u,{kind:"error",msg:q.message},!0)}}async function N(L){var D;const q=L.currentTarget,T=(D=q.files)==null?void 0:D[0];if(q.value="",!!T)try{const F=await Qk(T),S=t.graph?new Set(t.graph.nodes.map(P=>P.id)):void 0;Jk(F,S),_(a,F.name??"",!0),_(u,{kind:"ok",msg:`Loaded "${F.name}" from file.`},!0)}catch(F){_(u,{kind:"error",msg:F.message},!0)}}var I=vE(),C=b(I);fa(C,{title:"Views",children:(L,q)=>{var T=fE(),D=le(T);{var F=X=>{var U=iE();O(X,U)},S=X=>{var U=aE(),ae=b(U);Q(()=>W(ae,s(i))),O(X,U)},P=X=>{var U=sE();O(X,U)},H=X=>{var U=uE();Pe(U,21,()=>s(n),ae=>ae.filename,(ae,se)=>{var ue=cE(),ve=b(ue);{var de=_e=>{var De=oE(),Me=le(De),We=w(Me,2),He=w(We,2);ne("keydown",Me,ke=>{ke.key==="Enter"&&y(s(se).filename),ke.key==="Escape"&&m()}),Ye(Me,()=>s(c),ke=>_(c,ke)),ne("click",We,()=>y(s(se).filename)),ne("click",He,m),O(_e,De)},Ee=_e=>{var De=lE(),Me=le(De),We=b(Me),He=w(Me,2),ke=w(He,2),je=w(ke,2);Q(()=>{ce(Me,"title",s(se).filename),W(We,s(se).name)}),ne("click",He,()=>f(s(se).filename)),ne("click",ke,()=>p(s(se).filename,s(se).name)),ne("click",je,()=>g(s(se).filename)),O(_e,De)};te(ve,_e=>{s(l)===s(se).filename?_e(de):_e(Ee,-1)})}O(ae,ue)}),O(X,U)};te(D,X=>{s(r)?X(F):s(i)?X(S,1):s(n).length===0?X(P,2):X(H,-1)})}var x=w(D,2),k=b(x),A=w(k,2),z=b(A),V=w(x,2);{var B=X=>{var U=dE(),ae=b(U);Q(()=>{we(U,1,`status ${s(u).kind??""}`,"svelte-78mhii"),W(ae,s(u).msg)}),O(X,U)};te(V,X=>{s(u)&&X(B)})}var Y=w(V,2),K=w(b(Y),2),G=b(K),$=w(G,2),ee=w($,2);ir(ee,X=>_(d,X),()=>s(d)),Q(X=>{A.disabled=X,W(z,s(o)?"…":"Save")},[()=>!t.graph||s(o)||!s(a).trim()]),ne("keydown",k,X=>{X.key==="Enter"&&h()}),Ye(k,()=>s(a),X=>_(a,X)),ne("click",A,h),ne("click",G,E),ne("click",$,()=>{var X;return(X=s(d))==null?void 0:X.click()}),ne("change",ee,N),O(L,T)},$$slots:{default:!0}}),O(e,I),ge()}Qe(["keydown","click","change"]);var hE=j('<p class="error svelte-1dxf3wz"> </p>'),gE=j('<p class="muted svelte-1dxf3wz">Loading…</p>'),mE=j('<button type="button" class="deps-link svelte-1dxf3wz" title="Show the allowed dependencies between layers (rules.yaml)">rules ↗</button>'),pE=j('<li><label class="class-row svelte-1dxf3wz"><input type="checkbox" class="svelte-1dxf3wz"/> <button type="button"> </button></label></li>'),_E=j('<ul class="layer-children svelte-1dxf3wz"></ul>'),bE=j('<li><div class="layer-row svelte-1dxf3wz"><button type="button" class="caret svelte-1dxf3wz"> </button> <input type="checkbox" class="svelte-1dxf3wz"/> <span class="swatch svelte-1dxf3wz"></span> <button type="button" class="layer-name-btn svelte-1dxf3wz"><span class="layer-name svelte-1dxf3wz"> </span></button> <span class="layer-count svelte-1dxf3wz"> </span> <button type="button" class="only svelte-1dxf3wz" title="Show only this layer">only</button></div> <!></li>'),yE=j('<ul class="layer-tree svelte-1dxf3wz"></ul>'),wE=j('<div class="layers svelte-1dxf3wz"><!></div>'),xE=j('<li><button class="row svelte-1dxf3wz"><span> </span> <span class="name svelte-1dxf3wz"> </span> <span class="pkg svelte-1dxf3wz"> </span></button></li>'),kE=j('<ul class="svelte-1dxf3wz"></ul>'),EE=j('<div class="related svelte-1dxf3wz"><!></div>'),SE=j('<span class="count svelte-1dxf3wz"> </span>'),CE=j('<span class="pkg svelte-1dxf3wz"> </span>'),NE=j('<li><label class="row checkbox svelte-1dxf3wz"><input type="checkbox" class="svelte-1dxf3wz"/> <button type="button"><span class="name svelte-1dxf3wz"> </span> <!></button></label></li>'),IE=j('<div class="search svelte-1dxf3wz"><input type="search" placeholder="Search classes…" autocomplete="off" class="svelte-1dxf3wz"/> <!></div> <ul class="class-list svelte-1dxf3wz"></ul>',1),PE=j('<!> <!> <!> <div class="classes svelte-1dxf3wz"><!></div>',1),OE=j('<div class="panel svelte-1dxf3wz"><!></div>');function ME(e,t){he(t,!0);let n=J(null),r=J(""),i=J("");Ae(()=>{const D=t.xmi.id;_(r,""),_(n,null),Ie.classGraph(D).then(F=>_(n,F,!0)).catch(F=>_(r,F.message,!0))});const a=R(()=>{if(!s(n))return[];const D=s(i).trim().toLowerCase();return D?s(n).nodes.filter(F=>F.name.toLowerCase().includes(D)||F.qualifiedName.toLowerCase().includes(D)):s(n).nodes}),o=R(()=>s(n)?new Map(s(n).nodes.map(D=>[D.id,D])):new Map),l=R(()=>!s(n)||!ie.selectedClassId?[]:Pm(ie.selectedClassId,s(n).edges).map(D=>({...D,node:s(o).get(D.id)})).filter(D=>D.node)),c=D=>{const F=D.rules.find(S=>S.name==="layer");return F?Ea(F)||"(unnamed)":null},u="(no layer)",d=R(()=>{if(!s(n))return[];const D=new Map;let F=!1;for(const S of s(n).nodes){const P=c(S);P&&(F=!0);const H=P??u;D.has(H)||D.set(H,[]),D.get(H).push(S)}return F?[...D.entries()].map(([S,P])=>({name:S,nodes:[...P].sort((H,x)=>H.name.localeCompare(x.name)),ids:P.map(H=>H.id)})).sort((S,P)=>S.name===u?1:P.name===u?-1:S.name.localeCompare(P.name)):[]}),v=_r("layer").color;let f=me({});function h(D){f[D]=!f[D]}function g(D){return D.every(F=>Un(F))}function p(D){return D.some(F=>Un(F))}function m(D){st(D)}function y(D,F){if(s(n))if(ie.visibleClassIds===null){const S=new Set(s(n).nodes.map(P=>P.id));F||S.delete(D),Dn(S)}else Va(D,F)}function E(D,F){if(!s(n))return;const S=ie.visibleClassIds===null?new Set(s(n).nodes.map(P=>P.id)):new Set(ie.visibleClassIds);for(const P of D)F?S.add(P):S.delete(P);Dn(S)}function N(D){Dn(D)}var I=OE(),C=b(I);{var L=D=>{var F=hE(),S=b(F);Q(()=>W(S,s(r))),O(D,F)},q=D=>{var F=gE();O(D,F)},T=D=>{var F=PE(),S=le(F);{var P=V=>{var B=wE(),Y=b(B);fa(Y,{title:"Layers",indent:!0,action:G=>{var $=mE();ne("click",$,()=>Oc(null)),O(G,$)},children:(G,$)=>{var ee=yE();Pe(ee,21,()=>s(d),X=>X.name,(X,U)=>{const ae=R(()=>g(s(U).ids)),se=R(()=>p(s(U).ids));var ue=bE(),ve=b(ue),de=b(ve),Ee=b(de),_e=w(de,2),De=w(_e,2),Me=w(De,2),We=b(Me),He=b(We),ke=w(Me,2),je=b(ke),rt=w(ke,2),Le=w(ve,2);{var it=ct=>{var xe=_E();Pe(xe,21,()=>s(U).nodes,Se=>Se.id,(Se,ze)=>{var $e=pE(),et=b($e),ht=b(et),Ge=w(ht,2);let ot;var Je=b(Ge);Q(Fe=>{ce(et,"title",s(ze).qualifiedName),Gr(ht,Fe),ot=we(Ge,1,"class-name-btn svelte-1dxf3wz",null,ot,{active:ie.selectedClassId===s(ze).id}),W(Je,s(ze).name)},[()=>Un(s(ze).id)]),ne("change",ht,Fe=>y(s(ze).id,Fe.currentTarget.checked)),ne("click",Ge,()=>m(s(ze).id)),O(Se,$e)}),O(ct,xe)};te(Le,ct=>{f[s(U).name]&&ct(it)})}Q(()=>{ce(de,"aria-expanded",!!f[s(U).name]),ce(de,"title",f[s(U).name]?"Collapse":"Expand"),W(Ee,f[s(U).name]?"▾":"▸"),Gr(_e,s(ae)),_e.indeterminate=s(se)&&!s(ae),ce(_e,"title",`Show / hide all classes in ${s(U).name??""}`),nt(De,`background:${(s(U).name===u?"#cbd5e1":v)??""}`),ce(Me,"title",`Expand / collapse ${s(U).name??""}`),W(He,s(U).name),W(je,s(U).ids.length)}),ne("click",de,()=>h(s(U).name)),ne("change",_e,ct=>E(s(U).ids,ct.currentTarget.checked)),ne("click",Me,()=>h(s(U).name)),ne("click",rt,()=>N(s(U).ids)),O(X,ue)}),O(G,ee)},$$slots:{action:!0,default:!0}}),O(V,B)};te(S,V=>{s(d).length&&V(P)})}var H=w(S,2);{var x=V=>{var B=EE(),Y=b(B);{let K=R(()=>{var G;return(G=s(o).get(ie.selectedClassId))==null?void 0:G.name});fa(Y,{get title(){return`Related to ${s(K)??""}`},indent:!0,children:(G,$)=>{var ee=kE();Pe(ee,21,()=>s(l),X=>X.id,(X,U)=>{var ae=xE(),se=b(ae),ue=b(se),ve=b(ue),de=w(ue,2),Ee=b(de),_e=w(de,2),De=b(_e);Q(()=>{ce(se,"title",s(U).node.qualifiedName),we(ue,1,`badge ${s(U).kind??""} ${s(U).direction??""}`,"svelte-1dxf3wz"),W(ve,s(U).kind==="inheritance"?"⇧":"→"),W(Ee,s(U).node.name),W(De,s(U).node.package)}),ne("click",se,()=>m(s(U).id)),O(X,ae)}),O(G,ee)},$$slots:{default:!0}})}O(V,B)};te(H,V=>{s(l).length&&V(x)})}var k=w(H,2);eh(k,{get graph(){return s(n)},get xmi(){return t.xmi}});var A=w(k,2),z=b(A);fa(z,{title:"Classes",indent:!0,children:(V,B)=>{var Y=IE(),K=le(Y),G=b(K),$=w(G,2);{var ee=U=>{var ae=SE(),se=b(ae);Q(()=>W(se,`${s(a).length??""} / ${s(n).nodes.length??""}`)),O(U,ae)};te($,U=>{s(n)&&U(ee)})}var X=w(K,2);Pe(X,21,()=>s(a),U=>U.id,(U,ae)=>{var se=NE(),ue=b(se),ve=b(ue),de=w(ve,2);let Ee;var _e=b(de),De=b(_e),Me=w(_e,2);{var We=He=>{var ke=CE(),je=b(ke);Q(()=>W(je,s(ae).package)),O(He,ke)};te(Me,He=>{s(ae).package&&He(We)})}Q(He=>{ce(ue,"title",s(ae).qualifiedName),Gr(ve,He),Ee=we(de,1,"row-button svelte-1dxf3wz",null,Ee,{active:ie.selectedClassId===s(ae).id}),W(De,s(ae).name)},[()=>Un(s(ae).id)]),ne("change",ve,He=>y(s(ae).id,He.currentTarget.checked)),ne("click",de,()=>m(s(ae).id)),O(U,se)}),Ye(G,()=>s(i),U=>_(i,U)),O(V,Y)},$$slots:{default:!0}}),O(D,F)};te(C,D=>{s(r)?D(L):s(n)?D(T,-1):D(q,1)})}O(e,I),ge()}Qe(["click","change"]);var TE=j('<p class="placeholder svelte-15q2ef1">Select a class to see details.</p>'),AE=j('<div class="pkg svelte-15q2ef1"> </div>'),zE=j('<p class="description svelte-15q2ef1"> </p>'),DE=j('<p class="description muted svelte-15q2ef1">No description.</p>'),LE=j('<p class="member-desc svelte-15q2ef1"> </p>'),RE=j('<li class="svelte-15q2ef1"><code class="sig svelte-15q2ef1"> </code> <!></li>'),jE=j('<h5 class="svelte-15q2ef1">Attributes</h5> <ul class="members svelte-15q2ef1"></ul>',1),qE=j('<p class="member-desc svelte-15q2ef1"> </p>'),VE=j('<li class="svelte-15q2ef1"><code class="sig svelte-15q2ef1"> </code> <!></li>'),HE=j('<h5 class="svelte-15q2ef1">Operations</h5> <ul class="members svelte-15q2ef1"></ul>',1),FE=j('<p class="location svelte-15q2ef1"> </p>'),BE=j('<div class="class-header svelte-15q2ef1"><span class="class-name svelte-15q2ef1"> </span> <span class="kind svelte-15q2ef1"> </span></div> <!> <!> <!> <!> <!>',1),KE=j('<div class="panel svelte-15q2ef1"><!></div>');function YE(e,t){he(t,!0);let n=J(null);Ae(()=>{const l=t.xmi.id;_(n,null),Ie.classGraph(l).then(c=>_(n,c,!0)).catch(()=>_(n,null))});const r=R(()=>s(n)?new Map(s(n).nodes.map(l=>[l.id,l])):new Map),i=R(()=>ie.selectedClassId?s(r).get(ie.selectedClassId)??null:null);var a=KE(),o=b(a);fa(o,{title:"Details",children:(l,c)=>{var u=tt(),d=le(u);{var v=h=>{var g=TE();O(h,g)},f=h=>{var g=BE(),p=le(g),m=b(p),y=b(m),E=w(m,2),N=b(E),I=w(p,2);{var C=k=>{var A=AE(),z=b(A);Q(()=>W(z,s(i).package)),O(k,A)};te(I,k=>{s(i).package&&k(C)})}var L=w(I,2);{var q=k=>{var A=zE(),z=b(A);Q(()=>W(z,s(i).description)),O(k,A)},T=k=>{var A=DE();O(k,A)};te(L,k=>{s(i).description?k(q):k(T,-1)})}var D=w(L,2);{var F=k=>{var A=jE(),z=w(le(A),2);Pe(z,23,()=>s(i).attributes,(V,B)=>B+"|"+V.signature,(V,B)=>{var Y=RE(),K=b(Y),G=b(K),$=w(K,2);{var ee=X=>{var U=LE(),ae=b(U);Q(()=>W(ae,s(B).description)),O(X,U)};te($,X=>{s(B).description&&X(ee)})}Q(()=>W(G,s(B).signature)),O(V,Y)}),O(k,A)};te(D,k=>{s(i).attributes.length&&k(F)})}var S=w(D,2);{var P=k=>{var A=HE(),z=w(le(A),2);Pe(z,23,()=>s(i).operations,(V,B)=>B+"|"+V.signature,(V,B)=>{var Y=VE(),K=b(Y),G=b(K),$=w(K,2);{var ee=X=>{var U=qE(),ae=b(U);Q(()=>W(ae,s(B).description)),O(X,U)};te($,X=>{s(B).description&&X(ee)})}Q(()=>W(G,s(B).signature)),O(V,Y)}),O(k,A)};te(S,k=>{s(i).operations.length&&k(P)})}var H=w(S,2);{var x=k=>{var A=FE(),z=b(A);Q(()=>{ce(A,"title",s(i).location.file),W(z,`${s(i).location.file??""}:${s(i).location.startLine??""}`)}),O(k,A)};te(H,k=>{s(i).location&&k(x)})}Q(()=>{W(y,s(i).name),W(N,s(i).kind)}),O(h,g)};te(d,h=>{s(i)?h(f,-1):h(v)})}O(l,u)},$$slots:{default:!0}}),O(e,a),ge()}var XE=j('<span class="count svelte-1msh8cb"> </span>'),WE=j('<p class="error svelte-1msh8cb"> </p>'),GE=j('<p class="muted svelte-1msh8cb">Loading…</p>'),ZE=j('<span class="pkg svelte-1msh8cb"> </span>'),UE=j('<li><button class="row svelte-1msh8cb"><span> </span> <span class="name svelte-1msh8cb"> </span> <!></button></li>'),QE=j('<div class="related svelte-1msh8cb"><h4 class="svelte-1msh8cb"> </h4> <ul class="svelte-1msh8cb"></ul></div>'),JE=j('<span class="pkg svelte-1msh8cb"> </span>'),$E=j('<li><label class="row checkbox svelte-1msh8cb"><input type="checkbox" class="svelte-1msh8cb"/> <button type="button"><span class="name svelte-1msh8cb"> </span> <!> <span class="cls-count svelte-1msh8cb"> </span></button></label></li>'),eS=j('<!> <!> <ul class="class-list svelte-1msh8cb"></ul>',1),tS=j('<div class="panel svelte-1msh8cb"><div class="search svelte-1msh8cb"><input type="search" placeholder="Search packages…" autocomplete="off" class="svelte-1msh8cb"/> <!></div> <!></div>');function nS(e,t){he(t,!0);let n=J(null),r=J(""),i=J("");Ae(()=>{const N=t.xmi.id;_(r,""),_(n,null),Ie.packageGraph(N).then(I=>_(n,I,!0)).catch(I=>_(r,I.message,!0))});const a=R(()=>{if(!s(n))return[];const N=s(i).trim().toLowerCase();return N?s(n).nodes.filter(I=>I.name.toLowerCase().includes(N)||I.qualifiedName.toLowerCase().includes(N)):s(n).nodes}),o=R(()=>s(n)?new Map(s(n).nodes.map(N=>[N.id,N])):new Map),l=R(()=>{if(!s(n)||!ie.selectedClassId)return[];const N=ie.selectedClassId,I=[];for(const L of s(n).edges){let q=null,T="out";if(L.source===N?(q=L.target,T="out"):L.target===N&&(q=L.source,T="in"),!q)continue;const D=s(o).get(q);D&&I.push({id:q,direction:T,node:D})}const C=new Set;return I.filter(L=>C.has(L.id)?!1:(C.add(L.id),!0))});function c(N){st(N)}function u(N,I){if(s(n))if(ie.visibleClassIds===null){const C=new Set(s(n).nodes.map(L=>L.id));I||C.delete(N),Dn(C)}else Va(N,I)}var d=tS(),v=b(d),f=b(v),h=w(f,2);{var g=N=>{var I=XE(),C=b(I);Q(()=>W(C,`${s(a).length??""} / ${s(n).nodes.length??""}`)),O(N,I)};te(h,N=>{s(n)&&N(g)})}var p=w(v,2);{var m=N=>{var I=WE(),C=b(I);Q(()=>W(C,s(r))),O(N,I)},y=N=>{var I=GE();O(N,I)},E=N=>{var I=eS(),C=le(I);{var L=D=>{var F=QE(),S=b(F),P=b(S),H=w(S,2);Pe(H,21,()=>s(l),x=>x.id,(x,k)=>{var A=UE(),z=b(A),V=b(z),B=b(V),Y=w(V,2),K=b(Y),G=w(Y,2);{var $=ee=>{var X=ZE(),U=b(X);Q(()=>W(U,s(k).node.parentQname)),O(ee,X)};te(G,ee=>{s(k).node.parentQname&&ee($)})}Q(()=>{ce(z,"title",s(k).node.qualifiedName),we(V,1,`badge ${s(k).direction??""}`,"svelte-1msh8cb"),W(B,s(k).direction==="out"?"→":"←"),W(K,s(k).node.name)}),ne("click",z,()=>c(s(k).id)),O(x,A)}),Q(x=>W(P,`Depends to/from ${x??""}`),[()=>{var x;return(x=s(o).get(ie.selectedClassId))==null?void 0:x.name}]),O(D,F)};te(C,D=>{s(l).length&&D(L)})}var q=w(C,2);eh(q,{graph:null,get xmi(){return t.xmi}});var T=w(q,2);Pe(T,21,()=>s(a),D=>D.id,(D,F)=>{var S=$E(),P=b(S),H=b(P),x=w(H,2);let k;var A=b(x),z=b(A),V=w(A,2);{var B=G=>{var $=JE(),ee=b($);Q(()=>W(ee,s(F).parentQname)),O(G,$)};te(V,G=>{s(F).parentQname&&G(B)})}var Y=w(V,2),K=b(Y);Q(G=>{ce(P,"title",s(F).qualifiedName),Gr(H,G),k=we(x,1,"row-button svelte-1msh8cb",null,k,{active:ie.selectedClassId===s(F).id}),W(z,s(F).name),W(K,s(F).classCount)},[()=>Un(s(F).id)]),ne("change",H,G=>u(s(F).id,G.currentTarget.checked)),ne("click",x,()=>c(s(F).id)),O(D,S)}),O(N,I)};te(p,N=>{s(r)?N(m):s(n)?N(E,-1):N(y,1)})}Ye(f,()=>s(i),N=>_(i,N)),O(e,d),ge()}Qe(["click","change"]);var rS=j('<span class="count svelte-67dkxc"> </span>'),iS=j('<p class="error svelte-67dkxc"> </p>'),aS=j('<p class="muted svelte-67dkxc">Loading…</p>'),sS=j('<li><label class="row checkbox svelte-67dkxc"><input type="checkbox"/> <button type="button"><span class="kind svelte-67dkxc"> </span> <span class="name svelte-67dkxc"> </span></button></label></li>'),oS=j('<ul class="node-list svelte-67dkxc"></ul>'),lS=j('<div class="panel svelte-67dkxc"><div class="search svelte-67dkxc"><input type="search" placeholder="Search nodes…" autocomplete="off" class="svelte-67dkxc"/> <!></div> <div class="commands svelte-67dkxc"><button class="svelte-67dkxc">Show all</button> <button class="svelte-67dkxc">Hide all</button> <button title="Limit to the selected node and its neighbours" class="svelte-67dkxc">Isolate</button> <label class="hops svelte-67dkxc" title="Edge-hops around the selected node">± <input type="number" min="0" max="10" class="svelte-67dkxc"/></label> <button title="Re-run auto-layout" class="svelte-67dkxc">Compact</button></div> <!></div>');function cS(e,t){he(t,!0);let n=J(null),r=J(""),i=J(""),a=J(1);Ae(()=>{const S=t.xmi.id,P=t.name;_(r,""),_(n,null),Ie.activityGraph(S,P).then(H=>_(n,H,!0)).catch(H=>_(r,H.message,!0))});const o=R(()=>{if(!s(n))return[];const S=s(i).trim().toLowerCase();return S?s(n).nodes.filter(P=>(P.label??"").toLowerCase().includes(S)||P.kind.toLowerCase().includes(S)):s(n).nodes});function l(S){st(S)}function c(S,P){if(s(n))if(ie.visibleClassIds===null){const H=new Set(s(n).nodes.map(x=>x.id));P||H.delete(S),Dn(H)}else Va(S,P)}function u(){!s(n)||!ie.selectedClassId||Cm(ie.selectedClassId,s(a),s(n).edges)}function d(S){return S.label?S.label:S.kind==="initial"?"● initial":S.kind==="final"?"● final":S.kind==="decision"?"◇ decision":S.kind==="merge"?"◇ merge":S.kind==="fork"?"▬ fork":S.kind==="join"?"▬ join":"(unnamed)"}var v=lS(),f=b(v),h=b(f),g=w(h,2);{var p=S=>{var P=rS(),H=b(P);Q(()=>W(H,`${s(o).length??""} / ${s(n).nodes.length??""}`)),O(S,P)};te(g,S=>{s(n)&&S(p)})}var m=w(f,2),y=b(m),E=w(y,2),N=w(E,2),I=w(N,2),C=w(b(I)),L=w(I,2),q=w(m,2);{var T=S=>{var P=iS(),H=b(P);Q(()=>W(H,s(r))),O(S,P)},D=S=>{var P=aS();O(S,P)},F=S=>{var P=oS();Pe(P,21,()=>s(o),H=>H.id,(H,x)=>{var k=sS(),A=b(k),z=b(A),V=w(z,2);let B;var Y=b(V),K=b(Y),G=w(Y,2),$=b(G);Q((ee,X)=>{Gr(z,ee),B=we(V,1,`row-button status-${s(x).status??""}`,"svelte-67dkxc",B,{active:ie.selectedClassId===s(x).id}),W(K,s(x).kind),W($,X)},[()=>Un(s(x).id),()=>d(s(x))]),ne("change",z,ee=>c(s(x).id,ee.currentTarget.checked)),ne("click",V,()=>l(s(x).id)),O(H,k)}),O(S,P)};te(q,S=>{s(r)?S(T):s(n)?S(F,-1):S(D,1)})}Q(()=>N.disabled=!ie.selectedClassId),Ye(h,()=>s(i),S=>_(i,S)),ne("click",y,function(...S){Ln==null||Ln.apply(this,S)}),ne("click",E,function(...S){er==null||er.apply(this,S)}),ne("click",N,u),Ye(C,()=>s(a),S=>_(a,S)),ne("click",L,function(...S){gi==null||gi.apply(this,S)}),O(e,v),ge()}Qe(["click","change"]);var uS=j('<p class="error svelte-12eqyd8"> </p>'),dS=j('<p class="muted svelte-12eqyd8">Loading…</p>'),fS=j('<span class="represents svelte-12eqyd8"> </span>'),vS=j('<li><label class="row checkbox svelte-12eqyd8"><input type="checkbox"/> <button><span class="name svelte-12eqyd8"> </span> <!></button></label></li>'),hS=j('<span class="guard svelte-12eqyd8"> </span>'),gS=j('<span class="ret svelte-12eqyd8">return</span>'),mS=j('<li><span class="row-no svelte-12eqyd8"> </span> <span class="label svelte-12eqyd8"><!> </span> <!></li>'),pS=j('<div class="section-label svelte-12eqyd8"> </div> <ul class="lifeline-list svelte-12eqyd8"></ul> <div class="section-label svelte-12eqyd8"> </div> <ul class="msg-list svelte-12eqyd8"></ul>',1),_S=j('<div class="panel svelte-12eqyd8"><div class="search svelte-12eqyd8"><input type="search" placeholder="Search lifelines / messages…" autocomplete="off" class="svelte-12eqyd8"/></div> <div class="commands svelte-12eqyd8"><button class="svelte-12eqyd8">Show all</button> <button class="svelte-12eqyd8">Hide all</button></div> <!></div>');function bS(e,t){he(t,!0);let n=J(null),r=J(""),i=J("");Ae(()=>{const E=t.xmi.id,N=t.name;_(r,""),_(n,null),Ie.sequenceGraph(E,N).then(I=>_(n,I,!0)).catch(I=>_(r,I.message,!0))});const a=R(()=>{if(!s(n))return[];const E=s(i).trim().toLowerCase();return E?s(n).lifelines.filter(N=>N.name.toLowerCase().includes(E)||N.represents.toLowerCase().includes(E)):s(n).lifelines}),o=R(()=>{if(!s(n))return[];const E=s(i).trim().toLowerCase();return E?s(n).messages.filter(N=>N.label.toLowerCase().includes(E)):s(n).messages});function l(E,N){if(s(n))if(ie.visibleClassIds===null){const I=new Set(s(n).lifelines.map(C=>C.id));N||I.delete(E),Dn(I)}else Va(E,N)}var c=_S(),u=b(c),d=b(u),v=w(u,2),f=b(v),h=w(f,2),g=w(v,2);{var p=E=>{var N=uS(),I=b(N);Q(()=>W(I,s(r))),O(E,N)},m=E=>{var N=dS();O(E,N)},y=E=>{var N=pS(),I=le(N),C=b(I),L=w(I,2);Pe(L,21,()=>s(a),F=>F.id,(F,S)=>{var P=vS(),H=b(P),x=b(H),k=w(x,2);let A;var z=b(k),V=b(z),B=w(z,2);{var Y=K=>{var G=fS(),$=b(G);Q(()=>W($,s(S).represents)),O(K,G)};te(B,K=>{s(S).represents&&K(Y)})}Q(K=>{Gr(x,K),A=we(k,1,`row-button status-${s(S).status??""}`,"svelte-12eqyd8",A,{active:ie.selectedClassId===s(S).id}),W(V,s(S).name)},[()=>Un(s(S).id)]),ne("change",x,K=>l(s(S).id,K.currentTarget.checked)),ne("click",k,()=>st(s(S).id)),O(F,P)});var q=w(L,2),T=b(q),D=w(q,2);Pe(D,21,()=>s(o),F=>F.id,(F,S)=>{var P=mS(),H=b(P),x=b(H),k=w(H,2),A=b(k);{var z=K=>{var G=hS(),$=b(G);Q(()=>W($,`[${s(S).guard??""}]`)),O(K,G)};te(A,K=>{s(S).guard&&K(z)})}var V=w(A,1,!0),B=w(k,2);{var Y=K=>{var G=gS();O(K,G)};te(B,K=>{s(S).isReturn&&K(Y)})}Q(()=>{we(P,1,`msg status-${s(S).status??""}`,"svelte-12eqyd8"),ce(P,"title",s(S).guard?`guard: ${s(S).guard}`:void 0),W(x,`#${s(S).row+1}`),W(V,s(S).label)}),O(F,P)}),Q(()=>{W(C,`Lifelines (${s(a).length??""} / ${s(n).lifelines.length??""})`),W(T,`Messages (${s(o).length??""} / ${s(n).messages.length??""})`)}),O(E,N)};te(g,E=>{s(r)?E(p):s(n)?E(y,-1):E(m,1)})}Ye(d,()=>s(i),E=>_(i,E)),ne("click",f,function(...E){Ln==null||Ln.apply(this,E)}),ne("click",h,function(...E){er==null||er.apply(this,E)}),O(e,c),ge()}Qe(["click","change"]);var yS=j('<li><span class="sign svelte-wdxyyx"> </span> <span class="kind svelte-wdxyyx"> </span> <code> </code></li>'),wS=j('<ul class="members svelte-wdxyyx"></ul>'),xS=j('<li><button><span> </span> <span class="summary"> </span></button> <!></li>'),kS=j('<div class="walk svelte-wdxyyx"><header class="svelte-wdxyyx"><h4 class="svelte-wdxyyx"> </h4> <div class="nav svelte-wdxyyx"><button title="Previous change" class="svelte-wdxyyx">‹</button> <span class="pos svelte-wdxyyx"> </span> <button title="Next change" class="svelte-wdxyyx">›</button></div></header> <ul class="svelte-wdxyyx"></ul></div>');function ES(e,t){he(t,!0);const n=R(()=>ie.selectedClassId?t.changes.findIndex(p=>p.classId===ie.selectedClassId):-1);function r(p){if(t.changes.length===0)return;const m=s(n)<0?p>0?0:t.changes.length-1:(s(n)+p+t.changes.length)%t.changes.length;st(t.changes[m].classId)}function i(p){st(p.classId)}var a=kS(),o=b(a),l=b(o),c=b(l),u=w(l,2),d=b(u),v=w(d,2),f=b(v),h=w(v,2),g=w(o,2);Pe(g,21,()=>t.changes,p=>p.classId,(p,m)=>{var y=xS(),E=b(y);let N;var I=b(E),C=b(I),L=w(I,2),q=b(L),T=w(E,2);{var D=F=>{var S=wS();Pe(S,23,()=>s(m).members,(P,H)=>H+"|"+P.kind+"|"+P.signature+"|"+P.status,(P,H)=>{var x=yS(),k=b(x),A=b(k),z=w(k,2),V=b(z),B=w(z,2),Y=b(B);Q(()=>{we(x,1,`member ${s(H).status??""}`,"svelte-wdxyyx"),W(A,s(H).status==="added"?"+":"−"),W(V,s(H).kind==="operation"?"op":"attr"),W(Y,s(H).signature)}),O(P,x)}),O(F,S)};te(T,F=>{s(m).members.length&&F(D)})}Q(F=>{N=we(E,1,`row ${s(m).kind??""}`,"svelte-wdxyyx",N,{active:ie.selectedClassId===s(m).classId}),ce(E,"title",s(m).classQname),we(I,1,`badge ${s(m).kind??""}`,"svelte-wdxyyx"),W(C,F),W(q,s(m).summary)},[()=>s(m).kind[0].toUpperCase()]),ne("click",E,()=>i(s(m))),O(p,y)}),Q(()=>{W(c,`Changes (${t.changes.length??""})`),W(f,`${s(n)<0?"—":s(n)+1} / ${t.changes.length??""}`)}),ne("click",d,()=>r(-1)),ne("click",h,()=>r(1)),O(e,a),ge()}Qe(["click"]);var SS=j('<li><button class="member-btn svelte-16ob2gs"><span class="sign svelte-16ob2gs"> </span> <span class="kind svelte-16ob2gs"> </span> <code class="svelte-16ob2gs"> </code></button></li>'),CS=j('<ul class="members svelte-16ob2gs"></ul>'),NS=j('<li><button><span> </span> <span class="summary"> </span></button> <!></li>'),IS=j('<div class="walk svelte-16ob2gs"><header class="svelte-16ob2gs"><h4 class="svelte-16ob2gs"> </h4> <div class="nav svelte-16ob2gs"><button title="Previous activity" class="svelte-16ob2gs">‹</button> <span class="pos svelte-16ob2gs"> </span> <button title="Next activity" class="svelte-16ob2gs">›</button></div></header> <ul class="svelte-16ob2gs"></ul></div>');function PS(e,t){he(t,!0);const n=R(()=>t.changes.find(m=>m.diagramName===t.activityName)??null),r=R(()=>s(n)?t.changes.findIndex(m=>m.diagramName===s(n).diagramName):-1);function i(m){var N;if(t.changes.length===0)return;const y=s(r)<0?m>0?0:t.changes.length-1:(s(r)+m+t.changes.length)%t.changes.length,E=t.changes[y];(N=t.onpick)==null||N.call(t,E.diagramName),st(null)}function a(m){m&&st(m)}var o=IS(),l=b(o),c=b(l),u=b(c),d=w(c,2),v=b(d),f=w(v,2),h=b(f),g=w(f,2),p=w(l,2);Pe(p,21,()=>t.changes,m=>m.diagramId,(m,y)=>{var E=NS(),N=b(E);let I;var C=b(N),L=b(C),q=w(C,2),T=b(q),D=w(N,2);{var F=S=>{var P=CS();Pe(P,23,()=>s(y).members,(H,x)=>x+"|"+H.kind+"|"+H.signature+"|"+H.status,(H,x)=>{var k=SS(),A=b(k),z=b(A),V=b(z),B=w(z,2),Y=b(B),K=w(B,2),G=b(K);Q(()=>{we(k,1,`member ${s(x).status??""}`,"svelte-16ob2gs"),A.disabled=!s(x).nodeId,ce(A,"title",s(x).nodeId?"Focus on canvas":"Edge — no node focus"),W(V,s(x).status==="added"?"+":"−"),W(Y,s(x).kind),W(G,s(x).signature)}),ne("click",A,()=>a(s(x).nodeId)),O(H,k)}),O(S,P)};te(D,S=>{s(y).members.length&&s(y).diagramName===t.activityName&&S(F)})}Q(S=>{I=we(N,1,`row ${s(y).kind??""}`,"svelte-16ob2gs",I,{active:s(y).diagramName===t.activityName}),ce(N,"title",s(y).diagramName),we(C,1,`badge ${s(y).kind??""}`,"svelte-16ob2gs"),W(L,S),W(T,s(y).summary)},[()=>s(y).kind[0].toUpperCase()]),ne("click",N,()=>{var S;return(S=t.onpick)==null?void 0:S.call(t,s(y).diagramName)}),O(m,E)}),Q(()=>{W(u,`Activity changes (${t.changes.length??""})`),W(h,`${s(r)<0?"—":s(r)+1} / ${t.changes.length??""}`)}),ne("click",v,()=>i(-1)),ne("click",g,()=>i(1)),O(e,o),ge()}Qe(["click"]);var OS=j('<li><span class="sign svelte-7i7234"> </span> <span class="kind svelte-7i7234"> </span> <code> </code></li>'),MS=j('<ul class="members svelte-7i7234"></ul>'),TS=j('<li><button><span> </span> <span class="summary"> </span></button> <!></li>'),AS=j('<div class="walk svelte-7i7234"><header class="svelte-7i7234"><h4 class="svelte-7i7234"> </h4> <div class="nav svelte-7i7234"><button class="svelte-7i7234">‹</button> <span class="pos svelte-7i7234"> </span> <button class="svelte-7i7234">›</button></div></header> <ul class="svelte-7i7234"></ul></div>');function zS(e,t){he(t,!0);const n=R(()=>t.changes.findIndex(g=>g.diagramName===t.sequenceName));function r(g){var m;if(t.changes.length===0)return;const p=s(n)<0?g>0?0:t.changes.length-1:(s(n)+g+t.changes.length)%t.changes.length;(m=t.onpick)==null||m.call(t,t.changes[p].diagramName)}var i=AS(),a=b(i),o=b(a),l=b(o),c=w(o,2),u=b(c),d=w(u,2),v=b(d),f=w(d,2),h=w(a,2);Pe(h,21,()=>t.changes,g=>g.diagramId,(g,p)=>{var m=TS(),y=b(m);let E;var N=b(y),I=b(N),C=w(N,2),L=b(C),q=w(y,2);{var T=D=>{var F=MS();Pe(F,23,()=>s(p).members,(S,P)=>P+"|"+S.kind+"|"+S.signature+"|"+S.status,(S,P)=>{var H=OS(),x=b(H),k=b(x),A=w(x,2),z=b(A),V=w(A,2),B=b(V);Q(()=>{we(H,1,`member ${s(P).status??""}`,"svelte-7i7234"),W(k,s(P).status==="added"?"+":"−"),W(z,s(P).kind),W(B,s(P).signature)}),O(S,H)}),O(D,F)};te(q,D=>{s(p).members.length&&s(p).diagramName===t.sequenceName&&D(T)})}Q(D=>{E=we(y,1,`row ${s(p).kind??""}`,"svelte-7i7234",E,{active:s(p).diagramName===t.sequenceName}),ce(y,"title",s(p).diagramName),we(N,1,`badge ${s(p).kind??""}`,"svelte-7i7234"),W(I,D),W(L,s(p).summary)},[()=>s(p).kind[0].toUpperCase()]),ne("click",y,()=>{var D;return(D=t.onpick)==null?void 0:D.call(t,s(p).diagramName)}),O(g,m)}),Q(()=>{W(l,`Sequence changes (${t.changes.length??""})`),W(v,`${s(n)<0?"—":s(n)+1} / ${t.changes.length??""}`)}),ne("click",u,()=>r(-1)),ne("click",f,()=>r(1)),O(e,i),ge()}Qe(["click"]);var DS=j('<span class="kind-tag svelte-1no0ci2"> </span>'),LS=j('<span class="type svelte-1no0ci2"> </span>'),RS=j('<li><span class="vis svelte-1no0ci2"> </span> <span> </span> <!></li>'),jS=j('<li class="placeholder svelte-1no0ci2">— no attributes —</li>'),qS=j('<span class="type svelte-1no0ci2"> </span>'),VS=j('<li><span class="vis svelte-1no0ci2"> </span> <span> </span><span class="paren svelte-1no0ci2">(</span><span class="paren svelte-1no0ci2">)</span><!></li>'),HS=j('<li class="placeholder svelte-1no0ci2">— no operations —</li>'),FS=j('<div><!> <header role="button" tabindex="-1" title="Double-click to edit class" class="svelte-1no0ci2"><!> <span class="name svelte-1no0ci2"> </span> <button class="pencil svelte-1no0ci2" title="Edit class">✎</button></header> <ul class="members attributes svelte-1no0ci2"><!> <!> <li class="quick-add svelte-1no0ci2"><button title="Add attribute" class="svelte-1no0ci2">+ attribute</button></li></ul> <ul class="members operations svelte-1no0ci2"><!> <!> <li class="quick-add svelte-1no0ci2"><button title="Add method" class="svelte-1no0ci2">+ method</button></li></ul> <!></div>');function BS(e,t){he(t,!0);function n(x){x.stopPropagation();const k=tr(t.data.qualifiedName);k&&Lm(t.data.qualifiedName,[...k.attributes,mf()])}function r(x){x.stopPropagation();const k=tr(t.data.qualifiedName);k&&Rm(t.data.qualifiedName,[...k.operations,pf()])}const i={public:"+",protected:"#",private:"-",package:"~"},a=R(()=>t.data.kind==="interface"?"«interface»":t.data.kind==="enum"?"«enumeration»":t.data.kind==="abstract"?"«abstract»":t.data.kind==="struct"?"«struct»":t.data.kind==="record"?"«record»":t.data.kind==="static"?"«static»":""),o=R(()=>ie.selectedClassId===t.id);function l(x,k){window.dispatchEvent(new CustomEvent(`editor:${x}`,{detail:k}))}var c=FS();let u;var d=b(c);Dt(d,{type:"target",get position(){return Ce.Top}});var v=w(d,2),f=b(v);{var h=x=>{var k=DS(),A=b(k);Q(()=>W(A,s(a))),O(x,k)};te(f,x=>{s(a)&&x(h)})}var g=w(f,2),p=b(g),m=w(g,2),y=w(v,2),E=b(y);Pe(E,19,()=>t.data.attributes,(x,k)=>k+"|"+x.signature,(x,k)=>{var A=RS(),z=b(A),V=b(z),B=w(z,2);let Y;var K=b(B),G=w(B,2);{var $=ee=>{var X=LS(),U=b(X);Q(()=>W(U,`: ${s(k).type??""}`)),O(ee,X)};te(G,ee=>{s(k).type&&ee($)})}Q(()=>{we(A,1,`status-${s(k).status??""}`,"svelte-1no0ci2"),W(V,i[s(k).visibility]??"+"),Y=we(B,1,"member-name svelte-1no0ci2",null,Y,{static:s(k).isStatic}),W(K,s(k).name)}),O(x,A)});var N=w(E,2);{var I=x=>{var k=jS();O(x,k)};te(N,x=>{t.data.attributes.length===0&&x(I)})}var C=w(N,2),L=b(C),q=w(y,2),T=b(q);Pe(T,19,()=>t.data.operations,(x,k)=>k+"|"+x.signature,(x,k)=>{var A=VS(),z=b(A),V=b(z),B=w(z,2);let Y;var K=b(B),G=w(B,3);{var $=ee=>{var X=qS(),U=b(X);Q(()=>W(U,`: ${s(k).returnType??""}`)),O(ee,X)};te(G,ee=>{s(k).returnType&&ee($)})}Q(()=>{we(A,1,`status-${s(k).status??""}`,"svelte-1no0ci2"),W(V,i[s(k).visibility]??"+"),Y=we(B,1,"member-name svelte-1no0ci2",null,Y,{static:s(k).isStatic,abstract:s(k).isAbstract}),W(K,s(k).name)}),O(x,A)});var D=w(T,2);{var F=x=>{var k=HS();O(x,k)};te(D,x=>{t.data.operations.length===0&&x(F)})}var S=w(D,2),P=b(S),H=w(q,2);Dt(H,{type:"source",get position(){return Ce.Bottom}}),Q(()=>{u=we(c,1,`class-node status-${t.data.status??""} editable`,"svelte-1no0ci2",u,{selected:t.selected,highlighted:s(o)}),W(p,t.data.name)}),ne("dblclick",v,()=>l("edit-class",{qualifiedName:t.data.qualifiedName})),ne("click",m,x=>{x.stopPropagation(),l("edit-class",{qualifiedName:t.data.qualifiedName})}),ne("dblclick",y,()=>l("edit-class",{qualifiedName:t.data.qualifiedName,section:"attributes"})),ne("click",L,n),ne("dblclick",q,()=>l("edit-class",{qualifiedName:t.data.qualifiedName,section:"operations"})),ne("click",P,r),O(e,c),ge()}Qe(["dblclick","click"]);var KS=j('<p class="error svelte-ng2mei"> </p>'),YS=j("<!> <!> <!>",1),XS=j("<!> <!>",1),WS=j('<div class="flow svelte-ng2mei"><!> <!></div>');function GS(e,t){he(t,!0);const n={class:BS},r=220,i=40,a=18;function o(m){const y=Math.max(m.attributes.length,1)+Math.max(m.operations.length,1);return i+y*a+16}let l=J(me([])),c=J(me([])),u=J(""),d=0;Ae(()=>{const m=pe.project;m.packages,m.associations;for(const I of m.packages){I.classes;for(const C of I.classes)C.attributes,C.operations,C.bases,C.kind,C.name,C.qualified_name}const y=++d,E=Oi(m),N=pe.compare&&pe.baseline?Oi(pe.baseline):null;(N?Ie.editDiffGraph(N,E):Ie.editClassGraph(E)).then(I=>{y===d&&(v(I.nodes,I.edges),_(u,""))}).catch(I=>{y===d&&_(u,I.message,!0)})});function v(m,y){Il.qnameById.clear();for(const C of m)Il.qnameById.set(C.id,C.qualifiedName);const E=yt(()=>ie.nodePositions),N=m.filter(C=>!E.has(C.id)),I=new Map(E);if(N.length){const C=Sr(m.map(L=>({id:L.id,width:r,height:o(L)})),y.map(L=>({source:L.source,target:L.target})),{direction:"BT",nodeSep:60,rankSep:100});for(const L of N){const q=C.get(L.id);q&&I.set(L.id,q)}yt(()=>ga(I))}_(l,m.map(C=>({id:C.id,type:"class",data:C,position:I.get(C.id)??{x:0,y:0}})),!0),_(c,y.map(C=>({id:C.id,source:C.source,target:C.target,label:C.multiplicity||void 0,data:{kind:C.kind},markerEnd:{type:C.kind==="inheritance"?un.ArrowClosed:un.Arrow,color:C.kind==="inheritance"?"#475569":"#94a3b8"},style:C.kind==="inheritance"?"stroke:#475569;stroke-width:1.5":"stroke:#94a3b8;stroke-width:1"})),!0)}Ae(()=>{ie.relayoutToken!==0&&yt(()=>{if(s(l).length===0)return;const y=Sr(s(l).map(E=>({id:E.id,width:r,height:o(E.data)})),s(c).map(E=>({source:E.source,target:E.target})),{direction:"BT",nodeSep:60,rankSep:100});ga(y),_(l,s(l).map(E=>({...E,position:y.get(E.id)??E.position})),!0)})});var f=WS(),h=b(f);{var g=m=>{var y=KS(),E=b(y);Q(()=>W(E,`Graph build failed: ${s(u)??""}`)),O(m,y)};te(h,m=>{s(u)&&m(g)})}var p=w(h,2);Ki(p,{children:(m,y)=>{var E=XS(),N=le(E);Bi(N,{get nodeTypes(){return n},fitView:!0,minZoom:.1,maxZoom:2,proOptions:{hideAttribution:!0},onnodeclick:({node:C})=>t.onnodeclickid(C.id),get onpaneclick(){return t.onpaneclick},get onnodedragstop(){return t.onnodedragstop},get onconnect(){return t.onconnect},onedgeclick:({edge:C})=>t.onedgeclick(C),get nodes(){return s(l)},set nodes(C){_(l,C,!0)},get edges(){return s(c)},set edges(C){_(c,C,!0)},children:(C,L)=>{var q=YS(),T=le(q);Xi(T,{});var D=w(T,2);Yi(D,{});var F=w(D,2);Ec(F,{pannable:!0,zoomable:!0}),O(C,q)},$$slots:{default:!0}});var I=w(N,2);wo(I,{}),O(m,E)},$$slots:{default:!0}}),O(e,f),ge()}var ZS=j('<span class="parse-error svelte-x0xk3q"> </span>'),US=j('<span class="ok svelte-x0xk3q">canvas in sync</span>'),QS=j('<div class="code-panel svelte-x0xk3q"><div class="head svelte-x0xk3q"><span class="title svelte-x0xk3q">Model JSON</span> <!></div> <textarea spellcheck="false" autocomplete="off" autocapitalize="off" class="svelte-x0xk3q"></textarea></div>');function JS(e,t){he(t,!0);let n=null,r=J(""),i=J(""),a=null,o=!1;Ae(()=>{const m=Oi(pe.project),y=JSON.stringify(m,null,2);if(o){o=!1;return}document.activeElement!==n&&(_(r,y,!0),_(i,""))});function l(){a!==null&&clearTimeout(a),a=setTimeout(c,400)}function c(){a=null;let m;try{m=JSON.parse(s(r))}catch(E){_(i,`JSON: ${E.message}`);return}if(typeof m!="object"||m===null||!Array.isArray(m.packages)){_(i,"model must be an object with a `packages` array");return}const y=m;y.activities??(y.activities=[]),y.sequences??(y.sequences=[]),y.associations??(y.associations=[]),y.source_language??(y.source_language="python"),y.root_path??(y.root_path=""),_(i,""),o=!0,Om(y)}function u(){a!==null&&(clearTimeout(a),c())}var d=QS(),v=b(d),f=w(b(v),2);{var h=m=>{var y=ZS(),E=b(y);Q(()=>{ce(y,"title",s(i)),W(E,`⚠ ${s(i)??""}`)}),O(m,y)},g=m=>{var y=US();O(m,y)};te(f,m=>{s(i)?m(h):m(g,-1)})}var p=w(v,2);ir(p,m=>n=m,()=>n),ne("input",p,l),Er("blur",p,u),Ye(p,()=>s(r),m=>_(r,m)),O(e,d),ge()}Qe(["input"]);var $S=j('<button type="button" title="Toggle live diff styling against the loaded baseline"> </button>'),eC=j('<div class="code-cell svelte-1l0n74n"><!></div>'),tC=j(`<div class="flow-wrap svelte-1l0n74n"><div class="toolbar svelte-1l0n74n"><button type="button" class="svelte-1l0n74n">+ Add class</button> <button type="button" title="Edit the model as JSON side-by-side with the canvas">Code</button> <!> <span class="hint svelte-1l0n74n">Drag between nodes to draw a relationship · Delete removes the selected
8
+ class</span></div> <div class="split svelte-1l0n74n"><div class="canvas-cell svelte-1l0n74n"><!></div> <!></div></div>`);function th(e,t){he(t,!0);function n(C){return Il.qnameById.get(C)}function r({targetNode:C}){C&&Ha(C.id,{...C.position})}function i(C){!C.source||!C.target||C.source===C.target||Mm(C.source,C.target,n(C.source)??C.source,n(C.target)??C.target)}function a(C){const{qualifiedName:L}=C.detail,q=tr(L);q&&qo(q,!0,L)}function o(){qo(Am({name:"NewClass"}),!1,null)}function l(C){var F;if(((F=C.data)==null?void 0:F.kind)==="inheritance"){const S=n(C.source),P=S?tr(S):null;P&&S&&qo(P,!0,S);return}const q=n(C.source),T=n(C.target);if(!q||!T)return;const D=pe.project.associations.findIndex(S=>S.source===q&&S.target===T);D>=0&&of({...pe.project.associations[D]},D,!0)}function c(C){if(C.key!=="Delete"&&C.key!=="Backspace"||Te.classOpen||Te.assocOpen||Te.edgePickerOpen)return;const L=C.target;if(L&&(L.tagName==="INPUT"||L.tagName==="TEXTAREA"||L.isContentEditable))return;const q=ie.selectedClassId;if(!q)return;const T=n(q);!T||!tr(T)||(C.preventDefault(),hf(T),st(null))}Ae(()=>{const C=L=>a(L);return window.addEventListener("editor:edit-class",C),()=>window.removeEventListener("editor:edit-class",C)});var u=tC();Er("keydown",Mt,c);var d=b(u),v=b(d),f=w(v,2);let h;var g=w(f,2);{var p=C=>{var L=$S();let q;var T=b(L);Q(()=>{q=we(L,1,"svelte-1l0n74n",null,q,{active:pe.compare}),W(T,`Compare${pe.compare?" ✓":""}`)}),ne("click",L,function(...D){Ro==null||Ro.apply(this,D)}),O(C,L)};te(g,C=>{pe.baseline&&C(p)})}var m=w(d,2),y=b(m),E=b(y);GS(E,{onnodeclickid:C=>st(C),onpaneclick:()=>st(null),onnodedragstop:r,onconnect:i,onedgeclick:l});var N=w(y,2);{var I=C=>{var L=eC(),q=b(L);JS(q,{}),O(C,L)};te(N,C=>{pe.codePanelOpen&&C(I)})}Q(()=>h=we(f,1,"svelte-1l0n74n",null,h,{active:pe.codePanelOpen})),ne("click",v,o),ne("click",f,function(...C){jo==null||jo.apply(this,C)}),O(e,u),ge()}Qe(["click"]);var nC=j('<footer class="svelte-7liiud"><!></footer>'),rC=j('<div class="backdrop svelte-7liiud" role="presentation"></div> <div class="dialog svelte-7liiud" role="dialog" aria-modal="true"><header class="svelte-7liiud"><h2 class="svelte-7liiud"> </h2> <button class="close svelte-7liiud" aria-label="Close">×</button></header> <div class="body svelte-7liiud"><!></div> <!></div>',1);function Or(e,t){he(t,!0);let n=fe(t,"width",3,"520px");function r(l){l.key==="Escape"&&t.onclose()}var i=tt();Er("keydown",Mt,r);var a=le(i);{var o=l=>{var c=rC(),u=le(c),d=w(u,2);let v;var f=b(d),h=b(f),g=b(h),p=w(h,2),m=w(f,2),y=b(m);At(y,()=>t.children??sr);var E=w(m,2);{var N=I=>{var C=nC(),L=b(C);At(L,()=>t.footer),O(I,C)};te(E,I=>{t.footer&&I(N)})}Q(()=>{ce(d,"aria-label",t.title),v=nt(d,"",v,{width:n()}),W(g,t.title)}),ne("click",u,function(...I){var C;(C=t.onclose)==null||C.apply(this,I)}),ne("click",p,function(...I){var C;(C=t.onclose)==null||C.apply(this,I)}),O(l,c)};te(a,l=>{t.open&&l(o)})}O(e,i),ge()}Qe(["click"]);var iC=j('<p class="error svelte-mh03di"> </p>'),aC=j('<p class="muted svelte-mh03di">Loading…</p>'),sC=j(`<p class="muted svelte-mh03di">No <code class="svelte-mh03di">layer-dependencies</code> rule found in this project's <code class="svelte-mh03di">rules.yaml</code>.</p>`),oC=j('<span class="chip svelte-mh03di"> </span>'),lC=j('<span class="targets svelte-mh03di"></span>'),cC=j('<span class="none svelte-mh03di">(none — leaf layer)</span>'),uC=j('<li><span class="layer svelte-mh03di"> </span> <span class="arrow svelte-mh03di">→</span> <!></li>'),dC=j('<p class="muted note svelte-mh03di">Layer <code class="svelte-mh03di"> </code> has no declared constraints.</p>'),fC=j(`<p class="hint svelte-mh03di">Declared in <code class="svelte-mh03di">rules.yaml</code> — each layer and the layers it may
9
+ reference. Same-layer references are always allowed.</p> <ul class="matrix svelte-mh03di"></ul> <!>`,1);function vC(e,t){he(t,!0);let n=J(null),r=J(null),i=J("");Ae(()=>{On.open&&(s(r)===t.projectId&&s(n)||(_(i,""),Ie.layerDependencies(t.projectId).then(c=>{_(n,c,!0),_(r,t.projectId,!0)}).catch(c=>_(i,c.message,!0))))});const a=R(()=>s(n)?Object.keys(s(n).allow):[]),o=R(()=>s(a).length>0),l=R(()=>!On.focus||s(a).includes(On.focus));Or(e,{get open(){return On.open},title:"Layer dependencies",width:"460px",get onclose(){return T2},children:(c,u)=>{var d=tt(),v=le(d);{var f=m=>{var y=iC(),E=b(y);Q(()=>W(E,s(i))),O(m,y)},h=m=>{var y=aC();O(m,y)},g=m=>{var y=sC();O(m,y)},p=m=>{var y=fC(),E=w(le(y),2);Pe(E,20,()=>s(a),C=>C,(C,L)=>{var q=uC();let T;var D=b(q),F=b(D),S=w(D,4);{var P=x=>{var k=lC();Pe(k,20,()=>s(n).allow[L],A=>A,(A,z)=>{var V=oC(),B=b(V);Q(()=>W(B,z)),O(A,V)}),O(x,k)},H=x=>{var k=cC();O(x,k)};te(S,x=>{s(n).allow[L].length?x(P):x(H,-1)})}Q(()=>{T=we(q,1,"svelte-mh03di",null,T,{focused:L===On.focus}),W(F,L)}),O(C,q)});var N=w(E,2);{var I=C=>{var L=dC(),q=w(b(L)),T=b(q);Q(()=>W(T,On.focus)),O(C,L)};te(N,C=>{s(l)||C(I)})}O(m,y)};te(v,m=>{s(i)?m(f):s(n)?s(o)?m(p,-1):m(g,2):m(h,1)})}O(c,d)},$$slots:{default:!0}}),ge()}var hC=j('<p class="msg error svelte-12b62b9"> </p>'),gC=j('<p class="msg muted svelte-12b62b9">Loading…</p>'),mC=j('<p class="msg muted svelte-12b62b9">No classes found in this layer.</p>'),pC=j('<span class="pkg svelte-12b62b9"> </span>'),_C=j('<li><label class="row svelte-12b62b9"><input type="checkbox"/> <span></span> <span class="class-name svelte-12b62b9"> </span> <!></label></li>'),bC=j('<p class="summary svelte-12b62b9"><span class="badge svelte-12b62b9"> </span> <span class="counts svelte-12b62b9"> </span></p> <ul class="class-list svelte-12b62b9"></ul>',1);function yC(e,t){he(t,!0);let n=J(null),r=J(null),i=J("");Ae(()=>{Mn.open&&(s(r)===t.xmi.id&&s(n)||(_(i,""),Ie.classGraph(t.xmi.id).then(u=>{_(n,u,!0),_(r,t.xmi.id,!0)}).catch(u=>_(i,u.message,!0))))});const a=_r("layer").color,o=R(()=>!s(n)||!Mn.layerName?[]:s(n).nodes.filter(u=>{const d=u.rules.find(v=>v.name==="layer");return d?Ea(d)===Mn.layerName:!1})),l=R(()=>s(o).filter(u=>Un(u.id)).length);function c(u,d){if(s(n))if(ie.visibleClassIds===null){const v=new Set(s(n).nodes.map(f=>f.id));d||v.delete(u),Dn(v)}else Va(u,d)}{let u=R(()=>Mn.layerName??"");Or(e,{get open(){return Mn.open},get title(){return`Layer: ${s(u)??""}`},width:"420px",get onclose(){return z2},children:(d,v)=>{var f=tt(),h=le(f);{var g=E=>{var N=hC(),I=b(N);Q(()=>W(I,s(i))),O(E,N)},p=E=>{var N=gC();O(E,N)},m=E=>{var N=mC();O(E,N)},y=E=>{var N=bC(),I=le(N),C=b(I),L=b(C),q=w(C,2),T=b(q),D=w(I,2);Pe(D,21,()=>s(o),F=>F.id,(F,S)=>{const P=R(()=>Un(s(S).id));var H=_C();let x;var k=b(H),A=b(k),z=w(A,2);let V;var B=w(z,2),Y=b(B),K=w(B,2);{var G=$=>{var ee=pC(),X=b(ee);Q(()=>W(X,s(S).package)),O($,ee)};te(K,$=>{s(S).package&&$(G)})}Q(()=>{x=we(H,1,"svelte-12b62b9",null,x,{hidden:!s(P)}),ce(k,"title",`${s(S).qualifiedName??""} — ${s(P)?"visible":"hidden"} on canvas`),Gr(A,s(P)),V=we(z,1,"vis-dot svelte-12b62b9",null,V,{on:s(P)}),ce(z,"title",s(P)?"Visible":"Hidden"),W(Y,s(S).name)}),ne("change",A,$=>c(s(S).id,$.currentTarget.checked)),O(F,H)}),Q(()=>{nt(C,`background:${a??""}`),W(L,`layer: ${Mn.layerName??""}`),W(T,`${s(l)??""} visible · ${s(o).length-s(l)} hidden`)}),O(E,N)};te(h,E=>{s(i)?E(g):s(n)?s(o).length===0?E(m,2):E(y,-1):E(p,1)})}O(d,f)},$$slots:{default:!0}})}ge()}Qe(["change"]);var wC=j("<!> <!>",1),xC=j('<div class="edge-focus-canvas svelte-1u9iyu6"><svg style="position:absolute;width:0;height:0" aria-hidden="true"><defs><marker id="uml-inheritance" markerWidth="14" markerHeight="14" refX="11" refY="5" orient="auto-start-reverse" markerUnits="userSpaceOnUse"><path d="M0,0 L11,5 L0,10 z" fill="#ffffff" stroke="#475569" stroke-width="1"></path></marker></defs></svg> <!></div>');function kC(e,t){he(t,!0);const n={class:Jv},r=220,i=80;let a=J(me([])),o=J(me([]));Ae(()=>{const{source:l,target:c,edge:u}=yn;if(!l||!c||!u){_(a,[],!0),_(o,[],!0);return}const d=u.members??[],v={...l,highlightAttributes:d.filter(h=>h.kind==="attribute").map(h=>h.signature),highlightOperations:d.filter(h=>h.kind==="operation").map(h=>h.signature),highlightHeader:d.some(h=>h.kind==="inheritance")};_(a,[{id:l.id,type:"class",data:v,position:{x:0,y:0}},{id:c.id,type:"class",data:c,position:{x:r+i,y:0}}],!0);const f=u.kind==="inheritance";_(o,[{id:u.id,source:f?u.target:u.source,target:f?u.source:u.target,label:u.multiplicity||void 0,markerStart:f?"uml-inheritance":void 0,markerEnd:f?void 0:{type:un.Arrow,color:"#94a3b8"},style:f?"stroke:#475569;stroke-width:1.5":"stroke:#94a3b8;stroke-width:1"}],!0)}),Or(e,{get open(){return yn.open},title:"Edge focus",width:"780px",get onclose(){return ak},children:(l,c)=>{var u=xC(),d=w(b(u),2);{var v=f=>{Ki(f,{children:(h,g)=>{Bi(h,{get nodeTypes(){return n},fitView:!0,minZoom:.2,maxZoom:2,proOptions:{hideAttribution:!0},get nodes(){return s(a)},set nodes(p){_(a,p,!0)},get edges(){return s(o)},set edges(p){_(o,p,!0)},children:(p,m)=>{var y=wC(),E=le(y);Xi(E,{});var N=w(E,2);Yi(N,{showLock:!1}),O(p,y)},$$slots:{default:!0}})},$$slots:{default:!0}})};te(d,f=>{yn.open&&f(v)})}O(l,u)},$$slots:{default:!0}}),ge()}var EC=j('<div class="group svelte-1hqpjto"><button title="Level-of-detail: as you zoom out, simplify nodes to headers, then hide edges, then hide derived classes. Toggle off to always show full detail."> </button></div>'),SC=j('<div class="group svelte-1hqpjto"><button title="Show the two classes joined by the selected edge, side by side (shortcut: f)" class="svelte-1hqpjto">Focus edge (f)</button></div>'),CC=j('<button class="accent svelte-1hqpjto" title="Show the architectural layers and their allowed dependencies (rules.yaml)">Layers &amp; rules</button>'),NC=j("<span> </span>"),IC=j(`<div class="group svelte-1hqpjto"><button class="accent svelte-1hqpjto" title="Save the current diagram as this project's reference architecture (.cdec/reference.xmi)"> </button> <!></div>`),PC=j('<div class="diagram-tools svelte-1hqpjto"><!> <div class="group svelte-1hqpjto"><button title="Show every element" class="svelte-1hqpjto">Show all</button> <button title="Hide every element" class="svelte-1hqpjto">Hide all</button></div> <div class="group svelte-1hqpjto"><button title="Show only the selected element, then reveal neighbours step by step" class="svelte-1hqpjto">Focus</button> <button title="Reveal one more ring of upstream neighbours (things that depend on the visible elements)" class="svelte-1hqpjto">↑ upstream</button> <button title="Reveal one more ring of downstream neighbours (things the visible elements depend on)" class="svelte-1hqpjto">↓ downstream</button> <button title="Hide the most recently revealed ring" class="svelte-1hqpjto">Collapse</button></div> <!> <div class="group svelte-1hqpjto"><button title="Re-run auto-layout over the currently-visible elements" class="svelte-1hqpjto">Compact</button> <!></div> <!></div>');function OC(e,t){he(t,!0);const n=R(()=>ie.selectedClassId!==null),r=R(()=>ie.selectedEdgeId!==null),i=R(()=>ie.revealStack.length>0);let a=J(!1),o=J(null);async function l(){_(a,!0),_(o,null);try{const v=await fetch(`/api/xmi/${t.xmi.id}/source`);if(!v.ok)throw new Error(`fetch source: ${v.status}`);const f=await v.blob();await Ie.setReference(t.xmi.project_id,f),_(o,{kind:"ok",msg:"Saved as reference"},!0)}catch(v){_(o,{kind:"error",msg:v.message},!0)}finally{_(a,!1),setTimeout(()=>_(o,null),4e3)}}var c=tt(),u=le(c);{var d=v=>{var f=PC(),h=b(f);{var g=k=>{var A=EC(),z=b(A);let V;var B=b(z);Q(()=>{V=we(z,1,"toggle svelte-1hqpjto",null,V,{on:ie.lodEnabled}),ce(z,"aria-pressed",ie.lodEnabled),W(B,`LOD ${ie.lodEnabled?"on":"off"}`)}),ne("click",z,function(...Y){Lo==null||Lo.apply(this,Y)}),O(k,A)};te(h,k=>{t.kind==="class"&&k(g)})}var p=w(h,2),m=b(p),y=w(m,2),E=w(p,2),N=b(E),I=w(N,2),C=w(I,2),L=w(C,2),q=w(E,2);{var T=k=>{var A=SC(),z=b(A);Q(()=>z.disabled=!s(r)),ne("click",z,()=>$v(ie.selectedEdgeId)),O(k,A)};te(q,k=>{t.kind==="class"&&k(T)})}var D=w(q,2),F=b(D),S=w(F,2);{var P=k=>{var A=CC();ne("click",A,()=>Oc(null)),O(k,A)};te(S,k=>{t.kind==="class"&&k(P)})}var H=w(D,2);{var x=k=>{var A=IC(),z=b(A),V=b(z),B=w(z,2);{var Y=K=>{var G=NC(),$=b(G);Q(()=>{we(G,1,`ref-status ${s(o).kind??""}`,"svelte-1hqpjto"),W($,s(o).msg)}),O(K,G)};te(B,K=>{s(o)&&K(Y)})}Q(()=>{z.disabled=s(a),W(V,s(a)?"Saving…":"Set as reference")}),ne("click",z,l),O(k,A)};te(H,k=>{t.kind==="class"&&k(x)})}Q(()=>{N.disabled=!s(n),I.disabled=!s(n),C.disabled=!s(n),L.disabled=!s(i)}),ne("click",m,function(...k){Ln==null||Ln.apply(this,k)}),ne("click",y,function(...k){er==null||er.apply(this,k)}),ne("click",N,()=>Nm(ie.selectedClassId)),ne("click",I,()=>Gc("up",ie.currentEdges)),ne("click",C,()=>Gc("down",ie.currentEdges)),ne("click",L,function(...k){Do==null||Do.apply(this,k)}),ne("click",F,function(...k){gi==null||gi.apply(this,k)}),O(v,f)};te(u,v=>{(t.kind==="class"||t.kind==="package")&&v(d)})}O(e,c),ge()}Qe(["click"]);var MC=j('<button title="Load .cdec/reference.xmi as a baseline and show live diff styling while editing" class="svelte-3vyg67">Compare vs reference</button>'),TC=j(`<button class="primary svelte-3vyg67"> </button> <button title="Save the edited diagram as this project's reference architecture (.cdec/reference.xmi)" class="svelte-3vyg67">Set as reference</button> <!>`,1),AC=j('<span class="muted svelte-3vyg67">…</span>'),zC=j('<span class="error svelte-3vyg67"> </span>'),DC=j('<main class="canvas flow editor-fullwidth svelte-3vyg67"><!></main>'),LC=j("<button>Class</button>"),RC=j("<button>Package</button>"),jC=j("<button> </button>"),qC=j("<button> </button>"),VC=j("<!> <!> <!> <!>",1),HC=j('<p class="muted error svelte-3vyg67"> </p>'),FC=j('<p class="muted svelte-3vyg67">Loading…</p>'),BC=j("<!> <!>",1),KC=j('<aside class="sidebar changes svelte-3vyg67"><!></aside>'),YC=j('<main class="canvas flow svelte-3vyg67"><!></main> <!>',1),XC=j('<main class="canvas flow svelte-3vyg67"><!></main>'),WC=j('<aside class="sidebar changes svelte-3vyg67"><!></aside>'),GC=j('<main class="canvas flow svelte-3vyg67"><!></main> <!>',1),ZC=j('<aside class="sidebar changes svelte-3vyg67"><!></aside>'),UC=j('<main class="canvas flow svelte-3vyg67"><!></main> <!>',1),QC=j('<main class="canvas flow svelte-3vyg67"></main>'),JC=j('<aside class="sidebar classes svelte-3vyg67"><nav class="diagram-tabs svelte-3vyg67"><!></nav> <!></aside> <!>',1),$C=j('<div class="viewer svelte-3vyg67"><!> <!> <!> <header class="editor-bar svelte-3vyg67"><div class="mode svelte-3vyg67"><span class="label svelte-3vyg67">Mode:</span> <button>View</button> <button>Edit this diagram</button></div> <!> <div class="editor-actions svelte-3vyg67"><!> <!> <!></div></header> <div><!></div></div>');function nh(e,t){he(t,!0);let n=J(!1),r=J("");async function i(){_(r,""),_(n,!0);try{const X=await fetch(`/api/xmi/${t.xmi.id}/source`);if(!X.ok)throw new Error(`fetch source: ${X.status}`);const U=await X.blob(),ae=await Ie.editFromXmi(U,`${t.xmi.id}.xmi`);uf(ae,`${t.xmi.id}.xmi`),As("edit"),ie.nodePositions=new Map}catch(X){_(r,X.message,!0)}finally{_(n,!1)}}async function a(){_(r,""),_(n,!0);try{const X=await Ie.editToXmi(pe.project,pe.fileName),U=URL.createObjectURL(X),ae=document.createElement("a");ae.href=U,ae.download=pe.fileName||"diagram.xmi",document.body.appendChild(ae),ae.click(),ae.remove(),URL.revokeObjectURL(U),pe.dirty=!1}catch(X){_(r,X.message,!0)}finally{_(n,!1)}}function o(){As("view"),Nl(null),_(r,"")}async function l(){_(r,""),_(n,!0);try{Nl(await Ie.referenceModel(t.xmi.project_id))}catch(X){_(r,X.message,!0)}finally{_(n,!1)}}async function c(){_(r,""),_(n,!0);try{const X=await Ie.editToXmi(pe.project,pe.fileName),U=await Ie.setReference(t.xmi.project_id,X);_(r,`Saved as reference: ${U.path}`)}catch(X){_(r,X.message,!0)}finally{_(n,!1)}}let u=J(null),d=J(me([])),v=J(me([])),f=J(me([])),h=J(null),g=J("");Ae(()=>{_(g,""),_(u,null),_(d,[],!0),_(v,[],!0),_(f,[],!0),_(h,null),st(null),Ie.diagrams(t.xmi.id).then(X=>{_(u,X,!0),X.classes?_(h,{diagram:"class"},!0):X.packages?_(h,{diagram:"package"},!0):X.activities[0]?_(h,{diagram:"activity",name:X.activities[0]},!0):X.sequences[0]&&_(h,{diagram:"sequence",name:X.sequences[0]},!0)}).catch(X=>_(g,X.message,!0)),Ie.changes(t.xmi.id).then(X=>_(d,X,!0)).catch(()=>{}),Ie.activityChanges(t.xmi.id).then(X=>_(v,X,!0)).catch(()=>{}),Ie.sequenceChanges(t.xmi.id).then(X=>_(f,X,!0)).catch(()=>{})});function p(X,U){_(h,U?{diagram:X,name:U}:{diagram:X},!0),st(null),ie.visibleClassIds=null,ie.nodePositions=new Map,ie.currentEdges=[],ie.revealStack=[]}const m=R(()=>{var X,U;return((X=s(h))==null?void 0:X.diagram)==="class"?"class":((U=s(h))==null?void 0:U.diagram)==="package"?"package":"other"});var y=$C(),E=b(y);vC(E,{get projectId(){return t.xmi.project_id}});var N=w(E,2);yC(N,{get xmi(){return t.xmi}});var I=w(N,2);kC(I,{});var C=w(I,2),L=b(C),q=w(b(L),2);let T;var D=w(q,2);let F;var S=w(L,2);{var P=X=>{OC(X,{get kind(){return s(m)},get xmi(){return t.xmi}})};te(S,X=>{pe.mode!=="edit"&&X(P)})}var H=w(S,2),x=b(H);{var k=X=>{var U=TC(),ae=le(U),se=b(ae),ue=w(ae,2),ve=w(ue,2);{var de=Ee=>{var _e=MC();Q(()=>_e.disabled=s(n)),ne("click",_e,l),O(Ee,_e)};te(ve,Ee=>{pe.baseline||Ee(de)})}Q(()=>{ae.disabled=s(n),W(se,`Save .xmi${pe.dirty?" *":""}`),ue.disabled=s(n)}),ne("click",ae,a),ne("click",ue,c),O(X,U)};te(x,X=>{pe.mode==="edit"&&X(k)})}var A=w(x,2);{var z=X=>{var U=AC();O(X,U)};te(A,X=>{s(n)&&X(z)})}var V=w(A,2);{var B=X=>{var U=zC(),ae=b(U);Q(()=>W(ae,s(r))),O(X,U)};te(V,X=>{s(r)&&X(B)})}var Y=w(C,2);let K;var G=b(Y);{var $=X=>{var U=DC(),ae=b(U);th(ae,{}),O(X,U)},ee=X=>{var U=JC(),ae=le(U),se=b(ae),ue=b(se);{var ve=xe=>{var Se=VC(),ze=le(Se);{var $e=Je=>{var Fe=LC();let ye;Q(()=>{var Re;return ye=we(Fe,1,"svelte-3vyg67",null,ye,{active:((Re=s(h))==null?void 0:Re.diagram)==="class"})}),ne("click",Fe,()=>p("class")),O(Je,Fe)};te(ze,Je=>{s(u).classes&&Je($e)})}var et=w(ze,2);{var ht=Je=>{var Fe=RC();let ye;Q(()=>{var Re;return ye=we(Fe,1,"svelte-3vyg67",null,ye,{active:((Re=s(h))==null?void 0:Re.diagram)==="package"})}),ne("click",Fe,()=>p("package")),O(Je,Fe)};te(et,Je=>{s(u).packages&&Je(ht)})}var Ge=w(et,2);Pe(Ge,17,()=>s(u).activities,Vt,(Je,Fe)=>{var ye=jC();let Re;var at=b(ye);Q(()=>{var qe;ce(ye,"title",`Activity: ${s(Fe)??""}`),Re=we(ye,1,"svelte-3vyg67",null,Re,{active:((qe=s(h))==null?void 0:qe.diagram)==="activity"&&s(h).name===s(Fe)}),W(at,s(Fe))}),ne("click",ye,()=>p("activity",s(Fe))),O(Je,ye)});var ot=w(Ge,2);Pe(ot,17,()=>s(u).sequences,Vt,(Je,Fe)=>{var ye=qC();let Re;var at=b(ye);Q(()=>{var qe;ce(ye,"title",`Sequence: ${s(Fe)??""}`),Re=we(ye,1,"svelte-3vyg67",null,Re,{active:((qe=s(h))==null?void 0:qe.diagram)==="sequence"&&s(h).name===s(Fe)}),W(at,s(Fe))}),ne("click",ye,()=>p("sequence",s(Fe))),O(Je,ye)}),O(xe,Se)};te(ue,xe=>{s(u)&&xe(ve)})}var de=w(se,2);{var Ee=xe=>{var Se=HC(),ze=b(Se);Q(()=>W(ze,s(g))),O(xe,Se)},_e=xe=>{var Se=FC();O(xe,Se)},De=xe=>{var Se=BC(),ze=le(Se);YE(ze,{get xmi(){return t.xmi}});var $e=w(ze,2);ME($e,{get xmi(){return t.xmi}}),O(xe,Se)},Me=xe=>{nS(xe,{get xmi(){return t.xmi}})},We=xe=>{cS(xe,{get xmi(){return t.xmi},get name(){return s(h).name}})},He=xe=>{bS(xe,{get xmi(){return t.xmi},get name(){return s(h).name}})};te(de,xe=>{var Se,ze,$e,et;s(g)?xe(Ee):s(u)?((Se=s(h))==null?void 0:Se.diagram)==="class"?xe(De,2):((ze=s(h))==null?void 0:ze.diagram)==="package"?xe(Me,3):(($e=s(h))==null?void 0:$e.diagram)==="activity"&&s(h).name?xe(We,4):((et=s(h))==null?void 0:et.diagram)==="sequence"&&s(h).name&&xe(He,5):xe(_e,1)})}var ke=w(ae,2);{var je=xe=>{var Se=YC(),ze=le(Se),$e=b(ze);dk($e,{get xmi(){return t.xmi}});var et=w(ze,2);{var ht=Ge=>{var ot=KC(),Je=b(ot);ES(Je,{get changes(){return s(d)}}),O(Ge,ot)};te(et,Ge=>{s(d).length>0&&Ge(ht)})}O(xe,Se)},rt=xe=>{var Se=XC(),ze=b(Se);yk(ze,{get xmi(){return t.xmi}}),O(xe,Se)},Le=xe=>{var Se=GC(),ze=le(Se),$e=b(ze);Tk($e,{get xmi(){return t.xmi},get name(){return s(h).name}});var et=w(ze,2);{var ht=Ge=>{var ot=WC(),Je=b(ot);PS(Je,{get changes(){return s(v)},get activityName(){return s(h).name},onpick:Fe=>p("activity",Fe)}),O(Ge,ot)};te(et,Ge=>{s(v).length>0&&Ge(ht)})}O(xe,Se)},it=xe=>{var Se=UC(),ze=le(Se),$e=b(ze);Gk($e,{get xmi(){return t.xmi},get name(){return s(h).name}});var et=w(ze,2);{var ht=Ge=>{var ot=ZC(),Je=b(ot);zS(Je,{get changes(){return s(f)},get sequenceName(){return s(h).name},onpick:Fe=>p("sequence",Fe)}),O(Ge,ot)};te(et,Ge=>{s(f).length>0&&Ge(ht)})}O(xe,Se)},ct=xe=>{var Se=QC();O(xe,Se)};te(ke,xe=>{var Se,ze,$e,et;((Se=s(h))==null?void 0:Se.diagram)==="class"?xe(je):((ze=s(h))==null?void 0:ze.diagram)==="package"?xe(rt,1):(($e=s(h))==null?void 0:$e.diagram)==="activity"&&s(h).name?xe(Le,2):((et=s(h))==null?void 0:et.diagram)==="sequence"&&s(h).name?xe(it,3):xe(ct,-1)})}O(X,U)};te(G,X=>{pe.mode==="edit"?X($):X(ee,-1)})}Q(()=>{var X,U,ae;T=we(q,1,"svelte-3vyg67",null,T,{active:pe.mode==="view"}),D.disabled=pe.mode==="edit"||s(n),F=we(D,1,"svelte-3vyg67",null,F,{active:pe.mode==="edit"}),K=we(Y,1,"layout svelte-3vyg67",null,K,{"has-changes":pe.mode!=="edit"&&(((X=s(h))==null?void 0:X.diagram)==="class"&&s(d).length>0||((U=s(h))==null?void 0:U.diagram)==="activity"&&s(v).length>0||((ae=s(h))==null?void 0:ae.diagram)==="sequence"&&s(f).length>0)})}),ne("click",q,o),ne("click",D,i),O(e,y),ge()}Qe(["click"]);var e3=j("<option> </option>"),t3=j("<option> </option>"),n3=j('<p class="error svelte-1nzl7rn"> </p>'),r3=j('<div class="viewer svelte-1nzl7rn"><!></div>'),i3=j('<div class="diff svelte-1nzl7rn"><div class="controls svelte-1nzl7rn"><label class="svelte-1nzl7rn">Old ref <select class="svelte-1nzl7rn"></select></label> <label class="svelte-1nzl7rn">New ref <select class="svelte-1nzl7rn"></select></label> <label class="svelte-1nzl7rn">Sub-path <input type="text" placeholder="optional" class="svelte-1nzl7rn"/></label> <button class="svelte-1nzl7rn"> </button></div> <!> <!></div>');function a3(e,t){he(t,!0);let n=J(me([])),r=J(""),i=J(""),a=J(""),o=J(null),l=J(""),c=J(!1);Ae(()=>{Ie.refs(t.project.id).then(T=>{_(n,T,!0),T.length>=2?(_(r,T[1],!0),_(i,T[0],!0)):T.length===1&&(_(r,T[0],!0),_(i,T[0],!0))}).catch(T=>_(l,T.message,!0))});async function u(){_(c,!0),_(l,"");try{_(o,await Ie.diff(t.project.id,s(r),s(i),s(a)),!0)}catch(T){_(l,T.message,!0)}finally{_(c,!1)}}var d=i3(),v=b(d),f=b(v),h=w(b(f));Pe(h,21,()=>s(n),Vt,(T,D)=>{var F=e3(),S=b(F),P={};Q(()=>{W(S,s(D)),P!==(P=s(D))&&(F.value=(F.__value=s(D))??"")}),O(T,F)});var g=w(f,2),p=w(b(g));Pe(p,21,()=>s(n),Vt,(T,D)=>{var F=t3(),S=b(F),P={};Q(()=>{W(S,s(D)),P!==(P=s(D))&&(F.value=(F.__value=s(D))??"")}),O(T,F)});var m=w(g,2),y=w(b(m)),E=w(m,2),N=b(E),I=w(v,2);{var C=T=>{var D=n3(),F=b(D);Q(()=>W(F,s(l))),O(T,D)};te(I,T=>{s(l)&&T(C)})}var L=w(I,2);{var q=T=>{var D=r3(),F=b(D);nh(F,{get xmi(){return s(o)}}),O(T,D)};te(L,T=>{s(o)&&T(q)})}Q(()=>{E.disabled=s(c)||!s(r)||!s(i),W(N,s(c)?"Diffing…":"Diff")}),El(h,()=>s(r),T=>_(r,T)),El(p,()=>s(i),T=>_(i,T)),Ye(y,()=>s(a),T=>_(a,T)),ne("click",E,u),O(e,d),ge()}Qe(["click"]);var s3=j('<span class="muted svelte-caoop0">…</span>'),o3=j('<span class="error svelte-caoop0"> </span>'),l3=j('<div class="page svelte-caoop0"><header class="bar svelte-caoop0"><div class="left svelte-caoop0"><strong>UML editor</strong> <span class="muted svelte-caoop0"> </span></div> <div class="right svelte-caoop0"><button class="svelte-caoop0">New diagram</button> <button class="svelte-caoop0">Open…</button> <input type="file" accept=".xmi,.json,application/xml,text/xml,application/json" hidden=""/> <button title="Load a baseline model (.xmi or .json) to diff the draft against while editing" class="svelte-caoop0">Baseline…</button> <input type="file" accept=".xmi,.json,application/xml,text/xml,application/json" hidden=""/> <button class="primary svelte-caoop0">Save .xmi</button> <button class="svelte-caoop0">Save .json</button> <!> <!> <button class="ghost svelte-caoop0" title="Back to home">Home</button></div></header> <div class="canvas-wrap svelte-caoop0"><!></div></div>');function c3(e,t){he(t,!0);let n=J(!1),r=J(""),i=null,a=null;function o(z="python"){cf(z),ie.nodePositions=new Map,_(r,"")}async function l(z){if(z.name.toLowerCase().endsWith(".json")){const V=JSON.parse(await z.text());if(!Array.isArray(V.packages))throw new Error(`${z.name}: not a model JSON (missing packages[])`);return V.activities??(V.activities=[]),V.sequences??(V.sequences=[]),V.associations??(V.associations=[]),V.source_language??(V.source_language="python"),V.root_path??(V.root_path=""),V}return Ie.editFromXmi(z,z.name)}async function c(z){var Y;const V=z.currentTarget,B=(Y=V.files)==null?void 0:Y[0];if(V.value="",!!B){_(r,""),_(n,!0);try{const K=await l(B);uf(K,B.name),ie.nodePositions=new Map}catch(K){_(r,K.message,!0)}finally{_(n,!1)}}}async function u(z){var Y;const V=z.currentTarget,B=(Y=V.files)==null?void 0:Y[0];if(V.value="",!!B){_(r,""),_(n,!0);try{Nl(await l(B))}catch(K){_(r,K.message,!0)}finally{_(n,!1)}}}function d(z,V){const B=URL.createObjectURL(z),Y=document.createElement("a");Y.href=B,Y.download=V,document.body.appendChild(Y),Y.click(),Y.remove(),URL.revokeObjectURL(B)}async function v(){_(r,""),_(n,!0);try{const z=pe.fileName.replace(/\.json$/i,".xmi"),V=await Ie.editToXmi(pe.project,z);d(V,z||"diagram.xmi"),pe.dirty=!1}catch(z){_(r,z.message,!0)}finally{_(n,!1)}}function f(){_(r,"");const z=pe.fileName.replace(/\.xmi$/i,".json")||"diagram.json",V=JSON.stringify(Oi(pe.project),null,2);d(new Blob([V],{type:"application/json"}),z),pe.dirty=!1}var h=l3(),g=b(h),p=b(g),m=w(b(p),2),y=b(m),E=w(p,2),N=b(E),I=w(N,2),C=w(I,2);ir(C,z=>i=z,()=>i);var L=w(C,2),q=w(L,2);ir(q,z=>a=z,()=>a);var T=w(q,2),D=w(T,2),F=w(D,2);{var S=z=>{var V=s3();O(z,V)};te(F,z=>{s(n)&&z(S)})}var P=w(F,2);{var H=z=>{var V=o3(),B=b(V);Q(()=>W(B,s(r))),O(z,V)};te(P,z=>{s(r)&&z(H)})}var x=w(P,2),k=w(g,2),A=b(k);th(A,{}),Q(()=>{W(y,`${pe.fileName??""}${pe.dirty?" *":""}`),N.disabled=s(n),I.disabled=s(n),L.disabled=s(n),T.disabled=s(n),D.disabled=s(n)}),ne("click",N,()=>o()),ne("click",I,()=>i==null?void 0:i.click()),ne("change",C,c),ne("click",L,()=>a==null?void 0:a.click()),ne("change",q,u),ne("click",T,v),ne("click",D,f),ne("click",x,function(...z){var V;(V=t.onexit)==null||V.apply(this,z)}),O(e,h),ge()}Qe(["click","change"]);var u3=j('<button type="button" class="svelte-1bnbcfv">Cancel</button> <button type="button" class="primary svelte-1bnbcfv">Save</button>',1),d3=j("<option></option>"),f3=j('<label class="svelte-1bnbcfv"><input type="radio" name="vis" class="svelte-1bnbcfv"/> </label>'),v3=j('<div class="grid svelte-1bnbcfv"><label class="svelte-1bnbcfv">Name <input placeholder="field" class="svelte-1bnbcfv"/></label> <label class="svelte-1bnbcfv">Type <input placeholder="str | int | MyClass" list="attr-types" class="svelte-1bnbcfv"/> <datalist id="attr-types"></datalist></label> <label class="span2 svelte-1bnbcfv">Default value <input placeholder="(optional)" class="svelte-1bnbcfv"/></label></div> <fieldset class="svelte-1bnbcfv"><legend class="svelte-1bnbcfv">Visibility</legend> <div class="opts svelte-1bnbcfv"></div></fieldset> <fieldset class="svelte-1bnbcfv"><legend class="svelte-1bnbcfv">Modifiers</legend> <label class="check svelte-1bnbcfv"><input type="checkbox" class="svelte-1bnbcfv"/> static</label> <label class="check svelte-1bnbcfv"><input type="checkbox" class="svelte-1bnbcfv"/> readonly</label></fieldset> <label class="description-label svelte-1bnbcfv">Description <textarea rows="3" placeholder="Optional natural-language description" class="svelte-1bnbcfv"></textarea></label>',1);function h3(e,t){he(t,!0);const n=[];let r=J(me(t.initial.name)),i=J(me(t.initial.type)),a=J(me(t.initial.visibility)),o=J(me(t.initial.is_static)),l=J(me(t.initial.is_readonly)),c=J(me(t.initial.default??"")),u=J(me(t.initial.description??""));Ae(()=>{t.open&&(_(r,t.initial.name,!0),_(i,t.initial.type,!0),_(a,t.initial.visibility,!0),_(o,t.initial.is_static,!0),_(l,t.initial.is_readonly,!0),_(c,t.initial.default??"",!0),_(u,t.initial.description??"",!0))});function d(){t.onsave({name:s(r).trim()||"field",type:s(i).trim(),visibility:s(a),is_static:s(o),is_readonly:s(l),default:s(c).trim()?s(c):null,description:s(u).trim()?s(u):null,status:t.initial.status})}Or(e,{get open(){return t.open},title:"Attribute",width:"460px",get onclose(){return t.onclose},footer:f=>{var h=u3(),g=le(h),p=w(g,2);ne("click",g,function(...m){var y;(y=t.onclose)==null||y.apply(this,m)}),ne("click",p,d),O(f,h)},children:(f,h)=>{var g=v3(),p=le(g),m=b(p),y=w(b(m)),E=w(m,2),N=w(b(E)),I=w(N,2);Pe(I,21,()=>t.classQnames,Vt,(A,z)=>{var V=d3(),B={};Q(()=>{B!==(B=s(z))&&(V.value=(V.__value=s(z))??"")}),O(A,V)});var C=w(E,2),L=w(b(C)),q=w(p,2),T=w(b(q),2);Pe(T,20,()=>["public","protected","private","package"],Vt,(A,z)=>{var V=f3(),B=b(V),Y,K=w(B);Q(()=>{Y!==(Y=z)&&(B.value=(B.__value=z)??""),W(K,` ${z??""}`)}),sc(n,[],B,()=>s(a),G=>_(a,G)),O(A,V)});var D=w(q,2),F=w(b(D),2),S=b(F),P=w(F,2),H=b(P),x=w(D,2),k=w(b(x));Ye(y,()=>s(r),A=>_(r,A)),Ye(N,()=>s(i),A=>_(i,A)),Ye(L,()=>s(c),A=>_(c,A)),Ts(S,()=>s(o),A=>_(o,A)),Ts(H,()=>s(l),A=>_(l,A)),Ye(k,()=>s(u),A=>_(u,A)),O(f,g)},$$slots:{footer:!0,default:!0}}),ge()}Qe(["click"]);var g3=j('<button type="button" class="svelte-bsz97c">Cancel</button> <button type="button" class="primary svelte-bsz97c">Save</button>',1),m3=j("<option></option>"),p3=j('<label class="svelte-bsz97c"><input type="radio" name="op-vis" class="svelte-bsz97c"/> </label>'),_3=j('<li class="svelte-bsz97c"><input placeholder="name" class="pname svelte-bsz97c"/> <span class="sep svelte-bsz97c">:</span> <input placeholder="type" list="op-types" class="ptype svelte-bsz97c"/> <input placeholder="default (optional)" class="pdef svelte-bsz97c"/> <button type="button" class="danger svelte-bsz97c">×</button></li>'),b3=j('<ul class="params svelte-bsz97c"></ul>'),y3=j('<div class="grid svelte-bsz97c"><label class="svelte-bsz97c">Name <input placeholder="method" class="svelte-bsz97c"/></label> <label class="svelte-bsz97c">Return type <input placeholder="(optional)" list="op-types" class="svelte-bsz97c"/></label></div> <datalist id="op-types"></datalist> <fieldset class="svelte-bsz97c"><legend class="svelte-bsz97c">Visibility</legend> <div class="opts svelte-bsz97c"></div></fieldset> <fieldset class="svelte-bsz97c"><legend class="svelte-bsz97c">Modifiers</legend> <label class="check svelte-bsz97c"><input type="checkbox" class="svelte-bsz97c"/> static</label> <label class="check svelte-bsz97c"><input type="checkbox" class="svelte-bsz97c"/> abstract</label></fieldset> <fieldset class="svelte-bsz97c"><legend class="svelte-bsz97c">Parameters</legend> <!> <button type="button" class="svelte-bsz97c">+ Add parameter</button></fieldset> <label class="description-label svelte-bsz97c">Description <textarea rows="3" placeholder="Optional natural-language description" class="svelte-bsz97c"></textarea></label>',1);function w3(e,t){he(t,!0);const n=[];let r=J(me(t.initial.name)),i=J(me(t.initial.return_type)),a=J(me(t.initial.visibility)),o=J(me(t.initial.is_static)),l=J(me(t.initial.is_abstract)),c=J(me(t.initial.description??"")),u=J(me(t.initial.parameters.map(h=>({...h}))));Ae(()=>{t.open&&(_(r,t.initial.name,!0),_(i,t.initial.return_type,!0),_(a,t.initial.visibility,!0),_(o,t.initial.is_static,!0),_(l,t.initial.is_abstract,!0),_(c,t.initial.description??"",!0),_(u,t.initial.parameters.map(h=>({...h})),!0))});function d(){_(u,[...s(u),{name:"arg",type:"",default:null}],!0)}function v(h){_(u,s(u).filter((g,p)=>p!==h),!0)}function f(){t.onsave({name:s(r).trim()||"method",parameters:s(u).map(h=>({name:h.name.trim()||"arg",type:h.type.trim(),default:h.default&&h.default.trim()?h.default:null})),return_type:s(i).trim(),visibility:s(a),is_static:s(o),is_abstract:s(l),description:s(c).trim()?s(c):null,status:t.initial.status})}Or(e,{get open(){return t.open},title:"Operation",width:"560px",get onclose(){return t.onclose},footer:g=>{var p=g3(),m=le(p),y=w(m,2);ne("click",m,function(...E){var N;(N=t.onclose)==null||N.apply(this,E)}),ne("click",y,f),O(g,p)},children:(g,p)=>{var m=y3(),y=le(m),E=b(y),N=w(b(E)),I=w(E,2),C=w(b(I)),L=w(y,2);Pe(L,21,()=>t.classQnames,Vt,(Y,K)=>{var G=m3(),$={};Q(()=>{$!==($=s(K))&&(G.value=(G.__value=s(K))??"")}),O(Y,G)});var q=w(L,2),T=w(b(q),2);Pe(T,20,()=>["public","protected","private","package"],Vt,(Y,K)=>{var G=p3(),$=b(G),ee,X=w($);Q(()=>{ee!==(ee=K)&&($.value=($.__value=K)??""),W(X,` ${K??""}`)}),sc(n,[],$,()=>s(a),U=>_(a,U)),O(Y,G)});var D=w(q,2),F=w(b(D),2),S=b(F),P=w(F,2),H=b(P),x=w(D,2),k=w(b(x),2);{var A=Y=>{var K=b3();Pe(K,21,()=>s(u),Vt,(G,$,ee)=>{var X=_3(),U=b(X),ae=w(U,4),se=w(ae,2),ue=w(se,2);Q(()=>Qg(se,s($).default??"")),Ye(U,()=>s($).name,ve=>s($).name=ve),Ye(ae,()=>s($).type,ve=>s($).type=ve),ne("input",se,ve=>s($).default=ve.currentTarget.value||null),ne("click",ue,()=>v(ee)),O(G,X)}),O(Y,K)};te(k,Y=>{s(u).length&&Y(A)})}var z=w(k,2),V=w(x,2),B=w(b(V));Ye(N,()=>s(r),Y=>_(r,Y)),Ye(C,()=>s(i),Y=>_(i,Y)),Ts(S,()=>s(o),Y=>_(o,Y)),Ts(H,()=>s(l),Y=>_(l,Y)),ne("click",z,d),Ye(B,()=>s(c),Y=>_(c,Y)),O(g,m)},$$slots:{footer:!0,default:!0}}),ge()}Qe(["click","input"]);var x3=j('<button type="button" class="danger svelte-14r2m53">Delete class</button> <span style="flex: 1"></span>',1),k3=j('<!> <button type="button" class="svelte-14r2m53">Cancel</button> <button type="button" class="primary svelte-14r2m53">Save</button>',1),E3=j('<label class="kind-opt svelte-14r2m53"><input type="radio" name="kind" class="svelte-14r2m53"/> </label>'),S3=j('<li class="svelte-14r2m53"><span> </span> <button type="button" aria-label="Remove" class="svelte-14r2m53">×</button></li>'),C3=j('<ul class="chips svelte-14r2m53"></ul>'),N3=j("<option></option>"),I3=j('<span class="mtype svelte-14r2m53"> </span>'),P3=j('<li class="svelte-14r2m53"><code class="member-row svelte-14r2m53"><span class="vis svelte-14r2m53"> </span> <span class="mname"> </span><!></code> <span class="row-actions svelte-14r2m53"><button type="button" class="svelte-14r2m53">Edit</button> <button type="button" class="danger svelte-14r2m53">Remove</button></span></li>'),O3=j('<ul class="rows svelte-14r2m53"></ul>'),M3=j('<p class="muted svelte-14r2m53">No attributes.</p>'),T3=j('<span class="mtype svelte-14r2m53"> </span>'),A3=j('<li class="svelte-14r2m53"><code class="member-row svelte-14r2m53"><span class="vis svelte-14r2m53"> </span> <span class="mname"> </span>(<span class="params"> </span>)<!></code> <span class="row-actions svelte-14r2m53"><button type="button" class="svelte-14r2m53">Edit</button> <button type="button" class="danger svelte-14r2m53">Remove</button></span></li>'),z3=j('<ul class="rows svelte-14r2m53"></ul>'),D3=j('<p class="muted svelte-14r2m53">No operations.</p>'),L3=j('<div class="grid svelte-14r2m53"><label class="svelte-14r2m53">Name <input placeholder="MyClass" class="svelte-14r2m53"/></label> <label class="svelte-14r2m53">Package <input placeholder="com.example (optional)" list="pkg-list" class="svelte-14r2m53"/></label> <label class="span2 svelte-14r2m53">Qualified name <input class="svelte-14r2m53"/></label></div> <label class="description-label svelte-14r2m53">Description <textarea rows="3" placeholder="Optional natural-language description" class="svelte-14r2m53"></textarea></label> <fieldset class="svelte-14r2m53"><legend class="svelte-14r2m53">Kind</legend> <div class="kind-row svelte-14r2m53"></div></fieldset> <fieldset class="svelte-14r2m53"><legend class="svelte-14r2m53">Bases / implements</legend> <!> <div class="add-base svelte-14r2m53"><input placeholder="Qualified name of base class/interface" list="base-list" class="svelte-14r2m53"/> <button type="button" class="svelte-14r2m53">Add base</button> <datalist id="base-list"></datalist></div></fieldset> <fieldset class="svelte-14r2m53"><legend class="svelte-14r2m53">Attributes</legend> <!> <button type="button" class="svelte-14r2m53">+ Add attribute</button></fieldset> <fieldset class="svelte-14r2m53"><legend class="svelte-14r2m53">Operations</legend> <!> <button type="button" class="svelte-14r2m53">+ Add operation</button></fieldset>',1),R3=j("<!> <!> <!>",1);function j3(e,t){he(t,!0);const n=[];let r=J(me(t.initial.name)),i=J(me(t.initial.qualified_name)),a=J(me(p(t.initial.qualified_name))),o=J(me(t.initial.kind)),l=J(me([...t.initial.bases])),c=J(me(t.initial.description??"")),u=J(me(t.initial.attributes.map(m))),d=J(me(t.initial.operations.map(y))),v=J(""),f=J(null),h=J(null),g=J(!1);Ae(()=>{t.open&&(_(r,t.initial.name,!0),_(i,t.initial.qualified_name,!0),_(a,p(t.initial.qualified_name),!0),_(o,t.initial.kind,!0),_(l,[...t.initial.bases],!0),_(c,t.initial.description??"",!0),_(u,t.initial.attributes.map(m),!0),_(d,t.initial.operations.map(y),!0),_(v,""),_(g,!1))}),Ae(()=>{s(g)||_(i,s(a)?`${s(a)}.${s(r)}`:s(r),!0)});function p(K){const G=K.lastIndexOf(".");return G>=0?K.slice(0,G):""}function m(K){return{...K}}function y(K){return{...K,parameters:K.parameters.map(G=>({...G}))}}const E=R(()=>Tm().filter(K=>K!==t.initial.qualified_name));function N(){const K=s(v).trim();K&&!s(l).includes(K)&&_(l,[...s(l),K],!0),_(v,"")}function I(K){_(l,s(l).filter(G=>G!==K),!0)}function C(){_(f,{index:-1,value:mf()},!0)}function L(K){_(f,{index:K,value:m(s(u)[K])},!0)}function q(K){s(f)&&(s(f).index<0?_(u,[...s(u),K],!0):_(u,s(u).map((G,$)=>$===s(f).index?K:G),!0),_(f,null))}function T(K){_(u,s(u).filter((G,$)=>$!==K),!0)}function D(){_(h,{index:-1,value:pf()},!0)}function F(K){_(h,{index:K,value:y(s(d)[K])},!0)}function S(K){s(h)&&(s(h).index<0?_(d,[...s(d),K],!0):_(d,s(d).map((G,$)=>$===s(h).index?K:G),!0),_(h,null))}function P(K){_(d,s(d).filter((G,$)=>$!==K),!0)}function H(){t.onsave({name:s(r).trim()||"Untitled",qualified_name:s(i).trim()||s(r).trim()||"Untitled",kind:s(o),attributes:s(u),operations:s(d),bases:s(l),location:t.initial.location,layout:t.initial.layout,description:s(c).trim()?s(c):null,status:t.initial.status})}function x(K){return K==="private"?"-":K==="protected"?"#":K==="package"?"~":"+"}var k=R3(),A=le(k);{const K=$=>{var ee=k3(),X=le(ee);{var U=ue=>{var ve=x3(),de=le(ve);ne("click",de,function(...Ee){var _e;(_e=t.ondelete)==null||_e.apply(this,Ee)}),O(ue,ve)};te(X,ue=>{t.isExisting&&t.ondelete&&ue(U)})}var ae=w(X,2),se=w(ae,2);ne("click",ae,function(...ue){var ve;(ve=t.onclose)==null||ve.apply(this,ue)}),ne("click",se,H),O($,ee)};let G=R(()=>t.isExisting?"Edit class":"New class");Or(A,{get open(){return t.open},get title(){return s(G)},width:"640px",get onclose(){return t.onclose},footer:K,children:($,ee)=>{var X=L3(),U=le(X),ae=b(U),se=w(b(ae)),ue=w(ae,2),ve=w(b(ue)),de=w(ue,2),Ee=w(b(de)),_e=w(U,2),De=w(b(_e)),Me=w(_e,2),We=w(b(Me),2);Pe(We,20,()=>["class","abstract","interface","struct","enum","record","static"],Vt,(ye,Re)=>{var at=E3(),qe=b(at),xt,Nt=w(qe);Q(()=>{xt!==(xt=Re)&&(qe.value=(qe.__value=Re)??""),W(Nt,` ${Re??""}`)}),sc(n,[],qe,()=>s(o),gt=>_(o,gt)),O(ye,at)});var He=w(Me,2),ke=w(b(He),2);{var je=ye=>{var Re=C3();Pe(Re,21,()=>s(l),Vt,(at,qe)=>{var xt=S3(),Nt=b(xt),gt=b(Nt),Lt=w(Nt,2);Q(()=>W(gt,s(qe))),ne("click",Lt,()=>I(s(qe))),O(at,xt)}),O(ye,Re)};te(ke,ye=>{s(l).length&&ye(je)})}var rt=w(ke,2),Le=b(rt),it=w(Le,2),ct=w(it,2);Pe(ct,21,()=>s(E),Vt,(ye,Re)=>{var at=N3(),qe={};Q(()=>{qe!==(qe=s(Re))&&(at.value=(at.__value=s(Re))??"")}),O(ye,at)});var xe=w(He,2),Se=w(b(xe),2);{var ze=ye=>{var Re=O3();Pe(Re,21,()=>s(u),Vt,(at,qe,xt)=>{var Nt=P3(),gt=b(Nt),Lt=b(gt),Mr=b(Lt),Z=w(Lt,2),kt=b(Z),Xt=w(Z);{var It=Jt=>{var cr=I3(),mt=b(cr);Q(()=>W(mt,`: ${s(qe).type??""}`)),O(Jt,cr)};te(Xt,Jt=>{s(qe).type&&Jt(It)})}var Tr=w(gt,2),Bn=b(Tr),lr=w(Bn,2);Q(Jt=>{W(Mr,Jt),W(kt,s(qe).name)},[()=>x(s(qe).visibility)]),ne("click",Bn,()=>L(xt)),ne("click",lr,()=>T(xt)),O(at,Nt)}),O(ye,Re)},$e=ye=>{var Re=M3();O(ye,Re)};te(Se,ye=>{s(u).length?ye(ze):ye($e,-1)})}var et=w(Se,2),ht=w(xe,2),Ge=w(b(ht),2);{var ot=ye=>{var Re=z3();Pe(Re,21,()=>s(d),Vt,(at,qe,xt)=>{var Nt=A3(),gt=b(Nt),Lt=b(gt),Mr=b(Lt),Z=w(Lt,2),kt=b(Z),Xt=w(Z,2),It=b(Xt),Tr=w(Xt,2);{var Bn=mt=>{var En=T3(),Ar=b(En);Q(()=>W(Ar,`: ${s(qe).return_type??""}`)),O(mt,En)};te(Tr,mt=>{s(qe).return_type&&mt(Bn)})}var lr=w(gt,2),Jt=b(lr),cr=w(Jt,2);Q((mt,En)=>{W(Mr,mt),W(kt,s(qe).name),W(It,En)},[()=>x(s(qe).visibility),()=>s(qe).parameters.map(mt=>`${mt.name}${mt.type?": "+mt.type:""}`).join(", ")]),ne("click",Jt,()=>F(xt)),ne("click",cr,()=>P(xt)),O(at,Nt)}),O(ye,Re)},Je=ye=>{var Re=D3();O(ye,Re)};te(Ge,ye=>{s(d).length?ye(ot):ye(Je,-1)})}var Fe=w(Ge,2);Ye(se,()=>s(r),ye=>_(r,ye)),Ye(ve,()=>s(a),ye=>_(a,ye)),ne("input",Ee,()=>_(g,!0)),Ye(Ee,()=>s(i),ye=>_(i,ye)),Ye(De,()=>s(c),ye=>_(c,ye)),ne("keydown",Le,ye=>ye.key==="Enter"&&(ye.preventDefault(),N())),Ye(Le,()=>s(v),ye=>_(v,ye)),ne("click",it,N),ne("click",et,C),ne("click",Fe,D),O($,X)},$$slots:{footer:!0,default:!0}})}var z=w(A,2);{var V=K=>{h3(K,{open:!0,get initial(){return s(f).value},get classQnames(){return s(E)},onsave:q,onclose:()=>_(f,null)})};te(z,K=>{s(f)&&K(V)})}var B=w(z,2);{var Y=K=>{w3(K,{open:!0,get initial(){return s(h).value},get classQnames(){return s(E)},onsave:S,onclose:()=>_(h,null)})};te(B,K=>{s(h)&&K(Y)})}O(e,k),ge()}Qe(["click","input","keydown"]);var q3=j('<button type="button" class="danger svelte-12n3i76">Delete association</button> <span style="flex: 1"></span>',1),V3=j('<!> <button type="button" class="svelte-12n3i76">Cancel</button> <button type="button" class="primary svelte-12n3i76">Save</button>',1),H3=j("<option></option>"),F3=j('<div class="grid svelte-12n3i76"><label class="svelte-12n3i76">Source <input list="assoc-classes" placeholder="qualified.name" class="svelte-12n3i76"/></label> <label class="svelte-12n3i76">Target <input list="assoc-classes" placeholder="qualified.name" class="svelte-12n3i76"/></label> <datalist id="assoc-classes"></datalist> <label class="span2 svelte-12n3i76">Name (optional) <input placeholder="owns / uses / ..." class="svelte-12n3i76"/></label> <label class="svelte-12n3i76">Source multiplicity <input placeholder="0..1 | 1 | *" class="svelte-12n3i76"/></label> <label class="svelte-12n3i76">Target multiplicity <input placeholder="0..1 | 1 | *" class="svelte-12n3i76"/></label> <label class="svelte-12n3i76">Source role <input placeholder="(optional)" class="svelte-12n3i76"/></label> <label class="svelte-12n3i76">Target role <input placeholder="(optional)" class="svelte-12n3i76"/></label></div>');function B3(e,t){he(t,!0);let n=J(me(t.initial.source)),r=J(me(t.initial.target)),i=J(me(t.initial.name??"")),a=J(me(t.initial.source_multiplicity??"")),o=J(me(t.initial.target_multiplicity??"")),l=J(me(t.initial.source_role??"")),c=J(me(t.initial.target_role??""));Ae(()=>{t.open&&(_(n,t.initial.source,!0),_(r,t.initial.target,!0),_(i,t.initial.name??"",!0),_(a,t.initial.source_multiplicity??"",!0),_(o,t.initial.target_multiplicity??"",!0),_(l,t.initial.source_role??"",!0),_(c,t.initial.target_role??"",!0))});function u(){t.onsave({source:s(n).trim(),target:s(r).trim(),name:s(i).trim()||null,source_multiplicity:s(a).trim()||null,target_multiplicity:s(o).trim()||null,source_role:s(l).trim()||null,target_role:s(c).trim()||null,status:t.initial.status})}{const d=f=>{var h=V3(),g=le(h);{var p=E=>{var N=q3(),I=le(N);ne("click",I,function(...C){var L;(L=t.ondelete)==null||L.apply(this,C)}),O(E,N)};te(g,E=>{t.isExisting&&t.ondelete&&E(p)})}var m=w(g,2),y=w(m,2);ne("click",m,function(...E){var N;(N=t.onclose)==null||N.apply(this,E)}),ne("click",y,u),O(f,h)};let v=R(()=>t.isExisting?"Edit association":"New association");Or(e,{get open(){return t.open},get title(){return s(v)},width:"560px",get onclose(){return t.onclose},footer:d,children:(f,h)=>{var g=F3(),p=b(g),m=w(b(p)),y=w(p,2),E=w(b(y)),N=w(y,2);Pe(N,21,()=>t.classQnames,Vt,(x,k)=>{var A=H3(),z={};Q(()=>{z!==(z=s(k))&&(A.value=(A.__value=s(k))??"")}),O(x,A)});var I=w(N,2),C=w(b(I)),L=w(I,2),q=w(b(L)),T=w(L,2),D=w(b(T)),F=w(T,2),S=w(b(F)),P=w(F,2),H=w(b(P));Ye(m,()=>s(n),x=>_(n,x)),Ye(E,()=>s(r),x=>_(r,x)),Ye(C,()=>s(i),x=>_(i,x)),Ye(q,()=>s(a),x=>_(a,x)),Ye(D,()=>s(o),x=>_(o,x)),Ye(S,()=>s(l),x=>_(l,x)),Ye(H,()=>s(c),x=>_(c,x)),O(f,g)},$$slots:{footer:!0,default:!0}})}ge()}Qe(["click"]);var K3=j('<button type="button">Cancel</button>'),Y3=j('<p class="muted svelte-14a2iwo">From <code class="svelte-14a2iwo"> </code> to <code class="svelte-14a2iwo"> </code>. Pick a relationship.</p> <div class="opts svelte-14a2iwo"><button type="button" class="svelte-14a2iwo"><strong>Inheritance</strong> <span class="hint svelte-14a2iwo"> </span></button> <button type="button" class="svelte-14a2iwo"><strong>Association</strong> <span class="hint svelte-14a2iwo"> </span></button></div>',1);function X3(e,t){he(t,!0),Or(e,{get open(){return t.open},title:"Connect classes",width:"440px",get onclose(){return t.onclose},footer:r=>{var i=K3();ne("click",i,function(...a){var o;(o=t.onclose)==null||o.apply(this,a)}),O(r,i)},children:(r,i)=>{var a=Y3(),o=le(a),l=w(b(o)),c=b(l),u=w(l,2),d=b(u),v=w(o,2),f=b(v),h=w(b(f),2),g=b(h),p=w(f,2),m=w(b(p),2),y=b(m);Q(()=>{W(c,t.sourceLabel),W(d,t.targetLabel),W(g,`${t.sourceLabel??""} extends/implements ${t.targetLabel??""}`),W(y,`${t.sourceLabel??""} relates to ${t.targetLabel??""}`)}),ne("click",f,()=>t.onpick("inheritance")),ne("click",p,()=>t.onpick("association")),O(r,a)},$$slots:{footer:!0,default:!0}}),ge()}Qe(["click"]);var W3=j("<!> <!> <!>",1);function G3(e,t){he(t,!0);const n=R(()=>Array.from(Fa(pe.project)).map(p=>p.qualified_name));function r(p){Te.classExisting&&Te.classOriginalQname?Dm(Te.classOriginalQname,p):zm(p),Vo()}function i(){!Te.classExisting||!Te.classOriginalQname||(hf(Te.classOriginalQname),Vo())}function a(p){Hm(Te.assocIndex,p),Ho()}function o(){Fm(Te.assocIndex),Ho()}function l(p){const m=Te.edgePickerSourceLabel,y=Te.edgePickerTargetLabel;if(!m||!y){ss();return}if(p==="inheritance"){const E=tr(m);E&&!E.bases.includes(y)&&jm(m,[...E.bases,y]),ss()}else{const E=qm(m,y),N=pe.project.associations.length;Vm(E),ss(),of(E,N,!0)}}var c=W3(),u=le(c);{var d=p=>{{let m=R(()=>Te.classExisting?i:void 0);j3(p,{open:!0,get initial(){return Te.classInitial},get isExisting(){return Te.classExisting},onsave:r,get ondelete(){return s(m)},get onclose(){return Vo}})}};te(u,p=>{Te.classOpen&&Te.classInitial&&p(d)})}var v=w(u,2);{var f=p=>{{let m=R(()=>Te.assocExisting?o:void 0);B3(p,{open:!0,get initial(){return Te.assocInitial},get classQnames(){return s(n)},get isExisting(){return Te.assocExisting},onsave:a,get ondelete(){return s(m)},get onclose(){return Ho}})}};te(v,p=>{Te.assocOpen&&Te.assocInitial&&p(f)})}var h=w(v,2);{var g=p=>{X3(p,{open:!0,get sourceLabel(){return Te.edgePickerSourceLabel},get targetLabel(){return Te.edgePickerTargetLabel},onpick:l,get onclose(){return ss}})};te(h,p=>{Te.edgePickerOpen&&p(g)})}O(e,c),ge()}var Z3=j("<button>Diff</button>"),U3=j('<button class="ghost svelte-1n46o8q" title="Re-parse current source">Re-parse</button>'),Q3=j('<a class="export svelte-1n46o8q" title="Download the XMI for the current view (equivalent to cdec parse --out)">Download XMI</a>'),J3=j('<span class="path svelte-1n46o8q"> <span class="lang svelte-1n46o8q"> </span></span> <nav class="svelte-1n46o8q"><button>Browse</button> <!></nav> <!> <!> <button class="reset svelte-1n46o8q">Home</button>',1),$3=j('<p class="autoload svelte-1n46o8q">Parsing <code class="svelte-1n46o8q"> </code> …</p>'),eN=j('<p class="error svelte-1n46o8q"> </p>'),tN=j('<div class="app svelte-1n46o8q"><header class="svelte-1n46o8q"><h1 class="svelte-1n46o8q">code-constraints</h1> <!></header> <div class="content svelte-1n46o8q"><!></div></div> <!>',1);function nN(e,t){he(t,!0);let n=J(null),r=J(null),i=J("browse"),a=J(!1),o=J(""),l=J(!1),c=J("");function u(k){if(k.kind==="editor"){cf(),As("edit"),_(a,!0),_(n,null),_(r,null),_(o,""),_(i,"editor");return}_(n,k.project,!0),_(a,!1),_(o,""),k.kind==="parse"||k.kind==="quick_diff"||k.kind==="xmi_diff"?(_(r,k.xmi,!0),_(i,"browse")):(_(r,null),_(i,"diff"))}const d=R(()=>!!s(n)&&(s(n).path.startsWith("uploaded:")||s(n).id.startsWith("u")));async function v(){if(s(n))try{_(r,await Ie.parse(s(n).id),!0),_(i,"browse")}catch(k){_(o,k.message,!0)}}function f(){_(n,null),_(r,null),_(a,!1),As("view"),_(o,""),m()}let h=null,g=0;function p(k,A){m(),g=A,h=setInterval(async()=>{try{const z=await Ie.latestProposal(k);z.seq>g&&(g=z.seq,z.focus.length>0&&Wc(z.focus),_(r,{id:z.id,project_id:z.project_id},!0))}catch{}},2500)}function m(){h!==null&&clearInterval(h),h=null}af(async()=>{const k=new URLSearchParams(window.location.search),A=k.get("path"),z=k.get("lang"),V=k.get("xmi"),B=k.get("project"),Y=(k.get("focus")??"").split(",").map(G=>G.trim()).filter(Boolean);Y.length>0&&Wc(Y);const K=k.get("proposal")==="1";if(V&&B){if(u({kind:"xmi_diff",project:{id:B,path:A??"",lang:z??"python"},xmi:{id:V,project_id:B}}),K)try{const ee=await Ie.latestProposal(B);p(B,ee.id===V?ee.seq:0)}catch{p(B,0)}history.replaceState(null,"",window.location.pathname);return}if(!(!A||!z)){_(l,!0),_(c,A,!0),_(o,"");try{const G=await Ie.registerProject(A,z),$=await Ie.parse(G.id);u({kind:"parse",project:G,xmi:$}),history.replaceState(null,"",window.location.pathname)}catch(G){_(o,G.message,!0)}finally{_(l,!1)}}});var y=tN(),E=le(y),N=b(E),I=w(b(N),2);{var C=k=>{var A=J3(),z=le(A),V=b(z),B=w(V),Y=b(B),K=w(z,2),G=b(K);let $;var ee=w(G,2);{var X=de=>{var Ee=Z3();let _e;Q(()=>_e=we(Ee,1,"svelte-1n46o8q",null,_e,{active:s(i)==="diff"})),ne("click",Ee,()=>_(i,"diff")),O(de,Ee)};te(ee,de=>{s(d)||de(X)})}var U=w(K,2);{var ae=de=>{var Ee=U3();ne("click",Ee,v),O(de,Ee)};te(U,de=>{s(d)||de(ae)})}var se=w(U,2);{var ue=de=>{var Ee=Q3();Q(()=>{ce(Ee,"href",`/api/xmi/${s(r).id}/source`),ce(Ee,"download",`${s(r).id}.xmi`)}),O(de,Ee)};te(se,de=>{s(r)&&de(ue)})}var ve=w(se,2);Q(()=>{ce(z,"title",s(n).path),W(V,`${s(n).path??""} `),W(Y,s(n).lang),$=we(G,1,"svelte-1n46o8q",null,$,{active:s(i)==="browse"})}),ne("click",G,()=>_(i,"browse")),ne("click",ve,f),O(k,A)};te(I,k=>{s(n)&&k(C)})}var L=w(N,2),q=b(L);{var T=k=>{c3(k,{onexit:f})},D=k=>{var A=$3(),z=w(b(A)),V=b(z);Q(()=>W(V,s(c))),O(k,A)},F=k=>{xm(k,{onLaunch:u})},S=k=>{var A=eN(),z=b(A);Q(()=>W(z,s(o))),O(k,A)},P=k=>{nh(k,{get xmi(){return s(r)}})},H=k=>{a3(k,{get project(){return s(n)}})};te(q,k=>{s(a)?k(T):s(l)?k(D,1):s(n)?s(o)?k(S,3):s(i)==="browse"&&s(r)?k(P,4):s(i)==="diff"&&k(H,5):k(F,2)})}var x=w(E,2);G3(x,{}),O(e,y),ge()}Qe(["click"]);const rh=document.getElementById("app");if(!rh)throw new Error("#app not found");Rg(nN,{target:rh});