@vuu-ui/vuu-popups 0.8.9 → 0.8.10-debug
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/cjs/index.js +1853 -33
- package/cjs/index.js.map +4 -4
- package/esm/index.js +1842 -33
- package/esm/index.js.map +4 -4
- package/index.css +370 -1
- package/index.css.map +3 -3
- package/package.json +7 -3
- package/LICENSE +0 -201
package/cjs/index.js
CHANGED
|
@@ -1,34 +1,1854 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
`,document.body.insertBefore(e,o)}}var ta=class{constructor(){this.currentPath=null;this.tabMode=null;_P()}prepare(e,t="full-view"){document.body.classList.add("drawing"),this.currentPath=null,this.tabMode=t;let n=this.getPoints(0,0,0,0),r=cy(n),s=document.getElementById("vuu-drop-outline");s==null||s.setAttribute("d",r),this.currentPath=r}clear(){ea=null,Gu(),document.body.classList.remove("drawing"),De.hidePopup()}get hoverDropTarget(){return ea}getPoints(e,t,n,r,s=0,i=0,l=0){let a=this.tabMode==="tab-only";if(i===0)return[[e,t+l],[e,t+l],[e,t],[e+i,t],[e+i,t],[e+n,t],[e+n,t+r],[e,t+r]];if(a){let u=s;return[[u,t],[u,t],[u+i,t],[u+i,t],[u+i,t+l],[u+i,t+l],[u,t+l],[u,t+l]]}else return s===0?[[e,t+l],[e,t+l],[e,t],[e+i,t],[e+i,t+l],[e+n,t+l],[e+n,t+r],[e,t+r]]:[[e,t+l],[e+s,t+l],[e+s,t],[e+s,t],[e+s,t+l],[e+n,t+l],[e+n,t+r],[e,t+r]]}draw(e,t){let r=vf;if(ea!==null)this.drawTarget(ea);else if(vf=e.nextDropTarget!=null,e.pos.tab?KP(e):Gn&&Gu(),this.drawTarget(e,t),vf){let[s,i,l]=ay(e);{let a=(0,fy.jsx)(uy,{dropTarget:e,onHover:BP,orientation:l});De.showPopup({left:s,top:i,component:a})}}else De.hidePopup()}drawTarget(e,t){let r=e.getTargetDropOutline(6,t);if(r){let{l:s,t:i,r:l,b:a,tabLeft:u,tabWidth:c,tabHeight:d,guideLines:p}=r,f=l-s,h=a-i;if(this.currentPath){let v=document.getElementById("vuu-drop-outline");v==null||v.setAttribute("d",this.currentPath)}let g=this.getPoints(s,i,f,h,u,c,d),m=cy(g),y=document.getElementById("hw-drop-outline-animate");y==null||y.setAttribute("to",m),y==null||y.beginElement(),this.currentPath=m;let w=document.getElementById("hw-drop-guides");w==null||w.setAttribute("d",WP(p))}}},dy="transition:margin-left .4s ease-out;margin-left: 63px",py="transition:margin-left .4s ease-out;margin-left: 0px";function KP(o){var l,a;let{AFTER:e,BEFORE:t}=bf,{clientRect:{Stack:n},pos:{tab:r}}=o,{id:s}=o.component.props,i=null;if(n&&r&&r.positionRelativeToTab!==e){let u=r.positionRelativeToTab===t?1:2,c=`:scope .hwTabstrip > .hwTabstrip-inner > .hwTab:nth-child(${r.index+u})`;i=(l=document.getElementById(s))==null?void 0:l.querySelector(c),i?(Gn===null||Gn!==i)&&(i.style.cssText=dy,Gn&&(Gn.style.cssText=py),Gn=i):Gu()}else if((r==null?void 0:r.positionRelativeToTab)===t){if(Gn===null){let u=".vuuHeader-title";i=(a=document.getElementById(s))==null?void 0:a.querySelector(u),i.style.cssText=dy,Gn=i}}else Gu()}function Gu(){Gn&&(Gn.style.cssText=py,Gn=null)}var u4=new ta;var my=B(require("classnames")),gy=require("react");var yy=require("react/jsx-runtime"),oa=(0,gy.forwardRef)(function({children:e,className:t,dropTarget:n,resizeable:r,...s},i){let l=(0,my.default)("DraggableLayout",t);return(0,yy.jsx)("div",{className:l,ref:i,...s,children:e})}),by="DraggableLayout";oa.displayName=by;je(by,oa,"container");var Ay=require("@salt-ds/core"),Oy=B(require("classnames")),Ny=require("react");var Iy=require("@vuu-ui/vuu-utils"),Je=B(require("react"));var vy=B(require("classnames"));var Cy=require("react/jsx-runtime"),xy="vuuPlaceholder",qu=({className:o,closeable:e,flexFill:t,resizeable:n,shim:r,...s})=>(0,Cy.jsx)("div",{className:(0,vy.default)(xy,o,{[`${xy}-shim`]:r}),...s,"data-placeholder":!0,"data-resizeable":!0});qu.displayName="Placeholder";je("Placeholder",qu);var Sy=B(require("classnames")),Ht=B(require("react"));var Cf=require("react/jsx-runtime"),ju="vuuSplitter",wy=Ht.default.memo(function({column:e,index:t,onDrag:n,onDragEnd:r,onDragStart:s,style:i}){let l=(0,Ht.useRef)(),a=(0,Ht.useRef)(null),u=(0,Ht.useRef)(0),[c,d]=(0,Ht.useState)(!1),p=(0,Ht.useCallback)(({key:b,shiftKey:C})=>{let M=C?10:1;e&&b==="ArrowDown"?n(t,M):e&&b==="ArrowUp"||!e&&b==="ArrowLeft"?n(t,-M):!e&&b==="ArrowRight"&&n(t,M)},[e,t,n]),f=(0,Ht.useCallback)(b=>{let{key:C}=b;(e&&(C==="ArrowUp"||C==="ArrowDown")||!e&&(C==="ArrowLeft"||C==="ArrowRight"))&&(s(t),p(b),h.current=p)},[e,p,t,s]),h=(0,Ht.useRef)(f),g=b=>h.current(b),m=(0,Ht.useCallback)(b=>{l.current=!0;let C=b[e?"clientY":"clientX"],M=C-u.current;C&&C!==u.current&&n(t,M),u.current=C},[e,t,n]),y=(0,Ht.useCallback)(()=>{var b;window.removeEventListener("mousemove",m,!1),window.removeEventListener("mouseup",y,!1),r(),d(!1),(b=a.current)==null||b.focus()},[m,r,d]),w=(0,Ht.useCallback)(b=>{u.current=e?b.clientY:b.clientX,s(t),window.addEventListener("mousemove",m,!1),window.addEventListener("mouseup",y,!1),b.preventDefault(),d(!0)},[e,m,y,t,s,d]),v=()=>{var b;l.current?l.current=!1:(b=a.current)==null||b.focus()},x=()=>{h.current=f},S=(0,Sy.default)(ju,{[`${ju}-active`]:c,[`${ju}-column`]:e});return(0,Cf.jsx)("div",{className:S,"data-splitter":!0,ref:a,role:"separator",style:i,onBlur:x,onClick:v,onKeyDown:g,onMouseDown:w,tabIndex:0,children:(0,Cf.jsx)("div",{className:`${ju}-grab-zone`})})});var UP=require("@vuu-ui/vuu-utils"),GP=B(require("react"));var Ey={},Ty="auto";var hi=o=>{let{style:{width:e=Ty,height:t=Ty}=Ey}=o.props,n=typeof t=="number",r=typeof e=="number";return n&&r?{height:t,width:e}:n?{height:t}:r?{width:e}:void 0};function My(o){let{style:{flex:e,flexGrow:t,flexShrink:n,flexBasis:r}=Ey}=o.props;return typeof e=="number"||r===0&&t===1&&n===1?!0:typeof r!="number"}var qP={},ra=1,sa=2,jP=o=>typeof o.intrinsicSize=="number",QP=(o,e)=>{let t={};return o.forEach(n=>{t[n]=uo(e,n)}),t},Qu=(o,e,t)=>o.map((n,r)=>{var a;let s=uo(n,"resizeable"),{[e]:i}=(a=hi(n))!=null?a:qP,l=My(n);return t?{index:r,flexOpen:l,intrinsicSize:i,resizeable:s,...QP(t,n)}:{index:r,flexOpen:l,intrinsicSize:i,resizeable:s}}),Ry=o=>{let e=o.length,t=o.every(jP),n=Array(e).fill(0);if(t&&e>0&&(n[0]=sa,n[e-1]=sa),e<2)return n;for(let r=0,s=0;r<e-1;r++)o[r].resizeable&&!s&&(s=ra),n[r]+=s;for(let r=e-1;r>0&&(n[r]&ra&&(n[r]-=ra),!o[r].resizeable);r--);return n},Dy=(o,e)=>{let t=XP(o,e),n=YP(o,e),r=t!==-1&&n!==-1?[t,n]:void 0,s=JP(o,r);return[r,s]};function JP(o,e){if(e){let t=[];for(let n=0;n<o.length;n++)o[n].flexOpen&&!e.includes(n)&&t.push(n);return t}}function XP(o,e){let t=e,n=!1;for(;t>=1&&!n;)t=t-1,n=Py(o,t);return t}function YP(o,e){let t=e,n=!1,r=o.length;for(;t<r-1&&!n;)t=t+1,n=Py(o,t);return t===r?-1:t}function Py(o,e){let{placeholder:t,splitter:n,resizeable:r,intrinsicSize:s}=o[e];return!!(!n&&!s&&(t||r))}var ZP=o=>!o.splitter&&!o.placeholder,Ly=({children:o,onSplitterMoved:e,style:t})=>{let n=(0,Je.useRef)(null),r=(0,Je.useRef)(),s=(0,Je.useRef)(),i=(0,Je.useRef)([]),[,l]=(0,Je.useState)({}),a=m=>{s.current=m,l({})},u=(t==null?void 0:t.flexDirection)==="column",c=u?"height":"width",d=(0,Je.useMemo)(()=>Array.isArray(o)?o:Je.default.isValidElement(o)?[o]:[],[o]),p=(0,Je.useCallback)(m=>{let{current:y}=r;if(y){let[w,v]=Dy(y,m);w&&(w.forEach(x=>{var b;let S=(b=n.current)==null?void 0:b.childNodes[x];if(S){let{size:C,minSize:M}=ok(S,c);y[x].currentSize=C,y[x].minSize=M}}),v&&v.forEach(x=>{var b;let S=(b=n.current)==null?void 0:b.childNodes[x];if(S){let{[c]:C}=S.getBoundingClientRect();y[x].flexBasis=C}}))}},[c]),f=(0,Je.useCallback)((m,y)=>{s.current&&r.current&&a(tk(s.current,r.current,y,c))},[c]),h=(0,Je.useCallback)(()=>{let m=r.current;m&&(e==null||e(m.filter(ZP))),m==null||m.forEach(y=>{y.currentSize=void 0,y.flexBasis=void 0,y.flexOpen=!1})},[e]),g=(0,Je.useCallback)(m=>Je.default.createElement(wy,{column:u,index:m,key:`splitter-${m}`,onDrag:f,onDragEnd:h,onDragStart:p}),[f,h,p,u]);return(0,Je.useMemo)(()=>{let[m,y]=ek(d,c,g,i.current);r.current=y,s.current=m},[d,g,c]),{content:s.current||[],rootRef:n}};function ek(o,e,t,n){let r=Qu(o,e),s=Ry(r),i=[],l=[];for(let a=0;a<o.length;a++){let u=o[a];if(a===0&&s[a]&sa&&(i.push(ky(a)),l.push({placeholder:!0,shim:!0})),u.key==null){let c=n[a]||(n[a]=(0,Iy.getUniqueId)());i.push(Je.default.cloneElement(u,{key:c}))}else i.push(u);l.push(r[a]),a>0&&s[a]&sa?(i.push(ky(a)),l.push({placeholder:!0})):s[a]&ra&&(i.push(t(i.length)),l.push({splitter:!0}))}return[i,l]}function tk(o,e,t,n){return nk(e,t)?o.map((s,i)=>{let l=e[i],{currentSize:a,flexOpen:u,flexBasis:c}=l,d=a!==void 0;if(d||u){let{flexBasis:p}=s.props.style||{},f=d?l.currentSize:c;return f!==p?Je.default.cloneElement(s,{style:{...s.props.style,flexBasis:f,[n]:"auto"}}):s}else return s}):o}function nk(o,e){let t=[];o.forEach((c,d)=>{c.currentSize!==void 0&&t.push(d)});let n=e<0?t[0]:t[1],{currentSize:r=0,minSize:s=0}=o[n];if(r===s)return!1;if(Math.abs(e)>r-s){let c=e<0?-1:1;e=Math.max(0,r-s)*c}let i=o[t[0]],{currentSize:l=0}=i;i.currentSize=l+e;let a=o[t[1]],{currentSize:u=0}=a;return a.currentSize=u-e,!0}function ky(o){return Je.default.createElement(qu,{shim:o===0,key:`placeholder-${o}`})}function ok(o,e){let{[e]:t}=o.getBoundingClientRect(),r=getComputedStyle(o).getPropertyValue(`min-${e}`),s=r.endsWith("px")?parseInt(r,10):0;return{size:t,minSize:s}}var Fy=require("react/jsx-runtime"),wf="hwFlexbox",Hy=(0,Ny.forwardRef)(function(e,t){let{breakPoints:n,children:r,column:s,className:i,flexFill:l,gap:a,fullPage:u,id:c,onSplitterMoved:d,resizeable:p,row:f,spacing:h,splitterSize:g,style:m,...y}=e,{content:w,rootRef:v}=Ly({children:r,onSplitterMoved:d,style:m}),x=(0,Oy.default)(wf,i,{[`${wf}-column`]:s,[`${wf}-row`]:f,"flex-fill":l,"full-page":u});return(0,Fy.jsx)("div",{...y,className:x,"data-resizeable":p||void 0,id:c,ref:(0,Ay.useForkRef)(v,t),style:{...m,gap:a,"--spacing":h},children:w})});Hy.displayName="Flexbox";var ia=Hy;var _y=require("react");var la={ADD:"add",BLUR:"blur",BLUR_SPLITTER:"blur-splitter",DRAG_START:"drag-start",DRAG_STARTED:"drag-started",DRAG_DROP:"drag-drop",FOCUS:"focus",FOCUS_SPLITTER:"focus-splitter",INITIALIZE:"initialize",LAYOUT_RESIZE:"layout-resize",MAXIMIZE:"maximize",MINIMIZE:"minimize",REMOVE:"remove",REPLACE:"replace",RESTORE:"restore",SAVE:"save",SET_TITLE:"set-title",SPLITTER_RESIZE:"splitter-resize",SWITCH_TAB:"switch-tab",TEAR_OUT:"tear-out"};var os=require("react");var bk=B(require("react"));var ik=require("@vuu-ui/vuu-utils"),lk=B(require("react"));var rk=require("@vuu-ui/vuu-utils"),Vy=B(require("react"));var ns=require("react"),Sn=new Map,wn=new Map;var mi=()=>{let o=(0,ns.useCallback)((i,l)=>{let a=wn.get(i);if(a)return l!==void 0&&a[l]!==void 0?a[l]:l!==void 0?void 0:a},[]),e=(0,ns.useCallback)((i,l,a)=>{if(l===void 0)wn.set(i,a);else if(wn.has(i)){let u=wn.get(i);wn.set(i,{...u,[l]:a})}else wn.set(i,{[l]:a})},[]),t=(0,ns.useCallback)((i,l)=>{if(wn.has(i)){if(l===void 0)wn.delete(i);else if(wn.get(i)[l]){let{[l]:u,...c}=wn.get(i);Object.keys(c).length>0?wn.set(i,c):wn.delete(i)}}},[]),n=(0,ns.useCallback)((i,l)=>{let a=Sn.get(i);if(a)return l!==void 0?a[l]:a},[]),r=(0,ns.useCallback)((i,l,a)=>{if(l===void 0)Sn.set(i,a);else if(Sn.has(i)){let u=Sn.get(i);Sn.set(i,{...u,[l]:a})}else Sn.set(i,{[l]:a})},[]),s=(0,ns.useCallback)((i,l)=>{if(Sn.has(i)){if(l===void 0)Sn.delete(i);else if(Sn.get(i)[l]){let{[l]:u,...c}=Sn.get(i);Object.keys(c).length>0?Sn.set(i,c):Sn.delete(i)}}},[]);return{loadSessionState:o,loadState:n,saveSessionState:e,saveState:r,purgeState:s,purgeSessionState:t}};var ck=require("react");var uk=B(require("react"));var pk=B(require("react"));var fk=B(require("react"));var hk=require("@vuu-ui/vuu-utils"),mk=B(require("react"));var zy=require("react"),yk=o=>console.log(`dispatch ${o.type}, have you forgotten to provide a LayoutProvider ?`),Mf=(0,zy.createContext)({dispatchLayoutProvider:yk,version:-1});var $y=require("react");var vk=require("react/jsx-runtime");var qt=()=>{let{dispatchLayoutProvider:o}=(0,os.useContext)(Mf);return o},Wy=()=>{let{createNewChild:o}=(0,os.useContext)(Mf);return o};var Uy=require("react/jsx-runtime"),Ky=function(e){let{path:t}=e,n=qt(),r=(0,_y.useCallback)(s=>{n({type:la.SPLITTER_RESIZE,path:t,sizes:s})},[n,t]);return(0,Uy.jsx)(ia,{...e,onSplitterMoved:r})};Ky.displayName="Flexbox";je("Flexbox",Ky,"container");var Zy=require("@salt-ds/core"),ex=B(require("classnames")),Yu=require("react");var qn=require("react");var ss=require("react"),qy=["height","width"];var rs=new WeakMap,jy=(o,e,t)=>{switch(t){case"height":return e.height;case"scrollHeight":return o.scrollHeight;case"scrollWidth":return o.scrollWidth;case"width":return e.width;default:return 0}},Gy=new ResizeObserver(o=>{for(let e of o){let{target:t,contentRect:n}=e,r=rs.get(t);if(r){let{onResize:s,measurements:i}=r,l=!1;for(let[a,u]of Object.entries(i)){let c=jy(t,n,a);c!==u&&(l=!0,i[a]=c)}l&&s&&s(i)}}});function Ju(o,e,t,n=!1){let r=(0,ss.useRef)(e),s=(0,ss.useCallback)(i=>{let l=i.getBoundingClientRect();return r.current.reduce((a,u)=>(a[u]=jy(i,l,u),a),{})},[]);(0,ss.useLayoutEffect)(()=>{let i=o.current,l=!1;async function a(){rs.set(i,{measurements:{}}),l=!1;let{fonts:u}=document;if(u&&await u.ready,!l){let c=rs.get(i);if(c){let d=s(i);c.measurements=d,Gy.observe(i),n&&t(d)}}}if(i){if(rs.has(i))throw Error("useResizeObserver attemping to observe same element twice");a()}return()=>{i&&rs.has(i)&&(Gy.unobserve(i),rs.delete(i),l=!0)}},[o,s,n,t]),(0,ss.useLayoutEffect)(()=>{let i=o.current,l=rs.get(i);if(l){if(r.current!==e){r.current=e;let a=s(i);l.measurements=a}l.onResize=t}},[e,s,o,t])}function Ck(o,e){let t=document.body.querySelector(`.${o}`),n={get:function(r,s){let i=r.getPropertyValue(`--${o}-breakpoint-${s}`);return i?parseInt(i):void 0}};return t?new Proxy(getComputedStyle(t),n):e!=null?e:{}}var Sk=([,o],[,e])=>e-o,Df=o=>Object.entries(o).sort(Sk).map(([e,t],n,r)=>[e,t,n<r.length-1?r[n+1][1]:9999]),Rf=null,wk=(o="salt")=>{let{xs:e,sm:t,md:n,lg:r,xl:s}=Ck(o);return Df({xs:e,sm:t,md:n,lg:r,xl:s})},Qy=o=>(Rf===null&&(Rf=wk(o)),Rf);var Tk=[],Jy=({breakPoints:o,smallerThan:e},t)=>{let[n,r]=(0,qn.useState)(e?!1:"lg"),s=(0,qn.useRef)(document.body),i=(0,qn.useRef)(o?Df(o):Qy()),l=(0,qn.useRef)("lg"),a=(0,qn.useCallback)(c=>{if(i.current){for(let[d,p]of i.current)if(c>=p)return d}},[i]),u=(0,qn.useCallback)(c=>{if(e){let d=i.current.find(([p])=>p===e);if(d){let[,,p]=d;return c<p}}else return a(c);return c},[e,a]);return Ju(t||s,i.current?["width"]:Tk,({width:c})=>{let d=u(c);d!==l.current&&(l.current=d,r(d))},!0),(0,qn.useEffect)(()=>{let c=t||s;if(c.current){let d=l.current;if(i.current){let{clientWidth:p}=c.current,f=u(p);l.current=f,f!==d&&r(f)}}},[r,u,t]),n};var Ek="data-collapsible",V3={[Ek]:!0,"data-pad-start":!0,"data-pad-end":!0};var Xy=require("@vuu-ui/vuu-utils"),ln=require("react");var Mk=["xs","sm","md","lg","xl"],Rk=12,Yy=({children:o,cols:e,style:t})=>{let n=(0,ln.useRef)(null),r=(0,ln.useRef)(null),s=(0,ln.useRef)(),i=e!=null?e:Rk,a=(t==null?void 0:t.flexDirection)==="column"?"height":"width",u=(0,ln.useMemo)(()=>Array.isArray(o)?o:(0,ln.isValidElement)(o)?[o]:[],[o]),c=(0,ln.useCallback)((d,p)=>{let f=Qu(d,p,Mk),h=[],g=[];for(let m=0;m<d.length;m++){let y=d[m],{style:{flex:w,...v}}=y.props;h.push((0,ln.cloneElement)(y,{key:(0,Xy.getUniqueId)(),style:{...v,"--parent-col-count":i}})),g.push(f[m])}return[h,g]},[i]);return(0,ln.useMemo)(()=>{let[d,p]=c(u,a);r.current=p,s.current=d},[c,u,a]),{cols:i,content:s.current,rootRef:n}};var tx=require("react/jsx-runtime"),Xu="hwFluidGrid",Pf=(0,Yu.forwardRef)(function(e,t){let{breakPoints:n,children:r,column:s,cols:i=12,className:l,flexFill:a,gap:u=3,fullPage:c,id:d,onSplitterMoved:p,resizeable:f,row:h,showGrid:g,spacing:m,splitterSize:y,style:w,...v}=e,x=(0,Yu.useMemo)(()=>Zr(r),[r]),{cols:S,content:b,rootRef:C}=Yy({children:x,cols:i,style:w}),M=Jy({breakPoints:n},C),D=(0,ex.default)(Xu,l,{[`${Xu}-column`]:s,[`${Xu}-row`]:h,[`${Xu}-show-grid`]:g,"flex-fill":a,"full-page":c}),E={...w,"--spacing":m,"--grid-col-count":S,"--grid-gap":u};return(0,tx.jsx)("div",{...v,className:D,"data-breakpoint":M,"data-cols":S,"data-resizeable":f||void 0,id:d,ref:(0,Zy.useForkRef)(C,t),style:E,children:b})});Pf.displayName="FluidGrid";var ox=require("react/jsx-runtime"),nx=function(e){return(0,ox.jsx)(Pf,{...e})};nx.displayName="FluidGrid";je("FluidGrid",nx,"container");var Lv=require("@salt-ds/core"),Ri=require("react");var gi=require("react"),ix=require("react/jsx-runtime"),rx=(0,gi.createContext)(void 0);function Zu({children:o,collectionHook:e,...t}){return(0,ix.jsx)(rx.Provider,{value:e,children:Object.keys(t).length>0?(0,gi.cloneElement)(o,t):o})}function sx(){let o=(0,gi.useContext)(rx);if(o)return o}var Dk=o=>Object.prototype.toString.call(o)==="[object Object]";function Tn(o){return typeof o=="string"?o:Dk(o)?Object.prototype.hasOwnProperty.call(o,"label")?String(o.label):(console.warn(["itemToString: you've likely forgotten to set the label prop on the item object.","You can also provide your own `itemToString` implementation."].join(`
|
|
18
|
-
`)),""):String(o)}var pr=require("react");var ax=["width"],ux=["height"],is=new Map,cx=(o,e,t)=>{switch(t){case"height":return e.height;case"clientHeight":return o.clientHeight;case"clientWidth":return o.clientWidth;case"contentHeight":return e.contentHeight;case"contentWidth":return e.contentWidth;case"scrollHeight":return Math.ceil(o.scrollHeight);case"scrollWidth":return Math.ceil(o.scrollWidth);case"width":return e.width;default:return 0}};var lx=new ResizeObserver(o=>{for(let e of o){let{target:t,borderBoxSize:n,contentBoxSize:r}=e,s=is.get(t);if(s){let[{blockSize:i,inlineSize:l}]=n,[{blockSize:a,inlineSize:u}]=r,{onResize:c,measurements:d}=s,p=!1;for(let[f,h]of Object.entries(d)){let g=cx(t,{height:i,width:l,contentHeight:a,contentWidth:u},f);g!==h&&(p=!0,d[f]=g)}p&&c&&c(d)}}});function Oo(o,e,t,n=!1){let r=(0,pr.useRef)(e),s=o.current,i=(0,pr.useCallback)(l=>{let{width:a,height:u}=l.getBoundingClientRect(),{clientWidth:c,clientHeight:d}=l;return r.current.reduce((p,f)=>(p[f]=cx(l,{width:a,height:u,contentHeight:d,contentWidth:c},f),p),{})},[]);(0,pr.useLayoutEffect)(()=>{async function l(){is.set(s,{measurements:{}}),await document.fonts.ready;let a=is.get(s);if(a){let u=i(s);a.measurements=u,lx.observe(s),n&&t(u)}else console.log("%cuseResizeObserver an target expected to be under observation wa snot found. This warrants investigation","font-weight:bold; color:red;")}return s&&(is.has(s)&&console.log("useResizeObserver attemping to observe same element twice",{target:s}),l()),()=>{s&&is.has(s)&&(lx.unobserve(s),is.delete(s))}},[i,s]),(0,pr.useEffect)(()=>{let l=o.current,a=is.get(l);if(a){if(r.current!==e){r.current=e;let u=i(l);a.measurements=u}a.onResize=t}},[e,i,o,t])}var kf=o=>o==="none";var fr=o=>Array.isArray(o)?o.length>0:o!=null,dx=o=>Array.isArray(o)?o[0]:o;var Te=require("react");var bi=require("react");var px=o=>null;var fx=o=>null;var If=(o,e)=>o!==null&&Object.prototype.hasOwnProperty.call(o,e),Lf=o=>If(o,"header"),hx=o=>If(o,"childNodes"),aa=(o,e)=>o&&Object.prototype.hasOwnProperty.call(o.props,e),mx=o=>{if((0,bi.isValidElement)(o)){if(aa(o,"disabled"))return o.props.disabled===!0}else if(If(o,"disabled"))return o.disabled===!0;return!1},gx=o=>(0,bi.isValidElement)(o)&&aa(o,"focusable")?o.props.focusable:!0,bx=(o,e,t)=>{if(o.childNodes)return o.childNodes.length;if(o.header){let n=t+1,r=0;for(;n<e.length&&!e[n].header;)r++,n++;return r}else return 0},Pk=o=>{if(typeof o.props.children=="string")return o.props.children;if(o.props.title)return o.props.title;if(o.props.label)return o.props.label},yx=o=>o.type===fx||aa(o,"data-header"),xx=o=>o.type===px||aa(o,"data-group"),kk=o=>aa(o,"selectable")?o.props.selectable===!0:!xx(o)&&!yx(o),Ik=o=>{if(xx(o)){let{props:{children:e}}=o;if(typeof e!="string")return Of(e)}},Lk=(o,e)=>{let t=[];return bi.Children.forEach(o,n=>{(0,bi.isValidElement)(n)&&t.push(e(n))}),t},Af=(o,e)=>{if(Array.isArray(o))return o.length===0&&(e!=null&&e.noChildrenLabel)?[{label:e.noChildrenLabel,value:null}]:o.map((t,n)=>{var r,s;return{childNodes:Af(t.childNodes,e),description:t.description,expanded:t.expanded,value:t,label:(s=(r=e==null?void 0:e.itemToString)==null?void 0:r.call(e,t))!=null?s:Tn(t)}});if(o)throw Error("list-child-items expects source to be an array")},Of=o=>{if(o)return Lk(o,e=>{let{"data-id":t,disabled:n,id:r=t,"data-expanded":s,expanded:i=s}=e.props;return{childNodes:Ik(e),disabled:n,expanded:i,header:yx(e),id:r,label:Pk(e),selectable:kk(e),value:e}})},Ak=new Set(["/","-","."]),Ok=o=>Ak.has(o),vx=(o,e)=>e.startsWith(o)&&Ok(e[o.length]),Nk=new Set([".","/"]);function Hk(o,e){return e.startsWith(o)?Nk.has(e.charAt(o.length)):!1}function ec(o,e,t){let n;return o.map(s=>s.id===e?{...s,...t}:Hk(s.id,e)&&s.childNodes?(n=ec(s.childNodes,e,t),{...s,childNodes:n}):s)}var Fk=/[.*+?^${}()|[\]\\]/g;function tc(o){return o.replace(Fk,"\\$&")}var ua=(o,e)=>Object.keys(o).reduce((n,r)=>{let s=o[r],i=e[r];return typeof s=="function"&&typeof i=="function"&&(n[r]=(...l)=>{s(...l),i(...l)}),n},{...e});var Vk=o=>o&&o.replace(/^\s+/g,""),Nf=o=>new RegExp(`(${tc(Vk(o))})`,"gi"),Cx=(o="",e=Nf)=>(t="")=>!!t.length&&!!o.length&&t.match(e(o))!==null;function nc(o,e){return Array.isArray(o)?o.includes(e.id):o===e.id}var En=require("react");function oc({controlled:o,default:e,name:t,state:n="value"}){let{current:r}=(0,En.useRef)(o!==void 0),[s,i]=(0,En.useState)(e),l=o!==void 0?o:s,{current:a}=(0,En.useRef)(e);(0,En.useEffect)(()=>{},[n,t,o]),(0,En.useEffect)(()=>{},[JSON.stringify(e,Bk)]);let u=(0,En.useCallback)(c=>{r||i(c)},[r]);return[l,u,r]}function Bk(o,e){return(0,En.isValidElement)(e)?null:e}var zk={},hr=({children:o,id:e,options:t=zk,source:n})=>{var A;let{getItemId:r}=t,[,s]=(0,Te.useState)(null),i=sx(),l=(0,Te.useRef)([]),a=(0,Te.useRef)([]),u=(0,Te.useMemo)(()=>[],[]),c=(0,Te.useRef)((A=t.filterPattern)!=null?A:""),{getFilterRegex:d=Nf,noChildrenLabel:p,itemToString:f=Tn}=t,h=(0,Te.useCallback)(()=>t.defaultExpanded||!1,[t.defaultExpanded]),g=(0,Te.useCallback)((k,I,F=1,H="",z=[],W=[],q=[])=>(k.forEach((j,J,G)=>{var gt,Be;let Y=j.header&&t.collapsibleHeaders,fe=j.childNodes&&t.collapsibleHeaders===!1,ue=!j.childNodes||j.childNodes.length===0,Ue=fe||ue&&!Y,we=H?`${H}.${J}`:`item-${J}`,ze=(gt=j.id)!=null?gt:r?r(J):`${e}-${we}`,ke=Ue?void 0:(Be=j.expanded)!=null?Be:h(),Ve={...j,childNodes:void 0,count:!fe&&ke===void 0?0:bx(j,G,J),description:j.description,disabled:mx(j.value),focusable:gx(j.value)?void 0:!1,id:ze,index:I.value,expanded:ke,level:F};if(z.push(Ve),W.push(Ve),q.push(k[J].value),I.value+=1,j.childNodes){let[dt]=g(j.childNodes,I,F+1,we,[],W,q);Ve.childNodes=dt}}),[z,q,W]),[t.collapsibleHeaders,r,e,h]),m=(0,Te.useCallback)(()=>c.current?Cx(c.current,d):null,[d]),y=(0,Te.useCallback)((k,I=m(),F=[],H={value:0})=>{let z=!1;for(let W of k)z&&!Lf(W)||(W.value!==null&&(I===null||I(f(W.value)))&&(F[H.value]=W,H.value+=1),z=!1,Lf(W)&&W.expanded===!1?z=!0:hx(W)&&W.expanded!==!1&&W.childNodes&&y(W.childNodes,I,F,H));return F},[m,f]),w=(0,Te.useMemo)(()=>i?u:Af(n,{itemToString:f,noChildrenLabel:p})||Of(o)||[],[i,u,n,f,p,o]),[v,x,S]=(0,Te.useMemo)(()=>i?[u,u,u]:g(w,{value:0}),[u,g,i,w]);a.current=S,(0,Te.useMemo)(()=>i?u:l.current=y(v),[u,y,v,i]);let b=(0,Te.useRef)(v),C=(0,Te.useCallback)((k="")=>{typeof k=="string"&&(c.current=k,l.current=y(v),s({}))},[v,y]),M=(0,Te.useCallback)((k,I=v)=>{let F=I.find(H=>{var z;return H.id===k||((z=H==null?void 0:H.childNodes)==null?void 0:z.length)&&vx(H.id,k)});if((F==null?void 0:F.id)===k)return x==null?void 0:x[F.index];if(F)return M(k,F.childNodes);throw Error(`useCollectionData itemById, id ${k} not found `)},[x,v]),D=(0,Te.useCallback)(k=>{let I=a.current.find(F=>(0,Te.isValidElement)(F.value)?F.label===k:F.value===k);if(I)return I;throw Error("useCollectionData toCollectionItem, item not found ")},[]),E=(0,Te.useCallback)(k=>{if(k===null)return null;if(Array.isArray(k)){let I=[];for(let F of k){let H=D(F);I.push(H)}return I}else if(k!==void 0)return D(k)},[D]),O=(0,Te.useCallback)(k=>{if(k===void 0)return;let I=E(k);return Array.isArray(I)?I.map(F=>F.id):I?I.id:null},[E]),T=(0,Te.useCallback)(k=>{let I=F=>{let H=a.current.find(z=>(0,Te.isValidElement)(z.value)?z.label===F:z.value!==null&&f(z.value)===F);if(H)return H};if(k===null)return null;if(Array.isArray(k)){let F=[];for(let H of k){let z=I(H);z&&F.push(z)}return F}else if(k!==void 0)return I(k)},[f]),P=(0,Te.useCallback)(k=>{for(let I of b.current)if(k===I.value)return I.id;throw Error("useCollectionData itemToId, item not found")},[]),L=(0,Te.useCallback)(k=>{b.current=ec(b.current,k.id,{expanded:!1}),l.current=y(b.current),s({})},[y]),N=(0,Te.useCallback)(k=>{b.current=ec(b.current,k.id,{expanded:!0}),l.current=y(b.current),s({})},[y]);return i||{collapseGroupItem:L,data:l.current,expandGroupItem:N,setFilterPattern:C,itemById:M,itemToId:P,toCollectionItem:D,itemToCollectionItem:E,itemToCollectionItemId:O,stringToCollectionItem:T}};var Hf=B(require("classnames")),Tx=require("@salt-ds/core"),No=require("react");var rc=require("@salt-ds/core"),Mn=require("react");var ca=require("react"),$k=[],Sx=({popperRef:o,rootRef:e,isOpen:t,onClose:n})=>{let r=(0,ca.useRef)(t);(0,ca.useEffect)(()=>{r.current=t},[t]),(0,ca.useEffect)(()=>{let[s,i]=t?[l=>{var u,c;let a=l.target;!((u=o.current)!=null&&u.contains(a))&&!((c=e.current)!=null&&c.contains(a))&&n()},l=>{l.key==="Escape"&&r.current&&(n(),l.stopPropagation())}]:$k;return s&&i&&(document.body.addEventListener("mousedown",s,!0),document.body.addEventListener("keydown",i,!0)),()=>{s&&i&&(document.body.removeEventListener("mousedown",s,!0),document.body.removeEventListener("keydown",i,!0))}},[t,n,o,e])};var Wk=[],wx=({defaultIsOpen:o,disabled:e,fullWidth:t,id:n,isOpen:r,onOpenChange:s,onKeyDown:i,openKeys:l=["Enter","ArrowDown"," "],openOnFocus:a,popupComponent:u,popupWidth:c,rootRef:d,width:p})=>{var N;let f=(0,Mn.useRef)(null),h=(0,Mn.useRef)(null),g=(0,Mn.useCallback)(A=>{h.current=A},[]),[m,y]=(0,rc.useControlled)({controlled:r,default:!!o,name:"useDropdown",state:"isOpen"}),[w,v]=(0,Mn.useState)({width:(N=c!=null?c:p)!=null?N:0}),x=(0,Mn.useCallback)(()=>{y(!0),s==null||s(!0)},[s,y]),S=(0,Mn.useCallback)(()=>{y(!1),s==null||s(!1)},[s,y]);Sx({popperRef:h,rootRef:d,isOpen:m,onClose:S});let b=(0,Mn.useCallback)(()=>{e||a&&(y(!0),s==null||s(!0),f.current=window.setTimeout(()=>{f.current=null},1e3))},[e,s,a,y]),C=(0,Mn.useCallback)(A=>{if(["Enter"," "].indexOf(A.key)===-1){let k=!m;y(k),s==null||s(k)}},[m,y,s]),M=(0,Mn.useCallback)(A=>{(A.key==="Tab"||A.key==="Escape")&&m?(A.key==="Escape"&&(A.stopPropagation(),A.preventDefault()),S()):l.includes(A.key)&&!m?(A.preventDefault(),x()):i==null||i(A)},[S,m,i,l,x]),D=t!=null?t:!1;Oo(d,D?ax:Wk,v,D);let O=`${n}-dropdown`,T={"aria-expanded":m,"aria-owns":m?O:void 0,id:`${n}-control`,onClick:e||a?void 0:C,onFocus:b,role:"listbox",onKeyDown:e?void 0:M,style:{width:D?void 0:p}},P={id:O,width:w.width},L=(0,rc.useForkRef)(g,h);return{componentProps:P,popupComponentRef:L,isOpen:m,label:"Dropdown Button",triggerProps:T}};var da=require("react/jsx-runtime"),sc="vuuDropdown",ic=(0,No.forwardRef)(function({"aria-labelledby":e,children:t,className:n,defaultIsOpen:r,disabled:s,fullWidth:i,id:l,isOpen:a,onKeyDown:u,onOpenChange:c,openKeys:d,openOnFocus:p,placement:f="below",popupWidth:h,width:g,...m},y){let w=(0,No.useRef)(null),v=(0,Hf.default)(sc,n,{[`${sc}-fullWidth`]:i,[`${sc}-disabled`]:s}),[x,S]=No.Children.toArray(t),b=He(l),{componentProps:C,isOpen:M,popupComponentRef:D,triggerProps:E}=wx({ariaLabelledBy:e,defaultIsOpen:r,disabled:s,fullWidth:i,id:b,isOpen:a,onOpenChange:c,onKeyDown:u,openKeys:d,openOnFocus:p,popupComponent:S,popupWidth:h,rootRef:w,width:g}),O=()=>{let{id:L,role:N,...A}=E,{id:k=L,role:I=N,...F}=x.props;return(0,No.cloneElement)(x,ua(F,{...A,id:k,role:I}))},T=()=>{let{id:L,width:N,...A}=C,{className:k,id:I=L,width:F,...H}=S.props;return(0,No.cloneElement)(S,{...H,...A,className:(0,Hf.default)(k,`${sc}-popup-component`),id:I,ref:D,width:F!=null?F:N})},P=(0,Tx.useForkRef)(w,y);return(0,da.jsxs)("div",{...m,className:v,id:l,ref:P,children:[O(),M&&(0,da.jsx)(yi,{children:(0,da.jsx)(lc,{anchorElement:w,placement:f,children:T()})})]})});var Ex=require("@salt-ds/core"),Mx=B(require("classnames")),Rx=require("react");var xi=require("react/jsx-runtime"),pa="vuuDropdownButton",Dx=(0,Rx.forwardRef)(function({ariaHideOptionRole:e,className:t,disabled:n,icon:r="chevron-down",isOpen:s,label:i,labelId:l,fullWidth:a,posInSet:u,setSize:c,labelAriaAttributes:d,...p},f){return(0,xi.jsx)(Ex.Button,{className:(0,Mx.default)(pa,{[`${pa}-fullWidth`]:a},t),disabled:n,variant:"secondary",...p,ref:f,children:(0,xi.jsxs)("div",{className:`${pa}-content`,children:[(0,xi.jsx)("span",{"aria-hidden":e?"true":void 0,...d,className:`${pa}-buttonLabel`,id:l,role:"option",children:i}),(0,xi.jsx)("span",{className:`${pa}-buttonIcon`,"data-icon":r,"aria-hidden":"true"})]})})});var Rv=require("@salt-ds/core"),Vo=require("react");function _k(o,...e){let t=new Set(o);for(let n of e)for(let r of n)t.add(r);return t}var fa="ArrowUp",ha="ArrowDown",Px="ArrowLeft",kx="ArrowRight",Ff="Enter";var ac="Home",ma="End",Vf="PageUp",uc="PageDown",Ix=" ",Kk=new Set(["Enter","Delete"," "]),Uk=new Set(["Tab"]),Gk=new Set(["ArrowRight","ArrowLeft"]),Lx=new Set([ac,ma,Vf,uc,ha,fa]),qk=new Set(["F1","F2","F3","F4","F5","F6","F7","F8","F9","F10","F11","F12"]),jk=_k(Kk,Lx,Gk,qk,Uk),cc=o=>jk.has(o.key)?!1:o.key.length===1&&!o.ctrlKey&&!o.metaKey&&!o.altKey,Ax=({key:o})=>Lx.has(o);var Bf=require("react");var Qk={},Jk=o=>Array.isArray(o.childNodes),Xk=o=>!0,Yk=o=>o.closest("[data-toggle],[aria-expanded]").dataset.toggle==="true",Ox=({collapsibleHeaders:o,collectionHook:e,highlightedIdx:t,onToggle:n})=>{let r=(0,Bf.useCallback)(l=>{if(l.key===kx||l.key===Ff){let a=e.data[t];a&&a.expanded===!1&&a.value&&(l.preventDefault(),e.expandGroupItem(a),n==null||n(a.value))}if(l.key===Px||l.key===Ff){let a=e.data[t];a&&a.expanded&&a.value&&(l.preventDefault(),e.collapseGroupItem(a),n==null||n(a.value))}},[e.collapseGroupItem,e.data,e.expandGroupItem,t]),i={onClick:(0,Bf.useCallback)(l=>{console.log(`useCollapsibleGroups idx=${t}`);let a=e.data[t];console.log(l.target,l.currentTarget),a&&Jk(a)&&(!Xk(a)||Yk(l.target))&&(l.stopPropagation(),l.preventDefault(),a.expanded===!1&&a.value?(e.expandGroupItem(a),n==null||n(a.value)):a.expanded===!0&&a.value&&(e.collapseGroupItem(a),n==null||n(a.value)))},[e.collapseGroupItem,e.data,e.expandGroupItem,t]),onKeyDown:r};return o?i:Qk};function Zk(o){if(o){let e=o.dataset.index;if(e)return parseInt(e,10);if(e=o.ariaPosInSet)return parseInt(e,10)-1}return-1}var eI=o=>o.closest("[data-index],[aria-posinset]");var Nx=o=>Zk(eI(o));var dc=require("react"),tI={scrollToIndex:()=>{},scrollToItem:()=>{},scrollTo:()=>{}},pc=({collectionHook:o,forwardedRef:e,scrollableRef:t,scrollIntoView:n})=>{let r=(0,dc.useMemo)(()=>({scrollToIndex:s=>{let i=o.data[s];i&&(n==null||n(i))},scrollToItem:s=>{let i=o.toCollectionItem(s);i&&(n==null||n(i))},scrollTo:s=>{t!=null&&t.current&&(t.current.scrollTop=s)}}),[o,n,t]);(0,dc.useImperativeHandle)(e,()=>t.current?r:tI,[r,t])};var Vx=require("@salt-ds/core"),Ft=require("react");var fc=require("@vuu-ui/vuu-utils"),$f=-2;function Hx(o,e,t){return e===fa||e===ma?t>0?t-1:t:t===null?0:t===o-1?t:t+1}var zf=(o,e)=>{let t=dx(e);return t?o.indexOf(t):-1},nI=(o,e,t,n)=>o===ma?n:o===ac?-1:e!==-1?e:t,oI=(o,e,t,n)=>{let{top:r}=e.getBoundingClientRect(),{scrollTop:s,clientHeight:i,scrollHeight:l}=o,a=t-1,u=Math.min(s+i,l-i);if(u!==s&&n<a){o.scrollTo(0,u);let c=n,d;do c+=1,d=(0,fc.getElementByDataIndex)(o,c,!0).getBoundingClientRect();while(d.top<r&&c<a);return c}},rI=async(o,e,t)=>{let{top:n}=e.getBoundingClientRect(),{scrollTop:r,clientHeight:s}=o,i=Math.max(r-s,0);if(i!==r&&t>0)return o.scrollTo(0,i),new Promise(l=>{requestAnimationFrame(()=>{let a=t,u;do a-=1,u=(0,fc.getElementByDataIndex)(o,a,!0).getBoundingClientRect();while(u.top>n&&a>0);l(a)})})},sI=o=>!o.header&&!o.childNodes,Fx=o=>sI(o)||o.expanded!==void 0,Bx=({containerRef:o,defaultHighlightedIndex:e=-1,disableHighlightOnFocus:t,highlightedIndex:n,indexPositions:r,itemCount:s,onHighlight:i,onKeyboardNavigation:l,restoreLastFocus:a,selected:u,viewportItemCount:c})=>{let d=(0,Ft.useRef)(-1),[,p]=(0,Ft.useState)({}),[f,h,g]=(0,Vx.useControlled)({controlled:n,default:e,name:"UseKeyboardNavigation"}),m=(0,Ft.useCallback)((E,O=!1)=>{i==null||i(E),h(E),O&&(d.current=E)},[i,h]),y=(0,Ft.useCallback)(async(E,O)=>{let T=(0,fc.getElementByDataIndex)(o.current,O,!0),P;if(T){let{current:L}=o;T&&L&&(P=E===uc?oI(L,T,s,O):await rI(L,T,O))}return P!=null?P:O},[o,s]),w=(0,Ft.useCallback)((E=ha,O=E===ha?-1:s)=>{if(s===0)return-1;{let T=zf(r,u),P=nI(E,O,T,s),L=Hx(s,E,P);if(L===0&&E===fa&&!Fx(r[0]))return O;for(;((E===ha||E===ac)&&L<s||(E===fa||E===ma)&&L>0)&&!Fx(r[L]);)L=Hx(s,E,L);return L}},[r,s,u]),v=(0,Ft.useRef)(!1),x=(0,Ft.useRef)(!1),S=E=>x.current=E,b=(0,Ft.useCallback)(()=>{if(x.current)x.current=!1;else if(v.current=!0,r.length===0)m($f);else if(f!==-1)p({});else if(a)if(d.current!==-1)m(d.current);else{let E=zf(r,u);m(E!==-1?E:0)}else if(fr(u)){let E=zf(r,u);m(E)}else t!==!0&&m(w())},[t,f,r,w,a,u,m]),C=(0,Ft.useCallback)(async E=>{let O=E.key===uc||E.key===Vf?await y(E.key,f):w(E.key,f);O!==f&&m(O,!0),l==null||l(E,O)},[f,w,y,l,m]),M=(0,Ft.useCallback)(E=>{s>0&&Ax(E)?(E.preventDefault(),E.stopPropagation(),v.current=!0,C(E)):cc(E)&&(v.current=!0)},[s,C]),D=(0,Ft.useMemo)(()=>({onBlur:E=>{let O=E.target.closest(".vuuList"),T=E.relatedTarget;O&&!(O!=null&&O.contains(T))&&(v.current=!1,h(-1),a||(d.current=-1))},onFocus:b,onKeyDown:M,onMouseDownCapture:()=>{v.current=!1,S(!0)},onMouseMove:()=>{v.current&&(v.current=!1)},onMouseLeave:()=>{v.current=!1,S(!1),m(-1)}}),[b,M,a,h,m]);return{focusVisible:v.current?f:-1,controlledHighlighting:g,highlightedIndex:f,setHighlightedIndex:m,keyboardNavigation:v,containerProps:D,setIgnoreFocus:S}};var jn=require("@vuu-ui/vuu-utils"),an=require("react");var iI={},lI=["Enter"," "];var zx=({containerRef:o,defaultSelected:e,disableSelection:t=!1,highlightedIdx:n,itemQuery:r,onSelect:s,onSelectionChange:i,selected:l,selectionStrategy:a,selectionKeys:u=lI,tabToSelect:c})=>{let d=a==="deselectable",p=a==="multiple",f=a==="extended",h=(0,an.useRef)(-1),g=(0,an.useCallback)(T=>u.includes(T.key),[u]),m=(0,an.useCallback)(()=>p||f?[]:null,[p,f]),[y,w]=oc({controlled:l,default:e!=null?e:m(),name:"UseSelection",state:"selected"}),v=(0,an.useCallback)(T=>Array.isArray(y)?y.includes(T):y===T,[y]),x=(0,an.useCallback)(T=>v(T)?null:T,[v]),S=(0,an.useCallback)(T=>{let P=v(T)?y.filter(L=>L!==T):y.concat(T);return P.sort(),P},[v,y]),b=(0,an.useCallback)((T,P)=>{let L=P?y:[],[N]=y.slice(-1),A=N?(0,jn.getElementDataIndex)(document.getElementById(N)):0,k=Math.min(T,A),I=Math.max(T,A),F=o.current,z=Array.from(F.querySelectorAll(r)).slice(k,I+1).map(q=>q.id),W=[...new Set([...L,...z])];return W.sort(),W},[o,r,y]),C=(0,an.useCallback)((T,P,L,N)=>{let{current:A}=o,{id:k}=(0,jn.getElementByDataIndex)(A,P,!0),I;p?I=S(k):f?N&&!L?I=S(k):L?I=b(P,N):I=[k]:d?I=x(k):I=k,I!==y&&w(I),s==null||s(T,k),I!==y&&i&&i(T,I)},[o,p,f,d,y,s,S,b,x,w,i]),M=(0,an.useCallback)(T=>{let{current:P}=o,L=(0,jn.getElementByDataIndex)(P,n);(0,jn.isSelectableElement)(L)&&(g(T)||c&&T.key==="Tab")&&(T.key!=="Tab"&&T.preventDefault(),C(T,n,!1,T.ctrlKey||T.metaKey),f&&(h.current=n))},[n,o,g,c,C,f]),D=(0,an.useCallback)((T,P)=>{if(f&&T.shiftKey){let{current:L}=o,N=(0,jn.getElementByDataIndex)(L,P);(0,jn.isSelectableElement)(N)&&C(T,P,!0)}},[f,o,C]),E=(0,an.useCallback)(T=>{let{current:P}=o,L=(0,jn.getElementByDataIndex)(P,n);!t&&(0,jn.isSelectableElement)(L)&&(T.preventDefault(),T.stopPropagation(),C(T,n,T.shiftKey,T.ctrlKey||T.metaKey),f&&(h.current=n))},[o,n,t,C,f]);return{listHandlers:kf(a)?iI:{onClick:E,onKeyDown:M,onKeyboardNavigation:D},selected:y,setSelected:w}};var ls=require("react");var $x=({disableTypeToSelect:o,highlightedIdx:e,highlightItemAtIndex:t,typeToNavigate:n,items:r,applyIncrementalSearch:s=!0})=>{let i=(0,ls.useRef)(null),l=(0,ls.useRef)(""),a=(0,ls.useRef)(-1),u=(0,ls.useCallback)(d=>{if(d||!s){let p=new RegExp(`^${l.current}`,"i"),f=r.findIndex(({label:h},g)=>g>a.current&&p.test(h));f===-1&&(f=r.findIndex(({label:h},g)=>g<=a.current&&p.test(h))),f!==-1&&t(f)}else l.current="",i.current=null,a.current=-1},[s,t,r]),c=(0,ls.useCallback)(d=>{let p=a.current!==-1;(cc(d)||p&&d.key===Ix)&&n&&(d.preventDefault(),d.stopPropagation(),(a.current===-1||d.key===l.current)&&(a.current=e),i.current!==null&&(clearTimeout(i.current),i.current=null),d.key!==l.current&&(l.current+=d.key),s&&u(!0),i.current=window.setTimeout(()=>{u()},100))},[n,s,e,u]);return{onKeyDown:o?void 0:c}};var co=require("react");var Ux=require("@salt-ds/core"),Wx=["height"],aI=["height","scrollHeight"],uI=[],_x={containerOnly:[aI,uI],withContent:[Wx,Wx]},cI=o=>o?_x.containerOnly:_x.withContent,Kx={current:null},dI=(o,e)=>{let{transform:t="none"}=getComputedStyle(o);if(t.startsWith("matrix")){let n=t.lastIndexOf(",");return parseInt(t.slice(n+1))}else{let n=o.offsetParent;if(n===e||e===null)return o.offsetTop;{let r=o.offsetTop;for(;n!==null&&n!==e;)r+=n.offsetTop,n=n.offsetParent;return r}}},Gx=({containerRef:o,contentRef:e=Kx,highlightedIdx:t=-1,indexPositions:n,stickyHeaders:r=!1})=>{let s=(0,co.useRef)(!1),i=(0,co.useRef)({height:0,contentHeight:0}),l=(0,co.useCallback)(g=>{s.current=!0,o.current&&(o.current.scrollTop=g),setTimeout(()=>{s.current=!1})},[]),a=(0,co.useCallback)(()=>l(0),[l]),u=(0,co.useCallback)(()=>{l(i.current.contentHeight-i.current.height)},[l]),c=(0,co.useCallback)(g=>{let m=e.current||o.current;if(g.id){let y=document.getElementById(g.id);if(y&&o.current){let{height:w}=i.current,v=y.ariaExpanded&&y.firstChild?y.firstChild:y,x=r?36:0,S=dI(v,m),b=v.offsetHeight,{scrollTop:C}=o.current,M=C+x,D=M+w-x;if(S+b>D||S<M){let E=S+b>D?C+(S+b)-D:S-x;l(E)}}}},[o,e,l,r]);(0,Ux.useIsomorphicLayoutEffect)(()=>{let{height:g,contentHeight:m}=i.current,y=n[t];if(m>g&&y){let[w]=n,[v]=n.slice(-1);y===w?a():y===v?u():c(n[t])}},[t,n,c,u,a]);let d=(0,co.useCallback)(({height:g,scrollHeight:m})=>{typeof g=="number"&&(i.current.height=g),typeof m=="number"&&(i.current.contentHeight=m)},[]),p=(0,co.useCallback)(({height:g})=>{typeof g=="number"&&(i.current.contentHeight=g)},[]),[f,h]=cI(e===Kx);return Oo(o,f,d,!0),Oo(e,h,p,!0),{isScrolling:s,scrollIntoView:c}};var qx=require("@salt-ds/core");var vi=require("react/jsx-runtime"),pI=(0,qx.makePrefixer)("saltHighlighter"),jx=o=>{let{matchPattern:e,text:t=""}=o,n=typeof e=="string"?new RegExp(`(${tc(e)})`,"gi"):e;return n===void 0?(0,vi.jsx)(vi.Fragment,{children:t}):(0,vi.jsx)("span",{children:t.split(n).map((r,s)=>r.match(n)?(0,vi.jsx)("strong",{className:pI("highlight"),children:r},`${s}-${r}`):r)})};var _f=require("react"),Kf=B(require("classnames"));var Jx=B(require("react")),Xx=B(require("classnames"));var Qx="vuuCheckboxIcon",Wf=({checked:o=!1,...e})=>Jx.default.createElement("span",{...e,className:(0,Xx.default)(Qx,{[`${Qx}-checked`]:o})});var as=require("react/jsx-runtime"),ga="vuuListItem",hc=(0,_f.forwardRef)(function({height:e,...t},n){return(0,as.jsx)("div",{...t,"aria-hidden":!0,className:(0,Kf.default)(ga,`${ga}-proxy`),ref:n,style:{height:e}})}),mr=(0,_f.forwardRef)(function({children:e,className:t,disabled:n,tabIndex:r,item:s,itemHeight:i,itemTextHighlightPattern:l,label:a,selectable:u,selected:c,showCheckbox:d,style:p,...f},h){let g=(0,Kf.default)(ga,t,{vuuDisabled:n,[`${ga}-checkbox`]:d}),m=i!==void 0?{...p,height:i}:p;return(0,as.jsxs)("div",{className:g,...f,"aria-disabled":n||void 0,"aria-selected":c||void 0,ref:h,style:m,children:[d&&(0,as.jsx)(Wf,{"aria-hidden":!0,checked:c}),e&&typeof e!="string"?e:l==null?(0,as.jsx)("span",{className:`${ga}-textWrapper`,children:a||e}):(0,as.jsx)(jx,{matchPattern:l,text:a||e})]})});var xv=require("@salt-ds/core"),Cc=B(require("classnames")),Qt=require("react");var bt=require("react");var Ci=require("react");var fI=require("@vuu-ui/vuu-utils"),Yx=require("react");var bI=require("react/jsx-runtime"),hI={isDragSource:!1,isDropTarget:!1,register:()=>{}},mI=()=>console.log("have you forgotten to provide a DragDrop Provider ?"),gI=(0,Ci.createContext)({registerDragDropParty:mI});var Zx=o=>{var i,l;let{dragSources:e,dropTargets:t,onDragOut:n,onEndOfDragOperation:r,registerDragDropParty:s}=(0,Ci.useContext)(gI);if(o){let a=(i=e==null?void 0:e.has(o))!=null?i:!1,u=(l=t==null?void 0:t.has(o))!=null?l:!1;return{isDragSource:a,isDropTarget:u,onDragOut:n,onEndOfDragOperation:r,register:s}}else return hI};var mc=class{constructor(e,t){this.draggableElement=null;this.payload=null;this.setDraggable=e=>{this.draggableElement=e};this.initialDragElement=t,this.mouseOffset=this.getMouseOffset(e,t)}setPayload(e){this.payload=e}getMouseOffset(e,t){let{clientX:n,clientY:r}=e,s=t.getBoundingClientRect();return{x:n-s.left,y:r-s.top}}};var it=require("react");var Qn=require("react");var yI=["left","right"],xI=["top","bottom"],gc=":not(.wrapped)",ev=':not([aria-hidden="true"])',tv=o=>{let e=o.cloneNode(!0);return e.removeAttribute("id"),e.dataset.index="-1",e},vI=(o,e="width",t=!1)=>{let n=e==="width"?"left":"top",{[e]:r,[n]:s}=o.getBoundingClientRect(),{padEnd:i=!1,padStart:l=!1}=o.dataset,a=getComputedStyle(o),[u,c]=e==="width"?yI:xI,d=l&&!t?0:parseInt(a.getPropertyValue(`margin-${u}`),10),p=i&&!t?0:parseInt(a.getPropertyValue(`margin-${c}`),10),f=r;if(parseInt(a.getPropertyValue("flex-shrink"),10)>0){let g=parseInt(a.getPropertyValue("flex-basis"),10);!isNaN(g)&&g>0&&(f=g)}return[s,d+f+p]},CI={horizontal:{CLIENT_POS:"clientX",CLIENT_SIZE:"clientWidth",CONTRA:"top",CONTRA_CLIENT_POS:"clientY",CONTRA_END:"bottom",CONTRA_POS:"y",DIMENSION:"width",END:"right",POS:"x",SCROLL_POS:"scrollLeft",SCROLL_SIZE:"scrollWidth",START:"left"},vertical:{CLIENT_POS:"clientY",CLIENT_SIZE:"clientHeight",CONTRA:"left",CONTRA_CLIENT_POS:"clientX",CONTRA_END:"right",CONTRA_POS:"x",DIMENSION:"height",END:"bottom",POS:"y",SCROLL_POS:"scrollTop",SCROLL_SIZE:"scrollHeight",START:"top"}},jt=o=>CI[o],nv=(o,e)=>{let t=o.find(n=>n.id===e);if(t)return t},ov=(o,e)=>{o.splice(e,1);for(let t=e;t<o.length;t++)o[t].currentIndex-=1},Si=(o,e,t,n,r)=>{let s=[],{DIMENSION:i}=jt(e),l=Array.from(t?o.querySelectorAll(t):o.children),a=l.length,u=typeof(n==null?void 0:n.from)=="number"?n.atEnd?Math.max(0,n.from-1):n.from:0,c=typeof(n==null?void 0:n.to)=="number"?Math.min(n.to+2,a-1):a-1;for(let d=u;d<=c;d++){let p=l[d],[f,h]=vI(p,i),g=d===a-1,m=p.id;s.push({currentIndex:d,id:m,index:d,isDraggedItem:r===m,isLast:g,isOverflowIndicator:p.dataset.index==="overflow",element:p,start:f,end:f+h,size:h,mid:f+h/2})}return s},wi=(o,e=!1)=>{let t=o.findIndex(n=>n.isDraggedItem);if(e){let{index:n}=o[t],r=o.filter(i=>!i.isDraggedItem).reduce((i,l)=>Math.min(i,l.index),Number.MAX_SAFE_INTEGER);if(r>0&&!(n===0&&r===1))return r+t}return t},Uf=(o,e)=>{let t=wi(o),n=e==="fwd"?t+1:t-1;if(n<0||n>=o.length)throw Error("switchDropTargetPosition index out of range");let r=o.at(t),s=o.at(n),i=s.size-r.size;if(e==="fwd"){let l=s.start+i,a=s.end,u={...r,start:l,mid:Math.floor(l+(a-l)/2),end:a},c=r.start,d=r.end+i,p={...s,start:c,mid:Math.floor(c+(d-c)/2),end:d};o.splice(t,2,p,u)}else{let l=s.start,a=s.end-i,u={...r,start:l,mid:Math.floor(l+(a-l)/2),end:a},c=r.start-i,d=r.end,p={...s,start:c,mid:Math.floor(c+(d-c)/2),end:d};o.splice(n,2,u,p)}},us=(o,e,t,n)=>{let r=o.length,s=wi(o),i=o[s];if(n==="fwd"){let l=Math.round(e+t);for(let a=r-1;a>=0;a--){let u=o[a];if(l>u.mid)return i&&a<s?i:u}}else{let l=Math.round(e);for(let a=0;a<r;a++){let u=o[a];if(l<u.mid)return a>s?i:u}}throw Error("no dropTraget identified")};function rv(o,e){let{height:t,left:n,top:r,width:s}=o,{height:i,width:l}=e;return{height:Math.min(t,i),left:n,top:r,width:Math.min(s,l)}}var Gf=o=>o.map((e,t)=>{var n;return`
|
|
19
|
-
${e.isDraggedItem?"*":" "}[${t}] width : ${Math.floor(e.size)} ${Math.floor(e.start)} - ${Math.floor(e.end)} (mid ${Math.floor(e.mid)}) ${(n=e.element)==null?void 0:n.textContent} `}).join("");var sv=require("@salt-ds/core"),iv=B(require("classnames")),bc=require("react");var qf=require("react/jsx-runtime"),SI=o=>o.split(" ").map(e=>`vuuDraggable-${e}`),yc=(0,bc.forwardRef)(function({wrapperClassName:e,element:t,onTransitionEnd:n,style:r,scale:s=1},i){let l=(0,bc.useCallback)(u=>{u&&(u.innerHTML="",u.appendChild(t),s!==1&&(u.style.transform=`scale(${s},${s})`))},[t,s]),a=(0,sv.useForkRef)(i,l);return(0,qf.jsx)(cs,{children:(0,qf.jsx)("div",{className:(0,iv.default)("vuuDraggable",...SI(e)),ref:a,onTransitionEnd:n,style:r})})}),jf=o=>{let e=document.createElement("div");return e.className="vuuDraggable-spacer",o&&e.addEventListener("transitionend",()=>{o.current=!1}),e},lv=()=>{let o=document.createElement("div");return o.className="vuuDraggable-dropIndicatorPosition",o},av=o=>{let e=document.createElement("div");return e.className="vuuDraggable-dropIndicator",o&&e.addEventListener("transitionend",()=>{o.current=!1}),e};var uv=(o="horizontal")=>{let e=(0,Qn.useRef)(0),t=(0,Qn.useRef)(!1),n=(0,Qn.useMemo)(()=>[jf(t),jf()],[]),r=(0,Qn.useCallback)((u,c="width")=>{let[d,p]=n;e.current=requestAnimationFrame(()=>{t.current=!0,d.style.cssText=`${c}: 0px`,p.style.cssText=`${c}: ${u}px`,n[0]=p,n[1]=d})},[n]),s=(0,Qn.useCallback)((u=!1)=>{if(u===!0){let[c]=n,d=()=>{c.removeEventListener("transitionend",d),s()},p=o==="horizontal"?"width":"height";c.addEventListener("transitionend",d),r(0,p)}else n.forEach(c=>c.remove())},[r,o,n]),i=(0,Qn.useCallback)(()=>{e.current&&(cancelAnimationFrame(e.current),e.current=0)},[]),l=(0,Qn.useCallback)((u,c,d,p=!1,f="static")=>{if(c){let h=o==="horizontal"?"width":"height",[g,m]=n;if(i(),p)t.current?(s(),g.style.cssText=`${h}: ${d}px`,m.style.cssText=`${h}: 0px`,f==="fwd"?(c.element.before(g),c.element.after(m)):(c.element.after(g),c.element.before(m))):f==="fwd"?c.element.after(m):c.element.before(m),r(d,h);else if(f==="static")g.style.cssText=`${h}: ${d}px`,c.element.before(g);else throw Error("useDragDisplacers currently only supports noTransition for static displacement");f!=="static"&&Uf(u,f)}},[r,i,s,o,n]),a=(0,Qn.useCallback)((u,c,d,p=!1,f="static")=>{let h=o==="horizontal"?"width":"height",[g,m]=n;i(),p?(t.current?(s(),g.style.cssText=`${h}: ${d}px`,m.style.cssText=`${h}: 0px`,c.element.before(g),c.element.after(m)):f==="fwd"?c.element.after(m):c.element.before(m),r(d,h)):(g.style.cssText=`${h}: ${d}px`,c.element.after(g)),f!=="static"&&Uf(u,f)},[r,i,s,o,n]);return{displaceItem:l,displaceLastItem:a,clearSpacers:s}};var Qf=require("@vuu-ui/vuu-utils");var cv=({onDrop:o,orientation:e="horizontal",containerRef:t,itemQuery:n="*",selected:r,viewportRange:s})=>{let i=(0,it.useRef)(),l=(0,it.useRef)(!1),a=(0,it.useRef)(-1),u=(0,it.useRef)([]),c=(0,it.useRef)(!1),[d,p]=(0,it.useState)(!1),{clearSpacers:f,displaceItem:h,displaceLastItem:g}=uv(e),m=(0,it.useRef)(),y=`:is(${n}${gc}${ev},.vuuOverflowContainer-OverflowIndicator)`,w=T=>u.current.findIndex(P=>P.id===T.id),v=(0,it.useRef)();v.current=s;let x=(0,it.useCallback)(()=>{f()},[f]),S=(0,it.useCallback)((T,P,L)=>{let{current:N}=t,{current:A}=m;if(N&&A){u.current=Si(N,e,y,v.current),T==="fwd"?u.current.push(A):u.current.unshift(A);let{size:k}=A,F=a.current+k/2,{current:H}=u,z=us(H,F,k,"fwd");if(z){let q=w(z),j=H[q];L&&T==="fwd"?g(H,H[H.length-1],k,!1,"static"):h(H,j,k,!0,"static")}}},[t,h,g,y,e]),b=(0,it.useCallback)(T=>{T.ariaSelected&&Array.isArray(r)&&r.length>1&&console.log("its a selected element, and we have a multi select");let{current:P}=t;if(P&&T){let L=P.contains(T),{SCROLL_SIZE:N,CLIENT_SIZE:A}=jt(e),{id:k}=T,{[N]:I,[A]:F}=P;l.current=I>F;let H=u.current=Si(P,e,y,s,k);if(L){console.log(Gf(H));let z=wi(H),W=H[z];W&&P&&(m.current=W,(W.isLast?g:h)(H,W,W.size,!1,"static"))}else{let{top:z,height:W}=T.getBoundingClientRect(),q=us(H,z,W,"fwd"),j=H.indexOf(q),{start:J,end:G,mid:Y}=q;console.log(`nextDropTarget ${q.element.textContent}`);let fe=m.current={end:G,mid:Y,start:J,isDraggedItem:!0,isExternal:!0,size:W},ue=H.indexOf(q);console.log({indexOfDropTarget:ue}),H.splice(ue,0,fe);for(let we=j+1;we<H.length;we++){let ze=H[we];ze.mid+=W,ze.end+=W,ze.start+=W}console.log(Gf(H)),(q.isLast?g:h)(H,q,q.size,!0,"static")}}},[t,h,g,y,e,r,s]),[C,M]=(0,it.useMemo)(()=>{let T=!1;return[N=>{if(!T){T=!0;let A=N.element.querySelector(".vuuPopupMenu");A&&(0,Qf.dispatchMouseEvent)(A,"click")}},N=>{if(T){T=!1;let A=N.element.querySelector(".vuuPopupMenu");A&&(0,Qf.dispatchMouseEvent)(A,"click")}}]},[]),D=(0,it.useCallback)((T,P)=>{let{current:L}=m;if(L&&t.current){a.current=T;let{current:N}=u,A=us(N,T,L.size,P);if(A&&!A.isDraggedItem)if(A.isOverflowIndicator)p(c.current=!0),C(A);else{let{size:k}=L;(w(A)===N.length-1?g:h)(N,A,k,!0,P);let H=N.at(-1);M(H),p(c.current=!1)}i.current=P}},[t,h,g,M,C]),E=(0,it.useCallback)(()=>{var N;f();let{current:T}=u,P=wi(T),L=T[P];if(L)if(i.current=void 0,c.current)o(L.index,-1,{fromIndex:L.index,toIndex:-1,isExternal:L.isExternal});else{let A=wi(T,!0);o(L.index,A,{fromIndex:L.index,toIndex:A,isExternal:L.isExternal})}if(p(!1),t.current){let A=(N=t.current)==null?void 0:N.scrollTop;P<T.length&&(t.current.scrollTop=A)}},[f,t,o]),O=(0,it.useCallback)(()=>{f(!0)},[f]);return{beginDrag:b,drag:D,drop:E,handleScrollStart:x,handleScrollStop:S,releaseDrag:O,revealOverflowedItems:d}};var Xe=require("react");var ba=require("react");var dv=()=>{let o=(0,ba.useMemo)(()=>lv(),[]),e=(0,ba.useCallback)(()=>o.remove(),[o]);return{positionDropIndicator:(0,ba.useCallback)((n,r="end")=>(r==="end"?n.element.after(o):n.element.before(o),o),[o]),clearSpacer:e}};var fv=require("react/jsx-runtime"),wI=':not([data-overflowed="true"])',TI=':not([aria-hidden="true"])',pv=({onDrop:o,orientation:e="horizontal",containerRef:t,itemQuery:n="*",selected:r,viewportRange:s})=>{let i=(0,Xe.useRef)(),l=(0,Xe.useRef)(null),a=(0,Xe.useRef)(null),u=(0,Xe.useRef)(""),c=(0,Xe.useRef)(!1),d=(0,Xe.useRef)(-1),p=(0,Xe.useRef)([]),f=(0,Xe.useRef)(!1),[h,g]=(0,Xe.useState)(!1),[m,y]=(0,Xe.useState)(),{clearSpacer:w,positionDropIndicator:v}=dv(),x=(0,Xe.useRef)(),S=`:is(${n}${wI}${TI},[data-overflow-indicator])`,b=N=>p.current.findIndex(A=>A.id===N.id),C=(N,A,k)=>{N.start+=A,N.mid+=A,N.end+=A,typeof k=="number"&&(N.currentIndex+=k)},M=(0,Xe.useRef)();M.current=s;let D=(0,Xe.useCallback)(()=>{w()},[w]),E=(0,Xe.useCallback)((N,A,k)=>{let{current:I}=t,{current:F}=x;if(I&&F){p.current=Si(I,e,S,M.current);let{size:H}=F,W=d.current+H/2,{current:q}=p,j=us(q,W,H,"fwd");j&&v(k&&N==="fwd"?q[q.length-1]:j,"start")}},[t,v,S,e]),O=(0,Xe.useCallback)(N=>{N.ariaSelected&&Array.isArray(r)&&r.length>1&&console.log("its a selected element, and we have a multi select");let{current:A}=t;if(A&&N){let{SCROLL_SIZE:k,CLIENT_SIZE:I}=jt(e),{id:F}=N,{[k]:H,[I]:z}=A;c.current=H>z;let W=p.current=Si(A,e,S,s),q=nv(W,F);if(q&&A){let j=b(q);ov(W,j),x.current=q;let{current:J}=M;if(J!=null&&J.atEnd)for(let ke=0;ke<W.length;ke++)C(W[ke],q.size);for(let ke=j;ke<W.length;ke++)C(W[ke],-q.size,-1);let[G,Y]=q.isLast?[W[W.length-1],"end"]:[W[j],"start"];a.current=G,u.current=Y;let fe=v(G,Y),{top:ue,left:Ue,width:we}=fe.getBoundingClientRect(),ze={top:q.isLast?J!=null&&J.atEnd&&!J.atStart?ue+q.size-2:ue-2:ue-q.size-2,left:Ue,width:we,height:2};y((0,fv.jsx)(yc,{wrapperClassName:"dropIndicatorContainer",style:ze,ref:l,element:av()}))}}},[r,t,e,S,s,v]),T=(0,Xe.useCallback)((N,A)=>{let{current:k}=a,{current:I}=x;if(I&&t.current){let F=e==="horizontal"?"left":"top";d.current=N;let{current:H}=p,z=us(H,N,I.size,A);if(z&&z.index!==(k==null?void 0:k.index)){if(z.isOverflowIndicator)g(f.current=!0);else if(l.current){if(b(z)===H.length-1){let q=H[H.length-1],J=v(q,"start").getBoundingClientRect();l.current.style[F]=`${J.top}px`}else{let j=v(z,"start").getBoundingClientRect();l.current.style[F]=`${j.top}px`}g(f.current=!1)}a.current=z,i.current=A}}},[t,e,v]),P=(0,Xe.useCallback)(()=>{w();let{current:N}=x,{current:A}=a,{current:k}=u,{current:I}=M;if(N&&I&&A){let{index:F}=N,H=k==="start",{index:z,currentIndex:W}=A;a.current=null,i.current=void 0,f.current?o(F,-1,{fromIndex:F,toIndex:-1}):F<z?o(F,H?W:W+1,{fromIndex:F,toIndex:H?W:W+1}):o(F,H?z:z+1,{fromIndex:F,toIndex:H?z:z+1}),y(void 0)}g(!1)},[w,o]),L=(0,Xe.useCallback)(()=>{},[]);return{beginDrag:O,drag:T,drop:P,dropIndicator:m,handleScrollStart:D,handleScrollStop:E,releaseDrag:L,revealOverflowedItems:h}};var ye=require("react");var gr=require("react");var hv=({containerRef:o,onScrollingStopped:e,orientation:t="vertical"})=>{let n=(0,gr.useRef)(null),r=(0,gr.useRef)(!1),s=(0,gr.useRef)(0),i=(0,gr.useRef)("fwd"),l=(0,gr.useCallback)((u=!1)=>{console.log("[useAutoScroll] stopScrolling"),n.current!==null&&(clearTimeout(n.current),n.current=null),r.current=!1,e==null||e(i.current,s.current,u)},[e]),a=(0,gr.useCallback)((u,c,d=30)=>{let{current:p}=o;if(p){let{SCROLL_POS:f,SCROLL_SIZE:h,CLIENT_SIZE:g}=jt(t),{[f]:m,[h]:y,[g]:w}=p,v=u==="fwd"?y-w-m:m,x=Math.min(v,d);u==="fwd"?(i.current="fwd",p[f]=s.current=m+x):(i.current="bwd",p[f]=s.current=m-x),x===v?l(!0):(r.current=!0,n.current=window.setTimeout(()=>{a(u,c,d)},100))}},[o,t,l]);return{isScrolling:r,startScrolling:a,stopScrolling:l}};var gv=require("react/jsx-runtime"),EI={beginDrag:()=>{},drag:()=>{},draggableRef:{current:null},drop:()=>{},isDragging:!1,isScrolling:!1,handleScrollStart:()=>{},handleScrollStop:()=>{},revealOverflowedItems:!1},mv={start:0,end:1e3,contraStart:0,contraEnd:1e3},MI=()=>EI,RI=3,DI=(o,e)=>o.closest(e),PI=o=>o.dataset.index==="overflow"&&o.parentElement!==null&&o.parentElement.classList.contains("overflowed"),kI=(o,e)=>{let t=`:is(${e}${gc},.vuuOverflowContainer-OverflowIndicator)`,r=Array.from(o.querySelectorAll(t)).pop();return[r,PI(r)]},Ho=({allowDragDrop:o,containerRef:e,draggableClassName:t,getDragPayload:n,id:r,itemQuery:s="*",onDragStart:i,onDrop:l,onDropSettle:a,orientation:u,...c})=>{let d=(0,ye.useRef)({start:0,end:0,contraStart:0,contraEnd:0}),[p,f]=(0,ye.useState)({draggable:void 0,draggedItemIndex:-1,isDragging:!1}),h=(0,ye.useRef)(null),g=(0,ye.useRef)(null),m=(0,ye.useRef)(!1),y=(0,ye.useRef)({x:0,y:0}),w=(0,ye.useRef)({x:0,y:0}),v=(0,ye.useRef)(null),x=(0,ye.useRef)(-1),S=(0,ye.useRef)(-1),b=(0,ye.useRef)(),{isDragSource:C,isDropTarget:M,onDragOut:D,onEndOfDragOperation:E,register:O}=Zx(r),T=(0,ye.useRef)(),P=(0,ye.useRef)(),L=(0,ye.useCallback)(()=>{let{current:Q}=T,{current:ne}=P;Q&&ne&&(document.addEventListener("mousemove",Q,!1),document.addEventListener("mouseup",ne,!1))},[]),N=(0,ye.useCallback)(()=>{let{current:Q}=T,{current:ne}=P;Q&&ne&&(document.removeEventListener("mousemove",Q,!1),document.removeEventListener("mouseup",ne,!1))},[]),A=(0,ye.useCallback)((Q,ne)=>{let{current:re}=e;if(re){let[pe,Re]=kI(re,s),{CONTRA:Ge,CONTRA_END:Ee,DIMENSION:X,END:te,START:oe}=jt(u),he=ne[X],{[oe]:qe,[te]:ft}=pe.getBoundingClientRect();d.current.start=Q[oe],d.current.end=Re?Math.max(qe,Q.right-he):m.current?Q[oe]+Q[X]-he:ft-he,d.current.contraStart=Q[Ge],d.current.contraEnd=Q[Ee]}},[e,s,u]),k=(0,ye.useCallback)(()=>{var re;let{current:Q}=S,ne=(re=e.current)==null?void 0:re.querySelector(`${s}[data-index="${Q}"]`);ne&&ne.classList.remove("vuuDropTarget-settling"),S.current=-1,a==null||a(Q),f(pe=>({...pe,draggable:void 0}))},[e,s,a]),I=(0,ye.useCallback)(Q=>{if(e.current&&h.current){let{mouseOffset:ne}=h.current,{POS:re,SCROLL_POS:pe,SCROLL_SIZE:Re,CLIENT_SIZE:Ge}=jt(u),{[pe]:Ee,[Re]:X,[Ge]:te}=e.current,oe=X-te,he=Ee<oe,qe=d.current.end,ft=Ee>0&&Q-ne[re]<=d.current.start,V=he&&Q-ne[re]>=qe;return ft?"bwd":V?"fwd":""}},[e,u]),F=o===!0||o==="natural-movement"?cv:o==="drop-indicator"?pv:MI,H=(0,ye.useCallback)((Q,ne,re)=>{var pe;(pe=b.current)==null||pe.call(b,Q,ne,re)},[]),{isScrolling:z,startScrolling:W,stopScrolling:q}=hv({containerRef:e,onScrollingStopped:H,orientation:u}),j=(0,ye.useCallback)((Q,ne,re)=>{var pe;x.current=ne,re.isExternal?l==null||l(Q,ne,{...re,payload:(pe=h.current)==null?void 0:pe.payload}):l==null||l(Q,ne,re),S.current=ne,r&&(E==null||E(r)),h.current=null},[r,l,E]),{beginDrag:J,drag:G,drop:Y,handleScrollStart:fe,handleScrollStop:ue,releaseDrag:Ue,...we}=F({...c,containerRef:e,isDragSource:C,isDropTarget:M,itemQuery:s,onDrop:j,orientation:u});b.current=ue;let ze=(0,ye.useCallback)((Q,ne)=>{let{CONTRA_POS:re}=jt(u),pe=y.current[re],Re=C?Math.abs(pe-ne):0;if(h.current&&Re-Q>5)return D!=null&&D(r,h.current)&&(N(),Ue==null||Ue(),h.current=null),d.current=mv,!0},[r,C,D,u,Ue,N]),ke=(0,ye.useCallback)(Q=>{let{CLIENT_POS:ne,CONTRA_CLIENT_POS:re,POS:pe}=jt(u),{clientX:Re,clientY:Ge}=Q,{[ne]:Ee,[re]:X}=Q,te=y.current[pe],oe=Math.abs(te-Ee),{current:he}=h;if(ze(oe,X)){console.log("drag handed over to provider");return}if(y.current.x=Re,y.current.y=Ge,he){let{draggableElement:qe,mouseOffset:ft}=he;if(d.current===mv&&qe){let V=y.current.x-ft.x,K=y.current.y-ft.y;qe.style.top=`${K}px`,qe.style.left=`${V}px`}else if(oe>0&&qe){let V=te<Ee?"fwd":"bwd",K=I(Ee),ce=y.current[pe]-ft[pe];if(K&&m.current&&!z.current?(fe(),W(K,1)):!K&&z.current&&q(),!z.current){let Le=Math.round(Math.max(d.current.start,Math.min(d.current.end,ce))),Gt=u==="horizontal"?"left":"top";qe.style[Gt]=`${Le}px`,G(Le,V)}}}},[G,I,fe,r,C,z,D,u,W,q]),Ve=(0,ye.useCallback)(()=>{N(),h.current&&(v.current=h.current.draggableElement),Y(),f(Q=>({...Q,draggedItemIndex:-1,isDragging:!1}))},[Y,N]);T.current=ke,P.current=Ve;let gt=(0,ye.useCallback)(Q=>{h.current=Q;let{draggableElement:ne,mouseOffset:re,initialDragElement:pe}=Q,{current:Re}=e;if(console.log({container:Re,draggableElement:ne,initialDragElement:pe}),Re&&ne){let Ge=Re.getBoundingClientRect(),Ee=ne.getBoundingClientRect();return A(Ge,Ee),y.current.x=Ee.left+re.x,y.current.y=Ee.top+re.y,J(ne),L(),!0}else return!1},[L,J,e,A]),Be=(0,ye.useCallback)(Q=>{let{target:ne}=Q,re=DI(ne,s),{current:pe}=e;if(pe&&re){let{SCROLL_SIZE:Re,CLIENT_SIZE:Ge}=jt(u),{[Re]:Ee,[Ge]:X}=pe;m.current=Ee>X;let te=pe.getBoundingClientRect(),oe=re.getBoundingClientRect(),he=h.current=new mc(Q,re);A(te,oe),J(re);let{dataset:{index:qe="-1"}}=re;f({isDragging:!0,draggable:(0,gv.jsx)(yc,{element:tv(re),onTransitionEnd:k,ref:he.setDraggable,style:rv(oe,te),wrapperClassName:t}),draggedItemIndex:parseInt(qe)}),i==null||i(he),L()}},[L,J,e,t,s,i,u,A,k]),dt=(0,ye.useCallback)(Q=>{let{CLIENT_POS:ne,POS:re}=jt(u),{[ne]:pe}=Q;Math.abs(pe-w.current[re])>RI&&e.current&&(g.current&&(window.clearTimeout(g.current),g.current=null),document.removeEventListener("mousemove",dt),document.removeEventListener("mouseup",Ot,!1),Be(Q))},[e,J,u]),Ot=(0,ye.useCallback)(()=>{g.current&&(window.clearTimeout(g.current),g.current=null),document.removeEventListener("mousemove",dt,!1),document.removeEventListener("mouseup",Ot,!1)},[dt]),Ie=(0,ye.useCallback)(Q=>{let{current:ne}=e;if(Q.stopPropagation(),ne&&!Q.defaultPrevented){let{clientX:re,clientY:pe}=Q;y.current.x=w.current.x=re,y.current.y=w.current.y=pe,document.addEventListener("mousemove",dt,!1),document.addEventListener("mouseup",Ot,!1),Q.persist(),g.current=window.setTimeout(()=>{document.removeEventListener("mousemove",dt,!1),document.removeEventListener("mouseup",Ot,!1),Be(Q.nativeEvent)},500)}},[e,Be,dt,Ot]),{current:pt}=v;return(0,ye.useLayoutEffect)(()=>{if(pt&&e.current){let Q=x.current,ne=e.current.querySelector(`${s}[data-index="${Q}"]`);ne?(ne.classList.add("vuuDropTarget-settling"),requestAnimationFrame(()=>{let{top:re,left:pe}=ne.getBoundingClientRect(),{top:Re,left:Ge}=pt.getBoundingClientRect();Ge!==pe||Re!==re?(pt.classList.add("vuuDraggable-settling"),pt.style.top=`${re}px`,pt.style.left=`${pe}px`):k()})):console.log(`dont have the dropped item (at ${Q})`),v.current=null}},[e,s,pt,k]),(0,ye.useEffect)(()=>{r&&(C||M)&&O(r,gt)},[r,C,M,O,gt]),{...we,...p,isScrolling:z,onMouseDown:o?Ie:void 0}};var br=({allowDragDrop:o=!1,collapsibleHeaders:e,collectionHook:t,containerRef:n,contentRef:r,defaultHighlightedIndex:s,defaultSelected:i,disabled:l,disableAriaActiveDescendant:a,disableHighlightOnFocus:u,disableTypeToSelect:c,highlightedIndex:d,id:p,label:f="",listHandlers:h,onDragStart:g,onDrop:m,onHighlight:y,onKeyboardNavigation:w,onKeyDown:v,onMoveListItem:x,onSelect:S,onSelectionChange:b,restoreLastFocus:C,scrollContainerRef:M,selected:D,selectionStrategy:E,selectionKeys:O,stickyHeaders:T,tabToSelect:P,viewportRange:L})=>{let N=(0,bt.useRef)(null),A=(0,bt.useRef)(D||i),k=(X,te)=>{var oe,he;(he=(oe=ue.listHandlers).onKeyboardNavigation)==null||he.call(oe,X,te),w==null||w(X,te)},I=(0,bt.useCallback)((X,te)=>{S&&te!==null&&S(X,t.itemById(te))},[t,S]),F=(0,bt.useMemo)(()=>{var X,te;return M||{current:(te=(X=n.current)==null?void 0:X.querySelector(".vuuList-scrollContainer"))!=null?te:null}},[]),H=(0,bt.useCallback)((X,te)=>{if(b){if(Array.isArray(te)){let oe=te.map(he=>t.itemById(he));b(X,oe)}else if(te){let oe=t.itemById(te);b(X,oe)}}},[t,b]),{highlightedIndex:z,containerProps:{onKeyDown:W,onMouseMove:q,...j},setHighlightedIndex:J,...G}=Bx({containerRef:F,defaultHighlightedIndex:s,disableHighlightOnFocus:u,highlightedIndex:d,indexPositions:t.data,itemCount:t.data.length,label:f,onHighlight:y,onKeyboardNavigation:k,restoreLastFocus:C,selected:A.current,viewportItemCount:10}),Y=Ox({collapsibleHeaders:e,highlightedIdx:z,collectionHook:t}),fe=(0,bt.useCallback)(X=>{J(-1),g==null||g(X)},[g,J]),ue=zx({containerRef:n,defaultSelected:i,highlightedIdx:z,itemQuery:".vuuListItem",label:`${f}:useList`,onSelect:I,onSelectionChange:H,selected:D,selectionStrategy:E,selectionKeys:O,tabToSelect:P}),Ue=(0,bt.useCallback)((X,te,oe)=>{let he=t.data.indexOf(X);return he===te?oe:he<Math.min(te,oe)||he>Math.max(te,oe)?he:te<he?he-1:he+1},[t.data]),we=(0,bt.useCallback)((X,te,oe)=>Array.isArray(X)?X.map(he=>Ue(he,te,oe)):Ue(X,te,oe),[Ue]),ze=(0,bt.useCallback)((X,te,oe)=>{fr(ue.selected)&&(N.current=we(ue.selected,X,te)),oe.isExternal?m==null||m(X,te,oe):x==null||x(X,te),J(-1)},[ue.selected,J,we,m,x]),ke=(0,bt.useCallback)(X=>{J(X)},[J]),{setSelected:Ve}=ue;(0,bt.useEffect)(()=>{let{current:X}=N;if(fr(X)){let te=Array.isArray(X)?X.map(oe=>t.data[oe]):t.data[X];N.current=null,Ve(te)}},[t.data,Ve]),Un(()=>{fr(A.current)&&Ve(Array.isArray(A.current)?[]:null)},[Ve,t.data]);let{onMouseDown:gt,isDragging:Be,isScrolling:dt,...Ot}=Ho({allowDragDrop:o,draggableClassName:"list-item",orientation:"vertical",containerRef:n,id:p,itemQuery:".vuuListItem",onDragStart:fe,onDrop:ze,onDropSettle:ke,viewportRange:L}),{onKeyDown:Ie}=$x({disableTypeToSelect:c,highlightedIdx:z,highlightItemAtIndex:J,typeToNavigate:!0,items:t.data}),pt=(0,bt.useCallback)(X=>{var te,oe,he;X.defaultPrevented||Ie==null||Ie(X),W(X),X.defaultPrevented||(oe=(te=ue.listHandlers).onKeyDown)==null||oe.call(te,X),X.defaultPrevented||(he=Y==null?void 0:Y.onKeyDown)==null||he.call(Y,X),X.defaultPrevented||v==null||v(X)},[Y,W,v,ue.listHandlers,Ie]),{isScrolling:Q,scrollIntoView:ne}=Gx({containerRef:F,contentRef:r,highlightedIdx:z,indexPositions:t.data,stickyHeaders:T}),re=Q.current||dt.current,pe=(0,bt.useCallback)(X=>{if(!re&&!l&&!Be){q();let te=Nx(X.target);if(te!==-1&&te!==z){let oe=t.data[te];!oe||oe.disabled?J(-1):J(te)}}},[Be,re,l,J,q,z,t.data]),Re=()=>{var X;return z===void 0||z===-1||a||(X=t.data[z])==null?void 0:X.id};A.current=ue.selected;let Ge={"aria-activedescendant":Re(),onBlur:j.onBlur,onFocus:j.onFocus,onKeyDown:pt,onMouseDown:gt,onMouseDownCapture:j.onMouseDownCapture,onMouseLeave:j.onMouseLeave},Ee=h||{onClick:ue.listHandlers.onClick,onMouseMove:pe};return{focusVisible:G.focusVisible,controlledHighlighting:G.controlledHighlighting,highlightedIndex:z,keyboardNavigation:G.keyboardNavigation,listHandlers:Ee,listItemHeaderHandlers:Y,listControlProps:Ge,scrollIntoView:ne,selected:ue.selected,setHighlightedIndex:J,setIgnoreFocus:G.setIgnoreFocus,setSelected:ue.setSelected,...Ot}};var po=require("react");var II=(o,e,t=0)=>o===0?0:t===0?o*e:o-1*(e+t)+e,xc=({displayedItemCount:o,getItemHeight:e,height:t,itemCount:n,itemGapSize:r,itemHeight:s=36,size:i})=>{let[l,a]=(0,po.useState)(s),[,u]=(0,po.useState)({}),c=(0,po.useRef)(null),[d,p]=(0,po.useMemo)(()=>{let g=0,m=l!=null?l:s,y=II(n,m,r);if(console.log(`contentHeight ${y}`),t!==void 0)return[y,void 0];let w=Math.min(o,n)||o;return typeof e=="function"?g+=Array(w).fill(0).reduce((x,S,b)=>x+e(b)+r,0)-r:g+=w*Number(m)+(w-1)*r,[y,g]},[o,e,t,n,r,s,l]),f=(0,po.useCallback)(({height:g})=>{typeof g=="number"&&a(g)},[]),h=(0,po.useCallback)(g=>{c.current=g,u({})},[]);return Oo(c,ux,f,!0),{computedListHeight:p,contentHeight:d,listClientHeight:i==null?void 0:i.height,listItemHeight:l,rowHeightProxyRef:h}};var yv=require("@salt-ds/core"),fo=require("react"),bv=(o,e,t,n)=>{let r=Math.ceil(e/n),s=Math.floor(o/n),i=Math.ceil(s+r-1);return{atStart:s===0,atEnd:i===t-1,from:s,to:i}},vc=({containerSize:o,itemCount:e,itemGapSize:t=0,itemSize:n,onViewportScroll:r})=>{let s=(0,fo.useRef)(0),i=(0,fo.useRef)(0),l=(0,fo.useRef)(0),a=(0,fo.useMemo)(()=>bv(l.current,o,e,n+t),[o,e,n,t]),[u,c]=(0,fo.useState)(a);return(0,yv.useIsomorphicLayoutEffect)(()=>{c(a)},[a]),{onVerticalScroll:(0,fo.useCallback)(p=>{let f=p.target.scrollTop;if(f!==l.current){l.current=f;let h=n+t,g=bv(f,o,e,h);(g.from!==s.current||g.to!==i.current)&&(s.current=g.from,i.current=g.to,r==null||r(g.from,g.to),c(g))}},[n,t,o,e,r]),viewportRange:u}};var un=require("react/jsx-runtime"),vv=require("react"),LI="No data to display",ds="vuuList",Fo=(0,Qt.forwardRef)(function({ListItem:e=mr,ListPlaceholder:t,allowDragDrop:n,children:r,className:s,collapsibleHeaders:i=!1,defaultHighlightedIndex:l,defaultSelected:a,disabled:u=!1,disableFocus:c=!1,disableTypeToSelect:d,displayedItemCount:p=10,emptyMessage:f,focusVisible:h,getItemHeight:g,getItemId:m,height:y,highlightedIndex:w,id:v,itemGapSize:x=0,itemHeight:S,itemTextHighlightPattern:b,itemToString:C=Tn,listHandlers:M,maxHeight:D,maxWidth:E,minHeight:O,minWidth:T,onDragStart:P,onDrop:L,onMoveListItem:N,onSelect:A,onSelectionChange:k,onHighlight:I,restoreLastFocus:F,selected:H,selectionStrategy:z,checkable:W=z==="multiple",scrollingApiRef:q,selectionKeys:j,showEmptyMessage:J=!1,source:G,style:Y,stickyHeaders:fe,tabToSelect:ue,...Ue},we){var Ub,Gb;let ze=He(v),ke=(0,Qt.useRef)(null),Ve=(0,Qt.useRef)(null),gt=(0,Qt.useRef)(null),[Be,dt]=(0,Qt.useState)(),Ot=(0,Qt.useCallback)(_n=>{dt(_n)},[]),Ie=hr({id:ze,label:"List",source:G,children:r,options:{collapsibleHeaders:i,getItemId:m,itemToString:C}}),{listClientHeight:pt,computedListHeight:Q,listItemHeight:ne,rowHeightProxyRef:re}=xc({displayedItemCount:p,getItemHeight:g,height:y,itemCount:Ie.data.length,itemGapSize:x,itemHeight:S,rootRef:ke,size:Be}),{onVerticalScroll:pe,viewportRange:Re}=vc({containerSize:(Gb=(Ub=pt!=null?pt:Q)!=null?Ub:Be==null?void 0:Be.height)!=null?Gb:0,itemCount:Ie.data.length,itemGapSize:x,itemSize:ne}),{draggable:Ge,draggedItemIndex:Ee,dropIndicator:X,focusVisible:te,highlightedIndex:oe,listControlProps:he,listHandlers:qe,listItemHeaderHandlers:ft,scrollIntoView:V,selected:K}=br({allowDragDrop:n,collapsibleHeaders:i,collectionHook:Ie,containerRef:ke,contentRef:gt,defaultHighlightedIndex:l,defaultSelected:Ie.itemToCollectionItemId(a),disabled:u,disableTypeToSelect:d,highlightedIndex:w,id:ze,label:"List",listHandlers:M,onDragStart:P,onDrop:L,onMoveListItem:N,onSelect:A,onSelectionChange:k,onHighlight:I,restoreLastFocus:F,scrollContainerRef:Ve,selected:Ie.itemToCollectionItemId(H),selectionStrategy:z,selectionKeys:j,stickyHeaders:fe,tabToSelect:ue,viewportRange:Re});pc({collectionHook:Ie,forwardedRef:q,scrollableRef:ke,scrollIntoView:V});let ce=h!=null?h:te,Le=function(tt,rn,sn,Tt){let Yr=(0,vv.createElement)(e,{...ft,className:(0,Cc.default)(`${ds}Header`,{focusVisible:i&&ce===tt.value}),"aria-expanded":Tt,"data-idx":i?tt.value:void 0,"data-index":i?tt.value:void 0,"data-highlighted":tt.value===oe||void 0,"data-sticky":fe,"data-selectable":!1,id:rn,key:`header-${tt.value}`,label:sn});return tt.value+=1,Yr},Gt=g===void 0?()=>S:g;function Xr(_n,tt,rn){var $u,qb;let{disabled:sn,value:Tt,id:Yr,label:Bu}=tt,zu=(0,Qt.isValidElement)(Tt),Xl={className:(0,Cc.default)(($u=Tt==null?void 0:Tt.props)==null?void 0:$u.className,{vuuHighlighted:rn.value===oe,vuuFocusVisible:ce===rn.value,["vuuDraggable-dragAway"]:Ee===rn.value}),disabled:sn||u,id:Yr,item:zu?void 0:(qb=tt==null?void 0:tt.value)!=null?qb:void 0,itemHeight:Gt(rn.value),itemTextHighlightPattern:b,key:Yr,"data-index":rn.value,label:Bu,role:"option",selected:nc(K,tt),showCheckbox:W};_n.push(zu?(0,Qt.cloneElement)(Tt,Xl):(0,un.jsx)(e,{...Xl})),rn.value+=1}let Wn=function(tt,rn,sn){let{count:Tt=0,id:Yr,expanded:Bu,label:zu=""}=rn[sn.value],Xl=Le(sn,Yr,zu,Bu),$u=Bu!==!1?[Xl].concat(fi(rn,sn,sn.value+Tt)||[]):Xl;tt.push((0,un.jsx)("div",{role:"group",children:$u},Yr))},fi=(_n,tt={value:0},rn=_n.length)=>{let sn=[];for(;tt.value<rn;){let Tt=_n[tt.value];Tt.header?sn.push(Le(tt,Tt.id,Tt.label,Tt.expanded===!1)):Tt.childNodes?Wn(sn,_n,tt):Xr(sn,Tt,tt)}return sn};function iP(){return f||J?(0,un.jsx)("span",{className:`${ds}-empty-message`,children:f!=null?f:LI}):null}let lP=()=>{if(Ie.data.length){let _n=Ie.data;return fi(_n)}else iP()},aP="auto",uP={"--list-borderWidth":"var(--vuuList-borderWidth, var(--salt-size-border, 0))","--list-item-gap":x?`${x}px`:void 0,"--computed-list-height":Q===void 0?void 0:`${Q}px`,minWidth:T,minHeight:O,maxWidth:E,maxHeight:D};return(0,un.jsxs)(Sc,{"aria-multiselectable":z==="multiple"||z==="extended"||z==="extended-multi-range"||void 0,...Ue,...qe,...he,className:(0,Cc.default)(ds,s,{[`${ds}-collapsible`]:i,[`${ds}-contentSized`]:Q!==void 0,vuuFocusVisible:oe===$f}),height:Q!=null?Q:y,id:`${ze}`,onResize:Ot,ref:(0,xv.useForkRef)(ke,we),role:"listbox",onScroll:pe,style:{...Y,...uP},tabIndex:u||c?void 0:0,children:[(0,un.jsx)(hc,{ref:re,height:S}),Ie.data.length===0&&t!==void 0?(0,un.jsx)(un.Fragment,{children:(0,un.jsx)(t,{})}):(0,un.jsx)("div",{className:`${ds}-viewport`,ref:Ve,children:(0,un.jsxs)("div",{className:`${ds}-scrollingContentContainer`,ref:gt,style:{height:aP},children:[lP(),X,Ge]})})]})});var Ti=require("@salt-ds/core");function Cv(o){var e,t,n="";if(typeof o=="string"||typeof o=="number")n+=o;else if(typeof o=="object")if(Array.isArray(o))for(e=0;e<o.length;e++)o[e]&&(t=Cv(o[e]))&&(n&&(n+=" "),n+=t);else for(e in o)o[e]&&(n&&(n+=" "),n+=e);return n}function Jf(){for(var o,e,t=0,n="";t<arguments.length;)(o=arguments[t++])&&(e=Cv(o))&&(n&&(n+=" "),n+=e);return n}var fs=require("react");var wv=require("react");var wc=class{constructor(e=0,t=0){this.keys=new Map,this.free=[],this.nextKeyValue=0,this.reset(e,t)}next(){return this.free.length?this.free.pop():this.nextKeyValue++}reset(e,t){this.keys.forEach((r,s)=>{(s<e||s>=t)&&(this.free.push(r),this.keys.delete(s))});let n=t-e;this.keys.size+this.free.length>n&&(this.free.length=n-this.keys.size);for(let r=e;r<t;r++)if(!this.keys.has(r)){let s=this.next();this.keys.set(r,s)}}keyFor(e){return this.keys.get(e)}};var AI=([o],[e])=>o-e,Sv=5,Tv=({data:o,listItemGapSize:e=0,listItemHeight:t,viewportRange:n})=>{let r=(0,wv.useMemo)(()=>new wc(0,1),[]),s=t+e,i=Math.max(0,n.from-Sv),l=Math.min(o.length,n.to+Sv);return r.reset(i,l),o.slice(i,l).map((u,c)=>[r.keyFor(c+i),(c+i)*s,c+i+1,u]).sort(AI)};var ps=require("react/jsx-runtime"),OI="No data to display",Tc=(0,Ti.makePrefixer)("saltList"),NI=(0,fs.memo)(mr),k9=(0,fs.forwardRef)(function({borderless:e,children:t,className:n,collapsibleHeaders:r=!1,defaultHighlightedIndex:s,defaultSelected:i,disabled:l=!1,disableFocus:a=!1,disableTypeToSelect:u,displayedItemCount:c=10,emptyMessage:d,getItemHeight:p,getItemId:f,height:h,highlightedIndex:g,id:m,itemGapSize:y=0,itemHeight:w,itemTextHighlightPattern:v,itemToString:x,maxHeight:S,maxWidth:b,minHeight:C,minWidth:M,onDragStart:D,onDrop:E,onSelect:O,onSelectionChange:T,onViewportScroll:P,onHighlight:L,restoreLastFocus:N,selected:A,selectionStrategy:k,scrollingApiRef:I,selectionKeys:F,showEmptyMessage:H=!1,source:z,style:W,stickyHeaders:q,tabToSelect:j,width:J,...G},Y){let fe=(0,Ti.useIdMemo)(m),ue=(0,fs.useRef)(null),Ue=(0,fs.useRef)(null),we=hr({id:fe,label:"List",source:z,children:t,options:{collapsibleHeaders:r,getItemId:f,itemToString:x}}),{contentHeight:ze,listItemHeight:ke,listHeight:Ve}=xc({borderless:e,displayedItemCount:c,height:h,itemCount:we.data.length,itemGapSize:y,itemHeight:w,rootRef:ue,rowHeightRef:Ue}),{focusVisible:gt,highlightedIndex:Be,listControlProps:dt,listHandlers:Ot,scrollIntoView:Ie,selected:pt}=br({collapsibleHeaders:r,collectionHook:we,containerRef:ue,defaultHighlightedIndex:s,defaultSelected:we.itemToCollectionItem(i),disabled:l,disableTypeToSelect:u,highlightedIndex:g,label:fe,onSelect:O,onSelectionChange:T,onHighlight:L,restoreLastFocus:N,selected:we.itemToCollectionItem(A),selectionStrategy:k,selectionKeys:F,stickyHeaders:q,tabToSelect:j}),{onVerticalScroll:Q,viewportRange:ne}=vc({containerSize:typeof Ve=="number"?Ve:0,itemCount:we.data.length,itemGapSize:y,itemSize:ke});console.log({viewPortRange:ne});let re=Tv({data:we.data,listItemGapSize:y,listItemHeight:ke,viewportRange:ne});pc({collectionHook:we,forwardedRef:I,scrollableRef:ue,scrollIntoView:Ie});function pe(te,oe,he){let[qe,ft,V,K]=oe,ce=V-1;te.push((0,ps.jsx)(NI,{"aria-setsize":we.data.length,"aria-posinset":V,className:Jf(n,{saltHighlighted:ce===Be,saltFocusVisible:gt===ce}),"data-idx":ce,item:K,label:K.label,"data-offset":ft,role:"option",selected:nc(pt,K),id:K.id,translate3d:ft},qe)),he.value+=1}function Re(te,oe={value:0},he=te.length){let qe=[];for(;oe.value<he;){let ft=te[oe.value];pe(qe,ft,oe)}return qe}function Ge(){return d||H?(0,ps.jsx)("span",{className:Tc("empty-message"),children:d!=null?d:OI}):null}let Ee=()=>{if(re.length)return Re(re);Ge()},X={"--list-item-gap":y?`${y}px`:void 0,minWidth:M,minHeight:C,width:J!=null?J:"100%",height:h!=null?h:"100%",maxWidth:b!=null?b:J,maxHeight:S!=null?S:Ve};return(0,ps.jsx)("div",{...G,...Ot,...dt,className:Jf(Tc(),n,Tc("virtualized")),id:`${fe}`,ref:(0,Ti.useForkRef)(ue,Y),role:"listbox",onScroll:Q,style:{...W,...X},tabIndex:l||a?void 0:0,children:(0,ps.jsxs)("div",{className:Tc("scrollingContentContainer"),style:{height:ze},children:[(0,ps.jsx)(hc,{ref:Ue}),Ee()]})})});var HI=B(require("classnames"));var FI=require("react/jsx-runtime");var Ev=require("@salt-ds/core"),Ei=require("react");var Mv=({collectionHook:o,defaultHighlightedIndex:e,defaultIsOpen:t,defaultSelected:n,highlightedIndex:r,isOpen:s,itemToString:i=Tn,listRef:l,onHighlight:a,onOpenChange:u,onSelectionChange:c,onSelect:d,selected:p,selectionStrategy:f})=>{let h=f==="multiple"||f==="extended",[g,m]=(0,Ev.useControlled)({controlled:s,default:t!=null?t:!1,name:"useDropdownList"}),y=(0,Ei.useCallback)((b,C)=>{h||(m(!1),u==null||u(!1)),c==null||c(b,C)},[h,u,c,m]),w=(0,Ei.useCallback)((b,C)=>{h||(m(!1),u==null||u(!1)),d==null||d(b,C)},[h,u,d,m]),v=br({collectionHook:o,defaultHighlightedIndex:(e!=null?e:r===void 0)?0:void 0,defaultSelected:n,label:"DropDown",onSelectionChange:y,onSelect:w,containerRef:l,highlightedIndex:r,onHighlight:a,selected:p,selectionStrategy:f,tabToSelect:!h}),x=(0,Ei.useCallback)(b=>{m(b),u==null||u(b)},[u,m]),S=(0,Ei.useMemo)(()=>{if(h&&Array.isArray(v.selected)){let b=v.selected.map(C=>o.itemById(C));if(b.length===0)return;if(b.length===1){let[C]=b;return C===null?void 0:i(C)}else return`${b.length} items selected`}else{let b=v.selected;return b==null?void 0:i(o.itemById(b))}},[o,h,i,v.selected]);return{isOpen:g,onOpenChange:x,triggerLabel:S,...v}};var Mi=require("react/jsx-runtime"),Ec=(0,Vo.forwardRef)(function({"aria-label":e,children:t,defaultIsOpen:n,defaultSelected:r,id:s,isOpen:i,itemToString:l=Tn,onOpenChange:a,onSelectionChange:u,onSelect:c,selected:d,selectionStrategy:p,source:f,triggerComponent:h,ListItem:g,ListProps:m,width:y=180,...w},v){let x=He(s),S=(0,Vo.useRef)(null),b=(0,Vo.useRef)(null),C=(0,Rv.useForkRef)(S,v),M=hr({id:x,source:f,children:t,options:{itemToString:l}}),{highlightedIndex:D,triggerLabel:E,listHandlers:O,listControlProps:T,selected:P,...L}=Mv({collectionHook:M,defaultHighlightedIndex:m==null?void 0:m.defaultHighlightedIndex,defaultIsOpen:n,defaultSelected:M.itemToCollectionItemId(r),highlightedIndex:m==null?void 0:m.highlightedIndex,isOpen:i,itemToString:l,label:"Dropdown",listRef:b,onHighlight:m==null?void 0:m.onHighlight,onOpenChange:a,onSelectionChange:u,onSelect:c,selected:M.itemToCollectionItemId(d),selectionStrategy:p}),N=(0,Vo.useCallback)(k=>{if(Array.isArray(k))return k.map(I=>M.itemById(I));if(k)return M.itemById(k)},[M]),A=()=>{let k={"aria-activedescendant":L.isOpen?T==null?void 0:T["aria-activedescendant"]:void 0,"aria-label":e};if(h){let I=h.props;return(0,Vo.cloneElement)(h,ua(I,{...L.isOpen?T:{},...k}))}else return(0,Mi.jsx)(Dx,{label:E,...L.isOpen?T:{},...k})};return(0,Mi.jsx)(Zu,{collectionHook:M,children:(0,Mi.jsxs)(ic,{...w,id:x,isOpen:L.isOpen,onOpenChange:L.onOpenChange,placement:(m==null?void 0:m.width)===void 0?"below-full-width":"below",ref:C,width:y,children:[A(),(0,Mi.jsx)(Fo,{ListItem:g,itemToString:l,...m,highlightedIndex:D,listHandlers:O,onSelectionChange:u,onSelect:c,ref:b,selected:N(P),selectionStrategy:p})]})})});var Xf=require("@salt-ds/core");var Ae=require("react");var VI=["Enter"],Dv=({allowFreeText:o,ariaLabel:e,collectionHook:t,defaultIsOpen:n,defaultValue:r,onBlur:s,onFocus:i,onChange:l,onSelect:a,id:u,initialHighlightedIndex:c=-1,isOpen:d,itemToString:p=Tn,listRef:f,onOpenChange:h,onSelectionChange:g,selectionStrategy:m,stringToItem:y,value:w,InputProps:v={onBlur:s,onFocus:i,onChange:l,onSelect:a}})=>{var ft;let x=m==="multiple"||m==="extended",S=(ft=t.stringToCollectionItem(w!=null?w:r))!=null?ft:null,{data:b,itemToCollectionItem:C,setFilterPattern:M,stringToCollectionItem:D}=t,E=(0,Ae.useRef)(null),O=(0,Ae.useRef)(null),T=(0,Ae.useRef)(!0),P=(0,Ae.useRef)(S),[L,N]=(0,Xf.useControlled)({controlled:d,default:n!=null?n:!1,name:"useDropdownList"}),[A,k]=(0,Xf.useControlled)({controlled:void 0,default:r!=null?r:"",name:"ComboBox",state:"value"}),I=(0,Ae.useCallback)(V=>Array.isArray(V)?V.map(K=>K.value):V&&V.value,[]),[F,H]=(0,Ae.useState)(!0),[z,W]=(0,Ae.useState)(!1),q=(0,Ae.useCallback)((V=P.current)=>{var K,ce;if(Array.isArray(V))console.log("TODO multi selection");else if(V==null)(K=E.current)==null||K.call(E,-1);else{let Le=b.indexOf(V);(ce=E.current)==null||ce.call(E,Le)}},[b]),j=(0,Ae.useCallback)(V=>{k(V),M(V===""?void 0:V)},[M,k]),J=(0,Ae.useCallback)((V=P.current)=>{var ce;let K="";Array.isArray(V)?console.log("TODO multi selection"):V!=null&&V.value!==null&&(K=p(V.value)),j(K),K===""?(ce=E.current)==null||ce.call(E,-1):q(V)},[q,p,j]),G=(0,Ae.useCallback)((V,K)=>{x||N(!1),P.current=K,J(K),g==null||g(V,I(K!=null?K:null))},[I,x,g,J,N]),Y=(0,Ae.useCallback)((V,K)=>{if(!x){let ce=C(K);G(V,ce)}},[G,x,C]),fe=(0,Ae.useCallback)(V=>{if(!o&&V.key==="Enter"&&z){let[K]=b;G(V,K)}},[o,G,b,z]),ue=(0,Ae.useCallback)(V=>{V.key==="Escape"?o?j(""):J():V.key==="Tab"&&(o||J()),fe(V)},[o,fe,J,j]),Ue=(0,Ae.useCallback)(()=>{H(!1)},[]),{focusVisible:we,setHighlightedIndex:ze,highlightedIndex:ke,listControlProps:Ve,listHandlers:gt,selected:Be,setSelected:dt}=br({collectionHook:t,containerRef:f,defaultHighlightedIndex:c,disableAriaActiveDescendant:F,disableHighlightOnFocus:!0,disableTypeToSelect:!0,label:"useComboBox",onKeyboardNavigation:Ue,onKeyDown:ue,onSelectionChange:Y,selected:P.current,selectionKeys:VI,selectionStrategy:m,tabToSelect:!x});E.current=ze,O.current=dt;let Ot=(0,Ae.useCallback)(V=>{N(V),V||W(!1),h==null||h(V)},[h,N]),{onClick:Ie}=gt,pt=(0,Ae.useCallback)(V=>{var K;(K=document.getElementById(`${u}-input`))==null||K.focus(),Ie==null||Ie(V)},[u,Ie]),Q=(0,Ae.useCallback)(V=>{let K=V.target.value;k(K),K&&K.trim().length?M(K):(M(void 0),P.current=null,g==null||g(V,null)),N(!0),W(K.length>0&&!o)},[o,g,M,N,k]),{onFocus:ne=i}=v,{onFocus:re}=Ve,pe=(0,Ae.useCallback)(V=>{H(!1),re==null||re(V),ne==null||ne(V)},[ne,re]),Re=(0,Ae.useCallback)(V=>{let K=V.relatedTarget;return(K==null?void 0:K.id)===`${u}-list`},[u]),Ge=(0,Ae.useCallback)(V=>{var ce;let K=A.trim();if(K){let Le=D(K);Le?Array.isArray(Le)||Le!==Be&&((ce=O.current)==null||ce.call(O,Le),g==null||g(V,Le.value)):y&&y(K)&&console.log("we have a new item")}},[g,Be,y,D,A]),{onBlur:Ee=s}=v,{onBlur:X}=Ve,te=(0,Ae.useCallback)(V=>{Re(V)||(X==null||X(V),Ee==null||Ee(V),o?Ge(V):J(),H(!0),T.current=!0,N(!1))},[Re,X,Ee,o,N,Ge,J]),{onSelect:oe}=v,he=(0,Ae.useCallback)(V=>{T.current?T.current=!1:H(!0),oe==null||oe(V)},[oe]);Un(()=>{fr(Be)?q():ze(c),b.length===0&&N(!1)},[q,b.length,c,Be,ze,N]);let qe={...v.inputProps,"aria-label":e};return{focusVisible:we,highlightedIndex:ke,isOpen:L,onOpenChange:Ot,inputProps:{...v,id:`${u}-input`,inputProps:qe,onChange:Q,onSelect:he,role:"combobox",value:A},listControlProps:{...Ve,onBlur:te,onFocus:pe},listHandlers:{...gt,onClick:pt},selected:Be}};var Pv=B(require("classnames"));var Iv=require("react/jsx-runtime"),BI="vuuChevronIcon",kv=o=>{let{direction:e,...t}=o;return(0,Iv.jsx)("span",{...t,className:(0,Pv.default)(BI,e)})};var hs=require("react/jsx-runtime"),Mc=(0,Ri.forwardRef)(function({InputProps:e,ListProps:t,ListItem:n,"aria-label":r,allowFreeText:s,children:i,defaultIsOpen:l,defaultValue:a,disabled:u,onBlur:c,onFocus:d,onChange:p,onSelect:f,getFilterRegex:h,id:g,initialHighlightedIndex:m=-1,isOpen:y,itemToString:w,onOpenChange:v,onSelectionChange:x,selectionStrategy:S,source:b,stringToItem:C,value:M,width:D=180,...E},O){let T=He(g),P=(0,Ri.useRef)(null),L=hr({id:T,source:b,children:i,options:{filterPattern:M!=null?M:a,getFilterRegex:h,itemToString:w}}),{focusVisible:N,highlightedIndex:A,inputProps:{endAdornment:k,...I},isOpen:F,listHandlers:H,listControlProps:z,onOpenChange:W,selected:q}=Dv({InputProps:e,allowFreeText:s,ariaLabel:r,collectionHook:L,defaultIsOpen:l,defaultValue:a,disabled:u,initialHighlightedIndex:m,listRef:P,onBlur:c,onFocus:d,onChange:p,onSelect:f,id:T,isOpen:y,itemToString:w,label:"ComboBox",onOpenChange:v,onSelectionChange:x,selectionStrategy:S,stringToItem:C,value:M}),j=(0,Ri.useCallback)(G=>Array.isArray(G)?G.map(Y=>Y.value):G&&G.value,[]);return(0,hs.jsx)(Zu,{collectionHook:L,children:(0,hs.jsxs)(ic,{...E,fullWidth:!0,id:T,isOpen:F,onOpenChange:W,openOnFocus:!0,ref:O,width:D,children:[(0,hs.jsx)(Lv.Input,{...I,disabled:u,...z,endAdornment:k===null?null:(0,hs.jsx)(kv,{direction:F?"up":"down",onClick:()=>{W(!F)}})}),(0,hs.jsx)(Fo,{...t,ListItem:n,focusVisible:N,highlightedIndex:A,itemTextHighlightPattern:String(I.value)||void 0,id:`${T}-list`,listHandlers:H,onSelectionChange:x,ref:P,selected:j(q),selectionStrategy:S})]})})});var Av=require("@vuu-ui/vuu-utils"),Ov=o=>e=>zI(o,e);function zI(o,e){console.log(`apply rules to ${e}`);let t;for(let n of o){let r=(0,Av.getEditRuleValidator)(n.name);if(r){let s=r(n,e);switch(s){case!0:break;case!1:t===void 0&&(t=!1);break;default:t===void 0||t===!1?t=s:t+=`::${s}`}}else throw Error(`editable-utils applyRules, no validator registered for rule '${n.name}'`)}return console.log(t),t}var Jn=require("react"),Nv=o=>{let e=new Event("vuu-commit");o.dispatchEvent(e)},Hv=({clientSideEditValidationCheck:o,initialValue:e,onCommit:t})=>{let[n,r]=(0,Jn.useState)(),[s,i]=(0,Jn.useState)(e),l=(0,Jn.useRef)(e),a=(0,Jn.useRef)(!1),u=(0,Jn.useRef)(!1),c=(0,Jn.useCallback)(()=>{console.log("blur")},[]),d=(0,Jn.useCallback)(f=>{if(f.key==="Enter")if(f.stopPropagation(),a.current){u.current=!0;let h=o==null?void 0:o(s);h?r(h):(r(void 0),t(s)&&(a.current=!1,Nv(f.target)))}else Nv(f.target),u.current=!1;else f.key==="ArrowRight"||f.key==="ArrowLeft"||f.key==="ArrowUp"||f.key==="ArrowDown"?f.stopPropagation():f.key==="Escape"&&a.current&&(a.current=!1,r(void 0),i(l.current))},[o,t,s]),p=(0,Jn.useCallback)(f=>{let{value:h}=f.target;if(a.current=h!==l.current,i(h),console.log(`value changes to ${h} message ${n}`),u.current){let g=o==null?void 0:o(h);console.log({warningMessage:g}),g!==n&&g!==!1&&r(g)}},[o,n]);return{onBlur:c,onChange:p,onKeyDown:d,value:s,warningMessage:n}};var Fv=B(require("classnames")),Xn=require("react"),ya=require("@salt-ds/core");var Dc=require("react/jsx-runtime"),Rc="vuuEditableLabel",ms=(0,Xn.forwardRef)(function({className:e,defaultEditing:t,defaultValue:n,editing:r,onChange:s,onEnterEditMode:i,onExitEditMode:l,value:a,...u},c){let d=(0,Xn.useRef)(null),p=(0,Xn.useRef)(!1),[f,h]=(0,ya.useControlled)({controlled:a,default:n!=null?n:"",name:"EditableLabel",state:"value"}),[g,m]=(0,ya.useControlled)({controlled:r,default:t!=null?t:!1,name:"EditableLabel",state:"editing"}),y=(0,Xn.useCallback)(E=>{m(p.current=E)},[m]),w=(0,Xn.useRef)(f);(0,Xn.useLayoutEffect)(()=>{g&&d.current!==null&&(d.current.select(),d.current.focus())},[g,d]);let v=(0,Xn.useCallback)(()=>{y(!0),i&&i()},[i,y]),x=({cancelEdit:E=!1,allowDeactivation:O=!1}={})=>{y(!1);let T=w.current;T!==f&&(E?h(T):w.current=f),l&&l(T,f,O,E)},S=E=>{let{value:O}=E.target;h(O),s&&s(O)},b=()=>{v()},C=()=>{p.current&&x({allowDeactivation:!0})},M=E=>{g&&E.key==="Enter"?(E.stopPropagation(),x()):E.key==="ArrowRight"||E.key==="ArrowLeft"?E.stopPropagation():E.key==="Escape"&&x({cancelEdit:!0})},D=(0,Fv.default)(Rc,e,{[`${Rc}-editing`]:g});return(0,Dc.jsx)("div",{...u,className:D,onDoubleClick:b,"data-text":f,ref:c,children:g?(0,Dc.jsx)(ya.Input,{inputProps:{className:`${Rc}-input`,spellCheck:!1},value:f,onBlur:C,onChange:S,onKeyDown:M,inputRef:d,style:{padding:0},textAlign:"left",variant:"secondary"}):(0,Dc.jsx)("span",{className:`${Rc}-label`,children:f})})});var Bv=require("@salt-ds/core"),zv=B(require("classnames")),$v=require("react");var Yf=require("react/jsx-runtime"),Vv="vuuExpandoInput",Pc=(0,$v.forwardRef)(function({className:e,value:t,inputProps:n,...r},s){return(0,Yf.jsx)("div",{className:(0,zv.default)(Vv,e),"data-text":t,children:(0,Yf.jsx)(Bv.Input,{...r,inputProps:{...n,className:`${Vv}-input`},ref:s,style:{padding:0},textAlign:"left",value:t,variant:"secondary"})})});var Wv=require("react/jsx-runtime");var _v=require("react/jsx-runtime");var Kv=require("react");var $I=require("react/jsx-runtime");var Uv=require("@vuu-ui/vuu-utils"),nh=o=>(e,t)=>{let n=[];if(o===void 0)return n;if(e==="header"||e==="column-menu")n.push(...WI(t,o)),n.push(...UI(t,o)),n.push(..._I(t,o)),n.push(...KI(t)),n.push({action:"column-settings",icon:"cog",label:"Column Settings",options:t}),n.push({action:"table-settings",icon:"cog",label:"DataGrid Settings",options:t});else if(e==="filter"){let{column:r,filter:s}=t,i=(s==null?void 0:s.column)===(r==null?void 0:r.name);n.push({label:"Edit filter",action:"filter-edit",options:t}),n.push({label:"Remove filter",action:"filter-remove-column",options:t}),r&&!i&&n.push({label:"Remove all filters",action:"remove-filters",options:t})}return n};function WI(o,{sort:{sortDefs:e}}){let{column:t}=o,n=[];if(t===void 0)return n;let r=e.length>0;return t.sorted==="A"?n.push({label:"Reverse Sort (DSC)",action:"sort-dsc",options:o}):t.sorted==="D"?n.push({label:"Reverse Sort (ASC)",action:"sort-asc",options:o}):typeof t.sorted=="number"?(t.sorted>0?n.push({label:"Reverse Sort (DSC)",action:"sort-add-dsc",options:o}):n.push({label:"Reverse Sort (ASC)",action:"sort-add-asc",options:o}),r&&Math.abs(t.sorted)<e.length&&n.push({label:"Remove from sort",action:"sort-remove",options:o}),n.push({label:"New Sort",children:[{label:"Ascending",action:"sort-asc",options:o},{label:"Descending",action:"sort-dsc",options:o}]})):r?(n.push({label:"Add to sort",children:[{label:"Ascending",action:"sort-add-asc",options:o},{label:"Descending",action:"sort-add-dsc",options:o}]}),n.push({label:"New Sort",children:[{label:"Ascending",action:"sort-asc",options:o},{label:"Descending",action:"sort-dsc",options:o}]})):n.push({label:"Sort",children:[{label:"Ascending",action:"sort-asc",options:o},{label:"Descending",action:"sort-dsc",options:o}]}),n}function _I(o,e){let{column:t}=o;if(t===void 0||e.groupBy.length===0)return[];let{name:n,label:r=n}=t;return[{label:`Aggregate ${r}`,children:[{label:"Count",action:"agg-count",options:o},{label:"Distinct",action:"agg-distinct",options:o}].concat((0,Uv.isNumericColumn)(t)?[{label:"Sum",action:"agg-sum",options:o},{label:"Avg",action:"agg-avg",options:o},{label:"High",action:"agg-high",options:o},{label:"Low",action:"agg-low",options:o}]:[])}]}var oh=(o,e)=>({label:`Pin ${e}`,action:`column-pin-${e}`,options:o}),Zf=o=>oh(o,"left"),eh=o=>oh(o,"floating"),th=o=>oh(o,"right");function KI(o){let{column:e}=o;if(e===void 0)return[];let{pin:t}=e,n=[{label:"Hide column",action:"column-hide",options:o},{label:"Remove column",action:"column-remove",options:o}];return t===void 0?n.push({label:"Pin column",children:[Zf(o),eh(o),th(o)]}):t==="left"?n.push({label:"Unpin column",action:"column-unpin",options:o},{label:"Pin column",children:[eh(o),th(o)]}):t==="right"?n.push({label:"Unpin column",action:"column-unpin",options:o},{label:"Pin column",children:[Zf(o),eh(o)]}):t==="floating"&&n.push({label:"Unpin column",action:"column-unpin",options:o},{label:"Pin column",children:[Zf(o),th(o)]}),n}function UI(o,{groupBy:e}){let{column:t}=o,n=[];if(t===void 0)return n;let{name:r,label:s=r}=t;return e.length===0?n.push({label:`Group by ${s}`,action:"group",options:o}):n.push({label:`Add ${s} to group by`,action:"group-add",options:o}),n}var Gv=require("@vuu-ui/vuu-utils"),ht=require("@vuu-ui/vuu-utils"),GI=(o,e)=>{if(o.filterStruct&&e){let[t,n]=(0,Gv.removeColumnFromFilter)(e,o.filterStruct);return{filter:n,filterStruct:t}}else return o},{Average:qI,Count:jI,Distinct:QI,High:JI,Low:XI,Sum:YI}=ht.AggregationType,rh=({dataSource:o,onPersistentColumnOperation:e})=>n=>{let r=n.options;if(r.column&&o){let{column:s}=r;switch(n.menuId){case"sort-asc":return o.sort=(0,ht.setSortColumn)(o.sort,s,"A"),!0;case"sort-dsc":return o.sort=(0,ht.setSortColumn)(o.sort,s,"D"),!0;case"sort-add-asc":return o.sort=(0,ht.addSortColumn)(o.sort,s,"A"),!0;case"sort-add-dsc":return o.sort=(0,ht.addSortColumn)(o.sort,s,"D"),!0;case"group":return o.groupBy=(0,ht.addGroupColumn)(o.groupBy,s),!0;case"group-add":return o.groupBy=(0,ht.addGroupColumn)(o.groupBy,s),!0;case"column-hide":return e({type:"hideColumns",columns:[s]}),!0;case"column-remove":return o.columns=o.columns.filter(i=>i!==s.name),!0;case"filter-remove-column":return o.filter=GI(o.filter,s),!0;case"remove-filters":return o.filter={filter:""},!0;case"agg-avg":return o.aggregations=(0,ht.setAggregations)(o.aggregations,s,qI),!0;case"agg-high":return o.aggregations=(0,ht.setAggregations)(o.aggregations,s,JI),!0;case"agg-low":return o.aggregations=(0,ht.setAggregations)(o.aggregations,s,XI),!0;case"agg-count":return o.aggregations=(0,ht.setAggregations)(o.aggregations,s,jI),!0;case"agg-distinct":return o.aggregations=(0,ht.setAggregations)(o.aggregations,s,QI),!0;case"agg-sum":return o.aggregations=(0,ht.setAggregations)(o.aggregations,s,YI),!0;case"column-pin-floating":return e({type:"pinColumn",column:s,pin:"floating"}),!0;case"column-pin-left":return e({type:"pinColumn",column:s,pin:"left"}),!0;case"column-pin-right":return e({type:"pinColumn",column:s,pin:"right"}),!0;case"column-unpin":return e({type:"pinColumn",column:s,pin:void 0}),!0;case"column-settings":return e({type:"columnSettings",column:s}),!0;case"table-settings":return e({type:"tableSettings"}),!0;default:}}return!1};var aS=require("@salt-ds/core");var gs=require("@vuu-ui/vuu-utils"),rC=require("react");var cn=require("@vuu-ui/vuu-utils"),Yv=B(require("classnames")),va=require("react");var kc=require("@vuu-ui/vuu-utils");var jv=B(require("classnames")),Bo=require("react");var xa=require("react/jsx-runtime"),{KEY:qv}=kc.metadataKeys,sh=(0,Bo.memo)(({className:o,column:e,columnMap:t,onClick:n,row:r})=>{let s=(0,Bo.useRef)(null),{align:i,CellRenderer:l,key:a,pin:u,editable:c,resizing:d,valueFormatter:p}=e,[f,h]=(0,Bo.useState)(!1),g=p(r[a]),[m,y]=(0,Bo.useState)(g),w=()=>{var D;(D=s.current)==null||D.focus()},v=D=>{D.key==="Enter"&&h(!0)},x=(0,Bo.useCallback)(D=>{n==null||n(D,e)},[e,n]),S=()=>{h(!0)},b=(D="",E="",O=!0,T=!1)=>{var P;h(!1),T?y(D):E!==D&&y(E),O===!1&&((P=s.current)==null||P.focus())},C=(0,jv.default)(o,{vuuAlignRight:i==="right",vuuPinFloating:u==="floating",vuuPinLeft:u==="left",vuuPinRight:u==="right","vuuTableCell-resizing":d})||void 0,M=(0,kc.getColumnStyle)(e);return c?(0,xa.jsx)("div",{className:C,"data-editable":!0,role:"cell",style:M,onKeyDown:v,children:(0,xa.jsx)(ms,{editing:f,value:m,onChange:y,onMouseDownCapture:w,onEnterEditMode:S,onExitEditMode:b,onKeyDown:v,ref:s,tabIndex:0},"title")}):(0,xa.jsx)("div",{className:C,role:"cell",style:M,onClick:x,children:l?(0,xa.jsx)(l,{column:e,columnMap:t,row:r}):g})},ZI);sh.displayName="TableCell";function ZI(o,e){return o.column===e.column&&o.onClick===e.onClick&&o.row[qv]===e.row[qv]&&o.row[o.column.key]===e.row[e.column.key]}var Pi=require("@vuu-ui/vuu-utils"),Qv=require("react");var Di=require("react/jsx-runtime"),{IS_LEAF:e1}=Pi.metadataKeys,Jv=({column:o,onClick:e,row:t})=>{let{columns:n}=o,[r,s]=(0,Pi.getGroupValueAndOffset)(n,t),i=(0,Qv.useCallback)(c=>{e==null||e(c,o)},[o,e]),l=(0,Pi.getColumnStyle)(o),a=t[e1],u=Array(s).fill(0).map((c,d)=>(0,Di.jsx)("span",{className:"vuuTableGroupCell-spacer"},d));return(0,Di.jsxs)("div",{className:"vuuTableGroupCell vuuPinLeft",onClick:a?void 0:i,role:"cell",style:l,children:[u,a?null:(0,Di.jsx)("span",{className:"vuuTableGroupCell-toggle","data-icon":"triangle-right"}),(0,Di.jsx)("span",{children:r})]})};var Ca=require("react/jsx-runtime"),{IDX:t1,IS_EXPANDED:n1,SELECTED:o1}=cn.metadataKeys,{True:Xv,First:r1,Last:s1}=cn.RowSelected,ki="vuuTableRow",i1=(0,va.memo)(function({columnMap:e,columns:t,offset:n,onClick:r,onToggleGroup:s,virtualColSpan:i=0,row:l}){let{[t1]:a,[n1]:u,[o1]:c}=l,d=(0,Yv.default)(ki,{[`${ki}-even`]:a%2===0,[`${ki}-expanded`]:u,[`${ki}-selected`]:c&Xv,[`${ki}-selectedStart`]:c&r1,[`${ki}-selectedEnd`]:c&s1}),p=(0,va.useCallback)(h=>{let g=h.shiftKey,m=h.ctrlKey||h.metaKey;r==null||r(l,g,m)},[r,l]),f=(0,va.useCallback)((h,g)=>{((0,cn.isGroupColumn)(g)||(0,cn.isJsonGroup)(g,l))&&(h.stopPropagation(),s==null||s(l,g))},[s,l]);return(0,Ca.jsxs)("div",{"aria-selected":c&Xv?!0:void 0,"aria-rowindex":a,className:d,onClick:p,role:"row",style:{transform:`translate3d(0px, ${n}px, 0px)`},children:[i>0?(0,Ca.jsx)("div",{role:"cell",style:{width:i}}):null,t.filter(cn.notHidden).map(h=>{let g=(0,cn.isGroupColumn)(h),m=(0,cn.isJsonColumn)(h);return(0,Ca.jsx)(g?Jv:sh,{column:h,columnMap:e,onClick:g||m?f:void 0,row:l},h.name)})]})});var u1=B(require("classnames")),c1=require("react");var Zv=require("react");var eC=require("react/jsx-runtime");var m1=B(require("classnames")),nC=require("react");var d1=B(require("classnames"));var tC=require("react/jsx-runtime");var p1=B(require("classnames")),f1=require("react");var h1=require("react/jsx-runtime");var oC=require("react/jsx-runtime");var sC=require("react/jsx-runtime");var{RENDER_IDX:p7}=gs.metadataKeys;var _i=require("@vuu-ui/vuu-utils"),Na=require("react");var Ic=require("@vuu-ui/vuu-utils"),Sa=require("react"),{SELECTED:h7}=Ic.metadataKeys;var Ih=require("react");var Li=require("@vuu-ui/vuu-utils");var wa=(o,e)=>o===e?!0:o===void 0&&e===void 0,g1=({filter:o},{filter:e})=>o===void 0&&(e==null?void 0:e.filter)===""||e===void 0&&(o==null?void 0:o.filter)==="",b1=(o,e)=>{var t,n;return g1(o,e)?!1:((t=o.filter)==null?void 0:t.filter)!==((n=e.filter)==null?void 0:n.filter)},y1=({sort:o},{sort:e})=>o===void 0&&(e==null?void 0:e.sortDefs.length)===0||e===void 0&&(o==null?void 0:o.sortDefs.length)===0,x1=(o,e)=>{let{sort:t}=o,{sort:n}=e;return wa(t,n)||y1(o,e)?!1:t===void 0||n===void 0||(t==null?void 0:t.sortDefs.length)!==(n==null?void 0:n.sortDefs.length)?!0:t.sortDefs.some(({column:r,sortType:s},i)=>r!==n.sortDefs[i].column||s!==n.sortDefs[i].sortType)},iC=o=>o!==void 0&&o.groupBy!==void 0&&o.groupBy.length>0,lC=o=>(o==null?void 0:o.filter)!==void 0&&o.filter.filter.length>0,aC=o=>{var e;return(o==null?void 0:o.sort)!==void 0&&Array.isArray((e=o.sort)==null?void 0:e.sortDefs)&&o.sort.sortDefs.length>0},v1=({groupBy:o},{groupBy:e})=>o===void 0&&(e==null?void 0:e.length)===0||e===void 0&&(o==null?void 0:o.length)===0,ih=(o,e)=>{let{groupBy:t}=o,{groupBy:n}=e;return wa(t,n)||v1(o,e)?!1:t===void 0||n===void 0||(t==null?void 0:t.length)!==(n==null?void 0:n.length)?!0:t.some((r,s)=>r!==(n==null?void 0:n[s]))},C1=({columns:o},{columns:e})=>o===void 0&&(e==null?void 0:e.length)===0||e===void 0&&(o==null?void 0:o.length)===0,S1=(o,e)=>{let{columns:t}=o,{columns:n}=e;return wa(t,n)||C1(o,e)?!1:t===void 0||n===void 0||(t==null?void 0:t.length)!==(n==null?void 0:n.length)?!0:t.some((r,s)=>r!==(n==null?void 0:n[s]))},w1=({aggregations:o},{aggregations:e})=>o===void 0&&(e==null?void 0:e.length)===0||e===void 0&&(o==null?void 0:o.length)===0,T1=(o,e)=>{let{aggregations:t}=o,{aggregations:n}=e;return wa(t,n)||w1(o,e)?!1:t===void 0||n===void 0||t.length!==n.length?!0:t.some(({column:r,aggType:s},i)=>r!==n[i].column||s!==n[i].aggType)},E1=()=>!1,Lc=(o,e)=>wa(o,e)?!1:o===void 0||e===void 0?!0:S1(o,e)||b1(o,e)||x1(o,e)||ih(o,e)||T1(o,e)||E1(o,e),M1=["config","aggregate","viewport-update","columns","debounce-begin","disabled","enabled","filter","groupBy","vuu-link-created","vuu-link-removed","vuu-links","vuu-menu","sort","subscribed"],uC=o=>{let e=o.type;return M1.includes(e)},cC=o=>["config","aggregate","columns","filter","groupBy","sort"].includes(o.type),R1={filter:""},D1={sortDefs:[]},Ac={aggregations:[],columns:[],filter:R1,groupBy:[],sort:D1},Oc=o=>{if(o.aggregations&&o.columns&&o.filter&&o.groupBy&&o.sort)return o;{let{aggregations:e=[],columns:t=[],filter:n={filter:""},groupBy:r=[],sort:s={sortDefs:[]},visualLink:i}=o;return{aggregations:e,columns:t,filter:n,groupBy:r,sort:s,visualLink:i}}};var dC="GET_TABLE_LIST",pC="GET_TABLE_META";var lh=o=>o.type==="connection-status",fC=o=>o.type==="connection-metrics",hC=o=>typeof o.result<"u",mC=o=>o.type==="TABLE_META_RESP";var gC='\nvar me=(s,e,t)=>{if(!e.has(s))throw TypeError("Cannot "+t)};var d=(s,e,t)=>(me(s,e,"read from private field"),t?t.call(s):e.get(s)),F=(s,e,t)=>{if(e.has(s))throw TypeError("Cannot add the same private member more than once");e instanceof WeakSet?e.add(s):e.set(s,t)},he=(s,e,t,n)=>(me(s,e,"write to private field"),n?n.call(s,t):e.set(s,t),t);function be(s,e,t=[],n=[]){for(let r=0,o=s.length;r<o;r++)(e(s[r],r)?t:n).push(s[r]);return[t,n]}var x={IDX:0,RENDER_IDX:1,IS_LEAF:2,IS_EXPANDED:3,DEPTH:4,COUNT:5,KEY:6,SELECTED:7,count:8,PARENT_IDX:"parent_idx",IDX_POINTER:"idx_pointer",FILTER_COUNT:"filter_count",NEXT_FILTER_IDX:"next_filter_idx"};var{DEPTH:tn,IS_LEAF:nn}=x;var Ce=s=>{var e,t;if(((e=globalThis.document)==null?void 0:e.cookie)!==void 0)return(t=globalThis.document.cookie.split("; ").find(n=>n.startsWith(`${s}=`)))==null?void 0:t.split("=")[1]};function Y({from:s,to:e},t=0,n=Number.MAX_SAFE_INTEGER){if(t===0)return n<s?{from:0,to:0}:{from:s,to:Math.min(e,n)};if(s===0)return{from:s,to:Math.min(e+t,n)};{let r=e-s,o=Math.round(t/2),a=s-o<0,u=n-(e+o)<0;return a&&u?{from:0,to:n}:a?{from:0,to:r+t}:u?{from:Math.max(0,n-(r+t)),to:n}:{from:s-o,to:e+o}}}var lt=(s,{from:e,to:t})=>s>=e&&s<t;var v=class{constructor(e,t){this.from=e,this.to=t}isWithin(e){return lt(e,this)}overlap(e,t){return e>=this.to||t<this.from?[0,0]:[Math.max(e,this.from),Math.min(t,this.to)]}copy(){return new v(this.from,this.to)}};var{KEY:cn}=x;var ct=["error","warn","info","debug"],pt=s=>typeof s=="string"&&ct.includes(s),dt="error",N=()=>{},gt="error",{loggingLevel:W=gt}=ft(),w=s=>{let e=W==="debug",t=e||W==="info",n=t||W==="warn",r=n||W==="error",o=t?p=>console.info(`[${s}] ${p}`):N,a=n?p=>console.warn(`[${s}] ${p}`):N,u=e?p=>console.debug(`[${s}] ${p}`):N;return{errorEnabled:r,error:r?p=>console.error(`[${s}] ${p}`):N}};function ft(){return typeof loggingSettings<"u"?loggingSettings:{loggingLevel:mt()}}function mt(){let s=Ce("vuu-logging-level");return pt(s)?s:dt}var{debug:ht,debugEnabled:bt}=w("range-monitor"),$=class{constructor(e){this.source=e;this.range={from:0,to:0};this.timestamp=0}isSet(){return this.timestamp!==0}set({from:e,to:t}){let{timestamp:n}=this;if(this.range.from=e,this.range.to=t,this.timestamp=performance.now(),n)bt&&ht(`<${this.source}> [${e}-${t}], ${(this.timestamp-n).toFixed(0)} ms elapsed`);else return 0}};function ye(s){return Array.isArray(s)}function Ct(s){return!Array.isArray(s)}var S,Se=class{constructor(){F(this,S,new Map)}addListener(e,t){let n=d(this,S).get(e);n?ye(n)?n.push(t):Ct(n)&&d(this,S).set(e,[n,t]):d(this,S).set(e,t)}removeListener(e,t){if(!d(this,S).has(e))return;let n=d(this,S).get(e),r=-1;if(n===t)d(this,S).delete(e);else if(Array.isArray(n)){for(let o=length;o-- >0;)if(n[o]===t){r=o;break}if(r<0)return;n.length===1?(n.length=0,d(this,S).delete(e)):n.splice(r,1)}}removeAllListeners(e){e&&d(this,S).has(e)?d(this,S).delete(e):e===void 0&&d(this,S).clear()}emit(e,...t){if(d(this,S)){let n=d(this,S).get(e);n&&this.invokeHandler(n,t)}}once(e,t){let n=(...r)=>{this.removeListener(e,n),t(...r)};this.on(e,n)}on(e,t){this.addListener(e,t)}invokeHandler(e,t){if(ye(e))e.slice().forEach(n=>this.invokeHandler(n,t));else switch(t.length){case 0:e();break;case 1:e(t[0]);break;case 2:e(t[0],t[1]);break;default:e.call(null,...t)}}};S=new WeakMap;var q=String.fromCharCode(8200),m=String.fromCharCode(8199);var Rn={DIGIT:m,TWO_DIGITS:m+m,THREE_DIGITS:m+m+m,FULL_PADDING:[null,q+m,q+m+m,q+m+m+m,q+m+m+m+m]};var wn=m+m+m+m+m+m+m+m+m;var{COUNT:qn}=x;var B=class{constructor(e){this.keys=new Map,this.free=[],this.nextKeyValue=0,this.reset(e)}next(){return this.free.length>0?this.free.pop():this.nextKeyValue++}reset({from:e,to:t}){this.keys.forEach((r,o)=>{(o<e||o>=t)&&(this.free.push(r),this.keys.delete(o))});let n=t-e;this.keys.size+this.free.length>n&&(this.free.length=Math.max(0,n-this.keys.size));for(let r=e;r<t;r++)if(!this.keys.has(r)){let o=this.next();this.keys.set(r,o)}this.nextKeyValue>this.keys.size&&(this.nextKeyValue=this.keys.size)}keyFor(e){let t=this.keys.get(e);if(t===void 0)throw console.log(`key not found\n keys: ${this.toDebugString()}\n free : ${this.free.join(",")} \n `),Error(`KeySet, no key found for rowIndex ${e}`);return t}toDebugString(){return Array.from(this.keys.entries()).map((e,t)=>`${e}=>${t}`).join(",")}};var{IDX:Yn}=x;var{SELECTED:Qn}=x,I={False:0,True:1,First:2,Last:4};var yt=(s,e)=>e>=s[0]&&e<=s[1],St=I.True+I.First+I.Last,Tt=I.True+I.First,Rt=I.True+I.Last,Z=(s,e)=>{for(let t of s)if(typeof t=="number"){if(t===e)return St}else if(yt(t,e))return e===t[0]?Tt:e===t[1]?Rt:I.True;return I.False};var Te=s=>{if(s.every(t=>typeof t=="number"))return s;let e=[];for(let t of s)if(typeof t=="number")e.push(t);else for(let n=t[0];n<=t[1];n++)e.push(n);return e};var wt=(()=>{let s=0,e=()=>`0000${(Math.random()*36**4<<0).toString(36)}`.slice(-4);return()=>(s+=1,`u${e()}${s}`)})();var{debug:Os,debugEnabled:ks,error:Ee,info:V,infoEnabled:It,warn:_}=w("websocket-connection"),Ve="ws",vt=s=>s.startsWith(Ve+"://")||s.startsWith(Ve+"s://"),Ie={},ee=Symbol("setWebsocket"),A=Symbol("connectionCallback");async function ve(s,e,t,n=10,r=5){return Ie[s]={status:"connecting",connect:{allowed:r,remaining:r},reconnect:{allowed:n,remaining:n}},ne(s,e,t)}async function Q(s){ne(s.url,s.protocol,s[A],s)}async function ne(s,e,t,n){let{status:r,connect:o,reconnect:a}=Ie[s],u=r==="connecting"?o:a;try{t({type:"connection-status",status:"connecting"});let c=typeof n<"u",p=await _t(s,e);console.info("%c\u26A1 %cconnected","font-size: 24px;color: green;font-weight: bold;","color:green; font-size: 14px;"),n!==void 0&&n[ee](p);let i=n!=null?n:new te(p,s,e,t),l=c?"reconnected":"connection-open-awaiting-session";return t({type:"connection-status",status:l}),i.status=l,u.remaining=u.allowed,i}catch{let p=--u.remaining>0;if(t({type:"connection-status",status:"disconnected",reason:"failed to connect",retry:p}),p)return Dt(s,e,t,n,2e3);throw Error("Failed to establish connection")}}var Dt=(s,e,t,n,r)=>new Promise(o=>{setTimeout(()=>{o(ne(s,e,t,n))},r)}),_t=(s,e)=>new Promise((t,n)=>{let r=vt(s)?s:`wss://${s}`;It&&e!==void 0&&V(`WebSocket Protocol ${e==null?void 0:e.toString()}`);let o=new WebSocket(r,e);o.onopen=()=>t(o),o.onerror=a=>n(a)}),Me=()=>{_==null||_("Connection cannot be closed, socket not yet opened")},xe=s=>{_==null||_(`Message cannot be sent, socket closed ${s.body.type}`)},Pt=s=>{try{return JSON.parse(s)}catch{throw Error(`Error parsing JSON response from server ${s}`)}},te=class{constructor(e,t,n,r){this.close=Me;this.requiresLogin=!0;this.send=xe;this.status="ready";this.messagesCount=0;this.connectionMetricsInterval=null;this.handleWebsocketMessage=e=>{let t=Pt(e.data);this.messagesCount+=1,this[A](t)};this.url=t,this.protocol=n,this[A]=r,this[ee](e)}reconnect(){Q(this)}[(A,ee)](e){let t=this[A];e.onmessage=o=>{this.status="connected",e.onmessage=this.handleWebsocketMessage,this.handleWebsocketMessage(o)},this.connectionMetricsInterval=setInterval(()=>{t({type:"connection-metrics",messagesLength:this.messagesCount}),this.messagesCount=0},2e3),e.onerror=()=>{Ee("\u26A1 connection error"),t({type:"connection-status",status:"disconnected",reason:"error"}),this.connectionMetricsInterval&&(clearInterval(this.connectionMetricsInterval),this.connectionMetricsInterval=null),this.status==="connection-open-awaiting-session"?Ee("Websocket connection lost before Vuu session established, check websocket configuration"):this.status!=="closed"&&(Q(this),this.send=r)},e.onclose=()=>{V==null||V("\u26A1 connection close"),t({type:"connection-status",status:"disconnected",reason:"close"}),this.connectionMetricsInterval&&(clearInterval(this.connectionMetricsInterval),this.connectionMetricsInterval=null),this.status!=="closed"&&(Q(this),this.send=r)};let n=o=>{e.send(JSON.stringify(o))},r=o=>{V==null||V(`TODO queue message until websocket reconnected ${o.body.type}`)};this.send=n,this.close=()=>{this.status="closed",e.close(),this.close=Me,this.send=xe,V==null||V("close websocket")}}};var Lt=["VIEW_PORT_MENUS_SELECT_RPC","VIEW_PORT_MENU_TABLE_RPC","VIEW_PORT_MENU_ROW_RPC","VIEW_PORT_MENU_CELL_RPC","VP_EDIT_CELL_RPC","VP_EDIT_ROW_RPC","VP_EDIT_ADD_ROW_RPC","VP_EDIT_DELETE_CELL_RPC","VP_EDIT_DELETE_ROW_RPC","VP_EDIT_SUBMIT_FORM_RPC"],De=s=>Lt.includes(s.type),re=({requestId:s,...e})=>[s,e],_e=s=>{let e=s.at(0);if(e.updateType==="SIZE"){if(s.length===1)return s;e=s.at(1)}let t=s.at(-1);return[e,t]},Pe=s=>{let e={};for(let t of s)(e[t.viewPortId]||(e[t.viewPortId]=[])).push(t);return e};var se=({columns:s,dataTypes:e,key:t,table:n})=>({table:n,columns:s.map((r,o)=>({name:r,serverDataType:e[o]})),key:t});var Le=s=>s.type==="connection-status",Oe=s=>s.type==="connection-metrics";var ke=s=>"viewport"in s,Ae=s=>s.type==="VIEW_PORT_MENU_RESP"&&s.action!==null&&G(s.action.table),G=s=>s!==null&&typeof s=="object"&&"table"in s&&"module"in s?s.table.startsWith("session"):!1;var Ue="CHANGE_VP_SUCCESS",Fe="CHANGE_VP_RANGE_SUCCESS",Ne="CLOSE_TREE_NODE",We="CLOSE_TREE_SUCCESS";var $e="CREATE_VP",qe="CREATE_VP_SUCCESS",Be="DISABLE_VP",Ge="DISABLE_VP_SUCCESS";var Ke="ENABLE_VP",He="ENABLE_VP_SUCCESS";var oe="GET_VP_VISUAL_LINKS",je="GET_VIEW_PORT_MENUS";var ze="HB",Je="HB_RESP",Ye="LOGIN",Ze="LOGIN_SUCCESS",Xe="OPEN_TREE_NODE",Qe="OPEN_TREE_SUCCESS";var et="REMOVE_VP";var ie="RPC_RESP";var tt="SET_SELECTION_SUCCESS",ae="TABLE_META_RESP",ue="TABLE_LIST_RESP",nt="TABLE_ROW";var st=s=>{switch(s){case"TypeAheadRpcHandler":return"TYPEAHEAD";default:return"SIMUL"}};var ot=[],T=w("array-backed-moving-window"),h,K=class{constructor({from:e,to:t},{from:n,to:r},o){F(this,h,void 0);this.setRowCount=e=>{var t;if((t=T.info)==null||t.call(T,`setRowCount ${e}`),e<this.internalData.length&&(this.internalData.length=e),e<this.rowCount){this.rowsWithinRange=0;let n=Math.min(e,this.clientRange.to);for(let r=this.clientRange.from;r<n;r++){let o=r-d(this,h).from;this.internalData[o]!==void 0&&(this.rowsWithinRange+=1)}}this.rowCount=e};this.bufferBreakout=(e,t)=>{let n=this.bufferSize*.25;return d(this,h).to-t<n?!0:d(this,h).from>0&&e-d(this,h).from<n};this.bufferSize=o,this.clientRange=new v(e,t),he(this,h,new v(n,r)),this.internalData=new Array(o),this.rowsWithinRange=0,this.rowCount=0}get range(){return d(this,h)}get hasAllRowsWithinRange(){return this.rowsWithinRange===this.clientRange.to-this.clientRange.from||this.rowCount>0&&this.clientRange.from+this.rowsWithinRange===this.rowCount}outOfRange(e,t){let{from:n,to:r}=this.range;if(t<n||e>=r)return!0}setAtIndex(e){let{rowIndex:t}=e,n=this.isWithinClientRange(t);if(n||this.isWithinRange(t)){let r=t-d(this,h).from;!this.internalData[r]&&n&&(this.rowsWithinRange+=1),this.internalData[r]=e}return n}getAtIndex(e){return d(this,h).isWithin(e)&&this.internalData[e-d(this,h).from]!=null?this.internalData[e-d(this,h).from]:void 0}isWithinRange(e){return d(this,h).isWithin(e)}isWithinClientRange(e){return this.clientRange.isWithin(e)}setClientRange(e,t){var p;(p=T.debug)==null||p.call(T,`setClientRange ${e} - ${t}`);let n=this.clientRange.from,r=Math.min(this.clientRange.to,this.rowCount);if(e===n&&t===r)return[!1,ot];let o=this.clientRange.copy();this.clientRange.from=e,this.clientRange.to=t,this.rowsWithinRange=0;for(let i=e;i<t;i++){let l=i-d(this,h).from;this.internalData[l]&&(this.rowsWithinRange+=1)}let a=ot,u=d(this,h).from;if(this.hasAllRowsWithinRange)if(t>o.to){let i=Math.max(e,o.to);a=this.internalData.slice(i-u,t-u)}else{let i=Math.min(o.from,t);a=this.internalData.slice(e-u,i-u)}return[this.bufferBreakout(e,t),a]}setRange(e,t){var n,r;if(e!==d(this,h).from||t!==d(this,h).to){(n=T.debug)==null||n.call(T,`setRange ${e} - ${t}`);let[o,a]=d(this,h).overlap(e,t),u=new Array(t-e);this.rowsWithinRange=0;for(let c=o;c<a;c++){let p=this.getAtIndex(c);if(p){let i=c-e;u[i]=p,this.isWithinClientRange(c)&&(this.rowsWithinRange+=1)}}this.internalData=u,d(this,h).from=e,d(this,h).to=t}else(r=T.debug)==null||r.call(T,`setRange ${e} - ${t} IGNORED because not changed`)}get data(){return this.internalData}getData(){var u;let{from:e,to:t}=d(this,h),{from:n,to:r}=this.clientRange,o=Math.max(0,n-e),a=Math.min(t-e,t,r-e,(u=this.rowCount)!=null?u:t);return this.internalData.slice(o,a)}clear(){var e;(e=T.debug)==null||e.call(T,"clear"),this.internalData.length=0,this.rowsWithinRange=0,this.setRowCount(0)}getCurrentDataRange(){let e=this.internalData,t=e.length,[n]=this.internalData,r=this.internalData[t-1];if(n&&r)return[n.rowIndex,r.rowIndex];for(let o=0;o<t;o++)if(e[o]!==void 0){n=e[o];break}for(let o=t-1;o>=0;o--)if(e[o]!==void 0){r=e[o];break}return n&&r?[n.rowIndex,r.rowIndex]:[-1,-1]}};h=new WeakMap;var Ot=[],{debug:b,debugEnabled:H,error:kt,info:g,infoEnabled:At,warn:P}=w("viewport"),Ut=({rowKey:s,updateType:e})=>e==="U"&&!s.startsWith("$root"),j=[void 0,void 0],Ft={count:0,mode:void 0,size:0,ts:0},z=class{constructor({aggregations:e,bufferSize:t=50,columns:n,filter:r,groupBy:o=[],table:a,range:u,sort:c,title:p,viewport:i,visualLink:l},f){this.batchMode=!0;this.hasUpdates=!1;this.pendingUpdates=[];this.pendingOperations=new Map;this.pendingRangeRequests=[];this.rowCountChanged=!1;this.selectedRows=[];this.tableSchema=null;this.useBatchMode=!0;this.lastUpdateStatus=Ft;this.updateThrottleTimer=void 0;this.rangeMonitor=new $("ViewPort");this.disabled=!1;this.isTree=!1;this.status="";this.suspended=!1;this.suspendTimer=null;this.setLastSizeOnlyUpdateSize=e=>{this.lastUpdateStatus.size=e};this.setLastUpdate=e=>{let{ts:t,mode:n}=this.lastUpdateStatus,r=0;if(n===e){let o=Date.now();console.log(`read data now ${o}`),this.lastUpdateStatus.count+=1,this.lastUpdateStatus.ts=o,r=t===0?0:o-t}else this.lastUpdateStatus.count=1,this.lastUpdateStatus.ts=0,r=0;return this.lastUpdateStatus.mode=e,r};this.rangeRequestAlreadyPending=e=>{let{bufferSize:t}=this,n=t*.25,{from:r}=e;for(let{from:o,to:a}of this.pendingRangeRequests)if(r>=o&&r<a){if(e.to+n<=a)return!0;r=a}return!1};this.sendThrottledSizeMessage=()=>{this.updateThrottleTimer=void 0,this.lastUpdateStatus.count=3,this.postMessageToClient({clientViewportId:this.clientViewportId,mode:"size-only",size:this.lastUpdateStatus.size,type:"viewport-update"})};this.shouldThrottleMessage=e=>{let t=this.setLastUpdate(e);return console.log(`elapsed time = ${t}`),e==="size-only"&&t>0&&t<500&&this.lastUpdateStatus.count>3};this.throttleMessage=e=>this.shouldThrottleMessage(e)?(console.log("throttling updates setTimeout to 2000"),this.updateThrottleTimer===void 0&&(this.updateThrottleTimer=setTimeout(this.sendThrottledSizeMessage,2e3)),!0):(this.updateThrottleTimer!==void 0&&(clearTimeout(this.updateThrottleTimer),this.updateThrottleTimer=void 0),!1);this.getNewRowCount=()=>{if(this.rowCountChanged&&this.dataWindow)return this.rowCountChanged=!1,this.dataWindow.rowCount};this.aggregations=e,this.bufferSize=t,this.clientRange=u,this.clientViewportId=i,this.columns=n,this.filter=r,this.groupBy=o,this.keys=new B(u),this.pendingLinkedParent=l,this.table=a,this.sort=c,this.title=p,At&&(g==null||g(`constructor #${i} ${a.table} bufferSize=${t}`)),this.dataWindow=new K(this.clientRange,u,this.bufferSize),this.postMessageToClient=f}get hasUpdatesToProcess(){return this.suspended?!1:this.rowCountChanged||this.hasUpdates}get size(){var e;return(e=this.dataWindow.rowCount)!=null?e:0}subscribe(){let{filter:e}=this.filter;return this.status=this.status==="subscribed"?"resubscribing":"subscribing",{type:$e,table:this.table,range:Y(this.clientRange,this.bufferSize),aggregations:this.aggregations,columns:this.columns,sort:this.sort,groupBy:this.groupBy,filterSpec:{filter:e}}}handleSubscribed({viewPortId:e,aggregations:t,columns:n,filterSpec:r,range:o,sort:a,groupBy:u}){return this.serverViewportId=e,this.status="subscribed",this.aggregations=t,this.columns=n,this.groupBy=u,this.isTree=u&&u.length>0,this.dataWindow.setRange(o.from,o.to),{aggregations:t,type:"subscribed",clientViewportId:this.clientViewportId,columns:n,filter:r,groupBy:u,range:o,sort:a,tableSchema:this.tableSchema}}awaitOperation(e,t){this.pendingOperations.set(e,t)}completeOperation(e,...t){var u;let{clientViewportId:n,pendingOperations:r}=this,o=r.get(e);if(!o){kt("no matching operation found to complete");return}let{type:a}=o;if(g==null||g(`completeOperation ${a}`),r.delete(e),a==="CHANGE_VP_RANGE"){let[c,p]=t;(u=this.dataWindow)==null||u.setRange(c,p);for(let i=this.pendingRangeRequests.length-1;i>=0;i--){let l=this.pendingRangeRequests[i];if(l.requestId===e){l.acked=!0;break}else P==null||P("range requests sent faster than they are being ACKed")}}else if(a==="config"){let{aggregations:c,columns:p,filter:i,groupBy:l,sort:f}=o.data;return this.aggregations=c,this.columns=p,this.filter=i,this.groupBy=l,this.sort=f,l.length>0?this.isTree=!0:this.isTree&&(this.isTree=!1),b==null||b(`config change confirmed, isTree : ${this.isTree}`),{clientViewportId:n,type:a,config:o.data}}else{if(a==="groupBy")return this.isTree=o.data.length>0,this.groupBy=o.data,b==null||b(`groupBy change confirmed, isTree : ${this.isTree}`),{clientViewportId:n,type:a,groupBy:o.data};if(a==="columns")return this.columns=o.data,{clientViewportId:n,type:a,columns:o.data};if(a==="filter")return this.filter=o.data,{clientViewportId:n,type:a,filter:o.data};if(a==="aggregate")return this.aggregations=o.data,{clientViewportId:n,type:"aggregate",aggregations:this.aggregations};if(a==="sort")return this.sort=o.data,{clientViewportId:n,type:a,sort:this.sort};if(a!=="selection"){if(a==="disable")return this.disabled=!0,{type:"disabled",clientViewportId:n};if(a==="enable")return this.disabled=!1,{type:"enabled",clientViewportId:n};if(a==="CREATE_VISUAL_LINK"){let[c,p,i]=t;return this.linkedParent={colName:c,parentViewportId:p,parentColName:i},this.pendingLinkedParent=void 0,{type:"vuu-link-created",clientViewportId:n,colName:c,parentViewportId:p,parentColName:i}}else if(a==="REMOVE_VISUAL_LINK")return this.linkedParent=void 0,{type:"vuu-link-removed",clientViewportId:n}}}}rangeRequest(e,t){H&&this.rangeMonitor.set(t);let n="CHANGE_VP_RANGE";if(this.dataWindow){let[r,o]=this.dataWindow.setClientRange(t.from,t.to),a,u=this.dataWindow.rowCount||void 0,c=r&&!this.rangeRequestAlreadyPending(t)?{type:n,viewPortId:this.serverViewportId,...Y(t,this.bufferSize,u)}:null;if(c){H&&(b==null||b(`create CHANGE_VP_RANGE: [${c.from} - ${c.to}]`)),this.awaitOperation(e,{type:n});let i=this.pendingRangeRequests.at(-1);if(i)if(i.acked)console.warn("Range Request before previous request is filled");else{let{from:l,to:f}=i;this.dataWindow.outOfRange(l,f)?a={clientViewportId:this.clientViewportId,type:"debounce-begin"}:P==null||P("Range Request before previous request is acked")}this.pendingRangeRequests.push({...c,requestId:e}),this.useBatchMode&&(this.batchMode=!0)}else o.length>0&&(this.batchMode=!1);this.keys.reset(this.dataWindow.clientRange);let p=this.isTree?ce:le;return o.length?[c,o.map(i=>p(i,this.keys,this.selectedRows))]:a?[c,void 0,a]:[c]}else return[null]}setLinks(e){return this.links=e,[{type:"vuu-links",links:e,clientViewportId:this.clientViewportId},this.pendingLinkedParent]}setMenu(e){return{type:"vuu-menu",menu:e,clientViewportId:this.clientViewportId}}setTableSchema(e){this.tableSchema=e}openTreeNode(e,t){return this.useBatchMode&&(this.batchMode=!0),{type:Xe,vpId:this.serverViewportId,treeKey:t.key}}closeTreeNode(e,t){return this.useBatchMode&&(this.batchMode=!0),{type:Ne,vpId:this.serverViewportId,treeKey:t.key}}createLink(e,t,n,r){let o={type:"CREATE_VISUAL_LINK",parentVpId:n,childVpId:this.serverViewportId,parentColumnName:r,childColumnName:t};return this.awaitOperation(e,o),this.useBatchMode&&(this.batchMode=!0),o}removeLink(e){let t={type:"REMOVE_VISUAL_LINK",childVpId:this.serverViewportId};return this.awaitOperation(e,t),t}suspend(){this.suspended=!0,g==null||g("suspend")}resume(){return this.suspended=!1,H&&(b==null||b(`resume: ${this.currentData()}`)),this.currentData()}currentData(){let e=[];if(this.dataWindow){let t=this.dataWindow.getData(),{keys:n}=this,r=this.isTree?ce:le;for(let o of t)o&&e.push(r(o,n,this.selectedRows))}return e}enable(e){return this.awaitOperation(e,{type:"enable"}),g==null||g(`enable: ${this.serverViewportId}`),{type:Ke,viewPortId:this.serverViewportId}}disable(e){return this.awaitOperation(e,{type:"disable"}),g==null||g(`disable: ${this.serverViewportId}`),this.suspended=!1,{type:Be,viewPortId:this.serverViewportId}}columnRequest(e,t){return this.awaitOperation(e,{type:"columns",data:t}),b==null||b(`columnRequest: ${t}`),this.createRequest({columns:t})}filterRequest(e,t){this.awaitOperation(e,{type:"filter",data:t}),this.useBatchMode&&(this.batchMode=!0);let{filter:n}=t;return g==null||g(`filterRequest: ${n}`),this.createRequest({filterSpec:{filter:n}})}setConfig(e,t){this.awaitOperation(e,{type:"config",data:t});let{filter:n,...r}=t;return this.useBatchMode&&(this.batchMode=!0),H?b==null||b(`setConfig ${JSON.stringify(t)}`):g==null||g("setConfig"),this.createRequest({...r,filterSpec:typeof(n==null?void 0:n.filter)=="string"?{filter:n.filter}:{filter:""}},!0)}aggregateRequest(e,t){return this.awaitOperation(e,{type:"aggregate",data:t}),g==null||g(`aggregateRequest: ${t}`),this.createRequest({aggregations:t})}sortRequest(e,t){return this.awaitOperation(e,{type:"sort",data:t}),g==null||g(`sortRequest: ${JSON.stringify(t.sortDefs)}`),this.createRequest({sort:t})}groupByRequest(e,t=Ot){var n;return this.awaitOperation(e,{type:"groupBy",data:t}),this.useBatchMode&&(this.batchMode=!0),this.isTree||(n=this.dataWindow)==null||n.clear(),this.createRequest({groupBy:t})}selectRequest(e,t){return this.selectedRows=t,this.awaitOperation(e,{type:"selection",data:t}),g==null||g(`selectRequest: ${t}`),{type:"SET_SELECTION",vpId:this.serverViewportId,selection:Te(t)}}removePendingRangeRequest(e,t){for(let n=this.pendingRangeRequests.length-1;n>=0;n--){let{from:r,to:o}=this.pendingRangeRequests[n],a=!0;if(e>=r&&e<o||t>r&&t<o){a||console.warn("removePendingRangeRequest TABLE_ROWS are not for latest request"),this.pendingRangeRequests.splice(n,1);break}else a=!1}}updateRows(e){var r,o,a;let[t,n]=_e(e);if(t&&n&&this.removePendingRangeRequest(t.rowIndex,n.rowIndex),e.length===1)if(t.vpSize===0&&this.disabled){b==null||b(`ignore a SIZE=0 message on disabled viewport (${e.length} rows)`);return}else t.updateType==="SIZE"&&this.setLastSizeOnlyUpdateSize(t.vpSize);for(let u of e)this.isTree&&Ut(u)||((u.updateType==="SIZE"||((r=this.dataWindow)==null?void 0:r.rowCount)!==u.vpSize)&&((o=this.dataWindow)==null||o.setRowCount(u.vpSize),this.rowCountChanged=!0),u.updateType==="U"&&(a=this.dataWindow)!=null&&a.setAtIndex(u)&&(this.hasUpdates=!0,this.batchMode||this.pendingUpdates.push(u)))}getClientRows(){let e,t="size-only";if(!this.hasUpdates&&!this.rowCountChanged)return j;if(this.hasUpdates){let{keys:n,selectedRows:r}=this,o=this.isTree?ce:le;if(this.updateThrottleTimer&&(self.clearTimeout(this.updateThrottleTimer),this.updateThrottleTimer=void 0),this.pendingUpdates.length>0){e=[],t="update";for(let a of this.pendingUpdates)e.push(o(a,n,r));this.pendingUpdates.length=0}else{let a=this.dataWindow.getData();if(this.dataWindow.hasAllRowsWithinRange){e=[],t="batch";for(let u of a)e.push(o(u,n,r));this.batchMode=!1}}this.hasUpdates=!1}return this.throttleMessage(t)?j:[e,t]}createRequest(e,t=!1){return t?{type:"CHANGE_VP",viewPortId:this.serverViewportId,...e}:{type:"CHANGE_VP",viewPortId:this.serverViewportId,aggregations:this.aggregations,columns:this.columns,sort:this.sort,groupBy:this.groupBy,filterSpec:{filter:this.filter.filter},...e}}},le=({rowIndex:s,rowKey:e,sel:t,data:n},r,o)=>[s,r.keyFor(s),!0,!1,0,0,e,t?Z(o,s):0].concat(n),ce=({rowIndex:s,rowKey:e,sel:t,data:n},r,o)=>{let[a,u,,c,,p,...i]=n;return[s,r.keyFor(s),c,u,a,p,e,t?Z(o,s):0].concat(i)};var it=1;var{debug:E,debugEnabled:L,error:O,info:y,infoEnabled:Nt,warn:k}=w("server-proxy"),C=()=>`${it++}`,Wt={},$t=s=>s.disabled!==!0&&s.suspended!==!0,qt={type:"NO_ACTION"},Bt=(s,e,t)=>s.map(n=>n.parentVpId===e?{...n,label:t}:n);function Gt(s,e){return s.map(t=>{let{parentVpId:n}=t,r=e.get(n);if(r)return{...t,parentClientVpId:r.clientViewportId,label:r.title};throw Error("addLabelsToLinks viewport not found")})}var J=class{constructor(e,t){this.authToken="";this.user="user";this.pendingTableMetaRequests=new Map;this.pendingRequests=new Map;this.queuedRequests=[];this.cachedTableSchemas=new Map;this.connection=e,this.postMessageToClient=t,this.viewports=new Map,this.mapClientToServerViewport=new Map}async reconnect(){await this.login(this.authToken);let[e,t]=be(Array.from(this.viewports.values()),$t);this.viewports.clear(),this.mapClientToServerViewport.clear();let n=r=>{r.forEach(o=>{let{clientViewportId:a}=o;this.viewports.set(a,o),this.sendMessageToServer(o.subscribe(),a)})};n(e),setTimeout(()=>{n(t)},2e3)}async login(e,t="user"){if(e)return this.authToken=e,this.user=t,new Promise((n,r)=>{this.sendMessageToServer({type:Ye,token:this.authToken,user:t},""),this.pendingLogin={resolve:n,reject:r}});this.authToken===""&&O("login, cannot login until auth token has been obtained")}subscribe(e){if(this.mapClientToServerViewport.has(e.viewport))O(`spurious subscribe call ${e.viewport}`);else{if(!this.hasSchemaForTable(e.table)&&!G(e.table)){y==null||y(`subscribe to ${e.table.table}, no metadata yet, request metadata`);let n=C();this.sendMessageToServer({type:"GET_TABLE_META",table:e.table},n),this.pendingTableMetaRequests.set(n,e.viewport)}let t=new z(e,this.postMessageToClient);this.viewports.set(e.viewport,t),this.sendIfReady(t.subscribe(),e.viewport,this.sessionId!=="")}}unsubscribe(e){let t=this.mapClientToServerViewport.get(e);t?(y==null||y(`Unsubscribe Message (Client to Server):\n ${t}`),this.sendMessageToServer({type:et,viewPortId:t})):O(`failed to unsubscribe client viewport ${e}, viewport not found`)}getViewportForClient(e,t=!0){let n=this.mapClientToServerViewport.get(e);if(n){let r=this.viewports.get(n);if(r)return r;if(t)throw Error(`Viewport not found for client viewport ${e}`);return null}else{if(this.viewports.has(e))return this.viewports.get(e);if(t)throw Error(`Viewport server id not found for client viewport ${e}`);return null}}setViewRange(e,t){let n=C(),[r,o,a]=e.rangeRequest(n,t.range);y==null||y(`setViewRange ${t.range.from} - ${t.range.to}`),r&&this.sendIfReady(r,n,e.status==="subscribed"),o?(y==null||y(`setViewRange ${o.length} rows returned from cache`),this.postMessageToClient({mode:"batch",type:"viewport-update",clientViewportId:e.clientViewportId,rows:o})):a&&this.postMessageToClient(a)}setConfig(e,t){let n=C(),r=e.setConfig(n,t.config);this.sendIfReady(r,n,e.status==="subscribed")}aggregate(e,t){let n=C(),r=e.aggregateRequest(n,t.aggregations);this.sendIfReady(r,n,e.status==="subscribed")}sort(e,t){let n=C(),r=e.sortRequest(n,t.sort);this.sendIfReady(r,n,e.status==="subscribed")}groupBy(e,t){let n=C(),r=e.groupByRequest(n,t.groupBy);this.sendIfReady(r,n,e.status==="subscribed")}filter(e,t){let n=C(),{filter:r}=t,o=e.filterRequest(n,r);this.sendIfReady(o,n,e.status==="subscribed")}setColumns(e,t){let n=C(),{columns:r}=t,o=e.columnRequest(n,r);this.sendIfReady(o,n,e.status==="subscribed")}setTitle(e,t){e&&(e.title=t.title,this.updateTitleOnVisualLinks(e))}select(e,t){let n=C(),{selected:r}=t,o=e.selectRequest(n,r);this.sendIfReady(o,n,e.status==="subscribed")}disableViewport(e){let t=C(),n=e.disable(t);this.sendIfReady(n,t,e.status==="subscribed")}enableViewport(e){if(e.disabled){let t=C(),n=e.enable(t);this.sendIfReady(n,t,e.status==="subscribed")}}suspendViewport(e){e.suspend(),e.suspendTimer=setTimeout(()=>{y==null||y("suspendTimer expired, escalate suspend to disable"),this.disableViewport(e)},3e3)}resumeViewport(e){e.suspendTimer&&(E==null||E("clear suspend timer"),clearTimeout(e.suspendTimer),e.suspendTimer=null);let t=e.resume();this.postMessageToClient({clientViewportId:e.clientViewportId,mode:"batch",rows:t,type:"viewport-update"})}openTreeNode(e,t){if(e.serverViewportId){let n=C();this.sendIfReady(e.openTreeNode(n,t),n,e.status==="subscribed")}}closeTreeNode(e,t){if(e.serverViewportId){let n=C();this.sendIfReady(e.closeTreeNode(n,t),n,e.status==="subscribed")}}createLink(e,t){let{parentClientVpId:n,parentColumnName:r,childColumnName:o}=t,a=C(),u=this.mapClientToServerViewport.get(n);if(u){let c=e.createLink(a,o,u,r);this.sendMessageToServer(c,a)}else O("ServerProxy unable to create link, viewport not found")}removeLink(e){let t=C(),n=e.removeLink(t);this.sendMessageToServer(n,t)}updateTitleOnVisualLinks(e){var r;let{serverViewportId:t,title:n}=e;for(let o of this.viewports.values())if(o!==e&&o.links&&t&&n&&(r=o.links)!=null&&r.some(a=>a.parentVpId===t)){let[a]=o.setLinks(Bt(o.links,t,n));this.postMessageToClient(a)}}removeViewportFromVisualLinks(e){var t;for(let n of this.viewports.values())if((t=n.links)!=null&&t.some(({parentVpId:r})=>r===e)){let[r]=n.setLinks(n.links.filter(({parentVpId:o})=>o!==e));this.postMessageToClient(r)}}menuRpcCall(e){let t=this.getViewportForClient(e.vpId,!1);if(t!=null&&t.serverViewportId){let[n,r]=re(e);this.sendMessageToServer({...r,vpId:t.serverViewportId},n)}}rpcCall(e){let[t,n]=re(e),r=st(n.service);this.sendMessageToServer(n,t,{module:r})}handleMessageFromClient(e){if(E==null||E(`handleMessageFromClient: ${e.type}`),ke(e))if(e.type==="disable"){let t=this.getViewportForClient(e.viewport,!1);return t!==null?this.disableViewport(t):void 0}else{let t=this.getViewportForClient(e.viewport);switch(e.type){case"setViewRange":return this.setViewRange(t,e);case"config":return this.setConfig(t,e);case"aggregate":return this.aggregate(t,e);case"sort":return this.sort(t,e);case"groupBy":return this.groupBy(t,e);case"filter":return this.filter(t,e);case"select":return this.select(t,e);case"suspend":return this.suspendViewport(t);case"resume":return this.resumeViewport(t);case"enable":return this.enableViewport(t);case"openTreeNode":return this.openTreeNode(t,e);case"closeTreeNode":return this.closeTreeNode(t,e);case"createLink":return this.createLink(t,e);case"removeLink":return this.removeLink(t);case"setColumns":return this.setColumns(t,e);case"setTitle":return this.setTitle(t,e);default:}}else{if(De(e))return this.menuRpcCall(e);{let{type:t,requestId:n}=e;switch(t){case"GET_TABLE_LIST":return this.sendMessageToServer({type:t},n);case"GET_TABLE_META":return this.sendMessageToServer({type:t,table:e.table},n);case"RPC_CALL":return this.rpcCall(e);default:}}}O(`Vuu ServerProxy Unexpected message from client ${JSON.stringify(e)}`)}awaitResponseToMessage(e){return new Promise((t,n)=>{let r=C();this.sendMessageToServer(e,r),this.pendingRequests.set(r,{reject:n,resolve:t})})}sendIfReady(e,t,n=!0){return n?this.sendMessageToServer(e,t):this.queuedRequests.push(e),n}sendMessageToServer(e,t=`${it++}`,n=Wt){let{module:r="CORE"}=n;this.authToken&&this.connection.send({requestId:t,sessionId:this.sessionId,token:this.authToken,user:this.user,module:r,body:e})}handleMessageFromServer(e){var u;let{body:t,requestId:n,sessionId:r}=e,o=this.pendingRequests.get(n);if(o){let{resolve:i}=o;this.pendingRequests.delete(n),i(t);return}let{viewports:a}=this;switch(t.type){case ze:this.sendMessageToServer({type:Je,ts:+new Date},"NA");break;case Ze:if(r)this.sessionId=r,(u=this.pendingLogin)==null||u.resolve(r),this.pendingLogin=void 0;else throw Error("LOGIN_SUCCESS did not provide sessionId");break;case qe:{let i=a.get(n);if(i){let{status:l}=i,{viewPortId:f}=t;n!==f&&(a.delete(n),a.set(f,i)),this.mapClientToServerViewport.set(n,f);let R=i.handleSubscribed(t);R&&(this.postMessageToClient(R),L&&E(`post DataSourceSubscribedMessage to client: ${JSON.stringify(R)}`)),i.disabled&&this.disableViewport(i),l==="subscribing"&&!G(i.table)&&(this.sendMessageToServer({type:oe,vpId:f}),this.sendMessageToServer({type:je,vpId:f}),Array.from(a.entries()).filter(([M,{disabled:U}])=>M!==f&&!U).forEach(([M])=>{this.sendMessageToServer({type:oe,vpId:M})}))}}break;case"REMOVE_VP_SUCCESS":{let i=this.viewports.get(t.viewPortId);i&&(this.mapClientToServerViewport.delete(i.clientViewportId),a.delete(t.viewPortId),this.removeViewportFromVisualLinks(t.viewPortId))}break;case tt:{let i=this.viewports.get(t.vpId);i&&i.completeOperation(n)}break;case Ue:case Ge:if(a.has(t.viewPortId)){let i=this.viewports.get(t.viewPortId);if(i){let l=i.completeOperation(n);l!==void 0&&(this.postMessageToClient(l),L&&E(`postMessageToClient ${JSON.stringify(l)}`))}}break;case He:{let i=this.viewports.get(t.viewPortId);if(i){let l=i.completeOperation(n);if(l){this.postMessageToClient(l);let f=i.currentData();L&&E(`Enable Response (ServerProxy to Client): ${JSON.stringify(l)}`),i.size===0?L&&E("Viewport Enabled but size 0, resend to server"):(this.postMessageToClient({clientViewportId:i.clientViewportId,mode:"batch",rows:f,size:i.size,type:"viewport-update"}),L&&E(`Enable Response (ServerProxy to Client): send size ${i.size} ${f.length} rows from cache`))}}}break;case nt:{let i=Pe(t.rows);for(let[l,f]of Object.entries(i)){let R=a.get(l);R?R.updateRows(f):k==null||k(`TABLE_ROW message received for non registered viewport ${l}`)}this.processUpdates()}break;case Fe:{let i=this.viewports.get(t.viewPortId);if(i){let{from:l,to:f}=t;i.completeOperation(n,l,f)}}break;case Qe:case We:break;case"CREATE_VISUAL_LINK_SUCCESS":{let i=this.viewports.get(t.childVpId),l=this.viewports.get(t.parentVpId);if(i&&l){let{childColumnName:f,parentColumnName:R}=t,M=i.completeOperation(n,f,l.clientViewportId,R);M&&this.postMessageToClient(M)}}break;case"REMOVE_VISUAL_LINK_SUCCESS":{let i=this.viewports.get(t.childVpId);if(i){let l=i.completeOperation(n);l&&this.postMessageToClient(l)}}break;case ue:this.postMessageToClient({type:ue,tables:t.tables,requestId:n});break;case ae:{let i=this.cacheTableMeta(t),l=this.pendingTableMetaRequests.get(n);if(l){this.pendingTableMetaRequests.delete(n);let f=this.viewports.get(l);f?f.setTableSchema(i):k==null||k("Message has come back AFTER CREATE_VP_SUCCESS, what do we do now")}else this.postMessageToClient({type:ae,tableSchema:i,requestId:n})}break;case"VP_VISUAL_LINKS_RESP":{let i=this.getActiveLinks(t.links),l=this.viewports.get(t.vpId);if(i.length&&l){let f=Gt(i,this.viewports),[R,M]=l.setLinks(f);if(this.postMessageToClient(R),M){let{link:U,parentClientVpId:at}=M,ge=C(),fe=this.mapClientToServerViewport.get(at);if(fe){let ut=l.createLink(ge,U.fromColumn,fe,U.toColumn);this.sendMessageToServer(ut,ge)}}}}break;case"VIEW_PORT_MENUS_RESP":if(t.menu.name){let i=this.viewports.get(t.vpId);if(i){let l=i.setMenu(t.menu);this.postMessageToClient(l)}}break;case"VP_EDIT_RPC_RESPONSE":this.postMessageToClient({action:t.action,requestId:n,rpcName:t.rpcName,type:"VP_EDIT_RPC_RESPONSE"});break;case"VP_EDIT_RPC_REJECT":this.viewports.get(t.vpId)&&this.postMessageToClient({requestId:n,type:"VP_EDIT_RPC_REJECT",error:t.error});break;case"VIEW_PORT_MENU_RESP":if(Ae(t)){let{action:i,rpcName:l}=t;this.awaitResponseToMessage({type:"GET_TABLE_META",table:i.table}).then(f=>{let R=se(f);this.postMessageToClient({rpcName:l,type:"VIEW_PORT_MENU_RESP",action:{...i,tableSchema:R},tableAlreadyOpen:this.isTableOpen(i.table),requestId:n})})}else{let{action:i}=t;this.postMessageToClient({type:"VIEW_PORT_MENU_RESP",action:i||qt,tableAlreadyOpen:i!==null&&this.isTableOpen(i.table),requestId:n})}break;case ie:{let{method:i,result:l}=t;this.postMessageToClient({type:ie,method:i,result:l,requestId:n})}break;case"ERROR":O(t.msg);break;default:Nt&&y(`handleMessageFromServer ${t.type}.`)}}hasSchemaForTable(e){return this.cachedTableSchemas.has(`${e.module}:${e.table}`)}cacheTableMeta(e){let{module:t,table:n}=e.table,r=`${t}:${n}`,o=this.cachedTableSchemas.get(r);return o||(o=se(e),this.cachedTableSchemas.set(r,o)),o}isTableOpen(e){if(e){let t=e.table;for(let n of this.viewports.values())if(!n.suspended&&n.table.table===t)return!0}}getActiveLinks(e){return e.filter(t=>{let n=this.viewports.get(t.parentVpId);return n&&!n.suspended})}processUpdates(){this.viewports.forEach(e=>{var t;if(e.hasUpdatesToProcess){let n=e.getClientRows();if(n!==j){let[r,o]=n,a=e.getNewRowCount();(a!==void 0||r&&r.length>0)&&(L&&E(`postMessageToClient #${e.clientViewportId} viewport-update ${o}, ${(t=r==null?void 0:r.length)!=null?t:"no"} rows, size ${a}`),o&&this.postMessageToClient({clientViewportId:e.clientViewportId,mode:o,rows:r,size:a,type:"viewport-update"}))}}})}};var D,{info:pe,infoEnabled:de}=w("worker");async function Kt(s,e,t,n,r,o,a){let u=await ve(s,e,c=>{Oe(c)?postMessage({type:"connection-metrics",messages:c}):Le(c)?(r(c),c.status==="reconnected"&&D.reconnect()):D.handleMessageFromServer(c)},o,a);D=new J(u,c=>Ht(c)),u.requiresLogin&&await D.login(t,n)}function Ht(s){postMessage(s)}var jt=async({data:s})=>{switch(s.type){case"connect":await Kt(s.url,s.protocol,s.token,s.username,postMessage,s.retryLimitDisconnect,s.retryLimitStartup),postMessage({type:"connected"});break;case"subscribe":de&&pe(`client subscribe: ${JSON.stringify(s)}`),D.subscribe(s);break;case"unsubscribe":de&&pe(`client unsubscribe: ${JSON.stringify(s)}`),D.unsubscribe(s.viewport);break;default:de&&pe(`client message: ${JSON.stringify(s)}`),D.handleMessageFromClient(s)}};self.addEventListener("message",jt);postMessage({type:"ready"});\n\n';var k1=new Blob([(0,Li.getLoggingConfigForWorker)()+gC],{type:"text/javascript"}),I1=URL.createObjectURL(k1),Ii,ah,uh=[],L1,A1,bC=new Promise((o,e)=>{L1=o,A1=e}),ph=()=>bC,Nc=new Map,Hc=new Map,O1=async({handleConnectionStatusChange:o,protocol:e,retryLimitDisconnect:t,retryLimitStartup:n,token:r="",username:s,url:i})=>r===""&&ah===void 0?new Promise(l=>{uh.push({resolve:l})}):ah||(ah=new Promise(l=>{let a=new Worker(I1),u=window.setTimeout(()=>{console.error("timed out waiting for worker to load")},1e3);a.onmessage=c=>{let{data:d}=c;if(d.type==="ready")window.clearTimeout(u),a.postMessage({protocol:e,retryLimitDisconnect:t,retryLimitStartup:n,token:r,type:"connect",url:i,username:s});else if(d.type==="connected"){a.onmessage=yC,l(a);for(let p of uh)p.resolve(a);uh.length=0}else lh(d)?o({data:d}):console.warn("ConnectionManager: Unexpected message from the worker")}}));function yC({data:o}){if(uC(o)){let e=Nc.get(o.clientViewportId);e?e.postMessageToClientDataSource(o):console.error(`[ConnectionManager] ${o.type} message received, viewport not found`)}else if(lh(o))Fc.emit("connection-status",o);else if(fC(o))Fc.emit("connection-metrics",o);else{let e=o.requestId;if(Hc.has(e)){let{resolve:t}=Hc.get(e);Hc.delete(e);let{type:n,requestId:r,...s}=o;hC(o)?t(o.result):o.type==="VP_EDIT_RPC_RESPONSE"||o.type==="VP_EDIT_RPC_REJECT"?t(o):mC(o)?t(o.tableSchema):t(s)}else console.warn("%cConnectionManager Unexpected message from the worker","color:red;font-weight:bold;")}}var ch=o=>{let e=(0,Li.uuid)();return Ii.postMessage({requestId:e,...o}),new Promise((t,n)=>{Hc.set(e,{resolve:t,reject:n})})},N1={subscribe:(o,e)=>{Nc.set(o.viewport,{status:"subscribing",request:o,postMessageToClientDataSource:e}),Ii.postMessage({type:"subscribe",...o})},unsubscribe:o=>{Ii.postMessage({type:"unsubscribe",viewport:o})},send:o=>{Ii.postMessage(o)},destroy:o=>{o&&Nc.has(o)&&Nc.delete(o)},rpcCall:async o=>ch(o),getTableList:async()=>ch({type:dC}),getTableSchema:async o=>ch({type:pC,table:o})},dh=class extends Li.EventEmitter{async connect({url:e,authToken:t,username:n,protocol:r,retryLimitDisconnect:s,retryLimitStartup:i}){return Ii=await O1({protocol:r,url:e,token:t,username:n,retryLimitDisconnect:s,retryLimitStartup:i,handleConnectionStatusChange:yC}),N1}destroy(){Ii.terminate()}},Fc=new dh;var xC=async o=>{try{return(await bC).rpcCall(o)}catch{throw Error("Error accessing server api")}};var H1=0,Ta=class{constructor(e,t){this.from=e,this.to=t}},le=class{constructor(e={}){this.id=H1++,this.perNode=!!e.perNode,this.deserialize=e.deserialize||(()=>{throw new Error("This node type doesn't define a deserialize function")})}add(e){if(this.perNode)throw new RangeError("Can't add per-node props to node types");return typeof e!="function"&&(e=nt.match(e)),t=>{let n=e(t);return n===void 0?null:[this,n]}}};le.closedBy=new le({deserialize:o=>o.split(" ")});le.openedBy=new le({deserialize:o=>o.split(" ")});le.group=new le({deserialize:o=>o.split(" ")});le.contextHash=new le({perNode:!0});le.lookAhead=new le({perNode:!0});le.mounted=new le({perNode:!0});var F1=Object.create(null),nt=class{constructor(e,t,n,r=0){this.name=e,this.props=t,this.id=n,this.flags=r}static define(e){let t=e.props&&e.props.length?Object.create(null):F1,n=(e.top?1:0)|(e.skipped?2:0)|(e.error?4:0)|(e.name==null?8:0),r=new nt(e.name||"",t,e.id,n);if(e.props){for(let s of e.props)if(Array.isArray(s)||(s=s(r)),s){if(s[0].perNode)throw new RangeError("Can't store a per-node prop on a node type");t[s[0].id]=s[1]}}return r}prop(e){return this.props[e.id]}get isTop(){return(this.flags&1)>0}get isSkipped(){return(this.flags&2)>0}get isError(){return(this.flags&4)>0}get isAnonymous(){return(this.flags&8)>0}is(e){if(typeof e=="string"){if(this.name==e)return!0;let t=this.prop(le.group);return t?t.indexOf(e)>-1:!1}return this.id==e}static match(e){let t=Object.create(null);for(let n in e)for(let r of n.split(" "))t[r]=e[n];return n=>{for(let r=n.prop(le.group),s=-1;s<(r?r.length:0);s++){let i=t[s<0?n.name:r[s]];if(i)return i}}}};nt.none=new nt("",Object.create(null),0,8);var zo=class{constructor(e){this.types=e;for(let t=0;t<e.length;t++)if(e[t].id!=t)throw new RangeError("Node type ids should correspond to array positions when creating a node set")}extend(...e){let t=[];for(let n of this.types){let r=null;for(let s of e){let i=s(n);i&&(r||(r=Object.assign({},n.props)),r[i[0].id]=i[1])}t.push(r?new nt(n.name,r,n.id,n.flags):n)}return new zo(t)}},Vc=new WeakMap,vC=new WeakMap,Qe;(function(o){o[o.ExcludeBuffers=1]="ExcludeBuffers",o[o.IncludeAnonymous=2]="IncludeAnonymous",o[o.IgnoreMounts=4]="IgnoreMounts",o[o.IgnoreOverlays=8]="IgnoreOverlays"})(Qe||(Qe={}));var Ce=class{constructor(e,t,n,r,s){if(this.type=e,this.children=t,this.positions=n,this.length=r,this.props=null,s&&s.length){this.props=Object.create(null);for(let[i,l]of s)this.props[typeof i=="number"?i:i.id]=l}}toString(){let e=this.prop(le.mounted);if(e&&!e.overlay)return e.tree.toString();let t="";for(let n of this.children){let r=n.toString();r&&(t&&(t+=","),t+=r)}return this.type.name?(/\W/.test(this.type.name)&&!this.type.isError?JSON.stringify(this.type.name):this.type.name)+(t.length?"("+t+")":""):t}cursor(e=0){return new Oi(this.topNode,e)}cursorAt(e,t=0,n=0){let r=Vc.get(this)||this.topNode,s=new Oi(r);return s.moveTo(e,t),Vc.set(this,s._tree),s}get topNode(){return new Yn(this,0,0,null)}resolve(e,t=0){let n=Ai(Vc.get(this)||this.topNode,e,t,!1);return Vc.set(this,n),n}resolveInner(e,t=0){let n=Ai(vC.get(this)||this.topNode,e,t,!0);return vC.set(this,n),n}iterate(e){let{enter:t,leave:n,from:r=0,to:s=this.length}=e,i=e.mode||0,l=(i&Qe.IncludeAnonymous)>0;for(let a=this.cursor(i|Qe.IncludeAnonymous);;){let u=!1;if(a.from<=s&&a.to>=r&&(!l&&a.type.isAnonymous||t(a)!==!1)){if(a.firstChild())continue;u=!0}for(;u&&n&&(l||!a.type.isAnonymous)&&n(a),!a.nextSibling();){if(!a.parent())return;u=!0}}}prop(e){return e.perNode?this.props?this.props[e.id]:void 0:this.type.prop(e)}get propValues(){let e=[];if(this.props)for(let t in this.props)e.push([+t,this.props[t]]);return e}balance(e={}){return this.children.length<=8?this:gh(nt.none,this.children,this.positions,0,this.children.length,0,this.length,(t,n,r)=>new Ce(this.type,t,n,r,this.propValues),e.makeTree||((t,n,r)=>new Ce(nt.none,t,n,r)))}static build(e){return V1(e)}};Ce.empty=new Ce(nt.none,[],[],0);var Ea=class{constructor(e,t){this.buffer=e,this.index=t}get id(){return this.buffer[this.index-4]}get start(){return this.buffer[this.index-3]}get end(){return this.buffer[this.index-2]}get size(){return this.buffer[this.index-1]}get pos(){return this.index}next(){this.index-=4}fork(){return new Ea(this.buffer,this.index)}},$o=class{constructor(e,t,n){this.buffer=e,this.length=t,this.set=n}get type(){return nt.none}toString(){let e=[];for(let t=0;t<this.buffer.length;)e.push(this.childString(t)),t=this.buffer[t+3];return e.join(",")}childString(e){let t=this.buffer[e],n=this.buffer[e+3],r=this.set.types[t],s=r.name;if(/\W/.test(s)&&!r.isError&&(s=JSON.stringify(s)),e+=4,n==e)return s;let i=[];for(;e<n;)i.push(this.childString(e)),e=this.buffer[e+3];return s+"("+i.join(",")+")"}findChild(e,t,n,r,s){let{buffer:i}=this,l=-1;for(let a=e;a!=t&&!(SC(s,r,i[a+1],i[a+2])&&(l=a,n>0));a=i[a+3]);return l}slice(e,t,n){let r=this.buffer,s=new Uint16Array(t-e),i=0;for(let l=e,a=0;l<t;){s[a++]=r[l++],s[a++]=r[l++]-n;let u=s[a++]=r[l++]-n;s[a++]=r[l++]-e,i=Math.max(i,u)}return new $o(s,i,this.set)}};function SC(o,e,t,n){switch(o){case-2:return t<e;case-1:return n>=e&&t<e;case 0:return t<e&&n>e;case 1:return t<=e&&n>e;case 2:return n>e;case 4:return!0}}function wC(o,e){let t=o.childBefore(e);for(;t;){let n=t.lastChild;if(!n||n.to!=t.to)break;n.type.isError&&n.from==n.to?(o=t,t=n.prevSibling):t=n}return o}function Ai(o,e,t,n){for(var r;o.from==o.to||(t<1?o.from>=e:o.from>e)||(t>-1?o.to<=e:o.to<e);){let i=!n&&o instanceof Yn&&o.index<0?null:o.parent;if(!i)return o;o=i}let s=n?0:Qe.IgnoreOverlays;if(n)for(let i=o,l=i.parent;l;i=l,l=i.parent)i instanceof Yn&&i.index<0&&((r=l.enter(e,t,s))===null||r===void 0?void 0:r.from)!=i.from&&(o=l);for(;;){let i=o.enter(e,t,s);if(!i)return o;o=i}}var Yn=class{constructor(e,t,n,r){this._tree=e,this.from=t,this.index=n,this._parent=r}get type(){return this._tree.type}get name(){return this._tree.type.name}get to(){return this.from+this._tree.length}nextChild(e,t,n,r,s=0){for(let i=this;;){for(let{children:l,positions:a}=i._tree,u=t>0?l.length:-1;e!=u;e+=t){let c=l[e],d=a[e]+i.from;if(SC(r,n,d,d+c.length)){if(c instanceof $o){if(s&Qe.ExcludeBuffers)continue;let p=c.findChild(0,c.buffer.length,t,n-d,r);if(p>-1)return new mo(new fh(i,c,e,d),null,p)}else if(s&Qe.IncludeAnonymous||!c.type.isAnonymous||mh(c)){let p;if(!(s&Qe.IgnoreMounts)&&c.props&&(p=c.prop(le.mounted))&&!p.overlay)return new Yn(p.tree,d,e,i);let f=new Yn(c,d,e,i);return s&Qe.IncludeAnonymous||!f.type.isAnonymous?f:f.nextChild(t<0?c.children.length-1:0,t,n,r)}}}if(s&Qe.IncludeAnonymous||!i.type.isAnonymous||(i.index>=0?e=i.index+t:e=t<0?-1:i._parent._tree.children.length,i=i._parent,!i))return null}}get firstChild(){return this.nextChild(0,1,0,4)}get lastChild(){return this.nextChild(this._tree.children.length-1,-1,0,4)}childAfter(e){return this.nextChild(0,1,e,2)}childBefore(e){return this.nextChild(this._tree.children.length-1,-1,e,-2)}enter(e,t,n=0){let r;if(!(n&Qe.IgnoreOverlays)&&(r=this._tree.prop(le.mounted))&&r.overlay){let s=e-this.from;for(let{from:i,to:l}of r.overlay)if((t>0?i<=s:i<s)&&(t<0?l>=s:l>s))return new Yn(r.tree,r.overlay[0].from+this.from,-1,this)}return this.nextChild(0,1,e,t,n)}nextSignificantParent(){let e=this;for(;e.type.isAnonymous&&e._parent;)e=e._parent;return e}get parent(){return this._parent?this._parent.nextSignificantParent():null}get nextSibling(){return this._parent&&this.index>=0?this._parent.nextChild(this.index+1,1,0,4):null}get prevSibling(){return this._parent&&this.index>=0?this._parent.nextChild(this.index-1,-1,0,4):null}cursor(e=0){return new Oi(this,e)}get tree(){return this._tree}toTree(){return this._tree}resolve(e,t=0){return Ai(this,e,t,!1)}resolveInner(e,t=0){return Ai(this,e,t,!0)}enterUnfinishedNodesBefore(e){return wC(this,e)}getChild(e,t=null,n=null){let r=zc(this,e,t,n);return r.length?r[0]:null}getChildren(e,t=null,n=null){return zc(this,e,t,n)}toString(){return this._tree.toString()}get node(){return this}matchContext(e){return $c(this,e)}};function zc(o,e,t,n){let r=o.cursor(),s=[];if(!r.firstChild())return s;if(t!=null){for(;!r.type.is(t);)if(!r.nextSibling())return s}for(;;){if(n!=null&&r.type.is(n))return s;if(r.type.is(e)&&s.push(r.node),!r.nextSibling())return n==null?s:[]}}function $c(o,e,t=e.length-1){for(let n=o.parent;t>=0;n=n.parent){if(!n)return!1;if(!n.type.isAnonymous){if(e[t]&&e[t]!=n.name)return!1;t--}}return!0}var fh=class{constructor(e,t,n,r){this.parent=e,this.buffer=t,this.index=n,this.start=r}},mo=class{get name(){return this.type.name}get from(){return this.context.start+this.context.buffer.buffer[this.index+1]}get to(){return this.context.start+this.context.buffer.buffer[this.index+2]}constructor(e,t,n){this.context=e,this._parent=t,this.index=n,this.type=e.buffer.set.types[e.buffer.buffer[n]]}child(e,t,n){let{buffer:r}=this.context,s=r.findChild(this.index+4,r.buffer[this.index+3],e,t-this.context.start,n);return s<0?null:new mo(this.context,this,s)}get firstChild(){return this.child(1,0,4)}get lastChild(){return this.child(-1,0,4)}childAfter(e){return this.child(1,e,2)}childBefore(e){return this.child(-1,e,-2)}enter(e,t,n=0){if(n&Qe.ExcludeBuffers)return null;let{buffer:r}=this.context,s=r.findChild(this.index+4,r.buffer[this.index+3],t>0?1:-1,e-this.context.start,t);return s<0?null:new mo(this.context,this,s)}get parent(){return this._parent||this.context.parent.nextSignificantParent()}externalSibling(e){return this._parent?null:this.context.parent.nextChild(this.context.index+e,e,0,4)}get nextSibling(){let{buffer:e}=this.context,t=e.buffer[this.index+3];return t<(this._parent?e.buffer[this._parent.index+3]:e.buffer.length)?new mo(this.context,this._parent,t):this.externalSibling(1)}get prevSibling(){let{buffer:e}=this.context,t=this._parent?this._parent.index+4:0;return this.index==t?this.externalSibling(-1):new mo(this.context,this._parent,e.findChild(t,this.index,-1,0,4))}cursor(e=0){return new Oi(this,e)}get tree(){return null}toTree(){let e=[],t=[],{buffer:n}=this.context,r=this.index+4,s=n.buffer[this.index+3];if(s>r){let i=n.buffer[this.index+1];e.push(n.slice(r,s,i)),t.push(0)}return new Ce(this.type,e,t,this.to-this.from)}resolve(e,t=0){return Ai(this,e,t,!1)}resolveInner(e,t=0){return Ai(this,e,t,!0)}enterUnfinishedNodesBefore(e){return wC(this,e)}toString(){return this.context.buffer.childString(this.index)}getChild(e,t=null,n=null){let r=zc(this,e,t,n);return r.length?r[0]:null}getChildren(e,t=null,n=null){return zc(this,e,t,n)}get node(){return this}matchContext(e){return $c(this,e)}},Oi=class{get name(){return this.type.name}constructor(e,t=0){if(this.mode=t,this.buffer=null,this.stack=[],this.index=0,this.bufferNode=null,e instanceof Yn)this.yieldNode(e);else{this._tree=e.context.parent,this.buffer=e.context;for(let n=e._parent;n;n=n._parent)this.stack.unshift(n.index);this.bufferNode=e,this.yieldBuf(e.index)}}yieldNode(e){return e?(this._tree=e,this.type=e.type,this.from=e.from,this.to=e.to,!0):!1}yieldBuf(e,t){this.index=e;let{start:n,buffer:r}=this.buffer;return this.type=t||r.set.types[r.buffer[e]],this.from=n+r.buffer[e+1],this.to=n+r.buffer[e+2],!0}yield(e){return e?e instanceof Yn?(this.buffer=null,this.yieldNode(e)):(this.buffer=e.context,this.yieldBuf(e.index,e.type)):!1}toString(){return this.buffer?this.buffer.buffer.childString(this.index):this._tree.toString()}enterChild(e,t,n){if(!this.buffer)return this.yield(this._tree.nextChild(e<0?this._tree._tree.children.length-1:0,e,t,n,this.mode));let{buffer:r}=this.buffer,s=r.findChild(this.index+4,r.buffer[this.index+3],e,t-this.buffer.start,n);return s<0?!1:(this.stack.push(this.index),this.yieldBuf(s))}firstChild(){return this.enterChild(1,0,4)}lastChild(){return this.enterChild(-1,0,4)}childAfter(e){return this.enterChild(1,e,2)}childBefore(e){return this.enterChild(-1,e,-2)}enter(e,t,n=this.mode){return this.buffer?n&Qe.ExcludeBuffers?!1:this.enterChild(1,e,t):this.yield(this._tree.enter(e,t,n))}parent(){if(!this.buffer)return this.yieldNode(this.mode&Qe.IncludeAnonymous?this._tree._parent:this._tree.parent);if(this.stack.length)return this.yieldBuf(this.stack.pop());let e=this.mode&Qe.IncludeAnonymous?this.buffer.parent:this.buffer.parent.nextSignificantParent();return this.buffer=null,this.yieldNode(e)}sibling(e){if(!this.buffer)return this._tree._parent?this.yield(this._tree.index<0?null:this._tree._parent.nextChild(this._tree.index+e,e,0,4,this.mode)):!1;let{buffer:t}=this.buffer,n=this.stack.length-1;if(e<0){let r=n<0?0:this.stack[n]+4;if(this.index!=r)return this.yieldBuf(t.findChild(r,this.index,-1,0,4))}else{let r=t.buffer[this.index+3];if(r<(n<0?t.buffer.length:t.buffer[this.stack[n]+3]))return this.yieldBuf(r)}return n<0?this.yield(this.buffer.parent.nextChild(this.buffer.index+e,e,0,4,this.mode)):!1}nextSibling(){return this.sibling(1)}prevSibling(){return this.sibling(-1)}atLastNode(e){let t,n,{buffer:r}=this;if(r){if(e>0){if(this.index<r.buffer.buffer.length)return!1}else for(let s=0;s<this.index;s++)if(r.buffer.buffer[s+3]<this.index)return!1;({index:t,parent:n}=r)}else({index:t,_parent:n}=this._tree);for(;n;{index:t,_parent:n}=n)if(t>-1)for(let s=t+e,i=e<0?-1:n._tree.children.length;s!=i;s+=e){let l=n._tree.children[s];if(this.mode&Qe.IncludeAnonymous||l instanceof $o||!l.type.isAnonymous||mh(l))return!1}return!0}move(e,t){if(t&&this.enterChild(e,0,4))return!0;for(;;){if(this.sibling(e))return!0;if(this.atLastNode(e)||!this.parent())return!1}}next(e=!0){return this.move(1,e)}prev(e=!0){return this.move(-1,e)}moveTo(e,t=0){for(;(this.from==this.to||(t<1?this.from>=e:this.from>e)||(t>-1?this.to<=e:this.to<e))&&this.parent(););for(;this.enterChild(1,e,t););return this}get node(){if(!this.buffer)return this._tree;let e=this.bufferNode,t=null,n=0;if(e&&e.context==this.buffer)e:for(let r=this.index,s=this.stack.length;s>=0;){for(let i=e;i;i=i._parent)if(i.index==r){if(r==this.index)return i;t=i,n=s+1;break e}r=this.stack[--s]}for(let r=n;r<this.stack.length;r++)t=new mo(this.buffer,t,this.stack[r]);return this.bufferNode=new mo(this.buffer,t,this.index)}get tree(){return this.buffer?null:this._tree._tree}iterate(e,t){for(let n=0;;){let r=!1;if(this.type.isAnonymous||e(this)!==!1){if(this.firstChild()){n++;continue}this.type.isAnonymous||(r=!0)}for(;r&&t&&t(this),r=this.type.isAnonymous,!this.nextSibling();){if(!n)return;this.parent(),n--,r=!0}}}matchContext(e){if(!this.buffer)return $c(this.node,e);let{buffer:t}=this.buffer,{types:n}=t.set;for(let r=e.length-1,s=this.stack.length-1;r>=0;s--){if(s<0)return $c(this.node,e,r);let i=n[t.buffer[this.stack[s]]];if(!i.isAnonymous){if(e[r]&&e[r]!=i.name)return!1;r--}}return!0}};function mh(o){return o.children.some(e=>e instanceof $o||!e.type.isAnonymous||mh(e))}function V1(o){var e;let{buffer:t,nodeSet:n,maxBufferLength:r=1024,reused:s=[],minRepeatType:i=n.types.length}=o,l=Array.isArray(t)?new Ea(t,t.length):t,a=n.types,u=0,c=0;function d(x,S,b,C,M){let{id:D,start:E,end:O,size:T}=l,P=c;for(;T<0;)if(l.next(),T==-1){let I=s[D];b.push(I),C.push(E-x);return}else if(T==-3){u=D;return}else if(T==-4){c=D;return}else throw new RangeError(`Unrecognized record size: ${T}`);let L=a[D],N,A,k=E-x;if(O-E<=r&&(A=g(l.pos-S,M))){let I=new Uint16Array(A.size-A.skip),F=l.pos-A.size,H=I.length;for(;l.pos>F;)H=m(A.start,I,H);N=new $o(I,O-A.start,n),k=A.start-x}else{let I=l.pos-T;l.next();let F=[],H=[],z=D>=i?D:-1,W=0,q=O;for(;l.pos>I;)z>=0&&l.id==z&&l.size>=0?(l.end<=q-r&&(f(F,H,E,W,l.end,q,z,P),W=F.length,q=l.end),l.next()):d(E,I,F,H,z);if(z>=0&&W>0&&W<F.length&&f(F,H,E,W,E,q,z,P),F.reverse(),H.reverse(),z>-1&&W>0){let j=p(L);N=gh(L,F,H,0,F.length,0,O-E,j,j)}else N=h(L,F,H,O-E,P-O)}b.push(N),C.push(k)}function p(x){return(S,b,C)=>{let M=0,D=S.length-1,E,O;if(D>=0&&(E=S[D])instanceof Ce){if(!D&&E.type==x&&E.length==C)return E;(O=E.prop(le.lookAhead))&&(M=b[D]+E.length+O)}return h(x,S,b,C,M)}}function f(x,S,b,C,M,D,E,O){let T=[],P=[];for(;x.length>C;)T.push(x.pop()),P.push(S.pop()+b-M);x.push(h(n.types[E],T,P,D-M,O-D)),S.push(M-b)}function h(x,S,b,C,M=0,D){if(u){let E=[le.contextHash,u];D=D?[E].concat(D):[E]}if(M>25){let E=[le.lookAhead,M];D=D?[E].concat(D):[E]}return new Ce(x,S,b,C,D)}function g(x,S){let b=l.fork(),C=0,M=0,D=0,E=b.end-r,O={size:0,start:0,skip:0};e:for(let T=b.pos-x;b.pos>T;){let P=b.size;if(b.id==S&&P>=0){O.size=C,O.start=M,O.skip=D,D+=4,C+=4,b.next();continue}let L=b.pos-P;if(P<0||L<T||b.start<E)break;let N=b.id>=i?4:0,A=b.start;for(b.next();b.pos>L;){if(b.size<0)if(b.size==-3)N+=4;else break e;else b.id>=i&&(N+=4);b.next()}M=A,C+=P,D+=N}return(S<0||C==x)&&(O.size=C,O.start=M,O.skip=D),O.size>4?O:void 0}function m(x,S,b){let{id:C,start:M,end:D,size:E}=l;if(l.next(),E>=0&&C<i){let O=b;if(E>4){let T=l.pos-(E-4);for(;l.pos>T;)b=m(x,S,b)}S[--b]=O,S[--b]=D-x,S[--b]=M-x,S[--b]=C}else E==-3?u=C:E==-4&&(c=C);return b}let y=[],w=[];for(;l.pos>0;)d(o.start||0,o.bufferStart||0,y,w,-1);let v=(e=o.length)!==null&&e!==void 0?e:y.length?w[0]+y[0].length:0;return new Ce(a[o.topID],y.reverse(),w.reverse(),v)}var CC=new WeakMap;function Bc(o,e){if(!o.isAnonymous||e instanceof $o||e.type!=o)return 1;let t=CC.get(e);if(t==null){t=1;for(let n of e.children){if(n.type!=o||!(n instanceof Ce)){t=1;break}t+=Bc(o,n)}CC.set(e,t)}return t}function gh(o,e,t,n,r,s,i,l,a){let u=0;for(let h=n;h<r;h++)u+=Bc(o,e[h]);let c=Math.ceil(u*1.5/8),d=[],p=[];function f(h,g,m,y,w){for(let v=m;v<y;){let x=v,S=g[v],b=Bc(o,h[v]);for(v++;v<y;v++){let C=Bc(o,h[v]);if(b+C>=c)break;b+=C}if(v==x+1){if(b>c){let C=h[x];f(C.children,C.positions,0,C.children.length,g[x]+w);continue}d.push(h[x])}else{let C=g[v-1]+h[v-1].length-S;d.push(gh(o,h,g,x,v,S,C,null,a))}p.push(S+w-s)}}return f(e,t,n,r,0),(l||a)(d,p,i)}var go=class{constructor(e,t,n,r,s=!1,i=!1){this.from=e,this.to=t,this.tree=n,this.offset=r,this.open=(s?1:0)|(i?2:0)}get openStart(){return(this.open&1)>0}get openEnd(){return(this.open&2)>0}static addTree(e,t=[],n=!1){let r=[new go(0,e.length,e,0,!1,n)];for(let s of t)s.to>e.length&&r.push(s);return r}static applyChanges(e,t,n=128){if(!t.length)return e;let r=[],s=1,i=e.length?e[0]:null;for(let l=0,a=0,u=0;;l++){let c=l<t.length?t[l]:null,d=c?c.fromA:1e9;if(d-a>=n)for(;i&&i.from<d;){let p=i;if(a>=p.from||d<=p.to||u){let f=Math.max(p.from,a)-u,h=Math.min(p.to,d)-u;p=f>=h?null:new go(f,h,p.tree,p.offset+u,l>0,!!c)}if(p&&r.push(p),i.to>d)break;i=s<e.length?e[s++]:null}if(!c)break;a=c.toA,u=c.toA-c.toB}return r}},yr=class{startParse(e,t,n){return typeof e=="string"&&(e=new hh(e)),n=n?n.length?n.map(r=>new Ta(r.from,r.to)):[new Ta(0,0)]:[new Ta(0,e.length)],this.createParse(e,t||[],n)}parse(e,t,n){let r=this.startParse(e,t,n);for(;;){let s=r.advance();if(s)return s}}},hh=class{constructor(e){this.string=e}get length(){return this.string.length}chunk(e){return this.string.slice(e)}get lineChunks(){return!1}read(e,t){return this.string.slice(e,t)}};var O7=new le({perNode:!0});var Hi=class{constructor(e,t,n,r,s,i,l,a,u,c=0,d){this.p=e,this.stack=t,this.state=n,this.reducePos=r,this.pos=s,this.score=i,this.buffer=l,this.bufferBase=a,this.curContext=u,this.lookAhead=c,this.parent=d}toString(){return`[${this.stack.filter((e,t)=>t%3==0).concat(this.state)}]@${this.pos}${this.score?"!"+this.score:""}`}static start(e,t,n=0){let r=e.parser.context;return new Hi(e,[],t,n,n,0,[],0,r?new Wc(r,r.start):null,0,null)}get context(){return this.curContext?this.curContext.context:null}pushState(e,t){this.stack.push(this.state,t,this.bufferBase+this.buffer.length),this.state=e}reduce(e){var t;let n=e>>19,r=e&65535,{parser:s}=this.p,i=s.dynamicPrecedence(r);if(i&&(this.score+=i),n==0){this.pushState(s.getGoto(this.state,r,!0),this.reducePos),r<s.minRepeatTerm&&this.storeNode(r,this.reducePos,this.reducePos,4,!0),this.reduceContext(r,this.reducePos);return}let l=this.stack.length-(n-1)*3-(e&262144?6:0),a=l?this.stack[l-2]:this.p.ranges[0].from,u=this.reducePos-a;u>=2e3&&!(!((t=this.p.parser.nodeSet.types[r])===null||t===void 0)&&t.isAnonymous)&&(a==this.p.lastBigReductionStart?(this.p.bigReductionCount++,this.p.lastBigReductionSize=u):this.p.lastBigReductionSize<u&&(this.p.bigReductionCount=1,this.p.lastBigReductionStart=a,this.p.lastBigReductionSize=u));let c=l?this.stack[l-1]:0,d=this.bufferBase+this.buffer.length-c;if(r<s.minRepeatTerm||e&131072){let p=s.stateFlag(this.state,1)?this.pos:this.reducePos;this.storeNode(r,a,p,d+4,!0)}if(e&262144)this.state=this.stack[l];else{let p=this.stack[l-3];this.state=s.getGoto(p,r,!0)}for(;this.stack.length>l;)this.stack.pop();this.reduceContext(r,a)}storeNode(e,t,n,r=4,s=!1){if(e==0&&(!this.stack.length||this.stack[this.stack.length-1]<this.buffer.length+this.bufferBase)){let i=this,l=this.buffer.length;if(l==0&&i.parent&&(l=i.bufferBase-i.parent.bufferBase,i=i.parent),l>0&&i.buffer[l-4]==0&&i.buffer[l-1]>-1){if(t==n)return;if(i.buffer[l-2]>=t){i.buffer[l-2]=n;return}}}if(!s||this.pos==n)this.buffer.push(e,t,n,r);else{let i=this.buffer.length;if(i>0&&this.buffer[i-4]!=0)for(;i>0&&this.buffer[i-2]>n;)this.buffer[i]=this.buffer[i-4],this.buffer[i+1]=this.buffer[i-3],this.buffer[i+2]=this.buffer[i-2],this.buffer[i+3]=this.buffer[i-1],i-=4,r>4&&(r-=4);this.buffer[i]=e,this.buffer[i+1]=t,this.buffer[i+2]=n,this.buffer[i+3]=r}}shift(e,t,n){let r=this.pos;if(e&131072)this.pushState(e&65535,this.pos);else if(e&262144)this.pos=n,this.shiftContext(t,r),t<=this.p.parser.maxNode&&this.buffer.push(t,r,n,4);else{let s=e,{parser:i}=this.p;(n>this.pos||t<=i.maxNode)&&(this.pos=n,i.stateFlag(s,1)||(this.reducePos=n)),this.pushState(s,r),this.shiftContext(t,r),t<=i.maxNode&&this.buffer.push(t,r,n,4)}}apply(e,t,n){e&65536?this.reduce(e):this.shift(e,t,n)}useNode(e,t){let n=this.p.reused.length-1;(n<0||this.p.reused[n]!=e)&&(this.p.reused.push(e),n++);let r=this.pos;this.reducePos=this.pos=r+e.length,this.pushState(t,r),this.buffer.push(n,r,this.reducePos,-1),this.curContext&&this.updateContext(this.curContext.tracker.reuse(this.curContext.context,e,this,this.p.stream.reset(this.pos-e.length)))}split(){let e=this,t=e.buffer.length;for(;t>0&&e.buffer[t-2]>e.reducePos;)t-=4;let n=e.buffer.slice(t),r=e.bufferBase+t;for(;e&&r==e.bufferBase;)e=e.parent;return new Hi(this.p,this.stack.slice(),this.state,this.reducePos,this.pos,this.score,n,r,this.curContext,this.lookAhead,e)}recoverByDelete(e,t){let n=e<=this.p.parser.maxNode;n&&this.storeNode(e,this.pos,t,4),this.storeNode(0,this.pos,t,n?8:4),this.pos=this.reducePos=t,this.score-=190}canShift(e){for(let t=new yh(this);;){let n=this.p.parser.stateSlot(t.state,4)||this.p.parser.hasAction(t.state,e);if(n==0)return!1;if(!(n&65536))return!0;t.reduce(n)}}recoverByInsert(e){if(this.stack.length>=300)return[];let t=this.p.parser.nextStates(this.state);if(t.length>4<<1||this.stack.length>=120){let r=[];for(let s=0,i;s<t.length;s+=2)(i=t[s+1])!=this.state&&this.p.parser.hasAction(i,e)&&r.push(t[s],i);if(this.stack.length<120)for(let s=0;r.length<4<<1&&s<t.length;s+=2){let i=t[s+1];r.some((l,a)=>a&1&&l==i)||r.push(t[s],i)}t=r}let n=[];for(let r=0;r<t.length&&n.length<4;r+=2){let s=t[r+1];if(s==this.state)continue;let i=this.split();i.pushState(s,this.pos),i.storeNode(0,i.pos,i.pos,4,!0),i.shiftContext(t[r],this.pos),i.score-=200,n.push(i)}return n}forceReduce(){let{parser:e}=this.p,t=e.stateSlot(this.state,5);if(!(t&65536))return!1;if(!e.validAction(this.state,t)){let n=t>>19,r=t&65535,s=this.stack.length-n*3;if(s<0||e.getGoto(this.stack[s],r,!1)<0){let i=this.findForcedReduction();if(i==null)return!1;t=i}this.storeNode(0,this.pos,this.pos,4,!0),this.score-=100}return this.reducePos=this.pos,this.reduce(t),!0}findForcedReduction(){let{parser:e}=this.p,t=[],n=(r,s)=>{if(!t.includes(r))return t.push(r),e.allActions(r,i=>{if(!(i&393216))if(i&65536){let l=(i>>19)-s;if(l>1){let a=i&65535,u=this.stack.length-l*3;if(u>=0&&e.getGoto(this.stack[u],a,!1)>=0)return l<<19|65536|a}}else{let l=n(i,s+1);if(l!=null)return l}})};return n(this.state,0)}forceAll(){for(;!this.p.parser.stateFlag(this.state,2);)if(!this.forceReduce()){this.storeNode(0,this.pos,this.pos,4,!0);break}return this}get deadEnd(){if(this.stack.length!=3)return!1;let{parser:e}=this.p;return e.data[e.stateSlot(this.state,1)]==65535&&!e.stateSlot(this.state,4)}restart(){this.state=this.stack[0],this.stack.length=0}sameState(e){if(this.state!=e.state||this.stack.length!=e.stack.length)return!1;for(let t=0;t<this.stack.length;t+=3)if(this.stack[t]!=e.stack[t])return!1;return!0}get parser(){return this.p.parser}dialectEnabled(e){return this.p.parser.dialect.flags[e]}shiftContext(e,t){this.curContext&&this.updateContext(this.curContext.tracker.shift(this.curContext.context,e,this,this.p.stream.reset(t)))}reduceContext(e,t){this.curContext&&this.updateContext(this.curContext.tracker.reduce(this.curContext.context,e,this,this.p.stream.reset(t)))}emitContext(){let e=this.buffer.length-1;(e<0||this.buffer[e]!=-3)&&this.buffer.push(this.curContext.hash,this.pos,this.pos,-3)}emitLookAhead(){let e=this.buffer.length-1;(e<0||this.buffer[e]!=-4)&&this.buffer.push(this.lookAhead,this.pos,this.pos,-4)}updateContext(e){if(e!=this.curContext.context){let t=new Wc(this.curContext.tracker,e);t.hash!=this.curContext.hash&&this.emitContext(),this.curContext=t}}setLookAhead(e){e>this.lookAhead&&(this.emitLookAhead(),this.lookAhead=e)}close(){this.curContext&&this.curContext.tracker.strict&&this.emitContext(),this.lookAhead>0&&this.emitLookAhead()}},Wc=class{constructor(e,t){this.tracker=e,this.context=t,this.hash=e.strict?e.hash(t):0}},TC;(function(o){o[o.Insert=200]="Insert",o[o.Delete=190]="Delete",o[o.Reduce=100]="Reduce",o[o.MaxNext=4]="MaxNext",o[o.MaxInsertStackDepth=300]="MaxInsertStackDepth",o[o.DampenInsertStackDepth=120]="DampenInsertStackDepth",o[o.MinBigReduction=2e3]="MinBigReduction"})(TC||(TC={}));var yh=class{constructor(e){this.start=e,this.state=e.state,this.stack=e.stack,this.base=this.stack.length}reduce(e){let t=e&65535,n=e>>19;n==0?(this.stack==this.start.stack&&(this.stack=this.stack.slice()),this.stack.push(this.state,0,0),this.base+=3):this.base-=(n-1)*3;let r=this.start.p.parser.getGoto(this.stack[this.base-3],t,!0);this.state=r}},Fi=class{constructor(e,t,n){this.stack=e,this.pos=t,this.index=n,this.buffer=e.buffer,this.index==0&&this.maybeNext()}static create(e,t=e.bufferBase+e.buffer.length){return new Fi(e,t,t-e.bufferBase)}maybeNext(){let e=this.stack.parent;e!=null&&(this.index=this.stack.bufferBase-e.bufferBase,this.stack=e,this.buffer=e.buffer)}get id(){return this.buffer[this.index-4]}get start(){return this.buffer[this.index-3]}get end(){return this.buffer[this.index-2]}get size(){return this.buffer[this.index-1]}next(){this.index-=4,this.pos-=4,this.index==0&&this.maybeNext()}fork(){return new Fi(this.stack,this.pos,this.index)}};function Ma(o,e=Uint16Array){if(typeof o!="string")return o;let t=null;for(let n=0,r=0;n<o.length;){let s=0;for(;;){let i=o.charCodeAt(n++),l=!1;if(i==126){s=65535;break}i>=92&&i--,i>=34&&i--;let a=i-32;if(a>=46&&(a-=46,l=!0),s+=a,l)break;s*=46}t?t[r++]=s:t=new e(s)}return t}var Ni=class{constructor(){this.start=-1,this.value=-1,this.end=-1,this.extended=-1,this.lookAhead=0,this.mask=0,this.context=0}},EC=new Ni,xh=class{constructor(e,t){this.input=e,this.ranges=t,this.chunk="",this.chunkOff=0,this.chunk2="",this.chunk2Pos=0,this.next=-1,this.token=EC,this.rangeIndex=0,this.pos=this.chunkPos=t[0].from,this.range=t[0],this.end=t[t.length-1].to,this.readNext()}resolveOffset(e,t){let n=this.range,r=this.rangeIndex,s=this.pos+e;for(;s<n.from;){if(!r)return null;let i=this.ranges[--r];s-=n.from-i.to,n=i}for(;t<0?s>n.to:s>=n.to;){if(r==this.ranges.length-1)return null;let i=this.ranges[++r];s+=i.from-n.to,n=i}return s}clipPos(e){if(e>=this.range.from&&e<this.range.to)return e;for(let t of this.ranges)if(t.to>e)return Math.max(e,t.from);return this.end}peek(e){let t=this.chunkOff+e,n,r;if(t>=0&&t<this.chunk.length)n=this.pos+e,r=this.chunk.charCodeAt(t);else{let s=this.resolveOffset(e,1);if(s==null)return-1;if(n=s,n>=this.chunk2Pos&&n<this.chunk2Pos+this.chunk2.length)r=this.chunk2.charCodeAt(n-this.chunk2Pos);else{let i=this.rangeIndex,l=this.range;for(;l.to<=n;)l=this.ranges[++i];this.chunk2=this.input.chunk(this.chunk2Pos=n),n+this.chunk2.length>l.to&&(this.chunk2=this.chunk2.slice(0,l.to-n)),r=this.chunk2.charCodeAt(0)}}return n>=this.token.lookAhead&&(this.token.lookAhead=n+1),r}acceptToken(e,t=0){let n=t?this.resolveOffset(t,-1):this.pos;if(n==null||n<this.token.start)throw new RangeError("Token end out of bounds");this.token.value=e,this.token.end=n}getChunk(){if(this.pos>=this.chunk2Pos&&this.pos<this.chunk2Pos+this.chunk2.length){let{chunk:e,chunkPos:t}=this;this.chunk=this.chunk2,this.chunkPos=this.chunk2Pos,this.chunk2=e,this.chunk2Pos=t,this.chunkOff=this.pos-this.chunkPos}else{this.chunk2=this.chunk,this.chunk2Pos=this.chunkPos;let e=this.input.chunk(this.pos),t=this.pos+e.length;this.chunk=t>this.range.to?e.slice(0,this.range.to-this.pos):e,this.chunkPos=this.pos,this.chunkOff=0}}readNext(){return this.chunkOff>=this.chunk.length&&(this.getChunk(),this.chunkOff==this.chunk.length)?this.next=-1:this.next=this.chunk.charCodeAt(this.chunkOff)}advance(e=1){for(this.chunkOff+=e;this.pos+e>=this.range.to;){if(this.rangeIndex==this.ranges.length-1)return this.setDone();e-=this.range.to-this.pos,this.range=this.ranges[++this.rangeIndex],this.pos=this.range.from}return this.pos+=e,this.pos>=this.token.lookAhead&&(this.token.lookAhead=this.pos+1),this.readNext()}setDone(){return this.pos=this.chunkPos=this.end,this.range=this.ranges[this.rangeIndex=this.ranges.length-1],this.chunk="",this.next=-1}reset(e,t){if(t?(this.token=t,t.start=e,t.lookAhead=e+1,t.value=t.extended=-1):this.token=EC,this.pos!=e){if(this.pos=e,e==this.end)return this.setDone(),this;for(;e<this.range.from;)this.range=this.ranges[--this.rangeIndex];for(;e>=this.range.to;)this.range=this.ranges[++this.rangeIndex];e>=this.chunkPos&&e<this.chunkPos+this.chunk.length?this.chunkOff=e-this.chunkPos:(this.chunk="",this.chunkOff=0),this.readNext()}return this}read(e,t){if(e>=this.chunkPos&&t<=this.chunkPos+this.chunk.length)return this.chunk.slice(e-this.chunkPos,t-this.chunkPos);if(e>=this.chunk2Pos&&t<=this.chunk2Pos+this.chunk2.length)return this.chunk2.slice(e-this.chunk2Pos,t-this.chunk2Pos);if(e>=this.range.from&&t<=this.range.to)return this.input.read(e,t);let n="";for(let r of this.ranges){if(r.from>=t)break;r.to>e&&(n+=this.input.read(Math.max(r.from,e),Math.min(r.to,t)))}return n}},xr=class{constructor(e,t){this.data=e,this.id=t}token(e,t){let{parser:n}=t.p;LC(this.data,e,t,this.id,n.data,n.tokenPrecTable)}};xr.prototype.contextual=xr.prototype.fallback=xr.prototype.extend=!1;var vh=class{constructor(e,t,n){this.precTable=t,this.elseToken=n,this.data=typeof e=="string"?Ma(e):e}token(e,t){let n=e.pos,r=0;for(;;){let s=e.next<0,i=e.resolveOffset(1,1);if(LC(this.data,e,t,0,this.data,this.precTable),e.token.value>-1)break;if(this.elseToken==null)return;if(s||r++,i==null)break;e.reset(i,e.token)}r&&(e.reset(n,e.token),e.acceptToken(this.elseToken,r))}};vh.prototype.contextual=xr.prototype.fallback=xr.prototype.extend=!1;function LC(o,e,t,n,r,s){let i=0,l=1<<n,{dialect:a}=t.p.parser;e:for(;l&o[i];){let u=o[i+1];for(let f=i+3;f<u;f+=2)if((o[f+1]&l)>0){let h=o[f];if(a.allows(h)&&(e.token.value==-1||e.token.value==h||B1(h,e.token.value,r,s))){e.acceptToken(h);break}}let c=e.next,d=0,p=o[i+2];if(e.next<0&&p>d&&o[u+p*3-3]==65535&&o[u+p*3-3]==65535){i=o[u+p*3-1];continue e}for(;d<p;){let f=d+p>>1,h=u+f+(f<<1),g=o[h],m=o[h+1]||65536;if(c<g)p=f;else if(c>=m)d=f+1;else{i=o[h+2],e.advance();continue e}}break}}function MC(o,e,t){for(let n=e,r;(r=o[n])!=65535;n++)if(r==t)return n-e;return-1}function B1(o,e,t,n){let r=MC(t,n,e);return r<0||MC(t,n,o)<r}var Zn=typeof process<"u"&&process.env&&/\bparse\b/.test(process.env.LOG),bh=null,RC;(function(o){o[o.Margin=25]="Margin"})(RC||(RC={}));function DC(o,e,t){let n=o.cursor(Qe.IncludeAnonymous);for(n.moveTo(e);;)if(!(t<0?n.childBefore(e):n.childAfter(e)))for(;;){if((t<0?n.to<e:n.from>e)&&!n.type.isError)return t<0?Math.max(0,Math.min(n.to-1,e-25)):Math.min(o.length,Math.max(n.from+1,e+25));if(t<0?n.prevSibling():n.nextSibling())break;if(!n.parent())return t<0?0:o.length}}var Ch=class{constructor(e,t){this.fragments=e,this.nodeSet=t,this.i=0,this.fragment=null,this.safeFrom=-1,this.safeTo=-1,this.trees=[],this.start=[],this.index=[],this.nextFragment()}nextFragment(){let e=this.fragment=this.i==this.fragments.length?null:this.fragments[this.i++];if(e){for(this.safeFrom=e.openStart?DC(e.tree,e.from+e.offset,1)-e.offset:e.from,this.safeTo=e.openEnd?DC(e.tree,e.to+e.offset,-1)-e.offset:e.to;this.trees.length;)this.trees.pop(),this.start.pop(),this.index.pop();this.trees.push(e.tree),this.start.push(-e.offset),this.index.push(0),this.nextStart=this.safeFrom}else this.nextStart=1e9}nodeAt(e){if(e<this.nextStart)return null;for(;this.fragment&&this.safeTo<=e;)this.nextFragment();if(!this.fragment)return null;for(;;){let t=this.trees.length-1;if(t<0)return this.nextFragment(),null;let n=this.trees[t],r=this.index[t];if(r==n.children.length){this.trees.pop(),this.start.pop(),this.index.pop();continue}let s=n.children[r],i=this.start[t]+n.positions[r];if(i>e)return this.nextStart=i,null;if(s instanceof Ce){if(i==e){if(i<this.safeFrom)return null;let l=i+s.length;if(l<=this.safeTo){let a=s.prop(le.lookAhead);if(!a||l+a<this.fragment.to)return s}}this.index[t]++,i+s.length>=Math.max(this.safeFrom,e)&&(this.trees.push(s),this.start.push(i),this.index.push(0))}else this.index[t]++,this.nextStart=i+s.length}}},Sh=class{constructor(e,t){this.stream=t,this.tokens=[],this.mainToken=null,this.actions=[],this.tokens=e.tokenizers.map(n=>new Ni)}getActions(e){let t=0,n=null,{parser:r}=e.p,{tokenizers:s}=r,i=r.stateSlot(e.state,3),l=e.curContext?e.curContext.hash:0,a=0;for(let u=0;u<s.length;u++){if(!(1<<u&i))continue;let c=s[u],d=this.tokens[u];if(!(n&&!c.fallback)&&((c.contextual||d.start!=e.pos||d.mask!=i||d.context!=l)&&(this.updateCachedToken(d,c,e),d.mask=i,d.context=l),d.lookAhead>d.end+25&&(a=Math.max(d.lookAhead,a)),d.value!=0)){let p=t;if(d.extended>-1&&(t=this.addActions(e,d.extended,d.end,t)),t=this.addActions(e,d.value,d.end,t),!c.extend&&(n=d,t>p))break}}for(;this.actions.length>t;)this.actions.pop();return a&&e.setLookAhead(a),!n&&e.pos==this.stream.end&&(n=new Ni,n.value=e.p.parser.eofTerm,n.start=n.end=e.pos,t=this.addActions(e,n.value,n.end,t)),this.mainToken=n,this.actions}getMainToken(e){if(this.mainToken)return this.mainToken;let t=new Ni,{pos:n,p:r}=e;return t.start=n,t.end=Math.min(n+1,r.stream.end),t.value=n==r.stream.end?r.parser.eofTerm:0,t}updateCachedToken(e,t,n){let r=this.stream.clipPos(n.pos);if(t.token(this.stream.reset(r,e),n),e.value>-1){let{parser:s}=n.p;for(let i=0;i<s.specialized.length;i++)if(s.specialized[i]==e.value){let l=s.specializers[i](this.stream.read(e.start,e.end),n);if(l>=0&&n.p.parser.dialect.allows(l>>1)){l&1?e.extended=l>>1:e.value=l>>1;break}}}else e.value=0,e.end=this.stream.clipPos(r+1)}putAction(e,t,n,r){for(let s=0;s<r;s+=3)if(this.actions[s]==e)return r;return this.actions[r++]=e,this.actions[r++]=t,this.actions[r++]=n,r}addActions(e,t,n,r){let{state:s}=e,{parser:i}=e.p,{data:l}=i;for(let a=0;a<2;a++)for(let u=i.stateSlot(s,a?2:1);;u+=3){if(l[u]==65535)if(l[u+1]==1)u=Wo(l,u+2);else{r==0&&l[u+1]==2&&(r=this.putAction(Wo(l,u+2),t,n,r));break}l[u]==t&&(r=this.putAction(Wo(l,u+1),t,n,r))}return r}},PC;(function(o){o[o.Distance=5]="Distance",o[o.MaxRemainingPerStep=3]="MaxRemainingPerStep",o[o.MinBufferLengthPrune=500]="MinBufferLengthPrune",o[o.ForceReduceLimit=10]="ForceReduceLimit",o[o.CutDepth=15e3]="CutDepth",o[o.CutTo=9e3]="CutTo",o[o.MaxLeftAssociativeReductionCount=300]="MaxLeftAssociativeReductionCount",o[o.MaxStackCount=12]="MaxStackCount"})(PC||(PC={}));var wh=class{constructor(e,t,n,r){this.parser=e,this.input=t,this.ranges=r,this.recovering=0,this.nextStackID=9812,this.minStackPos=0,this.reused=[],this.stoppedAt=null,this.lastBigReductionStart=-1,this.lastBigReductionSize=0,this.bigReductionCount=0,this.stream=new xh(t,r),this.tokens=new Sh(e,this.stream),this.topTerm=e.top[1];let{from:s}=r[0];this.stacks=[Hi.start(this,e.top[0],s)],this.fragments=n.length&&this.stream.end-s>e.bufferLength*4?new Ch(n,e.nodeSet):null}get parsedPos(){return this.minStackPos}advance(){let e=this.stacks,t=this.minStackPos,n=this.stacks=[],r,s;if(this.bigReductionCount>300&&e.length==1){let[i]=e;for(;i.forceReduce()&&i.stack.length&&i.stack[i.stack.length-2]>=this.lastBigReductionStart;);this.bigReductionCount=this.lastBigReductionSize=0}for(let i=0;i<e.length;i++){let l=e[i];for(;;){if(this.tokens.mainToken=null,l.pos>t)n.push(l);else{if(this.advanceStack(l,n,e))continue;{r||(r=[],s=[]),r.push(l);let a=this.tokens.getMainToken(l);s.push(a.value,a.end)}}break}}if(!n.length){let i=r&&z1(r);if(i)return this.stackToTree(i);if(this.parser.strict)throw Zn&&r&&console.log("Stuck with token "+(this.tokens.mainToken?this.parser.getName(this.tokens.mainToken.value):"none")),new SyntaxError("No parse at "+t);this.recovering||(this.recovering=5)}if(this.recovering&&r){let i=this.stoppedAt!=null&&r[0].pos>this.stoppedAt?r[0]:this.runRecovery(r,s,n);if(i)return this.stackToTree(i.forceAll())}if(this.recovering){let i=this.recovering==1?1:this.recovering*3;if(n.length>i)for(n.sort((l,a)=>a.score-l.score);n.length>i;)n.pop();n.some(l=>l.reducePos>t)&&this.recovering--}else if(n.length>1){e:for(let i=0;i<n.length-1;i++){let l=n[i];for(let a=i+1;a<n.length;a++){let u=n[a];if(l.sameState(u)||l.buffer.length>500&&u.buffer.length>500)if((l.score-u.score||l.buffer.length-u.buffer.length)>0)n.splice(a--,1);else{n.splice(i--,1);continue e}}}n.length>12&&n.splice(12,n.length-12)}this.minStackPos=n[0].pos;for(let i=1;i<n.length;i++)n[i].pos<this.minStackPos&&(this.minStackPos=n[i].pos);return null}stopAt(e){if(this.stoppedAt!=null&&this.stoppedAt<e)throw new RangeError("Can't move stoppedAt forward");this.stoppedAt=e}advanceStack(e,t,n){let r=e.pos,{parser:s}=this,i=Zn?this.stackID(e)+" -> ":"";if(this.stoppedAt!=null&&r>this.stoppedAt)return e.forceReduce()?e:null;if(this.fragments){let u=e.curContext&&e.curContext.tracker.strict,c=u?e.curContext.hash:0;for(let d=this.fragments.nodeAt(r);d;){let p=this.parser.nodeSet.types[d.type.id]==d.type?s.getGoto(e.state,d.type.id):-1;if(p>-1&&d.length&&(!u||(d.prop(le.contextHash)||0)==c))return e.useNode(d,p),Zn&&console.log(i+this.stackID(e)+` (via reuse of ${s.getName(d.type.id)})`),!0;if(!(d instanceof Ce)||d.children.length==0||d.positions[0]>0)break;let f=d.children[0];if(f instanceof Ce&&d.positions[0]==0)d=f;else break}}let l=s.stateSlot(e.state,4);if(l>0)return e.reduce(l),Zn&&console.log(i+this.stackID(e)+` (via always-reduce ${s.getName(l&65535)})`),!0;if(e.stack.length>=15e3)for(;e.stack.length>9e3&&e.forceReduce(););let a=this.tokens.getActions(e);for(let u=0;u<a.length;){let c=a[u++],d=a[u++],p=a[u++],f=u==a.length||!n,h=f?e:e.split();if(h.apply(c,d,p),Zn&&console.log(i+this.stackID(h)+` (via ${c&65536?`reduce of ${s.getName(c&65535)}`:"shift"} for ${s.getName(d)} @ ${r}${h==e?"":", split"})`),f)return!0;h.pos>r?t.push(h):n.push(h)}return!1}advanceFully(e,t){let n=e.pos;for(;;){if(!this.advanceStack(e,null,null))return!1;if(e.pos>n)return kC(e,t),!0}}runRecovery(e,t,n){let r=null,s=!1;for(let i=0;i<e.length;i++){let l=e[i],a=t[i<<1],u=t[(i<<1)+1],c=Zn?this.stackID(l)+" -> ":"";if(l.deadEnd&&(s||(s=!0,l.restart(),Zn&&console.log(c+this.stackID(l)+" (restarted)"),this.advanceFully(l,n))))continue;let d=l.split(),p=c;for(let f=0;d.forceReduce()&&f<10&&(Zn&&console.log(p+this.stackID(d)+" (via force-reduce)"),!this.advanceFully(d,n));f++)Zn&&(p=this.stackID(d)+" -> ");for(let f of l.recoverByInsert(a))Zn&&console.log(c+this.stackID(f)+" (via recover-insert)"),this.advanceFully(f,n);this.stream.end>l.pos?(u==l.pos&&(u++,a=0),l.recoverByDelete(a,u),Zn&&console.log(c+this.stackID(l)+` (via recover-delete ${this.parser.getName(a)})`),kC(l,n)):(!r||r.score<l.score)&&(r=l)}return r}stackToTree(e){return e.close(),Ce.build({buffer:Fi.create(e),nodeSet:this.parser.nodeSet,topID:this.topTerm,maxBufferLength:this.parser.bufferLength,reused:this.reused,start:this.ranges[0].from,length:e.pos-this.ranges[0].from,minRepeatType:this.parser.minRepeatTerm})}stackID(e){let t=(bh||(bh=new WeakMap)).get(e);return t||bh.set(e,t=String.fromCodePoint(this.nextStackID++)),t+e}};function kC(o,e){for(let t=0;t<e.length;t++){let n=e[t];if(n.pos==o.pos&&n.sameState(o)){e[t].score<o.score&&(e[t]=o);return}}e.push(o)}var Th=class{constructor(e,t,n){this.source=e,this.flags=t,this.disabled=n}allows(e){return!this.disabled||this.disabled[e]==0}};var bs=class extends yr{constructor(e){if(super(),this.wrappers=[],e.version!=14)throw new RangeError(`Parser version (${e.version}) doesn't match runtime version (14)`);let t=e.nodeNames.split(" ");this.minRepeatTerm=t.length;for(let l=0;l<e.repeatNodeCount;l++)t.push("");let n=Object.keys(e.topRules).map(l=>e.topRules[l][1]),r=[];for(let l=0;l<t.length;l++)r.push([]);function s(l,a,u){r[l].push([a,a.deserialize(String(u))])}if(e.nodeProps)for(let l of e.nodeProps){let a=l[0];typeof a=="string"&&(a=le[a]);for(let u=1;u<l.length;){let c=l[u++];if(c>=0)s(c,a,l[u++]);else{let d=l[u+-c];for(let p=-c;p>0;p--)s(l[u++],a,d);u++}}}this.nodeSet=new zo(t.map((l,a)=>nt.define({name:a>=this.minRepeatTerm?void 0:l,id:a,props:r[a],top:n.indexOf(a)>-1,error:a==0,skipped:e.skippedNodes&&e.skippedNodes.indexOf(a)>-1}))),e.propSources&&(this.nodeSet=this.nodeSet.extend(...e.propSources)),this.strict=!1,this.bufferLength=1024;let i=Ma(e.tokenData);this.context=e.context,this.specializerSpecs=e.specialized||[],this.specialized=new Uint16Array(this.specializerSpecs.length);for(let l=0;l<this.specializerSpecs.length;l++)this.specialized[l]=this.specializerSpecs[l].term;this.specializers=this.specializerSpecs.map(IC),this.states=Ma(e.states,Uint32Array),this.data=Ma(e.stateData),this.goto=Ma(e.goto),this.maxTerm=e.maxTerm,this.tokenizers=e.tokenizers.map(l=>typeof l=="number"?new xr(i,l):l),this.topRules=e.topRules,this.dialects=e.dialects||{},this.dynamicPrecedences=e.dynamicPrecedences||null,this.tokenPrecTable=e.tokenPrec,this.termNames=e.termNames||null,this.maxNode=this.nodeSet.types.length-1,this.dialect=this.parseDialect(),this.top=this.topRules[Object.keys(this.topRules)[0]]}createParse(e,t,n){let r=new wh(this,e,t,n);for(let s of this.wrappers)r=s(r,e,t,n);return r}getGoto(e,t,n=!1){let r=this.goto;if(t>=r[0])return-1;for(let s=r[t+1];;){let i=r[s++],l=i&1,a=r[s++];if(l&&n)return a;for(let u=s+(i>>1);s<u;s++)if(r[s]==e)return a;if(l)return-1}}hasAction(e,t){let n=this.data;for(let r=0;r<2;r++)for(let s=this.stateSlot(e,r?2:1),i;;s+=3){if((i=n[s])==65535)if(n[s+1]==1)i=n[s=Wo(n,s+2)];else{if(n[s+1]==2)return Wo(n,s+2);break}if(i==t||i==0)return Wo(n,s+1)}return 0}stateSlot(e,t){return this.states[e*6+t]}stateFlag(e,t){return(this.stateSlot(e,0)&t)>0}validAction(e,t){return!!this.allActions(e,n=>n==t?!0:null)}allActions(e,t){let n=this.stateSlot(e,4),r=n?t(n):void 0;for(let s=this.stateSlot(e,1);r==null;s+=3){if(this.data[s]==65535)if(this.data[s+1]==1)s=Wo(this.data,s+2);else break;r=t(Wo(this.data,s+1))}return r}nextStates(e){let t=[];for(let n=this.stateSlot(e,1);;n+=3){if(this.data[n]==65535)if(this.data[n+1]==1)n=Wo(this.data,n+2);else break;if(!(this.data[n+2]&1)){let r=this.data[n+1];t.some((s,i)=>i&1&&s==r)||t.push(this.data[n],r)}}return t}configure(e){let t=Object.assign(Object.create(bs.prototype),this);if(e.props&&(t.nodeSet=this.nodeSet.extend(...e.props)),e.top){let n=this.topRules[e.top];if(!n)throw new RangeError(`Invalid top rule name ${e.top}`);t.top=n}return e.tokenizers&&(t.tokenizers=this.tokenizers.map(n=>{let r=e.tokenizers.find(s=>s.from==n);return r?r.to:n})),e.specializers&&(t.specializers=this.specializers.slice(),t.specializerSpecs=this.specializerSpecs.map((n,r)=>{let s=e.specializers.find(l=>l.from==n.external);if(!s)return n;let i=Object.assign(Object.assign({},n),{external:s.to});return t.specializers[r]=IC(i),i})),e.contextTracker&&(t.context=e.contextTracker),e.dialect&&(t.dialect=this.parseDialect(e.dialect)),e.strict!=null&&(t.strict=e.strict),e.wrap&&(t.wrappers=t.wrappers.concat(e.wrap)),e.bufferLength!=null&&(t.bufferLength=e.bufferLength),t}hasWrappers(){return this.wrappers.length>0}getName(e){return this.termNames?this.termNames[e]:String(e<=this.maxNode&&this.nodeSet.types[e].name||e)}get eofTerm(){return this.maxNode+1}get topNode(){return this.nodeSet.types[this.top[1]]}dynamicPrecedence(e){let t=this.dynamicPrecedences;return t==null?0:t[e]||0}parseDialect(e){let t=Object.keys(this.dialects),n=t.map(()=>!1);if(e)for(let s of e.split(" ")){let i=t.indexOf(s);i>=0&&(n[i]=!0)}let r=null;for(let s=0;s<t.length;s++)if(!n[s])for(let i=this.dialects[t[s]],l;(l=this.data[i++])!=65535;)(r||(r=new Uint8Array(this.maxTerm+1)))[l]=1;return new Th(e,n,r)}static deserialize(e){return new bs(e)}};function Wo(o,e){return o[e]|o[e+1]<<16}function z1(o){let e=null;for(let t of o){let n=t.p.stoppedAt;(t.pos==t.p.stream.end||n!=null&&t.pos>n)&&t.p.parser.stateFlag(t.state,2)&&(!e||e.score<t.score)&&(e=t)}return e}function IC(o){if(o.external){let e=o.extend?1:0;return(t,n)=>o.external(t,n)<<1|e}return o.get}var Ra=bs.deserialize({version:14,states:"%QOVQPOOOOQO'#C_'#C_O_QQO'#C^OOQO'#DO'#DOOvQQO'#C|OOQO'#DR'#DROVQPO'#CuOOQO'#C}'#C}QOQPOOOOQO'#C`'#C`O!UQQO,58xO!dQPO,59VOVQPO,59]OVQPO,59_O!iQPO,59hO!nQQO,59aOOQO'#DQ'#DQOOQO1G.d1G.dO!UQQO1G.qO!yQQO1G.wOOQO1G.y1G.yOOQO'#Cw'#CwOOQO1G/S1G/SOOQO1G.{1G.{O#[QPO'#CnO#dQPO7+$]O!UQQO'#CxO#iQPO,59YOOQO<<Gw<<GwOOQO,59d,59dOOQO-E6v-E6v",stateData:"#q~OoOS~OsPOvUO~OTXOUXOVXOWXOXXOYXO`ZO~Of[Oh]Oj^OmpX~OZ`O[`O]`O^`O~OabO~OseO~Of[Oh]OwgO~Oh]Ofeijeimeiwei~OcjOdbX~OdlO~OcjOdba~O",goto:"#YvPPw}!TPPPPPPPPPPwPP!WPP!ZP!ZP!aP!g!jPPP!p!s!aP#P!aXROU[]XQOU[]RYQRibXTOU[]XVOU[]Rf^QkhRnkRWOQSOQ_UQc[Rd]QaYQhbRmj",nodeNames:"\u26A0 Filter ColumnValueExpression Column Operator Eq NotEq Gt Lt Starts Ends Number String True False ColumnSetExpression In LBrack Values Comma RBrack AndExpression And OrExpression Or ParenthesizedExpression As FilterName",maxTerm:39,skippedNodes:[0],repeatNodeCount:1,tokenData:"6p~RnXY#PYZ#P]^#Ppq#Pqr#brs#mxy$eyz$j|}$o!O!P$t!Q![%S!^!_%_!_!`%d!`!a%i!c!}%n!}#O&V#P#Q&[#R#S%n#T#U&a#U#X%n#X#Y(w#Y#Z+]#Z#]%n#]#^.]#^#c%n#c#d/e#d#g%n#g#h0m#h#i4[#i#o%n~#USo~XY#PYZ#P]^#Ppq#P~#eP!_!`#h~#mOU~~#pWOX#mZ]#m^r#mrs$Ys#O#m#P;'S#m;'S;=`$_<%lO#m~$_O[~~$bP;=`<%l#m~$jOv~~$oOw~~$tOc~~$wP!Q![$z~%PPZ~!Q![$z~%XQZ~!O!P$t!Q![%S~%dOW~~%iOT~~%nOV~P%sUsP}!O%n!O!P%n!Q![%n!c!}%n#R#S%n#T#o%n~&[Oa~~&aOd~R&fYsP}!O%n!O!P%n!Q![%n!c!}%n#R#S%n#T#b%n#b#c'U#c#g%n#g#h(^#h#o%nR'ZWsP}!O%n!O!P%n!Q![%n!c!}%n#R#S%n#T#W%n#W#X's#X#o%nR'zUfQsP}!O%n!O!P%n!Q![%n!c!}%n#R#S%n#T#o%nR(eUjQsP}!O%n!O!P%n!Q![%n!c!}%n#R#S%n#T#o%nR(|WsP}!O%n!O!P%n!Q![%n!c!}%n#R#S%n#T#b%n#b#c)f#c#o%nR)kWsP}!O%n!O!P%n!Q![%n!c!}%n#R#S%n#T#W%n#W#X*T#X#o%nR*YWsP}!O%n!O!P%n!Q![%n!c!}%n#R#S%n#T#g%n#g#h*r#h#o%nR*yUYQsP}!O%n!O!P%n!Q![%n!c!}%n#R#S%n#T#o%nR+bVsP}!O%n!O!P%n!Q![%n!c!}%n#R#S%n#T#U+w#U#o%nR+|WsP}!O%n!O!P%n!Q![%n!c!}%n#R#S%n#T#`%n#`#a,f#a#o%nR,kWsP}!O%n!O!P%n!Q![%n!c!}%n#R#S%n#T#g%n#g#h-T#h#o%nR-YWsP}!O%n!O!P%n!Q![%n!c!}%n#R#S%n#T#X%n#X#Y-r#Y#o%nR-yU^QsP}!O%n!O!P%n!Q![%n!c!}%n#R#S%n#T#o%nR.bWsP}!O%n!O!P%n!Q![%n!c!}%n#R#S%n#T#b%n#b#c.z#c#o%nR/RU`QsP}!O%n!O!P%n!Q![%n!c!}%n#R#S%n#T#o%nR/jWsP}!O%n!O!P%n!Q![%n!c!}%n#R#S%n#T#f%n#f#g0S#g#o%nR0ZUhQsP}!O%n!O!P%n!Q![%n!c!}%n#R#S%n#T#o%nR0rWsP}!O%n!O!P%n!Q![%n!c!}%n#R#S%n#T#h%n#h#i1[#i#o%nR1aVsP}!O%n!O!P%n!Q![%n!c!}%n#R#S%n#T#U1v#U#o%nR1{WsP}!O%n!O!P%n!Q![%n!c!}%n#R#S%n#T#f%n#f#g2e#g#o%nR2jWsP}!O%n!O!P%n!Q![%n!c!}%n#R#S%n#T#h%n#h#i3S#i#o%nR3XWsP}!O%n!O!P%n!Q![%n!c!}%n#R#S%n#T#g%n#g#h3q#h#o%nR3xUXQsP}!O%n!O!P%n!Q![%n!c!}%n#R#S%n#T#o%nR4aWsP}!O%n!O!P%n!Q![%n!c!}%n#R#S%n#T#f%n#f#g4y#g#o%nR5OWsP}!O%n!O!P%n!Q![%n!c!}%n#R#S%n#T#i%n#i#j5h#j#o%nR5mWsP}!O%n!O!P%n!Q![%n!c!}%n#R#S%n#T#X%n#X#Y6V#Y#o%nR6^U]QsP}!O%n!O!P%n!Q![%n!c!}%n#R#S%n#T#o%n",tokenizers:[0,1],topRules:{Filter:[0,1]},tokenPrec:0});var bo=require("@vuu-ui/vuu-utils");var Jt,Mh=class{constructor(){de(this,Jt,void 0)}setFilterCombinatorOp(e,t=R(this,Jt)){(0,bo.isMultiClauseFilter)(t)&&t.op===e||Z(this,Jt,{op:e,filters:[R(this,Jt)]})}add(e){if(R(this,Jt)===void 0)Z(this,Jt,e);else if((0,bo.isMultiClauseFilter)(R(this,Jt)))R(this,Jt).filters.push(e);else throw Error("Invalid filter passed to FilterExpression")}setColumn(e,t=R(this,Jt)){if((0,bo.isMultiClauseFilter)(t)){let n=t.filters.at(-1);n&&this.setColumn(e,n)}else t&&(t.column=e)}setOp(e,t=R(this,Jt)){if((0,bo.isMultiClauseFilter)(t)){let n=t.filters.at(-1);n&&this.setOp(e,n)}else t&&(t.op=e)}setValue(e,t=R(this,Jt)){var n;if((0,bo.isMultiClauseFilter)(t)){let r=t.filters.at(-1);r&&this.setValue(e,r)}else(0,bo.isMultiValueFilter)(t)?((n=t.values)!=null||(t.values=[]),t.values.push(e)):(0,bo.isSingleValueFilter)(t)&&(t.value=e)}toJSON(e=R(this,Jt)){return this.name?{...e,name:this.name}:e}};Jt=new WeakMap;var _c=(o,e)=>{let t=new Mh,n=o.cursor();do{let{name:r,from:s,to:i}=n;switch(r){case"ColumnValueExpression":t.add({});break;case"ColumnSetExpression":t.add({op:"in"});break;case"Or":case"And":t.setFilterCombinatorOp(e.substring(s,i));break;case"Column":t.setColumn(e.substring(s,i));break;case"Operator":t.setOp(e.substring(s,i));break;case"String":t.setValue(e.substring(s+1,i-1));break;case"Number":t.setValue(parseFloat(e.substring(s,i)));break;case"True":t.setValue(!0);break;case"False":t.setValue(!1);break;case"FilterName":t.name=e.substring(s,i);break;default:}}while(n.next());return t.toJSON()};var $1=Ra.configure({strict:!0}),ys=o=>{let e=$1.parse(o);return _c(e,o)};function Kc(o,e){switch(e.op){case"in":return W1(o,e);case"=":return _1(o,e);case">":return K1(o,e);case">=":return U1(o,e);case"<":return G1(o,e);case"<=":return q1(o,e);case"starts":return j1(o,e);case"and":return Q1(o,e);case"or":return J1(o,e);default:return console.log(`unrecognized filter type ${e.op}`),()=>!0}}var W1=(o,e)=>t=>e.values.indexOf(t[o[e.column]])!==-1,_1=(o,e)=>t=>t[o[e.column]]===e.value,K1=(o,e)=>t=>t[o[e.column]]>e.value,U1=(o,e)=>t=>t[o[e.column]]>=e.value,G1=(o,e)=>t=>t[o[e.column]]<e.value,q1=(o,e)=>t=>t[o[e.column]]<=e.value,j1=(o,e)=>{let t=e.value;if(typeof t!="string")throw Error("string filter applied to value of wrong type");return n=>{let r=n[o[e.column]];if(typeof r!="string")throw Error("string filter applied to value of wrong type");return r.toLowerCase().startsWith(t.toLowerCase())}},Q1=(o,e)=>{let t=e.filters.map(n=>Kc(o,n));return n=>t.every(r=>r(n))};function J1(o,e){let t=e.filters.map(n=>Kc(o,n));return n=>t.some(r=>r(n))}var Oe=require("@vuu-ui/vuu-utils");var AC=(o,e,t,n,r,s)=>{let i=xs(r,o),l=o[o.length-1].aggType,a=t.map(u=>r[u]);switch(l){case 1:return NC(s,n,r,o,e,a);case 2:return X1(s,n,r,o,e,a);case 3:return OC(s,r,o,e,a);case 4:return Z1(s,n,r,o,e,a);case 5:return eL(s,n,r,o,e,a);case 6:return Y1(s,n,r,o,e,a)}};function OC(o,e,t,n,r){let s={},i=xs(e,t);function l(a){if(Array.isArray(a))return a.length;{let u=0;for(let c in a)u+=1+l(a[c]);return u}}for(let a in o){let u=l(o[a]);s[a]=u}for(let a=0;a<n.length;a++)for(let u in s)n[a][r[0]]===u&&(n[a][i]=s[u]);return console.log("!!!! targetData",n),console.log("!!!! counts",s),s}function xs(o,e){console.log("!!!! aggregation length",e.length);let t=e[e.length-1].column;return o[t]}function NC(o,e,t,n,r,s){let i={},l=xs(t,n);function a(u,c,d){if(Array.isArray(u)){let p=0;for(let f of u)p+=Number(c[f][d]);return p}else{let p=0;for(let f in u)p+=a(u[f],c,d);return p}}for(let u in o){console.log(u);let c=Number(a(o[u],e,l));i[u]=c}for(let u=0;u<r.length;u++)for(let c in i)r[u][s[0]]===c&&(r[u][l]=i[c]);return console.log("!!!! targetData",r),console.log("!!!! sums",i),i}function X1(o,e,t,n,r,s){let i={},l=xs(t,n),a=OC(o,t,n,r,s),u=NC(o,e,t,n,r,s);for(let c in a){let d=0;d=u[c]/a[c],i[c]=d}for(let c=0;c<r.length;c++)for(let d in i)r[c][s[0]]===d&&(r[c][l]=i[d]);return console.log("!!!! targetData",r),console.log("!!!! averages",i),i}function Uc(o,e,t){let n=[];if(Array.isArray(o))for(let r of o)n.push(e[r][t]);else for(let r in o)n.push(...Uc(o[r],e,t));return n}function Y1(o,e,t,n,r,s){let i={},l=xs(t,n);for(let a in o){let u=Uc(o[a],e,l),c=[...new Set(u)];i[a]=c}for(let a=0;a<r.length;a++)for(let u in i)r[a][s[0]]===u&&(r[a][l]=i[u]);return i}function Z1(o,e,t,n,r,s){let i={},l=xs(t,n);for(let a in o){let u=Uc(o[a],e,l),c=Math.max(...u);i[a]=c}for(let a=0;a<r.length;a++)for(let u in i)r[a][s[0]]===u&&(r[a][l]=i[u]);return i}function eL(o,e,t,n,r,s){let i={},l=xs(t,n);for(let a in o){let u=Uc(o[a],e,l),c=Math.min(...u);i[a]=c}for(let a=0;a<r.length;a++)for(let u in i)r[a][s[0]]===u&&(r[a][l]=i[u]);return i}var HC=require("@vuu-ui/vuu-utils"),{DEPTH:Rh,IS_EXPANDED:FC,KEY:Dh}=HC.metadataKeys,VC=(o,e)=>{let t=[];for(let n=0,r=0,s=!1,i=e.length;n<i;n++){let l=e[n],{[Rh]:a,[Dh]:u}=l;if(u===o){let c=l.slice();for(c[FC]=!1,t.push(c),r+=1,s=!0;n<i-1&&e[n+1][Rh]>a;)n+=1}else if(s){let c=l.slice();c[0]=r,c[1]=r,t.push(c),r+=1}else t.push(l),r+=1}return t},Ph=(o,e,t,n,r,s)=>{let i=t.map(l=>n[l]);return BC(r,i,o,e,void 0,void 0,void 0,s)},BC=(o,e,t,n=[],r="$root",s=1,i=[],l)=>{let a=Object.keys(o).sort();for(let u of a){let c=i.length,d=`${r}|${u}`,p=[c,c,!1,!1,s,0,d,0];p[e[s-1]]=u,i.push(p),t.includes(d)&&(p[FC]=!0,Array.isArray(o[u])?tL(i,o[u],n,d,s+1):BC(o[u],e,t,n,d,s+1,i,l))}for(let u in i)for(let c in i)if(i[u][2]===!1&&l[c]!=null&&i[u][e[0]]===l[c][e[0]]){i[u]=i[u].splice(0,8).concat(l[c].slice(8,l[c].length));break}return i},tL=(o,e,t,n,r)=>{for(let s of e){let i=o.length,l=t[s].slice();l[0]=i,l[1]=i,l[Rh]=r,l[Dh]=`${n}|${l[Dh]}`,o.push(l)}},zC=(o,e,t)=>{let n=e.map(i=>t[i]),r=oL(o,n);return[nL(r,n),r]},nL=(o,e)=>{let n=[],r=0,s=Object.keys(o).sort();for(let i of s){let l=[r,r,!1,!1,1,0,`$root|${i}`,0];l[e[0]]=i,n.push(l),r+=1}return n};function oL(o,e){let t={},n=e.length,r=n-1;for(let s=0,i=o.length;s<i;s++){let l=o[s],a=t,u,c;for(let d=0;d<n;d++){let p=e[d];c=l[p].toString(),u=a[c],u&&d===r?u.push(s):u?a=u:!u&&d<r?a=a[c]={}:u||(a[c]=[s])}}return console.log("!! groups",t),t}var rL=(o,e,[t,n])=>{let r=n==="D"?e[t]:o[t],s=n==="D"?o[t]:e[t];return r===s?0:s===null||r>s?1:-1},sL=o=>o.length===1?iL(o):o.length===2?lL(o):aL(o),iL=([[o,e]])=>(t,n)=>{let r=e==="D"?n[o]:t[o],s=e==="D"?t[o]:n[o];return r>s?1:s>r?-1:0},lL=([[o,e],[t,n]])=>(r,s)=>{let i=e==="D"?s[o]:r[o],l=e==="D"?r[o]:s[o],a=n==="D"?s[t]:r[t],u=n==="D"?r[t]:s[t];return i>l?1:l>i?-1:a>u?1:u>a?-1:0},aL=(o,e=rL)=>(t,n)=>{for(let r of o){let s=e(t,n,r);if(s!==0)return s}return 0},$C=(o,{sortDefs:e},t)=>{let n=e.map(({column:s,sortType:i})=>[t[s],i]),r=sL(n);return o.slice().sort(r)};var{debug:Rn}=(0,Oe.logger)("ArrayDataSource"),{RENDER_IDX:uL,SELECTED:cL}=Oe.metadataKeys,dL=(o,e)=>[e,e,!0,!1,1,0,o[0].toString(),0,...o],pL=o=>({columns:o.map(({name:t,serverDataType:n="string"})=>({name:t,serverDataType:n})),key:o[0].name,table:{module:"",table:"Array"}}),fL=(o,e,t)=>{let[n]=o,r=o.slice();return r[uL]=e.keyFor(n),r[cL]=(0,Oe.getSelectionStatus)(t,n),r},Da,eo,me,Et,lt,Gc,Pa,Vi,WC=class extends Oe.EventEmitter{constructor({aggregations:t,columnDescriptors:n,data:r,filter:s,groupBy:i,rangeChangeRowset:l="delta",sort:a,title:u,viewport:c}){super();this.status="initialising";this.disabled=!1;this.selectedRows=[];this.suspended=!1;this.lastRangeServed={from:0,to:0};this.openTreeNodes=[];de(this,Da,[]);de(this,eo,void 0);de(this,me,Ac);de(this,Et,void 0);de(this,lt,Oe.NULL_RANGE);de(this,Gc,0);de(this,Pa,0);de(this,Vi,void 0);this.keys=new Oe.KeySet(R(this,lt));this.processedData=void 0;if(!r||!n)throw Error("ArrayDataSource constructor called without data or without columnDescriptors");this.columnDescriptors=n,Z(this,Da,n.map(d=>d.name)),Z(this,eo,(0,Oe.buildColumnMap)(R(this,Da))),this.rangeChangeRowset=l,this.tableSchema=pL(n),Z(this,Et,r.map(dL)),this.viewport=c||(0,Oe.uuid)(),Z(this,Pa,r.length),Z(this,Vi,u),this.config={...R(this,me),aggregations:t||R(this,me).aggregations,columns:n.map(d=>d.name),filter:s||R(this,me).filter,groupBy:i||R(this,me).groupBy,sort:a||R(this,me).sort},Rn==null||Rn(`columnMap: ${JSON.stringify(R(this,eo))}`)}async subscribe({viewport:t=(c=>(c=this.viewport)!=null?c:(0,Oe.uuid)())(),columns:n,aggregations:r,range:s,sort:i,groupBy:l,filter:a},u){var d;this.clientCallback=u,this.viewport=t,this.status="subscribed",this.lastRangeServed={from:0,to:0},r||n||a||l||i?(s&&Z(this,lt,s),this.config={...R(this,me),aggregations:r||R(this,me).aggregations,columns:n||R(this,me).columns,filter:a||R(this,me).filter,groupBy:l||R(this,me).groupBy,sort:i||R(this,me).sort}):((d=this.clientCallback)==null||d.call(this,{...R(this,me),type:"subscribed",clientViewportId:this.viewport,range:R(this,lt),tableSchema:this.tableSchema}),this.clientCallback({clientViewportId:this.viewport,mode:"size-only",type:"viewport-update",size:R(this,Et).length}),s?this.range=s:R(this,lt)!==Oe.NULL_RANGE&&this.sendRowsToClient())}unsubscribe(){console.log("unsubscribe noop")}suspend(){return console.log("noop"),this}resume(){return console.log("resume noop"),this}disable(){return console.log("disable noop"),this}enable(){return console.log("enable noop"),this}select(t){Rn==null||Rn(`select ${JSON.stringify(t)}`),this.selectedRows=t,this.setRange((0,Oe.resetRange)(R(this,lt)),!0)}openTreeNode(t){this.openTreeNodes.push(t),this.processedData=Ph(this.openTreeNodes,R(this,Et),R(this,me).groupBy,R(this,eo),this.groupMap,this.processedData),this.setRange((0,Oe.resetRange)(R(this,lt)),!0)}closeTreeNode(t){this.openTreeNodes=this.openTreeNodes.filter(n=>n!==t),this.processedData&&(this.processedData=VC(t,this.processedData),this.setRange((0,Oe.resetRange)(R(this,lt)),!0))}get data(){return R(this,Et)}get currentData(){var t;return(t=this.processedData)!=null?t:R(this,Et)}get config(){return R(this,me)}set config(t){var n;if(Lc(R(this,me),t)){if(t){let r=R(this,me),s=(n=t==null?void 0:t.filter)!=null&&n.filter&&(t==null?void 0:t.filter.filterStruct)===void 0?{...t,filter:{filter:t.filter.filter,filterStruct:ys(t.filter.filter)}}:t;Z(this,me,Oc(s));let i;if(lC(t)){let{filter:l,filterStruct:a=ys(l)}=t.filter;if(a){let u=Kc(R(this,eo),a);i=R(this,Et).filter(u)}else throw Error("filter must include filterStruct")}if(aC(t)&&(i=$C(i!=null?i:R(this,Et),t.sort,R(this,eo))),this.openTreeNodes.length>0&&ih(r,t)&&(R(this,me).groupBy.length===0?this.openTreeNodes.length=0:console.log("adjust the openTReeNodes groupBy changed ",{originalGroupBy:r.groupBy,newGroupBy:s.groupBy})),iC(t)){let[l,a]=zC(i!=null?i:R(this,Et),t.groupBy,R(this,eo));this.groupMap=a,i=l,this.openTreeNodes.length>0&&(i=Ph(this.openTreeNodes,R(this,Et),R(this,me).groupBy,R(this,eo),this.groupMap,i))}this.processedData=i==null?void 0:i.map((l,a)=>{let u=l.slice();return u[0]=a,u[1]=a,u})}this.setRange((0,Oe.resetRange)(R(this,lt)),!0),this.emit("config",R(this,me))}}get selectedRowsCount(){return R(this,Gc)}get size(){return R(this,Pa)}get range(){return R(this,lt)}set range(t){(t.from!==R(this,lt).from||t.to!==R(this,lt).to)&&this.setRange(t)}setRange(t,n=!1){Z(this,lt,t),this.keys.reset(t),this.sendRowsToClient(n)}sendRowsToClient(t=!1){var i,l;let n=this.rangeChangeRowset==="delta"&&!t?(0,Oe.rangeNewItems)(this.lastRangeServed,R(this,lt)):R(this,lt),r=(i=this.processedData)!=null?i:R(this,Et),s=r.slice(n.from,n.to).map(a=>fL(a,this.keys,this.selectedRows));(l=this.clientCallback)==null||l.call(this,{clientViewportId:this.viewport,mode:"batch",rows:s,size:r.length,type:"viewport-update"}),this.lastRangeServed=R(this,lt)}get columns(){return R(this,me).columns}set columns(t){this.config={...R(this,me),columns:t}}get aggregations(){return R(this,me).aggregations}set aggregations(t){var s;Z(this,me,{...R(this,me),aggregations:t});let n=(s=this.processedData)!=null?s:R(this,Et),r=R(this,Et);AC(t,n,R(this,me).groupBy,r,R(this,eo),this.groupMap),this.setRange((0,Oe.resetRange)(R(this,lt)),!0),this.emit("config",R(this,me))}get sort(){return R(this,me).sort}set sort(t){console.log("set sort",{sort:t}),Rn==null||Rn(`sort ${JSON.stringify(t)}`),this.config={...R(this,me),sort:t}}get filter(){return R(this,me).filter}set filter(t){Rn==null||Rn(`filter ${JSON.stringify(t)}`),this.config={...R(this,me),filter:t}}get groupBy(){return R(this,me).groupBy}set groupBy(t){this.config={...R(this,me),groupBy:t}}get title(){return R(this,Vi)}set title(t){Z(this,Vi,t)}get _clientCallback(){return this.clientCallback}createLink({parentVpId:t,link:{fromColumn:n,toColumn:r}}){console.log("create link",{parentVpId:t,fromColumn:n,toColumn:r})}removeLink(){console.log("remove link")}findRow(t){let n=R(this,Et)[t];if(n)return n;throw`no row found for key ${t}`}updateRow(t,n,r){let s=this.findRow(parseInt(t));console.log({row:s,colName:n,value:r})}applyEdit(t,n,r){return console.log(`ArrayDataSource applyEdit ${t} ${n} ${r}`),!0}async menuRpcCall(t){return new Promise(n=>{let{type:r}=t;switch(r){case"VP_EDIT_CELL_RPC":{let{rowKey:s,field:i,value:l}=t;try{this.updateRow(s,i,l),n(void 0)}catch(a){n({error:String(a),type:"VP_EDIT_RPC_REJECT"})}}break;default:n(void 0)}})}};Da=new WeakMap,eo=new WeakMap,me=new WeakMap,Et=new WeakMap,lt=new WeakMap,Gc=new WeakMap,Pa=new WeakMap,Vi=new WeakMap;var dn=require("@vuu-ui/vuu-utils");var hL={columns:[],key:"",table:{module:"",table:""}},{DEPTH:Bi,IDX:_C,IS_EXPANDED:mL,IS_LEAF:gL,KEY:jC,SELECTED:KC}=dn.metadataKeys,UC=(o,e)=>{let[t]=o,n=o.slice();return n[1]=e.keyFor(t),n},vr,Cr,Xt,Sr,wr,yo,qc,jc,Tr,zi,GC=class extends dn.EventEmitter{constructor({aggregations:t,data:n,filter:r,groupBy:s,sort:i,title:l,viewport:a}){super();this.status="initialising";this.expandedRows=new Set;this.visibleRows=[];de(this,vr,[]);de(this,Cr,[]);de(this,Xt,void 0);de(this,Sr,{filter:""});de(this,wr,[]);de(this,yo,{from:0,to:0});de(this,qc,0);de(this,jc,0);de(this,Tr,{sortDefs:[]});de(this,zi,void 0);this.keys=new dn.KeySet(R(this,yo));if(!n)throw Error("JsonDataSource constructor called without data");[this.columnDescriptors,Jb(this,Xt)._]=(0,dn.jsonToDataSourceRows)(n),this.visibleRows=R(this,Xt).filter(u=>u[Bi]===0).map((u,c)=>[c,c].concat(u.slice(2))),this.viewport=a||(0,dn.uuid)(),t&&Z(this,vr,t),this.columnDescriptors&&Z(this,Cr,this.columnDescriptors.map(u=>u.name)),r&&Z(this,Sr,r),s&&Z(this,wr,s),i&&Z(this,Tr,i),Z(this,zi,l)}async subscribe({viewport:t=(c=>(c=this.viewport)!=null?c:(0,dn.uuid)())(),columns:n,aggregations:r,range:s,sort:i,groupBy:l,filter:a},u){var d;this.clientCallback=u,console.log(`subscribe range ${s==null?void 0:s.from} ${s==null?void 0:s.to}`),r&&Z(this,vr,r),n&&Z(this,Cr,n),a&&Z(this,Sr,a),l&&Z(this,wr,l),s&&Z(this,yo,s),i&&Z(this,Tr,i),this.status==="initialising"&&(this.viewport=t,this.status="subscribed",(d=this.clientCallback)==null||d.call(this,{aggregations:R(this,vr),type:"subscribed",clientViewportId:this.viewport,columns:R(this,Cr),filter:R(this,Sr),groupBy:R(this,wr),range:R(this,yo),sort:R(this,Tr),tableSchema:hL}),this.clientCallback({clientViewportId:this.viewport,mode:"size-only",type:"viewport-update",size:this.visibleRows.length}))}unsubscribe(){console.log("noop")}suspend(){return console.log("noop"),this}resume(){return console.log("noop"),this}disable(){return console.log("noop"),this}enable(){return console.log("noop"),this}select(t){var r;let n=[];for(let s of R(this,Xt)){let{[_C]:i,[KC]:l}=s,a=l===1,u=(0,dn.isSelected)(t,i);if(u!==a){let c=s.slice();c[KC]=u?1:0,R(this,Xt)[i]=c,n.push(c)}}n.length>0&&((r=this.clientCallback)==null||r.call(this,{clientViewportId:this.viewport,mode:"update",type:"viewport-update",rows:n}))}openTreeNode(t){var s;this.expandedRows.add(t),this.visibleRows=qC(R(this,Xt),this.expandedRows);let{from:n,to:r}=R(this,yo);(s=this.clientCallback)==null||s.call(this,{clientViewportId:this.viewport,mode:"batch",rows:this.visibleRows.slice(n,r).map(i=>UC(i,this.keys)),size:this.visibleRows.length,type:"viewport-update"}),console.log(this.expandedRows)}closeTreeNode(t,n=!1){if(this.expandedRows.delete(t),n)for(let r of this.expandedRows.keys())r.startsWith(t)&&this.expandedRows.delete(r);this.visibleRows=qC(R(this,Xt),this.expandedRows),this.sendRowsToClient()}get config(){}get selectedRowsCount(){return R(this,qc)}get size(){return R(this,jc)}get range(){return R(this,yo)}set range(t){Z(this,yo,t),this.keys.reset(t),requestAnimationFrame(()=>{this.sendRowsToClient()})}sendRowsToClient(){var r;let{from:t,to:n}=R(this,yo);(r=this.clientCallback)==null||r.call(this,{clientViewportId:this.viewport,mode:"batch",rows:this.visibleRows.slice(t,n).map(s=>UC(s,this.keys)),size:this.visibleRows.length,type:"viewport-update"})}get columns(){return R(this,Cr)}set columns(t){Z(this,Cr,t),console.log(`ArrayDataSource setColumns ${t.join(",")}`)}get aggregations(){return R(this,vr)}set aggregations(t){Z(this,vr,t)}get sort(){return R(this,Tr)}set sort(t){Z(this,Tr,t)}get filter(){return R(this,Sr)}set filter(t){Z(this,Sr,t),console.log(`RemoteDataSource ${JSON.stringify(t)}`)}get groupBy(){return R(this,wr)}set groupBy(t){Z(this,wr,t)}get title(){return R(this,zi)}set title(t){Z(this,zi,t)}createLink({parentVpId:t,link:{fromColumn:n,toColumn:r}}){console.log("create link",{parentVpId:t,fromColumn:n,toColumn:r})}removeLink(){console.log("remove link")}async menuRpcCall(t){console.log("rmenuRpcCall",{rpcRequest:t})}applyEdit(t,n,r){return console.log(`ArrayDataSource applyEdit ${t} ${n} ${r}`),!0}getChildRows(t){let n=R(this,Xt).find(s=>s[jC]===t);if(n){let{[_C]:s,[Bi]:i}=n,l=s+1,a=[];do{let{[Bi]:u}=R(this,Xt)[l];if(u===i+1)a.push(R(this,Xt)[l]);else if(u<=i)break;l+=1}while(l<R(this,Xt).length);return a}else console.warn(`JsonDataSource getChildRows row not found for key ${t}`);let r=t.split("|").slice(1);return console.log({sections:r,parentRow:n}),[]}getRowsAtDepth(t,n=!0){return(n?this.visibleRows:R(this,Xt)).filter(s=>s[Bi]===t)}};vr=new WeakMap,Cr=new WeakMap,Xt=new WeakMap,Sr=new WeakMap,wr=new WeakMap,yo=new WeakMap,qc=new WeakMap,jc=new WeakMap,Tr=new WeakMap,zi=new WeakMap;function qC(o,e){let t=[],n={value:0};for(let r=0;r<o.length;r++){let s=o[r],{[Bi]:i,[jC]:l,[gL]:a}=s,u=e.has(l);if(t.push(bL(s,n,u)),!a&&!u)do r+=1;while(r<o.length-1&&o[r+1][Bi]>i)}return t}var bL=(o,e,t)=>{let n=o.slice();return n[0]=e.value,n[1]=e.value,t&&(n[mL]=!0),e.value+=1,n};var pn=require("@vuu-ui/vuu-utils");var{info:Vt}=(0,pn.logger)("RemoteDataSource"),se,Qc,$i,_o,ka,Wi,vs,kh=class extends pn.EventEmitter{constructor({bufferSize:t=100,aggregations:n,columns:r,filter:s,groupBy:i,sort:l,table:a,title:u,viewport:c,visualLink:d}){super();this.server=null;this.status="initialising";de(this,se,Ac);de(this,Qc,[]);de(this,$i,"throttle");de(this,_o,{from:0,to:0});de(this,ka,0);de(this,Wi,0);de(this,vs,void 0);this.handleMessageFromServer=t=>{var n,r;if(t.type==="subscribed")this.status="subscribed",(n=this.clientCallback)==null||n.call(this,t);else if(t.type==="disabled")this.status="disabled";else if(t.type==="enabled")this.status="enabled";else{if(cC(t))return;t.type==="debounce-begin"?this.optimize="debounce":(t.type==="viewport-update"&&t.size!==void 0&&t.size!==R(this,Wi)&&(Z(this,Wi,t.size),this.emit("resize",t.size)),this.configChangePending&&this.setConfigPending(),(r=this.clientCallback)==null||r.call(this,t),this.optimize==="debounce"&&this.revertDebounce())}};this.revertDebounce=(0,pn.debounce)(()=>{this.optimize="throttle"},100);this.rawRangeRequest=t=>{this.viewport&&this.server&&this.server.send({viewport:this.viewport,type:"setViewRange",range:t})};this.debounceRangeRequest=(0,pn.debounce)(t=>{this.viewport&&this.server&&this.server.send({viewport:this.viewport,type:"setViewRange",range:t})},50);this.throttleRangeRequest=(0,pn.throttle)(t=>{this.viewport&&this.server&&this.server.send({viewport:this.viewport,type:"setViewRange",range:t})},80);if(!a)throw Error("RemoteDataSource constructor called without table");this.bufferSize=t,this.table=a,this.viewport=c,Z(this,se,{...R(this,se),aggregations:n||R(this,se).aggregations,columns:r||R(this,se).columns,filter:s||R(this,se).filter,groupBy:i||R(this,se).groupBy,sort:l||R(this,se).sort,visualLink:d||R(this,se).visualLink}),Z(this,vs,u),this.rangeRequest=this.throttleRangeRequest}async subscribe({viewport:t=(c=>(c=this.viewport)!=null?c:(0,pn.uuid)())(),columns:n,aggregations:r,range:s,sort:i,groupBy:l,filter:a},u){var p;if(this.clientCallback=u,(r||n||a||l||i)&&Z(this,se,{...R(this,se),aggregations:r||R(this,se).aggregations,columns:n||R(this,se).columns,filter:a||R(this,se).filter,groupBy:l||R(this,se).groupBy,sort:i||R(this,se).sort}),s&&Z(this,_o,s),this.status!=="initialising")return;this.status="subscribing",this.viewport=t,this.server=await ph();let{bufferSize:d}=this;(p=this.server)==null||p.subscribe({...R(this,se),bufferSize:d,viewport:t,table:this.table,range:R(this,_o),title:R(this,vs)},this.handleMessageFromServer)}unsubscribe(){var t,n;Vt==null||Vt(`unsubscribe #${this.viewport}`),this.viewport&&((t=this.server)==null||t.unsubscribe(this.viewport)),(n=this.server)==null||n.destroy(this.viewport),this.removeAllListeners()}suspend(){var t;return Vt==null||Vt(`suspend #${this.viewport}, current status ${this.status}`),this.viewport&&(this.status="suspended",(t=this.server)==null||t.send({type:"suspend",viewport:this.viewport})),this}resume(){var t;return Vt==null||Vt(`resume #${this.viewport}, current status ${this.status}`),this.viewport&&(this.status==="disabled"||this.status==="disabling"?this.enable():this.status==="suspended"&&((t=this.server)==null||t.send({type:"resume",viewport:this.viewport}),this.status="subscribed")),this}disable(){var t;return Vt==null||Vt(`disable #${this.viewport}, current status ${this.status}`),this.viewport&&(this.status="disabling",(t=this.server)==null||t.send({viewport:this.viewport,type:"disable"})),this}enable(){var t;return Vt==null||Vt(`enable #${this.viewport}, current status ${this.status}`),this.viewport&&(this.status==="disabled"||this.status==="disabling")&&(this.status="enabling",(t=this.server)==null||t.send({viewport:this.viewport,type:"enable"})),this}select(t){var n;Z(this,ka,t.length),this.viewport&&((n=this.server)==null||n.send({viewport:this.viewport,type:"select",selected:t}))}openTreeNode(t){var n;this.viewport&&((n=this.server)==null||n.send({viewport:this.viewport,type:"openTreeNode",key:t}))}closeTreeNode(t){var n;this.viewport&&((n=this.server)==null||n.send({viewport:this.viewport,type:"closeTreeNode",key:t}))}get optimize(){return R(this,$i)}set optimize(t){if(t!==R(this,$i)){switch(Z(this,$i,t),t){case"none":this.rangeRequest=this.rawRangeRequest;break;case"debounce":this.rangeRequest=this.debounceRangeRequest;break;case"throttle":this.rangeRequest=this.throttleRangeRequest;break}this.emit("optimize",t)}}get selectedRowsCount(){return R(this,ka)}get size(){return R(this,Wi)}get range(){return R(this,_o)}set range(t){(t.from!==R(this,_o).from||t.to!==R(this,_o).to)&&(Z(this,_o,t),this.rangeRequest(t))}get config(){return R(this,se)}set config(t){var n,r;if(Lc(R(this,se),t)&&t){let s=(n=t==null?void 0:t.filter)!=null&&n.filter&&(t==null?void 0:t.filter.filterStruct)===void 0?{...t,filter:{filter:t.filter.filter,filterStruct:ys(t.filter.filter)}}:t;Z(this,se,Oc(s)),R(this,se)&&this.viewport&&this.server&&t&&((r=this.server)==null||r.send({viewport:this.viewport,type:"config",config:R(this,se)})),this.emit("config",R(this,se))}}get columns(){return R(this,se).columns}set columns(t){if(Z(this,se,{...R(this,se),columns:t}),this.viewport){let n={viewport:this.viewport,type:"setColumns",columns:t};this.server&&this.server.send(n)}this.emit("config",R(this,se))}get aggregations(){return R(this,se).aggregations}set aggregations(t){var n;Z(this,se,{...R(this,se),aggregations:t}),this.viewport&&((n=this.server)==null||n.send({viewport:this.viewport,type:"aggregate",aggregations:t})),this.emit("config",R(this,se))}get sort(){return R(this,se).sort}set sort(t){if(Z(this,se,{...R(this,se),sort:t}),this.viewport){let n={viewport:this.viewport,type:"sort",sort:t};this.server&&this.server.send(n)}this.emit("config",R(this,se))}get filter(){return R(this,se).filter}set filter(t){if(Z(this,se,{...R(this,se),filter:t}),this.viewport){let n={viewport:this.viewport,type:"filter",filter:t};this.server&&this.server.send(n)}this.emit("config",R(this,se))}get groupBy(){return R(this,se).groupBy}set groupBy(t){var n;if((0,pn.itemsOrOrderChanged)(this.groupBy,t)){let r=R(this,Qc).length>0;if(Z(this,se,{...R(this,se),groupBy:t}),this.viewport){let s={viewport:this.viewport,type:"groupBy",groupBy:R(this,se).groupBy};this.server&&this.server.send(s)}!r&&t.length>0&&this.viewport&&((n=this.clientCallback)==null||n.call(this,{clientViewportId:this.viewport,mode:"batch",type:"viewport-update",size:0,rows:[]})),this.emit("config",R(this,se)),this.setConfigPending({groupBy:t})}}get title(){return R(this,vs)}set title(t){var n;Z(this,vs,t),this.viewport&&t&&((n=this.server)==null||n.send({type:"setTitle",title:t,viewport:this.viewport}))}get visualLink(){return R(this,se).visualLink}set visualLink(t){var n,r;if(Z(this,se,{...R(this,se),visualLink:t}),t){let{parentClientVpId:s,link:{fromColumn:i,toColumn:l}}=t;this.viewport&&((n=this.server)==null||n.send({viewport:this.viewport,type:"createLink",parentClientVpId:s,parentColumnName:l,childColumnName:i}))}else this.viewport&&((r=this.server)==null||r.send({type:"removeLink",viewport:this.viewport}));this.emit("config",R(this,se))}setConfigPending(t){let n=this.configChangePending;this.configChangePending=t,t!==void 0?this.emit("config",t,!1):this.emit("config",n,!0)}async menuRpcCall(t){var n;if(this.viewport)return(n=this.server)==null?void 0:n.rpcCall({vpId:this.viewport,...t})}applyEdit(t,n,r){return console.log(`ArrayDataSource applyEdit ${t} ${n} ${r}`),!0}};se=new WeakMap,Qc=new WeakMap,$i=new WeakMap,_o=new WeakMap,ka=new WeakMap,Wi=new WeakMap,vs=new WeakMap;var Lh=require("react");var JC=require("react");var QC={type:"RPC_CALL",service:"TypeAheadRpcHandler"};var Jc=()=>(0,JC.useCallback)(async e=>{let t=e.length===2?{method:"getUniqueFieldValues",params:e,...QC}:{method:"getUniqueFieldValuesStartingWith",params:e,...QC};return await xC(t)},[]);var Xc=require("@vuu-ui/vuu-utils"),yL=require("react");var{KEY:nQ}=Xc.metadataKeys;var xL=o=>o.type==="vuu-links";var vL=o=>o.type==="vuu-menu",Ah=o=>vL(o)||xL(o),Oh=o=>o.type==="vuu-link-created"||o.type==="vuu-link-removed";var Nh=require("react");var Yc=require("@vuu-ui/vuu-utils"),Ia=require("react"),{SELECTED:bQ}=Yc.metadataKeys;var XC=require("react");var RL=require("@vuu-ui/vuu-utils"),La=require("react");function CL(o,...e){let t=new Set(o);for(let n of e)for(let r of n)t.add(r);return t}var YC="ArrowUp",ZC="ArrowDown",eS="ArrowLeft",tS="ArrowRight";var nS="Home",oS="End",rS="PageUp",sS="PageDown";var SL=new Set(["Enter","Delete"," "]),wL=new Set(["Tab"]),TL=new Set(["ArrowRight","ArrowLeft"]),EL=new Set([nS,oS,rS,sS,ZC,eS,tS,YC]),ML=new Set(["F1","F2","F3","F4","F5","F6","F7","F8","F9","F10","F11","F12"]),SQ=CL(SL,EL,TL,ML,wL);var kL=require("@vuu-ui/vuu-utils"),Zc=require("react");var Hh=require("react");var DL=new Map,PL=(o,e,t)=>{switch(t){case"height":return e.height;case"clientHeight":return o.clientHeight;case"clientWidth":return o.clientWidth;case"contentHeight":return e.contentHeight;case"contentWidth":return e.contentWidth;case"scrollHeight":return Math.ceil(o.scrollHeight);case"scrollWidth":return Math.ceil(o.scrollWidth);case"width":return e.width;default:return 0}},OQ=new ResizeObserver(o=>{for(let e of o){let{target:t,borderBoxSize:n,contentBoxSize:r}=e,s=DL.get(t);if(s){let[{blockSize:i,inlineSize:l}]=n,[{blockSize:a,inlineSize:u}]=r,{onResize:c,measurements:d}=s,p=!1;for(let[f,h]of Object.entries(d)){let g=PL(t,{height:i,width:l,contentHeight:a,contentWidth:u},f);g!==h&&(p=!0,d[f]=g)}p&&c&&c(d)}}});var Er=require("@vuu-ui/vuu-utils"),Aa=require("react"),{IDX:IL}=Er.metadataKeys,LL=[],Fh=({selectionModel:o,onSelectionChange:e})=>{let t=(0,Aa.useRef)(-1),n=(0,Aa.useRef)(LL);return(0,Aa.useCallback)((s,i,l)=>{let{[IL]:a}=s,{current:u}=t,{current:c}=n,p=((0,Er.isRowSelected)(s)?Er.deselectItem:Er.selectItem)(o,c,a,i,l,u);n.current=p,t.current=a,e&&e(p)},[e,o])};var at=require("@vuu-ui/vuu-utils"),AL=require("react");var _Q=at.metadataKeys.count;var iS=require("react");var Ko=require("react"),ed=require("@vuu-ui/vuu-utils"),OL=15e5,NL={contentHeight:0,contentWidth:0,getRowAtPosition:()=>-1,getRowOffset:()=>-1,horizontalScrollbarHeight:0,maxScrollContainerScrollHorizontal:0,maxScrollContainerScrollVertical:0,pinnedWidthLeft:0,pinnedWidthRight:0,rowCount:0,setPctScrollTop:()=>{},totalHeaderHeight:0,verticalScrollbarWidth:0,viewportBodyHeight:0},HL=o=>{let e=0,t=0,n=0;for(let r of o){let{hidden:s,pin:i,width:l}=r,a=s?0:l;i==="left"?e+=a:i==="right"?t+=a:n+=a}return{pinnedWidthLeft:e+4,pinnedWidthRight:t+4,unpinnedWidth:n}},Vh=({columns:o,headerHeight:e,headings:t,rowCount:n,rowHeight:r,size:s})=>{let i=(0,Ko.useRef)(0),a=Math.min(n,OL)*r,c=n*r-a,{pinnedWidthLeft:d,pinnedWidthRight:p,unpinnedWidth:f}=(0,Ko.useMemo)(()=>HL(o),[o]),[h,g]=(0,Ko.useMemo)(()=>(0,ed.actualRowPositioning)(r),[r]),[m,y]=(0,Ko.useMemo)(()=>c?(0,ed.virtualRowPositioning)(r,c,i):[h,g],[g,h,c,r]),w=(0,Ko.useCallback)(v=>{i.current=v},[]);return(0,Ko.useMemo)(()=>{var v;if(s){let x=t.length,S=15,b=d+f+p,C=b>s.width?S:0,M=e*(1+x),D=a-(((v=s==null?void 0:s.height)!=null?v:0)-C)+M,E=b-s.width+d,O=(s.height-e)/r,T=Number.isInteger(O)?O+1:Math.ceil(O),P=s.height-M,L=a>P?S:0;return{contentHeight:a,getRowAtPosition:y,getRowOffset:m,horizontalScrollbarHeight:C,maxScrollContainerScrollHorizontal:E,maxScrollContainerScrollVertical:D,pinnedWidthLeft:d,pinnedWidthRight:p,rowCount:T,contentWidth:b,setPctScrollTop:w,totalHeaderHeight:M,verticalScrollbarWidth:L,viewportBodyHeight:P}}else return NL},[s,t.length,d,f,p,a,e,r,y,m,w])};var lS=require("@vuu-ui/vuu-utils"),Oa=require("react");var{KEY:xJ,IS_EXPANDED:vJ,IS_LEAF:CJ}=_i.metadataKeys;var FL=B(require("classnames"));var VL=require("@vuu-ui/vuu-utils"),uS=require("react/jsx-runtime");var cS=B(require("classnames")),Ui=require("@vuu-ui/vuu-utils");var Ki=require("react/jsx-runtime"),Ha="vuuJsonCell",{IS_EXPANDED:BL,KEY:zL}=Ui.metadataKeys,$L=o=>{let e=o.lastIndexOf("|");return e===-1?"":o.slice(e+1)},WL=({column:o,row:e})=>{let{key:t}=o,n=e[t],r=!1;(0,Ui.isJsonAttribute)(n)&&(n=n.slice(0,-1),r=!0);let s=$L(e[zL]),i=(0,cS.default)({[`${Ha}-name`]:s===n,[`${Ha}-value`]:s!==n,[`${Ha}-group`]:r});if(r){let l=e[BL]?"minus-box":"plus-box";return(0,Ki.jsxs)("span",{className:i,children:[(0,Ki.jsx)("span",{className:`${Ha}-value`,children:n}),(0,Ki.jsx)("span",{className:`${Ha}-toggle`,"data-icon":l})]})}else return n?(0,Ki.jsx)("span",{className:i,children:n}):null};(0,Ui.registerComponent)("json",WL,"cell-renderer",{description:"JSON formatter",label:"JSON formatter",serverDataType:"json"});var KL=B(require("classnames")),UL=require("react");var Gi=require("react");var pS=require("react/jsx-runtime"),dS=()=>{},_L="vuuColumnResizerNext",Fa=({onDrag:o,onDragEnd:e=dS,onDragStart:t=dS})=>{let n=(0,Gi.useRef)(0),r=(0,Gi.useCallback)(l=>{l.stopPropagation&&l.stopPropagation(),l.preventDefault&&l.preventDefault();let a=Math.round(l.clientX),u=a-n.current;n.current=a,u!==0&&o(l,u)},[o]),s=(0,Gi.useCallback)(l=>{window.removeEventListener("mouseup",s),window.removeEventListener("mousemove",r),e(l)},[e,r]),i=(0,Gi.useCallback)(l=>{t(l),n.current=Math.round(l.clientX),window.addEventListener("mouseup",s),window.addEventListener("mousemove",r),l.stopPropagation&&l.stopPropagation(),l.preventDefault&&l.preventDefault()},[t,r,s]);return(0,pS.jsx)("div",{className:_L,onMouseDown:i})};var Mr=require("react"),Va=({column:o,onResize:e,rootRef:t})=>{let n=(0,Mr.useRef)(0),[r,s]=(0,Mr.useState)(!1),{name:i}=o,l=(0,Mr.useCallback)(()=>{if(console.log("onResizeStart"),e&&t.current){console.log("handleResizeStart");let{width:c}=t.current.getBoundingClientRect();n.current=Math.round(c),s(!0),e==null||e("begin",i)}},[i,e,t]),a=(0,Mr.useCallback)((c,d)=>{if(t.current&&e){let{width:p}=t.current.getBoundingClientRect(),f=Math.round(p)+d;f!==n.current&&f>0&&(e("resize",i,f),n.current=f)}},[i,e,t]),u=(0,Mr.useCallback)(()=>{e&&(e("end",i,n.current),setTimeout(()=>{s(!1)},80))},[i,e]);return{isResizing:r,onDrag:a,onDragStart:l,onDragEnd:u}};var fS=require("@vuu-ui/vuu-utils"),hS=B(require("classnames")),mS=require("react"),Uo=(o,e,t)=>(0,mS.useMemo)(()=>{let n=(0,hS.default)(e,{vuuPinFloating:o.pin==="floating",vuuPinLeft:o.pin==="left",vuuPinRight:o.pin==="right",vuuEndPin:t&&o.endPin,[`${e}-editable`]:o.editable,[`${e}-right`]:o.align==="right"}),r=(0,fS.getColumnStyle)(o);return{className:n,style:r}},[o,e,t]);var bS=B(require("classnames")),yS=require("react");var nd=require("react/jsx-runtime"),gS="vuuColumnHeaderPill",Cs=({children:o,className:e,column:t,onRemove:n,removable:r,...s})=>{if(r&&typeof n!="function")throw Error("ColumnHeaderPill onRemove prop must be provided if Pill is removable");let i=(0,yS.useCallback)(l=>{l.preventDefault(),l.stopPropagation(),n==null||n(t)},[t,n]);return(0,nd.jsxs)("div",{...s,className:(0,bS.default)(gS,e),children:[o,r?(0,nd.jsx)("span",{className:`${gS}-removeButton`,role:"button","data-icon":"cross",onClick:i}):null]})};var qi=require("react/jsx-runtime"),Bh=({column:o,...e})=>{let{name:t,sorted:n}=o,r=typeof n=="number"?n<0?"arrow-down":"arrow-up":n==="A"?"arrow-up":n==="D"?"arrow-down":void 0;return(0,qi.jsxs)(Cs,{...e,column:o,children:[(0,qi.jsx)("span",{className:"vuuGroupColumnPill-label",children:t}),r!==void 0?(0,qi.jsx)("span",{"data-icon":r}):null,typeof n=="number"?(0,qi.jsx)("span",{className:"vuuSortPosition",children:Math.abs(n)}):null]})};var Ba=require("react/jsx-runtime"),xS=({column:o})=>{if(!o.sorted)return null;let e=typeof o.sorted=="number"?o.sorted<0?"arrow-down":"arrow-up":o.sorted==="A"?"arrow-up":"arrow-down";return(0,Ba.jsxs)(Cs,{column:o,children:[(0,Ba.jsx)("span",{"data-icon":e}),typeof o.sorted=="number"?(0,Ba.jsx)("span",{className:"vuuSortPosition",children:Math.abs(o.sorted)}):null]})};var vS=require("react/jsx-runtime"),GL=require("react");var CS=B(require("classnames")),Qi=require("react");var ji=require("react/jsx-runtime"),SS=require("react"),zh="vuuTableNextGroupHeaderCell",qL=(o,e)=>o===e?o:e,od=({column:o,className:e,onRemoveColumn:t,onResize:n,...r})=>{let s=(0,Qi.useRef)(null),{isResizing:i,...l}=Va({column:o,onResize:n,rootRef:s}),[a,u]=(0,Qi.useState)(o.columns),{className:c,style:d}=Uo(o,zh,!0),p=a.length>1?{removable:!0,onRemove:t}:void 0,f=(0,Qi.useCallback)((h,g)=>{u(m=>{let y=m.slice(),[w]=y.splice(h,1);return g===-1?y.concat(w):(y.splice(g,0,w),y)})},[]);return Un(()=>{u(h=>qL(h,o.columns))},[o.columns]),(0,ji.jsxs)("div",{...r,className:(0,CS.default)(c,"vuuTableNextHeaderCell",e,{[`${zh}-pending`]:o.groupConfirmed===!1}),ref:s,role:"columnheader",style:d,children:[(0,ji.jsx)(za,{allowDragDrop:!0,className:`${zh}-inner`,height:24,onMoveItem:f,overflowPosition:"start",children:a.map(h=>(0,SS.createElement)(Bh,{...p,column:h,key:h.key}))}),(0,ji.jsx)(Cs,{column:o,removable:!0,onRemove:t}),o.resizeable!==!1?(0,ji.jsx)(Fa,{...l}):null]})};var rd=require("react");var wS=B(require("classnames")),Ss=require("react");var ES=require("react/jsx-runtime"),jL=o=>{if(o){let{bottom:e,left:t}=o.getBoundingClientRect();return{x:t,y:e+6}}},TS=({className:o,column:e,...t})=>{let n=(0,Ss.useRef)(null),[r,s]=(0,Ss.useState)(!1),[i]=ho(),l=(0,Ss.useCallback)(()=>{s(!1)},[]),a=(0,Ss.useCallback)(u=>{s(!0),i(u,"column-menu",{column:e,ContextMenuProps:{className:"vuuColumnMenuList",onClose:l,position:jL(n.current)}})},[e,l,i]);return(0,ES.jsx)("span",{...t,className:(0,wS.default)("vuuTable-columnMenu",o,{"vuuTable-columnMenu-open":r}),"data-icon":"more-vert",onClick:a,ref:n})};var MS=B(require("classnames"));var ws=require("react/jsx-runtime"),$h="vuuTableNextHeaderCell",RS=({className:o,column:e,onClick:t,onResize:n,...r})=>{var g;let s=(0,rd.useRef)(null),{isResizing:i,...l}=Va({column:e,onResize:n,rootRef:s}),a=(0,rd.useCallback)(m=>{console.log(`click isResizing ${i}`),!i&&(t==null||t(m))},[i,t]),{className:u,style:c}=Uo(e,$h,!0),d=(0,ws.jsx)(TS,{column:e}),p=(0,ws.jsx)("div",{className:`${$h}-label`,children:(g=e.label)!=null?g:e.name}),f=(0,ws.jsx)(xS,{column:e}),h=e.align==="right"?[f,p,d]:[d,p,f];return(0,ws.jsxs)("div",{...r,className:(0,MS.default)(u,o,{[`${$h}-resizing`]:i}),onClick:a,ref:s,role:"columnheader",style:c,children:[...h,e.resizeable!==!1?(0,ws.jsx)(Fa,{...l}):null]})};var Pl=require("@vuu-ui/vuu-utils"),jg=B(require("classnames")),JE=require("react");var fn=require("@vuu-ui/vuu-utils"),OS=B(require("classnames")),$a=require("react");var DS=require("@vuu-ui/vuu-utils"),PS=require("react");var Wh=require("react/jsx-runtime"),{IDX:QL}=DS.metadataKeys,JL="vuuTableNextCell",kS=({column:o,columnMap:e,onDataEdited:t,row:n})=>{let{className:r,style:s}=Uo(o,JL),{CellRenderer:i,name:l,valueFormatter:a}=o,u=e[l],c=(0,PS.useCallback)(d=>(t==null||t(n[QL],l,d),!0),[l,t,n]);return(0,Wh.jsx)("div",{className:r,role:"cell",style:s,children:i?(0,Wh.jsx)(i,{column:o,columnMap:e,onCommit:c,row:n}):a(n[u])})};var sd=require("@vuu-ui/vuu-utils"),IS=require("react");var LS=B(require("classnames"));var Ji=require("react/jsx-runtime"),{IS_LEAF:XL}=sd.metadataKeys,_h="vuuTableNextGroupCell",AS=({column:o,onClick:e,row:t})=>{let{columns:n}=o,[r,s]=(0,sd.getGroupValueAndOffset)(n,t),{className:i,style:l}=Uo(o,_h),a=(0,IS.useCallback)(d=>{e==null||e(d,o)},[o,e]),u=t[XL],c=Array(s).fill(0).map((d,p)=>(0,Ji.jsx)("span",{className:`${_h}-spacer`},p));return(0,Ji.jsxs)("div",{className:(0,LS.default)(i,"vuuTableNextCell"),role:"cell",style:l,onClick:u?void 0:a,children:[c,u?null:(0,Ji.jsx)("span",{className:`${_h}-toggle`,"data-icon":"triangle-right"}),(0,Ji.jsx)("span",{children:r})]})};var id=require("react/jsx-runtime"),NS=require("react"),{IDX:YL,IS_EXPANDED:ZL,SELECTED:eA}=fn.metadataKeys,Rr="vuuTableNextRow",Kh=(0,$a.memo)(({className:o,columnMap:e,columns:t,row:n,offset:r,onClick:s,onDataEdited:i,onToggleGroup:l,zebraStripes:a=!1,...u})=>{let{[YL]:c,[ZL]:d,[eA]:p}=n,f=(0,$a.useCallback)(x=>{let S=x.shiftKey,b=x.ctrlKey||x.metaKey;s==null||s(n,S,b)},[s,n]),{True:h,First:g,Last:m}=fn.RowSelected,y=(0,OS.default)(Rr,o,{[`${Rr}-even`]:a&&c%2===0,[`${Rr}-expanded`]:d,[`${Rr}-selected`]:p&h,[`${Rr}-selectedStart`]:p&g,[`${Rr}-selectedEnd`]:p&m}),w={transform:`translate3d(0px, ${r}px, 0px)`},v=(0,$a.useCallback)((x,S)=>{((0,fn.isGroupColumn)(S)||(0,fn.isJsonGroup)(S,n))&&(x.stopPropagation(),l==null||l(n,S))},[l,n]);return(0,NS.createElement)("div",{...u,"aria-rowindex":n[0],key:`row-${n[0]}`,role:"row",className:y,onClick:f,style:w},(0,id.jsx)("span",{className:`${Rr}-selectionDecorator vuuStickyLeft`}),t.filter(fn.notHidden).map(x=>{let S=(0,fn.isGroupColumn)(x),b=(0,fn.isJsonColumn)(x);return(0,id.jsx)(S?AS:kS,{column:x,columnMap:e,onClick:S||b?v:void 0,onDataEdited:i,row:n},x.key)}),(0,id.jsx)("span",{className:`${Rr}-selectionDecorator vuuStickyRight`}))});Kh.displayName="Row";var HS=require("@vuu-ui/vuu-utils"),tA=o=>typeof o=="string",nA=(o,e)=>tA(e)?e===""?!0:o.value==="lower"&&e.toLowerCase()!==e?"value must be all lowercase":o.value==="upper"&&e.toUpperCase()!==e?"value must be all uppercase":!0:"value must be a string";(0,HS.registerComponent)("vuu-case",nA,"data-edit-validator",{});var FS=require("@vuu-ui/vuu-utils"),oA=o=>typeof o=="string",rA="value does not match expected pattern",sA=(o,e)=>{if(typeof o.value!="string")throw Error("Pattern validation rule must provide pattern");if(oA(e)){if(e==="")return!0;{let{message:t=rA}=o;return new RegExp(o.value).test(e)||t}}else return"value must be a string"};(0,FS.registerComponent)("vuu-pattern",sA,"data-edit-validator",{});var Yt=require("@vuu-ui/vuu-utils"),BS=B(require("classnames"),1);var Ts=require("@vuu-ui/vuu-utils"),ld=require("react"),iA=[void 0,void 0,void 0,void 0];function VS(o,e,t){var d;let n=(0,ld.useRef)(),[r,s,i,l]=n.current||iA,{type:a}=t,u=(0,Ts.isTypeDescriptor)(a)?(d=a.formatting)==null?void 0:d.decimals:void 0,c=o===r&&(0,Ts.isValidNumber)(e)&&(0,Ts.isValidNumber)(s)&&t===i?(0,Ts.getMovingValueDirection)(e,l,s,u):"";return(0,ld.useEffect)(()=>{n.current=[o,e,t,c]}),c}var ud=require("react/jsx-runtime"),lA=String.fromCharCode(11014),aA=String.fromCharCode(11015),{KEY:uA}=Yt.metadataKeys,ad="vuuBackgroundCellDeprecated",Wa={ArrowOnly:"arrow",BackgroundOnly:"bg-only",ArrowBackground:"arrow-bg"},cA=o=>(0,Yt.isTypeDescriptor)(o)&&o.renderer&&"flashStyle"in o.renderer?o.renderer.flashStyle:Wa.BackgroundOnly,dA=({column:o,row:e})=>{let{key:t,type:n,valueFormatter:r}=o,s=e[t],i=cA(n),l=VS(e[uA],s,o),a=i===Wa.ArrowOnly||i===Wa.ArrowBackground?l===Yt.UP1||l===Yt.UP2?lA:l===Yt.DOWN1||l===Yt.DOWN2?aA:null:null,u=l?" "+l:"",c=(0,BS.default)(ad,u,{[`${ad}-arrowOnly`]:i===Wa.ArrowOnly,[`${ad}-arrowBackground`]:i===Wa.ArrowBackground});return(0,ud.jsxs)("div",{className:c,tabIndex:-1,children:[(0,ud.jsx)("div",{className:`${ad}-flasher`,children:a}),r(e[o.key])]})};(0,Yt.registerComponent)("background",dA,"cell-renderer",{description:"Background Cell renderer for VuuTable",label:"Background Cell (deprecated)",serverDataType:["long","int","double"]});var Go=require("@vuu-ui/vuu-utils"),zS=B(require("classnames"),1);var Es=require("react/jsx-runtime"),_a="vuuProgressCell",pA=({column:o,columnMap:e,row:t})=>{let{type:n}=o,r=t[o.key],s=!1,i=0;if((0,Go.isTypeDescriptor)(n)&&(0,Go.isColumnTypeRenderer)(n.renderer)){let{associatedField:a}=n.renderer;if(a){let u=t[e[a]];if(typeof(0,Go.isValidNumber)(r)&&(0,Go.isValidNumber)(u))i=Math.min(Math.round(r/u*100),100),i=Math.min(Math.round(r/u*100),100),s=isFinite(i);else{let c=parseFloat(r);if(Number.isFinite(c)){let d=parseFloat(u);Number.isFinite(d)&&(i=Math.min(Math.round(c/d*100),100),s=isFinite(i))}}}else throw Error("ProgressCell associatedField is required to render")}let l=(0,zS.default)(_a,{});return(0,Es.jsxs)("div",{className:l,tabIndex:-1,children:[s?(0,Es.jsxs)("span",{className:`${_a}-track`,children:[(0,Es.jsx)("span",{className:`${_a}-bg`}),(0,Es.jsx)("span",{className:`${_a}-bar`,style:{"--progress-bar-pct":`-${100-i}%`}})]}):null,(0,Es.jsx)("span",{className:`${_a}-text`,children:`${i} %`})]})};(0,Go.registerComponent)("vuu.progress",pA,"cell-renderer",{description:"Progress formatter",label:"Progress formatter",serverDataType:["long","int","double"]});var Zt=require("@vuu-ui/vuu-utils"),WS=B(require("classnames"),1);var Ms=require("@vuu-ui/vuu-utils"),cd=require("react"),fA=[void 0,void 0,void 0,void 0];function $S(o,e,t){var d;let n=(0,cd.useRef)(),[r,s,i,l]=n.current||fA,{type:a}=t,u=(0,Ms.isTypeDescriptor)(a)?(d=a.formatting)==null?void 0:d.decimals:void 0,c=o===r&&(0,Ms.isValidNumber)(e)&&(0,Ms.isValidNumber)(s)&&t===i?(0,Ms.getMovingValueDirection)(e,l,s,u):"";return(0,cd.useEffect)(()=>{n.current=[o,e,t,c]}),c}var pd=require("react/jsx-runtime"),hA=String.fromCharCode(11014),mA=String.fromCharCode(11015),{KEY:gA}=Zt.metadataKeys,dd="vuuBackgroundCell",Ka={ArrowOnly:"arrow",BackgroundOnly:"bg-only",ArrowBackground:"arrow-bg"},bA=o=>(0,Zt.isTypeDescriptor)(o)&&o.renderer&&"flashStyle"in o.renderer?o.renderer.flashStyle:Ka.BackgroundOnly,yA=({column:o,row:e})=>{let{key:t,type:n,valueFormatter:r}=o,s=e[t],i=bA(n),l=$S(e[gA],s,o),a=i===Ka.ArrowOnly||i===Ka.ArrowBackground?l===Zt.UP1||l===Zt.UP2?hA:l===Zt.DOWN1||l===Zt.DOWN2?mA:null:null,u=l?" "+l:"",c=(0,WS.default)(dd,u,{[`${dd}-arrowOnly`]:i===Ka.ArrowOnly,[`${dd}-arrowBackground`]:i===Ka.ArrowBackground});return(0,pd.jsxs)("div",{className:c,tabIndex:-1,children:[(0,pd.jsx)("div",{className:`${dd}-flasher`,children:a}),r(e[o.key])]})};console.log("register BackgroundCellNext");(0,Zt.registerComponent)("background-next",yA,"cell-renderer",{description:"Change background color of cell when value changes",label:"Background Flash",serverDataType:["long","int","double"]});var xA=require("@salt-ds/core"),vA=require("@salt-ds/lab"),CA=B(require("classnames"),1),SA=require("react");var _S=require("react/jsx-runtime");var yE=require("@vuu-ui/vuu-utils"),yu=require("@salt-ds/core");var GS=require("@salt-ds/core"),EA=B(require("classnames"),1),MA=require("react");var Uh=require("@salt-ds/core"),wA=require("@salt-ds/lab"),TA=require("@vuu-ui/vuu-utils"),KS=require("react"),US=require("react/jsx-runtime");var qS=require("react/jsx-runtime");var qo=require("@vuu-ui/vuu-utils"),fd=require("react");var _Z=[{description:"Default formatter for columns with data type double",label:"Default Renderer (data type double)",name:"default-double"},...(0,qo.getRegisteredCellRenderers)("double")];var _g=require("@vuu-ui/vuu-utils"),cp=require("@salt-ds/core"),gE=require("react");var ge=class{lineAt(e){if(e<0||e>this.length)throw new RangeError(`Invalid position ${e} in document of length ${this.length}`);return this.lineInner(e,!1,1,0)}line(e){if(e<1||e>this.lines)throw new RangeError(`Invalid line number ${e} in ${this.lines}-line document`);return this.lineInner(e,!0,1,0)}replace(e,t,n){let r=[];return this.decompose(0,e,r,2),n.length&&n.decompose(0,n.length,r,3),this.decompose(t,this.length,r,1),Dn.from(r,this.length-(t-e)+n.length)}append(e){return this.replace(this.length,this.length,e)}slice(e,t=this.length){let n=[];return this.decompose(e,t,n,0),Dn.from(n,t-e)}eq(e){if(e==this)return!0;if(e.length!=this.length||e.lines!=this.lines)return!1;let t=this.scanIdentical(e,1),n=this.length-this.scanIdentical(e,-1),r=new Ps(this),s=new Ps(e);for(let i=t,l=t;;){if(r.next(i),s.next(i),i=0,r.lineBreak!=s.lineBreak||r.done!=s.done||r.value!=s.value)return!1;if(l+=r.value.length,r.done||l>=n)return!0}}iter(e=1){return new Ps(this,e)}iterRange(e,t=this.length){return new bd(this,e,t)}iterLines(e,t){let n;if(e==null)n=this.iter();else{t==null&&(t=this.lines+1);let r=this.line(e).from;n=this.iterRange(r,Math.max(r,t==this.lines+1?this.length:t<=1?0:this.line(t-1).to))}return new yd(n)}toString(){return this.sliceString(0)}toJSON(){let e=[];return this.flatten(e),e}constructor(){}static of(e){if(e.length==0)throw new RangeError("A document must have at least one line");return e.length==1&&!e[0]?ge.empty:e.length<=32?new $e(e):Dn.from($e.split(e,[]))}},$e=class extends ge{constructor(e,t=RA(e)){super(),this.text=e,this.length=t}get lines(){return this.text.length}get children(){return null}lineInner(e,t,n,r){for(let s=0;;s++){let i=this.text[s],l=r+i.length;if((t?n:l)>=e)return new qh(r,l,n,i);r=l+1,n++}}decompose(e,t,n,r){let s=e<=0&&t>=this.length?this:new $e(jS(this.text,e,t),Math.min(t,this.length)-Math.max(0,e));if(r&1){let i=n.pop(),l=gd(s.text,i.text.slice(),0,s.length);if(l.length<=32)n.push(new $e(l,i.length+s.length));else{let a=l.length>>1;n.push(new $e(l.slice(0,a)),new $e(l.slice(a)))}}else n.push(s)}replace(e,t,n){if(!(n instanceof $e))return super.replace(e,t,n);let r=gd(this.text,gd(n.text,jS(this.text,0,e)),t),s=this.length+n.length-(t-e);return r.length<=32?new $e(r,s):Dn.from($e.split(r,[]),s)}sliceString(e,t=this.length,n=`
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
`,this;e--}else if(r instanceof $e){let a=r.text[i+(t<0?-1:0)];if(this.offsets[n]+=t,a.length>Math.max(0,e))return this.value=e==0?a:t>0?a.slice(e):a.slice(0,a.length-e),this;e-=a.length}else{let a=r.children[i+(t<0?-1:0)];e>a.length?(e-=a.length,this.offsets[n]+=t):(t<0&&this.offsets[n]--,this.nodes.push(a),this.offsets.push(t>0?1:(a instanceof $e?a.text.length:a.children.length)<<1))}}}next(e=0){return e<0&&(this.nextInner(-e,-this.dir),e=this.value.length),this.nextInner(e,this.dir)}},bd=class{constructor(e,t,n){this.value="",this.done=!1,this.cursor=new Ps(e,t>n?-1:1),this.pos=t>n?e.length:0,this.from=Math.min(t,n),this.to=Math.max(t,n)}nextInner(e,t){if(t<0?this.pos<=this.from:this.pos>=this.to)return this.value="",this.done=!0,this;e+=Math.max(0,t<0?this.pos-this.to:this.from-this.pos);let n=t<0?this.pos-this.from:this.to-this.pos;e>n&&(e=n),n-=e;let{value:r}=this.cursor.next(e);return this.pos+=(r.length+e)*t,this.value=r.length<=n?r:t<0?r.slice(r.length-n):r.slice(0,n),this.done=!this.value,this}next(e=0){return e<0?e=Math.max(e,this.from-this.pos):e>0&&(e=Math.min(e,this.to-this.pos)),this.nextInner(e,this.cursor.dir)}get lineBreak(){return this.cursor.lineBreak&&this.value!=""}},yd=class{constructor(e){this.inner=e,this.afterBreak=!0,this.value="",this.done=!1}next(e=0){let{done:t,lineBreak:n,value:r}=this.inner.next(e);return t?(this.done=!0,this.value=""):n?this.afterBreak?this.value="":(this.afterBreak=!0,this.next()):(this.value=r,this.afterBreak=!1),this}get lineBreak(){return!1}};typeof Symbol<"u"&&(ge.prototype[Symbol.iterator]=function(){return this.iter()},Ps.prototype[Symbol.iterator]=bd.prototype[Symbol.iterator]=yd.prototype[Symbol.iterator]=function(){return this});var qh=class{constructor(e,t,n,r){this.from=e,this.to=t,this.number=n,this.text=r}get length(){return this.to-this.from}},Xi="lc,34,7n,7,7b,19,,,,2,,2,,,20,b,1c,l,g,,2t,7,2,6,2,2,,4,z,,u,r,2j,b,1m,9,9,,o,4,,9,,3,,5,17,3,3b,f,,w,1j,,,,4,8,4,,3,7,a,2,t,,1m,,,,2,4,8,,9,,a,2,q,,2,2,1l,,4,2,4,2,2,3,3,,u,2,3,,b,2,1l,,4,5,,2,4,,k,2,m,6,,,1m,,,2,,4,8,,7,3,a,2,u,,1n,,,,c,,9,,14,,3,,1l,3,5,3,,4,7,2,b,2,t,,1m,,2,,2,,3,,5,2,7,2,b,2,s,2,1l,2,,,2,4,8,,9,,a,2,t,,20,,4,,2,3,,,8,,29,,2,7,c,8,2q,,2,9,b,6,22,2,r,,,,,,1j,e,,5,,2,5,b,,10,9,,2u,4,,6,,2,2,2,p,2,4,3,g,4,d,,2,2,6,,f,,jj,3,qa,3,t,3,t,2,u,2,1s,2,,7,8,,2,b,9,,19,3,3b,2,y,,3a,3,4,2,9,,6,3,63,2,2,,1m,,,7,,,,,2,8,6,a,2,,1c,h,1r,4,1c,7,,,5,,14,9,c,2,w,4,2,2,,3,1k,,,2,3,,,3,1m,8,2,2,48,3,,d,,7,4,,6,,3,2,5i,1m,,5,ek,,5f,x,2da,3,3x,,2o,w,fe,6,2x,2,n9w,4,,a,w,2,28,2,7k,,3,,4,,p,2,5,,47,2,q,i,d,,12,8,p,b,1a,3,1c,,2,4,2,2,13,,1v,6,2,2,2,2,c,,8,,1b,,1f,,,3,2,2,5,2,,,16,2,8,,6m,,2,,4,,fn4,,kh,g,g,g,a6,2,gt,,6a,,45,5,1ae,3,,2,5,4,14,3,4,,4l,2,fx,4,ar,2,49,b,4w,,1i,f,1k,3,1d,4,2,2,1x,3,10,5,,8,1q,,c,2,1g,9,a,4,2,,2n,3,2,,,2,6,,4g,,3,8,l,2,1l,2,,,,,m,,e,7,3,5,5f,8,2,3,,,n,,29,,2,6,,,2,,,2,,2,6j,,2,4,6,2,,2,r,2,2d,8,2,,,2,2y,,,,2,6,,,2t,3,2,4,,5,77,9,,2,6t,,a,2,,,4,,40,4,2,2,4,,w,a,14,6,2,4,8,,9,6,2,3,1a,d,,2,ba,7,,6,,,2a,m,2,7,,2,,2,3e,6,3,,,2,,7,,,20,2,3,,,,9n,2,f0b,5,1n,7,t4,,1r,4,29,,f5k,2,43q,,,3,4,5,8,8,2,7,u,4,44,3,1iz,1j,4,1e,8,,e,,m,5,,f,11s,7,,h,2,7,,2,,5,79,7,c5,4,15s,7,31,7,240,5,gx7k,2o,3k,6o".split(",").map(o=>o?parseInt(o,36):1);for(let o=1;o<Xi.length;o++)Xi[o]+=Xi[o-1];function DA(o){for(let e=1;e<Xi.length;e+=2)if(Xi[e]>o)return Xi[e-1]<=o;return!1}function QS(o){return o>=127462&&o<=127487}var JS=8205;function Dt(o,e,t=!0,n=!0){return(t?nw:PA)(o,e,n)}function nw(o,e,t){if(e==o.length)return e;e&&ow(o.charCodeAt(e))&&rw(o.charCodeAt(e-1))&&e--;let n=xo(o,e);for(e+=ks(n);e<o.length;){let r=xo(o,e);if(n==JS||r==JS||t&&DA(r))e+=ks(r),n=r;else if(QS(r)){let s=0,i=e-2;for(;i>=0&&QS(xo(o,i));)s++,i-=2;if(s%2==0)break;e+=2}else break}return e}function PA(o,e,t){for(;e>0;){let n=nw(o,e-2,t);if(n<e)return n;e--}return 0}function ow(o){return o>=56320&&o<57344}function rw(o){return o>=55296&&o<56320}function xo(o,e){let t=o.charCodeAt(e);if(!rw(t)||e+1==o.length)return t;let n=o.charCodeAt(e+1);return ow(n)?(t-55296<<10)+(n-56320)+65536:t}function sw(o){return o<=65535?String.fromCharCode(o):(o-=65536,String.fromCharCode((o>>10)+55296,(o&1023)+56320))}function ks(o){return o<65536?1:2}var jh=/\r\n?|\n/,Rt=function(o){return o[o.Simple=0]="Simple",o[o.TrackDel=1]="TrackDel",o[o.TrackBefore=2]="TrackBefore",o[o.TrackAfter=3]="TrackAfter",o}(Rt||(Rt={})),hn=class{constructor(e){this.sections=e}get length(){let e=0;for(let t=0;t<this.sections.length;t+=2)e+=this.sections[t];return e}get newLength(){let e=0;for(let t=0;t<this.sections.length;t+=2){let n=this.sections[t+1];e+=n<0?this.sections[t]:n}return e}get empty(){return this.sections.length==0||this.sections.length==2&&this.sections[1]<0}iterGaps(e){for(let t=0,n=0,r=0;t<this.sections.length;){let s=this.sections[t++],i=this.sections[t++];i<0?(e(n,r,s),r+=s):r+=i,n+=s}}iterChangedRanges(e,t=!1){Qh(this,e,t)}get invertedDesc(){let e=[];for(let t=0;t<this.sections.length;){let n=this.sections[t++],r=this.sections[t++];r<0?e.push(n,r):e.push(r,n)}return new hn(e)}composeDesc(e){return this.empty?e:e.empty?this:iw(this,e)}mapDesc(e,t=!1){return e.empty?this:Jh(this,e,t)}mapPos(e,t=-1,n=Rt.Simple){let r=0,s=0;for(let i=0;i<this.sections.length;){let l=this.sections[i++],a=this.sections[i++],u=r+l;if(a<0){if(u>e)return s+(e-r);s+=l}else{if(n!=Rt.Simple&&u>=e&&(n==Rt.TrackDel&&r<e&&u>e||n==Rt.TrackBefore&&r<e||n==Rt.TrackAfter&&u>e))return null;if(u>e||u==e&&t<0&&!l)return e==r||t<0?s:s+a;s+=a}r=u}if(e>r)throw new RangeError(`Position ${e} is out of range for changeset of length ${r}`);return s}touchesRange(e,t=e){for(let n=0,r=0;n<this.sections.length&&r<=t;){let s=this.sections[n++],i=this.sections[n++],l=r+s;if(i>=0&&r<=t&&l>=e)return r<e&&l>t?"cover":!0;r=l}return!1}toString(){let e="";for(let t=0;t<this.sections.length;){let n=this.sections[t++],r=this.sections[t++];e+=(e?" ":"")+n+(r>=0?":"+r:"")}return e}toJSON(){return this.sections}static fromJSON(e){if(!Array.isArray(e)||e.length%2||e.some(t=>typeof t!="number"))throw new RangeError("Invalid JSON representation of ChangeDesc");return new hn(e)}static create(e){return new hn(e)}},We=class extends hn{constructor(e,t){super(e),this.inserted=t}apply(e){if(this.length!=e.length)throw new RangeError("Applying change set to a document with the wrong length");return Qh(this,(t,n,r,s,i)=>e=e.replace(r,r+(n-t),i),!1),e}mapDesc(e,t=!1){return Jh(this,e,t,!0)}invert(e){let t=this.sections.slice(),n=[];for(let r=0,s=0;r<t.length;r+=2){let i=t[r],l=t[r+1];if(l>=0){t[r]=l,t[r+1]=i;let a=r>>1;for(;n.length<a;)n.push(ge.empty);n.push(i?e.slice(s,s+i):ge.empty)}s+=i}return new We(t,n)}compose(e){return this.empty?e:e.empty?this:iw(this,e,!0)}map(e,t=!1){return e.empty?this:Jh(this,e,t,!0)}iterChanges(e,t=!1){Qh(this,e,t)}get desc(){return hn.create(this.sections)}filter(e){let t=[],n=[],r=[],s=new Is(this);e:for(let i=0,l=0;;){let a=i==e.length?1e9:e[i++];for(;l<a||l==a&&s.len==0;){if(s.done)break e;let c=Math.min(s.len,a-l);Mt(r,c,-1);let d=s.ins==-1?-1:s.off==0?s.ins:0;Mt(t,c,d),d>0&&Dr(n,t,s.text),s.forward(c),l+=c}let u=e[i++];for(;l<u;){if(s.done)break e;let c=Math.min(s.len,u-l);Mt(t,c,-1),Mt(r,c,s.ins==-1?-1:s.off==0?s.ins:0),s.forward(c),l+=c}}return{changes:new We(t,n),filtered:hn.create(r)}}toJSON(){let e=[];for(let t=0;t<this.sections.length;t+=2){let n=this.sections[t],r=this.sections[t+1];r<0?e.push(n):r==0?e.push([n]):e.push([n].concat(this.inserted[t>>1].toJSON()))}return e}static of(e,t,n){let r=[],s=[],i=0,l=null;function a(c=!1){if(!c&&!r.length)return;i<t&&Mt(r,t-i,-1);let d=new We(r,s);l=l?l.compose(d.map(l)):d,r=[],s=[],i=0}function u(c){if(Array.isArray(c))for(let d of c)u(d);else if(c instanceof We){if(c.length!=t)throw new RangeError(`Mismatched change set length (got ${c.length}, expected ${t})`);a(),l=l?l.compose(c.map(l)):c}else{let{from:d,to:p=d,insert:f}=c;if(d>p||d<0||p>t)throw new RangeError(`Invalid change range ${d} to ${p} (in doc of length ${t})`);let h=f?typeof f=="string"?ge.of(f.split(n||jh)):f:ge.empty,g=h.length;if(d==p&&g==0)return;d<i&&a(),d>i&&Mt(r,d-i,-1),Mt(r,p-d,g),Dr(s,r,h),i=p}}return u(e),a(!l),l}static empty(e){return new We(e?[e,-1]:[],[])}static fromJSON(e){if(!Array.isArray(e))throw new RangeError("Invalid JSON representation of ChangeSet");let t=[],n=[];for(let r=0;r<e.length;r++){let s=e[r];if(typeof s=="number")t.push(s,-1);else{if(!Array.isArray(s)||typeof s[0]!="number"||s.some((i,l)=>l&&typeof i!="string"))throw new RangeError("Invalid JSON representation of ChangeSet");if(s.length==1)t.push(s[0],0);else{for(;n.length<r;)n.push(ge.empty);n[r]=ge.of(s.slice(1)),t.push(s[0],n[r].length)}}}return new We(t,n)}static createSet(e,t){return new We(e,t)}};function Mt(o,e,t,n=!1){if(e==0&&t<=0)return;let r=o.length-2;r>=0&&t<=0&&t==o[r+1]?o[r]+=e:e==0&&o[r]==0?o[r+1]+=t:n?(o[r]+=e,o[r+1]+=t):o.push(e,t)}function Dr(o,e,t){if(t.length==0)return;let n=e.length-2>>1;if(n<o.length)o[o.length-1]=o[o.length-1].append(t);else{for(;o.length<n;)o.push(ge.empty);o.push(t)}}function Qh(o,e,t){let n=o.inserted;for(let r=0,s=0,i=0;i<o.sections.length;){let l=o.sections[i++],a=o.sections[i++];if(a<0)r+=l,s+=l;else{let u=r,c=s,d=ge.empty;for(;u+=l,c+=a,a&&n&&(d=d.append(n[i-2>>1])),!(t||i==o.sections.length||o.sections[i+1]<0);)l=o.sections[i++],a=o.sections[i++];e(r,u,s,c,d),r=u,s=c}}}function Jh(o,e,t,n=!1){let r=[],s=n?[]:null,i=new Is(o),l=new Is(e);for(let a=-1;;)if(i.ins==-1&&l.ins==-1){let u=Math.min(i.len,l.len);Mt(r,u,-1),i.forward(u),l.forward(u)}else if(l.ins>=0&&(i.ins<0||a==i.i||i.off==0&&(l.len<i.len||l.len==i.len&&!t))){let u=l.len;for(Mt(r,l.ins,-1);u;){let c=Math.min(i.len,u);i.ins>=0&&a<i.i&&i.len<=c&&(Mt(r,0,i.ins),s&&Dr(s,r,i.text),a=i.i),i.forward(c),u-=c}l.next()}else if(i.ins>=0){let u=0,c=i.len;for(;c;)if(l.ins==-1){let d=Math.min(c,l.len);u+=d,c-=d,l.forward(d)}else if(l.ins==0&&l.len<c)c-=l.len,l.next();else break;Mt(r,u,a<i.i?i.ins:0),s&&a<i.i&&Dr(s,r,i.text),a=i.i,i.forward(i.len-c)}else{if(i.done&&l.done)return s?We.createSet(r,s):hn.create(r);throw new Error("Mismatched change set lengths")}}function iw(o,e,t=!1){let n=[],r=t?[]:null,s=new Is(o),i=new Is(e);for(let l=!1;;){if(s.done&&i.done)return r?We.createSet(n,r):hn.create(n);if(s.ins==0)Mt(n,s.len,0,l),s.next();else if(i.len==0&&!i.done)Mt(n,0,i.ins,l),r&&Dr(r,n,i.text),i.next();else{if(s.done||i.done)throw new Error("Mismatched change set lengths");{let a=Math.min(s.len2,i.len),u=n.length;if(s.ins==-1){let c=i.ins==-1?-1:i.off?0:i.ins;Mt(n,a,c,l),r&&c&&Dr(r,n,i.text)}else i.ins==-1?(Mt(n,s.off?0:s.len,a,l),r&&Dr(r,n,s.textBit(a))):(Mt(n,s.off?0:s.len,i.off?0:i.ins,l),r&&!i.off&&Dr(r,n,i.text));l=(s.ins>a||i.ins>=0&&i.len>a)&&(l||n.length>u),s.forward2(a),i.forward(a)}}}}var Is=class{constructor(e){this.set=e,this.i=0,this.next()}next(){let{sections:e}=this.set;this.i<e.length?(this.len=e[this.i++],this.ins=e[this.i++]):(this.len=0,this.ins=-2),this.off=0}get done(){return this.ins==-2}get len2(){return this.ins<0?this.len:this.ins}get text(){let{inserted:e}=this.set,t=this.i-2>>1;return t>=e.length?ge.empty:e[t]}textBit(e){let{inserted:t}=this.set,n=this.i-2>>1;return n>=t.length&&!e?ge.empty:t[n].slice(this.off,e==null?void 0:this.off+e)}forward(e){e==this.len?this.next():(this.len-=e,this.off+=e)}forward2(e){this.ins==-1?this.forward(e):e==this.ins?this.next():(this.ins-=e,this.off+=e)}},jo=class{constructor(e,t,n){this.from=e,this.to=t,this.flags=n}get anchor(){return this.flags&16?this.to:this.from}get head(){return this.flags&16?this.from:this.to}get empty(){return this.from==this.to}get assoc(){return this.flags&4?-1:this.flags&8?1:0}get bidiLevel(){let e=this.flags&3;return e==3?null:e}get goalColumn(){let e=this.flags>>5;return e==33554431?void 0:e}map(e,t=-1){let n,r;return this.empty?n=r=e.mapPos(this.from,t):(n=e.mapPos(this.from,1),r=e.mapPos(this.to,-1)),n==this.from&&r==this.to?this:new jo(n,r,this.flags)}extend(e,t=e){if(e<=this.anchor&&t>=this.anchor)return $.range(e,t);let n=Math.abs(e-this.anchor)>Math.abs(t-this.anchor)?e:t;return $.range(this.anchor,n)}eq(e){return this.anchor==e.anchor&&this.head==e.head}toJSON(){return{anchor:this.anchor,head:this.head}}static fromJSON(e){if(!e||typeof e.anchor!="number"||typeof e.head!="number")throw new RangeError("Invalid JSON representation for SelectionRange");return $.range(e.anchor,e.head)}static create(e,t,n){return new jo(e,t,n)}},$=class{constructor(e,t){this.ranges=e,this.mainIndex=t}map(e,t=-1){return e.empty?this:$.create(this.ranges.map(n=>n.map(e,t)),this.mainIndex)}eq(e){if(this.ranges.length!=e.ranges.length||this.mainIndex!=e.mainIndex)return!1;for(let t=0;t<this.ranges.length;t++)if(!this.ranges[t].eq(e.ranges[t]))return!1;return!0}get main(){return this.ranges[this.mainIndex]}asSingle(){return this.ranges.length==1?this:new $([this.main],0)}addRange(e,t=!0){return $.create([e].concat(this.ranges),t?0:this.mainIndex+1)}replaceRange(e,t=this.mainIndex){let n=this.ranges.slice();return n[t]=e,$.create(n,this.mainIndex)}toJSON(){return{ranges:this.ranges.map(e=>e.toJSON()),main:this.mainIndex}}static fromJSON(e){if(!e||!Array.isArray(e.ranges)||typeof e.main!="number"||e.main>=e.ranges.length)throw new RangeError("Invalid JSON representation for EditorSelection");return new $(e.ranges.map(t=>jo.fromJSON(t)),e.main)}static single(e,t=e){return new $([$.range(e,t)],0)}static create(e,t=0){if(e.length==0)throw new RangeError("A selection needs at least one range");for(let n=0,r=0;r<e.length;r++){let s=e[r];if(s.empty?s.from<=n:s.from<n)return $.normalized(e.slice(),t);n=s.to}return new $(e,t)}static cursor(e,t=0,n,r){return jo.create(e,e,(t==0?0:t<0?4:8)|(n==null?3:Math.min(2,n))|(r!=null?r:33554431)<<5)}static range(e,t,n,r){let s=(n!=null?n:33554431)<<5|(r==null?3:Math.min(2,r));return t<e?jo.create(t,e,24|s):jo.create(e,t,(t>e?4:0)|s)}static normalized(e,t=0){let n=e[t];e.sort((r,s)=>r.from-s.from),t=e.indexOf(n);for(let r=1;r<e.length;r++){let s=e[r],i=e[r-1];if(s.empty?s.from<=i.to:s.from<i.to){let l=i.from,a=Math.max(s.to,i.to);r<=t&&t--,e.splice(--r,2,s.anchor>s.head?$.range(a,l):$.range(l,a))}}return new $(e,t)}};function lw(o,e){for(let t of o.ranges)if(t.to>e)throw new RangeError("Selection points outside of document")}var om=0,ie=class{constructor(e,t,n,r,s){this.combine=e,this.compareInput=t,this.compare=n,this.isStatic=r,this.id=om++,this.default=e([]),this.extensions=typeof s=="function"?s(this):s}static define(e={}){return new ie(e.combine||(t=>t),e.compareInput||((t,n)=>t===n),e.compare||(e.combine?(t,n)=>t===n:rm),!!e.static,e.enables)}of(e){return new Yi([],this,0,e)}compute(e,t){if(this.isStatic)throw new Error("Can't compute a static facet");return new Yi(e,this,1,t)}computeN(e,t){if(this.isStatic)throw new Error("Can't compute a static facet");return new Yi(e,this,2,t)}from(e,t){return t||(t=n=>n),this.compute([e],n=>t(n.field(e)))}};function rm(o,e){return o==e||o.length==e.length&&o.every((t,n)=>t===e[n])}var Yi=class{constructor(e,t,n,r){this.dependencies=e,this.facet=t,this.type=n,this.value=r,this.id=om++}dynamicSlot(e){var t;let n=this.value,r=this.facet.compareInput,s=this.id,i=e[s]>>1,l=this.type==2,a=!1,u=!1,c=[];for(let d of this.dependencies)d=="doc"?a=!0:d=="selection"?u=!0:((t=e[d.id])!==null&&t!==void 0?t:1)&1||c.push(e[d.id]);return{create(d){return d.values[i]=n(d),1},update(d,p){if(a&&p.docChanged||u&&(p.docChanged||p.selection)||Xh(d,c)){let f=n(d);if(l?!XS(f,d.values[i],r):!r(f,d.values[i]))return d.values[i]=f,1}return 0},reconfigure:(d,p)=>{let f,h=p.config.address[s];if(h!=null){let g=vd(p,h);if(this.dependencies.every(m=>m instanceof ie?p.facet(m)===d.facet(m):m instanceof zt?p.field(m,!1)==d.field(m,!1):!0)||(l?XS(f=n(d),g,r):r(f=n(d),g)))return d.values[i]=g,0}else f=n(d);return d.values[i]=f,1}}}};function XS(o,e,t){if(o.length!=e.length)return!1;for(let n=0;n<o.length;n++)if(!t(o[n],e[n]))return!1;return!0}function Xh(o,e){let t=!1;for(let n of e)Ga(o,n)&1&&(t=!0);return t}function kA(o,e,t){let n=t.map(a=>o[a.id]),r=t.map(a=>a.type),s=n.filter(a=>!(a&1)),i=o[e.id]>>1;function l(a){let u=[];for(let c=0;c<n.length;c++){let d=vd(a,n[c]);if(r[c]==2)for(let p of d)u.push(p);else u.push(d)}return e.combine(u)}return{create(a){for(let u of n)Ga(a,u);return a.values[i]=l(a),1},update(a,u){if(!Xh(a,s))return 0;let c=l(a);return e.compare(c,a.values[i])?0:(a.values[i]=c,1)},reconfigure(a,u){let c=Xh(a,n),d=u.config.facets[e.id],p=u.facet(e);if(d&&!c&&rm(t,d))return a.values[i]=p,0;let f=l(a);return e.compare(f,p)?(a.values[i]=p,0):(a.values[i]=f,1)}}}var YS=ie.define({static:!0}),zt=class{constructor(e,t,n,r,s){this.id=e,this.createF=t,this.updateF=n,this.compareF=r,this.spec=s,this.provides=void 0}static define(e){let t=new zt(om++,e.create,e.update,e.compare||((n,r)=>n===r),e);return e.provide&&(t.provides=e.provide(t)),t}create(e){let t=e.facet(YS).find(n=>n.field==this);return((t==null?void 0:t.create)||this.createF)(e)}slot(e){let t=e[this.id]>>1;return{create:n=>(n.values[t]=this.create(n),1),update:(n,r)=>{let s=n.values[t],i=this.updateF(s,r);return this.compareF(s,i)?0:(n.values[t]=i,1)},reconfigure:(n,r)=>r.config.address[this.id]!=null?(n.values[t]=r.field(this),0):(n.values[t]=this.create(n),1)}}init(e){return[this,YS.of({field:this,create:e})]}get extension(){return this}},Rs={lowest:4,low:3,default:2,high:1,highest:0};function Ua(o){return e=>new xd(e,o)}var Os={highest:Ua(Rs.highest),high:Ua(Rs.high),default:Ua(Rs.default),low:Ua(Rs.low),lowest:Ua(Rs.lowest)},xd=class{constructor(e,t){this.inner=e,this.prec=t}},el=class{of(e){return new qa(this,e)}reconfigure(e){return el.reconfigure.of({compartment:this,extension:e})}get(e){return e.config.compartments.get(this)}},qa=class{constructor(e,t){this.compartment=e,this.inner=t}},tl=class{constructor(e,t,n,r,s,i){for(this.base=e,this.compartments=t,this.dynamicSlots=n,this.address=r,this.staticValues=s,this.facets=i,this.statusTemplate=[];this.statusTemplate.length<n.length;)this.statusTemplate.push(0)}staticFacet(e){let t=this.address[e.id];return t==null?e.default:this.staticValues[t>>1]}static resolve(e,t,n){let r=[],s=Object.create(null),i=new Map;for(let p of IA(e,t,i))p instanceof zt?r.push(p):(s[p.facet.id]||(s[p.facet.id]=[])).push(p);let l=Object.create(null),a=[],u=[];for(let p of r)l[p.id]=u.length<<1,u.push(f=>p.slot(f));let c=n==null?void 0:n.config.facets;for(let p in s){let f=s[p],h=f[0].facet,g=c&&c[p]||[];if(f.every(m=>m.type==0))if(l[h.id]=a.length<<1|1,rm(g,f))a.push(n.facet(h));else{let m=h.combine(f.map(y=>y.value));a.push(n&&h.compare(m,n.facet(h))?n.facet(h):m)}else{for(let m of f)m.type==0?(l[m.id]=a.length<<1|1,a.push(m.value)):(l[m.id]=u.length<<1,u.push(y=>m.dynamicSlot(y)));l[h.id]=u.length<<1,u.push(m=>kA(m,h,f))}}let d=u.map(p=>p(l));return new tl(e,i,d,l,a,s)}};function IA(o,e,t){let n=[[],[],[],[],[]],r=new Map;function s(i,l){let a=r.get(i);if(a!=null){if(a<=l)return;let u=n[a].indexOf(i);u>-1&&n[a].splice(u,1),i instanceof qa&&t.delete(i.compartment)}if(r.set(i,l),Array.isArray(i))for(let u of i)s(u,l);else if(i instanceof qa){if(t.has(i.compartment))throw new RangeError("Duplicate use of compartment in extensions");let u=e.get(i.compartment)||i.inner;t.set(i.compartment,u),s(u,l)}else if(i instanceof xd)s(i.inner,i.prec);else if(i instanceof zt)n[l].push(i),i.provides&&s(i.provides,l);else if(i instanceof Yi)n[l].push(i),i.facet.extensions&&s(i.facet.extensions,Rs.default);else{let u=i.extension;if(!u)throw new Error(`Unrecognized extension value in extension set (${i}). This sometimes happens because multiple instances of @codemirror/state are loaded, breaking instanceof checks.`);s(u,l)}}return s(o,Rs.default),n.reduce((i,l)=>i.concat(l))}function Ga(o,e){if(e&1)return 2;let t=e>>1,n=o.status[t];if(n==4)throw new Error("Cyclic dependency between fields and/or facets");if(n&2)return n;o.status[t]=4;let r=o.computeSlot(o,o.config.dynamicSlots[t]);return o.status[t]=2|r}function vd(o,e){return e&1?o.config.staticValues[e>>1]:o.values[e>>1]}var aw=ie.define(),uw=ie.define({combine:o=>o.some(e=>e),static:!0}),cw=ie.define({combine:o=>o.length?o[0]:void 0,static:!0}),dw=ie.define(),pw=ie.define(),fw=ie.define(),hw=ie.define({combine:o=>o.length?o[0]:!1}),mn=class{constructor(e,t){this.type=e,this.value=t}static define(){return new ja}},ja=class{of(e){return new mn(this,e)}},Yh=class{constructor(e){this.map=e}of(e){return new Ne(this,e)}},Ne=class{constructor(e,t){this.type=e,this.value=t}map(e){let t=this.type.map(this.value,e);return t===void 0?void 0:t==this.value?this:new Ne(this.type,t)}is(e){return this.type==e}static define(e={}){return new Yh(e.map||(t=>t))}static mapEffects(e,t){if(!e.length)return e;let n=[];for(let r of e){let s=r.map(t);s&&n.push(s)}return n}};Ne.reconfigure=Ne.define();Ne.appendConfig=Ne.define();var _e=class{constructor(e,t,n,r,s,i){this.startState=e,this.changes=t,this.selection=n,this.effects=r,this.annotations=s,this.scrollIntoView=i,this._doc=null,this._state=null,n&&lw(n,t.newLength),s.some(l=>l.type==_e.time)||(this.annotations=s.concat(_e.time.of(Date.now())))}static create(e,t,n,r,s,i){return new _e(e,t,n,r,s,i)}get newDoc(){return this._doc||(this._doc=this.changes.apply(this.startState.doc))}get newSelection(){return this.selection||this.startState.selection.map(this.changes)}get state(){return this._state||this.startState.applyTransaction(this),this._state}annotation(e){for(let t of this.annotations)if(t.type==e)return t.value}get docChanged(){return!this.changes.empty}get reconfigured(){return this.startState.config!=this.state.config}isUserEvent(e){let t=this.annotation(_e.userEvent);return!!(t&&(t==e||t.length>e.length&&t.slice(0,e.length)==e&&t[e.length]=="."))}};_e.time=mn.define();_e.userEvent=mn.define();_e.addToHistory=mn.define();_e.remote=mn.define();function LA(o,e){let t=[];for(let n=0,r=0;;){let s,i;if(n<o.length&&(r==e.length||e[r]>=o[n]))s=o[n++],i=o[n++];else if(r<e.length)s=e[r++],i=e[r++];else return t;!t.length||t[t.length-1]<s?t.push(s,i):t[t.length-1]<i&&(t[t.length-1]=i)}}function mw(o,e,t){var n;let r,s,i;return t?(r=e.changes,s=We.empty(e.changes.length),i=o.changes.compose(e.changes)):(r=e.changes.map(o.changes),s=o.changes.mapDesc(e.changes,!0),i=o.changes.compose(r)),{changes:i,selection:e.selection?e.selection.map(s):(n=o.selection)===null||n===void 0?void 0:n.map(r),effects:Ne.mapEffects(o.effects,r).concat(Ne.mapEffects(e.effects,s)),annotations:o.annotations.length?o.annotations.concat(e.annotations):e.annotations,scrollIntoView:o.scrollIntoView||e.scrollIntoView}}function Zh(o,e,t){let n=e.selection,r=Zi(e.annotations);return e.userEvent&&(r=r.concat(_e.userEvent.of(e.userEvent))),{changes:e.changes instanceof We?e.changes:We.of(e.changes||[],t,o.facet(cw)),selection:n&&(n instanceof $?n:$.single(n.anchor,n.head)),effects:Zi(e.effects),annotations:r,scrollIntoView:!!e.scrollIntoView}}function gw(o,e,t){let n=Zh(o,e.length?e[0]:{},o.doc.length);e.length&&e[0].filter===!1&&(t=!1);for(let s=1;s<e.length;s++){e[s].filter===!1&&(t=!1);let i=!!e[s].sequential;n=mw(n,Zh(o,e[s],i?n.changes.newLength:o.doc.length),i)}let r=_e.create(o,n.changes,n.selection,n.effects,n.annotations,n.scrollIntoView);return OA(t?AA(r):r)}function AA(o){let e=o.startState,t=!0;for(let r of e.facet(dw)){let s=r(o);if(s===!1){t=!1;break}Array.isArray(s)&&(t=t===!0?s:LA(t,s))}if(t!==!0){let r,s;if(t===!1)s=o.changes.invertedDesc,r=We.empty(e.doc.length);else{let i=o.changes.filter(t);r=i.changes,s=i.filtered.mapDesc(i.changes).invertedDesc}o=_e.create(e,r,o.selection&&o.selection.map(s),Ne.mapEffects(o.effects,s),o.annotations,o.scrollIntoView)}let n=e.facet(pw);for(let r=n.length-1;r>=0;r--){let s=n[r](o);s instanceof _e?o=s:Array.isArray(s)&&s.length==1&&s[0]instanceof _e?o=s[0]:o=gw(e,Zi(s),!1)}return o}function OA(o){let e=o.startState,t=e.facet(fw),n=o;for(let r=t.length-1;r>=0;r--){let s=t[r](o);s&&Object.keys(s).length&&(n=mw(n,Zh(e,s,o.changes.newLength),!0))}return n==o?o:_e.create(e,o.changes,o.selection,n.effects,n.annotations,n.scrollIntoView)}var NA=[];function Zi(o){return o==null?NA:Array.isArray(o)?o:[o]}var Bt=function(o){return o[o.Word=0]="Word",o[o.Space=1]="Space",o[o.Other=2]="Other",o}(Bt||(Bt={})),HA=/[\u00df\u0587\u0590-\u05f4\u0600-\u06ff\u3040-\u309f\u30a0-\u30ff\u3400-\u4db5\u4e00-\u9fcc\uac00-\ud7af]/,em;try{em=new RegExp("[\\p{Alphabetic}\\p{Number}_]","u")}catch{}function FA(o){if(em)return em.test(o);for(let e=0;e<o.length;e++){let t=o[e];if(/\w/.test(t)||t>"\x80"&&(t.toUpperCase()!=t.toLowerCase()||HA.test(t)))return!0}return!1}function VA(o){return e=>{if(!/\S/.test(e))return Bt.Space;if(FA(e))return Bt.Word;for(let t=0;t<o.length;t++)if(e.indexOf(o[t])>-1)return Bt.Word;return Bt.Other}}var xe=class{constructor(e,t,n,r,s,i){this.config=e,this.doc=t,this.selection=n,this.values=r,this.status=e.statusTemplate.slice(),this.computeSlot=s,i&&(i._state=this);for(let l=0;l<this.config.dynamicSlots.length;l++)Ga(this,l<<1);this.computeSlot=null}field(e,t=!0){let n=this.config.address[e.id];if(n==null){if(t)throw new RangeError("Field is not present in this state");return}return Ga(this,n),vd(this,n)}update(...e){return gw(this,e,!0)}applyTransaction(e){let t=this.config,{base:n,compartments:r}=t;for(let i of e.effects)i.is(el.reconfigure)?(t&&(r=new Map,t.compartments.forEach((l,a)=>r.set(a,l)),t=null),r.set(i.value.compartment,i.value.extension)):i.is(Ne.reconfigure)?(t=null,n=i.value):i.is(Ne.appendConfig)&&(t=null,n=Zi(n).concat(i.value));let s;t?s=e.startState.values.slice():(t=tl.resolve(n,r,this),s=new xe(t,this.doc,this.selection,t.dynamicSlots.map(()=>null),(l,a)=>a.reconfigure(l,this),null).values),new xe(t,e.newDoc,e.newSelection,s,(i,l)=>l.update(i,e),e)}replaceSelection(e){return typeof e=="string"&&(e=this.toText(e)),this.changeByRange(t=>({changes:{from:t.from,to:t.to,insert:e},range:$.cursor(t.from+e.length)}))}changeByRange(e){let t=this.selection,n=e(t.ranges[0]),r=this.changes(n.changes),s=[n.range],i=Zi(n.effects);for(let l=1;l<t.ranges.length;l++){let a=e(t.ranges[l]),u=this.changes(a.changes),c=u.map(r);for(let p=0;p<l;p++)s[p]=s[p].map(c);let d=r.mapDesc(u,!0);s.push(a.range.map(d)),r=r.compose(c),i=Ne.mapEffects(i,c).concat(Ne.mapEffects(Zi(a.effects),d))}return{changes:r,selection:$.create(s,t.mainIndex),effects:i}}changes(e=[]){return e instanceof We?e:We.of(e,this.doc.length,this.facet(xe.lineSeparator))}toText(e){return ge.of(e.split(this.facet(xe.lineSeparator)||jh))}sliceDoc(e=0,t=this.doc.length){return this.doc.sliceString(e,t,this.lineBreak)}facet(e){let t=this.config.address[e.id];return t==null?e.default:(Ga(this,t),vd(this,t))}toJSON(e){let t={doc:this.sliceDoc(),selection:this.selection.toJSON()};if(e)for(let n in e){let r=e[n];r instanceof zt&&this.config.address[r.id]!=null&&(t[n]=r.spec.toJSON(this.field(e[n]),this))}return t}static fromJSON(e,t={},n){if(!e||typeof e.doc!="string")throw new RangeError("Invalid JSON representation for EditorState");let r=[];if(n){for(let s in n)if(Object.prototype.hasOwnProperty.call(e,s)){let i=n[s],l=e[s];r.push(i.init(a=>i.spec.fromJSON(l,a)))}}return xe.create({doc:e.doc,selection:$.fromJSON(e.selection),extensions:t.extensions?r.concat([t.extensions]):r})}static create(e={}){let t=tl.resolve(e.extensions||[],new Map),n=e.doc instanceof ge?e.doc:ge.of((e.doc||"").split(t.staticFacet(xe.lineSeparator)||jh)),r=e.selection?e.selection instanceof $?e.selection:$.single(e.selection.anchor,e.selection.head):$.single(0);return lw(r,n.length),t.staticFacet(uw)||(r=r.asSingle()),new xe(t,n,r,t.dynamicSlots.map(()=>null),(s,i)=>i.create(s),null)}get tabSize(){return this.facet(xe.tabSize)}get lineBreak(){return this.facet(xe.lineSeparator)||`
|
|
23
|
-
`}get readOnly(){return this.facet(hw)}phrase(e,...t){for(let n of this.facet(xe.phrases))if(Object.prototype.hasOwnProperty.call(n,e)){e=n[e];break}return t.length&&(e=e.replace(/\$(\$|\d*)/g,(n,r)=>{if(r=="$")return"$";let s=+(r||1);return!s||s>t.length?n:t[s-1]})),e}languageDataAt(e,t,n=-1){let r=[];for(let s of this.facet(aw))for(let i of s(this,t,n))Object.prototype.hasOwnProperty.call(i,e)&&r.push(i[e]);return r}charCategorizer(e){return VA(this.languageDataAt("wordChars",e).join(""))}wordAt(e){let{text:t,from:n,length:r}=this.doc.lineAt(e),s=this.charCategorizer(e),i=e-n,l=e-n;for(;i>0;){let a=Dt(t,i,!1);if(s(t.slice(a,i))!=Bt.Word)break;i=a}for(;l<r;){let a=Dt(t,l);if(s(t.slice(l,a))!=Bt.Word)break;l=a}return i==l?null:$.range(i+n,l+n)}};xe.allowMultipleSelections=uw;xe.tabSize=ie.define({combine:o=>o.length?o[0]:4});xe.lineSeparator=cw;xe.readOnly=hw;xe.phrases=ie.define({compare(o,e){let t=Object.keys(o),n=Object.keys(e);return t.length==n.length&&t.every(r=>o[r]==e[r])}});xe.languageData=aw;xe.changeFilter=dw;xe.transactionFilter=pw;xe.transactionExtender=fw;el.reconfigure=Ne.define();function Ns(o,e,t={}){let n={};for(let r of o)for(let s of Object.keys(r)){let i=r[s],l=n[s];if(l===void 0)n[s]=i;else if(!(l===i||i===void 0))if(Object.hasOwnProperty.call(t,s))n[s]=t[s](l,i);else throw new Error("Config merge conflict for field "+s)}for(let r in e)n[r]===void 0&&(n[r]=e[r]);return n}var to=class{eq(e){return this==e}range(e,t=e){return Ls.create(e,t,this)}};to.prototype.startSide=to.prototype.endSide=0;to.prototype.point=!1;to.prototype.mapMode=Rt.TrackDel;var Ls=class{constructor(e,t,n){this.from=e,this.to=t,this.value=n}static create(e,t,n){return new Ls(e,t,n)}};function tm(o,e){return o.from-e.from||o.value.startSide-e.value.startSide}var Qa=class{constructor(e,t,n,r){this.from=e,this.to=t,this.value=n,this.maxPoint=r}get length(){return this.to[this.to.length-1]}findIndex(e,t,n,r=0){let s=n?this.to:this.from;for(let i=r,l=s.length;;){if(i==l)return i;let a=i+l>>1,u=s[a]-e||(n?this.value[a].endSide:this.value[a].startSide)-t;if(a==i)return u>=0?i:l;u>=0?l=a:i=a+1}}between(e,t,n,r){for(let s=this.findIndex(t,-1e9,!0),i=this.findIndex(n,1e9,!1,s);s<i;s++)if(r(this.from[s]+e,this.to[s]+e,this.value[s])===!1)return!1}map(e,t){let n=[],r=[],s=[],i=-1,l=-1;for(let a=0;a<this.value.length;a++){let u=this.value[a],c=this.from[a]+e,d=this.to[a]+e,p,f;if(c==d){let h=t.mapPos(c,u.startSide,u.mapMode);if(h==null||(p=f=h,u.startSide!=u.endSide&&(f=t.mapPos(c,u.endSide),f<p)))continue}else if(p=t.mapPos(c,u.startSide),f=t.mapPos(d,u.endSide),p>f||p==f&&u.startSide>0&&u.endSide<=0)continue;(f-p||u.endSide-u.startSide)<0||(i<0&&(i=p),u.point&&(l=Math.max(l,f-p)),n.push(u),r.push(p-i),s.push(f-i))}return{mapped:n.length?new Qa(r,s,n,l):null,pos:i}}},Pe=class{constructor(e,t,n,r){this.chunkPos=e,this.chunk=t,this.nextLayer=n,this.maxPoint=r}static create(e,t,n,r){return new Pe(e,t,n,r)}get length(){let e=this.chunk.length-1;return e<0?0:Math.max(this.chunkEnd(e),this.nextLayer.length)}get size(){if(this.isEmpty)return 0;let e=this.nextLayer.size;for(let t of this.chunk)e+=t.value.length;return e}chunkEnd(e){return this.chunkPos[e]+this.chunk[e].length}update(e){let{add:t=[],sort:n=!1,filterFrom:r=0,filterTo:s=this.length}=e,i=e.filter;if(t.length==0&&!i)return this;if(n&&(t=t.slice().sort(tm)),this.isEmpty)return t.length?Pe.of(t):this;let l=new Cd(this,null,-1).goto(0),a=0,u=[],c=new vo;for(;l.value||a<t.length;)if(a<t.length&&(l.from-t[a].from||l.startSide-t[a].value.startSide)>=0){let d=t[a++];c.addInner(d.from,d.to,d.value)||u.push(d)}else l.rangeIndex==1&&l.chunkIndex<this.chunk.length&&(a==t.length||this.chunkEnd(l.chunkIndex)<t[a].from)&&(!i||r>this.chunkEnd(l.chunkIndex)||s<this.chunkPos[l.chunkIndex])&&c.addChunk(this.chunkPos[l.chunkIndex],this.chunk[l.chunkIndex])?l.nextChunk():((!i||r>l.to||s<l.from||i(l.from,l.to,l.value))&&(c.addInner(l.from,l.to,l.value)||u.push(Ls.create(l.from,l.to,l.value))),l.next());return c.finishInner(this.nextLayer.isEmpty&&!u.length?Pe.empty:this.nextLayer.update({add:u,filter:i,filterFrom:r,filterTo:s}))}map(e){if(e.empty||this.isEmpty)return this;let t=[],n=[],r=-1;for(let i=0;i<this.chunk.length;i++){let l=this.chunkPos[i],a=this.chunk[i],u=e.touchesRange(l,l+a.length);if(u===!1)r=Math.max(r,a.maxPoint),t.push(a),n.push(e.mapPos(l));else if(u===!0){let{mapped:c,pos:d}=a.map(l,e);c&&(r=Math.max(r,c.maxPoint),t.push(c),n.push(d))}}let s=this.nextLayer.map(e);return t.length==0?s:new Pe(n,t,s||Pe.empty,r)}between(e,t,n){if(!this.isEmpty){for(let r=0;r<this.chunk.length;r++){let s=this.chunkPos[r],i=this.chunk[r];if(t>=s&&e<=s+i.length&&i.between(s,e-s,t-s,n)===!1)return}this.nextLayer.between(e,t,n)}}iter(e=0){return As.from([this]).goto(e)}get isEmpty(){return this.nextLayer==this}static iter(e,t=0){return As.from(e).goto(t)}static compare(e,t,n,r,s=-1){let i=e.filter(d=>d.maxPoint>0||!d.isEmpty&&d.maxPoint>=s),l=t.filter(d=>d.maxPoint>0||!d.isEmpty&&d.maxPoint>=s),a=ZS(i,l,n),u=new Ds(i,a,s),c=new Ds(l,a,s);n.iterGaps((d,p,f)=>ew(u,d,c,p,f,r)),n.empty&&n.length==0&&ew(u,0,c,0,0,r)}static eq(e,t,n=0,r){r==null&&(r=1e9-1);let s=e.filter(c=>!c.isEmpty&&t.indexOf(c)<0),i=t.filter(c=>!c.isEmpty&&e.indexOf(c)<0);if(s.length!=i.length)return!1;if(!s.length)return!0;let l=ZS(s,i),a=new Ds(s,l,0).goto(n),u=new Ds(i,l,0).goto(n);for(;;){if(a.to!=u.to||!nm(a.active,u.active)||a.point&&(!u.point||!a.point.eq(u.point)))return!1;if(a.to>r)return!0;a.next(),u.next()}}static spans(e,t,n,r,s=-1){let i=new Ds(e,null,s).goto(t),l=t,a=i.openStart;for(;;){let u=Math.min(i.to,n);if(i.point){let c=i.activeForPoint(i.to),d=i.pointFrom<t?c.length+1:Math.min(c.length,a);r.point(l,u,i.point,c,d,i.pointRank),a=Math.min(i.openEnd(u),c.length)}else u>l&&(r.span(l,u,i.active,a),a=i.openEnd(u));if(i.to>n)return a+(i.point&&i.to>n?1:0);l=i.to,i.next()}}static of(e,t=!1){let n=new vo;for(let r of e instanceof Ls?[e]:t?BA(e):e)n.add(r.from,r.to,r.value);return n.finish()}};Pe.empty=new Pe([],[],null,-1);function BA(o){if(o.length>1)for(let e=o[0],t=1;t<o.length;t++){let n=o[t];if(tm(e,n)>0)return o.slice().sort(tm);e=n}return o}Pe.empty.nextLayer=Pe.empty;var vo=class{finishChunk(e){this.chunks.push(new Qa(this.from,this.to,this.value,this.maxPoint)),this.chunkPos.push(this.chunkStart),this.chunkStart=-1,this.setMaxPoint=Math.max(this.setMaxPoint,this.maxPoint),this.maxPoint=-1,e&&(this.from=[],this.to=[],this.value=[])}constructor(){this.chunks=[],this.chunkPos=[],this.chunkStart=-1,this.last=null,this.lastFrom=-1e9,this.lastTo=-1e9,this.from=[],this.to=[],this.value=[],this.maxPoint=-1,this.setMaxPoint=-1,this.nextLayer=null}add(e,t,n){this.addInner(e,t,n)||(this.nextLayer||(this.nextLayer=new vo)).add(e,t,n)}addInner(e,t,n){let r=e-this.lastTo||n.startSide-this.last.endSide;if(r<=0&&(e-this.lastFrom||n.startSide-this.last.startSide)<0)throw new Error("Ranges must be added sorted by `from` position and `startSide`");return r<0?!1:(this.from.length==250&&this.finishChunk(!0),this.chunkStart<0&&(this.chunkStart=e),this.from.push(e-this.chunkStart),this.to.push(t-this.chunkStart),this.last=n,this.lastFrom=e,this.lastTo=t,this.value.push(n),n.point&&(this.maxPoint=Math.max(this.maxPoint,t-e)),!0)}addChunk(e,t){if((e-this.lastTo||t.value[0].startSide-this.last.endSide)<0)return!1;this.from.length&&this.finishChunk(!0),this.setMaxPoint=Math.max(this.setMaxPoint,t.maxPoint),this.chunks.push(t),this.chunkPos.push(e);let n=t.value.length-1;return this.last=t.value[n],this.lastFrom=t.from[n]+e,this.lastTo=t.to[n]+e,!0}finish(){return this.finishInner(Pe.empty)}finishInner(e){if(this.from.length&&this.finishChunk(!1),this.chunks.length==0)return e;let t=Pe.create(this.chunkPos,this.chunks,this.nextLayer?this.nextLayer.finishInner(e):e,this.setMaxPoint);return this.from=null,t}};function ZS(o,e,t){let n=new Map;for(let s of o)for(let i=0;i<s.chunk.length;i++)s.chunk[i].maxPoint<=0&&n.set(s.chunk[i],s.chunkPos[i]);let r=new Set;for(let s of e)for(let i=0;i<s.chunk.length;i++){let l=n.get(s.chunk[i]);l!=null&&(t?t.mapPos(l):l)==s.chunkPos[i]&&!(t!=null&&t.touchesRange(l,l+s.chunk[i].length))&&r.add(s.chunk[i])}return r}var Cd=class{constructor(e,t,n,r=0){this.layer=e,this.skip=t,this.minPoint=n,this.rank=r}get startSide(){return this.value?this.value.startSide:0}get endSide(){return this.value?this.value.endSide:0}goto(e,t=-1e9){return this.chunkIndex=this.rangeIndex=0,this.gotoInner(e,t,!1),this}gotoInner(e,t,n){for(;this.chunkIndex<this.layer.chunk.length;){let r=this.layer.chunk[this.chunkIndex];if(!(this.skip&&this.skip.has(r)||this.layer.chunkEnd(this.chunkIndex)<e||r.maxPoint<this.minPoint))break;this.chunkIndex++,n=!1}if(this.chunkIndex<this.layer.chunk.length){let r=this.layer.chunk[this.chunkIndex].findIndex(e-this.layer.chunkPos[this.chunkIndex],t,!0);(!n||this.rangeIndex<r)&&this.setRangeIndex(r)}this.next()}forward(e,t){(this.to-e||this.endSide-t)<0&&this.gotoInner(e,t,!0)}next(){for(;;)if(this.chunkIndex==this.layer.chunk.length){this.from=this.to=1e9,this.value=null;break}else{let e=this.layer.chunkPos[this.chunkIndex],t=this.layer.chunk[this.chunkIndex],n=e+t.from[this.rangeIndex];if(this.from=n,this.to=e+t.to[this.rangeIndex],this.value=t.value[this.rangeIndex],this.setRangeIndex(this.rangeIndex+1),this.minPoint<0||this.value.point&&this.to-this.from>=this.minPoint)break}}setRangeIndex(e){if(e==this.layer.chunk[this.chunkIndex].value.length){if(this.chunkIndex++,this.skip)for(;this.chunkIndex<this.layer.chunk.length&&this.skip.has(this.layer.chunk[this.chunkIndex]);)this.chunkIndex++;this.rangeIndex=0}else this.rangeIndex=e}nextChunk(){this.chunkIndex++,this.rangeIndex=0,this.next()}compare(e){return this.from-e.from||this.startSide-e.startSide||this.rank-e.rank||this.to-e.to||this.endSide-e.endSide}},As=class{constructor(e){this.heap=e}static from(e,t=null,n=-1){let r=[];for(let s=0;s<e.length;s++)for(let i=e[s];!i.isEmpty;i=i.nextLayer)i.maxPoint>=n&&r.push(new Cd(i,t,n,s));return r.length==1?r[0]:new As(r)}get startSide(){return this.value?this.value.startSide:0}goto(e,t=-1e9){for(let n of this.heap)n.goto(e,t);for(let n=this.heap.length>>1;n>=0;n--)Gh(this.heap,n);return this.next(),this}forward(e,t){for(let n of this.heap)n.forward(e,t);for(let n=this.heap.length>>1;n>=0;n--)Gh(this.heap,n);(this.to-e||this.value.endSide-t)<0&&this.next()}next(){if(this.heap.length==0)this.from=this.to=1e9,this.value=null,this.rank=-1;else{let e=this.heap[0];this.from=e.from,this.to=e.to,this.value=e.value,this.rank=e.rank,e.value&&e.next(),Gh(this.heap,0)}}};function Gh(o,e){for(let t=o[e];;){let n=(e<<1)+1;if(n>=o.length)break;let r=o[n];if(n+1<o.length&&r.compare(o[n+1])>=0&&(r=o[n+1],n++),t.compare(r)<0)break;o[n]=t,o[e]=r,e=n}}var Ds=class{constructor(e,t,n){this.minPoint=n,this.active=[],this.activeTo=[],this.activeRank=[],this.minActive=-1,this.point=null,this.pointFrom=0,this.pointRank=0,this.to=-1e9,this.endSide=0,this.openStart=-1,this.cursor=As.from(e,t,n)}goto(e,t=-1e9){return this.cursor.goto(e,t),this.active.length=this.activeTo.length=this.activeRank.length=0,this.minActive=-1,this.to=e,this.endSide=t,this.openStart=-1,this.next(),this}forward(e,t){for(;this.minActive>-1&&(this.activeTo[this.minActive]-e||this.active[this.minActive].endSide-t)<0;)this.removeActive(this.minActive);this.cursor.forward(e,t)}removeActive(e){hd(this.active,e),hd(this.activeTo,e),hd(this.activeRank,e),this.minActive=tw(this.active,this.activeTo)}addActive(e){let t=0,{value:n,to:r,rank:s}=this.cursor;for(;t<this.activeRank.length&&this.activeRank[t]<=s;)t++;md(this.active,t,n),md(this.activeTo,t,r),md(this.activeRank,t,s),e&&md(e,t,this.cursor.from),this.minActive=tw(this.active,this.activeTo)}next(){let e=this.to,t=this.point;this.point=null;let n=this.openStart<0?[]:null;for(;;){let r=this.minActive;if(r>-1&&(this.activeTo[r]-this.cursor.from||this.active[r].endSide-this.cursor.startSide)<0){if(this.activeTo[r]>e){this.to=this.activeTo[r],this.endSide=this.active[r].endSide;break}this.removeActive(r),n&&hd(n,r)}else if(this.cursor.value)if(this.cursor.from>e){this.to=this.cursor.from,this.endSide=this.cursor.startSide;break}else{let s=this.cursor.value;if(!s.point)this.addActive(n),this.cursor.next();else if(t&&this.cursor.to==this.to&&this.cursor.from<this.cursor.to)this.cursor.next();else{this.point=s,this.pointFrom=this.cursor.from,this.pointRank=this.cursor.rank,this.to=this.cursor.to,this.endSide=s.endSide,this.cursor.next(),this.forward(this.to,this.endSide);break}}else{this.to=this.endSide=1e9;break}}if(n){this.openStart=0;for(let r=n.length-1;r>=0&&n[r]<e;r--)this.openStart++}}activeForPoint(e){if(!this.active.length)return this.active;let t=[];for(let n=this.active.length-1;n>=0&&!(this.activeRank[n]<this.pointRank);n--)(this.activeTo[n]>e||this.activeTo[n]==e&&this.active[n].endSide>=this.point.endSide)&&t.push(this.active[n]);return t.reverse()}openEnd(e){let t=0;for(let n=this.activeTo.length-1;n>=0&&this.activeTo[n]>e;n--)t++;return t}};function ew(o,e,t,n,r,s){o.goto(e),t.goto(n);let i=n+r,l=n,a=n-e;for(;;){let u=o.to+a-t.to||o.endSide-t.endSide,c=u<0?o.to+a:t.to,d=Math.min(c,i);if(o.point||t.point?o.point&&t.point&&(o.point==t.point||o.point.eq(t.point))&&nm(o.activeForPoint(o.to),t.activeForPoint(t.to))||s.comparePoint(l,d,o.point,t.point):d>l&&!nm(o.active,t.active)&&s.compareRange(l,d,o.active,t.active),c>i)break;l=c,u<=0&&o.next(),u>=0&&t.next()}}function nm(o,e){if(o.length!=e.length)return!1;for(let t=0;t<o.length;t++)if(o[t]!=e[t]&&!o[t].eq(e[t]))return!1;return!0}function hd(o,e){for(let t=e,n=o.length-1;t<n;t++)o[t]=o[t+1];o.pop()}function md(o,e,t){for(let n=o.length-1;n>=e;n--)o[n+1]=o[n];o[e]=t}function tw(o,e){let t=-1,n=1e9;for(let r=0;r<e.length;r++)(e[r]-n||o[r].endSide-o[t].endSide)<0&&(t=r,n=e[r]);return t}function Hs(o,e,t=o.length){let n=0;for(let r=0;r<t;)o.charCodeAt(r)==9?(n+=e-n%e,r++):(n++,r=Dt(o,r));return n}function bw(o,e,t,n){for(let r=0,s=0;;){if(s>=e)return r;if(r==o.length)break;s+=o.charCodeAt(r)==9?t-s%t:1,r=Dt(o,r)}return n===!0?-1:o.length}var sm="\u037C",yw=typeof Symbol>"u"?"__"+sm:Symbol.for(sm),im=typeof Symbol>"u"?"__styleSet"+Math.floor(Math.random()*1e8):Symbol("styleSet"),xw=typeof globalThis<"u"?globalThis:typeof window<"u"?window:{},Pn=class{constructor(e,t){this.rules=[];let{finish:n}=t||{};function r(i){return/^@/.test(i)?[i]:i.split(/,\s*/)}function s(i,l,a,u){let c=[],d=/^@(\w+)\b/.exec(i[0]),p=d&&d[1]=="keyframes";if(d&&l==null)return a.push(i[0]+";");for(let f in l){let h=l[f];if(/&/.test(f))s(f.split(/,\s*/).map(g=>i.map(m=>g.replace(/&/,m))).reduce((g,m)=>g.concat(m)),h,a);else if(h&&typeof h=="object"){if(!d)throw new RangeError("The value of a property ("+f+") should be a primitive value.");s(r(f),h,c,p)}else h!=null&&c.push(f.replace(/_.*/,"").replace(/[A-Z]/g,g=>"-"+g.toLowerCase())+": "+h+";")}(c.length||p)&&a.push((n&&!d&&!u?i.map(n):i).join(", ")+" {"+c.join(" ")+"}")}for(let i in e)s(r(i),e[i],this.rules)}getRules(){return this.rules.join(`
|
|
24
|
-
|
|
25
|
-
`;this.styleTag.textContent=s}}};var Qo={8:"Backspace",9:"Tab",10:"Enter",12:"NumLock",13:"Enter",16:"Shift",17:"Control",18:"Alt",20:"CapsLock",27:"Escape",32:" ",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"ArrowLeft",38:"ArrowUp",39:"ArrowRight",40:"ArrowDown",44:"PrintScreen",45:"Insert",46:"Delete",59:";",61:"=",91:"Meta",92:"Meta",106:"*",107:"+",108:",",109:"-",110:".",111:"/",144:"NumLock",145:"ScrollLock",160:"Shift",161:"Shift",162:"Control",163:"Control",164:"Alt",165:"Alt",173:"-",186:";",187:"=",188:",",189:"-",190:".",191:"/",192:"`",219:"[",220:"\\",221:"]",222:"'"},nl={48:")",49:"!",50:"@",51:"#",52:"$",53:"%",54:"^",55:"&",56:"*",57:"(",59:":",61:"+",173:"_",186:":",187:"+",188:"<",189:"_",190:">",191:"?",192:"~",219:"{",220:"|",221:"}",222:'"'},zA=typeof navigator<"u"&&/Mac/.test(navigator.platform),$A=typeof navigator<"u"&&/MSIE \d|Trident\/(?:[7-9]|\d{2,})\..*rv:(\d+)/.exec(navigator.userAgent);for(ot=0;ot<10;ot++)Qo[48+ot]=Qo[96+ot]=String(ot);var ot;for(ot=1;ot<=24;ot++)Qo[ot+111]="F"+ot;var ot;for(ot=65;ot<=90;ot++)Qo[ot]=String.fromCharCode(ot+32),nl[ot]=String.fromCharCode(ot);var ot;for(Sd in Qo)nl.hasOwnProperty(Sd)||(nl[Sd]=Qo[Sd]);var Sd;function Cw(o){var e=zA&&o.metaKey&&o.shiftKey&&!o.ctrlKey&&!o.altKey||$A&&o.shiftKey&&o.key&&o.key.length==1||o.key=="Unidentified",t=!e&&o.key||(o.shiftKey?nl:Qo)[o.keyCode]||o.key||"Unidentified";return t=="Esc"&&(t="Escape"),t=="Del"&&(t="Delete"),t=="Left"&&(t="ArrowLeft"),t=="Up"&&(t="ArrowUp"),t=="Right"&&(t="ArrowRight"),t=="Down"&&(t="ArrowDown"),t}function Nd(o){let e;return o.nodeType==11?e=o.getSelection?o:o.ownerDocument:e=o,e.getSelection()}function fm(o,e){return e?o==e||o.contains(e.nodeType!=1?e.parentNode:e):!1}function WA(o){let e=o.activeElement;for(;e&&e.shadowRoot;)e=e.shadowRoot.activeElement;return e}function kd(o,e){if(!e.anchorNode)return!1;try{return fm(o,e.anchorNode)}catch{return!1}}function tu(o){return o.nodeType==3?Vs(o,0,o.nodeValue.length).getClientRects():o.nodeType==1?o.getClientRects():[]}function Hd(o,e,t,n){return t?Sw(o,e,t,n,-1)||Sw(o,e,t,n,1):!1}function Fd(o){for(var e=0;;e++)if(o=o.previousSibling,!o)return e}function Sw(o,e,t,n,r){for(;;){if(o==t&&e==n)return!0;if(e==(r<0?0:Ir(o))){if(o.nodeName=="DIV")return!1;let s=o.parentNode;if(!s||s.nodeType!=1)return!1;e=Fd(o)+(r<0?0:1),o=s}else if(o.nodeType==1){if(o=o.childNodes[e+(r<0?-1:0)],o.nodeType==1&&o.contentEditable=="false")return!1;e=r<0?Ir(o):0}else return!1}}function Ir(o){return o.nodeType==3?o.nodeValue.length:o.childNodes.length}function qm(o,e){let t=e?o.left:o.right;return{left:t,right:t,top:o.top,bottom:o.bottom}}function _A(o){return{left:0,right:o.innerWidth,top:0,bottom:o.innerHeight}}function KA(o,e,t,n,r,s,i,l){let a=o.ownerDocument,u=a.defaultView||window;for(let c=o,d=!1;c&&!d;)if(c.nodeType==1){let p,f=c==a.body;if(f)p=_A(u);else{if(/^(fixed|sticky)$/.test(getComputedStyle(c).position)&&(d=!0),c.scrollHeight<=c.clientHeight&&c.scrollWidth<=c.clientWidth){c=c.assignedSlot||c.parentNode;continue}let m=c.getBoundingClientRect();p={left:m.left,right:m.left+c.clientWidth,top:m.top,bottom:m.top+c.clientHeight}}let h=0,g=0;if(r=="nearest")e.top<p.top?(g=-(p.top-e.top+i),t>0&&e.bottom>p.bottom+g&&(g=e.bottom-p.bottom+g+i)):e.bottom>p.bottom&&(g=e.bottom-p.bottom+i,t<0&&e.top-g<p.top&&(g=-(p.top+g-e.top+i)));else{let m=e.bottom-e.top,y=p.bottom-p.top;g=(r=="center"&&m<=y?e.top+m/2-y/2:r=="start"||r=="center"&&t<0?e.top-i:e.bottom-y+i)-p.top}if(n=="nearest"?e.left<p.left?(h=-(p.left-e.left+s),t>0&&e.right>p.right+h&&(h=e.right-p.right+h+s)):e.right>p.right&&(h=e.right-p.right+s,t<0&&e.left<p.left+h&&(h=-(p.left+h-e.left+s))):h=(n=="center"?e.left+(e.right-e.left)/2-(p.right-p.left)/2:n=="start"==l?e.left-s:e.right-(p.right-p.left)+s)-p.left,h||g)if(f)u.scrollBy(h,g);else{let m=0,y=0;if(g){let w=c.scrollTop;c.scrollTop+=g,y=c.scrollTop-w}if(h){let w=c.scrollLeft;c.scrollLeft+=h,m=c.scrollLeft-w}e={left:e.left-m,top:e.top-y,right:e.right-m,bottom:e.bottom-y},m&&Math.abs(m-h)<1&&(n="nearest"),y&&Math.abs(y-g)<1&&(r="nearest")}if(f)break;c=c.assignedSlot||c.parentNode}else if(c.nodeType==11)c=c.host;else break}function UA(o){let e=o.ownerDocument;for(let t=o.parentNode;t&&t!=e.body;)if(t.nodeType==1){if(t.scrollHeight>t.clientHeight||t.scrollWidth>t.clientWidth)return t;t=t.assignedSlot||t.parentNode}else if(t.nodeType==11)t=t.host;else break;return null}var hm=class{constructor(){this.anchorNode=null,this.anchorOffset=0,this.focusNode=null,this.focusOffset=0}eq(e){return this.anchorNode==e.anchorNode&&this.anchorOffset==e.anchorOffset&&this.focusNode==e.focusNode&&this.focusOffset==e.focusOffset}setRange(e){let{anchorNode:t,focusNode:n}=e;this.set(t,Math.min(e.anchorOffset,t?Ir(t):0),n,Math.min(e.focusOffset,n?Ir(n):0))}set(e,t,n,r){this.anchorNode=e,this.anchorOffset=t,this.focusNode=n,this.focusOffset=r}},ol=null;function t0(o){if(o.setActive)return o.setActive();if(ol)return o.focus(ol);let e=[];for(let t=o;t&&(e.push(t,t.scrollTop,t.scrollLeft),t!=t.ownerDocument);t=t.parentNode);if(o.focus(ol==null?{get preventScroll(){return ol={preventScroll:!0},!0}}:void 0),!ol){ol=!1;for(let t=0;t<e.length;){let n=e[t++],r=e[t++],s=e[t++];n.scrollTop!=r&&(n.scrollTop=r),n.scrollLeft!=s&&(n.scrollLeft=s)}}}var ww;function Vs(o,e,t=e){let n=ww||(ww=document.createRange());return n.setEnd(o,t),n.setStart(o,e),n}function il(o,e,t){let n={key:e,code:e,keyCode:t,which:t,cancelable:!0},r=new KeyboardEvent("keydown",n);r.synthetic=!0,o.dispatchEvent(r);let s=new KeyboardEvent("keyup",n);return s.synthetic=!0,o.dispatchEvent(s),r.defaultPrevented||s.defaultPrevented}function GA(o){for(;o;){if(o&&(o.nodeType==9||o.nodeType==11&&o.host))return o;o=o.assignedSlot||o.parentNode}return null}function n0(o){for(;o.attributes.length;)o.removeAttributeNode(o.attributes[0])}function qA(o,e){let t=e.focusNode,n=e.focusOffset;if(!t||e.anchorNode!=t||e.anchorOffset!=n)return!1;for(n=Math.min(n,Ir(t));;)if(n){if(t.nodeType!=1)return!1;let r=t.childNodes[n-1];r.contentEditable=="false"?n--:(t=r,n=Ir(t))}else{if(t==o)return!0;n=Fd(t),t=t.parentNode}}function o0(o){return o.scrollTop>Math.max(1,o.scrollHeight-o.clientHeight-4)}var xt=class{constructor(e,t,n=!0){this.node=e,this.offset=t,this.precise=n}static before(e,t){return new xt(e.parentNode,Fd(e),t)}static after(e,t){return new xt(e.parentNode,Fd(e)+1,t)}},jm=[],Me=class{constructor(){this.parent=null,this.dom=null,this.flags=2}get overrideDOMText(){return null}get posAtStart(){return this.parent?this.parent.posBefore(this):0}get posAtEnd(){return this.posAtStart+this.length}posBefore(e){let t=this.posAtStart;for(let n of this.children){if(n==e)return t;t+=n.length+n.breakAfter}throw new RangeError("Invalid child in posBefore")}posAfter(e){return this.posBefore(e)+e.length}sync(e,t){if(this.flags&2){let n=this.dom,r=null,s;for(let i of this.children){if(i.flags&7){if(!i.dom&&(s=r?r.nextSibling:n.firstChild)){let l=Me.get(s);(!l||!l.parent&&l.canReuseDOM(i))&&i.reuseDOM(s)}i.sync(e,t),i.flags&=-8}if(s=r?r.nextSibling:n.firstChild,t&&!t.written&&t.node==n&&s!=i.dom&&(t.written=!0),i.dom.parentNode==n)for(;s&&s!=i.dom;)s=Tw(s);else n.insertBefore(i.dom,s);r=i.dom}for(s=r?r.nextSibling:n.firstChild,s&&t&&t.node==n&&(t.written=!0);s;)s=Tw(s)}else if(this.flags&1)for(let n of this.children)n.flags&7&&(n.sync(e,t),n.flags&=-8)}reuseDOM(e){}localPosFromDOM(e,t){let n;if(e==this.dom)n=this.dom.childNodes[t];else{let r=Ir(e)==0?0:t==0?-1:1;for(;;){let s=e.parentNode;if(s==this.dom)break;r==0&&s.firstChild!=s.lastChild&&(e==s.firstChild?r=-1:r=1),e=s}r<0?n=e:n=e.nextSibling}if(n==this.dom.firstChild)return 0;for(;n&&!Me.get(n);)n=n.nextSibling;if(!n)return this.length;for(let r=0,s=0;;r++){let i=this.children[r];if(i.dom==n)return s;s+=i.length+i.breakAfter}}domBoundsAround(e,t,n=0){let r=-1,s=-1,i=-1,l=-1;for(let a=0,u=n,c=n;a<this.children.length;a++){let d=this.children[a],p=u+d.length;if(u<e&&p>t)return d.domBoundsAround(e,t,u);if(p>=e&&r==-1&&(r=a,s=u),u>t&&d.dom.parentNode==this.dom){i=a,l=c;break}c=p,u=p+d.breakAfter}return{from:s,to:l<0?n+this.length:l,startDOM:(r?this.children[r-1].dom.nextSibling:null)||this.dom.firstChild,endDOM:i<this.children.length&&i>=0?this.children[i].dom:null}}markDirty(e=!1){this.flags|=2,this.markParentsDirty(e)}markParentsDirty(e){for(let t=this.parent;t;t=t.parent){if(e&&(t.flags|=2),t.flags&1)return;t.flags|=1,e=!1}}setParent(e){this.parent!=e&&(this.parent=e,this.flags&7&&this.markParentsDirty(!0))}setDOM(e){this.dom&&(this.dom.cmView=null),this.dom=e,e.cmView=this}get rootView(){for(let e=this;;){let t=e.parent;if(!t)return e;e=t}}replaceChildren(e,t,n=jm){this.markDirty();for(let r=e;r<t;r++){let s=this.children[r];s.parent==this&&s.destroy()}this.children.splice(e,t-e,...n);for(let r=0;r<n.length;r++)n[r].setParent(this)}ignoreMutation(e){return!1}ignoreEvent(e){return!1}childCursor(e=this.length){return new Vd(this.children,e,this.children.length)}childPos(e,t=1){return this.childCursor().findPos(e,t)}toString(){let e=this.constructor.name.replace("View","");return e+(this.children.length?"("+this.children.join()+")":this.length?"["+(e=="Text"?this.text:this.length)+"]":"")+(this.breakAfter?"#":"")}static get(e){return e.cmView}get isEditable(){return!0}get isWidget(){return!1}get isHidden(){return!1}merge(e,t,n,r,s,i){return!1}become(e){return!1}canReuseDOM(e){return e.constructor==this.constructor&&!((this.flags|e.flags)&8)}getSide(){return 0}destroy(){this.parent=null}};Me.prototype.breakAfter=0;function Tw(o){let e=o.nextSibling;return o.parentNode.removeChild(o),e}var Vd=class{constructor(e,t,n){this.children=e,this.pos=t,this.i=n,this.off=0}findPos(e,t=1){for(;;){if(e>this.pos||e==this.pos&&(t>0||this.i==0||this.children[this.i-1].breakAfter))return this.off=e-this.pos,this;let n=this.children[--this.i];this.pos-=n.length+n.breakAfter}}};function r0(o,e,t,n,r,s,i,l,a){let{children:u}=o,c=u.length?u[e]:null,d=s.length?s[s.length-1]:null,p=d?d.breakAfter:i;if(!(e==n&&c&&!i&&!p&&s.length<2&&c.merge(t,r,s.length?d:null,t==0,l,a))){if(n<u.length){let f=u[n];f&&r<f.length?(e==n&&(f=f.split(r),r=0),!p&&d&&f.merge(0,r,d,!0,0,a)?s[s.length-1]=f:(r&&f.merge(0,r,null,!1,0,a),s.push(f))):f!=null&&f.breakAfter&&(d?d.breakAfter=1:i=1),n++}for(c&&(c.breakAfter=i,t>0&&(!i&&s.length&&c.merge(t,c.length,s[0],!1,l,0)?c.breakAfter=s.shift().breakAfter:(t<c.length||c.children.length&&c.children[c.children.length-1].length==0)&&c.merge(t,c.length,null,!1,l,0),e++));e<n&&s.length;)if(u[n-1].become(s[s.length-1]))n--,s.pop(),a=s.length?0:l;else if(u[e].become(s[0]))e++,s.shift(),l=s.length?0:a;else break;!s.length&&e&&n<u.length&&!u[e-1].breakAfter&&u[n].merge(0,0,u[e-1],!1,l,a)&&e--,(e<n||s.length)&&o.replaceChildren(e,n,s)}}function s0(o,e,t,n,r,s){let i=o.childCursor(),{i:l,off:a}=i.findPos(t,1),{i:u,off:c}=i.findPos(e,-1),d=e-t;for(let p of n)d+=p.length;o.length+=d,r0(o,u,c,l,a,n,0,r,s)}var rl="\uFFFF",Bd=class{constructor(e,t){this.points=e,this.text="",this.lineSeparator=t.facet(xe.lineSeparator)}append(e){this.text+=e}lineBreak(){this.text+=rl}readRange(e,t){if(!e)return this;let n=e.parentNode;for(let r=e;;){this.findPointBefore(n,r);let s=this.text.length;this.readNode(r);let i=r.nextSibling;if(i==t)break;let l=Me.get(r),a=Me.get(i);(l&&a?l.breakAfter:(l?l.breakAfter:Ew(r))||Ew(i)&&(r.nodeName!="BR"||r.cmIgnore)&&this.text.length>s)&&this.lineBreak(),r=i}return this.findPointBefore(n,t),this}readTextNode(e){let t=e.nodeValue;for(let n of this.points)n.node==e&&(n.pos=this.text.length+Math.min(n.offset,t.length));for(let n=0,r=this.lineSeparator?null:/\r\n?|\n/g;;){let s=-1,i=1,l;if(this.lineSeparator?(s=t.indexOf(this.lineSeparator,n),i=this.lineSeparator.length):(l=r.exec(t))&&(s=l.index,i=l[0].length),this.append(t.slice(n,s<0?t.length:s)),s<0)break;if(this.lineBreak(),i>1)for(let a of this.points)a.node==e&&a.pos>this.text.length&&(a.pos-=i-1);n=s+i}}readNode(e){if(e.cmIgnore)return;let t=Me.get(e),n=t&&t.overrideDOMText;if(n!=null){this.findPointInside(e,n.length);for(let r=n.iter();!r.next().done;)r.lineBreak?this.lineBreak():this.append(r.value)}else e.nodeType==3?this.readTextNode(e):e.nodeName=="BR"?e.nextSibling&&this.lineBreak():e.nodeType==1&&this.readRange(e.firstChild,null)}findPointBefore(e,t){for(let n of this.points)n.node==e&&e.childNodes[n.offset]==t&&(n.pos=this.text.length)}findPointInside(e,t){for(let n of this.points)(e.nodeType==3?n.node==e:e.contains(n.node))&&(n.pos=this.text.length+Math.min(t,n.offset))}};function Ew(o){return o.nodeType==1&&/^(DIV|P|LI|UL|OL|BLOCKQUOTE|DD|DT|H\d|SECTION|PRE)$/.test(o.nodeName)}var zd=class{constructor(e,t){this.node=e,this.offset=t,this.pos=-1}},gn=typeof navigator<"u"?navigator:{userAgent:"",vendor:"",platform:""},mm=typeof document<"u"?document:{documentElement:{style:{}}},gm=/Edge\/(\d+)/.exec(gn.userAgent),i0=/MSIE \d/.test(gn.userAgent),bm=/Trident\/(?:[7-9]|\d{2,})\..*rv:(\d+)/.exec(gn.userAgent),Gd=!!(i0||bm||gm),Mw=!Gd&&/gecko\/(\d+)/i.test(gn.userAgent),am=!Gd&&/Chrome\/(\d+)/.exec(gn.userAgent),Rw="webkitFontSmoothing"in mm.documentElement.style,l0=!Gd&&/Apple Computer/.test(gn.vendor),Dw=l0&&(/Mobile\/\w+/.test(gn.userAgent)||gn.maxTouchPoints>2),ee={mac:Dw||/Mac/.test(gn.platform),windows:/Win/.test(gn.platform),linux:/Linux|X11/.test(gn.platform),ie:Gd,ie_version:i0?mm.documentMode||6:bm?+bm[1]:gm?+gm[1]:0,gecko:Mw,gecko_version:Mw?+(/Firefox\/(\d+)/.exec(gn.userAgent)||[0,0])[1]:0,chrome:!!am,chrome_version:am?+am[1]:0,ios:Dw,android:/Android\b/.test(gn.userAgent),webkit:Rw,safari:l0,webkit_version:Rw?+(/\bAppleWebKit\/(\d+)/.exec(navigator.userAgent)||[0,0])[1]:0,tabSize:mm.documentElement.style.tabSize!=null?"tab-size":"-moz-tab-size"},jA=256,In=class extends Me{constructor(e){super(),this.text=e}get length(){return this.text.length}createDOM(e){this.setDOM(e||document.createTextNode(this.text))}sync(e,t){this.dom||this.createDOM(),this.dom.nodeValue!=this.text&&(t&&t.node==this.dom&&(t.written=!0),this.dom.nodeValue=this.text)}reuseDOM(e){e.nodeType==3&&this.createDOM(e)}merge(e,t,n){return this.flags&8||n&&(!(n instanceof In)||this.length-(t-e)+n.length>jA||n.flags&8)?!1:(this.text=this.text.slice(0,e)+(n?n.text:"")+this.text.slice(t),this.markDirty(),!0)}split(e){let t=new In(this.text.slice(e));return this.text=this.text.slice(0,e),this.markDirty(),t.flags|=this.flags&8,t}localPosFromDOM(e,t){return e==this.dom?t:t?this.text.length:0}domAtPos(e){return new xt(this.dom,e)}domBoundsAround(e,t,n){return{from:n,to:n+this.length,startDOM:this.dom,endDOM:this.dom.nextSibling}}coordsAt(e,t){return QA(this.dom,e,t)}},no=class extends Me{constructor(e,t=[],n=0){super(),this.mark=e,this.children=t,this.length=n;for(let r of t)r.setParent(this)}setAttrs(e){if(n0(e),this.mark.class&&(e.className=this.mark.class),this.mark.attrs)for(let t in this.mark.attrs)e.setAttribute(t,this.mark.attrs[t]);return e}canReuseDOM(e){return super.canReuseDOM(e)&&!((this.flags|e.flags)&8)}reuseDOM(e){e.nodeName==this.mark.tagName.toUpperCase()&&(this.setDOM(e),this.flags|=6)}sync(e,t){this.dom?this.flags&4&&this.setAttrs(this.dom):this.setDOM(this.setAttrs(document.createElement(this.mark.tagName))),super.sync(e,t)}merge(e,t,n,r,s,i){return n&&(!(n instanceof no&&n.mark.eq(this.mark))||e&&s<=0||t<this.length&&i<=0)?!1:(s0(this,e,t,n?n.children:[],s-1,i-1),this.markDirty(),!0)}split(e){let t=[],n=0,r=-1,s=0;for(let l of this.children){let a=n+l.length;a>e&&t.push(n<e?l.split(e-n):l),r<0&&n>=e&&(r=s),n=a,s++}let i=this.length-e;return this.length=e,r>-1&&(this.children.length=r,this.markDirty()),new no(this.mark,t,i)}domAtPos(e){return a0(this,e)}coordsAt(e,t){return c0(this,e,t)}};function QA(o,e,t){let n=o.nodeValue.length;e>n&&(e=n);let r=e,s=e,i=0;e==0&&t<0||e==n&&t>=0?ee.chrome||ee.gecko||(e?(r--,i=1):s<n&&(s++,i=-1)):t<0?r--:s<n&&s++;let l=Vs(o,r,s).getClientRects();if(!l.length)return null;let a=l[(i?i<0:t>=0)?0:l.length-1];return ee.safari&&!i&&a.width==0&&(a=Array.prototype.find.call(l,u=>u.width)||a),i?qm(a,i<0):a||null}var Jo=class extends Me{constructor(e,t,n){super(),this.widget=e,this.length=t,this.side=n,this.prevWidget=null}static create(e,t,n){return new Jo(e,t,n)}split(e){let t=Jo.create(this.widget,this.length-e,this.side);return this.length-=e,t}sync(e){(!this.dom||!this.widget.updateDOM(this.dom,e))&&(this.dom&&this.prevWidget&&this.prevWidget.destroy(this.dom),this.prevWidget=null,this.setDOM(this.widget.toDOM(e)),this.dom.contentEditable="false")}getSide(){return this.side}merge(e,t,n,r,s,i){return n&&(!(n instanceof Jo)||!this.widget.compare(n.widget)||e>0&&s<=0||t<this.length&&i<=0)?!1:(this.length=e+(n?n.length:0)+(this.length-t),!0)}become(e){return e instanceof Jo&&e.side==this.side&&this.widget.constructor==e.widget.constructor?(this.widget.compare(e.widget)||this.markDirty(!0),this.dom&&!this.prevWidget&&(this.prevWidget=this.widget),this.widget=e.widget,this.length=e.length,!0):!1}ignoreMutation(){return!0}ignoreEvent(e){return this.widget.ignoreEvent(e)}get overrideDOMText(){if(this.length==0)return ge.empty;let e=this;for(;e.parent;)e=e.parent;let{view:t}=e,n=t&&t.state.doc,r=this.posAtStart;return n?n.slice(r,r+this.length):ge.empty}domAtPos(e){return(this.length?e==0:this.side>0)?xt.before(this.dom):xt.after(this.dom,e==this.length)}domBoundsAround(){return null}coordsAt(e,t){let n=this.widget.coordsAt(this.dom,e,t);if(n)return n;let r=this.dom.getClientRects(),s=null;if(!r.length)return null;let i=this.side?this.side<0:e>0;for(let l=i?r.length-1:0;s=r[l],!(e>0?l==0:l==r.length-1||s.top<s.bottom);l+=i?-1:1);return qm(s,!i)}get isEditable(){return!1}get isWidget(){return!0}get isHidden(){return this.widget.isHidden}destroy(){super.destroy(),this.dom&&this.widget.destroy(this.dom)}},Lr=class extends Me{constructor(e){super(),this.side=e}get length(){return 0}merge(){return!1}become(e){return e instanceof Lr&&e.side==this.side}split(){return new Lr(this.side)}sync(){if(!this.dom){let e=document.createElement("img");e.className="cm-widgetBuffer",e.setAttribute("aria-hidden","true"),this.setDOM(e)}}getSide(){return this.side}domAtPos(e){return this.side>0?xt.before(this.dom):xt.after(this.dom)}localPosFromDOM(){return 0}domBoundsAround(){return null}coordsAt(e){return this.dom.getBoundingClientRect()}get overrideDOMText(){return ge.empty}get isHidden(){return!0}};In.prototype.children=Jo.prototype.children=Lr.prototype.children=jm;function a0(o,e){let t=o.dom,{children:n}=o,r=0;for(let s=0;r<n.length;r++){let i=n[r],l=s+i.length;if(!(l==s&&i.getSide()<=0)){if(e>s&&e<l&&i.dom.parentNode==t)return i.domAtPos(e-s);if(e<=s)break;s=l}}for(let s=r;s>0;s--){let i=n[s-1];if(i.dom.parentNode==t)return i.domAtPos(i.length)}for(let s=r;s<n.length;s++){let i=n[s];if(i.dom.parentNode==t)return i.domAtPos(0)}return new xt(t,0)}function u0(o,e,t){let n,{children:r}=o;t>0&&e instanceof no&&r.length&&(n=r[r.length-1])instanceof no&&n.mark.eq(e.mark)?u0(n,e.children[0],t-1):(r.push(e),e.setParent(o)),o.length+=e.length}function c0(o,e,t){let n=null,r=-1,s=null,i=-1;function l(u,c){for(let d=0,p=0;d<u.children.length&&p<=c;d++){let f=u.children[d],h=p+f.length;h>=c&&(f.children.length?l(f,c-p):(!s||s.isHidden&&t>0)&&(h>c||p==h&&f.getSide()>0)?(s=f,i=c-p):(p<c||p==h&&f.getSide()<0&&!f.isHidden)&&(n=f,r=c-p)),p=h}}l(o,e);let a=(t<0?n:s)||n||s;return a?a.coordsAt(Math.max(0,a==n?r:i),t):JA(o)}function JA(o){let e=o.dom.lastChild;if(!e)return o.dom.getBoundingClientRect();let t=tu(e);return t[t.length-1]||null}function ym(o,e){for(let t in o)t=="class"&&e.class?e.class+=" "+o.class:t=="style"&&e.style?e.style+=";"+o.style:e[t]=o[t];return e}var Pw=Object.create(null);function Qm(o,e,t){if(o==e)return!0;o||(o=Pw),e||(e=Pw);let n=Object.keys(o),r=Object.keys(e);if(n.length-(t&&n.indexOf(t)>-1?1:0)!=r.length-(t&&r.indexOf(t)>-1?1:0))return!1;for(let s of n)if(s!=t&&(r.indexOf(s)==-1||o[s]!==e[s]))return!1;return!0}function xm(o,e,t){let n=null;if(e)for(let r in e)t&&r in t||o.removeAttribute(n=r);if(t)for(let r in t)e&&e[r]==t[r]||o.setAttribute(n=r,t[r]);return!!n}function XA(o){let e=Object.create(null);for(let t=0;t<o.attributes.length;t++){let n=o.attributes[t];e[n.name]=n.value}return e}var Yo=class{eq(e){return!1}updateDOM(e,t){return!1}compare(e){return this==e||this.constructor==e.constructor&&this.eq(e)}get estimatedHeight(){return-1}get lineBreaks(){return 0}ignoreEvent(e){return!0}coordsAt(e,t,n){return null}get isHidden(){return!1}destroy(e){}},Ze=function(o){return o[o.Text=0]="Text",o[o.WidgetBefore=1]="WidgetBefore",o[o.WidgetAfter=2]="WidgetAfter",o[o.WidgetRange=3]="WidgetRange",o}(Ze||(Ze={})),ct=class extends to{constructor(e,t,n,r){super(),this.startSide=e,this.endSide=t,this.widget=n,this.spec=r}get heightRelevant(){return!1}static mark(e){return new Bs(e)}static widget(e){let t=Math.max(-1e4,Math.min(1e4,e.side||0)),n=!!e.block;return t+=n&&!e.inlineOrder?t>0?3e8:-4e8:t>0?1e8:-1e8,new wo(e,t,t,n,e.widget||null,!1)}static replace(e){let t=!!e.block,n,r;if(e.isBlockGap)n=-5e8,r=4e8;else{let{start:s,end:i}=d0(e,t);n=(s?t?-3e8:-1:5e8)-1,r=(i?t?2e8:1:-6e8)+1}return new wo(e,n,r,t,e.widget||null,!0)}static line(e){return new zs(e)}static set(e,t=!1){return Pe.of(e,t)}hasHeight(){return this.widget?this.widget.estimatedHeight>-1:!1}};ct.none=Pe.empty;var Bs=class extends ct{constructor(e){let{start:t,end:n}=d0(e);super(t?-1:5e8,n?1:-6e8,null,e),this.tagName=e.tagName||"span",this.class=e.class||"",this.attrs=e.attributes||null}eq(e){var t,n;return this==e||e instanceof Bs&&this.tagName==e.tagName&&(this.class||((t=this.attrs)===null||t===void 0?void 0:t.class))==(e.class||((n=e.attrs)===null||n===void 0?void 0:n.class))&&Qm(this.attrs,e.attrs,"class")}range(e,t=e){if(e>=t)throw new RangeError("Mark decorations may not be empty");return super.range(e,t)}};Bs.prototype.point=!1;var zs=class extends ct{constructor(e){super(-2e8,-2e8,null,e)}eq(e){return e instanceof zs&&this.spec.class==e.spec.class&&Qm(this.spec.attributes,e.spec.attributes)}range(e,t=e){if(t!=e)throw new RangeError("Line decoration ranges must be zero-length");return super.range(e,t)}};zs.prototype.mapMode=Rt.TrackBefore;zs.prototype.point=!0;var wo=class extends ct{constructor(e,t,n,r,s,i){super(t,n,s,e),this.block=r,this.isReplace=i,this.mapMode=r?t<=0?Rt.TrackBefore:Rt.TrackAfter:Rt.TrackDel}get type(){return this.startSide<this.endSide?Ze.WidgetRange:this.startSide<=0?Ze.WidgetBefore:Ze.WidgetAfter}get heightRelevant(){return this.block||!!this.widget&&(this.widget.estimatedHeight>=5||this.widget.lineBreaks>0)}eq(e){return e instanceof wo&&YA(this.widget,e.widget)&&this.block==e.block&&this.startSide==e.startSide&&this.endSide==e.endSide}range(e,t=e){if(this.isReplace&&(e>t||e==t&&this.startSide>0&&this.endSide<=0))throw new RangeError("Invalid range for replacement decoration");if(!this.isReplace&&t!=e)throw new RangeError("Widget decorations can only have zero-length ranges");return super.range(e,t)}};wo.prototype.point=!0;function d0(o,e=!1){let{inclusiveStart:t,inclusiveEnd:n}=o;return t==null&&(t=o.inclusive),n==null&&(n=o.inclusive),{start:t!=null?t:e,end:n!=null?n:e}}function YA(o,e){return o==e||!!(o&&e&&o.compare(e))}function vm(o,e,t,n=0){let r=t.length-1;r>=0&&t[r]+n>=o?t[r]=Math.max(t[r],e):t.push(o,e)}var yt=class extends Me{constructor(){super(...arguments),this.children=[],this.length=0,this.prevAttrs=void 0,this.attrs=null,this.breakAfter=0}merge(e,t,n,r,s,i){if(n){if(!(n instanceof yt))return!1;this.dom||n.transferDOM(this)}return r&&this.setDeco(n?n.attrs:null),s0(this,e,t,n?n.children:[],s,i),!0}split(e){let t=new yt;if(t.breakAfter=this.breakAfter,this.length==0)return t;let{i:n,off:r}=this.childPos(e);r&&(t.append(this.children[n].split(r),0),this.children[n].merge(r,this.children[n].length,null,!1,0,0),n++);for(let s=n;s<this.children.length;s++)t.append(this.children[s],0);for(;n>0&&this.children[n-1].length==0;)this.children[--n].destroy();return this.children.length=n,this.markDirty(),this.length=e,t}transferDOM(e){this.dom&&(this.markDirty(),e.setDOM(this.dom),e.prevAttrs=this.prevAttrs===void 0?this.attrs:this.prevAttrs,this.prevAttrs=void 0,this.dom=null)}setDeco(e){Qm(this.attrs,e)||(this.dom&&(this.prevAttrs=this.attrs,this.markDirty()),this.attrs=e)}append(e,t){u0(this,e,t)}addLineDeco(e){let t=e.spec.attributes,n=e.spec.class;t&&(this.attrs=ym(t,this.attrs||{})),n&&(this.attrs=ym({class:n},this.attrs||{}))}domAtPos(e){return a0(this,e)}reuseDOM(e){e.nodeName=="DIV"&&(this.setDOM(e),this.flags|=6)}sync(e,t){var n;this.dom?this.flags&4&&(n0(this.dom),this.dom.className="cm-line",this.prevAttrs=this.attrs?null:void 0):(this.setDOM(document.createElement("div")),this.dom.className="cm-line",this.prevAttrs=this.attrs?null:void 0),this.prevAttrs!==void 0&&(xm(this.dom,this.prevAttrs,this.attrs),this.dom.classList.add("cm-line"),this.prevAttrs=void 0),super.sync(e,t);let r=this.dom.lastChild;for(;r&&Me.get(r)instanceof no;)r=r.lastChild;if(!r||!this.length||r.nodeName!="BR"&&((n=Me.get(r))===null||n===void 0?void 0:n.isEditable)==!1&&(!ee.ios||!this.children.some(s=>s instanceof In))){let s=document.createElement("BR");s.cmIgnore=!0,this.dom.appendChild(s)}}measureTextSize(){if(this.children.length==0||this.length>20)return null;let e=0,t;for(let n of this.children){if(!(n instanceof In)||/[^ -~]/.test(n.text))return null;let r=tu(n.dom);if(r.length!=1)return null;e+=r[0].width,t=r[0].height}return e?{lineHeight:this.dom.getBoundingClientRect().height,charWidth:e/this.length,textHeight:t}:null}coordsAt(e,t){let n=c0(this,e,t);if(!this.children.length&&n&&this.parent){let{heightOracle:r}=this.parent.view.viewState,s=n.bottom-n.top;if(Math.abs(s-r.lineHeight)<2&&r.textHeight<s){let i=(s-r.textHeight)/2;return{top:n.top+i,bottom:n.bottom-i,left:n.left,right:n.left}}}return n}become(e){return!1}get type(){return Ze.Text}static find(e,t){for(let n=0,r=0;n<e.children.length;n++){let s=e.children[n],i=r+s.length;if(i>=t){if(s instanceof yt)return s;if(i>t)break}r=i+s.breakAfter}return null}},Xo=class extends Me{constructor(e,t,n){super(),this.widget=e,this.length=t,this.type=n,this.breakAfter=0,this.prevWidget=null}merge(e,t,n,r,s,i){return n&&(!(n instanceof Xo)||!this.widget.compare(n.widget)||e>0&&s<=0||t<this.length&&i<=0)?!1:(this.length=e+(n?n.length:0)+(this.length-t),!0)}domAtPos(e){return e==0?xt.before(this.dom):xt.after(this.dom,e==this.length)}split(e){let t=this.length-e;this.length=e;let n=new Xo(this.widget,t,this.type);return n.breakAfter=this.breakAfter,n}get children(){return jm}sync(e){(!this.dom||!this.widget.updateDOM(this.dom,e))&&(this.dom&&this.prevWidget&&this.prevWidget.destroy(this.dom),this.prevWidget=null,this.setDOM(this.widget.toDOM(e)),this.dom.contentEditable="false")}get overrideDOMText(){return this.parent?this.parent.view.state.doc.slice(this.posAtStart,this.posAtEnd):ge.empty}domBoundsAround(){return null}become(e){return e instanceof Xo&&e.widget.constructor==this.widget.constructor?(e.widget.compare(this.widget)||this.markDirty(!0),this.dom&&!this.prevWidget&&(this.prevWidget=this.widget),this.widget=e.widget,this.length=e.length,this.type=e.type,this.breakAfter=e.breakAfter,!0):!1}ignoreMutation(){return!0}ignoreEvent(e){return this.widget.ignoreEvent(e)}get isEditable(){return!1}get isWidget(){return!0}coordsAt(e,t){return this.widget.coordsAt(this.dom,e,t)}destroy(){super.destroy(),this.dom&&this.widget.destroy(this.dom)}},Fs=class{constructor(e,t,n,r){this.doc=e,this.pos=t,this.end=n,this.disallowBlockEffectsFor=r,this.content=[],this.curLine=null,this.breakAtStart=0,this.pendingBuffer=0,this.bufferMarks=[],this.atCursorPos=!0,this.openStart=-1,this.openEnd=-1,this.text="",this.textOff=0,this.cursor=e.iter(),this.skip=t}posCovered(){if(this.content.length==0)return!this.breakAtStart&&this.doc.lineAt(this.pos).from!=this.pos;let e=this.content[this.content.length-1];return!e.breakAfter&&!(e instanceof Xo&&e.type==Ze.WidgetBefore)}getLine(){return this.curLine||(this.content.push(this.curLine=new yt),this.atCursorPos=!0),this.curLine}flushBuffer(e=this.bufferMarks){this.pendingBuffer&&(this.curLine.append(wd(new Lr(-1),e),e.length),this.pendingBuffer=0)}addBlockWidget(e){this.flushBuffer(),this.curLine=null,this.content.push(e)}finish(e){this.pendingBuffer&&e<=this.bufferMarks.length?this.flushBuffer():this.pendingBuffer=0,this.posCovered()||this.getLine()}buildText(e,t,n){for(;e>0;){if(this.textOff==this.text.length){let{value:s,lineBreak:i,done:l}=this.cursor.next(this.skip);if(this.skip=0,l)throw new Error("Ran out of text content when drawing inline views");if(i){this.posCovered()||this.getLine(),this.content.length?this.content[this.content.length-1].breakAfter=1:this.breakAtStart=1,this.flushBuffer(),this.curLine=null,this.atCursorPos=!0,e--;continue}else this.text=s,this.textOff=0}let r=Math.min(this.text.length-this.textOff,e,512);this.flushBuffer(t.slice(t.length-n)),this.getLine().append(wd(new In(this.text.slice(this.textOff,this.textOff+r)),t),n),this.atCursorPos=!0,this.textOff+=r,e-=r,n=0}}span(e,t,n,r){this.buildText(t-e,n,r),this.pos=t,this.openStart<0&&(this.openStart=r)}point(e,t,n,r,s,i){if(this.disallowBlockEffectsFor[i]&&n instanceof wo){if(n.block)throw new RangeError("Block decorations may not be specified via plugins");if(t>this.doc.lineAt(this.pos).to)throw new RangeError("Decorations that replace line breaks may not be specified via plugins")}let l=t-e;if(n instanceof wo)if(n.block){let{type:a}=n;a==Ze.WidgetAfter&&!this.posCovered()&&this.getLine(),this.addBlockWidget(new Xo(n.widget||new $d("div"),l,a))}else{let a=Jo.create(n.widget||new $d("span"),l,l?0:n.startSide),u=this.atCursorPos&&!a.isEditable&&s<=r.length&&(e<t||n.startSide>0),c=!a.isEditable&&(e<t||s>r.length||n.startSide<=0),d=this.getLine();this.pendingBuffer==2&&!u&&!a.isEditable&&(this.pendingBuffer=0),this.flushBuffer(r),u&&(d.append(wd(new Lr(1),r),s),s=r.length+Math.max(0,s-r.length)),d.append(wd(a,r),s),this.atCursorPos=c,this.pendingBuffer=c?e<t||s>r.length?1:2:0,this.pendingBuffer&&(this.bufferMarks=r.slice())}else this.doc.lineAt(this.pos).from==this.pos&&this.getLine().addLineDeco(n);l&&(this.textOff+l<=this.text.length?this.textOff+=l:(this.skip+=l-(this.text.length-this.textOff),this.text="",this.textOff=0),this.pos=t),this.openStart<0&&(this.openStart=s)}static build(e,t,n,r,s){let i=new Fs(e,t,n,s);return i.openEnd=Pe.spans(r,t,n,i),i.openStart<0&&(i.openStart=i.openEnd),i.finish(i.openEnd),i}};function wd(o,e){for(let t of e)o=new no(t,[o],o.length);return o}var $d=class extends Yo{constructor(e){super(),this.tag=e}eq(e){return e.tag==this.tag}toDOM(){return document.createElement(this.tag)}updateDOM(e){return e.nodeName.toLowerCase()==this.tag}get isHidden(){return!0}},p0=ie.define(),f0=ie.define(),h0=ie.define(),m0=ie.define(),Cm=ie.define(),g0=ie.define(),b0=ie.define(),y0=ie.define({combine:o=>o.some(e=>e)}),x0=ie.define({combine:o=>o.some(e=>e)}),ll=class{constructor(e,t="nearest",n="nearest",r=5,s=5){this.range=e,this.y=t,this.x=n,this.yMargin=r,this.xMargin=s}map(e){return e.empty?this:new ll(this.range.map(e),this.y,this.x,this.yMargin,this.xMargin)}},kw=Ne.define({map:(o,e)=>o.map(e)});function So(o,e,t){let n=o.facet(m0);n.length?n[0](e):window.onerror?window.onerror(String(e),t,void 0,void 0,e):t?console.error(t+":",e):console.error(e)}var qd=ie.define({combine:o=>o.length?o[0]:!0}),ZA=0,Ja=ie.define(),Ln=class{constructor(e,t,n,r){this.id=e,this.create=t,this.domEventHandlers=n,this.extension=r(this)}static define(e,t){let{eventHandlers:n,provide:r,decorations:s}=t||{};return new Ln(ZA++,e,n,i=>{let l=[Ja.of(i)];return s&&l.push(nu.of(a=>{let u=a.plugin(i);return u?s(u):ct.none})),r&&l.push(r(i)),l})}static fromClass(e,t){return Ln.define(n=>new e(n),t)}},Za=class{constructor(e){this.spec=e,this.mustUpdate=null,this.value=null}update(e){if(this.value){if(this.mustUpdate){let t=this.mustUpdate;if(this.mustUpdate=null,this.value.update)try{this.value.update(t)}catch(n){if(So(t.state,n,"CodeMirror plugin crashed"),this.value.destroy)try{this.value.destroy()}catch{}this.deactivate()}}}else if(this.spec)try{this.value=this.spec.create(e)}catch(t){So(e.state,t,"CodeMirror plugin crashed"),this.deactivate()}return this}destroy(e){var t;if(!((t=this.value)===null||t===void 0)&&t.destroy)try{this.value.destroy()}catch(n){So(e.state,n,"CodeMirror plugin crashed")}}deactivate(){this.spec=this.value=null}},v0=ie.define(),Jm=ie.define(),nu=ie.define(),Xm=ie.define(),C0=ie.define();function S0(o){let e=0,t=0,n=0,r=0;for(let s of o.state.facet(C0)){let i=s(o);i&&(i.left!=null&&(e=Math.max(e,i.left)),i.right!=null&&(t=Math.max(t,i.right)),i.top!=null&&(n=Math.max(n,i.top)),i.bottom!=null&&(r=Math.max(r,i.bottom)))}return{left:e,right:t,top:n,bottom:r}}var Xa=ie.define(),en=class{constructor(e,t,n,r){this.fromA=e,this.toA=t,this.fromB=n,this.toB=r}join(e){return new en(Math.min(this.fromA,e.fromA),Math.max(this.toA,e.toA),Math.min(this.fromB,e.fromB),Math.max(this.toB,e.toB))}addToSet(e){let t=e.length,n=this;for(;t>0;t--){let r=e[t-1];if(!(r.fromA>n.toA)){if(r.toA<n.fromA)break;n=n.join(r),e.splice(t-1,1)}}return e.splice(t,0,n),e}static extendWithRanges(e,t){if(t.length==0)return e;let n=[];for(let r=0,s=0,i=0,l=0;;r++){let a=r==e.length?null:e[r],u=i-l,c=a?a.fromB:1e9;for(;s<t.length&&t[s]<c;){let d=t[s],p=t[s+1],f=Math.max(l,d),h=Math.min(c,p);if(f<=h&&new en(f+u,h+u,f,h).addToSet(n),p>c)break;s+=2}if(!a)return n;new en(a.fromA,a.toA,a.fromB,a.toB).addToSet(n),i=a.toA,l=a.toB}}},al=class{constructor(e,t,n){this.view=e,this.state=t,this.transactions=n,this.flags=0,this.startState=e.state,this.changes=We.empty(this.startState.doc.length);for(let s of n)this.changes=this.changes.compose(s.changes);let r=[];this.changes.iterChangedRanges((s,i,l,a)=>r.push(new en(s,i,l,a))),this.changedRanges=r}static create(e,t,n){return new al(e,t,n)}get viewportChanged(){return(this.flags&4)>0}get heightChanged(){return(this.flags&2)>0}get geometryChanged(){return this.docChanged||(this.flags&10)>0}get focusChanged(){return(this.flags&1)>0}get docChanged(){return!this.changes.empty}get selectionSet(){return this.transactions.some(e=>e.selection)}get empty(){return this.flags==0&&this.transactions.length==0}},Ye=function(o){return o[o.LTR=0]="LTR",o[o.RTL=1]="RTL",o}(Ye||(Ye={})),Sm=Ye.LTR,eO=Ye.RTL;function w0(o){let e=[];for(let t=0;t<o.length;t++)e.push(1<<+o[t]);return e}var tO=w0("88888888888888888888888888888888888666888888787833333333337888888000000000000000000000000008888880000000000000000000000000088888888888888888888888888888888888887866668888088888663380888308888800000000000000000000000800000000000000000000000000000008"),nO=w0("4444448826627288999999999992222222222222222222222222222222222222222222222229999999999999999999994444444444644222822222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222999999949999999229989999223333333333"),wm=Object.create(null),Co=[];for(let o of["()","[]","{}"]){let e=o.charCodeAt(0),t=o.charCodeAt(1);wm[e]=t,wm[t]=-e}function oO(o){return o<=247?tO[o]:1424<=o&&o<=1524?2:1536<=o&&o<=1785?nO[o-1536]:1774<=o&&o<=2220?4:8192<=o&&o<=8203?256:64336<=o&&o<=65023?4:o==8204?256:1}var rO=/[\u0590-\u05f4\u0600-\u06ff\u0700-\u08ac\ufb50-\ufdff]/,kr=class{constructor(e,t,n){this.from=e,this.to=t,this.level=n}get dir(){return this.level%2?eO:Sm}side(e,t){return this.dir==t==e?this.to:this.from}static find(e,t,n,r){let s=-1;for(let i=0;i<e.length;i++){let l=e[i];if(l.from<=t&&l.to>=t){if(l.level==n)return i;(s<0||(r!=0?r<0?l.from<t:l.to>t:e[s].level>l.level))&&(s=i)}}if(s<0)throw new RangeError("Index out of range");return s}},Ke=[];function sO(o,e){let t=o.length,n=e==Sm?1:2,r=e==Sm?2:1;if(!o||n==1&&!rO.test(o))return T0(t);for(let i=0,l=n,a=n;i<t;i++){let u=oO(o.charCodeAt(i));u==512?u=l:u==8&&a==4&&(u=16),Ke[i]=u==4?2:u,u&7&&(a=u),l=u}for(let i=0,l=n,a=n;i<t;i++){let u=Ke[i];if(u==128)i<t-1&&l==Ke[i+1]&&l&24?u=Ke[i]=l:Ke[i]=256;else if(u==64){let c=i+1;for(;c<t&&Ke[c]==64;)c++;let d=i&&l==8||c<t&&Ke[c]==8?a==1?1:8:256;for(let p=i;p<c;p++)Ke[p]=d;i=c-1}else u==8&&a==1&&(Ke[i]=1);l=u,u&7&&(a=u)}for(let i=0,l=0,a=0,u,c,d;i<t;i++)if(c=wm[u=o.charCodeAt(i)])if(c<0){for(let p=l-3;p>=0;p-=3)if(Co[p+1]==-c){let f=Co[p+2],h=f&2?n:f&4?f&1?r:n:0;h&&(Ke[i]=Ke[Co[p]]=h),l=p;break}}else{if(Co.length==189)break;Co[l++]=i,Co[l++]=u,Co[l++]=a}else if((d=Ke[i])==2||d==1){let p=d==n;a=p?0:1;for(let f=l-3;f>=0;f-=3){let h=Co[f+2];if(h&2)break;if(p)Co[f+2]|=2;else{if(h&4)break;Co[f+2]|=4}}}for(let i=0;i<t;i++)if(Ke[i]==256){let l=i+1;for(;l<t&&Ke[l]==256;)l++;let a=(i?Ke[i-1]:n)==1,u=(l<t?Ke[l]:n)==1,c=a==u?a?1:2:n;for(let d=i;d<l;d++)Ke[d]=c;i=l-1}let s=[];if(n==1)for(let i=0;i<t;){let l=i,a=Ke[i++]!=1;for(;i<t&&a==(Ke[i]!=1);)i++;if(a)for(let u=i;u>l;){let c=u,d=Ke[--u]!=2;for(;u>l&&d==(Ke[u-1]!=2);)u--;s.push(new kr(u,c,d?2:1))}else s.push(new kr(l,i,0))}else for(let i=0;i<t;){let l=i,a=Ke[i++]==2;for(;i<t&&a==(Ke[i]==2);)i++;s.push(new kr(l,i,a?1:2))}return s}function T0(o){return[new kr(0,o,0)]}var E0="";function iO(o,e,t,n,r){var s;let i=n.head-o.from,l=-1;if(i==0){if(!r||!o.length)return null;e[0].level!=t&&(i=e[0].side(!1,t),l=0)}else if(i==o.length){if(r)return null;let p=e[e.length-1];p.level!=t&&(i=p.side(!0,t),l=e.length-1)}l<0&&(l=kr.find(e,i,(s=n.bidiLevel)!==null&&s!==void 0?s:-1,n.assoc));let a=e[l];i==a.side(r,t)&&(a=e[l+=r?1:-1],i=a.side(!r,t));let u=r==(a.dir==t),c=Dt(o.text,i,u);if(E0=o.text.slice(Math.min(i,c),Math.max(i,c)),c!=a.side(r,t))return $.cursor(c+o.from,u?-1:1,a.level);let d=l==(r?e.length-1:0)?null:e[l+(r?1:-1)];return!d&&a.level!=t?$.cursor(r?o.to:o.from,r?-1:1,t):d&&d.level<a.level?$.cursor(d.side(!r,t)+o.from,r?1:-1,d.level):$.cursor(c+o.from,r?-1:1,a.level)}var Wd=class extends Me{constructor(e){super(),this.view=e,this.decorations=[],this.dynamicDecorationMap=[],this.hasComposition=null,this.markedForComposition=new Set,this.minWidth=0,this.minWidthFrom=0,this.minWidthTo=0,this.impreciseAnchor=null,this.impreciseHead=null,this.forceSelection=!1,this.lastUpdate=Date.now(),this.setDOM(e.contentDOM),this.children=[new yt],this.children[0].setParent(this),this.updateDeco(),this.updateInner([new en(0,0,0,e.state.doc.length)],0,null)}get length(){return this.view.state.doc.length}update(e){let t=e.changedRanges;this.minWidth>0&&t.length&&(t.every(({fromA:l,toA:a})=>a<this.minWidthFrom||l>this.minWidthTo)?(this.minWidthFrom=e.changes.mapPos(this.minWidthFrom,1),this.minWidthTo=e.changes.mapPos(this.minWidthTo,1)):this.minWidth=this.minWidthFrom=this.minWidthTo=0);let n=this.view.inputState.composing<0?null:aO(this.view,e.changes);if(this.hasComposition){this.markedForComposition.clear();let{from:l,to:a}=this.hasComposition;t=new en(l,a,e.changes.mapPos(l,-1),e.changes.mapPos(a,1)).addToSet(t.slice())}this.hasComposition=n?{from:n.range.fromB,to:n.range.toB}:null,(ee.ie||ee.chrome)&&!n&&e&&e.state.doc.lines!=e.startState.doc.lines&&(this.forceSelection=!0);let r=this.decorations,s=this.updateDeco(),i=cO(r,s,e.changes);return t=en.extendWithRanges(t,i),!(this.flags&7)&&t.length==0?!1:(this.updateInner(t,e.startState.doc.length,n),e.transactions.length&&(this.lastUpdate=Date.now()),!0)}updateInner(e,t,n){this.view.viewState.mustMeasureContent=!0,this.updateChildren(e,t,n);let{observer:r}=this.view;r.ignore(()=>{this.dom.style.height=this.view.viewState.contentHeight+"px",this.dom.style.flexBasis=this.minWidth?this.minWidth+"px":"";let i=ee.chrome||ee.ios?{node:r.selectionRange.focusNode,written:!1}:void 0;this.sync(this.view,i),this.flags&=-8,i&&(i.written||r.selectionRange.focusNode!=i.node)&&(this.forceSelection=!0),this.dom.style.height=""}),this.markedForComposition.forEach(i=>i.flags&=-9);let s=[];if(this.view.viewport.from||this.view.viewport.to<this.view.state.doc.length)for(let i of this.children)i instanceof Xo&&i.widget instanceof _d&&s.push(i.dom);r.updateGaps(s)}updateChildren(e,t,n){let r=n?n.range.addToSet(e.slice()):e,s=this.childCursor(t);for(let i=r.length-1;;i--){let l=i>=0?r[i]:null;if(!l)break;let{fromA:a,toA:u,fromB:c,toB:d}=l,p,f,h,g;if(n&&n.range.fromB<d&&n.range.toB>c){let x=Fs.build(this.view.state.doc,c,n.range.fromB,this.decorations,this.dynamicDecorationMap),S=Fs.build(this.view.state.doc,n.range.toB,d,this.decorations,this.dynamicDecorationMap);f=x.breakAtStart,h=x.openStart,g=S.openEnd;let b=this.compositionView(n);S.breakAtStart?b.breakAfter=1:S.content.length&&b.merge(b.length,b.length,S.content[0],!1,S.openStart,0)&&(b.breakAfter=S.content[0].breakAfter,S.content.shift()),x.content.length&&b.merge(0,0,x.content[x.content.length-1],!0,0,x.openEnd)&&x.content.pop(),p=x.content.concat(b).concat(S.content)}else({content:p,breakAtStart:f,openStart:h,openEnd:g}=Fs.build(this.view.state.doc,c,d,this.decorations,this.dynamicDecorationMap));let{i:m,off:y}=s.findPos(u,1),{i:w,off:v}=s.findPos(a,-1);r0(this,w,v,m,y,p,f,h,g)}n&&this.fixCompositionDOM(n)}compositionView(e){let t=new In(e.text.nodeValue);t.flags|=8;for(let{deco:r}of e.marks)t=new no(r,[t],t.length);let n=new yt;return n.append(t,0),n}fixCompositionDOM(e){let t=(s,i)=>{i.flags|=8,this.markedForComposition.add(i);let l=Me.get(s);l!=i&&(l&&(l.dom=null),i.setDOM(s))},n=this.childPos(e.range.fromB,1),r=this.children[n.i];t(e.line,r);for(let s=e.marks.length-1;s>=-1;s--)n=r.childPos(n.off,1),r=r.children[n.i],t(s>=0?e.marks[s].node:e.text,r)}updateSelection(e=!1,t=!1){(e||!this.view.observer.selectionRange.focusNode)&&this.view.observer.readSelectionRange();let n=this.view.root.activeElement,r=n==this.dom,s=!r&&kd(this.dom,this.view.observer.selectionRange)&&!(n&&this.dom.contains(n));if(!(r||t||s))return;let i=this.forceSelection;this.forceSelection=!1;let l=this.view.state.selection.main,a=this.domAtPos(l.anchor),u=l.empty?a:this.domAtPos(l.head);if(ee.gecko&&l.empty&&!this.hasComposition&&lO(a)){let d=document.createTextNode("");this.view.observer.ignore(()=>a.node.insertBefore(d,a.node.childNodes[a.offset]||null)),a=u=new xt(d,0),i=!0}let c=this.view.observer.selectionRange;(i||!c.focusNode||!Hd(a.node,a.offset,c.anchorNode,c.anchorOffset)||!Hd(u.node,u.offset,c.focusNode,c.focusOffset))&&(this.view.observer.ignore(()=>{ee.android&&ee.chrome&&this.dom.contains(c.focusNode)&&dO(c.focusNode,this.dom)&&(this.dom.blur(),this.dom.focus({preventScroll:!0}));let d=Nd(this.view.root);if(d)if(l.empty){if(ee.gecko){let p=uO(a.node,a.offset);if(p&&p!=3){let f=R0(a.node,a.offset,p==1?1:-1);f&&(a=new xt(f,p==1?0:f.nodeValue.length))}}d.collapse(a.node,a.offset),l.bidiLevel!=null&&c.cursorBidiLevel!=null&&(c.cursorBidiLevel=l.bidiLevel)}else if(d.extend){d.collapse(a.node,a.offset);try{d.extend(u.node,u.offset)}catch{}}else{let p=document.createRange();l.anchor>l.head&&([a,u]=[u,a]),p.setEnd(u.node,u.offset),p.setStart(a.node,a.offset),d.removeAllRanges(),d.addRange(p)}s&&this.view.root.activeElement==this.dom&&(this.dom.blur(),n&&n.focus())}),this.view.observer.setSelectionRange(a,u)),this.impreciseAnchor=a.precise?null:new xt(c.anchorNode,c.anchorOffset),this.impreciseHead=u.precise?null:new xt(c.focusNode,c.focusOffset)}enforceCursorAssoc(){if(this.hasComposition)return;let{view:e}=this,t=e.state.selection.main,n=Nd(e.root),{anchorNode:r,anchorOffset:s}=e.observer.selectionRange;if(!n||!t.empty||!t.assoc||!n.modify)return;let i=yt.find(this,t.head);if(!i)return;let l=i.posAtStart;if(t.head==l||t.head==l+i.length)return;let a=this.coordsAt(t.head,-1),u=this.coordsAt(t.head,1);if(!a||!u||a.bottom>u.top)return;let c=this.domAtPos(t.head+t.assoc);n.collapse(c.node,c.offset),n.modify("move",t.assoc<0?"forward":"backward","lineboundary"),e.observer.readSelectionRange();let d=e.observer.selectionRange;e.docView.posFromDOM(d.anchorNode,d.anchorOffset)!=t.from&&n.collapse(r,s)}nearest(e){for(let t=e;t;){let n=Me.get(t);if(n&&n.rootView==this)return n;t=t.parentNode}return null}posFromDOM(e,t){let n=this.nearest(e);if(!n)throw new RangeError("Trying to find position for a DOM position outside of the document");return n.localPosFromDOM(e,t)+n.posAtStart}domAtPos(e){let{i:t,off:n}=this.childCursor().findPos(e,-1);for(;t<this.children.length-1;){let r=this.children[t];if(n<r.length||r instanceof yt)break;t++,n=0}return this.children[t].domAtPos(n)}coordsAt(e,t){for(let n=this.length,r=this.children.length-1;;r--){let s=this.children[r],i=n-s.breakAfter-s.length;if(e>i||e==i&&s.type!=Ze.WidgetBefore&&s.type!=Ze.WidgetAfter&&(!r||t==2||this.children[r-1].breakAfter||this.children[r-1].type==Ze.WidgetBefore&&t>-2))return s.coordsAt(e-i,t);n=i}}coordsForChar(e){let{i:t,off:n}=this.childPos(e,1),r=this.children[t];if(!(r instanceof yt))return null;for(;r.children.length;){let{i:l,off:a}=r.childPos(n,1);for(;;l++){if(l==r.children.length)return null;if((r=r.children[l]).length)break}n=a}if(!(r instanceof In))return null;let s=Dt(r.text,n);if(s==n)return null;let i=Vs(r.dom,n,s).getClientRects();return!i.length||i[0].top>=i[0].bottom?null:i[0]}measureVisibleLineHeights(e){let t=[],{from:n,to:r}=e,s=this.view.contentDOM.clientWidth,i=s>Math.max(this.view.scrollDOM.clientWidth,this.minWidth)+1,l=-1,a=this.view.textDirection==Ye.LTR;for(let u=0,c=0;c<this.children.length;c++){let d=this.children[c],p=u+d.length;if(p>r)break;if(u>=n){let f=d.dom.getBoundingClientRect();if(t.push(f.height),i){let h=d.dom.lastChild,g=h?tu(h):[];if(g.length){let m=g[g.length-1],y=a?m.right-f.left:f.right-m.left;y>l&&(l=y,this.minWidth=s,this.minWidthFrom=u,this.minWidthTo=p)}}}u=p+d.breakAfter}return t}textDirectionAt(e){let{i:t}=this.childPos(e,1);return getComputedStyle(this.children[t].dom).direction=="rtl"?Ye.RTL:Ye.LTR}measureTextSize(){for(let s of this.children)if(s instanceof yt){let i=s.measureTextSize();if(i)return i}let e=document.createElement("div"),t,n,r;return e.className="cm-line",e.style.width="99999px",e.style.position="absolute",e.textContent="abc def ghi jkl mno pqr stu",this.view.observer.ignore(()=>{this.dom.appendChild(e);let s=tu(e.firstChild)[0];t=e.getBoundingClientRect().height,n=s?s.width/27:7,r=s?s.height:t,e.remove()}),{lineHeight:t,charWidth:n,textHeight:r}}childCursor(e=this.length){let t=this.children.length;return t&&(e-=this.children[--t].length),new Vd(this.children,e,t)}computeBlockGapDeco(){let e=[],t=this.view.viewState;for(let n=0,r=0;;r++){let s=r==t.viewports.length?null:t.viewports[r],i=s?s.from-1:this.length;if(i>n){let l=t.lineBlockAt(i).bottom-t.lineBlockAt(n).top;e.push(ct.replace({widget:new _d(l),block:!0,inclusive:!0,isBlockGap:!0}).range(n,i))}if(!s)break;n=s.to+1}return ct.set(e)}updateDeco(){let e=this.view.state.facet(nu).map((t,n)=>(this.dynamicDecorationMap[n]=typeof t=="function")?t(this.view):t);for(let t=e.length;t<e.length+3;t++)this.dynamicDecorationMap[t]=!1;return this.decorations=[...e,this.computeBlockGapDeco(),this.view.viewState.lineGapDeco]}scrollIntoView(e){let{range:t}=e,n=this.coordsAt(t.head,t.empty?t.assoc:t.head>t.anchor?-1:1),r;if(!n)return;!t.empty&&(r=this.coordsAt(t.anchor,t.anchor>t.head?-1:1))&&(n={left:Math.min(n.left,r.left),top:Math.min(n.top,r.top),right:Math.max(n.right,r.right),bottom:Math.max(n.bottom,r.bottom)});let s=S0(this.view),i={left:n.left-s.left,top:n.top-s.top,right:n.right+s.right,bottom:n.bottom+s.bottom};KA(this.view.scrollDOM,i,t.head<t.anchor?-1:1,e.x,e.y,e.xMargin,e.yMargin,this.view.textDirection==Ye.LTR)}};function lO(o){return o.node.nodeType==1&&o.node.firstChild&&(o.offset==0||o.node.childNodes[o.offset-1].contentEditable=="false")&&(o.offset==o.node.childNodes.length||o.node.childNodes[o.offset].contentEditable=="false")}var _d=class extends Yo{constructor(e){super(),this.height=e}toDOM(){let e=document.createElement("div");return this.updateDOM(e),e}eq(e){return e.height==this.height}updateDOM(e){return e.style.height=this.height+"px",!0}get estimatedHeight(){return this.height}};function M0(o){let e=o.observer.selectionRange,t=e.focusNode&&R0(e.focusNode,e.focusOffset,0);if(!t)return null;let n=Me.get(t),r,s;if(n instanceof In)r=n.posAtStart,s=r+n.length;else e:for(let i=0,l=t;;){for(let u=l.previousSibling,c;u;u=u.previousSibling){if(c=Me.get(u)){r=s=c.posAtEnd+i;break e}let d=new Bd([],o.state);if(d.readNode(u),d.text.indexOf(rl)>-1)return null;i+=d.text.length}if(l=l.parentNode,!l)return null;let a=Me.get(l);if(a){r=s=a.posAtStart+i;break}}return{from:r,to:s,node:t}}function aO(o,e){let t=M0(o);if(!t)return null;let{from:n,to:r,node:s}=t,i=e.mapPos(n,-1),l=e.mapPos(r,1),a=s.nodeValue;if(/[\n\r]/.test(a))return null;if(l-i!=a.length){let p=e.mapPos(n,1),f=e.mapPos(r,-1);if(f-p==a.length)i=p,l=f;else if(o.state.doc.sliceString(l-a.length,l)==a)i=l-a.length;else if(o.state.doc.sliceString(i,i+a.length)==a)l=i+a.length;else return null}let{main:u}=o.state.selection;if(o.state.doc.sliceString(i,l)!=a||i>u.head||l<u.head)return null;let c=[],d=new en(n,r,i,l);for(let p=s.parentNode;;p=p.parentNode){let f=Me.get(p);if(f instanceof no)c.push({node:p,deco:f.mark});else{if(f instanceof yt||p.nodeName=="DIV"&&p.parentNode==o.contentDOM)return{range:d,text:s,marks:c,line:p};if(p!=o.contentDOM)c.push({node:p,deco:new Bs({inclusive:!0,attributes:XA(p),tagName:p.tagName.toLowerCase()})});else return null}}}function R0(o,e,t){if(t<=0)for(let n=o,r=e;;){if(n.nodeType==3)return n;if(n.nodeType==1&&r>0)n=n.childNodes[r-1],r=Ir(n);else break}if(t>=0)for(let n=o,r=e;;){if(n.nodeType==3)return n;if(n.nodeType==1&&r<n.childNodes.length&&t>=0)n=n.childNodes[r],r=0;else break}return null}function uO(o,e){return o.nodeType!=1?0:(e&&o.childNodes[e-1].contentEditable=="false"?1:0)|(e<o.childNodes.length&&o.childNodes[e].contentEditable=="false"?2:0)}var Tm=class{constructor(){this.changes=[]}compareRange(e,t){vm(e,t,this.changes)}comparePoint(e,t){vm(e,t,this.changes)}};function cO(o,e,t){let n=new Tm;return Pe.compare(o,e,t,n),n.changes}function dO(o,e){for(let t=o;t&&t!=e;t=t.assignedSlot||t.parentNode)if(t.nodeType==1&&t.contentEditable=="false")return!0;return!1}function pO(o,e,t=1){let n=o.charCategorizer(e),r=o.doc.lineAt(e),s=e-r.from;if(r.length==0)return $.cursor(e);s==0?t=1:s==r.length&&(t=-1);let i=s,l=s;t<0?i=Dt(r.text,s,!1):l=Dt(r.text,s);let a=n(r.text.slice(i,l));for(;i>0;){let u=Dt(r.text,i,!1);if(n(r.text.slice(u,i))!=a)break;i=u}for(;l<r.length;){let u=Dt(r.text,l);if(n(r.text.slice(l,u))!=a)break;l=u}return $.range(i+r.from,l+r.from)}function fO(o,e){return e.left>o?e.left-o:Math.max(0,o-e.right)}function hO(o,e){return e.top>o?e.top-o:Math.max(0,o-e.bottom)}function um(o,e){return o.top<e.bottom-1&&o.bottom>e.top+1}function Iw(o,e){return e<o.top?{top:e,left:o.left,right:o.right,bottom:o.bottom}:o}function Lw(o,e){return e>o.bottom?{top:o.top,left:o.left,right:o.right,bottom:e}:o}function Em(o,e,t){let n,r,s,i,l=!1,a,u,c,d;for(let h=o.firstChild;h;h=h.nextSibling){let g=tu(h);for(let m=0;m<g.length;m++){let y=g[m];r&&um(r,y)&&(y=Iw(Lw(y,r.bottom),r.top));let w=fO(e,y),v=hO(t,y);if(w==0&&v==0)return h.nodeType==3?Aw(h,e,t):Em(h,e,t);if(!n||i>v||i==v&&s>w){n=h,r=y,s=w,i=v;let x=v?t<y.top?-1:1:w?e<y.left?-1:1:0;l=!x||(x>0?m<g.length-1:m>0)}w==0?t>y.bottom&&(!c||c.bottom<y.bottom)?(a=h,c=y):t<y.top&&(!d||d.top>y.top)&&(u=h,d=y):c&&um(c,y)?c=Lw(c,y.bottom):d&&um(d,y)&&(d=Iw(d,y.top))}}if(c&&c.bottom>=t?(n=a,r=c):d&&d.top<=t&&(n=u,r=d),!n)return{node:o,offset:0};let p=Math.max(r.left,Math.min(r.right,e));if(n.nodeType==3)return Aw(n,p,t);if(l&&n.contentEditable!="false")return Em(n,p,t);let f=Array.prototype.indexOf.call(o.childNodes,n)+(e>=(r.left+r.right)/2?1:0);return{node:o,offset:f}}function Aw(o,e,t){let n=o.nodeValue.length,r=-1,s=1e9,i=0;for(let l=0;l<n;l++){let a=Vs(o,l,l+1).getClientRects();for(let u=0;u<a.length;u++){let c=a[u];if(c.top==c.bottom)continue;i||(i=e-c.left);let d=(c.top>t?c.top-t:t-c.bottom)-1;if(c.left-1<=e&&c.right+1>=e&&d<s){let p=e>=(c.left+c.right)/2,f=p;if((ee.chrome||ee.gecko)&&Vs(o,l).getBoundingClientRect().left==c.right&&(f=!p),d<=0)return{node:o,offset:l+(f?1:0)};r=l+(f?1:0),s=d}}}return{node:o,offset:r>-1?r:i>0?o.nodeValue.length:0}}function D0(o,e,t,n=-1){var r,s;let i=o.contentDOM.getBoundingClientRect(),l=i.top+o.viewState.paddingTop,a,{docHeight:u}=o.viewState,{x:c,y:d}=e,p=d-l;if(p<0)return 0;if(p>u)return o.state.doc.length;for(let x=o.viewState.heightOracle.textHeight/2,S=!1;a=o.elementAtHeight(p),a.type!=Ze.Text;)for(;p=n>0?a.bottom+x:a.top-x,!(p>=0&&p<=u);){if(S)return t?null:0;S=!0,n=-n}d=l+p;let f=a.from;if(f<o.viewport.from)return o.viewport.from==0?0:t?null:Ow(o,i,a,c,d);if(f>o.viewport.to)return o.viewport.to==o.state.doc.length?o.state.doc.length:t?null:Ow(o,i,a,c,d);let h=o.dom.ownerDocument,g=o.root.elementFromPoint?o.root:h,m=g.elementFromPoint(c,d);m&&!o.contentDOM.contains(m)&&(m=null),m||(c=Math.max(i.left+1,Math.min(i.right-1,c)),m=g.elementFromPoint(c,d),m&&!o.contentDOM.contains(m)&&(m=null));let y,w=-1;if(m&&((r=o.docView.nearest(m))===null||r===void 0?void 0:r.isEditable)!=!1){if(h.caretPositionFromPoint){let x=h.caretPositionFromPoint(c,d);x&&({offsetNode:y,offset:w}=x)}else if(h.caretRangeFromPoint){let x=h.caretRangeFromPoint(c,d);x&&({startContainer:y,startOffset:w}=x,(!o.contentDOM.contains(y)||ee.safari&&mO(y,w,c)||ee.chrome&&gO(y,w,c))&&(y=void 0))}}if(!y||!o.docView.dom.contains(y)){let x=yt.find(o.docView,f);if(!x)return p>a.top+a.height/2?a.to:a.from;({node:y,offset:w}=Em(x.dom,c,d))}let v=o.docView.nearest(y);if(!v)return null;if(v.isWidget&&((s=v.dom)===null||s===void 0?void 0:s.nodeType)==1){let x=v.dom.getBoundingClientRect();return e.y<x.top||e.y<=x.bottom&&e.x<=(x.left+x.right)/2?v.posAtStart:v.posAtEnd}else return v.localPosFromDOM(y,w)+v.posAtStart}function Ow(o,e,t,n,r){let s=Math.round((n-e.left)*o.defaultCharacterWidth);if(o.lineWrapping&&t.height>o.defaultLineHeight*1.5){let l=o.viewState.heightOracle.textHeight,a=Math.floor((r-t.top-(o.defaultLineHeight-l)*.5)/l);s+=a*o.viewState.heightOracle.lineLength}let i=o.state.sliceDoc(t.from,t.to);return t.from+bw(i,s,o.state.tabSize)}function mO(o,e,t){let n;if(o.nodeType!=3||e!=(n=o.nodeValue.length))return!1;for(let r=o.nextSibling;r;r=r.nextSibling)if(r.nodeType!=1||r.nodeName!="BR")return!1;return Vs(o,n-1,n).getBoundingClientRect().left>t}function gO(o,e,t){if(e!=0)return!1;for(let r=o;;){let s=r.parentNode;if(!s||s.nodeType!=1||s.firstChild!=r)return!1;if(s.classList.contains("cm-line"))break;r=s}let n=o.nodeType==1?o.getBoundingClientRect():Vs(o,0,Math.max(o.nodeValue.length,1)).getBoundingClientRect();return t-n.left>5}function Mm(o,e){let t=o.lineBlockAt(e);if(Array.isArray(t.type)){for(let n of t.type)if(n.to>e||n.to==e&&(n.to==t.to||n.type==Ze.Text))return n}return t}function bO(o,e,t,n){let r=Mm(o,e.head),s=!n||r.type!=Ze.Text||!(o.lineWrapping||r.widgetLineBreaks)?null:o.coordsAtPos(e.assoc<0&&e.head>r.from?e.head-1:e.head);if(s){let i=o.dom.getBoundingClientRect(),l=o.textDirectionAt(r.from),a=o.posAtCoords({x:t==(l==Ye.LTR)?i.right-1:i.left+1,y:(s.top+s.bottom)/2});if(a!=null)return $.cursor(a,t?-1:1)}return $.cursor(t?r.to:r.from,t?-1:1)}function Nw(o,e,t,n){let r=o.state.doc.lineAt(e.head),s=o.bidiSpans(r),i=o.textDirectionAt(r.from);for(let l=e,a=null;;){let u=iO(r,s,i,l,t),c=E0;if(!u){if(r.number==(t?o.state.doc.lines:1))return l;c=`
|
|
26
|
-
`,r=o.state.doc.line(r.number+(t?1:-1)),s=o.bidiSpans(r),u=$.cursor(t?r.from:r.to)}if(a){if(!a(c))return l}else{if(!n)return u;a=n(c)}l=u}}function yO(o,e,t){let n=o.state.charCategorizer(e),r=n(t);return s=>{let i=n(s);return r==Bt.Space&&(r=i),r==i}}function xO(o,e,t,n){let r=e.head,s=t?1:-1;if(r==(t?o.state.doc.length:0))return $.cursor(r,e.assoc);let i=e.goalColumn,l,a=o.contentDOM.getBoundingClientRect(),u=o.coordsAtPos(r),c=o.documentTop;if(u)i==null&&(i=u.left-a.left),l=s<0?u.top:u.bottom;else{let f=o.viewState.lineBlockAt(r);i==null&&(i=Math.min(a.right-a.left,o.defaultCharacterWidth*(r-f.from))),l=(s<0?f.top:f.bottom)+c}let d=a.left+i,p=n!=null?n:o.viewState.heightOracle.textHeight>>1;for(let f=0;;f+=10){let h=l+(p+f)*s,g=D0(o,{x:d,y:h},!1,s);if(h<a.top||h>a.bottom||(s<0?g<r:g>r))return $.cursor(g,e.assoc,void 0,i)}}function Id(o,e,t){for(;;){let n=0;for(let r of o)r.between(e-1,e+1,(s,i,l)=>{if(e>s&&e<i){let a=n||t||(e-s<i-e?-1:1);e=a<0?s:i,n=a}});if(!n)return e}}function cm(o,e,t){let n=Id(o.state.facet(Xm).map(r=>r(o)),t.from,e.head>t.from?-1:1);return n==t.from?t:$.cursor(n,n<t.from?1:-1)}var Rm=class{constructor(e){this.lastKeyCode=0,this.lastKeyTime=0,this.lastTouchTime=0,this.lastFocusTime=0,this.lastScrollTop=0,this.lastScrollLeft=0,this.chromeScrollHack=-1,this.pendingIOSKey=void 0,this.lastSelectionOrigin=null,this.lastSelectionTime=0,this.lastEscPress=0,this.lastContextMenu=0,this.scrollHandlers=[],this.registeredEvents=[],this.customHandlers=[],this.composing=-1,this.compositionFirstChange=null,this.compositionEndedAt=0,this.compositionPendingKey=!1,this.compositionPendingChange=!1,this.mouseSelection=null;let t=(n,r)=>{this.ignoreDuringComposition(r)||r.type=="keydown"&&this.keydown(e,r)||(this.mustFlushObserver(r)&&e.observer.forceFlush(),this.runCustomHandlers(r.type,e,r)?r.preventDefault():n(e,r))};for(let n in rt){let r=rt[n];e.contentDOM.addEventListener(n,s=>{Hw(e,s)&&t(r,s)},Pm[n]),this.registeredEvents.push(n)}e.scrollDOM.addEventListener("mousedown",n=>{if(n.target==e.scrollDOM&&n.clientY>e.contentDOM.getBoundingClientRect().bottom&&(t(rt.mousedown,n),!n.defaultPrevented&&n.button==2)){let r=e.contentDOM.style.minHeight;e.contentDOM.style.minHeight="100%",setTimeout(()=>e.contentDOM.style.minHeight=r,200)}}),e.scrollDOM.addEventListener("drop",n=>{n.target==e.scrollDOM&&n.clientY>e.contentDOM.getBoundingClientRect().bottom&&t(rt.drop,n)}),ee.chrome&&ee.chrome_version==102&&e.scrollDOM.addEventListener("wheel",()=>{this.chromeScrollHack<0?e.contentDOM.style.pointerEvents="none":window.clearTimeout(this.chromeScrollHack),this.chromeScrollHack=setTimeout(()=>{this.chromeScrollHack=-1,e.contentDOM.style.pointerEvents=""},100)},{passive:!0}),this.notifiedFocused=e.hasFocus,ee.safari&&e.contentDOM.addEventListener("input",()=>null)}setSelectionOrigin(e){this.lastSelectionOrigin=e,this.lastSelectionTime=Date.now()}ensureHandlers(e,t){var n;let r;this.customHandlers=[];for(let s of t)if(r=(n=s.update(e).spec)===null||n===void 0?void 0:n.domEventHandlers){this.customHandlers.push({plugin:s.value,handlers:r});for(let i in r)this.registeredEvents.indexOf(i)<0&&i!="scroll"&&(this.registeredEvents.push(i),e.contentDOM.addEventListener(i,l=>{Hw(e,l)&&this.runCustomHandlers(i,e,l)&&l.preventDefault()}))}}runCustomHandlers(e,t,n){for(let r of this.customHandlers){let s=r.handlers[e];if(s)try{if(s.call(r.plugin,n,t)||n.defaultPrevented)return!0}catch(i){So(t.state,i)}}return!1}runScrollHandlers(e,t){this.lastScrollTop=e.scrollDOM.scrollTop,this.lastScrollLeft=e.scrollDOM.scrollLeft;for(let n of this.customHandlers){let r=n.handlers.scroll;if(r)try{r.call(n.plugin,t,e)}catch(s){So(e.state,s)}}}keydown(e,t){if(this.lastKeyCode=t.keyCode,this.lastKeyTime=Date.now(),t.keyCode==9&&Date.now()<this.lastEscPress+2e3)return!0;if(t.keyCode!=27&&k0.indexOf(t.keyCode)<0&&(e.inputState.lastEscPress=0),ee.android&&ee.chrome&&!t.synthetic&&(t.keyCode==13||t.keyCode==8))return e.observer.delayAndroidKey(t.key,t.keyCode),!0;let n;return ee.ios&&!t.synthetic&&!t.altKey&&!t.metaKey&&((n=P0.find(r=>r.keyCode==t.keyCode))&&!t.ctrlKey||vO.indexOf(t.key)>-1&&t.ctrlKey&&!t.shiftKey)?(this.pendingIOSKey=n||t,setTimeout(()=>this.flushIOSKey(e),250),!0):!1}flushIOSKey(e){let t=this.pendingIOSKey;return t?(this.pendingIOSKey=void 0,il(e.contentDOM,t.key,t.keyCode)):!1}ignoreDuringComposition(e){return/^key/.test(e.type)?this.composing>0?!0:ee.safari&&!ee.ios&&this.compositionPendingKey&&Date.now()-this.compositionEndedAt<100?(this.compositionPendingKey=!1,!0):!1:!1}mustFlushObserver(e){return e.type=="keydown"&&e.keyCode!=229}startMouseSelection(e){this.mouseSelection&&this.mouseSelection.destroy(),this.mouseSelection=e}update(e){this.mouseSelection&&this.mouseSelection.update(e),e.transactions.length&&(this.lastKeyCode=this.lastSelectionTime=0)}destroy(){this.mouseSelection&&this.mouseSelection.destroy()}},P0=[{key:"Backspace",keyCode:8,inputType:"deleteContentBackward"},{key:"Enter",keyCode:13,inputType:"insertParagraph"},{key:"Enter",keyCode:13,inputType:"insertLineBreak"},{key:"Delete",keyCode:46,inputType:"deleteContentForward"}],vO="dthko",k0=[16,17,18,20,91,92,224,225],Td=6;function Ed(o){return Math.max(0,o)*.7+8}function CO(o,e){return Math.max(Math.abs(o.clientX-e.clientX),Math.abs(o.clientY-e.clientY))}var Dm=class{constructor(e,t,n,r){this.view=e,this.startEvent=t,this.style=n,this.mustSelect=r,this.scrollSpeed={x:0,y:0},this.scrolling=-1,this.lastEvent=t,this.scrollParent=UA(e.contentDOM),this.atoms=e.state.facet(Xm).map(i=>i(e));let s=e.contentDOM.ownerDocument;s.addEventListener("mousemove",this.move=this.move.bind(this)),s.addEventListener("mouseup",this.up=this.up.bind(this)),this.extend=t.shiftKey,this.multiple=e.state.facet(xe.allowMultipleSelections)&&SO(e,t),this.dragging=TO(e,t)&&O0(t)==1?null:!1}start(e){this.dragging===!1&&(e.preventDefault(),this.select(e))}move(e){var t;if(e.buttons==0)return this.destroy();if(this.dragging||this.dragging==null&&CO(this.startEvent,e)<10)return;this.select(this.lastEvent=e);let n=0,r=0,s=((t=this.scrollParent)===null||t===void 0?void 0:t.getBoundingClientRect())||{left:0,top:0,right:this.view.win.innerWidth,bottom:this.view.win.innerHeight},i=S0(this.view);e.clientX-i.left<=s.left+Td?n=-Ed(s.left-e.clientX):e.clientX+i.right>=s.right-Td&&(n=Ed(e.clientX-s.right)),e.clientY-i.top<=s.top+Td?r=-Ed(s.top-e.clientY):e.clientY+i.bottom>=s.bottom-Td&&(r=Ed(e.clientY-s.bottom)),this.setScrollSpeed(n,r)}up(e){this.dragging==null&&this.select(this.lastEvent),this.dragging||e.preventDefault(),this.destroy()}destroy(){this.setScrollSpeed(0,0);let e=this.view.contentDOM.ownerDocument;e.removeEventListener("mousemove",this.move),e.removeEventListener("mouseup",this.up),this.view.inputState.mouseSelection=null}setScrollSpeed(e,t){this.scrollSpeed={x:e,y:t},e||t?this.scrolling<0&&(this.scrolling=setInterval(()=>this.scroll(),50)):this.scrolling>-1&&(clearInterval(this.scrolling),this.scrolling=-1)}scroll(){this.scrollParent?(this.scrollParent.scrollLeft+=this.scrollSpeed.x,this.scrollParent.scrollTop+=this.scrollSpeed.y):this.view.win.scrollBy(this.scrollSpeed.x,this.scrollSpeed.y),this.dragging===!1&&this.select(this.lastEvent)}skipAtoms(e){let t=null;for(let n=0;n<e.ranges.length;n++){let r=e.ranges[n],s=null;if(r.empty){let i=Id(this.atoms,r.from,0);i!=r.from&&(s=$.cursor(i,-1))}else{let i=Id(this.atoms,r.from,-1),l=Id(this.atoms,r.to,1);(i!=r.from||l!=r.to)&&(s=$.range(r.from==r.anchor?i:l,r.from==r.head?i:l))}s&&(t||(t=e.ranges.slice()),t[n]=s)}return t?$.create(t,e.mainIndex):e}select(e){let{view:t}=this,n=this.skipAtoms(this.style.get(e,this.extend,this.multiple));(this.mustSelect||!n.eq(t.state.selection)||n.main.assoc!=t.state.selection.main.assoc&&this.dragging===!1)&&this.view.dispatch({selection:n,userEvent:"select.pointer"}),this.mustSelect=!1}update(e){e.docChanged&&this.dragging&&(this.dragging=this.dragging.map(e.changes)),this.style.update(e)&&setTimeout(()=>this.select(this.lastEvent),20)}};function SO(o,e){let t=o.state.facet(p0);return t.length?t[0](e):ee.mac?e.metaKey:e.ctrlKey}function wO(o,e){let t=o.state.facet(f0);return t.length?t[0](e):ee.mac?!e.altKey:!e.ctrlKey}function TO(o,e){let{main:t}=o.state.selection;if(t.empty)return!1;let n=Nd(o.root);if(!n||n.rangeCount==0)return!0;let r=n.getRangeAt(0).getClientRects();for(let s=0;s<r.length;s++){let i=r[s];if(i.left<=e.clientX&&i.right>=e.clientX&&i.top<=e.clientY&&i.bottom>=e.clientY)return!0}return!1}function Hw(o,e){if(!e.bubbles)return!0;if(e.defaultPrevented)return!1;for(let t=e.target,n;t!=o.contentDOM;t=t.parentNode)if(!t||t.nodeType==11||(n=Me.get(t))&&n.ignoreEvent(e))return!1;return!0}var rt=Object.create(null),Pm=Object.create(null),I0=ee.ie&&ee.ie_version<15||ee.ios&&ee.webkit_version<604;function EO(o){let e=o.dom.parentNode;if(!e)return;let t=e.appendChild(document.createElement("textarea"));t.style.cssText="position: fixed; left: -10000px; top: 10px",t.focus(),setTimeout(()=>{o.focus(),t.remove(),L0(o,t.value)},50)}function L0(o,e){let{state:t}=o,n,r=1,s=t.toText(e),i=s.lines==t.selection.ranges.length;if(km!=null&&t.selection.ranges.every(a=>a.empty)&&km==s.toString()){let a=-1;n=t.changeByRange(u=>{let c=t.doc.lineAt(u.from);if(c.from==a)return{range:u};a=c.from;let d=t.toText((i?s.line(r++).text:e)+t.lineBreak);return{changes:{from:c.from,insert:d},range:$.cursor(u.from+d.length)}})}else i?n=t.changeByRange(a=>{let u=s.line(r++);return{changes:{from:a.from,to:a.to,insert:u.text},range:$.cursor(a.from+u.length)}}):n=t.replaceSelection(s);o.dispatch(n,{userEvent:"input.paste",scrollIntoView:!0})}rt.keydown=(o,e)=>{o.inputState.setSelectionOrigin("select"),e.keyCode==27&&(o.inputState.lastEscPress=Date.now())};rt.touchstart=(o,e)=>{o.inputState.lastTouchTime=Date.now(),o.inputState.setSelectionOrigin("select.pointer")};rt.touchmove=o=>{o.inputState.setSelectionOrigin("select.pointer")};Pm.touchstart=Pm.touchmove={passive:!0};rt.mousedown=(o,e)=>{if(o.observer.flush(),o.inputState.lastTouchTime>Date.now()-2e3)return;let t=null;for(let n of o.state.facet(h0))if(t=n(o,e),t)break;if(!t&&e.button==0&&(t=DO(o,e)),t){let n=!o.hasFocus;o.inputState.startMouseSelection(new Dm(o,e,t,n)),n&&o.observer.ignore(()=>t0(o.contentDOM)),o.inputState.mouseSelection&&o.inputState.mouseSelection.start(e)}};function Fw(o,e,t,n){if(n==1)return $.cursor(e,t);if(n==2)return pO(o.state,e,t);{let r=yt.find(o.docView,e),s=o.state.doc.lineAt(r?r.posAtEnd:e),i=r?r.posAtStart:s.from,l=r?r.posAtEnd:s.to;return l<o.state.doc.length&&l==s.to&&l++,$.range(i,l)}}var A0=(o,e)=>o>=e.top&&o<=e.bottom,Vw=(o,e,t)=>A0(e,t)&&o>=t.left&&o<=t.right;function MO(o,e,t,n){let r=yt.find(o.docView,e);if(!r)return 1;let s=e-r.posAtStart;if(s==0)return 1;if(s==r.length)return-1;let i=r.coordsAt(s,-1);if(i&&Vw(t,n,i))return-1;let l=r.coordsAt(s,1);return l&&Vw(t,n,l)?1:i&&A0(n,i)?-1:1}function Bw(o,e){let t=o.posAtCoords({x:e.clientX,y:e.clientY},!1);return{pos:t,bias:MO(o,t,e.clientX,e.clientY)}}var RO=ee.ie&&ee.ie_version<=11,zw=null,$w=0,Ww=0;function O0(o){if(!RO)return o.detail;let e=zw,t=Ww;return zw=o,Ww=Date.now(),$w=!e||t>Date.now()-400&&Math.abs(e.clientX-o.clientX)<2&&Math.abs(e.clientY-o.clientY)<2?($w+1)%3:1}function DO(o,e){let t=Bw(o,e),n=O0(e),r=o.state.selection;return{update(s){s.docChanged&&(t.pos=s.changes.mapPos(t.pos),r=r.map(s.changes))},get(s,i,l){let a=Bw(o,s),u,c=Fw(o,a.pos,a.bias,n);if(t.pos!=a.pos&&!i){let d=Fw(o,t.pos,t.bias,n),p=Math.min(d.from,c.from),f=Math.max(d.to,c.to);c=p<c.from?$.range(p,f):$.range(f,p)}return i?r.replaceRange(r.main.extend(c.from,c.to)):l&&n==1&&r.ranges.length>1&&(u=PO(r,a.pos))?u:l?r.addRange(c):$.create([c])}}}function PO(o,e){for(let t=0;t<o.ranges.length;t++){let{from:n,to:r}=o.ranges[t];if(n<=e&&r>=e)return $.create(o.ranges.slice(0,t).concat(o.ranges.slice(t+1)),o.mainIndex==t?0:o.mainIndex-(o.mainIndex>t?1:0))}return null}rt.dragstart=(o,e)=>{let{selection:{main:t}}=o.state,{mouseSelection:n}=o.inputState;n&&(n.dragging=t),e.dataTransfer&&(e.dataTransfer.setData("Text",o.state.sliceDoc(t.from,t.to)),e.dataTransfer.effectAllowed="copyMove")};function _w(o,e,t,n){if(!t)return;let r=o.posAtCoords({x:e.clientX,y:e.clientY},!1);e.preventDefault();let{mouseSelection:s}=o.inputState,i=n&&s&&s.dragging&&wO(o,e)?{from:s.dragging.from,to:s.dragging.to}:null,l={from:r,insert:t},a=o.state.changes(i?[i,l]:l);o.focus(),o.dispatch({changes:a,selection:{anchor:a.mapPos(r,-1),head:a.mapPos(r,1)},userEvent:i?"move.drop":"input.drop"})}rt.drop=(o,e)=>{if(!e.dataTransfer)return;if(o.state.readOnly)return e.preventDefault();let t=e.dataTransfer.files;if(t&&t.length){e.preventDefault();let n=Array(t.length),r=0,s=()=>{++r==t.length&&_w(o,e,n.filter(i=>i!=null).join(o.state.lineBreak),!1)};for(let i=0;i<t.length;i++){let l=new FileReader;l.onerror=s,l.onload=()=>{/[\x00-\x08\x0e-\x1f]{2}/.test(l.result)||(n[i]=l.result),s()},l.readAsText(t[i])}}else _w(o,e,e.dataTransfer.getData("Text"),!0)};rt.paste=(o,e)=>{if(o.state.readOnly)return e.preventDefault();o.observer.flush();let t=I0?null:e.clipboardData;t?(L0(o,t.getData("text/plain")||t.getData("text/uri-text")),e.preventDefault()):EO(o)};function kO(o,e){let t=o.dom.parentNode;if(!t)return;let n=t.appendChild(document.createElement("textarea"));n.style.cssText="position: fixed; left: -10000px; top: 10px",n.value=e,n.focus(),n.selectionEnd=e.length,n.selectionStart=0,setTimeout(()=>{n.remove(),o.focus()},50)}function IO(o){let e=[],t=[],n=!1;for(let r of o.selection.ranges)r.empty||(e.push(o.sliceDoc(r.from,r.to)),t.push(r));if(!e.length){let r=-1;for(let{from:s}of o.selection.ranges){let i=o.doc.lineAt(s);i.number>r&&(e.push(i.text),t.push({from:i.from,to:Math.min(o.doc.length,i.to+1)})),r=i.number}n=!0}return{text:e.join(o.lineBreak),ranges:t,linewise:n}}var km=null;rt.copy=rt.cut=(o,e)=>{let{text:t,ranges:n,linewise:r}=IO(o.state);if(!t&&!r)return;km=r?t:null;let s=I0?null:e.clipboardData;s?(e.preventDefault(),s.clearData(),s.setData("text/plain",t)):kO(o,t),e.type=="cut"&&!o.state.readOnly&&o.dispatch({changes:n,scrollIntoView:!0,userEvent:"delete.cut"})};var N0=mn.define();function H0(o,e){let t=[];for(let n of o.facet(b0)){let r=n(o,e);r&&t.push(r)}return t?o.update({effects:t,annotations:N0.of(!0)}):null}function F0(o){setTimeout(()=>{let e=o.hasFocus;if(e!=o.inputState.notifiedFocused){let t=H0(o.state,e);t?o.dispatch(t):o.update([])}},10)}rt.focus=o=>{o.inputState.lastFocusTime=Date.now(),!o.scrollDOM.scrollTop&&(o.inputState.lastScrollTop||o.inputState.lastScrollLeft)&&(o.scrollDOM.scrollTop=o.inputState.lastScrollTop,o.scrollDOM.scrollLeft=o.inputState.lastScrollLeft),F0(o)};rt.blur=o=>{o.observer.clearSelectionRange(),F0(o)};rt.compositionstart=rt.compositionupdate=o=>{o.inputState.compositionFirstChange==null&&(o.inputState.compositionFirstChange=!0),o.inputState.composing<0&&(o.inputState.composing=0)};rt.compositionend=o=>{o.inputState.composing=-1,o.inputState.compositionEndedAt=Date.now(),o.inputState.compositionPendingKey=!0,o.inputState.compositionPendingChange=o.observer.pendingRecords().length>0,o.inputState.compositionFirstChange=null,ee.chrome&&ee.android?o.observer.flushSoon():o.inputState.compositionPendingChange?Promise.resolve().then(()=>o.observer.flush()):setTimeout(()=>{o.inputState.composing<0&&o.docView.hasComposition&&o.update([])},50)};rt.contextmenu=o=>{o.inputState.lastContextMenu=Date.now()};rt.beforeinput=(o,e)=>{var t;let n;if(ee.chrome&&ee.android&&(n=P0.find(r=>r.inputType==e.inputType))&&(o.observer.delayAndroidKey(n.key,n.keyCode),n.key=="Backspace"||n.key=="Delete")){let r=((t=window.visualViewport)===null||t===void 0?void 0:t.height)||0;setTimeout(()=>{var s;(((s=window.visualViewport)===null||s===void 0?void 0:s.height)||0)>r+10&&o.hasFocus&&(o.contentDOM.blur(),o.focus())},100)}};var Kw=["pre-wrap","normal","pre-line","break-spaces"],Im=class{constructor(e){this.lineWrapping=e,this.doc=ge.empty,this.heightSamples={},this.lineHeight=14,this.charWidth=7,this.textHeight=14,this.lineLength=30,this.heightChanged=!1}heightForGap(e,t){let n=this.doc.lineAt(t).number-this.doc.lineAt(e).number+1;return this.lineWrapping&&(n+=Math.max(0,Math.ceil((t-e-n*this.lineLength*.5)/this.lineLength))),this.lineHeight*n}heightForLine(e){return this.lineWrapping?(1+Math.max(0,Math.ceil((e-this.lineLength)/(this.lineLength-5))))*this.lineHeight:this.lineHeight}setDoc(e){return this.doc=e,this}mustRefreshForWrapping(e){return Kw.indexOf(e)>-1!=this.lineWrapping}mustRefreshForHeights(e){let t=!1;for(let n=0;n<e.length;n++){let r=e[n];r<0?n++:this.heightSamples[Math.floor(r*10)]||(t=!0,this.heightSamples[Math.floor(r*10)]=!0)}return t}refresh(e,t,n,r,s,i){let l=Kw.indexOf(e)>-1,a=Math.round(t)!=Math.round(this.lineHeight)||this.lineWrapping!=l;if(this.lineWrapping=l,this.lineHeight=t,this.charWidth=n,this.textHeight=r,this.lineLength=s,a){this.heightSamples={};for(let u=0;u<i.length;u++){let c=i[u];c<0?u++:this.heightSamples[Math.floor(c*10)]=!0}}return a}},Lm=class{constructor(e,t){this.from=e,this.heights=t,this.index=0}get more(){return this.index<this.heights.length}},kn=class{constructor(e,t,n,r,s){this.from=e,this.length=t,this.top=n,this.height=r,this._content=s}get type(){return typeof this._content=="number"?Ze.Text:Array.isArray(this._content)?this._content:this._content.type}get to(){return this.from+this.length}get bottom(){return this.top+this.height}get widget(){return this._content instanceof wo?this._content.widget:null}get widgetLineBreaks(){return typeof this._content=="number"?this._content:0}join(e){let t=(Array.isArray(this._content)?this._content:[this]).concat(Array.isArray(e._content)?e._content:[e]);return new kn(this.from,this.length+e.length,this.top,this.height+e.height,t)}},Fe=function(o){return o[o.ByPos=0]="ByPos",o[o.ByHeight=1]="ByHeight",o[o.ByPosNoHeight=2]="ByPosNoHeight",o}(Fe||(Fe={})),Ld=.001,vt=class{constructor(e,t,n=2){this.length=e,this.height=t,this.flags=n}get outdated(){return(this.flags&2)>0}set outdated(e){this.flags=(e?2:0)|this.flags&-3}setHeight(e,t){this.height!=t&&(Math.abs(this.height-t)>Ld&&(e.heightChanged=!0),this.height=t)}replace(e,t,n){return vt.of(n)}decomposeLeft(e,t){t.push(this)}decomposeRight(e,t){t.push(this)}applyChanges(e,t,n,r){let s=this,i=n.doc;for(let l=r.length-1;l>=0;l--){let{fromA:a,toA:u,fromB:c,toB:d}=r[l],p=s.lineAt(a,Fe.ByPosNoHeight,n.setDoc(t),0,0),f=p.to>=u?p:s.lineAt(u,Fe.ByPosNoHeight,n,0,0);for(d+=f.to-u,u=f.to;l>0&&p.from<=r[l-1].toA;)a=r[l-1].fromA,c=r[l-1].fromB,l--,a<p.from&&(p=s.lineAt(a,Fe.ByPosNoHeight,n,0,0));c+=p.from-a,a=p.from;let h=ou.build(n.setDoc(i),e,c,d);s=s.replace(a,u,h)}return s.updateHeight(n,0)}static empty(){return new $t(0,0)}static of(e){if(e.length==1)return e[0];let t=0,n=e.length,r=0,s=0;for(;;)if(t==n)if(r>s*2){let l=e[t-1];l.break?e.splice(--t,1,l.left,null,l.right):e.splice(--t,1,l.left,l.right),n+=1+l.break,r-=l.size}else if(s>r*2){let l=e[n];l.break?e.splice(n,1,l.left,null,l.right):e.splice(n,1,l.left,l.right),n+=2+l.break,s-=l.size}else break;else if(r<s){let l=e[t++];l&&(r+=l.size)}else{let l=e[--n];l&&(s+=l.size)}let i=0;return e[t-1]==null?(i=1,t--):e[t]==null&&(i=1,n++),new Am(vt.of(e.slice(0,t)),i,vt.of(e.slice(n)))}};vt.prototype.size=1;var Kd=class extends vt{constructor(e,t,n){super(e,t),this.deco=n}blockAt(e,t,n,r){return new kn(r,this.length,n,this.height,this.deco||0)}lineAt(e,t,n,r,s){return this.blockAt(0,n,r,s)}forEachLine(e,t,n,r,s,i){e<=s+this.length&&t>=s&&i(this.blockAt(0,n,r,s))}updateHeight(e,t=0,n=!1,r){return r&&r.from<=t&&r.more&&this.setHeight(e,r.heights[r.index++]),this.outdated=!1,this}toString(){return`block(${this.length})`}},$t=class extends Kd{constructor(e,t){super(e,t,null),this.collapsed=0,this.widgetHeight=0,this.breaks=0}blockAt(e,t,n,r){return new kn(r,this.length,n,this.height,this.breaks)}replace(e,t,n){let r=n[0];return n.length==1&&(r instanceof $t||r instanceof ut&&r.flags&4)&&Math.abs(this.length-r.length)<10?(r instanceof ut?r=new $t(r.length,this.height):r.height=this.height,this.outdated||(r.outdated=!1),r):vt.of(n)}updateHeight(e,t=0,n=!1,r){return r&&r.from<=t&&r.more?this.setHeight(e,r.heights[r.index++]):(n||this.outdated)&&this.setHeight(e,Math.max(this.widgetHeight,e.heightForLine(this.length-this.collapsed))+this.breaks*e.lineHeight),this.outdated=!1,this}toString(){return`line(${this.length}${this.collapsed?-this.collapsed:""}${this.widgetHeight?":"+this.widgetHeight:""})`}},ut=class extends vt{constructor(e){super(e,0)}heightMetrics(e,t){let n=e.doc.lineAt(t).number,r=e.doc.lineAt(t+this.length).number,s=r-n+1,i,l=0;if(e.lineWrapping){let a=Math.min(this.height,e.lineHeight*s);i=a/s,this.length>s+1&&(l=(this.height-a)/(this.length-s-1))}else i=this.height/s;return{firstLine:n,lastLine:r,perLine:i,perChar:l}}blockAt(e,t,n,r){let{firstLine:s,lastLine:i,perLine:l,perChar:a}=this.heightMetrics(t,r);if(t.lineWrapping){let u=r+Math.round(Math.max(0,Math.min(1,(e-n)/this.height))*this.length),c=t.doc.lineAt(u),d=l+c.length*a,p=Math.max(n,e-d/2);return new kn(c.from,c.length,p,d,0)}else{let u=Math.max(0,Math.min(i-s,Math.floor((e-n)/l))),{from:c,length:d}=t.doc.line(s+u);return new kn(c,d,n+l*u,l,0)}}lineAt(e,t,n,r,s){if(t==Fe.ByHeight)return this.blockAt(e,n,r,s);if(t==Fe.ByPosNoHeight){let{from:f,to:h}=n.doc.lineAt(e);return new kn(f,h-f,0,0,0)}let{firstLine:i,perLine:l,perChar:a}=this.heightMetrics(n,s),u=n.doc.lineAt(e),c=l+u.length*a,d=u.number-i,p=r+l*d+a*(u.from-s-d);return new kn(u.from,u.length,Math.max(r,Math.min(p,r+this.height-c)),c,0)}forEachLine(e,t,n,r,s,i){e=Math.max(e,s),t=Math.min(t,s+this.length);let{firstLine:l,perLine:a,perChar:u}=this.heightMetrics(n,s);for(let c=e,d=r;c<=t;){let p=n.doc.lineAt(c);if(c==e){let h=p.number-l;d+=a*h+u*(e-s-h)}let f=a+u*p.length;i(new kn(p.from,p.length,d,f,0)),d+=f,c=p.to+1}}replace(e,t,n){let r=this.length-t;if(r>0){let s=n[n.length-1];s instanceof ut?n[n.length-1]=new ut(s.length+r):n.push(null,new ut(r-1))}if(e>0){let s=n[0];s instanceof ut?n[0]=new ut(e+s.length):n.unshift(new ut(e-1),null)}return vt.of(n)}decomposeLeft(e,t){t.push(new ut(e-1),null)}decomposeRight(e,t){t.push(null,new ut(this.length-e-1))}updateHeight(e,t=0,n=!1,r){let s=t+this.length;if(r&&r.from<=t+this.length&&r.more){let i=[],l=Math.max(t,r.from),a=-1;for(r.from>t&&i.push(new ut(r.from-t-1).updateHeight(e,t));l<=s&&r.more;){let c=e.doc.lineAt(l).length;i.length&&i.push(null);let d=r.heights[r.index++];a==-1?a=d:Math.abs(d-a)>=Ld&&(a=-2);let p=new $t(c,d);p.outdated=!1,i.push(p),l+=c+1}l<=s&&i.push(null,new ut(s-l).updateHeight(e,l));let u=vt.of(i);return(a<0||Math.abs(u.height-this.height)>=Ld||Math.abs(a-this.heightMetrics(e,t).perLine)>=Ld)&&(e.heightChanged=!0),u}else(n||this.outdated)&&(this.setHeight(e,e.heightForGap(t,t+this.length)),this.outdated=!1);return this}toString(){return`gap(${this.length})`}},Am=class extends vt{constructor(e,t,n){super(e.length+t+n.length,e.height+n.height,t|(e.outdated||n.outdated?2:0)),this.left=e,this.right=n,this.size=e.size+n.size}get break(){return this.flags&1}blockAt(e,t,n,r){let s=n+this.left.height;return e<s?this.left.blockAt(e,t,n,r):this.right.blockAt(e,t,s,r+this.left.length+this.break)}lineAt(e,t,n,r,s){let i=r+this.left.height,l=s+this.left.length+this.break,a=t==Fe.ByHeight?e<i:e<l,u=a?this.left.lineAt(e,t,n,r,s):this.right.lineAt(e,t,n,i,l);if(this.break||(a?u.to<l:u.from>l))return u;let c=t==Fe.ByPosNoHeight?Fe.ByPosNoHeight:Fe.ByPos;return a?u.join(this.right.lineAt(l,c,n,i,l)):this.left.lineAt(l,c,n,r,s).join(u)}forEachLine(e,t,n,r,s,i){let l=r+this.left.height,a=s+this.left.length+this.break;if(this.break)e<a&&this.left.forEachLine(e,t,n,r,s,i),t>=a&&this.right.forEachLine(e,t,n,l,a,i);else{let u=this.lineAt(a,Fe.ByPos,n,r,s);e<u.from&&this.left.forEachLine(e,u.from-1,n,r,s,i),u.to>=e&&u.from<=t&&i(u),t>u.to&&this.right.forEachLine(u.to+1,t,n,l,a,i)}}replace(e,t,n){let r=this.left.length+this.break;if(t<r)return this.balanced(this.left.replace(e,t,n),this.right);if(e>this.left.length)return this.balanced(this.left,this.right.replace(e-r,t-r,n));let s=[];e>0&&this.decomposeLeft(e,s);let i=s.length;for(let l of n)s.push(l);if(e>0&&Uw(s,i-1),t<this.length){let l=s.length;this.decomposeRight(t,s),Uw(s,l)}return vt.of(s)}decomposeLeft(e,t){let n=this.left.length;if(e<=n)return this.left.decomposeLeft(e,t);t.push(this.left),this.break&&(n++,e>=n&&t.push(null)),e>n&&this.right.decomposeLeft(e-n,t)}decomposeRight(e,t){let n=this.left.length,r=n+this.break;if(e>=r)return this.right.decomposeRight(e-r,t);e<n&&this.left.decomposeRight(e,t),this.break&&e<r&&t.push(null),t.push(this.right)}balanced(e,t){return e.size>2*t.size||t.size>2*e.size?vt.of(this.break?[e,null,t]:[e,t]):(this.left=e,this.right=t,this.height=e.height+t.height,this.outdated=e.outdated||t.outdated,this.size=e.size+t.size,this.length=e.length+this.break+t.length,this)}updateHeight(e,t=0,n=!1,r){let{left:s,right:i}=this,l=t+s.length+this.break,a=null;return r&&r.from<=t+s.length&&r.more?a=s=s.updateHeight(e,t,n,r):s.updateHeight(e,t,n),r&&r.from<=l+i.length&&r.more?a=i=i.updateHeight(e,l,n,r):i.updateHeight(e,l,n),a?this.balanced(s,i):(this.height=this.left.height+this.right.height,this.outdated=!1,this)}toString(){return this.left+(this.break?" ":"-")+this.right}};function Uw(o,e){let t,n;o[e]==null&&(t=o[e-1])instanceof ut&&(n=o[e+1])instanceof ut&&o.splice(e-1,3,new ut(t.length+1+n.length))}var LO=5,ou=class{constructor(e,t){this.pos=e,this.oracle=t,this.nodes=[],this.lineStart=-1,this.lineEnd=-1,this.covering=null,this.writtenTo=e}get isCovered(){return this.covering&&this.nodes[this.nodes.length-1]==this.covering}span(e,t){if(this.lineStart>-1){let n=Math.min(t,this.lineEnd),r=this.nodes[this.nodes.length-1];r instanceof $t?r.length+=n-this.pos:(n>this.pos||!this.isCovered)&&this.nodes.push(new $t(n-this.pos,-1)),this.writtenTo=n,t>n&&(this.nodes.push(null),this.writtenTo++,this.lineStart=-1)}this.pos=t}point(e,t,n){if(e<t||n.heightRelevant){let r=n.widget?n.widget.estimatedHeight:0,s=n.widget?n.widget.lineBreaks:0;r<0&&(r=this.oracle.lineHeight);let i=t-e;n.block?this.addBlock(new Kd(i,r,n)):(i||s||r>=LO)&&this.addLineDeco(r,s,i)}else t>e&&this.span(e,t);this.lineEnd>-1&&this.lineEnd<this.pos&&(this.lineEnd=this.oracle.doc.lineAt(this.pos).to)}enterLine(){if(this.lineStart>-1)return;let{from:e,to:t}=this.oracle.doc.lineAt(this.pos);this.lineStart=e,this.lineEnd=t,this.writtenTo<e&&((this.writtenTo<e-1||this.nodes[this.nodes.length-1]==null)&&this.nodes.push(this.blankContent(this.writtenTo,e-1)),this.nodes.push(null)),this.pos>e&&this.nodes.push(new $t(this.pos-e,-1)),this.writtenTo=this.pos}blankContent(e,t){let n=new ut(t-e);return this.oracle.doc.lineAt(e).to==t&&(n.flags|=4),n}ensureLine(){this.enterLine();let e=this.nodes.length?this.nodes[this.nodes.length-1]:null;if(e instanceof $t)return e;let t=new $t(0,-1);return this.nodes.push(t),t}addBlock(e){var t;this.enterLine();let n=(t=e.deco)===null||t===void 0?void 0:t.type;n==Ze.WidgetAfter&&!this.isCovered&&this.ensureLine(),this.nodes.push(e),this.writtenTo=this.pos=this.pos+e.length,n!=Ze.WidgetBefore&&(this.covering=e)}addLineDeco(e,t,n){let r=this.ensureLine();r.length+=n,r.collapsed+=n,r.widgetHeight=Math.max(r.widgetHeight,e),r.breaks+=t,this.writtenTo=this.pos=this.pos+n}finish(e){let t=this.nodes.length==0?null:this.nodes[this.nodes.length-1];this.lineStart>-1&&!(t instanceof $t)&&!this.isCovered?this.nodes.push(new $t(0,-1)):(this.writtenTo<this.pos||t==null)&&this.nodes.push(this.blankContent(this.writtenTo,this.pos));let n=e;for(let r of this.nodes)r instanceof $t&&r.updateHeight(this.oracle,n),n+=r?r.length:1;return this.nodes}static build(e,t,n,r){let s=new ou(n,e);return Pe.spans(t,n,r,s,0),s.finish(n)}};function AO(o,e,t){let n=new Om;return Pe.compare(o,e,t,n,0),n.changes}var Om=class{constructor(){this.changes=[]}compareRange(){}comparePoint(e,t,n,r){(e<t||n&&n.heightRelevant||r&&r.heightRelevant)&&vm(e,t,this.changes,5)}};function OO(o,e){let t=o.getBoundingClientRect(),n=o.ownerDocument,r=n.defaultView||window,s=Math.max(0,t.left),i=Math.min(r.innerWidth,t.right),l=Math.max(0,t.top),a=Math.min(r.innerHeight,t.bottom);for(let u=o.parentNode;u&&u!=n.body;)if(u.nodeType==1){let c=u,d=window.getComputedStyle(c);if((c.scrollHeight>c.clientHeight||c.scrollWidth>c.clientWidth)&&d.overflow!="visible"){let p=c.getBoundingClientRect();s=Math.max(s,p.left),i=Math.min(i,p.right),l=Math.max(l,p.top),a=u==o.parentNode?p.bottom:Math.min(a,p.bottom)}u=d.position=="absolute"||d.position=="fixed"?c.offsetParent:c.parentNode}else if(u.nodeType==11)u=u.host;else break;return{left:s-t.left,right:Math.max(s,i)-t.left,top:l-(t.top+e),bottom:Math.max(l,a)-(t.top+e)}}function NO(o,e){let t=o.getBoundingClientRect();return{left:0,right:t.right-t.left,top:e,bottom:t.bottom-(t.top+e)}}var eu=class{constructor(e,t,n){this.from=e,this.to=t,this.size=n}static same(e,t){if(e.length!=t.length)return!1;for(let n=0;n<e.length;n++){let r=e[n],s=t[n];if(r.from!=s.from||r.to!=s.to||r.size!=s.size)return!1}return!0}draw(e){return ct.replace({widget:new Nm(this.size,e)}).range(this.from,this.to)}},Nm=class extends Yo{constructor(e,t){super(),this.size=e,this.vertical=t}eq(e){return e.size==this.size&&e.vertical==this.vertical}toDOM(){let e=document.createElement("div");return this.vertical?e.style.height=this.size+"px":(e.style.width=this.size+"px",e.style.height="2px",e.style.display="inline-block"),e}get estimatedHeight(){return this.vertical?this.size:-1}},Ud=class{constructor(e){this.state=e,this.pixelViewport={left:0,right:window.innerWidth,top:0,bottom:0},this.inView=!0,this.paddingTop=0,this.paddingBottom=0,this.contentDOMWidth=0,this.contentDOMHeight=0,this.editorHeight=0,this.editorWidth=0,this.scrollTop=0,this.scrolledToBottom=!0,this.scrollAnchorPos=0,this.scrollAnchorHeight=-1,this.scaler=Gw,this.scrollTarget=null,this.printing=!1,this.mustMeasureContent=!0,this.defaultTextDirection=Ye.LTR,this.visibleRanges=[],this.mustEnforceCursorAssoc=!1;let t=e.facet(Jm).some(n=>typeof n!="function"&&n.class=="cm-lineWrapping");this.heightOracle=new Im(t),this.stateDeco=e.facet(nu).filter(n=>typeof n!="function"),this.heightMap=vt.empty().applyChanges(this.stateDeco,ge.empty,this.heightOracle.setDoc(e.doc),[new en(0,0,0,e.doc.length)]),this.viewport=this.getViewport(0,null),this.updateViewportLines(),this.updateForViewport(),this.lineGaps=this.ensureLineGaps([]),this.lineGapDeco=ct.set(this.lineGaps.map(n=>n.draw(!1))),this.computeVisibleRanges()}updateForViewport(){let e=[this.viewport],{main:t}=this.state.selection;for(let n=0;n<=1;n++){let r=n?t.head:t.anchor;if(!e.some(({from:s,to:i})=>r>=s&&r<=i)){let{from:s,to:i}=this.lineBlockAt(r);e.push(new sl(s,i))}}this.viewports=e.sort((n,r)=>n.from-r.from),this.scaler=this.heightMap.height<=7e6?Gw:new Hm(this.heightOracle,this.heightMap,this.viewports)}updateViewportLines(){this.viewportLines=[],this.heightMap.forEachLine(this.viewport.from,this.viewport.to,this.heightOracle.setDoc(this.state.doc),0,0,e=>{this.viewportLines.push(this.scaler.scale==1?e:Ya(e,this.scaler))})}update(e,t=null){this.state=e.state;let n=this.stateDeco;this.stateDeco=this.state.facet(nu).filter(c=>typeof c!="function");let r=e.changedRanges,s=en.extendWithRanges(r,AO(n,this.stateDeco,e?e.changes:We.empty(this.state.doc.length))),i=this.heightMap.height,l=this.scrolledToBottom?null:this.scrollAnchorAt(this.scrollTop);this.heightMap=this.heightMap.applyChanges(this.stateDeco,e.startState.doc,this.heightOracle.setDoc(this.state.doc),s),this.heightMap.height!=i&&(e.flags|=2),l?(this.scrollAnchorPos=e.changes.mapPos(l.from,-1),this.scrollAnchorHeight=l.top):(this.scrollAnchorPos=-1,this.scrollAnchorHeight=this.heightMap.height);let a=s.length?this.mapViewport(this.viewport,e.changes):this.viewport;(t&&(t.range.head<a.from||t.range.head>a.to)||!this.viewportIsAppropriate(a))&&(a=this.getViewport(0,t));let u=!e.changes.empty||e.flags&2||a.from!=this.viewport.from||a.to!=this.viewport.to;this.viewport=a,this.updateForViewport(),u&&this.updateViewportLines(),(this.lineGaps.length||this.viewport.to-this.viewport.from>2e3<<1)&&this.updateLineGaps(this.ensureLineGaps(this.mapLineGaps(this.lineGaps,e.changes))),e.flags|=this.computeVisibleRanges(),t&&(this.scrollTarget=t),!this.mustEnforceCursorAssoc&&e.selectionSet&&e.view.lineWrapping&&e.state.selection.main.empty&&e.state.selection.main.assoc&&!e.state.facet(x0)&&(this.mustEnforceCursorAssoc=!0)}measure(e){let t=e.contentDOM,n=window.getComputedStyle(t),r=this.heightOracle,s=n.whiteSpace;this.defaultTextDirection=n.direction=="rtl"?Ye.RTL:Ye.LTR;let i=this.heightOracle.mustRefreshForWrapping(s),l=t.getBoundingClientRect(),a=i||this.mustMeasureContent||this.contentDOMHeight!=l.height;this.contentDOMHeight=l.height,this.mustMeasureContent=!1;let u=0,c=0,d=parseInt(n.paddingTop)||0,p=parseInt(n.paddingBottom)||0;(this.paddingTop!=d||this.paddingBottom!=p)&&(this.paddingTop=d,this.paddingBottom=p,u|=10),this.editorWidth!=e.scrollDOM.clientWidth&&(r.lineWrapping&&(a=!0),this.editorWidth=e.scrollDOM.clientWidth,u|=8),this.scrollTop!=e.scrollDOM.scrollTop&&(this.scrollAnchorHeight=-1,this.scrollTop=e.scrollDOM.scrollTop),this.scrolledToBottom=o0(e.scrollDOM);let f=(this.printing?NO:OO)(t,this.paddingTop),h=f.top-this.pixelViewport.top,g=f.bottom-this.pixelViewport.bottom;this.pixelViewport=f;let m=this.pixelViewport.bottom>this.pixelViewport.top&&this.pixelViewport.right>this.pixelViewport.left;if(m!=this.inView&&(this.inView=m,m&&(a=!0)),!this.inView&&!this.scrollTarget)return 0;let y=l.width;if((this.contentDOMWidth!=y||this.editorHeight!=e.scrollDOM.clientHeight)&&(this.contentDOMWidth=l.width,this.editorHeight=e.scrollDOM.clientHeight,u|=8),a){let v=e.docView.measureVisibleLineHeights(this.viewport);if(r.mustRefreshForHeights(v)&&(i=!0),i||r.lineWrapping&&Math.abs(y-this.contentDOMWidth)>r.charWidth){let{lineHeight:x,charWidth:S,textHeight:b}=e.docView.measureTextSize();i=x>0&&r.refresh(s,x,S,b,y/S,v),i&&(e.docView.minWidth=0,u|=8)}h>0&&g>0?c=Math.max(h,g):h<0&&g<0&&(c=Math.min(h,g)),r.heightChanged=!1;for(let x of this.viewports){let S=x.from==this.viewport.from?v:e.docView.measureVisibleLineHeights(x);this.heightMap=(i?vt.empty().applyChanges(this.stateDeco,ge.empty,this.heightOracle,[new en(0,0,0,e.state.doc.length)]):this.heightMap).updateHeight(r,0,i,new Lm(x.from,S))}r.heightChanged&&(u|=2)}let w=!this.viewportIsAppropriate(this.viewport,c)||this.scrollTarget&&(this.scrollTarget.range.head<this.viewport.from||this.scrollTarget.range.head>this.viewport.to);return w&&(this.viewport=this.getViewport(c,this.scrollTarget)),this.updateForViewport(),(u&2||w)&&this.updateViewportLines(),(this.lineGaps.length||this.viewport.to-this.viewport.from>2e3<<1)&&this.updateLineGaps(this.ensureLineGaps(i?[]:this.lineGaps,e)),u|=this.computeVisibleRanges(),this.mustEnforceCursorAssoc&&(this.mustEnforceCursorAssoc=!1,e.docView.enforceCursorAssoc()),u}get visibleTop(){return this.scaler.fromDOM(this.pixelViewport.top)}get visibleBottom(){return this.scaler.fromDOM(this.pixelViewport.bottom)}getViewport(e,t){let n=.5-Math.max(-.5,Math.min(.5,e/1e3/2)),r=this.heightMap,s=this.heightOracle,{visibleTop:i,visibleBottom:l}=this,a=new sl(r.lineAt(i-n*1e3,Fe.ByHeight,s,0,0).from,r.lineAt(l+(1-n)*1e3,Fe.ByHeight,s,0,0).to);if(t){let{head:u}=t.range;if(u<a.from||u>a.to){let c=Math.min(this.editorHeight,this.pixelViewport.bottom-this.pixelViewport.top),d=r.lineAt(u,Fe.ByPos,s,0,0),p;t.y=="center"?p=(d.top+d.bottom)/2-c/2:t.y=="start"||t.y=="nearest"&&u<a.from?p=d.top:p=d.bottom-c,a=new sl(r.lineAt(p-1e3/2,Fe.ByHeight,s,0,0).from,r.lineAt(p+c+1e3/2,Fe.ByHeight,s,0,0).to)}}return a}mapViewport(e,t){let n=t.mapPos(e.from,-1),r=t.mapPos(e.to,1);return new sl(this.heightMap.lineAt(n,Fe.ByPos,this.heightOracle,0,0).from,this.heightMap.lineAt(r,Fe.ByPos,this.heightOracle,0,0).to)}viewportIsAppropriate({from:e,to:t},n=0){if(!this.inView)return!0;let{top:r}=this.heightMap.lineAt(e,Fe.ByPos,this.heightOracle,0,0),{bottom:s}=this.heightMap.lineAt(t,Fe.ByPos,this.heightOracle,0,0),{visibleTop:i,visibleBottom:l}=this;return(e==0||r<=i-Math.max(10,Math.min(-n,250)))&&(t==this.state.doc.length||s>=l+Math.max(10,Math.min(n,250)))&&r>i-2*1e3&&s<l+2*1e3}mapLineGaps(e,t){if(!e.length||t.empty)return e;let n=[];for(let r of e)t.touchesRange(r.from,r.to)||n.push(new eu(t.mapPos(r.from),t.mapPos(r.to),r.size));return n}ensureLineGaps(e,t){let n=this.heightOracle.lineWrapping,r=n?1e4:2e3,s=r>>1,i=r<<1;if(this.defaultTextDirection!=Ye.LTR&&!n)return[];let l=[],a=(u,c,d,p)=>{if(c-u<s)return;let f=this.state.selection.main,h=[f.from];f.empty||h.push(f.to);for(let m of h)if(m>u&&m<c){a(u,m-10,d,p),a(m+10,c,d,p);return}let g=FO(e,m=>m.from>=d.from&&m.to<=d.to&&Math.abs(m.from-u)<s&&Math.abs(m.to-c)<s&&!h.some(y=>m.from<y&&m.to>y));if(!g){if(c<d.to&&t&&n&&t.visibleRanges.some(m=>m.from<=c&&m.to>=c)){let m=t.moveToLineBoundary($.cursor(c),!1,!0).head;m>u&&(c=m)}g=new eu(u,c,this.gapSize(d,u,c,p))}l.push(g)};for(let u of this.viewportLines){if(u.length<i)continue;let c=HO(u.from,u.to,this.stateDeco);if(c.total<i)continue;let d=this.scrollTarget?this.scrollTarget.range.head:null,p,f;if(n){let h=r/this.heightOracle.lineLength*this.heightOracle.lineHeight,g,m;if(d!=null){let y=Rd(c,d),w=((this.visibleBottom-this.visibleTop)/2+h)/u.height;g=y-w,m=y+w}else g=(this.visibleTop-u.top-h)/u.height,m=(this.visibleBottom-u.top+h)/u.height;p=Md(c,g),f=Md(c,m)}else{let h=c.total*this.heightOracle.charWidth,g=r*this.heightOracle.charWidth,m,y;if(d!=null){let w=Rd(c,d),v=((this.pixelViewport.right-this.pixelViewport.left)/2+g)/h;m=w-v,y=w+v}else m=(this.pixelViewport.left-g)/h,y=(this.pixelViewport.right+g)/h;p=Md(c,m),f=Md(c,y)}p>u.from&&a(u.from,p,u,c),f<u.to&&a(f,u.to,u,c)}return l}gapSize(e,t,n,r){let s=Rd(r,n)-Rd(r,t);return this.heightOracle.lineWrapping?e.height*s:r.total*this.heightOracle.charWidth*s}updateLineGaps(e){eu.same(e,this.lineGaps)||(this.lineGaps=e,this.lineGapDeco=ct.set(e.map(t=>t.draw(this.heightOracle.lineWrapping))))}computeVisibleRanges(){let e=this.stateDeco;this.lineGaps.length&&(e=e.concat(this.lineGapDeco));let t=[];Pe.spans(e,this.viewport.from,this.viewport.to,{span(r,s){t.push({from:r,to:s})},point(){}},20);let n=t.length!=this.visibleRanges.length||this.visibleRanges.some((r,s)=>r.from!=t[s].from||r.to!=t[s].to);return this.visibleRanges=t,n?4:0}lineBlockAt(e){return e>=this.viewport.from&&e<=this.viewport.to&&this.viewportLines.find(t=>t.from<=e&&t.to>=e)||Ya(this.heightMap.lineAt(e,Fe.ByPos,this.heightOracle,0,0),this.scaler)}lineBlockAtHeight(e){return Ya(this.heightMap.lineAt(this.scaler.fromDOM(e),Fe.ByHeight,this.heightOracle,0,0),this.scaler)}scrollAnchorAt(e){let t=this.lineBlockAtHeight(e+8);return t.from>=this.viewport.from||this.viewportLines[0].top-e>200?t:this.viewportLines[0]}elementAtHeight(e){return Ya(this.heightMap.blockAt(this.scaler.fromDOM(e),this.heightOracle,0,0),this.scaler)}get docHeight(){return this.scaler.toDOM(this.heightMap.height)}get contentHeight(){return this.docHeight+this.paddingTop+this.paddingBottom}},sl=class{constructor(e,t){this.from=e,this.to=t}};function HO(o,e,t){let n=[],r=o,s=0;return Pe.spans(t,o,e,{span(){},point(i,l){i>r&&(n.push({from:r,to:i}),s+=i-r),r=l}},20),r<e&&(n.push({from:r,to:e}),s+=e-r),{total:s,ranges:n}}function Md({total:o,ranges:e},t){if(t<=0)return e[0].from;if(t>=1)return e[e.length-1].to;let n=Math.floor(o*t);for(let r=0;;r++){let{from:s,to:i}=e[r],l=i-s;if(n<=l)return s+n;n-=l}}function Rd(o,e){let t=0;for(let{from:n,to:r}of o.ranges){if(e<=r){t+=e-n;break}t+=r-n}return t/o.total}function FO(o,e){for(let t of o)if(e(t))return t}var Gw={toDOM(o){return o},fromDOM(o){return o},scale:1},Hm=class{constructor(e,t,n){let r=0,s=0,i=0;this.viewports=n.map(({from:l,to:a})=>{let u=t.lineAt(l,Fe.ByPos,e,0,0).top,c=t.lineAt(a,Fe.ByPos,e,0,0).bottom;return r+=c-u,{from:l,to:a,top:u,bottom:c,domTop:0,domBottom:0}}),this.scale=(7e6-r)/(t.height-r);for(let l of this.viewports)l.domTop=i+(l.top-s)*this.scale,i=l.domBottom=l.domTop+(l.bottom-l.top),s=l.bottom}toDOM(e){for(let t=0,n=0,r=0;;t++){let s=t<this.viewports.length?this.viewports[t]:null;if(!s||e<s.top)return r+(e-n)*this.scale;if(e<=s.bottom)return s.domTop+(e-s.top);n=s.bottom,r=s.domBottom}}fromDOM(e){for(let t=0,n=0,r=0;;t++){let s=t<this.viewports.length?this.viewports[t]:null;if(!s||e<s.domTop)return n+(e-r)/this.scale;if(e<=s.domBottom)return s.top+(e-s.domTop);n=s.bottom,r=s.domBottom}}};function Ya(o,e){if(e.scale==1)return o;let t=e.toDOM(o.top),n=e.toDOM(o.bottom);return new kn(o.from,o.length,t,n-t,Array.isArray(o._content)?o._content.map(r=>Ya(r,e)):o._content)}var Dd=ie.define({combine:o=>o.join(" ")}),Fm=ie.define({combine:o=>o.indexOf(!0)>-1}),Vm=Pn.newName(),V0=Pn.newName(),B0=Pn.newName(),z0={"&light":"."+V0,"&dark":"."+B0};function Bm(o,e,t){return new Pn(e,{finish(n){return/&/.test(n)?n.replace(/&\w*/,r=>{if(r=="&")return o;if(!t||!t[r])throw new RangeError(`Unsupported selector: ${r}`);return t[r]}):o+" "+n}})}var VO=Bm("."+Vm,{"&":{position:"relative !important",boxSizing:"border-box","&.cm-focused":{outline:"1px dotted #212121"},display:"flex !important",flexDirection:"column"},".cm-scroller":{display:"flex !important",alignItems:"flex-start !important",fontFamily:"monospace",lineHeight:1.4,height:"100%",overflowX:"auto",position:"relative",zIndex:0},".cm-content":{margin:0,flexGrow:2,flexShrink:0,display:"block",whiteSpace:"pre",wordWrap:"normal",boxSizing:"border-box",padding:"4px 0",outline:"none","&[contenteditable=true]":{WebkitUserModify:"read-write-plaintext-only"}},".cm-lineWrapping":{whiteSpace_fallback:"pre-wrap",whiteSpace:"break-spaces",wordBreak:"break-word",overflowWrap:"anywhere",flexShrink:1},"&light .cm-content":{caretColor:"black"},"&dark .cm-content":{caretColor:"white"},".cm-line":{display:"block",padding:"0 2px 0 6px"},".cm-layer":{position:"absolute",left:0,top:0,contain:"size style","& > *":{position:"absolute"}},"&light .cm-selectionBackground":{background:"#d9d9d9"},"&dark .cm-selectionBackground":{background:"#222"},"&light.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground":{background:"#d7d4f0"},"&dark.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground":{background:"#233"},".cm-cursorLayer":{pointerEvents:"none"},"&.cm-focused > .cm-scroller > .cm-cursorLayer":{animation:"steps(1) cm-blink 1.2s infinite"},"@keyframes cm-blink":{"0%":{},"50%":{opacity:0},"100%":{}},"@keyframes cm-blink2":{"0%":{},"50%":{opacity:0},"100%":{}},".cm-cursor, .cm-dropCursor":{borderLeft:"1.2px solid black",marginLeft:"-0.6px",pointerEvents:"none"},".cm-cursor":{display:"none"},"&dark .cm-cursor":{borderLeftColor:"#444"},".cm-dropCursor":{position:"absolute"},"&.cm-focused > .cm-scroller > .cm-cursorLayer .cm-cursor":{display:"block"},"&light .cm-activeLine":{backgroundColor:"#cceeff44"},"&dark .cm-activeLine":{backgroundColor:"#99eeff33"},"&light .cm-specialChar":{color:"red"},"&dark .cm-specialChar":{color:"#f78"},".cm-gutters":{flexShrink:0,display:"flex",height:"100%",boxSizing:"border-box",insetInlineStart:0,zIndex:200},"&light .cm-gutters":{backgroundColor:"#f5f5f5",color:"#6c6c6c",borderRight:"1px solid #ddd"},"&dark .cm-gutters":{backgroundColor:"#333338",color:"#ccc"},".cm-gutter":{display:"flex !important",flexDirection:"column",flexShrink:0,boxSizing:"border-box",minHeight:"100%",overflow:"hidden"},".cm-gutterElement":{boxSizing:"border-box"},".cm-lineNumbers .cm-gutterElement":{padding:"0 3px 0 5px",minWidth:"20px",textAlign:"right",whiteSpace:"nowrap"},"&light .cm-activeLineGutter":{backgroundColor:"#e2f2ff"},"&dark .cm-activeLineGutter":{backgroundColor:"#222227"},".cm-panels":{boxSizing:"border-box",position:"sticky",left:0,right:0},"&light .cm-panels":{backgroundColor:"#f5f5f5",color:"black"},"&light .cm-panels-top":{borderBottom:"1px solid #ddd"},"&light .cm-panels-bottom":{borderTop:"1px solid #ddd"},"&dark .cm-panels":{backgroundColor:"#333338",color:"white"},".cm-tab":{display:"inline-block",overflow:"hidden",verticalAlign:"bottom"},".cm-widgetBuffer":{verticalAlign:"text-top",height:"1em",width:0,display:"inline"},".cm-placeholder":{color:"#888",display:"inline-block",verticalAlign:"top"},".cm-highlightSpace:before":{content:"attr(data-display)",position:"absolute",pointerEvents:"none",color:"#888"},".cm-highlightTab":{backgroundImage:`url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" width="200" height="20"><path stroke="%23888" stroke-width="1" fill="none" d="M1 10H196L190 5M190 15L196 10M197 4L197 16"/></svg>')`,backgroundSize:"auto 100%",backgroundPosition:"right 90%",backgroundRepeat:"no-repeat"},".cm-trailingSpace":{backgroundColor:"#ff332255"},".cm-button":{verticalAlign:"middle",color:"inherit",fontSize:"70%",padding:".2em 1em",borderRadius:"1px"},"&light .cm-button":{backgroundImage:"linear-gradient(#eff1f5, #d9d9df)",border:"1px solid #888","&:active":{backgroundImage:"linear-gradient(#b4b4b4, #d0d3d6)"}},"&dark .cm-button":{backgroundImage:"linear-gradient(#393939, #111)",border:"1px solid #888","&:active":{backgroundImage:"linear-gradient(#111, #333)"}},".cm-textfield":{verticalAlign:"middle",color:"inherit",fontSize:"70%",border:"1px solid silver",padding:".2em .5em"},"&light .cm-textfield":{backgroundColor:"white"},"&dark .cm-textfield":{border:"1px solid #555",backgroundColor:"inherit"}},z0),zm=class{constructor(e,t,n,r){this.typeOver=r,this.bounds=null,this.text="";let{impreciseHead:s,impreciseAnchor:i}=e.docView;if(e.state.readOnly&&t>-1)this.newSel=null;else if(t>-1&&(this.bounds=e.docView.domBoundsAround(t,n,0))){let l=s||i?[]:zO(e),a=new Bd(l,e.state);a.readRange(this.bounds.startDOM,this.bounds.endDOM),this.text=a.text,this.newSel=$O(l,this.bounds.from)}else{let l=e.observer.selectionRange,a=s&&s.node==l.focusNode&&s.offset==l.focusOffset||!fm(e.contentDOM,l.focusNode)?e.state.selection.main.head:e.docView.posFromDOM(l.focusNode,l.focusOffset),u=i&&i.node==l.anchorNode&&i.offset==l.anchorOffset||!fm(e.contentDOM,l.anchorNode)?e.state.selection.main.anchor:e.docView.posFromDOM(l.anchorNode,l.anchorOffset);this.newSel=$.single(u,a)}}};function $0(o,e){let t,{newSel:n}=e,r=o.state.selection.main,s=o.inputState.lastKeyTime>Date.now()-100?o.inputState.lastKeyCode:-1;if(e.bounds){let{from:i,to:l}=e.bounds,a=r.from,u=null;(s===8||ee.android&&e.text.length<l-i)&&(a=r.to,u="end");let c=BO(o.state.doc.sliceString(i,l,rl),e.text,a-i,u);c&&(ee.chrome&&s==13&&c.toB==c.from+2&&e.text.slice(c.from,c.toB)==rl+rl&&c.toB--,t={from:i+c.from,to:i+c.toA,insert:ge.of(e.text.slice(c.from,c.toB).split(rl))})}else n&&(!o.hasFocus&&o.state.facet(qd)||n.main.eq(r))&&(n=null);if(!t&&!n)return!1;if(!t&&e.typeOver&&!r.empty&&n&&n.main.empty?t={from:r.from,to:r.to,insert:o.state.doc.slice(r.from,r.to)}:t&&t.from>=r.from&&t.to<=r.to&&(t.from!=r.from||t.to!=r.to)&&r.to-r.from-(t.to-t.from)<=4?t={from:r.from,to:r.to,insert:o.state.doc.slice(r.from,t.from).append(t.insert).append(o.state.doc.slice(t.to,r.to))}:(ee.mac||ee.android)&&t&&t.from==t.to&&t.from==r.head-1&&/^\. ?$/.test(t.insert.toString())&&o.contentDOM.getAttribute("autocorrect")=="off"?(n&&t.insert.length==2&&(n=$.single(n.main.anchor-1,n.main.head-1)),t={from:r.from,to:r.to,insert:ge.of([" "])}):ee.chrome&&t&&t.from==t.to&&t.from==r.head&&t.insert.toString()==`
|
|
27
|
-
`&&o.lineWrapping&&(n&&(n=$.single(n.main.anchor-1,n.main.head-1)),t={from:r.from,to:r.to,insert:ge.of([" "])}),t){let i=o.state;if(ee.ios&&o.inputState.flushIOSKey(o)||ee.android&&(t.from==r.from&&t.to==r.to&&t.insert.length==1&&t.insert.lines==2&&il(o.contentDOM,"Enter",13)||(t.from==r.from-1&&t.to==r.to&&t.insert.length==0||s==8&&t.insert.length<t.to-t.from)&&il(o.contentDOM,"Backspace",8)||t.from==r.from&&t.to==r.to+1&&t.insert.length==0&&il(o.contentDOM,"Delete",46)))return!0;let l=t.insert.toString();if(o.state.facet(g0).some(c=>c(o,t.from,t.to,l)))return!0;o.inputState.composing>=0&&o.inputState.composing++;let a;if(t.from>=r.from&&t.to<=r.to&&t.to-t.from>=(r.to-r.from)/3&&(!n||n.main.empty&&n.main.from==t.from+t.insert.length)&&o.inputState.composing<0){let c=r.from<t.from?i.sliceDoc(r.from,t.from):"",d=r.to>t.to?i.sliceDoc(t.to,r.to):"";a=i.replaceSelection(o.state.toText(c+t.insert.sliceString(0,void 0,o.state.lineBreak)+d))}else{let c=i.changes(t),d=n&&n.main.to<=c.newLength?n.main:void 0;if(i.selection.ranges.length>1&&o.inputState.composing>=0&&t.to<=r.to&&t.to>=r.to-10){let p=o.state.sliceDoc(t.from,t.to),f=M0(o)||o.state.doc.lineAt(r.head),h=r.to-t.to,g=r.to-r.from;a=i.changeByRange(m=>{if(m.from==r.from&&m.to==r.to)return{changes:c,range:d||m.map(c)};let y=m.to-h,w=y-p.length;if(m.to-m.from!=g||o.state.sliceDoc(w,y)!=p||f&&m.to>=f.from&&m.from<=f.to)return{range:m};let v=i.changes({from:w,to:y,insert:t.insert}),x=m.to-r.to;return{changes:v,range:d?$.range(Math.max(0,d.anchor+x),Math.max(0,d.head+x)):m.map(v)}})}else a={changes:c,selection:d&&i.selection.replaceRange(d)}}let u="input.type";return(o.composing||o.inputState.compositionPendingChange&&o.inputState.compositionEndedAt>Date.now()-50)&&(o.inputState.compositionPendingChange=!1,u+=".compose",o.inputState.compositionFirstChange&&(u+=".start",o.inputState.compositionFirstChange=!1)),o.dispatch(a,{scrollIntoView:!0,userEvent:u}),!0}else if(n&&!n.main.eq(r)){let i=!1,l="select";return o.inputState.lastSelectionTime>Date.now()-50&&(o.inputState.lastSelectionOrigin=="select"&&(i=!0),l=o.inputState.lastSelectionOrigin),o.dispatch({selection:n,scrollIntoView:i,userEvent:l}),!0}else return!1}function BO(o,e,t,n){let r=Math.min(o.length,e.length),s=0;for(;s<r&&o.charCodeAt(s)==e.charCodeAt(s);)s++;if(s==r&&o.length==e.length)return null;let i=o.length,l=e.length;for(;i>0&&l>0&&o.charCodeAt(i-1)==e.charCodeAt(l-1);)i--,l--;if(n=="end"){let a=Math.max(0,s-Math.min(i,l));t-=i+a-s}if(i<s&&o.length<e.length){let a=t<=s&&t>=i?s-t:0;s-=a,l=s+(l-i),i=s}else if(l<s){let a=t<=s&&t>=l?s-t:0;s-=a,i=s+(i-l),l=s}return{from:s,toA:i,toB:l}}function zO(o){let e=[];if(o.root.activeElement!=o.contentDOM)return e;let{anchorNode:t,anchorOffset:n,focusNode:r,focusOffset:s}=o.observer.selectionRange;return t&&(e.push(new zd(t,n)),(r!=t||s!=n)&&e.push(new zd(r,s))),e}function $O(o,e){if(o.length==0)return null;let t=o[0].pos,n=o.length==2?o[1].pos:t;return t>-1&&n>-1?$.single(t+e,n+e):null}var WO={childList:!0,characterData:!0,subtree:!0,attributes:!0,characterDataOldValue:!0},dm=ee.ie&&ee.ie_version<=11,$m=class{constructor(e){this.view=e,this.active=!1,this.selectionRange=new hm,this.selectionChanged=!1,this.delayedFlush=-1,this.resizeTimeout=-1,this.queue=[],this.delayedAndroidKey=null,this.flushingAndroidKey=-1,this.lastChange=0,this.scrollTargets=[],this.intersection=null,this.resizeScroll=null,this.resizeContent=null,this.intersecting=!1,this.gapIntersection=null,this.gaps=[],this.parentCheck=-1,this.dom=e.contentDOM,this.observer=new MutationObserver(t=>{for(let n of t)this.queue.push(n);(ee.ie&&ee.ie_version<=11||ee.ios&&e.composing)&&t.some(n=>n.type=="childList"&&n.removedNodes.length||n.type=="characterData"&&n.oldValue.length>n.target.nodeValue.length)?this.flushSoon():this.flush()}),dm&&(this.onCharData=t=>{this.queue.push({target:t.target,type:"characterData",oldValue:t.prevValue}),this.flushSoon()}),this.onSelectionChange=this.onSelectionChange.bind(this),this.onResize=this.onResize.bind(this),this.onPrint=this.onPrint.bind(this),this.onScroll=this.onScroll.bind(this),typeof ResizeObserver=="function"&&(this.resizeScroll=new ResizeObserver(()=>{var t;((t=this.view.docView)===null||t===void 0?void 0:t.lastUpdate)<Date.now()-75&&this.onResize()}),this.resizeScroll.observe(e.scrollDOM),this.resizeContent=new ResizeObserver(()=>this.view.requestMeasure()),this.resizeContent.observe(e.contentDOM)),this.addWindowListeners(this.win=e.win),this.start(),typeof IntersectionObserver=="function"&&(this.intersection=new IntersectionObserver(t=>{this.parentCheck<0&&(this.parentCheck=setTimeout(this.listenForScroll.bind(this),1e3)),t.length>0&&t[t.length-1].intersectionRatio>0!=this.intersecting&&(this.intersecting=!this.intersecting,this.intersecting!=this.view.inView&&this.onScrollChanged(document.createEvent("Event")))},{threshold:[0,.001]}),this.intersection.observe(this.dom),this.gapIntersection=new IntersectionObserver(t=>{t.length>0&&t[t.length-1].intersectionRatio>0&&this.onScrollChanged(document.createEvent("Event"))},{})),this.listenForScroll(),this.readSelectionRange()}onScrollChanged(e){this.view.inputState.runScrollHandlers(this.view,e),this.intersecting&&this.view.measure()}onScroll(e){this.intersecting&&this.flush(!1),this.onScrollChanged(e)}onResize(){this.resizeTimeout<0&&(this.resizeTimeout=setTimeout(()=>{this.resizeTimeout=-1,this.view.requestMeasure()},50))}onPrint(){this.view.viewState.printing=!0,this.view.measure(),setTimeout(()=>{this.view.viewState.printing=!1,this.view.requestMeasure()},500)}updateGaps(e){if(this.gapIntersection&&(e.length!=this.gaps.length||this.gaps.some((t,n)=>t!=e[n]))){this.gapIntersection.disconnect();for(let t of e)this.gapIntersection.observe(t);this.gaps=e}}onSelectionChange(e){let t=this.selectionChanged;if(!this.readSelectionRange()||this.delayedAndroidKey)return;let{view:n}=this,r=this.selectionRange;if(n.state.facet(qd)?n.root.activeElement!=this.dom:!kd(n.dom,r))return;let s=r.anchorNode&&n.docView.nearest(r.anchorNode);if(s&&s.ignoreEvent(e)){t||(this.selectionChanged=!1);return}(ee.ie&&ee.ie_version<=11||ee.android&&ee.chrome)&&!n.state.selection.main.empty&&r.focusNode&&Hd(r.focusNode,r.focusOffset,r.anchorNode,r.anchorOffset)?this.flushSoon():this.flush(!1)}readSelectionRange(){let{view:e}=this,t=ee.safari&&e.root.nodeType==11&&WA(this.dom.ownerDocument)==this.dom&&_O(this.view)||Nd(e.root);if(!t||this.selectionRange.eq(t))return!1;let n=kd(this.dom,t);return n&&!this.selectionChanged&&e.inputState.lastFocusTime>Date.now()-200&&e.inputState.lastTouchTime<Date.now()-300&&qA(this.dom,t)?(this.view.inputState.lastFocusTime=0,e.docView.updateSelection(),!1):(this.selectionRange.setRange(t),n&&(this.selectionChanged=!0),!0)}setSelectionRange(e,t){this.selectionRange.set(e.node,e.offset,t.node,t.offset),this.selectionChanged=!1}clearSelectionRange(){this.selectionRange.set(null,0,null,0)}listenForScroll(){this.parentCheck=-1;let e=0,t=null;for(let n=this.dom;n;)if(n.nodeType==1)!t&&e<this.scrollTargets.length&&this.scrollTargets[e]==n?e++:t||(t=this.scrollTargets.slice(0,e)),t&&t.push(n),n=n.assignedSlot||n.parentNode;else if(n.nodeType==11)n=n.host;else break;if(e<this.scrollTargets.length&&!t&&(t=this.scrollTargets.slice(0,e)),t){for(let n of this.scrollTargets)n.removeEventListener("scroll",this.onScroll);for(let n of this.scrollTargets=t)n.addEventListener("scroll",this.onScroll)}}ignore(e){if(!this.active)return e();try{return this.stop(),e()}finally{this.start(),this.clear()}}start(){this.active||(this.observer.observe(this.dom,WO),dm&&this.dom.addEventListener("DOMCharacterDataModified",this.onCharData),this.active=!0)}stop(){this.active&&(this.active=!1,this.observer.disconnect(),dm&&this.dom.removeEventListener("DOMCharacterDataModified",this.onCharData))}clear(){this.processRecords(),this.queue.length=0,this.selectionChanged=!1}delayAndroidKey(e,t){var n;if(!this.delayedAndroidKey){let r=()=>{let s=this.delayedAndroidKey;s&&(this.clearDelayedAndroidKey(),this.view.inputState.lastKeyCode=s.keyCode,this.view.inputState.lastKeyTime=Date.now(),!this.flush()&&s.force&&il(this.dom,s.key,s.keyCode))};this.flushingAndroidKey=this.view.win.requestAnimationFrame(r)}(!this.delayedAndroidKey||e=="Enter")&&(this.delayedAndroidKey={key:e,keyCode:t,force:this.lastChange<Date.now()-50||!!(!((n=this.delayedAndroidKey)===null||n===void 0)&&n.force)})}clearDelayedAndroidKey(){this.win.cancelAnimationFrame(this.flushingAndroidKey),this.delayedAndroidKey=null,this.flushingAndroidKey=-1}flushSoon(){this.delayedFlush<0&&(this.delayedFlush=this.view.win.requestAnimationFrame(()=>{this.delayedFlush=-1,this.flush()}))}forceFlush(){this.delayedFlush>=0&&(this.view.win.cancelAnimationFrame(this.delayedFlush),this.delayedFlush=-1),this.flush()}pendingRecords(){for(let e of this.observer.takeRecords())this.queue.push(e);return this.queue}processRecords(){let e=this.pendingRecords();e.length&&(this.queue=[]);let t=-1,n=-1,r=!1;for(let s of e){let i=this.readMutation(s);i&&(i.typeOver&&(r=!0),t==-1?{from:t,to:n}=i:(t=Math.min(i.from,t),n=Math.max(i.to,n)))}return{from:t,to:n,typeOver:r}}readChange(){let{from:e,to:t,typeOver:n}=this.processRecords(),r=this.selectionChanged&&kd(this.dom,this.selectionRange);return e<0&&!r?null:(e>-1&&(this.lastChange=Date.now()),this.view.inputState.lastFocusTime=0,this.selectionChanged=!1,new zm(this.view,e,t,n))}flush(e=!0){if(this.delayedFlush>=0||this.delayedAndroidKey)return!1;e&&this.readSelectionRange();let t=this.readChange();if(!t)return!1;let n=this.view.state,r=$0(this.view,t);return this.view.state==n&&this.view.update([]),r}readMutation(e){let t=this.view.docView.nearest(e.target);if(!t||t.ignoreMutation(e))return null;if(t.markDirty(e.type=="attributes"),e.type=="attributes"&&(t.flags|=4),e.type=="childList"){let n=qw(t,e.previousSibling||e.target.previousSibling,-1),r=qw(t,e.nextSibling||e.target.nextSibling,1);return{from:n?t.posAfter(n):t.posAtStart,to:r?t.posBefore(r):t.posAtEnd,typeOver:!1}}else return e.type=="characterData"?{from:t.posAtStart,to:t.posAtEnd,typeOver:e.target.nodeValue==e.oldValue}:null}setWindow(e){e!=this.win&&(this.removeWindowListeners(this.win),this.win=e,this.addWindowListeners(this.win))}addWindowListeners(e){e.addEventListener("resize",this.onResize),e.addEventListener("beforeprint",this.onPrint),e.addEventListener("scroll",this.onScroll),e.document.addEventListener("selectionchange",this.onSelectionChange)}removeWindowListeners(e){e.removeEventListener("scroll",this.onScroll),e.removeEventListener("resize",this.onResize),e.removeEventListener("beforeprint",this.onPrint),e.document.removeEventListener("selectionchange",this.onSelectionChange)}destroy(){var e,t,n,r;this.stop(),(e=this.intersection)===null||e===void 0||e.disconnect(),(t=this.gapIntersection)===null||t===void 0||t.disconnect(),(n=this.resizeScroll)===null||n===void 0||n.disconnect(),(r=this.resizeContent)===null||r===void 0||r.disconnect();for(let s of this.scrollTargets)s.removeEventListener("scroll",this.onScroll);this.removeWindowListeners(this.win),clearTimeout(this.parentCheck),clearTimeout(this.resizeTimeout),this.win.cancelAnimationFrame(this.delayedFlush),this.win.cancelAnimationFrame(this.flushingAndroidKey)}};function qw(o,e,t){for(;e;){let n=Me.get(e);if(n&&n.parent==o)return n;let r=e.parentNode;e=r!=o.dom?r:t>0?e.nextSibling:e.previousSibling}return null}function _O(o){let e=null;function t(a){a.preventDefault(),a.stopImmediatePropagation(),e=a.getTargetRanges()[0]}if(o.contentDOM.addEventListener("beforeinput",t,!0),o.dom.ownerDocument.execCommand("indent"),o.contentDOM.removeEventListener("beforeinput",t,!0),!e)return null;let n=e.startContainer,r=e.startOffset,s=e.endContainer,i=e.endOffset,l=o.docView.domAtPos(o.state.selection.main.anchor);return Hd(l.node,l.offset,s,i)&&([n,r,s,i]=[s,i,n,r]),{anchorNode:n,anchorOffset:r,focusNode:s,focusOffset:i}}var ae=class{constructor(e={}){this.plugins=[],this.pluginMap=new Map,this.editorAttrs={},this.contentAttrs={},this.bidiCache=[],this.destroyed=!1,this.updateState=2,this.measureScheduled=-1,this.measureRequests=[],this.contentDOM=document.createElement("div"),this.scrollDOM=document.createElement("div"),this.scrollDOM.tabIndex=-1,this.scrollDOM.className="cm-scroller",this.scrollDOM.appendChild(this.contentDOM),this.announceDOM=document.createElement("div"),this.announceDOM.style.cssText="position: fixed; top: -10000px",this.announceDOM.setAttribute("aria-live","polite"),this.dom=document.createElement("div"),this.dom.appendChild(this.announceDOM),this.dom.appendChild(this.scrollDOM),this._dispatch=e.dispatch||(t=>this.update([t])),this.dispatch=this.dispatch.bind(this),this._root=e.root||GA(e.parent)||document,this.viewState=new Ud(e.state||xe.create(e)),this.plugins=this.state.facet(Ja).map(t=>new Za(t));for(let t of this.plugins)t.update(this);this.observer=new $m(this),this.inputState=new Rm(this),this.inputState.ensureHandlers(this,this.plugins),this.docView=new Wd(this),this.mountStyles(),this.updateAttrs(),this.updateState=0,this.requestMeasure(),e.parent&&e.parent.appendChild(this.dom)}get state(){return this.viewState.state}get viewport(){return this.viewState.viewport}get visibleRanges(){return this.viewState.visibleRanges}get inView(){return this.viewState.inView}get composing(){return this.inputState.composing>0}get compositionStarted(){return this.inputState.composing>=0}get root(){return this._root}get win(){return this.dom.ownerDocument.defaultView||window}dispatch(...e){let t=e.length==1&&e[0]instanceof _e?e[0]:this.state.update(...e);this._dispatch(t,this)}update(e){if(this.updateState!=0)throw new Error("Calls to EditorView.update are not allowed while an update is in progress");let t=!1,n=!1,r,s=this.state;for(let p of e){if(p.startState!=s)throw new RangeError("Trying to update state with a transaction that doesn't start from the previous state.");s=p.state}if(this.destroyed){this.viewState.state=s;return}let i=this.hasFocus,l=0,a=null;e.some(p=>p.annotation(N0))?(this.inputState.notifiedFocused=i,l=1):i!=this.inputState.notifiedFocused&&(this.inputState.notifiedFocused=i,a=H0(s,i),a||(l=1));let u=this.observer.delayedAndroidKey,c=null;if(u?(this.observer.clearDelayedAndroidKey(),c=this.observer.readChange(),(c&&!this.state.doc.eq(s.doc)||!this.state.selection.eq(s.selection))&&(c=null)):this.observer.clear(),s.facet(xe.phrases)!=this.state.facet(xe.phrases))return this.setState(s);r=al.create(this,s,e),r.flags|=l;let d=this.viewState.scrollTarget;try{this.updateState=2;for(let p of e){if(d&&(d=d.map(p.changes)),p.scrollIntoView){let{main:f}=p.state.selection;d=new ll(f.empty?f:$.cursor(f.head,f.head>f.anchor?-1:1))}for(let f of p.effects)f.is(kw)&&(d=f.value)}this.viewState.update(r,d),this.bidiCache=ul.update(this.bidiCache,r.changes),r.empty||(this.updatePlugins(r),this.inputState.update(r)),t=this.docView.update(r),this.state.facet(Xa)!=this.styleModules&&this.mountStyles(),n=this.updateAttrs(),this.showAnnouncements(e),this.docView.updateSelection(t,e.some(p=>p.isUserEvent("select.pointer")))}finally{this.updateState=0}if(r.startState.facet(Dd)!=r.state.facet(Dd)&&(this.viewState.mustMeasureContent=!0),(t||n||d||this.viewState.mustEnforceCursorAssoc||this.viewState.mustMeasureContent)&&this.requestMeasure(),!r.empty)for(let p of this.state.facet(Cm))p(r);(a||c)&&Promise.resolve().then(()=>{a&&this.state==a.startState&&this.dispatch(a),c&&!$0(this,c)&&u.force&&il(this.contentDOM,u.key,u.keyCode)})}setState(e){if(this.updateState!=0)throw new Error("Calls to EditorView.setState are not allowed while an update is in progress");if(this.destroyed){this.viewState.state=e;return}this.updateState=2;let t=this.hasFocus;try{for(let n of this.plugins)n.destroy(this);this.viewState=new Ud(e),this.plugins=e.facet(Ja).map(n=>new Za(n)),this.pluginMap.clear();for(let n of this.plugins)n.update(this);this.docView=new Wd(this),this.inputState.ensureHandlers(this,this.plugins),this.mountStyles(),this.updateAttrs(),this.bidiCache=[]}finally{this.updateState=0}t&&this.focus(),this.requestMeasure()}updatePlugins(e){let t=e.startState.facet(Ja),n=e.state.facet(Ja);if(t!=n){let r=[];for(let s of n){let i=t.indexOf(s);if(i<0)r.push(new Za(s));else{let l=this.plugins[i];l.mustUpdate=e,r.push(l)}}for(let s of this.plugins)s.mustUpdate!=e&&s.destroy(this);this.plugins=r,this.pluginMap.clear(),this.inputState.ensureHandlers(this,this.plugins)}else for(let r of this.plugins)r.mustUpdate=e;for(let r=0;r<this.plugins.length;r++)this.plugins[r].update(this)}measure(e=!0){if(this.destroyed)return;this.measureScheduled>-1&&this.win.cancelAnimationFrame(this.measureScheduled),this.measureScheduled=0,e&&this.observer.forceFlush();let t=null,n=this.scrollDOM,{scrollTop:r}=n,{scrollAnchorPos:s,scrollAnchorHeight:i}=this.viewState;r!=this.viewState.scrollTop&&(i=-1),this.viewState.scrollAnchorHeight=-1;try{for(let l=0;;l++){if(i<0)if(o0(n))s=-1,i=this.viewState.heightMap.height;else{let f=this.viewState.scrollAnchorAt(r);s=f.from,i=f.top}this.updateState=1;let a=this.viewState.measure(this);if(!a&&!this.measureRequests.length&&this.viewState.scrollTarget==null)break;if(l>5){console.warn(this.measureRequests.length?"Measure loop restarted more than 5 times":"Viewport failed to stabilize");break}let u=[];a&4||([this.measureRequests,u]=[u,this.measureRequests]);let c=u.map(f=>{try{return f.read(this)}catch(h){return So(this.state,h),jw}}),d=al.create(this,this.state,[]),p=!1;d.flags|=a,t?t.flags|=a:t=d,this.updateState=2,d.empty||(this.updatePlugins(d),this.inputState.update(d),this.updateAttrs(),p=this.docView.update(d));for(let f=0;f<u.length;f++)if(c[f]!=jw)try{let h=u[f];h.write&&h.write(c[f],this)}catch(h){So(this.state,h)}if(p&&this.docView.updateSelection(!0),!d.viewportChanged&&this.measureRequests.length==0){if(this.viewState.editorHeight)if(this.viewState.scrollTarget){this.docView.scrollIntoView(this.viewState.scrollTarget),this.viewState.scrollTarget=null;continue}else{let h=(s<0?this.viewState.heightMap.height:this.viewState.lineBlockAt(s).top)-i;if(h>1||h<-1){r=n.scrollTop=r+h,i=-1;continue}}break}}}finally{this.updateState=0,this.measureScheduled=-1}if(t&&!t.empty)for(let l of this.state.facet(Cm))l(t)}get themeClasses(){return Vm+" "+(this.state.facet(Fm)?B0:V0)+" "+this.state.facet(Dd)}updateAttrs(){let e=Qw(this,v0,{class:"cm-editor"+(this.hasFocus?" cm-focused ":" ")+this.themeClasses}),t={spellcheck:"false",autocorrect:"off",autocapitalize:"off",translate:"no",contenteditable:this.state.facet(qd)?"true":"false",class:"cm-content",style:`${ee.tabSize}: ${this.state.tabSize}`,role:"textbox","aria-multiline":"true"};this.state.readOnly&&(t["aria-readonly"]="true"),Qw(this,Jm,t);let n=this.observer.ignore(()=>{let r=xm(this.contentDOM,this.contentAttrs,t),s=xm(this.dom,this.editorAttrs,e);return r||s});return this.editorAttrs=e,this.contentAttrs=t,n}showAnnouncements(e){let t=!0;for(let n of e)for(let r of n.effects)if(r.is(ae.announce)){t&&(this.announceDOM.textContent=""),t=!1;let s=this.announceDOM.appendChild(document.createElement("div"));s.textContent=r.value}}mountStyles(){this.styleModules=this.state.facet(Xa),Pn.mount(this.root,this.styleModules.concat(VO).reverse())}readMeasured(){if(this.updateState==2)throw new Error("Reading the editor layout isn't allowed during an update");this.updateState==0&&this.measureScheduled>-1&&this.measure(!1)}requestMeasure(e){if(this.measureScheduled<0&&(this.measureScheduled=this.win.requestAnimationFrame(()=>this.measure())),e){if(this.measureRequests.indexOf(e)>-1)return;if(e.key!=null){for(let t=0;t<this.measureRequests.length;t++)if(this.measureRequests[t].key===e.key){this.measureRequests[t]=e;return}}this.measureRequests.push(e)}}plugin(e){let t=this.pluginMap.get(e);return(t===void 0||t&&t.spec!=e)&&this.pluginMap.set(e,t=this.plugins.find(n=>n.spec==e)||null),t&&t.update(this).value}get documentTop(){return this.contentDOM.getBoundingClientRect().top+this.viewState.paddingTop}get documentPadding(){return{top:this.viewState.paddingTop,bottom:this.viewState.paddingBottom}}elementAtHeight(e){return this.readMeasured(),this.viewState.elementAtHeight(e)}lineBlockAtHeight(e){return this.readMeasured(),this.viewState.lineBlockAtHeight(e)}get viewportLineBlocks(){return this.viewState.viewportLines}lineBlockAt(e){return this.viewState.lineBlockAt(e)}get contentHeight(){return this.viewState.contentHeight}moveByChar(e,t,n){return cm(this,e,Nw(this,e,t,n))}moveByGroup(e,t){return cm(this,e,Nw(this,e,t,n=>yO(this,e.head,n)))}moveToLineBoundary(e,t,n=!0){return bO(this,e,t,n)}moveVertically(e,t,n){return cm(this,e,xO(this,e,t,n))}domAtPos(e){return this.docView.domAtPos(e)}posAtDOM(e,t=0){return this.docView.posFromDOM(e,t)}posAtCoords(e,t=!0){return this.readMeasured(),D0(this,e,t)}coordsAtPos(e,t=1){this.readMeasured();let n=this.docView.coordsAt(e,t);if(!n||n.left==n.right)return n;let r=this.state.doc.lineAt(e),s=this.bidiSpans(r),i=s[kr.find(s,e-r.from,-1,t)];return qm(n,i.dir==Ye.LTR==t>0)}coordsForChar(e){return this.readMeasured(),this.docView.coordsForChar(e)}get defaultCharacterWidth(){return this.viewState.heightOracle.charWidth}get defaultLineHeight(){return this.viewState.heightOracle.lineHeight}get textDirection(){return this.viewState.defaultTextDirection}textDirectionAt(e){return!this.state.facet(y0)||e<this.viewport.from||e>this.viewport.to?this.textDirection:(this.readMeasured(),this.docView.textDirectionAt(e))}get lineWrapping(){return this.viewState.heightOracle.lineWrapping}bidiSpans(e){if(e.length>KO)return T0(e.length);let t=this.textDirectionAt(e.from);for(let r of this.bidiCache)if(r.from==e.from&&r.dir==t)return r.order;let n=sO(e.text,t);return this.bidiCache.push(new ul(e.from,e.to,t,n)),n}get hasFocus(){var e;return(this.dom.ownerDocument.hasFocus()||ee.safari&&((e=this.inputState)===null||e===void 0?void 0:e.lastContextMenu)>Date.now()-3e4)&&this.root.activeElement==this.contentDOM}focus(){this.observer.ignore(()=>{t0(this.contentDOM),this.docView.updateSelection()})}setRoot(e){this._root!=e&&(this._root=e,this.observer.setWindow((e.nodeType==9?e:e.ownerDocument).defaultView||window),this.mountStyles())}destroy(){for(let e of this.plugins)e.destroy(this);this.plugins=[],this.inputState.destroy(),this.dom.remove(),this.observer.destroy(),this.measureScheduled>-1&&this.win.cancelAnimationFrame(this.measureScheduled),this.destroyed=!0}static scrollIntoView(e,t={}){return kw.of(new ll(typeof e=="number"?$.cursor(e):e,t.y,t.x,t.yMargin,t.xMargin))}static domEventHandlers(e){return Ln.define(()=>({}),{eventHandlers:e})}static theme(e,t){let n=Pn.newName(),r=[Dd.of(n),Xa.of(Bm(`.${n}`,e))];return t&&t.dark&&r.push(Fm.of(!0)),r}static baseTheme(e){return Os.lowest(Xa.of(Bm("."+Vm,e,z0)))}static findFromDOM(e){var t;let n=e.querySelector(".cm-content"),r=n&&Me.get(n)||Me.get(e);return((t=r==null?void 0:r.rootView)===null||t===void 0?void 0:t.view)||null}};ae.styleModule=Xa;ae.inputHandler=g0;ae.focusChangeEffect=b0;ae.perLineTextDirection=y0;ae.exceptionSink=m0;ae.updateListener=Cm;ae.editable=qd;ae.mouseSelectionStyle=h0;ae.dragMovesSelection=f0;ae.clickAddsSelectionRange=p0;ae.decorations=nu;ae.atomicRanges=Xm;ae.scrollMargins=C0;ae.darkTheme=Fm;ae.contentAttributes=Jm;ae.editorAttributes=v0;ae.lineWrapping=ae.contentAttributes.of({class:"cm-lineWrapping"});ae.announce=Ne.define();var KO=4096,jw={},ul=class{constructor(e,t,n,r){this.from=e,this.to=t,this.dir=n,this.order=r}static update(e,t){if(t.empty)return e;let n=[],r=e.length?e[e.length-1].dir:Ye.LTR;for(let s=Math.max(0,e.length-10);s<e.length;s++){let i=e[s];i.dir==r&&!t.touchesRange(i.from,i.to)&&n.push(new ul(t.mapPos(i.from,1),t.mapPos(i.to,-1),i.dir,i.order))}return n}};function Qw(o,e,t){for(let n=o.state.facet(e),r=n.length-1;r>=0;r--){let s=n[r],i=typeof s=="function"?s(o):s;i&&ym(i,t)}return t}var UO=ee.mac?"mac":ee.windows?"win":ee.linux?"linux":"key";function GO(o,e){let t=o.split(/-(?!$)/),n=t[t.length-1];n=="Space"&&(n=" ");let r,s,i,l;for(let a=0;a<t.length-1;++a){let u=t[a];if(/^(cmd|meta|m)$/i.test(u))l=!0;else if(/^a(lt)?$/i.test(u))r=!0;else if(/^(c|ctrl|control)$/i.test(u))s=!0;else if(/^s(hift)?$/i.test(u))i=!0;else if(/^mod$/i.test(u))e=="mac"?l=!0:s=!0;else throw new Error("Unrecognized modifier name: "+u)}return r&&(n="Alt-"+n),s&&(n="Ctrl-"+n),l&&(n="Meta-"+n),i&&(n="Shift-"+n),n}function Pd(o,e,t){return e.altKey&&(o="Alt-"+o),e.ctrlKey&&(o="Ctrl-"+o),e.metaKey&&(o="Meta-"+o),t!==!1&&e.shiftKey&&(o="Shift-"+o),o}var qO=Os.default(ae.domEventHandlers({keydown(o,e){return XO(jO(e.state),o,e,"editor")}})),Ws=ie.define({enables:qO}),Jw=new WeakMap;function jO(o){let e=o.facet(Ws),t=Jw.get(e);return t||Jw.set(e,t=JO(e.reduce((n,r)=>n.concat(r),[]))),t}var Pr=null,QO=4e3;function JO(o,e=UO){let t=Object.create(null),n=Object.create(null),r=(i,l)=>{let a=n[i];if(a==null)n[i]=l;else if(a!=l)throw new Error("Key binding "+i+" is used both as a regular binding and as a multi-stroke prefix")},s=(i,l,a,u,c)=>{var d,p;let f=t[i]||(t[i]=Object.create(null)),h=l.split(/ (?!$)/).map(y=>GO(y,e));for(let y=1;y<h.length;y++){let w=h.slice(0,y).join(" ");r(w,!0),f[w]||(f[w]={preventDefault:!0,stopPropagation:!1,run:[v=>{let x=Pr={view:v,prefix:w,scope:i};return setTimeout(()=>{Pr==x&&(Pr=null)},QO),!0}]})}let g=h.join(" ");r(g,!1);let m=f[g]||(f[g]={preventDefault:!1,stopPropagation:!1,run:((p=(d=f._any)===null||d===void 0?void 0:d.run)===null||p===void 0?void 0:p.slice())||[]});a&&m.run.push(a),u&&(m.preventDefault=!0),c&&(m.stopPropagation=!0)};for(let i of o){let l=i.scope?i.scope.split(" "):["editor"];if(i.any)for(let u of l){let c=t[u]||(t[u]=Object.create(null));c._any||(c._any={preventDefault:!1,stopPropagation:!1,run:[]});for(let d in c)c[d].run.push(i.any)}let a=i[e]||i.key;if(a)for(let u of l)s(u,a,i.run,i.preventDefault,i.stopPropagation),i.shift&&s(u,"Shift-"+a,i.shift,i.preventDefault,i.stopPropagation)}return t}function XO(o,e,t,n){let r=Cw(e),s=xo(r,0),i=ks(s)==r.length&&r!=" ",l="",a=!1,u=!1,c=!1;Pr&&Pr.view==t&&Pr.scope==n&&(l=Pr.prefix+" ",k0.indexOf(e.keyCode)<0&&(u=!0,Pr=null));let d=new Set,p=m=>{if(m){for(let y of m.run)if(!d.has(y)&&(d.add(y),y(t,e)))return m.stopPropagation&&(c=!0),!0;m.preventDefault&&(m.stopPropagation&&(c=!0),u=!0)}return!1},f=o[n],h,g;return f&&(p(f[l+Pd(r,e,!i)])?a=!0:i&&(e.altKey||e.metaKey||e.ctrlKey)&&!(ee.windows&&e.ctrlKey&&e.altKey)&&(h=Qo[e.keyCode])&&h!=r?(p(f[l+Pd(h,e,!0)])||e.shiftKey&&(g=nl[e.keyCode])!=r&&g!=h&&p(f[l+Pd(g,e,!1)]))&&(a=!0):i&&e.shiftKey&&p(f[l+Pd(r,e,!0)])&&(a=!0),!a&&p(f._any)&&(a=!0)),u&&(a=!0),a&&c&&e.stopPropagation(),a}var $s=class{constructor(e,t,n,r,s){this.className=e,this.left=t,this.top=n,this.width=r,this.height=s}draw(){let e=document.createElement("div");return e.className=this.className,this.adjust(e),e}update(e,t){return t.className!=this.className?!1:(this.adjust(e),!0)}adjust(e){e.style.left=this.left+"px",e.style.top=this.top+"px",this.width!=null&&(e.style.width=this.width+"px"),e.style.height=this.height+"px"}eq(e){return this.left==e.left&&this.top==e.top&&this.width==e.width&&this.height==e.height&&this.className==e.className}static forRange(e,t,n){if(n.empty){let r=e.coordsAtPos(n.head,n.assoc||1);if(!r)return[];let s=W0(e);return[new $s(t,r.left-s.left,r.top-s.top,null,r.bottom-r.top)]}else return YO(e,t,n)}};function W0(o){let e=o.scrollDOM.getBoundingClientRect();return{left:(o.textDirection==Ye.LTR?e.left:e.right-o.scrollDOM.clientWidth)-o.scrollDOM.scrollLeft,top:e.top-o.scrollDOM.scrollTop}}function Xw(o,e,t){let n=$.cursor(e);return{from:Math.max(t.from,o.moveToLineBoundary(n,!1,!0).from),to:Math.min(t.to,o.moveToLineBoundary(n,!0,!0).from),type:Ze.Text}}function YO(o,e,t){if(t.to<=o.viewport.from||t.from>=o.viewport.to)return[];let n=Math.max(t.from,o.viewport.from),r=Math.min(t.to,o.viewport.to),s=o.textDirection==Ye.LTR,i=o.contentDOM,l=i.getBoundingClientRect(),a=W0(o),u=i.querySelector(".cm-line"),c=u&&window.getComputedStyle(u),d=l.left+(c?parseInt(c.paddingLeft)+Math.min(0,parseInt(c.textIndent)):0),p=l.right-(c?parseInt(c.paddingRight):0),f=Mm(o,n),h=Mm(o,r),g=f.type==Ze.Text?f:null,m=h.type==Ze.Text?h:null;if(g&&(o.lineWrapping||f.widgetLineBreaks)&&(g=Xw(o,n,g)),m&&(o.lineWrapping||h.widgetLineBreaks)&&(m=Xw(o,r,m)),g&&m&&g.from==m.from)return w(v(t.from,t.to,g));{let S=g?v(t.from,null,g):x(f,!1),b=m?v(null,t.to,m):x(h,!0),C=[];return(g||f).to<(m||h).from-(g&&m?1:0)||f.widgetLineBreaks>1&&S.bottom+o.defaultLineHeight/2<b.top?C.push(y(d,S.bottom,p,b.top)):S.bottom<b.top&&o.elementAtHeight((S.bottom+b.top)/2).type==Ze.Text&&(S.bottom=b.top=(S.bottom+b.top)/2),w(S).concat(C).concat(w(b))}function y(S,b,C,M){return new $s(e,S-a.left,b-a.top-.01,C-S,M-b+.01)}function w({top:S,bottom:b,horizontal:C}){let M=[];for(let D=0;D<C.length;D+=2)M.push(y(C[D],S,C[D+1],b));return M}function v(S,b,C){let M=1e9,D=-1e9,E=[];function O(L,N,A,k,I){let F=o.coordsAtPos(L,L==C.to?-2:2),H=o.coordsAtPos(A,A==C.from?2:-2);!F||!H||(M=Math.min(F.top,H.top,M),D=Math.max(F.bottom,H.bottom,D),I==Ye.LTR?E.push(s&&N?d:F.left,s&&k?p:H.right):E.push(!s&&k?d:H.left,!s&&N?p:F.right))}let T=S!=null?S:C.from,P=b!=null?b:C.to;for(let L of o.visibleRanges)if(L.to>T&&L.from<P)for(let N=Math.max(L.from,T),A=Math.min(L.to,P);;){let k=o.state.doc.lineAt(N);for(let I of o.bidiSpans(k)){let F=I.from+k.from,H=I.to+k.from;if(F>=A)break;H>N&&O(Math.max(F,N),S==null&&F<=T,Math.min(H,A),b==null&&H>=P,I.dir)}if(N=k.to+1,N>=A)break}return E.length==0&&O(T,S==null,P,b==null,o.textDirection),{top:M,bottom:D,horizontal:E}}function x(S,b){let C=l.top+(b?S.top:S.bottom);return{top:C,bottom:C,horizontal:[]}}}function ZO(o,e){return o.constructor==e.constructor&&o.eq(e)}var Wm=class{constructor(e,t){this.view=e,this.layer=t,this.drawn=[],this.measureReq={read:this.measure.bind(this),write:this.draw.bind(this)},this.dom=e.scrollDOM.appendChild(document.createElement("div")),this.dom.classList.add("cm-layer"),t.above&&this.dom.classList.add("cm-layer-above"),t.class&&this.dom.classList.add(t.class),this.dom.setAttribute("aria-hidden","true"),this.setOrder(e.state),e.requestMeasure(this.measureReq),t.mount&&t.mount(this.dom,e)}update(e){e.startState.facet(Ad)!=e.state.facet(Ad)&&this.setOrder(e.state),(this.layer.update(e,this.dom)||e.geometryChanged)&&e.view.requestMeasure(this.measureReq)}setOrder(e){let t=0,n=e.facet(Ad);for(;t<n.length&&n[t]!=this.layer;)t++;this.dom.style.zIndex=String((this.layer.above?150:-1)-t)}measure(){return this.layer.markers(this.view)}draw(e){if(e.length!=this.drawn.length||e.some((t,n)=>!ZO(t,this.drawn[n]))){let t=this.dom.firstChild,n=0;for(let r of e)r.update&&t&&r.constructor&&this.drawn[n].constructor&&r.update(t,this.drawn[n])?(t=t.nextSibling,n++):this.dom.insertBefore(r.draw(),t);for(;t;){let r=t.nextSibling;t.remove(),t=r}this.drawn=e}}destroy(){this.layer.destroy&&this.layer.destroy(this.dom,this.view),this.dom.remove()}},Ad=ie.define();function _0(o){return[Ln.define(e=>new Wm(e,o)),Ad.of(o)]}var K0=!ee.ios,ru=ie.define({combine(o){return Ns(o,{cursorBlinkRate:1200,drawRangeCursor:!0},{cursorBlinkRate:(e,t)=>Math.min(e,t),drawRangeCursor:(e,t)=>e||t})}});function Ym(o={}){return[ru.of(o),eN,tN,nN,x0.of(!0)]}function U0(o){return o.startState.facet(ru)!=o.state.facet(ru)}var eN=_0({above:!0,markers(o){let{state:e}=o,t=e.facet(ru),n=[];for(let r of e.selection.ranges){let s=r==e.selection.main;if(r.empty?!s||K0:t.drawRangeCursor){let i=s?"cm-cursor cm-cursor-primary":"cm-cursor cm-cursor-secondary",l=r.empty?r:$.cursor(r.head,r.head>r.anchor?-1:1);for(let a of $s.forRange(o,i,l))n.push(a)}}return n},update(o,e){o.transactions.some(n=>n.selection)&&(e.style.animationName=e.style.animationName=="cm-blink"?"cm-blink2":"cm-blink");let t=U0(o);return t&&Yw(o.state,e),o.docChanged||o.selectionSet||t},mount(o,e){Yw(e.state,o)},class:"cm-cursorLayer"});function Yw(o,e){e.style.animationDuration=o.facet(ru).cursorBlinkRate+"ms"}var tN=_0({above:!1,markers(o){return o.state.selection.ranges.map(e=>e.empty?[]:$s.forRange(o,"cm-selectionBackground",e)).reduce((e,t)=>e.concat(t))},update(o,e){return o.docChanged||o.selectionSet||o.viewportChanged||U0(o)},class:"cm-selectionLayer"}),G0={".cm-line":{"& ::selection":{backgroundColor:"transparent !important"},"&::selection":{backgroundColor:"transparent !important"}}};K0&&(G0[".cm-line"].caretColor="transparent !important");var nN=Os.highest(ae.theme(G0));function Zw(o,e,t,n,r){e.lastIndex=0;for(let s=o.iterRange(t,n),i=t,l;!s.next().done;i+=s.value.length)if(!s.lineBreak)for(;l=e.exec(s.value);)r(i+l.index,l)}function oN(o,e){let t=o.visibleRanges;if(t.length==1&&t[0].from==o.viewport.from&&t[0].to==o.viewport.to)return t;let n=[];for(let{from:r,to:s}of t)r=Math.max(o.state.doc.lineAt(r).from,r-e),s=Math.min(o.state.doc.lineAt(s).to,s+e),n.length&&n[n.length-1].to>=r?n[n.length-1].to=s:n.push({from:r,to:s});return n}var _m=class{constructor(e){let{regexp:t,decoration:n,decorate:r,boundary:s,maxLength:i=1e3}=e;if(!t.global)throw new RangeError("The regular expression given to MatchDecorator should have its 'g' flag set");if(this.regexp=t,r)this.addMatch=(l,a,u,c)=>r(c,u,u+l[0].length,l,a);else if(typeof n=="function")this.addMatch=(l,a,u,c)=>{let d=n(l,a,u);d&&c(u,u+l[0].length,d)};else if(n)this.addMatch=(l,a,u,c)=>c(u,u+l[0].length,n);else throw new RangeError("Either 'decorate' or 'decoration' should be provided to MatchDecorator");this.boundary=s,this.maxLength=i}createDeco(e){let t=new vo,n=t.add.bind(t);for(let{from:r,to:s}of oN(e,this.maxLength))Zw(e.state.doc,this.regexp,r,s,(i,l)=>this.addMatch(l,e,i,n));return t.finish()}updateDeco(e,t){let n=1e9,r=-1;return e.docChanged&&e.changes.iterChanges((s,i,l,a)=>{a>e.view.viewport.from&&l<e.view.viewport.to&&(n=Math.min(l,n),r=Math.max(a,r))}),e.viewportChanged||r-n>1e3?this.createDeco(e.view):r>-1?this.updateRange(e.view,t.map(e.changes),n,r):t}updateRange(e,t,n,r){for(let s of e.visibleRanges){let i=Math.max(s.from,n),l=Math.min(s.to,r);if(l>i){let a=e.state.doc.lineAt(i),u=a.to<l?e.state.doc.lineAt(l):a,c=Math.max(s.from,a.from),d=Math.min(s.to,u.to);if(this.boundary){for(;i>a.from;i--)if(this.boundary.test(a.text[i-1-a.from])){c=i;break}for(;l<u.to;l++)if(this.boundary.test(u.text[l-u.from])){d=l;break}}let p=[],f,h=(g,m,y)=>p.push(y.range(g,m));if(a==u)for(this.regexp.lastIndex=c-a.from;(f=this.regexp.exec(a.text))&&f.index<d-a.from;)this.addMatch(f,e,f.index+a.from,h);else Zw(e.state.doc,this.regexp,c,d,(g,m)=>this.addMatch(m,e,g,h));t=t.update({filterFrom:c,filterTo:d,filter:(g,m)=>g<c||m>d,add:p})}}return t}},Km=/x/.unicode!=null?"gu":"g",rN=new RegExp(`[\0-\b
|
|
28
|
-
-\x7F-\x9F\xAD\u061C\u200B\u200E\u200F\u2028\u2029\u202D\u202E\u2066\u2067\u2069\uFEFF\uFFF9-\uFFFC]`,Km),sN={0:"null",7:"bell",8:"backspace",10:"newline",11:"vertical tab",13:"carriage return",27:"escape",8203:"zero width space",8204:"zero width non-joiner",8205:"zero width joiner",8206:"left-to-right mark",8207:"right-to-left mark",8232:"line separator",8237:"left-to-right override",8238:"right-to-left override",8294:"left-to-right isolate",8295:"right-to-left isolate",8297:"pop directional isolate",8233:"paragraph separator",65279:"zero width no-break space",65532:"object replacement"},pm=null;function iN(){var o;if(pm==null&&typeof document<"u"&&document.body){let e=document.body.style;pm=((o=e.tabSize)!==null&&o!==void 0?o:e.MozTabSize)!=null}return pm||!1}var Od=ie.define({combine(o){let e=Ns(o,{render:null,specialChars:rN,addSpecialChars:null});return(e.replaceTabs=!iN())&&(e.specialChars=new RegExp(" |"+e.specialChars.source,Km)),e.addSpecialChars&&(e.specialChars=new RegExp(e.specialChars.source+"|"+e.addSpecialChars.source,Km)),e}});function Zm(o={}){return[Od.of(o),lN()]}var e0=null;function lN(){return e0||(e0=Ln.fromClass(class{constructor(o){this.view=o,this.decorations=ct.none,this.decorationCache=Object.create(null),this.decorator=this.makeDecorator(o.state.facet(Od)),this.decorations=this.decorator.createDeco(o)}makeDecorator(o){return new _m({regexp:o.specialChars,decoration:(e,t,n)=>{let{doc:r}=t.state,s=xo(e[0],0);if(s==9){let i=r.lineAt(n),l=t.state.tabSize,a=Hs(i.text,l,n-i.from);return ct.replace({widget:new Gm((l-a%l)*this.view.defaultCharacterWidth)})}return this.decorationCache[s]||(this.decorationCache[s]=ct.replace({widget:new Um(o,s)}))},boundary:o.replaceTabs?void 0:/[^]/})}update(o){let e=o.state.facet(Od);o.startState.facet(Od)!=e?(this.decorator=this.makeDecorator(e),this.decorations=this.decorator.createDeco(o.view)):this.decorations=this.decorator.updateDeco(o,this.decorations)}},{decorations:o=>o.decorations}))}var aN="\u2022";function uN(o){return o>=32?aN:o==10?"\u2424":String.fromCharCode(9216+o)}var Um=class extends Yo{constructor(e,t){super(),this.options=e,this.code=t}eq(e){return e.code==this.code}toDOM(e){let t=uN(this.code),n=e.state.phrase("Control character")+" "+(sN[this.code]||"0x"+this.code.toString(16)),r=this.options.render&&this.options.render(this.code,n,t);if(r)return r;let s=document.createElement("span");return s.textContent=t,s.title=n,s.setAttribute("aria-label",n),s.className="cm-specialChar",s}ignoreEvent(){return!1}},Gm=class extends Yo{constructor(e){super(),this.width=e}eq(e){return e.width==this.width}toDOM(){let e=document.createElement("span");return e.textContent=" ",e.className="cm-tab",e.style.width=this.width+"px",e}ignoreEvent(){return!1}};var XZ=ae.baseTheme({".cm-tooltip":{zIndex:100,boxSizing:"border-box"},"&light .cm-tooltip":{border:"1px solid #bbb",backgroundColor:"#f5f5f5"},"&light .cm-tooltip-section:not(:first-child)":{borderTop:"1px solid #bbb"},"&dark .cm-tooltip":{backgroundColor:"#333338",color:"white"},".cm-tooltip-arrow":{height:"7px",width:`${7*2}px`,position:"absolute",zIndex:-1,overflow:"hidden","&:before, &:after":{content:"''",position:"absolute",width:0,height:0,borderLeft:"7px solid transparent",borderRight:"7px solid transparent"},".cm-tooltip-above &":{bottom:"-7px","&:before":{borderTop:"7px solid #bbb"},"&:after":{borderTop:"7px solid #f5f5f5",bottom:"1px"}},".cm-tooltip-below &":{top:"-7px","&:before":{borderBottom:"7px solid #bbb"},"&:after":{borderBottom:"7px solid #f5f5f5",top:"1px"}}},"&dark .cm-tooltip .cm-tooltip-arrow":{"&:before":{borderTopColor:"#333338",borderBottomColor:"#333338"},"&:after":{borderTopColor:"transparent",borderBottomColor:"transparent"}}});var Zo=class extends to{compare(e){return this==e||this.constructor==e.constructor&&this.eq(e)}eq(e){return!1}destroy(e){}};Zo.prototype.elementClass="";Zo.prototype.toDOM=void 0;Zo.prototype.mapMode=Rt.TrackBefore;Zo.prototype.startSide=Zo.prototype.endSide=-1;Zo.prototype.point=!0;var cN=0,An=class{constructor(e,t,n){this.set=e,this.base=t,this.modified=n,this.id=cN++}static define(e){if(e!=null&&e.base)throw new Error("Can not derive from a modified tag");let t=new An([],null,[]);if(t.set.push(t),e)for(let n of e.set)t.set.push(n);return t}static defineModifier(){let e=new cl;return t=>t.modified.indexOf(e)>-1?t:cl.get(t.base||t,t.modified.concat(e).sort((n,r)=>n.id-r.id))}},dN=0,cl=class{constructor(){this.instances=[],this.id=dN++}static get(e,t){if(!t.length)return e;let n=t[0].instances.find(l=>l.base==e&&pN(t,l.modified));if(n)return n;let r=[],s=new An(r,e,t);for(let l of t)l.instances.push(s);let i=fN(t);for(let l of e.set)if(!l.modified.length)for(let a of i)r.push(cl.get(l,a));return s}};function pN(o,e){return o.length==e.length&&o.every((t,n)=>t==e[n])}function fN(o){let e=[[]];for(let t=0;t<o.length;t++)for(let n=0,r=e.length;n<r;n++)e.push(e[n].concat(o[t]));return e.sort((t,n)=>n.length-t.length)}function Ks(o){let e=Object.create(null);for(let t in o){let n=o[t];Array.isArray(n)||(n=[n]);for(let r of t.split(" "))if(r){let s=[],i=2,l=r;for(let d=0;;){if(l=="..."&&d>0&&d+3==r.length){i=1;break}let p=/^"(?:[^"\\]|\\.)*?"|[^\/!]+/.exec(l);if(!p)throw new RangeError("Invalid path: "+r);if(s.push(p[0]=="*"?"":p[0][0]=='"'?JSON.parse(p[0]):p[0]),d+=p[0].length,d==r.length)break;let f=r[d++];if(d==r.length&&f=="!"){i=0;break}if(f!="/")throw new RangeError("Invalid path: "+r);l=r.slice(d)}let a=s.length-1,u=s[a];if(!u)throw new RangeError("Invalid path: "+r);let c=new dl(n,i,a>0?s.slice(0,a):null);e[u]=c.sort(e[u])}}return Q0.add(e)}var Q0=new le,dl=class{constructor(e,t,n,r){this.tags=e,this.mode=t,this.context=n,this.next=r}get opaque(){return this.mode==0}get inherit(){return this.mode==1}sort(e){return!e||e.depth<this.depth?(this.next=e,this):(e.next=this.sort(e.next),e)}get depth(){return this.context?this.context.length:0}};dl.empty=new dl([],2,null);function og(o,e){let t=Object.create(null);for(let s of o)if(!Array.isArray(s.tag))t[s.tag.id]=s.class;else for(let i of s.tag)t[i.id]=s.class;let{scope:n,all:r=null}=e||{};return{style:s=>{let i=r;for(let l of s)for(let a of l.set){let u=t[a.id];if(u){i=i?i+" "+u:u;break}}return i},scope:n}}function hN(o,e){let t=null;for(let n of o){let r=n.style(e);r&&(t=t?t+" "+r:r)}return t}function J0(o,e,t,n=0,r=o.length){let s=new tg(n,Array.isArray(e)?e:[e],t);s.highlightRange(o.cursor(),n,r,"",s.highlighters),s.flush(r)}var tg=class{constructor(e,t,n){this.at=e,this.highlighters=t,this.span=n,this.class=""}startSpan(e,t){t!=this.class&&(this.flush(e),e>this.at&&(this.at=e),this.class=t)}flush(e){e>this.at&&this.class&&this.span(this.at,e,this.class)}highlightRange(e,t,n,r,s){let{type:i,from:l,to:a}=e;if(l>=n||a<=t)return;i.isTop&&(s=this.highlighters.filter(f=>!f.scope||f.scope(i)));let u=r,c=mN(e)||dl.empty,d=hN(s,c.tags);if(d&&(u&&(u+=" "),u+=d,c.mode==1&&(r+=(r?" ":"")+d)),this.startSpan(Math.max(t,l),u),c.opaque)return;let p=e.tree&&e.tree.prop(le.mounted);if(p&&p.overlay){let f=e.node.enter(p.overlay[0].from+l,1),h=this.highlighters.filter(m=>!m.scope||m.scope(p.tree.type)),g=e.firstChild();for(let m=0,y=l;;m++){let w=m<p.overlay.length?p.overlay[m]:null,v=w?w.from+l:a,x=Math.max(t,y),S=Math.min(n,v);if(x<S&&g)for(;e.from<S&&(this.highlightRange(e,x,S,r,s),this.startSpan(Math.min(S,e.to),u),!(e.to>=v||!e.nextSibling())););if(!w||v>n)break;y=w.to+l,y>t&&(this.highlightRange(f.cursor(),Math.max(t,w.from+l),Math.min(n,y),"",h),this.startSpan(Math.min(n,y),u))}g&&e.parent()}else if(e.firstChild()){p&&(r="");do if(!(e.to<=t)){if(e.from>=n)break;this.highlightRange(e,t,n,r,s),this.startSpan(Math.min(n,e.to),u)}while(e.nextSibling());e.parent()}}};function mN(o){let e=o.type.prop(Q0);for(;e&&e.context&&!o.matchContext(e.context);)e=e.next;return e||null}var U=An.define,jd=U(),Ar=U(),q0=U(Ar),j0=U(Ar),Or=U(),Qd=U(Or),eg=U(Or),Mo=U(),_s=U(Mo),To=U(),Eo=U(),ng=U(),su=U(ng),Jd=U(),_={comment:jd,lineComment:U(jd),blockComment:U(jd),docComment:U(jd),name:Ar,variableName:U(Ar),typeName:q0,tagName:U(q0),propertyName:j0,attributeName:U(j0),className:U(Ar),labelName:U(Ar),namespace:U(Ar),macroName:U(Ar),literal:Or,string:Qd,docString:U(Qd),character:U(Qd),attributeValue:U(Qd),number:eg,integer:U(eg),float:U(eg),bool:U(Or),regexp:U(Or),escape:U(Or),color:U(Or),url:U(Or),keyword:To,self:U(To),null:U(To),atom:U(To),unit:U(To),modifier:U(To),operatorKeyword:U(To),controlKeyword:U(To),definitionKeyword:U(To),moduleKeyword:U(To),operator:Eo,derefOperator:U(Eo),arithmeticOperator:U(Eo),logicOperator:U(Eo),bitwiseOperator:U(Eo),compareOperator:U(Eo),updateOperator:U(Eo),definitionOperator:U(Eo),typeOperator:U(Eo),controlOperator:U(Eo),punctuation:ng,separator:U(ng),bracket:su,angleBracket:U(su),squareBracket:U(su),paren:U(su),brace:U(su),content:Mo,heading:_s,heading1:U(_s),heading2:U(_s),heading3:U(_s),heading4:U(_s),heading5:U(_s),heading6:U(_s),contentSeparator:U(Mo),list:U(Mo),quote:U(Mo),emphasis:U(Mo),strong:U(Mo),link:U(Mo),monospace:U(Mo),strikethrough:U(Mo),inserted:U(),deleted:U(),changed:U(),invalid:U(),meta:Jd,documentMeta:U(Jd),annotation:U(Jd),processingInstruction:U(Jd),definition:An.defineModifier(),constant:An.defineModifier(),function:An.defineModifier(),standard:An.defineModifier(),local:An.defineModifier(),special:An.defineModifier()},tee=og([{tag:_.link,class:"tok-link"},{tag:_.heading,class:"tok-heading"},{tag:_.emphasis,class:"tok-emphasis"},{tag:_.strong,class:"tok-strong"},{tag:_.keyword,class:"tok-keyword"},{tag:_.atom,class:"tok-atom"},{tag:_.bool,class:"tok-bool"},{tag:_.url,class:"tok-url"},{tag:_.labelName,class:"tok-labelName"},{tag:_.inserted,class:"tok-inserted"},{tag:_.deleted,class:"tok-deleted"},{tag:_.literal,class:"tok-literal"},{tag:_.string,class:"tok-string"},{tag:_.number,class:"tok-number"},{tag:[_.regexp,_.escape,_.special(_.string)],class:"tok-string2"},{tag:_.variableName,class:"tok-variableName"},{tag:_.local(_.variableName),class:"tok-variableName tok-local"},{tag:_.definition(_.variableName),class:"tok-variableName tok-definition"},{tag:_.special(_.variableName),class:"tok-variableName2"},{tag:_.definition(_.propertyName),class:"tok-propertyName tok-definition"},{tag:_.typeName,class:"tok-typeName"},{tag:_.namespace,class:"tok-namespace"},{tag:_.className,class:"tok-className"},{tag:_.macroName,class:"tok-macroName"},{tag:_.propertyName,class:"tok-propertyName"},{tag:_.operator,class:"tok-operator"},{tag:_.comment,class:"tok-comment"},{tag:_.meta,class:"tok-meta"},{tag:_.invalid,class:"tok-invalid"},{tag:_.punctuation,class:"tok-punctuation"}]);var rg,pl=new le;function gN(o){return ie.define({combine:o?e=>e.concat(o):void 0})}var bN=new le,bn=class{constructor(e,t,n=[],r=""){this.data=e,this.name=r,xe.prototype.hasOwnProperty("tree")||Object.defineProperty(xe.prototype,"tree",{get(){return Ct(this)}}),this.parser=t,this.extension=[hl.of(this),xe.languageData.of((s,i,l)=>{let a=X0(s,i,l),u=a.type.prop(pl);if(!u)return[];let c=s.facet(u),d=a.type.prop(bN);if(d){let p=a.resolve(i-a.from,l);for(let f of d)if(f.test(p,s)){let h=s.facet(f.facet);return f.type=="replace"?h:h.concat(c)}}return c})].concat(n)}isActiveAt(e,t,n=-1){return X0(e,t,n).type.prop(pl)==this.data}findRegions(e){let t=e.facet(hl);if((t==null?void 0:t.data)==this.data)return[{from:0,to:e.doc.length}];if(!t||!t.allowsNesting)return[];let n=[],r=(s,i)=>{if(s.prop(pl)==this.data){n.push({from:i,to:i+s.length});return}let l=s.prop(le.mounted);if(l){if(l.tree.prop(pl)==this.data){if(l.overlay)for(let a of l.overlay)n.push({from:a.from+i,to:a.to+i});else n.push({from:i,to:i+s.length});return}else if(l.overlay){let a=n.length;if(r(l.tree,l.overlay[0].from+i),n.length>a)return}}for(let a=0;a<s.children.length;a++){let u=s.children[a];u instanceof Ce&&r(u,s.positions[a]+i)}};return r(Ct(e),0),n}get allowsNesting(){return!0}};bn.setState=Ne.define();function X0(o,e,t){let n=o.facet(hl),r=Ct(o).topNode;if(!n||n.allowsNesting)for(let s=r;s;s=s.enter(e,t,Qe.ExcludeBuffers))s.type.isTop&&(r=s);return r}var Ro=class extends bn{constructor(e,t,n){super(e,t,[],n),this.parser=t}static define(e){let t=gN(e.languageData);return new Ro(t,e.parser.configure({props:[pl.add(n=>n.isTop?t:void 0)]}),e.name)}configure(e,t){return new Ro(this.data,this.parser.configure(e),t||this.name)}get allowsNesting(){return this.parser.hasWrappers()}};function Ct(o){let e=o.field(bn.state,!1);return e?e.tree:Ce.empty}var ag=class{constructor(e){this.doc=e,this.cursorPos=0,this.string="",this.cursor=e.iter()}get length(){return this.doc.length}syncTo(e){return this.string=this.cursor.next(e-this.cursorPos).value,this.cursorPos=e+this.string.length,this.cursorPos-this.string.length}chunk(e){return this.syncTo(e),this.string}get lineChunks(){return!0}read(e,t){let n=this.cursorPos-this.string.length;return e<n||t>=this.cursorPos?this.doc.sliceString(e,t):this.string.slice(e-n,t-n)}},iu=null,fl=class{constructor(e,t,n=[],r,s,i,l,a){this.parser=e,this.state=t,this.fragments=n,this.tree=r,this.treeLen=s,this.viewport=i,this.skipped=l,this.scheduleOn=a,this.parse=null,this.tempSkipped=[]}static create(e,t,n){return new fl(e,t,[],Ce.empty,0,n,[],null)}startParse(){return this.parser.startParse(new ag(this.state.doc),this.fragments)}work(e,t){return t!=null&&t>=this.state.doc.length&&(t=void 0),this.tree!=Ce.empty&&this.isDone(t!=null?t:this.state.doc.length)?(this.takeTree(),!0):this.withContext(()=>{var n;if(typeof e=="number"){let r=Date.now()+e;e=()=>Date.now()>r}for(this.parse||(this.parse=this.startParse()),t!=null&&(this.parse.stoppedAt==null||this.parse.stoppedAt>t)&&t<this.state.doc.length&&this.parse.stopAt(t);;){let r=this.parse.advance();if(r)if(this.fragments=this.withoutTempSkipped(go.addTree(r,this.fragments,this.parse.stoppedAt!=null)),this.treeLen=(n=this.parse.stoppedAt)!==null&&n!==void 0?n:this.state.doc.length,this.tree=r,this.parse=null,this.treeLen<(t!=null?t:this.state.doc.length))this.parse=this.startParse();else return!0;if(e())return!1}})}takeTree(){let e,t;this.parse&&(e=this.parse.parsedPos)>=this.treeLen&&((this.parse.stoppedAt==null||this.parse.stoppedAt>e)&&this.parse.stopAt(e),this.withContext(()=>{for(;!(t=this.parse.advance()););}),this.treeLen=e,this.tree=t,this.fragments=this.withoutTempSkipped(go.addTree(this.tree,this.fragments,!0)),this.parse=null)}withContext(e){let t=iu;iu=this;try{return e()}finally{iu=t}}withoutTempSkipped(e){for(let t;t=this.tempSkipped.pop();)e=Y0(e,t.from,t.to);return e}changes(e,t){let{fragments:n,tree:r,treeLen:s,viewport:i,skipped:l}=this;if(this.takeTree(),!e.empty){let a=[];if(e.iterChangedRanges((u,c,d,p)=>a.push({fromA:u,toA:c,fromB:d,toB:p})),n=go.applyChanges(n,a),r=Ce.empty,s=0,i={from:e.mapPos(i.from,-1),to:e.mapPos(i.to,1)},this.skipped.length){l=[];for(let u of this.skipped){let c=e.mapPos(u.from,1),d=e.mapPos(u.to,-1);c<d&&l.push({from:c,to:d})}}}return new fl(this.parser,t,n,r,s,i,l,this.scheduleOn)}updateViewport(e){if(this.viewport.from==e.from&&this.viewport.to==e.to)return!1;this.viewport=e;let t=this.skipped.length;for(let n=0;n<this.skipped.length;n++){let{from:r,to:s}=this.skipped[n];r<e.to&&s>e.from&&(this.fragments=Y0(this.fragments,r,s),this.skipped.splice(n--,1))}return this.skipped.length>=t?!1:(this.reset(),!0)}reset(){this.parse&&(this.takeTree(),this.parse=null)}skipUntilInView(e,t){this.skipped.push({from:e,to:t})}static getSkippingParser(e){return new class extends yr{createParse(t,n,r){let s=r[0].from,i=r[r.length-1].to;return{parsedPos:s,advance(){let a=iu;if(a){for(let u of r)a.tempSkipped.push(u);e&&(a.scheduleOn=a.scheduleOn?Promise.all([a.scheduleOn,e]):e)}return this.parsedPos=i,new Ce(nt.none,[],[],i-s)},stoppedAt:null,stopAt(){}}}}}isDone(e){e=Math.min(e,this.state.doc.length);let t=this.fragments;return this.treeLen>=e&&t.length&&t[0].from==0&&t[0].to>=e}static get(){return iu}};function Y0(o,e,t){return go.applyChanges(o,[{fromA:e,toA:t,fromB:e,toB:t}])}var Nr=class{constructor(e){this.context=e,this.tree=e.tree}apply(e){if(!e.docChanged&&this.tree==this.context.tree)return this;let t=this.context.changes(e.changes,e.state),n=this.context.treeLen==e.startState.doc.length?void 0:Math.max(e.changes.mapPos(this.context.treeLen),t.viewport.to);return t.work(20,n)||t.takeTree(),new Nr(t)}static init(e){let t=Math.min(3e3,e.doc.length),n=fl.create(e.facet(hl).parser,e,{from:0,to:t});return n.work(20,t)||n.takeTree(),new Nr(n)}};bn.state=zt.define({create:Nr.init,update(o,e){for(let t of e.effects)if(t.is(bn.setState))return t.value;return e.startState.facet(hl)!=e.state.facet(hl)?Nr.init(e.state):o.apply(e)}});var tT=o=>{let e=setTimeout(()=>o(),500);return()=>clearTimeout(e)};typeof requestIdleCallback<"u"&&(tT=o=>{let e=-1,t=setTimeout(()=>{e=requestIdleCallback(o,{timeout:500-100})},100);return()=>e<0?clearTimeout(t):cancelIdleCallback(e)});var sg=typeof navigator<"u"&&(!((rg=navigator.scheduling)===null||rg===void 0)&&rg.isInputPending)?()=>navigator.scheduling.isInputPending():null,yN=Ln.fromClass(class{constructor(e){this.view=e,this.working=null,this.workScheduled=0,this.chunkEnd=-1,this.chunkBudget=-1,this.work=this.work.bind(this),this.scheduleWork()}update(e){let t=this.view.state.field(bn.state).context;(t.updateViewport(e.view.viewport)||this.view.viewport.to>t.treeLen)&&this.scheduleWork(),e.docChanged&&(this.view.hasFocus&&(this.chunkBudget+=50),this.scheduleWork()),this.checkAsyncSchedule(t)}scheduleWork(){if(this.working)return;let{state:e}=this.view,t=e.field(bn.state);(t.tree!=t.context.tree||!t.context.isDone(e.doc.length))&&(this.working=tT(this.work))}work(e){this.working=null;let t=Date.now();if(this.chunkEnd<t&&(this.chunkEnd<0||this.view.hasFocus)&&(this.chunkEnd=t+3e4,this.chunkBudget=3e3),this.chunkBudget<=0)return;let{state:n,viewport:{to:r}}=this.view,s=n.field(bn.state);if(s.tree==s.context.tree&&s.context.isDone(r+1e5))return;let i=Date.now()+Math.min(this.chunkBudget,100,e&&!sg?Math.max(25,e.timeRemaining()-5):1e9),l=s.context.treeLen<r&&n.doc.length>r+1e3,a=s.context.work(()=>sg&&sg()||Date.now()>i,r+(l?0:1e5));this.chunkBudget-=Date.now()-t,(a||this.chunkBudget<=0)&&(s.context.takeTree(),this.view.dispatch({effects:bn.setState.of(new Nr(s.context))})),this.chunkBudget>0&&!(a&&!l)&&this.scheduleWork(),this.checkAsyncSchedule(s.context)}checkAsyncSchedule(e){e.scheduleOn&&(this.workScheduled++,e.scheduleOn.then(()=>this.scheduleWork()).catch(t=>So(this.view.state,t)).then(()=>this.workScheduled--),e.scheduleOn=null)}destroy(){this.working&&this.working()}isWorking(){return!!(this.working||this.workScheduled>0)}},{eventHandlers:{focus(){this.scheduleWork()}}}),hl=ie.define({combine(o){return o.length?o[0]:null},enables:o=>[bn.state,yN,ae.contentAttributes.compute([o],e=>{let t=e.facet(o);return t&&t.name?{"data-language":t.name}:{}})]});var xN=ie.define(),au=ie.define({combine:o=>{if(!o.length)return" ";let e=o[0];if(!e||/\S/.test(e)||Array.from(e).some(t=>t!=e[0]))throw new Error("Invalid indent unit: "+JSON.stringify(o[0]));return e}});function uu(o){let e=o.facet(au);return e.charCodeAt(0)==9?o.tabSize*e.length:e.length}function cu(o,e){let t="",n=o.tabSize,r=o.facet(au)[0];if(r==" "){for(;e>=n;)t+=" ",e-=n;r=" "}for(let s=0;s<e;s++)t+=r;return t}function fg(o,e){o instanceof xe&&(o=new Us(o));for(let n of o.state.facet(xN)){let r=n(o,e);if(r!==void 0)return r}let t=Ct(o.state);return t?CN(o,t,e):null}var Us=class{constructor(e,t={}){this.state=e,this.options=t,this.unit=uu(e)}lineAt(e,t=1){let n=this.state.doc.lineAt(e),{simulateBreak:r,simulateDoubleBreak:s}=this.options;return r!=null&&r>=n.from&&r<=n.to?s&&r==e?{text:"",from:e}:(t<0?r<e:r<=e)?{text:n.text.slice(r-n.from),from:r}:{text:n.text.slice(0,r-n.from),from:n.from}:n}textAfterPos(e,t=1){if(this.options.simulateDoubleBreak&&e==this.options.simulateBreak)return"";let{text:n,from:r}=this.lineAt(e,t);return n.slice(e-r,Math.min(n.length,e+100-r))}column(e,t=1){let{text:n,from:r}=this.lineAt(e,t),s=this.countColumn(n,e-r),i=this.options.overrideIndentation?this.options.overrideIndentation(r):-1;return i>-1&&(s+=i-this.countColumn(n,n.search(/\S|$/))),s}countColumn(e,t=e.length){return Hs(e,this.state.tabSize,t)}lineIndent(e,t=1){let{text:n,from:r}=this.lineAt(e,t),s=this.options.overrideIndentation;if(s){let i=s(r);if(i>-1)return i}return this.countColumn(n,n.search(/\S|$/))}get simulatedBreak(){return this.options.simulateBreak||null}},vN=new le;function CN(o,e,t){return nT(e.resolveInner(t).enterUnfinishedNodesBefore(t),t,o)}function SN(o){return o.pos==o.options.simulateBreak&&o.options.simulateDoubleBreak}function wN(o){let e=o.type.prop(vN);if(e)return e;let t=o.firstChild,n;if(t&&(n=t.type.prop(le.closedBy))){let r=o.lastChild,s=r&&n.indexOf(r.name)>-1;return i=>RN(i,!0,1,void 0,s&&!SN(i)?r.from:void 0)}return o.parent==null?TN:null}function nT(o,e,t){for(;o;o=o.parent){let n=wN(o);if(n)return n(lu.create(t,e,o))}return null}function TN(){return 0}var lu=class extends Us{constructor(e,t,n){super(e.state,e.options),this.base=e,this.pos=t,this.node=n}static create(e,t,n){return new lu(e,t,n)}get textAfter(){return this.textAfterPos(this.pos)}get baseIndent(){return this.baseIndentFor(this.node)}baseIndentFor(e){let t=this.state.doc.lineAt(e.from);for(;;){let n=e.resolve(t.from);for(;n.parent&&n.parent.from==n.from;)n=n.parent;if(EN(n,e))break;t=this.state.doc.lineAt(n.from)}return this.lineIndent(t.from)}continue(){let e=this.node.parent;return e?nT(e,this.pos,this.base):0}};function EN(o,e){for(let t=e;t;t=t.parent)if(o==t)return!0;return!1}function MN(o){let e=o.node,t=e.childAfter(e.from),n=e.lastChild;if(!t)return null;let r=o.options.simulateBreak,s=o.state.doc.lineAt(t.from),i=r==null||r<=s.from?s.to:Math.min(s.to,r);for(let l=t.to;;){let a=e.childAfter(l);if(!a||a==n)return null;if(!a.type.isSkipped)return a.from<i?t:null;l=a.to}}function RN(o,e,t,n,r){let s=o.textAfter,i=s.match(/^\s*/)[0].length,l=n&&s.slice(i,i+n.length)==n||r==o.pos+i,a=e?MN(o):null;return a?l?o.column(a.from):o.column(a.to):o.baseIndent+(l?0:o.unit*t)}var oo=class{constructor(e,t){this.specs=e;let n;function r(l){let a=Pn.newName();return(n||(n=Object.create(null)))["."+a]=l,a}let s=typeof t.all=="string"?t.all:t.all?r(t.all):void 0,i=t.scope;this.scope=i instanceof bn?l=>l.prop(pl)==i.data:i?l=>l==i:void 0,this.style=og(e.map(l=>({tag:l.tag,class:l.class||r(Object.assign({},l,{tag:null}))})),{all:s}).style,this.module=n?new Pn(n):null,this.themeType=t.themeType}static define(e,t){return new oo(e,t||{})}},ug=ie.define(),oT=ie.define({combine(o){return o.length?[o[0]]:null}});function ig(o){let e=o.facet(ug);return e.length?e:o.facet(oT)}function Gs(o,e){let t=[DN],n;return o instanceof oo&&(o.module&&t.push(ae.styleModule.of(o.module)),n=o.themeType),e!=null&&e.fallback?t.push(oT.of(o)):n?t.push(ug.computeN([ae.darkTheme],r=>r.facet(ae.darkTheme)==(n=="dark")?[o]:[])):t.push(ug.of(o)),t}var cg=class{constructor(e){this.markCache=Object.create(null),this.tree=Ct(e.state),this.decorations=this.buildDeco(e,ig(e.state))}update(e){let t=Ct(e.state),n=ig(e.state),r=n!=ig(e.startState);t.length<e.view.viewport.to&&!r&&t.type==this.tree.type?this.decorations=this.decorations.map(e.changes):(t!=this.tree||e.viewportChanged||r)&&(this.tree=t,this.decorations=this.buildDeco(e.view,n))}buildDeco(e,t){if(!t||!this.tree.length)return ct.none;let n=new vo;for(let{from:r,to:s}of e.visibleRanges)J0(this.tree,t,(i,l,a)=>{n.add(i,l,this.markCache[a]||(this.markCache[a]=ct.mark({class:a})))},r,s);return n.finish()}},DN=Os.high(Ln.fromClass(cg,{decorations:o=>o.decorations})),hg=oo.define([{tag:_.meta,color:"#404740"},{tag:_.link,textDecoration:"underline"},{tag:_.heading,textDecoration:"underline",fontWeight:"bold"},{tag:_.emphasis,fontStyle:"italic"},{tag:_.strong,fontWeight:"bold"},{tag:_.strikethrough,textDecoration:"line-through"},{tag:_.keyword,color:"#708"},{tag:[_.atom,_.bool,_.url,_.contentSeparator,_.labelName],color:"#219"},{tag:[_.literal,_.inserted],color:"#164"},{tag:[_.string,_.deleted],color:"#a11"},{tag:[_.regexp,_.escape,_.special(_.string)],color:"#e40"},{tag:_.definition(_.variableName),color:"#00f"},{tag:_.local(_.variableName),color:"#30a"},{tag:[_.typeName,_.namespace],color:"#085"},{tag:_.className,color:"#167"},{tag:[_.special(_.variableName),_.macroName],color:"#256"},{tag:_.definition(_.propertyName),color:"#00c"},{tag:_.comment,color:"#940"},{tag:_.invalid,color:"#f00"}]);var PN=1e4,kN="()[]{}";var IN=new le;function dg(o,e,t){let n=o.prop(e<0?le.openedBy:le.closedBy);if(n)return n;if(o.name.length==1){let r=t.indexOf(o.name);if(r>-1&&r%2==(e<0?1:0))return[t[r+e]]}return null}function pg(o){let e=o.type.prop(IN);return e?e(o.node):o}function qs(o,e,t,n={}){let r=n.maxScanDistance||PN,s=n.brackets||kN,i=Ct(o),l=i.resolveInner(e,t);for(let a=l;a;a=a.parent){let u=dg(a.type,t,s);if(u&&a.from<a.to){let c=pg(a);if(c&&(t>0?e>=c.from&&e<c.to:e>c.from&&e<=c.to))return LN(o,e,t,a,c,u,s)}}return AN(o,e,t,i,l.type,r,s)}function LN(o,e,t,n,r,s,i){let l=n.parent,a={from:r.from,to:r.to},u=0,c=l==null?void 0:l.cursor();if(c&&(t<0?c.childBefore(n.from):c.childAfter(n.to)))do if(t<0?c.to<=n.from:c.from>=n.to){if(u==0&&s.indexOf(c.type.name)>-1&&c.from<c.to){let d=pg(c);return{start:a,end:d?{from:d.from,to:d.to}:void 0,matched:!0}}else if(dg(c.type,t,i))u++;else if(dg(c.type,-t,i)){if(u==0){let d=pg(c);return{start:a,end:d&&d.from<d.to?{from:d.from,to:d.to}:void 0,matched:!1}}u--}}while(t<0?c.prevSibling():c.nextSibling());return{start:a,matched:!1}}function AN(o,e,t,n,r,s,i){let l=t<0?o.sliceDoc(e-1,e):o.sliceDoc(e,e+1),a=i.indexOf(l);if(a<0||a%2==0!=t>0)return null;let u={from:t<0?e-1:e,to:t>0?e+1:e},c=o.doc.iterRange(e,t>0?o.doc.length:0),d=0;for(let p=0;!c.next().done&&p<=s;){let f=c.value;t<0&&(p+=f.length);let h=e+p*t;for(let g=t>0?0:f.length-1,m=t>0?f.length:-1;g!=m;g+=t){let y=i.indexOf(f[g]);if(!(y<0||n.resolveInner(h+g,1).type!=r))if(y%2==0==t>0)d++;else{if(d==1)return{start:u,end:{from:h+g,to:h+g+1},matched:y>>1==a>>1};d--}}t>0&&(p+=f.length)}return c.done?{start:u,matched:!1}:null}var ON=Object.create(null),Z0=[nt.none];var eT=[],NN=Object.create(null);for(let[o,e]of[["variable","variableName"],["variable-2","variableName.special"],["string-2","string.special"],["def","variableName.definition"],["tag","tagName"],["attribute","attributeName"],["type","typeName"],["builtin","variableName.standard"],["qualifier","modifier"],["error","invalid"],["header","heading"],["property","propertyName"]])NN[o]=HN(ON,e);function lg(o,e){eT.indexOf(o)>-1||(eT.push(o),console.warn(e))}function HN(o,e){let t=null;for(let s of e.split(".")){let i=o[s]||_[s];i?typeof i=="function"?t?t=i(t):lg(s,`Modifier ${s} used at start of tag`):t?lg(s,`Tag ${s} used as modifier`):t=i:lg(s,`Unknown highlighting tag ${s}`)}if(!t)return 0;let n=e.replace(/ /g,"_"),r=nt.define({id:Z0.length,name:n,props:[Ks({[n]:t})]});return Z0.push(r),r.id}var Xd={brackets:["(","[","{","'",'"'],before:")]}:;>",stringPrefixes:[]},js=Ne.define({map(o,e){let t=e.mapPos(o,-1,Rt.TrackAfter);return t==null?void 0:t}}),gg=new class extends to{};gg.startSide=1;gg.endSide=-1;var iT=zt.define({create(){return Pe.empty},update(o,e){if(e.selection){let t=e.state.doc.lineAt(e.selection.main.head).from,n=e.startState.doc.lineAt(e.startState.selection.main.head).from;t!=e.changes.mapPos(n,-1)&&(o=Pe.empty)}o=o.map(e.changes);for(let t of e.effects)t.is(js)&&(o=o.update({add:[gg.range(t.value,t.value+1)]}));return o}});function bg(){return[zN,iT]}var mg="()[]{}<>";function FN(o){for(let e=0;e<mg.length;e+=2)if(mg.charCodeAt(e)==o)return mg.charAt(e+1);return sw(o<128?o:o+1)}function VN(o,e){return o.languageDataAt("closeBrackets",e)[0]||Xd}var BN=typeof navigator=="object"&&/Android\b/.test(navigator.userAgent),zN=ae.inputHandler.of((o,e,t,n)=>{if((BN?o.composing:o.compositionStarted)||o.state.readOnly)return!1;let r=o.state.selection.main;if(n.length>2||n.length==2&&ks(xo(n,0))==1||e!=r.from||t!=r.to)return!1;let s=$N(o.state,n);return s?(o.dispatch(s),!0):!1});function $N(o,e){let t=VN(o,o.selection.main.head),n=t.brackets||Xd.brackets;for(let r of n){let s=FN(xo(r,0));if(e==r)return s==r?KN(o,r,n.indexOf(r+r+r)>-1,t):WN(o,r,s,t.before||Xd.before);if(e==s&&lT(o,o.selection.main.from))return _N(o,r,s)}return null}function lT(o,e){let t=!1;return o.field(iT).between(0,o.doc.length,n=>{n==e&&(t=!0)}),t}function yg(o,e){let t=o.sliceString(e,e+2);return t.slice(0,ks(xo(t,0)))}function WN(o,e,t,n){let r=null,s=o.changeByRange(i=>{if(!i.empty)return{changes:[{insert:e,from:i.from},{insert:t,from:i.to}],effects:js.of(i.to+e.length),range:$.range(i.anchor+e.length,i.head+e.length)};let l=yg(o.doc,i.head);return!l||/\s/.test(l)||n.indexOf(l)>-1?{changes:{insert:e+t,from:i.head},effects:js.of(i.head+e.length),range:$.cursor(i.head+e.length)}:{range:r=i}});return r?null:o.update(s,{scrollIntoView:!0,userEvent:"input.type"})}function _N(o,e,t){let n=null,r=o.changeByRange(s=>s.empty&&yg(o.doc,s.head)==t?{changes:{from:s.head,to:s.head+t.length,insert:t},range:$.cursor(s.head+t.length)}:n={range:s});return n?null:o.update(r,{scrollIntoView:!0,userEvent:"input.type"})}function KN(o,e,t,n){let r=n.stringPrefixes||Xd.stringPrefixes,s=null,i=o.changeByRange(l=>{if(!l.empty)return{changes:[{insert:e,from:l.from},{insert:e,from:l.to}],effects:js.of(l.to+e.length),range:$.range(l.anchor+e.length,l.head+e.length)};let a=l.head,u=yg(o.doc,a),c;if(u==e){if(rT(o,a))return{changes:{insert:e+e,from:a},effects:js.of(a+e.length),range:$.cursor(a+e.length)};if(lT(o,a)){let p=t&&o.sliceDoc(a,a+e.length*3)==e+e+e?e+e+e:e;return{changes:{from:a,to:a+p.length,insert:p},range:$.cursor(a+p.length)}}}else{if(t&&o.sliceDoc(a-2*e.length,a)==e+e&&(c=sT(o,a-2*e.length,r))>-1&&rT(o,c))return{changes:{insert:e+e+e+e,from:a},effects:js.of(a+e.length),range:$.cursor(a+e.length)};if(o.charCategorizer(a)(u)!=Bt.Word&&sT(o,a,r)>-1&&!UN(o,a,e,r))return{changes:{insert:e+e,from:a},effects:js.of(a+e.length),range:$.cursor(a+e.length)}}return{range:s=l}});return s?null:o.update(i,{scrollIntoView:!0,userEvent:"input.type"})}function rT(o,e){let t=Ct(o).resolveInner(e+1);return t.parent&&t.from==e}function UN(o,e,t,n){let r=Ct(o).resolveInner(e,-1),s=n.reduce((i,l)=>Math.max(i,l.length),0);for(let i=0;i<5;i++){let l=o.sliceDoc(r.from,Math.min(r.to,r.from+t.length+s)),a=l.indexOf(t);if(!a||a>-1&&n.indexOf(l.slice(0,a))>-1){let c=r.firstChild;for(;c&&c.from==r.from&&c.to-c.from>t.length+a;){if(o.sliceDoc(c.to-t.length,c.to)==t)return!1;c=c.firstChild}return!0}let u=r.to==e&&r.parent;if(!u)break;r=u}return!1}function sT(o,e,t){let n=o.charCategorizer(e);if(n(o.sliceDoc(e-1,e))!=Bt.Word)return e;for(let r of t){let s=e-r.length;if(o.sliceDoc(s,e)==r&&n(o.sliceDoc(s-1,s))!=Bt.Word)return s}return-1}var GN=o=>{let{state:e}=o,t=e.doc.lineAt(e.selection.main.from),n=Eg(o.state,t.from);return n.line?qN(o):n.block?QN(o):!1};function Tg(o,e){return({state:t,dispatch:n})=>{if(t.readOnly)return!1;let r=o(e,t);return r?(n(t.update(r)),!0):!1}}var qN=Tg(YN,0);var jN=Tg(mT,0);var QN=Tg((o,e)=>mT(o,e,XN(e)),0);function Eg(o,e){let t=o.languageDataAt("commentTokens",e);return t.length?t[0]:{}}var du=50;function JN(o,{open:e,close:t},n,r){let s=o.sliceDoc(n-du,n),i=o.sliceDoc(r,r+du),l=/\s*$/.exec(s)[0].length,a=/^\s*/.exec(i)[0].length,u=s.length-l;if(s.slice(u-e.length,u)==e&&i.slice(a,a+t.length)==t)return{open:{pos:n-l,margin:l&&1},close:{pos:r+a,margin:a&&1}};let c,d;r-n<=2*du?c=d=o.sliceDoc(n,r):(c=o.sliceDoc(n,n+du),d=o.sliceDoc(r-du,r));let p=/^\s*/.exec(c)[0].length,f=/\s*$/.exec(d)[0].length,h=d.length-f-t.length;return c.slice(p,p+e.length)==e&&d.slice(h,h+t.length)==t?{open:{pos:n+p+e.length,margin:/\s/.test(c.charAt(p+e.length))?1:0},close:{pos:r-f-t.length,margin:/\s/.test(d.charAt(h-1))?1:0}}:null}function XN(o){let e=[];for(let t of o.selection.ranges){let n=o.doc.lineAt(t.from),r=t.to<=n.to?n:o.doc.lineAt(t.to),s=e.length-1;s>=0&&e[s].to>n.from?e[s].to=r.to:e.push({from:n.from+/^\s*/.exec(n.text)[0].length,to:r.to})}return e}function mT(o,e,t=e.selection.ranges){let n=t.map(s=>Eg(e,s.from).block);if(!n.every(s=>s))return null;let r=t.map((s,i)=>JN(e,n[i],s.from,s.to));if(o!=2&&!r.every(s=>s))return{changes:e.changes(t.map((s,i)=>r[i]?[]:[{from:s.from,insert:n[i].open+" "},{from:s.to,insert:" "+n[i].close}]))};if(o!=1&&r.some(s=>s)){let s=[];for(let i=0,l;i<r.length;i++)if(l=r[i]){let a=n[i],{open:u,close:c}=l;s.push({from:u.pos-a.open.length,to:u.pos+u.margin},{from:c.pos-c.margin,to:c.pos+a.close.length})}return{changes:s}}return null}function YN(o,e,t=e.selection.ranges){let n=[],r=-1;for(let{from:s,to:i}of t){let l=n.length,a=1e9,u=Eg(e,s).line;if(u){for(let c=s;c<=i;){let d=e.doc.lineAt(c);if(d.from>r&&(s==i||i>d.from)){r=d.from;let p=/^\s*/.exec(d.text)[0].length,f=p==d.length,h=d.text.slice(p,p+u.length)==u?p:-1;p<d.text.length&&p<a&&(a=p),n.push({line:d,comment:h,token:u,indent:p,empty:f,single:!1})}c=d.to+1}if(a<1e9)for(let c=l;c<n.length;c++)n[c].indent<n[c].line.text.length&&(n[c].indent=a);n.length==l+1&&(n[l].single=!0)}}if(o!=2&&n.some(s=>s.comment<0&&(!s.empty||s.single))){let s=[];for(let{line:l,token:a,indent:u,empty:c,single:d}of n)(d||!c)&&s.push({from:l.from+u,insert:a+" "});let i=e.changes(s);return{changes:i,selection:e.selection.map(i,1)}}else if(o!=1&&n.some(s=>s.comment>=0)){let s=[];for(let{line:i,comment:l,token:a}of n)if(l>=0){let u=i.from+l,c=u+a.length;i.text[c-i.from]==" "&&c++,s.push({from:u,to:c})}return{changes:s}}return null}var vg=mn.define(),ZN=mn.define(),eH=ie.define(),gT=ie.define({combine(o){return Ns(o,{minDepth:100,newGroupDelay:500,joinToEvent:(e,t)=>t},{minDepth:Math.max,newGroupDelay:Math.min,joinToEvent:(e,t)=>(n,r)=>e(n,r)||t(n,r)})}});function tH(o){let e=0;return o.iterChangedRanges((t,n)=>e=n),e}var bT=zt.define({create(){return Nn.empty},update(o,e){let t=e.state.facet(gT),n=e.annotation(vg);if(n){let a=e.docChanged?$.single(tH(e.changes)):void 0,u=Pt.fromTransaction(e,a),c=n.side,d=c==0?o.undone:o.done;return u?d=Zd(d,d.length,t.minDepth,u):d=vT(d,e.startState.selection),new Nn(c==0?n.rest:d,c==0?d:n.rest)}let r=e.annotation(ZN);if((r=="full"||r=="before")&&(o=o.isolate()),e.annotation(_e.addToHistory)===!1)return e.changes.empty?o:o.addMapping(e.changes.desc);let s=Pt.fromTransaction(e),i=e.annotation(_e.time),l=e.annotation(_e.userEvent);return s?o=o.addChanges(s,i,l,t,e):e.selection&&(o=o.addSelection(e.startState.selection,i,l,t.newGroupDelay)),(r=="full"||r=="after")&&(o=o.isolate()),o},toJSON(o){return{done:o.done.map(e=>e.toJSON()),undone:o.undone.map(e=>e.toJSON())}},fromJSON(o){return new Nn(o.done.map(Pt.fromJSON),o.undone.map(Pt.fromJSON))}});function Mg(o={}){return[bT,gT.of(o),ae.domEventHandlers({beforeinput(e,t){let n=e.inputType=="historyUndo"?yT:e.inputType=="historyRedo"?Cg:null;return n?(e.preventDefault(),n(t)):!1}})]}function ep(o,e){return function({state:t,dispatch:n}){if(!e&&t.readOnly)return!1;let r=t.field(bT,!1);if(!r)return!1;let s=r.pop(o,t,e);return s?(n(s),!0):!1}}var yT=ep(0,!1),Cg=ep(1,!1),nH=ep(0,!0),oH=ep(1,!0);var Pt=class{constructor(e,t,n,r,s){this.changes=e,this.effects=t,this.mapped=n,this.startSelection=r,this.selectionsAfter=s}setSelAfter(e){return new Pt(this.changes,this.effects,this.mapped,this.startSelection,e)}toJSON(){var e,t,n;return{changes:(e=this.changes)===null||e===void 0?void 0:e.toJSON(),mapped:(t=this.mapped)===null||t===void 0?void 0:t.toJSON(),startSelection:(n=this.startSelection)===null||n===void 0?void 0:n.toJSON(),selectionsAfter:this.selectionsAfter.map(r=>r.toJSON())}}static fromJSON(e){return new Pt(e.changes&&We.fromJSON(e.changes),[],e.mapped&&hn.fromJSON(e.mapped),e.startSelection&&$.fromJSON(e.startSelection),e.selectionsAfter.map($.fromJSON))}static fromTransaction(e,t){let n=On;for(let r of e.startState.facet(eH)){let s=r(e);s.length&&(n=n.concat(s))}return!n.length&&e.changes.empty?null:new Pt(e.changes.invert(e.startState.doc),n,void 0,t||e.startState.selection,On)}static selection(e){return new Pt(void 0,On,void 0,void 0,e)}};function Zd(o,e,t,n){let r=e+1>t+20?e-t-1:0,s=o.slice(r,e);return s.push(n),s}function rH(o,e){let t=[],n=!1;return o.iterChangedRanges((r,s)=>t.push(r,s)),e.iterChangedRanges((r,s,i,l)=>{for(let a=0;a<t.length;){let u=t[a++],c=t[a++];l>=u&&i<=c&&(n=!0)}}),n}function sH(o,e){return o.ranges.length==e.ranges.length&&o.ranges.filter((t,n)=>t.empty!=e.ranges[n].empty).length===0}function xT(o,e){return o.length?e.length?o.concat(e):o:e}var On=[],iH=200;function vT(o,e){if(o.length){let t=o[o.length-1],n=t.selectionsAfter.slice(Math.max(0,t.selectionsAfter.length-iH));return n.length&&n[n.length-1].eq(e)?o:(n.push(e),Zd(o,o.length-1,1e9,t.setSelAfter(n)))}else return[Pt.selection([e])]}function lH(o){let e=o[o.length-1],t=o.slice();return t[o.length-1]=e.setSelAfter(e.selectionsAfter.slice(0,e.selectionsAfter.length-1)),t}function xg(o,e){if(!o.length)return o;let t=o.length,n=On;for(;t;){let r=aH(o[t-1],e,n);if(r.changes&&!r.changes.empty||r.effects.length){let s=o.slice(0,t);return s[t-1]=r,s}else e=r.mapped,t--,n=r.selectionsAfter}return n.length?[Pt.selection(n)]:On}function aH(o,e,t){let n=xT(o.selectionsAfter.length?o.selectionsAfter.map(l=>l.map(e)):On,t);if(!o.changes)return Pt.selection(n);let r=o.changes.map(e),s=e.mapDesc(o.changes,!0),i=o.mapped?o.mapped.composeDesc(s):s;return new Pt(r,Ne.mapEffects(o.effects,e),i,o.startSelection.map(s),n)}var uH=/^(input\.type|delete)($|\.)/,Nn=class{constructor(e,t,n=0,r=void 0){this.done=e,this.undone=t,this.prevTime=n,this.prevUserEvent=r}isolate(){return this.prevTime?new Nn(this.done,this.undone):this}addChanges(e,t,n,r,s){let i=this.done,l=i[i.length-1];return l&&l.changes&&!l.changes.empty&&e.changes&&(!n||uH.test(n))&&(!l.selectionsAfter.length&&t-this.prevTime<r.newGroupDelay&&r.joinToEvent(s,rH(l.changes,e.changes))||n=="input.type.compose")?i=Zd(i,i.length-1,r.minDepth,new Pt(e.changes.compose(l.changes),xT(e.effects,l.effects),l.mapped,l.startSelection,On)):i=Zd(i,i.length,r.minDepth,e),new Nn(i,On,t,n)}addSelection(e,t,n,r){let s=this.done.length?this.done[this.done.length-1].selectionsAfter:On;return s.length>0&&t-this.prevTime<r&&n==this.prevUserEvent&&n&&/^select($|\.)/.test(n)&&sH(s[s.length-1],e)?this:new Nn(vT(this.done,e),this.undone,t,n)}addMapping(e){return new Nn(xg(this.done,e),xg(this.undone,e),this.prevTime,this.prevUserEvent)}pop(e,t,n){let r=e==0?this.done:this.undone;if(r.length==0)return null;let s=r[r.length-1];if(n&&s.selectionsAfter.length)return t.update({selection:s.selectionsAfter[s.selectionsAfter.length-1],annotations:vg.of({side:e,rest:lH(r)}),userEvent:e==0?"select.undo":"select.redo",scrollIntoView:!0});if(s.changes){let i=r.length==1?On:r.slice(0,r.length-1);return s.mapped&&(i=xg(i,s.mapped)),t.update({changes:s.changes,selection:s.startSelection,effects:s.effects,annotations:vg.of({side:e,rest:i}),filter:!1,userEvent:e==0?"undo":"redo",scrollIntoView:!0})}else return null}};Nn.empty=new Nn(On,On);var Rg=[{key:"Mod-z",run:yT,preventDefault:!0},{key:"Mod-y",mac:"Mod-Shift-z",run:Cg,preventDefault:!0},{linux:"Ctrl-Shift-z",run:Cg,preventDefault:!0},{key:"Mod-u",run:nH,preventDefault:!0},{key:"Alt-u",mac:"Mod-Shift-u",run:oH,preventDefault:!0}];function ml(o,e){return $.create(o.ranges.map(e),o.mainIndex)}function Do(o,e){return o.update({selection:e,scrollIntoView:!0,userEvent:"select"})}function ro({state:o,dispatch:e},t){let n=ml(o.selection,t);return n.eq(o.selection)?!1:(e(Do(o,n)),!0)}function tp(o,e){return $.cursor(e?o.to:o.from)}function CT(o,e){return ro(o,t=>t.empty?o.moveByChar(t,e):tp(t,e))}function kt(o){return o.textDirectionAt(o.state.selection.main.head)==Ye.LTR}var ST=o=>CT(o,!kt(o)),wT=o=>CT(o,kt(o));function TT(o,e){return ro(o,t=>t.empty?o.moveByGroup(t,e):tp(t,e))}var cH=o=>TT(o,!kt(o)),dH=o=>TT(o,kt(o));function pH(o,e,t){if(e.type.prop(t))return!0;let n=e.to-e.from;return n&&(n>2||/[^\s,.;:]/.test(o.sliceDoc(e.from,e.to)))||e.firstChild}function np(o,e,t){let n=Ct(o).resolveInner(e.head),r=t?le.closedBy:le.openedBy;for(let a=e.head;;){let u=t?n.childAfter(a):n.childBefore(a);if(!u)break;pH(o,u,r)?n=u:a=t?u.to:u.from}let s=n.type.prop(r),i,l;return s&&(i=t?qs(o,n.from,1):qs(o,n.to,-1))&&i.matched?l=t?i.end.to:i.end.from:l=t?n.to:n.from,$.cursor(l,t?-1:1)}var fH=o=>ro(o,e=>np(o.state,e,!kt(o))),hH=o=>ro(o,e=>np(o.state,e,kt(o)));function ET(o,e){return ro(o,t=>{if(!t.empty)return tp(t,e);let n=o.moveVertically(t,e);return n.head!=t.head?n:o.moveToLineBoundary(t,e)})}var MT=o=>ET(o,!1),RT=o=>ET(o,!0);function DT(o){let e=o.scrollDOM.clientHeight<o.scrollDOM.scrollHeight-2,t=0,n=0,r;if(e){for(let s of o.state.facet(ae.scrollMargins)){let i=s(o);i!=null&&i.top&&(t=Math.max(i==null?void 0:i.top,t)),i!=null&&i.bottom&&(n=Math.max(i==null?void 0:i.bottom,n))}r=o.scrollDOM.clientHeight-t-n}else r=(o.dom.ownerDocument.defaultView||window).innerHeight;return{marginTop:t,marginBottom:n,selfScroll:e,height:Math.max(o.defaultLineHeight,r-5)}}function PT(o,e){let t=DT(o),{state:n}=o,r=ml(n.selection,i=>i.empty?o.moveVertically(i,e,t.height):tp(i,e));if(r.eq(n.selection))return!1;let s;if(t.selfScroll){let i=o.coordsAtPos(n.selection.main.head),l=o.scrollDOM.getBoundingClientRect(),a=l.top+t.marginTop,u=l.bottom-t.marginBottom;i&&i.top>a&&i.bottom<u&&(s=ae.scrollIntoView(r.main.head,{y:"start",yMargin:i.top-a}))}return o.dispatch(Do(n,r),{effects:s}),!0}var aT=o=>PT(o,!1),Sg=o=>PT(o,!0);function Hr(o,e,t){let n=o.lineBlockAt(e.head),r=o.moveToLineBoundary(e,t);if(r.head==e.head&&r.head!=(t?n.to:n.from)&&(r=o.moveToLineBoundary(e,t,!1)),!t&&r.head==n.from&&n.length){let s=/^\s*/.exec(o.state.sliceDoc(n.from,Math.min(n.from+100,n.to)))[0].length;s&&e.head!=n.from+s&&(r=$.cursor(n.from+s))}return r}var mH=o=>ro(o,e=>Hr(o,e,!0)),gH=o=>ro(o,e=>Hr(o,e,!1)),bH=o=>ro(o,e=>Hr(o,e,!kt(o))),yH=o=>ro(o,e=>Hr(o,e,kt(o))),xH=o=>ro(o,e=>$.cursor(o.lineBlockAt(e.head).from,1)),vH=o=>ro(o,e=>$.cursor(o.lineBlockAt(e.head).to,-1));function CH(o,e,t){let n=!1,r=ml(o.selection,s=>{let i=qs(o,s.head,-1)||qs(o,s.head,1)||s.head>0&&qs(o,s.head-1,1)||s.head<o.doc.length&&qs(o,s.head+1,-1);if(!i||!i.end)return s;n=!0;let l=i.start.from==s.head?i.end.to:i.end.from;return t?$.range(s.anchor,l):$.cursor(l)});return n?(e(Do(o,r)),!0):!1}var SH=({state:o,dispatch:e})=>CH(o,e,!1);function Hn(o,e){let t=ml(o.state.selection,n=>{let r=e(n);return $.range(n.anchor,r.head,r.goalColumn,r.bidiLevel||void 0)});return t.eq(o.state.selection)?!1:(o.dispatch(Do(o.state,t)),!0)}function kT(o,e){return Hn(o,t=>o.moveByChar(t,e))}var IT=o=>kT(o,!kt(o)),LT=o=>kT(o,kt(o));function AT(o,e){return Hn(o,t=>o.moveByGroup(t,e))}var wH=o=>AT(o,!kt(o)),TH=o=>AT(o,kt(o));var EH=o=>Hn(o,e=>np(o.state,e,!kt(o))),MH=o=>Hn(o,e=>np(o.state,e,kt(o)));function OT(o,e){return Hn(o,t=>o.moveVertically(t,e))}var NT=o=>OT(o,!1),HT=o=>OT(o,!0);function FT(o,e){return Hn(o,t=>o.moveVertically(t,e,DT(o).height))}var uT=o=>FT(o,!1),cT=o=>FT(o,!0),RH=o=>Hn(o,e=>Hr(o,e,!0)),DH=o=>Hn(o,e=>Hr(o,e,!1)),PH=o=>Hn(o,e=>Hr(o,e,!kt(o))),kH=o=>Hn(o,e=>Hr(o,e,kt(o))),IH=o=>Hn(o,e=>$.cursor(o.lineBlockAt(e.head).from)),LH=o=>Hn(o,e=>$.cursor(o.lineBlockAt(e.head).to)),dT=({state:o,dispatch:e})=>(e(Do(o,{anchor:0})),!0),pT=({state:o,dispatch:e})=>(e(Do(o,{anchor:o.doc.length})),!0),fT=({state:o,dispatch:e})=>(e(Do(o,{anchor:o.selection.main.anchor,head:0})),!0),hT=({state:o,dispatch:e})=>(e(Do(o,{anchor:o.selection.main.anchor,head:o.doc.length})),!0),AH=({state:o,dispatch:e})=>(e(o.update({selection:{anchor:0,head:o.doc.length},userEvent:"select"})),!0),OH=({state:o,dispatch:e})=>{let t=rp(o).map(({from:n,to:r})=>$.range(n,Math.min(r+1,o.doc.length)));return e(o.update({selection:$.create(t),userEvent:"select"})),!0},NH=({state:o,dispatch:e})=>{let t=ml(o.selection,n=>{var r;let s=Ct(o).resolveInner(n.head,1);for(;!(s.from<n.from&&s.to>=n.to||s.to>n.to&&s.from<=n.from||!(!((r=s.parent)===null||r===void 0)&&r.parent));)s=s.parent;return $.range(s.to,s.from)});return e(Do(o,t)),!0},HH=({state:o,dispatch:e})=>{let t=o.selection,n=null;return t.ranges.length>1?n=$.create([t.main]):t.main.empty||(n=$.create([$.cursor(t.main.head)])),n?(e(Do(o,n)),!0):!1};function op(o,e){if(o.state.readOnly)return!1;let t="delete.selection",{state:n}=o,r=n.changeByRange(s=>{let{from:i,to:l}=s;if(i==l){let a=e(i);a<i?(t="delete.backward",a=Yd(o,a,!1)):a>i&&(t="delete.forward",a=Yd(o,a,!0)),i=Math.min(i,a),l=Math.max(l,a)}else i=Yd(o,i,!1),l=Yd(o,l,!0);return i==l?{range:s}:{changes:{from:i,to:l},range:$.cursor(i)}});return r.changes.empty?!1:(o.dispatch(n.update(r,{scrollIntoView:!0,userEvent:t,effects:t=="delete.selection"?ae.announce.of(n.phrase("Selection deleted")):void 0})),!0)}function Yd(o,e,t){if(o instanceof ae)for(let n of o.state.facet(ae.atomicRanges).map(r=>r(o)))n.between(e,e,(r,s)=>{r<e&&s>e&&(e=t?s:r)});return e}var VT=(o,e)=>op(o,t=>{let{state:n}=o,r=n.doc.lineAt(t),s,i;if(!e&&t>r.from&&t<r.from+200&&!/[^ \t]/.test(s=r.text.slice(0,t-r.from))){if(s[s.length-1]==" ")return t-1;let l=Hs(s,n.tabSize),a=l%uu(n)||uu(n);for(let u=0;u<a&&s[s.length-1-u]==" ";u++)t--;i=t}else i=Dt(r.text,t-r.from,e,e)+r.from,i==t&&r.number!=(e?n.doc.lines:1)&&(i+=e?1:-1);return i}),wg=o=>VT(o,!1),BT=o=>VT(o,!0),zT=(o,e)=>op(o,t=>{let n=t,{state:r}=o,s=r.doc.lineAt(n),i=r.charCategorizer(n);for(let l=null;;){if(n==(e?s.to:s.from)){n==t&&s.number!=(e?r.doc.lines:1)&&(n+=e?1:-1);break}let a=Dt(s.text,n-s.from,e)+s.from,u=s.text.slice(Math.min(n,a)-s.from,Math.max(n,a)-s.from),c=i(u);if(l!=null&&c!=l)break;(u!=" "||n!=t)&&(l=c),n=a}return n}),$T=o=>zT(o,!1),FH=o=>zT(o,!0),WT=o=>op(o,e=>{let t=o.lineBlockAt(e).to;return e<t?t:Math.min(o.state.doc.length,e+1)}),VH=o=>op(o,e=>{let t=o.lineBlockAt(e).from;return e>t?t:Math.max(0,e-1)});var BH=({state:o,dispatch:e})=>{if(o.readOnly)return!1;let t=o.changeByRange(n=>({changes:{from:n.from,to:n.to,insert:ge.of(["",""])},range:$.cursor(n.from)}));return e(o.update(t,{scrollIntoView:!0,userEvent:"input"})),!0},zH=({state:o,dispatch:e})=>{if(o.readOnly)return!1;let t=o.changeByRange(n=>{if(!n.empty||n.from==0||n.from==o.doc.length)return{range:n};let r=n.from,s=o.doc.lineAt(r),i=r==s.from?r-1:Dt(s.text,r-s.from,!1)+s.from,l=r==s.to?r+1:Dt(s.text,r-s.from,!0)+s.from;return{changes:{from:i,to:l,insert:o.doc.slice(r,l).append(o.doc.slice(i,r))},range:$.cursor(l)}});return t.changes.empty?!1:(e(o.update(t,{scrollIntoView:!0,userEvent:"move.character"})),!0)};function rp(o){let e=[],t=-1;for(let n of o.selection.ranges){let r=o.doc.lineAt(n.from),s=o.doc.lineAt(n.to);if(!n.empty&&n.to==s.from&&(s=o.doc.lineAt(n.to-1)),t>=r.number){let i=e[e.length-1];i.to=s.to,i.ranges.push(n)}else e.push({from:r.from,to:s.to,ranges:[n]});t=s.number+1}return e}function _T(o,e,t){if(o.readOnly)return!1;let n=[],r=[];for(let s of rp(o)){if(t?s.to==o.doc.length:s.from==0)continue;let i=o.doc.lineAt(t?s.to+1:s.from-1),l=i.length+1;if(t){n.push({from:s.to,to:i.to},{from:s.from,insert:i.text+o.lineBreak});for(let a of s.ranges)r.push($.range(Math.min(o.doc.length,a.anchor+l),Math.min(o.doc.length,a.head+l)))}else{n.push({from:i.from,to:s.from},{from:s.to,insert:o.lineBreak+i.text});for(let a of s.ranges)r.push($.range(a.anchor-l,a.head-l))}}return n.length?(e(o.update({changes:n,scrollIntoView:!0,selection:$.create(r,o.selection.mainIndex),userEvent:"move.line"})),!0):!1}var $H=({state:o,dispatch:e})=>_T(o,e,!1),WH=({state:o,dispatch:e})=>_T(o,e,!0);function KT(o,e,t){if(o.readOnly)return!1;let n=[];for(let r of rp(o))t?n.push({from:r.from,insert:o.doc.slice(r.from,r.to)+o.lineBreak}):n.push({from:r.to,insert:o.lineBreak+o.doc.slice(r.from,r.to)});return e(o.update({changes:n,scrollIntoView:!0,userEvent:"input.copyline"})),!0}var _H=({state:o,dispatch:e})=>KT(o,e,!1),KH=({state:o,dispatch:e})=>KT(o,e,!0),UH=o=>{if(o.state.readOnly)return!1;let{state:e}=o,t=e.changes(rp(e).map(({from:r,to:s})=>(r>0?r--:s<e.doc.length&&s++,{from:r,to:s}))),n=ml(e.selection,r=>o.moveVertically(r,!0)).map(t);return o.dispatch({changes:t,selection:n,scrollIntoView:!0,userEvent:"delete.line"}),!0};function GH(o,e){if(/\(\)|\[\]|\{\}/.test(o.sliceDoc(e-1,e+1)))return{from:e,to:e};let t=Ct(o).resolveInner(e),n=t.childBefore(e),r=t.childAfter(e),s;return n&&r&&n.to<=e&&r.from>=e&&(s=n.type.prop(le.closedBy))&&s.indexOf(r.name)>-1&&o.doc.lineAt(n.to).from==o.doc.lineAt(r.from).from?{from:n.to,to:r.from}:null}var qH=UT(!1),jH=UT(!0);function UT(o){return({state:e,dispatch:t})=>{if(e.readOnly)return!1;let n=e.changeByRange(r=>{let{from:s,to:i}=r,l=e.doc.lineAt(s),a=!o&&s==i&&GH(e,s);o&&(s=i=(i<=l.to?l:e.doc.lineAt(i)).to);let u=new Us(e,{simulateBreak:s,simulateDoubleBreak:!!a}),c=fg(u,s);for(c==null&&(c=/^\s*/.exec(e.doc.lineAt(s).text)[0].length);i<l.to&&/\s/.test(l.text[i-l.from]);)i++;a?{from:s,to:i}=a:s>l.from&&s<l.from+100&&!/\S/.test(l.text.slice(0,s))&&(s=l.from);let d=["",cu(e,c)];return a&&d.push(cu(e,u.lineIndent(l.from,-1))),{changes:{from:s,to:i,insert:ge.of(d)},range:$.cursor(s+1+d[1].length)}});return t(e.update(n,{scrollIntoView:!0,userEvent:"input"})),!0}}function Dg(o,e){let t=-1;return o.changeByRange(n=>{let r=[];for(let i=n.from;i<=n.to;){let l=o.doc.lineAt(i);l.number>t&&(n.empty||n.to>l.from)&&(e(l,r,n),t=l.number),i=l.to+1}let s=o.changes(r);return{changes:r,range:$.range(s.mapPos(n.anchor,1),s.mapPos(n.head,1))}})}var QH=({state:o,dispatch:e})=>{if(o.readOnly)return!1;let t=Object.create(null),n=new Us(o,{overrideIndentation:s=>{let i=t[s];return i==null?-1:i}}),r=Dg(o,(s,i,l)=>{let a=fg(n,s.from);if(a==null)return;/\S/.test(s.text)||(a=0);let u=/^\s*/.exec(s.text)[0],c=cu(o,a);(u!=c||l.from<s.from+u.length)&&(t[s.from]=a,i.push({from:s.from,to:s.from+u.length,insert:c}))});return r.changes.empty||e(o.update(r,{userEvent:"indent"})),!0},JH=({state:o,dispatch:e})=>o.readOnly?!1:(e(o.update(Dg(o,(t,n)=>{n.push({from:t.from,insert:o.facet(au)})}),{userEvent:"input.indent"})),!0),XH=({state:o,dispatch:e})=>o.readOnly?!1:(e(o.update(Dg(o,(t,n)=>{let r=/^\s*/.exec(t.text)[0];if(!r)return;let s=Hs(r,o.tabSize),i=0,l=cu(o,Math.max(0,s-uu(o)));for(;i<r.length&&i<l.length&&r.charCodeAt(i)==l.charCodeAt(i);)i++;n.push({from:t.from+i,to:t.from+r.length,insert:l.slice(i)})}),{userEvent:"delete.dedent"})),!0);var YH=[{key:"Ctrl-b",run:ST,shift:IT,preventDefault:!0},{key:"Ctrl-f",run:wT,shift:LT},{key:"Ctrl-p",run:MT,shift:NT},{key:"Ctrl-n",run:RT,shift:HT},{key:"Ctrl-a",run:xH,shift:IH},{key:"Ctrl-e",run:vH,shift:LH},{key:"Ctrl-d",run:BT},{key:"Ctrl-h",run:wg},{key:"Ctrl-k",run:WT},{key:"Ctrl-Alt-h",run:$T},{key:"Ctrl-o",run:BH},{key:"Ctrl-t",run:zH},{key:"Ctrl-v",run:Sg}],ZH=[{key:"ArrowLeft",run:ST,shift:IT,preventDefault:!0},{key:"Mod-ArrowLeft",mac:"Alt-ArrowLeft",run:cH,shift:wH,preventDefault:!0},{mac:"Cmd-ArrowLeft",run:bH,shift:PH,preventDefault:!0},{key:"ArrowRight",run:wT,shift:LT,preventDefault:!0},{key:"Mod-ArrowRight",mac:"Alt-ArrowRight",run:dH,shift:TH,preventDefault:!0},{mac:"Cmd-ArrowRight",run:yH,shift:kH,preventDefault:!0},{key:"ArrowUp",run:MT,shift:NT,preventDefault:!0},{mac:"Cmd-ArrowUp",run:dT,shift:fT},{mac:"Ctrl-ArrowUp",run:aT,shift:uT},{key:"ArrowDown",run:RT,shift:HT,preventDefault:!0},{mac:"Cmd-ArrowDown",run:pT,shift:hT},{mac:"Ctrl-ArrowDown",run:Sg,shift:cT},{key:"PageUp",run:aT,shift:uT},{key:"PageDown",run:Sg,shift:cT},{key:"Home",run:gH,shift:DH,preventDefault:!0},{key:"Mod-Home",run:dT,shift:fT},{key:"End",run:mH,shift:RH,preventDefault:!0},{key:"Mod-End",run:pT,shift:hT},{key:"Enter",run:qH},{key:"Mod-a",run:AH},{key:"Backspace",run:wg,shift:wg},{key:"Delete",run:BT},{key:"Mod-Backspace",mac:"Alt-Backspace",run:$T},{key:"Mod-Delete",mac:"Alt-Delete",run:FH},{mac:"Mod-Backspace",run:VH},{mac:"Mod-Delete",run:WT}].concat(YH.map(o=>({mac:o.key,run:o.run,shift:o.shift}))),pu=[{key:"Alt-ArrowLeft",mac:"Ctrl-ArrowLeft",run:fH,shift:EH},{key:"Alt-ArrowRight",mac:"Ctrl-ArrowRight",run:hH,shift:MH},{key:"Alt-ArrowUp",run:$H},{key:"Shift-Alt-ArrowUp",run:_H},{key:"Alt-ArrowDown",run:WH},{key:"Shift-Alt-ArrowDown",run:KH},{key:"Escape",run:HH},{key:"Mod-Enter",run:jH},{key:"Alt-l",mac:"Ctrl-l",run:OH},{key:"Mod-i",run:NH,preventDefault:!0},{key:"Mod-[",run:XH},{key:"Mod-]",run:JH},{key:"Mod-Alt-\\",run:QH},{key:"Shift-Mod-k",run:UH},{key:"Shift-Mod-\\",run:SH},{key:"Mod-/",run:GN},{key:"Alt-A",run:jN}].concat(ZH);var eF=[...pu,...Rg],GT=(()=>[Zm(),Mg(),Ym(),bg(),Gs(hg,{fallback:!0}),Ws.of(eF)])();var tF=require("@vuu-ui/vuu-utils");var qT=[{label:"=",boost:10,type:"operator"},{label:"!=",boost:9,type:"operator"}],jT=[...qT,{label:"in",boost:6,type:"operator"},{label:"starts",boost:5,type:"operator"},{label:"ends",boost:4,type:"operator"}],QT=[...qT,{label:">",boost:8,type:"operator"},{label:"<",boost:7,type:"operator"}];var mF=require("@vuu-ui/vuu-utils"),$g=require("react");var bl=class{constructor(e,t,n,r,s,i,l,a,u,c=0,d){this.p=e,this.stack=t,this.state=n,this.reducePos=r,this.pos=s,this.score=i,this.buffer=l,this.bufferBase=a,this.curContext=u,this.lookAhead=c,this.parent=d}toString(){return`[${this.stack.filter((e,t)=>t%3==0).concat(this.state)}]@${this.pos}${this.score?"!"+this.score:""}`}static start(e,t,n=0){let r=e.parser.context;return new bl(e,[],t,n,n,0,[],0,r?new sp(r,r.start):null,0,null)}get context(){return this.curContext?this.curContext.context:null}pushState(e,t){this.stack.push(this.state,t,this.bufferBase+this.buffer.length),this.state=e}reduce(e){var t;let n=e>>19,r=e&65535,{parser:s}=this.p,i=s.dynamicPrecedence(r);if(i&&(this.score+=i),n==0){this.pushState(s.getGoto(this.state,r,!0),this.reducePos),r<s.minRepeatTerm&&this.storeNode(r,this.reducePos,this.reducePos,4,!0),this.reduceContext(r,this.reducePos);return}let l=this.stack.length-(n-1)*3-(e&262144?6:0),a=l?this.stack[l-2]:this.p.ranges[0].from,u=this.reducePos-a;u>=2e3&&!(!((t=this.p.parser.nodeSet.types[r])===null||t===void 0)&&t.isAnonymous)&&(a==this.p.lastBigReductionStart?(this.p.bigReductionCount++,this.p.lastBigReductionSize=u):this.p.lastBigReductionSize<u&&(this.p.bigReductionCount=1,this.p.lastBigReductionStart=a,this.p.lastBigReductionSize=u));let c=l?this.stack[l-1]:0,d=this.bufferBase+this.buffer.length-c;if(r<s.minRepeatTerm||e&131072){let p=s.stateFlag(this.state,1)?this.pos:this.reducePos;this.storeNode(r,a,p,d+4,!0)}if(e&262144)this.state=this.stack[l];else{let p=this.stack[l-3];this.state=s.getGoto(p,r,!0)}for(;this.stack.length>l;)this.stack.pop();this.reduceContext(r,a)}storeNode(e,t,n,r=4,s=!1){if(e==0&&(!this.stack.length||this.stack[this.stack.length-1]<this.buffer.length+this.bufferBase)){let i=this,l=this.buffer.length;if(l==0&&i.parent&&(l=i.bufferBase-i.parent.bufferBase,i=i.parent),l>0&&i.buffer[l-4]==0&&i.buffer[l-1]>-1){if(t==n)return;if(i.buffer[l-2]>=t){i.buffer[l-2]=n;return}}}if(!s||this.pos==n)this.buffer.push(e,t,n,r);else{let i=this.buffer.length;if(i>0&&this.buffer[i-4]!=0)for(;i>0&&this.buffer[i-2]>n;)this.buffer[i]=this.buffer[i-4],this.buffer[i+1]=this.buffer[i-3],this.buffer[i+2]=this.buffer[i-2],this.buffer[i+3]=this.buffer[i-1],i-=4,r>4&&(r-=4);this.buffer[i]=e,this.buffer[i+1]=t,this.buffer[i+2]=n,this.buffer[i+3]=r}}shift(e,t,n){let r=this.pos;if(e&131072)this.pushState(e&65535,this.pos);else if(e&262144)this.pos=n,this.shiftContext(t,r),t<=this.p.parser.maxNode&&this.buffer.push(t,r,n,4);else{let s=e,{parser:i}=this.p;(n>this.pos||t<=i.maxNode)&&(this.pos=n,i.stateFlag(s,1)||(this.reducePos=n)),this.pushState(s,r),this.shiftContext(t,r),t<=i.maxNode&&this.buffer.push(t,r,n,4)}}apply(e,t,n){e&65536?this.reduce(e):this.shift(e,t,n)}useNode(e,t){let n=this.p.reused.length-1;(n<0||this.p.reused[n]!=e)&&(this.p.reused.push(e),n++);let r=this.pos;this.reducePos=this.pos=r+e.length,this.pushState(t,r),this.buffer.push(n,r,this.reducePos,-1),this.curContext&&this.updateContext(this.curContext.tracker.reuse(this.curContext.context,e,this,this.p.stream.reset(this.pos-e.length)))}split(){let e=this,t=e.buffer.length;for(;t>0&&e.buffer[t-2]>e.reducePos;)t-=4;let n=e.buffer.slice(t),r=e.bufferBase+t;for(;e&&r==e.bufferBase;)e=e.parent;return new bl(this.p,this.stack.slice(),this.state,this.reducePos,this.pos,this.score,n,r,this.curContext,this.lookAhead,e)}recoverByDelete(e,t){let n=e<=this.p.parser.maxNode;n&&this.storeNode(e,this.pos,t,4),this.storeNode(0,this.pos,t,n?8:4),this.pos=this.reducePos=t,this.score-=190}canShift(e){for(let t=new kg(this);;){let n=this.p.parser.stateSlot(t.state,4)||this.p.parser.hasAction(t.state,e);if(n==0)return!1;if(!(n&65536))return!0;t.reduce(n)}}recoverByInsert(e){if(this.stack.length>=300)return[];let t=this.p.parser.nextStates(this.state);if(t.length>4<<1||this.stack.length>=120){let r=[];for(let s=0,i;s<t.length;s+=2)(i=t[s+1])!=this.state&&this.p.parser.hasAction(i,e)&&r.push(t[s],i);if(this.stack.length<120)for(let s=0;r.length<4<<1&&s<t.length;s+=2){let i=t[s+1];r.some((l,a)=>a&1&&l==i)||r.push(t[s],i)}t=r}let n=[];for(let r=0;r<t.length&&n.length<4;r+=2){let s=t[r+1];if(s==this.state)continue;let i=this.split();i.pushState(s,this.pos),i.storeNode(0,i.pos,i.pos,4,!0),i.shiftContext(t[r],this.pos),i.score-=200,n.push(i)}return n}forceReduce(){let e=this.p.parser.stateSlot(this.state,5);if(!(e&65536))return!1;let{parser:t}=this.p;if(!t.validAction(this.state,e)){let n=e>>19,r=e&65535,s=this.stack.length-n*3;if(s<0||t.getGoto(this.stack[s],r,!1)<0)return!1;this.storeNode(0,this.reducePos,this.reducePos,4,!0),this.score-=100}return this.reducePos=this.pos,this.reduce(e),!0}forceAll(){for(;!this.p.parser.stateFlag(this.state,2);)if(!this.forceReduce()){this.storeNode(0,this.pos,this.pos,4,!0);break}return this}get deadEnd(){if(this.stack.length!=3)return!1;let{parser:e}=this.p;return e.data[e.stateSlot(this.state,1)]==65535&&!e.stateSlot(this.state,4)}restart(){this.state=this.stack[0],this.stack.length=0}sameState(e){if(this.state!=e.state||this.stack.length!=e.stack.length)return!1;for(let t=0;t<this.stack.length;t+=3)if(this.stack[t]!=e.stack[t])return!1;return!0}get parser(){return this.p.parser}dialectEnabled(e){return this.p.parser.dialect.flags[e]}shiftContext(e,t){this.curContext&&this.updateContext(this.curContext.tracker.shift(this.curContext.context,e,this,this.p.stream.reset(t)))}reduceContext(e,t){this.curContext&&this.updateContext(this.curContext.tracker.reduce(this.curContext.context,e,this,this.p.stream.reset(t)))}emitContext(){let e=this.buffer.length-1;(e<0||this.buffer[e]!=-3)&&this.buffer.push(this.curContext.hash,this.reducePos,this.reducePos,-3)}emitLookAhead(){let e=this.buffer.length-1;(e<0||this.buffer[e]!=-4)&&this.buffer.push(this.lookAhead,this.reducePos,this.reducePos,-4)}updateContext(e){if(e!=this.curContext.context){let t=new sp(this.curContext.tracker,e);t.hash!=this.curContext.hash&&this.emitContext(),this.curContext=t}}setLookAhead(e){e>this.lookAhead&&(this.emitLookAhead(),this.lookAhead=e)}close(){this.curContext&&this.curContext.tracker.strict&&this.emitContext(),this.lookAhead>0&&this.emitLookAhead()}},sp=class{constructor(e,t){this.tracker=e,this.context=t,this.hash=e.strict?e.hash(t):0}},eE;(function(o){o[o.Insert=200]="Insert",o[o.Delete=190]="Delete",o[o.Reduce=100]="Reduce",o[o.MaxNext=4]="MaxNext",o[o.MaxInsertStackDepth=300]="MaxInsertStackDepth",o[o.DampenInsertStackDepth=120]="DampenInsertStackDepth",o[o.MinBigReduction=2e3]="MinBigReduction"})(eE||(eE={}));var kg=class{constructor(e){this.start=e,this.state=e.state,this.stack=e.stack,this.base=this.stack.length}reduce(e){let t=e&65535,n=e>>19;n==0?(this.stack==this.start.stack&&(this.stack=this.stack.slice()),this.stack.push(this.state,0,0),this.base+=3):this.base-=(n-1)*3;let r=this.start.p.parser.getGoto(this.stack[this.base-3],t,!0);this.state=r}},yl=class{constructor(e,t,n){this.stack=e,this.pos=t,this.index=n,this.buffer=e.buffer,this.index==0&&this.maybeNext()}static create(e,t=e.bufferBase+e.buffer.length){return new yl(e,t,t-e.bufferBase)}maybeNext(){let e=this.stack.parent;e!=null&&(this.index=this.stack.bufferBase-e.bufferBase,this.stack=e,this.buffer=e.buffer)}get id(){return this.buffer[this.index-4]}get start(){return this.buffer[this.index-3]}get end(){return this.buffer[this.index-2]}get size(){return this.buffer[this.index-1]}next(){this.index-=4,this.pos-=4,this.index==0&&this.maybeNext()}fork(){return new yl(this.stack,this.pos,this.index)}};function fu(o,e=Uint16Array){if(typeof o!="string")return o;let t=null;for(let n=0,r=0;n<o.length;){let s=0;for(;;){let i=o.charCodeAt(n++),l=!1;if(i==126){s=65535;break}i>=92&&i--,i>=34&&i--;let a=i-32;if(a>=46&&(a-=46,l=!0),s+=a,l)break;s*=46}t?t[r++]=s:t=new e(s)}return t}var gl=class{constructor(){this.start=-1,this.value=-1,this.end=-1,this.extended=-1,this.lookAhead=0,this.mask=0,this.context=0}},tE=new gl,Ig=class{constructor(e,t){this.input=e,this.ranges=t,this.chunk="",this.chunkOff=0,this.chunk2="",this.chunk2Pos=0,this.next=-1,this.token=tE,this.rangeIndex=0,this.pos=this.chunkPos=t[0].from,this.range=t[0],this.end=t[t.length-1].to,this.readNext()}resolveOffset(e,t){let n=this.range,r=this.rangeIndex,s=this.pos+e;for(;s<n.from;){if(!r)return null;let i=this.ranges[--r];s-=n.from-i.to,n=i}for(;t<0?s>n.to:s>=n.to;){if(r==this.ranges.length-1)return null;let i=this.ranges[++r];s+=i.from-n.to,n=i}return s}clipPos(e){if(e>=this.range.from&&e<this.range.to)return e;for(let t of this.ranges)if(t.to>e)return Math.max(e,t.from);return this.end}peek(e){let t=this.chunkOff+e,n,r;if(t>=0&&t<this.chunk.length)n=this.pos+e,r=this.chunk.charCodeAt(t);else{let s=this.resolveOffset(e,1);if(s==null)return-1;if(n=s,n>=this.chunk2Pos&&n<this.chunk2Pos+this.chunk2.length)r=this.chunk2.charCodeAt(n-this.chunk2Pos);else{let i=this.rangeIndex,l=this.range;for(;l.to<=n;)l=this.ranges[++i];this.chunk2=this.input.chunk(this.chunk2Pos=n),n+this.chunk2.length>l.to&&(this.chunk2=this.chunk2.slice(0,l.to-n)),r=this.chunk2.charCodeAt(0)}}return n>=this.token.lookAhead&&(this.token.lookAhead=n+1),r}acceptToken(e,t=0){let n=t?this.resolveOffset(t,-1):this.pos;if(n==null||n<this.token.start)throw new RangeError("Token end out of bounds");this.token.value=e,this.token.end=n}getChunk(){if(this.pos>=this.chunk2Pos&&this.pos<this.chunk2Pos+this.chunk2.length){let{chunk:e,chunkPos:t}=this;this.chunk=this.chunk2,this.chunkPos=this.chunk2Pos,this.chunk2=e,this.chunk2Pos=t,this.chunkOff=this.pos-this.chunkPos}else{this.chunk2=this.chunk,this.chunk2Pos=this.chunkPos;let e=this.input.chunk(this.pos),t=this.pos+e.length;this.chunk=t>this.range.to?e.slice(0,this.range.to-this.pos):e,this.chunkPos=this.pos,this.chunkOff=0}}readNext(){return this.chunkOff>=this.chunk.length&&(this.getChunk(),this.chunkOff==this.chunk.length)?this.next=-1:this.next=this.chunk.charCodeAt(this.chunkOff)}advance(e=1){for(this.chunkOff+=e;this.pos+e>=this.range.to;){if(this.rangeIndex==this.ranges.length-1)return this.setDone();e-=this.range.to-this.pos,this.range=this.ranges[++this.rangeIndex],this.pos=this.range.from}return this.pos+=e,this.pos>=this.token.lookAhead&&(this.token.lookAhead=this.pos+1),this.readNext()}setDone(){return this.pos=this.chunkPos=this.end,this.range=this.ranges[this.rangeIndex=this.ranges.length-1],this.chunk="",this.next=-1}reset(e,t){if(t?(this.token=t,t.start=e,t.lookAhead=e+1,t.value=t.extended=-1):this.token=tE,this.pos!=e){if(this.pos=e,e==this.end)return this.setDone(),this;for(;e<this.range.from;)this.range=this.ranges[--this.rangeIndex];for(;e>=this.range.to;)this.range=this.ranges[++this.rangeIndex];e>=this.chunkPos&&e<this.chunkPos+this.chunk.length?this.chunkOff=e-this.chunkPos:(this.chunk="",this.chunkOff=0),this.readNext()}return this}read(e,t){if(e>=this.chunkPos&&t<=this.chunkPos+this.chunk.length)return this.chunk.slice(e-this.chunkPos,t-this.chunkPos);if(e>=this.chunk2Pos&&t<=this.chunk2Pos+this.chunk2.length)return this.chunk2.slice(e-this.chunk2Pos,t-this.chunk2Pos);if(e>=this.range.from&&t<=this.range.to)return this.input.read(e,t);let n="";for(let r of this.ranges){if(r.from>=t)break;r.to>e&&(n+=this.input.read(Math.max(r.from,e),Math.min(r.to,t)))}return n}},Fr=class{constructor(e,t){this.data=e,this.id=t}token(e,t){let{parser:n}=t.p;aE(this.data,e,t,this.id,n.data,n.tokenPrecTable)}};Fr.prototype.contextual=Fr.prototype.fallback=Fr.prototype.extend=!1;var Lg=class{constructor(e,t,n){this.precTable=t,this.elseToken=n,this.data=typeof e=="string"?fu(e):e}token(e,t){let n=e.pos,r=0;for(;aE(this.data,e,t,0,this.data,this.precTable),!(e.token.value>-1);){if(this.elseToken==null)return;if(e.next<0)break;e.advance(),e.reset(e.pos,e.token),r++}r&&(e.reset(n,e.token),e.acceptToken(this.elseToken,r))}};Lg.prototype.contextual=Fr.prototype.fallback=Fr.prototype.extend=!1;function aE(o,e,t,n,r,s){let i=0,l=1<<n,{dialect:a}=t.p.parser;e:for(;l&o[i];){let u=o[i+1];for(let f=i+3;f<u;f+=2)if((o[f+1]&l)>0){let h=o[f];if(a.allows(h)&&(e.token.value==-1||e.token.value==h||nF(h,e.token.value,r,s))){e.acceptToken(h);break}}let c=e.next,d=0,p=o[i+2];if(e.next<0&&p>d&&o[u+p*3-3]==65535&&o[u+p*3-3]==65535){i=o[u+p*3-1];continue e}for(;d<p;){let f=d+p>>1,h=u+f+(f<<1),g=o[h],m=o[h+1]||65536;if(c<g)p=f;else if(c>=m)d=f+1;else{i=o[h+2],e.advance();continue e}}break}}function nE(o,e,t){for(let n=e,r;(r=o[n])!=65535;n++)if(r==t)return n-e;return-1}function nF(o,e,t,n){let r=nE(t,n,e);return r<0||nE(t,n,o)<r}var so=typeof process<"u"&&process.env&&/\bparse\b/.test(process.env.LOG),Pg=null,oE;(function(o){o[o.Margin=25]="Margin"})(oE||(oE={}));function rE(o,e,t){let n=o.cursor(Qe.IncludeAnonymous);for(n.moveTo(e);;)if(!(t<0?n.childBefore(e):n.childAfter(e)))for(;;){if((t<0?n.to<e:n.from>e)&&!n.type.isError)return t<0?Math.max(0,Math.min(n.to-1,e-25)):Math.min(o.length,Math.max(n.from+1,e+25));if(t<0?n.prevSibling():n.nextSibling())break;if(!n.parent())return t<0?0:o.length}}var Ag=class{constructor(e,t){this.fragments=e,this.nodeSet=t,this.i=0,this.fragment=null,this.safeFrom=-1,this.safeTo=-1,this.trees=[],this.start=[],this.index=[],this.nextFragment()}nextFragment(){let e=this.fragment=this.i==this.fragments.length?null:this.fragments[this.i++];if(e){for(this.safeFrom=e.openStart?rE(e.tree,e.from+e.offset,1)-e.offset:e.from,this.safeTo=e.openEnd?rE(e.tree,e.to+e.offset,-1)-e.offset:e.to;this.trees.length;)this.trees.pop(),this.start.pop(),this.index.pop();this.trees.push(e.tree),this.start.push(-e.offset),this.index.push(0),this.nextStart=this.safeFrom}else this.nextStart=1e9}nodeAt(e){if(e<this.nextStart)return null;for(;this.fragment&&this.safeTo<=e;)this.nextFragment();if(!this.fragment)return null;for(;;){let t=this.trees.length-1;if(t<0)return this.nextFragment(),null;let n=this.trees[t],r=this.index[t];if(r==n.children.length){this.trees.pop(),this.start.pop(),this.index.pop();continue}let s=n.children[r],i=this.start[t]+n.positions[r];if(i>e)return this.nextStart=i,null;if(s instanceof Ce){if(i==e){if(i<this.safeFrom)return null;let l=i+s.length;if(l<=this.safeTo){let a=s.prop(le.lookAhead);if(!a||l+a<this.fragment.to)return s}}this.index[t]++,i+s.length>=Math.max(this.safeFrom,e)&&(this.trees.push(s),this.start.push(i),this.index.push(0))}else this.index[t]++,this.nextStart=i+s.length}}},Og=class{constructor(e,t){this.stream=t,this.tokens=[],this.mainToken=null,this.actions=[],this.tokens=e.tokenizers.map(n=>new gl)}getActions(e){let t=0,n=null,{parser:r}=e.p,{tokenizers:s}=r,i=r.stateSlot(e.state,3),l=e.curContext?e.curContext.hash:0,a=0;for(let u=0;u<s.length;u++){if(!(1<<u&i))continue;let c=s[u],d=this.tokens[u];if(!(n&&!c.fallback)&&((c.contextual||d.start!=e.pos||d.mask!=i||d.context!=l)&&(this.updateCachedToken(d,c,e),d.mask=i,d.context=l),d.lookAhead>d.end+25&&(a=Math.max(d.lookAhead,a)),d.value!=0)){let p=t;if(d.extended>-1&&(t=this.addActions(e,d.extended,d.end,t)),t=this.addActions(e,d.value,d.end,t),!c.extend&&(n=d,t>p))break}}for(;this.actions.length>t;)this.actions.pop();return a&&e.setLookAhead(a),!n&&e.pos==this.stream.end&&(n=new gl,n.value=e.p.parser.eofTerm,n.start=n.end=e.pos,t=this.addActions(e,n.value,n.end,t)),this.mainToken=n,this.actions}getMainToken(e){if(this.mainToken)return this.mainToken;let t=new gl,{pos:n,p:r}=e;return t.start=n,t.end=Math.min(n+1,r.stream.end),t.value=n==r.stream.end?r.parser.eofTerm:0,t}updateCachedToken(e,t,n){let r=this.stream.clipPos(n.pos);if(t.token(this.stream.reset(r,e),n),e.value>-1){let{parser:s}=n.p;for(let i=0;i<s.specialized.length;i++)if(s.specialized[i]==e.value){let l=s.specializers[i](this.stream.read(e.start,e.end),n);if(l>=0&&n.p.parser.dialect.allows(l>>1)){l&1?e.extended=l>>1:e.value=l>>1;break}}}else e.value=0,e.end=this.stream.clipPos(r+1)}putAction(e,t,n,r){for(let s=0;s<r;s+=3)if(this.actions[s]==e)return r;return this.actions[r++]=e,this.actions[r++]=t,this.actions[r++]=n,r}addActions(e,t,n,r){let{state:s}=e,{parser:i}=e.p,{data:l}=i;for(let a=0;a<2;a++)for(let u=i.stateSlot(s,a?2:1);;u+=3){if(l[u]==65535)if(l[u+1]==1)u=er(l,u+2);else{r==0&&l[u+1]==2&&(r=this.putAction(er(l,u+2),t,n,r));break}l[u]==t&&(r=this.putAction(er(l,u+1),t,n,r))}return r}},sE;(function(o){o[o.Distance=5]="Distance",o[o.MaxRemainingPerStep=3]="MaxRemainingPerStep",o[o.MinBufferLengthPrune=500]="MinBufferLengthPrune",o[o.ForceReduceLimit=10]="ForceReduceLimit",o[o.CutDepth=15e3]="CutDepth",o[o.CutTo=9e3]="CutTo",o[o.MaxLeftAssociativeReductionCount=300]="MaxLeftAssociativeReductionCount",o[o.MaxStackCount=12]="MaxStackCount"})(sE||(sE={}));var Ng=class{constructor(e,t,n,r){this.parser=e,this.input=t,this.ranges=r,this.recovering=0,this.nextStackID=9812,this.minStackPos=0,this.reused=[],this.stoppedAt=null,this.lastBigReductionStart=-1,this.lastBigReductionSize=0,this.bigReductionCount=0,this.stream=new Ig(t,r),this.tokens=new Og(e,this.stream),this.topTerm=e.top[1];let{from:s}=r[0];this.stacks=[bl.start(this,e.top[0],s)],this.fragments=n.length&&this.stream.end-s>e.bufferLength*4?new Ag(n,e.nodeSet):null}get parsedPos(){return this.minStackPos}advance(){let e=this.stacks,t=this.minStackPos,n=this.stacks=[],r,s;if(this.bigReductionCount>300&&e.length==1){let[i]=e;for(;i.forceReduce()&&i.stack.length&&i.stack[i.stack.length-2]>=this.lastBigReductionStart;);this.bigReductionCount=this.lastBigReductionSize=0}for(let i=0;i<e.length;i++){let l=e[i];for(;;){if(this.tokens.mainToken=null,l.pos>t)n.push(l);else{if(this.advanceStack(l,n,e))continue;{r||(r=[],s=[]),r.push(l);let a=this.tokens.getMainToken(l);s.push(a.value,a.end)}}break}}if(!n.length){let i=r&&oF(r);if(i)return this.stackToTree(i);if(this.parser.strict)throw so&&r&&console.log("Stuck with token "+(this.tokens.mainToken?this.parser.getName(this.tokens.mainToken.value):"none")),new SyntaxError("No parse at "+t);this.recovering||(this.recovering=5)}if(this.recovering&&r){let i=this.stoppedAt!=null&&r[0].pos>this.stoppedAt?r[0]:this.runRecovery(r,s,n);if(i)return this.stackToTree(i.forceAll())}if(this.recovering){let i=this.recovering==1?1:this.recovering*3;if(n.length>i)for(n.sort((l,a)=>a.score-l.score);n.length>i;)n.pop();n.some(l=>l.reducePos>t)&&this.recovering--}else if(n.length>1){e:for(let i=0;i<n.length-1;i++){let l=n[i];for(let a=i+1;a<n.length;a++){let u=n[a];if(l.sameState(u)||l.buffer.length>500&&u.buffer.length>500)if((l.score-u.score||l.buffer.length-u.buffer.length)>0)n.splice(a--,1);else{n.splice(i--,1);continue e}}}n.length>12&&n.splice(12,n.length-12)}this.minStackPos=n[0].pos;for(let i=1;i<n.length;i++)n[i].pos<this.minStackPos&&(this.minStackPos=n[i].pos);return null}stopAt(e){if(this.stoppedAt!=null&&this.stoppedAt<e)throw new RangeError("Can't move stoppedAt forward");this.stoppedAt=e}advanceStack(e,t,n){let r=e.pos,{parser:s}=this,i=so?this.stackID(e)+" -> ":"";if(this.stoppedAt!=null&&r>this.stoppedAt)return e.forceReduce()?e:null;if(this.fragments){let u=e.curContext&&e.curContext.tracker.strict,c=u?e.curContext.hash:0;for(let d=this.fragments.nodeAt(r);d;){let p=this.parser.nodeSet.types[d.type.id]==d.type?s.getGoto(e.state,d.type.id):-1;if(p>-1&&d.length&&(!u||(d.prop(le.contextHash)||0)==c))return e.useNode(d,p),so&&console.log(i+this.stackID(e)+` (via reuse of ${s.getName(d.type.id)})`),!0;if(!(d instanceof Ce)||d.children.length==0||d.positions[0]>0)break;let f=d.children[0];if(f instanceof Ce&&d.positions[0]==0)d=f;else break}}let l=s.stateSlot(e.state,4);if(l>0)return e.reduce(l),so&&console.log(i+this.stackID(e)+` (via always-reduce ${s.getName(l&65535)})`),!0;if(e.stack.length>=15e3)for(;e.stack.length>9e3&&e.forceReduce(););let a=this.tokens.getActions(e);for(let u=0;u<a.length;){let c=a[u++],d=a[u++],p=a[u++],f=u==a.length||!n,h=f?e:e.split();if(h.apply(c,d,p),so&&console.log(i+this.stackID(h)+` (via ${c&65536?`reduce of ${s.getName(c&65535)}`:"shift"} for ${s.getName(d)} @ ${r}${h==e?"":", split"})`),f)return!0;h.pos>r?t.push(h):n.push(h)}return!1}advanceFully(e,t){let n=e.pos;for(;;){if(!this.advanceStack(e,null,null))return!1;if(e.pos>n)return iE(e,t),!0}}runRecovery(e,t,n){let r=null,s=!1;for(let i=0;i<e.length;i++){let l=e[i],a=t[i<<1],u=t[(i<<1)+1],c=so?this.stackID(l)+" -> ":"";if(l.deadEnd&&(s||(s=!0,l.restart(),so&&console.log(c+this.stackID(l)+" (restarted)"),this.advanceFully(l,n))))continue;let d=l.split(),p=c;for(let f=0;d.forceReduce()&&f<10&&(so&&console.log(p+this.stackID(d)+" (via force-reduce)"),!this.advanceFully(d,n));f++)so&&(p=this.stackID(d)+" -> ");for(let f of l.recoverByInsert(a))so&&console.log(c+this.stackID(f)+" (via recover-insert)"),this.advanceFully(f,n);this.stream.end>l.pos?(u==l.pos&&(u++,a=0),l.recoverByDelete(a,u),so&&console.log(c+this.stackID(l)+` (via recover-delete ${this.parser.getName(a)})`),iE(l,n)):(!r||r.score<l.score)&&(r=l)}return r}stackToTree(e){return e.close(),Ce.build({buffer:yl.create(e),nodeSet:this.parser.nodeSet,topID:this.topTerm,maxBufferLength:this.parser.bufferLength,reused:this.reused,start:this.ranges[0].from,length:e.pos-this.ranges[0].from,minRepeatType:this.parser.minRepeatTerm})}stackID(e){let t=(Pg||(Pg=new WeakMap)).get(e);return t||Pg.set(e,t=String.fromCodePoint(this.nextStackID++)),t+e}};function iE(o,e){for(let t=0;t<e.length;t++){let n=e[t];if(n.pos==o.pos&&n.sameState(o)){e[t].score<o.score&&(e[t]=o);return}}e.push(o)}var Hg=class{constructor(e,t,n){this.source=e,this.flags=t,this.disabled=n}allows(e){return!this.disabled||this.disabled[e]==0}};var Qs=class extends yr{constructor(e){if(super(),this.wrappers=[],e.version!=14)throw new RangeError(`Parser version (${e.version}) doesn't match runtime version (14)`);let t=e.nodeNames.split(" ");this.minRepeatTerm=t.length;for(let l=0;l<e.repeatNodeCount;l++)t.push("");let n=Object.keys(e.topRules).map(l=>e.topRules[l][1]),r=[];for(let l=0;l<t.length;l++)r.push([]);function s(l,a,u){r[l].push([a,a.deserialize(String(u))])}if(e.nodeProps)for(let l of e.nodeProps){let a=l[0];typeof a=="string"&&(a=le[a]);for(let u=1;u<l.length;){let c=l[u++];if(c>=0)s(c,a,l[u++]);else{let d=l[u+-c];for(let p=-c;p>0;p--)s(l[u++],a,d);u++}}}this.nodeSet=new zo(t.map((l,a)=>nt.define({name:a>=this.minRepeatTerm?void 0:l,id:a,props:r[a],top:n.indexOf(a)>-1,error:a==0,skipped:e.skippedNodes&&e.skippedNodes.indexOf(a)>-1}))),e.propSources&&(this.nodeSet=this.nodeSet.extend(...e.propSources)),this.strict=!1,this.bufferLength=1024;let i=fu(e.tokenData);this.context=e.context,this.specializerSpecs=e.specialized||[],this.specialized=new Uint16Array(this.specializerSpecs.length);for(let l=0;l<this.specializerSpecs.length;l++)this.specialized[l]=this.specializerSpecs[l].term;this.specializers=this.specializerSpecs.map(lE),this.states=fu(e.states,Uint32Array),this.data=fu(e.stateData),this.goto=fu(e.goto),this.maxTerm=e.maxTerm,this.tokenizers=e.tokenizers.map(l=>typeof l=="number"?new Fr(i,l):l),this.topRules=e.topRules,this.dialects=e.dialects||{},this.dynamicPrecedences=e.dynamicPrecedences||null,this.tokenPrecTable=e.tokenPrec,this.termNames=e.termNames||null,this.maxNode=this.nodeSet.types.length-1,this.dialect=this.parseDialect(),this.top=this.topRules[Object.keys(this.topRules)[0]]}createParse(e,t,n){let r=new Ng(this,e,t,n);for(let s of this.wrappers)r=s(r,e,t,n);return r}getGoto(e,t,n=!1){let r=this.goto;if(t>=r[0])return-1;for(let s=r[t+1];;){let i=r[s++],l=i&1,a=r[s++];if(l&&n)return a;for(let u=s+(i>>1);s<u;s++)if(r[s]==e)return a;if(l)return-1}}hasAction(e,t){let n=this.data;for(let r=0;r<2;r++)for(let s=this.stateSlot(e,r?2:1),i;;s+=3){if((i=n[s])==65535)if(n[s+1]==1)i=n[s=er(n,s+2)];else{if(n[s+1]==2)return er(n,s+2);break}if(i==t||i==0)return er(n,s+1)}return 0}stateSlot(e,t){return this.states[e*6+t]}stateFlag(e,t){return(this.stateSlot(e,0)&t)>0}validAction(e,t){if(t==this.stateSlot(e,4))return!0;for(let n=this.stateSlot(e,1);;n+=3){if(this.data[n]==65535)if(this.data[n+1]==1)n=er(this.data,n+2);else return!1;if(t==er(this.data,n+1))return!0}}nextStates(e){let t=[];for(let n=this.stateSlot(e,1);;n+=3){if(this.data[n]==65535)if(this.data[n+1]==1)n=er(this.data,n+2);else break;if(!(this.data[n+2]&1)){let r=this.data[n+1];t.some((s,i)=>i&1&&s==r)||t.push(this.data[n],r)}}return t}configure(e){let t=Object.assign(Object.create(Qs.prototype),this);if(e.props&&(t.nodeSet=this.nodeSet.extend(...e.props)),e.top){let n=this.topRules[e.top];if(!n)throw new RangeError(`Invalid top rule name ${e.top}`);t.top=n}return e.tokenizers&&(t.tokenizers=this.tokenizers.map(n=>{let r=e.tokenizers.find(s=>s.from==n);return r?r.to:n})),e.specializers&&(t.specializers=this.specializers.slice(),t.specializerSpecs=this.specializerSpecs.map((n,r)=>{let s=e.specializers.find(l=>l.from==n.external);if(!s)return n;let i=Object.assign(Object.assign({},n),{external:s.to});return t.specializers[r]=lE(i),i})),e.contextTracker&&(t.context=e.contextTracker),e.dialect&&(t.dialect=this.parseDialect(e.dialect)),e.strict!=null&&(t.strict=e.strict),e.wrap&&(t.wrappers=t.wrappers.concat(e.wrap)),e.bufferLength!=null&&(t.bufferLength=e.bufferLength),t}hasWrappers(){return this.wrappers.length>0}getName(e){return this.termNames?this.termNames[e]:String(e<=this.maxNode&&this.nodeSet.types[e].name||e)}get eofTerm(){return this.maxNode+1}get topNode(){return this.nodeSet.types[this.top[1]]}dynamicPrecedence(e){let t=this.dynamicPrecedences;return t==null?0:t[e]||0}parseDialect(e){let t=Object.keys(this.dialects),n=t.map(()=>!1);if(e)for(let s of e.split(" ")){let i=t.indexOf(s);i>=0&&(n[i]=!0)}let r=null;for(let s=0;s<t.length;s++)if(!n[s])for(let i=this.dialects[t[s]],l;(l=this.data[i++])!=65535;)(r||(r=new Uint8Array(this.maxTerm+1)))[l]=1;return new Hg(e,n,r)}static deserialize(e){return new Qs(e)}};function er(o,e){return o[e]|o[e+1]<<16}function oF(o){let e=null;for(let t of o){let n=t.p.stoppedAt;(t.pos==t.p.stream.end||n!=null&&t.pos>n)&&t.p.parser.stateFlag(t.state,2)&&(!e||e.score<t.score)&&(e=t)}return e}function lE(o){if(o.external){let e=o.extend?1:0;return(t,n)=>o.external(t,n)<<1|e}return o.get}var ip=Qs.deserialize({version:14,states:"&fOVQPOOO!SQPO'#C^OVQPO'#CcQ!pQPOOO#OQPO'#CkO#TQPO'#CrOOQO'#Cy'#CyO#YQPO,58}OVQPO,59QOVQPO,59QOVQPO,59VOVQPO'#CtOOQO,59^,59^OOQO1G.i1G.iOOQO1G.l1G.lO#kQPO1G.lO$fQPO'#CmO%WQQO1G.qOOQO'#C{'#C{O%cQPO,59`OOQO'#Cn'#CnO%wQPO,59XOVQPO,59ZOVQPO,59[OVQPO7+$]OVQPO'#CuO&`QPO1G.zOOQO1G.z1G.zO&hQQO'#C^O&rQQO1G.sO'ZQQO1G.uOOQO1G.v1G.vO'fQPO<<GwO'wQPO,59aOOQO-E6s-E6sOOQO7+$f7+$fOVQPOAN=cO(]QQO1G.lO(tQPOG22}OOQOLD(iLD(iO%wQPO,59QO%wQPO,59Q",stateData:")[~OlOS~ORUOSUOTUOUUOWQO`SOnPO~OWgXZQX[QX]QX^QXeQX~OjQXXQXpQXqQXrQXsQXtQXuQX~PnOZWO[WO]XO^XO~OWYO~OWZO~OX]OZWO[WO]XO^XO~OZWO[WO]Yi^YijYiXYipYiqYirYisYitYiuYieYi~OZWO[WO]XO^XOpdOqdOrdOsdOtdOudO~OehOvfOwgO~OXkOZWO[WO]XO^XOeiO~ORUOSUOTUOUUOWQO`SOnlO~OXsOeiO~OvQXwQX~PnOZxO[xO]yO^yOeaivaiwai~OwgOecivci~OZWO[WO]XO^XOetO~OZWO[WO]XO^XOXiaeia~OZxO[xO]Yi^YieYivYiwYi~OXwOZWO[WO]XO^XO~O`UTn~",goto:"#spPPqPPPPqPPqPPPPqP!R!W!R!RPq!Z!k!nPPP!tP#jmUOQWXYZefghitxyVbYfgRe`mTOQWXYZefghitxyR[TQjcRrjQROQVQS^WxQ_XU`YfgQcZQmeQphQqiQuyRvtQaYQnfRog",nodeNames:"\u26A0 ColumnDefinitionExpression Column Number String True False ParenthesizedExpression OpenBrace CloseBrace ArithmeticExpression Divide Times Plus Minus ConditionalExpression If RelationalExpression RelationalOperator AndCondition OrCondition Comma CallExpression Function ArgList",maxTerm:39,skippedNodes:[0],repeatNodeCount:1,tokenData:".^~RnXY#PYZ#P]^#Ppq#Pqr#brs#mxy$eyz$jz{$o{|$t|}$y}!O%O!O!P%T!P!Q%c!Q![%h!^!_%s!_!`&Q!`!a&V!c!}&d#R#S&d#T#U&u#U#Y&d#Y#Z(Y#Z#]&d#]#^*j#^#c&d#c#d+f#d#h&d#h#i,b#i#o&d~#USl~XY#PYZ#P]^#Ppq#P~#eP!_!`#h~#mOu~~#pWOX#mZ]#m^r#mrs$Ys#O#m#P;'S#m;'S;=`$_<%lO#m~$_OS~~$bP;=`<%l#m~$jOW~~$oOX~~$tO[~~$yO]~~%OOe~~%TO^~~%WP!Q![%Z~%`PR~!Q![%Z~%hOZ~~%mQR~!O!P%Z!Q![%h~%xPr~!_!`%{~&QOt~~&VOp~~&[Pq~!_!`&_~&dOs~P&iSnP!Q![&d!c!}&d#R#S&d#T#o&dR&zUnP!Q![&d!c!}&d#R#S&d#T#b&d#b#c'^#c#o&dR'cUnP!Q![&d!c!}&d#R#S&d#T#W&d#W#X'u#X#o&dR'|SvQnP!Q![&d!c!}&d#R#S&d#T#o&d~(_TnP!Q![&d!c!}&d#R#S&d#T#U(n#U#o&d~(sUnP!Q![&d!c!}&d#R#S&d#T#`&d#`#a)V#a#o&d~)[UnP!Q![&d!c!}&d#R#S&d#T#g&d#g#h)n#h#o&d~)sUnP!Q![&d!c!}&d#R#S&d#T#X&d#X#Y*V#Y#o&d~*^SU~nP!Q![&d!c!}&d#R#S&d#T#o&d~*oUnP!Q![&d!c!}&d#R#S&d#T#Y&d#Y#Z+R#Z#o&d~+YS`~nP!Q![&d!c!}&d#R#S&d#T#o&dR+kUnP!Q![&d!c!}&d#R#S&d#T#f&d#f#g+}#g#o&dR,USwQnP!Q![&d!c!}&d#R#S&d#T#o&d~,gUnP!Q![&d!c!}&d#R#S&d#T#f&d#f#g,y#g#o&d~-OUnP!Q![&d!c!}&d#R#S&d#T#i&d#i#j-b#j#o&d~-gUnP!Q![&d!c!}&d#R#S&d#T#X&d#X#Y-y#Y#o&d~.QST~nP!Q![&d!c!}&d#R#S&d#T#o&d",tokenizers:[0,1],topRules:{ColumnDefinitionExpression:[0,1]},tokenPrec:375});var Xee=Ro.define({name:"VuuColumnExpression",parser:ip.configure({props:[Ks({Function:_.variableName,String:_.string,Or:_.emphasis,Operator:_.operator})]})});var Fg=class{constructor(e){switch(this.value=e,typeof e){case"boolean":this.type="booleanLiteralExpression";break;case"number":this.type="numericLiteralExpression";break;default:this.type="stringLiteralExpression"}}toJSON(){return{type:this.type,value:this.value}}},Vg=class{constructor(e){this.type="colExpression";this.column=e}toJSON(){return{type:this.type,column:this.column}}},mu,Xs,uE=class{constructor(e="unknown"){de(this,mu,[{type:"unknown"},{type:"unknown"}]);de(this,Xs,void 0);this.type="arithmeticExpression";Z(this,Xs,e)}get op(){return R(this,Xs)}set op(e){Z(this,Xs,e)}get expressions(){return R(this,mu)}toJSON(){return{type:this.type,op:R(this,Xs),expressions:R(this,mu)}}};mu=new WeakMap,Xs=new WeakMap;var Sl,Bg=class{constructor(e){de(this,Sl,[]);this.type="callExpression";this.functionName=e}get expressions(){return R(this,Sl)}get arguments(){return R(this,Sl)}toJSON(){return{type:this.type,functionName:this.functionName,arguments:R(this,Sl).map(e=>{var t;return(t=e.toJSON)==null?void 0:t.call(e)})}}};Sl=new WeakMap;var gu,wl,vl=class{constructor(){de(this,gu,[{type:"unknown"},{type:"unknown"}]);de(this,wl,"unknown");this.type="relationalExpression"}get op(){return R(this,wl)}set op(e){Z(this,wl,e)}get expressions(){return R(this,gu)}toJSON(){return{type:this.type,op:R(this,wl),expressions:R(this,gu)}}};gu=new WeakMap,wl=new WeakMap;var bu,Tl,Cl=class{constructor(e){de(this,bu,[{type:"unknown"},{type:"unknown"}]);de(this,Tl,void 0);this.type="booleanCondition";Z(this,Tl,e)}get op(){return R(this,Tl)}get expressions(){return R(this,bu)}toJSON(){return{type:this.type,op:R(this,Tl),expressions:R(this,bu).map(e=>{var t;return(t=e.toJSON)==null?void 0:t.call(e)})}}};bu=new WeakMap,Tl=new WeakMap;var Po,hu=class{constructor(e){de(this,Po,void 0);this.type="conditionalExpression";Z(this,Po,[e?new Cl(e):new vl,{type:"unknown"},{type:"unknown"}])}get expressions(){return R(this,Po)}get condition(){return R(this,Po)[0]}get truthyExpression(){return R(this,Po)[1]}set truthyExpression(e){R(this,Po)[1]=e}get falsyExpression(){return R(this,Po)[2]}set falsyExpression(e){R(this,Po)[2]=e}toJSON(){var e,t,n,r,s;return{type:this.type,condition:(t=(e=this.condition).toJSON)==null?void 0:t.call(e),truthyExpression:this.truthyExpression,falsyExpression:(s=(r=(n=this.falsyExpression)==null?void 0:n.toJSON)==null?void 0:r.call(n))!=null?s:this.falsyExpression}}};Po=new WeakMap;var Js=o=>o.type==="unknown",lp=o=>o.type==="arithmeticExpression",rF=o=>o.type==="callExpression",xl=o=>o.type==="conditionalExpression",sF=o=>o.type==="relationalExpression"||o.type==="booleanCondition";var iF=o=>o.type==="booleanCondition",zg=o=>(o==null?void 0:o.type)==="relationalExpression";var Fn=o=>{if(Js(o))return o;if(zg(o)){let[e,t]=o.expressions;if(It(e))return Fn(e);if(o.op==="unknown")return o;if(It(t))return Fn(t)}else if(sF(o)){let{expressions:e=[]}=o;for(let t of e)if(It(t))return Fn(t)}else if(xl(o)){let{condition:e,truthyExpression:t,falsyExpression:n}=o;if(It(e))return Fn(e);if(It(t))return Fn(t);if(It(n))return Fn(n)}else if(lp(o)){let{expressions:e=[]}=o;for(let t of e)if(It(t))return Fn(t)}},ap=(o,e,t)=>{let{expressions:n=[]}=o;if(n.includes(e)){let r=n.indexOf(e);return n.splice(r,1,t),!0}else for(let r of n)if(ap(r,e,t))return!0;return!1},It=o=>Js(o)?!0:xl(o)?It(o.condition)||It(o.truthyExpression)||It(o.falsyExpression):zg(o)||iF(o)?o.op===void 0||o.expressions.some(e=>It(e)):!1,cE=(o,e)=>{let t=Fn(o);t?t.expressions?t.expressions.push(e):console.warn("don't know how to treat targetExpression"):console.error("no target expression found")},be,Ys,dE=class{constructor(){de(this,be,void 0);de(this,Ys,[])}setCondition(e){if(R(this,be)===void 0)this.addExpression(new hu(e));else if(xl(R(this,be))){if(It(R(this,be).condition)){let t=e?new Cl(e):new vl;this.addExpression(t)}else if(Js(R(this,be).truthyExpression))R(this,be).truthyExpression=new hu(e);else if(It(R(this,be).truthyExpression)){let t=e?new Cl(e):new vl;this.addExpression(t)}else if(Js(R(this,be).falsyExpression))R(this,be).falsyExpression=new hu(e);else if(It(R(this,be).falsyExpression)){let t=e?new Cl(e):new vl;this.addExpression(t)}}else console.error("setCondition called unexpectedly")}addExpression(e){if(R(this,Ys).length>0){let t=R(this,Ys).at(-1);t==null||t.arguments.push(e)}else if(R(this,be)===void 0)Z(this,be,e);else if(lp(R(this,be))){let t=Fn(R(this,be));t&&Js(t)&&ap(R(this,be),t,e)}else if(xl(R(this,be))&&It(R(this,be))){let t=Fn(R(this,be));t&&Js(t)?ap(R(this,be),t,e):t&&cE(t,e)}}setFunction(e){let t=new Bg(e);this.addExpression(t),R(this,Ys).push(t)}setColumn(e){this.addExpression(new Vg(e))}setArithmeticOp(e){let t=e,n=R(this,be);lp(n)&&(n.op=t)}setRelationalOperator(e){let t=e;if(R(this,be)&&xl(R(this,be))){let n=Fn(R(this,be));zg(n)?n.op=t:console.error(`no target expression found (op = ${e})`)}}setValue(e){let t=new Fg(e);if(R(this,be)===void 0)Z(this,be,t);else if(lp(R(this,be)))this.addExpression(t);else if(rF(R(this,be)))R(this,be).arguments.push(t);else if(xl(R(this,be)))if(It(R(this,be))){let n=Fn(R(this,be));n&&Js(n)?ap(R(this,be),n,t):n&&cE(n,t)}else console.log("what do we do with value, in a complete expression")}closeBrace(){R(this,Ys).pop()}get expression(){return R(this,be)}toJSON(){var e;return(e=R(this,be))==null?void 0:e.toJSON()}};be=new WeakMap,Ys=new WeakMap;var nte=ip.configure({strict:!0}),lF=["Number","String"],aF=[...lF,"AndCondition","ArithmeticExpression","BooleanOperator","RelationalOperatorOperator","CallExpression","CloseBrace","Column","Comma","ConditionalExpression","Divide","Equal","If","Minus","OpenBrace","OrCondition","ParenthesizedExpression","Plus","RelationalExpression","RelationalOperator","Times"];var uF=oo.define([{tag:_.variableName,color:"var(--vuuFilterEditor-variableColor)"},{tag:_.comment,color:"green",fontStyle:"italic"}]),cF=Gs(uF);var dF=ae.theme({"&":{border:"solid 1px var(--salt-container-primary-borderColor)",color:"var(--vuuFilterEditor-color)",backgroundColor:"var(--vuuFilterEditor-background)"},".cm-content":{caretColor:"var(--vuuFilterEditor-cursorColor)"},"&.cm-focused .cm-cursor":{borderLeftColor:"var(--vuuFilterEditor-cursorColor)"},"&.cm-focused .cm-selectionBackground, ::selection":{backgroundColor:"var(--vuuFilterEditor-selectionBackground)"},".cm-selectionBackground, ::selection":{backgroundColor:"var(--vuuFilterEditor-selectionBackground)"},".cm-scroller":{fontFamily:"var(--vuuFilterEditor-fontFamily)"},".cm-tooltip":{background:"var(--vuuFilterEditor-tooltipBackground)",border:"var(--vuuFilterEditor-tooltipBorder)",boxShadow:"var(--vuuFilterEditor-tooltipElevation)","&.cm-tooltip-autocomplete > ul":{fontFamily:"var(--vuuFilterEditor-fontFamily)",fontSize:"var(--vuuFilterEditor-fontSize)",maxHeight:"240px"},"&.cm-tooltip-autocomplete > ul > li":{height:"var(--vuuFilterEditor-suggestion-height)",padding:"0 3px",lineHeight:"var(--vuuFilterEditor-suggestion-height)"},"&.cm-tooltip-autocomplete li[aria-selected]":{background:"var(--vuuFilterEditor-suggestion-selectedBackground)",color:"var(--vuuFilterEditor-suggestion-selectedColor)"},"&.cm-tooltip-autocomplete li .cm-completionDetail":{color:"var(--vuuFilterEditor-suggestion-detailColor)"}}},{dark:!1});var hF=require("react");var gF=require("react/jsx-runtime");var hE=require("@vuu-ui/vuu-utils"),mE=require("react");var pE=[{accepts:"string",description:"Returns multiple string values as a single joined string. Arguments may be string literal values, string columns or other string expressions. Non string arguments may also be included, these will be converted to strings.",example:{expression:'concatenate("example", "-test")',result:'"example-test"'},name:"concatenate",params:{description:"( string, string, [ string* ] )"},type:"string"},{accepts:["string","string"],description:"Tests a string value to determine whether it contains a given substring. Accepts two arguments: source text and target substring. Returns true if <source text> contains one or more occurrences of <target subscring>",example:{expression:'contains("Royal Bank of Scotland", "bank")',result:"true"},name:"contains",params:{description:"( string )"},type:"boolean"},{accepts:["string","number"],description:"Returns the leftmost <number> characters from <string>. First argument may be a string literal, string column or other string expression.",example:{expression:'left("USD Benchmark Report", 3)',result:'"USD"'},name:"left",params:{count:2,description:"( string, number )"},type:"string"},{accepts:"string",description:"Returns the number of characters in <string>. Argument may be a string literal, string column or other string expression.",example:{expression:'len("example")',result:"7"},name:"len",params:{description:"(string)"},type:"number"},{accepts:"string",description:"Convert a string value to lowercase. Argument may be a string column or other string expression.",example:{expression:'lower("examPLE")',result:'"example"'},name:"lower",params:{description:"( string )"},type:"string"},{accepts:"string",description:"Convert a string value to uppercase. Argument may be a string column or other string expression.",example:{expression:'upper("example")',result:'"EXAMPLE"'},name:"upper",params:{description:"( string )"},type:"string"},{accepts:["string","number"],description:"Returns the rightmost <number> characters from <string>. First argument may be a string literal, string column or other string expression.",example:{expression:"blah",result:"blah"},name:"right",params:{description:"( string )"},type:"string"},{accepts:["string","string","string"],description:"Replace characters within a string. Accepts three arguments: source text, text to replace and replacement text. Returns a copy of <source text> with any occurrences of <text to replace> replaced by <replacement text>",example:{expression:"blah",result:"blah"},name:"replace",params:{description:"( string )"},type:"string"},{accepts:"number",description:"Converts a number to a string.",example:{expression:"blah",result:"blah"},name:"text",params:{description:"( string )"},type:"string"},{accepts:"string",description:"Tests a string value to determine whether it starts with a given substring. Accepts two arguments: source text and target substring. Returns true if <source text> starts with <target subscring>.",example:{expression:"blah",result:"blah"},name:"starts",params:{description:"( string )"},type:"boolean"},{accepts:"string",description:"Tests a string value to determine whether it ends with a given substring. Accepts two arguments: source text and target substring. Returns true if <source text> ends with <target subscring>.",example:{expression:"blah",result:"blah"},name:"ends",params:{description:"( string )"},type:"boolean"},{accepts:"number",description:"blah",example:{expression:"blah",result:"blah"},name:"min",params:{description:"( string )"},type:"number"},{accepts:"number",description:"blah",example:{expression:"blah",result:"blah"},name:"max",params:{description:"( string )"},type:"number"},{accepts:"number",description:"blah",example:{expression:"blah",result:"blah"},name:"sum",params:{description:"( string )"},type:"number"},{accepts:"number",description:"blah",example:{expression:"blah",result:"blah"},name:"round",params:{description:"( string )"},type:"number"},{accepts:"any",description:"blah",example:{expression:"blah",result:"blah"},name:"or",params:{description:"( string )"},type:"boolean"},{accepts:"any",description:"blah",example:{expression:"blah",result:"blah"},name:"and",params:{description:"( string )"},type:"boolean"},{accepts:"any",description:"Return one of two possible result values, depending on the evaluation of a filter expression. If <filterExpression> resolves to true, result is <expression1>, otherwise <expression2>. ",example:{expression:"blah",result:"blah"},name:"if",params:{description:"( filterExpression, expression1, expression 2)"},type:"variable"}];var ko=require("@vuu-ui/vuu-utils"),fE=({name:o,description:e,example:t,params:n,type:r})=>{let s=(0,ko.createEl)("div","vuuFunctionDoc"),i=(0,ko.createEl)("div","function-heading"),l=(0,ko.createEl)("span","function-name",o),a=(0,ko.createEl)("span","param-list",n.description),u=(0,ko.createEl)("span","function-type",r);i.appendChild(l),i.appendChild(a),i.appendChild(u);let c=(0,ko.createEl)("p",void 0,e);if(s.appendChild(i),s.appendChild(c),t){let d=(0,ko.createEl)("div","example-container","Example:"),p=(0,ko.createEl)("div","example-expression",t.expression),f=(0,ko.createEl)("div","example-result",t.result);d.appendChild(p),d.appendChild(f),s.appendChild(d)}return s};var xF=o=>({apply:`${o.name}( `,boost:2,expressionType:o.type,info:()=>fE(o),label:o.name,type:"function"});var rne=pE.map(xF);var up=require("@vuu-ui/vuu-utils"),Wg=require("react");var bE=require("react/jsx-runtime");var xE=require("react/jsx-runtime");var vE=require("react"),vF=B(require("classnames"),1);var CE=require("react/jsx-runtime");var $ne=new Intl.NumberFormat;var El=require("@salt-ds/core");var dp=require("@vuu-ui/vuu-utils"),Kg=require("react");var SE=require("react/jsx-runtime");var wE=require("@vuu-ui/vuu-utils"),Io=require("react"),TE=({availableColumns:o,onAvailableColumnsChange:e,onConfigChange:t,onCreateCalculatedColumn:n,onDataSourceConfigChange:r,tableConfig:s})=>{let i=qt(),l=(0,Io.useRef)(),[a,u]=(0,Io.useState)(o),c=(0,Io.useCallback)((h,g,m)=>{i({type:"set-props",path:"#context-panel",props:{expanded:!0,content:{type:h,props:m},title:g}})},[i]),d=(0,Io.useCallback)(h=>{let g=a.concat({name:h.name,serverDataType:(0,wE.getCalculatedColumnType)(h)});u(g),e==null||e(g),requestAnimationFrame(()=>{var m;(m=l.current)==null||m.call(l)}),n(h)},[a,e,n]),p=(0,Io.useCallback)(h=>{c("ColumnSettings","Column Settings",{column:h.column,onConfigChange:t,onCreateCalculatedColumn:d,tableConfig:s,vuuTable:h.vuuTable})},[d,t,c,s]),f=(0,Io.useCallback)(()=>{p({column:{name:"::",serverDataType:"string"},type:"columnSettings",vuuTable:{module:"SIMUL",table:"instruments"}})},[p]);return l.current=(0,Io.useCallback)(()=>{c("TableSettings","DataGrid Settings",{availableColumns:a!=null?a:s.columns.map(({name:h,serverDataType:g})=>({name:h,serverDataType:g})),onAddCalculatedColumn:f,onConfigChange:t,onDataSourceConfigChange:r,tableConfig:s})},[a,f,t,r,c,s]),{showColumnSettingsPanel:p,showTableSettingsPanel:l.current}};var St=require("react");var Ug=o=>`.vuuTableNext-col-headers .vuuTableNextHeaderCell:nth-child(${o})`,Gg=(o,e)=>`.vuuTableNext-body > [aria-rowindex='${o}'] > [role='cell']:nth-child(${e+1})`,EE=(o,[e,t])=>{var s;let n=e===-1?Ug(t):Gg(e,t),r=(s=o.current)==null?void 0:s.querySelector(n);return CF(r)&&r.querySelector("button")||r},CF=o=>o.classList.contains("vuuTableNextCell-editable"),ME=o=>o.querySelector(".vuuTableInputCell")!==null;var SF=new Set(["Home","End","PageUp","PageDown","ArrowDown","ArrowLeft","ArrowRight","ArrowUp"]),wF=o=>SF.has(o),TF=["Home","End","PageUp","PageDown"],EF=o=>TF.includes(o),MF=[-1,-1],RF=[void 0,void 0],DF=o=>{var t,n;let e=(t=o.closest(".vuuTableNext"))==null?void 0:t.querySelector(".vuuTableNext-scrollbarContainer");if(e){let r=e==null?void 0:e.getBoundingClientRect(),s=(n=o.closest(".vuuTableNextCell"))==null?void 0:n.getBoundingClientRect();if(s)return s.bottom>r.bottom?["down",s.bottom-r.bottom]:s.top<r.top?["up",s.top-r.top]:s.right<r.right?["right",s.right-r.right]:s.left<r.left?["left",s.left-r.left]:RF;throw Error("Whats going on, cell not found")}else throw Error("Whats going on, scrollbar container not found")};function PF(o,[e,t],n,r){return o==="ArrowUp"?e>-1?[e-1,t]:[e,t]:o==="ArrowDown"?e===-1?[0,t]:e===r-1?[e,t]:[e+1,t]:o==="ArrowRight"?t<n-1?[e,t+1]:[e,t]:o==="ArrowLeft"?t>1?[e,t-1]:[e,t]:[e,t]}var RE=({columnCount:o=0,containerRef:e,disableHighlightOnFocus:t,requestScroll:n,rowCount:r=0,viewportRowCount:s})=>{var S;let i=(0,St.useRef)([-1,-1]),l=(0,St.useRef)(),a=(0,St.useRef)([-1,0]),u=b=>b==null?void 0:b.closest("[role='columnHeader'],[role='cell']"),c=b=>{var C,M;if(b.role==="columnHeader")return[-1,parseInt((C=b.dataset.idx)!=null?C:"-1",10)];{let D=b.closest("[role='row']");if(D){let E=parseInt((M=D.ariaRowIndex)!=null?M:"-1",10),O=Array.from(D.childNodes).indexOf(b);return[E,O]}}return MF},d=(0,St.useCallback)(b=>{var C;if(e.current){let M=EE(e,b);if(M){M!==l.current&&((C=l.current)==null||C.removeAttribute("tabindex"),l.current=M,M.setAttribute("tabindex","0"));let[D,E]=DF(M);D&&E&&(n==null||n({type:"scroll-distance",distance:E,direction:D})),M.focus()}}},[e,n]),p=(0,St.useCallback)((b,C,M=!1)=>{let D=[b,C];a.current=D,d(D),M&&(i.current=D)},[d]),f=(0,St.useCallback)((b,[C,M])=>new Promise(D=>{let E=C;switch(b){case"PageDown":E=Math.min(r-1,C+s),n==null||n({type:"scroll-page",direction:"down"});break;case"PageUp":E=Math.max(0,C-s),n==null||n({type:"scroll-page",direction:"up"});break;case"Home":E=0,n==null||n({type:"scroll-end",direction:"home"});break;case"End":E=r-1,n==null||n({type:"scroll-end",direction:"end"});break}setTimeout(()=>{D([E,M])},90)}),[n,r,s]),h=(0,St.useCallback)(()=>{var b;if(t!==!0&&(b=e.current)!=null&&b.contains(document.activeElement)){let C=u(document.activeElement);C&&(console.log({focusedCell:C}),i.current=c(C))}},[t,e]),g=(0,St.useCallback)(async b=>{console.log(`navigate child items ${b}`);let[C,M]=EF(b)?await f(b,a.current):PF(b,a.current,o,r);console.log(`nextRowIdx ${C} nextColIdx ${M}`);let[D,E]=a.current;(C!==D||M!==E)&&p(C,M,!0)},[o,f,r,p]),m=(0,St.useCallback)(b=>{r>0&&wF(b.key)&&(b.preventDefault(),b.stopPropagation(),g(b.key))},[r,g]),y=(0,St.useCallback)(b=>{let C=b.target,M=u(C);if(M){let[D,E]=c(M);p(D,E)}},[p]),w=(0,St.useCallback)(()=>{g("ArrowDown")},[g]),v=(0,St.useMemo)(()=>({navigate:w,onClick:y,onFocus:h,onKeyDown:m}),[y,h,m,w]),x=((S=e.current)==null?void 0:S.firstChild)!=null;return(0,St.useEffect)(()=>{if(x&&l.current===void 0){let{current:b}=e,C=(b==null?void 0:b.querySelector(Ug(0)))||(b==null?void 0:b.querySelector(Gg(0,0)));C&&(C.setAttribute("tabindex","0"),l.current=C)}},[e,x]),v};var wt=require("@vuu-ui/vuu-utils"),Se=require("react");var pp=(o,e)=>{switch(e.type){case"col-size":return{...o,columns:o.columns.map(t=>t.name===e.column.name?{...t,width:e.width}:t)};case"column-prop":return{...o,columns:o.columns.map(t=>t.name===e.column.name?{...t,[e.property]:e.value}:t)};default:return o}};var Zs=require("@vuu-ui/vuu-utils"),Lt=require("react");var hp=require("@vuu-ui/vuu-utils"),{SELECTED:kF}=hp.metadataKeys,fp=class{constructor({from:e,to:t}){this.rowCount=0;this.setRowCount=e=>{e<this.data.length&&(this.data.length=e),this.rowCount=e};this.range=new hp.WindowRange(e,t),this.data=new Array(t-e),this.rowCount=0}add(e){let[t]=e;if(this.isWithinRange(t)){let n=t-this.range.from;this.data[n]=e}}getAtIndex(e){return this.range.isWithin(e)&&this.data[e-this.range.from]!=null?this.data[e-this.range.from]:void 0}isWithinRange(e){return this.range.isWithin(e)}setRange({from:e,to:t}){if(e!==this.range.from||t!==this.range.to){let[n,r]=this.range.overlap(e,t),s=new Array(Math.max(0,t-e));for(let i=n;i<r;i++){let l=this.getAtIndex(i);if(l){let a=i-e;s[a]=l}}this.data=s,this.range.from=e,this.range.to=t}}getSelectedRows(){return this.data.filter(e=>e[kF]===1)}};var DE=({dataSource:o,onFeatureEnabled:e,onFeatureInvocation:t,onSizeChange:n,onSubscribed:r,range:s=Zs.NULL_RANGE,renderBufferSize:i=0})=>{let[,l]=(0,Lt.useState)(null),a=(0,Lt.useRef)([]),u=(0,Lt.useRef)(!0),c=(0,Lt.useRef)(!1),d=(0,Lt.useRef)(Zs.NULL_RANGE),p=(0,Lt.useMemo)(()=>new fp((0,Zs.getFullRange)(s,i)),[]),f=(0,Lt.useCallback)(m=>{for(let y of m)p.add(y);a.current=p.data,u.current&&l({})},[p]),h=(0,Lt.useCallback)(m=>{m.type==="subscribed"?r==null||r(m):m.type==="viewport-update"?(typeof m.size=="number"&&(n==null||n(m.size),p.setRowCount(m.size)),m.rows?f(m.rows):typeof m.size=="number"&&(a.current=p.data,c.current=!0)):Ah(m)?e==null||e(m):Oh(m)?t==null||t(m):console.log(`useDataSource unexpected message ${m.type}`)},[p,e,t,n,r,f]);(0,Lt.useEffect)(()=>()=>{u.current=!0,u.current=!1},[]),(0,Lt.useEffect)(()=>{o==null||o.subscribe({range:(0,Zs.getFullRange)(s,i)},h)},[o,h,s,i]);let g=(0,Lt.useCallback)(m=>{let y=(0,Zs.getFullRange)(m,i);p.setRange(y),o.range=d.current=y,o.emit("range",m)},[o,p,i]);return{data:a.current,range:d.current,setRange:g}};var mp=require("react"),PE=o=>{let e=(0,mp.useRef)(o);return(0,mp.useMemo)(()=>e.current,[])};var kE=require("@vuu-ui/vuu-utils"),IE=require("react");var LE=({columns:o,data:e})=>{let[t]=ho();return(0,IE.useCallback)(r=>{var a;let s=r.target,i=s==null?void 0:s.closest("div[role='cell']"),l=s==null?void 0:s.closest("div[role='row']");if(i&&l){let u=(0,kE.buildColumnMap)(o),c=parseInt((a=l.ariaRowIndex)!=null?a:"-1"),d=Array.from(l.childNodes).indexOf(i),p=e.find(([h])=>h===c),f=o[d];t(r,"grid",{columnMap:u,columnName:f,row:p})}},[o,e,t])};var AE=require("@vuu-ui/vuu-utils"),xu=require("react");var OE=({navigate:o})=>{let e=(0,xu.useCallback)(()=>{o()},[o]),t=(0,xu.useCallback)(s=>{let i=s.target,l=i.querySelector("input");l&&(l.focus(),l.select()),i.addEventListener("vuu-commit",e,!0)},[e]),n=(0,xu.useCallback)(s=>{let i=s.target,l=i.querySelector("input");l&&(l.focus(),l.select()),i.addEventListener("vuu-commit",e,!0)},[e]);return{onKeyDown:(0,xu.useCallback)(s=>{ME(s.target)&&((0,AE.isCharacterKey)(s.key)?t(s):s.key==="Enter"&&n(s))},[t,n])}};var ve=require("@vuu-ui/vuu-utils");var NE=require("react"),{info:qg}=(0,ve.logger)("useTableModel"),IF=100,LF=ve.metadataKeys.count,AF=({serverDataType:o})=>o===void 0,OF=o=>{var e;if((0,ve.isTypeDescriptor)(o.type))return(0,ve.getCellRenderer)((e=o.type)==null?void 0:e.renderer)},NF=(o,e)=>{var n;let t=e.columns.find(({name:r})=>r===o.name);return t?t.serverDataType:(n=o.serverDataType)!=null?n:"string"},HF=["int","long","double"],HE=o=>o===void 0?void 0:HF.includes(o)?"right":"left",FE=o=>o.type==="columnSettings",VE=o=>o.type==="tableSettings",FF=(o,e)=>{switch(qg==null||qg(`TableModelReducer ${e.type}`),console.log(`TableModelReducer ${e.type}`),e.type){case"init":return console.log({init:e}),zE(e);case"moveColumn":return BF(o,e);case"resizeColumn":return WF(o,e);case"setTableSchema":return _F(o,e);case"hideColumns":return zF(o,e);case"showColumns":return $F(o,e);case"pinColumn":return KF(o,e);case"updateColumnProp":return Rl(o,e);case"tableConfig":return WE(o,e);default:return console.log(`unhandled action ${e.type}`),o}},BE=(o,e)=>{let[t,n]=(0,NE.useReducer)(FF,{tableConfig:o,dataSourceConfig:e},zE),{columns:r,headings:s,tableConfig:i,...l}=t;return{columns:r,dispatchColumnAction:n,headings:s,tableAttributes:l,tableConfig:i}};function zE({dataSourceConfig:o,tableConfig:e}){let{columns:t,...n}=e,r=t.filter((0,ve.subscribedOnly)(o==null?void 0:o.columns)).map($E(n)),s=r.some(ve.isPinned)?(0,ve.sortPinnedColumns)(r):r,i={columns:s,headings:(0,ve.getTableHeadings)(s),tableConfig:e,...n};if(o){let{columns:l,...a}=o;i=WE(i,{type:"tableConfig",...a})}return i}var VF=(o,e)=>e==="uppercase"?o.toUpperCase():e==="capitalize"?o[0].toUpperCase()+o.slice(1).toLowerCase():o,$E=o=>(e,t)=>{let{columnDefaultWidth:n=IF,columnFormatHeader:r}=o,{align:s=HE(e.serverDataType),key:i,name:l,label:a=l,width:u=n,...c}=e,d={...c,align:s,CellRenderer:OF(e),clientSideEditValidationCheck:(0,ve.hasValidationRules)(e.type)?Ov(e.type.renderer.rules):void 0,label:VF(a,r),key:i!=null?i:t+LF,name:l,originalIdx:t,valueFormatter:(0,ve.getValueFormatter)(e),width:u};return(0,ve.isGroupColumn)(d)&&(d.columns=d.columns.map(p=>$E(o)(p,p.key))),d};function BF(o,{column:e,moveBy:t,moveTo:n}){let{columns:r}=o;if(typeof t=="number"){let s=r.indexOf(e),i=r.slice(),[l]=i.splice(s,1);return i.splice(s+t,0,l),{...o,columns:i}}else if(typeof n=="number"){let s=r.indexOf(e);return{...o,columns:(0,ve.moveItem)(r,s,n)}}return o}function zF(o,{columns:e}){return e.some(t=>t.hidden!==!0)?e.reduce((t,n)=>n.hidden!==!0?Rl(t,{type:"updateColumnProp",column:n,hidden:!0}):t,o):o}function $F(o,{columns:e}){return e.some(t=>t.hidden)?e.reduce((t,n)=>n.hidden?Rl(t,{type:"updateColumnProp",column:n,hidden:!1}):t,o):o}function WF(o,{column:e,phase:t,width:n}){let r="updateColumnProp",s=t!=="end";switch(t){case"begin":return Rl(o,{type:r,column:e,resizing:s});case"end":return Rl(o,{type:r,column:e,resizing:s,width:n});case"resize":return Rl(o,{type:r,column:e,width:n});default:throw Error(`useTableModel.resizeColumn, invalid resizePhase ${t}`)}}function _F(o,{tableSchema:e}){let{columns:t}=o;if(t.some(AF)){let n=t.map(r=>{var i;let s=NF(r,e);return{...r,align:(i=r.align)!=null?i:HE(s),serverDataType:s}});return{...o,columns:n}}else return o}function KF(o,e){let{columns:t}=o,{column:n,pin:r}=e,s=t.find(i=>i.name===n.name);return s?(t=Ml(t,{...s,pin:r}),t=(0,ve.sortPinnedColumns)(t),{...o,columns:t}):o}function Rl(o,e){let{columns:t}=o,{align:n,column:r,hidden:s,label:i,resizing:l,width:a}=e,u=t.find(c=>c.name===r.name);return u&&((n==="left"||n==="right")&&(t=Ml(t,{...u,align:n})),typeof i=="string"&&(t=Ml(t,{...u,label:i})),typeof l=="boolean"&&(t=Ml(t,{...u,resizing:l})),typeof s=="boolean"&&(t=Ml(t,{...u,hidden:s})),typeof a=="number"&&(t=Ml(t,{...u,width:a}))),{...o,columns:t}}function WE(o,{confirmed:e,filter:t,groupBy:n,sort:r}){let s=n!==void 0,i=typeof(t==null?void 0:t.filter)=="string",l=r&&r.sortDefs.length>0,a=o;return s&&(a={...o,columns:(0,ve.applyGroupByToColumns)(a.columns,n,e)}),l&&(a={...o,columns:(0,ve.applySortToColumns)(a.columns,r)}),i?a={...o,columns:(0,ve.applyFilterToColumns)(a.columns,t)}:a.columns.some(ve.isFilteredColumn)&&(a={...o,columns:(0,ve.stripFilterFromColumns)(a.columns)}),a}function Ml(o,e){return o.map(t=>t.name===e.name?e:t)}var Wt=require("react"),_E=o=>{let{scrollLeft:e,scrollTop:t}=o,{clientHeight:n,clientWidth:r,scrollHeight:s,scrollWidth:i}=o,l=e/(i-r),a=t/(s-n);return[l,a]},KE=({onAttach:o,onDetach:e})=>{let t=(0,Wt.useRef)(null);return(0,Wt.useCallback)(r=>{if(r)t.current=r,o==null||o(r);else if(t.current){let{current:s}=t;t.current=r,e==null||e(s)}},[o,e])},UE=({maxScrollLeft:o,maxScrollTop:e,onHorizontalScroll:t,onVerticalScroll:n,rowHeight:r,viewportRowCount:s})=>{let i=(0,Wt.useRef)(!1),l=(0,Wt.useRef)({scrollTop:0,scrollLeft:0}),a=(0,Wt.useRef)(null),u=(0,Wt.useRef)(null),c=(0,Wt.useCallback)(()=>{let{current:v}=u,{current:x}=a,{current:S}=i;if(S)i.current=!1;else if(v&&x){let[b,C]=_E(x),M=Math.round(b*o),D=Math.round(C*e);v.scrollTo({left:M,top:D,behavior:"auto"})}},[o,e]),d=(0,Wt.useCallback)(()=>{let{current:v}=u,{current:x}=a,{current:S}=l;if(v&&x){let{scrollLeft:b,scrollTop:C}=v,[M,D]=_E(v);i.current=!0,x.scrollLeft=Math.round(M*o),x.scrollTop=Math.round(D*e),S.scrollTop!==C&&(S.scrollTop=C,n==null||n(C,D)),S.scrollLeft!==b&&(S.scrollLeft=b,t==null||t(b))}},[o,e,t,n]),p=(0,Wt.useCallback)(v=>{a.current=v,v.addEventListener("scroll",c,{passive:!0})},[c]),f=(0,Wt.useCallback)(v=>{a.current=null,v.removeEventListener("scroll",c)},[c]),h=(0,Wt.useCallback)(v=>{u.current=v,v.addEventListener("scroll",d,{passive:!0})},[d]),g=(0,Wt.useCallback)(v=>{u.current=null,v.removeEventListener("scroll",d)},[d]),m=KE({onAttach:h,onDetach:g}),y=KE({onAttach:p,onDetach:f}),w=(0,Wt.useCallback)(v=>{let{current:x}=u;if(x){let{scrollLeft:S,scrollTop:b}=x;if(i.current=!1,v.type==="scroll-distance"){let C=S,M=b;v.direction==="up"||v.direction==="down"?M=Math.min(Math.max(0,b+v.distance),e):C=Math.min(Math.max(0,S+v.distance),o),x.scrollTo({top:M,left:C,behavior:"auto"})}else if(v.type==="scroll-page"){let{direction:C}=v,M=s*(C==="down"?r:-r),D=Math.min(Math.max(0,b+M),e);x.scrollTo({top:D,left:S,behavior:"auto"})}else if(v.type==="scroll-end"){let{direction:C}=v,M=C==="end"?e:0;x.scrollTo({top:M,left:x.scrollLeft,behavior:"auto"})}}},[o,e,r,s]);return{scrollbarContainerRef:y,contentContainerRef:m,requestScroll:w}};var Dl=require("react"),GE=({columns:o,getRowAtPosition:e,setRange:t,viewportMeasurements:n})=>{let r=(0,Dl.useRef)(0),{contentWidth:s,rowCount:i}=n,l=(0,Dl.useCallback)(a=>{let u=e(a);u!==r.current&&(r.current=u,t({from:u,to:u+i}))},[e,t,i]);return(0,Dl.useEffect)(()=>{let{current:a}=r,u={from:a,to:a+i};t(u)},[t,i]),{onVerticalScroll:l}};var{KEY:UF,IS_EXPANDED:qE,IS_LEAF:jE}=wt.metadataKeys,GF=(o,e)=>({...o,columns:o.columns.concat(e)}),QE=({availableColumns:o,config:e,containerRef:t,dataSource:n,headerHeight:r=25,onAvailableColumnsChange:s,onConfigChange:i,onFeatureEnabled:l,onFeatureInvocation:a,onRowClick:u,onSelectionChange:c,renderBufferSize:d=0,rowHeight:p=20,selectionModel:f})=>{let[h,g]=(0,Se.useState)(n.size);if(n===void 0)throw Error("no data source provided to Vuu Table");let[m,y]=(0,Se.useState)(),w=(0,Se.useCallback)(V=>{y(V)},[]),v=(0,Se.useMemo)(()=>nh(n),[n]),x=(0,Se.useCallback)(V=>{g(V)},[]),{columns:S,dispatchColumnAction:b,headings:C,tableAttributes:M,tableConfig:D}=BE(e,n.config);Un(()=>{b({type:"init",dataSourceConfig:n.config,tableConfig:D})},[D,n.config,b]);let[E,O]=(0,Se.useState)(),[T,P]=(0,Se.useMemo)(()=>{let V=(K,ce)=>{let Le=(0,wt.updateColumn)(S,K,{width:ce});O(Le)};return[E!=null?E:S,V]},[S,E]),L=(0,Se.useMemo)(()=>(0,wt.buildColumnMap)(n.columns),[n.columns]),{getRowAtPosition:N,getRowOffset:A,setPctScrollTop:k,...I}=Vh({columns:T,headerHeight:r,headings:C,rowCount:h,rowHeight:p,size:m}),F=PE({from:0,to:I.rowCount}),H=(0,Se.useCallback)(({tableSchema:V})=>{V||console.log("usbscription message with no schema")},[]),{data:z,range:W,setRange:q}=DE({dataSource:n,onFeatureEnabled:l,onFeatureInvocation:a,renderBufferSize:d,onSizeChange:x,onSubscribed:H,range:F}),j=(0,Se.useCallback)(V=>{console.log("useTableNext handleConfigChanged",{tableConfig:V}),b({type:"init",tableConfig:V,dataSourceConfig:n.config}),i==null||i(V)},[n.config,b,i]),J=(0,Se.useCallback)(V=>{console.log("config changed",{dataSourceConfig:V}),n.config={...n.config,...V}},[n]),G=(0,Se.useCallback)(V=>{console.log("useTableNext handleCreateCalculatedColumn",{column:V}),n.columns=n.columns.concat(V.name);let K=GF(D,V);b({type:"init",tableConfig:K,dataSourceConfig:n.config}),i==null||i(K)},[n,b,i,D]);(0,Se.useEffect)(()=>{n.on("config",(V,K)=>{b({type:"tableConfig",...V,confirmed:K})})},[n,b]);let{showColumnSettingsPanel:Y,showTableSettingsPanel:fe}=TE({availableColumns:o!=null?o:D.columns.map(({name:V,serverDataType:K="string"})=>({name:V,serverDataType:K})),onAvailableColumnsChange:s,onConfigChange:j,onCreateCalculatedColumn:G,onDataSourceConfigChange:J,tableConfig:D}),ue=(0,Se.useCallback)(V=>{FE(V)?Y(V):VE(V)?fe():b(V)},[b,Y,fe]),Ue=rh({dataSource:n,onPersistentColumnOperation:ue}),we=(0,Se.useCallback)((V,K=!1,ce)=>{n&&(n.sort=(0,wt.applySort)(n.sort,V,K,ce))},[n]),ze=(0,Se.useCallback)((V,K,ce)=>{let Le=T.find(Gt=>Gt.name===K);if(Le)V==="resize"?(0,wt.isValidNumber)(ce)&&P(K,ce):V==="end"?(0,wt.isValidNumber)(ce)&&(b({type:"resizeColumn",phase:V,column:Le,width:ce}),i==null||i(pp(D,{type:"col-size",column:Le,width:ce}))):(O(void 0),b({type:"resizeColumn",phase:V,column:Le,width:ce}));else throw Error(`useDataTable.handleColumnResize, column ${K} not found`)},[T,D,b,i,P]),ke=(0,Se.useCallback)((V,K)=>{let ce=(0,wt.isJsonGroup)(K,V),Le=V[UF];if(V[qE]){if(n.closeTreeNode(Le,!0),ce){let Gt=T.indexOf(K);n.getRowsAtDepth(Gt+1).some(Wn=>Wn[qE]||Wn[jE])||b({type:"hideColumns",columns:T.slice(Gt+2)})}}else if(n.openTreeNode(Le),ce){let Gt=n.getChildRows(Le),Xr=T.indexOf(K)+1,Wn=[T[Xr]];Gt.some(fi=>fi[jE])&&Wn.push(T[Xr+1]),Wn.some(fi=>fi.hidden)&&b({type:"showColumns",columns:Wn})}},[T,n,b]),{onVerticalScroll:Ve}=GE({columns:T,getRowAtPosition:N,setRange:q,viewportMeasurements:I}),gt=(0,Se.useCallback)(V=>{Ve(V)},[Ve]),{requestScroll:Be,...dt}=UE({maxScrollLeft:I.maxScrollContainerScrollHorizontal,maxScrollTop:I.maxScrollContainerScrollVertical,rowHeight:p,onVerticalScroll:gt,viewportRowCount:I.rowCount}),{navigate:Ot,onKeyDown:Ie,...pt}=RE({columnCount:T.filter(V=>V.hidden!==!0).length,containerRef:t,requestScroll:Be,rowCount:n==null?void 0:n.size,viewportRange:W,viewportRowCount:I.rowCount}),{onKeyDown:Q}=OE({navigate:Ot}),ne=(0,Se.useCallback)(V=>{Ie(V),V.defaultPrevented||Q(V)},[Ie,Q]),re=LE({columns:T,data:z}),pe=(0,Se.useCallback)(V=>{var Wn;let ce=V.target.closest(".vuuTableNextHeaderCell"),Le=parseInt((Wn=ce==null?void 0:ce.dataset.index)!=null?Wn:"-1"),Gt=(0,wt.visibleColumnAtIndex)(T,Le),Xr=V.shiftKey;Gt&&we(Gt,Xr)},[T,we]),Re=(0,Se.useCallback)(V=>{(0,wt.isGroupColumn)(V)?n.groupBy=[]:n&&n.groupBy.includes(V.name)&&(n.groupBy=n.groupBy.filter(K=>K!==V.name))},[n]),Ge=(0,Se.useCallback)(V=>{n.select(V),c==null||c(V)},[n,c]),Ee=Fh({onSelectionChange:Ge,selectionModel:f}),X=(0,Se.useCallback)((V,K,ce)=>{Ee(V,K,ce),u==null||u(V)},[u,Ee]);(0,Se.useEffect)(()=>{n.on("config",(V,K)=>{b({type:"tableConfig",...V,confirmed:K})})},[n,b]);let te=(0,Se.useCallback)((V,K)=>{let ce=T[V];b({type:"moveColumn",column:ce,moveTo:K})},[T,b]),oe=(0,Se.useCallback)((V,K,ce)=>n.applyEdit(V,K,ce),[n]),{onMouseDown:he,...qe}=Ho({allowDragDrop:!0,containerRef:t,draggableClassName:"vuuTableNext",onDrop:te,orientation:"horizontal",itemQuery:".vuuTableNextHeaderCell"});return{...pt,onKeyDown:ne,columnMap:L,columns:T,data:z,handleContextMenuAction:Ue,headerProps:{onClick:pe,onMouseDown:he,onResize:ze},menuBuilder:v,onContextMenu:re,onDataEdited:oe,onRemoveGroupColumn:Re,onResize:w,onRowClick:X,onToggleGroup:ke,scrollProps:dt,tableAttributes:M,viewportMeasurements:I,dragDropHook:qe}};var Vn=require("react/jsx-runtime"),Qg=require("react"),io="vuuTableNext",{IDX:qF,RENDER_IDX:jF}=Pl.metadataKeys,Jg=({Row:o=Kh,availableColumns:e,className:t,config:n,dataSource:r,id:s,onAvailableColumnsChange:i,onConfigChange:l,onFeatureEnabled:a,onFeatureInvocation:u,onRowClick:c,onSelectionChange:d,onShowConfigEditor:p,renderBufferSize:f=0,rowHeight:h=20,selectionModel:g="extended",showColumnHeaders:m=!0,headerHeight:y=m?25:0,style:w,...v})=>{let x=He(s),S=(0,JE.useRef)(null),{columnMap:b,columns:C,data:M,dragDropHook:D,handleContextMenuAction:E,headerProps:O,onDataEdited:T,onRemoveGroupColumn:P,onResize:L,onRowClick:N,onToggleGroup:A,menuBuilder:k,scrollProps:I,tableAttributes:F,viewportMeasurements:H,...z}=QE({availableColumns:e,config:n,containerRef:S,dataSource:r,headerHeight:y,onAvailableColumnsChange:i,onConfigChange:l,onFeatureEnabled:a,onFeatureInvocation:u,onRowClick:c,onSelectionChange:d,renderBufferSize:f,rowHeight:h,selectionModel:g}),W=()=>({...w,"--content-height":`${H.contentHeight}px`,"--horizontal-scrollbar-height":`${H.horizontalScrollbarHeight}px`,"--content-width":`${H.contentWidth}px`,"--pinned-width-left":`${H.pinnedWidthLeft}px`,"--pinned-width-right":`${H.pinnedWidthRight}px`,"--header-height":`${y}px`,"--row-height":`${h}px`,"--total-header-height":`${H.totalHeaderHeight}px`,"--vertical-scrollbar-width":`${H.verticalScrollbarWidth}px`,"--viewport-body-height":`${H.viewportBodyHeight}px`}),q=(0,jg.default)(io,t,{[`${io}-colLines`]:F.columnSeparators,[`${io}-rowLines`]:F.rowSeparators,[`${io}-zebra`]:F.zebraStripes});return(0,Vn.jsx)(td,{menuActionHandler:E,menuBuilder:k,children:(0,Vn.jsxs)(Sc,{...v,className:q,onResize:L,ref:S,style:W(),children:[(0,Vn.jsx)("div",{className:`${io}-scrollbarContainer`,ref:I.scrollbarContainerRef,children:(0,Vn.jsx)("div",{className:`${io}-scrollbarContent`})}),(0,Vn.jsx)("div",{className:`${io}-contentContainer`,ref:I.contentContainerRef,children:(0,Vn.jsxs)("div",{...z,className:`${io}-table`,tabIndex:-1,children:[m?(0,Vn.jsx)("div",{className:`${io}-col-headings`,children:(0,Vn.jsxs)("div",{className:`${io}-col-headers`,role:"row",children:[C.filter(Pl.notHidden).map((j,J)=>(0,Pl.isGroupColumn)(j)?(0,Qg.createElement)(od,{...O,column:j,"data-index":J,key:j.name,onRemoveColumn:P}):(0,Qg.createElement)(RS,{...O,className:(0,jg.default)({"vuuDraggable-dragAway":J===D.draggedItemIndex}),column:j,"data-index":J,id:`${x}-col-${J}`,key:j.name})),D.draggable]})}):null,(0,Vn.jsx)("div",{className:`${io}-body`,children:M.map(j=>(0,Vn.jsx)(o,{columnMap:b,columns:C,onClick:N,onDataEdited:T,row:j,offset:h*j[qF]+y,onToggleGroup:A,zebraStripes:F.zebraStripes},j[jF]))})]})})]})})};var kl=require("@vuu-ui/vuu-utils");var gp=require("react"),XE=require("react/jsx-runtime"),QF="vuuTableDropdownCell",JF=["Enter"," "],XF=({column:o,columnMap:e,row:t})=>{var a,u,c;let n=(0,kl.isTypeDescriptor)(o.type)&&(0,kl.isColumnTypeRenderer)((a=o.type)==null?void 0:a.renderer)?(c=(u=o.type)==null?void 0:u.renderer)==null?void 0:c.values:[],r=e[o.name],[s,i]=(0,gp.useState)(t[r]),l=(0,gp.useCallback)((d,p)=>{p&&i(p)},[]);return(0,XE.jsx)(Ec,{className:QF,onSelectionChange:l,openKeys:JF,selected:s,source:n,width:o.width-17})};(0,kl.registerComponent)("dropdown-cell",XF,"cell-renderer",{});var YE=require("@vuu-ui/vuu-utils"),ZE=require("@salt-ds/core");var eM=B(require("classnames"));var yp=require("react/jsx-runtime"),bp="vuuTableInputCell",YF=()=>(console.warn("onCommit handler has not been provided to InputCell cell renderer"),!0),ZF=({column:o,columnMap:e,onCommit:t=YF,row:n})=>{let r=e[o.name],{align:s="left",clientSideEditValidationCheck:i,valueFormatter:l}=o,{warningMessage:a,...u}=Hv({initialValue:l(n[r]),onCommit:t,clientSideEditValidationCheck:i}),c=a&&s==="left"?(0,yp.jsx)("span",{className:`${bp}-icon`,"data-icon":"error"}):void 0,d=a&&s==="right"?(0,yp.jsx)("span",{className:`${bp}-icon`,"data-icon":"error"}):void 0;return(0,yp.jsx)(ZE.Input,{...u,className:(0,eM.default)(bp,{[`${bp}-error`]:a!==void 0}),endAdornment:c,startAdornment:d})};(0,YE.registerComponent)("input-cell",ZF,"cell-renderer",{});var Il=require("@salt-ds/core"),nM=B(require("classnames")),vp=require("react");var tM=require("@vuu-ui/vuu-utils");var xp=require("react/jsx-runtime"),eV="vuuSearchCell",tV=({column:o,columnMap:e,row:t})=>{let n=e[o.name],r=t[n];return(0,xp.jsxs)("div",{className:eV,tabIndex:-1,children:[(0,xp.jsx)("span",{"data-icon":"draggable"}),r]})};console.log("register SearchCell");(0,tM.registerComponent)("search-cell",tV,"cell-renderer",{serverDataType:"private"});var Vr=require("react/jsx-runtime"),Xg="vuuInstrumentSearch",nV={columns:[{name:"bbg",hidden:!0},{name:"description",width:200,type:{name:"string",renderer:{name:"search-cell"}}}],rowSeparators:!0},oV=(0,Vr.jsx)("span",{"data-icon":"search"}),rV=({TableProps:o,className:e,dataSource:t,searchColumn:n="description",...r})=>{let[s,i]=(0,vp.useState)({searchText:"",filter:""}),l=(0,vp.useCallback)(a=>{let{value:u}=a.target,c=`name starts "${u}"`;i({searchText:u,filter:c}),t.filter={filter:c,filterStruct:{op:"starts",column:n,value:u}}},[t,n]);return(0,Vr.jsxs)("div",{...r,className:(0,nM.default)(Xg,e),children:[(0,Vr.jsxs)(Il.FormField,{className:`${Xg}-inputField`,children:[(0,Vr.jsx)(Il.FormFieldLabel,{}),(0,Vr.jsx)(Il.Input,{endAdornment:oV,value:s.searchText,onChange:l})]}),(0,Vr.jsx)(Jg,{rowHeight:25,config:nV,renderBufferSize:100,...o,className:`${Xg}-list`,dataSource:t,showColumnHeaders:!1})]})};je("InstrumentSearch",rV,"view");var Ll=require("@vuu-ui/vuu-utils"),Al=require("react"),oM=B(require("classnames"));var Cp=require("react/jsx-runtime"),sV="vuuPriceTicker",iV=o=>(0,Ll.numericFormatter)({type:{name:"number",formatting:{decimals:o,zeroPad:!0}}}),lV=[void 0,void 0],aV=(0,Al.memo)(({className:o,decimals:e=2,price:t,showArrow:n,...r})=>{let s=(0,Al.useRef)(lV),[i,l]=s.current,a=(0,Al.useMemo)(()=>iV(e),[e]),u=(0,Ll.isValidNumber)(i)?(0,Ll.getMovingValueDirection)(t,l,i,e):"";return s.current=[t,u],(0,Cp.jsxs)("div",{...r,className:(0,oM.default)(sV,o,u),children:[a(t),n?(0,Cp.jsx)("span",{"data-icon":"price-arrow"}):null]})});aV.displayName="PriceTicker";var xM=require("@salt-ds/core"),eb=B(require("classnames")),Nl=B(require("react"));var bM=require("@vuu-ui/vuu-utils"),At=require("react");var rM=o=>typeof o=="object"&&o!==null&&"tabIndex"in o&&typeof o.tabIndex=="number",sM=o=>({label:"Close",location:"tab",action:"close-tab",options:o}),iM=o=>({label:"Rename",location:"tab",action:"rename-tab",options:o});var lM=require("@vuu-ui/vuu-utils"),aM=(o,e)=>{if(o){let t=o.querySelector(`[data-index]:has(${e})`);return(0,lM.getElementDataIndex)(t)}return-1},Yg=o=>aM(o,'[aria-selected="true"]'),uM=o=>aM(o,".vuuEditableLabel-editing");var Ol=require("@vuu-ui/vuu-utils"),tr=require("react"),cM=(o,e,t="horizontal")=>{let n=(0,tr.useRef)(!1),r=(0,tr.useCallback)(()=>{n.current=!0},[]),s=(0,tr.useCallback)(()=>{n.current=!1},[]),i=(0,tr.useCallback)(()=>{var a,u;(a=o.current)==null||a.style.setProperty("--tab-thumb-transition","none"),(u=o.current)==null||u.removeEventListener("transitionend",i)},[o]),l=(0,tr.useRef)(-1);return(0,tr.useMemo)(()=>{var c,d;let a=0,u=0;if(l.current!==-1){let p=(c=o.current)==null?void 0:c.querySelector(".vuuTab-selected"),f=(d=o.current)==null?void 0:d.querySelector(`[data-index="${e}"] .vuuTab`),{positionProp:h,sizeProp:g}=Ol.MEASURES[t];if(p&&f&&!n.current){let{[h]:m,[g]:y}=p.getBoundingClientRect(),{[h]:w}=f.getBoundingClientRect();if((0,Ol.isValidNumber)(m)&&(0,Ol.isValidNumber)(w)&&(0,Ol.isValidNumber)(y)){console.log({orientation:t,positionProp:h,oldPosition:m,newPosition:w}),a=m-w,u=y;let x=Math.abs(a/(t==="horizontal"?1100:700));requestAnimationFrame(()=>{var S,b,C,M;(S=o.current)==null||S.style.setProperty("--tab-thumb-offset","0px"),(b=o.current)==null||b.style.setProperty("--tab-thumb-size","100%"),(C=o.current)==null||C.style.setProperty("--tab-thumb-transition",`all ${x}s ease`),(M=o.current)==null||M.addEventListener("transitionend",i)})}}}return l.current=e,n.current?{containerStyle:{"--tab-thumb-offset":"0px","--tab-thumb-size":"100%"},resumeAnimation:s,suspendAnimation:r}:{containerStyle:{"--tab-thumb-offset":`${a}px`,"--tab-thumb-size":u?`${u}px`:void 0},resumeAnimation:s,suspendAnimation:r}},[e,o,t,i,s,r])};var pM=require("@salt-ds/core"),wp=require("@vuu-ui/vuu-utils"),mt=require("react"),_t=require("@vuu-ui/vuu-utils");var fM={horizontal:{[_t.Home]:"start",[_t.End]:"end",[_t.ArrowLeft]:"bwd",[_t.ArrowRight]:"fwd"},vertical:{[_t.Home]:"start",[_t.End]:"end",[_t.ArrowUp]:"bwd",[_t.ArrowDown]:"fwd"}},uV=(o,e="horizontal")=>fM[e][o]!==void 0,cV=o=>o===_t.ArrowDown;function dM(o,e,t){return e==="start"?0:e==="end"?o-1:e==="bwd"?t>0?t-1:t:t===null?0:t===o-1?t:t+1}var dV=o=>o!==null&&!o.classList.contains("wrapped"),Sp=(o,e)=>o?o.querySelector(`[data-index="${e}"]`):null,hM=({containerRef:o,defaultHighlightedIdx:e=-1,highlightedIdx:t,keyBoardActivation:n,orientation:r,selectedIndex:s=0})=>{let i=n==="manual",l=(0,mt.useRef)(!1),a=(0,mt.useRef)(-1),[u,c]=(0,mt.useState)(!1),[,d]=(0,mt.useState)({}),[p,f]=(0,pM.useControlled)({controlled:t,default:e,name:"UseKeyboardNavigation"}),h=(0,mt.useCallback)(T=>{f(a.current=T)},[f]),g=(0,mt.useRef)(!1),m=(0,mt.useCallback)((T,P=!1,L,N=70)=>{h(T),L===!0&&!g.current&&(g.current=!0);let A=()=>{let k=Sp(o.current,T);if(k){let I=(0,wp.getFocusableElement)(k);I==null||I.focus()}};P?A():setTimeout(A,N)},[o,h]),y=T=>{if(a.current===-1&&T.target.tabIndex!==-1){let P=uM(o.current);P!==-1?requestAnimationFrame(()=>{h(P)}):setTimeout(()=>{a.current===-1&&s!==null&&h(s)},200)}},w=(0,mt.useCallback)(()=>{var T,P;return(P=(T=o.current)==null?void 0:T.querySelectorAll("[data-index]").length)!=null?P:0},[o]),v=(0,mt.useCallback)((T="fwd",P)=>{let L=w(),A=dM(L,T,typeof P=="number"?P:L),k=T==="start"?"fwd":T==="end"?"bwd":T;for(;(k==="fwd"&&A<L||k==="bwd"&&A>0)&&!dV(Sp(o.current,A));){let I=dM(L,k,A);if(I===A)break;A=I}return A},[o,w]),x=(0,mt.useCallback)((T,P=!1)=>{let L=fM[r][T.key],N=v(L,p);N!==p?i&&m(N,!0):P&&d({})},[p,i,v,m,r]),S=(0,mt.useCallback)(()=>{let T=Sp(o.current,p);return T?T.querySelector(".vuuPopupMenu")!=null:!1},[o,p]),b=(0,mt.useCallback)(()=>{let T=Sp(o.current,p),P=T==null?void 0:T.querySelector(".vuuPopupMenu");return P&&(0,wp.dispatchMouseEvent)(P,"click"),!1},[o,p]),C=(0,mt.useCallback)(T=>{w()>0&&uV(T.key,r)?(T.preventDefault(),g.current?x(T):(g.current=!0,x(T,!0))):cV(T.key)&&S()&&b()},[b,w,S,x,r]),M=(T,P)=>{h(P)},D=(0,mt.useCallback)(()=>{u||(c(!0),l.current?l.current=!1:g.current=!0)},[u]),E=(0,mt.useCallback)(()=>{u||(l.current=!0),g.current=!1},[u]);return{containerProps:{onBlur:T=>{let P=T.target.closest(".vuuTabstrip"),L=T.relatedTarget;P&&!(P!=null&&P.contains(L))&&(h(-1),c(!1))},onMouseDownCapture:E,onFocus:D,onMouseLeave:()=>{g.current=!0,h(-1),l.current=!1}},focusVisible:g.current?p:-1,focusIsWithinComponent:u,highlightedIdx:p,focusTab:m,onClick:M,onFocus:y,onKeyDown:C,setHighlightedIdx:h}};var mM=require("@salt-ds/core"),vu=require("react"),pV=["Enter"," "],fV=o=>o&&o.matches('[class*="vuuTab "]'),gM=({defaultSelected:o,highlightedIdx:e,onSelectionChange:t,selected:n})=>{let[r,s,i]=(0,mM.useControlled)({controlled:n,default:o!=null?o:0,name:"Tabstrip",state:"value"}),l=(0,vu.useCallback)(d=>pV.includes(d.key),[]),a=(0,vu.useCallback)(d=>{s(d),t==null||t(d)},[t,s]),u=(0,vu.useCallback)(d=>{let p=d.target;l(d)&&e!==r&&fV(p)&&(d.stopPropagation(),d.preventDefault(),a(e))},[l,e,r,a]),c=(0,vu.useCallback)((d,p)=>{p!==r&&a(p)},[a,r]);return{activateTab:a,isControlled:i,onClick:c,onKeyDown:u,selected:r}};var hV=new Set(["Enter"," "]),mV=o=>hV.has(o),gV=(o,e)=>o?o.querySelector(`[data-index="${e}"]`):null,yM=({activeTabIndex:o,allowDragDrop:e,animateSelectionThumb:t,containerRef:n,onActiveChange:r,onAddTab:s,onCloseTab:i,onExitEditMode:l,onMoveTab:a,orientation:u,keyBoardActivation:c})=>{let d=(0,At.useRef)(o),{focusTab:p,highlightedIdx:f,onClick:h,onKeyDown:g,setHighlightedIdx:m,...y}=hM({containerRef:n,keyBoardActivation:c,orientation:u,selectedIndex:d.current}),{activateTab:w,onClick:v,onKeyDown:x,selected:S}=gM({highlightedIdx:f,onSelectionChange:r,selected:o});d.current=S;let{containerStyle:b,resumeAnimation:C,suspendAnimation:M}=cM(n,t?S:-1,u),D=(0,At.useCallback)((G,Y)=>{let{current:fe}=d;console.log(`useTabstrip handleDrop ${G} - ${Y} ${fe}`),a==null||a(G,Y);let ue=-1;Y!==-1&&(fe===G?ue=Y:G>fe&&Y<=fe?ue=fe+1:G<fe&&Y>=fe&&(ue=fe-1),ue!==-1&&(M(),w(ue),requestAnimationFrame(C)),p(Y,!1,!1,350))},[p,a,C,w,M]),{onMouseDown:E,...O}=Ho({allowDragDrop:e,containerRef:n,draggableClassName:`tabstrip-${u}`,onDrop:D,orientation:"horizontal",itemQuery:".vuuOverflowContainer-item"}),T=(0,At.useCallback)((G,Y,fe,ue)=>{console.log(`handleExitEditMode ${G} ${Y} ${fe} ${ue}`),l==null||l(G,Y,fe,ue),fe||p(ue,!1,!0)},[p,l]),P=(0,At.useCallback)((G,Y)=>{h(G,Y),v(G,Y)},[h,v]),L=(0,At.useCallback)((G=f)=>{let Y=gV(n.current,G);if(Y)return Y.querySelector(".vuuEditableLabel")},[n,f]),N=(0,At.useCallback)((G=f)=>{let Y=L(G);return Y?Y.classList.contains("vuuEditableLabel-editing"):!1},[L,f]),A=(0,At.useCallback)((G=f)=>{let Y=L(G);Y&&(0,bM.dispatchMouseEvent)(Y,"dblclick")},[L,f]),k=(0,At.useCallback)(G=>{g(G),G.defaultPrevented||x(G),!G.defaultPrevented&&mV(G.key)&&A()},[A,g,x]),I=(0,At.useCallback)(G=>{let Y=Yg(n.current),fe=Y>G?Y-1:Y===G?0:Y;return M(),i==null||i(G,fe),setTimeout(()=>{C()},200),!0},[n,i,C,M]),F=(0,At.useCallback)(G=>(A(G),!0),[A]),H=(0,At.useCallback)(G=>{if(rM(G.options))switch(G.menuId){case"close-tab":return I(G.options.tabIndex);case"rename-tab":return F(G.options.tabIndex);default:console.log(`tab menu action ${G.menuId}`)}return!1},[I,F]),z=(0,At.useCallback)(()=>{N()?m(f):p(f)},[f,p,m,N]),W=(0,At.useCallback)(G=>{let Y=parseInt(G.index);isNaN(Y)||w(Y)},[w]),q={onFocus:y.onFocus,onKeyDown:k},j=(0,At.useCallback)(()=>{s==null||s(),requestAnimationFrame(()=>{let G=Yg(n.current);G!==-1&&p(G)})},[n,p,s]),J={onClick:P,onKeyDown:k,onExitEditMode:T,onMenuAction:H,onMenuClose:z,onMouseDown:E};return{activeTabIndex:S,containerStyle:b,focusVisible:y.focusVisible,containerProps:{...y.containerProps,onSwitchWrappedItemIntoView:W},navigationProps:q,onClickAddTab:j,tabProps:J,...O}};var Hl=require("react/jsx-runtime"),vM=require("react"),Zg="vuuTabstrip",tb=({activeTabIndex:o,allowAddTab:e,allowCloseTab:t,allowDragDrop:n=!1,allowRenameTab:r=!1,animateSelectionThumb:s=!1,children:i,className:l,id:a,keyBoardActivation:u="manual",location:c,onActiveChange:d,onAddTab:p,onCloseTab:f,onExitEditMode:h,onMoveTab:g,orientation:m="horizontal",showTabMenuButton:y,style:w,...v})=>{let x=(0,Nl.useRef)(null),{activeTabIndex:S,focusVisible:b,containerStyle:C,draggedItemIndex:M,onClickAddTab:D,tabProps:E,...O}=yM({activeTabIndex:o,allowDragDrop:n,animateSelectionThumb:s,containerRef:x,keyBoardActivation:u,onActiveChange:d,onAddTab:p,onCloseTab:f,onExitEditMode:h,onMoveTab:g,orientation:m}),T=He(a),P=(0,eb.default)(Zg,`${Zg}-${m}`,l),L=w||C?{...w,...C}:void 0,N=(0,Nl.useMemo)(()=>Zr(i).map((A,k)=>{let{id:I=`${T}-tab-${k}`,closeable:F=t,editable:H=r,location:z,showMenuButton:W=y}=A.props,q=k===S;return Nl.default.cloneElement(A,{...E,...O.navigationProps,closeable:F,"data-overflow-priority":q?"1":void 0,dragging:M===k,editable:H,focusVisible:b===k,id:I,index:k,key:k,location:(0,eb.default)(c,z),selected:q,showMenuButton:W,tabIndex:q?0:-1})}).concat(e?(0,vM.createElement)(xM.Button,{...O.navigationProps,"aria-label":"Create Tab",className:`${Zg}-addTabButton`,"data-icon":"add","data-overflow-priority":"1",key:"addButton",onClick:D,variant:"secondary",tabIndex:-1}):[]),[S,e,t,r,i,b,T,c,D,y,E,M,O.navigationProps]);return(0,Hl.jsxs)(Hl.Fragment,{children:[(0,Hl.jsx)(za,{...v,...O.containerProps,className:P,height:28,id:T,orientation:m,overflowIcon:"more-horiz",ref:x,style:L,children:N}),O.draggable]})};var MM=require("@salt-ds/core"),RM=B(require("classnames")),ni=require("react");var CM=require("react"),SM=B(require("classnames"));var TM=require("react/jsx-runtime"),bV="vuuTabMenu",wM=({allowClose:o,allowRename:e,controlledComponentId:t,location:n,onMenuAction:r,onMenuClose:s,index:i})=>{let[l,a]=(0,CM.useMemo)(()=>[(u,c)=>{let d=[];return e&&d.push(iM(c)),o&&d.push(sM(c)),d},{controlledComponentId:t,tabIndex:i}],[o,e,t,i]);return(0,TM.jsx)(Fl,{className:bV,menuBuilder:l,menuActionHandler:r,menuLocation:(0,SM.default)("tab",n),menuOptions:a,onMenuClose:s,tabIndex:-1})};var ti=require("react/jsx-runtime"),ei="vuuTab",EM=()=>{},nb=(0,ni.forwardRef)(function({ariaControls:e,children:t,className:n,closeable:r=!1,dragging:s,editable:i=!1,editing:l,focusVisible:a,index:u=-1,label:c,location:d,onClick:p,onClose:f,onEnterEditMode:h=EM,onExitEditMode:g=EM,onFocus:m,onKeyUp:y,onMenuAction:w,onMenuClose:v,orientation:x,selected:S,showMenuButton:b=r||i||!!d,tabIndex:C,...M},D){if(b&&typeof w!="function")throw Error("Tab onMenuAction must be provided if showMenuButton is set");let E=(0,ni.useRef)(null),O=(0,ni.useRef)(null),T=(0,MM.useForkRef)(D,E),P=(0,ni.useCallback)(I=>{l||(I.preventDefault(),p==null||p(I,u))},[l,u,p]),L=(I="",F="",H=!0)=>g(I,F,H,u),N=I=>{switch(I.key){case"Backspace":case"Delete":r&&(I.stopPropagation(),f&&f(u));break;default:y&&y(I,u)}},A=()=>i?(0,ti.jsx)(ms,{editing:l,defaultValue:c,onEnterEditMode:h,onExitEditMode:L,ref:O},c):c,k=I=>{if(O.current){let H=O.current.querySelector(".vuuEditableLabel-input");H==null||H.focus()}m==null||m(I)};return(0,ti.jsxs)("div",{...M,"aria-controls":e,"aria-selected":S,className:(0,RM.default)(ei,{[`${ei}-closeable`]:r,"vuuDraggable-dragAway":s,[`${ei}-editing`]:l,[`${ei}-selected`]:S||void 0,[`${ei}-vertical`]:x==="vertical",vuuFocusVisible:a}),onClick:P,onFocus:k,onKeyUp:N,ref:T,role:"tab",tabIndex:C,children:[(0,ti.jsx)("div",{className:`${ei}-main`,children:(0,ti.jsx)("span",{className:`${ei}-text`,"data-text":i?void 0:c,children:t!=null?t:A()})}),b?(0,ti.jsx)(wM,{allowClose:r,allowRename:i,controlledComponentId:e,location:d,onMenuAction:w,onMenuClose:v,index:u}):null]})});var Pp=require("@salt-ds/core"),Dp=B(require("classnames")),kp=require("react");function yV(o){var e;if(o){let t=o.dataset.idx;if(t)return parseInt(t,10);if(t=(e=o.ariaPosInSet)!=null?e:"-1")return parseInt(t,10)-1}}var ob=o=>o.closest("[data-idx],[aria-posinset]");var DM=o=>yV(ob(o));var Vl=require("react"),xV=new Set(["/","-","."]),vV=o=>xV.has(o),PM=(o,e)=>e.startsWith(o)&&vV(e[o.length]),kM=(o,e="root",{collapsibleHeaders:t=void 0,defaultExpanded:n=!1,revealSelected:r=!1}={})=>{let s=(p,f,h)=>{if(p.childNodes)return p.childNodes.length;if(p.header){let g=h+1,m=0;for(;g<f.length&&!f[g].header;)m++,g++;return m}else return 0},i=(0,Vl.useCallback)(p=>Array.isArray(r)?r.some(f=>PM(p,f)):n,[n,r]),l=(0,Vl.useCallback)((p,f,h=1,g="",m=[],y=[])=>{let w=0;return p.forEach((v,x,S)=>{var L;let b=v.header&&t,C=v.childNodes&&t===!1,M=!v.childNodes||v.childNodes.length===0,D=C||M&&!b,E=g?`${g}.${x}`:`${x}`,O=(L=v.id)!=null?L:`${e}-${E}`,T=D?void 0:i(O),P={...v,childNodes:void 0,id:O,count:!C&&T===void 0?0:s(v,S,x),expanded:T,index:f.index,level:h};if(m.push(P),y.push(p[x]),w+=1,f.index+=1,v.childNodes){let[N,A]=l(v.childNodes,f,h+1,E,[],y);P.childNodes=A,(T===!0||C)&&(w+=N)}}),[w,m,y]},[t,e,i]),[a,u,c]=(0,Vl.useMemo)(()=>l(o,{index:0}),[l,o]),d=(0,Vl.useCallback)((p,f=u)=>{let h=f.find(g=>{var m;return g.id===p||((m=g==null?void 0:g.childNodes)==null?void 0:m.length)&&PM(g.id,p)});if((h==null?void 0:h.id)===p)return c[h.index];if(h)return d(p,h.childNodes)},[c,u]);return[a,u,d]};var Br=require("react"),AM=require("@salt-ds/core"),IM="single",CV="checkbox",SV="multi",wV="extended",TV=["Enter"," "],LM={},EV=o=>o.expanded!==void 0,OM=o=>o&&o!=="none",NM=({defaultSelected:o,highlightedIdx:e,treeNodes:t,onChange:n,selected:r,selection:s=IM,selectionKeys:i=TV})=>{let l=s===IM,a=s===SV||s.startsWith(CV),u=s===wV,c=(0,Br.useRef)(-1),d=(0,Br.useCallback)(x=>i.includes(x.key),[i]),[p,f]=(0,AM.useControlled)({controlled:r,default:o!=null?o:[],name:"selected"}),h=(0,Br.useCallback)((x,S,b,C,M=!1)=>{let{current:D}=c,E=p==null?void 0:p.includes(b),T=l||u&&!M&&(!C||D===-1),P=a||u&&M&&!C,L=[];if(T&&E)L=[];else if(T)L=[b];else if(P&&E)L=p.filter(N=>N!==b);else if(P)L=p.concat(b);else if(u){let[N,A]=S>D?[D,S]:[S,D];L=p.slice();for(let k=N;k<=A;k++){let{id:I}=t[k];p.includes(I)||L.push(I)}}f(L),n&&n(x,L)},[u,t,a,n,p,f,l]),g=(0,Br.useCallback)(x=>{if(~e&&d(x)){x.preventDefault();let S=t[e];h(x,e,S.id,!1,x.ctrlKey||x.metaKey),u&&(c.current=e)}},[u,e,t,d,h]),m=(0,Br.useCallback)((x,S)=>{if(u&&x.shiftKey){let b=t[S];h(x,S,b.id,!0)}},[u,t,h]),y=s==="none"?LM:{onKeyDown:g,onKeyboardNavigation:m},w=(0,Br.useCallback)(x=>{if(e!==-1){let S=t[e];EV(S)||(x.preventDefault(),x.stopPropagation(),h(x,e,S.id,x.shiftKey,x.ctrlKey||x.metaKey),u&&(c.current=e))}},[u,e,t,h]);return{listHandlers:y,listItemHandlers:s==="none"?LM:{onClick:w},selected:p,setSelected:f}};var tn=require("react");var MV=["height","scrollHeight"],HM=(o,e,t=!1)=>{let n=(0,tn.useRef)(0),r=(0,tn.useRef)(!1),s=(0,tn.useRef)(0),i=(0,tn.useRef)(0),l=(0,tn.useCallback)(c=>{let d=c.ariaExpanded?c.firstChild:c,p=t?30:0,f=d.offsetTop,h=d.offsetHeight,g=n.current+p,m=g+s.current-p;(f+h>m||f<g)&&(n.current=f+h>m?n.current+(f+h)-m:f-p,r.current=!0,o.current&&(o.current.scrollTop=n.current),setTimeout(()=>{r.current=!1}))},[o,t]),a=(0,tn.useCallback)(c=>{n.current=c.target.scrollTop},[]);(0,tn.useEffect)(()=>{let{current:c}=o;return c&&c.addEventListener("scroll",a),()=>{c&&c.removeEventListener("scroll",a)}},[o,a]),(0,tn.useLayoutEffect)(()=>{if(e!==-1&&i.current>s.current&&o.current){let c=o.current.querySelector(`
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
`);c===null?console.log("[useViewportTracking], is this virtualised ? we're going to have to know rowHeight"):l(c)}},[e,o,l]),(0,tn.useEffect)(()=>{},[t]);let u=(0,tn.useCallback)(({height:c,scrollHeight:d})=>{s.current=c,i.current=d},[]);return Oo(o,MV,u,!0),r};var Cu=require("react");var Bn=require("react");var FM=({id:o})=>{let e=o.lastIndexOf("-");if(e!==-1){let n=o.slice(e+1).split(".");return n.length===1?null:(n.pop(),`${o.slice(0,e)}-${n.join(".")}`)}else if((e=o.lastIndexOf("/"))!==-1)return o.slice(0,e)},VM=o=>o.childNodes!==void 0;var rb=o=>o.header===!0,RV=new Set([".","/"]),BM=(o,e)=>e.startsWith(o.id)?RV.has(e.charAt(o.id.length)):!1,oi=(o,e)=>{for(let t of o){if(t.id===e)return t;if(BM(t,e))return oi(t.childNodes,e)}},Tp=(o,e)=>{let t=typeof e=="string"?e:e.id;for(let n=0;n<o.length;n++)if(o[n].id===t)return n},Ep=(o,e,t)=>{let n;return o.map(s=>s.id===e?{...s,...t}:BM(s,e)?(n=Ep(s.childNodes,e,t),{...s,childNodes:n}):s)};var GM=require("@salt-ds/core");function DV(o,...e){let t=new Set(o);for(let n of e)for(let r of n)t.add(r);return t}var sb="ArrowUp",zM="ArrowDown",Bl="ArrowLeft";var $M="ArrowRight",Mp="Enter";var PV="Delete",kV=new Set([Mp,PV]),IV=new Set(["Tab"]),LV=new Set(["ArrowRight","ArrowLeft"]),WM=new Set(["Home","End","ArrowDown","ArrowUp"]),_M=new Set(["Home","End","ArrowRight","ArrowLeft"]),AV=new Set(["F1","F2","F3","F4","F5","F6","F7","F8","F9","F10","F11","F12"]),Vie=DV(kV,_M,WM,LV,AV,IV);var KM=({key:o},e="vertical")=>(e==="vertical"?WM:_M).has(o);function UM(o,e,t){return e===sb||e===Bl?t>0?t-1:t:t===null?0:t===o-1?t:t+1}var OV=o=>!o.header&&!o.childNodes,NV=o=>OV(o)||o.expanded!==void 0,qM=({defaultHighlightedIdx:o=-1,highlightedIdx:e,treeNodes:t,onHighlight:n,onKeyboardNavigation:r,selected:s=[]})=>{let{bwd:i,fwd:l}=(0,Bn.useMemo)(()=>({bwd:sb,fwd:zM}),[]),[a,u,c]=(0,GM.useControlled)({controlled:e,default:o,name:"highlightedIdx"}),d=(0,Bn.useCallback)(x=>{n==null||n(x),u(x)},[n,u]),p=(0,Bn.useCallback)((x=l,S=x===l?-1:t.length)=>{let b=UM(t.length,x,S);for(;b!==-1&&(x===l&&b<t.length||x===i&&b>0)&&!NV(t[b]);)b=UM(t.length,x,b);return b},[i,l,t]),f=(0,Bn.useRef)(!0),h=(0,Bn.useRef)(!1),g=x=>h.current=x,m=(0,Bn.useCallback)(()=>{if(h.current)h.current=!1;else if(s.length>0){let x=oi(t,s[0]);if(x){let S=Tp(t,x);d(S)}}else d(p())},[t,p,s,d]),y=(0,Bn.useCallback)(x=>{let S=p(x.key,a);S!==a&&(d(S),r==null||r(x,S))},[a,p,r,d]),w=(0,Bn.useCallback)(x=>{t.length>0&&KM(x,"vertical")&&(x.preventDefault(),x.stopPropagation(),f.current=!0,y(x))},[t,y]),v=(0,Bn.useMemo)(()=>({onBlur:()=>{d(-1)},onFocus:m,onKeyDown:w,onMouseDownCapture:()=>{f.current=!1,g(!0)},onMouseMove:()=>{f.current&&(f.current=!1)},onMouseLeave:()=>{f.current=!0,g(!1),d(-1)}}),[m,w,d]);return{focusVisible:f.current?a:-1,controlledHighlighting:c,highlightedIdx:a,hiliteItemAtIndex:d,keyBoardNavigation:f,listProps:v,setIgnoreFocus:g}};var zl=require("react");var Rp=(o,e=[],t={value:0})=>{let n=!1;for(let r of o)n&&!rb(r)||(e[t.value]=r,t.value+=1,n=!1,rb(r)&&r.expanded===!1?n=!0:VM(r)&&ib(r)&&Rp(r.childNodes,e,t));return e},jM=o=>{let e=(0,zl.useRef)(o),t=(0,zl.useRef)(o),n=(0,zl.useRef)(Rp(o)),[,r]=(0,zl.useState)({});o!==e.current&&(e.current=o,t.current=o,n.current=Rp(o));let s=i=>{t.current=i,n.current=Rp(i),r({})};return{data:t.current,indexPositions:n.current,setData:s}};var nr=require("react");var HV={},FV=o=>o&&o.hasAttribute("aria-expanded"),QM=({collapsibleHeaders:o,highlightedIdx:e,treeNodes:t,setVisibleData:n,source:r})=>{let s=(0,nr.useRef)(r),i=(0,nr.useRef)(s.current),l=(0,nr.useCallback)(h=>{n(i.current=h)},[n]),a=(0,nr.useCallback)((h,{id:g})=>Ep(h,g,{expanded:!0}),[]),u=(0,nr.useCallback)((h,{id:g})=>Ep(h,g,{expanded:!1}),[]),c=(0,nr.useCallback)(h=>{if(h.key===$M||h.key===Mp){let g=t[e];g&&g.expanded===!1&&(h.preventDefault(),l(a(i.current,g)))}if(h.key===Bl||h.key===Mp){let g=t[e];g&&g.expanded&&(h.preventDefault(),l(u(i.current,g)))}},[u,a,e,t,l]),d=o?{onKeyDown:c}:HV,f={onClick:(0,nr.useCallback)(h=>{let g=ob(h.target);if(FV(g)){h.stopPropagation(),h.preventDefault();let m=oi(r,g.id);(m==null?void 0:m.expanded)===!1?l(a(r,m)):(m==null?void 0:m.expanded)===!0&&l(u(r,m))}},[u,a,l,r])};return{listHandlers:d,listItemHandlers:f}};var JM=require("react");var XM=({highlightedIdx:o,hiliteItemAtIndex:e,indexPositions:t,source:n})=>({listHandlers:{onKeyDown:(0,JM.useCallback)(i=>{if(i.key===Bl){let l=t[o],a=FM(l);if(a){i.preventDefault();let u=oi(n,a);if(u){let c=Tp(t,u);c!==void 0&&e(c)}}}},[o,e,t,n])}});var VV=[],YM=({defaultSelected:o,sourceWithIds:e,onChange:t,onHighlight:n,selected:r,selection:s})=>{let i=(0,Cu.useRef)(VV),l=jM(e),a=(v,x)=>{var S,b;(b=(S=p.listHandlers).onKeyboardNavigation)==null||b.call(S,v,x)},{highlightedIdx:u,...c}=qM({treeNodes:l.indexPositions,onHighlight:n,onKeyboardNavigation:a,selected:i.current}),d=QM({collapsibleHeaders:!0,highlightedIdx:u,treeNodes:l.indexPositions,setVisibleData:l.setData,source:l.data}),p=NM({defaultSelected:o,highlightedIdx:u,treeNodes:l.indexPositions,onChange:t,selected:r,selection:s}),f=XM({source:l.data,highlightedIdx:u,hiliteItemAtIndex:c.hiliteItemAtIndex,indexPositions:l.indexPositions}),h=(0,Cu.useCallback)(v=>{var x,S,b;(x=d.listItemHandlers)==null||x.onClick(v),v.defaultPrevented||(b=(S=p.listItemHandlers)==null?void 0:S.onClick)==null||b.call(S,v)},[d,p]),g=(0,Cu.useCallback)(v=>{var x,S,b,C,M,D,E,O;(S=(x=c.listProps).onKeyDown)==null||S.call(x,v),v.defaultPrevented||(C=(b=p.listHandlers).onKeyDown)==null||C.call(b,v),v.defaultPrevented||(D=(M=d.listHandlers).onKeyDown)==null||D.call(M,v),v.defaultPrevented||(O=(E=f.listHandlers).onKeyDown)==null||O.call(E,v)},[d.listHandlers,c.listProps,p.listHandlers,f.listHandlers]),m=()=>{var v;return u===void 0||u===-1||(v=l.indexPositions[u])==null?void 0:v.id};i.current=p.selected;let y={"aria-activedescendant":m(),onBlur:c.listProps.onBlur,onFocus:c.listProps.onFocus,onKeyDown:g,onMouseDownCapture:c.listProps.onMouseDownCapture,onMouseLeave:c.listProps.onMouseLeave,onMouseMove:c.listProps.onMouseMove},w={onClick:h};return{focusVisible:c.focusVisible,highlightedIdx:u,hiliteItemAtIndex:c.hiliteItemAtIndex,listProps:y,listItemHandlers:w,selected:p.selected,visibleData:l.data}};var yn=require("react/jsx-runtime"),eR=require("react"),zr="vuuTree",ib=o=>o.expanded===!0,ZM=({children:o,idx:e,...t})=>(0,yn.jsx)("li",{...t,children:o}),BV=(0,kp.forwardRef)(function({allowDragDrop:e,className:t,defaultSelected:n,groupSelection:r="none",id:s,onHighlight:i,onSelectionChange:l,revealSelected:a,selected:u,selection:c="single",source:d,...p},f){var A;let h=(0,Pp.useIdMemo)(s),g=(0,kp.useRef)(null),[,m,y]=kM(d,h,{revealSelected:a?(A=u!=null?u:n)!=null?A:!1:void 0}),w=(k,I)=>{if(l){let F=I.map(H=>y(H)).filter(H=>H!==void 0);l(F)}},{focusVisible:v,highlightedIdx:x,hiliteItemAtIndex:S,listProps:b,listItemHandlers:C,selected:M,visibleData:D}=YM({defaultSelected:n,groupSelection:r,onChange:w,onHighlight:i,selected:u,selection:c,sourceWithIds:m});HM(g,x);let O={...{onMouseEnter:k=>{let I=k.target,F=DM(I);S(F)}},...C,role:"treeitem"},T=OM(r);function P(k,I,F){k.push((0,yn.jsxs)(ZM,{...O,...zV(I,F,x,M,v),children:[I.icon?(0,yn.jsx)("span",{className:`${zr}Node-icon`,"data-icon":I.icon}):null,(0,yn.jsx)("span",{children:I.label})]})),F.value+=1}function L(k,I,F,H,z){let{value:W}=F;F.value+=1,k.push((0,eR.createElement)(ZM,{...C,"aria-expanded":I.expanded,"aria-level":I.level,"aria-selected":M.includes(H)||void 0,className:(0,Dp.default)(`${zr}Node`,{focusVisible:v===W,[`${zr}Node-toggle`]:!T}),"data-idx":W,"data-highlighted":W===x||void 0,"data-selectable":!0,id:H,key:`header-${W}`},T?(0,yn.jsxs)("div",{className:`${zr}Node-label`,children:[(0,yn.jsx)("span",{className:`${zr}Node-toggle`}),z]}):(0,yn.jsxs)("div",{className:`${zr}Node-label`,children:[I.icon?(0,yn.jsx)("span",{className:`${zr}Node-icon`,"data-icon":I.icon}):null,(0,yn.jsx)("span",{children:z})]}),(0,yn.jsx)("ul",{role:"group",children:ib(I)?N(I.childNodes,F):""})))}function N(k,I={value:0}){if((k==null?void 0:k.length)>0){let F=[];for(let H of k)H.childNodes?L(F,H,I,H.id,H.label):P(F,H,I);return F}}return(0,yn.jsx)("ul",{...p,...b,className:(0,Dp.default)(zr,t),id:`Tree-${h}`,ref:(0,Pp.useForkRef)(g,f),role:"tree",tabIndex:0,children:N(D)})}),zV=(o,e,t,n,r,s)=>({id:o.id,key:o.id,"aria-level":o.level,"aria-selected":n.includes(o.id)||void 0,"data-idx":e.value,"data-highlighted":e.value===t||void 0,className:(0,Dp.default)("vuuTreeNode",s,{focusVisible:r===e.value})});BV.displayName="Tree";var WV=require("@salt-ds/core"),_V=B(require("classnames")),KV=require("react"),UV=require("react/jsx-runtime");var lR=require("@salt-ds/core"),Op=B(require("classnames")),Wr=require("react");var $r=require("react");var Ip=(o,e,t,n)=>{var m;let{loadSessionState:r,purgeSessionState:s,purgeState:i,saveSessionState:l}=mi(),[a,u]=(0,$r.useState)((m=r(o,"contributions"))!=null?m:[]),c=qt(),d=(0,$r.useCallback)((y,w)=>{let v=a.concat([{location:y,content:w}]);l(o,"contributions",v),u(v)},[a,o,l]),p=(0,$r.useCallback)(()=>{s(o,"contributions"),u([])},[o,s]),f=(0,$r.useCallback)(()=>{let y=r(o,"data-source");y&&y.unsubscribe(),s(o),i(o),c({type:"remove",path:t})},[c,o,r,s,i,t]),h=(0,$r.useCallback)(async(y,w,v)=>{var S;y.stopPropagation();let x=(S=e.current)==null?void 0:S.getBoundingClientRect();return new Promise((b,C)=>{c({type:"drag-start",evt:y,path:w===void 0?t:`${t}.${w}`,dragRect:x,preDragActivity:v,dropTargets:n,resolveDragStart:b,rejectDragStart:C})})},[e,c,t,n]);return[(0,$r.useCallback)(async(y,w)=>{var x;let{type:v}=y;switch(v){case"maximize":case"minimize":case"restore":return c({type:v,path:(x=y.path)!=null?x:t});case"remove":return f();case"mousedown":return h(w,y.index,y.preDragActivity);case"add-toolbar-contribution":return d(y.location,y.content);case"remove-toolbar-contribution":return p();default:return}},[c,t,f,h,d,p]),a]};var Ap=require("@salt-ds/core"),rR=B(require("classnames")),Kt=B(require("react"));var lo=require("react");var tR=({id:o,rootRef:e,path:t,dropTargets:n,title:r})=>{let s=qt(),{loadState:i,loadSessionState:l,purgeState:a,saveState:u,saveSessionState:c}=mi(),[d,p]=Ip(o,e,t,n),f=(0,lo.useMemo)(()=>{var b;return(b=i("view-title"))!=null?b:r},[i,r]),h=(0,lo.useCallback)(b=>{t&&s({type:"set-title",path:t,title:b})},[s,t]),g=(0,lo.useMemo)(()=>i(o),[o,i]),m=(0,lo.useCallback)(b=>i(o,b),[o,i]),y=(0,lo.useCallback)(b=>{a(o,b),s({type:"save"})},[o,s,a]),w=(0,lo.useCallback)((b,C)=>{u(o,C,b),s({type:"save"})},[o,s,u]),v=(0,lo.useCallback)(b=>l(o,b),[o,l]),x=(0,lo.useCallback)((b,C)=>c(o,C,b),[o,c]),S=(0,lo.useCallback)(({type:b,...C})=>{let{[b]:M}=C;w(M,b)},[w]);return{contributions:p,dispatchViewAction:d,load:m,loadSession:v,onConfigChange:S,onEditTitle:h,purge:y,restoredState:g,save:w,saveSession:x,title:f}};var $l=require("react"),GV=[],nR=({mainRef:o,resize:e="responsive",rootRef:t})=>{let n=e==="defer",r=(0,$l.useRef)({}),s=(0,$l.useRef)(),i=(0,$l.useCallback)(()=>{o.current&&(o.current.style.height=r.current.height+"px",o.current.style.width=r.current.width+"px"),s.current=void 0},[o]),l=(0,$l.useCallback)(({height:a,width:u})=>{r.current.height=a,r.current.width=u,s.current!==null&&clearTimeout(s.current),s.current=window.setTimeout(i,40)},[i]);Ju(t,n?qy:GV,l,n)};var Lp=B(require("react")),qV={dispatch:null},lb=Lp.default.createContext(qV),oR=()=>{var e;let o=(0,Lp.useContext)(lb);return(e=o==null?void 0:o.dispatch)!=null?e:null};var Wl=require("react/jsx-runtime"),Su="vuuView",jV=(o,e)=>o&&e?{...o,...e}:o||e,sR=(0,Kt.forwardRef)(function(e,t){let{Header:n=iR,children:r,className:s,collapsed:i,closeable:l,"data-path":a,"data-resizeable":u,dropTargets:c,expanded:d,flexFill:p,id:f,header:h,orientation:g="horizontal",path:m=a,resize:y="responsive",resizeable:w=u,tearOut:v,style:x={},title:S,...b}=e,C=(0,Ap.useIdMemo)(f),M=(0,Kt.useRef)(null),D=(0,Kt.useRef)(null),[E,O]=(0,Kt.useState)(),{contributions:T,dispatchViewAction:P,load:L,loadSession:N,onConfigChange:A,onEditTitle:k,purge:I,restoredState:F,save:H,saveSession:z,title:W}=tR({id:C,rootRef:M,path:m,dropTargets:c,title:S});nR({mainRef:D,resize:y,rootRef:M});let q=(0,Kt.useCallback)(Y=>{O(Y)},[]),j=()=>Kt.default.isValidElement(r)&&(F||E)?Kt.default.cloneElement(r,jV(F,E)):r,J=(0,Kt.useMemo)(()=>({dispatch:P,id:C,path:m,title:W,load:L,loadSession:N,onConfigChange:A,purge:I,save:H,saveSession:z,setComponentProps:q}),[P,C,L,N,A,m,I,H,z,q,W]),G=typeof h=="object"?h:{};return(0,Wl.jsx)("div",{...b,className:(0,rR.default)(Su,s,{[`${Su}-collapsed`]:i,[`${Su}-expanded`]:d,[`${Su}-resize-defer`]:y==="defer"}),"data-resizeable":w,id:C,ref:(0,Ap.useForkRef)(t,M),style:x,tabIndex:-1,children:(0,Wl.jsxs)(lb.Provider,{value:J,children:[h?(0,Wl.jsx)(n,{...G,collapsed:i,contributions:T,expanded:d,closeable:l,onEditTitle:k,orientation:g,tearOut:v,title:W}):null,(0,Wl.jsx)("div",{className:`${Su}-main`,ref:D,children:j()})]})})});sR.displayName="View";var ri=Kt.default.memo(sR);ri.displayName="View";je("View",ri,"view");var _l=require("react/jsx-runtime"),ab="vuuHeader",iR=({className:o,contributions:e,collapsed:t,closeable:n,onEditTitle:r,orientation:s="horizontal",style:i,title:l="Untitled"})=>{let a=(0,Wr.useRef)(null),[u,c]=(0,Wr.useState)(l),[d,p]=(0,Wr.useState)(!1),f=oR(),h=E=>f==null?void 0:f({type:"remove"},E),g=()=>{var E;(E=a.current)==null||E.focus()},m=E=>{E.stopPropagation()},w=(0,Op.default)(ab,o,`${ab}-${t||s}`),v=()=>{p(!0)},x=E=>{E.key==="Enter"&&p(!0)},S=(E="",O="",T=!0,P=!1)=>{var L;p(!1),P?c(E):O!==E&&(c(O),r==null||r(O)),T===!1&&((L=a.current)==null||L.focus())},b=E=>{f==null||f({type:"mousedown"},E)},C=[],M=[],D=[];return e==null||e.forEach((E,O)=>{switch(E.location){case"pre-title":C.push((0,Wr.cloneElement)(E.content,{key:O}));break;default:M.push((0,Wr.cloneElement)(E.content,{key:O}))}}),l&&C.push((0,_l.jsx)(ms,{className:`${ab}-title`,editing:d,value:u,onChange:c,onMouseDownCapture:g,onEnterEditMode:v,onExitEditMode:S,onKeyDown:x,ref:a,tabIndex:0},"title")),n&&D.push((0,_l.jsx)(lR.Button,{"data-icon":"close",onClick:h,onMouseDown:m,variant:"secondary"},"close")),M.length>0&&C.push((0,_l.jsx)("div",{className:"vuuTooltrayProxy","data-align":"end",children:M},"contributions")),D.length>0&&C.push((0,_l.jsx)("div",{className:"vuuTooltrayProxy","data-align":"end",children:D},"actions")),(0,_l.jsx)("div",{className:(0,Op.default)("vuuToolbarProxy",w),style:i,onMouseDown:b,children:C})};var pR=require("react");var or=require("@vuu-ui/vuu-utils"),Lo=require("react");var ii=require("react");var si=new Map,uR=(o,e,t)=>{switch(t){case"height":return e.height;case"clientHeight":return o.clientHeight;case"clientWidth":return o.clientWidth;case"contentHeight":return e.contentHeight;case"contentWidth":return e.contentWidth;case"scrollHeight":return Math.ceil(o.scrollHeight);case"scrollWidth":return Math.ceil(o.scrollWidth);case"width":return e.width;default:return 0}},aR=new ResizeObserver(o=>{for(let e of o){let{target:t,borderBoxSize:n,contentBoxSize:r}=e,s=si.get(t);if(s){let[{blockSize:i,inlineSize:l}]=n,[{blockSize:a,inlineSize:u}]=r,{onResize:c,measurements:d}=s,p=!1;for(let[f,h]of Object.entries(d)){let g=uR(t,{height:i,width:l,contentHeight:a,contentWidth:u},f);g!==h&&(p=!0,d[f]=g)}p&&c&&c(d)}}});function cR(o,e,t,n=!1){let r=(0,ii.useRef)(e),s=(0,ii.useCallback)(i=>{let{width:l,height:a}=i.getBoundingClientRect(),{clientWidth:u,clientHeight:c}=i;return r.current.reduce((d,p)=>(d[p]=uR(i,{width:l,height:a,contentHeight:c,contentWidth:u},p),d),{})},[]);(0,ii.useEffect)(()=>{let i=o.current;async function l(){si.set(i,{measurements:{}});let a=si.get(i);if(a){let u=s(i);a.measurements=u,aR.observe(i),n&&t(u)}else console.log("%cuseResizeObserver an target expected to be under observation wa snot found. This warrants investigation","font-weight:bold; color:red;")}return i&&(si.has(i)&&console.log("useResizeObserver attemping to observe same element twice",{target:i}),l()),()=>{i&&si.has(i)&&(aR.unobserve(i),si.delete(i))}},[s,o]),(0,ii.useEffect)(()=>{let i=o.current,l=si.get(i);if(l){if(r.current!==e){r.current=e;let a=s(i);l.measurements=a}l.onResize=t}},[e,s,o,t])}var QV=["clientHeight","clientWidth"],JV=["clientWidth"],XV=["clientHeight"],YV=[],Np=o=>Number.isFinite(o),ZV={height:"100%",width:"100%"},eB=(o,e)=>(0,or.isValidNumber)(o)&&(0,or.isValidNumber)(e)?{height:`${o}px`,width:`${e}px`}:typeof o=="string"&&typeof e=="string"?{height:o,width:e}:ZV,tB=(o,e)=>{if((0,or.isValidNumber)(o)&&(0,or.isValidNumber)(e))return{height:o,width:e}},dR=({defaultHeight:o=0,defaultWidth:e=0,height:t,onResize:n,width:r})=>{let s=(0,Lo.useRef)(null),[i,l]=(0,Lo.useState)({css:eB(t,r),inner:tB(t,r),outer:{height:t!=null?t:"100%",width:r!=null?r:"100%"}}),a=typeof t=="number",u=typeof r=="number",c=a&&u?YV:a?JV:u?XV:QV;(0,Lo.useMemo)(()=>{l(p=>{let{inner:f,outer:h}=p;if((0,or.isValidNumber)(t)&&(0,or.isValidNumber)(r)&&f&&h){let{height:g,width:m}=f,{height:y,width:w}=h;if(y!==t||w!==r){let v=(0,or.isValidNumber)(y)?y-g:0,x=(0,or.isValidNumber)(w)?w-m:0;return{...p,outer:{height:t,width:r},inner:{height:t-v,width:r-x}}}}return p})},[t,r]);let d=(0,Lo.useCallback)(({clientWidth:p,clientHeight:f})=>{let{css:h,inner:g,outer:m}=i,y=i;a&&Np(p)&&p!==(g==null?void 0:g.width)?y={css:h,outer:m,inner:{width:Math.floor(p)||e,height:t}}:u&&Np(f)&&f!==(g==null?void 0:g.height)?y={css:h,outer:m,inner:{height:Math.floor(f)||o,width:r}}:Np(f)&&Np(p)&&(p!==(g==null?void 0:g.width)||f!==(g==null?void 0:g.height))&&(y={css:h,outer:m,inner:{width:Math.floor(p)||e,height:Math.floor(f)||o}}),y!==i&&l(y)},[o,e,a,u,t,i,r]);return(0,Lo.useEffect)(()=>{i.inner&&(n==null||n(i.inner))},[n,i.inner]),cR(s,c,d,!0),{containerRef:s,cssSize:i.css,outerSize:i.outer,innerSize:i.inner}};var fR=require("@salt-ds/core"),cb=B(require("classnames"));var db=require("react/jsx-runtime"),ub="vuuMeasuredContainer",Sc=(0,pR.forwardRef)(function({children:e,className:t,height:n,onResize:r,style:s,width:i,...l},a){let{containerRef:u,...c}=dR({height:n,onResize:r,width:i}),{cssSize:d,innerSize:p}=c,f=p===void 0,h=()=>f?{"--measured-css-height":`${d.height}`,"--measured-css-width":`${d.width}`}:{...s,"--measured-css-height":`${d.height}`,"--measured-css-width":`${d.width}`,"--measured-px-height":`${p==null?void 0:p.height}px`,"--measured-px-width":`${p==null?void 0:p.width}px`},g=(0,fR.useForkRef)(u,a);return f?(0,db.jsx)("div",{...l,className:(0,cb.default)(ub,`${ub}-ummeasured`),style:h(),ref:u}):(0,db.jsx)("div",{...l,className:(0,cb.default)(ub,t),ref:g,style:h(),children:e})});var Tu=B(require("classnames")),Ul=B(require("react"));var Fp=require("@vuu-ui/vuu-utils"),xn=require("react");var pb=require("@vuu-ui/vuu-utils"),nB=".vuuOverflowContainer-item:not(.wrapped)",oB=o=>o.sort((e,t)=>{let{dataset:{index:n="?"}}=e,{dataset:{index:r="?"}}=t,s=e.classList.contains("wrapped"),i=t.classList.contains("wrapped"),l=n==="overflow",a=r==="overflow";return s&&!i?1:!s&&i?-1:l?1:a?-1:parseInt(n)>parseInt(r)?1:-1}),fb=[],wu=(o,e="horizontal")=>{let t=[],n=[],r=-1,s=!1,i=oB(Array.from(o.children)),l=e==="vertical"?"top":"left";for(let a of i){let u=a,{dataset:{index:c="?",label:d="?",overflowPriority:p="0"}}=u,{[l]:f}=u.getBoundingClientRect();f<=r?(c==="overflow"?n.push(t.pop()):n.push({index:c,label:d,overflowPriority:p}),s=!0):s?n.push({index:c,label:d,overflowPriority:p}):t.push({index:c,label:d,overflowPriority:p}),r=f}return[t,n]},hR=(o,e)=>{let t=!1;e.find(({index:n})=>n==="overflow")&&e.length===1&&(t=!0);for(let n of o.children){let{dataset:{index:r="?"}}=n;e.length===0||t?o.classList.remove("overflowed"):o.classList.add("overflowed"),r!=="overflow"&&e.find(s=>s.index===r)?n.classList.add("wrapped"):n.classList.remove("wrapped")}},rB=(o,{overflowPriority:e})=>Math.max(o,parseInt(e)),sB=(o,{overflowPriority:e})=>Math.min(o,parseInt(e)),mR=o=>{var e;return o.length>1&&((e=o.at(-1))==null?void 0:e.index)==="overflow"},iB=o=>{let[e]=o;for(let t=1;t<o.length;t++){let n=o[t];parseInt(n.overflowPriority)>parseInt(e.overflowPriority)&&(e=n)}return e},gR=(o,e)=>{var r;let t=o.reduce(sB,Number.MAX_SAFE_INTEGER);return e.reduce(rB,0)>t?!0:e.length>1&&((r=e.at(-1))==null?void 0:r.index)==="overflow"},bR=(o,e)=>new Promise(t=>{requestAnimationFrame(()=>{let[,n]=wu(o);uB(e,n).forEach(s=>lB(o,s)),t(n)})}),yR=(o,e,t)=>new Promise(n=>{requestAnimationFrame(()=>{let[,r]=wu(o),s=iB(r);if(s){let[i,l]=hb(o,s);n([i,l])}else n([e,t])})}),lB=(o,e)=>{let t=(0,pb.getElementByDataIndex)(o,e.index);if(t)t.classList.add("wrapped");else throw Error(`markElementAsWrapped element item with index ${e.index} not found`)},aB=o=>Array.from(o.querySelectorAll(".wrapped")),uB=(o,e)=>{let t=[];for(let n of e)o.find(({index:r})=>r===n.index)||t.push(n);return t},cB=(o,e)=>{aB(o).forEach(n=>{let{dataset:{index:r="?"}}=n;e.find(s=>s.index===r)||n.classList.remove("wrapped")})},xR=o=>o.querySelector('[data-index="overflow"]'),dB=o=>o.querySelector(".wrapped"),Hp=o=>parseInt(getComputedStyle(o).getPropertyValue("width")),vR=(o,e)=>{let{right:t}=o.getBoundingClientRect(),n=parseInt(getComputedStyle(o).getPropertyValue("padding-right")),{right:r}=e.getBoundingClientRect();return t-n-r},CR=o=>{let e=xR(o),t=vR(o,e),n=Hp(e),r=dB(o);return Hp(r)<=t+n?(o.classList.remove("overflowed"),r.classList.remove("wrapped"),!0):!1},pB=(o,e)=>{let{dataset:{index:t="0",overflowPriority:n="0"}}=o,{dataset:{index:r="0",overflowPriority:s="0"}}=e;return n>s?-1:n<s?1:parseInt(t)-parseInt(r)},fB=o=>Array.from(o.querySelectorAll(nB)).sort(pB),hb=(o,e)=>{let t=fB(o),n=(0,pb.getElementByDataIndex)(o,e.index,!0),r=-1,s=t.at(r),i=Hp(s),l=Hp(n),a=xR(o),u=vR(o,a)+i;if(u>=l)hB(n,s);else{let{left:p}=s.getBoundingClientRect(),f=u,h=[s];for(;u<l;){r-=1,s=t.at(r),h.push(s);let{left:g}=s.getBoundingClientRect(),m=p-g;u=f+m}n==null||n.classList.remove("wrapped"),h.forEach(g=>{g.classList.add("wrapped")})}let[c,d]=wu(o);return cB(o,d),[c,d]},hB=(o,e)=>{if(!o||!e)throw Error("switchWrapOnElements, element undefined");o.classList.remove("wrapped"),e.classList.add("wrapped")};var SR=({allowDragDrop:o=!1,itemCount:e,onMoveItem:t,onSwitchWrappedItemIntoView:n,orientation:r="horizontal"})=>{let[s,i]=(0,xn.useState)(null),l=(0,xn.useRef)(fb),a=(0,xn.useRef)(null),u=(0,xn.useCallback)(async()=>{if(s){let[w,v]=wu(s,r);for(hR(s,v),mR(v)&&(v=await bR(s,v));gR(w,v);)[w,v]=await yR(s,w,v);v.length===1&&CR(s)&&(v=fb),l.current=v}},[s,r]),c=w=>typeof w=="object"&&w!==null&&"overflowItem"in w,[d,p]=(0,xn.useMemo)(()=>[()=>{let{current:w}=l;return w.map(v=>({label:v.label,action:`activate-item-${v.index}`,options:{overflowItem:v}}))},({options:w})=>{if(s&&c(w)){let[,v]=hb(s,w.overflowItem);l.current=v,n==null||n(w.overflowItem)}return!0}],[s,n]),f=(0,xn.useMemo)(()=>{let{sizeProp:w}=Fp.MEASURES[r],v=0;return new ResizeObserver(x=>{for(let S of x){let{[w]:b}=S.contentRect,C=Math.round(b);(0,Fp.isValidNumber)(C)&&v!==C&&(v=C,u())}})},[u,r]);Un(()=>{u()},[u,e]),(0,xn.useMemo)(()=>{s&&f.observe(s)},[s,f]);let h=(0,xn.useCallback)(w=>{i(a.current=w)},[]),g=(0,xn.useCallback)((w,v)=>{t==null||t(w,v)},[t]),{onMouseDown:m,...y}=Ho({allowDragDrop:o,containerRef:a,draggableClassName:"vuuOverflowContainer",onDrop:g,orientation:"horizontal",itemQuery:".vuuOverflowContainer-item"});return{menuActionHandler:p,menuBuilder:d,onItemMouseDown:m,rootRef:h,...y}};var _r=require("react/jsx-runtime"),Kl="vuuOverflowContainer",wR=Ul.default.memo(({allowDragDrop:o,children:e,className:t,height:n,id:r,onMoveItem:s,onSwitchWrappedItemIntoView:i,orientation:l="horizontal",overflowIcon:a,overflowPosition:u="end"})=>{let c=Zr(e),{draggable:d,draggedItemIndex:p,menuActionHandler:f,menuBuilder:h,onItemMouseDown:g,rootRef:m}=SR({allowDragDrop:o,itemCount:c.length,onMoveItem:s,onSwitchWrappedItemIntoView:i,orientation:l});console.log(`Overflow container WRAPPER ${Ul.default.Children.count(e)} children`);let w={"--overflow-container-height":`${l==="vertical"?"100%":`${n}px`}`},v=(0,Tu.default)(`${Kl}-wrapContainer`,t,{[`${Kl}-horizontal`]:l==="horizontal",[`${Kl}-vertical`]:l==="vertical"}),x=c.map((b,C)=>{let{"data-align":M,"data-overflow-priority":D="0",id:E=`${r}-${C}`,label:O=`Item ${C+1}`}=b.props;return(0,_r.jsx)("div",{className:(0,Tu.default)(`${Kl}-item`,{"vuuDraggable-dragAway":p===C}),"data-index":C,"data-align":M,"data-label":O,"data-overflow-priority":D,id:`${E}-wrapper`,onMouseDown:g,children:b},C)}),S=(0,_r.jsx)("div",{className:`${Kl}-OverflowIndicator`,"data-index":"overflow",children:(0,_r.jsx)(Fl,{icon:a,menuBuilder:h,menuActionHandler:f})},"overflow");return x.push(S),(0,_r.jsxs)("div",{className:v,ref:m,style:w,children:[x,d]})});wR.displayName="OverflowContainer.InnerContainer";var za=(0,Ul.forwardRef)(function({allowDragDrop:e=!1,children:t,className:n,height:r=44,id:s,onMoveItem:i,onSwitchWrappedItemIntoView:l,orientation:a,overflowIcon:u,overflowPosition:c,...d},p){let f=He(s);return console.log(`Overflow container ${Ul.default.Children.count(t)} children`),(0,_r.jsx)("div",{...d,className:(0,Tu.default)((0,Tu.default)(Kl,n)),id:f,ref:p,children:(0,_r.jsx)(wR,{allowDragDrop:e,height:r,id:f,orientation:a,overflowIcon:u,overflowPosition:c,onMoveItem:i,onSwitchWrappedItemIntoView:l,children:t})})});var TR=require("@vuu-ui/vuu-utils");var mb=B(require("classnames")),Bp=require("react");var Vp=require("react/jsx-runtime"),mB=o=>{let e=o.cloneNode(!0);return e.id="",delete e.dataset.idx,e},gb=(0,Bp.memo)(({className:o,children:e,idx:t,resizeable:n,header:r,closeable:s,...i})=>(0,Vp.jsx)(mr,{className:(0,mb.default)("vuuPaletteItem",o),"data-draggable":!0,"data-icon":"draggable",...i}));gb.displayName="PaletteItem";var ER=({children:o,className:e,itemHeight:t=41,orientation:n="horizontal",ViewProps:r,...s})=>{let i=qt(),l="vuuPalette";function a(u){var M,D;let d=u.target.closest(".vuuPaletteItem"),p=parseInt((D=(M=d.dataset)==null?void 0:M.index)!=null?D:"-1"),{props:{caption:f,children:h,template:g,...m}}=o[p],{height:y,left:w,top:v,width:x}=d.getBoundingClientRect(),S=(0,TR.uuid)(),C=g?h:(0,Vp.jsx)(ri,{...r,...{id:S,key:S},...m,title:m.label,children:h});i({dragRect:{left:w,top:v,right:w+x,bottom:v+150,width:x,height:y},dragElement:mB(d),evt:u.nativeEvent,instructions:{DoNotRemove:!0,DoNotTransform:!0,DriftHomeIfNoDropTarget:!0,RemoveDraggableOnDragEnd:!0,dragThreshold:10},path:"*",payload:C,type:"drag-start"})}return(0,Vp.jsx)(Fo,{...s,className:(0,mb.default)(l,e,`${l}-${n}`),itemHeight:t,selected:null,children:o.map((u,c)=>u.type===gb?(0,Bp.cloneElement)(u,{key:c,onMouseDown:a}):u)})};je("Palette",ER,"view");var bb=B(require("classnames")),Kr=B(require("react"));var Eu=require("react/jsx-runtime"),MR="Tabs",gB=()=>{},bB=(o,e)=>{var t,n,r,s;return(s=(r=(t=o.props)==null?void 0:t.title)!=null?r:(n=o.props)==null?void 0:n["data-tab-title"])!=null?s:`Tab ${e+1}`},yB=o=>{let e=[];return Kr.default.Children.forEach(o,t=>{Kr.default.isValidElement(t)?e.push(t):console.warn("Stack has unexpected child element type")}),e},xB={allowAddTab:!1,allowCloseTab:!1,allowRenameTab:!1},zp=(0,Kr.forwardRef)(function({active:e=0,children:t,className:n,getTabIcon:r=gB,getTabLabel:s=bB,id:i,keyBoardActivation:l="manual",onAddTab:a,onMoveTab:u,onTabClose:c,onTabEdit:d,onTabSelectionChanged:p,showTabs:f="top",style:h,TabstripProps:g=xB},m){var O;let y=He(i),{allowCloseTab:w,allowRenameTab:v,className:x}=g,S=(0,Kr.useCallback)((T,P,L,N)=>{d==null||d(N,P)},[d]),b=()=>{var T;return Kr.default.isValidElement(t)?t:Array.isArray(t)&&(T=t[e])!=null?T:null},C=()=>yB(t).map((T,P)=>{let{closeable:L=w,id:N=`${y}-${P}`,"data-tab-location":A}=T.props;return(0,Eu.jsx)(nb,{ariaControls:N,"data-icon":r(T,P),id:`${N}-tab`,index:P,label:s(T,P),location:A,closeable:L,editable:v},N)}),M=b(),D=f==="left"||f==="right",E=D?"vertical":"horizontal";return(0,Eu.jsxs)("div",{className:(0,bb.default)(MR,n,{[`${MR}-horizontal`]:D}),style:h,id:y,ref:m,children:[f?(0,Eu.jsx)(tb,{...g,activeTabIndex:(O=g==null?void 0:g.activeTabIndex)!=null?O:M===null?-1:e,allowDragDrop:g.allowDragDrop!==!1,animateSelectionThumb:!0,className:(0,bb.default)("vuuTabHeader",x),keyBoardActivation:l,onActiveChange:p,onAddTab:a,onCloseTab:c,onExitEditMode:S,onMoveTab:u,orientation:E,children:C()}):null,M]})});zp.displayName="Stack";var RR=require("@salt-ds/core"),Ur=B(require("react"));var $p=require("react/jsx-runtime"),vB=o=>(0,$p.jsx)(ri,{resizeable:!0,title:`Tab ${o}`,style:{flexGrow:1,flexShrink:0,flexBasis:0},header:!0,closeable:!0,children:(0,$p.jsx)(hf,{style:{flex:1}})}),DR=o=>{var S;let e=(0,Ur.useRef)(null),t=qt(),{loadState:n}=mi(),{createNewChild:r,id:s,onTabSelectionChanged:i,path:l,...a}=o,{children:u}=o,c=(0,RR.useIdMemo)(s),[d]=Ip(c,e,l),p=Wy(),f=(S=r!=null?r:p)!=null?S:vB,h=b=>{l&&(t({type:"switch-tab",id:c,path:l,nextIdx:b}),i==null||i(b))},g=(0,Ur.useCallback)(b=>{if(Array.isArray(u)){let{props:{"data-path":C,path:M=C}}=u[b];t({type:"remove",path:M})}},[u,t]),m=(0,Ur.useCallback)(()=>{if(l){let b=Ur.default.Children.count(u),C=f(b);t({type:"add",path:l,component:C})}},[u,f,t,l]),y=(0,Ur.useCallback)((b,C)=>{l&&t({fromIndex:b,toIndex:C,path:l,type:"move-child"})},[t,l]);return(0,$p.jsx)(zp,{...a,id:c,getTabLabel:(b,C)=>{let{id:M,title:D}=b.props;return n(M,"view-title")||D||`Tab ${C+1}`},onMouseDown:async(b,C)=>{let M;await d({type:"mousedown",index:C,preDragActivity:async()=>new Promise(O=>{console.log("preDragActivity: Ok, gonna release the drag"),M=O})},b)&&(M==null||M(void 0))},onMoveTab:y,onAddTab:m,onTabClose:g,onTabEdit:(b,C)=>{t({type:"set-title",path:`${l}.${b}`,title:C})},onTabSelectionChanged:h,ref:e})};DR.displayName="Stack";je("Stack",DR,"container");var EB=B(require("classnames")),xb=B(require("react"));var TB=require("@vuu-ui/vuu-utils"),IR=require("react");var SB=require("@salt-ds/core"),PR=require("@vuu-ui/vuu-utils"),yb=require("react"),nn=require("@vuu-ui/vuu-utils");var CB=require("@vuu-ui/vuu-utils");var Pce={horizontal:{[nn.Home]:"start",[nn.End]:"end",[nn.ArrowLeft]:"bwd",[nn.ArrowRight]:"fwd"},vertical:{[nn.Home]:"start",[nn.End]:"end",[nn.ArrowUp]:"bwd",[nn.ArrowDown]:"fwd"}};var kR=require("@vuu-ui/vuu-utils");var wB=require("react");var MB=require("react/jsx-runtime");var LR=B(require("react"));var AR=require("react/jsx-runtime");var OR=require("@salt-ds/core"),NR=require("react/jsx-runtime");var Wp="(\\d+)(?:px)?",RB=`^(?:${Wp}(?:\\s${Wp}(?:\\s${Wp}(?:\\s${Wp})?)?)?)$`,xde=new RegExp(RB);var DB=B(require("react")),PB=B(require("classnames"));var kB=require("react/jsx-runtime");var HR=B(require("react")),li=require("react/jsx-runtime"),_p=class extends HR.default.Component{constructor(e){super(e),this.state={errorMessage:null}}static getDerivedStateFromError(e){return{errorMessage:e.message}}componentDidCatch(e,t){console.log(`error creating component at ${this.props.url}`),console.log(e,t)}render(){return this.state.errorMessage?(0,li.jsxs)(li.Fragment,{children:[(0,li.jsx)("h1",{children:"An error occured while creating component."}),(0,li.jsx)("p",{children:this.state.errorMessage})]}):this.props.children}};var VR=require("react/jsx-runtime"),FR=()=>(0,VR.jsx)("div",{className:"hwLoader",children:"loading"});var BR=async o=>{let e=new CSSStyleSheet;return fetch(o).then(t=>t.text()).then(t=>e.replace(t))};var Mu=require("react/jsx-runtime"),Kp=new Map,IB=o=>{(0,ai.useEffect)(()=>()=>{Kp.delete(o)},[o]),Kp.has(o)||Kp.set(o,ai.default.lazy(()=>import(o)));let e=Kp.get(o);if(e)return e;throw Error(`Unable to load Lazy Feature at url ${o}`)};function LB({url:o,css:e,ComponentProps:t,...n}){e&&BR(e).then(s=>{document.adoptedStyleSheets=[...document.adoptedStyleSheets,s]});let r=IB(o);return(0,Mu.jsx)(_p,{url:o,children:(0,Mu.jsx)(ai.Suspense,{fallback:(0,Mu.jsx)(FR,{}),children:(0,Mu.jsx)(r,{...n,...t})})})}var vb=ai.default.memo(LB);vb.displayName="Feature";je("Feature",vb,"view");var Cb=require("react");var zR=require("react"),Ru=require("@salt-ds/core");var $R=require("@vuu-ui/vuu-utils");var WR=require("react/jsx-runtime"),AB="saveLayoutPanel",Ipe=`${AB}-formField`;var Gl=B(require("react"));var GB=require("@salt-ds/core"),qB=B(require("classnames"),1),jB=require("react");var _R=require("react");var Sb=require("react/jsx-runtime");var UR=require("@vuu-ui/vuu-utils");var wb=B(require("classnames"),1),vn=require("react");var Up=require("react/jsx-runtime"),KR="vuuExpandoCombobox",OB={},Du=(0,vn.forwardRef)(function({allowMultipleSelection:e=!1,className:t,InputProps:n=OB,ListProps:r,onInputChange:s,onSelectionChange:i,value:l="",...a},u){let[c,d]=(0,vn.useState)(l),{itemToString:p=UR.itemToString}=a,f=(0,vn.useRef)(l),h=(0,vn.useCallback)(S=>{let{value:b}=S.target;d(b),s==null||s(S)},[s]),[g,m]=(0,vn.useMemo)(()=>{let{inputProps:S,...b}=n;return[{...b,className:`${KR}-Input`,endAdornment:null,inputProps:{...S,autoComplete:"off",onInput:h}},{...r,className:(0,wb.default)("vuuMenuList",r==null?void 0:r.className),"data-mode":"light",displayedItemCount:10,itemHeight:22,maxWidth:300,minWidth:100,width:"auto"}]},[n,h,r]),y=(0,vn.useCallback)((S,b)=>{let C=b===null?"":p(b);d(C),i==null||i(S,b)},[p,i]),[w,v]=(0,vn.useState)([]),x=(0,vn.useCallback)((S,b)=>{v(b)},[]);return(0,Up.jsx)("div",{className:(0,wb.default)(KR,t),"data-text":c,ref:u,children:e?(0,Up.jsx)(Mc,{...a,defaultValue:f.current,ListProps:m,InputProps:g,onSelectionChange:y}):(0,Up.jsx)(Mc,{...a,defaultValue:f.current,ListProps:m,InputProps:g,onSelectionChange:y})})});var BB=B(require("classnames"),1),Mb=require("react");var NB=require("@salt-ds/core");var HB=require("react/jsx-runtime");var ui=require("react");var Gp=require("@vuu-ui/vuu-utils"),GR=require("react/jsx-runtime"),FB=(0,ui.forwardRef)(function({InputProps:e,className:t,column:n,onInputComplete:r,value:s},i){let[l,a]=(0,ui.useState)((0,Gp.isValidNumber)(s)?s.toString():""),u=(0,ui.useCallback)(d=>{let{value:p}=d.target,f=parseFloat(p);(0,Gp.isValidNumber)(f)&&console.log("its valid"),a(p)},[]),c=(0,ui.useCallback)(d=>{if(d.key==="Enter"){let{value:p}=d.target,f=parseFloat(p);(0,Gp.isValidNumber)(f)&&r(f)}},[r]);return(0,GR.jsx)(Pc,{...e,className:t,value:l,ref:i,onChange:u,onKeyDown:c})});var qR=require("@vuu-ui/vuu-utils");var on=require("react");var Pu=require("react/jsx-runtime"),VB=(0,on.forwardRef)(function({InputProps:e={},className:t,column:n,filterClause:r,onInputComplete:s,operator:i,suggestionProvider:l=Jc,table:a,value:u},c){let[d,p]=(0,on.useState)(u!=null?u:""),[f,h]=(0,on.useState)([]),g=l(),m=(0,on.useCallback)((x,S)=>{s(S!=null?S:"")},[s]);(0,on.useEffect)(()=>{},[n]),(0,on.useEffect)(()=>{if(a){let x=d?[a,n.name,d]:[a,n.name];g(x).then(S=>{h(S)}).catch(S=>{console.error("Error getting suggsetions",S)})}},[a,n,d,g]);let y=(0,on.useCallback)(x=>{let{value:S}=x.target;p(S)},[]),w=(0,on.useMemo)(()=>{if(i==="starts"||i==="ends"){let{inputProps:x,...S}=e;return{...S,inputProps:{...x,onKeyDown:b=>{var C;b.key==="Enter"&&d!==""?(b.stopPropagation(),b.preventDefault(),s(d)):(C=x==null?void 0:x.onKeyDown)==null||C.call(x,b)}}}}else return e},[e,s,i,d]);return(0,on.useCallback)(()=>{switch(i){case"in":return(0,Pu.jsx)(Du,{InputProps:w,className:t,initialHighlightedIndex:0,source:f,onInputChange:y,onSelectionChange:m,ref:c,value:u});case"starts":return(0,Pu.jsx)(Du,{InputProps:w,ListProps:{className:"vuuIllustrationsOnly",disabled:!0},allowFreeText:!0,className:t,initialHighlightedIndex:0,source:f,onInputChange:y,onSelectionChange:m,ref:c,value:u});case"ends":return(0,Pu.jsx)(Pc,{...w,className:t,value:d,ref:c,onChange:y});default:return(0,Pu.jsx)(Du,{InputProps:w,className:t,initialHighlightedIndex:0,source:f,onInputChange:y,onSelectionChange:m,ref:c,value:u})}},[i,w,t,f,y,m,c,u,d])()});var Tb=require("@vuu-ui/vuu-utils");var Eb=require("react");var jR=require("react/jsx-runtime");var QR=require("@vuu-ui/vuu-utils"),KB=B(require("classnames"),1),JR=require("react");var zB=require("react"),$B=B(require("classnames"),1);var WB=require("react/jsx-runtime");var rr=require("@vuu-ui/vuu-utils");var XR=require("react/jsx-runtime");var YR=require("@vuu-ui/vuu-utils"),qp=require("react");var UB=require("react");var ZR=require("react/jsx-runtime"),QB=require("react");var t2=require("@salt-ds/core");var e2=B(require("classnames"),1),Rb=require("react");var tme=Ro.define({name:"VuuFilterQuery",parser:Ra.configure({props:[Ks({Identifier:_.variableName,String:_.string,Or:_.emphasis,Operator:_.operator})]})});var JB=oo.define([{tag:_.variableName,color:"var(--vuuFilterEditor-variableColor)"},{tag:_.comment,color:"green",fontStyle:"italic"}]),XB=Gs(JB);var YB=ae.theme({"&":{color:"var(--vuuFilterEditor-color)",backgroundColor:"var(--vuuFilterEditor-background)",fontSize:"var(--vuuFilterEditor-fontSize)"},".cm-content":{caretColor:"var(--vuuFilterEditor-cursorColor)",padding:0},".cm-line":{lineHeight:"var(--vuuFilterEditor-lineHeight)"},"&.cm-focused .cm-cursor":{borderLeftColor:"var(--vuuFilterEditor-cursorColor)"},"&.cm-focused .cm-selectionBackground, ::selection":{backgroundColor:"var(--vuuFilterEditor-selectionBackground)"},".cm-selectionBackground, ::selection":{backgroundColor:"var(--vuuFilterEditor-selectionBackground)"},".cm-scroller":{fontFamily:"var(--vuuFilterEditor-fontFamily)"},".cm-tooltip":{background:"var(--vuuFilterEditor-tooltipBackground)",border:"var(--vuuFilterEditor-tooltipBorder)",boxShadow:"var(--vuuFilterEditor-tooltipElevation)","&.cm-tooltip-autocomplete > ul":{fontFamily:"var(--vuuFilterEditor-fontFamily)",fontSize:"var(--vuuFilterEditor-fontSize)",maxHeight:"240px"},"&.cm-tooltip-autocomplete > ul > li":{alignItems:"center",display:"flex",height:"var(--vuuFilterEditor-suggestion-height)",padding:"0 3px",lineHeight:"var(--vuuFilterEditor-suggestion-height)"},"&.cm-tooltip-autocomplete li[aria-selected]":{background:"var(--vuuFilterEditor-suggestion-selectedBackground)",color:"var(--vuuFilterEditor-suggestion-selectedColor)"}},".cm-completionIcon":{height:"18px",flex:"0 0 16px"},".cm-completionLabel":{flex:"1 1 auto"},".cm-completionIcon-filter":{position:"relative","&:after":{background:"var(--salt-text-secondary-foreground)",content:"''","-webkit-mask":"var(--svg-filter) center center/13px 13px","-webkit-mask-repeat":"no-repeat",position:"absolute",height:"18px",left:"0px",top:"0px",width:"16px"}}},{dark:!1});var ZB=require("react");var tD=require("react/jsx-runtime");var nD=require("react");var n2=require("@vuu-ui/vuu-utils");var o2=require("@vuu-ui/vuu-utils"),r2=require("react/jsx-runtime"),uge=Gl.default.createContext({layouts:[],saveLayout:()=>{}});var Db=require("react/jsx-runtime");var oD=require("react"),st=require("react/jsx-runtime"),rD=(0,oD.memo)(()=>(0,st.jsxs)("svg",{width:"44",height:"45",viewBox:"0 0 44 45",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[(0,st.jsxs)("g",{clipPath:"url(#clip0_217_6990)",children:[(0,st.jsx)("path",{d:"M39.8642 15.5509L35.9196 7.58974L34.3369 6.85464L24.6235 22.0825L39.1628 30.618L42.3152 25.6347L39.8642 15.5509Z",fill:"url(#paint0_linear_217_6990)"}),(0,st.jsx)("path",{d:"M42.6246 24.8716C41.9199 25.9157 40.9625 26.824 39.767 27.4905C38.424 28.2396 36.9563 28.597 35.5081 28.597C32.7541 28.597 30.0715 27.3094 28.4466 24.9855L15.772 3.90967L15.7655 3.9206C13.3615 0.137431 8.25372 -1.13143 4.24754 1.10507C0.178173 3.37435 -1.20852 8.39359 1.14854 12.3125L18.3445 40.9095C19.1108 42.1846 20.1816 43.1834 21.4144 43.8764C21.4241 43.8826 21.4338 43.8889 21.4435 43.8951C21.4484 43.8982 21.4549 43.9013 21.4597 43.9045C22.0332 44.2228 22.6423 44.471 23.2725 44.6536C23.3194 44.6677 23.368 44.6817 23.415 44.6942C23.6418 44.7551 23.8702 44.8097 24.1019 44.8534C24.1456 44.8612 24.1894 44.8659 24.2331 44.8737C24.4194 44.9049 24.6073 44.9314 24.7952 44.9501C24.8698 44.9579 24.9443 44.9658 25.0188 44.9704C25.2342 44.9876 25.4497 44.9985 25.6668 45.0001C25.6781 45.0001 25.6895 45.0001 25.6992 45.0001C25.7024 45.0001 25.704 45.0001 25.7073 45.0001C25.7105 45.0001 25.7121 45.0001 25.7154 45.0001C25.9503 45.0001 26.1868 44.9876 26.4217 44.9689C26.4751 44.9642 26.5286 44.9595 26.5837 44.9533C26.8137 44.9299 27.0438 44.9002 27.2738 44.8596C27.277 44.8596 27.2803 44.8596 27.2835 44.8596C27.5362 44.8144 27.7889 44.7551 28.0384 44.6864C28.0546 44.6817 28.0692 44.677 28.0854 44.6723C28.4483 44.5709 28.8063 44.4445 29.1594 44.2931C29.1659 44.29 29.174 44.2868 29.1805 44.2837C29.4494 44.1682 29.7151 44.0418 29.9759 43.8967C30.24 43.75 30.491 43.5908 30.7308 43.4206C30.9398 43.2739 31.1407 43.1179 31.3367 42.9524C31.5748 42.7495 31.8 42.5373 32.009 42.3141C32.1661 42.1471 32.3168 41.9723 32.4609 41.7913C32.5079 41.732 32.5517 41.6711 32.5954 41.6118C32.6942 41.4807 32.7882 41.3465 32.8789 41.2091C32.9259 41.1373 32.9728 41.0671 33.0182 40.9953C33.036 40.9672 33.0555 40.9407 33.0717 40.9126L42.7153 24.8763H42.6214L42.6246 24.8716Z",fill:"url(#paint1_linear_217_6990)"}),(0,st.jsx)("path",{d:"M42.8402 16.4218L42.1112 15.2232L38.9636 9.58433L37.504 7.19644C37.2286 6.56123 36.579 6.11331 35.8176 6.11331C34.8083 6.11331 33.9919 6.90147 33.9919 7.87223C33.9919 8.20154 34.0907 8.50432 34.2543 8.76808L34.2349 8.78056L39.9048 18.0808C40.5884 19.2186 40.7715 20.5437 40.4199 21.8141C40.0684 23.0845 39.226 24.1458 38.045 24.806C37.2675 25.2398 36.3846 25.4693 35.4936 25.4693C33.6727 25.4693 31.9766 24.5281 31.0662 23.0143L22.9161 9.63271H22.9323L19.4899 3.90958L19.4834 3.92051C19.4235 3.8253 19.3538 3.73947 19.2907 3.64738L19.1935 3.48663C19.1935 3.48663 19.1854 3.49131 19.1821 3.49443C17.5654 1.27666 14.9799 0.0390178 12.3118 0.00936427V0H7.91199V0.02185C10.9851 -0.184164 14.0582 1.23296 15.7656 3.92051L15.7721 3.90958L28.4451 24.987C30.0699 27.3093 32.7542 28.5985 35.5066 28.5985C36.9548 28.5985 38.4225 28.2426 39.7655 27.4919C40.961 26.8255 41.9168 25.9156 42.6231 24.8731H42.717L42.6846 24.9261C43.1366 24.2347 43.4833 23.4731 43.7068 22.6615C44.2916 20.5452 43.9871 18.3352 42.8369 16.4234L42.8402 16.4218Z",fill:"#F37880"}),(0,st.jsxs)("g",{opacity:"0.86",children:[(0,st.jsx)("path",{d:"M34.2332 8.78212L39.9031 18.0824C40.5868 19.2202 40.7698 20.5452 40.4183 21.8156C40.2044 22.5897 39.8059 23.2858 39.2616 23.8617C39.9744 23.2343 40.4879 22.4243 40.7423 21.5035C41.0938 20.2331 40.9107 18.908 40.2271 17.7703L34.5572 8.46998L34.5767 8.4575C34.413 8.19374 34.3142 7.89096 34.3142 7.56165C34.3142 7.15586 34.4584 6.78285 34.6982 6.48476C34.2672 6.80626 33.9902 7.30881 33.9902 7.87379C33.9902 8.2031 34.0891 8.50588 34.2527 8.76964L34.2332 8.78212Z",fill:"white"}),(0,st.jsx)("path",{d:"M42.6917 24.9169L42.6863 24.9256C42.6863 24.9256 42.6899 24.9187 42.6935 24.9152C42.6935 24.9152 42.6935 24.9152 42.6935 24.9169H42.6917Z",fill:"white"}),(0,st.jsx)("path",{d:"M40.0911 27.1798C38.7481 27.9289 37.2804 28.2863 35.8322 28.2863C33.0782 28.2863 30.3955 26.9988 28.7707 24.6749L16.0961 3.59744L16.0896 3.60837C14.9281 1.78077 13.1364 0.543128 11.1422 0H7.91199V0.02185C10.9851 -0.184164 14.0582 1.23296 15.7656 3.92051L15.7721 3.90958L28.4451 24.987C30.0699 27.3093 32.7542 28.5985 35.5066 28.5985C36.9548 28.5985 38.4225 28.2426 39.7655 27.4919C40.4815 27.0924 41.1084 26.6055 41.6511 26.0561C41.1862 26.479 40.6662 26.8583 40.0894 27.1798H40.0911Z",fill:"white"})]})]}),(0,st.jsxs)("defs",{children:[(0,st.jsxs)("linearGradient",{id:"paint0_linear_217_6990",x1:"24.6235",y1:"18.7363",x2:"42.3152",y2:"18.7363",gradientUnits:"userSpaceOnUse",children:[(0,st.jsx)("stop",{stopColor:"#4906A5"}),(0,st.jsx)("stop",{offset:"1",stopColor:"#D3423A"})]}),(0,st.jsxs)("linearGradient",{id:"paint1_linear_217_6990",x1:"-2.35794e-05",y1:"22.5009",x2:"42.7186",y2:"22.5009",gradientUnits:"userSpaceOnUse",children:[(0,st.jsx)("stop",{stopColor:"#7C06A5"}),(0,st.jsx)("stop",{offset:"1",stopColor:"#D3423A"})]}),(0,st.jsx)("clipPath",{id:"clip0_217_6990",children:(0,st.jsx)("rect",{width:"44",height:"45",fill:"white"})})]})]}));rD.displayName="VuuLogo";var c2=B(require("classnames"));var uD=require("react");var sD=require("react/jsx-runtime");var sr=require("react"),iD=B(require("classnames")),aD=require("react/jsx-runtime"),s2="medium",i2="salt-theme",l2="light",Pb=(0,sr.createContext)({density:"high",theme:"vuu",themeMode:"light"}),a2=["vuu","vuu-density-high","light"],zn=()=>{let o=(0,sr.useContext)(Pb);return o?[`${o.theme}-theme`,`${o.theme}-density-${o.density}`,o.themeMode]:a2},u2=(o,e,t,n)=>{var r;return(0,sr.isValidElement)(o)?(0,sr.cloneElement)(o,{className:(0,iD.default)((r=o.props)==null?void 0:r.className,`${e}-theme`,`${e}-density-${n}`),"data-mode":t}):(console.warn(`
|
|
32
|
-
|
|
33
|
-
Wrap elements with a single container`),o)},lD=({applyThemeClasses:o=!1,children:e,theme:t,themeMode:n,density:r})=>{var p,f,h;let{density:s,themeMode:i,theme:l}=(0,sr.useContext)(Pb),a=(p=r!=null?r:s)!=null?p:s2,u=(f=n!=null?n:i)!=null?f:l2,c=(h=t!=null?t:l)!=null?h:i2,d=o?u2(e,c,u,a):e;return(0,aD.jsx)(Pb.Provider,{value:{themeMode:u,density:a,theme:c},children:d})};lD.displayName="ThemeProvider";var cD=require("react/jsx-runtime");var d2=require("react"),jp=require("@salt-ds/core");var dD=require("react/jsx-runtime");var pD=require("@vuu-ui/vuu-utils"),p2=()=>{let o=(0,pD.getCookieValue)("vuu-auth-mode");return o!=null?o:""};var f2=()=>p2()==="login"?"login.html":"demo.html",h2=(o=f2())=>{window.location.href=o},fD=o=>{document.cookie="vuu-username= ; expires = Thu, 01 Jan 1970 00:00:00 GMT",document.cookie="vuu-auth-token= ; expires = Thu, 01 Jan 1970 00:00:00 GMT",h2(o)};var ku=require("react"),m2=B(require("classnames")),g2=require("@salt-ds/core"),b2=require("@salt-ds/core");var kb=require("@vuu-ui/vuu-utils");var hD=require("react/jsx-runtime");var k2=B(require("classnames")),Ab=require("react");var M2=require("react");var C2=require("@salt-ds/core"),S2=require("@salt-ds/lab"),w2=require("@salt-ds/icons");var gD=require("@vuu-ui/vuu-utils"),Qp=require("@salt-ds/lab"),bD=require("@salt-ds/core"),yD=require("@salt-ds/icons"),ir=require("react");var mD=async o=>await fetch(`api/vui/${o.username}`,{}).then(t=>t.ok?t.json():null).catch(()=>{console.log("error getting history")});var Gr=require("react/jsx-runtime"),y2=({lastUpdate:o},{lastUpdate:e})=>e===o?0:e<o?-1:1,x2=o=>(0,Gr.jsx)(Qp.ListItem,{...o}),v2=(0,ir.forwardRef)(function({loginUrl:e,onNavigate:t,user:n,layoutId:r="latest"},s){let[i,l]=(0,ir.useState)([]);(0,ir.useEffect)(()=>{async function d(){let f=(await mD(n)).filter(h=>h.id!=="latest").sort(y2).map(({id:h,lastUpdate:g})=>({lastUpdate:g,id:h,label:`Saved at ${(0,gD.formatDate)(new Date(g),"kk:mm:ss")}`}));console.log({sortedHistory:f}),l(f)}d()},[n]);let a=(0,ir.useCallback)((d,p)=>{p&&t(p.id)},[t]),u=(0,ir.useCallback)(()=>{fD(e)},[e]),c=i.length===0?null:r==="latest"?i[0]:i.find(d=>d.id===r);return(0,Gr.jsxs)("div",{className:"vuuUserPanel",ref:s,children:[(0,Gr.jsx)(Qp.List,{ListItem:x2,className:"vuuUserPanel-history",onSelect:a,selected:c,source:i}),(0,Gr.jsx)("div",{className:"vuuUserPanel-buttonBar",children:(0,Gr.jsxs)(bD.Button,{"aria-label":"logout",onClick:u,children:[(0,Gr.jsx)(yD.ExportIcon,{})," Logout"]})})]})});var xD=require("react/jsx-runtime");var T2=B(require("classnames")),Ib=require("@salt-ds/core"),E2=require("react");var vD=require("react/jsx-runtime");var R2=B(require("classnames"));var CD=require("react/jsx-runtime");var MD=require("@vuu-ui/vuu-utils");var D2=require("@salt-ds/core"),P2=B(require("classnames")),SD=require("react");var wD=require("react/jsx-runtime");var TD=require("react/jsx-runtime");var Lb=require("react"),ED=require("react/jsx-runtime");var RD=require("react/jsx-runtime"),{error:Zye}=(0,MD.logger)("Shell");var Ob=require("react"),L2=require("react/jsx-runtime"),I2={},oxe=(0,Ob.createContext)(I2);var PD=B(require("classnames")),cs=function({children:e,x:t=0,y:n=0,onRender:r}){let[s,i,l]=zn(),a=(0,Iu.useMemo)(()=>af({className:(0,PD.default)(s,i),dataMode:l}),[l,i,s]);return(0,Iu.useLayoutEffect)(()=>{Yl(e,a,t,n,r)},[e,r,a,t,n]),(0,Iu.useLayoutEffect)(()=>()=>{var u;a&&(DD.unmountComponentAtNode(a),a.classList.contains("vuuPopup")&&((u=a.parentElement)==null||u.removeChild(a)))},[a]),null};var A2=o=>{let e=getComputedStyle(document.body).getPropertyValue("--installed-themes");document.body.style.setProperty("--installed-themes",`${e} ${o}`)};var qr=require("react/jsx-runtime"),Nb="vuuDialog",O2=({children:o,className:e,isOpen:t=!1,onClose:n,title:r,hideCloseButton:s=!1,...i})=>{let l=(0,jr.useRef)(null),[a]=(0,jr.useState)(0),[u]=(0,jr.useState)(0),c=(0,jr.useCallback)(()=>{n==null||n()},[n]),d=(0,jr.useCallback)(()=>{},[]);return t?(0,qr.jsx)(cs,{onRender:d,x:a,y:u,children:(0,qr.jsx)(kD.Scrim,{className:`${Nb}-scrim`,open:t,autoFocusRef:l,children:(0,qr.jsxs)("div",{...i,className:(0,Hb.default)(Nb,e),ref:l,children:[(0,qr.jsxs)("div",{className:(0,Hb.default)("vuuToolbarProxy",`${Nb}-header`),children:[(0,qr.jsx)(Jp.Text,{className:"dialogHeader",children:r}),!s&&(0,qr.jsx)(Jp.Button,{onClick:c,"data-align":"end","data-icon":"close"},"close")]}),o]})})}):null};var di=require("react");var ar=B(require("react")),Bb=B(require("classnames"));var Cn=require("react");var ID=o=>o.closest("[data-root='true']")!==null,LD=(o,e)=>{var t;return o.ariaHasPopup==="true"&&((t=o.dataset)==null?void 0:t.idx)===`${e}`||o.querySelector(`:scope > [data-idx='${e}'][aria-haspopup='true']`)!==null};function N2(o,...e){let t=new Set(o);for(let n of e)for(let r of n)t.add(r);return t}var H2="Enter";var F2="Delete",V2=new Set([H2,F2]),B2=new Set(["Tab"]),z2=new Set(["ArrowRight","ArrowLeft"]),AD=new Set(["Home","End","ArrowDown","ArrowUp"]),OD=new Set(["Home","End","ArrowRight","ArrowLeft"]),$2=new Set(["F1","F2","F3","F4","F5","F6","F7","F8","F9","F10","F11","F12"]),Bxe=N2(V2,OD,AD,z2,$2,B2);var ND=({key:o},e="vertical")=>(e==="vertical"?AD:OD).has(o);var Xp=require("@vuu-ui/vuu-utils"),HD=({autoHighlightFirstItem:o=!1,count:e,defaultHighlightedIdx:t,highlightedIndex:n,onActivate:r,onHighlight:s,onCloseMenu:i,onOpenMenu:l})=>{var x;if((0,Xp.isValidNumber)(n)&&(0,Xp.isValidNumber)(t))throw Error("useKeyboardNavigation do not pass values for both highlightedIndex and defaultHighlightedIdx");let a=(0,Xp.isValidNumber)(n),u=(0,Cn.useRef)((x=t!=null?t:n)!=null?x:o?0:-1),[,c]=(0,Cn.useState)(null),d=(0,Cn.useCallback)(S=>{u.current=S,s==null||s(S),c({})},[s]),p=(0,Cn.useCallback)(S=>{S!==u.current&&(a||d(S))},[a,d]),f=(0,Cn.useRef)(!0),h=(0,Cn.useRef)(!1),g=S=>h.current=S,m=a?n:u.current,y=(0,Cn.useCallback)(S=>{let b=W2(e,S.key,u.current);b!==u.current&&p(b)},[e,p]),w=(0,Cn.useCallback)(S=>{if(ND(S))S.preventDefault(),S.stopPropagation(),f.current=!0,y(S);else if((S.key==="ArrowRight"||S.key==="Enter")&&LD(S.target,m)){let C=S.target.querySelector(`:scope > [data-idx='${m}']`);C&&(l==null||l(C))}else S.key==="ArrowLeft"&&!ID(S.target)?i(m):S.key==="Enter"?(S.preventDefault(),S.stopPropagation(),r&&r(m)):S.key==="Tab"&&i(-1)},[m,y,r,i,l]),v=(0,Cn.useMemo)(()=>({onFocus:()=>{m===-1&&d(0)},onKeyDown:w,onMouseDownCapture:()=>{f.current=!1,g(!0)},onMouseMove:()=>{f.current&&(f.current=!1)},onMouseLeave:()=>{f.current=!0,g(!1),p(-1)}}),[w,m,d,p]);return{focusVisible:f.current?m:-1,controlledHighlighting:a,highlightedIndex:m,setHighlightedIndex:p,listProps:v,setIgnoreFocus:g}};function W2(o,e,t){return e==="ArrowUp"?t>0?t-1:t:t===null?0:t===o-1?t:t+1}var ci=B(require("react"));var Fb=o=>o.type===Lu||!!o.props["data-group"],_2=o=>{if(Array.isArray(o)&&Yp(o[0]))return o[0]},K2=(o,e,t,n=!1)=>{let{props:{children:r}}=o;return{childWithId:ci.default.cloneElement(o,{hasSeparator:n,id:`${e}`,key:e,children:t?_2(r):r}),grandChildren:t?r:void 0}},FD=(o,e)=>{let t=(0,ci.useCallback)(()=>{let s=(i,l=e,a={},u={})=>{let c=a[l]=[],d=0,p=!1;return ci.default.Children.forEach(i,f=>{if(!Yp(f))if(f.type===Vb)p=!0;else{let h=Fb(f),g=`${l}-${d}`,{props:{action:m,options:y}}=f,{childWithId:w,grandChildren:v}=K2(f,g,h,p);c.push(w),v?s(v,g,a,u):u[g]={action:m,options:y},d+=1,p=!1}}),[a,u]};return s(o)},[e,o]),[n,r]=(0,ci.useMemo)(()=>t(),[t]);return[n,r]};var lr=require("react/jsx-runtime"),VD="vuuMenuList",Vb=()=>(0,lr.jsx)("li",{className:"vuuMenuItem-divider"}),Lu=()=>null,Au=({children:o,idx:e,...t})=>(0,lr.jsx)("div",{...t,children:o}),BD=({children:o})=>(0,lr.jsx)(lr.Fragment,{children:o});BD.displayName="MenuItemLabel";Au.Label=BD;var U2=o=>ar.default.isValidElement(o)&&typeof o.type!="string"&&"displayName"in o.type?o.type.displayName:void 0,Yp=o=>U2(o)==="MenuItemLabel",G2=o=>o.props["data-icon"],Zp=({activatedByKeyboard:o,childMenuShowing:e,children:t,className:n,defaultHighlightedIdx:r,highlightedIdx:s,id:i,isRoot:l,listItemProps:a,onHighlightMenuItem:u,onActivate:c,onCloseMenu:d,onOpenMenu:p,...f})=>{let h=He(i),g=(0,ar.useRef)(null),m=(0,ar.useMemo)(()=>new Map,[]),y=M=>{var E;let D=(E=g.current)==null?void 0:E.querySelector(`:scope > [data-idx='${M}']`);D!=null&&D.id&&(c==null||c(D.id))},{focusVisible:w,highlightedIndex:v,listProps:x}=HD({count:ar.default.Children.count(t),defaultHighlightedIdx:r,highlightedIndex:s,onActivate:y,onHighlight:u,onOpenMenu:p,onCloseMenu:d}),S=e==null?w:-1;(0,ar.useLayoutEffect)(()=>{var M;e===void 0&&o&&((M=g.current)==null||M.focus())},[o,e]);let b=()=>v===void 0||v===-1?void 0:m.get(v);function C(){let M={...a,role:"menuitem"},D=(T,P,L)=>P?[(0,lr.jsx)("span",{className:"vuuIconContainer","data-icon":L},"icon")].concat(T):T;function E(T,P,L,N){var G;let{children:A,className:k,"data-icon":I,id:F,hasSeparator:H,label:z,...W}=P.props,q=Fb(P),j=q&&e===F,J=j?`${h}-${F}`:void 0;T.push((0,lr.jsx)(Au,{...W,...M,...q2(F,L,(G=P.key)!=null?G:F,v,S,k,H),"aria-controls":J,"aria-haspopup":q||void 0,"aria-expanded":j||void 0,children:D(q&&z!=null?z:A,N,I)}))}let O=[];if(t.length>0){let T=t.some(G2);t.forEach((P,L)=>{E(O,P,L,T)})}return O}return(0,lr.jsx)("div",{...f,...x,"aria-activedescendant":b(),className:(0,Bb.default)(VD,n,{[`${VD}-childMenuShowing`]:e!==void 0}),"data-root":l||void 0,id:h,ref:g,role:"menu",children:C()})},q2=(o,e,t,n,r,s,i)=>({id:`menuitem-${o}`,key:t!=null?t:e,"data-idx":e,"data-highlighted":e===n||void 0,className:(0,Bb.default)("vuuMenuItem",s,{"vuuMenuItem-separator":i,focusVisible:r===e})});Zp.displayName="MenuList";var et=require("react");var zb=o=>o==null?void 0:o.closest("[data-idx],[aria-posinset]");var $D=(o,e,t)=>o.map((n,r)=>r===o.length-1?{...n,[t]:n[t]-e}:n),j2=(o,e)=>$D(o,e,"left"),Q2=(o,e)=>$D(o,e,"top"),J2=(o,e)=>{let[t,n]=e.slice(-2),r=document.getElementById(`${o}-${n.id}`);if(r===null)throw Error(`useCascade.flipSides element with id ${n.id} not found`);let{width:s}=r.getBoundingClientRect();return e.map(i=>i===n?{...i,left:t.left-(s-2)}:i)},X2=(o,e)=>{let[{left:t,top:n}]=e.slice(-1),{offsetWidth:r,offsetTop:s}=o;return{left:t+r,top:s+n}},WD=(o,e)=>{let t=o.lastIndexOf("-");return t>-1?o.slice(9,t):e},Y2=o=>o.slice(9),zD=({ariaExpanded:o,ariaHasPopup:e,id:t},n)=>{if(t.startsWith("menuitem"))return{hostMenuId:WD(t,n),targetMenuId:Y2(t),menuItemId:t,isGroup:e==="true",isOpen:o==="true"};throw Error(`getMenuItemDetails #${t} is not a menuitem`)},_D=({id:o,onActivate:e,onMouseEnterItem:t,position:{x:n,y:r}})=>{let[,s]=(0,et.useState)({}),i=(0,et.useRef)([{id:o,left:n,top:r}]),l=(0,et.useCallback)(b=>i.current.findIndex(C=>C.id===b)!==-1,[]),a=(0,et.useCallback)(b=>{let C=p.current[b];if(C===void 0)throw Error(`getOpenMenuState no entry for menu ${b}`);return C},[]),u=(0,et.useCallback)(b=>{i.current=b,s({})},[]),c=(0,et.useRef)(),d=(0,et.useRef)(),p=(0,et.useRef)({[o]:"no-popup"}),f=(0,et.useCallback)((b=o,C,M=null)=>{if(b===o&&M===null)u([{id:o,left:n,top:r}]);else{p.current[b]="popup-open";let D=document.getElementById(M);if(D!==null){let{left:E,top:O}=X2(D,i.current);u(i.current.concat({id:C,left:E,top:O}))}else throw Error(`openMenu no menuItem ${M}`)}},[o,n,r,u]),h=(0,et.useCallback)(b=>{if(b===o)u([]);else{let C=i.current.slice(),M=C.pop();p.current[M.id]="no-popup";let D=C.at(-1);D&&(p.current[D.id]="no-popup"),u(C)}},[o,u]),g=(0,et.useCallback)(b=>{let C=i.current.slice(),M=b.slice(9),{id:D}=C.at(-1);for(;C.length>1&&!M.startsWith(D);){let E=WD(D,o);C.pop(),p.current[D]="no-popup",p.current[E]="no-popup",{id:D}=C[C.length-1]}C.length<i.current.length&&u(C)},[o,u]),m=(0,et.useCallback)(()=>{c.current&&(clearTimeout(c.current),c.current=void 0)},[]),y=(0,et.useCallback)((b,C,M)=>{m(),c.current=window.setTimeout(()=>{g(M),p.current[b]="popup-open",p.current[C]="no-popup",f(b,C,M)},400)},[m,g,f]),w=(0,et.useCallback)((b,C,M)=>{p.current[C]="pending-close",d.current=window.setTimeout(()=>{g(M)},400)},[g]),v=(0,et.useCallback)(()=>{let{current:b}=i,[C]=b.slice(-1),M=document.getElementById(C.id);if(M){let{right:D,bottom:E}=M.getBoundingClientRect(),{clientHeight:O,clientWidth:T}=document.body;if(D>T){let P=b.length>1?J2(o,b):j2(b,D-T);u(P)}else if(E>O){let P=Q2(b,E-O);u(P)}typeof M.tabIndex=="number"&&M.focus()}else console.log(`no element found with if ${C.id}`)},[o,u]),x=(0,et.useCallback)(b=>{let{hostMenuId:C,targetMenuId:M,menuItemId:D,isGroup:E,isOpen:O}=zD(b,o),{current:{[C]:T}}=p;if(T==="no-popup"&&E)p.current[C]="popup-pending",y(C,M,D);else if(T==="popup-pending"&&!E)p.current[C]="no-popup",clearTimeout(c.current),c.current=void 0;else if(T==="popup-pending"&&E)clearTimeout(c.current),y(C,M,D);else if(T==="popup-open")if(l(M)){let P=a(M);switch(g(D),P){case"pending-close":clearTimeout(d.current),d.current=void 0,p.current[M]="no-popup",m();break;default:}}else{let[P,L]=i.current.slice(-2);P.id===C&&p.current[L.id]!=="pending-close"?(w(C,L.id,D),E&&!O&&y(C,M,D)):P.id===C&&E&&D!==L.id&&p.current[L.id]==="pending-close"||E?y(C,M,D):p.current[L.id]!=="pending-close"&&g(D)}T==="pending-close"&&(m(),clearTimeout(d.current),d.current=void 0,p.current[C]="popup-open")},[m,g,a,l,o,w,y]),S=(0,et.useMemo)(()=>({onMouseEnter:b=>{let C=zb(b.target);x(C),t(b,C.id)},onClick:b=>{let C=zb(b.target),{isGroup:M,menuItemId:D}=zD(C,o);M?x(C):e(D)}}),[e,t,o,x]);return{closeMenu:h,handleRender:v,listItemProps:S,openMenu:x,openMenus:i.current}};var Ou=require("react/jsx-runtime"),KD=require("react"),Z2=()=>{},ef=({activatedByKeyboard:o,children:e,className:t,id:n,onClose:r=()=>{},position:s={x:0,y:0},style:i,...l})=>{let a=(0,di.useRef)(r);a.current=r;let u=He(n),c=(0,di.useRef)(Z2),[d,p]=FD(e,u),f=(0,di.useRef)(o),h=(0,di.useCallback)(()=>{f.current=!1},[]),g=(0,di.useCallback)(D=>{let E=D.slice(9),{action:O,options:T}=p[E];c.current(u),r({type:"menu-action",menuId:O,options:T})},[p,u,r]),{closeMenu:m,listItemProps:y,openMenu:w,openMenus:v,handleRender:x}=_D({id:`${u}`,onActivate:g,onMouseEnterItem:h,position:s});c.current=m;let S=()=>{f.current=!0,m()},b=()=>{},C=v.length-1,M=D=>{if(!(D>=C)){let{id:E}=v[D+1];return E}};return(0,Ou.jsx)(Ou.Fragment,{children:v.map(({id:D,left:E,top:O},T,P)=>{let L=M(T);return(0,Ou.jsx)(cs,{x:E,y:O,onRender:x,children:(0,KD.createElement)(Zp,{...l,activatedByKeyboard:f.current,childMenuShowing:L,className:t,id:D,isRoot:T===0,key:T,listItemProps:y,onActivate:g,onHighlightMenuItem:b,onCloseMenu:S,onOpenMenu:w,style:i,tabIndex:T===P.length-1?0:void 0},d[D])},T)})})};ef.displayName="ContextMenu";var ql=require("react"),tf=require("react/jsx-runtime"),Nu=(0,ql.createContext)(null),ez=({children:o,context:e,menuActionHandler:t,menuBuilder:n})=>{let r=(0,ql.useMemo)(()=>e!=null&&e.menuBuilders&&n?e.menuBuilders.concat(n):n?[n]:(e==null?void 0:e.menuBuilders)||[],[e,n]),s=(0,ql.useCallback)(i=>{var l;if(t!=null&&t(i)||(l=e==null?void 0:e.menuActionHandler)!=null&&l.call(e,i))return!0},[e,t]);return(0,tf.jsx)(Nu.Provider,{value:{menuActionHandler:s,menuBuilders:r},children:o})},td=({children:o,label:e,menuActionHandler:t,menuBuilder:n})=>(0,tf.jsx)(Nu.Consumer,{children:r=>(0,tf.jsx)(ez,{context:r,label:e,menuActionHandler:t,menuBuilder:n,children:o})});var XD=require("@vuu-ui/vuu-utils"),YD=B(require("classnames")),Qr=require("react");var UD=B(require("classnames")),ao=B(require("react")),jl=B(require("react-dom"));var pi=!1,$n=[],$b=o=>(o==null?void 0:o.type)==="menu-action",Wb=o=>(o==null?void 0:o.type)==="click-away";function nf(o){if(o.key==="Esc"){if($n.length)qD();else if(pi){let e=document.body.querySelector(".vuuDialog");e&&jl.default.unmountComponentAtNode(e)}}}function GD(o){if($n.length){let e=document.body.querySelectorAll(".vuuPopup");for(let t=0;t<e.length;t++)if(e[t].contains(o.target))return;qD({mouseEvt:o,type:"click-away"})}}function qD(o){if($n.length===1)De.hidePopup(o,"anon","all");else if($n.length){let e=document.body.querySelectorAll(".vuuPopup");for(let t=0;t<e.length;t++)jl.default.unmountComponentAtNode(e[t]);jD("*")}}function tz(){pi===!1&&(pi=!0,window.addEventListener("keydown",nf,!0))}function nz(){pi&&(pi=!1,window.removeEventListener("keydown",nf,!0))}function oz(o){$n.indexOf(o)===-1&&($n.push(o),pi===!1&&(window.addEventListener("keydown",nf,!0),window.addEventListener("click",GD,!0)))}function jD(o){if($n.length){if(o==="*")$n.length=0;else{let e=$n.indexOf(o);e!==-1&&$n.splice(e,1)}$n.length===0&&pi===!1&&(window.removeEventListener("keydown",nf,!0),window.removeEventListener("click",GD,!0))}}var rz=({children:o,position:e,style:t})=>{let n=(0,UD.default)("hwPopup","hwPopupContainer",e);return(0,ao.createElement)("div",{className:n,style:t},o)},sz=1,De=class{static showPopup({group:e="all",name:t="anon",left:n=0,position:r="",right:s="auto",top:i=0,width:l="auto",component:a}){if(!a)throw Error("PopupService showPopup, no component supplied");typeof a.props.onClose=="function"?De.onClose=a.props.onClose:De.onClose=void 0,oz(t),document.addEventListener("keydown",De.escapeKeyListener,!0);let u=document.body.querySelector(".vuuPopup."+e);u===null&&(u=document.createElement("div"),u.className="vuuPopup "+e,document.body.appendChild(u));let c={width:l};Yl((0,ao.createElement)(rz,{key:sz++,position:r,style:c},a),u,n,i,()=>{De.keepWithinThePage(u,s)})}static escapeKeyListener(e){e.key==="Escape"&&De.hidePopup({type:"escape",event:e})}static hidePopup(e,t="anon",n="all"){var r;if($n.indexOf(t)!==-1){jD(t);let s=document.body.querySelector(`.vuuPopup.${n}`);s&&jl.default.unmountComponentAtNode(s)}document.removeEventListener("keydown",De.escapeKeyListener,!0),(r=De==null?void 0:De.onClose)==null||r.call(De,e)}static keepWithinThePage(e,t="auto"){let n=e.querySelector(".vuuPopupContainer > *");if(n){let{top:r,left:s,width:i,height:l,right:a}=n.getBoundingClientRect(),u=window.innerWidth,d=window.innerHeight-(r+l);d<0&&(n.style.top=Math.round(r)+d+"px");let p=u-(s+i);if(p<0&&(n.style.left=Math.round(s)+p+"px"),typeof t=="number"&&t!==a){let f=t-a;n.style.left=s+f+"px"}}}},Hu=class{static showDialog(e){let t=".vuuDialog",n=e.props.onClose;tz(),jl.default.render(ao.default.cloneElement(e,{container:t,onClose:()=>{Hu.closeDialog(),n&&n()}}),document.body.querySelector(t))}static closeDialog(){nz();let e=document.body.querySelector(".vuuDialog");e&&jl.default.unmountComponentAtNode(e)}},iz=o=>{let e=(0,ao.useRef)(),t=(0,ao.useRef)(null),n=(r,s)=>{let{name:i,group:l,depth:a,width:u}=r,c,d;if(e.current&&(window.clearTimeout(e.current),e.current=void 0),r.close===!0)De.hidePopup(void 0,i,l);else{let{position:p,children:f}=r,{left:h,top:g,width:m,bottom:y}=s;p==="below"?(c=h,d=y):p==="above"&&(c=h,d=g),e.current=window.setTimeout(()=>{De.showPopup({name:i,group:l,depth:a,position:p,left:c,top:d,width:u||m,component:f})},10)}};return(0,ao.useEffect)(()=>{if(t.current){let r=t.current.parentElement,s=r==null?void 0:r.getBoundingClientRect();s&&n(o,s)}return()=>{De.hidePopup(void 0,o.name,o.group)}},[o]),ao.default.createElement("div",{className:"popup-proxy",ref:t})};var QD=B(require("classnames"));var of=require("react"),lz=(o,e,t,n)=>{let{bottom:r,left:s,right:i,top:l,width:a}=o.getBoundingClientRect();switch(e){case"below":return{left:s+t,top:r+n};case"right":return{left:i+t,top:l+n};case"below-center":return{left:s+a/2+t,top:r+n};case"below-full-width":return{left:s+t,top:r+n,width:a};default:throw Error("Popup getPositionRelativeToAnchor only supported placement values are below and right")}},Fu=({anchorElement:o,offsetLeft:e=0,offsetTop:t=0,placement:n})=>{let[r,s]=(0,of.useState)();return(0,of.useLayoutEffect)(()=>{if(o.current){let i=lz(o.current,n,e,t);s(i)}},[o,e,t,n]),r};var JD=require("react/jsx-runtime"),lc=({children:o,className:e,anchorElement:t,placement:n})=>{let[r,s,i]=zn(),l=Fu({anchorElement:t,placement:n});return l===void 0?null:(0,JD.jsx)("div",{className:(0,QD.default)("vuuPortal",e,r,s),"data-mode":i,style:l,children:o})};var rf=require("react/jsx-runtime"),ho=(o,e)=>{let t=(0,Qr.useContext)(Nu),[n,r,s]=zn(),i=(0,Qr.useCallback)((u,c,d)=>{let p=[];for(let f of u)p=p.concat(f(c,d));return p},[]),l=(0,Qr.useCallback)((u,c,{ContextMenuProps:d,contextMenu:p,...f})=>{var g,m;if((g=u.stopPropagation)==null||g.call(u),(m=u.preventDefault)==null||m.call(u),p)return uz({x:u.clientX,y:u.clientY},p);let h=[];if(o&&h.push(o),t&&Array.isArray(t==null?void 0:t.menuBuilders)&&t.menuBuilders.length>0&&h.push(...t.menuBuilders),h.length>0){let y=i(h,c,f),w=v=>(e==null?void 0:e(v))===!0?!0:t==null?void 0:t.menuActionHandler(v);y.length&&w&&cz(u,y,w,{...d,className:(0,YD.default)(d==null?void 0:d.className,n,r),"data-mode":s})}else console.warn("useContextMenu, no menuBuilders configured. These should be supplied via the ContextMenuProvider(s)")},[i,t,s,r,e,o,n]),a=(0,Qr.useCallback)(()=>{console.log("hide comnytext menu")},[]);return[l,a]},az={},uz=(o,e)=>{De.showPopup({focus:!0,left:0,top:0,component:(0,Qr.cloneElement)(e,{position:o})})},cz=(o,e,t,{position:n,...r}=az)=>{let s=u=>{let c=(d,p)=>(0,XD.isGroupMenuItemDescriptor)(d)?(0,rf.jsx)(Lu,{label:d.label,children:d.children.map(c)},p):(0,rf.jsx)(Au,{action:d.action,className:d.className,"data-icon":d.icon,options:d.options,children:d.label},p);return u.map(c)},i=u=>{var c;$b(u)&&(t(u),De.hidePopup()),(c=r==null?void 0:r.onClose)==null||c.call(r,u)},l=n!=null?n:{x:o.clientX,y:o.clientY},a=(0,rf.jsx)(ef,{...r,className:"vuuContextMenu",onClose:i,position:l,children:s(e)});De.showPopup({left:0,top:0,component:a,focus:!0})};var Jr=require("react");var ZD=B(require("classnames")),eP=require("@salt-ds/core");var tP=require("react/jsx-runtime"),_b="vuuPopupMenu",dz=o=>{if(o){let{bottom:e,left:t}=o.getBoundingClientRect();return{x:t,y:e+6}}},Fl=({className:o,label:e,icon:t=e?"chevron-down":"more-vert",id:n,menuActionHandler:r,menuBuilder:s,menuLocation:i="header",menuOptions:l,onMenuClose:a,tabIndex:u=0,...c})=>{let d=(0,Jr.useRef)(null),p=(0,Jr.useRef)(!1),[f,h]=(0,Jr.useState)(!1),g=He(n),[m]=ho(s,r),y=(0,Jr.useCallback)(v=>{h(!1),Wb(v)?v.mouseEvt.target===d.current&&(p.current=!0):requestAnimationFrame(()=>{var x;a==null||a(v),u!==-1&&((x=d.current)==null||x.focus())})},[a,u]),w=(0,Jr.useCallback)(v=>{p.current?p.current=!1:(h(!0),m(v,i,{ContextMenuProps:{className:"vuuPopupMenuList",id:`${g}-menu`,onClose:y,position:dz(d.current)},...l}))},[y,g,i,l,m]);return(0,tP.jsx)(eP.Button,{...c,"aria-controls":`${g}-menu-root`,"aria-expanded":f,"aria-haspopup":"menu",className:(0,ZD.default)(_b,o,{[`${_b}-withCaption`]:e!==void 0,[`${_b}-open`]:f}),"data-icon":t,id:g,onClick:w,ref:d,tabIndex:u,variant:"secondary",children:e})};var Ql=require("react"),nP=require("react-dom");function pz(o){return typeof o=="function"?o():o}var fz="vuu-portal-root",yi=({children:o,container:e=document.body,id:t=fz,open:n=!0})=>{var d;let[r,s]=(0,Ql.useState)(!1),i=(0,Ql.useRef)(null),l=(d=pz(e))!=null?d:document.body,[a,u,c]=zn();return(0,Ql.useLayoutEffect)(()=>{let p=document.getElementById(t);p?i.current=p:(i.current=document.createElement("div"),i.current.id=t);let f=i.current;l.contains(f)||l.appendChild(f),f.classList.add(a,u),f.dataset.mode=c,s(!0)},[t,l,a,u,c]),n&&r&&i.current&&o?(0,nP.createPortal)(o,i.current):null};var Kb=require("@salt-ds/core"),oP=B(require("classnames")),Vu=require("react");var ur=require("react/jsx-runtime"),Jl="vuuPrompt",hz={current:document.body},mz={},eD=({PopupProps:o=mz,cancelButtonLabel:e="Cancel",confirmButtonLabel:t="Confirm",icon:n,onCancel:r,onConfirm:s,style:i,text:l,title:a,variant:u="info",...c})=>{let{anchorElement:d=hz,offsetLeft:p=0,offsetTop:f=0,placement:h="below"}=o,[g,m,y]=zn(),w=Fu({anchorElement:d,offsetLeft:p,offsetTop:f,placement:h}),v=(0,Vu.useRef)(null),x=(0,Vu.useRef)(null);return(0,Vu.useLayoutEffect)(()=>{if(v.current&&(v.current.showModal(),x.current&&x.current.focus(),h.endsWith("center"))){let{width:S}=v.current.getBoundingClientRect();v.current.style.marginLeft=`-${S/2}px`}},[h]),(0,ur.jsx)("dialog",{...c,className:(0,oP.default)(Jl,`${Jl}-${u}`,g),"data-mode":y,ref:v,style:{...i,...w},children:(0,ur.jsxs)("form",{className:`${Jl}-form`,children:[(0,ur.jsx)("div",{className:`${Jl}-header`,"data-icon":n,children:a}),(0,ur.jsx)("div",{className:`${Jl}-text`,children:l}),(0,ur.jsxs)("div",{className:`${Jl}-buttonBar`,children:[(0,ur.jsx)(Kb.Button,{onClick:r,variant:"secondary",children:e}),(0,ur.jsx)(Kb.Button,{onClick:s,ref:x,value:"default",children:t})]})]})})};var sf=require("react"),gz=(o,e,t,n)=>{let{bottom:r,height:s,left:i,right:l,top:a,width:u}=o.getBoundingClientRect(),c=i+u/2,d=a+s/2;switch(e){case"above":return{left:c+t,top:a+n};case"below":return{left:c+t,top:r+n};case"right":return{left:l+t,top:d+t};case"left":return{left:i+t,top:d+t};default:throw Error("Tooltip getPositionRelativeToAnchor only supported placement values are left, right, below and right")}},rP=({anchorElement:o,offsetLeft:e=0,offsetTop:t=0,placement:n})=>{let[r,s]=(0,sf.useState)();return(0,sf.useLayoutEffect)(()=>{if(o.current){let i=gz(o.current,n,e,t);s(i)}},[o,e,t,n]),r};var lf=require("react/jsx-runtime"),sP="vuuTooltip",bz=({anchorElement:o,children:e,id:t,onMouseEnter:n,onMouseLeave:r,placement:s})=>{let i=rP({anchorElement:o,placement:s});return i===void 0?null:(0,lf.jsx)(yi,{children:(0,lf.jsx)("div",{className:sP,"data-align":s,id:t,style:i,children:(0,lf.jsx)("span",{className:`${sP}-content`,onMouseEnter:n,onMouseLeave:r,children:e})})})};var Ut=require("react");var yz=({id:o,placement:e="right",tooltipContent:t})=>{let n=(0,Ut.useRef)(),r=(0,Ut.useRef)(null),s=(0,Ut.useRef)(),i=(0,Ut.useRef)(),[l,a]=(0,Ut.useState)(),u=He(o),c=(0,Ut.useCallback)(y=>{var w;y.key==="Escape"&&((w=n.current)==null||w.call(n))},[]);n.current=(0,Ut.useCallback)(()=>{a(void 0),document.removeEventListener("keydown",c)},[c]);let d=(0,Ut.useCallback)(()=>{window.clearTimeout(i.current)},[]),p=(0,Ut.useCallback)(()=>{var y;(y=n.current)==null||y.call(n)},[]),f=(0,Ut.useCallback)(()=>{let{current:y}=r;y&&(a({anchorElement:r,children:t,id:`${u}-tooltip`,onMouseEnter:d,onMouseLeave:p,placement:e}),document.addEventListener("keydown",c)),s.current=void 0},[c,d,p,u,e,t]),h=(0,Ut.useCallback)(y=>{let w=y.target;w&&(r.current=w,s.current=window.setTimeout(f,800))},[f]),g=(0,Ut.useCallback)(()=>{r.current&&(s.current?(window.clearTimeout(s.current),s.current=void 0):n.current&&(i.current=window.setTimeout(n.current,200)))},[]);return{anchorProps:{"aria-describedby":`${u}-tooltip`,onMouseEnter:h,onMouseLeave:g},tooltipProps:l}};
|
|
1
|
+
"use strict";
|
|
2
|
+
var __create = Object.create;
|
|
3
|
+
var __defProp = Object.defineProperty;
|
|
4
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
7
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
8
|
+
var __export = (target, all) => {
|
|
9
|
+
for (var name in all)
|
|
10
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
11
|
+
};
|
|
12
|
+
var __copyProps = (to, from, except, desc) => {
|
|
13
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
14
|
+
for (let key of __getOwnPropNames(from))
|
|
15
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
16
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
17
|
+
}
|
|
18
|
+
return to;
|
|
19
|
+
};
|
|
20
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
21
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
22
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
23
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
24
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
25
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
26
|
+
mod
|
|
27
|
+
));
|
|
28
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
29
|
+
|
|
30
|
+
// src/index.ts
|
|
31
|
+
var src_exports = {};
|
|
32
|
+
__export(src_exports, {
|
|
33
|
+
ContextMenu: () => ContextMenu,
|
|
34
|
+
ContextMenuContext: () => ContextMenuContext,
|
|
35
|
+
ContextMenuProvider: () => ContextMenuProvider,
|
|
36
|
+
Dialog: () => Dialog,
|
|
37
|
+
DialogService: () => DialogService,
|
|
38
|
+
MenuItem: () => MenuItem,
|
|
39
|
+
MenuItemGroup: () => MenuItemGroup,
|
|
40
|
+
MenuList: () => MenuList,
|
|
41
|
+
Popup: () => Popup,
|
|
42
|
+
PopupComponent: () => PopupComponent2,
|
|
43
|
+
PopupMenu: () => PopupMenu,
|
|
44
|
+
PopupService: () => PopupService,
|
|
45
|
+
Portal: () => Portal2,
|
|
46
|
+
PortalDeprecated: () => PortalDeprecated,
|
|
47
|
+
Prompt: () => Prompt,
|
|
48
|
+
Separator: () => Separator,
|
|
49
|
+
Tooltip: () => Tooltip,
|
|
50
|
+
createContainer: () => createContainer,
|
|
51
|
+
installTheme: () => installTheme,
|
|
52
|
+
isMenuItemLabel: () => isMenuItemLabel,
|
|
53
|
+
reasonIsClickAway: () => reasonIsClickAway,
|
|
54
|
+
reasonIsMenuAction: () => reasonIsMenuAction,
|
|
55
|
+
renderPortal: () => renderPortal,
|
|
56
|
+
useAnchoredPosition: () => useAnchoredPosition,
|
|
57
|
+
useContextMenu: () => useContextMenu,
|
|
58
|
+
useTooltip: () => useTooltip
|
|
59
|
+
});
|
|
60
|
+
module.exports = __toCommonJS(src_exports);
|
|
61
|
+
|
|
62
|
+
// src/dialog/Dialog.tsx
|
|
63
|
+
var import_lab = require("@salt-ds/lab");
|
|
64
|
+
var import_core = require("@salt-ds/core");
|
|
65
|
+
var import_classnames3 = __toESM(require("classnames"));
|
|
66
|
+
var import_react2 = require("react");
|
|
67
|
+
|
|
68
|
+
// src/portal-deprecated/PortalDeprecated.tsx
|
|
69
|
+
var import_react = require("react");
|
|
70
|
+
var ReactDOM2 = __toESM(require("react-dom"));
|
|
71
|
+
|
|
72
|
+
// src/portal-deprecated/render-portal.tsx
|
|
73
|
+
var ReactDOM = __toESM(require("react-dom"));
|
|
74
|
+
var import_classnames = __toESM(require("classnames"));
|
|
75
|
+
var containerId = 1;
|
|
76
|
+
var getPortalContainer = ({
|
|
77
|
+
className,
|
|
78
|
+
dataMode,
|
|
79
|
+
x = 0,
|
|
80
|
+
y = 0,
|
|
81
|
+
win = window
|
|
82
|
+
}) => {
|
|
83
|
+
const el = win.document.createElement("div");
|
|
84
|
+
el.className = (0, import_classnames.default)(`vuuPopup ${containerId++}`, className);
|
|
85
|
+
el.style.cssText = `left:${x}px; top:${y}px;`;
|
|
86
|
+
if (dataMode) {
|
|
87
|
+
el.dataset.mode = dataMode;
|
|
88
|
+
}
|
|
89
|
+
win.document.body.appendChild(el);
|
|
90
|
+
return el;
|
|
91
|
+
};
|
|
92
|
+
var createContainer = (props) => getPortalContainer(props);
|
|
93
|
+
var renderPortal = (component, container, x, y, onRender) => {
|
|
94
|
+
container.style.cssText = `left:${x}px; top:${y}px;position: absolute;`;
|
|
95
|
+
ReactDOM.render(component, container, onRender);
|
|
96
|
+
};
|
|
97
|
+
|
|
98
|
+
// src/portal-deprecated/PortalDeprecated.tsx
|
|
99
|
+
var import_vuu_shell = require("@vuu-ui/vuu-shell");
|
|
100
|
+
var import_classnames2 = __toESM(require("classnames"));
|
|
101
|
+
var PortalDeprecated = function Portal({
|
|
102
|
+
children,
|
|
103
|
+
x = 0,
|
|
104
|
+
y = 0,
|
|
105
|
+
onRender
|
|
106
|
+
}) {
|
|
107
|
+
const [themeClass, densityClass, dataMode] = (0, import_vuu_shell.useThemeAttributes)();
|
|
108
|
+
const renderContainer = (0, import_react.useMemo)(() => {
|
|
109
|
+
return createContainer({
|
|
110
|
+
className: (0, import_classnames2.default)(themeClass, densityClass),
|
|
111
|
+
dataMode
|
|
112
|
+
});
|
|
113
|
+
}, [dataMode, densityClass, themeClass]);
|
|
114
|
+
(0, import_react.useLayoutEffect)(() => {
|
|
115
|
+
renderPortal(children, renderContainer, x, y, onRender);
|
|
116
|
+
}, [children, onRender, renderContainer, x, y]);
|
|
117
|
+
(0, import_react.useLayoutEffect)(() => {
|
|
118
|
+
return () => {
|
|
119
|
+
var _a;
|
|
120
|
+
if (renderContainer) {
|
|
121
|
+
ReactDOM2.unmountComponentAtNode(renderContainer);
|
|
122
|
+
if (renderContainer.classList.contains("vuuPopup")) {
|
|
123
|
+
(_a = renderContainer.parentElement) == null ? void 0 : _a.removeChild(renderContainer);
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
};
|
|
127
|
+
}, [renderContainer]);
|
|
128
|
+
return null;
|
|
129
|
+
};
|
|
130
|
+
|
|
131
|
+
// src/portal-deprecated/portal-utils.ts
|
|
132
|
+
var installTheme = (themeId) => {
|
|
133
|
+
const installedThemes = getComputedStyle(document.body).getPropertyValue(
|
|
134
|
+
"--installed-themes"
|
|
135
|
+
);
|
|
136
|
+
document.body.style.setProperty(
|
|
137
|
+
"--installed-themes",
|
|
138
|
+
`${installedThemes} ${themeId}`
|
|
139
|
+
);
|
|
140
|
+
};
|
|
141
|
+
|
|
142
|
+
// src/dialog/Dialog.tsx
|
|
143
|
+
var import_jsx_runtime = require("react/jsx-runtime");
|
|
144
|
+
var classBase = "vuuDialog";
|
|
145
|
+
var Dialog = ({
|
|
146
|
+
children,
|
|
147
|
+
className,
|
|
148
|
+
isOpen = false,
|
|
149
|
+
onClose,
|
|
150
|
+
title,
|
|
151
|
+
hideCloseButton = false,
|
|
152
|
+
...props
|
|
153
|
+
}) => {
|
|
154
|
+
const root = (0, import_react2.useRef)(null);
|
|
155
|
+
const [posX] = (0, import_react2.useState)(0);
|
|
156
|
+
const [posY] = (0, import_react2.useState)(0);
|
|
157
|
+
const close = (0, import_react2.useCallback)(() => {
|
|
158
|
+
onClose == null ? void 0 : onClose();
|
|
159
|
+
}, [onClose]);
|
|
160
|
+
const handleRender = (0, import_react2.useCallback)(() => {
|
|
161
|
+
}, []);
|
|
162
|
+
if (!isOpen) {
|
|
163
|
+
return null;
|
|
164
|
+
}
|
|
165
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(PortalDeprecated, { onRender: handleRender, x: posX, y: posY, children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_lab.Scrim, { className: `${classBase}-scrim`, open: isOpen, autoFocusRef: root, children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { ...props, className: (0, import_classnames3.default)(classBase, className), ref: root, children: [
|
|
166
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: (0, import_classnames3.default)("vuuToolbarProxy", `${classBase}-header`), children: [
|
|
167
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_core.Text, { className: "dialogHeader", children: title }),
|
|
168
|
+
!hideCloseButton && /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
169
|
+
import_core.Button,
|
|
170
|
+
{
|
|
171
|
+
onClick: close,
|
|
172
|
+
"data-align": "end",
|
|
173
|
+
"data-icon": "close"
|
|
174
|
+
},
|
|
175
|
+
"close"
|
|
176
|
+
)
|
|
177
|
+
] }),
|
|
178
|
+
children
|
|
179
|
+
] }) }) });
|
|
180
|
+
};
|
|
181
|
+
|
|
182
|
+
// src/menu/ContextMenu.tsx
|
|
183
|
+
var import_react7 = require("react");
|
|
184
|
+
|
|
185
|
+
// src/menu/MenuList.tsx
|
|
186
|
+
var import_react5 = __toESM(require("react"));
|
|
187
|
+
var import_classnames4 = __toESM(require("classnames"));
|
|
188
|
+
var import_vuu_layout = require("@vuu-ui/vuu-layout");
|
|
189
|
+
|
|
190
|
+
// src/menu/use-keyboard-navigation.ts
|
|
191
|
+
var import_react3 = require("react");
|
|
192
|
+
|
|
193
|
+
// src/menu/utils.ts
|
|
194
|
+
var isRoot = (el) => el.closest(`[data-root='true']`) !== null;
|
|
195
|
+
var hasPopup = (el, idx) => {
|
|
196
|
+
var _a;
|
|
197
|
+
return el.ariaHasPopup === "true" && ((_a = el.dataset) == null ? void 0 : _a.idx) === `${idx}` || el.querySelector(`:scope > [data-idx='${idx}'][aria-haspopup='true']`) !== null;
|
|
198
|
+
};
|
|
199
|
+
|
|
200
|
+
// src/menu/key-code.ts
|
|
201
|
+
function union(set1, ...sets) {
|
|
202
|
+
const result = new Set(set1);
|
|
203
|
+
for (const set of sets) {
|
|
204
|
+
for (const element of set) {
|
|
205
|
+
result.add(element);
|
|
206
|
+
}
|
|
207
|
+
}
|
|
208
|
+
return result;
|
|
209
|
+
}
|
|
210
|
+
var Enter = "Enter";
|
|
211
|
+
var Delete = "Delete";
|
|
212
|
+
var actionKeys = /* @__PURE__ */ new Set([Enter, Delete]);
|
|
213
|
+
var focusKeys = /* @__PURE__ */ new Set(["Tab"]);
|
|
214
|
+
var arrowLeftRightKeys = /* @__PURE__ */ new Set(["ArrowRight", "ArrowLeft"]);
|
|
215
|
+
var verticalNavigationKeys = /* @__PURE__ */ new Set(["Home", "End", "ArrowDown", "ArrowUp"]);
|
|
216
|
+
var horizontalNavigationKeys = /* @__PURE__ */ new Set([
|
|
217
|
+
"Home",
|
|
218
|
+
"End",
|
|
219
|
+
"ArrowRight",
|
|
220
|
+
"ArrowLeft"
|
|
221
|
+
]);
|
|
222
|
+
var functionKeys = /* @__PURE__ */ new Set([
|
|
223
|
+
"F1",
|
|
224
|
+
"F2",
|
|
225
|
+
"F3",
|
|
226
|
+
"F4",
|
|
227
|
+
"F5",
|
|
228
|
+
"F6",
|
|
229
|
+
"F7",
|
|
230
|
+
"F8",
|
|
231
|
+
"F9",
|
|
232
|
+
"F10",
|
|
233
|
+
"F11",
|
|
234
|
+
"F12"
|
|
235
|
+
]);
|
|
236
|
+
var specialKeys = union(
|
|
237
|
+
actionKeys,
|
|
238
|
+
horizontalNavigationKeys,
|
|
239
|
+
verticalNavigationKeys,
|
|
240
|
+
arrowLeftRightKeys,
|
|
241
|
+
functionKeys,
|
|
242
|
+
focusKeys
|
|
243
|
+
);
|
|
244
|
+
var isNavigationKey = ({ key }, orientation = "vertical") => {
|
|
245
|
+
const navigationKeys = orientation === "vertical" ? verticalNavigationKeys : horizontalNavigationKeys;
|
|
246
|
+
return navigationKeys.has(key);
|
|
247
|
+
};
|
|
248
|
+
|
|
249
|
+
// src/menu/use-keyboard-navigation.ts
|
|
250
|
+
var import_vuu_utils = require("@vuu-ui/vuu-utils");
|
|
251
|
+
var useKeyboardNavigation = ({
|
|
252
|
+
autoHighlightFirstItem = false,
|
|
253
|
+
count,
|
|
254
|
+
defaultHighlightedIdx,
|
|
255
|
+
highlightedIndex: highlightedIndexProp,
|
|
256
|
+
onActivate,
|
|
257
|
+
onHighlight,
|
|
258
|
+
// onKeyDown,
|
|
259
|
+
onCloseMenu,
|
|
260
|
+
onOpenMenu
|
|
261
|
+
}) => {
|
|
262
|
+
var _a;
|
|
263
|
+
if ((0, import_vuu_utils.isValidNumber)(highlightedIndexProp) && (0, import_vuu_utils.isValidNumber)(defaultHighlightedIdx)) {
|
|
264
|
+
throw Error(
|
|
265
|
+
"useKeyboardNavigation do not pass values for both highlightedIndex and defaultHighlightedIdx"
|
|
266
|
+
);
|
|
267
|
+
}
|
|
268
|
+
const controlledHighlighting = (0, import_vuu_utils.isValidNumber)(highlightedIndexProp);
|
|
269
|
+
const highlightedIndexRef = (0, import_react3.useRef)(
|
|
270
|
+
(_a = defaultHighlightedIdx != null ? defaultHighlightedIdx : highlightedIndexProp) != null ? _a : autoHighlightFirstItem ? 0 : -1
|
|
271
|
+
);
|
|
272
|
+
const [, forceRender] = (0, import_react3.useState)(null);
|
|
273
|
+
const setHighlightedIdx = (0, import_react3.useCallback)(
|
|
274
|
+
(idx) => {
|
|
275
|
+
highlightedIndexRef.current = idx;
|
|
276
|
+
onHighlight == null ? void 0 : onHighlight(idx);
|
|
277
|
+
forceRender({});
|
|
278
|
+
},
|
|
279
|
+
[onHighlight]
|
|
280
|
+
);
|
|
281
|
+
const setHighlightedIndex = (0, import_react3.useCallback)(
|
|
282
|
+
(idx) => {
|
|
283
|
+
if (idx !== highlightedIndexRef.current) {
|
|
284
|
+
if (!controlledHighlighting) {
|
|
285
|
+
setHighlightedIdx(idx);
|
|
286
|
+
}
|
|
287
|
+
}
|
|
288
|
+
},
|
|
289
|
+
[controlledHighlighting, setHighlightedIdx]
|
|
290
|
+
);
|
|
291
|
+
const keyBoardNavigation = (0, import_react3.useRef)(true);
|
|
292
|
+
const ignoreFocus = (0, import_react3.useRef)(false);
|
|
293
|
+
const setIgnoreFocus = (value) => ignoreFocus.current = value;
|
|
294
|
+
const highlightedIndex = controlledHighlighting ? highlightedIndexProp : highlightedIndexRef.current;
|
|
295
|
+
const navigateChildldItems = (0, import_react3.useCallback)(
|
|
296
|
+
(e) => {
|
|
297
|
+
const nextIdx = nextItemIdx(count, e.key, highlightedIndexRef.current);
|
|
298
|
+
if (nextIdx !== highlightedIndexRef.current) {
|
|
299
|
+
setHighlightedIndex(nextIdx);
|
|
300
|
+
}
|
|
301
|
+
},
|
|
302
|
+
[count, setHighlightedIndex]
|
|
303
|
+
);
|
|
304
|
+
const handleKeyDown = (0, import_react3.useCallback)(
|
|
305
|
+
(e) => {
|
|
306
|
+
if (isNavigationKey(e)) {
|
|
307
|
+
e.preventDefault();
|
|
308
|
+
e.stopPropagation();
|
|
309
|
+
keyBoardNavigation.current = true;
|
|
310
|
+
navigateChildldItems(e);
|
|
311
|
+
} else if ((e.key === "ArrowRight" || e.key === "Enter") && hasPopup(e.target, highlightedIndex)) {
|
|
312
|
+
const menuEl = e.target;
|
|
313
|
+
const menuItemEl = menuEl.querySelector(
|
|
314
|
+
`:scope > [data-idx='${highlightedIndex}']`
|
|
315
|
+
);
|
|
316
|
+
if (menuItemEl) {
|
|
317
|
+
onOpenMenu == null ? void 0 : onOpenMenu(menuItemEl);
|
|
318
|
+
}
|
|
319
|
+
} else if (e.key === "ArrowLeft" && !isRoot(e.target)) {
|
|
320
|
+
onCloseMenu(highlightedIndex);
|
|
321
|
+
} else if (e.key === "Enter") {
|
|
322
|
+
e.preventDefault();
|
|
323
|
+
e.stopPropagation();
|
|
324
|
+
onActivate && onActivate(highlightedIndex);
|
|
325
|
+
} else if (e.key === "Tab") {
|
|
326
|
+
onCloseMenu(-1);
|
|
327
|
+
}
|
|
328
|
+
},
|
|
329
|
+
[
|
|
330
|
+
highlightedIndex,
|
|
331
|
+
navigateChildldItems,
|
|
332
|
+
onActivate,
|
|
333
|
+
onCloseMenu,
|
|
334
|
+
onOpenMenu
|
|
335
|
+
]
|
|
336
|
+
);
|
|
337
|
+
const listProps = (0, import_react3.useMemo)(
|
|
338
|
+
() => ({
|
|
339
|
+
onFocus: () => {
|
|
340
|
+
if (highlightedIndex === -1) {
|
|
341
|
+
setHighlightedIdx(0);
|
|
342
|
+
}
|
|
343
|
+
},
|
|
344
|
+
onKeyDown: handleKeyDown,
|
|
345
|
+
onMouseDownCapture: () => {
|
|
346
|
+
keyBoardNavigation.current = false;
|
|
347
|
+
setIgnoreFocus(true);
|
|
348
|
+
},
|
|
349
|
+
// onMouseEnter would seem less expensive but it misses some cases
|
|
350
|
+
onMouseMove: () => {
|
|
351
|
+
if (keyBoardNavigation.current) {
|
|
352
|
+
keyBoardNavigation.current = false;
|
|
353
|
+
}
|
|
354
|
+
},
|
|
355
|
+
onMouseLeave: () => {
|
|
356
|
+
keyBoardNavigation.current = true;
|
|
357
|
+
setIgnoreFocus(false);
|
|
358
|
+
setHighlightedIndex(-1);
|
|
359
|
+
}
|
|
360
|
+
}),
|
|
361
|
+
[handleKeyDown, highlightedIndex, setHighlightedIdx, setHighlightedIndex]
|
|
362
|
+
);
|
|
363
|
+
return {
|
|
364
|
+
focusVisible: keyBoardNavigation.current ? highlightedIndex : -1,
|
|
365
|
+
controlledHighlighting,
|
|
366
|
+
highlightedIndex,
|
|
367
|
+
setHighlightedIndex,
|
|
368
|
+
// keyBoardNavigation,
|
|
369
|
+
listProps,
|
|
370
|
+
setIgnoreFocus
|
|
371
|
+
};
|
|
372
|
+
};
|
|
373
|
+
function nextItemIdx(count, key, idx) {
|
|
374
|
+
if (key === "ArrowUp") {
|
|
375
|
+
if (idx > 0) {
|
|
376
|
+
return idx - 1;
|
|
377
|
+
} else {
|
|
378
|
+
return idx;
|
|
379
|
+
}
|
|
380
|
+
} else {
|
|
381
|
+
if (idx === null) {
|
|
382
|
+
return 0;
|
|
383
|
+
} else if (idx === count - 1) {
|
|
384
|
+
return idx;
|
|
385
|
+
} else {
|
|
386
|
+
return idx + 1;
|
|
387
|
+
}
|
|
388
|
+
}
|
|
389
|
+
}
|
|
390
|
+
|
|
391
|
+
// src/menu/use-items-with-ids-next.ts
|
|
392
|
+
var import_react4 = __toESM(require("react"));
|
|
393
|
+
var isMenuItemGroup = (child) => child.type === MenuItemGroup || !!child.props["data-group"];
|
|
394
|
+
var getLabelFromChildren = (children) => {
|
|
395
|
+
if (Array.isArray(children) && isMenuItemLabel(children[0])) {
|
|
396
|
+
return children[0];
|
|
397
|
+
}
|
|
398
|
+
};
|
|
399
|
+
var assignId = (child, path, group, hasSeparator = false) => {
|
|
400
|
+
const {
|
|
401
|
+
props: { children }
|
|
402
|
+
} = child;
|
|
403
|
+
return {
|
|
404
|
+
childWithId: import_react4.default.cloneElement(child, {
|
|
405
|
+
hasSeparator,
|
|
406
|
+
id: `${path}`,
|
|
407
|
+
key: path,
|
|
408
|
+
children: group ? getLabelFromChildren(children) : children
|
|
409
|
+
}),
|
|
410
|
+
grandChildren: group ? children : void 0
|
|
411
|
+
};
|
|
412
|
+
};
|
|
413
|
+
var useItemsWithIdsNext = (childrenProp, rootId) => {
|
|
414
|
+
const normalizeChildren = (0, import_react4.useCallback)(() => {
|
|
415
|
+
const collectChildren = (children, path = rootId, menus2 = {}, actions2 = {}) => {
|
|
416
|
+
const list = menus2[path] = [];
|
|
417
|
+
let idx = 0;
|
|
418
|
+
let hasSeparator = false;
|
|
419
|
+
import_react4.default.Children.forEach(children, (child) => {
|
|
420
|
+
if (isMenuItemLabel(child)) {
|
|
421
|
+
} else if (child.type === Separator) {
|
|
422
|
+
hasSeparator = true;
|
|
423
|
+
} else {
|
|
424
|
+
const hasChildItems = isMenuItemGroup(child);
|
|
425
|
+
const childPath = `${path}-${idx}`;
|
|
426
|
+
const {
|
|
427
|
+
props: { action, options }
|
|
428
|
+
} = child;
|
|
429
|
+
const { childWithId, grandChildren } = assignId(
|
|
430
|
+
child,
|
|
431
|
+
childPath,
|
|
432
|
+
hasChildItems,
|
|
433
|
+
hasSeparator
|
|
434
|
+
);
|
|
435
|
+
list.push(childWithId);
|
|
436
|
+
if (grandChildren) {
|
|
437
|
+
collectChildren(grandChildren, childPath, menus2, actions2);
|
|
438
|
+
} else {
|
|
439
|
+
actions2[childPath] = { action, options };
|
|
440
|
+
}
|
|
441
|
+
idx += 1;
|
|
442
|
+
hasSeparator = false;
|
|
443
|
+
}
|
|
444
|
+
});
|
|
445
|
+
return [menus2, actions2];
|
|
446
|
+
};
|
|
447
|
+
return collectChildren(childrenProp);
|
|
448
|
+
}, [rootId, childrenProp]);
|
|
449
|
+
const [menus, actions] = (0, import_react4.useMemo)(
|
|
450
|
+
() => normalizeChildren(),
|
|
451
|
+
[normalizeChildren]
|
|
452
|
+
);
|
|
453
|
+
return [menus, actions];
|
|
454
|
+
};
|
|
455
|
+
|
|
456
|
+
// src/menu/MenuList.tsx
|
|
457
|
+
var import_jsx_runtime2 = require("react/jsx-runtime");
|
|
458
|
+
var classBase2 = "vuuMenuList";
|
|
459
|
+
var Separator = () => /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("li", { className: "vuuMenuItem-divider" });
|
|
460
|
+
var MenuItemGroup = () => null;
|
|
461
|
+
var MenuItem = ({ children, idx, ...props }) => {
|
|
462
|
+
return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("div", { ...props, children });
|
|
463
|
+
};
|
|
464
|
+
var MenuItemLabel = ({ children }) => /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(import_jsx_runtime2.Fragment, { children });
|
|
465
|
+
MenuItemLabel.displayName = "MenuItemLabel";
|
|
466
|
+
MenuItem.Label = MenuItemLabel;
|
|
467
|
+
var getDisplayName = (item) => import_react5.default.isValidElement(item) && typeof item.type !== "string" && "displayName" in item.type ? item.type.displayName : void 0;
|
|
468
|
+
var isMenuItemLabel = (item) => getDisplayName(item) === "MenuItemLabel";
|
|
469
|
+
var hasIcon = (child) => child.props["data-icon"];
|
|
470
|
+
var MenuList = ({
|
|
471
|
+
activatedByKeyboard,
|
|
472
|
+
childMenuShowing,
|
|
473
|
+
children,
|
|
474
|
+
className,
|
|
475
|
+
defaultHighlightedIdx,
|
|
476
|
+
highlightedIdx: highlightedIdxProp,
|
|
477
|
+
id: idProp,
|
|
478
|
+
isRoot: isRoot2,
|
|
479
|
+
listItemProps,
|
|
480
|
+
onHighlightMenuItem,
|
|
481
|
+
onActivate,
|
|
482
|
+
onCloseMenu,
|
|
483
|
+
onOpenMenu,
|
|
484
|
+
...props
|
|
485
|
+
}) => {
|
|
486
|
+
const id = (0, import_vuu_layout.useId)(idProp);
|
|
487
|
+
const root = (0, import_react5.useRef)(null);
|
|
488
|
+
const mapIdxToId = (0, import_react5.useMemo)(() => /* @__PURE__ */ new Map(), []);
|
|
489
|
+
const handleActivate = (idx) => {
|
|
490
|
+
var _a;
|
|
491
|
+
const el = (_a = root.current) == null ? void 0 : _a.querySelector(`:scope > [data-idx='${idx}']`);
|
|
492
|
+
(el == null ? void 0 : el.id) && (onActivate == null ? void 0 : onActivate(el.id));
|
|
493
|
+
};
|
|
494
|
+
const { focusVisible, highlightedIndex, listProps } = useKeyboardNavigation({
|
|
495
|
+
count: import_react5.default.Children.count(children),
|
|
496
|
+
defaultHighlightedIdx,
|
|
497
|
+
highlightedIndex: highlightedIdxProp,
|
|
498
|
+
onActivate: handleActivate,
|
|
499
|
+
onHighlight: onHighlightMenuItem,
|
|
500
|
+
onOpenMenu,
|
|
501
|
+
onCloseMenu
|
|
502
|
+
});
|
|
503
|
+
const appliedFocusVisible = childMenuShowing == void 0 ? focusVisible : -1;
|
|
504
|
+
(0, import_react5.useLayoutEffect)(() => {
|
|
505
|
+
var _a;
|
|
506
|
+
if (childMenuShowing === void 0 && activatedByKeyboard) {
|
|
507
|
+
(_a = root.current) == null ? void 0 : _a.focus();
|
|
508
|
+
}
|
|
509
|
+
}, [activatedByKeyboard, childMenuShowing]);
|
|
510
|
+
const getActiveDescendant = () => highlightedIndex === void 0 || highlightedIndex === -1 ? void 0 : mapIdxToId.get(highlightedIndex);
|
|
511
|
+
function renderContent() {
|
|
512
|
+
const propsCommonToAllListItems = {
|
|
513
|
+
...listItemProps,
|
|
514
|
+
role: "menuitem"
|
|
515
|
+
};
|
|
516
|
+
const maybeIcon = (childElement, withIcon, iconName) => withIcon ? [
|
|
517
|
+
/* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
|
|
518
|
+
"span",
|
|
519
|
+
{
|
|
520
|
+
className: "vuuIconContainer",
|
|
521
|
+
"data-icon": iconName
|
|
522
|
+
},
|
|
523
|
+
"icon"
|
|
524
|
+
)
|
|
525
|
+
].concat(childElement) : childElement;
|
|
526
|
+
function addClonedChild(list, child, idx, withIcon) {
|
|
527
|
+
var _a;
|
|
528
|
+
const {
|
|
529
|
+
children: children2,
|
|
530
|
+
className: className2,
|
|
531
|
+
"data-icon": iconName,
|
|
532
|
+
id: itemId,
|
|
533
|
+
hasSeparator,
|
|
534
|
+
label,
|
|
535
|
+
...props2
|
|
536
|
+
} = child.props;
|
|
537
|
+
const hasSubMenu = isMenuItemGroup(child);
|
|
538
|
+
const subMenuShowing = hasSubMenu && childMenuShowing === itemId;
|
|
539
|
+
const ariaControls = subMenuShowing ? `${id}-${itemId}` : void 0;
|
|
540
|
+
list.push(
|
|
541
|
+
/* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
|
|
542
|
+
MenuItem,
|
|
543
|
+
{
|
|
544
|
+
...props2,
|
|
545
|
+
...propsCommonToAllListItems,
|
|
546
|
+
...getMenuItemProps(
|
|
547
|
+
itemId,
|
|
548
|
+
idx,
|
|
549
|
+
(_a = child.key) != null ? _a : itemId,
|
|
550
|
+
highlightedIndex,
|
|
551
|
+
appliedFocusVisible,
|
|
552
|
+
className2,
|
|
553
|
+
hasSeparator
|
|
554
|
+
),
|
|
555
|
+
"aria-controls": ariaControls,
|
|
556
|
+
"aria-haspopup": hasSubMenu || void 0,
|
|
557
|
+
"aria-expanded": subMenuShowing || void 0,
|
|
558
|
+
children: hasSubMenu ? maybeIcon(label != null ? label : children2, withIcon, iconName) : maybeIcon(children2, withIcon, iconName)
|
|
559
|
+
}
|
|
560
|
+
)
|
|
561
|
+
);
|
|
562
|
+
}
|
|
563
|
+
const listItems = [];
|
|
564
|
+
if (children.length > 0) {
|
|
565
|
+
const withIcon = children.some(hasIcon);
|
|
566
|
+
children.forEach((child, idx) => {
|
|
567
|
+
addClonedChild(listItems, child, idx, withIcon);
|
|
568
|
+
});
|
|
569
|
+
}
|
|
570
|
+
return listItems;
|
|
571
|
+
}
|
|
572
|
+
return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
|
|
573
|
+
"div",
|
|
574
|
+
{
|
|
575
|
+
...props,
|
|
576
|
+
...listProps,
|
|
577
|
+
"aria-activedescendant": getActiveDescendant(),
|
|
578
|
+
className: (0, import_classnames4.default)(classBase2, className, {
|
|
579
|
+
[`${classBase2}-childMenuShowing`]: childMenuShowing !== void 0
|
|
580
|
+
}),
|
|
581
|
+
"data-root": isRoot2 || void 0,
|
|
582
|
+
id,
|
|
583
|
+
ref: root,
|
|
584
|
+
role: "menu",
|
|
585
|
+
children: renderContent()
|
|
586
|
+
}
|
|
587
|
+
);
|
|
588
|
+
};
|
|
589
|
+
var getMenuItemProps = (itemId, idx, key, highlightedIdx, focusVisible, className, hasSeparator) => ({
|
|
590
|
+
id: `menuitem-${itemId}`,
|
|
591
|
+
key: key != null ? key : idx,
|
|
592
|
+
"data-idx": idx,
|
|
593
|
+
"data-highlighted": idx === highlightedIdx || void 0,
|
|
594
|
+
className: (0, import_classnames4.default)("vuuMenuItem", className, {
|
|
595
|
+
"vuuMenuItem-separator": hasSeparator,
|
|
596
|
+
focusVisible: focusVisible === idx
|
|
597
|
+
})
|
|
598
|
+
});
|
|
599
|
+
MenuList.displayName = "MenuList";
|
|
600
|
+
|
|
601
|
+
// src/menu/use-cascade.ts
|
|
602
|
+
var import_react6 = require("react");
|
|
603
|
+
|
|
604
|
+
// src/menu/list-dom-utils.ts
|
|
605
|
+
var closestListItem = (el) => el == null ? void 0 : el.closest("[data-idx],[aria-posinset]");
|
|
606
|
+
|
|
607
|
+
// src/menu/use-cascade.ts
|
|
608
|
+
var nudge = (menus, distance, pos) => {
|
|
609
|
+
return menus.map(
|
|
610
|
+
(m, i) => i === menus.length - 1 ? {
|
|
611
|
+
...m,
|
|
612
|
+
[pos]: m[pos] - distance
|
|
613
|
+
} : m
|
|
614
|
+
);
|
|
615
|
+
};
|
|
616
|
+
var nudgeLeft = (menus, distance) => nudge(menus, distance, "left");
|
|
617
|
+
var nudgeUp = (menus, distance) => nudge(menus, distance, "top");
|
|
618
|
+
var flipSides = (id, menus) => {
|
|
619
|
+
const [parentMenu, menu] = menus.slice(-2);
|
|
620
|
+
const el = document.getElementById(`${id}-${menu.id}`);
|
|
621
|
+
if (el === null) {
|
|
622
|
+
throw Error(`useCascade.flipSides element with id ${menu.id} not found`);
|
|
623
|
+
}
|
|
624
|
+
const { width } = el.getBoundingClientRect();
|
|
625
|
+
return menus.map(
|
|
626
|
+
(m) => m === menu ? {
|
|
627
|
+
...m,
|
|
628
|
+
left: parentMenu.left - (width - 2)
|
|
629
|
+
} : m
|
|
630
|
+
);
|
|
631
|
+
};
|
|
632
|
+
var getPosition = (el, openMenus) => {
|
|
633
|
+
const [{ left, top: menuTop }] = openMenus.slice(-1);
|
|
634
|
+
const { offsetWidth: width, offsetTop: top } = el;
|
|
635
|
+
return { left: left + width, top: top + menuTop };
|
|
636
|
+
};
|
|
637
|
+
var getHostMenuId = (id, rootId) => {
|
|
638
|
+
const pos = id.lastIndexOf("-");
|
|
639
|
+
return pos > -1 ? id.slice(9, pos) : rootId;
|
|
640
|
+
};
|
|
641
|
+
var getTargetMenuId = (id) => id.slice(9);
|
|
642
|
+
var getMenuItemDetails = ({ ariaExpanded, ariaHasPopup, id }, rootId) => {
|
|
643
|
+
if (id.startsWith("menuitem")) {
|
|
644
|
+
return {
|
|
645
|
+
hostMenuId: getHostMenuId(id, rootId),
|
|
646
|
+
targetMenuId: getTargetMenuId(id),
|
|
647
|
+
menuItemId: id,
|
|
648
|
+
isGroup: ariaHasPopup === "true",
|
|
649
|
+
isOpen: ariaExpanded === "true"
|
|
650
|
+
};
|
|
651
|
+
} else {
|
|
652
|
+
throw Error(`getMenuItemDetails #${id} is not a menuitem`);
|
|
653
|
+
}
|
|
654
|
+
};
|
|
655
|
+
var useCascade = ({
|
|
656
|
+
id: rootId,
|
|
657
|
+
onActivate,
|
|
658
|
+
onMouseEnterItem,
|
|
659
|
+
position: { x: posX, y: posY }
|
|
660
|
+
}) => {
|
|
661
|
+
const [, forceRefresh] = (0, import_react6.useState)({});
|
|
662
|
+
const openMenus = (0, import_react6.useRef)([
|
|
663
|
+
{ id: rootId, left: posX, top: posY }
|
|
664
|
+
]);
|
|
665
|
+
const menuIsOpen = (0, import_react6.useCallback)(
|
|
666
|
+
(menuId) => openMenus.current.findIndex((menu) => menu.id === menuId) !== -1,
|
|
667
|
+
[]
|
|
668
|
+
);
|
|
669
|
+
const getOpenMenuStatus = (0, import_react6.useCallback)((menuId) => {
|
|
670
|
+
const state = menuState.current[menuId];
|
|
671
|
+
if (state === void 0) {
|
|
672
|
+
throw Error(`getOpenMenuState no entry for menu ${menuId}`);
|
|
673
|
+
}
|
|
674
|
+
return state;
|
|
675
|
+
}, []);
|
|
676
|
+
const setOpenMenus = (0, import_react6.useCallback)((menus) => {
|
|
677
|
+
openMenus.current = menus;
|
|
678
|
+
forceRefresh({});
|
|
679
|
+
}, []);
|
|
680
|
+
const menuOpenPendingTimeout = (0, import_react6.useRef)();
|
|
681
|
+
const menuClosePendingTimeout = (0, import_react6.useRef)();
|
|
682
|
+
const menuState = (0, import_react6.useRef)({ [rootId]: "no-popup" });
|
|
683
|
+
const openMenu = (0, import_react6.useCallback)(
|
|
684
|
+
(hostMenuId = rootId, targetMenuId, itemId = null) => {
|
|
685
|
+
if (hostMenuId === rootId && itemId === null) {
|
|
686
|
+
setOpenMenus([{ id: rootId, left: posX, top: posY }]);
|
|
687
|
+
} else {
|
|
688
|
+
menuState.current[hostMenuId] = "popup-open";
|
|
689
|
+
const el = document.getElementById(itemId);
|
|
690
|
+
if (el !== null) {
|
|
691
|
+
const { left, top } = getPosition(el, openMenus.current);
|
|
692
|
+
setOpenMenus(
|
|
693
|
+
openMenus.current.concat({ id: targetMenuId, left, top })
|
|
694
|
+
);
|
|
695
|
+
} else {
|
|
696
|
+
throw Error(`openMenu no menuItem ${itemId}`);
|
|
697
|
+
}
|
|
698
|
+
}
|
|
699
|
+
},
|
|
700
|
+
[rootId, posX, posY, setOpenMenus]
|
|
701
|
+
);
|
|
702
|
+
const closeMenu = (0, import_react6.useCallback)(
|
|
703
|
+
(menuId) => {
|
|
704
|
+
if (menuId === rootId) {
|
|
705
|
+
setOpenMenus([]);
|
|
706
|
+
} else {
|
|
707
|
+
const menus = openMenus.current.slice();
|
|
708
|
+
const lastMenu = menus.pop();
|
|
709
|
+
menuState.current[lastMenu.id] = "no-popup";
|
|
710
|
+
const parentMenu = menus.at(-1);
|
|
711
|
+
if (parentMenu) {
|
|
712
|
+
menuState.current[parentMenu.id] = "no-popup";
|
|
713
|
+
}
|
|
714
|
+
setOpenMenus(menus);
|
|
715
|
+
}
|
|
716
|
+
},
|
|
717
|
+
[rootId, setOpenMenus]
|
|
718
|
+
);
|
|
719
|
+
const closeMenus = (0, import_react6.useCallback)(
|
|
720
|
+
(menuItemId) => {
|
|
721
|
+
const menus = openMenus.current.slice();
|
|
722
|
+
const menuItemMenuId = menuItemId.slice(9);
|
|
723
|
+
let { id: lastMenuId } = menus.at(-1);
|
|
724
|
+
while (menus.length > 1 && !menuItemMenuId.startsWith(lastMenuId)) {
|
|
725
|
+
const parentMenuId = getHostMenuId(lastMenuId, rootId);
|
|
726
|
+
menus.pop();
|
|
727
|
+
menuState.current[lastMenuId] = "no-popup";
|
|
728
|
+
menuState.current[parentMenuId] = "no-popup";
|
|
729
|
+
({ id: lastMenuId } = menus[menus.length - 1]);
|
|
730
|
+
}
|
|
731
|
+
if (menus.length < openMenus.current.length) {
|
|
732
|
+
setOpenMenus(menus);
|
|
733
|
+
}
|
|
734
|
+
},
|
|
735
|
+
[rootId, setOpenMenus]
|
|
736
|
+
);
|
|
737
|
+
const clearAnyScheduledOpenTasks = (0, import_react6.useCallback)(() => {
|
|
738
|
+
if (menuOpenPendingTimeout.current) {
|
|
739
|
+
clearTimeout(menuOpenPendingTimeout.current);
|
|
740
|
+
menuOpenPendingTimeout.current = void 0;
|
|
741
|
+
}
|
|
742
|
+
}, []);
|
|
743
|
+
const scheduleOpen = (0, import_react6.useCallback)(
|
|
744
|
+
(hostMenuId, targetMenuId, menuItemId) => {
|
|
745
|
+
clearAnyScheduledOpenTasks();
|
|
746
|
+
menuOpenPendingTimeout.current = window.setTimeout(() => {
|
|
747
|
+
closeMenus(menuItemId);
|
|
748
|
+
menuState.current[hostMenuId] = "popup-open";
|
|
749
|
+
menuState.current[targetMenuId] = "no-popup";
|
|
750
|
+
openMenu(hostMenuId, targetMenuId, menuItemId);
|
|
751
|
+
}, 400);
|
|
752
|
+
},
|
|
753
|
+
[clearAnyScheduledOpenTasks, closeMenus, openMenu]
|
|
754
|
+
);
|
|
755
|
+
const scheduleClose = (0, import_react6.useCallback)(
|
|
756
|
+
(hostMenuId, openMenuId, itemId) => {
|
|
757
|
+
menuState.current[openMenuId] = "pending-close";
|
|
758
|
+
menuClosePendingTimeout.current = window.setTimeout(() => {
|
|
759
|
+
closeMenus(itemId);
|
|
760
|
+
}, 400);
|
|
761
|
+
},
|
|
762
|
+
[closeMenus]
|
|
763
|
+
);
|
|
764
|
+
const handleRender = (0, import_react6.useCallback)(() => {
|
|
765
|
+
const { current: menus } = openMenus;
|
|
766
|
+
const [menu] = menus.slice(-1);
|
|
767
|
+
const el = document.getElementById(menu.id);
|
|
768
|
+
if (el) {
|
|
769
|
+
const { right, bottom } = el.getBoundingClientRect();
|
|
770
|
+
const { clientHeight, clientWidth } = document.body;
|
|
771
|
+
if (right > clientWidth) {
|
|
772
|
+
const newMenus = menus.length > 1 ? flipSides(rootId, menus) : nudgeLeft(menus, right - clientWidth);
|
|
773
|
+
setOpenMenus(newMenus);
|
|
774
|
+
} else if (bottom > clientHeight) {
|
|
775
|
+
const newMenus = nudgeUp(menus, bottom - clientHeight);
|
|
776
|
+
setOpenMenus(newMenus);
|
|
777
|
+
}
|
|
778
|
+
if (typeof el.tabIndex === "number") {
|
|
779
|
+
el.focus();
|
|
780
|
+
}
|
|
781
|
+
} else {
|
|
782
|
+
console.log(`no element found with if ${menu.id}`);
|
|
783
|
+
}
|
|
784
|
+
}, [rootId, setOpenMenus]);
|
|
785
|
+
const triggerChildMenu = (0, import_react6.useCallback)(
|
|
786
|
+
(menuItemEl) => {
|
|
787
|
+
const { hostMenuId, targetMenuId, menuItemId, isGroup, isOpen } = getMenuItemDetails(menuItemEl, rootId);
|
|
788
|
+
const {
|
|
789
|
+
current: { [hostMenuId]: state }
|
|
790
|
+
} = menuState;
|
|
791
|
+
if (state === "no-popup" && isGroup) {
|
|
792
|
+
menuState.current[hostMenuId] = "popup-pending";
|
|
793
|
+
scheduleOpen(hostMenuId, targetMenuId, menuItemId);
|
|
794
|
+
} else if (state === "popup-pending" && !isGroup) {
|
|
795
|
+
menuState.current[hostMenuId] = "no-popup";
|
|
796
|
+
clearTimeout(menuOpenPendingTimeout.current);
|
|
797
|
+
menuOpenPendingTimeout.current = void 0;
|
|
798
|
+
} else if (state === "popup-pending" && isGroup) {
|
|
799
|
+
clearTimeout(menuOpenPendingTimeout.current);
|
|
800
|
+
scheduleOpen(hostMenuId, targetMenuId, menuItemId);
|
|
801
|
+
} else if (state === "popup-open") {
|
|
802
|
+
if (menuIsOpen(targetMenuId)) {
|
|
803
|
+
const menuStatus = getOpenMenuStatus(targetMenuId);
|
|
804
|
+
closeMenus(menuItemId);
|
|
805
|
+
switch (menuStatus) {
|
|
806
|
+
case "pending-close":
|
|
807
|
+
clearTimeout(menuClosePendingTimeout.current);
|
|
808
|
+
menuClosePendingTimeout.current = void 0;
|
|
809
|
+
menuState.current[targetMenuId] = "no-popup";
|
|
810
|
+
clearAnyScheduledOpenTasks();
|
|
811
|
+
break;
|
|
812
|
+
default:
|
|
813
|
+
}
|
|
814
|
+
} else {
|
|
815
|
+
const [parentOfLastOpenedMenu, lastOpenedMenu] = openMenus.current.slice(-2);
|
|
816
|
+
if (parentOfLastOpenedMenu.id === hostMenuId && menuState.current[lastOpenedMenu.id] !== "pending-close") {
|
|
817
|
+
scheduleClose(hostMenuId, lastOpenedMenu.id, menuItemId);
|
|
818
|
+
if (isGroup && !isOpen) {
|
|
819
|
+
scheduleOpen(hostMenuId, targetMenuId, menuItemId);
|
|
820
|
+
}
|
|
821
|
+
} else if (parentOfLastOpenedMenu.id === hostMenuId && isGroup && menuItemId !== lastOpenedMenu.id && menuState.current[lastOpenedMenu.id] === "pending-close") {
|
|
822
|
+
scheduleOpen(hostMenuId, targetMenuId, menuItemId);
|
|
823
|
+
} else if (isGroup) {
|
|
824
|
+
scheduleOpen(hostMenuId, targetMenuId, menuItemId);
|
|
825
|
+
} else if (!(menuState.current[lastOpenedMenu.id] === "pending-close")) {
|
|
826
|
+
closeMenus(menuItemId);
|
|
827
|
+
}
|
|
828
|
+
}
|
|
829
|
+
}
|
|
830
|
+
if (state === "pending-close") {
|
|
831
|
+
clearAnyScheduledOpenTasks();
|
|
832
|
+
clearTimeout(menuClosePendingTimeout.current);
|
|
833
|
+
menuClosePendingTimeout.current = void 0;
|
|
834
|
+
menuState.current[hostMenuId] = "popup-open";
|
|
835
|
+
}
|
|
836
|
+
},
|
|
837
|
+
[
|
|
838
|
+
clearAnyScheduledOpenTasks,
|
|
839
|
+
closeMenus,
|
|
840
|
+
getOpenMenuStatus,
|
|
841
|
+
menuIsOpen,
|
|
842
|
+
rootId,
|
|
843
|
+
scheduleClose,
|
|
844
|
+
scheduleOpen
|
|
845
|
+
]
|
|
846
|
+
);
|
|
847
|
+
const listItemProps = (0, import_react6.useMemo)(
|
|
848
|
+
() => ({
|
|
849
|
+
onMouseEnter: (evt) => {
|
|
850
|
+
const menuItemEl = closestListItem(evt.target);
|
|
851
|
+
triggerChildMenu(menuItemEl);
|
|
852
|
+
onMouseEnterItem(evt, menuItemEl.id);
|
|
853
|
+
},
|
|
854
|
+
onClick: (evt) => {
|
|
855
|
+
const listItemEl = closestListItem(evt.target);
|
|
856
|
+
const { isGroup, menuItemId } = getMenuItemDetails(listItemEl, rootId);
|
|
857
|
+
if (isGroup) {
|
|
858
|
+
triggerChildMenu(listItemEl);
|
|
859
|
+
} else {
|
|
860
|
+
onActivate(menuItemId);
|
|
861
|
+
}
|
|
862
|
+
}
|
|
863
|
+
}),
|
|
864
|
+
[onActivate, onMouseEnterItem, rootId, triggerChildMenu]
|
|
865
|
+
);
|
|
866
|
+
return {
|
|
867
|
+
closeMenu,
|
|
868
|
+
handleRender,
|
|
869
|
+
listItemProps,
|
|
870
|
+
openMenu: triggerChildMenu,
|
|
871
|
+
openMenus: openMenus.current
|
|
872
|
+
};
|
|
873
|
+
};
|
|
874
|
+
|
|
875
|
+
// src/menu/ContextMenu.tsx
|
|
876
|
+
var import_vuu_layout2 = require("@vuu-ui/vuu-layout");
|
|
877
|
+
var import_jsx_runtime3 = require("react/jsx-runtime");
|
|
878
|
+
var import_react8 = require("react");
|
|
879
|
+
var noop = () => void 0;
|
|
880
|
+
var ContextMenu = ({
|
|
881
|
+
activatedByKeyboard,
|
|
882
|
+
children: childrenProp,
|
|
883
|
+
className,
|
|
884
|
+
id: idProp,
|
|
885
|
+
onClose = () => void 0,
|
|
886
|
+
position = { x: 0, y: 0 },
|
|
887
|
+
style,
|
|
888
|
+
...menuListProps
|
|
889
|
+
}) => {
|
|
890
|
+
const closeHandlerRef = (0, import_react7.useRef)(onClose);
|
|
891
|
+
closeHandlerRef.current = onClose;
|
|
892
|
+
const id = (0, import_vuu_layout2.useId)(idProp);
|
|
893
|
+
const closeMenuRef = (0, import_react7.useRef)(noop);
|
|
894
|
+
const [menus, actions] = useItemsWithIdsNext(childrenProp, id);
|
|
895
|
+
const navigatingWithKeyboard = (0, import_react7.useRef)(activatedByKeyboard);
|
|
896
|
+
const handleMouseEnterItem = (0, import_react7.useCallback)(() => {
|
|
897
|
+
navigatingWithKeyboard.current = false;
|
|
898
|
+
}, []);
|
|
899
|
+
const handleActivate = (0, import_react7.useCallback)(
|
|
900
|
+
(menuItemId) => {
|
|
901
|
+
const actionId = menuItemId.slice(9);
|
|
902
|
+
const { action, options } = actions[actionId];
|
|
903
|
+
closeMenuRef.current(id);
|
|
904
|
+
onClose({
|
|
905
|
+
type: "menu-action",
|
|
906
|
+
menuId: action,
|
|
907
|
+
options
|
|
908
|
+
});
|
|
909
|
+
},
|
|
910
|
+
[actions, id, onClose]
|
|
911
|
+
);
|
|
912
|
+
const { closeMenu, listItemProps, openMenu, openMenus, handleRender } = useCascade({
|
|
913
|
+
// FIXME
|
|
914
|
+
id: `${id}`,
|
|
915
|
+
onActivate: handleActivate,
|
|
916
|
+
onMouseEnterItem: handleMouseEnterItem,
|
|
917
|
+
position
|
|
918
|
+
});
|
|
919
|
+
closeMenuRef.current = closeMenu;
|
|
920
|
+
const handleCloseMenu = () => {
|
|
921
|
+
navigatingWithKeyboard.current = true;
|
|
922
|
+
closeMenu();
|
|
923
|
+
};
|
|
924
|
+
const handleHighlightMenuItem = () => {
|
|
925
|
+
};
|
|
926
|
+
const lastMenu = openMenus.length - 1;
|
|
927
|
+
const getChildMenuId = (i) => {
|
|
928
|
+
if (i >= lastMenu) {
|
|
929
|
+
return void 0;
|
|
930
|
+
} else {
|
|
931
|
+
const { id: id2 } = openMenus[i + 1];
|
|
932
|
+
return id2;
|
|
933
|
+
}
|
|
934
|
+
};
|
|
935
|
+
return /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(import_jsx_runtime3.Fragment, { children: openMenus.map(({ id: menuId, left, top }, i, all) => {
|
|
936
|
+
const childMenuId = getChildMenuId(i);
|
|
937
|
+
return /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(PortalDeprecated, { x: left, y: top, onRender: handleRender, children: /* @__PURE__ */ (0, import_react8.createElement)(
|
|
938
|
+
MenuList,
|
|
939
|
+
{
|
|
940
|
+
...menuListProps,
|
|
941
|
+
activatedByKeyboard: navigatingWithKeyboard.current,
|
|
942
|
+
childMenuShowing: childMenuId,
|
|
943
|
+
className,
|
|
944
|
+
id: menuId,
|
|
945
|
+
isRoot: i === 0,
|
|
946
|
+
key: i,
|
|
947
|
+
listItemProps,
|
|
948
|
+
onActivate: handleActivate,
|
|
949
|
+
onHighlightMenuItem: handleHighlightMenuItem,
|
|
950
|
+
onCloseMenu: handleCloseMenu,
|
|
951
|
+
onOpenMenu: openMenu,
|
|
952
|
+
style,
|
|
953
|
+
tabIndex: i === all.length - 1 ? 0 : void 0
|
|
954
|
+
},
|
|
955
|
+
menus[menuId]
|
|
956
|
+
) }, i);
|
|
957
|
+
}) });
|
|
958
|
+
};
|
|
959
|
+
ContextMenu.displayName = "ContextMenu";
|
|
960
|
+
|
|
961
|
+
// src/menu/context-menu-provider.tsx
|
|
962
|
+
var import_react9 = require("react");
|
|
963
|
+
var import_jsx_runtime4 = require("react/jsx-runtime");
|
|
964
|
+
var ContextMenuContext = (0, import_react9.createContext)(
|
|
965
|
+
null
|
|
966
|
+
);
|
|
967
|
+
var Provider = ({
|
|
968
|
+
children,
|
|
969
|
+
context,
|
|
970
|
+
menuActionHandler,
|
|
971
|
+
menuBuilder
|
|
972
|
+
}) => {
|
|
973
|
+
const menuBuilders = (0, import_react9.useMemo)(() => {
|
|
974
|
+
if ((context == null ? void 0 : context.menuBuilders) && menuBuilder) {
|
|
975
|
+
return context.menuBuilders.concat(menuBuilder);
|
|
976
|
+
} else if (menuBuilder) {
|
|
977
|
+
return [menuBuilder];
|
|
978
|
+
} else {
|
|
979
|
+
return (context == null ? void 0 : context.menuBuilders) || [];
|
|
980
|
+
}
|
|
981
|
+
}, [context, menuBuilder]);
|
|
982
|
+
const handleMenuAction = (0, import_react9.useCallback)(
|
|
983
|
+
(reason) => {
|
|
984
|
+
var _a;
|
|
985
|
+
if (menuActionHandler == null ? void 0 : menuActionHandler(reason)) {
|
|
986
|
+
return true;
|
|
987
|
+
}
|
|
988
|
+
if ((_a = context == null ? void 0 : context.menuActionHandler) == null ? void 0 : _a.call(context, reason)) {
|
|
989
|
+
return true;
|
|
990
|
+
}
|
|
991
|
+
},
|
|
992
|
+
[context, menuActionHandler]
|
|
993
|
+
);
|
|
994
|
+
return /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
|
|
995
|
+
ContextMenuContext.Provider,
|
|
996
|
+
{
|
|
997
|
+
value: {
|
|
998
|
+
menuActionHandler: handleMenuAction,
|
|
999
|
+
menuBuilders
|
|
1000
|
+
},
|
|
1001
|
+
children
|
|
1002
|
+
}
|
|
1003
|
+
);
|
|
1004
|
+
};
|
|
1005
|
+
var ContextMenuProvider = ({
|
|
1006
|
+
children,
|
|
1007
|
+
label,
|
|
1008
|
+
menuActionHandler,
|
|
1009
|
+
menuBuilder
|
|
1010
|
+
}) => {
|
|
1011
|
+
return /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(ContextMenuContext.Consumer, { children: (parentContext) => /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
|
|
1012
|
+
Provider,
|
|
1013
|
+
{
|
|
1014
|
+
context: parentContext,
|
|
1015
|
+
label,
|
|
1016
|
+
menuActionHandler,
|
|
1017
|
+
menuBuilder,
|
|
1018
|
+
children
|
|
1019
|
+
}
|
|
1020
|
+
) });
|
|
1021
|
+
};
|
|
1022
|
+
|
|
1023
|
+
// src/menu/useContextMenu.tsx
|
|
1024
|
+
var import_vuu_shell3 = require("@vuu-ui/vuu-shell");
|
|
1025
|
+
var import_vuu_utils2 = require("@vuu-ui/vuu-utils");
|
|
1026
|
+
var import_classnames7 = __toESM(require("classnames"));
|
|
1027
|
+
var import_react12 = require("react");
|
|
1028
|
+
|
|
1029
|
+
// src/popup/popup-service.ts
|
|
1030
|
+
var import_classnames5 = __toESM(require("classnames"));
|
|
1031
|
+
var import_react10 = __toESM(require("react"));
|
|
1032
|
+
var import_react_dom = __toESM(require("react-dom"));
|
|
1033
|
+
var _dialogOpen = false;
|
|
1034
|
+
var _popups = [];
|
|
1035
|
+
var reasonIsMenuAction = (reason) => (reason == null ? void 0 : reason.type) === "menu-action";
|
|
1036
|
+
var reasonIsClickAway = (reason) => (reason == null ? void 0 : reason.type) === "click-away";
|
|
1037
|
+
function specialKeyHandler(e) {
|
|
1038
|
+
if (e.key === "Esc") {
|
|
1039
|
+
if (_popups.length) {
|
|
1040
|
+
closeAllPopups();
|
|
1041
|
+
} else if (_dialogOpen) {
|
|
1042
|
+
const dialogRoot = document.body.querySelector(".vuuDialog");
|
|
1043
|
+
if (dialogRoot) {
|
|
1044
|
+
import_react_dom.default.unmountComponentAtNode(dialogRoot);
|
|
1045
|
+
}
|
|
1046
|
+
}
|
|
1047
|
+
}
|
|
1048
|
+
}
|
|
1049
|
+
function outsideClickHandler(e) {
|
|
1050
|
+
if (_popups.length) {
|
|
1051
|
+
const popupContainers = document.body.querySelectorAll(".vuuPopup");
|
|
1052
|
+
for (let i = 0; i < popupContainers.length; i++) {
|
|
1053
|
+
if (popupContainers[i].contains(e.target)) {
|
|
1054
|
+
return;
|
|
1055
|
+
}
|
|
1056
|
+
}
|
|
1057
|
+
closeAllPopups({ mouseEvt: e, type: "click-away" });
|
|
1058
|
+
}
|
|
1059
|
+
}
|
|
1060
|
+
function closeAllPopups(reason) {
|
|
1061
|
+
if (_popups.length === 1) {
|
|
1062
|
+
PopupService.hidePopup(reason, "anon", "all");
|
|
1063
|
+
} else if (_popups.length) {
|
|
1064
|
+
const popupContainers = document.body.querySelectorAll(".vuuPopup");
|
|
1065
|
+
for (let i = 0; i < popupContainers.length; i++) {
|
|
1066
|
+
import_react_dom.default.unmountComponentAtNode(popupContainers[i]);
|
|
1067
|
+
}
|
|
1068
|
+
popupClosed("*");
|
|
1069
|
+
}
|
|
1070
|
+
}
|
|
1071
|
+
function dialogOpened() {
|
|
1072
|
+
if (_dialogOpen === false) {
|
|
1073
|
+
_dialogOpen = true;
|
|
1074
|
+
window.addEventListener("keydown", specialKeyHandler, true);
|
|
1075
|
+
}
|
|
1076
|
+
}
|
|
1077
|
+
function dialogClosed() {
|
|
1078
|
+
if (_dialogOpen) {
|
|
1079
|
+
_dialogOpen = false;
|
|
1080
|
+
window.removeEventListener("keydown", specialKeyHandler, true);
|
|
1081
|
+
}
|
|
1082
|
+
}
|
|
1083
|
+
function popupOpened(name) {
|
|
1084
|
+
if (_popups.indexOf(name) === -1) {
|
|
1085
|
+
_popups.push(name);
|
|
1086
|
+
if (_dialogOpen === false) {
|
|
1087
|
+
window.addEventListener("keydown", specialKeyHandler, true);
|
|
1088
|
+
window.addEventListener("click", outsideClickHandler, true);
|
|
1089
|
+
}
|
|
1090
|
+
}
|
|
1091
|
+
}
|
|
1092
|
+
function popupClosed(name) {
|
|
1093
|
+
if (_popups.length) {
|
|
1094
|
+
if (name === "*") {
|
|
1095
|
+
_popups.length = 0;
|
|
1096
|
+
} else {
|
|
1097
|
+
const pos = _popups.indexOf(name);
|
|
1098
|
+
if (pos !== -1) {
|
|
1099
|
+
_popups.splice(pos, 1);
|
|
1100
|
+
}
|
|
1101
|
+
}
|
|
1102
|
+
if (_popups.length === 0 && _dialogOpen === false) {
|
|
1103
|
+
window.removeEventListener("keydown", specialKeyHandler, true);
|
|
1104
|
+
window.removeEventListener("click", outsideClickHandler, true);
|
|
1105
|
+
}
|
|
1106
|
+
}
|
|
1107
|
+
}
|
|
1108
|
+
var PopupComponent = ({
|
|
1109
|
+
children,
|
|
1110
|
+
position,
|
|
1111
|
+
style
|
|
1112
|
+
}) => {
|
|
1113
|
+
const className = (0, import_classnames5.default)("hwPopup", "hwPopupContainer", position);
|
|
1114
|
+
return (0, import_react10.createElement)("div", { className, style }, children);
|
|
1115
|
+
};
|
|
1116
|
+
var incrementingKey = 1;
|
|
1117
|
+
var PopupService = class {
|
|
1118
|
+
static showPopup({
|
|
1119
|
+
group = "all",
|
|
1120
|
+
name = "anon",
|
|
1121
|
+
left = 0,
|
|
1122
|
+
position = "",
|
|
1123
|
+
right = "auto",
|
|
1124
|
+
top = 0,
|
|
1125
|
+
width = "auto",
|
|
1126
|
+
component
|
|
1127
|
+
}) {
|
|
1128
|
+
if (!component) {
|
|
1129
|
+
throw Error(`PopupService showPopup, no component supplied`);
|
|
1130
|
+
}
|
|
1131
|
+
if (typeof component.props.onClose === "function") {
|
|
1132
|
+
PopupService.onClose = component.props.onClose;
|
|
1133
|
+
} else {
|
|
1134
|
+
PopupService.onClose = void 0;
|
|
1135
|
+
}
|
|
1136
|
+
popupOpened(name);
|
|
1137
|
+
document.addEventListener("keydown", PopupService.escapeKeyListener, true);
|
|
1138
|
+
let el = document.body.querySelector(".vuuPopup." + group);
|
|
1139
|
+
if (el === null) {
|
|
1140
|
+
el = document.createElement("div");
|
|
1141
|
+
el.className = "vuuPopup " + group;
|
|
1142
|
+
document.body.appendChild(el);
|
|
1143
|
+
}
|
|
1144
|
+
const style = { width };
|
|
1145
|
+
renderPortal(
|
|
1146
|
+
(0, import_react10.createElement)(
|
|
1147
|
+
PopupComponent,
|
|
1148
|
+
{ key: incrementingKey++, position, style },
|
|
1149
|
+
component
|
|
1150
|
+
),
|
|
1151
|
+
el,
|
|
1152
|
+
left,
|
|
1153
|
+
top,
|
|
1154
|
+
() => {
|
|
1155
|
+
PopupService.keepWithinThePage(el, right);
|
|
1156
|
+
}
|
|
1157
|
+
);
|
|
1158
|
+
}
|
|
1159
|
+
static escapeKeyListener(evt) {
|
|
1160
|
+
if (evt.key === "Escape") {
|
|
1161
|
+
PopupService.hidePopup({ type: "escape", event: evt });
|
|
1162
|
+
}
|
|
1163
|
+
}
|
|
1164
|
+
static hidePopup(reason, name = "anon", group = "all") {
|
|
1165
|
+
var _a;
|
|
1166
|
+
if (_popups.indexOf(name) !== -1) {
|
|
1167
|
+
popupClosed(name);
|
|
1168
|
+
const popupRoot = document.body.querySelector(`.vuuPopup.${group}`);
|
|
1169
|
+
if (popupRoot) {
|
|
1170
|
+
import_react_dom.default.unmountComponentAtNode(popupRoot);
|
|
1171
|
+
}
|
|
1172
|
+
}
|
|
1173
|
+
document.removeEventListener(
|
|
1174
|
+
"keydown",
|
|
1175
|
+
PopupService.escapeKeyListener,
|
|
1176
|
+
true
|
|
1177
|
+
);
|
|
1178
|
+
(_a = PopupService == null ? void 0 : PopupService.onClose) == null ? void 0 : _a.call(PopupService, reason);
|
|
1179
|
+
}
|
|
1180
|
+
static keepWithinThePage(el, right = "auto") {
|
|
1181
|
+
const target = el.querySelector(".vuuPopupContainer > *");
|
|
1182
|
+
if (target) {
|
|
1183
|
+
const {
|
|
1184
|
+
top,
|
|
1185
|
+
left,
|
|
1186
|
+
width,
|
|
1187
|
+
height,
|
|
1188
|
+
right: currentRight
|
|
1189
|
+
} = target.getBoundingClientRect();
|
|
1190
|
+
const w = window.innerWidth;
|
|
1191
|
+
const h = window.innerHeight;
|
|
1192
|
+
const overflowH = h - (top + height);
|
|
1193
|
+
if (overflowH < 0) {
|
|
1194
|
+
target.style.top = Math.round(top) + overflowH + "px";
|
|
1195
|
+
}
|
|
1196
|
+
const overflowW = w - (left + width);
|
|
1197
|
+
if (overflowW < 0) {
|
|
1198
|
+
target.style.left = Math.round(left) + overflowW + "px";
|
|
1199
|
+
}
|
|
1200
|
+
if (typeof right === "number" && right !== currentRight) {
|
|
1201
|
+
const adjustment = right - currentRight;
|
|
1202
|
+
target.style.left = left + adjustment + "px";
|
|
1203
|
+
}
|
|
1204
|
+
}
|
|
1205
|
+
}
|
|
1206
|
+
};
|
|
1207
|
+
var DialogService = class {
|
|
1208
|
+
static showDialog(dialog) {
|
|
1209
|
+
const containerEl = ".vuuDialog";
|
|
1210
|
+
const onClose = dialog.props.onClose;
|
|
1211
|
+
dialogOpened();
|
|
1212
|
+
import_react_dom.default.render(
|
|
1213
|
+
import_react10.default.cloneElement(dialog, {
|
|
1214
|
+
container: containerEl,
|
|
1215
|
+
onClose: () => {
|
|
1216
|
+
DialogService.closeDialog();
|
|
1217
|
+
if (onClose) {
|
|
1218
|
+
onClose();
|
|
1219
|
+
}
|
|
1220
|
+
}
|
|
1221
|
+
}),
|
|
1222
|
+
document.body.querySelector(containerEl)
|
|
1223
|
+
);
|
|
1224
|
+
}
|
|
1225
|
+
static closeDialog() {
|
|
1226
|
+
dialogClosed();
|
|
1227
|
+
const dialogRoot = document.body.querySelector(".vuuDialog");
|
|
1228
|
+
if (dialogRoot) {
|
|
1229
|
+
import_react_dom.default.unmountComponentAtNode(dialogRoot);
|
|
1230
|
+
}
|
|
1231
|
+
}
|
|
1232
|
+
};
|
|
1233
|
+
var Popup = (props) => {
|
|
1234
|
+
const pendingTask = (0, import_react10.useRef)();
|
|
1235
|
+
const ref = (0, import_react10.useRef)(null);
|
|
1236
|
+
const show = (props2, boundingClientRect) => {
|
|
1237
|
+
const { name, group, depth, width } = props2;
|
|
1238
|
+
let left;
|
|
1239
|
+
let top;
|
|
1240
|
+
if (pendingTask.current) {
|
|
1241
|
+
window.clearTimeout(pendingTask.current);
|
|
1242
|
+
pendingTask.current = void 0;
|
|
1243
|
+
}
|
|
1244
|
+
if (props2.close === true) {
|
|
1245
|
+
PopupService.hidePopup(void 0, name, group);
|
|
1246
|
+
} else {
|
|
1247
|
+
const { position, children: component } = props2;
|
|
1248
|
+
const {
|
|
1249
|
+
left: targetLeft,
|
|
1250
|
+
top: targetTop,
|
|
1251
|
+
width: clientWidth,
|
|
1252
|
+
bottom: targetBottom
|
|
1253
|
+
} = boundingClientRect;
|
|
1254
|
+
if (position === "below") {
|
|
1255
|
+
left = targetLeft;
|
|
1256
|
+
top = targetBottom;
|
|
1257
|
+
} else if (position === "above") {
|
|
1258
|
+
left = targetLeft;
|
|
1259
|
+
top = targetTop;
|
|
1260
|
+
}
|
|
1261
|
+
pendingTask.current = window.setTimeout(() => {
|
|
1262
|
+
PopupService.showPopup({
|
|
1263
|
+
name,
|
|
1264
|
+
group,
|
|
1265
|
+
depth,
|
|
1266
|
+
position,
|
|
1267
|
+
left,
|
|
1268
|
+
top,
|
|
1269
|
+
width: width || clientWidth,
|
|
1270
|
+
component
|
|
1271
|
+
});
|
|
1272
|
+
}, 10);
|
|
1273
|
+
}
|
|
1274
|
+
};
|
|
1275
|
+
(0, import_react10.useEffect)(() => {
|
|
1276
|
+
if (ref.current) {
|
|
1277
|
+
const el = ref.current.parentElement;
|
|
1278
|
+
const boundingClientRect = el == null ? void 0 : el.getBoundingClientRect();
|
|
1279
|
+
if (boundingClientRect) {
|
|
1280
|
+
show(props, boundingClientRect);
|
|
1281
|
+
}
|
|
1282
|
+
}
|
|
1283
|
+
return () => {
|
|
1284
|
+
PopupService.hidePopup(void 0, props.name, props.group);
|
|
1285
|
+
};
|
|
1286
|
+
}, [props]);
|
|
1287
|
+
return import_react10.default.createElement("div", { className: "popup-proxy", ref });
|
|
1288
|
+
};
|
|
1289
|
+
|
|
1290
|
+
// src/popup/Popup.tsx
|
|
1291
|
+
var import_classnames6 = __toESM(require("classnames"));
|
|
1292
|
+
var import_vuu_shell2 = require("@vuu-ui/vuu-shell");
|
|
1293
|
+
|
|
1294
|
+
// src/popup/useAnchoredPosition.ts
|
|
1295
|
+
var import_react11 = require("react");
|
|
1296
|
+
var getPositionRelativeToAnchor = (anchorElement, placement, offsetLeft, offsetTop) => {
|
|
1297
|
+
const { bottom, left, right, top, width } = anchorElement.getBoundingClientRect();
|
|
1298
|
+
switch (placement) {
|
|
1299
|
+
case "below":
|
|
1300
|
+
return { left: left + offsetLeft, top: bottom + offsetTop };
|
|
1301
|
+
case "right":
|
|
1302
|
+
return { left: right + offsetLeft, top: top + offsetTop };
|
|
1303
|
+
case "below-center":
|
|
1304
|
+
return { left: left + width / 2 + offsetLeft, top: bottom + offsetTop };
|
|
1305
|
+
case "below-full-width":
|
|
1306
|
+
return { left: left + offsetLeft, top: bottom + offsetTop, width };
|
|
1307
|
+
default:
|
|
1308
|
+
throw Error(
|
|
1309
|
+
"Popup getPositionRelativeToAnchor only supported placement values are below and right"
|
|
1310
|
+
);
|
|
1311
|
+
}
|
|
1312
|
+
};
|
|
1313
|
+
var useAnchoredPosition = ({
|
|
1314
|
+
anchorElement,
|
|
1315
|
+
offsetLeft = 0,
|
|
1316
|
+
offsetTop = 0,
|
|
1317
|
+
placement
|
|
1318
|
+
}) => {
|
|
1319
|
+
const [position, setPosition] = (0, import_react11.useState)();
|
|
1320
|
+
(0, import_react11.useLayoutEffect)(() => {
|
|
1321
|
+
if (anchorElement.current) {
|
|
1322
|
+
const position2 = getPositionRelativeToAnchor(
|
|
1323
|
+
anchorElement.current,
|
|
1324
|
+
placement,
|
|
1325
|
+
offsetLeft,
|
|
1326
|
+
offsetTop
|
|
1327
|
+
);
|
|
1328
|
+
setPosition(position2);
|
|
1329
|
+
}
|
|
1330
|
+
}, [anchorElement, offsetLeft, offsetTop, placement]);
|
|
1331
|
+
return position;
|
|
1332
|
+
};
|
|
1333
|
+
|
|
1334
|
+
// src/popup/Popup.tsx
|
|
1335
|
+
var import_jsx_runtime5 = require("react/jsx-runtime");
|
|
1336
|
+
var PopupComponent2 = ({
|
|
1337
|
+
children,
|
|
1338
|
+
className,
|
|
1339
|
+
anchorElement,
|
|
1340
|
+
placement
|
|
1341
|
+
}) => {
|
|
1342
|
+
const [themeClass, densityClass, dataMode] = (0, import_vuu_shell2.useThemeAttributes)();
|
|
1343
|
+
const position = useAnchoredPosition({ anchorElement, placement });
|
|
1344
|
+
return position === void 0 ? null : /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
|
|
1345
|
+
"div",
|
|
1346
|
+
{
|
|
1347
|
+
className: (0, import_classnames6.default)(`vuuPortal`, className, themeClass, densityClass),
|
|
1348
|
+
"data-mode": dataMode,
|
|
1349
|
+
style: position,
|
|
1350
|
+
children
|
|
1351
|
+
}
|
|
1352
|
+
);
|
|
1353
|
+
};
|
|
1354
|
+
|
|
1355
|
+
// src/menu/useContextMenu.tsx
|
|
1356
|
+
var import_jsx_runtime6 = require("react/jsx-runtime");
|
|
1357
|
+
var useContextMenu = (menuBuilder, menuActionHandler) => {
|
|
1358
|
+
const ctx = (0, import_react12.useContext)(ContextMenuContext);
|
|
1359
|
+
const [themeClass, densityClass, dataMode] = (0, import_vuu_shell3.useThemeAttributes)();
|
|
1360
|
+
const buildMenuOptions = (0, import_react12.useCallback)(
|
|
1361
|
+
(menuBuilders, location, options) => {
|
|
1362
|
+
let results = [];
|
|
1363
|
+
for (const menuBuilder2 of menuBuilders) {
|
|
1364
|
+
results = results.concat(menuBuilder2(location, options));
|
|
1365
|
+
}
|
|
1366
|
+
return results;
|
|
1367
|
+
},
|
|
1368
|
+
[]
|
|
1369
|
+
);
|
|
1370
|
+
const handleShowContextMenu = (0, import_react12.useCallback)(
|
|
1371
|
+
(e, location, { ContextMenuProps: ContextMenuProps2, contextMenu, ...options }) => {
|
|
1372
|
+
var _a, _b;
|
|
1373
|
+
(_a = e.stopPropagation) == null ? void 0 : _a.call(e);
|
|
1374
|
+
(_b = e.preventDefault) == null ? void 0 : _b.call(e);
|
|
1375
|
+
if (contextMenu) {
|
|
1376
|
+
return showContextMenuComponent(
|
|
1377
|
+
{
|
|
1378
|
+
x: e.clientX,
|
|
1379
|
+
y: e.clientY
|
|
1380
|
+
},
|
|
1381
|
+
contextMenu
|
|
1382
|
+
);
|
|
1383
|
+
}
|
|
1384
|
+
const menuBuilders = [];
|
|
1385
|
+
if (menuBuilder) {
|
|
1386
|
+
menuBuilders.push(menuBuilder);
|
|
1387
|
+
}
|
|
1388
|
+
if (ctx && Array.isArray(ctx == null ? void 0 : ctx.menuBuilders) && ctx.menuBuilders.length > 0) {
|
|
1389
|
+
menuBuilders.push(...ctx.menuBuilders);
|
|
1390
|
+
}
|
|
1391
|
+
if (menuBuilders.length > 0) {
|
|
1392
|
+
const menuItemDescriptors = buildMenuOptions(
|
|
1393
|
+
menuBuilders,
|
|
1394
|
+
location,
|
|
1395
|
+
options
|
|
1396
|
+
);
|
|
1397
|
+
const menuHandler = (action) => {
|
|
1398
|
+
if ((menuActionHandler == null ? void 0 : menuActionHandler(action)) === true) {
|
|
1399
|
+
return true;
|
|
1400
|
+
} else {
|
|
1401
|
+
return ctx == null ? void 0 : ctx.menuActionHandler(action);
|
|
1402
|
+
}
|
|
1403
|
+
};
|
|
1404
|
+
if (menuItemDescriptors.length && menuHandler) {
|
|
1405
|
+
showContextMenu(e, menuItemDescriptors, menuHandler, {
|
|
1406
|
+
...ContextMenuProps2,
|
|
1407
|
+
className: (0, import_classnames7.default)(
|
|
1408
|
+
ContextMenuProps2 == null ? void 0 : ContextMenuProps2.className,
|
|
1409
|
+
themeClass,
|
|
1410
|
+
densityClass
|
|
1411
|
+
),
|
|
1412
|
+
"data-mode": dataMode
|
|
1413
|
+
});
|
|
1414
|
+
}
|
|
1415
|
+
} else {
|
|
1416
|
+
console.warn(
|
|
1417
|
+
"useContextMenu, no menuBuilders configured. These should be supplied via the ContextMenuProvider(s)"
|
|
1418
|
+
);
|
|
1419
|
+
}
|
|
1420
|
+
},
|
|
1421
|
+
[
|
|
1422
|
+
buildMenuOptions,
|
|
1423
|
+
ctx,
|
|
1424
|
+
dataMode,
|
|
1425
|
+
densityClass,
|
|
1426
|
+
menuActionHandler,
|
|
1427
|
+
menuBuilder,
|
|
1428
|
+
themeClass
|
|
1429
|
+
]
|
|
1430
|
+
);
|
|
1431
|
+
const hideContextMenu = (0, import_react12.useCallback)(() => {
|
|
1432
|
+
console.log("hide comnytext menu");
|
|
1433
|
+
}, []);
|
|
1434
|
+
return [handleShowContextMenu, hideContextMenu];
|
|
1435
|
+
};
|
|
1436
|
+
var NO_OPTIONS = {};
|
|
1437
|
+
var showContextMenuComponent = (position, contextMenu) => {
|
|
1438
|
+
PopupService.showPopup({
|
|
1439
|
+
focus: true,
|
|
1440
|
+
left: 0,
|
|
1441
|
+
top: 0,
|
|
1442
|
+
component: (0, import_react12.cloneElement)(contextMenu, { position })
|
|
1443
|
+
});
|
|
1444
|
+
};
|
|
1445
|
+
var showContextMenu = (e, menuDescriptors, handleContextMenuAction, {
|
|
1446
|
+
position: positionProp,
|
|
1447
|
+
...contextMenuProps
|
|
1448
|
+
} = NO_OPTIONS) => {
|
|
1449
|
+
const menuItems = (menuDescriptors2) => {
|
|
1450
|
+
const fromDescriptor = (menuItem, i) => (0, import_vuu_utils2.isGroupMenuItemDescriptor)(menuItem) ? /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(MenuItemGroup, { label: menuItem.label, children: menuItem.children.map(fromDescriptor) }, i) : /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
|
|
1451
|
+
MenuItem,
|
|
1452
|
+
{
|
|
1453
|
+
action: menuItem.action,
|
|
1454
|
+
className: menuItem.className,
|
|
1455
|
+
"data-icon": menuItem.icon,
|
|
1456
|
+
options: menuItem.options,
|
|
1457
|
+
children: menuItem.label
|
|
1458
|
+
},
|
|
1459
|
+
i
|
|
1460
|
+
);
|
|
1461
|
+
return menuDescriptors2.map(fromDescriptor);
|
|
1462
|
+
};
|
|
1463
|
+
const handleClose = (reason) => {
|
|
1464
|
+
var _a;
|
|
1465
|
+
if (reasonIsMenuAction(reason)) {
|
|
1466
|
+
handleContextMenuAction(reason);
|
|
1467
|
+
PopupService.hidePopup();
|
|
1468
|
+
}
|
|
1469
|
+
(_a = contextMenuProps == null ? void 0 : contextMenuProps.onClose) == null ? void 0 : _a.call(contextMenuProps, reason);
|
|
1470
|
+
};
|
|
1471
|
+
const position = positionProp != null ? positionProp : {
|
|
1472
|
+
x: e.clientX,
|
|
1473
|
+
y: e.clientY
|
|
1474
|
+
};
|
|
1475
|
+
const component = /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
|
|
1476
|
+
ContextMenu,
|
|
1477
|
+
{
|
|
1478
|
+
...contextMenuProps,
|
|
1479
|
+
className: "vuuContextMenu",
|
|
1480
|
+
onClose: handleClose,
|
|
1481
|
+
position,
|
|
1482
|
+
children: menuItems(menuDescriptors)
|
|
1483
|
+
}
|
|
1484
|
+
);
|
|
1485
|
+
PopupService.showPopup({ left: 0, top: 0, component, focus: true });
|
|
1486
|
+
};
|
|
1487
|
+
|
|
1488
|
+
// src/popup-menu/PopupMenu.tsx
|
|
1489
|
+
var import_react13 = require("react");
|
|
1490
|
+
var import_classnames8 = __toESM(require("classnames"));
|
|
1491
|
+
var import_core2 = require("@salt-ds/core");
|
|
1492
|
+
var import_vuu_layout3 = require("@vuu-ui/vuu-layout");
|
|
1493
|
+
var import_jsx_runtime7 = require("react/jsx-runtime");
|
|
1494
|
+
var classBase3 = "vuuPopupMenu";
|
|
1495
|
+
var getPosition2 = (element) => {
|
|
1496
|
+
if (element) {
|
|
1497
|
+
const { bottom, left } = element.getBoundingClientRect();
|
|
1498
|
+
return { x: left, y: bottom + 6 };
|
|
1499
|
+
}
|
|
1500
|
+
};
|
|
1501
|
+
var PopupMenu = ({
|
|
1502
|
+
className,
|
|
1503
|
+
label,
|
|
1504
|
+
icon = label ? "chevron-down" : "more-vert",
|
|
1505
|
+
id: idProp,
|
|
1506
|
+
menuActionHandler,
|
|
1507
|
+
menuBuilder,
|
|
1508
|
+
menuLocation = "header",
|
|
1509
|
+
menuOptions,
|
|
1510
|
+
onMenuClose,
|
|
1511
|
+
tabIndex = 0,
|
|
1512
|
+
...htmlAttributes
|
|
1513
|
+
}) => {
|
|
1514
|
+
const rootRef = (0, import_react13.useRef)(null);
|
|
1515
|
+
const suppressShowMenuRef = (0, import_react13.useRef)(false);
|
|
1516
|
+
const [menuOpen, setMenuOpen] = (0, import_react13.useState)(false);
|
|
1517
|
+
const id = (0, import_vuu_layout3.useId)(idProp);
|
|
1518
|
+
const [showContextMenu2] = useContextMenu(menuBuilder, menuActionHandler);
|
|
1519
|
+
const handleMenuClose = (0, import_react13.useCallback)(
|
|
1520
|
+
(reason) => {
|
|
1521
|
+
setMenuOpen(false);
|
|
1522
|
+
if (reasonIsClickAway(reason)) {
|
|
1523
|
+
const target = reason.mouseEvt.target;
|
|
1524
|
+
if (target === rootRef.current) {
|
|
1525
|
+
suppressShowMenuRef.current = true;
|
|
1526
|
+
}
|
|
1527
|
+
} else {
|
|
1528
|
+
requestAnimationFrame(() => {
|
|
1529
|
+
var _a;
|
|
1530
|
+
onMenuClose == null ? void 0 : onMenuClose(reason);
|
|
1531
|
+
if (tabIndex !== -1) {
|
|
1532
|
+
(_a = rootRef.current) == null ? void 0 : _a.focus();
|
|
1533
|
+
}
|
|
1534
|
+
});
|
|
1535
|
+
}
|
|
1536
|
+
},
|
|
1537
|
+
[onMenuClose, tabIndex]
|
|
1538
|
+
);
|
|
1539
|
+
const showMenu = (0, import_react13.useCallback)(
|
|
1540
|
+
(e) => {
|
|
1541
|
+
if (suppressShowMenuRef.current) {
|
|
1542
|
+
suppressShowMenuRef.current = false;
|
|
1543
|
+
} else {
|
|
1544
|
+
setMenuOpen(true);
|
|
1545
|
+
showContextMenu2(e, menuLocation, {
|
|
1546
|
+
ContextMenuProps: {
|
|
1547
|
+
className: "vuuPopupMenuList",
|
|
1548
|
+
id: `${id}-menu`,
|
|
1549
|
+
onClose: handleMenuClose,
|
|
1550
|
+
position: getPosition2(rootRef.current)
|
|
1551
|
+
},
|
|
1552
|
+
...menuOptions
|
|
1553
|
+
});
|
|
1554
|
+
}
|
|
1555
|
+
},
|
|
1556
|
+
[handleMenuClose, id, menuLocation, menuOptions, showContextMenu2]
|
|
1557
|
+
);
|
|
1558
|
+
return /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
|
|
1559
|
+
import_core2.Button,
|
|
1560
|
+
{
|
|
1561
|
+
...htmlAttributes,
|
|
1562
|
+
"aria-controls": `${id}-menu-root`,
|
|
1563
|
+
"aria-expanded": menuOpen,
|
|
1564
|
+
"aria-haspopup": "menu",
|
|
1565
|
+
className: (0, import_classnames8.default)(classBase3, className, {
|
|
1566
|
+
[`${classBase3}-withCaption`]: label !== void 0,
|
|
1567
|
+
[`${classBase3}-open`]: menuOpen
|
|
1568
|
+
}),
|
|
1569
|
+
"data-icon": icon,
|
|
1570
|
+
id,
|
|
1571
|
+
onClick: showMenu,
|
|
1572
|
+
ref: rootRef,
|
|
1573
|
+
tabIndex,
|
|
1574
|
+
variant: "secondary",
|
|
1575
|
+
children: label
|
|
1576
|
+
}
|
|
1577
|
+
);
|
|
1578
|
+
};
|
|
1579
|
+
|
|
1580
|
+
// src/portal/Portal.tsx
|
|
1581
|
+
var import_vuu_shell4 = require("@vuu-ui/vuu-shell");
|
|
1582
|
+
var import_react14 = require("react");
|
|
1583
|
+
var import_react_dom2 = require("react-dom");
|
|
1584
|
+
function getContainer(container) {
|
|
1585
|
+
return typeof container === "function" ? container() : container;
|
|
1586
|
+
}
|
|
1587
|
+
var DEFAULT_ID = "vuu-portal-root";
|
|
1588
|
+
var Portal2 = ({
|
|
1589
|
+
children,
|
|
1590
|
+
container: containerProp = document.body,
|
|
1591
|
+
id = DEFAULT_ID,
|
|
1592
|
+
open = true
|
|
1593
|
+
}) => {
|
|
1594
|
+
var _a;
|
|
1595
|
+
const [mounted, setMounted] = (0, import_react14.useState)(false);
|
|
1596
|
+
const portalRef = (0, import_react14.useRef)(null);
|
|
1597
|
+
const container = (_a = getContainer(containerProp)) != null ? _a : document.body;
|
|
1598
|
+
const [themeClass, densityClass, dataMode] = (0, import_vuu_shell4.useThemeAttributes)();
|
|
1599
|
+
(0, import_react14.useLayoutEffect)(() => {
|
|
1600
|
+
const root = document.getElementById(id);
|
|
1601
|
+
if (root) {
|
|
1602
|
+
portalRef.current = root;
|
|
1603
|
+
} else {
|
|
1604
|
+
portalRef.current = document.createElement("div");
|
|
1605
|
+
portalRef.current.id = id;
|
|
1606
|
+
}
|
|
1607
|
+
const el = portalRef.current;
|
|
1608
|
+
if (!container.contains(el)) {
|
|
1609
|
+
container.appendChild(el);
|
|
1610
|
+
}
|
|
1611
|
+
el.classList.add(themeClass, densityClass);
|
|
1612
|
+
el.dataset.mode = dataMode;
|
|
1613
|
+
setMounted(true);
|
|
1614
|
+
}, [id, container, themeClass, densityClass, dataMode]);
|
|
1615
|
+
if (open && mounted && portalRef.current && children) {
|
|
1616
|
+
return (0, import_react_dom2.createPortal)(children, portalRef.current);
|
|
1617
|
+
}
|
|
1618
|
+
return null;
|
|
1619
|
+
};
|
|
1620
|
+
|
|
1621
|
+
// src/prompt/Prompt.tsx
|
|
1622
|
+
var import_vuu_shell5 = require("@vuu-ui/vuu-shell");
|
|
1623
|
+
var import_core3 = require("@salt-ds/core");
|
|
1624
|
+
var import_classnames9 = __toESM(require("classnames"));
|
|
1625
|
+
var import_react15 = require("react");
|
|
1626
|
+
var import_jsx_runtime8 = require("react/jsx-runtime");
|
|
1627
|
+
var classBase4 = "vuuPrompt";
|
|
1628
|
+
var AnchorBody = { current: document.body };
|
|
1629
|
+
var EMPTY_PROPS = {};
|
|
1630
|
+
var Prompt = ({
|
|
1631
|
+
PopupProps = EMPTY_PROPS,
|
|
1632
|
+
cancelButtonLabel = "Cancel",
|
|
1633
|
+
confirmButtonLabel = "Confirm",
|
|
1634
|
+
icon,
|
|
1635
|
+
onCancel,
|
|
1636
|
+
onConfirm,
|
|
1637
|
+
style,
|
|
1638
|
+
text,
|
|
1639
|
+
title,
|
|
1640
|
+
variant = "info",
|
|
1641
|
+
...htmlAttributes
|
|
1642
|
+
}) => {
|
|
1643
|
+
const {
|
|
1644
|
+
anchorElement = AnchorBody,
|
|
1645
|
+
offsetLeft = 0,
|
|
1646
|
+
offsetTop = 0,
|
|
1647
|
+
placement = "below"
|
|
1648
|
+
} = PopupProps;
|
|
1649
|
+
const [themeClass, densityClass, dataMode] = (0, import_vuu_shell5.useThemeAttributes)();
|
|
1650
|
+
const position = useAnchoredPosition({
|
|
1651
|
+
anchorElement,
|
|
1652
|
+
offsetLeft,
|
|
1653
|
+
offsetTop,
|
|
1654
|
+
placement
|
|
1655
|
+
});
|
|
1656
|
+
const rootRef = (0, import_react15.useRef)(null);
|
|
1657
|
+
const confirmRef = (0, import_react15.useRef)(null);
|
|
1658
|
+
(0, import_react15.useLayoutEffect)(() => {
|
|
1659
|
+
if (rootRef.current) {
|
|
1660
|
+
rootRef.current.showModal();
|
|
1661
|
+
if (confirmRef.current) {
|
|
1662
|
+
confirmRef.current.focus();
|
|
1663
|
+
}
|
|
1664
|
+
if (placement.endsWith("center")) {
|
|
1665
|
+
const { width } = rootRef.current.getBoundingClientRect();
|
|
1666
|
+
rootRef.current.style.marginLeft = `-${width / 2}px`;
|
|
1667
|
+
}
|
|
1668
|
+
}
|
|
1669
|
+
}, [placement]);
|
|
1670
|
+
return /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
|
|
1671
|
+
"dialog",
|
|
1672
|
+
{
|
|
1673
|
+
...htmlAttributes,
|
|
1674
|
+
className: (0, import_classnames9.default)(classBase4, `${classBase4}-${variant}`, themeClass),
|
|
1675
|
+
"data-mode": dataMode,
|
|
1676
|
+
ref: rootRef,
|
|
1677
|
+
style: { ...style, ...position },
|
|
1678
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)("form", { className: `${classBase4}-form`, children: [
|
|
1679
|
+
/* @__PURE__ */ (0, import_jsx_runtime8.jsx)("div", { className: `${classBase4}-header`, "data-icon": icon, children: title }),
|
|
1680
|
+
/* @__PURE__ */ (0, import_jsx_runtime8.jsx)("div", { className: `${classBase4}-text`, children: text }),
|
|
1681
|
+
/* @__PURE__ */ (0, import_jsx_runtime8.jsxs)("div", { className: `${classBase4}-buttonBar`, children: [
|
|
1682
|
+
/* @__PURE__ */ (0, import_jsx_runtime8.jsx)(import_core3.Button, { onClick: onCancel, variant: "secondary", children: cancelButtonLabel }),
|
|
1683
|
+
/* @__PURE__ */ (0, import_jsx_runtime8.jsx)(import_core3.Button, { onClick: onConfirm, ref: confirmRef, value: "default", children: confirmButtonLabel })
|
|
1684
|
+
] })
|
|
1685
|
+
] })
|
|
1686
|
+
}
|
|
1687
|
+
);
|
|
1688
|
+
};
|
|
1689
|
+
|
|
1690
|
+
// src/tooltip/useAnchoredPosition.ts
|
|
1691
|
+
var import_react16 = require("react");
|
|
1692
|
+
var getPositionRelativeToAnchor2 = (anchorElement, placement, offsetLeft, offsetTop) => {
|
|
1693
|
+
const { bottom, height, left, right, top, width } = anchorElement.getBoundingClientRect();
|
|
1694
|
+
const midX = left + width / 2;
|
|
1695
|
+
const midY = top + height / 2;
|
|
1696
|
+
switch (placement) {
|
|
1697
|
+
case "above":
|
|
1698
|
+
return { left: midX + offsetLeft, top: top + offsetTop };
|
|
1699
|
+
case "below":
|
|
1700
|
+
return { left: midX + offsetLeft, top: bottom + offsetTop };
|
|
1701
|
+
case "right":
|
|
1702
|
+
return { left: right + offsetLeft, top: midY + offsetLeft };
|
|
1703
|
+
case "left":
|
|
1704
|
+
return { left: left + offsetLeft, top: midY + offsetLeft };
|
|
1705
|
+
default:
|
|
1706
|
+
throw Error(
|
|
1707
|
+
"Tooltip getPositionRelativeToAnchor only supported placement values are left, right, below and right"
|
|
1708
|
+
);
|
|
1709
|
+
}
|
|
1710
|
+
};
|
|
1711
|
+
var useAnchoredPosition2 = ({
|
|
1712
|
+
anchorElement,
|
|
1713
|
+
offsetLeft = 0,
|
|
1714
|
+
offsetTop = 0,
|
|
1715
|
+
placement
|
|
1716
|
+
}) => {
|
|
1717
|
+
const [position, setPosition] = (0, import_react16.useState)();
|
|
1718
|
+
(0, import_react16.useLayoutEffect)(() => {
|
|
1719
|
+
if (anchorElement.current) {
|
|
1720
|
+
const position2 = getPositionRelativeToAnchor2(
|
|
1721
|
+
anchorElement.current,
|
|
1722
|
+
placement,
|
|
1723
|
+
offsetLeft,
|
|
1724
|
+
offsetTop
|
|
1725
|
+
);
|
|
1726
|
+
setPosition(position2);
|
|
1727
|
+
}
|
|
1728
|
+
}, [anchorElement, offsetLeft, offsetTop, placement]);
|
|
1729
|
+
return position;
|
|
1730
|
+
};
|
|
1731
|
+
|
|
1732
|
+
// src/tooltip/Tooltip.tsx
|
|
1733
|
+
var import_jsx_runtime9 = require("react/jsx-runtime");
|
|
1734
|
+
var classBase5 = "vuuTooltip";
|
|
1735
|
+
var Tooltip = ({
|
|
1736
|
+
anchorElement,
|
|
1737
|
+
children,
|
|
1738
|
+
id,
|
|
1739
|
+
onMouseEnter,
|
|
1740
|
+
onMouseLeave,
|
|
1741
|
+
placement
|
|
1742
|
+
}) => {
|
|
1743
|
+
const position = useAnchoredPosition2({ anchorElement, placement });
|
|
1744
|
+
if (position === void 0) {
|
|
1745
|
+
return null;
|
|
1746
|
+
}
|
|
1747
|
+
return /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(Portal2, { children: /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
|
|
1748
|
+
"div",
|
|
1749
|
+
{
|
|
1750
|
+
className: classBase5,
|
|
1751
|
+
"data-align": placement,
|
|
1752
|
+
id,
|
|
1753
|
+
style: position,
|
|
1754
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
|
|
1755
|
+
"span",
|
|
1756
|
+
{
|
|
1757
|
+
className: `${classBase5}-content`,
|
|
1758
|
+
onMouseEnter,
|
|
1759
|
+
onMouseLeave,
|
|
1760
|
+
children
|
|
1761
|
+
}
|
|
1762
|
+
)
|
|
1763
|
+
}
|
|
1764
|
+
) });
|
|
1765
|
+
};
|
|
1766
|
+
|
|
1767
|
+
// src/tooltip/useTooltip.ts
|
|
1768
|
+
var import_react17 = require("react");
|
|
1769
|
+
var import_vuu_layout4 = require("@vuu-ui/vuu-layout");
|
|
1770
|
+
var useTooltip = ({
|
|
1771
|
+
id: idProp,
|
|
1772
|
+
placement = "right",
|
|
1773
|
+
tooltipContent
|
|
1774
|
+
}) => {
|
|
1775
|
+
const hideTooltipRef = (0, import_react17.useRef)();
|
|
1776
|
+
const anchorElementRef = (0, import_react17.useRef)(null);
|
|
1777
|
+
const mouseEnterTimerRef = (0, import_react17.useRef)();
|
|
1778
|
+
const mouseLeaveTimerRef = (0, import_react17.useRef)();
|
|
1779
|
+
const [tooltipProps, setTooltipProps] = (0, import_react17.useState)();
|
|
1780
|
+
const id = (0, import_vuu_layout4.useId)(idProp);
|
|
1781
|
+
const escapeListener = (0, import_react17.useCallback)((evt) => {
|
|
1782
|
+
var _a;
|
|
1783
|
+
if (evt.key === "Escape") {
|
|
1784
|
+
(_a = hideTooltipRef.current) == null ? void 0 : _a.call(hideTooltipRef);
|
|
1785
|
+
}
|
|
1786
|
+
}, []);
|
|
1787
|
+
hideTooltipRef.current = (0, import_react17.useCallback)(() => {
|
|
1788
|
+
setTooltipProps(void 0);
|
|
1789
|
+
document.removeEventListener("keydown", escapeListener);
|
|
1790
|
+
}, [escapeListener]);
|
|
1791
|
+
const handleMouseEnterTooltip = (0, import_react17.useCallback)(() => {
|
|
1792
|
+
window.clearTimeout(mouseLeaveTimerRef.current);
|
|
1793
|
+
}, []);
|
|
1794
|
+
const handleMouseLeaveTooltip = (0, import_react17.useCallback)(() => {
|
|
1795
|
+
var _a;
|
|
1796
|
+
(_a = hideTooltipRef.current) == null ? void 0 : _a.call(hideTooltipRef);
|
|
1797
|
+
}, []);
|
|
1798
|
+
const showTooltip = (0, import_react17.useCallback)(() => {
|
|
1799
|
+
const { current: anchorEl } = anchorElementRef;
|
|
1800
|
+
if (anchorEl) {
|
|
1801
|
+
setTooltipProps({
|
|
1802
|
+
anchorElement: anchorElementRef,
|
|
1803
|
+
children: tooltipContent,
|
|
1804
|
+
id: `${id}-tooltip`,
|
|
1805
|
+
onMouseEnter: handleMouseEnterTooltip,
|
|
1806
|
+
onMouseLeave: handleMouseLeaveTooltip,
|
|
1807
|
+
placement
|
|
1808
|
+
});
|
|
1809
|
+
document.addEventListener("keydown", escapeListener);
|
|
1810
|
+
}
|
|
1811
|
+
mouseEnterTimerRef.current = void 0;
|
|
1812
|
+
}, [
|
|
1813
|
+
escapeListener,
|
|
1814
|
+
handleMouseEnterTooltip,
|
|
1815
|
+
handleMouseLeaveTooltip,
|
|
1816
|
+
id,
|
|
1817
|
+
placement,
|
|
1818
|
+
tooltipContent
|
|
1819
|
+
]);
|
|
1820
|
+
const handleMouseEnter = (0, import_react17.useCallback)(
|
|
1821
|
+
(evt) => {
|
|
1822
|
+
const el = evt.target;
|
|
1823
|
+
if (el) {
|
|
1824
|
+
anchorElementRef.current = el;
|
|
1825
|
+
mouseEnterTimerRef.current = window.setTimeout(showTooltip, 800);
|
|
1826
|
+
}
|
|
1827
|
+
},
|
|
1828
|
+
[showTooltip]
|
|
1829
|
+
);
|
|
1830
|
+
const handleMouseLeave = (0, import_react17.useCallback)(() => {
|
|
1831
|
+
if (anchorElementRef.current)
|
|
1832
|
+
if (mouseEnterTimerRef.current) {
|
|
1833
|
+
window.clearTimeout(mouseEnterTimerRef.current);
|
|
1834
|
+
mouseEnterTimerRef.current = void 0;
|
|
1835
|
+
} else {
|
|
1836
|
+
if (hideTooltipRef.current) {
|
|
1837
|
+
mouseLeaveTimerRef.current = window.setTimeout(
|
|
1838
|
+
hideTooltipRef.current,
|
|
1839
|
+
200
|
|
1840
|
+
);
|
|
1841
|
+
}
|
|
1842
|
+
}
|
|
1843
|
+
}, []);
|
|
1844
|
+
const anchorProps = {
|
|
1845
|
+
"aria-describedby": `${id}-tooltip`,
|
|
1846
|
+
onMouseEnter: handleMouseEnter,
|
|
1847
|
+
onMouseLeave: handleMouseLeave
|
|
1848
|
+
};
|
|
1849
|
+
return {
|
|
1850
|
+
anchorProps,
|
|
1851
|
+
tooltipProps
|
|
1852
|
+
};
|
|
1853
|
+
};
|
|
34
1854
|
//# sourceMappingURL=index.js.map
|