@field/cascade 0.3.1 → 0.4.0
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.
- package/AGENTS.md +14 -9
- package/ARCHITECTURE.md +22 -6
- package/CHANGELOG.md +51 -1
- package/CONTRIBUTING.md +71 -0
- package/DESIGN.md +19 -13
- package/README.md +42 -11
- package/dist/assets/{CodeEditor-D22fVi-4.js → CodeEditor-BNOJIDzL.js} +4 -4
- package/dist/assets/{CodePanel-DPNEYfcR.js → CodePanel-2wp2G0Fj.js} +2 -2
- package/dist/assets/{CustomNodeDialog-DeHCAvgb.js → CustomNodeDialog-DNqaVBqA.js} +1 -1
- package/dist/assets/{ProjectSettings-DWpVtWEx.js → ProjectSettings-DcdYF2E1.js} +1 -1
- package/dist/assets/{SettingsDialog-za00IS3L.js → SettingsDialog-D2xVvyiR.js} +1 -1
- package/dist/assets/{VersionHistoryDialog-DTMGhI0_.js → VersionHistoryDialog-DW288ykF.js} +1 -1
- package/dist/assets/{core-JsyKMO1k.js → core-B1y38i95.js} +1 -1
- package/dist/assets/{cssMode-emdRheFK.js → cssMode-BLucnaln.js} +1 -1
- package/dist/assets/{editor.api-xHX-fMSo.js → editor.api-B3Et3Pph.js} +1 -1
- package/dist/assets/{freemarker2-C3M8_Gs3.js → freemarker2-DVlPoano.js} +1 -1
- package/dist/assets/geo-DhyFdBXX.js +1 -0
- package/dist/assets/{handlebars-CBMurtFk.js → handlebars-B5FZBAMR.js} +1 -1
- package/dist/assets/{html-xbLQwknw.js → html-FodD8KbR.js} +1 -1
- package/dist/assets/{htmlMode-2wKdDTon.js → htmlMode-CsG57VCD.js} +1 -1
- package/dist/assets/{image-i1j6nWKe.js → image-B3F-nq25.js} +1 -1
- package/dist/assets/index-CC6YQw2n.js +212 -0
- package/dist/assets/index-Y2ock1cw.css +1 -0
- package/dist/assets/{javascript-DJaOo_2I.js → javascript-B3gonF_H.js} +1 -1
- package/dist/assets/{jsonMode-Bheas8_0.js → jsonMode-Y3w1ahZg.js} +1 -1
- package/dist/assets/{liquid-BCj_BGbM.js → liquid-CTpWXIYO.js} +1 -1
- package/dist/assets/{lspLanguageFeatures-BfIsx_xz.js → lspLanguageFeatures-CODBdKEZ.js} +1 -1
- package/dist/assets/{mdx-DwiQDiVO.js → mdx-CDAQJZIz.js} +1 -1
- package/dist/assets/{python-BjrB5nqj.js → python-LOIlxJU-.js} +1 -1
- package/dist/assets/{razor-CfoBmGDs.js → razor-CllPQSHo.js} +1 -1
- package/dist/assets/{tsMode-BcEoMSxp.js → tsMode-CO28ut8t.js} +1 -1
- package/dist/assets/{typescript-DIg7TEmQ.js → typescript-ruU9wKQ_.js} +1 -1
- package/dist/assets/{workers-vXYuwtPw.js → workers-Bc1Ywp4-.js} +1 -1
- package/dist/assets/{xml-DexLQIQy.js → xml-DoXP2Dh1.js} +1 -1
- package/dist/assets/{yaml-DUnD_1dE.js → yaml-D9YPyGiJ.js} +1 -1
- package/dist/cli/index.js +999 -185
- package/dist/cli/runtime/gpu.ts +71 -0
- package/dist/contracts/camera.d.ts +70 -0
- package/dist/contracts/camera.js +27 -0
- package/dist/contracts/capabilities.d.ts +6 -6
- package/dist/contracts/definition.d.ts +41 -2
- package/dist/contracts/index.d.ts +2 -0
- package/dist/contracts/index.js +2 -0
- package/dist/contracts/schema.js +25 -2
- package/dist/contracts/series.d.ts +75 -0
- package/dist/contracts/series.js +2 -0
- package/dist/contracts/validate.js +19 -3
- package/dist/contracts/values.d.ts +3 -2
- package/dist/contracts/values.js +1 -0
- package/dist/gpu.d.ts +17 -0
- package/dist/gpu.js +61 -1
- package/dist/index.html +2 -2
- package/dist/runtime/builtins/core/camera.d.ts +252 -0
- package/dist/runtime/builtins/core/camera.js +149 -0
- package/dist/runtime/builtins/core/index.d.ts +2 -1
- package/dist/runtime/builtins/core/index.js +3 -1
- package/dist/runtime/camera/index.d.ts +60 -0
- package/dist/runtime/camera/index.js +234 -0
- package/dist/runtime/definition/architecture.js +36 -1
- package/dist/runtime/gpu.d.ts +33 -0
- package/dist/runtime/gpu.js +218 -0
- package/dist/runtime/index.d.ts +3 -0
- package/dist/runtime/index.js +3 -0
- package/dist/runtime/runtime.js +63 -6
- package/dist/runtime/series/index.d.ts +41 -0
- package/dist/runtime/series/index.js +167 -0
- package/dist/runtime/types.d.ts +1 -1
- package/doc/HEADLESS_GPU.md +160 -0
- package/doc/NODE_REFERENCE.md +36 -0
- package/doc/PROJECT_AUTHORING.md +106 -20
- package/package.json +10 -2
- package/dist/assets/geo-BAR6lQp5.js +0 -1
- package/dist/assets/index-BDV5xGBZ.css +0 -1
- package/dist/assets/index-CMcH8AgP.js +0 -212
|
@@ -1,212 +0,0 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/CodePanel-DPNEYfcR.js","assets/legacy-CAj2_7QE.js","assets/CodePanel-IT1secyI.css","assets/CustomNodeDialog-DeHCAvgb.js","assets/CustomNodeDialog-JGYnWY6m.css","assets/VersionHistoryDialog-DTMGhI0_.js","assets/VersionHistoryDialog-CWNmHQ-P.css","assets/ExportDialog-BJu2Bpvv.js","assets/ExportDialog-DOq0flMV.css","assets/SettingsDialog-za00IS3L.js","assets/SettingsDialog-CeK7ytpY.css","assets/ProjectSettings-DWpVtWEx.js","assets/projectSettingsApi-C1WvIwfP.js","assets/ProjectSettings-DdO9xoQz.css","assets/core-JsyKMO1k.js","assets/nodeTypeUtils-BBA1JqHx.js","assets/image-i1j6nWKe.js"])))=>i.map(i=>d[i]);
|
|
2
|
-
import{$ as e,A as t,B as n,C as r,Ct as i,D as a,Dt as o,E as s,Et as c,F as l,G as u,H as d,I as f,J as p,K as m,L as h,M as g,N as _,O as v,Ot as y,P as b,Q as x,R as S,S as C,St as w,T,Tt as ee,U as E,V as D,W as te,X as O,Y as k,Z as A,_t as ne,a as j,at as M,b as re,bt as N,c as ie,ct as P,d as ae,dt as oe,et as F,f as I,ft as L,g as R,gt as z,h as se,ht as B,i as V,it as ce,j as le,k as H,kt as U,l as ue,lt as de,m as fe,mt as pe,n as me,nt as he,o as W,ot as G,p as ge,pt as _e,q as ve,r as ye,rt as K,s as be,st as q,t as xe,tt as J,u as Se,ut as Y,v as Ce,vt as we,w as Te,wt as Ee,x as X,xt as De,y as Oe,yt as ke,z as Z}from"./legacy-CAj2_7QE.js";import"./index-client-BoJgsN9M.js";import{c as Ae,d as je,i as Me,l as Ne,n as Pe,o as Fe,r as Ie,s as Le,t as Re}from"./nodeTypeUtils-BBA1JqHx.js";(function(){let e=document.createElement(`link`).relList;if(e&&e.supports&&e.supports(`modulepreload`))return;for(let e of document.querySelectorAll(`link[rel="modulepreload"]`))n(e);new MutationObserver(e=>{for(let t of e)if(t.type===`childList`)for(let e of t.addedNodes)e.tagName===`LINK`&&e.rel===`modulepreload`&&n(e)}).observe(document,{childList:!0,subtree:!0});function t(e){let t={};return e.integrity&&(t.integrity=e.integrity),e.referrerPolicy&&(t.referrerPolicy=e.referrerPolicy),t.credentials=e.crossOrigin===`use-credentials`?`include`:e.crossOrigin===`anonymous`?`omit`:`same-origin`,t}function n(e){if(e.ep)return;e.ep=!0;let n=t(e);fetch(e.href,n)}})();var ze,Be=class{constructor(){}},Ve=class extends Be{constructor(e,t,n,r){super(),this.viewId=e,this.groupId=t,this.panelId=n,this.tabGroupId=r}},He=class e{constructor(){}static getInstance(){return e.INSTANCE}hasData(e){return e&&e===this.proto}clearData(e){this.hasData(e)&&(this.proto=void 0,this.data=void 0)}getData(e){if(this.hasData(e))return this.data}setData(e,t){t&&(this.data=e,this.proto=t)}};ze=He,He.INSTANCE=new ze;function Ue(){let e=He.getInstance();if(e.hasData(Ve.prototype))return e.getData(Ve.prototype)[0]}var We;(function(e){e.NONE={dispose:()=>{}};function t(e){return{dispose:()=>{e()}}}e.from=t})(We||={});var Q=class{get isDisposed(){return this._isDisposed}constructor(...e){this._isDisposed=!1,this._disposables=new Set(e)}addDisposables(...e){e.forEach(e=>this._disposables.add(e))}removeDisposable(e){this._disposables.delete(e)}dispose(){this._isDisposed||(this._isDisposed=!0,this._disposables.forEach(e=>e.dispose()),this._disposables.clear())}},Ge=class{constructor(){this._disposable=We.NONE}get value(){return this._disposable===We.NONE?void 0:this._disposable}set value(e){this._disposable&&this._disposable.dispose(),this._disposable=e}dispose(){this._disposable&&=(this._disposable.dispose(),We.NONE)}},Ke;(function(e){e.any=(...e)=>t=>{let n=e.map(e=>e(t));return{dispose:()=>{n.forEach(e=>{e.dispose()})}}}})(Ke||={});var qe=class{constructor(){this._defaultPrevented=!1}get defaultPrevented(){return this._defaultPrevented}preventDefault(){this._defaultPrevented=!0}},Je=class{constructor(){this._isAccepted=!1}get isAccepted(){return this._isAccepted}accept(){this._isAccepted=!0}},Ye=class{constructor(){this.events=new Map}get size(){return this.events.size}add(e,t){this.events.set(e,t)}delete(e){this.events.delete(e)}clear(){this.events.clear()}},Xe=class e{static create(){return new e(Error(`listener stacktrace`).stack??``)}constructor(e){this.value=e}print(){console.warn(`dockview: stacktrace`,this.value)}},Ze=class{constructor(e,t){this.callback=e,this.stacktrace=t}},$=class e{static setLeakageMonitorEnabled(t){t!==e.ENABLE_TRACKING&&e.MEMORY_LEAK_WATCHER.clear(),e.ENABLE_TRACKING=t}get value(){return this._last}constructor(e){this.options=e,this._listeners=[],this._disposed=!1}get event(){return this._event||(this._event=t=>{this.options?.replay&&this._last!==void 0&&t(this._last);let n=new Ze(t,e.ENABLE_TRACKING?Xe.create():void 0);return this._listeners.push(n),{dispose:()=>{let t=this._listeners.indexOf(n);t>-1?this._listeners.splice(t,1):e.ENABLE_TRACKING}}},e.ENABLE_TRACKING&&e.MEMORY_LEAK_WATCHER.add(this._event,Xe.create())),this._event}fire(e){if(this._pauseTokens!==void 0&&this._pauseTokens.size>0)return;this.options?.replay&&(this._last=e);let t=this._listeners,n=t.length;if(n!==0){if(n===1){t[0].callback(e);return}for(let n of t.slice())n.callback(e)}}pause(){let e={};return this._pauseTokens??=new Set,this._pauseTokens.add(e),We.from(()=>this._pauseTokens?.delete(e))}dispose(){this._disposed||(this._disposed=!0,this._listeners.length>0&&(e.ENABLE_TRACKING?queueMicrotask(()=>{for(let e of this._listeners)console.warn(`dockview: stacktrace`,e.stacktrace?.print());this._listeners=[]}):this._listeners=[]),e.ENABLE_TRACKING&&this._event&&e.MEMORY_LEAK_WATCHER.delete(this._event))}};$.ENABLE_TRACKING=!1,$.MEMORY_LEAK_WATCHER=new Ye;function Qe(e,t,n,r){return e.addEventListener(t,n,r),{dispose:()=>{e.removeEventListener(t,n,r)}}}var $e=class{constructor(){this._onFired=new $,this._currentFireCount=0,this._queued=!1,this.onEvent=e=>{let t=this._currentFireCount;return this._onFired.event(()=>{this._currentFireCount>t&&e()})}}fire(){this._currentFireCount++,!this._queued&&(this._queued=!0,queueMicrotask(()=>{this._queued=!1,this._onFired.fire()}))}dispose(){this._onFired.dispose()}},et=class extends Q{constructor(e){super(),this._onDidChange=new $,this.onDidChange=this._onDidChange.event,this._value=null,this.addDisposables(this._onDidChange,tt(e,e=>{let t=e.target.scrollWidth>e.target.clientWidth,n=e.target.scrollHeight>e.target.clientHeight;this._value={hasScrollX:t,hasScrollY:n},this._onDidChange.fire(this._value)}))}};function tt(e,t){let n=new ResizeObserver(e=>{requestAnimationFrame(()=>{let n=e[0];t(n)})});return n.observe(e),{dispose:()=>{n.unobserve(e),n.disconnect()}}}var nt=(e,...t)=>{for(let n of t)e.classList.contains(n)&&e.classList.remove(n)},rt=(e,...t)=>{for(let n of t)e.classList.contains(n)||e.classList.add(n)},it=(e,t,n)=>{let r=e.classList.contains(t);n&&!r&&e.classList.add(t),!n&&r&&e.classList.remove(t)};function at(e,t){for(;e;){if(e===t)return!0;e=e.parentNode}return!1}function ot(e){return new st(e)}var st=class extends Q{constructor(e){super(),this._onDidFocus=new $,this.onDidFocus=this._onDidFocus.event,this._onDidBlur=new $,this.onDidBlur=this._onDidBlur.event,this.addDisposables(this._onDidFocus,this._onDidBlur);let t=at(document.activeElement,e),n=!1,r=()=>{n=!1,t||(t=!0,this._onDidFocus.fire())},i=()=>{t&&(n=!0,globalThis.setTimeout(()=>{n&&(n=!1,t=!1,this._onDidBlur.fire())},0))};this._refreshStateHandler=()=>{at(document.activeElement,e)!==t&&(t?i():r())},this.addDisposables(Qe(e,`focus`,r,!0)),this.addDisposables(Qe(e,`blur`,i,!0))}refreshState(){this._refreshStateHandler()}},ct=`dv-quasiPreventDefault`;function lt(e){e[ct]=!0}function ut(e){return e[ct]}function dt(e,t,n={}){let r=Array.from(t),{nonce:i}=n,a=typeof i==`function`?i(e):i;for(let t of r){if(t.href){let n=e.createElement(`link`);n.href=t.href,n.type=t.type,n.rel=`stylesheet`,e.head.appendChild(n);continue}let n=[];try{t.cssRules&&(n=Array.from(t.cssRules).map(e=>e.cssText))}catch(e){console.warn(`dockview: failed to access stylesheet rules due to security restrictions`,e)}let r=e.createDocumentFragment();for(let t of n){let n=e.createElement(`style`);a&&n.setAttribute(`nonce`,a),n.appendChild(e.createTextNode(t)),r.appendChild(n)}e.head.appendChild(r)}}function ft(e){let{left:t,top:n,width:r,height:i}=e.getBoundingClientRect();return{left:t+window.scrollX,top:n+window.scrollY,width:r,height:i}}function pt(e){let t=e;for(;t?.parentNode;)if(t.parentNode===document)return!0;else t=t.parentNode instanceof DocumentFragment?t.parentNode.host:t.parentNode;return!1}function mt(e,t){e.dataset.testid=t}function ht(e,t){let n=[];function r(t){if(t.nodeType===Node.ELEMENT_NODE){e.includes(t.tagName)&&n.push(t),t.shadowRoot&&r(t.shadowRoot);for(let e of t.children)r(e)}}return r(t instanceof Document?t.documentElement:t),n}function gt(e=document){let t=ht([`IFRAME`,`WEBVIEW`],e),n=new WeakMap;for(let e of t)n.set(e,e.style.pointerEvents),e.style.pointerEvents=`none`;return{release:()=>{for(let e of t)e.style.pointerEvents=n.get(e)??`auto`;t.splice(0,t.length)}}}function _t(e){function t(e){let t=[];for(let n=0;n<e.classList.length;n++)t.push(e.classList.item(n));return t}let n,r=e;for(;r!==null&&(n=t(r).find(e=>e.startsWith(`dockview-theme-`)),typeof n!=`string`);)r=r.parentElement;return n}var vt=class{constructor(e){this.element=e,this._classNames=[]}setClassNames(e){for(let e of this._classNames)it(this.element,e,!1);this._classNames=e.split(` `).filter(e=>e.trim().length>0);for(let e of this._classNames)it(this.element,e,!0)}},yt=100;function bt(e,t){let n=ft(e),r=ft(t);return!(n.left<r.left||n.left+n.width>r.left+r.width||n.top<r.top||n.top+n.height>r.top+r.height)}function xt(e){let t=new $,n=e.screenX,r=e.screenY,i,a=0,o=!1,s=()=>{if(o||e.closed)return;let c=e.screenX,l=e.screenY;(c!==n||l!==r)&&(clearTimeout(i),i=setTimeout(()=>{t.fire()},yt),n=c,r=l),a=requestAnimationFrame(s)};s();let c=t.dispose.bind(t);return t.dispose=()=>{o||(o=!0,cancelAnimationFrame(a),clearTimeout(i)),c()},t}function St(e,t){let n;return new Q(Qe(e,`resize`,()=>{clearTimeout(n),n=setTimeout(()=>{t()},yt)}))}function Ct(e,t,n){let r=n?.buffer??10,i=e.getBoundingClientRect(),a=t.getBoundingClientRect(),o=0,s=0,c=i.left-a.left,l=i.top-a.top,u=i.bottom-a.bottom,d=i.right-a.right;c<r?o=r-c:d>r&&(o=-r-d),l<r?s=r-l:u>r&&(s=-u-r),(o!==0||s!==0)&&(e.style.transform=`translate(${o}px, ${s}px)`)}function wt(e){let t=e;for(;t&&(t.style.zIndex===`auto`||t.style.zIndex===``);)t=t.parentElement;return t}function Tt(e){if(e.length===0)throw Error(`Invalid tail call`);return[e.slice(0,e.length-1),e[e.length-1]]}function Et(e,t){if(e.length!==t.length)return!1;for(let n=0;n<e.length;n++)if(e[n]!==t[n])return!1;return!0}function Dt(e,t){let n=e.indexOf(t);n>-1&&(e.splice(n,1),e.unshift(t))}function Ot(e,t){let n=e.indexOf(t);n>-1&&(e.splice(n,1),e.push(t))}function kt(e,t){for(let n=0;n<e.length;n++){let r=e[n];if(t(r))return n}return-1}function At(e,t){let n=e.indexOf(t);return n>-1&&(e.splice(n,1),!0)}var jt=(e,t,n)=>t>n?t:Math.min(n,Math.max(e,t)),Mt=()=>{let e=1;return{next:()=>(e++).toString()}},Nt=(e,t)=>{let n=[];if(typeof t!=`number`&&(t=e,e=0),e<=t)for(let r=e;r<t;r++)n.push(r);else for(let r=e;r>t;r--)n.push(r);return n},Pt=class{set size(e){this._size=e}setContainerGeometry(e,t){this._appliedStyles[e]!==t&&(this._appliedStyles[e]=t,this.container.style[e]=t)}get size(){return this._size}get cachedVisibleSize(){return this._cachedVisibleSize}get visible(){return this._cachedVisibleSize===void 0}get minimumSize(){return this.visible?this.view.minimumSize:0}get viewMinimumSize(){return this.view.minimumSize}get maximumSize(){return this.visible?this.view.maximumSize:0}get viewMaximumSize(){return this.view.maximumSize}get priority(){return this.view.priority}get snap(){return!!this.view.snap}set enabled(e){this.container.style.pointerEvents=e?``:`none`}constructor(e,t,n,r){this.container=e,this.view=t,this.disposable=r,this._cachedVisibleSize=void 0,this._appliedStyles={},typeof n==`number`?(this._size=n,this._cachedVisibleSize=void 0,e.classList.add(`visible`)):(this._size=0,this._cachedVisibleSize=n.cachedVisibleSize)}setVisible(e,t){e!==this.visible&&(e?(this.size=jt(this._cachedVisibleSize??0,this.viewMinimumSize,this.viewMaximumSize),this._cachedVisibleSize=void 0):(this._cachedVisibleSize=typeof t==`number`?t:this.size,this.size=0),this.container.classList.toggle(`visible`,e),this.view.setVisible&&this.view.setVisible(e))}dispose(){return this.disposable.dispose(),this.view}},Ft=function(e){return e.HORIZONTAL=`HORIZONTAL`,e.VERTICAL=`VERTICAL`,e}({});function It(e,t,n){e.appliedLeft!==t&&(e.appliedLeft=t,e.container.style.left=t),e.appliedTop!==n&&(e.appliedTop=n,e.container.style.top=n)}var Lt;(function(e){e.Distribute={type:`distribute`};function t(e){return{type:`split`,index:e}}e.Split=t;function n(e){return{type:`invisible`,cachedVisibleSize:e}}e.Invisible=n})(Lt||={});var Rt=class{get contentSize(){return this._contentSize}get size(){return this._size}set size(e){this._size=e}get orthogonalSize(){return this._orthogonalSize}set orthogonalSize(e){this._orthogonalSize=e}get length(){return this.viewItems.length}get proportions(){return this._proportions?[...this._proportions]:void 0}get orientation(){return this._orientation}set orientation(e){this._orientation=e;let t=this.size;this.size=this.orthogonalSize,this.orthogonalSize=t,nt(this.element,`dv-horizontal`,`dv-vertical`),this.element.classList.add(this.orientation==`HORIZONTAL`?`dv-horizontal`:`dv-vertical`)}get minimumSize(){return this.viewItems.reduce((e,t)=>e+t.minimumSize,0)}get maximumSize(){return this.length===0?1/0:this.viewItems.reduce((e,t)=>e+t.maximumSize,0)}get startSnappingEnabled(){return this._startSnappingEnabled}set startSnappingEnabled(e){this._startSnappingEnabled!==e&&(this._startSnappingEnabled=e,this.updateSashEnablement())}get endSnappingEnabled(){return this._endSnappingEnabled}set endSnappingEnabled(e){this._endSnappingEnabled!==e&&(this._endSnappingEnabled=e,this.updateSashEnablement())}get disabled(){return this._disabled}set disabled(e){this._disabled=e,it(this.element,`dv-splitview-disabled`,e)}get margin(){return this._margin}set margin(e){this._margin=e,it(this.element,`dv-splitview-has-margin`,e!==0)}constructor(e,t){this.container=e,this.viewItems=[],this.sashes=[],this._size=0,this._orthogonalSize=0,this._contentSize=0,this._proportions=void 0,this._startSnappingEnabled=!0,this._endSnappingEnabled=!0,this._disabled=!1,this._margin=0,this._onDidSashEnd=new $,this.onDidSashEnd=this._onDidSashEnd.event,this._onDidAddView=new $,this.onDidAddView=this._onDidAddView.event,this._onDidRemoveView=new $,this.onDidRemoveView=this._onDidRemoveView.event,this.resize=(e,t,n=this.viewItems.map(e=>e.size),r,i,a=-1/0,o=1/0,s,c)=>{if(e<0||e>this.viewItems.length)return 0;let l=Nt(e,-1),u=Nt(e+1,this.viewItems.length);if(i)for(let e of i)Dt(l,e),Dt(u,e);if(r)for(let e of r)Ot(l,e),Ot(u,e);let d=l.reduce((e,t)=>e+this.viewItems[t].minimumSize-n[t],0),f=l.reduce((e,t)=>e+this.viewItems[t].maximumSize-n[t],0),p=u.length===0?1/0:u.reduce((e,t)=>e+n[t]-this.viewItems[t].minimumSize,0),m=u.length===0?-1/0:u.reduce((e,t)=>e+n[t]-this.viewItems[t].maximumSize,0),h=Math.max(d,m),g=Math.min(p,f),_=!1;if(s){let e=this.viewItems[s.index],n=t>=s.limitDelta;_=n!==e.visible,e.setVisible(n,s.size)}if(!_&&c){let e=this.viewItems[c.index],n=t<c.limitDelta;_=n!==e.visible,e.setVisible(n,c.size)}if(_)return this.resize(e,t,n,r,i,a,o);let v=jt(t,h,g),y=0,b=v;for(let e of l){let t=this.viewItems[e],r=n[e],i=jt(r+b,t.minimumSize,t.maximumSize),a=i-r;y+=a,b-=a,t.size=i}let x=y;for(let e of u){let t=this.viewItems[e],r=n[e],i=jt(r-x,t.minimumSize,t.maximumSize),a=i-r;x+=a,t.size=i}return t},this._orientation=t.orientation??`VERTICAL`,this.element=this.createContainer(),this.margin=t.margin??0,this.proportionalLayout=t.proportionalLayout===void 0||!!t.proportionalLayout,this.viewContainer=this.createViewContainer(),this.sashContainer=this.createSashContainer(),this.element.appendChild(this.sashContainer),this.element.appendChild(this.viewContainer),this.container.appendChild(this.element),this.style(t.styles),t.descriptor&&(this._size=t.descriptor.size,t.descriptor.views.forEach((e,t)=>{let n=e.visible===void 0||e.visible?e.size:{type:`invisible`,cachedVisibleSize:e.size},r=e.view;this.addView(r,n,t,!0)}),this._contentSize=this.viewItems.reduce((e,t)=>e+t.size,0),this.saveProportions())}style(e){e?.separatorBorder===`transparent`?(nt(this.element,`dv-separator-border`),this.element.style.removeProperty(`--dv-separator-border`)):(rt(this.element,`dv-separator-border`),e?.separatorBorder&&this.element.style.setProperty(`--dv-separator-border`,e.separatorBorder))}isViewVisible(e){if(e<0||e>=this.viewItems.length)throw Error(`Index out of bounds`);return this.viewItems[e].visible}setViewVisible(e,t){if(e<0||e>=this.viewItems.length)throw Error(`Index out of bounds`);let n=this.viewItems[e];n.setVisible(t,n.size),this.distributeEmptySpace(e),this.layoutViews(),this.saveProportions()}getViewSize(e){return e<0||e>=this.viewItems.length?-1:this.viewItems[e].size}resizeView(e,t){if(e<0||e>=this.viewItems.length)return;let n=Nt(this.viewItems.length).filter(t=>t!==e),r=[...n.filter(e=>this.viewItems[e].priority===`low`),e],i=n.filter(e=>this.viewItems[e].priority===`high`),a=this.viewItems[e];t=Math.round(t),t=jt(t,a.minimumSize,Math.min(a.maximumSize,this._size)),a.size=t,this.relayout(r,i)}getViews(){return this.viewItems.map(e=>e.view)}onDidChange(e,t){let n=this.viewItems.indexOf(e);if(n<0||n>=this.viewItems.length)return;t=typeof t==`number`?t:e.size,t=jt(t,e.minimumSize,e.maximumSize),e.size=t;let r=Nt(this.viewItems.length).filter(e=>e!==n),i=[...r.filter(e=>this.viewItems[e].priority===`low`),n],a=r.filter(e=>this.viewItems[e].priority===`high`);this.relayout([...i,n],a)}addView(e,t=Lt.Distribute,n=this.viewItems.length,r){let i=document.createElement(`div`);i.className=`dv-view`,i.appendChild(e.element);let a;a=typeof t==`number`?t:t.type===`split`?this.getViewSize(t.index)/2:t.type===`invisible`?{cachedVisibleSize:t.cachedVisibleSize}:e.minimumSize;let o=e.onDidChange(e=>this.onDidChange(s,e.size)),s=new Pt(i,e,a,{dispose:()=>{o.dispose(),i.remove()}});if(n===this.viewItems.length?this.viewContainer.appendChild(i):this.viewContainer.insertBefore(i,this.viewContainer.children.item(n)),this.viewItems.splice(n,0,s),this.viewItems.length>1){let e=document.createElement(`div`);e.className=`dv-sash`;let t=t=>{for(let e of this.viewItems)e.enabled=!1;let n=e.ownerDocument??document,r=gt(n),i=this._orientation===`HORIZONTAL`?t.clientX:t.clientY,a=kt(this.sashes,t=>t.container===e),o=this.viewItems.map(e=>e.size),s,c,l=Nt(a,-1),u=Nt(a+1,this.viewItems.length),d=l.reduce((e,t)=>e+(this.viewItems[t].minimumSize-o[t]),0),f=l.reduce((e,t)=>e+(this.viewItems[t].viewMaximumSize-o[t]),0),p=u.length===0?1/0:u.reduce((e,t)=>e+(o[t]-this.viewItems[t].minimumSize),0),m=u.length===0?-1/0:u.reduce((e,t)=>e+(o[t]-this.viewItems[t].viewMaximumSize),0),h=Math.max(d,m),g=Math.min(p,f),_=this.findFirstSnapIndex(l),v=this.findFirstSnapIndex(u);if(typeof _==`number`){let e=this.viewItems[_],t=Math.floor(e.viewMinimumSize/2);s={index:_,limitDelta:e.visible?h-t:h+t,size:e.size}}if(typeof v==`number`){let e=this.viewItems[v],t=Math.floor(e.viewMinimumSize/2);c={index:v,limitDelta:e.visible?g+t:g-t,size:e.size}}let y=e=>{let t=(this._orientation===`HORIZONTAL`?e.clientX:e.clientY)-i;this.resize(a,t,o,void 0,void 0,h,g,s,c),this.distributeEmptySpace(),this.layoutViews()},b=()=>{for(let e of this.viewItems)e.enabled=!0;r.release(),this.saveProportions(),n.removeEventListener(`pointermove`,y),n.removeEventListener(`pointerup`,b),n.removeEventListener(`pointercancel`,b),n.removeEventListener(`contextmenu`,b),this._onDidSashEnd.fire(void 0)};n.addEventListener(`pointermove`,y),n.addEventListener(`pointerup`,b),n.addEventListener(`pointercancel`,b),n.addEventListener(`contextmenu`,b)};e.addEventListener(`pointerdown`,t);let n={container:e,disposable:()=>{e.removeEventListener(`pointerdown`,t),e.remove()}};this.sashContainer.appendChild(e),this.sashes.push(n)}r||this.relayout([n]),!r&&typeof t!=`number`&&t.type===`distribute`&&this.distributeViewSizes(),this._onDidAddView.fire(e)}distributeViewSizes(){let e=[],t=0;for(let n of this.viewItems)n.maximumSize-n.minimumSize>0&&(e.push(n),t+=n.size);let n=Math.floor(t/e.length);for(let t of e)t.size=jt(n,t.minimumSize,t.maximumSize);let r=Nt(this.viewItems.length),i=r.filter(e=>this.viewItems[e].priority===`low`),a=r.filter(e=>this.viewItems[e].priority===`high`);this.relayout(i,a)}removeView(e,t,n=!1){let r=this.viewItems.splice(e,1)[0];if(r.dispose(),this.viewItems.length>=1){let t=Math.max(e-1,0);this.sashes.splice(t,1)[0].disposable()}return n||this.relayout(),t?.type===`distribute`&&this.distributeViewSizes(),this._onDidRemoveView.fire(r.view),r.view}getViewCachedVisibleSize(e){if(e<0||e>=this.viewItems.length)throw Error(`Index out of bounds`);return this.viewItems[e].cachedVisibleSize}moveView(e,t){let n=this.getViewCachedVisibleSize(e),r=n===void 0?this.getViewSize(e):Lt.Invisible(n),i=this.removeView(e,void 0,!0);this.addView(i,r,t)}layout(e,t){let n=Math.max(this.size,this._contentSize);if(this.size=e,this.orthogonalSize=t,this.proportions){let t=0;for(let n=0;n<this.viewItems.length;n++){let r=this.viewItems[n],i=this.proportions[n];typeof i==`number`?t+=i:e-=r.size}for(let n=0;n<this.viewItems.length;n++){let r=this.viewItems[n],i=this.proportions[n];typeof i==`number`&&t>0&&(r.size=jt(Math.round(i*e/t),r.minimumSize,r.maximumSize))}}else{let t=Nt(this.viewItems.length),r=t.filter(e=>this.viewItems[e].priority===`low`),i=t.filter(e=>this.viewItems[e].priority===`high`);this.resize(this.viewItems.length-1,e-n,void 0,r,i)}this.distributeEmptySpace(),this.layoutViews()}relayout(e,t){let n=this.viewItems.reduce((e,t)=>e+t.size,0);this.resize(this.viewItems.length-1,this._size-n,void 0,e,t),this.distributeEmptySpace(),this.layoutViews(),this.saveProportions()}distributeEmptySpace(e){let t=0;for(let e of this.viewItems)t+=e.size;let n=this.size-t;if(n===0)return;let r=Nt(this.viewItems.length-1,-1),i=!1;for(let e of this.viewItems)if(e.priority===`low`||e.priority===`high`){i=!0;break}if(i){let e=r.filter(e=>this.viewItems[e].priority===`low`),t=r.filter(e=>this.viewItems[e].priority===`high`);for(let e of t)Dt(r,e);for(let t of e)Ot(r,t)}typeof e==`number`&&Ot(r,e);for(let e=0;n!==0&&e<r.length;e++){let t=this.viewItems[r[e]],i=jt(t.size+n,t.minimumSize,t.maximumSize),a=i-t.size;n-=a,t.size=i}}saveProportions(){this.proportionalLayout&&this._contentSize>0&&(this._proportions=this.viewItems.map(e=>e.visible?e.size/this._contentSize:void 0))}layoutViews(){let e=0,t=0;for(let n of this.viewItems)e+=n.size,n.visible&&t++;if(this._contentSize=e,this.updateSashEnablement(),this.viewItems.length===0)return;let n=Math.max(0,t-1),r=this.margin*n/Math.max(1,t),i=0,a=[],o=0;this.viewItems.forEach((e,t)=>{i+=this.viewItems[t].size,a.push(i),o+=+!!e.visible;let s=e.visible?e.size-r:0,c=Math.max(0,o-1),l=t===0||c===0?0:a[t-1]+c/n*r;if(t<this.viewItems.length-1){let n=e.visible?l+s-2+this.margin/2:l,r=this.sashes[t];this._orientation===`HORIZONTAL`&&It(r,`${n}px`,`0px`),this._orientation===`VERTICAL`&&It(r,`0px`,`${n}px`)}this._orientation===`HORIZONTAL`&&(e.setContainerGeometry(`width`,`${s}px`),e.setContainerGeometry(`left`,`${l}px`),e.setContainerGeometry(`top`,``),e.setContainerGeometry(`height`,``)),this._orientation===`VERTICAL`&&(e.setContainerGeometry(`height`,`${s}px`),e.setContainerGeometry(`top`,`${l}px`),e.setContainerGeometry(`width`,``),e.setContainerGeometry(`left`,``)),e.view.layout(e.size-r,this._orthogonalSize)})}findFirstSnapIndex(e){for(let t of e){let e=this.viewItems[t];if(e.visible&&e.snap)return t}for(let t of e){let e=this.viewItems[t];if(e.visible&&e.maximumSize-e.minimumSize>0)return;if(!e.visible&&e.snap)return t}}updateSashEnablement(){if(this.sashes.length===0)return;let e=!1,t=this.viewItems.map(t=>e=t.size-t.minimumSize>0||e);e=!1;let n=this.viewItems.map(t=>e=t.maximumSize-t.size>0||e),r=[...this.viewItems].reverse();e=!1;let i=r.map(t=>e=t.size-t.minimumSize>0||e).reverse();e=!1;let a=r.map(t=>e=t.maximumSize-t.size>0||e).reverse(),o=0;for(let e=0;e<this.sashes.length;e++){let r=this.sashes[e],s=this.viewItems[e];o+=s.size;let c=!(t[e]&&a[e+1]),l=!(n[e]&&i[e+1]);if(c&&l){let n=Nt(e,-1),a=Nt(e+1,this.viewItems.length),s=this.findFirstSnapIndex(n),c=this.findFirstSnapIndex(a),l=typeof s==`number`&&!this.viewItems[s].visible,u=typeof c==`number`&&!this.viewItems[c].visible;l&&i[e]&&(o>0||this.startSnappingEnabled)?this.updateSash(r,1):u&&t[e]&&(o<this._contentSize||this.endSnappingEnabled)?this.updateSash(r,0):this.updateSash(r,2)}else c&&!l?this.updateSash(r,1):!c&&l?this.updateSash(r,0):this.updateSash(r,3)}}updateSash(e,t){it(e.container,`dv-disabled`,t===2),it(e.container,`dv-enabled`,t===3),it(e.container,`dv-maximum`,t===0),it(e.container,`dv-minimum`,t===1)}createViewContainer(){let e=document.createElement(`div`);return e.className=`dv-view-container`,e}createSashContainer(){let e=document.createElement(`div`);return e.className=`dv-sash-container`,e}createContainer(){let e=document.createElement(`div`);return e.className=`dv-split-view-container ${this._orientation===`HORIZONTAL`?`dv-horizontal`:`dv-vertical`}`,e}dispose(){this._onDidSashEnd.dispose(),this._onDidAddView.dispose(),this._onDidRemoveView.dispose();for(let e=0;e<this.element.children.length;e++)if(this.element.children.item(e)===this.element){this.element.remove();break}for(let e of this.viewItems)e.dispose();this.element.remove()}},zt=class{get minimumWidth(){return this.view.minimumWidth}get maximumWidth(){return this.view.maximumWidth}get minimumHeight(){return this.view.minimumHeight}get maximumHeight(){return this.view.maximumHeight}get priority(){return this.view.priority}get snap(){return this.view.snap}get minimumSize(){return this.orientation===`HORIZONTAL`?this.minimumHeight:this.minimumWidth}get maximumSize(){return this.orientation===`HORIZONTAL`?this.maximumHeight:this.maximumWidth}get minimumOrthogonalSize(){return this.orientation===`HORIZONTAL`?this.minimumWidth:this.minimumHeight}get maximumOrthogonalSize(){return this.orientation===`HORIZONTAL`?this.maximumWidth:this.maximumHeight}get orthogonalSize(){return this._orthogonalSize}get size(){return this._size}get element(){return this.view.element}get width(){return this.orientation===`HORIZONTAL`?this.orthogonalSize:this.size}get height(){return this.orientation===`HORIZONTAL`?this.size:this.orthogonalSize}constructor(e,t,n,r=0){this.view=e,this.orientation=t,this._onDidChange=new $,this.onDidChange=this._onDidChange.event,this._orthogonalSize=n,this._size=r,this._disposable=this.view.onDidChange(e=>{e?this._onDidChange.fire({size:this.orientation===`VERTICAL`?e.width:e.height,orthogonalSize:this.orientation===`VERTICAL`?e.height:e.width}):this._onDidChange.fire({})})}setVisible(e){this.view.setVisible&&this.view.setVisible(e)}layout(e,t){this._size=e,this._orthogonalSize=t,this.view.layout(this.width,this.height)}dispose(){this._onDidChange.dispose(),this._disposable.dispose()}},Bt=class e extends Q{get width(){return this.orientation===`HORIZONTAL`?this.size:this.orthogonalSize}get height(){return this.orientation===`HORIZONTAL`?this.orthogonalSize:this.size}get minimumSize(){if(this._cachedMinimumSize===void 0){let e=0;for(let t=0;t<this.children.length;t++)this.splitview.isViewVisible(t)&&(e=Math.max(e,this.children[t].minimumOrthogonalSize));this._cachedMinimumSize=e}return this._cachedMinimumSize}get maximumSize(){if(this._cachedMaximumSize===void 0){let e=1/0;for(let t=0;t<this.children.length;t++)this.splitview.isViewVisible(t)&&(e=Math.min(e,this.children[t].maximumOrthogonalSize));this._cachedMaximumSize=e}return this._cachedMaximumSize}get minimumOrthogonalSize(){return this.splitview.minimumSize}get maximumOrthogonalSize(){return this.splitview.maximumSize}get orthogonalSize(){return this._orthogonalSize}get size(){return this._size}get minimumWidth(){return this.orientation===`HORIZONTAL`?this.minimumOrthogonalSize:this.minimumSize}get minimumHeight(){return this.orientation===`HORIZONTAL`?this.minimumSize:this.minimumOrthogonalSize}get maximumWidth(){return this.orientation===`HORIZONTAL`?this.maximumOrthogonalSize:this.maximumSize}get maximumHeight(){return this.orientation===`HORIZONTAL`?this.maximumSize:this.maximumOrthogonalSize}get priority(){return this._cachedPriority??=this.computePriority(),this._cachedPriority}computePriority(){if(this.children.length===0)return`normal`;let e=!1,t=!1;for(let n of this.children){let r=n.priority??`normal`;r===`high`?e=!0:r===`low`&&(t=!0)}return e?`high`:t?`low`:`normal`}invalidateCachedSizes(){this._cachedMinimumSize=void 0,this._cachedMaximumSize=void 0,this._cachedPriority=void 0}get disabled(){return this.splitview.disabled}set disabled(e){this.splitview.disabled=e}get margin(){return this.splitview.margin}set margin(t){this.splitview.margin=t,this.children.forEach(n=>{n instanceof e&&(n.margin=t)})}constructor(e,t,n,r,i,a,o,s){if(super(),this.orientation=e,this.proportionalLayout=t,this.styles=n,this._childrenDisposable=We.NONE,this.children=[],this._onDidChange=new $,this.onDidChange=this._onDidChange.event,this._onDidVisibilityChange=new $,this.onDidVisibilityChange=this._onDidVisibilityChange.event,this._orthogonalSize=i,this._size=r,this.element=document.createElement(`div`),this.element.className=`dv-branch-node`,s){let e={views:s.map(e=>({view:e.node,size:e.node.size,visible:e.visible??!0})),size:this.orthogonalSize};this.children=s.map(e=>e.node),this.splitview=new Rt(this.element,{orientation:this.orientation,descriptor:e,proportionalLayout:t,styles:n,margin:o})}else this.splitview=new Rt(this.element,{orientation:this.orientation,proportionalLayout:t,styles:n,margin:o}),this.splitview.layout(this.size,this.orthogonalSize);this.disabled=a,this.addDisposables(this._onDidChange,this._onDidVisibilityChange,this.splitview.onDidSashEnd(()=>{this._onDidChange.fire({})})),this.setupChildrenEvents()}setVisible(e){}isChildVisible(e){if(e<0||e>=this.children.length)throw Error(`Invalid index`);return this.splitview.isViewVisible(e)}setChildVisible(e,t){if(e<0||e>=this.children.length)throw Error(`Invalid index`);if(this.splitview.isViewVisible(e)===t)return;let n=this.splitview.contentSize===0;this.splitview.setViewVisible(e,t),this.invalidateCachedSizes();let r=this.splitview.contentSize===0;(t&&n||!t&&r)&&this._onDidVisibilityChange.fire({visible:t})}moveChild(e,t){if(e===t)return;if(e<0||e>=this.children.length)throw Error(`Invalid from index`);e<t&&t--,this.splitview.moveView(e,t);let n=this._removeChild(e);this._addChild(n,t)}getChildSize(e){if(e<0||e>=this.children.length)throw Error(`Invalid index`);return this.splitview.getViewSize(e)}resizeChild(e,t){if(e<0||e>=this.children.length)throw Error(`Invalid index`);this.splitview.resizeView(e,t)}layout(e,t){this._size=t,this._orthogonalSize=e,this.splitview.layout(t,e)}addChild(e,t,n,r){if(n<0||n>this.children.length)throw Error(`Invalid index`);this.splitview.addView(e,t,n,r),this._addChild(e,n)}getChildCachedVisibleSize(e){if(e<0||e>=this.children.length)throw Error(`Invalid index`);return this.splitview.getViewCachedVisibleSize(e)}removeChild(e,t){if(e<0||e>=this.children.length)throw Error(`Invalid index`);return this.splitview.removeView(e,t),this._removeChild(e)}_addChild(e,t){this.children.splice(t,0,e),this.setupChildrenEvents()}_removeChild(e){let[t]=this.children.splice(e,1);return this.setupChildrenEvents(),t}setupChildrenEvents(){this.invalidateCachedSizes(),this._childrenDisposable.dispose(),this._childrenDisposable=new Q(Ke.any(...this.children.map(e=>e.onDidChange))(e=>{this.invalidateCachedSizes(),this._onDidChange.fire({size:e.orthogonalSize})}),...this.children.map((t,n)=>t instanceof e?t.onDidVisibilityChange(({visible:e})=>{this.setChildVisible(n,e)}):We.NONE))}dispose(){this._childrenDisposable.dispose(),this.splitview.dispose(),this.children.forEach(e=>e.dispose()),super.dispose()}};function Vt(e,t){if(e instanceof zt)return e;if(e instanceof Bt)return Vt(e.children[t?e.children.length-1:0],t);throw Error(`invalid node`)}function Ht(e,t,n){if(e instanceof Bt){let r=new Bt(e.orientation,e.proportionalLayout,e.styles,t,n,e.disabled,e.margin);for(let t=e.children.length-1;t>=0;t--){let n=e.children[t];r.addChild(Ht(n,n.size,n.orthogonalSize),n.size,0,!0)}return r}return new zt(e.view,e.orientation,n)}function Ut(e,t,n){if(e instanceof Bt){let r=new Bt(Yt(e.orientation),e.proportionalLayout,e.styles,t,n,e.disabled,e.margin),i=0;for(let a=e.children.length-1;a>=0;a--){let o=e.children[a],s=o instanceof Bt?o.orthogonalSize:o.size,c=e.size===0?0:Math.round(t*s/e.size);i+=c,a===0&&(c+=t-i),r.addChild(Ut(o,n,c),c,0,!0)}return r}return new zt(e.view,Yt(e.orientation),n)}function Wt(e){let t=e.parentElement;if(!t)throw Error(`Invalid grid element`);let n=t.firstElementChild,r=0;for(;n!==e&&n!==t.lastElementChild&&n;)n=n.nextElementSibling,r++;return r}function Gt(e){let t=e.parentElement;if(!t)throw Error(`Invalid grid element`);if(/\bdv-grid-view\b/.test(t.className))return[];let n=Wt(t),r=t.parentElement.parentElement.parentElement;return[...Gt(r),n]}function Kt(e,t,n){if(Jt(e,t)===qt(n)){let[e,r]=Tt(t),i=r;return(n===`right`||n===`bottom`)&&(i+=1),[...e,i]}{let e=+(n===`right`||n===`bottom`);return[...t,e]}}function qt(e){return e===`top`||e===`bottom`?`VERTICAL`:`HORIZONTAL`}function Jt(e,t){return t.length%2==0?Yt(e):e}var Yt=e=>e===`HORIZONTAL`?`VERTICAL`:`HORIZONTAL`;function Xt(e){return!!e.children}var Zt=(e,t)=>{let n=t===`VERTICAL`?e.box.width:e.box.height;if(!Xt(e))return typeof e.cachedVisibleSize==`number`?{type:`leaf`,data:e.view.toJSON(),size:e.cachedVisibleSize,visible:!1}:{type:`leaf`,data:e.view.toJSON(),size:n};let r=e.children.map(e=>Zt(e,Yt(t)));return typeof e.cachedVisibleSize==`number`?{type:`branch`,data:r,size:e.cachedVisibleSize,visible:!1}:{type:`branch`,data:r,size:n}},Qt=class{get length(){return this._root?this._root.children.length:0}get orientation(){return this.root.orientation}set orientation(e){if(this.root.orientation===e)return;let{size:t,orthogonalSize:n}=this.root;this.root=Ut(this.root,n,t),this.root.layout(t,n)}get width(){return this.root.width}get height(){return this.root.height}get minimumWidth(){return this.root.minimumWidth}get minimumHeight(){return this.root.minimumHeight}get maximumWidth(){return this.root.maximumWidth}get maximumHeight(){return this.root.maximumHeight}get locked(){return this._locked}set locked(e){this._locked=e;let t=[this.root];for(;t.length>0;){let n=t.pop();n instanceof Bt&&(n.disabled=e,t.push(...n.children))}}get margin(){return this._margin}set margin(e){this._margin=e,this.root.margin=e}maximizedView(){return this._maximizedNode?.leaf.view}hasMaximizedView(){return this._maximizedNode!==void 0}maximizeView(e){let t=Gt(e.element),[n,r]=this.getNode(t);if(!(r instanceof zt)||this._maximizedNode?.leaf===r)return;this.hasMaximizedView()&&this.exitMaximizedView(),Zt(this.getView(),this.orientation);let i=[];function a(e,t){for(let n=0;n<e.children.length;n++){let r=e.children[n];r instanceof zt?r!==t&&(e.isChildVisible(n)?e.setChildVisible(n,!1):i.push(r)):a(r,t)}}a(this.root,r),this._maximizedNode={leaf:r,hiddenOnMaximize:i},this._onDidMaximizedNodeChange.fire({view:r.view,isMaximized:!0})}exitMaximizedView(){if(!this._maximizedNode)return;let e=this._maximizedNode.hiddenOnMaximize;function t(n){for(let r=n.children.length-1;r>=0;r--){let i=n.children[r];i instanceof zt?e.includes(i)||n.setChildVisible(r,!0):t(i)}}t(this.root);let n=this._maximizedNode.leaf;this._maximizedNode=void 0,this._onDidMaximizedNodeChange.fire({view:n.view,isMaximized:!1})}serialize(){let e=this.maximizedView(),t;e&&(t=Gt(e.element));let n=this._onDidMaximizedNodeChange.pause();try{this.hasMaximizedView()&&this.exitMaximizedView();let n={root:Zt(this.getView(),this.orientation),width:this.width,height:this.height,orientation:this.orientation};return t&&(n.maximizedNode={location:t}),e&&this.maximizeView(e),n}finally{n.dispose()}}dispose(){this.disposable.dispose(),this._onDidChange.dispose(),this._onDidMaximizedNodeChange.dispose(),this._onDidViewVisibilityChange.dispose(),this.root.dispose(),this._maximizedNode=void 0,this.element.remove()}clear(){let e=this.root.orientation;this.root=new Bt(e,this.proportionalLayout,this.styles,this.root.size,this.root.orthogonalSize,this.locked,this.margin)}deserialize(e,t){let n=e.orientation,r=n===`VERTICAL`?e.height:e.width;if(this._deserialize(e.root,n,t,r),this.layout(e.width,e.height),e.maximizedNode){let t=e.maximizedNode.location,[n,r]=this.getNode(t);if(!(r instanceof zt))return;this.maximizeView(r.view)}}_deserialize(e,t,n,r){this.root=this._deserializeNode(e,t,n,r)}_deserializeNode(e,t,n,r){let i;if(e.type===`branch`){let a=e.data.map(r=>({node:this._deserializeNode(r,Yt(t),n,e.size),visible:r.visible}));i=new Bt(t,this.proportionalLayout,this.styles,e.size,r,this.locked,this.margin,a)}else{let o=n.fromJSON(e);if(typeof e.visible==`boolean`){var a;(a=o.setVisible)==null||a.call(o,e.visible)}i=new zt(o,t,r,e.size)}return i}get root(){return this._root}set root(e){let t=this._root;t&&(t.dispose(),this._maximizedNode=void 0,t.element.remove()),this._root=e,this.element.appendChild(this._root.element),this.disposable.value=this._root.onDidChange(e=>{this._onDidChange.fire(e)})}normalize(){if(!this._root||this._root.children.length!==1)return;let e=this.root,t=e.children[0];if(t instanceof zt)return;e.element.remove();let n=e.removeChild(0);e.dispose(),n.dispose(),this._root=Ht(t,t.size,t.orthogonalSize),this.element.appendChild(this._root.element),this.disposable.value=this._root.onDidChange(e=>{this._onDidChange.fire(e)})}insertOrthogonalSplitviewAtRoot(){if(!this._root)return;let e=this.root;if(e.element.remove(),this._root=new Bt(Yt(e.orientation),this.proportionalLayout,this.styles,this.root.orthogonalSize,this.root.size,this.locked,this.margin),e.children.length!==0){if(e.children.length===1){let t=e.children[0];e.removeChild(0).dispose(),e.dispose(),this._root.addChild(Ut(t,t.orthogonalSize,t.size),Lt.Distribute,0)}else this._root.addChild(e,Lt.Distribute,0)}this.element.appendChild(this._root.element),this.disposable.value=this._root.onDidChange(e=>{this._onDidChange.fire(e)})}next(e){return this.progmaticSelect(e)}previous(e){return this.progmaticSelect(e,!0)}getView(e){let t=e?this.getNode(e)[1]:this.root;return this._getViews(t,this.orientation)}_getViews(e,t,n){let r={height:e.height,width:e.width};if(e instanceof zt)return{box:r,view:e.view,cachedVisibleSize:n};let i=[];for(let n=0;n<e.children.length;n++){let r=e.children[n],a=e.getChildCachedVisibleSize(n);i.push(this._getViews(r,Yt(t),a))}return{box:r,children:i,cachedVisibleSize:n}}progmaticSelect(e,t=!1){let[n,r]=this.getNode(e);if(!(r instanceof zt))throw TypeError(`invalid location`);for(let r=n.length-1;r>-1;r--){let i=n[r],a=e[r]||0;if(t?a-1>-1:a+1<i.children.length)return Vt(i.children[t?a-1:a+1],t)}return Vt(this.root,t)}constructor(e,t,n,r,i){this.proportionalLayout=e,this.styles=t,this._locked=!1,this._margin=0,this._maximizedNode=void 0,this.disposable=new Ge,this._onDidChange=new $,this.onDidChange=this._onDidChange.event,this._onDidViewVisibilityChange=new $,this.onDidViewVisibilityChange=this._onDidViewVisibilityChange.event,this._onDidMaximizedNodeChange=new $,this.onDidMaximizedNodeChange=this._onDidMaximizedNodeChange.event,this.element=document.createElement(`div`),this.element.className=`dv-grid-view`,this._locked=r??!1,this._margin=i??0,this.root=new Bt(n,e,t,0,0,this.locked,this.margin)}isViewVisible(e){let[t,n]=Tt(e),[,r]=this.getNode(t);if(!(r instanceof Bt))throw TypeError(`Invalid from location`);return r.isChildVisible(n)}setViewVisible(e,t){this.hasMaximizedView()&&this.exitMaximizedView();let[n,r]=Tt(e),[,i]=this.getNode(n);if(!(i instanceof Bt))throw TypeError(`Invalid from location`);this._onDidViewVisibilityChange.fire(),i.setChildVisible(r,t)}moveView(e,t,n){this.hasMaximizedView()&&this.exitMaximizedView();let[,r]=this.getNode(e);if(!(r instanceof Bt))throw TypeError(`Invalid location`);r.moveChild(t,n)}addView(e,t,n){this.hasMaximizedView()&&this.exitMaximizedView();let[r,i]=Tt(n),[a,o]=this.getNode(r);if(o instanceof Bt){let n=new zt(e,Yt(o.orientation),o.orthogonalSize);o.addChild(n,t,i)}else{let[n,...s]=[...a].reverse(),[c,...l]=[...r].reverse(),u=0,d=n.getChildCachedVisibleSize(c);typeof d==`number`&&(u=Lt.Invisible(d)),n.removeChild(c).dispose();let f=new Bt(o.orientation,this.proportionalLayout,this.styles,o.size,o.orthogonalSize,this.locked,this.margin);n.addChild(f,o.size,c);let p=new zt(o.view,n.orientation,o.size);f.addChild(p,u,0),typeof t!=`number`&&t.type===`split`&&(t={type:`split`,index:0});let m=new zt(e,n.orientation,o.size);f.addChild(m,t,i)}}remove(e,t){let n=Gt(e.element);return this.removeView(n,t)}removeView(e,t){this.hasMaximizedView()&&this.exitMaximizedView();let[n,r]=Tt(e),[i,a]=this.getNode(n);if(!(a instanceof Bt))throw TypeError(`Invalid location`);let o=a.children[r];if(!(o instanceof zt))throw TypeError(`Invalid location`);if(a.removeChild(r,t),o.dispose(),a.children.length!==1)return o.view;let s=a.children[0];if(i.length===0)return s instanceof zt?o.view:(a.removeChild(0,t),this.root=s,o.view);let[c,...l]=[...i].reverse(),[u,...d]=[...n].reverse(),f=a.isChildVisible(0);a.removeChild(0,t);let p=c.children.map((e,t)=>c.getChildSize(t));if(c.removeChild(u,t).dispose(),s instanceof Bt){p.splice(u,1,...s.children.map(e=>e.size));for(let e=0;e<s.children.length;e++){let t=s.children[e];c.addChild(t,t.size,u+e)}for(;s.children.length>0;)s.removeChild(0)}else{let e=new zt(s.view,Yt(s.orientation),s.size),t=f?s.orthogonalSize:Lt.Invisible(s.orthogonalSize);c.addChild(e,t,u)}s.dispose();for(let e=0;e<p.length;e++)c.resizeChild(e,p[e]);return o.view}layout(e,t){let[n,r]=this.root.orientation===`HORIZONTAL`?[t,e]:[e,t];this.root.layout(n,r)}getNode(e,t=this.root,n=[]){if(e.length===0)return[n,t];if(!(t instanceof Bt))throw TypeError(`Invalid location`);let[r,...i]=e;if(r<0||r>=t.children.length)throw Error(`Invalid location`);let a=t.children[r];return n.push(t),this.getNode(i,a,n)}},$t=class extends Q{get element(){return this._element}get disableResizing(){return this._disableResizing}set disableResizing(e){this._disableResizing=e}constructor(e,t=!1){super(),this._lastWidth=-1,this._lastHeight=-1,this._disableResizing=t,this._element=e,this.addDisposables(tt(this._element,e=>{if(this.isDisposed||this.disableResizing||!this._element.offsetParent||!pt(this._element))return;let t=Math.round(e.contentRect.width),n=Math.round(e.contentRect.height);(t!==this._lastWidth||n!==this._lastHeight)&&(this._lastWidth=t,this._lastHeight=n,this.layout(t,n))}))}},en=Mt();function tn(e){switch(e){case`left`:return`left`;case`right`:return`right`;case`above`:return`top`;case`below`:return`bottom`;default:return`center`}}var nn=class extends $t{get id(){return this._id}get size(){return this._groups.size}get groups(){return Array.from(this._groups.values()).map(e=>e.value)}get width(){return this.gridview.width}get height(){return this.gridview.height}get minimumHeight(){return this.gridview.minimumHeight}get maximumHeight(){return this.gridview.maximumHeight}get minimumWidth(){return this.gridview.minimumWidth}get maximumWidth(){return this.gridview.maximumWidth}get activeGroup(){return this._activeGroup}get locked(){return this.gridview.locked}set locked(e){this.gridview.locked=e}constructor(e,t){super(document.createElement(`div`),t.disableAutoResizing),this._id=en.next(),this._groups=new Map,this._onDidRemove=new $,this.onDidRemove=this._onDidRemove.event,this._onDidAdd=new $,this.onDidAdd=this._onDidAdd.event,this._onDidMaximizedChange=new $,this.onDidMaximizedChange=this._onDidMaximizedChange.event,this._onDidActiveChange=new $,this.onDidActiveChange=this._onDidActiveChange.event,this._bufferOnDidLayoutChange=new $e,this.onDidLayoutChange=this._bufferOnDidLayoutChange.onEvent,this._onDidViewVisibilityChangeMicroTaskQueue=new $e,this.onDidViewVisibilityChangeMicroTaskQueue=this._onDidViewVisibilityChangeMicroTaskQueue.onEvent,this.element.style.height=`100%`,this.element.style.width=`100%`,this._classNames=new vt(this.element),this._classNames.setClassNames(t.className??``),e.appendChild(this.element),this.gridview=new Qt(!!t.proportionalLayout,t.styles,t.orientation,t.locked,t.margin),this.gridview.locked=!!t.locked,this.element.appendChild(this.gridview.element),this.layout(0,0,!0),this.addDisposables(this.gridview.onDidMaximizedNodeChange(e=>{this._onDidMaximizedChange.fire({panel:e.view,isMaximized:e.isMaximized})}),this.gridview.onDidViewVisibilityChange(()=>this._onDidViewVisibilityChangeMicroTaskQueue.fire()),this.onDidViewVisibilityChangeMicroTaskQueue(()=>{this.forceRelayout()}),We.from(()=>{this.element.remove()}),this.gridview.onDidChange(()=>{this._bufferOnDidLayoutChange.fire()}),Ke.any(this.onDidAdd,this.onDidRemove,this.onDidActiveChange)(()=>{this._bufferOnDidLayoutChange.fire()}),this._onDidMaximizedChange,this._onDidViewVisibilityChangeMicroTaskQueue,this._bufferOnDidLayoutChange)}setVisible(e,t){this.gridview.setViewVisible(Gt(e.element),t),this._bufferOnDidLayoutChange.fire()}isVisible(e){return this.gridview.isViewVisible(Gt(e.element))}updateOptions(e){e.proportionalLayout,e.orientation&&(this.gridview.orientation=e.orientation),`styles`in e,`disableAutoResizing`in e&&(this.disableResizing=e.disableAutoResizing??!1),`locked`in e&&(this.locked=e.locked??!1),`margin`in e&&(this.gridview.margin=e.margin??0),`className`in e&&this._classNames.setClassNames(e.className??``)}maximizeGroup(e){this.gridview.maximizeView(e),this.doSetGroupActive(e)}isMaximizedGroup(e){return this.gridview.maximizedView()===e}exitMaximizedGroup(){this.gridview.exitMaximizedView()}hasMaximizedGroup(){return this.gridview.hasMaximizedView()}doAddGroup(e,t=[0],n,r=this.gridview){r.addView(e,n??Lt.Distribute,t),this._onDidAdd.fire(e)}doRemoveGroup(e,t){if(!this._groups.has(e.id))throw Error(`invalid operation`);let n=this._groups.get(e.id),r=this.gridview.remove(e,Lt.Distribute);if(n&&!t?.skipDispose&&(n.disposable.dispose(),n.value.dispose(),this._groups.delete(e.id),this._onDidRemove.fire(e)),!t?.skipActive&&this._activeGroup===e){let e=Array.from(this._groups.values());this.doSetGroupActive(e.length>0?e[0].value:void 0)}return r}getPanel(e){return this._groups.get(e)?.value}doSetGroupActive(e){this._activeGroup!==e&&(this._activeGroup&&this._activeGroup.setActive(!1),e&&e.setActive(!0),this._activeGroup=e,this._onDidActiveChange.fire(e))}removeGroup(e){this.doRemoveGroup(e)}activateNext(e){if(e??={},!e.group){if(!this.activeGroup)return;e.group=this.activeGroup}let t=Gt(e.group.element),n=this.gridview.next(t)?.view;this.doSetGroupActive(n)}activatePrevious(e){if(e??={},!e.group){if(!this.activeGroup)return;e.group=this.activeGroup}let t=Gt(e.group.element),n=this.gridview.previous(t)?.view;this.doSetGroupActive(n)}forceRelayout(){this.layout(this.width,this.height,!0)}layout(e,t,n){(n||e!==this.width||t!==this.height)&&(this.gridview.element.style.height=`${t}px`,this.gridview.element.style.width=`${e}px`,this.gridview.layout(e,t))}dispose(){this._onDidActiveChange.dispose(),this._onDidAdd.dispose(),this._onDidRemove.dispose();for(let e of this.groups)e.dispose();this.gridview.dispose(),super.dispose()}};function rn(e){"@babel/helpers - typeof";return rn=typeof Symbol==`function`&&typeof Symbol.iterator==`symbol`?function(e){return typeof e}:function(e){return e&&typeof Symbol==`function`&&e.constructor===Symbol&&e!==Symbol.prototype?`symbol`:typeof e},rn(e)}function an(e,t){if(rn(e)!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(rn(r)!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function on(e){var t=an(e,`string`);return rn(t)==`symbol`?t:t+``}function sn(e,t,n){return(t=on(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function cn(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function ln(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]==null?{}:arguments[t];t%2?cn(Object(n),!0).forEach(function(t){sn(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):cn(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function un(e,t){return e===`center`?`Tab into ${t}`:`Split ${e} of ${t}`}function dn(e,t){return e===`center`?`docked into ${t}`:`split ${e} of ${t}`}var fn={panelOpened:e=>`${e} opened`,panelClosed:e=>`${e} closed`,groupMaximized:e=>`${e} maximized`,groupRestored:e=>`${e} restored`,groupFloated:e=>`${e} floated`,groupDocked:e=>`${e} docked`,groupPoppedOut:e=>`${e} opened in a new window`,closeTab:e=>`Close ${e}`,closeTabPlain:()=>`Close`,movePickTarget:(e,t,n,r)=>`Moving ${e}. Target ${t}, ${n} of ${r}. Enter to choose where, Escape to cancel.`,movePickEdge:(e,t)=>`${un(e,t)}. Arrows to change, Enter to confirm, Escape to go back.`,moveCommitted:(e,t,n)=>`${e} ${dn(n,t)}.`,moveCancelled:()=>`Move cancelled.`,moveNotAllowed:()=>`That move is not allowed.`,moveFloated:e=>`${e} floated.`};function pn(e){return e?ln(ln({},fn),e):fn}var mn=class{get id(){return this.component.id}get width(){return this.component.width}get height(){return this.component.height}get minimumHeight(){return this.component.minimumHeight}get maximumHeight(){return this.component.maximumHeight}get minimumWidth(){return this.component.minimumWidth}get maximumWidth(){return this.component.maximumWidth}get size(){return this.component.size}get tabGroupColors(){return this.component.tabGroupColorPalette.entries()}get totalPanels(){return this.component.totalPanels}get onDidActiveGroupChange(){return this.component.onDidActiveGroupChange}get onDidAddGroup(){return this.component.onDidAddGroup}get onDidRemoveGroup(){return this.component.onDidRemoveGroup}get onDidActivePanelChange(){return this.component.onDidActivePanelChange}get onDidPanelPinnedChange(){return this.component.onDidPanelPinnedChange}get onDidAddPanel(){return this.component.onDidAddPanel}get onDidRemovePanel(){return this.component.onDidRemovePanel}get onDidMovePanel(){return this.component.onDidMovePanel}get onDidLayoutFromJSON(){return this.component.onDidLayoutFromJSON}get onDidLayoutChange(){return this.component.onDidLayoutChange}get onDidDrop(){return this.component.onDidDrop}get onWillDrop(){return this.component.onWillDrop}get onWillMutateLayout(){return this.component.onWillMutateLayout}get onDidMutateLayout(){return this.component.onDidMutateLayout}get onWillShowOverlay(){return this.component.onWillShowOverlay}get onWillDragGroup(){return this.component.onWillDragGroup}get onWillDragPanel(){return this.component.onWillDragPanel}get onUnhandledDragOver(){return this.component.onUnhandledDragOver}get onDidPopoutGroupSizeChange(){return this.component.onDidPopoutGroupSizeChange}get onDidPopoutGroupPositionChange(){return this.component.onDidPopoutGroupPositionChange}get onDidAddPopoutGroup(){return this.component.onDidAddPopoutGroup}get onDidRemovePopoutGroup(){return this.component.onDidRemovePopoutGroup}get onDidOpenPopoutWindowFail(){return this.component.onDidOpenPopoutWindowFail}getPopouts(){return this.component.getPopouts()}get onDidCreateTabGroup(){return this.component.onDidCreateTabGroup}get onDidDestroyTabGroup(){return this.component.onDidDestroyTabGroup}get onDidAddPanelToTabGroup(){return this.component.onDidAddPanelToTabGroup}get onDidRemovePanelFromTabGroup(){return this.component.onDidRemovePanelFromTabGroup}get onDidTabGroupChange(){return this.component.onDidTabGroupChange}get onDidTabGroupCollapsedChange(){return this.component.onDidTabGroupCollapsedChange}get panels(){return this.component.panels}get groups(){return this.component.groups}adjacentGroupInDirection(e,t){return this.component.adjacentGroupInDirection(e,t)}get activePanel(){return this.component.activePanel}get activeGroup(){return this.component.activeGroup}get messages(){return pn(this.component.options.messages)}constructor(e){this.component=e}focus(){this.component.focus()}getPanel(e){return this.component.getGroupPanel(e)}layout(e,t,n=!1){this.component.layout(e,t,n)}addPanel(e){return this.component.withOrigin(`api`,()=>this.component.addPanel(e))}removePanel(e){this.component.withOrigin(`api`,()=>this.component.removePanel(e))}addGroup(e){return this.component.withOrigin(`api`,()=>this.component.addGroup(e))}closeAllGroups(){return this.component.withOrigin(`api`,()=>this.component.closeAllGroups())}removeGroup(e){this.component.withOrigin(`api`,()=>this.component.removeGroup(e))}getGroup(e){return this.component.getPanel(e)}addFloatingGroup(e,t){return this.component.withOrigin(`api`,()=>this.component.addFloatingGroup(e,t))}fromJSON(e,t){this.component.withOrigin(`api`,()=>this.component.fromJSON(e,t))}toJSON(){return this.component.toJSON()}clear(){this.component.withOrigin(`api`,()=>this.component.clear())}undo(){this.component.undo()}redo(){this.component.redo()}get canUndo(){return this.component.canUndo}get canRedo(){return this.component.canRedo}clearHistory(){this.component.clearHistory()}get onDidChangeHistory(){return this.component.onDidChangeHistory}get smartGuidesEnabled(){return this.component.smartGuidesEnabled}setSmartGuidesEnabled(e){this.component.setSmartGuidesEnabled(e)}updateSmartGuidesOptions(e){this.component.updateSmartGuidesOptions(e)}get onDidSnapFloat(){return this.component.onDidSnapFloat}get onDidSnapTogether(){return this.component.onDidSnapTogether}get popoutRestorationPromise(){return this.component.popoutRestorationPromise}activateNext(e){this.component.activateNext(e)}activatePrevious(e){this.component.activatePrevious(e)}moveToNext(e){this.activateNext(e)}moveToPrevious(e){this.activatePrevious(e)}maximizeGroup(e){this.component.withOrigin(`api`,()=>this.component.maximizeGroup(e.group))}hasMaximizedGroup(){return this.component.hasMaximizedGroup()}exitMaximizedGroup(){this.component.withOrigin(`api`,()=>this.component.exitMaximizedGroup())}get onDidMaximizedGroupChange(){return this.component.onDidMaximizedGroupChange}addPopoutGroup(e,t){return this.component.withOrigin(`api`,()=>this.component.addPopoutGroup(e,t))}addEdgeGroup(e,t){return this.component.addEdgeGroup(e,t)}revealEdgeGroupWithData(e,t,n){this.component.revealEdgeGroupWithData(e,t,n)}getEdgeGroup(e){return this.component.getEdgeGroup(e)}setEdgeGroupVisible(e,t){this.component.setEdgeGroupVisible(e,t)}isEdgeGroupVisible(e){return this.component.isEdgeGroupVisible(e)}removeEdgeGroup(e){this.component.removeEdgeGroup(e)}pinEdgeGroup(e){this.component.pinEdgeGroup(e)}autoHideEdgeGroup(e){this.component.autoHideEdgeGroup(e)}peekEdgeGroup(e,t){this.component.peekEdgeGroup(e,t)}updateOptions(e){this.component.updateOptions(e)}_getGroupModel(e){let t=this.component.getPanel(e);if(!t)throw Error(`dockview: group '${e}' not found`);return t.model}createTabGroup(e){let t=this._getGroupModel(e.groupId);return this.component.withOrigin(`api`,()=>t.createTabGroup({label:e.label,color:e.color,componentParams:e.componentParams}))}dissolveTabGroup(e){let t=this._getGroupModel(e.groupId);this.component.withOrigin(`api`,()=>t.dissolveTabGroup(e.tabGroupId))}addPanelToTabGroup(e){let t=this._getGroupModel(e.groupId);this.component.withOrigin(`api`,()=>t.addPanelToTabGroup(e.tabGroupId,e.panelId,e.index))}removePanelFromTabGroup(e){let t=this._getGroupModel(e.groupId);this.component.withOrigin(`api`,()=>t.removePanelFromTabGroup(e.panelId))}getTabGroups(e){return this._getGroupModel(e.groupId).getTabGroups()}getTabGroupForPanel(e){return this._getGroupModel(e.groupId).getTabGroupForPanel(e.panelId)}moveTabGroup(e){this._getGroupModel(e.groupId).moveTabGroup(e.tabGroupId,e.index)}dispose(){this.component.dispose()}},hn=class extends Q{constructor(e,t){super(),this.element=e,this.callbacks=t,this.target=null,this.registerListeners()}onDragEnter(e){this.target=e.target,this.callbacks.onDragEnter(e)}onDragOver(e){e.preventDefault(),this.callbacks.onDragOver&&this.callbacks.onDragOver(e)}onDragLeave(e){this.target===e.target&&(this.target=null,this.callbacks.onDragLeave(e))}onDragEnd(e){this.target=null,this.callbacks.onDragEnd(e)}onDrop(e){this.callbacks.onDrop(e)}registerListeners(){this.addDisposables(Qe(this.element,`dragenter`,e=>{this.onDragEnter(e)},!0)),this.addDisposables(Qe(this.element,`dragover`,e=>{this.onDragOver(e)},!0)),this.addDisposables(Qe(this.element,`dragleave`,e=>{this.onDragLeave(e)})),this.addDisposables(Qe(this.element,`dragend`,e=>{this.onDragEnd(e)})),this.addDisposables(Qe(this.element,`drop`,e=>{this.onDrop(e)}))}},gn={value:50,type:`percentage`},_n=100,vn=100;function yn(){let e=document.createElement(`div`);e.className=`dv-drop-target-dropzone`;let t=document.createElement(`div`);return t.className=`dv-drop-target-selection`,e.appendChild(t),{dropzone:e,selection:t}}function bn(e,t,n,r){let i=r?.smallWidthBoundary??_n,a=r?.smallHeightBoundary??vn,o=t<i,s=n<a,c=e===`left`,l=e===`right`,u=e===`top`,d=e===`bottom`,f=!o&&l,p=!o&&c,m=!s&&u,h=!s&&d,g=1,_=r?.size??gn;return _.type===`percentage`?g=jt(_.value,0,100)/100:((f||p)&&(g=jt(0,_.value,t)/t),(m||h)&&(g=jt(0,_.value,n)/n)),{isSmallX:o,isSmallY:s,isLeft:c,isRight:l,isTop:u,isBottom:d,rightClass:f,leftClass:p,topClass:m,bottomClass:h,size:g}}function xn(e,t,n,r,i){let a=bn(t,n,r,i),{rightClass:o,leftClass:s,topClass:c,bottomClass:l,size:u}=a,d={top:`0px`,left:`0px`,width:`100%`,height:`100%`};o?(d.left=`${100*(1-u)}%`,d.width=`${100*u}%`):s?d.width=`${100*u}%`:c?d.height=`${100*u}%`:l&&(d.top=`${100*(1-u)}%`,d.height=`${100*u}%`),a.isSmallX&&a.isLeft&&(d.width=`4px`),a.isSmallX&&a.isRight&&(d.left=`${n-4}px`,d.width=`4px`),a.isSmallY&&a.isTop&&(d.height=`4px`),a.isSmallY&&a.isBottom&&(d.top=`${r-4}px`,d.height=`4px`),e.style.top=d.top,e.style.left=d.left,e.style.width=d.width,e.style.height=d.height,e.style.visibility=`visible`,(!e.style.transform||e.style.transform===``)&&(e.style.transform=`translate3d(0, 0, 0)`);let f=a.isSmallX&&(a.isLeft||a.isRight)||a.isSmallY&&(a.isTop||a.isBottom);it(e,`dv-drop-target-small-vertical`,a.isSmallY),it(e,`dv-drop-target-small-horizontal`,a.isSmallX),it(e,`dv-drop-target-selection-line`,f),it(e,`dv-drop-target-left`,a.isLeft),it(e,`dv-drop-target-right`,a.isRight),it(e,`dv-drop-target-top`,a.isTop),it(e,`dv-drop-target-bottom`,a.isBottom),it(e,`dv-drop-target-center`,t===`center`)}function Sn(e,t){let n=`${Math.round(t.top)}px`,r=`${Math.round(t.left)}px`,i=`${Math.round(t.width)}px`,a=`${Math.round(t.height)}px`;return e.style.top!==n||e.style.left!==r||e.style.width!==i||e.style.height!==a}function Cn(e,t){e.style.top=`${Math.round(t.top)}px`,e.style.left=`${Math.round(t.left)}px`,e.style.width=`${Math.round(t.width)}px`,e.style.height=`${Math.round(t.height)}px`,e.style.visibility=`visible`,(!e.style.transform||e.style.transform===``)&&(e.style.transform=`translate3d(0, 0, 0)`)}function wn(e){let t=bn(e.quadrant,e.width,e.height,e.overlayModel),{rightClass:n,leftClass:r,topClass:i,bottomClass:a,size:o}=t,s=e.outlineElement.getBoundingClientRect(),c=e.targetModel.getElements(void 0,e.outlineElement),l=c.root,u=c.overlay,d=l.getBoundingClientRect(),f=s.top-d.top,p=s.left-d.left,m={top:f,left:p,width:e.width,height:e.height};return n?(m.left=p+e.width*(1-o),m.width=e.width*o):r?m.width=e.width*o:i?m.height=e.height*o:a&&(m.top=f+e.height*(1-o),m.height=e.height*o),t.isSmallX&&t.isLeft&&(m.width=4),t.isSmallX&&t.isRight&&(m.left=p+e.width-4,m.width=4),t.isSmallY&&t.isTop&&(m.height=4),t.isSmallY&&t.isBottom&&(m.top=f+e.height-4,m.height=4),Sn(u,m)?(Cn(u,m),u.className=`dv-drop-target-anchor${e.className?` ${e.className}`:``}`,it(u,`dv-drop-target-left`,t.isLeft),it(u,`dv-drop-target-right`,t.isRight),it(u,`dv-drop-target-top`,t.isTop),it(u,`dv-drop-target-bottom`,t.isBottom),it(u,`dv-drop-target-anchor-line`,t.isSmallX&&(t.isLeft||t.isRight)||t.isSmallY&&(t.isTop||t.isBottom)),it(u,`dv-drop-target-center`,e.quadrant===`center`),c.changed&&(it(u,`dv-drop-target-anchor-container-changed`,!0),setTimeout(()=>{it(u,`dv-drop-target-anchor-container-changed`,!1)},10)),{boundsChanged:!0,targetChanged:c.changed}):{boundsChanged:!1,targetChanged:c.changed}}var Tn=class extends qe{get nativeEvent(){return this.options.nativeEvent}get position(){return this.options.position}get edge(){return!!this.options.edge}get edgeGroup(){return!!this.options.edgeGroup}constructor(e){super(),this.options=e}};function En(e){switch(e){case`above`:return`top`;case`below`:return`bottom`;case`left`:return`left`;case`right`:return`right`;case`within`:return`center`;default:throw Error(`invalid direction '${e}'`)}}function Dn(e){switch(e){case`top`:return`above`;case`bottom`:return`below`;case`left`:return`left`;case`right`:return`right`;case`center`:return`within`;default:throw Error(`invalid position '${e}'`)}}var On={value:20,type:`percentage`},kn=class e extends Q{get disabled(){return this._disabled}set disabled(e){this._disabled=e}get state(){return this._state}constructor(t,n){super(),this.element=t,this.options=n,this._edge=!1,this._onDrop=new $,this.onDrop=this._onDrop.event,this._onWillShowOverlay=new $,this.onWillShowOverlay=this._onWillShowOverlay.event,this._disabled=!1,this._acceptedTargetZonesSet=new Set(this.options.acceptedTargetZones),this.dnd=new hn(this.element,{onDragEnter:()=>{var e,t;(e=(t=this.options).getOverrideTarget)==null||(e=e.call(t))==null||e.getElements()},onDragOver:t=>{var n,r;if(this._disabled){this.clearOwnOverlay();return}e.ACTUAL_TARGET=this;let i=(n=this.options).getOverrideTarget?.call(n);if(this._acceptedTargetZonesSet.size===0){this.clearOwnOverlay();return}let a=(r=this.options).getOverlayOutline?.call(r)??this.element,o=a.offsetWidth,s=a.offsetHeight;if(o===0||s===0)return;let c=a.getBoundingClientRect(),l=(t.clientX??0)-c.left,u=(t.clientY??0)-c.top,d=this.resolvePosition(l,u,o,s,t);if(this.isAlreadyUsed(t)){this.removeDropTarget();return}if(d===null){this.clearOwnOverlay();return}let f=d.position;if(!this.options.canDisplayOverlay(t,f)){this.clearOwnOverlay();return}let p=new Tn({nativeEvent:t,position:f,edge:d.edge,edgeGroup:d.edgeGroup});if(this._onWillShowOverlay.fire(p),p.defaultPrevented){this.clearOwnOverlay();return}if(this.markAsUsed(t),d.edge){this.clearOwnOverlay(),this._state=f,this._edge=!0;return}if(this._edge=!1,!i&&!this.targetElement){let e=yn();this.targetElement=e.dropzone,this.overlayElement=e.selection,this._state=`center`,a.classList.add(`dv-drop-target`),a.append(this.targetElement)}this.toggleClasses(f,o,s),this._state=f},onDragLeave:()=>{var e;let t=(e=this.options).getOverrideTarget?.call(e);if(t){var n;this._state=void 0,this._edge=!1,(n=t.scheduleClear)==null||n.call(t);return}this.removeDropTarget()},onDragEnd:t=>{var n;let r=(n=this.options).getOverrideTarget?.call(n);r&&e.ACTUAL_TARGET===this&&this._state&&(t.stopPropagation(),this._onDrop.fire({position:this._state,nativeEvent:t,edge:this._edge})),this.removeDropTarget(),r?.clear()},onDrop:e=>{var t,n;e.preventDefault();let r=this._state,i=this._edge;this.removeDropTarget(),(t=(n=this.options).getOverrideTarget)==null||(t=t.call(n))==null||t.clear(),r&&(e.stopPropagation(),this._onDrop.fire({position:r,nativeEvent:e,edge:i}))}}),this.addDisposables(this._onDrop,this._onWillShowOverlay,this.dnd)}setTargetZones(e){this._acceptedTargetZonesSet=new Set(e)}setOverlayModel(e){this.options.overlayModel=e}dispose(){this.removeDropTarget(),super.dispose()}markAsUsed(t){t[e.USED_EVENT_ID]=!0}isAlreadyUsed(t){let n=t[e.USED_EVENT_ID];return typeof n==`boolean`&&n}toggleClasses(e,t,n){var r;let i=(r=this.options).getOverrideTarget?.call(r);if(i){var a;wn({outlineElement:(a=this.options).getOverlayOutline?.call(a)??this.element,targetModel:i,quadrant:e,width:t,height:n,overlayModel:this.options.overlayModel,className:this.options.className});return}this.overlayElement&&xn(this.overlayElement,e,t,n,this.options.overlayModel)}resolvePosition(e,t,n,r,i){var a;let o=(a=this.options).getPositionResolver?.call(a);if(o){let a=o.resolve({x:e,y:t,width:n,height:r,zones:this._acceptedTargetZonesSet,event:i});return a?{position:a.position,edge:!!a.edge,edgeGroup:!!a.edgeGroup}:null}let s=this.calculateQuadrant(this._acceptedTargetZonesSet,e,t,n,r);return s?{position:s,edge:!1,edgeGroup:!1}:null}calculateQuadrant(e,t,n,r,i){let a=this.options.overlayModel?.activationSize??On;return a.type===`percentage`?An(e,t,n,r,i,a.value):jn(e,t,n,r,i,a.value)}clearOwnOverlay(){let e=this._state!==void 0;if(this.removeDropTarget(),e){var t,n;(t=(n=this.options).getOverrideTarget)==null||(t=t.call(n))==null||t.clear()}}removeDropTarget(){if(this._state=void 0,this._edge=!1,this.targetElement){var e;(e=this.targetElement.parentElement)==null||e.classList.remove(`dv-drop-target`),this.targetElement.remove(),this.targetElement=void 0,this.overlayElement=void 0}}showOverlay(e){var t,n;let r=(t=this.options).getOverrideTarget?.call(t),i=(n=this.options).getOverlayOutline?.call(n)??this.element,a=i.offsetWidth,o=i.offsetHeight;if(!r&&!this.targetElement){let e=yn();this.targetElement=e.dropzone,this.overlayElement=e.selection,i.classList.add(`dv-drop-target`),i.append(this.targetElement)}this.toggleClasses(e,a,o),this._state=e}clearOverlay(){var e,t;this.removeDropTarget(),(e=(t=this.options).getOverrideTarget)==null||(e=e.call(t))==null||e.clear(),this._state=void 0}};kn.USED_EVENT_ID=`__dockview_droptarget_event_is_used__`;function An(e,t,n,r,i,a){let o=100*t/r,s=100*n/i;return e.has(`left`)&&o<a?`left`:e.has(`right`)&&o>100-a?`right`:e.has(`top`)&&s<a?`top`:e.has(`bottom`)&&s>100-a?`bottom`:e.has(`center`)?`center`:null}function jn(e,t,n,r,i,a){return e.has(`left`)&&t<a?`left`:e.has(`right`)&&t>r-a?`right`:e.has(`top`)&&n<a?`top`:e.has(`bottom`)&&n>i-a?`bottom`:e.has(`center`)?`center`:null}function Mn(e,t,n){rt(t,`dv-dragged`),t.style.top=`-9999px`,(n?.ownerDocument??document).body.appendChild(t),e.setDragImage(t,n?.x??0,n?.y??0),setTimeout(()=>{nt(t,`dv-dragged`),t.remove()},0)}var Nn=class e extends Q{static getInstance(){return e._instance??=new e,e._instance}constructor(){super(),this._targets=new Set,this._targetByElement=new Map,this._onDragStart=new $,this.onDragStart=this._onDragStart.event,this._onDragMove=new $,this.onDragMove=this._onDragMove.event,this._onDragEnd=new $,this.onDragEnd=this._onDragEnd.event,this.addDisposables(this._onDragStart,this._onDragMove,this._onDragEnd)}get active(){return this._active}registerTarget(e){return this._targets.add(e),this._targetByElement.set(e.element,e),{dispose:()=>{this._targets.delete(e),this._targetByElement.get(e.element)===e&&this._targetByElement.delete(e.element),this._currentTarget===e&&(this._currentTarget=void 0)}}}beginDrag(e){this._active&&this.cancel();let{pointerEvent:t,source:n}=e,r=e.getData();this._active={pointerId:t.pointerId,startX:t.clientX,startY:t.clientY,source:n},this._lastPointerEvent=t,this._onDragMoveCallback=e.onDragMove,this._onDragEndCallback=e.onDragEnd,this._dataDisposable=r,this._ghost=e.ghost,this._iframeShield=gt(n.ownerDocument??document);let i={clientX:t.clientX,clientY:t.clientY,pointerEvent:t};this._onDragStart.fire(i);let a=n.ownerDocument?.defaultView??globalThis.window;this._moveListener=Qe(a,`pointermove`,e=>{e.pointerId===this._active?.pointerId&&this._handleMove(e)}),this._upListener=Qe(a,`pointerup`,e=>{e.pointerId===this._active?.pointerId&&this._handleEnd(e,!0)}),this._cancelListener=Qe(a,`pointercancel`,e=>{e.pointerId===this._active?.pointerId&&this._handleEnd(e,!1)})}cancel(){var e,t;if(!this._active)return;let n=this._onDragEndCallback,r=this._lastPointerEvent;if((e=this._currentTarget)==null||e.handleDragLeave(),this._teardown(),(t=this._dataDisposable)==null||t.dispose(),this._dataDisposable=void 0,r){let e={clientX:r.clientX,clientY:r.clientY,pointerEvent:r};n?.(e,!1),this._onDragEnd.fire(e)}}_findTargetUnder(e,t){let n=(this._active?.source.ownerDocument??document).elementsFromPoint(e,t);for(let e of n){let t=e;for(;t;){let e=this._targetByElement.get(t);if(e)return e;t=t.parentElement}}}_handleMove(e){var t,n;this._lastPointerEvent=e,(t=this._ghost)==null||t.update(e.clientX,e.clientY);let r={clientX:e.clientX,clientY:e.clientY,pointerEvent:e},i=this._findTargetUnder(e.clientX,e.clientY);if(i!==this._currentTarget){var a;(a=this._currentTarget)==null||a.handleDragLeave(),this._currentTarget=i}i&&i.handleDragOver(r),(n=this._onDragMoveCallback)==null||n.call(this,r),this._onDragMove.fire(r)}_handleEnd(e,t){let n={clientX:e.clientX,clientY:e.clientY,pointerEvent:e};if(t&&this._currentTarget)this._currentTarget.handleDrop(n);else{var r;(r=this._currentTarget)==null||r.handleDragLeave()}let i=this._onDragEndCallback,a=this._dataDisposable;this._teardown(),this._dataDisposable=void 0,setTimeout(()=>a?.dispose(),0),i?.(n,t),this._onDragEnd.fire(n)}_teardown(){var e,t,n,r,i;this._currentTarget=void 0,this._active=void 0,this._lastPointerEvent=void 0,this._onDragMoveCallback=void 0,this._onDragEndCallback=void 0,(e=this._ghost)==null||e.dispose(),this._ghost=void 0,(t=this._iframeShield)==null||t.release(),this._iframeShield=void 0,(n=this._moveListener)==null||n.dispose(),(r=this._upListener)==null||r.dispose(),(i=this._cancelListener)==null||i.dispose(),this._moveListener=void 0,this._upListener=void 0,this._cancelListener=void 0}},Pn={value:20,type:`percentage`},Fn=class extends Q{get disabled(){return this._disabled}set disabled(e){this._disabled=e,e&&this._removeOverlay()}get state(){return this._state}constructor(e,t){super(),this.element=e,this.options=t,this._edge=!1,this._onDrop=new $,this.onDrop=this._onDrop.event,this._onWillShowOverlay=new $,this.onWillShowOverlay=this._onWillShowOverlay.event,this._disabled=!1,this._acceptedTargetZonesSet=new Set(t.acceptedTargetZones);let n={element:this.element,handleDragOver:e=>this._onDragOver(e),handleDragLeave:()=>this._onDragLeave(),handleDrop:e=>this._onDropEvent(e)};this.addDisposables(this._onDrop,this._onWillShowOverlay,Nn.getInstance().registerTarget(n))}setTargetZones(e){this._acceptedTargetZonesSet=new Set(e)}setOverlayModel(e){this.options.overlayModel=e}dispose(){this._removeOverlay(),super.dispose()}_onDragOver(e){var t,n;if(this._disabled){this._clearOwnOverlay();return}let r=(t=this.options).getOverrideTarget?.call(t);if(this._acceptedTargetZonesSet.size===0){this._clearOwnOverlay();return}let i=(n=this.options).getOverlayOutline?.call(n)??this.element,a=i.offsetWidth,o=i.offsetHeight;if(a===0||o===0)return;let s=i.getBoundingClientRect(),c=e.clientX-s.left,l=e.clientY-s.top,u=this._resolvePosition(c,l,a,o,e.pointerEvent);if(u===null){this._clearOwnOverlay();return}let d=u.position;if(!this.options.canDisplayOverlay(e.pointerEvent,d)){this._clearOwnOverlay();return}let f=new Tn({nativeEvent:e.pointerEvent,position:d,edge:u.edge});if(this._onWillShowOverlay.fire(f),f.defaultPrevented){this._clearOwnOverlay();return}if(u.edge){this._clearOwnOverlay(),this._state=d,this._edge=!0;return}if(this._edge=!1,r){wn({outlineElement:i,targetModel:r,quadrant:d,width:a,height:o,overlayModel:this.options.overlayModel,className:this.options.className}),this._state=d;return}if(!this._targetElement){let e=yn();this._targetElement=e.dropzone,this._overlayElement=e.selection,this._state=`center`,this.element.classList.add(`dv-drop-target`),this.element.append(this._targetElement)}this._overlayElement&&xn(this._overlayElement,d,a,o,this.options.overlayModel),this._state=d}_onDragLeave(){var e;let t=(e=this.options).getOverrideTarget?.call(e);if(t){this._state=void 0,t.clear();return}this._removeOverlay()}_onDropEvent(e){var t;let n=this._state,r=this._edge,i=(t=this.options).getOverrideTarget?.call(t);this._removeOverlay(),i?.clear(),n&&this._onDrop.fire({position:n,nativeEvent:e.pointerEvent,edge:r})}_resolvePosition(e,t,n,r,i){var a;let o=(a=this.options).getPositionResolver?.call(a);if(o){let a=o.resolve({x:e,y:t,width:n,height:r,zones:this._acceptedTargetZonesSet,event:i});return a?{position:a.position,edge:!!a.edge}:null}let s=this._calculateQuadrant(e,t,n,r);return s?{position:s,edge:!1}:null}_calculateQuadrant(e,t,n,r){let i=this.options.overlayModel?.activationSize??Pn;return i.type===`percentage`?An(this._acceptedTargetZonesSet,e,t,n,r,i.value):jn(this._acceptedTargetZonesSet,e,t,n,r,i.value)}_clearOwnOverlay(){let e=this._state!==void 0;if(this._removeOverlay(),e){var t,n;(t=(n=this.options).getOverrideTarget)==null||(t=t.call(n))==null||t.clear()}}_removeOverlay(){if(this._edge=!1,this._targetElement){var e;this._state=void 0,(e=this._targetElement.parentElement)==null||e.classList.remove(`dv-drop-target`),this._targetElement.remove(),this._targetElement=void 0,this._overlayElement=void 0}else this._state=void 0}},In=5,Ln=250,Rn=8,zn=class extends Q{constructor(e,t){super(),this.element=e,this.options=t,this._disabled=!1,this._armed=!1,this._startX=0,this._startY=0,this._touchOnly=t.touchOnly??!0,this.addDisposables(Qe(this.element,`pointerdown`,e=>{this._onPointerDown(e)}))}setDisabled(e){this._disabled=e,e&&this._cancelPending()}setTouchOnly(e){this._touchOnly!==e&&(this._touchOnly=e,e&&this._cancelPending())}_shouldHandle(e){var t;return!(this._disabled||this._touchOnly&&e.pointerType!==`touch`&&e.pointerType!==`pen`||(t=this.options).isCancelled?.call(t,e))}_onPointerDown(e){if(!this._shouldHandle(e))return;this._cancelPending(),this._pendingPointerId=e.pointerId,this._startX=e.clientX,this._startY=e.clientY,this._startEvent=e;let t=e.pointerType===`touch`||e.pointerType===`pen`,n=this.options.touchInitiationDelay,r=(typeof n==`function`?n():n)??Ln;this._armed=!t||r<=0,t&&r>0&&Number.isFinite(r)&&(this._armTimer=setTimeout(()=>{this._armTimer=void 0,this._armed=!0},r));let i=this.options.threshold??In,a=this.options.pressTolerance,o=(typeof a==`function`?a():a)??Rn,s=this.element.ownerDocument?.defaultView??globalThis.window;this._pendingMoveListener=Qe(s,`pointermove`,e=>{if(e.pointerId!==this._pendingPointerId)return;let t=e.clientX-this._startX,n=e.clientY-this._startY,r=Math.hypot(t,n);if(this._armed){r>=i&&this._beginDrag(e);return}r>o&&this._beginDrag(e)}),this._pendingUpListener=Qe(s,`pointerup`,e=>{e.pointerId===this._pendingPointerId&&this._cancelPending()}),this._pendingCancelListener=Qe(s,`pointercancel`,e=>{e.pointerId===this._pendingPointerId&&this._cancelPending()})}cancelPending(){this._cancelPending()}_cancelPending(){var e,t,n;this._pendingPointerId=void 0,this._armTimer!==void 0&&(clearTimeout(this._armTimer),this._armTimer=void 0),this._armed=!1,(e=this._pendingMoveListener)==null||e.dispose(),(t=this._pendingUpListener)==null||t.dispose(),(n=this._pendingCancelListener)==null||n.dispose(),this._pendingMoveListener=void 0,this._pendingUpListener=void 0,this._pendingCancelListener=void 0,this._startEvent=void 0}_beginDrag(e){var t,n,r;let i=this._startEvent??e;this._cancelPending(),(t=(n=this.options).onDragStart)==null||t.call(n,i);let a=(r=this.options).createGhost?.call(r,i);Nn.getInstance().beginDrag({pointerEvent:e,source:this.element,getData:()=>this.options.getData(i),ghost:a,onDragMove:this.options.onDragMove,onDragEnd:this.options.onDragEnd})}dispose(){this._cancelPending(),super.dispose()}},Bn=class{constructor(e){this._disposed=!1,this.element=e.element,this.offsetX=e.offsetX??0,this.offsetY=e.offsetY??0,this.element.style.position=`fixed`,this.element.style.left=`0px`,this.element.style.top=`0px`,this.element.style.pointerEvents=`none`,this.element.style.zIndex=`99999`,this.element.style.opacity=String(e.opacity??.8),this.element.style.willChange=`transform`,this.element.style.transform=`translate3d(${e.initialX-this.offsetX}px, ${e.initialY-this.offsetY}px, 0)`,(e.owner?.ownerDocument??document).body.appendChild(this.element)}update(e,t){this._disposed||(this.element.style.transform=`translate3d(${e-this.offsetX}px, ${t-this.offsetY}px, 0)`)}dispose(){this._disposed||(this._disposed=!0,this.element.remove())}},Vn=class extends Q{constructor(e,t){super(),this.el=e,this.opts=t,this._dataDisposable=new Ge,this._pointerEventsDisposable=new Ge,this._disabled=!!t.disabled,this.addDisposables(this._dataDisposable,this._pointerEventsDisposable,Qe(this.el,`dragstart`,e=>{var t,n,r,i;if(e.defaultPrevented||this._disabled||(t=this.opts).isCancelled?.call(t,e)){e.preventDefault();return}let a=gt(this.el.ownerDocument??document);this._pointerEventsDisposable.value={dispose:()=>a.release()},this.el.classList.add(`dv-dragged`),setTimeout(()=>this.el.classList.remove(`dv-dragged`),0),this._dataDisposable.value=this.opts.getData(e);let o=(n=this.opts).createGhost?.call(n,e);if(o&&e.dataTransfer&&(Mn(e.dataTransfer,o.element,{x:o.offsetX??0,y:o.offsetY??0,ownerDocument:this.el.ownerDocument??void 0}),o.dispose)){let e=o.dispose;setTimeout(()=>e(),0)}e.dataTransfer&&(e.dataTransfer.effectAllowed=`move`,e.dataTransfer.items.length===0&&e.dataTransfer.setData(`text/plain`,``)),(r=(i=this.opts).onDragStart)==null||r.call(i,e)}),Qe(this.el,`dragend`,e=>{var t,n;this._pointerEventsDisposable.dispose(),setTimeout(()=>this._dataDisposable.dispose(),0),(t=(n=this.opts).onDragEnd)==null||t.call(n,e)}))}setDisabled(e){this._disabled=e}setTouchOnly(e){}cancelPending(){}},Hn=class{constructor(){this.kind=`html5`}createDropTarget(e,t){return new kn(e,t)}createDragSource(e,t){return new Vn(e,t)}},Un=class{constructor(){this.kind=`pointer`}createDropTarget(e,t){return new Fn(e,t)}createDragSource(e,t){let n=t.createGhost?n=>{let r=t.createGhost(n);if(!r)return;let i=new Bn({element:r.element,initialX:n.clientX,initialY:n.clientY,offsetX:r.offsetX,offsetY:r.offsetY,owner:e});if(r.dispose){let e=i.dispose.bind(i),t=r.dispose;i.dispose=()=>{e(),t()}}return i}:void 0,r=new zn(e,{getData:t.getData,isCancelled:t.isCancelled,onDragStart:t.onDragStart,onDragEnd:t.onDragEnd?e=>t.onDragEnd(e.pointerEvent):void 0,createGhost:n,touchOnly:t.touchOnly,touchInitiationDelay:t.touchInitiationDelay,pressTolerance:t.pressTolerance,threshold:t.threshold});return t.disabled&&r.setDisabled(!0),r}},Wn=new Hn,Gn=new Un,Kn=class extends qe{constructor(){super()}},qn=class extends Q{get isFocused(){return this._isFocused}get isActive(){return this._isActive}get isVisible(){return this._isVisible}get width(){return this._width}get height(){return this._height}constructor(e,t){super(),this.id=e,this.component=t,this._isFocused=!1,this._isActive=!1,this._isVisible=!0,this._width=0,this._height=0,this._parameters={},this.panelUpdatesDisposable=new Ge,this._onDidDimensionChange=new $,this.onDidDimensionsChange=this._onDidDimensionChange.event,this._onDidChangeFocus=new $,this.onDidFocusChange=this._onDidChangeFocus.event,this._onWillFocus=new $,this.onWillFocus=this._onWillFocus.event,this._onDidVisibilityChange=new $,this.onDidVisibilityChange=this._onDidVisibilityChange.event,this._onWillVisibilityChange=new $,this.onWillVisibilityChange=this._onWillVisibilityChange.event,this._onDidActiveChange=new $,this.onDidActiveChange=this._onDidActiveChange.event,this._onActiveChange=new $,this.onActiveChange=this._onActiveChange.event,this._onDidParametersChange=new $,this.onDidParametersChange=this._onDidParametersChange.event,this.addDisposables(this.onDidFocusChange(e=>{this._isFocused=e.isFocused}),this.onDidActiveChange(e=>{this._isActive=e.isActive}),this.onDidVisibilityChange(e=>{this._isVisible=e.isVisible}),this.onDidDimensionsChange(e=>{this._width=e.width,this._height=e.height}),this.panelUpdatesDisposable,this._onDidDimensionChange,this._onDidChangeFocus,this._onDidVisibilityChange,this._onDidActiveChange,this._onWillFocus,this._onActiveChange,this._onWillFocus,this._onWillVisibilityChange,this._onDidParametersChange)}getParameters(){return this._parameters}initialize(e){this.panelUpdatesDisposable.value=this._onDidParametersChange.event(t=>{this._parameters=t,e.update({params:t})})}setVisible(e){this._onWillVisibilityChange.fire({isVisible:e})}setActive(){this._onActiveChange.fire()}updateParameters(e){this._onDidParametersChange.fire(e)}},Jn=class extends Q{get element(){return this._element}get width(){return this._width}get height(){return this._height}get params(){return this._params?.params}constructor(e,t,n){super(),this.id=e,this.component=t,this.api=n,this._height=0,this._width=0,this._element=document.createElement(`div`),this._element.tabIndex=-1,this._element.style.outline=`none`,this._element.style.height=`100%`,this._element.style.width=`100%`,this._element.style.overflow=`hidden`;let r=ot(this._element);this.addDisposables(this.api,r.onDidFocus(()=>{this.api._onDidChangeFocus.fire({isFocused:!0})}),r.onDidBlur(()=>{this.api._onDidChangeFocus.fire({isFocused:!1})}),r)}focus(){let e=new Kn;this.api._onWillFocus.fire(e),!e.defaultPrevented&&this._element.focus()}layout(e,t){this._width=e,this._height=t,this.api._onDidDimensionChange.fire({width:e,height:t}),this.part&&this._params&&this.part.update(this._params.params)}init(e){this._params=e,this.part=this.getComponent()}update(e){var t;this._params=ln(ln({},this._params),{},{params:ln(ln({},this._params?.params),e.params)});for(let t of Object.keys(e.params))e.params[t]===void 0&&delete this._params.params[t];(t=this.part)==null||t.update({params:this._params.params})}toJSON(){let e=this._params?.params??{};return{id:this.id,component:this.component,params:Object.keys(e).length>0?e:void 0}}dispose(){var e;this.api.dispose(),(e=this.part)==null||e.dispose(),super.dispose()}},Yn=0,Xn=()=>`dv-tabpanel-${Yn++}`,Zn=class extends Q{get element(){return this._element}constructor(e,t){var n,r,i;super(),this.accessor=e,this.group=t,this.disposable=new Ge,this._onDidFocus=new $,this.onDidFocus=this._onDidFocus.event,this._onDidBlur=new $,this.onDidBlur=this._onDidBlur.event,this._element=document.createElement(`div`),this._element.className=`dv-content-container`,this._element.tabIndex=-1,this._element.id=Xn(),this._element.setAttribute(`role`,`tabpanel`),this.addDisposables(this._onDidFocus,this._onDidBlur);let a=()=>t.dropTargetContainer?.model,o=(e,t)=>this.group.canDisplayContentOverlay(e,t);this.dropTarget=new kn(this.element,{getOverlayOutline:()=>e.options.theme?.dndPanelOverlay===`group`?this.element.parentElement:null,className:`dv-drop-target-content`,acceptedTargetZones:[`top`,`bottom`,`left`,`right`,`center`],canDisplayOverlay:o,getOverrideTarget:a,overlayModel:(n=this.accessor).resolveDropOverlayModel?.call(n,`content`),getPositionResolver:()=>e.getDropPositionResolver?.call(e)}),this.pointerDropTarget=Gn.createDropTarget(this.element,{acceptedTargetZones:[`top`,`bottom`,`left`,`right`,`center`],canDisplayOverlay:o,getOverlayOutline:()=>e.options.theme?.dndPanelOverlay===`group`?this.element.parentElement:null,className:`dv-drop-target-content`,getOverrideTarget:a,overlayModel:(r=this.accessor).resolveDropOverlayModel?.call(r,`content`),getPositionResolver:()=>e.getDropPositionResolver?.call(e)}),this.addDisposables(this.dropTarget,this.pointerDropTarget,(i=this.accessor).onDidOptionsChange?.call(i,()=>{var e;let t=(e=this.accessor).resolveDropOverlayModel?.call(e,`content`)??{};this.dropTarget.setOverlayModel(t),this.pointerDropTarget.setOverlayModel(t)})??We.NONE)}show(){this.element.style.display=``}hide(){this.element.style.display=`none`}setLabelledBy(e){e?this._element.setAttribute(`aria-labelledby`,e):this._element.removeAttribute(`aria-labelledby`)}renderPanel(e,t){let n=(t?.asActive??!0)||this.panel&&this.group.isPanelActive(this.panel);if(this.panel?.view.content.element.parentElement===this._element){var r,i;this.panel.view.content.element.remove(),(r=(i=this.panel.view.content).onHide)==null||r.call(i)}this.panel=e;let a;switch(e.api.renderer){case`onlyWhenVisible`:if(this.group.renderContainer.detatch(e),this.panel&&n){var o,s;this._element.appendChild(this.panel.view.content.element),(o=(s=this.panel.view.content).onShow)==null||o.call(s)}a=this._element;break;case`always`:e.view.content.element.parentElement===this._element&&e.view.content.element.remove(),a=this.group.renderContainer.attach({panel:e,referenceContainer:this});break;default:throw Error(`dockview: invalid renderer type '${e.api.renderer}'`)}if(n){let e=ot(a);this.focusTracker=e;let t=new Q;t.addDisposables(e,e.onDidFocus(()=>this._onDidFocus.fire()),e.onDidBlur(()=>this._onDidBlur.fire())),this.disposable.value=t}}openPanel(e){this.panel!==e&&this.renderPanel(e)}layout(e,t){}closePanel(){if(this.panel&&this.panel.api.renderer===`onlyWhenVisible`){var e,t;this.panel.view.content.element.remove(),(e=(t=this.panel.view.content).onHide)==null||e.call(t)}this.panel=void 0}dispose(){this.disposable.dispose(),super.dispose()}refreshFocusState(){this.focusTracker?.refreshState&&this.focusTracker.refreshState()}},Qn=e=>{let t=document.createElementNS(`http://www.w3.org/2000/svg`,`svg`);t.setAttributeNS(null,`height`,e.height),t.setAttributeNS(null,`width`,e.width),t.setAttributeNS(null,`viewBox`,e.viewbox),t.setAttributeNS(null,`aria-hidden`,`false`),t.setAttributeNS(null,`focusable`,`false`),t.classList.add(`dv-svg`);let n=document.createElementNS(`http://www.w3.org/2000/svg`,`path`);return n.setAttributeNS(null,`d`,e.path),t.appendChild(n),t},$n=()=>Qn({width:`11`,height:`11`,viewbox:`0 0 28 28`,path:`M2.1 27.3L0 25.2L11.55 13.65L0 2.1L2.1 0L13.65 11.55L25.2 0L27.3 2.1L15.75 13.65L27.3 25.2L25.2 27.3L13.65 15.75L2.1 27.3Z`}),er=()=>Qn({width:`11`,height:`11`,viewbox:`0 0 24 24`,path:`M16 9V4h1c.55 0 1-.45 1-1s-.45-1-1-1H6c-.55 0-1 .45-1 1s.45 1 1 1h1v5c0 1.66-1.34 3-3 3v2h5.97v7l1 1 1-1v-7H19v-2c-1.66 0-3-1.34-3-3z`}),tr=()=>Qn({width:`11`,height:`11`,viewbox:`0 0 15 25`,path:`M2.15 24.1L0 21.95L9.9 12.05L0 2.15L2.15 0L14.2 12.05L2.15 24.1Z`}),nr=500,rr=8,ir=class extends Q{constructor(e,t){super(),this.element=e,this.options=t,this._startX=0,this._startY=0,this.addDisposables(Qe(this.element,`pointerdown`,e=>{this._onPointerDown(e)}))}_onPointerDown(e){if((this.options.touchOnly??!0)&&e.pointerType!==`touch`&&e.pointerType!==`pen`)return;this._cancelPending(),this._pointerId=e.pointerId,this._startX=e.clientX,this._startY=e.clientY;let t=this.options.delay??nr,n=this.options.tolerance??rr,r=this.element.ownerDocument?.defaultView??globalThis.window;this._timer=setTimeout(()=>{this._timer=void 0,this._cancelPending(),this._installContextMenuGuard(r),this._installClickGuard(r),this.options.onLongPress(e)},t),this._moveListener=Qe(r,`pointermove`,e=>{if(e.pointerId!==this._pointerId)return;let t=e.clientX-this._startX,r=e.clientY-this._startY;Math.hypot(t,r)>n&&this._cancelPending()}),this._upListener=Qe(r,`pointerup`,e=>{e.pointerId===this._pointerId&&this._cancelPending()}),this._cancelListener=Qe(r,`pointercancel`,e=>{e.pointerId===this._pointerId&&this._cancelPending()})}_installContextMenuGuard(e){let t,n=setTimeout(()=>t?.dispose(),500);t=Qe(e,`contextmenu`,e=>{e.preventDefault(),clearTimeout(n),t?.dispose()},{capture:!0})}_installClickGuard(e){let t,n=setTimeout(()=>t?.dispose(),500);t=Qe(e,`click`,e=>{let r=e.target;r&&this.element.contains(r)&&(e.preventDefault(),e.stopPropagation()),clearTimeout(n),t?.dispose()},{capture:!0})}_cancelPending(){var e,t,n;this._timer!==void 0&&(clearTimeout(this._timer),this._timer=void 0),this._pointerId=void 0,(e=this._moveListener)==null||e.dispose(),(t=this._upListener)==null||t.dispose(),(n=this._cancelListener)==null||n.dispose(),this._moveListener=void 0,this._upListener=void 0,this._cancelListener=void 0}dispose(){this._cancelPending(),super.dispose()}};function ar(e){if(e.disableDnd)return{html5:!1,pointer:!1,pointerHandlesMouse:!1};switch(e.dndStrategy){case`pointer`:return{html5:!1,pointer:!0,pointerHandlesMouse:!0};case`html5`:return{html5:!0,pointer:!1,pointerHandlesMouse:!1};case`auto`:case void 0:default:return or()?{html5:!1,pointer:!0,pointerHandlesMouse:!0}:{html5:!0,pointer:!0,pointerHandlesMouse:!1}}}function or(){if(globalThis.window===void 0||!globalThis.matchMedia)return!1;let e=globalThis.matchMedia(`(pointer: coarse)`).matches,t=globalThis.matchMedia(`(pointer: fine)`).matches;return e&&!t}var sr=0,cr=()=>`dv-tab-${sr++}`,lr=class extends Q{get element(){return this._element}constructor(e,t,n){var r,i,a,o,s;super(),this.panel=e,this.accessor=t,this.group=n,this.content=void 0,this.panelTransfer=He.getInstance(),this._direction=`horizontal`,this._pinIndicator=void 0,this._onPointDown=new $,this.onPointerDown=this._onPointDown.event,this._onTabClick=new $,this.onTabClick=this._onTabClick.event,this._onDropped=new $,this.onDrop=this._onDropped.event,this._onDragStart=new $,this.onDragStart=this._onDragStart.event,this._onDragEnd=new $,this.onDragEnd=this._onDragEnd.event;let c=ar(this.accessor.options);this._element=document.createElement(`div`),this._element.className=`dv-tab`,this._element.tabIndex=-1,this._element.draggable=c.html5,this._element.id=cr(),this._element.setAttribute(`role`,`tab`),this._element.setAttribute(`aria-selected`,`false`),this._element.setAttribute(`aria-label`,this.panel.title??this.panel.id),this._element.dataset.tabPanelId=this.panel.id;let l=(r=this.group)==null||(r=r.model)==null?void 0:r.contentContainerId;l&&this._element.setAttribute(`aria-controls`,l),it(this.element,`dv-inactive-tab`,!0),this._updatePinnedClasses();let u=(e,t)=>{if(this.group.locked)return!1;let n=Ue();return this.accessor.id===n?.viewId?this.accessor.options.theme?.tabAnimation!==`smooth`:this.group.model.canDisplayOverlay(e,t,`tab`)};this.dropTarget=Wn.createDropTarget(this._element,{acceptedTargetZones:[`left`,`right`],overlayModel:this._buildOverlayModel(),canDisplayOverlay:u,getOverrideTarget:()=>n.model.dropTargetContainer?.model}),this.pointerDropTarget=Gn.createDropTarget(this._element,{acceptedTargetZones:[`left`,`right`],overlayModel:this._buildOverlayModel(),canDisplayOverlay:u,getOverrideTarget:()=>n.model.dropTargetContainer?.model});let d={getData:()=>(this.panelTransfer.setData([new Ve(this.accessor.id,this.group.id,this.panel.id)],Ve.prototype),{dispose:()=>{this.panelTransfer.clearData(Ve.prototype)}}),createGhost:()=>({element:this._buildGhostElement(),offsetX:30,offsetY:-10}),onDragStart:e=>{this._onDragStart.fire(e),!(e instanceof PointerEvent)&&this.accessor.options.theme?.tabAnimation===`smooth`&&requestAnimationFrame(()=>{it(this.element,`dv-tab--dragging`,!0)})},onDragEnd:e=>{this._onDragEnd.fire(e)}};this.html5DragSource=Wn.createDragSource(this._element,ln(ln({},d),{},{disabled:!c.html5})),this.pointerDragSource=Gn.createDragSource(this._element,ln(ln({},d),{},{disabled:!c.pointer,touchOnly:!c.pointerHandlesMouse,isCancelled:()=>!ar(this.accessor.options).pointer})),this.onWillShowOverlay=Ke.any(this.dropTarget.onWillShowOverlay,this.pointerDropTarget.onWillShowOverlay),this.addDisposables(this._onPointDown,this._onTabClick,this._onDropped,this._onDragStart,this._onDragEnd,this.accessor.onDidOptionsChange(()=>{let e=this._buildOverlayModel();this.dropTarget.setOverlayModel(e),this.pointerDropTarget.setOverlayModel(e),this._updatePinnedClasses()}),((i=this.panel.api)==null||(a=i.onDidChangePinned)==null?void 0:a.call(i,()=>{this._updatePinnedClasses()}))??{dispose:()=>{}},((o=this.panel.api)==null||(s=o.onDidTitleChange)==null?void 0:s.call(o,e=>{this._element.setAttribute(`aria-label`,e.title??this.panel.id)}))??{dispose:()=>{}},Qe(this._element,`dragend`,()=>{it(this.element,`dv-tab--dragging`,!1)}),this.html5DragSource,Qe(this._element,`pointerdown`,e=>{this._onPointDown.fire(e)}),Qe(this._element,`click`,e=>{this._onTabClick.fire(e)}),Qe(this._element,`contextmenu`,e=>{var t;(t=this.accessor.contextMenuService)==null||t.show(this.panel,this.group,e)}),new ir(this._element,{onLongPress:e=>{var t;this.pointerDragSource.cancelPending(),(t=this.accessor.contextMenuService)==null||t.show(this.panel,this.group,e)}}),this.dropTarget.onDrop(e=>{this._onDropped.fire(e)}),this.pointerDropTarget.onDrop(e=>{this._onDropped.fire(e)}),this.dropTarget,this.pointerDropTarget,this.pointerDragSource)}_updatePinnedClasses(){let e=this.panel.api?.isPinned??!1,t=e&&this.accessor.options.pinnedTabs?.compact===!0;it(this.element,`dv-tab--pinned`,e),it(this.element,`dv-tab--pinned-compact`,t);let n=e&&!this.panel.api?.tabComponent;if(n&&!this._pinIndicator){let e=document.createElement(`div`);e.className=`dv-tab-pin`,e.appendChild(er()),this._element.insertBefore(e,this._element.firstChild),this._pinIndicator=e}else!n&&this._pinIndicator&&(this._pinIndicator.remove(),this._pinIndicator=void 0)}setActive(e){it(this.element,`dv-active-tab`,e),it(this.element,`dv-inactive-tab`,!e),this._element.setAttribute(`aria-selected`,e?`true`:`false`),this._element.tabIndex=e?0:-1}setContent(e){this.content&&this.content.element.remove(),this.content=e,this._element.appendChild(this.content.element)}_buildOverlayModel(){var e;let t=(e=this.accessor).resolveDropOverlayModel?.call(e,`tab`,this.group);if(t)return t;let n=this.accessor.options.theme?.dndTabIndicator===`line`?1/0:0;return{activationSize:{value:50,type:`percentage`},smallWidthBoundary:n,smallHeightBoundary:n}}setDirection(e){this._direction=e;let t=e===`vertical`?[`top`,`bottom`]:[`left`,`right`];this.dropTarget.setTargetZones(t),this.pointerDropTarget.setTargetZones(t)}updateDragAndDropState(){let e=ar(this.accessor.options);this._element.draggable=e.html5,this.html5DragSource.setDisabled(!e.html5),this.pointerDragSource.setDisabled(!e.pointer),this.pointerDragSource.setTouchOnly(!e.pointerHandlesMouse)}_buildGhostElement(){let e=getComputedStyle(this.element),t=this.element.cloneNode(!0),n=this._direction===`vertical`,r=new Set([`writing-mode`,`inline-size`,`block-size`,`min-inline-size`,`min-block-size`,`max-inline-size`,`max-block-size`,`margin-inline`,`margin-inline-start`,`margin-inline-end`,`margin-block`,`margin-block-start`,`margin-block-end`,`padding-inline`,`padding-inline-start`,`padding-inline-end`,`padding-block`,`padding-block-start`,`padding-block-end`]);return Array.from(e).forEach(i=>{n&&r.has(i)||t.style.setProperty(i,e.getPropertyValue(i),e.getPropertyPriority(i))}),n&&(t.style.setProperty(`writing-mode`,`horizontal-tb`),t.style.setProperty(`width`,e.height),t.style.setProperty(`height`,e.width)),t.style.position=`absolute`,t.classList.add(`dv-tab-ghost-drag`),t}},ur=class{get kind(){return this.options.kind}get nativeEvent(){return this.event.nativeEvent}get position(){return this.event.position}get edge(){return this.event.edge}get edgeGroup(){return this.event.edgeGroup}get defaultPrevented(){return this.event.defaultPrevented}get panel(){return this.options.panel}get api(){return this.options.api}get group(){return this.options.group}preventDefault(){this.event.preventDefault()}getData(){return this.options.getData()}constructor(e,t){this.event=e,this.options=t}},dr=class extends Q{get group(){return this.groupAccessor()}constructor(e){var t;super(),this.panelTransfer=He.getInstance(),this._onDragStart=new $,this.onDragStart=this._onDragStart.event,this._element=e.element,this.accessor=e.accessor;let n=e.group;this.groupAccessor=typeof n==`function`?n:()=>n,this.isFloatingMoveHandle=e.isFloatingMoveHandle??(()=>!0);let r=ar(this.accessor.options);this._element.draggable=r.html5,it(this._element,`dv-draggable`,r.html5||r.pointer),this.addDisposables(this._onDragStart);let i=()=>{let e=document.createElement(`div`),t=globalThis.getComputedStyle(this._element),n=t.getPropertyValue(`--dv-activegroup-visiblepanel-tab-background-color`),r=t.getPropertyValue(`--dv-activegroup-visiblepanel-tab-color`);return e.style.backgroundColor=n,e.style.color=r,e.style.padding=`2px 8px`,e.style.height=`24px`,e.style.fontSize=`11px`,e.style.lineHeight=`20px`,e.style.borderRadius=`12px`,e.style.whiteSpace=`nowrap`,e.style.boxSizing=`border-box`,e.style.display=`inline-block`,e.textContent=`Multiple Panels (${this.group.size})`,e},a={getData:()=>(this.panelTransfer.setData([new Ve(this.accessor.id,this.group.id,null)],Ve.prototype),{dispose:()=>{this.panelTransfer.clearData(Ve.prototype)}}),createGhost:()=>{var e;return(e=this.accessor).buildGroupDragGhost?.call(e,this.group)||{element:i(),offsetX:30,offsetY:-10}},onDragStart:e=>{this._onDragStart.fire(e)}};this.html5DragSource=Wn.createDragSource(this._element,ln(ln({},a),{},{disabled:!r.html5,isCancelled:e=>!!(this.group.api.location.type===`floating`&&this.isFloatingMoveHandle()&&!e.shiftKey||this.group.api.location.type===`edge`&&this.group.size===0)}));let o=()=>{var e;return((e=this.group)==null||(e=e.api)==null||(e=e.location)==null?void 0:e.type)===`floating`&&this.isFloatingMoveHandle()};this.pointerDragSource=Gn.createDragSource(this._element,ln(ln({},a),{},{disabled:!r.pointer,touchOnly:!r.pointerHandlesMouse,touchInitiationDelay:()=>o()?500:250,pressTolerance:()=>o()?1/0:8,isCancelled:()=>!ar(this.accessor.options).pointer||this.group.api.location.type===`edge`&&this.group.size===0,onDragStart:e=>{var t;(t=this.getFloatingOverlay())==null||t.cancelPendingDrag(),this._onDragStart.fire(e)}}));let s=new Ge,c=()=>{let e=this.getFloatingOverlay();s.value=e?e.onDidStartMoving(()=>{this.pointerDragSource.cancelPending()}):We.NONE};c(),this.addDisposables(s);let l=(t=this.group)==null||(t=t.api)==null?void 0:t.onDidLocationChange;l&&this.addDisposables(l(c)),this.addDisposables(this.html5DragSource,this.pointerDragSource)}updateDragAndDropState(){let e=ar(this.accessor.options);this._element.draggable=e.html5,it(this._element,`dv-draggable`,e.html5||e.pointer),this.html5DragSource.setDisabled(!e.html5),this.pointerDragSource.setDisabled(!e.pointer),this.pointerDragSource.setTouchOnly(!e.pointerHandlesMouse)}getFloatingOverlay(){var e;if(this.group)return(e=this.accessor.floatingGroups)==null||(e=e.find(e=>e.group===this.group))==null?void 0:e.overlay}},fr=class extends Q{get element(){return this._element}constructor(e,t){var n,r,i;super(),this.accessor=e,this.group=t,this._onDrop=new $,this.onDrop=this._onDrop.event,this._onDragStart=new $,this.onDragStart=this._onDragStart.event,this._element=document.createElement(`div`),this._element.className=`dv-void-container`,this.addDisposables(this._onDrop,this._onDragStart,Qe(this._element,`pointerdown`,()=>{this.accessor.doSetGroupActive(this.group)}),Qe(this._element,`pointerdown`,e=>{e.shiftKey&<(e)},!0)),this.dragSource=new dr({element:this._element,accessor:this.accessor,group:this.group,isFloatingMoveHandle:()=>!this._element.closest(`.dv-resize-container-with-titlebar`)});let a=(e,n)=>{if(this.group.api.locked)return!1;let r=Ue();return this.accessor.id===r?.viewId||t.model.canDisplayOverlay(e,n,`header_space`)};this.dropTarget=Wn.createDropTarget(this._element,{acceptedTargetZones:[`center`],canDisplayOverlay:a,getOverrideTarget:()=>t.model.dropTargetContainer?.model,overlayModel:(n=this.accessor).resolveDropOverlayModel?.call(n,`header_space`,this.group)}),this.pointerDropTarget=Gn.createDropTarget(this._element,{acceptedTargetZones:[`center`],canDisplayOverlay:a,getOverrideTarget:()=>t.model.dropTargetContainer?.model,overlayModel:(r=this.accessor).resolveDropOverlayModel?.call(r,`header_space`,this.group)}),this.onWillShowOverlay=Ke.any(this.dropTarget.onWillShowOverlay,this.pointerDropTarget.onWillShowOverlay),this.addDisposables(this.dragSource,this.dragSource.onDragStart(e=>{this._onDragStart.fire(e)}),this.dropTarget.onDrop(e=>{this._onDrop.fire(e)}),this.pointerDropTarget.onDrop(e=>{this._onDrop.fire(e)}),this.dropTarget,this.pointerDropTarget,(i=this.accessor).onDidOptionsChange?.call(i,()=>{var e;let t=(e=this.accessor).resolveDropOverlayModel?.call(e,`header_space`,this.group)??{};this.dropTarget.setOverlayModel(t),this.pointerDropTarget.setOverlayModel(t)})??We.NONE)}updateDragAndDropState(){this.dragSource.updateDragAndDropState()}},pr=class e extends Q{get element(){return this._element}get orientation(){return this._orientation}set orientation(e){this._orientation!==e&&(this._scrollOffset=0,this._orientation=e,nt(this._scrollbar,`dv-scrollbar-vertical`,`dv-scrollbar-horizontal`),e===`vertical`?rt(this._scrollbar,`dv-scrollbar-vertical`):rt(this._scrollbar,`dv-scrollbar-horizontal`))}constructor(t){super(),this.scrollableElement=t,this._scrollOffset=0,this._orientation=`horizontal`,this._element=document.createElement(`div`),this._element.className=`dv-scrollable`,this._scrollbar=document.createElement(`div`),this._scrollbar.className=`dv-scrollbar dv-scrollbar-horizontal`,this.element.appendChild(t),this.element.appendChild(this._scrollbar),this.addDisposables(Qe(this.element,`wheel`,t=>{this._scrollOffset+=t.deltaY*e.MouseWheelSpeed,this.scheduleStyleUpdate()}),Qe(this._scrollbar,`pointerdown`,e=>{e.preventDefault();let t=this._scrollbar.ownerDocument??document;it(this.element,`dv-scrollable-scrolling`,!0);let n=this._orientation===`horizontal`?e.clientX:e.clientY,r=this._scrollOffset,i=e=>{let t=this._orientation===`horizontal`?e.clientX-n:e.clientY-n,i=(this._orientation===`horizontal`?this.element.clientWidth:this.element.clientHeight)/(this._orientation===`horizontal`?this.scrollableElement.scrollWidth:this.scrollableElement.scrollHeight);this._scrollOffset=r+t/i,this.scheduleStyleUpdate()},a=()=>{it(this.element,`dv-scrollable-scrolling`,!1),t.removeEventListener(`pointermove`,i),t.removeEventListener(`pointerup`,a),t.removeEventListener(`pointercancel`,a)};t.addEventListener(`pointermove`,i),t.addEventListener(`pointerup`,a),t.addEventListener(`pointercancel`,a)}),Qe(this.element,`scroll`,()=>{this.scheduleStyleUpdate()}),Qe(this.scrollableElement,`scroll`,()=>{this._scrollOffset=this._orientation===`horizontal`?this.scrollableElement.scrollLeft:this.scrollableElement.scrollTop,this.scheduleStyleUpdate()}),tt(this.element,()=>{it(this.element,`dv-scrollable-resizing`,!0),this._animationTimer&&clearTimeout(this._animationTimer),this._animationTimer=setTimeout(()=>{clearTimeout(this._animationTimer),it(this.element,`dv-scrollable-resizing`,!1)},500),this.scheduleStyleUpdate()}),We.from(()=>{this._pendingStyleFrame!==void 0&&(cancelAnimationFrame(this._pendingStyleFrame),this._pendingStyleFrame=void 0)}))}scheduleStyleUpdate(){this._pendingStyleFrame===void 0&&(this._pendingStyleFrame=requestAnimationFrame(()=>{this._pendingStyleFrame=void 0,this.calculateScrollbarStyles()}))}calculateScrollbarStyles(){let e=this._orientation===`horizontal`?this.element.clientWidth:this.element.clientHeight,t=this._orientation===`horizontal`?this.scrollableElement.scrollWidth:this.scrollableElement.scrollHeight;if(t>e){let n=e/t*e;this._orientation===`horizontal`?(this._scrollbar.style.width=`${n}px`,this._scrollbar.style.height=``):(this._scrollbar.style.height=`${n}px`,this._scrollbar.style.width=``),this._scrollOffset=jt(this._scrollOffset,0,t-e),this._orientation===`horizontal`?this.scrollableElement.scrollLeft=this._scrollOffset:this.scrollableElement.scrollTop=this._scrollOffset;let r=this._scrollOffset/(t-e);this._orientation===`horizontal`?(this._scrollbar.style.left=`${(e-n)*r}px`,this._scrollbar.style.top=``):(this._scrollbar.style.top=`${(e-n)*r}px`,this._scrollbar.style.left=``)}else this._orientation===`horizontal`?(this._scrollbar.style.width=`0px`,this._scrollbar.style.left=`0px`):(this._scrollbar.style.height=`0px`,this._scrollbar.style.top=`0px`),this._scrollOffset=0}};pr.MouseWheelSpeed=1;var mr=`dv-tabs-container--wrap`;function hr(e,t){return typeof e==`boolean`?e:!!e?.[t]}function gr(e){return typeof e==`boolean`?e:e?Object.values(e).some(Boolean):!1}var _r=class extends Je{constructor(e,t,n,r,i){super(),this.nativeEvent=e,this.target=t,this.position=n,this.getData=r,this.group=i}};function vr(e){return!!e.referencePanel}function yr(e){return!!e.referenceGroup}function br(e){return!!e.referencePanel}function xr(e){return!!e.referenceGroup}var Sr=[{id:`grey`,value:`var(--dv-tab-group-color-grey)`,label:`Grey`},{id:`blue`,value:`var(--dv-tab-group-color-blue)`,label:`Blue`},{id:`red`,value:`var(--dv-tab-group-color-red)`,label:`Red`},{id:`yellow`,value:`var(--dv-tab-group-color-yellow)`,label:`Yellow`},{id:`green`,value:`var(--dv-tab-group-color-green)`,label:`Green`},{id:`pink`,value:`var(--dv-tab-group-color-pink)`,label:`Pink`},{id:`purple`,value:`var(--dv-tab-group-color-purple)`,label:`Purple`},{id:`cyan`,value:`var(--dv-tab-group-color-cyan)`,label:`Cyan`},{id:`orange`,value:`var(--dv-tab-group-color-orange)`,label:`Orange`}],Cr=class{constructor(e,t=!0){this._entries=e.slice(),this._byId=new Map(e.map(e=>[e.id,e])),this._enabled=t}get enabled(){return this._enabled}set enabled(e){this._enabled=e}setEntries(e){this._entries=e.slice(),this._byId=new Map(e.map(e=>[e.id,e]))}entries(){return this._entries}has(e){return this._byId.has(e)}get(e){return this._byId.get(e)}defaultId(){return this._entries[0]?.id}resolveValue(e){if(!this._enabled||!e)return;let t=this._byId.get(e);return t?t.value:e}},wr;function Tr(){return wr??=new Cr(Sr,!0),wr}function Er(e,t,n){let r=(n??Tr()).resolveValue(t);r===void 0?e.style.removeProperty(`--dv-tab-group-color`):e.style.setProperty(`--dv-tab-group-color`,r)}function Dr(e,t){return(t??Tr()).resolveValue(e)}var Or=class extends Q{get element(){return this._element}constructor(e){super(),this._palette=e,this._onClick=new $,this.onClick=this._onClick.event,this._onContextMenu=new $,this.onContextMenu=this._onContextMenu.event,this._element=document.createElement(`div`),this._element.className=`dv-tab-group-chip`,this._element.tabIndex=0,this._label=document.createElement(`span`),this._label.className=`dv-tab-group-chip-label`,this._element.appendChild(this._label),this.addDisposables(this._onClick,this._onContextMenu,new ir(this._element,{onLongPress:e=>{this._onContextMenu.fire(e)}}),Qe(this._element,`click`,e=>{this._onClick.fire(e)}),Qe(this._element,`contextmenu`,e=>{this._onContextMenu.fire(e)}))}init(e){this._tabGroup=e.tabGroup,this.updateColor(e.tabGroup.color),this.updateLabel(e.tabGroup.label),this.updateCollapsed(e.tabGroup.collapsed),this.addDisposables(e.tabGroup.onDidChange(()=>{this._tabGroup&&(this.updateColor(this._tabGroup.color),this.updateLabel(this._tabGroup.label))}),e.tabGroup.onDidCollapseChange(e=>{this.updateCollapsed(e)}),this._onClick.event(()=>{var e;(e=this._tabGroup)==null||e.toggle()}))}update(e){this._tabGroup=e.tabGroup,this.updateColor(e.tabGroup.color),this.updateLabel(e.tabGroup.label),this.updateCollapsed(e.tabGroup.collapsed)}updateColor(e){Er(this._element,e,this._palette),it(this._element,`dv-tab-group-chip--accent-off`,this._palette?.enabled===!1)}updateLabel(e){this._label.textContent=e,it(this._label,`dv-tab-group-chip-label--empty`,!e)}updateCollapsed(e){it(this._element,`dv-tab-group-chip--collapsed`,e)}},kr=`dv-tab-group-chip-continuation`,Ar=8,jr=class{get underlines(){return this._underlines}constructor(e){this._ctx=e,this._underlines=new Map,this._continuationMarkers=new Map,this._rafId=null}positionUnderlines(){requestAnimationFrame(()=>{this._positionUnderlinesSync()})}trackUnderlines(){this._rafId!==null&&cancelAnimationFrame(this._rafId);let e=performance.now(),t=()=>{this._positionUnderlinesSync(),this._rafId=performance.now()-e<250?requestAnimationFrame(t):null};this._rafId=requestAnimationFrame(t)}syncUnderlineElements(e){for(let t of e)if(!this._underlines.has(t)){let e=document.createElement(`div`);e.className=`dv-tab-group-underline`,this._ctx.tabsList.appendChild(e),this._underlines.set(t,e)}for(let[t,n]of this._underlines)e.has(t)||(n.remove(),this._underlines.delete(t),this._clearContinuationMarkers(t))}getUnderline(e){return this._underlines.get(e)}dispose(){this._rafId!==null&&(cancelAnimationFrame(this._rafId),this._rafId=null);for(let[,e]of this._underlines)e.remove();this._underlines.clear(),this._clearContinuationMarkers()}_syncContinuationMarkers(e,t){let n=this._continuationMarkers.get(e);for(n||(n=[],this._continuationMarkers.set(e,n));n.length<t;){let e=document.createElement(`div`);e.className=kr,this._ctx.tabsList.appendChild(e),n.push(e)}for(;n.length>t;)n.pop()?.remove();return n}_clearContinuationMarkers(e){if(e===void 0){for(let[,e]of this._continuationMarkers)for(let t of e)t.remove();this._continuationMarkers.clear();return}let t=this._continuationMarkers.get(e);if(t){for(let e of t)e.remove();this._continuationMarkers.delete(e)}}_positionUnderlinesSync(){let e=this._ctx.tabsList.getBoundingClientRect(),t=this._ctx.getTabGroups(),n=this._ctx.getDirection()===`vertical`,r=this._ctx.tabsList.classList.contains(mr);r||this._clearContinuationMarkers();let i=n?e.width:e.height,a=this._ctx.getActivePanelId(),o=this._ctx.getTabMap();for(let s of t){let t=this._underlines.get(s.id);if(!t)continue;let c=s.panelIds;if(c.length===0){t.style.display=`none`;continue}if(t.style.display=``,r){this._positionWrappedUnderline(t,s,e,o,n);continue}let l=this._ctx.getChipElement(s.id),u;if(l){let t=l.getBoundingClientRect(),r=getComputedStyle(l),i=n?Number.parseFloat(r.marginTop)||0:Number.parseFloat(r.marginLeft)||0;u=n?t.top-e.top-i:t.left-e.left-i}else{let t=c[0],r=o.get(t);if(r){let t=r.value.element.getBoundingClientRect();u=n?t.top-e.top:t.left-e.left}else u=0}let d=c[c.length-1],f=o.get(d);if(!f){n?(t.style.top=`${u}px`,t.style.height=`0px`,t.style.left=``,t.style.width=``):(t.style.left=`${u}px`,t.style.width=`0px`,t.style.top=``,t.style.height=``);continue}let p=f.value.element.getBoundingClientRect(),m=n?p.bottom-e.top:p.right-e.left,h=m-u;if((s.collapsed||s.panelIds.some(e=>o.get(e)?.value.element.classList.contains(`dv-tab--group-expanding`)))&&l){let t=l.getBoundingClientRect(),r=n?t.top+t.height/2-e.top:t.left+t.width/2-e.left,i=0,a=0;for(let e of s.panelIds){let t=o.get(e);if(!t)continue;let r=t.value.element;n?(i+=r.getBoundingClientRect().height,a+=r.scrollHeight):(i+=r.getBoundingClientRect().width,a+=r.scrollWidth)}let c=a>0?Math.min(1,i/a):0;u=r+(u-r)*c,m=r+(m-r)*c,h=Math.max(0,m-u)}n?(t.style.top=`${u}px`,t.style.height=`${Math.max(0,h)}px`,t.style.left=``,t.style.width=``,t.style.bottom=``):(t.style.left=`${u}px`,t.style.width=`${Math.max(0,h)}px`,t.style.top=``,t.style.height=``,t.style.bottom=``),this.applyShape(t,s,u,h,i,a,e,n)}}_positionWrappedUnderline(e,t,n,r,i){let a=Dr(t.color,this._ctx.getColorPalette());if(a===void 0){e.style.display=`none`,this._clearContinuationMarkers(t.id);return}let{runs:o,firstRun:s}=this._computeWrappedRuns(t,n,r,i);if(o.length===0){e.style.display=`none`,this._clearContinuationMarkers(t.id);return}this._positionContinuationMarkers(t.id,o,s,a,i);let c=Math.min(...o.map(e=>e.left)),l=Math.max(...o.map(e=>e.right)),u=Math.min(...o.map(e=>e.top)),d=Math.max(...o.map(e=>e.bottom)),f=i?Math.max(0,l-c):n.width,p=i?n.height:Math.max(0,d-u);e.style.left=i?`${c}px`:`0px`,e.style.top=i?`0px`:`${u}px`,e.style.bottom=`auto`,e.style.width=`${f}px`,e.style.height=`${p}px`,e.style.backgroundColor=``;let{svg:m,path:h}=this.ensureSvgPath(e);m.setAttribute(`width`,String(f)),m.setAttribute(`height`,String(p)),h.setAttribute(`stroke`,a),h.setAttribute(`stroke-width`,`2`);let g=this._ctx.getHeaderPosition(),_=i?g===`right`:g===`bottom`;h.setAttribute(`d`,this._wrappedPathData(o,i,_,c,u,2))}_computeWrappedRuns(e,t,n,r){let i=[],a;for(let o of e.panelIds){let e=n.get(o);if(!e)continue;let s=e.value.element.getBoundingClientRect();if(s.width===0&&s.height===0)continue;let c=s.top-t.top,l=s.bottom-t.top,u=s.left-t.left,d=s.right-t.left,f=r?u:c,p=i.find(e=>Math.abs((r?e.left:e.top)-f)<=2);p?(p.top=Math.min(p.top,c),p.bottom=Math.max(p.bottom,l),p.left=Math.min(p.left,u),p.right=Math.max(p.right,d)):(p={top:c,bottom:l,left:u,right:d},i.push(p)),a??=p}return{runs:i,firstRun:a}}_wrappedPathData(e,t,n,r,i,a){let o=``;for(let s of e)if(t){let e=n?s.right-r-a/2:s.left-r+a/2;o+=`M ${e},${s.top} L ${e},${s.bottom} `}else{let e=n?s.top-i+a/2:s.bottom-i-a/2;o+=`M ${s.left},${e} L ${s.right},${e} `}return o.trim()}_positionContinuationMarkers(e,t,n,r,i){let a=t.filter(e=>e!==n),o=this._syncContinuationMarkers(e,a.length);a.forEach((e,t)=>{let n=o[t];if(n.style.backgroundColor=r,i){let t=(e.left+e.right)/2;n.style.left=`${t-Ar/2}px`,n.style.top=`${e.top}px`}else{let t=(e.top+e.bottom)/2;n.style.left=`${e.left}px`,n.style.top=`${t-Ar/2}px`}})}ensureSvgPath(e){let t=e.firstElementChild;if(t?.tagName===`svg`)return{svg:t,path:t.firstElementChild};e.replaceChildren();let n=document.createElementNS(`http://www.w3.org/2000/svg`,`svg`);n.style.display=`block`;let r=document.createElementNS(`http://www.w3.org/2000/svg`,`path`);return r.setAttribute(`fill`,`none`),n.appendChild(r),e.appendChild(n),{svg:n,path:r}}},Mr=class extends jr{_applyStraightLine(e,t,n,r,i,a,o){let s=o?i:r,c=o?r:i;e.setAttribute(`width`,String(s)),e.setAttribute(`height`,String(c)),n.style.width=`${s}px`,n.style.height=`${c}px`,t.setAttribute(`d`,o?`M ${a},0 L ${a},${r}`:`M 0,${a} L ${r},${a}`)}applyShape(e,t,n,r,i,a,o,s){let c=i,l=r,u=Dr(t.color,this._ctx.getColorPalette());if(l<=0||c<=0||u===void 0){e.style.display=`none`;return}e.style.display=``;let d;a&&t.panelIds.includes(a)&&(d=this._ctx.getTabMap().get(a));let{svg:f,path:p}=this.ensureSvgPath(e);p.setAttribute(`stroke`,u),p.setAttribute(`stroke-width`,`2`);let m=this._ctx.getHeaderPosition(),h=!s&&m===`bottom`,g=s&&m===`right`,_,v;if(s?(_=g?c-2:2,v=g?2:c-2):(_=h?2:c-2,v=h?c-2:2),!d){this._applyStraightLine(f,p,e,l,c,_,s);return}let y=d.value.element.getBoundingClientRect(),b,x;if(s?(b=Math.max(0,y.top-o.top-n),x=Math.min(l,y.bottom-o.top-n)):(b=Math.max(0,y.left-o.left-n),x=Math.min(l,y.right-o.left-n)),x<=b){this._applyStraightLine(f,p,e,l,c,_,s);return}let S=v>_?1:-1;if(s){let t=c,n=l;f.setAttribute(`width`,String(t)),f.setAttribute(`height`,String(n)),e.style.width=`${t}px`,e.style.height=`${n}px`;let r=[`M ${_},0`,`L ${_},${b-6}`,`Q ${_},${b} ${_+S*6},${b}`,`L ${v-S*6},${b}`,`Q ${v},${b} ${v},${b+6}`,`L ${v},${x-6}`,`Q ${v},${x} ${v-S*6},${x}`,`L ${_+S*6},${x}`,`Q ${_},${x} ${_},${x+6}`,`L ${_},${n}`].join(` `);p.setAttribute(`d`,r)}else{let t=l,n=c;f.setAttribute(`width`,String(t)),f.setAttribute(`height`,String(n)),e.style.width=`${t}px`,e.style.height=`${n}px`;let r=[`M 0,${_}`,`L ${b-6},${_}`,`Q ${b},${_} ${b},${_+S*6}`,`L ${b},${v-S*6}`,`Q ${b},${v} ${b+6},${v}`,`L ${x-6},${v}`,`Q ${x},${v} ${x},${v-S*6}`,`L ${x},${_+S*6}`,`Q ${x},${_} ${x+6},${_}`,`L ${t},${_}`].join(` `);p.setAttribute(`d`,r)}}},Nr=class extends jr{applyShape(e,t,n,r,i,a,o,s){let c=Dr(t.color,this._ctx.getColorPalette());if(r<=0||c===void 0){e.style.display=`none`;return}e.style.display=``,e.firstElementChild&&e.replaceChildren(),e.style.backgroundColor=c,s?(e.style.width=`2px`,e.style.height=`${r}px`):(e.style.width=`${r}px`,e.style.height=`2px`)}},Pr=new Map,Fr=class{get chipRenderers(){return this._chipRenderers}get groupUnderlines(){return this._indicator?.underlines??Pr}get skipNextCollapseAnimation(){return this._skipNextCollapseAnimation}set skipNextCollapseAnimation(e){this._skipNextCollapseAnimation=e}constructor(e,t){this._ctx=e,this._callbacks=t,this._chipRenderers=new Map,this._indicator=null,this._skipNextCollapseAnimation=!1,this._pendingTransitionCleanups=new Map}update(){let e=this._ctx.group.model.getTabGroups(),t=new Set;for(let n of e)t.add(n.id),this._ensureChipForGroup(n),this._positionChipForGroup(n);for(let[e,r]of this._chipRenderers)if(!t.has(e)){var n;r.chip.element.remove(),r.chip.dispose(),(n=r.dragSourcesDisposable)==null||n.dispose(),r.disposable.dispose(),this._chipRenderers.delete(e)}this._updateTabGroupClasses()}refreshAccents(){for(let n of this._ctx.group.model.getTabGroups()){var e,t;let r=this._chipRenderers.get(n.id);r==null||(t=(e=r.chip).update)==null||t.call(e,{tabGroup:n})}this._updateTabGroupClasses()}positionAllChips(){if(this._chipRenderers.size!==0)for(let e of this._ctx.group.model.getTabGroups())this._positionChipForGroup(e)}updateDirection(){let e=this._ctx.getDirection()===`vertical`;for(let[,t]of this._chipRenderers)t.dropTarget.setTargetZones(e?[`top`]:[`left`])}snapshotChipWidths(){let e=new Map;for(let[t,n]of this._chipRenderers)e.set(t,n.chip.element.getBoundingClientRect().width);return e}positionUnderlines(){var e;(e=this._indicator)==null||e.positionUnderlines()}trackUnderlines(){var e;(e=this._indicator)==null||e.trackUnderlines()}setGroupDragImage(e,t,n){if(!e.dataTransfer)return;let r=this._ctx.getDirection()===`vertical`,i=this._ctx.tabsList.cloneNode(!0);r?(i.classList.remove(`dv-tabs-container-vertical`,`dv-vertical`),i.classList.add(`dv-horizontal`),i.style.writingMode=`horizontal-tb`,i.style.height=`${this._ctx.tabsList.offsetWidth}px`):i.style.height=`${this._ctx.tabsList.offsetHeight}px`,i.style.width=`auto`,i.style.overflow=`visible`,i.style.pointerEvents=`none`;let a=Array.from(i.children),o=Array.from(this._ctx.tabsList.children);for(let e=a.length-1;e>=0;e--)o[e]!==n&&a[e].remove();let s=document.createElement(`div`);s.className=`dv-groupview dv-active-group`,s.style.position=`fixed`,s.style.top=`-10000px`,s.style.left=`0px`,s.style.height=`auto`,s.style.width=`auto`,s.style.pointerEvents=`none`;let c=document.createElement(`div`);c.className=`dv-tabs-and-actions-container`,c.style.height=`auto`,c.style.width=`auto`,s.appendChild(c),c.appendChild(i),this._ctx.accessor.element.appendChild(s);let l=i.querySelector(`.dv-tab-group-chip`),u=n.getBoundingClientRect(),d=e.clientX-u.left,f=e.clientY-u.top;if(l){let t=l.getBoundingClientRect(),n=s.getBoundingClientRect(),r=t.left-n.left+d,i=t.top-n.top+f;e.dataTransfer.setDragImage(s,r,i)}else e.dataTransfer.setDragImage(s,d,f);requestAnimationFrame(()=>{s.remove()})}cleanupTransition(e){var t;(t=this._pendingTransitionCleanups.get(e))==null||t(),this._pendingTransitionCleanups.delete(e)}updateDragAndDropState(){let e=ar(this._ctx.accessor.options);for(let i of this._chipRenderers.values()){var t,n,r;i.chip.element.draggable=e.html5,(t=i.html5DragSource)==null||t.setDisabled(!e.html5),(n=i.pointerDragSource)==null||n.setDisabled(!e.pointer),(r=i.pointerDragSource)==null||r.setTouchOnly(!e.pointerHandlesMouse)}}disposeChipDrag(e){var t;let n=this._chipRenderers.get(e);n&&((t=n.dragSourcesDisposable)==null||t.dispose(),n.html5DragSource=void 0,n.pointerDragSource=void 0,n.dragSourcesDisposable=void 0)}_buildChipGhostElement(e){let t=getComputedStyle(e),n=e.cloneNode(!0);return Array.from(t).forEach(e=>{n.style.setProperty(e,t.getPropertyValue(e),t.getPropertyPriority(e))}),n.style.position=`absolute`,n}disposeAll(){var e;(e=this._indicator)==null||e.dispose(),this._indicator=null;for(let[,e]of this._pendingTransitionCleanups)e();this._pendingTransitionCleanups.clear();for(let[,e]of this._chipRenderers){var t;e.chip.element.remove(),e.chip.dispose(),(t=e.dragSourcesDisposable)==null||t.dispose(),e.disposable.dispose()}this._chipRenderers.clear()}_ensureIndicator(){let e=(this._ctx.accessor.options.theme?.tabGroupIndicator??`wrap`)===`none`?Nr:Mr;this._indicator&&!(this._indicator instanceof e)&&(this._indicator.dispose(),this._indicator=null),this._indicator??=new e({tabsList:this._ctx.tabsList,getTabGroups:()=>this._ctx.group.model.getTabGroups(),getActivePanelId:()=>this._ctx.group.activePanel?.id,getTabMap:()=>this._ctx.getTabMap(),getChipElement:e=>this._chipRenderers.get(e)?.chip.element,getDirection:()=>this._ctx.getDirection(),getHeaderPosition:()=>this._ctx.group.model.headerPosition,getColorPalette:()=>this._ctx.accessor.tabGroupColorPalette})}_createChipDragSources(e,t){let n=ar(this._ctx.accessor.options);e.element.draggable=n.html5;let r=He.getInstance(),i=()=>(r.setData([new Ve(this._ctx.accessor.id,this._ctx.group.id,null,t.id)],Ve.prototype),{dispose:()=>{r.clearData(Ve.prototype)}}),a=Wn.createDragSource(e.element,{getData:i,disabled:!n.html5,isCancelled:()=>!ar(this._ctx.accessor.options).html5,onDragStart:n=>{`dataTransfer`in n&&n.dataTransfer&&this.setGroupDragImage(n,t,e.element),this._callbacks.onChipDragStart(t,e,n)},onDragEnd:n=>{var r,i;(r=(i=this._callbacks).onChipDragEnd)==null||r.call(i,t,e,n)}}),o=()=>{r.clearData(Ve.prototype)};e.element.addEventListener(`dragend`,o,{once:!0});let s=Gn.createDragSource(e.element,{getData:i,disabled:!n.pointer,touchOnly:!n.pointerHandlesMouse,isCancelled:()=>!ar(this._ctx.accessor.options).pointer,createGhost:()=>({element:this._buildChipGhostElement(e.element),offsetX:8,offsetY:8}),onDragStart:n=>{this._callbacks.onChipDragStart(t,e,n)}});return{html5DragSource:a,pointerDragSource:s,disposable:{dispose:()=>{a.dispose(),s.dispose(),e.element.removeEventListener(`dragend`,o)}}}}_ensureChipForGroup(e){let t=this._chipRenderers.get(e.id);if(t){if(!t.html5DragSource){let n=this._createChipDragSources(t.chip,e);t.html5DragSource=n.html5DragSource,t.pointerDragSource=n.pointerDragSource,t.dragSourcesDisposable=n.disposable}return}let n=this._ctx.accessor.options.createTabGroupChipComponent,r=n?n(e):new Or(this._ctx.accessor.tabGroupColorPalette);r.init({tabGroup:e,api:this._ctx.accessor.api});let i=this._createChipDragSources(r,e),a=[e.onDidChange(()=>{var t;(t=r.update)==null||t.call(r,{tabGroup:e}),this._updateTabGroupClasses()}),e.onDidPanelChange(()=>{this._positionChipForGroup(e),this._updateTabGroupClasses()}),e.onDidCollapseChange(()=>{this._updateTabGroupClasses()})],o=t=>{var n;(n=this._chipRenderers.get(e.id))==null||(n=n.pointerDragSource)==null||n.cancelPending(),this._callbacks.onChipContextMenu(e,t)};r instanceof Or?a.push(r.onContextMenu(o)):a.push(new ir(r.element,{onLongPress:o}),Qe(r.element,`contextmenu`,o));let s=this._ctx.getDirection()===`vertical`,c=new kn(r.element,{acceptedTargetZones:s?[`top`]:[`left`],overlayModel:{activationSize:{value:100,type:`percentage`}},canDisplayOverlay:(e,t)=>{if(this._ctx.group.locked||this._ctx.accessor.options.disableDnd)return!1;let n=Ue();return this._ctx.accessor.id===n?.viewId?this._ctx.accessor.options.theme?.tabAnimation!==`smooth`:this._ctx.group.model.canDisplayOverlay(e,t,`tab`)}});a.push(c,c.onDrop(t=>{this._callbacks.onChipDrop(e,t)}));let l=new Q(...a);this._chipRenderers.set(e.id,{chip:r,html5DragSource:i.html5DragSource,pointerDragSource:i.pointerDragSource,dragSourcesDisposable:i.disposable,disposable:l,dropTarget:c}),e.collapsed&&(this._skipNextCollapseAnimation=!0)}_positionChipForGroup(e){let t=this._chipRenderers.get(e.id);if(!t)return;let n=t.chip.element,r=e.panelIds;if(r.length===0){n.remove();return}let i=r[0],a=this._ctx.getTabMap().get(i);if(!a){n.remove();return}let o=a.value.element;n.nextSibling!==o&&this._ctx.tabsList.insertBefore(n,o)}_updateTabGroupClasses(){let e=this._ctx.group.model.getTabGroups(),t=this._ctx.getTabs(),n=this._ctx.getTabMap(),r=!1,i=new Map;for(let t of e)for(let e of t.panelIds)i.set(e,t);for(let e of t){let t=e.value,n=t.panel.id,o=i.get(n),s=!!o;if(it(t.element,`dv-tab--grouped`,s),o){let e=o.panelIds,i=e[0]===n,s=e[e.length-1]===n;it(t.element,`dv-tab--group-first`,i),it(t.element,`dv-tab--group-last`,s),Er(t.element,o.color,this._ctx.accessor.tabGroupColorPalette);let c=t.element.classList.contains(`dv-tab--group-collapsed`);if(!o.collapsed&&c){var a;r=!0,t.element.classList.remove(`dv-tab--group-collapsed`),t.element.classList.add(`dv-tab--group-expanding`),(a=this._pendingTransitionCleanups.get(n))==null||a();let e=()=>{t.element.classList.remove(`dv-tab--group-expanding`),t.element.style.removeProperty(`width`),t.element.removeEventListener(`transitionend`,e),clearTimeout(i),this._pendingTransitionCleanups.delete(n)},i=setTimeout(e,300);this._pendingTransitionCleanups.set(n,e),t.element.addEventListener(`transitionend`,e)}}else it(t.element,`dv-tab--group-first`,!1),it(t.element,`dv-tab--group-last`,!1),t.element.classList.remove(`dv-tab--group-collapsed`,`dv-tab--group-expanding`),t.element.style.removeProperty(`width`),t.element.style.removeProperty(`--dv-tab-group-color`)}let o=new Set;for(let t of e)if(o.add(t.id),t.collapsed&&t.panelIds.some(e=>{let t=n.get(e);return t&&!t.value.element.classList.contains(`dv-tab--group-collapsed`)})){if(this._skipNextCollapseAnimation){let e=[];for(let r of t.panelIds){let t=n.get(r);t&&(t.value.element.style.transition=`none`,t.value.element.classList.add(`dv-tab--group-collapsed`),e.push(t.value.element))}if(e.length>0){e[0].offsetHeight;for(let t of e)t.style.removeProperty(`transition`)}}else{r=!0;let e=this._ctx.getDirection()===`vertical`;for(let r of t.panelIds){let t=n.get(r);if(t&&!t.value.element.classList.contains(`dv-tab--group-collapsed`)){let n=t.value.element.getBoundingClientRect();e?t.value.element.style.height=`${n.height}px`:t.value.element.style.width=`${n.width}px`,t.value.element.offsetHeight,t.value.element.classList.add(`dv-tab--group-collapsed`)}}}}this._skipNextCollapseAnimation=!1,this._ensureIndicator(),this._indicator&&(this._indicator.syncUnderlineElements(o),r?this._indicator.trackUnderlines():this._indicator.positionUnderlines())}},Ir=class extends Q{get _tabs(){return this.host.tabItems}get _tabMap(){return this.host.tabMap}get _tabsList(){return this.host.tabsList}get _direction(){return this.host.direction}get group(){return this.host.groupPanel}get accessor(){return this.host.component}get _tabGroupManager(){return this.host.tabGroupManager}get _wrapMode(){return this._tabsList.classList.contains(mr)}get animState(){return this._animState}set animState(e){this._animState=e}get pendingCollapse(){return this._pendingCollapse}set pendingCollapse(e){this._pendingCollapse=e}set voidContainerElement(e){this._voidContainer=e}constructor(e){super(),this.host=e,this._animState=null,this._pendingMarginCleanups=new Map,this._pendingCollapse=!1,this._flipTransitionCleanup=null,this._voidContainer=null,this._extendedDropZone=null,this._pointerInsideTabsList=!1,this._wrapIndicatorEl=null,this.addDisposables({dispose:()=>{var e;(e=this._flipTransitionCleanup)==null||e.call(this)}})}setExtendedDropZone(e){this._extendedDropZone=e}setExternalInsertionIndex(e){this._animState&&e!==this._animState.currentInsertionIndex&&(this._animState.currentInsertionIndex=e,this.applyDragOverTransforms())}clearExternalAnimState(){this._animState&&(this.resetTabTransforms(),this._animState.sourceIndex===-1?this._animState=null:this._animState.currentInsertionIndex=null)}snapshotTabPositions(){let e=new Map;for(let t of this._tabs)e.set(t.value.panel.id,t.value.element.getBoundingClientRect());return e}getAverageTabWidth(){if(this._tabs.length===0)return 0;let e=this._direction===`vertical`,t=0;for(let n of this._tabs){let r=n.value.element.getBoundingClientRect();t+=e?r.height:r.width}return t/this._tabs.length}handlePointerDragMove(e,t){let n=(this._tabsList.ownerDocument??document).elementFromPoint(e,t);if(!(n&&(this._tabsList.contains(n)||this._extendedDropZone&&this._extendedDropZone.contains(n)))){this._pointerInsideTabsList&&(this._pointerInsideTabsList=!1,this.processDragLeave(n));return}this._pointerInsideTabsList=!0,this.processDragOver(e,t)}handlePointerDragEnd(e){e&&this._animState&&this._animState.sourceIndex!==-1&&!this._animState.sourceTabGroupId&&this._animState.currentInsertionIndex!==null&&this.isPointInsideTabsList(e.clientX,e.clientY)&&this.commitPointerReorder(e.pointerEvent),this._pointerInsideTabsList=!1,this.resetDragAnimation()}isPointInsideTabsList(e,t){let n=(this._tabsList.ownerDocument??document).elementFromPoint(e,t);return!!n&&this._tabsList.contains(n)}commitPointerReorder(e){let t=this._animState;if(t?.currentInsertionIndex==null)return;let n=t.currentInsertionIndex,r=t.sourceIndex,i=n-+(r!==-1&&r<n);this._animState=null,this.clearWrapDropIndicator(),this.uncollapseSourceTab(t.sourceTabId),i!==r&&this.host.fireDrop({event:e,index:i,targetTabGroupId:null})}processDragOver(e,t){if(this.accessor.options.disableDnd||(this._dropStaleAnimState(),!this._animState&&!this._initAnimStateForExternalDrag()))return!1;if(this._animState.sourceIndex!==-1){var n;(n=this.group.model.dropTargetContainer)==null||(n=n.model)==null||n.clear()}return this.handleDragOver({clientX:e,clientY:t}),!0}_dropStaleAnimState(){if(!this._animState)return;let e=Ue();e?.tabGroupId&&e.groupId!==this.group.id&&this._animState.sourceTabGroupId!==e.tabGroupId&&(this._animState=null)}_initAnimStateForExternalDrag(){let e=Ue();if(this.accessor.options.theme?.tabAnimation==="default"&&!e?.tabGroupId||!e||!(e.panelId||e.tabGroupId)||e.groupId===this.group.id)return!1;let t=this.getAverageTabWidth();return this._animState=e.tabGroupId?this._makeGroupDragAnimState(e,t):this._makeTabDragAnimState(e,t),!0}_makeGroupDragAnimState(e,t){let n=this.accessor.getPanel(e.groupId)?.model.getTabGroups().find(t=>t.id===e.tabGroupId),r=t*(n?.panelIds.length??1)+t;return{sourceTabId:``,sourceIndex:-1,tabPositions:this.snapshotTabPositions(),chipPositions:this._tabGroupManager.snapshotChipWidths(),currentInsertionIndex:null,targetTabGroupId:null,sourceTabGroupId:e.tabGroupId,sourceGroupPanelIds:n?new Set(n.panelIds):new Set,sourceChipWidth:t,cursorOffsetFromDragLeft:r/2,sourceGapWidth:r,containerLeft:this._tabsList.getBoundingClientRect().left}}_makeTabDragAnimState(e,t){return{sourceTabId:e.panelId,sourceIndex:-1,tabPositions:this.snapshotTabPositions(),chipPositions:this._tabGroupManager.snapshotChipWidths(),currentInsertionIndex:null,targetTabGroupId:null,sourceTabGroupId:null,sourceGroupPanelIds:null,sourceChipWidth:0,cursorOffsetFromDragLeft:t/2,sourceGapWidth:t,containerLeft:this._tabsList.getBoundingClientRect().left}}processDragLeave(e){if(this._animState&&!(e&&this._tabsList.contains(e))){if(e&&this._extendedDropZone?.contains(e)){this.resetTabTransforms(),this._animState.currentInsertionIndex=null;return}if(!(this._voidContainer&&e&&(e===this._voidContainer||this._voidContainer.contains(e)))){if(this.resetTabTransforms(),this._animState.sourceIndex===-1){var t;(t=this.group.model.dropTargetContainer)==null||(t=t.model)==null||t.clear(),this._animState=null}else this._animState.currentInsertionIndex=null}}}handleDragOver(e){if(!this._animState)return;if(this._wrapMode&&!this._animState.sourceTabGroupId){this.handleWrappedDragOver(e.clientX,e.clientY??0);return}let t=e.clientX,n=this._buildFirstPanelToGroupMap(),r=this._computeDragOverInsertionIndex(t,n),i=null;if(r!==null&&this._tabGroupManager.chipRenderers.size>0){let e=this._resolveInsertionAgainstTabGroups(t,r,n);r=e.insertionIndex,i=e.targetTabGroupId}(r!==this._animState.currentInsertionIndex||i!==this._animState.targetTabGroupId)&&(this._animState.currentInsertionIndex=r,this._animState.targetTabGroupId=i,this.accessor.options.theme?.tabAnimation===`smooth`&&this.applyDragOverTransforms())}_buildFirstPanelToGroupMap(){let e=new Map;if(this._tabGroupManager.chipRenderers.size===0)return e;for(let t of this.group.model.getTabGroups())t.id!==this._animState.sourceTabGroupId&&t.panelIds.length>0&&e.set(t.panelIds[0],t.id);return e}_computeDragOverInsertionIndex(e,t){let n=this._animState,r=n.sourceGroupPanelIds,i=e-n.cursorOffsetFromDragLeft-n.containerLeft,a=0,o=null;for(let e=0;e<this._tabs.length;e++){let s=this._tabs[e].value;if(s.panel.id===n.sourceTabId||r?.has(s.panel.id))continue;let c=t.get(s.panel.id);if(c){let t=n.chipPositions.get(c)??0;if(a+t>i){o??=e;break}a+=t}let l=n.tabPositions.get(s.panel.id),u=l?l.width:s.element.getBoundingClientRect().width;if(a+u/2<=i)a+=u,o=e+1;else{o??=e;break}}return o}_accumulatedWidthUpTo(e,t){let n=this._animState,r=n.sourceGroupPanelIds,i=0;for(let a=0;a<this._tabs.length;a++){let o=this._tabs[a].value;if(o.panel.id===n.sourceTabId||r?.has(o.panel.id))continue;if(a>=e)break;let s=t.get(o.panel.id);s&&(i+=n.chipPositions.get(s)??0);let c=n.tabPositions.get(o.panel.id);i+=c?c.width:o.element.getBoundingClientRect().width}return i}_resolveInsertionAgainstTabGroups(e,t,n){let r=!!this._animState.sourceTabGroupId,i=this._accumulatedWidthUpTo(t,n);for(let n of this.group.model.getTabGroups()){let a=this._evaluateTabGroupForInsertion(n,e,t,i,r);if(a)return a}return{insertionIndex:t,targetTabGroupId:null}}_evaluateTabGroupForInsertion(e,t,n,r,i){let a=this._resolveGroupRange(e);if(!a)return null;let{firstIdx:o,lastIdx:s}=a,c=n>=o&&n<=s,l=!c&&n===o-1;return!c&&!l?null:i?this._resolveGroupDragTarget(n,o,s,c):this._resolveTabDragTarget(e,t,n,r,o,l)}_resolveGroupRange(e){let t=this._animState,n=t.sourceGroupPanelIds,r=e.panelIds.filter(e=>e!==t.sourceTabId&&!n?.has(e));if(r.length===0)return null;let i=this._tabs.findIndex(e=>e.value.panel.id===r[0]),a=this._tabs.findIndex(e=>e.value.panel.id===r[r.length-1]);return i===-1||a===-1?null:{firstIdx:i,lastIdx:a}}_resolveGroupDragTarget(e,t,n,r){return r?{insertionIndex:e<(t+n+1)/2?t:n+1,targetTabGroupId:null}:{insertionIndex:e,targetTabGroupId:null}}_resolveTabDragTarget(e,t,n,r,i,a){let o=this._animState,s=o.chipPositions.get(e.id)??0;if(a)return this._onlySourceBetween(n,i)?t>=(e.collapsed?o.containerLeft+r+s/2:o.containerLeft+r+s)?{insertionIndex:i,targetTabGroupId:e.id}:{insertionIndex:n,targetTabGroupId:null}:null;let c=o.containerLeft+r+s;return n===i?{insertionIndex:n,targetTabGroupId:t>=c?e.id:null}:{insertionIndex:n,targetTabGroupId:e.id}}_onlySourceBetween(e,t){let n=this._animState;for(let r=e;r<t;r++){let e=this._tabs[r].value.panel.id;if(e!==n.sourceTabId&&!n.sourceGroupPanelIds?.has(e))return!1}return!0}handleWrappedDragOver(e,t){if(!this._animState)return;let n=this.computeWrappedInsertionIndex(e,t);(n!==this._animState.currentInsertionIndex||this._animState.targetTabGroupId!==null)&&(this._animState.currentInsertionIndex=n,this._animState.targetTabGroupId=null,this.updateWrapDropIndicator(n))}computeWrappedInsertionIndex(e,t){let n=this._direction===`vertical`,r=this._wrappedDragEntries();if(r.length===0)return this._tabs.length;let i=n?e:t,a=n?t:e,o=e=>n?e.left:e.top,s=e=>n?e.right:e.bottom,c=e=>n?e.top:e.left,l=e=>n?e.height:e.width,u=this._bucketWrappedLines(r,o,s),d=[...(u.find(e=>i>=e.start&&i<=e.end)??this._nearestWrappedLine(u,i)).items].sort((e,t)=>c(e.rect)-c(t.rect));for(let e of d)if(a<c(e.rect)+l(e.rect)/2)return e.index;return d[d.length-1].index+1}_wrappedDragEntries(){let e=this._animState?.sourceTabId,t=this._animState?.sourceGroupPanelIds,n=[];for(let r=0;r<this._tabs.length;r++){let i=this._tabs[r].value;i.panel.id!==e&&(t?.has(i.panel.id)||n.push({index:r,rect:i.element.getBoundingClientRect()}))}return n}_bucketWrappedLines(e,t,n){let r=[];for(let i of e){let e=t(i.rect),a=r.find(t=>Math.abs(t.start-e)<=2);a?(a.items.push(i),a.end=Math.max(a.end,n(i.rect))):r.push({start:e,end:n(i.rect),items:[i]})}return r.sort((e,t)=>e.start-t.start),r}_nearestWrappedLine(e,t){let n=e=>t<e.start?e.start-t:t-e.end;return e.reduce((e,t)=>n(t)<n(e)?t:e,e[0])}updateWrapDropIndicator(e){this.clearWrapDropIndicator();let t=this._tabs.length;if(t===0)return;let n=this._animState?.sourceTabId;if(e<t){let t=this._tabs[e].value.element;if(this._tabs[e].value.panel.id===n)return;t.classList.add(`dv-tab--reorder-before`),this._wrapIndicatorEl=t}else{let e=this._tabs[t-1].value.element;e.classList.add(`dv-tab--reorder-after`),this._wrapIndicatorEl=e}}clearWrapDropIndicator(){var e;(e=this._wrapIndicatorEl)==null||e.classList.remove(`dv-tab--reorder-before`,`dv-tab--reorder-after`),this._wrapIndicatorEl=null}_removeClassInstantlyBatch(e,t){let n=[];for(let r of e)r.classList.contains(t)&&(r.style.transition=`none`,it(r,t,!1),n.push(r));if(n.length>0){n[0].getBoundingClientRect();for(let e of n)e.style.removeProperty(`transition`)}}uncollapseSourceTab(e){let t=this._tabMap.get(e);t&&this._removeClassInstantlyBatch([t.value.element],`dv-tab--dragging`)}applyDragOverTransforms(e=!1){if(this._wrapMode)return;if(this._animState?.currentInsertionIndex==null){this.resetTabTransforms();return}if(this._pendingCollapse)return;let t=this._animState.currentInsertionIndex,n=this._computeGapWidth(),r=this._computeChipToShift(t);this._applyGapMargins(t,n,r,e)}_computeGapWidth(){let e=this._animState;if(e.sourceTabGroupId&&e.sourceGroupPanelIds)return e.sourceGapWidth;let t=e.tabPositions.get(e.sourceTabId);return t?t.width:this.getAverageTabWidth()}_computeChipToShift(e){if(this._tabGroupManager.chipRenderers.size===0)return null;for(let t of this.group.model.getTabGroups()){let n=this._chipToShiftForGroup(t,e);if(n!==void 0)return n}return null}_chipToShiftForGroup(e,t){let n=this._animState;if(e.id===n.sourceTabGroupId||e.panelIds.includes(n.sourceTabId))return;let r=e.panelIds.filter(e=>e!==n.sourceTabId&&!n.sourceGroupPanelIds?.has(e));if(r.length===0)return;let i=this._tabs.findIndex(e=>e.value.panel.id===r[0]);if((!n.targetTabGroupId||n.targetTabGroupId===e.id&&e.collapsed)&&!(i<t)){if(this._onlySourceBetween(t,i)){let t=this._tabGroupManager.chipRenderers.get(e.id);if(t)return t.chip.element}return null}}_applyGapMargins(e,t,n,r){let i=this._animState,a=i.sourceGroupPanelIds,o=!1;for(let[e,t]of this._tabGroupManager.chipRenderers)e!==i.sourceTabGroupId&&this._clearMargin(t.chip.element,r);n&&(this._setMargin(n,`${t}px`,r),o=!0);for(let n=0;n<this._tabs.length;n++){let s=this._tabs[n].value;s.panel.id!==i.sourceTabId&&(a?.has(s.panel.id)||(!o&&n>=e?(this._setMargin(s.element,`${t}px`,r),o=!0):this._clearMargin(s.element,r)))}this._tabGroupManager.trackUnderlines()}_shiftingClass(e){return e.classList.contains(`dv-tab-group-chip`)?`dv-tab-group-chip--shifting`:`dv-tab--shifting`}_setMargin(e,t,n){n?(e.style.transition=`none`,e.style.marginLeft=t,e.getBoundingClientRect(),e.style.removeProperty(`transition`)):e.style.marginLeft=t,it(e,this._shiftingClass(e),!0)}_clearMargin(e,t){let n=this._shiftingClass(e),r=this._pendingMarginCleanups.get(e);if(r&&r(),t||!e.style.marginLeft)e.style.removeProperty(`margin-left`),it(e,n,!1);else{e.style.marginLeft=`0px`,it(e,n,!0);let t=()=>{e.style.removeProperty(`margin-left`),it(e,n,!1),e.removeEventListener(`transitionend`,t),clearTimeout(r),this._pendingMarginCleanups.delete(e)},r=setTimeout(t,300);this._pendingMarginCleanups.set(e,t),e.addEventListener(`transitionend`,t)}}resetTabTransforms(){this.clearWrapDropIndicator();for(let[,e]of this._pendingMarginCleanups)e();this._pendingMarginCleanups.clear();for(let e of this._tabs)e.value.element.style.removeProperty(`margin-left`),e.value.element.style.removeProperty(`margin-right`),e.value.element.style.removeProperty(`margin-top`),e.value.element.style.removeProperty(`margin-bottom`),e.value.element.style.removeProperty(`transform`),it(e.value.element,`dv-tab--shifting`,!1);for(let[,e]of this._tabGroupManager.chipRenderers)e.chip.element.style.removeProperty(`margin-left`),it(e.chip.element,`dv-tab-group-chip--shifting`,!1);this._tabGroupManager.positionUnderlines()}commitGroupMove(e,t){let n=Ue();if(this._tabGroupManager.disposeChipDrag(e),this.group.model.getTabGroups().some(t=>t.id===e)){if(this.accessor.options.theme?.tabAnimation===`smooth`){this._clearGroupDragClasses(e);let n=this.snapshotTabPositions();this.resetTabTransforms(),this.group.model.moveTabGroup(e,t),this.runFlipAnimation(n,``,!1)}else this._tabGroupManager.skipNextCollapseAnimation=!0,this.group.model.moveTabGroup(e,t)}else n&&(this.resetTabTransforms(),this.accessor.moveGroupOrPanel({from:{groupId:n.groupId,tabGroupId:n.tabGroupId??e},to:{group:this.group,position:`center`,index:t}}))}_clearGroupDragClasses(e){let t=this._tabGroupManager.chipRenderers.get(e);t&&this._removeClassInstantlyBatch([t.chip.element],`dv-tab-group-chip--dragging`),this._removeClassInstantlyBatch(this._tabs.map(e=>e.value.element),`dv-tab--dragging`);let n=this._tabGroupManager.groupUnderlines.get(e);n&&n.style.removeProperty(`display`),this._tabGroupManager.skipNextCollapseAnimation=!0}resetDragAnimation(){if(this._pendingCollapse=!1,this._animState){this.resetTabTransforms(),this._animState.sourceTabGroupId?this._clearGroupDragClasses(this._animState.sourceTabGroupId):this._removeClassInstantlyBatch(this._tabs.map(e=>e.value.element),`dv-tab--dragging`),this._animState=null;for(let[,e]of this._tabGroupManager.groupUnderlines)e.style.removeProperty(`display`)}}runFlipAnimation(e,t,n=!1,r){if(this._wrapMode)return;let i=!1;for(let a=0;a<this._tabs.length;a++)this._applyFlipTransform(this._tabs[a],a,t,n,e,r)&&(i=!0);i&&this._scheduleFlipReset()}_applyFlipTransform(e,t,n,r,i,a){let o=this._direction===`vertical`,s=e.value.panel.id;if(s===n){if(!r)return!1;let t=e.value.element.getBoundingClientRect();return e.value.element.style.transform=o?`translateY(${t.height}px)`:`translateX(${t.width}px)`,it(e.value.element,`dv-tab--shifting`,!0),!0}if(a!==void 0&&(t<a.from||t>a.to))return!1;let c=i.get(s);if(!c)return!1;let l=e.value.element.getBoundingClientRect(),u=o?c.top-l.top:c.left-l.left;return Math.abs(u)<1?!1:(e.value.element.style.transform=o?`translateY(${u}px)`:`translateX(${u}px)`,it(e.value.element,`dv-tab--shifting`,!0),!0)}_scheduleFlipReset(){requestAnimationFrame(()=>{var e;for(let e of this._tabs)e.value.element.style.transform&&(e.value.element.style.transform=``);this._tabGroupManager.trackUnderlines(),(e=this._flipTransitionCleanup)==null||e.call(this);let t=e=>{if(e.propertyName===`transform`){n();for(let e of this._tabs)it(e.value.element,`dv-tab--shifting`,!1);this._tabGroupManager.positionUnderlines()}},n=()=>{this._tabsList.removeEventListener(`transitionend`,t),this._flipTransitionCleanup=null};this._flipTransitionCleanup=n,this._tabsList.addEventListener(`transitionend`,t)})}},Lr=class extends Q{get _animState(){return this._reorder.animState}set _animState(e){this._reorder.animState=e}get _pendingCollapse(){return this._reorder.pendingCollapse}set _pendingCollapse(e){this._reorder.pendingCollapse=e}get tabItems(){return this._tabs}get tabMap(){return this._tabMap}get tabsList(){return this._tabsList}get groupPanel(){return this.group}get component(){return this.accessor}get tabGroupManager(){return this._tabGroupManager}fireDrop(e){this._onDrop.fire(e)}setOverflowExclude(e){this._overflowExclude=e,this.refreshOverflow()}setForcedOverflow(e){this._forcedOverflow=e,this.refreshOverflow()}refreshOverflow(){this._showTabsOverflowControl&&this.toggleDropdown({reset:!1}),this._applyPinnedSticky()}setPinnedSticky(e){this._pinnedSticky!==e&&(this._pinnedSticky=e,this._applyPinnedSticky())}_applyPinnedSticky(){let e=this._pinnedSticky?this._tabs.filter(e=>this._overflowExclude(e.value.panel.id)):[];if(e.length===0&&!this._hasPinnedStickyStyling)return;for(let e of this._tabs){let t=e.value.element;t.classList.contains(`dv-tab--pinned-sticky`)&&(t.classList.remove(`dv-tab--pinned-sticky`),t.style.removeProperty(`--dv-pinned-sticky-left`))}if(e.length===0){this._hasPinnedStickyStyling=!1;return}let t=e.map(e=>e.value.element.offsetLeft);e.forEach((e,n)=>{let r=e.value.element;r.classList.add(`dv-tab--pinned-sticky`),r.style.setProperty(`--dv-pinned-sticky-left`,`${t[n]}px`)}),this._hasPinnedStickyStyling=!0}get showTabsOverflowControl(){return this._showTabsOverflowControl}set showTabsOverflowControl(e){if(this._showTabsOverflowControl!=e){if(this._showTabsOverflowControl=e,e){let e=new et(this._tabsList);this._observerDisposable.value=new Q(e,e.onDidChange(e=>{let t=e.hasScrollX||e.hasScrollY;this.toggleDropdown({reset:!t}),this._applyPinnedSticky(),this._tabGroupManager.groupUnderlines.size>0&&this._tabGroupManager.positionUnderlines()}),Qe(this._tabsList,`scroll`,()=>{this.toggleDropdown({reset:!1}),this._applyPinnedSticky(),this._tabGroupManager.groupUnderlines.size>0&&this._tabGroupManager.positionUnderlines()}))}else this._observerDisposable.value=We.NONE}}get element(){return this._element}get tabsListElement(){return this._tabsList}set voidContainer(e){var t;(t=this._voidContainerListeners)==null||t.dispose(),this._voidContainerListeners=null,this._reorder.voidContainerElement=e,e&&(this._voidContainerListeners=new Q(Qe(e,`dragover`,e=>{this._animState&&e.preventDefault()}),Qe(e,`drop`,e=>{this._animState?.sourceTabGroupId&&this._animState.currentInsertionIndex!==null&&(e.preventDefault(),e.stopPropagation(),this.handleVoidDrop())})))}handleVoidDrop(){if(!this._animState?.sourceTabGroupId)return!1;let e=this._animState.sourceTabGroupId,t=this._animState.currentInsertionIndex??this._tabs.length;return this._animState=null,this._commitGroupMove(e,t),!0}get panels(){return this._tabs.map(e=>e.value.panel.id)}get size(){return this._tabs.length}get tabs(){return this._tabs.map(e=>e.value)}get direction(){return this._direction}set direction(e){if(this._direction!==e){this._direction=e,this._tabsList.setAttribute(`aria-orientation`,e===`vertical`?`vertical`:`horizontal`),this._scrollbar&&(this._scrollbar.orientation=e),nt(this._tabsList,`dv-horizontal`,`dv-vertical`),e===`vertical`?rt(this._tabsList,`dv-tabs-container-vertical`,`dv-vertical`):(nt(this._tabsList,`dv-tabs-container-vertical`),rt(this._tabsList,`dv-horizontal`));for(let t of this._tabs)t.value.setDirection(e);this._tabGroupManager.updateDirection()}}constructor(e,t,n){super(),this.group=e,this.accessor=t,this._observerDisposable=new Ge,this._pointerActivation=new Ge,this._scrollbar=null,this._tabs=[],this._tabMap=new Map,this.selectedIndex=-1,this._showTabsOverflowControl=!1,this._overflowExclude=()=>!1,this._forcedOverflow=()=>!1,this._pinnedSticky=!1,this._hasPinnedStickyStyling=!1,this._direction=`horizontal`,this._voidContainerListeners=null,this._onTabDragStart=new $,this.onTabDragStart=this._onTabDragStart.event,this._onDrop=new $,this.onDrop=this._onDrop.event,this._onWillShowOverlay=new $,this.onWillShowOverlay=this._onWillShowOverlay.event,this._onOverflowTabsChange=new $,this.onOverflowTabsChange=this._onOverflowTabsChange.event,this._tabsList=document.createElement(`div`),this._tabsList.className=`dv-tabs-container`,this._tabsList.setAttribute(`role`,`tablist`),this._tabsList.setAttribute(`aria-orientation`,this._direction===`vertical`?`vertical`:`horizontal`),this.showTabsOverflowControl=n.showTabsOverflowControl,t.options.scrollbars===`native`?this._element=this._tabsList:(this._scrollbar=new pr(this._tabsList),this._scrollbar.orientation=this.direction,this._element=this._scrollbar.element,this.addDisposables(this._scrollbar)),this._tabGroupManager=new Fr({group:this.group,accessor:this.accessor,tabsList:this._tabsList,getTabs:()=>this._tabs,getTabMap:()=>this._tabMap,getDirection:()=>this._direction},{onChipContextMenu:(e,t)=>{var n;(n=this.accessor.contextMenuService)==null||n.showForChip(e,this.group,t)},onChipDragStart:(e,t,n)=>{this._handleChipDragStart(e,t,n)},onChipDragEnd:()=>{this._reorder.resetDragAnimation()},onChipDrop:(e,t)=>{this._handleChipDrop(e,t)}}),this._reorder=new Ir(this),this.addDisposables(this._onOverflowTabsChange,this._observerDisposable,this._pointerActivation,this._onWillShowOverlay,this._onDrop,this._onTabDragStart,this._reorder,Nn.getInstance().onDragEnd(e=>{this._reorder.handlePointerDragEnd(e)}),Nn.getInstance().onDragMove(e=>{this._reorder.handlePointerDragMove(e.clientX,e.clientY)}),Qe(this.element,`pointerdown`,e=>{e.defaultPrevented||e.button===0&&this.accessor.doSetGroupActive(this.group)}),Qe(this._tabsList,`wheel`,e=>{let t=this._direction===`vertical`,n=t?e.deltaY||e.deltaX:e.deltaX||e.deltaY;if(n===0)return;let r=t?this._tabsList.scrollHeight-this._tabsList.clientHeight:this._tabsList.scrollWidth-this._tabsList.clientWidth;if(r<=0)return;let i=t?this._tabsList.scrollTop:this._tabsList.scrollLeft;n<0&&i<=0||n>0&&i>=r||(e.preventDefault(),e.stopPropagation(),t?this._tabsList.scrollTop=i+n:this._tabsList.scrollLeft=i+n)},{passive:!1}),Qe(this._tabsList,`keydown`,e=>{this._onKeyDown(e)}),Qe(this._tabsList,`dragover`,e=>{this._reorder.processDragOver(e.clientX,e.clientY)&&e.preventDefault()},!0),Qe(this._tabsList,`dragleave`,e=>{this._reorder.processDragLeave(e.relatedTarget)},!0),Qe(this._tabsList,`dragend`,()=>{this._reorder.resetDragAnimation()}),Qe(this._tabsList,`drop`,e=>{var t;if(this._animState?.currentInsertionIndex==null||this.accessor.options.theme?.tabAnimation!==`smooth`&&!this._animState.sourceTabGroupId)return;e.stopPropagation(),e.preventDefault(),(t=this.group.model.dropTargetContainer)==null||(t=t.model)==null||t.clear();let n=this._animState;if(this._animState=null,this._pendingCollapse=!1,n.sourceTabGroupId){this._commitGroupMove(n.sourceTabGroupId,n.currentInsertionIndex);return}let r=n.currentInsertionIndex,i=n.sourceIndex,a=r-+(i!==-1&&i<r),o=this.group.model.getTabGroupForPanel(n.sourceTabId);if(a===i&&!n.targetTabGroupId&&!o){this._reorder.uncollapseSourceTab(n.sourceTabId),this.resetTabTransforms();return}this._reorder.uncollapseSourceTab(n.sourceTabId);let s=this.snapshotTabPositions();this.resetTabTransforms(),this._onDrop.fire({event:e,index:a,targetTabGroupId:n.targetTabGroupId}),this.runFlipAnimation(s,n.sourceTabId,n.sourceIndex===-1,{from:Math.min(i,a),to:Math.max(i,a)})},!0),We.from(()=>{var e;(e=this._voidContainerListeners)==null||e.dispose(),this._reorder.resetDragAnimation(),this._tabGroupManager.disposeAll();for(let{value:e,disposable:t}of this._tabs)t.dispose(),e.dispose();this._tabs=[],this._tabMap.clear()}))}indexOf(e){return this._tabs.findIndex(t=>t.value.panel.id===e)}getTabId(e){return this._tabMap.get(e)?.value.element.id}getPanelForTab(e){for(let{value:t}of this._tabs)if(t.element===e||t.element.contains(e))return t.panel}isActive(e){return this.selectedIndex>-1&&this._tabs[this.selectedIndex].value===e}_onKeyDown(e){let t=this._tabs.findIndex(t=>t.value.element===e.target);if(t===-1)return;let n=this._direction===`vertical`,r=n?`ArrowDown`:`ArrowRight`,i=n?`ArrowUp`:`ArrowLeft`,a=this._tabs.length-1;switch(e.key){case r:e.preventDefault(),this._focusTab(Math.min(t+1,a));break;case i:e.preventDefault(),this._focusTab(Math.max(t-1,0));break;case`Home`:e.preventDefault(),this._focusTab(0);break;case`End`:e.preventDefault(),this._focusTab(a);break;case`Enter`:case` `:e.preventDefault(),this.accessor.withOrigin(`user`,()=>this._tabs[t].value.panel.api.setActive());break;case`Delete`:case`Backspace`:e.preventDefault(),this._closeTab(t)}}_closeTab(e){let t=this._tabs[e]?.value;if(!t)return;let n=(this._tabs[e+1]?.value??this._tabs[e-1]?.value)?.panel.id;if(t.panel.api.close(),n!==void 0){let e=this._tabs.findIndex(e=>e.value.panel.id===n);e>-1&&this._focusTab(e)}}_focusTab(e){for(let t=0;t<this._tabs.length;t++)this._tabs[t].value.element.tabIndex=t===e?0:-1;this._tabs[e].value.element.focus()}focusActiveTab(){if(this._tabs.length===0)return;let e=this.group.activePanel?.id,t=e?this._tabs.findIndex(t=>t.value.panel.id===e):-1;this._focusTab(t>-1?t:0)}setActivePanel(e){let t=this._direction===`vertical`;for(let n of this._tabs){let r=e.id===n.value.panel.id;n.value.setActive(r),r&&this._scrollTabIntoView(n.value.element,t)}this._tabGroupManager.groupUnderlines.size>0&&this._tabGroupManager.positionUnderlines()}_scrollTabIntoView(e,t){let n=e.parentElement;if(!n)return;let r=t?e.offsetTop:e.offsetLeft,i=t?e.offsetHeight:e.offsetWidth,a=t?n.scrollTop:n.scrollLeft,o=t?n.clientHeight:n.clientWidth;(r<a||r+i>a+o)&&(t?n.scrollTop=r:n.scrollLeft=r)}_activateOnPointerDown(e){if(!ar(this.accessor.options).html5){this.group.model.openPanel(e);return}let t=requestAnimationFrame(()=>{this._tabMap.has(e.id)&&this.group.model.openPanel(e)});this._pointerActivation.value={dispose:()=>cancelAnimationFrame(t)}}openPanel(e,t=this._tabs.length){if(this._tabMap.has(e.id))return;let n=new lr(e,this.accessor,this.group);n.setContent(e.view.tab),this._direction!==`horizontal`&&n.setDirection(this._direction);let r={value:n,disposable:new Q(n.onDragStart(t=>{if(this._onTabDragStart.fire({nativeEvent:t,panel:e}),this.accessor.options.theme?.tabAnimation===`smooth`){let t=n.element.getBoundingClientRect().width,r=this._tabs.findIndex(e=>e.value===n);this._animState={sourceTabId:e.id,sourceIndex:r,tabPositions:this.snapshotTabPositions(),chipPositions:this._tabGroupManager.snapshotChipWidths(),currentInsertionIndex:null,targetTabGroupId:null,sourceTabGroupId:null,sourceGroupPanelIds:null,sourceChipWidth:0,cursorOffsetFromDragLeft:t/2,sourceGapWidth:t,containerLeft:this._tabsList.getBoundingClientRect().left},this._pendingCollapse=!0,requestAnimationFrame(()=>{var e;this._pendingCollapse=!1,this._animState&&(this._tabsList.classList.contains(`dv-tabs-container--wrap`)||(n.element.style.transition=`none`,it(n.element,`dv-tab--dragging`,!0),n.element.offsetHeight),(e=this._animState).currentInsertionIndex??(e.currentInsertionIndex=r),this.applyDragOverTransforms(!0),n.element.style.removeProperty(`transition`))})}}),n.onTabClick(t=>{t.defaultPrevented||this.group.api.location.type===`edge`&&(this.group.activePanel===e?this.group.api.isCollapsed()?this.group.api.expand():this.group.api.collapse():(this.group.model.openPanel(e),this.group.api.isCollapsed()&&this.group.api.expand()))}),n.onPointerDown(t=>{if(t.defaultPrevented)return;let r=!this.accessor.options.disableFloatingGroups,i=this.group.api.location.type===`floating`&&this.size===1;if(r&&!i&&t.shiftKey){t.preventDefault();let e=this.accessor.getGroupPanel(n.panel.id),{top:r,left:i}=n.element.getBoundingClientRect(),{top:a,left:o}=this.accessor.element.getBoundingClientRect();this.accessor.addFloatingGroup(e,{x:i-o,y:r-a,inDragMode:!0});return}t.button===0&&this.group.api.location.type!==`edge`&&this.group.activePanel!==e&&this._activateOnPointerDown(e)}),n.onDrop(e=>{let t=this._animState;this._animState=null,this._pendingCollapse=!1;let r=this._tabs.findIndex(e=>e.value===n);if(t){let n=e.position===`right`?r+1:r;if(t.sourceTabGroupId){this._commitGroupMove(t.sourceTabGroupId,t.currentInsertionIndex??n);return}this._reorder.uncollapseSourceTab(t.sourceTabId);let i=this.snapshotTabPositions();this.resetTabTransforms(),this._onDrop.fire({event:e.nativeEvent,index:n,targetTabGroupId:t.targetTabGroupId}),this.accessor.options.theme?.tabAnimation===`smooth`&&this.runFlipAnimation(i,t.sourceTabId,t.sourceIndex===-1,t.sourceIndex===-1?void 0:{from:Math.min(t.sourceIndex,n),to:Math.max(t.sourceIndex,n)})}else{let t=this._direction===`vertical`?`bottom`:`right`,i=e.position===t?r+1:r,a=Ue(),o=a?this._tabs.findIndex(e=>e.value.panel.id===a.panelId):-1,s=i-+(o!==-1&&o<i),c=this.group.model.getTabGroupForPanel(n.panel.id)?.id??null;this._onDrop.fire({event:e.nativeEvent,index:s,targetTabGroupId:c})}}),n.onWillShowOverlay(e=>{this._onWillShowOverlay.fire(new ur(e,{kind:`tab`,panel:this.group.activePanel,api:this.accessor.api,group:this.group,getData:Ue}))}))};this.addTab(r,t),this._tabGroupManager.positionAllChips(),this._animState&&(this._animState.tabPositions=this.snapshotTabPositions(),this._animState.chipPositions=this._tabGroupManager.snapshotChipWidths(),this.applyDragOverTransforms())}delete(e){this._animState?.sourceTabId===e&&(this.resetTabTransforms(),this._animState=null),this._tabGroupManager.cleanupTransition(e);let t=this.indexOf(e),n=this._tabs.splice(t,1)[0];if(this._tabMap.delete(e),n){let{value:e,disposable:t}=n;t.dispose(),e.dispose(),e.element.remove()}this._animState&&(this._animState.tabPositions=this.snapshotTabPositions(),this._animState.chipPositions=this._tabGroupManager.snapshotChipWidths(),this.applyDragOverTransforms())}addTab(e,t=this._tabs.length){if(t<0||t>this._tabs.length)throw Error(`invalid location`);let n=t<this._tabs.length?this._tabs[t].value.element:null;this._tabsList.insertBefore(e.value.element,n),this._tabs=[...this._tabs.slice(0,t),e,...this._tabs.slice(t)],this._tabMap.set(e.value.panel.id,e),this.selectedIndex<0&&(this.selectedIndex=t)}toggleDropdown(e){let t=this._tabs.some(e=>!this._overflowExclude(e.value.panel.id)&&this._forcedOverflow(e.value.panel.id));if(e.reset&&!t){this._onOverflowTabsChange.fire({tabs:[],tabGroups:[],pinnedTabs:[],reset:!0});return}let n=this._tabs.filter(t=>!this._overflowExclude(t.value.panel.id)&&(this._forcedOverflow(t.value.panel.id)||!e.reset&&!bt(t.value.element,this._tabsList))).map(e=>e.value.panel.id),r=e.reset?[]:this._tabs.filter(e=>this._overflowExclude(e.value.panel.id)&&e.value.element.getBoundingClientRect().width>0&&!bt(e.value.element,this._tabsList)).map(e=>e.value.panel.id),i=new Set(n),a=[];for(let e of this.group.model.getTabGroups()){let t=this._tabGroupManager.chipRenderers.get(e.id),r=t&&!bt(t.chip.element,this._tabsList),o=e.panelIds.length>0&&e.panelIds.every(e=>i.has(e));if((r||o)&&(a.push(e.id),e.collapsed))for(let t of e.panelIds)i.has(t)||(i.add(t),n.push(t))}this._onOverflowTabsChange.fire({tabs:n,tabGroups:a,pinnedTabs:r,reset:!1})}updateDragAndDropState(){for(let e of this._tabs)e.value.updateDragAndDropState();this._tabGroupManager.updateDragAndDropState()}updateTabGroups(){this._tabGroupManager.update()}refreshTabGroupAccent(){this._tabGroupManager.refreshAccents()}_handleChipDragStart(e,t,n){let r=e.panelIds[0],i=r?this._tabs.findIndex(e=>e.value.panel.id===r):-1,a=t.element.getBoundingClientRect(),o=a.width;for(let t of e.panelIds){let e=this._tabMap.get(t);e&&(o+=e.value.element.getBoundingClientRect().width)}if(this._animState={sourceTabId:``,sourceIndex:i,tabPositions:this.snapshotTabPositions(),chipPositions:this._tabGroupManager.snapshotChipWidths(),currentInsertionIndex:null,targetTabGroupId:null,sourceTabGroupId:e.id,sourceGroupPanelIds:new Set(e.panelIds),sourceChipWidth:a.width,cursorOffsetFromDragLeft:n.clientX-a.left,sourceGapWidth:o,containerLeft:this._tabsList.getBoundingClientRect().left},this.accessor.options.theme?.tabAnimation!==`smooth`)return;let s=new Set(e.panelIds);this._pendingCollapse=!0,requestAnimationFrame(()=>{var t;if(this._pendingCollapse=!1,!this._animState)return;for(let e of this._tabs)s.has(e.value.panel.id)&&(e.value.element.style.transition=`none`,it(e.value.element,`dv-tab--dragging`,!0));let n=this._tabGroupManager.chipRenderers.get(e.id);n&&(n.chip.element.style.transition=`none`,it(n.chip.element,`dv-tab-group-chip--dragging`,!0)),this._tabsList.offsetHeight;let r=this._tabGroupManager.groupUnderlines.get(e.id);r&&(r.style.display=`none`),(t=this._animState).currentInsertionIndex??(t.currentInsertionIndex=i),this.applyDragOverTransforms(!0);for(let e of this._tabs)s.has(e.value.panel.id)&&e.value.element.style.removeProperty(`transition`);n&&n.chip.element.style.removeProperty(`transition`)})}_handleChipDrop(e,t){let n=e.panelIds[0];if(!n)return;let r=this._tabs.findIndex(e=>e.value.panel.id===n);if(r===-1)return;let i=Ue(),a=i?.groupId===this.group.id&&i?.panelId?this._tabs.findIndex(e=>e.value.panel.id===i.panelId):-1,o=r-+(a!==-1&&a<r);this._onDrop.fire({event:t.nativeEvent,index:o,targetTabGroupId:null})}setExtendedDropZone(e){this._reorder.setExtendedDropZone(e)}setExternalInsertionIndex(e){this._reorder.setExternalInsertionIndex(e)}clearExternalAnimState(){this._reorder.clearExternalAnimState()}snapshotTabPositions(){return this._reorder.snapshotTabPositions()}handleDragOver(e){this._reorder.handleDragOver(e)}applyDragOverTransforms(e=!1){this._reorder.applyDragOverTransforms(e)}resetTabTransforms(){this._reorder.resetTabTransforms()}_commitGroupMove(e,t){this._reorder.commitGroupMove(e,t)}runFlipAnimation(e,t,n=!1,r){this._reorder.runFlipAnimation(e,t,n,r)}};function Rr(){let e=document.createElement(`div`);e.className=`dv-tabs-overflow-dropdown-default`;let t=document.createElement(`span`);t.textContent=``;let n=tr();return e.appendChild(n),e.appendChild(t),{element:e,update:e=>{t.textContent=`${e.tabs}`}}}var zr=class extends Q{get onTabDragStart(){return this.tabs.onTabDragStart}get panels(){return this.tabs.panels}get size(){return this.tabs.size}get hidden(){return this._hidden}set hidden(e){this._hidden=e,this.element.style.display=e?`none`:``}get direction(){return this._direction}set direction(e){this._direction=e,e===`vertical`?(rt(this._element,`dv-groupview-header-vertical`),rt(this.rightActionsContainer,`dv-right-actions-container-vertical`),this.tabs.direction=e):(nt(this._element,`dv-groupview-header-vertical`),nt(this.rightActionsContainer,`dv-right-actions-container-vertical`),this.tabs.direction=e)}get element(){return this._element}get tabsListElement(){return this.tabs.tabsListElement}constructor(e,t){super(),this.accessor=e,this.group=t,this._hidden=!1,this._direction=`horizontal`,this._dropIndexResolver=(e,t)=>t,this._pinnedRow=void 0,this.dropdownPart=null,this._overflowTabs=[],this._overflowTabGroups=[],this._overflowPinnedTabs=[],this._dropdownDisposable=new Ge,this._onDrop=new $,this.onDrop=this._onDrop.event,this._onGroupDragStart=new $,this.onGroupDragStart=this._onGroupDragStart.event,this._onWillShowOverlay=new $,this.onWillShowOverlay=this._onWillShowOverlay.event,this._element=document.createElement(`div`),this._element.className=`dv-tabs-and-actions-container`,it(this._element,`dv-full-width-single-tab`,this.accessor.options.singleTabMode===`fullwidth`),this.rightActionsContainer=document.createElement(`div`),this.rightActionsContainer.className=`dv-right-actions-container`,this.leftActionsContainer=document.createElement(`div`),this.leftActionsContainer.className=`dv-left-actions-container`,this.preActionsContainer=document.createElement(`div`),this.preActionsContainer.className=`dv-pre-actions-container`,this.tabs=new Lr(t,e,{showTabsOverflowControl:!e.options.disableTabsOverflowList}),this.voidContainer=new fr(this.accessor,this.group),this.tabs.voidContainer=this.voidContainer.element,this._element.appendChild(this.preActionsContainer),this._element.appendChild(this.tabs.element),this._element.appendChild(this.leftActionsContainer),this._element.appendChild(this.voidContainer.element),this._element.appendChild(this.rightActionsContainer),this.tabs.setExtendedDropZone(this._element),this.addDisposables(this.tabs.onDrop(e=>this._onDrop.fire(e)),this.tabs.onWillShowOverlay(e=>this._onWillShowOverlay.fire(e)),e.onDidOptionsChange(()=>{this.tabs.showTabsOverflowControl=!e.options.disableTabsOverflowList}),this.tabs.onOverflowTabsChange(e=>{this.toggleDropdown(e)}),this.tabs,this._onWillShowOverlay,this._onDrop,this._onGroupDragStart,this.voidContainer,this.voidContainer.onDragStart(e=>{this._onGroupDragStart.fire({nativeEvent:e,group:this.group})}),this.voidContainer.onDrop(e=>{this.tabs.handleVoidDrop()||this._onDrop.fire({event:e.nativeEvent,index:this.tabs.size})}),this.voidContainer.onWillShowOverlay(e=>{this._onWillShowOverlay.fire(new ur(e,{kind:`header_space`,panel:this.group.activePanel,api:this.accessor.api,group:this.group,getData:Ue}))}),Qe(this.leftActionsContainer,`dragleave`,e=>{let t=e.relatedTarget;!this.leftActionsContainer.contains(t)&&!this._element.contains(t)&&this.tabs.clearExternalAnimState()}),Qe(this.voidContainer.element,`dragleave`,e=>{let t=e.relatedTarget;this.voidContainer.element.contains(t)||(this._element.contains(t)?this.tabs.setExternalInsertionIndex(null):this.tabs.clearExternalAnimState())}),Qe(this.voidContainer.element,`pointerdown`,e=>{if(!e.defaultPrevented&&!this.accessor.options.disableFloatingGroups&&e.shiftKey&&this.group.api.location.type!==`floating`&&this.group.api.location.type!==`edge`){e.preventDefault();let{top:t,left:n}=this.element.getBoundingClientRect(),{top:r,left:i}=this.accessor.element.getBoundingClientRect();this.accessor.addFloatingGroup(this.group,{x:n-i+20,y:t-r+20,inDragMode:!0})}}))}show(){this.hidden||(this.element.style.display=``)}hide(){this._element.style.display=`none`}setRightActionsElement(e){this.rightActions!==e&&(this.rightActions&&=(this.rightActions.remove(),void 0),e&&(this.rightActionsContainer.appendChild(e),this.rightActions=e))}setLeftActionsElement(e){this.leftActions!==e&&(this.leftActions&&=(this.leftActions.remove(),void 0),e&&(this.leftActionsContainer.appendChild(e),this.leftActions=e))}setPrefixActionsElement(e){this.preActions!==e&&(this.preActions&&=(this.preActions.remove(),void 0),e&&(this.preActionsContainer.appendChild(e),this.preActions=e))}isActive(e){return this.tabs.isActive(e)}indexOf(e){return this.tabs.indexOf(e)}getTabId(e){return this.tabs.getTabId(e)}getPanelForTab(e){return this.tabs.getPanelForTab(e)}setActive(e){}delete(e){this.tabs.delete(e),this.updateClassnames()}setActivePanel(e){this.tabs.setActivePanel(e)}focusActiveTab(){this.tabs.focusActiveTab()}openPanel(e,t=this.tabs.size){this.tabs.openPanel(e,t),this.updateClassnames()}closePanel(e){this.delete(e.id)}setOverflowExclude(e){this.tabs.setOverflowExclude(e)}setForcedOverflow(e){this.tabs.setForcedOverflow(e)}setPinnedSticky(e){this.tabs.setPinnedSticky(e)}refreshOverflow(){this.tabs.refreshOverflow()}setPinnedRow(e){this._pinnedRow!==e&&(this._pinnedRow&&this._pinnedRow.remove(),this._pinnedRow=e,e&&(e.classList.add(`dv-pinned-row`),this._element.insertBefore(e,this._element.firstChild)),it(this._element,`dv-tabs-and-actions-container--pinned-row`,!!e))}setDropIndexResolver(e){this._dropIndexResolver=e}resolveDropIndex(e,t){return this._dropIndexResolver(e,t)}updateClassnames(){it(this._element,`dv-single-tab`,this.size===1)}toggleDropdown(e){let t=e.reset?[]:e.tabs,n=e.reset?[]:e.tabGroups,r=e.reset?[]:e.pinnedTabs;this._overflowTabs=t,this._overflowTabGroups=n,this._overflowPinnedTabs=r;let i=this._overflowTabs.length+this._overflowPinnedTabs.length;if(i>0&&this.dropdownPart){this.dropdownPart.update({tabs:i});return}if(i===0){this._dropdownDisposable.dispose();return}let a=document.createElement(`div`);a.className=`dv-tabs-overflow-dropdown-root`;let o=Rr();o.update({tabs:i}),this.dropdownPart=o,a.appendChild(o.element),this.rightActionsContainer.prepend(a),this._dropdownDisposable.value=new Q(We.from(()=>{var e,t;a.remove(),(e=this.dropdownPart)==null||(t=e.dispose)==null||t.call(e),this.dropdownPart=null}),Qe(a,`pointerdown`,e=>{e.preventDefault()},{capture:!0}),Qe(a,`click`,e=>{let t=wt(a),n={x:e.clientX,y:e.clientY,zIndex:t?.style.zIndex?`calc(${t.style.zIndex} * 2)`:void 0},r=this.createOverflowRenderContext(a,n),i=this.accessor.advancedOverflowService;i?i.renderOverflow({group:this.group,overflowTabs:[...this._overflowTabs],overflowTabGroups:[...this._overflowTabGroups],pinnedOverflowTabs:[...this._overflowPinnedTabs],context:r}):r.open(this.renderFreeOverflowList(r))}))}createOverflowRenderContext(e,t){let n=new Set(this._overflowTabGroups),r=this.group.model.getTabGroups(),i=new Map,a=new Map;for(let e of r)if(a.set(e.id,e),n.has(e.id))for(let t of e.panelIds)i.set(t,e);let o=()=>this.accessor.getPopupServiceForGroup(this.group),s=e=>{let t=document.createElement(`div`);t.className=`dv-tabs-overflow-group-header`;let n=document.createElement(`span`);n.className=`dv-tabs-overflow-group-color`,Er(n,e.color,this.accessor.tabGroupColorPalette),t.appendChild(n);let r=document.createElement(`span`);if(r.className=`dv-tabs-overflow-group-label`,r.textContent=e.label||e.id,t.appendChild(r),e.collapsed){let n=document.createElement(`span`);n.className=`dv-tabs-overflow-group-collapsed-badge`,n.textContent=`${e.panelIds.length}`,t.appendChild(n)}return t.addEventListener(`click`,()=>{o().close(),e.collapsed&&e.expand();let t=e.panelIds[0];if(t){let e=this.group.panels.find(e=>e.id===t);this.accessor.withOrigin(`user`,()=>e?.api.setActive())}}),t};return{overflowGroupIdForPanel:e=>i.get(e)?.id,buildGroupHeader:e=>{let t=a.get(e);if(!(!t||!n.has(t.id)))return s(t)},buildPinnedHeader:()=>{let e=document.createElement(`div`);e.className=`dv-tabs-overflow-group-header dv-tabs-overflow-pinned-header`;let t=er();t.classList.add(`dv-tabs-overflow-pinned-icon`),e.appendChild(t);let n=document.createElement(`span`);return n.className=`dv-tabs-overflow-group-label`,n.textContent=`Pinned`,e.appendChild(n),e},buildRow:e=>{let t=this.group.panels.find(t=>t.id===e);if(!t)return;let n=this.tabs.tabs.find(t=>t.panel.id===e),r=i.get(e),a=t.view.createTabRenderer(`headerOverflow`).element,s=document.createElement(`div`);it(s,`dv-tab`,!0),it(s,`dv-active-tab`,t.api.isActive),it(s,`dv-inactive-tab`,!t.api.isActive),r&&it(s,`dv-tab--grouped`,!0);let c=()=>{r?.collapsed&&r.expand(),n?.element.scrollIntoView({block:`nearest`,inline:`nearest`}),this.accessor.withOrigin(`user`,()=>t.api.setActive())};return s.addEventListener(`click`,e=>{o().close(),!e.defaultPrevented&&c()}),s.appendChild(a),{element:s,panel:t,activate:()=>{o().close(),c()}}},open:e=>{o().openPopover(e,t)},close:()=>o().close(),focusTrigger:()=>{e.tabIndex=-1,e.focus()}}}renderFreeOverflowList(e){let t=document.createElement(`div`);t.style.overflow=`auto`,t.className=`dv-tabs-overflow-container`;let n=this._overflowPinnedTabs.map(t=>e.buildRow(t)).filter(e=>e!=null);if(n.length>0){t.appendChild(e.buildPinnedHeader());for(let e of n)t.appendChild(e.element)}let r=new Set;for(let n of this.tabs.tabs.filter(e=>this._overflowTabs.includes(e.panel.id))){let i=e.overflowGroupIdForPanel(n.panel.id);if(i&&!r.has(i)){r.add(i);let n=e.buildGroupHeader(i);n&&t.appendChild(n)}let a=e.buildRow(n.panel.id);a&&t.appendChild(a.element)}return t}updateDragAndDropState(){this.tabs.updateDragAndDropState(),this.voidContainer.updateDragAndDropState()}updateTabGroups(){this.tabs.updateTabGroups()}refreshTabGroupAccent(){this.tabs.refreshTabGroupAccent()}},Br=class extends Q{get label(){return this._label}get color(){return this._color}get componentParams(){return this._componentParams}setLabel(e){this.isDisposed||this._label===e||(this._label=e,this._onDidChange.fire())}setColor(e){if(this.isDisposed)return;let t=e===``?void 0:e;this._color!==t&&(this._color=t,this._onDidChange.fire())}setComponentParams(e){this.isDisposed||(this._componentParams=e,this._onDidChange.fire())}get collapsed(){return this._collapsed}get panelIds(){return this._panelIds}get size(){return this._panelIds.length}get isEmpty(){return this._panelIds.length===0}constructor(e,t){super(),this.id=e,this._collapsed=!1,this._panelIds=[],this._onDidChange=new $,this.onDidChange=this._onDidChange.event,this._onDidPanelChange=new $,this.onDidPanelChange=this._onDidPanelChange.event,this._onDidCollapseChange=new $,this.onDidCollapseChange=this._onDidCollapseChange.event,this._onDidDestroy=new $,this.onDidDestroy=this._onDidDestroy.event,this._label=t?.label??``,this._color=t?.color===``?void 0:t?.color,this._collapsed=t?.collapsed??!1,this._componentParams=t?.componentParams,this.addDisposables(this._onDidChange,this._onDidPanelChange,this._onDidCollapseChange,this._onDidDestroy)}addPanel(e,t){if(this.isDisposed||this._panelIds.includes(e))return;let n=t===void 0?this._panelIds.length:Math.max(0,Math.min(t,this._panelIds.length));this._panelIds.splice(n,0,e),this._onDidPanelChange.fire({panelId:e,type:`add`})}removePanel(e){if(this.isDisposed)return!1;let t=this._panelIds.indexOf(e);return t!==-1&&(this._panelIds.splice(t,1),this._onDidPanelChange.fire({panelId:e,type:`remove`}),!0)}indexOfPanel(e){return this._panelIds.indexOf(e)}containsPanel(e){return this._panelIds.includes(e)}collapse(){this.isDisposed||this._collapsed||(this._collapsed=!0,this._onDidCollapseChange.fire(!0))}expand(){this.isDisposed||!this._collapsed||(this._collapsed=!1,this._onDidCollapseChange.fire(!1))}toggle(){this._collapsed?this.expand():this.collapse()}toJSON(){let e={id:this.id,collapsed:this._collapsed,panelIds:[...this._panelIds]};return this._label&&(e.label=this._label),this._color!==void 0&&(e.color=this._color),this._componentParams!==void 0&&(e.componentParams=this._componentParams),e}dispose(){this._onDidDestroy.fire(),super.dispose()}},Vr=class extends qe{get nativeEvent(){return this.options.nativeEvent}get position(){return this.options.position}get panel(){return this.options.panel}get group(){return this.options.group}get api(){return this.options.api}constructor(e){super(),this.options=e}getData(){return this.options.getData()}},Hr=class extends Vr{get kind(){return this._kind}constructor(e){super(e),this._kind=e.kind}},Ur=class extends Q{get tabGroups(){return this._tabGroups}get element(){throw Error(`dockview: not supported`)}get activePanel(){return this._activePanel}get contentContainerId(){return this.contentContainer.element.id}get contentDropTarget(){return this.contentContainer.dropTarget}get locked(){return this._locked}set locked(e){this._locked=e,it(this.container,`dv-locked-groupview`,e===`no-drop-target`||e)}get isActive(){return this._isGroupActive}get panels(){return this._panels}get size(){return this._panels.length}get isEmpty(){return this._panels.length===0}get hasWatermark(){return!!(this.watermark&&this.container.contains(this.watermark.element))}get header(){return this.tabsContainer}get tabsListElement(){return this.tabsContainer.tabsListElement}getPanelForTab(e){return this.tabsContainer.getPanelForTab(e)}get isContentFocused(){return document.activeElement?at(document.activeElement,this.contentContainer.element):!1}get headerPosition(){return this._headerPosition??`top`}set headerPosition(e){this._headerPosition=e,this.invalidateHeaderSize(),nt(this.container,`dv-groupview-header-top`,`dv-groupview-header-bottom`,`dv-groupview-header-left`,`dv-groupview-header-right`),rt(this.container,`dv-groupview-header-${e}`);let t=e===`top`||e===`bottom`?`horizontal`:`vertical`,n=this._headerDirection;if(this._headerDirection=t,this.tabsContainer.direction=t,this.header.direction=t,this._activePanel?.layout){let{width:e,height:t}=this.contentDimensions();this._activePanel.layout(e,t)}if(this.updateHeaderActions(),n!==void 0&&n!==t){var r;(r=this.groupPanel)==null||r.api._onDidHeaderDirectionChange.fire({direction:t,position:e})}}get location(){return this._location}set location(e){this._location=e,it(this.container,`dv-groupview-floating`,!1),it(this.container,`dv-groupview-popout`,!1),it(this.container,`dv-groupview-edge`,!1);let t=e=>{this.contentContainer.dropTarget.setTargetZones(e),this.contentContainer.pointerDropTarget.setTargetZones(e)};switch(e.type){case`grid`:t([`top`,`bottom`,`left`,`right`,`center`]);break;case`floating`:t([`top`,`bottom`,`left`,`right`,`center`]),it(this.container,`dv-groupview-floating`,!0);break;case`popout`:t([`top`,`bottom`,`left`,`right`,`center`]),it(this.container,`dv-groupview-popout`,!0);break;case`edge`:t([`center`]),it(this.container,`dv-groupview-edge`,!0)}this.groupPanel.api._onDidLocationChange.fire({location:this.location})}constructor(e,t,n,r,i){super(),this.container=e,this.accessor=t,this.id=n,this.options=r,this.groupPanel=i,this._isGroupActive=!1,this._locked=!1,this._location={type:`grid`},this.mostRecentlyUsed=[],this._overwriteRenderContainer=null,this._overwriteDropTargetContainer=null,this._onDidChange=new $,this.onDidChange=this._onDidChange.event,this._width=0,this._height=0,this._panels=[],this._panelDisposables=new Map,this._tabGroupDisposables=new Map,this._pendingMicrotaskDisposables=new Set,this._onMove=new $,this.onMove=this._onMove.event,this._onDidDrop=new $,this.onDidDrop=this._onDidDrop.event,this._onWillDrop=new $,this.onWillDrop=this._onWillDrop.event,this._onWillShowOverlay=new $,this.onWillShowOverlay=this._onWillShowOverlay.event,this._onTabDragStart=new $,this.onTabDragStart=this._onTabDragStart.event,this._onGroupDragStart=new $,this.onGroupDragStart=this._onGroupDragStart.event,this._onDidAddPanel=new $,this.onDidAddPanel=this._onDidAddPanel.event,this._onDidPanelTitleChange=new $,this.onDidPanelTitleChange=this._onDidPanelTitleChange.event,this._onDidPanelParametersChange=new $,this.onDidPanelParametersChange=this._onDidPanelParametersChange.event,this._onDidRemovePanel=new $,this.onDidRemovePanel=this._onDidRemovePanel.event,this._onDidActivePanelChange=new $,this.onDidActivePanelChange=this._onDidActivePanelChange.event,this._onUnhandledDragOver=new $,this.onUnhandledDragOver=this._onUnhandledDragOver.event,this._tabGroups=[],this._tabGroupMap=new Map,this._panelToTabGroup=new Map,this._tabGroupIdCounter=0,this._pendingTabGroupUpdate=!1,this._onDidCreateTabGroup=new $,this.onDidCreateTabGroup=this._onDidCreateTabGroup.event,this._onDidDestroyTabGroup=new $,this.onDidDestroyTabGroup=this._onDidDestroyTabGroup.event,this._onDidAddPanelToTabGroup=new $,this.onDidAddPanelToTabGroup=this._onDidAddPanelToTabGroup.event,this._onDidRemovePanelFromTabGroup=new $,this.onDidRemovePanelFromTabGroup=this._onDidRemovePanelFromTabGroup.event,this._onDidTabGroupChange=new $,this.onDidTabGroupChange=this._onDidTabGroupChange.event,this._onDidTabGroupCollapsedChange=new $,this.onDidTabGroupCollapsedChange=this._onDidTabGroupCollapsedChange.event,it(this.container,`dv-groupview`,!0),this.container.setAttribute(`role`,`region`),this._api=new mn(this.accessor),this.tabsContainer=new zr(this.accessor,this.groupPanel),this.contentContainer=new Zn(this.accessor,this),e.append(this.tabsContainer.element,this.contentContainer.element),this.header.hidden=!!r.hideHeader,this.locked=r.locked??!1,this.headerPosition=r.headerPosition??t.defaultHeaderPosition,this.addDisposables(tt(this.tabsContainer.element,()=>{if(this.isDisposed)return;let e=this.measureHeaderSize();e!==this._cachedHeaderSize&&(this._cachedHeaderSize=e,this.layout(this._width,this._height))}),this._onDidPanelTitleChange.event(()=>this.updateAccessibleLabel()),this._onTabDragStart,this._onGroupDragStart,this._onWillShowOverlay,this.tabsContainer.onTabDragStart(e=>{this._onTabDragStart.fire(e)}),this.tabsContainer.onGroupDragStart(e=>{this._onGroupDragStart.fire(e)}),this.tabsContainer.onDrop(e=>{let t=Ue()?.panelId??null,n=t?this.tabsContainer.resolveDropIndex(t,e.index):e.index;if(this.handleDropEvent(`header`,e.event,`center`,n),t&&e.targetTabGroupId){let n=this._tabGroupMap.get(e.targetTabGroupId),r;if(n){let e=this._panels.findIndex(e=>e.id===t);if(e!==-1){r=0;for(let t of n.panelIds)this._panels.findIndex(e=>e.id===t)<e&&r++}}this.addPanelToTabGroup(e.targetTabGroupId,t,r)}else t&&e.targetTabGroupId===null&&this.removePanelFromTabGroup(t)}),this.contentContainer.onDidFocus(()=>{this.accessor.doSetGroupActive(this.groupPanel)}),this.contentContainer.onDidBlur(()=>{}),this.contentContainer.dropTarget.onDrop(e=>{this.handleDropEvent(`content`,e.nativeEvent,e.position,void 0,e.edge)}),this.contentContainer.pointerDropTarget.onDrop(e=>{this.handleDropEvent(`content`,e.nativeEvent,e.position,void 0,e.edge)}),this.tabsContainer.onWillShowOverlay(e=>{this._onWillShowOverlay.fire(e)}),this.contentContainer.dropTarget.onWillShowOverlay(e=>{this._onWillShowOverlay.fire(new ur(e,{kind:`content`,panel:this.activePanel,api:this._api,group:this.groupPanel,getData:Ue}))}),this.contentContainer.pointerDropTarget.onWillShowOverlay(e=>{this._onWillShowOverlay.fire(new ur(e,{kind:`content`,panel:this.activePanel,api:this._api,group:this.groupPanel,getData:Ue}))}),this._onMove,this._onDidChange,this._onDidDrop,this._onWillDrop,this._onDidAddPanel,this._onDidRemovePanel,this._onDidActivePanelChange,this._onUnhandledDragOver,this._onDidPanelTitleChange,this._onDidPanelParametersChange,this._onDidCreateTabGroup,this._onDidDestroyTabGroup,this._onDidAddPanelToTabGroup,this._onDidRemovePanelFromTabGroup,this._onDidTabGroupChange,this._onDidTabGroupCollapsedChange,this._onDidCreateTabGroup.event(()=>{this._scheduleTabGroupUpdate()}),this._onDidDestroyTabGroup.event(()=>{this._scheduleTabGroupUpdate()}),this._onDidAddPanelToTabGroup.event(()=>{this._scheduleTabGroupUpdate()}),this._onDidRemovePanelFromTabGroup.event(()=>{this._scheduleTabGroupUpdate()}),this._onDidTabGroupChange.event(()=>{this._scheduleTabGroupUpdate()}),this._onDidTabGroupCollapsedChange.event(()=>{this._scheduleTabGroupUpdate()}))}_scheduleTabGroupUpdate(){this._pendingTabGroupUpdate||(this._pendingTabGroupUpdate=!0,queueMicrotask(()=>{this._pendingTabGroupUpdate=!1,this.isDisposed||this.tabsContainer.updateTabGroups()}))}_bracketTabGroupMutation(e){return this.accessor.mutation?this.accessor.mutation(`tab-group`,e):e()}createTabGroup(e){return this._bracketTabGroupMutation(()=>this._doCreateTabGroup(e))}_doCreateTabGroup(e){let t=e?.id??`tg-${this.id}-${this._tabGroupIdCounter++}`,n=new Br(t,{label:e?.label,color:e?.color,collapsed:e?.collapsed,componentParams:e?.componentParams});return this._tabGroups.push(n),this._tabGroupMap.set(t,n),this._tabGroupDisposables.set(t,new Q(n.onDidChange(()=>{this._onDidTabGroupChange.fire({tabGroup:n})}),n.onDidCollapseChange(e=>{e?this._handleGroupCollapse(n):this._handleGroupExpand(n),this._onDidTabGroupCollapsedChange.fire({tabGroup:n})}),n.onDidDestroy(()=>{this._removeTabGroupInternal(n)}))),this._onDidCreateTabGroup.fire({tabGroup:n}),n}dissolveTabGroup(e){let t=this._tabGroupMap.get(e);t&&this._bracketTabGroupMutation(()=>{let e=[...t.panelIds];for(let n of e)t.removePanel(n),this._panelToTabGroup.delete(n),this._onDidRemovePanelFromTabGroup.fire({tabGroup:t,panelId:n});t.dispose()})}addPanelToTabGroup(e,t,n){let r=this._tabGroupMap.get(e);if(!r||!this._panels.some(e=>e.id===t))return;let i=this.getTabGroupForPanel(t);i?.id!==e&&this._bracketTabGroupMutation(()=>{i&&this.removePanelFromTabGroup(t),r.addPanel(t,n),this._panelToTabGroup.set(t,r),this._enforceContiguity(r,t),this._onDidAddPanelToTabGroup.fire({tabGroup:r,panelId:t})})}movePanelWithinGroup(e,t,n){let r=this._tabGroupMap.get(e);r?.containsPanel(t)&&(r.removePanel(t),r.addPanel(t,n),this._enforceContiguity(r,t),this.tabsContainer.updateTabGroups())}movePanelBetweenGroups(e,t,n){let r=this._findTabGroupForPanel(e),i=this._tabGroupMap.get(t);i&&(r&&(r.removePanel(e),this._panelToTabGroup.delete(e),this._onDidRemovePanelFromTabGroup.fire({tabGroup:r,panelId:e}),r.isEmpty&&r.dispose()),i.addPanel(e,n),this._panelToTabGroup.set(e,i),this._enforceContiguity(i,e),this._onDidAddPanelToTabGroup.fire({tabGroup:i,panelId:e}))}moveTabGroup(e,t){let n=this._tabGroupMap.get(e);if(!n||n.panelIds.length===0)return;let r=new Set(n.panelIds),i=n.panelIds.map(e=>this._panels.find(t=>t.id===e)).filter(e=>e!==void 0);if(i.length===0)return;let a=0;for(let e=0;e<Math.min(t,this._panels.length);e++)r.has(this._panels[e].id)&&a++;for(let e of i){let t=this._panels.indexOf(e);t!==-1&&this._panels.splice(t,1)}let o=t-a,s=Math.max(0,Math.min(o,this._panels.length));this._panels.splice(s,0,...i);for(let e of this._panels)this.tabsContainer.delete(e.id);for(let e=0;e<this._panels.length;e++)this.tabsContainer.openPanel(this._panels[e],e);this.tabsContainer.updateTabGroups()}_enforceContiguity(e,t){let n=this._panels.find(e=>e.id===t);if(!n)return;let r=e.indexOfPanel(t),i=this._computeGlobalIndex(e,r),a=this._panels.indexOf(n);if(a===i)return;this._panels.splice(a,1);let o=i>a?i-1:i;this._panels.splice(o,0,n),this.tabsContainer.delete(t),this.tabsContainer.openPanel(n,o)}_computeGlobalIndex(e,t){let n=e.panelIds;if(n.length<=1){let e=this._panels.find(e=>e.id===n[0]);return e?this._panels.indexOf(e):this._panels.length}for(let e=0;e<n.length;e++){if(e===t)continue;let r=this._panels.find(t=>t.id===n[e]);if(r){let n=this._panels.indexOf(r);return Math.max(0,n+(t-e))}}return this._panels.length}removePanelFromTabGroup(e){let t=this._findTabGroupForPanel(e);t&&this._bracketTabGroupMutation(()=>{t.removePanel(e),this._panelToTabGroup.delete(e),this._onDidRemovePanelFromTabGroup.fire({tabGroup:t,panelId:e}),t.isEmpty&&t.dispose()})}getTabGroups(){return this._tabGroups}updateTabGroups(){this.tabsContainer.updateTabGroups()}refreshTabGroupAccent(){this.tabsContainer.refreshTabGroupAccent()}refreshWatermark(){if(this.watermark){var e,t;this.watermark.element.remove(),(e=(t=this.watermark).dispose)==null||e.call(t),this.watermark=void 0}this.updateContainer()}getTabGroupForPanel(e){return this._findTabGroupForPanel(e)}_findTabGroupForPanel(e){return this._panelToTabGroup.get(e)}_removeTabGroupInternal(e){let t=this._tabGroups.indexOf(e);if(t!==-1){this._tabGroups.splice(t,1),this._tabGroupMap.delete(e.id);for(let t of e.panelIds)this._panelToTabGroup.delete(t);this._onDidDestroyTabGroup.fire({tabGroup:e});let n=this._tabGroupDisposables.get(e.id);this._tabGroupDisposables.delete(e.id),n&&(this._pendingMicrotaskDisposables.add(n),queueMicrotask(()=>{this._pendingMicrotaskDisposables.delete(n),n.dispose()}))}}_handleGroupCollapse(e){if(!this._activePanel||!e.containsPanel(this._activePanel.id))return;let t=this._panels.indexOf(this._activePanel);for(let e=t+1;e<this._panels.length;e++){let t=this._panels[e];if(!this._findTabGroupForPanel(t.id)?.collapsed){this.doSetActivePanel(t),this.updateContainer();return}}for(let e=t-1;e>=0;e--){let t=this._panels[e];if(!this._findTabGroupForPanel(t.id)?.collapsed){this.doSetActivePanel(t),this.updateContainer();return}}this.contentContainer.closePanel(),this.doSetActivePanel(void 0),this.updateContainer()}_handleGroupExpand(e){if(this._activePanel)return;let t=e.panelIds[0];if(t){let e=this._panels.find(e=>e.id===t);e&&(this.doSetActivePanel(e),this.updateContainer())}}restoreTabGroups(e){for(let t of e){let e=/-(\d+)$/.exec(t.id);if(e){let t=Number.parseInt(e[1],10)+1;t>this._tabGroupIdCounter&&(this._tabGroupIdCounter=t)}}for(let t of e){let e=this.createTabGroup({id:t.id,label:t.label,color:t.color,componentParams:t.componentParams}),n=this._tabGroupMap.get(e.id);for(let r of t.panelIds)this._panels.some(e=>e.id===r)&&(e.addPanel(r),this._panelToTabGroup.set(r,n),this._enforceContiguity(n,r));t.collapsed&&e.collapse(),e.isEmpty&&e.dispose()}}focusContent(){this.contentContainer.element.focus()}focusActiveTab(){this.tabsContainer.focusActiveTab()}set renderContainer(e){if(this.panels.forEach(e=>{this.renderContainer.detatch(e)}),this._overwriteRenderContainer=e,this.panels.forEach(e=>{this.rerender(e)}),this._activePanel){this.contentContainer.renderPanel(this._activePanel,{asActive:!0});let{width:e,height:t}=this.contentDimensions();this._activePanel.layout(e,t)}}get renderContainer(){return this._overwriteRenderContainer??this.accessor.overlayRenderContainer}set dropTargetContainer(e){this._overwriteDropTargetContainer=e}get dropTargetContainer(){return this._location.type===`floating`&&this.accessor.rootDropTargetContainer.disabled?this.accessor.floatingDropTargetContainer:this._overwriteDropTargetContainer??this.accessor.rootDropTargetContainer}initialize(){this.options.panels&&this.options.panels.forEach(e=>{this.doAddPanel(e)}),this.options.activePanel&&this.openPanel(this.options.activePanel),this.setActive(this.isActive,!0),this.updateContainer(),this.updateHeaderActions()}updateHeaderActions(){var e;(e=this.accessor.headerActionsService)==null||e.refresh(this.groupPanel)}attachHeaderAction(e,t){switch(e){case`left`:this.tabsContainer.setLeftActionsElement(t);break;case`right`:this.tabsContainer.setRightActionsElement(t);break;case`prefix`:this.tabsContainer.setPrefixActionsElement(t)}}rerender(e){this.contentContainer.renderPanel(e,{asActive:!1})}indexOf(e){return this.tabsContainer.indexOf(e.id)}toJSON(){let e={views:this.tabsContainer.panels,activeView:this._activePanel?.id,id:this.id};return this.locked!==!1&&(e.locked=this.locked),this.header.hidden&&(e.hideHeader=!0),this.headerPosition!==`top`&&(e.headerPosition=this.headerPosition),this._tabGroups.length>0&&(e.tabGroups=this._tabGroups.map(e=>e.toJSON())),e}moveToNext(e){var t;e??={},(t=e).panel??(t.panel=this.activePanel);let n=e.panel?this.panels.indexOf(e.panel):-1,r;if(n<this.panels.length-1)r=n+1;else if(e.suppressRoll)return;else r=0;this.openPanel(this.panels[r])}moveToPrevious(e){var t;if(e??={},(t=e).panel??(t.panel=this.activePanel),!e.panel)return;let n=this.panels.indexOf(e.panel),r;if(n>0)r=n-1;else if(e.suppressRoll)return;else r=this.panels.length-1;this.openPanel(this.panels[r])}containsPanel(e){return this.panels.includes(e)}init(e){}update(e){}focus(){var e;(e=this._activePanel)==null||e.focus()}openPanel(e,t={}){(typeof t.index!=`number`||t.index>this.panels.length)&&(t.index=this.panels.length);let n=!!t.skipSetActive;if(e.updateParentGroup(this.groupPanel,{skipSetActive:t.skipSetActive}),this.doAddPanel(e,t.index,{skipSetActive:n}),this.invalidateHeaderSize(),this._activePanel===e){this.contentContainer.renderPanel(e,{asActive:!0});return}n||this.doSetActivePanel(e),t.skipSetGroupActive||this.accessor.doSetGroupActive(this.groupPanel),t.skipSetActive||this.updateContainer()}removePanel(e,t){let n=typeof e==`string`?e:e.id,r=this._panels.find(e=>e.id===n);if(!r)throw Error(`invalid operation`);return this._removePanel(r,t)}closeAllPanels(){if(this.panels.length>0){let e=[...this.panels];for(let t of e)this.doClose(t)}else this.accessor.removeGroup(this.groupPanel)}closePanel(e){this.doClose(e)}doClose(e){let t=this.panels.length===1&&this.accessor.groups.length===1;this.accessor.removePanel(e,t&&this.accessor.options.noPanelsOverlay===`emptyGroup`?{removeEmptyGroup:!1}:void 0)}isPanelActive(e){return this._activePanel===e}updateActions(e){this.tabsContainer.setRightActionsElement(e)}setActive(e,t=!1){if(!(!t&&this.isActive===e)){if(this._isGroupActive=e,it(this.container,`dv-active-group`,e),it(this.container,`dv-inactive-group`,!e),this.tabsContainer.setActive(this.isActive),!this._activePanel&&this.panels.length>0){let e=this._panels.find(e=>!this._findTabGroupForPanel(e.id)?.collapsed);e&&this.doSetActivePanel(e)}this.updateContainer()}}layout(e,t){this._width=e,this._height=t;let{width:n,height:r}=this.contentDimensions();this.contentContainer.layout(n,r),this._activePanel?.layout&&this._activePanel.layout(n,r)}relayout(){this.invalidateHeaderSize(),this.layout(this._width,this._height)}measureHeaderSize(){let e=this.tabsContainer.element;return this.headerPosition===`top`||this.headerPosition===`bottom`?e.offsetHeight:e.offsetWidth}invalidateHeaderSize(){this._cachedHeaderSize=void 0}contentDimensions(){let e=this.headerPosition===`top`||this.headerPosition===`bottom`,t=this._cachedHeaderSize??=this.measureHeaderSize();return{width:e?this._width:Math.max(0,this._width-t),height:e?Math.max(0,this._height-t):this._height}}_removePanel(e,t){let n=this._activePanel===e;if(this.doRemovePanel(e),this.invalidateHeaderSize(),n&&this.panels.length>0){let e=this.mostRecentlyUsed[0];this.openPanel(e,{skipSetActive:t?.skipSetActive,skipSetGroupActive:t?.skipSetActiveGroup})}return this._activePanel&&this.panels.length===0&&this.doSetActivePanel(void 0),t?.skipSetActive||this.updateContainer(),e}doRemovePanel(e){let t=this.panels.indexOf(e);if(this._activePanel===e&&this.contentContainer.closePanel(),this.tabsContainer.delete(e.id),this._panels.splice(t,1),this.mostRecentlyUsed.includes(e)){let t=this.mostRecentlyUsed.indexOf(e);this.mostRecentlyUsed.splice(t,1)}let n=this._panelDisposables.get(e.id);n&&(n.dispose(),this._panelDisposables.delete(e.id)),this.removePanelFromTabGroup(e.id),this._onDidRemovePanel.fire({panel:e})}doAddPanel(e,t=this.panels.length,n){let r=this._panels.indexOf(e)>-1;this.tabsContainer.show(),this.contentContainer.show(),this.tabsContainer.openPanel(e,t),n?.skipSetActive?e.api.renderer===`always`&&this.contentContainer.renderPanel(e,{asActive:!1}):this.contentContainer.openPanel(e),!r&&(this.updateMru(e),this.panels.splice(t,0,e),this._panelDisposables.set(e.id,new Q(e.api.onDidTitleChange(e=>this._onDidPanelTitleChange.fire(e)),e.api.onDidParametersChange(e=>this._onDidPanelParametersChange.fire(e)))),this._onDidAddPanel.fire({panel:e}))}doSetActivePanel(e){if(this._activePanel!==e){if(this._activePanel=e,e){var t;this.tabsContainer.setActivePanel(e),this.contentContainer.setLabelledBy(this.tabsContainer.getTabId(e.id)),this.contentContainer.openPanel(e);let{width:n,height:r}=this.contentDimensions();e.layout(n,r),this.updateMru(e),this.contentContainer.refreshFocusState(),this._onDidActivePanelChange.fire({panel:e,origin:(t=this.accessor).currentOrigin?.call(t)??`user`})}this.updateAccessibleLabel()}}updateAccessibleLabel(){let e=this._activePanel?.title;e?this.container.setAttribute(`aria-label`,e):this.container.removeAttribute(`aria-label`)}updateMru(e){this.mostRecentlyUsed.includes(e)&&this.mostRecentlyUsed.splice(this.mostRecentlyUsed.indexOf(e),1),this.mostRecentlyUsed=[e,...this.mostRecentlyUsed]}updateContainer(){this.panels.forEach(e=>e.runEvents());let e=this.isEmpty||!this._activePanel;if(e&&!this.watermark){let e=this.accessor.createWatermarkComponent();e.init({containerApi:this._api,group:this.groupPanel}),this.watermark=e,Qe(this.watermark.element,`pointerdown`,()=>{this.isActive||this.accessor.doSetGroupActive(this.groupPanel)}),this.contentContainer.element.appendChild(this.watermark.element)}if(!e&&this.watermark){var t,n;this.watermark.element.remove(),(t=(n=this.watermark).dispose)==null||t.call(n),this.watermark=void 0}}canDisplayOverlay(e,t,n){let r=new _r(e,n,t,Ue,this.accessor.getPanel(this.id));return this._onUnhandledDragOver.fire(r),r.isAccepted}canDisplayContentOverlay(e,t){if(this.locked===`no-drop-target`||this.locked&&t===`center`)return!1;let n=Ue();return!n&&e.shiftKey&&this.location.type!==`floating`?!1:n?.viewId===this.accessor.id||this.canDisplayOverlay(e,t,`content`)}handleDropEvent(e,t,n,r,i){if(this.locked===`no-drop-target`)return;if(e===`content`&&i){this.accessor.dockToLayoutEdge(t,n);return}function a(){switch(e){case`header`:return typeof r==`number`?`tab`:`header_space`;case`content`:return`content`}}let o=typeof r==`number`?this.panels[r]:void 0,s=new Hr({nativeEvent:t,position:n,panel:o,getData:()=>Ue(),kind:a(),group:this.groupPanel,api:this._api});if(this._onWillDrop.fire(s),s.defaultPrevented)return;let c=Ue();if(c?.viewId===this.accessor.id){if(e===`content`&&c.groupId===this.id&&(n===`center`||c.panelId===null&&!c.tabGroupId)||e===`header`&&c.groupId===this.id&&c.panelId===null&&!c.tabGroupId)return;if(c.panelId===null){let{groupId:e}=c;this._onMove.fire({target:n,groupId:e,index:r,tabGroupId:c.tabGroupId});return}if(this.tabsContainer.indexOf(c.panelId)!==-1&&this.tabsContainer.size===1)return;let{groupId:t,panelId:i}=c;if(this.id===t&&!n&&this.tabsContainer.indexOf(i)===r)return;this._onMove.fire({target:n,groupId:c.groupId,itemId:c.panelId,index:r})}else this._onDidDrop.fire(new Vr({nativeEvent:t,position:n,panel:o,getData:()=>Ue(),group:this.groupPanel,api:this._api}))}updateDragAndDropState(){this.tabsContainer.updateDragAndDropState()}dispose(){var e,t,n;super.dispose(),(e=this.watermark)==null||e.element.remove(),(t=this.watermark)==null||(n=t.dispose)==null||n.call(t),this.watermark=void 0;for(let e of[...this._tabGroups])e.dispose();for(let e of this._tabGroupDisposables.values())e.dispose();this._tabGroupDisposables.clear();for(let e of this._pendingMicrotaskDisposables)e.dispose();this._pendingMicrotaskDisposables.clear();for(let e of this.panels)e.dispose();this.tabsContainer.dispose(),this.contentContainer.dispose()}},Wr=class extends qn{constructor(e,t,n){super(e,t),this._onDidConstraintsChangeInternal=new $,this.onDidConstraintsChangeInternal=this._onDidConstraintsChangeInternal.event,this._onDidConstraintsChange=new $,this.onDidConstraintsChange=this._onDidConstraintsChange.event,this._onDidSizeChange=new $,this.onDidSizeChange=this._onDidSizeChange.event,this.addDisposables(this._onDidConstraintsChangeInternal,this._onDidConstraintsChange,this._onDidSizeChange),n&&this.initialize(n)}setConstraints(e){this._onDidConstraintsChangeInternal.fire(e)}setSize(e){this._onDidSizeChange.fire(e)}},Gr=class extends Jn{get priority(){return this._priority}get snap(){return this._snap}get minimumWidth(){return this.__minimumWidth()}get minimumHeight(){return this.__minimumHeight()}get maximumHeight(){return this.__maximumHeight()}get maximumWidth(){return this.__maximumWidth()}__minimumWidth(){let e=typeof this._minimumWidth==`function`?this._minimumWidth():this._minimumWidth;return e!==this._evaluatedMinimumWidth&&(this._evaluatedMinimumWidth=e,this.updateConstraints()),e}__maximumWidth(){let e=typeof this._maximumWidth==`function`?this._maximumWidth():this._maximumWidth;return e!==this._evaluatedMaximumWidth&&(this._evaluatedMaximumWidth=e,this.updateConstraints()),e}__minimumHeight(){let e=typeof this._minimumHeight==`function`?this._minimumHeight():this._minimumHeight;return e!==this._evaluatedMinimumHeight&&(this._evaluatedMinimumHeight=e,this.updateConstraints()),e}__maximumHeight(){let e=typeof this._maximumHeight==`function`?this._maximumHeight():this._maximumHeight;return e!==this._evaluatedMaximumHeight&&(this._evaluatedMaximumHeight=e,this.updateConstraints()),e}get isActive(){return this.api.isActive}get isVisible(){return this.api.isVisible}constructor(e,t,n,r){super(e,t,r??new Wr(e,t)),this._evaluatedMinimumWidth=0,this._evaluatedMaximumWidth=2**53-1,this._evaluatedMinimumHeight=0,this._evaluatedMaximumHeight=2**53-1,this._minimumWidth=0,this._minimumHeight=0,this._maximumWidth=2**53-1,this._maximumHeight=2**53-1,this._snap=!1,this._onDidChange=new $,this.onDidChange=this._onDidChange.event,typeof n?.minimumWidth==`number`&&(this._minimumWidth=n.minimumWidth),typeof n?.maximumWidth==`number`&&(this._maximumWidth=n.maximumWidth),typeof n?.minimumHeight==`number`&&(this._minimumHeight=n.minimumHeight),typeof n?.maximumHeight==`number`&&(this._maximumHeight=n.maximumHeight),this.api.initialize(this),this.addDisposables(this.api.onWillVisibilityChange(e=>{let{isVisible:t}=e,{accessor:n}=this._params;n.setVisible(this,t)}),this.api.onActiveChange(()=>{let{accessor:e}=this._params;e.doSetGroupActive(this)}),this.api.onDidConstraintsChangeInternal(e=>{(typeof e.minimumWidth==`number`||typeof e.minimumWidth==`function`)&&(this._minimumWidth=e.minimumWidth),(typeof e.minimumHeight==`number`||typeof e.minimumHeight==`function`)&&(this._minimumHeight=e.minimumHeight),(typeof e.maximumWidth==`number`||typeof e.maximumWidth==`function`)&&(this._maximumWidth=e.maximumWidth),(typeof e.maximumHeight==`number`||typeof e.maximumHeight==`function`)&&(this._maximumHeight=e.maximumHeight),this._onDidChange.fire(void 0)}),this.api.onDidSizeChange(e=>{this._onDidChange.fire({height:e.height,width:e.width})}),this._onDidChange)}setVisible(e){this.api._onDidVisibilityChange.fire({isVisible:e})}setActive(e){this.api._onDidActiveChange.fire({isActive:e})}init(e){e.maximumHeight&&(this._maximumHeight=e.maximumHeight),e.minimumHeight&&(this._minimumHeight=e.minimumHeight),e.maximumWidth&&(this._maximumWidth=e.maximumWidth),e.minimumWidth&&(this._minimumWidth=e.minimumWidth),this._priority=e.priority,this._snap=!!e.snap,super.init(e),typeof e.isVisible==`boolean`&&this.setVisible(e.isVisible)}updateConstraints(){this.api._onDidConstraintsChange.fire({minimumWidth:this._evaluatedMinimumWidth,maximumWidth:this._evaluatedMaximumWidth,minimumHeight:this._evaluatedMinimumHeight,maximumHeight:this._evaluatedMaximumHeight})}toJSON(){let e=super.toJSON(),t=e=>e===2**53-1?void 0:e,n=e=>e<=0?void 0:e;return ln(ln({},e),{},{minimumHeight:n(this.minimumHeight),maximumHeight:t(this.maximumHeight),minimumWidth:n(this.minimumWidth),maximumWidth:t(this.maximumWidth),snap:this.snap,priority:this.priority})}},Kr=`dockview: DockviewGroupPanelApiImpl not initialized`,qr=class extends Wr{get location(){if(!this._group)throw Error(Kr);return this._group.model.location}get boundingBox(){if(!this._group||this._group.model.location.type===`popout`)return;let e=this.accessor.element.getBoundingClientRect(),t=this._group.element.getBoundingClientRect();return{left:t.left-e.left,top:t.top-e.top,width:t.width,height:t.height}}get locked(){if(!this._group)throw Error(Kr);return this._group.locked}set locked(e){if(!this._group)throw Error(Kr);this._group.locked=e}constructor(e,t){super(e,`__dockviewgroup__`),this.accessor=t,this._onDidLocationChange=new $,this.onDidLocationChange=this._onDidLocationChange.event,this._onDidActivePanelChange=new $,this.onDidActivePanelChange=this._onDidActivePanelChange.event,this._onDidCollapsedChange=new $,this.onDidCollapsedChange=this._onDidCollapsedChange.event,this._onDidPeekChange=new $,this.onDidPeekChange=this._onDidPeekChange.event,this._onDidHeaderDirectionChange=new $,this.onDidHeaderDirectionChange=this._onDidHeaderDirectionChange.event,this.addDisposables(this._onDidLocationChange,this._onDidActivePanelChange,this._onDidCollapsedChange,this._onDidPeekChange,this._onDidHeaderDirectionChange,this._onDidVisibilityChange.event(e=>{e.isVisible&&this._pendingSize&&(super.setSize(this._pendingSize),this._pendingSize=void 0)}))}setSize(e){this._pendingSize=ln({},e),super.setSize(e)}close(){if(this._group)return this.accessor.removeGroup(this._group)}getWindow(){return this.location.type===`popout`?this.location.getWindow():globalThis.window}setHeaderPosition(e){if(!this._group)throw Error(Kr);this._group.model.headerPosition=e}getHeaderPosition(){if(!this._group)throw Error(Kr);return this._group.model.headerPosition}moveTo(e){if(!this._group)throw Error(Kr);this.accessor.withOrigin(`api`,()=>{let t=e.group??this.accessor.addGroup({direction:Dn(e.position??`right`),skipSetActive:e.skipSetActive??!1});this.accessor.moveGroupOrPanel({from:{groupId:this._group.id},to:{group:t,position:e.group?e.position??`center`:`center`,index:e.index},skipSetActive:e.skipSetActive})})}maximize(){if(!this._group)throw Error(Kr);this.location.type===`grid`&&this.accessor.maximizeGroup(this._group)}isMaximized(){if(!this._group)throw Error(Kr);return this.accessor.isMaximizedGroup(this._group)}exitMaximized(){if(!this._group)throw Error(Kr);this.isMaximized()&&this.accessor.exitMaximizedGroup()}collapse(){this._group&&this.accessor.setEdgeGroupCollapsed(this._group,!0)}expand(){this._group&&this.accessor.setEdgeGroupCollapsed(this._group,!1)}isCollapsed(){return this._group?this.accessor.isEdgeGroupCollapsed(this._group):!1}isPeeking(){return this._group?this.accessor.isEdgeGroupPeeking(this._group):!1}setAutoHide(e){this._group&&this.accessor.setEdgeGroupAutoHide(this._group,e)}isAutoHide(){return this._group?this.accessor.isEdgeGroupAutoHide(this._group):!1}initialize(e){this._group=e}},Jr=100,Yr=100,Xr=class extends Gr{get minimumWidth(){if(typeof this._explicitConstraints.minimumWidth==`number`)return this._explicitConstraints.minimumWidth;let e=this.activePanel?.minimumWidth;return typeof e==`number`?e:super.__minimumWidth()}get minimumHeight(){if(typeof this._explicitConstraints.minimumHeight==`number`)return this._explicitConstraints.minimumHeight;let e=this.activePanel?.minimumHeight;return typeof e==`number`?e:super.__minimumHeight()}get maximumWidth(){if(typeof this._explicitConstraints.maximumWidth==`number`)return this._explicitConstraints.maximumWidth;let e=this.activePanel?.maximumWidth;return typeof e==`number`?e:super.__maximumWidth()}get maximumHeight(){if(typeof this._explicitConstraints.maximumHeight==`number`)return this._explicitConstraints.maximumHeight;let e=this.activePanel?.maximumHeight;return typeof e==`number`?e:super.__maximumHeight()}get panels(){return this._model.panels}get activePanel(){return this._model.activePanel}get size(){return this._model.size}get model(){return this._model}get locked(){return this._model.locked}set locked(e){this._model.locked=e}get header(){return this._model.header}constructor(e,t,n){super(t,`groupview_default`,{minimumHeight:n.constraints?.minimumHeight??Yr,minimumWidth:n.constraints?.minimumWidth??Jr,maximumHeight:n.constraints?.maximumHeight,maximumWidth:n.constraints?.maximumWidth},new qr(t,e)),this._explicitConstraints={},this.api.initialize(this),this._model=new Ur(this.element,e,t,n,this),this.addDisposables(this.model.onDidActivePanelChange(e=>{this.api._onDidActivePanelChange.fire(e)}),this.api.onDidConstraintsChangeInternal(e=>{e.minimumWidth!==void 0&&(this._explicitConstraints.minimumWidth=typeof e.minimumWidth==`function`?e.minimumWidth():e.minimumWidth),e.minimumHeight!==void 0&&(this._explicitConstraints.minimumHeight=typeof e.minimumHeight==`function`?e.minimumHeight():e.minimumHeight),e.maximumWidth!==void 0&&(this._explicitConstraints.maximumWidth=typeof e.maximumWidth==`function`?e.maximumWidth():e.maximumWidth),e.maximumHeight!==void 0&&(this._explicitConstraints.maximumHeight=typeof e.maximumHeight==`function`?e.maximumHeight():e.maximumHeight)}))}focus(){this.api.isActive||this.api.setActive(),super.focus()}initialize(){this._model.initialize()}setActive(e){super.setActive(e),this.model.setActive(e)}layout(e,t){super.layout(e,t),this.model.layout(e,t)}relayout(){this.model.relayout()}getComponent(){return this._model}toJSON(){return this.model.toJSON()}},Zr={name:`abyss`,className:`dockview-theme-abyss`,colorScheme:`dark`,tabGroupIndicator:`none`},Qr=class extends Wr{get location(){return this.group.api.location}get title(){return this.panel.title}get isPinned(){return this.panel.isPinned}get isGroupActive(){return this.group.isActive}get renderer(){return this.panel.renderer}set group(e){let t=this._group;this._group!==e&&(this._group=e,this._onDidGroupChange.fire({}),this.setupGroupEventListeners(t),this.fireLocationChange())}get group(){return this._group}get tabComponent(){return this._tabComponent}constructor(e,t,n,r,i){super(e.id,r),this.panel=e,this.accessor=n,this._onDidTitleChange=new $,this.onDidTitleChange=this._onDidTitleChange.event,this._onDidChangePinned=new $,this.onDidChangePinned=this._onDidChangePinned.event,this._onDidActiveGroupChange=new $,this.onDidActiveGroupChange=this._onDidActiveGroupChange.event,this._onDidGroupChange=new $,this.onDidGroupChange=this._onDidGroupChange.event,this._onDidRendererChange=new $,this.onDidRendererChange=this._onDidRendererChange.event,this._onDidLocationChange=new $,this.onDidLocationChange=this._onDidLocationChange.event,this.groupEventsDisposable=new Ge,this._tabComponent=i,this.initialize(e),this._group=t,this.setupGroupEventListeners(),this.addDisposables(this.groupEventsDisposable,this._onDidRendererChange,this._onDidTitleChange,this._onDidChangePinned,this._onDidGroupChange,this._onDidActiveGroupChange,this._onDidLocationChange)}getWindow(){return this.group.api.getWindow()}setActive(){this.accessor.withOrigin(`api`,()=>super.setActive())}moveTo(e){this.accessor.withOrigin(`api`,()=>this.accessor.moveGroupOrPanel({from:{groupId:this._group.id,panelId:this.panel.id},to:{group:e.group??this._group,position:e.group?e.position??`center`:`center`,index:e.index},skipSetActive:e.skipSetActive}))}setTitle(e){this.panel.setTitle(e)}setPinned(e){this.accessor.setPanelPinned(this.panel,e)}setRenderer(e){this.panel.setRenderer(e)}close(){this.group.model.closePanel(this.panel)}maximize(){this.group.api.maximize()}isMaximized(){return this.group.api.isMaximized()}exitMaximized(){this.group.api.exitMaximized()}fireLocationChange(){this.accessor.deferLocationChange(this,()=>{this.isDisposed||this._onDidLocationChange.fire({location:this.location})})}setupGroupEventListeners(e){let t=e?.isActive??!1;this.groupEventsDisposable.value=new Q(this.group.api.onDidVisibilityChange(e=>{let t=!e.isVisible&&this.isVisible,n=e.isVisible&&!this.isVisible,r=this.group.model.isPanelActive(this.panel);(t||n&&r)&&this._onDidVisibilityChange.fire(e)}),this.group.api.onDidLocationChange(()=>{this.group===this.panel.group&&this.fireLocationChange()}),this.group.api.onDidActiveChange(()=>{this.group===this.panel.group&&t!==this.isGroupActive&&(t=this.isGroupActive,this._onDidActiveGroupChange.fire({isActive:this.isGroupActive}))}))}},$r=class extends Q{get params(){return this._params}get title(){return this._title}get isPinned(){return this._pinned}get group(){return this._group}get renderer(){return this._renderer??this.accessor.renderer}get minimumWidth(){return this._minimumWidth}get minimumHeight(){return this._minimumHeight}get maximumWidth(){return this._maximumWidth}get maximumHeight(){return this._maximumHeight}constructor(e,t,n,r,i,a,o,s){super(),this.id=e,this.accessor=r,this.containerApi=i,this.view=o,this._pinned=!1,this._renderer=s.renderer,this._group=a,this._minimumWidth=s.minimumWidth,this._minimumHeight=s.minimumHeight,this._maximumWidth=s.maximumWidth,this._maximumHeight=s.maximumHeight,this.api=new Qr(this,this._group,r,t,n),this.addDisposables(this.api.onActiveChange(()=>{r.setActivePanel(this)}),this.api.onDidSizeChange(e=>{this.group.api.setSize(e)}),this.api.onDidRendererChange(()=>{this.group.model.rerender(this)}))}init(e){this._params=e.params,this.view.init(ln(ln({},e),{},{api:this.api,containerApi:this.containerApi})),this.setTitle(e.title)}focus(){let e=new Kn;this.api._onWillFocus.fire(e),!e.defaultPrevented&&(this.api.isActive||this.api.setActive())}toJSON(){return{id:this.id,contentComponent:this.view.contentComponent,tabComponent:this.view.tabComponent,params:Object.keys(this._params||{}).length>0?this._params:void 0,title:this.title,renderer:this._renderer,minimumHeight:this._minimumHeight,maximumHeight:this._maximumHeight,minimumWidth:this._minimumWidth,maximumWidth:this._maximumWidth,pinned:this._pinned?!0:void 0}}setTitle(e){e!==this.title&&(this._title=e,this.view.setTitle(e),this.api._onDidTitleChange.fire({title:e}))}setPinned(e){this._pinned!==e&&(this._pinned=e,this.api._onDidChangePinned.fire({isPinned:e}))}setRenderer(e){e!==this.renderer&&(this._renderer=e,this.api._onDidRendererChange.fire({renderer:e}))}update(e){this._params=ln(ln({},this._params),e.params);for(let t of Object.keys(e.params))e.params[t]===void 0&&delete this._params[t];this.view.update({params:this._params})}updateFromStateModel(e){this._maximumHeight=e.maximumHeight,this._minimumHeight=e.minimumHeight,this._maximumWidth=e.maximumWidth,this._minimumWidth=e.minimumWidth,this._params=e.params??{},this.view.update({params:this._params}),this.setTitle(e.title??this.id),this.setRenderer(e.renderer??this.accessor.renderer),this.setPinned((e.pinned??!1)&&!!this.accessor.options.pinnedTabs?.enabled)}updateParentGroup(e,t){this._group=e,this.api.group=this._group;let n=this._group.model.isPanelActive(this),r=this.group.api.isActive&&n;t?.skipSetActive||this.api.isActive!==r&&this.api._onDidActiveChange.fire({isActive:this.group.api.isActive&&n}),this.api.isVisible!==n&&this.api._onDidVisibilityChange.fire({isVisible:n})}runEvents(){let e=this._group.model.isPanelActive(this),t=this.group.api.isActive&&e;this.api.isActive!==t&&this.api._onDidActiveChange.fire({isActive:this.group.api.isActive&&e}),this.api.isVisible!==e&&this.api._onDidVisibilityChange.fire({isVisible:e})}layout(e,t){this.api._onDidDimensionChange.fire({width:e,height:t}),this.view.layout(e,t)}dispose(){this.api.dispose(),this.view.dispose()}},ei=class extends Q{get element(){return this._element}constructor(){super(),this._messages=fn,this._element=document.createElement(`div`),this._element.className=`dv-default-tab`,this._content=document.createElement(`div`),this._content.className=`dv-default-tab-content`,this.action=document.createElement(`div`),this.action.className=`dv-default-tab-action`,this.action.setAttribute(`role`,`button`),this.action.setAttribute(`tabindex`,`-1`);let e=$n();e.setAttribute(`aria-hidden`,`true`),this.action.appendChild(e),this._element.appendChild(this._content),this._element.appendChild(this.action),this.render()}init(e){this._title=e.title,this._messages=e.containerApi.messages??fn,this.addDisposables(e.api.onDidTitleChange(e=>{this._title=e.title,this.render()}),Qe(this.action,`pointerdown`,e=>{e.preventDefault()}),Qe(this.action,`click`,t=>{t.defaultPrevented||(t.preventDefault(),e.api.close())})),this.render()}render(){this._content.textContent!==this._title&&(this._content.textContent=this._title??``),this.action.setAttribute(`aria-label`,this._title?this._messages.closeTab(this._title):this._messages.closeTabPlain())}},ti=class{get content(){return this._content}get tab(){return this._tab}constructor(e,t,n,r){this.accessor=e,this.id=t,this.contentComponent=n,this.tabComponent=r,this._content=this.createContentComponent(this.id,n),this._tab=this.createTabComponent(this.id,r)}createTabRenderer(e){let t=this.createTabComponent(this.id,this.tabComponent);if(this._params&&t.init(ln(ln({},this._params),{},{tabLocation:e})),this._updateEvent){var n;(n=t.update)==null||n.call(t,this._updateEvent)}return t}init(e){this._params=e,this.content.init(e),this.tab.init(ln(ln({},e),{},{tabLocation:`header`}))}setTitle(e){this._params&&(this._params.title=e)}layout(e,t){var n,r;(n=(r=this.content).layout)==null||n.call(r,e,t)}update(e){var t,n,r,i;this._updateEvent=e,(t=(n=this.content).update)==null||t.call(n,e),(r=(i=this.tab).update)==null||r.call(i,e)}dispose(){var e,t,n,r;(e=(t=this.content).dispose)==null||e.call(t),(n=(r=this.tab).dispose)==null||n.call(r)}createContentComponent(e,t){return this.accessor.options.createComponent({id:e,name:t})}createTabComponent(e,t){let n=t??this.accessor.options.defaultTabComponent;if(n){if(this.accessor.options.createTabComponent)return this.accessor.options.createTabComponent({id:e,name:n})||new ei;console.warn(`dockview: tabComponent '${t}' was not found. falling back to the default tab.`)}return new ei}},ni=class{constructor(e){this.accessor=e}fromJSON(e,t){let n=e.id,r=e.params,i=e.title,a=e.view,o=a?a.content.id:e.contentComponent??`unknown`,s=a?a.tab?.id:e.tabComponent,c=new ti(this.accessor,n,o,s),l=new $r(n,o,s,this.accessor,new mn(this.accessor),t,c,{renderer:e.renderer,minimumWidth:e.minimumWidth,minimumHeight:e.minimumHeight,maximumWidth:e.maximumWidth,maximumHeight:e.maximumHeight});return l.init({title:i??n,params:r??{}}),e.pinned&&this.accessor.options.pinnedTabs?.enabled&&l.setPinned(!0),l}},ri=class extends Q{get element(){return this._element}constructor(){super(),this._element=document.createElement(`div`),this._element.className=`dv-watermark`}init(e){}},ii=new class{constructor(){this._orderedList=[]}push(e){this._orderedList=[...this._orderedList.filter(t=>t!==e),e],this.update()}destroy(e){this._orderedList=this._orderedList.filter(t=>t!==e),this.update()}update(){for(let e=0;e<this._orderedList.length;e++)this._orderedList[e].setAttribute(`aria-level`,`${e}`),this._orderedList[e].style.zIndex=`calc(var(--dv-overlay-z-index, 999) + ${e*2})`}},ai=class e extends Q{set minimumInViewportWidth(e){this.options.minimumInViewportWidth=e}set minimumInViewportHeight(e){this.options.minimumInViewportHeight=e}get element(){return this._element}get isVisible(){return this._isVisible}get headerHeight(){return this.options.header?.offsetHeight??0}constructor(e){super(),this.options=e,this._element=document.createElement(`div`),this._onDidChange=new $,this.onDidChange=this._onDidChange.event,this._onDidChangeEnd=new $,this.onDidChangeEnd=this._onDidChangeEnd.event,this._onDidStartMoving=new $,this.onDidStartMoving=this._onDidStartMoving.event,this._dragMove=new Ge,this._dragCancelled=!1,this.addDisposables(this._onDidChange,this._onDidChangeEnd,this._onDidStartMoving,this._dragMove),this._element.className=`dv-resize-container`,this._element.setAttribute(`role`,`dialog`),this._element.setAttribute(`aria-modal`,`false`),this._isVisible=!0,this.setupResize(`top`),this.setupResize(`bottom`),this.setupResize(`left`),this.setupResize(`right`),this.setupResize(`topleft`),this.setupResize(`topright`),this.setupResize(`bottomleft`),this.setupResize(`bottomright`),this.options.header&&(it(this._element,`dv-resize-container-with-titlebar`,!0),this._element.appendChild(this.options.header)),this._element.appendChild(this.options.content),this.options.container.appendChild(this._element),this.setBounds(ln(ln(ln(ln({height:this.options.height,width:this.options.width},`top`in this.options&&{top:this.options.top}),`bottom`in this.options&&{bottom:this.options.bottom}),`left`in this.options&&{left:this.options.left}),`right`in this.options&&{right:this.options.right})),ii.push(this._element)}setVisible(e){e!==this.isVisible&&(this._isVisible=e,it(this.element,`dv-hidden`,!this.isVisible))}bringToFront(){ii.push(this._element)}setBounds(e={}){typeof e.height==`number`&&(this._element.style.height=`${e.height}px`),typeof e.width==`number`&&(this._element.style.width=`${e.width}px`),`top`in e&&typeof e.top==`number`&&(this._element.style.top=`${e.top}px`,this._element.style.bottom=`auto`,this.verticalAlignment=`top`),`bottom`in e&&typeof e.bottom==`number`&&(this._element.style.bottom=`${e.bottom}px`,this._element.style.top=`auto`,this.verticalAlignment=`bottom`),`left`in e&&typeof e.left==`number`&&(this._element.style.left=`${e.left}px`,this._element.style.right=`auto`,this.horiziontalAlignment=`left`),`right`in e&&typeof e.right==`number`&&(this._element.style.right=`${e.right}px`,this._element.style.left=`auto`,this.horiziontalAlignment=`right`);let t=this.options.container.getBoundingClientRect(),n=this._element.getBoundingClientRect(),r=Math.max(0,this.getMinimumWidth(n.width)),i=Math.max(0,this.getMinimumHeight(n.height));if(this.verticalAlignment===`top`){let e=jt(n.top-t.top,-i,Math.max(0,t.height-n.height+i));this._element.style.top=`${e}px`,this._element.style.bottom=`auto`}if(this.verticalAlignment===`bottom`){let e=jt(t.bottom-n.bottom,-i,Math.max(0,t.height-n.height+i));this._element.style.bottom=`${e}px`,this._element.style.top=`auto`}if(this.horiziontalAlignment===`left`){let e=jt(n.left-t.left,-r,Math.max(0,t.width-n.width+r));this._element.style.left=`${e}px`,this._element.style.right=`auto`}if(this.horiziontalAlignment===`right`){let e=jt(t.right-n.right,-r,Math.max(0,t.width-n.width+r));this._element.style.right=`${e}px`,this._element.style.left=`auto`}this._onDidChange.fire()}toJSON(){let e=this.options.container.getBoundingClientRect(),t=this._element.getBoundingClientRect(),n={};return this.verticalAlignment===`top`?n.top=Number.parseFloat(this._element.style.top):this.verticalAlignment===`bottom`?n.bottom=Number.parseFloat(this._element.style.bottom):n.top=t.top-e.top,this.horiziontalAlignment===`left`?n.left=Number.parseFloat(this._element.style.left):this.horiziontalAlignment===`right`?n.right=Number.parseFloat(this._element.style.right):n.left=t.left-e.left,n.width=t.width,n.height=t.height,n}cancelPendingDrag(){this._dragMove.value&&(this._dragCancelled=!0,it(this._element,`dv-resize-container-dragging`,!1),this._dragMove.value=We.NONE)}setupDrag(e,t){let n=(e,t)=>{var n;let r=null,i=!1;this._dragCancelled=!1;let a=this.options.transformDragPosition?(n=this.options).getSiblingBoxes?.call(n)??[]:[],o=gt();if(e&&typeof t==`number`&&typeof e.setPointerCapture==`function`)try{e.setPointerCapture(t)}catch{}let s=()=>{it(this._element,`dv-resize-container-dragging`,!1),this._dragMove.value=We.NONE,this._onDidChangeEnd.fire()};this._dragMove.value=new Q({dispose:()=>{if(o.release(),e&&typeof t==`number`&&typeof e.releasePointerCapture==`function`)try{e.releasePointerCapture(t)}catch{}}},Qe(globalThis.window,`pointermove`,e=>{if(this._dragCancelled)return;let t=this.options.container.getBoundingClientRect(),n=e.clientX-t.left,o=e.clientY-t.top;it(this._element,`dv-resize-container-dragging`,!0);let s=this._element.getBoundingClientRect();r??={x:e.clientX-s.left,y:e.clientY-s.top};let c=Math.max(0,this.getMinimumWidth(s.width)),l=Math.max(0,this.getMinimumHeight(s.height)),u=o-r.y,d=n-r.x;if(this.options.transformDragPosition){let n=this.options.transformDragPosition({proposed:{top:u,left:d,width:s.width,height:s.height},container:{width:t.width,height:t.height},others:a,modifiers:{altKey:e.altKey,ctrlKey:e.ctrlKey,metaKey:e.metaKey,shiftKey:e.shiftKey}});n&&(u=n.top,d=n.left)}let f=Math.max(0,t.height-s.height+l),p=Math.max(0,t.width-s.width+c),m=jt(u,-l,f),h=jt(t.height-s.height-u,-l,f),g=jt(d,-c,p),_=jt(t.width-s.width-d,-c,p),v={};m<=h?v.top=m:v.bottom=h,g<=_?v.left=g:v.right=_,this.setBounds(v),i||(i=!0,this._onDidStartMoving.fire())}),Qe(globalThis.window,`pointerup`,s),Qe(globalThis.window,`pointercancel`,s))};this.addDisposables(Qe(e,`pointerdown`,t=>{if(t.defaultPrevented){t.preventDefault();return}ut(t)||n(e,t.pointerId)}),Qe(this.options.content,`pointerdown`,e=>{e.defaultPrevented||ut(e)||e.shiftKey&&n(this.options.content,e.pointerId)}),Qe(this.options.content,`pointerdown`,()=>{ii.push(this._element)},!0)),t?.inDragMode&&n()}setupResize(t){let n=document.createElement(`div`);n.className=`dv-resize-handle-${t}`,this._element.appendChild(n);let r=new Ge;this.addDisposables(r,Qe(n,`pointerdown`,i=>{i.preventDefault();let a=null,o=gt(),s=i.pointerId;if(typeof n.setPointerCapture==`function`)try{n.setPointerCapture(s)}catch{}let c=()=>{r.dispose(),this._onDidChangeEnd.fire()};r.value=new Q(Qe(globalThis.window,`pointermove`,n=>{let r=this.options.container.getBoundingClientRect(),i=this._element.getBoundingClientRect(),o=n.clientY-r.top,s=n.clientX-r.left;a??={originalY:o,originalHeight:i.height,originalX:s,originalWidth:i.width};let c,l,u,d,f,p,m=()=>{let t=a.originalY+a.originalHeight>r.height?Math.max(0,r.height-e.MINIMUM_HEIGHT):Math.max(0,a.originalY+a.originalHeight-e.MINIMUM_HEIGHT);c=jt(o,0,t),u=a.originalY+a.originalHeight-c,l=r.height-c-u},h=()=>{c=a.originalY-a.originalHeight;let t=c<0&&typeof this.options.minimumInViewportHeight==`number`?-c+this.options.minimumInViewportHeight:e.MINIMUM_HEIGHT,n=r.height-Math.max(0,c);u=jt(o-c,t,n),l=r.height-c-u},g=()=>{let t=a.originalX+a.originalWidth>r.width?Math.max(0,r.width-e.MINIMUM_WIDTH):Math.max(0,a.originalX+a.originalWidth-e.MINIMUM_WIDTH);d=jt(s,0,t),p=a.originalX+a.originalWidth-d,f=r.width-d-p},_=()=>{d=a.originalX-a.originalWidth;let t=d<0&&typeof this.options.minimumInViewportWidth==`number`?-d+this.options.minimumInViewportWidth:e.MINIMUM_WIDTH,n=r.width-Math.max(0,d);p=jt(s-d,t,n),f=r.width-d-p};switch(t){case`top`:m();break;case`bottom`:h();break;case`left`:g();break;case`right`:_();break;case`topleft`:m(),g();break;case`topright`:m(),_();break;case`bottomleft`:h(),g();break;case`bottomright`:h(),_()}let v={};c<=l?v.top=c:v.bottom=l,d<=f?v.left=d:v.right=f,v.height=u,v.width=p,this.setBounds(v)}),{dispose:()=>{if(o.release(),typeof n.releasePointerCapture==`function`)try{n.releasePointerCapture(s)}catch{}}},Qe(globalThis.window,`pointerup`,c),Qe(globalThis.window,`pointercancel`,c))}))}getMinimumWidth(e){return typeof this.options.minimumInViewportWidth==`number`?e-this.options.minimumInViewportWidth:0}getMinimumHeight(e){return typeof this.options.minimumInViewportHeight==`number`?e-this.options.minimumInViewportHeight:0}dispose(){ii.destroy(this._element),this._element.remove(),super.dispose()}};ai.MINIMUM_HEIGHT=20,ai.MINIMUM_WIDTH=20;var oi=class extends Q{get element(){return this._element}get group(){return this._group}setGroup(e){this._group=e}constructor(e,t){super(),this.accessor=e,this._onDragStart=new $,this.onDragStart=this._onDragStart.event,this._group=t,this._element=document.createElement(`div`),this._element.className=`dv-floating-titlebar`,this.addDisposables(this._onDragStart,Qe(this._element,`pointerdown`,()=>{this.accessor.doSetGroupActive(this._group)}),Qe(this._element,`pointerdown`,e=>{e.shiftKey&<(e)},!0)),this.dragSource=new dr({element:this._element,accessor:this.accessor,group:()=>this._group}),this.addDisposables(this.dragSource,this.dragSource.onDragStart(e=>{this._onDragStart.fire(e)}))}updateDragAndDropState(){this.dragSource.updateDragAndDropState()}};function si(e){return{moduleName:e.name,options:e.options,services:{[e.serviceKey]:e.create},init:e.init?(t,n)=>e.init(t,n[e.serviceKey]):void 0,dependsOn:e.dependsOn}}var ci=new Set([`AdvancedOverflow`,`AutoEdgeGroup`,`AutoHideEdgeGroup`,`ContextMenu`,`DndCompass`,`KeyboardDocking`,`KeyboardNavigation`,`LayoutHistory`,`License`,`MultiRowTabs`,`PinnedTabs`,`SmartGuides`]),li=new Set;function ui(e,t){let n=t===void 0?[]:[].concat(t),r=n.map(e=>`\`${e}\``).join(`, `),i=n.length>1?`require`:`requires`,a=n.length?`${r} ${i} the "${e}" module`:`The "${e}" module is required`;return ci.has(e)?`dockview: ${a}, which ships in dockview-enterprise.\n\n npm install dockview-enterprise\n import 'dockview-enterprise'; // self-registers every enterprise module\n`:`dockview: ${a}, but it is not registered.`}function di(e,t){let n=`${e}|${(t===void 0?[]:[].concat(t)).join(`|`)}`;li.has(n)||(li.add(n),console.error(ui(e,t)))}function fi(e,t,n){if(e!==void 0)return e;di(t,n)}var pi=class{constructor(){this._modules=new Map,this._services={},this._initDisposables=[]}get services(){return this._services}register(e){if(!this._modules.has(e.moduleName)){if(e.dependsOn)for(let t of e.dependsOn)this.register(t);this._modules.set(e.moduleName,e)}}initialize(e){for(let t of this._modules.values())if(t.services)for(let[n,r]of Object.entries(t.services))this._services[n]=r(e)}postConstruct(e){for(let t of this._modules.values())t.init&&this._initDisposables.push(t.init(e,this._services))}has(e){return this._modules.has(e)}dispose(){for(let e of this._initDisposables)e.dispose();this._initDisposables.length=0;for(let e of Object.values(this._services))e!==void 0&&typeof e.dispose==`function`&&e.dispose()}},mi=[];function hi(){return[...mi]}var gi=[{optionKey:`smartGuides`,reason:`smartGuides`,moduleName:`SmartGuides`,when:e=>!!e.smartGuides&&e.smartGuides.enabled!==!1},{optionKey:`layoutHistory`,reason:`layoutHistory.enabled: true`,moduleName:`LayoutHistory`,when:e=>e.layoutHistory?.enabled===!0},{optionKey:`pinnedTabs`,reason:`pinnedTabs.enabled: true`,moduleName:`PinnedTabs`,when:e=>e.pinnedTabs?.enabled===!0},{optionKey:`overflow`,reason:`overflow.mode: 'wrap'`,moduleName:`MultiRowTabs`,when:e=>e.overflow?.mode===`wrap`},{optionKey:`overflow`,reason:`overflow.maxRows`,moduleName:`MultiRowTabs`,when:e=>e.overflow?.maxRows!=null},{optionKey:`overflow`,reason:`overflow.search`,moduleName:`AdvancedOverflow`,when:e=>!!e.overflow?.search},{optionKey:`overflow`,reason:`overflow.mru`,moduleName:`AdvancedOverflow`,when:e=>!!e.overflow?.mru},{optionKey:`autoHideEdgeGroups`,reason:`autoHideEdgeGroups`,moduleName:`AutoHideEdgeGroup`,when:e=>gr(e.autoHideEdgeGroups)},{optionKey:`dockToEdgeGroups`,reason:`dockToEdgeGroups`,moduleName:`AutoEdgeGroup`,when:e=>gr(e.dockToEdgeGroups)},{optionKey:`getTabContextMenuItems`,reason:`getTabContextMenuItems`,moduleName:`ContextMenu`,when:e=>e.getTabContextMenuItems!=null},{optionKey:`getTabGroupChipContextMenuItems`,reason:`getTabGroupChipContextMenuItems`,moduleName:`ContextMenu`,when:e=>e.getTabGroupChipContextMenuItems!=null},{optionKey:`dndCompass`,reason:`dndCompass`,moduleName:`DndCompass`,when:e=>!!e.dndCompass},{optionKey:`keyboardNavigation`,reason:`keyboardNavigation`,moduleName:`KeyboardNavigation`,when:e=>!!e.keyboardNavigation}];function _i(e,t){let n=new Map;for(let r of gi){if(!r.when(e)||t(r.moduleName))continue;let i=n.get(r.moduleName);i?i.push(r.reason):n.set(r.moduleName,[r.reason])}for(let[e,t]of n)di(e,t)}var vi={left:100,top:100,width:300,height:300},yi=class extends Q{get group(){return this._group}setTitleBar(e){this._titleBar=e}setAnchorGroup(e){var t;this._group=e,(t=this._titleBar)==null||t.setGroup(e)}constructor(e,t,n){super(),this.overlay=t,this.gridview=n,this._group=e,this.addDisposables(t,{dispose:()=>this.gridview.dispose()})}position(e){this.overlay.setBounds(e)}},bi=class{get floatingGroups(){return this._floatingGroups}constructor(e){this._floatingGroups=[],this._host=e}add(e,t,n){let r=new yi(e,t,n),i=new Q(e.api.onDidActiveChange(e=>{e.isActive&&t.bringToFront()}),(()=>{let e=-1,t=-1;return tt(n.element,r=>{let i=Math.round(r.contentRect.width),a=Math.round(r.contentRect.height);(i!==e||a!==t)&&(e=i,t=a,n.layout(i,a))})})()),a=()=>{let n=e.activePanel?.title;n?t.element.setAttribute(`aria-label`,n):t.element.removeAttribute(`aria-label`)};return a(),r.addDisposables(e.api.onDidActivePanelChange(()=>a()),t.onDidChange(()=>{n.layout(n.width,n.height)}),t.onDidChangeEnd(()=>{this._host.fireLayoutChange()}),e.onDidChange(e=>{t.setBounds({height:typeof e?.height==`number`?e.height+t.headerHeight:e?.height,width:e?.width})}),{dispose:()=>{i.dispose(),At(this._floatingGroups,r),e.model.location={type:`grid`}}}),this._floatingGroups.push(r),r}findByGroup(e){return this._floatingGroups.find(t=>t.group===e||t.gridview.element.contains(e.element))}serialize(){return this._floatingGroups.map(e=>{let t=e.gridview.serialize(),n=e.overlay.toJSON(),r=t.root;return r.type===`branch`&&r.data.length===1&&r.data[0].type===`leaf`?{data:r.data[0].data,position:n}:{grid:t,position:n}})}constrainBounds(){for(let e of this._floatingGroups)e.overlay.setBounds()}updateBounds(e){if(`floatingGroupBounds`in e)for(let t of this._floatingGroups){switch(e.floatingGroupBounds){case`boundedWithinViewport`:t.overlay.minimumInViewportHeight=void 0,t.overlay.minimumInViewportWidth=void 0;break;case void 0:t.overlay.minimumInViewportHeight=100,t.overlay.minimumInViewportWidth=100;break;default:t.overlay.minimumInViewportHeight=e.floatingGroupBounds?.minimumHeightWithinViewport,t.overlay.minimumInViewportWidth=e.floatingGroupBounds?.minimumWidthWithinViewport}t.overlay.setBounds()}}disposeAll(){for(let e of[...this._floatingGroups])e.dispose()}dispose(){this.disposeAll()}},xi=si({name:`FloatingGroup`,serviceKey:`floatingGroupService`,create:e=>new bi(e)}),Si=class{constructor(e){this._entries=[],this._restorationCleanups=new Set,this._restorationPromise=Promise.resolve(),this._onDidRemove=new $,this.onDidRemove=this._onDidRemove.event,this._host=e}get entries(){return this._entries}get restorationPromise(){return this._restorationPromise}add(e){this._entries.push(e)}remove(e){At(this._entries,e)&&!this._host.isDisposed&&this._onDidRemove.fire(e)}findByGroup(e){return this._entries.find(t=>t.popoutGroup===e||t.gridview.element.contains(e.element))}findReferenceGroupId(e){return this._entries.find(t=>t.popoutGroup===e)?.referenceGroup}observeGridviewSize(e,t,n){let r=e.window?.ResizeObserver;if(!r)return;let i=-1,a=-1,o=()=>{let r=e.window;if(this._host.isDisposed||!r||r.closed)return;let o=Math.round(t.element.clientWidth),s=Math.round(t.element.clientHeight);(o!==i||s!==a)&&(i=o,a=s,o>0&&s>0&&t.layout(o,s),n.updateAllPositions())},s=new r(()=>{let t=e.window?.requestAnimationFrame;t?t.call(e.window,o):o()});return s.observe(t.element),{dispose:()=>s.disconnect()}}scheduleRestoration(e,t,n){return new Promise(r=>{let i=()=>{this._restorationCleanups.delete(i),clearTimeout(a),n?.(),r()},a=setTimeout(()=>{if(this._restorationCleanups.delete(i),this._host.isDisposed){r();return}t(),r()},e);this._restorationCleanups.add(i)})}finishRestoration(e){this._restorationPromise=Promise.all(e).then(()=>void 0)}cancelPendingRestorations(){for(let e of[...this._restorationCleanups])e();this._restorationCleanups.clear()}serialize(){return this._entries.map(e=>{let t=e.gridview.serialize(),n=t.root,r=e.popoutGroup.api.location.type===`popout`?e.popoutGroup.api.location.popoutUrl:void 0,i={gridReferenceGroup:e.referenceGroup,position:e.window.dimensions(),url:r};return n.type===`branch`&&n.data.length===1&&n.data[0].type===`leaf`?ln(ln({},i),{},{data:n.data[0].data}):ln(ln({},i),{},{grid:t})})}disposeAll(){for(let e of[...this._entries])e.disposable.dispose()}dispose(){this.cancelPendingRestorations(),this.disposeAll(),this._onDidRemove.dispose()}},Ci=si({name:`PopoutWindow`,serviceKey:`popoutWindowService`,create:e=>new Si(e)}),wi=class{constructor(e){this._watermark=null,this._host=e}update(){if(this._host.hasVisibleGridGroup()){this._unmount();return}if(this._watermark)return;this._watermark=this._host.createWatermarkComponent(),this._watermark.init({containerApi:this._host.api});let e=document.createElement(`div`);e.className=`dv-watermark-container`,mt(e,`watermark-component`),e.appendChild(this._watermark.element),this._host.mountElement.appendChild(e)}refresh(){this._unmount(),this.update()}_unmount(){var e,t;this._watermark&&=(this._watermark.element.parentElement.remove(),(e=(t=this._watermark).dispose)==null||e.call(t),null)}dispose(){this._unmount()}},Ti=si({name:`Watermark`,serviceKey:`watermarkService`,create:e=>new wi(e),init:(e,t)=>(t.update(),new Q(Ke.any(e.onDidAdd,e.onDidRemove)(()=>{t.update()}),e.onDidViewVisibilityChangeMicroTaskQueue(()=>{t.update()})))}),Ei=class{constructor(){this._edgeGroups=new Map,this._edgeGroupDisposables=new Map,this._autoHide=new WeakMap,this._autoReveal=new WeakMap}add(e,t,n){this._edgeGroups.set(e,t),this._edgeGroupDisposables.set(e,n)}remove(e){var t;(t=this._edgeGroupDisposables.get(e))==null||t.dispose(),this._edgeGroupDisposables.delete(e),this._edgeGroups.delete(e)}get(e){return this._edgeGroups.get(e)}has(e){return this._edgeGroups.has(e)}hasAny(){return this._edgeGroups.size>0}entries(){return this._edgeGroups.entries()}includes(e){for(let t of this._edgeGroups.values())if(t===e)return!0;return!1}findPositionOf(e){for(let[t,n]of this._edgeGroups)if(n===e)return t}setAutoHide(e,t){t===void 0?this._autoHide.delete(e):this._autoHide.set(e,t)}isAutoHide(e){return this._autoHide.get(e)}setAutoReveal(e,t){this._autoReveal.set(e,t)}isAutoReveal(e){return this._autoReveal.get(e)??!1}disposeAll(){for(let e of this._edgeGroupDisposables.values())e.dispose();this._edgeGroupDisposables.clear(),this._edgeGroups.clear()}dispose(){this.disposeAll()}},Di=si({name:`EdgeGroup`,serviceKey:`edgeGroupService`,create:()=>new Ei}),Oi={activationSize:{type:`pixels`,value:10},size:{type:`pixels`,value:20}},ki={activationSize:{type:`pixels`,value:32},size:{type:`pixels`,value:20}};function Ai(e,t){return typeof e.dndEdges==`object`&&e.dndEdges!==null?e.dndEdges:t&&gr(e.dockToEdgeGroups)?ki:Oi}var ji=class{constructor(e){this._host=e;let t=(t,n)=>{let r=Ue();return r?r.viewId===e.id?n!==`center`||e.isGridEmpty():!1:n===`center`&&!e.isGridEmpty()?!1:e.dispatchUnhandledDragOver(t,n)},n=Ai(e.options,!1);this._html5Target=Wn.createDropTarget(e.element,{className:`dv-drop-target-edge`,canDisplayOverlay:t,acceptedTargetZones:[`top`,`bottom`,`left`,`right`,`center`],overlayModel:n,getOverrideTarget:()=>e.rootDropTargetOverrideTarget(),getPositionResolver:()=>e.options.dropPositionResolver}),this._pointerTarget=Gn.createDropTarget(e.element,{className:`dv-drop-target-edge`,canDisplayOverlay:t,acceptedTargetZones:[`top`,`bottom`,`left`,`right`,`center`],overlayModel:n,getOverrideTarget:()=>e.rootDropTargetOverrideTarget(),getPositionResolver:()=>e.options.dropPositionResolver}),this.onWillShowOverlay=Ke.any(this._html5Target.onWillShowOverlay,this._pointerTarget.onWillShowOverlay),this.onDrop=Ke.any(this._html5Target.onDrop,this._pointerTarget.onDrop),this.setOptions(e.options)}setOptions(e){if(`dndEdges`in e){let t=typeof e.dndEdges==`boolean`&&e.dndEdges===!1;this._html5Target.disabled=t,this._pointerTarget.disabled=t}if(`dndEdges`in e||`dockToEdgeGroups`in e){let t=Ai({dndEdges:`dndEdges`in e?e.dndEdges:this._host.options.dndEdges,dockToEdgeGroups:`dockToEdgeGroups`in e?e.dockToEdgeGroups:this._host.options.dockToEdgeGroups},this._host.hasEdgeDragReveal);this._html5Target.setOverlayModel(t),this._pointerTarget.setOverlayModel(t)}}dispose(){this._html5Target.dispose(),this._pointerTarget.dispose()}},Mi=si({name:`RootDropTarget`,serviceKey:`rootDropTargetService`,create:e=>new ji(e),init:(e,t)=>(t.setOptions(e.options),We.NONE)}),Ni={left:`createLeftHeaderActionComponent`,right:`createRightHeaderActionComponent`,prefix:`createPrefixHeaderActionComponent`},Pi=class{constructor(e){this._perGroup=new Map,this._host=e}refresh(e){if(!e?.model)return;let t=this._ensureState(e);this._refreshSlot(`left`,e,t.left),this._refreshSlot(`right`,e,t.right),this._refreshSlot(`prefix`,e,t.prefix)}refreshAll(){for(let e of this._host.groups)this.refresh(e)}disposeGroup(e){let t=this._perGroup.get(e);t&&(t.left.dispose(),t.right.dispose(),t.prefix.dispose(),this._perGroup.delete(e))}dispose(){for(let e of[...this._perGroup.keys()])this.disposeGroup(e)}_ensureState(e){let t=this._perGroup.get(e);return t||(t={left:new Ge,right:new Ge,prefix:new Ge},this._perGroup.set(e,t)),t}_refreshSlot(e,t,n){let r=this._host.options[Ni[e]];if(r){let i=r(t);n.value=i,i.init({containerApi:this._host.api,api:t.api,group:t}),t.model.attachHeaderAction(e,i.element)}else n.dispose(),t.model.attachHeaderAction(e,void 0)}},Fi=si({name:`HeaderActions`,serviceKey:`headerActionsService`,create:e=>new Pi(e),init:(e,t)=>new Q(e.onDidRemoveGroup(e=>{t.disposeGroup(e)}))}),Ii=e=>e===`load`||e===`clear`;function Li(e,t){let n=e.createElement(`div`);return n.className=t===`assertive`?`dv-live-region-assertive`:`dv-live-region`,n.setAttribute(`role`,t===`assertive`?`alert`:`status`),n.setAttribute(`aria-live`,t),n.setAttribute(`aria-atomic`,`true`),Object.assign(n.style,{position:`absolute`,width:`1px`,height:`1px`,margin:`-1px`,padding:`0`,overflow:`hidden`,clip:`rect(0 0 0 0)`,clipPath:`inset(50%)`,whiteSpace:`nowrap`,border:`0`}),n}var Ri=class extends Q{constructor(e){super(),this._regions=new Map,this._suppressDepth=0,this._locationSubs=new Map,this._host=e;let t=e.element.ownerDocument;this._mainWindow=t.defaultView??window;let n={polite:Li(t,`polite`),assertive:Li(t,`assertive`)};e.element.appendChild(n.polite),e.element.appendChild(n.assertive),this._regions.set(this._mainWindow,n),this._syncPopoutRegions(),this.addDisposables({dispose:()=>this._disposeRegions()},e.onDidChangePopouts(()=>this._syncPopoutRegions()),e.onDidAddPanel(e=>this._announce(e,`open`)),e.onDidRemovePanel(e=>this._announce(e,`close`)),e.onWillMutateLayout(e=>{Ii(e.kind)&&this._suppressDepth++}),e.onDidMutateLayout(e=>{Ii(e.kind)&&(this._suppressDepth=Math.max(0,this._suppressDepth-1))}),e.onDidMaximizedGroupChange(e=>{let t=e.group.activePanel;t&&this._announce(t,e.isMaximized?`maximize`:`restore`)}),e.onDidAddGroup(e=>this._trackLocation(e)),e.onDidRemoveGroup(e=>{var t;(t=this._locationSubs.get(e.id))==null||t.dispose(),this._locationSubs.delete(e.id)}),{dispose:()=>{this._locationSubs.forEach(e=>e.dispose()),this._locationSubs.clear()}})}_syncPopoutRegions(){let e=this._host.element.ownerDocument,t=new Set([this._mainWindow]);for(let n of this._host.getPopoutWindows()){if(n.document===e||(t.add(n),this._regions.has(n)))continue;let r=n.document,i=r.body??r.documentElement,a={polite:Li(r,`polite`),assertive:Li(r,`assertive`)};i.appendChild(a.polite),i.appendChild(a.assertive),this._regions.set(n,a)}for(let[e,n]of this._regions)t.has(e)||(n.polite.remove(),n.assertive.remove(),this._regions.delete(e))}_disposeRegions(){for(let e of this._regions.values())e.polite.remove(),e.assertive.remove();this._regions.clear()}_focusedRegions(){for(let[e,t]of this._regions)if(e!==this._mainWindow)try{if(e.document.hasFocus())return t}catch{}return this._regions.get(this._mainWindow)}_trackLocation(e){let t=e.api.location.type,n=e.api.onDidLocationChange(n=>{let r=n.location.type;if(r===t)return;t=r;let i=e.activePanel;if(!i)return;let a;switch(r){case`floating`:a=`float`;break;case`popout`:a=`popout`;break;default:a=`dock`}this._announce(i,a)});this._locationSubs.set(e.id,n)}announce(e,t=`polite`){if(this._host.options.announcements===!1||this._suppressDepth>0||!e)return;let n=this._host.options.announcer;if(n){n({message:e,politeness:t});return}let r=this._focusedRegions(),i=t===`assertive`?r.assertive:r.polite;i.textContent=``,i.textContent=e}_announce(e,t){var n;let r=(n=this._host.options).getAnnouncement?.call(n,{kind:t,panel:e});r!==null&&r!==``&&this.announce(r??this._defaultMessage(e,t))}_defaultMessage(e,t){let n=pn(this._host.options.messages),r=e.title??e.id;switch(t){case`open`:return n.panelOpened(r);case`close`:return n.panelClosed(r);case`maximize`:return n.groupMaximized(r);case`restore`:return n.groupRestored(r);case`float`:return n.groupFloated(r);case`dock`:return n.groupDocked(r);case`popout`:return n.groupPoppedOut(r)}}},zi=si({name:`LiveRegion`,serviceKey:`liveRegionService`,create:e=>new Ri(e)}),Bi=30,Vi=-10,Hi=class{constructor(e){this.host=e}dispatchWillDragPanel(e){this.host.fireWillDragPanel(e)}dispatchWillDragGroup(e){this.host.fireWillDragGroup(e)}dispatchWillDrop(e){this.host.fireWillDrop(e)}dispatchWillShowOverlay(e){this.host.fireWillShowOverlay(e)}buildGroupDragGhost(e){let t=this.host.options.createGroupDragGhostComponent;if(!t)return;let n=t(e);return n.init({group:e,api:this.host.api}),{element:n.element,offsetX:Bi,offsetY:Vi,dispose:n.dispose?()=>n.dispose?.call(n):void 0}}resolveOverlayModel(e,t){var n;return(n=this.host.options).dropOverlayModel?.call(n,{location:e,group:t})}showPreviewOverlay(e,t){let n=e.model.contentDropTarget;return n.showOverlay(t),We.from(()=>n.clearOverlay())}dispose(){}},Ui=si({name:`AdvancedDnD`,serviceKey:`advancedDnDService`,create:e=>new Hi(e)}),Wi=class{constructor(e){this._host=e}attachToGroup(e){return new Q(e.model.onDidCreateTabGroup(e=>{this._host.fireDidCreateTabGroup(e)}),e.model.onDidDestroyTabGroup(e=>{this._host.fireDidDestroyTabGroup(e)}),e.model.onDidAddPanelToTabGroup(e=>{this._host.fireDidAddPanelToTabGroup(e)}),e.model.onDidRemovePanelFromTabGroup(e=>{this._host.fireDidRemovePanelFromTabGroup(e)}),e.model.onDidTabGroupChange(e=>{this._host.fireDidTabGroupChange(e)}),e.model.onDidTabGroupCollapsedChange(e=>{this._host.fireDidTabGroupCollapsedChange(e)}))}dispose(){}},Gi=[xi,Ci,Ti,Di,Mi,Fi,zi,Ui,si({name:`TabGroupChips`,serviceKey:`tabGroupChipsService`,create:e=>new Wi(e),init:(e,t)=>{let n=new Map;return new Q(e.onDidAddGroup(e=>{n.set(e,t.attachToGroup(e))}),e.onDidRemoveGroup(e=>{var t;(t=n.get(e))==null||t.dispose(),n.delete(e)}),{dispose:()=>{for(let e of n.values())e.dispose();n.clear()}})}})],Ki=class{constructor(){this.cache=new WeakMap,this.currentFrameId=0,this.rafId=null}getPosition(e){let t=this.cache.get(e);if(t?.frameId===this.currentFrameId)return t.rect;this.scheduleFrameUpdate();let n=ft(e);return this.cache.set(e,{rect:n,frameId:this.currentFrameId}),n}invalidate(){this.currentFrameId++}scheduleFrameUpdate(){this.rafId||=requestAnimationFrame(()=>{this.currentFrameId++,this.rafId=null})}},qi=-1;function Ji(){let e=document.createElement(`div`);return e.tabIndex=-1,e}var Yi=class extends Q{constructor(e,t){super(),this.element=e,this.accessor=t,this.map={},this._disposed=!1,this._generation=0,this.positionCache=new Ki,this.addDisposables(We.from(()=>{for(let e of Object.values(this.map))e.disposable.dispose(),e.destroy.dispose(),this.cancelPendingUpdate(e);this._disposed=!0}))}updateAllPositions(){if(!this._disposed){this.positionCache.invalidate();for(let e of Object.values(this.map))e.panel.api.isVisible&&e.resize&&e.resize()}}repositionPanelOverlay(e,t=!1,n){var r;if(this._disposed)return;let i=this.map[e];i&&(i.forceVisible=t,i.clip=n,this.positionCache.invalidate(),(r=i.resize)==null||r.call(i))}cancelPendingUpdate(e){e.pendingUpdate!==void 0&&(cancelAnimationFrame(e.pendingUpdate),e.pendingUpdate=void 0)}detatch(e){if(this.map[e.api.id]){let t=this.map[e.api.id];return t.disposable.dispose(),t.destroy.dispose(),this.cancelPendingUpdate(t),delete this.map[e.api.id],!0}return!1}attach(e){let{panel:t,referenceContainer:n}=e;if(!this.map[t.api.id]){let e=Ji();e.className=`dv-render-overlay`,e.style.visibility=`hidden`,this.map[t.api.id]={panel:t,disposable:We.NONE,destroy:We.NONE,element:e,retainPreviousGeometry:!1,positioned:!1,generation:++this._generation}}let r=this.map[t.api.id];r.referenceContainer!==n&&(r.generation=++this._generation,this.cancelPendingUpdate(r),r.referenceContainer=n,r.retainPreviousGeometry=r.positioned);let i=r.generation,a=r.element,o=t.view.content.element;o.parentElement!==a&&a.appendChild(o),a.parentElement!==this.element&&this.element.appendChild(a);let s=()=>{let e=t.api.id,r=this.map[e];if(r?.generation!==i||r.pendingUpdate!==void 0)return;r.pendingUpdate=qi;let o=requestAnimationFrame(()=>{let r=this.map[e];if(r&&(r.pendingUpdate=void 0),this.isDisposed||r?.generation!==i)return;let o=r.forceVisible??!1,s=r.clip,c=this.positionCache.getPosition(n.element),l=this.positionCache.getPosition(this.element),u=c.left-l.left,d=c.top-l.top,f=c.width,p=c.height;if(r.retainPreviousGeometry&&(f===0||p===0)){!t.api.isVisible&&!o&&(a.style.visibility=`hidden`,a.style.pointerEvents=`none`);return}if(r.retainPreviousGeometry=!1,r.positioned=!0,a.style.left=`${u}px`,a.style.top=`${d}px`,a.style.width=`${f}px`,a.style.height=`${p}px`,t.api.isVisible||o?(a.style.visibility=``,a.style.pointerEvents=``):(a.style.visibility=`hidden`,a.style.pointerEvents=`none`),o?a.style.zIndex=`1000`:t.api.location.type!==`floating`&&(a.style.zIndex=``),s){let e=this.element.ownerDocument.defaultView,t=e?.scrollX??0,n=e?.scrollY??0,r=s.top+n,i=s.left+t,o=Math.max(0,r-c.top),l=Math.max(0,i-c.left),u=Math.max(0,c.left+f-(s.right+t)),d=Math.max(0,c.top+p-(s.bottom+n));a.style.clipPath=`inset(${o}px ${u}px ${d}px ${l}px)`}else a.style.clipPath=``;it(a,`dv-render-overlay-float`,t.group.api.location.type===`floating`)});r.pendingUpdate===qi&&(r.pendingUpdate=o)},c=()=>{t.api.isVisible?(this.positionCache.invalidate(),s(),this.map[t.api.id]?.retainPreviousGeometry&&(a.style.visibility=``),a.style.pointerEvents=``):(a.style.visibility=`hidden`,a.style.pointerEvents=`none`)},l=new Ge,u=()=>{t.api.location.type===`floating`?queueMicrotask(()=>{let e=this.accessor.getFloatingWindowForGroup(t.api.group);if(!e)return;let n=e.overlay.element,r=()=>{let e=Number(n.getAttribute(`aria-level`));a.style.zIndex=`calc(var(--dv-overlay-z-index, 999) + ${e*2+1})`},i=new MutationObserver(()=>{r()});l.value=We.from(()=>i.disconnect()),i.observe(n,{attributeFilter:[`aria-level`],attributes:!0}),r()}):a.style.zIndex=``},d=new Q(l,new hn(a,{onDragEnd:e=>{n.dropTarget.dnd.onDragEnd(e)},onDragEnter:e=>{n.dropTarget.dnd.onDragEnter(e)},onDragLeave:e=>{n.dropTarget.dnd.onDragLeave(e)},onDrop:e=>{n.dropTarget.dnd.onDrop(e)},onDragOver:e=>{n.dropTarget.dnd.onDragOver(e)}}),t.api.onDidVisibilityChange(()=>{c()}),t.api.onDidDimensionsChange(()=>{t.api.isVisible&&s()}),t.api.onDidLocationChange(()=>{u()}));return this.map[t.api.id].destroy=We.from(()=>{o.parentElement===a&&o.remove(),a.remove()}),u(),queueMicrotask(()=>{this.isDisposed||c()}),this.map[t.api.id].disposable.dispose(),this.map[t.api.id].disposable=d,this.map[t.api.id].resize=s,a}};function Xi(e,t,n,r,i,a,o){try{var s=e[a](o),c=s.value}catch(e){n(e);return}s.done?t(c):Promise.resolve(c).then(r,i)}function Zi(e){return function(){var t=this,n=arguments;return new Promise(function(r,i){var a=e.apply(t,n);function o(e){Xi(a,r,i,o,s,`next`,e)}function s(e){Xi(a,r,i,o,s,`throw`,e)}o(void 0)})}}function Qi(e){let t;try{t=new URL(e,globalThis.location.href)}catch{throw Error(`dockview: invalid popout URL: ${e}`)}if(t.protocol!==`http:`&&t.protocol!==`https:`||t.origin!==globalThis.location.origin)throw Error(`dockview: popout URL must be same-origin http(s); got: ${e}`)}var $i=class extends Q{get window(){return this._window?.value??null}constructor(e,t,n){super(),this.target=e,this.className=t,this.options=n,this._onWillClose=new $,this.onWillClose=this._onWillClose.event,this._onDidClose=new $,this.onDidClose=this._onDidClose.event,this._window=null,this.addDisposables(this._onWillClose,this._onDidClose,{dispose:()=>{this.close()}})}dimensions(){if(!this._window)return null;let e=this._window.value.screenX;return{top:this._window.value.screenY,left:e,width:this._window.value.innerWidth,height:this._window.value.innerHeight}}close(){if(this._window){var e,t;this._onWillClose.fire(),(e=(t=this.options).onWillClose)==null||e.call(t,{id:this.target,window:this._window.value}),this._window.disposable.dispose(),this._window=null,this._onDidClose.fire()}}open(){var e=this;return Zi(function*(){var t,n;if(e._window)throw Error(`instance of popout window is already open`);let r=`${e.options.url}`;Qi(r);let i=Object.entries({top:e.options.top,left:e.options.left,width:e.options.width,height:e.options.height}).map(([e,t])=>`${e}=${t}`).join(`,`),a=window.open(r,e.target,i);if(!a)return null;let o=new Q;e._window={value:a,disposable:o},o.addDisposables(We.from(()=>{a.close()}),Qe(globalThis.window,`beforeunload`,()=>{e.close()}));let s=e.createPopoutWindowContainer();return e.className&&s.classList.add(e.className),(t=(n=e.options).onDidOpen)==null||t.call(n,{id:e.target,window:a}),new Promise((t,n)=>{a.addEventListener(`unload`,()=>{}),o.addDisposables(e.onWillClose(()=>t(null))),a.addEventListener(`load`,()=>{try{let n=a.document;n.title=document.title,n.body.appendChild(s),dt(n,globalThis.document.styleSheets,{nonce:e.options.nonce}),Qe(a,`beforeunload`,()=>{e.close()}),t(s)}catch(e){n(e)}})})})()}createPopoutWindowContainer(){let e=document.createElement(`div`);return e.classList.add(`dv-popout-window`),e.id=`dv-popout-window`,e.style.position=`absolute`,e.style.width=`100%`,e.style.height=`100%`,e.style.top=`0px`,e.style.left=`0px`,e}},ea=class extends Q{constructor(e){super(),this.accessor=e,this.init()}init(){let e=new Set,t=new Set;this.addDisposables(this.accessor.onDidAddPanel(t=>{if(e.has(t.api.id))throw Error(`dockview: Invalid event sequence. [onDidAddPanel] called for panel ${t.api.id} but panel already exists`);e.add(t.api.id)}),this.accessor.onDidRemovePanel(t=>{if(e.has(t.api.id))e.delete(t.api.id);else throw Error(`dockview: Invalid event sequence. [onDidRemovePanel] called for panel ${t.api.id} but panel does not exists`)}),this.accessor.onDidAddGroup(e=>{if(t.has(e.api.id))throw Error(`dockview: Invalid event sequence. [onDidAddGroup] called for group ${e.api.id} but group already exists`);t.add(e.api.id)}),this.accessor.onDidRemoveGroup(e=>{if(t.has(e.api.id))t.delete(e.api.id);else throw Error(`dockview: Invalid event sequence. [onDidRemoveGroup] called for group ${e.api.id} but group does not exists`)}))}};function ta(e){if(!e.matchMedia)return!1;let t=e.matchMedia(`(pointer: coarse)`).matches,n=e.matchMedia(`(pointer: fine)`).matches;return t&&!n}function na(e){let t=e.window??window,n=e.capture??!1,r=e.escape??!0,i=e.keys??[],a=e.outsidePointerDown??!0,o=e.pointerDownGraceMs??0,s=e.now??Date.now,c=s(),l=new Q,u=t=>{if(e.isInside)return e.isInside(t);let n=t.target;return n instanceof Node&&(e.elements?.call(e)??[]).some(e=>e.contains(n))};if((r||i.length>0)&&l.addDisposables(Qe(t,`keydown`,t=>{(r&&t.key===`Escape`||i.includes(t.key))&&e.onDismiss()},n)),(a||e.onInsidePointerDown)&&l.addDisposables(Qe(t,`pointerdown`,t=>{if(u(t)){var n;(n=e.onInsidePointerDown)==null||n.call(e,t);return}!a||s()-c<o||e.onDismiss()},n)),e.resize&&l.addDisposables(Qe(t,`resize`,()=>{ta(t)||e.onDismiss()})),e.focusOut){let r=t=>e.isFocusInside?e.isFocusInside(t):(e.elements?.call(e)??[]).some(e=>e.contains(t)),i=t=>{let n=t.target;n instanceof Element&&!r(n)&&e.onDismiss()};t.addEventListener(`focusin`,i,n),l.addDisposables({dispose:()=>t.removeEventListener(`focusin`,i,n)})}return l}var ra=class extends Q{constructor(e,t=globalThis.window){super(),this._active=null,this._activeDisposable=new Ge,this._root=e,this._window=t,this._element=t.document.createElement(`div`),this._element.className=`dv-popover-anchor`,this._element.style.position=`relative`,this._root.prepend(this._element),this.addDisposables(We.from(()=>{this.close()}),this._activeDisposable)}updateRoot(e){e.prepend(this._element),this._root=e}openPopover(e,t){this.close();let n=this._window.document.createElement(`div`);n.style.position=`absolute`,n.style.zIndex=t.zIndex??`var(--dv-overlay-z-index)`,n.appendChild(e);let r=this._element.getBoundingClientRect(),i=r.left,a=r.top;n.style.top=`${t.y-a}px`,n.style.left=`${t.x-i}px`,this._element.appendChild(n),this._active=n,this._activeDisposable.value=na({window:this._window,onDismiss:()=>this.close(),elements:()=>this._active?[this._active]:[],keys:[`Enter`],pointerDownGraceMs:200,resize:!0}),this._window.requestAnimationFrame(()=>{Ct(n,this._root)})}close(){this._active&&=(this._active.remove(),this._activeDisposable.dispose(),null)}},ia=class extends Q{get disabled(){return this._disabled}set disabled(e){this.disabled!==e&&(this._disabled=e,e&&this._clearNow())}_cancelPendingClear(){this._pendingClear!==void 0&&(clearTimeout(this._pendingClear),this._pendingClear=void 0)}_clearNow(){this._cancelPendingClear(),this._model&&this._model.root.remove(),this._model=void 0}get model(){if(!this.disabled)return{clear:()=>{this._clearNow()},scheduleClear:()=>{this._pendingClear!==void 0||!this._model||(this._pendingClear=setTimeout(()=>{this._pendingClear=void 0,this._clearNow()},0))},exists:()=>!!this._model,getElements:(e,t)=>{this._cancelPendingClear();let n=this._outline!==t;if(this._outline=t,this._model)return this._model.changed=n,this._model;let r=this.createContainer(),i=this.createAnchor();if(this._model={root:r,overlay:i,changed:n},r.appendChild(i),this.element.appendChild(r),e?.target instanceof HTMLElement){let t=e.target.getBoundingClientRect(),n=this.element.getBoundingClientRect();i.style.left=`${t.left-n.left}px`,i.style.top=`${t.top-n.top}px`}return this._model}}}constructor(e,t){super(),this.element=e,this._disabled=!1,this._disabled=t.disabled,this.addDisposables(We.from(()=>{var e;(e=this.model)==null||e.clear()}))}createContainer(){let e=document.createElement(`div`);return e.className=`dv-drop-target-container`,e}createAnchor(){let e=document.createElement(`div`);return e.className=`dv-drop-target-anchor`,e.style.visibility=`hidden`,e}},aa=class{get _effectiveBaseCollapsed(){return this._measuredTabSize??this._baseCollapsedSize}get minimumSize(){return this._isCollapsed?this.collapsedSize:this._baseMinimumSize===void 0?this._effectiveBaseCollapsed+50+this._gapAdd:this._baseMinimumSize+this._gapAdd}get maximumSize(){return this._isCollapsed?this.collapsedSize:this._expandedMaximumSize}get element(){return this._group.element}get isCollapsed(){return this._isCollapsed}get lastExpandedSize(){return this._lastExpandedSize}get collapsedSize(){return this._effectiveBaseCollapsed+this._gapAdd}get configuredMinimumSize(){return this._baseMinimumSize}get configuredMaximumSize(){return this._expandedMaximumSize}get configuredCollapsedSize(){return this._baseCollapsedSize}constructor(e,t,n,r=0){this._onDidChange=new $,this.onDidChange=this._onDidChange.event,this.snap=!1,this.priority=`low`,this._isCollapsed=!1,this._tabSizeDisposables=new Q,this._group=t,this._orientation=n,t.element.classList.add(`dv-edge-group`),t.element.dataset.testid=`dv-edge-group-${e.id}`,this._baseCollapsedSize=e.collapsedSize??35,this._baseMinimumSize=e.minimumSize,this._gapAdd=r,this._expandedMaximumSize=e.maximumSize??1/0,this._lastExpandedSize=e.initialSize??200,e.collapsed&&(this._isCollapsed=!0,t.element.classList.add(`dv-edge-collapsed`)),this._observeTabStrip()}_observeTabStrip(){let e=this._group.element.querySelector(`.dv-tabs-and-actions-container`);e&&this._tabSizeDisposables.addDisposables(tt(e,()=>{this._applyMeasuredTabSize(this._orientation===`vertical`?e.offsetHeight:e.offsetWidth)}))}_applyMeasuredTabSize(e){e<=0||e===this._measuredTabSize||(this._measuredTabSize=e,this._isCollapsed&&this._onDidChange.fire({size:this.collapsedSize}))}layout(e,t){this._isCollapsed||(this._lastExpandedSize=e),this._orientation===`horizontal`?this._group.layout(e,t):this._group.layout(t,e)}setCollapsed(e){this._isCollapsed!==e&&(this._isCollapsed=e,this._group.element.classList.toggle(`dv-edge-collapsed`,e))}setVisible(e){}restoreExpandedSize(e){this._lastExpandedSize=e}updateSizing(e,t,n){this._baseCollapsedSize=e,this._baseMinimumSize=t,this._gapAdd=n}dispose(){this._tabSizeDisposables.dispose(),this._onDidChange.dispose()}},oa=class{get element(){return this._dockviewElement}constructor(e,t){this._dockviewElement=e,this._layoutDockview=t,this.priority=`high`,this.minimumSize=100,this.maximumSize=1/0,this._onDidChange=new $,this.onDidChange=this._onDidChange.event}layout(e,t){this._layoutDockview(t,e)}setVisible(e){}dispose(){this._onDidChange.dispose()}},sa=class{get element(){return this._element}constructor(e,t=0){this._onDidChange=new $,this.onDidChange=this._onDidChange.event,this.minimumSize=100,this.maximumSize=1/0,this.priority=`high`,this._element=document.createElement(`div`),this._element.className=`dv-shell-middle-column`,this._element.style.height=`100%`,this._element.style.width=`100%`,this._splitview=new Rt(this._element,{orientation:`VERTICAL`,proportionalLayout:!1,margin:t}),this._centerIndex=0,this._splitview.addView(e,{type:`distribute`},0)}addTopView(e,t){this._splitview.addView(e,t,0),this._topIndex=0,this._centerIndex+=1,this._bottomIndex!==void 0&&(this._bottomIndex+=1)}addBottomView(e,t){let n=this._splitview.length;this._splitview.addView(e,t,n),this._bottomIndex=n}removeView(e){let t=e===`top`?this._topIndex:this._bottomIndex;t!==void 0&&(this._splitview.removeView(t),e===`top`?(this._topIndex=void 0,--this._centerIndex,this._bottomIndex!==void 0&&--this._bottomIndex):this._bottomIndex=void 0)}layout(e,t){this._splitview.layout(t,e)}setVisible(e){}setViewVisible(e,t){let n=e===`top`?this._topIndex:this._bottomIndex;n!==void 0&&this._splitview.setViewVisible(n,t)}isViewVisible(e){let t=e===`top`?this._topIndex:this._bottomIndex;return t!==void 0&&this._splitview.isViewVisible(t)}getViewSize(e){let t=e===`top`?this._topIndex:this._bottomIndex;return t===void 0?0:this._splitview.getViewSize(t)}getViewCachedVisibleSize(e){let t=e===`top`?this._topIndex:this._bottomIndex;if(t!==void 0)return this._splitview.getViewCachedVisibleSize(t)}resizeView(e,t){let n=e===`top`?this._topIndex:this._bottomIndex;n!==void 0&&this._splitview.resizeView(n,t)}updateMargin(e){this._splitview.margin=e}dispose(){this._onDidChange.dispose(),this._splitview.dispose()}},ca=class{constructor(e,t,n,r=0,i=35){this._disposables=new Q,this._viewConfigs=new Map,this._currentWidth=0,this._currentHeight=0,this._gap=r,this._defaultCollapsedSize=i,this._shellElement=document.createElement(`div`),this._shellElement.className=`dv-shell`,this._shellElement.style.height=`100%`,this._shellElement.style.width=`100%`,this._shellElement.style.position=`relative`,e.appendChild(this._shellElement);let a=new oa(t,n);this._middleColumn=new sa(a,r),this._outerSplitview=new Rt(this._shellElement,{orientation:`HORIZONTAL`,proportionalLayout:!1,margin:r}),this._middleIndex=0,this._outerSplitview.addView(this._middleColumn,{type:`distribute`},0),this._disposables.addDisposables(tt(this._shellElement,e=>{if(!this._shellElement.offsetParent||!pt(this._shellElement))return;let t=Math.round(e.contentRect.width),n=Math.round(e.contentRect.height);(t!==this._currentWidth||n!==this._currentHeight)&&(this._currentWidth=t,this._currentHeight=n,this.layout(t,n))}),this._outerSplitview,this._middleColumn,a)}get element(){return this._shellElement}addEdgeView(e,t,n){if(this.hasEdgeGroup(e))throw Error(`dockview: edge group already registered at position '${e}'`);this._viewConfigs.set(e,t);let r=1+ +!!this._viewConfigs.has(`left`)+ +!!this._viewConfigs.has(`right`),i=1+ +!!this._viewConfigs.has(`top`)+ +!!this._viewConfigs.has(`bottom`),a=r>1?this._gap*(r-1)/r:0,o=i>1?this._gap*(i-1)/i:0,s=e===`left`||e===`right`,c=s?a:o,l=s?`horizontal`:`vertical`,u=new aa(ln({collapsedSize:this._defaultCollapsedSize},t),n,l,c),d=u.isCollapsed?u.collapsedSize:u.lastExpandedSize;switch(e){case`left`:this._outerSplitview.addView(u,d,0),this._leftIndex=0,this._middleIndex+=1,this._rightIndex!==void 0&&(this._rightIndex+=1),this._leftView=u;break;case`right`:{let e=this._outerSplitview.length;this._outerSplitview.addView(u,d,e),this._rightIndex=e,this._rightView=u}break;case`top`:this._middleColumn.addTopView(u,d),this._topView=u;break;case`bottom`:this._middleColumn.addBottomView(u,d),this._bottomView=u}return this._disposables.addDisposables(u),this.updateTheme(this._gap,this._defaultCollapsedSize),u}layout(e,t){this._outerSplitview.layout(e,t)}updateTheme(e,t){this._gap=e,this._defaultCollapsedSize=t;let n=1+ +!!this._viewConfigs.has(`left`)+ +!!this._viewConfigs.has(`right`),r=1+ +!!this._viewConfigs.has(`top`)+ +!!this._viewConfigs.has(`bottom`),i=n>1?e*(n-1)/n:0,a=r>1?e*(r-1)/r:0;this._outerSplitview.margin=e,this._middleColumn.updateMargin(e);let o=(e,n,r)=>{let i=n.collapsedSize??t;e.updateSizing(i,n.minimumSize,r)},s=this._viewConfigs.get(`top`);this._topView&&s&&o(this._topView,s,a);let c=this._viewConfigs.get(`bottom`);this._bottomView&&c&&o(this._bottomView,c,a);let l=this._viewConfigs.get(`left`);this._leftView&&l&&o(this._leftView,l,i);let u=this._viewConfigs.get(`right`);this._rightView&&u&&o(this._rightView,u,i),this._leftView?.isCollapsed&&this._leftIndex!==void 0&&this._outerSplitview.resizeView(this._leftIndex,this._leftView.collapsedSize),this._rightView?.isCollapsed&&this._rightIndex!==void 0&&this._outerSplitview.resizeView(this._rightIndex,this._rightView.collapsedSize),this._topView?.isCollapsed&&this._middleColumn.resizeView(`top`,this._topView.collapsedSize),this._bottomView?.isCollapsed&&this._middleColumn.resizeView(`bottom`,this._bottomView.collapsedSize),this._currentWidth>0&&this._currentHeight>0&&this.layout(this._currentWidth,this._currentHeight)}removeEdgeView(e){let t=this._getView(e);if(t){switch(e){case`left`:this._outerSplitview.removeView(this._leftIndex),this._leftIndex=void 0,this._leftView=void 0,--this._middleIndex,this._rightIndex!==void 0&&--this._rightIndex;break;case`right`:this._outerSplitview.removeView(this._rightIndex),this._rightIndex=void 0,this._rightView=void 0;break;case`top`:this._middleColumn.removeView(`top`),this._topView=void 0;break;case`bottom`:this._middleColumn.removeView(`bottom`),this._bottomView=void 0}this._disposables.removeDisposable(t),t.dispose(),this._viewConfigs.delete(e),this.updateTheme(this._gap,this._defaultCollapsedSize)}}hasEdgeGroup(e){switch(e){case`top`:return this._topView!==void 0;case`bottom`:return this._bottomView!==void 0;case`left`:return this._leftView!==void 0;case`right`:return this._rightView!==void 0}}setEdgeGroupVisible(e,t){switch(e){case`left`:this._leftIndex!==void 0&&this._outerSplitview.setViewVisible(this._leftIndex,t);break;case`right`:this._rightIndex!==void 0&&this._outerSplitview.setViewVisible(this._rightIndex,t);break;case`top`:case`bottom`:this._middleColumn.setViewVisible(e,t)}}isEdgeGroupVisible(e){switch(e){case`left`:return this._leftIndex!==void 0&&this._outerSplitview.isViewVisible(this._leftIndex);case`right`:return this._rightIndex!==void 0&&this._outerSplitview.isViewVisible(this._rightIndex);case`top`:case`bottom`:return this._middleColumn.isViewVisible(e)}}setEdgeGroupCollapsed(e,t){let n=this._getView(e);if(!n)return;n.setCollapsed(t);let r=t?n.collapsedSize:n.lastExpandedSize;switch(e){case`left`:this._leftIndex!==void 0&&this._outerSplitview.resizeView(this._leftIndex,r);break;case`right`:this._rightIndex!==void 0&&this._outerSplitview.resizeView(this._rightIndex,r);break;case`top`:case`bottom`:this._middleColumn.resizeView(e,r)}}isEdgeGroupCollapsed(e){return this._getView(e)?.isCollapsed??!1}getEdgeGroupExpandedSize(e){return this._getView(e)?.lastExpandedSize??0}_getView(e){switch(e){case`top`:return this._topView;case`bottom`:return this._bottomView;case`left`:return this._leftView;case`right`:return this._rightView}}toJSON(){let e={},t=e=>({minimumSize:e.configuredMinimumSize,maximumSize:Number.isFinite(e.configuredMaximumSize)?e.configuredMaximumSize:void 0,collapsedSize:e.configuredCollapsedSize}),n=(e,t,n,r)=>e.isCollapsed?e.lastExpandedSize:t?n:r??e.lastExpandedSize;if(this._leftView&&this._leftIndex!==void 0){let r=this._outerSplitview.isViewVisible(this._leftIndex);e.left=ln({size:n(this._leftView,r,this._outerSplitview.getViewSize(this._leftIndex),this._outerSplitview.getViewCachedVisibleSize(this._leftIndex)),visible:r,collapsed:this._leftView.isCollapsed||void 0},t(this._leftView))}if(this._rightView&&this._rightIndex!==void 0){let r=this._outerSplitview.isViewVisible(this._rightIndex);e.right=ln({size:n(this._rightView,r,this._outerSplitview.getViewSize(this._rightIndex),this._outerSplitview.getViewCachedVisibleSize(this._rightIndex)),visible:r,collapsed:this._rightView.isCollapsed||void 0},t(this._rightView))}if(this._topView){let r=this._middleColumn.isViewVisible(`top`);e.top=ln({size:n(this._topView,r,this._middleColumn.getViewSize(`top`),this._middleColumn.getViewCachedVisibleSize(`top`)),visible:r,collapsed:this._topView.isCollapsed||void 0},t(this._topView))}if(this._bottomView){let r=this._middleColumn.isViewVisible(`bottom`);e.bottom=ln({size:n(this._bottomView,r,this._middleColumn.getViewSize(`bottom`),this._middleColumn.getViewCachedVisibleSize(`bottom`)),visible:r,collapsed:this._bottomView.isCollapsed||void 0},t(this._bottomView))}return e}fromJSON(e){if(e.left&&this._leftIndex!==void 0){var t,n;(t=this._leftView)==null||t.restoreExpandedSize(e.left.size),(n=this._leftView)==null||n.setCollapsed(e.left.collapsed??!1),this._outerSplitview.resizeView(this._leftIndex,e.left.collapsed?this._leftView?.collapsedSize??e.left.size:e.left.size),e.left.visible||this._outerSplitview.setViewVisible(this._leftIndex,!1)}if(e.right&&this._rightIndex!==void 0){var r,i;(r=this._rightView)==null||r.restoreExpandedSize(e.right.size),(i=this._rightView)==null||i.setCollapsed(e.right.collapsed??!1),this._outerSplitview.resizeView(this._rightIndex,e.right.collapsed?this._rightView?.collapsedSize??e.right.size:e.right.size),e.right.visible||this._outerSplitview.setViewVisible(this._rightIndex,!1)}if(e.top){var a,o;(a=this._topView)==null||a.restoreExpandedSize(e.top.size),(o=this._topView)==null||o.setCollapsed(e.top.collapsed??!1),this._middleColumn.resizeView(`top`,e.top.collapsed?this._topView?.collapsedSize??e.top.size:e.top.size),e.top.visible||this._middleColumn.setViewVisible(`top`,!1)}if(e.bottom){var s,c;(s=this._bottomView)==null||s.restoreExpandedSize(e.bottom.size),(c=this._bottomView)==null||c.setCollapsed(e.bottom.collapsed??!1),this._middleColumn.resizeView(`bottom`,e.bottom.collapsed?this._bottomView?.collapsedSize??e.bottom.size:e.bottom.size),e.bottom.visible||this._middleColumn.setViewVisible(`bottom`,!1)}}dispose(){this._disposables.dispose(),this._shellElement.remove()}};function la(e){return new Cr(e.tabGroupColors??Sr,e.tabGroupAccent!==`off`)}function ua(e){let t=e.from.activePanel;[...e.from.panels].map(t=>{let n=e.from.model.removePanel(t);return e.from.model.renderContainer.detatch(t),n}).forEach(n=>{e.to.model.openPanel(n,{skipSetActive:t!==n,skipSetGroupActive:!0})})}var da=()=>({dispose:()=>{}}),fa=da,pa=class extends nn{fireDidCreateTabGroup(e){this._onDidCreateTabGroup.fire(e)}fireDidDestroyTabGroup(e){this._onDidDestroyTabGroup.fire(e)}fireDidAddPanelToTabGroup(e){this._onDidAddPanelToTabGroup.fire(e)}fireDidRemovePanelFromTabGroup(e){this._onDidRemovePanelFromTabGroup.fire(e)}fireDidTabGroupChange(e){this._onDidTabGroupChange.fire(e)}fireDidTabGroupCollapsedChange(e){this._onDidTabGroupCollapsedChange.fire(e)}get orientation(){return this.gridview.orientation}get totalPanels(){return this.panels.length}get panels(){return this.groups.flatMap(e=>e.panels)}get options(){return this._options}get tabGroupColorPalette(){return this._tabGroupColorPalette}get activePanel(){let e=this.activeGroup;if(e)return e.activePanel}get renderer(){return this.options.defaultRenderer??`onlyWhenVisible`}get defaultHeaderPosition(){return this.options.defaultHeaderPosition??`top`}get api(){return this._api}get floatingGroups(){var e;return((e=this._moduleRegistry)==null||(e=e.services.floatingGroupService)==null?void 0:e.floatingGroups)??[]}getFloatingWindowForGroup(e){return this._floatingGroupService?.findByGroup(e)}_gatherFloatingGroupBoxes(e){return this.getFloatingGroupSnapshots(e).map(e=>e.box)}getFloatingContainer(){return this._floatingOverlayHost??this.gridview.element}getFloatingGroupSnapshots(e){let t=this.getFloatingContainer().getBoundingClientRect();return this.floatingGroups.filter(t=>t.group!==e).map(e=>{let n=e.overlay.element.getBoundingClientRect();return{group:e.group,box:{left:n.left-t.left,top:n.top-t.top,width:n.width,height:n.height}}})}mergeFloatInto(e,t,n){e===t||!this.getPanel(t.id)||this.moveGroupOrPanel({from:{groupId:e.id},to:{group:t,position:n}})}getGridSplitterRects(){let e=this.getFloatingContainer().getBoundingClientRect(),t=[];return this.gridview.element.querySelectorAll(`.dv-sash`).forEach(n=>{let r=n.getBoundingClientRect();t.push({left:r.left-e.left,top:r.top-e.top,width:r.width,height:r.height})}),t}get _smartGuidesService(){return this._moduleRegistry.services.smartGuidesService}get smartGuidesEnabled(){return this._smartGuidesService?.enabled??!1}setSmartGuidesEnabled(e){var t;(t=fi(this._smartGuidesService,`SmartGuides`,`api.setSmartGuidesEnabled`))==null||t.setEnabled(e)}updateSmartGuidesOptions(e){var t;(t=fi(this._smartGuidesService,`SmartGuides`,`api.updateSmartGuidesOptions`))==null||t.updateOptions(e)}get onDidSnapFloat(){return this._smartGuidesService?.onDidSnapFloat??da}get onDidSnapTogether(){return this._smartGuidesService?.onDidSnapTogether??da}_buildFloatingDragTransform(e,t){let n=this.options.transformFloatingGroupDrag,r=!t;if(!(!n&&!(r&&this._smartGuidesService)))return t=>{let i=n?.({group:e,proposed:t.proposed,container:t.container,others:t.others,modifiers:t.modifiers}),a=i?ln(ln({},t.proposed),i):t.proposed;return(r?this._smartGuidesService?.transformFloatingGroupDrag({group:e,proposed:a,container:t.container,others:t.others,modifiers:t.modifiers}):void 0)??i??void 0}}get _floatingGroupService(){return this._moduleRegistry.services.floatingGroupService}get _popoutWindowService(){return this._moduleRegistry.services.popoutWindowService}get _watermarkService(){return this._moduleRegistry.services.watermarkService}get _edgeGroupService(){return this._moduleRegistry.services.edgeGroupService}get _rootDropTargetService(){return this._moduleRegistry.services.rootDropTargetService}get _advancedDnDService(){return this._moduleRegistry.services.advancedDnDService}get _dndCompassService(){return this._moduleRegistry.services.dndCompassService}canDropOnGroup(e,t,n){return e.model.canDisplayContentOverlay(n,t)}getDropOverlayElement(e){let t=e.element.querySelector(`.dv-content-container`);if(t)return this.options.theme?.dndPanelOverlay===`group`?t.parentElement??t:t}getTabsListElement(e){return e.model.header.hidden?void 0:e.model.tabsListElement}relayoutGroup(e){e.relayout()}setForcedOverflow(e,t){e.model.header.setForcedOverflow(t)}getLayoutElement(){return this.gridview.element}getDropPositionResolver(){if(this.options.dropPositionResolver)return this.options.dropPositionResolver;let e=this._dndCompassService?.resolver,t=this._moduleRegistry.services.autoEdgeGroupService;return e&&t?{resolve:n=>t.resolveEdge(n)??e.resolve(n)}:e??t?.resolver}dockToLayoutEdge(e,t){let n=new Hr({nativeEvent:e,position:t,panel:void 0,api:this._api,group:void 0,getData:Ue,kind:`edge`});if(this._onWillDrop.fire(n),n.defaultPrevented)return;let r=Ue();r?this.moveGroupOrPanel({from:{groupId:r.groupId,panelId:r.panelId??void 0},to:{group:this.orthogonalize(t),position:`center`}}):this._onDidDrop.fire(new Vr({nativeEvent:e,position:t,panel:void 0,api:this._api,group:void 0,getData:Ue}))}get headerActionsService(){return this._moduleRegistry.services.headerActionsService}get _layoutHistoryService(){return this._moduleRegistry.services.layoutHistoryService}undo(){var e;(e=fi(this._layoutHistoryService,`LayoutHistory`,`api.undo`))==null||e.undo()}redo(){var e;(e=fi(this._layoutHistoryService,`LayoutHistory`,`api.redo`))==null||e.redo()}get canUndo(){return this._layoutHistoryService?.canUndo??!1}get canRedo(){return this._layoutHistoryService?.canRedo??!1}clearHistory(){var e;(e=this._layoutHistoryService)==null||e.clear()}get onDidChangeHistory(){return this._layoutHistoryService?.onDidChangeHistory??fa}get hasEdgeDragReveal(){return!!this._moduleRegistry.services.autoEdgeGroupService}isGridEmpty(){return this.gridview.length===0}rootDropTargetOverrideTarget(){return this.rootDropTargetContainer?.model}dispatchUnhandledDragOver(e,t){let n=new _r(e,`edge`,t,Ue);return this._onUnhandledDragOver.fire(n),n.isAccepted}fireWillDragPanel(e){this._onWillDragPanel.fire(e)}fireWillDragGroup(e){this._onWillDragGroup.fire(e)}fireWillDrop(e){this._onWillDrop.fire(e)}fireWillShowOverlay(e){this._onWillShowOverlay.fire(e)}buildGroupDragGhost(e){return this._advancedDnDService?.buildGroupDragGhost(e)}resolveDropOverlayModel(e,t){return this._advancedDnDService?.resolveOverlayModel(e,t)}get rootElement(){return this._shellManager?.element??this.element}ownsElement(e){if(this.rootElement.contains(e))return!0;let t=this.rootElement.ownerDocument,n=e.ownerDocument;return!n||n===t?!1:this.getPopoutWindows().some(e=>e.document===n)}adjacentGroup(e,t){if(e.api.location.type!==`grid`)return;let n=Gt(e.element);return(t?this.gridview.previous(n):this.gridview.next(n))?.view}adjacentGroupInDirection(e,t){if(e.api.location.type!==`grid`)return;let n=e.element.getBoundingClientRect(),r=n.left+n.width/2,i=n.top+n.height/2,a,o=1/0;for(let n of this.groups){if(n===e||n.api.location.type!==`grid`)continue;let s=n.element.getBoundingClientRect(),c=s.left+s.width/2-r,l=s.top+s.height/2-i,u;switch(t){case`left`:u=c<0&&Math.abs(c)>=Math.abs(l);break;case`right`:u=c>0&&Math.abs(c)>=Math.abs(l);break;case`up`:u=l<0&&Math.abs(l)>=Math.abs(c);break;default:u=l>0&&Math.abs(l)>=Math.abs(c)}if(!u)continue;let d=c*c+l*l;d<o&&(o=d,a=n)}return a}showDropPreview(e,t){return this._advancedDnDService?.showPreviewOverlay(e,t)??We.NONE}announce(e){var t;(t=this._moduleRegistry.services.liveRegionService)==null||t.announce(e)}dockPanel(e,t,n){this.moveGroupOrPanel({from:{groupId:e.group.id,panelId:e.id},to:{group:t,position:n}})}floatPanel(e){this.addFloatingGroup(e)}get contextMenuService(){return this._moduleRegistry.services.contextMenuService}get pinnedTabsService(){return this._moduleRegistry.services.pinnedTabsService}get advancedOverflowService(){return this._moduleRegistry.services.advancedOverflowService}setPanelPinned(e,t){e.isPinned!==t&&this.options.pinnedTabs?.enabled&&this.pinnedTabsService&&(e.setPinned(t),this._onDidPanelPinnedChange.fire({panel:e,isPinned:t}))}get mountElement(){return this.gridview.element}hasVisibleGridGroup(){return this.groups.some(e=>e.api.location.type===`grid`&&e.api.isVisible)}fireLayoutChange(){this._bufferOnDidLayoutChange.fire()}get popoutRestorationPromise(){return this._popoutWindowService?.restorationPromise??Promise.resolve()}constructor(e,t){super(e,{proportionalLayout:!0,orientation:`HORIZONTAL`,styles:t.hideBorders?{separatorBorder:`transparent`}:void 0,disableAutoResizing:t.disableAutoResizing,locked:t.locked,margin:t.theme?.gap??0,className:t.className}),this.nextGroupId=Mt(),this._deserializer=new ni(this),this._moduleRegistry=new pi,this._onWillDragPanel=new $,this.onWillDragPanel=this._onWillDragPanel.event,this._onWillDragGroup=new $,this.onWillDragGroup=this._onWillDragGroup.event,this._onDidDrop=new $,this.onDidDrop=this._onDidDrop.event,this._onWillDrop=new $,this.onWillDrop=this._onWillDrop.event,this._mutationDepth=0,this._pendingLocationChanges=new Map,this._origin=`user`,this._originDepth=0,this._onWillMutateLayout=new $,this.onWillMutateLayout=this._onWillMutateLayout.event,this._onDidMutateLayout=new $,this.onDidMutateLayout=this._onDidMutateLayout.event,this._onWillShowOverlay=new $,this.onWillShowOverlay=this._onWillShowOverlay.event,this._onUnhandledDragOver=new $,this.onUnhandledDragOver=this._onUnhandledDragOver.event,this._onDidRemovePanel=new $,this.onDidRemovePanel=this._onDidRemovePanel.event,this._onDidAddPanel=new $,this.onDidAddPanel=this._onDidAddPanel.event,this._onDidPopoutGroupSizeChange=new $,this.onDidPopoutGroupSizeChange=this._onDidPopoutGroupSizeChange.event,this._onDidPopoutGroupPositionChange=new $,this.onDidPopoutGroupPositionChange=this._onDidPopoutGroupPositionChange.event,this._onDidAddPopoutGroup=new $,this.onDidAddPopoutGroup=this._onDidAddPopoutGroup.event,this._onDidRemovePopoutGroup=new $,this.onDidRemovePopoutGroup=this._onDidRemovePopoutGroup.event,this._onDidChangePopouts=new $,this.onDidChangePopouts=this._onDidChangePopouts.event,this._onDidOpenPopoutWindowFail=new $,this.onDidOpenPopoutWindowFail=this._onDidOpenPopoutWindowFail.event,this._onDidStartFloatingGroupDrag=new $,this.onDidStartFloatingGroupDrag=this._onDidStartFloatingGroupDrag.event,this._onDidEndFloatingGroupDrag=new $,this.onDidEndFloatingGroupDrag=this._onDidEndFloatingGroupDrag.event,this._onDidLayoutFromJSON=new $,this.onDidLayoutFromJSON=this._onDidLayoutFromJSON.event,this._onDidActivePanelChange=new $({replay:!0}),this.onDidActivePanelChange=this._onDidActivePanelChange.event,this._onDidPanelPinnedChange=new $,this.onDidPanelPinnedChange=this._onDidPanelPinnedChange.event,this._onDidMovePanel=new $,this.onDidMovePanel=this._onDidMovePanel.event,this._onDidCreateTabGroup=new $,this.onDidCreateTabGroup=this._onDidCreateTabGroup.event,this._onDidDestroyTabGroup=new $,this.onDidDestroyTabGroup=this._onDidDestroyTabGroup.event,this._onDidAddPanelToTabGroup=new $,this.onDidAddPanelToTabGroup=this._onDidAddPanelToTabGroup.event,this._onDidRemovePanelFromTabGroup=new $,this.onDidRemovePanelFromTabGroup=this._onDidRemovePanelFromTabGroup.event,this._onDidTabGroupChange=new $,this.onDidTabGroupChange=this._onDidTabGroupChange.event,this._onDidTabGroupCollapsedChange=new $,this.onDidTabGroupCollapsedChange=this._onDidTabGroupCollapsedChange.event,this._onDidMaximizedGroupChange=new $,this.onDidMaximizedGroupChange=this._onDidMaximizedGroupChange.event,this._inShellLayout=!1,this._onDidRemoveGroup=new $,this.onDidRemoveGroup=this._onDidRemoveGroup.event,this._onDidEdgeGroupAutoHideChange=new $,this.onDidEdgeGroupAutoHideChange=this._onDidEdgeGroupAutoHideChange.event,this._onDidAddGroup=new $,this.onDidAddGroup=this._onDidAddGroup.event,this._onDidOptionsChange=new $,this.onDidOptionsChange=this._onDidOptionsChange.event,this._onDidActiveGroupChange=new $,this.onDidActiveGroupChange=this._onDidActiveGroupChange.event,this._peekingGroups=new Set,this._moving=!1,this._options=t,this._tabGroupColorPalette=la(t);let n=t.modules??[...Gi,...hi()];for(let e of n)this._moduleRegistry.register(e);this._moduleRegistry.initialize(this),this.reportMissingOptionModules(t);let r=this._popoutWindowService;r&&this.addDisposables(r.onDidRemove(e=>{this._onDidRemovePopoutGroup.fire({id:e.popoutGroup.id,group:e.popoutGroup,window:e.getWindow()})})),this.popupService=new ra(this.element),this._api=new mn(this),this.disableResizing=!0,this.element.remove(),this._shellManager=new ca(e,this.element,(e,t)=>this._layoutFromShell(e,t),t.theme?.gap??0,t.theme?.edgeGroupCollapsedSize),this.popupService.updateRoot(this._shellManager.element),this._shellThemeClassnames=new vt(this._shellManager.element),this.rootDropTargetContainer=new ia(this._shellManager.element,{disabled:!0}),this.floatingDropTargetContainer=new ia(this._shellManager.element,{disabled:!1}),this.overlayRenderContainer=new Yi(this._shellManager.element,this),this._floatingOverlayHost=document.createElement(`div`),this._floatingOverlayHost.className=`dv-floating-overlay-host`,this._shellManager.element.appendChild(this._floatingOverlayHost),it(this.gridview.element,`dv-dockview`,!0),it(this.element,`dv-debug`,!!t.debug),this.updateTheme(),t.debug&&this.addDisposables(new ea(this)),this.addDisposables(We.from(()=>this._pendingLocationChanges.clear()),this.rootDropTargetContainer,this.floatingDropTargetContainer,Qe(this._shellManager.element,`dragend`,()=>{var e,t;(e=this.rootDropTargetContainer.model)==null||e.clear(),(t=this.floatingDropTargetContainer.model)==null||t.clear()},!0),this.overlayRenderContainer,this._onWillDragPanel,this._onWillDragGroup,this._onWillShowOverlay,this._onDidActivePanelChange,this._onDidPanelPinnedChange,this._onDidAddPanel,this._onDidRemovePanel,this._onDidLayoutFromJSON,this._onDidDrop,this._onWillDrop,this._onWillMutateLayout,this._onDidMutateLayout,this._onDidMovePanel,this._onDidMovePanel.event(()=>{this.debouncedUpdateAllPositions()}),this._onDidAddGroup,this._onDidRemoveGroup,this._onDidEdgeGroupAutoHideChange,this._onDidActiveGroupChange,this._onUnhandledDragOver,this._onDidMaximizedGroupChange,this._onDidPopoutGroupSizeChange,this._onDidPopoutGroupPositionChange,this._onDidAddPopoutGroup,this._onDidRemovePopoutGroup,this._onDidChangePopouts,this._onDidAddPopoutGroup.event(()=>this._onDidChangePopouts.fire()),this._onDidRemovePopoutGroup.event(()=>this._onDidChangePopouts.fire()),this._onDidOpenPopoutWindowFail,this._onDidStartFloatingGroupDrag,this._onDidEndFloatingGroupDrag,this._onDidCreateTabGroup,this._onDidDestroyTabGroup,this._onDidAddPanelToTabGroup,this._onDidRemovePanelFromTabGroup,this._onDidTabGroupChange,this._onDidTabGroupCollapsedChange,Ke.any(this.onDidPopoutGroupSizeChange,this.onDidPopoutGroupPositionChange,this.onDidCreateTabGroup,this.onDidDestroyTabGroup,this.onDidAddPanelToTabGroup,this.onDidRemovePanelFromTabGroup,this.onDidTabGroupChange,this.onDidTabGroupCollapsedChange)(()=>{this.fireLayoutChange()}),this._onDidOptionsChange,this.onDidAdd(e=>{this._moving||this._onDidAddGroup.fire(e)}),this.onDidRemove(e=>{this._moving||this._onDidRemoveGroup.fire(e)}),this.onDidActiveChange(e=>{this._moving||this._onDidActiveGroupChange.fire(e)}),this.onDidMaximizedChange(e=>{this._onDidMaximizedGroupChange.fire({group:e.panel,isMaximized:e.isMaximized})}),Ke.any(this.onDidAddPanel,this.onDidRemovePanel,this.onDidAddGroup,this.onDidRemove,this.onDidRemoveGroup,this.onDidMovePanel,this.onDidActivePanelChange)(()=>{this._bufferOnDidLayoutChange.fire()}),We.from(()=>{var e;this._moduleRegistry.dispose(),(e=this._shellManager)==null||e.dispose()}));let i=this._rootDropTargetService;i&&this.addDisposables(i.onWillShowOverlay(e=>{this.gridview.length>0&&e.position===`center`||this._onWillShowOverlay.fire(new ur(e,{kind:`edge`,panel:void 0,api:this._api,group:void 0,getData:Ue}))}),i.onDrop(e=>this.dockToLayoutEdge(e.nativeEvent,e.position))),this._moduleRegistry.postConstruct(this)}setVisible(e,t){switch(e.api.location.type){case`grid`:super.setVisible(e,t);break;case`floating`:{let n=this.floatingGroups.find(t=>t.group===e);n&&(n.overlay.setVisible(t),e.api._onDidVisibilityChange.fire({isVisible:t}));break}case`popout`:console.warn(`dockview: You cannot hide a group that is in a popout window`)}}getPopupServiceForGroup(e){var t;return((t=this._popoutWindowService)==null||(t=t.findByGroup(e))==null?void 0:t.popupService)??this.popupService}addPopoutGroup(e,t){return this.mutationAsync(`popout`,()=>this._doAddPopoutGroup(e,t))}getPopouts(){return this._popoutWindowService?.entries.map(e=>({id:e.popoutGroup.id,group:e.popoutGroup,window:e.getWindow()}))??[]}getPopoutWindows(){return this.getPopouts().map(e=>e.window)}_doAddPopoutGroup(e,t){var n;let r=fi(this._popoutWindowService,`PopoutWindow`,`api.addPopoutGroup`);if(!r||e instanceof Xr&&e.model.location.type===`edge`)return Promise.resolve(!1);if(e instanceof $r&&e.group.size===1)return this.addPopoutGroup(e.group,t);let i=_t(this.gridview.element),a=this.element;function o(){if(t?.position)return t.position;let n=(e instanceof Xr?e.element:e.group?.element??a).getBoundingClientRect();return{left:window.screenX+n.left,top:window.screenY+n.top,width:n.width,height:n.height}}let s=o(),c=(t==null||(n=t.overridePopoutGroup)==null?void 0:n.id)??this.getNextGroupId(),l=t?.popoutUrl??this.options?.popoutUrl,u=new $i(`${this.id}-${c}`,i??``,{url:l??`/popout.html`,left:s.left,top:s.top,width:s.width,height:s.height,onDidOpen:t?.onDidOpen,onWillClose:t?.onWillClose,nonce:this.options?.nonce}),d=new Q(u,u.onDidClose(()=>{d.dispose()}));return u.open().then(n=>{if(u.isDisposed)return!1;let i=t?.referenceGroup??(e instanceof $r?e.group:e),a=e.api.location.type,o=i.element.parentElement!==null,s;if(t?.overridePopoutGridview?s=t.overridePopoutGroup??i:o?t?.overridePopoutGroup?s=t.overridePopoutGroup:(s=this.createGroup({id:c}),n&&this._onDidAddGroup.fire(s)):s=i,n===null)return this.handleBlockedPopout({group:s,referenceGroup:i,options:t,popoutWindowDisposable:d}),!1;let f=document.createElement(`div`);f.className=`dv-overlay-render-container`;let p=new Yi(f,this);s.model.renderContainer=p;let m=t?.overridePopoutGridview??this.createNestedGridview();t?.overridePopoutGridview||m.addView(s,Lt.Distribute,[0]),m.element.style.width=`100%`,m.element.style.height=`100%`,m.layout(u.window.innerWidth,u.window.innerHeight);let h=!1,g=()=>{h||(h=!0,m.dispose())},_,v=[];if(!t?.overridePopoutGroup&&!t?.overridePopoutGridview&&o){if(e instanceof $r){let t=e.group;this.movingLock(()=>{let t=i.model.removePanel(e);s.model.openPanel(t)}),v=[{panel:e,from:t}]}else switch(this.movingLock(()=>ua({from:i,to:s})),v=s.panels.map(e=>({panel:e,from:i})),a){case`grid`:i.api.setVisible(!1);break;case`floating`:case`popout`:_=this.floatingGroups.find(t=>t.group.api.id===e.api.id)?.overlay.toJSON(),this.removeGroup(i)}}n.classList.add(`dv-dockview`),n.style.overflow=`hidden`,n.appendChild(f),n.appendChild(m.element);let y=document.createElement(`div`),b=new ia(y,{disabled:this.rootDropTargetContainer.disabled});n.appendChild(y),s.model.dropTargetContainer=b;let x=new ra(n,u.window);if(d.addDisposables(x),s.model.location={type:`popout`,getWindow:()=>u.window,popoutUrl:l},t?.overridePopoutGridview){let e=this.groups.filter(e=>m.element.contains(e.element));for(let t of e)t.model.renderContainer=p,t.model.dropTargetContainer=b,t.model.location={type:`popout`,getWindow:()=>u.window,popoutUrl:l}}o&&e.api.location.type===`grid`&&e.api.setVisible(!1),this.doSetGroupAndPanelActive(s);let S=r.observeGridviewSize(u,m,p);S&&d.addDisposables(S);let C=new Ge;d.addDisposables(C);let w=e=>{C.value=new Q(e.api.onDidActiveChange(e=>{if(e.isActive){var t;(t=u.window)==null||t.focus()}}),e.api.onWillFocus(()=>{var e;(e=u.window)==null||e.focus()}))};w(s);let T={},ee=o&&i&&this.getPanel(i.id),E={window:u,popoutGroup:s,gridview:m,overlayRenderContainer:p,dropTargetContainer:b,getWindow:()=>u.window,popoutUrl:l,referenceGroup:ee?i.id:void 0,popupService:x,setAnchorGroup:e=>{E.popoutGroup=e,w(e)},disposable:{dispose:()=>(d.dispose(),T.returnedGroup)}},D=xt(u.window);d.addDisposables(D,St(u.window,()=>{this._onDidPopoutGroupSizeChange.fire({width:u.window.innerWidth,height:u.window.innerHeight,group:E.popoutGroup})}),D.event(()=>{this._onDidPopoutGroupPositionChange.fire({screenX:u.window.screenX,screenY:u.window.screenY,group:E.popoutGroup})}),Qe(u.window,`resize`,()=>{m.layout(u.window.innerWidth,u.window.innerHeight)}),p,We.from(()=>this.disposePopoutWindow({group:s,referenceGroup:i,popoutGridview:m,isGroupAddedToDom:o,floatingBox:_,disposePopoutGridview:g,closeResult:T}))),r.add(E),this._onDidAddPopoutGroup.fire({id:E.popoutGroup.id,group:E.popoutGroup,window:E.getWindow()});for(let{panel:e,from:t}of v)this.fireDidMovePanel(e,t);return!0}).catch(e=>(console.error(`dockview: failed to create popout.`,e),!1))}handleBlockedPopout(e){let{group:t,referenceGroup:n,options:r,popoutWindowDisposable:i}=e;if(console.error(`dockview: failed to create popout. perhaps you need to allow pop-ups for this website`),i.dispose(),this._onDidOpenPopoutWindowFail.fire(),r?.overridePopoutGridview){let e=r.overridePopoutGridview,t=this.groups.filter(t=>e.element.contains(t.element));for(let n of t)this.movingLock(()=>{e.remove(n),this.redockGroupToMainGrid(n)});e.dispose(),n&&!n.api.isVisible&&n.api.setVisible(!0);return}t===n?this.gridview.element.contains(t.element)||(this.movingLock(()=>this.doAddGroup(t,[0])),t.model.location={type:`grid`}):(this.movingLock(()=>ua({from:t,to:n})),t.model.size===0&&this._groups.has(t.id)&&(t.dispose(),this._groups.delete(t.id),this._onDidRemoveGroup.fire(t))),n.api.isVisible||n.api.setVisible(!0)}redockGroupToMainGrid(e){e.model.renderContainer=this.overlayRenderContainer,e.model.dropTargetContainer=this.rootDropTargetContainer,e.model.location={type:`grid`},this.doAddGroup(e,[0])}disposePopoutWindow(e){let{group:t,referenceGroup:n,popoutGridview:r,isGroupAddedToDom:i,floatingBox:a,disposePopoutGridview:o,closeResult:s}=e;if(this.isDisposed){o();return}let c=!!this._popoutWindowService?.entries.find(e=>e.gridview===r),l=this.groups.filter(e=>r.element.contains(e.element)),u=l.includes(t),d=u&&l.length===1,f=[];if(c){for(let e of l)if(e!==t){this.movingLock(()=>{this.doRemoveGroup(e,{skipDispose:!0,skipActive:!0,skipPopoutReturn:!0}),this.redockGroupToMainGrid(e)});for(let t of e.panels)f.push({panel:t,from:e})}}if(u&&i&&this.getPanel(n.id)){let e=[...t.panels];this.movingLock(()=>ua({from:t,to:n}));for(let n of e)f.push({panel:n,from:t});n.api.isVisible||n.api.setVisible(!0),this.getPanel(t.id)&&this.doRemoveGroup(t,{skipPopoutAssociated:!0})}else if(u&&this.getPanel(t.id)){if(t.model.renderContainer=this.overlayRenderContainer,t.model.dropTargetContainer=this.rootDropTargetContainer,s.returnedGroup=t,!c){o();return}if(a&&d)this.addFloatingGroup(t,{height:a.height,width:a.width,position:a});else{this.doRemoveGroup(t,{skipDispose:!0,skipActive:!0,skipPopoutReturn:!0}),t.model.location={type:`grid`},this.movingLock(()=>{this.doAddGroup(t,[0])});for(let e of t.panels)f.push({panel:e,from:t})}this.doSetGroupAndPanelActive(t)}o();for(let{panel:e,from:t}of f)this.fireDidMovePanel(e,t)}addFloatingGroup(e,t){this.mutation(`float`,()=>this._doAddFloatingGroup(e,t))}_doAddFloatingGroup(e,t){if(!fi(this._floatingGroupService,`FloatingGroup`,`api.addFloatingGroup`)||e instanceof Xr&&e.model.location.type===`edge`)return;let n,r=[];if(e instanceof $r){let t=e.group;n=this.createGroup(),this._onDidAddGroup.fire(n),this.movingLock(()=>this.removePanel(e,{removeEmptyGroup:!0,skipDispose:!0,skipSetActiveGroup:!0})),this.movingLock(()=>n.model.openPanel(e,{skipSetGroupActive:!0})),r=[{panel:e,from:t}]}else{n=e;let i=this._popoutWindowService?.findReferenceGroupId(n),a=i?this.getPanel(i):void 0;typeof t?.skipRemoveGroup==`boolean`&&t.skipRemoveGroup||(a?(this.movingLock(()=>ua({from:e,to:a})),this.doRemoveGroup(e,{skipPopoutReturn:!0,skipPopoutAssociated:!0}),this.doRemoveGroup(a,{skipDispose:!0}),n=a,r=n.panels.map(t=>({panel:t,from:e}))):(this.doRemoveGroup(e,{skipDispose:!0,skipPopoutReturn:!0,skipPopoutAssociated:!1}),r=n.panels.map(e=>({panel:e,from:n}))))}function i(){if(t?.position){let e={};return`left`in t.position?e.left=Math.max(t.position.left,0):`right`in t.position?e.right=Math.max(t.position.right,0):e.left=vi.left,`top`in t.position?e.top=Math.max(t.position.top,0):`bottom`in t.position?e.bottom=Math.max(t.position.bottom,0):e.top=vi.top,e.width=typeof t.width==`number`?Math.max(t.width,0):vi.width,e.height=typeof t.height==`number`?Math.max(t.height,0):vi.height,e}return{left:typeof t?.x==`number`?Math.max(t.x,0):vi.left,top:typeof t?.y==`number`?Math.max(t.y,0):vi.top,width:typeof t?.width==`number`?Math.max(t.width,0):vi.width,height:typeof t?.height==`number`?Math.max(t.height,0):vi.height}}let a=i(),o=this.createNestedGridview();o.addView(n,Lt.Distribute,[0]),this.mountFloatingWindow(o,n,[n],a,{dragHandle:t?.dragHandle,inDragMode:t?.inDragMode,skipActiveGroup:t?.skipActiveGroup,disableSmartGuides:t?.disableSmartGuides});for(let{panel:e,from:t}of r)this.fireDidMovePanel(e,t)}createNestedGridview(e=`HORIZONTAL`){return new Qt(!0,this.options.hideBorders?{separatorBorder:`transparent`}:void 0,e,!1,this.options.theme?.gap??0)}mountFloatingWindow(e,t,n,r,i){let a=fi(this._floatingGroupService,`FloatingGroup`,`api.addFloatingGroup`);if(!a)return;let o=(i?.dragHandle??this.options.floatingGroupDragHandle??`titlebar`)===`titlebar`?new oi(this,t):void 0,s=new ai(ln(ln({container:this._floatingOverlayHost??this.gridview.element,content:e.element,header:o?.element},r),{},{minimumInViewportWidth:this.options.floatingGroupBounds===`boundedWithinViewport`?void 0:this.options.floatingGroupBounds?.minimumWidthWithinViewport??100,minimumInViewportHeight:this.options.floatingGroupBounds===`boundedWithinViewport`?void 0:this.options.floatingGroupBounds?.minimumHeightWithinViewport??100,transformDragPosition:this._buildFloatingDragTransform(t,i?.disableSmartGuides??!1),getSiblingBoxes:()=>this._gatherFloatingGroupBoxes(t)})),c=o?.element??t.element.querySelector(`.dv-void-container`);if(!c)throw Error(`dockview: failed to find drag handle`);s.setupDrag(c,{inDragMode:typeof i?.inDragMode==`boolean`&&i.inDragMode});let l=a.add(t,s,e);l.addDisposables(s.onDidStartMoving(()=>this._onDidStartFloatingGroupDrag.fire(t)),s.onDidChangeEnd(()=>this._onDidEndFloatingGroupDrag.fire(t))),o&&(l.setTitleBar(o),l.addDisposables(o,We.from(()=>l.setTitleBar(void 0)),o.onDragStart(e=>{this._onWillDragGroup.fire({nativeEvent:e,group:l.group})})));for(let e of n)e.model.location={type:`floating`};i?.skipActiveGroup||this.doSetGroupAndPanelActive(t)}orthogonalize(e,t){switch(this.gridview.normalize(),e){case`top`:case`bottom`:this.gridview.orientation===`HORIZONTAL`&&this.gridview.insertOrthogonalSplitviewAtRoot();break;case`left`:case`right`:this.gridview.orientation===`VERTICAL`&&this.gridview.insertOrthogonalSplitviewAtRoot()}switch(e){case`top`:case`left`:case`center`:return this.createGroupAtLocation([0],void 0,t);case`bottom`:case`right`:return this.createGroupAtLocation([this.gridview.length],void 0,t);default:throw Error(`dockview: unsupported position ${e}`)}}updateOptions(e){var t,n;super.updateOptions(e),this.reportMissingOptionModules(e),(t=this._floatingGroupService)==null||t.updateBounds(e),(n=this._rootDropTargetService)==null||n.setOptions(e);let r=this.options.disableDnd,i=this.options.dndStrategy;this._options=ln(ln({},this.options),e);let a=this.options.disableDnd,o=this.options.dndStrategy;if((r!==a||i!==o)&&this.updateDragAndDropState(),`theme`in e&&this.updateTheme(),`createRightHeaderActionComponent`in e||`createLeftHeaderActionComponent`in e||`createPrefixHeaderActionComponent`in e){var s;(s=this.headerActionsService)==null||s.refreshAll()}if(`createWatermarkComponent`in e){var c;(c=this._watermarkService)==null||c.refresh();for(let e of this.groups)e.model.refreshWatermark()}if(`tabGroupColors`in e||`tabGroupAccent`in e){this._tabGroupColorPalette.setEntries(this._options.tabGroupColors??Sr),this._tabGroupColorPalette.enabled=this._options.tabGroupAccent!==`off`;for(let e of this.groups)e.model.refreshTabGroupAccent()}this._onDidOptionsChange.fire(),this._layoutFromShell(this.gridview.width,this.gridview.height)}reportMissingOptionModules(e){_i(e,e=>this._moduleRegistry.has(e))}layout(e,t,n){var r;this._shellManager&&!this._inShellLayout?this._shellManager.layout(e,t):super.layout(e,t,n),this._syncFloatingOverlayHost(),(r=this._moduleRegistry)==null||(r=r.services.floatingGroupService)==null||r.constrainBounds()}_syncFloatingOverlayHost(){if(!this._floatingOverlayHost||!this._shellManager)return;let e=this._shellManager.element.getBoundingClientRect(),t=this.element.getBoundingClientRect(),n=this._floatingOverlayHost;n.style.left=`${t.left-e.left}px`,n.style.top=`${t.top-e.top}px`,n.style.width=`${t.width}px`,n.style.height=`${t.height}px`}_layoutFromShell(e,t){this._inShellLayout=!0,this.layout(e,t,!0),this._inShellLayout=!1}forceRelayout(){this._shellManager?this._layoutFromShell(this.width,this.height):super.forceRelayout()}addEdgeGroup(e,t){let n=this._edgeGroupService;if(!n)throw Error(ui(`EdgeGroup`,`api.addEdgeGroup`));if(n.has(e))throw Error(`dockview: edge group already exists at position '${e}'`);return this.mutation(`add`,()=>{let r=this.createGroup({id:t.id});r.model.location={type:`edge`,position:e},r.model.headerPosition=e;let i=r.model.onDidRemovePanel(()=>{r.model.isEmpty&&(n.isAutoReveal(r)?queueMicrotask(()=>{r.model.isEmpty&&this._edgeGroupService?.includes(r)&&this.removeEdgeGroup(e)}):this.setEdgeGroupCollapsed(r,!0))});return n.add(e,r,i),t.autoHide!==void 0&&n.setAutoHide(r,t.autoHide),t.autoReveal!==void 0&&n.setAutoReveal(r,t.autoReveal),this._onDidAddGroup.fire(r),this._shellManager.addEdgeView(e,t,r),r.api})}revealEdgeGroupWithData(e,t,n){let r=this._edgeGroupService;r&&this.mutation(`add`,()=>{let i=r.get(e);i||=(this.addEdgeGroup(e,{id:this.getNextGroupId(),autoReveal:!0,autoHide:n?.autoHide,collapsed:!0}),r.get(e)),i&&this.moveGroupOrPanel({from:{groupId:t.groupId,panelId:t.panelId??void 0},to:{group:i,position:`center`}})})}getEdgeGroup(e){var t;return(t=this._edgeGroupService)==null||(t=t.get(e))==null?void 0:t.api}getEdgeGroupPanel(e){return this._edgeGroupService?.get(e)}pinEdgeGroup(e){var t;(t=fi(this._moduleRegistry.services.autoHideEdgeGroupService,`AutoHideEdgeGroup`,`api.pinEdgeGroup`))==null||t.pin(e)}autoHideEdgeGroup(e){var t;(t=fi(this._moduleRegistry.services.autoHideEdgeGroupService,`AutoHideEdgeGroup`,`api.autoHideEdgeGroup`))==null||t.autoHide(e)}peekEdgeGroup(e,t){var n;(n=fi(this._moduleRegistry.services.autoHideEdgeGroupService,`AutoHideEdgeGroup`,`api.peekEdgeGroup`))==null||n.peek(e,t)}get overlayRoot(){return this.rootElement}getDropZoneRect(){return this.element.getBoundingClientRect()}getEdgeGroupExpandedSize(e){return this._shellManager?.getEdgeGroupExpandedSize(e)??0}repositionPanelOverlay(e,t,n){this.overlayRenderContainer.repositionPanelOverlay(e.api.id,t,n)}setEdgeGroupVisible(e,t){this._shellManager.setEdgeGroupVisible(e,t)}isEdgeGroupVisible(e){return this._shellManager.isEdgeGroupVisible(e)}removeEdgeGroup(e){let t=fi(this._edgeGroupService,`EdgeGroup`,`api.removeEdgeGroup`);if(!t)return;let n=t.get(e);if(!n)throw Error(`dockview: no edge group exists at position '${e}'`);this.mutation(`remove`,()=>{for(let e of[...n.panels])this.removePanel(e,{removeEmptyGroup:!1,skipDispose:!1});this._shellManager.removeEdgeView(e),t.remove(e),n.dispose(),this._groups.delete(n.id),this._onDidRemoveGroup.fire(n)})}setEdgeGroupCollapsed(e,t){let n=this._edgeGroupService?.findPositionOf(e);n&&this._shellManager.isEdgeGroupCollapsed(n)!==t&&(this._shellManager.setEdgeGroupCollapsed(n,t),e.api._onDidCollapsedChange.fire({isCollapsed:t}))}isEdgeGroupCollapsed(e){let t=this._edgeGroupService?.findPositionOf(e);return t?this._shellManager.isEdgeGroupCollapsed(t):!1}isEdgeGroupPeeking(e){return this._peekingGroups.has(e)}setEdgeGroupPeeking(e,t){this._peekingGroups.has(e)!==t&&(t?this._peekingGroups.add(e):this._peekingGroups.delete(e),e.api._onDidPeekChange.fire({isPeeking:t}))}isEdgeGroupAutoHide(e){let t=this._edgeGroupService?.isAutoHide(e);if(t!==void 0)return t;let n=this._edgeGroupService?.findPositionOf(e);return n!==void 0&&hr(this.options.autoHideEdgeGroups,n)}setEdgeGroupAutoHide(e,t){let n=this._edgeGroupService;n?.includes(e)&&(n.setAutoHide(e,t),this._onDidEdgeGroupAutoHideChange.fire(e))}updateDragAndDropState(){for(let e of this.groups)e.model.updateDragAndDropState()}focus(){var e;(e=this.activeGroup)==null||e.focus()}getGroupPanel(e){return this.panels.find(t=>t.id===e)}setActivePanel(e){e.group.model.openPanel(e),this.doSetGroupAndPanelActive(e.group)}activateNext(e={}){if(!e.group){if(!this.activeGroup)return;e.group=this.activeGroup}if(e.includePanel&&e.group&&e.group.activePanel!==e.group.panels[e.group.panels.length-1]){e.group.model.moveToNext({suppressRoll:!0});return}let t=Gt(e.group.element),n=this.gridview.next(t)?.view;this.doSetGroupAndPanelActive(n)}activatePrevious(e={}){if(!e.group){if(!this.activeGroup)return;e.group=this.activeGroup}if(e.includePanel&&e.group&&e.group.activePanel!==e.group.panels[0]){e.group.model.moveToPrevious({suppressRoll:!0});return}let t=Gt(e.group.element),n=this.gridview.previous(t)?.view;n&&this.doSetGroupAndPanelActive(n)}toJSON(){let e=this.gridview.serialize(),t=this.panels.reduce((e,t)=>(e[t.id]=t.toJSON(),e),{}),n=this._floatingGroupService?.serialize()??[],r=this._popoutWindowService?.serialize()??[],i={grid:e,panels:t,activeGroup:this.activeGroup?.id};n.length>0&&(i.floatingGroups=n),r.length>0&&(i.popoutGroups=r);let a=this._serializeEdgeGroups();return a&&(i.edgeGroups=a),i}_serializeEdgeGroups(){if(!this._edgeGroupService?.hasAny())return;let e=this._shellManager.toJSON();for(let[t,n]of this._edgeGroupService.entries()){let r=e[t];if(!r)continue;if(this._edgeGroupService.isAutoReveal(n)&&n.model.isEmpty){delete e[t];continue}r.group=n.toJSON(),this._edgeGroupService.isAutoReveal(n)&&(r.autoReveal=!0);let i=this._edgeGroupService.isAutoHide(n);i!==void 0&&(r.autoHide=i)}return e}fromJSON(e,t){this.mutation(`load`,()=>this._doFromJSON(e,t))}_doFromJSON(e,t){var n;if((n=this._popoutWindowService)==null||n.cancelPendingRestorations(),typeof e!=`object`||!e)throw Error(`dockview: serialized layout must be a non-null object`);if(!e.grid||e.grid.root?.type!==`branch`||!Array.isArray(e.grid.root.data))throw Error(`dockview: root must be of type branch`);let r=new Map,i=new Map,a=[],o=[],s=()=>{for(let e of o)try{e.dispose()}catch(e){console.error(`dockview: failed to dispose a temporary group created for reuseExistingPanels`,e)}o.length=0};if(t?.reuseExistingPanels){let t=Object.keys(e.panels),n,c=()=>{let e=this.createGroup(),t=this._groups.get(e.api.id);return this._groups.delete(e.api.id),o.push(We.from(()=>{this.movingLock(()=>{for(let t of e.panels.slice())e.model.removePanel(t)}),t?.disposable.dispose(),e.dispose()})),e};try{for(let e of this.panels)if(t.includes(e.api.id)){r.set(e.api.id,e);let t;e.api.renderer===`always`&&e.api.isVisible?t=c():(n??=c(),t=n),i.set(e.api.id,t),a.push({panel:e,temporaryGroup:t})}this.movingLock(()=>{a.forEach(({panel:e,temporaryGroup:t})=>{this.moveGroupOrPanel({from:{groupId:e.api.group.api.id,panelId:e.api.id},to:{group:t,position:`center`},keepEmptyGroups:!0})})}),this.clear()}catch(e){throw s(),e}}else this.clear();let{grid:c,panels:l,activeGroup:u}=e;try{var d,f,p;let t=this.width,n=this.height,a=e=>{let{id:t,locked:n,hideHeader:a,headerPosition:o,views:s,activeView:c}=e;if(typeof t!=`string`)throw TypeError(`dockview: group id must be of type string`);let u=this.createGroup({id:t,locked:!!n,hideHeader:!!a,headerPosition:o});this._onDidAddGroup.fire(u);let d=[],f=s.filter(e=>l[e]);for(let e of f){let t=r.get(e),n=i.get(e);if(n&&t)this.movingLock(()=>{n.model.removePanel(t)}),d.push(t),t.updateFromStateModel(l[e]);else{let t=this._deserializer.fromJSON(l[e],u);d.push(t)}}for(let e of d){let t=typeof c==`string`&&c===e.id;r.has(e.api.id)?this.movingLock(()=>{u.model.openPanel(e,{skipSetActive:!t,skipSetGroupActive:!0})}):u.model.openPanel(e,{skipSetActive:!t,skipSetGroupActive:!0})}return e.tabGroups&&e.tabGroups.length>0&&u.model.restoreTabGroups(e.tabGroups),!u.activePanel&&u.panels.length>0&&u.model.openPanel(u.panels[u.panels.length-1],{skipSetGroupActive:!0}),u};this.gridview.deserialize(c,{fromJSON:e=>a(e.data)}),this._layoutFromShell(t,n),e.edgeGroups&&this.deserializeEdgeGroups(e.edgeGroups,l,r,i),this.deserializeFloatingWindows(e.floatingGroups??[],a);let o=this.deserializePopoutWindows(e.popoutGroups??[],a);if((d=this._popoutWindowService)==null||d.finishRestoration(o),(f=this._floatingGroupService)==null||f.constrainBounds(),typeof u==`string`){let e=this.getPanel(u);e&&this.doSetGroupAndPanelActive(e)}(p=this._watermarkService)==null||p.update()}catch(e){var m;console.error(`dockview: failed to deserialize layout. Reverting changes`,e);for(let e of this.groups)for(let t of e.panels)this.removePanel(t,{removeEmptyGroup:!1,skipDispose:!1});for(let e of this.groups)e.dispose(),this._groups.delete(e.id),this._onDidRemoveGroup.fire(e);throw(m=this._floatingGroupService)==null||m.disposeAll(),this.clear(),e}finally{s()}this.debouncedUpdateAllPositions(),this._onDidLayoutFromJSON.fire()}deserializeNestedGridview(e,t){let n=this.createNestedGridview(e.orientation),r=[];return n.deserialize(e,{fromJSON:e=>{let n=t(e.data);return r.push(n),n}}),{gridview:n,members:r}}deserializeEdgeGroups(e,t,n,r){let i=fi(this._edgeGroupService,`EdgeGroup`,`fromJSON edge restoration`);if(i){for(let t of[`top`,`bottom`,`left`,`right`]){let n=e[t];if(n&&!i.has(t)){let e=n.group?.id??`${t}-group`;this.addEdgeGroup(t,{id:e,autoReveal:n.autoReveal,autoHide:n.autoHide,minimumSize:n.minimumSize,maximumSize:n.maximumSize,collapsedSize:n.collapsedSize})}}for(let[a,o]of i.entries()){let i=e[a]?.group;if(i){let{views:e,activeView:a}=i,s=[];for(let i of e){if(!t[i])continue;let e=n.get(i),a=r.get(i);if(a&&e)this.movingLock(()=>{a.model.removePanel(e)}),s.push(e),e.updateFromStateModel(t[i]);else{let e=this._deserializer.fromJSON(t[i],o);s.push(e)}}for(let e of s){let t=a===e.id;n.has(e.api.id)?this.movingLock(()=>{o.model.openPanel(e,{skipSetActive:!t,skipSetGroupActive:!0})}):o.model.openPanel(e,{skipSetActive:!t,skipSetGroupActive:!0})}i.tabGroups&&i.tabGroups.length>0&&o.model.restoreTabGroups(i.tabGroups),!o.activePanel&&o.panels.length>0&&o.model.openPanel(o.panels[o.panels.length-1],{skipSetGroupActive:!0})}}this._shellManager.fromJSON(e)}}deserializeFloatingWindows(e,t){for(let n of e){let{data:e,grid:r,position:i}=n;if(r){let{gridview:e,members:n}=this.deserializeNestedGridview(r,t);if(n.length===0)continue;this.mountFloatingWindow(e,n[0],n,i,{inDragMode:!1})}else if(e){let n=t(e);this.addFloatingGroup(n,{position:i,width:i.width,height:i.height,skipRemoveGroup:!0,inDragMode:!1})}}}deserializePopoutWindows(e,t){let n=e.length>0?fi(this._popoutWindowService,`PopoutWindow`,`fromJSON popout restoration`):this._popoutWindowService;return n?e.flatMap((e,r)=>{let{data:i,grid:a,position:o,gridReferenceGroup:s,url:c}=e,l,u=[];if(a){let e=this.deserializeNestedGridview(a,t);if(l=e.gridview,u=e.members,u.length===0)return l.dispose(),[]}let d=a?u[0]:t(i);return n.scheduleRestoration(r*100,()=>{this.addPopoutGroup(d,{position:o??void 0,overridePopoutGroup:s?d:void 0,overridePopoutGridview:l,referenceGroup:s?this.getPanel(s):void 0,popoutUrl:c})},()=>{for(let e of u.length>0?u:[d])if(!this.isDisposed&&this._groups.has(e.id)&&e.element.parentElement===null){for(let t of[...e.panels])this.removePanel(t,{removeEmptyGroup:!1});e.dispose(),this._groups.delete(e.id),this._onDidRemoveGroup.fire(e)}})}):[]}clear(){this.mutation(`clear`,()=>this._doClear())}_doClear(){let e=Array.from(this._groups.values()).map(e=>e.value),t=!!this.activeGroup;for(let t of e){if(this._edgeGroupService?.includes(t)){let e=[...t.panels];for(let t of e)this.removePanel(t,{removeEmptyGroup:!1});continue}this.removeGroup(t,{skipActive:!0})}t&&this.doSetGroupAndPanelActive(void 0),this.gridview.clear()}closeAllGroups(){this.mutation(`remove`,()=>{for(let e of this._groups.entries()){let[t,n]=e;n.value.model.closeAllPanels()}})}addPanel(e){return this.mutation(`add`,()=>this._doAddPanel(e))}_doAddPanel(e){if(this.panels.some(t=>t.id===e.id))throw Error(`dockview: panel with id ${e.id} already exists`);let t;if(e.position&&e.floating)throw Error(`dockview: you can only provide one of: position, floating as arguments to .addPanel(...)`);let n={width:e.initialWidth,height:e.initialHeight},r,i=t=>!!e.inactive&&t.model.size>0;if(e.position){if(vr(e.position)){let n=typeof e.position.referencePanel==`string`?this.getGroupPanel(e.position.referencePanel):e.position.referencePanel;if(r=e.position.index,!n){let t=typeof e.position.referencePanel==`string`?e.position.referencePanel:e.position.referencePanel?.id;throw Error(`dockview: referencePanel '${t}' does not exist`)}t=this.findGroup(n)}else if(yr(e.position)){if(t=typeof e.position.referenceGroup==`string`?this._groups.get(e.position.referenceGroup)?.value:e.position.referenceGroup,r=e.position.index,!t){let t=typeof e.position.referenceGroup==`string`?e.position.referenceGroup:e.position.referenceGroup?.id;throw Error(`dockview: referenceGroup '${t}' does not exist`)}}else{let t=this.orthogonalize(En(e.position.direction)),a=this.createPanel(e,t);return t.model.openPanel(a,{skipSetActive:i(t),skipSetGroupActive:e.inactive,index:r}),e.inactive||this.doSetGroupAndPanelActive(t),t.api.setSize({height:n?.height,width:n?.width}),a}}else t=this.activeGroup;let a;if(t){let o=tn(e.position?.direction||`within`);if(e.floating){let t=this.createGroup();this._onDidAddGroup.fire(t);let n=typeof e.floating==`object`&&e.floating!==null?e.floating:{};this.addFloatingGroup(t,ln(ln({},n),{},{inDragMode:!1,skipRemoveGroup:!0,skipActiveGroup:!0})),a=this.createPanel(e,t),t.model.openPanel(a,{skipSetActive:i(t),skipSetGroupActive:e.inactive,index:r})}else if(t.api.location.type===`floating`||t.api.location.type===`edge`||o===`center`)a=this.createPanel(e,t),t.model.openPanel(a,{skipSetActive:i(t),skipSetGroupActive:e.inactive,index:r}),t.api.setSize({width:n?.width,height:n?.height}),e.inactive||this.doSetGroupAndPanelActive(t);else{let s=Gt(t.element),c=Kt(this.gridview.orientation,s,o),l=this.createGroupAtLocation(c,this.orientationAtLocation(c)===`VERTICAL`?n?.height:n?.width);a=this.createPanel(e,l),l.model.openPanel(a,{skipSetActive:i(l),skipSetGroupActive:e.inactive,index:r}),e.inactive||this.doSetGroupAndPanelActive(l)}}else if(e.floating){let t=this.createGroup();this._onDidAddGroup.fire(t);let n=typeof e.floating==`object`&&e.floating!==null?e.floating:{};this.addFloatingGroup(t,ln(ln({},n),{},{inDragMode:!1,skipRemoveGroup:!0,skipActiveGroup:!0})),a=this.createPanel(e,t),t.model.openPanel(a,{skipSetActive:i(t),skipSetGroupActive:e.inactive,index:r})}else{let t=this.createGroupAtLocation([0],this.gridview.orientation===`VERTICAL`?n?.height:n?.width);a=this.createPanel(e,t),t.model.openPanel(a,{skipSetActive:i(t),skipSetGroupActive:e.inactive,index:r}),e.inactive||this.doSetGroupAndPanelActive(t)}return a}removePanel(e,t){this.mutation(`remove`,()=>this._doRemovePanel(e,{removeEmptyGroup:t?.removeEmptyGroup??!0,skipDispose:t?.skipDispose,skipSetActiveGroup:t?.skipSetActiveGroup}))}_doRemovePanel(e,t){let n=e.group;if(!n)throw Error(`dockview: cannot remove panel ${e.id}. it's missing a group.`);n.model.removePanel(e,{skipSetActiveGroup:t.skipSetActiveGroup}),t.skipDispose||(e.group.model.renderContainer.detatch(e),e.dispose()),n.size===0&&t.removeEmptyGroup&&this.removeGroup(n,{skipActive:t.skipSetActiveGroup})}createWatermarkComponent(){return this.options.createWatermarkComponent?this.options.createWatermarkComponent():new ri}addGroup(e){return this.mutation(`add`,()=>this._doAddGroup(e))}_doAddGroup(e){if(e){let t;if(br(e)){let n=typeof e.referencePanel==`string`?this.panels.find(t=>t.id===e.referencePanel):e.referencePanel,r=typeof e.referencePanel==`string`?e.referencePanel:e.referencePanel?.id;if(!n)throw Error(`dockview: reference panel ${r} does not exist`);if(t=this.findGroup(n),!t)throw Error(`dockview: reference group for reference panel ${r} does not exist`)}else if(xr(e)){if(t=typeof e.referenceGroup==`string`?this._groups.get(e.referenceGroup)?.value:e.referenceGroup,!t){let t=typeof e.referenceGroup==`string`?e.referenceGroup:e.referenceGroup?.id;throw Error(`dockview: reference group ${t} does not exist`)}}else{let t=this.orthogonalize(En(e.direction),e);return e.skipSetActive||this.doSetGroupAndPanelActive(t),t}let n=tn(e.direction||`within`),r=Gt(t.element),i=Kt(this.gridview.orientation,r,n),a=this.createGroup(e),o=this.getLocationOrientation(i)===`VERTICAL`?e.initialHeight:e.initialWidth;return this.doAddGroup(a,i,o),e.skipSetActive||this.doSetGroupAndPanelActive(a),a}{let t=this.createGroup(e);return this.doAddGroup(t),this.doSetGroupAndPanelActive(t),t}}getLocationOrientation(e){return e.length%2==0&&this.gridview.orientation===`HORIZONTAL`?`HORIZONTAL`:`VERTICAL`}removeGroup(e,t){this.mutation(`remove`,()=>this.doRemoveGroup(e,t))}detachFromNestedWindow(e){let t=this._floatingGroupService?.findByGroup(e);if(t){let n=this.nestedWindowMembers(e);return n.length<=1?!1:(t.gridview.remove(e),t.group===e&&t.setAnchorGroup(n.find(t=>t!==e)),!0)}let n=this._popoutWindowService?.findByGroup(e);if(n){let t=this.nestedWindowMembers(e);return t.length<=1?!1:(n.gridview.remove(e),n.popoutGroup===e&&n.setAnchorGroup(t.find(t=>t!==e)),!0)}return!1}disposeGroupRecord(e){e.dispose(),this._groups.delete(e.id),this._onDidRemoveGroup.fire(e)}activateFallbackGroupIfRemoved(e,t){if(!t&&this._activeGroup===e){let e=Array.from(this._groups.values());this.doSetGroupAndPanelActive(e.length>0?e[0].value:void 0)}}doRemoveGroup(e,t){if(this._edgeGroupService?.includes(e))return e;let n=[...e.panels];if(!t?.skipDispose)for(let e of n)this.removePanel(e,{removeEmptyGroup:!1,skipDispose:t?.skipDispose??!1});let r=this.activePanel;if(e.api.location.type===`floating`){let n=this._floatingGroupService?.findByGroup(e);if(!n)throw Error(`dockview: failed to find floating group`);return this.detachFromNestedWindow(e)?(t?.skipDispose?e.model.location={type:`grid`}:this.disposeGroupRecord(e),this.activateFallbackGroupIfRemoved(e,t?.skipActive),e):(t?.skipDispose||this.disposeGroupRecord(e),n.dispose(),this.activateFallbackGroupIfRemoved(e,t?.skipActive),e)}if(e.api.location.type===`popout`){var i;let n=this._popoutWindowService?.findByGroup(e);if(!n)throw Error(`dockview: failed to find popout group`);if(this.detachFromNestedWindow(e))return t?.skipDispose?e.model.location={type:`grid`}:this.disposeGroupRecord(e),this.activateFallbackGroupIfRemoved(e,t?.skipActive),e;if(!t?.skipDispose){if(!t?.skipPopoutAssociated){let e=n.referenceGroup?this.getPanel(n.referenceGroup):void 0;e?.panels.length===0&&this.removeGroup(e)}n.popoutGroup.dispose(),this._groups.delete(e.id),this._onDidRemoveGroup.fire(e)}(i=this._popoutWindowService)==null||i.remove(n);let r=n.disposable.dispose();return!t?.skipPopoutReturn&&r&&(this.doAddGroup(r,[0]),this.doSetGroupAndPanelActive(r)),this.activateFallbackGroupIfRemoved(e,t?.skipActive),n.popoutGroup}if(!this.gridview.element.contains(e.element))return t?.skipDispose||(this._groups.get(e.id)?.disposable.dispose(),this.disposeGroupRecord(e)),this.activateFallbackGroupIfRemoved(e,t?.skipActive),e;let a=super.doRemoveGroup(e,t);return t?.skipActive||this.activePanel!==r&&this.fireActivePanelChange(this.activePanel),a}debouncedUpdateAllPositions(){this._updatePositionsFrameId!==void 0&&cancelAnimationFrame(this._updatePositionsFrameId),this._updatePositionsFrameId=requestAnimationFrame(()=>{this._updatePositionsFrameId=void 0,this.overlayRenderContainer.updateAllPositions();for(let e of this._popoutWindowService?.entries??[])e.overlayRenderContainer.updateAllPositions()})}movingLock(e){let t=this._moving;try{return this._moving=!0,e()}finally{this._moving=t}}mutation(e,t){let n=this.openMutation(e);try{return t()}finally{n()}}mutationAsync(e,t){var n=this;return Zi(function*(){let r=n.openMutation(e);try{return yield t()}finally{r()}})()}openMutation(e){let t=this._origin;return this._mutationDepth===0&&this._onWillMutateLayout.fire({kind:e,origin:t}),this._mutationDepth++,()=>{this._mutationDepth--,this._mutationDepth===0&&(this.flushLocationChanges(),this._onDidMutateLayout.fire({kind:e,origin:t}))}}deferLocationChange(e,t){if(this._mutationDepth===0){t();return}this._pendingLocationChanges.set(e,t)}flushLocationChanges(){if(this._pendingLocationChanges.size===0)return;let e=Array.from(this._pendingLocationChanges.values());this._pendingLocationChanges.clear();for(let t of e)t()}currentOrigin(){return this._origin}withOrigin(e,t){if(this._originDepth>0||this._mutationDepth>0)return t();let n=this._origin;this._origin=e,this._originDepth++;try{return t()}finally{this._originDepth--,this._origin=n}}fireActivePanelChange(e){this._onDidActivePanelChange.fire({panel:e,origin:this._origin})}fireDidMovePanel(e,t){this._onDidMovePanel.fire({panel:e,from:t,to:e.group})}moveGroupOrPanel(e){this.mutation(`move`,()=>this._doMoveGroupOrPanel(e))}_doMoveGroupOrPanel(e){let t=e.to.group,n=e.from.groupId,r=e.from.panelId,i=e.to.position,a=e.to.index,o=n?this._groups.get(n)?.value:void 0;if(!o)throw Error(`dockview: Failed to find group id ${n}`);if(r===void 0){e.from.tabGroupId?this.moveTabGroupToGroup({sourceGroup:o,tabGroupId:e.from.tabGroupId,destinationGroup:t,destinationTarget:i,destinationIndex:a,skipSetActive:e.skipSetActive,keepEmptyGroups:e.keepEmptyGroups}):this.moveGroup({from:{group:o},to:{group:t,position:i},skipSetActive:e.skipSetActive});return}if(!i||i===`center`){let n=this.movingLock(()=>o.model.removePanel(r,{skipSetActive:!1,skipSetActiveGroup:!0}));if(!n)throw Error(`dockview: No panel with id ${r}`);!e.keepEmptyGroups&&o.model.size===0&&this.doRemoveGroup(o,{skipActive:!0});let i=t.model.size===0;this.movingLock(()=>t.model.openPanel(n,{index:a,skipSetActive:(e.skipSetActive??!1)&&!i,skipSetGroupActive:!0})),e.skipSetActive||this.doSetGroupAndPanelActive(t),this.fireDidMovePanel(n,o)}else{let e=this.getGridviewForGroup(t),n=Gt(t.element),a=Kt(e.orientation,n,i);if(o.size<2){let[n,s]=Tt(a);if(o.api.location.type===`grid`&&e===this.gridview){let[e,t]=Tt(Gt(o.element));if(Et(e,n)){this.gridview.moveView(e,t,s),this.fireDidMovePanel(this.getGroupPanel(r),o);return}}if(o.api.location.type===`popout`&&this.nestedWindowMembers(o).length<=1){let n=this._popoutWindowService?.findByGroup(o);if(!n)return;let a=this.movingLock(()=>n.popoutGroup.model.removePanel(n.popoutGroup.panels[0],{skipSetActive:!0,skipSetActiveGroup:!0}));this.doRemoveGroup(o,{skipActive:!0});let s=Kt(e.orientation,Gt(t.element),i),c=this.createGroupAtLocation(s,void 0,void 0,e);this.movingLock(()=>c.model.openPanel(a,{skipSetActive:!0})),this.doSetGroupAndPanelActive(c),this.fireDidMovePanel(this.getGroupPanel(r),o);return}if(o.api.location.type===`edge`){let t=this.movingLock(()=>o.model.removePanel(r,{skipSetActive:!1,skipSetActiveGroup:!0}));if(!t)throw Error(`dockview: No panel with id ${r}`);let n=this.createGroupAtLocation(a,void 0,void 0,e);this.movingLock(()=>n.model.openPanel(t,{skipSetGroupActive:!0})),this.doSetGroupAndPanelActive(n),this.fireDidMovePanel(t,o);return}let c=this.movingLock(()=>this.doRemoveGroup(o,{skipActive:!0,skipDispose:!0})),l=Gt(t.element),u=Kt(e.orientation,l,i);this.movingLock(()=>this.doAddGroup(c,u,void 0,e)),this.setGroupLocationForRoot(c,e),this.doSetGroupAndPanelActive(c),this.fireDidMovePanel(this.getGroupPanel(r),o)}else{let t=this.movingLock(()=>o.model.removePanel(r,{skipSetActive:!1,skipSetActiveGroup:!0}));if(!t)throw Error(`dockview: No panel with id ${r}`);let a=Kt(e.orientation,n,i),s=this.createGroupAtLocation(a,void 0,void 0,e);this.movingLock(()=>s.model.openPanel(t,{skipSetGroupActive:!0})),this.doSetGroupAndPanelActive(s),this.fireDidMovePanel(t,o)}}}moveTabGroupToGroup(e){let{sourceGroup:t,tabGroupId:n,destinationGroup:r,destinationTarget:i,destinationIndex:a}=e,o=t.model.getTabGroups().find(e=>e.id===n);if(!o||o.panelIds.length===0)return;let s=o.label,c=o.color,l=o.collapsed,u=o.componentParams,d=[...o.panelIds],f=i&&i!==`center`?Gt(r.element):void 0,p=this.movingLock(()=>d.map(e=>t.model.removePanel(e,{skipSetActive:!1,skipSetActiveGroup:!0})).filter(e=>e!==void 0));if(p.length===0)return;let m=n=>{this.movingLock(()=>{for(let e of p)n.model.openPanel(e,{index:a,skipSetActive:!0,skipSetGroupActive:!0})});let r=n.model.createTabGroup({label:s,color:c,collapsed:l,componentParams:u});for(let e of p)n.model.addPanelToTabGroup(r.id,e.id);e.skipSetActive||this.doSetGroupAndPanelActive(n);for(let e of p)this.fireDidMovePanel(e,t)},h;if(!i||i===`center`||!f)h=r;else{let e=Kt(this.gridview.orientation,f,i);h=this.createGroupAtLocation(e)}!e.keepEmptyGroups&&t.model.size===0&&t!==h&&this.doRemoveGroup(t,{skipActive:!0}),m(h)}moveGroup(e){this.mutation(`move`,()=>this._doMoveGroup(e))}maximizeGroup(e){this.mutation(`maximize`,()=>super.maximizeGroup(e))}exitMaximizedGroup(){this.mutation(`maximize`,()=>super.exitMaximizedGroup())}_doMoveGroup(e){let t=e.from.group,n=e.to.group,r=e.to.position,i=t,a;if(r===`center`){let r=t.activePanel,i=t.model.getTabGroups().map(e=>({label:e.label,color:e.color,collapsed:e.collapsed,componentParams:e.componentParams,panelIds:[...e.panelIds]})),o=this.movingLock(()=>[...t.panels].map(e=>t.model.removePanel(e.id,{skipSetActive:!0})));t?.model.size===0&&this.doRemoveGroup(t,{skipActive:!0}),this.movingLock(()=>{for(let e of o)n.model.openPanel(e,{skipSetActive:e!==r,skipSetGroupActive:!0})}),a=o;for(let e of i){let t=n.model.createTabGroup({label:e.label,color:e.color,collapsed:e.collapsed,componentParams:e.componentParams});for(let r of e.panelIds)n.model.addPanelToTabGroup(t.id,r)}e.skipSetActive===!0&&this.activePanel||this.doSetGroupAndPanelActive(n)}else{if(t.api.location.type===`edge`){let e=t.activePanel,n=t.model.getTabGroups().map(e=>({label:e.label,color:e.color,collapsed:e.collapsed,componentParams:e.componentParams,panelIds:[...e.panelIds]})),r=this.movingLock(()=>[...t.panels].map(e=>t.model.removePanel(e.id,{skipSetActive:!0})));i=this.createGroup(),this._onDidAddGroup.fire(i),this.movingLock(()=>{for(let t of r)i.model.openPanel(t,{skipSetActive:t!==e,skipSetGroupActive:!0})});for(let e of n){let t=i.model.createTabGroup({label:e.label,color:e.color,collapsed:e.collapsed,componentParams:e.componentParams});for(let n of e.panelIds)i.model.addPanelToTabGroup(t.id,n)}}else switch(t.api.location.type){case`grid`:this.gridview.removeView(Gt(t.element));break;case`floating`:{let e=this._floatingGroupService?.findByGroup(t);if(!e)throw Error(`dockview: failed to find floating group`);this.detachFromNestedWindow(t)||e.dispose();break}case`popout`:{var o;let e=this._popoutWindowService?.findByGroup(t);if(!e)throw Error(`dockview: failed to find popout group`);if(this.detachFromNestedWindow(t))break;if((o=this._popoutWindowService)==null||o.remove(e),e.referenceGroup){let t=this.getPanel(e.referenceGroup);t&&!t.api.isVisible&&this.doRemoveGroup(t,{skipActive:!0})}e.window.dispose();break}}if(n.api.location.type===`grid`||n.api.location.type===`floating`||n.api.location.type===`popout`){let e=this.getGridviewForGroup(n),a=Gt(n.element),o=Kt(e.orientation,a,r),s;switch(e.orientation){case`VERTICAL`:s=a.length%2==0?t.api.width:t.api.height;break;case`HORIZONTAL`:s=a.length%2==0?t.api.height:t.api.width}e.addView(i,s,o),this.setGroupLocationForRoot(i,e)}}if((a??i.panels).forEach(e=>{this.fireDidMovePanel(e,t)}),this.debouncedUpdateAllPositions(),e.skipSetActive===!1){let e=n??t;this.doSetGroupAndPanelActive(e)}else i!==t&&e.skipSetActive!==!0&&this.doSetGroupAndPanelActive(i)}doSetGroupActive(e){super.doSetGroupActive(e);let t=this.activePanel;!this._moving&&t!==this._onDidActivePanelChange.value?.panel&&this.fireActivePanelChange(t)}doSetGroupAndPanelActive(e){super.doSetGroupActive(e);let t=this.activePanel;e&&this.hasMaximizedGroup()&&!this.isMaximizedGroup(e)&&this.exitMaximizedGroup(),!this._moving&&t!==this._onDidActivePanelChange.value?.panel&&this.fireActivePanelChange(t)}getNextGroupId(){let e=this.nextGroupId.next();for(;this._groups.has(e);)e=this.nextGroupId.next();return e}createGroup(e){e??={};let t=e?.id;if(t&&this._groups.has(e.id)&&(console.warn(`dockview: Duplicate group id ${e?.id}. reassigning group id to avoid errors`),t=void 0),!t)for(t=this.nextGroupId.next();this._groups.has(t);)t=this.nextGroupId.next();let n=new Xr(this,t,e);if(n.init({params:{},accessor:this}),!this._groups.has(n.id)){let e=new Q(n.model.onTabDragStart(e=>{var t;(t=this._advancedDnDService)==null||t.dispatchWillDragPanel(e)}),n.model.onGroupDragStart(e=>{var t;(t=this._advancedDnDService)==null||t.dispatchWillDragGroup(e)}),n.model.onMove(e=>{let{groupId:t,itemId:r,target:i,index:a,tabGroupId:o}=e;this.moveGroupOrPanel({from:{groupId:t,panelId:r,tabGroupId:o},to:{group:n,position:i,index:a}})}),n.model.onDidDrop(e=>{this._onDidDrop.fire(e)}),n.model.onWillDrop(e=>{var t;(t=this._advancedDnDService)==null||t.dispatchWillDrop(e)}),n.model.onWillShowOverlay(e=>{var t;if(this.options.disableDnd){e.preventDefault();return}(t=this._advancedDnDService)==null||t.dispatchWillShowOverlay(e)}),n.model.onUnhandledDragOver(e=>{this._onUnhandledDragOver.fire(e)}),n.model.onDidAddPanel(e=>{this._moving||this._onDidAddPanel.fire(e.panel)}),n.model.onDidRemovePanel(e=>{this._moving||this._onDidRemovePanel.fire(e.panel)}),n.model.onDidActivePanelChange(e=>{this._moving||e.panel===this.activePanel&&this._onDidActivePanelChange.value?.panel!==e.panel&&this.fireActivePanelChange(e.panel)}),Ke.any(n.model.onDidPanelTitleChange,n.model.onDidPanelParametersChange)(()=>{this._bufferOnDidLayoutChange.fire()}));this._groups.set(n.id,{value:n,disposable:e})}return n.initialize(),n}createPanel(e,t){let n=e.component,r=e.tabComponent??this.options.defaultTabComponent,i=new ti(this,e.id,n,r),a=new $r(e.id,n,r,this,this._api,t,i,{renderer:e.renderer,minimumWidth:e.minimumWidth,minimumHeight:e.minimumHeight,maximumWidth:e.maximumWidth,maximumHeight:e.maximumHeight});return a.init({title:e.title??e.id,params:e?.params??{}}),a}createGroupAtLocation(e,t,n,r=this.gridview){let i=this.createGroup(n);return this.doAddGroup(i,e,t,r),this.setGroupLocationForRoot(i,r),i}setGroupLocationForRoot(e,t){let n=this._popoutWindowService?.entries.find(e=>e.gridview===t);if(n){e.model.renderContainer!==n.overlayRenderContainer&&(e.model.renderContainer=n.overlayRenderContainer),e.model.dropTargetContainer=n.dropTargetContainer,e.model.location={type:`popout`,getWindow:n.getWindow,popoutUrl:n.popoutUrl};return}e.model.renderContainer!==this.overlayRenderContainer&&(e.model.renderContainer=this.overlayRenderContainer),e.model.dropTargetContainer=this.rootDropTargetContainer,e.model.location=t===this.gridview?{type:`grid`}:{type:`floating`}}getGridviewForGroup(e){let t=this._floatingGroupService?.findByGroup(e);if(t)return t.gridview;let n=this._popoutWindowService?.findByGroup(e);return n?n.gridview:this.gridview}nestedWindowMembers(e){let t=this.getGridviewForGroup(e);return t===this.gridview?[]:this.groups.filter(e=>t.element.contains(e.element))}findGroup(e){return Array.from(this._groups.values()).find(t=>t.value.model.containsPanel(e))?.value}orientationAtLocation(e){let t=this.gridview.orientation;return e.length%2==1?t:Yt(t)}updateTheme(){var e,t;let n=this._options.theme??Zr;(e=this._shellThemeClassnames)==null||e.setClassNames(n.className);let r=n.gap??0;this.gridview.margin=r;for(let e of this.floatingGroups)e.gridview.margin=r;for(let e of this._popoutWindowService?.entries??[])e.gridview.margin=r;if((t=this._shellManager)==null||t.updateTheme(r,n.edgeGroupCollapsedSize??35),n.dndOverlayBorder===void 0){var i;this.element.style.removeProperty(`--dv-drag-over-border`),(i=this._shellManager)==null||i.element.style.removeProperty(`--dv-drag-over-border`)}else{var a;this.element.style.setProperty(`--dv-drag-over-border`,n.dndOverlayBorder),(a=this._shellManager)==null||a.element.style.setProperty(`--dv-drag-over-border`,n.dndOverlayBorder)}switch(n.dndOverlayMounting){case`absolute`:this.rootDropTargetContainer.disabled=!1;break;default:this.rootDropTargetContainer.disabled=!0}let o=(n.tabGroupIndicator??`wrap`)===`none`;it(this.element,`dv-tab-group-indicator-none`,o),this._shellManager&&it(this._shellManager.element,`dv-tab-group-indicator-none`,o);for(let e of this.groups)e.model.updateTabGroups()}};function ma(e,t){return new pa(e,t).api}var ha=new Map,ga=w(null),_a=w(new Map);function va(e){let t=N(ga);_a.update(n=>{let r=new Map(n);return r.get(e)?.isLocked?r.delete(e):(t?.selectedNode||t?.selectedAnnotation)&&r.set(e,{isLocked:!0,lockedNode:t.selectedNode,lockedAnnotationId:t.selectedAnnotation}),r})}function ya(e){ga.set(e)}function ba(){let e=null;return ga.subscribe(t=>e=t)(),e}function xa(e,t,n){ha.set(e,{lazy:!1,component:t,defaultTitle:n})}function Sa(e,t,n){ha.set(e,{lazy:!0,loader:t,defaultTitle:n})}function Ca(e,t){let n=t.params;return{...e,...n,id:t.api.id,type:n?.type??e.type,title:n?.title??t.api.title??e.title}}function wa(e){let t=e,r=null,i=null,a=!1;function o(e){let n=ba();return{panelId:t.id,panelParams:t,panelApi:e.api,containerApi:e.containerApi,graph:n?.graph,selectedNode:n?.selectedNode,selectedAnnotation:n?.selectedAnnotation,activeTool:n?.activeTool||`select`,presentationMode:n?.presentationMode||!1,onRecordHistory:n?.onRecordHistory,onNodeSelect:n?.onNodeSelect,onAnnotationSelect:n?.onAnnotationSelect,onToolChange:n?.onToolChange,onOpenNodePanel:n?.onOpenNodePanel,onPanelAction:n?.onPanelAction}}return{element:document.createElement(`div`),init(e){if(t=Ca(t,e),i=this.element,i.style.height=`100%`,i.style.width=`100%`,i.style.overflow=`hidden`,i.classList.add(`dockview-panel-content`),!t||!t.type){console.error(`Panel params missing or invalid:`,t),i.innerHTML=`<div style="padding: 16px; color: var(--status-error);">Invalid panel configuration</div>`;return}let s=ha.get(t.type);if(!s){console.error(`Unknown panel type: ${t.type}`),i.innerHTML=`<div style="padding: 16px; color: var(--status-error);">Unknown panel type: ${t.type}</div>`;return}if(!s.lazy){r=n(s.component,{target:i,props:o(e)});return}i.innerHTML=`<div style="padding: 16px; color: var(--text-subtle);">Loading ${s.defaultTitle}…</div>`,s.loader().then(t=>{a||!i||(i.innerHTML=``,r=n(t.default,{target:i,props:o(e)}))}).catch(e=>{console.error(`Failed to load panel component for type ${t.type}:`,e),!(a||!i)&&(i.innerHTML=`<div style="padding: 16px; color: var(--status-error);">Failed to load ${s.defaultTitle}: ${String(e)}</div>`)})},update(e){},dispose(){a=!0,r&&i&&(d(r),r=null)}}}var Ta={xmlns:`http://www.w3.org/2000/svg`,width:24,height:24,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":2,"stroke-linecap":`round`,"stroke-linejoin":`round`},Ea=e=>{for(let t in e)if(t.startsWith(`aria-`)||t===`role`||t===`title`)return!0;return!1},Da=Symbol(`lucide-context`),Oa=()=>i(Da),ka=new Set([`$$slots`,`$$events`,`$$legacy`,`name`,`color`,`size`,`strokeWidth`,`absoluteStrokeWidth`,`iconNode`,`children`]),Aa=m(`<svg><!><!></svg>`);function ja(e,t){ee(t,!0);let n=Oa()??{},r=V(t,`color`,19,()=>n.color??`currentColor`),i=V(t,`size`,19,()=>n.size??24),a=V(t,`strokeWidth`,19,()=>n.strokeWidth??2),s=V(t,`absoluteStrokeWidth`,19,()=>n.absoluteStrokeWidth??!1),c=V(t,`iconNode`,19,()=>[]),l=j(t,ka),u=B(()=>s()?Number(a())*24/Number(i()):a());var d=Aa();Oe(d,e=>({...Ta,...e,...l,width:i(),height:i(),stroke:r(),"stroke-width":x(u),class:[`lucide-icon lucide`,n.class,t.name&&`lucide-${t.name}`,t.class]}),[()=>!t.children&&!Ea(l)&&{"aria-hidden":`true`}]);var p=M(d);f(p,17,c,h,(e,t)=>{var n=B(()=>U(x(t),2));let r=()=>x(n)[0],i=()=>x(n)[1];var a=te(),o=G(a);le(o,r,!0,(e,t)=>{Oe(e,()=>({...i()}))}),E(e,a)});var m=P(p);_(m,()=>t.children??y),o(d),E(e,d),Ee()}var Ma=new Set([`$$slots`,`$$events`,`$$legacy`]);function Na(e,t){let n=j(t,Ma),r=[[`circle`,{cx:`12`,cy:`12`,r:`10`}],[`path`,{d:`m14.31 8 5.74 9.94`}],[`path`,{d:`M9.69 8h11.48`}],[`path`,{d:`m7.38 12 5.74-9.94`}],[`path`,{d:`M9.69 16 3.95 6.06`}],[`path`,{d:`M14.31 16H2.83`}],[`path`,{d:`m16.62 12-5.74 9.94`}]];ja(e,W({name:`aperture`},()=>n,{get iconNode(){return r}}))}var Pa=new Set([`$$slots`,`$$events`,`$$legacy`]);function Fa(e,t){let n=j(t,Pa),r=[[`path`,{d:`m16 3 4 4-4 4`}],[`path`,{d:`M20 7H4`}],[`path`,{d:`m8 21-4-4 4-4`}],[`path`,{d:`M4 17h16`}]];ja(e,W({name:`arrow-right-left`},()=>n,{get iconNode(){return r}}))}var Ia=new Set([`$$slots`,`$$events`,`$$legacy`]);function La(e,t){let n=j(t,Ia),r=[[`path`,{d:`m5 12 7-7 7 7`}],[`path`,{d:`M12 19V5`}]];ja(e,W({name:`arrow-up`},()=>n,{get iconNode(){return r}}))}var Ra=new Set([`$$slots`,`$$events`,`$$legacy`]);function za(e,t){let n=j(t,Ra),r=[[`rect`,{x:`14`,y:`14`,width:`4`,height:`6`,rx:`2`}],[`rect`,{x:`6`,y:`4`,width:`4`,height:`6`,rx:`2`}],[`path`,{d:`M6 20h4`}],[`path`,{d:`M14 10h4`}],[`path`,{d:`M6 14h2v6`}],[`path`,{d:`M14 4h2v6`}]];ja(e,W({name:`binary`},()=>n,{get iconNode(){return r}}))}var Ba=new Set([`$$slots`,`$$events`,`$$legacy`]);function Va(e,t){let n=j(t,Ba),r=[[`circle`,{cx:`15`,cy:`9`,r:`7`}],[`circle`,{cx:`9`,cy:`15`,r:`7`}]];ja(e,W({name:`blend`},()=>n,{get iconNode(){return r}}))}var Ha=new Set([`$$slots`,`$$events`,`$$legacy`]);function Ua(e,t){let n=j(t,Ha),r=[[`path`,{d:`M21 8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16Z`}],[`path`,{d:`m3.3 7 8.7 5 8.7-5`}],[`path`,{d:`M12 22V12`}]];ja(e,W({name:`box`},()=>n,{get iconNode(){return r}}))}var Wa=new Set([`$$slots`,`$$events`,`$$legacy`]);function Ga(e,t){let n=j(t,Wa),r=[[`path`,{d:`M13.997 4a2 2 0 0 1 1.76 1.05l.486.9A2 2 0 0 0 18.003 7H20a2 2 0 0 1 2 2v9a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V9a2 2 0 0 1 2-2h1.997a2 2 0 0 0 1.759-1.048l.489-.904A2 2 0 0 1 10.004 4z`}],[`circle`,{cx:`12`,cy:`13`,r:`3`}]];ja(e,W({name:`camera`},()=>n,{get iconNode(){return r}}))}var Ka=new Set([`$$slots`,`$$events`,`$$legacy`]);function qa(e,t){let n=j(t,Ka),r=[[`path`,{d:`M20 6 9 17l-5-5`}]];ja(e,W({name:`check`},()=>n,{get iconNode(){return r}}))}var Ja=new Set([`$$slots`,`$$events`,`$$legacy`]);function Ya(e,t){let n=j(t,Ja),r=[[`path`,{d:`m6 9 6 6 6-6`}]];ja(e,W({name:`chevron-down`},()=>n,{get iconNode(){return r}}))}var Xa=new Set([`$$slots`,`$$events`,`$$legacy`]);function Za(e,t){let n=j(t,Xa),r=[[`path`,{d:`m9 18 6-6-6-6`}]];ja(e,W({name:`chevron-right`},()=>n,{get iconNode(){return r}}))}var Qa=new Set([`$$slots`,`$$events`,`$$legacy`]);function $a(e,t){let n=j(t,Qa),r=[[`circle`,{cx:`12`,cy:`12`,r:`10`}],[`line`,{x1:`12`,x2:`12`,y1:`8`,y2:`12`}],[`line`,{x1:`12`,x2:`12.01`,y1:`16`,y2:`16`}]];ja(e,W({name:`circle-alert`},()=>n,{get iconNode(){return r}}))}var eo=new Set([`$$slots`,`$$events`,`$$legacy`]);function to(e,t){let n=j(t,eo),r=[[`path`,{d:`M21.801 10A10 10 0 1 1 17 3.335`}],[`path`,{d:`m9 11 3 3L22 4`}]];ja(e,W({name:`circle-check-big`},()=>n,{get iconNode(){return r}}))}var no=new Set([`$$slots`,`$$events`,`$$legacy`]);function ro(e,t){let n=j(t,no),r=[[`circle`,{cx:`12`,cy:`12`,r:`10`}],[`path`,{d:`m15 9-6 6`}],[`path`,{d:`m9 9 6 6`}]];ja(e,W({name:`circle-x`},()=>n,{get iconNode(){return r}}))}var io=new Set([`$$slots`,`$$events`,`$$legacy`]);function ao(e,t){let n=j(t,io),r=[[`circle`,{cx:`12`,cy:`12`,r:`10`}],[`path`,{d:`M12 6v6l4 2`}]];ja(e,W({name:`clock`},()=>n,{get iconNode(){return r}}))}var oo=new Set([`$$slots`,`$$events`,`$$legacy`]);function so(e,t){let n=j(t,oo),r=[[`path`,{d:`M12 2v2`}],[`path`,{d:`m4.93 4.93 1.41 1.41`}],[`path`,{d:`M20 12h2`}],[`path`,{d:`m19.07 4.93-1.41 1.41`}],[`path`,{d:`M15.947 12.65a4 4 0 0 0-5.925-4.128`}],[`path`,{d:`M13 22H7a5 5 0 1 1 4.9-6H13a3 3 0 0 1 0 6Z`}]];ja(e,W({name:`cloud-sun`},()=>n,{get iconNode(){return r}}))}var co=new Set([`$$slots`,`$$events`,`$$legacy`]);function lo(e,t){let n=j(t,co),r=[[`path`,{d:`M17.5 19H9a7 7 0 1 1 6.71-9h1.79a4.5 4.5 0 1 1 0 9Z`}]];ja(e,W({name:`cloud`},()=>n,{get iconNode(){return r}}))}var uo=new Set([`$$slots`,`$$events`,`$$legacy`]);function fo(e,t){let n=j(t,uo),r=[[`path`,{d:`M14 3a1 1 0 0 1 1 1v5a1 1 0 0 1-1 1`}],[`path`,{d:`M19 3a1 1 0 0 1 1 1v5a1 1 0 0 1-1 1`}],[`path`,{d:`m7 15 3 3`}],[`path`,{d:`m7 21 3-3H5a2 2 0 0 1-2-2v-2`}],[`rect`,{x:`14`,y:`14`,width:`7`,height:`7`,rx:`1`}],[`rect`,{x:`3`,y:`3`,width:`7`,height:`7`,rx:`1`}]];ja(e,W({name:`combine`},()=>n,{get iconNode(){return r}}))}var po=new Set([`$$slots`,`$$events`,`$$legacy`]);function mo(e,t){let n=j(t,po),r=[[`circle`,{cx:`12`,cy:`12`,r:`10`}],[`path`,{d:`M12 18a6 6 0 0 0 0-12v12z`}]];ja(e,W({name:`contrast`},()=>n,{get iconNode(){return r}}))}var ho=new Set([`$$slots`,`$$events`,`$$legacy`]);function go(e,t){let n=j(t,ho),r=[[`rect`,{width:`14`,height:`14`,x:`8`,y:`8`,rx:`2`,ry:`2`}],[`path`,{d:`M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2`}]];ja(e,W({name:`copy`},()=>n,{get iconNode(){return r}}))}var _o=new Set([`$$slots`,`$$events`,`$$legacy`]);function vo(e,t){let n=j(t,_o),r=[[`path`,{d:`M6 2v14a2 2 0 0 0 2 2h14`}],[`path`,{d:`M18 22V8a2 2 0 0 0-2-2H2`}]];ja(e,W({name:`crop`},()=>n,{get iconNode(){return r}}))}var yo=new Set([`$$slots`,`$$events`,`$$legacy`]);function bo(e,t){let n=j(t,yo),r=[[`path`,{d:`M2.7 10.3a2.41 2.41 0 0 0 0 3.41l7.59 7.59a2.41 2.41 0 0 0 3.41 0l7.59-7.59a2.41 2.41 0 0 0 0-3.41l-7.59-7.59a2.41 2.41 0 0 0-3.41 0Z`}]];ja(e,W({name:`diamond`},()=>n,{get iconNode(){return r}}))}var xo=new Set([`$$slots`,`$$events`,`$$legacy`]);function So(e,t){let n=j(t,xo),r=[[`rect`,{width:`18`,height:`18`,x:`3`,y:`3`,rx:`2`,ry:`2`}],[`path`,{d:`M16 8h.01`}],[`path`,{d:`M8 8h.01`}],[`path`,{d:`M8 16h.01`}],[`path`,{d:`M16 16h.01`}],[`path`,{d:`M12 12h.01`}]];ja(e,W({name:`dice-5`},()=>n,{get iconNode(){return r}}))}var Co=new Set([`$$slots`,`$$events`,`$$legacy`]);function wo(e,t){let n=j(t,Co),r=[[`circle`,{cx:`12`,cy:`12`,r:`1`}]];ja(e,W({name:`dot`},()=>n,{get iconNode(){return r}}))}var To=new Set([`$$slots`,`$$events`,`$$legacy`]);function Eo(e,t){let n=j(t,To),r=[[`path`,{d:`M7 16.3c2.2 0 4-1.83 4-4.05 0-1.16-.57-2.26-1.71-3.19S7.29 6.75 7 5.3c-.29 1.45-1.14 2.84-2.29 3.76S3 11.1 3 12.25c0 2.22 1.8 4.05 4 4.05z`}],[`path`,{d:`M12.56 6.6A10.97 10.97 0 0 0 14 3.02c.5 2.5 2 4.9 4 6.5s3 3.5 3 5.5a6.98 6.98 0 0 1-11.91 4.97`}]];ja(e,W({name:`droplets`},()=>n,{get iconNode(){return r}}))}var Do=new Set([`$$slots`,`$$events`,`$$legacy`]);function Oo(e,t){let n=j(t,Do),r=[[`path`,{d:`M2.062 12.348a1 1 0 0 1 0-.696 10.75 10.75 0 0 1 19.876 0 1 1 0 0 1 0 .696 10.75 10.75 0 0 1-19.876 0`}],[`circle`,{cx:`12`,cy:`12`,r:`3`}]];ja(e,W({name:`eye`},()=>n,{get iconNode(){return r}}))}var ko=new Set([`$$slots`,`$$events`,`$$legacy`]);function Ao(e,t){let n=j(t,ko),r=[[`path`,{d:`M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z`}],[`path`,{d:`M14 2v5a1 1 0 0 0 1 1h5`}],[`circle`,{cx:`10`,cy:`12`,r:`2`}],[`path`,{d:`m20 17-1.296-1.296a2.41 2.41 0 0 0-3.408 0L9 22`}]];ja(e,W({name:`file-image`},()=>n,{get iconNode(){return r}}))}var jo=new Set([`$$slots`,`$$events`,`$$legacy`]);function Mo(e,t){let n=j(t,jo),r=[[`path`,{d:`M4.226 20.925A2 2 0 0 0 6 22h12a2 2 0 0 0 2-2V8a2.4 2.4 0 0 0-.706-1.706l-3.588-3.588A2.4 2.4 0 0 0 14 2H6a2 2 0 0 0-2 2v3.127`}],[`path`,{d:`M14 2v5a1 1 0 0 0 1 1h5`}],[`path`,{d:`m5 11-3 3`}],[`path`,{d:`m5 17-3-3h10`}]];ja(e,W({name:`file-output`},()=>n,{get iconNode(){return r}}))}var No=new Set([`$$slots`,`$$events`,`$$legacy`]);function Po(e,t){let n=j(t,No),r=[[`path`,{d:`M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z`}],[`path`,{d:`M14 2v5a1 1 0 0 0 1 1h5`}],[`path`,{d:`M10 9H8`}],[`path`,{d:`M16 13H8`}],[`path`,{d:`M16 17H8`}]];ja(e,W({name:`file-text`},()=>n,{get iconNode(){return r}}))}var Fo=new Set([`$$slots`,`$$events`,`$$legacy`]);function Io(e,t){let n=j(t,Fo),r=[[`path`,{d:`m6 14 1.5-2.9A2 2 0 0 1 9.24 10H20a2 2 0 0 1 1.94 2.5l-1.54 6a2 2 0 0 1-1.95 1.5H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H18a2 2 0 0 1 2 2v2`}]];ja(e,W({name:`folder-open`},()=>n,{get iconNode(){return r}}))}var Lo=new Set([`$$slots`,`$$events`,`$$legacy`]);function Ro(e,t){let n=j(t,Lo),r=[[`path`,{d:`M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z`}]];ja(e,W({name:`folder`},()=>n,{get iconNode(){return r}}))}var zo=new Set([`$$slots`,`$$events`,`$$legacy`]);function Bo(e,t){let n=j(t,zo),r=[[`path`,{d:`m12 14 4-4`}],[`path`,{d:`M3.34 19a10 10 0 1 1 17.32 0`}]];ja(e,W({name:`gauge`},()=>n,{get iconNode(){return r}}))}var Vo=new Set([`$$slots`,`$$events`,`$$legacy`]);function Ho(e,t){let n=j(t,Vo),r=[[`path`,{d:`M15 6a9 9 0 0 0-9 9V3`}],[`circle`,{cx:`18`,cy:`6`,r:`3`}],[`circle`,{cx:`6`,cy:`18`,r:`3`}]];ja(e,W({name:`git-branch`},()=>n,{get iconNode(){return r}}))}var Uo=new Set([`$$slots`,`$$events`,`$$legacy`]);function Wo(e,t){let n=j(t,Uo),r=[[`circle`,{cx:`18`,cy:`18`,r:`3`}],[`circle`,{cx:`6`,cy:`6`,r:`3`}],[`path`,{d:`M6 21V9a9 9 0 0 0 9 9`}]];ja(e,W({name:`git-merge`},()=>n,{get iconNode(){return r}}))}var Go=new Set([`$$slots`,`$$events`,`$$legacy`]);function Ko(e,t){let n=j(t,Go),r=[[`path`,{d:`M12 3v18`}],[`path`,{d:`M3 12h18`}],[`rect`,{x:`3`,y:`3`,width:`18`,height:`18`,rx:`2`}]];ja(e,W({name:`grid-2x2`},()=>n,{get iconNode(){return r}}))}var qo=new Set([`$$slots`,`$$events`,`$$legacy`]);function Jo(e,t){let n=j(t,qo),r=[[`rect`,{width:`18`,height:`18`,x:`3`,y:`3`,rx:`2`}],[`path`,{d:`M3 9h18`}],[`path`,{d:`M3 15h18`}],[`path`,{d:`M9 3v18`}],[`path`,{d:`M15 3v18`}]];ja(e,W({name:`grid-3x3`},()=>n,{get iconNode(){return r}}))}var Yo=new Set([`$$slots`,`$$events`,`$$legacy`]);function Xo(e,t){let n=j(t,Yo),r=[[`path`,{d:`M3 7V5c0-1.1.9-2 2-2h2`}],[`path`,{d:`M17 3h2c1.1 0 2 .9 2 2v2`}],[`path`,{d:`M21 17v2c0 1.1-.9 2-2 2h-2`}],[`path`,{d:`M7 21H5c-1.1 0-2-.9-2-2v-2`}],[`rect`,{width:`7`,height:`5`,x:`7`,y:`7`,rx:`1`}],[`rect`,{width:`7`,height:`5`,x:`10`,y:`12`,rx:`1`}]];ja(e,W({name:`group`},()=>n,{get iconNode(){return r}}))}var Zo=new Set([`$$slots`,`$$events`,`$$legacy`]);function Qo(e,t){let n=j(t,Zo),r=[[`path`,{d:`M18 11V6a2 2 0 0 0-2-2a2 2 0 0 0-2 2`}],[`path`,{d:`M14 10V4a2 2 0 0 0-2-2a2 2 0 0 0-2 2v2`}],[`path`,{d:`M10 10.5V6a2 2 0 0 0-2-2a2 2 0 0 0-2 2v8`}],[`path`,{d:`M18 8a2 2 0 1 1 4 0v6a8 8 0 0 1-8 8h-2c-2.8 0-4.5-.86-5.99-2.34l-3.6-3.6a2 2 0 0 1 2.83-2.82L7 15`}]];ja(e,W({name:`hand`},()=>n,{get iconNode(){return r}}))}var $o=new Set([`$$slots`,`$$events`,`$$legacy`]);function es(e,t){let n=j(t,$o),r=[[`rect`,{width:`18`,height:`18`,x:`3`,y:`3`,rx:`2`,ry:`2`}],[`circle`,{cx:`9`,cy:`9`,r:`2`}],[`path`,{d:`m21 15-3.086-3.086a2 2 0 0 0-2.828 0L6 21`}]];ja(e,W({name:`image`},()=>n,{get iconNode(){return r}}))}var ts=new Set([`$$slots`,`$$events`,`$$legacy`]);function ns(e,t){let n=j(t,ts),r=[[`circle`,{cx:`12`,cy:`12`,r:`10`}],[`path`,{d:`M12 16v-4`}],[`path`,{d:`M12 8h.01`}]];ja(e,W({name:`info`},()=>n,{get iconNode(){return r}}))}var rs=new Set([`$$slots`,`$$events`,`$$legacy`]);function is(e,t){let n=j(t,rs),r=[[`path`,{d:`M10 8h.01`}],[`path`,{d:`M12 12h.01`}],[`path`,{d:`M14 8h.01`}],[`path`,{d:`M16 12h.01`}],[`path`,{d:`M18 8h.01`}],[`path`,{d:`M6 8h.01`}],[`path`,{d:`M7 16h10`}],[`path`,{d:`M8 12h.01`}],[`rect`,{width:`20`,height:`16`,x:`2`,y:`4`,rx:`2`}]];ja(e,W({name:`keyboard`},()=>n,{get iconNode(){return r}}))}var as=new Set([`$$slots`,`$$events`,`$$legacy`]);function os(e,t){let n=j(t,as),r=[[`path`,{d:`M12.83 2.18a2 2 0 0 0-1.66 0L2.6 6.08a1 1 0 0 0 0 1.83l8.58 3.91a2 2 0 0 0 1.66 0l8.58-3.9a1 1 0 0 0 0-1.83z`}],[`path`,{d:`M2 12a1 1 0 0 0 .58.91l8.6 3.91a2 2 0 0 0 1.65 0l8.58-3.9A1 1 0 0 0 22 12`}],[`path`,{d:`M2 17a1 1 0 0 0 .58.91l8.6 3.91a2 2 0 0 0 1.65 0l8.58-3.9A1 1 0 0 0 22 17`}]];ja(e,W({name:`layers`},()=>n,{get iconNode(){return r}}))}var ss=new Set([`$$slots`,`$$events`,`$$legacy`]);function cs(e,t){let n=j(t,ss),r=[[`path`,{d:`M15 14c.2-1 .7-1.7 1.5-2.5 1-.9 1.5-2.2 1.5-3.5A6 6 0 0 0 6 8c0 1 .2 2.2 1.5 3.5.7.7 1.3 1.5 1.5 2.5`}],[`path`,{d:`M9 18h6`}],[`path`,{d:`M10 22h4`}]];ja(e,W({name:`lightbulb`},()=>n,{get iconNode(){return r}}))}var ls=new Set([`$$slots`,`$$events`,`$$legacy`]);function us(e,t){let n=j(t,ls),r=[[`path`,{d:`M2 5h20`}],[`path`,{d:`M6 12h12`}],[`path`,{d:`M9 19h6`}]];ja(e,W({name:`list-filter`},()=>n,{get iconNode(){return r}}))}var ds=new Set([`$$slots`,`$$events`,`$$legacy`]);function fs(e,t){let n=j(t,ds),r=[[`path`,{d:`m10 17 5-5-5-5`}],[`path`,{d:`M15 12H3`}],[`path`,{d:`M15 3h4a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2h-4`}]];ja(e,W({name:`log-in`},()=>n,{get iconNode(){return r}}))}var ps=new Set([`$$slots`,`$$events`,`$$legacy`]);function ms(e,t){let n=j(t,ps),r=[[`path`,{d:`m16 17 5-5-5-5`}],[`path`,{d:`M21 12H9`}],[`path`,{d:`M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4`}]];ja(e,W({name:`log-out`},()=>n,{get iconNode(){return r}}))}var hs=new Set([`$$slots`,`$$events`,`$$legacy`]);function gs(e,t){let n=j(t,hs),r=[[`path`,{d:`M15 3h6v6`}],[`path`,{d:`m21 3-7 7`}],[`path`,{d:`m3 21 7-7`}],[`path`,{d:`M9 21H3v-6`}]];ja(e,W({name:`maximize-2`},()=>n,{get iconNode(){return r}}))}var _s=new Set([`$$slots`,`$$events`,`$$legacy`]);function vs(e,t){let n=j(t,_s),r=[[`path`,{d:`M5 12h14`}]];ja(e,W({name:`minus`},()=>n,{get iconNode(){return r}}))}var ys=new Set([`$$slots`,`$$events`,`$$legacy`]);function bs(e,t){let n=j(t,ys),r=[[`path`,{d:`m8 3 4 8 5-5 5 15H2L8 3z`}]];ja(e,W({name:`mountain`},()=>n,{get iconNode(){return r}}))}var xs=new Set([`$$slots`,`$$events`,`$$legacy`]);function Ss(e,t){let n=j(t,xs),r=[[`path`,{d:`M4.037 4.688a.495.495 0 0 1 .651-.651l16 6.5a.5.5 0 0 1-.063.947l-6.124 1.58a2 2 0 0 0-1.438 1.435l-1.579 6.126a.5.5 0 0 1-.947.063z`}]];ja(e,W({name:`mouse-pointer-2`},()=>n,{get iconNode(){return r}}))}var Cs=new Set([`$$slots`,`$$events`,`$$legacy`]);function ws(e,t){let n=j(t,Cs),r=[[`path`,{d:`M5 11V5H11`}],[`path`,{d:`M5 5L19 19`}]];ja(e,W({name:`move-up-left`},()=>n,{get iconNode(){return r}}))}var Ts=new Set([`$$slots`,`$$events`,`$$legacy`]);function Es(e,t){let n=j(t,Ts),r=[[`path`,{d:`M12 2v20`}],[`path`,{d:`m15 19-3 3-3-3`}],[`path`,{d:`m19 9 3 3-3 3`}],[`path`,{d:`M2 12h20`}],[`path`,{d:`m5 9-3 3 3 3`}],[`path`,{d:`m9 5 3-3 3 3`}]];ja(e,W({name:`move`},()=>n,{get iconNode(){return r}}))}var Ds=new Set([`$$slots`,`$$events`,`$$legacy`]);function Os(e,t){let n=j(t,Ds),r=[[`rect`,{x:`16`,y:`16`,width:`6`,height:`6`,rx:`1`}],[`rect`,{x:`2`,y:`16`,width:`6`,height:`6`,rx:`1`}],[`rect`,{x:`9`,y:`2`,width:`6`,height:`6`,rx:`1`}],[`path`,{d:`M5 16v-3a1 1 0 0 1 1-1h12a1 1 0 0 1 1 1v3`}],[`path`,{d:`M12 12V8`}]];ja(e,W({name:`network`},()=>n,{get iconNode(){return r}}))}var ks=new Set([`$$slots`,`$$events`,`$$legacy`]);function As(e,t){let n=j(t,ks),r=[[`path`,{d:`M11 21.73a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73z`}],[`path`,{d:`M12 22V12`}],[`polyline`,{points:`3.29 7 12 12 20.71 7`}],[`path`,{d:`m7.5 4.27 9 5.15`}]];ja(e,W({name:`package`},()=>n,{get iconNode(){return r}}))}var js=new Set([`$$slots`,`$$events`,`$$legacy`]);function Ms(e,t){let n=j(t,js),r=[[`path`,{d:`M12 22a1 1 0 0 1 0-20 10 9 0 0 1 10 9 5 5 0 0 1-5 5h-2.25a1.75 1.75 0 0 0-1.4 2.8l.3.4a1.75 1.75 0 0 1-1.4 2.8z`}],[`circle`,{cx:`13.5`,cy:`6.5`,r:`.5`,fill:`currentColor`}],[`circle`,{cx:`17.5`,cy:`10.5`,r:`.5`,fill:`currentColor`}],[`circle`,{cx:`6.5`,cy:`12.5`,r:`.5`,fill:`currentColor`}],[`circle`,{cx:`8.5`,cy:`7.5`,r:`.5`,fill:`currentColor`}]];ja(e,W({name:`palette`},()=>n,{get iconNode(){return r}}))}var Ns=new Set([`$$slots`,`$$events`,`$$legacy`]);function Ps(e,t){let n=j(t,Ns),r=[[`path`,{d:`M15.707 21.293a1 1 0 0 1-1.414 0l-1.586-1.586a1 1 0 0 1 0-1.414l5.586-5.586a1 1 0 0 1 1.414 0l1.586 1.586a1 1 0 0 1 0 1.414z`}],[`path`,{d:`m18 13-1.375-6.874a1 1 0 0 0-.746-.776L3.235 2.028a1 1 0 0 0-1.207 1.207L5.35 15.879a1 1 0 0 0 .776.746L13 18`}],[`path`,{d:`m2.3 2.3 7.286 7.286`}],[`circle`,{cx:`11`,cy:`11`,r:`2`}]];ja(e,W({name:`pen-tool`},()=>n,{get iconNode(){return r}}))}var Fs=new Set([`$$slots`,`$$events`,`$$legacy`]);function Is(e,t){let n=j(t,Fs),r=[[`path`,{d:`M5 12h14`}],[`path`,{d:`M12 5v14`}]];ja(e,W({name:`plus`},()=>n,{get iconNode(){return r}}))}var Ls=new Set([`$$slots`,`$$events`,`$$legacy`]);function Rs(e,t){let n=j(t,Ls),r=[[`path`,{d:`M19.07 4.93A10 10 0 0 0 6.99 3.34`}],[`path`,{d:`M4 6h.01`}],[`path`,{d:`M2.29 9.62A10 10 0 1 0 21.31 8.35`}],[`path`,{d:`M16.24 7.76A6 6 0 1 0 8.23 16.67`}],[`path`,{d:`M12 18h.01`}],[`path`,{d:`M17.99 11.66A6 6 0 0 1 15.77 16.67`}],[`circle`,{cx:`12`,cy:`12`,r:`2`}],[`path`,{d:`m13.41 10.59 5.66-5.66`}]];ja(e,W({name:`radar`},()=>n,{get iconNode(){return r}}))}var zs=new Set([`$$slots`,`$$events`,`$$legacy`]);function Bs(e,t){let n=j(t,zs),r=[[`path`,{d:`M22 17a10 10 0 0 0-20 0`}],[`path`,{d:`M6 17a6 6 0 0 1 12 0`}],[`path`,{d:`M10 17a2 2 0 0 1 4 0`}]];ja(e,W({name:`rainbow`},()=>n,{get iconNode(){return r}}))}var Vs=new Set([`$$slots`,`$$events`,`$$legacy`]);function Hs(e,t){let n=j(t,Vs),r=[[`path`,{d:`M21.3 15.3a2.4 2.4 0 0 1 0 3.4l-2.6 2.6a2.4 2.4 0 0 1-3.4 0L2.7 8.7a2.41 2.41 0 0 1 0-3.4l2.6-2.6a2.41 2.41 0 0 1 3.4 0Z`}],[`path`,{d:`m14.5 12.5 2-2`}],[`path`,{d:`m11.5 9.5 2-2`}],[`path`,{d:`m8.5 6.5 2-2`}],[`path`,{d:`m17.5 15.5 2-2`}]];ja(e,W({name:`ruler`},()=>n,{get iconNode(){return r}}))}var Us=new Set([`$$slots`,`$$events`,`$$legacy`]);function Ws(e,t){let n=j(t,Us),r=[[`path`,{d:`M15.2 3a2 2 0 0 1 1.4.6l3.8 3.8a2 2 0 0 1 .6 1.4V19a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2z`}],[`path`,{d:`M17 21v-7a1 1 0 0 0-1-1H8a1 1 0 0 0-1 1v7`}],[`path`,{d:`M7 3v4a1 1 0 0 0 1 1h7`}]];ja(e,W({name:`save`},()=>n,{get iconNode(){return r}}))}var Gs=new Set([`$$slots`,`$$events`,`$$legacy`]);function Ks(e,t){let n=j(t,Gs),r=[[`path`,{d:`M3 7V5a2 2 0 0 1 2-2h2`}],[`path`,{d:`M17 3h2a2 2 0 0 1 2 2v2`}],[`path`,{d:`M21 17v2a2 2 0 0 1-2 2h-2`}],[`path`,{d:`M7 21H5a2 2 0 0 1-2-2v-2`}]];ja(e,W({name:`scan`},()=>n,{get iconNode(){return r}}))}var qs=new Set([`$$slots`,`$$events`,`$$legacy`]);function Js(e,t){let n=j(t,qs),r=[[`path`,{d:`M15 12h-5`}],[`path`,{d:`M15 8h-5`}],[`path`,{d:`M19 17V5a2 2 0 0 0-2-2H4`}],[`path`,{d:`M8 21h12a2 2 0 0 0 2-2v-1a1 1 0 0 0-1-1H11a1 1 0 0 0-1 1v1a2 2 0 1 1-4 0V5a2 2 0 1 0-4 0v2a1 1 0 0 0 1 1h3`}]];ja(e,W({name:`scroll-text`},()=>n,{get iconNode(){return r}}))}var Ys=new Set([`$$slots`,`$$events`,`$$legacy`]);function Xs(e,t){let n=j(t,Ys),r=[[`path`,{d:`M9.671 4.136a2.34 2.34 0 0 1 4.659 0 2.34 2.34 0 0 0 3.319 1.915 2.34 2.34 0 0 1 2.33 4.033 2.34 2.34 0 0 0 0 3.831 2.34 2.34 0 0 1-2.33 4.033 2.34 2.34 0 0 0-3.319 1.915 2.34 2.34 0 0 1-4.659 0 2.34 2.34 0 0 0-3.32-1.915 2.34 2.34 0 0 1-2.33-4.033 2.34 2.34 0 0 0 0-3.831A2.34 2.34 0 0 1 6.35 6.051a2.34 2.34 0 0 0 3.319-1.915`}],[`circle`,{cx:`12`,cy:`12`,r:`3`}]];ja(e,W({name:`settings`},()=>n,{get iconNode(){return r}}))}var Zs=new Set([`$$slots`,`$$events`,`$$legacy`]);function Qs(e,t){let n=j(t,Zs),r=[[`path`,{d:`M18 7V5a1 1 0 0 0-1-1H6.5a.5.5 0 0 0-.4.8l4.5 6a2 2 0 0 1 0 2.4l-4.5 6a.5.5 0 0 0 .4.8H17a1 1 0 0 0 1-1v-2`}]];ja(e,W({name:`sigma`},()=>n,{get iconNode(){return r}}))}var $s=new Set([`$$slots`,`$$events`,`$$legacy`]);function ec(e,t){let n=j(t,$s),r=[[`path`,{d:`M10 5H3`}],[`path`,{d:`M12 19H3`}],[`path`,{d:`M14 3v4`}],[`path`,{d:`M16 17v4`}],[`path`,{d:`M21 12h-9`}],[`path`,{d:`M21 19h-5`}],[`path`,{d:`M21 5h-7`}],[`path`,{d:`M8 10v4`}],[`path`,{d:`M8 12H3`}]];ja(e,W({name:`sliders-horizontal`},()=>n,{get iconNode(){return r}}))}var tc=new Set([`$$slots`,`$$events`,`$$legacy`]);function nc(e,t){let n=j(t,tc),r=[[`path`,{d:`M10 8h4`}],[`path`,{d:`M12 21v-9`}],[`path`,{d:`M12 8V3`}],[`path`,{d:`M17 16h4`}],[`path`,{d:`M19 12V3`}],[`path`,{d:`M19 21v-5`}],[`path`,{d:`M3 14h4`}],[`path`,{d:`M5 10V3`}],[`path`,{d:`M5 21v-7`}]];ja(e,W({name:`sliders-vertical`},()=>n,{get iconNode(){return r}}))}var rc=new Set([`$$slots`,`$$events`,`$$legacy`]);function ic(e,t){let n=j(t,rc),r=[[`path`,{d:`m10 20-1.25-2.5L6 18`}],[`path`,{d:`M10 4 8.75 6.5 6 6`}],[`path`,{d:`m14 20 1.25-2.5L18 18`}],[`path`,{d:`m14 4 1.25 2.5L18 6`}],[`path`,{d:`m17 21-3-6h-4`}],[`path`,{d:`m17 3-3 6 1.5 3`}],[`path`,{d:`M2 12h6.5L10 9`}],[`path`,{d:`m20 10-1.5 2 1.5 2`}],[`path`,{d:`M22 12h-6.5L14 15`}],[`path`,{d:`m4 10 1.5 2L4 14`}],[`path`,{d:`m7 21 3-6-1.5-3`}],[`path`,{d:`m7 3 3 6h4`}]];ja(e,W({name:`snowflake`},()=>n,{get iconNode(){return r}}))}var ac=new Set([`$$slots`,`$$events`,`$$legacy`]);function oc(e,t){let n=j(t,ac),r=[[`path`,{d:`M11.017 2.814a1 1 0 0 1 1.966 0l1.051 5.558a2 2 0 0 0 1.594 1.594l5.558 1.051a1 1 0 0 1 0 1.966l-5.558 1.051a2 2 0 0 0-1.594 1.594l-1.051 5.558a1 1 0 0 1-1.966 0l-1.051-5.558a2 2 0 0 0-1.594-1.594l-5.558-1.051a1 1 0 0 1 0-1.966l5.558-1.051a2 2 0 0 0 1.594-1.594z`}],[`path`,{d:`M20 2v4`}],[`path`,{d:`M22 4h-4`}],[`circle`,{cx:`4`,cy:`20`,r:`2`}]];ja(e,W({name:`sparkles`},()=>n,{get iconNode(){return r}}))}var sc=new Set([`$$slots`,`$$events`,`$$legacy`]);function cc(e,t){let n=j(t,sc),r=[[`circle`,{cx:`19`,cy:`5`,r:`2`}],[`circle`,{cx:`5`,cy:`19`,r:`2`}],[`path`,{d:`M5 17A12 12 0 0 1 17 5`}]];ja(e,W({name:`spline`},()=>n,{get iconNode(){return r}}))}var lc=new Set([`$$slots`,`$$events`,`$$legacy`]);function uc(e,t){let n=j(t,lc),r=[[`rect`,{width:`18`,height:`18`,x:`3`,y:`3`,rx:`2`}]];ja(e,W({name:`square`},()=>n,{get iconNode(){return r}}))}var dc=new Set([`$$slots`,`$$events`,`$$legacy`]);function fc(e,t){let n=j(t,dc),r=[[`path`,{d:`M21 9a2.4 2.4 0 0 0-.706-1.706l-3.588-3.588A2.4 2.4 0 0 0 15 3H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2z`}],[`path`,{d:`M15 3v5a1 1 0 0 0 1 1h5`}]];ja(e,W({name:`sticky-note`},()=>n,{get iconNode(){return r}}))}var pc=new Set([`$$slots`,`$$events`,`$$legacy`]);function mc(e,t){let n=j(t,pc),r=[[`circle`,{cx:`12`,cy:`12`,r:`4`}],[`path`,{d:`M12 2v2`}],[`path`,{d:`M12 20v2`}],[`path`,{d:`m4.93 4.93 1.41 1.41`}],[`path`,{d:`m17.66 17.66 1.41 1.41`}],[`path`,{d:`M2 12h2`}],[`path`,{d:`M20 12h2`}],[`path`,{d:`m6.34 17.66-1.41 1.41`}],[`path`,{d:`m19.07 4.93-1.41 1.41`}]];ja(e,W({name:`sun`},()=>n,{get iconNode(){return r}}))}var hc=new Set([`$$slots`,`$$events`,`$$legacy`]);function gc(e,t){let n=j(t,hc),r=[[`path`,{d:`M12.586 2.586A2 2 0 0 0 11.172 2H4a2 2 0 0 0-2 2v7.172a2 2 0 0 0 .586 1.414l8.704 8.704a2.426 2.426 0 0 0 3.42 0l6.58-6.58a2.426 2.426 0 0 0 0-3.42z`}],[`circle`,{cx:`7.5`,cy:`7.5`,r:`.5`,fill:`currentColor`}]];ja(e,W({name:`tag`},()=>n,{get iconNode(){return r}}))}var _c=new Set([`$$slots`,`$$events`,`$$legacy`]);function vc(e,t){let n=j(t,_c),r=[[`path`,{d:`m10.065 12.493-6.18 1.318a.934.934 0 0 1-1.108-.702l-.537-2.15a1.07 1.07 0 0 1 .691-1.265l13.504-4.44`}],[`path`,{d:`m13.56 11.747 4.332-.924`}],[`path`,{d:`m16 21-3.105-6.21`}],[`path`,{d:`M16.485 5.94a2 2 0 0 1 1.455-2.425l1.09-.272a1 1 0 0 1 1.212.727l1.515 6.06a1 1 0 0 1-.727 1.213l-1.09.272a2 2 0 0 1-2.425-1.455z`}],[`path`,{d:`m6.158 8.633 1.114 4.456`}],[`path`,{d:`m8 21 3.105-6.21`}],[`circle`,{cx:`12`,cy:`13`,r:`2`}]];ja(e,W({name:`telescope`},()=>n,{get iconNode(){return r}}))}var yc=new Set([`$$slots`,`$$events`,`$$legacy`]);function bc(e,t){let n=j(t,yc),r=[[`path`,{d:`M12 19h8`}],[`path`,{d:`m4 17 6-6-6-6`}]];ja(e,W({name:`terminal`},()=>n,{get iconNode(){return r}}))}var xc=new Set([`$$slots`,`$$events`,`$$legacy`]);function Sc(e,t){let n=j(t,xc),r=[[`line`,{x1:`10`,x2:`14`,y1:`2`,y2:`2`}],[`line`,{x1:`12`,x2:`15`,y1:`14`,y2:`11`}],[`circle`,{cx:`12`,cy:`14`,r:`8`}]];ja(e,W({name:`timer`},()=>n,{get iconNode(){return r}}))}var Cc=new Set([`$$slots`,`$$events`,`$$legacy`]);function wc(e,t){let n=j(t,Cc),r=[[`path`,{d:`M13.73 4a2 2 0 0 0-3.46 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3Z`}]];ja(e,W({name:`triangle`},()=>n,{get iconNode(){return r}}))}var Tc=new Set([`$$slots`,`$$events`,`$$legacy`]);function Ec(e,t){let n=j(t,Tc),r=[[`path`,{d:`M12 4v16`}],[`path`,{d:`M4 7V5a1 1 0 0 1 1-1h14a1 1 0 0 1 1 1v2`}],[`path`,{d:`M9 20h6`}]];ja(e,W({name:`type`},()=>n,{get iconNode(){return r}}))}var Dc=new Set([`$$slots`,`$$events`,`$$legacy`]);function Oc(e,t){let n=j(t,Dc),r=[[`path`,{d:`M11 4.702a.705.705 0 0 0-1.203-.498L6.413 7.587A1.4 1.4 0 0 1 5.416 8H3a1 1 0 0 0-1 1v6a1 1 0 0 0 1 1h2.416a1.4 1.4 0 0 1 .997.413l3.383 3.384A.705.705 0 0 0 11 19.298z`}],[`path`,{d:`M16 9a5 5 0 0 1 0 6`}],[`path`,{d:`M19.364 18.364a9 9 0 0 0 0-12.728`}]];ja(e,W({name:`volume-2`},()=>n,{get iconNode(){return r}}))}var kc=new Set([`$$slots`,`$$events`,`$$legacy`]);function Ac(e,t){let n=j(t,kc),r=[[`path`,{d:`M2 12q2.5 2 5 0t5 0 5 0 5 0`}],[`path`,{d:`M2 19q2.5 2 5 0t5 0 5 0 5 0`}],[`path`,{d:`M2 5q2.5 2 5 0t5 0 5 0 5 0`}]];ja(e,W({name:`waves-horizontal`},()=>n,{get iconNode(){return r}}))}var jc=new Set([`$$slots`,`$$events`,`$$legacy`]);function Mc(e,t){let n=j(t,jc),r=[[`path`,{d:`M12.8 19.6A2 2 0 1 0 14 16H2`}],[`path`,{d:`M17.5 8a2.5 2.5 0 1 1 2 4H2`}],[`path`,{d:`M9.8 4.4A2 2 0 1 1 11 8H2`}]];ja(e,W({name:`wind`},()=>n,{get iconNode(){return r}}))}var Nc=new Set([`$$slots`,`$$events`,`$$legacy`]);function Pc(e,t){let n=j(t,Nc),r=[[`rect`,{width:`8`,height:`8`,x:`3`,y:`3`,rx:`2`}],[`path`,{d:`M7 11v4a2 2 0 0 0 2 2h4`}],[`rect`,{width:`8`,height:`8`,x:`13`,y:`13`,rx:`2`}]];ja(e,W({name:`workflow`},()=>n,{get iconNode(){return r}}))}var Fc=new Set([`$$slots`,`$$events`,`$$legacy`]);function Ic(e,t){let n=j(t,Fc),r=[[`path`,{d:`M18 6 6 18`}],[`path`,{d:`m6 6 12 12`}]];ja(e,W({name:`x`},()=>n,{get iconNode(){return r}}))}var Lc=new Set([`$$slots`,`$$events`,`$$legacy`]);function Rc(e,t){let n=j(t,Lc),r=[[`path`,{d:`M15.914 4a1.5 1.5 0 00-2.474-1.561l-9 9A1.5 1.5 0 005.5 14h4.002a.5.5 0 01.471.666L8.086 20a1.5 1.5 0 002.475 1.56l9-9A1.5 1.5 0 0018.5 10h-3.997a.5.5 0 01-.472-.667z`}]];ja(e,W({name:`zap`},()=>n,{get iconNode(){return r}}))}function zc(e,t){ee(t,!1);let n=Y(),r=V(t,`name`,8),i=V(t,`size`,8,16),a=V(t,`color`,8,void 0),o=V(t,`strokeWidth`,8,2),s=V(t,`class`,8,``),c={Settings:Xs,Plus:Is,X:Ic,Triangle:wc,Ruler:Hs,Timer:Sc,MousePointer2:Ss,Keyboard:is,Eye:Oo,Save:Ws,Palette:Ms,Droplets:Eo,Sun:mc,Sliders:nc,Camera:Ga,Volume2:Oc,Zap:Rc,FileText:Po,FolderOpen:Io,Copy:go,Package:As,Info:ns,Clock:ao,Check:qa,CheckCircle:to,XCircle:ro,MoveUpLeft:ws,Hand:Qo,Waves:Ac,ChevronDown:Ya,ChevronRight:Za,SlidersHorizontal:ec,Network:Os,Workflow:Pc,ScrollText:Js,Type:Ec,Image:es,Folder:Ro,Minus:vs,PenTool:Ps,StickyNote:fc,FileImage:Ao,Square:uc,Box:Ua,Move:Es,Maximize2:gs,Layers:os,GitMerge:Wo,Dice5:So,ListFilter:us,Snowflake:ic,LogIn:fs,LogOut:ms,ArrowUp:La,CloudSun:so,Telescope:vc,Rainbow:Bs,Mountain:bs,Crop:vo,Contrast:mo,Scan:Ks,Spline:cc,Dot:wo,Grid2x2:Ko,Tag:gc,Aperture:Na,Gauge:Bo,Wind:Mc,Combine:fo,Group:Xo,FileOutput:Mo,Sparkles:oc,Binary:za,Radar:Rs,ArrowRightLeft:Fa,Cloud:lo,Blend:Va,Lightbulb:cs,Grid3x3:Jo,Terminal:bc,View:Oo,GitGraph:Ho,Logs:bc,Grid:Jo,Gradient:Va,GitBranch:Ho};J(()=>(A(r()),Xs),()=>{L(n,c[r()]||Xs)}),he();var l=te(),u=G(l);g(u,()=>x(n),(e,t)=>{t(e,{get size(){return i()},get color(){return a()},get strokeWidth(){return o()},get class(){return s()}})}),E(e,l),Ee()}var Bc=u(`<span aria-hidden="true"><!></span>`);function Vc(e,t){ee(t,!1);let n=Y(),r=V(t,`icon`,8),i=V(t,`size`,8,14),a=V(t,`class`,8,``);J(()=>A(r()),()=>{L(n,/^[A-Z][A-Za-z0-9]+$/.test(r()))}),he(),ue();var s=Bc(),c=M(s),l=e=>{zc(e,{get name(){return r()},get size(){return i()}})},u=e=>{var t=ve();K(()=>D(t,r())),E(e,t)};Z(c,e=>{x(n)?e(l):e(u,-1)}),o(s),K(()=>v(s,1,H(a()),`svelte-4q1po5`)),E(e,s),Ee()}var Hc=[`width`,`height`];function Uc(e,t=200){let n=typeof e==`number`&&Number.isFinite(e)?e:NaN;return Number.isFinite(n)?n<=16?Math.max(t,80):Math.round(n):t}function Wc(e){return Math.max(0,Math.round(typeof e==`number`&&Number.isFinite(e)?e:0))}function Gc(e,t,n){if(e.has(t))return e;let r=new Map(e);return r.set(t,{size:Uc(n.size),minimum:Wc(n.minimum),axis:n.axis}),r}function Kc(e,t){let n=e.get(t);if(!n)return{map:e,restore:null};let r=new Map(e);return r.delete(t),{map:r,restore:n}}function qc(e,t){if(!e.has(t))return e;let n=new Map(e);return n.delete(t),n}function Jc(e){return Object.fromEntries(e)}function Yc(e){let t=new Map;if(!e||typeof e!=`object`||Array.isArray(e))return t;for(let[n,r]of Object.entries(e)){if(!n||!r||typeof r!=`object`)continue;let e=r;Hc.includes(e.axis)&&(typeof e.size!=`number`||!Number.isFinite(e.size)||t.set(n,{size:Uc(e.size),minimum:Wc(e.minimum),axis:e.axis}))}return t}function Xc(e){let t=[],n=(e,n)=>{let r=e?.data?.id;typeof r==`string`&&t.push({id:r,size:Number(e.size)||0,axis:n})},r=(e,t)=>{if(e?.type!==`branch`||!Array.isArray(e.data))return;let i=t===`width`?`height`:`width`;for(let a of e.data)a?.type===`leaf`?n(a,t):r(a,i)},i=e?.orientation===Ft.HORIZONTAL?`width`:`height`;return e?.root?.type===`leaf`?n(e.root,i):r(e?.root,i),t}function Zc(e,t){return Xc(e).find(e=>e.id===t)?.axis??null}function Qc(e,t){let n=t;for(let t of Xc(e))t.size>16||n.has(t.id)||(n=Gc(n,t.id,{size:void 0,minimum:0,axis:t.axis}));return n}var $c=`cascade-dockview-layout`,el=`cascade-dockview-folds`;function tl(e){return e.panel?.id??null}var nl=[{type:`graph`,label:`Graph`,icon:`⬡`},{type:`viewer`,label:`Viewer`,icon:`👁`},{type:`inspector`,label:`Parameters`,icon:`⚙`},{type:`definition`,label:`Definition`,icon:`❖`},{type:`info`,label:`Node Info`,icon:`ℹ`},{type:`log`,label:`Log`,icon:`📋`},{type:`timeline`,label:`Timeline`,icon:`⏱`},{type:`agent`,label:`Agent`,icon:`✦`}],rl=w([...nl]);function il(e){rl.set([...nl,...e.map(e=>({type:`project:${e.name}`,label:e.title,icon:e.icon??`▣`}))])}var al=w(new Map);function ol(e){return N(al).has(e)}function sl(e,t){let r=N(rl).find(e=>e.type===t)?.icon;if(!r)return;let i=n(Vc,{target:e,props:{icon:r,size:12}});return()=>{d(i)}}var cl=new class{#e;get _api(){return x(this.#e)}set _api(e){L(this.#e,e,!0)}#t;get _activePanel(){return x(this.#t)}set _activePanel(e){L(this.#t,e,!0)}#n;get _panels(){return x(this.#n)}set _panels(e){L(this.#n,e,!0)}#r;get _isReady(){return x(this.#r)}set _isReady(e){L(this.#r,e,!0)}constructor(){this.#e=_e(null),this.#t=_e(null),this.#n=_e(de(new Map)),this.#r=_e(!1),this._groupChrome=new Map,this.onAddPanelClick=null}get api(){return this._api}get activePanel(){return this._activePanel}get panels(){return this._panels}get isReady(){return this._isReady}get minimizedGroups(){return N(al)}initialize(e){let t=this,n=ma(e,{createComponent:e=>wa({id:e.id,type:e.name,title:e.name.charAt(0).toUpperCase()+e.name.slice(1)}),createRightHeaderActionComponent:e=>{let n=document.createElement(`div`);n.className=`cascade-header-actions`;let r=document.createElement(`button`);r.className=`cascade-fold-btn`;let i=e=>{r.classList.toggle(`folded`,e),r.title=e?`Unfold panel`:`Fold panel to a strip`,r.setAttribute(`aria-label`,r.title),r.setAttribute(`aria-expanded`,e?`false`:`true`),r.innerHTML=e?`<svg width="10" height="10" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 15 12 9 18 15"/></svg>`:`<svg width="10" height="10" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 9 12 15 18 9"/></svg>`};i(!1),r.onclick=n=>{n.stopPropagation(),t.toggleMinimizeGroup(e.id)},n.appendChild(r);let a=document.createElement(`button`);a.className=`cascade-add-panel-btn`,a.innerHTML=`+`,a.title=`Add panel`,a.onclick=n=>{n.stopPropagation();let r=a.getBoundingClientRect(),i=e.id;t.onAddPanelClick&&t.onAddPanelClick(i,{x:r.left,y:r.bottom})},n.appendChild(a);let o=null;return{element:n,init:()=>{t.registerGroupChrome(e.id,n),o=al.subscribe(t=>i(t.has(e.id)))},dispose:()=>{o?.(),t.unregisterGroupChrome(e.id)}}},createTabComponent:e=>{let n=document.createElement(`div`);n.className=`cascade-tab`;let r=document.createElement(`button`);r.className=`cascade-tab-lock`,r.innerHTML=`<svg width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="3" y="11" width="18" height="11" rx="2" ry="2"/><path d="M7 11V7a5 5 0 0 1 10 0v4"/></svg>`,r.title=`Lock to current node`,r.style.display=`none`,n.appendChild(r);let i=document.createElement(`span`);i.className=`cascade-tab-title`;let a=document.createElement(`span`);a.className=`cascade-tab-icon`,n.appendChild(a),n.appendChild(i);let o=document.createElement(`button`);o.className=`cascade-tab-close`,o.innerHTML=`×`,o.title=`Close`,n.appendChild(o);let s=null,c=``,l=``,u=null,d=null,f,p=()=>{let e=N(_a).get(c),t=N(ga),n=!!(t?.selectedNode||t?.selectedAnnotation);e?.isLocked?(r.classList.add(`locked`),r.innerHTML=`<svg width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="3" y="11" width="18" height="11" rx="2" ry="2"/><path d="M7 11V7a5 5 0 0 1 10 0v4"/></svg>`,r.title=`Unlock (follow selection)`,r.disabled=!1):(r.classList.remove(`locked`),r.innerHTML=`<svg width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="3" y="11" width="18" height="11" rx="2" ry="2"/><path d="M7 11V7a5 5 0 0 1 5-5 5 5 0 0 1 5 5v4"/><line x1="17" y1="7" x2="21" y2="3"/></svg>`,r.title=n?`Lock to current node`:`Lock to empty view`,r.disabled=!1)};return{element:n,init:e=>{s=e.api,c=e.api.id,l=e.params?.type||``,f=sl(a,l),f||a.remove(),(l===`viewer`||l===`inspector`)&&(r.style.display=`flex`,u=_a.subscribe(()=>{p()}),d=ga.subscribe(()=>{p()}),r.onclick=e=>{e.stopPropagation(),va(c)},p()),i.textContent=s.title||`Untitled`,s.onDidTitleChange(()=>{i.textContent=s.title||`Untitled`}),i.ondblclick=e=>{e.stopPropagation();let n=s?.group;n?.id&&t.toggleMinimizeGroup(n.id)},o.onclick=e=>{e.stopPropagation(),s.close()}},dispose:()=>{s=null,u&&u(),d&&d(),f?.()}}},disableFloatingGroups:!0,defaultTabComponent:`cascadeTab`});this._api=n,n.onDidActivePanelChange(e=>{this._activePanel=tl(e)}),n.onDidAddPanel(e=>{let t=e.params;t&&(this._panels=new Map(this._panels).set(e.id,t))}),n.onDidRemovePanel(e=>{let t=new Map(this._panels);t.delete(e.id),this._panels=t}),this.loadLayout(),this._isReady=!0}addPanel(e){if(!this._api)return;let t={id:e.id,type:e.type,title:e.title,...e.params},n={id:e.id,component:e.type,title:e.title,params:t};if(e.referencePanel&&e.position){let t=this._api.getPanel(e.referencePanel);t&&(n.position={referencePanel:t,direction:e.position===`within`?void 0:e.position})}this._api.addPanel(n)}removePanel(e){if(!this._api)return;let t=this._api.getPanel(e);t&&t.api.close()}focusPanel(e){if(!this._api)return;let t=this._api.getPanel(e);t&&(this.unfoldGroupContainingPanel(e),t.api.setActive())}focusOrOpenPanel(e,t,n,r,i=`within`){if(!this._api)return;if(this._api.getPanel(e)){this.focusPanel(e);return}let a=r&&this._api.getPanel(r)?r:void 0;this.addPanel({id:e,type:t,title:n,position:a?i:void 0,referencePanel:a}),this.focusPanel(e)}hasPanel(e){return this._panels.has(e)}addPanelToGroup(e,t){if(!this._api)return;let n=e.startsWith(`project:`)?e.slice(8):void 0,r=n?e:`${e}-${Date.now()}`;if(n&&this._panels.has(r)){this.focusPanel(r);return}let i=N(rl).find(t=>t.type===e)?.label??e.charAt(0).toUpperCase()+e.slice(1),a=this._api.getGroup(t);if(!a)return;let o=a.panels,s=o.length>0?o[0]:null;this.addPanel({id:r,type:e,title:i,position:`within`,referencePanel:s?.id,params:n?{projectPanelName:n}:void 0})}openProjectPanel(e,t){let n=`project:${e}`,r=t?`${n}:${t}`:n;if(this._panels.has(r)){this.focusPanel(r);return}let i=this._activePanel||[...this._panels.keys()][0];this.addPanel({id:r,type:n,title:N(rl).find(e=>e.type===n)?.label??e,position:i?`within`:void 0,referencePanel:i,params:{projectPanelName:e,sourceNodeId:t}})}isActivePanelMaximized(){return this._api?this._api.hasMaximizedGroup?.()??!1:!1}toggleMaximizeActivePanel(){if(this._api){if(this._api.hasMaximizedGroup())this._api.exitMaximizedGroup();else{let e=this._api.getPanel(this._activePanel||``);e&&this._api.maximizeGroup(e)}}}groupElement(e){return this._groupChrome.get(e)?.closest(`.dv-groupview`)??null}registerGroupChrome(e,t){this._groupChrome.set(e,t);let n=()=>this.applyFoldClass(e,ol(e));n(),this.groupElement(e)||queueMicrotask(n)}unregisterGroupChrome(e){this._groupChrome.delete(e)}applyFoldClass(e,t){this.groupElement(e)?.classList.toggle(`cascade-group-folded`,t)}foldGroup(e){if(!this._api||ol(e))return;let t=this._api.getGroup(e);if(!t)return;let n=Zc(this._api.toJSON().grid,e);n&&(al.update(r=>Gc(r,e,{size:t[n],minimum:n===`width`?t.minimumWidth:t.minimumHeight,axis:n})),t.api.setConstraints(n===`width`?{minimumWidth:8}:{minimumHeight:8}),t.api.setSize({[n]:8}),this.applyFoldClass(e,!0),this.saveFolds(),this.saveLayout())}unfoldGroup(e){if(!this._api)return;let t=null;if(al.update(n=>{let r=Kc(n,e);return t=r.restore,r.map}),!t)return;let n=t,r=this._api.getGroup(e);this.applyFoldClass(e,!1),r&&(r.api.setConstraints(n.axis===`width`?{minimumWidth:n.minimum}:{minimumHeight:n.minimum}),r.api.setSize({[n.axis]:n.size})),this.saveFolds(),this.saveLayout()}toggleMinimizeGroup(e){ol(e)?this.unfoldGroup(e):this.foldGroup(e)}unfoldGroupContainingPanel(e){let t=this._api?.getPanel(e)?.group?.id;t&&ol(t)&&this.unfoldGroup(t)}unfoldAllGroups(){for(let e of[...N(al).keys()])this.unfoldGroup(e)}saveFolds(){try{let e=N(al);e.size===0?localStorage.removeItem(el):localStorage.setItem(el,JSON.stringify(Jc(e)))}catch(e){console.warn(`Failed to save folded groups:`,e)}}restoreFolds(e){if(!this._api)return;let t=new Map;try{let e=localStorage.getItem(el);e&&(t=Yc(JSON.parse(e)))}catch(e){console.warn(`Failed to parse folded groups:`,e)}t=Qc(e.grid,t);let n=new Set(this._api.groups.map(e=>e.id));for(let e of[...t.keys()])n.has(e)||(t=qc(t,e));al.set(t);for(let[e,n]of t){let t=this._api.getGroup(e);t&&(t.api.setConstraints(n.axis===`width`?{minimumWidth:8}:{minimumHeight:8}),t.api.setSize({[n.axis]:8}),this.applyFoldClass(e,!0))}this.saveFolds()}openCodeEditor(e,t){let n=`code-${e}`;if(this._panels.has(n)){this.focusPanel(n);return}this.addPanel({id:n,type:`code`,title:`Code: ${t}`,position:`within`,referencePanel:`graph-main`,params:{nodeId:e}})}filterCodePanelsFromLayout(e){let t=new Set(N(rl).map(e=>e.type));if(e.panels){let n={};for(let[r,i]of Object.entries(e.panels)){let e=i?.contentComponent;!r.startsWith(`code-`)&&(!String(e).startsWith(`project:`)||t.has(e))&&(n[r]=i)}e.panels=n}e.grid?.root&&this.filterCodePanelsFromGridNode(e.grid.root,new Set(Object.keys(e.panels??{})))}filterCodePanelsFromGridNode(e,t){if(e){if(e.type===`leaf`&&e.data?.views)e.data.views=e.data.views.filter(e=>!e.startsWith(`code-`)&&(!t||t.has(e))),e.data.activeView?.startsWith(`code-`)&&(e.data.activeView=e.data.views[0]||null);else if(e.type===`branch`&&e.data)for(let n of e.data)this.filterCodePanelsFromGridNode(n,t)}}saveLayout(){if(this._api)try{let e=this._api.toJSON();localStorage.setItem($c,JSON.stringify(e))}catch(e){console.warn(`Failed to save layout:`,e)}}loadLayout(e){if(!this._api)return;let t=e,n=!1;if(!t)try{let e=localStorage.getItem($c);e&&(t=JSON.parse(e),n=!0,t&&this.filterCodePanelsFromLayout(t))}catch(e){console.warn(`Failed to parse saved layout:`,e),localStorage.removeItem($c)}t||=this.getDefaultLayout();try{this._api.fromJSON(t),this.restoreFolds(t)}catch(e){if(console.warn(`Failed to load layout:`,e),n){localStorage.removeItem($c);try{this._api.fromJSON(this.getDefaultLayout())}catch(e){console.error(`Failed to load default layout:`,e),this.createDefaultPanels()}}else console.error(`Default layout failed, creating panels manually`),this.createDefaultPanels()}}createDefaultPanels(){if(this._api)try{this._api.addPanel({id:`graph-main`,component:`graph`,title:`Graph`,params:{id:`graph-main`,type:`graph`,title:`Graph`}}),this._api.addPanel({id:`timeline-main`,component:`timeline`,title:`Timeline`,position:{referencePanel:`graph-main`,direction:`below`},params:{id:`timeline-main`,type:`timeline`,title:`Timeline`}}),this._api.addPanel({id:`viewer-main`,component:`viewer`,title:`Viewer`,position:{referencePanel:`graph-main`,direction:`right`},params:{id:`viewer-main`,type:`viewer`,title:`Viewer`}}),this._api.addPanel({id:`log-main`,component:`log`,title:`Log`,position:{referencePanel:`viewer-main`,direction:`below`},params:{id:`log-main`,type:`log`,title:`Log`}}),this._api.addPanel({id:`agent-main`,component:`agent`,title:`Agent`,position:{referencePanel:`log-main`,direction:`within`},params:{id:`agent-main`,type:`agent`,title:`Agent`}}),this._api.addPanel({id:`inspector-main`,component:`inspector`,title:`Parameters`,position:{referencePanel:`viewer-main`,direction:`right`},params:{id:`inspector-main`,type:`inspector`,title:`Parameters`}}),this._api.addPanel({id:`definition-main`,component:`definition`,title:`Definition`,position:{referencePanel:`inspector-main`,direction:`within`},params:{id:`definition-main`,type:`definition`,title:`Definition`}})}catch(e){console.error(`Failed to create default panels:`,e)}}resetLayout(){this._api&&(al.set(new Map),this.saveFolds(),this._api.clear(),this._api.fromJSON(this.getDefaultLayout()),this.saveLayout())}getDefaultLayout(){return{grid:{root:{type:`branch`,data:[{type:`branch`,data:[{type:`leaf`,data:{views:[`graph-main`],activeView:`graph-main`,id:`group-graph`},size:620},{type:`leaf`,data:{views:[`timeline-main`],activeView:`timeline-main`,id:`group-timeline`},size:180}],size:500},{type:`branch`,data:[{type:`leaf`,data:{views:[`viewer-main`],activeView:`viewer-main`,id:`group-viewer`},size:600},{type:`leaf`,data:{views:[`log-main`,`agent-main`],activeView:`log-main`,id:`group-log`},size:200}],size:250},{type:`leaf`,data:{views:[`inspector-main`,`definition-main`],activeView:`inspector-main`,id:`group-inspector`},size:250}]},width:1e3,height:800,orientation:Ft.HORIZONTAL},panels:{"graph-main":{id:`graph-main`,contentComponent:`graph`,title:`Graph`,params:{id:`graph-main`,type:`graph`,title:`Graph`}},"viewer-main":{id:`viewer-main`,contentComponent:`viewer`,title:`Viewer`,params:{id:`viewer-main`,type:`viewer`,title:`Viewer`}},"inspector-main":{id:`inspector-main`,contentComponent:`inspector`,title:`Parameters`,params:{id:`inspector-main`,type:`inspector`,title:`Parameters`}},"definition-main":{id:`definition-main`,contentComponent:`definition`,title:`Definition`,params:{id:`definition-main`,type:`definition`,title:`Definition`}},"timeline-main":{id:`timeline-main`,contentComponent:`timeline`,title:`Timeline`,params:{id:`timeline-main`,type:`timeline`,title:`Timeline`}},"log-main":{id:`log-main`,contentComponent:`log`,title:`Log`,params:{id:`log-main`,type:`log`,title:`Log`}},"agent-main":{id:`agent-main`,contentComponent:`agent`,title:`Agent`,params:{id:`agent-main`,type:`agent`,title:`Agent`}}},activeGroup:`group-graph`}}exportLayout(){return this._api?.toJSON()??null}dispose(){this.saveLayout(),this._api?.dispose(),this._api=null,this._activePanel=null,this._isReady=!1,this._panels=new Map,this._groupChrome.clear()}};function ll(e){if(typeof e==`object`&&!Array.isArray(e)&&`r`in e&&`g`in e&&`b`in e){let t=e,n=t.r<=1&&t.g<=1&&t.b<=1;return{r:n?t.r:t.r/255,g:n?t.g:t.g/255,b:n?t.b:t.b/255,a:t.a===void 0?1:n?t.a:t.a/255}}if(Array.isArray(e)){let t=e.every(e=>e<=1);return{r:t?e[0]:e[0]/255,g:t?e[1]:e[1]/255,b:t?e[2]:e[2]/255,a:e[3]===void 0?1:t?e[3]:e[3]/255}}if(typeof e==`string`){let t=e.match(/rgb\s*\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*\)/);if(t)return{r:parseInt(t[1],10)/255,g:parseInt(t[2],10)/255,b:parseInt(t[3],10)/255,a:1};let n=e.replace(`#`,``);if(n.length===3||n.length===6){let e=n.length===3?n.split(``).map(e=>e+e).join(``):n,t=/^([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(e);if(t)return{r:parseInt(t[1],16)/255,g:parseInt(t[2],16)/255,b:parseInt(t[3],16)/255,a:1}}}return{r:0,g:0,b:0,a:1}}function ul(e){let t=Math.round(e.r*255),n=Math.round(e.g*255),r=Math.round(e.b*255),i=e.a===void 0?1:e.a;return i<1?`rgba(${t},${n},${r},${i})`:`rgb(${t},${n},${r})`}function dl(e){return`#${Math.round(e.r*255).toString(16).padStart(2,`0`)}${Math.round(e.g*255).toString(16).padStart(2,`0`)}${Math.round(e.b*255).toString(16).padStart(2,`0`)}`.toUpperCase()}function fl(e){if(typeof e==`string`)return e.startsWith(`#`)||e.startsWith(`rgb(`);if(typeof e==`object`&&e){if(`r`in e&&`g`in e&&`b`in e)return!0;if(Array.isArray(e)&&(e.length===3||e.length===4))return e.every(e=>typeof e==`number`)}return!1}var pl=/^#(?:[0-9a-fA-F]{3,4}|[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$/;function ml(e){return Number.isFinite(e)?e<0?0:e>1?1:e:0}function hl(e){return Math.round(ml(e)*255)}function gl(e){return hl(e).toString(16).padStart(2,`0`)}function _l(e){return String(Number(ml(e).toFixed(4)))}function vl(e){return(e.length<=4?[...e].map(e=>`${e}${e}`):e.match(/../g)??[]).map(e=>Number.parseInt(e,16)/255)}var yl=Object.freeze({fromHex(e){if(!pl.test(e))throw TypeError(`color/invalid-hex: ${e} is not #rgb, #rgba, #rrggbb or #rrggbbaa`);let t=vl(e.slice(1));return[t[0],t[1],t[2],t[3]??1]},isHex(e){return typeof e==`string`&&pl.test(e)},toHex(e,t=!1){return`#${gl(e[0])}${gl(e[1])}${gl(e[2])}${t?gl(e[3]):``}`},toString(e){let t=`${hl(e[0])}, ${hl(e[1])}, ${hl(e[2])}`;return ml(e[3])>=1?`rgb(${t})`:`rgba(${t}, ${_l(e[3])})`},alpha(e){return ml(e[3])},opaque(e){return[ml(e[0]),ml(e[1]),ml(e[2]),1]},fromComponents(e,t=0,n=4){let r=r=>r<n?ml(e[t+r]??0):0;return[r(0),r(1),r(2),n<4?1:r(3)]}}),bl=[`poly`,`bezier`,`mesh`,`packed`],xl=new Set([`f32`,`f64`,`i32`,`u8`]),Sl=/^[A-Za-z_][A-Za-z0-9_]*$/,Cl=new Set([`__proto__`,`prototype`,`constructor`]);function wl(e,t){throw TypeError(`geometry/${e}: ${t}`)}function Tl(){return{vertexPoints:new Int32Array,offsets:Int32Array.of(0),kinds:new Uint8Array,closed:new Uint8Array}}function El(e){return e===`f64`?Float64Array:e===`f32`?Float32Array:e===`i32`?Int32Array:Uint8Array}function Dl(e,t){return Number.isFinite(t)?e===`f64`||e===`f32`?!0:Number.isInteger(t)?e===`u8`?t>=0&&t<=255:t>=-2147483648&&t<=2147483647:!1:!1}function Ol(e,t){return(!Number.isSafeInteger(t)||t<0)&&wl(`attribute-length`,`attribute array length must be a non-negative safe integer`),e===`f64`?new Float64Array(t):e===`f32`?new Float32Array(t):e===`i32`?new Int32Array(t):new Uint8Array(t)}function kl(e,t){let n=Ol(e,t.length);for(let r=0;r<t.length;r+=1){let i=t[r];Dl(e,i)||wl(`attribute-value`,`${String(i)} cannot be represented as ${e}`),n[r]=i,Number.isFinite(n[r])||wl(`attribute-value`,`${String(i)} overflows ${e}`)}return n}function Al(e){return e.storage===`string`}function jl(e,t){return t===`point`?e.pointCount:t===`vertex`?e.vertexCount:t===`primitive`?e.primitiveCount:1}function Ml(e,t){(!Sl.test(e)||Cl.has(e))&&wl(`invalid-name`,`${t}.${e} is not a valid attribute name`)}function Nl(e,t,n){for(let[r,i]of Object.entries(e)){if(Ml(r,n),Al(i)){i.data instanceof Int32Array||wl(`attribute-storage`,`${n}.${r} string indices must be Int32Array`),i.size!==1&&wl(`string-size`,`${n}.${r} string attributes have size 1`),i.data.length!==t&&wl(`attribute-length`,`${n}.${r} has ${i.data.length} entries for ${t} elements`);for(let e of i.data)(e<-1||e>=i.table.length)&&wl(`string-index`,`${n}.${r} references table entry ${e}`);(!Array.isArray(i.table)||i.table.some(e=>typeof e!=`string`))&&wl(`string-table`,`${n}.${r} needs a string table`);continue}(!Number.isInteger(i.size)||i.size<1)&&wl(`attribute-size`,`${n}.${r} needs a size of at least 1`),xl.has(i.storage)||wl(`attribute-storage`,`${n}.${r} has an unknown storage ${String(i.storage)}`),i.data instanceof El(i.storage)||wl(`attribute-storage`,`${n}.${r} declares ${i.storage} but uses ${i.data?.constructor?.name??`unknown storage`}`),i.data.length!==i.size*t&&wl(`attribute-length`,`${n}.${r} has ${i.data.length} values for ${t} elements of size ${i.size}`);for(let e of i.data)Number.isFinite(e)||wl(`non-finite`,`${n}.${r} contains ${String(e)}`)}}function Pl(e,t,n){for(let[r,i]of Object.entries(e)){Ml(r,n),i.length!==t&&wl(`group-length`,`${n}.${r} covers ${i.length} of ${t} elements`);for(let e of i)e!==0&&e!==1&&wl(`group-mask`,`${n}.${r} contains ${e}; masks contain only 0 or 1`)}}function Fl(e){let t=e.pointCount;(!Number.isSafeInteger(t)||t<0)&&wl(`point-count`,`pointCount must be a non-negative safe integer`);let n=e.topology??Tl();(!(n.vertexPoints instanceof Int32Array)||!(n.offsets instanceof Int32Array)||!(n.kinds instanceof Uint8Array)||!(n.closed instanceof Uint8Array))&&wl(`topology-storage`,`topology uses Int32Array indices and Uint8Array flags`);let r=n.offsets.length-1;r<0&&wl(`offsets`,`topology.offsets needs primitiveCount + 1 entries`),n.offsets[0]!==0&&wl(`offsets`,`topology.offsets starts at 0`);for(let e=1;e<=r;e+=1)n.offsets[e]<n.offsets[e-1]&&wl(`offsets`,`topology.offsets must not decrease`);let i=n.offsets[r];i!==n.vertexPoints.length&&wl(`offsets`,`topology.offsets ends at ${i} for ${n.vertexPoints.length} vertices`),(n.kinds.length!==r||n.closed.length!==r)&&wl(`topology-length`,`topology.kinds and topology.closed need ${r} entries`);for(let e of n.vertexPoints)(e<0||e>=t)&&wl(`vertex-point`,`vertex references point ${e}`);for(let e of n.kinds)e>=bl.length&&wl(`primitive-kind`,`unknown primitive kind ${e}`);for(let e of n.closed)e!==0&&e!==1&&wl(`closed-mask`,`topology.closed contains ${e}; flags contain only 0 or 1`);let a=bl.indexOf(`bezier`);for(let e=0;e<r;e+=1){if(n.kinds[e]!==a)continue;let t=n.offsets[e+1]-n.offsets[e],r=n.closed[e]===1;(t<(r?3:4)||(t-+!r)%3!=0)&&wl(`bezier-arity`,`primitive ${e} has ${t} vertices, and a ${r?`closed`:`open`} bezier needs ${r?`3n`:`3n + 1`}`)}let o=e.point,s=o.P;s===void 0&&wl(`missing-position`,`point.P is required on every geometry`),Al(s)&&wl(`position-storage`,`point.P must be a numeric attribute`),s.size!==2&&s.size!==3&&wl(`position-size`,`point.P must have a size of 2 or 3`),Nl(o,t,`point`);let c=e.vertex??{};Nl(c,i,`vertex`);let l=e.primitive??{};Nl(l,r,`primitive`);let u=e.pointGroups??{};Pl(u,t,`pointGroups`);let d=e.primitiveGroups??{};Pl(d,r,`primitiveGroups`);let f=e.detail??{};for(let[e,t]of Object.entries(f))Ml(e,`detail`),typeof t==`number`?Number.isFinite(t)||wl(`non-finite`,`detail.${e} contains ${String(t)}`):typeof t!=`string`&&(!Array.isArray(t)||t.some(e=>!Number.isFinite(e)))&&wl(`detail-value`,`detail.${e} must be a finite number, string, or finite number array`);return Il({kind:`geometry`,pointCount:t,vertexCount:i,primitiveCount:r,topology:n,point:o,vertex:c,primitive:l,detail:f,pointGroups:u,primitiveGroups:d})}function Il(e){for(let t of[`point`,`vertex`,`primitive`]){let n=e[t];for(let e of Object.values(n))Al(e)&&Object.freeze(e.table),Object.freeze(e);Object.freeze(n)}Object.freeze(e.topology);for(let t of Object.values(e.detail))Array.isArray(t)&&Object.freeze(t);return Object.freeze(e.detail),Object.freeze(e.pointGroups),Object.freeze(e.primitiveGroups),Object.freeze(e)}function Ll(e=2){return Fl({pointCount:0,point:{P:{storage:`f64`,size:e,data:new Float64Array}}})}var Rl=`float.int.bool.string.vec2.vec3.vec4.vec2i.vec3i.vec4i.mat2.mat3.mat4.image.texture.geometry.points.lines.polyline.mesh.rects.color.asset.array.object.any`.split(`.`),zl={number:`float`,boolean:`bool`,curves:`polyline`},Bl={int:[`float`,`string`],float:[`string`],bool:[`int`,`float`,`string`],vec2i:[`vec2`],vec3i:[`vec3`],vec4i:[`vec4`],vec4:[`color`],color:[`vec4`]};function Vl(e){return e?zl[e]??e:`any`}function Hl(e,t){let n=Vl(e),r=Vl(t);return n===r||n===`any`||r===`any`||(Bl[n]?.includes(r)??!1)}var Ul=Rl,Wl=new Set(Ul);function Gl(e){return Wl.has(e)}function Kl(e){let t=e.indexOf(`.`);return t>0?e.slice(0,t):null}var ql={vec2:2,vec3:3,vec4:4,vec2i:2,vec3i:3,vec4i:4,mat2:4,mat3:9,mat4:16,color:4};function Jl(e){return e===`int`||e.endsWith(`i`)}var Yl=Vl;function Xl(e,t){return Hl(e,t)}var Zl={float:`var(--type-number)`,int:`var(--type-number)`,bool:`var(--type-bool)`,string:`var(--type-string)`,vec2:`var(--type-vector)`,vec3:`var(--type-vector)`,vec4:`var(--type-vector)`,vec2i:`var(--type-vector)`,vec3i:`var(--type-vector)`,vec4i:`var(--type-vector)`,mat2:`var(--type-matrix)`,mat3:`var(--type-matrix)`,mat4:`var(--type-matrix)`,image:`var(--type-image)`,texture:`var(--type-texture)`,asset:`var(--type-image)`,points:`var(--type-geometry)`,lines:`var(--type-geometry)`,polyline:`var(--type-geometry)`,mesh:`var(--type-mesh)`,rects:`var(--type-geometry)`,curves:`var(--type-geometry)`,color:`var(--type-color)`,array:`var(--type-array)`,object:`var(--type-object)`,any:`var(--type-any)`};function Ql(e){if(!e)return Zl.any;if(Zl[e])return Zl[e];let t=Kl(e);if(!t)return Zl.any;let n=0;for(let e=0;e<t.length;e++)n=n*31+t.charCodeAt(e)>>>0;return`hsl(${n%360}, var(--type-derived-saturation), var(--type-derived-lightness))`}function $l(e){return!!(e&&typeof e==`object`&&typeof e.path==`string`&&Array.isArray(e.size))}function eu(e){if($l(e))return e;if(typeof e!=`string`||!e)return null;let t=e.endsWith(`.npy`);return{path:e,size:[0,0],channels:t?`a`:`rgb`,depth:t?`f32`:`u8`,space:t?`linear`:`srgb`}}function tu(e,t,n,r,i){return n===t?r:r+(e-t)/(n-t)*(i-r)}function nu(e,t,n){return t+e*(n-t)}function ru(e,t,n){return Math.max(t,Math.min(n,e))}function iu(e,t,n){return e+(t-e)*n}function au(e,t,n){if(e<=t)return 0;if(e>=n)return 1;let r=(e-t)/(n-t);return r*r*(3-2*r)}function ou(...e){if(e.length===0)return 0;let t=0,n=[1,2.3,4.7,8.1],r=[1,.5,.25,.125];for(let i=0;i<n.length;i++){let a=0;for(let t=0;t<e.length;t++)a+=Math.sin(e[t]*n[i]*(t+1)*1.7+t*3.14159);t+=a*r[i]}return Math.sin(t*.5)}function su(e){let t=Math.sin(e*12.9898)*43758.5453;return t-Math.floor(t)}function cu(e,t){return String(Math.floor(t)).padStart(e,`0`)}function lu(e){return e*Math.PI/180}function uu(e){return e*180/Math.PI}function du(e){return Math.sin(lu(e))}function fu(e){return Math.cos(lu(e))}function pu(e){return Math.tan(lu(e))}var mu={sin:Math.sin,cos:Math.cos,tan:Math.tan,asin:Math.asin,acos:Math.acos,atan:Math.atan,atan2:Math.atan2,sinh:Math.sinh,cosh:Math.cosh,tanh:Math.tanh,sind:du,cosd:fu,tand:pu,radians:lu,degrees:uu,sqrt:Math.sqrt,cbrt:Math.cbrt,pow:Math.pow,exp:Math.exp,log:Math.log,log2:Math.log2,log10:Math.log10,hypot:Math.hypot,abs:Math.abs,sign:Math.sign,floor:Math.floor,ceil:Math.ceil,round:Math.round,trunc:Math.trunc,min:Math.min,max:Math.max,PI:Math.PI,TAU:Math.PI*2,E:Math.E},hu=/\$(FPS|FF|F|T)\b/g,gu=/\b(?:time|frame|fframe|fps)\b/,_u={FPS:`fps`,FF:`fframe`,F:`frame`,T:`time`};function vu(e){let t=[],n=0,r=0;for(;r<e.length;){let i=e[r];if(i===`"`||i===`'`||i==="`"){t.push({start:n,end:r});let a=i;for(r+=1;r<e.length;){if(e[r]===`\\`){r+=2;continue}if(e[r]===a){r+=1;break}r+=1}n=r;continue}r+=1}return t.push({start:n,end:e.length}),t}function yu(e){if(!e.includes(`$`))return e;let t=``,n=0;for(let r of vu(e))r.start>n&&(t+=e.slice(n,r.start)),t+=e.slice(r.start,r.end).replace(hu,(e,t)=>_u[t]),n=r.end;return n<e.length&&(t+=e.slice(n)),t}function bu(e){return gu.test(e)?!0:(hu.lastIndex=0,hu.test(e))}var xu=class{_frame=1;_fps=30;setFrame(e){Number.isFinite(e)&&(this._frame=Math.max(1,e))}setTime(e){Number.isFinite(e)&&this.setFrame(e*this._fps+1)}setFps(e){Number.isFinite(e)&&(this._fps=Math.max(1,e))}get frame(){return Math.floor(this._frame)}get frameFraction(){return this._frame}get time(){return(this._frame-1)/this._fps}get fps(){return this._fps}snapshot(){return{frame:this.frame,frameFraction:this.frameFraction,time:this.time,fps:this.fps}}},Su=/\b(?:ch|chs|chv)\s*\(\s*['"]([^'"]+)['"]\s*\)/g,Cu=class{timeState=new xu;compiledCache=new Map;scope;constructor(e=null){this.scope=e}setScope(e){this.scope=e}getScope(){return this.scope}setFrame(e){this.timeState.setFrame(e)}setTime(e){this.timeState.setTime(e)}setFps(e){this.timeState.setFps(e)}get time(){return this.timeState.time}get frame(){return this.timeState.frame}get fframe(){return this.timeState.frameFraction}get fps(){return this.timeState.fps}compile(e){let t=this.compiledCache.get(e);if(t)return t;let n=this.extractDependencies(e),r=bu(e),i=yu(e);try{let t=`
|
|
3
|
-
with (context) {
|
|
4
|
-
return (${i});
|
|
5
|
-
}
|
|
6
|
-
`,a={source:e,compiledSource:i,evaluate:Function(`context`,t),dependencies:n,isTimeDependent:r};return this.compiledCache.set(e,a),a}catch(t){return{source:e,compiledSource:i,evaluate:()=>void 0,dependencies:n,isTimeDependent:r,error:t instanceof Error?t.message:String(t)}}}evaluate(e,t){let n=this.compile(e);if(n.error)return{value:void 0,error:n.error};try{return{value:n.evaluate(this.createContext(t))}}catch(e){return{value:void 0,error:e instanceof Error?e.message:String(e)}}}createContext(e){return{time:this.timeState.time,frame:this.timeState.frame,fframe:this.timeState.frameFraction,fps:this.timeState.fps,self:e,ch:t=>this.ch(e,t),chs:t=>this.chs(e,t),chv:t=>this.chv(e,t),opexist:t=>+!!this.scope?.nodeExists(e,t),opinput:t=>this.scope?.inputNode(e,t)??null,fit:tu,fit01:nu,clamp:ru,lerp:iu,smooth:au,noise:ou,random:su,padzero:cu,...mu,Math}}ch(e,t){let n=this.resolveParam(e,t);if(!n)return 0;let r=n.value;return typeof r==`number`?r:typeof r==`string`?parseFloat(r)||0:typeof r==`boolean`?+!!r:0}chs(e,t){let n=this.resolveParam(e,t);return n?String(n.value??``):``}chv(e,t){let n=this.resolveParam(e,t);if(!n)return[];let r=n.value;return Array.isArray(r)?r.map(e=>typeof e==`number`?e:parseFloat(String(e))||0):typeof r==`number`?[r]:[]}resolveParam(e,t){return this.scope?.resolveParam(e,t)??null}validatePath(e,t){return this.resolveParam(e,t)!==null}extractDependencies(e){let t=[];Su.lastIndex=0;let n;for(;(n=Su.exec(e))!==null;)t.push(n[1]);return t}hasTimeReference(e){return bu(e)}clearCache(){this.compiledCache.clear()}},wu=class extends Cu{constructor(){super(),this.graph=null,this.setScope({resolveParam:(e,t)=>this.resolveNodePath(e,t),nodeExists:(e,t)=>e.node(t)!==null,inputNode:(e,t)=>this.resolveInput(e,t)})}setGraph(e){this.graph=e}resolveNodePath(e,t){let n=t.lastIndexOf(`/`);if(n===-1||t.startsWith(`./`)){let n=t.replace(`./`,``),r=e.props[n];return r?{value:r.value}:null}let r=t.substring(0,n)||`.`,i=t.substring(n+1),a=e.node(r);if(!a)return null;let o=a.props[i];return o?{value:o.value}:null}resolveInput(e,t){if(!this.graph)return null;let n=e.inputs[t];if(!n||n.connections.length===0)return null;let r=n.connections[0];return this.graph.getNode(r.from.nodeId)}validateAllPaths(){if(!this.graph)return[];let e=[];for(let t of this.graph.nodes)for(let[n,r]of Object.entries(t.props)){if(!r.expression)continue;let i=this.extractDependencies(r.expression);for(let a of i)this.validatePath(t,a)||e.push({nodeId:t.id,nodePath:t.path(),propName:n,expression:r.expression,brokenPath:a})}return e}},Tu=new wu,Eu=`smooth`,Du=[`constant`,`linear`,`smooth`];function Ou(e){return typeof e==`string`&&Du.includes(e)}var ku=Object.freeze({keys:Object.freeze([])});function Au(e=[]){let t=new Map;for(let n of e){if(!n)continue;let e=Number(n.frame),r=Number(n.value);!Number.isFinite(e)||!Number.isFinite(r)||t.set(e,{frame:e,value:r,interpolation:Ou(n.interpolation)?n.interpolation:Eu})}return{keys:[...t.values()].sort((e,t)=>e.frame-t.frame)}}function ju(e){return!e||e.keys.length===0}function Mu(e,t){return e.keys.find(e=>e.frame===t)}function Nu(e,t,n,r){let i=e??ku;if(!Number.isFinite(t)||!Number.isFinite(n))return Au(i.keys);let a=Mu(i,t),o=r??a?.interpolation??`smooth`;return Au([...i.keys.filter(e=>e.frame!==t),{frame:t,value:n,interpolation:o}])}function Pu(e,t){return Au((e??ku).keys.filter(e=>e.frame!==t))}function Fu(e,t){if(!e||e.keys.length===0)return;let n=e.keys;if(!Number.isFinite(t)||n.length===1||t<=n[0].frame)return n[0].value;if(t>=n[n.length-1].frame)return n[n.length-1].value;let r=Iu(n,t),i=n[r],a=n[r+1],o=a.frame-i.frame;if(o<=0)return a.value;let s=(t-i.frame)/o;switch(i.interpolation){case`constant`:return i.value;case`linear`:return i.value+(a.value-i.value)*s;default:return Lu(n,r,s,o)}}function Iu(e,t){let n=0,r=e.length-1;for(;n<r;){let i=n+r+1>>1;e[i].frame<=t?n=i:r=i-1}return Math.min(n,e.length-2)}function Lu(e,t,n,r){let i=e[t],a=e[t+1],o=Ru(e,t,`out`),s=Ru(e,t+1,`in`),c=n*n,l=c*n,u=2*l-3*c+1,d=l-2*c+n,f=-2*l+3*c,p=l-c;return u*i.value+d*r*o+f*a.value+p*r*s}function Ru(e,t,n){let r=e[t-1],i=e[t+1];if(!r||!i||n===`out`&&r.interpolation===`constant`||n===`in`&&e[t].interpolation===`constant`)return 0;let a=i.frame-r.frame;return a<=0?0:(i.value-r.value)/a}function zu(e){if(!ju(e))return{keys:e.keys.map(e=>e.interpolation===`smooth`?{frame:e.frame,value:e.value}:{frame:e.frame,value:e.value,interpolation:e.interpolation})}}function Bu(e){if(!e||typeof e!=`object`)return ku;let t=e.keys;return Array.isArray(t)?Au(t):ku}function Vu(e,t){if(!ju(e.channel)){let n=Fu(e.channel,t.frame);if(n!==void 0)return{value:n,source:`channel`}}if(e.expression&&t.evaluateExpression){let n=t.evaluateExpression(e.expression);if(n?.error)return{value:e.value,source:`value`,error:n.error};if(n)return{value:n.value,source:`expression`}}return{value:e.value,source:`value`}}function Hu(e){if(typeof e==`number`)return Number.isInteger(e)?`int`:`float`;if(typeof e==`boolean`)return`bool`;if(typeof e==`string`)return`string`;if(Array.isArray(e)&&e.every(e=>typeof e==`number`)){if(e.length===2)return`vec2`;if(e.length===3)return`vec3`;if(e.length===4)return`vec4`}return`any`}function Uu(e){switch(Yl(e??`any`)){case`int`:return`int`;case`float`:return`number`;case`bool`:return`boolean`;case`string`:return`text`;case`color`:return`color`;case`vec2`:return`vec2`;case`vec3`:return`vec3`;case`vec4`:return`vec4`;default:return}}var Wu={number:`float`,slider:`float`,range:`float`,float:`float`,int:`int`,text:`string`,textarea:`string`,string:`string`,select:`string`,boolean:`bool`,bool:`bool`,vector:`vec3`};function Gu(e){return e?Yl(Wu[e]??e):`any`}var Ku=new Set([`int`,`float`]);function qu(e,t){return e===`any`||t===`any`||Ku.has(e)&&Ku.has(t)?!0:e===t}var Ju=class e{constructor(t,n,r){this.inputs=[],this.outputs=[],this.props={},this.propWatchers=new Map,this.actions={},this.parameters=[],this.parametersUsedDuringSetup=new Set,this.propsDeclaredByCode=new Set,this.carryOver=null,this.lastCarryOverReport=null,this.variadic=!1,this.variadicDefault=null,this.variadicOptions={},this.preview=null,this.comment=``,this.error=null,this.warning=null,this.code=``,this.bypass=!1,this.cook=!1,this.parent=null,this._children=[],this.hasExecuted=!1,this.lastInputHash=``,this.cookState=`stale`,this.cookGeneration=0,this.stagedOutputs=null,this.executionTimeout=3e4,this.cookInfo={lastCookTime:0,totalCookTime:0,cookCount:0,averageCookTime:0,lastCookTimestamp:0,peakMemory:0},this.isTimeDependent=!1,this.portsUsedDuringSetup=new Set,this._portMap=new Map,this.defaultExpressionsApplied=new Set,this.plainPropOverrides=new Set,this.id=t,this.type=n,this.graph=r,this.position={x:0,y:0},this.constructor!==e&&(this.setup(),queueMicrotask(()=>{if(this.onReady)try{this.onReady()}catch(e){console.error(`Error in onReady for node ${this.id}:`,e)}}))}in(e,t,n={}){let r=e===`trigger`?`trigger`:`param`,i=this.inputs.find(t=>t.name===e);if(i)return this.portsUsedDuringSetup.add(`input_${e}`),n.type&&(i.dataType=n.type),t!==void 0&&i.defaultValue!==t&&(i.defaultValue=t,(i.value===void 0||i.value===i.defaultValue)&&(i.value=t)),i.options=Object.assign(i.options??{},n),i;let a=this.inputs.length,o={id:`${this.id}_in_${a}`,name:e,portType:r,dataType:n.type||`any`,value:t,defaultValue:t,options:n,connections:[]};return this.inputs.push(o),this._portMap.set(o.id,o),this.portsUsedDuringSetup.add(`input_${e}`),o}out(e,t=`param`,n={}){let r=this.outputs.find(t=>t.name===e);if(r)return this.portsUsedDuringSetup.add(`output_${e}`),r.portType!==t&&(r.portType=t),n.type&&(r.dataType=n.type),r.options={...r.options??{},...n},r;let i=this.outputs.length,a={id:`${this.id}_out_${i}`,name:e,portType:t,dataType:n.type||`any`,value:void 0,connections:[],options:n,setValue:e=>this.setOutputValue(a,e),trigger:e=>{a.connections.forEach(t=>{let n=this.graph.getNode(t.to.nodeId);if(n){let r=n.getInputPortById(t.to.portId);r&&r.onTrigger&&r.onTrigger(e)}})}};return this.outputs.push(a),this._portMap.set(a.id,a),this.portsUsedDuringSetup.add(`output_${e}`),a}getInputPort(e){return e>=0&&e<this.inputs.length?this.inputs[e]:null}getOutputPort(e){return e>=0&&e<this.outputs.length?this.outputs[e]:null}renameId(e){let t=this.id,n=new Map;this.id=e,this._portMap.clear();for(let r of[...this.inputs,...this.outputs]){let i=r.id;r.id=i.startsWith(`${t}_`)?`${e}${i.slice(t.length)}`:i,n.set(i,r.id),this._portMap.set(r.id,r)}return n}getPort(e){return this._portMap.get(e)||null}getInputPortById(e){let t=this._portMap.get(e);return t&&`defaultValue`in t?t:null}setOutputValue(e,t){if(this.stagedOutputs){this.stagedOutputs.set(e,t);return}this.commitOutputValue(e,t)}commitOutputValue(e,t){e.value=t;for(let n of e.connections){let e=this.graph.getNode(n.to.nodeId)?.getInputPortById(n.to.portId);e&&(e.value=t,e.onChange?.(t))}}addParm(e,t){this.props[e]=t,this.propsDeclaredByCode.add(e),this.reconcileProp(e),this.cookState!==`cooking`&&this.markDirty()}defineProp(e,t){this.addParm(e,t)}addAction(e,t){this.actions[e]=t}async executeAction(e){let t=this.actions[e];t&&(t.condition&&!t.condition()||await t.callback())}updateProp(t,n){if(!this.props[t])return;let r=Array.isArray(n)?[...n]:n;if(this.props[t]={...this.props[t],value:r},this.props[t].onChange)try{this.props[t].onChange(this.props[t],this)}catch(e){console.error(`Error in prop onChange for ${t}:`,e)}let i=this.propWatchers.get(t);i&&i.forEach(e=>{try{e(r,this.props[t])}catch(e){console.error(`Error in prop watcher for ${t}:`,e)}}),this.props={...this.props},this.markDirty(),e.onPropParamsChanged?.(this.id)}updatePropParams(t,n){this.props[t]&&(this.props[t]={...this.props[t],params:{...this.props[t].params,...n}},this.props={...this.props},e.onPropParamsChanged?.(this.id))}watchProp(e,t){this.propWatchers.has(e)||this.propWatchers.set(e,[]),this.propWatchers.get(e).push(t)}parm(e){let t=this.props[e];if(!t)return null;let n=this,r=()=>n.props[e]??t;return{name:()=>e,path:()=>`${n.path()}/${e}`,node:()=>n,eval:()=>r().value,evalAsFloat:()=>parseFloat(r().value)||0,evalAsInt:()=>parseInt(r().value,10)||0,evalAsString:()=>String(r().value??``),rawValue:()=>r().value,set:t=>n.updateProp(e,t),parmType:()=>r().type||`any`,expression:()=>r().expression??null,setExpression:t=>{n.props[e]={...n.props[e],expression:t},n.updateTimeDependent(),n.markDirty()},deleteExpression:()=>{let{expression:t,expressionError:r,...i}=n.props[e];n.props[e]=i,n.defaultExpressionsApplied.has(e)&&n.plainPropOverrides.add(e),n.updateTimeDependent(),n.markDirty()},hasExpression:()=>!!r().expression,expressionError:()=>r().expressionError??null,channel:()=>n.props[e]?.channel??null,hasChannel:()=>!ju(n.props[e]?.channel),keys:()=>n.props[e]?.channel?.keys??[],setKey:(t,r,i)=>{let a=t??n.currentFrame(),o=r??Number(n.evalParm(e));Number.isFinite(o)&&n.setPropChannel(e,Nu(n.props[e]?.channel,a,o,i))},deleteKey:t=>{let r=n.props[e]?.channel;r&&n.setPropChannel(e,Pu(r,t))},clearChannel:()=>n.setPropChannel(e,null)}}currentFrame(){return Tu.fframe}setPropChannel(t,n){let r=this.props[t];if(r){if(!n||ju(n)){let{channel:e,...n}=this.props[t];this.props[t]=n}else this.props[t]={...r,channel:n};this.props={...this.props},this.updateTimeDependent(),this.markDirty(),e.onPropParamsChanged?.(this.id)}}serializePropValue(e,t){let n=this.props[e];if(!n)return t;let r=zu(n.channel);return!n.expression&&!r?t:{value:t,...n.expression?{expression:n.expression}:{},...r?{channel:r}:{}}}preservePlainProp(e){this.plainPropOverrides.add(e)}preservesPlainProp(e){return this.plainPropOverrides.has(e)&&this.defaultExpressionsApplied.has(e)}restorePropChannel(e,t){if(!this.props[e])return;let n=Bu(t);this.setPropChannel(e,ju(n)?null:n)}serializePropChannel(e){return zu(this.props[e]?.channel)}evalParm(e){let t=this.props[e];if(t)return Vu(t,{frame:this.currentFrame(),evaluateExpression:()=>({value:this.evaluateExpression(e)})}).value}setParm(e,t){this.updateProp(e,t)}evaluateExpression(e){let t=this.props[e];if(!t?.expression)return t?.value;Tu.setGraph(this.graph);let n=Tu.evaluate(t.expression,this);if(n.error)return this.props[e]={...this.props[e],expressionError:n.error},t.value;if(t.expressionError){let{expressionError:t,...n}=this.props[e];this.props[e]=n}return n.value}evaluateAllExpressions(){for(let[e,t]of Object.entries(this.props))if(t.expression&&!t.fromParameter&&this.propsDeclaredByCode.has(e)){let t=this.evaluateExpression(e);t!==void 0&&(this.props[e]={...this.props[e],value:t})}this.updateTimeDependent()}param(e,t,n={}){let r=this.parameters.find(t=>t.name===e);if(r?(n.type&&(r.dataType=n.type),r.defaultValue=t,Object.assign(r.options,n)):(r={name:e,value:t,defaultValue:t,dataType:n.type||Hu(t),promoted:!1,options:n},this.parameters.push(r)),this.parametersUsedDuringSetup.add(e),this.reconcileParameter(r,t,n),this.bindParameterProp(r,e,n),r.promoted){let t=this.in(e,r.value,{...r.options,type:r.dataType,promoted:!0});if(t.fromParameter=e,t.connections.length>0&&t.value!==void 0&&t.value!==null)return{...r,value:t.value}}return r}bindParameterProp(e,t,n){let r=Object.getOwnPropertyDescriptor(e,`value`),i=r&&!r.get?r.value:void 0,a=this.props[t];a||(a={value:i===void 0?e.defaultValue:i},this.props[t]=a,this.props={...this.props}),n.defaultExpression&&!this.defaultExpressionsApplied.has(t)&&(this.defaultExpressionsApplied.add(t),!this.plainPropOverrides.has(t)&&!a.expression&&(a.expression=n.defaultExpression,this.props={...this.props},this.updateTimeDependent())),a.fromParameter=t,a.hidden=!0;let o=Uu(e.dataType);o&&(a.type=o);let s={...a.params??{}};n.min!==void 0&&(s.min=n.min),n.max!==void 0&&(s.max=n.max),n.step!==void 0&&(s.step=n.step),Yl(e.dataType??`any`)===`int`&&(s.integer=!0),a.params=s,!r?.get&&Object.defineProperty(e,"value",{get:()=>this.evalParm(t),set:e=>this.writeParameterValue(t,e),enumerable:!0,configurable:!0})}writeParameterValue(e,t){let n=this.props[e];n&&(this.props[e]={...n,value:Array.isArray(t)?[...t]:t},this.props={...this.props})}rawParameterValue(e){return this.props[e]?this.props[e].value:this.parameters.find(t=>t.name===e)?.value}setParameterPromoted(e,t){let n=this.parameters.find(t=>t.name===e);if(!(!n||n.promoted===t)){if(n.promoted=t,t){let t=this.in(e,n.value,{...n.options,type:n.dataType,promoted:!0});t.fromParameter=e}else{let t=this.inputs.findIndex(t=>t.name===e);t>=0&&([...this.inputs[t].connections].forEach(e=>this.graph?.disconnect(e.id)),this.inputs.splice(t,1))}this.markDirty()}}setParameter(e,t){let n=this.parameters.find(t=>t.name===e);n&&(n.value=t,this.markDirty())}beginParameterCarryOver(){let e=new Map;for(let t of this.parameters)e.set(`parameter:${t.name}`,{name:t.name,kind:`parameter`,type:Gu(t.dataType),value:this.rawParameterValue(t.name),expression:this.props[t.name]?.expression,channel:this.props[t.name]?.channel});for(let[t,n]of Object.entries(this.props))e.has(`parameter:${t}`)||e.set(`prop:${t}`,{name:t,kind:`prop`,type:Gu(n.type),value:n.value,expression:n.expression,channel:n.channel});this.carryOver={carried:e,resolved:new Set,report:{kept:[],defaulted:[],dropped:[],retyped:[]}},this.parametersUsedDuringSetup.clear()}abandonParameterCarryOver(){this.carryOver=null}hasPendingParameterCarryOver(){return this.carryOver!==null}applyParameterDeclarations(e){if(!this.carryOver)return null;for(let t of e)t?.name&&(t.kind===`prop`?this.addParm(t.name,{value:t.defaultValue,type:t.type}):this.param(t.name,t.defaultValue,{...t.type?{type:t.type}:{}}));return this.finishParameterCarryOver()}finishParameterCarryOver(){let t=this.carryOver;if(!t)return null;for(let e of t.carried.values()){t.report.dropped.push({name:e.name,value:e.value,...e.expression?{expression:e.expression}:{}});let n=this.parameters.findIndex(t=>t.name===e.name);if(n>=0){this.parameters[n].promoted&&this.setParameterPromoted(e.name,!1);let t=this.parameters.findIndex(t=>t.name===e.name);t>=0&&this.parameters.splice(t,1)}t.resolved.has(`prop:${e.name}`)||delete this.props[e.name]}return this.carryOver=null,this.lastCarryOverReport=t.report,t.report.dropped.length>0&&(this.props={...this.props},this.updateTimeDependent(),e.onPropParamsChanged?.(this.id)),t.report}reconcileParameter(e,t,n){let r=this.carryOver;if(!r)return;let i=`parameter:${e.name}`;if(r.resolved.has(i))return;r.resolved.add(i);let a=n.type??Hu(t);e.dataType=a;let o=Gu(a),s=`prop:${e.name}`,c=r.carried.get(i)??r.carried.get(s);if(!c){e.value=t,r.report.defaulted.push(e.name);return}r.carried.delete(i),r.carried.delete(s),qu(c.type,o)?(e.value=c.value,(c.expression||c.channel)&&(this.props[e.name]={...this.props[e.name]??{},value:c.value,...c.expression?{expression:c.expression}:{},...c.channel?{channel:c.channel}:{}},r.resolved.add(s),this.updateTimeDependent()),r.report.kept.push(e.name)):(e.value=t,r.report.retyped.push({name:e.name,from:c.type,to:o}))}reconcileProp(e){let t=this.carryOver;if(!t)return;let n=`prop:${e}`;if(t.resolved.has(n))return;t.resolved.add(n);let r=this.props[e],i=Gu(r?.type),a=`parameter:${e}`,o=t.carried.get(n)??t.carried.get(a);if(!o){t.report.defaulted.push(e);return}t.carried.delete(n),t.carried.delete(a),qu(o.type,i)?(this.props[e]={...r,value:o.value,...o.expression?{expression:o.expression}:{},...o.channel?{channel:o.channel}:{}},(o.expression||o.channel)&&this.updateTimeDependent(),t.report.kept.push(e)):t.report.retyped.push({name:e,from:o.type,to:i})}setVariadic(e=null,t={}){this.variadic=!0,this.variadicDefault=e,this.variadicOptions=t,this.syncVariadicPorts()}getVariadicInputs(){return this.inputs.filter(e=>e.variadic&&!e.options.hidden)}syncVariadicPorts(){if(!this.variadic)return;let e=this.inputs.filter(e=>e.variadic),t=e.filter(e=>e.connections.length>0||e.value!==null&&e.value!==this.variadicDefault).length;for(let e=0;e<t+1;e++){let t=this.in(`input_${e}`,this.variadicDefault,{...this.variadicOptions,hidden:!1});t.variadic=!0,t.onChange||=()=>this.onUpdate?.()}for(let n=t+1;n<e.length;n++)e[n]&&(e[n].options.hidden=!0)}path(){let e=[this.id],t=this.parent;for(;t;)e.unshift(t.id),t=t.parent;return`/`+e.join(`/`)}children(){return this._children}isNetwork(){return!1}node(e){if(!e)return null;if(e.startsWith(`/`))return this.graph.nodeByPath(e);let t=e.split(`/`).filter(e=>e.length>0),n=this;for(let e of t){if(!n)return null;if(e!==`.`){if(e===`..`){n=n.parent;continue}if(n.isNetwork()){let t=n.children().find(t=>t.id===e);if(t){n=t;continue}}return null}}return n}relativePathTo(e){let t=this.path().split(`/`).filter(e=>e),n=e.path().split(`/`).filter(e=>e),r=0;for(;r<t.length&&r<n.length&&t[r]===n[r];)r++;let i=t.length-r,a=n.slice(r),o=[];for(let e=0;e<i;e++)o.push(`..`);return o.push(...a),o.join(`/`)||`.`}inputNodes(){let e=[];for(let t of this.inputs)for(let n of t.connections){let t=this.graph.getNode(n.from.nodeId);t&&!e.includes(t)&&e.push(t)}return e}outputNodes(){let e=[];for(let t of this.outputs)for(let n of t.connections){let t=this.graph.getNode(n.to.nodeId);t&&!e.includes(t)&&e.push(t)}return e}globToRegex(e){let t=``,n=0;for(;n<e.length;){let r=e[n];switch(r){case`*`:t+=`.*`;break;case`?`:t+=`.`;break;case`[`:let i=n+1,a=``;for(e[i]===`!`&&(a=`^`,i++);i<e.length&&e[i]!==`]`;)a+=e[i],i++;t+=`[`+a+`]`,n=i;break;case`.`:case`+`:case`^`:case`$`:case`(`:case`)`:case`{`:case`}`:case`|`:case`\\`:t+=`\\`+r;break;default:t+=r}n++}return RegExp(`^`+t+`$`)}glob(e){let t=this.children();if(!e||e===`*`)return[...t];let n=e.split(/\s+/),r=[],i=[];for(let e of n)e.startsWith(`^`)?i.push(this.globToRegex(e.slice(1))):r.push(this.globToRegex(e));return t.filter(e=>{let t=r.length===0||r.some(t=>t.test(e.id)),n=i.some(t=>t.test(e.id));return t&&!n})}recursiveGlob(e){let t=[],n=e.startsWith(`**/`),r=n?e.slice(3):e,i=(e,a)=>{let o=e.children();for(let e of o)n?this.globToRegex(r).test(e.id)&&t.push(e):a===0&&this.globToRegex(r).test(e.id)&&t.push(e),e.isNetwork()&&i(e,n?a:a-1)};if(e===`**`){let e=n=>{for(let r of n.children())t.push(r),r.isNetwork()&&e(r)};return e(this),t}let a=n?0:e.split(`/`).length-1;return i(this,a),t}setBypass(e){this.bypass=e,this.markDirty()}setCook(e){e&&this.parent&&this.parent.children().filter(e=>e!==this&&e.cook).forEach(e=>e.setCook(!1)),this.cook=e,e?this.graph.cookingNodes.add(this):this.graph.cookingNodes.delete(this),this.markDirty()}setTimeDependent(e){this.isTimeDependent=e}updateTimeDependent(){let e=Object.values(this.props).some(e=>e.expression&&Tu.hasTimeReference(e.expression)||!ju(e.channel));this.setTimeDependent(e)}shouldExecute(){return this.bypass?!1:this.graph.cookingNodes.size>0?this.cook||this.graph.isDownstreamOfCooking(this):!0}executeBypass(){this.inputs.forEach(e=>{if(e.portType===`param`){let t=this.outputs.find(t=>t.name===e.name||this.outputs.length===1);t&&t.setValue(e.value)}})}markDirty(){this.graph.scheduler.markStale(this)}invalidateCook(){this.cookGeneration++,this.setCookState(`stale`)}setCookState(e){this.cookState!==e&&(this.cookState=e,this.graph.scheduler.notifyNodeStateChange())}getValueFingerprint(e){if(e==null)return`null`;if(typeof e!=`object`)return String(e);if(ArrayBuffer.isView(e)){let t=e,n=t.length;return n===0?`empty`:`f32[${n}]:${t[0]?.toFixed(4)},${t[Math.floor(n/2)]?.toFixed(4)},${t[n-1]?.toFixed(4)}`}if(e.width!==void 0&&e.height!==void 0){let t=e.channelCount||e.channels?.length||0;return`img:${e.width}x${e.height}x${t}`}if(typeof HTMLCanvasElement<`u`&&e instanceof HTMLCanvasElement||typeof HTMLImageElement<`u`&&e instanceof HTMLImageElement)return`el:${e.width}x${e.height}`;try{let t=JSON.stringify(e);return t.length<500?t:`obj:${t.length}:${t.slice(0,100)}`}catch{return`obj:${typeof e}`}}calculateInputHash(){return this.inputs.map(e=>this.getValueFingerprint(e.value)).join(`|`)}get isDirty(){return!this.hasExecuted||this.cookState!==`clean`||this.calculateInputHash()!==this.lastInputHash}markDownstreamDirty(){this.graph.scheduler.markDownstreamStale(this)}async requestOutput(){this.isDirty&&(this.cookState===`clean`&&this.markDirty(),await this.graph.scheduler.flush())}setup(){}setFunction(e){this.nodeFunction=e,this.hasExecuted=!1,this.markDirty()}async execute(){if(!(this.nodeFunction||this.onCook!==e.prototype.onCook)){this.hasExecuted=!0,this.setCookState(`clean`);return}let t=!this.hasExecuted;if(!this.shouldExecute()&&!t&&!this.isDirty){this.executeBypass(),this.setCookState(`clean`);return}if(!t&&!this.isDirty)return;this.evaluateAllExpressions();let n=performance.now(),r=performance.memory?.usedJSHeapSize??0,i=this.cookGeneration;this.stagedOutputs=new Map,this.setCookState(`cooking`);let a;try{if(await Promise.race([Promise.resolve(this.onCook()),new Promise((e,t)=>{a=setTimeout(()=>t(Error(`Node execution timeout after ${this.executionTimeout}ms`)),this.executionTimeout)})]),i===this.cookGeneration){await this.callLifecycleHooks(t);for(let[e,t]of this.stagedOutputs)this.commitOutputValue(e,t);this.error=null,this.hasExecuted=!0,this.lastInputHash=this.calculateInputHash();let n=this.finishParameterCarryOver();n&&e.onParametersRetargeted?.(this.id,n),this.setCookState(`clean`)}else this.setCookState(`stale`);this.updateCookInfo(n,r)}catch(e){i===this.cookGeneration?(this.error=e,this.setCookState(`error`)):this.setCookState(`stale`),this.updateCookInfo(n,r),e.message?.includes(`timeout`)||console.error(`Error executing node ${this.id}:`,e)}finally{a!==void 0&&clearTimeout(a),this.stagedOutputs=null}}onCook(){if(this.nodeFunction)return this.nodeFunction(this,this.graph)}updateCookInfo(e,t=0){let n=performance.now()-e;this.cookInfo.lastCookTime=n,this.cookInfo.totalCookTime+=n,this.cookInfo.cookCount++,this.cookInfo.averageCookTime=this.cookInfo.totalCookTime/this.cookInfo.cookCount,this.cookInfo.lastCookTimestamp=Date.now();let r=performance.memory?.usedJSHeapSize??0;if(t&&r){let e=r-t;e>this.cookInfo.peakMemory&&(this.cookInfo.peakMemory=e)}}startCook(){return performance.now()}endCook(e){this.updateCookInfo(e,0)}resetCookInfo(){this.cookInfo={lastCookTime:0,totalCookTime:0,cookCount:0,averageCookTime:0,lastCookTimestamp:0,peakMemory:0}}async callLifecycleHooks(e){let t=e=>{let t=e?.message||String(e);return t.includes(`document is not defined`)||t.includes(`window is not defined`)||t.includes(`HTMLCanvasElement`)||t.includes(`HTMLImageElement`)};if(e&&this.onSetup)try{await this.onSetup()}catch(e){t(e)||console.error(`Error in onSetup for ${this.id}:`,e)}if(this.onUpdate)try{await this.onUpdate()}catch(e){t(e)||console.error(`Error in onUpdate for ${this.id}:`,e)}if(this.onRender)try{await this.onRender()}catch(e){t(e)||console.error(`Error in onRender for ${this.id}:`,e)}if(e&&this.onReady)try{this.onReady()}catch(e){t(e)||console.error(`Error in onReady for ${this.id}:`,e)}}rename(e){if(!e?.trim())return this.id;let t=e.trim().replace(/\s+/g,``);if(!t)return this.id;let n=this.graph.generateUniqueNodeId(t,this.id);return this.graph.renameElement(this.id,n)&&this.markDirty(),this.id}isPreviewValue(e){return typeof HTMLCanvasElement<`u`&&e instanceof HTMLCanvasElement||typeof HTMLImageElement<`u`&&e instanceof HTMLImageElement}async require(e,t){if(!this.graph.packageManager)throw Error(`PackageManager not initialized`);return this.graph.packageManager.load(e,t)}get assets(){return this.graph.assetManager}log(...e){console.log(`[${this.id}]`,...e)}resetPortTracking(){this.portsUsedDuringSetup.clear()}preserveState(){return{inputs:this.inputs.map(e=>({id:e.id,name:e.name,value:e.value,connections:e.connections.map(e=>e.id)})),outputs:this.outputs.map(e=>({id:e.id,name:e.name,value:e.value,connections:e.connections.map(e=>e.id)})),props:Object.fromEntries(Object.entries(this.props).map(([e,t])=>[e,t.value])),bypass:this.bypass,cook:this.cook}}restoreState(e){e.inputs?.forEach(e=>{let t=this.inputs.find(t=>t.id===e.id||t.name===e.name);t&&(t.value=e.value)}),e.outputs?.forEach(e=>{let t=this.outputs.find(t=>t.id===e.id||t.name===e.name);t&&(t.value=e.value)}),e.props&&Object.entries(e.props).forEach(([e,t])=>{this.props[e]&&(this.props[e].value=t)}),e.bypass!==void 0&&this.setBypass(e.bypass),e.cook!==void 0&&this.setCook(e.cook)}cleanupUnusedPorts(){let e=this.portsUsedDuringSetup;this.inputs=this.inputs.filter(t=>e.has(`input_${t.name}`)?!0:(t.connections.forEach(e=>this.graph.disconnect(e.id)),this._portMap.delete(t.id),!1)),this.outputs=this.outputs.filter(t=>e.has(`output_${t.name}`)?!0:(t.connections.forEach(e=>this.graph.disconnect(e.id)),this._portMap.delete(t.id),!1)),this.portsUsedDuringSetup.clear()}toJSON(){let e=je(this.type),t={id:this.id,type:e,position:[this.position.x,this.position.y]};!Fe(e)&&this.code&&(t.code=this.code),this.comment?.trim()&&(t.comment=this.comment);let n=Object.fromEntries(Object.entries(this.props).map(([e,t])=>{let n=t.value;if(t.type===`color`&&fl(n)){let e=ll(n);n=[e.r,e.g,e.b,e.a??1]}return t.expression?[e,{value:n,expression:t.expression}]:[e,n]}));return Object.keys(n).length>0&&(t.props=n),this.bypass&&(t.bypass=!0),this.cook&&(t.cook=!0),t}},Yu=class extends Ju{constructor(e,t,n){super(e,t,n),this.isAnnotation=!0}getOutput(){return this.getOutputPort(0)}async execute(){}},Xu=class extends Yu{constructor(e,t){super(e,`Image`,t)}},Zu=class extends Yu{constructor(e,t){super(e,`Text`,t)}},Qu=class extends Yu{constructor(e,t){super(e,`Group`,t)}},$u=class extends Yu{constructor(e,t){super(e,`Line`,t)}},ed=class extends Yu{constructor(e,t){super(e,`Polyline`,t)}},td=class{async loadImage(e){return new Promise((t,n)=>{if(typeof Image>`u`){n(Error(`Image API not available (not in browser environment)`));return}let r=new Image;r.onload=()=>t(r),r.onerror=()=>n(Error(`Failed to load image: ${e}`)),r.src=e})}async loadJSON(e){if(typeof fetch>`u`)throw Error(`fetch API not available (not in browser environment)`);let t=await fetch(e);if(!t.ok)throw Error(`Failed to load JSON: ${e} - ${t.statusText}`);return t.json()}async loadText(e){if(typeof fetch>`u`)throw Error(`fetch API not available (not in browser environment)`);let t=await fetch(e);if(!t.ok)throw Error(`Failed to load text: ${e} - ${t.statusText}`);return t.text()}async loadBinary(e){if(typeof fetch>`u`)throw Error(`fetch API not available (not in browser environment)`);let t=await fetch(e);if(!t.ok)throw Error(`Failed to load binary: ${e} - ${t.statusText}`);return t.arrayBuffer()}},nd=class{constructor(e=``,t){this.cache=new Map,this.projectRoot=e,this.loader=t??new td}async load(e){if(this.cache.has(e))return this.cache.get(e);let t=this.resolve(e),n=this.getAssetType(e),r;switch(n){case`image`:r=await this.loader.loadImage(t);break;case`json`:r=await this.loader.loadJSON(t);break;case`text`:r=await this.loader.loadText(t);break;default:throw Error(`Unsupported asset type: ${n}`)}let i={id:this.generateId(e),path:e,type:n,data:r,size:0,metadata:{}};return this.cache.set(e,i),i}resolve(e){return e.startsWith(`http://`)||e.startsWith(`https://`)||e.startsWith(`/`)?e:`${this.projectRoot}${e}`}getAssetType(e){let t=e.split(`.`).pop()?.toLowerCase();return[`jpg`,`jpeg`,`png`,`gif`,`webp`,`svg`].includes(t||``)?`image`:[`mp3`,`wav`,`ogg`,`m4a`].includes(t||``)?`audio`:[`mp4`,`webm`,`mov`].includes(t||``)?`video`:t===`json`?`json`:[`txt`,`md`,`csv`].includes(t||``)?`text`:`binary`}generateId(e){return e.replace(/[^a-zA-Z0-9]/g,`_`)}getAsset(e){return this.cache.get(e)}clearCache(){this.cache.clear()}removeAsset(e){this.cache.delete(e)}async reloadAsset(e){return this.cache.delete(e),this.load(e)}async reloadAll(){let e=Array.from(this.cache.keys());this.cache.clear(),await Promise.all(e.map(e=>this.load(e).catch(t=>{console.warn(`Failed to reload asset ${e}:`,t)})))}list(){return Array.from(this.cache.values())}},rd=`modulepreload`,id=function(e){return`/`+e},ad={},od=function(e,t,n){let r=Promise.resolve();if(t&&t.length>0){let e=document.getElementsByTagName(`link`),i=document.querySelector(`meta[property=csp-nonce]`),a=i?.nonce||i?.getAttribute(`nonce`);function o(e){return Promise.all(e.map(e=>Promise.resolve(e).then(e=>({status:`fulfilled`,value:e}),e=>({status:`rejected`,reason:e}))))}function s(e){return import.meta.resolve?import.meta.resolve(e):new URL(e,import.meta.url).href}r=o(t.map(t=>{if(t=id(t,n),t=s(t),t in ad)return;ad[t]=!0;let r=t.endsWith(`.css`);for(let n=e.length-1;n>=0;n--){let i=e[n];if(i.href===t&&(!r||i.rel===`stylesheet`))return}let i=document.createElement(`link`);if(i.rel=r?`stylesheet`:rd,r||(i.as=`script`),i.crossOrigin=``,i.href=t,a&&i.setAttribute(`nonce`,a),document.head.appendChild(i),r)return new Promise((e,n)=>{i.addEventListener(`load`,e),i.addEventListener(`error`,()=>n(Error(`Unable to preload CSS for ${t}`)))})}))}function i(e){let t=new Event(`vite:preloadError`,{cancelable:!0});if(t.payload=e,window.dispatchEvent(t),!t.defaultPrevented)throw e}return r.then(t=>{for(let e of t||[])e.status===`rejected`&&i(e.reason);return e().catch(i)})},sd=class{constructor(){this.cache=new Map,this.loadingPromises=new Map,this.cdnBaseUrl=`https://esm.sh`}async load(e,t=`latest`){let n=`${e}@${t}`;if(this.cache.has(n))return this.cache.get(n);if(this.loadingPromises.has(n))return this.loadingPromises.get(n);let r=this.loadPackage(n,e,t);this.loadingPromises.set(n,r);try{let e=await r;return this.cache.set(n,e),e}catch(e){throw this.loadingPromises.delete(n),e}}async loadPackage(e,t,n){let r=n===`latest`?``:`@${n}`,i=`${this.cdnBaseUrl}/${t}${r}`;try{let e=await od(()=>import(i),[]);return e.default&&typeof e.default==`object`||e.default!==void 0?e.default:e}catch(t){throw Error(`Failed to load package ${e}: ${t.message||`Unknown error`}\nURL: ${i}`)}}async search(e,t=20){try{let n=`https://registry.npmjs.org/-/v1/search?text=${encodeURIComponent(e)}&size=${t}`,r=await fetch(n,{method:`GET`,headers:{Accept:`application/json`}});if(!r.ok){if(r.status===0||r.status===403||r.status===404)return console.warn(`NPM registry search may be blocked by CORS. Using fallback.`),[];throw Error(`Search failed: ${r.statusText}`)}return(await r.json()).objects?.map(e=>({name:e.package.name,version:e.package.version,description:e.package.description,keywords:e.package.keywords||[],author:e.package.author,homepage:e.package.links?.homepage,repository:e.package.links?.repository?{url:e.package.links.repository}:void 0}))||[]}catch(e){if(e.message?.includes(`CORS`)||e.message?.includes(`Failed to fetch`))return console.warn(`NPM registry search unavailable:`,e.message),[];throw Error(`Failed to search packages: ${e.message||`Unknown error`}`)}}async getPackageInfo(e){try{let t=`https://registry.npmjs.org/${encodeURIComponent(e)}`,n=await fetch(t);if(!n.ok){if(n.status===404)return null;throw Error(`Failed to fetch package info: ${n.statusText}`)}let r=await n.json(),i=r[`dist-tags`]?.latest||Object.keys(r.versions).pop(),a=r.versions[i];return{name:r.name,version:i,description:a.description,keywords:a.keywords||[],author:a.author,homepage:r.homepage||a.homepage,repository:a.repository}}catch(e){throw Error(`Failed to get package info: ${e.message||`Unknown error`}`)}}clearCache(){this.cache.clear(),this.loadingPromises.clear()}removeFromCache(e,t){if(t){let n=`${e}@${t}`;this.cache.delete(n),this.loadingPromises.delete(n)}else for(let t of this.cache.keys())t.startsWith(`${e}@`)&&(this.cache.delete(t),this.loadingPromises.delete(t))}getCachedPackages(){return Array.from(this.cache.keys())}},cd=class{constructor(e){this.config=e}setFileSystemFunctions(e,t){this.fileReadFn=e,this.fileExistsFn=t}async resolve(e){if(e.startsWith(`cascade.`))return this.resolveStdlib(e);if(e.startsWith(`local.`))return this.resolveEmbedded(e);for(let t of this.config.projectPackages)if(e.startsWith(`${t.alias}.`))return this.resolveProject(e,t);return this.config.embeddedModules.has(e)?this.resolveEmbedded(e):null}resolveStdlib(e){return Pe(e)?{source:{type:`stdlib`,module:e},code:``,displayPath:`<cascade>/${e.split(`.`).slice(1).join(`/`)}.ts`,editable:!1}:null}resolveEmbedded(e){let t=this.config.embeddedModules.get(e);return t?{source:{type:`embedded`,module:e,code:t.code,history:t.history||[]},code:t.code,displayPath:`<embedded>`,editable:!0}:null}async resolveProject(e,t){let n=e.replace(`${t.alias}.`,``).split(`.`),r=`${t.path}/${n.join(`/`)}.ts`,i=this.config.externalModules.get(e),a=null,o=`synced`;if(this.fileReadFn&&this.fileExistsFn){let e=this.resolvePath(r);await this.fileExistsFn(e)?(a=await this.fileReadFn(e),a!==null&&i&&i.cachedCode!==a&&(o=`modified-external`)):(o=`missing`,a=i?.cachedCode||null)}else i&&(a=i.cachedCode);return a===null?null:{source:{type:`project`,module:e,file:r,cachedCode:a,lastSync:new Date().toISOString(),status:o},code:a,displayPath:r,editable:!0}}resolvePath(e){return this.config.basePath?e.startsWith(`./`)?`${this.config.basePath}/${e.slice(2)}`:e.startsWith(`/`)?e:`${this.config.basePath}/${e}`:e}getSourceType(e){if(e.startsWith(`cascade.`))return`stdlib`;if(e.startsWith(`local.`))return`embedded`;for(let t of this.config.projectPackages)if(e.startsWith(`${t.alias}.`))return`project`;return this.config.embeddedModules.has(e)?`embedded`:null}createEmbeddedModule(e,t,n=`user`){let r=new Date().toISOString(),i={code:t,history:[{code:t,timestamp:r,author:n}],created:r,modified:r};return this.config.embeddedModules.set(e,i),{modulePath:e,module:i}}duplicateToEmbedded(e,t){let n=this.resolveStdlib(e);if(!n)return null;let r=e.split(`.`).pop()||`Custom`,i=t||r,a=`local.${i}`,o=1;for(;this.config.embeddedModules.has(a);)a=`local.${i}${o}`,o++;let s=new Date().toISOString(),c={code:n.code,timestamp:s,author:`user`},l={code:n.code,history:[c],created:s,modified:s};return this.config.embeddedModules.set(a,l),{modulePath:a,module:l}}async extractToProject(e,t,n){let r=this.config.embeddedModules.get(e);if(!r)return null;let i=`${t.path}/${n}.ts`,a=`${t.alias}.${n.replace(/\//g,`.`)}`,o={file:i,cachedCode:r.code,lastSync:new Date().toISOString()};return this.config.externalModules.set(a,o),{modulePath:a,filePath:i}}updateEmbeddedCode(e,t,n=`user`,r){let i=this.config.embeddedModules.get(e);if(!i)return!1;let a=new Date().toISOString(),o={code:t,timestamp:a,author:n,prompt:r};return i.history.push(o),i.code=t,i.modified=a,!0}restoreVersion(e,t){let n=this.config.embeddedModules.get(e);if(!n||t<0||t>=n.history.length)return!1;let r=n.history[t];return n.code=r.code,n.modified=new Date().toISOString(),n.history.push({code:r.code,timestamp:n.modified,author:`user`}),!0}getProjectPackages(){return[...this.config.projectPackages]}addProjectPackage(e){let t=this.config.projectPackages.find(t=>t.alias===e.alias);t?t.path=e.path:this.config.projectPackages.push(e)}removeProjectPackage(e){let t=this.config.projectPackages.findIndex(t=>t.alias===e);return t>=0&&(this.config.projectPackages.splice(t,1),!0)}async syncExternalModule(e){let t=this.config.externalModules.get(e);if(!t||!this.fileReadFn||!this.fileExistsFn)return`missing`;let n=this.resolvePath(t.file);if(!await this.fileExistsFn(n))return`missing`;let r=await this.fileReadFn(n);return r===null?`missing`:(t.cachedCode=r,t.lastSync=new Date().toISOString(),`synced`)}exportConfig(){return{projectPackages:[...this.config.projectPackages],embeddedModules:Object.fromEntries(this.config.embeddedModules),externalModules:Object.fromEntries(this.config.externalModules)}}importConfig(e){e.projectPackages&&(this.config.projectPackages=[...e.projectPackages]),e.embeddedModules&&(this.config.embeddedModules=new Map(Object.entries(e.embeddedModules))),e.externalModules&&(this.config.externalModules=new Map(Object.entries(e.externalModules)))}};function ld(e){return new cd({projectPackages:[],embeddedModules:new Map,externalModules:new Map,basePath:e})}var ud=class{static detectCycles(e){let t=[],n=new Set,r=new Set,i=[],a=o=>{if(r.has(o)){let e=i.indexOf(o);return e!==-1&&t.push([...i.slice(e),o]),!0}if(n.has(o))return!1;n.add(o),r.add(o),i.push(o);let s=e.getNode(o);if(s)for(let e of s.outputs)for(let t of e.connections)a(t.to.nodeId);return r.delete(o),i.pop(),!1},o=e.nodes;for(let e of o)n.has(e.id)||a(e.id);return t}static wouldCreateCycle(e,t,n){if(t===n)return!0;let r=new Set,i=(t,n)=>{if(t===n)return!0;if(r.has(t))return!1;r.add(t);let a=e.getNode(t);if(!a)return!1;for(let e of a.outputs)for(let t of e.connections)if(i(t.to.nodeId,n))return!0;return!1};return i(n,t)}static topologicalSort(e){let t=this.detectCycles(e);if(t.length>0)throw Error(`Graph contains cycles: ${t.map(e=>e.join(` -> `)).join(`, `)}`);let n=[],r=new Set,i=new Set,a=t=>{if(i.has(t))throw Error(`Cycle detected involving node ${t}`);if(r.has(t))return;i.add(t);let o=e.getNode(t);if(o)for(let e of o.inputs)for(let t of e.connections)a(t.from.nodeId);i.delete(t),r.add(t),n.push(t)},o=e.nodes;for(let e of o)r.has(e.id)||a(e.id);return n}static validateConnection(e,t,n,r,i){let a=e.getNode(t),o=e.getNode(n);if(!a||!o)return{type:`invalid_connection`,message:`Invalid connection: node not found`,nodeIds:[t,n]};let s=a.outputs.find(e=>e.id===r),c=o.inputs.find(e=>e.id===i);return!s||!c?{type:`invalid_connection`,message:`Invalid connection: port not found`,nodeIds:[t,n]}:s.portType===c.portType?this.wouldCreateCycle(e,t,n)?{type:`cycle`,message:`Connection would create a cycle: ${t} -> ${n}`,nodeIds:[t,n]}:null:{type:`invalid_connection`,message:`Port type mismatch: cannot connect ${s.portType} to ${c.portType}`,nodeIds:[t,n]}}static validateGraph(e){let t=[],n=[],r=this.detectCycles(e);r.length>0&&r.forEach(e=>{t.push({type:`cycle`,message:`Cycle detected: ${e.join(` -> `)}`,nodeIds:e})});for(let n of e.connections){let r=e.getNode(n.from.nodeId),i=e.getNode(n.to.nodeId);if(!r||!i){t.push({type:`invalid_connection`,message:`Connection references non-existent node`,connectionId:n.id,nodeIds:[n.from.nodeId,n.to.nodeId]});continue}let a=r.outputs.find(e=>e.id===n.from.portId),o=i.inputs.find(e=>e.id===n.to.portId);if(!a||!o){t.push({type:`invalid_connection`,message:`Connection references non-existent port`,connectionId:n.id,nodeIds:[n.from.nodeId,n.to.nodeId]});continue}a.portType!==o.portType&&t.push({type:`invalid_connection`,message:`Port type mismatch in connection`,connectionId:n.id,nodeIds:[n.from.nodeId,n.to.nodeId]})}let i=new Set;for(let t of e.connections)i.add(t.from.nodeId),i.add(t.to.nodeId);let a=e.nodes,o=a.filter(e=>{let t=!i.has(e.id),n=e.inputs.every(e=>e.connections.length===0);return t&&!n});return o.length>0&&n.push({type:`orphaned_node`,message:`Found ${o.length} orphaned node(s) with no connections`,nodeIds:o.map(e=>e.id)}),a.filter(e=>e.inputs.every(e=>e.connections.length===0)).length===0&&a.length>0&&n.push({type:`invalid_entry_point`,message:`No entry points found (all nodes have input connections)`}),{valid:t.length===0,errors:t,warnings:n}}},dd=new Map;async function fd(e){let t=typeof document<`u`?URL.createObjectURL(new Blob([e],{type:`text/javascript`})):`data:text/javascript;base64,${Buffer.from(e,`utf-8`).toString(`base64`)}`;try{let e=await od(()=>import(t),[]);if(typeof e.execute!=`function`)throw Error(`node module has no execute export`);return{execute:e.execute,...e.definition===void 0?{}:{definition:e.definition}}}finally{t.startsWith(`blob:`)&&URL.revokeObjectURL(t)}}function pd(e){let t=e.replace(/^project\./,``),n=`project:${t}`,r=dd.get(n);return r||(r=fetch(`/api/nodes/${encodeURIComponent(t)}/compiled`).then(async e=>{if(!e.ok)throw Error(await e.text());return fd(await e.text())}),dd.set(n,r)),r}function md(e){let t=`embedded:${gd(e)}`,n=dd.get(t);return n||(n=fetch(`/api/nodes/compile-embedded`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({code:e})}).then(async e=>{if(!e.ok)throw Error(await e.text());return fd(await e.text())}),dd.set(t,n)),n}function hd(e){dd.delete(`project:${e}`)}function gd(e){let t=0;for(let n=0;n<e.length;n++)t=t*31+e.charCodeAt(n)|0;return t.toString(36)}var _d=[`poly`,`bezier`,`mesh`,`packed`],vd=new Set([`f32`,`f64`,`i32`,`u8`]),yd=/^[A-Za-z_][A-Za-z0-9_]*$/,bd=new Set([`__proto__`,`prototype`,`constructor`]);function xd(e,t){throw TypeError(`geometry/${e}: ${t}`)}function Sd(){return{vertexPoints:new Int32Array,offsets:Int32Array.of(0),kinds:new Uint8Array,closed:new Uint8Array}}function Cd(e){return e===`f64`?Float64Array:e===`f32`?Float32Array:e===`i32`?Int32Array:Uint8Array}function wd(e,t){return Number.isFinite(t)?e===`f64`||e===`f32`?!0:Number.isInteger(t)?e===`u8`?t>=0&&t<=255:t>=-2147483648&&t<=2147483647:!1:!1}function Td(e,t){return(!Number.isSafeInteger(t)||t<0)&&xd(`attribute-length`,`attribute array length must be a non-negative safe integer`),e===`f64`?new Float64Array(t):e===`f32`?new Float32Array(t):e===`i32`?new Int32Array(t):new Uint8Array(t)}function Ed(e,t){let n=Td(e,t.length);for(let r=0;r<t.length;r+=1){let i=t[r];wd(e,i)||xd(`attribute-value`,`${String(i)} cannot be represented as ${e}`),n[r]=i,Number.isFinite(n[r])||xd(`attribute-value`,`${String(i)} overflows ${e}`)}return n}function Dd(e){return e.storage===`string`}function Od(e,t){(!yd.test(e)||bd.has(e))&&xd(`invalid-name`,`${t}.${e} is not a valid attribute name`)}function kd(e,t,n){for(let[r,i]of Object.entries(e)){if(Od(r,n),Dd(i)){i.data instanceof Int32Array||xd(`attribute-storage`,`${n}.${r} string indices must be Int32Array`),i.size!==1&&xd(`string-size`,`${n}.${r} string attributes have size 1`),i.data.length!==t&&xd(`attribute-length`,`${n}.${r} has ${i.data.length} entries for ${t} elements`);for(let e of i.data)(e<-1||e>=i.table.length)&&xd(`string-index`,`${n}.${r} references table entry ${e}`);(!Array.isArray(i.table)||i.table.some(e=>typeof e!=`string`))&&xd(`string-table`,`${n}.${r} needs a string table`);continue}(!Number.isInteger(i.size)||i.size<1)&&xd(`attribute-size`,`${n}.${r} needs a size of at least 1`),vd.has(i.storage)||xd(`attribute-storage`,`${n}.${r} has an unknown storage ${String(i.storage)}`),i.data instanceof Cd(i.storage)||xd(`attribute-storage`,`${n}.${r} declares ${i.storage} but uses ${i.data?.constructor?.name??`unknown storage`}`),i.data.length!==i.size*t&&xd(`attribute-length`,`${n}.${r} has ${i.data.length} values for ${t} elements of size ${i.size}`);for(let e of i.data)Number.isFinite(e)||xd(`non-finite`,`${n}.${r} contains ${String(e)}`)}}function Ad(e,t,n){for(let[r,i]of Object.entries(e)){Od(r,n),i.length!==t&&xd(`group-length`,`${n}.${r} covers ${i.length} of ${t} elements`);for(let e of i)e!==0&&e!==1&&xd(`group-mask`,`${n}.${r} contains ${e}; masks contain only 0 or 1`)}}function jd(e){let t=e.pointCount;(!Number.isSafeInteger(t)||t<0)&&xd(`point-count`,`pointCount must be a non-negative safe integer`);let n=e.topology??Sd();(!(n.vertexPoints instanceof Int32Array)||!(n.offsets instanceof Int32Array)||!(n.kinds instanceof Uint8Array)||!(n.closed instanceof Uint8Array))&&xd(`topology-storage`,`topology uses Int32Array indices and Uint8Array flags`);let r=n.offsets.length-1;r<0&&xd(`offsets`,`topology.offsets needs primitiveCount + 1 entries`),n.offsets[0]!==0&&xd(`offsets`,`topology.offsets starts at 0`);for(let e=1;e<=r;e+=1)n.offsets[e]<n.offsets[e-1]&&xd(`offsets`,`topology.offsets must not decrease`);let i=n.offsets[r];i!==n.vertexPoints.length&&xd(`offsets`,`topology.offsets ends at ${i} for ${n.vertexPoints.length} vertices`),(n.kinds.length!==r||n.closed.length!==r)&&xd(`topology-length`,`topology.kinds and topology.closed need ${r} entries`);for(let e of n.vertexPoints)(e<0||e>=t)&&xd(`vertex-point`,`vertex references point ${e}`);for(let e of n.kinds)e>=_d.length&&xd(`primitive-kind`,`unknown primitive kind ${e}`);for(let e of n.closed)e!==0&&e!==1&&xd(`closed-mask`,`topology.closed contains ${e}; flags contain only 0 or 1`);let a=_d.indexOf(`bezier`);for(let e=0;e<r;e+=1){if(n.kinds[e]!==a)continue;let t=n.offsets[e+1]-n.offsets[e],r=n.closed[e]===1;(t<(r?3:4)||(t-+!r)%3!=0)&&xd(`bezier-arity`,`primitive ${e} has ${t} vertices, and a ${r?`closed`:`open`} bezier needs ${r?`3n`:`3n + 1`}`)}let o=e.point,s=o.P;s===void 0&&xd(`missing-position`,`point.P is required on every geometry`),Dd(s)&&xd(`position-storage`,`point.P must be a numeric attribute`),s.size!==2&&s.size!==3&&xd(`position-size`,`point.P must have a size of 2 or 3`),kd(o,t,`point`);let c=e.vertex??{};kd(c,i,`vertex`);let l=e.primitive??{};kd(l,r,`primitive`);let u=e.pointGroups??{};Ad(u,t,`pointGroups`);let d=e.primitiveGroups??{};Ad(d,r,`primitiveGroups`);let f=e.detail??{};for(let[e,t]of Object.entries(f))Od(e,`detail`),typeof t==`number`?Number.isFinite(t)||xd(`non-finite`,`detail.${e} contains ${String(t)}`):typeof t!=`string`&&(!Array.isArray(t)||t.some(e=>!Number.isFinite(e)))&&xd(`detail-value`,`detail.${e} must be a finite number, string, or finite number array`);return Md({kind:`geometry`,pointCount:t,vertexCount:i,primitiveCount:r,topology:n,point:o,vertex:c,primitive:l,detail:f,pointGroups:u,primitiveGroups:d})}function Md(e){for(let t of[`point`,`vertex`,`primitive`]){let n=e[t];for(let e of Object.values(n))Dd(e)&&Object.freeze(e.table),Object.freeze(e);Object.freeze(n)}Object.freeze(e.topology);for(let t of Object.values(e.detail))Array.isArray(t)&&Object.freeze(t);return Object.freeze(e.detail),Object.freeze(e.pointGroups),Object.freeze(e.primitiveGroups),Object.freeze(e)}function Nd(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function Pd(e){return Array.isArray(e)&&e.every(e=>typeof e==`number`&&Number.isFinite(e))}function Fd(e,t){if(e===void 0)return{};let n={};for(let[r,i]of Object.entries(e)){if(Nd(i)||xd(`attribute-shape`,`${t}.${r} must be an object`),i.storage===`string`){let e=i.table;(!Array.isArray(e)||e.some(e=>typeof e!=`string`))&&xd(`string-table`,`${t}.${r} needs a string table`),Hd(i.data)||xd(`attribute-data`,`${t}.${r} needs 32-bit integer indices`),n[r]={storage:`string`,size:1,table:[...e],data:Int32Array.from(i.data)};continue}(typeof i.storage!=`string`||!vd.has(i.storage))&&xd(`attribute-storage`,`${t}.${r} has an unknown storage ${String(i.storage)}`),Pd(i.data)||xd(`attribute-data`,`${t}.${r} needs finite numeric data`);let e=i.size;(typeof e!=`number`||!Number.isInteger(e)||e<1)&&xd(`attribute-size`,`${t}.${r} needs a size of at least 1`),n[r]={storage:i.storage,size:e,data:Ed(i.storage,i.data)}}return n}function Id(e,t,n){if(e===void 0)return{};let r={};for(let[i,a]of Object.entries(e)){Pd(a)||xd(`group-indices`,`${n}.${i} must be a list of indices`);let e=new Uint8Array(t);for(let r of a)(!Number.isInteger(r)||r<0||r>=t)&&xd(`group-indices`,`${n}.${i} references element ${r}`),e[r]=1;r[i]=e}return r}function Ld(e){(!Nd(e)||e.kind!==`geometry`)&&xd(`not-geometry`,`a geometry literal needs kind: 'geometry'`);let t=e.pointCount;(!Number.isSafeInteger(t)||t<0)&&xd(`point-count`,`pointCount must be a non-negative safe integer`);let n=e.topology,r=Sd();if(n!==void 0){Nd(n)||xd(`topology-shape`,`topology must be an object`),(!Hd(n.vertexPoints)||!Hd(n.offsets))&&xd(`topology-shape`,`topology needs vertexPoints and offsets`);let e=n.offsets.length-1;e<0&&xd(`offsets`,`topology.offsets needs primitiveCount + 1 entries`);let t=n.kinds,i=n.closed;t!==void 0&&!Ud(t)&&xd(`topology-shape`,`topology.kinds must be numeric`),i!==void 0&&(!Ud(i)||i.some(e=>e!==0&&e!==1))&&xd(`topology-shape`,`topology.closed must be numeric`),r={vertexPoints:Int32Array.from(n.vertexPoints),offsets:Int32Array.from(n.offsets),kinds:t===void 0?new Uint8Array(e):Uint8Array.from(t),closed:i===void 0?new Uint8Array(e):Uint8Array.from(i)}}let i={};for(let[t,n]of Object.entries(e.detail??{}))typeof n==`number`||typeof n==`string`?i[t]=n:Pd(n)?i[t]=[...n]:xd(`detail-value`,`detail.${t} must be a number, string, or number array`);return jd({pointCount:t,point:Fd(e.point,`point`),vertex:Fd(e.vertex,`vertex`),primitive:Fd(e.primitive,`primitive`),detail:i,topology:r,pointGroups:Id(e.pointGroups,t,`pointGroups`),primitiveGroups:Id(e.primitiveGroups,r.offsets.length-1,`primitiveGroups`)})}function Rd(e){try{return Ld(e),!0}catch{return!1}}function zd(e){if(!Nd(e)||e.kind!==`geometry-file`||typeof e.path!=`string`||e.path.length===0||e.format!==`npy`&&e.format!==`json`||e.format===`npy`&&e.attribute===void 0)return!1;if(e.attribute!==void 0){let t=e.attribute;if(!Nd(t)||t.level!==`point`&&t.level!==`vertex`&&t.level!==`primitive`||typeof t.name!=`string`||!yd.test(t.name)||bd.has(t.name)||typeof t.size!=`number`||!Number.isInteger(t.size)||t.size<1||typeof t.storage!=`string`||!vd.has(t.storage))return!1}for(let t of[`pointCount`,`primitiveCount`]){let n=e[t];if(n!==void 0&&(typeof n!=`number`||!Number.isSafeInteger(n)||n<0))return!1}return!0}function Bd(e){return Rd(e)||zd(e)}function Vd(e){return Pd(e)&&e.every(Number.isSafeInteger)}function Hd(e){return Vd(e)&&e.every(e=>e>=-2147483648&&e<=2147483647)}function Ud(e){return Vd(e)&&e.every(e=>e>=0&&e<=255)}var Wd=`float.int.bool.string.vec2.vec3.vec4.vec2i.vec3i.vec4i.mat2.mat3.mat4.image.texture.geometry.points.lines.polyline.mesh.rects.color.asset.array.object.any`.split(`.`),Gd=/^[A-Za-z][A-Za-z0-9_]*$/,Kd=/^[a-z][a-z0-9-]*(?:\.[A-Za-z][A-Za-z0-9_]*)+$/,qd=new Set([`__proto__`,`prototype`,`constructor`]),Jd=new Set(Wd),Yd=new Set([`number`,`slider`,`range`,`int`,`boolean`,`text`,`textarea`,`select`,`vector`,`matrix`,`color`,`image`,`asset`]),Xd={portable:[`assets`,`media`],browser:[`assets`,`media`,`gpu`],server:[`files`,`assets`,`media`,`python`,`shell`]},Zd=e=>new Set(e.split(` `)),Qd=Zd(`apiVersion runsOn container capabilities label description icon inputs outputs props`),$d=Zd(`kind type default description variadic min max step accept control options`),ef=Zd(`kind type description`),tf=Zd(`type default label description min max step accept control options expression`);function nf(e,t,n){return{phase:`definition`,code:`definition/${e}`,message:t,path:n}}function rf(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function af(e){return typeof e==`string`&&(Jd.has(e)||Kd.test(e))}function of(e){return e===null||typeof e==`string`||typeof e==`boolean`?!0:typeof e==`number`?Number.isFinite(e):Array.isArray(e)?e.every(of):rf(e)&&Object.values(e).every(of)}function sf(e,t,n){return Object.keys(e).filter(e=>!t.has(e)).map(e=>nf(`unknown-field`,`${n}.${e} is not allowed`,`${n}.${e}`))}function cf(e,t){if(!of(t))return!1;if(e===`geometry`)return Bd(t);if(e===`float`||e===`int`)return typeof t==`number`;if(e===`bool`)return typeof t==`boolean`;if(e===`string`)return typeof t==`string`;let n={vec2:2,vec3:3,vec4:4,vec2i:2,vec3i:3,vec4i:4,mat2:4,mat3:9,mat4:16,color:4}[e];return n===void 0||Array.isArray(t)&&t.length===n&&t.every(t=>e.endsWith(`i`)?Number.isInteger(t):typeof t==`number`)}function lf(e){if(!rf(e))return[nf(`not-object`,`Definition must be an object`)];let t=sf(e,Qd,`definition`),n=(e,n,r)=>t.push(nf(e,n,r)),r=e.runsOn;e.apiVersion!==1&&n(`api-version`,`apiVersion must be 1`,`apiVersion`),Object.prototype.hasOwnProperty.call(Xd,String(r))||n(`environment`,`runsOn must be portable, browser, or server`,`runsOn`),e.container!==void 0&&e.container!==`subnet`&&n(`invalid-container`,`container must be subnet`,`container`);let i=Xd[r]??[];e.capabilities!==void 0&&!Array.isArray(e.capabilities)&&n(`invalid-capabilities`,`capabilities must be an array`,`capabilities`);let a=new Set;for(let[t,o]of(Array.isArray(e.capabilities)?e.capabilities:[]).entries()){let e=`capabilities.${t}`;!a.has(o)&&!i.includes(o)&&n(`capability-not-allowed`,`${String(o)} is not available on ${String(r)}`,e),a.has(o)&&n(`duplicate-capability`,`${String(o)} is duplicated`,e),a.add(o)}let o=new Map,s=new Map;for(let i of[`inputs`,`outputs`,`props`]){let a=e[i];if(a!==void 0){if(!rf(a)){n(`invalid-section`,`${i} must be an object`,i);continue}for(let[e,c]of Object.entries(a)){let a=`${i}.${e}`;Gd.test(e)||n(`invalid-name`,`${e} is not a valid identifier`,a),qd.has(e)&&n(`reserved-name`,`${e} is reserved`,a);let l=i===`outputs`?s:o,u=l.get(e);if(u?n(`name-collision`,`${e} is declared in ${u} and ${i}`,a):l.set(e,i),!rf(c)){n(`invalid-entry`,`${a} must be an object`,a);continue}let d=i===`props`?tf:i===`outputs`?ef:$d;if(i!==`props`&&c.kind!==`data`&&c.kind!==`trigger`){n(`invalid-kind`,`${a}.kind must be data or trigger`,`${a}.kind`),t.push(...sf(c,d,a));continue}if(i!==`props`&&c.kind===`trigger`){Object.keys(c).some(e=>e!==`kind`&&e!==`description`)&&n(`trigger-extra`,`Trigger ports allow only kind and description`,a);continue}t.push(...sf(c,d,a)),`control`in c&&(typeof c.control!=`string`||!Yd.has(c.control))&&n(`invalid-control`,`${String(c.control)} is not a Cascade control`,`${a}.control`),`options`in c&&c.control!==`select`&&n(`options-without-select`,`options require the select control`,`${a}.options`);let f=c.type;if(!af(f)){n(`invalid-type`,`${String(f)} is not a Cascade type`,`${a}.type`);continue}f===`texture`&&r!==`browser`&&n(`texture-not-portable`,`texture is browser-only`,`${a}.type`),f===`texture`&&`default`in c&&n(`texture-default`,`texture cannot have a default`,`${a}.default`),i===`props`&&!(`default`in c)&&n(`missing-default`,`Props require defaults`,`${a}.default`),`default`in c&&!of(c.default)?n(`invalid-default`,`Default must be finite JSON`,`${a}.default`):`default`in c&&!cf(f,c.default)&&n(`default-type`,`Default does not match ${f}`,`${a}.default`),f===`int`&&`default`in c&&(!Number.isFinite(c.default)||!Number.isInteger(c.default))&&n(`non-integer`,`Integer defaults must be finite integers`,`${a}.default`),`step`in c&&(typeof c.step!=`number`||!Number.isFinite(c.step)||c.step<=0)&&n(`invalid-step`,`step must be greater than zero`,`${a}.step`),i===`props`&&`expression`in c&&(typeof c.expression!=`string`||c.expression.length===0)&&n(`invalid-expression`,`expression must be a non-empty string`,`${a}.expression`);for(let e of[`min`,`max`])e in c&&(typeof c[e]!=`number`||!Number.isFinite(c[e]))&&n(`invalid-${e}`,`${e} must be a finite number`,`${a}.${e}`);typeof c.min==`number`&&typeof c.max==`number`&&c.min>c.max&&n(`invalid-range`,`min must not exceed max`,a)}}}return t}var uf={report:()=>{}};function df(e){return{...e.label?{label:e.label}:{},...e.expression?{defaultExpression:e.expression}:{},...e.min===void 0?{}:{min:e.min},...e.max===void 0?{}:{max:e.max},...e.step===void 0?{}:{step:e.step},...e.options?{choices:e.options.map(e=>({value:e,label:String(e)}))}:{},promotable:!1}}function ff(e){return e&&typeof e.ensure==`function`&&typeof e.forNode==`function`?e:null}function pf(e,t,n){let r=t.definition,i=new Map,a=0;for(let[t,n]of Object.entries(r.inputs??{})){if(n.kind===`trigger`){let r=e.in(t,void 0,{type:`any`,...n.description?{description:n.description}:{}});r.portType=`trigger`,r.onTrigger=async n=>{let r=a++;i.set(t,{id:`${e.id}:${r}`,runId:`studio:${e.id}:${r}`,sequence:r,...n===void 0?{}:{payload:n},source:{kind:`external`}}),e.markDirty(),await e.execute()};continue}if(n.variadic){e.setVariadic(void 0,{type:n.type});continue}e.in(t,n.default,{type:n.type,...n.min===void 0?{}:{min:n.min},...n.max===void 0?{}:{max:n.max},...n.step===void 0?{}:{step:n.step},...n.options?{choices:n.options.map(e=>({value:e,label:String(e)}))}:{},...n.description?{description:n.description}:{}})}for(let[t,n]of Object.entries(r.outputs??{}))e.out(t,n.kind===`trigger`?`trigger`:`param`,n.kind===`data`?{type:n.type,description:n.description}:{description:n.description});for(let[t,n]of Object.entries(r.props??{})){let r=e.param(t,n.default,{type:n.type,...df(n)});r.documentField=`props`}let o=Object.values(r.inputs??{}).some(e=>e.kind===`trigger`),s;return async()=>{if(o&&i.size===0)return;for(let e of r.capabilities??[])if(!n[e])throw Error(`${t.moduleId} requires the Studio ${e} capability`);let a=await(s??=t.loadExecute(`browser`)),c={};for(let[t,n]of Object.entries(r.inputs??{}))c[t]=n.kind===`trigger`?i.get(t):n.variadic?e.getVariadicInputs().map(e=>e.value??void 0):e.inputs.find(e=>e.name===t)?.value;i.clear();let l=Object.fromEntries(Object.entries(r.outputs??{}).map(([n,r])=>{let i=e.outputs.find(e=>e.name===n);if(!i)throw Error(`Missing output ${t.moduleId}.${n}`);return[n,r.kind===`trigger`?{trigger:e=>i.trigger(e)}:{set:e=>i.setValue(e)}]})),u=n,d=(r.capabilities??[]).includes(`gpu`)?ff(n.gpu):null;d&&(await d.ensure(),u={...n,gpu:d.forNode(e.id)}),await a({nodeId:e.id,inputs:c,outputs:l,props:Object.fromEntries(e.parameters.map(e=>[e.name,e.value])),capabilities:u,signal:new AbortController().signal,progress:uf})}}function mf(e,t,n){e.setFunction(pf(e,t,n))}function hf(e,t={}){let n=new Map;for(let r of e){let e=r.moduleId.split(`.`);if(e.length!==3||e[0]!==`cascade`)throw Error(`Studio built-ins require cascade.<library>.<node>: ${r.moduleId}`);let i=e[1],a=Le(r.moduleId),o=n.get(i)??{};o[a]=class extends Ju{constructor(e,t){super(e,a,t)}setup(){mf(this,r,t)}},n.set(i,o),Ne({type:r.moduleId,name:r.definition.label??a,icon:r.definition.icon,description:r.definition.description,category:i})}for(let[e,t]of n)Ae(e,t)}function gf(e){return`/api/assets/${e.replace(/^\.\//,``).replace(/^assets\//,``).split(`/`).map(encodeURIComponent).join(`/`)}`}var _f={async read(e,{signal:t}){let n=await fetch(gf(e.path),{signal:t});if(!n.ok)throw Error(`Could not read asset ${e.path} (${n.status})`);return new Uint8Array(await n.arrayBuffer())},async write(e,t,{signal:n}){let r=t.suggestedName?.trim()||`asset.bin`,i=new FormData;i.append(`file`,new Blob([new Uint8Array(e)],{type:t.mediaType}),r);let a=await fetch(`/api/assets`,{method:`POST`,body:i,signal:n});if(!a.ok)throw Error(`Could not write asset ${r} (${a.status})`);let o=await a.json();if(!o.path)throw Error(`Asset upload returned no path for ${r}`);return{path:o.path,...t.mediaType?{mediaType:t.mediaType}:{}}},async resolveUrl(e){return{value:gf(e.path),release:()=>{}}}},vf=`\0page`,yf=`The gpu capability was used before its device was ready — the host must await ensure() before a cook.`;function bf(){let e=globalThis.navigator?.gpu;if(!e)return;let t=null,n=null,r={},i=null,a=!1,o=new Map;function s(){for(let e of o.values())for(let t of e.values())t.destroy?.(t.value);o.clear()}async function c(){let o=await e.requestAdapter();if(!o)throw Error(`No WebGPU adapter is available — the browser reports WebGPU but the system offers no GPU to render on.`);let c=await o.requestDevice(),l=o.info;t=c,n={vendor:l?.vendor??``,architecture:l?.architecture??``,device:l?.device??``,description:l?.description??``},r=xf(c.limits??o.limits),c.lost.then(e=>{a||e?.reason===`destroyed`||(t=null,i=null,s(),console.warn(`The GPU device was lost (${e?.reason??`unknown`}) — ${e?.message||`no message given`}. A fresh device will be requested on the next cook.`))})}let l={get device(){if(!t)throw Error(yf);return t},get adapterInfo(){if(!n)throw Error(yf);return n},get limits(){return r},cache(e,t,n){return l.forNode(vf).cache(e,t,n)},async ensure(){if(a)throw Error(`The gpu capability has been disposed.`);t||(i??=c().catch(e=>{throw i=null,e}),await i)},forNode(e){return{get device(){if(!t)throw Error(yf);return t},get adapterInfo(){if(!n)throw Error(yf);return n},get limits(){return r},cache(n,r,i){if(!t)throw Error(yf);let a=o.get(e);a||(a=new Map,o.set(e,a));let s=a.get(n);if(s)return s.value;let c=r(t);return a.set(n,{value:c,destroy:i}),c}}},async dispose(){a=!0,s(),t?.destroy(),t=null,i=null}};return l}function xf(e){if(!e||typeof e!=`object`)return{};let t={};for(let n of Sf(e)){let r=e[n];typeof r==`number`&&(t[n]=r)}return t}function Sf(e){let t=new Set(Object.keys(e));for(let n=Object.getPrototypeOf(e);n&&n!==Object.prototype;n=Object.getPrototypeOf(n))for(let e of Object.getOwnPropertyNames(n))e!==`constructor`&&t.add(e);return[...t]}var Cf={assets:_f,...wf()};function wf(){let e=bf();return e?{gpu:e}:{}}function Tf(e){return typeof e==`object`&&!!e&&e.apiVersion===1}function Ef(e){let t=lf(e);return t.length?t.map(e=>`${e.code}: ${e.message}`).join(`
|
|
7
|
-
`):null}function Df(e,t=Cf){let n=e?.capabilities;return Array.isArray(n)?n.filter(e=>typeof e==`string`).filter(e=>!t[e]):[]}function Of(e,t,n,r=Cf){let i=n.then(n=>kf(e,t,n,r));return i.catch(()=>{}),(e,t)=>i.then(n=>n(e,t))}function kf(e,t,n,r=Cf){if(!Tf(n.definition))return(e,t)=>n.execute(e,t);let i=Ef(n.definition);if(i)throw Error(`${t} exports an invalid definition-v1 literal:\n${i}`);return pf(e,{kind:`definition-v1`,moduleId:t,definition:n.definition,loadExecute:async()=>n.execute},r)}var Af=class{constructor(e,t=50){this.graph=e,this.debounceMs=t,this.timer=null,this.activeRun=null,this.rerunRequested=!1,this.listeners=new Set,this.idleResolvers=new Set,this._status={phase:`idle`,total:0,completed:0,currentNode:null,startedAt:null,elapsed:0}}get status(){return this._status}get isRunning(){return this.activeRun!==null}subscribe(e){return this.listeners.add(e),e(this._status),()=>this.listeners.delete(e)}notifyNodeStateChange(){this.emit()}markStale(e){let t=new Set,n=e=>{if(!t.has(e.id)){t.add(e.id),e.cookState!==`stale`&&e.invalidateCook();for(let t of e.outputs)for(let e of t.connections){let t=this.graph.getNode(e.to.nodeId);t&&n(t)}}};n(e),this.graph.getNode(e.id)===e&&this.schedule()}markDownstreamStale(e){for(let t of e.outputs)for(let e of t.connections){let t=this.graph.getNode(e.to.nodeId);t&&this.markStale(t)}}schedule(){if(this.activeRun){this.rerunRequested=!0;return}this.timer&&clearTimeout(this.timer);let e=this.graph.nodes.filter(e=>e.cookState===`stale`||e.cookState===`queued`).length;this.setStatus({phase:`scheduled`,total:e,completed:0,currentNode:null,startedAt:null,elapsed:0}),this.timer=setTimeout(()=>{this.timer=null,this.flushScheduled()},this.debounceMs)}async flush(e){await this.flushInternal(e,!0)}async flushScheduled(){await this.flushInternal(void 0,!1)}async flushInternal(e,t){if(this.timer&&=(clearTimeout(this.timer),null),t&&this.prepareErrorRetry(e),this.activeRun){this.rerunRequested=!0,await this.activeRun;return}this.activeRun=this.run(e).finally(()=>{this.activeRun=null}),await this.activeRun}prepareErrorRetry(e){let t=e?this.collectDownstream(e):null;for(let e of this.graph.nodes)e.cookState===`error`&&(!t||t.has(e.id))&&e.invalidateCook()}async whenIdle(){!this.activeRun&&!this.timer||await new Promise(e=>this.idleResolvers.add(e))}dispose(){this.timer&&clearTimeout(this.timer),this.timer=null,this.listeners.clear();for(let e of this.idleResolvers)e();this.idleResolvers.clear()}async run(e){let t=e?this.collectDownstream(e):null;do{this.rerunRequested=!1;let e=this.graph.nodes.filter(e=>(e.cookState===`stale`||e.cookState===`queued`)&&(!t||t.has(e.id)));if(t=null,e.length===0)break;let n=new Set(e.map(e=>e.id)),r=this.graph.getTopologicalOrder().map(e=>this.graph.getNode(e)).filter(e=>!!e&&n.has(e.id)),i=new Set(r.map(e=>e.id));for(let t of e)i.has(t.id)||r.push(t);for(let e of r)e.setCookState(`queued`);let a=performance.now();this.setStatus({phase:`cooking`,total:r.length,completed:0,currentNode:null,startedAt:a,elapsed:0});let o=new Set,s=!1;for(let e of r){if(e.inputs.some(e=>e.connections.some(e=>n.has(e.from.nodeId)&&(o.has(e.from.nodeId)||this.graph.getNode(e.from.nodeId)?.cookState===`error`)))){e.setCookState(`stale`),o.add(e.id),this.setStatus({...this._status,completed:this._status.completed+1,currentNode:null,elapsed:performance.now()-a});continue}e.setCookState(`cooking`),this.setStatus({...this._status,currentNode:e,elapsed:performance.now()-a}),await e.execute(),e.cookState===`error`&&o.add(e.id),e.cookState===`stale`&&(o.add(e.id),s=!0),this.setStatus({...this._status,completed:this._status.completed+1,currentNode:null,elapsed:performance.now()-a})}s&&(this.rerunRequested=!0)}while(this.rerunRequested);this.setStatus({phase:`idle`,total:0,completed:0,currentNode:null,startedAt:null,elapsed:0});for(let e of this.idleResolvers)e();this.idleResolvers.clear()}collectDownstream(e){let t=new Set,n=e=>{if(!t.has(e.id)){t.add(e.id);for(let t of e.outputs)for(let e of t.connections){let t=this.graph.getNode(e.to.nodeId);t&&n(t)}}};return n(e),t}setStatus(e){this._status=Object.freeze(e),this.emit()}emit(){for(let e of this.listeners)e(this._status)}};function jf(e){let t=e.split(`_`);if(t.length<3)throw Error(`Invalid port ID format: ${e}`);let n=t[t.length-2],r=parseInt(t[t.length-1],10);if(isNaN(r))throw Error(`Invalid port index in port ID: ${e}`);return{elementId:t.slice(0,-2).join(`_`),portType:n,index:r}}function Mf(e,t,n){return`${e}_${t}_${n}`}var Nf=class e{get created(){return this.createdAt}get elements(){return this._elements}set elements(e){this._elements=e,this._elementMap.clear();for(let t of e)this._elementMap.set(t.id,t)}constructor(e,t,n){this._elements=[],this._elementMap=new Map,this.connections=[],this._connectionMap=new Map,this.connectionIdCounter=0,this.project={packages:[]},this.createdAt=new Date().toISOString(),this.cookingNodes=new Set,this.executionState=`idle`,this.cachedTopologicalOrder=null,this.assetManager=e||new nd,this.packageManager=t||new sd,this.moduleResolver=n||ld(),this.scheduler=new Af(this)}isAnnotation(e){return e.isAnnotation===!0}get nodes(){return this._elements.filter(e=>!this.isAnnotation(e))}set nodes(e){this._elements=[...this._elements.filter(e=>this.isAnnotation(e)),...e]}get annotations(){return this._elements.filter(e=>this.isAnnotation(e))}set annotations(e){this._elements=[...this._elements.filter(e=>!this.isAnnotation(e)),...e]}generateUniqueNodeId(e,t){let n=e.replace(/\s+/g,``),r=n.match(/^(.+?)(\d+)?$/),i=r?r[1]:n,a=1,o=`${i}${a}`;for(;this._elements.some(e=>e.id===o&&(!t||e.id!==t));)a++,o=`${i}${a}`;return o}getElement(e){return this._elementMap.get(e)||null}getNode(e){let t=this.getElement(e);return t&&!this.isAnnotation(t)?t:null}getAnnotation(e){let t=this.getElement(e);return t&&this.isAnnotation(t)?t:null}nodeByPath(e){if(!e.startsWith(`/`))return null;let t=e.slice(1).split(`/`).filter(e=>e.length>0);if(t.length===0)return null;let n=this.nodes.find(e=>!e.parent&&e.id===t[0])??null;for(let e=1;n&&e<t.length;e++){if(!n.isNetwork())return null;n=n.children().find(n=>n.id===t[e])??null}return n}addElement(e){this._elements.push(e),this._elementMap.set(e.id,e),this.invalidateTopologicalOrder()}reparentElement(e,t){if(t){if(!t.isNetwork()||t===e)return!1;for(let n=t;n;n=n.parent)if(n===e)return!1}if(e.parent===t)return!0;let n=e.parent;if(n){let t=n.removeChild;typeof t==`function`?t.call(n,e):(n._children=n.children().filter(t=>t!==e),e.parent=null)}if(t){let n=t.addChild;typeof n==`function`?n.call(t,e):(e.parent=t,t._children.push(e))}return this.invalidateTopologicalOrder(),!0}removeElement(e){let t=this._elementMap.get(e);if(!t)return;let n=[],r=new Set,i=e=>{r.has(e)||(r.add(e),e.children().forEach(i),n.push(e))};i(t);let a=new Set(n.map(e=>e.id));this.connections.filter(e=>a.has(e.from.nodeId)||a.has(e.to.nodeId)).forEach(e=>this.disconnect(e.id));let o=this._connectionsToRestore;Array.isArray(o)&&(this._connectionsToRestore=o.filter(e=>{let t=Array.isArray(e?.[0])?e[0][0]:void 0,n=Array.isArray(e?.[1])?e[1][0]:void 0;return!a.has(t)&&!a.has(n)})),this._elements=this._elements.filter(e=>!a.has(e.id));for(let e of n)this._elementMap.delete(e.id),this.cookingNodes.delete(e);for(let e of n){let t=e.parent;if(t){let n=t.removeChild;typeof n==`function`?n.call(t,e):e.parent=null}}this.invalidateTopologicalOrder();for(let e of n)e.onDestroy?.()}renameElement(e,t){let n=this._elementMap.get(e);if(!n||!t||e!==t&&this._elementMap.has(t))return!1;if(e===t)return!0;let r=n.renameId(t);this._elementMap.delete(e),this._elementMap.set(t,n);for(let n of this.connections)n.from.nodeId===e&&(n.from.nodeId=t),n.to.nodeId===e&&(n.to.nodeId=t),n.from.portId=r.get(n.from.portId)??n.from.portId,n.to.portId=r.get(n.to.portId)??n.to.portId;let i=this._connectionsToRestore;if(Array.isArray(i))for(let n of i)for(let r of Array.isArray(n)?n:[])Array.isArray(r)&&r[0]===e&&(r[0]=t);for(let n of this.annotations)Array.isArray(n.containedElements)&&(n.containedElements=n.containedElements.map(n=>n===e?t:n));return this.invalidateTopologicalOrder(),!0}addNode(e,t){let n=Ie(e).toLowerCase().replace(/\s+/g,`_`),r=this.generateUniqueNodeId(n),i=Pe(e),a;if(a=i?new i(r,this):new Ju(r,Le(e),this),a.modulePath=e,Fe(e))a.sourceType=`stdlib`;else if(e.startsWith(`local.`))a.sourceType=`embedded`;else{let t=this.moduleResolver.getSourceType(e);a.sourceType=t||`embedded`}return a.position=t,this.addElement(a),a}retargetModule(e,t,n,r){return this.retargetDefinition(e,t,n,r,{preserveParameters:!1}).ok}retargetDefinition(e,t,n,r,i={}){let a=()=>({kept:[],defaulted:[],dropped:[],retyped:[]}),o=this.getNode(e);if(!o)return{ok:!1,deferred:!1,...a(),error:`no node with id ${e}`};let s=i.preserveParameters!==!1;s&&o.beginParameterCarryOver(),o.modulePath=t,o.sourceType=n,n===`embedded`&&r!==void 0&&(o.code=r);let c=n===`project`?pd(t):md(r??o.code);return o.setFunction(Of(o,t,c)),c.catch(e=>{o.abandonParameterCarryOver(),console.warn(`Failed to compile `+t+`:`,e)}),o.markDirty(),s&&i.parameters?{ok:!0,deferred:!1,...o.applyParameterDeclarations(i.parameters)??a()}:{ok:!0,deferred:s,...a()}}getRetargetReport(e){return this.getNode(e)?.lastCarryOverReport??null}removeNode(e){this.removeElement(e)}validateConnection(e,t){let n,r;try{let i=jf(e.id),a=jf(t.id);n=i.elementId,r=a.elementId}catch(e){return{valid:!1,error:`Invalid port ID format: ${e}`}}let i=this.getElement(n),a=this.getElement(r);if(!i||!a)return{valid:!1,error:`Element not found`};if(!this.isAnnotation(i)&&!this.isAnnotation(a)){let i=ud.validateConnection(this,n,r,e.id,t.id);if(i)return{valid:!1,error:i.message}}return{valid:!0}}checkDataTypeCompatibility(e,t){let n=Yl(e.dataType),r=Yl(t.dataType);return Xl(n,r)||{number:[`number[]`,`string`],float:[`number[]`],int:[`number[]`],string:[`number`,`float`,`int`]}[n]?.includes(r)?null:`Type mismatch: connecting ${n} to ${r}`}updateTypeMismatchWarnings(e){let t=this.getNode(e);if(!t)return;let n=[];for(let e of t.inputs)for(let t of e.connections){let r=this.getNode(t.from.nodeId);if(!r)continue;let i=r.outputs.find(e=>e.id===t.from.portId);if(!i)continue;let a=this.checkDataTypeCompatibility(i,e);a&&n.push(a)}n.length>0?t.warning=n.join(`; `):t.warning?.startsWith(`Type mismatch`)&&(t.warning=null)}connect(e,t){let n=this.validateConnection(e,t);if(!n.valid)throw Error(`Invalid connection: ${n.error}`);if(!t.variadic&&t.connections&&t.connections.length>0){let e=[...t.connections];for(let t of e)this.disconnect(t.id)}let r=jf(e.id),i=jf(t.id),a={id:`conn_${Date.now()}_${++this.connectionIdCounter}`,from:{nodeId:r.elementId,portId:e.id},to:{nodeId:i.elementId,portId:t.id},type:e.portType},o=e.connections.find(e=>e.to.nodeId===a.to.nodeId&&e.to.portId===a.to.portId);if(o)return o;if(this.connections.push(a),this._connectionMap.set(a.id,a),e.connections.push(a),t.connections.push(a),this.invalidateTopologicalOrder(),e.value!==void 0&&e.value!==null&&(t.value=e.value,t.onChange))try{t.onChange(e.value)}catch(e){console.error(`Error in onChange callback for port ${t.name}:`,e)}return this.syncVariadicPortsOnNode(i.elementId),this.updateTypeMismatchWarnings(i.elementId),this.getNode(i.elementId)?.markDirty(),a}disconnect(e){let t=this._connectionMap.get(e);if(!t)return;let n=this.getElement(t.from.nodeId),r=this.getElement(t.to.nodeId);if(n){let r=n.getPort(t.from.portId);r&&(r.connections=r.connections.filter(t=>t.id!==e))}if(r){let n=r.getPort(t.to.portId);if(n&&(n.connections=n.connections.filter(t=>t.id!==e),n.connections.length===0)){n.value=n.defaultValue;try{n.onChange?.(n.defaultValue)}catch(e){console.error(`Error in onChange callback for port ${n.name}:`,e)}}}let i=this.connections.findIndex(t=>t.id===e);i>=0&&this.connections.splice(i,1),this._connectionMap.delete(e),this.invalidateTopologicalOrder(),this.syncVariadicPortsOnNode(t.to.nodeId),this.updateTypeMismatchWarnings(t.to.nodeId),this.getNode(t.to.nodeId)?.markDirty()}syncVariadicPortsOnNode(e){let t=this.getNode(e);t&&t.syncVariadicPorts()}validate(){return ud.validateGraph(this)}async execute(e){this.executionState=`running`;try{await this.scheduler.flush(e)}finally{this.executionState=`idle`}}getTopologicalOrder(){return this.cachedTopologicalOrder||=ud.topologicalSort(this),this.cachedTopologicalOrder}invalidateTopologicalOrder(){this.cachedTopologicalOrder=null}stop(){this.executionState=`stopped`}reset(){this.nodes.forEach(e=>{e.error=null,e.warning=null,e.markDirty()}),this.cookingNodes.clear(),this.executionState=`idle`}clearCookingNodes(e){e?this.cookingNodes.forEach(t=>{t!==e&&t.setCook(!1)}):this.cookingNodes.forEach(e=>{e.setCook(!1)})}isDownstreamOfCooking(e){let t=new Set,n=e=>{if(t.has(e.id))return!1;if(t.add(e.id),this.cookingNodes.has(e))return!0;for(let t of e.inputs)for(let e of t.connections){let t=this.getNode(e.from.nodeId);if(t&&n(t))return!0}return!1};return n(e)}addAnnotation(e){let t;if(this.isAnnotation(e))t=e;else{let n=e;switch(n.type.charAt(0).toUpperCase()+n.type.slice(1).toLowerCase()){case`Image`:t=new Xu(n.id,this),t.src=n.src;break;case`Text`:t=new Zu(n.id,this),t.content=n.content;break;case`Group`:t=new Qu(n.id,this),t.content=n.content;break;case`Line`:t=new $u(n.id,this),n.endPosition&&(t.endPosition=n.endPosition);break;case`Polyline`:t=new ed(n.id,this),n.points&&(t.points=n.points);break;default:t=new Yu(n.id,n.type,this),n.content!==void 0&&(t.content=n.content),n.src!==void 0&&(t.src=n.src),n.endPosition&&(t.endPosition=n.endPosition),n.points&&(t.points=n.points)}t.position=n.position||{x:0,y:0},n.size&&(t.size=n.size),n.style&&(t.style={...n.style}),n.caption!==void 0&&(t.caption=n.caption),n.containedElements&&(t.containedElements=n.containedElements)}this.addElement(t),this.initializeAnnotationPorts(t).catch(e=>{console.error(`Failed to initialize ports for annotation ${t.id}:`,e)})}removeAnnotation(e){this.removeElement(e)}async initializeAnnotationPorts(e){if(e.outputs=[],e.type===`Image`){let t=e,n={id:Mf(e.id,`output`,0),name:`image`,portType:`param`,dataType:`asset`,value:null,connections:[],setValue:e=>{n.value=e,n.connections.forEach(t=>{let n=jf(t.to.portId),r=this.getElement(n.elementId);if(r&&!this.isAnnotation(r)){let t=r.getInputPort(n.index);t&&(t.value=e,t.onChange?.(e))}})},trigger:e=>{n.connections.forEach(t=>{let n=jf(t.to.portId),r=this.getElement(n.elementId);r&&!this.isAnnotation(r)&&r.getInputPort(n.index)?.onTrigger?.(e)})}};e.outputs.push(n);let r=t.src;if(r)try{let e=new Image;e.crossOrigin=`anonymous`,await new Promise((t,i)=>{e.onload=()=>{n.setValue(e),t()},e.onerror=i,e.src=r.startsWith(`/`)||r.startsWith(`http`)||r.startsWith(`data:`)?r:`/${r}`})}catch(t){console.error(`Failed to load image for annotation ${e.id}:`,t)}}else if(e.type===`Text`){let t=e;if(t.content!==void 0){let n={id:Mf(e.id,`output`,0),name:`text`,portType:`param`,dataType:`string`,value:t.content,connections:[],setValue:e=>{n.value=e,n.connections.forEach(t=>{let n=jf(t.to.portId),r=this.getElement(n.elementId);if(r&&!this.isAnnotation(r)){let t=r.getInputPort(n.index);t&&(t.value=e,t.onChange?.(e))}})},trigger:e=>{n.connections.forEach(t=>{let n=jf(t.to.portId),r=this.getElement(n.elementId);r&&!this.isAnnotation(r)&&r.getInputPort(n.index)?.onTrigger?.(e)})}};e.outputs.push(n)}}}validateExpressionPaths(){let e=[],t=/\b(?:ch|chs|chv)\s*\(\s*['"]([^'"]+)['"]\s*\)/g;for(let n of this.nodes)for(let[r,i]of Object.entries(n.props)){if(!i.expression)continue;let a=`${n.path()}/${r}`,o=i.expression.matchAll(t);for(let t of o){let r=t[1],o=this.resolvePathFromNode(n,r);o.node?o.parmName&&!o.node.props[o.parmName]&&e.push({location:a,expression:i.expression,brokenPath:r,suggestion:`Parameter "${o.parmName}" not found on node "${o.node.id}"`}):e.push({location:a,expression:i.expression,brokenPath:r,suggestion:this.suggestPathFix(n,r)})}}return{valid:e.length===0,warnings:e}}resolvePathFromNode(e,t){let n=t.lastIndexOf(`/`);if(n>0){let r=t.substring(n+1),i=t.substring(0,n),a=e.node(t);if(a)return{node:a};let o=e.node(i);if(o)return{node:o,parmName:r}}return{node:e.node(t)}}suggestPathFix(e,t){let n=t.replace(/^\.?\.?\//,``).split(`/`),r=n[n.length-1],i=this.nodes.filter(e=>e.id.toLowerCase().includes(r.toLowerCase())||r.toLowerCase().includes(e.id.toLowerCase()));if(i.length>0)return`Did you mean "${i[0].path()}"?`}toJSON(){let e={version:`0.2`,metadata:{name:this.project.name||`Cascade Graph`,created:this.createdAt,modified:new Date().toISOString(),...this.project.description?{description:this.project.description}:{},...this.project.author?{author:this.project.author}:{}}};this.project.packages.length>0&&(e.project={packages:this.project.packages.map(e=>({path:e.path,alias:e.alias}))});let t=this.moduleResolver.exportConfig();Object.keys(t.embeddedModules).length>0&&(e.embeddedModules=t.embeddedModules),Object.keys(t.externalModules).length>0&&(e.externalModules=t.externalModules);let n=this.packageManager.getCachedPackages().map(e=>{let[t,n]=e.split(`@`);return{name:t,version:n||`latest`}});n.length>0&&(e.packages=n);let r=this.assetManager.list().map(e=>({id:e.id,path:e.path,type:e.type,size:e.size}));r.length>0&&(e.assets={manifest:r});let i=this.annotations,a=this.nodes;i.length>0&&(e.annotations=i.map(e=>{let t={id:e.id,type:e.type,position:[e.position.x,e.position.y]},n=e;return n.content!==void 0&&(t.content=n.content),n.src!==void 0&&(t.src=n.src),e.size&&(t.size=e.size),n.points&&(t.points=n.points.map(e=>[e.x,e.y])),n.endPosition&&(t.endPosition=[n.endPosition.x,n.endPosition.y]),e.style&&(t.style=e.style),e.caption!==void 0&&(t.caption=e.caption),e.containedElements&&(t.containedElements=e.containedElements),e.parent&&(t.parent=e.parent.id),t})),e.nodes=a.map(e=>this.nodeToJSON(e));let o=this.connections.map(e=>{try{let t=jf(e.from.portId),n=jf(e.to.portId),r=this.getElement(t.elementId),i=this.getElement(n.elementId);if(!r||!i)return null;let a=r.outputs?.[t.index],o=i.inputs?.[n.index];return!a||!o?null:[[t.elementId,t.index,a.name],[n.elementId,n.index,o.name]]}catch(e){return console.warn(`Failed to parse port ID in connection: ${e}`),null}}).filter(e=>e!==null);return o.length>0&&(e.connections=o),e}nodeToJSON(e){let t=e,n=t.modulePath||(e.type.includes(`.`)?e.type:`cascade.image.${e.type}`),r=t.sourceType;r||=Fe(n)?`stdlib`:n.startsWith(`local.`)?`embedded`:this.moduleResolver.getSourceType(n)||`embedded`;let i={id:e.id,module:n,position:[e.position.x,e.position.y],source:r};if(r===`project`){let e=this.moduleResolver.exportConfig().externalModules[n];e&&(i.file=e.file)}i.source===`embedded`&&e.code&&(i.code=e.code),e.comment&&e.comment.trim()&&(i.comment=e.comment),e.color&&(i.color=e.color),e.parent&&(i.parent=e.parent.id);let a=t=>e.rawParameterValue(t.name),o=(e.parameters??[]).filter(t=>t.promoted||e.preservesPlainProp(t.name)||JSON.stringify(a(t))!==JSON.stringify(t.defaultValue)),s=o.filter(e=>e.documentField!==`props`).map(e=>e.promoted?{name:e.name,value:a(e),promoted:!0}:{name:e.name,value:a(e)});s.length>0&&(i.params=s);let c=e.inputs.filter(e=>(e.connections?.length??0)===0).filter(e=>e.value!==void 0&&e.value!==null).filter(e=>typeof e.value!=`function`).map(e=>({name:e.name,defaultValue:e.value,dataType:e.dataType})).filter(e=>e.defaultValue!==``||e.dataType===`string`);c.length>0&&(i.inputs=c);let l=Object.entries(e.props).reduce((t,[n,r])=>{let i=(r.channel?.keys?.length??0)>0;if(r.fromParameter&&!r.expression&&!i)return t;let a=r.value;if(r.type===`color`&&fl(a)){let e=ll(a);a=[e.r,e.g,e.b,e.a??1]}return t[n]=e.serializePropValue(n,a),t},{});for(let t of o)t.documentField===`props`&&(l[t.name]=e.serializePropValue(t.name,e.rawParameterValue(t.name)));if(Object.keys(l).length>0&&(i.props=l),e.bypass&&(i.bypass=!0),e.cook&&(i.cook=!0),typeof e.serialize==`function`){let t=e.serialize();t&&Object.keys(t).length>0&&(i.state=t)}return i}static fromJSON(t,n,r){let i=new e(n,r);t.version,typeof t.metadata?.created==`string`&&(i.createdAt=t.metadata.created),i.project={...i.project,...typeof t.metadata?.name==`string`?{name:t.metadata.name}:{},...typeof t.metadata?.description==`string`?{description:t.metadata.description}:{},...typeof t.metadata?.author==`string`?{author:t.metadata.author}:{}},t.project&&(i.project={...i.project,name:t.metadata?.name??i.project.name,description:t.metadata?.description??i.project.description,author:t.metadata?.author??i.project.author,packages:t.project.packages||[]},t.project.packages?.forEach(e=>{i.moduleResolver.addProjectPackage(e)})),t.embeddedModules&&i.moduleResolver.importConfig({embeddedModules:t.embeddedModules}),t.externalModules&&i.moduleResolver.importConfig({externalModules:t.externalModules}),t.packages&&Array.isArray(t.packages),t.nodes.forEach(e=>{let n=e.id;if(n){let e=1,t=n;for(;i.elements.some(e=>e.id===t);)e++,t=`${n}${e}`;n=t}else{let t=e.name||e.type||e.module;n=i.generateUniqueNodeId(t)}let r=e.module||e.type;if(!r||!r.includes(`.`)){console.warn(`Invalid node type format: ${r}. Expected package path (e.g., "cascade.image.Color"). Skipping node.`);return}let a=Le(r),o=e.source||(Fe(r)?`stdlib`:`embedded`),s=``;o===`embedded`?s=t.embeddedModules?.[r]?.code||e.code||``:o===`project`&&(s=t.externalModules?.[r]?.cachedCode||e.code||``);let c=Pe(r),l;if(c)l=new c(n,i);else if(r.startsWith(`cascade.`))throw Error(`Unknown Cascade node type: ${r}`);else l=new Ju(n,a,i);l.modulePath=r,l.sourceType=o,Array.isArray(e.position)?l.position={x:e.position[0]||0,y:e.position[1]||0}:e.position&&typeof e.position==`object`?l.position={x:e.position.x||0,y:e.position.y||0}:l.position={x:0,y:0},l.code=s,l.comment=e.comment||``,e.color&&(l.color=e.color),Array.isArray(e.params)&&e.params.forEach(e=>{if(!e?.name)return;let t=l.parameters.find(t=>t.name===e.name);if(t?(t.value=e.value,t.promoted=!!e.promoted):l.parameters.push({name:e.name,value:e.value,defaultValue:e.value,dataType:`any`,promoted:!!e.promoted,options:{}}),e.promoted){let t=l.in(e.name,e.value);t.fromParameter=e.name}}),i.addElement(l);let u=(e,t,n,r={})=>{if(!e)return;let i=l.inputs.find(t=>t.name===e),a=i??l.in(e,n?t:void 0,r.dataType?{type:r.dataType}:{});i&&n&&(i.value=t),r.id&&a.id!==r.id&&(a.id=r.id)};if(Array.isArray(e.inputs)?e.inputs.forEach(e=>{if(!e||typeof e!=`object`)return;let t=Object.prototype.hasOwnProperty.call(e,`defaultValue`),n=Object.prototype.hasOwnProperty.call(e,`value`);u(e.name,t?e.defaultValue:e.value,t||n,e)}):e.inputs&&typeof e.inputs==`object`&&Object.entries(e.inputs).forEach(([e,t])=>{u(e,t,!0)}),e.outputs&&Array.isArray(e.outputs)&&e.outputs.forEach(e=>{let t=l.out(e.name,e.portType||`param`);e.id&&t.id!==e.id&&(t.id=e.id)}),e.props&&Object.entries(e.props).forEach(([e,t])=>{let n,r;t&&typeof t==`object`&&`value`in t?(n=t.value,r=t.expression):n=t;let i=n;if(fl(n)){let e=ll(n);i=e.a!==void 0&&e.a!==1?{r:e.r,g:e.g,b:e.b,a:e.a}:{r:e.r,g:e.g,b:e.b}}let a=l.parameters.find(t=>t.name===e&&t.documentField===`props`);a?a.value=n:l.props[e]?l.props[e].value=i:l.props[e]={value:i},r&&l.props[e]?l.props[e].expression=r:l.preservePlainProp(e),!r&&l.props[e]?.expression&&(delete l.props[e].expression,l.props[e]={...l.props[e]}),t?.channel&&l.props[e]&&l.restorePropChannel(e,t.channel)}),e.bypass!==void 0&&l.setBypass(e.bypass),e.cook!==void 0&&l.setCook(e.cook),!c&&(o===`project`||l.code)){let e=o===`project`?pd(r):md(l.code);l.setFunction(Of(l,r,e)),e.catch(e=>{console.warn(`Failed to compile node `+l.id+`:`,e)})}if(e.state&&typeof l.deserialize==`function`)try{l.deserialize(e.state)}catch(e){console.warn(`Failed to deserialize state for node `+l.id+`:`,e)}});let a=t.connections||[];if(t.annotations&&Array.isArray(t.annotations)){let e=t.annotations.map(e=>{let t,n=Array.isArray(e.position)?{x:e.position[0]||0,y:e.position[1]||0}:{x:e.position?.x||0,y:e.position?.y||0};switch(e.type.charAt(0).toUpperCase()+e.type.slice(1).toLowerCase()){case`Image`:t=new Xu(e.id,i),t.src=e.src;break;case`Text`:t=new Zu(e.id,i),t.content=e.content;break;case`Group`:t=new Qu(e.id,i),t.content=e.content;break;case`Line`:t=new $u(e.id,i),e.endPosition&&(t.endPosition=Array.isArray(e.endPosition)?{x:e.endPosition[0]||0,y:e.endPosition[1]||0}:{x:e.endPosition.x||0,y:e.endPosition.y||0});break;case`Polyline`:t=new ed(e.id,i),e.points&&(t.points=e.points.map(e=>Array.isArray(e)?{x:e[0]||0,y:e[1]||0}:{x:e.x||0,y:e.y||0}));break;default:t=new Yu(e.id,e.type,i)}return t.position=n,e.size&&(t.size={width:e.size.width,height:e.size.height}),e.style&&(t.style={...e.style}),e.caption!==void 0&&(t.caption=e.caption),e.containedElements&&(t.containedElements=e.containedElements),t});e.forEach(e=>i.addElement(e)),i._annotationPortsInitialized=Promise.all(e.map(e=>i.initializeAnnotationPorts(e))).catch(e=>{console.error(`Failed to initialize some annotation ports:`,e)})}else i._annotationPortsInitialized=Promise.resolve();let o=[...Array.isArray(t.nodes)?t.nodes:[],...Array.isArray(t.annotations)?t.annotations:[]];for(let e of o){if(typeof e?.parent!=`string`)continue;let t=i.getElement(e.id),n=i.getElement(e.parent),r=t=>console.warn(`Parent link for "${e.id}" to "${e.parent}" ignored: ${t}; element loaded at root.`);if(!t)continue;if(!n){r(`parent does not exist`);continue}if(t===n){r(`self-parenting is invalid`);continue}if(!n.isNetwork()){r(`parent is not a network`);continue}let a=n,o=!1,s=new Set;for(;a&&!s.has(a);){if(a===t){o=!0;break}s.add(a),a=a.parent}if(o){r(`parent cycle detected`);continue}i.reparentElement(t,n)}let s=e=>{let t=0,n=e.parent,r=new Set;for(;n&&!r.has(n);)r.add(n),t++,n=n.parent;return t};return i.nodes.filter(e=>e.isNetwork()).sort((e,t)=>s(t)-s(e)).forEach(e=>e.syncPorts?.()),i._connectionsToRestore=a,a.forEach(e=>{i.tryRestoreConnection(e,!1)}),i}async waitForAnnotationPorts(){let e=this._annotationPortsInitialized;e&&await e}tryRestoreConnection(e,t=!1){if(!Array.isArray(e)||!Array.isArray(e[0])||!Array.isArray(e[1]))return!1;let[n,r,i]=e[0],[a,o,s]=e[1];if(typeof r!=`number`||typeof o!=`number`)return!1;let c=this.getElement(n),l=this.getElement(a);if(!c||!l)return!1;let u=(e,t)=>typeof t==`string`?e?.find(e=>e.name===t):void 0,d=(e,t,n)=>typeof t==`string`?u(e,t):e?.[n],f=d(c.outputs,i,r),p=d(l.inputs,s,o);if(!f||!p)return!1;if(t&&this.connections.some(e=>e.from.nodeId===n&&e.from.portId===f.id&&e.to.nodeId===a&&e.to.portId===p.id))return!0;try{return this.connect(f,p),!0}catch(e){return console.warn(`[connect] ${n}[${r}] -> ${a}[${o}] rejected:`,e),!1}}restoreConnections(){let e=this._connectionsToRestore||[];if(e.length===0)return;let t=e.filter(e=>!this.tryRestoreConnection(e,!0));t.length>0?this._connectionsToRestore=t:delete this._connectionsToRestore}};function Pf(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function Ff(e){if(Array.isArray(e))return e}function If(e,t){var n=e==null?null:typeof Symbol<`u`&&e[Symbol.iterator]||e[`@@iterator`];if(n!=null){var r,i,a,o,s=[],c=!0,l=!1;try{if(a=(n=n.call(e)).next,t!==0)for(;!(c=(r=a.call(n)).done)&&(s.push(r.value),s.length!==t);c=!0);}catch(e){l=!0,i=e}finally{try{if(!c&&n.return!=null&&(o=n.return(),Object(o)!==o))return}finally{if(l)throw i}}return s}}function Lf(){throw TypeError(`Invalid attempt to destructure non-iterable instance.
|
|
8
|
-
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function Rf(e,t){return Ff(e)||If(e,t)||zf(e,t)||Lf()}function zf(e,t){if(e){if(typeof e==`string`)return Pf(e,t);var n={}.toString.call(e).slice(8,-1);return n===`Object`&&e.constructor&&(n=e.constructor.name),n===`Map`||n===`Set`?Array.from(e):n===`Arguments`||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?Pf(e,t):void 0}}var Bf=Object.entries,Vf=Object.setPrototypeOf,Hf=Object.isFrozen,Uf=Object.getPrototypeOf,Wf=Object.getOwnPropertyDescriptor,Gf=Object.freeze,Kf=Object.seal,qf=Object.create,Jf=typeof Reflect<`u`&&Reflect,Yf=Jf.apply,Xf=Jf.construct;Gf||=function(e){return e},Kf||=function(e){return e},Yf||=function(e,t){var n=[...arguments].slice(2);return e.apply(t,n)},Xf||=function(e){return new e(...[...arguments].slice(1))};var Zf=_p(Array.prototype.forEach),Qf=_p(Array.prototype.lastIndexOf),$f=_p(Array.prototype.pop),ep=_p(Array.prototype.push),tp=_p(Array.prototype.splice),np=Array.isArray,rp=_p(String.prototype.toLowerCase),ip=_p(String.prototype.toString),ap=_p(String.prototype.match),op=_p(String.prototype.replace),sp=_p(String.prototype.indexOf),cp=_p(String.prototype.trim),lp=_p(Number.prototype.toString),up=_p(Boolean.prototype.toString),dp=typeof BigInt>`u`?null:_p(BigInt.prototype.toString),fp=typeof Symbol>`u`?null:_p(Symbol.prototype.toString),pp=_p(Object.prototype.hasOwnProperty),mp=_p(Object.prototype.toString),hp=_p(RegExp.prototype.test),gp=vp(TypeError);function _p(e){return function(t){t instanceof RegExp&&(t.lastIndex=0);var n=[...arguments].slice(1);return Yf(e,t,n)}}function vp(e){return function(){return Xf(e,[...arguments])}}function yp(e,t){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:rp;if(Vf&&Vf(e,null),!np(t))return e;let r=t.length;for(;r--;){let i=t[r];if(typeof i==`string`){let e=n(i);e!==i&&(Hf(t)||(t[r]=e),i=e)}e[i]=!0}return e}function bp(e){for(let t=0;t<e.length;t++)pp(e,t)||(e[t]=null);return e}function xp(e){let t=qf(null);for(let r of Bf(e)){var n=Rf(r,2);let i=n[0],a=n[1];pp(e,i)&&(t[i]=np(a)?bp(a):a&&typeof a==`object`&&a.constructor===Object?xp(a):a)}return t}function Sp(e){switch(typeof e){case`string`:return e;case`number`:return lp(e);case`boolean`:return up(e);case`bigint`:return dp?dp(e):`0`;case`symbol`:return fp?fp(e):`Symbol()`;case`undefined`:return mp(e);case`function`:case`object`:{if(e===null)return mp(e);let t=e,n=Cp(t,`toString`);if(typeof n==`function`){let e=n(t);return typeof e==`string`?e:mp(e)}return mp(e)}default:return mp(e)}}function Cp(e,t){for(;e!==null;){let n=Wf(e,t);if(n){if(n.get)return _p(n.get);if(typeof n.value==`function`)return _p(n.value)}e=Uf(e)}function n(){return null}return n}function wp(e){try{return hp(e,``),!0}catch{return!1}}var Tp=Gf(`a.abbr.acronym.address.area.article.aside.audio.b.bdi.bdo.big.blink.blockquote.body.br.button.canvas.caption.center.cite.code.col.colgroup.content.data.datalist.dd.decorator.del.details.dfn.dialog.dir.div.dl.dt.element.em.fieldset.figcaption.figure.font.footer.form.h1.h2.h3.h4.h5.h6.head.header.hgroup.hr.html.i.img.input.ins.kbd.label.legend.li.main.map.mark.marquee.menu.menuitem.meter.nav.nobr.ol.optgroup.option.output.p.picture.pre.progress.q.rp.rt.ruby.s.samp.search.section.select.shadow.slot.small.source.spacer.span.strike.strong.style.sub.summary.sup.table.tbody.td.template.textarea.tfoot.th.thead.time.tr.track.tt.u.ul.var.video.wbr`.split(`.`)),Ep=Gf(`svg.a.altglyph.altglyphdef.altglyphitem.animatecolor.animatemotion.animatetransform.circle.clippath.defs.desc.ellipse.enterkeyhint.exportparts.filter.font.g.glyph.glyphref.hkern.image.inputmode.line.lineargradient.marker.mask.metadata.mpath.part.path.pattern.polygon.polyline.radialgradient.rect.stop.style.switch.symbol.text.textpath.title.tref.tspan.view.vkern`.split(`.`)),Dp=Gf([`feBlend`,`feColorMatrix`,`feComponentTransfer`,`feComposite`,`feConvolveMatrix`,`feDiffuseLighting`,`feDisplacementMap`,`feDistantLight`,`feDropShadow`,`feFlood`,`feFuncA`,`feFuncB`,`feFuncG`,`feFuncR`,`feGaussianBlur`,`feImage`,`feMerge`,`feMergeNode`,`feMorphology`,`feOffset`,`fePointLight`,`feSpecularLighting`,`feSpotLight`,`feTile`,`feTurbulence`]),Op=Gf([`animate`,`color-profile`,`cursor`,`discard`,`font-face`,`font-face-format`,`font-face-name`,`font-face-src`,`font-face-uri`,`foreignobject`,`hatch`,`hatchpath`,`mesh`,`meshgradient`,`meshpatch`,`meshrow`,`missing-glyph`,`script`,`set`,`solidcolor`,`unknown`,`use`]),kp=Gf(`math.menclose.merror.mfenced.mfrac.mglyph.mi.mlabeledtr.mmultiscripts.mn.mo.mover.mpadded.mphantom.mroot.mrow.ms.mspace.msqrt.mstyle.msub.msup.msubsup.mtable.mtd.mtext.mtr.munder.munderover.mprescripts`.split(`.`)),Ap=Gf([`maction`,`maligngroup`,`malignmark`,`mlongdiv`,`mscarries`,`mscarry`,`msgroup`,`mstack`,`msline`,`msrow`,`semantics`,`annotation`,`annotation-xml`,`mprescripts`,`none`]),jp=Gf([`#text`]),Mp=Gf(`accept.action.align.alt.autocapitalize.autocomplete.autopictureinpicture.autoplay.background.bgcolor.border.capture.cellpadding.cellspacing.checked.cite.class.clear.color.cols.colspan.command.commandfor.controls.controlslist.coords.crossorigin.datetime.decoding.default.dir.disabled.disablepictureinpicture.disableremoteplayback.download.draggable.enctype.enterkeyhint.exportparts.face.for.headers.height.hidden.high.href.hreflang.id.inert.inputmode.integrity.ismap.kind.label.lang.list.loading.loop.low.max.maxlength.media.method.min.minlength.multiple.muted.name.nonce.noshade.novalidate.nowrap.open.optimum.part.pattern.placeholder.playsinline.popover.popovertarget.popovertargetaction.poster.preload.pubdate.radiogroup.readonly.rel.required.rev.reversed.role.rows.rowspan.spellcheck.scope.selected.shape.size.sizes.slot.span.srclang.start.src.srcset.step.style.summary.tabindex.title.translate.type.usemap.valign.value.width.wrap.xmlns`.split(`.`)),Np=Gf(`accent-height.accumulate.additive.alignment-baseline.amplitude.ascent.attributename.attributetype.azimuth.basefrequency.baseline-shift.begin.bias.by.class.clip.clippathunits.clip-path.clip-rule.color.color-interpolation.color-interpolation-filters.color-profile.color-rendering.cx.cy.d.dx.dy.diffuseconstant.direction.display.divisor.dominant-baseline.dur.edgemode.elevation.end.exponent.fill.fill-opacity.fill-rule.filter.filterunits.flood-color.flood-opacity.font-family.font-size.font-size-adjust.font-stretch.font-style.font-variant.font-weight.fx.fy.g1.g2.glyph-name.glyphref.gradientunits.gradienttransform.height.href.id.image-rendering.in.in2.intercept.k.k1.k2.k3.k4.kerning.keypoints.keysplines.keytimes.lang.lengthadjust.letter-spacing.kernelmatrix.kernelunitlength.lighting-color.local.marker-end.marker-mid.marker-start.markerheight.markerunits.markerwidth.maskcontentunits.maskunits.max.mask.mask-type.media.method.mode.min.name.numoctaves.offset.operator.opacity.order.orient.orientation.origin.overflow.paint-order.path.pathlength.patterncontentunits.patterntransform.patternunits.pointer-events.points.preservealpha.preserveaspectratio.primitiveunits.r.rx.ry.radius.refx.refy.repeatcount.repeatdur.restart.result.rotate.scale.seed.shape-rendering.slope.specularconstant.specularexponent.spreadmethod.startoffset.stddeviation.stitchtiles.stop-color.stop-opacity.stroke-dasharray.stroke-dashoffset.stroke-linecap.stroke-linejoin.stroke-miterlimit.stroke-opacity.stroke.stroke-width.style.surfacescale.systemlanguage.tabindex.tablevalues.targetx.targety.transform.transform-origin.text-anchor.text-decoration.text-orientation.text-rendering.textlength.type.u1.u2.unicode.values.vector-effect.viewbox.visibility.version.vert-adv-y.vert-origin-x.vert-origin-y.width.word-spacing.wrap.writing-mode.xchannelselector.ychannelselector.x.x1.x2.xmlns.y.y1.y2.z.zoomandpan`.split(`.`)),Pp=Gf(`accent.accentunder.align.bevelled.close.columnalign.columnlines.columnspacing.columnspan.denomalign.depth.dir.display.displaystyle.encoding.fence.frame.height.href.id.largeop.length.linethickness.lquote.lspace.mathbackground.mathcolor.mathsize.mathvariant.maxsize.minsize.movablelimits.notation.numalign.open.rowalign.rowlines.rowspacing.rowspan.rspace.rquote.scriptlevel.scriptminsize.scriptsizemultiplier.selection.separator.separators.stretchy.subscriptshift.supscriptshift.symmetric.voffset.width.xmlns`.split(`.`)),Fp=Gf([`xlink:href`,`xml:id`,`xlink:title`,`xml:space`,`xmlns:xlink`]),Ip=Kf(/{{[\w\W]*|^[\w\W]*}}/g),Lp=Kf(/<%[\w\W]*|^[\w\W]*%>/g),Rp=Kf(/\${[\w\W]*/g),zp=Kf(/^data-[\-\w.\u00B7-\uFFFF]+$/),Bp=Kf(/^aria-[\-\w]+$/),Vp=Kf(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|sms|cid|xmpp|matrix):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i),Hp=Kf(/^(?:\w+script|data):/i),Up=Kf(/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205F\u3000]/g),Wp=Kf(/^html$/i),Gp=Kf(/^[a-z][.\w]*(-[.\w]+)+$/i),Kp=Kf(/<[/\w!]/g),qp=Kf(/<[/\w]/g),Jp=Kf(/<\/no(script|embed|frames)/i),Yp=Kf(/\/>/i),Xp={element:1,attribute:2,text:3,cdataSection:4,entityReference:5,entityNode:6,processingInstruction:7,comment:8,document:9,documentType:10,documentFragment:11,notation:12},Zp=[`style`,`script`,`xmp`,`iframe`,`noembed`,`noframes`,`plaintext`,`noscript`],Qp=Gf(yp({},Zp)),$p=function(){let e={};return Zf(Zp,t=>{e[t]=Kf(RegExp(`</`+t+`(?=[\\t\\n\\f\\r />])`,`i`))}),Gf(e)}(),em=function(){return typeof window>`u`?null:window},tm=function(e,t){if(typeof e!=`object`||typeof e.createPolicy!=`function`)return null;let n=null,r=`data-tt-policy-suffix`;t&&t.hasAttribute(r)&&(n=t.getAttribute(r));let i=`dompurify`+(n?`#`+n:``);try{return e.createPolicy(i,{createHTML(e){return e},createScriptURL(e){return e}})}catch{return console.warn(`TrustedTypes policy `+i+` could not be created.`),null}},nm=function(){return{afterSanitizeAttributes:[],afterSanitizeElements:[],afterSanitizeShadowDOM:[],beforeSanitizeAttributes:[],beforeSanitizeElements:[],beforeSanitizeShadowDOM:[],uponSanitizeAttribute:[],uponSanitizeElement:[],uponSanitizeShadowNode:[]}},rm=function(e,t,n,r){return pp(e,t)&&np(e[t])?yp(r.base?xp(r.base):{},e[t],r.transform):n},im=function(e,t,n){let r=pp(e,t)?e[t]:void 0;return r&&typeof r==`object`?xp(r):n()};function am(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:em(),t=e=>am(e);if(t.version=`3.4.14`,t.removed=[],!e||!e.document||e.document.nodeType!==Xp.document||!e.Element)return t.isSupported=!1,t;let n=e.document,r=n,i=r.currentScript;e.DocumentFragment;let a=e.HTMLTemplateElement,o=e.Node,s=e.Element,c=e.NodeFilter;e.NamedNodeMap===void 0&&(e.NamedNodeMap||e.MozNamedAttrMap),e.HTMLFormElement;let l=e.DOMParser,u=e.trustedTypes,d=s.prototype,f=Cp(d,`cloneNode`),p=Cp(d,`remove`),m=Cp(d,`nextSibling`),h=Cp(d,`childNodes`),g=Cp(d,`parentNode`),_=Cp(d,`shadowRoot`),v=Cp(d,`attributes`),y=o&&o.prototype?Cp(o.prototype,`nodeType`):null,b=o&&o.prototype?Cp(o.prototype,`nodeName`):null,x=o&&o.prototype?Cp(o.prototype,`ownerDocument`):null,S=function(e){return y?y(e):e.nodeType},C=function(e){return b?b(e):e.nodeName};if(typeof a==`function`){let e=n.createElement(`template`);e.content&&e.content.ownerDocument&&(n=e.content.ownerDocument)}let w,T=``,ee,E=!1,D=0,te=function(){if(D>0)throw gp(`A configured TRUSTED_TYPES_POLICY callback (createHTML or createScriptURL) must not call DOMPurify.sanitize, as that causes infinite recursion. Do not pass a policy whose callbacks wrap DOMPurify as TRUSTED_TYPES_POLICY; see the "DOMPurify and Trusted Types" section of the README.`)},O=function(e){te(),D++;try{return w.createHTML(e)}finally{D--}},k=function(e){te(),D++;try{return w.createScriptURL(e)}finally{D--}},A=function(){return E||=(ee=tm(u,i),!0),ee},ne=n,j=ne.implementation,M=ne.createNodeIterator,re=ne.createDocumentFragment,N=ne.getElementsByTagName,ie=r.importNode,P=nm();t.isSupported=typeof Bf==`function`&&typeof g==`function`&&j&&j.createHTMLDocument!==void 0;let ae=Ip,oe=Lp,F=Rp,I=zp,L=Bp,R=Hp,z=Up,se=Gp,B=Vp,V=null,ce=yp({},[...Tp,...Ep,...Dp,...kp,...jp]),le=null,H=yp({},[...Mp,...Np,...Pp,...Fp]),U=Object.seal(qf(null,{tagNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},attributeNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},allowCustomizedBuiltInElements:{writable:!0,configurable:!1,enumerable:!0,value:!1}})),ue=null,de=null,fe=Object.seal(qf(null,{tagCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},attributeCheck:{writable:!0,configurable:!1,enumerable:!0,value:null}})),pe=!0,me=!0,he=!1,W=!0,G=!1,ge=!0,_e=!1,ve=!1,ye=null,K=null,be=!1,q=!1,xe=!1,J=!1,Se=!0,Y=!1,Ce=`user-content-`,we=!0,Te=!1,Ee={},X=null,De=yp({},`annotation-xml.audio.colgroup.desc.foreignobject.head.iframe.math.mi.mn.mo.ms.mtext.noembed.noframes.noscript.plaintext.script.selectedcontent.style.svg.template.thead.title.video.xmp`.split(`.`)),Oe=null,ke=yp({},[`audio`,`video`,`img`,`source`,`image`,`track`]),Z=null,Ae=yp({},[`alt`,`class`,`for`,`id`,`label`,`name`,`pattern`,`placeholder`,`role`,`summary`,`title`,`value`,`style`,`xmlns`]),je=`http://www.w3.org/1998/Math/MathML`,Me=`http://www.w3.org/2000/svg`,Ne=`http://www.w3.org/1999/xhtml`,Pe=Ne,Fe=!1,Ie=null,Le=yp({},[je,Me,Ne],ip),Re=Gf([`mi`,`mo`,`mn`,`ms`,`mtext`]),ze=yp({},Re),Be=Gf([`annotation-xml`]),Ve=yp({},Be),He=yp({},[`title`,`style`,`font`,`a`,`script`]),Ue=null,We=[`application/xhtml+xml`,`text/html`],Q=null,Ge=null,Ke=n.createElement(`form`),qe=function(e){return e instanceof RegExp||e instanceof Function},Je=function(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};if(Ge&&Ge===e)return;(!e||typeof e!=`object`)&&(e={}),e=xp(e),Ue=We.indexOf(e.PARSER_MEDIA_TYPE)===-1?`text/html`:e.PARSER_MEDIA_TYPE,Q=Ue===`application/xhtml+xml`?ip:rp,V=rm(e,`ALLOWED_TAGS`,ce,{transform:Q}),le=rm(e,`ALLOWED_ATTR`,H,{transform:Q}),Ie=rm(e,`ALLOWED_NAMESPACES`,Le,{transform:ip}),Z=rm(e,`ADD_URI_SAFE_ATTR`,Ae,{transform:Q,base:Ae}),Oe=rm(e,`ADD_DATA_URI_TAGS`,ke,{transform:Q,base:ke}),X=rm(e,`FORBID_CONTENTS`,De,{transform:Q}),ue=rm(e,`FORBID_TAGS`,xp({}),{transform:Q}),de=rm(e,`FORBID_ATTR`,xp({}),{transform:Q}),Ee=pp(e,`USE_PROFILES`)?e.USE_PROFILES&&typeof e.USE_PROFILES==`object`?xp(e.USE_PROFILES):e.USE_PROFILES:!1,pe=e.ALLOW_ARIA_ATTR!==!1,me=e.ALLOW_DATA_ATTR!==!1,he=e.ALLOW_UNKNOWN_PROTOCOLS||!1,W=e.ALLOW_SELF_CLOSE_IN_ATTR!==!1,G=e.SAFE_FOR_TEMPLATES||!1,ge=e.SAFE_FOR_XML!==!1,_e=e.WHOLE_DOCUMENT||!1,q=e.RETURN_DOM||!1,xe=e.RETURN_DOM_FRAGMENT||!1,J=e.RETURN_TRUSTED_TYPE||!1,be=e.FORCE_BODY||!1,Se=e.SANITIZE_DOM!==!1,Y=e.SANITIZE_NAMED_PROPS||!1,we=e.KEEP_CONTENT!==!1,Te=e.IN_PLACE||!1,B=wp(e.ALLOWED_URI_REGEXP)?e.ALLOWED_URI_REGEXP:Vp,Pe=typeof e.NAMESPACE==`string`?e.NAMESPACE:Ne,ze=im(e,`MATHML_TEXT_INTEGRATION_POINTS`,()=>yp({},Re)),Ve=im(e,`HTML_INTEGRATION_POINTS`,()=>yp({},Be));let t=im(e,`CUSTOM_ELEMENT_HANDLING`,()=>qf(null));if(U=qf(null),pp(t,`tagNameCheck`)&&qe(t.tagNameCheck)&&(U.tagNameCheck=t.tagNameCheck),pp(t,`attributeNameCheck`)&&qe(t.attributeNameCheck)&&(U.attributeNameCheck=t.attributeNameCheck),pp(t,`allowCustomizedBuiltInElements`)&&typeof t.allowCustomizedBuiltInElements==`boolean`&&(U.allowCustomizedBuiltInElements=t.allowCustomizedBuiltInElements),Kf(U),G&&(me=!1),xe&&(q=!0),Ee&&(V=yp({},jp),le=qf(null),Ee.html===!0&&(yp(V,Tp),yp(le,Mp)),Ee.svg===!0&&(yp(V,Ep),yp(le,Np),yp(le,Fp)),Ee.svgFilters===!0&&(yp(V,Dp),yp(le,Np),yp(le,Fp)),Ee.mathMl===!0&&(yp(V,kp),yp(le,Pp),yp(le,Fp))),fe.tagCheck=null,fe.attributeCheck=null,pp(e,`ADD_TAGS`)&&(typeof e.ADD_TAGS==`function`?fe.tagCheck=e.ADD_TAGS:np(e.ADD_TAGS)&&(V===ce&&(V=xp(V)),yp(V,e.ADD_TAGS,Q))),pp(e,`ADD_ATTR`)&&(typeof e.ADD_ATTR==`function`?fe.attributeCheck=e.ADD_ATTR:np(e.ADD_ATTR)&&(le===H&&(le=xp(le)),yp(le,e.ADD_ATTR,Q))),pp(e,`ADD_FORBID_CONTENTS`)&&np(e.ADD_FORBID_CONTENTS)&&(X===De&&(X=xp(X)),yp(X,e.ADD_FORBID_CONTENTS,Q)),we&&(V[`#text`]=!0),_e&&yp(V,[`html`,`head`,`body`]),V.table&&(yp(V,[`tbody`]),delete ue.tbody),e.TRUSTED_TYPES_POLICY){if(typeof e.TRUSTED_TYPES_POLICY.createHTML!=`function`)throw gp(`TRUSTED_TYPES_POLICY configuration option must provide a "createHTML" hook.`);if(typeof e.TRUSTED_TYPES_POLICY.createScriptURL!=`function`)throw gp(`TRUSTED_TYPES_POLICY configuration option must provide a "createScriptURL" hook.`);let t=w;w=e.TRUSTED_TYPES_POLICY;try{T=O(``)}catch(e){throw w=t,e}}else e.TRUSTED_TYPES_POLICY===null?(w=void 0,T=``):(w===void 0&&(w=A()),w&&typeof T==`string`&&(T=O(``)));Gf&&Gf(e),Ge=e},Ye=yp({},[...Ep,...Dp,...Op]),Xe=yp({},[...kp,...Ap]),Ze=function(e,t,n){return t.namespaceURI===Ne?e===`svg`:t.namespaceURI===je?e===`svg`&&(n===`annotation-xml`||ze[n]):!!Ye[e]},$=function(e,t,n){return t.namespaceURI===Ne?e===`math`:t.namespaceURI===Me?e===`math`&&Ve[n]:!!Xe[e]},Qe=function(e,t,n){return t.namespaceURI===Me&&!Ve[n]||t.namespaceURI===je&&!ze[n]?!1:!Xe[e]&&(He[e]||!Ye[e])},$e=function(e){let t=g(e);(!t||!t.tagName)&&(t={namespaceURI:Pe,tagName:`template`});let n=rp(e.tagName),r=rp(t.tagName);return Ie[e.namespaceURI]?e.namespaceURI===Me?Ze(n,t,r):e.namespaceURI===je?$(n,t,r):e.namespaceURI===Ne?Qe(n,t,r):!!(Ue===`application/xhtml+xml`&&Ie[e.namespaceURI]):!1},et=function(e){ep(t.removed,{element:e});try{g(e).removeChild(e)}catch{if(p(e),!g(e))throw gp(`a node selected for removal could not be detached from its tree and cannot be safely returned; refusing to sanitize in place`)}},tt=function(e,t,n){try{e.removeAttributeNode(t)}catch{try{e.removeAttribute(n)}catch{}}},nt=function(e){at(e);let t=h(e);if(t){let e=[];Zf(t,t=>{ep(e,t)}),Zf(e,e=>{try{p(e)}catch{}})}let n=v(e);if(n)for(let t=n.length-1;t>=0;--t){let r=n[t],i=r&&r.name;typeof i==`string`&&tt(e,r,i)}},rt=function(e,n,r){if(!r)try{r=n.getAttributeNode(e)}catch{r=null}ep(t.removed,{attribute:r||null,from:n});try{r?n.removeAttributeNode(r):n.removeAttribute(e)}catch{try{n.removeAttribute(e)}catch{}}if(e===`is`){if(q||xe)try{et(n)}catch{}else try{n.setAttribute(e,``)}catch{}}},it=function(e){let t=v(e);if(t)for(let n=t.length-1;n>=0;--n){let r=t[n],i=r&&r.name;typeof i!=`string`||le[Q(i)]||tt(e,r,i)}},at=function(e){let t=[e];for(;t.length>0;){let e=t.pop();S(e)===Xp.element&&it(e);let n=h(e);if(n)for(let e=n.length-1;e>=0;--e)t.push(n[e])}},ot=function(e,t){return ge?e===`patchsrc`||e===`for`&&t!==`label`&&t!==`output`:!1},st=function(e){if(!ge)return;let t=[e];for(;t.length>0;){let e=t.pop(),n=S(e);if(n===Xp.processingInstruction||n===Xp.comment&&hp(qp,e.data)){try{p(e)}catch{}continue}if(n===Xp.element){let t=e,n=Q(C(e));try{t.hasAttribute&&t.hasAttribute(`patchsrc`)&&t.removeAttribute(`patchsrc`),t.hasAttribute&&t.hasAttribute(`for`)&&ot(`for`,n)&&t.removeAttribute(`for`)}catch{}}let r=h(e);if(r)for(let e=r.length-1;e>=0;--e)t.push(r[e])}},ct=function(e){let t=null,r=null;if(be)e=`<remove></remove>`+e;else{let t=ap(e,/^[\r\n\t ]+/);r=t&&t[0]}Ue===`application/xhtml+xml`&&Pe===Ne&&(e=`<html xmlns="http://www.w3.org/1999/xhtml"><head></head><body>`+e+`</body></html>`);let i=w?O(e):e;if(Pe===Ne)try{t=new l().parseFromString(i,Ue)}catch{}if(!t||!t.documentElement){t=j.createDocument(Pe,`template`,null);try{t.documentElement.innerHTML=Fe?T:i}catch{}}let a=t.body||t.documentElement;return e&&r&&a.insertBefore(n.createTextNode(r),a.childNodes[0]||null),Pe===Ne?N.call(t,_e?`html`:`body`)[0]:_e?t.documentElement:a},lt=function(e){let t=x?x(e):e.ownerDocument;return M.call(t||e,e,c.SHOW_ELEMENT|c.SHOW_COMMENT|c.SHOW_TEXT|c.SHOW_PROCESSING_INSTRUCTION|c.SHOW_CDATA_SECTION,null)},ut=function(e){return e=op(e,ae,` `),e=op(e,oe,` `),e=op(e,F,` `),e},dt=function(e){e.normalize();let t=x?x(e):e.ownerDocument,n=M.call(t||e,e,c.SHOW_TEXT|c.SHOW_COMMENT|c.SHOW_CDATA_SECTION|c.SHOW_PROCESSING_INSTRUCTION,null),r=n.nextNode();for(;r;)r.data=ut(r.data),r=n.nextNode();let i=e.querySelectorAll?.call(e,`template`);i&&Zf(i,e=>{pt(e.content)&&dt(e.content)})},ft=function(e){let t=b?b(e):null;return typeof t!=`string`||Q(t)!==`form`?!1:typeof e.nodeName!=`string`||typeof e.textContent!=`string`||typeof e.removeChild!=`function`||e.attributes!==v(e)||typeof e.removeAttribute!=`function`||typeof e.setAttribute!=`function`||typeof e.namespaceURI!=`string`||typeof e.insertBefore!=`function`||typeof e.hasChildNodes!=`function`||e.nodeType!==y(e)||e.childNodes!==h(e)},pt=function(e){if(!y||typeof e!=`object`||!e)return!1;try{return y(e)===Xp.documentFragment}catch{return!1}},mt=function(e){if(!y||typeof e!=`object`||!e)return!1;try{return typeof y(e)==`number`}catch{return!1}};function ht(e,n,r){e.length!==0&&Zf(e,e=>{e.call(t,n,r,Ge)})}let gt=function(e,t){return!!(ge&&e.hasChildNodes()&&!mt(e.firstElementChild)&&hp(Kp,e.textContent)&&hp(Kp,e.innerHTML)||ge&&e.namespaceURI===Ne&&Qp[t]&&(mt(e.firstElementChild)||typeof e.textContent==`string`&&hp($p[t],e.textContent))||e.nodeType===Xp.processingInstruction||ge&&e.nodeType===Xp.comment&&hp(qp,e.data))},_t=function(e,t){return e instanceof RegExp?hp(e,t):e instanceof Function&&!!e(t,...[...arguments].slice(2))},vt=function(e,t,n){if(!ue[t]&&wt(t)&&_t(U.tagNameCheck,t))return!1;if(we&&!X[t]){let t=g(e),r=h(e);if(r&&t){let i=r.length;for(let a=i-1;a>=0;--a){let i=e===n?f(r[a],!0):r[a];t.insertBefore(i,m(e))}}}return et(e),!0},yt=function(e,t,n,r){return e.length===0?t:t===n||t===r?xp(t):t},bt=function(e,t){return e===t||g(e)!==null?!1:(Te&&at(e),!0)},xt=function(e,n){if(ht(P.beforeSanitizeElements,e,null),bt(e,n))return!0;if(ft(e))return et(e),!0;let r=Q(C(e));if(V=yt(P.uponSanitizeElement,V,ce,ye),ht(P.uponSanitizeElement,e,{tagName:r,allowedTags:V}),bt(e,n))return!0;if(gt(e,r))return et(e),!0;if(ue[r]||!(fe.tagCheck instanceof Function&&fe.tagCheck(r))&&!V[r]){let t=vt(e,r,n);return t===!1&&ht(P.afterSanitizeElements,e,null),t}if(S(e)===Xp.element&&!$e(e)||(r===`noscript`||r===`noembed`||r===`noframes`)&&hp(Jp,e.innerHTML))return et(e),!0;if(G&&e.nodeType===Xp.text){let n=ut(e.textContent);e.textContent!==n&&(ep(t.removed,{element:e.cloneNode()}),e.textContent=n)}return ht(P.afterSanitizeElements,e,null),!1},St=function(e,t,r){if(de[t]||ot(t,e)||Se&&(t===`id`||t===`name`)&&(r in n||r in Ke))return!1;let i=le[t]||fe.attributeCheck instanceof Function&&fe.attributeCheck(t,e);return me&&hp(I,t)||pe&&hp(L,t)?!0:i?Z[t]||hp(B,op(r,z,``))||(t===`src`||t===`xlink:href`||t===`href`)&&e!==`script`&&sp(r,`data:`)===0&&Oe[e]||he&&!hp(R,op(r,z,``))?!0:!r:wt(e)&&_t(U.tagNameCheck,e)&&_t(U.attributeNameCheck,t,e)||t===`is`&&U.allowCustomizedBuiltInElements&&_t(U.tagNameCheck,r)},Ct=yp({},[`annotation-xml`,`color-profile`,`font-face`,`font-face-format`,`font-face-name`,`font-face-src`,`font-face-uri`,`missing-glyph`]),wt=function(e){return!Ct[rp(e)]&&hp(se,e)},Tt=function(e,t,n,r){if(w&&typeof u==`object`&&typeof u.getAttributeType==`function`&&!n)switch(u.getAttributeType(e,t)){case`TrustedHTML`:return O(r);case`TrustedScriptURL`:return k(r)}return r},Et=function(e,n,r,i){try{r?e.setAttributeNS(r,n,i):e.setAttribute(n,i),ft(e)?et(e):$f(t.removed)}catch{rt(n,e)}},Dt=function(e){ht(P.beforeSanitizeAttributes,e,null);let t=e.attributes;if(!t||ft(e))return;le=yt(P.uponSanitizeAttribute,le,H,K);let n={attrName:``,attrValue:``,keepAttr:!0,allowedAttributes:le,forceKeepAttr:void 0},r=t.length,i=Q(e.nodeName);for(;r--;){let a=t[r],o=a.name,s=a.namespaceURI,c=a.value,l=Q(o),u=c,d=o===`value`?u:cp(u);if(n.attrName=l,n.attrValue=d,n.keepAttr=!0,n.forceKeepAttr=void 0,ht(P.uponSanitizeAttribute,e,n),d=n.attrValue,Y&&(l===`id`||l===`name`)&&sp(d,Ce)!==0&&(rt(o,e,a),d=Ce+d),ge&&hp(/((--!?|])>)|<\/(style|script|title|xmp|textarea|noscript|iframe|noembed|noframes)/i,d)){rt(o,e,a);continue}if(l===`attributename`&&ap(d,`href`)){rt(o,e,a);continue}if(!n.forceKeepAttr){if(!n.keepAttr){rt(o,e,a);continue}if(!W&&hp(Yp,d)){rt(o,e,a);continue}if(G&&(d=ut(d)),!St(i,l,d)){rt(o,e,a);continue}d=Tt(i,l,s,d),d!==u&&Et(e,o,s,d)}}ht(P.afterSanitizeAttributes,e,null)},Ot=function(e){let t=null,n=lt(e);for(ht(P.beforeSanitizeShadowDOM,e,null);t=n.nextNode();)if(ht(P.uponSanitizeShadowNode,t,null),xt(t,e),Dt(t),pt(t.content)&&Ot(t.content),S(t)===Xp.element){let e=_(t);pt(e)&&(kt(e),Ot(e))}ht(P.afterSanitizeShadowDOM,e,null)},kt=function(e){let t=[{node:e,shadow:null}];for(;t.length>0;){let e=t.pop();if(e.shadow){Ot(e.shadow);continue}let n=e.node,r=S(n)===Xp.element,i=h(n);if(i)for(let e=i.length-1;e>=0;--e)t.push({node:i[e],shadow:null});if(r){let e=b?b(n):null;if(typeof e==`string`&&Q(e)===`template`){let e=n.content;pt(e)&&t.push({node:e,shadow:null})}}if(r){let e=_(n);pt(e)&&t.push({node:null,shadow:e},{node:e,shadow:null})}}};return t.sanitize=function(e){let n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},i=null,a=null,o=null,s=null;if(Fe=!e,Fe&&(e=`<!-->`),typeof e!=`string`&&!mt(e)&&(e=Sp(e),typeof e!=`string`))throw gp(`dirty is not a string, aborting`);if(!t.isSupported)return e;ve?(V=ye,le=K):Je(n),(P.uponSanitizeElement.length>0||P.uponSanitizeAttribute.length>0)&&(V=xp(V)),P.uponSanitizeAttribute.length>0&&(le=xp(le)),t.removed=[];let c=Te&&typeof e!=`string`&&mt(e);if(c){st(e);let t=C(e);if(typeof t==`string`){let n=Q(t);if(!V[n]||ue[n])throw nt(e),gp(`root node is forbidden and cannot be sanitized in-place`)}if(ft(e))throw nt(e),gp(`root node is clobbered and cannot be sanitized in-place`);try{kt(e)}catch(t){throw nt(e),t}}else if(mt(e))i=ct(`<!---->`),a=i.ownerDocument.importNode(e,!0),a.nodeType===Xp.element&&a.nodeName===`BODY`||a.nodeName===`HTML`?i=a:i.appendChild(a),kt(a);else{if(!q&&!G&&!_e&&e.indexOf(`<`)===-1)return w&&J?O(e):e;if(i=ct(e),!i)return q?null:J?T:``}i&&be&&et(i.firstChild);let l=c?e:i;try{let e=lt(l);for(;o=e.nextNode();)xt(o,l),Dt(o),pt(o.content)&&Ot(o.content)}catch(n){throw c&&(nt(e),Zf(t.removed,e=>{e.element&&at(e.element)})),n}if(c)return Zf(t.removed,e=>{e.element&&at(e.element)}),G&&dt(e),e;if(q){if(G&&dt(i),xe)for(s=re.call(i.ownerDocument);i.firstChild;)s.appendChild(i.firstChild);else s=i;return(le.shadowroot||le.shadowrootmode)&&(s=ie.call(r,s,!0)),s}let u=_e?i.outerHTML:i.innerHTML;return _e&&V[`!doctype`]&&i.ownerDocument&&i.ownerDocument.doctype&&i.ownerDocument.doctype.name&&hp(Wp,i.ownerDocument.doctype.name)&&(u=`<!DOCTYPE `+i.ownerDocument.doctype.name+`>
|
|
9
|
-
`+u),G&&(u=ut(u)),w&&J?O(u):u},t.setConfig=function(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};Je(e),ve=!0,ye=V,K=le},t.clearConfig=function(){Ge=null,ve=!1,ye=null,K=null,w=ee,T=``},t.isValidAttribute=function(e,t,n){Ge||Je({});let r=Q(e),i=Q(t);return St(r,i,n)},t.addHook=function(e,t){typeof t==`function`&&pp(P,e)&&ep(P[e],t)},t.removeHook=function(e,t){if(pp(P,e)){if(t!==void 0){let n=Qf(P[e],t);return n===-1?void 0:tp(P[e],n,1)[0]}return $f(P[e])}},t.removeHooks=function(e){pp(P,e)&&(P[e]=[])},t.removeAllHooks=function(){P=nm()},t}var om=am();function sm(){return{async:!1,breaks:!1,extensions:null,gfm:!0,hooks:null,pedantic:!1,renderer:null,silent:!1,tokenizer:null,walkTokens:null}}var cm=sm();function lm(e){cm=e}var um={exec:()=>null};function dm(e){let t=[];return n=>{let r=Math.max(0,Math.min(3,n-1)),i=t[r];return i||(i=e(r),t[r]=i),i}}function fm(e,t=``){let n=typeof e==`string`?e:e.source,r={replace:(e,t)=>{let i=typeof t==`string`?t:t.source;return i=i.replace(mm.caret,`$1`),n=n.replace(e,i),r},getRegex:()=>new RegExp(n,t)};return r}var pm=((e=``)=>{try{return!!RegExp(`(?<=1)(?<!1)`+e)}catch{return!1}})(),mm={codeRemoveIndent:/^(?: {1,4}| {0,3}\t)/gm,outputLinkReplace:/\\([\[\]])/g,indentCodeCompensation:/^(\s+)(?:```)/,beginningSpace:/^\s+/,endingHash:/#$/,startingSpaceChar:/^ /,endingSpaceChar:/ $/,nonSpaceChar:/[^ ]/,newLineCharGlobal:/\n/g,tabCharGlobal:/\t/g,multipleSpaceGlobal:/\s+/g,blankLine:/^[ \t]*$/,doubleBlankLine:/\n[ \t]*\n[ \t]*$/,blockquoteStart:/^ {0,3}>/,blockquoteSetextReplace:/\n {0,3}((?:=+|-+) *)(?=\n|$)/g,blockquoteSetextReplace2:/^ {0,3}>[ \t]?/gm,listReplaceNesting:/^ {1,4}(?=( {4})*[^ ])/g,listIsTask:/^\[[ xX]\] +\S/,listReplaceTask:/^\[[ xX]\] +/,listTaskCheckbox:/\[[ xX]\]/,anyLine:/\n.*\n/,hrefBrackets:/^<(.*)>$/,tableDelimiter:/[:|]/,tableAlignChars:/^\||\| *$/g,tableRowBlankLine:/\n[ \t]*$/,tableAlignRight:/^ *-+: *$/,tableAlignCenter:/^ *:-+: *$/,tableAlignLeft:/^ *:-+ *$/,startATag:/^<a /i,endATag:/^<\/a>/i,startPreScriptTag:/^<(pre|code|kbd|script)(\s|>)/i,endPreScriptTag:/^<\/(pre|code|kbd|script)(\s|>)/i,startAngleBracket:/^</,endAngleBracket:/>$/,pedanticHrefTitle:/^([^'"]*[^\s])\s+(['"])(.*)\2/,unicodeAlphaNumeric:/[\p{L}\p{N}]/u,escapeTest:/[&<>"']/,escapeReplace:/[&<>"']/g,escapeTestNoEncode:/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/,escapeReplaceNoEncode:/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/g,caret:/(^|[^\[])\^/g,percentDecode:/%25/g,findPipe:/\|/g,splitPipe:/ \|/,slashPipe:/\\\|/g,carriageReturn:/\r\n|\r/g,spaceLine:/^ +$/gm,notSpaceStart:/^\S*/,endingNewline:/\n$/,listItemRegex:e=>RegExp(`^( {0,3}${e})((?:[ ][^\\n]*)?(?:\\n|$))`),nextBulletRegex:dm(e=>RegExp(`^ {0,${e}}(?:[*+-]|\\d{1,9}[.)])((?:[ ][^\\n]*)?(?:\\n|$))`)),hrRegex:dm(e=>RegExp(`^ {0,${e}}((?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$)`)),fencesBeginRegex:dm(e=>RegExp(`^ {0,${e}}(?:\`\`\`|~~~)`)),headingBeginRegex:dm(e=>RegExp(`^ {0,${e}}#`)),htmlBeginRegex:dm(e=>RegExp(`^ {0,${e}}<(?:[a-z].*>|!--)`,`i`)),blockquoteBeginRegex:dm(e=>RegExp(`^ {0,${e}}>`))},hm=/^(?:[ \t]*(?:\n|$))+/,gm=/^((?: {4}| {0,3}\t)[^\n]+(?:\n(?:[ \t]*(?:\n|$))*)?)+/,_m=/^ {0,3}(`{3,}(?=[^`\n]*(?:\n|$))|~{3,})([^\n]*)(?:\n|$)(?:|([\s\S]*?)(?:\n|$))(?: {0,3}\1[~`]* *(?=\n|$)|$)/,vm=/^ {0,3}((?:-[\t ]*){3,}|(?:_[ \t]*){3,}|(?:\*[ \t]*){3,})(?:\n+|$)/,ym=/^ {0,3}(#{1,6})(?=\s|$)(.*)(?:\n+|$)/,bm=/ {0,3}(?:[*+-]|\d{1,9}[.)])/,xm=/^(?!bull |blockCode|fences|blockquote|heading|html|table)((?:.|\n(?!\s*?\n|bull |blockCode|fences|blockquote|heading|html|table))+?)\n {0,3}(=+|-+) *(?:\n+|$)/,Sm=fm(xm).replace(/bull/g,bm).replace(/blockCode/g,/(?: {4}| {0,3}\t)/).replace(/fences/g,/ {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g,/ {0,3}>/).replace(/heading/g,/ {0,3}#{1,6}(?:\s|$)/).replace(/html/g,/ {0,3}<[^\n>]+>\n/).replace(/\|table/g,``).getRegex(),Cm=fm(xm).replace(/bull/g,bm).replace(/blockCode/g,/(?: {4}| {0,3}\t)/).replace(/fences/g,/ {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g,/ {0,3}>/).replace(/heading/g,/ {0,3}#{1,6}(?:\s|$)/).replace(/html/g,/ {0,3}<[^\n>]+>\n/).replace(/table/g,/ {0,3}\|?(?:[:\- ]*\|)+[\:\- ]*\n/).getRegex(),wm=/^([^\n]+(?:\n(?!hr|heading|lheading|blockquote|fences|list|html|table|[ \t]+\n)[^\n]+)*)/,Tm=/^[^\n]+/,Em=/(?!\s*\])(?:\\[\s\S]|[^\[\]\\])+/,Dm=fm(/^ {0,3}\[(label)\]: *(?:\n[ \t]*)?([^<\s][^\s]*|<.*?>)(?:(?: +(?:\n[ \t]*)?| *\n[ \t]*)(title))? *(?:\n+|$)/).replace(`label`,Em).replace(`title`,/(?:"(?:\\"?|[^"\\])*"|'[^'\n]*(?:\n[^'\n]+)*\n?'|\([^()]*\))/).getRegex(),Om=fm(/^(bull)([ \t][^\n]*?)?(?:\n|$)/).replace(/bull/g,bm).getRegex(),km=`address|article|aside|base|basefont|blockquote|body|caption|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption|figure|footer|form|frame|frameset|h[1-6]|head|header|hr|html|iframe|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option|p|param|search|section|summary|table|tbody|td|tfoot|th|thead|title|tr|track|ul`,Am=/<!--(?:-?>|[\s\S]*?(?:-->|$))/,jm=fm(`^ {0,3}(?:<(script|pre|style|textarea)[\\s>][\\s\\S]*?(?:</\\1>[^\\n]*\\n*|$)|comment[^\\n]*(\\n+|$)|<\\?[\\s\\S]*?(?:\\?>[^\\n]*\\n*|$)|<![A-Z][\\s\\S]*?(?:>[^\\n]*\\n*|$)|<!\\[CDATA\\[[\\s\\S]*?(?:\\]\\]>[^\\n]*\\n*|$)|</?(tag)(?: +|\\n|/?>)[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$)|<(?!script|pre|style|textarea)([a-z][\\w-]*)(?:attribute)*? */?>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$)|</(?!script|pre|style|textarea)[a-z][\\w-]*\\s*>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$))`,`i`).replace(`comment`,Am).replace(`tag`,km).replace(`attribute`,/ +[a-zA-Z:_][\w.:-]*(?: *= *"[^"\n]*"| *= *'[^'\n]*'| *= *[^\s"'=<>`]+)?/).getRegex(),Mm=e=>fm(wm).replace(`hr`,vm).replace(`heading`,` {0,3}#{1,6}(?:\\s|$)`).replace(`|lheading`,``).replace(`|table`,``).replace(`blockquote`,` {0,3}>`).replace(`fences`," {0,3}(?:`{3,}(?=[^`\\n]*(?:\\n|$))|~~~)[^\\n]*(?:\\n|$)").replace(`list`,e).replace(`html`,`</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)`).replace(`tag`,km).getRegex(),Nm=Mm(/ {0,3}(?:[*+-]|1[.)])[ \t]+[^ \t\n]/),Pm=Mm(/ {0,3}(?:[*+-]|\d{1,9}[.)])(?:[ \t]|\n|$)/),Fm={blockquote:fm(/^( {0,3}> ?(paragraph|[^\n]*)(?:\n|$))+/).replace(`paragraph`,Pm).getRegex(),code:gm,def:Dm,fences:_m,heading:ym,hr:vm,html:jm,lheading:Sm,list:Om,newline:hm,paragraph:Nm,table:um,text:Tm},Im=fm(`^ *([^\\n ].*)\\n {0,3}((?:\\| *)?:?-+:? *(?:\\| *:?-+:? *)*(?:\\| *)?)(?:\\n((?:(?! *\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\n|$))*)\\n*|$)`).replace(`hr`,vm).replace(`heading`,` {0,3}#{1,6}(?:\\s|$)`).replace(`blockquote`,` {0,3}>`).replace(`code`,`(?: {4}| {0,3} )[^\\n]`).replace(`fences`," {0,3}(?:`{3,}(?=[^`\\n]*(?:\\n|$))|~~~)[^\\n]*(?:\\n|$)").replace(`list`,` {0,3}(?:[*+-]|1[.)])[ \\t]`).replace(`html`,`</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)`).replace(`tag`,km).getRegex(),Lm={...Fm,lheading:Cm,table:Im,paragraph:fm(wm).replace(`hr`,vm).replace(`heading`,` {0,3}#{1,6}(?:\\s|$)`).replace(`|lheading`,``).replace(`table`,Im).replace(`blockquote`,` {0,3}>`).replace(`fences`," {0,3}(?:`{3,}(?=[^`\\n]*(?:\\n|$))|~~~)[^\\n]*(?:\\n|$)").replace(`list`,` {0,3}(?:[*+-]|1[.)])[ \\t]+[^ \\t\\n]`).replace(`html`,`</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)`).replace(`tag`,km).getRegex()},Rm={...Fm,html:fm(`^ *(?:comment *(?:\\n|\\s*$)|<(tag)[\\s\\S]+?</\\1> *(?:\\n{2,}|\\s*$)|<tag(?:"[^"]*"|'[^']*'|\\s[^'"/>\\s]*)*?/?> *(?:\\n{2,}|\\s*$))`).replace(`comment`,Am).replace(/tag/g,`(?!(?:a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)\\b)\\w+(?!:|[^\\w\\s@]*@)\\b`).getRegex(),def:/^ *\[([^\]]+)\]: *<?([^\s>]+)>?(?: +(["(][^\n]+[")]))? *(?:\n+|$)/,heading:/^(#{1,6})(.*)(?:\n+|$)/,fences:um,lheading:/^(.+?)\n {0,3}(=+|-+) *(?:\n+|$)/,paragraph:fm(wm).replace(`hr`,vm).replace(`heading`,` *#{1,6} *[^
|
|
10
|
-
]`).replace(`lheading`,Sm).replace(`|table`,``).replace(`blockquote`,` {0,3}>`).replace(`|fences`,``).replace(`|list`,``).replace(`|html`,``).replace(`|tag`,``).getRegex()},zm=/^\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/,Bm=/^(`+)([^`]|[^`][\s\S]*?[^`])\1(?!`)/,Vm=/^( {2,}|\\)\n(?!\s*$)/,Hm=/^(`+|[^`])(?:(?= {2,}\n)|[\s\S]*?(?:(?=[\\<!\[`*_]|\b_|$)|[^ ](?= {2,}\n)))/,Um=/[\p{P}\p{S}]/u,Wm=/[\s\p{P}\p{S}]/u,Gm=/[^\s\p{P}\p{S}]/u,Km=fm(/^((?![*_])punctSpace)/,`u`).replace(/punctSpace/g,Wm).getRegex(),qm=/[\p{Pi}\p{Ps}"']/u,Jm=/(?!~)[\p{P}\p{S}]/u,Ym=/(?!~)[\s\p{P}\p{S}]/u,Xm=/(?:[^\s\p{P}\p{S}]|~)/u,Zm=fm(/link|precode-code|html/,`g`).replace(`link`,/\[(?:[^\[\]`]|(?<a>`+)[^`]+\k<a>(?!`))*?\]\((?:\\[\s\S]|[^\\\(\)]|\((?:\\[\s\S]|[^\\\(\)])*\))*\)/).replace(`precode-`,pm?"(?<!`)()":"(^^|[^`])").replace(`code`,/(?<b>`+)[^`]+\k<b>(?!`)/).replace(`html`,/<(?! )[^<>]*?>/).getRegex(),Qm=/^(?:\*+(?:((?!\*)punct)|([^\s*]))?)|^_+(?:((?!_)punct)|([^\s_]))?/,$m=fm(Qm,`u`).replace(/punct/g,Um).getRegex(),eh=fm(Qm,`u`).replace(/punct/g,Jm).getRegex(),th=fm(/^(?:\*+(?:((?!\*)(?!openQuote)punct)|([^\s*]))?)|^_+(?:((?!_)(?!openQuote)punct)|([^\s_]))?/,`u`).replace(/openQuote/g,qm).replace(/punct/g,Um).getRegex(),nh=`^[^_*]*?__[^_*]*?\\*[^_*]*?(?=__)|[^*]+(?=[^*])|(?!\\*)punct(\\*+)(?=[\\s]|$)|notPunctSpace(\\*+)(?!\\*)(?=punctSpace|$)|(?!\\*)punctSpace(\\*+)(?=notPunctSpace)|[\\s](\\*+)(?!\\*)(?=punct)|(?!\\*)punct(\\*+)(?!\\*)(?=punct)|notPunctSpace(\\*+)(?=notPunctSpace)`,rh=fm(nh,`gu`).replace(/notPunctSpace/g,Gm).replace(/punctSpace/g,Wm).replace(/punct/g,Um).getRegex(),ih=fm(nh,`gu`).replace(/notPunctSpace/g,Xm).replace(/punctSpace/g,Ym).replace(/punct/g,Jm).getRegex(),ah=fm(`^[^_*]*?__[^_*]*?\\*[^_*]*?(?=__)|[^*]+(?=[^*])|(?!\\*)punct(\\*+)(?=[\\s]|$)|notPunctSpace(\\*+)(?!\\*)(?=punctSpace|$)|(?!\\*)[\\s](\\*+)(?=notPunctSpace)|[\\s](\\*+)(?!\\*)(?=punct)|(?!\\*)punct(\\*+)(?!\\*)(?=punct)|(?:(?!\\*)punct|notPunctSpace)(\\*+)(?!\\*)(?=notPunctSpace)`,`gu`).replace(/notPunctSpace/g,Gm).replace(/punctSpace/g,Wm).replace(/punct/g,Um).getRegex(),oh=fm(`^[^_*]*?\\*\\*[^_*]*?_[^_*]*?(?=\\*\\*)|[^_]+(?=[^_])|(?!_)punct(_+)(?=[\\s]|$)|notPunctSpace(_+)(?!_)(?=punctSpace|$)|(?!_)punctSpace(_+)(?=notPunctSpace)|[\\s](_+)(?!_)(?=punct)|(?!_)punct(_+)(?!_)(?=punct)`,`gu`).replace(/notPunctSpace/g,Gm).replace(/punctSpace/g,Wm).replace(/punct/g,Um).getRegex(),sh=fm(`^[^_*]*?\\*\\*[^_*]*?_[^_*]*?(?=\\*\\*)|[^_]+(?=[^_])|(?!_)punct(_+)(?=[\\s]|$)|notPunctSpace(_+)(?!_)(?=punctSpace|$)|(?!_)[\\s](_+)(?=notPunctSpace)|[\\s](_+)(?!_)(?=punct)|(?!_)punct(_+)(?!_)(?=punct)|(?:(?!_)punct|notPunctSpace)(_+)(?!_)(?=notPunctSpace)`,`gu`).replace(/notPunctSpace/g,Gm).replace(/punctSpace/g,Wm).replace(/punct/g,Um).getRegex(),ch=fm(/^~~?(?:((?!~)punct)|[^\s~])/,`u`).replace(/punct/g,Um).getRegex(),lh=fm(`^[^~]+(?=[^~])|(?!~)punct(~~?)(?=[\\s]|$)|notPunctSpace(~~?)(?!~)(?=punctSpace|$)|(?!~)punctSpace(~~?)(?=notPunctSpace)|[\\s](~~?)(?!~)(?=punct)|(?!~)punct(~~?)(?!~)(?=punct)|notPunctSpace(~~?)(?=notPunctSpace)`,`gu`).replace(/notPunctSpace/g,Gm).replace(/punctSpace/g,Wm).replace(/punct/g,Um).getRegex(),uh=fm(/\\(punct)/,`gu`).replace(/punct/g,Um).getRegex(),dh=fm(/^<(scheme:[^\s\x00-\x1f<>]*|email)>/).replace(`scheme`,/[a-zA-Z][a-zA-Z0-9+.-]{1,31}/).replace(`email`,/[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+(@)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(?![-_])/).getRegex(),fh=fm(Am).replace(`(?:-->|$)`,`-->`).getRegex(),ph=fm(`^comment|^</[a-zA-Z][\\w:-]*\\s*>|^<[a-zA-Z][\\w-]*(?:attribute)*?\\s*/?>|^<\\?[\\s\\S]*?\\?>|^<![a-zA-Z]+\\s[\\s\\S]*?>|^<!\\[CDATA\\[[\\s\\S]*?\\]\\]>`).replace(`comment`,fh).replace(`attribute`,/\s+[a-zA-Z:_][\w.:-]*(?:\s*=\s*"[^"]*"|\s*=\s*'[^']*'|\s*=\s*[^\s"'=<>`]+)?/).getRegex(),mh=/(?:\[(?:\\[\s\S]|[^\[\]\\])*\]|\\[\s\S]|`+(?!`)[^`]*?`+(?!`)|``+(?=\])|[^\[\]\\`])*?/,hh=fm(/^!?\[(label)\]\(\s*(href)(?:(?:[ \t]+(?:\n[ \t]*)?|\n[ \t]*)(title))?\s*\)/).replace(`label`,mh).replace(`href`,/<(?:\\.|[^\n<>\\])+>|[^ \t\n\x00-\x1f]+|(?=\))/).replace(`title`,/"(?:\\"?|[^"\\])*"|'(?:\\'?|[^'\\])*'|\((?:\\\)?|[^)\\])*\)/).getRegex(),gh=fm(/^!?\[(label)\]\[(ref)\]/).replace(`label`,mh).replace(`ref`,Em).getRegex(),_h=fm(/^!?\[(ref)\](?:\[\])?/).replace(`ref`,Em).getRegex(),vh=fm(`reflink|nolink(?!\\()`,`g`).replace(`reflink`,gh).replace(`nolink`,_h).getRegex(),yh=/[hH][tT][tT][pP][sS]?|[fF][tT][pP]/,bh={_backpedal:um,anyPunctuation:uh,autolink:dh,blockSkip:Zm,br:Vm,code:Bm,del:um,delLDelim:um,delRDelim:um,emStrongLDelim:$m,emStrongRDelimAst:rh,emStrongRDelimUnd:oh,escape:zm,link:hh,nolink:_h,punctuation:Km,reflink:gh,reflinkSearch:vh,tag:ph,text:Hm,url:um},xh={...bh,emStrongLDelim:th,emStrongRDelimAst:ah,emStrongRDelimUnd:sh,link:fm(/^!?\[(label)\]\((.*?)\)/).replace(`label`,mh).getRegex(),reflink:fm(/^!?\[(label)\]\s*\[([^\]]*)\]/).replace(`label`,mh).getRegex()},Sh={...bh,emStrongRDelimAst:ih,emStrongLDelim:eh,delLDelim:ch,delRDelim:lh,url:fm(/^((?:protocol):\/\/|www\.)(?:[a-zA-Z0-9\-]+\.?)+[^\s<]*|^email/).replace(`protocol`,yh).replace(`email`,/[A-Za-z0-9._+-]+(@)[a-zA-Z0-9-_]+(?:\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![-_])/).getRegex(),_backpedal:/(?:[^?!.,:;*_'"~()&]+|\([^)]*\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_'"~)]+(?!$))+/,del:/^(~~?)(?=[^\s~])((?:\\[\s\S]|[^\\])*?(?:\\[\s\S]|[^\s~\\]))\1(?=[^~]|$)/,text:fm(/^(`+|~+|[^`~])(?:(?=[`~])|(?= {2,}\n)|(?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)|[\s\S]*?(?:(?=[\\<!\[`*~_]|\b_|protocol:\/\/|www\.|$)|[^ ](?= {2,}\n)|[^a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-](?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)))/).replace(`protocol`,yh).getRegex()},Ch={...Sh,br:fm(Vm).replace(`{2,}`,`*`).getRegex(),text:fm(Sh.text).replace(`\\b_`,`\\b_| {2,}\\n`).replace(/\{2,\}/g,`*`).getRegex()},wh={normal:Fm,gfm:Lm,pedantic:Rm},Th={normal:bh,gfm:Sh,breaks:Ch,pedantic:xh},Eh={"&":`&`,"<":`<`,">":`>`,'"':`"`,"'":`'`},Dh=e=>Eh[e];function Oh(e,t){if(t){if(mm.escapeTest.test(e))return e.replace(mm.escapeReplace,Dh)}else if(mm.escapeTestNoEncode.test(e))return e.replace(mm.escapeReplaceNoEncode,Dh);return e}function kh(e){try{e=encodeURI(e).replace(mm.percentDecode,`%`)}catch{return null}return e}function Ah(e,t){let n=e.replace(mm.findPipe,(e,t,n)=>{let r=!1,i=t;for(;--i>=0&&n[i]===`\\`;)r=!r;return r?`|`:` |`}).split(mm.splitPipe),r=0;if(n[0].trim()||n.shift(),n.length>0&&!n.at(-1)?.trim()&&n.pop(),t){if(n.length>t)n.splice(t);else for(;n.length<t;)n.push(``)}for(;r<n.length;r++)n[r]=n[r].trim().replace(mm.slashPipe,`|`);return n}function jh(e,t,n){let r=e.length;if(r===0)return``;let i=0;for(;i<r;){let a=e.charAt(r-i-1);if(a===t&&!n)i++;else if(a!==t&&n)i++;else break}return e.slice(0,r-i)}function Mh(e){let t=e.split(`
|
|
11
|
-
`),n=t.length-1;for(;n>=0&&mm.blankLine.test(t[n]);)n--;return t.length-n<=2?e:t.slice(0,n+1).join(`
|
|
12
|
-
`)}function Nh(e,t){if(e.indexOf(t[1])===-1)return-1;let n=0;for(let r=0;r<e.length;r++)if(e[r]===`\\`)r++;else if(e[r]===t[0])n++;else if(e[r]===t[1]&&(n--,n<0))return r;return n>0?-2:-1}function Ph(e,t=0){let n=t,r=``;for(let t of e)if(t===` `){let e=4-n%4;r+=` `.repeat(e),n+=e}else r+=t,n++;return r}function Fh(e,t,n,r,i){let a=t.href,o=t.title||null,s=e[1].replace(i.other.outputLinkReplace,`$1`),c=e[0].charAt(0)===`!`;r.state.inLink=!0;let l=r.state.linkEmitted,u=r.state.inRawBlock;r.state.linkEmitted=!1;let d=r.inlineTokens(s),f=r.state.linkEmitted;if(r.state.linkEmitted=l,r.state.inLink=!1,!c){if(f){r.state.inRawBlock=u;return}r.state.linkEmitted=!0}return{type:c?`image`:`link`,raw:n,href:a,title:o,text:s,tokens:d}}function Ih(e,t,n){let r=e.match(n.other.indentCodeCompensation);if(r===null)return t;let i=r[1];return t.split(`
|
|
13
|
-
`).map(e=>{let t=e.match(n.other.beginningSpace);if(t===null)return e;let[r]=t;return r.length>=i.length?e.slice(i.length):e}).join(`
|
|
14
|
-
`)}var Lh=class{options;rules;lexer;constructor(e){this.options=e||cm}space(e){let t=this.rules.block.newline.exec(e);if(t&&t[0].length>0)return{type:`space`,raw:t[0]}}code(e){let t=this.rules.block.code.exec(e);if(t){let e=this.options.pedantic?t[0]:Mh(t[0]);return{type:`code`,raw:e,codeBlockStyle:`indented`,text:e.replace(this.rules.other.codeRemoveIndent,``)}}}fences(e){let t=this.rules.block.fences.exec(e);if(t){let e=t[0],n=Ih(e,t[3]||``,this.rules);return{type:`code`,raw:e,lang:t[2]?t[2].trim().replace(this.rules.inline.anyPunctuation,`$1`):t[2],text:n}}}heading(e){let t=this.rules.block.heading.exec(e);if(t){let e=t[2].trim();if(this.rules.other.endingHash.test(e)){let t=jh(e,`#`);(this.options.pedantic||!t||this.rules.other.endingSpaceChar.test(t))&&(e=t.trim())}return{type:`heading`,raw:jh(t[0],`
|
|
15
|
-
`),depth:t[1].length,text:e,tokens:this.lexer.inline(e)}}}hr(e){let t=this.rules.block.hr.exec(e);if(t)return{type:`hr`,raw:jh(t[0],`
|
|
16
|
-
`)}}blockquote(e){let t=this.rules.block.blockquote.exec(e);if(t){let e=jh(t[0],`
|
|
17
|
-
`).split(`
|
|
18
|
-
`),n=``,r=``,i=[];for(;e.length>0;){let t=!1,a=[],o;for(o=0;o<e.length;o++)if(this.rules.other.blockquoteStart.test(e[o]))a.push(e[o]),t=!0;else if(!t)a.push(e[o]);else break;e=e.slice(o);let s=a.join(`
|
|
19
|
-
`),c=s.replace(this.rules.other.blockquoteSetextReplace,`
|
|
20
|
-
$1`).replace(this.rules.other.blockquoteSetextReplace2,``);n=n?`${n}
|
|
21
|
-
${s}`:s,r=r?`${r}
|
|
22
|
-
${c}`:c;let l=this.lexer.state.top;if(this.lexer.state.top=!0,this.lexer.blockTokens(c,i,!0),this.lexer.state.top=l,e.length===0)break;let u=i.at(-1);if(u?.type===`code`)break;if(u?.type===`blockquote`){let t=u,a=e.join(`
|
|
23
|
-
`),o=t.raw+`
|
|
24
|
-
`+a.replace(this.rules.other.blockquoteSetextReplace2,``),s=this.blockquote(o);i[i.length-1]=s,n=`${n}
|
|
25
|
-
${a}`,r=r.substring(0,r.length-t.text.length)+s.text;break}if(u?.type===`list`){let t=u,a=t.raw+`
|
|
26
|
-
`+e.join(`
|
|
27
|
-
`),o=this.list(a);i[i.length-1]=o,n=n.substring(0,n.length-u.raw.length)+o.raw,r=r.substring(0,r.length-t.raw.length)+o.raw,e=a.substring(i.at(-1).raw.length).split(`
|
|
28
|
-
`);continue}}return{type:`blockquote`,raw:n,tokens:i,text:r}}}list(e){let t=this.rules.block.list.exec(e);if(t){let n=t[1].trim(),r=n.length>1,i={type:`list`,raw:``,ordered:r,start:r?+n.slice(0,-1):``,loose:!1,items:[]};n=r?`\\d{1,9}\\${n.slice(-1)}`:`\\${n}`,this.options.pedantic&&(n=r?n:`[*+-]`);let a=this.rules.other.listItemRegex(n),o=!1;for(;e;){let n=!1,r=``,s=``;if(!(t=a.exec(e))||this.rules.block.hr.test(e))break;r=t[0],e=e.substring(r.length);let c=Ph(t[2].split(`
|
|
29
|
-
`,1)[0],t[1].length),l=e.split(`
|
|
30
|
-
`,1)[0],u=!c.trim(),d=0;if(this.options.pedantic?(d=2,s=c.trimStart()):u?d=t[1].length+1:(d=c.search(this.rules.other.nonSpaceChar),d=d>4?1:d,s=c.slice(d),d+=t[1].length),u&&this.rules.other.blankLine.test(l)&&(r+=l+`
|
|
31
|
-
`,e=e.substring(l.length+1),n=!0),!n){let t=this.rules.other.nextBulletRegex(d),n=this.rules.other.hrRegex(d),i=this.rules.other.fencesBeginRegex(d),a=this.rules.other.headingBeginRegex(d),o=this.rules.other.htmlBeginRegex(d),f=this.rules.other.blockquoteBeginRegex(d);for(;e;){let p=e.split(`
|
|
32
|
-
`,1)[0],m;if(l=p,this.options.pedantic?(l=l.replace(this.rules.other.listReplaceNesting,` `),m=l):m=l.replace(this.rules.other.tabCharGlobal,` `),i.test(l)||a.test(l)||o.test(l)||f.test(l)||t.test(l)||n.test(l))break;if(m.search(this.rules.other.nonSpaceChar)>=d||!l.trim())s+=`
|
|
33
|
-
`+m.slice(d);else{if(u||c.replace(this.rules.other.tabCharGlobal,` `).search(this.rules.other.nonSpaceChar)>=4||i.test(c)||a.test(c)||n.test(c))break;s+=`
|
|
34
|
-
`+l}u=!l.trim(),r+=p+`
|
|
35
|
-
`,e=e.substring(p.length+1),c=m.slice(d)}}i.loose||(o?i.loose=!0:this.rules.other.doubleBlankLine.test(r)&&(o=!0)),i.items.push({type:`list_item`,raw:r,task:!!this.options.gfm&&this.rules.other.listIsTask.test(s),loose:!1,text:s,tokens:[]}),i.raw+=r}let s=i.items.at(-1);if(s)s.raw=s.raw.trimEnd(),s.text=s.text.trimEnd();else return;i.raw=i.raw.trimEnd();for(let e of i.items)if(this.lexer.state.top=!1,e.tokens=this.lexer.blockTokens(e.text,[]),!i.loose){let t=e.tokens.filter(e=>e.type===`space`);i.loose=t.length>0&&t.some(e=>this.rules.other.anyLine.test(e.raw))}for(let e of i.items){let t=e.tokens[0];if(e.task&&(t?.type===`text`||t?.type===`paragraph`)){e.text=e.text.replace(this.rules.other.listReplaceTask,``),t.raw=t.raw.replace(this.rules.other.listReplaceTask,``),t.text=t.text.replace(this.rules.other.listReplaceTask,``);for(let e=this.lexer.inlineQueue.length-1;e>=0;e--)if(this.rules.other.listIsTask.test(this.lexer.inlineQueue[e].src)){this.lexer.inlineQueue[e].src=this.lexer.inlineQueue[e].src.replace(this.rules.other.listReplaceTask,``);break}let n=this.rules.other.listTaskCheckbox.exec(e.raw);if(n){let t={type:`checkbox`,raw:n[0]+` `,checked:n[0]!==`[ ]`};e.checked=t.checked,i.loose?e.tokens[0]&&[`paragraph`,`text`].includes(e.tokens[0].type)&&`tokens`in e.tokens[0]&&e.tokens[0].tokens?(e.tokens[0].raw=t.raw+e.tokens[0].raw,e.tokens[0].text=t.raw+e.tokens[0].text,e.tokens[0].tokens.unshift(t)):e.tokens.unshift({type:`paragraph`,raw:t.raw,text:t.raw,tokens:[t]}):e.tokens.unshift(t)}}else e.task&&=!1}if(i.loose)for(let e of i.items){e.loose=!0;for(let t of e.tokens)t.type===`text`&&(t.type=`paragraph`)}return i}}html(e){let t=this.rules.block.html.exec(e);if(t){let e=Mh(t[0]);return{type:`html`,block:!0,raw:e,pre:t[1]===`pre`||t[1]===`script`||t[1]===`style`,text:e}}}def(e){let t=this.rules.block.def.exec(e);if(t){let e=t[1].toLowerCase().replace(this.rules.other.multipleSpaceGlobal,` `),n=t[2]?t[2].replace(this.rules.other.hrefBrackets,`$1`).replace(this.rules.inline.anyPunctuation,`$1`):``,r=t[3]?t[3].substring(1,t[3].length-1).replace(this.rules.inline.anyPunctuation,`$1`):t[3];return{type:`def`,tag:e,raw:jh(t[0],`
|
|
36
|
-
`),href:n,title:r}}}table(e){let t=this.rules.block.table.exec(e);if(!t||!this.rules.other.tableDelimiter.test(t[2]))return;let n=Ah(t[1]),r=t[2].replace(this.rules.other.tableAlignChars,``).split(`|`),i=t[3]?.trim()?t[3].replace(this.rules.other.tableRowBlankLine,``).split(`
|
|
37
|
-
`):[],a={type:`table`,raw:jh(t[0],`
|
|
38
|
-
`),header:[],align:[],rows:[]};if(n.length===r.length){for(let e of r)this.rules.other.tableAlignRight.test(e)?a.align.push(`right`):this.rules.other.tableAlignCenter.test(e)?a.align.push(`center`):this.rules.other.tableAlignLeft.test(e)?a.align.push(`left`):a.align.push(null);for(let e=0;e<n.length;e++)a.header.push({text:n[e],tokens:this.lexer.inline(n[e]),header:!0,align:a.align[e]});for(let e of i)a.rows.push(Ah(e,a.header.length).map((e,t)=>({text:e,tokens:this.lexer.inline(e),header:!1,align:a.align[t]})));return a}}lheading(e){let t=this.rules.block.lheading.exec(e);if(t){let e=t[1].trim();return{type:`heading`,raw:jh(t[0],`
|
|
39
|
-
`),depth:t[2].charAt(0)===`=`?1:2,text:e,tokens:this.lexer.inline(e)}}}paragraph(e){let t=this.rules.block.paragraph.exec(e);if(t){let e=t[1].charAt(t[1].length-1)===`
|
|
40
|
-
`?t[1].slice(0,-1):t[1];return{type:`paragraph`,raw:t[0],text:e,tokens:this.lexer.inline(e)}}}text(e){let t=this.rules.block.text.exec(e);if(t)return{type:`text`,raw:t[0],text:t[0],tokens:this.lexer.inline(t[0])}}escape(e){let t=this.rules.inline.escape.exec(e);if(t)return{type:`escape`,raw:t[0],text:t[1]}}tag(e){let t=this.rules.inline.tag.exec(e);if(t)return!this.lexer.state.inLink&&this.rules.other.startATag.test(t[0])?this.lexer.state.inLink=!0:this.lexer.state.inLink&&this.rules.other.endATag.test(t[0])&&(this.lexer.state.inLink=!1),!this.lexer.state.inRawBlock&&this.rules.other.startPreScriptTag.test(t[0])?this.lexer.state.inRawBlock=!0:this.lexer.state.inRawBlock&&this.rules.other.endPreScriptTag.test(t[0])&&(this.lexer.state.inRawBlock=!1),{type:`html`,raw:t[0],inLink:this.lexer.state.inLink,inRawBlock:this.lexer.state.inRawBlock,block:!1,text:t[0]}}link(e){let t=this.rules.inline.link.exec(e);if(t){let e=t[2].trim();if(!this.options.pedantic&&this.rules.other.startAngleBracket.test(e)){if(!this.rules.other.endAngleBracket.test(e))return;let t=jh(e.slice(0,-1),`\\`);if((e.length-t.length)%2==0)return}else{let e=Nh(t[2],`()`);if(e===-2)return;if(e>-1){let n=(t[0].indexOf(`!`)===0?5:4)+t[1].length+e;t[2]=t[2].substring(0,e),t[0]=t[0].substring(0,n).trim(),t[3]=``}}let n=t[2],r=``;if(this.options.pedantic){let e=this.rules.other.pedanticHrefTitle.exec(n);e&&(n=e[1],r=e[3])}else r=t[3]?t[3].slice(1,-1):``;return n=n.trim(),this.rules.other.startAngleBracket.test(n)&&(n=this.options.pedantic&&!this.rules.other.endAngleBracket.test(e)?n.slice(1):n.slice(1,-1)),Fh(t,{href:n&&n.replace(this.rules.inline.anyPunctuation,`$1`),title:r&&r.replace(this.rules.inline.anyPunctuation,`$1`)},t[0],this.lexer,this.rules)}}reflink(e,t){let n;if((n=this.rules.inline.reflink.exec(e))||(n=this.rules.inline.nolink.exec(e))){let e=t[(n[2]||n[1]).replace(this.rules.other.multipleSpaceGlobal,` `).toLowerCase()];if(!e){let e=n[0].charAt(0);return{type:`text`,raw:e,text:e}}return Fh(n,e,n[0],this.lexer,this.rules)}}emStrong(e,t,n=``){let r=this.rules.inline.emStrongLDelim.exec(e);if(!(!r||!r[1]&&!r[2]&&!r[3]&&!r[4]||r[4]&&n.match(this.rules.other.unicodeAlphaNumeric))&&(!(r[1]||r[3])||!n||this.rules.inline.punctuation.exec(n))){let i=[...r[0]].length-1,a,o,s=i,c=0,l=r[0][0],u=n===l,d=l===`*`?this.rules.inline.emStrongRDelimAst:this.rules.inline.emStrongRDelimUnd;for(d.lastIndex=0,t=t.slice(-1*e.length+i);(r=d.exec(t))!==null;){if(a=r[1]||r[2]||r[3]||r[4]||r[5]||r[6],!a)continue;if(o=[...a].length,r[3]||r[4]){s+=o;continue}if(r[5]||r[6]){if(i%3&&!((i+o)%3)){c+=o;continue}if(u)break}if(s-=o,s>0)continue;o=Math.min(o,o+s+c);let t=[...r[0]][0].length,n=e.slice(0,i+r.index+t+o);if(Math.min(i,o)%2){let e=n.slice(1,-1);return{type:`em`,raw:n,text:e,tokens:this.lexer.inlineTokens(e)}}let l=n.slice(2,-2);return{type:`strong`,raw:n,text:l,tokens:this.lexer.inlineTokens(l)}}}}codespan(e){let t=this.rules.inline.code.exec(e);if(t){let e=t[2].replace(this.rules.other.newLineCharGlobal,` `),n=this.rules.other.nonSpaceChar.test(e),r=this.rules.other.startingSpaceChar.test(e)&&this.rules.other.endingSpaceChar.test(e);return n&&r&&(e=e.substring(1,e.length-1)),{type:`codespan`,raw:t[0],text:e}}}br(e){let t=this.rules.inline.br.exec(e);if(t)return{type:`br`,raw:t[0]}}del(e,t,n=``){let r=this.rules.inline.delLDelim.exec(e);if(r&&(!r[1]||!n||this.rules.inline.punctuation.exec(n))){let n=[...r[0]].length-1,i,a,o=n,s=this.rules.inline.delRDelim;for(s.lastIndex=0,t=t.slice(-1*e.length+n);(r=s.exec(t))!==null;){if(i=r[1]||r[2]||r[3]||r[4]||r[5]||r[6],!i||(a=[...i].length,a!==n))continue;if(r[3]||r[4]){o+=a;continue}if(o-=a,o>0)continue;a=Math.min(a,a+o);let t=[...r[0]][0].length,s=e.slice(0,n+r.index+t+a),c=s.slice(n,-n);return{type:`del`,raw:s,text:c,tokens:this.lexer.inlineTokens(c)}}}}autolink(e){let t=this.rules.inline.autolink.exec(e);if(t){let e,n;return t[2]===`@`?(e=t[1],n=`mailto:`+e):(e=t[1],n=e),{type:`link`,raw:t[0],text:e,href:n,tokens:[{type:`text`,raw:e,text:e}]}}}url(e){let t;if(t=this.rules.inline.url.exec(e)){let e,n;if(t[2]===`@`)e=t[0],n=`mailto:`+e;else{let r;do r=t[0],t[0]=this.rules.inline._backpedal.exec(t[0])?.[0]??``;while(r!==t[0]);e=t[0],n=t[1]===`www.`?`http://`+t[0]:t[0]}return{type:`link`,raw:t[0],text:e,href:n,tokens:[{type:`text`,raw:e,text:e}]}}}inlineText(e){let t=this.rules.inline.text.exec(e);if(t){let e=this.lexer.state.inRawBlock;return{type:`text`,raw:t[0],text:t[0],escaped:e}}}},Rh=class e{tokens;options;state;inlineQueue;tokenizer;constructor(e){this.tokens=[],this.tokens.links=Object.create(null),this.options=e||cm,this.options.tokenizer=this.options.tokenizer||new Lh,this.tokenizer=this.options.tokenizer,this.tokenizer.options=this.options,this.tokenizer.lexer=this,this.inlineQueue=[],this.state={inLink:!1,inRawBlock:!1,linkEmitted:!1,top:!0};let t={other:mm,block:wh.normal,inline:Th.normal};this.options.pedantic?(t.block=wh.pedantic,t.inline=Th.pedantic):this.options.gfm&&(t.block=wh.gfm,t.inline=this.options.breaks?Th.breaks:Th.gfm),this.tokenizer.rules=t}static get rules(){return{block:wh,inline:Th}}static lex(t,n){return new e(n).lex(t)}static lexInline(t,n){return new e(n).inlineTokens(t)}lex(e){e=e.replace(mm.carriageReturn,`
|
|
41
|
-
`),this.blockTokens(e,this.tokens);for(let e=0;e<this.inlineQueue.length;e++){let t=this.inlineQueue[e];this.inlineTokens(t.src,t.tokens)}return this.inlineQueue=[],this.tokens}blockTokens(e,t=[],n=!1){this.tokenizer.lexer=this,this.options.pedantic&&(e=e.replace(mm.tabCharGlobal,` `).replace(mm.spaceLine,``));let r=1/0;for(;e;){if(e.length<r)r=e.length;else{this.infiniteLoopError(e.charCodeAt(0));break}let i;if(this.options.extensions?.block?.some(n=>(i=n.call({lexer:this},e,t))?(e=e.substring(i.raw.length),t.push(i),!0):!1))continue;if(i=this.tokenizer.space(e)){e=e.substring(i.raw.length);let n=t.at(-1);i.raw.length===1&&n!==void 0?n.raw+=`
|
|
42
|
-
`:t.push(i);continue}if(i=this.tokenizer.code(e)){e=e.substring(i.raw.length);let n=t.at(-1);n?.type===`paragraph`||n?.type===`text`?(n.raw+=(n.raw.endsWith(`
|
|
43
|
-
`)?``:`
|
|
44
|
-
`)+i.raw,n.text+=`
|
|
45
|
-
`+i.text,this.inlineQueue.at(-1).src=n.text):t.push(i);continue}if(i=this.tokenizer.fences(e)){e=e.substring(i.raw.length),t.push(i);continue}if(i=this.tokenizer.heading(e)){e=e.substring(i.raw.length),t.push(i);continue}if(i=this.tokenizer.hr(e)){e=e.substring(i.raw.length),t.push(i);continue}if(i=this.tokenizer.blockquote(e)){e=e.substring(i.raw.length),t.push(i);continue}if(i=this.tokenizer.list(e)){e=e.substring(i.raw.length),t.push(i);continue}if(i=this.tokenizer.html(e)){e=e.substring(i.raw.length),t.push(i);continue}if(i=this.tokenizer.def(e)){e=e.substring(i.raw.length);let n=t.at(-1);n?.type===`paragraph`||n?.type===`text`?(n.raw+=(n.raw.endsWith(`
|
|
46
|
-
`)?``:`
|
|
47
|
-
`)+i.raw,n.text+=`
|
|
48
|
-
`+i.raw,this.inlineQueue.at(-1).src=n.text):this.tokens.links[i.tag]||(this.tokens.links[i.tag]={href:i.href,title:i.title},t.push(i));continue}if(i=this.tokenizer.table(e)){e=e.substring(i.raw.length),t.push(i);continue}if(i=this.tokenizer.lheading(e)){e=e.substring(i.raw.length),t.push(i);continue}let a=e;if(this.options.extensions?.startBlock){let t=1/0,n=e.slice(1),r;this.options.extensions.startBlock.forEach(e=>{r=e.call({lexer:this},n),typeof r==`number`&&r>=0&&(t=Math.min(t,r))}),t<1/0&&t>=0&&(a=e.substring(0,t+1))}if(this.state.top&&(i=this.tokenizer.paragraph(a))){let r=t.at(-1);n&&r?.type===`paragraph`?(r.raw+=(r.raw.endsWith(`
|
|
49
|
-
`)?``:`
|
|
50
|
-
`)+i.raw,r.text+=`
|
|
51
|
-
`+i.text,this.inlineQueue.pop(),this.inlineQueue.at(-1).src=r.text):t.push(i),n=a.length!==e.length,e=e.substring(i.raw.length);continue}if(i=this.tokenizer.text(e)){e=e.substring(i.raw.length);let n=t.at(-1);n?.type===`text`?(n.raw+=(n.raw.endsWith(`
|
|
52
|
-
`)?``:`
|
|
53
|
-
`)+i.raw,n.text+=`
|
|
54
|
-
`+i.text,this.inlineQueue.pop(),this.inlineQueue.at(-1).src=n.text):t.push(i);continue}if(e){this.infiniteLoopError(e.charCodeAt(0));break}}return this.state.top=!0,t}inline(e,t=[]){return this.inlineQueue.push({src:e,tokens:t}),t}linkInText(e){if(!e.includes(`[`))return!1;let t=this.tokenizer.rules.inline.link;for(let n of e.matchAll(this.tokenizer.rules.inline.blockSkip))if(t.test(n[0])&&e.charAt(n.index-1)!==`!`)return!0;for(let t of e.matchAll(this.tokenizer.rules.inline.reflinkSearch)){let e=t[0],n=e.lastIndexOf(`[`);if(!(e.charAt(0)===`!`||!Object.hasOwn(this.tokens.links,e.slice(n+1,-1)))&&!(n>1&&this.linkInText(e.slice(1,n-1))))return!0}return!1}inlineTokens(e,t=[]){this.tokenizer.lexer=this;let n=e;if(this.tokens.links&&e.includes(`[`)){let e=this.tokenizer.rules.inline.reflinkSearch,t=n=>{let r=n.lastIndexOf(`[`);if(!Object.hasOwn(this.tokens.links,n.slice(r+1,-1)))return n;if(r>1&&n.charAt(0)!==`!`){let i=n.slice(1,r-1);if(this.linkInText(i))return`[`+i.replace(e,t)+`][`+`a`.repeat(n.length-r-2)+`]`}return`[`+`a`.repeat(n.length-2)+`]`};n=n.replace(e,t)}n=n.replace(this.tokenizer.rules.inline.anyPunctuation,e=>`+`.repeat(e.length)),n=n.replace(this.tokenizer.rules.inline.blockSkip,(e,t,n)=>{let r=n?n.length:0;return e.slice(0,r)+`[`+`a`.repeat(e.length-r-2)+`]`}),n=this.options.hooks?.emStrongMask?.call({lexer:this},n)??n;let r=!1,i=``,a=1/0;for(;e;){if(e.length<a)a=e.length;else{this.infiniteLoopError(e.charCodeAt(0));break}r||(i=``),r=!1;let o;if(this.options.extensions?.inline?.some(n=>(o=n.call({lexer:this},e,t))?(e=e.substring(o.raw.length),t.push(o),!0):!1))continue;if(o=this.tokenizer.escape(e)){e=e.substring(o.raw.length),t.push(o);continue}if(o=this.tokenizer.tag(e)){e=e.substring(o.raw.length),t.push(o);continue}if(o=this.tokenizer.link(e)){e=e.substring(o.raw.length),t.push(o);continue}if(o=this.tokenizer.reflink(e,this.tokens.links)){e=e.substring(o.raw.length);let n=t.at(-1);o.type===`text`&&n?.type===`text`?(n.raw+=o.raw,n.text+=o.text):t.push(o);continue}if(o=this.tokenizer.emStrong(e,n,i)){e=e.substring(o.raw.length),t.push(o);continue}if(o=this.tokenizer.codespan(e)){e=e.substring(o.raw.length),t.push(o);continue}if(o=this.tokenizer.br(e)){e=e.substring(o.raw.length),t.push(o);continue}if(o=this.tokenizer.del(e,n,i)){e=e.substring(o.raw.length),t.push(o);continue}if(o=this.tokenizer.autolink(e)){e=e.substring(o.raw.length),t.push(o);continue}if(!this.state.inLink&&(o=this.tokenizer.url(e))){e=e.substring(o.raw.length),t.push(o);continue}let s=e;if(this.options.extensions?.startInline){let t=1/0,n=e.slice(1),r;this.options.extensions.startInline.forEach(e=>{r=e.call({lexer:this},n),typeof r==`number`&&r>=0&&(t=Math.min(t,r))}),t<1/0&&t>=0&&(s=e.substring(0,t+1))}if(o=this.tokenizer.inlineText(s)){e=e.substring(o.raw.length),o.raw.slice(-1)!==`_`&&(i=o.raw.slice(-1)),r=!0;let n=t.at(-1);n?.type===`text`?(n.raw+=o.raw,n.text+=o.text):t.push(o);continue}if(e){this.infiniteLoopError(e.charCodeAt(0));break}}return t}infiniteLoopError(e){let t=`Infinite loop on byte: `+e;if(this.options.silent)console.error(t);else throw Error(t)}},zh=class{options;parser;constructor(e){this.options=e||cm}space(e){return``}code({text:e,lang:t,escaped:n}){let r=(t||``).match(mm.notSpaceStart)?.[0],i=e.replace(mm.endingNewline,``)+`
|
|
55
|
-
`;return r?`<pre><code class="language-`+Oh(r)+`">`+(n?i:Oh(i,!0))+`</code></pre>
|
|
56
|
-
`:`<pre><code>`+(n?i:Oh(i,!0))+`</code></pre>
|
|
57
|
-
`}blockquote({tokens:e}){return`<blockquote>
|
|
58
|
-
${this.parser.parse(e)}</blockquote>
|
|
59
|
-
`}html({text:e}){return e}def(e){return``}heading({tokens:e,depth:t}){return`<h${t}>${this.parser.parseInline(e)}</h${t}>
|
|
60
|
-
`}hr(e){return`<hr>
|
|
61
|
-
`}list(e){let t=e.ordered,n=e.start,r=``;for(let t=0;t<e.items.length;t++){let n=e.items[t];r+=this.listitem(n)}let i=t?`ol`:`ul`,a=t&&n!==1?` start="`+n+`"`:``;return`<`+i+a+`>
|
|
62
|
-
`+r+`</`+i+`>
|
|
63
|
-
`}listitem(e){return`<li>${this.parser.parse(e.tokens)}</li>
|
|
64
|
-
`}checkbox({checked:e}){return`<input `+(e?`checked="" `:``)+`disabled="" type="checkbox"> `}paragraph({tokens:e}){return`<p>${this.parser.parseInline(e)}</p>
|
|
65
|
-
`}table(e){let t=``,n=``;for(let t=0;t<e.header.length;t++)n+=this.tablecell(e.header[t]);t+=this.tablerow({text:n});let r=``;for(let t=0;t<e.rows.length;t++){let i=e.rows[t];n=``;for(let e=0;e<i.length;e++)n+=this.tablecell(i[e]);r+=this.tablerow({text:n})}return r&&=`<tbody>${r}</tbody>`,`<table>
|
|
66
|
-
<thead>
|
|
67
|
-
`+t+`</thead>
|
|
68
|
-
`+r+`</table>
|
|
69
|
-
`}tablerow({text:e}){return`<tr>
|
|
70
|
-
${e}</tr>
|
|
71
|
-
`}tablecell(e){let t=this.parser.parseInline(e.tokens),n=e.header?`th`:`td`;return(e.align?`<${n} align="${e.align}">`:`<${n}>`)+t+`</${n}>
|
|
72
|
-
`}strong({tokens:e}){return`<strong>${this.parser.parseInline(e)}</strong>`}em({tokens:e}){return`<em>${this.parser.parseInline(e)}</em>`}codespan({text:e}){return`<code>${Oh(e,!0)}</code>`}br(e){return`<br>`}del({tokens:e}){return`<del>${this.parser.parseInline(e)}</del>`}link({href:e,title:t,tokens:n}){let r=this.parser.parseInline(n),i=kh(e);if(i===null)return r;e=i;let a=`<a href="`+e+`"`;return t&&(a+=` title="`+Oh(t)+`"`),a+=`>`+r+`</a>`,a}image({href:e,title:t,text:n,tokens:r}){r&&(n=this.parser.parseInline(r,this.parser.textRenderer));let i=kh(e);if(i===null)return Oh(n);e=i;let a=`<img src="${e}" alt="${Oh(n)}"`;return t&&(a+=` title="${Oh(t)}"`),a+=`>`,a}text(e){return`tokens`in e&&e.tokens?this.parser.parseInline(e.tokens):`escaped`in e&&e.escaped?e.text:Oh(e.text)}},Bh=class{strong({text:e}){return e}em({text:e}){return e}codespan({text:e}){return e}del({text:e}){return e}html({text:e}){return e}text({text:e}){return e}link({text:e}){return``+e}image({text:e}){return``+e}br(){return``}checkbox({raw:e}){return e}},Vh=class e{options;renderer;textRenderer;constructor(e){this.options=e||cm,this.options.renderer=this.options.renderer||new zh,this.renderer=this.options.renderer,this.renderer.options=this.options,this.renderer.parser=this,this.textRenderer=new Bh}static parse(t,n){return new e(n).parse(t)}static parseInline(t,n){return new e(n).parseInline(t)}parse(e){this.renderer.parser=this;let t=``;for(let n=0;n<e.length;n++){let r=e[n];if(this.options.extensions?.renderers?.[r.type]){let e=r,n=this.options.extensions.renderers[e.type].call({parser:this},e);if(n!==!1||![`space`,`hr`,`heading`,`code`,`table`,`blockquote`,`list`,`checkbox`,`html`,`def`,`paragraph`,`text`].includes(e.type)){t+=n||``;continue}}let i=r;switch(i.type){case`space`:t+=this.renderer.space(i);break;case`hr`:t+=this.renderer.hr(i);break;case`heading`:t+=this.renderer.heading(i);break;case`code`:t+=this.renderer.code(i);break;case`table`:t+=this.renderer.table(i);break;case`blockquote`:t+=this.renderer.blockquote(i);break;case`list`:t+=this.renderer.list(i);break;case`checkbox`:t+=this.renderer.checkbox(i);break;case`html`:t+=this.renderer.html(i);break;case`def`:t+=this.renderer.def(i);break;case`paragraph`:t+=this.renderer.paragraph(i);break;case`text`:t+=this.renderer.text(i);break;default:{let e=`Token with "`+i.type+`" type was not found.`;if(this.options.silent)return console.error(e),``;throw Error(e)}}}return t}parseInline(e,t=this.renderer){this.renderer.parser=this;let n=``;for(let r=0;r<e.length;r++){let i=e[r];if(this.options.extensions?.renderers?.[i.type]){let e=this.options.extensions.renderers[i.type].call({parser:this},i);if(e!==!1||![`escape`,`html`,`link`,`image`,`checkbox`,`strong`,`em`,`codespan`,`br`,`del`,`text`].includes(i.type)){n+=e||``;continue}}let a=i;switch(a.type){case`escape`:n+=t.text(a);break;case`html`:n+=t.html(a);break;case`link`:n+=t.link(a);break;case`image`:n+=t.image(a);break;case`checkbox`:n+=t.checkbox(a);break;case`strong`:n+=t.strong(a);break;case`em`:n+=t.em(a);break;case`codespan`:n+=t.codespan(a);break;case`br`:n+=t.br(a);break;case`del`:n+=t.del(a);break;case`text`:n+=t.text(a);break;default:{let e=`Token with "`+a.type+`" type was not found.`;if(this.options.silent)return console.error(e),``;throw Error(e)}}}return n}},Hh=class{options;block;constructor(e){this.options=e||cm}static passThroughHooks=new Set([`preprocess`,`postprocess`,`processAllTokens`,`emStrongMask`]);static passThroughHooksRespectAsync=new Set([`preprocess`,`postprocess`,`processAllTokens`]);preprocess(e){return e}postprocess(e){return e}processAllTokens(e){return e}emStrongMask(e){return e}provideLexer(e=this.block){return e?Rh.lex:Rh.lexInline}provideParser(e=this.block){return e?Vh.parse:Vh.parseInline}},Uh=class{defaults=sm();options=this.setOptions;parse=this.parseMarkdown(!0);parseInline=this.parseMarkdown(!1);Parser=Vh;Renderer=zh;TextRenderer=Bh;Lexer=Rh;Tokenizer=Lh;Hooks=Hh;constructor(...e){this.use(...e)}walkTokens(e,t){let n=[];for(let r of e)switch(n=n.concat(t.call(this,r)),r.type){case`table`:{let e=r;for(let r of e.header)n=n.concat(this.walkTokens(r.tokens,t));for(let r of e.rows)for(let e of r)n=n.concat(this.walkTokens(e.tokens,t));break}case`list`:{let e=r;n=n.concat(this.walkTokens(e.items,t));break}default:{let e=r;this.defaults.extensions?.childTokens?.[e.type]?this.defaults.extensions.childTokens[e.type].forEach(r=>{let i=e[r].flat(1/0);n=n.concat(this.walkTokens(i,t))}):e.tokens&&(n=n.concat(this.walkTokens(e.tokens,t)))}}return n}use(...e){let t=this.defaults.extensions||{renderers:{},childTokens:{}};return e.forEach(e=>{let n={...e};if(n.async=this.defaults.async||n.async||!1,e.extensions&&(e.extensions.forEach(e=>{if(!e.name)throw Error(`extension name required`);if(`renderer`in e){let n=t.renderers[e.name];n?t.renderers[e.name]=function(...t){let r=e.renderer.apply(this,t);return r===!1&&(r=n.apply(this,t)),r}:t.renderers[e.name]=e.renderer}if(`tokenizer`in e){if(!e.level||e.level!==`block`&&e.level!==`inline`)throw Error(`extension level must be 'block' or 'inline'`);let n=t[e.level];n?n.unshift(e.tokenizer):t[e.level]=[e.tokenizer],e.start&&(e.level===`block`?t.startBlock?t.startBlock.push(e.start):t.startBlock=[e.start]:e.level===`inline`&&(t.startInline?t.startInline.push(e.start):t.startInline=[e.start]))}`childTokens`in e&&e.childTokens&&(t.childTokens[e.name]=e.childTokens)}),n.extensions=t),e.renderer){let t=this.defaults.renderer||new zh(this.defaults);for(let n in e.renderer){if(!(n in t))throw Error(`renderer '${n}' does not exist`);if([`options`,`parser`].includes(n))continue;let r=n,i=e.renderer[r],a=t[r];t[r]=(...e)=>{let n=i.apply(t,e);return n===!1&&(n=a.apply(t,e)),n||``}}n.renderer=t}if(e.tokenizer){let t=this.defaults.tokenizer||new Lh(this.defaults);for(let n in e.tokenizer){if(!(n in t))throw Error(`tokenizer '${n}' does not exist`);if([`options`,`rules`,`lexer`].includes(n))continue;let r=n,i=e.tokenizer[r],a=t[r];t[r]=(...e)=>{let n=i.apply(t,e);return n===!1&&(n=a.apply(t,e)),n}}n.tokenizer=t}if(e.hooks){let t=this.defaults.hooks||new Hh;for(let n in e.hooks){if(!(n in t))throw Error(`hook '${n}' does not exist`);if([`options`,`block`].includes(n))continue;let r=n,i=e.hooks[r],a=t[r];t[r]=Hh.passThroughHooks.has(n)?e=>{if(this.defaults.async&&Hh.passThroughHooksRespectAsync.has(n))return(async()=>{let n=await i.call(t,e);return a.call(t,n)})();let r=i.call(t,e);return a.call(t,r)}:(...e)=>{if(this.defaults.async)return(async()=>{let n=await i.apply(t,e);return n===!1&&(n=await a.apply(t,e)),n})();let n=i.apply(t,e);return n===!1&&(n=a.apply(t,e)),n}}n.hooks=t}if(e.walkTokens){let t=this.defaults.walkTokens,r=e.walkTokens;n.walkTokens=function(e){let n=[];return n.push(r.call(this,e)),t&&(n=n.concat(t.call(this,e))),n}}this.defaults={...this.defaults,...n}}),this}setOptions(e){return this.defaults={...this.defaults,...e},this}lexer(e,t){return Rh.lex(e,t??this.defaults)}parser(e,t){return Vh.parse(e,t??this.defaults)}parseMarkdown(e){return(t,n)=>{let r={...n},i={...this.defaults,...r},a=this.onError(!!i.silent,!!i.async);if(this.defaults.async===!0&&r.async===!1)return a(Error(`marked(): The async option was set to true by an extension. Remove async: false from the parse options object to return a Promise.`));if(typeof t>`u`||t===null)return a(Error(`marked(): input parameter is undefined or null`));if(typeof t!=`string`)return a(Error(`marked(): input parameter is of type `+Object.prototype.toString.call(t)+`, string expected`));if(i.hooks&&(i.hooks.options=i,i.hooks.block=e),i.async)return(async()=>{let n=i.hooks?await i.hooks.preprocess(t):t,r=await(i.hooks?await i.hooks.provideLexer(e):e?Rh.lex:Rh.lexInline)(n,i),a=i.hooks?await i.hooks.processAllTokens(r):r;i.walkTokens&&await Promise.all(this.walkTokens(a,i.walkTokens));let o=await(i.hooks?await i.hooks.provideParser(e):e?Vh.parse:Vh.parseInline)(a,i);return i.hooks?await i.hooks.postprocess(o):o})().catch(a);try{i.hooks&&(t=i.hooks.preprocess(t));let n=(i.hooks?i.hooks.provideLexer(e):e?Rh.lex:Rh.lexInline)(t,i);i.hooks&&(n=i.hooks.processAllTokens(n)),i.walkTokens&&this.walkTokens(n,i.walkTokens);let r=(i.hooks?i.hooks.provideParser(e):e?Vh.parse:Vh.parseInline)(n,i);return i.hooks&&(r=i.hooks.postprocess(r)),r}catch(e){return a(e)}}}onError(e,t){return n=>{if(n.message+=`
|
|
73
|
-
Please report this to https://github.com/markedjs/marked.`,e){let e=`<p>An error occurred:</p><pre>`+Oh(n.message+``,!0)+`</pre>`;return t?Promise.resolve(e):e}if(t)return Promise.reject(n);throw n}}},Wh=new Uh;function Gh(e,t){return Wh.parse(e,t)}Gh.options=Gh.setOptions=function(e){return Wh.setOptions(e),Gh.defaults=Wh.defaults,lm(Gh.defaults),Gh},Gh.getDefaults=sm,Gh.defaults=cm;function Kh(...e){return Wh.use(...e),Gh.defaults=Wh.defaults,lm(Gh.defaults),Gh}Gh.use=Kh,Gh.walkTokens=function(e,t){return Wh.walkTokens(e,t)},Gh.parseInline=Wh.parseInline,Gh.Parser=Vh,Gh.parser=Vh.parse,Gh.Renderer=zh,Gh.TextRenderer=Bh,Gh.Lexer=Rh,Gh.lexer=Rh.lex,Gh.Tokenizer=Lh,Gh.Hooks=Hh,Gh.parse=Gh,Gh.options,Gh.setOptions,Gh.walkTokens,Gh.parseInline,Vh.parse,Rh.lex;var qh=new Uh({breaks:!0,gfm:!0}),Jh=`p.br.hr.h1.h2.h3.h4.h5.h6.strong.em.del.s.b.i.ul.ol.li.blockquote.pre.code.a.img.table.thead.tbody.tr.th.td.input`.split(`.`),Yh=[`href`,`title`,`src`,`alt`,`align`,`start`,`type`,`checked`,`disabled`,`target`,`rel`];om.addHook(`afterSanitizeAttributes`,e=>{e.nodeName===`A`&&e.hasAttribute(`href`)&&(e.setAttribute(`target`,`_blank`),e.setAttribute(`rel`,`noopener noreferrer`))});function Xh(e){if(!e)return``;let t=qh.parse(e,{async:!1});return om.sanitize(t,{ALLOWED_TAGS:Jh,ALLOWED_ATTR:Yh,KEEP_CONTENT:!0})}var Zh=()=>globalThis,Qh=class extends Error{constructor(e){super(`Cascade has no ${e} in this environment. Install the optional '@napi-rs/canvas' renderer before cooking a graph that draws.`),this.name=`MissingRenderSurfaceError`}};function $h(){let e=Zh();return typeof e.document?.createElement==`function`?sg:typeof e.OffscreenCanvas==`function`?cg:null}function eg(){return $h()!==null}function tg(e,t){let n=$h();if(!n)throw new Qh(`drawing surface`);return n.createSurface(e,t)}function ng(e){let t=$h();if(!t)throw new Qh(`image decoder`);return t.decodeImage(e)}function rg(e){return e instanceof Uint8Array?e:new Uint8Array(e)}async function ig(e){let t=Zh();if(typeof t.createImageBitmap!=`function`||typeof e==`string`)return null;let n=e instanceof Uint8Array||e instanceof ArrayBuffer?typeof t.Blob==`function`?new t.Blob([rg(e)]):rg(e):e;return t.createImageBitmap(n)}async function ag(e){let t=Zh();if(typeof t.Image!=`function`)throw new Qh(`image decoder`);let n=new t.Image;if(typeof e==`string`?(/^(data:|blob:)/.test(e)||(n.crossOrigin=`anonymous`),n.src=e):n.src=e instanceof Uint8Array||e instanceof ArrayBuffer?rg(e):new Uint8Array(await e.arrayBuffer()),await n.decode(),!n.width||!n.height)throw Error(`cascade: could not decode image data`);return n}async function og(e){if(typeof e!=`string`){let t=await ig(e);if(t)return t}return ag(e)}var sg={name:`DOM canvas`,createSurface(e,t){let n=Zh().document.createElement(`canvas`);return n.width=e,n.height=t,n},decodeImage:og},cg={name:`OffscreenCanvas`,createSurface(e,t){let n=Zh().OffscreenCanvas;return new n(e,t)},decodeImage:og};function lg(e){return typeof e==`object`&&!!e&&typeof e.getContext==`function`}function ug(e){if(typeof e!=`object`||!e)return!1;let t=e;return typeof t.width!=`number`||typeof t.height!=`number`?!1:typeof t.getContext==`function`||`src`in t||typeof t.close==`function`}function dg(e){let t=e;return{width:t.naturalWidth||e.width,height:t.naturalHeight||e.height}}function fg(e,t){let n=e*t;if(!Number.isSafeInteger(e)||!Number.isSafeInteger(t)||e<1||t<1||!Number.isSafeInteger(n))throw RangeError(`Image dimensions must be positive safe integers; received ${e}×${t}`);return n}var pg=class e{constructor(e,t,n,r=`srgb`){this._canvas=null,this._imageData=null,this._dirty=!0,fg(e,t),this.width=e,this.height=t,this.channels=n,this.colorSpace=r,this._memoryBytes=n.reduce((e,t)=>e+t.byteLength,0)}get memoryBytes(){return this._memoryBytes}get memorySizeStr(){let e=this._memoryBytes;return e<1024?`${e}B`:e<1048576?`${(e/1024).toFixed(1)}KB`:`${(e/1048576).toFixed(2)}MB`}static grayscale(t,n){let r=fg(t,n);return new e(t,n,[new Float32Array(r)])}static rgb(t,n){let r=fg(t,n);return new e(t,n,[new Float32Array(r),new Float32Array(r),new Float32Array(r)])}static rgba(t,n){let r=fg(t,n);return new e(t,n,[new Float32Array(r),new Float32Array(r),new Float32Array(r),new Float32Array(r)])}static fromCanvas(t){if(lg(t)){let n=t.getContext(`2d`);if(!n)throw Error(`cascade: canvas has no 2D context`);return e.fromImageData(n.getImageData(0,0,t.width,t.height))}let{width:n,height:r}=dg(t),i=tg(n,r).getContext(`2d`);if(!i)throw Error(`cascade: canvas has no 2D context`);return i.drawImage(t,0,0),e.fromImageData(i.getImageData(0,0,n,r))}static fromImageData(t){let{width:n,height:r,data:i}=t,a=n*r,o=new Float32Array(a),s=new Float32Array(a),c=new Float32Array(a),l=new Float32Array(a),u=1/255;for(let e=0;e<a;e++){let t=e*4;o[e]=i[t]*u,s[e]=i[t+1]*u,c[e]=i[t+2]*u,l[e]=i[t+3]*u}return new e(n,r,[o,s,c,l])}static solid(t,n,r){let i=e.rgba(t,n);return i.fill(0,r.r),i.fill(1,r.g),i.fill(2,r.b),i.fill(3,r.a??1),i}get channelCount(){return this.channels.length}get layout(){switch(this.channels.length){case 1:return`gray`;case 3:return`rgb`;default:return`rgba`}}get pixelCount(){return this.width*this.height}getChannel(e){if(e<0||e>=this.channels.length)throw Error(`Channel index ${e} out of bounds (0-${this.channels.length-1})`);return this.channels[e]}r(){return this.channels[0]}g(){return this.channels[Math.min(1,this.channels.length-1)]}b(){return this.channels[Math.min(2,this.channels.length-1)]}a(){return this.channels.length>=4?this.channels[3]:this.createOpaqueAlpha()}createOpaqueAlpha(){let e=new Float32Array(this.pixelCount);return e.fill(1),e}index(e,t){return t*this.width+e}getPixel(e,t){let n=this.index(e,t);return this.channels.map(e=>e[n])}setPixel(e,t,n){let r=this.index(e,t);for(let e=0;e<Math.min(n.length,this.channels.length);e++)this.channels[e][r]=n[e];this._dirty=!0}getValue(e,t,n=0){return this.channels[n][this.index(e,t)]}setValue(e,t,n,r){this.channels[n][this.index(e,t)]=r,this._dirty=!0}fill(e,t){this.channels[e].fill(t),this._dirty=!0}fillAll(e){for(let t=0;t<this.channels.length;t++)this.channels[t].fill(e[t]??0);this._dirty=!0}clone(){let t=this.channels.map(e=>new Float32Array(e));return new e(this.width,this.height,t,this.colorSpace)}emptyClone(){return new e(this.width,this.height,this.channels.map(()=>new Float32Array(this.pixelCount)),this.colorSpace)}markDirty(){this._dirty=!0}toGrayscale(){if(this.channels.length===1)return this.clone();let t=e.grayscale(this.width,this.height),n=t.channels[0],r=this.channels[0],i=this.channels[1],a=this.channels[2];for(let e=0;e<this.pixelCount;e++)n[e]=.2126*r[e]+.7152*i[e]+.0722*a[e];return t}toRGBA(){if(this.channels.length>=4)return this.clone();let t=e.rgba(this.width,this.height);if(this.channels.length===1){let e=this.channels[0];t.channels[0].set(e),t.channels[1].set(e),t.channels[2].set(e),t.channels[3].fill(1)}else this.channels.length===3&&(t.channels[0].set(this.channels[0]),t.channels[1].set(this.channels[1]),t.channels[2].set(this.channels[2]),t.channels[3].fill(1));return t}toImageData(){if(this._imageData&&!this._dirty)return this._imageData;let e=new ImageData(this.width,this.height),t=e.data,n=this.pixelCount,r=this.channels[0],i=this.channels.length>1?this.channels[1]:r,a=this.channels.length>2?this.channels[2]:r,o=this.channels.length>3,s=o?this.channels[3]:null;for(let e=0;e<n;e++){let n=e<<2,c;c=r[e]*255+.5|0,t[n]=c<0?0:c>255?255:c,c=i[e]*255+.5|0,t[n+1]=c<0?0:c>255?255:c,c=a[e]*255+.5|0,t[n+2]=c<0?0:c>255?255:c,o?(c=s[e]*255+.5|0,t[n+3]=c<0?0:c>255?255:c):t[n+3]=255}return this._imageData=e,e}toSurface(){if(this._canvas&&!this._dirty)return this._canvas;this._canvas||=tg(this.width,this.height);let e=this._canvas.getContext(`2d`);if(!e)throw Error(`cascade: canvas has no 2D context`);return e.putImageData(this.toImageData(),0,0),this._dirty=!1,this._canvas}toCanvas(){return this.toSurface()}inBounds(e,t){return e>=0&&e<this.width&&t>=0&&t<this.height}wrapCoord(e,t,n){return n?(e%t+t)%t:Math.max(0,Math.min(t-1,e))}sample(e,t,n=0,r=!1){let i=Math.floor(e),a=Math.floor(t),o=i+1,s=a+1,c=e-i,l=t-a,u=this.channels[n],d=this.width,f=this.height,p=this.wrapCoord(i,d,r),m=this.wrapCoord(o,d,r),h=this.wrapCoord(a,f,r),g=this.wrapCoord(s,f,r),_=u[h*d+p],v=u[h*d+m],y=u[g*d+p],b=u[g*d+m],x=_*(1-c)+v*c,S=y*(1-c)+b*c;return x*(1-l)+S*l}samplePixel(e,t,n=!1){return this.channels.map((r,i)=>this.sample(e,t,i,n))}},mg={number:Zl.float,image:Zl.image,asset:Zl.asset,geometry:Zl.points,array:Zl.array,object:Zl.object,string:Zl.string,boolean:Zl.bool,color:Zl.color,any:Zl.any,trigger:`var(--type-trigger)`,inactive:`var(--wire-inactive)`};function hg(e){return e.portType===`trigger`?mg.trigger:e.value instanceof pg||e.value instanceof HTMLCanvasElement||e.value instanceof HTMLImageElement||e.value instanceof OffscreenCanvas?mg.image:e.dataType&&e.dataType!==`any`?Ql(e.dataType):$l(e.value)?Zl.image:typeof e.value==`number`?mg.number:typeof e.value==`string`?mg.string:typeof e.value==`boolean`?mg.boolean:Array.isArray(e.value)?mg.array:e.value!==null&&typeof e.value==`object`?mg.object:mg.any}var gg=u(`<textarea class="annotation-input svelte-hiih8o" placeholder="Enter text..."></textarea>`),_g=u(`<div class="annotation-content svelte-hiih8o"><!></div>`),vg=u(`<div class="port annotation-port svelte-hiih8o" data-port-type="output" role="button" tabindex="0"><div class="port-dot svelte-hiih8o"></div></div>`),yg=u(`<div role="textbox" aria-label="Text annotation" tabindex="0"><!> <!></div>`);function bg(e,t){ee(t,!1);let n=Y(),i=Y(),s=Y(),c=Y(),u=V(t,`annotation`,8),d=V(t,`isSelected`,8,!1),p=V(t,`isEditing`,8,!1),m=V(t,`isDragging`,8,!1),h=xe(),g=Y();function _(){x(g)?.focus()}function y(){return x(g)}J(()=>A(u()),()=>{L(n,u().style||{})}),J(()=>A(u()),()=>{L(i,u().size?.width||540)}),J(()=>A(u()),()=>{L(s,u().size?.height||`auto`)}),J(()=>(x(n),x(i),x(s)),()=>{L(c,[`font-size: ${x(n).fontSize||14}px`,`font-weight: ${x(n).fontWeight||`normal`}`,`font-style: ${x(n).fontStyle||`normal`}`,`text-align: ${x(n).textAlign||`left`}`,`color: ${x(n).color||`var(--text-default)`}`,x(n).backgroundColor?`background-color: ${x(n).backgroundColor}`:``,`padding: ${x(n).padding||0}px`,`border-radius: ${x(n).borderRadius||0}px`,x(n).borderLeft?`border-left: ${x(n).borderLeft}`:``,`width: ${x(i)}px`,typeof x(s)==`number`?`min-height: ${x(s)}px`:``].filter(Boolean).join(`; `))}),he();var b={focusInput:_,getInputElement:y};ue();var S=yg();let C;var w=M(S),T=e=>{var t=gg();z(t),ge(t,e=>L(g,e),()=>x(g)),K(()=>{r(t,(A(u()),F(()=>u().content||``))),a(t,`width: ${x(i),x(n),F(()=>x(i)-(x(n).padding||8)*2)??``}px; min-height: ${x(s),x(n),F(()=>typeof x(s)==`number`?x(s)-(x(n).padding||8)*2:60)??``}px`)}),O(`blur`,t,()=>h(`finishEdit`)),O(`keydown`,t,e=>{e.key===`Enter`&&(e.metaKey||e.ctrlKey)||e.key===`Escape`?h(`finishEdit`):e.key===`Delete`&&(e.metaKey||e.ctrlKey)&&h(`delete`,{id:u().id})}),O(`input`,t,e=>h(`input`,{id:u().id,event:e})),E(e,t)},D=e=>{var t=_g(),n=M(t),r=e=>{var t=te(),n=G(t);l(n,()=>(A(Xh),A(u()),F(()=>Xh(u().content)))),E(e,t)};Z(n,e=>{A(u()),F(()=>u().content)&&e(r)}),o(t),E(e,t)};Z(w,e=>{p()?e(T):e(D,-1)});var k=P(w,2),ne=e=>{var t=te(),n=G(t);f(n,1,()=>(A(u()),F(()=>u().outputs)),e=>e.id,(e,t)=>{let n=pe(()=>(A(u()),F(()=>u().size?.width||540))),r=pe(()=>(A(u()),F(()=>typeof u().size?.height==`number`?u().size.height:60))),i=pe(()=>(A(hg),x(t),F(()=>hg(x(t)))));var o=vg(),s=q(o);K(()=>{X(o,`data-node-id`,(A(u()),F(()=>u().id))),X(o,`data-port-id`,(x(t),F(()=>x(t).id))),a(o,`position: absolute; left: ${x(n)/2}px; top: ${x(r)??``}px; transform: translate(-50%, -50%);`),X(o,`aria-label`,`Output port ${x(t),F(()=>x(t).name)??``}`),a(s,`background-color: ${x(i)??``};`)}),O(`mousedown`,o,e=>h(`portMouseDown`,{nodeId:u().id,portId:x(t).id,portType:`output`,event:e})),E(e,o)}),E(e,t)};return Z(k,e=>{A(u()),F(()=>u().outputs&&u().outputs.length>0)&&e(ne)}),o(S),K(()=>{C=v(S,1,`annotation annotation-text svelte-hiih8o`,null,C,{selected:d(),editing:p(),dragging:m()}),X(S,`data-annotation-id`,(A(u()),F(()=>u().id))),a(S,`left: ${A(u()),F(()=>u().position.x)??``}px; top: ${A(u()),F(()=>u().position.y)??``}px; ${x(c)??``}`)}),O(`click`,S,e=>h(`click`,{id:u().id,event:e})),O(`dblclick`,S,e=>h(`dblclick`,{id:u().id,event:e})),O(`mousedown`,S,e=>h(`mousedown`,{id:u().id,event:e,width:x(i),height:typeof x(s)==`number`?x(s):60})),O(`mousemove`,S,e=>h(`mousemove`,{id:u().id,event:e,width:x(i),height:typeof x(s)==`number`?x(s):60})),O(`keydown`,S,e=>h(`keydown`,{id:u().id,event:e})),E(e,S),se(t,`focusInput`,_),se(t,`getInputElement`,y),Ee(b)}var xg=u(`<div class="annotation-caption svelte-3d90za"> </div>`),Sg=u(`<div class="port annotation-port svelte-3d90za" data-port-type="output" role="button" tabindex="0"><div class="port-dot svelte-3d90za"></div></div>`),Cg=u(`<div role="button" aria-label="Image annotation" tabindex="0"><img draggable="false" class="svelte-3d90za"/> <!> <!></div>`);function wg(e,t){ee(t,!1);let n=Y(),r=Y(),i=Y(),s=Y(),c=V(t,`annotation`,8),l=V(t,`isSelected`,8,!1),u=V(t,`isDragging`,8,!1),d=xe();J(()=>A(c()),()=>{L(n,c().size?.width||200)}),J(()=>A(c()),()=>{L(r,c().size?.height||150)}),J(()=>A(c()),()=>{L(i,c().src||``)}),J(()=>A(c()),()=>{L(s,c().caption||``)}),he(),ue();var p=Cg();let m;var h=M(p),g=P(h,2),_=e=>{var t=xg(),n=q(t,!0);K(()=>D(n,x(s))),E(e,t)};Z(g,e=>{x(s)&&e(_)});var y=P(g,2),b=e=>{var t=te(),i=G(t);f(i,1,()=>(A(c()),F(()=>c().outputs)),e=>e.id,(e,t)=>{let i=pe(()=>(A(hg),x(t),F(()=>hg(x(t)))));var o=Sg(),s=q(o);K(()=>{X(o,`data-node-id`,(A(c()),F(()=>c().id))),X(o,`data-port-id`,(x(t),F(()=>x(t).id))),a(o,`position: absolute; left: ${x(n)/2}px; top: ${x(r)??``}px; transform: translate(-50%, -50%);`),X(o,`aria-label`,`Output port ${x(t),F(()=>x(t).name)??``}`),a(s,`background-color: ${x(i)??``};`)}),O(`mousedown`,o,e=>d(`portMouseDown`,{nodeId:c().id,portId:x(t).id,portType:`output`,event:e})),E(e,o)}),E(e,t)};Z(y,e=>{A(c()),F(()=>c().outputs&&c().outputs.length>0)&&e(b)}),o(p),K(()=>{m=v(p,1,`annotation annotation-image svelte-3d90za`,null,m,{selected:l(),dragging:u()}),X(p,`data-annotation-id`,(A(c()),F(()=>c().id))),a(p,`left: ${A(c()),F(()=>c().position.x)??``}px; top: ${A(c()),F(()=>c().position.y)??``}px; width: ${x(n)??``}px; height: ${x(r)??``}px`),X(h,`src`,x(i)),X(h,`alt`,x(s))}),O(`dragstart`,h,e=>e.preventDefault()),O(`click`,p,e=>d(`click`,{id:c().id,event:e})),O(`dblclick`,p,e=>d(`dblclick`,{id:c().id,event:e})),O(`mousedown`,p,e=>{e.button===0&&(e.preventDefault(),d(`mousedown`,{id:c().id,event:e}))}),O(`dragstart`,p,e=>e.preventDefault()),O(`keydown`,p,e=>d(`keydown`,{id:c().id,event:e})),E(e,p),Ee()}var Tg=u(`<input type="text" class="annotation-input svelte-xr9cig" placeholder="Group name..."/>`),Eg=u(`<div class="group-header svelte-xr9cig"> </div>`),Dg=u(`<div class="resize-handle resize-se svelte-xr9cig" role="button" aria-label="Resize southeast" tabindex="0"></div> <div class="resize-handle resize-sw svelte-xr9cig" role="button" aria-label="Resize southwest" tabindex="0"></div> <div class="resize-handle resize-ne svelte-xr9cig" role="button" aria-label="Resize northeast" tabindex="0"></div> <div class="resize-handle resize-nw svelte-xr9cig" role="button" aria-label="Resize northwest" tabindex="0"></div>`,1),Og=u(`<div role="button" aria-label="Group annotation" tabindex="0"><!> <!></div>`);function kg(e,t){ee(t,!1);let n=Y(),i=Y(),s=Y(),c=V(t,`annotation`,8),l=V(t,`isSelected`,8,!1),u=V(t,`isEditing`,8,!1),d=V(t,`isDragging`,8,!1),f=xe(),p=Y();function m(){x(p)?.focus(),x(p)?.select()}function h(){return x(p)}J(()=>A(c()),()=>{L(n,c().size?.width||300)}),J(()=>A(c()),()=>{L(i,c().size?.height||200)}),J(()=>A(c()),()=>{L(s,c().content||`Group`)}),he();var g={focusInput:m,getInputElement:h};ue();var _=Og();let y;var b=M(_),S=e=>{var t=Tg();re(t),ge(t,e=>L(p,e),()=>x(p)),K(()=>r(t,x(s))),O(`blur`,t,()=>f(`finishEdit`)),O(`keydown`,t,e=>{e.key===`Enter`||e.key===`Escape`?f(`finishEdit`):e.key===`Delete`&&(e.metaKey||e.ctrlKey)&&f(`delete`,{id:c().id})}),O(`input`,t,e=>f(`input`,{id:c().id,event:e})),E(e,t)},C=e=>{var t=Eg(),n=q(t,!0);K(()=>D(n,x(s))),E(e,t)};Z(b,e=>{u()?e(S):e(C,-1)});var w=P(b,2),T=e=>{var t=Dg(),n=G(t),r=P(n,2),i=P(r,2),a=P(i,2);O(`mousedown`,n,e=>f(`resizeStart`,{id:c().id,handle:`se`,event:e})),O(`mousedown`,r,e=>f(`resizeStart`,{id:c().id,handle:`sw`,event:e})),O(`mousedown`,i,e=>f(`resizeStart`,{id:c().id,handle:`ne`,event:e})),O(`mousedown`,a,e=>f(`resizeStart`,{id:c().id,handle:`nw`,event:e})),E(e,t)};return Z(w,e=>{l()&&!u()&&e(T)}),o(_),K(()=>{y=v(_,1,`annotation annotation-group svelte-xr9cig`,null,y,{selected:l(),editing:u(),dragging:d()}),X(_,`data-annotation-id`,(A(c()),F(()=>c().id))),a(_,`left: ${A(c()),F(()=>c().position.x)??``}px; top: ${A(c()),F(()=>c().position.y)??``}px; width: ${x(n)??``}px; height: ${x(i)??``}px`)}),O(`click`,_,e=>f(`click`,{id:c().id,event:e})),O(`dblclick`,_,e=>f(`dblclick`,{id:c().id,event:e})),O(`mousedown`,_,e=>{e.button===0&&f(`mousedown`,{id:c().id,event:e})}),O(`keydown`,_,e=>f(`keydown`,{id:c().id,event:e})),E(e,_),se(t,`focusInput`,m),se(t,`getInputElement`,h),Ee(g)}var Ag=m(`<svg role="button" aria-label="Line annotation" tabindex="0" style="position: absolute; left: 0; top: 0; pointer-events: none;"><line pointer-events="stroke" style="cursor: pointer;" class="svelte-os8h5j"></line></svg>`);function jg(e,t){ee(t,!1);let n=Y(),r=Y(),i=Y(),a=Y(),o=Y(),s=Y(),c=Y(),l=V(t,`annotation`,8),u=V(t,`isSelected`,8,!1),d=xe();J(()=>A(l()),()=>{L(n,l().style||{})}),J(()=>A(l()),()=>{L(r,l().position.x)}),J(()=>A(l()),()=>{L(i,l().position.y)}),J(()=>A(l()),()=>{L(a,l().endPosition?.x||l().position.x)}),J(()=>A(l()),()=>{L(o,l().endPosition?.y||l().position.y)}),J(()=>x(n),()=>{L(s,x(n).strokeWidth||2)}),J(()=>x(n),()=>{L(c,x(n).strokeColor||`var(--text-default)`)}),he(),ue();var f=Ag();let p;var m=q(f);K(()=>{p=v(f,0,`annotation annotation-line svelte-os8h5j`,null,p,{selected:u()}),X(f,`data-annotation-id`,(A(l()),F(()=>l().id))),X(m,`x1`,x(r)),X(m,`y1`,x(i)),X(m,`x2`,x(a)),X(m,`y2`,x(o)),X(m,`stroke`,x(c)),X(m,`stroke-width`,x(s))}),O(`click`,f,e=>d(`click`,{id:l().id,event:e})),O(`mousedown`,f,e=>d(`mousedown`,{id:l().id,event:e})),O(`keydown`,f,e=>d(`keydown`,{id:l().id,event:e})),E(e,f),Ee()}var Mg=m(`<svg role="button" aria-label="Polyline annotation" tabindex="0" style="position: absolute; left: 0; top: 0; pointer-events: none;"><path fill="none" pointer-events="stroke" style="cursor: pointer;" class="svelte-3cc9ql"></path></svg>`);function Ng(e,t){ee(t,!1);let n=Y(),r=Y(),i=Y(),a=Y(),o=Y(),s=V(t,`annotation`,8),c=V(t,`isSelected`,8,!1),l=xe();J(()=>A(s()),()=>{L(n,s().style||{})}),J(()=>A(s()),()=>{L(r,s().points||[])}),J(()=>x(n),()=>{L(i,x(n).strokeWidth||2)}),J(()=>x(n),()=>{L(a,x(n).strokeColor||`var(--text-default)`)}),J(()=>x(r),()=>{L(o,x(r).map((e,t)=>`${t===0?`M`:`L`} ${e.x} ${e.y}`).join(` `))}),he(),ue();var u=te(),d=G(u),f=e=>{var t=Mg();let n;var r=q(t);K(()=>{n=v(t,0,`annotation annotation-polyline svelte-3cc9ql`,null,n,{selected:c()}),X(t,`data-annotation-id`,(A(s()),F(()=>s().id))),X(r,`d`,x(o)),X(r,`stroke`,x(a)),X(r,`stroke-width`,x(i))}),O(`click`,t,e=>l(`click`,{id:s().id,event:e})),O(`mousedown`,t,e=>l(`mousedown`,{id:s().id,event:e})),O(`keydown`,t,e=>l(`keydown`,{id:s().id,event:e})),E(e,t)};Z(d,e=>{x(r),F(()=>x(r).length>0)&&e(f)}),E(e,u),Ee()}var Pg=new Map([[`Text`,bg],[`text`,bg],[`Image`,wg],[`image`,wg],[`Group`,kg],[`group`,kg],[`Line`,jg],[`line`,jg],[`Polyline`,Ng],[`polyline`,Ng]]),Fg={id:`image`,label:`Image`,icon:`Palette`,categories:[{id:`create`,label:`Create`,nodes:[{name:`File`,icon:`FileImage`,description:`Load images from files`,type:`Image`},{name:`Color`,icon:`Square`,description:`Create a solid color canvas`,type:`Color`},{name:`Checkers`,icon:`Grid`,description:`Generate a checkerboard pattern`,type:`Checkers`},{name:`Noise`,icon:`Cloud`,description:`Generate procedural noise patterns`,type:`Noise`},{name:`Ramp`,icon:`Gradient`,description:`Generate color ramps`,type:`Ramp`},{name:`Text`,icon:`Type`,description:`Render text with customizable font and style`,type:`Text`}]},{id:`filter`,label:`Filter`,nodes:[{name:`Blur`,icon:`Droplets`,description:`Gaussian blur`,type:`Blur`},{name:`Normal Map`,icon:`Box`,description:`Compute normal map from height map`,type:`NormalMap`}]},{id:`transform`,label:`Transform`,nodes:[{name:`Transform`,icon:`Move`,description:`2D rotation, translation, and scaling`,type:`Transform`},{name:`Resize`,icon:`Maximize2`,description:`Scale or resize an image`,type:`Resize`}]},{id:`composite`,label:`Composite`,nodes:[{name:`Composite`,icon:`Layers`,description:`Blend two images together`,type:`Composite`}]}]},Ig={id:`core`,label:`Core`,icon:`Workflow`,categories:[{id:`routing`,label:`Routing`,nodes:[{name:`Switch`,icon:`GitBranch`,description:`Switch between multiple inputs by index`,type:`Switch`},{name:`Merge`,icon:`GitMerge`,description:`Combine multiple inputs into an array`,type:`Merge`},{name:`Null`,icon:`Circle`,description:`Pass an input through unchanged`,type:`Null`}]},{id:`utility`,label:`Utility`,nodes:[{name:`Random`,icon:`Dice5`,description:`Generate a deterministic value from a seed`,type:`Random`},{name:`Remap`,icon:`ArrowRightLeft`,description:`Map a number from one range into another`,type:`Remap`},{name:`Select`,icon:`ListFilter`,description:`Pick an item from an array by index`,type:`Select`},{name:`Freeze`,icon:`Snowflake`,description:`Capture and lock a value`,type:`Freeze`}]},{id:`network`,label:`Network`,nodes:[{name:`Subnet`,icon:`Folder`,description:`Network container for organizing nodes`,type:`Subnet`},{name:`Input`,icon:`LogIn`,description:`External input to a subnet`,type:`Input`},{name:`Output`,icon:`LogOut`,description:`Defines subnet output`,type:`Output`}]}]},Lg={apiVersion:1,label:`Rectangle`,description:`A closed four-point polygon, counter-clockwise from bottom-left.`,icon:`Square`,runsOn:`portable`,inputs:{size:{kind:`data`,type:`vec2`,default:[1,1]},center:{kind:`data`,type:`vec2`,default:[0,0]}},outputs:{geometry:{kind:`data`,type:`geometry`}}},Rg={apiVersion:1,label:`Circle`,description:`A closed circle, as one cubic Bezier chain or as a polygon of divisions segments.`,icon:`Circle`,runsOn:`portable`,inputs:{center:{kind:`data`,type:`vec2`,default:[0,0]},radius:{kind:`data`,type:`vec2`,default:[1,1]},divisions:{kind:`data`,type:`int`,default:32,min:3,step:1,description:`Segments of the polygonal form. Ignored by the Bezier form.`}},outputs:{geometry:{kind:`data`,type:`geometry`}},props:{type:{type:`string`,default:`bezier`,label:`Primitive Type`,control:`select`,options:[`bezier`,`poly`],description:`A Bezier circle is a circle; a polygon of any division count is visibly a polygon in print.`}}},zg={apiVersion:1,label:`Transform`,description:`Translate, rotate and scale geometry about a pivot.`,icon:`Move`,runsOn:`portable`,inputs:{geometry:{kind:`data`,type:`geometry`},translate:{kind:`data`,type:`vec2`,default:[0,0]},rotate:{kind:`data`,type:`float`,default:0,description:`Degrees, counter-clockwise.`},scale:{kind:`data`,type:`vec2`,default:[1,1]},pivot:{kind:`data`,type:`vec2`,default:[0,0]}},outputs:{geometry:{kind:`data`,type:`geometry`}}},Bg={apiVersion:1,label:`Merge`,description:`Concatenate geometries, taking the union of their attributes.`,icon:`GitMerge`,runsOn:`portable`,inputs:{inputs:{kind:`data`,type:`geometry`,variadic:!0}},outputs:{geometry:{kind:`data`,type:`geometry`}}},Vg={apiVersion:1,label:`Copy to Points`,description:`Instance one geometry onto every point of another.`,icon:`Copy`,runsOn:`portable`,inputs:{source:{kind:`data`,type:`geometry`},target:{kind:`data`,type:`geometry`}},outputs:{geometry:{kind:`data`,type:`geometry`}},props:{targetGroup:{type:`string`,default:``,label:`Target Group`,description:`Copy onto this point group only; empty means every point.`},useTargetOrientations:{type:`bool`,default:!0,label:`Transform Using Target Point Orientations`,description:`Read pscale and N from the target points.`}}},Hg={apiVersion:1,label:`SVG Export`,description:`Write geometry as an SVG document, one group element per group.`,icon:`FileDown`,runsOn:`portable`,capabilities:[`assets`],inputs:{geometry:{kind:`data`,type:`geometry`}},outputs:{svg:{kind:`data`,type:`string`},asset:{kind:`data`,type:`asset`}},props:{filename:{type:`string`,default:`geometry.svg`,label:`Filename`},width:{type:`float`,default:0,min:0,label:`Width`,description:`0 derives the width from the geometry bounds.`},height:{type:`float`,default:0,min:0,label:`Height`},margin:{type:`float`,default:0,label:`Margin`},stroke:{type:`color`,default:[0,0,0,1],label:`Stroke`,description:`Fallback for a primitive with no Cd attribute.`},strokeWidth:{type:`float`,default:1,min:0,label:`Stroke Width`,description:`Fallback for a primitive with no width attribute.`},opacity:{type:`float`,default:1,min:0,max:1,label:`Opacity`,description:`Fallback for a primitive with no opacity attribute.`},fillMode:{type:`string`,default:`none`,label:`Fill Mode`,control:`select`,options:[`none`,`solid`],description:`none leaves primitives unfilled, which is what plotter work wants.`},fill:{type:`color`,default:[1,1,1,1],label:`Fill`,description:`Fill colour, used only when Fill Mode is solid.`},pointRadius:{type:`float`,default:.5,min:0,label:`Point Radius`,description:`Fallback radius for a loose point with no pscale.`},precision:{type:`int`,default:3,min:0,max:15,step:1,label:`Precision`,description:`Decimal places on emitted coordinates.`}}},Ug={id:`geo`,label:`Geometry`,icon:`Shapes`,categories:[{id:`geometry`,label:`Geometry`,nodes:Object.freeze([[`cascade.geo.Rectangle`,Lg],[`cascade.geo.Circle`,Rg],[`cascade.geo.Transform`,zg],[`cascade.geo.Merge`,Bg],[`cascade.geo.CopyToPoints`,Vg],[`cascade.geo.SvgExport`,Hg]]).map(([e,t])=>({name:t.label??e.split(`.`).pop(),icon:t.icon??`Shapes`,description:t.description??``,type:e}))}]},Wg=[{id:`annotations`,label:`Annotations`,icon:`StickyNote`,categories:[{id:`annotations`,label:`Annotations`,nodes:[{name:`Text`,icon:`Type`,description:`Add text annotation`,type:`annotation:text`},{name:`Image`,icon:`Image`,description:`Add image annotation`,type:`annotation:image`},{name:`Group`,icon:`Folder`,description:`Group elements together`,type:`annotation:group`},{name:`Line`,icon:`Minus`,description:`Draw a line`,type:`annotation:line`},{name:`Draw`,icon:`PenTool`,description:`Freehand drawing`,type:`annotation:polyline`}]}]},Ig,Ug,Fg];function Gg(e,t={}){return{id:`project`,label:`Project`,icon:`Package`,categories:[{id:`nodes`,label:`Nodes`,nodes:e.map(e=>({name:e.split(/[-_]/).filter(Boolean).map(e=>e[0]?.toUpperCase()+e.slice(1)).join(` `),icon:t[e]??`Settings`,description:`Project node · ${e}`,type:`project.${e}`}))}]}}var Kg={name:`Custom`,icon:`Zap`,description:`Create custom node with your own code`,type:`Custom`},qg={node:e=>`// ${e} - Custom Node
|
|
74
|
-
//
|
|
75
|
-
// Define inputs
|
|
76
|
-
const input = node.in('input', null);
|
|
77
|
-
|
|
78
|
-
// Define properties (shown in inspector)
|
|
79
|
-
node.addParm('value', {
|
|
80
|
-
value: 1.0,
|
|
81
|
-
type: 'slider',
|
|
82
|
-
params: { min: 0, max: 10, step: 0.1 },
|
|
83
|
-
displayName: 'Value',
|
|
84
|
-
onChange: () => process()
|
|
85
|
-
});
|
|
86
|
-
|
|
87
|
-
// Define outputs
|
|
88
|
-
const output = node.out('output');
|
|
89
|
-
|
|
90
|
-
// Process function
|
|
91
|
-
function process() {
|
|
92
|
-
output.setValue(node.props.value.value);
|
|
93
|
-
}
|
|
94
|
-
|
|
95
|
-
// React to input changes
|
|
96
|
-
input.onChange = (value) => {
|
|
97
|
-
// Process input and set output
|
|
98
|
-
output.setValue(value);
|
|
99
|
-
};
|
|
100
|
-
|
|
101
|
-
// Watch property changes (use with onChange for reliability)
|
|
102
|
-
node.watchProp('value', () => process());
|
|
103
|
-
|
|
104
|
-
// Called once when node is ready
|
|
105
|
-
node.onReady = () => process();
|
|
106
|
-
`,image:e=>`// ${e} - Image Processing Node
|
|
107
|
-
// Extends ImageNodeBase for canvas/image utilities
|
|
108
|
-
//
|
|
109
|
-
// Available helpers from ImageNodeBase:
|
|
110
|
-
// this.createCanvas(width, height) - Create a canvas
|
|
111
|
-
// this.getImageSize(img) - Get {width, height} from image/canvas
|
|
112
|
-
// this.getImageData(img, w?, h?) - Get ImageData from image
|
|
113
|
-
// this.putImageData(imageData) - Create canvas from ImageData
|
|
114
|
-
// this.colorToCss(color) - Convert {r,g,b,a} to CSS string
|
|
115
|
-
// this.normalizeColor(color) - Normalize color values to 0-1
|
|
116
|
-
// this.setOutputAndPreview(output, canvas) - Set output and preview
|
|
117
|
-
|
|
118
|
-
// Define image input
|
|
119
|
-
const imageInput = node.in('image', null);
|
|
120
|
-
|
|
121
|
-
// Define properties (use both onChange and watchProp for reliability)
|
|
122
|
-
node.addParm('intensity', {
|
|
123
|
-
value: 1.0,
|
|
124
|
-
type: 'slider',
|
|
125
|
-
params: { min: 0, max: 2, step: 0.01 },
|
|
126
|
-
displayName: 'Intensity',
|
|
127
|
-
onChange: () => process()
|
|
128
|
-
});
|
|
129
|
-
|
|
130
|
-
node.addParm('width', {
|
|
131
|
-
value: 512,
|
|
132
|
-
type: 'int',
|
|
133
|
-
params: { min: 1, max: 4096, step: 1 },
|
|
134
|
-
displayName: 'Width',
|
|
135
|
-
onChange: () => process()
|
|
136
|
-
});
|
|
137
|
-
|
|
138
|
-
node.addParm('height', {
|
|
139
|
-
value: 512,
|
|
140
|
-
type: 'int',
|
|
141
|
-
params: { min: 1, max: 4096, step: 1 },
|
|
142
|
-
displayName: 'Height',
|
|
143
|
-
onChange: () => process()
|
|
144
|
-
});
|
|
145
|
-
|
|
146
|
-
// Define output
|
|
147
|
-
const output = node.out('image');
|
|
148
|
-
|
|
149
|
-
// Process function
|
|
150
|
-
function process() {
|
|
151
|
-
const width = node.props.width.value;
|
|
152
|
-
const height = node.props.height.value;
|
|
153
|
-
const intensity = node.props.intensity.value;
|
|
154
|
-
|
|
155
|
-
// Create output canvas
|
|
156
|
-
const canvas = document.createElement('canvas');
|
|
157
|
-
canvas.width = width;
|
|
158
|
-
canvas.height = height;
|
|
159
|
-
const ctx = canvas.getContext('2d');
|
|
160
|
-
if (!ctx) return;
|
|
161
|
-
|
|
162
|
-
// If we have an input image, process it
|
|
163
|
-
const inputImage = imageInput.value;
|
|
164
|
-
if (inputImage) {
|
|
165
|
-
ctx.drawImage(inputImage, 0, 0, width, height);
|
|
166
|
-
// Add your image processing here
|
|
167
|
-
} else {
|
|
168
|
-
// Generate pattern if no input
|
|
169
|
-
// Example: simple gradient
|
|
170
|
-
const gradient = ctx.createLinearGradient(0, 0, width, height);
|
|
171
|
-
gradient.addColorStop(0, \`rgba(255, 0, 0, \${intensity})\`);
|
|
172
|
-
gradient.addColorStop(1, \`rgba(0, 0, 255, \${intensity})\`);
|
|
173
|
-
ctx.fillStyle = gradient;
|
|
174
|
-
ctx.fillRect(0, 0, width, height);
|
|
175
|
-
}
|
|
176
|
-
|
|
177
|
-
output.setValue(canvas);
|
|
178
|
-
node.preview = canvas;
|
|
179
|
-
}
|
|
180
|
-
|
|
181
|
-
// React to changes (watchProp used with onChange for reliability)
|
|
182
|
-
imageInput.onChange = process;
|
|
183
|
-
node.watchProp('intensity', () => process());
|
|
184
|
-
node.watchProp('width', () => process());
|
|
185
|
-
node.watchProp('height', () => process());
|
|
186
|
-
|
|
187
|
-
node.onReady = () => process();
|
|
188
|
-
`};function Jg(e){for(let t of Wg)for(let n of t.categories){let t=n.nodes.find(t=>t.type===e);if(t)return t.icon}return`Settings`}function Yg(e,t,n){if(e.startsWith(`annotation:`))return`cascade.annotations.${e.split(`:`)[1]}`;if(e.startsWith(`project.`)||e.startsWith(`cascade.`))return e;for(let t of Wg)for(let n of t.categories){let r=n.nodes.find(t=>t.type===e);if(r)return t.id===`core`?`cascade.core.${r.name}`:`cascade.${t.id}.${n.id}.${r.name}`}return t&&n?t===`core`?`cascade.core.${e}`:`cascade.${t}.${n}.${e}`:`custom.${e}`}function Xg(e){let t=Yg(e);return t.startsWith(`cascade.`)?t.substring(8):t}var Zg=w(new Map);function Qg(e){Zg.update(t=>{let n=new Map(t);return n.set(e,(n.get(e)||0)+1),n})}var $g=w({}),e_=w({}),t_=w([]),n_=null;function r_(e=!1){return n_&&!e||(n_=(async()=>{try{let e=await fetch(`/api/nodes`);if(!e.ok)return;let t=await e.json();Array.isArray(t?.modules)&&t_.set(t.modules),t?.runsOn&&$g.set(t.runsOn),t?.icons&&e_.set(t.icons)}catch{}})()),n_}function i_(e){if(!e)return null;let t=e.split(`.`);return t.length>1?t.slice(1).join(`.`):e}var a_=w(0);function o_(){a_.update(e=>e+1)}var s_=u(`<div role="button" tabindex="0" data-port-type="input"><span class="port-dot svelte-qglm8b"></span></div>`),c_=u(`<div role="button" tabindex="0" data-port-type="input"><span class="port-pill svelte-qglm8b"></span></div>`),l_=u(`<div class="variadic-item svelte-qglm8b"><span class="variadic-source svelte-qglm8b"> </span> <button class="variadic-remove svelte-qglm8b" title="Disconnect">×</button></div>`),u_=u(`<div class="variadic-list svelte-qglm8b" role="list"></div>`),d_=u(`<span> </span>`),f_=u(`<div role="button" tabindex="0" data-port-type="output"><span class="port-dot svelte-qglm8b"></span></div>`),p_=u(`<input type="text" class="node-name-input svelte-qglm8b"/>`),m_=u(`<span class="node-name svelte-qglm8b" role="button" tabindex="0" draggable="true" title="Click to rename · drag into the agent console for its path"> </span>`),h_=u(`<div class="comment svelte-qglm8b"> </div>`),g_=u(`<div class="error-message svelte-qglm8b"> </div>`),__=u(`<div role="tooltip"><span class="tooltip-name svelte-qglm8b"> </span> <span class="tooltip-type svelte-qglm8b"> </span></div>`),v_=u(`<div role="application" tabindex="-1"><div class="node-container svelte-qglm8b"><div class="node-content svelte-qglm8b"><div class="port-row inputs svelte-qglm8b"></div> <!> <div><button aria-label="Bypass node" title="Bypass (B)"></button> <span class="node-icon svelte-qglm8b"><!></span> <!> <button aria-label="Cook node" title="Cook (C)"></button></div> <div class="port-row outputs svelte-qglm8b"></div></div> <div class="label svelte-qglm8b"><!></div></div> <!> <!></div> <!>`,1);function y_(e,t){ee(t,!1);let n=()=>we($g,`$runsOnByModule`,c),r=()=>we(Zg,`$propUpdateCounters`,c),i=()=>we(e_,`$iconByModule`,c),s=()=>we(a_,`$graphStructure`,c),[c,l]=ne(),u=Y(),d=Y(),p=Y(),m=Y(),g=Y(),_=Y(),y=Y(),b=Y(),S=Y(),C=Y(),w=Y(),T=Y(),k=Y(),j=Y(),N=V(t,`node`,8),ie=V(t,`selected`,8,!1),ae=V(t,`canvasTransform`,24,()=>({x:0,y:0,zoom:1})),oe=xe(),R=Y(0);function z(e,t){return t}function se(e,t){t.stopPropagation(),t.preventDefault(),oe(`disconnect`,{connectionId:e})}let B=Y(!1),ce=Y(null),le=Y(!1),H=Y(),U=Y(N().id);function de(e,t,n,r,i){let a=e.currentTarget.getBoundingClientRect(),o=a.left+a.width/2,s=i===`input`?a.bottom:a.top,c=(o-ae().x)/ae().zoom,l=(s-ae().y)/ae().zoom;L(ce,{name:t,dataType:n,color:r,x:c,y:i===`input`?l+2:l-2,type:i})}function fe(){L(ce,null)}function me(e,t,n){oe(`portClick`,{nodeId:N().id,portId:e,portType:t,event:n})}function W(e,t,n){n.button===0&&(n.stopPropagation(),oe(`portMouseDown`,{nodeId:N().id,portId:e,portType:t,event:n}))}function _e(e){e.target.closest(`.port`)||e.target.closest(`.node-name-input`)||e.target.closest(`.node-name`)||(e.preventDefault(),L(B,!0),oe(`nodeMouseDown`,{nodeId:N().id,event:e}))}function ve(){L(B,!1)}function ye(e){e.target.closest(`.port`)||(e.stopPropagation(),N().isNetwork()?oe(`diveInto`,{node:N()}):oe(`edit`,{node:N()}))}function Se(e,t,n){n.key===`Enter`&&(n.preventDefault(),me(e,t,new MouseEvent(`click`,{bubbles:!0,cancelable:!0})))}function Te(e){e.stopPropagation(),e.preventDefault(),oe(`bypassToggle`,{nodeId:N().id,event:e})}function De(e){e.stopPropagation(),e.preventDefault(),oe(`cookToggle`,{nodeId:N().id,event:e})}function Oe(e){e.stopPropagation(),e.dataTransfer&&(e.dataTransfer.setData(`text/plain`,N().id),e.dataTransfer.effectAllowed=`copy`)}function ke(e){e.stopPropagation(),e.preventDefault(),L(le,!0),L(U,N().id),setTimeout(()=>{x(H)?.focus(),x(H)?.select()},0)}function Ae(){if(x(U).trim()){let e=x(U).trim().replace(/\s+/g,``);if(e){let t=N().rename(e);L(U,t)}else L(U,N().id)}else L(U,N().id);L(le,!1)}function je(){L(U,N().id),L(le,!1)}function Me(e){e.key===`Enter`?(e.preventDefault(),e.stopPropagation(),Ae()):e.key===`Escape`&&(e.preventDefault(),e.stopPropagation(),je())}function Ne(e){(e.key===`Enter`||e.key===` `)&&(e.preventDefault(),e.stopPropagation(),ke(e))}J(()=>(A(N()),n()),()=>{L(u,(()=>{let e=i_(N().modulePath);return e?n()[e]??null:null})())}),J(()=>(r(),A(N())),()=>{let e=r();L(R,N()&&e.get(N().id)||0)}),J(()=>A(N()),()=>{L(d,N().cookState)}),J(()=>(x(d),A(N())),()=>{L(p,x(d)===`error`||N().error!==null)}),J(()=>(A(N()),i(),Jg),()=>{L(m,(()=>{let e=i_(N().modulePath);return e&&i()[e]||Jg(N().type)})())}),J(()=>A(N()),()=>{L(g,N().color||null)}),J(()=>A(N()),()=>{L(_,N().bypass)}),J(()=>A(N()),()=>{L(y,N().cook)}),J(()=>x(d),()=>{L(b,x(d)===`cooking`)}),J(()=>(s(),A(N())),()=>{L(S,z(s(),N().inputs))}),J(()=>(s(),A(N())),()=>{L(C,z(s(),N().outputs))}),J(()=>(s(),A(N())),()=>{L(w,z(s(),N().position))}),J(()=>x(S),()=>{L(T,x(S).some(e=>e.variadic))}),J(()=>x(S),()=>{L(k,(()=>{let e=[],t=new Set;for(let n of x(S))if(n.variadic){let r=n.name.match(/^(.+)_\d+$/),i=r?r[1]:n.name;if(!t.has(i)){t.add(i);let n=x(S).filter(e=>e.variadic&&e.name.startsWith(`${i}_`));e.push({type:`variadic`,baseName:i,ports:n,firstPort:n[0]})}}else e.push({type:`single`,port:n});return e})())}),J(()=>(x(T),x(S)),()=>{L(j,(()=>{if(!x(T))return[];let e=[];for(let t of x(S))if(t.variadic&&t.connections.length>0)for(let n of t.connections)e.push({portId:t.id,portName:t.name,connectionId:n.id,sourceNodeId:n.from.nodeId});return e})())}),J(()=>(A(N()),x(le)),()=>{N().id&&!x(le)&&L(U,N().id)}),he(),ue();var Pe=v_(),Fe=G(Pe);let Ie;var Le=M(Fe),Re=M(Le),ze=M(Re);f(ze,5,()=>x(k),h,(e,t)=>{var n=te(),r=G(n),i=e=>{let n=pe(()=>(x(t),F(()=>x(t).port))),r=pe(()=>(A(hg),A(x(n)),F(()=>hg(x(n)))));var i=s_(),o=q(i);K(()=>{v(i,1,`port port-${A(x(n)),F(()=>x(n).portType)??``}`,`svelte-qglm8b`),X(i,`data-node-id`,(A(N()),F(()=>N().id))),X(i,`data-port-id`,(A(x(n)),F(()=>x(n).id))),a(o,`background-color: ${x(r)??``};`)}),O(`click`,i,e=>me(x(n).id,`input`,e)),O(`mousedown`,i,e=>W(x(n).id,`input`,e)),O(`keydown`,i,e=>Se(x(n).id,`input`,e)),O(`mouseenter`,i,e=>de(e,x(n).name,x(n).dataType||`any`,x(r),`input`)),O(`mouseleave`,i,fe),E(e,i)},o=e=>{let n=pe(()=>(A(hg),x(t),F(()=>hg(x(t).firstPort))));pe(()=>(x(t),F(()=>x(t).ports.filter(e=>e.connections.length>0).length)));var r=te(),i=G(r),o=e=>{var r=c_(),i=q(r);K(e=>{v(r,1,`port port-${x(t),F(()=>x(t).firstPort.portType)??``} variadic`,`svelte-qglm8b`),X(r,`data-node-id`,(A(N()),F(()=>N().id))),X(r,`data-port-id`,(x(t),F(()=>x(t).firstPort.id))),X(r,`data-variadic-base`,(x(t),F(()=>x(t).baseName))),X(r,`data-variadic-ports`,e),a(i,`background-color: ${x(n)??``};`)},[()=>(x(t),F(()=>x(t).ports.map(e=>e.id).join(`,`)))]),O(`click`,r,e=>me(x(t).firstPort.id,`input`,e)),O(`mousedown`,r,e=>W(x(t).firstPort.id,`input`,e)),O(`keydown`,r,e=>Se(x(t).firstPort.id,`input`,e)),O(`mouseenter`,r,e=>de(e,x(t).baseName,x(t).firstPort.dataType||`any`,x(n),`input`)),O(`mouseleave`,r,fe),E(e,r)};Z(i,e=>{x(T)&&e(o)}),E(e,r)};Z(r,e=>{x(t),F(()=>x(t).type===`single`)?e(i):e(o,-1)}),E(e,n)}),o(ze);var Be=P(ze,2),Ve=e=>{var n=u_();f(n,5,()=>x(j),h,(e,n)=>{var r=l_(),i=M(r),a=q(i,!0),s=P(i,2);o(r),K(()=>D(a,(x(n),F(()=>x(n).sourceNodeId)))),O(`click`,s,e=>se(x(n).connectionId,e)),O(`mousedown`,s,I(function(e){be.call(this,t,e)})),E(e,r)}),o(n),O(`mousedown`,n,I(function(e){be.call(this,t,e)})),E(e,n)};Z(Be,e=>{x(T),x(j),F(()=>x(T)&&x(j).length>0)&&e(Ve)});var He=P(Be,2);let Ue;var We=M(He);let Q;var Ge=P(We,2);zc(M(Ge),{get name(){return x(m)},size:12,strokeWidth:2}),o(Ge);var Ke=P(Ge,2),qe=e=>{let t=pe(()=>x(u)===`server`?`S`:`B`),n=pe(()=>x(u)===`server`?`Runs on the server`:`Runs in the browser`);var r=d_(),i=q(r,!0);K(()=>{v(r,1,`locus-badge locus-${x(u)??``}`,`svelte-qglm8b`),X(r,`title`,x(n)),D(i,x(t))}),E(e,r)};Z(Ke,e=>{(x(u)===`server`||x(u)===`browser`)&&e(qe)});var Je=P(Ke,2);let Ye;o(He);var Xe=P(He,2);f(Xe,5,()=>x(C),h,(e,t)=>{let n=pe(()=>(A(hg),x(t),F(()=>hg(x(t)))));var r=f_(),i=q(r);K(()=>{v(r,1,`port port-${x(t),F(()=>x(t).portType)??``}`,`svelte-qglm8b`),X(r,`data-node-id`,(A(N()),F(()=>N().id))),X(r,`data-port-id`,(x(t),F(()=>x(t).id))),a(i,`background-color: ${x(n)??``};`)}),O(`click`,r,e=>me(x(t).id,`output`,e)),O(`mousedown`,r,e=>W(x(t).id,`output`,e)),O(`keydown`,r,e=>Se(x(t).id,`output`,e)),O(`mouseenter`,r,e=>de(e,x(t).name,x(t).dataType||`any`,x(n),`output`)),O(`mouseleave`,r,fe),E(e,r)}),o(Xe),o(Re);var Ze=P(Re,2),$=M(Ze),Qe=e=>{var n=p_();re(n),ge(n,e=>L(H,e),()=>x(H)),Ce(n,()=>x(U),e=>L(U,e)),O(`blur`,n,Ae),O(`keydown`,n,Me),O(`click`,n,I(function(e){be.call(this,t,e)})),O(`mousedown`,n,I(function(e){be.call(this,t,e)})),E(e,n)},$e=e=>{var t=m_(),n=q(t,!0);K(()=>D(n,(A(N()),F(()=>N().id)))),O(`dragstart`,t,Oe),O(`click`,t,ke),O(`keydown`,t,Ne),E(e,t)};Z($,e=>{x(le)?e(Qe):e($e,-1)}),o(Ze),o(Le);var et=P(Le,2),tt=e=>{var t=h_(),n=q(t,!0);K(()=>D(n,(A(N()),F(()=>N().comment)))),E(e,t)};Z(et,e=>{A(N()),F(()=>N().comment)&&e(tt)});var nt=P(et,2),rt=e=>{var t=g_(),n=q(t,!0);K(()=>D(n,(A(N()),F(()=>N().error?.message)))),E(e,t)};Z(nt,e=>{x(p)&&e(rt)}),o(Fe);var it=P(Fe,2),at=e=>{var t=__(),n=M(t),r=q(n,!0),i=P(n,2),s=q(i,!0);o(t),K(()=>{v(t,1,`port-tooltip port-tooltip-${x(ce),F(()=>x(ce).type)??``}`,`svelte-qglm8b`),a(t,`left: ${x(ce),F(()=>x(ce).x)??``}px; top: ${x(ce),F(()=>x(ce).y)??``}px; border-color: ${x(ce),F(()=>x(ce).color)??``};`),D(r,(x(ce),F(()=>x(ce).name))),a(i,`color: ${x(ce),F(()=>x(ce).color)??``};`),D(s,(x(ce),F(()=>x(ce).dataType)))}),E(e,t)};Z(it,e=>{x(ce)&&e(at)}),K(()=>{Ie=v(Fe,1,`node svelte-qglm8b`,null,Ie,{selected:ie(),error:x(p),dragging:x(B),bypassed:x(_),stale:x(d)===`stale`,queued:x(d)===`queued`,cooking:x(b)}),X(Fe,`aria-label`,`Node: ${A(N()),F(()=>N().id)??``}`),X(Fe,`data-cook-state`,x(d)),a(Fe,`left: ${x(w),F(()=>x(w).x)??``}px; top: ${x(w),F(()=>x(w).y)??``}px; opacity: ${A(N()),F(()=>N().bypass?.5:1)??``}`),X(Fe,`data-node-id`,(A(N()),F(()=>N().id))),Ue=v(He,1,`body svelte-qglm8b`,null,Ue,{tinted:!!x(g)}),a(He,x(g)?`--node-fill:${x(g)}`:``),Q=v(We,1,`node-button bypass-button svelte-qglm8b`,null,Q,{active:x(_)}),Ye=v(Je,1,`node-button cook-button svelte-qglm8b`,null,Ye,{active:x(y)})}),O(`click`,We,Te),O(`mousedown`,We,e=>e.stopPropagation()),O(`click`,Je,De),O(`mousedown`,Je,e=>e.stopPropagation()),O(`click`,Fe,e=>{e.stopPropagation(),oe(`nodeClick`,{event:e})}),O(`mousedown`,Fe,_e),O(`mouseup`,Fe,ve),O(`mouseleave`,Fe,ve),O(`dblclick`,Fe,ye),E(e,Pe),Ee(),l()}var b_={connections:!0},x_={connections:!0,elements:!0,nodes:!0},S_=class{constructor(e,t=o_){this.resolveGraph=e,this.invalidate=t}restoreConnections(){let e=this.resolveGraph();return e?(e.restoreConnections(),this.publish(e,{connections:!0,elements:!0}),!0):!1}connect(e,t){let n=this.requireGraph(),r=n.connect(e,t);return this.publish(n,b_),r}disconnect(e){let t=this.resolveGraph();return t?(t.disconnect(e),this.publish(t,b_),!0):!1}disconnectMany(e){let t=this.resolveGraph();if(!t)return!1;for(let n of e)t.disconnect(n);return this.publish(t,b_),!0}renameElement(e,t){let n=this.resolveGraph();return!n||!n.renameElement(e,t)?!1:(this.publish(n,x_),!0)}removeElement(e){let t=this.resolveGraph();return!t||!t.getElement(e)?!1:(t.removeElement(e),this.publish(t,x_),!0)}reparentElement(e,t){let n=this.resolveGraph(),r=n?.getElement(e),i=t?n?.getNode(t)??null:null;return!n||!r||t&&!i||!n.reparentElement(r,i)?!1:(this.publish(n,{elements:!0,nodes:!0}),!0)}refresh(e=x_){let t=this.resolveGraph();return t?(this.publish(t,e),!0):!1}requireGraph(){let e=this.resolveGraph();if(!e)throw Error(`No graph is loaded`);return e}publish(e,t){t.connections&&(e.connections=[...e.connections]),t.elements&&(e.elements=[...e.elements]),t.nodes&&(e.nodes=[...e.nodes]),this.invalidate()}};function C_(e){let t=0,n=e;for(;n=n.parentElement;)t+=1;return t}function w_(e=document){let t=Array.from(e.querySelectorAll(`[data-panel-scope]`));if(t.length===0)return null;let n=t.filter(e=>e.matches(`:hover`));if(n.length>0)return n.reduce((e,t)=>C_(t)>C_(e)?t:e);let r=e.activeElement;if(r instanceof HTMLElement){let e=r.closest(`[data-panel-scope]`);if(e)return e}return null}function T_(e=document){return w_(e)?.dataset.panelScope??null}function E_(e,t=document){let n=T_(t);return n===null||n===e}function D_(e){let t=e.dataTransfer?.types;return t?Array.from(t).includes(`Files`):!1}var O_=50,k_=w({past:[],future:[]}),A_=ke(k_,e=>e.past.length>0),j_=ke(k_,e=>e.future.length>0),M_=0,N_=null,P_=300;function F_(e,t,n,r={}){let{debounce:i=!1,immediate:a=!1}=r;N_&&=(clearTimeout(N_),null);let o=()=>{let r={json:e.toJSON(),selectedNodeId:t,selectedAnnotationId:n,timestamp:Date.now()};k_.update(e=>{let t=[...e.past,r];return t.length>O_&&t.shift(),{past:t,future:[]}}),M_=Date.now()};a?o():i&&Date.now()-M_<P_?N_=setTimeout(o,P_):o()}function I_(e,t,n){F_(e,t,n,{immediate:!0})}function L_(e,t,n){let r=N(k_);if(r.past.length===0)return null;let i={json:e.toJSON(),selectedNodeId:t,selectedAnnotationId:n,timestamp:Date.now()},a=r.past[r.past.length-1];return k_.update(e=>({past:e.past.slice(0,-1),future:[i,...e.future]})),a}function R_(e,t,n){let r=N(k_);if(r.future.length===0)return null;let i={json:e.toJSON(),selectedNodeId:t,selectedAnnotationId:n,timestamp:Date.now()},a=r.future[0];return k_.update(e=>({past:[...e.past,i],future:e.future.slice(1)})),a}function z_(){N_&&=(clearTimeout(N_),null),k_.set({past:[],future:[]}),M_=0}var B_=w([]);function V_(e){B_.update(t=>t.length===e.length&&t.every((t,n)=>t===e[n])?t:[...e])}function H_(e,t,n){if(!e)return n?[n]:[];let r=new Set(t);if(r.size>0){let t=e.nodes.filter(e=>r.has(e.id));if(t.length>0)return t}let i=e.nodes.filter(e=>e.selected||e.id===n?.id);return i.length>0?i:n?[n]:[]}var U_=``;async function W_(e){U_=e;let t=globalThis.navigator?.clipboard;if(t?.writeText)try{return await t.writeText(e),!0}catch{}if(typeof document>`u`||typeof document.execCommand!=`function`)return!1;let n=document.createElement(`textarea`);n.value=e,n.style.position=`fixed`,n.style.opacity=`0`,document.body.appendChild(n),n.select();try{return document.execCommand(`copy`)}catch{return!1}finally{n.remove()}}async function G_(){let e=globalThis.navigator?.clipboard;if(e?.readText)try{let t=await e.readText();if(t)return t}catch{}return U_}function K_(e,t,n,r=8){return{x:Math.max(r,Math.min(e.x,n.width-t.width-r)),y:Math.max(r,Math.min(e.y,n.height-t.height-r))}}var q_=u(`<div class="separator svelte-1e26x91" role="separator"></div>`),J_=u(`<!> <button type="button" role="menuitem" tabindex="-1"> </button>`,1),Y_=u(`<div class="node-context-menu svelte-1e26x91" role="menu" tabindex="-1" aria-label="Node actions"></div>`);function X_(t,n){ee(n,!1);let r=V(n,`x`,8),i=V(n,`y`,8),s=V(n,`items`,24,()=>[]),c=xe(),l=Y(),u=Y(`left: ${r()}px; top: ${i()}px; visibility: hidden`),d=()=>s().map((e,t)=>e.disabled?-1:t).filter(e=>e>=0);ye(async()=>{if(await e(),x(l)){let{width:e,height:t}=x(l).getBoundingClientRect(),n=K_({x:r(),y:i()},{width:e,height:t},{width:window.innerWidth,height:window.innerHeight});L(u,`left: ${n.x}px; top: ${n.y}px`)}h(d()[0]??-1)});function p(){c(`close`)}function m(e){e.disabled||(p(),e.run())}function h(e){e<0||!x(l)||x(l).querySelectorAll(`button.item`)[e]?.focus()}function g(){return x(l)?Array.from(x(l).querySelectorAll(`button.item`)).findIndex(e=>e===document.activeElement):-1}function _(e){let t=d();if(t.length===0)return;let n=t.indexOf(g());h(t[n===-1?e>0?0:t.length-1:(n+e+t.length)%t.length])}function y(e){switch(e.key){case`Escape`:e.preventDefault(),e.stopPropagation(),p();return;case`ArrowDown`:e.preventDefault(),_(1);return;case`ArrowUp`:e.preventDefault(),_(-1);return;case`Home`:e.preventDefault(),h(d()[0]??-1);return;case`End`:{e.preventDefault();let t=d();h(t[t.length-1]??-1);return}}}function b(e){x(l)&&e.target instanceof globalThis.Node&&x(l).contains(e.target)||p()}ue();var S=Y_();O(`keydown`,ce,y),O(`pointerdown`,ce,b),O(`wheel`,ce,p),O(`resize`,ce,p),O(`blur`,ce,p),f(S,5,s,e=>e.id,(e,t)=>{var n=J_(),r=G(n),i=e=>{var t=q_();E(e,t)};Z(r,e=>{x(t),F(()=>x(t).separatorBefore)&&e(i)});var a=P(r,2);let o;var s=q(a,!0);K(()=>{o=v(a,1,`item svelte-1e26x91`,null,o,{danger:x(t).danger}),a.disabled=(x(t),F(()=>x(t).disabled)),X(a,`data-item-id`,(x(t),F(()=>x(t).id))),D(s,(x(t),F(()=>x(t).label)))}),O(`click`,a,I(()=>m(x(t)))),E(e,n)}),o(S),ge(S,e=>L(l,e),()=>x(l)),K(()=>a(S,x(u))),O(`contextmenu`,S,Se(I(function(e){be.call(this,n,e)}))),E(t,S),Ee()}function Z_(e,t){return e===1?`1 ${t}`:`${e} ${t}s`}var Q_=u(`<input type="text" class="path-input svelte-p2f6pl" placeholder="Enter path (e.g., /subnet1/node1)"/>`),$_=u(`<span class="path-separator svelte-p2f6pl">›</span>`),ev=u(`<!> <button> </button>`,1),tv=u(`<!> <button class="path-edit-btn svelte-p2f6pl" title="Press / to navigate by path">/</button>`,1),nv=u(`<div class="selection-rectangle svelte-p2f6pl"></div>`),rv=m(`<path fill="none" stroke="transparent" stroke-width="12" class="connection-hit-area"></path><path fill="none" stroke-width="2"></path>`,1),iv=m(`<g><circle class="endpoint-marker svelte-p2f6pl" cx="0" cy="0" r="12" stroke-width="1" opacity="0.9"></circle><path class="endpoint-icon svelte-p2f6pl" d="M -6,-4 L -6,4 M 6,-4 L 6,4 M -4,-6 L 4,6 M -4,6 L 4,-6" stroke-width="1.5" stroke-linecap="round" fill="none"></path></g>`),av=m(`<path fill="none" stroke-width="2" class="connection-preview svelte-p2f6pl"></path>`),ov=u(`<div class="annotation-debug"> </div>`),sv=u(`<div data-panel-scope="graph" role="application" aria-label="Graph canvas" tabindex="0"><div class="network-path-bar svelte-p2f6pl"><!></div> <!> <svg class="grid svelte-p2f6pl"><defs><pattern id="dots" width="20" height="20" patternUnits="userSpaceOnUse"><circle class="grid-dot svelte-p2f6pl" cx="10" cy="10" r="0.5"></circle></pattern></defs><rect class="grid-ground svelte-p2f6pl" width="100%" height="100%"></rect><rect width="100%" height="100%" fill="url(#dots)"></rect></svg> <svg class="connections-layer svelte-p2f6pl"><!><!><!></svg> <div class="annotations-container svelte-p2f6pl"></div> <div class="nodes-container svelte-p2f6pl"></div></div> <!>`,1);function cv(t,n){ee(n,!1);let r=()=>we(a_,`$graphStructure`,i),[i,s]=ne(),c=Y(),l=Y(),u=Y(),d=Y(),p=Y(),m=Y(),_=Y(),y=Y(),b=xe(),S=V(n,`activeTool`,12,`select`),C=V(n,`selectedNode`,12,null),w=V(n,`graph`,28,()=>new Nf),T=V(n,`selectedAnnotation`,12,null),k=V(n,`transform`,8,void 0);V(n,`onRecordHistory`,8,void 0);let j=new S_(()=>w()),N=Y(),ie=Y(),ae=Y(0);me(()=>x(ie)?.());function I(){I_(w(),C()?.id||null,T())}let R=Y(),z=Y(k()?{...k()}:{x:0,y:0,zoom:1}),B=Y(k()?{...k()}:null),ce=Y({...x(z)}),le=!1,H=Y([]),U=Y([]);function de(e,t){if(t){let n=new Set(e);for(let e of t.nodes)e.selected=n.has(e.id)}V_(e)}let fe=Y(null);function W(e){let t=[{id:`root`,label:`/`,node:null}];if(!e)return t;let n=[],r=e;for(;r;)n.unshift(r),r=r.parent;for(let e of n)t.push({id:e.id,label:e.id,node:e});return t}function _e(e){e.isNetwork()&&(L(fe,e),L(H,[]),C(null),b(`nodeSelect`,{node:null}))}function ve(){if(x(fe)){let e=x(fe);L(fe,x(fe).parent),L(H,[e.id]),C(e),b(`nodeSelect`,{node:e})}}function be(e){L(fe,e),L(H,[]),C(null),b(`nodeSelect`,{node:null})}let Se=Y(!1),Te=Y(``),De=Y(null);function Oe(){L(Te,x(fe)?x(fe).path():`/`),L(Se,!0),setTimeout(()=>{x(De)?.focus(),x(De)?.select()},10)}function ke(){L(Se,!1),L(Te,``)}function Ae(e){if(!e||e===`/`)L(fe,null);else{let t=null,n=e.replace(/^\//,``).split(`/`).filter(e=>e),r=null;for(let e of n){let t=(r?r.children():w().nodes.filter(e=>!e.parent)).find(t=>t.id===e);if(t)r=t;else{console.warn(`Path segment not found: ${e}`);return}}if(t=r,t&&t.isNetwork())L(fe,t);else if(t){L(fe,t.parent),L(H,[t.id]),C(t),b(`nodeSelect`,{node:t}),ke();return}}L(H,[]),C(null),b(`nodeSelect`,{node:null}),ke()}function je(e){e.key===`Enter`?(e.preventDefault(),Ae(x(Te))):e.key===`Escape`&&(e.preventDefault(),ke())}function Me(e,t){return t?e.filter(e=>e.parent===t):e.filter(e=>!e.parent)}let Ne=null,Fe=Y(!1);function Ie(){return x(Fe)||(Ne=Kt(),L(Fe,!0)),Ne}function Re(e,t){w().reparentElement(t,e)}function ze(){if(x(H).length===0)return;I();let e=x(H).map(e=>w().getNode(e)).filter(Boolean);if(e.length===0)return;let t=new Set(e.map(e=>e.id)),n={minX:Math.min(...e.map(e=>e.position.x)),minY:Math.min(...e.map(e=>e.position.y)),maxX:Math.max(...e.map(e=>e.position.x)),maxY:Math.max(...e.map(e=>e.position.y))},r=[],i=[];w().connections.forEach(e=>{let n=t.has(e.from.nodeId),a=t.has(e.to.nodeId);if(!n&&a){let t=w().getNode(e.to.nodeId),n=t?.inputs.find(t=>t.id===e.to.portId);t&&n&&r.push({conn:e,targetNode:t,targetPort:n})}else if(n&&!a){let t=w().getNode(e.from.nodeId),n=t?.outputs.find(t=>t.id===e.from.portId),r=w().getNode(e.to.nodeId),a=r?.inputs.find(t=>t.id===e.to.portId);t&&n&&r&&a&&i.push({conn:e,sourceNode:t,sourcePort:n,targetNode:r,targetPort:a})}});let a=w().addNode(`Subnet`,{x:(n.minX+n.maxX)/2,y:(n.minY+n.maxY)/2});x(fe)&&Re(x(fe),a),e.forEach(e=>{e.position={x:e.position.x-a.position.x,y:e.position.y-a.position.y},Re(a,e)});let o=new Map;if(r.forEach((e,t)=>{let r=w().addNode(`Input`,{x:n.minX-a.position.x-150,y:n.minY-a.position.y+t*80});Re(a,r),r.props.inputIndex&&r.updateProp(`inputIndex`,t),w().disconnect(e.conn.id);let i=r.outputs[0];i&&e.targetPort&&w().connect(i,e.targetPort),o.set(e.conn.from.portId,r)}),r.length>0){let e=r[0],t=w().getNode(e.conn.from.nodeId)?.outputs.find(t=>t.id===e.conn.from.portId);t&&a.inputs[0]&&w().connect(t,a.inputs[0])}let s=null;if(i.length>0)s=i[0].sourceNode,s.setCook(!0);else if(e.length>0){let t=e[e.length-1];t.setCook(!0),s=t}i.forEach(e=>{w().disconnect(e.conn.id);let t=a.outputs[0];t&&e.targetPort&&w().connect(t,e.targetPort)}),j.refresh({nodes:!0,connections:!0}),L(H,[a.id]),C(a),b(`nodeSelect`,{node:a})}function Be(){if(x(H).length!==1)return;let e=w().getNode(x(H)[0]);if(!e||!e.isNetwork()||e.children().length===0)return;I();let t=[...e.children()],n=e.parent,r=t.filter(e=>e.type===`Input`),i=t.filter(e=>e.type===`Output`),a=t.filter(e=>e.type!==`Input`&&e.type!==`Output`);if(a.length===0)return;let o=[];w().connections.forEach(t=>{if(t.to.nodeId===e.id){let n=e.inputs.findIndex(e=>e.id===t.to.portId);n!==-1&&o.push({conn:t,inputIndex:n})}});let s=[];w().connections.forEach(t=>{if(t.from.nodeId===e.id){let n=e.outputs.findIndex(e=>e.id===t.from.portId);n!==-1&&s.push({conn:t,outputIndex:n})}});let c=new Map;r.forEach(e=>{let t=e.evalParm(`inputIndex`)??0,n=[];w().connections.forEach(t=>{if(t.from.nodeId===e.id){let e=w().getNode(t.to.nodeId),r=e?.inputs.find(e=>e.id===t.to.portId);e&&r&&n.push({node:e,port:r})}}),c.has(t)||c.set(t,[]),c.get(t).push(...n)});let l=null,u=e.children().find(e=>e.cook),d=i[0];d?w().connections.forEach(e=>{if(e.to.nodeId===d.id){let t=w().getNode(e.from.nodeId),n=t?.outputs.find(t=>t.id===e.from.portId);t&&n&&(l=n)}}):u&&(l=u.outputs[0]),a.forEach(t=>{t.position={x:t.position.x+e.position.x,y:t.position.y+e.position.y},w().reparentElement(t,n)}),[...r,...i].forEach(e=>{w().connections.filter(t=>t.from.nodeId===e.id||t.to.nodeId===e.id).forEach(e=>w().disconnect(e.id)),w().removeNode(e.id)}),o.forEach(({conn:e,inputIndex:t})=>{let n=c.get(t)||[],r=w().getNode(e.from.nodeId)?.outputs.find(t=>t.id===e.from.portId);w().disconnect(e.id),r&&n.forEach(({port:e})=>{w().connect(r,e)})}),s.forEach(({conn:e})=>{let t=w().getNode(e.to.nodeId)?.inputs.find(t=>t.id===e.to.portId);w().disconnect(e.id),l&&t&&w().connect(l,t)}),w().connections.filter(t=>t.from.nodeId===e.id||t.to.nodeId===e.id).forEach(e=>w().disconnect(e.id)),w().removeNode(e.id),j.refresh({nodes:!0,connections:!0}),L(H,a.map(e=>e.id)),C(a[0]??null),b(`nodeSelect`,{node:C()})}let Ve=!1,He=Y(!1),Ue=Y(null),We=Y(null),Q=Y(null),Ge=!1,Ke=Y(null),qe=Y(null),Je=Y({x:0,y:0}),Ye=null,Xe=Y(null),Ze=Y(!1),$=null,Qe=null,$e=null,et=null;function tt(e,t){return t.filter(e=>e&&e.position).map(e=>({id:e.id,x:e.position.x,y:e.position.y}))}let nt=Y([]);function rt(e,t,n){return e.id===n?!0:t.length===0?!1:t.includes(e.from.nodeId)||t.includes(e.to.nodeId)}function it(e){let t=w().getNode(e.to.nodeId);return t?.cookState===`queued`||t?.cookState===`cooking`}function at(e){if(x(R)){if(e.button===0&&(e.ctrlKey||e.metaKey)&&!e.target.closest(`.node, .annotation`)){let t=x(R).getBoundingClientRect(),n=st((e.clientX-t.left-x(z).x)/x(z).zoom,(e.clientY-t.top-x(z).y)/x(z).zoom);if(n){e.preventDefault(),e.stopPropagation(),I(),j.disconnect(n.id),L(Xe,null);return}}if(e.button===1)le=!0,e.preventDefault();else if(e.button===0&&(Ve||S()===`hand`))le=!0;else if(e.button===0&&S()===`select`&&!$){if(!e.target.closest(`.node, .annotation`)){let t=x(R).getBoundingClientRect();L(Ue,{x:(e.clientX-t.left-x(z).x)/x(z).zoom,y:(e.clientY-t.top-x(z).y)/x(z).zoom}),L(We,{x:e.clientX-t.left,y:e.clientY-t.top}),L(Je,{...x(Ue)}),L(Q,{...x(We)}),L(He,!0),Ge=!1,e.shiftKey||(L(H,[]),L(U,[]),C(null),T(null),b(`nodeSelect`,{node:null}),b(`annotationSelect`,{annotationId:null}))}}else if(e.button===0&&S()===`line`){if(e.target.closest(`.annotation, .node`))return;let t=x(R).getBoundingClientRect(),n=(e.clientX-t.left-x(z).x)/x(z).zoom,r=(e.clientY-t.top-x(z).y)/x(z).zoom,i=`line_${Date.now().toString(36)}`,a={id:i,type:`Line`,position:{x:n,y:r},endPosition:{x:n,y:r},style:{strokeWidth:2,strokeColor:`#ffffff`}};if(I(),w().addAnnotation(a),x(fe)){let e=w().getAnnotation(i);e&&Re(x(fe),e)}w(w().annotations=[...w().annotations],!0),yt={annotationId:i,startPos:{x:n,y:r}},e.stopPropagation()}else if(e.button===0&&S()===`polyline`){if(e.target.closest(`.annotation, .node`))return;let t=x(R).getBoundingClientRect(),n=(e.clientX-t.left-x(z).x)/x(z).zoom,r=(e.clientY-t.top-x(z).y)/x(z).zoom,i=`polyline_${Date.now().toString(36)}`,a={id:i,type:`Polyline`,position:{x:n,y:r},points:[{x:n,y:r}],style:{strokeWidth:2,strokeColor:`#ffffff`}};if(I(),w().addAnnotation(a),x(fe)){let e=w().getAnnotation(i);e&&Re(x(fe),e)}w(w().annotations=[...w().annotations],!0),bt={annotationId:i,points:[{x:n,y:r}]},e.stopPropagation()}}}function ot(e){if(le&&(oe(z,x(z).x+=e.movementX),oe(z,x(z).y+=e.movementY),L(z,{...x(z)})),x(He)&&x(Ue)){let t=x(R).getBoundingClientRect(),n=(e.clientX-t.left-x(z).x)/x(z).zoom,r=(e.clientY-t.top-x(z).y)/x(z).zoom;L(Je,{x:n,y:r}),L(Q,{x:e.clientX-t.left,y:e.clientY-t.top})}if($){let t=w().getNode($.nodeId);if(t){let n=x(R).getBoundingClientRect(),r=(e.clientX-n.left-x(z).x)/x(z).zoom-$.offset.x,i=(e.clientY-n.top-x(z).y)/x(z).zoom-$.offset.y;if((x(H).length>1||x(U).length>0)&&Qe&&$){let e=Qe.nodes.find(e=>e.nodeId===$.nodeId);if(!e){t.position={x:r,y:i},w(w().nodes=[...w().nodes],!0);return}let n=r-e.startPos.x,a=i-e.startPos.y;Qe.nodes.forEach(({nodeId:e,startPos:t})=>{let r=w().getNode(e);r&&(r.position={x:t.x+n,y:t.y+a})}),w(w().annotations=w().annotations.map(e=>{let t=Qe?.annotations.find(t=>t.annotationId===e.id);if(!t)return e;let r=t.startPos.x+n,i=t.startPos.y+a;return{...e,position:{x:r,y:i},style:e.style?{...e.style}:void 0,outputs:e.outputs?e.outputs.map(e=>({...e})):void 0}}),!0)}else t.position={x:r,y:i};w(w().nodes=[...w().nodes],!0),w(w().annotations=[...w().annotations],!0)}}if(x(_t)&&!vt){let t=w().getAnnotation(x(_t).annotationId);if(t){let n=x(R).getBoundingClientRect(),r=(e.clientX-n.left-x(z).x)/x(z).zoom-x(_t).offset.x,i=(e.clientY-n.top-x(z).y)/x(z).zoom-x(_t).offset.y;if((x(U).length>1||x(H).length>0)&&Qe&&x(_t)){let e=Qe.annotations.find(e=>e.annotationId===x(_t).annotationId);if(!e){w(w().annotations=w().annotations.map(e=>{if(e.id!==t.id)return e;let n=e.position.x,a=e.position.y,o=r-n,s=i-a;return e.type===`Line`?{...e,position:{x:r,y:i},endPosition:e.endPosition?{x:e.endPosition.x+o,y:e.endPosition.y+s}:void 0}:e.type===`Polyline`?{...e,position:{x:r,y:i},points:e.points?e.points.map(e=>({x:e.x+o,y:e.y+s})):void 0}:{...e,position:{x:r,y:i}}}),!0);return}let n=r-e.startPos.x,a=i-e.startPos.y;Qe.nodes.forEach(({nodeId:e,startPos:t})=>{let r=w().getNode(e);r&&(r.position={x:t.x+n,y:t.y+a})}),w(w().annotations=w().annotations.map(e=>{let t=Qe?.annotations.find(t=>t.annotationId===e.id);if(!t)return e;let r=t.startPos.x+n,i=t.startPos.y+a,o=e.position.x,s=e.position.y,c=r-o,l=i-s;return e.type===`Line`?{...e,position:{x:r,y:i},endPosition:e.endPosition?{x:e.endPosition.x+c,y:e.endPosition.y+l}:void 0}:e.type===`Polyline`?{...e,position:{x:r,y:i},points:e.points?e.points.map(e=>({x:e.x+c,y:e.y+l})):void 0}:{...e,position:{x:r,y:i}}}),!0),w(w().nodes=[...w().nodes],!0);return}w(w().annotations=w().annotations.map(e=>{if(e.id!==t.id)return e;let n=e.position.x,a=e.position.y,o=r-n,s=i-a;return e.type===`Line`?{...e,position:{x:r,y:i},endPosition:e.endPosition?{x:e.endPosition.x+o,y:e.endPosition.y+s}:void 0,style:e.style?{...e.style}:void 0,outputs:e.outputs?e.outputs.map(e=>({...e})):void 0}:e.type===`Polyline`?{...e,position:{x:r,y:i},points:e.points?e.points.map(e=>({x:e.x+o,y:e.y+s})):void 0,style:e.style?{...e.style}:void 0,outputs:e.outputs?e.outputs.map(e=>({...e})):void 0}:{...e,position:{x:r,y:i},style:e.style?{...e.style}:void 0,outputs:e.outputs?e.outputs.map(e=>({...e})):void 0}}),!0),w(w().nodes=[...w().nodes],!0)}}if(vt){let t=vt;if(w().getAnnotation(t.annotationId)){let n=x(R).getBoundingClientRect(),r=(e.clientX-n.left-x(z).x)/x(z).zoom,i=(e.clientY-n.top-x(z).y)/x(z).zoom,a=r-t.startPos.x,o=i-t.startPos.y,s=t.startSize.width,c=t.startSize.height,l=t.startPosition.x,u=t.startPosition.y,d=t.handle;d.includes(`e`)?s=Math.max(100,t.startSize.width+a):d.includes(`w`)&&(s=Math.max(100,t.startSize.width-a),l=t.startPosition.x+(t.startSize.width-s)),d.includes(`s`)?c=Math.max(40,t.startSize.height+o):d.includes(`n`)&&(c=Math.max(40,t.startSize.height-o),u=t.startPosition.y+(t.startSize.height-c)),w(w().annotations=w().annotations.map(e=>e.id===t.annotationId?{...e,position:{x:l,y:u},size:{width:s,height:c},style:e.style?{...e.style}:void 0,outputs:e.outputs?e.outputs.map(e=>({...e})):e.outputs,points:e.points?e.points.map(e=>({...e})):void 0,endPosition:e.endPosition?{...e.endPosition}:void 0}:e),!0)}}if(yt){let t=yt;if(w().getAnnotation(t.annotationId)){let n=x(R).getBoundingClientRect(),r=(e.clientX-n.left-x(z).x)/x(z).zoom,i=(e.clientY-n.top-x(z).y)/x(z).zoom;w(w().annotations=w().annotations.map(e=>e.id===t.annotationId?{...e,endPosition:{x:r,y:i}}:e),!0)}}if(bt){let t=bt;if(w().getAnnotation(t.annotationId)){let n=x(R).getBoundingClientRect(),r=(e.clientX-n.left-x(z).x)/x(z).zoom,i=(e.clientY-n.top-x(z).y)/x(z).zoom,a=t.points[t.points.length-1];Math.sqrt((r-a.x)**2+(i-a.y)**2)>3&&(t.points.push({x:r,y:i}),w(w().annotations=w().annotations.map(e=>e.id===t.annotationId?{...e,points:[...t.points]}:e),!0))}}if(x(Ke)){let t=x(R).getBoundingClientRect();L(Je,{x:(e.clientX-t.left-x(z).x)/x(z).zoom,y:(e.clientY-t.top-x(z).y)/x(z).zoom})}if(!x(Ke)&&!$&&!x(_t)&&!x(He)){let t=x(R).getBoundingClientRect(),n=(e.clientX-t.left-x(z).x)/x(z).zoom,r=(e.clientY-t.top-x(z).y)/x(z).zoom,i=e.ctrlKey||e.metaKey,a=st(n,r);a&&i?L(Xe,{connectionId:a.id,position:{x:n,y:r}}):L(Xe,null)}else L(Xe,null)}function st(e,t){let n=8/x(z).zoom;for(let r of x(nt)){let i=on(r.from.nodeId,r.from.portId,`output`),a=on(r.to.nodeId,r.to.portId,`input`);if(!i||!a)continue;let o=Math.abs(a.y-i.y)*.5;for(let s=0;s<=1;s+=.05){let c=i.x,l=i.y,u=i.x,d=i.y+o,f=a.x,p=a.y-o,m=a.x,h=a.y,g=1-s,_=g*g*g*c+3*g*g*s*u+3*g*s*s*f+s*s*s*m,v=g*g*g*l+3*g*g*s*d+3*g*s*s*p+s*s*s*h;if(Math.sqrt((e-_)**2+(t-v)**2)<n)return r}}return null}function ct(e){if(e.button===1?(le=!1,e.preventDefault()):le=!1,x(Ke)&&e.button===0){let t=e.target.closest(`.port`);if(t){let e=t.getAttribute(`data-node-id`),n=t.getAttribute(`data-port-id`),r=t.getAttribute(`data-port-type`),i=t.getAttribute(`data-variadic-base`);if(e&&n&&r){let t=x(Ke);if(t.portType===`output`&&r===`input`&&t.nodeId!==e){let r=w().getElement(t.nodeId),a=w().getElement(e);if(r&&a){let e=r.outputs.find(e=>e.id===t.portId),o;if(i?(o=a.inputs.filter(e=>e.variadic&&e.name.startsWith(`${i}_`)&&!e.options?.hidden).find(e=>e.connections.length===0),!o&&a.syncVariadicPorts&&(a.syncVariadicPorts(),o=a.inputs.filter(e=>e.variadic&&e.name.startsWith(`${i}_`)&&!e.options?.hidden).find(e=>e.connections.length===0)),o||=a.inputs.find(e=>e.id===n)):o=a.inputs.find(e=>e.id===n),e&&o)try{I();let n=o.variadic===!0,i=[];if(n){let e=a.id;x(H).forEach(n=>{if(n!==t.nodeId&&n!==e){let e=w().getNode(n);e&&e.outputs.length>0&&i.push({element:e,output:e.outputs[0]})}}),x(U).forEach(n=>{if(n!==t.nodeId&&n!==e){let e=w().getAnnotation(n);e&&e.outputs&&e.outputs.length>0&&i.push({element:e,output:e.outputs[0]})}})}if(a.isNetwork&&a.isNetwork()){let t=w().addNode(`Input`,{x:-200,y:(a.children().length-a.children().filter(e=>e.type===`Input`).length)*80});t.id=w().generateUniqueNodeId(`input`),Re(a,t);let n=a.children().filter(e=>e.type===`Input`).length-1;t.props.inputIndex&&t.updateProp(`inputIndex`,n),w().connect(e,o),w(w().nodes=[...w().nodes],!0)}else r.isNetwork&&r.isNetwork(),w().connect(e,o);if(n&&i.length>0){let e=o.name.match(/^(.+)_(\d+)$/);if(e&&a.syncVariadicPorts){let t=e[1],n=parseInt(e[2],10)+1;for(let{output:e}of i){a.syncVariadicPorts();let r=`${t}_${n}`,i=a.inputs.find(e=>e.name===r&&!e.options?.hidden);if(i||=(a.syncVariadicPorts(),a.inputs.find(e=>e.name===r&&!e.options?.hidden)),i)try{w().connect(e,i),n++}catch(e){console.warn(`Failed to connect additional element:`,e)}}}}j.refresh({connections:!0})}catch(e){console.error(`Failed to connect:`,e)}}}}L(Ke,null),L(qe,null),Ye=null}else Ye&&=(I(),j.disconnectMany(Ye.connectionIds),null),L(Ke,null),L(qe,null)}if($=null,L(_t,null),Qe=null,vt=null,yt&&(yt=null,S(`select`),b(`toolChange`,`select`)),bt&&(bt=null,S(`select`),b(`toolChange`,`select`)),x(He)&&x(Ue)){let t=x(R).getBoundingClientRect(),n=(e.clientX-t.left-x(z).x)/x(z).zoom,r=(e.clientY-t.top-x(z).y)/x(z).zoom,i=Math.min(x(Ue).x,n),a=Math.max(x(Ue).x,n),o=Math.min(x(Ue).y,r),s=Math.max(x(Ue).y,r),c=[];w().nodes.forEach(e=>{let t=e.position.x,n=e.position.x+120,r=e.position.y,l=e.position.y+80;n>=i&&t<=a&&l>=o&&r<=s&&c.push(e.id)});let l=[];w().annotations.forEach(e=>{let t,n,r,c;if(e.type===`Line`){let i=e.position.x,a=e.position.y,o=e.endPosition?.x??e.position.x,s=e.endPosition?.y??e.position.y;t=Math.min(i,o),n=Math.max(i,o),r=Math.min(a,s),c=Math.max(a,s);let l=(e.style?.strokeWidth||2)+5;t-=l,n+=l,r-=l,c+=l}else if(e.type===`Polyline`){if(e.points&&e.points.length>0){let i=e.points.map(e=>e.x),a=e.points.map(e=>e.y);t=Math.min(...i),n=Math.max(...i),r=Math.min(...a),c=Math.max(...a);let o=(e.style?.strokeWidth||2)+5;t-=o,n+=o,r-=o,c+=o}else return}else{let i=e.size?.width||(e.type===`Text`?540:e.type===`Image`?200:300),a=e.size?.height||(e.type===`Text`?60:e.type===`Image`?150:200);t=e.position.x,n=e.position.x+i,r=e.position.y,c=e.position.y+a}n>=i&&t<=a&&c>=o&&r<=s&&l.push(e.id)}),e.shiftKey?(L(H,[...x(H),...c.filter(e=>!x(H).includes(e))]),l.forEach(e=>{x(U).includes(e)||x(U).push(e)}),l.length>0&&(T(l[0]),b(`annotationSelect`,{annotationId:T()}))):(L(H,c),L(U,l),l.length>0?(T(l[0]),b(`annotationSelect`,{annotationId:T()})):(T(null),b(`annotationSelect`,{annotationId:null}))),x(H).length>0?(C(w().getNode(x(H)[0])),C()&&b(`nodeSelect`,{node:C()})):(C(null),b(`nodeSelect`,{node:null})),L(He,!1),Ge=!0,L(Ue,null),L(We,null),L(Q,null),setTimeout(()=>{Ge=!1},100)}}function lt(e,t,n){n.stopPropagation();let r=w().getAnnotation(e);if(r){let i=x(R).getBoundingClientRect(),a=(n.clientX-i.left-x(z).x)/x(z).zoom,o=(n.clientY-i.top-x(z).y)/x(z).zoom,s=r.size||{width:200,height:150},c=r.position;vt={annotationId:e,handle:t,startPos:{x:a,y:o},startSize:{width:s.width,height:s.height},startPosition:{x:c.x,y:c.y}}}}async function ut(e,t){if(t.target.closest(`.port`)||t.button===1||t.button===2)return;let n=w().getNode(e);if(!n)return;I();let r=x(R).getBoundingClientRect(),i=(t.clientX-r.left-x(z).x)/x(z).zoom,a=(t.clientY-r.top-x(z).y)/x(z).zoom;if(t.altKey){let n=[...x(H)],r=[...x(U)];n.includes(e)||(n=[e],r=[]);let o=new Map,s=[],c=[];for(let e of n){let t=w().getNode(e);if(!t)continue;let n=t.modulePath||t.type,r=w().addNode(n,{...t.position}),i=r.id,a=w().generateUniqueNodeId(t.id,i);if(o.set(e,a),j.renameElement(i,a),r.code=t.code||``,r.comment=t.comment||``,r.bypass=t.bypass||!1,x(fe)&&w().reparentElement(r,x(fe)),s.push(a),r.code)try{await w().execute(r)}catch(e){console.warn(`Failed to execute duplicated node:`,e)}}for(let e=0;e<n.length;e++){let t=n[e],r=s[e],i=w().getNode(t),a=w().getNode(r);i&&a&&Object.keys(i.props).length>0&&Object.entries(i.props).forEach(([e,t])=>{if(a.props[e]&&(a.props[e].value=t.value,t.expression)){let n=t.expression;o.forEach((e,t)=>{[RegExp(`(ch[sv]?\\s*\\(\\s*['"][^'"]*/)${t}(/[^'"]*['"]\\s*\\))`,`g`),RegExp(`(ch[sv]?\\s*\\(\\s*['"]\\.\\./)${t}(['"]\\s*\\))`,`g`)].forEach(t=>{n=n.replace(t,`$1${e}$2`)})}),a.props[e].expression=n}})}for(let e of n){let t=w().getNode(e);if(t)for(let n of t.outputs)for(let r of n.connections){let i=r.to.nodeId,a=r.to.portId,s=o.get(e),c=o.get(i);if(s&&c){let e=w().getNode(s),r=w().getNode(c),o=w().getNode(i);if(e&&r&&o){let i=t.outputs.indexOf(n),s=o.getInputPortById(a),c=s?o.inputs.indexOf(s):-1;if(i>=0&&c>=0){let t=e.outputs[i],n=r.inputs[c];if(t&&n)try{w().connect(t,n)}catch{}}}}}}for(let e of r){let t=w().getAnnotation(e);if(!t)continue;let n=`${t.type}_${Date.now().toString(36)}_${Math.random().toString(36).substr(2,5)}`,r={...t,id:n,position:{...t.position}};x(fe)&&w().reparentElement(r,x(fe)),w().addAnnotation(r),c.push(n)}w(w().nodes=[...w().nodes],!0),w(w().annotations=[...w().annotations],!0),L(H,s),L(U,c);let l=o.get(e);if(l){let e=w().getNode(l);if(e){C(e),b(`nodeSelect`,{node:e});let t={x:i-e.position.x,y:a-e.position.y};$={nodeId:l,offset:t},(s.length>1||c.length>0)&&(Qe={nodes:s.map(e=>{let t=w().getNode(e);return{nodeId:e,startPos:t?{...t.position}:{x:0,y:0}}}),annotations:c.map(e=>{let t=w().getAnnotation(e);return{annotationId:e,startPos:t?{...t.position}:{x:0,y:0}}}),offset:t})}}t.stopPropagation();return}let o={x:i-n.position.x,y:a-n.position.y};$={nodeId:e,offset:o},(x(H).length>1||x(U).length>0)&&(Qe={nodes:x(H).map(e=>{let t=w().getNode(e);return{nodeId:e,startPos:t?{...t.position}:{x:0,y:0}}}),annotations:x(U).map(e=>{let t=w().getAnnotation(e);return{annotationId:e,startPos:t?{...t.position}:{x:0,y:0}}}),offset:o}),t.stopPropagation()}function dt(e){b(`nodeEdit`,{node:e.detail.node})}function ft(e,t){let n=t.event;if(S()===`select`){n.stopPropagation();let t=w().getNode(e);t&&(n.shiftKey?x(H).includes(e)?L(H,x(H).filter(t=>t!==e)):L(H,[...x(H),e]):L(H,[e]),C(t),b(`nodeSelect`,{node:t}))}}function pt(e,t){let n=w().getNode(e);n&&(n.setBypass(!n.bypass),w(w().nodes=[...w().nodes],!0))}function mt(e,t){let n=w().getNode(e);if(n){if(t.shiftKey){n.setCook(!0);let e=t=>{t.outputs.forEach(t=>{t.connections.forEach(t=>{let n=w().getNode(t.to.nodeId);n&&(n.setCook(!0),e(n))})})};e(n)}else n.cook?n.setCook(!1):(w().clearCookingNodes(),n.setCook(!0));w(w().nodes=[...w().nodes],!0)}}function ht(e){I(),j.disconnect(e)}let gt=Y(null),_t=Y(null),vt=null,yt=null,bt=null;function xt(e){e.key!==`Enter`&&e.key}function St(e){}function Ct(e){if((e.ctrlKey||e.metaKey)&&e.target&&!e.target.closest(`.node, .annotation`)){let t=x(R).getBoundingClientRect(),n=st((e.clientX-t.left-x(z).x)/x(z).zoom,(e.clientY-t.top-x(z).y)/x(z).zoom);if(n){e.preventDefault(),e.stopPropagation(),I(),j.disconnect(n.id),L(Xe,null);return}}if(!(e.target&&e.target.closest(`.annotation`))){if(S()===`select`&&e.target&&!e.target.closest(`.node`)&&!Ge)L(H,[]),L(U,[]),C(null),T(null),L(gt,null),b(`nodeSelect`,{node:null});else if([`text`,`image`,`group`].includes(S())){let t=x(R).getBoundingClientRect(),n=(e.clientX-t.left-x(z).x)/x(z).zoom,r=(e.clientY-t.top-x(z).y)/x(z).zoom;wt(S(),n,r),S(`select`),b(`toolChange`,`select`)}}}function wt(e,t,n){let r=`${e}_${Date.now().toString(36)}`;I();let i=e=>{if(x(fe)){let t=w().getAnnotation(e);t&&Re(x(fe),t)}};if(e===`image`){let e=document.createElement(`input`);e.type=`file`,e.accept=`image/*`,e.onchange=async e=>{let a=e.target.files?.[0];if(a){let e=new FileReader;e.onload=e=>{let a=e.target?.result,o={id:r,type:`Image`,src:a,position:{x:t,y:n},size:{width:200,height:150}};w().addAnnotation(o),i(r),w(w().annotations=[...w().annotations],!0)},e.readAsDataURL(a)}},e.click()}else if(e===`group`){let e={id:r,type:`Group`,content:`Group`,position:{x:t,y:n},containedElements:[]};w().addAnnotation(e),i(r),w(w().annotations=[...w().annotations],!0),L(gt,r),setTimeout(()=>{if(!x(R))return;let e=x(R).querySelector(`[data-annotation-id="${r}"]`);if(e){let t=e.querySelector(`input, textarea`);t&&(t.focus(),t.select())}},10)}else if(e===`text`){let e={id:r,type:`Text`,content:``,position:{x:t,y:n},size:{width:540,height:60},style:{fontSize:14,fontWeight:`normal`,fontStyle:`normal`,textAlign:`left`,color:`#ffffff`,padding:0,borderRadius:0}};w().addAnnotation(e),i(r),w(w().annotations=[...w().annotations],!0),L(gt,r),setTimeout(()=>{if(!x(R))return;let e=x(R).querySelector(`[data-annotation-id="${r}"]`);if(e){let t=e.querySelector(`input, textarea`);t&&t.focus()}},10)}}function Tt(e,t){t.stopPropagation(),S()===`select`&&!x(gt)&&(t.shiftKey?x(U).includes(e)?L(U,x(U).filter(t=>t!==e)):L(U,[...x(U),e]):(L(U,[e]),L(H,[]),C(null)),T(e),b(`annotationSelect`,{annotationId:e}))}function Et(e,t){if(t.stopPropagation(),S()===`select`&&!x(gt)&&t.button===0){if(t.target.closest(`input, textarea, button, .resize-handle`))return;I();let n=w().getAnnotation(e);if(n){x(U).includes(e)||(t.shiftKey?L(U,[...x(U),e]):(L(U,[e]),L(H,[]),C(null))),T(e),b(`annotationSelect`,{annotationId:e});let r=x(R).getBoundingClientRect(),i=(t.clientX-r.left-x(z).x)/x(z).zoom,a=(t.clientY-r.top-x(z).y)/x(z).zoom,o={x:i-n.position.x,y:a-n.position.y};L(_t,{annotationId:e,offset:o}),(x(H).length>0||x(U).length>1)&&(Qe={nodes:x(H).map(e=>{let t=w().getNode(e);return{nodeId:e,startPos:t?{...t.position}:{x:0,y:0}}}),annotations:x(U).map(e=>{let t=w().getAnnotation(e);return{annotationId:e,startPos:t?{...t.position}:{x:0,y:0}}}),offset:o})}}}function Dt(e,t,n,r){t.target.closest(`input, textarea, button`)||Et(e,t),vt||At(e,t,n,r)}function Ot(e,t){(t.key===`Enter`||t.key===` `)&&Tt(e,new MouseEvent(`click`,{bubbles:!0,cancelable:!0}))}function kt(e,t,n,r){if(!T()||T()!==e||x(gt)===e)return;let i=w().getAnnotation(e);if(!i)return;let a=x(R).getBoundingClientRect(),o=(t.clientX-a.left-x(z).x)/x(z).zoom-i.position.x,s=(t.clientY-a.top-x(z).y)/x(z).zoom-i.position.y,c=o<8,l=o>n-8,u=s<8,d=s>r-8,f=`default`;c&&u||l&&d?f=`nwse-resize`:c&&d||l&&u?f=`nesw-resize`:c||l?f=`ew-resize`:(u||d)&&(f=`ns-resize`),t.currentTarget.style.cursor=f}function At(e,t,n,r){if(!T()||T()!==e||x(gt)===e)return;let i=x(R).getBoundingClientRect(),a=(t.clientX-i.left-x(z).x)/x(z).zoom,o=(t.clientY-i.top-x(z).y)/x(z).zoom,s=w().getAnnotation(e);if(!s)return;let c=a-s.position.x,l=o-s.position.y,u=c<8,d=c>n-8,f=l<8,p=l>r-8;if(u||d||f||p){t.stopPropagation(),I();let i=`se`;u&&f?i=`nw`:u&&p?i=`sw`:d&&f?i=`ne`:d&&p?i=`se`:u?i=`w`:d?i=`e`:f?i=`n`:p&&(i=`s`),vt={annotationId:e,handle:i,startPos:{x:a,y:o},startSize:s.size||{width:n,height:r},startPosition:{...s.position}}}}function jt(e,t){t.stopPropagation(),L(gt,e)}function Mt(e,t=!1){t||I(),w().removeAnnotation(e),w(w().annotations=[...w().annotations],!0),T()===e&&T(null),L(U,x(U).filter(t=>t!==e)),x(gt)===e&&L(gt,null)}async function Nt(){let e=document.activeElement;if(e&&(e.tagName===`INPUT`||e.tagName===`TEXTAREA`))return;let t=[],n=[];if(x(H).length>0&&x(H).forEach(e=>{let n=w().getNode(e);n&&t.push(n)}),x(U).length>0)x(U).forEach(e=>{let t=w().getAnnotation(e);t&&n.push(t)});else if(T()){let e=w().getAnnotation(T());e&&n.push(e)}if(t.length===0&&n.length===0)return;I();let r=t.map(e=>e.toJSON()),i=new Set(t.map(e=>e.id)),a={type:`cascade/cut`,nodes:r,connections:w().connections.filter(e=>i.has(e.from.nodeId)&&i.has(e.to.nodeId)),annotations:n};try{await W_(JSON.stringify(a)),t.forEach(e=>{w().removeNode(e.id)}),n.forEach(e=>{w().removeAnnotation(e.id)}),w(w().nodes=[...w().nodes],!0),w(w().annotations=[...w().annotations],!0),L(H,[]),L(U,[]),C(null),T(null),b(`nodeSelect`,{node:null}),b(`annotationSelect`,{annotationId:null})}catch(e){console.error(`Failed to cut to clipboard:`,e)}}async function Pt(){let e=document.activeElement;if(e&&(e.tagName===`INPUT`||e.tagName===`TEXTAREA`))return;let t=[],n=[];if(x(H).length>0&&x(H).forEach(e=>{let n=w().getNode(e);n&&t.push(n)}),x(U).length>0)x(U).forEach(e=>{let t=w().getAnnotation(e);t&&n.push(t)});else if(T()){let e=w().getAnnotation(T());e&&n.push(e)}if(t.length===0&&n.length===0)return;let r=t.map(e=>e.toJSON()),i=new Set(t.map(e=>e.id)),a={type:`cascade/copy`,nodes:r,connections:w().connections.filter(e=>i.has(e.from.nodeId)&&i.has(e.to.nodeId)),annotations:n};try{await W_(JSON.stringify(a))}catch(e){console.error(`Failed to copy to clipboard:`,e)}}async function Ft(){let e=document.activeElement;if(!(e&&(e.tagName===`INPUT`||e.tagName===`TEXTAREA`)))try{let e=await G_(),t=JSON.parse(e);if(!t.type||!t.type.startsWith(`cascade/`))return;I();let n=new Map,r=[];if(t.nodes&&t.nodes.length>0){for(let e of t.nodes){let t=Array.isArray(e.position)?e.position[0]:e.position.x,i=Array.isArray(e.position)?e.position[1]:e.position.y,a=w().addNode(e.type,{x:t+50,y:i+50}),o=a.id,s=w().generateUniqueNodeId(e.id,o);if(n.set(e.id,s),j.renameElement(o,s),a.code=e.code||``,a.comment=e.comment||``,a.bypass=e.bypass||!1,x(fe)&&w().reparentElement(a,x(fe)),r.push(a),a.code)try{await w().execute(a)}catch(e){console.warn(`Failed to execute pasted node:`,e)}}for(let e=0;e<t.nodes.length;e++){let i=t.nodes[e],a=r[e];i.props&&Object.entries(i.props).forEach(([e,t])=>{if(a.props[e]){if(t&&typeof t==`object`&&`expression`in t){let r=t.expression;n.forEach((e,t)=>{[RegExp(`(ch[sv]?\\s*\\(\\s*['"][^'"]*/)${t}(/[^'"]*['"]\\s*\\))`,`g`),RegExp(`(ch[sv]?\\s*\\(\\s*['"]\\.\\./)${t}(['"]\\s*\\))`,`g`)].forEach(t=>{r=r.replace(t,`$1${e}$2`)})}),a.props[e]={...a.props[e],value:t.value,expression:r}}else a.updateProp(e,t)}})}}if(t.connections&&t.connections.length>0)for(let e of t.connections){let t=n.get(e.from.nodeId),r=n.get(e.to.nodeId);if(t&&r){let n=w().getNode(t),i=w().getNode(r);if(n&&i){let t=n.outputs.find(t=>t.id===e.from.portId),r=i.inputs.find(t=>t.id===e.to.portId);t&&r&&w().connect(t,r)}}}if(t.annotations&&t.annotations.length>0)for(let e of t.annotations){let t=`${e.type}_${Date.now().toString(36)}_${Math.random().toString(36).substr(2,5)}`,n={...e,id:t,position:{x:e.position.x+50,y:e.position.y+50}};x(fe)&&w().reparentElement(n,x(fe)),w().addAnnotation(n)}w(w().nodes=[...w().nodes],!0),w(w().annotations=[...w().annotations],!0),r.length>0&&(L(H,r.map(e=>e.id)),C(r[0]),b(`nodeSelect`,{node:r[0]}))}catch(e){console.debug(`Paste failed or not Cascade data:`,e)}}function It(e,t){let n=w().getAnnotation(e);n&&(n.content=t,w(w().annotations=[...w().annotations],!0))}function Lt(e,t){let n=t.target;It(e,n.value)}function Rt(e,t){let n=t.target;It(e,n.value)}function zt(){L(gt,null)}function Bt(e){D_(e)&&(e.preventDefault(),e.stopPropagation())}function Vt(e){if(!D_(e)||(e.preventDefault(),e.stopPropagation(),x(_t)))return;let t=Array.from(e.dataTransfer?.files||[]);if(t.length===0)return;let n=x(R).getBoundingClientRect(),r=(e.clientX-n.left-x(z).x)/x(z).zoom,i=(e.clientY-n.top-x(z).y)/x(z).zoom;t.forEach(async(e,t)=>{let n=r+t*30,a=i+t*30;if(e.type.startsWith(`image/`)){let t=new FileReader;t.onload=t=>{let r=t.target?.result,i=`${e.name.replace(/\.[^/.]+$/,``).replace(/[^a-zA-Z0-9_-]/g,`_`)}_${Date.now().toString(36)}`,o={id:i,type:`Image`,src:r,position:{x:n,y:a},size:{width:200,height:150},caption:e.name};if(w().addAnnotation(o),x(fe)){let e=w().getAnnotation(i);e&&Re(x(fe),e)}w(w().annotations=[...w().annotations],!0),w().assetManager.cache.set(e.name,{id:e.name,path:r,type:`image`,data:r,size:e.size,metadata:{name:e.name}})},t.readAsDataURL(e)}else try{let t=await e.text();w().assetManager.cache.set(e.name,{id:e.name,path:e.name,type:e.type.includes(`json`)?`json`:`text`,data:e.type.includes(`json`)?JSON.parse(t):t,size:e.size,metadata:{name:e.name}})}catch(e){console.warn(`Failed to load file as asset:`,e)}})}function Ht(e){e.target.closest(`.node`)||(e.preventDefault(),b(`openNodePanel`,{x:e.clientX,y:e.clientY}))}function Ut(e,t){if(!w())return;let n=e.map(e=>e.outputs.find(e=>e.name===`output`)||e.outputs[0]).filter(Boolean);if(n.length!==0){if(t.variadic)n.forEach((e,n)=>{t.syncVariadicPorts();let r=t.getVariadicInputs()[n];if(r&&e)try{w().connect(e,r)}catch{}});else{let e=t.inputs.filter(e=>e.connections.length===0&&!e.options?.hidden);n.forEach((t,n)=>{let r=e[n];if(r&&t)try{w().connect(t,r)}catch{}})}}}async function Wt(t){I();let n=[...x(H)],r=[...x(U)],i=t.type,a=t.customConfig,o=x(R).getBoundingClientRect(),s=o.width/2,c=o.height/2,l=(s-x(z).x)/x(z).zoom,u=(c-x(z).y)/x(z).zoom;if(i.startsWith(`annotation:`)){let e=i.replace(`annotation:`,``);if(e===`line`||e===`polyline`){S(e),b(`toolChange`,e);return}wt(e,l,u);return}let d=n.length===1?w().getNode(n[0]):null;d&&(l=d.position.x,u=d.position.y+90);let f=0;for(;f<64&&w().nodes.some(e=>{let t=Math.abs(e.position.x-l),n=Math.abs(e.position.y-u);return t<50&&n<50});)u+=90,f+=1;let p=w().addNode(i,{x:l,y:u});x(fe)&&x(fe).isNetwork()&&Re(x(fe),p);let m=Pe(i)!==null;if(!m&&i.startsWith(`project.`)){p.modulePath=i,p.sourceType=`project`,p.code=``;try{p.resetPortTracking();let e=await pd(i);p.setFunction(kf(p,i,e)),p.markDirty()}catch(e){console.error(`Failed to load project module ${i}:`,e)}return I(),p}if(!m){let e=a?.code||Gt(i);p.code=e,i.startsWith(`local.`)&&w().moduleResolver.createEmbeddedModule(i,e,`user`);try{p.resetPortTracking();let t=await md(e);p.setFunction(kf(p,i,t));let n=p.bypass,r=p.cook;n&&p.setBypass(!1),r||p.setCook(!0),await w().execute(p),n&&p.setBypass(!0),r||p.setCook(!1),p.cleanupUnusedPorts(),p.inputs=[...p.inputs],p.outputs=[...p.outputs],p.props={...p.props},p.markDirty()}catch(e){console.error(`Failed to initialize node:`,e),p.error=e}}let h=n.map(e=>w().getNode(e)).filter(e=>e!==null),g=r.map(e=>w().getAnnotation(e)).filter(e=>e!==null),_=[...h,...g];_.length>0&&Ut(_,p),j.refresh({nodes:!0,connections:!0});let v=l*x(z).zoom+x(z).x,y=u*x(z).zoom+x(z).y,T=s-v,ee=c-y;oe(z,x(z).x+=T),oe(z,x(z).y+=ee),L(z,{...x(z)}),await e(),L(H,[p.id]),C(p),b(`nodeSelect`,{node:p})}function Gt(e){return`// ${Le(e)} - Custom Node
|
|
189
|
-
//
|
|
190
|
-
// Ports and parameters are declared inside execute(); it runs once to discover
|
|
191
|
-
// them and again whenever the node cooks.
|
|
192
|
-
export function execute(node, graph) {
|
|
193
|
-
const input = node.in('input', null).value;
|
|
194
|
-
|
|
195
|
-
const value = node.param('value', 1.0, { min: 0, max: 10, step: 0.1, type: 'float' }).value;
|
|
196
|
-
|
|
197
|
-
const output = node.out('output');
|
|
198
|
-
output.setValue(input ?? value);
|
|
199
|
-
}
|
|
200
|
-
`}function Kt(){let e=1/0,t=1/0,n=-1/0,r=-1/0;return x(l).forEach(i=>{e=Math.min(e,i.position.x),t=Math.min(t,i.position.y),n=Math.max(n,i.position.x+120),r=Math.max(r,i.position.y+80)}),x(_).forEach(i=>{if(i.type===`Line`){let a=i.position.x,o=i.position.y,s=i.endPosition?.x??i.position.x,c=i.endPosition?.y??i.position.y;e=Math.min(e,a,s),t=Math.min(t,o,c),n=Math.max(n,a,s),r=Math.max(r,o,c)}else if(i.type===`Polyline`)i.points&&i.points.length>0?i.points.forEach(i=>{e=Math.min(e,i.x),t=Math.min(t,i.y),n=Math.max(n,i.x),r=Math.max(r,i.y)}):(e=Math.min(e,i.position.x),t=Math.min(t,i.position.y),n=Math.max(n,i.position.x),r=Math.max(r,i.position.y));else{let a=i.size?.width||(i.type===`Text`?540:i.type===`Image`?200:300),o=i.size?.height||(i.type===`Text`?60:i.type===`Image`?150:200);e=Math.min(e,i.position.x),t=Math.min(t,i.position.y),n=Math.max(n,i.position.x+a),r=Math.max(r,i.position.y+o)}}),e===1/0?null:{x:(e+n)/2,y:(t+r)/2}}function qt(){if(!x(R))return;let e=Kt();if(!e)return;let t=e.x,n=e.y,r=x(R).getBoundingClientRect(),i=r.width,a=r.height,o=1/0,s=1/0,c=-1/0,u=-1/0;x(l).forEach(e=>{o=Math.min(o,e.position.x),s=Math.min(s,e.position.y),c=Math.max(c,e.position.x+120),u=Math.max(u,e.position.y+80)}),x(_).forEach(e=>{if(e.type===`Line`){let t=e.position.x,n=e.position.y,r=e.endPosition?.x??e.position.x,i=e.endPosition?.y??e.position.y;o=Math.min(o,t,r),s=Math.min(s,n,i),c=Math.max(c,t,r),u=Math.max(u,n,i)}else if(e.type===`Polyline`)e.points&&e.points.length>0?e.points.forEach(e=>{o=Math.min(o,e.x),s=Math.min(s,e.y),c=Math.max(c,e.x),u=Math.max(u,e.y)}):(o=Math.min(o,e.position.x),s=Math.min(s,e.position.y),c=Math.max(c,e.position.x),u=Math.max(u,e.position.y));else{let t=e.size?.width||(e.type===`Text`?540:e.type===`Image`?200:300),n=e.size?.height||(e.type===`Text`?60:e.type===`Image`?150:200);o=Math.min(o,e.position.x),s=Math.min(s,e.position.y),c=Math.max(c,e.position.x+t),u=Math.max(u,e.position.y+n)}});let d=c-o,f=u-s,p=d*1.4,m=f*1.4,h=i/p,g=a/m,v=Math.min(h,g,1);oe(z,x(z).zoom=v);let y=i/2,b=a/2,S=t*v,C=n*v;oe(z,x(z).x=y-S),oe(z,x(z).y=b-C),L(z,{...x(z)})}function Jt(){let e=w().nodes.length>0&&w().nodes.every(e=>x(H).includes(e.id)),t=w().annotations.length===0||w().annotations.every(e=>x(U).includes(e.id));e&&t&&x(H).length>0?Yt():(L(H,w().nodes.map(e=>e.id)),L(U,w().annotations.map(e=>e.id)),w().nodes.length>0&&(C(w().nodes[0]),b(`nodeSelect`,{node:w().nodes[0]})))}function Yt(){L(H,[]),L(U,[]),C(null),b(`nodeSelect`,{node:null}),b(`annotationSelect`,{annotationId:null})}function Xt(){let e=x(H).length>0,t=x(U).length>0||T();!e&&!t||(I(),e&&(x(H).forEach(e=>{w().removeNode(e)}),L(H,[]),C(null),w(w().nodes=[...w().nodes],!0),b(`nodeSelect`,{node:null})),x(U).length>0?(x(U).forEach(e=>{Mt(e,!0)}),b(`annotationSelect`,{annotationId:null})):T()&&(Mt(T()),b(`annotationSelect`,{annotationId:null})))}function Zt(){if(x(H).length===0)return;I();let e=x(H).map(e=>w().getNode(e)).filter(Boolean),t=[];e.forEach(e=>{let n=w().addNode(e.type,{x:e.position.x+50,y:e.position.y+50});n.code=e.code,n.id=w().generateUniqueNodeId(e.id),n.comment=e.comment,n.bypass=e.bypass,x(fe)&&w().reparentElement(n,x(fe)),t.push(n)}),w(w().nodes=[...w().nodes],!0),t.length>0&&(L(H,t.map(e=>e.id)),C(t[0]),b(`nodeSelect`,{node:t[0]}))}let Qt=Y(null);function $t(){L(Qt,null)}let en=Y(``);function tn(e){b(`viewsource`,{nodeId:e.id,node:e},{cancelable:!0})&&cl.openCodeEditor(e.id,e.type||e.id)}function nn(e,t){x(H).includes(t.id)||(L(H,[t.id]),L(U,[]),C(t),b(`nodeSelect`,{node:t}));let n=Z_(x(H).length,`node`);L(en,x(y)),L(Qt,{x:e.clientX,y:e.clientY,items:[{id:`view-source`,label:`View source`,run:()=>tn(t)},{id:`copy`,label:`Copy ${n}`,run:()=>{Pt()}},{id:`duplicate`,label:`Duplicate ${n}`,run:Zt},{id:`delete`,label:`Delete ${n}`,separatorBefore:!0,danger:!0,run:Xt}]})}function rn(e){if(e.preventDefault(),e.ctrlKey||e.metaKey)return;let t=e.target.closest(`.node`);if(t){let n=t.dataset.nodeId,r=n?w().getNode(n):null;r&&nn(e,r);return}e.target.closest(`.annotation`)||b(`openNodePanel`,{x:e.clientX,y:e.clientY})}function an(e,t){if(!x(R))return null;let n=x(R).querySelector(`[data-node-id="${e}"][data-port-id="${t}"]`);if(n)return n;let r=x(R).querySelectorAll(`[data-node-id="${e}"][data-variadic-ports]`);for(let e of r){let n=e.getAttribute(`data-variadic-ports`);if(n&&n.split(`,`).includes(t))return e}return null}function on(e,t,n){let r=w().getElement(e);if(r?.isAnnotation===!0){let n=an(e,t);if(n&&x(R)){let e=n.getBoundingClientRect(),t=x(R).getBoundingClientRect(),r=n.querySelector(`.port-dot, .port-pill`);if(r){let e=r.getBoundingClientRect();return{x:(e.left+e.width/2-t.left-x(z).x)/x(z).zoom,y:(e.top+e.height/2-t.top-x(z).y)/x(z).zoom}}return{x:(e.left+e.width/2-t.left-x(z).x)/x(z).zoom,y:(e.top+e.height/2-t.top-x(z).y)/x(z).zoom}}let i=r;if(!i||!i.outputs||!i.outputs.find(e=>e.id===t))return null;let a=i.size?.width??(i.type===`Text`?540:i.type===`Image`?200:300),o=i.size?.height??(i.type===`Text`?60:i.type===`Image`?150:200);return{x:i.position.x+a/2,y:i.position.y+o}}let i=an(e,t);if(!i){let r=w().getNode(e);if(!r)return null;let i=n===`output`?r.outputs.findIndex(e=>e.id===t):r.inputs.findIndex(e=>e.id===t);if(i===-1)return null;i*16;let a=r.position.x+40,o=r.position.y+6,s=r.position.y+12+36+6;return{x:a-(n===`input`?r.inputs.length:r.outputs.length)*16/2+8+i*16,y:n===`input`?o:s}}let a=i.getBoundingClientRect(),o=x(R).getBoundingClientRect(),s=i.querySelector(`.port-dot, .port-pill`);if(s){let e=s.getBoundingClientRect();return{x:(e.left+e.width/2-o.left-x(z).x)/x(z).zoom,y:(e.top+e.height/2-o.top-x(z).y)/x(z).zoom}}return{x:(a.left+a.width/2-o.left-x(z).x)/x(z).zoom,y:(a.top+a.height/2-o.top-x(z).y)/x(z).zoom}}function sn(e,t,n,r){r.stopPropagation();let i=w().getElement(e);if(i?.isAnnotation===!0){let a=i;if(!a||!a.outputs)return;let o=a.outputs.find(e=>e.id===t);if(!o)return;if(o.connections.length>0&&(Ye={nodeId:e,portId:t,portType:n,connectionIds:o.connections.map(e=>e.id)}),n===`output`&&!x(Ke)){let i=on(e,t,n);if(i){L(Ke,{nodeId:e,portId:t,portType:n}),L(qe,i);let a=x(R).getBoundingClientRect();L(Je,{x:(r.clientX-a.left-x(z).x)/x(z).zoom,y:(r.clientY-a.top-x(z).y)/x(z).zoom})}}return}let a=w().getNode(e);if(!a)return;let o=n===`output`?a.outputs.find(e=>e.id===t):a.inputs.find(e=>e.id===t);if(o){if(o.connections.length>0&&(Ye={nodeId:e,portId:t,portType:n,connectionIds:o.connections.map(e=>e.id)}),n===`output`&&!x(Ke)){let i=on(e,t,n);if(i){L(Ke,{nodeId:e,portId:t,portType:n}),L(qe,i);let a=x(R).getBoundingClientRect();L(Je,{x:(r.clientX-a.left-x(z).x)/x(z).zoom,y:(r.clientY-a.top-x(z).y)/x(z).zoom})}}if(n===`input`&&o.connections.length>0&&!x(Ke)){let i=on(e,t,n);if(i){L(Ke,{nodeId:e,portId:t,portType:n}),L(qe,i);let a=x(R).getBoundingClientRect();L(Je,{x:(r.clientX-a.left-x(z).x)/x(z).zoom,y:(r.clientY-a.top-x(z).y)/x(z).zoom})}}}}function cn(e,t,n,r){r.stopPropagation();let i=w().getNode(e);if(!i)return;let a=n===`output`?i.outputs.find(e=>e.id===t):i.inputs.find(e=>e.id===t);if(a){if(x(Ke)){let t=x(Ke);if(t.nodeId!==e&&t.portType!==n){let r=w().getElement(t.nodeId),o=t.portType===`output`?r?.outputs.find(e=>e.id===t.portId):r?.inputs.find(e=>e.id===t.portId);if(o&&a&&t.portType===`output`&&n===`input`){I();let n=`variadic`in a&&a.variadic===!0,r=[];if(n){let n=e;x(H).forEach(e=>{if(e!==t.nodeId&&e!==n){let t=w().getNode(e);t&&t.outputs.length>0&&r.push({element:t,output:t.outputs[0]})}}),x(U).forEach(e=>{if(e!==t.nodeId&&e!==n){let t=w().getAnnotation(e);t&&t.outputs&&t.outputs.length>0&&r.push({element:t,output:t.outputs[0]})}})}if(w().connect(o,a),n&&r.length>0){let e=a.name.match(/^(.+)_(\d+)$/);if(e&&i.syncVariadicPorts){let t=e[1],n=parseInt(e[2],10)+1;for(let{output:e}of r){i.syncVariadicPorts();let r=`${t}_${n}`,a=i.inputs.find(e=>e.name===r&&!e.options?.hidden);if(a||=(i.syncVariadicPorts(),i.inputs.find(e=>e.name===r&&!e.options?.hidden)),a)try{w().connect(e,a),n++}catch(e){console.warn(`Failed to connect additional element:`,e)}}}}j.refresh({connections:!0})}}L(Ke,null),L(qe,null),Ye=null}else if(n===`output`){let i=on(e,t,n);if(i){L(Ke,{nodeId:e,portId:t,portType:n}),L(qe,i);let a=x(R).getBoundingClientRect();L(Je,{x:(r.clientX-a.left-x(z).x)/x(z).zoom,y:(r.clientY-a.top-x(z).y)/x(z).zoom})}}}}function ln(e){e.preventDefault();let t=(e.deltaY===0?e.deltaX:e.deltaY)*-.005,n=x(z).zoom,r=Math.max(.1,Math.min(2,n+t)),i=Ie();i&&(oe(z,x(z).x=x(z).x+i.x*(n-r)),oe(z,x(z).y=x(z).y+i.y*(n-r))),oe(z,x(z).zoom=r),L(z,{...x(z)})}function un(e){if(e.touches.length===2){let t=e.touches[0],n=e.touches[1];$e={x:(t.clientX+n.clientX)/2,y:(t.clientY+n.clientY)/2,touches:e.touches},e.preventDefault()}}function dn(e){if(e.touches.length===2&&$e){let t=e.touches[0],n=e.touches[1],r=(t.clientX+n.clientX)/2,i=(t.clientY+n.clientY)/2,a=r-$e.x,o=i-$e.y;oe(z,x(z).x+=a),oe(z,x(z).y+=o),L(z,{...x(z)}),$e.x=r,$e.y=i,e.preventDefault()}}function fn(e){e.touches.length<2&&($e=null)}function pn(e){if(et||={x:e.clientX,y:e.clientY,pointers:new Map},et.pointers.set(e.pointerId,{x:e.clientX,y:e.clientY}),et.pointers.size===2){let t=Array.from(et.pointers.values());et.x=(t[0].x+t[1].x)/2,et.y=(t[0].y+t[1].y)/2,e.preventDefault()}}function mn(e){if(et&&et.pointers.has(e.pointerId)&&(et.pointers.set(e.pointerId,{x:e.clientX,y:e.clientY}),et.pointers.size===2)){let t=Array.from(et.pointers.values()),n=(t[0].x+t[1].x)/2,r=(t[0].y+t[1].y)/2,i=n-et.x,a=r-et.y;oe(z,x(z).x+=i),oe(z,x(z).y+=a),L(z,{...x(z)}),et.x=n,et.y=r,e.preventDefault()}}function hn(e){et&&(et.pointers.delete(e.pointerId),et.pointers.size===0&&(et=null))}function gn(e){let t=document.activeElement,n=t instanceof HTMLInputElement||t instanceof HTMLTextAreaElement||t?.getAttribute(`contenteditable`)===`true`;e.code===`Space`&&!n&&(Ve=!0,e.preventDefault()),(e.key===`Control`||e.key===`Meta`||e.ctrlKey||e.metaKey)&&L(Ze,!0);let r=E_(`graph`);if(r&&!n&&(e.key===`+`||e.key===`=`||e.code===`NumpadAdd`)){e.preventDefault();let t=x(z).zoom,n=Math.min(2,t+.1),r=Ie();r&&(oe(z,x(z).x=x(z).x+r.x*(t-n)),oe(z,x(z).y=x(z).y+r.y*(t-n))),oe(z,x(z).zoom=n),L(z,{...x(z)})}if(r&&!n&&(e.key===`-`||e.key===`_`||e.code===`NumpadSubtract`)){e.preventDefault();let t=x(z).zoom,n=Math.max(.1,t-.1),r=Ie();r&&(oe(z,x(z).x=x(z).x+r.x*(t-n)),oe(z,x(z).y=x(z).y+r.y*(t-n))),oe(z,x(z).zoom=n),L(z,{...x(z)})}if((e.metaKey||e.ctrlKey)&&e.key===`0`&&(e.preventDefault(),qt()),!n&&!e.metaKey&&!e.ctrlKey&&(e.key===`0`||e.code===`Numpad0`)){e.preventDefault();let t=x(z).zoom;if(t!==1){let e=Ie();e&&(oe(z,x(z).x=x(z).x+e.x*(t-1)),oe(z,x(z).y=x(z).y+e.y*(t-1))),oe(z,x(z).zoom=1),L(z,{...x(z)})}}if(e.key===`h`||e.key===`H`){let t=e.target;t.tagName!==`INPUT`&&t.tagName!==`TEXTAREA`&&(e.preventDefault(),qt())}if(e.key===`Escape`){let t=e.target;t.tagName!==`INPUT`&&t.tagName!==`TEXTAREA`&&(x(gt)?L(gt,null):(T()||x(U).length>0)&&(e.preventDefault(),T(null),L(U,[]),b(`annotationSelect`,{annotationId:null})))}if(e.key===`Delete`||e.key===`Backspace`){let t=e.target;t.tagName!==`INPUT`&&t.tagName!==`TEXTAREA`&&(x(H).length>0||x(U).length>0||T())&&(e.preventDefault(),Xt())}if((e.metaKey||e.ctrlKey)&&e.key===`x`){let t=e.target;t.tagName!==`INPUT`&&t.tagName!==`TEXTAREA`&&(e.preventDefault(),Nt())}if((e.metaKey||e.ctrlKey)&&e.key===`c`){let t=e.target;t.tagName!==`INPUT`&&t.tagName!==`TEXTAREA`&&(e.preventDefault(),Pt())}if((e.metaKey||e.ctrlKey)&&e.key===`v`){let t=e.target;t.tagName!==`INPUT`&&t.tagName!==`TEXTAREA`&&(e.preventDefault(),Ft())}if((e.metaKey||e.ctrlKey)&&e.key===`a`){let t=e.target;t.tagName!==`INPUT`&&t.tagName!==`TEXTAREA`&&(e.preventDefault(),Jt())}(e.metaKey||e.ctrlKey)&&e.key===`d`&&(e.preventDefault(),Zt());let i=e.target;i.tagName!==`INPUT`&&i.tagName!==`TEXTAREA`&&((e.key===`Enter`||e.key===`i`)&&!e.metaKey&&!e.ctrlKey&&!e.altKey&&C()&&C().isNetwork()&&(e.preventDefault(),_e(C())),(e.key===`o`||e.key===`u`)&&!e.metaKey&&!e.ctrlKey&&!e.altKey&&x(fe)&&(e.preventDefault(),ve()),(e.metaKey||e.ctrlKey)&&!e.shiftKey&&e.key===`g`&&x(H).length>0&&(e.preventDefault(),ze()),(e.metaKey||e.ctrlKey)&&e.shiftKey&&e.key===`G`&&x(H).length===1&&w().getNode(x(H)[0])?.isNetwork()&&(e.preventDefault(),Be()),e.key===`/`&&!e.metaKey&&!e.ctrlKey&&!e.altKey&&(e.preventDefault(),Oe()),e.key===`c`&&!e.metaKey&&!e.ctrlKey&&!e.altKey&&C()&&(e.preventDefault(),C().setCook(!C().cook),w(w().nodes=[...w().nodes],!0)),e.key===`b`&&!e.metaKey&&!e.ctrlKey&&!e.altKey&&C()&&(e.preventDefault(),C().setBypass(!C().bypass),w(w().nodes=[...w().nodes],!0)))}function _n(e){e.code===`Space`&&(Ve=!1),(e.key===`Control`||e.key===`Meta`||!e.ctrlKey&&!e.metaKey)&&(L(Ze,!1),L(Xe,null))}ye(()=>(w().nodes.length>0&&w(w().nodes=[...w().nodes],!0),window.addEventListener(`keydown`,gn),window.addEventListener(`keyup`,_n),()=>{window.removeEventListener(`keydown`,gn),window.removeEventListener(`keyup`,_n)})),J(()=>(A(w()),x(N),x(ie),x(ae)),()=>{let e=w().scheduler;e!==x(N)&&(x(ie)?.(),L(N,e),L(ie,e.subscribe(()=>{L(ae,x(ae)+1)})))}),J(()=>(A(k()),x(B)),()=>{k()&&(!x(B)||x(B).x!==k().x||x(B).y!==k().y||x(B).zoom!==k().zoom)&&(L(z,{...k()}),L(B,{...k()}))}),J(()=>(A(k()),x(ce),x(z),x(B)),()=>{k()!==void 0&&(x(ce).x!==x(z).x||x(ce).y!==x(z).y||x(ce).zoom!==x(z).zoom)&&(x(B)&&x(B).x===x(z).x&&x(B).y===x(z).y&&x(B).zoom===x(z).zoom?L(ce,{...x(z)}):(L(ce,{...x(z)}),b(`transformChange`,{transform:{...x(z)}})))}),J(()=>(A(C()),x(H)),()=>{C()&&C().id&&!x(H).includes(C().id)&&L(H,[C().id])}),J(()=>(A(C()),x(H)),()=>{!C()&&x(H).length>0&&L(H,[])}),J(()=>(x(H),A(w())),()=>{de(x(H),w())}),J(()=>x(fe),()=>{L(c,W(x(fe)))}),J(()=>(A(w()),x(fe)),()=>{L(l,Me(w().nodes,x(fe)))}),J(()=>(A(w()),x(fe)),()=>{L(_,Me(w().annotations,x(fe)))}),J(()=>(x(l),x(_)),()=>{x(l),x(_),L(Fe,!1)}),J(()=>(x(ae),x(l)),()=>{L(u,(x(ae),x(l)))}),J(()=>x(u),()=>{L(d,x(u).filter(e=>e&&e.inputs&&e.outputs).map(e=>({id:e.id,inputs:e.inputs.length,outputs:e.outputs.length})))}),J(()=>(r(),x(u)),()=>{L(p,tt(r(),x(u)))}),J(()=>(x(ae),x(p),x(d),x(_),x(u),A(w())),()=>{x(ae),x(p),x(d),x(_);let e=new Set(x(u).map(e=>e.id)),t=new Set(x(_).map(e=>e.id)),n=new Set([...e,...t]);L(nt,w().connections.filter((e,t,r)=>r.findIndex(t=>t.id===e.id)===t&&n.has(e.from.nodeId)&&n.has(e.to.nodeId)))}),J(()=>(x(nt),x(H),x(Xe)),()=>{L(m,[...x(nt).filter(e=>!rt(e,x(H),x(Xe)?.connectionId)),...x(nt).filter(e=>rt(e,x(H),x(Xe)?.connectionId))])}),J(()=>x(z),()=>{L(y,`${x(z).x},${x(z).y},${x(z).zoom}`)}),J(()=>(x(Qt),x(y),x(en)),()=>{x(Qt)&&x(y)!==x(en)&&$t()}),he();var vn={addNode:Wt,centerOnNodes:qt,selectAll:Jt,deselectAll:Yt,deleteSelected:Xt};ue();var yn=sv(),bn=G(yn);let xn;var Sn=M(bn),Cn=M(Sn),wn=e=>{var t=Q_();re(t),ge(t,e=>L(De,e),()=>x(De)),Ce(t,()=>x(Te),e=>L(Te,e)),O(`keydown`,t,je),O(`blur`,t,ke),E(e,t)},Tn=e=>{var t=tv(),n=G(t);f(n,1,()=>x(c),h,(e,t,n)=>{var r=ev(),i=G(r),a=e=>{var t=$_();E(e,t)};Z(i,e=>{n>0&&e(a)});var o=P(i,2);let s;var l=q(o,!0);K(()=>{s=v(o,1,`path-segment svelte-p2f6pl`,null,s,{current:n===x(c).length-1}),D(l,(x(t),F(()=>x(t).label)))}),O(`click`,o,()=>be(x(t).node)),E(e,r)});var r=P(n,2);O(`click`,r,Oe),E(e,t)};Z(Cn,e=>{x(Se)?e(wn):e(Tn,-1)}),o(Sn);var En=P(Sn,2),Dn=e=>{let t=pe(()=>(x(We),x(Q),F(()=>({x:Math.min(x(We).x,x(Q).x),y:Math.min(x(We).y,x(Q).y),width:Math.abs(x(Q).x-x(We).x),height:Math.abs(x(Q).y-x(We).y)}))));var n=nv();K(()=>a(n,`left: ${A(x(t)),F(()=>x(t).x)??``}px; top: ${A(x(t)),F(()=>x(t).y)??``}px; width: ${A(x(t)),F(()=>x(t).width)??``}px; height: ${A(x(t)),F(()=>x(t).height)??``}px;`)),E(e,n)};Z(En,e=>{x(He)&&x(Ue)&&x(We)&&x(Q)&&e(Dn)});var On=P(En,4),kn=M(On);f(kn,1,()=>x(m),e=>e.id,(e,t)=>{pe(()=>(x(p),x(t),F(()=>x(p).find(e=>e.id===x(t).from.nodeId)))),pe(()=>(x(p),x(t),F(()=>x(p).find(e=>e.id===x(t).to.nodeId))));let n=pe(()=>(x(t),F(()=>on(x(t).from.nodeId,x(t).from.portId,`output`)))),r=pe(()=>(x(t),F(()=>on(x(t).to.nodeId,x(t).to.portId,`input`))));var i=te(),o=G(i),s=e=>{let i=pe(()=>(A(w()),x(t),F(()=>w().getElement(x(t).from.nodeId)))),o=pe(()=>(A(w()),x(t),F(()=>w().getElement(x(t).to.nodeId)))),s=pe(()=>(A(x(i)),F(()=>x(i)&&!x(i)?.isAnnotation?x(i):null))),c=pe(()=>(A(x(o)),F(()=>x(o)&&!x(o)?.isAnnotation?x(o):null))),l=pe(()=>(A(x(i)),F(()=>x(i)?.isAnnotation?x(i):null))),u=pe(()=>(A(x(s)),x(t),A(x(l)),F(()=>x(s)?.outputs.find(e=>e.id===x(t).from.portId)||x(l)?.outputs?.find(e=>e.id===x(t).from.portId)))),d=pe(()=>(A(x(c)),x(t),F(()=>!x(c)?.isInputActive||x(c).isInputActive(x(t).to.portId)))),f=pe(()=>(A(x(d)),A(x(u)),A(hg),A(mg),F(()=>x(d)?x(u)?hg(x(u)):mg.any:mg.inactive))),p=pe(()=>(x(t),x(H),x(Xe),F(()=>rt(x(t),x(H),x(Xe)?.connectionId))));pe(()=>(A(x(n)),A(x(r)),F(()=>(x(n).y+x(r).y)/2)));let m=pe(()=>(A(x(r)),A(x(n)),F(()=>Math.abs(x(r).y-x(n).y)*.5))),h=pe(()=>(x(t),F(()=>x(t).type===`trigger`))),g=pe(()=>(x(t),F(()=>it(x(t)))));var _=rv(),y=G(_),b=P(y);let S;K(()=>{X(y,`d`,`M ${A(x(n)),F(()=>x(n).x)??``} ${A(x(n)),F(()=>x(n).y)??``} C ${A(x(n)),F(()=>x(n).x)??``} ${A(x(n)),A(x(m)),F(()=>x(n).y+x(m))??``} ${A(x(r)),F(()=>x(r).x)??``} ${A(x(r)),A(x(m)),F(()=>x(r).y-x(m))??``} ${A(x(r)),F(()=>x(r).x)??``} ${A(x(r)),F(()=>x(r).y)??``}`),a(y,`cursor: ${x(Xe),x(t),x(Ze),F(()=>x(Xe)?.connectionId===x(t).id&&x(Ze)?`pointer`:`default`)??``};`),X(b,`d`,`M ${A(x(n)),F(()=>x(n).x)??``} ${A(x(n)),F(()=>x(n).y)??``} C ${A(x(n)),F(()=>x(n).x)??``} ${A(x(n)),A(x(m)),F(()=>x(n).y+x(m))??``} ${A(x(r)),F(()=>x(r).x)??``} ${A(x(r)),A(x(m)),F(()=>x(r).y-x(m))??``} ${A(x(r)),F(()=>x(r).x)??``} ${A(x(r)),F(()=>x(r).y)??``}`),a(b,`stroke: ${x(f)??``};`),X(b,`stroke-opacity`,x(p)?1:.5),X(b,`stroke-dasharray`,x(g)?`8 6`:x(h)?`3 3`:`none`),S=v(b,0,`connection svelte-p2f6pl`,null,S,{"trigger-connection":x(h),"processing-connection":x(g),inactive:!x(d)})}),E(e,_)};Z(o,e=>{x(n)&&x(r)&&e(s)}),E(e,i)});var An=P(kn),jn=e=>{let t=pe(()=>(x(Xe),F(()=>x(Xe).position)));var n=iv();K(()=>X(n,`transform`,`translate(${A(x(t)),F(()=>x(t).x)??``}, ${A(x(t)),F(()=>x(t).y)??``})`)),E(e,n)};Z(An,e=>{x(Xe)&&e(jn)});var Mn=P(An),Nn=e=>{let t=pe(()=>x(Ke)),n=pe(()=>(A(w()),A(x(t)),F(()=>w().getElement(x(t).nodeId)))),r=pe(()=>(A(x(n)),F(()=>x(n)&&!x(n)?.isAnnotation?x(n):null))),i=pe(()=>(A(x(n)),F(()=>x(n)?.isAnnotation?x(n):null))),o=pe(()=>(A(x(t)),A(x(r)),A(x(i)),F(()=>x(t).portType===`output`?x(r)?.outputs.find(e=>e.id===x(t).portId)||x(i)?.outputs?.find(e=>e.id===x(t).portId):x(r)?.inputs.find(e=>e.id===x(t).portId)))),s=pe(()=>(A(x(o)),A(hg),A(mg),F(()=>x(o)?hg(x(o)):mg.any))),c=pe(()=>(x(Je),x(qe),F(()=>Math.abs(x(Je).y-x(qe).y)*.5))),l=pe(()=>(A(x(t)),A(x(r)),F(()=>x(t).portType===`output`&&(x(r)?x(r).outputs.find(e=>e.id===x(t).portId)?.portType===`trigger`:!1))));var u=av();K(()=>{X(u,`d`,`M ${x(qe),F(()=>x(qe).x)??``} ${x(qe),F(()=>x(qe).y)??``} C ${x(qe),F(()=>x(qe).x)??``} ${x(qe),A(x(c)),F(()=>x(qe).y+x(c))??``} ${x(Je),F(()=>x(Je).x)??``} ${x(Je),A(x(c)),F(()=>x(Je).y-x(c))??``} ${x(Je),F(()=>x(Je).x)??``} ${x(Je),F(()=>x(Je).y)??``}`),a(u,`stroke: ${x(s)??``};`),X(u,`stroke-dasharray`,x(l)?`3 3`:`4 4`)}),E(e,u)};Z(Mn,e=>{x(Ke)&&x(qe)&&e(Nn)}),o(On);var Pn=P(On,2);f(Pn,5,()=>x(_),e=>e.id,(e,t)=>{let n=pe(()=>(x(gt),x(t),F(()=>x(gt)===x(t).id))),r=pe(()=>(x(U),x(t),A(T()),F(()=>x(U).includes(x(t).id)||T()===x(t).id))),i=pe(()=>(x(_t),x(t),F(()=>x(_t)?.annotationId===x(t).id))),o=pe(()=>(A(Pg),x(t),F(()=>Pg.get(x(t).type))));var s=te(),c=G(s),l=e=>{var a=te(),s=G(a);g(s,()=>x(o),(e,a)=>{a(e,{get annotation(){return x(t)},get isSelected(){return x(r)},get isEditing(){return x(n)},get isDragging(){return x(i)},$$events:{click:e=>Tt(e.detail.id,e.detail.event),dblclick:e=>jt(e.detail.id,e.detail.event),mousedown:e=>{let{id:n,event:r,width:i,height:a}=e.detail;x(t)instanceof Zu?Dt(n,r,i||540,a||60):Et(n,r)},mousemove:e=>{let{id:t,event:n,width:r,height:i}=e.detail;kt(t,n,r||540,i||60)},keydown:e=>Ot(e.detail.id,e.detail.event),finishEdit:zt,delete:e=>Mt(e.detail.id),input:e=>{let{id:n,event:r}=e.detail;x(t)instanceof Zu?Lt(n,r):Rt(n,r)},portMouseDown:e=>sn(e.detail.nodeId,e.detail.portId,e.detail.portType,e.detail.event),resizeStart:e=>lt(e.detail.id,e.detail.handle,e.detail.event)}})}),E(e,a)},u=e=>{var n=ov(),r=q(n);K(()=>{a(n,`position: absolute; left: ${x(t),F(()=>x(t).position.x)??``}px; top: ${x(t),F(()=>x(t).position.y)??``}px; background: var(--status-error-strong); color: var(--text-on-accent); padding: 8px; border-radius: 4px; font-size: 12px;`),D(r,`Unknown type: ${x(t),F(()=>x(t).type)??``}`)}),E(e,n)};Z(c,e=>{x(o)?e(l):e(u,-1)}),E(e,s)}),o(Pn);var Fn=P(Pn,2);f(Fn,5,()=>x(u),e=>e.id,(e,t)=>{{let n=pe(()=>(x(H),x(t),F(()=>x(H).includes(x(t).id))));y_(e,{get node(){return x(t)},get selected(){return x(n)},get canvasTransform(){return x(z)},$$events:{portClick:e=>cn(e.detail.nodeId,e.detail.portId,e.detail.portType,e.detail.event),portMouseDown:e=>sn(e.detail.nodeId,e.detail.portId,e.detail.portType,e.detail.event),nodeMouseDown:e=>ut(e.detail.nodeId,e.detail.event),nodeClick:e=>ft(x(t).id,e.detail),edit:dt,diveInto:e=>_e(e.detail.node),bypassToggle:e=>pt(e.detail.nodeId,e.detail.event),cookToggle:e=>mt(e.detail.nodeId,e.detail.event),disconnect:e=>ht(e.detail.connectionId)}})}}),o(Fn),o(bn),ge(bn,e=>L(R,e),()=>x(R));var In=P(bn,2),Ln=e=>{X_(e,{get x(){return x(Qt),F(()=>x(Qt).x)},get y(){return x(Qt),F(()=>x(Qt).y)},get items(){return x(Qt),F(()=>x(Qt).items)},$$events:{close:$t}})};Z(In,e=>{x(Qt)&&e(Ln)}),K(()=>{xn=v(bn,1,`canvas svelte-p2f6pl`,null,xn,{"select-tool":S()===`select`,"hand-tool":S()===`hand`}),a(On,`transform: translate(${x(z),F(()=>x(z).x)??``}px, ${x(z),F(()=>x(z).y)??``}px) scale(${x(z),F(()=>x(z).zoom)??``})`),a(Pn,`transform: translate(${x(z),F(()=>x(z).x)??``}px, ${x(z),F(()=>x(z).y)??``}px) scale(${x(z),F(()=>x(z).zoom)??``})`),a(Fn,`transform: translate(${x(z),F(()=>x(z).x)??``}px, ${x(z),F(()=>x(z).y)??``}px) scale(${x(z),F(()=>x(z).zoom)??``})`)}),O(`mousedown`,bn,at),O(`mousemove`,bn,ot),O(`mouseup`,bn,ct),O(`click`,bn,Ct),O(`dblclick`,bn,Ht),O(`wheel`,bn,ln),O(`contextmenu`,bn,rn),O(`touchstart`,bn,un),O(`touchmove`,bn,dn),O(`touchend`,bn,fn),O(`touchcancel`,bn,fn),O(`pointerdown`,bn,pn),O(`pointermove`,bn,mn),O(`pointerup`,bn,hn),O(`pointercancel`,bn,hn),O(`dragover`,bn,Bt),O(`drop`,bn,Vt),O(`keydown`,bn,xt),O(`keyup`,bn,St),E(t,yn),se(n,`addNode`,Wt),se(n,`centerOnNodes`,qt),se(n,`selectAll`,Jt),se(n,`deselectAll`,Yt),se(n,`deleteSelected`,Xt);var Rn=Ee(vn);return s(),Rn}var lv=u(`<div class="empty-state svelte-qbjsq3">Loading graph...</div>`),uv=u(`<div class="panel-wrapper svelte-qbjsq3" data-panel-type="graph" data-window-id="graph"><!></div>`);function dv(e,t){ee(t,!1);let n=()=>we(ga,`$sharedContextStore`,r),[r,i]=ne(),a=V(t,`panelApi`,8),s=V(t,`graph`,12,void 0),c=V(t,`selectedNode`,12,null),l=V(t,`selectedAnnotation`,12,null),u=V(t,`activeTool`,12,`select`),d=V(t,`presentationMode`,12,!1),f=V(t,`onRecordHistory`,12,void 0),p=V(t,`onNodeSelect`,12,void 0),m=V(t,`onAnnotationSelect`,12,void 0),h=V(t,`onToolChange`,12,void 0),g=V(t,`onOpenNodePanel`,12,void 0);xe();let _=Y(null),v=Y(),y=Y({x:0,y:0,zoom:1});function b(e){p()&&p()(e.detail.node)}function S(e){m()&&m()(e.detail.annotationId)}function C(e){L(y,e.detail.transform)}function w(e){g()&&g()(e.detail)}function T(e){let t=e.detail.node;t&&cl.openCodeEditor(t.id,t.type||`Code`)}function D(e){x(_)&&x(_).addNode&&x(_).addNode(e)}function te(){x(_)&&x(_).centerOnNodes&&x(_).centerOnNodes()}function O(){x(_)&&x(_).selectAll&&x(_).selectAll()}function k(){x(_)&&x(_).deselectAll&&x(_).deselectAll()}function A(){x(_)&&x(_).deleteSelected&&x(_).deleteSelected()}ye(()=>{if(x(v)?.addEventListener(`addNode`,e=>{D(e.detail)}),x(v)?.addEventListener(`centerOnNodes`,()=>{te()}),x(v)?.addEventListener(`selectAll`,()=>{O()}),x(v)?.addEventListener(`deselectAll`,()=>{k()}),x(v)?.addEventListener(`deleteSelected`,()=>{A()}),a()){let e=a().onDidDimensionsChange?.(e=>{e.width,e.height});return()=>{e?.dispose?.()}}}),J(()=>n(),()=>{n()&&(s(n().graph),c(n().selectedNode),l(n().selectedAnnotation),u(n().activeTool||`select`),d(n().presentationMode||!1),f(n().onRecordHistory),p(n().onNodeSelect),m(n().onAnnotationSelect),h(n().onToolChange),g(n().onOpenNodePanel))}),he();var j={addNode:D,centerOnNodes:te,selectAll:O,deselectAll:k,deleteSelected:A};ue();var re=uv(),N=M(re),ie=e=>{ge(cv(e,{get graph(){return s()},get activeTool(){return u()},get selectedNode(){return c()},get selectedAnnotation(){return l()},get transform(){return x(y)},get onRecordHistory(){return f()},$$events:{nodeSelect:b,annotationSelect:S,transformChange:C,openNodePanel:w,nodeEdit:T},$$legacy:!0}),e=>L(_,e),()=>x(_))},P=e=>{var t=lv();E(e,t)};Z(N,e=>{s()?e(ie):e(P,-1)}),o(re),ge(re,e=>L(v,e),()=>x(v)),E(e,re),se(t,`addNode`,D),se(t,`centerOnNodes`,te),se(t,`selectAll`,O),se(t,`deselectAll`,k),se(t,`deleteSelected`,A);var ae=Ee(j);return i(),ae}function fv(e){return Number.isInteger(e)}function pv(e){if(e.type)return e.type;let t=e.value,n=e.params,r=n?.integer===!0||n?.step===1&&typeof t==`number`&&fv(t);if(typeof t==`number`)return n?.min!==void 0&&n?.max!==void 0?r?`int`:`slider`:r?`int`:`number`;if(typeof t==`string`)return/^#([0-9A-F]{3}|[0-9A-F]{6})$/i.test(t)?`color`:n?.accept===`image/*`||t.match(/\.(jpg|jpeg|png|gif|webp|svg)$/i)||t.startsWith(`data:image/`)?`image`:n?.options&&n.options.length>0?`select`:t.includes(`
|
|
201
|
-
`)||t.length>100?`textarea`:`text`;if(typeof t==`boolean`)return`boolean`;if(Array.isArray(t)){if(t.length>0&&typeof t[0]==`object`&&t[0]!==null&&`position`in t[0]&&`color`in t[0])return`colorramp`;if(t.length===2&&n?.min!==void 0&&n?.max!==void 0&&typeof n.min==`number`&&typeof n.max==`number`)return`range`;let e=t.length>0&&t.every(e=>typeof e==`number`&&fv(e)),r=e&&t.every(e=>e>=1&&e<=8192)&&n?.min!==void 0&&n?.max!==void 0,i=n?.integer===!0||n?.step===1&&e||r;return t.length===2?i?`vec2i`:`vec2`:t.length===3?i?`vec3i`:`vec3`:`vector`}return typeof t==`function`?`button`:`text`}var mv=1,hv=1e5;function gv(e){return typeof e==`object`&&e?e:null}function _v(e){return Array.isArray(e)?e.every(Number.isFinite)?e:null:!ArrayBuffer.isView(e)||e instanceof DataView?null:e}function vv(e,t,n){let r=e[n*t],i=e[n*t+1];return Number.isFinite(r)&&Number.isFinite(i)?[r,i]:null}function yv(e,t,n,r,i){let a=1-i,o=a*a*a,s=3*a*a*i,c=3*a*i*i,l=i*i*i;return[o*e[0]+s*t[0]+c*n[0]+l*r[0],o*e[1]+s*t[1]+c*n[1]+l*r[1]]}function bv(e,t=1200){if(!Number.isSafeInteger(t)||t<1||t>hv)return null;let n=gv(e),r=n?.pointCount,i=n?.primitiveCount;if(n?.kind!==`geometry`||typeof r!=`number`||!Number.isSafeInteger(r)||r<0||typeof i!=`number`||!Number.isSafeInteger(i)||i<0)return null;let a=gv(gv(n.point)?.P),o=a?.size,s=_v(a?.data);if(o!==2&&o!==3||!s||s.length!==r*o)return null;let c=null,l=1/0,u=1/0,d=-1/0,f=-1/0;for(let e=0;e<r;e+=1){let t=vv(s,o,e);if(!t)return null;let[n,r]=t;n<l&&(l=n),r<u&&(u=r),n>d&&(d=n),r>f&&(f=r)}r>0&&(c={min:[l,u],max:[d,f]});let p=e=>vv(s,o,e),m=gv(n.topology),h=_v(m?.vertexPoints),g=_v(m?.offsets),_=_v(m?.kinds),v=_v(m?.closed);if(!h||!g||!_||!v||g.length!==i+1||_.length!==i||v.length!==i||g[0]!==0||g[g.length-1]!==h.length)return null;let y=new Uint8Array(r);for(let e=0;e<h.length;e+=1){let t=h[e];if(!Number.isSafeInteger(t)||t<0||t>=r)return null;y[t]=1}let b=[],x=Math.max(1,Math.floor(t/Math.max(i,1)));for(let e=0;e<i&&b.length<t;e+=1){let t=g[e],n=g[e+1],r=_[e],i=v[e];if(!Number.isSafeInteger(t)||!Number.isSafeInteger(n)||t<0||n<t||n>h.length||!Number.isSafeInteger(r)||r<0||r>3||i!==0&&i!==1)return null;let a=n-t,o=e=>p(h[t+e]),s;if(r===mv){let e=i?a/3:(a-1)/3;if(!Number.isSafeInteger(e)||e<1)return null;s=[];for(let t=0;t<e;t+=1){let n=t*3,r=[o(n),o(n+1),o(n+2),o((n+3)%a)];if(r.some(e=>!e))return null;let i=Math.max(2,Math.min(16,Math.floor(x/Math.max(e,1))));for(let e=t===0?0:1;e<=i;e+=1)s.push(yv(r[0],r[1],r[2],r[3],e/i))}}else{let e=Math.min(a,x);s=[];for(let t=0;t<e;t+=1){let n=o(Math.floor(t*a/e));if(!n)return null;s.push(n)}i===1&&s.length>1&&s.push(s[0])}s.length>0&&b.push(s)}let S=[],C=Math.max(0,Math.floor(t));if(C>0){let e=r-y.reduce((e,t)=>e+t,0),t=Math.max(1,e/C),n=0,i=0;for(let e=0;e<r&&S.length<C;e+=1)if(!y[e]){if(n>=i){let n=p(e);n&&S.push(n),i+=t}n+=1}}return{bounds:c,points:S,paths:b,summary:`${r} ${r===1?`point`:`points`} · ${i} ${i===1?`primitive`:`primitives`}`}}var xv=/\.(png|jpe?g|webp|gif|tiff?|avif|svg|npy)$/i,Sv=1200;function Cv(e){if(typeof e==`number`)return Number.isInteger(e)?`int`:`float`;if(typeof e==`boolean`)return`bool`;if(typeof e==`string`)return xv.test(e)?`image`:`string`;if($l(e))return`image`;if(typeof e==`object`&&e&&e.kind===`geometry`)return`geometry`;if(Array.isArray(e)){if(e.every(e=>typeof e==`number`)){if(e.length===2)return`vec2`;if(e.length===3)return`vec3`;if(e.length===4)return`vec4`;if(e.length===9)return`mat3`;if(e.length===16)return`mat4`}return`array`}return typeof e==`object`&&e?`object`:`any`}function wv(e,t={}){if(/^(https?:|data:|blob:)/.test(e))return e;let n=e.replace(/^\.?\//,``),r=n.split(`/`).map(encodeURIComponent).join(`/`),i=new URLSearchParams;t.raw||/\.svg$/i.test(n)?i.set(`raw`,`1`):t.width&&i.set(`w`,String(t.width)),t.version&&i.set(`v`,String(t.version));let a=i.toString();return`/api/media/${r}${a?`?${a}`:``}`}function Tv(e,t=0){let n=Number(e);return Number.isFinite(n)?n:t}function Ev(e,t=0){return Math.max(0,Math.min(1,Tv(e,t)))}function Dv(e){if(Array.isArray(e))return[Ev(e[0]),Ev(e[1]),Ev(e[2]),Ev(e[3],1)];if(e&&typeof e==`object`){let t=e;return[Ev(t.r),Ev(t.g),Ev(t.b),Ev(t.a,1)]}if(typeof e==`string`){let t=/^#([\da-f]{6})([\da-f]{2})?$/i.exec(e.trim());if(t){let e=t[1];return[parseInt(e.slice(0,2),16)/255,parseInt(e.slice(2,4),16)/255,parseInt(e.slice(4,6),16)/255,t[2]?parseInt(t[2],16)/255:1]}}return[0,0,0,1]}function Ov(e){let[t,n,r,i]=Dv(e);return`rgba(${Math.round(t*255)}, ${Math.round(n*255)}, ${Math.round(r*255)}, ${Number(i.toFixed(3))})`}function kv(e){let[t,n,r]=Dv(e),i=e=>Math.round(e*255).toString(16).padStart(2,`0`);return`#${i(t)}${i(n)}${i(r)}`}function Av(e,t){if(e===void 0)return`—`;if(e===null)return`null`;let n=eu(e);if(t===`image`&&n){let[e,t]=n.size;return`${e||`?`}×${t||`?`} · ${n.channels} · ${n.depth} · ${n.space}`}if(t===`texture`&&typeof e==`object`){let t=e,n=t.size??[t.width,t.height];return`${Array.isArray(n)?`${n[0]??`?`}×${n[1]??`?`}`:`?×?`} · ${t.format??(t.float?`float`:`GPU texture`)} · browser session`}if([`geometry`,`points`,`lines`,`polyline`,`mesh`,`rects`].includes(t))return Pv(e,t).countLabel;if(Array.isArray(e))return`${e.length} ${e.length===1?`item`:`items`}`;if(typeof e==`object`){let t=Object.keys(e);return`{${t.slice(0,4).join(`, `)}${t.length>4?`, …`:``}}`}let r=String(e);return r.length>100?`${r.slice(0,97)}…`:r}function jv(e){if(!Array.isArray(e)||e.length<2)return null;let t=Number(e[0]),n=Number(e[1]);return Number.isFinite(t)&&Number.isFinite(n)?[t,n]:null}function Mv(e){return Array.isArray(e)?e.slice(0,Sv).map(jv).filter(e=>!!e):[]}function Nv(e,t){return t&&e.length>1?[...e,e[0]]:e}function Pv(e,t){let n={countLabel:`No geometry`,bounds:null,points:[],paths:[],rects:[]},r=e;if(t===`geometry`){let t=bv(e,Sv);return t?(n.points=t.points,n.paths=t.paths,n.bounds=t.bounds,n.countLabel=t.summary,n):n}if(t===`points`)n.points=Mv(Array.isArray(r)?r:r?.points),n.countLabel=`${n.points.length} ${n.points.length===1?`point`:`points`}`;else if(t===`lines`){let e=Array.isArray(r)?r:r?.lines;Array.isArray(e)&&(n.paths=e.slice(0,Sv).map(e=>Mv(e)).filter(e=>e.length>=2)),n.countLabel=`${n.paths.length} ${n.paths.length===1?`segment`:`segments`}`}else if(t===`polyline`){n.paths=(Array.isArray(r)&&jv(r[0])?[{points:r}]:Array.isArray(r)?r:[r]).slice(0,Sv).map(e=>Nv(Mv(e?.points??e),!!e?.closed)).filter(e=>e.length>0);let e=n.paths.reduce((e,t)=>e+t.length,0);n.countLabel=`${n.paths.length} ${n.paths.length===1?`chain`:`chains`} · ${e} vertices`}else if(t===`mesh`){let e=Array.isArray(r?.positions)?r.positions:[],t=[];for(let n=0;n+1<e.length&&t.length<Sv;n+=3){let r=jv([e[n],e[n+1]]);r&&t.push(r)}let i=Array.isArray(r?.indices)?r.indices:[];for(let e=0;e+2<i.length&&n.paths.length<Sv;e+=3){let r=[t[i[e]],t[i[e+1]],t[i[e+2]]];r.every(Boolean)&&n.paths.push([...r,r[0]])}n.points=t,n.countLabel=`${Math.floor(e.length/3)} vertices · ${Math.floor(i.length/3)} ${i.length===3?`triangle`:`triangles`}`}else if(t===`rects`){let e=Array.isArray(r)?r:r?.rects;Array.isArray(e)&&(n.rects=e.slice(0,Sv).map(e=>({x:Tv(Array.isArray(e)?e[0]:e?.x),y:Tv(Array.isArray(e)?e[1]:e?.y),width:Tv(Array.isArray(e)?e[2]:e?.width),height:Tv(Array.isArray(e)?e[3]:e?.height)}))),n.countLabel=`${n.rects.length} ${n.rects.length===1?`rect`:`rects`}`}let i=[...n.points,...n.paths.flat(),...n.rects.flatMap(e=>[[e.x,e.y],[e.x+e.width,e.y+e.height]])];return i.length>0&&(n.bounds={min:[Math.min(...i.map(e=>e[0])),Math.min(...i.map(e=>e[1]))],max:[Math.max(...i.map(e=>e[0])),Math.max(...i.map(e=>e[1]))]}),n}var Fv=m(`<rect class="svelte-k5ygks"></rect>`),Iv=m(`<polyline class="svelte-k5ygks"></polyline>`),Lv=m(`<circle class="svelte-k5ygks"></circle>`),Rv=m(`<svg role="img" preserveAspectRatio="xMidYMid meet" class="svelte-k5ygks"><!><!><!></svg>`),zv=u(`<div class="empty svelte-k5ygks">No previewable geometry</div>`),Bv=u(`<span> </span>`),Vv=u(`<div class="geometry-preview svelte-k5ygks"><!> <div class="meta svelte-k5ygks"><span> </span> <!></div></div>`);function Hv(e,t){ee(t,!1);let n=Y(),r=Y(),i=Y(),a=Y(),s=Y(),c=Y(),l=Y(),u=Y(),d=V(t,`value`,8),p=V(t,`type`,8);J(()=>(A(d()),A(p())),()=>{L(n,Pv(d(),p()))}),J(()=>x(n),()=>{L(r,x(n).bounds?.min[0]??0)}),J(()=>x(n),()=>{L(i,x(n).bounds?.min[1]??0)}),J(()=>(x(n),x(r)),()=>{L(a,Math.max(x(n).bounds?x(n).bounds.max[0]-x(r):1,1e-6))}),J(()=>(x(n),x(i)),()=>{L(s,Math.max(x(n).bounds?x(n).bounds.max[1]-x(i):1,1e-6))}),J(()=>(x(a),x(s)),()=>{L(c,Math.max(x(a),x(s))*.04)}),J(()=>(x(r),x(c),x(i),x(a),x(s)),()=>{L(l,`${x(r)-x(c)} ${x(i)-x(c)} ${x(a)+x(c)*2} ${x(s)+x(c)*2}`)}),J(()=>(x(a),x(s)),()=>{L(u,Math.max(x(a),x(s))*.008)}),he(),ue();var m=Vv(),g=M(m),_=e=>{var t=Rv(),r=M(t);f(r,1,()=>(x(n),F(()=>x(n).rects)),h,(e,t)=>{var n=Fv();K(()=>{X(n,`x`,(x(t),F(()=>x(t).x))),X(n,`y`,(x(t),F(()=>x(t).y))),X(n,`width`,(x(t),F(()=>x(t).width))),X(n,`height`,(x(t),F(()=>x(t).height)))}),E(e,n)});var i=P(r);f(i,1,()=>(x(n),F(()=>x(n).paths)),h,(e,t)=>{var n=Iv();K(e=>X(n,`points`,e),[()=>(x(t),F(()=>x(t).map(e=>e.join(`,`)).join(` `)))]),E(e,n)});var a=P(i);f(a,1,()=>(x(n),F(()=>x(n).points)),h,(e,t)=>{var n=Lv();K(()=>{X(n,`cx`,(x(t),F(()=>x(t)[0]))),X(n,`cy`,(x(t),F(()=>x(t)[1]))),X(n,`r`,x(u))}),E(e,n)}),o(t),K(()=>{X(t,`viewBox`,x(l)),X(t,`aria-label`,`${p()??``} preview`)}),E(e,t)},v=e=>{var t=zv();E(e,t)};Z(g,e=>{x(n),F(()=>x(n).bounds)?e(_):e(v,-1)});var y=P(g,2),b=M(y),S=q(b,!0),C=P(b,2),w=e=>{var t=Bv(),n=q(t);K((e,t)=>D(n,`${e??``}×${t??``}`),[()=>(x(a),F(()=>Number(x(a).toFixed(2)))),()=>(x(s),F(()=>Number(x(s).toFixed(2))))]),E(e,t)};Z(C,e=>{x(n),F(()=>x(n).bounds)&&e(w)}),o(y),o(m),K(()=>D(S,(x(n),F(()=>x(n).countLabel)))),E(e,m),Ee()}var Uv=u(`<button class="twisty svelte-1juqkku"> </button>`),Wv=u(`<span class="twisty spacer svelte-1juqkku"></span>`),Gv=u(`<span class="key svelte-1juqkku"> </span>`),Kv=u(`<span class="count svelte-1juqkku"> </span>`),qv=u(`<span> </span>`),Jv=u(`<button class="more svelte-1juqkku"> </button>`),Yv=u(`<!> <!>`,1),Xv=u(`<div class="row svelte-1juqkku"><!> <!> <!></div> <!>`,1);function Zv(e,t){ee(t,!1);let n=Y(),r=Y(),i=Y(),s=Y(),c=Y(),l=V(t,`value`,8),u=V(t,`name`,8,null),d=V(t,`depth`,8,0),p=V(t,`expanded`,28,()=>d()<1),m=Y(50);function h(e){return e===null?`null`:e===void 0?`undefined`:Array.isArray(e)?e.length<=4&&e.every(e=>typeof e==`number`)?`[${e.map(e=>Number.isInteger(e)?e:Number(e.toFixed(4))).join(`, `)}]`:`Array(${e.length})`:typeof e==`object`?`{${Object.keys(e).length}}`:typeof e==`string`?e.length>48?`"${e.slice(0,45)}…"`:`"${e}"`:String(typeof e==`number`?Number.isInteger(e)?e:Number(e.toFixed(6)):e)}function g(e){return e==null?`null`:typeof e==`number`?`number`:typeof e==`string`?`string`:typeof e==`boolean`?`boolean`:`plain`}J(()=>A(l()),()=>{L(n,Array.isArray(l()))}),J(()=>(A(l()),x(n)),()=>{L(r,l()!==null&&typeof l()==`object`&&!x(n))}),J(()=>(x(n),x(r)),()=>{L(i,x(n)||x(r))}),J(()=>(x(n),A(l()),x(r)),()=>{L(s,x(n)?l().map((e,t)=>[String(t),e]):x(r)?Object.entries(l()):[])}),J(()=>(x(s),x(m)),()=>{L(c,x(s).slice(0,x(m)))}),he(),ue();var _=Xv(),y=G(_),b=M(y),S=e=>{var t=Uv(),n=q(t,!0);K(()=>D(n,p()?`▾`:`▸`)),O(`click`,t,()=>p(!p())),E(e,t)},C=e=>{var t=Wv();E(e,t)};Z(b,e=>{x(i)?e(S):e(C,-1)});var w=P(b,2),T=e=>{var t=Gv(),n=q(t,!0);K(()=>D(n,u())),E(e,t)};Z(w,e=>{u()!==null&&e(T)});var k=P(w,2),ne=e=>{var t=Kv(),r=q(t,!0);K(()=>D(r,(x(n),x(s),F(()=>x(n)?`${x(s).length} items`:`${x(s).length} keys`)))),E(e,t)},j=e=>{var t=qv(),n=q(t,!0);K((e,r)=>{v(t,1,`value ${e??``}`,`svelte-1juqkku`),X(t,`title`,typeof l()==`string`?l():``),D(n,r)},[()=>(A(l()),F(()=>g(l()))),()=>(A(l()),F(()=>h(l())))]),E(e,t)};Z(k,e=>{x(i)?e(ne):e(j,-1)}),o(y);var re=P(y,2),N=e=>{var t=Yv(),n=G(t);f(n,1,()=>x(c),([e,t])=>e,(e,t)=>{var n=B(()=>U(x(t),2));let r=()=>x(n)[0],i=()=>x(n)[1];var a=te(),o=G(a);{let e=pe(()=>d()+1);Zv(o,{get value(){return i()},get name(){return r()},get depth(){return x(e)}})}E(e,a)});var r=P(n,2),i=e=>{var t=Jv(),n=q(t);K(()=>{a(t,`padding-left: ${(d()+1)*10}px`),D(n,`${x(s),x(m),F(()=>x(s).length-x(m))??``} more…`)}),O(`click`,t,()=>L(m,x(m)+200)),E(e,t)};Z(r,e=>{x(s),x(m),F(()=>x(s).length>x(m))&&e(i)}),E(e,t)};Z(re,e=>{x(i)&&p()&&e(N)}),K(()=>a(y,`padding-left: ${d()*10}px`)),E(e,_),Ee()}var Qv=u(`<div class="tree svelte-2vu630"><!></div>`),$v=u(`<div class="error svelte-2vu630" role="alert"> </div>`),ey=u(`<textarea spellcheck="false" class="svelte-2vu630"></textarea> <!> <div class="hint svelte-2vu630">Apply with blur or ⌘/Ctrl Enter</div>`,1);function ty(e,t){ee(t,!1);let n=V(t,`value`,8),r=V(t,`type`,8,`object`),i=V(t,`readOnly`,8,!1),a=V(t,`onChange`,8,null),s=Y(``),l=Y(),u=Y(``);function d(e){if(e===void 0)return``;try{return JSON.stringify(e,null,2)}catch{return String(e)}}function f(){if(!(i()||!a()))try{let e=JSON.parse(x(s));if(r()===`array`&&!Array.isArray(e)){L(u,`Expected an array`);return}if(r()===`object`&&(e===null||Array.isArray(e)||typeof e!=`object`)){L(u,`Expected an object`);return}L(u,``),L(l,e),a()(e)}catch{L(u,`Invalid JSON`)}}function p(e){(e.metaKey||e.ctrlKey)&&e.key===`Enter`&&(e.preventDefault(),f())}J(()=>(A(n()),x(l)),()=>{n()!==x(l)&&(L(l,n()),L(s,d(n())),L(u,``))}),he(),ue();var m=te(),h=G(m),g=e=>{var t=Qv();Zv(M(t),{get value(){return n()}}),o(t),E(e,t)},_=e=>{var t=ey(),n=G(t);z(n);var i=P(n,2),a=e=>{var t=$v(),n=q(t,!0);K(()=>D(n,x(u))),E(e,t)};Z(i,e=>{x(u)&&e(a)}),c(2),K(()=>X(n,`aria-label`,`${r()??``} JSON`)),Ce(n,()=>x(s),e=>L(s,e)),O(`blur`,n,f),O(`keydown`,n,p),E(e,t)};Z(h,e=>{i()?e(g):e(_,-1)}),E(e,m),Ee()}function ny(e,t,n,r){let i=e?.parameters.find(e=>e.name===t);if(!e||!i)throw Error(`Unknown parameter ${e?.id??`<missing>`}.${t}`);r?.(),e.setParameter(t,n)}async function ry(e=fetch){let t=await e(`/api/panels`);if(!t.ok)throw Error(`Cannot list project panels (${t.status})`);let n=await t.json();return Array.isArray(n.panels)?n.panels:[]}async function iy(e){let t=await od(()=>import(`/api/panels/${encodeURIComponent(e)}/compiled`),[]);if(typeof t.mount!=`function`)throw Error(`Project panel "${e}" must export mount(element, api)`);return t}var ay;async function oy(){return ay??=fetch(`/api/exec/capability`,{cache:`no-store`}).then(async e=>{if(!e.ok)throw Error(`Cascade project execution capability is unavailable`);return(await e.json()).capability}).catch(e=>{throw ay=void 0,e}),ay}async function sy(e,t){let n=n=>fetch(`/api/exec`,{method:`POST`,headers:{"Content-Type":`application/json`,"X-Cascade-Exec-Capability":n},body:JSON.stringify({stage:e,args:t})}),r=await n(await oy());r.status===403&&(ay=void 0,r=await n(await oy()));let i=await r.json();if(!r.ok||!i.ok)throw Error(`Stage "${e}" failed: ${i.stderr||i.error||`unknown error`}`);let a=String(i.stdout).trim().split(`
|
|
202
|
-
`).pop()??`{}`;return JSON.parse(a)}function cy(e){let t=t=>e.context()?.graph?.getNode(t)??null;return{runStage:e.runStage??sy,mediaUrl:wv,getParam(e,n){return t(e)?.parameters.find(e=>e.name===n)?.value},setParam(n,r,i){let a=t(n),o=a?.parameters.find(e=>e.name===r);if(!a||!o)throw Error(`Unknown parameter ${n}.${r}`);ny(a,r,i,e.context()?.onRecordHistory)},selectedNodeId(){return e.context()?.selectedNode?.id??null},sourceNodeId:e.sourceNodeId??null,signal:e.signal??new AbortController().signal,close:e.close}}var ly=u(`<span class="renderer-error svelte-qxatjj" role="alert"> </span>`),uy=u(`<div></div>`);function dy(e,t){ee(t,!1);let n=Y(),r=V(t,`panelName`,8),i=V(t,`rendererType`,8),a=V(t,`value`,8),o=V(t,`readOnly`,8,!0),s=V(t,`mode`,8,`inspect`),c=V(t,`onChange`,8,null),l=V(t,`loader`,8,iy),u=Y(),d=Y(null),f=Y(``);ye(()=>{let e=!1,t=null;return l()(r()).then(async a=>{if(e)return;let o=a.renderers?.[i()];if(!o)throw Error(`Project module "${r()}" does not export renderer "${i()}"`);let s=await o.mount(x(u),x(n));typeof s==`function`?t=s:s&&L(d,s),e&&(t?.(),x(d)?.dispose())}).catch(t=>{e||L(f,t instanceof Error?t.message:String(t))}),()=>{e=!0,t?.(),x(d)?.dispose()}}),J(()=>(A(a()),A(o()),A(s()),A(c())),()=>{L(n,{value:a(),readOnly:o(),mode:s(),onChange:c()})}),J(()=>(x(d),x(n)),()=>{x(d)?.update?.(x(n))}),he(),ue();var p=te(),m=G(p),h=e=>{var t=ly(),n=q(t,!0);K(()=>D(n,x(f))),E(e,t)},g=e=>{var t=uy();ge(t,e=>L(u,e),()=>x(u)),E(e,t)};Z(m,e=>{x(f)?e(h):e(g,-1)}),E(e,p),Ee()}var fy=new Map;function py(e,t){fy.set(e,{kind:`svelte`,component:t})}function my(e,t){fy.set(e,{kind:`project`,component:dy,panelName:t,rendererType:e})}function hy(e){return e?fy.get(e)??null:null}py(`object`,Zv),py(`array`,Zv);var gy=u(`<input type="number" class="cell svelte-1b37oh8"/>`),_y=u(`<button class="reset svelte-1b37oh8">Identity</button>`),vy=u(`<div class="matrix svelte-1b37oh8"></div> <!>`,1),yy=u(`<span class="swatch svelte-1b37oh8"></span>`),by=u(`<input aria-label="Color" type="color" class="svelte-1b37oh8"/>`),xy=u(`<label class="component svelte-1b37oh8"><span class="svelte-1b37oh8"> </span> <input type="number" min="0" max="1" step="0.01" class="svelte-1b37oh8"/></label>`),Sy=u(`<div class="vector svelte-1b37oh8"></div>`),Cy=u(`<div class="color-row svelte-1b37oh8"><!> <span class="color-css svelte-1b37oh8"> </span></div> <!>`,1),wy=u(`<label class="component svelte-1b37oh8"><span class="svelte-1b37oh8"> </span> <input type="number" class="svelte-1b37oh8"/></label>`),Ty=u(`<option> </option>`),Ey=u(`<select class="single svelte-1b37oh8"></select>`),Dy=u(`<label class="boolean svelte-1b37oh8"><input type="checkbox" class="svelte-1b37oh8"/> </label>`),Oy=u(`<div class="slider-row svelte-1b37oh8"><input type="range" class="svelte-1b37oh8"/> <input type="number" class="slider-number svelte-1b37oh8"/></div>`),ky=u(`<input type="number" class="single svelte-1b37oh8"/>`),Ay=u(`<pre class="text-value svelte-1b37oh8"> </pre>`),jy=u(`<input aria-label="string" type="text" class="single svelte-1b37oh8"/>`),My=u(`<img loading="lazy" class="svelte-1b37oh8"/> <div class="meta svelte-1b37oh8"> </div> <div class="path svelte-1b37oh8"> </div>`,1),Ny=u(`<div class="summary svelte-1b37oh8">No image reference</div>`),Py=u(`<input aria-label="image path" type="text" class="single svelte-1b37oh8"/>`),Fy=u(`<div class="structured svelte-1b37oh8"><!></div>`),Iy=u(`<div class="image svelte-1b37oh8"><!> <!></div>`),Ly=u(`<div class="texture"><div class="meta svelte-1b37oh8"> </div> <div class="notice svelte-1b37oh8">Live browser resource · convert to image to cross runtimes</div></div>`),Ry=u(`<!> <!>`,1),zy=u(`<input aria-label="asset path" type="text" class="single svelte-1b37oh8"/>`),By=u(`<div class="summary svelte-1b37oh8"> </div>`),Vy=u(`<div><!></div>`);function Hy(e,t){ee(t,!1);let n=Y(),i=Y(),l=Y(),u=Y(),d=Y(),p=Y(),m=Y(),_=Y(),y=Y(),b=Y(),S=Y(),w=Y(),k=Y(),ne=Y(),j=V(t,`type`,8,`any`),N=V(t,`value`,8),ie=V(t,`mode`,8,`inspect`),ae=V(t,`readOnly`,8,!1),oe=V(t,`port`,8,null),I=V(t,`node`,8,null),R=V(t,`onChange`,8,null),z=V(t,`version`,8,0),se=new Set([`geometry`,`points`,`lines`,`polyline`,`mesh`,`rects`]);function ce(e){if(!Number.isFinite(e))return x(y).min;let t=Math.min(x(y).max,Math.max(x(y).min,e));return x(i)===`int`?Math.round(t):t}function le(e){!ae()&&R()&&R()(e)}function H(e,t){let n=Number(t);if(!Number.isFinite(n))return;let r=Array.isArray(N())?[...N()]:Array(x(l)).fill(0),i=x(b)?ce(n):n;r[e]=x(p)?Math.round(i):i,le(r)}function U(){let e=Array(x(l)).fill(0);for(let t=0;t<x(d);t++)e[t*x(d)+t]=1;le(e)}function de(e,t){let n=[...x(ne)];n[e]=Math.max(0,Math.min(1,Number(t))),le(n)}function fe(e){let t=Dv(e);t[3]=x(ne)[3],le(t)}function me(e){let t=x(S).find(t=>String(t.value)===e);t&&le(t.value)}J(()=>A(j()),()=>{L(n,Yl(j()))}),J(()=>(x(n),A(N())),()=>{L(i,x(n)===`any`?Cv(N()):x(n))}),J(()=>x(i),()=>{L(l,ql[x(i)]??0)}),J(()=>x(i),()=>{L(u,x(i).startsWith(`mat`))}),J(()=>(x(u),x(l)),()=>{L(d,x(u)?Math.sqrt(x(l)):0)}),J(()=>x(i),()=>{L(p,Jl(x(i)))}),J(()=>(x(i),x(l)),()=>{L(m,x(i)===`color`?[`R`,`G`,`B`,`A`]:[`X`,`Y`,`Z`,`W`].slice(0,x(l)))}),J(()=>(A(ae()),x(i),hy),()=>{L(_,!ae()&&(x(i)===`object`||x(i)===`array`)?null:hy(x(i)))}),J(()=>(A(oe()),x(i)),()=>{L(y,{min:Number(oe()?.options?.min),max:Number(oe()?.options?.max),step:oe()?.options?.step??(x(i)===`int`?1:`any`)})}),J(()=>x(y),()=>{L(b,Number.isFinite(x(y).min)&&Number.isFinite(x(y).max)&&x(y).max>x(y).min)}),J(()=>A(oe()),()=>{L(S,Array.isArray(oe()?.options?.choices)?oe().options.choices:[])}),J(()=>(x(i),A(N())),()=>{L(w,x(i)===`image`?eu(N()):null)}),J(()=>(x(w),A(ie()),A(z())),()=>{L(k,x(w)?wv(x(w).path,{width:ie()===`view`?1800:320,version:z()}):``)}),J(()=>A(N()),()=>{L(ne,Dv(N()))}),he(),ue();var W=Vy(),ge=M(W),_e=e=>{var t=te(),n=G(t),r=e=>{var t=te(),n=G(t);{let e=pe(()=>ae()?null:le);g(n,()=>x(_).component,(t,n)=>{n(t,{get value(){return N()},get readOnly(){return ae()},get mode(){return ie()},get onChange(){return x(e)},get panelName(){return x(_),F(()=>x(_).panelName)},get rendererType(){return x(_),F(()=>x(_).rendererType)}})})}E(e,t)},i=e=>{var t=te(),n=G(t);{let e=pe(()=>ae()?null:le);g(n,()=>x(_).component,(t,n)=>{n(t,{get value(){return N()},get port(){return oe()},get readOnly(){return ae()},get mode(){return ie()},get node(){return I()},get onChange(){return x(e)}})})}E(e,t)};Z(n,e=>{x(_),F(()=>x(_).kind===`project`)?e(r):e(i,-1)}),E(e,t)},ve=e=>{var t=vy(),n=G(t);f(n,5,()=>(x(l),F(()=>Array(x(l)))),h,(e,t,n)=>{var i=gy();re(i),K((e,t)=>{X(i,`aria-label`,`Row ${e??``}, column ${n%x(d)+1}`),i.disabled=ae(),r(i,t)},[()=>(x(d),F(()=>Math.floor(n/x(d))+1)),()=>(A(N()),F(()=>Array.isArray(N())?N()[n]??0:0))]),O(`change`,i,e=>H(n,e.currentTarget.value)),E(e,i)}),o(n);var i=P(n,2),s=e=>{var t=_y();O(`click`,t,U),E(e,t)};Z(i,e=>{ae()||e(s)}),K(()=>a(n,`grid-template-columns: repeat(${x(d)??``}, minmax(0, 1fr))`)),E(e,t)},ye=e=>{var t=Cy(),n=G(t),i=M(n),s=e=>{var t=yy();K(e=>a(t,`background:${e??``}`),[()=>(A(Ov),x(ne),F(()=>Ov(x(ne))))]),E(e,t)},c=e=>{var t=by();re(t),K(e=>r(t,e),[()=>(A(kv),x(ne),F(()=>kv(x(ne))))]),O(`input`,t,e=>fe(e.currentTarget.value)),E(e,t)};Z(i,e=>{ae()?e(s):e(c,-1)});var l=P(i,2),u=q(l,!0);o(n);var d=P(n,2),p=e=>{var t=Sy();f(t,5,()=>x(ne),h,(e,t,n)=>{var i=xy(),a=M(i),s=q(a,!0),c=P(a,2);re(c),o(i),K(()=>{D(s,(x(m),F(()=>x(m)[n]))),X(c,`aria-label`,(x(m),F(()=>x(m)[n]))),c.disabled=ae(),r(c,x(t))}),O(`change`,c,e=>de(n,e.currentTarget.value)),E(e,i)}),o(t),E(e,t)};Z(d,e=>{(!ae()||ie()===`view`)&&e(p)}),K(e=>D(u,e),[()=>(A(Ov),x(ne),F(()=>Ov(x(ne))))]),E(e,t)},be=e=>{var t=Sy();f(t,5,()=>(x(l),F(()=>Array(x(l)))),h,(e,t,n)=>{var i=wy(),a=M(i),s=q(a,!0),c=P(a,2);re(c),o(i),K((e,t,i)=>{D(s,(x(m),F(()=>x(m)[n]))),X(c,`aria-label`,(x(m),F(()=>x(m)[n]))),X(c,`min`,e),X(c,`max`,t),X(c,`step`,(A(oe()),x(p),F(()=>oe()?.options?.step??(x(p)?1:`any`)))),c.disabled=ae(),r(c,i)},[()=>(x(y),F(()=>Number.isFinite(x(y).min)?x(y).min:void 0)),()=>(x(y),F(()=>Number.isFinite(x(y).max)?x(y).max:void 0)),()=>(A(N()),F(()=>Array.isArray(N())?N()[n]??0:0))]),O(`change`,c,e=>H(n,e.currentTarget.value)),E(e,i)}),o(t),E(e,t)},xe=e=>{var t=Ey();f(t,5,()=>x(S),h,(e,t)=>{var n=Ty(),r=q(n,!0),i={};K(e=>{D(r,(x(t),F(()=>x(t).label))),i!==(i=e)&&(n.value=(n.__value=i)??``)},[()=>(x(t),F(()=>String(x(t).value)))]),E(e,n)}),o(t);var n;T(t),K(e=>{X(t,`aria-label`,(A(oe()),F(()=>oe()?.name??`choice`))),t.disabled=ae(),n!==(n=e)&&(t.value=(t.__value=n)??``,s(t,n))},[()=>(A(N()),F(()=>String(N()??``)))]),O(`change`,t,e=>me(e.currentTarget.value)),E(e,t)},Se=e=>{var t=Dy(),n=M(t);re(n);var r=P(n);o(t),K((e,t)=>{n.disabled=ae(),C(n,e),D(r,` ${t??``}`)},[()=>(A(N()),F(()=>!!N())),()=>(A(N()),F(()=>N()?`true`:`false`))]),O(`change`,n,e=>le(e.currentTarget.checked)),E(e,t)},Ce=e=>{var t=Oy(),n=M(t);re(n);var a=P(n,2);re(a),o(t),K(()=>{X(n,`aria-label`,x(i)),X(n,`min`,(x(y),F(()=>x(y).min))),X(n,`max`,(x(y),F(()=>x(y).max))),X(n,`step`,(x(y),F(()=>x(y).step))),n.disabled=ae(),r(n,(A(N()),x(y),F(()=>N()??x(y).min))),X(a,`aria-label`,`${x(i)??``} value`),X(a,`min`,(x(y),F(()=>x(y).min))),X(a,`max`,(x(y),F(()=>x(y).max))),X(a,`step`,(x(y),F(()=>x(y).step))),a.disabled=ae(),r(a,(A(N()),x(y),F(()=>N()??x(y).min)))}),O(`input`,n,e=>le(ce(Number(e.currentTarget.value)))),O(`change`,a,e=>le(ce(Number(e.currentTarget.value)))),E(e,t)},we=e=>{var t=ky();re(t),K(()=>{X(t,`aria-label`,x(i)),X(t,`step`,x(i)===`int`?1:`any`),t.disabled=ae(),r(t,N()??0)}),O(`change`,t,e=>le(x(i)===`int`?Math.round(Number(e.currentTarget.value)):Number(e.currentTarget.value))),E(e,t)},Te=e=>{var t=te(),n=G(t),i=e=>{var t=Ay(),n=q(t,!0);K(()=>D(n,N()??``)),E(e,t)},a=e=>{var t=jy();re(t),K(()=>{t.disabled=ae(),r(t,N()??``)}),O(`change`,t,e=>le(e.currentTarget.value)),E(e,t)};Z(n,e=>{ie()===`view`&&ae()?e(i):e(a,-1)}),E(e,t)},De=e=>{var t=Iy(),n=M(t),a=e=>{var t=My(),n=G(t),r=P(n,2),a=q(r,!0),o=P(r,2),s=q(o,!0);K(e=>{X(n,`src`,x(k)),X(n,`alt`,(x(w),F(()=>x(w).path))),D(a,e),X(o,`title`,(x(w),F(()=>x(w).path))),D(s,(x(w),F(()=>x(w).path)))},[()=>(A(Av),x(w),x(i),F(()=>Av(x(w),x(i))))]),E(e,t)},s=e=>{var t=Ny();E(e,t)};Z(n,e=>{x(w)?e(a):e(s,-1)});var c=P(n,2),l=e=>{var t=Fy(),n=M(t),i=e=>{var t=Py();re(t),K(()=>r(t,N())),O(`change`,t,e=>le(e.currentTarget.value)),E(e,t)},a=e=>{ty(e,{get value(){return N()},type:`image`,get onChange(){return R()}})};Z(n,e=>{typeof N()==`string`?e(i):e(a,-1)}),o(t),E(e,t)};Z(c,e=>{ae()||e(l)}),o(t),E(e,t)},Oe=e=>{var t=Ly(),n=M(t),r=q(n,!0);c(2),o(t),K(e=>D(r,e),[()=>(A(Av),A(N()),x(i),F(()=>Av(N(),x(i))))]),E(e,t)},ke=e=>{var t=Ry(),n=G(t);Hv(n,{get value(){return N()},get type(){return x(i)}});var r=P(n,2),a=e=>{var t=Fy();ty(M(t),{get value(){return N()},get type(){return x(i)},get onChange(){return R()}}),o(t),E(e,t)};Z(r,e=>{ae()||e(a)}),E(e,t)},Ae=B(()=>(x(i),F(()=>se.has(x(i))))),je=e=>{var t=zy();re(t),K(()=>{t.disabled=ae(),r(t,N())}),O(`change`,t,e=>le(e.currentTarget.value)),E(e,t)},Me=e=>{ty(e,{get value(){return N()},get type(){return x(i)},get readOnly(){return ae()},get onChange(){return R()}})},Ne=e=>{var t=By(),n=q(t,!0);K(e=>D(n,e),[()=>(A(Av),A(N()),x(i),F(()=>Av(N(),x(i))))]),E(e,t)};Z(ge,e=>{x(_)?e(_e):x(u)?e(ve,1):x(i)===`color`?e(ye,2):x(l)>0?e(be,3):(x(S),F(()=>x(S).length>0)?e(xe,4):x(i)===`bool`?e(Se,5):(x(i)===`float`||x(i)===`int`)&&x(b)?e(Ce,6):x(i)===`float`||x(i)===`int`?e(we,7):x(i)===`string`?e(Te,8):x(i)===`image`?e(De,9):x(i)===`texture`?e(Oe,10):x(Ae)?e(ke,11):x(i)===`asset`&&typeof N()==`string`?e(je,12):x(i)===`array`||x(i)===`object`||x(i)===`any`||x(i)===`asset`?e(Me,13):e(Ne,-1))}),o(W),K(()=>{v(W,1,`core-value mode-${ie()??``}`,`svelte-1b37oh8`),X(W,`data-type`,x(i))}),E(e,W),Ee()}var Uy=u(`<div class="source svelte-1boj9ce"> </div>`),Wy=u(`<div><div class="row svelte-1boj9ce"><span class="dot svelte-1boj9ce"></span> <span class="name svelte-1boj9ce"> </span></div> <!> <div class="value svelte-1boj9ce"><!></div></div>`);function Gy(e,t){ee(t,!1);let n=Y(),r=Y(),i=Y(),s=Y(),c=Y(),l=V(t,`port`,8),u=V(t,`node`,8,null),d=V(t,`direction`,8,`input`),f=V(t,`onChange`,8,null);J(()=>A(l()),()=>{L(n,Yl(l()?.dataType))}),J(()=>A(l()),()=>{L(r,l()?.value)}),J(()=>(x(n),x(r)),()=>{L(i,x(n)===`any`?Cv(x(r)):x(n))}),J(()=>A(l()),()=>{L(s,(l()?.connections?.length??0)>0)}),J(()=>(A(d()),x(s)),()=>{L(c,d()===`output`||x(s))}),he(),ue();var p=Wy();let m;var h=M(p),g=M(h),_=P(g,2),y=q(_,!0);o(h);var b=P(h,2),S=e=>{var t=Uy(),n=q(t);K(()=>D(n,`from ${A(l()),F(()=>l().connections[0]?.from?.nodeId??`upstream`)??``}`)),E(e,t)};Z(b,e=>{x(s)&&d()===`input`&&e(S)});var C=P(b,2),w=M(C);{let e=pe(()=>x(c)?null:f());Hy(w,{get type(){return x(i)},get value(){return x(r)},get port(){return l()},get node(){return u()},mode:`inspect`,get readOnly(){return x(c)},get onChange(){return x(e)}})}o(C),o(p),K(e=>{m=v(p,1,`port-editor svelte-1boj9ce`,null,m,{"read-only":x(c)}),a(g,`background:${e??``}`),X(_,`title`,(A(l()),x(i),F(()=>`${l()?.name} · ${x(i)}`))),D(y,(A(l()),F(()=>l()?.name)))},[()=>(A(Ql),A(l()),F(()=>Ql(l()?.dataType)))]),E(e,p),Ee()}var Ky=u(`<div class="slider-wrapper svelte-368zap"><input type="range" class="slider svelte-368zap"/> <input type="text" inputmode="decimal" spellcheck="false" autocomplete="off" class="number-input svelte-368zap"/></div>`),qy=u(`<input type="text" inputmode="decimal" spellcheck="false" autocomplete="off" class="number-input-full svelte-368zap"/>`),Jy=u(`<div class="number-input-container svelte-368zap"><!></div>`);function Yy(e,t){ee(t,!1);let n=Y(),i=Y(),a=Y(),s=Y(),c=Y(),l=Y(),u=Y(),d=Y(),f=V(t,`prop`,8),p=V(t,`id`,8),m=V(t,`onValueChange`,8),h=V(t,`onExpressionChange`,8,null),g=Y(String(x(d))),_=Y(!1),v=/^[-+]?(\d+\.?\d*|\.\d+)([eE][-+]?\d+)?$/;function y(e){let t=e;return x(i)!==void 0&&t<x(i)&&(t=x(i)),x(a)!==void 0&&t>x(a)&&(t=x(a)),x(c)?Math.round(t):t}function b(e){let t=parseFloat(e.target.value);Number.isNaN(t)||m()(x(c)?Math.round(t):t)}function S(e){L(g,e.target.value);let t=x(g).trim();v.test(t)&&m()(y(Number(t)))}function C(){let e=x(g).trim();if(v.test(e)){m()(y(Number(e)));return}if(e&&h()){h()(e);return}L(g,String(x(d)))}function w(e){if(e.key===`ArrowUp`||e.key===`ArrowDown`){let t=x(g).trim();if(t&&!v.test(t))return;e.preventDefault();let r=v.test(t)?Number(t):x(n),i=(typeof x(s)==`number`?x(s):1)*(e.shiftKey?10:1),a=y(r+(e.key===`ArrowUp`?i:-i)),o=x(c)?a:Number(a.toFixed(6));L(g,String(o)),m()(o);return}e.key===`Enter`?(e.preventDefault(),C(),e.target.blur()):e.key===`Escape`&&(L(g,String(x(d))),e.target.blur())}function T(){L(_,!0)}function D(){L(_,!1),C()}J(()=>A(f()),()=>{L(n,typeof f().value==`number`?f().value:0)}),J(()=>A(f()),()=>{L(i,typeof f().params?.min==`number`?f().params.min:void 0)}),J(()=>A(f()),()=>{L(a,typeof f().params?.max==`number`?f().params.max:void 0)}),J(()=>A(f()),()=>{L(s,f().params?.step??(f().params?.integer?1:.01))}),J(()=>(A(f()),x(s)),()=>{L(c,f().params?.integer===!0||x(s)===1)}),J(()=>(x(i),x(a)),()=>{L(l,x(i)!==void 0&&x(a)!==void 0)}),J(()=>A(f()),()=>{L(u,typeof f().disabled==`function`?f().disabled():f().disabled)}),J(()=>(x(c),x(n)),()=>{L(d,x(c)?Math.round(x(n)):x(n))}),J(()=>(x(_),x(d)),()=>{x(_)||L(g,String(x(d)))}),he(),ue();var te=Jy(),k=M(te),ne=e=>{var t=Ky(),c=M(t);re(c);var l=P(c,2);re(l),o(t),K(()=>{X(c,`id`,p()),X(c,`min`,x(i)),X(c,`max`,x(a)),X(c,`step`,x(s)),r(c,x(n)),c.disabled=x(u),r(l,x(g)),l.disabled=x(u)}),O(`input`,c,b),O(`input`,l,S),O(`keydown`,l,w),O(`focus`,l,T),O(`blur`,l,D),E(e,t)},j=e=>{var t=qy();re(t),K(()=>{X(t,`id`,p()),r(t,x(g)),t.disabled=x(u)}),O(`input`,t,S),O(`keydown`,t,w),O(`focus`,t,T),O(`blur`,t,D),E(e,t)};Z(k,e=>{x(l)?e(ne):e(j,-1)}),o(te),E(e,te),Ee()}var Xy=u(`<input type="number" class="number-input svelte-zpm8xr"/>`),Zy=u(`<button class="preset-option svelte-zpm8xr"> </button>`),Qy=u(`<div class="preset-dropdown svelte-zpm8xr" role="menu" tabindex="-1"></div>`),$y=u(`<div class="preset-container svelte-zpm8xr"><button class="preset-button svelte-zpm8xr" title="Resolution presets"><svg width="12" height="12" viewBox="0 0 12 12" fill="none" stroke="currentColor" stroke-width="1.5"><path d="M2 3h8M2 6h8M2 9h8"></path></svg></button> <!></div>`),eb=m(`<path d="M3 5.5 V4 a3 3 0 0 1 6 0 v1.5 M6 8.5 v2 M2.5 5.5 h7 a1 1 0 0 1 1 1 v4 a1 1 0 0 1 -1 1 h-7 a1 1 0 0 1 -1 -1 v-4 a1 1 0 0 1 1 -1 z"></path>`),tb=m(`<path d="M3 5.5 V4 a3 3 0 0 1 6 0 v1.5 M6 8.5 v2 M2.5 5.5 h7 a1 1 0 0 1 1 1 v4 a1 1 0 0 1 -1 1 h-7 a1 1 0 0 1 -1 -1 v-4 a1 1 0 0 1 1 -1 z" stroke-dasharray="2 2"></path>`),nb=u(`<button><svg width="12" height="12" viewBox="0 0 12 12" fill="none" stroke="currentColor" stroke-width="1.5"><!></svg></button>`),rb=u(`<div class="vector-input-container svelte-zpm8xr"><div class="vector-row svelte-zpm8xr"><!> <!> <!></div></div>`);function ib(t,n){ee(n,!1);let i=Y(),a=Y(),s=Y(),c=Y(),l=Y(),u=Y(),d=Y(),p=V(n,`prop`,12),m=V(n,`id`,8),g=V(n,`onValueChange`,8),_=Y(Array.isArray(p().value)?[...p().value]:[0,0,0]),y=Y([]),b=Y(p().params?.locked??!1),S=Y(!1),C=Y(),w=Y(),T=[{label:`256 × 256`,value:[256,256]},{label:`512 × 512`,value:[512,512]},{label:`1024 × 1024`,value:[1024,1024]},{label:`2048 × 2048`,value:[2048,2048]},{label:`640 × 480`,value:[640,480]},{label:`1280 × 720`,value:[1280,720]},{label:`1920 × 1080`,value:[1920,1080]},{label:`3840 × 2160`,value:[3840,2160]}];function te(e){x(i)===2?g()([e[0],e[1]]):x(i)===3&&g()([e[0],e[1],x(_)[2]]),L(S,!1)}function k(e){x(w)&&!x(w).contains(e.target)&&x(C)&&!x(C).contains(e.target)&&L(S,!1)}function ne(e,t){let n=[...x(_)];if(x(u)&&(t=Math.round(t)),x(s)!==void 0){let n=Array.isArray(x(s))?x(s)[e]:x(s);n!==void 0&&t<n&&(t=n)}if(x(c)!==void 0){let n=Array.isArray(x(c))?x(c)[e]:x(c);n!==void 0&&t>n&&(t=n)}x(b)?n.fill(t):n[e]=t,g()(n)}function j(e,t){let n=e.target,r=parseFloat(n.value);if(isNaN(r)){n.value=String(x(_)[t]);return}ne(t,r)}function N(e,t){let n=e.target;(n.value===``||isNaN(parseFloat(n.value)))&&(n.value=String(x(_)[t]))}ye(()=>(document.addEventListener(`click`,k),()=>{document.removeEventListener(`click`,k)})),J(()=>(A(p()),x(_)),()=>{let e=p().value,t=Array.isArray(e)?[...e]:[0,0,0];JSON.stringify(x(_))!==JSON.stringify(t)&&L(_,t)}),J(()=>A(p()),()=>{L(l,p().params?.step??(p().params?.integer?1:.01))}),J(()=>(A(p()),x(l)),()=>{L(u,p().params?.integer===!0||x(l)===1)}),J(()=>(x(_),x(y),x(u)),()=>{x(_)&&e().then(()=>{x(_).forEach((e,t)=>{if(x(y)[t]){let n=x(u)?Math.round(e):e;x(y)[t].value!==String(n)&&!isNaN(n)&&oe(y,x(y)[t].value=String(n))}})})}),J(()=>x(_),()=>{L(i,x(_).length)}),J(()=>x(i),()=>{L(a,x(i)===2?[`X`,`Y`]:[`X`,`Y`,`Z`])}),J(()=>A(p()),()=>{L(s,typeof p().params?.min==`number`||Array.isArray(p().params?.min)?p().params.min:void 0)}),J(()=>A(p()),()=>{L(c,typeof p().params?.max==`number`||Array.isArray(p().params?.max)?p().params.max:void 0)}),J(()=>A(p()),()=>{L(d,typeof p().disabled==`function`?p().disabled():p().disabled)}),J(()=>A(p()),()=>{p().params?.locked!==void 0&&L(b,p().params.locked)}),he(),ue();var ie=rb(),ae=M(ie),R=M(ae);f(R,1,()=>(x(i),F(()=>Array(x(i)))),h,(e,t,n)=>{let i=pe(()=>(x(_),x(u),F(()=>x(_)[n]===void 0?0:x(u)?Math.round(x(_)[n]):x(_)[n])));pe(()=>(x(y),F(()=>x(y)[n])));var a=Xy();re(a),ge(a,(e,t)=>oe(y,x(y)[t]=e),e=>x(y)?.[e],()=>[n]),K((e,t)=>{X(a,`id`,`${m()??``}-${n}`),X(a,`min`,e),X(a,`max`,t),X(a,`step`,x(l)),r(a,x(i)),a.disabled=x(d)},[()=>(x(s),F(()=>x(s)===void 0?void 0:Array.isArray(x(s))?x(s)[n]:x(s))),()=>(x(c),F(()=>x(c)===void 0?void 0:Array.isArray(x(c))?x(c)[n]:x(c)))]),O(`input`,a,e=>j(e,n)),O(`blur`,a,e=>N(e,n)),E(e,a)});var z=P(R,2),se=e=>{var t=$y(),r=M(t);ge(r,e=>L(C,e),()=>x(C));var i=P(r,2),a=e=>{var t=Qy();f(t,5,()=>T,h,(e,t)=>{var n=Zy(),r=q(n,!0);K(()=>D(r,(x(t),F(()=>x(t).label)))),O(`click`,n,I(()=>te(x(t).value))),E(e,n)}),o(t),ge(t,e=>L(w,e),()=>x(w)),O(`click`,t,I(function(e){be.call(this,n,e)})),O(`keydown`,t,I(function(e){be.call(this,n,e)})),E(e,t)};Z(i,e=>{x(S)&&e(a)}),o(t),K(()=>r.disabled=x(d)),O(`click`,r,I(e=>{e.stopPropagation(),L(S,!x(S))})),E(e,t)};Z(z,e=>{x(i)===2&&e(se)});var B=P(z,2),ce=e=>{var t=nb();let n;var r=M(t),i=M(r),a=e=>{var t=eb();E(e,t)},s=e=>{var t=tb();E(e,t)};Z(i,e=>{x(b)?e(a):e(s,-1)}),o(r),o(t),K(()=>{n=v(t,1,`lock-button svelte-zpm8xr`,null,n,{locked:x(b)}),X(t,`title`,x(b)?`Unlock components`:`Lock components`),t.disabled=x(d)}),O(`click`,t,e=>{e.stopPropagation(),L(b,!x(b)),p().params&&p(p().params.locked=x(b),!0)}),E(e,t)};Z(B,e=>{x(i)>1&&e(ce)}),o(ae),o(ie),E(t,ie),Ee()}var ab=w(null),ob=u(`<div class="input-row svelte-1hwwwsb"><label class="svelte-1hwwwsb">H</label> <input type="number" min="0" max="360" class="number-input-small svelte-1hwwwsb"/> <input aria-label="Hue" type="range" min="0" max="360" step="1" class="slider-input svelte-1hwwwsb"/></div> <div class="input-row svelte-1hwwwsb"><label class="svelte-1hwwwsb">S</label> <input type="number" min="0" max="100" class="number-input-small svelte-1hwwwsb"/> <input aria-label="Saturation" type="range" min="0" max="100" step="1" class="slider-input svelte-1hwwwsb"/></div> <div class="input-row svelte-1hwwwsb"><label class="svelte-1hwwwsb">V</label> <input type="number" min="0" max="100" class="number-input-small svelte-1hwwwsb"/> <input aria-label="Value" type="range" min="0" max="100" step="1" class="slider-input svelte-1hwwwsb"/></div>`,1),sb=u(`<div class="input-row svelte-1hwwwsb"><label class="svelte-1hwwwsb">R</label> <input type="number" min="0" max="255" class="number-input-small svelte-1hwwwsb"/> <input aria-label="Red" type="range" min="0" max="255" step="1" class="slider-input svelte-1hwwwsb"/></div> <div class="input-row svelte-1hwwwsb"><label class="svelte-1hwwwsb">G</label> <input type="number" min="0" max="255" class="number-input-small svelte-1hwwwsb"/> <input aria-label="Green" type="range" min="0" max="255" step="1" class="slider-input svelte-1hwwwsb"/></div> <div class="input-row svelte-1hwwwsb"><label class="svelte-1hwwwsb">B</label> <input type="number" min="0" max="255" class="number-input-small svelte-1hwwwsb"/> <input aria-label="Blue" type="range" min="0" max="255" step="1" class="slider-input svelte-1hwwwsb"/></div>`,1),cb=u(`<button class="palette-swatch svelte-1hwwwsb"></button>`),lb=u(`<div class="picker-popover svelte-1hwwwsb" role="dialog" aria-label="Color picker" tabindex="-1"><div class="picker-header svelte-1hwwwsb"><button>HSV</button> <button>RGB</button></div> <div class="picker-content svelte-1hwwwsb"><div class="wheel-section svelte-1hwwwsb"><canvas class="color-wheel svelte-1hwwwsb"></canvas></div> <div class="inputs-section svelte-1hwwwsb"><!> <div class="input-row svelte-1hwwwsb"><label class="svelte-1hwwwsb">Hex</label> <input type="text" class="hex-input svelte-1hwwwsb"/></div></div> <div class="palette-section svelte-1hwwwsb"><div class="color-history svelte-1hwwwsb"><button class="history-swatch svelte-1hwwwsb" title="Swap with previous"></button> <button class="history-swatch svelte-1hwwwsb" aria-label="Current color"></button></div> <div class="palette-grid svelte-1hwwwsb"></div></div></div></div>`),ub=u(`<div class="color-picker-container svelte-1hwwwsb"><button class="color-swatch svelte-1hwwwsb" aria-label="Choose color"></button> <!></div>`);function db(e,t){ee(t,!1);let n=V(t,`prop`,8),i=V(t,`id`,8),s=V(t,`onValueChange`,8),c=Y(!1),l=null,u=Y(),d=Y(),p=Y(null),m=null,g=null,_=-1,y=null,b=Y(210),S=Y(1),C=Y(.5),w=Y(0),T=Y(.25),D=Y(.5),k=Y(`#003F7F`),ne=Y(`#000000`),j=Y(`hsv`),N=[[`#FF0000`,`#FF2000`,`#FF4000`,`#FF6000`,`#FF8000`,`#FFA000`,`#FFC000`,`#FFE000`,`#FFFF00`,`#E0FF00`,`#C0FF00`,`#A0FF00`,`#80FF00`,`#60FF00`,`#40FF00`,`#20FF00`],[`#00FF00`,`#00FF20`,`#00FF40`,`#00FF60`,`#00FF80`,`#00FFA0`,`#00FFC0`,`#00FFE0`,`#00FFFF`,`#00E0FF`,`#00C0FF`,`#00A0FF`,`#0080FF`,`#0060FF`,`#0040FF`,`#0020FF`],[`#0000FF`,`#2000FF`,`#4000FF`,`#6000FF`,`#8000FF`,`#A000FF`,`#C000FF`,`#E000FF`,`#FF00FF`,`#FF00E0`,`#FF00C0`,`#FF00A0`,`#FF0080`,`#FF0060`,`#FF0040`,`#FF0020`],[`#000000`,`#111111`,`#222222`,`#333333`,`#444444`,`#555555`,`#666666`,`#777777`,`#888888`,`#999999`,`#AAAAAA`,`#BBBBBB`,`#CCCCCC`,`#DDDDDD`,`#EEEEEE`,`#FFFFFF`]];function ie(e,t,n){let r=Math.max(e,t,n),i=r-Math.min(e,t,n),a=0;i!==0&&(a=r===e?(t-n)/i%6:r===t?(n-e)/i+2:(e-t)/i+4),a=Math.round(a*60),a<0&&(a+=360);let o=r===0?0:i/r;return{h:a,s:o,v:r}}function ae(e,t,n){let r=n*t,i=r*(1-Math.abs(e/60%2-1)),a=n-r,o=0,s=0,c=0;return e<60?(o=r,s=i,c=0):e<120?(o=i,s=r,c=0):e<180?(o=0,s=r,c=i):e<240?(o=0,s=i,c=r):e<300?(o=i,s=0,c=r):(o=r,s=0,c=i),{r:o+a,g:s+a,b:c+a}}function oe(e,t,n){let r=e=>{let t=Math.round(e*255).toString(16);return t.length===1?`0`+t:t};return`#${r(e)}${r(t)}${r(n)}`.toUpperCase()}function R(e){let t=ll(e);L(k,dl(t).toUpperCase()),L(w,t.r),L(T,t.g),L(D,t.b);let n=ie(x(w),x(T),x(D));L(b,n.h),L(S,n.s),L(C,n.v),x(p)&&x(d)&&H()}function z(){let e=ae(x(b),x(S),x(C));L(w,e.r),L(T,e.g),L(D,e.b),L(k,oe(x(w),x(T),x(D)));let t={r:x(w),g:x(T),b:x(D),a:1};s()(t),requestAnimationFrame(()=>{x(p)&&x(d)&&H()})}function se(){L(k,oe(x(w),x(T),x(D)));let e=ie(x(w),x(T),x(D));L(b,e.h),L(S,e.s),L(C,e.v);let t={r:x(w),g:x(T),b:x(D),a:1};s()(t),requestAnimationFrame(()=>{x(p)&&x(d)&&H()})}function B(e){let t=document.createElement(`canvas`);t.width=e,t.height=e;let n=t.getContext(`2d`),r=e/2,i=r-2,a=i-9,o=n.createImageData(e,e),s=o.data;for(let t=0;t<e;t++)for(let n=0;n<e;n++){let o=n-r,c=t-r,l=Math.sqrt(o*o+c*c);if(l<=i&&l>a){let r=ae((Math.atan2(c,o)*180/Math.PI+90+360)%360,1,1),i=(t*e+n)*4;s[i]=Math.round(r.r*255),s[i+1]=Math.round(r.g*255),s[i+2]=Math.round(r.b*255),s[i+3]=255}}return n.putImageData(o,0,0),t}function ce(e,t,n){let r=document.createElement(`canvas`);r.width=e,r.height=e;let i=r.getContext(`2d`),a=e/2,o=a-2-9,s=i.createImageData(e,e),c=s.data;for(let r=0;r<e;r++)for(let i=0;i<e;i++){let s=i-a,l=r-a,u=Math.sqrt(s*s+l*l);if(u<=o){let a=(Math.atan2(l,s)*180/Math.PI+90+360)%360,d=(r*e+i)*4;if(n===`rgb`){let e=a/360,t=0,n=0,r=0;if(e<1/3){let i=e*3;t=1-i,n=i,r=0}else if(e<2/3){let i=(e-1/3)*3;t=0,n=1-i,r=i}else{let i=(e-2/3)*3;t=i,n=0,r=1-i}let i=u/o,s=1-i;t*=s,n*=s,r=r*s+i;let l=u/o;t=t*l+(1-l),n=n*l+(1-l),r=r*l+(1-l),c[d]=Math.round(t*255),c[d+1]=Math.round(n*255),c[d+2]=Math.round(r*255),c[d+3]=255}else{let e=ae(a,u/o,t);c[d]=Math.round(e.r*255),c[d+1]=Math.round(e.g*255),c[d+2]=Math.round(e.b*255),c[d+3]=255}}}return i.putImageData(s,0,0),r}function le(e,t){let n=t/2,r=n-2,i=r-9;if(x(j)===`rgb`){let t=(Math.atan2(x(T)-x(w),x(w)-x(D))*180/Math.PI+90+360)%360,a=n+Math.cos((t-90)*Math.PI/180)*(r-4.5),o=n+Math.sin((t-90)*Math.PI/180)*(r-4.5);e.strokeStyle=`#fff`,e.lineWidth=2,e.beginPath(),e.arc(a,o,4,0,Math.PI*2),e.stroke(),e.strokeStyle=`#000`,e.lineWidth=1,e.beginPath(),e.arc(a,o,5,0,Math.PI*2),e.stroke();let s=Math.sqrt(x(w)*x(w)+x(T)*x(T)+x(D)*x(D))/Math.sqrt(3),c=n+Math.cos((t-90)*Math.PI/180)*(s*i),l=n+Math.sin((t-90)*Math.PI/180)*(s*i);e.strokeStyle=`#fff`,e.lineWidth=2,e.beginPath(),e.arc(c,l,6,0,Math.PI*2),e.stroke(),e.strokeStyle=`#000`,e.lineWidth=1,e.beginPath(),e.arc(c,l,7,0,Math.PI*2),e.stroke()}else{let t=n+Math.cos((x(b)-90)*Math.PI/180)*(r-4.5),a=n+Math.sin((x(b)-90)*Math.PI/180)*(r-4.5);e.strokeStyle=`#fff`,e.lineWidth=2,e.beginPath(),e.arc(t,a,4,0,Math.PI*2),e.stroke(),e.strokeStyle=`#000`,e.lineWidth=1,e.beginPath(),e.arc(t,a,5,0,Math.PI*2),e.stroke();let o=n+Math.cos((x(b)-90)*Math.PI/180)*(x(S)*i),s=n+Math.sin((x(b)-90)*Math.PI/180)*(x(S)*i);e.strokeStyle=`#fff`,e.lineWidth=2,e.beginPath(),e.arc(o,s,6,0,Math.PI*2),e.stroke(),e.strokeStyle=`#000`,e.lineWidth=1,e.beginPath(),e.arc(o,s,7,0,Math.PI*2),e.stroke()}}function H(){if(!x(p)||!x(d))return;let e=x(d).width;(!m||m.width!==e)&&(m=B(e)),(!g||g.width!==e||_!==x(C)||y!==x(j))&&(g=ce(e,x(C),x(j)),_=x(C),y=x(j)),x(p).clearRect(0,0,e,e),x(p).drawImage(g,0,0),x(p).drawImage(m,0,0),le(x(p),e)}function U(e){if(e.stopPropagation(),!x(d))return;let t=x(d).getBoundingClientRect(),n=x(d).width/t.width,r=x(d).height/t.height,i=(e.clientX-t.left)*n,a=(e.clientY-t.top)*r,o=x(d).width/2,s=i-o,c=a-o,l=Math.sqrt(s*s+c*c),u=o-2,f=u-9,p=(Math.atan2(c,s)*180/Math.PI+90+360)%360;if(x(j)===`rgb`){if(l<=u&&l>f){let e=p/360,t=0,n=0,r=0;if(e<1/3){let i=e*3;t=1-i,n=i,r=0}else if(e<2/3){let i=(e-1/3)*3;t=0,n=1-i,r=i}else{let i=(e-2/3)*3;t=i,n=0,r=1-i}L(w,t),L(T,n),L(D,r),se()}else if(l<=f){let e=p/360,t=0,n=0,r=0;if(e<1/3){let i=e*3;t=1-i,n=i,r=0}else if(e<2/3){let i=(e-1/3)*3;t=0,n=1-i,r=i}else{let i=(e-2/3)*3;t=i,n=0,r=1-i}let i=l/f,a=1-i;t*=a,n*=a,r=r*a+i;let o=l/f;t=t*o+(1-o),n=n*o+(1-o),r=r*o+(1-o),L(w,Math.max(0,Math.min(1,t))),L(T,Math.max(0,Math.min(1,n))),L(D,Math.max(0,Math.min(1,r))),se()}}else l<=u&&l>f?(L(b,p),z()):l<=f&&(L(b,p),L(S,Math.min(1,l/f)),z())}function de(e,t){let n=parseFloat(t.target.value)/255;e===`r`&&L(w,Math.max(0,Math.min(1,n))),e===`g`&&L(T,Math.max(0,Math.min(1,n))),e===`b`&&L(D,Math.max(0,Math.min(1,n))),se()}function fe(e,t){let n=parseFloat(t.target.value);e===`h`&&L(b,Math.max(0,Math.min(360,n))),e===`s`&&L(S,Math.max(0,Math.min(1,n/100))),e===`v`&&L(C,Math.max(0,Math.min(1,n/100))),z()}function pe(e){let t=e.target.value;if(/^#([0-9A-F]{3}|[0-9A-F]{6})$/i.test(t)){let e=ll(t);R(e),s()(e)}}function me(e){L(ne,x(k));let t=ll(e);R(t),s()(t)}function W(){let e=x(ne);L(ne,x(k));let t=ll(e);R(t),s()(t)}function _e(e){x(u)&&!x(u).contains(e.target)&&(L(c,!1),ab.set(null))}ye(()=>(n().value&&R(n().value),l=ab.subscribe(e=>{e!==i()&&x(c)&&L(c,!1)}),setTimeout(()=>{x(d)&&(L(p,x(d).getContext(`2d`)),x(p)&&H())},0),document.addEventListener(`click`,_e),()=>{l&&l(),document.removeEventListener(`click`,_e)}));let ve=Y(null);J(()=>(x(c),x(d),x(ve),x(p)),()=>{x(c)&&x(d)&&(x(ve)&&clearTimeout(x(ve)),x(p)||L(p,x(d).getContext(`2d`)),x(p)&&L(ve,setTimeout(()=>{x(d)&&x(p)&&H()},50)))}),J(()=>(A(n()),x(k)),()=>{if(n().value){let e=ll(n().value);dl(e)!==x(k)&&R(e)}}),J(()=>(x(j),x(p),x(d)),()=>{x(j)&&x(p)&&x(d)&&H()}),he(),ue();var q=ub(),xe=M(q),Se=P(xe,2),Ce=e=>{var n=lb(),s=M(n),c=M(s);let l;var m=P(c,2);let g;o(s);var _=P(s,2),y=M(_),ee=M(y);X(ee,`width`,180),X(ee,`height`,180),ge(ee,e=>L(d,e),()=>x(d)),o(y);var A=P(y,2),ie=M(A),ae=e=>{var t=ob(),n=G(t),a=M(n),s=P(a,2);re(s);var c=P(s,2);re(c),o(n);var l=P(n,2),u=M(l),d=P(u,2);re(d);var f=P(d,2);re(f),o(l);var p=P(l,2),m=M(p),h=P(m,2);re(h);var g=P(h,2);re(g),o(p),K((e,t,n,o,l,p)=>{X(a,`for`,`${i()}-h`),X(s,`id`,`${i()}-h`),r(s,e),r(c,t),X(u,`for`,`${i()}-s`),X(d,`id`,`${i()}-s`),r(d,n),r(f,o),X(m,`for`,`${i()}-v`),X(h,`id`,`${i()}-v`),r(h,l),r(g,p)},[()=>(x(b),F(()=>Math.round(x(b)))),()=>(x(b),F(()=>Math.round(x(b)))),()=>(x(S),F(()=>Math.round(x(S)*100))),()=>(x(S),F(()=>Math.round(x(S)*100))),()=>(x(C),F(()=>Math.round(x(C)*100))),()=>(x(C),F(()=>Math.round(x(C)*100)))]),O(`input`,s,e=>fe(`h`,e)),O(`input`,c,e=>fe(`h`,e)),O(`input`,d,e=>fe(`s`,e)),O(`input`,f,e=>fe(`s`,e)),O(`input`,h,e=>fe(`v`,e)),O(`input`,g,e=>fe(`v`,e)),E(e,t)},oe=e=>{var t=sb(),n=G(t),a=M(n),s=P(a,2);re(s);var c=P(s,2);re(c),o(n);var l=P(n,2),u=M(l),d=P(u,2);re(d);var f=P(d,2);re(f),o(l);var p=P(l,2),m=M(p),h=P(m,2);re(h);var g=P(h,2);re(g),o(p),K((e,t,n,o,l,p)=>{X(a,`for`,`${i()}-r`),X(s,`id`,`${i()}-r`),r(s,e),r(c,t),X(u,`for`,`${i()}-g`),X(d,`id`,`${i()}-g`),r(d,n),r(f,o),X(m,`for`,`${i()}-b`),X(h,`id`,`${i()}-b`),r(h,l),r(g,p)},[()=>(x(w),F(()=>Math.round(x(w)*255))),()=>(x(w),F(()=>Math.round(x(w)*255))),()=>(x(T),F(()=>Math.round(x(T)*255))),()=>(x(T),F(()=>Math.round(x(T)*255))),()=>(x(D),F(()=>Math.round(x(D)*255))),()=>(x(D),F(()=>Math.round(x(D)*255)))]),O(`input`,s,e=>de(`r`,e)),O(`input`,c,e=>de(`r`,e)),O(`input`,d,e=>de(`g`,e)),O(`input`,f,e=>de(`g`,e)),O(`input`,h,e=>de(`b`,e)),O(`input`,g,e=>de(`b`,e)),E(e,t)};Z(ie,e=>{x(j)===`hsv`?e(ae):e(oe,-1)});var R=P(ie,2),z=M(R),se=P(z,2);re(se),o(R),o(A);var B=P(A,2),V=M(B),ce=M(V),le=P(ce,2);o(V);var ue=P(V,2);f(ue,5,()=>N,h,(e,t)=>{var n=te(),r=G(n);f(r,1,()=>x(t),h,(e,t)=>{var n=cb();K(()=>{a(n,`background-color: ${x(t)??``};`),X(n,`aria-label`,`Choose ${x(t)}`)}),O(`click`,n,()=>me(x(t))),E(e,n)}),E(e,n)}),o(ue),o(B),o(_),o(n),ge(n,e=>L(u,e),()=>x(u)),K(()=>{l=v(c,1,`mode-button svelte-1hwwwsb`,null,l,{active:x(j)===`hsv`}),g=v(m,1,`mode-button svelte-1hwwwsb`,null,g,{active:x(j)===`rgb`}),X(z,`for`,`${i()}-hex`),X(se,`id`,`${i()}-hex`),r(se,x(k)),a(ce,`background-color: ${x(ne)??``};`),a(le,`background-color: ${x(k)??``};`)}),O(`click`,c,()=>{L(j,`hsv`),x(p)&&x(d)&&H()}),O(`click`,m,()=>{L(j,`rgb`),x(p)&&x(d)&&H()}),O(`click`,ee,I(U)),O(`mousedown`,ee,I(e=>{U(e)})),O(`mousemove`,ee,I(e=>{e.buttons===1&&U(e)})),O(`input`,se,pe),O(`click`,ce,W),O(`click`,n,I(function(e){be.call(this,t,e)})),O(`keydown`,n,I(function(e){be.call(this,t,e)})),E(e,n)};Z(Se,e=>{x(c)&&e(Ce)}),o(q),K((e,t)=>{a(xe,`background-color: ${e??``};`),xe.disabled=t},[()=>(A(ul),x(w),x(T),x(D),F(()=>ul({r:x(w),g:x(T),b:x(D),a:1}))),()=>(A(n()),F(()=>typeof n().disabled==`function`?n().disabled():n().disabled))]),O(`click`,xe,I(()=>{x(c)?(L(c,!1),ab.set(null)):(ab.set(i()),L(c,!0),x(d)&&!x(p)&&L(p,x(d).getContext(`2d`)))})),E(e,q),Ee()}var fb=u(`<button class="clear-button svelte-1lbwdc6" title="Clear file">×</button>`),pb=u(`<div class="file-info svelte-1lbwdc6"><span class="file-name svelte-1lbwdc6"> </span></div>`),mb=u(`<div class="preview-container svelte-1lbwdc6"><img alt="Preview" class="preview-image svelte-1lbwdc6"/></div>`),hb=u(`<div class="preview-container svelte-1lbwdc6"><video class="preview-video svelte-1lbwdc6" controls=""></video></div>`,2),gb=u(`<span class="drop-hint svelte-1lbwdc6">Drop file here</span>`),_b=u(`<div class="file-input-container svelte-1lbwdc6"><div class="file-controls svelte-1lbwdc6"><input type="file" style="display: none;"/> <button class="file-button svelte-1lbwdc6">Choose File</button> <!></div> <!> <!> <div role="region" aria-label="File drop zone"><!></div></div>`);function vb(e,t){ee(t,!1);let n=Y(),r=Y(),i=Y(),a=V(t,`prop`,8),s=V(t,`id`,8),c=V(t,`onValueChange`,8),l=Y(),u=Y(null),d=Y(`none`);function f(e){let t=e.target.files?.[0];t&&((t.type.startsWith(`image/`)||t.type.startsWith(`video/`))&&(L(u,URL.createObjectURL(t)),L(d,t.type.startsWith(`image/`)?`image`:`video`)),c()(t.name))}function p(){x(u)&&x(u).startsWith(`blob:`)&&URL.revokeObjectURL(x(u)),L(u,null),L(d,`none`),c()(``),x(l)&&oe(l,x(l).value=``)}function m(e){e.preventDefault();let t=e.dataTransfer?.files[0];t&&((t.type.startsWith(`image/`)||t.type.startsWith(`video/`))&&(L(u,URL.createObjectURL(t)),L(d,t.type.startsWith(`image/`)?`image`:`video`)),c()(t.name))}function h(e){e.preventDefault()}J(()=>A(a()),()=>{L(n,typeof a().value==`string`?a().value:``)}),J(()=>A(a()),()=>{L(r,a().params?.accept||`*/*`)}),J(()=>A(a()),()=>{L(i,typeof a().disabled==`function`?a().disabled():a().disabled)}),J(()=>x(n),()=>{if(x(n)){let e=/\.(jpg|jpeg|png|gif|webp|svg)$/i.test(x(n))||x(n).startsWith(`data:image/`),t=/\.(mp4|webm|mov)$/i.test(x(n))||x(n).startsWith(`data:video/`);e?(L(d,`image`),L(u,(x(n).startsWith(`data:`)||x(n).startsWith(`http`),x(n)))):t?(L(d,`video`),L(u,(x(n).startsWith(`data:`)||x(n).startsWith(`http`),x(n)))):(L(d,`none`),L(u,null))}else L(d,`none`),L(u,null)}),he(),ue();var g=_b(),_=M(g),y=M(_);ge(y,e=>L(l,e),()=>x(l));var b=P(y,2),S=P(b,2),C=e=>{var t=fb();K(()=>t.disabled=x(i)),O(`click`,t,p),E(e,t)};Z(S,e=>{x(n)&&e(C)}),o(_);var w=P(_,2),T=e=>{var t=pb(),r=M(t),i=q(r,!0);o(t),K(()=>{X(r,`title`,x(n)),D(i,x(n))}),E(e,t)};Z(w,e=>{x(n)&&e(T)});var te=P(w,2),k=e=>{var t=mb(),n=q(t);K(()=>X(n,`src`,x(u))),E(e,t)},ne=e=>{var t=hb(),n=q(t);K(()=>X(n,`src`,x(u))),E(e,t)};Z(te,e=>{x(d)===`image`&&x(u)?e(k):x(d)===`video`&&x(u)&&e(ne,1)});var j=P(te,2);let re;var N=M(j),ie=e=>{var t=gb();E(e,t)};Z(N,e=>{x(n)||e(ie)}),o(j),o(g),K(()=>{X(y,`id`,s()),X(y,`accept`,x(r)),y.disabled=x(i),b.disabled=x(i),re=v(j,1,`drop-zone svelte-1lbwdc6`,null,re,{"has-preview":x(d)!==`none`})}),O(`change`,y,f),O(`click`,b,()=>x(l)?.click()),O(`drop`,j,m),O(`dragover`,j,h),E(e,g),Ee()}var yb=u(`<div class="search-box svelte-bczi6w"><input type="text" class="search-input svelte-bczi6w" placeholder="Search..."/></div>`),bb=u(`<div class="option-group-header svelte-bczi6w"> </div>`),xb=u(`<button> </button>`),Sb=u(`<!> <!>`,1),Cb=u(`<div class="no-results svelte-bczi6w">No results</div>`),wb=u(`<div class="dropdown-menu svelte-bczi6w"><!> <div class="options-list svelte-bczi6w"><!> <!></div></div>`),Tb=u(`<div class="select-input-container svelte-bczi6w"><button><span class="select-value svelte-bczi6w"></span> <svg class="dropdown-icon svelte-bczi6w" width="12" height="12" viewBox="0 0 12 12" fill="none" stroke="currentColor" stroke-width="1.5"><path d="M3 4.5L6 7.5L9 4.5" stroke-linecap="round" stroke-linejoin="round"></path></svg></button> <!></div>`);function Eb(e,t){ee(t,!1);let n=Y(),r=Y(),i=Y(),a=Y(),s=Y(),l=Y(),u=V(t,`prop`,8),d=V(t,`id`,8,void 0),p=V(t,`onValueChange`,8),m=Y(!1),g=Y(``),_=Y();function y(e){let t=typeof e==`object`&&`value`in e?e.value:e;p()(t),L(m,!1),L(g,``)}function b(e){x(_)&&!x(_).contains(e.target)&&(L(m,!1),L(g,``))}function S(e){e.key===`Escape`&&(L(m,!1),L(g,``))}J(()=>A(u()),()=>{L(n,u().value)}),J(()=>A(u()),()=>{L(r,u().params?.options||[])}),J(()=>A(u()),()=>{L(i,typeof u().disabled==`function`?u().disabled():u().disabled)}),J(()=>(x(g),x(r)),()=>{L(a,x(g)?x(r).filter(e=>(typeof e==`object`&&`label`in e?e.label:String(e)).toLowerCase().includes(x(g).toLowerCase())):x(r))}),J(()=>x(a),()=>{L(s,(()=>{let e=new Map,t=[];for(let n of x(a))typeof n==`object`&&`group`in n&&n.group?(e.has(n.group)||e.set(n.group,[]),e.get(n.group).push(n)):t.push(n);let n=Array.from(e.entries()).sort(([e],[t])=>e.localeCompare(t)).map(([e,t])=>({group:e,options:t.sort((e,t)=>{let n=typeof e==`object`&&`label`in e?e.label:String(e),r=typeof t==`object`&&`label`in t?t.label:String(t);return n.localeCompare(r)})}));return t.length>0&&n.push({group:``,options:t}),n})())}),J(()=>x(s),()=>{L(l,x(s).some(e=>e.group!==``))}),he(),ue();var C=Tb();O(`click`,ce,b),O(`keydown`,ce,S);var w=M(C);let T;var k=M(w);f(k,5,()=>x(r),h,(e,t)=>{let r=pe(()=>(x(t),F(()=>typeof x(t)==`object`&&`value`in x(t)?x(t).value:x(t)))),i=pe(()=>(x(t),F(()=>typeof x(t)==`object`&&`label`in x(t)?x(t).label:String(x(t)))));var a=te(),o=G(a),s=e=>{var t=ve();K(()=>D(t,x(i))),E(e,t)},c=B(()=>(A(x(r)),x(n),F(()=>String(x(r))===String(x(n)))));Z(o,e=>{x(c)&&e(s)}),E(e,a)}),o(k),c(2),o(w);var ne=P(w,2),j=e=>{var i=wb(),c=M(i),u=e=>{var n=yb(),r=M(n);re(r),o(n),Ce(r,()=>x(g),e=>L(g,e)),O(`click`,r,I(function(e){be.call(this,t,e)})),E(e,n)};Z(c,e=>{x(r),F(()=>x(r).length>5)&&e(u)});var d=P(c,2),p=M(d),m=e=>{var t=te(),r=G(t);f(r,1,()=>x(s),h,(e,t)=>{let r=()=>x(t).group,i=()=>x(t).options;var a=Sb(),o=G(a),s=e=>{var t=bb(),n=q(t,!0);K(()=>D(n,r())),E(e,t)};Z(o,e=>{r()&&e(s)});var c=P(o,2);f(c,1,i,h,(e,t)=>{let i=pe(()=>(x(t),F(()=>typeof x(t)==`object`&&`value`in x(t)?x(t).value:x(t)))),a=pe(()=>(x(t),F(()=>typeof x(t)==`object`&&`label`in x(t)?x(t).label:String(x(t))))),o=pe(()=>(x(t),F(()=>typeof x(t)==`object`&&`disabled`in x(t)&&x(t).disabled)));var s=xb();let c;var l=q(s,!0);K(e=>{c=v(s,1,`option-item svelte-bczi6w`,null,c,{selected:e,grouped:!!r()}),s.disabled=x(o),D(l,x(a))},[()=>String(x(i))===String(x(n))]),O(`click`,s,()=>y(x(t))),E(e,s)}),E(e,a)}),E(e,t)},_=e=>{var t=te(),r=G(t);f(r,1,()=>x(a),h,(e,t)=>{let r=pe(()=>(x(t),F(()=>typeof x(t)==`object`&&`value`in x(t)?x(t).value:x(t)))),i=pe(()=>(x(t),F(()=>typeof x(t)==`object`&&`label`in x(t)?x(t).label:String(x(t))))),a=pe(()=>(x(t),F(()=>typeof x(t)==`object`&&`disabled`in x(t)&&x(t).disabled)));var o=xb();let s;var c=q(o,!0);K(e=>{s=v(o,1,`option-item svelte-bczi6w`,null,s,{selected:e}),o.disabled=x(a),D(c,x(i))},[()=>String(x(r))===String(x(n))]),O(`click`,o,()=>y(x(t))),E(e,o)}),E(e,t)};Z(p,e=>{x(l)?e(m):e(_,-1)});var b=P(p,2),S=e=>{var t=Cb();E(e,t)};Z(b,e=>{x(a),F(()=>x(a).length===0)&&e(S)}),o(d),o(i),E(e,i)};Z(ne,e=>{x(m),x(r),F(()=>x(m)&&x(r).length>0)&&e(j)}),o(C),ge(C,e=>L(_,e),()=>x(_)),K(()=>{X(w,`id`,d()),T=v(w,1,`select-button svelte-bczi6w`,null,T,{open:x(m)}),w.disabled=x(i)}),O(`click`,w,()=>{x(i)||(L(m,!x(m)),x(m)&&L(g,``))}),E(e,C),Ee()}var Db=u(`<span class="loading-spinner svelte-17d1c14"></span>`),Ob=u(`<span> </span>`),kb=u(`<!> <!>`,1),Ab=u(`<button><!></button>`);function jb(e,t){ee(t,!1);let n=Y(),r=Y(),i=Y(),a=Y(),s=Y(),c=V(t,`prop`,8),l=V(t,`id`,8),u=V(t,`onValueChange`,8),d=Y(!1);async function f(){L(d,!0);try{u()(!0)}catch(e){console.error(`[ButtonInput] Error:`,e)}finally{L(d,!1)}}J(()=>A(c()),()=>{L(n,typeof c().disabled==`function`?c().disabled():c().disabled)}),J(()=>A(c()),()=>{L(r,typeof c().value==`string`?c().value:c().displayName||`Execute`)}),J(()=>A(c()),()=>{L(i,c().params?.small??!1)}),J(()=>A(c()),()=>{L(a,c().params?.icon)}),J(()=>A(c()),()=>{L(s,c().params?.tooltip)}),he(),ue();var p=Ab();let m;var h=M(p),g=e=>{var t=Db();E(e,t)},_=e=>{var t=kb(),n=G(t);{let e=pe(()=>x(i)?14:16);zc(n,{get name(){return x(a)},get size(){return x(e)}})}var o=P(n,2),s=e=>{var t=Ob(),n=q(t,!0);K(()=>D(n,x(r))),E(e,t)};Z(o,e=>{x(r),A(c()),F(()=>x(r)&&!c().params?.iconOnly)&&e(s)}),E(e,t)},y=e=>{var t=Ob(),n=q(t,!0);K(()=>D(n,x(r))),E(e,t)};Z(h,e=>{x(d)?e(g):x(a)?e(_,1):e(y,-1)}),o(p),K(()=>{X(p,`id`,l()),m=v(p,1,`button-input svelte-17d1c14`,null,m,{small:x(i),"icon-only":x(a)&&!x(r)}),p.disabled=x(n)||x(d),X(p,`title`,x(s))}),O(`click`,p,f),E(e,p),Ee()}var Mb=u(`<label class="checkbox-label svelte-16zsb4p"><input type="checkbox" class="checkbox-input svelte-16zsb4p"/> <span class="checkbox-slider svelte-16zsb4p"></span> <span class="checkbox-text svelte-16zsb4p"> </span></label>`);function Nb(e,t){ee(t,!1);let n=Y(),r=Y(),i=V(t,`prop`,8),a=V(t,`id`,8),s=V(t,`onValueChange`,8);function c(e){let t=e.target.checked;s()(t)}J(()=>A(i()),()=>{L(n,i().value===!0)}),J(()=>A(i()),()=>{L(r,typeof i().disabled==`function`?i().disabled():i().disabled)}),he(),ue();var l=Mb(),u=M(l);re(u);var d=P(u,4),f=q(d,!0);o(l),K(()=>{X(u,`id`,a()),C(u,x(n)),u.disabled=x(r),D(f,x(n)?`On`:`Off`)}),O(`change`,u,c),E(e,l),Ee()}var Pb=u(`<div class="folder-content svelte-1spr549"><!></div>`),Fb=u(`<div class="folder-group svelte-1spr549"><button class="folder-header svelte-1spr549"><svg width="10" height="10" viewBox="0 0 10 10" fill="none" stroke="currentColor" stroke-width="1.5"><path d="M2 3L5 1L8 3" stroke-linecap="round" stroke-linejoin="round"></path></svg> <span class="folder-name svelte-1spr549"> </span></button> <!></div>`);function Ib(e,t){ee(t,!1);let n=V(t,`folderName`,8),r=V(t,`isExpanded`,8,!0),i=xe();function a(){i(`toggle`)}ue();var s=Fb(),c=M(s),l=M(c);let u;var d=P(l,2),f=q(d,!0);o(c);var p=P(c,2),m=e=>{var n=Pb(),r=M(n);b(r,t,`default`,{},null),o(n),E(e,n)};Z(p,e=>{r()&&e(m)}),o(s),K(()=>{u=v(l,0,`folder-icon svelte-1spr549`,null,u,{expanded:r()}),D(f,n())}),O(`click`,c,a),E(e,s),Ee()}var Lb=u(`<button type="button" class="color-swatch svelte-kla7jy"><div class="swatch-color svelte-kla7jy"></div></button>`),Rb=u(`<div class="ramp-handle svelte-kla7jy" role="slider" tabindex="0" aria-label="Color stop position" aria-valuemin="0" aria-valuemax="1"></div>`),zb=u(`<option> </option>`),Bb=u(`<div class="table-row svelte-kla7jy"><input type="number" class="position-input svelte-kla7jy" min="0" max="1" step="0.001"/> <button type="button" class="color-cell svelte-kla7jy"></button> <select class="interpolation-select svelte-kla7jy"></select> <div class="table-row-actions svelte-kla7jy"><button class="icon-button svelte-kla7jy" title="Add Point">+</button> <button class="icon-button delete-button svelte-kla7jy" title="Delete Point">×</button></div></div>`),Vb=u(`<div class="color-picker-overlay svelte-kla7jy"><div class="color-picker-container svelte-kla7jy" role="dialog" aria-modal="true" aria-label="Edit color stop"><!></div></div>`),Hb=u(`<div class="color-ramp-editor svelte-kla7jy"><div class="ramp-header svelte-kla7jy"><span class="ramp-label svelte-kla7jy"> </span> <label class="auto-update-label svelte-kla7jy"><input type="checkbox"/> Auto-update</label></div> <div class="ramp-visualization svelte-kla7jy"><canvas class="ramp-canvas svelte-kla7jy"></canvas> <div class="color-swatches svelte-kla7jy"></div> <div class="ramp-handles svelte-kla7jy"></div></div> <div class="ramp-points-table svelte-kla7jy"><div class="table-header svelte-kla7jy"><span>Position</span> <span>Color</span> <span>Interp.</span> <span class="table-actions svelte-kla7jy"><button class="icon-button svelte-kla7jy" title="Add Point">+</button></span></div> <!></div> <!></div>`);function Ub(e,t){ee(t,!1);let n=V(t,`prop`,8),i=V(t,`id`,8),l=V(t,`onValueChange`,8),u=Y([]),d=Y(!0),p=Y(),m=null,g=Y(null),_=Y(0),v=Y(null),y=Y(!1);function b(e){x(y)&&e.key===`Escape`&&L(y,!1)}let S=[{value:`linear`,label:`Linear`},{value:`constant`,label:`Constant`},{value:`smooth`,label:`Smooth`}];function C(){Array.isArray(n().value)&&n().value.length>0?L(u,n().value.map(e=>({position:e.position,color:(e.color,ll(e.color)),interpolation:e.interpolation||`linear`})).sort((e,t)=>e.position-t.position)):L(u,[{position:0,color:{r:0,g:0,b:0},interpolation:`linear`},{position:1,color:{r:1,g:1,b:1},interpolation:`linear`}]),w()}function w(){if(!m||!x(p))return;let e=x(p).width,t=x(p).height;m.clearRect(0,0,e,t);let n=m.createLinearGradient(0,0,e,0),r=[...x(u)].sort((e,t)=>e.position-t.position);for(let e of r)n.addColorStop(e.position,ul(e.color));m.fillStyle=n,m.fillRect(0,0,e,t);for(let t=0;t<r.length;t++){let n=r[t],i=n.position*e;m.fillStyle=ul(n.color),m.fillRect(i-6,-14,12,12),m.strokeStyle=`#ffffff`,m.lineWidth=1,m.strokeRect(i-6,-14,12,12)}let i=t+2;for(let t=0;t<r.length;t++){let n=r[t].position*e;m.fillStyle=`#888888`,m.beginPath(),m.moveTo(n,i),m.lineTo(n-4,i+6),m.lineTo(n+4,i+6),m.closePath(),m.fill()}}function te(e){let t=x(p).getBoundingClientRect(),n=e-t.left;Math.max(0,Math.min(1,n/t.width));let r=[...x(u)].sort((e,t)=>e.position-t.position);for(let e=0;e<r.length;e++){let i=r[e],a=i.position*t.width;if(Math.abs(n-a)<10)return x(u).indexOf(i)}return null}function k(e){if(!x(p))return;let t=x(p).getBoundingClientRect(),n=e.clientX-t.left,r=Math.max(0,Math.min(1,n/t.width)),i=te(e.clientX);i===null?e.button===0&&N(r):(L(g,i),L(_,e.clientX))}function ne(e){if(x(g)!==null&&x(p)){let t=x(p).getBoundingClientRect(),n=e.clientX-t.left,r=Math.max(0,Math.min(1,n/t.width));oe(u,x(u)[x(g)].position=r),x(u).sort((e,t)=>e.position-t.position),w(),x(d)&&l()([...x(u)])}}function j(){x(g)!==null&&(L(g,null),x(d)||l()([...x(u)]))}function N(e){let t=[...x(u)].sort((e,t)=>e.position-t.position),n={r:.5,g:.5,b:.5};for(let r=0;r<t.length-1;r++)if(e>=t[r].position&&e<=t[r+1].position){let i=(e-t[r].position)/(t[r+1].position-t[r].position),a=t[r].color,o=t[r+1].color;n={r:a.r+(o.r-a.r)*i,g:a.g+(o.g-a.g)*i,b:a.b+(o.b-a.b)*i};break}x(u).push({position:e,color:n,interpolation:`linear`}),x(u).sort((e,t)=>e.position-t.position),w(),l()([...x(u)])}function ie(e){x(u).length<=2||(x(u).splice(e,1),w(),l()([...x(u)]))}function z(e,t){oe(u,x(u)[e].color=t),w(),l()([...x(u)])}function se(e,t){oe(u,x(u)[e].interpolation=t),w(),l()([...x(u)])}function B(e,t){oe(u,x(u)[e].position=Math.max(0,Math.min(1,t))),x(u).sort((e,t)=>e.position-t.position),w(),l()([...x(u)])}function le(e,t){let n=t.key===`ArrowLeft`?-.01:t.key===`ArrowRight`?.01:0;n&&(t.preventDefault(),B(e,x(u)[e].position+n))}ye(()=>(C(),x(p)&&(m=x(p).getContext(`2d`),oe(p,x(p).width=x(p).offsetWidth),oe(p,x(p).height=20),w()),window.addEventListener(`mousemove`,ne),window.addEventListener(`mouseup`,j),()=>{window.removeEventListener(`mousemove`,ne),window.removeEventListener(`mouseup`,j)})),J(()=>A(n()),()=>{n().value&&C()}),he(),ue();var H=Hb();O(`keydown`,ce,b);var U=M(H),de=M(U),fe=q(de,!0),me=P(de,2),W=M(me);re(W),c(),o(me),o(U);var G=P(U,2),_e=M(G);ge(_e,e=>L(p,e),()=>x(p));var ve=P(_e,2);f(ve,5,()=>(x(u),F(()=>x(u).sort((e,t)=>e.position-t.position))),h,(e,t)=>{let n=pe(()=>(x(u),x(t),F(()=>x(u).indexOf(x(t)))));var r=Lb(),i=q(r);K(e=>{a(r,`left: ${x(t),F(()=>x(t).position*100)??``}%`),X(r,`aria-label`,e),a(i,`background-color: ${x(t),F(()=>x(t).color)??``}`)},[()=>(x(t),F(()=>`Edit color stop at ${Math.round(x(t).position*100)}%`))]),O(`click`,r,()=>{L(v,x(n)),L(y,!0)}),E(e,r)}),o(ve);var be=P(ve,2);f(be,5,()=>(x(u),F(()=>x(u).sort((e,t)=>e.position-t.position))),h,(e,t)=>{let n=pe(()=>(x(u),x(t),F(()=>x(u).indexOf(x(t)))));var r=Rb();K(()=>{a(r,`left: ${x(t),F(()=>x(t).position*100)??``}%`),X(r,`aria-valuenow`,(x(t),F(()=>x(t).position)))}),O(`keydown`,r,e=>le(x(n),e)),O(`mousedown`,r,I(e=>{L(g,x(n)),L(_,e.clientX)})),E(e,r)}),o(be),o(G);var xe=P(G,2),Ce=M(xe),we=P(M(Ce),6),Te=q(we);o(Ce);var De=P(Ce,2);f(De,1,()=>(x(u),F(()=>x(u).sort((e,t)=>e.position-t.position))),h,(e,t)=>{let n=pe(()=>(x(u),x(t),F(()=>x(u).indexOf(x(t)))));var i=Bb(),c=M(i);re(c);var l=P(c,2),d=P(l,2);f(d,5,()=>S,h,(e,t)=>{var n=zb(),r=q(n,!0),i={};K(()=>{D(r,(x(t),F(()=>x(t).label))),i!==(i=(x(t),F(()=>x(t).value)))&&(n.value=(n.__value=i)??``)}),E(e,n)}),o(d);var p;T(d);var m=P(d,2),g=M(m),_=P(g,2);o(m),o(i),K((e,n)=>{r(c,e),a(l,`background-color: ${x(t),F(()=>x(t).color)??``}`),X(l,`aria-label`,n),p!==(p=(x(t),F(()=>x(t).interpolation)))&&(d.value=(d.__value=p)??``,s(d,p)),_.disabled=(x(u),F(()=>x(u).length<=2))},[()=>(x(t),F(()=>x(t).position.toFixed(3))),()=>(x(t),F(()=>`Edit color stop at ${Math.round(x(t).position*100)}%`))]),O(`input`,c,e=>{let t=e.target;if(t instanceof HTMLInputElement){let e=parseFloat(t.value);B(x(n),e)}}),O(`click`,l,()=>{L(v,x(n)),L(y,!0)}),O(`change`,d,e=>{let t=e.target;t instanceof HTMLSelectElement&&se(x(n),t.value)}),O(`click`,g,()=>N((x(t).position+(x(u)[x(n)+1]?.position||1))/2)),O(`click`,_,()=>ie(x(n))),E(e,i)}),o(xe);var Oe=P(xe,2),ke=e=>{var t=Vb(),n=M(t),r=M(n);{let e=pe(()=>(x(u),x(v),F(()=>({value:x(u)[x(v)].color,type:`color`})))),t=pe(()=>`${i()}-color-picker`);db(r,{get prop(){return x(e)},get id(){return x(t)},onValueChange:e=>{x(v)!==null&&z(x(v),e),L(y,!1)}})}o(n),o(t),O(`click`,t,ae(()=>L(y,!1))),E(e,t)};Z(Oe,e=>{x(y)&&x(v)!==null&&e(ke)}),o(H),K(()=>D(fe,(A(n()),F(()=>n().displayName||`Ramp`)))),R(W,()=>x(d),e=>L(d,e)),O(`mousedown`,_e,k),O(`contextmenu`,_e,Se(e=>{if(te(e.clientX)===null){let t=x(p).getBoundingClientRect(),n=e.clientX-t.left;N(Math.max(0,Math.min(1,n/t.width)))}})),O(`click`,Te,()=>N(.5)),E(e,H),Ee()}var Wb=class{constructor(){this._graph=null,this._pwd=null,this._time=new xu,this._selectedNodes=new Set}setGraph(e){this._graph=e,Tu.setGraph(e)}getGraph(){return this._graph}node(e){return this._graph?e.startsWith(`/`)?this.resolveAbsolutePath(e):this._pwd?this._pwd.node(e):this.resolveAbsolutePath(`/`+e):null}parm(e){let t=e.lastIndexOf(`/`);if(t===-1)return null;let n=e.substring(0,t)||`/`,r=e.substring(t+1);return this.node(n)?.parm(r)??null}root(){return null}pwd(){return this._pwd}setPwd(e){this._pwd=e}cd(e){if(e===`/`){this._pwd=null;return}let t=this.node(e);t&&t.isNetwork()&&(this._pwd=t)}selectedNodes(){return this._graph?Array.from(this._selectedNodes).map(e=>this._graph.getNode(e)).filter(e=>e!==null):[]}selectedNodeIds(){return Array.from(this._selectedNodes)}setSelection(e){this._selectedNodes=new Set(e),this.onSelectionChange?.(e)}clearAllSelected(){this._selectedNodes.clear(),this.onSelectionChange?.([])}frame(){return this._time.frame}fframe(){return this._time.frameFraction}time(){return this._time.time}fps(){return this._time.fps}setFrame(e){this._time.setFrame(e),Tu.setFrame(this._time.frameFraction)}setTime(e){this._time.setTime(e),Tu.setFrame(this._time.frameFraction)}setFps(e){this._time.setFps(e),Tu.setFps(this._time.fps)}clock(){return{setFrame:e=>this.setFrame(e),markTimeDependentDirty:()=>this.markTimeDependentDirty(),getFrame:()=>this.frame(),getFrameFraction:()=>this.fframe(),getTime:()=>this.time(),getFps:()=>this.fps()}}ch(e){return this.parm(e)?.evalAsFloat()??0}chs(e){return this.parm(e)?.evalAsString()??``}chv(e){let t=this.parm(e)?.eval();return Array.isArray(t)?t:typeof t==`number`?[t]:[]}markTimeDependentDirty(){if(this._graph)for(let e of this._graph.nodes)e.isTimeDependent&&e.markDirty()}getTimeDependentNodes(){return this._graph?this._graph.nodes.filter(e=>e.isTimeDependent):[]}nextFrame(e=1){return this.setFrame(this.fframe()+e),this.markTimeDependentDirty(),this.fframe()}resolveAbsolutePath(e){if(!this._graph)return null;let t=e.replace(/^\//,``).split(`/`).filter(e=>e.length>0);if(t.length===0)return null;let n=null,r=this._graph.nodes.filter(e=>!e.parent);for(let e=0;e<t.length;e++){let i=t[e],a=(n?n.children():r).find(e=>e.id===i);if(!a)return null;n=a}return n}},Gb=new Wb,Kb=w(Gb.fframe());function qb(e){Gb.setFrame(e),Kb.set(Gb.fframe())}var Jb=u(`<button><span class="item-type svelte-10p3942"> </span> <span class="item-label svelte-10p3942"> </span></button>`),Yb=u(`<div class="autocomplete-dropdown svelte-10p3942"></div>`),Xb=u(`<div class="expression-input-container svelte-10p3942"><input type="text" placeholder="e.g., ch('../node/value') * 2"/> <!></div>`),Zb=u(`<button class="expression-display svelte-10p3942" title="Click to edit expression"><span class="expression-code svelte-10p3942"> </span></button>`),Qb=u(`<span class="expression-error svelte-10p3942"><!></span>`),$b=u(`<button class="evaluated-badge svelte-10p3942"> </button>`),ex=u(`<div class="expression-view svelte-10p3942"><!> <div class="expression-actions svelte-10p3942"><!> <button class="remove-expression svelte-10p3942" title="Remove expression"><!></button></div></div>`),tx=u(`<button class="toggle-to-expression svelte-10p3942" title="Click to see expression"><!></button>`),nx=u(`<button class="add-expression svelte-10p3942" title="Add expression"><!></button>`),rx=u(`<div><!> <!></div>`),ix=u(`<div><!></div>`);function ax(e,t){ee(t,!1);let n=()=>we(Kb,`$currentFrame`,r),[r,i]=ne(),a=Y(),s=Y(),c=Y(),l=Y(),u=V(t,`prop`,8),d=V(t,`propKey`,8),p=V(t,`node`,8),m=V(t,`onValueChange`,8),g=Y(`value`),_=Y(!1),y=Y(u().expression||``),S=Y(),C=Y(!1),w=Y([]),T=Y(0),te=0;function k(e){return e==null?`—`:typeof e==`number`?Number.isInteger(e)?String(e):e.toFixed(4).replace(/\.?0+$/,``):Array.isArray(e)?`[${e.map(e=>typeof e==`number`?Number.isInteger(e)?e:e.toFixed(2):e).join(`, `)}]`:typeof e==`boolean`?e?`true`:`false`:typeof e==`string`?e.length>30?e.slice(0,27)+`...`:e:typeof e==`object`&&e?`r`in e&&`g`in e&&`b`in e?`rgb(${Math.round(e.r*255)}, ${Math.round(e.g*255)}, ${Math.round(e.b*255)})`:JSON.stringify(e).slice(0,30):String(e)}function j(e,t,n){try{let n=p()?.evalParm?.(t);return n===void 0?e.value:n}catch{return e.value}}let N=[{label:`ch(path)`,value:`ch("")`,type:`func`,desc:`Get parameter as number`},{label:`chs(path)`,value:`chs("")`,type:`func`,desc:`Get parameter as string`},{label:`chv(path)`,value:`chv("")`,type:`func`,desc:`Get parameter as vector`},{label:`time`,value:`time`,type:`func`,desc:`Current time in seconds`},{label:`frame`,value:`frame`,type:`func`,desc:`Current frame number`},{label:`fps`,value:`fps`,type:`func`,desc:`Frames per second`},{label:`fit(v, oMin, oMax, nMin, nMax)`,value:`fit(, 0, 1, 0, 100)`,type:`func`,desc:`Remap value range`},{label:`clamp(v, min, max)`,value:`clamp(, 0, 1)`,type:`func`,desc:`Clamp value`},{label:`lerp(a, b, t)`,value:`lerp(0, 1, )`,type:`func`,desc:`Linear interpolation`},{label:`noise(x)`,value:`noise()`,type:`func`,desc:`Perlin noise (-1 to 1)`},{label:`random(seed)`,value:`random()`,type:`func`,desc:`Deterministic random (0-1)`},{label:`true`,value:`true`,type:`func`,desc:`Boolean true`},{label:`false`,value:`false`,type:`func`,desc:`Boolean false`},{label:`Math.sin(x)`,value:`Math.sin()`,type:`func`,desc:`Sine function`},{label:`Math.cos(x)`,value:`Math.cos()`,type:`func`,desc:`Cosine function`},{label:`Math.abs(x)`,value:`Math.abs()`,type:`func`,desc:`Absolute value`}];function ie(){x(s)&&L(g,x(g)===`expression`?`value`:`expression`)}function ae(e){e.stopPropagation(),L(_,!0),L(g,`expression`),L(y,oe(u().value)),setTimeout(()=>{x(S)?.focus(),x(S)?.select()},0)}function oe(e){return typeof e==`string`?`"${e}"`:typeof e==`boolean`?e?`true`:`false`:Array.isArray(e)?`[${e.join(`, `)}]`:typeof e==`object`&&e&&`r`in e&&`g`in e&&`b`in e?`{ r: ${e.r}, g: ${e.g}, b: ${e.b}${e.a===void 0?``:`, a: ${e.a}`} }`:String(e??``)}function R(){L(_,!0),L(y,u().expression||``),setTimeout(()=>{x(S)?.focus()},0)}function z(e){e.stopPropagation();let t=p().parm(d());t&&(t.deleteExpression(),p().markDirty(),m()?.(u().value)),L(_,!1),L(g,`value`)}function se(e){let t=e.target;L(y,t.value),te=t.selectionStart||0,B()}function B(){if(!x(a)){L(C,!1);return}let e=x(y).slice(0,te),t=e.match(/ch[sv]?\s*\(\s*['"]([^'"]*?)$/);if(t){let e=t[1];L(w,ce(e)),L(C,x(w).length>0),L(T,0)}else{let t=e.match(/(?:^|[\s(,+\-*/%])(\w*)$/);if(t&&t[1].length>0){let e=t[1].toLowerCase();L(w,N.filter(t=>t.label.toLowerCase().startsWith(e)||t.value.toLowerCase().startsWith(e)).map(e=>({label:e.label,value:e.value,type:e.type}))),L(C,x(w).length>0),L(T,0)}else L(C,!1)}}function ce(e){if(!x(a))return[];let t=[],n=e.startsWith(`/`),r=[],i=``;if(n)r=x(a).nodes.filter(e=>!e.parent),i=`/`;else if(e.startsWith(`../`))p().parent&&(r=p().parent.children().filter(e=>e!==p()),i=`../`);else if(e.startsWith(`./`)){let n=e.slice(2).toLowerCase();return Object.keys(p().props).forEach(e=>{e.toLowerCase().startsWith(n)&&t.push({label:`./${e}`,value:`./${e}`,type:`prop`})}),t}else p().parent?(r=p().parent.children().filter(e=>e!==p()),i=`../`):(r=x(a).nodes.filter(e=>!e.parent&&e!==p()),i=`/`);let o=(n?e.slice(1):e.startsWith(`../`)?e.slice(3):e).split(`/`),s=o[o.length-1].toLowerCase(),c=r;for(let e=0;e<o.length-1;e++){let n=o[e],r=c.find(e=>e.id===n);if(r&&r.isNetwork())c=r.children(),i+=n+`/`;else return t}return c.forEach(e=>{e.id.toLowerCase().startsWith(s)&&(t.push({label:`${i}${e.id}`,value:`${i}${e.id}`,type:`node`}),Object.keys(e.props).forEach(n=>{t.push({label:`${i}${e.id}/${n}`,value:`${i}${e.id}/${n}`,type:`prop`})}))}),t.slice(0,10)}function le(e){let t=x(y).slice(0,te),n=x(y).slice(te),r=t.match(/ch[sv]?\s*\(\s*['"]([^'"]*?)$/);if(r){let i=t.slice(0,t.length-r[1].length);L(y,i+e.value+n)}else{let r=t.match(/(?:^|[\s(,+\-*/%])(\w*)$/);if(r){let i=t.slice(0,t.length-r[1].length);L(y,i+e.value+n)}}L(C,!1),x(S)?.focus()}function H(e){if(x(C)){if(e.key===`ArrowDown`)e.preventDefault(),L(T,(x(T)+1)%x(w).length);else if(e.key===`ArrowUp`)e.preventDefault(),L(T,(x(T)-1+x(w).length)%x(w).length);else if(e.key===`Tab`||e.key===`Enter`){if(x(w).length>0){e.preventDefault(),le(x(w)[x(T)]);return}}else if(e.key===`Escape`){L(C,!1);return}}e.key===`Enter`&&!e.shiftKey&&!x(C)?(e.preventDefault(),U()):e.key===`Escape`&&!x(C)&&de()}function U(){if(L(C,!1),x(y).trim()){let e=p().parm(d());e&&(e.setExpression(x(y)),p().markDirty(),m()?.(p().evalParm(d())))}L(_,!1)}function de(){L(C,!1),L(y,u().expression||``),L(_,!1),x(s)||L(g,`value`)}function fe(){setTimeout(()=>{x(C)||(x(y).trim()?U():de())},150)}J(()=>A(p()),()=>{L(a,p().graph)}),J(()=>A(u()),()=>{L(s,!!u().expression)}),J(()=>A(u()),()=>{L(c,u().expressionError)}),J(()=>(x(s),x(g),x(_)),()=>{x(s)&&x(g)===`value`&&!x(_)&&L(g,`expression`)}),J(()=>(x(s),x(g)),()=>{!x(s)&&x(g)===`expression`&&L(g,`value`)}),J(()=>A(u()),()=>{u().expression!==void 0&&L(y,u().expression||``)}),J(()=>(x(s),x(c),A(u()),A(d()),n()),()=>{L(l,x(s)&&!x(c)?k(j(u(),d(),n())):null)}),he(),ue();var pe=ix();let me;var W=M(pe),G=e=>{var t=ex(),n=M(t),r=e=>{var t=Xb(),n=M(t);re(n);let r;ge(n,e=>L(S,e),()=>x(S));var i=P(n,2),a=e=>{var t=Yb();f(t,5,()=>x(w),h,(e,t,n)=>{var r=Jb();let i;var a=M(r),s=q(a,!0),c=P(a,2),l=q(c,!0);o(r),K(()=>{i=v(r,1,`autocomplete-item svelte-10p3942`,null,i,{selected:n===x(T),"type-node":x(t).type===`node`,"type-prop":x(t).type===`prop`,"type-func":x(t).type===`func`}),D(s,(x(t),F(()=>x(t).type===`func`?`ƒ`:x(t).type===`node`?`□`:`•`))),D(l,(x(t),F(()=>x(t).label)))}),O(`mousedown`,r,Se(()=>le(x(t)))),O(`mouseenter`,r,()=>L(T,n)),E(e,r)}),o(t),E(e,t)};Z(i,e=>{x(C),x(w),F(()=>x(C)&&x(w).length>0)&&e(a)}),o(t),K(()=>r=v(n,1,`expression-input svelte-10p3942`,null,r,{error:!!x(c)})),Ce(n,()=>x(y),e=>L(y,e)),O(`input`,n,se),O(`keydown`,n,H),O(`blur`,n,fe),E(e,t)},i=e=>{var t=Zb(),n=M(t),r=q(n,!0);o(t),K(()=>D(r,(A(u()),F(()=>u().expression)))),O(`click`,t,R),E(e,t)};Z(n,e=>{x(_)?e(r):e(i,-1)});var a=P(n,2),s=M(a),d=e=>{var t=Qb();$a(M(t),{size:12}),o(t),K(()=>X(t,`title`,x(c))),E(e,t)},p=e=>{var t=$b(),n=q(t);K(()=>{X(t,`title`,`Click to see value: ${x(l)??``}`),D(n,`= ${x(l)??``}`)}),O(`click`,t,I(ie)),E(e,t)};Z(s,e=>{x(c)?e(d):x(l)!==null&&e(p,1)});var m=P(s,2);Ic(M(m),{size:12}),o(m),o(a),o(t),O(`click`,m,z),E(e,t)},_e=e=>{var n=rx();let r;var i=M(n);b(i,t,`default`,{},null);var a=P(i,2),c=e=>{var t=tx();Qs(M(t),{size:10}),o(t),O(`click`,t,I(ie)),E(e,t)},l=e=>{var t=nx();Qs(M(t),{size:10}),o(t),O(`click`,t,ae),E(e,t)};Z(a,e=>{x(s)?e(c):e(l,-1)}),o(n),K(()=>r=v(n,1,`value-view svelte-10p3942`,null,r,{"expression-active":x(s)})),E(e,n)};Z(W,e=>{x(g)===`expression`&&x(s)?e(G):e(_e,-1)}),o(pe),K(()=>me=v(pe,1,`expression-wrapper svelte-10p3942`,null,me,{"has-expression":x(s),"has-error":!!x(c),editing:x(_)})),E(e,pe),Ee(),i()}function ox(e,t){let n=e.parm?.(t);return n&&typeof n==`object`?n:null}function sx(e){let t=e.currentFrame?.();return Number.isFinite(t)?Math.round(t):1}function cx(e,t){let n=ox(e,t);if(!n?.hasChannel?.())return`none`;let r=n.keys?.()??[];if(!r.length)return`none`;let i=sx(e);return r.some(e=>Math.round(e.frame)===i)?`keyed-here`:`keyed`}function lx(e,t){let n=ox(e,t);if(!n?.setKey)return`unavailable`;if(cx(e,t)===`keyed-here`){let r=e.props?.[t]?.value;if(typeof r==`number`&&Number.isFinite(r))return n.setKey(sx(e),r),`set`}return n.setKey(),`set`}function ux(e,t){let n=ox(e,t);return n?.deleteKey?cx(e,t)===`keyed-here`?(n.deleteKey(sx(e)),`removed`):`absent`:`unavailable`}function dx(e,t){return cx(e,t)===`keyed-here`?ux(e,t)===`removed`?`removed`:`unavailable`:lx(e,t)}function fx(e){return typeof e==`number`&&Number.isFinite(e)}var px=w(null),mx=0;function hx(e,t){mx+=1,px.set({nodeId:e,param:t,nonce:mx})}var gx=u(`<div><div class="content svelte-1nytthg"><div class="section svelte-1nytthg"><div class="section-header svelte-1nytthg"><span class="section-title svelte-1nytthg">Content</span></div> <textarea id="annotation-content" class="content-textarea svelte-1nytthg" placeholder="Enter text..."></textarea></div> <div class="section svelte-1nytthg"><div class="section-header svelte-1nytthg"><span class="section-title svelte-1nytthg">Position</span></div> <!></div> <div class="section svelte-1nytthg"><div class="section-header svelte-1nytthg"><span class="section-title svelte-1nytthg">Layout</span></div> <div class="layout-grid svelte-1nytthg"><div class="layout-input-group svelte-1nytthg"><label class="layout-label svelte-1nytthg" for="annotation-width">W</label> <div class="number-input-with-buttons svelte-1nytthg"><input id="annotation-width" type="number" class="layout-input svelte-1nytthg" min="100"/> <button class="number-button decrement svelte-1nytthg" type="button" title="Decrease">−</button> <button class="number-button increment svelte-1nytthg" type="button" title="Increase">+</button></div></div> <div class="layout-input-group svelte-1nytthg"><label class="layout-label svelte-1nytthg" for="annotation-height">H</label> <div class="number-input-with-buttons svelte-1nytthg"><input id="annotation-height" type="number" class="layout-input svelte-1nytthg" min="20"/> <button class="number-button decrement svelte-1nytthg" type="button" title="Decrease">−</button> <button class="number-button increment svelte-1nytthg" type="button" title="Increase">+</button></div></div></div></div> <div class="section svelte-1nytthg"><div class="section-header svelte-1nytthg"><span class="section-title svelte-1nytthg">Typography</span></div> <div class="typography-presets svelte-1nytthg"><button title="Heading 1">H1</button> <button title="Heading 2">H2</button> <button title="Heading 3">H3</button> <button title="Text">Text</button></div> <div class="typography-row svelte-1nytthg"><div class="typography-input-group svelte-1nytthg"><label class="typography-label svelte-1nytthg" for="annotation-font-size">Size</label> <div class="number-input-with-buttons svelte-1nytthg"><input id="annotation-font-size" type="number" class="typography-number-input svelte-1nytthg" min="8" max="72" step="1"/> <button class="number-button decrement svelte-1nytthg" type="button" title="Decrease">−</button> <button class="number-button increment svelte-1nytthg" type="button" title="Increase">+</button></div></div> <div class="typography-input-group svelte-1nytthg"><label class="typography-label svelte-1nytthg" for="annotation-text-align">Align</label> <div class="align-buttons svelte-1nytthg"><button title="Align left" aria-label="Align left"><svg width="14" height="14" viewBox="0 0 14 14" fill="none" stroke="currentColor" stroke-width="1.5"><path d="M2 3H12M2 7H10M2 11H12" stroke-linecap="round"></path></svg></button> <button title="Align center" aria-label="Align center"><svg width="14" height="14" viewBox="0 0 14 14" fill="none" stroke="currentColor" stroke-width="1.5"><path d="M2 3H12M4 7H10M2 11H12" stroke-linecap="round"></path></svg></button> <button title="Align right" aria-label="Align right"><svg width="14" height="14" viewBox="0 0 14 14" fill="none" stroke="currentColor" stroke-width="1.5"><path d="M2 3H12M4 7H12M2 11H12" stroke-linecap="round"></path></svg></button></div></div></div> <div class="typography-toggles svelte-1nytthg"><button title="Bold"><strong>B</strong></button> <button title="Italic"><em>I</em></button> <button title="Normal">N</button></div></div> <div class="section svelte-1nytthg"><div class="section-header svelte-1nytthg"><span class="section-title svelte-1nytthg">Text Color</span></div> <!></div> <div class="section svelte-1nytthg"><div class="section-header svelte-1nytthg"><span class="section-title svelte-1nytthg">Appearance</span></div> <div class="appearance-row svelte-1nytthg"><div class="appearance-input-group svelte-1nytthg"><label class="appearance-label svelte-1nytthg" for="annotation-border-radius">Radius</label> <div class="number-input-with-buttons svelte-1nytthg"><input id="annotation-border-radius" type="number" class="appearance-number-input svelte-1nytthg" min="0" max="16" step="1"/> <button class="number-button decrement svelte-1nytthg" type="button" title="Decrease">−</button> <button class="number-button increment svelte-1nytthg" type="button" title="Increase">+</button></div></div></div></div> <div class="section svelte-1nytthg"><div class="section-header svelte-1nytthg"><span class="section-title svelte-1nytthg">Background Color</span></div> <!></div></div></div>`),_x=u(`<div><div class="content svelte-1nytthg"><div class="section svelte-1nytthg"><div class="section-header svelte-1nytthg"><span class="section-title svelte-1nytthg">Position</span></div> <div class="position-grid svelte-1nytthg"><div class="position-input-group svelte-1nytthg"><label class="position-label svelte-1nytthg" for="annotation-x">X</label> <input id="annotation-x" type="number" class="position-input svelte-1nytthg"/></div> <div class="position-input-group svelte-1nytthg"><label class="position-label svelte-1nytthg" for="annotation-y">Y</label> <input id="annotation-y" type="number" class="position-input svelte-1nytthg"/></div></div></div> <div class="section svelte-1nytthg"><div class="section-header svelte-1nytthg"><span class="section-title svelte-1nytthg">End Position</span></div> <div class="position-grid svelte-1nytthg"><div class="position-input-group svelte-1nytthg"><label class="position-label svelte-1nytthg" for="annotation-end-x">X</label> <input id="annotation-end-x" type="number" class="position-input svelte-1nytthg"/></div> <div class="position-input-group svelte-1nytthg"><label class="position-label svelte-1nytthg" for="annotation-end-y">Y</label> <input id="annotation-end-y" type="number" class="position-input svelte-1nytthg"/></div></div></div> <div class="section svelte-1nytthg"><div class="section-header svelte-1nytthg"><span class="section-title svelte-1nytthg">Stroke</span></div> <div class="fill-controls svelte-1nytthg"><input id="annotation-stroke-color" type="color" class="color-picker svelte-1nytthg"/> <input id="annotation-stroke-color-hex" type="text" class="color-hex-input svelte-1nytthg" placeholder="#FFFFFF"/></div> <div class="appearance-row svelte-1nytthg" style="margin-top: 8px;"><div class="appearance-input-group svelte-1nytthg"><label class="appearance-label svelte-1nytthg" for="annotation-stroke-width">Width</label> <div class="number-input-with-buttons svelte-1nytthg"><input id="annotation-stroke-width" type="number" class="appearance-number-input svelte-1nytthg" min="1" max="20" step="1"/> <button class="number-button decrement svelte-1nytthg" type="button" title="Decrease">−</button> <button class="number-button increment svelte-1nytthg" type="button" title="Increase">+</button></div></div></div></div></div></div>`),vx=u(`<div><div class="content svelte-1nytthg"><div class="section svelte-1nytthg"><div class="section-header svelte-1nytthg"><span class="section-title svelte-1nytthg">Position</span></div> <div class="position-grid svelte-1nytthg"><div class="position-input-group svelte-1nytthg"><label class="position-label svelte-1nytthg" for="annotation-x">X</label> <input id="annotation-x" type="number" class="position-input svelte-1nytthg"/></div> <div class="position-input-group svelte-1nytthg"><label class="position-label svelte-1nytthg" for="annotation-y">Y</label> <input id="annotation-y" type="number" class="position-input svelte-1nytthg"/></div></div></div> <div class="section svelte-1nytthg"><div class="section-header svelte-1nytthg"><span class="section-title svelte-1nytthg">Stroke</span></div> <div class="fill-controls svelte-1nytthg"><input id="annotation-stroke-color" type="color" class="color-picker svelte-1nytthg"/> <input id="annotation-stroke-color-hex" type="text" class="color-hex-input svelte-1nytthg" placeholder="#FFFFFF"/></div> <div class="appearance-row svelte-1nytthg" style="margin-top: 8px;"><div class="appearance-input-group svelte-1nytthg"><label class="appearance-label svelte-1nytthg" for="annotation-stroke-width">Width</label> <div class="number-input-with-buttons svelte-1nytthg"><input id="annotation-stroke-width" type="number" class="appearance-number-input svelte-1nytthg" min="1" max="20" step="1"/> <button class="number-button decrement svelte-1nytthg" type="button" title="Decrease">−</button> <button class="number-button increment svelte-1nytthg" type="button" title="Increase">+</button></div></div></div></div></div></div>`),yx=u(`<div class="error-badge-container svelte-1nytthg"><span class="error-badge svelte-1nytthg">Error</span></div>`),bx=u(`<button title="Key at the current frame (or alt-click the label)"><!></button>`),xx=u(`<label class="prop-label svelte-1nytthg"> </label> <!>`,1),Sx=u(`<textarea class="param-textarea svelte-1nytthg"></textarea>`),Cx=u(`<input type="text" class="param-input svelte-1nytthg"/>`),wx=u(`<div><!> <!></div>`),Tx=u(`<div class="port-section svelte-1nytthg"><button class="port-heading svelte-1nytthg"><span class="twisty svelte-1nytthg"> </span> Inputs <span class="tally svelte-1nytthg"> </span></button> <!></div>`),Ex=u(`<div class="parameter-action-value svelte-1nytthg"><button class="parameter-action"> </button> <!></div>`),Dx=u(`<button title="Key at the current frame (alt-click the row to set, ctrl-click to delete, right-click for the channel)"><!></button>`),Ox=u(`<div class="parameter-bound svelte-1nytthg"><div class="parameter-head svelte-1nytthg"><span class="parameter-name svelte-1nytthg"> </span> <!></div> <!></div>`),kx=u(`<button> </button>`),Ax=u(`<div class="parameter svelte-1nytthg"><!> <!></div>`),jx=u(`<div class="port-section svelte-1nytthg"><button class="port-heading svelte-1nytthg"><span class="twisty svelte-1nytthg"> </span> Parameters <span class="tally svelte-1nytthg"> </span></button> <!></div>`),Mx=u(`<div class="port-section svelte-1nytthg"><button class="port-heading svelte-1nytthg"><span class="twisty svelte-1nytthg"> </span> Outputs <span class="tally svelte-1nytthg"> </span></button> <!></div>`),Nx=u(`<div class="empty-state svelte-1nytthg">Nothing to show — this node has no parameters or outputs yet</div>`),Px=u(`<div class="comment-section svelte-1nytthg"><div class="comment svelte-1nytthg"> </div></div>`),Fx=u(`<div><div class="content svelte-1nytthg"><!> <!> <!> <!> <!> <!> <!></div></div>`);function Ix(e,n){ee(n,!1);let i=()=>we(Zg,`$propUpdateCounters`,a),[a,s]=ne(),c=Y(),l=Y(),u=Y(),d=Y(),p=Y(),m=Y(),g=Y(),_=Y(),y=Y(),b=Y(),C=Y(),w=Y(),T=V(n,`node`,8,null),k=V(n,`annotation`,12,null),j=V(n,`graph`,12,null),N=V(n,`position`,8,`right`),ie=V(n,`skipAnimation`,8,!1),ae=V(n,`embedded`,8,!1),R=V(n,`onRecordHistory`,8,void 0),se=V(n,`onAction`,8,void 0),ce=!1;function le(){!ce&&R()&&(R()(),ce=!0)}function H(){ce=!1}ye(()=>{let e=()=>H();return window.addEventListener(`mouseup`,e),()=>window.removeEventListener(`mouseup`,e)});let U=Y(0),de=``,fe=new Map,me=Y(0);function W(e){return fe.has(e)||fe.set(e,{inputs:!1,params:!0,outputs:!1}),fe.get(e)}function ge(e,t){let n=W(e);n[t]=!n[t],L(me,x(me)+1)}function _e(e){return T()?W(T().id):{inputs:!1,params:!0,outputs:!1}}ye(()=>{let e=setInterval(()=>{if(!T())return;let e=`${T().id}:${T().cookInfo?.cookCount??0}:${T().inputs?.length??0}:${T().outputs?.length??0}`;e!==de&&(de=e,L(U,x(U)+1))},400);return()=>clearInterval(e)});function ve(e,t){return t??[]}function be(e){return(T()?.parameters??[]).filter(e=>{if(typeof e.options?.visibleWhen!=`function`)return!0;try{let t=Object.fromEntries((T()?.parameters??[]).map(e=>[e.name,e.value]));return e.options.visibleWhen(t)}catch{return!0}})}let xe=Y(0),Se=Y([]);function Ce(e,t){if(T()){if(le(),e.value=t,e.onChange)try{e.onChange(t)}catch(e){console.warn(`port onChange failed:`,e)}T().markDirty?.()}}function Te(e,t){T()&&ny(T(),e.name,t,le)}function De(e){T()&&e.options?.action&&se()?.(e.options.action,T().id)}function Oe(e){T()&&(le(),T().setParameterPromoted(e.name,!e.promoted),j()&&j(j().elements=[...j().elements],!0),L(me,x(me)+1),L(U,x(U)+1))}let ke=Y(0);function Ae(e){T()&&(hx(T().id,e),cl.focusOrOpenPanel(`timeline-main`,`timeline`,`Timeline`,`graph-main`,`below`))}function je(e,t){let n=-1,r=e=>{e.timeStamp-n<500||(n=e.timeStamp,Pe(t))},i=e=>{if(e.ctrlKey){e.preventDefault(),r(e);return}e.altKey&&(e.preventDefault(),Ne(t,`set`))},a=e=>{if(e.preventDefault(),e.stopPropagation(),e.ctrlKey){r(e);return}Ae(t)};return e.addEventListener(`click`,i),e.addEventListener(`contextmenu`,a),{destroy(){e.removeEventListener(`click`,i),e.removeEventListener(`contextmenu`,a)}}}function Me(e,t){let n=e=>{!e.dataTransfer||!T()||(e.stopPropagation(),e.dataTransfer.setData(`text/plain`,`${T().id}/${t}`),e.dataTransfer.effectAllowed=`copy`)};return e.setAttribute(`draggable`,`true`),e.addEventListener(`dragstart`,n),{destroy(){e.removeEventListener(`dragstart`,n)}}}function Ne(e,t=`toggle`){T()&&(t===`set`?lx(T(),e):dx(T(),e))!==`unavailable`&&(L(ke,x(ke)+1),L(xe,x(xe)+1),T().markDirty())}function Pe(e){T()&&ux(T(),e)===`removed`&&(L(ke,x(ke)+1),L(xe,x(xe)+1),T().markDirty())}function Fe(e){return T()?.props?.[e]||null}function Ie(e,t){let n=T()?.parm(e);n&&(le(),n.setExpression(t),T()?.markDirty(),L(ke,x(ke)+1),L(xe,x(xe)+1))}function Le([e,t],n){T()&&(le(),T().updateProp(e,n))}function Re([e,t],n){let r=n.target.value;Le([e,t],r)}function ze([e,t],n){let r=n.target.value;Le([e,t],r)}function Be([e,t]){let n=pv(t),r=t.displayName||e;return(typeof t.disabled==`function`?t.disabled():t.disabled)?null:{key:e,prop:t,controlType:n,displayName:r,folder:t.folder}}let Ve=Y({});function He(e){oe(Ve,x(Ve)[e]=!x(Ve)[e]),L(Ve,{...x(Ve)})}function Ue(e,t){if(k()&&j()){let n={...k().style||{},[e]:t},r=j().getAnnotation(k().id);r&&(r.style=n,j(j().annotations=[...j().annotations],!0))}}function We(e,t){if(k()&&j()){let n=j().getAnnotation(k().id);n&&(n.size||={width:540,height:60},n.size[e]=t,j(j().annotations=[...j().annotations],!0))}}function Q(e){if(k()&&j()){let t=j().getAnnotation(k().id);t&&t.type===`text`&&(t.content=e,j(j().annotations=[...j().annotations],!0),k(k().content=e,!0))}}function Ge(e){let t=e.target.value;Q(t)}function Ke(e,t){Ue(e,parseFloat(t.target.value))}function qe(e,t){let n=t.target.value;Ue(e,n)}function Je(e,t){We(e,parseFloat(t.target.value))}function Ye(e){let t=parseFloat(e.target.value);if(!isNaN(t)&&k()&&j()){let e=j().getAnnotation(k().id);e&&(e.position.x=t,j(j().annotations=[...j().annotations],!0))}}function Xe(e){let t=parseFloat(e.target.value);if(!isNaN(t)&&k()&&j()){let e=j().getAnnotation(k().id);e&&(e.position.y=t,j(j().annotations=[...j().annotations],!0))}}function Ze(e){let t=parseFloat(e.target.value);if(!isNaN(t)&&k()&&j()){let e=j().getAnnotation(k().id);e&&e.type===`line`&&(e.endPosition||={...e.position},e.endPosition.x=t,j(j().annotations=[...j().annotations],!0),k().endPosition?k(k().endPosition.x=t,!0):k(k().endPosition={...k().position,x:t},!0))}}function $(e){let t=parseFloat(e.target.value);if(!isNaN(t)&&k()&&j()){let e=j().getAnnotation(k().id);e&&e.type===`line`&&(e.endPosition||={...e.position},e.endPosition.y=t,j(j().annotations=[...j().annotations],!0),k().endPosition?k(k().endPosition.y=t,!0):k(k().endPosition={...k().position,y:t},!0))}}function Qe(e){let t=e.target.value;/^#[0-9A-Fa-f]{6}$/.test(t)&&Ue(`strokeColor`,t)}function $e(e){if(k()&&j()&&e.length>=2){let t=j().getAnnotation(k().id);t&&(t.position={x:e[0],y:e[1]},j(j().annotations=[...j().annotations],!0))}}function et(e){k()&&j()&&Ue(`color`,dl(ll(e)))}function tt(e){k()&&j()&&Ue(`backgroundColor`,dl(ll(e)))}function nt(e,t,n,r,i=1){let a=document.getElementById(e);if(!a)return;let o=(parseFloat(a.value)||0)+t*i;n!==void 0&&o<n&&(o=n),r!==void 0&&o>r&&(o=r),a.value=String(o),a.dispatchEvent(new Event(`input`,{bubbles:!0}))}function rt(e,t,n,r=1){e.preventDefault();let i=e.target,a=e.deltaY>0?-1:1;nt(i.id,a,t,n,r)}J(()=>x(me),()=>{L(c,_e(x(me)))}),J(()=>(x(U),A(T())),()=>{L(l,ve(x(U),T()?.inputs))}),J(()=>(x(U),A(T())),()=>{L(u,ve(x(U),T()?.outputs))}),J(()=>x(l),()=>{L(d,x(l).filter(e=>!e.fromParameter))}),J(()=>x(U),()=>{L(p,be(x(U)))}),J(()=>{},()=>{L(m,[])}),J(()=>A(T()),()=>{L(g,T()?Object.keys(T().props):[])}),J(()=>A(T()),()=>{L(_,T()?Object.keys(T().props).length:0)}),J(()=>A(T()),()=>{L(y,T()?.props)}),J(()=>(i(),A(T())),()=>{let e=i();L(xe,T()&&e.get(T().id)||0)}),J(()=>(x(y),x(xe)),()=>{L(b,x(y)&&x(xe)>=0?Object.entries(x(y)).map(([e,t])=>`${e}:${JSON.stringify(t.value)}:${JSON.stringify(t.params)}`).join(`|`)+`|counter:${x(xe)}`:``)}),J(()=>(A(T()),x(_),x(b)),()=>{let e=T()?.props,t=e&&x(_)>=0&&x(b)!==void 0?Object.entries(e).filter(([e,t])=>typeof t.hidden==`function`?!t.hidden():!t.hidden):[];L(Se,t)}),J(()=>x(Se),()=>{L(C,x(Se).map(Be).filter(e=>e!==null))}),J(()=>x(C),()=>{L(w,x(C).reduce((e,t)=>{let n=t.folder||`General`;return e[n]||(e[n]=[]),e[n].push(t),e},{}))}),J(()=>(x(w),x(Ve)),()=>{Object.keys(x(w)).forEach(e=>{e in x(Ve)||oe(Ve,x(Ve)[e]=e!==`Settings`)})}),he(),ue();var it=te(),at=G(it),ot=e=>{var t=gx();let n;var i=M(t),a=M(i),s=P(M(a),2);z(s),o(a);var c=P(a,2),l=P(M(c),2);S(l,()=>(A(k()),F(()=>`position-${k().id}-${k().position.x}-${k().position.y}`)),e=>{{let t=pe(()=>(A(k()),F(()=>({value:[k().position.x,k().position.y],type:`vec2`,params:{integer:!0}}))));ib(e,{get prop(){return x(t)},id:`annotation-position`,onValueChange:$e})}}),o(c);var u=P(c,2),d=P(M(u),2),f=M(d),p=P(M(f),2),m=M(p);re(m);var h=P(m,2),g=P(h,2);o(p),o(f);var _=P(f,2),y=P(M(_),2),b=M(y);re(b);var C=P(b,2),w=P(C,2);o(y),o(_),o(d),o(u);var T=P(u,2),ee=P(M(T),2),D=M(ee);let te;var ne=P(D,2);let j;var oe=P(ne,2);let I;var L=P(oe,2);let R;o(ee);var se=P(ee,2),B=M(se),V=P(M(B),2),ce=M(V);re(ce);var le=P(ce,2),H=P(le,2);o(V),o(B);var U=P(B,2),ue=P(M(U),2),de=M(ue);let fe;var me=P(de,2);let he;var W=P(me,2);let G;o(ue),o(U),o(se);var ge=P(se,2),_e=M(ge);let ve;var ye=P(_e,2);let be;var q=P(ye,2);let xe;o(ge),o(T);var J=P(T,2),Se=P(M(J),2);S(Se,()=>(A(k()),F(()=>`text-color-${k().id}-${k().style?.color||`#ffffff`}`)),e=>{{let t=pe(()=>(A(k()),F(()=>({value:k().style?.color||`#ffffff`,type:`color`}))));db(e,{get prop(){return x(t)},id:`annotation-text-color`,onValueChange:et})}}),o(J);var Y=P(J,2),Ce=P(M(Y),2),we=M(Ce),Te=P(M(we),2),Ee=M(Te);re(Ee);var X=P(Ee,2),De=P(X,2);o(Te),o(we),o(Ce),o(Y);var Oe=P(Y,2),ke=P(M(Oe),2);S(ke,()=>(A(k()),F(()=>`bg-color-${k().id}-${k().style?.backgroundColor||`#000000`}`)),e=>{{let t=pe(()=>(A(k()),F(()=>({value:k().style?.backgroundColor||`#000000`,type:`color`}))));db(e,{get prop(){return x(t)},id:`annotation-bg-color`,onValueChange:tt})}}),o(Oe),o(i),o(t),K(()=>{n=v(t,1,`inspector svelte-1nytthg`,null,n,{left:N()===`left`,"no-animation":ie(),embedded:ae()}),r(s,(A(k()),F(()=>k().content||``))),r(m,(A(k()),F(()=>k().size?.width||540))),r(b,(A(k()),F(()=>k().size?.height||60))),te=v(D,1,`preset-button svelte-1nytthg`,null,te,{active:(k().style?.fontSize||14)===32&&(k().style?.fontWeight||`normal`)===`bold`}),j=v(ne,1,`preset-button svelte-1nytthg`,null,j,{active:(k().style?.fontSize||14)===24&&(k().style?.fontWeight||`normal`)===`bold`}),I=v(oe,1,`preset-button svelte-1nytthg`,null,I,{active:(k().style?.fontSize||14)===18&&(k().style?.fontWeight||`normal`)===`bold`}),R=v(L,1,`preset-button svelte-1nytthg`,null,R,{active:(k().style?.fontSize||14)===14&&(k().style?.fontWeight||`normal`)===`normal`}),r(ce,(A(k()),F(()=>k().style?.fontSize||14))),fe=v(de,1,`align-button svelte-1nytthg`,null,fe,{active:k().style?.textAlign===`left`||!k().style?.textAlign}),he=v(me,1,`align-button svelte-1nytthg`,null,he,{active:k().style?.textAlign===`center`}),G=v(W,1,`align-button svelte-1nytthg`,null,G,{active:k().style?.textAlign===`right`}),ve=v(_e,1,`toggle-button svelte-1nytthg`,null,ve,{active:(k().style?.fontWeight||`normal`)===`bold`}),be=v(ye,1,`toggle-button svelte-1nytthg`,null,be,{active:(k().style?.fontStyle||`normal`)===`italic`}),xe=v(q,1,`toggle-button svelte-1nytthg`,null,xe,{active:(k().style?.fontWeight||`normal`)===`normal`&&(k().style?.fontStyle||`normal`)===`normal`}),r(Ee,(A(k()),F(()=>k().style?.borderRadius||4)))}),O(`input`,s,Ge),O(`input`,m,e=>Je(`width`,e)),O(`wheel`,m,e=>rt(e,100,void 0,10)),O(`click`,h,()=>nt(`annotation-width`,-1,100)),O(`click`,g,()=>nt(`annotation-width`,1,100)),O(`input`,b,e=>Je(`height`,e)),O(`wheel`,b,e=>rt(e,20,void 0,10)),O(`click`,C,()=>nt(`annotation-height`,-1,20)),O(`click`,w,()=>nt(`annotation-height`,1,20)),O(`click`,D,()=>{Ue(`fontSize`,32),Ue(`fontWeight`,`bold`)}),O(`click`,ne,()=>{Ue(`fontSize`,24),Ue(`fontWeight`,`bold`)}),O(`click`,oe,()=>{Ue(`fontSize`,18),Ue(`fontWeight`,`bold`)}),O(`click`,L,()=>{Ue(`fontSize`,14),Ue(`fontWeight`,`normal`)}),O(`input`,ce,e=>Ke(`fontSize`,e)),O(`wheel`,ce,e=>rt(e,8,72,1)),O(`click`,le,()=>nt(`annotation-font-size`,-1,8,72,1)),O(`click`,H,()=>nt(`annotation-font-size`,1,8,72,1)),O(`click`,de,()=>Ue(`textAlign`,`left`)),O(`click`,me,()=>Ue(`textAlign`,`center`)),O(`click`,W,()=>Ue(`textAlign`,`right`)),O(`click`,_e,()=>{Ue(`fontWeight`,(k().style?.fontWeight||`normal`)===`bold`?`normal`:`bold`)}),O(`click`,ye,()=>{Ue(`fontStyle`,(k().style?.fontStyle||`normal`)===`italic`?`normal`:`italic`)}),O(`click`,q,()=>{Ue(`fontWeight`,`normal`),Ue(`fontStyle`,`normal`)}),O(`input`,Ee,e=>Ke(`borderRadius`,e)),O(`wheel`,Ee,e=>rt(e,0,16,1)),O(`click`,X,()=>nt(`annotation-border-radius`,-1,0,16,1)),O(`click`,De,()=>nt(`annotation-border-radius`,1,0,16,1)),E(e,t)},st=e=>{var t=_x();let n;var i=M(t),a=M(i),s=P(M(a),2),c=M(s),l=P(M(c),2);re(l),o(c);var u=P(c,2),d=P(M(u),2);re(d),o(u),o(s),o(a);var f=P(a,2),p=P(M(f),2),m=M(p),h=P(M(m),2);re(h),o(m);var g=P(m,2),_=P(M(g),2);re(_),o(g),o(p),o(f);var y=P(f,2),b=P(M(y),2),x=M(b);re(x);var S=P(x,2);re(S),o(b);var C=P(b,2),w=M(C),T=P(M(w),2),ee=M(T);re(ee);var D=P(ee,2),te=P(D,2);o(T),o(w),o(C),o(y),o(i),o(t),K((e,i,a,o,s)=>{n=v(t,1,`inspector svelte-1nytthg`,null,n,{left:N()===`left`,"no-animation":ie(),embedded:ae()}),r(l,e),r(d,i),r(h,a),r(_,o),r(x,(A(k()),F(()=>k().style?.strokeColor||`#ffffff`))),r(S,s),r(ee,(A(k()),F(()=>k().style?.strokeWidth||2)))},[()=>(A(k()),F(()=>Math.round(k().position.x))),()=>(A(k()),F(()=>Math.round(k().position.y))),()=>(A(k()),F(()=>Math.round(k().endPosition?.x||k().position.x))),()=>(A(k()),F(()=>Math.round(k().endPosition?.y||k().position.y))),()=>(A(k()),F(()=>(k().style?.strokeColor||`#ffffff`).toUpperCase()))]),O(`input`,l,Ye),O(`input`,d,Xe),O(`input`,h,Ze),O(`input`,_,$),O(`input`,x,e=>qe(`strokeColor`,e)),O(`input`,S,Qe),O(`input`,ee,e=>Ke(`strokeWidth`,e)),O(`wheel`,ee,e=>rt(e,1,20,1)),O(`click`,D,()=>nt(`annotation-stroke-width`,-1,1,20,1)),O(`click`,te,()=>nt(`annotation-stroke-width`,1,1,20,1)),E(e,t)},ct=e=>{var t=vx();let n;var i=M(t),a=M(i),s=P(M(a),2),c=M(s),l=P(M(c),2);re(l),o(c);var u=P(c,2),d=P(M(u),2);re(d),o(u),o(s),o(a);var f=P(a,2),p=P(M(f),2),m=M(p);re(m);var h=P(m,2);re(h),o(p);var g=P(p,2),_=M(g),y=P(M(_),2),b=M(y);re(b);var x=P(b,2),S=P(x,2);o(y),o(_),o(g),o(f),o(i),o(t),K((e,i,a)=>{n=v(t,1,`inspector svelte-1nytthg`,null,n,{left:N()===`left`,"no-animation":ie(),embedded:ae()}),r(l,e),r(d,i),r(m,(A(k()),F(()=>k().style?.strokeColor||`#ffffff`))),r(h,a),r(b,(A(k()),F(()=>k().style?.strokeWidth||2)))},[()=>(A(k()),F(()=>Math.round(k().position.x))),()=>(A(k()),F(()=>Math.round(k().position.y))),()=>(A(k()),F(()=>(k().style?.strokeColor||`#ffffff`).toUpperCase()))]),O(`input`,l,Ye),O(`input`,d,Xe),O(`input`,m,e=>qe(`strokeColor`,e)),O(`input`,h,Qe),O(`input`,b,e=>Ke(`strokeWidth`,e)),O(`wheel`,b,e=>rt(e,1,20,1)),O(`click`,x,()=>nt(`annotation-stroke-width`,-1,1,20,1)),O(`click`,S,()=>nt(`annotation-stroke-width`,1,1,20,1)),E(e,t)},lt=e=>{var n=Fx();let i;var a=M(n),s=M(a),l=e=>{var t=yx();E(e,t)};Z(s,e=>{A(T()),F(()=>T().error)&&e(l)});var m=P(s,2),g=e=>{var n=te(),i=G(n);f(i,1,()=>(x(w),F(()=>Object.entries(x(w)))),h,(e,n)=>{let i=pe(()=>{let[e,t]=x(n);return{folder:e,folderProps:t}});var a=te(),s=G(a),c=e=>{{let n=pe(()=>(x(Ve),A(x(i).folder),F(()=>x(Ve)[x(i).folder]??!0)));Ib(e,{get folderName(){return x(i).folder},get isExpanded(){return x(n)},$$events:{toggle:()=>He(x(i).folder)},children:(e,n)=>{var a=te(),s=G(a);f(s,1,()=>x(i).folderProps,h,(e,n)=>{let a=pe(()=>x(n)),s=pe(()=>(A(T()),A(x(a).key),A(x(i).folder),F(()=>`prop-${T().id}-${x(a).key}-${x(i).folder}`))),c=pe(()=>x(a).controlType===`vec2`||x(a).controlType===`vec3`||x(a).controlType===`vec2i`||x(a).controlType===`vec3i`||x(a).controlType===`vector`);var l=wx();let u;var d=M(l),f=e=>{var n=xx(),r=G(n),i=q(r,!0);t(r,(e,t)=>je?.(e,t),()=>x(a).key),t(r,(e,t)=>Me?.(e,t),()=>x(a).key);var c=P(r,2),l=e=>{var t=te(),n=G(t);S(n,()=>`${x(a).key}-${x(ke)}`,e=>{var t=bx();bo(M(t),{size:9}),o(t),K(e=>v(t,1,`key-toggle ${e??``}`,`svelte-1nytthg`),[()=>(A(T()),A(cx),A(x(a).key),F(()=>T()?cx(T(),x(a).key):`none`))]),O(`click`,t,I(()=>Ne(x(a).key))),E(e,t)}),E(e,t)},u=B(()=>(A(fx),A(x(a).prop),F(()=>fx(x(a).prop.value))));Z(c,e=>{x(u)&&e(l)}),K(()=>{X(r,`for`,x(s)),D(i,x(a).displayName)}),E(e,n)};Z(d,e=>{x(a).displayName!==null&&e(f)});var p=P(d,2),m=e=>{var t=te(),n=G(t);S(n,()=>(A(x(a).key),A(x(a).prop),F(()=>`${x(a).key}-${x(a).prop.value}-${x(a).prop.expression}-${JSON.stringify(x(a).prop.params)}`)),e=>{ax(e,{get prop(){return x(a).prop},get propKey(){return x(a).key},get node(){return T()},onValueChange:e=>Le([x(a).key,x(a).prop],e),children:(e,t)=>{Yy(e,{get prop(){return x(a).prop},get id(){return x(s)},onValueChange:e=>Le([x(a).key,x(a).prop],e)})},$$slots:{default:!0}})}),E(e,t)},h=e=>{var t=te(),n=G(t);S(n,()=>(A(x(a).key),A(x(a).prop),x(b),x(xe),F(()=>`${x(a).key}-${JSON.stringify(x(a).prop.value)}-${x(a).prop.expression}-${x(b)}-${x(xe)}`)),e=>{ax(e,{get prop(){return x(a).prop},get propKey(){return x(a).key},get node(){return T()},onValueChange:e=>Le([x(a).key,x(a).prop],e),children:(e,t)=>{ib(e,{get prop(){return x(a).prop},get id(){return x(s)},onValueChange:e=>Le([x(a).key,x(a).prop],e)})},$$slots:{default:!0}})}),E(e,t)},g=e=>{var t=te(),n=G(t);S(n,()=>(A(x(a).key),A(x(a).prop),F(()=>`${x(a).key}-${JSON.stringify(x(a).prop.value)}-${x(a).prop.expression}`)),e=>{ax(e,{get prop(){return x(a).prop},get propKey(){return x(a).key},get node(){return T()},onValueChange:e=>Le([x(a).key,x(a).prop],e),children:(e,t)=>{db(e,{get prop(){return x(a).prop},get id(){return x(s)},onValueChange:e=>Le([x(a).key,x(a).prop],e)})},$$slots:{default:!0}})}),E(e,t)},_=e=>{Ub(e,{get prop(){return x(a).prop},get id(){return x(s)},onValueChange:e=>Le([x(a).key,x(a).prop],e)})},y=e=>{vb(e,{get prop(){return x(a).prop},get id(){return x(s)},onValueChange:e=>Le([x(a).key,x(a).prop],e)})},C=e=>{var t=te(),n=G(t);S(n,()=>(A(x(a).key),A(x(a).prop),F(()=>`${x(a).key}-${x(a).prop.expression}`)),e=>{ax(e,{get prop(){return x(a).prop},get propKey(){return x(a).key},get node(){return T()},onValueChange:e=>Le([x(a).key,x(a).prop],e),children:(e,t)=>{var n=te(),i=G(n),o=e=>{var t=Sx();z(t),K(()=>{X(t,`id`,x(s)),r(t,(A(x(a).prop),F(()=>x(a).prop.value||``)))}),O(`input`,t,e=>ze([x(a).key,x(a).prop],e)),E(e,t)},c=e=>{var t=Cx();re(t),K(()=>{X(t,`id`,x(s)),r(t,(A(x(a).prop),F(()=>x(a).prop.value||``)))}),O(`input`,t,e=>Re([x(a).key,x(a).prop],e)),E(e,t)};Z(i,e=>{x(a).controlType===`textarea`?e(o):e(c,-1)}),E(e,n)},$$slots:{default:!0}})}),E(e,t)},w=e=>{var t=te(),n=G(t);S(n,()=>(A(x(a).key),A(x(a).prop),F(()=>`${x(a).key}-${x(a).prop.value}-${x(a).prop.expression}`)),e=>{ax(e,{get prop(){return x(a).prop},get propKey(){return x(a).key},get node(){return T()},onValueChange:e=>Le([x(a).key,x(a).prop],e),children:(e,t)=>{Nb(e,{get prop(){return x(a).prop},get id(){return x(s)},onValueChange:e=>Le([x(a).key,x(a).prop],e)})},$$slots:{default:!0}})}),E(e,t)},ee=e=>{var t=te(),n=G(t);S(n,()=>(A(x(a).key),A(x(a).prop),F(()=>`${x(a).key}-${x(a).prop.value}-${x(a).prop.expression}`)),e=>{ax(e,{get prop(){return x(a).prop},get propKey(){return x(a).key},get node(){return T()},onValueChange:e=>Le([x(a).key,x(a).prop],e),children:(e,t)=>{Eb(e,{get prop(){return x(a).prop},get id(){return x(s)},onValueChange:e=>Le([x(a).key,x(a).prop],e)})},$$slots:{default:!0}})}),E(e,t)},k=e=>{jb(e,{get prop(){return x(a).prop},get id(){return x(s)},onValueChange:()=>{typeof x(a).prop.value==`function`&&x(a).prop.value(),typeof x(a).prop.onChange==`function`&&x(a).prop.onChange(x(a).prop,!0)}})},ne=e=>{var t=Cx();re(t),K(e=>{X(t,`id`,x(s)),r(t,e)},[()=>(A(x(a).prop),F(()=>String(x(a).prop.value||``)))]),O(`input`,t,e=>Re([x(a).key,x(a).prop],e)),E(e,t)};Z(p,e=>{x(a).controlType===`number`||x(a).controlType===`slider`||x(a).controlType===`int`?e(m):x(c)?e(h,1):x(a).controlType===`color`?e(g,2):x(a).controlType===`colorramp`?e(_,3):(A(x(a).controlType),A(x(a).prop),F(()=>x(a).controlType===`image`||x(a).controlType===`text`&&x(a).prop.params?.accept)?e(y,4):x(a).controlType===`text`||x(a).controlType===`textarea`?e(C,5):x(a).controlType===`boolean`?e(w,6):(A(x(a).controlType),A(x(a).prop),F(()=>x(a).controlType===`select`&&x(a).prop.params?.options)?e(ee,7):x(a).controlType===`button`?e(k,8):e(ne,-1)))}),o(l),K(()=>u=v(l,1,`prop-group svelte-1nytthg`,null,u,{"prop-group-row":x(c)})),E(e,l)}),E(e,a)},$$slots:{default:!0}})}},l=e=>{var n=te(),a=G(n);f(a,1,()=>x(i).folderProps,h,(e,n)=>{let a=pe(()=>x(n)),s=pe(()=>(A(T()),A(x(a).key),A(x(i).folder),F(()=>`prop-${T().id}-${x(a).key}-${x(i).folder}`))),c=pe(()=>x(a).controlType===`vec2`||x(a).controlType===`vec3`||x(a).controlType===`vec2i`||x(a).controlType===`vec3i`||x(a).controlType===`vector`);var l=wx();let u;var d=M(l),f=e=>{var n=xx(),r=G(n),i=q(r,!0);t(r,(e,t)=>je?.(e,t),()=>x(a).key),t(r,(e,t)=>Me?.(e,t),()=>x(a).key);var c=P(r,2),l=e=>{var t=te(),n=G(t);S(n,()=>`${x(a).key}-${x(ke)}`,e=>{var t=bx();bo(M(t),{size:9}),o(t),K(e=>v(t,1,`key-toggle ${e??``}`,`svelte-1nytthg`),[()=>(A(T()),A(cx),A(x(a).key),F(()=>T()?cx(T(),x(a).key):`none`))]),O(`click`,t,I(()=>Ne(x(a).key))),E(e,t)}),E(e,t)},u=B(()=>(A(fx),A(x(a).prop),F(()=>fx(x(a).prop.value))));Z(c,e=>{x(u)&&e(l)}),K(()=>{X(r,`for`,x(s)),D(i,x(a).displayName)}),E(e,n)};Z(d,e=>{x(a).displayName!==null&&e(f)});var p=P(d,2),m=e=>{ax(e,{get prop(){return x(a).prop},get propKey(){return x(a).key},get node(){return T()},onValueChange:e=>Le([x(a).key,x(a).prop],e),children:(e,t)=>{Yy(e,{get prop(){return x(a).prop},get id(){return x(s)},onValueChange:e=>Le([x(a).key,x(a).prop],e)})},$$slots:{default:!0}})},h=e=>{var t=te(),n=G(t);S(n,()=>(A(x(a).key),A(x(a).prop),x(b),x(xe),F(()=>`${x(a).key}-${JSON.stringify(x(a).prop.value)}-${x(a).prop.expression}-${x(b)}-${x(xe)}`)),e=>{ax(e,{get prop(){return x(a).prop},get propKey(){return x(a).key},get node(){return T()},onValueChange:e=>Le([x(a).key,x(a).prop],e),children:(e,t)=>{ib(e,{get prop(){return x(a).prop},get id(){return x(s)},onValueChange:e=>Le([x(a).key,x(a).prop],e)})},$$slots:{default:!0}})}),E(e,t)},g=e=>{var t=te(),n=G(t);S(n,()=>(A(x(a).key),A(x(a).prop),F(()=>`${x(a).key}-${JSON.stringify(x(a).prop.value)}-${x(a).prop.expression}`)),e=>{ax(e,{get prop(){return x(a).prop},get propKey(){return x(a).key},get node(){return T()},onValueChange:e=>Le([x(a).key,x(a).prop],e),children:(e,t)=>{db(e,{get prop(){return x(a).prop},get id(){return x(s)},onValueChange:e=>Le([x(a).key,x(a).prop],e)})},$$slots:{default:!0}})}),E(e,t)},_=e=>{Ub(e,{get prop(){return x(a).prop},get id(){return x(s)},onValueChange:e=>Le([x(a).key,x(a).prop],e)})},y=e=>{vb(e,{get prop(){return x(a).prop},get id(){return x(s)},onValueChange:e=>Le([x(a).key,x(a).prop],e)})},C=e=>{var t=te(),n=G(t);S(n,()=>(A(x(a).key),A(x(a).prop),F(()=>`${x(a).key}-${x(a).prop.expression}`)),e=>{ax(e,{get prop(){return x(a).prop},get propKey(){return x(a).key},get node(){return T()},onValueChange:e=>Le([x(a).key,x(a).prop],e),children:(e,t)=>{var n=te(),i=G(n),o=e=>{var t=Sx();z(t),K(()=>{X(t,`id`,x(s)),r(t,(A(x(a).prop),F(()=>x(a).prop.value||``)))}),O(`input`,t,e=>ze([x(a).key,x(a).prop],e)),E(e,t)},c=e=>{var t=Cx();re(t),K(()=>{X(t,`id`,x(s)),r(t,(A(x(a).prop),F(()=>x(a).prop.value||``)))}),O(`input`,t,e=>Re([x(a).key,x(a).prop],e)),E(e,t)};Z(i,e=>{x(a).controlType===`textarea`?e(o):e(c,-1)}),E(e,n)},$$slots:{default:!0}})}),E(e,t)},w=e=>{var t=te(),n=G(t);S(n,()=>(A(x(a).key),A(x(a).prop),F(()=>`${x(a).key}-${x(a).prop.value}-${x(a).prop.expression}`)),e=>{ax(e,{get prop(){return x(a).prop},get propKey(){return x(a).key},get node(){return T()},onValueChange:e=>Le([x(a).key,x(a).prop],e),children:(e,t)=>{Nb(e,{get prop(){return x(a).prop},get id(){return x(s)},onValueChange:e=>Le([x(a).key,x(a).prop],e)})},$$slots:{default:!0}})}),E(e,t)},ee=e=>{var t=te(),n=G(t);S(n,()=>(A(x(a).key),A(x(a).prop),F(()=>`${x(a).key}-${x(a).prop.value}-${x(a).prop.expression}`)),e=>{ax(e,{get prop(){return x(a).prop},get propKey(){return x(a).key},get node(){return T()},onValueChange:e=>Le([x(a).key,x(a).prop],e),children:(e,t)=>{Eb(e,{get prop(){return x(a).prop},get id(){return x(s)},onValueChange:e=>Le([x(a).key,x(a).prop],e)})},$$slots:{default:!0}})}),E(e,t)},k=e=>{jb(e,{get prop(){return x(a).prop},get id(){return x(s)},onValueChange:()=>{typeof x(a).prop.value==`function`&&x(a).prop.value(),typeof x(a).prop.onChange==`function`&&x(a).prop.onChange(x(a).prop,!0)}})},ne=e=>{var t=Cx();re(t),K(e=>{X(t,`id`,x(s)),r(t,e)},[()=>(A(x(a).prop),F(()=>String(x(a).prop.value||``)))]),O(`input`,t,e=>Re([x(a).key,x(a).prop],e)),E(e,t)};Z(p,e=>{x(a).controlType===`number`||x(a).controlType===`slider`||x(a).controlType===`int`?e(m):x(c)?e(h,1):x(a).controlType===`color`?e(g,2):x(a).controlType===`colorramp`?e(_,3):(A(x(a).controlType),A(x(a).prop),F(()=>x(a).controlType===`image`||x(a).controlType===`text`&&x(a).prop.params?.accept)?e(y,4):x(a).controlType===`text`||x(a).controlType===`textarea`?e(C,5):x(a).controlType===`boolean`?e(w,6):(A(x(a).controlType),A(x(a).prop),F(()=>x(a).controlType===`select`&&x(a).prop.params?.options)?e(ee,7):x(a).controlType===`button`?e(k,8):e(ne,-1)))}),o(l),K(()=>u=v(l,1,`prop-group svelte-1nytthg`,null,u,{"prop-group-row":x(c)})),E(e,l)}),E(e,n)};Z(s,e=>{x(i).folder===`General`?e(l,-1):e(c)}),E(e,a)}),E(e,n)};Z(m,e=>{x(C),F(()=>x(C).length>0)&&e(g)});var _=P(m,2),y=e=>{var t=Tx(),n=M(t),r=M(n),i=q(r,!0),a=P(r,2),s=q(a,!0);o(n);var l=P(n,2),u=e=>{var t=te(),n=G(t);S(n,()=>(A(T()),x(xe),x(b),x(U),F(()=>`${T().id}-${x(xe)}-${x(b)}-${x(U)}`)),e=>{var t=te(),n=G(t);f(n,1,()=>x(d),e=>e.id,(e,t)=>{Gy(e,{get port(){return x(t)},get node(){return T()},direction:`input`,onChange:e=>Ce(x(t),e)})}),E(e,t)}),E(e,t)};Z(l,e=>{x(c),F(()=>x(c).inputs)&&e(u)}),o(t),K(()=>{D(i,(x(c),F(()=>x(c).inputs?`▾`:`▸`))),D(s,(x(d),F(()=>x(d).length)))}),O(`click`,n,()=>ge(T().id,`inputs`)),E(e,t)};Z(_,e=>{x(d),F(()=>x(d).length>0)&&e(y)});var ee=P(_,2),k=e=>{var n=jx(),r=M(n),i=M(r),a=q(i,!0),s=P(i,2),l=q(s,!0);o(r);var u=P(r,2),d=e=>{var n=te(),r=G(n);S(r,()=>(A(T()),F(()=>T().id)),e=>{var n=te(),r=G(n);f(r,1,()=>x(p),e=>e.name,(e,n)=>{let r=pe(()=>(x(n),F(()=>Fe(x(n).name)))),i=pe(()=>(A(x(r)),F(()=>!!x(r)&&(x(r).type===`number`||x(r).type===`int`))));var a=Ax(),s=M(a),c=e=>{var t=Ex(),r=M(t),i=q(r,!0),a=P(r,2);{let e=pe(()=>(x(n),F(()=>({name:`Selected`,dataType:x(n).dataType,value:x(n).value,connections:[],options:{}}))));Gy(a,{get port(){return x(e)},get node(){return T()},direction:`output`})}o(t),K(()=>D(i,(x(n),F(()=>x(n).options?.label??x(n).name)))),O(`click`,r,()=>De(x(n))),E(e,t)},l=e=>{var i=Ox(),a=M(i),s=M(a),c=q(s,!0);t(s,(e,t)=>Me?.(e,t),()=>x(n).name);var l=P(s,2);S(l,()=>(x(n),x(ke),F(()=>`${x(n).name}-${x(ke)}`)),e=>{var t=Dx();bo(M(t),{size:9}),o(t),K(e=>v(t,1,`key-toggle ${e??``}`,`svelte-1nytthg`),[()=>(A(T()),A(cx),x(n),F(()=>T()?cx(T(),x(n).name):`none`))]),O(`click`,t,I(()=>Ne(x(n).name))),E(e,t)}),o(a);var u=P(a,2);S(u,()=>(x(n),A(x(r)),x(ke),F(()=>`${x(n).name}-${x(r).expression??``}-${x(ke)}`)),e=>{ax(e,{get prop(){return x(r)},get propKey(){return x(n),F(()=>x(n).name)},get node(){return T()},onValueChange:e=>Te(x(n),e),children:(e,t)=>{{let t=pe(()=>(A(T()),x(n),F(()=>`param-${T().id}-${x(n).name}`)));Yy(e,{get prop(){return x(r)},get id(){return x(t)},onValueChange:e=>Te(x(n),e),onExpressionChange:e=>Ie(x(n).name,e)})}},$$slots:{default:!0}})}),o(i),K(e=>{X(s,`title`,e),D(c,(x(n),F(()=>x(n).options?.label??x(n).name)))},[()=>(x(n),A(Yl),F(()=>`${x(n).options?.label??x(n).name} · ${Yl(x(n).dataType)}`))]),E(e,i)},u=e=>{var t=te(),i=G(t);S(i,()=>(x(n),A(x(r)),x(ke),F(()=>`${x(n).name}-${x(r).expression??``}-${x(ke)}`)),e=>{ax(e,{get prop(){return x(r)},get propKey(){return x(n),F(()=>x(n).name)},get node(){return T()},onValueChange:e=>Te(x(n),e),children:(e,t)=>{{let t=pe(()=>(x(n),F(()=>({name:x(n).options?.label??x(n).name,dataType:x(n).dataType,value:x(n).value,connections:[],options:x(n).options??{}}))));Gy(e,{get port(){return x(t)},get node(){return T()},direction:`input`,onChange:e=>Te(x(n),e)})}},$$slots:{default:!0}})}),E(e,t)},d=e=>{{let t=pe(()=>(x(n),F(()=>({name:x(n).options?.label??x(n).name,dataType:x(n).dataType,value:x(n).value,connections:[],options:x(n).options??{}}))));Gy(e,{get port(){return x(t)},get node(){return T()},direction:`input`,onChange:e=>Te(x(n),e)})}};Z(s,e=>{x(n),F(()=>x(n).options?.action)?e(c):x(i)&&x(r)?e(l,1):x(r)?e(u,2):e(d,-1)});var f=P(s,2),p=e=>{var t=kx();let r;var i=q(t,!0);K(()=>{r=v(t,1,`promote svelte-1nytthg`,null,r,{on:x(n).promoted}),X(t,`title`,(x(n),F(()=>x(n).promoted?`Demote back to a parameter — removes the pin and any wire into it`:`Promote to an input pin so it can be driven from another node`))),D(i,(x(n),F(()=>x(n).promoted?`pin ✓`:`pin`)))}),O(`click`,t,()=>Oe(x(n))),E(e,t)};Z(f,e=>{x(n),F(()=>!x(n).options?.action&&x(n).options?.promotable!==!1)&&e(p)}),o(a),t(a,(e,t)=>je?.(e,t),()=>x(n).name),E(e,a)}),E(e,n)}),E(e,n)};Z(u,e=>{x(c),F(()=>x(c).params)&&e(d)}),o(n),K(()=>{D(a,(x(c),F(()=>x(c).params?`▾`:`▸`))),D(l,(x(p),F(()=>x(p).length)))}),O(`click`,r,()=>ge(T().id,`params`)),E(e,n)};Z(ee,e=>{x(p),F(()=>x(p).length>0)&&e(k)});var ne=P(ee,2),j=e=>{var t=Mx(),n=M(t),r=M(n),i=q(r,!0),a=P(r,2),s=q(a,!0);o(n);var l=P(n,2),d=e=>{var t=te(),n=G(t);S(n,()=>(A(T()),x(xe),x(b),x(U),F(()=>`${T().id}-${x(xe)}-${x(b)}-${x(U)}`)),e=>{var t=te(),n=G(t);f(n,1,()=>x(u),e=>e.id,(e,t)=>{Gy(e,{get port(){return x(t)},get node(){return T()},direction:`output`,onChange:void 0})}),E(e,t)}),E(e,t)};Z(l,e=>{x(c),F(()=>x(c).outputs)&&e(d)}),o(t),K(()=>{D(i,(x(c),F(()=>x(c).outputs?`▾`:`▸`))),D(s,(x(u),F(()=>x(u).length)))}),O(`click`,n,()=>ge(T().id,`outputs`)),E(e,t)};Z(ne,e=>{x(u),F(()=>x(u).length>0)&&e(j)});var oe=P(ne,2),L=e=>{var t=Nx();E(e,t)};Z(oe,e=>{x(C),x(d),x(p),x(u),F(()=>x(C).length===0&&x(d).length===0&&x(p).length===0&&x(u).length===0)&&e(L)});var R=P(oe,2),se=e=>{var t=Px(),n=M(t),r=q(n,!0);o(t),K(()=>D(r,(A(T()),F(()=>T().comment)))),E(e,t)};Z(R,e=>{A(T()),F(()=>T().comment)&&e(se)}),o(a),o(n),K(()=>i=v(n,1,`inspector svelte-1nytthg`,null,i,{left:N()===`left`,"no-animation":ie(),embedded:ae()})),E(e,n)};Z(at,e=>{A(k()),F(()=>k()&&k().type===`text`)?e(ot):(A(k()),F(()=>k()&&k().type===`line`)?e(st,1):(A(k()),F(()=>k()&&k().type===`polyline`)?e(ct,2):T()&&e(lt,3)))}),E(e,it),Ee(),s()}var Lx=u(`<span class="hint svelte-i5w4kg">collapsed, open one to edit it</span>`),Rx=u(`<div class="body svelte-i5w4kg"><!></div>`),zx=u(`<section class="section svelte-i5w4kg"><button class="section-heading svelte-i5w4kg"><span class="twisty svelte-i5w4kg"> </span> <span class="label svelte-i5w4kg"> </span> <span class="type svelte-i5w4kg"> </span></button> <!></section>`),Bx=u(`<div class="stack svelte-i5w4kg"><div class="summary svelte-i5w4kg"><span class="count"> </span> <!></div> <div class="sections svelte-i5w4kg"></div></div>`);function Vx(e,t){ee(t,!1);let n=Y(),r=V(t,`nodes`,24,()=>[]),i=V(t,`annotation`,8,null),a=V(t,`graph`,8,null),s=V(t,`position`,8,`right`),c=V(t,`skipAnimation`,8,!1),l=V(t,`onRecordHistory`,8,void 0),u=V(t,`onAction`,8,void 0),d=new Map,p=Y(0);function m(e){d.set(e,!h(e,x(p),x(n))),L(p,x(p)+1)}function h(e,t,n){return d.get(e)??!n}function g(e){return e.id}J(()=>A(r()),()=>{L(n,r().length>12)}),he(),ue();var _=te(),v=G(_),y=e=>{{let t=pe(()=>(A(r()),F(()=>r()[0]??null)));Ix(e,{get node(){return x(t)},get annotation(){return i()},get graph(){return a()},get position(){return s()},get skipAnimation(){return c()},get onRecordHistory(){return l()},get onAction(){return u()}})}},b=e=>{var t=Bx(),i=M(t),c=M(i),d=q(c),_=P(c,2),v=e=>{var t=Lx();E(e,t)};Z(_,e=>{x(n)&&e(v)}),o(i);var y=P(i,2);f(y,5,r,e=>e.id,(e,t)=>{let r=pe(()=>(x(t),x(p),x(n),F(()=>h(x(t).id,x(p),x(n)))));var i=zx(),c=M(i),d=M(c),f=q(d,!0),_=P(d,2),v=q(_,!0),y=P(_,2),b=q(y,!0);o(c);var S=P(c,2),C=e=>{var n=Rx();Ix(M(n),{get node(){return x(t)},get graph(){return a()},get position(){return s()},skipAnimation:!0,embedded:!0,get onRecordHistory(){return l()},get onAction(){return u()}}),o(n),E(e,n)};Z(S,e=>{x(r)&&e(C)}),o(i),K(e=>{X(c,`aria-expanded`,x(r)),D(f,x(r)?`▾`:`▸`),D(v,e),D(b,(x(t),F(()=>x(t).type??``)))},[()=>(x(t),F(()=>g(x(t))))]),O(`click`,c,()=>m(x(t).id)),E(e,i)}),o(y),o(t),K(()=>D(d,`${A(r()),F(()=>r().length)??``} nodes selected`)),E(e,t)};Z(v,e=>{A(r()),F(()=>r().length<=1)?e(y):e(b,-1)}),E(e,_),Ee()}var Hx=u(`<div class="panel-wrapper svelte-z0ewp0"><!></div>`);function Ux(e,t){ee(t,!1);let n=()=>we(_a,`$panelLockStore`,a),r=()=>we(B_,`$selectedNodeIds`,a),i=()=>we(ga,`$sharedContextStore`,a),[a,s]=ne(),c=Y(),l=Y(),u=Y(),d=Y(),f=Y(),p=V(t,`panelId`,8),m=V(t,`panelApi`,8),h=V(t,`graph`,12,void 0),g=V(t,`selectedNode`,12,null),_=V(t,`selectedAnnotation`,12,null),v=V(t,`onRecordHistory`,12,void 0),y=V(t,`onPanelAction`,12,void 0),b=Y(null);J(()=>(n(),A(p())),()=>{L(c,n().get(p()))}),J(()=>x(c),()=>{L(l,x(c)?.isLocked??!1)}),J(()=>i(),()=>{i()&&(h(i().graph),g(i().selectedNode),_(i().selectedAnnotation),v(i().onRecordHistory),y(i().onPanelAction))}),J(()=>(x(l),x(c),A(g())),()=>{L(u,x(l)?x(c)?.lockedNode:g())}),J(()=>(x(l),x(c),A(_())),()=>{L(d,x(l)?x(c)?.lockedAnnotationId:_())}),J(()=>(x(l),x(u),A(h()),r(),A(g())),()=>{L(f,x(l)?x(u)?[x(u)]:[]:H_(h()??null,r(),g()))}),J(()=>(A(h()),x(d)),()=>{h()&&x(d)?L(b,h().getAnnotation(x(d))):L(b,null)}),J(()=>(A(m()),x(l),x(f),x(b)),()=>{if(m()?.setTitle){let e=x(l)?`~ `:``;x(f).length>1?m().setTitle(`${e}Parameters: ${x(f).length} nodes`):x(f).length===1?m().setTitle(`${e}Parameters: ${x(f)[0].id}`):x(b)?m().setTitle(`${e}Parameters: ${x(b).type}`):m().setTitle(`${e}Parameters`)}}),he(),ue();var S=Hx(),C=M(S);{let e=pe(()=>h()??null);Vx(C,{get nodes(){return x(f)},get annotation(){return x(b)},get graph(){return x(e)},position:`right`,skipAnimation:!0,get onRecordHistory(){return v()},get onAction(){return y()}})}o(S),E(e,S),Ee(),s()}function Wx(e){let t=new Uint8Array(e);if(String.fromCharCode(...t.subarray(0,6))!==`NUMPY`)throw Error(`not a .npy file`);let n=new DataView(e),r=t[6],i=r>=2?n.getUint32(8,!0):n.getUint16(8,!0),a=r>=2?12:10,o=String.fromCharCode(...t.subarray(a,a+i)),s=o.match(/'descr':\s*'([^']+)'/)?.[1];if(!s)throw Error(`.npy header has no dtype`);if(/'fortran_order':\s*True/.test(o))throw Error(`Fortran-ordered .npy is not supported`);let c=(o.match(/'shape':\s*\(([^)]*)\)/)?.[1]??``).split(`,`).map(e=>e.trim()).filter(Boolean).map(Number),l=a+i,u=c.reduce((e,t)=>e*t,1);if(s===`<f4`||s===`=f4`)return{data:new Float32Array(e,l,u),shape:c,dtype:s};let d=(()=>{switch(s){case`<f8`:case`=f8`:return new Float64Array(e,l,u);case`|u1`:case`<u1`:case`=u1`:case`|b1`:return new Uint8Array(e,l,u);case`|i1`:return new Int8Array(e,l,u);case`<i2`:return new Int16Array(e,l,u);case`<u2`:return new Uint16Array(e,l,u);case`<i4`:return new Int32Array(e,l,u);case`<u4`:return new Uint32Array(e,l,u);default:throw Error(`.npy dtype ${s} is not supported`)}})();return{data:d instanceof Float64Array?d:Float64Array.from(d),shape:c,dtype:s}}var Gx=1400,Kx=1e5;function qx(e,t,n){t<e.minX&&(e.minX=t),n<e.minY&&(e.minY=n),t>e.maxX&&(e.maxX=t),n>e.maxY&&(e.maxY=n)}function Jx(){return{minX:1/0,minY:1/0,maxX:-1/0,maxY:-1/0}}async function Yx(e){if(e&&typeof e==`object`&&e.kind===`geometry-file`){let t=e;if(t.format!==`npy`||t.attribute?.level!==`point`||t.attribute?.name!==`P`)return[];e=t.path}if(typeof e==`string`){if(!e.endsWith(`.npy`))return[];let t=e.replace(/^\.?\//,``),n=await fetch(`/api/media/${t.split(`/`).map(encodeURIComponent).join(`/`)}?raw=1`);if(!n.ok)return[];let r=Wx(await n.arrayBuffer()),i=r.shape.length>1?r.shape[1]:1;if(i<2)return[];let a=[];for(let e=0;e+1<r.data.length;e+=i)a.push([r.data[e],r.data[e+1]]);return a}let t=Array.isArray(e)?e:e?.points;return Array.isArray(t)?t.map(e=>Array.isArray(e)?e:e?.point??e?.position).filter(e=>Array.isArray(e)&&e.length>=2).map(e=>[Number(e[0]),Number(e[1])]):[]}function Xx(e){let t=Array.isArray(e)?e:e?.polylines??e?.paths;return Array.isArray(t)?t.map(e=>{let t=Array.isArray(e)?e:e?.points??e?.path;return Array.isArray(t)?t.filter(e=>Array.isArray(e)&&e.length>=2).map(e=>[Number(e[0]),Number(e[1])]):null}).filter(e=>!!(e&&e.length>1)):[]}function Zx(e){let t=Array.isArray(e)?e:e?.segments??e?.lines;if(!Array.isArray(t))return[];let n=[];for(let e of t)Array.isArray(e)&&(e.length>=4&&typeof e[0]==`number`?n.push([[Number(e[0]),Number(e[1])],[Number(e[2]),Number(e[3])]]):Array.isArray(e[0])&&e.length>=2&&n.push(e.slice(0,2).map(e=>[Number(e[0]),Number(e[1])])));return n}async function Qx(e,t){let n=Jx(),r=t===`geometry`?bv(e,Kx):null,i=t===`geometry`?r?.points??[]:t===`points`?await Yx(e):[],a=t===`geometry`?r?.paths??[]:t===`polyline`?Xx(e):[],o=t===`lines`?Zx(e):[],s=t===`rects`?Array.isArray(e)?e:e?.rects:[],c=Array.isArray(s)?s.map(e=>Array.isArray(e)?e:e?.rect??[e?.x,e?.y,e?.width,e?.height]).filter(e=>Array.isArray(e)&&e.length>=4&&e.every(Number.isFinite)):[];if(i.forEach(([e,t])=>qx(n,e,t)),a.forEach(e=>e.forEach(([e,t])=>qx(n,e,t))),o.forEach(e=>e.forEach(([e,t])=>qx(n,e,t))),c.forEach(([e,t,r,i])=>{qx(n,e,t),qx(n,e+r,t+i)}),!Number.isFinite(n.minX)||!Number.isFinite(n.maxX))return null;let l=Math.max(n.maxX-n.minX,1),u=Math.max(n.maxY-n.minY,1),d=Gx/Math.max(l,u),f=Math.max(1,Math.round(l*d)),p=Math.max(1,Math.round(u*d)),m=document.createElement(`canvas`);m.width=f,m.height=p;let h=m.getContext(`2d`);if(!h)return null;h.fillStyle=`#ffffff`,h.fillRect(0,0,f,p);let g=e=>(e-n.minX)*d,_=e=>(t===`geometry`?n.maxY-e:e-n.minY)*d;h.fillStyle=`#111111`,h.strokeStyle=`#111111`,h.lineWidth=1;let v=i.length>4e3?.6:i.length>800?1:1.8;for(let[e,t]of i)h.beginPath(),h.arc(g(e),_(t),v,0,Math.PI*2),h.fill();for(let e of a)h.beginPath(),e.forEach(([e,t],n)=>n===0?h.moveTo(g(e),_(t)):h.lineTo(g(e),_(t))),h.stroke();for(let[e,t]of o)h.beginPath(),h.moveTo(g(e[0]),_(e[1])),h.lineTo(g(t[0]),_(t[1])),h.stroke();for(let[e,t,n,r]of c)h.strokeRect(g(e),_(t),n*d,r*d);let y=t===`geometry`?r?.summary??`No geometry`:t===`points`?`${i.length.toLocaleString()} points`:t===`polyline`?`${a.length.toLocaleString()} chains · ${a.reduce((e,t)=>e+t.length,0).toLocaleString()} vertices`:t===`lines`?`${o.length.toLocaleString()} segments`:`${c.length.toLocaleString()} rects`;return!i.length&&!a.length&&!o.length&&!c.length?null:{url:m.toDataURL(`image/png`),width:f,height:p,summary:y}}var $x=2e5;function eS(e){if(!e)return`none`;let t=e.length;if(t===0)return`empty`;let n=t>$x?Math.ceil(t/$x):1,r=2166136261;for(let i=0;i<t;i+=n){let t=e[i],n=Number.isFinite(t)?Math.round(t*4096)|0:2147483647;r^=n&255,r=Math.imul(r,16777619),r^=n>>>8&255,r=Math.imul(r,16777619),r^=n>>>16&255,r=Math.imul(r,16777619),r^=n>>>24&255,r=Math.imul(r,16777619)}return`${t}/${n}:${(r>>>0).toString(36)}`}function tS(e){return!!e&&typeof e==`object`&&e.kind===`geometry`&&typeof e.pointCount==`number`}function nS(e){let t=[`geometry:${e.pointCount}/${e.vertexCount??0}/${e.primitiveCount??0}`],n=e.point??{};for(let e of Object.keys(n).sort()){let r=n[e];t.push(`${e}${r?.size??``}=${eS(r?.data)}`)}return t.push(`t=${eS(e.topology?.offsets)}`),t.join(`|`)}function rS(e){if(e===void 0)return`undefined`;if(e===null)return`null`;if(typeof e!=`object`)return`${typeof e}:${String(e).slice(0,80)}`;if(tS(e))return nS(e);if(e.kind===`geometry-file`)return`geometry-file:${e.path}:${e.pointCount??``}:${e.attribute?.name??``}`;if(ArrayBuffer.isView(e))return`buffer:${eS(e)}`;let t=eu(e);return t?`image:${t.path}:${t.size.join(`x`)}`:Array.isArray(e)?`array:${e.length}`:`object:${e.width??``}x${e.height??``}:${e.size?.join?.(`x`)??``}`}function iS(e){return[e.nodeId??`view`,e.portId??`port`,e.kind,e.cookVersion,rS(e.value)].join(`:`)}var aS=u(`<button><span class="output-dot svelte-1p3xo7r"></span> </button>`),oS=u(`<div class="output-switcher svelte-1p3xo7r" aria-label="Node outputs"></div>`),sS=u(`<div class="typed-viewer svelte-1p3xo7r"><!></div>`),cS=u(`<div class="viewer-wrapper svelte-1p3xo7r"><!> <div></div> <!></div>`);function lS(e,t){ee(t,!1);let n=Y(),r=Y(),i=Y(),s=V(t,`graph`,8),c=V(t,`selectedNode`,8,null),l=V(t,`selectedAnnotation`,8,null),u=Y(),d=Y(`empty`),p=Y(null),m=Y(null),h=Y(null),g=Y(0),_=Y(0),y=``,b=Y(null),C=Y(null),w=Y(null),T=new Map,te=/\.(png|jpe?g|webp|gif|tiff?|avif|svg|npy)$/i,k=[`path`,`preview`,`image`,`png_path`,`output`,`svg_path`,`field`,`mask`,`height`,`shading`,`density`,`points`];function ne(e){return x(p)?.outputs?.filter(e=>e.value!==void 0)??[]}function j(){let e=x(p)?`${x(p).id}:${x(p).cookInfo?.cookCount??0}:${x(p).outputs?.map(e=>`${e.id}=${rS(e.value)}`).join(`|`)}`:``;e!==y&&(y=e,L(_,x(_)+1),re())}function re(){let e=x(u)?.querySelector(`img[data-cascade-src]`);if(!e||e.dataset.cascadeSrc!==ce())return;let t=e[le];typeof t==`function`&&e.dataset.cascadeVersion!==String(x(_))&&t(x(_))}function N(e){let t=eu(e);return t&&(typeof e!=`string`||te.test(t.path))?t.path:null}function ie(e){if(!e?.outputs)return null;if(e===x(p)&&x(r)){let e=N(x(r).value);if(e)return e}let t=k.map(t=>e.outputs.find(e=>e.name===t)).find(e=>N(e?.value));if(t)return N(t.value);let n=e.outputs.find(e=>N(e?.value));return n?N(n.value):null}function ae(){let e=x(u)?.clientWidth||800,t=Math.min(window.devicePixelRatio||1,2);return Math.max(320,Math.min(3e3,Math.round(e*t)))}function I(){if(!x(u)||!x(p))return;oe(u,x(u).innerHTML=``);let e=null,t=x(r);if(t?.value&&(t.value instanceof HTMLCanvasElement?e=t.value:t.value instanceof pg&&(e=t.value.toCanvas())),!e&&x(p).preview instanceof HTMLCanvasElement&&(e=x(p).preview),e){let t=document.createElement(`div`);t.className=`canvas-viewer`,t.style.width=`100%`,t.style.height=`100%`,t.style.display=`flex`,t.style.alignItems=`center`,t.style.justifyContent=`center`,t.style.background=`var(--surface-void)`;let n=document.createElement(`img`);n.src=e.toDataURL(),n.style.maxWidth=`100%`,n.style.maxHeight=`100%`,n.style.objectFit=`contain`,t.appendChild(n),x(u).appendChild(t)}}let R=new Set([`geometry`,`points`,`lines`,`polyline`,`rects`]),z=Y(null),se=``;async function B(e,t,n){let r=iS({nodeId:x(p)?.id,portId:e?.id,kind:t,value:e?.value,cookVersion:n});if(r!==se){se=r;try{let n=await Qx(e.value,t);L(z,n?.url??null),n?.summary}catch(e){console.warn(`[Viewer] could not draw geometry:`,e),L(z,null)}x(z)&&U()}}function ce(){return x(m)||!x(p)||x(p).preview instanceof HTMLImageElement?null:x(z)&&R.has(x(i))?x(z):ie(x(p))}let le=`__cascadeRefreshVersion`;function H(e,t,n){e.style.position=`relative`,e.style.overflow=`hidden`,e.style.cursor=`grab`;let r=n,i=document.createElement(`img`);i.alt=t,i.draggable=!1,i.dataset.cascadeSrc=t,i.dataset.cascadeVersion=String(n??0),i.style.cssText=`position:absolute;top:0;left:0;transform-origin:0 0;user-select:none;visibility:hidden;max-width:100%;max-height:100%;`,e.appendChild(i);let a=document.createElement(`div`);a.style.cssText=`position:absolute;left:8px;bottom:8px;display:flex;gap:6px;align-items:center;font-size:11px;color:var(--text-tertiary);background:var(--shade-strong);padding:3px 8px;border-radius:4px;`,e.appendChild(a);let o=document.createElement(`span`);a.appendChild(o);function s(e,t){let n=document.createElement(`button`);return n.textContent=e,n.style.cssText=`background:none;border:1px solid var(--border);border-radius:3px;color:var(--text-tertiary);font-size:10px;padding:1px 5px;cursor:pointer;`,n.addEventListener(`mousedown`,e=>e.stopPropagation()),n.addEventListener(`click`,e=>{e.stopPropagation(),t()}),a.appendChild(n),n}let c={width:0,height:0},l=1,u=1,d={x:0,y:0},f=0,m=`${x(p)?.id??`view`}:${t}`,h=T.get(m),g=h?.userAdjusted??!1;function _(){T.set(m,{scale:u,offset:{...d},fitScale:l,userAdjusted:g})}function v(){return{width:e.clientWidth||1,height:e.clientHeight||1}}function y(){i.style.maxWidth=`none`,i.style.maxHeight=`none`,i.style.visibility=`visible`}function b(){i.style.width=c.width+`px`,i.style.height=c.height+`px`,i.style.transform=`translate(`+d.x+`px,`+d.y+`px) scale(`+u+`)`,o.textContent=Math.round(u*100)+`%`;let e=Math.min(c.width,Math.ceil(c.width*u*1.2));c.width&&e>f*1.25&&(f=e,i.src=wv(t,{width:e,version:r}))}function S(){let e=v();!c.width||!c.height||(l=Math.min(e.width/c.width,e.height/c.height),u=l,d={x:(e.width-c.width*u)/2,y:(e.height-c.height*u)/2},g=!1,y(),b(),_())}function C(e,t,n){g=!0;let r=u,i=Math.max(l/8,Math.min(l*20,e));i!==r&&(d.x=t-(t-d.x)*i/r,d.y=n-(n-d.y)*i/r,u=i,b(),_())}let w=1.25;function ee(e){let t=v();C(u*e,t.width/2,t.height/2)}function E(){if(!c.width||u===1)return;let e=v(),t=e.width/2,n=e.height/2;d.x=t-(t-d.x)/u,d.y=n-(n-d.y)/u,u=1,g=!0,b(),_()}function D(e,t){g=!0,d.x+=e,d.y+=t,b(),_()}e.addEventListener(`wheel`,t=>{t.preventDefault();let n=e.getBoundingClientRect();C(u*Math.exp(-t.deltaY*.0015),t.clientX-n.left,t.clientY-n.top)},{passive:!1});let te=!1,O={x:0,y:0};e.addEventListener(`pointerdown`,t=>{t.target?.closest(`button, a`)||(te=!0,O={x:t.clientX,y:t.clientY},e.style.cursor=`grabbing`,e.setPointerCapture(t.pointerId),t.preventDefault())}),e.addEventListener(`pointermove`,e=>{te&&(g=!0,d.x+=e.clientX-O.x,d.y+=e.clientY-O.y,O={x:e.clientX,y:e.clientY},b(),_())});let k=t=>{te&&(te=!1,e.style.cursor=`grab`,e.hasPointerCapture(t.pointerId)&&e.releasePointerCapture(t.pointerId))};e.addEventListener(`pointerup`,k),e.addEventListener(`pointercancel`,k),e.addEventListener(`dblclick`,()=>S()),e.tabIndex=0,e.style.outline=`none`,e.addEventListener(`pointerenter`,()=>{let t=document.activeElement;t&&(t.tagName===`INPUT`||t.tagName===`TEXTAREA`||t.isContentEditable)||e.focus({preventScroll:!0})}),e.addEventListener(`keydown`,e=>{if(e.altKey)return;let t=e.shiftKey?200:40,n=!0;e.key===`h`||e.key===`H`?S():e.key===`+`||e.key===`=`||e.code===`NumpadAdd`?ee(w):e.key===`-`||e.key===`_`||e.code===`NumpadSubtract`?ee(1/w):e.key===`0`||e.code===`Numpad0`?E():e.key===`ArrowLeft`?D(t,0):e.key===`ArrowRight`?D(-t,0):e.key===`ArrowUp`?D(0,t):e.key===`ArrowDown`?D(0,-t):n=!1,n&&(e.preventDefault(),e.stopPropagation())}),s(`Fit`,()=>S()).title=`Fit to panel (H)`,s(`1:1`,()=>E()).title=`Actual pixels, 100% (0)`;let A=document.createElement(`a`);A.textContent=`Original`,A.href=wv(t,{raw:!0,version:n}),A.target=`_blank`,A.rel=`noopener`,A.title=t,A.style.cssText=`color:var(--syntax-variable);text-decoration:none;font-size:10px;`,A.addEventListener(`mousedown`,e=>e.stopPropagation()),a.appendChild(A),i[le]=e=>{r=e,i.dataset.cascadeVersion=String(e),i.src=wv(t,{width:f||ae(),version:e}),A.href=wv(t,{raw:!0,version:e})},i.addEventListener(`load`,()=>{c.width||(c={width:i.naturalWidth,height:i.naturalHeight},h&&h.userAdjusted?(u=h.scale,l=h.fitScale,d={...h.offset},y(),b()):S())}),new ResizeObserver(()=>{c.width&&(g||S())}).observe(e),f=ae(),i.src=wv(t,{width:f,version:n})}function U(){if(!x(u))return;let e=x(u).querySelector(`img[data-cascade-src]`),t=ce();if(e&&t&&e.dataset.cascadeSrc===t){re();return}oe(u,x(u).innerHTML=``);let n=null,a=null;if(x(m)&&x(m).type===`Image`){let e=x(m).outputs?.find(e=>e.name===`image`);e?.value instanceof HTMLImageElement?n=e.value:a=x(m).src}else if(x(p)){if(x(p).preview instanceof HTMLImageElement)n=x(p).preview;else{let e=x(r);e?.value instanceof HTMLImageElement?n=e.value:a=(R.has(x(i))?x(z):null)??N(e?.value)??ie(x(p))}}let o=document.createElement(`div`);if(o.className=`image-viewer`,o.style.width=`100%`,o.style.height=`100%`,o.style.display=`flex`,o.style.alignItems=`center`,o.style.justifyContent=`center`,o.style.background=`var(--surface-void)`,n){let e=n.cloneNode(!0);e.style.maxWidth=`100%`,e.style.maxHeight=`100%`,e.style.objectFit=`contain`,o.appendChild(e)}else a&&H(o,a,x(_));x(u).appendChild(o)}function de(){if(!x(u))return;oe(u,x(u).innerHTML=``);let e=null;if(x(m)&&x(m).type===`Text`)e=x(m).content||``;else if(x(p)){if(x(p).preview&&!(x(p).preview instanceof HTMLElement))e=x(p).preview;else{let t=x(r);t?.value!==void 0&&(e=t.value)}}if(e!==null){let t=document.createElement(`div`);t.className=`text-viewer`,t.style.width=`100%`,t.style.height=`100%`,t.style.padding=`16px`,t.style.overflow=`auto`,t.style.background=`var(--surface-void)`,t.style.color=`var(--text-bright)`,t.style.fontFamily=`Monaco, Menlo, monospace`,t.style.fontSize=`12px`,t.style.lineHeight=`1.6`;let n=``;if(typeof e==`object`)try{n=JSON.stringify(e,null,2)}catch{n=String(e)}else n=String(e);let r=document.createElement(`pre`);r.style.margin=`0`,r.style.whiteSpace=`pre-wrap`,r.style.wordBreak=`break-word`,r.textContent=n,t.appendChild(r),x(u).appendChild(t)}}function fe(){if(!x(u))return;oe(u,x(u).innerHTML=``);let e=document.createElement(`div`);e.className=`empty-viewer`;let t=document.createElement(`p`);t.textContent=`No preview available`,e.appendChild(t);let n=document.createElement(`p`);n.className=`hint`,n.textContent=`Select a node or annotation to view its content`,e.appendChild(n),x(u).appendChild(e)}function pe(){if(x(m)){if(x(m).type===`Image`){let e=x(m).outputs?.find(e=>e.name===`image`);return e?.value instanceof HTMLImageElement?`img:${e.value.src}`:`img:${x(m).src||`none`}`}return x(m).type===`Text`?`text:${x(m).content||``}`:null}if(!x(p))return null;let e=x(r);if(e?.value instanceof HTMLCanvasElement)return`canvas:${e.value.width}x${e.value.height}:${x(p).id}:${x(p).cookInfo?.cookCount??0}`;if(e?.value instanceof HTMLImageElement)return`img:${e.value.src}`;if(R.has(x(i))&&e?.value!==void 0)return B(e,x(i),x(_)),x(z)?`geometry:${se}`:`data:${e.id}:${rS(e.value)}`;if(e?.value!==void 0)return`data:${e.id}:${rS(e.value)}`;if(x(p).preview instanceof HTMLCanvasElement)return`canvas:${x(p).preview.width}x${x(p).preview.height}:${x(p).id}`;if(x(p).preview instanceof HTMLImageElement)return`img:${x(p).preview.src}`;if(x(p).preview){let e=x(p).preview;return`preview:${rS(e)}`}return null}function me(){if((x(p)||x(m))&&x(d)!==`empty`){let e=x(p)?.id||x(m)?.id||null,t=pe();(e!==x(b)||x(d)!==x(w)||t!==x(C))&&(L(b,e),L(w,x(d)),L(C,t),x(d)===`canvas`?I():x(d)===`image`?U():x(d)===`text`?de():x(d)===`typed`&&L(g,x(g)+1))}}let W=!1;function G(){x(d)===`canvas`?I():x(d)===`image`?U():x(d)===`text`?de():x(d)===`typed`&&L(g,x(g)+1)}async function _e(){if(x(p)&&x(p).isDirty&&!W){W=!0;try{await x(p).requestOutput(),j(),G()}finally{W=!1}}else j(),me()}let ve=null,be=Y(0);function q(){ve===null&&(ve=requestAnimationFrame(xe))}function xe(){ve=null;let e=performance.now();e-x(be)>=100&&(L(be,e),_e()),(x(p)||x(m))&&q()}ye(()=>(q(),()=>{ve!==null&&(cancelAnimationFrame(ve),ve=null)})),J(()=>(A(l()),A(c()),A(s())),()=>{if(l())L(m,l()),L(p,null);else if(c())L(p,c()),L(m,null);else if(s()){let e=Array.from(s().cookingNodes||[]);e.length>0?L(p,e[0]):L(p,null),L(m,null)}else L(p,null),L(m,null)}),J(()=>A(s()),()=>{s()&&s().cookingNodes?.size}),J(()=>x(_),()=>{L(n,ne(x(_)))}),J(()=>(x(n),x(h)),()=>{if(!x(n).find(e=>e.id===x(h))){let e=k.map(e=>x(n).find(t=>t.name===e)).find(Boolean);L(h,e?.id??x(n)[0]?.id??null)}}),J(()=>(x(n),x(h)),()=>{L(r,x(n).find(e=>e.id===x(h))??null)}),J(()=>(x(r),Cv),()=>{L(i,x(r)?Yl(x(r).dataType)===`any`?Cv(x(r).value):Yl(x(r).dataType):`any`)}),J(()=>(x(m),x(p),x(_),x(r),x(i),x(z)),()=>{if(x(m)){let e=x(m).type;e===`Image`?x(m).outputs?.find(e=>e.name===`image`)?.value instanceof HTMLImageElement||x(m).src?L(d,`image`):L(d,`empty`):e===`Text`?L(d,`text`):L(d,`empty`)}else if(!x(p))L(d,`empty`);else{x(_);let e=x(r);e&&e.value!==void 0?e.value instanceof HTMLCanvasElement||e.value instanceof pg?L(d,`canvas`):e.value instanceof HTMLImageElement||x(i)===`image`&&N(e.value)||R.has(x(i))&&x(z)?L(d,`image`):L(d,`typed`):x(p).preview?x(p).preview instanceof HTMLCanvasElement?L(d,`canvas`):x(p).preview instanceof HTMLImageElement?L(d,`image`):L(d,`text`):ie(x(p))||R.has(x(i))?L(d,`image`):L(d,`empty`)}}),J(()=>(x(r),x(i),x(_)),()=>{x(r)&&R.has(x(i))&&B(x(r),x(i),x(_))}),J(()=>(x(p),x(m),x(d),x(u)),()=>{x(p),x(m),L(b,null),L(C,null),L(w,null),x(d)===`canvas`?I():x(d)===`image`?U():x(d)===`text`?de():x(d)===`typed`?x(u)&&oe(u,x(u).innerHTML=``):fe()}),J(()=>x(p),()=>{x(p)&&(L(be,0),q())}),he(),ue();var Se=cS(),Ce=M(Se),we=e=>{var t=oS();f(t,5,()=>x(n),e=>e.id,(e,t)=>{var n=aS();let r;var i=M(n),s=P(i);o(n),K((e,o)=>{X(n,`title`,e),r=v(n,1,`svelte-1p3xo7r`,null,r,{active:x(t).id===x(h)}),a(i,`background:${o??``}`),D(s,` ${x(t),F(()=>x(t).name)??``}`)},[()=>(x(t),A(Yl),F(()=>`${x(t).name}: ${Yl(x(t).dataType)}`)),()=>(A(Ql),x(t),F(()=>Ql(x(t).dataType)))]),O(`click`,n,()=>L(h,x(t).id)),E(e,n)}),o(t),E(e,t)};Z(Ce,e=>{x(n),F(()=>x(n).length>1)&&e(we)});var Te=P(Ce,2);let De;ge(Te,e=>L(u,e),()=>x(u));var Oe=P(Te,2),ke=e=>{var t=sS(),n=M(t);S(n,()=>(x(r),x(g),F(()=>`${x(r).id}-${x(g)}`)),e=>{Hy(e,{get type(){return x(i)},get value(){return x(r),F(()=>x(r).value)},get port(){return x(r)},get node(){return x(p)},mode:`view`,get version(){return x(_)},readOnly:!0})}),o(t),E(e,t)};Z(Oe,e=>{x(d)===`typed`&&x(r)&&e(ke)}),o(Se),K(()=>De=v(Te,1,`viewer svelte-1p3xo7r`,null,De,{hidden:x(d)===`typed`})),E(e,Se),Ee()}var uS=u(`<div class="panel-wrapper svelte-1qtykx5"><!></div>`);function dS(e,t){ee(t,!1);let n=()=>we(_a,`$panelLockStore`,i),r=()=>we(ga,`$sharedContextStore`,i),[i,a]=ne(),s=Y(),c=Y(),l=Y(),u=V(t,`panelId`,8),d=V(t,`panelApi`,8),f=V(t,`graph`,12,void 0),p=V(t,`selectedNode`,12,null),m=V(t,`selectedAnnotationId`,12,null),h=Y(null);J(()=>(n(),A(u())),()=>{L(s,n().get(u()))}),J(()=>x(s),()=>{L(c,x(s)?.isLocked??!1)}),J(()=>r(),()=>{r()&&(f(r().graph),p(r().selectedNode),m(r().selectedAnnotation))}),J(()=>(x(c),x(s),A(p())),()=>{L(l,x(c)?x(s)?.lockedNode:p())}),J(()=>(A(m()),A(f())),()=>{m()&&f()?L(h,f().getAnnotation(m())):L(h,null)}),J(()=>(A(d()),x(c),x(l),x(h)),()=>{if(d()?.setTitle){let e=x(c)?`~ `:``;x(l)?d().setTitle(`${e}Viewer: ${x(l).id}`):x(h)?d().setTitle(`${e}Viewer: ${x(h).caption||x(h).type}`):d().setTitle(`${e}Viewer`)}}),he(),ue();var g=uS();lS(M(g),{get graph(){return f()},get selectedNode(){return x(l)},get selectedAnnotation(){return x(h)}}),o(g),E(e,g),Ee(),a()}var fS=u(`<span class="log-source svelte-1hh17sz"> </span>`),pS=u(`<div><!> <span> </span></div>`),mS=u(`<div class="log svelte-1hh17sz"><div class="log-content svelte-1hh17sz"><!></div></div>`);function hS(e,t){ee(t,!1);let n=Y([]),r=Y(),i=!0,a;function s(e,t){let n=null,r=t;if(t.length>0&&typeof t[0]==`string`){let e=t[0].match(/^\[([^\]]+)\]/);e&&(n=e[1],r=t.slice(1))}let i=r.map(e=>{if(typeof e==`object`)try{return JSON.stringify(e,null,2)}catch{return String(e)}return String(e)}).join(` `);return{source:n,formatted:i}}function c(e,...t){let{source:o,formatted:c}=s(e,t),l={id:`log_${Date.now()}_${Math.random().toString(36).substr(2,9)}`,timestamp:new Date,level:e,source:o,args:t,formatted:c};L(n,[...x(n),l]),x(n).length>1e3&&L(n,x(n).slice(-1e3)),a&&a[e](...t),i&&x(r)&&setTimeout(()=>{x(r)&&oe(r,x(r).scrollTop=x(r).scrollHeight)},0)}function l(){x(r)&&(i=x(r).scrollHeight-x(r).scrollTop<=x(r).clientHeight+10)}function u(){L(n,[])}ye(()=>{a={log:console.log.bind(console),warn:console.warn.bind(console),error:console.error.bind(console)},console.log=(...e)=>{c(`log`,...e)},console.warn=(...e)=>{c(`warn`,...e)},console.error=(...e)=>{c(`error`,...e)},x(r)&&x(r).addEventListener(`scroll`,l)}),me(()=>{a&&(console.log=a.log,console.warn=a.warn,console.error=a.error),x(r)&&x(r).removeEventListener(`scroll`,l)});var d={clearLog:u};ue();var p=mS(),m=M(p),h=M(m),g=e=>{var t=te(),r=G(t);f(r,1,()=>x(n),e=>e.id,(e,t)=>{var n=pS();let r;var i=M(n),a=e=>{var n=fS(),r=q(n);K(()=>D(r,`[${x(t).source??``}]`)),E(e,n)};Z(i,e=>{x(t).source&&e(a)});var s=P(i,2);let c;var l=q(s,!0);o(n),K(()=>{r=v(n,1,`log-entry svelte-1hh17sz`,null,r,{error:x(t).level===`error`,warn:x(t).level===`warn`}),c=v(s,1,`log-message svelte-1hh17sz`,null,c,{error:x(t).level===`error`,warn:x(t).level===`warn`}),D(l,x(t).formatted)}),E(e,n)}),E(e,t)};return Z(h,e=>{x(n).length>0&&e(g)}),o(m),ge(m,e=>L(r,e),()=>x(r)),o(p),E(e,p),se(t,`clearLog`,u),Ee(d)}var gS=u(`<div class="panel-wrapper svelte-19qho59"><!></div>`);function _S(e,t){ee(t,!1);let n=Y(null);function r(){x(n)?.clearLog&&x(n).clearLog()}var i={clearLog:r},a=gS(),s=M(a);return ge(hS(s,{$$legacy:!0}),e=>L(n,e),()=>x(n)),o(a),E(e,a),se(t,`clearLog`,r),Ee(i)}var vS=class extends Error{constructor(e,t=null,n=null){super(e),this.hint=t,this.code=n,this.name=`AgentUnavailableError`}},yS=null;async function bS(){if(yS)return yS;let e=await fetch(`/api/agent/capability`);if(e.status===404)throw new vS(`The agent console is disabled on this server. It is available only on a loopback server or one started with an explicit trusted host.`);if(!e.ok)throw new vS(`Could not start an agent session (${e.status})`);let{capability:t}=await e.json();if(typeof t!=`string`||!t)throw new vS(`Server issued no agent capability`);return yS=t,t}async function xS(e,t){let n=e=>({...t.headers??{},"X-Cascade-Agent-Capability":e}),r=await fetch(e,{...t,headers:n(await bS())});return r.status===403&&(yS=null,r=await fetch(e,{...t,headers:n(await bS())})),r}async function SS(e){let t=await xS(`/api/agent/status${e?`?sketch=${encodeURIComponent(e)}`:``}`,{method:`GET`});if(!t.ok)throw new vS(`Could not read agent status (${t.status})`);let n=await t.json();return{root:String(n?.root??``),agents:Array.isArray(n?.agents)?n.agents:[],sessions:Array.isArray(n?.sessions)?n.sessions:[]}}async function CS(e,t){let n=await xS(`/api/agent/cancel`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({agent:e,sketch:t})});return n.ok?(await n.json().catch(()=>null))?.cancelled===!0:!1}async function wS(e,t){await xS(`/api/agent/reset`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({agent:e,sketch:t})})}async function TS(e){let t=await xS(`/api/agent/attach`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({agent:e.agent,sketch:e.sketch,since:e.since??0}),signal:e.signal});if(!t.ok){let e=await t.json().catch(()=>null);throw new vS(String(e?.error??`Could not reconnect to the agent (${t.status})`))}await DS(t,e.onEvent)}async function ES(e){let t=await xS(`/api/agent/prompt`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({agent:e.agent,sketch:e.sketch,prompt:e.prompt}),signal:e.signal});if(!t.ok){let e=await t.json().catch(()=>null);throw new vS(String(e?.error??`Agent request failed (${t.status})`),e?.hint??null,e?.code??null)}await DS(t,e.onEvent)}async function DS(e,t){if(!e.body)throw new vS(`Agent produced no stream`);let n=e.body.getReader(),r=new TextDecoder,i=``;for(;;){let{value:e,done:a}=await n.read();if(a)break;i+=r.decode(e,{stream:!0});let o=i.split(`
|
|
203
|
-
`);i=o.pop()??``;for(let e of o)OS(e,t)}OS(i,t)}function OS(e,t){if(e.trim())try{t(JSON.parse(e))}catch{t({type:`stderr`,text:e})}}function kS(e){let t=e.trim();if(!t)return null;if(!t.startsWith(`{`))return{kind:`raw`,text:t};let n;try{n=JSON.parse(t)}catch{return{kind:`raw`,text:t}}if(n?.type===`system`)return null;if(n?.type===`assistant`&&Array.isArray(n?.message?.content)){let e=[];for(let t of n.message.content)t?.type===`text`&&typeof t.text==`string`&&t.text.trim()?e.push(t.text.trim()):t?.type===`tool_use`&&e.push(`· ${t.name??`tool`}${AS(t.input)}`);let t=e.join(`
|
|
204
|
-
`);return t?{kind:e.every(e=>e.startsWith(`· `))?`tool`:`text`,text:t}:null}if(n?.type===`user`)return null;if(n?.type===`result`){let e=typeof n.result==`string`&&n.result.trim()?n.result.trim():null;return e?{kind:`result`,text:e}:null}return typeof n?.type==`string`?{kind:`detail`,text:t}:{kind:`raw`,text:t}}function AS(e){if(!e||typeof e!=`object`)return``;let t=e,n=t.file_path??t.path??t.pattern??t.command;return typeof n==`string`&&n?` ${n}`:``}var jS=null;function MS(e){return jS=e,()=>{jS===e&&(jS=null)}}function NS(){return jS}var PS=u(`<option> </option>`),FS=u(`<span class="sketch svelte-1cqop5k" title="Open the sketch through the cascade CLI">no project file</span>`),IS=u(`<button type="button" class="zoom svelte-1cqop5k" title="Text size — click to reset (⌘0)"> </button>`),LS=u(`<button type="button" class="icon svelte-1cqop5k" title="Copy the whole transcript, including hidden stream events" aria-label="Copy transcript"> </button>`),RS=u(`<button type="button" class="icon stop svelte-1cqop5k" title="Stop the agent" aria-label="Stop the agent">■</button>`),zS=u(`<button type="button" title="Forget the conversation for this sketch" class="svelte-1cqop5k">Reset</button>`),BS=u(`<div class="notice svelte-1cqop5k"> </div>`),VS=u(`<code class="svelte-1cqop5k"> </code>`),HS=u(`<div class="notice svelte-1cqop5k"><div> </div> <!></div>`),US=u(`<div class="hint svelte-1cqop5k"><!></div>`),WS=u(`<div></div>`),GS=u(`<div> </div>`),KS=u(`<button class="detail-toggle svelte-1cqop5k"> </button>`),qS=u(`<div data-panel-scope="agent" role="group" aria-label="Agent console"><div class="bar svelte-1cqop5k"><select aria-label="Agent" class="svelte-1cqop5k"></select> <!> <span class="spacer svelte-1cqop5k"></span> <!> <!> <!></div> <!> <div class="transcript svelte-1cqop5k"><!> <!> <!></div> <div class="composer svelte-1cqop5k"><textarea rows="2" spellcheck="false" placeholder="Prompt the sketch" class="svelte-1cqop5k"></textarea> <button type="button" class="send svelte-1cqop5k" title="Send (⌘↵)" aria-label="Send prompt">↑</button></div></div>`);function JS(t,n){ee(n,!1);let r=Y(),i=Y(),s=Y(),c=Y(),u=Y(),d=new Set([`agent`,`result`]),p=[`claude`,`codex`],m=Y(`claude`),g=Y(``),_=Y([]),y=Y(!1),b=Y(!1),S=Y([]),C=Y(``),w=Y(null),k=Y(!1),ne=null,j=null,re=null,N=null,ie=Y(!1),ae=Y(null),I=Y(null),R=Y(!1),se=Y(null),V=`cascade.agentPanel.zoom`,le=[.75,.85,1,1.15,1.3,1.5,1.75,2],H=Y(U());function U(){try{let e=Number(localStorage.getItem(V));return le.includes(e)?e:1}catch{return 1}}function de(e){L(H,e);try{localStorage.setItem(V,String(e))}catch{}}function fe(e){let t=le.indexOf(x(H)),n=t===-1?le.indexOf(1):t,r=Math.min(le.length-1,Math.max(0,n+e));r!==n&&de(le[r])}function pe(e){if(e.altKey)return;let t=e.metaKey||e.ctrlKey;if(!x(se)||!E_(`agent`))return;let n=e.target instanceof HTMLTextAreaElement||e.target instanceof HTMLInputElement;!t&&n||(e.key===`0`?(e.preventDefault(),de(1)):e.key===`+`||e.key===`=`?(e.preventDefault(),fe(1)):(e.key===`-`||e.key===`_`)&&(e.preventDefault(),fe(-1)))}let W=Y(NS()?.file()??null);ye(()=>{xe(x(W));let e=setInterval(()=>{let e=NS()?.file()??null;e===x(W)?!x(b)&&N!==x(m)?xe(e):Se():(L(W,e),xe(e))},1e3);return()=>clearInterval(e)}),_e();async function _e(){try{let e=await SS(x(W)??void 0);if(L(S,e.agents),L(C,e.root),!x(S).find(e=>e.alias===x(m)&&e.configured&&e.resolved)){let e=x(S).find(e=>e.configured&&e.resolved);e&&L(m,e.alias)}}catch(e){L(w,e instanceof Error?e.message:String(e))}finally{L(k,!0)}}function be(e){if(e.type===`attached`)L(ie,e.running),e.dropped>0&&we(`system`,`${e.dropped} earlier ${e.dropped===1?`line`:`lines`} were dropped from the server's buffer.`),e.running?we(`system`,`Reconnected to the ${e.agent} session running for ${e.sketch}.`):e.replayed>0&&we(`system`,`Showing the last ${e.agent} run for ${e.sketch}. Nothing is running now.`);else if(e.type===`started`)L(ie,!0),we(`system`,`${e.agent} ${e.resumed?`resumed`:`started`} for ${e.sketch}`);else if(e.type===`stdout`){let t=kS(e.text);t&&we(t.kind===`raw`?`system`:t.kind===`text`?`agent`:t.kind,t.text)}else e.type===`stderr`?we(`error`,e.text.trimEnd()):e.type===`exit`?(L(ie,!1),e.cancelled?we(`system`,`Stopped.`):e.timedOut?we(`error`,`The agent was still running after 15 minutes and was stopped.`):e.code!==0&&we(`error`,`${x(m)} exited with code ${e.code}.`)):e.type===`error`&&(L(ie,!1),we(`error`,e.message))}async function xe(e){if(j?.abort(),j=null,re=e,N=x(m),L(ie,!1),x(b)||(L(_,[]),!e))return;let t=new AbortController;j=t;try{await TS({agent:x(m),sketch:e,onEvent:t=>{re===e&&be(t)},signal:t.signal})}catch(e){e?.name!==`AbortError`&&we(`error`,e instanceof Error?e.message:String(e))}finally{j===t&&(j=null),L(ie,!1)}}async function Se(){if(!(x(b)||x(ie)||j||!x(W)||x(w)))try{(await SS(x(W))).sessions.find(e=>e.sketch===x(W)&&e.agent===x(m)&&e.running)&&!x(b)&&!j&&await xe(x(W))}catch{}}function we(e,t){t.trim()&&(L(_,[...x(_),{kind:e,text:t}]),De())}function X(){if(!x(I))return;oe(I,x(I).style.height=`auto`);let e=Math.max(120,Math.round((x(ae)?.clientHeight??400)/2));oe(I,x(I).style.height=`${Math.min(x(I).scrollHeight,e)}px`)}async function De(){await e(),x(ae)&&oe(ae,x(ae).scrollTop=x(ae).scrollHeight)}async function Oe(){let e=NS();if(!e)return we(`error`,`Studio has not registered the open document, so it cannot be saved before the prompt runs. Nothing was sent.`),null;let t=e.file();if(!t)return we(`error`,"This graph is not a project file, so the agent has nothing to edit. Open the sketch through the `cascade` CLI, or save it into the project first."),null;if(e.isDirty()){if(!await e.save())return we(`error`,`Could not save ${t}, so the prompt was not sent — the agent would have rewritten the file underneath your unsaved changes.`),null;we(`system`,`Saved ${t} before handing the prompt over.`)}return t}async function ke(){let t=x(g).trim();if(!t||x(b))return;let n=await Oe();if(n){j?.abort(),j=null,we(`you`,t),L(g,``),e().then(X),L(b,!0),ne=new AbortController;try{await ES({agent:x(m),sketch:n,prompt:t,signal:ne.signal,onEvent:be})}catch(e){e instanceof vS?(we(`error`,e.message),e.hint&&we(`system`,e.hint)):e?.name===`AbortError`?we(`system`,`Stopped.`):we(`error`,e instanceof Error?e.message:String(e))}finally{L(b,!1),ne=null,L(ie,!1)}}}async function Ae(){let e=x(W)??NS()?.file()??null;e&&await CS(x(m),e),ne?.abort(),j?.abort()}async function je(){let e=NS()?.file();j?.abort(),j=null,e&&await wS(x(m),e),L(_,[]),L(ie,!1),we(`system`,`New ${x(m)} session for ${e??`this sketch`}.`)}function Me(e){e.key===`Enter`&&(e.metaKey||e.ctrlKey||!e.shiftKey)&&(e.preventDefault(),ke())}function Ne(e){let t=e.dataTransfer?.getData(`text/plain`);L(R,!1),t&&(e.preventDefault(),e.stopPropagation(),ze(t.trim()))}function Pe(e){let t=Array.from(e.dataTransfer?.types??[]);!t.includes(`text/plain`)||t.includes(`Files`)||(e.preventDefault(),e.stopPropagation(),e.dataTransfer&&(e.dataTransfer.dropEffect=`copy`),L(R,!0))}function Fe(e){if(!x(se)){L(R,!1);return}let t=x(se).getBoundingClientRect();e.clientX>=t.left&&e.clientX<=t.right&&e.clientY>=t.top&&e.clientY<=t.bottom||L(R,!1)}let Ie=Y(!1),Le;async function Re(){if(await W_(x(_).map(e=>e.text).join(`
|
|
205
|
-
`))){L(Ie,!0),clearTimeout(Le),Le=setTimeout(()=>L(Ie,!1),1200);return}we(`error`,`Could not reach the clipboard. Select the transcript and copy it by hand.`)}function ze(t){if(!t)return;let n=x(I)?.selectionStart??x(g).length,r=x(g).slice(0,n),i=x(g).slice(n),a=r&&!/\s$/.test(r)?` `:``;L(g,`${r}${a}${t}${i}`),e().then(()=>{x(I)?.focus();let e=(r+a+t).length;x(I)?.setSelectionRange(e,e)})}me(()=>{ne?.abort(),j?.abort(),clearTimeout(Le)}),J(()=>(x(S),x(m)),()=>{L(r,x(S).find(e=>e.alias===x(m))??null)}),J(()=>(x(b),x(ie)),()=>{L(i,x(b)||x(ie))}),J(()=>(x(k),x(r)),()=>{L(s,!x(k)||!!(x(r)?.configured&&x(r)?.resolved))}),J(()=>x(_),()=>{L(c,x(_).filter(e=>e.kind===`detail`).length)}),J(()=>(x(y),x(_)),()=>{L(u,x(y)?x(_):x(_).filter(e=>e.kind!==`detail`))}),he(),ue();var Be=qS();O(`keydown`,ce,pe),O(`dragend`,ce,()=>L(R,!1));let Ve;var He=M(Be),Ue=M(He);f(Ue,5,()=>p,h,(e,t)=>{var n=PS(),r=q(n,!0),i={};K(()=>{D(r,x(t)),i!==(i=x(t))&&(n.value=(n.__value=i)??``)}),E(e,n)}),o(Ue),T(Ue);var We=P(Ue,2),Q=e=>{var t=FS();E(e,t)};Z(We,e=>{x(W)||e(Q)});var Ge=P(We,4),Ke=e=>{var t=IS(),n=q(t);K(e=>D(n,`${e??``}%`),[()=>(x(H),F(()=>Math.round(x(H)*100)))]),O(`click`,t,()=>de(1)),E(e,t)};Z(Ge,e=>{x(H)!==1&&e(Ke)});var qe=P(Ge,2),Je=e=>{var t=LS(),n=q(t,!0);K(()=>D(n,x(Ie)?`✓`:`⧉`)),O(`click`,t,Re),E(e,t)};Z(qe,e=>{x(_),F(()=>x(_).length>0)&&e(Je)});var Ye=P(qe,2),Xe=e=>{var t=RS();O(`click`,t,Ae),E(e,t)},Ze=e=>{var t=zS();O(`click`,t,je),E(e,t)};Z(Ye,e=>{x(i)?e(Xe):e(Ze,-1)}),o(He);var $=P(He,2),Qe=e=>{var t=BS(),n=q(t,!0);K(()=>D(n,x(w))),E(e,t)},$e=e=>{var t=HS(),n=M(t),i=q(n,!0),a=P(n,2),s=e=>{var t=VS(),n=q(t);K(()=>D(n,`"commands": { "${x(m)??``}": "<path>" }`)),E(e,t)};Z(a,e=>{x(C),x(r),F(()=>x(C)&&!x(r)?.configured)&&e(s)}),o(t),K(()=>D(i,(x(r),x(m),F(()=>x(r)?.hint??`Command "${x(m)}" is not allowed.`)))),E(e,t)};Z($,e=>{x(w)?e(Qe):x(k)&&!x(s)&&e($e,1)});var et=P($,2),tt=M(et),nt=e=>{var t=US(),n=M(t),r=e=>{var t=ve(`No project file is open, so there is nothing for an agent to edit.`);E(e,t)},i=e=>{var t=ve(`Say what the sketch should become. Drag in a node or a parameter for its exact path.`);E(e,t)};Z(n,e=>{x(W)?e(i,-1):e(r)}),o(t),E(e,t)};Z(tt,e=>{x(_),F(()=>x(_).length===0)&&e(nt)});var rt=P(tt,2);f(rt,1,()=>x(u),h,(e,t)=>{var n=te(),r=G(n),i=e=>{var n=WS();l(n,()=>(A(Xh),x(t),F(()=>Xh(x(t).text))),!0),o(n),K(()=>v(n,1,`entry ${x(t),F(()=>x(t).kind)??``} markdown`,`svelte-1cqop5k`)),E(e,n)},a=B(()=>(x(t),F(()=>d.has(x(t).kind)))),s=e=>{var n=GS(),r=q(n,!0);K(()=>{v(n,1,`entry ${x(t),F(()=>x(t).kind)??``}`,`svelte-1cqop5k`),D(r,(x(t),F(()=>x(t).text)))}),E(e,n)};Z(r,e=>{x(a)?e(i):e(s,-1)}),E(e,n)});var it=P(rt,2),at=e=>{var t=KS(),n=q(t);K(()=>D(n,`${x(y)?`Hide`:`Show`} ${x(c)??``} stream ${x(c)===1?`event`:`events`}`)),O(`click`,t,()=>L(y,!x(y))),E(e,t)};Z(it,e=>{x(c)>0&&e(at)}),o(et),ge(et,e=>L(ae,e),()=>x(ae));var ot=P(et,2),st=M(ot);z(st),ge(st,e=>L(I,e),()=>x(I));var ct=P(st,2);o(ot),o(Be),ge(Be,e=>L(se,e),()=>x(se)),K(e=>{Ve=v(Be,1,`console svelte-1cqop5k`,null,Ve,{"drop-active":x(R)}),a(Be,`--agent-zoom: ${x(H)??``}`),Ue.disabled=x(i),st.disabled=x(i),ct.disabled=e},[()=>(x(i),x(g),x(s),F(()=>x(i)||!x(g).trim()||!x(s)))]),Te(Ue,()=>x(m),e=>L(m,e)),Ce(st,()=>x(g),e=>L(g,e)),O(`keydown`,st,Me),O(`input`,st,X),O(`click`,ct,ke),O(`dragover`,Be,Pe),O(`dragleave`,Be,Fe),O(`drop`,Be,Ne),E(t,Be),Ee()}var YS={apiVersion:1,label:`Random`,description:`Generate a deterministic unit value from an explicit seed.`,icon:`Dice5`,runsOn:`portable`,inputs:{seed:{kind:`data`,type:`int`,default:0,description:`Integer seed. Equal seeds always produce equal values.`},sample:{kind:`data`,type:`int`,default:0,description:`Stable sample index within the seeded sequence.`}},outputs:{value:{kind:`data`,type:`float`,description:`Deterministic value in the half-open range [0, 1).`}}};function XS(e,t=0){let n=((Math.trunc(e)^Math.imul(Math.trunc(t),2654435761))>>>0)+1831565813>>>0;return n=Math.imul(n^n>>>15,n|1),n^=n+Math.imul(n^n>>>7,n|61),((n^n>>>14)>>>0)/4294967296}function ZS(e){e.outputs.value.set(XS(e.inputs.seed,e.inputs.sample))}var QS={kind:`definition-v1`,moduleId:`cascade.core.Random`,definition:YS,loadExecute:async()=>ZS},$S={apiVersion:1,label:`Remap`,description:`Map a number from one range into another.`,icon:`ArrowRightLeft`,runsOn:`portable`,inputs:{value:{kind:`data`,type:`float`,default:0},inMin:{kind:`data`,type:`float`,default:0},inMax:{kind:`data`,type:`float`,default:1},outMin:{kind:`data`,type:`float`,default:0},outMax:{kind:`data`,type:`float`,default:1}},outputs:{result:{kind:`data`,type:`float`}},props:{clamp:{type:`bool`,default:!1,label:`Clamp`,description:`Keep the normalized input between zero and one.`}}};function eC(e,t,n,r,i,a){if(t===n)return r;let o=(e-t)/(n-t);return r+(a?Math.min(1,Math.max(0,o)):o)*(i-r)}function tC(e){let{value:t,inMin:n,inMax:r,outMin:i,outMax:a}=e.inputs;e.outputs.result.set(eC(t,n,r,i,a,e.props.clamp))}var nC=Object.freeze([{kind:`definition-v1`,moduleId:`cascade.core.Subnet`,definition:{apiVersion:1,runsOn:`portable`,container:`subnet`,label:`Subnet`,description:`Contains a nested deterministic graph`,icon:`Folder`},loadExecute:async()=>()=>{}},{kind:`definition-v1`,moduleId:`cascade.core.Input`,definition:{apiVersion:1,runsOn:`portable`,label:`Input`,description:`Defines a public graph or subnet input`,icon:`LogIn`,inputs:{value:{kind:`data`,type:`any`,default:null}},outputs:{output:{kind:`data`,type:`any`}},props:{inputIndex:{type:`int`,default:0,min:0,step:1},inputName:{type:`string`,default:``},dataType:{type:`string`,default:`any`}}},loadExecute:async()=>({inputs:e,outputs:t})=>t.output.set(e.value)},{kind:`definition-v1`,moduleId:`cascade.core.Output`,definition:{apiVersion:1,runsOn:`portable`,label:`Output`,description:`Defines a public graph or subnet output`,icon:`LogOut`,inputs:{input:{kind:`data`,type:`any`,default:null}},outputs:{output:{kind:`data`,type:`any`}},props:{outputIndex:{type:`int`,default:0,min:0,step:1},outputName:{type:`string`,default:``},dataType:{type:`string`,default:`any`}}},loadExecute:async()=>({inputs:e,outputs:t})=>t.output.set(e.input)},{kind:`definition-v1`,moduleId:`cascade.core.Switch`,definition:{apiVersion:1,runsOn:`portable`,label:`Switch`,description:`Selects one input by index`,icon:`GitBranch`,inputs:{inputs:{kind:`data`,type:`any`,variadic:!0}},outputs:{output:{kind:`data`,type:`any`}},props:{index:{type:`int`,default:0,min:0,step:1}}},loadExecute:async()=>({inputs:e,outputs:t,props:n})=>{let r=e.inputs;if(!r.length){t.output.set(null);return}let i=Math.max(0,Math.min(n.index,r.length-1));t.output.set(r[i])}},{kind:`definition-v1`,moduleId:`cascade.core.Merge`,definition:{apiVersion:1,runsOn:`portable`,label:`Merge`,description:`Collects inputs into an array`,icon:`GitMerge`,inputs:{inputs:{kind:`data`,type:`any`,variadic:!0}},outputs:{output:{kind:`data`,type:`array`}},props:{append:{type:`bool`,default:!1}}},loadExecute:async()=>({inputs:e,outputs:t,props:n})=>{let r=e.inputs.filter(e=>e!==null);t.output.set(n.append&&Array.isArray(r[0])?[...r[0],...r.slice(1)]:r)}},{kind:`definition-v1`,moduleId:`cascade.core.Null`,definition:{apiVersion:1,runsOn:`portable`,label:`Null`,description:`Passes its input through unchanged`,icon:`Circle`,inputs:{input:{kind:`data`,type:`any`,default:null}},outputs:{output:{kind:`data`,type:`any`}}},loadExecute:async()=>({inputs:e,outputs:t})=>{t.output.set(e.input)}},{kind:`definition-v1`,moduleId:`cascade.core.Select`,definition:{apiVersion:1,runsOn:`portable`,label:`Select`,description:`Selects an array item by index`,icon:`ListFilter`,inputs:{array:{kind:`data`,type:`array`,default:[]}},outputs:{item:{kind:`data`,type:`any`},count:{kind:`data`,type:`int`}},props:{index:{type:`int`,default:0,min:0,step:1},wrap:{type:`bool`,default:!0}}},loadExecute:async()=>({inputs:e,outputs:t,props:n})=>{let r=e.array.length;if(t.count.set(r),!r){t.item.set(null);return}let i=n.wrap?(n.index%r+r)%r:Math.max(0,Math.min(n.index,r-1));t.item.set(e.array[i])}},QS,{kind:`definition-v1`,moduleId:`cascade.core.Remap`,definition:$S,loadExecute:async()=>tC}]);new Map(nC.map(e=>[e.moduleId,e]));function rC(e,t){throw TypeError(`geometry/${e}: ${t}`)}function iC(e,t){return e[t]}function aC(e,t,n){if(e!==void 0)return Al(e)&&rC(`attribute-storage`,`${t} must be numeric`),n!==void 0&&!n.includes(e.size)&&rC(`attribute-size`,`${t} has size ${e.size}; expected ${n.join(` or `)}`),e}function oC(e,t,n=0){return e.data[t*e.size+n]}function sC(e,t){let n=Array(e.size);for(let r=0;r<e.size;r+=1)n[r]=e.data[t*e.size+r];return n}function cC(e,t){let n=e.data[t];return n<0?``:e.table[n]??``}function lC(e){return e.point.P.size}function uC(e){return e.point.P}function dC(e,t){return sC(uC(e),t)}function fC(e,t,n=`f64`,r){let i=Ol(n,t*e);if(r!==void 0){let n=typeof r==`number`?[r]:r;for(let r=0;r<e;r+=1)for(let e=0;e<t;e+=1)i[r*t+e]=n[e%Math.max(n.length,1)]??0}return{storage:n,size:t,data:i}}function pC(e){let t=[],n=new Map,r=new Int32Array(e.length);for(let i=0;i<e.length;i+=1){let a=e[i],o=n.get(a);o===void 0&&(o=t.length,t.push(a),n.set(a,o)),r[i]=o}return{storage:`string`,size:1,table:t,data:r}}function mC(e,t,n){return Fl({pointCount:e.pointCount,point:t===`point`?n:e.point,vertex:t===`vertex`?n:e.vertex,primitive:t===`primitive`?n:e.primitive,detail:e.detail,topology:e.topology,pointGroups:e.pointGroups,primitiveGroups:e.primitiveGroups})}function hC(e,t,n,r){return mC(e,t,{...e[t],[n]:r})}function gC(e){return kl(e.storage,e.data)}var _C={point:`pointGroups`,primitive:`primitiveGroups`};function vC(e,t,n){return e[_C[t]][n]}function yC(e){let t=[];for(let n=0;n<e.length;n+=1)e[n]&&t.push(n);return t}function bC(e,t){return Object.keys(e[_C[t]])}function xC(e){let[t,n]=e.translate??[0,0],[r,i]=e.scale??[1,1],[a,o]=e.pivot??[0,0],s=e.rotate??0;if(![t,n,r,i,a,o,s].every(Number.isFinite))throw TypeError(`geometry/transform: transform parameters must be finite`);let c=s*Math.PI/180,l=Math.cos(c),u=Math.sin(c),d=l*r,f=u*r,p=-u*i,m=l*i;return[d,f,0,p,m,0,t+a-(d*a+p*o),n+o-(f*a+m*o),1]}function SC(e){if(e.length===0)return Ll(2);if(e.length===1)return e[0];let t=CC(e,e=>e.pointCount),n=CC(e,e=>e.vertexCount),r=CC(e,e=>e.primitiveCount),i=new Int32Array(n),a=new Int32Array(r+1),o=new Uint8Array(r),s=new Uint8Array(r),c=0,l=0,u=0;for(let t of e){for(let e=0;e<t.vertexCount;e+=1)i[l+e]=t.topology.vertexPoints[e]+c;for(let e=0;e<t.primitiveCount;e+=1)a[u+e]=t.topology.offsets[e]+l,o[u+e]=t.topology.kinds[e],s[u+e]=t.topology.closed[e];c+=t.pointCount,l+=t.vertexCount,u+=t.primitiveCount}a[r]=n;let d={};for(let t of e)for(let[e,n]of Object.entries(t.detail))Object.prototype.hasOwnProperty.call(d,e)||(d[e]=n);return Fl({pointCount:t,point:EC(e,`point`),vertex:EC(e,`vertex`),primitive:EC(e,`primitive`),detail:d,topology:{vertexPoints:i,offsets:a,kinds:o,closed:s},pointGroups:kC(e,`point`),primitiveGroups:kC(e,`primitive`)})}function CC(e,t){let n=0;for(let r of e)n+=t(r);return n}var wC={u8:0,i32:1,f32:2,f64:3};function TC(e,t){return e===t?e:e===`f64`||t===`f64`||e===`i32`&&t===`f32`||e===`f32`&&t===`i32`?`f64`:wC[e]>wC[t]?e:t}function EC(e,t){let n=[];for(let r of e)for(let e of Object.keys(r[t]))n.includes(e)||n.push(e);let r=CC(e,e=>jl(e,t)),i={};for(let a of n){let n=e.map(e=>e[t][a]).filter(e=>e!==void 0),o=n.filter(Al).length;o!==0&&o!==n.length&&rC(`attribute-conflict`,`${t}.${a} is a string attribute on one input and numeric on another`),i[a]=o===n.length?OC(e,t,a,r):DC(e,t,a,r)}return i}function DC(e,t,n,r){let i=1,a;for(let r of e){let e=r[t][n];e===void 0||Al(e)||(i=Math.max(i,e.size),a=a===void 0?e.storage:TC(a,e.storage))}let o=Ol(a??`f64`,i*r),s=0;for(let r of e){let e=jl(r,t),a=r[t][n];if(a!==void 0&&!Al(a))for(let t=0;t<e;t+=1)for(let e=0;e<a.size;e+=1)o[(s+t)*i+e]=a.data[t*a.size+e];s+=e}return{storage:a??`f64`,size:i,data:o}}function OC(e,t,n,r){let i=Array(r).fill(``),a=0;for(let r of e){let e=jl(r,t),o=r[t][n];if(o!==void 0&&Al(o))for(let t=0;t<e;t+=1)i[a+t]=cC(o,t);a+=e}return pC(i)}function kC(e,t){let n=t===`point`?`pointGroups`:`primitiveGroups`,r=[];for(let t of e)for(let e of Object.keys(t[n]))r.includes(e)||r.push(e);let i=CC(e,e=>jl(e,t)),a={};for(let o of r){let r=new Uint8Array(i),s=0;for(let i of e){let e=jl(i,t),a=i[n][o];if(a!==void 0)for(let t=0;t<e;t+=1)r[s+t]=a[t];s+=e}a[o]=r}return a}function AC(e,t){if(t.length!==9&&t.length!==16&&rC(`matrix`,`transform needs a mat3 or a mat4`),t.every(Number.isFinite)||rC(`matrix`,`transform matrix values must be finite`),e.pointCount===0)return e;let n=uC(e),r=n.size,i=gC(n);if(t.length===9){let n=t;for(let t=0;t<e.pointCount;t+=1){let e=t*r,a=i[e],o=i[e+1];i[e]=n[0]*a+n[3]*o+n[6],i[e+1]=n[1]*a+n[4]*o+n[7]}}else{let n=t;for(let t=0;t<e.pointCount;t+=1){let e=t*r,a=i[e],o=i[e+1],s=r===3?i[e+2]:0;i[e]=n[0]*a+n[4]*o+n[8]*s+n[12],i[e+1]=n[1]*a+n[5]*o+n[9]*s+n[13],r===3&&(i[e+2]=n[2]*a+n[6]*o+n[10]*s+n[14])}}return mC(e,`point`,{...iC(e,`point`),P:{storage:n.storage,size:r,data:i}})}function jC(e,t,n={}){let r=lC(e)===3?3:2,i=n.targetGroup===void 0||n.targetGroup===``?void 0:vC(t,`point`,n.targetGroup)??rC(`missing-group`,`point group ${n.targetGroup} is not present on the target`),a=i===void 0?MC(t.pointCount):yC(i);if(a.length===0||e.pointCount===0)return Ll(r);let o=n.useTargetOrientations??!0,s=o?aC(t.point.pscale,`point.pscale`,[1]):void 0,c=o?aC(t.point.N,`point.N`,[2,3]):void 0,l=n.copyNumberAttribute??`copynum`,u=n.transferTargetAttributes??!0?Object.keys(t.point).filter(t=>t!==`P`&&!Object.prototype.hasOwnProperty.call(e.point,t)):[],d=[];for(let n of a){let r=dC(t,n),i=s===void 0?1:oC(s,n),a=c===void 0?0:Math.atan2(oC(c,n,1),oC(c,n,0))*180/Math.PI,o=AC(e,xC({translate:[r[0],r[1]],rotate:a,scale:[i,i]}));l!==``&&(o=hC(o,`primitive`,l,{storage:`i32`,size:1,data:new Int32Array(o.primitiveCount).fill(n)}));for(let e of u)o=hC(o,`point`,e,NC(t.point[e],n,o.pointCount));d.push(o)}return SC(d)}function MC(e){let t=Array(e);for(let n=0;n<e;n+=1)t[n]=n;return t}function NC(e,t,n){return Al(e)?pC(Array(n).fill(cC(e,t))):fC(n,e.size,e.storage,sC(e,t))}var PC=`cascade.geo`;function FC(e){return`${PC}.${e}`}function IC(e){let t=e.inputs.source,n=e.inputs.target;if(t===void 0||n===void 0){e.outputs.geometry.set(Ll(2));return}e.outputs.geometry.set(jC(t,n,{targetGroup:e.props.targetGroup,useTargetOrientations:e.props.useTargetOrientations}))}var LC={kind:`definition-v1`,moduleId:FC(`CopyToPoints`),definition:Vg,loadExecute:async()=>IC},RC=class{positions=[];size;storage;vertexPoints=[];offsets=[0];kinds=[];closed=[];attributes={point:{},vertex:{},primitive:{}};detail={};pointGroups=new Map;primitiveGroups=new Map;constructor(e={}){this.size=e.positionSize??2,this.storage=e.positionStorage??`f64`}get pointCount(){return this.positions.length/this.size}get vertexCount(){return this.vertexPoints.length}get primitiveCount(){return this.offsets.length-1}addPoint(e,t,n=0){let r=this.pointCount;return this.positions.push(e,t),this.size===3&&this.positions.push(n),r}addPoints(e){e.length%this.size!==0&&rC(`point-stride`,`${e.length} values is not a multiple of the position size ${this.size}`);let t=this.pointCount;for(let t=0;t<e.length;t+=1)this.positions.push(e[t]);return t}addPrimitive(e,t={}){let n=this.primitiveCount;for(let t of e)(!Number.isInteger(t)||t<0||t>=this.pointCount)&&rC(`vertex-point`,`primitive ${n} references point ${t} of ${this.pointCount}`),this.vertexPoints.push(t);return this.offsets.push(this.vertexPoints.length),this.kinds.push(bl.indexOf(t.kind??`poly`)),this.closed.push(+!!t.closed),n}addPolygon(e,t={}){let n=this.addPoints(e),r=[];for(let e=n;e<this.pointCount;e+=1)r.push(e);return this.addPrimitive(r,t)}setAttribute(e,t,n){return e===`point`&&t===`P`&&rC(`set-position`,`point.P is owned by the builder; use addPoint`),this.attributes[e][t]=n,this}setNumericAttribute(e,t,n,r=1,i=`f64`){return this.setAttribute(e,t,{storage:i,size:r,data:kl(i,n)})}setStringAttribute(e,t,n){return this.setAttribute(e,t,pC(n))}setDetail(e,t){return this.detail[e]=t,this}addToPointGroup(e,t){let n=this.pointGroups.get(e)??new Set;return n.add(t),this.pointGroups.set(e,n),this}addToPrimitiveGroup(e,t){let n=this.primitiveGroups.get(e)??new Set;return n.add(t),this.primitiveGroups.set(e,n),this}build(){let e=this.pointCount,t={};for(let[n,r]of this.pointGroups)t[n]=zC(r,e);let n={};for(let[e,t]of this.primitiveGroups)n[e]=zC(t,this.primitiveCount);return Fl({pointCount:e,point:{...this.attributes.point,P:{storage:this.storage,size:this.size,data:kl(this.storage,this.positions)}},vertex:this.attributes.vertex,primitive:this.attributes.primitive,detail:this.detail,topology:{vertexPoints:Int32Array.from(this.vertexPoints),offsets:Int32Array.from(this.offsets),kinds:Uint8Array.from(this.kinds),closed:Uint8Array.from(this.closed)},pointGroups:t,primitiveGroups:n})}};function zC(e,t){let n=new Uint8Array(t);for(let r of e)(!Number.isInteger(r)||r<0||r>=t)&&rC(`group-indices`,`group references element ${r}`),n[r]=1;return n}function BC(e,t){(!Number.isFinite(e[0])||!Number.isFinite(e[1]))&&rC(t,`both components must be finite`)}function VC(e={}){let[t,n]=e.size??[1,1],[r,i]=e.center??[0,0];BC([t,n],`rectangle-size`),BC([r,i],`rectangle-center`),(t<0||n<0)&&rC(`rectangle-size`,`rectangle size must not be negative`);let a=r-t/2,o=r+t/2,s=i-n/2,c=i+n/2,l=new RC;return l.addPolygon([a,s,o,s,o,c,a,c],{closed:!0}),l.build()}function HC(e={}){let[t,n]=e.center??[0,0],[r,i]=e.radius??[1,1];BC([t,n],`circle-center`),BC([r,i],`circle-radius`),(r<0||i<0)&&rC(`circle-radius`,`circle radius must not be negative`);let a=new RC;if((e.type??`bezier`)===`poly`){let o=e.divisions??32;(!Number.isSafeInteger(o)||o<3)&&rC(`circle-divisions`,`a polygonal circle needs an integer division count of at least 3`);let s=[];for(let e=0;e<o;e+=1){let a=2*Math.PI*e/o;s.push(t+r*Math.cos(a),n+i*Math.sin(a))}return a.addPolygon(s,{closed:!0}),a.build()}let o=4/3*Math.tan(Math.PI/8),s=r*o,c=i*o,l=[t+r,n,t+r,n+c,t+s,n+i,t,n+i,t-s,n+i,t-r,n+c,t-r,n,t-r,n-c,t-s,n-i,t,n-i,t+s,n-i,t+r,n-c];return a.addPolygon(l,{closed:!0,kind:`bezier`}),a.build()}function UC(e){e.outputs.geometry.set(VC({size:e.inputs.size,center:e.inputs.center}))}var WC={kind:`definition-v1`,moduleId:FC(`Rectangle`),definition:Lg,loadExecute:async()=>UC};function GC(e){e.outputs.geometry.set(HC({center:e.inputs.center,radius:e.inputs.radius,divisions:e.inputs.divisions,type:e.props.type===`poly`?`poly`:`bezier`}))}var KC={kind:`definition-v1`,moduleId:FC(`Circle`),definition:Rg,loadExecute:async()=>GC};function qC(e){e.outputs.geometry.set(SC(e.inputs.inputs.filter(e=>e!==void 0)))}var JC={kind:`definition-v1`,moduleId:FC(`Merge`),definition:Bg,loadExecute:async()=>qC};function YC(e,t){return bl[e.topology.kinds[t]]??`poly`}function XC(e,t){return e.topology.closed[t]===1}function ZC(e,t){return YC(e,t)===`bezier`}function QC(e,t){let n=ew(e,t),r=XC(e,t)?n.length/3:(n.length-1)/3,i=[];for(let e=0;e<r;e+=1){let t=e*3;i.push([n[t],n[t+1],n[t+2],n[(t+3)%n.length]])}return i}function $C(e,t){return[e.topology.offsets[t],e.topology.offsets[t+1]]}function ew(e,t){let[n,r]=$C(e,t),i=Array(r-n);for(let t=n;t<r;t+=1)i[t-n]=e.topology.vertexPoints[t];return i}function tw(e){let t=new Uint8Array(e.pointCount);for(let n of e.topology.vertexPoints)t[n]=1;let n=new Uint8Array(e.pointCount);for(let e=0;e<n.length;e+=1)n[e]=+!t[e];return n}function nw(e){if(e.pointCount===0)return;let t=uC(e),n=lC(e),r=Array(n).fill(1/0),i=Array(n).fill(-1/0);for(let a=0;a<e.pointCount;a+=1)for(let e=0;e<n;e+=1){let o=t.data[a*n+e];o<r[e]&&(r[e]=o),o>i[e]&&(i[e]=o)}return{min:r,max:i}}var rw=`ungrouped`,iw=[0,0,0,1];function aw(e,t={}){lw(t);let n=t.margin??0,r=nw(e),i=r===void 0?0:r.min[0]-n,a=r===void 0?0:r.min[1]-n,o=r===void 0?1:r.max[0]+n,s=r===void 0?1:r.max[1]+n,c=Math.max(o-i,2**-52),l=Math.max(s-a,2**-52),u=t.width&&t.width>0?t.width:c,d=t.height&&t.height>0?t.height:l,f=t.precision??3,p=e=>cw(e,f),m=t.stroke??iw,h=t.strokeWidth??1,g=t.fill??iw,_=(t.fillMode??`none`)===`solid`,v=e.primitive.Cd,y=aC(e.primitive.width,`primitive.width`,[1]),b=aC(e.primitive.opacity,`primitive.opacity`,[1]),x=aC(e.point.pscale,`point.pscale`,[1]),S=e.point.Cd;uw(y,`primitive.width`,e=>e>=0,`non-negative`),uw(b,`primitive.opacity`,e=>e>=0&&e<=1,`between 0 and 1`),uw(x,`point.pscale`,e=>e>=0,`non-negative`);let C=bC(e,`primitive`),w=new Int32Array(e.primitiveCount).fill(-1);for(let t=0;t<C.length;t+=1){let n=e.primitiveGroups[C[t]];for(let r=0;r<e.primitiveCount;r+=1)n[r]===1&&w[r]===-1&&(w[r]=t)}let T=t=>{let n=[`d="${ow(e,t,p)}"`],r=sw(v,t,`primitive`);return r!==void 0&&(n.push(`stroke="${yl.toHex(r)}"`),yl.alpha(r)<1&&n.push(`stroke-opacity="${p(yl.alpha(r))}"`)),y!==void 0&&n.push(`stroke-width="${p(oC(y,t))}"`),b!==void 0&&n.push(`opacity="${p(oC(b,t))}"`),`<path ${n.join(` `)} />`},ee=[];if(C.length===0)for(let t=0;t<e.primitiveCount;t+=1)ee.push(dw(T(t),2));else{for(let t=0;t<C.length;t+=1){let n=[];for(let r=0;r<e.primitiveCount;r+=1)w[r]===t&&n.push(dw(T(r),3));ee.push(dw(`<g id="${fw(C[t])}">`,2),...n,dw(`</g>`,2))}let t=[];for(let n=0;n<e.primitiveCount;n+=1)w[n]===-1&&t.push(dw(T(n),3));t.length>0&&ee.push(dw(`<g id="${rw}">`,2),...t,dw(`</g>`,2))}let E=tw(e),D=uC(e);for(let n=0;n<e.pointCount;n+=1){if(E[n]!==1)continue;let e=x===void 0?t.pointRadius??.5:oC(x,n),r=sw(S,n,`point`)??m,i=yl.alpha(r)<1;ee.push(dw(`<circle cx="${p(oC(D,n,0))}" cy="${p(oC(D,n,1))}" r="${p(e)}" fill="${yl.toHex(r)}"${i?` fill-opacity="${p(yl.alpha(r))}"`:``} stroke="none" />`,2))}return`${[`<svg xmlns="http://www.w3.org/2000/svg" width="${p(u)}" height="${p(d)}" viewBox="${p(i)} ${p(-s)} ${p(c)} ${p(l)}">`,dw(`<!-- Geometry is +Y up; SVG is +Y down. This is the one flip. -->`,1),dw(`<g transform="scale(1,-1)" fill="${_?yl.toHex(g):`none`}"${_&&yl.alpha(g)<1?` fill-opacity="${p(yl.alpha(g))}"`:``} stroke="${yl.toHex(m)}"${yl.alpha(m)<1?` stroke-opacity="${p(yl.alpha(m))}"`:``} stroke-width="${p(h)}"${t.opacity!==void 0&&t.opacity!==1?` opacity="${p(t.opacity)}"`:``}>`,1),...ee,dw(`</g>`,1),`</svg>`].join(`
|
|
206
|
-
`)}\n`}function ow(e,t,n){let r=uC(e),i=e=>`${n(oC(r,e,0))} ${n(oC(r,e,1))}`,a=XC(e,t);if(ZC(e,t)){let n=QC(e,t);if(n.length===0)return``;let r=[`M ${i(n[0][0])}`];for(let[,e,t,a]of n)r.push(`C ${i(e)} ${i(t)} ${i(a)}`);return a&&r.push(`Z`),r.join(` `)}let o=ew(e,t);if(o.length===0)return``;let s=[`M ${i(o[0])}`];for(let e=1;e<o.length;e+=1)s.push(`L ${i(o[e])}`);return a&&s.push(`Z`),s.join(` `)}function sw(e,t,n){if(e!==void 0)return Al(e)&&rC(`colour-storage`,`${n}.Cd is a string attribute; colour is a vec4. Convert with Color.fromHex at the boundary.`),e.size!==4&&rC(`colour-size`,`${n}.Cd has size ${e.size}; colour is a vec4`),yl.fromComponents(e.data,t*4,4)}function cw(e,t){Number.isFinite(e)||rC(`svg-number`,`cannot format non-finite value ${String(e)}`);let n=Number.parseFloat(e.toFixed(t));return Object.is(n,-0)?`0`:String(n)}function lw(e){for(let[t,n]of[[`width`,e.width],[`height`,e.height],[`margin`,e.margin],[`strokeWidth`,e.strokeWidth],[`opacity`,e.opacity],[`pointRadius`,e.pointRadius]])n!==void 0&&!Number.isFinite(n)&&rC(`svg-option`,`${t} must be finite`);((e.width??0)<0||(e.height??0)<0)&&rC(`svg-option`,`width and height must not be negative`),((e.strokeWidth??0)<0||(e.pointRadius??0)<0)&&rC(`svg-option`,`strokeWidth and pointRadius must not be negative`),e.opacity!==void 0&&(e.opacity<0||e.opacity>1)&&rC(`svg-option`,`opacity must be between 0 and 1`);let t=e.precision??3;(!Number.isSafeInteger(t)||t<0||t>15)&&rC(`svg-precision`,`precision must be an integer from 0 to 15`)}function uw(e,t,n,r){if(e!==void 0)for(let i of e.data)n(i)||rC(`attribute-value`,`${t} values must be ${r}`)}function dw(e,t){return`${` `.repeat(t)}${e}`}function fw(e){return e.replace(/&/g,`&`).replace(/</g,`<`).replace(/>/g,`>`).replace(/"/g,`"`)}function pw(e){let t=[];for(let n of e){let e=n.codePointAt(0);e<128?t.push(e):e<2048?t.push(192|e>>6,128|e&63):e<65536?t.push(224|e>>12,128|e>>6&63,128|e&63):t.push(240|e>>18,128|e>>12&63,128|e>>6&63,128|e&63),e=0}return Uint8Array.from(t)}async function mw(e){let{props:t}=e,n=aw(e.inputs.geometry??Ll(2),{width:t.width,height:t.height,margin:t.margin,stroke:t.stroke,strokeWidth:t.strokeWidth,opacity:t.opacity,fill:t.fill,fillMode:t.fillMode===`solid`?`solid`:`none`,pointRadius:t.pointRadius,precision:t.precision});e.outputs.svg.set(n);let r=await e.capabilities.assets.write(pw(n),{mediaType:`image/svg+xml`,suggestedName:t.filename},{signal:e.signal});e.outputs.asset.set(r)}var hw={kind:`definition-v1`,moduleId:FC(`SvgExport`),definition:Hg,loadExecute:async()=>mw};function gw(e){let t=e.inputs.geometry??Ll(2);e.outputs.geometry.set(AC(t,xC({translate:e.inputs.translate,rotate:e.inputs.rotate,scale:e.inputs.scale,pivot:e.inputs.pivot})))}var _w={kind:`definition-v1`,moduleId:FC(`Transform`),definition:zg,loadExecute:async()=>gw},vw=Object.freeze([WC,KC,_w,JC,LC,hw]);new Map(vw.map(e=>[e.moduleId,e]));var yw=Object.freeze([...nC,...vw]),bw=new Map(yw.map(e=>[e.moduleId,e]));function xw(e){return bw.get(e)}var Sw={core:`Cascade core`,library:`Cascade library`,project:`Project module`,embedded:`Embedded in the graph`,unknown:`Unknown`};function Cw(e){return{moduleId:e,moduleFolder:null,origin:`unknown`,originLabel:Sw.unknown,libraryId:null,path:null,pathNote:null,flavour:`unknown`,flavourNote:null,runsOn:null,runsOnNote:null,icon:null,iconNote:null,definition:null,inputs:[],outputs:[],props:[],hasLegacyExecute:null,warnings:[],error:null}}function ww(e){let t=e.modulePath;return typeof t==`string`&&t?t:e.type.includes(`.`)?e.type:je(e.type)}function Tw(e){let t=e.sourceType;return typeof t==`string`&&t?t:null}function Ew(e,t){return e?Object.entries(e).map(([e,n])=>({name:e,kind:t?`prop`:typeof n?.kind==`string`?n.kind:`data`,type:typeof n?.type==`string`?n.type:null,...n&&`default`in n?{default:n.default}:{},...typeof n?.description==`string`?{description:n.description}:{}})):[]}function Dw(e,t){e.definition=t,e.flavour=`definition-v1`;let n=t;e.inputs=Ew(n.inputs,!1),e.outputs=Ew(n.outputs,!1),e.props=Ew(n.props,!0),typeof n.icon==`string`&&n.icon?(e.icon=n.icon,e.iconNote=null):(e.icon=null,e.iconNote=`The definition declares no icon; Cascade’s default is used.`),(n.runsOn===`portable`||n.runsOn===`server`||n.runsOn===`browser`)&&(e.runsOn=n.runsOn,e.runsOnNote=`Declared in the definition.`)}function Ow(e){if(e.hasLegacyExecute===!1)return["The module exports a definition but no `execute`, so there is nothing to cook — in Studio or under `cascade run`. A definition-v1 node exports both."];if(!e.definition)return[];if(!Tf(e.definition))return["The `definition` export does not declare `apiVersion: 1`, so it is not a definition-v1 node. Studio calls this module as `execute(node, graph)`, and any ports it shows are the ones that call declares."];let t=Ef(e.definition);if(t)return[`Studio cannot build ports from this definition:\n${t}`];let n=Df(e.definition);return n.length?[`The definition requires the ${n.join(`, `)} capability, which Studio does not supply. The cook fails here with that message; \`cascade run\` supplies it.`]:[]}var kw=new Map;async function Aw(e){let t=kw.get(e);return t||(t=(async()=>{let t=await fetch(`/api/nodes/${encodeURIComponent(e)}/compiled`);if(!t.ok)throw Error(await t.text()||`compile failed (${t.status})`);let n=await t.text(),r=typeof document<`u`?URL.createObjectURL(new Blob([n],{type:`text/javascript`})):`data:text/javascript;base64,${btoa(n)}`;try{let e=await od(()=>import(r),[]);return{definition:e?.definition??null,hasExecute:typeof e?.execute==`function`}}finally{r.startsWith(`blob:`)&&URL.revokeObjectURL(r)}})(),kw.set(e,t),t)}function jw(e){kw.delete(e),Mw.delete(e),Nw.delete(e)}var Mw=new Map,Nw=new Map;function Pw(e){let t=Mw.get(e);return t||(t=fetch(`/api/nodes/${encodeURIComponent(e)}/index.ts`).then(async e=>{if(!e.ok)throw Error(await e.text()||`source unavailable (${e.status})`);return e.text()}),Mw.set(e,t)),t}function Fw(e){let t=Nw.get(e);return t||(t=fetch(`/api/nodes/${encodeURIComponent(e)}/path`).then(async e=>e.ok?(await e.json())?.path??null:null).catch(()=>null),Nw.set(e,t)),t}function Iw(e){let t=/export\s+(?:const|let|var)\s+definition\b/.test(e)||/export\s*\{[^}]*\bdefinition\b[^}]*\}/.test(e),n=/export\s+(?:async\s+)?function\s+execute\b/.test(e)||/export\s+(?:const|let|var)\s+execute\b/.test(e)||/export\s*\{[^}]*\bexecute\b[^}]*\}/.test(e);return t?{flavour:`definition-v1`,hasLegacyExecute:n}:n?{flavour:`legacy-dynamic`,hasLegacyExecute:n}:{flavour:`unknown`,hasLegacyExecute:n}}async function Lw(e,t={},n={}){let r=ww(e),i=Cw(r),a=Tw(e);if(Fe(r)||a===`stdlib`){let e=Re(r);i.libraryId=e,i.origin=e===`core`?`core`:`library`,i.originLabel=Sw[i.origin],i.path=null,i.pathNote=`Compiled into Studio. No project path to resolve.`,i.runsOnNote=`The server reports runsOn for project modules only.`;let t=xw(r);if(t)Dw(i,t.definition),i.hasLegacyExecute=!1,i.flavourNote=`Registered through the definition-v1 adapter (registerDefinitionNodes).`;else{i.flavour=`core-class`,i.flavourNote=`A Node subclass compiled into Studio — neither definition-v1 nor a dynamic module.`;let e=Me(r);i.icon=e?.icon??null,i.iconNote=e?.icon?null:`No icon in the node metadata registry.`}return i}if(r.startsWith(`local.`)||a===`embedded`){if(i.origin=`embedded`,i.originLabel=Sw.embedded,i.path=null,i.pathNote=`The code lives in the graph document, not in a file.`,i.runsOnNote=`Not reported: runsOn comes from the project server, which does not see embedded code.`,i.iconNote=`Embedded code declares no icon.`,e.code){let t=Iw(e.code);i.flavour=t.flavour,i.hasLegacyExecute=t.hasLegacyExecute,t.flavour===`definition-v1`&&!t.hasLegacyExecute&&i.warnings.push("The embedded code exports a definition but no `execute`, so there is nothing to cook. A definition-v1 node exports both."),t.flavour===`unknown`&&(i.flavourNote=`Neither a definition nor an execute export was found in the embedded code.`)}else i.flavourNote=`The node carries no code, so its flavour cannot be read.`;return i}if(r.startsWith(`project.`)||a===`project`){let e=i_(r);if(i.origin=`project`,i.originLabel=Sw.project,i.moduleFolder=e,!e)return i.error=`The module id carries no folder name.`,i;let a=t[e];a?(i.runsOn=a,i.runsOnNote=`From GET /api/nodes — declared, or inferred by the server when not declared.`):i.runsOnNote=`GET /api/nodes did not list this module. Either no server is serving this project, or it serves a different one.`;let o=n[e];o&&(i.icon=o),i.path=await Fw(e),i.path||(i.pathNote=`GET /api/nodes/<module>/path did not answer.`);try{let t=Iw(await Pw(e));i.flavour=t.flavour,i.hasLegacyExecute=t.hasLegacyExecute,t.flavour===`unknown`&&(i.flavourNote=`Neither a definition nor an execute export was found in index.ts.`)}catch(e){return i.error=String(e instanceof Error?e.message:e),i}if(i.flavour===`definition-v1`){try{let t=await Aw(e);i.hasLegacyExecute=t.hasExecute,t.definition?(Dw(i,t.definition),a&&i.runsOn!==a&&i.warnings.push(`The definition declares runsOn "${i.runsOn}" but the server reports "${a}".`),o&&(i.icon=o)):i.flavourNote=`index.ts exports a definition, but the compiled module has no definition export to read.`}catch(e){i.error=String(e instanceof Error?e.message:e)}i.warnings.push(...Ow(i))}return i}return i.error=`Unrecognised module id "${r}" — no origin could be determined from the document.`,i}var Rw=u(`<div class="empty-state svelte-16oolky"><p class="svelte-16oolky">Select a node to see where it is defined</p></div>`),zw=u(`<div class="empty-state svelte-16oolky"><p class="svelte-16oolky">Reading the module…</p></div>`),Bw=u(`<span class="dim svelte-16oolky"> </span>`),Vw=u(`<span class="value mono wrap svelte-16oolky"> </span>`),Hw=u(`<span class="value unknown svelte-16oolky">unknown</span>`),Uw=u(`<p class="note svelte-16oolky"> </p>`),Ww=u(`<div class="info-row svelte-16oolky"><span class="label svelte-16oolky">API version</span> <span class="value svelte-16oolky"> </span></div>`),Gw=u(`<span class="value svelte-16oolky"> </span>`),Kw=u(`<span class="value highlight svelte-16oolky"> </span>`),qw=u(`<span class="value mono svelte-16oolky"> </span>`),Jw=u(`<span class="value dim svelte-16oolky">none</span>`),Yw=u(`<div class="info-row svelte-16oolky"><span class="label svelte-16oolky">Declared label</span> <span class="value svelte-16oolky"> </span></div>`),Xw=u(`<section class="info-section svelte-16oolky"><h3 class="svelte-16oolky">Read failed</h3> <p class="failure mono svelte-16oolky"> </p></section>`),Zw=u(`<p class="warning svelte-16oolky"> </p>`),Qw=u(`<span class="port-default mono svelte-16oolky"> </span>`),$w=u(`<p class="port-description svelte-16oolky"> </p>`),eT=u(`<div class="port svelte-16oolky"><span class="port-name mono svelte-16oolky"> </span> <span class="port-type mono svelte-16oolky"> </span> <!> <!></div>`),tT=u(`<section class="info-section svelte-16oolky"><h3 class="svelte-16oolky"> </h3> <div class="port-list svelte-16oolky"></div></section>`),nT=u(`<p class="note standalone svelte-16oolky">A dynamic module declares nothing up front — its ports appear only once it has cooked, so what it takes and returns is in the Parameters panel rather than here. Definition-v1 declares its ports statically and reads them without running anything, which is why it is where Cascade is heading; Studio now cooks both styles, so this node can be converted whenever it suits.</p>`),rT=u(`<div class="info-sections svelte-16oolky"><section class="info-section svelte-16oolky"><h3 class="svelte-16oolky">Module</h3> <div class="info-grid svelte-16oolky"><div class="info-row svelte-16oolky"><span class="label svelte-16oolky">Node</span> <span class="value mono svelte-16oolky"> </span></div> <div class="info-row svelte-16oolky"><span class="label svelte-16oolky">Module id</span> <span class="value mono wrap svelte-16oolky"> </span></div> <div class="info-row svelte-16oolky"><span class="label svelte-16oolky">Defined in</span> <span class="value svelte-16oolky"> <!></span></div> <div class="info-row svelte-16oolky"><span class="label svelte-16oolky">Path</span> <!></div> <!></div></section> <section class="info-section svelte-16oolky"><h3 class="svelte-16oolky">Format</h3> <div class="info-grid svelte-16oolky"><div class="info-row svelte-16oolky"><span class="label svelte-16oolky">Flavour</span> <span> </span></div> <!> <div class="info-row svelte-16oolky"><span class="label svelte-16oolky">execute() export</span> <!></div> <div class="info-row svelte-16oolky"><span class="label svelte-16oolky">Runs on</span> <!></div> <div class="info-row svelte-16oolky"><span class="label svelte-16oolky">Declared icon</span> <!></div> <!></div> <!> <!> <!></section> <!> <!> <!> <section class="info-section svelte-16oolky"><h3 class="svelte-16oolky">Actions</h3> <div class="actions svelte-16oolky"><button class="action-btn svelte-16oolky" disabled="">Duplicate node</button> <button class="action-btn svelte-16oolky" disabled="">Retarget…</button></div> <p class="note svelte-16oolky"></p></section></div>`),iT=u(`<div class="definition-panel svelte-16oolky"><!></div>`);function aT(e,t){ee(t,!1);let n=()=>we(_a,`$panelLockStore`,s),r=()=>we(ga,`$sharedContextStore`,s),i=()=>we($g,`$runsOnByModule`,s),a=()=>we(e_,`$iconByModule`,s),[s,c]=ne(),l=Y(),u=Y(),d=Y(),p=V(t,`panelId`,8),m=V(t,`panelApi`,8),g=V(t,`graph`,12,void 0),_=V(t,`selectedNode`,12,null);ye(()=>{r_()});let y=Y(null),b=Y(!1),S=0;async function C(e){let t=++S;if(!e){L(y,null),L(b,!1);return}L(b,!0);let n=await Lw(e,i(),a());t===S&&(L(y,n),L(b,!1))}let w={"definition-v1":`definition-v1`,"legacy-dynamic":`dynamic`,"core-class":`core class`,unknown:`Unknown`},T={portable:`portable — either side`,server:`server`,browser:`browser`};function O(e){return e===void 0?``:typeof e==`string`?`"${e}"`:Array.isArray(e)?`[${e.join(`, `)}]`:typeof e==`object`&&e?JSON.stringify(e):String(e)}function k(e){return e.kind===`trigger`?`trigger`:e.type??`unknown`}let j=`Not wired up yet. Graph.retargetDefinition can carry parameters across a swap, but nothing enumerates the versions to retarget to, and there is no parameter-preserving duplicate.`;J(()=>(n(),A(p())),()=>{L(l,n().get(p()))}),J(()=>x(l),()=>{L(u,x(l)?.isLocked??!1)}),J(()=>r(),()=>{r()&&(g(r().graph),_(r().selectedNode))}),J(()=>(x(u),x(l),A(_())),()=>{L(d,x(u)?x(l)?.lockedNode:_())}),J(()=>x(d),()=>{C(x(d))}),J(()=>(A(m()),x(u),x(d)),()=>{if(m()?.setTitle){let e=x(u)?`~ `:``;m().setTitle(x(d)?`${e}Definition: ${x(d).id}`:`${e}Definition`)}}),he(),ue();var re=iT(),N=M(re),ie=e=>{var t=Rw();E(e,t)},ae=e=>{var t=zw();E(e,t)},oe=e=>{var t=rT(),n=M(t),r=P(M(n),2),i=M(r),a=P(M(i),2),s=q(a,!0);o(i);var c=P(i,2),l=P(M(c),2),u=q(l,!0);o(c);var p=P(c,2),m=P(M(p),2),g=M(m,!0),_=P(g),b=e=>{var t=Bw(),n=q(t);K(()=>D(n,`· ${x(y),F(()=>x(y).libraryId)??``}`)),E(e,t)};Z(_,e=>{x(y),F(()=>x(y).libraryId)&&e(b)}),o(m),o(p);var S=P(p,2),C=P(M(S),2),ee=e=>{var t=Vw(),n=q(t,!0);K(()=>D(n,(x(y),F(()=>x(y).path)))),E(e,t)},A=e=>{var t=Hw();E(e,t)};Z(C,e=>{x(y),F(()=>x(y).path)?e(ee):e(A,-1)}),o(S);var ne=P(S,2),re=e=>{var t=Uw(),n=q(t,!0);K(()=>D(n,(x(y),F(()=>x(y).pathNote)))),E(e,t)};Z(ne,e=>{x(y),F(()=>!x(y).path&&x(y).pathNote)&&e(re)}),o(r),o(n);var N=P(n,2),ie=P(M(N),2),ae=M(ie),oe=P(M(ae),2);let I;var L=q(oe,!0);o(ae);var R=P(ae,2),z=e=>{var t=Ww(),n=P(M(t),2),r=q(n,!0);o(t),K(()=>D(r,(x(y),F(()=>x(y).definition.apiVersion)))),E(e,t)};Z(R,e=>{x(y),F(()=>x(y).definition&&x(y).definition.apiVersion!==void 0)&&e(z)});var se=P(R,2),B=P(M(se),2),V=e=>{var t=Hw();E(e,t)},ce=e=>{var t=Gw(),n=q(t,!0);K(()=>D(n,(x(y),F(()=>x(y).hasLegacyExecute?`yes`:`no`)))),E(e,t)};Z(B,e=>{x(y),F(()=>x(y).hasLegacyExecute===null)?e(V):e(ce,-1)}),o(se);var le=P(se,2),H=P(M(le),2),U=e=>{var t=Kw(),n=q(t,!0);K(()=>D(n,(x(y),F(()=>T[x(y).runsOn]??x(y).runsOn)))),E(e,t)},ue=e=>{var t=Hw();E(e,t)};Z(H,e=>{x(y),F(()=>x(y).runsOn)?e(U):e(ue,-1)}),o(le);var de=P(le,2),fe=P(M(de),2),pe=e=>{var t=qw(),n=q(t,!0);K(()=>D(n,(x(y),F(()=>x(y).icon)))),E(e,t)},me=e=>{var t=Jw();E(e,t)};Z(fe,e=>{x(y),F(()=>x(y).icon)?e(pe):e(me,-1)}),o(de);var he=P(de,2),W=e=>{var t=Yw(),n=P(M(t),2),r=q(n,!0);o(t),K(()=>D(r,(x(y),F(()=>x(y).definition.label)))),E(e,t)};Z(he,e=>{x(y),F(()=>x(y).definition&&x(y).definition.label)&&e(W)}),o(ie);var ge=P(ie,2),_e=e=>{var t=Uw(),n=q(t,!0);K(()=>D(n,(x(y),F(()=>x(y).flavourNote)))),E(e,t)};Z(ge,e=>{x(y),F(()=>x(y).flavourNote)&&e(_e)});var ve=P(ge,2),ye=e=>{var t=Uw(),n=q(t,!0);K(()=>D(n,(x(y),F(()=>x(y).runsOnNote)))),E(e,t)};Z(ve,e=>{x(y),F(()=>x(y).runsOnNote&&!x(y).runsOn)&&e(ye)});var be=P(ve,2),xe=e=>{var t=Uw(),n=q(t,!0);K(()=>D(n,(x(y),F(()=>x(y).iconNote)))),E(e,t)};Z(be,e=>{x(y),F(()=>x(y).iconNote&&!x(y).icon)&&e(xe)}),o(N);var J=P(N,2),Se=e=>{var t=Xw(),n=P(M(t),2),r=q(n,!0);o(t),K(()=>D(r,(x(y),F(()=>x(y).error)))),E(e,t)};Z(J,e=>{x(y),F(()=>x(y).error)&&e(Se)});var Y=P(J,2);f(Y,1,()=>(x(y),F(()=>x(y).warnings)),h,(e,t)=>{var n=Zw(),r=q(n,!0);K(()=>D(r,x(t))),E(e,n)});var Ce=P(Y,2),we=e=>{var t=te(),n=G(t);f(n,1,()=>(x(y),F(()=>[{title:`Declared inputs`,ports:x(y).inputs,showDefault:!0},{title:`Declared outputs`,ports:x(y).outputs,showDefault:!1},{title:`Declared props`,ports:x(y).props,showDefault:!0}])),h,(e,t)=>{var n=te(),r=G(n),i=e=>{var n=tT(),r=M(n),i=q(r,!0),a=P(r,2);f(a,5,()=>(x(t),F(()=>x(t).ports)),h,(e,n)=>{var r=eT(),i=M(r),a=q(i,!0),s=P(i,2),c=q(s,!0),l=P(s,2),u=e=>{var t=Qw(),r=q(t);K(e=>D(r,`= ${e??``}`),[()=>(x(n),F(()=>O(x(n).default)))]),E(e,t)};Z(l,e=>{x(t),x(n),F(()=>x(t).showDefault&&x(n).default!==void 0)&&e(u)});var d=P(l,2),f=e=>{var t=$w(),r=q(t,!0);K(()=>D(r,(x(n),F(()=>x(n).description)))),E(e,t)};Z(d,e=>{x(n),F(()=>x(n).description)&&e(f)}),o(r),K(e=>{D(a,(x(n),F(()=>x(n).name))),D(c,e)},[()=>(x(n),F(()=>k(x(n))))]),E(e,r)}),o(a),o(n),K(()=>D(i,(x(t),F(()=>x(t).title)))),E(e,n)};Z(r,e=>{x(t),F(()=>x(t).ports.length)&&e(i)}),E(e,n)}),E(e,t)},Te=e=>{var t=nT();E(e,t)};Z(Ce,e=>{x(y),F(()=>x(y).definition)?e(we):(x(y),F(()=>x(y).flavour===`legacy-dynamic`)&&e(Te,1))});var Ee=P(Ce,2),De=P(M(Ee),2),Oe=M(De);X(Oe,`title`,j);var ke=P(Oe,2);X(ke,`title`,j),o(De);var Ae=P(De,2);Ae.textContent=`Not wired up yet. Graph.retargetDefinition can carry parameters across a swap, but nothing enumerates the versions to retarget to, and there is no parameter-preserving duplicate.`,o(Ee),o(t),K(()=>{D(s,(x(d),F(()=>x(d).id))),D(u,(x(y),F(()=>x(y).moduleId))),D(g,(x(y),F(()=>x(y).originLabel))),I=v(oe,1,`value svelte-16oolky`,null,I,{unknown:x(y).flavour===`unknown`}),D(L,(x(y),F(()=>w[x(y).flavour]??x(y).flavour)))}),E(e,t)};Z(N,e=>{x(d)?x(b)&&!x(y)?e(ae,1):x(y)&&e(oe,2):e(ie)}),o(re),E(e,re),Ee(),c()}function oT(){return typeof document<`u`&&eg()}var sT=class e extends Ju{static{this.PREVIEW_INTERVAL=33}constructor(e,t,n){super(e,t,n),this._previewPending=!1,this._previewBuffer=null,this._lastPreviewTime=0}onCook(){return this.render()}requestCook(){this.markDirty()}toImageBuffer(e){return e?e instanceof pg?e:ug(e)?pg.fromCanvas(e):null:null}getImageSize(e){if(!e)return{width:0,height:0};if(e instanceof pg)return{width:e.width,height:e.height};if(ug(e)){let t=e;return{width:t.naturalWidth||e.width,height:t.naturalHeight||e.height}}return{width:0,height:0}}addResolutionParm(e=512,t=512){this.addParm(`resolution`,{value:[e,t],params:{min:[1,1],max:[4096,4096],integer:!0},displayName:`Resolution`,onChange:()=>this.requestCook()})}getResolution(){return this.props.resolution?this.props.resolution.value:(console.warn(`${this.type}: getResolution() called but no resolution parameter exists. Call addResolutionParm() in setup().`),[512,512])}resolveOutputSize(e,t,n){let r=t.filter(e=>e!==null);switch(e){case`input`:case`input1`:if(r[0])return{width:r[0].width,height:r[0].height};break;case`input2`:if(r[1])return{width:r[1].width,height:r[1].height};if(r[0])return{width:r[0].width,height:r[0].height};break;case`largest`:if(r.length>0){let e=0,t=r[0];for(let n of r){let r=n.width*n.height;r>e&&(e=r,t=n)}return{width:t.width,height:t.height}}break;case`smallest`:if(r.length>0){let e=1/0,t=r[0];for(let n of r){let r=n.width*n.height;r<e&&(e=r,t=n)}return{width:t.width,height:t.height}}break;case`custom`:if(n)return{width:n[0],height:n[1]}}return r[0]?{width:r[0].width,height:r[0].height}:{width:512,height:512}}resizeToFit(e,t,n,r=`fill`){if(e.width===t&&e.height===n)return e;let i=pg.rgba(t,n),a=e.width/e.height,o=t/n,s=0,c=0,l=e.width,u=e.height,d=0,f=0,p=t,m=n;switch(r){case`fill`:a>o?(l=Math.round(e.height*o),s=Math.round((e.width-l)/2)):(u=Math.round(e.width/o),c=Math.round((e.height-u)/2));break;case`fit`:a>o?(m=Math.round(t/a),f=Math.round((n-m)/2)):(p=Math.round(n*a),d=Math.round((t-p)/2)),i.fill(0,0),i.fill(1,0),i.fill(2,0),i.fill(3,1);break;case`stretch`:break;case`native`:p=Math.min(e.width,t),m=Math.min(e.height,n),l=p,u=m,d=Math.round((t-p)/2),f=Math.round((n-m)/2),s=Math.round((e.width-l)/2),c=Math.round((e.height-u)/2),i.fill(0,0),i.fill(1,0),i.fill(2,0),i.fill(3,1)}let h=l/p,g=u/m;for(let n=0;n<Math.min(e.channelCount,4);n++){let r=i.channels[n];for(let i=0;i<m;i++)for(let a=0;a<p;a++){let o=s+a*h,l=c+i*g;r[(f+i)*t+(d+a)]=e.sample(o,l,n)}}if(e.channelCount<4&&r!==`fit`&&r!==`native`)for(let e=0;e<m;e++)for(let n=0;n<p;n++)i.channels[3][(f+e)*t+(d+n)]=1;return i}prepareInputs(e,t=`input`,n=`fill`,r){let i=e.map(e=>this.toImageBuffer(e)),{width:a,height:o}=this.resolveOutputSize(t,i,r);return{buffers:i.map(e=>e?e.width===a&&e.height===o?e:this.resizeToFit(e,a,o,n):null),width:a,height:o}}setOutput(e,t){e.setValue(t),this._previewBuffer=t,this.updatePreviewThrottled()}updatePreviewThrottled(){if(!oT())return;let t=performance.now(),n=t-this._lastPreviewTime;if(n>=e.PREVIEW_INTERVAL)this._lastPreviewTime=t,this._previewBuffer&&(this.preview=this._previewBuffer.toCanvas()),this._previewPending=!1;else if(!this._previewPending){this._previewPending=!0;let t=e.PREVIEW_INTERVAL-n;setTimeout(()=>{this._previewPending=!1,this._lastPreviewTime=performance.now(),this._previewBuffer&&oT()&&(this.preview=this._previewBuffer.toCanvas())},t)}}getBufferInfo(){if(!this._previewBuffer)return null;let e=this._previewBuffer;return{hasOutput:!0,width:e.width,height:e.height,channels:e.channelCount,layout:e.layout,memoryBytes:e.memoryBytes,memorySizeStr:e.memorySizeStr}}},cT=u(`<section class="info-section buffer-section svelte-13kv637"><h3 class="svelte-13kv637">Output Buffer</h3> <div class="info-grid svelte-13kv637"><div class="info-row resolution-row svelte-13kv637"><span class="label svelte-13kv637">Resolution</span> <span class="value mono highlight svelte-13kv637"> </span></div> <div class="info-row svelte-13kv637"><span class="label svelte-13kv637">Format</span> <span class="value svelte-13kv637"> </span></div> <div class="info-row svelte-13kv637"><span class="label svelte-13kv637">Buffer Size</span> <span class="value svelte-13kv637"> </span></div></div></section>`),lT=u(`<div class="issue error svelte-13kv637"><span class="issue-type svelte-13kv637">Error</span> <span class="issue-message svelte-13kv637"> </span></div>`),uT=u(`<div class="issue warning svelte-13kv637"><span class="issue-type svelte-13kv637">Warning</span> <span class="issue-message svelte-13kv637"> </span></div>`),dT=u(`<section class="info-section svelte-13kv637"><h3 class="svelte-13kv637">Issues</h3> <div class="issues svelte-13kv637"><!> <!></div></section>`),fT=u(`<section class="info-section svelte-13kv637"><h3 class="svelte-13kv637">Code</h3> <div class="info-grid svelte-13kv637"><div class="info-row svelte-13kv637"><span class="label svelte-13kv637">Lines</span> <span class="value svelte-13kv637"> </span></div> <div class="info-row svelte-13kv637"><span class="label svelte-13kv637">Characters</span> <span class="value svelte-13kv637"> </span></div></div></section>`),pT=u(`<div class="info-sections svelte-13kv637"><section class="info-section svelte-13kv637"><h3 class="svelte-13kv637">Node</h3> <div class="info-grid svelte-13kv637"><div class="info-row svelte-13kv637"><span class="label svelte-13kv637">ID</span> <span class="value mono svelte-13kv637"> </span></div> <div class="info-row svelte-13kv637"><span class="label svelte-13kv637">Type</span> <span class="value mono svelte-13kv637"> </span></div> <div class="info-row svelte-13kv637"><span class="label svelte-13kv637">Class</span> <span class="value mono svelte-13kv637"> </span></div> <div class="info-row svelte-13kv637"><span class="label svelte-13kv637">Path</span> <span class="value mono path svelte-13kv637"> </span></div></div></section> <section class="info-section svelte-13kv637"><h3 class="svelte-13kv637">Cook Performance <button class="reset-btn svelte-13kv637" title="Reset statistics">Reset</button></h3> <div class="info-grid svelte-13kv637"><div class="info-row svelte-13kv637"><span class="label svelte-13kv637">Last Cook</span> <span> </span></div> <div class="info-row svelte-13kv637"><span class="label svelte-13kv637">Average</span> <span> </span></div> <div class="info-row svelte-13kv637"><span class="label svelte-13kv637">Total Time</span> <span class="value svelte-13kv637"> </span></div> <div class="info-row svelte-13kv637"><span class="label svelte-13kv637">Cook Count</span> <span class="value svelte-13kv637"> </span></div> <div class="info-row svelte-13kv637"><span class="label svelte-13kv637">Last Cooked</span> <span class="value svelte-13kv637"> </span></div> <div class="info-row svelte-13kv637"><span class="label svelte-13kv637">Peak Memory</span> <span class="value svelte-13kv637"> </span></div></div></section> <!> <section class="info-section svelte-13kv637"><h3 class="svelte-13kv637">State</h3> <div class="info-grid svelte-13kv637"><div class="info-row svelte-13kv637"><span class="label svelte-13kv637">Bypass</span> <span> </span></div> <div class="info-row svelte-13kv637"><span class="label svelte-13kv637">Cook Flag</span> <span> </span></div> <div class="info-row svelte-13kv637"><span class="label svelte-13kv637">Time Dependent</span> <span> </span></div> <div class="info-row svelte-13kv637"><span class="label svelte-13kv637">Dirty</span> <span> </span></div> <div class="info-row svelte-13kv637"><span class="label svelte-13kv637">Variadic</span> <span class="value svelte-13kv637"> </span></div></div></section> <section class="info-section svelte-13kv637"><h3 class="svelte-13kv637">Ports & Parameters</h3> <div class="info-grid svelte-13kv637"><div class="info-row svelte-13kv637"><span class="label svelte-13kv637">Inputs</span> <span class="value svelte-13kv637"> </span></div> <div class="info-row svelte-13kv637"><span class="label svelte-13kv637">Outputs</span> <span class="value svelte-13kv637"> </span></div> <div class="info-row svelte-13kv637"><span class="label svelte-13kv637">Parameters</span> <span class="value svelte-13kv637"> </span></div> <div class="info-row svelte-13kv637"><span class="label svelte-13kv637">Expressions</span> <span> </span></div></div></section> <!> <!></div>`),mT=u(`<div class="empty-state svelte-13kv637"><p class="svelte-13kv637">Select a node to view its information</p></div>`),hT=u(`<div class="cook-info-panel svelte-13kv637"><!></div>`);function gT(e,t){ee(t,!1);let n=()=>we(_a,`$panelLockStore`,i),r=()=>we(ga,`$sharedContextStore`,i),[i,a]=ne(),s=Y(),c=Y(),l=Y(),u=Y(),d=V(t,`panelId`,8),f=V(t,`panelApi`,8),p=V(t,`graph`,12,void 0),m=V(t,`selectedNode`,12,null);function h(e){return e<.01?`< 0.01ms`:e<1?`${e.toFixed(2)}ms`:e<1e3?`${e.toFixed(1)}ms`:`${(e/1e3).toFixed(2)}s`}function g(e){return e===0?`-`:e<1024?`${e}B`:e<1048576?`${(e/1024).toFixed(1)}KB`:`${(e/1048576).toFixed(2)}MB`}function _(e){return e===0?`Never`:new Date(e).toLocaleTimeString()}function y(e){return e.constructor.name}function b(e){return e.inputs.filter(e=>!e.options?.hidden).length}function S(e){return e.outputs.length}function C(e){return e.inputs.filter(e=>e.connections.length>0).length}function w(e){return e.outputs.filter(e=>e.connections.length>0).length}function T(e){return Object.keys(e.props).length}function te(e){return Object.values(e.props).filter(e=>e.expression).length}function O(){x(l)?.resetCookInfo&&x(l).resetCookInfo()}function j(e){return e instanceof sT}function re(e){return j(e)?e.getBufferInfo():null}function N(e,t){let n=e*t/1e6;return n>=1?`${e} × ${t} (${n.toFixed(1)}MP)`:`${e} × ${t} (${(e*t/1e3).toFixed(0)}K)`}function ie(e,t){switch(e){case`gray`:return`Grayscale (1ch)`;case`rgb`:return`RGB (3ch)`;case`rgba`:return`RGBA (4ch)`;default:return`${t} channels`}}J(()=>(n(),A(d())),()=>{L(s,n().get(d()))}),J(()=>x(s),()=>{L(c,x(s)?.isLocked??!1)}),J(()=>r(),()=>{r()&&(p(r().graph),m(r().selectedNode))}),J(()=>(x(c),x(s),A(m())),()=>{L(l,x(c)?x(s)?.lockedNode:m())}),J(()=>(A(f()),x(c),x(l)),()=>{if(f()?.setTitle){let e=x(c)?`~ `:``;x(l)?f().setTitle(`${e}Info: ${x(l).id}`):f().setTitle(`${e}Node Info`)}}),J(()=>x(l),()=>{L(u,x(l)?re(x(l)):null)}),he(),ue();var ae=hT(),oe=M(ae),I=e=>{var t=pT(),n=M(t),r=P(M(n),2),i=M(r),a=P(M(i),2),s=q(a,!0);o(i);var c=P(i,2),d=P(M(c),2),f=q(d,!0);o(c);var p=P(c,2),m=P(M(p),2),ee=q(m,!0);o(p);var A=P(p,2),ne=P(M(A),2),j=q(ne,!0);o(A),o(r),o(n);var re=P(n,2),ae=M(re),oe=P(M(ae));o(ae);var I=P(ae,2),L=M(I),R=P(M(L),2);let z;var se=q(R,!0);o(L);var B=P(L,2),V=P(M(B),2);let ce;var le=q(V,!0);o(B);var H=P(B,2),U=P(M(H),2),ue=q(U,!0);o(H);var de=P(H,2),fe=P(M(de),2),pe=q(fe,!0);o(de);var me=P(de,2),he=P(M(me),2),W=q(he,!0);o(me);var G=P(me,2),ge=P(M(G),2),_e=q(ge,!0);o(G),o(I),o(re);var ve=P(re,2),ye=e=>{var t=cT(),n=P(M(t),2),r=M(n),i=P(M(r),2),a=q(i,!0);o(r);var s=P(r,2),c=P(M(s),2),l=q(c,!0);o(s);var d=P(s,2),f=P(M(d),2),p=q(f,!0);o(d),o(n),o(t),K((e,t)=>{D(a,e),D(l,t),D(p,(x(u),F(()=>x(u).memorySizeStr)))},[()=>(x(u),F(()=>N(x(u).width,x(u).height))),()=>(x(u),F(()=>ie(x(u).layout,x(u).channels)))]),E(e,t)};Z(ve,e=>{x(u)&&e(ye)});var be=P(ve,2),xe=P(M(be),2),J=M(xe),Se=P(M(J),2);let Y;var Ce=q(Se,!0);o(J);var we=P(J,2),Te=P(M(we),2);let Ee;var X=q(Te,!0);o(we);var De=P(we,2),Oe=P(M(De),2);let ke;var Ae=q(Oe,!0);o(De);var je=P(De,2),Me=P(M(je),2);let Ne;var Pe=q(Me,!0);o(je);var Fe=P(je,2),Ie=P(M(Fe),2),Le=q(Ie,!0);o(Fe),o(xe),o(be);var Re=P(be,2),ze=P(M(Re),2),Be=M(ze),Ve=P(M(Be),2),He=q(Ve);o(Be);var Ue=P(Be,2),We=P(M(Ue),2),Q=q(We);o(Ue);var Ge=P(Ue,2),Ke=P(M(Ge),2),qe=q(Ke,!0);o(Ge);var Je=P(Ge,2),Ye=P(M(Je),2);let Xe;var Ze=q(Ye,!0);o(Je),o(ze),o(Re);var $=P(Re,2),Qe=e=>{var t=dT(),n=P(M(t),2),r=M(n),i=e=>{var t=lT(),n=P(M(t),2),r=q(n,!0);o(t),K(()=>D(r,(x(l),F(()=>x(l).error.message)))),E(e,t)};Z(r,e=>{x(l),F(()=>x(l).error)&&e(i)});var a=P(r,2),s=e=>{var t=uT(),n=P(M(t),2),r=q(n,!0);o(t),K(()=>D(r,(x(l),F(()=>x(l).warning)))),E(e,t)};Z(a,e=>{x(l),F(()=>x(l).warning)&&e(s)}),o(n),o(t),E(e,t)};Z($,e=>{x(l),F(()=>x(l).error||x(l).warning)&&e(Qe)});var $e=P($,2),et=e=>{var t=fT(),n=P(M(t),2),r=M(n),i=P(M(r),2),a=q(i,!0);o(r);var s=P(r,2),c=P(M(s),2),u=q(c,!0);o(s),o(n),o(t),K(e=>{D(a,e),D(u,(x(l),F(()=>x(l).code.length)))},[()=>(x(l),F(()=>x(l).code.split(`
|
|
207
|
-
`).length))]),E(e,t)};Z($e,e=>{x(l),F(()=>x(l).code)&&e(et)}),o(t),K((e,t,n,r,i,a,o,c,u,d,p,m,h,g)=>{D(s,(x(l),F(()=>x(l).id))),D(f,(x(l),F(()=>x(l).type))),D(ee,e),D(j,t),z=v(R,1,`value svelte-13kv637`,null,z,{slow:x(l).cookInfo.lastCookTime>100}),D(se,n),ce=v(V,1,`value svelte-13kv637`,null,ce,{slow:x(l).cookInfo.averageCookTime>100}),D(le,r),D(ue,i),D(pe,(x(l),F(()=>x(l).cookInfo.cookCount))),D(W,a),D(_e,o),Y=v(Se,1,`value svelte-13kv637`,null,Y,{active:x(l).bypass}),D(Ce,(x(l),F(()=>x(l).bypass?`Yes`:`No`))),Ee=v(Te,1,`value svelte-13kv637`,null,Ee,{active:x(l).cook}),D(X,(x(l),F(()=>x(l).cook?`Yes`:`No`))),ke=v(Oe,1,`value svelte-13kv637`,null,ke,{active:x(l).isTimeDependent}),D(Ae,(x(l),F(()=>x(l).isTimeDependent?`Yes`:`No`))),Ne=v(Me,1,`value svelte-13kv637`,null,Ne,{warning:x(l).isDirty}),D(Pe,(x(l),F(()=>x(l).isDirty?`Yes`:`No`))),D(Le,(x(l),F(()=>x(l).variadic?`Yes`:`No`))),D(He,`${c??``} / ${u??``} connected`),D(Q,`${d??``} / ${p??``} connected`),D(qe,m),Xe=v(Ye,1,`value svelte-13kv637`,null,Xe,{active:h}),D(Ze,g)},[()=>(x(l),F(()=>y(x(l)))),()=>(x(l),F(()=>x(l).path())),()=>(x(l),F(()=>h(x(l).cookInfo.lastCookTime))),()=>(x(l),F(()=>h(x(l).cookInfo.averageCookTime))),()=>(x(l),F(()=>h(x(l).cookInfo.totalCookTime))),()=>(x(l),F(()=>_(x(l).cookInfo.lastCookTimestamp))),()=>(x(l),F(()=>g(x(l).cookInfo.peakMemory))),()=>(x(l),F(()=>C(x(l)))),()=>(x(l),F(()=>b(x(l)))),()=>(x(l),F(()=>w(x(l)))),()=>(x(l),F(()=>S(x(l)))),()=>(x(l),F(()=>T(x(l)))),()=>te(x(l))>0,()=>(x(l),F(()=>te(x(l))))]),k(`click`,oe,O),E(e,t)},R=e=>{var t=mT();E(e,t)};Z(oe,e=>{x(l)?e(I):e(R,-1)}),o(ae),E(e,ae),Ee(),a()}p([`click`]);var _T=class{constructor(e,t=e.start){this.range=e,this._playing=!1,this.anchorMs=0,this.anchorFrame=0,this._dropped=0,this._frame=t}get frame(){return this._frame}get playing(){return this._playing}get dropped(){return this._dropped}setRange(e,t=0){this.range={...this.range,...e},this.range.end<this.range.start&&(this.range.end=this.range.start),this.setFrame(this._frame,t)}setFrame(e,t=0){return this._frame=Math.min(this.range.end,Math.max(this.range.start,Math.round(e))),this.anchorMs=t,this.anchorFrame=this._frame,this._frame}play(e){this._playing||(this._frame>=this.range.end&&!this.range.loop&&(this._frame=this.range.start),this._playing=!0,this._dropped=0,this.anchorMs=e,this.anchorFrame=this._frame)}pause(){this._playing=!1}toggle(e){this._playing?this.pause():this.play(e)}step(e,t=0){return this.pause(),this.setFrame(this._frame+e,t)}toStart(e=0){return this.setFrame(this.range.start,e)}toEnd(e=0){return this.setFrame(this.range.end,e)}advance(e,t=!1){if(!this._playing)return null;let n=Math.max(0,e-this.anchorMs)/1e3,r=Math.floor(this.anchorFrame+n*this.range.fps);if(r===this._frame)return null;if(r>this.range.end){if(!this.range.loop)return this._playing=!1,this._frame===this.range.end?null:(this._frame=this.range.end,this._frame);let t=this.range.end-this.range.start+1;r=this.range.start+(r-this.range.start)%t,this.anchorMs=e,this.anchorFrame=r}return t?(this._dropped+=1,null):(this._frame=r,r)}};function vT(e,t){if(!e)return null;let n=e[t];return typeof n==`function`?n:null}function yT(e){if(!e||typeof e!=`object`)return null;let t=e,n=t.frame??t.f??t.time??t.t,r=t.value??t.v??t.val;if(typeof n!=`number`||!Number.isFinite(n))return null;let i=typeof t.interpolation==`string`?t.interpolation:void 0;return{frame:n,value:typeof r==`number`?r:Number(r)||0,interpolation:i}}function bT(e){let t=vT(e,`hasChannel`);if(t&&!t())return[];let n=vT(e,`keys`);if(!n)return[];let r;try{r=n()}catch{return[]}return Array.isArray(r)?r.map(yT).filter(e=>e!==null).sort((e,t)=>e.frame-t.frame):[]}function xT(e){let t=new Set;for(let n of Object.keys(e.props??{}))t.add(n);for(let n of e.parameters??[])n?.name&&t.add(n.name);return[...t]}function ST(e){let t=[];for(let n of e?.nodes??[])if(typeof n?.parm==`function`)for(let e of xT(n)){let r;try{r=n.parm(e)}catch{continue}let i=bT(r);if(i.length===0)continue;let a=n.id;try{a=n.path?.()??n.id}catch{}t.push({nodeId:n.id,nodePath:a,param:e,keys:i})}return t}function CT(e,t,n){let r=(e?.nodes??[]).find(e=>e.id===t);if(!r||typeof r.parm!=`function`)return null;try{return r.parm(n)}catch{return null}}function wT(e,t,n,r,i){if(r===i)return!0;let a=CT(e,t,n);if(!a)return!1;let o=vT(a,`moveKey`);if(o)try{return o(r,i),!0}catch{return!1}let s=vT(a,`setKey`),c=vT(a,`deleteKey`);if(!s||!c)return!1;let l=bT(a).find(e=>e.frame===r);if(!l)return!1;try{return s(i,l.value,l.interpolation),c(r),!0}catch{return!1}}function TT(e){let t=ET(e);return e.width/t}function ET(e){return Math.max(1,e.end-e.start)}function DT(e,t){return(e-t.start)*TT(t)}function OT(e,t){return t.start+e/TT(t)}function kT(e,t){return Math.min(t.end,Math.max(t.start,e))}function AT(e,t){return kT(Math.round(OT(e,t)),t)}var jT=[1,2,5,10,25,50,100,250,500,1e3,2500,5e3,1e4];function MT(e,t=56){let n=TT(e);for(let e of jT)if(e*n>=t)return e;return jT[jT.length-1]}function NT(e,t=56){let n=MT(e,t),r=Math.ceil(e.start/n)*n,i=[];for(let t=r;t<=e.end;t+=n)i.push(t);return i.length===0&&i.push(e.start,e.end),i}function PT(e,t,n,r=6){let i=null,a=1/0;for(let o of t){let t=Math.abs(DT(o,n)-e);t<=r&&t<a&&(i=o,a=t)}return i}var FT=u(`<span class="note svelte-8qazfw" title="Frames skipped because a cook was still running"> </span>`),IT=u(`<span class="note warn svelte-8qazfw">Channel API cannot move keys yet</span>`),LT=u(`<span class="note svelte-8qazfw"> </span>`),RT=u(`<div class="tick svelte-8qazfw"><span class="tick-label svelte-8qazfw"> </span></div>`),zT=u(`<div class="empty svelte-8qazfw">No keyed parameters. Key a parameter to see its channel here.</div>`),BT=u(`<div></div>`),VT=u(`<div class="track-row svelte-8qazfw"><div class="gutter label svelte-8qazfw"><span class="node-name svelte-8qazfw"> </span> <span class="param-name svelte-8qazfw"> </span></div> <div class="track svelte-8qazfw" role="group"><div class="track-playhead svelte-8qazfw"></div> <!></div></div>`),HT=u(`<span class="selected-key svelte-8qazfw"> </span>`),UT=u(`<span class="hint"> </span>`),WT=u(`<div class="timeline-panel svelte-8qazfw" data-panel-type="timeline"><div class="transport svelte-8qazfw"><button class="tbtn svelte-8qazfw" title="Jump to start" aria-label="Jump to start">⏮</button> <button class="tbtn svelte-8qazfw" title="Step back" aria-label="Step back">◀</button> <button> </button> <button class="tbtn svelte-8qazfw" title="Step forward" aria-label="Step forward">▶</button> <button class="tbtn svelte-8qazfw" title="Jump to end" aria-label="Jump to end">⏭</button> <label class="field svelte-8qazfw" title="Current frame"><span class="svelte-8qazfw">Frame</span> <input type="number" aria-label="Current frame" class="svelte-8qazfw"/></label> <label class="field svelte-8qazfw" title="In point"><span class="svelte-8qazfw">In</span> <input type="number" aria-label="In point" class="svelte-8qazfw"/></label> <label class="field svelte-8qazfw" title="Out point"><span class="svelte-8qazfw">Out</span> <input type="number" aria-label="Out point" class="svelte-8qazfw"/></label> <label class="field svelte-8qazfw" title="Frames per second"><span class="svelte-8qazfw">FPS</span> <input type="number" aria-label="Frames per second" class="svelte-8qazfw"/></label> <label class="toggle svelte-8qazfw" title="Loop playback"><input type="checkbox"/> <span>Loop</span></label> <div class="spacer svelte-8qazfw"></div> <!> <!> <!></div> <div class="ruler-row svelte-8qazfw"><div class="gutter svelte-8qazfw"></div> <div class="ruler svelte-8qazfw" role="slider" tabindex="0" aria-label="Playhead"><!> <div class="playhead svelte-8qazfw"><span class="playhead-label svelte-8qazfw"> </span></div></div></div> <div class="sheet svelte-8qazfw"><!></div> <div class="status svelte-8qazfw"><!></div></div>`);function GT(e,t){ee(t,!1);let n=()=>we(ga,`$sharedContextStore`,i),r=()=>we(px,`$timelineFocus`,i),[i,s]=ne(),l=Y(),u=Y(),d=Y(),p=V(t,`panelId`,8),m=V(t,`panelParams`,8),h=V(t,`panelApi`,8,void 0),g=V(t,`containerApi`,8,void 0),_=V(t,`graph`,12,void 0);p(),m(),g();let y=Y(Gb.fps()),b=Y(1),S=Y(250),C=Y(!0),w=Y(Gb.frame()),T=Y(String(x(w))),k=new _T({start:x(b),end:x(S),fps:x(y),loop:x(C)},x(w)),j=Y(!1),N=Y(0),ie=Y(600),ae=Y([]),oe=Y(null),I=null,z=Y(!1),se=!1,B=null;async function ce(e){if(qb(e),Gb.markTimeDependentDirty(),se){B=e;return}se=!0;try{await _()?.execute()}catch(e){console.warn(`[Timeline] cook failed:`,e)}finally{se=!1;let t=B;B=null,t!==null&&t!==e&&ce(t)}}function le(e){L(w,e),L(T,String(e)),ce(e)}let H=null;function U(e){let t=k.advance(e,se);L(N,k.dropped),L(j,k.playing),t!==null&&le(t),H=k.playing?requestAnimationFrame(U):null}function de(){k.toggle(performance.now()),L(j,k.playing),x(j)&&H===null&&(H=requestAnimationFrame(U))}function pe(){k.pause(),L(j,!1)}function W(e){pe(),le(k.step(e,performance.now()))}function _e(){pe(),le(k.toStart(performance.now()))}function ve(){pe(),le(k.toEnd(performance.now()))}function be(){let e=Number.parseFloat(x(T));if(!Number.isFinite(e)){L(T,String(x(w)));return}pe(),le(k.setFrame(e,performance.now()))}function xe(){x(S)<x(b)&&L(S,x(b)),x(y)<=0&&L(y,1),Gb.setFps(x(y)),k.setRange({start:x(b),end:x(S),fps:x(y),loop:x(C)},performance.now()),(x(w)<x(b)||x(w)>x(S))&&le(k.setFrame(x(w),performance.now()))}let Se=Y();function Te(e,t){let n=t.getBoundingClientRect();return AT(e.clientX-n.left,x(l))}function De(e){x(Se)&&(pe(),e.currentTarget.setPointerCapture(e.pointerId),Oe(e))}function Oe(e){if(!x(Se))return;let t=k.setFrame(Te(e,x(Se)),performance.now());t!==x(w)&&le(t)}function ke(e){e.buttons!==0&&Oe(e)}function Ae(e){let t=e.currentTarget;t.hasPointerCapture?.(e.pointerId)&&t.releasePointerCapture(e.pointerId)}let je=null;function Me(){L(ae,ST(_())),x(oe)&&!x(ae).some(e=>e.nodeId===x(oe).nodeId&&e.param===x(oe).param&&e.keys.some(e=>e.frame===x(oe).frame))&&L(oe,null)}function Ne(e,t){Me();let n=x(ae).find(n=>n.nodeId===e&&n.param===t);if(!n?.keys.length){L(oe,null),L(Pe,`${e}.${t} has no keys yet — alt-click the parameter to set one.`);return}L(Pe,null);let r=n.keys.reduce((e,t)=>Math.abs(t.frame-x(w))<Math.abs(e.frame-x(w))?t:e);L(oe,{nodeId:e,param:t,frame:r.frame,value:r.value})}let Pe=Y(null);function Fe(e){return e.keys.map(e=>e.frame)}function Ie(e,t){return DT(I&&I.nodeId===e.nodeId&&I.param===e.param&&I.from===t?I.to:t,x(l))}function Le(e,t){let n=e.currentTarget,r=n.getBoundingClientRect(),i=PT(e.clientX-r.left,Fe(t),x(l));if(i===null){L(oe,null);return}let a=t.keys.find(e=>e.frame===i);L(oe,{nodeId:t.nodeId,param:t.param,frame:i,value:a?.value??0}),I={nodeId:t.nodeId,param:t.param,from:i,to:i},n.setPointerCapture(e.pointerId)}function Re(e){if(!I||e.buttons===0)return;let t=e.currentTarget.getBoundingClientRect(),n=AT(e.clientX-t.left,x(l));n!==I.to&&(I={...I,to:n})}function ze(e){let t=e.currentTarget;if(t.hasPointerCapture?.(e.pointerId)&&t.releasePointerCapture(e.pointerId),!I)return;let n=I;I=null,n.to!==n.from&&(wT(_(),n.nodeId,n.param,n.from,n.to)?(L(oe,x(oe)?{...x(oe),frame:n.to}:null),Me(),ce(x(w))):(L(z,!0),setTimeout(()=>{L(z,!1)},4e3)))}ye(()=>{L(y,Gb.fps()),L(w,Gb.frame()),L(T,String(x(w))),k.setFrame(x(w),performance.now()),Me(),je=setInterval(Me,1e3)}),me(()=>{H!==null&&cancelAnimationFrame(H),je!==null&&clearInterval(je)}),J(()=>n(),()=>{n()&&_(n().graph)}),J(()=>(x(b),x(S),x(ie)),()=>{L(l,{start:x(b),end:x(S),width:Math.max(1,x(ie))})}),J(()=>x(l),()=>{L(u,NT(x(l)))}),J(()=>(x(w),x(l)),()=>{L(d,DT(x(w),x(l)))}),J(()=>A(_()),()=>{_(),Me()}),J(()=>r(),()=>{r()&&Ne(r().nodeId,r().param)}),J(()=>(A(h()),x(j),x(w)),()=>{h()?.setTitle&&h().setTitle(x(j)?`Timeline · ${x(w)}`:`Timeline`)}),he(),ue();var Be=WT(),Ve=M(Be),He=M(Ve),Ue=P(He,2),We=P(Ue,2);let Q;var Ge=q(We,!0),Ke=P(We,2),qe=P(Ke,2),Je=P(qe,2),Ye=P(M(Je),2);re(Ye),o(Je);var Xe=P(Je,2),Ze=P(M(Xe),2);re(Ze),o(Xe);var $=P(Xe,2),Qe=P(M($),2);re(Qe),o($);var $e=P($,2),et=P(M($e),2);re(et),o($e);var tt=P($e,2),nt=M(tt);re(nt),c(2),o(tt);var rt=P(tt,4),it=e=>{var t=FT(),n=q(t);K(()=>D(n,`${x(N)??``} dropped`)),E(e,t)};Z(rt,e=>{x(j)&&x(N)>0&&e(it)});var at=P(rt,2),ot=e=>{var t=IT();E(e,t)};Z(at,e=>{x(z)&&e(ot)});var st=P(at,2),ct=e=>{var t=LT(),n=q(t,!0);K(()=>D(n,x(Pe))),E(e,t)};Z(st,e=>{x(Pe)&&e(ct)}),o(Ve);var lt=P(Ve,2),ut=M(lt);a(ut,`width: 170px`);var dt=P(ut,2),ft=M(dt);f(ft,1,()=>x(u),e=>e,(e,t)=>{var n=RT(),r=M(n),i=q(r,!0);o(n),K(e=>{a(n,`left: ${e??``}px`),D(i,x(t))},[()=>(A(DT),x(t),x(l),F(()=>DT(x(t),x(l))))]),E(e,n)});var pt=P(ft,2),mt=M(pt),ht=q(mt,!0);o(pt),o(dt),ge(dt,e=>L(Se,e),()=>x(Se)),o(lt);var gt=P(lt,2),_t=M(gt),vt=e=>{var t=zT();E(e,t)},yt=e=>{var t=te(),n=G(t);f(n,1,()=>x(ae),e=>e.nodeId+`/`+e.param,(e,t)=>{var n=VT(),r=M(n);a(r,`width: 170px`);var i=M(r),s=q(i,!0),c=P(i,2),l=q(c,!0);o(r);var u=P(r,2),p=M(u),m=P(p,2);f(m,1,()=>(x(t),F(()=>x(t).keys)),e=>e.frame,(e,n)=>{var r=BT();let i;K(e=>{i=v(r,1,`key svelte-8qazfw`,null,i,{selected:x(oe)&&x(oe).nodeId===x(t).nodeId&&x(oe).param===x(t).param&&x(oe).frame===x(n).frame}),a(r,`left: ${e??``}px`),X(r,`title`,`frame ${x(n),F(()=>x(n).frame)??``} · ${x(n),F(()=>x(n).value)??``}`)},[()=>(x(t),x(n),F(()=>Ie(x(t),x(n).frame)))]),E(e,r)}),o(u),o(n),K(()=>{X(r,`title`,`${x(t),F(()=>x(t).nodePath)??``}/${x(t),F(()=>x(t).param)??``}`),D(s,(x(t),F(()=>x(t).nodeId))),D(l,(x(t),F(()=>x(t).param))),X(u,`aria-label`,`${x(t),F(()=>x(t).nodeId)??``} ${x(t),F(()=>x(t).param)??``} channel`),a(p,`left: ${x(d)??``}px`)}),O(`pointerdown`,u,e=>Le(e,x(t))),O(`pointermove`,u,Re),O(`pointerup`,u,ze),E(e,n)}),E(e,t)};Z(_t,e=>{x(ae),F(()=>x(ae).length===0)?e(vt):e(yt,-1)}),o(gt);var bt=P(gt,2),xt=M(bt),St=e=>{var t=HT(),n=q(t);K(()=>D(n,`${x(oe),F(()=>x(oe).nodeId)??``}/${x(oe),F(()=>x(oe).param)??``} — frame ${x(oe),F(()=>x(oe).frame)??``}, value ${x(oe),F(()=>x(oe).value)??``}`)),E(e,t)},Ct=e=>{var t=UT(),n=q(t);K(()=>D(n,`${x(ae),F(()=>x(ae).length)??``} channel${x(ae),F(()=>x(ae).length===1?``:`s`)??``} · drag a key to move it in time`)),E(e,t)};Z(xt,e=>{x(oe)?e(St):e(Ct,-1)}),o(bt),o(Be),K(()=>{Q=v(We,1,`tbtn play svelte-8qazfw`,null,Q,{active:x(j)}),X(We,`title`,x(j)?`Pause`:`Play`),X(We,`aria-label`,x(j)?`Pause`:`Play`),D(Ge,x(j)?`⏸`:`▶`),X(dt,`aria-valuemin`,x(b)),X(dt,`aria-valuemax`,x(S)),X(dt,`aria-valuenow`,x(w)),a(pt,`left: ${x(d)??``}px`),D(ht,x(w))}),O(`click`,He,_e),O(`click`,Ue,()=>W(-1)),O(`click`,We,de),O(`click`,Ke,()=>W(1)),O(`click`,qe,ve),Ce(Ye,()=>x(T),e=>L(T,e)),O(`change`,Ye,be),O(`keydown`,Ye,e=>{e.key===`Enter`&&be()}),Ce(Ze,()=>x(b),e=>L(b,e)),O(`change`,Ze,xe),Ce(Qe,()=>x(S),e=>L(S,e)),O(`change`,Qe,xe),Ce(et,()=>x(y),e=>L(y,e)),O(`change`,et,xe),R(nt,()=>x(C),e=>L(C,e)),O(`change`,nt,xe),fe(dt,`clientWidth`,e=>L(ie,e)),O(`pointerdown`,dt,De),O(`pointermove`,dt,ke),O(`pointerup`,dt,Ae),O(`keydown`,dt,e=>{e.key===`ArrowLeft`&&(e.preventDefault(),W(-1)),e.key===`ArrowRight`&&(e.preventDefault(),W(1))}),E(e,Be),Ee(),s()}var KT=u(`<div class="panel-error svelte-1tj4xha" role="alert"> </div>`),qT=u(`<div class="project-panel svelte-1tj4xha"></div>`);function JT(e,t){ee(t,!1);let n=V(t,`panelParams`,8),r=V(t,`panelApi`,8),i=V(t,`loader`,8,iy),a=Y(),o=Y(``);ye(()=>{let e=!1,t,s=new AbortController,c=n().projectPanelName;if(!c){L(o,`Project panel name is missing`);return}return i()(c).then(async i=>{if(e)return;let o=await i.mount(x(a),cy({context:ba,close:()=>r().close(),sourceNodeId:n().sourceNodeId,signal:s.signal}));e?o?.():t=o}).catch(t=>{e||L(o,t instanceof Error?t.message:String(t))}),()=>{e=!0,s.abort(),t?.()}}),ue();var s=te(),c=G(s),l=e=>{var t=KT(),n=q(t,!0);K(()=>D(n,x(o))),E(e,t)},u=e=>{var t=qT();ge(t,e=>L(a,e),()=>x(a)),E(e,t)};Z(c,e=>{x(o)?e(l):e(u,-1)}),E(e,s),Ee()}var YT=ie(()=>cl),XT=u(`<button class="add-panel-option svelte-1vs60xl"><!> <span class="panel-label svelte-1vs60xl"> </span></button>`),ZT=u(`<div class="add-panel-menu svelte-1vs60xl"></div>`),QT=u(`<div class="dockview-container cascade-theme svelte-1vs60xl"></div> <!>`,1);function $T(t,n){ee(n,!1);let r=()=>we(rl,`$panelTypes`,i),[i,s]=ne(),c=Y(),l=xe(),u=Y(!1),d={x:0,y:0},p=Y(),m=Y(``),g=``,_=V(n,`graph`,8,void 0),v=V(n,`selectedNode`,8,null),y=V(n,`selectedAnnotation`,8,null),b=V(n,`activeTool`,8,`select`),S=V(n,`activeLibrary`,8,null),C=V(n,`documentName`,8,`Untitled`),w=V(n,`presentationMode`,8,!1),T=V(n,`onRecordHistory`,8,void 0),te=Y(),k=null;function j(e){let t=document.querySelector(`[data-panel-type="graph"]`);t&&t.dispatchEvent(new CustomEvent(`addNode`,{detail:e}))}function re(){let e=document.querySelector(`[data-panel-type="graph"]`);e&&e.dispatchEvent(new CustomEvent(`centerOnNodes`))}function N(){let e=document.querySelector(`[data-panel-type="graph"]`);e&&e.dispatchEvent(new CustomEvent(`selectAll`))}function ie(){let e=document.querySelector(`[data-panel-type="graph"]`);e&&e.dispatchEvent(new CustomEvent(`deselectAll`))}function ae(){let e=document.querySelector(`[data-panel-type="graph"]`);e&&e.dispatchEvent(new CustomEvent(`deleteSelected`))}function oe(e,t){YT().openCodeEditor(e,t)}function R(){YT().resetLayout()}function z(e){YT().focusPanel(e)}async function B(e,t){g=e,d=t,L(u,!0),await le()}async function le(){if(L(m,`left: ${d.x}px; top: ${d.y}px; visibility: hidden`),await e(),!x(p))return;let{width:t,height:n}=x(p).getBoundingClientRect(),r=K_(d,{width:t,height:n},{width:window.innerWidth,height:window.innerHeight});L(m,`left: ${r.x}px; top: ${r.y}px`)}function H(e){YT().addPanelToGroup(e,g),L(u,!1)}function U(){L(u,!1)}ye(async()=>{xa(`graph`,dv,`Graph`),xa(`inspector`,Ux,`Parameters`),xa(`definition`,aT,`Definition`),xa(`viewer`,dS,`Viewer`),xa(`log`,_S,`Log`),xa(`agent`,JS,`Agent`),Sa(`code`,()=>od(()=>import(`./CodePanel-DPNEYfcR.js`),__vite__mapDeps([0,1,2])),`Code`),xa(`info`,gT,`Node Info`),xa(`timeline`,GT,`Timeline`);try{let e=await ry();il(e);for(let t of e){xa(`project:${t.name}`,JT,t.title);for(let e of t.rendererTypes??[])my(e,t.name)}}catch(e){console.warn(`Failed to discover project panels:`,e),il([])}YT(YT().onAddPanelClick=B),YT().initialize(x(te)),k=setInterval(()=>{YT().saveLayout()},3e4)}),me(()=>{k&&clearInterval(k),YT(YT().onAddPanelClick=null),YT().dispose()}),J(()=>(A(_()),A(v()),A(y()),A(b()),A(S()),A(C()),A(w()),A(T()),YT()),()=>{L(c,{graph:_(),selectedNode:v(),selectedAnnotation:y(),activeTool:b(),activeLibrary:S(),documentName:C(),presentationMode:w(),onRecordHistory:T(),onNodeSelect:e=>{l(`nodeSelect`,{node:e})},onAnnotationSelect:e=>{l(`annotationSelect`,{annotationId:e})},onToolChange:e=>{l(`toolChange`,e)},onLibraryToggle:e=>{l(`libraryToggle`,e)},onAction:e=>{l(`action`,e)},onNameChange:e=>{l(`nameChange`,e)},onOpenNodePanel:e=>{l(`openNodePanel`,e)},onPanelAction:(e,t)=>{e.startsWith(`panel:`)?YT().openProjectPanel(e.slice(6),t):l(`action`,{action:e,nodeId:t})}})}),J(()=>x(c),()=>{ya(x(c))}),he();var de={addNode:j,centerOnNodes:re,selectAll:N,deselectAll:ie,deleteSelected:ae,openCodeEditor:oe,resetLayout:R,focusPanel:z};ue();var fe=QT();O(`click`,ce,U);var pe=G(fe);ge(pe,e=>L(te,e),()=>x(te));var W=P(pe,2),_e=e=>{var t=ZT();f(t,5,r,h,(e,t)=>{var n=XT(),r=M(n);Vc(r,{get icon(){return x(t),F(()=>x(t).icon)},size:14,class:`panel-icon`});var i=P(r,2),a=q(i,!0);o(n),K(()=>D(a,(x(t),F(()=>x(t).label)))),O(`click`,n,()=>H(x(t).type)),E(e,n)}),o(t),ge(t,e=>L(p,e),()=>x(p)),K(()=>a(t,x(m))),O(`click`,t,I(function(e){be.call(this,n,e)})),E(e,t)};Z(W,e=>{x(u)&&e(_e)}),E(t,fe),se(n,`addNode`,j),se(n,`centerOnNodes`,re),se(n,`selectAll`,N),se(n,`deselectAll`,ie),se(n,`deleteSelected`,ae),se(n,`openCodeEditor`,oe),se(n,`resetLayout`,R),se(n,`focusPanel`,z);var ve=Ee(de);return s(),ve}var eE=u(`<div class="separator svelte-1tlamc9"></div>`),tE=u(`<span class="item-shortcut svelte-1tlamc9"> </span>`),nE=u(`<button class="dropdown-item svelte-1tlamc9"><span class="item-label svelte-1tlamc9"> </span> <!></button>`),rE=u(`<div class="dropdown svelte-1tlamc9"></div>`),iE=u(`<button><span class="item-label svelte-1tlamc9"> </span> <!></button>`),aE=u(`<input class="name-input svelte-1tlamc9" type="text"/>`),oE=u(`<button class="document-name svelte-1tlamc9" title="Click to rename"> </button>`),sE=u(`<div class="menu-bar svelte-1tlamc9"><div class="menu-left svelte-1tlamc9"><div><button class="menu-button svelte-1tlamc9">File</button> <!></div> <div><button class="menu-button svelte-1tlamc9">Edit</button> <!></div> <div class="menu-item svelte-1tlamc9"><button class="menu-button svelte-1tlamc9">Create</button></div> <div><button class="menu-button svelte-1tlamc9">View</button> <!></div></div> <div class="menu-center svelte-1tlamc9"><!></div> <div class="menu-right svelte-1tlamc9"></div></div>`);function cE(e,t){ee(t,!1);let n=Y(),r=Y(),i=V(t,`documentName`,8,`Untitled`),a=V(t,`canUndo`,8,!1),s=V(t,`canRedo`,8,!1),l=xe(),u=Y(null),d=Y(!1),p=Y(),m=Y(i()),g=Y();function _(e){x(u)===e?L(u,null):L(u,e)}function y(e){l(`action`,e),L(u,null)}function b(){if(x(g)){let e=x(g).getBoundingClientRect();l(`openNodePanel`,{x:e.left,y:e.bottom+4})}else l(`action`,`addNode`);L(u,null)}function S(e){e.target.closest(`.menu-bar`)||L(u,null)}function C(){L(d,!0),L(m,i()),setTimeout(()=>{x(p)?.focus(),x(p)?.select()},0)}function w(){L(d,!1),x(m).trim()&&x(m)!==i()&&l(`nameChange`,x(m).trim())}function T(e){e.key===`Enter`?w():e.key===`Escape`&&(L(d,!1),L(m,i()))}let k=[{label:`Clean Up Layout`,action:`cleanUpLayout`,shortcut:`⇧L`},{label:`Center on Nodes`,action:`centerOnNodes`,shortcut:`H`},{label:`Reset Layout`,action:`resetLayout`,shortcut:`⇧⌘P`},{type:`separator`},{label:`Maximize Tab`,action:`maximizeTab`,shortcut:`⌘B`},{label:`Presentation Mode`,action:`presentationMode`,shortcut:`⌘.`},{type:`separator`},{label:`Focus Graph`,action:`focusGraph`,shortcut:`⌘1`},{label:`Focus Viewer`,action:`focusViewer`,shortcut:`⌘2`},{label:`Focus Parameters`,action:`focusInspector`,shortcut:`⌘3`},{label:`Focus Definition`,action:`focusDefinition`,shortcut:`⌘6`},{label:`Focus Log`,action:`focusLog`,shortcut:`⌘4`},{label:`Focus Agent`,action:`focusAgent`,shortcut:`⌘5`},{label:`Focus Timeline`,action:`focusTimeline`,shortcut:`⌘7`}];J(()=>A(i()),()=>{L(m,i())}),J(()=>{},()=>{L(n,[{label:`New Project`,action:`new`,shortcut:`⌥N`},{label:`Open...`,action:`open`,shortcut:`⌥O`},{type:`separator`},{label:`Save`,action:`save`,shortcut:`⌥S`},{label:`Save As...`,action:`saveAs`,shortcut:`⇧⌥S`},{label:`Version History...`,action:`versionHistory`},{type:`separator`},{label:`Export...`,action:`export`,shortcut:`⌘E`},{type:`separator`},{label:`Project Settings...`,action:`projectSettings`,shortcut:`⇧⌘,`},{label:`Settings...`,action:`settings`,shortcut:`⌘,`},{type:`separator`},{label:`About Cascade`,action:`about`}])}),J(()=>(A(a()),A(s())),()=>{L(r,[{label:`Undo`,action:`undo`,shortcut:`⌘Z`,disabled:!a()},{label:`Redo`,action:`redo`,shortcut:`⇧⌘Z`,disabled:!s()},{type:`separator`},{label:`Select All`,action:`selectAll`,shortcut:`⌘A`},{label:`Deselect All`,action:`deselectAll`,shortcut:`⇧⌘A`},{type:`separator`},{label:`Delete Selected`,action:`delete`,shortcut:`⌫`}])}),he(),ue();var ne=sE();O(`click`,ce,S);var j=M(ne),N=M(j);let ie;var ae=M(N),oe=P(ae,2),I=e=>{var t=rE();f(t,5,()=>x(n),h,(e,t)=>{var n=te(),r=G(n),i=e=>{var t=eE();E(e,t)},a=e=>{var n=nE(),r=M(n),i=q(r,!0),a=P(r,2),s=e=>{var n=tE(),r=q(n,!0);K(()=>D(r,(x(t),F(()=>x(t).shortcut)))),E(e,n)};Z(a,e=>{x(t),F(()=>x(t).shortcut)&&e(s)}),o(n),K(()=>D(i,(x(t),F(()=>x(t).label)))),O(`click`,n,()=>x(t).action&&y(x(t).action)),E(e,n)};Z(r,e=>{x(t),F(()=>x(t).type===`separator`)?e(i):e(a,-1)}),E(e,n)}),o(t),E(e,t)};Z(oe,e=>{x(u)===`file`&&e(I)}),o(N);var R=P(N,2);let z;var se=M(R),B=P(se,2),le=e=>{var t=rE();f(t,5,()=>x(r),h,(e,t)=>{var n=te(),r=G(n),i=e=>{var t=eE();E(e,t)},a=e=>{var n=iE();let r;var i=M(n),a=q(i,!0),s=P(i,2),c=e=>{var n=tE(),r=q(n,!0);K(()=>D(r,(x(t),F(()=>x(t).shortcut)))),E(e,n)};Z(s,e=>{x(t),F(()=>x(t).shortcut)&&e(c)}),o(n),K(()=>{r=v(n,1,`dropdown-item svelte-1tlamc9`,null,r,{disabled:x(t).disabled}),n.disabled=(x(t),F(()=>x(t).disabled)),D(a,(x(t),F(()=>x(t).label)))}),O(`click`,n,()=>!x(t).disabled&&x(t).action&&y(x(t).action)),E(e,n)};Z(r,e=>{x(t),F(()=>x(t).type===`separator`)?e(i):e(a,-1)}),E(e,n)}),o(t),E(e,t)};Z(B,e=>{x(u)===`edit`&&e(le)}),o(R);var H=P(R,2),U=M(H);ge(U,e=>L(g,e),()=>x(g)),o(H);var de=P(H,2);let fe;var pe=M(de),me=P(pe,2),W=e=>{var t=rE();f(t,5,()=>k,h,(e,t)=>{var n=te(),r=G(n),i=e=>{var t=eE();E(e,t)},a=e=>{var n=nE(),r=M(n),i=q(r,!0),a=P(r,2),s=e=>{var n=tE(),r=q(n,!0);K(()=>D(r,(x(t),F(()=>x(t).shortcut)))),E(e,n)};Z(a,e=>{x(t),F(()=>x(t).shortcut)&&e(s)}),o(n),K(()=>D(i,(x(t),F(()=>x(t).label)))),O(`click`,n,()=>x(t).action&&y(x(t).action)),E(e,n)};Z(r,e=>{x(t),F(()=>x(t).type===`separator`)?e(i):e(a,-1)}),E(e,n)}),o(t),E(e,t)};Z(me,e=>{x(u)===`view`&&e(W)}),o(de),o(j);var _e=P(j,2),ve=M(_e),ye=e=>{var t=aE();re(t),ge(t,e=>L(p,e),()=>x(p)),Ce(t,()=>x(m),e=>L(m,e)),O(`blur`,t,w),O(`keydown`,t,T),E(e,t)},be=e=>{var t=oE(),n=q(t,!0);K(()=>D(n,i())),O(`click`,t,C),E(e,t)};Z(ve,e=>{x(d)?e(ye):e(be,-1)}),o(_e),c(2),o(ne),K(()=>{ie=v(N,1,`menu-item svelte-1tlamc9`,null,ie,{active:x(u)===`file`}),z=v(R,1,`menu-item svelte-1tlamc9`,null,z,{active:x(u)===`edit`}),fe=v(de,1,`menu-item svelte-1tlamc9`,null,fe,{active:x(u)===`view`})}),O(`click`,ae,()=>_(`file`)),O(`click`,se,()=>_(`edit`)),O(`click`,U,b),O(`click`,pe,()=>_(`view`)),E(e,ne),Ee()}var lE=`cascade-node-history`,uE=5;function dE(){try{let e=localStorage.getItem(lE);if(e)return JSON.parse(e)}catch(e){console.warn(`Failed to load node history:`,e)}return[]}function fE(e){try{localStorage.setItem(lE,JSON.stringify(e))}catch(e){console.warn(`Failed to save node history:`,e)}}function pE(){let{subscribe:e,set:t,update:n}=w(dE());return{subscribe:e,addToHistory(e){n(t=>{let n=[e,...t.filter(t=>t.type!==e.type)].slice(0,uE);return fE(n),n})},clear(){t([]),localStorage.removeItem(lE)}}}var mE=pE(),hE=u(`<button><span class="node-icon svelte-dm3w9n"><!></span> <span class="node-name svelte-dm3w9n"> </span> <span class="node-path svelte-dm3w9n"> </span></button>`),gE=u(`<div class="empty-state svelte-dm3w9n">No nodes found</div>`),_E=u(`<!> <!>`,1),vE=u(`<button><span class="label svelte-dm3w9n"> </span> <span class="arrow-icon svelte-dm3w9n"><!></span></button>`),yE=u(`<button class="node-item history-item svelte-dm3w9n"><span class="node-icon svelte-dm3w9n"><!></span> <span class="node-name svelte-dm3w9n"> </span> <span class="node-path svelte-dm3w9n"> </span></button>`),bE=u(`<div class="separator svelte-dm3w9n"></div> <div class="section-label svelte-dm3w9n">Recent</div> <!>`,1),xE=u(`<!> <div class="separator svelte-dm3w9n"></div> <button><span class="label svelte-dm3w9n">All</span> <span class="arrow-icon svelte-dm3w9n"><!></span></button> <div class="separator svelte-dm3w9n"></div> <button class="library-item svelte-dm3w9n"><span class="node-icon"><!></span> <span class="label svelte-dm3w9n"> </span></button> <!>`,1),SE=u(`<div class="menu-column submenu-column svelte-dm3w9n" role="group" aria-label="All nodes"></div>`),CE=u(`<div class="separator svelte-dm3w9n"></div>`),wE=u(`<button class="node-item svelte-dm3w9n"><span class="node-icon svelte-dm3w9n"><!></span> <span class="node-name svelte-dm3w9n"> </span></button>`),TE=u(`<button><span class="node-icon svelte-dm3w9n"><!></span> <span class="node-name svelte-dm3w9n"> </span></button>`),EE=u(`<div class="menu-column submenu-column nodes-submenu svelte-dm3w9n" role="group"></div>`),DE=u(`<div class="menu-column submenu-column svelte-dm3w9n" role="group"><!> <!> <!></div> <!>`,1),OE=u(`<div class="menu-column main-column svelte-dm3w9n" role="dialog" aria-label="Create node" tabindex="-1"><div class="search svelte-dm3w9n"><input type="text" placeholder="Type to search..." class="search-input svelte-dm3w9n"/></div> <!></div> <!>`,1);function kE(e,t){ee(t,!1);let n=()=>we(t_,`$projectNodeModules`,s),r=()=>we(e_,`$iconByModule`,s),i=()=>we(mE,`$nodeHistoryStore`,s),[s,c]=ne(),l=Y(),u=Y(),d=Y(),p=Y(),m=Y(),_=Y(),y=Y(),b=Y(),S=Y(),C=Y(),w=Y(),T=Y(),k=Y(),j=Y(),N=Y(!1),ie=Y(null);async function oe(){L(ie,x(ie)??(await od(async()=>{let{default:e}=await import(`./CustomNodeDialog-DeHCAvgb.js`);return{default:e}},__vite__mapDeps([3,1,4]))).default),L(N,!0)}let I=V(t,`libraryId`,8,null),R=V(t,`categoryId`,12,null),z=V(t,`centerPosition`,24,()=>({x:0,y:0})),se=V(t,`fixedPosition`,8,null),B=xe(),le=Y(),H=Y(``),U=Y(),de=Y(),fe=Y({x:0,y:0}),pe=Y(!1),me=Y(160),W=Y(180),_e=Y(-1),ve=Y(-1),be=Y(-1),Se=Y(`library`),Te=Y(void 0),De=Y(null),Oe=Y(0),ke=Y(0);function Ae(){if(se()){L(fe,{x:se().x,y:se().y}),L(pe,!0);return}if(!x(U)){(z().x!==0||z().y!==0)&&L(fe,{x:z().x,y:z().y});return}let e=document.querySelector(`[data-window-id="graph"]`);if(!e){L(fe,{x:z().x-80,y:z().y-200}),L(pe,!0);return}let t=e.getBoundingClientRect(),n=x(U).getBoundingClientRect(),r=n.width||160,i=n.height||400,a=z().x-t.left-r/2,o=z().y-t.top-i/2,s=t.width-r-10,c=t.height-i-10;a=Math.max(10,Math.min(s,a)),o=Math.max(10,Math.min(c,o)),L(fe,{x:t.left+a,y:t.top+o}),L(pe,!0)}ye(()=>{let e=()=>{(I()||R())&&Ae()};window.addEventListener(`resize`,e);let t=e=>{if(!x(N)&&(I()||R())){let t=e.target,n=document.querySelectorAll(`.menu-column`),r=!1;n.forEach(e=>{e.contains(t)&&(r=!0)}),document.querySelector(`.dialog-overlay`)?.contains(t)&&(r=!0),r||Le()}};return document.addEventListener(`mousedown`,t,!0),()=>{window.removeEventListener(`resize`,e),document.removeEventListener(`mousedown`,t,!0)}});function Me(e){let t=x(l).find(t=>t.id===e);if(!t)return[];let n=[];return t.categories.forEach(e=>{n.push(...e.nodes)}),n}function Ne(e){let t=e.categoryId||R(),n=e.type.startsWith(`annotation:`)?e.type:je(e.type);mE.addToHistory({name:e.name,icon:e.icon,description:e.description,type:e.type}),B(`addNode`,{type:n,libraryId:I(),categoryId:t})}function Pe(e,t){B(`selectCategory`,{libraryId:e,categoryId:t})}function Fe(e){let{name:t,modulePath:n,baseClass:r,template:i}=e.detail,a=(qg[i]||qg.node)(t);mE.addToHistory({name:t,icon:`Zap`,description:`Custom node based on ${r}`,type:n}),B(`addNode`,{type:n,libraryId:null,categoryId:null,customConfig:{name:t,modulePath:n,baseClass:r,code:a}}),L(N,!1),Le()}function Ie(e){e===`all`?(B(`selectLibrary`,{libraryId:null}),L(Se,`node`)):(B(`selectLibrary`,{libraryId:e}),L(Se,`node`))}function Le(){B(`close`)}function Re(e){return e.data}function ze(e){if(!(!I()&&!R())&&[`ArrowLeft`,`ArrowRight`,`ArrowUp`,`ArrowDown`,`Enter`,`Escape`].includes(e.key)){if(e.key===`Escape`){e.preventDefault(),e.stopPropagation(),Le();return}if(document.activeElement===x(le)&&e.key!==`Escape`){if(x(H)&&(e.key===`ArrowUp`||e.key===`ArrowDown`||e.key===`Enter`))e.preventDefault(),e.stopPropagation(),x(le).blur();else return}if(e.preventDefault(),e.stopPropagation(),e.key===`ArrowLeft`){if(x(H))return;x(Se)===`category`&&I()?R()?(L(Se,`category`),L(be,-1),R(null)):(L(Se,`library`),L(ve,-1)):x(Se)===`node`&&R()&&(L(Se,`category`),L(be,-1))}else if(e.key===`ArrowRight`){if(x(H))return;if(x(Se)===`library`&&I())(x(T).length>0||x(k).length>0)&&(L(Se,`category`),x(ve)===-1&&L(ve,0));else if(x(Se)===`category`&&!R()&&x(ve)>=0&&x(ve)<x(j).length){let e=x(j)[x(ve)];e.type===`category`&&`id`in e.data&&(I()&&`id`in e.data&&Pe(I(),e.data.id),L(Se,`node`),x(be)===-1&&L(be,0))}}else if(e.key===`ArrowUp`){if(x(H))L(Se,`node`),L(be,Math.max(0,x(be)-1));else if(x(Se)===`library`)L(_e,Math.max(0,x(_e)-1)),x(_e)>=0&&x(_e)<x(w).length&&Ie(x(w)[x(_e)].id);else if(x(Se)===`category`){if(R())L(be,Math.max(0,x(be)-1));else if(L(ve,Math.max(0,x(ve)-1)),x(ve)>=0&&x(ve)<x(j).length&&I()){let e=x(j)[x(ve)];e.type===`category`&&`id`in e.data&&Pe(I(),e.data.id)}}else x(Se)===`node`&&L(be,Math.max(0,x(be)-1))}else if(e.key===`ArrowDown`){if(x(H))L(Se,`node`),L(be,Math.min(x(C).length-1,x(be)+1));else if(x(Se)===`library`)L(_e,Math.min(x(w).length-1,x(_e)+1)),x(_e)>=0&&x(_e)<x(w).length&&Ie(x(w)[x(_e)].id);else if(x(Se)===`category`){if(R())L(be,Math.min(x(C).length-1,x(be)+1));else if(L(ve,Math.min(x(j).length-1,x(ve)+1)),x(ve)>=0&&x(ve)<x(j).length&&I()){let e=x(j)[x(ve)];e.type===`category`&&`id`in e.data&&Pe(I(),e.data.id)}}else x(Se)===`node`&&L(be,Math.min(x(C).length-1,x(be)+1))}else if(e.key===`Enter`){if(x(H))x(Se)===`node`&&x(be)>=0&&x(be)<x(C).length&&Ne(x(C)[x(be)]);else if(x(Se)===`node`&&R())x(be)>=0&&x(be)<x(C).length&&Ne(x(C)[x(be)]);else if(x(Se)===`category`&&!R()){if(x(ve)>=0&&x(ve)<x(j).length&&I()){let e=x(j)[x(ve)];e.type===`category`&&`id`in e.data?(Pe(I(),e.data.id),L(Se,`node`),L(be,0)):e.type===`computation`&&Ne(Re(e))}}else x(Se)===`library`&&x(_e)>=0&&x(_e)<x(w).length&&(Ie(x(w)[x(_e)].id),(x(T).length>0||x(k).length>0)&&(L(Se,`category`),L(ve,0)))}}}function Be(e){e.stopPropagation(),[`ArrowUp`,`ArrowDown`,`Enter`,`Escape`].includes(e.key)&&ze(e)}J(()=>(n(),r()),()=>{L(l,[...Wg,...n().length?[Gg(n(),r())]:[]])}),J(()=>(A(I()),A(R()),A(se())),()=>{(I()||R())&&(se()?(L(fe,{x:se().x,y:se().y}),L(pe,!0)):setTimeout(()=>{Ae(),setTimeout(()=>{Ae()},50)},0))}),J(()=>(A(I()),x(l)),()=>{L(u,I()&&I()!==`all`?x(l).find(e=>e.id===I()):null)}),J(()=>(x(u),A(R())),()=>{L(d,x(u)&&R()?x(u).categories.find(e=>e.id===R()):null)}),J(()=>(x(Te),x(l)),()=>{L(p,x(Te)&&x(Te)!==`all`?x(l).find(e=>e.id===x(Te)):null)}),J(()=>x(p),()=>{L(m,x(p)?x(p).categories.length===1:!1)}),J(()=>(x(p),x(m)),()=>{L(_,x(p)?x(m)?[]:x(p).categories.filter(e=>e.nodes.length>1):[])}),J(()=>(x(p),x(m)),()=>{L(y,x(p)?x(m)?x(p).categories[0].nodes:x(p).categories.filter(e=>e.nodes.length===1).map(e=>e.nodes[0]):[])}),J(()=>x(Te),()=>{x(Te)&&L(De,null)}),J(()=>(x(De),x(p)),()=>{L(b,x(De)&&x(p)&&x(p).categories.find(e=>e.id===x(De))?.nodes||[])}),J(()=>(x(Te),x(l)),()=>{L(S,x(Te)===null?x(l).flatMap(e=>e.categories.flatMap(e=>e.nodes)).sort((e,t)=>e.name.localeCompare(t.name)):[])}),J(()=>(x(Te),x(U)),()=>{x(Te)!==void 0&&x(U)&&L(me,x(U).getBoundingClientRect().width)}),J(()=>(x(De),x(de)),()=>{x(De)&&x(de)&&L(W,x(de).getBoundingClientRect().width)}),J(()=>(x(H),x(l),A(I()),A(R())),()=>{L(C,x(H)?x(l).flatMap(e=>e.categories.flatMap(e=>e.nodes)).filter(e=>e.name.toLowerCase().includes(x(H).toLowerCase())||e.description.toLowerCase().includes(x(H).toLowerCase())).sort((e,t)=>e.name.localeCompare(t.name)):I()===`all`||I()===null&&!R()?x(l).flatMap(e=>e.categories.flatMap(e=>e.nodes)).sort((e,t)=>e.name.localeCompare(t.name)):I()&&!R()?Me(I()).sort((e,t)=>e.name.localeCompare(t.name)):R()&&I()?(x(l).find(e=>e.id===I())?.categories.find(e=>e.id===R())?.nodes??[]).sort((e,t)=>e.name.localeCompare(t.name)):[])}),J(()=>x(l),()=>{L(w,x(l).filter(e=>e.categories.some(e=>e.nodes.length>0)).sort((e,t)=>e.label.localeCompare(t.label)))}),J(()=>x(u),()=>{L(T,x(u)?x(u).categories.filter(e=>e.nodes.length>1):[])}),J(()=>(x(u),A(R()),x(H)),()=>{L(k,x(u)&&!R()&&!x(H)?x(u).categories.filter(e=>e.nodes.length===1).map(e=>({...e.nodes[0],categoryId:e.id})):[])}),J(()=>(x(u),A(R()),x(H),x(T),x(k)),()=>{L(j,x(u)&&!R()&&!x(H)?[...x(T).map(e=>({type:`category`,data:e})),...x(k).map(e=>({type:`node`,data:e}))]:[])}),J(()=>(A(I()),A(R()),x(H),x(Se),x(C),x(be),x(_e),x(w),x(u),x(ve),x(T),x(j)),()=>{(I()||R())&&(x(H)?(L(Se,`node`),x(C).length>0?(x(be)<0||x(be)>=x(C).length)&&L(be,0):L(be,-1)):(x(_e)===-1&&(I()&&I()!==`all`?(L(_e,x(w).findIndex(e=>e.id===I())),x(_e)===-1&&L(_e,0)):L(_e,0),L(Se,`library`)),R()&&x(u)&&x(ve)===-1&&(L(ve,x(T).findIndex(e=>e.id===R())),x(ve)===-1&&L(ve,0),R()&&L(Se,`node`)),x(ve)===-1&&x(j).length>0&&x(Se)===`category`&&!R()?L(ve,0):x(Se)===`category`&&x(ve)>=x(j).length&&L(ve,Math.max(0,x(j).length-1)),x(be)===-1&&x(C).length>0&&x(Se)===`node`&&R()?L(be,0):x(Se)===`node`&&x(be)>=x(C).length&&R()&&L(be,Math.max(0,x(C).length-1))))}),J(()=>(A(I()),A(R())),()=>{!I()&&!R()&&(L(_e,-1),L(ve,-1),L(be,-1),L(Se,`library`))}),J(()=>(x(Se),x(_e),x(U)),()=>{x(Se)===`library`&&x(_e)>=0&&setTimeout(()=>{let e=(x(U)?.querySelector(`.main-column .column-content`))?.children[x(_e)+1];e&&e.scrollIntoView({block:`nearest`,behavior:`smooth`})},0)}),J(()=>(x(Se),x(ve),A(R()),x(U)),()=>{x(Se)===`category`&&x(ve)>=0&&!R()&&setTimeout(()=>{let e=(x(U)?.querySelector(`.main-column .column-content`))?.children[x(ve)];e&&e.scrollIntoView({block:`nearest`,behavior:`smooth`})},0)}),J(()=>(x(Se),x(be),x(U)),()=>{x(Se)===`node`&&x(be)>=0&&setTimeout(()=>{let e=document.querySelector(`.nodes-column .column-content`);if(e){let t=e.children[x(be)];t&&t.scrollIntoView({block:`nearest`,behavior:`smooth`})}else{let e=(x(U)?.querySelector(`.main-column .column-content`))?.children[x(be)];e&&e.scrollIntoView({block:`nearest`,behavior:`smooth`})}},0)}),J(()=>(A(I()),A(R()),x(le)),()=>{(I()||R())&&x(le)&&setTimeout(()=>{x(le)?.focus()},0)}),J(()=>(A(I()),A(R()),x(U),x(le)),()=>{(I()||R())&&x(U)&&setTimeout(()=>{document.activeElement!==x(le)&&x(U)?.focus()},50)}),he(),ue();var Ve=_E();O(`keydown`,ce,ze);var He=G(Ve),Ue=e=>{var t=OE(),n=G(t),r=M(n),s=M(r);re(s),ge(s,e=>L(le,e),()=>x(le)),o(r);var c=P(r,2),l=e=>{var t=_E(),n=G(t);f(n,1,()=>x(C),h,(e,t,n)=>{var r=hE();let i;var a=M(r);zc(M(a),{get name(){return x(t),F(()=>x(t).icon)},size:16}),o(a);var s=P(a,2),c=q(s,!0),l=P(s,2),u=q(l,!0);o(r),K(e=>{i=v(r,1,`node-item svelte-dm3w9n`,null,i,{"keyboard-selected":x(Se)===`node`&&x(be)===n}),X(r,`title`,(x(t),F(()=>x(t).description))),D(c,(x(t),F(()=>x(t).name))),D(u,e)},[()=>(A(Xg),x(t),F(()=>Xg(x(t).type)))]),O(`click`,r,()=>{L(be,n),Ne(x(t))}),O(`mouseenter`,r,()=>{L(be,n)}),E(e,r)});var r=P(n,2),i=e=>{var t=gE();E(e,t)};Z(r,e=>{x(C),F(()=>x(C).length===0)&&e(i)}),E(e,t)},u=e=>{var t=xE(),n=G(t);f(n,1,()=>x(w),h,(e,t,n)=>{var r=vE();let i;var a=M(r),s=q(a,!0),c=P(a,2);zc(M(c),{name:`ChevronRight`,size:12}),o(c),o(r),K(()=>{i=v(r,1,`library-item svelte-dm3w9n`,null,i,{active:x(Te)===x(t).id,"keyboard-selected":x(Se)===`library`&&x(_e)===n}),D(s,(x(t),F(()=>x(t).label)))}),O(`click`,r,()=>{L(_e,n),Ie(x(t).id)}),O(`mouseenter`,r,e=>{L(_e,n),L(Te,x(t).id),L(Oe,e.currentTarget.getBoundingClientRect().top)}),E(e,r)});var r=P(n,4);let a;var s=P(M(r),2);zc(M(s),{name:`ChevronRight`,size:12}),o(s),o(r);var c=P(r,4),l=M(c);zc(M(l),{get name(){return A(Kg),F(()=>Kg.icon)},size:16}),o(l);var u=P(l,2),d=q(u,!0);o(c);var p=P(c,2),m=e=>{var t=bE(),n=P(G(t),4);f(n,1,i,h,(e,t)=>{var n=yE(),r=M(n);zc(M(r),{get name(){return x(t),F(()=>x(t).icon)},size:16}),o(r);var i=P(r,2),a=q(i,!0),s=P(i,2),c=q(s,!0);o(n),K(e=>{X(n,`title`,(x(t),F(()=>x(t).description))),D(a,(x(t),F(()=>x(t).name))),D(c,e)},[()=>(A(Xg),x(t),F(()=>Xg(x(t).type)))]),O(`click`,n,()=>Ne(x(t))),E(e,n)}),E(e,t)};Z(p,e=>{i(),F(()=>i().length>0)&&e(m)}),K(()=>{a=v(r,1,`library-item svelte-dm3w9n`,null,a,{active:x(Te)===null,"keyboard-selected":x(Se)===`library`&&x(_e)===x(w).length}),X(c,`title`,(A(Kg),F(()=>Kg.description))),D(d,(A(Kg),F(()=>Kg.name)))}),O(`click`,r,()=>{L(_e,x(w).length),Ie(`all`)}),O(`mouseenter`,r,e=>{L(_e,x(w).length),L(Te,null),L(Oe,e.currentTarget.getBoundingClientRect().top)}),O(`click`,c,oe),E(e,t)};Z(c,e=>{x(H)?e(l):e(u,-1)}),o(n),ge(n,e=>L(U,e),()=>x(U));var d=P(n,2),m=e=>{var t=te(),n=G(t),r=e=>{var t=SE();f(t,5,()=>x(S),h,(e,t,n)=>{var r=hE();let i;var a=M(r);zc(M(a),{get name(){return x(t),F(()=>x(t).icon)},size:16}),o(a);var s=P(a,2),c=q(s,!0),l=P(s,2),u=q(l,!0);o(r),K(e=>{i=v(r,1,`node-item svelte-dm3w9n`,null,i,{"keyboard-selected":x(Se)===`node`&&x(be)===n}),X(r,`title`,(x(t),F(()=>x(t).description))),D(c,(x(t),F(()=>x(t).name))),D(u,e)},[()=>(A(Xg),x(t),F(()=>Xg(x(t).type)))]),O(`click`,r,()=>{L(be,n),Ne(x(t))}),O(`mouseenter`,r,()=>{L(be,n)}),E(e,r)}),o(t),K(e=>a(t,`left: ${x(fe),x(me),F(()=>x(fe).x+x(me))??``}px; top: ${x(Oe)??``}px; max-height: ${e??``}px;`),[()=>(x(Oe),F(()=>Math.max(200,window.innerHeight-x(Oe)-20)))]),O(`mouseenter`,t,()=>{}),O(`mouseleave`,t,ae(()=>{setTimeout(()=>{document.querySelector(`.menu-column:hover`)||L(Te,void 0)},50)})),E(e,t)},i=e=>{var t=DE(),n=G(t),r=M(n);f(r,1,()=>x(_),h,(e,t)=>{var n=vE();let r;var i=M(n),a=q(i,!0),s=P(i,2);zc(M(s),{name:`ChevronRight`,size:12}),o(s),o(n),K(()=>{r=v(n,1,`library-item svelte-dm3w9n`,null,r,{active:x(De)===x(t).id}),D(a,(x(t),F(()=>x(t).label)))}),O(`click`,n,()=>{}),O(`mouseenter`,n,e=>{L(De,x(t).id),L(ke,e.currentTarget.getBoundingClientRect().top)}),E(e,n)});var i=P(r,2),s=e=>{var t=CE();E(e,t)};Z(i,e=>{x(_),x(y),F(()=>x(_).length>0&&x(y).length>0)&&e(s)});var c=P(i,2);f(c,1,()=>x(y),h,(e,t)=>{var n=wE(),r=M(n);zc(M(r),{get name(){return x(t),F(()=>x(t).icon)},size:16}),o(r);var i=P(r,2),a=q(i,!0);o(n),K(()=>{X(n,`title`,(x(t),F(()=>x(t).description))),D(a,(x(t),F(()=>x(t).name)))}),O(`click`,n,()=>Ne(x(t))),O(`mouseenter`,n,()=>{L(De,null)}),E(e,n)}),o(n),ge(n,e=>L(de,e),()=>x(de));var l=P(n,2),u=e=>{var t=EE();f(t,5,()=>x(b),h,(e,t,n)=>{var r=TE();let i;var a=M(r);zc(M(a),{get name(){return x(t),F(()=>x(t).icon)},size:16}),o(a);var s=P(a,2),c=q(s,!0);o(r),K(()=>{i=v(r,1,`node-item svelte-dm3w9n`,null,i,{"keyboard-selected":x(Se)===`node`&&x(be)===n}),X(r,`title`,(x(t),F(()=>x(t).description))),D(c,(x(t),F(()=>x(t).name)))}),O(`click`,r,()=>{L(be,n),Ne(x(t))}),O(`mouseenter`,r,()=>{L(be,n)}),E(e,r)}),o(t),K(e=>{X(t,`aria-label`,`${x(De)} nodes`),a(t,`left: ${x(fe),x(me),x(W),F(()=>x(fe).x+x(me)+x(W))??``}px; top: ${x(ke)??``}px; max-height: ${e??``}px;`)},[()=>(x(ke),F(()=>Math.max(200,window.innerHeight-x(ke)-20)))]),O(`mouseenter`,t,()=>{}),O(`mouseleave`,t,ae(()=>{setTimeout(()=>{document.querySelector(`.menu-column:hover`)||L(De,null)},50)})),E(e,t)};Z(l,e=>{x(De),x(b),F(()=>x(De)&&x(b).length>0)&&e(u)}),K(e=>{X(n,`aria-label`,(x(p),F(()=>`${x(p).label} nodes`))),a(n,`left: ${x(fe),x(me),F(()=>x(fe).x+x(me))??``}px; top: ${x(Oe)??``}px; max-height: ${e??``}px;`)},[()=>(x(Oe),F(()=>Math.max(200,window.innerHeight-x(Oe)-20)))]),O(`mouseenter`,n,()=>{}),O(`mouseleave`,n,ae(()=>{setTimeout(()=>{document.querySelector(`.menu-column:hover`)||(L(Te,void 0),L(De,null))},50)})),E(e,t)};Z(n,e=>{x(Te),x(S),F(()=>x(Te)===null&&x(S).length>0)?e(r):(x(p),x(_),x(y),F(()=>x(p)&&(x(_).length>0||x(y).length>0))&&e(i,1))}),E(e,t)};Z(d,e=>{!x(H)&&x(Te)!==void 0&&e(m)}),K(()=>a(n,`left: ${x(fe),F(()=>x(fe).x)??``}px; top: ${x(fe),F(()=>x(fe).y)??``}px`)),Ce(s,()=>x(H),e=>L(H,e)),O(`keydown`,s,Be),O(`keydown`,n,ze),O(`mouseleave`,n,ae(e=>{setTimeout(()=>{if(x(N))return;let e=document.querySelector(`.menu-column:hover`),t=document.querySelector(`.dialog-overlay`);!e&&!t&&Le()},100)})),E(e,t)};Z(He,e=>{(I()||R())&&e(Ue)});var We=P(He,2),Q=e=>{var t=te(),n=G(t);g(n,()=>x(ie),(e,t)=>{t(e,{get open(){return x(N)},set open(e){L(N,e)},$$events:{create:Fe,close:()=>L(N,!1)},$$legacy:!0})}),E(e,t)};Z(We,e=>{x(ie)&&e(Q)}),E(e,Ve),Ee(),c()}var AE=w(!1);function jE(){AE.set(!1)}var ME=u(`<button class="swatch svelte-tkyoee"></button>`),NE=u(`<div class="palette svelte-tkyoee"><div class="head svelte-tkyoee"><span>Node colour</span> <span class="count svelte-tkyoee"> </span></div> <div class="grid svelte-tkyoee"></div> <div class="foot svelte-tkyoee"><button class="clear svelte-tkyoee">Clear</button> <button class="clear svelte-tkyoee">Close</button></div></div>`);function PE(e,t){ee(t,!1);let n=V(t,`open`,8,!1),r=V(t,`selectionCount`,8,0),i=xe(),s=[[`#3a3a3a`,`#454545`,`#505050`,`#5c5c5c`,`#686868`,`#757575`,`#828282`,`#909090`],...[0,28,45,140,190,215,265,320].slice(1).map(e=>[20,26,32,38,44,50,56,62].map(t=>`hsl(${e}, 42%, ${t/2+12}%)`))];function c(e){i(`choose`,e)}function l(e){e.key===`Escape`&&i(`close`)}ue();var u=te();O(`keydown`,ce,l);var d=G(u),p=e=>{var t=NE(),n=M(t),l=P(M(n),2),u=q(l);o(n);var d=P(n,2);f(d,5,()=>s,h,(e,t)=>{var n=te(),r=G(n);f(r,1,()=>x(t),h,(e,t)=>{var n=ME();K(()=>{a(n,`background:${x(t)??``}`),X(n,`title`,x(t))}),O(`click`,n,()=>c(x(t))),E(e,n)}),E(e,n)}),o(d);var p=P(d,2),m=M(p),g=P(m,2);o(p),o(t),K(()=>D(u,`${r()??``} selected`)),O(`click`,m,()=>c(null)),O(`click`,g,()=>i(`close`)),E(e,t)};Z(d,e=>{n()&&e(p)}),E(e,u),Ee()}var FE=`*`;function IE(e){if(typeof EventSource>`u`)return()=>{};let t=new EventSource(`/api/nodes/events`);return t.addEventListener(`module-changed`,t=>{let n;try{n=String(JSON.parse(t.data)?.module??``)}catch{return}if(!n)return;let r=e.getTarget()?.nodes??[],i=n===FE?r.filter(e=>e.modulePath?.startsWith(`project.`)):r.filter(e=>e.modulePath===`project.${n}`);if(n===FE)for(let e of i){let t=e.modulePath.slice(8);hd(t),jw(t)}else hd(n),jw(n);for(let e of i)e.markDirty();e.onReload?.(n,i.length)}),t.addEventListener(`error`,()=>console.debug(`[node watch] stream interrupted, reconnecting`)),()=>t.close()}function LE(e){return zE(RE(e))}function RE(e){if(!e||typeof e!=`object`||Array.isArray(e))return e;let t=e,n=t.metadata;if(!n||typeof n!=`object`||Array.isArray(n))return t;let{modified:r,...i}=n;return{...t,metadata:i}}function zE(e){return typeof e!=`object`||!e?JSON.stringify(e)??`null`:Array.isArray(e)?`[${e.map(zE).join(`,`)}]`:`{${Object.entries(e).filter(([,e])=>e!==void 0).sort(([e],[t])=>e<t?-1:+(e>t)).map(([e,t])=>`${JSON.stringify(e)}:${zE(t)}`).join(`,`)}}`}function BE(e){if(typeof EventSource>`u`)return()=>{};let t=new EventSource(`/api/graph-events`);return t.addEventListener(`graph-changed`,t=>{let n;try{n=String(JSON.parse(t.data)?.file??``)}catch{return}n&&n===e.getFile()&&e.onChanged(n)}),t.addEventListener(`error`,()=>console.debug(`[graph watch] stream interrupted, reconnecting`)),()=>t.close()}var VE=12e4;async function HE(){try{let e=await fetch(`/api/build`,{cache:`no-store`});if(e.status===404)return{kind:`unsupported`};if(!e.ok)return{kind:`unknown`};let{id:t}=await e.json();return typeof t==`string`?{kind:`id`,id:t}:{kind:`unknown`}}catch{return{kind:`unknown`}}}function UE(e){let t=null,n=!1;async function r(){if(n)return;let r=await HE();if(n)return;if(r.kind===`unsupported`){n=!0;return}if(r.kind===`unknown`)return;let i=r.id;if(t===null){t=i;return}i!==t&&(n=!0,e())}r();let i=setInterval(r,VE),a=()=>{document.visibilityState===`visible`&&r()};return document.addEventListener(`visibilitychange`,a),()=>{n=!0,clearInterval(i),document.removeEventListener(`visibilitychange`,a)}}function WE(e){let t=e?.nodes;if(!Array.isArray(t))return[];let n=new Set;for(let e of t){let t=e?.module??e?.type;typeof t==`string`&&t.startsWith(`project.`)&&n.add(t)}return[...n]}function GE(e,t){let n=new Set(t);return WE(e).filter(e=>!n.has(e.slice(8)))}function KE(e){return`cascade ${e||`<project directory>`} --host ${location.hostname} --port <free port>`}var qE=`\0lane:`,JE=28,YE={columnGap:260,rowGap:190,originX:40,originY:40};function XE(e,t,n={}){let{columnGap:r,rowGap:i,originX:a,originY:o}={...YE,...n},s=n.widths,c=e=>s?.get(e)??r-60,l=new Map,u=new Map;for(let t of e)l.set(t,[]),u.set(t,[]);for(let e of t)!l.has(e.to)||!u.has(e.from)||(l.get(e.to).push(e.from),u.get(e.from).push(e.to));let d=new Map,f=new Set;function p(e){let t=d.get(e);if(t!==void 0)return t;if(f.has(e))return 0;f.add(e);let n=l.get(e)??[],r=n.length?Math.max(...n.map(p))+1:0;return f.delete(e),d.set(e,r),r}e.forEach(p);for(let t=0;t<e.length&&t<32;t++){let t=!1;for(let n of e){let e=u.get(n)??[];if(!e.length)continue;let r=l.get(n)??[],i=r.length?Math.max(...r.map(e=>d.get(e)??0))+1:0,a=Math.min(...e.map(e=>d.get(e)??0))-1,o=Math.max(i,a);o>(d.get(n)??0)&&(d.set(n,o),t=!0)}if(!t)break}let m=[];for(let t of e){let e=d.get(t)??0;for(;m.length<=e;)m.push([]);m[e].push(t)}let h=e=>e.startsWith(qE),g=new Map(l),_=new Map(u);t.forEach((e,t)=>{let n=d.get(e.from),r=d.get(e.to);if(n===void 0||r===void 0||r-n<=1)return;g.set(e.to,(g.get(e.to)??[]).filter(t=>t!==e.from)),_.set(e.from,(_.get(e.from)??[]).filter(t=>t!==e.to));let i=e.from;for(let e=n+1;e<r;e++){let n=`${qE}${t}:${e}`;m[e].push(n),g.set(n,[i]),_.set(n,[]),_.set(i,[..._.get(i)??[],n]),i=n}_.set(i,[..._.get(i)??[],e.to]),g.set(e.to,[...g.get(e.to)??[],i])}),m.forEach(e=>e.sort());let v=(e,t)=>e.indexOf(t);function y(e,t,n){let r=new Map;e.forEach((e,i)=>{let a=(n.get(e)??[]).map(e=>v(t,e)).filter(e=>e>=0);r.set(e,a.length?a.reduce((e,t)=>e+t,0)/a.length:i)}),e.sort((e,t)=>r.get(e)-r.get(t)||e.localeCompare(t))}function b(e,t){let n=[];t.forEach((t,r)=>{for(let i of g.get(t)??[]){let t=e.indexOf(i);t>=0&&n.push([t,r])}});let r=0;for(let e=0;e<n.length;e++)for(let t=e+1;t<n.length;t++)(n[e][0]-n[t][0])*(n[e][1]-n[t][1])<0&&r++;return r}let x=e=>(e>0?b(m[e-1],m[e]):0)+(e<m.length-1?b(m[e],m[e+1]):0);for(let e=0;e<8;e++){for(let e=1;e<m.length;e++)y(m[e],m[e-1],g);for(let e=m.length-2;e>=0;e--)y(m[e],m[e+1],_);let e=!0;for(let t=0;t<4&&e;t++){e=!1;for(let t=0;t<m.length;t++){let n=m[t];for(let r=0;r+1<n.length;r++){let i=x(t);[n[r],n[r+1]]=[n[r+1],n[r]],x(t)<i?e=!0:[n[r],n[r+1]]=[n[r+1],n[r]]}}}}let S=e=>h(e)?JE:c(e),C=e=>h(e)?45:90,w=m.map(e=>e.reduce((e,t)=>e+S(t),0)+Math.max(0,e.length-1)*90),T=Math.max(1,...w),ee=new Map;m.forEach((e,t)=>{let n=a+(T-w[t])/2;e.forEach(e=>{ee.set(e,n+S(e)/2),n+=S(e)+90})});for(let e=0;e<6;e++){let t=e%2==0?g:_;for(let e of m)for(let n=0;n<e.length;n++){let r=e[n],i=(t.get(r)??[]).map(e=>ee.get(e)).filter(e=>e!==void 0);if(!i.length)continue;let a=i.reduce((e,t)=>e+t,0)/i.length,o=S(r)/2,s=e[n-1],c=e[n+1],l=s===void 0?-1/0:ee.get(s)+S(s)/2+C(r)+o,u=c===void 0?1/0:ee.get(c)-S(c)/2-C(r)-o;ee.set(r,Math.min(Math.max(a,l),u))}}for(let e of m)for(let t=0;t<e.length;t++){let n=e[t],r=(g.get(n)??[]).map(e=>ee.get(e)).filter(e=>e!==void 0);if(!r.length)continue;let i=r.reduce((e,t)=>e+t,0)/r.length,a=S(n)/2,o=e[t-1],s=e[t+1],c=o===void 0?-1/0:ee.get(o)+S(o)/2+C(n)+a,l=s===void 0?1/0:ee.get(s)-S(s)/2-C(n)-a;ee.set(n,Math.min(Math.max(i,c),l))}let E=new Map;return m.forEach((e,t)=>{for(let n of e)h(n)||E.set(n,{x:Math.round(ee.get(n)-S(n)/2),y:Math.round(o+t*i)})}),E}function ZE(e){return e.map(e=>({from:e.from.nodeId,to:e.to.nodeId}))}var QE=u(`<div class="cook-status loading svelte-16g4g59" role="status" aria-live="polite" data-phase="loading"><span class="status-mark svelte-16g4g59" aria-hidden="true"></span> <strong class="svelte-16g4g59">Loading graph</strong> <span class="svelte-16g4g59">Fetching and compiling nodes…</span></div>`),$E=u(`<strong class="svelte-16g4g59"> </strong>`),eD=u(`<span class="current-node svelte-16g4g59"> </span>`),tD=u(`<strong class="svelte-16g4g59"> </strong> <!> <time class="svelte-16g4g59"> </time>`,1),nD=u(`<div class="cook-status svelte-16g4g59" role="status" aria-live="polite"><span class="status-mark svelte-16g4g59" aria-hidden="true"></span> <!></div>`);function rD(e,t){ee(t,!1);let n=Y(),r=Y(),i=V(t,`loading`,8,!1),a=V(t,`status`,8),s=Y(Date.now()),c=Y(x(s)),l=Y(a()),u=Y();me(()=>x(u)&&clearInterval(x(u)));function d(e){return e<1e3?`${Math.max(0,Math.round(e))} ms`:`${(e/1e3).toFixed(1)} s`}J(()=>(A(a()),x(l),x(c)),()=>{a()!==x(l)&&(L(l,a()),L(c,Date.now()),L(s,x(c)))}),J(()=>(A(i()),A(a()),x(u)),()=>{let e=!i()&&a().phase===`cooking`;e&&!x(u)?L(u,setInterval(()=>{L(s,Date.now())},100)):!e&&x(u)&&(clearInterval(x(u)),L(u,void 0))}),J(()=>(A(a()),x(s),x(c)),()=>{L(n,a().elapsed+(a().phase===`cooking`?x(s)-x(c):0))}),J(()=>A(a()),()=>{L(r,Math.min(a().total,a().completed+ +!!a().currentNode))}),he(),ue();var f=te(),p=G(f),m=e=>{var t=QE();E(e,t)},h=e=>{var t=nD(),i=P(M(t),2),s=e=>{var t=$E(),n=q(t);K(()=>D(n,`Queued ${A(a()),F(()=>a().total)??``} ${A(a()),F(()=>a().total===1?`node`:`nodes`)??``}`)),E(e,t)},c=e=>{var t=tD(),i=G(t),o=q(i),s=P(i,2),c=e=>{var t=eD(),n=q(t,!0);K(()=>D(n,(A(a()),F(()=>a().currentNode.id)))),E(e,t)};Z(s,e=>{A(a()),F(()=>a().currentNode)&&e(c)});var l=P(s,2),u=q(l,!0);K(e=>{D(o,`Cooking ${x(r)??``} of ${A(a()),F(()=>a().total)??``}`),D(u,e)},[()=>(x(n),F(()=>d(x(n))))]),E(e,t)};Z(i,e=>{A(a()),F(()=>a().phase===`scheduled`)?e(s):e(c,-1)}),o(t),K(()=>X(t,`data-phase`,(A(a()),F(()=>a().phase)))),E(e,t)};Z(p,e=>{i()?e(m):(A(a()),F(()=>a().phase!==`idle`)&&e(h,1))}),E(e,f),Ee()}function iD(e,t=2){let n=e,r=``;for(;n!==r;)r=n,n=aD(n,t);return n}function aD(e,t=2){let n=e.split(`
|
|
208
|
-
`),r=[],i=0;for(;i<n.length;){let e=n[i],t=e.trim();if(t.endsWith(`[`)&&(t.includes(`:`)||t===`[`)){let a=[e],o=1,s=i+1;for(;s<n.length&&o>0;){let e=n[s];a.push(e);for(let t of e)t===`[`&&o++,t===`]`&&o--;s++}let c=[],l=1;for(;l<a.length-1;){let e=a[l].trim();if(e.endsWith(`[`)||e.startsWith(`[`)&&!e.endsWith(`]`)){let e=[a[l]],t=1,n=l+1;for(;n<a.length-1&&t>0;){e.push(a[n]);for(let e of a[n])e===`[`&&t++,e===`]`&&t--;n++}let r=[];for(let t=1;t<e.length-1;t++){let n=e[t].trim().replace(/,$/,``).trim();n&&r.push(n)}let i=`[`+r.map(e=>e.trim()).join(`, `)+`]`;c.push(i),l=n}else{let t=e.replace(/,$/,``).trim();t&&c.push(t),l++}}let u=c.length>=2&&c.length<=4&&c.every(e=>{let t=e.trim();return/^-?\d+(\.\d+)?([eE][+-]?\d+)?$/.test(t)}),d=!1;if(c.length>=2&&c.length<=20&&c.every(e=>{let t=e.trim();if(t.startsWith(`[`)&&t.endsWith(`]`)){let e=t.slice(1,-1).trim().split(`,`).map(e=>e.trim()).filter(e=>e);return e.length>=2&&e.length<=4}return!!t.endsWith(`[`)})){let e=!0;for(let t of c){let n=t.trim();if(n.startsWith(`[`)&&n.endsWith(`]`)){let t=n.slice(1,-1).trim().split(`,`).map(e=>e.trim()).filter(e=>e);if(t.length<2||t.length>4){e=!1;break}}else if(!n.endsWith(`[`)){e=!1;break}}d=e}if(u||d){let n=(e.match(/^(\s*)/)?.[1]||``).length,o=t.match(/^(.+?)\s*\[\s*$/),l=o?o[1]:``,u=a[a.length-1].trim().endsWith(`,`),f;f=d?c.map(e=>{let t=e.trim();return t.startsWith(`[`)&&t.endsWith(`]`),t}).join(`, `):c.map(e=>e.trim()).join(`, `);let p=l+` [`+f+`]`+(u?`,`:``);r.push(` `.repeat(n)+p),i=s;continue}}r.push(e),i++}return r.join(`
|
|
209
|
-
`)}function oD(e){let t=e.toJSON();return iD(JSON.stringify(t,null,2),2)}function sD(e,t=`graph.cascade`){let n=oD(e),r=new Blob([n],{type:`application/json`}),i=URL.createObjectURL(r),a=document.createElement(`a`);a.href=i,a.download=t,document.body.appendChild(a),a.click(),document.body.removeChild(a),URL.revokeObjectURL(i)}async function cD(e,t=`graph.cascade`){if(!(`showSaveFilePicker`in window))return sD(e,t),t;try{let n=await window.showSaveFilePicker({suggestedName:t,types:[{description:`Cascade Files`,accept:{"application/json":[`.cascade`]}}]}),r=await n.createWritable(),i=oD(e);return await r.write(i),await r.close(),n.name}catch(e){if(e.name===`AbortError`)return null;throw e}}function lD(e){return new Promise((t,n)=>{let r=new FileReader;r.onload=e=>{try{t(JSON.parse(e.target?.result))}catch{n(Error(`Failed to parse JSON file`))}},r.onerror=()=>n(Error(`Failed to read file`)),r.readAsText(e)})}function uD(e=`.cascade`){return new Promise(t=>{let n=document.createElement(`input`);n.type=`file`,n.accept=e,n.onchange=e=>{t(e.target.files?.[0]||null)},n.click()})}function dD(e){return e.replace(/\.[^/.]+$/,``)}var fD=class e{constructor(e){if(this.sceneContainer=null,e)this.graph=e;else{let e=new nd(``,new td),t=new sd;this.graph=new Nf(e,t)}typeof document<`u`&&(this.sceneContainer=document.createElement(`div`),this.sceneContainer.id=`cascade-scene`)}getGraph(){return this.graph}getSceneContainer(){return this.sceneContainer}static create(){return new e}static fromJSON(t){let n=new nd(``,new td),r=new sd,i=Nf.fromJSON(t,n,r);return new e(i)}},pD=ie(()=>Ju),mD=u(`<div class="build-stale svelte-1n46o8q" role="status"><span>Cascade updated. This tab is running the previous build.</span> <button class="svelte-1n46o8q">Reload</button></div>`),hD=u(`<div class="project-mismatch svelte-1n46o8q" role="alert"><span> </span> <code class="svelte-1n46o8q"> </code> <button class="svelte-1n46o8q">Dismiss</button></div>`),gD=u(`<div class="credential-warning svelte-1n46o8q" role="alert"> <button class="svelte-1n46o8q">Open Project Settings</button></div>`),_D=u(`<div><!> <!> <!> <!> <!> <!> <!> <!> <!> <!> <!> <!></div>`);function vD(t,n){ee(n,!1);let r=()=>we(B_,`$selectedNodeIds`,s),i=()=>we(A_,`$canUndo`,s),a=()=>we(j_,`$canRedo`,s),[s,c]=ne(),l=Y(),u=Y(),d=Y(),f=Y(null),p=Y(null),m=Y(null),h=Y(null);async function _(){if(!x(m)){let e=await od(()=>import(`./VersionHistoryDialog-DTMGhI0_.js`),__vite__mapDeps([5,1,6]));L(m,e.default)}}async function y(){if(!x(f)){let e=await od(()=>import(`./ExportDialog-BJu2Bpvv.js`),__vite__mapDeps([7,1,8]));L(f,e.default)}}async function b(){if(!x(p)){let e=await od(()=>import(`./SettingsDialog-za00IS3L.js`),__vite__mapDeps([9,1,10]));L(p,e.default)}}async function S(){x(h)||L(h,(await od(async()=>{let{default:e}=await import(`./ProjectSettings-DWpVtWEx.js`);return{default:e}},__vite__mapDeps([11,1,12,13]))).default)}let C=Y(!1),w=Y(null),T=Y(null),k=Y(null),j=Y(null),re=Y(!1),N=Y(null),ie=Y(`select`),ae=Y({x:0,y:0}),I={x:0,y:0},R=Y(!1),z=Y(!1),se=Y(!1),B=Y(void 0),V=new S_(()=>x(B)),ce=Y(!0),le=Y(),H=Y(),U=Y({phase:`idle`,total:0,completed:0,currentNode:null,startedAt:null,elapsed:0});me(()=>x(H)?.());let de=Y(`Untitled`),fe=Y(null),W=Y(null),_e=Y(!1),ve=Y(!1),be=Y(null),xe=Y([]),Se=Y(``),Ce=Y(!1);function Te(e){if(!x(B))return;let t=H_(x(B),r(),x(k));t.length!==0&&(Je(),t.forEach(t=>{e?t.color=e:delete t.color}),oe(B,x(B).elements=[...x(B).elements]),L(X,!0),Q())}let X=Y(!1);function De(){L(C,!x(C)),x(C)&&(L(w,null),L(T,null))}function Oe(e){L(w,e),L(T,null)}function ke(e){L(w,e.detail.libraryId),L(T,e.detail.categoryId)}function Ae(e){L(w,e.detail.libraryId),L(T,null)}function je(e){L(ie,e)}let Me=Y(null);function Ne(e){x(Me)&&x(Me).addNode&&x(Me).addNode({type:e.detail.type,category:e.detail.categoryId,customConfig:e.detail.customConfig}),L(w,null),L(T,null)}function Pe(e){L(k,e),e&&L(j,null)}function Fe(e){L(j,e.detail.annotationId),e.detail.annotationId&&L(k,null)}function Ie(e){switch(e){case`new`:Be();break;case`open`:Ve();break;case`save`:He();break;case`versionHistory`:if(!x(W)){alert(`Version history is for a project opened by the cascade CLI — this document has none.`);break}_().then(()=>L(_e,!0));break;case`saveAs`:Ue();break;case`duplicate`:We();break;case`export`:y().then(()=>L(R,!0));break;case`settings`:b().then(()=>L(z,!0));break;case`projectSettings`:S().then(()=>L(se,!0));break;case`about`:alert(`Cascade - Visual Programming Framework
|
|
210
|
-
Version 1.0.0`);break;case`undo`:Ke();break;case`redo`:qe();break;case`selectAll`:x(Me)?.selectAll&&x(Me).selectAll();break;case`deselectAll`:x(Me)?.deselectAll&&x(Me).deselectAll(),L(k,null),L(j,null);break;case`delete`:x(Me)?.deleteSelected&&x(Me).deleteSelected(),L(k,null),L(j,null);break;case`addNode`:L(N,null),L(w,`core`),L(ae,{x:window.innerWidth/2,y:window.innerHeight/2});break;case`addText`:L(ie,`text`);break;case`addImage`:L(ie,`image`);break;case`addGroup`:L(ie,`group`);break;case`addLine`:L(ie,`line`);break;case`addPolyline`:L(ie,`polyline`);break;case`cleanUpLayout`:et();break;case`centerOnNodes`:x(Me)?.centerOnNodes&&x(Me).centerOnNodes();break;case`resetLayout`:cl.resetLayout();break;case`presentationMode`:De();break;case`maximizeTab`:cl.toggleMaximizeActivePanel();break;case`focusGraph`:cl.focusOrOpenPanel(`graph-main`,`graph`,`Graph`);break;case`focusViewer`:cl.focusOrOpenPanel(`viewer-main`,`viewer`,`Viewer`,`graph-main`);break;case`focusInspector`:cl.focusOrOpenPanel(`inspector-main`,`inspector`,`Parameters`,`viewer-main`);break;case`focusLog`:cl.focusOrOpenPanel(`log-main`,`log`,`Log`,`viewer-main`);break;case`focusDefinition`:cl.focusOrOpenPanel(`definition-main`,`definition`,`Definition`,`inspector-main`);break;case`focusAgent`:cl.focusOrOpenPanel(`agent-main`,`agent`,`Agent`,`log-main`);break;case`focusTimeline`:cl.focusOrOpenPanel(`timeline-main`,`timeline`,`Timeline`,`graph-main`,`below`)}}async function Le(e){let t=fD.fromJSON(e).getGraph();try{await t.waitForAnnotationPorts();for(let e of t.nodes)if(e.code)try{let t=`return (async function(node, graph) {\n${e.code}\n})(node, graph);`,n=Function(`node`,`graph`,t);e.setFunction(n)}catch(t){console.warn(`Failed to set function for node ${e.id}:`,t)}}catch(e){throw Re(t),e}return t}function Re(e){e.nodes.forEach(e=>{try{e.onDestroy?.()}catch(t){console.warn(`Failed to dispose node ${e.id}:`,t)}})}async function ze(t,n=!1){let r=x(B);L(B,t);try{V.restoreConnections(),await e()}catch(e){throw L(B,r),Re(t),e}n&&z_(),r&&Re(r)}async function Be(){if(!(!(x(B)&&confirm(`Create a new project? Unsaved changes will be lost.`))&&x(B)))try{let e=await fetch(`/graphs/default.cascade`);if(!e.ok)throw Error(`Failed to load default graph`);await ze(await Le(await e.json()),!0),L(de,`Untitled`),L(fe,null),L(W,null),L(X,!1),Q(),Ye().catch(e=>console.warn(`Graph execution failed:`,e)),setTimeout(()=>{x(Me)&&x(Me).centerOnNodes&&x(Me).centerOnNodes()},100)}catch(e){console.error(`Failed to load default graph:`,e),x(B)||(L(B,fD.create().getGraph()),L(de,`Untitled`),L(fe,null),L(W,null),L(X,!1),Q())}}async function Ve(){try{let e=await uD(`.cascade`);if(!e)return;let t=await lD(e);await ze(await Le(t),!0),L(de,dD(e.name)),L(fe,e.name),L(W,null),L(X,!1),Q(),await Qe(t),await Ye().catch(e=>console.warn(`Graph execution failed:`,e)),setTimeout(()=>{x(Me)&&x(Me).centerOnNodes&&x(Me).centerOnNodes()},100)}catch(e){alert(`Failed to open project: `+e.message)}}async function He(){if(x(B)){if(x(fe)){if(x(W)){let e=await fetch(`/api/graph/${encodeURIComponent(x(W))}`,{method:`PUT`,headers:{"Content-Type":`application/json`},body:oD(x(B))});if(!e.ok){let t=await e.text();alert(`Failed to save ${x(W)}: ${t}`);return}}else if(!await cD(x(B),x(fe)))return;L(X,!1),Q()}else Ue()}}async function Ue(){if(!x(B))return;let e=x(de)===`Untitled`?`my-project.cascade`:`${x(de)}.cascade`,t=await cD(x(B),e);t&&(L(de,t.replace(/\.cascade$/,``)),L(fe,t),L(W,null),L(X,!1),Q())}function We(){if(!x(B))return;let e=x(B).toJSON(),t=fD.fromJSON(e).getGraph();t.nodes.forEach(e=>{e.position.x+=50,e.position.y+=50}),L(B,t),L(de,x(de)+` Copy`),L(fe,null),L(W,null),Q(),t.nodes.forEach(e=>{if(e.code)try{let t=Function(`node`,`graph`,e.code);e.setFunction(t)}catch(t){console.warn(`Failed to execute node `+e.id+`:`,t)}}),Ye().catch(e=>console.warn(`Failed to initialize duplicated graph:`,e)),setTimeout(()=>{x(Me)&&x(Me).centerOnNodes&&x(Me).centerOnNodes()},100)}function Q(){if(typeof document<`u`){let e=x(X)?` *`:``,t=x(B)?.project?.name&&x(B).project.name!==`Cascade Graph`?x(B).project.name:x(Se)?x(Se):x(de)&&x(de)!==`Untitled`?x(de):`Untitled`;document.title=`${t}${e} - Cascade`}}async function Ge(e){x(B)&&(await ze(await Le(e.json)),L(k,e.selectedNodeId?x(B).getNode(e.selectedNodeId):null),L(j,e.selectedAnnotationId),Ye().catch(e=>console.warn(`Graph execution failed:`,e)))}async function Ke(){if(!x(B))return;let e=L_(x(B),x(k)?.id||null,x(j));e&&await Ge(e)}async function qe(){if(!x(B))return;let e=R_(x(B),x(k)?.id||null,x(j));e&&await Ge(e)}function Je(){x(B)&&(I_(x(B),x(k)?.id||null,x(j)),L(X,!0),Q())}async function Ye(t=16){if(!x(B))return;let n=-1,r=-1;for(let i=0;i<t;i++){await x(B).execute(),V.restoreConnections(),await e();let t=x(B).nodes.reduce((e,t)=>e+t.outputs.filter(e=>e.value!==void 0&&e.value!==null).length,0),a=(x(B)._connectionsToRestore??[]).length;if(t===n&&a===r){console.log(`[Cook] settled after ${i+1} passes: ${t} outputs`+(a?`, ${a} connections unresolved (bypassed or unrunnable upstream)`:``)),a&&console.log(`[Cook] unresolved:`,(x(B)._connectionsToRestore??[]).map(e=>`${e[0][0]}.${e[0][2]??e[0][1]}->${e[1][0]}.${e[1][2]??e[1][1]}`).join(` `));return}n=t,r=a}console.warn(`[Cook] still changing after ${t} passes — stopping`)}async function Xe(){try{let e=await fetch(`/api/graph`);if(!e.ok)return null;let{default:t}=await e.json();if(!t)return null;let n=await fetch(`/api/graph/${encodeURIComponent(t)}`);return n.ok?{filename:t,json:await n.json()}:null}catch(e){return console.warn(`[Startup] No project graph available from the server:`,e),null}}let Ze=!1;async function $(e){if(!(Ze||!x(B))){Ze=!0;try{let t=await fetch(`/api/graph/${encodeURIComponent(e)}`,{cache:`no-store`});if(!t.ok)return;let n=await t.json();if(LE(n)===LE(JSON.parse(oD(x(B)))))return;if(x(X)){console.warn(`[graph watch] ${e} changed on disk and this document has unsaved changes — not reloading. Save or discard to pick the new version up.`);return}await ze(await Le(n)),L(X,!1),Q(),await Qe(n),await Ye().catch(e=>console.warn(`Graph execution failed:`,e)),console.log(`[graph watch] reloaded ${e} from disk`)}catch(e){console.warn(`[graph watch] could not reload the document:`,e)}finally{Ze=!1}}}async function Qe(e){L(be,null);try{let[t,n]=await Promise.all([fetch(`/api/nodes`),fetch(`/api/graph`)]);if(!t.ok)return;let r=GE(e,(await t.json())?.modules??[]);if(!r.length)return;let i=n.ok?(await n.json())?.root??``:``;L(be,{missing:r,root:i})}catch{}}async function $e(e){let{json:t,version:n}=e.detail,r=x(W);await ze(await Le(t),!0),L(_e,!1),L(W,r),L(fe,r),L(X,!0),Q(),Ye().catch(e=>console.warn(`Graph execution failed:`,e)),console.log(`[Version] Restored ${r} at ${n.shortSha} — unsaved until you save`)}async function et(){if(!x(B))return;Je();let e=new Map;document.querySelectorAll(`.node`).forEach(t=>{let n=t.querySelector(`.node-name`)?.textContent?.trim();n&&e.set(n,Math.max(t.offsetWidth,90))});let t=XE(x(B).nodes.map(e=>e.id),ZE(x(B).connections),{widths:e});x(B).nodes.forEach(e=>{let n=t.get(e.id);n&&(e.position=n)}),oe(B,x(B).elements=[...x(B).elements]),o_(),L(X,!0),Q(),requestAnimationFrame(()=>requestAnimationFrame(()=>{o_(),x(Me)?.centerOnNodes?.(),requestAnimationFrame(()=>requestAnimationFrame(()=>o_()))}))}ye(()=>{pD(pD().onPropParamsChanged=Qg),Q(),r_();let e=IE({getTarget:()=>x(B)??null}),t=BE({getFile:()=>x(W),onChanged:e=>$(e)}),n=MS({file:()=>x(W),isDirty:()=>x(X),save:async()=>(await He(),!x(X))}),r=UE(()=>{L(ve,!0)}),i=AE.subscribe(e=>{e&&(b().then(()=>L(z,!0)),jE())});(async()=>{if(!x(B))try{let e,t=`Untitled`,n=null,r=null,i=await Xe();if(i&&(console.log(`[Startup] Loading project graph from server:`,i.filename),e=i.json,n=i.filename,t=i.filename,r=i.filename),!e){let t=await fetch(`/graphs/default.cascade`);if(!t.ok)throw Error(`Failed to load default graph`);e=await t.json()}if(await ze(await Le(e)),L(de,t),L(fe,n),L(W,r),L(X,!1),Q(),await Qe(e),x(W))try{let{loadProjectSettings:e}=await od(async()=>{let{loadProjectSettings:e}=await import(`./projectSettingsApi-C1WvIwfP.js`);return{loadProjectSettings:e}},[]),t=await e();L(xe,t.missingCredentials),L(Se,t.manifest.name),Q()}catch{L(xe,[])}x(xe).length===0?await Ye().catch(e=>console.warn(`Graph execution failed:`,e)):console.warn(`[Startup] Cook deferred until required credentials are set: ${x(xe).join(`, `)}`),setTimeout(()=>{x(Me)&&x(Me).centerOnNodes&&x(Me).centerOnNodes()},100)}catch(e){console.error(`Failed to load default graph:`,e);let t=fD.create();L(B,t.getGraph()),L(de,`Untitled`),L(fe,null),L(W,null),Q()}L(ce,!1)})();function a(e){I={x:e.clientX,y:e.clientY}}window.addEventListener(`mousemove`,a);function o(e){if((e.key===`c`||e.key===`C`)&&!e.metaKey&&!e.ctrlKey&&!e.altKey&&!e.shiftKey){let t=e.target;if(t.tagName!==`INPUT`&&t.tagName!==`TEXTAREA`&&!t.isContentEditable){e.preventDefault(),L(Ce,!x(Ce));return}}if((e.metaKey||e.ctrlKey)&&e.key===`.`&&(e.preventDefault(),De()),(e.metaKey||e.ctrlKey)&&e.key===`z`&&!e.shiftKey){e.preventDefault(),Ke();return}if((e.metaKey||e.ctrlKey)&&e.key===`z`&&e.shiftKey){e.preventDefault(),qe();return}let t=e.target;if(t.tagName!==`INPUT`&&t.tagName!==`TEXTAREA`&&((e.key===`v`||e.key===`V`)&&!e.metaKey&&!e.ctrlKey&&L(ie,`select`),(e.key===`h`||e.key===`H`)&&!e.metaKey&&!e.ctrlKey&&!e.altKey&&(e.preventDefault(),x(Me)&&x(Me).centerOnNodes&&x(Me).centerOnNodes()),e.altKey&&!e.metaKey&&!e.ctrlKey&&((e.key===`t`||e.key===`T`)&&(e.preventDefault(),L(ie,`text`)),(e.key===`i`||e.key===`I`)&&(e.preventDefault(),L(ie,`image`)),(e.key===`g`||e.key===`G`)&&(e.preventDefault(),L(ie,`group`)),(e.key===`l`||e.key===`L`)&&(e.preventDefault(),L(ie,`line`)),(e.key===`p`||e.key===`P`)&&(e.preventDefault(),L(ie,`polyline`)))),e.key===`Tab`&&!e.metaKey&&!e.ctrlKey&&!e.altKey){let t=e.target;if(t.tagName!==`INPUT`&&t.tagName!==`TEXTAREA`){if(e.preventDefault(),x(w)||x(T))L(w,null),L(T,null),L(N,null);else{L(N,null);let e=document.querySelector(`[data-window-id="graph"]`);if(e){let t=e.getBoundingClientRect();I.x>=t.left&&I.x<=t.right&&I.y>=t.top&&I.y<=t.bottom?L(ae,{...I}):L(ae,{x:t.left+t.width/2,y:t.top+t.height/2})}else L(ae,{x:window.innerWidth/2,y:window.innerHeight/2});L(w,`core`)}}}if(e.key===`Escape`&&(x(w)||x(T))&&(L(w,null),L(T,null),L(N,null)),(e.metaKey||e.ctrlKey)&&e.key===`b`&&(e.preventDefault(),cl.toggleMaximizeActivePanel()),(e.metaKey||e.ctrlKey)&&e.key===`/`){e.preventDefault();let t=e.target;t.tagName!==`INPUT`&&t.tagName!==`TEXTAREA`&&(x(w)||x(T)?(L(w,null),L(T,null),L(N,null)):(L(N,null),L(ae,{x:window.innerWidth/2,y:window.innerHeight/2}),L(w,`core`)))}(e.metaKey||e.ctrlKey)&&e.key===`;`&&(e.preventDefault(),(x(k)||x(k)===null)&&L(k,null)),(e.metaKey||e.ctrlKey)&&e.key===`e`&&(e.preventDefault(),y().then(()=>L(R,!0))),(e.metaKey||e.ctrlKey)&&e.key===`,`&&(e.preventDefault(),b().then(()=>L(z,!0)));let n=e.altKey;if(n&&e.key===`n`&&!e.shiftKey&&(e.preventDefault(),Be()),n&&e.key===`o`&&!e.shiftKey&&(e.preventDefault(),Ve()),n&&e.key===`s`&&(e.preventDefault(),e.shiftKey?Ue():He()),(e.metaKey||e.ctrlKey)&&e.key===`d`){let t=e.target;t.tagName!==`INPUT`&&t.tagName!==`TEXTAREA`&&(e.preventDefault(),We())}let r=e.target;if(r.tagName!==`INPUT`&&r.tagName!==`TEXTAREA`&&x(B)&&x(k)){if((e.key===`b`||e.key===`B`)&&!e.metaKey&&!e.ctrlKey&&!e.altKey&&(e.preventDefault(),x(k).setBypass(!x(k).bypass)),(e.key===`k`||e.key===`K`)&&!e.metaKey&&!e.ctrlKey){if(e.preventDefault(),e.shiftKey){x(k).setCook(!0);let e=t=>{t.outputs.forEach(t=>{t.connections.forEach(t=>{let n=x(B)?.getNode(t.to.nodeId);n&&(n.setCook(!0),e(n))})})};e(x(k))}else x(k).cook?x(k).setCook(!1):(x(B).clearCookingNodes(),x(k).setCook(!0))}e.altKey&&(e.key===`b`||e.key===`B`)&&(e.preventDefault(),x(B).nodes.forEach(e=>{e.bypass&&e.setBypass(!1)})),e.altKey&&(e.key===`k`||e.key===`K`)&&(e.preventDefault(),x(B).clearCookingNodes())}if(e.key===`Delete`&&x(B)&&x(k)){let t=e.target;t.tagName!==`INPUT`&&t.tagName!==`TEXTAREA`&&(e.preventDefault(),Je(),x(B).removeNode(x(k).id),L(k,null))}if(e.altKey&&(e.key===`h`||e.key===`H`)){let t=e.target;t.tagName!==`INPUT`&&t.tagName!==`TEXTAREA`&&(e.preventDefault(),x(Me)&&x(Me).centerOnNodes&&x(Me).centerOnNodes())}if((e.ctrlKey||e.metaKey)&&!e.shiftKey&&!e.altKey){let t={1:()=>Ie(`focusGraph`),2:()=>Ie(`focusViewer`),3:()=>Ie(`focusInspector`),4:()=>Ie(`focusLog`),5:()=>Ie(`focusAgent`),6:()=>Ie(`focusDefinition`),7:()=>Ie(`focusTimeline`)}[e.key];t&&(e.preventDefault(),t())}if((e.ctrlKey||e.metaKey)&&e.key===`w`&&!e.shiftKey){let t=cl.activePanel;t&&t!==`graph-main`&&(e.preventDefault(),cl.removePanel(t))}(e.ctrlKey||e.metaKey)&&e.shiftKey&&e.key===`P`&&(e.preventDefault(),cl.resetLayout())}return window.addEventListener(`keydown`,o),()=>{window.removeEventListener(`keydown`,o),window.removeEventListener(`mousemove`,a),i(),e(),t(),n(),r()}}),J(()=>(x(k),x(j)),()=>{L(l,x(k)!==null||x(j)!==null)}),J(()=>x(l),()=>{L(re,x(l))}),J(()=>(x(re),x(l)),()=>{L(u,x(re)&&x(l))}),J(()=>(x(B),x(le),x(H),Gb),()=>{x(B)!==x(le)&&(x(H)?.(),L(le,x(B)),x(B)&&Gb.setGraph(x(B)),L(U,x(B)?.scheduler.status??{phase:`idle`,total:0,completed:0,currentNode:null,startedAt:null,elapsed:0}),L(H,x(B)?.scheduler.subscribe(e=>{L(U,e)})))}),J(()=>(x(X),x(fe),x(de)),()=>{L(d,x(X)||x(fe)===null?`${x(de)} *`:x(de))}),J(()=>x(de),()=>{x(de)&&Q()}),J(()=>x(X),()=>{x(X)!==void 0&&Q()}),he(),ue();var tt=_D();let nt;var rt=M(tt),it=e=>{var t=mD(),n=P(M(t),2);o(t),O(`click`,n,()=>location.reload()),E(e,t)};Z(rt,e=>{x(ve)&&e(it)});var at=P(rt,2),ot=e=>{var t=hD(),n=M(t),r=q(n),i=P(n,2),a=q(i,!0),s=P(i,2);o(t),K((e,t)=>{D(r,`This graph needs project nodes this server does not have
|
|
211
|
-
(${e??``}${x(be),F(()=>x(be).missing.length>3?`, and ${x(be).missing.length-3} more`:``)??``}), so they cannot cook here. This server serves
|
|
212
|
-
${x(be),F(()=>x(be).root||`another project`)??``}. Launch the graph's own project from the CLI:`),D(a,t)},[()=>(x(be),F(()=>x(be).missing.slice(0,3).map(e=>e.slice(8)).join(`, `))),()=>(A(KE),F(()=>KE(``)))]),O(`click`,s,()=>L(be,null)),E(e,t)};Z(at,e=>{x(be)&&e(ot)});var st=P(at,2),ct=e=>{cE(e,{get documentName(){return x(d)},get canUndo(){return i()},get canRedo(){return a()},$$events:{action:e=>Ie(e.detail),openNodePanel:e=>{L(w,`core`),L(N,{x:e.detail.x,y:e.detail.y})},nameChange:e=>{L(de,e.detail),L(X,!0),Q()}}})};Z(st,e=>{x(C)||e(ct)});var lt=P(st,2);ge($T(lt,{get graph(){return x(B)},get selectedNode(){return x(k)},get selectedAnnotation(){return x(j)},get activeTool(){return x(ie)},get activeLibrary(){return x(w)},get documentName(){return x(d)},get presentationMode(){return x(C)},onRecordHistory:Je,$$events:{nodeSelect:e=>Pe(e.detail.node),annotationSelect:e=>Fe(e),libraryToggle:e=>Oe(e.detail),toolChange:e=>je(e.detail),action:e=>Ie(e.detail),nameChange:e=>{L(de,e.detail),L(X,!0),Q()},openNodePanel:e=>{e.detail?.x&&e.detail?.y?L(ae,{x:e.detail.x,y:e.detail.y}):L(ae,{x:window.innerWidth/2,y:window.innerHeight/2}),L(w,x(w)?null:`core`),L(T,null)}},$$legacy:!0}),e=>L(Me,e),()=>x(Me));var ut=P(lt,2);rD(ut,{get loading(){return x(ce)},get status(){return x(U)}});var dt=P(ut,2),ft=e=>{var t=gD(),n=M(t),r=P(n);o(t),K(e=>D(n,`Missing project credentials: ${e??``}. `),[()=>(x(xe),F(()=>x(xe).join(`, `)))]),O(`click`,r,()=>S().then(()=>L(se,!0))),E(e,t)};Z(dt,e=>{x(xe),F(()=>x(xe).length)&&e(ft)});var pt=P(dt,2),mt=e=>{kE(e,{get libraryId(){return x(w)},get categoryId(){return x(T)},get centerPosition(){return x(ae)},get fixedPosition(){return x(N)},$$events:{addNode:Ne,selectCategory:ke,selectLibrary:Ae,close:()=>{L(w,null),L(T,null),L(N,null)}}})};Z(pt,e=>{(x(w)||x(T))&&e(mt)});var ht=P(pt,2),gt=e=>{var t=te(),n=G(t);g(n,()=>x(f),(e,t)=>{t(e,{get graph(){return x(B)},get open(){return x(R)},set open(e){L(R,e)},$$events:{close:()=>L(R,!1)},$$legacy:!0})}),E(e,t)};Z(ht,e=>{x(B)&&x(f)&&e(gt)});var _t=P(ht,2);{let e=pe(()=>(A(H_),x(B),r(),x(k),F(()=>H_(x(B),r(),x(k)).length)));PE(_t,{get open(){return x(Ce)},get selectionCount(){return x(e)},$$events:{choose:e=>{Te(e.detail),L(Ce,!1)},close:()=>L(Ce,!1)}})}var vt=P(_t,2),yt=e=>{var t=te(),n=G(t);g(n,()=>x(m),(e,t)=>{t(e,{get filename(){return x(W)},get open(){return x(_e)},set open(e){L(_e,e)},$$events:{restore:$e,close:()=>L(_e,!1)},$$legacy:!0})}),E(e,t)};Z(vt,e=>{x(m)&&e(yt)});var bt=P(vt,2),xt=e=>{var t=te(),n=G(t);g(n,()=>x(p),(e,t)=>{t(e,{get open(){return x(z)},set open(e){L(z,e)},$$events:{close:()=>L(z,!1)},$$legacy:!0})}),E(e,t)};Z(bt,e=>{x(p)&&e(xt)});var St=P(bt,2),Ct=e=>{var t=te(),n=G(t);g(n,()=>x(h),(e,t)=>{t(e,{get graph(){return x(B)},get open(){return x(se)},set open(e){L(se,e)},$$events:{save:e=>{L(de,e.detail.graphName||x(de)),L(Se,e.detail.projectName),L(xe,e.detail.missingCredentials),L(X,!0),Q()},close:()=>L(se,!1)},$$legacy:!0})}),E(e,t)};Z(St,e=>{x(B)&&x(h)&&e(Ct)}),o(tt),K(()=>nt=v(tt,1,`app svelte-1n46o8q`,null,nt,{"presentation-mode":x(C)})),E(t,tt),Ee(),c()}var yD=[`auto`,`dark`,`light`],bD=`auto`,xD=`dark`;function SD(e){return typeof e==`string`&&yD.includes(e)}function CD(e){return SD(e)?e:bD}function wD(e,t){return e===`dark`||e===`light`?e:t===void 0?xD:t?`dark`:`light`}function TD(e){return e===`light`?`vs`:`vs-dark`}var ED=`cascade-user-settings`,DD=12,OD=10,kD=24;function AD(e){return typeof e==`number`&&Number.isFinite(e)?Math.min(kD,Math.max(OD,Math.round(e))):DD}function jD(e){let t=e&&typeof e==`object`?e:{};return{appearance:{theme:CD(t.appearance?.theme)},editor:{fontSize:AD(t.editor?.fontSize)}}}function MD(){try{let e=localStorage.getItem(ED);return jD(e?JSON.parse(e):void 0)}catch(e){return console.warn(`Failed to load settings:`,e),jD(void 0)}}function ND(e){try{localStorage.setItem(ED,JSON.stringify(jD(e)))}catch(e){console.warn(`Failed to save settings:`,e)}}var PD=w(MD());PD.subscribe(ND);function FD(e){PD.set(jD(e))}var ID=w(xD),LD=De(ID),RD=`(prefers-color-scheme: dark)`;function zD(e,t){e.setAttribute(`data-theme`,t)}function BD(){return typeof window>`u`||typeof window.matchMedia!=`function`?null:window.matchMedia(RD)}function VD(e,t){return typeof e.addEventListener==`function`?(e.addEventListener(`change`,t),()=>e.removeEventListener?.(`change`,t)):typeof e.addListener==`function`?(e.addListener(t),()=>e.removeListener?.(t)):()=>{}}function HD(e={}){let t=e.root??(typeof document>`u`?void 0:document.documentElement),n=e.query===void 0?BD():e.query,r=e.preferences??{subscribe:e=>PD.subscribe(t=>e(t.appearance.theme))},i=`auto`,a=()=>{let e=wD(i,n?n.matches:void 0);ID.set(e),t&&zD(t,e)},o=r.subscribe(e=>{i=e,a()}),s=n?VD(n,a):()=>{};return()=>{s(),o()}}var UD=!1;async function WD(){UD||=(await Promise.all([od(()=>import(`./core-JsyKMO1k.js`),__vite__mapDeps([14,15])),od(()=>import(`./geo-BAR6lQp5.js`),[]),od(()=>import(`./image-i1j6nWKe.js`),__vite__mapDeps([16,15]))]),!0)}async function GD(){HD(),await WD(),n(vD,{target:document.getElementById(`app`)})}GD();export{zc as A,qa as B,Ju as C,Gl as D,Ul as E,Mo as F,ga as H,go as I,ao as L,Is as M,As as N,ul as O,Io as P,ro as R,od as S,Tu as T,ja as V,tg as _,TD as a,_f as b,eC as c,Gb as d,Ug as f,ug as g,pg as h,yD as i,Ic as j,ll as k,XS as l,Fg as m,FD as n,sT as o,Ig as p,PD as r,vw as s,LD as t,Wb as u,ng as v,wu as w,hf as x,Nf as y,$a as z};
|