1import{aM as R,aR as U,a6 as d,a3 as G,G as C,M as H,D as W}from"./BNlnY7xE.js";const b={mode:"menubar",debug:!1,transition:{content:{default:"",nested:"magic-menu-content--fade"},channel:"magic-menu-channel"}},j=U("MagicMenu",()=>[]);function k(u){const l=j();let i=!1;function v(c){const o={id:c,refCount:0,options:{...b},views:[],active:!1,input:{type:"pointer",disabled:[],view:void 0}};return C(o)}function p(c){const o=v(c);return l.value=[...l.value,o],o}function g(){const c=d(u);l.value=l.value.filter(o=>o.id!==c)}function w(c){const o=d(u);let a=l.value.find(s=>s.id===o);if(a||(a=p(o)),i||(a.refCount++,i=!0),c){const s=G(c,b);a.options=s}return a}return R(()=>{if(!i)return;const c=d(u),o=l.value.find(a=>a.id===c);o&&(o.refCount--,o.refCount<=0&&g())},!0),{initializeState:w,menuStateStore:l}}function m(u){return u instanceof DOMException&&u.name==="AbortError"}function B(u){const{initializeState:l}=k(u),i=l(),{logWarning:v}=H({prefix:"MagicMenu",source:"useMenuView"}),p=d(u),g=W(()=>{const t=i.views.filter(e=>e.active);if(t.length!==0)return t.length===1?t[0]:t.reduce((e,n)=>e.parent.views.length>=n.parent.views.length?e:n)}),w=new Map;function c(t){const{id:e,parent:n,placement:r}=t;n.views.length===0&&n.views.push(p);const f=C({id:e,parent:n,active:!1,items:[],channels:[],placement:r,state:{selectAbortController:new AbortController,unselectAbortController:new AbortController}});return w.set(e,f),f}function o(t){const e=c(t);return i.views.push(e),e}function a(t,e){return new Promise((n,r)=>{const f=setTimeout(n,t),N=()=>{clearTimeout(f),r(new DOMException("Aborted","AbortError"))};e.addEventListener("abort",N,{once:!0})})}function s(t){let e=w.get(t);return e||(e=i.views.find(n=>n.id===t),e&&w.set(t,e)),e}function h(t){const e=i.views.findIndex(n=>n.id===t);e!==-1&&(i.views.splice(e,1),w.delete(t))}function A(t){const e=s(t);if(!e)return-1;const n=e.parent.views.length;return i.views.findIndex(r=>r.parent.views.length===n&&r.id===t)}function S(t){const e=i.views.findIndex(n=>n.id===t);return e!==-1?i.views[e+1]:void 0}function x(t){const e=i.views.findIndex(n=>n.id===t);return e>0?i.views[e-1]:void 0}function M(){return i.views.find(t=>t.active&&!t.parent.item)}function I(t){return i.views.find(e=>e.parent.item===t)}function E(t){const e=s(t);if(!e)return;const n=e.parent.views[e.parent.views.length-1];return n?s(n):void 0}function y(t){const e=s(t);if(!e)return[];const n=new Set(e.parent.views);return i.views.filter(r=>r.id!==t&&!n.has(r.id))}function D(t){const e=s(t);if(!e)return[];const n=new Set(e.parent.views);return i.views.filter(r=>r.id!==t&&!n.has(r.id))}async function O(t,e=0){const n=s(t);if(!n)return;n.state.unselectAbortController&&n.state.unselectAbortController.abort();const r=new AbortController;n.state.selectAbortController=r;try{e>0&&await a(e,r.signal),n.active=!0,V(t)}catch(f){m(f)&&i.options.debug&&v("selectView() was interrupted by a call to unselectView()")}}async function z(t,e=0){const n=s(t);if(!n)return;n.state.selectAbortController&&n.state.selectAbortController.abort();const r=new AbortController;n.state.unselectAbortController=r;try{e>0&&await a(e,r.signal),n.active=!1}catch(f){m(f)&&i.options.debug&&v("unselectView() was interrupted by a call to selectView()")}}function V(t){const e=y(t);for(const n of e)n.active=!1}function L(t){const e=D(t);for(const n of e)n.active=!1}function P(){for(const t of i.views)t.active=!1}function T(t){const{id:e}=t;return s(e)??o(t)}return{currentView:g,initializeView:T,deleteView:h,getView:s,getRelativeViewIndex:A,getNextView:S,getPreviousView:x,getTopLevelView:M,getNestedView:I,getParentView:E,selectView:O,unselectView:z,unselectUnrelatedViews:V,unselectDescendingViews:L,unselectAllViews:P}}export{k as a,B as u};
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.