@vuu-ui/vuu-shell 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 CHANGED
@@ -1,18 +1,1762 @@
1
- "use strict";var mk=Object.create;var Ea=Object.defineProperty;var gk=Object.getOwnPropertyDescriptor;var bk=Object.getOwnPropertyNames;var yk=Object.getPrototypeOf,xk=Object.prototype.hasOwnProperty;var Ck=(o,e)=>{for(var t in e)Ea(o,t,{get:e[t],enumerable:!0})},Tm=(o,e,t,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let r of bk(e))!xk.call(o,r)&&r!==t&&Ea(o,r,{get:()=>e[r],enumerable:!(n=gk(e,r))||n.enumerable});return o};var U=(o,e,t)=>(t=o!=null?mk(yk(o)):{},Tm(e||!o||!o.__esModule?Ea(t,"default",{value:o,enumerable:!0}):t,o)),vk=o=>Tm(Ea({},"__esModule",{value:!0}),o);var km=(o,e,t)=>{if(!e.has(o))throw TypeError("Cannot "+t)};var Q=(o,e,t)=>(km(o,e,"read from private field"),t?t.call(o):e.get(o)),qt=(o,e,t)=>{if(e.has(o))throw TypeError("Cannot add the same private member more than once");e instanceof WeakSet?e.add(o):e.set(o,t)},Mn=(o,e,t,n)=>(km(o,e,"write to private field"),n?n.call(o,t):e.set(o,t),t);var IO={};Ck(IO,{ConnectionStatusIcon:()=>Sk,ContextPanel:()=>bm,DEFAULT_DENSITY:()=>OT,DEFAULT_THEME:()=>NT,DEFAULT_THEME_MODE:()=>HT,DensitySwitch:()=>Ek,Feature:()=>rl,FeatureList:()=>dd,LayoutManagementContext:()=>lm,LayoutManagementProvider:()=>dO,LayoutsList:()=>cm,LeftNav:()=>pO,LoginPanel:()=>mO,SaveLayoutPanel:()=>VL,SessionEditingForm:()=>xO,Shell:()=>kO,ShellContextProvider:()=>PO,ThemeContext:()=>fd,ThemeProvider:()=>hd,ThemeSwitch:()=>mm,getAuthDetailsFromCookies:()=>gO,getAuthModeFromCookies:()=>VT,logout:()=>fm,redirectToLogin:()=>$T,useLayoutConfig:()=>Sd,useLayoutManager:()=>am,useShellContext:()=>DO,useShellLayout:()=>ym,useThemeAttributes:()=>Ft});module.exports=vk(IO);var Ms=U(require("react")),Em=U(require("classnames"));var yr=require("react/jsx-runtime"),Sk=({connectionStatus:o,className:e,element:t="span",...n})=>{let[r,s]=(0,Ms.useState)("vuuConnectingStatus");(0,Ms.useEffect)(()=>{switch(o){case"connected":case"reconnected":s("vuuActiveStatus");break;case"connecting":s("vuuConnectingStatus");break;case"disconnected":s("vuuDisconnectedStatus");break;default:break}},[o]);let i=Ms.default.createElement(t,{...n,className:(0,Em.default)("vuuStatus vuuIcon",r,e)});return(0,yr.jsx)(yr.Fragment,{children:(0,yr.jsxs)("div",{className:"vuuStatus-container salt-theme",children:[i,(0,yr.jsxs)("div",{className:"vuuStatus-text",children:["Status: ",o.toUpperCase()]})]})})};var Mm=require("@salt-ds/lab"),Pm=require("react"),Dm=U(require("classnames")),Im=require("react/jsx-runtime"),wk="vuuDensitySwitch",Tk=["high","medium","low","touch"],kk="high",Ek=({className:o,defaultDensity:e=kk,onChange:t})=>{let n=(0,Pm.useCallback)((s,i)=>{t(i)},[t]),r=(0,Dm.default)(wk,o);return(0,Im.jsx)(Mm.Dropdown,{className:r,source:Tk,defaultSelected:e,onSelectionChange:n})};var Cr=U(require("react")),Nm=require("@vuu-ui/vuu-layout");var Rm=U(require("react")),xr=require("react/jsx-runtime"),Ma=class extends Rm.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,xr.jsxs)(xr.Fragment,{children:[(0,xr.jsx)("h1",{children:"An error occured while creating component."}),(0,xr.jsx)("p",{children:this.state.errorMessage})]}):this.props.children}};var Lm=require("react/jsx-runtime"),Am=()=>(0,Lm.jsx)("div",{className:"hwLoader",children:"loading"});var Om=async o=>{let e=new CSSStyleSheet;return fetch(o).then(t=>t.text()).then(t=>e.replace(t))};var ol=require("react/jsx-runtime"),Pa=new Map,Mk=o=>{(0,Cr.useEffect)(()=>()=>{Pa.delete(o)},[o]),Pa.has(o)||Pa.set(o,Cr.default.lazy(()=>import(o)));let e=Pa.get(o);if(e)return e;throw Error(`Unable to load Lazy Feature at url ${o}`)};function Pk({url:o,css:e,ComponentProps:t,...n}){e&&Om(e).then(s=>{document.adoptedStyleSheets=[...document.adoptedStyleSheets,s]});let r=Mk(o);return(0,ol.jsx)(Ma,{url:o,children:(0,ol.jsx)(Cr.Suspense,{fallback:(0,ol.jsx)(Am,{}),children:(0,ol.jsx)(r,{...n,...t})})})}var rl=Cr.default.memo(Pk);rl.displayName="Feature";(0,Nm.registerComponent)("Feature",rl,"view");var Ko=require("react");var Hm=require("@vuu-ui/vuu-layout"),Fm=(o,e,t="latest")=>new Promise((n,r)=>{console.log(`load local config at ${o} for user ${e==null?void 0:e.username}, id ${t}`);let s=localStorage.getItem(o);if(s){let i=JSON.parse(s);n(i)}else r()}),Bm=(o,e,t)=>new Promise((n,r)=>{try{let s=(0,Hm.resolveJSONPath)(t,"#main-tabs.ACTIVE_CHILD");console.log(s),localStorage.setItem(o,JSON.stringify(t)),n(void 0)}catch{r()}});var Vm=(o,e,t="latest")=>new Promise((n,r)=>{if(e===void 0)throw Error("user mustb be provided to load remote config");fetch(`${o}/${e.username}/${t}`,{}).then(s=>{s.ok?n(s.json()):r(void 0)}).catch(()=>{r(void 0)})}),$m=(o,e,t)=>new Promise((n,r)=>{if(e===void 0)throw Error("user mustb be provided to load remote config");fetch(`${o}/${e.username}`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(t)}).then(s=>{s.ok?n(void 0):r()})});var Dk={type:"Placeholder"},Sd=({saveLocation:o,saveUrl:e="api/vui",user:t,defaultLayout:n=Dk})=>{let[r,s]=(0,Ko.useState)(n),i=o==="remote",l=i?Vm:Fm,a=i?$m:Bm,c=(0,Ko.useCallback)(async(f="latest")=>{try{let h=await l(e,t,f);s(h)}catch{s(n)}},[n,l,e,t]);(0,Ko.useEffect)(()=>{c()},[c]);let u=(0,Ko.useCallback)(f=>{a(e,t,f)},[a,e,t]),d=(0,Ko.useCallback)(f=>c(f),[c]);return[r,u,d]};var hr=require("react"),yt=require("@salt-ds/core");var hy=require("@vuu-ui/vuu-layout"),py=require("@salt-ds/core"),zs=require("react");var Ps=require("react"),Wm=require("react/jsx-runtime"),Km=(0,Ps.createContext)(void 0);function Da({children:o,collectionHook:e,...t}){return(0,Wm.jsx)(Km.Provider,{value:e,children:Object.keys(t).length>0?(0,Ps.cloneElement)(o,t):o})}function zm(){let o=(0,Ps.useContext)(Km);if(o)return o}var Ik=o=>Object.prototype.toString.call(o)==="[object Object]";function an(o){return typeof o=="string"?o:Ik(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(`
2
- `)),""):String(o)}var zo=require("react");var Gm=["width"],_m=["height"],vr=new Map,Qm=(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 Um=new ResizeObserver(o=>{for(let e of o){let{target:t,borderBoxSize:n,contentBoxSize:r}=e,s=vr.get(t);if(s){let[{blockSize:i,inlineSize:l}]=n,[{blockSize:a,inlineSize:c}]=r,{onResize:u,measurements:d}=s,f=!1;for(let[h,p]of Object.entries(d)){let m=Qm(t,{height:i,width:l,contentHeight:a,contentWidth:c},h);m!==p&&(f=!0,d[h]=m)}f&&u&&u(d)}}});function uo(o,e,t,n=!1){let r=(0,zo.useRef)(e),s=o.current,i=(0,zo.useCallback)(l=>{let{width:a,height:c}=l.getBoundingClientRect(),{clientWidth:u,clientHeight:d}=l;return r.current.reduce((f,h)=>(f[h]=Qm(l,{width:a,height:c,contentHeight:d,contentWidth:u},h),f),{})},[]);(0,zo.useLayoutEffect)(()=>{async function l(){vr.set(s,{measurements:{}}),await document.fonts.ready;let a=vr.get(s);if(a){let c=i(s);a.measurements=c,Um.observe(s),n&&t(c)}else console.log("%cuseResizeObserver an target expected to be under observation wa snot found. This warrants investigation","font-weight:bold; color:red;")}return s&&(vr.has(s)&&console.log("useResizeObserver attemping to observe same element twice",{target:s}),l()),()=>{s&&vr.has(s)&&(Um.unobserve(s),vr.delete(s))}},[i,s]),(0,zo.useEffect)(()=>{let l=o.current,a=vr.get(l);if(a){if(r.current!==e){r.current=e;let c=i(l);a.measurements=c}a.onResize=t}},[e,i,o,t])}var qm=o=>o==="none";var Wo=o=>Array.isArray(o)?o.length>0:o!=null,jm=o=>Array.isArray(o)?o[0]:o;var Ce=require("react");var Ds=require("react");var Xm=o=>null;var Jm=o=>null;var wd=(o,e)=>o!==null&&Object.prototype.hasOwnProperty.call(o,e),Td=o=>wd(o,"header"),Ym=o=>wd(o,"childNodes"),sl=(o,e)=>o&&Object.prototype.hasOwnProperty.call(o.props,e),Zm=o=>{if((0,Ds.isValidElement)(o)){if(sl(o,"disabled"))return o.props.disabled===!0}else if(wd(o,"disabled"))return o.disabled===!0;return!1},eg=o=>(0,Ds.isValidElement)(o)&&sl(o,"focusable")?o.props.focusable:!0,tg=(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},Rk=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},ng=o=>o.type===Jm||sl(o,"data-header"),og=o=>o.type===Xm||sl(o,"data-group"),Ak=o=>sl(o,"selectable")?o.props.selectable===!0:!og(o)&&!ng(o),Lk=o=>{if(og(o)){let{props:{children:e}}=o;if(typeof e!="string")return Ed(e)}},Ok=(o,e)=>{let t=[];return Ds.Children.forEach(o,n=>{(0,Ds.isValidElement)(n)&&t.push(e(n))}),t},kd=(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:kd(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:an(t)}});if(o)throw Error("list-child-items expects source to be an array")},Ed=o=>{if(o)return Ok(o,e=>{let{"data-id":t,disabled:n,id:r=t,"data-expanded":s,expanded:i=s}=e.props;return{childNodes:Lk(e),disabled:n,expanded:i,header:ng(e),id:r,label:Rk(e),selectable:Ak(e),value:e}})},Nk=new Set(["/","-","."]),Hk=o=>Nk.has(o),rg=(o,e)=>e.startsWith(o)&&Hk(e[o.length]),Fk=new Set([".","/"]);function Bk(o,e){return e.startsWith(o)?Fk.has(e.charAt(o.length)):!1}function Ia(o,e,t){let n;return o.map(s=>s.id===e?{...s,...t}:Bk(s.id,e)&&s.childNodes?(n=Ia(s.childNodes,e,t),{...s,childNodes:n}):s)}var Vk=/[.*+?^${}()|[\]\\]/g;function Ra(o){return o.replace(Vk,"\\$&")}var Aa=(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 $k=o=>o&&o.replace(/^\s+/g,""),Md=o=>new RegExp(`(${Ra($k(o))})`,"gi"),sg=(o="",e=Md)=>(t="")=>!!t.length&&!!o.length&&t.match(e(o))!==null;function La(o,e){return Array.isArray(o)?o.includes(e.id):o===e.id}var cn=require("react");function Pd({controlled:o,default:e,name:t,state:n="value"}){let{current:r}=(0,cn.useRef)(o!==void 0),[s,i]=(0,cn.useState)(e),l=o!==void 0?o:s,{current:a}=(0,cn.useRef)(e);(0,cn.useEffect)(()=>{},[n,t,o]),(0,cn.useEffect)(()=>{},[JSON.stringify(e,Kk)]);let c=(0,cn.useCallback)(u=>{r||i(u)},[r]);return[l,c,r]}function Kk(o,e){return(0,cn.isValidElement)(e)?null:e}var zk={},Uo=({children:o,id:e,options:t=zk,source:n})=>{var A;let{getItemId:r}=t,[,s]=(0,Ce.useState)(null),i=zm(),l=(0,Ce.useRef)([]),a=(0,Ce.useRef)([]),c=(0,Ce.useMemo)(()=>[],[]),u=(0,Ce.useRef)((A=t.filterPattern)!=null?A:""),{getFilterRegex:d=Md,noChildrenLabel:f,itemToString:h=an}=t,p=(0,Ce.useCallback)(()=>t.defaultExpanded||!1,[t.defaultExpanded]),m=(0,Ce.useCallback)((D,I,F=1,N="",V=[],K=[],_=[])=>(D.forEach((q,J,G)=>{var ut,Le;let Z=q.header&&t.collapsibleHeaders,ue=q.childNodes&&t.collapsibleHeaders===!1,le=!q.childNodes||q.childNodes.length===0,Ve=ue||le&&!Z,xe=N?`${N}.${J}`:`item-${J}`,Oe=(ut=q.id)!=null?ut:r?r(J):`${e}-${xe}`,ke=Ve?void 0:(Le=q.expanded)!=null?Le:p(),Ae={...q,childNodes:void 0,count:!ue&&ke===void 0?0:tg(q,G,J),description:q.description,disabled:Zm(q.value),focusable:eg(q.value)?void 0:!1,id:Oe,index:I.value,expanded:ke,level:F};if(V.push(Ae),K.push(Ae),_.push(D[J].value),I.value+=1,q.childNodes){let[st]=m(q.childNodes,I,F+1,xe,[],K,_);Ae.childNodes=st}}),[V,_,K]),[t.collapsibleHeaders,r,e,p]),g=(0,Ce.useCallback)(()=>u.current?sg(u.current,d):null,[d]),y=(0,Ce.useCallback)((D,I=g(),F=[],N={value:0})=>{let V=!1;for(let K of D)V&&!Td(K)||(K.value!==null&&(I===null||I(h(K.value)))&&(F[N.value]=K,N.value+=1),V=!1,Td(K)&&K.expanded===!1?V=!0:Ym(K)&&K.expanded!==!1&&K.childNodes&&y(K.childNodes,I,F,N));return F},[g,h]),E=(0,Ce.useMemo)(()=>i?c:kd(n,{itemToString:h,noChildrenLabel:f})||Ed(o)||[],[i,c,n,h,f,o]),[v,x,C]=(0,Ce.useMemo)(()=>i?[c,c,c]:m(E,{value:0}),[c,m,i,E]);a.current=C,(0,Ce.useMemo)(()=>i?c:l.current=y(v),[c,y,v,i]);let b=(0,Ce.useRef)(v),S=(0,Ce.useCallback)((D="")=>{typeof D=="string"&&(u.current=D,l.current=y(v),s({}))},[v,y]),M=(0,Ce.useCallback)((D,I=v)=>{let F=I.find(N=>{var V;return N.id===D||((V=N==null?void 0:N.childNodes)==null?void 0:V.length)&&rg(N.id,D)});if((F==null?void 0:F.id)===D)return x==null?void 0:x[F.index];if(F)return M(D,F.childNodes);throw Error(`useCollectionData itemById, id ${D} not found `)},[x,v]),w=(0,Ce.useCallback)(D=>{let I=a.current.find(F=>(0,Ce.isValidElement)(F.value)?F.label===D:F.value===D);if(I)return I;throw Error("useCollectionData toCollectionItem, item not found ")},[]),k=(0,Ce.useCallback)(D=>{if(D===null)return null;if(Array.isArray(D)){let I=[];for(let F of D){let N=w(F);I.push(N)}return I}else if(D!==void 0)return w(D)},[w]),L=(0,Ce.useCallback)(D=>{if(D===void 0)return;let I=k(D);return Array.isArray(I)?I.map(F=>F.id):I?I.id:null},[k]),T=(0,Ce.useCallback)(D=>{let I=F=>{let N=a.current.find(V=>(0,Ce.isValidElement)(V.value)?V.label===F:V.value!==null&&h(V.value)===F);if(N)return N};if(D===null)return null;if(Array.isArray(D)){let F=[];for(let N of D){let V=I(N);V&&F.push(V)}return F}else if(D!==void 0)return I(D)},[h]),P=(0,Ce.useCallback)(D=>{for(let I of b.current)if(D===I.value)return I.id;throw Error("useCollectionData itemToId, item not found")},[]),R=(0,Ce.useCallback)(D=>{b.current=Ia(b.current,D.id,{expanded:!1}),l.current=y(b.current),s({})},[y]),O=(0,Ce.useCallback)(D=>{b.current=Ia(b.current,D.id,{expanded:!0}),l.current=y(b.current),s({})},[y]);return i||{collapseGroupItem:R,data:l.current,expandGroupItem:O,setFilterPattern:S,itemById:M,itemToId:P,toCollectionItem:w,itemToCollectionItem:k,itemToCollectionItemId:L,stringToCollectionItem:T}};var Wd=U(require("classnames")),Jg=require("@salt-ds/core"),mo=require("react");var Oa=require("@salt-ds/core"),un=require("react");var il=require("react"),Wk=[],ig=({popperRef:o,rootRef:e,isOpen:t,onClose:n})=>{let r=(0,il.useRef)(t);(0,il.useEffect)(()=>{r.current=t},[t]),(0,il.useEffect)(()=>{let[s,i]=t?[l=>{var c,u;let a=l.target;!((c=o.current)!=null&&c.contains(a))&&!((u=e.current)!=null&&u.contains(a))&&n()},l=>{l.key==="Escape"&&r.current&&(n(),l.stopPropagation())}]:Wk;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 Uk=[],lg=({defaultIsOpen:o,disabled:e,fullWidth:t,id:n,isOpen:r,onOpenChange:s,onKeyDown:i,openKeys:l=["Enter","ArrowDown"," "],openOnFocus:a,popupComponent:c,popupWidth:u,rootRef:d,width:f})=>{var O;let h=(0,un.useRef)(null),p=(0,un.useRef)(null),m=(0,un.useCallback)(A=>{p.current=A},[]),[g,y]=(0,Oa.useControlled)({controlled:r,default:!!o,name:"useDropdown",state:"isOpen"}),[E,v]=(0,un.useState)({width:(O=u!=null?u:f)!=null?O:0}),x=(0,un.useCallback)(()=>{y(!0),s==null||s(!0)},[s,y]),C=(0,un.useCallback)(()=>{y(!1),s==null||s(!1)},[s,y]);ig({popperRef:p,rootRef:d,isOpen:g,onClose:C});let b=(0,un.useCallback)(()=>{e||a&&(y(!0),s==null||s(!0),h.current=window.setTimeout(()=>{h.current=null},1e3))},[e,s,a,y]),S=(0,un.useCallback)(A=>{if(["Enter"," "].indexOf(A.key)===-1){let D=!g;y(D),s==null||s(D)}},[g,y,s]),M=(0,un.useCallback)(A=>{(A.key==="Tab"||A.key==="Escape")&&g?(A.key==="Escape"&&(A.stopPropagation(),A.preventDefault()),C()):l.includes(A.key)&&!g?(A.preventDefault(),x()):i==null||i(A)},[C,g,i,l,x]),w=t!=null?t:!1;uo(d,w?Gm:Uk,v,w);let L=`${n}-dropdown`,T={"aria-expanded":g,"aria-owns":g?L:void 0,id:`${n}-control`,onClick:e||a?void 0:S,onFocus:b,role:"listbox",onKeyDown:e?void 0:M,style:{width:w?void 0:f}},P={id:L,width:E.width},R=(0,Oa.useForkRef)(m,p);return{componentProps:P,popupComponentRef:R,isOpen:g,label:"Dropdown Button",triggerProps:T}};var Yg=require("@vuu-ui/vuu-layout");var Qk=require("@salt-ds/lab"),hg=require("@salt-ds/core"),qk=U(require("classnames")),Dd=require("react");var ll=require("react"),dg=U(require("react-dom"));var ag=U(require("react-dom")),cg=U(require("classnames")),Gk=1,_k=({className:o,dataMode:e,x:t=0,y:n=0,win:r=window})=>{let s=r.document.createElement("div");return s.className=(0,cg.default)(`vuuPopup ${Gk++}`,o),s.style.cssText=`left:${t}px; top:${n}px;`,e&&(s.dataset.mode=e),r.document.body.appendChild(s),s},ug=o=>_k(o),Na=(o,e,t,n,r)=>{e.style.cssText=`left:${t}px; top:${n}px;position: absolute;`,ag.render(o,e,r)};var fg=U(require("classnames")),al=function({children:e,x:t=0,y:n=0,onRender:r}){let[s,i,l]=Ft(),a=(0,ll.useMemo)(()=>ug({className:(0,fg.default)(s,i),dataMode:l}),[l,i,s]);return(0,ll.useLayoutEffect)(()=>{Na(e,a,t,n,r)},[e,r,a,t,n]),(0,ll.useLayoutEffect)(()=>()=>{var c;a&&(dg.unmountComponentAtNode(a),a.classList.contains("vuuPopup")&&((c=a.parentElement)==null||c.removeChild(a)))},[a]),null};var pg=require("react/jsx-runtime");var wr=require("react");var ho=U(require("react")),Ad=U(require("classnames")),Tg=require("@vuu-ui/vuu-layout");var jt=require("react");var mg=o=>o.closest("[data-root='true']")!==null,gg=(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 jk(o,...e){let t=new Set(o);for(let n of e)for(let r of n)t.add(r);return t}var Xk="Enter";var Jk="Delete",Yk=new Set([Xk,Jk]),Zk=new Set(["Tab"]),eE=new Set(["ArrowRight","ArrowLeft"]),bg=new Set(["Home","End","ArrowDown","ArrowUp"]),yg=new Set(["Home","End","ArrowRight","ArrowLeft"]),tE=new Set(["F1","F2","F3","F4","F5","F6","F7","F8","F9","F10","F11","F12"]),SH=jk(Yk,yg,bg,eE,tE,Zk);var xg=({key:o},e="vertical")=>(e==="vertical"?bg:yg).has(o);var Ha=require("@vuu-ui/vuu-utils"),Cg=({autoHighlightFirstItem:o=!1,count:e,defaultHighlightedIdx:t,highlightedIndex:n,onActivate:r,onHighlight:s,onCloseMenu:i,onOpenMenu:l})=>{var x;if((0,Ha.isValidNumber)(n)&&(0,Ha.isValidNumber)(t))throw Error("useKeyboardNavigation do not pass values for both highlightedIndex and defaultHighlightedIdx");let a=(0,Ha.isValidNumber)(n),c=(0,jt.useRef)((x=t!=null?t:n)!=null?x:o?0:-1),[,u]=(0,jt.useState)(null),d=(0,jt.useCallback)(C=>{c.current=C,s==null||s(C),u({})},[s]),f=(0,jt.useCallback)(C=>{C!==c.current&&(a||d(C))},[a,d]),h=(0,jt.useRef)(!0),p=(0,jt.useRef)(!1),m=C=>p.current=C,g=a?n:c.current,y=(0,jt.useCallback)(C=>{let b=nE(e,C.key,c.current);b!==c.current&&f(b)},[e,f]),E=(0,jt.useCallback)(C=>{if(xg(C))C.preventDefault(),C.stopPropagation(),h.current=!0,y(C);else if((C.key==="ArrowRight"||C.key==="Enter")&&gg(C.target,g)){let S=C.target.querySelector(`:scope > [data-idx='${g}']`);S&&(l==null||l(S))}else C.key==="ArrowLeft"&&!mg(C.target)?i(g):C.key==="Enter"?(C.preventDefault(),C.stopPropagation(),r&&r(g)):C.key==="Tab"&&i(-1)},[g,y,r,i,l]),v=(0,jt.useMemo)(()=>({onFocus:()=>{g===-1&&d(0)},onKeyDown:E,onMouseDownCapture:()=>{h.current=!1,m(!0)},onMouseMove:()=>{h.current&&(h.current=!1)},onMouseLeave:()=>{h.current=!0,m(!1),f(-1)}}),[E,g,d,f]);return{focusVisible:h.current?g:-1,controlledHighlighting:a,highlightedIndex:g,setHighlightedIndex:f,listProps:v,setIgnoreFocus:m}};function nE(o,e,t){return e==="ArrowUp"?t>0?t-1:t:t===null?0:t===o-1?t:t+1}var Sr=U(require("react"));var Id=o=>o.type===Fa||!!o.props["data-group"],oE=o=>{if(Array.isArray(o)&&Rd(o[0]))return o[0]},rE=(o,e,t,n=!1)=>{let{props:{children:r}}=o;return{childWithId:Sr.default.cloneElement(o,{hasSeparator:n,id:`${e}`,key:e,children:t?oE(r):r}),grandChildren:t?r:void 0}},vg=(o,e)=>{let t=(0,Sr.useCallback)(()=>{let s=(i,l=e,a={},c={})=>{let u=a[l]=[],d=0,f=!1;return Sr.default.Children.forEach(i,h=>{if(!Rd(h))if(h.type===Sg)f=!0;else{let p=Id(h),m=`${l}-${d}`,{props:{action:g,options:y}}=h,{childWithId:E,grandChildren:v}=rE(h,m,p,f);u.push(E),v?s(v,m,a,c):c[m]={action:g,options:y},d+=1,f=!1}}),[a,c]};return s(o)},[e,o]),[n,r]=(0,Sr.useMemo)(()=>t(),[t]);return[n,r]};var fo=require("react/jsx-runtime"),wg="vuuMenuList",Sg=()=>(0,fo.jsx)("li",{className:"vuuMenuItem-divider"}),Fa=()=>null,Ba=({children:o,idx:e,...t})=>(0,fo.jsx)("div",{...t,children:o}),kg=({children:o})=>(0,fo.jsx)(fo.Fragment,{children:o});kg.displayName="MenuItemLabel";Ba.Label=kg;var sE=o=>ho.default.isValidElement(o)&&typeof o.type!="string"&&"displayName"in o.type?o.type.displayName:void 0,Rd=o=>sE(o)==="MenuItemLabel",iE=o=>o.props["data-icon"],Ld=({activatedByKeyboard:o,childMenuShowing:e,children:t,className:n,defaultHighlightedIdx:r,highlightedIdx:s,id:i,isRoot:l,listItemProps:a,onHighlightMenuItem:c,onActivate:u,onCloseMenu:d,onOpenMenu:f,...h})=>{let p=(0,Tg.useId)(i),m=(0,ho.useRef)(null),g=(0,ho.useMemo)(()=>new Map,[]),y=M=>{var k;let w=(k=m.current)==null?void 0:k.querySelector(`:scope > [data-idx='${M}']`);w!=null&&w.id&&(u==null||u(w.id))},{focusVisible:E,highlightedIndex:v,listProps:x}=Cg({count:ho.default.Children.count(t),defaultHighlightedIdx:r,highlightedIndex:s,onActivate:y,onHighlight:c,onOpenMenu:f,onCloseMenu:d}),C=e==null?E:-1;(0,ho.useLayoutEffect)(()=>{var M;e===void 0&&o&&((M=m.current)==null||M.focus())},[o,e]);let b=()=>v===void 0||v===-1?void 0:g.get(v);function S(){let M={...a,role:"menuitem"},w=(T,P,R)=>P?[(0,fo.jsx)("span",{className:"vuuIconContainer","data-icon":R},"icon")].concat(T):T;function k(T,P,R,O){var G;let{children:A,className:D,"data-icon":I,id:F,hasSeparator:N,label:V,...K}=P.props,_=Id(P),q=_&&e===F,J=q?`${p}-${F}`:void 0;T.push((0,fo.jsx)(Ba,{...K,...M,...lE(F,R,(G=P.key)!=null?G:F,v,C,D,N),"aria-controls":J,"aria-haspopup":_||void 0,"aria-expanded":q||void 0,children:w(_&&V!=null?V:A,O,I)}))}let L=[];if(t.length>0){let T=t.some(iE);t.forEach((P,R)=>{k(L,P,R,T)})}return L}return(0,fo.jsx)("div",{...h,...x,"aria-activedescendant":b(),className:(0,Ad.default)(wg,n,{[`${wg}-childMenuShowing`]:e!==void 0}),"data-root":l||void 0,id:p,ref:m,role:"menu",children:S()})},lE=(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,Ad.default)("vuuMenuItem",s,{"vuuMenuItem-separator":i,focusVisible:r===e})});Ld.displayName="MenuList";var We=require("react");var Od=o=>o==null?void 0:o.closest("[data-idx],[aria-posinset]");var Mg=(o,e,t)=>o.map((n,r)=>r===o.length-1?{...n,[t]:n[t]-e}:n),aE=(o,e)=>Mg(o,e,"left"),cE=(o,e)=>Mg(o,e,"top"),uE=(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)},dE=(o,e)=>{let[{left:t,top:n}]=e.slice(-1),{offsetWidth:r,offsetTop:s}=o;return{left:t+r,top:s+n}},Pg=(o,e)=>{let t=o.lastIndexOf("-");return t>-1?o.slice(9,t):e},fE=o=>o.slice(9),Eg=({ariaExpanded:o,ariaHasPopup:e,id:t},n)=>{if(t.startsWith("menuitem"))return{hostMenuId:Pg(t,n),targetMenuId:fE(t),menuItemId:t,isGroup:e==="true",isOpen:o==="true"};throw Error(`getMenuItemDetails #${t} is not a menuitem`)},Dg=({id:o,onActivate:e,onMouseEnterItem:t,position:{x:n,y:r}})=>{let[,s]=(0,We.useState)({}),i=(0,We.useRef)([{id:o,left:n,top:r}]),l=(0,We.useCallback)(b=>i.current.findIndex(S=>S.id===b)!==-1,[]),a=(0,We.useCallback)(b=>{let S=f.current[b];if(S===void 0)throw Error(`getOpenMenuState no entry for menu ${b}`);return S},[]),c=(0,We.useCallback)(b=>{i.current=b,s({})},[]),u=(0,We.useRef)(),d=(0,We.useRef)(),f=(0,We.useRef)({[o]:"no-popup"}),h=(0,We.useCallback)((b=o,S,M=null)=>{if(b===o&&M===null)c([{id:o,left:n,top:r}]);else{f.current[b]="popup-open";let w=document.getElementById(M);if(w!==null){let{left:k,top:L}=dE(w,i.current);c(i.current.concat({id:S,left:k,top:L}))}else throw Error(`openMenu no menuItem ${M}`)}},[o,n,r,c]),p=(0,We.useCallback)(b=>{if(b===o)c([]);else{let S=i.current.slice(),M=S.pop();f.current[M.id]="no-popup";let w=S.at(-1);w&&(f.current[w.id]="no-popup"),c(S)}},[o,c]),m=(0,We.useCallback)(b=>{let S=i.current.slice(),M=b.slice(9),{id:w}=S.at(-1);for(;S.length>1&&!M.startsWith(w);){let k=Pg(w,o);S.pop(),f.current[w]="no-popup",f.current[k]="no-popup",{id:w}=S[S.length-1]}S.length<i.current.length&&c(S)},[o,c]),g=(0,We.useCallback)(()=>{u.current&&(clearTimeout(u.current),u.current=void 0)},[]),y=(0,We.useCallback)((b,S,M)=>{g(),u.current=window.setTimeout(()=>{m(M),f.current[b]="popup-open",f.current[S]="no-popup",h(b,S,M)},400)},[g,m,h]),E=(0,We.useCallback)((b,S,M)=>{f.current[S]="pending-close",d.current=window.setTimeout(()=>{m(M)},400)},[m]),v=(0,We.useCallback)(()=>{let{current:b}=i,[S]=b.slice(-1),M=document.getElementById(S.id);if(M){let{right:w,bottom:k}=M.getBoundingClientRect(),{clientHeight:L,clientWidth:T}=document.body;if(w>T){let P=b.length>1?uE(o,b):aE(b,w-T);c(P)}else if(k>L){let P=cE(b,k-L);c(P)}typeof M.tabIndex=="number"&&M.focus()}else console.log(`no element found with if ${S.id}`)},[o,c]),x=(0,We.useCallback)(b=>{let{hostMenuId:S,targetMenuId:M,menuItemId:w,isGroup:k,isOpen:L}=Eg(b,o),{current:{[S]:T}}=f;if(T==="no-popup"&&k)f.current[S]="popup-pending",y(S,M,w);else if(T==="popup-pending"&&!k)f.current[S]="no-popup",clearTimeout(u.current),u.current=void 0;else if(T==="popup-pending"&&k)clearTimeout(u.current),y(S,M,w);else if(T==="popup-open")if(l(M)){let P=a(M);switch(m(w),P){case"pending-close":clearTimeout(d.current),d.current=void 0,f.current[M]="no-popup",g();break;default:}}else{let[P,R]=i.current.slice(-2);P.id===S&&f.current[R.id]!=="pending-close"?(E(S,R.id,w),k&&!L&&y(S,M,w)):P.id===S&&k&&w!==R.id&&f.current[R.id]==="pending-close"||k?y(S,M,w):f.current[R.id]!=="pending-close"&&m(w)}T==="pending-close"&&(g(),clearTimeout(d.current),d.current=void 0,f.current[S]="popup-open")},[g,m,a,l,o,E,y]),C=(0,We.useMemo)(()=>({onMouseEnter:b=>{let S=Od(b.target);x(S),t(b,S.id)},onClick:b=>{let S=Od(b.target),{isGroup:M,menuItemId:w}=Eg(S,o);M?x(S):e(w)}}),[e,t,o,x]);return{closeMenu:p,handleRender:v,listItemProps:C,openMenu:x,openMenus:i.current}};var Ig=require("@vuu-ui/vuu-layout");var cl=require("react/jsx-runtime"),Rg=require("react"),hE=()=>{},Nd=({activatedByKeyboard:o,children:e,className:t,id:n,onClose:r=()=>{},position:s={x:0,y:0},style:i,...l})=>{let a=(0,wr.useRef)(r);a.current=r;let c=(0,Ig.useId)(n),u=(0,wr.useRef)(hE),[d,f]=vg(e,c),h=(0,wr.useRef)(o),p=(0,wr.useCallback)(()=>{h.current=!1},[]),m=(0,wr.useCallback)(w=>{let k=w.slice(9),{action:L,options:T}=f[k];u.current(c),r({type:"menu-action",menuId:L,options:T})},[f,c,r]),{closeMenu:g,listItemProps:y,openMenu:E,openMenus:v,handleRender:x}=Dg({id:`${c}`,onActivate:m,onMouseEnterItem:p,position:s});u.current=g;let C=()=>{h.current=!0,g()},b=()=>{},S=v.length-1,M=w=>{if(!(w>=S)){let{id:k}=v[w+1];return k}};return(0,cl.jsx)(cl.Fragment,{children:v.map(({id:w,left:k,top:L},T,P)=>{let R=M(T);return(0,cl.jsx)(al,{x:k,y:L,onRender:x,children:(0,Rg.createElement)(Ld,{...l,activatedByKeyboard:h.current,childMenuShowing:R,className:t,id:w,isRoot:T===0,key:T,listItemProps:y,onActivate:m,onHighlightMenuItem:b,onCloseMenu:C,onOpenMenu:E,style:i,tabIndex:T===P.length-1?0:void 0},d[w])},T)})})};Nd.displayName="ContextMenu";var Is=require("react"),Va=require("react/jsx-runtime"),$a=(0,Is.createContext)(null),pE=({children:o,context:e,menuActionHandler:t,menuBuilder:n})=>{let r=(0,Is.useMemo)(()=>e!=null&&e.menuBuilders&&n?e.menuBuilders.concat(n):n?[n]:(e==null?void 0:e.menuBuilders)||[],[e,n]),s=(0,Is.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,Va.jsx)($a.Provider,{value:{menuActionHandler:s,menuBuilders:r},children:o})},Hd=({children:o,label:e,menuActionHandler:t,menuBuilder:n})=>(0,Va.jsx)($a.Consumer,{children:r=>(0,Va.jsx)(pE,{context:r,label:e,menuActionHandler:t,menuBuilder:n,children:o})});var Kg=require("@vuu-ui/vuu-utils"),zg=U(require("classnames")),Go=require("react");var Ag=U(require("classnames")),Rs=U(require("react")),Ka=U(require("react-dom"));var Fd=!1,dn=[],Lg=o=>(o==null?void 0:o.type)==="menu-action",Og=o=>(o==null?void 0:o.type)==="click-away";function Ng(o){if(o.key==="Esc"){if(dn.length)Fg();else if(Fd){let e=document.body.querySelector(".vuuDialog");e&&Ka.default.unmountComponentAtNode(e)}}}function Hg(o){if(dn.length){let e=document.body.querySelectorAll(".vuuPopup");for(let t=0;t<e.length;t++)if(e[t].contains(o.target))return;Fg({mouseEvt:o,type:"click-away"})}}function Fg(o){if(dn.length===1)Ze.hidePopup(o,"anon","all");else if(dn.length){let e=document.body.querySelectorAll(".vuuPopup");for(let t=0;t<e.length;t++)Ka.default.unmountComponentAtNode(e[t]);Bg("*")}}function mE(o){dn.indexOf(o)===-1&&(dn.push(o),Fd===!1&&(window.addEventListener("keydown",Ng,!0),window.addEventListener("click",Hg,!0)))}function Bg(o){if(dn.length){if(o==="*")dn.length=0;else{let e=dn.indexOf(o);e!==-1&&dn.splice(e,1)}dn.length===0&&Fd===!1&&(window.removeEventListener("keydown",Ng,!0),window.removeEventListener("click",Hg,!0))}}var gE=({children:o,position:e,style:t})=>{let n=(0,Ag.default)("hwPopup","hwPopupContainer",e);return(0,Rs.createElement)("div",{className:n,style:t},o)},bE=1,Ze=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"?Ze.onClose=a.props.onClose:Ze.onClose=void 0,mE(t),document.addEventListener("keydown",Ze.escapeKeyListener,!0);let c=document.body.querySelector(".vuuPopup."+e);c===null&&(c=document.createElement("div"),c.className="vuuPopup "+e,document.body.appendChild(c));let u={width:l};Na((0,Rs.createElement)(gE,{key:bE++,position:r,style:u},a),c,n,i,()=>{Ze.keepWithinThePage(c,s)})}static escapeKeyListener(e){e.key==="Escape"&&Ze.hidePopup({type:"escape",event:e})}static hidePopup(e,t="anon",n="all"){var r;if(dn.indexOf(t)!==-1){Bg(t);let s=document.body.querySelector(`.vuuPopup.${n}`);s&&Ka.default.unmountComponentAtNode(s)}document.removeEventListener("keydown",Ze.escapeKeyListener,!0),(r=Ze==null?void 0:Ze.onClose)==null||r.call(Ze,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(),c=window.innerWidth,d=window.innerHeight-(r+l);d<0&&(n.style.top=Math.round(r)+d+"px");let f=c-(s+i);if(f<0&&(n.style.left=Math.round(s)+f+"px"),typeof t=="number"&&t!==a){let h=t-a;n.style.left=s+h+"px"}}}};var Vg=U(require("classnames"));var za=require("react"),yE=(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")}},Bd=({anchorElement:o,offsetLeft:e=0,offsetTop:t=0,placement:n})=>{let[r,s]=(0,za.useState)();return(0,za.useLayoutEffect)(()=>{if(o.current){let i=yE(o.current,n,e,t);s(i)}},[o,e,t,n]),r};var $g=require("react/jsx-runtime"),Vd=({children:o,className:e,anchorElement:t,placement:n})=>{let[r,s,i]=Ft(),l=Bd({anchorElement:t,placement:n});return l===void 0?null:(0,$g.jsx)("div",{className:(0,Vg.default)("vuuPortal",e,r,s),"data-mode":i,style:l,children:o})};var Wa=require("react/jsx-runtime"),po=(o,e)=>{let t=(0,Go.useContext)($a),[n,r,s]=Ft(),i=(0,Go.useCallback)((c,u,d)=>{let f=[];for(let h of c)f=f.concat(h(u,d));return f},[]),l=(0,Go.useCallback)((c,u,{ContextMenuProps:d,contextMenu:f,...h})=>{var m,g;if((m=c.stopPropagation)==null||m.call(c),(g=c.preventDefault)==null||g.call(c),f)return CE({x:c.clientX,y:c.clientY},f);let p=[];if(o&&p.push(o),t&&Array.isArray(t==null?void 0:t.menuBuilders)&&t.menuBuilders.length>0&&p.push(...t.menuBuilders),p.length>0){let y=i(p,u,h),E=v=>(e==null?void 0:e(v))===!0?!0:t==null?void 0:t.menuActionHandler(v);y.length&&E&&vE(c,y,E,{...d,className:(0,zg.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,Go.useCallback)(()=>{console.log("hide comnytext menu")},[]);return[l,a]},xE={},CE=(o,e)=>{Ze.showPopup({focus:!0,left:0,top:0,component:(0,Go.cloneElement)(e,{position:o})})},vE=(o,e,t,{position:n,...r}=xE)=>{let s=c=>{let u=(d,f)=>(0,Kg.isGroupMenuItemDescriptor)(d)?(0,Wa.jsx)(Fa,{label:d.label,children:d.children.map(u)},f):(0,Wa.jsx)(Ba,{action:d.action,className:d.className,"data-icon":d.icon,options:d.options,children:d.label},f);return c.map(u)},i=c=>{var u;Lg(c)&&(t(c),Ze.hidePopup()),(u=r==null?void 0:r.onClose)==null||u.call(r,c)},l=n!=null?n:{x:o.clientX,y:o.clientY},a=(0,Wa.jsx)(Nd,{...r,className:"vuuContextMenu",onClose:i,position:l,children:s(e)});Ze.showPopup({left:0,top:0,component:a,focus:!0})};var _o=require("react");var Wg=U(require("classnames")),Ug=require("@salt-ds/core"),Gg=require("@vuu-ui/vuu-layout");var _g=require("react/jsx-runtime"),$d="vuuPopupMenu",SE=o=>{if(o){let{bottom:e,left:t}=o.getBoundingClientRect();return{x:t,y:e+6}}},Kd=({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:c=0,...u})=>{let d=(0,_o.useRef)(null),f=(0,_o.useRef)(!1),[h,p]=(0,_o.useState)(!1),m=(0,Gg.useId)(n),[g]=po(s,r),y=(0,_o.useCallback)(v=>{p(!1),Og(v)?v.mouseEvt.target===d.current&&(f.current=!0):requestAnimationFrame(()=>{var x;a==null||a(v),c!==-1&&((x=d.current)==null||x.focus())})},[a,c]),E=(0,_o.useCallback)(v=>{f.current?f.current=!1:(p(!0),g(v,i,{ContextMenuProps:{className:"vuuPopupMenuList",id:`${m}-menu`,onClose:y,position:SE(d.current)},...l}))},[y,m,i,l,g]);return(0,_g.jsx)(Ug.Button,{...u,"aria-controls":`${m}-menu-root`,"aria-expanded":h,"aria-haspopup":"menu",className:(0,Wg.default)($d,o,{[`${$d}-withCaption`]:e!==void 0,[`${$d}-open`]:h}),"data-icon":t,id:m,onClick:E,ref:d,tabIndex:c,variant:"secondary",children:e})};var As=require("react"),Qg=require("react-dom");function wE(o){return typeof o=="function"?o():o}var TE="vuu-portal-root",Ua=({children:o,container:e=document.body,id:t=TE,open:n=!0})=>{var d;let[r,s]=(0,As.useState)(!1),i=(0,As.useRef)(null),l=(d=wE(e))!=null?d:document.body,[a,c,u]=Ft();return(0,As.useLayoutEffect)(()=>{let f=document.getElementById(t);f?i.current=f:(i.current=document.createElement("div"),i.current.id=t);let h=i.current;l.contains(h)||l.appendChild(h),h.classList.add(a,c),h.dataset.mode=u,s(!0)},[t,l,a,c,u]),n&&r&&i.current&&o?(0,Qg.createPortal)(o,i.current):null};var kE=require("@salt-ds/core"),EE=U(require("classnames")),qg=require("react");var jg=require("react/jsx-runtime");var uF={current:document.body};var Xg=require("react");var ME=require("react/jsx-runtime");var zd=require("react"),PE=require("@vuu-ui/vuu-layout");var ul=require("react/jsx-runtime"),Ga="vuuDropdown",_a=(0,mo.forwardRef)(function({"aria-labelledby":e,children:t,className:n,defaultIsOpen:r,disabled:s,fullWidth:i,id:l,isOpen:a,onKeyDown:c,onOpenChange:u,openKeys:d,openOnFocus:f,placement:h="below",popupWidth:p,width:m,...g},y){let E=(0,mo.useRef)(null),v=(0,Wd.default)(Ga,n,{[`${Ga}-fullWidth`]:i,[`${Ga}-disabled`]:s}),[x,C]=mo.Children.toArray(t),b=(0,Yg.useId)(l),{componentProps:S,isOpen:M,popupComponentRef:w,triggerProps:k}=lg({ariaLabelledBy:e,defaultIsOpen:r,disabled:s,fullWidth:i,id:b,isOpen:a,onOpenChange:u,onKeyDown:c,openKeys:d,openOnFocus:f,popupComponent:C,popupWidth:p,rootRef:E,width:m}),L=()=>{let{id:R,role:O,...A}=k,{id:D=R,role:I=O,...F}=x.props;return(0,mo.cloneElement)(x,Aa(F,{...A,id:D,role:I}))},T=()=>{let{id:R,width:O,...A}=S,{className:D,id:I=R,width:F,...N}=C.props;return(0,mo.cloneElement)(C,{...N,...A,className:(0,Wd.default)(D,`${Ga}-popup-component`),id:I,ref:w,width:F!=null?F:O})},P=(0,Jg.useForkRef)(E,y);return(0,ul.jsxs)("div",{...g,className:v,id:l,ref:P,children:[L(),M&&(0,ul.jsx)(Ua,{children:(0,ul.jsx)(Vd,{anchorElement:E,placement:h,children:T()})})]})});var Zg=require("@salt-ds/core"),eb=U(require("classnames")),tb=require("react");var Ls=require("react/jsx-runtime"),dl="vuuDropdownButton",nb=(0,tb.forwardRef)(function({ariaHideOptionRole:e,className:t,disabled:n,icon:r="chevron-down",isOpen:s,label:i,labelId:l,fullWidth:a,posInSet:c,setSize:u,labelAriaAttributes:d,...f},h){return(0,Ls.jsx)(Zg.Button,{className:(0,eb.default)(dl,{[`${dl}-fullWidth`]:a},t),disabled:n,variant:"secondary",...f,ref:h,children:(0,Ls.jsxs)("div",{className:`${dl}-content`,children:[(0,Ls.jsx)("span",{"aria-hidden":e?"true":void 0,...d,className:`${dl}-buttonLabel`,id:l,role:"option",children:i}),(0,Ls.jsx)("span",{className:`${dl}-buttonIcon`,"data-icon":r,"aria-hidden":"true"})]})})});var iy=require("@salt-ds/core"),bo=require("react"),ly=require("@vuu-ui/vuu-layout");function DE(o,...e){let t=new Set(o);for(let n of e)for(let r of n)t.add(r);return t}var fl="ArrowUp",hl="ArrowDown",ob="ArrowLeft",rb="ArrowRight",Ud="Enter";var Qa="Home",pl="End",Gd="PageUp",qa="PageDown",sb=" ",IE=new Set(["Enter","Delete"," "]),RE=new Set(["Tab"]),AE=new Set(["ArrowRight","ArrowLeft"]),ib=new Set([Qa,pl,Gd,qa,hl,fl]),LE=new Set(["F1","F2","F3","F4","F5","F6","F7","F8","F9","F10","F11","F12"]),OE=DE(IE,ib,AE,LE,RE),ja=o=>OE.has(o.key)?!1:o.key.length===1&&!o.ctrlKey&&!o.metaKey&&!o.altKey,lb=({key:o})=>ib.has(o);var _d=require("react");var NE={},HE=o=>Array.isArray(o.childNodes),FE=o=>!0,BE=o=>o.closest("[data-toggle],[aria-expanded]").dataset.toggle==="true",ab=({collapsibleHeaders:o,collectionHook:e,highlightedIdx:t,onToggle:n})=>{let r=(0,_d.useCallback)(l=>{if(l.key===rb||l.key===Ud){let a=e.data[t];a&&a.expanded===!1&&a.value&&(l.preventDefault(),e.expandGroupItem(a),n==null||n(a.value))}if(l.key===ob||l.key===Ud){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,_d.useCallback)(l=>{console.log(`useCollapsibleGroups idx=${t}`);let a=e.data[t];console.log(l.target,l.currentTarget),a&&HE(a)&&(!FE(a)||BE(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:NE};function VE(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 $E=o=>o.closest("[data-index],[aria-posinset]");var cb=o=>VE($E(o));var Xa=require("react"),KE={scrollToIndex:()=>{},scrollToItem:()=>{},scrollTo:()=>{}},Ja=({collectionHook:o,forwardedRef:e,scrollableRef:t,scrollIntoView:n})=>{let r=(0,Xa.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,Xa.useImperativeHandle)(e,()=>t.current?r:KE,[r,t])};var fb=require("@salt-ds/core"),It=require("react");var Ya=require("@vuu-ui/vuu-utils"),qd=-2;function ub(o,e,t){return e===fl||e===pl?t>0?t-1:t:t===null?0:t===o-1?t:t+1}var Qd=(o,e)=>{let t=jm(e);return t?o.indexOf(t):-1},zE=(o,e,t,n)=>o===pl?n:o===Qa?-1:e!==-1?e:t,WE=(o,e,t,n)=>{let{top:r}=e.getBoundingClientRect(),{scrollTop:s,clientHeight:i,scrollHeight:l}=o,a=t-1,c=Math.min(s+i,l-i);if(c!==s&&n<a){o.scrollTo(0,c);let u=n,d;do u+=1,d=(0,Ya.getElementByDataIndex)(o,u,!0).getBoundingClientRect();while(d.top<r&&u<a);return u}},UE=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,c;do a-=1,c=(0,Ya.getElementByDataIndex)(o,a,!0).getBoundingClientRect();while(c.top>n&&a>0);l(a)})})},GE=o=>!o.header&&!o.childNodes,db=o=>GE(o)||o.expanded!==void 0,hb=({containerRef:o,defaultHighlightedIndex:e=-1,disableHighlightOnFocus:t,highlightedIndex:n,indexPositions:r,itemCount:s,onHighlight:i,onKeyboardNavigation:l,restoreLastFocus:a,selected:c,viewportItemCount:u})=>{let d=(0,It.useRef)(-1),[,f]=(0,It.useState)({}),[h,p,m]=(0,fb.useControlled)({controlled:n,default:e,name:"UseKeyboardNavigation"}),g=(0,It.useCallback)((k,L=!1)=>{i==null||i(k),p(k),L&&(d.current=k)},[i,p]),y=(0,It.useCallback)(async(k,L)=>{let T=(0,Ya.getElementByDataIndex)(o.current,L,!0),P;if(T){let{current:R}=o;T&&R&&(P=k===qa?WE(R,T,s,L):await UE(R,T,L))}return P!=null?P:L},[o,s]),E=(0,It.useCallback)((k=hl,L=k===hl?-1:s)=>{if(s===0)return-1;{let T=Qd(r,c),P=zE(k,L,T,s),R=ub(s,k,P);if(R===0&&k===fl&&!db(r[0]))return L;for(;((k===hl||k===Qa)&&R<s||(k===fl||k===pl)&&R>0)&&!db(r[R]);)R=ub(s,k,R);return R}},[r,s,c]),v=(0,It.useRef)(!1),x=(0,It.useRef)(!1),C=k=>x.current=k,b=(0,It.useCallback)(()=>{if(x.current)x.current=!1;else if(v.current=!0,r.length===0)g(qd);else if(h!==-1)f({});else if(a)if(d.current!==-1)g(d.current);else{let k=Qd(r,c);g(k!==-1?k:0)}else if(Wo(c)){let k=Qd(r,c);g(k)}else t!==!0&&g(E())},[t,h,r,E,a,c,g]),S=(0,It.useCallback)(async k=>{let L=k.key===qa||k.key===Gd?await y(k.key,h):E(k.key,h);L!==h&&g(L,!0),l==null||l(k,L)},[h,E,y,l,g]),M=(0,It.useCallback)(k=>{s>0&&lb(k)?(k.preventDefault(),k.stopPropagation(),v.current=!0,S(k)):ja(k)&&(v.current=!0)},[s,S]),w=(0,It.useMemo)(()=>({onBlur:k=>{let L=k.target.closest(".vuuList"),T=k.relatedTarget;L&&!(L!=null&&L.contains(T))&&(v.current=!1,p(-1),a||(d.current=-1))},onFocus:b,onKeyDown:M,onMouseDownCapture:()=>{v.current=!1,C(!0)},onMouseMove:()=>{v.current&&(v.current=!1)},onMouseLeave:()=>{v.current=!1,C(!1),g(-1)}}),[b,M,a,p,g]);return{focusVisible:v.current?h:-1,controlledHighlighting:m,highlightedIndex:h,setHighlightedIndex:g,keyboardNavigation:v,containerProps:w,setIgnoreFocus:C}};var Pn=require("@vuu-ui/vuu-utils"),Xt=require("react");var _E={},QE=["Enter"," "];var pb=({containerRef:o,defaultSelected:e,disableSelection:t=!1,highlightedIdx:n,itemQuery:r,onSelect:s,onSelectionChange:i,selected:l,selectionStrategy:a,selectionKeys:c=QE,tabToSelect:u})=>{let d=a==="deselectable",f=a==="multiple",h=a==="extended",p=(0,Xt.useRef)(-1),m=(0,Xt.useCallback)(T=>c.includes(T.key),[c]),g=(0,Xt.useCallback)(()=>f||h?[]:null,[f,h]),[y,E]=Pd({controlled:l,default:e!=null?e:g(),name:"UseSelection",state:"selected"}),v=(0,Xt.useCallback)(T=>Array.isArray(y)?y.includes(T):y===T,[y]),x=(0,Xt.useCallback)(T=>v(T)?null:T,[v]),C=(0,Xt.useCallback)(T=>{let P=v(T)?y.filter(R=>R!==T):y.concat(T);return P.sort(),P},[v,y]),b=(0,Xt.useCallback)((T,P)=>{let R=P?y:[],[O]=y.slice(-1),A=O?(0,Pn.getElementDataIndex)(document.getElementById(O)):0,D=Math.min(T,A),I=Math.max(T,A),F=o.current,V=Array.from(F.querySelectorAll(r)).slice(D,I+1).map(_=>_.id),K=[...new Set([...R,...V])];return K.sort(),K},[o,r,y]),S=(0,Xt.useCallback)((T,P,R,O)=>{let{current:A}=o,{id:D}=(0,Pn.getElementByDataIndex)(A,P,!0),I;f?I=C(D):h?O&&!R?I=C(D):R?I=b(P,O):I=[D]:d?I=x(D):I=D,I!==y&&E(I),s==null||s(T,D),I!==y&&i&&i(T,I)},[o,f,h,d,y,s,C,b,x,E,i]),M=(0,Xt.useCallback)(T=>{let{current:P}=o,R=(0,Pn.getElementByDataIndex)(P,n);(0,Pn.isSelectableElement)(R)&&(m(T)||u&&T.key==="Tab")&&(T.key!=="Tab"&&T.preventDefault(),S(T,n,!1,T.ctrlKey||T.metaKey),h&&(p.current=n))},[n,o,m,u,S,h]),w=(0,Xt.useCallback)((T,P)=>{if(h&&T.shiftKey){let{current:R}=o,O=(0,Pn.getElementByDataIndex)(R,P);(0,Pn.isSelectableElement)(O)&&S(T,P,!0)}},[h,o,S]),k=(0,Xt.useCallback)(T=>{let{current:P}=o,R=(0,Pn.getElementByDataIndex)(P,n);!t&&(0,Pn.isSelectableElement)(R)&&(T.preventDefault(),T.stopPropagation(),S(T,n,T.shiftKey,T.ctrlKey||T.metaKey),h&&(p.current=n))},[o,n,t,S,h]);return{listHandlers:qm(a)?_E:{onClick:k,onKeyDown:M,onKeyboardNavigation:w},selected:y,setSelected:E}};var Tr=require("react");var mb=({disableTypeToSelect:o,highlightedIdx:e,highlightItemAtIndex:t,typeToNavigate:n,items:r,applyIncrementalSearch:s=!0})=>{let i=(0,Tr.useRef)(null),l=(0,Tr.useRef)(""),a=(0,Tr.useRef)(-1),c=(0,Tr.useCallback)(d=>{if(d||!s){let f=new RegExp(`^${l.current}`,"i"),h=r.findIndex(({label:p},m)=>m>a.current&&f.test(p));h===-1&&(h=r.findIndex(({label:p},m)=>m<=a.current&&f.test(p))),h!==-1&&t(h)}else l.current="",i.current=null,a.current=-1},[s,t,r]),u=(0,Tr.useCallback)(d=>{let f=a.current!==-1;(ja(d)||f&&d.key===sb)&&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&&c(!0),i.current=window.setTimeout(()=>{c()},100))},[n,s,e,c]);return{onKeyDown:o?void 0:u}};var zn=require("react");var xb=require("@salt-ds/core"),gb=["height"],qE=["height","scrollHeight"],jE=[],bb={containerOnly:[qE,jE],withContent:[gb,gb]},XE=o=>o?bb.containerOnly:bb.withContent,yb={current:null},JE=(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}}},Cb=({containerRef:o,contentRef:e=yb,highlightedIdx:t=-1,indexPositions:n,stickyHeaders:r=!1})=>{let s=(0,zn.useRef)(!1),i=(0,zn.useRef)({height:0,contentHeight:0}),l=(0,zn.useCallback)(m=>{s.current=!0,o.current&&(o.current.scrollTop=m),setTimeout(()=>{s.current=!1})},[]),a=(0,zn.useCallback)(()=>l(0),[l]),c=(0,zn.useCallback)(()=>{l(i.current.contentHeight-i.current.height)},[l]),u=(0,zn.useCallback)(m=>{let g=e.current||o.current;if(m.id){let y=document.getElementById(m.id);if(y&&o.current){let{height:E}=i.current,v=y.ariaExpanded&&y.firstChild?y.firstChild:y,x=r?36:0,C=JE(v,g),b=v.offsetHeight,{scrollTop:S}=o.current,M=S+x,w=M+E-x;if(C+b>w||C<M){let k=C+b>w?S+(C+b)-w:C-x;l(k)}}}},[o,e,l,r]);(0,xb.useIsomorphicLayoutEffect)(()=>{let{height:m,contentHeight:g}=i.current,y=n[t];if(g>m&&y){let[E]=n,[v]=n.slice(-1);y===E?a():y===v?c():u(n[t])}},[t,n,u,c,a]);let d=(0,zn.useCallback)(({height:m,scrollHeight:g})=>{typeof m=="number"&&(i.current.height=m),typeof g=="number"&&(i.current.contentHeight=g)},[]),f=(0,zn.useCallback)(({height:m})=>{typeof m=="number"&&(i.current.contentHeight=m)},[]),[h,p]=XE(e===yb);return uo(o,h,d,!0),uo(e,p,f,!0),{isScrolling:s,scrollIntoView:u}};var vb=require("@salt-ds/core");var Os=require("react/jsx-runtime"),YE=(0,vb.makePrefixer)("saltHighlighter"),Sb=o=>{let{matchPattern:e,text:t=""}=o,n=typeof e=="string"?new RegExp(`(${Ra(e)})`,"gi"):e;return n===void 0?(0,Os.jsx)(Os.Fragment,{children:t}):(0,Os.jsx)("span",{children:t.split(n).map((r,s)=>r.match(n)?(0,Os.jsx)("strong",{className:YE("highlight"),children:r},`${s}-${r}`):r)})};var jd=require("react"),Xd=U(require("classnames"));var Tb=U(require("classnames"));var kb=require("react/jsx-runtime"),wb="vuuCheckboxIcon",Za=({checked:o=!1,...e})=>(0,kb.jsx)("span",{...e,className:(0,Tb.default)(wb,{[`${wb}-checked`]:o})});var kr=require("react/jsx-runtime"),ml="vuuListItem",ec=(0,jd.forwardRef)(function({height:e,...t},n){return(0,kr.jsx)("div",{...t,"aria-hidden":!0,className:(0,Xd.default)(ml,`${ml}-proxy`),ref:n,style:{height:e}})}),Ns=(0,jd.forwardRef)(function({children:e,className:t,disabled:n,tabIndex:r,item:s,itemHeight:i,itemTextHighlightPattern:l,label:a,selectable:c,selected:u,showCheckbox:d,style:f,...h},p){let m=(0,Xd.default)(ml,t,{vuuDisabled:n,[`${ml}-checkbox`]:d}),g=i!==void 0?{...f,height:i}:f;return(0,kr.jsxs)("div",{className:m,...h,"aria-disabled":n||void 0,"aria-selected":u||void 0,ref:p,style:g,children:[d&&(0,kr.jsx)(Za,{"aria-hidden":!0,checked:u}),e&&typeof e!="string"?e:l==null?(0,kr.jsx)("span",{className:`${ml}-textWrapper`,children:a||e}):(0,kr.jsx)(Sb,{matchPattern:l,text:a||e})]})});var ac=require("@vuu-ui/vuu-layout"),qb=require("@salt-ds/core"),lc=U(require("classnames")),Vt=require("react");var Gb=require("@vuu-ui/vuu-layout"),dt=require("react");var Hs=require("react");var ZE=require("@vuu-ui/vuu-utils"),Eb=require("react");var oM=require("react/jsx-runtime"),eM={isDragSource:!1,isDropTarget:!1,register:()=>{}},tM=()=>console.log("have you forgotten to provide a DragDrop Provider ?"),nM=(0,Hs.createContext)({registerDragDropParty:tM});var Mb=o=>{var i,l;let{dragSources:e,dropTargets:t,onDragOut:n,onEndOfDragOperation:r,registerDragDropParty:s}=(0,Hs.useContext)(nM);if(o){let a=(i=e==null?void 0:e.has(o))!=null?i:!1,c=(l=t==null?void 0:t.has(o))!=null?l:!1;return{isDragSource:a,isDropTarget:c,onDragOut:n,onEndOfDragOperation:r,register:s}}else return eM};var tc=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 et=require("react");var Dn=require("react");var rM=["left","right"],sM=["top","bottom"],nc=":not(.wrapped)",Pb=':not([aria-hidden="true"])',Db=o=>{let e=o.cloneNode(!0);return e.removeAttribute("id"),e.dataset.index="-1",e},iM=(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),[c,u]=e==="width"?rM:sM,d=l&&!t?0:parseInt(a.getPropertyValue(`margin-${c}`),10),f=i&&!t?0:parseInt(a.getPropertyValue(`margin-${u}`),10),h=r;if(parseInt(a.getPropertyValue("flex-shrink"),10)>0){let m=parseInt(a.getPropertyValue("flex-basis"),10);!isNaN(m)&&m>0&&(h=m)}return[s,d+h+f]},lM={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"}},Bt=o=>lM[o],Ib=(o,e)=>{let t=o.find(n=>n.id===e);if(t)return t},Rb=(o,e)=>{o.splice(e,1);for(let t=e;t<o.length;t++)o[t].currentIndex-=1},Fs=(o,e,t,n,r)=>{let s=[],{DIMENSION:i}=Bt(e),l=Array.from(t?o.querySelectorAll(t):o.children),a=l.length,c=typeof(n==null?void 0:n.from)=="number"?n.atEnd?Math.max(0,n.from-1):n.from:0,u=typeof(n==null?void 0:n.to)=="number"?Math.min(n.to+2,a-1):a-1;for(let d=c;d<=u;d++){let f=l[d],[h,p]=iM(f,i),m=d===a-1,g=f.id;s.push({currentIndex:d,id:g,index:d,isDraggedItem:r===g,isLast:m,isOverflowIndicator:f.dataset.index==="overflow",element:f,start:h,end:h+p,size:p,mid:h+p/2})}return s},Bs=(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},Jd=(o,e)=>{let t=Bs(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,c={...r,start:l,mid:Math.floor(l+(a-l)/2),end:a},u=r.start,d=r.end+i,f={...s,start:u,mid:Math.floor(u+(d-u)/2),end:d};o.splice(t,2,f,c)}else{let l=s.start,a=s.end-i,c={...r,start:l,mid:Math.floor(l+(a-l)/2),end:a},u=r.start-i,d=r.end,f={...s,start:u,mid:Math.floor(u+(d-u)/2),end:d};o.splice(n,2,c,f)}},Er=(o,e,t,n)=>{let r=o.length,s=Bs(o),i=o[s];if(n==="fwd"){let l=Math.round(e+t);for(let a=r-1;a>=0;a--){let c=o[a];if(l>c.mid)return i&&a<s?i:c}}else{let l=Math.round(e);for(let a=0;a<r;a++){let c=o[a];if(l<c.mid)return a>s?i:c}}throw Error("no dropTraget identified")};function Ab(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 Yd=o=>o.map((e,t)=>{var n;return`
3
- ${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 Lb=require("@salt-ds/core"),Ob=U(require("classnames")),oc=require("react");var Zd=require("react/jsx-runtime"),aM=o=>o.split(" ").map(e=>`vuuDraggable-${e}`),rc=(0,oc.forwardRef)(function({wrapperClassName:e,element:t,onTransitionEnd:n,style:r,scale:s=1},i){let l=(0,oc.useCallback)(c=>{c&&(c.innerHTML="",c.appendChild(t),s!==1&&(c.style.transform=`scale(${s},${s})`))},[t,s]),a=(0,Lb.useForkRef)(i,l);return(0,Zd.jsx)(al,{children:(0,Zd.jsx)("div",{className:(0,Ob.default)("vuuDraggable",...aM(e)),ref:a,onTransitionEnd:n,style:r})})}),ef=o=>{let e=document.createElement("div");return e.className="vuuDraggable-spacer",o&&e.addEventListener("transitionend",()=>{o.current=!1}),e},Nb=()=>{let o=document.createElement("div");return o.className="vuuDraggable-dropIndicatorPosition",o},Hb=o=>{let e=document.createElement("div");return e.className="vuuDraggable-dropIndicator",o&&e.addEventListener("transitionend",()=>{o.current=!1}),e};var Fb=(o="horizontal")=>{let e=(0,Dn.useRef)(0),t=(0,Dn.useRef)(!1),n=(0,Dn.useMemo)(()=>[ef(t),ef()],[]),r=(0,Dn.useCallback)((c,u="width")=>{let[d,f]=n;e.current=requestAnimationFrame(()=>{t.current=!0,d.style.cssText=`${u}: 0px`,f.style.cssText=`${u}: ${c}px`,n[0]=f,n[1]=d})},[n]),s=(0,Dn.useCallback)((c=!1)=>{if(c===!0){let[u]=n,d=()=>{u.removeEventListener("transitionend",d),s()},f=o==="horizontal"?"width":"height";u.addEventListener("transitionend",d),r(0,f)}else n.forEach(u=>u.remove())},[r,o,n]),i=(0,Dn.useCallback)(()=>{e.current&&(cancelAnimationFrame(e.current),e.current=0)},[]),l=(0,Dn.useCallback)((c,u,d,f=!1,h="static")=>{if(u){let p=o==="horizontal"?"width":"height",[m,g]=n;if(i(),f)t.current?(s(),m.style.cssText=`${p}: ${d}px`,g.style.cssText=`${p}: 0px`,h==="fwd"?(u.element.before(m),u.element.after(g)):(u.element.after(m),u.element.before(g))):h==="fwd"?u.element.after(g):u.element.before(g),r(d,p);else if(h==="static")m.style.cssText=`${p}: ${d}px`,u.element.before(m);else throw Error("useDragDisplacers currently only supports noTransition for static displacement");h!=="static"&&Jd(c,h)}},[r,i,s,o,n]),a=(0,Dn.useCallback)((c,u,d,f=!1,h="static")=>{let p=o==="horizontal"?"width":"height",[m,g]=n;i(),f?(t.current?(s(),m.style.cssText=`${p}: ${d}px`,g.style.cssText=`${p}: 0px`,u.element.before(m),u.element.after(g)):h==="fwd"?u.element.after(g):u.element.before(g),r(d,p)):(m.style.cssText=`${p}: ${d}px`,u.element.after(m)),h!=="static"&&Jd(c,h)},[r,i,s,o,n]);return{displaceItem:l,displaceLastItem:a,clearSpacers:s}};var tf=require("@vuu-ui/vuu-utils");var Bb=({onDrop:o,orientation:e="horizontal",containerRef:t,itemQuery:n="*",selected:r,viewportRange:s})=>{let i=(0,et.useRef)(),l=(0,et.useRef)(!1),a=(0,et.useRef)(-1),c=(0,et.useRef)([]),u=(0,et.useRef)(!1),[d,f]=(0,et.useState)(!1),{clearSpacers:h,displaceItem:p,displaceLastItem:m}=Fb(e),g=(0,et.useRef)(),y=`:is(${n}${nc}${Pb},.vuuOverflowContainer-OverflowIndicator)`,E=T=>c.current.findIndex(P=>P.id===T.id),v=(0,et.useRef)();v.current=s;let x=(0,et.useCallback)(()=>{h()},[h]),C=(0,et.useCallback)((T,P,R)=>{let{current:O}=t,{current:A}=g;if(O&&A){c.current=Fs(O,e,y,v.current),T==="fwd"?c.current.push(A):c.current.unshift(A);let{size:D}=A,F=a.current+D/2,{current:N}=c,V=Er(N,F,D,"fwd");if(V){let _=E(V),q=N[_];R&&T==="fwd"?m(N,N[N.length-1],D,!1,"static"):p(N,q,D,!0,"static")}}},[t,p,m,y,e]),b=(0,et.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 R=P.contains(T),{SCROLL_SIZE:O,CLIENT_SIZE:A}=Bt(e),{id:D}=T,{[O]:I,[A]:F}=P;l.current=I>F;let N=c.current=Fs(P,e,y,s,D);if(R){console.log(Yd(N));let V=Bs(N),K=N[V];K&&P&&(g.current=K,(K.isLast?m:p)(N,K,K.size,!1,"static"))}else{let{top:V,height:K}=T.getBoundingClientRect(),_=Er(N,V,K,"fwd"),q=N.indexOf(_),{start:J,end:G,mid:Z}=_;console.log(`nextDropTarget ${_.element.textContent}`);let ue=g.current={end:G,mid:Z,start:J,isDraggedItem:!0,isExternal:!0,size:K},le=N.indexOf(_);console.log({indexOfDropTarget:le}),N.splice(le,0,ue);for(let xe=q+1;xe<N.length;xe++){let Oe=N[xe];Oe.mid+=K,Oe.end+=K,Oe.start+=K}console.log(Yd(N)),(_.isLast?m:p)(N,_,_.size,!0,"static")}}},[t,p,m,y,e,r,s]),[S,M]=(0,et.useMemo)(()=>{let T=!1;return[O=>{if(!T){T=!0;let A=O.element.querySelector(".vuuPopupMenu");A&&(0,tf.dispatchMouseEvent)(A,"click")}},O=>{if(T){T=!1;let A=O.element.querySelector(".vuuPopupMenu");A&&(0,tf.dispatchMouseEvent)(A,"click")}}]},[]),w=(0,et.useCallback)((T,P)=>{let{current:R}=g;if(R&&t.current){a.current=T;let{current:O}=c,A=Er(O,T,R.size,P);if(A&&!A.isDraggedItem)if(A.isOverflowIndicator)f(u.current=!0),S(A);else{let{size:D}=R;(E(A)===O.length-1?m:p)(O,A,D,!0,P);let N=O.at(-1);M(N),f(u.current=!1)}i.current=P}},[t,p,m,M,S]),k=(0,et.useCallback)(()=>{var O;h();let{current:T}=c,P=Bs(T),R=T[P];if(R)if(i.current=void 0,u.current)o(R.index,-1,{fromIndex:R.index,toIndex:-1,isExternal:R.isExternal});else{let A=Bs(T,!0);o(R.index,A,{fromIndex:R.index,toIndex:A,isExternal:R.isExternal})}if(f(!1),t.current){let A=(O=t.current)==null?void 0:O.scrollTop;P<T.length&&(t.current.scrollTop=A)}},[h,t,o]),L=(0,et.useCallback)(()=>{h(!0)},[h]);return{beginDrag:b,drag:w,drop:k,handleScrollStart:x,handleScrollStop:C,releaseDrag:L,revealOverflowedItems:d}};var Ue=require("react");var gl=require("react");var Vb=()=>{let o=(0,gl.useMemo)(()=>Nb(),[]),e=(0,gl.useCallback)(()=>o.remove(),[o]);return{positionDropIndicator:(0,gl.useCallback)((n,r="end")=>(r==="end"?n.element.after(o):n.element.before(o),o),[o]),clearSpacer:e}};var Kb=require("react/jsx-runtime"),cM=':not([data-overflowed="true"])',uM=':not([aria-hidden="true"])',$b=({onDrop:o,orientation:e="horizontal",containerRef:t,itemQuery:n="*",selected:r,viewportRange:s})=>{let i=(0,Ue.useRef)(),l=(0,Ue.useRef)(null),a=(0,Ue.useRef)(null),c=(0,Ue.useRef)(""),u=(0,Ue.useRef)(!1),d=(0,Ue.useRef)(-1),f=(0,Ue.useRef)([]),h=(0,Ue.useRef)(!1),[p,m]=(0,Ue.useState)(!1),[g,y]=(0,Ue.useState)(),{clearSpacer:E,positionDropIndicator:v}=Vb(),x=(0,Ue.useRef)(),C=`:is(${n}${cM}${uM},[data-overflow-indicator])`,b=O=>f.current.findIndex(A=>A.id===O.id),S=(O,A,D)=>{O.start+=A,O.mid+=A,O.end+=A,typeof D=="number"&&(O.currentIndex+=D)},M=(0,Ue.useRef)();M.current=s;let w=(0,Ue.useCallback)(()=>{E()},[E]),k=(0,Ue.useCallback)((O,A,D)=>{let{current:I}=t,{current:F}=x;if(I&&F){f.current=Fs(I,e,C,M.current);let{size:N}=F,K=d.current+N/2,{current:_}=f,q=Er(_,K,N,"fwd");q&&v(D&&O==="fwd"?_[_.length-1]:q,"start")}},[t,v,C,e]),L=(0,Ue.useCallback)(O=>{O.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&&O){let{SCROLL_SIZE:D,CLIENT_SIZE:I}=Bt(e),{id:F}=O,{[D]:N,[I]:V}=A;u.current=N>V;let K=f.current=Fs(A,e,C,s),_=Ib(K,F);if(_&&A){let q=b(_);Rb(K,q),x.current=_;let{current:J}=M;if(J!=null&&J.atEnd)for(let ke=0;ke<K.length;ke++)S(K[ke],_.size);for(let ke=q;ke<K.length;ke++)S(K[ke],-_.size,-1);let[G,Z]=_.isLast?[K[K.length-1],"end"]:[K[q],"start"];a.current=G,c.current=Z;let ue=v(G,Z),{top:le,left:Ve,width:xe}=ue.getBoundingClientRect(),Oe={top:_.isLast?J!=null&&J.atEnd&&!J.atStart?le+_.size-2:le-2:le-_.size-2,left:Ve,width:xe,height:2};y((0,Kb.jsx)(rc,{wrapperClassName:"dropIndicatorContainer",style:Oe,ref:l,element:Hb()}))}}},[r,t,e,C,s,v]),T=(0,Ue.useCallback)((O,A)=>{let{current:D}=a,{current:I}=x;if(I&&t.current){let F=e==="horizontal"?"left":"top";d.current=O;let{current:N}=f,V=Er(N,O,I.size,A);if(V&&V.index!==(D==null?void 0:D.index)){if(V.isOverflowIndicator)m(h.current=!0);else if(l.current){if(b(V)===N.length-1){let _=N[N.length-1],J=v(_,"start").getBoundingClientRect();l.current.style[F]=`${J.top}px`}else{let q=v(V,"start").getBoundingClientRect();l.current.style[F]=`${q.top}px`}m(h.current=!1)}a.current=V,i.current=A}}},[t,e,v]),P=(0,Ue.useCallback)(()=>{E();let{current:O}=x,{current:A}=a,{current:D}=c,{current:I}=M;if(O&&I&&A){let{index:F}=O,N=D==="start",{index:V,currentIndex:K}=A;a.current=null,i.current=void 0,h.current?o(F,-1,{fromIndex:F,toIndex:-1}):F<V?o(F,N?K:K+1,{fromIndex:F,toIndex:N?K:K+1}):o(F,N?V:V+1,{fromIndex:F,toIndex:N?V:V+1}),y(void 0)}m(!1)},[E,o]),R=(0,Ue.useCallback)(()=>{},[]);return{beginDrag:L,drag:T,drop:P,dropIndicator:g,handleScrollStart:w,handleScrollStop:k,releaseDrag:R,revealOverflowedItems:p}};var pe=require("react");var Qo=require("react");var zb=({containerRef:o,onScrollingStopped:e,orientation:t="vertical"})=>{let n=(0,Qo.useRef)(null),r=(0,Qo.useRef)(!1),s=(0,Qo.useRef)(0),i=(0,Qo.useRef)("fwd"),l=(0,Qo.useCallback)((c=!1)=>{console.log("[useAutoScroll] stopScrolling"),n.current!==null&&(clearTimeout(n.current),n.current=null),r.current=!1,e==null||e(i.current,s.current,c)},[e]),a=(0,Qo.useCallback)((c,u,d=30)=>{let{current:f}=o;if(f){let{SCROLL_POS:h,SCROLL_SIZE:p,CLIENT_SIZE:m}=Bt(t),{[h]:g,[p]:y,[m]:E}=f,v=c==="fwd"?y-E-g:g,x=Math.min(v,d);c==="fwd"?(i.current="fwd",f[h]=s.current=g+x):(i.current="bwd",f[h]=s.current=g-x),x===v?l(!0):(r.current=!0,n.current=window.setTimeout(()=>{a(c,u,d)},100))}},[o,t,l]);return{isScrolling:r,startScrolling:a,stopScrolling:l}};var Ub=require("react/jsx-runtime"),dM={beginDrag:()=>{},drag:()=>{},draggableRef:{current:null},drop:()=>{},isDragging:!1,isScrolling:!1,handleScrollStart:()=>{},handleScrollStop:()=>{},revealOverflowedItems:!1},Wb={start:0,end:1e3,contraStart:0,contraEnd:1e3},fM=()=>dM,hM=3,pM=(o,e)=>o.closest(e),mM=o=>o.dataset.index==="overflow"&&o.parentElement!==null&&o.parentElement.classList.contains("overflowed"),gM=(o,e)=>{let t=`:is(${e}${nc},.vuuOverflowContainer-OverflowIndicator)`,r=Array.from(o.querySelectorAll(t)).pop();return[r,mM(r)]},Mr=({allowDragDrop:o,containerRef:e,draggableClassName:t,getDragPayload:n,id:r,itemQuery:s="*",onDragStart:i,onDrop:l,onDropSettle:a,orientation:c,...u})=>{let d=(0,pe.useRef)({start:0,end:0,contraStart:0,contraEnd:0}),[f,h]=(0,pe.useState)({draggable:void 0,draggedItemIndex:-1,isDragging:!1}),p=(0,pe.useRef)(null),m=(0,pe.useRef)(null),g=(0,pe.useRef)(!1),y=(0,pe.useRef)({x:0,y:0}),E=(0,pe.useRef)({x:0,y:0}),v=(0,pe.useRef)(null),x=(0,pe.useRef)(-1),C=(0,pe.useRef)(-1),b=(0,pe.useRef)(),{isDragSource:S,isDropTarget:M,onDragOut:w,onEndOfDragOperation:k,register:L}=Mb(r),T=(0,pe.useRef)(),P=(0,pe.useRef)(),R=(0,pe.useCallback)(()=>{let{current:j}=T,{current:te}=P;j&&te&&(document.addEventListener("mousemove",j,!1),document.addEventListener("mouseup",te,!1))},[]),O=(0,pe.useCallback)(()=>{let{current:j}=T,{current:te}=P;j&&te&&(document.removeEventListener("mousemove",j,!1),document.removeEventListener("mouseup",te,!1))},[]),A=(0,pe.useCallback)((j,te)=>{let{current:oe}=e;if(oe){let[ce,we]=gM(oe,s),{CONTRA:$e,CONTRA_END:ve,DIMENSION:X,END:ee,START:ne}=Bt(c),de=te[X],{[ne]:Ke,[ee]:lt}=ce.getBoundingClientRect();d.current.start=j[ne],d.current.end=we?Math.max(Ke,j.right-de):g.current?j[ne]+j[X]-de:lt-de,d.current.contraStart=j[$e],d.current.contraEnd=j[ve]}},[e,s,c]),D=(0,pe.useCallback)(()=>{var oe;let{current:j}=C,te=(oe=e.current)==null?void 0:oe.querySelector(`${s}[data-index="${j}"]`);te&&te.classList.remove("vuuDropTarget-settling"),C.current=-1,a==null||a(j),h(ce=>({...ce,draggable:void 0}))},[e,s,a]),I=(0,pe.useCallback)(j=>{if(e.current&&p.current){let{mouseOffset:te}=p.current,{POS:oe,SCROLL_POS:ce,SCROLL_SIZE:we,CLIENT_SIZE:$e}=Bt(c),{[ce]:ve,[we]:X,[$e]:ee}=e.current,ne=X-ee,de=ve<ne,Ke=d.current.end,lt=ve>0&&j-te[oe]<=d.current.start,H=de&&j-te[oe]>=Ke;return lt?"bwd":H?"fwd":""}},[e,c]),F=o===!0||o==="natural-movement"?Bb:o==="drop-indicator"?$b:fM,N=(0,pe.useCallback)((j,te,oe)=>{var ce;(ce=b.current)==null||ce.call(b,j,te,oe)},[]),{isScrolling:V,startScrolling:K,stopScrolling:_}=zb({containerRef:e,onScrollingStopped:N,orientation:c}),q=(0,pe.useCallback)((j,te,oe)=>{var ce;x.current=te,oe.isExternal?l==null||l(j,te,{...oe,payload:(ce=p.current)==null?void 0:ce.payload}):l==null||l(j,te,oe),C.current=te,r&&(k==null||k(r)),p.current=null},[r,l,k]),{beginDrag:J,drag:G,drop:Z,handleScrollStart:ue,handleScrollStop:le,releaseDrag:Ve,...xe}=F({...u,containerRef:e,isDragSource:S,isDropTarget:M,itemQuery:s,onDrop:q,orientation:c});b.current=le;let Oe=(0,pe.useCallback)((j,te)=>{let{CONTRA_POS:oe}=Bt(c),ce=y.current[oe],we=S?Math.abs(ce-te):0;if(p.current&&we-j>5)return w!=null&&w(r,p.current)&&(O(),Ve==null||Ve(),p.current=null),d.current=Wb,!0},[r,S,w,c,Ve,O]),ke=(0,pe.useCallback)(j=>{let{CLIENT_POS:te,CONTRA_CLIENT_POS:oe,POS:ce}=Bt(c),{clientX:we,clientY:$e}=j,{[te]:ve,[oe]:X}=j,ee=y.current[ce],ne=Math.abs(ee-ve),{current:de}=p;if(Oe(ne,X)){console.log("drag handed over to provider");return}if(y.current.x=we,y.current.y=$e,de){let{draggableElement:Ke,mouseOffset:lt}=de;if(d.current===Wb&&Ke){let H=y.current.x-lt.x,z=y.current.y-lt.y;Ke.style.top=`${z}px`,Ke.style.left=`${H}px`}else if(ne>0&&Ke){let H=ee<ve?"fwd":"bwd",z=I(ve),ae=y.current[ce]-lt[ce];if(z&&g.current&&!V.current?(ue(),K(z,1)):!z&&V.current&&_(),!V.current){let Me=Math.round(Math.max(d.current.start,Math.min(d.current.end,ae))),Ht=c==="horizontal"?"left":"top";Ke.style[Ht]=`${Me}px`,G(Me,H)}}}},[G,I,ue,r,S,V,w,c,K,_]),Ae=(0,pe.useCallback)(()=>{O(),p.current&&(v.current=p.current.draggableElement),Z(),h(j=>({...j,draggedItemIndex:-1,isDragging:!1}))},[Z,O]);T.current=ke,P.current=Ae;let ut=(0,pe.useCallback)(j=>{p.current=j;let{draggableElement:te,mouseOffset:oe,initialDragElement:ce}=j,{current:we}=e;if(console.log({container:we,draggableElement:te,initialDragElement:ce}),we&&te){let $e=we.getBoundingClientRect(),ve=te.getBoundingClientRect();return A($e,ve),y.current.x=ve.left+oe.x,y.current.y=ve.top+oe.y,J(te),R(),!0}else return!1},[R,J,e,A]),Le=(0,pe.useCallback)(j=>{let{target:te}=j,oe=pM(te,s),{current:ce}=e;if(ce&&oe){let{SCROLL_SIZE:we,CLIENT_SIZE:$e}=Bt(c),{[we]:ve,[$e]:X}=ce;g.current=ve>X;let ee=ce.getBoundingClientRect(),ne=oe.getBoundingClientRect(),de=p.current=new tc(j,oe);A(ee,ne),J(oe);let{dataset:{index:Ke="-1"}}=oe;h({isDragging:!0,draggable:(0,Ub.jsx)(rc,{element:Db(oe),onTransitionEnd:D,ref:de.setDraggable,style:Ab(ne,ee),wrapperClassName:t}),draggedItemIndex:parseInt(Ke)}),i==null||i(de),R()}},[R,J,e,t,s,i,c,A,D]),st=(0,pe.useCallback)(j=>{let{CLIENT_POS:te,POS:oe}=Bt(c),{[te]:ce}=j;Math.abs(ce-E.current[oe])>hM&&e.current&&(m.current&&(window.clearTimeout(m.current),m.current=null),document.removeEventListener("mousemove",st),document.removeEventListener("mouseup",Dt,!1),Le(j))},[e,J,c]),Dt=(0,pe.useCallback)(()=>{m.current&&(window.clearTimeout(m.current),m.current=null),document.removeEventListener("mousemove",st,!1),document.removeEventListener("mouseup",Dt,!1)},[st]),Ee=(0,pe.useCallback)(j=>{let{current:te}=e;if(j.stopPropagation(),te&&!j.defaultPrevented){let{clientX:oe,clientY:ce}=j;y.current.x=E.current.x=oe,y.current.y=E.current.y=ce,document.addEventListener("mousemove",st,!1),document.addEventListener("mouseup",Dt,!1),j.persist(),m.current=window.setTimeout(()=>{document.removeEventListener("mousemove",st,!1),document.removeEventListener("mouseup",Dt,!1),Le(j.nativeEvent)},500)}},[e,Le,st,Dt]),{current:it}=v;return(0,pe.useLayoutEffect)(()=>{if(it&&e.current){let j=x.current,te=e.current.querySelector(`${s}[data-index="${j}"]`);te?(te.classList.add("vuuDropTarget-settling"),requestAnimationFrame(()=>{let{top:oe,left:ce}=te.getBoundingClientRect(),{top:we,left:$e}=it.getBoundingClientRect();$e!==ce||we!==oe?(it.classList.add("vuuDraggable-settling"),it.style.top=`${oe}px`,it.style.left=`${ce}px`):D()})):console.log(`dont have the dropped item (at ${j})`),v.current=null}},[e,s,it,D]),(0,pe.useEffect)(()=>{r&&(S||M)&&L(r,ut)},[r,S,M,L,ut]),{...xe,...f,isScrolling:V,onMouseDown:o?Ee:void 0}};var qo=({allowDragDrop:o=!1,collapsibleHeaders:e,collectionHook:t,containerRef:n,contentRef:r,defaultHighlightedIndex:s,defaultSelected:i,disabled:l,disableAriaActiveDescendant:a,disableHighlightOnFocus:c,disableTypeToSelect:u,highlightedIndex:d,id:f,label:h="",listHandlers:p,onDragStart:m,onDrop:g,onHighlight:y,onKeyboardNavigation:E,onKeyDown:v,onMoveListItem:x,onSelect:C,onSelectionChange:b,restoreLastFocus:S,scrollContainerRef:M,selected:w,selectionStrategy:k,selectionKeys:L,stickyHeaders:T,tabToSelect:P,viewportRange:R})=>{let O=(0,dt.useRef)(null),A=(0,dt.useRef)(w||i),D=(X,ee)=>{var ne,de;(de=(ne=le.listHandlers).onKeyboardNavigation)==null||de.call(ne,X,ee),E==null||E(X,ee)},I=(0,dt.useCallback)((X,ee)=>{C&&ee!==null&&C(X,t.itemById(ee))},[t,C]),F=(0,dt.useMemo)(()=>{var X,ee;return M||{current:(ee=(X=n.current)==null?void 0:X.querySelector(".vuuList-scrollContainer"))!=null?ee:null}},[]),N=(0,dt.useCallback)((X,ee)=>{if(b){if(Array.isArray(ee)){let ne=ee.map(de=>t.itemById(de));b(X,ne)}else if(ee){let ne=t.itemById(ee);b(X,ne)}}},[t,b]),{highlightedIndex:V,containerProps:{onKeyDown:K,onMouseMove:_,...q},setHighlightedIndex:J,...G}=hb({containerRef:F,defaultHighlightedIndex:s,disableHighlightOnFocus:c,highlightedIndex:d,indexPositions:t.data,itemCount:t.data.length,label:h,onHighlight:y,onKeyboardNavigation:D,restoreLastFocus:S,selected:A.current,viewportItemCount:10}),Z=ab({collapsibleHeaders:e,highlightedIdx:V,collectionHook:t}),ue=(0,dt.useCallback)(X=>{J(-1),m==null||m(X)},[m,J]),le=pb({containerRef:n,defaultSelected:i,highlightedIdx:V,itemQuery:".vuuListItem",label:`${h}:useList`,onSelect:I,onSelectionChange:N,selected:w,selectionStrategy:k,selectionKeys:L,tabToSelect:P}),Ve=(0,dt.useCallback)((X,ee,ne)=>{let de=t.data.indexOf(X);return de===ee?ne:de<Math.min(ee,ne)||de>Math.max(ee,ne)?de:ee<de?de-1:de+1},[t.data]),xe=(0,dt.useCallback)((X,ee,ne)=>Array.isArray(X)?X.map(de=>Ve(de,ee,ne)):Ve(X,ee,ne),[Ve]),Oe=(0,dt.useCallback)((X,ee,ne)=>{Wo(le.selected)&&(O.current=xe(le.selected,X,ee)),ne.isExternal?g==null||g(X,ee,ne):x==null||x(X,ee),J(-1)},[le.selected,J,xe,g,x]),ke=(0,dt.useCallback)(X=>{J(X)},[J]),{setSelected:Ae}=le;(0,dt.useEffect)(()=>{let{current:X}=O;if(Wo(X)){let ee=Array.isArray(X)?X.map(ne=>t.data[ne]):t.data[X];O.current=null,Ae(ee)}},[t.data,Ae]),(0,Gb.useLayoutEffectSkipFirst)(()=>{Wo(A.current)&&Ae(Array.isArray(A.current)?[]:null)},[Ae,t.data]);let{onMouseDown:ut,isDragging:Le,isScrolling:st,...Dt}=Mr({allowDragDrop:o,draggableClassName:"list-item",orientation:"vertical",containerRef:n,id:f,itemQuery:".vuuListItem",onDragStart:ue,onDrop:Oe,onDropSettle:ke,viewportRange:R}),{onKeyDown:Ee}=mb({disableTypeToSelect:u,highlightedIdx:V,highlightItemAtIndex:J,typeToNavigate:!0,items:t.data}),it=(0,dt.useCallback)(X=>{var ee,ne,de;X.defaultPrevented||Ee==null||Ee(X),K(X),X.defaultPrevented||(ne=(ee=le.listHandlers).onKeyDown)==null||ne.call(ee,X),X.defaultPrevented||(de=Z==null?void 0:Z.onKeyDown)==null||de.call(Z,X),X.defaultPrevented||v==null||v(X)},[Z,K,v,le.listHandlers,Ee]),{isScrolling:j,scrollIntoView:te}=Cb({containerRef:F,contentRef:r,highlightedIdx:V,indexPositions:t.data,stickyHeaders:T}),oe=j.current||st.current,ce=(0,dt.useCallback)(X=>{if(!oe&&!l&&!Le){_();let ee=cb(X.target);if(ee!==-1&&ee!==V){let ne=t.data[ee];!ne||ne.disabled?J(-1):J(ee)}}},[Le,oe,l,J,_,V,t.data]),we=()=>{var X;return V===void 0||V===-1||a||(X=t.data[V])==null?void 0:X.id};A.current=le.selected;let $e={"aria-activedescendant":we(),onBlur:q.onBlur,onFocus:q.onFocus,onKeyDown:it,onMouseDown:ut,onMouseDownCapture:q.onMouseDownCapture,onMouseLeave:q.onMouseLeave},ve=p||{onClick:le.listHandlers.onClick,onMouseMove:ce};return{focusVisible:G.focusVisible,controlledHighlighting:G.controlledHighlighting,highlightedIndex:V,keyboardNavigation:G.keyboardNavigation,listHandlers:ve,listItemHeaderHandlers:Z,listControlProps:$e,scrollIntoView:te,selected:le.selected,setHighlightedIndex:J,setIgnoreFocus:G.setIgnoreFocus,setSelected:le.setSelected,...Dt}};var Wn=require("react");var bM=(o,e,t=0)=>o===0?0:t===0?o*e:o-1*(e+t)+e,sc=({displayedItemCount:o,getItemHeight:e,height:t,itemCount:n,itemGapSize:r,itemHeight:s=36,size:i})=>{let[l,a]=(0,Wn.useState)(s),[,c]=(0,Wn.useState)({}),u=(0,Wn.useRef)(null),[d,f]=(0,Wn.useMemo)(()=>{let m=0,g=l!=null?l:s,y=bM(n,g,r);if(console.log(`contentHeight ${y}`),t!==void 0)return[y,void 0];let E=Math.min(o,n)||o;return typeof e=="function"?m+=Array(E).fill(0).reduce((x,C,b)=>x+e(b)+r,0)-r:m+=E*Number(g)+(E-1)*r,[y,m]},[o,e,t,n,r,s,l]),h=(0,Wn.useCallback)(({height:m})=>{typeof m=="number"&&a(m)},[]),p=(0,Wn.useCallback)(m=>{u.current=m,c({})},[]);return uo(u,_m,h,!0),{computedListHeight:f,contentHeight:d,listClientHeight:i==null?void 0:i.height,listItemHeight:l,rowHeightProxyRef:p}};var Qb=require("@salt-ds/core"),Un=require("react"),_b=(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}},ic=({containerSize:o,itemCount:e,itemGapSize:t=0,itemSize:n,onViewportScroll:r})=>{let s=(0,Un.useRef)(0),i=(0,Un.useRef)(0),l=(0,Un.useRef)(0),a=(0,Un.useMemo)(()=>_b(l.current,o,e,n+t),[o,e,n,t]),[c,u]=(0,Un.useState)(a);return(0,Qb.useIsomorphicLayoutEffect)(()=>{u(a)},[a]),{onVerticalScroll:(0,Un.useCallback)(f=>{let h=f.target.scrollTop;if(h!==l.current){l.current=h;let p=n+t,m=_b(h,o,e,p);(m.from!==s.current||m.to!==i.current)&&(s.current=m.from,i.current=m.to,r==null||r(m.from,m.to),u(m))}},[n,t,o,e,r]),viewportRange:c}};var Jt=require("react/jsx-runtime"),jb=require("react"),yM="No data to display",Pr="vuuList",go=(0,Vt.forwardRef)(function({ListItem:e=Ns,ListPlaceholder:t,allowDragDrop:n,children:r,className:s,collapsibleHeaders:i=!1,defaultHighlightedIndex:l,defaultSelected:a,disabled:c=!1,disableFocus:u=!1,disableTypeToSelect:d,displayedItemCount:f=10,emptyMessage:h,focusVisible:p,getItemHeight:m,getItemId:g,height:y,highlightedIndex:E,id:v,itemGapSize:x=0,itemHeight:C,itemTextHighlightPattern:b,itemToString:S=an,listHandlers:M,maxHeight:w,maxWidth:k,minHeight:L,minWidth:T,onDragStart:P,onDrop:R,onMoveListItem:O,onSelect:A,onSelectionChange:D,onHighlight:I,restoreLastFocus:F,selected:N,selectionStrategy:V,checkable:K=V==="multiple",scrollingApiRef:_,selectionKeys:q,showEmptyMessage:J=!1,source:G,style:Z,stickyHeaders:ue,tabToSelect:le,...Ve},xe){var vm,Sm;let Oe=(0,ac.useId)(v),ke=(0,Vt.useRef)(null),Ae=(0,Vt.useRef)(null),ut=(0,Vt.useRef)(null),[Le,st]=(0,Vt.useState)(),Dt=(0,Vt.useCallback)(En=>{st(En)},[]),Ee=Uo({id:Oe,label:"List",source:G,children:r,options:{collapsibleHeaders:i,getItemId:g,itemToString:S}}),{listClientHeight:it,computedListHeight:j,listItemHeight:te,rowHeightProxyRef:oe}=sc({displayedItemCount:f,getItemHeight:m,height:y,itemCount:Ee.data.length,itemGapSize:x,itemHeight:C,rootRef:ke,size:Le}),{onVerticalScroll:ce,viewportRange:we}=ic({containerSize:(Sm=(vm=it!=null?it:j)!=null?vm:Le==null?void 0:Le.height)!=null?Sm:0,itemCount:Ee.data.length,itemGapSize:x,itemSize:te}),{draggable:$e,draggedItemIndex:ve,dropIndicator:X,focusVisible:ee,highlightedIndex:ne,listControlProps:de,listHandlers:Ke,listItemHeaderHandlers:lt,scrollIntoView:H,selected:z}=qo({allowDragDrop:n,collapsibleHeaders:i,collectionHook:Ee,containerRef:ke,contentRef:ut,defaultHighlightedIndex:l,defaultSelected:Ee.itemToCollectionItemId(a),disabled:c,disableTypeToSelect:d,highlightedIndex:E,id:Oe,label:"List",listHandlers:M,onDragStart:P,onDrop:R,onMoveListItem:O,onSelect:A,onSelectionChange:D,onHighlight:I,restoreLastFocus:F,scrollContainerRef:Ae,selected:Ee.itemToCollectionItemId(N),selectionStrategy:V,selectionKeys:q,stickyHeaders:ue,tabToSelect:le,viewportRange:we});Ja({collectionHook:Ee,forwardedRef:_,scrollableRef:ke,scrollIntoView:H});let ae=p!=null?p:ee,Me=function(qe,_t,Qt,xt){let br=(0,jb.createElement)(e,{...lt,className:(0,lc.default)(`${Pr}Header`,{focusVisible:i&&ae===qe.value}),"aria-expanded":xt,"data-idx":i?qe.value:void 0,"data-index":i?qe.value:void 0,"data-highlighted":qe.value===ne||void 0,"data-sticky":ue,"data-selectable":!1,id:_t,key:`header-${qe.value}`,label:Qt});return qe.value+=1,br},Ht=m===void 0?()=>C:m;function gr(En,qe,_t){var ka,wm;let{disabled:Qt,value:xt,id:br,label:wa}=qe,Ta=(0,Vt.isValidElement)(xt),nl={className:(0,lc.default)((ka=xt==null?void 0:xt.props)==null?void 0:ka.className,{vuuHighlighted:_t.value===ne,vuuFocusVisible:ae===_t.value,["vuuDraggable-dragAway"]:ve===_t.value}),disabled:Qt||c,id:br,item:Ta?void 0:(wm=qe==null?void 0:qe.value)!=null?wm:void 0,itemHeight:Ht(_t.value),itemTextHighlightPattern:b,key:br,"data-index":_t.value,label:wa,role:"option",selected:La(z,qe),showCheckbox:K};En.push(Ta?(0,Vt.cloneElement)(xt,nl):(0,Jt.jsx)(e,{...nl})),_t.value+=1}let kn=function(qe,_t,Qt){let{count:xt=0,id:br,expanded:wa,label:Ta=""}=_t[Qt.value],nl=Me(Qt,br,Ta,wa),ka=wa!==!1?[nl].concat(Es(_t,Qt,Qt.value+xt)||[]):nl;qe.push((0,Jt.jsx)("div",{role:"group",children:ka},br))},Es=(En,qe={value:0},_t=En.length)=>{let Qt=[];for(;qe.value<_t;){let xt=En[qe.value];xt.header?Qt.push(Me(qe,xt.id,xt.label,xt.expanded===!1)):xt.childNodes?kn(Qt,En,qe):gr(Qt,xt,qe)}return Qt};function dk(){return h||J?(0,Jt.jsx)("span",{className:`${Pr}-empty-message`,children:h!=null?h:yM}):null}let fk=()=>{if(Ee.data.length){let En=Ee.data;return Es(En)}else dk()},hk="auto",pk={"--list-borderWidth":"var(--vuuList-borderWidth, var(--salt-size-border, 0))","--list-item-gap":x?`${x}px`:void 0,"--computed-list-height":j===void 0?void 0:`${j}px`,minWidth:T,minHeight:L,maxWidth:k,maxHeight:w};return(0,Jt.jsxs)(ac.MeasuredContainer,{"aria-multiselectable":V==="multiple"||V==="extended"||V==="extended-multi-range"||void 0,...Ve,...Ke,...de,className:(0,lc.default)(Pr,s,{[`${Pr}-collapsible`]:i,[`${Pr}-contentSized`]:j!==void 0,vuuFocusVisible:ne===qd}),height:j!=null?j:y,id:`${Oe}`,onResize:Dt,ref:(0,qb.useForkRef)(ke,xe),role:"listbox",onScroll:ce,style:{...Z,...pk},tabIndex:c||u?void 0:0,children:[(0,Jt.jsx)(ec,{ref:oe,height:C}),Ee.data.length===0&&t!==void 0?(0,Jt.jsx)(Jt.Fragment,{children:(0,Jt.jsx)(t,{})}):(0,Jt.jsx)("div",{className:`${Pr}-viewport`,ref:Ae,children:(0,Jt.jsxs)("div",{className:`${Pr}-scrollingContentContainer`,ref:ut,style:{height:hk},children:[fk(),X,$e]})})]})});var Vs=require("@salt-ds/core");function Xb(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=Xb(o[e]))&&(n&&(n+=" "),n+=t);else for(e in o)o[e]&&(n&&(n+=" "),n+=e);return n}function nf(){for(var o,e,t=0,n="";t<arguments.length;)(o=arguments[t++])&&(e=Xb(o))&&(n&&(n+=" "),n+=e);return n}var Ir=require("react");var Yb=require("react");var cc=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 xM=([o],[e])=>o-e,Jb=5,Zb=({data:o,listItemGapSize:e=0,listItemHeight:t,viewportRange:n})=>{let r=(0,Yb.useMemo)(()=>new cc(0,1),[]),s=t+e,i=Math.max(0,n.from-Jb),l=Math.min(o.length,n.to+Jb);return r.reset(i,l),o.slice(i,l).map((c,u)=>[r.keyFor(u+i),(u+i)*s,u+i+1,c]).sort(xM)};var Dr=require("react/jsx-runtime"),CM="No data to display",uc=(0,Vs.makePrefixer)("saltList"),vM=(0,Ir.memo)(Ns),o3=(0,Ir.forwardRef)(function({borderless:e,children:t,className:n,collapsibleHeaders:r=!1,defaultHighlightedIndex:s,defaultSelected:i,disabled:l=!1,disableFocus:a=!1,disableTypeToSelect:c,displayedItemCount:u=10,emptyMessage:d,getItemHeight:f,getItemId:h,height:p,highlightedIndex:m,id:g,itemGapSize:y=0,itemHeight:E,itemTextHighlightPattern:v,itemToString:x,maxHeight:C,maxWidth:b,minHeight:S,minWidth:M,onDragStart:w,onDrop:k,onSelect:L,onSelectionChange:T,onViewportScroll:P,onHighlight:R,restoreLastFocus:O,selected:A,selectionStrategy:D,scrollingApiRef:I,selectionKeys:F,showEmptyMessage:N=!1,source:V,style:K,stickyHeaders:_,tabToSelect:q,width:J,...G},Z){let ue=(0,Vs.useIdMemo)(g),le=(0,Ir.useRef)(null),Ve=(0,Ir.useRef)(null),xe=Uo({id:ue,label:"List",source:V,children:t,options:{collapsibleHeaders:r,getItemId:h,itemToString:x}}),{contentHeight:Oe,listItemHeight:ke,listHeight:Ae}=sc({borderless:e,displayedItemCount:u,height:p,itemCount:xe.data.length,itemGapSize:y,itemHeight:E,rootRef:le,rowHeightRef:Ve}),{focusVisible:ut,highlightedIndex:Le,listControlProps:st,listHandlers:Dt,scrollIntoView:Ee,selected:it}=qo({collapsibleHeaders:r,collectionHook:xe,containerRef:le,defaultHighlightedIndex:s,defaultSelected:xe.itemToCollectionItem(i),disabled:l,disableTypeToSelect:c,highlightedIndex:m,label:ue,onSelect:L,onSelectionChange:T,onHighlight:R,restoreLastFocus:O,selected:xe.itemToCollectionItem(A),selectionStrategy:D,selectionKeys:F,stickyHeaders:_,tabToSelect:q}),{onVerticalScroll:j,viewportRange:te}=ic({containerSize:typeof Ae=="number"?Ae:0,itemCount:xe.data.length,itemGapSize:y,itemSize:ke});console.log({viewPortRange:te});let oe=Zb({data:xe.data,listItemGapSize:y,listItemHeight:ke,viewportRange:te});Ja({collectionHook:xe,forwardedRef:I,scrollableRef:le,scrollIntoView:Ee});function ce(ee,ne,de){let[Ke,lt,H,z]=ne,ae=H-1;ee.push((0,Dr.jsx)(vM,{"aria-setsize":xe.data.length,"aria-posinset":H,className:nf(n,{saltHighlighted:ae===Le,saltFocusVisible:ut===ae}),"data-idx":ae,item:z,label:z.label,"data-offset":lt,role:"option",selected:La(it,z),id:z.id,translate3d:lt},Ke)),de.value+=1}function we(ee,ne={value:0},de=ee.length){let Ke=[];for(;ne.value<de;){let lt=ee[ne.value];ce(Ke,lt,ne)}return Ke}function $e(){return d||N?(0,Dr.jsx)("span",{className:uc("empty-message"),children:d!=null?d:CM}):null}let ve=()=>{if(oe.length)return we(oe);$e()},X={"--list-item-gap":y?`${y}px`:void 0,minWidth:M,minHeight:S,width:J!=null?J:"100%",height:p!=null?p:"100%",maxWidth:b!=null?b:J,maxHeight:C!=null?C:Ae};return(0,Dr.jsx)("div",{...G,...Dt,...st,className:nf(uc(),n,uc("virtualized")),id:`${ue}`,ref:(0,Vs.useForkRef)(le,Z),role:"listbox",onScroll:j,style:{...K,...X},tabIndex:l||a?void 0:0,children:(0,Dr.jsxs)("div",{className:uc("scrollingContentContainer"),style:{height:Oe},children:[(0,Dr.jsx)(ec,{ref:Ve}),ve()]})})});var ty=U(require("classnames"));var oy=require("react/jsx-runtime"),ey="vuuRadioIcon",ny=({checked:o=!1,...e})=>(0,oy.jsx)("span",{...e,className:(0,ty.default)(ey,{[`${ey}-checked`]:o})});var ry=require("@salt-ds/core"),$s=require("react");var sy=({collectionHook:o,defaultHighlightedIndex:e,defaultIsOpen:t,defaultSelected:n,highlightedIndex:r,isOpen:s,itemToString:i=an,listRef:l,onHighlight:a,onOpenChange:c,onSelectionChange:u,onSelect:d,selected:f,selectionStrategy:h})=>{let p=h==="multiple"||h==="extended",[m,g]=(0,ry.useControlled)({controlled:s,default:t!=null?t:!1,name:"useDropdownList"}),y=(0,$s.useCallback)((b,S)=>{p||(g(!1),c==null||c(!1)),u==null||u(b,S)},[p,c,u,g]),E=(0,$s.useCallback)((b,S)=>{p||(g(!1),c==null||c(!1)),d==null||d(b,S)},[p,c,d,g]),v=qo({collectionHook:o,defaultHighlightedIndex:(e!=null?e:r===void 0)?0:void 0,defaultSelected:n,label:"DropDown",onSelectionChange:y,onSelect:E,containerRef:l,highlightedIndex:r,onHighlight:a,selected:f,selectionStrategy:h,tabToSelect:!p}),x=(0,$s.useCallback)(b=>{g(b),c==null||c(b)},[c,g]),C=(0,$s.useMemo)(()=>{if(p&&Array.isArray(v.selected)){let b=v.selected.map(S=>o.itemById(S));if(b.length===0)return;if(b.length===1){let[S]=b;return S===null?void 0:i(S)}else return`${b.length} items selected`}else{let b=v.selected;return b==null?void 0:i(o.itemById(b))}},[o,p,i,v.selected]);return{isOpen:m,onOpenChange:x,triggerLabel:C,...v}};var Ks=require("react/jsx-runtime"),dc=(0,bo.forwardRef)(function({"aria-label":e,children:t,defaultIsOpen:n,defaultSelected:r,id:s,isOpen:i,itemToString:l=an,onOpenChange:a,onSelectionChange:c,onSelect:u,selected:d,selectionStrategy:f,source:h,triggerComponent:p,ListItem:m,ListProps:g,width:y=180,...E},v){let x=(0,ly.useId)(s),C=(0,bo.useRef)(null),b=(0,bo.useRef)(null),S=(0,iy.useForkRef)(C,v),M=Uo({id:x,source:h,children:t,options:{itemToString:l}}),{highlightedIndex:w,triggerLabel:k,listHandlers:L,listControlProps:T,selected:P,...R}=sy({collectionHook:M,defaultHighlightedIndex:g==null?void 0:g.defaultHighlightedIndex,defaultIsOpen:n,defaultSelected:M.itemToCollectionItemId(r),highlightedIndex:g==null?void 0:g.highlightedIndex,isOpen:i,itemToString:l,label:"Dropdown",listRef:b,onHighlight:g==null?void 0:g.onHighlight,onOpenChange:a,onSelectionChange:c,onSelect:u,selected:M.itemToCollectionItemId(d),selectionStrategy:f}),O=(0,bo.useCallback)(D=>{if(Array.isArray(D))return D.map(I=>M.itemById(I));if(D)return M.itemById(D)},[M]),A=()=>{let D={"aria-activedescendant":R.isOpen?T==null?void 0:T["aria-activedescendant"]:void 0,"aria-label":e};if(p){let I=p.props;return(0,bo.cloneElement)(p,Aa(I,{...R.isOpen?T:{},...D}))}else return(0,Ks.jsx)(nb,{label:k,...R.isOpen?T:{},...D})};return(0,Ks.jsx)(Da,{collectionHook:M,children:(0,Ks.jsxs)(_a,{...E,id:x,isOpen:R.isOpen,onOpenChange:R.onOpenChange,placement:(g==null?void 0:g.width)===void 0?"below-full-width":"below",ref:S,width:y,children:[A(),(0,Ks.jsx)(go,{ListItem:m,itemToString:l,...g,highlightedIndex:w,listHandlers:L,onSelectionChange:c,onSelect:u,ref:b,selected:O(P),selectionStrategy:f})]})})});var of=require("@salt-ds/core"),ay=require("@vuu-ui/vuu-layout"),Pe=require("react");var SM=["Enter"],cy=({allowFreeText:o,ariaLabel:e,collectionHook:t,defaultIsOpen:n,defaultValue:r,onBlur:s,onFocus:i,onChange:l,onSelect:a,id:c,initialHighlightedIndex:u=-1,isOpen:d,itemToString:f=an,listRef:h,onOpenChange:p,onSelectionChange:m,selectionStrategy:g,stringToItem:y,value:E,InputProps:v={onBlur:s,onFocus:i,onChange:l,onSelect:a}})=>{var lt;let x=g==="multiple"||g==="extended",C=(lt=t.stringToCollectionItem(E!=null?E:r))!=null?lt:null,{data:b,itemToCollectionItem:S,setFilterPattern:M,stringToCollectionItem:w}=t,k=(0,Pe.useRef)(null),L=(0,Pe.useRef)(null),T=(0,Pe.useRef)(!0),P=(0,Pe.useRef)(C),[R,O]=(0,of.useControlled)({controlled:d,default:n!=null?n:!1,name:"useDropdownList"}),[A,D]=(0,of.useControlled)({controlled:void 0,default:r!=null?r:"",name:"ComboBox",state:"value"}),I=(0,Pe.useCallback)(H=>Array.isArray(H)?H.map(z=>z.value):H&&H.value,[]),[F,N]=(0,Pe.useState)(!0),[V,K]=(0,Pe.useState)(!1),_=(0,Pe.useCallback)((H=P.current)=>{var z,ae;if(Array.isArray(H))console.log("TODO multi selection");else if(H==null)(z=k.current)==null||z.call(k,-1);else{let Me=b.indexOf(H);(ae=k.current)==null||ae.call(k,Me)}},[b]),q=(0,Pe.useCallback)(H=>{D(H),M(H===""?void 0:H)},[M,D]),J=(0,Pe.useCallback)((H=P.current)=>{var ae;let z="";Array.isArray(H)?console.log("TODO multi selection"):H!=null&&H.value!==null&&(z=f(H.value)),q(z),z===""?(ae=k.current)==null||ae.call(k,-1):_(H)},[_,f,q]),G=(0,Pe.useCallback)((H,z)=>{x||O(!1),P.current=z,J(z),m==null||m(H,I(z!=null?z:null))},[I,x,m,J,O]),Z=(0,Pe.useCallback)((H,z)=>{if(!x){let ae=S(z);G(H,ae)}},[G,x,S]),ue=(0,Pe.useCallback)(H=>{if(!o&&H.key==="Enter"&&V){let[z]=b;G(H,z)}},[o,G,b,V]),le=(0,Pe.useCallback)(H=>{H.key==="Escape"?o?q(""):J():H.key==="Tab"&&(o||J()),ue(H)},[o,ue,J,q]),Ve=(0,Pe.useCallback)(()=>{N(!1)},[]),{focusVisible:xe,setHighlightedIndex:Oe,highlightedIndex:ke,listControlProps:Ae,listHandlers:ut,selected:Le,setSelected:st}=qo({collectionHook:t,containerRef:h,defaultHighlightedIndex:u,disableAriaActiveDescendant:F,disableHighlightOnFocus:!0,disableTypeToSelect:!0,label:"useComboBox",onKeyboardNavigation:Ve,onKeyDown:le,onSelectionChange:Z,selected:P.current,selectionKeys:SM,selectionStrategy:g,tabToSelect:!x});k.current=Oe,L.current=st;let Dt=(0,Pe.useCallback)(H=>{O(H),H||K(!1),p==null||p(H)},[p,O]),{onClick:Ee}=ut,it=(0,Pe.useCallback)(H=>{var z;(z=document.getElementById(`${c}-input`))==null||z.focus(),Ee==null||Ee(H)},[c,Ee]),j=(0,Pe.useCallback)(H=>{let z=H.target.value;D(z),z&&z.trim().length?M(z):(M(void 0),P.current=null,m==null||m(H,null)),O(!0),K(z.length>0&&!o)},[o,m,M,O,D]),{onFocus:te=i}=v,{onFocus:oe}=Ae,ce=(0,Pe.useCallback)(H=>{N(!1),oe==null||oe(H),te==null||te(H)},[te,oe]),we=(0,Pe.useCallback)(H=>{let z=H.relatedTarget;return(z==null?void 0:z.id)===`${c}-list`},[c]),$e=(0,Pe.useCallback)(H=>{var ae;let z=A.trim();if(z){let Me=w(z);Me?Array.isArray(Me)||Me!==Le&&((ae=L.current)==null||ae.call(L,Me),m==null||m(H,Me.value)):y&&y(z)&&console.log("we have a new item")}},[m,Le,y,w,A]),{onBlur:ve=s}=v,{onBlur:X}=Ae,ee=(0,Pe.useCallback)(H=>{we(H)||(X==null||X(H),ve==null||ve(H),o?$e(H):J(),N(!0),T.current=!0,O(!1))},[we,X,ve,o,O,$e,J]),{onSelect:ne}=v,de=(0,Pe.useCallback)(H=>{T.current?T.current=!1:N(!0),ne==null||ne(H)},[ne]);(0,ay.useLayoutEffectSkipFirst)(()=>{Wo(Le)?_():Oe(u),b.length===0&&O(!1)},[_,b.length,u,Le,Oe,O]);let Ke={...v.inputProps,"aria-label":e};return{focusVisible:xe,highlightedIndex:ke,isOpen:R,onOpenChange:Dt,inputProps:{...v,id:`${c}-input`,inputProps:Ke,onChange:j,onSelect:de,role:"combobox",value:A},listControlProps:{...Ae,onBlur:ee,onFocus:ce},listHandlers:{...ut,onClick:it},selected:Le}};var uy=U(require("classnames"));var fy=require("react/jsx-runtime"),wM="vuuChevronIcon",dy=o=>{let{direction:e,...t}=o;return(0,fy.jsx)("span",{...t,className:(0,uy.default)(wM,e)})};var Rr=require("react/jsx-runtime"),bl=(0,zs.forwardRef)(function({InputProps:e,ListProps:t,ListItem:n,"aria-label":r,allowFreeText:s,children:i,defaultIsOpen:l,defaultValue:a,disabled:c,onBlur:u,onFocus:d,onChange:f,onSelect:h,getFilterRegex:p,id:m,initialHighlightedIndex:g=-1,isOpen:y,itemToString:E,onOpenChange:v,onSelectionChange:x,selectionStrategy:C,source:b,stringToItem:S,value:M,width:w=180,...k},L){let T=(0,hy.useId)(m),P=(0,zs.useRef)(null),R=Uo({id:T,source:b,children:i,options:{filterPattern:M!=null?M:a,getFilterRegex:p,itemToString:E}}),{focusVisible:O,highlightedIndex:A,inputProps:{endAdornment:D,...I},isOpen:F,listHandlers:N,listControlProps:V,onOpenChange:K,selected:_}=cy({InputProps:e,allowFreeText:s,ariaLabel:r,collectionHook:R,defaultIsOpen:l,defaultValue:a,disabled:c,initialHighlightedIndex:g,listRef:P,onBlur:u,onFocus:d,onChange:f,onSelect:h,id:T,isOpen:y,itemToString:E,label:"ComboBox",onOpenChange:v,onSelectionChange:x,selectionStrategy:C,stringToItem:S,value:M}),q=(0,zs.useCallback)(G=>Array.isArray(G)?G.map(Z=>Z.value):G&&G.value,[]);return(0,Rr.jsx)(Da,{collectionHook:R,children:(0,Rr.jsxs)(_a,{...k,fullWidth:!0,id:T,isOpen:F,onOpenChange:K,openOnFocus:!0,ref:L,width:w,children:[(0,Rr.jsx)(py.Input,{...I,disabled:c,...V,endAdornment:D===null?null:(0,Rr.jsx)(dy,{direction:F?"up":"down",onClick:()=>{K(!F)}})}),(0,Rr.jsx)(go,{...t,ListItem:n,focusVisible:O,highlightedIndex:A,itemTextHighlightPattern:String(I.value)||void 0,id:`${T}-list`,listHandlers:N,onSelectionChange:x,ref:P,selected:q(_),selectionStrategy:C})]})})});var my=require("@vuu-ui/vuu-utils"),gy=o=>e=>TM(o,e);function TM(o,e){console.log(`apply rules to ${e}`);let t;for(let n of o){let r=(0,my.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 In=require("react"),by=o=>{let e=new Event("vuu-commit");o.dispatchEvent(e)},yy=({clientSideEditValidationCheck:o,initialValue:e,onCommit:t})=>{let[n,r]=(0,In.useState)(),[s,i]=(0,In.useState)(e),l=(0,In.useRef)(e),a=(0,In.useRef)(!1),c=(0,In.useRef)(!1),u=(0,In.useCallback)(()=>{console.log("blur")},[]),d=(0,In.useCallback)(h=>{if(h.key==="Enter")if(h.stopPropagation(),a.current){c.current=!0;let p=o==null?void 0:o(s);p?r(p):(r(void 0),t(s)&&(a.current=!1,by(h.target)))}else by(h.target),c.current=!1;else h.key==="ArrowRight"||h.key==="ArrowLeft"||h.key==="ArrowUp"||h.key==="ArrowDown"?h.stopPropagation():h.key==="Escape"&&a.current&&(a.current=!1,r(void 0),i(l.current))},[o,t,s]),f=(0,In.useCallback)(h=>{let{value:p}=h.target;if(a.current=p!==l.current,i(p),console.log(`value changes to ${p} message ${n}`),c.current){let m=o==null?void 0:o(p);console.log({warningMessage:m}),m!==n&&m!==!1&&r(m)}},[o,n]);return{onBlur:u,onChange:f,onKeyDown:d,value:s,warningMessage:n}};var xy=U(require("classnames")),Rn=require("react"),yl=require("@salt-ds/core");var hc=require("react/jsx-runtime"),fc="vuuEditableLabel",xl=(0,Rn.forwardRef)(function({className:e,defaultEditing:t,defaultValue:n,editing:r,onChange:s,onEnterEditMode:i,onExitEditMode:l,value:a,...c},u){let d=(0,Rn.useRef)(null),f=(0,Rn.useRef)(!1),[h,p]=(0,yl.useControlled)({controlled:a,default:n!=null?n:"",name:"EditableLabel",state:"value"}),[m,g]=(0,yl.useControlled)({controlled:r,default:t!=null?t:!1,name:"EditableLabel",state:"editing"}),y=(0,Rn.useCallback)(k=>{g(f.current=k)},[g]),E=(0,Rn.useRef)(h);(0,Rn.useLayoutEffect)(()=>{m&&d.current!==null&&(d.current.select(),d.current.focus())},[m,d]);let v=(0,Rn.useCallback)(()=>{y(!0),i&&i()},[i,y]),x=({cancelEdit:k=!1,allowDeactivation:L=!1}={})=>{y(!1);let T=E.current;T!==h&&(k?p(T):E.current=h),l&&l(T,h,L,k)},C=k=>{let{value:L}=k.target;p(L),s&&s(L)},b=()=>{v()},S=()=>{f.current&&x({allowDeactivation:!0})},M=k=>{m&&k.key==="Enter"?(k.stopPropagation(),x()):k.key==="ArrowRight"||k.key==="ArrowLeft"?k.stopPropagation():k.key==="Escape"&&x({cancelEdit:!0})},w=(0,xy.default)(fc,e,{[`${fc}-editing`]:m});return(0,hc.jsx)("div",{...c,className:w,onDoubleClick:b,"data-text":h,ref:u,children:m?(0,hc.jsx)(yl.Input,{inputProps:{className:`${fc}-input`,spellCheck:!1},value:h,onBlur:S,onChange:C,onKeyDown:M,inputRef:d,style:{padding:0},textAlign:"left",variant:"secondary"}):(0,hc.jsx)("span",{className:`${fc}-label`,children:h})})});var vy=require("@salt-ds/core"),Sy=U(require("classnames")),wy=require("react");var rf=require("react/jsx-runtime"),Cy="vuuExpandoInput",pc=(0,wy.forwardRef)(function({className:e,value:t,inputProps:n,...r},s){return(0,rf.jsx)("div",{className:(0,Sy.default)(Cy,e),"data-text":t,children:(0,rf.jsx)(vy.Input,{...r,inputProps:{...n,className:`${Cy}-input`},ref:s,style:{padding:0},textAlign:"left",value:t,variant:"secondary"})})});var mc=require("react/jsx-runtime"),Ty=o=>{let{onToggle:e,checked:t,label:n}=o;return(0,mc.jsxs)("div",{className:"vuuCheckbox",onClick:e,onKeyUp:r=>r.key===" "&&e(),children:[(0,mc.jsx)(Za,{tabIndex:0,checked:t}),n]})};var Ws=require("react/jsx-runtime"),ky=o=>{let{onClick:e,checked:t,label:n,groupName:r}=o;return(0,Ws.jsxs)("div",{className:"vuuRadioButton",onClick:e,children:[(0,Ws.jsxs)("div",{className:"radio",children:[(0,Ws.jsx)("input",{type:"radio",name:r}),(0,Ws.jsx)(ny,{checked:t})]}),n]})};var hw=require("@vuu-ui/vuu-layout");var Ey=require("react");var kM=require("react/jsx-runtime");var My=require("@vuu-ui/vuu-utils"),cf=o=>(e,t)=>{let n=[];if(o===void 0)return n;if(e==="header"||e==="column-menu")n.push(...EM(t,o)),n.push(...DM(t,o)),n.push(...MM(t,o)),n.push(...PM(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 EM(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 MM(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,My.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 uf=(o,e)=>({label:`Pin ${e}`,action:`column-pin-${e}`,options:o}),sf=o=>uf(o,"left"),lf=o=>uf(o,"floating"),af=o=>uf(o,"right");function PM(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:[sf(o),lf(o),af(o)]}):t==="left"?n.push({label:"Unpin column",action:"column-unpin",options:o},{label:"Pin column",children:[lf(o),af(o)]}):t==="right"?n.push({label:"Unpin column",action:"column-unpin",options:o},{label:"Pin column",children:[sf(o),lf(o)]}):t==="floating"&&n.push({label:"Unpin column",action:"column-unpin",options:o},{label:"Pin column",children:[sf(o),af(o)]}),n}function DM(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 Py=require("@vuu-ui/vuu-utils"),at=require("@vuu-ui/vuu-utils"),IM=(o,e)=>{if(o.filterStruct&&e){let[t,n]=(0,Py.removeColumnFromFilter)(e,o.filterStruct);return{filter:n,filterStruct:t}}else return o},{Average:RM,Count:AM,Distinct:LM,High:OM,Low:NM,Sum:HM}=at.AggregationType,df=({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,at.setSortColumn)(o.sort,s,"A"),!0;case"sort-dsc":return o.sort=(0,at.setSortColumn)(o.sort,s,"D"),!0;case"sort-add-asc":return o.sort=(0,at.addSortColumn)(o.sort,s,"A"),!0;case"sort-add-dsc":return o.sort=(0,at.addSortColumn)(o.sort,s,"D"),!0;case"group":return o.groupBy=(0,at.addGroupColumn)(o.groupBy,s),!0;case"group-add":return o.groupBy=(0,at.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=IM(o.filter,s),!0;case"remove-filters":return o.filter={filter:""},!0;case"agg-avg":return o.aggregations=(0,at.setAggregations)(o.aggregations,s,RM),!0;case"agg-high":return o.aggregations=(0,at.setAggregations)(o.aggregations,s,OM),!0;case"agg-low":return o.aggregations=(0,at.setAggregations)(o.aggregations,s,NM),!0;case"agg-count":return o.aggregations=(0,at.setAggregations)(o.aggregations,s,AM),!0;case"agg-distinct":return o.aggregations=(0,at.setAggregations)(o.aggregations,s,LM),!0;case"agg-sum":return o.aggregations=(0,at.setAggregations)(o.aggregations,s,HM),!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 bx=require("@salt-ds/core");var Ar=require("@vuu-ui/vuu-utils"),$y=require("react");var Yt=require("@vuu-ui/vuu-utils"),Oy=U(require("classnames")),vl=require("react");var gc=require("@vuu-ui/vuu-utils");var Iy=U(require("classnames")),yo=require("react");var Cl=require("react/jsx-runtime"),{KEY:Dy}=gc.metadataKeys,ff=(0,yo.memo)(({className:o,column:e,columnMap:t,onClick:n,row:r})=>{let s=(0,yo.useRef)(null),{align:i,CellRenderer:l,key:a,pin:c,editable:u,resizing:d,valueFormatter:f}=e,[h,p]=(0,yo.useState)(!1),m=f(r[a]),[g,y]=(0,yo.useState)(m),E=()=>{var w;(w=s.current)==null||w.focus()},v=w=>{w.key==="Enter"&&p(!0)},x=(0,yo.useCallback)(w=>{n==null||n(w,e)},[e,n]),C=()=>{p(!0)},b=(w="",k="",L=!0,T=!1)=>{var P;p(!1),T?y(w):k!==w&&y(k),L===!1&&((P=s.current)==null||P.focus())},S=(0,Iy.default)(o,{vuuAlignRight:i==="right",vuuPinFloating:c==="floating",vuuPinLeft:c==="left",vuuPinRight:c==="right","vuuTableCell-resizing":d})||void 0,M=(0,gc.getColumnStyle)(e);return u?(0,Cl.jsx)("div",{className:S,"data-editable":!0,role:"cell",style:M,onKeyDown:v,children:(0,Cl.jsx)(xl,{editing:h,value:g,onChange:y,onMouseDownCapture:E,onEnterEditMode:C,onExitEditMode:b,onKeyDown:v,ref:s,tabIndex:0},"title")}):(0,Cl.jsx)("div",{className:S,role:"cell",style:M,onClick:x,children:l?(0,Cl.jsx)(l,{column:e,columnMap:t,row:r}):m})},FM);ff.displayName="TableCell";function FM(o,e){return o.column===e.column&&o.onClick===e.onClick&&o.row[Dy]===e.row[Dy]&&o.row[o.column.key]===e.row[e.column.key]}var Gs=require("@vuu-ui/vuu-utils"),Ry=require("react");var Us=require("react/jsx-runtime"),{IS_LEAF:BM}=Gs.metadataKeys,Ay=({column:o,onClick:e,row:t})=>{let{columns:n}=o,[r,s]=(0,Gs.getGroupValueAndOffset)(n,t),i=(0,Ry.useCallback)(u=>{e==null||e(u,o)},[o,e]),l=(0,Gs.getColumnStyle)(o),a=t[BM],c=Array(s).fill(0).map((u,d)=>(0,Us.jsx)("span",{className:"vuuTableGroupCell-spacer"},d));return(0,Us.jsxs)("div",{className:"vuuTableGroupCell vuuPinLeft",onClick:a?void 0:i,role:"cell",style:l,children:[c,a?null:(0,Us.jsx)("span",{className:"vuuTableGroupCell-toggle","data-icon":"triangle-right"}),(0,Us.jsx)("span",{children:r})]})};var Sl=require("react/jsx-runtime"),{IDX:VM,IS_EXPANDED:$M,SELECTED:KM}=Yt.metadataKeys,{True:Ly,First:zM,Last:WM}=Yt.RowSelected,_s="vuuTableRow",UM=(0,vl.memo)(function({columnMap:e,columns:t,offset:n,onClick:r,onToggleGroup:s,virtualColSpan:i=0,row:l}){let{[VM]:a,[$M]:c,[KM]:u}=l,d=(0,Oy.default)(_s,{[`${_s}-even`]:a%2===0,[`${_s}-expanded`]:c,[`${_s}-selected`]:u&Ly,[`${_s}-selectedStart`]:u&zM,[`${_s}-selectedEnd`]:u&WM}),f=(0,vl.useCallback)(p=>{let m=p.shiftKey,g=p.ctrlKey||p.metaKey;r==null||r(l,m,g)},[r,l]),h=(0,vl.useCallback)((p,m)=>{((0,Yt.isGroupColumn)(m)||(0,Yt.isJsonGroup)(m,l))&&(p.stopPropagation(),s==null||s(l,m))},[s,l]);return(0,Sl.jsxs)("div",{"aria-selected":u&Ly?!0:void 0,"aria-rowindex":a,className:d,onClick:f,role:"row",style:{transform:`translate3d(0px, ${n}px, 0px)`},children:[i>0?(0,Sl.jsx)("div",{role:"cell",style:{width:i}}):null,t.filter(Yt.notHidden).map(p=>{let m=(0,Yt.isGroupColumn)(p),g=(0,Yt.isJsonColumn)(p);return(0,Sl.jsx)(m?Ay:ff,{column:p,columnMap:e,onClick:m||g?h:void 0,row:l},p.name)})]})});var QM=U(require("classnames")),qM=require("react");var Ny=require("react");var Hy=require("react/jsx-runtime");var ZM=U(require("classnames")),By=require("react");var jM=U(require("classnames"));var Fy=require("react/jsx-runtime");var XM=U(require("classnames")),JM=require("react");var YM=require("react/jsx-runtime");var Vy=require("react/jsx-runtime");var Ky=require("react/jsx-runtime");var{RENDER_IDX:NK}=Ar.metadataKeys;var Ys=require("@vuu-ui/vuu-utils"),Al=require("react");var bc=require("@vuu-ui/vuu-utils"),wl=require("react"),{SELECTED:FK}=bc.metadataKeys;var hf=require("react"),e1=require("@vuu-ui/vuu-data");var pf=require("react"),t1=require("@vuu-ui/vuu-data");var Wy=require("react"),Uy=require("@vuu-ui/vuu-data"),zy={type:"RPC_CALL",service:"TypeAheadRpcHandler"};var yc=()=>(0,Wy.useCallback)(async e=>{let t=e.length===2?{method:"getUniqueFieldValues",params:e,...zy}:{method:"getUniqueFieldValuesStartingWith",params:e,...zy};return await(0,Uy.makeRpcCall)(t)},[]);var n1=0,Tl=class{constructor(e,t){this.from=e,this.to=t}},se=class{constructor(e={}){this.id=n1++,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=je.match(e)),t=>{let n=e(t);return n===void 0?null:[this,n]}}};se.closedBy=new se({deserialize:o=>o.split(" ")});se.openedBy=new se({deserialize:o=>o.split(" ")});se.group=new se({deserialize:o=>o.split(" ")});se.contextHash=new se({perNode:!0});se.lookAhead=new se({perNode:!0});se.mounted=new se({perNode:!0});var o1=Object.create(null),je=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):o1,n=(e.top?1:0)|(e.skipped?2:0)|(e.error?4:0)|(e.name==null?8:0),r=new je(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(se.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(se.group),s=-1;s<(r?r.length:0);s++){let i=t[s<0?n.name:r[s]];if(i)return i}}}};je.none=new je("",Object.create(null),0,8);var xo=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 je(n.name,r,n.id,n.flags):n)}return new xo(t)}},xc=new WeakMap,Gy=new WeakMap,ze;(function(o){o[o.ExcludeBuffers=1]="ExcludeBuffers",o[o.IncludeAnonymous=2]="IncludeAnonymous",o[o.IgnoreMounts=4]="IgnoreMounts",o[o.IgnoreOverlays=8]="IgnoreOverlays"})(ze||(ze={}));var be=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(se.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 qs(this.topNode,e)}cursorAt(e,t=0,n=0){let r=xc.get(this)||this.topNode,s=new qs(r);return s.moveTo(e,t),xc.set(this,s._tree),s}get topNode(){return new An(this,0,0,null)}resolve(e,t=0){let n=Qs(xc.get(this)||this.topNode,e,t,!1);return xc.set(this,n),n}resolveInner(e,t=0){let n=Qs(Gy.get(this)||this.topNode,e,t,!0);return Gy.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&ze.IncludeAnonymous)>0;for(let a=this.cursor(i|ze.IncludeAnonymous);;){let c=!1;if(a.from<=s&&a.to>=r&&(!l&&a.type.isAnonymous||t(a)!==!1)){if(a.firstChild())continue;c=!0}for(;c&&n&&(l||!a.type.isAnonymous)&&n(a),!a.nextSibling();){if(!a.parent())return;c=!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:yf(je.none,this.children,this.positions,0,this.children.length,0,this.length,(t,n,r)=>new be(this.type,t,n,r,this.propValues),e.makeTree||((t,n,r)=>new be(je.none,t,n,r)))}static build(e){return r1(e)}};be.empty=new be(je.none,[],[],0);var kl=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 kl(this.buffer,this.index)}},Co=class{constructor(e,t,n){this.buffer=e,this.length=t,this.set=n}get type(){return je.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&&!(Qy(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 c=s[a++]=r[l++]-n;s[a++]=r[l++]-e,i=Math.max(i,c)}return new Co(s,i,this.set)}};function Qy(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 qy(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 Qs(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 An&&o.index<0?null:o.parent;if(!i)return o;o=i}let s=n?0:ze.IgnoreOverlays;if(n)for(let i=o,l=i.parent;l;i=l,l=i.parent)i instanceof An&&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 An=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,c=t>0?l.length:-1;e!=c;e+=t){let u=l[e],d=a[e]+i.from;if(Qy(r,n,d,d+u.length)){if(u instanceof Co){if(s&ze.ExcludeBuffers)continue;let f=u.findChild(0,u.buffer.length,t,n-d,r);if(f>-1)return new Gn(new mf(i,u,e,d),null,f)}else if(s&ze.IncludeAnonymous||!u.type.isAnonymous||bf(u)){let f;if(!(s&ze.IgnoreMounts)&&u.props&&(f=u.prop(se.mounted))&&!f.overlay)return new An(f.tree,d,e,i);let h=new An(u,d,e,i);return s&ze.IncludeAnonymous||!h.type.isAnonymous?h:h.nextChild(t<0?u.children.length-1:0,t,n,r)}}}if(s&ze.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&ze.IgnoreOverlays)&&(r=this._tree.prop(se.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 An(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 qs(this,e)}get tree(){return this._tree}toTree(){return this._tree}resolve(e,t=0){return Qs(this,e,t,!1)}resolveInner(e,t=0){return Qs(this,e,t,!0)}enterUnfinishedNodesBefore(e){return qy(this,e)}getChild(e,t=null,n=null){let r=vc(this,e,t,n);return r.length?r[0]:null}getChildren(e,t=null,n=null){return vc(this,e,t,n)}toString(){return this._tree.toString()}get node(){return this}matchContext(e){return Sc(this,e)}};function vc(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 Sc(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 mf=class{constructor(e,t,n,r){this.parent=e,this.buffer=t,this.index=n,this.start=r}},Gn=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 Gn(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&ze.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 Gn(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 Gn(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 Gn(this.context,this._parent,e.findChild(t,this.index,-1,0,4))}cursor(e=0){return new qs(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 be(this.type,e,t,this.to-this.from)}resolve(e,t=0){return Qs(this,e,t,!1)}resolveInner(e,t=0){return Qs(this,e,t,!0)}enterUnfinishedNodesBefore(e){return qy(this,e)}toString(){return this.context.buffer.childString(this.index)}getChild(e,t=null,n=null){let r=vc(this,e,t,n);return r.length?r[0]:null}getChildren(e,t=null,n=null){return vc(this,e,t,n)}get node(){return this}matchContext(e){return Sc(this,e)}},qs=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 An)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 An?(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&ze.ExcludeBuffers?!1:this.enterChild(1,e,t):this.yield(this._tree.enter(e,t,n))}parent(){if(!this.buffer)return this.yieldNode(this.mode&ze.IncludeAnonymous?this._tree._parent:this._tree.parent);if(this.stack.length)return this.yieldBuf(this.stack.pop());let e=this.mode&ze.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&ze.IncludeAnonymous||l instanceof Co||!l.type.isAnonymous||bf(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 Gn(this.buffer,t,this.stack[r]);return this.bufferNode=new Gn(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 Sc(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 Sc(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 bf(o){return o.children.some(e=>e instanceof Co||!e.type.isAnonymous||bf(e))}function r1(o){var e;let{buffer:t,nodeSet:n,maxBufferLength:r=1024,reused:s=[],minRepeatType:i=n.types.length}=o,l=Array.isArray(t)?new kl(t,t.length):t,a=n.types,c=0,u=0;function d(x,C,b,S,M){let{id:w,start:k,end:L,size:T}=l,P=u;for(;T<0;)if(l.next(),T==-1){let I=s[w];b.push(I),S.push(k-x);return}else if(T==-3){c=w;return}else if(T==-4){u=w;return}else throw new RangeError(`Unrecognized record size: ${T}`);let R=a[w],O,A,D=k-x;if(L-k<=r&&(A=m(l.pos-C,M))){let I=new Uint16Array(A.size-A.skip),F=l.pos-A.size,N=I.length;for(;l.pos>F;)N=g(A.start,I,N);O=new Co(I,L-A.start,n),D=A.start-x}else{let I=l.pos-T;l.next();let F=[],N=[],V=w>=i?w:-1,K=0,_=L;for(;l.pos>I;)V>=0&&l.id==V&&l.size>=0?(l.end<=_-r&&(h(F,N,k,K,l.end,_,V,P),K=F.length,_=l.end),l.next()):d(k,I,F,N,V);if(V>=0&&K>0&&K<F.length&&h(F,N,k,K,k,_,V,P),F.reverse(),N.reverse(),V>-1&&K>0){let q=f(R);O=yf(R,F,N,0,F.length,0,L-k,q,q)}else O=p(R,F,N,L-k,P-L)}b.push(O),S.push(D)}function f(x){return(C,b,S)=>{let M=0,w=C.length-1,k,L;if(w>=0&&(k=C[w])instanceof be){if(!w&&k.type==x&&k.length==S)return k;(L=k.prop(se.lookAhead))&&(M=b[w]+k.length+L)}return p(x,C,b,S,M)}}function h(x,C,b,S,M,w,k,L){let T=[],P=[];for(;x.length>S;)T.push(x.pop()),P.push(C.pop()+b-M);x.push(p(n.types[k],T,P,w-M,L-w)),C.push(M-b)}function p(x,C,b,S,M=0,w){if(c){let k=[se.contextHash,c];w=w?[k].concat(w):[k]}if(M>25){let k=[se.lookAhead,M];w=w?[k].concat(w):[k]}return new be(x,C,b,S,w)}function m(x,C){let b=l.fork(),S=0,M=0,w=0,k=b.end-r,L={size:0,start:0,skip:0};e:for(let T=b.pos-x;b.pos>T;){let P=b.size;if(b.id==C&&P>=0){L.size=S,L.start=M,L.skip=w,w+=4,S+=4,b.next();continue}let R=b.pos-P;if(P<0||R<T||b.start<k)break;let O=b.id>=i?4:0,A=b.start;for(b.next();b.pos>R;){if(b.size<0)if(b.size==-3)O+=4;else break e;else b.id>=i&&(O+=4);b.next()}M=A,S+=P,w+=O}return(C<0||S==x)&&(L.size=S,L.start=M,L.skip=w),L.size>4?L:void 0}function g(x,C,b){let{id:S,start:M,end:w,size:k}=l;if(l.next(),k>=0&&S<i){let L=b;if(k>4){let T=l.pos-(k-4);for(;l.pos>T;)b=g(x,C,b)}C[--b]=L,C[--b]=w-x,C[--b]=M-x,C[--b]=S}else k==-3?c=S:k==-4&&(u=S);return b}let y=[],E=[];for(;l.pos>0;)d(o.start||0,o.bufferStart||0,y,E,-1);let v=(e=o.length)!==null&&e!==void 0?e:y.length?E[0]+y[0].length:0;return new be(a[o.topID],y.reverse(),E.reverse(),v)}var _y=new WeakMap;function Cc(o,e){if(!o.isAnonymous||e instanceof Co||e.type!=o)return 1;let t=_y.get(e);if(t==null){t=1;for(let n of e.children){if(n.type!=o||!(n instanceof be)){t=1;break}t+=Cc(o,n)}_y.set(e,t)}return t}function yf(o,e,t,n,r,s,i,l,a){let c=0;for(let p=n;p<r;p++)c+=Cc(o,e[p]);let u=Math.ceil(c*1.5/8),d=[],f=[];function h(p,m,g,y,E){for(let v=g;v<y;){let x=v,C=m[v],b=Cc(o,p[v]);for(v++;v<y;v++){let S=Cc(o,p[v]);if(b+S>=u)break;b+=S}if(v==x+1){if(b>u){let S=p[x];h(S.children,S.positions,0,S.children.length,m[x]+E);continue}d.push(p[x])}else{let S=m[v-1]+p[v-1].length-C;d.push(yf(o,p,m,x,v,C,S,null,a))}f.push(C+E-s)}}return h(e,t,n,r,0),(l||a)(d,f,i)}var _n=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 _n(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,c=0;;l++){let u=l<t.length?t[l]:null,d=u?u.fromA:1e9;if(d-a>=n)for(;i&&i.from<d;){let f=i;if(a>=f.from||d<=f.to||c){let h=Math.max(f.from,a)-c,p=Math.min(f.to,d)-c;f=h>=p?null:new _n(h,p,f.tree,f.offset+c,l>0,!!u)}if(f&&r.push(f),i.to>d)break;i=s<e.length?e[s++]:null}if(!u)break;a=u.toA,c=u.toA-u.toB}return r}},jo=class{startParse(e,t,n){return typeof e=="string"&&(e=new gf(e)),n=n?n.length?n.map(r=>new Tl(r.from,r.to)):[new Tl(0,0)]:[new Tl(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}}},gf=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 WK=new se({perNode:!0});var Xs=class{constructor(e,t,n,r,s,i,l,a,c,u=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=c,this.lookAhead=u,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 Xs(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,c=this.reducePos-a;c>=2e3&&!(!((t=this.p.parser.nodeSet.types[r])===null||t===void 0)&&t.isAnonymous)&&(a==this.p.lastBigReductionStart?(this.p.bigReductionCount++,this.p.lastBigReductionSize=c):this.p.lastBigReductionSize<c&&(this.p.bigReductionCount=1,this.p.lastBigReductionStart=a,this.p.lastBigReductionSize=c));let u=l?this.stack[l-1]:0,d=this.bufferBase+this.buffer.length-u;if(r<s.minRepeatTerm||e&131072){let f=s.stateFlag(this.state,1)?this.pos:this.reducePos;this.storeNode(r,a,f,d+4,!0)}if(e&262144)this.state=this.stack[l];else{let f=this.stack[l-3];this.state=s.getGoto(f,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 Xs(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 Cf(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,c=this.stack.length-l*3;if(c>=0&&e.getGoto(this.stack[c],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}},jy;(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"})(jy||(jy={}));var Cf=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}},Js=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 Js(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 Js(this.stack,this.pos,this.index)}};function El(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 js=class{constructor(){this.start=-1,this.value=-1,this.end=-1,this.extended=-1,this.lookAhead=0,this.mask=0,this.context=0}},Xy=new js,vf=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=Xy,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=Xy,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}},Xo=class{constructor(e,t){this.data=e,this.id=t}token(e,t){let{parser:n}=t.p;ox(this.data,e,t,this.id,n.data,n.tokenPrecTable)}};Xo.prototype.contextual=Xo.prototype.fallback=Xo.prototype.extend=!1;var Sf=class{constructor(e,t,n){this.precTable=t,this.elseToken=n,this.data=typeof e=="string"?El(e):e}token(e,t){let n=e.pos,r=0;for(;;){let s=e.next<0,i=e.resolveOffset(1,1);if(ox(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))}};Sf.prototype.contextual=Xo.prototype.fallback=Xo.prototype.extend=!1;function ox(o,e,t,n,r,s){let i=0,l=1<<n,{dialect:a}=t.p.parser;e:for(;l&o[i];){let c=o[i+1];for(let h=i+3;h<c;h+=2)if((o[h+1]&l)>0){let p=o[h];if(a.allows(p)&&(e.token.value==-1||e.token.value==p||s1(p,e.token.value,r,s))){e.acceptToken(p);break}}let u=e.next,d=0,f=o[i+2];if(e.next<0&&f>d&&o[c+f*3-3]==65535&&o[c+f*3-3]==65535){i=o[c+f*3-1];continue e}for(;d<f;){let h=d+f>>1,p=c+h+(h<<1),m=o[p],g=o[p+1]||65536;if(u<m)f=h;else if(u>=g)d=h+1;else{i=o[p+2],e.advance();continue e}}break}}function Jy(o,e,t){for(let n=e,r;(r=o[n])!=65535;n++)if(r==t)return n-e;return-1}function s1(o,e,t,n){let r=Jy(t,n,e);return r<0||Jy(t,n,o)<r}var Ln=typeof process<"u"&&process.env&&/\bparse\b/.test(process.env.LOG),xf=null,Yy;(function(o){o[o.Margin=25]="Margin"})(Yy||(Yy={}));function Zy(o,e,t){let n=o.cursor(ze.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 wf=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?Zy(e.tree,e.from+e.offset,1)-e.offset:e.from,this.safeTo=e.openEnd?Zy(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 be){if(i==e){if(i<this.safeFrom)return null;let l=i+s.length;if(l<=this.safeTo){let a=s.prop(se.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}}},Tf=class{constructor(e,t){this.stream=t,this.tokens=[],this.mainToken=null,this.actions=[],this.tokens=e.tokenizers.map(n=>new js)}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 c=0;c<s.length;c++){if(!(1<<c&i))continue;let u=s[c],d=this.tokens[c];if(!(n&&!u.fallback)&&((u.contextual||d.start!=e.pos||d.mask!=i||d.context!=l)&&(this.updateCachedToken(d,u,e),d.mask=i,d.context=l),d.lookAhead>d.end+25&&(a=Math.max(d.lookAhead,a)),d.value!=0)){let f=t;if(d.extended>-1&&(t=this.addActions(e,d.extended,d.end,t)),t=this.addActions(e,d.value,d.end,t),!u.extend&&(n=d,t>f))break}}for(;this.actions.length>t;)this.actions.pop();return a&&e.setLookAhead(a),!n&&e.pos==this.stream.end&&(n=new js,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 js,{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 c=i.stateSlot(s,a?2:1);;c+=3){if(l[c]==65535)if(l[c+1]==1)c=vo(l,c+2);else{r==0&&l[c+1]==2&&(r=this.putAction(vo(l,c+2),t,n,r));break}l[c]==t&&(r=this.putAction(vo(l,c+1),t,n,r))}return r}},ex;(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"})(ex||(ex={}));var kf=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 vf(t,r),this.tokens=new Tf(e,this.stream),this.topTerm=e.top[1];let{from:s}=r[0];this.stacks=[Xs.start(this,e.top[0],s)],this.fragments=n.length&&this.stream.end-s>e.bufferLength*4?new wf(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&&i1(r);if(i)return this.stackToTree(i);if(this.parser.strict)throw Ln&&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 c=n[a];if(l.sameState(c)||l.buffer.length>500&&c.buffer.length>500)if((l.score-c.score||l.buffer.length-c.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=Ln?this.stackID(e)+" -> ":"";if(this.stoppedAt!=null&&r>this.stoppedAt)return e.forceReduce()?e:null;if(this.fragments){let c=e.curContext&&e.curContext.tracker.strict,u=c?e.curContext.hash:0;for(let d=this.fragments.nodeAt(r);d;){let f=this.parser.nodeSet.types[d.type.id]==d.type?s.getGoto(e.state,d.type.id):-1;if(f>-1&&d.length&&(!c||(d.prop(se.contextHash)||0)==u))return e.useNode(d,f),Ln&&console.log(i+this.stackID(e)+` (via reuse of ${s.getName(d.type.id)})`),!0;if(!(d instanceof be)||d.children.length==0||d.positions[0]>0)break;let h=d.children[0];if(h instanceof be&&d.positions[0]==0)d=h;else break}}let l=s.stateSlot(e.state,4);if(l>0)return e.reduce(l),Ln&&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 c=0;c<a.length;){let u=a[c++],d=a[c++],f=a[c++],h=c==a.length||!n,p=h?e:e.split();if(p.apply(u,d,f),Ln&&console.log(i+this.stackID(p)+` (via ${u&65536?`reduce of ${s.getName(u&65535)}`:"shift"} for ${s.getName(d)} @ ${r}${p==e?"":", split"})`),h)return!0;p.pos>r?t.push(p):n.push(p)}return!1}advanceFully(e,t){let n=e.pos;for(;;){if(!this.advanceStack(e,null,null))return!1;if(e.pos>n)return tx(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],c=t[(i<<1)+1],u=Ln?this.stackID(l)+" -> ":"";if(l.deadEnd&&(s||(s=!0,l.restart(),Ln&&console.log(u+this.stackID(l)+" (restarted)"),this.advanceFully(l,n))))continue;let d=l.split(),f=u;for(let h=0;d.forceReduce()&&h<10&&(Ln&&console.log(f+this.stackID(d)+" (via force-reduce)"),!this.advanceFully(d,n));h++)Ln&&(f=this.stackID(d)+" -> ");for(let h of l.recoverByInsert(a))Ln&&console.log(u+this.stackID(h)+" (via recover-insert)"),this.advanceFully(h,n);this.stream.end>l.pos?(c==l.pos&&(c++,a=0),l.recoverByDelete(a,c),Ln&&console.log(u+this.stackID(l)+` (via recover-delete ${this.parser.getName(a)})`),tx(l,n)):(!r||r.score<l.score)&&(r=l)}return r}stackToTree(e){return e.close(),be.build({buffer:Js.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=(xf||(xf=new WeakMap)).get(e);return t||xf.set(e,t=String.fromCodePoint(this.nextStackID++)),t+e}};function tx(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 Ef=class{constructor(e,t,n){this.source=e,this.flags=t,this.disabled=n}allows(e){return!this.disabled||this.disabled[e]==0}};var Lr=class extends jo{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,c){r[l].push([a,a.deserialize(String(c))])}if(e.nodeProps)for(let l of e.nodeProps){let a=l[0];typeof a=="string"&&(a=se[a]);for(let c=1;c<l.length;){let u=l[c++];if(u>=0)s(u,a,l[c++]);else{let d=l[c+-u];for(let f=-u;f>0;f--)s(l[c++],a,d);c++}}}this.nodeSet=new xo(t.map((l,a)=>je.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=El(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(nx),this.states=El(e.states,Uint32Array),this.data=El(e.stateData),this.goto=El(e.goto),this.maxTerm=e.maxTerm,this.tokenizers=e.tokenizers.map(l=>typeof l=="number"?new Xo(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 kf(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 c=s+(i>>1);s<c;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=vo(n,s+2)];else{if(n[s+1]==2)return vo(n,s+2);break}if(i==t||i==0)return vo(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=vo(this.data,s+2);else break;r=t(vo(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=vo(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(Lr.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]=nx(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 Ef(e,n,r)}static deserialize(e){return new Lr(e)}};function vo(o,e){return o[e]|o[e+1]<<16}function i1(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 nx(o){if(o.external){let e=o.extend?1:0;return(t,n)=>o.external(t,n)<<1|e}return o.get}var Ml=Lr.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 Qn=require("@vuu-ui/vuu-utils");var $t,rx=class{constructor(){qt(this,$t,void 0)}setFilterCombinatorOp(e,t=Q(this,$t)){(0,Qn.isMultiClauseFilter)(t)&&t.op===e||Mn(this,$t,{op:e,filters:[Q(this,$t)]})}add(e){if(Q(this,$t)===void 0)Mn(this,$t,e);else if((0,Qn.isMultiClauseFilter)(Q(this,$t)))Q(this,$t).filters.push(e);else throw Error("Invalid filter passed to FilterExpression")}setColumn(e,t=Q(this,$t)){if((0,Qn.isMultiClauseFilter)(t)){let n=t.filters.at(-1);n&&this.setColumn(e,n)}else t&&(t.column=e)}setOp(e,t=Q(this,$t)){if((0,Qn.isMultiClauseFilter)(t)){let n=t.filters.at(-1);n&&this.setOp(e,n)}else t&&(t.op=e)}setValue(e,t=Q(this,$t)){var n;if((0,Qn.isMultiClauseFilter)(t)){let r=t.filters.at(-1);r&&this.setValue(e,r)}else(0,Qn.isMultiValueFilter)(t)?((n=t.values)!=null||(t.values=[]),t.values.push(e)):(0,Qn.isSingleValueFilter)(t)&&(t.value=e)}toJSON(e=Q(this,$t)){return this.name?{...e,name:this.name}:e}};$t=new WeakMap;var ZK=Ml.configure({strict:!0});var Tc=require("@vuu-ui/vuu-utils"),a1=require("react");var{KEY:dz}=Tc.metadataKeys;var c1=o=>o.type==="vuu-links";var u1=o=>o.type==="vuu-menu",Pf=o=>u1(o)||c1(o),Df=o=>o.type==="vuu-link-created"||o.type==="vuu-link-removed";var If=require("react"),d1=require("@vuu-ui/vuu-data");var kc=require("@vuu-ui/vuu-utils"),Pl=require("react"),{SELECTED:kz}=kc.metadataKeys;var ix=require("react");var y1=require("@vuu-ui/vuu-utils"),Dl=require("react");function f1(o,...e){let t=new Set(o);for(let n of e)for(let r of n)t.add(r);return t}var lx="ArrowUp",ax="ArrowDown",cx="ArrowLeft",ux="ArrowRight";var dx="Home",fx="End",hx="PageUp",px="PageDown";var h1=new Set(["Enter","Delete"," "]),p1=new Set(["Tab"]),m1=new Set(["ArrowRight","ArrowLeft"]),g1=new Set([dx,fx,hx,px,ax,cx,ux,lx]),b1=new Set(["F1","F2","F3","F4","F5","F6","F7","F8","F9","F10","F11","F12"]),Iz=f1(h1,g1,m1,b1,p1);var v1=require("@vuu-ui/vuu-utils"),Ec=require("react");var Rf=require("react");var x1=new Map,C1=(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}},zz=new ResizeObserver(o=>{for(let e of o){let{target:t,borderBoxSize:n,contentBoxSize:r}=e,s=x1.get(t);if(s){let[{blockSize:i,inlineSize:l}]=n,[{blockSize:a,inlineSize:c}]=r,{onResize:u,measurements:d}=s,f=!1;for(let[h,p]of Object.entries(d)){let m=C1(t,{height:i,width:l,contentHeight:a,contentWidth:c},h);m!==p&&(f=!0,d[h]=m)}f&&u&&u(d)}}});var Jo=require("@vuu-ui/vuu-utils"),Il=require("react"),{IDX:S1}=Jo.metadataKeys,w1=[],Af=({selectionModel:o,onSelectionChange:e})=>{let t=(0,Il.useRef)(-1),n=(0,Il.useRef)(w1);return(0,Il.useCallback)((s,i,l)=>{let{[S1]:a}=s,{current:c}=t,{current:u}=n,f=((0,Jo.isRowSelected)(s)?Jo.deselectItem:Jo.selectItem)(o,u,a,i,l,c);n.current=f,t.current=a,e&&e(f)},[e,o])};var tt=require("@vuu-ui/vuu-utils"),T1=require("react");var Jz=tt.metadataKeys.count;var mx=require("react");var So=require("react"),Mc=require("@vuu-ui/vuu-utils"),k1=15e5,E1={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},M1=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}},Lf=({columns:o,headerHeight:e,headings:t,rowCount:n,rowHeight:r,size:s})=>{let i=(0,So.useRef)(0),a=Math.min(n,k1)*r,u=n*r-a,{pinnedWidthLeft:d,pinnedWidthRight:f,unpinnedWidth:h}=(0,So.useMemo)(()=>M1(o),[o]),[p,m]=(0,So.useMemo)(()=>(0,Mc.actualRowPositioning)(r),[r]),[g,y]=(0,So.useMemo)(()=>u?(0,Mc.virtualRowPositioning)(r,u,i):[p,m],[m,p,u,r]),E=(0,So.useCallback)(v=>{i.current=v},[]);return(0,So.useMemo)(()=>{var v;if(s){let x=t.length,C=15,b=d+h+f,S=b>s.width?C:0,M=e*(1+x),w=a-(((v=s==null?void 0:s.height)!=null?v:0)-S)+M,k=b-s.width+d,L=(s.height-e)/r,T=Number.isInteger(L)?L+1:Math.ceil(L),P=s.height-M,R=a>P?C:0;return{contentHeight:a,getRowAtPosition:y,getRowOffset:g,horizontalScrollbarHeight:S,maxScrollContainerScrollHorizontal:k,maxScrollContainerScrollVertical:w,pinnedWidthLeft:d,pinnedWidthRight:f,rowCount:T,contentWidth:b,setPctScrollTop:E,totalHeaderHeight:M,verticalScrollbarWidth:R,viewportBodyHeight:P}}else return E1},[s,t.length,d,h,f,a,e,r,y,g,E])};var gx=require("@vuu-ui/vuu-utils"),Rl=require("react");var{KEY:M8,IS_EXPANDED:P8,IS_LEAF:D8}=Ys.metadataKeys;var P1=U(require("classnames"));var D1=require("@vuu-ui/vuu-utils"),yx=require("react/jsx-runtime");var xx=U(require("classnames")),ei=require("@vuu-ui/vuu-utils");var Zs=require("react/jsx-runtime"),Ll="vuuJsonCell",{IS_EXPANDED:I1,KEY:R1}=ei.metadataKeys,A1=o=>{let e=o.lastIndexOf("|");return e===-1?"":o.slice(e+1)},L1=({column:o,row:e})=>{let{key:t}=o,n=e[t],r=!1;(0,ei.isJsonAttribute)(n)&&(n=n.slice(0,-1),r=!0);let s=A1(e[R1]),i=(0,xx.default)({[`${Ll}-name`]:s===n,[`${Ll}-value`]:s!==n,[`${Ll}-group`]:r});if(r){let l=e[I1]?"minus-box":"plus-box";return(0,Zs.jsxs)("span",{className:i,children:[(0,Zs.jsx)("span",{className:`${Ll}-value`,children:n}),(0,Zs.jsx)("span",{className:`${Ll}-toggle`,"data-icon":l})]})}else return n?(0,Zs.jsx)("span",{className:i,children:n}):null};(0,ei.registerComponent)("json",L1,"cell-renderer",{description:"JSON formatter",label:"JSON formatter",serverDataType:"json"});var N1=U(require("classnames")),H1=require("react");var ti=require("react");var vx=require("react/jsx-runtime"),Cx=()=>{},O1="vuuColumnResizerNext",Ol=({onDrag:o,onDragEnd:e=Cx,onDragStart:t=Cx})=>{let n=(0,ti.useRef)(0),r=(0,ti.useCallback)(l=>{l.stopPropagation&&l.stopPropagation(),l.preventDefault&&l.preventDefault();let a=Math.round(l.clientX),c=a-n.current;n.current=a,c!==0&&o(l,c)},[o]),s=(0,ti.useCallback)(l=>{window.removeEventListener("mouseup",s),window.removeEventListener("mousemove",r),e(l)},[e,r]),i=(0,ti.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,vx.jsx)("div",{className:O1,onMouseDown:i})};var Yo=require("react"),Nl=({column:o,onResize:e,rootRef:t})=>{let n=(0,Yo.useRef)(0),[r,s]=(0,Yo.useState)(!1),{name:i}=o,l=(0,Yo.useCallback)(()=>{if(console.log("onResizeStart"),e&&t.current){console.log("handleResizeStart");let{width:u}=t.current.getBoundingClientRect();n.current=Math.round(u),s(!0),e==null||e("begin",i)}},[i,e,t]),a=(0,Yo.useCallback)((u,d)=>{if(t.current&&e){let{width:f}=t.current.getBoundingClientRect(),h=Math.round(f)+d;h!==n.current&&h>0&&(e("resize",i,h),n.current=h)}},[i,e,t]),c=(0,Yo.useCallback)(()=>{e&&(e("end",i,n.current),setTimeout(()=>{s(!1)},80))},[i,e]);return{isResizing:r,onDrag:a,onDragStart:l,onDragEnd:c}};var Sx=require("@vuu-ui/vuu-utils"),wx=U(require("classnames")),Tx=require("react"),wo=(o,e,t)=>(0,Tx.useMemo)(()=>{let n=(0,wx.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,Sx.getColumnStyle)(o);return{className:n,style:r}},[o,e,t]);var Ex=U(require("classnames")),Mx=require("react");var Pc=require("react/jsx-runtime"),kx="vuuColumnHeaderPill",Or=({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,Mx.useCallback)(l=>{l.preventDefault(),l.stopPropagation(),n==null||n(t)},[t,n]);return(0,Pc.jsxs)("div",{...s,className:(0,Ex.default)(kx,e),children:[o,r?(0,Pc.jsx)("span",{className:`${kx}-removeButton`,role:"button","data-icon":"cross",onClick:i}):null]})};var ni=require("react/jsx-runtime"),Of=({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,ni.jsxs)(Or,{...e,column:o,children:[(0,ni.jsx)("span",{className:"vuuGroupColumnPill-label",children:t}),r!==void 0?(0,ni.jsx)("span",{"data-icon":r}):null,typeof n=="number"?(0,ni.jsx)("span",{className:"vuuSortPosition",children:Math.abs(n)}):null]})};var Hl=require("react/jsx-runtime"),Px=({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,Hl.jsxs)(Or,{column:o,children:[(0,Hl.jsx)("span",{"data-icon":e}),typeof o.sorted=="number"?(0,Hl.jsx)("span",{className:"vuuSortPosition",children:Math.abs(o.sorted)}):null]})};var Dx=require("react/jsx-runtime"),F1=require("react");var Ix=U(require("classnames")),ri=require("react");var Dc=require("@vuu-ui/vuu-layout");var oi=require("react/jsx-runtime"),Rx=require("react"),Nf="vuuTableNextGroupHeaderCell",B1=(o,e)=>o===e?o:e,Ic=({column:o,className:e,onRemoveColumn:t,onResize:n,...r})=>{let s=(0,ri.useRef)(null),{isResizing:i,...l}=Nl({column:o,onResize:n,rootRef:s}),[a,c]=(0,ri.useState)(o.columns),{className:u,style:d}=wo(o,Nf,!0),f=a.length>1?{removable:!0,onRemove:t}:void 0,h=(0,ri.useCallback)((p,m)=>{c(g=>{let y=g.slice(),[E]=y.splice(p,1);return m===-1?y.concat(E):(y.splice(m,0,E),y)})},[]);return(0,Dc.useLayoutEffectSkipFirst)(()=>{c(p=>B1(p,o.columns))},[o.columns]),(0,oi.jsxs)("div",{...r,className:(0,Ix.default)(u,"vuuTableNextHeaderCell",e,{[`${Nf}-pending`]:o.groupConfirmed===!1}),ref:s,role:"columnheader",style:d,children:[(0,oi.jsx)(Dc.OverflowContainer,{allowDragDrop:!0,className:`${Nf}-inner`,height:24,onMoveItem:h,overflowPosition:"start",children:a.map(p=>(0,Rx.createElement)(Of,{...f,column:p,key:p.key}))}),(0,oi.jsx)(Or,{column:o,removable:!0,onRemove:t}),o.resizeable!==!1?(0,oi.jsx)(Ol,{...l}):null]})};var Rc=require("react");var Ax=U(require("classnames")),Nr=require("react");var Ox=require("react/jsx-runtime"),V1=o=>{if(o){let{bottom:e,left:t}=o.getBoundingClientRect();return{x:t,y:e+6}}},Lx=({className:o,column:e,...t})=>{let n=(0,Nr.useRef)(null),[r,s]=(0,Nr.useState)(!1),[i]=po(),l=(0,Nr.useCallback)(()=>{s(!1)},[]),a=(0,Nr.useCallback)(c=>{s(!0),i(c,"column-menu",{column:e,ContextMenuProps:{className:"vuuColumnMenuList",onClose:l,position:V1(n.current)}})},[e,l,i]);return(0,Ox.jsx)("span",{...t,className:(0,Ax.default)("vuuTable-columnMenu",o,{"vuuTable-columnMenu-open":r}),"data-icon":"more-vert",onClick:a,ref:n})};var Nx=U(require("classnames"));var Hr=require("react/jsx-runtime"),Hf="vuuTableNextHeaderCell",Hx=({className:o,column:e,onClick:t,onResize:n,...r})=>{var m;let s=(0,Rc.useRef)(null),{isResizing:i,...l}=Nl({column:e,onResize:n,rootRef:s}),a=(0,Rc.useCallback)(g=>{console.log(`click isResizing ${i}`),!i&&(t==null||t(g))},[i,t]),{className:c,style:u}=wo(e,Hf,!0),d=(0,Hr.jsx)(Lx,{column:e}),f=(0,Hr.jsx)("div",{className:`${Hf}-label`,children:(m=e.label)!=null?m:e.name}),h=(0,Hr.jsx)(Px,{column:e}),p=e.align==="right"?[h,f,d]:[d,f,h];return(0,Hr.jsxs)("div",{...r,className:(0,Nx.default)(c,o,{[`${Hf}-resizing`]:i}),onClick:a,ref:s,role:"columnheader",style:u,children:[...p,e.resizeable!==!1?(0,Hr.jsx)(Ol,{...l}):null]})};var Bi=require("@vuu-ui/vuu-utils"),Wp=U(require("classnames")),lw=require("react");var Zt=require("@vuu-ui/vuu-utils"),Wx=U(require("classnames")),Fl=require("react");var Fx=require("@vuu-ui/vuu-utils"),Bx=require("react");var Ff=require("react/jsx-runtime"),{IDX:$1}=Fx.metadataKeys,K1="vuuTableNextCell",Vx=({column:o,columnMap:e,onDataEdited:t,row:n})=>{let{className:r,style:s}=wo(o,K1),{CellRenderer:i,name:l,valueFormatter:a}=o,c=e[l],u=(0,Bx.useCallback)(d=>(t==null||t(n[$1],l,d),!0),[l,t,n]);return(0,Ff.jsx)("div",{className:r,role:"cell",style:s,children:i?(0,Ff.jsx)(i,{column:o,columnMap:e,onCommit:u,row:n}):a(n[c])})};var Ac=require("@vuu-ui/vuu-utils"),$x=require("react");var Kx=U(require("classnames"));var si=require("react/jsx-runtime"),{IS_LEAF:z1}=Ac.metadataKeys,Bf="vuuTableNextGroupCell",zx=({column:o,onClick:e,row:t})=>{let{columns:n}=o,[r,s]=(0,Ac.getGroupValueAndOffset)(n,t),{className:i,style:l}=wo(o,Bf),a=(0,$x.useCallback)(d=>{e==null||e(d,o)},[o,e]),c=t[z1],u=Array(s).fill(0).map((d,f)=>(0,si.jsx)("span",{className:`${Bf}-spacer`},f));return(0,si.jsxs)("div",{className:(0,Kx.default)(i,"vuuTableNextCell"),role:"cell",style:l,onClick:c?void 0:a,children:[u,c?null:(0,si.jsx)("span",{className:`${Bf}-toggle`,"data-icon":"triangle-right"}),(0,si.jsx)("span",{children:r})]})};var Lc=require("react/jsx-runtime"),Ux=require("react"),{IDX:W1,IS_EXPANDED:U1,SELECTED:G1}=Zt.metadataKeys,Zo="vuuTableNextRow",Vf=(0,Fl.memo)(({className:o,columnMap:e,columns:t,row:n,offset:r,onClick:s,onDataEdited:i,onToggleGroup:l,zebraStripes:a=!1,...c})=>{let{[W1]:u,[U1]:d,[G1]:f}=n,h=(0,Fl.useCallback)(x=>{let C=x.shiftKey,b=x.ctrlKey||x.metaKey;s==null||s(n,C,b)},[s,n]),{True:p,First:m,Last:g}=Zt.RowSelected,y=(0,Wx.default)(Zo,o,{[`${Zo}-even`]:a&&u%2===0,[`${Zo}-expanded`]:d,[`${Zo}-selected`]:f&p,[`${Zo}-selectedStart`]:f&m,[`${Zo}-selectedEnd`]:f&g}),E={transform:`translate3d(0px, ${r}px, 0px)`},v=(0,Fl.useCallback)((x,C)=>{((0,Zt.isGroupColumn)(C)||(0,Zt.isJsonGroup)(C,n))&&(x.stopPropagation(),l==null||l(n,C))},[l,n]);return(0,Ux.createElement)("div",{...c,"aria-rowindex":n[0],key:`row-${n[0]}`,role:"row",className:y,onClick:h,style:E},(0,Lc.jsx)("span",{className:`${Zo}-selectionDecorator vuuStickyLeft`}),t.filter(Zt.notHidden).map(x=>{let C=(0,Zt.isGroupColumn)(x),b=(0,Zt.isJsonColumn)(x);return(0,Lc.jsx)(C?zx:Vx,{column:x,columnMap:e,onClick:C||b?v:void 0,onDataEdited:i,row:n},x.key)}),(0,Lc.jsx)("span",{className:`${Zo}-selectionDecorator vuuStickyRight`}))});Vf.displayName="Row";var sw=require("@vuu-ui/vuu-layout");var Gx=require("@vuu-ui/vuu-utils"),_1=o=>typeof o=="string",Q1=(o,e)=>_1(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,Gx.registerComponent)("vuu-case",Q1,"data-edit-validator",{});var _x=require("@vuu-ui/vuu-utils"),q1=o=>typeof o=="string",j1="value does not match expected pattern",X1=(o,e)=>{if(typeof o.value!="string")throw Error("Pattern validation rule must provide pattern");if(q1(e)){if(e==="")return!0;{let{message:t=j1}=o;return new RegExp(o.value).test(e)||t}}else return"value must be a string"};(0,_x.registerComponent)("vuu-pattern",X1,"data-edit-validator",{});var Kt=require("@vuu-ui/vuu-utils"),qx=U(require("classnames"),1);var Fr=require("@vuu-ui/vuu-utils"),Oc=require("react"),J1=[void 0,void 0,void 0,void 0];function Qx(o,e,t){var d;let n=(0,Oc.useRef)(),[r,s,i,l]=n.current||J1,{type:a}=t,c=(0,Fr.isTypeDescriptor)(a)?(d=a.formatting)==null?void 0:d.decimals:void 0,u=o===r&&(0,Fr.isValidNumber)(e)&&(0,Fr.isValidNumber)(s)&&t===i?(0,Fr.getMovingValueDirection)(e,l,s,c):"";return(0,Oc.useEffect)(()=>{n.current=[o,e,t,u]}),u}var Hc=require("react/jsx-runtime"),Y1=String.fromCharCode(11014),Z1=String.fromCharCode(11015),{KEY:eP}=Kt.metadataKeys,Nc="vuuBackgroundCellDeprecated",Bl={ArrowOnly:"arrow",BackgroundOnly:"bg-only",ArrowBackground:"arrow-bg"},tP=o=>(0,Kt.isTypeDescriptor)(o)&&o.renderer&&"flashStyle"in o.renderer?o.renderer.flashStyle:Bl.BackgroundOnly,nP=({column:o,row:e})=>{let{key:t,type:n,valueFormatter:r}=o,s=e[t],i=tP(n),l=Qx(e[eP],s,o),a=i===Bl.ArrowOnly||i===Bl.ArrowBackground?l===Kt.UP1||l===Kt.UP2?Y1:l===Kt.DOWN1||l===Kt.DOWN2?Z1:null:null,c=l?" "+l:"",u=(0,qx.default)(Nc,c,{[`${Nc}-arrowOnly`]:i===Bl.ArrowOnly,[`${Nc}-arrowBackground`]:i===Bl.ArrowBackground});return(0,Hc.jsxs)("div",{className:u,tabIndex:-1,children:[(0,Hc.jsx)("div",{className:`${Nc}-flasher`,children:a}),r(e[o.key])]})};(0,Kt.registerComponent)("background",nP,"cell-renderer",{description:"Background Cell renderer for VuuTable",label:"Background Cell (deprecated)",serverDataType:["long","int","double"]});var To=require("@vuu-ui/vuu-utils"),jx=U(require("classnames"),1);var Br=require("react/jsx-runtime"),Vl="vuuProgressCell",oP=({column:o,columnMap:e,row:t})=>{let{type:n}=o,r=t[o.key],s=!1,i=0;if((0,To.isTypeDescriptor)(n)&&(0,To.isColumnTypeRenderer)(n.renderer)){let{associatedField:a}=n.renderer;if(a){let c=t[e[a]];if(typeof(0,To.isValidNumber)(r)&&(0,To.isValidNumber)(c))i=Math.min(Math.round(r/c*100),100),i=Math.min(Math.round(r/c*100),100),s=isFinite(i);else{let u=parseFloat(r);if(Number.isFinite(u)){let d=parseFloat(c);Number.isFinite(d)&&(i=Math.min(Math.round(u/d*100),100),s=isFinite(i))}}}else throw Error("ProgressCell associatedField is required to render")}let l=(0,jx.default)(Vl,{});return(0,Br.jsxs)("div",{className:l,tabIndex:-1,children:[s?(0,Br.jsxs)("span",{className:`${Vl}-track`,children:[(0,Br.jsx)("span",{className:`${Vl}-bg`}),(0,Br.jsx)("span",{className:`${Vl}-bar`,style:{"--progress-bar-pct":`-${100-i}%`}})]}):null,(0,Br.jsx)("span",{className:`${Vl}-text`,children:`${i} %`})]})};(0,To.registerComponent)("vuu.progress",oP,"cell-renderer",{description:"Progress formatter",label:"Progress formatter",serverDataType:["long","int","double"]});var zt=require("@vuu-ui/vuu-utils"),Jx=U(require("classnames"),1);var Vr=require("@vuu-ui/vuu-utils"),Fc=require("react"),rP=[void 0,void 0,void 0,void 0];function Xx(o,e,t){var d;let n=(0,Fc.useRef)(),[r,s,i,l]=n.current||rP,{type:a}=t,c=(0,Vr.isTypeDescriptor)(a)?(d=a.formatting)==null?void 0:d.decimals:void 0,u=o===r&&(0,Vr.isValidNumber)(e)&&(0,Vr.isValidNumber)(s)&&t===i?(0,Vr.getMovingValueDirection)(e,l,s,c):"";return(0,Fc.useEffect)(()=>{n.current=[o,e,t,u]}),u}var Vc=require("react/jsx-runtime"),sP=String.fromCharCode(11014),iP=String.fromCharCode(11015),{KEY:lP}=zt.metadataKeys,Bc="vuuBackgroundCell",$l={ArrowOnly:"arrow",BackgroundOnly:"bg-only",ArrowBackground:"arrow-bg"},aP=o=>(0,zt.isTypeDescriptor)(o)&&o.renderer&&"flashStyle"in o.renderer?o.renderer.flashStyle:$l.BackgroundOnly,cP=({column:o,row:e})=>{let{key:t,type:n,valueFormatter:r}=o,s=e[t],i=aP(n),l=Xx(e[lP],s,o),a=i===$l.ArrowOnly||i===$l.ArrowBackground?l===zt.UP1||l===zt.UP2?sP:l===zt.DOWN1||l===zt.DOWN2?iP:null:null,c=l?" "+l:"",u=(0,Jx.default)(Bc,c,{[`${Bc}-arrowOnly`]:i===$l.ArrowOnly,[`${Bc}-arrowBackground`]:i===$l.ArrowBackground});return(0,Vc.jsxs)("div",{className:u,tabIndex:-1,children:[(0,Vc.jsx)("div",{className:`${Bc}-flasher`,children:a}),r(e[o.key])]})};console.log("register BackgroundCellNext");(0,zt.registerComponent)("background-next",cP,"cell-renderer",{description:"Change background color of cell when value changes",label:"Background Flash",serverDataType:["long","int","double"]});var uP=require("@salt-ds/core"),dP=require("@salt-ds/lab"),fP=U(require("classnames"),1),hP=require("react");var Yx=require("react/jsx-runtime");var MS=require("@vuu-ui/vuu-utils"),pa=require("@salt-ds/core");var tC=require("@salt-ds/core"),gP=U(require("classnames"),1),bP=require("react");var $f=require("@salt-ds/core"),pP=require("@salt-ds/lab"),mP=require("@vuu-ui/vuu-utils"),Zx=require("react"),eC=require("react/jsx-runtime");var nC=require("react/jsx-runtime");var ko=require("@vuu-ui/vuu-utils"),$c=require("react");var X6=[{description:"Default formatter for columns with data type double",label:"Default Renderer (data type double)",name:"default-double"},...(0,ko.getRegisteredCellRenderers)("double")];var Bp=require("@vuu-ui/vuu-utils"),Fu=require("@salt-ds/core"),kS=require("react");var fe=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),fn.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),fn.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 zr(this),s=new zr(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 zr(this,e)}iterRange(e,t=this.length){return new Uc(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 Gc(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]?fe.empty:e.length<=32?new Ne(e):fn.from(Ne.split(e,[]))}},Ne=class extends fe{constructor(e,t=yP(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 zf(r,l,n,i);r=l+1,n++}}decompose(e,t,n,r){let s=e<=0&&t>=this.length?this:new Ne(oC(this.text,e,t),Math.min(t,this.length)-Math.max(0,e));if(r&1){let i=n.pop(),l=Wc(s.text,i.text.slice(),0,s.length);if(l.length<=32)n.push(new Ne(l,i.length+s.length));else{let a=l.length>>1;n.push(new Ne(l.slice(0,a)),new Ne(l.slice(a)))}}else n.push(s)}replace(e,t,n){if(!(n instanceof Ne))return super.replace(e,t,n);let r=Wc(this.text,Wc(n.text,oC(this.text,0,e)),t),s=this.length+n.length-(t-e);return r.length<=32?new Ne(r,s):fn.from(Ne.split(r,[]),s)}sliceString(e,t=this.length,n=`
4
- `){let r="";for(let s=0,i=0;s<=t&&i<this.text.length;i++){let l=this.text[i],a=s+l.length;s>e&&i&&(r+=n),e<a&&t>s&&(r+=l.slice(Math.max(0,e-s),t-s)),s=a+1}return r}flatten(e){for(let t of this.text)e.push(t)}scanIdentical(){return 0}static split(e,t){let n=[],r=-1;for(let s of e)n.push(s),r+=s.length+1,n.length==32&&(t.push(new Ne(n,r)),n=[],r=-1);return r>-1&&t.push(new Ne(n,r)),t}},fn=class extends fe{constructor(e,t){super(),this.children=e,this.length=t,this.lines=0;for(let n of e)this.lines+=n.lines}lineInner(e,t,n,r){for(let s=0;;s++){let i=this.children[s],l=r+i.length,a=n+i.lines-1;if((t?a:l)>=e)return i.lineInner(e,t,n,r);r=l+1,n=a+1}}decompose(e,t,n,r){for(let s=0,i=0;i<=t&&s<this.children.length;s++){let l=this.children[s],a=i+l.length;if(e<=a&&t>=i){let c=r&((i<=e?1:0)|(a>=t?2:0));i>=e&&a<=t&&!c?n.push(l):l.decompose(e-i,t-i,n,c)}i=a+1}}replace(e,t,n){if(n.lines<this.lines)for(let r=0,s=0;r<this.children.length;r++){let i=this.children[r],l=s+i.length;if(e>=s&&t<=l){let a=i.replace(e-s,t-s,n),c=this.lines-i.lines+a.lines;if(a.lines<c>>5-1&&a.lines>c>>5+1){let u=this.children.slice();return u[r]=a,new fn(u,this.length-(t-e)+n.length)}return super.replace(s,l,a)}s=l+1}return super.replace(e,t,n)}sliceString(e,t=this.length,n=`
5
- `){let r="";for(let s=0,i=0;s<this.children.length&&i<=t;s++){let l=this.children[s],a=i+l.length;i>e&&s&&(r+=n),e<a&&t>i&&(r+=l.sliceString(e-i,t-i,n)),i=a+1}return r}flatten(e){for(let t of this.children)t.flatten(e)}scanIdentical(e,t){if(!(e instanceof fn))return 0;let n=0,[r,s,i,l]=t>0?[0,0,this.children.length,e.children.length]:[this.children.length-1,e.children.length-1,-1,-1];for(;;r+=t,s+=t){if(r==i||s==l)return n;let a=this.children[r],c=e.children[s];if(a!=c)return n+a.scanIdentical(c,t);n+=a.length+1}}static from(e,t=e.reduce((n,r)=>n+r.length+1,-1)){let n=0;for(let h of e)n+=h.lines;if(n<32){let h=[];for(let p of e)p.flatten(h);return new Ne(h,t)}let r=Math.max(32,n>>5),s=r<<1,i=r>>1,l=[],a=0,c=-1,u=[];function d(h){let p;if(h.lines>s&&h instanceof fn)for(let m of h.children)d(m);else h.lines>i&&(a>i||!a)?(f(),l.push(h)):h instanceof Ne&&a&&(p=u[u.length-1])instanceof Ne&&h.lines+p.lines<=32?(a+=h.lines,c+=h.length+1,u[u.length-1]=new Ne(p.text.concat(h.text),p.length+1+h.length)):(a+h.lines>r&&f(),a+=h.lines,c+=h.length+1,u.push(h))}function f(){a!=0&&(l.push(u.length==1?u[0]:fn.from(u,c)),c=-1,a=u.length=0)}for(let h of e)d(h);return f(),l.length==1?l[0]:new fn(l,t)}};fe.empty=new Ne([""],0);function yP(o){let e=-1;for(let t of o)e+=t.length+1;return e}function Wc(o,e,t=0,n=1e9){for(let r=0,s=0,i=!0;s<o.length&&r<=n;s++){let l=o[s],a=r+l.length;a>=t&&(a>n&&(l=l.slice(0,n-r)),r<t&&(l=l.slice(t-r)),i?(e[e.length-1]+=l,i=!1):e.push(l)),r=a+1}return e}function oC(o,e,t){return Wc(o,[""],e,t)}var zr=class{constructor(e,t=1){this.dir=t,this.done=!1,this.lineBreak=!1,this.value="",this.nodes=[e],this.offsets=[t>0?1:(e instanceof Ne?e.text.length:e.children.length)<<1]}nextInner(e,t){for(this.done=this.lineBreak=!1;;){let n=this.nodes.length-1,r=this.nodes[n],s=this.offsets[n],i=s>>1,l=r instanceof Ne?r.text.length:r.children.length;if(i==(t>0?l:0)){if(n==0)return this.done=!0,this.value="",this;t>0&&this.offsets[n-1]++,this.nodes.pop(),this.offsets.pop()}else if((s&1)==(t>0?0:1)){if(this.offsets[n]+=t,e==0)return this.lineBreak=!0,this.value=`
6
- `,this;e--}else if(r instanceof Ne){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 Ne?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)}},Uc=class{constructor(e,t,n){this.value="",this.done=!1,this.cursor=new zr(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!=""}},Gc=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"&&(fe.prototype[Symbol.iterator]=function(){return this.iter()},zr.prototype[Symbol.iterator]=Uc.prototype[Symbol.iterator]=Gc.prototype[Symbol.iterator]=function(){return this});var zf=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}},ii="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<ii.length;o++)ii[o]+=ii[o-1];function xP(o){for(let e=1;e<ii.length;e+=2)if(ii[e]>o)return ii[e-1]<=o;return!1}function rC(o){return o>=127462&&o<=127487}var sC=8205;function St(o,e,t=!0,n=!0){return(t?dC:CP)(o,e,n)}function dC(o,e,t){if(e==o.length)return e;e&&fC(o.charCodeAt(e))&&hC(o.charCodeAt(e-1))&&e--;let n=qn(o,e);for(e+=Wr(n);e<o.length;){let r=qn(o,e);if(n==sC||r==sC||t&&xP(r))e+=Wr(r),n=r;else if(rC(r)){let s=0,i=e-2;for(;i>=0&&rC(qn(o,i));)s++,i-=2;if(s%2==0)break;e+=2}else break}return e}function CP(o,e,t){for(;e>0;){let n=dC(o,e-2,t);if(n<e)return n;e--}return 0}function fC(o){return o>=56320&&o<57344}function hC(o){return o>=55296&&o<56320}function qn(o,e){let t=o.charCodeAt(e);if(!hC(t)||e+1==o.length)return t;let n=o.charCodeAt(e+1);return fC(n)?(t-55296<<10)+(n-56320)+65536:t}function pC(o){return o<=65535?String.fromCharCode(o):(o-=65536,String.fromCharCode((o>>10)+55296,(o&1023)+56320))}function Wr(o){return o<65536?1:2}var Wf=/\r\n?|\n/,vt=function(o){return o[o.Simple=0]="Simple",o[o.TrackDel=1]="TrackDel",o[o.TrackBefore=2]="TrackBefore",o[o.TrackAfter=3]="TrackAfter",o}(vt||(vt={})),en=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){Uf(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 en(e)}composeDesc(e){return this.empty?e:e.empty?this:mC(this,e)}mapDesc(e,t=!1){return e.empty?this:Gf(this,e,t)}mapPos(e,t=-1,n=vt.Simple){let r=0,s=0;for(let i=0;i<this.sections.length;){let l=this.sections[i++],a=this.sections[i++],c=r+l;if(a<0){if(c>e)return s+(e-r);s+=l}else{if(n!=vt.Simple&&c>=e&&(n==vt.TrackDel&&r<e&&c>e||n==vt.TrackBefore&&r<e||n==vt.TrackAfter&&c>e))return null;if(c>e||c==e&&t<0&&!l)return e==r||t<0?s:s+a;s+=a}r=c}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 en(e)}static create(e){return new en(e)}},He=class extends en{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 Uf(this,(t,n,r,s,i)=>e=e.replace(r,r+(n-t),i),!1),e}mapDesc(e,t=!1){return Gf(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(fe.empty);n.push(i?e.slice(s,s+i):fe.empty)}s+=i}return new He(t,n)}compose(e){return this.empty?e:e.empty?this:mC(this,e,!0)}map(e,t=!1){return e.empty?this:Gf(this,e,t,!0)}iterChanges(e,t=!1){Uf(this,e,t)}get desc(){return en.create(this.sections)}filter(e){let t=[],n=[],r=[],s=new Ur(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 u=Math.min(s.len,a-l);Ct(r,u,-1);let d=s.ins==-1?-1:s.off==0?s.ins:0;Ct(t,u,d),d>0&&er(n,t,s.text),s.forward(u),l+=u}let c=e[i++];for(;l<c;){if(s.done)break e;let u=Math.min(s.len,c-l);Ct(t,u,-1),Ct(r,u,s.ins==-1?-1:s.off==0?s.ins:0),s.forward(u),l+=u}}return{changes:new He(t,n),filtered:en.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(u=!1){if(!u&&!r.length)return;i<t&&Ct(r,t-i,-1);let d=new He(r,s);l=l?l.compose(d.map(l)):d,r=[],s=[],i=0}function c(u){if(Array.isArray(u))for(let d of u)c(d);else if(u instanceof He){if(u.length!=t)throw new RangeError(`Mismatched change set length (got ${u.length}, expected ${t})`);a(),l=l?l.compose(u.map(l)):u}else{let{from:d,to:f=d,insert:h}=u;if(d>f||d<0||f>t)throw new RangeError(`Invalid change range ${d} to ${f} (in doc of length ${t})`);let p=h?typeof h=="string"?fe.of(h.split(n||Wf)):h:fe.empty,m=p.length;if(d==f&&m==0)return;d<i&&a(),d>i&&Ct(r,d-i,-1),Ct(r,f-d,m),er(s,r,p),i=f}}return c(e),a(!l),l}static empty(e){return new He(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(fe.empty);n[r]=fe.of(s.slice(1)),t.push(s[0],n[r].length)}}}return new He(t,n)}static createSet(e,t){return new He(e,t)}};function Ct(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 er(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(fe.empty);o.push(t)}}function Uf(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 c=r,u=s,d=fe.empty;for(;c+=l,u+=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,c,s,u,d),r=c,s=u}}}function Gf(o,e,t,n=!1){let r=[],s=n?[]:null,i=new Ur(o),l=new Ur(e);for(let a=-1;;)if(i.ins==-1&&l.ins==-1){let c=Math.min(i.len,l.len);Ct(r,c,-1),i.forward(c),l.forward(c)}else if(l.ins>=0&&(i.ins<0||a==i.i||i.off==0&&(l.len<i.len||l.len==i.len&&!t))){let c=l.len;for(Ct(r,l.ins,-1);c;){let u=Math.min(i.len,c);i.ins>=0&&a<i.i&&i.len<=u&&(Ct(r,0,i.ins),s&&er(s,r,i.text),a=i.i),i.forward(u),c-=u}l.next()}else if(i.ins>=0){let c=0,u=i.len;for(;u;)if(l.ins==-1){let d=Math.min(u,l.len);c+=d,u-=d,l.forward(d)}else if(l.ins==0&&l.len<u)u-=l.len,l.next();else break;Ct(r,c,a<i.i?i.ins:0),s&&a<i.i&&er(s,r,i.text),a=i.i,i.forward(i.len-u)}else{if(i.done&&l.done)return s?He.createSet(r,s):en.create(r);throw new Error("Mismatched change set lengths")}}function mC(o,e,t=!1){let n=[],r=t?[]:null,s=new Ur(o),i=new Ur(e);for(let l=!1;;){if(s.done&&i.done)return r?He.createSet(n,r):en.create(n);if(s.ins==0)Ct(n,s.len,0,l),s.next();else if(i.len==0&&!i.done)Ct(n,0,i.ins,l),r&&er(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),c=n.length;if(s.ins==-1){let u=i.ins==-1?-1:i.off?0:i.ins;Ct(n,a,u,l),r&&u&&er(r,n,i.text)}else i.ins==-1?(Ct(n,s.off?0:s.len,a,l),r&&er(r,n,s.textBit(a))):(Ct(n,s.off?0:s.len,i.off?0:i.ins,l),r&&!i.off&&er(r,n,i.text));l=(s.ins>a||i.ins>=0&&i.len>a)&&(l||n.length>c),s.forward2(a),i.forward(a)}}}}var Ur=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?fe.empty:e[t]}textBit(e){let{inserted:t}=this.set,n=this.i-2>>1;return n>=t.length&&!e?fe.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)}},Eo=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 Eo(n,r,this.flags)}extend(e,t=e){if(e<=this.anchor&&t>=this.anchor)return B.range(e,t);let n=Math.abs(e-this.anchor)>Math.abs(t-this.anchor)?e:t;return B.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 B.range(e.anchor,e.head)}static create(e,t,n){return new Eo(e,t,n)}},B=class{constructor(e,t){this.ranges=e,this.mainIndex=t}map(e,t=-1){return e.empty?this:B.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 B([this.main],0)}addRange(e,t=!0){return B.create([e].concat(this.ranges),t?0:this.mainIndex+1)}replaceRange(e,t=this.mainIndex){let n=this.ranges.slice();return n[t]=e,B.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 B(e.ranges.map(t=>Eo.fromJSON(t)),e.main)}static single(e,t=e){return new B([B.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 B.normalized(e.slice(),t);n=s.to}return new B(e,t)}static cursor(e,t=0,n,r){return Eo.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?Eo.create(t,e,24|s):Eo.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?B.range(a,l):B.range(l,a))}}return new B(e,t)}};function gC(o,e){for(let t of o.ranges)if(t.to>e)throw new RangeError("Selection points outside of document")}var Yf=0,re=class{constructor(e,t,n,r,s){this.combine=e,this.compareInput=t,this.compare=n,this.isStatic=r,this.id=Yf++,this.default=e([]),this.extensions=typeof s=="function"?s(this):s}static define(e={}){return new re(e.combine||(t=>t),e.compareInput||((t,n)=>t===n),e.compare||(e.combine?(t,n)=>t===n:Zf),!!e.static,e.enables)}of(e){return new li([],this,0,e)}compute(e,t){if(this.isStatic)throw new Error("Can't compute a static facet");return new li(e,this,1,t)}computeN(e,t){if(this.isStatic)throw new Error("Can't compute a static facet");return new li(e,this,2,t)}from(e,t){return t||(t=n=>n),this.compute([e],n=>t(n.field(e)))}};function Zf(o,e){return o==e||o.length==e.length&&o.every((t,n)=>t===e[n])}var li=class{constructor(e,t,n,r){this.dependencies=e,this.facet=t,this.type=n,this.value=r,this.id=Yf++}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,c=!1,u=[];for(let d of this.dependencies)d=="doc"?a=!0:d=="selection"?c=!0:((t=e[d.id])!==null&&t!==void 0?t:1)&1||u.push(e[d.id]);return{create(d){return d.values[i]=n(d),1},update(d,f){if(a&&f.docChanged||c&&(f.docChanged||f.selection)||_f(d,u)){let h=n(d);if(l?!iC(h,d.values[i],r):!r(h,d.values[i]))return d.values[i]=h,1}return 0},reconfigure:(d,f)=>{let h,p=f.config.address[s];if(p!=null){let m=Qc(f,p);if(this.dependencies.every(g=>g instanceof re?f.facet(g)===d.facet(g):g instanceof At?f.field(g,!1)==d.field(g,!1):!0)||(l?iC(h=n(d),m,r):r(h=n(d),m)))return d.values[i]=m,0}else h=n(d);return d.values[i]=h,1}}}};function iC(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 _f(o,e){let t=!1;for(let n of e)zl(o,n)&1&&(t=!0);return t}function vP(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 c=[];for(let u=0;u<n.length;u++){let d=Qc(a,n[u]);if(r[u]==2)for(let f of d)c.push(f);else c.push(d)}return e.combine(c)}return{create(a){for(let c of n)zl(a,c);return a.values[i]=l(a),1},update(a,c){if(!_f(a,s))return 0;let u=l(a);return e.compare(u,a.values[i])?0:(a.values[i]=u,1)},reconfigure(a,c){let u=_f(a,n),d=c.config.facets[e.id],f=c.facet(e);if(d&&!u&&Zf(t,d))return a.values[i]=f,0;let h=l(a);return e.compare(h,f)?(a.values[i]=f,0):(a.values[i]=h,1)}}}var lC=re.define({static:!0}),At=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 At(Yf++,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(lC).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,lC.of({field:this,create:e})]}get extension(){return this}},$r={lowest:4,low:3,default:2,high:1,highest:0};function Kl(o){return e=>new _c(e,o)}var Qr={highest:Kl($r.highest),high:Kl($r.high),default:Kl($r.default),low:Kl($r.low),lowest:Kl($r.lowest)},_c=class{constructor(e,t){this.inner=e,this.prec=t}},ci=class{of(e){return new Wl(this,e)}reconfigure(e){return ci.reconfigure.of({compartment:this,extension:e})}get(e){return e.config.compartments.get(this)}},Wl=class{constructor(e,t){this.compartment=e,this.inner=t}},ui=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 f of SP(e,t,i))f instanceof At?r.push(f):(s[f.facet.id]||(s[f.facet.id]=[])).push(f);let l=Object.create(null),a=[],c=[];for(let f of r)l[f.id]=c.length<<1,c.push(h=>f.slot(h));let u=n==null?void 0:n.config.facets;for(let f in s){let h=s[f],p=h[0].facet,m=u&&u[f]||[];if(h.every(g=>g.type==0))if(l[p.id]=a.length<<1|1,Zf(m,h))a.push(n.facet(p));else{let g=p.combine(h.map(y=>y.value));a.push(n&&p.compare(g,n.facet(p))?n.facet(p):g)}else{for(let g of h)g.type==0?(l[g.id]=a.length<<1|1,a.push(g.value)):(l[g.id]=c.length<<1,c.push(y=>g.dynamicSlot(y)));l[p.id]=c.length<<1,c.push(g=>vP(g,p,h))}}let d=c.map(f=>f(l));return new ui(e,i,d,l,a,s)}};function SP(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 c=n[a].indexOf(i);c>-1&&n[a].splice(c,1),i instanceof Wl&&t.delete(i.compartment)}if(r.set(i,l),Array.isArray(i))for(let c of i)s(c,l);else if(i instanceof Wl){if(t.has(i.compartment))throw new RangeError("Duplicate use of compartment in extensions");let c=e.get(i.compartment)||i.inner;t.set(i.compartment,c),s(c,l)}else if(i instanceof _c)s(i.inner,i.prec);else if(i instanceof At)n[l].push(i),i.provides&&s(i.provides,l);else if(i instanceof li)n[l].push(i),i.facet.extensions&&s(i.facet.extensions,$r.default);else{let c=i.extension;if(!c)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(c,l)}}return s(o,$r.default),n.reduce((i,l)=>i.concat(l))}function zl(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 Qc(o,e){return e&1?o.config.staticValues[e>>1]:o.values[e>>1]}var bC=re.define(),yC=re.define({combine:o=>o.some(e=>e),static:!0}),xC=re.define({combine:o=>o.length?o[0]:void 0,static:!0}),CC=re.define(),vC=re.define(),SC=re.define(),wC=re.define({combine:o=>o.length?o[0]:!1}),tn=class{constructor(e,t){this.type=e,this.value=t}static define(){return new Ul}},Ul=class{of(e){return new tn(this,e)}},Qf=class{constructor(e){this.map=e}of(e){return new De(this,e)}},De=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 De(this.type,t)}is(e){return this.type==e}static define(e={}){return new Qf(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}};De.reconfigure=De.define();De.appendConfig=De.define();var Fe=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&&gC(n,t.newLength),s.some(l=>l.type==Fe.time)||(this.annotations=s.concat(Fe.time.of(Date.now())))}static create(e,t,n,r,s,i){return new Fe(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(Fe.userEvent);return!!(t&&(t==e||t.length>e.length&&t.slice(0,e.length)==e&&t[e.length]=="."))}};Fe.time=tn.define();Fe.userEvent=tn.define();Fe.addToHistory=tn.define();Fe.remote=tn.define();function wP(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 TC(o,e,t){var n;let r,s,i;return t?(r=e.changes,s=He.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:De.mapEffects(o.effects,r).concat(De.mapEffects(e.effects,s)),annotations:o.annotations.length?o.annotations.concat(e.annotations):e.annotations,scrollIntoView:o.scrollIntoView||e.scrollIntoView}}function qf(o,e,t){let n=e.selection,r=ai(e.annotations);return e.userEvent&&(r=r.concat(Fe.userEvent.of(e.userEvent))),{changes:e.changes instanceof He?e.changes:He.of(e.changes||[],t,o.facet(xC)),selection:n&&(n instanceof B?n:B.single(n.anchor,n.head)),effects:ai(e.effects),annotations:r,scrollIntoView:!!e.scrollIntoView}}function kC(o,e,t){let n=qf(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=TC(n,qf(o,e[s],i?n.changes.newLength:o.doc.length),i)}let r=Fe.create(o,n.changes,n.selection,n.effects,n.annotations,n.scrollIntoView);return kP(t?TP(r):r)}function TP(o){let e=o.startState,t=!0;for(let r of e.facet(CC)){let s=r(o);if(s===!1){t=!1;break}Array.isArray(s)&&(t=t===!0?s:wP(t,s))}if(t!==!0){let r,s;if(t===!1)s=o.changes.invertedDesc,r=He.empty(e.doc.length);else{let i=o.changes.filter(t);r=i.changes,s=i.filtered.mapDesc(i.changes).invertedDesc}o=Fe.create(e,r,o.selection&&o.selection.map(s),De.mapEffects(o.effects,s),o.annotations,o.scrollIntoView)}let n=e.facet(vC);for(let r=n.length-1;r>=0;r--){let s=n[r](o);s instanceof Fe?o=s:Array.isArray(s)&&s.length==1&&s[0]instanceof Fe?o=s[0]:o=kC(e,ai(s),!1)}return o}function kP(o){let e=o.startState,t=e.facet(SC),n=o;for(let r=t.length-1;r>=0;r--){let s=t[r](o);s&&Object.keys(s).length&&(n=TC(n,qf(e,s,o.changes.newLength),!0))}return n==o?o:Fe.create(e,o.changes,o.selection,n.effects,n.annotations,n.scrollIntoView)}var EP=[];function ai(o){return o==null?EP:Array.isArray(o)?o:[o]}var Rt=function(o){return o[o.Word=0]="Word",o[o.Space=1]="Space",o[o.Other=2]="Other",o}(Rt||(Rt={})),MP=/[\u00df\u0587\u0590-\u05f4\u0600-\u06ff\u3040-\u309f\u30a0-\u30ff\u3400-\u4db5\u4e00-\u9fcc\uac00-\ud7af]/,jf;try{jf=new RegExp("[\\p{Alphabetic}\\p{Number}_]","u")}catch{}function PP(o){if(jf)return jf.test(o);for(let e=0;e<o.length;e++){let t=o[e];if(/\w/.test(t)||t>"\x80"&&(t.toUpperCase()!=t.toLowerCase()||MP.test(t)))return!0}return!1}function DP(o){return e=>{if(!/\S/.test(e))return Rt.Space;if(PP(e))return Rt.Word;for(let t=0;t<o.length;t++)if(e.indexOf(o[t])>-1)return Rt.Word;return Rt.Other}}var me=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++)zl(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 zl(this,n),Qc(this,n)}update(...e){return kC(this,e,!0)}applyTransaction(e){let t=this.config,{base:n,compartments:r}=t;for(let i of e.effects)i.is(ci.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(De.reconfigure)?(t=null,n=i.value):i.is(De.appendConfig)&&(t=null,n=ai(n).concat(i.value));let s;t?s=e.startState.values.slice():(t=ui.resolve(n,r,this),s=new me(t,this.doc,this.selection,t.dynamicSlots.map(()=>null),(l,a)=>a.reconfigure(l,this),null).values),new me(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:B.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=ai(n.effects);for(let l=1;l<t.ranges.length;l++){let a=e(t.ranges[l]),c=this.changes(a.changes),u=c.map(r);for(let f=0;f<l;f++)s[f]=s[f].map(u);let d=r.mapDesc(c,!0);s.push(a.range.map(d)),r=r.compose(u),i=De.mapEffects(i,u).concat(De.mapEffects(ai(a.effects),d))}return{changes:r,selection:B.create(s,t.mainIndex),effects:i}}changes(e=[]){return e instanceof He?e:He.of(e,this.doc.length,this.facet(me.lineSeparator))}toText(e){return fe.of(e.split(this.facet(me.lineSeparator)||Wf))}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:(zl(this,t),Qc(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 At&&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 me.create({doc:e.doc,selection:B.fromJSON(e.selection),extensions:t.extensions?r.concat([t.extensions]):r})}static create(e={}){let t=ui.resolve(e.extensions||[],new Map),n=e.doc instanceof fe?e.doc:fe.of((e.doc||"").split(t.staticFacet(me.lineSeparator)||Wf)),r=e.selection?e.selection instanceof B?e.selection:B.single(e.selection.anchor,e.selection.head):B.single(0);return gC(r,n.length),t.staticFacet(yC)||(r=r.asSingle()),new me(t,n,r,t.dynamicSlots.map(()=>null),(s,i)=>i.create(s),null)}get tabSize(){return this.facet(me.tabSize)}get lineBreak(){return this.facet(me.lineSeparator)||`
7
- `}get readOnly(){return this.facet(wC)}phrase(e,...t){for(let n of this.facet(me.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(bC))for(let i of s(this,t,n))Object.prototype.hasOwnProperty.call(i,e)&&r.push(i[e]);return r}charCategorizer(e){return DP(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=St(t,i,!1);if(s(t.slice(a,i))!=Rt.Word)break;i=a}for(;l<r;){let a=St(t,l);if(s(t.slice(l,a))!=Rt.Word)break;l=a}return i==l?null:B.range(i+n,l+n)}};me.allowMultipleSelections=yC;me.tabSize=re.define({combine:o=>o.length?o[0]:4});me.lineSeparator=xC;me.readOnly=wC;me.phrases=re.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])}});me.languageData=bC;me.changeFilter=CC;me.transactionFilter=vC;me.transactionExtender=SC;ci.reconfigure=De.define();function qr(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 On=class{eq(e){return this==e}range(e,t=e){return Gr.create(e,t,this)}};On.prototype.startSide=On.prototype.endSide=0;On.prototype.point=!1;On.prototype.mapMode=vt.TrackDel;var Gr=class{constructor(e,t,n){this.from=e,this.to=t,this.value=n}static create(e,t,n){return new Gr(e,t,n)}};function Xf(o,e){return o.from-e.from||o.value.startSide-e.value.startSide}var Gl=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,c=s[a]-e||(n?this.value[a].endSide:this.value[a].startSide)-t;if(a==i)return c>=0?i:l;c>=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 c=this.value[a],u=this.from[a]+e,d=this.to[a]+e,f,h;if(u==d){let p=t.mapPos(u,c.startSide,c.mapMode);if(p==null||(f=h=p,c.startSide!=c.endSide&&(h=t.mapPos(u,c.endSide),h<f)))continue}else if(f=t.mapPos(u,c.startSide),h=t.mapPos(d,c.endSide),f>h||f==h&&c.startSide>0&&c.endSide<=0)continue;(h-f||c.endSide-c.startSide)<0||(i<0&&(i=f),c.point&&(l=Math.max(l,h-f)),n.push(c),r.push(f-i),s.push(h-i))}return{mapped:n.length?new Gl(r,s,n,l):null,pos:i}}},Te=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 Te(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(Xf)),this.isEmpty)return t.length?Te.of(t):this;let l=new qc(this,null,-1).goto(0),a=0,c=[],u=new jn;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++];u.addInner(d.from,d.to,d.value)||c.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])&&u.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))&&(u.addInner(l.from,l.to,l.value)||c.push(Gr.create(l.from,l.to,l.value))),l.next());return u.finishInner(this.nextLayer.isEmpty&&!c.length?Te.empty:this.nextLayer.update({add:c,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],c=e.touchesRange(l,l+a.length);if(c===!1)r=Math.max(r,a.maxPoint),t.push(a),n.push(e.mapPos(l));else if(c===!0){let{mapped:u,pos:d}=a.map(l,e);u&&(r=Math.max(r,u.maxPoint),t.push(u),n.push(d))}}let s=this.nextLayer.map(e);return t.length==0?s:new Te(n,t,s||Te.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 _r.from([this]).goto(e)}get isEmpty(){return this.nextLayer==this}static iter(e,t=0){return _r.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=aC(i,l,n),c=new Kr(i,a,s),u=new Kr(l,a,s);n.iterGaps((d,f,h)=>cC(c,d,u,f,h,r)),n.empty&&n.length==0&&cC(c,0,u,0,0,r)}static eq(e,t,n=0,r){r==null&&(r=1e9-1);let s=e.filter(u=>!u.isEmpty&&t.indexOf(u)<0),i=t.filter(u=>!u.isEmpty&&e.indexOf(u)<0);if(s.length!=i.length)return!1;if(!s.length)return!0;let l=aC(s,i),a=new Kr(s,l,0).goto(n),c=new Kr(i,l,0).goto(n);for(;;){if(a.to!=c.to||!Jf(a.active,c.active)||a.point&&(!c.point||!a.point.eq(c.point)))return!1;if(a.to>r)return!0;a.next(),c.next()}}static spans(e,t,n,r,s=-1){let i=new Kr(e,null,s).goto(t),l=t,a=i.openStart;for(;;){let c=Math.min(i.to,n);if(i.point){let u=i.activeForPoint(i.to),d=i.pointFrom<t?u.length+1:Math.min(u.length,a);r.point(l,c,i.point,u,d,i.pointRank),a=Math.min(i.openEnd(c),u.length)}else c>l&&(r.span(l,c,i.active,a),a=i.openEnd(c));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 jn;for(let r of e instanceof Gr?[e]:t?IP(e):e)n.add(r.from,r.to,r.value);return n.finish()}};Te.empty=new Te([],[],null,-1);function IP(o){if(o.length>1)for(let e=o[0],t=1;t<o.length;t++){let n=o[t];if(Xf(e,n)>0)return o.slice().sort(Xf);e=n}return o}Te.empty.nextLayer=Te.empty;var jn=class{finishChunk(e){this.chunks.push(new Gl(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 jn)).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(Te.empty)}finishInner(e){if(this.from.length&&this.finishChunk(!1),this.chunks.length==0)return e;let t=Te.create(this.chunkPos,this.chunks,this.nextLayer?this.nextLayer.finishInner(e):e,this.setMaxPoint);return this.from=null,t}};function aC(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 qc=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}},_r=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 qc(i,t,n,s));return r.length==1?r[0]:new _r(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--)Kf(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--)Kf(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(),Kf(this.heap,0)}}};function Kf(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 Kr=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=_r.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){Kc(this.active,e),Kc(this.activeTo,e),Kc(this.activeRank,e),this.minActive=uC(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++;zc(this.active,t,n),zc(this.activeTo,t,r),zc(this.activeRank,t,s),e&&zc(e,t,this.cursor.from),this.minActive=uC(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&&Kc(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 cC(o,e,t,n,r,s){o.goto(e),t.goto(n);let i=n+r,l=n,a=n-e;for(;;){let c=o.to+a-t.to||o.endSide-t.endSide,u=c<0?o.to+a:t.to,d=Math.min(u,i);if(o.point||t.point?o.point&&t.point&&(o.point==t.point||o.point.eq(t.point))&&Jf(o.activeForPoint(o.to),t.activeForPoint(t.to))||s.comparePoint(l,d,o.point,t.point):d>l&&!Jf(o.active,t.active)&&s.compareRange(l,d,o.active,t.active),u>i)break;l=u,c<=0&&o.next(),c>=0&&t.next()}}function Jf(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 Kc(o,e){for(let t=e,n=o.length-1;t<n;t++)o[t]=o[t+1];o.pop()}function zc(o,e,t){for(let n=o.length-1;n>=e;n--)o[n+1]=o[n];o[e]=t}function uC(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 jr(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=St(o,r));return n}function EC(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=St(o,r)}return n===!0?-1:o.length}var eh="\u037C",MC=typeof Symbol>"u"?"__"+eh:Symbol.for(eh),th=typeof Symbol>"u"?"__styleSet"+Math.floor(Math.random()*1e8):Symbol("styleSet"),PC=typeof globalThis<"u"?globalThis:typeof window<"u"?window:{},hn=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,c){let u=[],d=/^@(\w+)\b/.exec(i[0]),f=d&&d[1]=="keyframes";if(d&&l==null)return a.push(i[0]+";");for(let h in l){let p=l[h];if(/&/.test(h))s(h.split(/,\s*/).map(m=>i.map(g=>m.replace(/&/,g))).reduce((m,g)=>m.concat(g)),p,a);else if(p&&typeof p=="object"){if(!d)throw new RangeError("The value of a property ("+h+") should be a primitive value.");s(r(h),p,u,f)}else p!=null&&u.push(h.replace(/_.*/,"").replace(/[A-Z]/g,m=>"-"+m.toLowerCase())+": "+p+";")}(u.length||f)&&a.push((n&&!d&&!c?i.map(n):i).join(", ")+" {"+u.join(" ")+"}")}for(let i in e)s(r(i),e[i],this.rules)}getRules(){return this.rules.join(`
8
- `)}static newName(){let e=PC[MC]||1;return PC[MC]=e+1,eh+e.toString(36)}static mount(e,t){(e[th]||new nh(e)).mount(Array.isArray(t)?t:[t])}},DC=new Map,nh=class{constructor(e){let t=e.ownerDocument||e,n=t.defaultView;if(!e.head&&e.adoptedStyleSheets&&n.CSSStyleSheet){let r=DC.get(t);if(r)return e.adoptedStyleSheets=[r.sheet,...e.adoptedStyleSheets],e[th]=r;this.sheet=new n.CSSStyleSheet,e.adoptedStyleSheets=[this.sheet,...e.adoptedStyleSheets],DC.set(t,this)}else{this.styleTag=t.createElement("style");let r=e.head||e;r.insertBefore(this.styleTag,r.firstChild)}this.modules=[],e[th]=this}mount(e){let t=this.sheet,n=0,r=0;for(let s=0;s<e.length;s++){let i=e[s],l=this.modules.indexOf(i);if(l<r&&l>-1&&(this.modules.splice(l,1),r--,l=-1),l==-1){if(this.modules.splice(r++,0,i),t)for(let a=0;a<i.rules.length;a++)t.insertRule(i.rules[a],n++)}else{for(;r<l;)n+=this.modules[r++].rules.length;n+=i.rules.length,r++}}if(!t){let s="";for(let i=0;i<this.modules.length;i++)s+=this.modules[i].getRules()+`
9
- `;this.styleTag.textContent=s}}};var Mo={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:"'"},di={48:")",49:"!",50:"@",51:"#",52:"$",53:"%",54:"^",55:"&",56:"*",57:"(",59:":",61:"+",173:"_",186:":",187:"+",188:"<",189:"_",190:">",191:"?",192:"~",219:"{",220:"|",221:"}",222:'"'},RP=typeof navigator<"u"&&/Mac/.test(navigator.platform),AP=typeof navigator<"u"&&/MSIE \d|Trident\/(?:[7-9]|\d{2,})\..*rv:(\d+)/.exec(navigator.userAgent);for(Xe=0;Xe<10;Xe++)Mo[48+Xe]=Mo[96+Xe]=String(Xe);var Xe;for(Xe=1;Xe<=24;Xe++)Mo[Xe+111]="F"+Xe;var Xe;for(Xe=65;Xe<=90;Xe++)Mo[Xe]=String.fromCharCode(Xe+32),di[Xe]=String.fromCharCode(Xe);var Xe;for(jc in Mo)di.hasOwnProperty(jc)||(di[jc]=Mo[jc]);var jc;function IC(o){var e=RP&&o.metaKey&&o.shiftKey&&!o.ctrlKey&&!o.altKey||AP&&o.shiftKey&&o.key&&o.key.length==1||o.key=="Unidentified",t=!e&&o.key||(o.shiftKey?di:Mo)[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 au(o){let e;return o.nodeType==11?e=o.getSelection?o:o.ownerDocument:e=o,e.getSelection()}function ah(o,e){return e?o==e||o.contains(e.nodeType!=1?e.parentNode:e):!1}function LP(o){let e=o.activeElement;for(;e&&e.shadowRoot;)e=e.shadowRoot.activeElement;return e}function ou(o,e){if(!e.anchorNode)return!1;try{return ah(o,e.anchorNode)}catch{return!1}}function Jl(o){return o.nodeType==3?Jr(o,0,o.nodeValue.length).getClientRects():o.nodeType==1?o.getClientRects():[]}function cu(o,e,t,n){return t?RC(o,e,t,n,-1)||RC(o,e,t,n,1):!1}function uu(o){for(var e=0;;e++)if(o=o.previousSibling,!o)return e}function RC(o,e,t,n,r){for(;;){if(o==t&&e==n)return!0;if(e==(r<0?0:or(o))){if(o.nodeName=="DIV")return!1;let s=o.parentNode;if(!s||s.nodeType!=1)return!1;e=uu(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?or(o):0}else return!1}}function or(o){return o.nodeType==3?o.nodeValue.length:o.childNodes.length}function zh(o,e){let t=e?o.left:o.right;return{left:t,right:t,top:o.top,bottom:o.bottom}}function OP(o){return{left:0,right:o.innerWidth,top:0,bottom:o.innerHeight}}function NP(o,e,t,n,r,s,i,l){let a=o.ownerDocument,c=a.defaultView||window;for(let u=o,d=!1;u&&!d;)if(u.nodeType==1){let f,h=u==a.body;if(h)f=OP(c);else{if(/^(fixed|sticky)$/.test(getComputedStyle(u).position)&&(d=!0),u.scrollHeight<=u.clientHeight&&u.scrollWidth<=u.clientWidth){u=u.assignedSlot||u.parentNode;continue}let g=u.getBoundingClientRect();f={left:g.left,right:g.left+u.clientWidth,top:g.top,bottom:g.top+u.clientHeight}}let p=0,m=0;if(r=="nearest")e.top<f.top?(m=-(f.top-e.top+i),t>0&&e.bottom>f.bottom+m&&(m=e.bottom-f.bottom+m+i)):e.bottom>f.bottom&&(m=e.bottom-f.bottom+i,t<0&&e.top-m<f.top&&(m=-(f.top+m-e.top+i)));else{let g=e.bottom-e.top,y=f.bottom-f.top;m=(r=="center"&&g<=y?e.top+g/2-y/2:r=="start"||r=="center"&&t<0?e.top-i:e.bottom-y+i)-f.top}if(n=="nearest"?e.left<f.left?(p=-(f.left-e.left+s),t>0&&e.right>f.right+p&&(p=e.right-f.right+p+s)):e.right>f.right&&(p=e.right-f.right+s,t<0&&e.left<f.left+p&&(p=-(f.left+p-e.left+s))):p=(n=="center"?e.left+(e.right-e.left)/2-(f.right-f.left)/2:n=="start"==l?e.left-s:e.right-(f.right-f.left)+s)-f.left,p||m)if(h)c.scrollBy(p,m);else{let g=0,y=0;if(m){let E=u.scrollTop;u.scrollTop+=m,y=u.scrollTop-E}if(p){let E=u.scrollLeft;u.scrollLeft+=p,g=u.scrollLeft-E}e={left:e.left-g,top:e.top-y,right:e.right-g,bottom:e.bottom-y},g&&Math.abs(g-p)<1&&(n="nearest"),y&&Math.abs(y-m)<1&&(r="nearest")}if(h)break;u=u.assignedSlot||u.parentNode}else if(u.nodeType==11)u=u.host;else break}function HP(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 ch=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?or(t):0),n,Math.min(e.focusOffset,n?or(n):0))}set(e,t,n,r){this.anchorNode=e,this.anchorOffset=t,this.focusNode=n,this.focusOffset=r}},fi=null;function uv(o){if(o.setActive)return o.setActive();if(fi)return o.focus(fi);let e=[];for(let t=o;t&&(e.push(t,t.scrollTop,t.scrollLeft),t!=t.ownerDocument);t=t.parentNode);if(o.focus(fi==null?{get preventScroll(){return fi={preventScroll:!0},!0}}:void 0),!fi){fi=!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 AC;function Jr(o,e,t=e){let n=AC||(AC=document.createRange());return n.setEnd(o,t),n.setStart(o,e),n}function mi(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 FP(o){for(;o;){if(o&&(o.nodeType==9||o.nodeType==11&&o.host))return o;o=o.assignedSlot||o.parentNode}return null}function dv(o){for(;o.attributes.length;)o.removeAttributeNode(o.attributes[0])}function BP(o,e){let t=e.focusNode,n=e.focusOffset;if(!t||e.anchorNode!=t||e.anchorOffset!=n)return!1;for(n=Math.min(n,or(t));;)if(n){if(t.nodeType!=1)return!1;let r=t.childNodes[n-1];r.contentEditable=="false"?n--:(t=r,n=or(t))}else{if(t==o)return!0;n=uu(t),t=t.parentNode}}function fv(o){return o.scrollTop>Math.max(1,o.scrollHeight-o.clientHeight-4)}var ht=class{constructor(e,t,n=!0){this.node=e,this.offset=t,this.precise=n}static before(e,t){return new ht(e.parentNode,uu(e),t)}static after(e,t){return new ht(e.parentNode,uu(e)+1,t)}},Wh=[],Se=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=Se.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=LC(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=LC(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=or(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&&!Se.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,c=n,u=n;a<this.children.length;a++){let d=this.children[a],f=c+d.length;if(c<e&&f>t)return d.domBoundsAround(e,t,c);if(f>=e&&r==-1&&(r=a,s=c),c>t&&d.dom.parentNode==this.dom){i=a,l=u;break}u=f,c=f+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=Wh){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 du(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}};Se.prototype.breakAfter=0;function LC(o){let e=o.nextSibling;return o.parentNode.removeChild(o),e}var du=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 hv(o,e,t,n,r,s,i,l,a){let{children:c}=o,u=c.length?c[e]:null,d=s.length?s[s.length-1]:null,f=d?d.breakAfter:i;if(!(e==n&&u&&!i&&!f&&s.length<2&&u.merge(t,r,s.length?d:null,t==0,l,a))){if(n<c.length){let h=c[n];h&&r<h.length?(e==n&&(h=h.split(r),r=0),!f&&d&&h.merge(0,r,d,!0,0,a)?s[s.length-1]=h:(r&&h.merge(0,r,null,!1,0,a),s.push(h))):h!=null&&h.breakAfter&&(d?d.breakAfter=1:i=1),n++}for(u&&(u.breakAfter=i,t>0&&(!i&&s.length&&u.merge(t,u.length,s[0],!1,l,0)?u.breakAfter=s.shift().breakAfter:(t<u.length||u.children.length&&u.children[u.children.length-1].length==0)&&u.merge(t,u.length,null,!1,l,0),e++));e<n&&s.length;)if(c[n-1].become(s[s.length-1]))n--,s.pop(),a=s.length?0:l;else if(c[e].become(s[0]))e++,s.shift(),l=s.length?0:a;else break;!s.length&&e&&n<c.length&&!c[e-1].breakAfter&&c[n].merge(0,0,c[e-1],!1,l,a)&&e--,(e<n||s.length)&&o.replaceChildren(e,n,s)}}function pv(o,e,t,n,r,s){let i=o.childCursor(),{i:l,off:a}=i.findPos(t,1),{i:c,off:u}=i.findPos(e,-1),d=e-t;for(let f of n)d+=f.length;o.length+=d,hv(o,c,u,l,a,n,0,r,s)}var hi="\uFFFF",fu=class{constructor(e,t){this.points=e,this.text="",this.lineSeparator=t.facet(me.lineSeparator)}append(e){this.text+=e}lineBreak(){this.text+=hi}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=Se.get(r),a=Se.get(i);(l&&a?l.breakAfter:(l?l.breakAfter:OC(r))||OC(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=Se.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 OC(o){return o.nodeType==1&&/^(DIV|P|LI|UL|OL|BLOCKQUOTE|DD|DT|H\d|SECTION|PRE)$/.test(o.nodeName)}var hu=class{constructor(e,t){this.node=e,this.offset=t,this.pos=-1}},nn=typeof navigator<"u"?navigator:{userAgent:"",vendor:"",platform:""},uh=typeof document<"u"?document:{documentElement:{style:{}}},dh=/Edge\/(\d+)/.exec(nn.userAgent),mv=/MSIE \d/.test(nn.userAgent),fh=/Trident\/(?:[7-9]|\d{2,})\..*rv:(\d+)/.exec(nn.userAgent),xu=!!(mv||fh||dh),NC=!xu&&/gecko\/(\d+)/i.test(nn.userAgent),oh=!xu&&/Chrome\/(\d+)/.exec(nn.userAgent),HC="webkitFontSmoothing"in uh.documentElement.style,gv=!xu&&/Apple Computer/.test(nn.vendor),FC=gv&&(/Mobile\/\w+/.test(nn.userAgent)||nn.maxTouchPoints>2),Y={mac:FC||/Mac/.test(nn.platform),windows:/Win/.test(nn.platform),linux:/Linux|X11/.test(nn.platform),ie:xu,ie_version:mv?uh.documentMode||6:fh?+fh[1]:dh?+dh[1]:0,gecko:NC,gecko_version:NC?+(/Firefox\/(\d+)/.exec(nn.userAgent)||[0,0])[1]:0,chrome:!!oh,chrome_version:oh?+oh[1]:0,ios:FC,android:/Android\b/.test(nn.userAgent),webkit:HC,safari:gv,webkit_version:HC?+(/\bAppleWebKit\/(\d+)/.exec(navigator.userAgent)||[0,0])[1]:0,tabSize:uh.documentElement.style.tabSize!=null?"tab-size":"-moz-tab-size"},VP=256,mn=class extends Se{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 mn)||this.length-(t-e)+n.length>VP||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 mn(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 ht(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 $P(this.dom,e,t)}},Nn=class extends Se{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(dv(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 Nn&&n.mark.eq(this.mark))||e&&s<=0||t<this.length&&i<=0)?!1:(pv(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 Nn(this.mark,t,i)}domAtPos(e){return bv(this,e)}coordsAt(e,t){return xv(this,e,t)}};function $P(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?Y.chrome||Y.gecko||(e?(r--,i=1):s<n&&(s++,i=-1)):t<0?r--:s<n&&s++;let l=Jr(o,r,s).getClientRects();if(!l.length)return null;let a=l[(i?i<0:t>=0)?0:l.length-1];return Y.safari&&!i&&a.width==0&&(a=Array.prototype.find.call(l,c=>c.width)||a),i?zh(a,i<0):a||null}var Po=class extends Se{constructor(e,t,n){super(),this.widget=e,this.length=t,this.side=n,this.prevWidget=null}static create(e,t,n){return new Po(e,t,n)}split(e){let t=Po.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 Po)||!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 Po&&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 fe.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):fe.empty}domAtPos(e){return(this.length?e==0:this.side>0)?ht.before(this.dom):ht.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 zh(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)}},rr=class extends Se{constructor(e){super(),this.side=e}get length(){return 0}merge(){return!1}become(e){return e instanceof rr&&e.side==this.side}split(){return new rr(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?ht.before(this.dom):ht.after(this.dom)}localPosFromDOM(){return 0}domBoundsAround(){return null}coordsAt(e){return this.dom.getBoundingClientRect()}get overrideDOMText(){return fe.empty}get isHidden(){return!0}};mn.prototype.children=Po.prototype.children=rr.prototype.children=Wh;function bv(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 ht(t,0)}function yv(o,e,t){let n,{children:r}=o;t>0&&e instanceof Nn&&r.length&&(n=r[r.length-1])instanceof Nn&&n.mark.eq(e.mark)?yv(n,e.children[0],t-1):(r.push(e),e.setParent(o)),o.length+=e.length}function xv(o,e,t){let n=null,r=-1,s=null,i=-1;function l(c,u){for(let d=0,f=0;d<c.children.length&&f<=u;d++){let h=c.children[d],p=f+h.length;p>=u&&(h.children.length?l(h,u-f):(!s||s.isHidden&&t>0)&&(p>u||f==p&&h.getSide()>0)?(s=h,i=u-f):(f<u||f==p&&h.getSide()<0&&!h.isHidden)&&(n=h,r=u-f)),f=p}}l(o,e);let a=(t<0?n:s)||n||s;return a?a.coordsAt(Math.max(0,a==n?r:i),t):KP(o)}function KP(o){let e=o.dom.lastChild;if(!e)return o.dom.getBoundingClientRect();let t=Jl(e);return t[t.length-1]||null}function hh(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 BC=Object.create(null);function Uh(o,e,t){if(o==e)return!0;o||(o=BC),e||(e=BC);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 ph(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 zP(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 Io=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){}},_e=function(o){return o[o.Text=0]="Text",o[o.WidgetBefore=1]="WidgetBefore",o[o.WidgetAfter=2]="WidgetAfter",o[o.WidgetRange=3]="WidgetRange",o}(_e||(_e={})),ot=class extends On{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 Yr(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 Yn(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}=Cv(e,t);n=(s?t?-3e8:-1:5e8)-1,r=(i?t?2e8:1:-6e8)+1}return new Yn(e,n,r,t,e.widget||null,!0)}static line(e){return new Zr(e)}static set(e,t=!1){return Te.of(e,t)}hasHeight(){return this.widget?this.widget.estimatedHeight>-1:!1}};ot.none=Te.empty;var Yr=class extends ot{constructor(e){let{start:t,end:n}=Cv(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 Yr&&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))&&Uh(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)}};Yr.prototype.point=!1;var Zr=class extends ot{constructor(e){super(-2e8,-2e8,null,e)}eq(e){return e instanceof Zr&&this.spec.class==e.spec.class&&Uh(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)}};Zr.prototype.mapMode=vt.TrackBefore;Zr.prototype.point=!0;var Yn=class extends ot{constructor(e,t,n,r,s,i){super(t,n,s,e),this.block=r,this.isReplace=i,this.mapMode=r?t<=0?vt.TrackBefore:vt.TrackAfter:vt.TrackDel}get type(){return this.startSide<this.endSide?_e.WidgetRange:this.startSide<=0?_e.WidgetBefore:_e.WidgetAfter}get heightRelevant(){return this.block||!!this.widget&&(this.widget.estimatedHeight>=5||this.widget.lineBreaks>0)}eq(e){return e instanceof Yn&&WP(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)}};Yn.prototype.point=!0;function Cv(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 WP(o,e){return o==e||!!(o&&e&&o.compare(e))}function mh(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 ft=class extends Se{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 ft))return!1;this.dom||n.transferDOM(this)}return r&&this.setDeco(n?n.attrs:null),pv(this,e,t,n?n.children:[],s,i),!0}split(e){let t=new ft;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){Uh(this.attrs,e)||(this.dom&&(this.prevAttrs=this.attrs,this.markDirty()),this.attrs=e)}append(e,t){yv(this,e,t)}addLineDeco(e){let t=e.spec.attributes,n=e.spec.class;t&&(this.attrs=hh(t,this.attrs||{})),n&&(this.attrs=hh({class:n},this.attrs||{}))}domAtPos(e){return bv(this,e)}reuseDOM(e){e.nodeName=="DIV"&&(this.setDOM(e),this.flags|=6)}sync(e,t){var n;this.dom?this.flags&4&&(dv(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&&(ph(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&&Se.get(r)instanceof Nn;)r=r.lastChild;if(!r||!this.length||r.nodeName!="BR"&&((n=Se.get(r))===null||n===void 0?void 0:n.isEditable)==!1&&(!Y.ios||!this.children.some(s=>s instanceof mn))){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 mn)||/[^ -~]/.test(n.text))return null;let r=Jl(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=xv(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 _e.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 ft)return s;if(i>t)break}r=i+s.breakAfter}return null}},Do=class extends Se{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 Do)||!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?ht.before(this.dom):ht.after(this.dom,e==this.length)}split(e){let t=this.length-e;this.length=e;let n=new Do(this.widget,t,this.type);return n.breakAfter=this.breakAfter,n}get children(){return Wh}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):fe.empty}domBoundsAround(){return null}become(e){return e instanceof Do&&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)}},Xr=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 Do&&e.type==_e.WidgetBefore)}getLine(){return this.curLine||(this.content.push(this.curLine=new ft),this.atCursorPos=!0),this.curLine}flushBuffer(e=this.bufferMarks){this.pendingBuffer&&(this.curLine.append(Xc(new rr(-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(Xc(new mn(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 Yn){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 Yn)if(n.block){let{type:a}=n;a==_e.WidgetAfter&&!this.posCovered()&&this.getLine(),this.addBlockWidget(new Do(n.widget||new pu("div"),l,a))}else{let a=Po.create(n.widget||new pu("span"),l,l?0:n.startSide),c=this.atCursorPos&&!a.isEditable&&s<=r.length&&(e<t||n.startSide>0),u=!a.isEditable&&(e<t||s>r.length||n.startSide<=0),d=this.getLine();this.pendingBuffer==2&&!c&&!a.isEditable&&(this.pendingBuffer=0),this.flushBuffer(r),c&&(d.append(Xc(new rr(1),r),s),s=r.length+Math.max(0,s-r.length)),d.append(Xc(a,r),s),this.atCursorPos=u,this.pendingBuffer=u?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 Xr(e,t,n,s);return i.openEnd=Te.spans(r,t,n,i),i.openStart<0&&(i.openStart=i.openEnd),i.finish(i.openEnd),i}};function Xc(o,e){for(let t of e)o=new Nn(t,[o],o.length);return o}var pu=class extends Io{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}},vv=re.define(),Sv=re.define(),wv=re.define(),Tv=re.define(),gh=re.define(),kv=re.define(),Ev=re.define(),Mv=re.define({combine:o=>o.some(e=>e)}),Pv=re.define({combine:o=>o.some(e=>e)}),gi=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 gi(this.range.map(e),this.y,this.x,this.yMargin,this.xMargin)}},VC=De.define({map:(o,e)=>o.map(e)});function Jn(o,e,t){let n=o.facet(Tv);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 Cu=re.define({combine:o=>o.length?o[0]:!0}),UP=0,_l=re.define(),gn=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 gn(UP++,e,n,i=>{let l=[_l.of(i)];return s&&l.push(Yl.of(a=>{let c=a.plugin(i);return c?s(c):ot.none})),r&&l.push(r(i)),l})}static fromClass(e,t){return gn.define(n=>new e(n),t)}},jl=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(Jn(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){Jn(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){Jn(e.state,n,"CodeMirror plugin crashed")}}deactivate(){this.spec=this.value=null}},Dv=re.define(),Gh=re.define(),Yl=re.define(),_h=re.define(),Iv=re.define();function Rv(o){let e=0,t=0,n=0,r=0;for(let s of o.state.facet(Iv)){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 Ql=re.define(),Wt=class{constructor(e,t,n,r){this.fromA=e,this.toA=t,this.fromB=n,this.toB=r}join(e){return new Wt(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],c=i-l,u=a?a.fromB:1e9;for(;s<t.length&&t[s]<u;){let d=t[s],f=t[s+1],h=Math.max(l,d),p=Math.min(u,f);if(h<=p&&new Wt(h+c,p+c,h,p).addToSet(n),f>u)break;s+=2}if(!a)return n;new Wt(a.fromA,a.toA,a.fromB,a.toB).addToSet(n),i=a.toA,l=a.toB}}},bi=class{constructor(e,t,n){this.view=e,this.state=t,this.transactions=n,this.flags=0,this.startState=e.state,this.changes=He.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 Wt(s,i,l,a))),this.changedRanges=r}static create(e,t,n){return new bi(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}},Ge=function(o){return o[o.LTR=0]="LTR",o[o.RTL=1]="RTL",o}(Ge||(Ge={})),bh=Ge.LTR,GP=Ge.RTL;function Av(o){let e=[];for(let t=0;t<o.length;t++)e.push(1<<+o[t]);return e}var _P=Av("88888888888888888888888888888888888666888888787833333333337888888000000000000000000000000008888880000000000000000000000000088888888888888888888888888888888888887866668888088888663380888308888800000000000000000000000800000000000000000000000000000008"),QP=Av("4444448826627288999999999992222222222222222222222222222222222222222222222229999999999999999999994444444444644222822222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222999999949999999229989999223333333333"),yh=Object.create(null),Xn=[];for(let o of["()","[]","{}"]){let e=o.charCodeAt(0),t=o.charCodeAt(1);yh[e]=t,yh[t]=-e}function qP(o){return o<=247?_P[o]:1424<=o&&o<=1524?2:1536<=o&&o<=1785?QP[o-1536]:1774<=o&&o<=2220?4:8192<=o&&o<=8203?256:64336<=o&&o<=65023?4:o==8204?256:1}var jP=/[\u0590-\u05f4\u0600-\u06ff\u0700-\u08ac\ufb50-\ufdff]/,nr=class{constructor(e,t,n){this.from=e,this.to=t,this.level=n}get dir(){return this.level%2?GP:bh}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}},Be=[];function XP(o,e){let t=o.length,n=e==bh?1:2,r=e==bh?2:1;if(!o||n==1&&!jP.test(o))return Lv(t);for(let i=0,l=n,a=n;i<t;i++){let c=qP(o.charCodeAt(i));c==512?c=l:c==8&&a==4&&(c=16),Be[i]=c==4?2:c,c&7&&(a=c),l=c}for(let i=0,l=n,a=n;i<t;i++){let c=Be[i];if(c==128)i<t-1&&l==Be[i+1]&&l&24?c=Be[i]=l:Be[i]=256;else if(c==64){let u=i+1;for(;u<t&&Be[u]==64;)u++;let d=i&&l==8||u<t&&Be[u]==8?a==1?1:8:256;for(let f=i;f<u;f++)Be[f]=d;i=u-1}else c==8&&a==1&&(Be[i]=1);l=c,c&7&&(a=c)}for(let i=0,l=0,a=0,c,u,d;i<t;i++)if(u=yh[c=o.charCodeAt(i)])if(u<0){for(let f=l-3;f>=0;f-=3)if(Xn[f+1]==-u){let h=Xn[f+2],p=h&2?n:h&4?h&1?r:n:0;p&&(Be[i]=Be[Xn[f]]=p),l=f;break}}else{if(Xn.length==189)break;Xn[l++]=i,Xn[l++]=c,Xn[l++]=a}else if((d=Be[i])==2||d==1){let f=d==n;a=f?0:1;for(let h=l-3;h>=0;h-=3){let p=Xn[h+2];if(p&2)break;if(f)Xn[h+2]|=2;else{if(p&4)break;Xn[h+2]|=4}}}for(let i=0;i<t;i++)if(Be[i]==256){let l=i+1;for(;l<t&&Be[l]==256;)l++;let a=(i?Be[i-1]:n)==1,c=(l<t?Be[l]:n)==1,u=a==c?a?1:2:n;for(let d=i;d<l;d++)Be[d]=u;i=l-1}let s=[];if(n==1)for(let i=0;i<t;){let l=i,a=Be[i++]!=1;for(;i<t&&a==(Be[i]!=1);)i++;if(a)for(let c=i;c>l;){let u=c,d=Be[--c]!=2;for(;c>l&&d==(Be[c-1]!=2);)c--;s.push(new nr(c,u,d?2:1))}else s.push(new nr(l,i,0))}else for(let i=0;i<t;){let l=i,a=Be[i++]==2;for(;i<t&&a==(Be[i]==2);)i++;s.push(new nr(l,i,a?1:2))}return s}function Lv(o){return[new nr(0,o,0)]}var Ov="";function JP(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 f=e[e.length-1];f.level!=t&&(i=f.side(!0,t),l=e.length-1)}l<0&&(l=nr.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 c=r==(a.dir==t),u=St(o.text,i,c);if(Ov=o.text.slice(Math.min(i,u),Math.max(i,u)),u!=a.side(r,t))return B.cursor(u+o.from,c?-1:1,a.level);let d=l==(r?e.length-1:0)?null:e[l+(r?1:-1)];return!d&&a.level!=t?B.cursor(r?o.to:o.from,r?-1:1,t):d&&d.level<a.level?B.cursor(d.side(!r,t)+o.from,r?1:-1,d.level):B.cursor(u+o.from,r?-1:1,a.level)}var mu=class extends Se{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 ft],this.children[0].setParent(this),this.updateDeco(),this.updateInner([new Wt(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:ZP(this.view,e.changes);if(this.hasComposition){this.markedForComposition.clear();let{from:l,to:a}=this.hasComposition;t=new Wt(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,(Y.ie||Y.chrome)&&!n&&e&&e.state.doc.lines!=e.startState.doc.lines&&(this.forceSelection=!0);let r=this.decorations,s=this.updateDeco(),i=tD(r,s,e.changes);return t=Wt.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=Y.chrome||Y.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 Do&&i.widget instanceof gu&&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:c,fromB:u,toB:d}=l,f,h,p,m;if(n&&n.range.fromB<d&&n.range.toB>u){let x=Xr.build(this.view.state.doc,u,n.range.fromB,this.decorations,this.dynamicDecorationMap),C=Xr.build(this.view.state.doc,n.range.toB,d,this.decorations,this.dynamicDecorationMap);h=x.breakAtStart,p=x.openStart,m=C.openEnd;let b=this.compositionView(n);C.breakAtStart?b.breakAfter=1:C.content.length&&b.merge(b.length,b.length,C.content[0],!1,C.openStart,0)&&(b.breakAfter=C.content[0].breakAfter,C.content.shift()),x.content.length&&b.merge(0,0,x.content[x.content.length-1],!0,0,x.openEnd)&&x.content.pop(),f=x.content.concat(b).concat(C.content)}else({content:f,breakAtStart:h,openStart:p,openEnd:m}=Xr.build(this.view.state.doc,u,d,this.decorations,this.dynamicDecorationMap));let{i:g,off:y}=s.findPos(c,1),{i:E,off:v}=s.findPos(a,-1);hv(this,E,v,g,y,f,h,p,m)}n&&this.fixCompositionDOM(n)}compositionView(e){let t=new mn(e.text.nodeValue);t.flags|=8;for(let{deco:r}of e.marks)t=new Nn(r,[t],t.length);let n=new ft;return n.append(t,0),n}fixCompositionDOM(e){let t=(s,i)=>{i.flags|=8,this.markedForComposition.add(i);let l=Se.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&&ou(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),c=l.empty?a:this.domAtPos(l.head);if(Y.gecko&&l.empty&&!this.hasComposition&&YP(a)){let d=document.createTextNode("");this.view.observer.ignore(()=>a.node.insertBefore(d,a.node.childNodes[a.offset]||null)),a=c=new ht(d,0),i=!0}let u=this.view.observer.selectionRange;(i||!u.focusNode||!cu(a.node,a.offset,u.anchorNode,u.anchorOffset)||!cu(c.node,c.offset,u.focusNode,u.focusOffset))&&(this.view.observer.ignore(()=>{Y.android&&Y.chrome&&this.dom.contains(u.focusNode)&&nD(u.focusNode,this.dom)&&(this.dom.blur(),this.dom.focus({preventScroll:!0}));let d=au(this.view.root);if(d)if(l.empty){if(Y.gecko){let f=eD(a.node,a.offset);if(f&&f!=3){let h=Hv(a.node,a.offset,f==1?1:-1);h&&(a=new ht(h,f==1?0:h.nodeValue.length))}}d.collapse(a.node,a.offset),l.bidiLevel!=null&&u.cursorBidiLevel!=null&&(u.cursorBidiLevel=l.bidiLevel)}else if(d.extend){d.collapse(a.node,a.offset);try{d.extend(c.node,c.offset)}catch{}}else{let f=document.createRange();l.anchor>l.head&&([a,c]=[c,a]),f.setEnd(c.node,c.offset),f.setStart(a.node,a.offset),d.removeAllRanges(),d.addRange(f)}s&&this.view.root.activeElement==this.dom&&(this.dom.blur(),n&&n.focus())}),this.view.observer.setSelectionRange(a,c)),this.impreciseAnchor=a.precise?null:new ht(u.anchorNode,u.anchorOffset),this.impreciseHead=c.precise?null:new ht(u.focusNode,u.focusOffset)}enforceCursorAssoc(){if(this.hasComposition)return;let{view:e}=this,t=e.state.selection.main,n=au(e.root),{anchorNode:r,anchorOffset:s}=e.observer.selectionRange;if(!n||!t.empty||!t.assoc||!n.modify)return;let i=ft.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),c=this.coordsAt(t.head,1);if(!a||!c||a.bottom>c.top)return;let u=this.domAtPos(t.head+t.assoc);n.collapse(u.node,u.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=Se.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 ft)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!=_e.WidgetBefore&&s.type!=_e.WidgetAfter&&(!r||t==2||this.children[r-1].breakAfter||this.children[r-1].type==_e.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 ft))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 mn))return null;let s=St(r.text,n);if(s==n)return null;let i=Jr(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==Ge.LTR;for(let c=0,u=0;u<this.children.length;u++){let d=this.children[u],f=c+d.length;if(f>r)break;if(c>=n){let h=d.dom.getBoundingClientRect();if(t.push(h.height),i){let p=d.dom.lastChild,m=p?Jl(p):[];if(m.length){let g=m[m.length-1],y=a?g.right-h.left:h.right-g.left;y>l&&(l=y,this.minWidth=s,this.minWidthFrom=c,this.minWidthTo=f)}}}c=f+d.breakAfter}return t}textDirectionAt(e){let{i:t}=this.childPos(e,1);return getComputedStyle(this.children[t].dom).direction=="rtl"?Ge.RTL:Ge.LTR}measureTextSize(){for(let s of this.children)if(s instanceof ft){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=Jl(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 du(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(ot.replace({widget:new gu(l),block:!0,inclusive:!0,isBlockGap:!0}).range(n,i))}if(!s)break;n=s.to+1}return ot.set(e)}updateDeco(){let e=this.view.state.facet(Yl).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=Rv(this.view),i={left:n.left-s.left,top:n.top-s.top,right:n.right+s.right,bottom:n.bottom+s.bottom};NP(this.view.scrollDOM,i,t.head<t.anchor?-1:1,e.x,e.y,e.xMargin,e.yMargin,this.view.textDirection==Ge.LTR)}};function YP(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 gu=class extends Io{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 Nv(o){let e=o.observer.selectionRange,t=e.focusNode&&Hv(e.focusNode,e.focusOffset,0);if(!t)return null;let n=Se.get(t),r,s;if(n instanceof mn)r=n.posAtStart,s=r+n.length;else e:for(let i=0,l=t;;){for(let c=l.previousSibling,u;c;c=c.previousSibling){if(u=Se.get(c)){r=s=u.posAtEnd+i;break e}let d=new fu([],o.state);if(d.readNode(c),d.text.indexOf(hi)>-1)return null;i+=d.text.length}if(l=l.parentNode,!l)return null;let a=Se.get(l);if(a){r=s=a.posAtStart+i;break}}return{from:r,to:s,node:t}}function ZP(o,e){let t=Nv(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 f=e.mapPos(n,1),h=e.mapPos(r,-1);if(h-f==a.length)i=f,l=h;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:c}=o.state.selection;if(o.state.doc.sliceString(i,l)!=a||i>c.head||l<c.head)return null;let u=[],d=new Wt(n,r,i,l);for(let f=s.parentNode;;f=f.parentNode){let h=Se.get(f);if(h instanceof Nn)u.push({node:f,deco:h.mark});else{if(h instanceof ft||f.nodeName=="DIV"&&f.parentNode==o.contentDOM)return{range:d,text:s,marks:u,line:f};if(f!=o.contentDOM)u.push({node:f,deco:new Yr({inclusive:!0,attributes:zP(f),tagName:f.tagName.toLowerCase()})});else return null}}}function Hv(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=or(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 eD(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 xh=class{constructor(){this.changes=[]}compareRange(e,t){mh(e,t,this.changes)}comparePoint(e,t){mh(e,t,this.changes)}};function tD(o,e,t){let n=new xh;return Te.compare(o,e,t,n),n.changes}function nD(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 oD(o,e,t=1){let n=o.charCategorizer(e),r=o.doc.lineAt(e),s=e-r.from;if(r.length==0)return B.cursor(e);s==0?t=1:s==r.length&&(t=-1);let i=s,l=s;t<0?i=St(r.text,s,!1):l=St(r.text,s);let a=n(r.text.slice(i,l));for(;i>0;){let c=St(r.text,i,!1);if(n(r.text.slice(c,i))!=a)break;i=c}for(;l<r.length;){let c=St(r.text,l);if(n(r.text.slice(l,c))!=a)break;l=c}return B.range(i+r.from,l+r.from)}function rD(o,e){return e.left>o?e.left-o:Math.max(0,o-e.right)}function sD(o,e){return e.top>o?e.top-o:Math.max(0,o-e.bottom)}function rh(o,e){return o.top<e.bottom-1&&o.bottom>e.top+1}function $C(o,e){return e<o.top?{top:e,left:o.left,right:o.right,bottom:o.bottom}:o}function KC(o,e){return e>o.bottom?{top:o.top,left:o.left,right:o.right,bottom:e}:o}function Ch(o,e,t){let n,r,s,i,l=!1,a,c,u,d;for(let p=o.firstChild;p;p=p.nextSibling){let m=Jl(p);for(let g=0;g<m.length;g++){let y=m[g];r&&rh(r,y)&&(y=$C(KC(y,r.bottom),r.top));let E=rD(e,y),v=sD(t,y);if(E==0&&v==0)return p.nodeType==3?zC(p,e,t):Ch(p,e,t);if(!n||i>v||i==v&&s>E){n=p,r=y,s=E,i=v;let x=v?t<y.top?-1:1:E?e<y.left?-1:1:0;l=!x||(x>0?g<m.length-1:g>0)}E==0?t>y.bottom&&(!u||u.bottom<y.bottom)?(a=p,u=y):t<y.top&&(!d||d.top>y.top)&&(c=p,d=y):u&&rh(u,y)?u=KC(u,y.bottom):d&&rh(d,y)&&(d=$C(d,y.top))}}if(u&&u.bottom>=t?(n=a,r=u):d&&d.top<=t&&(n=c,r=d),!n)return{node:o,offset:0};let f=Math.max(r.left,Math.min(r.right,e));if(n.nodeType==3)return zC(n,f,t);if(l&&n.contentEditable!="false")return Ch(n,f,t);let h=Array.prototype.indexOf.call(o.childNodes,n)+(e>=(r.left+r.right)/2?1:0);return{node:o,offset:h}}function zC(o,e,t){let n=o.nodeValue.length,r=-1,s=1e9,i=0;for(let l=0;l<n;l++){let a=Jr(o,l,l+1).getClientRects();for(let c=0;c<a.length;c++){let u=a[c];if(u.top==u.bottom)continue;i||(i=e-u.left);let d=(u.top>t?u.top-t:t-u.bottom)-1;if(u.left-1<=e&&u.right+1>=e&&d<s){let f=e>=(u.left+u.right)/2,h=f;if((Y.chrome||Y.gecko)&&Jr(o,l).getBoundingClientRect().left==u.right&&(h=!f),d<=0)return{node:o,offset:l+(h?1:0)};r=l+(h?1:0),s=d}}}return{node:o,offset:r>-1?r:i>0?o.nodeValue.length:0}}function Fv(o,e,t,n=-1){var r,s;let i=o.contentDOM.getBoundingClientRect(),l=i.top+o.viewState.paddingTop,a,{docHeight:c}=o.viewState,{x:u,y:d}=e,f=d-l;if(f<0)return 0;if(f>c)return o.state.doc.length;for(let x=o.viewState.heightOracle.textHeight/2,C=!1;a=o.elementAtHeight(f),a.type!=_e.Text;)for(;f=n>0?a.bottom+x:a.top-x,!(f>=0&&f<=c);){if(C)return t?null:0;C=!0,n=-n}d=l+f;let h=a.from;if(h<o.viewport.from)return o.viewport.from==0?0:t?null:WC(o,i,a,u,d);if(h>o.viewport.to)return o.viewport.to==o.state.doc.length?o.state.doc.length:t?null:WC(o,i,a,u,d);let p=o.dom.ownerDocument,m=o.root.elementFromPoint?o.root:p,g=m.elementFromPoint(u,d);g&&!o.contentDOM.contains(g)&&(g=null),g||(u=Math.max(i.left+1,Math.min(i.right-1,u)),g=m.elementFromPoint(u,d),g&&!o.contentDOM.contains(g)&&(g=null));let y,E=-1;if(g&&((r=o.docView.nearest(g))===null||r===void 0?void 0:r.isEditable)!=!1){if(p.caretPositionFromPoint){let x=p.caretPositionFromPoint(u,d);x&&({offsetNode:y,offset:E}=x)}else if(p.caretRangeFromPoint){let x=p.caretRangeFromPoint(u,d);x&&({startContainer:y,startOffset:E}=x,(!o.contentDOM.contains(y)||Y.safari&&iD(y,E,u)||Y.chrome&&lD(y,E,u))&&(y=void 0))}}if(!y||!o.docView.dom.contains(y)){let x=ft.find(o.docView,h);if(!x)return f>a.top+a.height/2?a.to:a.from;({node:y,offset:E}=Ch(x.dom,u,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,E)+v.posAtStart}function WC(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+EC(i,s,o.state.tabSize)}function iD(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 Jr(o,n-1,n).getBoundingClientRect().left>t}function lD(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():Jr(o,0,Math.max(o.nodeValue.length,1)).getBoundingClientRect();return t-n.left>5}function vh(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==_e.Text))return n}return t}function aD(o,e,t,n){let r=vh(o,e.head),s=!n||r.type!=_e.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==Ge.LTR)?i.right-1:i.left+1,y:(s.top+s.bottom)/2});if(a!=null)return B.cursor(a,t?-1:1)}return B.cursor(t?r.to:r.from,t?-1:1)}function UC(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 c=JP(r,s,i,l,t),u=Ov;if(!c){if(r.number==(t?o.state.doc.lines:1))return l;u=`
10
- `,r=o.state.doc.line(r.number+(t?1:-1)),s=o.bidiSpans(r),c=B.cursor(t?r.from:r.to)}if(a){if(!a(u))return l}else{if(!n)return c;a=n(u)}l=c}}function cD(o,e,t){let n=o.state.charCategorizer(e),r=n(t);return s=>{let i=n(s);return r==Rt.Space&&(r=i),r==i}}function uD(o,e,t,n){let r=e.head,s=t?1:-1;if(r==(t?o.state.doc.length:0))return B.cursor(r,e.assoc);let i=e.goalColumn,l,a=o.contentDOM.getBoundingClientRect(),c=o.coordsAtPos(r),u=o.documentTop;if(c)i==null&&(i=c.left-a.left),l=s<0?c.top:c.bottom;else{let h=o.viewState.lineBlockAt(r);i==null&&(i=Math.min(a.right-a.left,o.defaultCharacterWidth*(r-h.from))),l=(s<0?h.top:h.bottom)+u}let d=a.left+i,f=n!=null?n:o.viewState.heightOracle.textHeight>>1;for(let h=0;;h+=10){let p=l+(f+h)*s,m=Fv(o,{x:d,y:p},!1,s);if(p<a.top||p>a.bottom||(s<0?m<r:m>r))return B.cursor(m,e.assoc,void 0,i)}}function ru(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 sh(o,e,t){let n=ru(o.state.facet(_h).map(r=>r(o)),t.from,e.head>t.from?-1:1);return n==t.from?t:B.cursor(n,n<t.from?1:-1)}var Sh=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 Je){let r=Je[n];e.contentDOM.addEventListener(n,s=>{GC(e,s)&&t(r,s)},Th[n]),this.registeredEvents.push(n)}e.scrollDOM.addEventListener("mousedown",n=>{if(n.target==e.scrollDOM&&n.clientY>e.contentDOM.getBoundingClientRect().bottom&&(t(Je.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(Je.drop,n)}),Y.chrome&&Y.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,Y.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=>{GC(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){Jn(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){Jn(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&&Vv.indexOf(t.keyCode)<0&&(e.inputState.lastEscPress=0),Y.android&&Y.chrome&&!t.synthetic&&(t.keyCode==13||t.keyCode==8))return e.observer.delayAndroidKey(t.key,t.keyCode),!0;let n;return Y.ios&&!t.synthetic&&!t.altKey&&!t.metaKey&&((n=Bv.find(r=>r.keyCode==t.keyCode))&&!t.ctrlKey||dD.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,mi(e.contentDOM,t.key,t.keyCode)):!1}ignoreDuringComposition(e){return/^key/.test(e.type)?this.composing>0?!0:Y.safari&&!Y.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()}},Bv=[{key:"Backspace",keyCode:8,inputType:"deleteContentBackward"},{key:"Enter",keyCode:13,inputType:"insertParagraph"},{key:"Enter",keyCode:13,inputType:"insertLineBreak"},{key:"Delete",keyCode:46,inputType:"deleteContentForward"}],dD="dthko",Vv=[16,17,18,20,91,92,224,225],Jc=6;function Yc(o){return Math.max(0,o)*.7+8}function fD(o,e){return Math.max(Math.abs(o.clientX-e.clientX),Math.abs(o.clientY-e.clientY))}var wh=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=HP(e.contentDOM),this.atoms=e.state.facet(_h).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(me.allowMultipleSelections)&&hD(e,t),this.dragging=mD(e,t)&&Wv(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&&fD(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=Rv(this.view);e.clientX-i.left<=s.left+Jc?n=-Yc(s.left-e.clientX):e.clientX+i.right>=s.right-Jc&&(n=Yc(e.clientX-s.right)),e.clientY-i.top<=s.top+Jc?r=-Yc(s.top-e.clientY):e.clientY+i.bottom>=s.bottom-Jc&&(r=Yc(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=ru(this.atoms,r.from,0);i!=r.from&&(s=B.cursor(i,-1))}else{let i=ru(this.atoms,r.from,-1),l=ru(this.atoms,r.to,1);(i!=r.from||l!=r.to)&&(s=B.range(r.from==r.anchor?i:l,r.from==r.head?i:l))}s&&(t||(t=e.ranges.slice()),t[n]=s)}return t?B.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 hD(o,e){let t=o.state.facet(vv);return t.length?t[0](e):Y.mac?e.metaKey:e.ctrlKey}function pD(o,e){let t=o.state.facet(Sv);return t.length?t[0](e):Y.mac?!e.altKey:!e.ctrlKey}function mD(o,e){let{main:t}=o.state.selection;if(t.empty)return!1;let n=au(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 GC(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=Se.get(t))&&n.ignoreEvent(e))return!1;return!0}var Je=Object.create(null),Th=Object.create(null),$v=Y.ie&&Y.ie_version<15||Y.ios&&Y.webkit_version<604;function gD(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(),Kv(o,t.value)},50)}function Kv(o,e){let{state:t}=o,n,r=1,s=t.toText(e),i=s.lines==t.selection.ranges.length;if(kh!=null&&t.selection.ranges.every(a=>a.empty)&&kh==s.toString()){let a=-1;n=t.changeByRange(c=>{let u=t.doc.lineAt(c.from);if(u.from==a)return{range:c};a=u.from;let d=t.toText((i?s.line(r++).text:e)+t.lineBreak);return{changes:{from:u.from,insert:d},range:B.cursor(c.from+d.length)}})}else i?n=t.changeByRange(a=>{let c=s.line(r++);return{changes:{from:a.from,to:a.to,insert:c.text},range:B.cursor(a.from+c.length)}}):n=t.replaceSelection(s);o.dispatch(n,{userEvent:"input.paste",scrollIntoView:!0})}Je.keydown=(o,e)=>{o.inputState.setSelectionOrigin("select"),e.keyCode==27&&(o.inputState.lastEscPress=Date.now())};Je.touchstart=(o,e)=>{o.inputState.lastTouchTime=Date.now(),o.inputState.setSelectionOrigin("select.pointer")};Je.touchmove=o=>{o.inputState.setSelectionOrigin("select.pointer")};Th.touchstart=Th.touchmove={passive:!0};Je.mousedown=(o,e)=>{if(o.observer.flush(),o.inputState.lastTouchTime>Date.now()-2e3)return;let t=null;for(let n of o.state.facet(wv))if(t=n(o,e),t)break;if(!t&&e.button==0&&(t=xD(o,e)),t){let n=!o.hasFocus;o.inputState.startMouseSelection(new wh(o,e,t,n)),n&&o.observer.ignore(()=>uv(o.contentDOM)),o.inputState.mouseSelection&&o.inputState.mouseSelection.start(e)}};function _C(o,e,t,n){if(n==1)return B.cursor(e,t);if(n==2)return oD(o.state,e,t);{let r=ft.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++,B.range(i,l)}}var zv=(o,e)=>o>=e.top&&o<=e.bottom,QC=(o,e,t)=>zv(e,t)&&o>=t.left&&o<=t.right;function bD(o,e,t,n){let r=ft.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&&QC(t,n,i))return-1;let l=r.coordsAt(s,1);return l&&QC(t,n,l)?1:i&&zv(n,i)?-1:1}function qC(o,e){let t=o.posAtCoords({x:e.clientX,y:e.clientY},!1);return{pos:t,bias:bD(o,t,e.clientX,e.clientY)}}var yD=Y.ie&&Y.ie_version<=11,jC=null,XC=0,JC=0;function Wv(o){if(!yD)return o.detail;let e=jC,t=JC;return jC=o,JC=Date.now(),XC=!e||t>Date.now()-400&&Math.abs(e.clientX-o.clientX)<2&&Math.abs(e.clientY-o.clientY)<2?(XC+1)%3:1}function xD(o,e){let t=qC(o,e),n=Wv(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=qC(o,s),c,u=_C(o,a.pos,a.bias,n);if(t.pos!=a.pos&&!i){let d=_C(o,t.pos,t.bias,n),f=Math.min(d.from,u.from),h=Math.max(d.to,u.to);u=f<u.from?B.range(f,h):B.range(h,f)}return i?r.replaceRange(r.main.extend(u.from,u.to)):l&&n==1&&r.ranges.length>1&&(c=CD(r,a.pos))?c:l?r.addRange(u):B.create([u])}}}function CD(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 B.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}Je.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 YC(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&&pD(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"})}Je.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&&YC(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 YC(o,e,e.dataTransfer.getData("Text"),!0)};Je.paste=(o,e)=>{if(o.state.readOnly)return e.preventDefault();o.observer.flush();let t=$v?null:e.clipboardData;t?(Kv(o,t.getData("text/plain")||t.getData("text/uri-text")),e.preventDefault()):gD(o)};function vD(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 SD(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 kh=null;Je.copy=Je.cut=(o,e)=>{let{text:t,ranges:n,linewise:r}=SD(o.state);if(!t&&!r)return;kh=r?t:null;let s=$v?null:e.clipboardData;s?(e.preventDefault(),s.clearData(),s.setData("text/plain",t)):vD(o,t),e.type=="cut"&&!o.state.readOnly&&o.dispatch({changes:n,scrollIntoView:!0,userEvent:"delete.cut"})};var Uv=tn.define();function Gv(o,e){let t=[];for(let n of o.facet(Ev)){let r=n(o,e);r&&t.push(r)}return t?o.update({effects:t,annotations:Uv.of(!0)}):null}function _v(o){setTimeout(()=>{let e=o.hasFocus;if(e!=o.inputState.notifiedFocused){let t=Gv(o.state,e);t?o.dispatch(t):o.update([])}},10)}Je.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),_v(o)};Je.blur=o=>{o.observer.clearSelectionRange(),_v(o)};Je.compositionstart=Je.compositionupdate=o=>{o.inputState.compositionFirstChange==null&&(o.inputState.compositionFirstChange=!0),o.inputState.composing<0&&(o.inputState.composing=0)};Je.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,Y.chrome&&Y.android?o.observer.flushSoon():o.inputState.compositionPendingChange?Promise.resolve().then(()=>o.observer.flush()):setTimeout(()=>{o.inputState.composing<0&&o.docView.hasComposition&&o.update([])},50)};Je.contextmenu=o=>{o.inputState.lastContextMenu=Date.now()};Je.beforeinput=(o,e)=>{var t;let n;if(Y.chrome&&Y.android&&(n=Bv.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 ZC=["pre-wrap","normal","pre-line","break-spaces"],Eh=class{constructor(e){this.lineWrapping=e,this.doc=fe.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 ZC.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=ZC.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 c=0;c<i.length;c++){let u=i[c];u<0?c++:this.heightSamples[Math.floor(u*10)]=!0}}return a}},Mh=class{constructor(e,t){this.from=e,this.heights=t,this.index=0}get more(){return this.index<this.heights.length}},pn=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"?_e.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 Yn?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 pn(this.from,this.length+e.length,this.top,this.height+e.height,t)}},Ie=function(o){return o[o.ByPos=0]="ByPos",o[o.ByHeight=1]="ByHeight",o[o.ByPosNoHeight=2]="ByPosNoHeight",o}(Ie||(Ie={})),su=.001,pt=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)>su&&(e.heightChanged=!0),this.height=t)}replace(e,t,n){return pt.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:c,fromB:u,toB:d}=r[l],f=s.lineAt(a,Ie.ByPosNoHeight,n.setDoc(t),0,0),h=f.to>=c?f:s.lineAt(c,Ie.ByPosNoHeight,n,0,0);for(d+=h.to-c,c=h.to;l>0&&f.from<=r[l-1].toA;)a=r[l-1].fromA,u=r[l-1].fromB,l--,a<f.from&&(f=s.lineAt(a,Ie.ByPosNoHeight,n,0,0));u+=f.from-a,a=f.from;let p=Zl.build(n.setDoc(i),e,u,d);s=s.replace(a,c,p)}return s.updateHeight(n,0)}static empty(){return new Lt(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 Ph(pt.of(e.slice(0,t)),i,pt.of(e.slice(n)))}};pt.prototype.size=1;var bu=class extends pt{constructor(e,t,n){super(e,t),this.deco=n}blockAt(e,t,n,r){return new pn(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})`}},Lt=class extends bu{constructor(e,t){super(e,t,null),this.collapsed=0,this.widgetHeight=0,this.breaks=0}blockAt(e,t,n,r){return new pn(r,this.length,n,this.height,this.breaks)}replace(e,t,n){let r=n[0];return n.length==1&&(r instanceof Lt||r instanceof nt&&r.flags&4)&&Math.abs(this.length-r.length)<10?(r instanceof nt?r=new Lt(r.length,this.height):r.height=this.height,this.outdated||(r.outdated=!1),r):pt.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:""})`}},nt=class extends pt{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 c=r+Math.round(Math.max(0,Math.min(1,(e-n)/this.height))*this.length),u=t.doc.lineAt(c),d=l+u.length*a,f=Math.max(n,e-d/2);return new pn(u.from,u.length,f,d,0)}else{let c=Math.max(0,Math.min(i-s,Math.floor((e-n)/l))),{from:u,length:d}=t.doc.line(s+c);return new pn(u,d,n+l*c,l,0)}}lineAt(e,t,n,r,s){if(t==Ie.ByHeight)return this.blockAt(e,n,r,s);if(t==Ie.ByPosNoHeight){let{from:h,to:p}=n.doc.lineAt(e);return new pn(h,p-h,0,0,0)}let{firstLine:i,perLine:l,perChar:a}=this.heightMetrics(n,s),c=n.doc.lineAt(e),u=l+c.length*a,d=c.number-i,f=r+l*d+a*(c.from-s-d);return new pn(c.from,c.length,Math.max(r,Math.min(f,r+this.height-u)),u,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:c}=this.heightMetrics(n,s);for(let u=e,d=r;u<=t;){let f=n.doc.lineAt(u);if(u==e){let p=f.number-l;d+=a*p+c*(e-s-p)}let h=a+c*f.length;i(new pn(f.from,f.length,d,h,0)),d+=h,u=f.to+1}}replace(e,t,n){let r=this.length-t;if(r>0){let s=n[n.length-1];s instanceof nt?n[n.length-1]=new nt(s.length+r):n.push(null,new nt(r-1))}if(e>0){let s=n[0];s instanceof nt?n[0]=new nt(e+s.length):n.unshift(new nt(e-1),null)}return pt.of(n)}decomposeLeft(e,t){t.push(new nt(e-1),null)}decomposeRight(e,t){t.push(null,new nt(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 nt(r.from-t-1).updateHeight(e,t));l<=s&&r.more;){let u=e.doc.lineAt(l).length;i.length&&i.push(null);let d=r.heights[r.index++];a==-1?a=d:Math.abs(d-a)>=su&&(a=-2);let f=new Lt(u,d);f.outdated=!1,i.push(f),l+=u+1}l<=s&&i.push(null,new nt(s-l).updateHeight(e,l));let c=pt.of(i);return(a<0||Math.abs(c.height-this.height)>=su||Math.abs(a-this.heightMetrics(e,t).perLine)>=su)&&(e.heightChanged=!0),c}else(n||this.outdated)&&(this.setHeight(e,e.heightForGap(t,t+this.length)),this.outdated=!1);return this}toString(){return`gap(${this.length})`}},Ph=class extends pt{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==Ie.ByHeight?e<i:e<l,c=a?this.left.lineAt(e,t,n,r,s):this.right.lineAt(e,t,n,i,l);if(this.break||(a?c.to<l:c.from>l))return c;let u=t==Ie.ByPosNoHeight?Ie.ByPosNoHeight:Ie.ByPos;return a?c.join(this.right.lineAt(l,u,n,i,l)):this.left.lineAt(l,u,n,r,s).join(c)}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 c=this.lineAt(a,Ie.ByPos,n,r,s);e<c.from&&this.left.forEachLine(e,c.from-1,n,r,s,i),c.to>=e&&c.from<=t&&i(c),t>c.to&&this.right.forEachLine(c.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&&ev(s,i-1),t<this.length){let l=s.length;this.decomposeRight(t,s),ev(s,l)}return pt.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?pt.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 ev(o,e){let t,n;o[e]==null&&(t=o[e-1])instanceof nt&&(n=o[e+1])instanceof nt&&o.splice(e-1,3,new nt(t.length+1+n.length))}var wD=5,Zl=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 Lt?r.length+=n-this.pos:(n>this.pos||!this.isCovered)&&this.nodes.push(new Lt(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 bu(i,r,n)):(i||s||r>=wD)&&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 Lt(this.pos-e,-1)),this.writtenTo=this.pos}blankContent(e,t){let n=new nt(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 Lt)return e;let t=new Lt(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==_e.WidgetAfter&&!this.isCovered&&this.ensureLine(),this.nodes.push(e),this.writtenTo=this.pos=this.pos+e.length,n!=_e.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 Lt)&&!this.isCovered?this.nodes.push(new Lt(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 Lt&&r.updateHeight(this.oracle,n),n+=r?r.length:1;return this.nodes}static build(e,t,n,r){let s=new Zl(n,e);return Te.spans(t,n,r,s,0),s.finish(n)}};function TD(o,e,t){let n=new Dh;return Te.compare(o,e,t,n,0),n.changes}var Dh=class{constructor(){this.changes=[]}compareRange(){}comparePoint(e,t,n,r){(e<t||n&&n.heightRelevant||r&&r.heightRelevant)&&mh(e,t,this.changes,5)}};function kD(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 c=o.parentNode;c&&c!=n.body;)if(c.nodeType==1){let u=c,d=window.getComputedStyle(u);if((u.scrollHeight>u.clientHeight||u.scrollWidth>u.clientWidth)&&d.overflow!="visible"){let f=u.getBoundingClientRect();s=Math.max(s,f.left),i=Math.min(i,f.right),l=Math.max(l,f.top),a=c==o.parentNode?f.bottom:Math.min(a,f.bottom)}c=d.position=="absolute"||d.position=="fixed"?u.offsetParent:u.parentNode}else if(c.nodeType==11)c=c.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 ED(o,e){let t=o.getBoundingClientRect();return{left:0,right:t.right-t.left,top:e,bottom:t.bottom-(t.top+e)}}var Xl=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 ot.replace({widget:new Ih(this.size,e)}).range(this.from,this.to)}},Ih=class extends Io{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}},yu=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=tv,this.scrollTarget=null,this.printing=!1,this.mustMeasureContent=!0,this.defaultTextDirection=Ge.LTR,this.visibleRanges=[],this.mustEnforceCursorAssoc=!1;let t=e.facet(Gh).some(n=>typeof n!="function"&&n.class=="cm-lineWrapping");this.heightOracle=new Eh(t),this.stateDeco=e.facet(Yl).filter(n=>typeof n!="function"),this.heightMap=pt.empty().applyChanges(this.stateDeco,fe.empty,this.heightOracle.setDoc(e.doc),[new Wt(0,0,0,e.doc.length)]),this.viewport=this.getViewport(0,null),this.updateViewportLines(),this.updateForViewport(),this.lineGaps=this.ensureLineGaps([]),this.lineGapDeco=ot.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 pi(s,i))}}this.viewports=e.sort((n,r)=>n.from-r.from),this.scaler=this.heightMap.height<=7e6?tv:new Rh(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:ql(e,this.scaler))})}update(e,t=null){this.state=e.state;let n=this.stateDeco;this.stateDeco=this.state.facet(Yl).filter(u=>typeof u!="function");let r=e.changedRanges,s=Wt.extendWithRanges(r,TD(n,this.stateDeco,e?e.changes:He.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 c=!e.changes.empty||e.flags&2||a.from!=this.viewport.from||a.to!=this.viewport.to;this.viewport=a,this.updateForViewport(),c&&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(Pv)&&(this.mustEnforceCursorAssoc=!0)}measure(e){let t=e.contentDOM,n=window.getComputedStyle(t),r=this.heightOracle,s=n.whiteSpace;this.defaultTextDirection=n.direction=="rtl"?Ge.RTL:Ge.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 c=0,u=0,d=parseInt(n.paddingTop)||0,f=parseInt(n.paddingBottom)||0;(this.paddingTop!=d||this.paddingBottom!=f)&&(this.paddingTop=d,this.paddingBottom=f,c|=10),this.editorWidth!=e.scrollDOM.clientWidth&&(r.lineWrapping&&(a=!0),this.editorWidth=e.scrollDOM.clientWidth,c|=8),this.scrollTop!=e.scrollDOM.scrollTop&&(this.scrollAnchorHeight=-1,this.scrollTop=e.scrollDOM.scrollTop),this.scrolledToBottom=fv(e.scrollDOM);let h=(this.printing?ED:kD)(t,this.paddingTop),p=h.top-this.pixelViewport.top,m=h.bottom-this.pixelViewport.bottom;this.pixelViewport=h;let g=this.pixelViewport.bottom>this.pixelViewport.top&&this.pixelViewport.right>this.pixelViewport.left;if(g!=this.inView&&(this.inView=g,g&&(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,c|=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:C,textHeight:b}=e.docView.measureTextSize();i=x>0&&r.refresh(s,x,C,b,y/C,v),i&&(e.docView.minWidth=0,c|=8)}p>0&&m>0?u=Math.max(p,m):p<0&&m<0&&(u=Math.min(p,m)),r.heightChanged=!1;for(let x of this.viewports){let C=x.from==this.viewport.from?v:e.docView.measureVisibleLineHeights(x);this.heightMap=(i?pt.empty().applyChanges(this.stateDeco,fe.empty,this.heightOracle,[new Wt(0,0,0,e.state.doc.length)]):this.heightMap).updateHeight(r,0,i,new Mh(x.from,C))}r.heightChanged&&(c|=2)}let E=!this.viewportIsAppropriate(this.viewport,u)||this.scrollTarget&&(this.scrollTarget.range.head<this.viewport.from||this.scrollTarget.range.head>this.viewport.to);return E&&(this.viewport=this.getViewport(u,this.scrollTarget)),this.updateForViewport(),(c&2||E)&&this.updateViewportLines(),(this.lineGaps.length||this.viewport.to-this.viewport.from>2e3<<1)&&this.updateLineGaps(this.ensureLineGaps(i?[]:this.lineGaps,e)),c|=this.computeVisibleRanges(),this.mustEnforceCursorAssoc&&(this.mustEnforceCursorAssoc=!1,e.docView.enforceCursorAssoc()),c}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 pi(r.lineAt(i-n*1e3,Ie.ByHeight,s,0,0).from,r.lineAt(l+(1-n)*1e3,Ie.ByHeight,s,0,0).to);if(t){let{head:c}=t.range;if(c<a.from||c>a.to){let u=Math.min(this.editorHeight,this.pixelViewport.bottom-this.pixelViewport.top),d=r.lineAt(c,Ie.ByPos,s,0,0),f;t.y=="center"?f=(d.top+d.bottom)/2-u/2:t.y=="start"||t.y=="nearest"&&c<a.from?f=d.top:f=d.bottom-u,a=new pi(r.lineAt(f-1e3/2,Ie.ByHeight,s,0,0).from,r.lineAt(f+u+1e3/2,Ie.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 pi(this.heightMap.lineAt(n,Ie.ByPos,this.heightOracle,0,0).from,this.heightMap.lineAt(r,Ie.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,Ie.ByPos,this.heightOracle,0,0),{bottom:s}=this.heightMap.lineAt(t,Ie.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 Xl(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!=Ge.LTR&&!n)return[];let l=[],a=(c,u,d,f)=>{if(u-c<s)return;let h=this.state.selection.main,p=[h.from];h.empty||p.push(h.to);for(let g of p)if(g>c&&g<u){a(c,g-10,d,f),a(g+10,u,d,f);return}let m=PD(e,g=>g.from>=d.from&&g.to<=d.to&&Math.abs(g.from-c)<s&&Math.abs(g.to-u)<s&&!p.some(y=>g.from<y&&g.to>y));if(!m){if(u<d.to&&t&&n&&t.visibleRanges.some(g=>g.from<=u&&g.to>=u)){let g=t.moveToLineBoundary(B.cursor(u),!1,!0).head;g>c&&(u=g)}m=new Xl(c,u,this.gapSize(d,c,u,f))}l.push(m)};for(let c of this.viewportLines){if(c.length<i)continue;let u=MD(c.from,c.to,this.stateDeco);if(u.total<i)continue;let d=this.scrollTarget?this.scrollTarget.range.head:null,f,h;if(n){let p=r/this.heightOracle.lineLength*this.heightOracle.lineHeight,m,g;if(d!=null){let y=eu(u,d),E=((this.visibleBottom-this.visibleTop)/2+p)/c.height;m=y-E,g=y+E}else m=(this.visibleTop-c.top-p)/c.height,g=(this.visibleBottom-c.top+p)/c.height;f=Zc(u,m),h=Zc(u,g)}else{let p=u.total*this.heightOracle.charWidth,m=r*this.heightOracle.charWidth,g,y;if(d!=null){let E=eu(u,d),v=((this.pixelViewport.right-this.pixelViewport.left)/2+m)/p;g=E-v,y=E+v}else g=(this.pixelViewport.left-m)/p,y=(this.pixelViewport.right+m)/p;f=Zc(u,g),h=Zc(u,y)}f>c.from&&a(c.from,f,c,u),h<c.to&&a(h,c.to,c,u)}return l}gapSize(e,t,n,r){let s=eu(r,n)-eu(r,t);return this.heightOracle.lineWrapping?e.height*s:r.total*this.heightOracle.charWidth*s}updateLineGaps(e){Xl.same(e,this.lineGaps)||(this.lineGaps=e,this.lineGapDeco=ot.set(e.map(t=>t.draw(this.heightOracle.lineWrapping))))}computeVisibleRanges(){let e=this.stateDeco;this.lineGaps.length&&(e=e.concat(this.lineGapDeco));let t=[];Te.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)||ql(this.heightMap.lineAt(e,Ie.ByPos,this.heightOracle,0,0),this.scaler)}lineBlockAtHeight(e){return ql(this.heightMap.lineAt(this.scaler.fromDOM(e),Ie.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 ql(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}},pi=class{constructor(e,t){this.from=e,this.to=t}};function MD(o,e,t){let n=[],r=o,s=0;return Te.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 Zc({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 eu(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 PD(o,e){for(let t of o)if(e(t))return t}var tv={toDOM(o){return o},fromDOM(o){return o},scale:1},Rh=class{constructor(e,t,n){let r=0,s=0,i=0;this.viewports=n.map(({from:l,to:a})=>{let c=t.lineAt(l,Ie.ByPos,e,0,0).top,u=t.lineAt(a,Ie.ByPos,e,0,0).bottom;return r+=u-c,{from:l,to:a,top:c,bottom:u,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 ql(o,e){if(e.scale==1)return o;let t=e.toDOM(o.top),n=e.toDOM(o.bottom);return new pn(o.from,o.length,t,n-t,Array.isArray(o._content)?o._content.map(r=>ql(r,e)):o._content)}var tu=re.define({combine:o=>o.join(" ")}),Ah=re.define({combine:o=>o.indexOf(!0)>-1}),Lh=hn.newName(),Qv=hn.newName(),qv=hn.newName(),jv={"&light":"."+Qv,"&dark":"."+qv};function Oh(o,e,t){return new hn(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 DD=Oh("."+Lh,{"&":{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"}},jv),Nh=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?[]:RD(e),a=new fu(l,e.state);a.readRange(this.bounds.startDOM,this.bounds.endDOM),this.text=a.text,this.newSel=AD(l,this.bounds.from)}else{let l=e.observer.selectionRange,a=s&&s.node==l.focusNode&&s.offset==l.focusOffset||!ah(e.contentDOM,l.focusNode)?e.state.selection.main.head:e.docView.posFromDOM(l.focusNode,l.focusOffset),c=i&&i.node==l.anchorNode&&i.offset==l.anchorOffset||!ah(e.contentDOM,l.anchorNode)?e.state.selection.main.anchor:e.docView.posFromDOM(l.anchorNode,l.anchorOffset);this.newSel=B.single(c,a)}}};function Xv(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,c=null;(s===8||Y.android&&e.text.length<l-i)&&(a=r.to,c="end");let u=ID(o.state.doc.sliceString(i,l,hi),e.text,a-i,c);u&&(Y.chrome&&s==13&&u.toB==u.from+2&&e.text.slice(u.from,u.toB)==hi+hi&&u.toB--,t={from:i+u.from,to:i+u.toA,insert:fe.of(e.text.slice(u.from,u.toB).split(hi))})}else n&&(!o.hasFocus&&o.state.facet(Cu)||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))}:(Y.mac||Y.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=B.single(n.main.anchor-1,n.main.head-1)),t={from:r.from,to:r.to,insert:fe.of([" "])}):Y.chrome&&t&&t.from==t.to&&t.from==r.head&&t.insert.toString()==`
11
- `&&o.lineWrapping&&(n&&(n=B.single(n.main.anchor-1,n.main.head-1)),t={from:r.from,to:r.to,insert:fe.of([" "])}),t){let i=o.state;if(Y.ios&&o.inputState.flushIOSKey(o)||Y.android&&(t.from==r.from&&t.to==r.to&&t.insert.length==1&&t.insert.lines==2&&mi(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)&&mi(o.contentDOM,"Backspace",8)||t.from==r.from&&t.to==r.to+1&&t.insert.length==0&&mi(o.contentDOM,"Delete",46)))return!0;let l=t.insert.toString();if(o.state.facet(kv).some(u=>u(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 u=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(u+t.insert.sliceString(0,void 0,o.state.lineBreak)+d))}else{let u=i.changes(t),d=n&&n.main.to<=u.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 f=o.state.sliceDoc(t.from,t.to),h=Nv(o)||o.state.doc.lineAt(r.head),p=r.to-t.to,m=r.to-r.from;a=i.changeByRange(g=>{if(g.from==r.from&&g.to==r.to)return{changes:u,range:d||g.map(u)};let y=g.to-p,E=y-f.length;if(g.to-g.from!=m||o.state.sliceDoc(E,y)!=f||h&&g.to>=h.from&&g.from<=h.to)return{range:g};let v=i.changes({from:E,to:y,insert:t.insert}),x=g.to-r.to;return{changes:v,range:d?B.range(Math.max(0,d.anchor+x),Math.max(0,d.head+x)):g.map(v)}})}else a={changes:u,selection:d&&i.selection.replaceRange(d)}}let c="input.type";return(o.composing||o.inputState.compositionPendingChange&&o.inputState.compositionEndedAt>Date.now()-50)&&(o.inputState.compositionPendingChange=!1,c+=".compose",o.inputState.compositionFirstChange&&(c+=".start",o.inputState.compositionFirstChange=!1)),o.dispatch(a,{scrollIntoView:!0,userEvent:c}),!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 ID(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 RD(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 hu(t,n)),(r!=t||s!=n)&&e.push(new hu(r,s))),e}function AD(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?B.single(t+e,n+e):null}var LD={childList:!0,characterData:!0,subtree:!0,attributes:!0,characterDataOldValue:!0},ih=Y.ie&&Y.ie_version<=11,Hh=class{constructor(e){this.view=e,this.active=!1,this.selectionRange=new ch,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);(Y.ie&&Y.ie_version<=11||Y.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()}),ih&&(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(Cu)?n.root.activeElement!=this.dom:!ou(n.dom,r))return;let s=r.anchorNode&&n.docView.nearest(r.anchorNode);if(s&&s.ignoreEvent(e)){t||(this.selectionChanged=!1);return}(Y.ie&&Y.ie_version<=11||Y.android&&Y.chrome)&&!n.state.selection.main.empty&&r.focusNode&&cu(r.focusNode,r.focusOffset,r.anchorNode,r.anchorOffset)?this.flushSoon():this.flush(!1)}readSelectionRange(){let{view:e}=this,t=Y.safari&&e.root.nodeType==11&&LP(this.dom.ownerDocument)==this.dom&&OD(this.view)||au(e.root);if(!t||this.selectionRange.eq(t))return!1;let n=ou(this.dom,t);return n&&!this.selectionChanged&&e.inputState.lastFocusTime>Date.now()-200&&e.inputState.lastTouchTime<Date.now()-300&&BP(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,LD),ih&&this.dom.addEventListener("DOMCharacterDataModified",this.onCharData),this.active=!0)}stop(){this.active&&(this.active=!1,this.observer.disconnect(),ih&&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&&mi(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&&ou(this.dom,this.selectionRange);return e<0&&!r?null:(e>-1&&(this.lastChange=Date.now()),this.view.inputState.lastFocusTime=0,this.selectionChanged=!1,new Nh(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=Xv(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=nv(t,e.previousSibling||e.target.previousSibling,-1),r=nv(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 nv(o,e,t){for(;e;){let n=Se.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 OD(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 cu(l.node,l.offset,s,i)&&([n,r,s,i]=[s,i,n,r]),{anchorNode:n,anchorOffset:r,focusNode:s,focusOffset:i}}var ie=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||FP(e.parent)||document,this.viewState=new yu(e.state||me.create(e)),this.plugins=this.state.facet(_l).map(t=>new jl(t));for(let t of this.plugins)t.update(this);this.observer=new Hh(this),this.inputState=new Sh(this),this.inputState.ensureHandlers(this,this.plugins),this.docView=new mu(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 Fe?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 f of e){if(f.startState!=s)throw new RangeError("Trying to update state with a transaction that doesn't start from the previous state.");s=f.state}if(this.destroyed){this.viewState.state=s;return}let i=this.hasFocus,l=0,a=null;e.some(f=>f.annotation(Uv))?(this.inputState.notifiedFocused=i,l=1):i!=this.inputState.notifiedFocused&&(this.inputState.notifiedFocused=i,a=Gv(s,i),a||(l=1));let c=this.observer.delayedAndroidKey,u=null;if(c?(this.observer.clearDelayedAndroidKey(),u=this.observer.readChange(),(u&&!this.state.doc.eq(s.doc)||!this.state.selection.eq(s.selection))&&(u=null)):this.observer.clear(),s.facet(me.phrases)!=this.state.facet(me.phrases))return this.setState(s);r=bi.create(this,s,e),r.flags|=l;let d=this.viewState.scrollTarget;try{this.updateState=2;for(let f of e){if(d&&(d=d.map(f.changes)),f.scrollIntoView){let{main:h}=f.state.selection;d=new gi(h.empty?h:B.cursor(h.head,h.head>h.anchor?-1:1))}for(let h of f.effects)h.is(VC)&&(d=h.value)}this.viewState.update(r,d),this.bidiCache=yi.update(this.bidiCache,r.changes),r.empty||(this.updatePlugins(r),this.inputState.update(r)),t=this.docView.update(r),this.state.facet(Ql)!=this.styleModules&&this.mountStyles(),n=this.updateAttrs(),this.showAnnouncements(e),this.docView.updateSelection(t,e.some(f=>f.isUserEvent("select.pointer")))}finally{this.updateState=0}if(r.startState.facet(tu)!=r.state.facet(tu)&&(this.viewState.mustMeasureContent=!0),(t||n||d||this.viewState.mustEnforceCursorAssoc||this.viewState.mustMeasureContent)&&this.requestMeasure(),!r.empty)for(let f of this.state.facet(gh))f(r);(a||u)&&Promise.resolve().then(()=>{a&&this.state==a.startState&&this.dispatch(a),u&&!Xv(this,u)&&c.force&&mi(this.contentDOM,c.key,c.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 yu(e),this.plugins=e.facet(_l).map(n=>new jl(n)),this.pluginMap.clear();for(let n of this.plugins)n.update(this);this.docView=new mu(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(_l),n=e.state.facet(_l);if(t!=n){let r=[];for(let s of n){let i=t.indexOf(s);if(i<0)r.push(new jl(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(fv(n))s=-1,i=this.viewState.heightMap.height;else{let h=this.viewState.scrollAnchorAt(r);s=h.from,i=h.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 c=[];a&4||([this.measureRequests,c]=[c,this.measureRequests]);let u=c.map(h=>{try{return h.read(this)}catch(p){return Jn(this.state,p),ov}}),d=bi.create(this,this.state,[]),f=!1;d.flags|=a,t?t.flags|=a:t=d,this.updateState=2,d.empty||(this.updatePlugins(d),this.inputState.update(d),this.updateAttrs(),f=this.docView.update(d));for(let h=0;h<c.length;h++)if(u[h]!=ov)try{let p=c[h];p.write&&p.write(u[h],this)}catch(p){Jn(this.state,p)}if(f&&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 p=(s<0?this.viewState.heightMap.height:this.viewState.lineBlockAt(s).top)-i;if(p>1||p<-1){r=n.scrollTop=r+p,i=-1;continue}}break}}}finally{this.updateState=0,this.measureScheduled=-1}if(t&&!t.empty)for(let l of this.state.facet(gh))l(t)}get themeClasses(){return Lh+" "+(this.state.facet(Ah)?qv:Qv)+" "+this.state.facet(tu)}updateAttrs(){let e=rv(this,Dv,{class:"cm-editor"+(this.hasFocus?" cm-focused ":" ")+this.themeClasses}),t={spellcheck:"false",autocorrect:"off",autocapitalize:"off",translate:"no",contenteditable:this.state.facet(Cu)?"true":"false",class:"cm-content",style:`${Y.tabSize}: ${this.state.tabSize}`,role:"textbox","aria-multiline":"true"};this.state.readOnly&&(t["aria-readonly"]="true"),rv(this,Gh,t);let n=this.observer.ignore(()=>{let r=ph(this.contentDOM,this.contentAttrs,t),s=ph(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(ie.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(Ql),hn.mount(this.root,this.styleModules.concat(DD).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 sh(this,e,UC(this,e,t,n))}moveByGroup(e,t){return sh(this,e,UC(this,e,t,n=>cD(this,e.head,n)))}moveToLineBoundary(e,t,n=!0){return aD(this,e,t,n)}moveVertically(e,t,n){return sh(this,e,uD(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(),Fv(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[nr.find(s,e-r.from,-1,t)];return zh(n,i.dir==Ge.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(Mv)||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>ND)return Lv(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=XP(e.text,t);return this.bidiCache.push(new yi(e.from,e.to,t,n)),n}get hasFocus(){var e;return(this.dom.ownerDocument.hasFocus()||Y.safari&&((e=this.inputState)===null||e===void 0?void 0:e.lastContextMenu)>Date.now()-3e4)&&this.root.activeElement==this.contentDOM}focus(){this.observer.ignore(()=>{uv(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 VC.of(new gi(typeof e=="number"?B.cursor(e):e,t.y,t.x,t.yMargin,t.xMargin))}static domEventHandlers(e){return gn.define(()=>({}),{eventHandlers:e})}static theme(e,t){let n=hn.newName(),r=[tu.of(n),Ql.of(Oh(`.${n}`,e))];return t&&t.dark&&r.push(Ah.of(!0)),r}static baseTheme(e){return Qr.lowest(Ql.of(Oh("."+Lh,e,jv)))}static findFromDOM(e){var t;let n=e.querySelector(".cm-content"),r=n&&Se.get(n)||Se.get(e);return((t=r==null?void 0:r.rootView)===null||t===void 0?void 0:t.view)||null}};ie.styleModule=Ql;ie.inputHandler=kv;ie.focusChangeEffect=Ev;ie.perLineTextDirection=Mv;ie.exceptionSink=Tv;ie.updateListener=gh;ie.editable=Cu;ie.mouseSelectionStyle=wv;ie.dragMovesSelection=Sv;ie.clickAddsSelectionRange=vv;ie.decorations=Yl;ie.atomicRanges=_h;ie.scrollMargins=Iv;ie.darkTheme=Ah;ie.contentAttributes=Gh;ie.editorAttributes=Dv;ie.lineWrapping=ie.contentAttributes.of({class:"cm-lineWrapping"});ie.announce=De.define();var ND=4096,ov={},yi=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:Ge.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 yi(t.mapPos(i.from,1),t.mapPos(i.to,-1),i.dir,i.order))}return n}};function rv(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&&hh(i,t)}return t}var HD=Y.mac?"mac":Y.windows?"win":Y.linux?"linux":"key";function FD(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 c=t[a];if(/^(cmd|meta|m)$/i.test(c))l=!0;else if(/^a(lt)?$/i.test(c))r=!0;else if(/^(c|ctrl|control)$/i.test(c))s=!0;else if(/^s(hift)?$/i.test(c))i=!0;else if(/^mod$/i.test(c))e=="mac"?l=!0:s=!0;else throw new Error("Unrecognized modifier name: "+c)}return r&&(n="Alt-"+n),s&&(n="Ctrl-"+n),l&&(n="Meta-"+n),i&&(n="Shift-"+n),n}function nu(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 BD=Qr.default(ie.domEventHandlers({keydown(o,e){return zD(VD(e.state),o,e,"editor")}})),ts=re.define({enables:BD}),sv=new WeakMap;function VD(o){let e=o.facet(ts),t=sv.get(e);return t||sv.set(e,t=KD(e.reduce((n,r)=>n.concat(r),[]))),t}var tr=null,$D=4e3;function KD(o,e=HD){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,c,u)=>{var d,f;let h=t[i]||(t[i]=Object.create(null)),p=l.split(/ (?!$)/).map(y=>FD(y,e));for(let y=1;y<p.length;y++){let E=p.slice(0,y).join(" ");r(E,!0),h[E]||(h[E]={preventDefault:!0,stopPropagation:!1,run:[v=>{let x=tr={view:v,prefix:E,scope:i};return setTimeout(()=>{tr==x&&(tr=null)},$D),!0}]})}let m=p.join(" ");r(m,!1);let g=h[m]||(h[m]={preventDefault:!1,stopPropagation:!1,run:((f=(d=h._any)===null||d===void 0?void 0:d.run)===null||f===void 0?void 0:f.slice())||[]});a&&g.run.push(a),c&&(g.preventDefault=!0),u&&(g.stopPropagation=!0)};for(let i of o){let l=i.scope?i.scope.split(" "):["editor"];if(i.any)for(let c of l){let u=t[c]||(t[c]=Object.create(null));u._any||(u._any={preventDefault:!1,stopPropagation:!1,run:[]});for(let d in u)u[d].run.push(i.any)}let a=i[e]||i.key;if(a)for(let c of l)s(c,a,i.run,i.preventDefault,i.stopPropagation),i.shift&&s(c,"Shift-"+a,i.shift,i.preventDefault,i.stopPropagation)}return t}function zD(o,e,t,n){let r=IC(e),s=qn(r,0),i=Wr(s)==r.length&&r!=" ",l="",a=!1,c=!1,u=!1;tr&&tr.view==t&&tr.scope==n&&(l=tr.prefix+" ",Vv.indexOf(e.keyCode)<0&&(c=!0,tr=null));let d=new Set,f=g=>{if(g){for(let y of g.run)if(!d.has(y)&&(d.add(y),y(t,e)))return g.stopPropagation&&(u=!0),!0;g.preventDefault&&(g.stopPropagation&&(u=!0),c=!0)}return!1},h=o[n],p,m;return h&&(f(h[l+nu(r,e,!i)])?a=!0:i&&(e.altKey||e.metaKey||e.ctrlKey)&&!(Y.windows&&e.ctrlKey&&e.altKey)&&(p=Mo[e.keyCode])&&p!=r?(f(h[l+nu(p,e,!0)])||e.shiftKey&&(m=di[e.keyCode])!=r&&m!=p&&f(h[l+nu(m,e,!1)]))&&(a=!0):i&&e.shiftKey&&f(h[l+nu(r,e,!0)])&&(a=!0),!a&&f(h._any)&&(a=!0)),c&&(a=!0),a&&u&&e.stopPropagation(),a}var es=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=Jv(e);return[new es(t,r.left-s.left,r.top-s.top,null,r.bottom-r.top)]}else return WD(e,t,n)}};function Jv(o){let e=o.scrollDOM.getBoundingClientRect();return{left:(o.textDirection==Ge.LTR?e.left:e.right-o.scrollDOM.clientWidth)-o.scrollDOM.scrollLeft,top:e.top-o.scrollDOM.scrollTop}}function iv(o,e,t){let n=B.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:_e.Text}}function WD(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==Ge.LTR,i=o.contentDOM,l=i.getBoundingClientRect(),a=Jv(o),c=i.querySelector(".cm-line"),u=c&&window.getComputedStyle(c),d=l.left+(u?parseInt(u.paddingLeft)+Math.min(0,parseInt(u.textIndent)):0),f=l.right-(u?parseInt(u.paddingRight):0),h=vh(o,n),p=vh(o,r),m=h.type==_e.Text?h:null,g=p.type==_e.Text?p:null;if(m&&(o.lineWrapping||h.widgetLineBreaks)&&(m=iv(o,n,m)),g&&(o.lineWrapping||p.widgetLineBreaks)&&(g=iv(o,r,g)),m&&g&&m.from==g.from)return E(v(t.from,t.to,m));{let C=m?v(t.from,null,m):x(h,!1),b=g?v(null,t.to,g):x(p,!0),S=[];return(m||h).to<(g||p).from-(m&&g?1:0)||h.widgetLineBreaks>1&&C.bottom+o.defaultLineHeight/2<b.top?S.push(y(d,C.bottom,f,b.top)):C.bottom<b.top&&o.elementAtHeight((C.bottom+b.top)/2).type==_e.Text&&(C.bottom=b.top=(C.bottom+b.top)/2),E(C).concat(S).concat(E(b))}function y(C,b,S,M){return new es(e,C-a.left,b-a.top-.01,S-C,M-b+.01)}function E({top:C,bottom:b,horizontal:S}){let M=[];for(let w=0;w<S.length;w+=2)M.push(y(S[w],C,S[w+1],b));return M}function v(C,b,S){let M=1e9,w=-1e9,k=[];function L(R,O,A,D,I){let F=o.coordsAtPos(R,R==S.to?-2:2),N=o.coordsAtPos(A,A==S.from?2:-2);!F||!N||(M=Math.min(F.top,N.top,M),w=Math.max(F.bottom,N.bottom,w),I==Ge.LTR?k.push(s&&O?d:F.left,s&&D?f:N.right):k.push(!s&&D?d:N.left,!s&&O?f:F.right))}let T=C!=null?C:S.from,P=b!=null?b:S.to;for(let R of o.visibleRanges)if(R.to>T&&R.from<P)for(let O=Math.max(R.from,T),A=Math.min(R.to,P);;){let D=o.state.doc.lineAt(O);for(let I of o.bidiSpans(D)){let F=I.from+D.from,N=I.to+D.from;if(F>=A)break;N>O&&L(Math.max(F,O),C==null&&F<=T,Math.min(N,A),b==null&&N>=P,I.dir)}if(O=D.to+1,O>=A)break}return k.length==0&&L(T,C==null,P,b==null,o.textDirection),{top:M,bottom:w,horizontal:k}}function x(C,b){let S=l.top+(b?C.top:C.bottom);return{top:S,bottom:S,horizontal:[]}}}function UD(o,e){return o.constructor==e.constructor&&o.eq(e)}var Fh=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(iu)!=e.state.facet(iu)&&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(iu);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)=>!UD(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()}},iu=re.define();function Yv(o){return[gn.define(e=>new Fh(e,o)),iu.of(o)]}var Zv=!Y.ios,ea=re.define({combine(o){return qr(o,{cursorBlinkRate:1200,drawRangeCursor:!0},{cursorBlinkRate:(e,t)=>Math.min(e,t),drawRangeCursor:(e,t)=>e||t})}});function Qh(o={}){return[ea.of(o),GD,_D,QD,Pv.of(!0)]}function e0(o){return o.startState.facet(ea)!=o.state.facet(ea)}var GD=Yv({above:!0,markers(o){let{state:e}=o,t=e.facet(ea),n=[];for(let r of e.selection.ranges){let s=r==e.selection.main;if(r.empty?!s||Zv:t.drawRangeCursor){let i=s?"cm-cursor cm-cursor-primary":"cm-cursor cm-cursor-secondary",l=r.empty?r:B.cursor(r.head,r.head>r.anchor?-1:1);for(let a of es.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=e0(o);return t&&lv(o.state,e),o.docChanged||o.selectionSet||t},mount(o,e){lv(e.state,o)},class:"cm-cursorLayer"});function lv(o,e){e.style.animationDuration=o.facet(ea).cursorBlinkRate+"ms"}var _D=Yv({above:!1,markers(o){return o.state.selection.ranges.map(e=>e.empty?[]:es.forRange(o,"cm-selectionBackground",e)).reduce((e,t)=>e.concat(t))},update(o,e){return o.docChanged||o.selectionSet||o.viewportChanged||e0(o)},class:"cm-selectionLayer"}),t0={".cm-line":{"& ::selection":{backgroundColor:"transparent !important"},"&::selection":{backgroundColor:"transparent !important"}}};Zv&&(t0[".cm-line"].caretColor="transparent !important");var QD=Qr.highest(ie.theme(t0));function av(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 qD(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 Bh=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,c,u)=>r(u,c,c+l[0].length,l,a);else if(typeof n=="function")this.addMatch=(l,a,c,u)=>{let d=n(l,a,c);d&&u(c,c+l[0].length,d)};else if(n)this.addMatch=(l,a,c,u)=>u(c,c+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 jn,n=t.add.bind(t);for(let{from:r,to:s}of qD(e,this.maxLength))av(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),c=a.to<l?e.state.doc.lineAt(l):a,u=Math.max(s.from,a.from),d=Math.min(s.to,c.to);if(this.boundary){for(;i>a.from;i--)if(this.boundary.test(a.text[i-1-a.from])){u=i;break}for(;l<c.to;l++)if(this.boundary.test(c.text[l-c.from])){d=l;break}}let f=[],h,p=(m,g,y)=>f.push(y.range(m,g));if(a==c)for(this.regexp.lastIndex=u-a.from;(h=this.regexp.exec(a.text))&&h.index<d-a.from;)this.addMatch(h,e,h.index+a.from,p);else av(e.state.doc,this.regexp,u,d,(m,g)=>this.addMatch(g,e,m,p));t=t.update({filterFrom:u,filterTo:d,filter:(m,g)=>m<u||g>d,add:f})}}return t}},Vh=/x/.unicode!=null?"gu":"g",jD=new RegExp(`[\0-\b
12
- -\x7F-\x9F\xAD\u061C\u200B\u200E\u200F\u2028\u2029\u202D\u202E\u2066\u2067\u2069\uFEFF\uFFF9-\uFFFC]`,Vh),XD={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"},lh=null;function JD(){var o;if(lh==null&&typeof document<"u"&&document.body){let e=document.body.style;lh=((o=e.tabSize)!==null&&o!==void 0?o:e.MozTabSize)!=null}return lh||!1}var lu=re.define({combine(o){let e=qr(o,{render:null,specialChars:jD,addSpecialChars:null});return(e.replaceTabs=!JD())&&(e.specialChars=new RegExp(" |"+e.specialChars.source,Vh)),e.addSpecialChars&&(e.specialChars=new RegExp(e.specialChars.source+"|"+e.addSpecialChars.source,Vh)),e}});function qh(o={}){return[lu.of(o),YD()]}var cv=null;function YD(){return cv||(cv=gn.fromClass(class{constructor(o){this.view=o,this.decorations=ot.none,this.decorationCache=Object.create(null),this.decorator=this.makeDecorator(o.state.facet(lu)),this.decorations=this.decorator.createDeco(o)}makeDecorator(o){return new Bh({regexp:o.specialChars,decoration:(e,t,n)=>{let{doc:r}=t.state,s=qn(e[0],0);if(s==9){let i=r.lineAt(n),l=t.state.tabSize,a=jr(i.text,l,n-i.from);return ot.replace({widget:new Kh((l-a%l)*this.view.defaultCharacterWidth)})}return this.decorationCache[s]||(this.decorationCache[s]=ot.replace({widget:new $h(o,s)}))},boundary:o.replaceTabs?void 0:/[^]/})}update(o){let e=o.state.facet(lu);o.startState.facet(lu)!=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 ZD="\u2022";function eI(o){return o>=32?ZD:o==10?"\u2424":String.fromCharCode(9216+o)}var $h=class extends Io{constructor(e,t){super(),this.options=e,this.code=t}eq(e){return e.code==this.code}toDOM(e){let t=eI(this.code),n=e.state.phrase("Control character")+" "+(XD[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}},Kh=class extends Io{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 rU=ie.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 Ro=class extends On{compare(e){return this==e||this.constructor==e.constructor&&this.eq(e)}eq(e){return!1}destroy(e){}};Ro.prototype.elementClass="";Ro.prototype.toDOM=void 0;Ro.prototype.mapMode=vt.TrackBefore;Ro.prototype.startSide=Ro.prototype.endSide=-1;Ro.prototype.point=!0;var tI=0,bn=class{constructor(e,t,n){this.set=e,this.base=t,this.modified=n,this.id=tI++}static define(e){if(e!=null&&e.base)throw new Error("Can not derive from a modified tag");let t=new bn([],null,[]);if(t.set.push(t),e)for(let n of e.set)t.set.push(n);return t}static defineModifier(){let e=new xi;return t=>t.modified.indexOf(e)>-1?t:xi.get(t.base||t,t.modified.concat(e).sort((n,r)=>n.id-r.id))}},nI=0,xi=class{constructor(){this.instances=[],this.id=nI++}static get(e,t){if(!t.length)return e;let n=t[0].instances.find(l=>l.base==e&&oI(t,l.modified));if(n)return n;let r=[],s=new bn(r,e,t);for(let l of t)l.instances.push(s);let i=rI(t);for(let l of e.set)if(!l.modified.length)for(let a of i)r.push(xi.get(l,a));return s}};function oI(o,e){return o.length==e.length&&o.every((t,n)=>t==e[n])}function rI(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 os(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 f=/^"(?:[^"\\]|\\.)*?"|[^\/!]+/.exec(l);if(!f)throw new RangeError("Invalid path: "+r);if(s.push(f[0]=="*"?"":f[0][0]=='"'?JSON.parse(f[0]):f[0]),d+=f[0].length,d==r.length)break;let h=r[d++];if(d==r.length&&h=="!"){i=0;break}if(h!="/")throw new RangeError("Invalid path: "+r);l=r.slice(d)}let a=s.length-1,c=s[a];if(!c)throw new RangeError("Invalid path: "+r);let u=new Ci(n,i,a>0?s.slice(0,a):null);e[c]=u.sort(e[c])}}return r0.add(e)}var r0=new se,Ci=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}};Ci.empty=new Ci([],2,null);function Yh(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 c=t[a.id];if(c){i=i?i+" "+c:c;break}}return i},scope:n}}function sI(o,e){let t=null;for(let n of o){let r=n.style(e);r&&(t=t?t+" "+r:r)}return t}function s0(o,e,t,n=0,r=o.length){let s=new Xh(n,Array.isArray(e)?e:[e],t);s.highlightRange(o.cursor(),n,r,"",s.highlighters),s.flush(r)}var Xh=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(h=>!h.scope||h.scope(i)));let c=r,u=iI(e)||Ci.empty,d=sI(s,u.tags);if(d&&(c&&(c+=" "),c+=d,u.mode==1&&(r+=(r?" ":"")+d)),this.startSpan(Math.max(t,l),c),u.opaque)return;let f=e.tree&&e.tree.prop(se.mounted);if(f&&f.overlay){let h=e.node.enter(f.overlay[0].from+l,1),p=this.highlighters.filter(g=>!g.scope||g.scope(f.tree.type)),m=e.firstChild();for(let g=0,y=l;;g++){let E=g<f.overlay.length?f.overlay[g]:null,v=E?E.from+l:a,x=Math.max(t,y),C=Math.min(n,v);if(x<C&&m)for(;e.from<C&&(this.highlightRange(e,x,C,r,s),this.startSpan(Math.min(C,e.to),c),!(e.to>=v||!e.nextSibling())););if(!E||v>n)break;y=E.to+l,y>t&&(this.highlightRange(h.cursor(),Math.max(t,E.from+l),Math.min(n,y),"",p),this.startSpan(Math.min(n,y),c))}m&&e.parent()}else if(e.firstChild()){f&&(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),c)}while(e.nextSibling());e.parent()}}};function iI(o){let e=o.type.prop(r0);for(;e&&e.context&&!o.matchContext(e.context);)e=e.next;return e||null}var W=bn.define,vu=W(),sr=W(),n0=W(sr),o0=W(sr),ir=W(),Su=W(ir),jh=W(ir),to=W(),ns=W(to),Zn=W(),eo=W(),Jh=W(),ta=W(Jh),wu=W(),$={comment:vu,lineComment:W(vu),blockComment:W(vu),docComment:W(vu),name:sr,variableName:W(sr),typeName:n0,tagName:W(n0),propertyName:o0,attributeName:W(o0),className:W(sr),labelName:W(sr),namespace:W(sr),macroName:W(sr),literal:ir,string:Su,docString:W(Su),character:W(Su),attributeValue:W(Su),number:jh,integer:W(jh),float:W(jh),bool:W(ir),regexp:W(ir),escape:W(ir),color:W(ir),url:W(ir),keyword:Zn,self:W(Zn),null:W(Zn),atom:W(Zn),unit:W(Zn),modifier:W(Zn),operatorKeyword:W(Zn),controlKeyword:W(Zn),definitionKeyword:W(Zn),moduleKeyword:W(Zn),operator:eo,derefOperator:W(eo),arithmeticOperator:W(eo),logicOperator:W(eo),bitwiseOperator:W(eo),compareOperator:W(eo),updateOperator:W(eo),definitionOperator:W(eo),typeOperator:W(eo),controlOperator:W(eo),punctuation:Jh,separator:W(Jh),bracket:ta,angleBracket:W(ta),squareBracket:W(ta),paren:W(ta),brace:W(ta),content:to,heading:ns,heading1:W(ns),heading2:W(ns),heading3:W(ns),heading4:W(ns),heading5:W(ns),heading6:W(ns),contentSeparator:W(to),list:W(to),quote:W(to),emphasis:W(to),strong:W(to),link:W(to),monospace:W(to),strikethrough:W(to),inserted:W(),deleted:W(),changed:W(),invalid:W(),meta:wu,documentMeta:W(wu),annotation:W(wu),processingInstruction:W(wu),definition:bn.defineModifier(),constant:bn.defineModifier(),function:bn.defineModifier(),standard:bn.defineModifier(),local:bn.defineModifier(),special:bn.defineModifier()},aU=Yh([{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 Zh,vi=new se;function lI(o){return re.define({combine:o?e=>e.concat(o):void 0})}var aI=new se,on=class{constructor(e,t,n=[],r=""){this.data=e,this.name=r,me.prototype.hasOwnProperty("tree")||Object.defineProperty(me.prototype,"tree",{get(){return mt(this)}}),this.parser=t,this.extension=[wi.of(this),me.languageData.of((s,i,l)=>{let a=i0(s,i,l),c=a.type.prop(vi);if(!c)return[];let u=s.facet(c),d=a.type.prop(aI);if(d){let f=a.resolve(i-a.from,l);for(let h of d)if(h.test(f,s)){let p=s.facet(h.facet);return h.type=="replace"?p:p.concat(u)}}return u})].concat(n)}isActiveAt(e,t,n=-1){return i0(e,t,n).type.prop(vi)==this.data}findRegions(e){let t=e.facet(wi);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(vi)==this.data){n.push({from:i,to:i+s.length});return}let l=s.prop(se.mounted);if(l){if(l.tree.prop(vi)==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 c=s.children[a];c instanceof be&&r(c,s.positions[a]+i)}};return r(mt(e),0),n}get allowsNesting(){return!0}};on.setState=De.define();function i0(o,e,t){let n=o.facet(wi),r=mt(o).topNode;if(!n||n.allowsNesting)for(let s=r;s;s=s.enter(e,t,ze.ExcludeBuffers))s.type.isTop&&(r=s);return r}var no=class extends on{constructor(e,t,n){super(e,t,[],n),this.parser=t}static define(e){let t=lI(e.languageData);return new no(t,e.parser.configure({props:[vi.add(n=>n.isTop?t:void 0)]}),e.name)}configure(e,t){return new no(this.data,this.parser.configure(e),t||this.name)}get allowsNesting(){return this.parser.hasWrappers()}};function mt(o){let e=o.field(on.state,!1);return e?e.tree:be.empty}var op=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)}},na=null,Si=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 Si(e,t,[],be.empty,0,n,[],null)}startParse(){return this.parser.startParse(new op(this.state.doc),this.fragments)}work(e,t){return t!=null&&t>=this.state.doc.length&&(t=void 0),this.tree!=be.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(_n.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(_n.addTree(this.tree,this.fragments,!0)),this.parse=null)}withContext(e){let t=na;na=this;try{return e()}finally{na=t}}withoutTempSkipped(e){for(let t;t=this.tempSkipped.pop();)e=l0(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((c,u,d,f)=>a.push({fromA:c,toA:u,fromB:d,toB:f})),n=_n.applyChanges(n,a),r=be.empty,s=0,i={from:e.mapPos(i.from,-1),to:e.mapPos(i.to,1)},this.skipped.length){l=[];for(let c of this.skipped){let u=e.mapPos(c.from,1),d=e.mapPos(c.to,-1);u<d&&l.push({from:u,to:d})}}}return new Si(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=l0(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 jo{createParse(t,n,r){let s=r[0].from,i=r[r.length-1].to;return{parsedPos:s,advance(){let a=na;if(a){for(let c of r)a.tempSkipped.push(c);e&&(a.scheduleOn=a.scheduleOn?Promise.all([a.scheduleOn,e]):e)}return this.parsedPos=i,new be(je.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 na}};function l0(o,e,t){return _n.applyChanges(o,[{fromA:e,toA:t,fromB:e,toB:t}])}var lr=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 lr(t)}static init(e){let t=Math.min(3e3,e.doc.length),n=Si.create(e.facet(wi).parser,e,{from:0,to:t});return n.work(20,t)||n.takeTree(),new lr(n)}};on.state=At.define({create:lr.init,update(o,e){for(let t of e.effects)if(t.is(on.setState))return t.value;return e.startState.facet(wi)!=e.state.facet(wi)?lr.init(e.state):o.apply(e)}});var u0=o=>{let e=setTimeout(()=>o(),500);return()=>clearTimeout(e)};typeof requestIdleCallback<"u"&&(u0=o=>{let e=-1,t=setTimeout(()=>{e=requestIdleCallback(o,{timeout:500-100})},100);return()=>e<0?clearTimeout(t):cancelIdleCallback(e)});var ep=typeof navigator<"u"&&(!((Zh=navigator.scheduling)===null||Zh===void 0)&&Zh.isInputPending)?()=>navigator.scheduling.isInputPending():null,cI=gn.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(on.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(on.state);(t.tree!=t.context.tree||!t.context.isDone(e.doc.length))&&(this.working=u0(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(on.state);if(s.tree==s.context.tree&&s.context.isDone(r+1e5))return;let i=Date.now()+Math.min(this.chunkBudget,100,e&&!ep?Math.max(25,e.timeRemaining()-5):1e9),l=s.context.treeLen<r&&n.doc.length>r+1e3,a=s.context.work(()=>ep&&ep()||Date.now()>i,r+(l?0:1e5));this.chunkBudget-=Date.now()-t,(a||this.chunkBudget<=0)&&(s.context.takeTree(),this.view.dispatch({effects:on.setState.of(new lr(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=>Jn(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()}}}),wi=re.define({combine(o){return o.length?o[0]:null},enables:o=>[on.state,cI,ie.contentAttributes.compute([o],e=>{let t=e.facet(o);return t&&t.name?{"data-language":t.name}:{}})]});var uI=re.define(),ra=re.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 sa(o){let e=o.facet(ra);return e.charCodeAt(0)==9?o.tabSize*e.length:e.length}function ia(o,e){let t="",n=o.tabSize,r=o.facet(ra)[0];if(r==" "){for(;e>=n;)t+=" ",e-=n;r=" "}for(let s=0;s<e;s++)t+=r;return t}function ap(o,e){o instanceof me&&(o=new rs(o));for(let n of o.state.facet(uI)){let r=n(o,e);if(r!==void 0)return r}let t=mt(o.state);return t?fI(o,t,e):null}var rs=class{constructor(e,t={}){this.state=e,this.options=t,this.unit=sa(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 jr(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}},dI=new se;function fI(o,e,t){return d0(e.resolveInner(t).enterUnfinishedNodesBefore(t),t,o)}function hI(o){return o.pos==o.options.simulateBreak&&o.options.simulateDoubleBreak}function pI(o){let e=o.type.prop(dI);if(e)return e;let t=o.firstChild,n;if(t&&(n=t.type.prop(se.closedBy))){let r=o.lastChild,s=r&&n.indexOf(r.name)>-1;return i=>yI(i,!0,1,void 0,s&&!hI(i)?r.from:void 0)}return o.parent==null?mI:null}function d0(o,e,t){for(;o;o=o.parent){let n=pI(o);if(n)return n(oa.create(t,e,o))}return null}function mI(){return 0}var oa=class extends rs{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 oa(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(gI(n,e))break;t=this.state.doc.lineAt(n.from)}return this.lineIndent(t.from)}continue(){let e=this.node.parent;return e?d0(e,this.pos,this.base):0}};function gI(o,e){for(let t=e;t;t=t.parent)if(o==t)return!0;return!1}function bI(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 yI(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?bI(o):null;return a?l?o.column(a.from):o.column(a.to):o.baseIndent+(l?0:o.unit*t)}var Hn=class{constructor(e,t){this.specs=e;let n;function r(l){let a=hn.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 on?l=>l.prop(vi)==i.data:i?l=>l==i:void 0,this.style=Yh(e.map(l=>({tag:l.tag,class:l.class||r(Object.assign({},l,{tag:null}))})),{all:s}).style,this.module=n?new hn(n):null,this.themeType=t.themeType}static define(e,t){return new Hn(e,t||{})}},rp=re.define(),f0=re.define({combine(o){return o.length?[o[0]]:null}});function tp(o){let e=o.facet(rp);return e.length?e:o.facet(f0)}function ss(o,e){let t=[xI],n;return o instanceof Hn&&(o.module&&t.push(ie.styleModule.of(o.module)),n=o.themeType),e!=null&&e.fallback?t.push(f0.of(o)):n?t.push(rp.computeN([ie.darkTheme],r=>r.facet(ie.darkTheme)==(n=="dark")?[o]:[])):t.push(rp.of(o)),t}var sp=class{constructor(e){this.markCache=Object.create(null),this.tree=mt(e.state),this.decorations=this.buildDeco(e,tp(e.state))}update(e){let t=mt(e.state),n=tp(e.state),r=n!=tp(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 ot.none;let n=new jn;for(let{from:r,to:s}of e.visibleRanges)s0(this.tree,t,(i,l,a)=>{n.add(i,l,this.markCache[a]||(this.markCache[a]=ot.mark({class:a})))},r,s);return n.finish()}},xI=Qr.high(gn.fromClass(sp,{decorations:o=>o.decorations})),cp=Hn.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 CI=1e4,vI="()[]{}";var SI=new se;function ip(o,e,t){let n=o.prop(e<0?se.openedBy:se.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 lp(o){let e=o.type.prop(SI);return e?e(o.node):o}function is(o,e,t,n={}){let r=n.maxScanDistance||CI,s=n.brackets||vI,i=mt(o),l=i.resolveInner(e,t);for(let a=l;a;a=a.parent){let c=ip(a.type,t,s);if(c&&a.from<a.to){let u=lp(a);if(u&&(t>0?e>=u.from&&e<u.to:e>u.from&&e<=u.to))return wI(o,e,t,a,u,c,s)}}return TI(o,e,t,i,l.type,r,s)}function wI(o,e,t,n,r,s,i){let l=n.parent,a={from:r.from,to:r.to},c=0,u=l==null?void 0:l.cursor();if(u&&(t<0?u.childBefore(n.from):u.childAfter(n.to)))do if(t<0?u.to<=n.from:u.from>=n.to){if(c==0&&s.indexOf(u.type.name)>-1&&u.from<u.to){let d=lp(u);return{start:a,end:d?{from:d.from,to:d.to}:void 0,matched:!0}}else if(ip(u.type,t,i))c++;else if(ip(u.type,-t,i)){if(c==0){let d=lp(u);return{start:a,end:d&&d.from<d.to?{from:d.from,to:d.to}:void 0,matched:!1}}c--}}while(t<0?u.prevSibling():u.nextSibling());return{start:a,matched:!1}}function TI(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 c={from:t<0?e-1:e,to:t>0?e+1:e},u=o.doc.iterRange(e,t>0?o.doc.length:0),d=0;for(let f=0;!u.next().done&&f<=s;){let h=u.value;t<0&&(f+=h.length);let p=e+f*t;for(let m=t>0?0:h.length-1,g=t>0?h.length:-1;m!=g;m+=t){let y=i.indexOf(h[m]);if(!(y<0||n.resolveInner(p+m,1).type!=r))if(y%2==0==t>0)d++;else{if(d==1)return{start:c,end:{from:p+m,to:p+m+1},matched:y>>1==a>>1};d--}}t>0&&(f+=h.length)}return u.done?{start:c,matched:!1}:null}var kI=Object.create(null),a0=[je.none];var c0=[],EI=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"]])EI[o]=MI(kI,e);function np(o,e){c0.indexOf(o)>-1||(c0.push(o),console.warn(e))}function MI(o,e){let t=null;for(let s of e.split(".")){let i=o[s]||$[s];i?typeof i=="function"?t?t=i(t):np(s,`Modifier ${s} used at start of tag`):t?np(s,`Tag ${s} used as modifier`):t=i:np(s,`Unknown highlighting tag ${s}`)}if(!t)return 0;let n=e.replace(/ /g,"_"),r=je.define({id:a0.length,name:n,props:[os({[n]:t})]});return a0.push(r),r.id}var Tu={brackets:["(","[","{","'",'"'],before:")]}:;>",stringPrefixes:[]},ls=De.define({map(o,e){let t=e.mapPos(o,-1,vt.TrackAfter);return t==null?void 0:t}}),dp=new class extends On{};dp.startSide=1;dp.endSide=-1;var m0=At.define({create(){return Te.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=Te.empty)}o=o.map(e.changes);for(let t of e.effects)t.is(ls)&&(o=o.update({add:[dp.range(t.value,t.value+1)]}));return o}});function fp(){return[RI,m0]}var up="()[]{}<>";function PI(o){for(let e=0;e<up.length;e+=2)if(up.charCodeAt(e)==o)return up.charAt(e+1);return pC(o<128?o:o+1)}function DI(o,e){return o.languageDataAt("closeBrackets",e)[0]||Tu}var II=typeof navigator=="object"&&/Android\b/.test(navigator.userAgent),RI=ie.inputHandler.of((o,e,t,n)=>{if((II?o.composing:o.compositionStarted)||o.state.readOnly)return!1;let r=o.state.selection.main;if(n.length>2||n.length==2&&Wr(qn(n,0))==1||e!=r.from||t!=r.to)return!1;let s=AI(o.state,n);return s?(o.dispatch(s),!0):!1});function AI(o,e){let t=DI(o,o.selection.main.head),n=t.brackets||Tu.brackets;for(let r of n){let s=PI(qn(r,0));if(e==r)return s==r?NI(o,r,n.indexOf(r+r+r)>-1,t):LI(o,r,s,t.before||Tu.before);if(e==s&&g0(o,o.selection.main.from))return OI(o,r,s)}return null}function g0(o,e){let t=!1;return o.field(m0).between(0,o.doc.length,n=>{n==e&&(t=!0)}),t}function hp(o,e){let t=o.sliceString(e,e+2);return t.slice(0,Wr(qn(t,0)))}function LI(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:ls.of(i.to+e.length),range:B.range(i.anchor+e.length,i.head+e.length)};let l=hp(o.doc,i.head);return!l||/\s/.test(l)||n.indexOf(l)>-1?{changes:{insert:e+t,from:i.head},effects:ls.of(i.head+e.length),range:B.cursor(i.head+e.length)}:{range:r=i}});return r?null:o.update(s,{scrollIntoView:!0,userEvent:"input.type"})}function OI(o,e,t){let n=null,r=o.changeByRange(s=>s.empty&&hp(o.doc,s.head)==t?{changes:{from:s.head,to:s.head+t.length,insert:t},range:B.cursor(s.head+t.length)}:n={range:s});return n?null:o.update(r,{scrollIntoView:!0,userEvent:"input.type"})}function NI(o,e,t,n){let r=n.stringPrefixes||Tu.stringPrefixes,s=null,i=o.changeByRange(l=>{if(!l.empty)return{changes:[{insert:e,from:l.from},{insert:e,from:l.to}],effects:ls.of(l.to+e.length),range:B.range(l.anchor+e.length,l.head+e.length)};let a=l.head,c=hp(o.doc,a),u;if(c==e){if(h0(o,a))return{changes:{insert:e+e,from:a},effects:ls.of(a+e.length),range:B.cursor(a+e.length)};if(g0(o,a)){let f=t&&o.sliceDoc(a,a+e.length*3)==e+e+e?e+e+e:e;return{changes:{from:a,to:a+f.length,insert:f},range:B.cursor(a+f.length)}}}else{if(t&&o.sliceDoc(a-2*e.length,a)==e+e&&(u=p0(o,a-2*e.length,r))>-1&&h0(o,u))return{changes:{insert:e+e+e+e,from:a},effects:ls.of(a+e.length),range:B.cursor(a+e.length)};if(o.charCategorizer(a)(c)!=Rt.Word&&p0(o,a,r)>-1&&!HI(o,a,e,r))return{changes:{insert:e+e,from:a},effects:ls.of(a+e.length),range:B.cursor(a+e.length)}}return{range:s=l}});return s?null:o.update(i,{scrollIntoView:!0,userEvent:"input.type"})}function h0(o,e){let t=mt(o).resolveInner(e+1);return t.parent&&t.from==e}function HI(o,e,t,n){let r=mt(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 u=r.firstChild;for(;u&&u.from==r.from&&u.to-u.from>t.length+a;){if(o.sliceDoc(u.to-t.length,u.to)==t)return!1;u=u.firstChild}return!0}let c=r.to==e&&r.parent;if(!c)break;r=c}return!1}function p0(o,e,t){let n=o.charCategorizer(e);if(n(o.sliceDoc(e-1,e))!=Rt.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))!=Rt.Word)return s}return-1}var FI=o=>{let{state:e}=o,t=e.doc.lineAt(e.selection.main.from),n=Cp(o.state,t.from);return n.line?BI(o):n.block?$I(o):!1};function xp(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 BI=xp(WI,0);var VI=xp(T0,0);var $I=xp((o,e)=>T0(o,e,zI(e)),0);function Cp(o,e){let t=o.languageDataAt("commentTokens",e);return t.length?t[0]:{}}var la=50;function KI(o,{open:e,close:t},n,r){let s=o.sliceDoc(n-la,n),i=o.sliceDoc(r,r+la),l=/\s*$/.exec(s)[0].length,a=/^\s*/.exec(i)[0].length,c=s.length-l;if(s.slice(c-e.length,c)==e&&i.slice(a,a+t.length)==t)return{open:{pos:n-l,margin:l&&1},close:{pos:r+a,margin:a&&1}};let u,d;r-n<=2*la?u=d=o.sliceDoc(n,r):(u=o.sliceDoc(n,n+la),d=o.sliceDoc(r-la,r));let f=/^\s*/.exec(u)[0].length,h=/\s*$/.exec(d)[0].length,p=d.length-h-t.length;return u.slice(f,f+e.length)==e&&d.slice(p,p+t.length)==t?{open:{pos:n+f+e.length,margin:/\s/.test(u.charAt(f+e.length))?1:0},close:{pos:r-h-t.length,margin:/\s/.test(d.charAt(p-1))?1:0}}:null}function zI(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 T0(o,e,t=e.selection.ranges){let n=t.map(s=>Cp(e,s.from).block);if(!n.every(s=>s))return null;let r=t.map((s,i)=>KI(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:c,close:u}=l;s.push({from:c.pos-a.open.length,to:c.pos+c.margin},{from:u.pos-u.margin,to:u.pos+a.close.length})}return{changes:s}}return null}function WI(o,e,t=e.selection.ranges){let n=[],r=-1;for(let{from:s,to:i}of t){let l=n.length,a=1e9,c=Cp(e,s).line;if(c){for(let u=s;u<=i;){let d=e.doc.lineAt(u);if(d.from>r&&(s==i||i>d.from)){r=d.from;let f=/^\s*/.exec(d.text)[0].length,h=f==d.length,p=d.text.slice(f,f+c.length)==c?f:-1;f<d.text.length&&f<a&&(a=f),n.push({line:d,comment:p,token:c,indent:f,empty:h,single:!1})}u=d.to+1}if(a<1e9)for(let u=l;u<n.length;u++)n[u].indent<n[u].line.text.length&&(n[u].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:c,empty:u,single:d}of n)(d||!u)&&s.push({from:l.from+c,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 c=i.from+l,u=c+a.length;i.text[u-i.from]==" "&&u++,s.push({from:c,to:u})}return{changes:s}}return null}var mp=tn.define(),UI=tn.define(),GI=re.define(),k0=re.define({combine(o){return qr(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 _I(o){let e=0;return o.iterChangedRanges((t,n)=>e=n),e}var E0=At.define({create(){return xn.empty},update(o,e){let t=e.state.facet(k0),n=e.annotation(mp);if(n){let a=e.docChanged?B.single(_I(e.changes)):void 0,c=wt.fromTransaction(e,a),u=n.side,d=u==0?o.undone:o.done;return c?d=Eu(d,d.length,t.minDepth,c):d=D0(d,e.startState.selection),new xn(u==0?n.rest:d,u==0?d:n.rest)}let r=e.annotation(UI);if((r=="full"||r=="before")&&(o=o.isolate()),e.annotation(Fe.addToHistory)===!1)return e.changes.empty?o:o.addMapping(e.changes.desc);let s=wt.fromTransaction(e),i=e.annotation(Fe.time),l=e.annotation(Fe.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 xn(o.done.map(wt.fromJSON),o.undone.map(wt.fromJSON))}});function vp(o={}){return[E0,k0.of(o),ie.domEventHandlers({beforeinput(e,t){let n=e.inputType=="historyUndo"?M0:e.inputType=="historyRedo"?gp:null;return n?(e.preventDefault(),n(t)):!1}})]}function Mu(o,e){return function({state:t,dispatch:n}){if(!e&&t.readOnly)return!1;let r=t.field(E0,!1);if(!r)return!1;let s=r.pop(o,t,e);return s?(n(s),!0):!1}}var M0=Mu(0,!1),gp=Mu(1,!1),QI=Mu(0,!0),qI=Mu(1,!0);var wt=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 wt(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 wt(e.changes&&He.fromJSON(e.changes),[],e.mapped&&en.fromJSON(e.mapped),e.startSelection&&B.fromJSON(e.startSelection),e.selectionsAfter.map(B.fromJSON))}static fromTransaction(e,t){let n=yn;for(let r of e.startState.facet(GI)){let s=r(e);s.length&&(n=n.concat(s))}return!n.length&&e.changes.empty?null:new wt(e.changes.invert(e.startState.doc),n,void 0,t||e.startState.selection,yn)}static selection(e){return new wt(void 0,yn,void 0,void 0,e)}};function Eu(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 jI(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 c=t[a++],u=t[a++];l>=c&&i<=u&&(n=!0)}}),n}function XI(o,e){return o.ranges.length==e.ranges.length&&o.ranges.filter((t,n)=>t.empty!=e.ranges[n].empty).length===0}function P0(o,e){return o.length?e.length?o.concat(e):o:e}var yn=[],JI=200;function D0(o,e){if(o.length){let t=o[o.length-1],n=t.selectionsAfter.slice(Math.max(0,t.selectionsAfter.length-JI));return n.length&&n[n.length-1].eq(e)?o:(n.push(e),Eu(o,o.length-1,1e9,t.setSelAfter(n)))}else return[wt.selection([e])]}function YI(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 pp(o,e){if(!o.length)return o;let t=o.length,n=yn;for(;t;){let r=ZI(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?[wt.selection(n)]:yn}function ZI(o,e,t){let n=P0(o.selectionsAfter.length?o.selectionsAfter.map(l=>l.map(e)):yn,t);if(!o.changes)return wt.selection(n);let r=o.changes.map(e),s=e.mapDesc(o.changes,!0),i=o.mapped?o.mapped.composeDesc(s):s;return new wt(r,De.mapEffects(o.effects,e),i,o.startSelection.map(s),n)}var eR=/^(input\.type|delete)($|\.)/,xn=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 xn(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||eR.test(n))&&(!l.selectionsAfter.length&&t-this.prevTime<r.newGroupDelay&&r.joinToEvent(s,jI(l.changes,e.changes))||n=="input.type.compose")?i=Eu(i,i.length-1,r.minDepth,new wt(e.changes.compose(l.changes),P0(e.effects,l.effects),l.mapped,l.startSelection,yn)):i=Eu(i,i.length,r.minDepth,e),new xn(i,yn,t,n)}addSelection(e,t,n,r){let s=this.done.length?this.done[this.done.length-1].selectionsAfter:yn;return s.length>0&&t-this.prevTime<r&&n==this.prevUserEvent&&n&&/^select($|\.)/.test(n)&&XI(s[s.length-1],e)?this:new xn(D0(this.done,e),this.undone,t,n)}addMapping(e){return new xn(pp(this.done,e),pp(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:mp.of({side:e,rest:YI(r)}),userEvent:e==0?"select.undo":"select.redo",scrollIntoView:!0});if(s.changes){let i=r.length==1?yn:r.slice(0,r.length-1);return s.mapped&&(i=pp(i,s.mapped)),t.update({changes:s.changes,selection:s.startSelection,effects:s.effects,annotations:mp.of({side:e,rest:i}),filter:!1,userEvent:e==0?"undo":"redo",scrollIntoView:!0})}else return null}};xn.empty=new xn(yn,yn);var Sp=[{key:"Mod-z",run:M0,preventDefault:!0},{key:"Mod-y",mac:"Mod-Shift-z",run:gp,preventDefault:!0},{linux:"Ctrl-Shift-z",run:gp,preventDefault:!0},{key:"Mod-u",run:QI,preventDefault:!0},{key:"Alt-u",mac:"Mod-Shift-u",run:qI,preventDefault:!0}];function Ti(o,e){return B.create(o.ranges.map(e),o.mainIndex)}function oo(o,e){return o.update({selection:e,scrollIntoView:!0,userEvent:"select"})}function Fn({state:o,dispatch:e},t){let n=Ti(o.selection,t);return n.eq(o.selection)?!1:(e(oo(o,n)),!0)}function Pu(o,e){return B.cursor(e?o.to:o.from)}function I0(o,e){return Fn(o,t=>t.empty?o.moveByChar(t,e):Pu(t,e))}function Tt(o){return o.textDirectionAt(o.state.selection.main.head)==Ge.LTR}var R0=o=>I0(o,!Tt(o)),A0=o=>I0(o,Tt(o));function L0(o,e){return Fn(o,t=>t.empty?o.moveByGroup(t,e):Pu(t,e))}var tR=o=>L0(o,!Tt(o)),nR=o=>L0(o,Tt(o));function oR(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 Du(o,e,t){let n=mt(o).resolveInner(e.head),r=t?se.closedBy:se.openedBy;for(let a=e.head;;){let c=t?n.childAfter(a):n.childBefore(a);if(!c)break;oR(o,c,r)?n=c:a=t?c.to:c.from}let s=n.type.prop(r),i,l;return s&&(i=t?is(o,n.from,1):is(o,n.to,-1))&&i.matched?l=t?i.end.to:i.end.from:l=t?n.to:n.from,B.cursor(l,t?-1:1)}var rR=o=>Fn(o,e=>Du(o.state,e,!Tt(o))),sR=o=>Fn(o,e=>Du(o.state,e,Tt(o)));function O0(o,e){return Fn(o,t=>{if(!t.empty)return Pu(t,e);let n=o.moveVertically(t,e);return n.head!=t.head?n:o.moveToLineBoundary(t,e)})}var N0=o=>O0(o,!1),H0=o=>O0(o,!0);function F0(o){let e=o.scrollDOM.clientHeight<o.scrollDOM.scrollHeight-2,t=0,n=0,r;if(e){for(let s of o.state.facet(ie.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 B0(o,e){let t=F0(o),{state:n}=o,r=Ti(n.selection,i=>i.empty?o.moveVertically(i,e,t.height):Pu(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,c=l.bottom-t.marginBottom;i&&i.top>a&&i.bottom<c&&(s=ie.scrollIntoView(r.main.head,{y:"start",yMargin:i.top-a}))}return o.dispatch(oo(n,r),{effects:s}),!0}var b0=o=>B0(o,!1),bp=o=>B0(o,!0);function ar(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=B.cursor(n.from+s))}return r}var iR=o=>Fn(o,e=>ar(o,e,!0)),lR=o=>Fn(o,e=>ar(o,e,!1)),aR=o=>Fn(o,e=>ar(o,e,!Tt(o))),cR=o=>Fn(o,e=>ar(o,e,Tt(o))),uR=o=>Fn(o,e=>B.cursor(o.lineBlockAt(e.head).from,1)),dR=o=>Fn(o,e=>B.cursor(o.lineBlockAt(e.head).to,-1));function fR(o,e,t){let n=!1,r=Ti(o.selection,s=>{let i=is(o,s.head,-1)||is(o,s.head,1)||s.head>0&&is(o,s.head-1,1)||s.head<o.doc.length&&is(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?B.range(s.anchor,l):B.cursor(l)});return n?(e(oo(o,r)),!0):!1}var hR=({state:o,dispatch:e})=>fR(o,e,!1);function Cn(o,e){let t=Ti(o.state.selection,n=>{let r=e(n);return B.range(n.anchor,r.head,r.goalColumn,r.bidiLevel||void 0)});return t.eq(o.state.selection)?!1:(o.dispatch(oo(o.state,t)),!0)}function V0(o,e){return Cn(o,t=>o.moveByChar(t,e))}var $0=o=>V0(o,!Tt(o)),K0=o=>V0(o,Tt(o));function z0(o,e){return Cn(o,t=>o.moveByGroup(t,e))}var pR=o=>z0(o,!Tt(o)),mR=o=>z0(o,Tt(o));var gR=o=>Cn(o,e=>Du(o.state,e,!Tt(o))),bR=o=>Cn(o,e=>Du(o.state,e,Tt(o)));function W0(o,e){return Cn(o,t=>o.moveVertically(t,e))}var U0=o=>W0(o,!1),G0=o=>W0(o,!0);function _0(o,e){return Cn(o,t=>o.moveVertically(t,e,F0(o).height))}var y0=o=>_0(o,!1),x0=o=>_0(o,!0),yR=o=>Cn(o,e=>ar(o,e,!0)),xR=o=>Cn(o,e=>ar(o,e,!1)),CR=o=>Cn(o,e=>ar(o,e,!Tt(o))),vR=o=>Cn(o,e=>ar(o,e,Tt(o))),SR=o=>Cn(o,e=>B.cursor(o.lineBlockAt(e.head).from)),wR=o=>Cn(o,e=>B.cursor(o.lineBlockAt(e.head).to)),C0=({state:o,dispatch:e})=>(e(oo(o,{anchor:0})),!0),v0=({state:o,dispatch:e})=>(e(oo(o,{anchor:o.doc.length})),!0),S0=({state:o,dispatch:e})=>(e(oo(o,{anchor:o.selection.main.anchor,head:0})),!0),w0=({state:o,dispatch:e})=>(e(oo(o,{anchor:o.selection.main.anchor,head:o.doc.length})),!0),TR=({state:o,dispatch:e})=>(e(o.update({selection:{anchor:0,head:o.doc.length},userEvent:"select"})),!0),kR=({state:o,dispatch:e})=>{let t=Ru(o).map(({from:n,to:r})=>B.range(n,Math.min(r+1,o.doc.length)));return e(o.update({selection:B.create(t),userEvent:"select"})),!0},ER=({state:o,dispatch:e})=>{let t=Ti(o.selection,n=>{var r;let s=mt(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 B.range(s.to,s.from)});return e(oo(o,t)),!0},MR=({state:o,dispatch:e})=>{let t=o.selection,n=null;return t.ranges.length>1?n=B.create([t.main]):t.main.empty||(n=B.create([B.cursor(t.main.head)])),n?(e(oo(o,n)),!0):!1};function Iu(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=ku(o,a,!1)):a>i&&(t="delete.forward",a=ku(o,a,!0)),i=Math.min(i,a),l=Math.max(l,a)}else i=ku(o,i,!1),l=ku(o,l,!0);return i==l?{range:s}:{changes:{from:i,to:l},range:B.cursor(i)}});return r.changes.empty?!1:(o.dispatch(n.update(r,{scrollIntoView:!0,userEvent:t,effects:t=="delete.selection"?ie.announce.of(n.phrase("Selection deleted")):void 0})),!0)}function ku(o,e,t){if(o instanceof ie)for(let n of o.state.facet(ie.atomicRanges).map(r=>r(o)))n.between(e,e,(r,s)=>{r<e&&s>e&&(e=t?s:r)});return e}var Q0=(o,e)=>Iu(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=jr(s,n.tabSize),a=l%sa(n)||sa(n);for(let c=0;c<a&&s[s.length-1-c]==" ";c++)t--;i=t}else i=St(r.text,t-r.from,e,e)+r.from,i==t&&r.number!=(e?n.doc.lines:1)&&(i+=e?1:-1);return i}),yp=o=>Q0(o,!1),q0=o=>Q0(o,!0),j0=(o,e)=>Iu(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=St(s.text,n-s.from,e)+s.from,c=s.text.slice(Math.min(n,a)-s.from,Math.max(n,a)-s.from),u=i(c);if(l!=null&&u!=l)break;(c!=" "||n!=t)&&(l=u),n=a}return n}),X0=o=>j0(o,!1),PR=o=>j0(o,!0),J0=o=>Iu(o,e=>{let t=o.lineBlockAt(e).to;return e<t?t:Math.min(o.state.doc.length,e+1)}),DR=o=>Iu(o,e=>{let t=o.lineBlockAt(e).from;return e>t?t:Math.max(0,e-1)});var IR=({state:o,dispatch:e})=>{if(o.readOnly)return!1;let t=o.changeByRange(n=>({changes:{from:n.from,to:n.to,insert:fe.of(["",""])},range:B.cursor(n.from)}));return e(o.update(t,{scrollIntoView:!0,userEvent:"input"})),!0},RR=({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:St(s.text,r-s.from,!1)+s.from,l=r==s.to?r+1:St(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:B.cursor(l)}});return t.changes.empty?!1:(e(o.update(t,{scrollIntoView:!0,userEvent:"move.character"})),!0)};function Ru(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 Y0(o,e,t){if(o.readOnly)return!1;let n=[],r=[];for(let s of Ru(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(B.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(B.range(a.anchor-l,a.head-l))}}return n.length?(e(o.update({changes:n,scrollIntoView:!0,selection:B.create(r,o.selection.mainIndex),userEvent:"move.line"})),!0):!1}var AR=({state:o,dispatch:e})=>Y0(o,e,!1),LR=({state:o,dispatch:e})=>Y0(o,e,!0);function Z0(o,e,t){if(o.readOnly)return!1;let n=[];for(let r of Ru(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 OR=({state:o,dispatch:e})=>Z0(o,e,!1),NR=({state:o,dispatch:e})=>Z0(o,e,!0),HR=o=>{if(o.state.readOnly)return!1;let{state:e}=o,t=e.changes(Ru(e).map(({from:r,to:s})=>(r>0?r--:s<e.doc.length&&s++,{from:r,to:s}))),n=Ti(e.selection,r=>o.moveVertically(r,!0)).map(t);return o.dispatch({changes:t,selection:n,scrollIntoView:!0,userEvent:"delete.line"}),!0};function FR(o,e){if(/\(\)|\[\]|\{\}/.test(o.sliceDoc(e-1,e+1)))return{from:e,to:e};let t=mt(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(se.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 BR=eS(!1),VR=eS(!0);function eS(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&&FR(e,s);o&&(s=i=(i<=l.to?l:e.doc.lineAt(i)).to);let c=new rs(e,{simulateBreak:s,simulateDoubleBreak:!!a}),u=ap(c,s);for(u==null&&(u=/^\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=["",ia(e,u)];return a&&d.push(ia(e,c.lineIndent(l.from,-1))),{changes:{from:s,to:i,insert:fe.of(d)},range:B.cursor(s+1+d[1].length)}});return t(e.update(n,{scrollIntoView:!0,userEvent:"input"})),!0}}function wp(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:B.range(s.mapPos(n.anchor,1),s.mapPos(n.head,1))}})}var $R=({state:o,dispatch:e})=>{if(o.readOnly)return!1;let t=Object.create(null),n=new rs(o,{overrideIndentation:s=>{let i=t[s];return i==null?-1:i}}),r=wp(o,(s,i,l)=>{let a=ap(n,s.from);if(a==null)return;/\S/.test(s.text)||(a=0);let c=/^\s*/.exec(s.text)[0],u=ia(o,a);(c!=u||l.from<s.from+c.length)&&(t[s.from]=a,i.push({from:s.from,to:s.from+c.length,insert:u}))});return r.changes.empty||e(o.update(r,{userEvent:"indent"})),!0},KR=({state:o,dispatch:e})=>o.readOnly?!1:(e(o.update(wp(o,(t,n)=>{n.push({from:t.from,insert:o.facet(ra)})}),{userEvent:"input.indent"})),!0),zR=({state:o,dispatch:e})=>o.readOnly?!1:(e(o.update(wp(o,(t,n)=>{let r=/^\s*/.exec(t.text)[0];if(!r)return;let s=jr(r,o.tabSize),i=0,l=ia(o,Math.max(0,s-sa(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 WR=[{key:"Ctrl-b",run:R0,shift:$0,preventDefault:!0},{key:"Ctrl-f",run:A0,shift:K0},{key:"Ctrl-p",run:N0,shift:U0},{key:"Ctrl-n",run:H0,shift:G0},{key:"Ctrl-a",run:uR,shift:SR},{key:"Ctrl-e",run:dR,shift:wR},{key:"Ctrl-d",run:q0},{key:"Ctrl-h",run:yp},{key:"Ctrl-k",run:J0},{key:"Ctrl-Alt-h",run:X0},{key:"Ctrl-o",run:IR},{key:"Ctrl-t",run:RR},{key:"Ctrl-v",run:bp}],UR=[{key:"ArrowLeft",run:R0,shift:$0,preventDefault:!0},{key:"Mod-ArrowLeft",mac:"Alt-ArrowLeft",run:tR,shift:pR,preventDefault:!0},{mac:"Cmd-ArrowLeft",run:aR,shift:CR,preventDefault:!0},{key:"ArrowRight",run:A0,shift:K0,preventDefault:!0},{key:"Mod-ArrowRight",mac:"Alt-ArrowRight",run:nR,shift:mR,preventDefault:!0},{mac:"Cmd-ArrowRight",run:cR,shift:vR,preventDefault:!0},{key:"ArrowUp",run:N0,shift:U0,preventDefault:!0},{mac:"Cmd-ArrowUp",run:C0,shift:S0},{mac:"Ctrl-ArrowUp",run:b0,shift:y0},{key:"ArrowDown",run:H0,shift:G0,preventDefault:!0},{mac:"Cmd-ArrowDown",run:v0,shift:w0},{mac:"Ctrl-ArrowDown",run:bp,shift:x0},{key:"PageUp",run:b0,shift:y0},{key:"PageDown",run:bp,shift:x0},{key:"Home",run:lR,shift:xR,preventDefault:!0},{key:"Mod-Home",run:C0,shift:S0},{key:"End",run:iR,shift:yR,preventDefault:!0},{key:"Mod-End",run:v0,shift:w0},{key:"Enter",run:BR},{key:"Mod-a",run:TR},{key:"Backspace",run:yp,shift:yp},{key:"Delete",run:q0},{key:"Mod-Backspace",mac:"Alt-Backspace",run:X0},{key:"Mod-Delete",mac:"Alt-Delete",run:PR},{mac:"Mod-Backspace",run:DR},{mac:"Mod-Delete",run:J0}].concat(WR.map(o=>({mac:o.key,run:o.run,shift:o.shift}))),aa=[{key:"Alt-ArrowLeft",mac:"Ctrl-ArrowLeft",run:rR,shift:gR},{key:"Alt-ArrowRight",mac:"Ctrl-ArrowRight",run:sR,shift:bR},{key:"Alt-ArrowUp",run:AR},{key:"Shift-Alt-ArrowUp",run:OR},{key:"Alt-ArrowDown",run:LR},{key:"Shift-Alt-ArrowDown",run:NR},{key:"Escape",run:MR},{key:"Mod-Enter",run:VR},{key:"Alt-l",mac:"Ctrl-l",run:kR},{key:"Mod-i",run:ER,preventDefault:!0},{key:"Mod-[",run:zR},{key:"Mod-]",run:KR},{key:"Mod-Alt-\\",run:$R},{key:"Shift-Mod-k",run:HR},{key:"Shift-Mod-\\",run:hR},{key:"Mod-/",run:FI},{key:"Alt-A",run:VI}].concat(UR);var GR=[...aa,...Sp],tS=(()=>[qh(),vp(),Qh(),fp(),ss(cp,{fallback:!0}),ts.of(GR)])();var _R=require("@vuu-ui/vuu-utils");var nS=[{label:"=",boost:10,type:"operator"},{label:"!=",boost:9,type:"operator"}],oS=[...nS,{label:"in",boost:6,type:"operator"},{label:"starts",boost:5,type:"operator"},{label:"ends",boost:4,type:"operator"}],rS=[...nS,{label:">",boost:8,type:"operator"},{label:"<",boost:7,type:"operator"}];var iA=require("@vuu-ui/vuu-utils"),Hp=require("react");var Ei=class{constructor(e,t,n,r,s,i,l,a,c,u=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=c,this.lookAhead=u,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 Ei(e,[],t,n,n,0,[],0,r?new Au(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,c=this.reducePos-a;c>=2e3&&!(!((t=this.p.parser.nodeSet.types[r])===null||t===void 0)&&t.isAnonymous)&&(a==this.p.lastBigReductionStart?(this.p.bigReductionCount++,this.p.lastBigReductionSize=c):this.p.lastBigReductionSize<c&&(this.p.bigReductionCount=1,this.p.lastBigReductionStart=a,this.p.lastBigReductionSize=c));let u=l?this.stack[l-1]:0,d=this.bufferBase+this.buffer.length-u;if(r<s.minRepeatTerm||e&131072){let f=s.stateFlag(this.state,1)?this.pos:this.reducePos;this.storeNode(r,a,f,d+4,!0)}if(e&262144)this.state=this.stack[l];else{let f=this.stack[l-3];this.state=s.getGoto(f,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 Ei(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 kp(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 Au(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()}},Au=class{constructor(e,t){this.tracker=e,this.context=t,this.hash=e.strict?e.hash(t):0}},cS;(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"})(cS||(cS={}));var kp=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}},Mi=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 Mi(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 Mi(this.stack,this.pos,this.index)}};function ca(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 ki=class{constructor(){this.start=-1,this.value=-1,this.end=-1,this.extended=-1,this.lookAhead=0,this.mask=0,this.context=0}},uS=new ki,Ep=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=uS,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=uS,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}},cr=class{constructor(e,t){this.data=e,this.id=t}token(e,t){let{parser:n}=t.p;bS(this.data,e,t,this.id,n.data,n.tokenPrecTable)}};cr.prototype.contextual=cr.prototype.fallback=cr.prototype.extend=!1;var Mp=class{constructor(e,t,n){this.precTable=t,this.elseToken=n,this.data=typeof e=="string"?ca(e):e}token(e,t){let n=e.pos,r=0;for(;bS(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))}};Mp.prototype.contextual=cr.prototype.fallback=cr.prototype.extend=!1;function bS(o,e,t,n,r,s){let i=0,l=1<<n,{dialect:a}=t.p.parser;e:for(;l&o[i];){let c=o[i+1];for(let h=i+3;h<c;h+=2)if((o[h+1]&l)>0){let p=o[h];if(a.allows(p)&&(e.token.value==-1||e.token.value==p||QR(p,e.token.value,r,s))){e.acceptToken(p);break}}let u=e.next,d=0,f=o[i+2];if(e.next<0&&f>d&&o[c+f*3-3]==65535&&o[c+f*3-3]==65535){i=o[c+f*3-1];continue e}for(;d<f;){let h=d+f>>1,p=c+h+(h<<1),m=o[p],g=o[p+1]||65536;if(u<m)f=h;else if(u>=g)d=h+1;else{i=o[p+2],e.advance();continue e}}break}}function dS(o,e,t){for(let n=e,r;(r=o[n])!=65535;n++)if(r==t)return n-e;return-1}function QR(o,e,t,n){let r=dS(t,n,e);return r<0||dS(t,n,o)<r}var Bn=typeof process<"u"&&process.env&&/\bparse\b/.test(process.env.LOG),Tp=null,fS;(function(o){o[o.Margin=25]="Margin"})(fS||(fS={}));function hS(o,e,t){let n=o.cursor(ze.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 Pp=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?hS(e.tree,e.from+e.offset,1)-e.offset:e.from,this.safeTo=e.openEnd?hS(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 be){if(i==e){if(i<this.safeFrom)return null;let l=i+s.length;if(l<=this.safeTo){let a=s.prop(se.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}}},Dp=class{constructor(e,t){this.stream=t,this.tokens=[],this.mainToken=null,this.actions=[],this.tokens=e.tokenizers.map(n=>new ki)}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 c=0;c<s.length;c++){if(!(1<<c&i))continue;let u=s[c],d=this.tokens[c];if(!(n&&!u.fallback)&&((u.contextual||d.start!=e.pos||d.mask!=i||d.context!=l)&&(this.updateCachedToken(d,u,e),d.mask=i,d.context=l),d.lookAhead>d.end+25&&(a=Math.max(d.lookAhead,a)),d.value!=0)){let f=t;if(d.extended>-1&&(t=this.addActions(e,d.extended,d.end,t)),t=this.addActions(e,d.value,d.end,t),!u.extend&&(n=d,t>f))break}}for(;this.actions.length>t;)this.actions.pop();return a&&e.setLookAhead(a),!n&&e.pos==this.stream.end&&(n=new ki,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 ki,{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 c=i.stateSlot(s,a?2:1);;c+=3){if(l[c]==65535)if(l[c+1]==1)c=Ao(l,c+2);else{r==0&&l[c+1]==2&&(r=this.putAction(Ao(l,c+2),t,n,r));break}l[c]==t&&(r=this.putAction(Ao(l,c+1),t,n,r))}return r}},pS;(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"})(pS||(pS={}));var Ip=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 Ep(t,r),this.tokens=new Dp(e,this.stream),this.topTerm=e.top[1];let{from:s}=r[0];this.stacks=[Ei.start(this,e.top[0],s)],this.fragments=n.length&&this.stream.end-s>e.bufferLength*4?new Pp(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&&qR(r);if(i)return this.stackToTree(i);if(this.parser.strict)throw Bn&&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 c=n[a];if(l.sameState(c)||l.buffer.length>500&&c.buffer.length>500)if((l.score-c.score||l.buffer.length-c.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=Bn?this.stackID(e)+" -> ":"";if(this.stoppedAt!=null&&r>this.stoppedAt)return e.forceReduce()?e:null;if(this.fragments){let c=e.curContext&&e.curContext.tracker.strict,u=c?e.curContext.hash:0;for(let d=this.fragments.nodeAt(r);d;){let f=this.parser.nodeSet.types[d.type.id]==d.type?s.getGoto(e.state,d.type.id):-1;if(f>-1&&d.length&&(!c||(d.prop(se.contextHash)||0)==u))return e.useNode(d,f),Bn&&console.log(i+this.stackID(e)+` (via reuse of ${s.getName(d.type.id)})`),!0;if(!(d instanceof be)||d.children.length==0||d.positions[0]>0)break;let h=d.children[0];if(h instanceof be&&d.positions[0]==0)d=h;else break}}let l=s.stateSlot(e.state,4);if(l>0)return e.reduce(l),Bn&&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 c=0;c<a.length;){let u=a[c++],d=a[c++],f=a[c++],h=c==a.length||!n,p=h?e:e.split();if(p.apply(u,d,f),Bn&&console.log(i+this.stackID(p)+` (via ${u&65536?`reduce of ${s.getName(u&65535)}`:"shift"} for ${s.getName(d)} @ ${r}${p==e?"":", split"})`),h)return!0;p.pos>r?t.push(p):n.push(p)}return!1}advanceFully(e,t){let n=e.pos;for(;;){if(!this.advanceStack(e,null,null))return!1;if(e.pos>n)return mS(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],c=t[(i<<1)+1],u=Bn?this.stackID(l)+" -> ":"";if(l.deadEnd&&(s||(s=!0,l.restart(),Bn&&console.log(u+this.stackID(l)+" (restarted)"),this.advanceFully(l,n))))continue;let d=l.split(),f=u;for(let h=0;d.forceReduce()&&h<10&&(Bn&&console.log(f+this.stackID(d)+" (via force-reduce)"),!this.advanceFully(d,n));h++)Bn&&(f=this.stackID(d)+" -> ");for(let h of l.recoverByInsert(a))Bn&&console.log(u+this.stackID(h)+" (via recover-insert)"),this.advanceFully(h,n);this.stream.end>l.pos?(c==l.pos&&(c++,a=0),l.recoverByDelete(a,c),Bn&&console.log(u+this.stackID(l)+` (via recover-delete ${this.parser.getName(a)})`),mS(l,n)):(!r||r.score<l.score)&&(r=l)}return r}stackToTree(e){return e.close(),be.build({buffer:Mi.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=(Tp||(Tp=new WeakMap)).get(e);return t||Tp.set(e,t=String.fromCodePoint(this.nextStackID++)),t+e}};function mS(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 Rp=class{constructor(e,t,n){this.source=e,this.flags=t,this.disabled=n}allows(e){return!this.disabled||this.disabled[e]==0}};var as=class extends jo{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,c){r[l].push([a,a.deserialize(String(c))])}if(e.nodeProps)for(let l of e.nodeProps){let a=l[0];typeof a=="string"&&(a=se[a]);for(let c=1;c<l.length;){let u=l[c++];if(u>=0)s(u,a,l[c++]);else{let d=l[c+-u];for(let f=-u;f>0;f--)s(l[c++],a,d);c++}}}this.nodeSet=new xo(t.map((l,a)=>je.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=ca(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(gS),this.states=ca(e.states,Uint32Array),this.data=ca(e.stateData),this.goto=ca(e.goto),this.maxTerm=e.maxTerm,this.tokenizers=e.tokenizers.map(l=>typeof l=="number"?new cr(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 Ip(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 c=s+(i>>1);s<c;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=Ao(n,s+2)];else{if(n[s+1]==2)return Ao(n,s+2);break}if(i==t||i==0)return Ao(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=Ao(this.data,n+2);else return!1;if(t==Ao(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=Ao(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(as.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]=gS(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 Rp(e,n,r)}static deserialize(e){return new as(e)}};function Ao(o,e){return o[e]|o[e+1]<<16}function qR(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 gS(o){if(o.external){let e=o.extend?1:0;return(t,n)=>o.external(t,n)<<1|e}return o.get}var Lu=as.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 r7=no.define({name:"VuuColumnExpression",parser:Lu.configure({props:[os({Function:$.variableName,String:$.string,Or:$.emphasis,Operator:$.operator})]})});var Ap=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}}},Lp=class{constructor(e){this.type="colExpression";this.column=e}toJSON(){return{type:this.type,column:this.column}}},da,us,yS=class{constructor(e="unknown"){qt(this,da,[{type:"unknown"},{type:"unknown"}]);qt(this,us,void 0);this.type="arithmeticExpression";Mn(this,us,e)}get op(){return Q(this,us)}set op(e){Mn(this,us,e)}get expressions(){return Q(this,da)}toJSON(){return{type:this.type,op:Q(this,us),expressions:Q(this,da)}}};da=new WeakMap,us=new WeakMap;var Ri,Op=class{constructor(e){qt(this,Ri,[]);this.type="callExpression";this.functionName=e}get expressions(){return Q(this,Ri)}get arguments(){return Q(this,Ri)}toJSON(){return{type:this.type,functionName:this.functionName,arguments:Q(this,Ri).map(e=>{var t;return(t=e.toJSON)==null?void 0:t.call(e)})}}};Ri=new WeakMap;var fa,Ai,Di=class{constructor(){qt(this,fa,[{type:"unknown"},{type:"unknown"}]);qt(this,Ai,"unknown");this.type="relationalExpression"}get op(){return Q(this,Ai)}set op(e){Mn(this,Ai,e)}get expressions(){return Q(this,fa)}toJSON(){return{type:this.type,op:Q(this,Ai),expressions:Q(this,fa)}}};fa=new WeakMap,Ai=new WeakMap;var ha,Li,Ii=class{constructor(e){qt(this,ha,[{type:"unknown"},{type:"unknown"}]);qt(this,Li,void 0);this.type="booleanCondition";Mn(this,Li,e)}get op(){return Q(this,Li)}get expressions(){return Q(this,ha)}toJSON(){return{type:this.type,op:Q(this,Li),expressions:Q(this,ha).map(e=>{var t;return(t=e.toJSON)==null?void 0:t.call(e)})}}};ha=new WeakMap,Li=new WeakMap;var ro,ua=class{constructor(e){qt(this,ro,void 0);this.type="conditionalExpression";Mn(this,ro,[e?new Ii(e):new Di,{type:"unknown"},{type:"unknown"}])}get expressions(){return Q(this,ro)}get condition(){return Q(this,ro)[0]}get truthyExpression(){return Q(this,ro)[1]}set truthyExpression(e){Q(this,ro)[1]=e}get falsyExpression(){return Q(this,ro)[2]}set falsyExpression(e){Q(this,ro)[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}}};ro=new WeakMap;var cs=o=>o.type==="unknown",Ou=o=>o.type==="arithmeticExpression",jR=o=>o.type==="callExpression",Pi=o=>o.type==="conditionalExpression",XR=o=>o.type==="relationalExpression"||o.type==="booleanCondition";var JR=o=>o.type==="booleanCondition",Np=o=>(o==null?void 0:o.type)==="relationalExpression";var vn=o=>{if(cs(o))return o;if(Np(o)){let[e,t]=o.expressions;if(kt(e))return vn(e);if(o.op==="unknown")return o;if(kt(t))return vn(t)}else if(XR(o)){let{expressions:e=[]}=o;for(let t of e)if(kt(t))return vn(t)}else if(Pi(o)){let{condition:e,truthyExpression:t,falsyExpression:n}=o;if(kt(e))return vn(e);if(kt(t))return vn(t);if(kt(n))return vn(n)}else if(Ou(o)){let{expressions:e=[]}=o;for(let t of e)if(kt(t))return vn(t)}},Nu=(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(Nu(r,e,t))return!0;return!1},kt=o=>cs(o)?!0:Pi(o)?kt(o.condition)||kt(o.truthyExpression)||kt(o.falsyExpression):Np(o)||JR(o)?o.op===void 0||o.expressions.some(e=>kt(e)):!1,xS=(o,e)=>{let t=vn(o);t?t.expressions?t.expressions.push(e):console.warn("don't know how to treat targetExpression"):console.error("no target expression found")},he,ds,CS=class{constructor(){qt(this,he,void 0);qt(this,ds,[])}setCondition(e){if(Q(this,he)===void 0)this.addExpression(new ua(e));else if(Pi(Q(this,he))){if(kt(Q(this,he).condition)){let t=e?new Ii(e):new Di;this.addExpression(t)}else if(cs(Q(this,he).truthyExpression))Q(this,he).truthyExpression=new ua(e);else if(kt(Q(this,he).truthyExpression)){let t=e?new Ii(e):new Di;this.addExpression(t)}else if(cs(Q(this,he).falsyExpression))Q(this,he).falsyExpression=new ua(e);else if(kt(Q(this,he).falsyExpression)){let t=e?new Ii(e):new Di;this.addExpression(t)}}else console.error("setCondition called unexpectedly")}addExpression(e){if(Q(this,ds).length>0){let t=Q(this,ds).at(-1);t==null||t.arguments.push(e)}else if(Q(this,he)===void 0)Mn(this,he,e);else if(Ou(Q(this,he))){let t=vn(Q(this,he));t&&cs(t)&&Nu(Q(this,he),t,e)}else if(Pi(Q(this,he))&&kt(Q(this,he))){let t=vn(Q(this,he));t&&cs(t)?Nu(Q(this,he),t,e):t&&xS(t,e)}}setFunction(e){let t=new Op(e);this.addExpression(t),Q(this,ds).push(t)}setColumn(e){this.addExpression(new Lp(e))}setArithmeticOp(e){let t=e,n=Q(this,he);Ou(n)&&(n.op=t)}setRelationalOperator(e){let t=e;if(Q(this,he)&&Pi(Q(this,he))){let n=vn(Q(this,he));Np(n)?n.op=t:console.error(`no target expression found (op = ${e})`)}}setValue(e){let t=new Ap(e);if(Q(this,he)===void 0)Mn(this,he,t);else if(Ou(Q(this,he)))this.addExpression(t);else if(jR(Q(this,he)))Q(this,he).arguments.push(t);else if(Pi(Q(this,he)))if(kt(Q(this,he))){let n=vn(Q(this,he));n&&cs(n)?Nu(Q(this,he),n,t):n&&xS(n,t)}else console.log("what do we do with value, in a complete expression")}closeBrace(){Q(this,ds).pop()}get expression(){return Q(this,he)}toJSON(){var e;return(e=Q(this,he))==null?void 0:e.toJSON()}};he=new WeakMap,ds=new WeakMap;var c7=Lu.configure({strict:!0}),YR=["Number","String"],ZR=[...YR,"AndCondition","ArithmeticExpression","BooleanOperator","RelationalOperatorOperator","CallExpression","CloseBrace","Column","Comma","ConditionalExpression","Divide","Equal","If","Minus","OpenBrace","OrCondition","ParenthesizedExpression","Plus","RelationalExpression","RelationalOperator","Times"];var eA=Hn.define([{tag:$.variableName,color:"var(--vuuFilterEditor-variableColor)"},{tag:$.comment,color:"green",fontStyle:"italic"}]),tA=ss(eA);var nA=ie.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 sA=require("react");var lA=require("react/jsx-runtime");var wS=require("@vuu-ui/vuu-utils"),TS=require("react");var vS=[{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 so=require("@vuu-ui/vuu-utils"),SS=({name:o,description:e,example:t,params:n,type:r})=>{let s=(0,so.createEl)("div","vuuFunctionDoc"),i=(0,so.createEl)("div","function-heading"),l=(0,so.createEl)("span","function-name",o),a=(0,so.createEl)("span","param-list",n.description),c=(0,so.createEl)("span","function-type",r);i.appendChild(l),i.appendChild(a),i.appendChild(c);let u=(0,so.createEl)("p",void 0,e);if(s.appendChild(i),s.appendChild(u),t){let d=(0,so.createEl)("div","example-container","Example:"),f=(0,so.createEl)("div","example-expression",t.expression),h=(0,so.createEl)("div","example-result",t.result);d.appendChild(f),d.appendChild(h),s.appendChild(d)}return s};var uA=o=>({apply:`${o.name}( `,boost:2,expressionType:o.type,info:()=>SS(o),label:o.name,type:"function"});var dG=vS.map(uA);var Hu=require("@vuu-ui/vuu-utils"),Fp=require("react");var ES=require("react/jsx-runtime");var PS=require("react/jsx-runtime");var DS=require("react"),dA=U(require("classnames"),1);var IS=require("react/jsx-runtime");var qG=new Intl.NumberFormat;var Oi=require("@salt-ds/core");var fA=require("@vuu-ui/vuu-layout");var Bu=require("@vuu-ui/vuu-utils"),Vp=require("react");var RS=require("react/jsx-runtime");var AS=require("@vuu-ui/vuu-layout"),LS=require("@vuu-ui/vuu-utils"),io=require("react"),OS=({availableColumns:o,onAvailableColumnsChange:e,onConfigChange:t,onCreateCalculatedColumn:n,onDataSourceConfigChange:r,tableConfig:s})=>{let i=(0,AS.useLayoutProviderDispatch)(),l=(0,io.useRef)(),[a,c]=(0,io.useState)(o),u=(0,io.useCallback)((p,m,g)=>{i({type:"set-props",path:"#context-panel",props:{expanded:!0,content:{type:p,props:g},title:m}})},[i]),d=(0,io.useCallback)(p=>{let m=a.concat({name:p.name,serverDataType:(0,LS.getCalculatedColumnType)(p)});c(m),e==null||e(m),requestAnimationFrame(()=>{var g;(g=l.current)==null||g.call(l)}),n(p)},[a,e,n]),f=(0,io.useCallback)(p=>{u("ColumnSettings","Column Settings",{column:p.column,onConfigChange:t,onCreateCalculatedColumn:d,tableConfig:s,vuuTable:p.vuuTable})},[d,t,u,s]),h=(0,io.useCallback)(()=>{f({column:{name:"::",serverDataType:"string"},type:"columnSettings",vuuTable:{module:"SIMUL",table:"instruments"}})},[f]);return l.current=(0,io.useCallback)(()=>{u("TableSettings","DataGrid Settings",{availableColumns:a!=null?a:s.columns.map(({name:p,serverDataType:m})=>({name:p,serverDataType:m})),onAddCalculatedColumn:h,onConfigChange:t,onDataSourceConfigChange:r,tableConfig:s})},[a,h,t,r,u,s]),{showColumnSettingsPanel:f,showTableSettingsPanel:l.current}};var gt=require("react");var $p=o=>`.vuuTableNext-col-headers .vuuTableNextHeaderCell:nth-child(${o})`,Kp=(o,e)=>`.vuuTableNext-body > [aria-rowindex='${o}'] > [role='cell']:nth-child(${e+1})`,NS=(o,[e,t])=>{var s;let n=e===-1?$p(t):Kp(e,t),r=(s=o.current)==null?void 0:s.querySelector(n);return hA(r)&&r.querySelector("button")||r},hA=o=>o.classList.contains("vuuTableNextCell-editable"),HS=o=>o.querySelector(".vuuTableInputCell")!==null;var pA=new Set(["Home","End","PageUp","PageDown","ArrowDown","ArrowLeft","ArrowRight","ArrowUp"]),mA=o=>pA.has(o),gA=["Home","End","PageUp","PageDown"],bA=o=>gA.includes(o),yA=[-1,-1],xA=[void 0,void 0],CA=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]:xA;throw Error("Whats going on, cell not found")}else throw Error("Whats going on, scrollbar container not found")};function vA(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 FS=({columnCount:o=0,containerRef:e,disableHighlightOnFocus:t,requestScroll:n,rowCount:r=0,viewportRowCount:s})=>{var C;let i=(0,gt.useRef)([-1,-1]),l=(0,gt.useRef)(),a=(0,gt.useRef)([-1,0]),c=b=>b==null?void 0:b.closest("[role='columnHeader'],[role='cell']"),u=b=>{var S,M;if(b.role==="columnHeader")return[-1,parseInt((S=b.dataset.idx)!=null?S:"-1",10)];{let w=b.closest("[role='row']");if(w){let k=parseInt((M=w.ariaRowIndex)!=null?M:"-1",10),L=Array.from(w.childNodes).indexOf(b);return[k,L]}}return yA},d=(0,gt.useCallback)(b=>{var S;if(e.current){let M=NS(e,b);if(M){M!==l.current&&((S=l.current)==null||S.removeAttribute("tabindex"),l.current=M,M.setAttribute("tabindex","0"));let[w,k]=CA(M);w&&k&&(n==null||n({type:"scroll-distance",distance:k,direction:w})),M.focus()}}},[e,n]),f=(0,gt.useCallback)((b,S,M=!1)=>{let w=[b,S];a.current=w,d(w),M&&(i.current=w)},[d]),h=(0,gt.useCallback)((b,[S,M])=>new Promise(w=>{let k=S;switch(b){case"PageDown":k=Math.min(r-1,S+s),n==null||n({type:"scroll-page",direction:"down"});break;case"PageUp":k=Math.max(0,S-s),n==null||n({type:"scroll-page",direction:"up"});break;case"Home":k=0,n==null||n({type:"scroll-end",direction:"home"});break;case"End":k=r-1,n==null||n({type:"scroll-end",direction:"end"});break}setTimeout(()=>{w([k,M])},90)}),[n,r,s]),p=(0,gt.useCallback)(()=>{var b;if(t!==!0&&(b=e.current)!=null&&b.contains(document.activeElement)){let S=c(document.activeElement);S&&(console.log({focusedCell:S}),i.current=u(S))}},[t,e]),m=(0,gt.useCallback)(async b=>{console.log(`navigate child items ${b}`);let[S,M]=bA(b)?await h(b,a.current):vA(b,a.current,o,r);console.log(`nextRowIdx ${S} nextColIdx ${M}`);let[w,k]=a.current;(S!==w||M!==k)&&f(S,M,!0)},[o,h,r,f]),g=(0,gt.useCallback)(b=>{r>0&&mA(b.key)&&(b.preventDefault(),b.stopPropagation(),m(b.key))},[r,m]),y=(0,gt.useCallback)(b=>{let S=b.target,M=c(S);if(M){let[w,k]=u(M);f(w,k)}},[f]),E=(0,gt.useCallback)(()=>{m("ArrowDown")},[m]),v=(0,gt.useMemo)(()=>({navigate:E,onClick:y,onFocus:p,onKeyDown:g}),[y,p,g,E]),x=((C=e.current)==null?void 0:C.firstChild)!=null;return(0,gt.useEffect)(()=>{if(x&&l.current===void 0){let{current:b}=e,S=(b==null?void 0:b.querySelector($p(0)))||(b==null?void 0:b.querySelector(Kp(0,0)));S&&(S.setAttribute("tabindex","0"),l.current=S)}},[e,x]),v};var bt=require("@vuu-ui/vuu-utils"),ye=require("react");var Vu=(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 fs=require("@vuu-ui/vuu-utils"),Et=require("react");var Ku=require("@vuu-ui/vuu-utils"),{SELECTED:SA}=Ku.metadataKeys,$u=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 Ku.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[SA]===1)}};var BS=({dataSource:o,onFeatureEnabled:e,onFeatureInvocation:t,onSizeChange:n,onSubscribed:r,range:s=fs.NULL_RANGE,renderBufferSize:i=0})=>{let[,l]=(0,Et.useState)(null),a=(0,Et.useRef)([]),c=(0,Et.useRef)(!0),u=(0,Et.useRef)(!1),d=(0,Et.useRef)(fs.NULL_RANGE),f=(0,Et.useMemo)(()=>new $u((0,fs.getFullRange)(s,i)),[]),h=(0,Et.useCallback)(g=>{for(let y of g)f.add(y);a.current=f.data,c.current&&l({})},[f]),p=(0,Et.useCallback)(g=>{g.type==="subscribed"?r==null||r(g):g.type==="viewport-update"?(typeof g.size=="number"&&(n==null||n(g.size),f.setRowCount(g.size)),g.rows?h(g.rows):typeof g.size=="number"&&(a.current=f.data,u.current=!0)):Pf(g)?e==null||e(g):Df(g)?t==null||t(g):console.log(`useDataSource unexpected message ${g.type}`)},[f,e,t,n,r,h]);(0,Et.useEffect)(()=>()=>{c.current=!0,c.current=!1},[]),(0,Et.useEffect)(()=>{o==null||o.subscribe({range:(0,fs.getFullRange)(s,i)},p)},[o,p,s,i]);let m=(0,Et.useCallback)(g=>{let y=(0,fs.getFullRange)(g,i);f.setRange(y),o.range=d.current=y,o.emit("range",g)},[o,f,i]);return{data:a.current,range:d.current,setRange:m}};var zu=require("react"),VS=o=>{let e=(0,zu.useRef)(o);return(0,zu.useMemo)(()=>e.current,[])};var $S=require("@vuu-ui/vuu-utils"),KS=require("react");var zS=({columns:o,data:e})=>{let[t]=po();return(0,KS.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 c=(0,$S.buildColumnMap)(o),u=parseInt((a=l.ariaRowIndex)!=null?a:"-1"),d=Array.from(l.childNodes).indexOf(i),f=e.find(([p])=>p===u),h=o[d];t(r,"grid",{columnMap:c,columnName:h,row:f})}},[o,e,t])};var WS=require("@vuu-ui/vuu-utils"),ma=require("react");var US=({navigate:o})=>{let e=(0,ma.useCallback)(()=>{o()},[o]),t=(0,ma.useCallback)(s=>{let i=s.target,l=i.querySelector("input");l&&(l.focus(),l.select()),i.addEventListener("vuu-commit",e,!0)},[e]),n=(0,ma.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,ma.useCallback)(s=>{HS(s.target)&&((0,WS.isCharacterKey)(s.key)?t(s):s.key==="Enter"&&n(s))},[t,n])}};var ge=require("@vuu-ui/vuu-utils");var GS=require("react"),{info:zp}=(0,ge.logger)("useTableModel"),wA=100,TA=ge.metadataKeys.count,kA=({serverDataType:o})=>o===void 0,EA=o=>{var e;if((0,ge.isTypeDescriptor)(o.type))return(0,ge.getCellRenderer)((e=o.type)==null?void 0:e.renderer)},MA=(o,e)=>{var n;let t=e.columns.find(({name:r})=>r===o.name);return t?t.serverDataType:(n=o.serverDataType)!=null?n:"string"},PA=["int","long","double"],_S=o=>o===void 0?void 0:PA.includes(o)?"right":"left",QS=o=>o.type==="columnSettings",qS=o=>o.type==="tableSettings",DA=(o,e)=>{switch(zp==null||zp(`TableModelReducer ${e.type}`),console.log(`TableModelReducer ${e.type}`),e.type){case"init":return console.log({init:e}),XS(e);case"moveColumn":return RA(o,e);case"resizeColumn":return OA(o,e);case"setTableSchema":return NA(o,e);case"hideColumns":return AA(o,e);case"showColumns":return LA(o,e);case"pinColumn":return HA(o,e);case"updateColumnProp":return Hi(o,e);case"tableConfig":return YS(o,e);default:return console.log(`unhandled action ${e.type}`),o}},jS=(o,e)=>{let[t,n]=(0,GS.useReducer)(DA,{tableConfig:o,dataSourceConfig:e},XS),{columns:r,headings:s,tableConfig:i,...l}=t;return{columns:r,dispatchColumnAction:n,headings:s,tableAttributes:l,tableConfig:i}};function XS({dataSourceConfig:o,tableConfig:e}){let{columns:t,...n}=e,r=t.filter((0,ge.subscribedOnly)(o==null?void 0:o.columns)).map(JS(n)),s=r.some(ge.isPinned)?(0,ge.sortPinnedColumns)(r):r,i={columns:s,headings:(0,ge.getTableHeadings)(s),tableConfig:e,...n};if(o){let{columns:l,...a}=o;i=YS(i,{type:"tableConfig",...a})}return i}var IA=(o,e)=>e==="uppercase"?o.toUpperCase():e==="capitalize"?o[0].toUpperCase()+o.slice(1).toLowerCase():o,JS=o=>(e,t)=>{let{columnDefaultWidth:n=wA,columnFormatHeader:r}=o,{align:s=_S(e.serverDataType),key:i,name:l,label:a=l,width:c=n,...u}=e,d={...u,align:s,CellRenderer:EA(e),clientSideEditValidationCheck:(0,ge.hasValidationRules)(e.type)?gy(e.type.renderer.rules):void 0,label:IA(a,r),key:i!=null?i:t+TA,name:l,originalIdx:t,valueFormatter:(0,ge.getValueFormatter)(e),width:c};return(0,ge.isGroupColumn)(d)&&(d.columns=d.columns.map(f=>JS(o)(f,f.key))),d};function RA(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,ge.moveItem)(r,s,n)}}return o}function AA(o,{columns:e}){return e.some(t=>t.hidden!==!0)?e.reduce((t,n)=>n.hidden!==!0?Hi(t,{type:"updateColumnProp",column:n,hidden:!0}):t,o):o}function LA(o,{columns:e}){return e.some(t=>t.hidden)?e.reduce((t,n)=>n.hidden?Hi(t,{type:"updateColumnProp",column:n,hidden:!1}):t,o):o}function OA(o,{column:e,phase:t,width:n}){let r="updateColumnProp",s=t!=="end";switch(t){case"begin":return Hi(o,{type:r,column:e,resizing:s});case"end":return Hi(o,{type:r,column:e,resizing:s,width:n});case"resize":return Hi(o,{type:r,column:e,width:n});default:throw Error(`useTableModel.resizeColumn, invalid resizePhase ${t}`)}}function NA(o,{tableSchema:e}){let{columns:t}=o;if(t.some(kA)){let n=t.map(r=>{var i;let s=MA(r,e);return{...r,align:(i=r.align)!=null?i:_S(s),serverDataType:s}});return{...o,columns:n}}else return o}function HA(o,e){let{columns:t}=o,{column:n,pin:r}=e,s=t.find(i=>i.name===n.name);return s?(t=Ni(t,{...s,pin:r}),t=(0,ge.sortPinnedColumns)(t),{...o,columns:t}):o}function Hi(o,e){let{columns:t}=o,{align:n,column:r,hidden:s,label:i,resizing:l,width:a}=e,c=t.find(u=>u.name===r.name);return c&&((n==="left"||n==="right")&&(t=Ni(t,{...c,align:n})),typeof i=="string"&&(t=Ni(t,{...c,label:i})),typeof l=="boolean"&&(t=Ni(t,{...c,resizing:l})),typeof s=="boolean"&&(t=Ni(t,{...c,hidden:s})),typeof a=="number"&&(t=Ni(t,{...c,width:a}))),{...o,columns:t}}function YS(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,ge.applyGroupByToColumns)(a.columns,n,e)}),l&&(a={...o,columns:(0,ge.applySortToColumns)(a.columns,r)}),i?a={...o,columns:(0,ge.applyFilterToColumns)(a.columns,t)}:a.columns.some(ge.isFilteredColumn)&&(a={...o,columns:(0,ge.stripFilterFromColumns)(a.columns)}),a}function Ni(o,e){return o.map(t=>t.name===e.name?e:t)}var Ot=require("react"),ZS=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]},ew=({onAttach:o,onDetach:e})=>{let t=(0,Ot.useRef)(null);return(0,Ot.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])},tw=({maxScrollLeft:o,maxScrollTop:e,onHorizontalScroll:t,onVerticalScroll:n,rowHeight:r,viewportRowCount:s})=>{let i=(0,Ot.useRef)(!1),l=(0,Ot.useRef)({scrollTop:0,scrollLeft:0}),a=(0,Ot.useRef)(null),c=(0,Ot.useRef)(null),u=(0,Ot.useCallback)(()=>{let{current:v}=c,{current:x}=a,{current:C}=i;if(C)i.current=!1;else if(v&&x){let[b,S]=ZS(x),M=Math.round(b*o),w=Math.round(S*e);v.scrollTo({left:M,top:w,behavior:"auto"})}},[o,e]),d=(0,Ot.useCallback)(()=>{let{current:v}=c,{current:x}=a,{current:C}=l;if(v&&x){let{scrollLeft:b,scrollTop:S}=v,[M,w]=ZS(v);i.current=!0,x.scrollLeft=Math.round(M*o),x.scrollTop=Math.round(w*e),C.scrollTop!==S&&(C.scrollTop=S,n==null||n(S,w)),C.scrollLeft!==b&&(C.scrollLeft=b,t==null||t(b))}},[o,e,t,n]),f=(0,Ot.useCallback)(v=>{a.current=v,v.addEventListener("scroll",u,{passive:!0})},[u]),h=(0,Ot.useCallback)(v=>{a.current=null,v.removeEventListener("scroll",u)},[u]),p=(0,Ot.useCallback)(v=>{c.current=v,v.addEventListener("scroll",d,{passive:!0})},[d]),m=(0,Ot.useCallback)(v=>{c.current=null,v.removeEventListener("scroll",d)},[d]),g=ew({onAttach:p,onDetach:m}),y=ew({onAttach:f,onDetach:h}),E=(0,Ot.useCallback)(v=>{let{current:x}=c;if(x){let{scrollLeft:C,scrollTop:b}=x;if(i.current=!1,v.type==="scroll-distance"){let S=C,M=b;v.direction==="up"||v.direction==="down"?M=Math.min(Math.max(0,b+v.distance),e):S=Math.min(Math.max(0,C+v.distance),o),x.scrollTo({top:M,left:S,behavior:"auto"})}else if(v.type==="scroll-page"){let{direction:S}=v,M=s*(S==="down"?r:-r),w=Math.min(Math.max(0,b+M),e);x.scrollTo({top:w,left:C,behavior:"auto"})}else if(v.type==="scroll-end"){let{direction:S}=v,M=S==="end"?e:0;x.scrollTo({top:M,left:x.scrollLeft,behavior:"auto"})}}},[o,e,r,s]);return{scrollbarContainerRef:y,contentContainerRef:g,requestScroll:E}};var Fi=require("react"),nw=({columns:o,getRowAtPosition:e,setRange:t,viewportMeasurements:n})=>{let r=(0,Fi.useRef)(0),{contentWidth:s,rowCount:i}=n,l=(0,Fi.useCallback)(a=>{let c=e(a);c!==r.current&&(r.current=c,t({from:c,to:c+i}))},[e,t,i]);return(0,Fi.useEffect)(()=>{let{current:a}=r,c={from:a,to:a+i};t(c)},[t,i]),{onVerticalScroll:l}};var{KEY:FA,IS_EXPANDED:ow,IS_LEAF:rw}=bt.metadataKeys,BA=(o,e)=>({...o,columns:o.columns.concat(e)}),iw=({availableColumns:o,config:e,containerRef:t,dataSource:n,headerHeight:r=25,onAvailableColumnsChange:s,onConfigChange:i,onFeatureEnabled:l,onFeatureInvocation:a,onRowClick:c,onSelectionChange:u,renderBufferSize:d=0,rowHeight:f=20,selectionModel:h})=>{let[p,m]=(0,ye.useState)(n.size);if(n===void 0)throw Error("no data source provided to Vuu Table");let[g,y]=(0,ye.useState)(),E=(0,ye.useCallback)(H=>{y(H)},[]),v=(0,ye.useMemo)(()=>cf(n),[n]),x=(0,ye.useCallback)(H=>{m(H)},[]),{columns:C,dispatchColumnAction:b,headings:S,tableAttributes:M,tableConfig:w}=jS(e,n.config);(0,sw.useLayoutEffectSkipFirst)(()=>{b({type:"init",dataSourceConfig:n.config,tableConfig:w})},[w,n.config,b]);let[k,L]=(0,ye.useState)(),[T,P]=(0,ye.useMemo)(()=>{let H=(z,ae)=>{let Me=(0,bt.updateColumn)(C,z,{width:ae});L(Me)};return[k!=null?k:C,H]},[C,k]),R=(0,ye.useMemo)(()=>(0,bt.buildColumnMap)(n.columns),[n.columns]),{getRowAtPosition:O,getRowOffset:A,setPctScrollTop:D,...I}=Lf({columns:T,headerHeight:r,headings:S,rowCount:p,rowHeight:f,size:g}),F=VS({from:0,to:I.rowCount}),N=(0,ye.useCallback)(({tableSchema:H})=>{H||console.log("usbscription message with no schema")},[]),{data:V,range:K,setRange:_}=BS({dataSource:n,onFeatureEnabled:l,onFeatureInvocation:a,renderBufferSize:d,onSizeChange:x,onSubscribed:N,range:F}),q=(0,ye.useCallback)(H=>{console.log("useTableNext handleConfigChanged",{tableConfig:H}),b({type:"init",tableConfig:H,dataSourceConfig:n.config}),i==null||i(H)},[n.config,b,i]),J=(0,ye.useCallback)(H=>{console.log("config changed",{dataSourceConfig:H}),n.config={...n.config,...H}},[n]),G=(0,ye.useCallback)(H=>{console.log("useTableNext handleCreateCalculatedColumn",{column:H}),n.columns=n.columns.concat(H.name);let z=BA(w,H);b({type:"init",tableConfig:z,dataSourceConfig:n.config}),i==null||i(z)},[n,b,i,w]);(0,ye.useEffect)(()=>{n.on("config",(H,z)=>{b({type:"tableConfig",...H,confirmed:z})})},[n,b]);let{showColumnSettingsPanel:Z,showTableSettingsPanel:ue}=OS({availableColumns:o!=null?o:w.columns.map(({name:H,serverDataType:z="string"})=>({name:H,serverDataType:z})),onAvailableColumnsChange:s,onConfigChange:q,onCreateCalculatedColumn:G,onDataSourceConfigChange:J,tableConfig:w}),le=(0,ye.useCallback)(H=>{QS(H)?Z(H):qS(H)?ue():b(H)},[b,Z,ue]),Ve=df({dataSource:n,onPersistentColumnOperation:le}),xe=(0,ye.useCallback)((H,z=!1,ae)=>{n&&(n.sort=(0,bt.applySort)(n.sort,H,z,ae))},[n]),Oe=(0,ye.useCallback)((H,z,ae)=>{let Me=T.find(Ht=>Ht.name===z);if(Me)H==="resize"?(0,bt.isValidNumber)(ae)&&P(z,ae):H==="end"?(0,bt.isValidNumber)(ae)&&(b({type:"resizeColumn",phase:H,column:Me,width:ae}),i==null||i(Vu(w,{type:"col-size",column:Me,width:ae}))):(L(void 0),b({type:"resizeColumn",phase:H,column:Me,width:ae}));else throw Error(`useDataTable.handleColumnResize, column ${z} not found`)},[T,w,b,i,P]),ke=(0,ye.useCallback)((H,z)=>{let ae=(0,bt.isJsonGroup)(z,H),Me=H[FA];if(H[ow]){if(n.closeTreeNode(Me,!0),ae){let Ht=T.indexOf(z);n.getRowsAtDepth(Ht+1).some(kn=>kn[ow]||kn[rw])||b({type:"hideColumns",columns:T.slice(Ht+2)})}}else if(n.openTreeNode(Me),ae){let Ht=n.getChildRows(Me),gr=T.indexOf(z)+1,kn=[T[gr]];Ht.some(Es=>Es[rw])&&kn.push(T[gr+1]),kn.some(Es=>Es.hidden)&&b({type:"showColumns",columns:kn})}},[T,n,b]),{onVerticalScroll:Ae}=nw({columns:T,getRowAtPosition:O,setRange:_,viewportMeasurements:I}),ut=(0,ye.useCallback)(H=>{Ae(H)},[Ae]),{requestScroll:Le,...st}=tw({maxScrollLeft:I.maxScrollContainerScrollHorizontal,maxScrollTop:I.maxScrollContainerScrollVertical,rowHeight:f,onVerticalScroll:ut,viewportRowCount:I.rowCount}),{navigate:Dt,onKeyDown:Ee,...it}=FS({columnCount:T.filter(H=>H.hidden!==!0).length,containerRef:t,requestScroll:Le,rowCount:n==null?void 0:n.size,viewportRange:K,viewportRowCount:I.rowCount}),{onKeyDown:j}=US({navigate:Dt}),te=(0,ye.useCallback)(H=>{Ee(H),H.defaultPrevented||j(H)},[Ee,j]),oe=zS({columns:T,data:V}),ce=(0,ye.useCallback)(H=>{var kn;let ae=H.target.closest(".vuuTableNextHeaderCell"),Me=parseInt((kn=ae==null?void 0:ae.dataset.index)!=null?kn:"-1"),Ht=(0,bt.visibleColumnAtIndex)(T,Me),gr=H.shiftKey;Ht&&xe(Ht,gr)},[T,xe]),we=(0,ye.useCallback)(H=>{(0,bt.isGroupColumn)(H)?n.groupBy=[]:n&&n.groupBy.includes(H.name)&&(n.groupBy=n.groupBy.filter(z=>z!==H.name))},[n]),$e=(0,ye.useCallback)(H=>{n.select(H),u==null||u(H)},[n,u]),ve=Af({onSelectionChange:$e,selectionModel:h}),X=(0,ye.useCallback)((H,z,ae)=>{ve(H,z,ae),c==null||c(H)},[c,ve]);(0,ye.useEffect)(()=>{n.on("config",(H,z)=>{b({type:"tableConfig",...H,confirmed:z})})},[n,b]);let ee=(0,ye.useCallback)((H,z)=>{let ae=T[H];b({type:"moveColumn",column:ae,moveTo:z})},[T,b]),ne=(0,ye.useCallback)((H,z,ae)=>n.applyEdit(H,z,ae),[n]),{onMouseDown:de,...Ke}=Mr({allowDragDrop:!0,containerRef:t,draggableClassName:"vuuTableNext",onDrop:ee,orientation:"horizontal",itemQuery:".vuuTableNextHeaderCell"});return{...it,onKeyDown:te,columnMap:R,columns:T,data:V,handleContextMenuAction:Ve,headerProps:{onClick:ce,onMouseDown:de,onResize:Oe},menuBuilder:v,onContextMenu:oe,onDataEdited:ne,onRemoveGroupColumn:we,onResize:E,onRowClick:X,onToggleGroup:ke,scrollProps:st,tableAttributes:M,viewportMeasurements:I,dragDropHook:Ke}};var Wu=require("@vuu-ui/vuu-layout");var Sn=require("react/jsx-runtime"),Up=require("react"),Vn="vuuTableNext",{IDX:VA,RENDER_IDX:$A}=Bi.metadataKeys,Gp=({Row:o=Vf,availableColumns:e,className:t,config:n,dataSource:r,id:s,onAvailableColumnsChange:i,onConfigChange:l,onFeatureEnabled:a,onFeatureInvocation:c,onRowClick:u,onSelectionChange:d,onShowConfigEditor:f,renderBufferSize:h=0,rowHeight:p=20,selectionModel:m="extended",showColumnHeaders:g=!0,headerHeight:y=g?25:0,style:E,...v})=>{let x=(0,Wu.useId)(s),C=(0,lw.useRef)(null),{columnMap:b,columns:S,data:M,dragDropHook:w,handleContextMenuAction:k,headerProps:L,onDataEdited:T,onRemoveGroupColumn:P,onResize:R,onRowClick:O,onToggleGroup:A,menuBuilder:D,scrollProps:I,tableAttributes:F,viewportMeasurements:N,...V}=iw({availableColumns:e,config:n,containerRef:C,dataSource:r,headerHeight:y,onAvailableColumnsChange:i,onConfigChange:l,onFeatureEnabled:a,onFeatureInvocation:c,onRowClick:u,onSelectionChange:d,renderBufferSize:h,rowHeight:p,selectionModel:m}),K=()=>({...E,"--content-height":`${N.contentHeight}px`,"--horizontal-scrollbar-height":`${N.horizontalScrollbarHeight}px`,"--content-width":`${N.contentWidth}px`,"--pinned-width-left":`${N.pinnedWidthLeft}px`,"--pinned-width-right":`${N.pinnedWidthRight}px`,"--header-height":`${y}px`,"--row-height":`${p}px`,"--total-header-height":`${N.totalHeaderHeight}px`,"--vertical-scrollbar-width":`${N.verticalScrollbarWidth}px`,"--viewport-body-height":`${N.viewportBodyHeight}px`}),_=(0,Wp.default)(Vn,t,{[`${Vn}-colLines`]:F.columnSeparators,[`${Vn}-rowLines`]:F.rowSeparators,[`${Vn}-zebra`]:F.zebraStripes});return(0,Sn.jsx)(Hd,{menuActionHandler:k,menuBuilder:D,children:(0,Sn.jsxs)(Wu.MeasuredContainer,{...v,className:_,onResize:R,ref:C,style:K(),children:[(0,Sn.jsx)("div",{className:`${Vn}-scrollbarContainer`,ref:I.scrollbarContainerRef,children:(0,Sn.jsx)("div",{className:`${Vn}-scrollbarContent`})}),(0,Sn.jsx)("div",{className:`${Vn}-contentContainer`,ref:I.contentContainerRef,children:(0,Sn.jsxs)("div",{...V,className:`${Vn}-table`,tabIndex:-1,children:[g?(0,Sn.jsx)("div",{className:`${Vn}-col-headings`,children:(0,Sn.jsxs)("div",{className:`${Vn}-col-headers`,role:"row",children:[S.filter(Bi.notHidden).map((q,J)=>(0,Bi.isGroupColumn)(q)?(0,Up.createElement)(Ic,{...L,column:q,"data-index":J,key:q.name,onRemoveColumn:P}):(0,Up.createElement)(Hx,{...L,className:(0,Wp.default)({"vuuDraggable-dragAway":J===w.draggedItemIndex}),column:q,"data-index":J,id:`${x}-col-${J}`,key:q.name})),w.draggable]})}):null,(0,Sn.jsx)("div",{className:`${Vn}-body`,children:M.map(q=>(0,Sn.jsx)(o,{columnMap:b,columns:S,onClick:O,onDataEdited:T,row:q,offset:p*q[VA]+y,onToggleGroup:A,zebraStripes:F.zebraStripes},q[$A]))})]})})]})})};var Vi=require("@vuu-ui/vuu-utils");var Uu=require("react"),aw=require("react/jsx-runtime"),KA="vuuTableDropdownCell",zA=["Enter"," "],WA=({column:o,columnMap:e,row:t})=>{var a,c,u;let n=(0,Vi.isTypeDescriptor)(o.type)&&(0,Vi.isColumnTypeRenderer)((a=o.type)==null?void 0:a.renderer)?(u=(c=o.type)==null?void 0:c.renderer)==null?void 0:u.values:[],r=e[o.name],[s,i]=(0,Uu.useState)(t[r]),l=(0,Uu.useCallback)((d,f)=>{f&&i(f)},[]);return(0,aw.jsx)(dc,{className:KA,onSelectionChange:l,openKeys:zA,selected:s,source:n,width:o.width-17})};(0,Vi.registerComponent)("dropdown-cell",WA,"cell-renderer",{});var cw=require("@vuu-ui/vuu-utils"),uw=require("@salt-ds/core");var dw=U(require("classnames"));var _u=require("react/jsx-runtime"),Gu="vuuTableInputCell",UA=()=>(console.warn("onCommit handler has not been provided to InputCell cell renderer"),!0),GA=({column:o,columnMap:e,onCommit:t=UA,row:n})=>{let r=e[o.name],{align:s="left",clientSideEditValidationCheck:i,valueFormatter:l}=o,{warningMessage:a,...c}=yy({initialValue:l(n[r]),onCommit:t,clientSideEditValidationCheck:i}),u=a&&s==="left"?(0,_u.jsx)("span",{className:`${Gu}-icon`,"data-icon":"error"}):void 0,d=a&&s==="right"?(0,_u.jsx)("span",{className:`${Gu}-icon`,"data-icon":"error"}):void 0;return(0,_u.jsx)(uw.Input,{...c,className:(0,dw.default)(Gu,{[`${Gu}-error`]:a!==void 0}),endAdornment:u,startAdornment:d})};(0,cw.registerComponent)("input-cell",GA,"cell-renderer",{});var $i=require("@salt-ds/core"),pw=U(require("classnames")),qu=require("react");var fw=require("@vuu-ui/vuu-utils");var Qu=require("react/jsx-runtime"),_A="vuuSearchCell",QA=({column:o,columnMap:e,row:t})=>{let n=e[o.name],r=t[n];return(0,Qu.jsxs)("div",{className:_A,tabIndex:-1,children:[(0,Qu.jsx)("span",{"data-icon":"draggable"}),r]})};console.log("register SearchCell");(0,fw.registerComponent)("search-cell",QA,"cell-renderer",{serverDataType:"private"});var ur=require("react/jsx-runtime"),_p="vuuInstrumentSearch",qA={columns:[{name:"bbg",hidden:!0},{name:"description",width:200,type:{name:"string",renderer:{name:"search-cell"}}}],rowSeparators:!0},jA=(0,ur.jsx)("span",{"data-icon":"search"}),XA=({TableProps:o,className:e,dataSource:t,searchColumn:n="description",...r})=>{let[s,i]=(0,qu.useState)({searchText:"",filter:""}),l=(0,qu.useCallback)(a=>{let{value:c}=a.target,u=`name starts "${c}"`;i({searchText:c,filter:u}),t.filter={filter:u,filterStruct:{op:"starts",column:n,value:c}}},[t,n]);return(0,ur.jsxs)("div",{...r,className:(0,pw.default)(_p,e),children:[(0,ur.jsxs)($i.FormField,{className:`${_p}-inputField`,children:[(0,ur.jsx)($i.FormFieldLabel,{}),(0,ur.jsx)($i.Input,{endAdornment:jA,value:s.searchText,onChange:l})]}),(0,ur.jsx)(Gp,{rowHeight:25,config:qA,renderBufferSize:100,...o,className:`${_p}-list`,dataSource:t,showColumnHeaders:!1})]})};(0,hw.registerComponent)("InstrumentSearch",XA,"view");var Ki=require("@vuu-ui/vuu-utils"),zi=require("react"),mw=U(require("classnames"));var ju=require("react/jsx-runtime"),JA="vuuPriceTicker",YA=o=>(0,Ki.numericFormatter)({type:{name:"number",formatting:{decimals:o,zeroPad:!0}}}),ZA=[void 0,void 0],eL=(0,zi.memo)(({className:o,decimals:e=2,price:t,showArrow:n,...r})=>{let s=(0,zi.useRef)(ZA),[i,l]=s.current,a=(0,zi.useMemo)(()=>YA(e),[e]),c=(0,Ki.isValidNumber)(i)?(0,Ki.getMovingValueDirection)(t,l,i,e):"";return s.current=[t,c],(0,ju.jsxs)("div",{...r,className:(0,mw.default)(JA,o,c),children:[a(t),n?(0,ju.jsx)("span",{"data-icon":"price-arrow"}):null]})});eL.displayName="PriceTicker";var Ui=require("@vuu-ui/vuu-layout"),Rw=require("@salt-ds/core"),jp=U(require("classnames")),Gi=U(require("react"));var Dw=require("@vuu-ui/vuu-utils"),Mt=require("react");var gw=o=>typeof o=="object"&&o!==null&&"tabIndex"in o&&typeof o.tabIndex=="number",bw=o=>({label:"Close",location:"tab",action:"close-tab",options:o}),yw=o=>({label:"Rename",location:"tab",action:"rename-tab",options:o});var xw=require("@vuu-ui/vuu-utils"),Cw=(o,e)=>{if(o){let t=o.querySelector(`[data-index]:has(${e})`);return(0,xw.getElementDataIndex)(t)}return-1},Qp=o=>Cw(o,'[aria-selected="true"]'),vw=o=>Cw(o,".vuuEditableLabel-editing");var Wi=require("@vuu-ui/vuu-utils"),Lo=require("react"),Sw=(o,e,t="horizontal")=>{let n=(0,Lo.useRef)(!1),r=(0,Lo.useCallback)(()=>{n.current=!0},[]),s=(0,Lo.useCallback)(()=>{n.current=!1},[]),i=(0,Lo.useCallback)(()=>{var a,c;(a=o.current)==null||a.style.setProperty("--tab-thumb-transition","none"),(c=o.current)==null||c.removeEventListener("transitionend",i)},[o]),l=(0,Lo.useRef)(-1);return(0,Lo.useMemo)(()=>{var u,d;let a=0,c=0;if(l.current!==-1){let f=(u=o.current)==null?void 0:u.querySelector(".vuuTab-selected"),h=(d=o.current)==null?void 0:d.querySelector(`[data-index="${e}"] .vuuTab`),{positionProp:p,sizeProp:m}=Wi.MEASURES[t];if(f&&h&&!n.current){let{[p]:g,[m]:y}=f.getBoundingClientRect(),{[p]:E}=h.getBoundingClientRect();if((0,Wi.isValidNumber)(g)&&(0,Wi.isValidNumber)(E)&&(0,Wi.isValidNumber)(y)){console.log({orientation:t,positionProp:p,oldPosition:g,newPosition:E}),a=g-E,c=y;let x=Math.abs(a/(t==="horizontal"?1100:700));requestAnimationFrame(()=>{var C,b,S,M;(C=o.current)==null||C.style.setProperty("--tab-thumb-offset","0px"),(b=o.current)==null||b.style.setProperty("--tab-thumb-size","100%"),(S=o.current)==null||S.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":c?`${c}px`:void 0},resumeAnimation:s,suspendAnimation:r}},[e,o,t,i,s,r])};var Tw=require("@salt-ds/core"),Ju=require("@vuu-ui/vuu-utils"),ct=require("react"),Nt=require("@vuu-ui/vuu-utils");var kw={horizontal:{[Nt.Home]:"start",[Nt.End]:"end",[Nt.ArrowLeft]:"bwd",[Nt.ArrowRight]:"fwd"},vertical:{[Nt.Home]:"start",[Nt.End]:"end",[Nt.ArrowUp]:"bwd",[Nt.ArrowDown]:"fwd"}},tL=(o,e="horizontal")=>kw[e][o]!==void 0,nL=o=>o===Nt.ArrowDown;function ww(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 oL=o=>o!==null&&!o.classList.contains("wrapped"),Xu=(o,e)=>o?o.querySelector(`[data-index="${e}"]`):null,Ew=({containerRef:o,defaultHighlightedIdx:e=-1,highlightedIdx:t,keyBoardActivation:n,orientation:r,selectedIndex:s=0})=>{let i=n==="manual",l=(0,ct.useRef)(!1),a=(0,ct.useRef)(-1),[c,u]=(0,ct.useState)(!1),[,d]=(0,ct.useState)({}),[f,h]=(0,Tw.useControlled)({controlled:t,default:e,name:"UseKeyboardNavigation"}),p=(0,ct.useCallback)(T=>{h(a.current=T)},[h]),m=(0,ct.useRef)(!1),g=(0,ct.useCallback)((T,P=!1,R,O=70)=>{p(T),R===!0&&!m.current&&(m.current=!0);let A=()=>{let D=Xu(o.current,T);if(D){let I=(0,Ju.getFocusableElement)(D);I==null||I.focus()}};P?A():setTimeout(A,O)},[o,p]),y=T=>{if(a.current===-1&&T.target.tabIndex!==-1){let P=vw(o.current);P!==-1?requestAnimationFrame(()=>{p(P)}):setTimeout(()=>{a.current===-1&&s!==null&&p(s)},200)}},E=(0,ct.useCallback)(()=>{var T,P;return(P=(T=o.current)==null?void 0:T.querySelectorAll("[data-index]").length)!=null?P:0},[o]),v=(0,ct.useCallback)((T="fwd",P)=>{let R=E(),A=ww(R,T,typeof P=="number"?P:R),D=T==="start"?"fwd":T==="end"?"bwd":T;for(;(D==="fwd"&&A<R||D==="bwd"&&A>0)&&!oL(Xu(o.current,A));){let I=ww(R,D,A);if(I===A)break;A=I}return A},[o,E]),x=(0,ct.useCallback)((T,P=!1)=>{let R=kw[r][T.key],O=v(R,f);O!==f?i&&g(O,!0):P&&d({})},[f,i,v,g,r]),C=(0,ct.useCallback)(()=>{let T=Xu(o.current,f);return T?T.querySelector(".vuuPopupMenu")!=null:!1},[o,f]),b=(0,ct.useCallback)(()=>{let T=Xu(o.current,f),P=T==null?void 0:T.querySelector(".vuuPopupMenu");return P&&(0,Ju.dispatchMouseEvent)(P,"click"),!1},[o,f]),S=(0,ct.useCallback)(T=>{E()>0&&tL(T.key,r)?(T.preventDefault(),m.current?x(T):(m.current=!0,x(T,!0))):nL(T.key)&&C()&&b()},[b,E,C,x,r]),M=(T,P)=>{p(P)},w=(0,ct.useCallback)(()=>{c||(u(!0),l.current?l.current=!1:m.current=!0)},[c]),k=(0,ct.useCallback)(()=>{c||(l.current=!0),m.current=!1},[c]);return{containerProps:{onBlur:T=>{let P=T.target.closest(".vuuTabstrip"),R=T.relatedTarget;P&&!(P!=null&&P.contains(R))&&(p(-1),u(!1))},onMouseDownCapture:k,onFocus:w,onMouseLeave:()=>{m.current=!0,p(-1),l.current=!1}},focusVisible:m.current?f:-1,focusIsWithinComponent:c,highlightedIdx:f,focusTab:g,onClick:M,onFocus:y,onKeyDown:S,setHighlightedIdx:p}};var Mw=require("@salt-ds/core"),ga=require("react"),rL=["Enter"," "],sL=o=>o&&o.matches('[class*="vuuTab "]'),Pw=({defaultSelected:o,highlightedIdx:e,onSelectionChange:t,selected:n})=>{let[r,s,i]=(0,Mw.useControlled)({controlled:n,default:o!=null?o:0,name:"Tabstrip",state:"value"}),l=(0,ga.useCallback)(d=>rL.includes(d.key),[]),a=(0,ga.useCallback)(d=>{s(d),t==null||t(d)},[t,s]),c=(0,ga.useCallback)(d=>{let f=d.target;l(d)&&e!==r&&sL(f)&&(d.stopPropagation(),d.preventDefault(),a(e))},[l,e,r,a]),u=(0,ga.useCallback)((d,f)=>{f!==r&&a(f)},[a,r]);return{activateTab:a,isControlled:i,onClick:u,onKeyDown:c,selected:r}};var iL=new Set(["Enter"," "]),lL=o=>iL.has(o),aL=(o,e)=>o?o.querySelector(`[data-index="${e}"]`):null,Iw=({activeTabIndex:o,allowDragDrop:e,animateSelectionThumb:t,containerRef:n,onActiveChange:r,onAddTab:s,onCloseTab:i,onExitEditMode:l,onMoveTab:a,orientation:c,keyBoardActivation:u})=>{let d=(0,Mt.useRef)(o),{focusTab:f,highlightedIdx:h,onClick:p,onKeyDown:m,setHighlightedIdx:g,...y}=Ew({containerRef:n,keyBoardActivation:u,orientation:c,selectedIndex:d.current}),{activateTab:E,onClick:v,onKeyDown:x,selected:C}=Pw({highlightedIdx:h,onSelectionChange:r,selected:o});d.current=C;let{containerStyle:b,resumeAnimation:S,suspendAnimation:M}=Sw(n,t?C:-1,c),w=(0,Mt.useCallback)((G,Z)=>{let{current:ue}=d;console.log(`useTabstrip handleDrop ${G} - ${Z} ${ue}`),a==null||a(G,Z);let le=-1;Z!==-1&&(ue===G?le=Z:G>ue&&Z<=ue?le=ue+1:G<ue&&Z>=ue&&(le=ue-1),le!==-1&&(M(),E(le),requestAnimationFrame(S)),f(Z,!1,!1,350))},[f,a,S,E,M]),{onMouseDown:k,...L}=Mr({allowDragDrop:e,containerRef:n,draggableClassName:`tabstrip-${c}`,onDrop:w,orientation:"horizontal",itemQuery:".vuuOverflowContainer-item"}),T=(0,Mt.useCallback)((G,Z,ue,le)=>{console.log(`handleExitEditMode ${G} ${Z} ${ue} ${le}`),l==null||l(G,Z,ue,le),ue||f(le,!1,!0)},[f,l]),P=(0,Mt.useCallback)((G,Z)=>{p(G,Z),v(G,Z)},[p,v]),R=(0,Mt.useCallback)((G=h)=>{let Z=aL(n.current,G);if(Z)return Z.querySelector(".vuuEditableLabel")},[n,h]),O=(0,Mt.useCallback)((G=h)=>{let Z=R(G);return Z?Z.classList.contains("vuuEditableLabel-editing"):!1},[R,h]),A=(0,Mt.useCallback)((G=h)=>{let Z=R(G);Z&&(0,Dw.dispatchMouseEvent)(Z,"dblclick")},[R,h]),D=(0,Mt.useCallback)(G=>{m(G),G.defaultPrevented||x(G),!G.defaultPrevented&&lL(G.key)&&A()},[A,m,x]),I=(0,Mt.useCallback)(G=>{let Z=Qp(n.current),ue=Z>G?Z-1:Z===G?0:Z;return M(),i==null||i(G,ue),setTimeout(()=>{S()},200),!0},[n,i,S,M]),F=(0,Mt.useCallback)(G=>(A(G),!0),[A]),N=(0,Mt.useCallback)(G=>{if(gw(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]),V=(0,Mt.useCallback)(()=>{O()?g(h):f(h)},[h,f,g,O]),K=(0,Mt.useCallback)(G=>{let Z=parseInt(G.index);isNaN(Z)||E(Z)},[E]),_={onFocus:y.onFocus,onKeyDown:D},q=(0,Mt.useCallback)(()=>{s==null||s(),requestAnimationFrame(()=>{let G=Qp(n.current);G!==-1&&f(G)})},[n,f,s]),J={onClick:P,onKeyDown:D,onExitEditMode:T,onMenuAction:N,onMenuClose:V,onMouseDown:k};return{activeTabIndex:C,containerStyle:b,focusVisible:y.focusVisible,containerProps:{...y.containerProps,onSwitchWrappedItemIntoView:K},navigationProps:_,onClickAddTab:q,tabProps:J,...L}};var _i=require("react/jsx-runtime"),Lw=require("react"),qp="vuuTabstrip",Aw=({activeTabIndex:o,allowAddTab:e,allowCloseTab:t,allowDragDrop:n=!1,allowRenameTab:r=!1,animateSelectionThumb:s=!1,children:i,className:l,id:a,keyBoardActivation:c="manual",location:u,onActiveChange:d,onAddTab:f,onCloseTab:h,onExitEditMode:p,onMoveTab:m,orientation:g="horizontal",showTabMenuButton:y,style:E,...v})=>{let x=(0,Gi.useRef)(null),{activeTabIndex:C,focusVisible:b,containerStyle:S,draggedItemIndex:M,onClickAddTab:w,tabProps:k,...L}=Iw({activeTabIndex:o,allowDragDrop:n,animateSelectionThumb:s,containerRef:x,keyBoardActivation:c,onActiveChange:d,onAddTab:f,onCloseTab:h,onExitEditMode:p,onMoveTab:m,orientation:g}),T=(0,Ui.useId)(a),P=(0,jp.default)(qp,`${qp}-${g}`,l),R=E||S?{...E,...S}:void 0,O=(0,Gi.useMemo)(()=>(0,Ui.asReactElements)(i).map((A,D)=>{let{id:I=`${T}-tab-${D}`,closeable:F=t,editable:N=r,location:V,showMenuButton:K=y}=A.props,_=D===C;return Gi.default.cloneElement(A,{...k,...L.navigationProps,closeable:F,"data-overflow-priority":_?"1":void 0,dragging:M===D,editable:N,focusVisible:b===D,id:I,index:D,key:D,location:(0,jp.default)(u,V),selected:_,showMenuButton:K,tabIndex:_?0:-1})}).concat(e?(0,Lw.createElement)(Rw.Button,{...L.navigationProps,"aria-label":"Create Tab",className:`${qp}-addTabButton`,"data-icon":"add","data-overflow-priority":"1",key:"addButton",onClick:w,variant:"secondary",tabIndex:-1}):[]),[C,e,t,r,i,b,T,u,w,y,k,M,L.navigationProps]);return(0,_i.jsxs)(_i.Fragment,{children:[(0,_i.jsx)(Ui.OverflowContainer,{...v,...L.containerProps,className:P,height:28,id:T,orientation:g,overflowIcon:"more-horiz",ref:x,style:R,children:O}),L.draggable]})};var Vw=require("@salt-ds/core"),$w=U(require("classnames")),ms=require("react");var Ow=require("react"),Nw=U(require("classnames"));var Fw=require("react/jsx-runtime"),cL="vuuTabMenu",Hw=({allowClose:o,allowRename:e,controlledComponentId:t,location:n,onMenuAction:r,onMenuClose:s,index:i})=>{let[l,a]=(0,Ow.useMemo)(()=>[(c,u)=>{let d=[];return e&&d.push(yw(u)),o&&d.push(bw(u)),d},{controlledComponentId:t,tabIndex:i}],[o,e,t,i]);return(0,Fw.jsx)(Kd,{className:cL,menuBuilder:l,menuActionHandler:r,menuLocation:(0,Nw.default)("tab",n),menuOptions:a,onMenuClose:s,tabIndex:-1})};var ps=require("react/jsx-runtime"),hs="vuuTab",Bw=()=>{},Qi=(0,ms.forwardRef)(function({ariaControls:e,children:t,className:n,closeable:r=!1,dragging:s,editable:i=!1,editing:l,focusVisible:a,index:c=-1,label:u,location:d,onClick:f,onClose:h,onEnterEditMode:p=Bw,onExitEditMode:m=Bw,onFocus:g,onKeyUp:y,onMenuAction:E,onMenuClose:v,orientation:x,selected:C,showMenuButton:b=r||i||!!d,tabIndex:S,...M},w){if(b&&typeof E!="function")throw Error("Tab onMenuAction must be provided if showMenuButton is set");let k=(0,ms.useRef)(null),L=(0,ms.useRef)(null),T=(0,Vw.useForkRef)(w,k),P=(0,ms.useCallback)(I=>{l||(I.preventDefault(),f==null||f(I,c))},[l,c,f]),R=(I="",F="",N=!0)=>m(I,F,N,c),O=I=>{switch(I.key){case"Backspace":case"Delete":r&&(I.stopPropagation(),h&&h(c));break;default:y&&y(I,c)}},A=()=>i?(0,ps.jsx)(xl,{editing:l,defaultValue:u,onEnterEditMode:p,onExitEditMode:R,ref:L},u):u,D=I=>{if(L.current){let N=L.current.querySelector(".vuuEditableLabel-input");N==null||N.focus()}g==null||g(I)};return(0,ps.jsxs)("div",{...M,"aria-controls":e,"aria-selected":C,className:(0,$w.default)(hs,{[`${hs}-closeable`]:r,"vuuDraggable-dragAway":s,[`${hs}-editing`]:l,[`${hs}-selected`]:C||void 0,[`${hs}-vertical`]:x==="vertical",vuuFocusVisible:a}),onClick:P,onFocus:D,onKeyUp:O,ref:T,role:"tab",tabIndex:S,children:[(0,ps.jsx)("div",{className:`${hs}-main`,children:(0,ps.jsx)("span",{className:`${hs}-text`,"data-text":i?void 0:u,children:t!=null?t:A()})}),b?(0,ps.jsx)(Hw,{allowClose:r,allowRename:i,controlledComponentId:e,location:d,onMenuAction:E,onMenuClose:v,index:c}):null]})});var od=require("@salt-ds/core"),nd=U(require("classnames")),rd=require("react");function uL(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 Xp=o=>o.closest("[data-idx],[aria-posinset]");var Kw=o=>uL(Xp(o));var qi=require("react"),dL=new Set(["/","-","."]),fL=o=>dL.has(o),zw=(o,e)=>e.startsWith(o)&&fL(e[o.length]),Ww=(o,e="root",{collapsibleHeaders:t=void 0,defaultExpanded:n=!1,revealSelected:r=!1}={})=>{let s=(f,h,p)=>{if(f.childNodes)return f.childNodes.length;if(f.header){let m=p+1,g=0;for(;m<h.length&&!h[m].header;)g++,m++;return g}else return 0},i=(0,qi.useCallback)(f=>Array.isArray(r)?r.some(h=>zw(f,h)):n,[n,r]),l=(0,qi.useCallback)((f,h,p=1,m="",g=[],y=[])=>{let E=0;return f.forEach((v,x,C)=>{var R;let b=v.header&&t,S=v.childNodes&&t===!1,M=!v.childNodes||v.childNodes.length===0,w=S||M&&!b,k=m?`${m}.${x}`:`${x}`,L=(R=v.id)!=null?R:`${e}-${k}`,T=w?void 0:i(L),P={...v,childNodes:void 0,id:L,count:!S&&T===void 0?0:s(v,C,x),expanded:T,index:h.index,level:p};if(g.push(P),y.push(f[x]),E+=1,h.index+=1,v.childNodes){let[O,A]=l(v.childNodes,h,p+1,k,[],y);P.childNodes=A,(T===!0||S)&&(E+=O)}}),[E,g,y]},[t,e,i]),[a,c,u]=(0,qi.useMemo)(()=>l(o,{index:0}),[l,o]),d=(0,qi.useCallback)((f,h=c)=>{let p=h.find(m=>{var g;return m.id===f||((g=m==null?void 0:m.childNodes)==null?void 0:g.length)&&zw(m.id,f)});if((p==null?void 0:p.id)===f)return u[p.index];if(p)return d(f,p.childNodes)},[u,c]);return[a,c,d]};var dr=require("react"),_w=require("@salt-ds/core"),Uw="single",hL="checkbox",pL="multi",mL="extended",gL=["Enter"," "],Gw={},bL=o=>o.expanded!==void 0,Qw=o=>o&&o!=="none",qw=({defaultSelected:o,highlightedIdx:e,treeNodes:t,onChange:n,selected:r,selection:s=Uw,selectionKeys:i=gL})=>{let l=s===Uw,a=s===pL||s.startsWith(hL),c=s===mL,u=(0,dr.useRef)(-1),d=(0,dr.useCallback)(x=>i.includes(x.key),[i]),[f,h]=(0,_w.useControlled)({controlled:r,default:o!=null?o:[],name:"selected"}),p=(0,dr.useCallback)((x,C,b,S,M=!1)=>{let{current:w}=u,k=f==null?void 0:f.includes(b),T=l||c&&!M&&(!S||w===-1),P=a||c&&M&&!S,R=[];if(T&&k)R=[];else if(T)R=[b];else if(P&&k)R=f.filter(O=>O!==b);else if(P)R=f.concat(b);else if(c){let[O,A]=C>w?[w,C]:[C,w];R=f.slice();for(let D=O;D<=A;D++){let{id:I}=t[D];f.includes(I)||R.push(I)}}h(R),n&&n(x,R)},[c,t,a,n,f,h,l]),m=(0,dr.useCallback)(x=>{if(~e&&d(x)){x.preventDefault();let C=t[e];p(x,e,C.id,!1,x.ctrlKey||x.metaKey),c&&(u.current=e)}},[c,e,t,d,p]),g=(0,dr.useCallback)((x,C)=>{if(c&&x.shiftKey){let b=t[C];p(x,C,b.id,!0)}},[c,t,p]),y=s==="none"?Gw:{onKeyDown:m,onKeyboardNavigation:g},E=(0,dr.useCallback)(x=>{if(e!==-1){let C=t[e];bL(C)||(x.preventDefault(),x.stopPropagation(),p(x,e,C.id,x.shiftKey,x.ctrlKey||x.metaKey),c&&(u.current=e))}},[c,e,t,p]);return{listHandlers:y,listItemHandlers:s==="none"?Gw:{onClick:E},selected:f,setSelected:h}};var Ut=require("react");var yL=["height","scrollHeight"],jw=(o,e,t=!1)=>{let n=(0,Ut.useRef)(0),r=(0,Ut.useRef)(!1),s=(0,Ut.useRef)(0),i=(0,Ut.useRef)(0),l=(0,Ut.useCallback)(u=>{let d=u.ariaExpanded?u.firstChild:u,f=t?30:0,h=d.offsetTop,p=d.offsetHeight,m=n.current+f,g=m+s.current-f;(h+p>g||h<m)&&(n.current=h+p>g?n.current+(h+p)-g:h-f,r.current=!0,o.current&&(o.current.scrollTop=n.current),setTimeout(()=>{r.current=!1}))},[o,t]),a=(0,Ut.useCallback)(u=>{n.current=u.target.scrollTop},[]);(0,Ut.useEffect)(()=>{let{current:u}=o;return u&&u.addEventListener("scroll",a),()=>{u&&u.removeEventListener("scroll",a)}},[o,a]),(0,Ut.useLayoutEffect)(()=>{if(e!==-1&&i.current>s.current&&o.current){let u=o.current.querySelector(`
13
- [data-idx='${e}'],
14
- [aria-posinset='${e+1}']
15
- `);u===null?console.log("[useViewportTracking], is this virtualised ? we're going to have to know rowHeight"):l(u)}},[e,o,l]),(0,Ut.useEffect)(()=>{},[t]);let c=(0,Ut.useCallback)(({height:u,scrollHeight:d})=>{s.current=u,i.current=d},[]);return uo(o,yL,c,!0),r};var ba=require("react");var wn=require("react");var Xw=({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)},Jw=o=>o.childNodes!==void 0;var Jp=o=>o.header===!0,xL=new Set([".","/"]),Yw=(o,e)=>e.startsWith(o.id)?xL.has(e.charAt(o.id.length)):!1,gs=(o,e)=>{for(let t of o){if(t.id===e)return t;if(Yw(t,e))return gs(t.childNodes,e)}},Yu=(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},Zu=(o,e,t)=>{let n;return o.map(s=>s.id===e?{...s,...t}:Yw(s,e)?(n=Zu(s.childNodes,e,t),{...s,childNodes:n}):s)};var sT=require("@salt-ds/core");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 Yp="ArrowUp",Zw="ArrowDown",ji="ArrowLeft";var eT="ArrowRight",ed="Enter";var vL="Delete",SL=new Set([ed,vL]),wL=new Set(["Tab"]),TL=new Set(["ArrowRight","ArrowLeft"]),tT=new Set(["Home","End","ArrowDown","ArrowUp"]),nT=new Set(["Home","End","ArrowRight","ArrowLeft"]),kL=new Set(["F1","F2","F3","F4","F5","F6","F7","F8","F9","F10","F11","F12"]),Vj=CL(SL,nT,tT,TL,kL,wL);var oT=({key:o},e="vertical")=>(e==="vertical"?tT:nT).has(o);function rT(o,e,t){return e===Yp||e===ji?t>0?t-1:t:t===null?0:t===o-1?t:t+1}var EL=o=>!o.header&&!o.childNodes,ML=o=>EL(o)||o.expanded!==void 0,iT=({defaultHighlightedIdx:o=-1,highlightedIdx:e,treeNodes:t,onHighlight:n,onKeyboardNavigation:r,selected:s=[]})=>{let{bwd:i,fwd:l}=(0,wn.useMemo)(()=>({bwd:Yp,fwd:Zw}),[]),[a,c,u]=(0,sT.useControlled)({controlled:e,default:o,name:"highlightedIdx"}),d=(0,wn.useCallback)(x=>{n==null||n(x),c(x)},[n,c]),f=(0,wn.useCallback)((x=l,C=x===l?-1:t.length)=>{let b=rT(t.length,x,C);for(;b!==-1&&(x===l&&b<t.length||x===i&&b>0)&&!ML(t[b]);)b=rT(t.length,x,b);return b},[i,l,t]),h=(0,wn.useRef)(!0),p=(0,wn.useRef)(!1),m=x=>p.current=x,g=(0,wn.useCallback)(()=>{if(p.current)p.current=!1;else if(s.length>0){let x=gs(t,s[0]);if(x){let C=Yu(t,x);d(C)}}else d(f())},[t,f,s,d]),y=(0,wn.useCallback)(x=>{let C=f(x.key,a);C!==a&&(d(C),r==null||r(x,C))},[a,f,r,d]),E=(0,wn.useCallback)(x=>{t.length>0&&oT(x,"vertical")&&(x.preventDefault(),x.stopPropagation(),h.current=!0,y(x))},[t,y]),v=(0,wn.useMemo)(()=>({onBlur:()=>{d(-1)},onFocus:g,onKeyDown:E,onMouseDownCapture:()=>{h.current=!1,m(!0)},onMouseMove:()=>{h.current&&(h.current=!1)},onMouseLeave:()=>{h.current=!0,m(!1),d(-1)}}),[g,E,d]);return{focusVisible:h.current?a:-1,controlledHighlighting:u,highlightedIdx:a,hiliteItemAtIndex:d,keyBoardNavigation:h,listProps:v,setIgnoreFocus:m}};var Xi=require("react");var td=(o,e=[],t={value:0})=>{let n=!1;for(let r of o)n&&!Jp(r)||(e[t.value]=r,t.value+=1,n=!1,Jp(r)&&r.expanded===!1?n=!0:Jw(r)&&Zp(r)&&td(r.childNodes,e,t));return e},lT=o=>{let e=(0,Xi.useRef)(o),t=(0,Xi.useRef)(o),n=(0,Xi.useRef)(td(o)),[,r]=(0,Xi.useState)({});o!==e.current&&(e.current=o,t.current=o,n.current=td(o));let s=i=>{t.current=i,n.current=td(i),r({})};return{data:t.current,indexPositions:n.current,setData:s}};var Oo=require("react");var PL={},DL=o=>o&&o.hasAttribute("aria-expanded"),aT=({collapsibleHeaders:o,highlightedIdx:e,treeNodes:t,setVisibleData:n,source:r})=>{let s=(0,Oo.useRef)(r),i=(0,Oo.useRef)(s.current),l=(0,Oo.useCallback)(p=>{n(i.current=p)},[n]),a=(0,Oo.useCallback)((p,{id:m})=>Zu(p,m,{expanded:!0}),[]),c=(0,Oo.useCallback)((p,{id:m})=>Zu(p,m,{expanded:!1}),[]),u=(0,Oo.useCallback)(p=>{if(p.key===eT||p.key===ed){let m=t[e];m&&m.expanded===!1&&(p.preventDefault(),l(a(i.current,m)))}if(p.key===ji||p.key===ed){let m=t[e];m&&m.expanded&&(p.preventDefault(),l(c(i.current,m)))}},[c,a,e,t,l]),d=o?{onKeyDown:u}:PL,h={onClick:(0,Oo.useCallback)(p=>{let m=Xp(p.target);if(DL(m)){p.stopPropagation(),p.preventDefault();let g=gs(r,m.id);(g==null?void 0:g.expanded)===!1?l(a(r,g)):(g==null?void 0:g.expanded)===!0&&l(c(r,g))}},[c,a,l,r])};return{listHandlers:d,listItemHandlers:h}};var cT=require("react");var uT=({highlightedIdx:o,hiliteItemAtIndex:e,indexPositions:t,source:n})=>({listHandlers:{onKeyDown:(0,cT.useCallback)(i=>{if(i.key===ji){let l=t[o],a=Xw(l);if(a){i.preventDefault();let c=gs(n,a);if(c){let u=Yu(t,c);u!==void 0&&e(u)}}}},[o,e,t,n])}});var IL=[],dT=({defaultSelected:o,sourceWithIds:e,onChange:t,onHighlight:n,selected:r,selection:s})=>{let i=(0,ba.useRef)(IL),l=lT(e),a=(v,x)=>{var C,b;(b=(C=f.listHandlers).onKeyboardNavigation)==null||b.call(C,v,x)},{highlightedIdx:c,...u}=iT({treeNodes:l.indexPositions,onHighlight:n,onKeyboardNavigation:a,selected:i.current}),d=aT({collapsibleHeaders:!0,highlightedIdx:c,treeNodes:l.indexPositions,setVisibleData:l.setData,source:l.data}),f=qw({defaultSelected:o,highlightedIdx:c,treeNodes:l.indexPositions,onChange:t,selected:r,selection:s}),h=uT({source:l.data,highlightedIdx:c,hiliteItemAtIndex:u.hiliteItemAtIndex,indexPositions:l.indexPositions}),p=(0,ba.useCallback)(v=>{var x,C,b;(x=d.listItemHandlers)==null||x.onClick(v),v.defaultPrevented||(b=(C=f.listItemHandlers)==null?void 0:C.onClick)==null||b.call(C,v)},[d,f]),m=(0,ba.useCallback)(v=>{var x,C,b,S,M,w,k,L;(C=(x=u.listProps).onKeyDown)==null||C.call(x,v),v.defaultPrevented||(S=(b=f.listHandlers).onKeyDown)==null||S.call(b,v),v.defaultPrevented||(w=(M=d.listHandlers).onKeyDown)==null||w.call(M,v),v.defaultPrevented||(L=(k=h.listHandlers).onKeyDown)==null||L.call(k,v)},[d.listHandlers,u.listProps,f.listHandlers,h.listHandlers]),g=()=>{var v;return c===void 0||c===-1||(v=l.indexPositions[c])==null?void 0:v.id};i.current=f.selected;let y={"aria-activedescendant":g(),onBlur:u.listProps.onBlur,onFocus:u.listProps.onFocus,onKeyDown:m,onMouseDownCapture:u.listProps.onMouseDownCapture,onMouseLeave:u.listProps.onMouseLeave,onMouseMove:u.listProps.onMouseMove},E={onClick:p};return{focusVisible:u.focusVisible,highlightedIdx:c,hiliteItemAtIndex:u.hiliteItemAtIndex,listProps:y,listItemHandlers:E,selected:f.selected,visibleData:l.data}};var rn=require("react/jsx-runtime"),hT=require("react"),fr="vuuTree",Zp=o=>o.expanded===!0,fT=({children:o,idx:e,...t})=>(0,rn.jsx)("li",{...t,children:o}),RL=(0,rd.forwardRef)(function({allowDragDrop:e,className:t,defaultSelected:n,groupSelection:r="none",id:s,onHighlight:i,onSelectionChange:l,revealSelected:a,selected:c,selection:u="single",source:d,...f},h){var A;let p=(0,od.useIdMemo)(s),m=(0,rd.useRef)(null),[,g,y]=Ww(d,p,{revealSelected:a?(A=c!=null?c:n)!=null?A:!1:void 0}),E=(D,I)=>{if(l){let F=I.map(N=>y(N)).filter(N=>N!==void 0);l(F)}},{focusVisible:v,highlightedIdx:x,hiliteItemAtIndex:C,listProps:b,listItemHandlers:S,selected:M,visibleData:w}=dT({defaultSelected:n,groupSelection:r,onChange:E,onHighlight:i,selected:c,selection:u,sourceWithIds:g});jw(m,x);let L={...{onMouseEnter:D=>{let I=D.target,F=Kw(I);C(F)}},...S,role:"treeitem"},T=Qw(r);function P(D,I,F){D.push((0,rn.jsxs)(fT,{...L,...AL(I,F,x,M,v),children:[I.icon?(0,rn.jsx)("span",{className:`${fr}Node-icon`,"data-icon":I.icon}):null,(0,rn.jsx)("span",{children:I.label})]})),F.value+=1}function R(D,I,F,N,V){let{value:K}=F;F.value+=1,D.push((0,hT.createElement)(fT,{...S,"aria-expanded":I.expanded,"aria-level":I.level,"aria-selected":M.includes(N)||void 0,className:(0,nd.default)(`${fr}Node`,{focusVisible:v===K,[`${fr}Node-toggle`]:!T}),"data-idx":K,"data-highlighted":K===x||void 0,"data-selectable":!0,id:N,key:`header-${K}`},T?(0,rn.jsxs)("div",{className:`${fr}Node-label`,children:[(0,rn.jsx)("span",{className:`${fr}Node-toggle`}),V]}):(0,rn.jsxs)("div",{className:`${fr}Node-label`,children:[I.icon?(0,rn.jsx)("span",{className:`${fr}Node-icon`,"data-icon":I.icon}):null,(0,rn.jsx)("span",{children:V})]}),(0,rn.jsx)("ul",{role:"group",children:Zp(I)?O(I.childNodes,F):""})))}function O(D,I={value:0}){if((D==null?void 0:D.length)>0){let F=[];for(let N of D)N.childNodes?R(F,N,I,N.id,N.label):P(F,N,I);return F}}return(0,rn.jsx)("ul",{...f,...b,className:(0,nd.default)(fr,t),id:`Tree-${p}`,ref:(0,od.useForkRef)(m,h),role:"tree",tabIndex:0,children:O(w)})}),AL=(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,nd.default)("vuuTreeNode",s,{focusVisible:r===e.value})});RL.displayName="Tree";var LL=require("@salt-ds/core"),OL=U(require("classnames")),NL=require("react"),HL=require("react/jsx-runtime");var id=require("@vuu-ui/vuu-utils");var Re=require("react/jsx-runtime"),sn="saveLayoutPanel",sd=`${sn}-formField`,FL=["Group 1","Group 2","Group 3","Group 4","Group 5"],BL=["Value 1","Value 2","Value 3"],pT=["Value 1","Value 2","Value 3"],VL=o=>{let{onCancel:e,onSave:t,componentId:n}=o,[r,s]=(0,hr.useState)(""),[i,l]=(0,hr.useState)(""),[a,c]=(0,hr.useState)([]),[u,d]=(0,hr.useState)(pT[0]),[f,h]=(0,hr.useState)();(0,hr.useEffect)(()=>{n&&(0,id.takeScreenshot)(document.getElementById(n)).then(m=>h(m))},[]);let p=()=>{t({name:r,group:i,screenshot:f!=null?f:"",user:"User",date:(0,id.formatDate)(new Date,"dd.mm.yyyy")})};return(0,Re.jsxs)("div",{className:`${sn}-panelContainer`,children:[(0,Re.jsxs)("div",{className:`${sn}-panelContent`,children:[(0,Re.jsxs)("div",{className:`${sn}-formContainer`,children:[(0,Re.jsxs)(yt.FormField,{className:sd,children:[(0,Re.jsx)(yt.FormFieldLabel,{children:"Group"}),(0,Re.jsx)(bl,{ListProps:{style:{zIndex:1e4,border:"1px solid #777C94",borderRadius:10,boxSizing:"border-box"}},source:FL,allowFreeText:!0,InputProps:{inputProps:{className:`${sn}-inputText`,placeholder:"Select Group or Enter New Name",onChange:m=>l(m.target.value)}},width:120,onSelectionChange:(m,g)=>l(g||"")})]}),(0,Re.jsxs)(yt.FormField,{className:sd,children:[(0,Re.jsx)(yt.FormFieldLabel,{children:"Layout Name"}),(0,Re.jsx)(yt.Input,{inputProps:{className:`${sn}-inputText`,placeholder:"Enter Layout Name"},onChange:m=>s(m.target.value),value:r})]}),(0,Re.jsxs)(yt.FormField,{className:sd,children:[(0,Re.jsx)(yt.FormFieldLabel,{children:"Some Layout Setting"}),(0,Re.jsx)("div",{className:`${sn}-settingsGroup`,children:BL.map((m,g)=>(0,Re.jsx)(Ty,{onToggle:()=>c(y=>y.includes(m)?y.filter(E=>E!==m):[...y,m]),checked:a.includes(m),label:m},g))})]}),(0,Re.jsxs)(yt.FormField,{className:sd,children:[(0,Re.jsx)(yt.FormFieldLabel,{children:"Some Layout Setting"}),(0,Re.jsx)("div",{className:`${sn}-settingsGroup`,children:pT.map((m,g)=>(0,Re.jsx)(ky,{onClick:()=>d(m),checked:u===m,label:m,groupName:"radioGroup"},g))})]})]}),(0,Re.jsx)("div",{className:`${sn}-screenshotContainer`,children:f?(0,Re.jsx)("img",{className:`${sn}-screenshot`,src:f,alt:"screenshot of current layout"}):(0,Re.jsx)(yt.Text,{className:"screenshot",children:"No screenshot available"})})]}),(0,Re.jsxs)("div",{className:`${sn}-buttonsContainer`,children:[(0,Re.jsx)(yt.Button,{className:`${sn}-cancelButton`,onClick:e,children:"Cancel"}),(0,Re.jsx)(yt.Button,{className:`${sn}-saveButton`,onClick:p,disabled:r===""||i==="",children:"Save"})]})]})};var $n=U(require("react"));var ZL=require("@vuu-ui/vuu-layout");var eO=require("@salt-ds/core"),tO=U(require("classnames"),1),nO=require("react");var mT=require("react");var em=require("react/jsx-runtime");var bT=require("@vuu-ui/vuu-utils");var tm=U(require("classnames"),1),ln=require("react");var ld=require("react/jsx-runtime"),gT="vuuExpandoCombobox",$L={},ya=(0,ln.forwardRef)(function({allowMultipleSelection:e=!1,className:t,InputProps:n=$L,ListProps:r,onInputChange:s,onSelectionChange:i,value:l="",...a},c){let[u,d]=(0,ln.useState)(l),{itemToString:f=bT.itemToString}=a,h=(0,ln.useRef)(l),p=(0,ln.useCallback)(C=>{let{value:b}=C.target;d(b),s==null||s(C)},[s]),[m,g]=(0,ln.useMemo)(()=>{let{inputProps:C,...b}=n;return[{...b,className:`${gT}-Input`,endAdornment:null,inputProps:{...C,autoComplete:"off",onInput:p}},{...r,className:(0,tm.default)("vuuMenuList",r==null?void 0:r.className),"data-mode":"light",displayedItemCount:10,itemHeight:22,maxWidth:300,minWidth:100,width:"auto"}]},[n,p,r]),y=(0,ln.useCallback)((C,b)=>{let S=b===null?"":f(b);d(S),i==null||i(C,b)},[f,i]),[E,v]=(0,ln.useState)([]),x=(0,ln.useCallback)((C,b)=>{v(b)},[]);return(0,ld.jsx)("div",{className:(0,tm.default)(gT,t),"data-text":u,ref:c,children:e?(0,ld.jsx)(bl,{...a,defaultValue:h.current,ListProps:g,InputProps:m,onSelectionChange:y}):(0,ld.jsx)(bl,{...a,defaultValue:h.current,ListProps:g,InputProps:m,onSelectionChange:y})})});var _L=U(require("classnames"),1),rm=require("react");var KL=require("@salt-ds/core");var zL=require("react/jsx-runtime");var bs=require("react");var ad=require("@vuu-ui/vuu-utils"),yT=require("react/jsx-runtime"),WL=(0,bs.forwardRef)(function({InputProps:e,className:t,column:n,onInputComplete:r,value:s},i){let[l,a]=(0,bs.useState)((0,ad.isValidNumber)(s)?s.toString():""),c=(0,bs.useCallback)(d=>{let{value:f}=d.target,h=parseFloat(f);(0,ad.isValidNumber)(h)&&console.log("its valid"),a(f)},[]),u=(0,bs.useCallback)(d=>{if(d.key==="Enter"){let{value:f}=d.target,h=parseFloat(f);(0,ad.isValidNumber)(h)&&r(h)}},[r]);return(0,yT.jsx)(pc,{...e,className:t,value:l,ref:i,onChange:c,onKeyDown:u})});var xT=require("@vuu-ui/vuu-utils");var Gt=require("react");var xa=require("react/jsx-runtime"),UL=(0,Gt.forwardRef)(function({InputProps:e={},className:t,column:n,filterClause:r,onInputComplete:s,operator:i,suggestionProvider:l=yc,table:a,value:c},u){let[d,f]=(0,Gt.useState)(c!=null?c:""),[h,p]=(0,Gt.useState)([]),m=l(),g=(0,Gt.useCallback)((x,C)=>{s(C!=null?C:"")},[s]);(0,Gt.useEffect)(()=>{},[n]),(0,Gt.useEffect)(()=>{if(a){let x=d?[a,n.name,d]:[a,n.name];m(x).then(C=>{p(C)}).catch(C=>{console.error("Error getting suggsetions",C)})}},[a,n,d,m]);let y=(0,Gt.useCallback)(x=>{let{value:C}=x.target;f(C)},[]),E=(0,Gt.useMemo)(()=>{if(i==="starts"||i==="ends"){let{inputProps:x,...C}=e;return{...C,inputProps:{...x,onKeyDown:b=>{var S;b.key==="Enter"&&d!==""?(b.stopPropagation(),b.preventDefault(),s(d)):(S=x==null?void 0:x.onKeyDown)==null||S.call(x,b)}}}}else return e},[e,s,i,d]);return(0,Gt.useCallback)(()=>{switch(i){case"in":return(0,xa.jsx)(ya,{InputProps:E,className:t,initialHighlightedIndex:0,source:h,onInputChange:y,onSelectionChange:g,ref:u,value:c});case"starts":return(0,xa.jsx)(ya,{InputProps:E,ListProps:{className:"vuuIllustrationsOnly",disabled:!0},allowFreeText:!0,className:t,initialHighlightedIndex:0,source:h,onInputChange:y,onSelectionChange:g,ref:u,value:c});case"ends":return(0,xa.jsx)(pc,{...E,className:t,value:d,ref:u,onChange:y});default:return(0,xa.jsx)(ya,{InputProps:E,className:t,initialHighlightedIndex:0,source:h,onInputChange:y,onSelectionChange:g,ref:u,value:c})}},[i,E,t,h,y,g,u,c,d])()});var nm=require("@vuu-ui/vuu-utils"),GL=require("@vuu-ui/vuu-data"),om=require("react");var CT=require("react/jsx-runtime");var vT=require("@vuu-ui/vuu-utils"),JL=U(require("classnames"),1),ST=require("react");var QL=require("react"),qL=U(require("classnames"),1);var jL=require("react/jsx-runtime");var No=require("@vuu-ui/vuu-utils");var wT=require("react/jsx-runtime");var TT=require("@vuu-ui/vuu-utils"),cd=require("react");var YL=require("react");var kT=require("react/jsx-runtime"),oO=require("react");var cO=require("@salt-ds/core");var aO=U(require("classnames"),1),sm=require("react");var PZ=no.define({name:"VuuFilterQuery",parser:Ml.configure({props:[os({Identifier:$.variableName,String:$.string,Or:$.emphasis,Operator:$.operator})]})});var rO=Hn.define([{tag:$.variableName,color:"var(--vuuFilterEditor-variableColor)"},{tag:$.comment,color:"green",fontStyle:"italic"}]),sO=ss(rO);var iO=ie.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 lO=require("react");var ET=require("react/jsx-runtime");var MT=require("react");var uO=require("@vuu-ui/vuu-utils");var im=o=>{let e=localStorage.getItem(o);return e?JSON.parse(e):void 0};var PT=(o,e)=>{try{return localStorage.setItem(o,JSON.stringify(e)),e}catch{return}};var DT=require("@vuu-ui/vuu-utils"),IT=require("react/jsx-runtime"),lm=$n.default.createContext({layouts:[],saveLayout:()=>{}}),dO=o=>{let[e,t]=(0,$n.useState)([]);(0,$n.useEffect)(()=>{let r=im("layouts");t(r||[])},[]),(0,$n.useEffect)(()=>{PT("layouts",e)},[e]);let n=(0,$n.useCallback)(r=>{let s=im("api/vui");s&&t(i=>[...i,{metadata:{...r,id:(0,DT.getUniqueId)()},json:s}])},[]);return(0,IT.jsx)(lm.Provider,{value:{layouts:e,saveLayout:n},children:o.children})},am=()=>(0,$n.useContext)(lm);var Pt=require("react/jsx-runtime"),ys="vuuLayoutList",cm=o=>{let{layouts:e}=am(),t=e.map(s=>s.metadata),n=s=>{console.log("loading layout with id",s),console.log("json:",e.find(i=>i.metadata.id===s))},r=t.reduce((s,i)=>s[i.group]?{...s,[i.group]:[...s[i.group],i]}:{...s,[i.group]:[i]},{});return(0,Pt.jsxs)("div",{className:ys,...o,children:[(0,Pt.jsx)("div",{className:`${ys}-header`,children:"My Layouts"}),(0,Pt.jsx)(go,{height:"fit-content",source:Object.entries(r),ListItem:({item:s})=>(0,Pt.jsxs)(Pt.Fragment,{children:[(0,Pt.jsx)("div",{className:`${ys}-groupName`,children:s==null?void 0:s[0]}),(0,Pt.jsx)(go,{height:"fit-content",source:s==null?void 0:s[1],ListItem:({item:i})=>(0,Pt.jsxs)("div",{className:`${ys}-layoutContainer`,onClick:()=>n(i==null?void 0:i.id),children:[(0,Pt.jsx)("img",{className:`${ys}-screenshot`,src:i==null?void 0:i.screenshot}),(0,Pt.jsxs)("div",{children:[(0,Pt.jsx)("div",{className:`${ys}-layoutName`,children:i==null?void 0:i.name}),(0,Pt.jsx)("div",{className:`${ys}-layoutDetails`,children:(0,Pt.jsx)("div",{children:`${i==null?void 0:i.user}, ${i==null?void 0:i.date}`})})]})]},i==null?void 0:i.id)})]})})]})};var RT=require("react"),Ye=require("react/jsx-runtime"),um=(0,RT.memo)(()=>(0,Ye.jsxs)("svg",{width:"44",height:"45",viewBox:"0 0 44 45",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[(0,Ye.jsxs)("g",{clipPath:"url(#clip0_217_6990)",children:[(0,Ye.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,Ye.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,Ye.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,Ye.jsxs)("g",{opacity:"0.86",children:[(0,Ye.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,Ye.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,Ye.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,Ye.jsxs)("defs",{children:[(0,Ye.jsxs)("linearGradient",{id:"paint0_linear_217_6990",x1:"24.6235",y1:"18.7363",x2:"42.3152",y2:"18.7363",gradientUnits:"userSpaceOnUse",children:[(0,Ye.jsx)("stop",{stopColor:"#4906A5"}),(0,Ye.jsx)("stop",{offset:"1",stopColor:"#D3423A"})]}),(0,Ye.jsxs)("linearGradient",{id:"paint1_linear_217_6990",x1:"-2.35794e-05",y1:"22.5009",x2:"42.7186",y2:"22.5009",gradientUnits:"userSpaceOnUse",children:[(0,Ye.jsx)("stop",{stopColor:"#7C06A5"}),(0,Ye.jsx)("stop",{offset:"1",stopColor:"#D3423A"})]}),(0,Ye.jsx)("clipPath",{id:"clip0_217_6990",children:(0,Ye.jsx)("rect",{width:"44",height:"45",fill:"white"})})]})]}));um.displayName="VuuLogo";var vs=require("@vuu-ui/vuu-layout");var pd=U(require("classnames"));var Cs=require("react");var ud=require("@vuu-ui/vuu-layout");var xs=require("react/jsx-runtime"),AT="vuuFeatureList",dd=({features:o,title:e="VUU TABLES",...t})=>{let n={};return console.log({features:o}),(0,xs.jsxs)("div",{...t,className:AT,children:[(0,xs.jsx)("div",{className:`${AT}-header`,children:e}),(0,xs.jsx)(ud.Palette,{orientation:"vertical",ViewProps:n,children:o.map((r,s)=>(0,xs.jsx)(ud.PaletteItem,{closeable:!0,label:r.title,resizeable:!0,resize:"defer",header:!0,children:(0,xs.jsx)(rl,{...r})},s))})]})};var Ho=require("react"),LT=U(require("classnames")),FT=require("react/jsx-runtime"),OT="medium",NT="salt-theme",HT="light",fd=(0,Ho.createContext)({density:"high",theme:"vuu",themeMode:"light"}),fO=["vuu","vuu-density-high","light"],Ft=()=>{let o=(0,Ho.useContext)(fd);return o?[`${o.theme}-theme`,`${o.theme}-density-${o.density}`,o.themeMode]:fO},hO=(o,e,t,n)=>{var r;return(0,Ho.isValidElement)(o)?(0,Ho.cloneElement)(o,{className:(0,LT.default)((r=o.props)==null?void 0:r.className,`${e}-theme`,`${e}-density-${n}`),"data-mode":t}):(console.warn(`
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
+ ConnectionStatusIcon: () => ConnectionStatusIcon,
34
+ ContextPanel: () => ContextPanel,
35
+ DEFAULT_DENSITY: () => DEFAULT_DENSITY2,
36
+ DEFAULT_THEME: () => DEFAULT_THEME,
37
+ DEFAULT_THEME_MODE: () => DEFAULT_THEME_MODE,
38
+ DensitySwitch: () => DensitySwitch,
39
+ Feature: () => Feature,
40
+ FeatureList: () => FeatureList,
41
+ LayoutManagementContext: () => LayoutManagementContext,
42
+ LayoutManagementProvider: () => LayoutManagementProvider,
43
+ LayoutsList: () => LayoutsList,
44
+ LeftNav: () => LeftNav,
45
+ LoginPanel: () => LoginPanel,
46
+ SaveLayoutPanel: () => SaveLayoutPanel,
47
+ SessionEditingForm: () => SessionEditingForm,
48
+ Shell: () => Shell,
49
+ ShellContextProvider: () => ShellContextProvider,
50
+ ThemeContext: () => ThemeContext,
51
+ ThemeProvider: () => ThemeProvider,
52
+ ThemeSwitch: () => ThemeSwitch,
53
+ getAuthDetailsFromCookies: () => getAuthDetailsFromCookies,
54
+ getAuthModeFromCookies: () => getAuthModeFromCookies,
55
+ logout: () => logout,
56
+ redirectToLogin: () => redirectToLogin,
57
+ useLayoutConfig: () => useLayoutConfig,
58
+ useLayoutManager: () => useLayoutManager,
59
+ useShellContext: () => useShellContext,
60
+ useShellLayout: () => useShellLayout,
61
+ useThemeAttributes: () => useThemeAttributes
62
+ });
63
+ module.exports = __toCommonJS(src_exports);
64
+
65
+ // src/connection-status/ConnectionStatusIcon.tsx
66
+ var import_react = __toESM(require("react"));
67
+ var import_classnames = __toESM(require("classnames"));
68
+ var import_jsx_runtime = require("react/jsx-runtime");
69
+ var ConnectionStatusIcon = ({ connectionStatus, className, element = "span", ...props }) => {
70
+ const [classBase11, setClassBase] = (0, import_react.useState)("vuuConnectingStatus");
71
+ (0, import_react.useEffect)(() => {
72
+ switch (connectionStatus) {
73
+ case "connected":
74
+ case "reconnected":
75
+ setClassBase("vuuActiveStatus");
76
+ break;
77
+ case "connecting":
78
+ setClassBase("vuuConnectingStatus");
79
+ break;
80
+ case "disconnected":
81
+ setClassBase("vuuDisconnectedStatus");
82
+ break;
83
+ default:
84
+ break;
85
+ }
86
+ }, [connectionStatus]);
87
+ const statusIcon = import_react.default.createElement(
88
+ element,
89
+ {
90
+ ...props,
91
+ className: (0, import_classnames.default)("vuuStatus vuuIcon", classBase11, className)
92
+ }
93
+ );
94
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_jsx_runtime.Fragment, { children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "vuuStatus-container salt-theme", children: [
95
+ statusIcon,
96
+ /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "vuuStatus-text", children: [
97
+ "Status: ",
98
+ connectionStatus.toUpperCase()
99
+ ] })
100
+ ] }) });
101
+ };
102
+
103
+ // src/density-switch/DensitySwitch.tsx
104
+ var import_lab = require("@salt-ds/lab");
105
+ var import_react2 = require("react");
106
+ var import_classnames2 = __toESM(require("classnames"));
107
+ var import_jsx_runtime2 = require("react/jsx-runtime");
108
+ var classBase = "vuuDensitySwitch";
109
+ var densities = ["high", "medium", "low", "touch"];
110
+ var DEFAULT_DENSITY = "high";
111
+ var DensitySwitch = ({
112
+ className: classNameProp,
113
+ defaultDensity = DEFAULT_DENSITY,
114
+ onChange
115
+ }) => {
116
+ const handleSelectionChange = (0, import_react2.useCallback)(
117
+ (_event, selectedItem) => {
118
+ onChange(selectedItem);
119
+ },
120
+ [onChange]
121
+ );
122
+ const className = (0, import_classnames2.default)(classBase, classNameProp);
123
+ return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
124
+ import_lab.Dropdown,
125
+ {
126
+ className,
127
+ source: densities,
128
+ defaultSelected: defaultDensity,
129
+ onSelectionChange: handleSelectionChange
130
+ }
131
+ );
132
+ };
133
+
134
+ // src/feature/Feature.tsx
135
+ var import_react4 = __toESM(require("react"));
136
+ var import_vuu_layout = require("@vuu-ui/vuu-layout");
137
+
138
+ // src/feature/FeatureErrorBoundary.tsx
139
+ var import_react3 = __toESM(require("react"));
140
+ var import_jsx_runtime3 = require("react/jsx-runtime");
141
+ var FeatureErrorBoundary = class extends import_react3.default.Component {
142
+ constructor(props) {
143
+ super(props);
144
+ this.state = { errorMessage: null };
145
+ }
146
+ static getDerivedStateFromError(error2) {
147
+ return { errorMessage: error2.message };
148
+ }
149
+ componentDidCatch(error2, errorInfo) {
150
+ console.log(`error creating component at ${this.props.url}`);
151
+ console.log(error2, errorInfo);
152
+ }
153
+ render() {
154
+ if (this.state.errorMessage) {
155
+ return /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)(import_jsx_runtime3.Fragment, { children: [
156
+ /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("h1", { children: "An error occured while creating component." }),
157
+ /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("p", { children: this.state.errorMessage })
158
+ ] });
159
+ }
160
+ return this.props.children;
161
+ }
162
+ };
163
+
164
+ // src/feature/Loader.tsx
165
+ var import_jsx_runtime4 = require("react/jsx-runtime");
166
+ var Loader = () => /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("div", { className: "hwLoader", children: "loading" });
167
+
168
+ // src/feature/css-module-loader.ts
169
+ var importCSS = async (path) => {
170
+ const container = new CSSStyleSheet();
171
+ return fetch(path).then((x) => x.text()).then((x) => container.replace(x));
172
+ };
173
+
174
+ // src/feature/Feature.tsx
175
+ var import_jsx_runtime5 = require("react/jsx-runtime");
176
+ var componentsMap = /* @__PURE__ */ new Map();
177
+ var useCachedFeature = (url) => {
178
+ (0, import_react4.useEffect)(
179
+ () => () => {
180
+ componentsMap.delete(url);
181
+ },
182
+ [url]
183
+ );
184
+ if (!componentsMap.has(url)) {
185
+ componentsMap.set(
186
+ url,
187
+ import_react4.default.lazy(() => import(
188
+ /* @vite-ignore */
189
+ url
190
+ ))
191
+ );
192
+ }
193
+ const lazyFeature = componentsMap.get(url);
194
+ if (!lazyFeature) {
195
+ throw Error(`Unable to load Lazy Feature at url ${url}`);
196
+ } else {
197
+ return lazyFeature;
198
+ }
199
+ };
200
+ function RawFeature({
201
+ url,
202
+ css,
203
+ ComponentProps: params,
204
+ ...props
205
+ }) {
206
+ if (css) {
207
+ importCSS(css).then((styleSheet) => {
208
+ document.adoptedStyleSheets = [
209
+ ...document.adoptedStyleSheets,
210
+ styleSheet
211
+ ];
212
+ });
213
+ }
214
+ const LazyFeature = useCachedFeature(url);
215
+ return /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(FeatureErrorBoundary, { url, children: /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(import_react4.Suspense, { fallback: /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(Loader, {}), children: /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(LazyFeature, { ...props, ...params }) }) });
216
+ }
217
+ var Feature = import_react4.default.memo(RawFeature);
218
+ Feature.displayName = "Feature";
219
+ (0, import_vuu_layout.registerComponent)("Feature", Feature, "view");
220
+
221
+ // src/layout-config/use-layout-config.ts
222
+ var import_react5 = require("react");
223
+
224
+ // src/layout-config/local-config.ts
225
+ var import_vuu_layout2 = require("@vuu-ui/vuu-layout");
226
+ var loadLocalConfig = (saveUrl, user, id = "latest") => new Promise((resolve, reject) => {
227
+ console.log(
228
+ `load local config at ${saveUrl} for user ${user == null ? void 0 : user.username}, id ${id}`
229
+ );
230
+ const data = localStorage.getItem(saveUrl);
231
+ if (data) {
232
+ const layout = JSON.parse(data);
233
+ resolve(layout);
234
+ } else {
235
+ reject();
236
+ }
237
+ });
238
+ var saveLocalConfig = (saveUrl, user, data) => new Promise((resolve, reject) => {
239
+ try {
240
+ const layoutJson = (0, import_vuu_layout2.resolveJSONPath)(data, "#main-tabs.ACTIVE_CHILD");
241
+ console.log(layoutJson);
242
+ localStorage.setItem(saveUrl, JSON.stringify(data));
243
+ resolve(void 0);
244
+ } catch {
245
+ reject();
246
+ }
247
+ });
248
+
249
+ // src/layout-config/remote-config.ts
250
+ var loadRemoteConfig = (saveUrl, user, id = "latest") => new Promise((resolve, reject) => {
251
+ if (user === void 0) {
252
+ throw Error("user mustb be provided to load remote config");
253
+ }
254
+ fetch(`${saveUrl}/${user.username}/${id}`, {}).then((response) => {
255
+ if (response.ok) {
256
+ resolve(response.json());
257
+ } else {
258
+ reject(void 0);
259
+ }
260
+ }).catch(() => {
261
+ reject(void 0);
262
+ });
263
+ });
264
+ var saveRemoteConfig = (saveUrl, user, data) => new Promise((resolve, reject) => {
265
+ if (user === void 0) {
266
+ throw Error("user mustb be provided to load remote config");
267
+ }
268
+ fetch(`${saveUrl}/${user.username}`, {
269
+ method: "POST",
270
+ headers: {
271
+ "Content-Type": "application/json"
272
+ },
273
+ body: JSON.stringify(data)
274
+ }).then((response) => {
275
+ if (response.ok) {
276
+ resolve(void 0);
277
+ } else {
278
+ reject();
279
+ }
280
+ });
281
+ });
282
+
283
+ // src/layout-config/use-layout-config.ts
284
+ var FALLBACK_LAYOUT = { type: "Placeholder" };
285
+ var useLayoutConfig = ({
286
+ saveLocation,
287
+ saveUrl = "api/vui",
288
+ user,
289
+ // TODO this should be an error panel
290
+ defaultLayout = FALLBACK_LAYOUT
291
+ }) => {
292
+ const [layout, _setLayout] = (0, import_react5.useState)(defaultLayout);
293
+ const usingRemote = saveLocation === "remote";
294
+ const loadConfig = usingRemote ? loadRemoteConfig : loadLocalConfig;
295
+ const saveConfig = usingRemote ? saveRemoteConfig : saveLocalConfig;
296
+ const load = (0, import_react5.useCallback)(
297
+ async (id = "latest") => {
298
+ try {
299
+ const layout2 = await loadConfig(saveUrl, user, id);
300
+ _setLayout(layout2);
301
+ } catch {
302
+ _setLayout(defaultLayout);
303
+ }
304
+ },
305
+ [defaultLayout, loadConfig, saveUrl, user]
306
+ );
307
+ (0, import_react5.useEffect)(() => {
308
+ load();
309
+ }, [load]);
310
+ const saveData = (0, import_react5.useCallback)(
311
+ (data) => {
312
+ saveConfig(saveUrl, user, data);
313
+ },
314
+ [saveConfig, saveUrl, user]
315
+ );
316
+ const loadLayoutById = (0, import_react5.useCallback)((id) => load(id), [load]);
317
+ return [layout, saveData, loadLayoutById];
318
+ };
319
+
320
+ // src/layout-management/SaveLayoutPanel.tsx
321
+ var import_react6 = require("react");
322
+ var import_core = require("@salt-ds/core");
323
+ var import_vuu_ui_controls = require("@vuu-ui/vuu-ui-controls");
324
+ var import_vuu_utils = require("@vuu-ui/vuu-utils");
325
+ var import_jsx_runtime6 = require("react/jsx-runtime");
326
+ var classBase2 = "saveLayoutPanel";
327
+ var formField = `${classBase2}-formField`;
328
+ var groups = ["Group 1", "Group 2", "Group 3", "Group 4", "Group 5"];
329
+ var checkboxValues = ["Value 1", "Value 2", "Value 3"];
330
+ var radioValues = ["Value 1", "Value 2", "Value 3"];
331
+ var SaveLayoutPanel = (props) => {
332
+ const { onCancel, onSave, componentId } = props;
333
+ const [layoutName, setLayoutName] = (0, import_react6.useState)("");
334
+ const [group, setGroup] = (0, import_react6.useState)("");
335
+ const [checkValues, setCheckValues] = (0, import_react6.useState)([]);
336
+ const [radioValue, setRadioValue] = (0, import_react6.useState)(radioValues[0]);
337
+ const [screenshot, setScreenshot] = (0, import_react6.useState)();
338
+ (0, import_react6.useEffect)(() => {
339
+ if (componentId) {
340
+ (0, import_vuu_utils.takeScreenshot)(document.getElementById(componentId)).then(
341
+ (screenshot2) => setScreenshot(screenshot2)
342
+ );
343
+ }
344
+ }, []);
345
+ const handleSubmit = () => {
346
+ onSave({
347
+ name: layoutName,
348
+ group,
349
+ screenshot: screenshot != null ? screenshot : "",
350
+ user: "User",
351
+ date: (0, import_vuu_utils.formatDate)(/* @__PURE__ */ new Date(), "dd.mm.yyyy")
352
+ });
353
+ };
354
+ return /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)("div", { className: `${classBase2}-panelContainer`, children: [
355
+ /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)("div", { className: `${classBase2}-panelContent`, children: [
356
+ /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)("div", { className: `${classBase2}-formContainer`, children: [
357
+ /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)(import_core.FormField, { className: formField, children: [
358
+ /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(import_core.FormFieldLabel, { children: "Group" }),
359
+ /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
360
+ import_vuu_ui_controls.ComboBox,
361
+ {
362
+ ListProps: {
363
+ style: {
364
+ zIndex: 1e4,
365
+ border: "1px solid #777C94",
366
+ borderRadius: 10,
367
+ boxSizing: "border-box"
368
+ }
369
+ },
370
+ source: groups,
371
+ allowFreeText: true,
372
+ InputProps: {
373
+ inputProps: {
374
+ className: `${classBase2}-inputText`,
375
+ placeholder: "Select Group or Enter New Name",
376
+ onChange: (event) => setGroup(event.target.value)
377
+ }
378
+ },
379
+ width: 120,
380
+ onSelectionChange: (_, value) => setGroup(value || "")
381
+ }
382
+ )
383
+ ] }),
384
+ /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)(import_core.FormField, { className: formField, children: [
385
+ /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(import_core.FormFieldLabel, { children: "Layout Name" }),
386
+ /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
387
+ import_core.Input,
388
+ {
389
+ inputProps: {
390
+ className: `${classBase2}-inputText`,
391
+ placeholder: "Enter Layout Name"
392
+ },
393
+ onChange: (event) => setLayoutName(event.target.value),
394
+ value: layoutName
395
+ }
396
+ )
397
+ ] }),
398
+ /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)(import_core.FormField, { className: formField, children: [
399
+ /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(import_core.FormFieldLabel, { children: "Some Layout Setting" }),
400
+ /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("div", { className: `${classBase2}-settingsGroup`, children: checkboxValues.map((value, i) => /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
401
+ import_vuu_ui_controls.Checkbox,
402
+ {
403
+ onToggle: () => setCheckValues(
404
+ (prev) => prev.includes(value) ? prev.filter((entry) => entry !== value) : [...prev, value]
405
+ ),
406
+ checked: checkValues.includes(value),
407
+ label: value
408
+ },
409
+ i
410
+ )) })
411
+ ] }),
412
+ /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)(import_core.FormField, { className: formField, children: [
413
+ /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(import_core.FormFieldLabel, { children: "Some Layout Setting" }),
414
+ /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("div", { className: `${classBase2}-settingsGroup`, children: radioValues.map((value, i) => /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
415
+ import_vuu_ui_controls.RadioButton,
416
+ {
417
+ onClick: () => setRadioValue(value),
418
+ checked: radioValue === value,
419
+ label: value,
420
+ groupName: "radioGroup"
421
+ },
422
+ i
423
+ )) })
424
+ ] })
425
+ ] }),
426
+ /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("div", { className: `${classBase2}-screenshotContainer`, children: screenshot ? /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
427
+ "img",
428
+ {
429
+ className: `${classBase2}-screenshot`,
430
+ src: screenshot,
431
+ alt: "screenshot of current layout"
432
+ }
433
+ ) : /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(import_core.Text, { className: "screenshot", children: "No screenshot available" }) })
434
+ ] }),
435
+ /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)("div", { className: `${classBase2}-buttonsContainer`, children: [
436
+ /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(import_core.Button, { className: `${classBase2}-cancelButton`, onClick: onCancel, children: "Cancel" }),
437
+ /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
438
+ import_core.Button,
439
+ {
440
+ className: `${classBase2}-saveButton`,
441
+ onClick: handleSubmit,
442
+ disabled: layoutName === "" || group === "",
443
+ children: "Save"
444
+ }
445
+ )
446
+ ] })
447
+ ] });
448
+ };
449
+
450
+ // src/layout-management/LayoutList.tsx
451
+ var import_vuu_ui_controls2 = require("@vuu-ui/vuu-ui-controls");
452
+
453
+ // src/layout-management/useLayoutManager.tsx
454
+ var import_react7 = __toESM(require("react"));
455
+ var import_vuu_filters = require("@vuu-ui/vuu-filters");
456
+ var import_vuu_utils2 = require("@vuu-ui/vuu-utils");
457
+ var import_jsx_runtime7 = require("react/jsx-runtime");
458
+ var LayoutManagementContext = import_react7.default.createContext({ layouts: [], saveLayout: () => {
459
+ } });
460
+ var LayoutManagementProvider = (props) => {
461
+ const [layouts, setLayouts] = (0, import_react7.useState)([]);
462
+ (0, import_react7.useEffect)(() => {
463
+ const layouts2 = (0, import_vuu_filters.getLocalEntity)("layouts");
464
+ setLayouts(layouts2 || []);
465
+ }, []);
466
+ (0, import_react7.useEffect)(() => {
467
+ (0, import_vuu_filters.saveLocalEntity)("layouts", layouts);
468
+ }, [layouts]);
469
+ const saveLayout = (0, import_react7.useCallback)((metadata) => {
470
+ const json = (0, import_vuu_filters.getLocalEntity)("api/vui");
471
+ if (json) {
472
+ setLayouts((prev) => [
473
+ ...prev,
474
+ {
475
+ metadata: {
476
+ ...metadata,
477
+ id: (0, import_vuu_utils2.getUniqueId)()
478
+ },
479
+ json
480
+ }
481
+ ]);
482
+ }
483
+ }, []);
484
+ return /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(LayoutManagementContext.Provider, { value: { layouts, saveLayout }, children: props.children });
485
+ };
486
+ var useLayoutManager = () => (0, import_react7.useContext)(LayoutManagementContext);
487
+
488
+ // src/layout-management/LayoutList.tsx
489
+ var import_jsx_runtime8 = require("react/jsx-runtime");
490
+ var classBase3 = "vuuLayoutList";
491
+ var LayoutsList = (props) => {
492
+ const { layouts } = useLayoutManager();
493
+ const layoutMetadata = layouts.map((layout) => layout.metadata);
494
+ const handleLoadLayout = (layoutId) => {
495
+ console.log("loading layout with id", layoutId);
496
+ console.log(
497
+ "json:",
498
+ layouts.find((layout) => layout.metadata.id === layoutId)
499
+ );
500
+ };
501
+ const layoutsByGroup = layoutMetadata.reduce((acc, cur) => {
502
+ if (acc[cur.group]) {
503
+ return {
504
+ ...acc,
505
+ [cur.group]: [...acc[cur.group], cur]
506
+ };
507
+ }
508
+ return {
509
+ ...acc,
510
+ [cur.group]: [cur]
511
+ };
512
+ }, {});
513
+ return /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)("div", { className: classBase3, ...props, children: [
514
+ /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("div", { className: `${classBase3}-header`, children: "My Layouts" }),
515
+ /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
516
+ import_vuu_ui_controls2.List,
517
+ {
518
+ height: "fit-content",
519
+ source: Object.entries(layoutsByGroup),
520
+ ListItem: ({ item }) => /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)(import_jsx_runtime8.Fragment, { children: [
521
+ /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("div", { className: `${classBase3}-groupName`, children: item == null ? void 0 : item[0] }),
522
+ /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
523
+ import_vuu_ui_controls2.List,
524
+ {
525
+ height: "fit-content",
526
+ source: item == null ? void 0 : item[1],
527
+ ListItem: ({ item: layout }) => /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)(
528
+ "div",
529
+ {
530
+ className: `${classBase3}-layoutContainer`,
531
+ onClick: () => handleLoadLayout(layout == null ? void 0 : layout.id),
532
+ children: [
533
+ /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
534
+ "img",
535
+ {
536
+ className: `${classBase3}-screenshot`,
537
+ src: layout == null ? void 0 : layout.screenshot
538
+ }
539
+ ),
540
+ /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)("div", { children: [
541
+ /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("div", { className: `${classBase3}-layoutName`, children: layout == null ? void 0 : layout.name }),
542
+ /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("div", { className: `${classBase3}-layoutDetails`, children: /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("div", { children: `${layout == null ? void 0 : layout.user}, ${layout == null ? void 0 : layout.date}` }) })
543
+ ] })
544
+ ]
545
+ },
546
+ layout == null ? void 0 : layout.id
547
+ )
548
+ }
549
+ )
550
+ ] })
551
+ }
552
+ )
553
+ ] });
554
+ };
555
+
556
+ // ../vuu-icons/src/VuuLogo.tsx
557
+ var import_react8 = require("react");
558
+ var import_jsx_runtime9 = require("react/jsx-runtime");
559
+ var VuuLogo = (0, import_react8.memo)(() => {
560
+ return /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)(
561
+ "svg",
562
+ {
563
+ width: "44",
564
+ height: "45",
565
+ viewBox: "0 0 44 45",
566
+ fill: "none",
567
+ xmlns: "http://www.w3.org/2000/svg",
568
+ children: [
569
+ /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)("g", { clipPath: "url(#clip0_217_6990)", children: [
570
+ /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
571
+ "path",
572
+ {
573
+ d: "M39.8642 15.5509L35.9196 7.58974L34.3369 6.85464L24.6235 22.0825L39.1628 30.618L42.3152 25.6347L39.8642 15.5509Z",
574
+ fill: "url(#paint0_linear_217_6990)"
575
+ }
576
+ ),
577
+ /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
578
+ "path",
579
+ {
580
+ 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",
581
+ fill: "url(#paint1_linear_217_6990)"
582
+ }
583
+ ),
584
+ /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
585
+ "path",
586
+ {
587
+ 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",
588
+ fill: "#F37880"
589
+ }
590
+ ),
591
+ /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)("g", { opacity: "0.86", children: [
592
+ /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
593
+ "path",
594
+ {
595
+ 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",
596
+ fill: "white"
597
+ }
598
+ ),
599
+ /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
600
+ "path",
601
+ {
602
+ 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",
603
+ fill: "white"
604
+ }
605
+ ),
606
+ /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
607
+ "path",
608
+ {
609
+ 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",
610
+ fill: "white"
611
+ }
612
+ )
613
+ ] })
614
+ ] }),
615
+ /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)("defs", { children: [
616
+ /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)(
617
+ "linearGradient",
618
+ {
619
+ id: "paint0_linear_217_6990",
620
+ x1: "24.6235",
621
+ y1: "18.7363",
622
+ x2: "42.3152",
623
+ y2: "18.7363",
624
+ gradientUnits: "userSpaceOnUse",
625
+ children: [
626
+ /* @__PURE__ */ (0, import_jsx_runtime9.jsx)("stop", { stopColor: "#4906A5" }),
627
+ /* @__PURE__ */ (0, import_jsx_runtime9.jsx)("stop", { offset: "1", stopColor: "#D3423A" })
628
+ ]
629
+ }
630
+ ),
631
+ /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)(
632
+ "linearGradient",
633
+ {
634
+ id: "paint1_linear_217_6990",
635
+ x1: "-2.35794e-05",
636
+ y1: "22.5009",
637
+ x2: "42.7186",
638
+ y2: "22.5009",
639
+ gradientUnits: "userSpaceOnUse",
640
+ children: [
641
+ /* @__PURE__ */ (0, import_jsx_runtime9.jsx)("stop", { stopColor: "#7C06A5" }),
642
+ /* @__PURE__ */ (0, import_jsx_runtime9.jsx)("stop", { offset: "1", stopColor: "#D3423A" })
643
+ ]
644
+ }
645
+ ),
646
+ /* @__PURE__ */ (0, import_jsx_runtime9.jsx)("clipPath", { id: "clip0_217_6990", children: /* @__PURE__ */ (0, import_jsx_runtime9.jsx)("rect", { width: "44", height: "45", fill: "white" }) })
647
+ ] })
648
+ ]
649
+ }
650
+ );
651
+ });
652
+ VuuLogo.displayName = "VuuLogo";
653
+
654
+ // src/left-nav/LeftNav.tsx
655
+ var import_vuu_layout4 = require("@vuu-ui/vuu-layout");
656
+ var import_vuu_ui_controls3 = require("@vuu-ui/vuu-ui-controls");
657
+ var import_classnames4 = __toESM(require("classnames"));
658
+ var import_react10 = require("react");
659
+
660
+ // src/feature-list/FeatureList.tsx
661
+ var import_vuu_layout3 = require("@vuu-ui/vuu-layout");
662
+ var import_jsx_runtime10 = require("react/jsx-runtime");
663
+ var classBase4 = "vuuFeatureList";
664
+ var FeatureList = ({
665
+ features,
666
+ title = "VUU TABLES",
667
+ ...htmlAttributes
668
+ }) => {
669
+ const ViewProps = {};
670
+ console.log({ features });
671
+ return /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)("div", { ...htmlAttributes, className: classBase4, children: [
672
+ /* @__PURE__ */ (0, import_jsx_runtime10.jsx)("div", { className: `${classBase4}-header`, children: title }),
673
+ /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(import_vuu_layout3.Palette, { orientation: "vertical", ViewProps, children: features.map((featureProps, i) => /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
674
+ import_vuu_layout3.PaletteItem,
675
+ {
676
+ closeable: true,
677
+ label: featureProps.title,
678
+ resizeable: true,
679
+ resize: "defer",
680
+ header: true,
681
+ children: /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(Feature, { ...featureProps })
682
+ },
683
+ i
684
+ )) })
685
+ ] });
686
+ };
687
+
688
+ // src/theme-provider/ThemeProvider.tsx
689
+ var import_react9 = require("react");
690
+ var import_classnames3 = __toESM(require("classnames"));
691
+ var import_jsx_runtime11 = require("react/jsx-runtime");
692
+ var DEFAULT_DENSITY2 = "medium";
693
+ var DEFAULT_THEME = "salt-theme";
694
+ var DEFAULT_THEME_MODE = "light";
695
+ var ThemeContext = (0, import_react9.createContext)({
696
+ density: "high",
697
+ theme: "vuu",
698
+ themeMode: "light"
699
+ });
700
+ var DEFAULT_THEME_ATTRIBUTES = [
701
+ "vuu",
702
+ "vuu-density-high",
703
+ "light"
704
+ ];
705
+ var useThemeAttributes = () => {
706
+ const context = (0, import_react9.useContext)(ThemeContext);
707
+ if (context) {
708
+ return [
709
+ `${context.theme}-theme`,
710
+ `${context.theme}-density-${context.density}`,
711
+ context.themeMode
712
+ ];
713
+ }
714
+ return DEFAULT_THEME_ATTRIBUTES;
715
+ };
716
+ var createThemedChildren = (children, theme, themeMode, density) => {
717
+ var _a;
718
+ if ((0, import_react9.isValidElement)(children)) {
719
+ return (0, import_react9.cloneElement)(children, {
720
+ className: (0, import_classnames3.default)(
721
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
722
+ (_a = children.props) == null ? void 0 : _a.className,
723
+ `${theme}-theme`,
724
+ `${theme}-density-${density}`
725
+ ),
726
+ // eslint-disable-next-line @typescript-eslint/ban-ts-comment
727
+ // @ts-expect-error
728
+ "data-mode": themeMode
729
+ });
730
+ } else {
731
+ console.warn(
732
+ `
16
733
  ThemeProvider can only apply CSS classes for theming to a single nested child element of the ThemeProvider.
17
- Wrap elements with a single container`),o)},hd=({applyThemeClasses:o=!1,children:e,theme:t,themeMode:n,density:r})=>{var f,h,p;let{density:s,themeMode:i,theme:l}=(0,Ho.useContext)(fd),a=(f=r!=null?r:s)!=null?f:OT,c=(h=n!=null?n:i)!=null?h:HT,u=(p=t!=null?t:l)!=null?p:NT,d=o?hO(e,u,c,a):e;return(0,FT.jsx)(fd.Provider,{value:{themeMode:c,density:a,theme:u},children:d})};hd.displayName="ThemeProvider";var Qe=require("react/jsx-runtime"),Ji="vuuLeftNav",pO=({"data-path":o,features:e,onResize:t,sizeCollapsed:n=80,sizeContent:r=240,sizeExpanded:s=240,style:i,tableFeatures:l,...a})=>{let c=(0,vs.useLayoutProviderDispatch)(),[u,d]=(0,Cs.useState)({activeTabIndex:0,navStatus:"menu-full"}),[f]=Ft(),h=(0,Cs.useCallback)(v=>{switch(v){case"menu-icons":return s;case"menu-full":return n;case"menu-full-content":return n+r;case"menu-icons-content":return s+r}},[n,r,s]),p=v=>{switch(v){case"menu-icons":return"menu-full";case"menu-full":return"menu-icons";case"menu-full-content":return"menu-icons-content";case"menu-icons-content":return"menu-full-content"}},m=(0,Cs.useCallback)((v,x)=>{if(x===0){let C=v==="menu-full-content"?"menu-full":v==="menu-icons-content"?"menu-icons":v;return C==="menu-icons"?[n,C]:[s,C]}else{let C=v==="menu-full"?"menu-full-content":v==="menu-icons"?"menu-icons-content":v;return C==="menu-icons-content"?[n+r,C]:[s+r,C]}},[n,r,s]),g=(0,Cs.useCallback)(v=>{let[x,C]=m(u.navStatus,v);d({activeTabIndex:v,navStatus:C}),c({type:vs.Action.LAYOUT_RESIZE,path:o,size:x})},[c,m,u,o]),y=(0,Cs.useCallback)(()=>{let{activeTabIndex:v,navStatus:x}=u;d({activeTabIndex:v,navStatus:p(x)}),c({type:vs.Action.LAYOUT_RESIZE,path:o,size:h(x)})},[c,u,o,h]),E={...i,"--nav-menu-collapsed-width":`${n}px`,"--nav-menu-expanded-width":`${s}px`};return(0,Qe.jsxs)("div",{...a,className:(0,pd.default)(Ji,`${Ji}-${u.navStatus}`),style:E,children:[(0,Qe.jsxs)("div",{className:(0,pd.default)(`${Ji}-menu-primary`,f),"data-mode":"dark",children:[(0,Qe.jsx)("div",{className:"vuuLeftNav-logo",children:(0,Qe.jsx)(um,{})}),(0,Qe.jsx)("div",{className:`${Ji}-main`,children:(0,Qe.jsxs)(Aw,{activeTabIndex:u.activeTabIndex,animateSelectionThumb:!1,className:`${Ji}-Tabstrip`,onActiveChange:g,orientation:"vertical",children:[(0,Qe.jsx)(Qi,{"data-icon":"demo",label:"DEMO"}),(0,Qe.jsx)(Qi,{"data-icon":"features",label:"VUU FEATURES"}),(0,Qe.jsx)(Qi,{"data-icon":"tables",label:"VUU TABLES"}),(0,Qe.jsx)(Qi,{"data-icon":"templates",label:"LAYOUT TEMPLATES"}),(0,Qe.jsx)(Qi,{"data-icon":"layouts",label:"MY LAYOUTS"})]})}),(0,Qe.jsx)("div",{className:"vuuLeftNav-buttonBar",children:(0,Qe.jsx)("button",{className:(0,pd.default)("vuuLeftNav-toggleButton",{"vuuLeftNav-toggleButton-open":u.navStatus.startsWith("menu-full"),"vuuLeftNav-toggleButton-closed":u.navStatus.startsWith("menu-icons")}),"data-icon":u.navStatus.startsWith("menu-full")?"chevron-left":"chevron-right",onClick:y})})]}),(0,Qe.jsxs)(vs.Stack,{active:u.activeTabIndex-1,className:`${Ji}-menu-secondary`,showTabs:!1,children:[(0,Qe.jsx)(dd,{features:e,title:"Vuu Features"}),(0,Qe.jsx)(dd,{features:l,title:"Vuu Tables"}),(0,Qe.jsx)("div",{style:{background:"green",height:"100%"},children:"Layout Templates"}),(0,Qe.jsx)("div",{className:"vuuLeftNav-drawer",children:(0,Qe.jsx)(cm,{})})]})]})};var dm=require("react"),Kn=require("@salt-ds/core");var lo=require("react/jsx-runtime"),BT="vuuLoginPanel",mO=({requirePassword:o=!0,onSubmit:e})=>{let[t,n]=(0,dm.useState)(""),[r,s]=(0,dm.useState)(""),i=()=>{e(t,r)},l=u=>{n(u.target.value)},a=u=>{s(u.target.value)},c=t.trim()!==""&&(o===!1||r.trim()!=="");return(0,lo.jsxs)("div",{className:BT,children:[(0,lo.jsxs)(Kn.FormField,{style:{width:200},children:[(0,lo.jsx)(Kn.FormFieldLabel,{children:"Username"}),(0,lo.jsx)(Kn.Input,{value:t,id:"text-username",onChange:l})]}),o?(0,lo.jsxs)(Kn.FormField,{style:{width:200},children:[(0,lo.jsx)(Kn.FormFieldLabel,{children:"Password"}),(0,lo.jsx)(Kn.Input,{inputProps:{type:"password"},value:r,id:"text-password",onChange:a})]}):null,(0,lo.jsx)(Kn.Button,{className:`${BT}-login`,disabled:!c,onClick:i,variant:"cta",children:"Login"})]})};var md=require("@vuu-ui/vuu-utils"),VT=()=>{let o=(0,md.getCookieValue)("vuu-auth-mode");return o!=null?o:""},gO=()=>{let o=(0,md.getCookieValue)("vuu-username"),e=(0,md.getCookieValue)("vuu-auth-token");return[o,e]},bO=()=>VT()==="login"?"login.html":"demo.html",$T=(o=bO())=>{window.location.href=o},fm=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",$T(o)};var rt=require("react"),hm=U(require("classnames")),UT=require("@salt-ds/core"),pm=require("@salt-ds/core"),Yi=require("@vuu-ui/vuu-data"),Ss=require("@vuu-ui/vuu-utils");var Tn=require("react/jsx-runtime"),Fo="vuuSessionEditingForm",KT=(o,e)=>{let t=o.find(n=>n.name===e);if(t)return t;throw Error(`SessionEditingForm, no field '${e}' found`)},zT=o=>{let{dataset:{field:e},value:t}=o.target;if(e===void 0)throw Error("SessionEditingForm, form field has no field name");return[e,t]},Bo={uninitialised:0,unchanged:1,changed:2,invalid:3};function WT(o,e,t=!1){switch(e){case"int":case"long":{let n=parseInt(o,10);if((0,Ss.isValidNumber)(n))return n;if(t)throw Error("SessionEditingForm getTypedValue");return}case"double":{let n=parseFloat(o);return(0,Ss.isValidNumber)(n)?n:void 0}case"boolean":return o==="true";default:return o}}var yO=(o,e)=>{if(o)return o;if(e)return new Yi.RemoteDataSource({bufferSize:0,table:e.table,columns:e.columns.map(t=>t.name)});throw Error("SessionEditingForm: either a DataSource or a TableSchema must be provided")},xO=({className:o,config:{fields:e,key:t},dataSource:n,id:r,onClose:s,schema:i,...l})=>{let[a,c]=(0,rt.useState)(),[u,d]=(0,rt.useState)(""),f=(0,rt.useRef)(null),h=(0,rt.useRef)(),p=(0,rt.useRef)(Bo.uninitialised),m=(0,rt.useMemo)(()=>{let w=T=>{if(L){let P={};for(let R of m.columns)P[R]=T[L[R]];p.current===Bo.uninitialised&&(p.current=Bo.unchanged,h.current=P),c(P)}},k=yO(n,i),L=(0,Ss.buildColumnMap)(k.columns);return k.subscribe({range:{from:0,to:5}},T=>{T.type==="viewport-update"&&T.rows&&(p.current===Bo.uninitialised?w(T.rows[0]):console.log("what do we do with server updates"))}),k},[n,i]),g=(0,UT.useIdMemo)(r),y=(0,rt.useCallback)(w=>{let[k,L]=zT(w),{type:T}=KT(e,k),P=WT(L,T);c((R={})=>{let O={...R,[k]:P},A=(0,Ss.shallowEquals)(O,h.current);return p.current=A?Bo.unchanged:P!==void 0?Bo.changed:Bo.invalid,O})},[e]),E=(0,rt.useCallback)(w=>{let[k,L]=zT(w),{type:T}=KT(e,k),P=a==null?void 0:a[t],R=WT(L,T,!0);typeof P=="string"&&m.menuRpcCall({rowKey:P,field:k,value:R,type:"VP_EDIT_CELL_RPC"})},[m,e,t,a]),v=(0,rt.useCallback)(w=>{typeof w=="object"&&w!==null&&"type"in w&&w.type==="CLOSE_DIALOG_ACTION"&&s()},[s]),x=(0,rt.useCallback)(async()=>{let w=await m.menuRpcCall({type:"VP_EDIT_SUBMIT_FORM_RPC"});(0,Yi.isErrorResponse)(w)?d(w.error):(0,Yi.hasAction)(w)&&v(w.action)},[v,m]),C=(0,rt.useCallback)(w=>{w.key==="Enter"&&p.current===Bo.changed&&x()},[x]),b=(0,rt.useCallback)(()=>{s()},[s]),S=w=>{var L;let k=String((L=a==null?void 0:a[w.name])!=null?L:"");return w.readonly||w.name===t?(0,Tn.jsx)("div",{className:`${Fo}-fieldValue vuuReadOnly`,children:k}):(0,Tn.jsx)("input",{className:`${Fo}-fieldValue`,"data-field":w.name,onBlur:E,onChange:y,type:"text",value:k,id:`${g}-input-${w.name}`})};(0,rt.useEffect)(()=>{if(f.current){let w=f.current.querySelector("input");w&&setTimeout(()=>{w.focus(),w.select()},100)}},[]),(0,rt.useEffect)(()=>()=>{m&&m.unsubscribe()},[m]);let M=p.current===Bo.changed;return(0,Tn.jsxs)("div",{...l,className:(0,hm.default)(Fo,o),children:[u?(0,Tn.jsx)("div",{className:`${Fo}-errorBanner`,"data-icon":"error",title:u,children:"Error, edit(s) not saved"}):void 0,(0,Tn.jsx)("div",{className:`${Fo}-content`,ref:f,onKeyDown:C,children:e.map(w=>{var k;return(0,Tn.jsxs)("div",{className:`${Fo}-field`,children:[(0,Tn.jsx)("label",{className:(0,hm.default)(`${Fo}-fieldLabel`,{[`${Fo}-required`]:w.required}),htmlFor:`${g}-input-${w.name}`,children:(k=w==null?void 0:w.label)!=null?k:w.description}),S(w)]},w.name)})}),(0,Tn.jsxs)("div",{className:`${Fo}-buttonbar salt-theme salt-density-high`,children:[(0,Tn.jsx)(pm.Button,{type:"submit",variant:"cta",disabled:!M,onClick:x,children:"Submit"}),(0,Tn.jsx)(pm.Button,{variant:"secondary",onClick:b,children:"Cancel"})]})]})};var ak=require("@vuu-ui/vuu-data"),ck=U(require("classnames")),$o=require("react");var xd=require("@vuu-ui/vuu-layout");var nk=require("react");var XT=require("@salt-ds/core"),JT=require("@salt-ds/lab"),YT=require("@salt-ds/icons");var _T=require("@vuu-ui/vuu-utils"),gd=require("@salt-ds/lab"),QT=require("@salt-ds/core"),qT=require("@salt-ds/icons"),Vo=require("react");var GT=async o=>await fetch(`api/vui/${o.username}`,{}).then(t=>t.ok?t.json():null).catch(()=>{console.log("error getting history")});var pr=require("react/jsx-runtime"),CO=({lastUpdate:o},{lastUpdate:e})=>e===o?0:e<o?-1:1,vO=o=>(0,pr.jsx)(gd.ListItem,{...o}),jT=(0,Vo.forwardRef)(function({loginUrl:e,onNavigate:t,user:n,layoutId:r="latest"},s){let[i,l]=(0,Vo.useState)([]);(0,Vo.useEffect)(()=>{async function d(){let h=(await GT(n)).filter(p=>p.id!=="latest").sort(CO).map(({id:p,lastUpdate:m})=>({lastUpdate:m,id:p,label:`Saved at ${(0,_T.formatDate)(new Date(m),"kk:mm:ss")}`}));console.log({sortedHistory:h}),l(h)}d()},[n]);let a=(0,Vo.useCallback)((d,f)=>{f&&t(f.id)},[t]),c=(0,Vo.useCallback)(()=>{fm(e)},[e]),u=i.length===0?null:r==="latest"?i[0]:i.find(d=>d.id===r);return(0,pr.jsxs)("div",{className:"vuuUserPanel",ref:s,children:[(0,pr.jsx)(gd.List,{ListItem:vO,className:"vuuUserPanel-history",onSelect:a,selected:u,source:i}),(0,pr.jsx)("div",{className:"vuuUserPanel-buttonBar",children:(0,pr.jsxs)(QT.Button,{"aria-label":"logout",onClick:c,children:[(0,pr.jsx)(qT.ExportIcon,{})," Logout"]})})]})});var Zi=require("react/jsx-runtime"),ZT=({layoutId:o,loginUrl:e,onNavigate:t,user:n})=>(0,Zi.jsxs)(JT.DropdownBase,{className:"vuuUserProfile",placement:"bottom-end",children:[(0,Zi.jsx)(XT.Button,{variant:"secondary",children:(0,Zi.jsx)(YT.UserSolidIcon,{})}),(0,Zi.jsx)(jT,{layoutId:o,loginUrl:e,onNavigate:s=>{t(s)},user:n})]});var ek=U(require("classnames")),ws=require("@salt-ds/core"),tk=require("react");var Ca=require("react/jsx-runtime"),SO="vuuThemeSwitch",mm=({className:o,defaultMode:e,mode:t,onChange:n,...r})=>{let[s,i]=(0,ws.useControlled)({controlled:t,default:e!=null?e:"light",name:"ThemeSwitch",state:"mode"}),l=(0,tk.useCallback)(c=>{let{value:u}=c.target;i(u),n(u)},[n,i]),a=(0,ek.default)(SO,o);return(0,Ca.jsxs)(ws.ToggleButtonGroup,{className:a,...r,onChange:l,value:s,children:[(0,Ca.jsx)(ws.ToggleButton,{"aria-label":"alert","data-icon":"light",value:"dark"}),(0,Ca.jsx)(ws.ToggleButton,{"aria-label":"home","data-icon":"dark",value:"light"})]})};var ok=U(require("classnames"));var va=require("react/jsx-runtime"),wO="vuuAppHeader",rk=({className:o,layoutId:e,loginUrl:t,onNavigate:n,onSwitchTheme:r,themeMode:s="light",user:i,...l})=>{let a=(0,ok.default)(wO,o),c=(0,nk.useCallback)(u=>r==null?void 0:r(u),[r]);return(0,va.jsxs)("header",{className:a,...l,children:[(0,va.jsx)(mm,{defaultMode:s,onChange:c}),(0,va.jsx)(ZT,{layoutId:e,loginUrl:t,onNavigate:n,user:i})]})};var uk=require("@vuu-ui/vuu-utils");var sk=require("@salt-ds/core"),gm=U(require("classnames")),bd=require("react"),yd=require("@vuu-ui/vuu-layout");var mr=require("react/jsx-runtime"),ao="vuuContextPanel",bm=({className:o,expanded:e=!1,content:t,overlay:n=!1,title:r})=>{let s=(0,yd.useLayoutProviderDispatch)(),i=(0,bd.useCallback)(()=>{s({path:"#context-panel",propName:"expanded",propValue:!1,type:"set-prop"})},[s]),l=(0,gm.default)(ao,o,{[`${ao}-expanded`]:e,[`${ao}-inline`]:n!==!0,[`${ao}-overlay`]:n}),a=(0,bd.useMemo)(()=>t?(0,yd.layoutFromJson)(t,"context-0"):null,[t]);return(0,mr.jsx)("div",{className:(0,gm.default)(ao,l),children:(0,mr.jsxs)("div",{className:`${ao}-inner`,children:[(0,mr.jsxs)("div",{className:`${ao}-header`,children:[(0,mr.jsx)("h2",{className:`${ao}-title`,children:r}),(0,mr.jsx)(sk.Button,{className:`${ao}-close`,"data-icon":"close",onClick:i,variant:"secondary"})]}),(0,mr.jsx)("div",{className:`${ao}-content`,children:a})]})})};var Sa=require("@vuu-ui/vuu-layout");var el=require("react/jsx-runtime"),ik=({appHeader:o,leftSidePanel:e})=>(0,el.jsxs)(Sa.Flexbox,{className:"App",style:{flexDirection:"row",height:"100%",width:"100%"},children:[e,(0,el.jsxs)(Sa.Flexbox,{className:"vuuShell-content",style:{flex:1,flexDirection:"column"},children:[o,(0,el.jsx)(Sa.DraggableLayout,{dropTarget:!0,style:{flex:1}},"main-content")]}),(0,el.jsx)(bm,{id:"context-panel",overlay:!0,title:"Column Settings"})]});var co=require("@vuu-ui/vuu-layout"),ks=require("react"),Ts=require("react/jsx-runtime"),lk=({appHeader:o,leftSidePanel:e})=>{let t=(0,ks.useRef)(null),[n,r]=(0,ks.useState)(!0),s=(0,ks.useCallback)(l=>{var c;let a=l.target;(c=t.current)!=null&&c.contains(a)||r(!n)},[n]),i=(0,ks.useCallback)(l=>{let a=[];return a.push((0,Ts.jsx)(co.Drawer,{onClick:s,open:n,position:"left",inline:!0,peekaboo:!0,sizeOpen:200,toggleButton:"end",children:(0,Ts.jsx)(co.View,{className:"vuuShell-palette",id:"vw-app-palette",ref:t,style:{height:"100%"},children:l},"app-palette")},"left-panel")),a},[s,n]);return(0,Ts.jsxs)(co.Flexbox,{className:"App",style:{flexDirection:"column",height:"100%",width:"100%"},children:[o,(0,Ts.jsx)(co.DockLayout,{style:{flex:1},children:i(e).concat((0,Ts.jsx)(co.DraggableLayout,{dropTarget:!0,style:{width:"100%",height:"100%"}},"main-content"))})]})};var ym=({leftSidePanelLayout:o="inlay",...e})=>(o==="inlay"?lk:ik)(e);var tl=require("react/jsx-runtime"),{error:xm}=(0,uk.logger)("Shell"),TO={type:"View",props:{style:{height:"calc(100% - 6px)"}},children:[{props:{className:"vuuShell-warningPlaceholder"},type:"Placeholder"}]},kO=({LayoutProps:o,children:e,className:t,defaultLayout:n=TO,leftSidePanel:r,leftSidePanelLayout:s,loginUrl:i,saveLocation:l="remote",saveUrl:a,serverUrl:c,user:u,...d})=>{let f=(0,$o.useRef)(null),h=(0,$o.useRef)("latest"),[p,m,g]=Sd({defaultLayout:n,saveLocation:l,saveUrl:a,user:u}),y=(0,$o.useCallback)((w,k)=>{try{console.log(`handle layout changed ${k}`),m(w)}catch{xm==null||xm("Failed to save layout")}},[m]),E=(0,$o.useCallback)(w=>{f.current&&(f.current.dataset.mode=w)},[]),v=(0,$o.useCallback)(w=>{h.current=w,g(w)},[g]);(0,$o.useEffect)(()=>{c&&u.token&&(0,ak.connectToServer)({authToken:u.token,url:c,username:u.username})},[c,u.token,u.username]);let[x,C,b]=Ft(),S=(0,ck.default)("vuuShell",t,x,C),M=ym({leftSidePanelLayout:s,appHeader:(0,tl.jsx)(rk,{layoutId:h.current,loginUrl:i,user:u,onNavigate:v,onSwitchTheme:E}),leftSidePanel:r});return(0,tl.jsxs)(hd,{children:[(0,tl.jsx)(xd.LayoutProvider,{...o,layout:p,onLayoutChange:y,children:(0,tl.jsx)(xd.DraggableLayout,{className:S,"data-mode":b,ref:f,...d,children:M})}),e]})};var vd=require("react"),Cd=require("react/jsx-runtime"),EO={},Cm=(0,vd.createContext)(EO),MO=({children:o,context:e,inheritedContext:t})=>{let n={...t,...e};return(0,Cd.jsx)(Cm.Provider,{value:n,children:o})},PO=({children:o,value:e})=>(0,Cd.jsx)(Cm.Consumer,{children:t=>(0,Cd.jsx)(MO,{context:e,inheritedContext:t,children:o})}),DO=()=>(0,vd.useContext)(Cm);
734
+ Wrap elements with a single container`
735
+ );
736
+ return children;
737
+ }
738
+ };
739
+ var ThemeProvider = ({
740
+ applyThemeClasses = false,
741
+ children,
742
+ theme: themeProp,
743
+ themeMode: themeModeProp,
744
+ density: densityProp
745
+ }) => {
746
+ var _a, _b, _c;
747
+ const {
748
+ density: inheritedDensity,
749
+ themeMode: inheritedThemeMode,
750
+ theme: inheritedTheme
751
+ } = (0, import_react9.useContext)(ThemeContext);
752
+ const density = (_a = densityProp != null ? densityProp : inheritedDensity) != null ? _a : DEFAULT_DENSITY2;
753
+ const themeMode = (_b = themeModeProp != null ? themeModeProp : inheritedThemeMode) != null ? _b : DEFAULT_THEME_MODE;
754
+ const theme = (_c = themeProp != null ? themeProp : inheritedTheme) != null ? _c : DEFAULT_THEME;
755
+ const themedChildren = applyThemeClasses ? createThemedChildren(children, theme, themeMode, density) : children;
756
+ return /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(ThemeContext.Provider, { value: { themeMode, density, theme }, children: themedChildren });
757
+ };
758
+ ThemeProvider.displayName = "ThemeProvider";
759
+
760
+ // src/left-nav/LeftNav.tsx
761
+ var import_jsx_runtime12 = require("react/jsx-runtime");
762
+ var classBase5 = "vuuLeftNav";
763
+ var LeftNav = ({
764
+ "data-path": path,
765
+ features,
766
+ onResize,
767
+ sizeCollapsed = 80,
768
+ sizeContent = 240,
769
+ sizeExpanded = 240,
770
+ style: styleProp,
771
+ tableFeatures,
772
+ ...htmlAttributes
773
+ }) => {
774
+ const dispatch = (0, import_vuu_layout4.useLayoutProviderDispatch)();
775
+ const [navState, setNavState] = (0, import_react10.useState)({
776
+ activeTabIndex: 0,
777
+ navStatus: "menu-full"
778
+ });
779
+ const [themeClass] = useThemeAttributes();
780
+ const toggleNavWidth = (0, import_react10.useCallback)(
781
+ (navStatus) => {
782
+ switch (navStatus) {
783
+ case "menu-icons":
784
+ return sizeExpanded;
785
+ case "menu-full":
786
+ return sizeCollapsed;
787
+ case "menu-full-content":
788
+ return sizeCollapsed + sizeContent;
789
+ case "menu-icons-content":
790
+ return sizeExpanded + sizeContent;
791
+ }
792
+ },
793
+ [sizeCollapsed, sizeContent, sizeExpanded]
794
+ );
795
+ const toggleNavStatus = (navStatus) => {
796
+ switch (navStatus) {
797
+ case "menu-icons":
798
+ return "menu-full";
799
+ case "menu-full":
800
+ return "menu-icons";
801
+ case "menu-full-content":
802
+ return "menu-icons-content";
803
+ case "menu-icons-content":
804
+ return "menu-full-content";
805
+ }
806
+ };
807
+ const getWidthAndStatus = (0, import_react10.useCallback)(
808
+ (navState2, tabIndex) => {
809
+ if (tabIndex === 0) {
810
+ const newNavState = navState2 === "menu-full-content" ? "menu-full" : navState2 === "menu-icons-content" ? "menu-icons" : navState2;
811
+ return newNavState === "menu-icons" ? [sizeCollapsed, newNavState] : [sizeExpanded, newNavState];
812
+ } else {
813
+ const newNavState = navState2 === "menu-full" ? "menu-full-content" : navState2 === "menu-icons" ? "menu-icons-content" : navState2;
814
+ return newNavState === "menu-icons-content" ? [sizeCollapsed + sizeContent, newNavState] : [sizeExpanded + sizeContent, newNavState];
815
+ }
816
+ },
817
+ [sizeCollapsed, sizeContent, sizeExpanded]
818
+ );
819
+ const handleTabSelection = (0, import_react10.useCallback)(
820
+ (value) => {
821
+ const [width, navStatus] = getWidthAndStatus(navState.navStatus, value);
822
+ setNavState({
823
+ activeTabIndex: value,
824
+ navStatus
825
+ });
826
+ dispatch({
827
+ type: import_vuu_layout4.Action.LAYOUT_RESIZE,
828
+ path,
829
+ size: width
830
+ });
831
+ },
832
+ [dispatch, getWidthAndStatus, navState, path]
833
+ );
834
+ const toggleSize = (0, import_react10.useCallback)(() => {
835
+ const { activeTabIndex, navStatus: currentNavStatus } = navState;
836
+ setNavState({
837
+ activeTabIndex,
838
+ navStatus: toggleNavStatus(currentNavStatus)
839
+ });
840
+ dispatch({
841
+ type: import_vuu_layout4.Action.LAYOUT_RESIZE,
842
+ path,
843
+ size: toggleNavWidth(currentNavStatus)
844
+ });
845
+ }, [dispatch, navState, path, toggleNavWidth]);
846
+ const style = {
847
+ ...styleProp,
848
+ "--nav-menu-collapsed-width": `${sizeCollapsed}px`,
849
+ "--nav-menu-expanded-width": `${sizeExpanded}px`
850
+ };
851
+ return /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)(
852
+ "div",
853
+ {
854
+ ...htmlAttributes,
855
+ className: (0, import_classnames4.default)(classBase5, `${classBase5}-${navState.navStatus}`),
856
+ style,
857
+ children: [
858
+ /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)(
859
+ "div",
860
+ {
861
+ className: (0, import_classnames4.default)(`${classBase5}-menu-primary`, themeClass),
862
+ "data-mode": "dark",
863
+ children: [
864
+ /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("div", { className: "vuuLeftNav-logo", children: /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(VuuLogo, {}) }),
865
+ /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("div", { className: `${classBase5}-main`, children: /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)(
866
+ import_vuu_ui_controls3.Tabstrip,
867
+ {
868
+ activeTabIndex: navState.activeTabIndex,
869
+ animateSelectionThumb: false,
870
+ className: `${classBase5}-Tabstrip`,
871
+ onActiveChange: handleTabSelection,
872
+ orientation: "vertical",
873
+ children: [
874
+ /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(import_vuu_ui_controls3.Tab, { "data-icon": "demo", label: "DEMO" }),
875
+ /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(import_vuu_ui_controls3.Tab, { "data-icon": "features", label: "VUU FEATURES" }),
876
+ /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(import_vuu_ui_controls3.Tab, { "data-icon": "tables", label: "VUU TABLES" }),
877
+ /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(import_vuu_ui_controls3.Tab, { "data-icon": "templates", label: "LAYOUT TEMPLATES" }),
878
+ /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(import_vuu_ui_controls3.Tab, { "data-icon": "layouts", label: "MY LAYOUTS" })
879
+ ]
880
+ }
881
+ ) }),
882
+ /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("div", { className: "vuuLeftNav-buttonBar", children: /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
883
+ "button",
884
+ {
885
+ className: (0, import_classnames4.default)("vuuLeftNav-toggleButton", {
886
+ "vuuLeftNav-toggleButton-open": navState.navStatus.startsWith("menu-full"),
887
+ "vuuLeftNav-toggleButton-closed": navState.navStatus.startsWith("menu-icons")
888
+ }),
889
+ "data-icon": navState.navStatus.startsWith("menu-full") ? "chevron-left" : "chevron-right",
890
+ onClick: toggleSize
891
+ }
892
+ ) })
893
+ ]
894
+ }
895
+ ),
896
+ /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)(
897
+ import_vuu_layout4.Stack,
898
+ {
899
+ active: navState.activeTabIndex - 1,
900
+ className: `${classBase5}-menu-secondary`,
901
+ showTabs: false,
902
+ children: [
903
+ /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(FeatureList, { features, title: "Vuu Features" }),
904
+ /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(FeatureList, { features: tableFeatures, title: "Vuu Tables" }),
905
+ /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("div", { style: { background: "green", height: "100%" }, children: "Layout Templates" }),
906
+ /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("div", { className: "vuuLeftNav-drawer", children: /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(LayoutsList, {}) })
907
+ ]
908
+ }
909
+ )
910
+ ]
911
+ }
912
+ );
913
+ };
914
+
915
+ // src/login/LoginPanel.tsx
916
+ var import_react11 = require("react");
917
+ var import_core2 = require("@salt-ds/core");
918
+ var import_jsx_runtime13 = require("react/jsx-runtime");
919
+ var classBase6 = "vuuLoginPanel";
920
+ var LoginPanel = ({
921
+ requirePassword = true,
922
+ onSubmit
923
+ }) => {
924
+ const [username, setUserName] = (0, import_react11.useState)("");
925
+ const [password, setPassword] = (0, import_react11.useState)("");
926
+ const login = () => {
927
+ onSubmit(username, password);
928
+ };
929
+ const handleUsername = (evt) => {
930
+ setUserName(evt.target.value);
931
+ };
932
+ const handlePassword = (evt) => {
933
+ setPassword(evt.target.value);
934
+ };
935
+ const dataIsValid = username.trim() !== "" && (requirePassword === false || password.trim() !== "");
936
+ return /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)("div", { className: classBase6, children: [
937
+ /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)(import_core2.FormField, { style: { width: 200 }, children: [
938
+ /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(import_core2.FormFieldLabel, { children: "Username" }),
939
+ /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(import_core2.Input, { value: username, id: "text-username", onChange: handleUsername })
940
+ ] }),
941
+ requirePassword ? /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)(import_core2.FormField, { style: { width: 200 }, children: [
942
+ /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(import_core2.FormFieldLabel, { children: "Password" }),
943
+ /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
944
+ import_core2.Input,
945
+ {
946
+ inputProps: {
947
+ type: "password"
948
+ },
949
+ value: password,
950
+ id: "text-password",
951
+ onChange: handlePassword
952
+ }
953
+ )
954
+ ] }) : null,
955
+ /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
956
+ import_core2.Button,
957
+ {
958
+ className: `${classBase6}-login`,
959
+ disabled: !dataIsValid,
960
+ onClick: login,
961
+ variant: "cta",
962
+ children: "Login"
963
+ }
964
+ )
965
+ ] });
966
+ };
967
+
968
+ // src/login/login-utils.ts
969
+ var import_vuu_utils3 = require("@vuu-ui/vuu-utils");
970
+ var getAuthModeFromCookies = () => {
971
+ const mode = (0, import_vuu_utils3.getCookieValue)("vuu-auth-mode");
972
+ return mode != null ? mode : "";
973
+ };
974
+ var getAuthDetailsFromCookies = () => {
975
+ const username = (0, import_vuu_utils3.getCookieValue)("vuu-username");
976
+ const token = (0, import_vuu_utils3.getCookieValue)("vuu-auth-token");
977
+ return [username, token];
978
+ };
979
+ var getDefaultLoginUrl = () => {
980
+ const authMode = getAuthModeFromCookies();
981
+ return authMode === "login" ? "login.html" : "demo.html";
982
+ };
983
+ var redirectToLogin = (loginUrl = getDefaultLoginUrl()) => {
984
+ window.location.href = loginUrl;
985
+ };
986
+ var logout = (loginUrl) => {
987
+ document.cookie = "vuu-username= ; expires = Thu, 01 Jan 1970 00:00:00 GMT";
988
+ document.cookie = "vuu-auth-token= ; expires = Thu, 01 Jan 1970 00:00:00 GMT";
989
+ redirectToLogin(loginUrl);
990
+ };
991
+
992
+ // src/session-editing-form/SessionEditingForm.tsx
993
+ var import_react12 = require("react");
994
+ var import_classnames5 = __toESM(require("classnames"));
995
+ var import_core3 = require("@salt-ds/core");
996
+ var import_core4 = require("@salt-ds/core");
997
+ var import_vuu_data = require("@vuu-ui/vuu-data");
998
+ var import_vuu_utils4 = require("@vuu-ui/vuu-utils");
999
+ var import_jsx_runtime14 = require("react/jsx-runtime");
1000
+ var classBase7 = "vuuSessionEditingForm";
1001
+ var getField = (fields, name) => {
1002
+ const field = fields.find((f) => f.name === name);
1003
+ if (field) {
1004
+ return field;
1005
+ } else {
1006
+ throw Error(`SessionEditingForm, no field '${name}' found`);
1007
+ }
1008
+ };
1009
+ var getFieldNameAndValue = (evt) => {
1010
+ const {
1011
+ dataset: { field },
1012
+ value
1013
+ } = evt.target;
1014
+ if (field === void 0) {
1015
+ throw Error("SessionEditingForm, form field has no field name");
1016
+ }
1017
+ return [field, value];
1018
+ };
1019
+ var Status = {
1020
+ uninitialised: 0,
1021
+ unchanged: 1,
1022
+ changed: 2,
1023
+ invalid: 3
1024
+ };
1025
+ function getTypedValue(value, type, throwIfUndefined = false) {
1026
+ switch (type) {
1027
+ case "int":
1028
+ case "long": {
1029
+ const typedValue = parseInt(value, 10);
1030
+ if ((0, import_vuu_utils4.isValidNumber)(typedValue)) {
1031
+ return typedValue;
1032
+ } else if (throwIfUndefined) {
1033
+ throw Error("SessionEditingForm getTypedValue");
1034
+ } else {
1035
+ return void 0;
1036
+ }
1037
+ }
1038
+ case "double": {
1039
+ const typedValue = parseFloat(value);
1040
+ if ((0, import_vuu_utils4.isValidNumber)(typedValue)) {
1041
+ return typedValue;
1042
+ }
1043
+ return void 0;
1044
+ }
1045
+ case "boolean":
1046
+ return value === "true" ? true : false;
1047
+ default:
1048
+ return value;
1049
+ }
1050
+ }
1051
+ var getDataSource = (dataSource, schema) => {
1052
+ if (dataSource) {
1053
+ return dataSource;
1054
+ } else if (schema) {
1055
+ return new import_vuu_data.RemoteDataSource({
1056
+ bufferSize: 0,
1057
+ table: schema.table,
1058
+ columns: schema.columns.map((col) => col.name)
1059
+ });
1060
+ } else {
1061
+ throw Error(
1062
+ "SessionEditingForm: either a DataSource or a TableSchema must be provided"
1063
+ );
1064
+ }
1065
+ };
1066
+ var SessionEditingForm = ({
1067
+ className,
1068
+ config: { fields, key: keyField },
1069
+ dataSource: dataSourceProp,
1070
+ id: idProp,
1071
+ onClose,
1072
+ schema,
1073
+ ...htmlAttributes
1074
+ }) => {
1075
+ const [values, setValues] = (0, import_react12.useState)();
1076
+ const [errorMessage, setErrorMessage] = (0, import_react12.useState)("");
1077
+ const formContentRef = (0, import_react12.useRef)(null);
1078
+ const initialDataRef = (0, import_react12.useRef)();
1079
+ const dataStatusRef = (0, import_react12.useRef)(Status.uninitialised);
1080
+ const dataSource = (0, import_react12.useMemo)(() => {
1081
+ const applyServerData = (data) => {
1082
+ if (columnMap) {
1083
+ const values2 = {};
1084
+ for (const column of dataSource.columns) {
1085
+ values2[column] = data[columnMap[column]];
1086
+ }
1087
+ if (dataStatusRef.current === Status.uninitialised) {
1088
+ dataStatusRef.current = Status.unchanged;
1089
+ initialDataRef.current = values2;
1090
+ }
1091
+ setValues(values2);
1092
+ }
1093
+ };
1094
+ const ds = getDataSource(dataSourceProp, schema);
1095
+ const columnMap = (0, import_vuu_utils4.buildColumnMap)(ds.columns);
1096
+ ds.subscribe({ range: { from: 0, to: 5 } }, (message) => {
1097
+ if (message.type === "viewport-update" && message.rows) {
1098
+ if (dataStatusRef.current === Status.uninitialised) {
1099
+ applyServerData(message.rows[0]);
1100
+ } else {
1101
+ console.log("what do we do with server updates");
1102
+ }
1103
+ }
1104
+ });
1105
+ return ds;
1106
+ }, [dataSourceProp, schema]);
1107
+ const id = (0, import_core3.useIdMemo)(idProp);
1108
+ const handleChange = (0, import_react12.useCallback)(
1109
+ (evt) => {
1110
+ const [field, value] = getFieldNameAndValue(evt);
1111
+ const { type } = getField(fields, field);
1112
+ const typedValue = getTypedValue(value, type);
1113
+ setValues((values2 = {}) => {
1114
+ const newValues = {
1115
+ ...values2,
1116
+ [field]: typedValue
1117
+ };
1118
+ const notUpdated = (0, import_vuu_utils4.shallowEquals)(newValues, initialDataRef.current);
1119
+ dataStatusRef.current = notUpdated ? Status.unchanged : typedValue !== void 0 ? Status.changed : Status.invalid;
1120
+ return newValues;
1121
+ });
1122
+ },
1123
+ [fields]
1124
+ );
1125
+ const handleBlur = (0, import_react12.useCallback)(
1126
+ (evt) => {
1127
+ const [field, value] = getFieldNameAndValue(evt);
1128
+ const { type } = getField(fields, field);
1129
+ const rowKey = values == null ? void 0 : values[keyField];
1130
+ const typedValue = getTypedValue(value, type, true);
1131
+ if (typeof rowKey === "string") {
1132
+ dataSource.menuRpcCall({
1133
+ rowKey,
1134
+ field,
1135
+ value: typedValue,
1136
+ type: "VP_EDIT_CELL_RPC"
1137
+ });
1138
+ }
1139
+ },
1140
+ [dataSource, fields, keyField, values]
1141
+ );
1142
+ const applyAction = (0, import_react12.useCallback)(
1143
+ (action) => {
1144
+ if (typeof action === "object" && action !== null) {
1145
+ if ("type" in action && action.type === "CLOSE_DIALOG_ACTION") {
1146
+ onClose();
1147
+ }
1148
+ }
1149
+ },
1150
+ [onClose]
1151
+ );
1152
+ const handleSubmit = (0, import_react12.useCallback)(async () => {
1153
+ const response = await dataSource.menuRpcCall({
1154
+ type: "VP_EDIT_SUBMIT_FORM_RPC"
1155
+ });
1156
+ if ((0, import_vuu_data.isErrorResponse)(response)) {
1157
+ setErrorMessage(response.error);
1158
+ } else if ((0, import_vuu_data.hasAction)(response)) {
1159
+ applyAction(response.action);
1160
+ }
1161
+ }, [applyAction, dataSource]);
1162
+ const handleKeyDown = (0, import_react12.useCallback)(
1163
+ (evt) => {
1164
+ if (evt.key === "Enter" && dataStatusRef.current === Status.changed) {
1165
+ handleSubmit();
1166
+ }
1167
+ },
1168
+ [handleSubmit]
1169
+ );
1170
+ const handleCancel = (0, import_react12.useCallback)(() => {
1171
+ onClose();
1172
+ }, [onClose]);
1173
+ const getFormControl = (field) => {
1174
+ var _a;
1175
+ const value = String((_a = values == null ? void 0 : values[field.name]) != null ? _a : "");
1176
+ if (field.readonly || field.name === keyField) {
1177
+ return /* @__PURE__ */ (0, import_jsx_runtime14.jsx)("div", { className: `${classBase7}-fieldValue vuuReadOnly`, children: value });
1178
+ } else {
1179
+ return /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
1180
+ "input",
1181
+ {
1182
+ className: `${classBase7}-fieldValue`,
1183
+ "data-field": field.name,
1184
+ onBlur: handleBlur,
1185
+ onChange: handleChange,
1186
+ type: "text",
1187
+ value,
1188
+ id: `${id}-input-${field.name}`
1189
+ }
1190
+ );
1191
+ }
1192
+ };
1193
+ (0, import_react12.useEffect)(() => {
1194
+ if (formContentRef.current) {
1195
+ const firstInput = formContentRef.current.querySelector(
1196
+ "input"
1197
+ );
1198
+ if (firstInput) {
1199
+ setTimeout(() => {
1200
+ firstInput.focus();
1201
+ firstInput.select();
1202
+ }, 100);
1203
+ }
1204
+ }
1205
+ }, []);
1206
+ (0, import_react12.useEffect)(() => {
1207
+ return () => {
1208
+ if (dataSource) {
1209
+ dataSource.unsubscribe();
1210
+ }
1211
+ };
1212
+ }, [dataSource]);
1213
+ const isDirty = dataStatusRef.current === Status.changed;
1214
+ return /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)("div", { ...htmlAttributes, className: (0, import_classnames5.default)(classBase7, className), children: [
1215
+ errorMessage ? /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
1216
+ "div",
1217
+ {
1218
+ className: `${classBase7}-errorBanner`,
1219
+ "data-icon": "error",
1220
+ title: errorMessage,
1221
+ children: "Error, edit(s) not saved"
1222
+ }
1223
+ ) : void 0,
1224
+ /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
1225
+ "div",
1226
+ {
1227
+ className: `${classBase7}-content`,
1228
+ ref: formContentRef,
1229
+ onKeyDown: handleKeyDown,
1230
+ children: fields.map((field) => {
1231
+ var _a;
1232
+ return /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)("div", { className: `${classBase7}-field`, children: [
1233
+ /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
1234
+ "label",
1235
+ {
1236
+ className: (0, import_classnames5.default)(`${classBase7}-fieldLabel`, {
1237
+ [`${classBase7}-required`]: field.required
1238
+ }),
1239
+ htmlFor: `${id}-input-${field.name}`,
1240
+ children: (_a = field == null ? void 0 : field.label) != null ? _a : field.description
1241
+ }
1242
+ ),
1243
+ getFormControl(field)
1244
+ ] }, field.name);
1245
+ })
1246
+ }
1247
+ ),
1248
+ /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)("div", { className: `${classBase7}-buttonbar salt-theme salt-density-high`, children: [
1249
+ /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
1250
+ import_core4.Button,
1251
+ {
1252
+ type: "submit",
1253
+ variant: "cta",
1254
+ disabled: !isDirty,
1255
+ onClick: handleSubmit,
1256
+ children: "Submit"
1257
+ }
1258
+ ),
1259
+ /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(import_core4.Button, { variant: "secondary", onClick: handleCancel, children: "Cancel" })
1260
+ ] })
1261
+ ] });
1262
+ };
1263
+
1264
+ // src/shell.tsx
1265
+ var import_vuu_data2 = require("@vuu-ui/vuu-data");
1266
+ var import_classnames9 = __toESM(require("classnames"));
1267
+ var import_react18 = require("react");
1268
+ var import_vuu_layout8 = require("@vuu-ui/vuu-layout");
1269
+
1270
+ // src/app-header/AppHeader.tsx
1271
+ var import_react15 = require("react");
1272
+
1273
+ // src/user-profile/UserProfile.tsx
1274
+ var import_core6 = require("@salt-ds/core");
1275
+ var import_lab3 = require("@salt-ds/lab");
1276
+ var import_icons2 = require("@salt-ds/icons");
1277
+
1278
+ // src/user-profile/UserPanel.tsx
1279
+ var import_vuu_utils5 = require("@vuu-ui/vuu-utils");
1280
+ var import_lab2 = require("@salt-ds/lab");
1281
+ var import_core5 = require("@salt-ds/core");
1282
+ var import_icons = require("@salt-ds/icons");
1283
+ var import_react13 = require("react");
1284
+
1285
+ // src/get-layout-history.ts
1286
+ var getLayoutHistory = async (user) => {
1287
+ const history = await fetch(`api/vui/${user.username}`, {}).then((response) => {
1288
+ return response.ok ? response.json() : null;
1289
+ }).catch(() => {
1290
+ console.log("error getting history");
1291
+ });
1292
+ return history;
1293
+ };
1294
+
1295
+ // src/user-profile/UserPanel.tsx
1296
+ var import_jsx_runtime15 = require("react/jsx-runtime");
1297
+ var byLastUpdate = ({ lastUpdate: l1 }, { lastUpdate: l2 }) => {
1298
+ return l2 === l1 ? 0 : l2 < l1 ? -1 : 1;
1299
+ };
1300
+ var HistoryListItem = (props) => {
1301
+ return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(import_lab2.ListItem, { ...props });
1302
+ };
1303
+ var UserPanel = (0, import_react13.forwardRef)(function UserPanel2({ loginUrl, onNavigate, user, layoutId = "latest" }, forwardedRef) {
1304
+ const [history, setHistory] = (0, import_react13.useState)([]);
1305
+ (0, import_react13.useEffect)(() => {
1306
+ async function getHistory() {
1307
+ const history2 = await getLayoutHistory(user);
1308
+ const sortedHistory = history2.filter((item) => item.id !== "latest").sort(byLastUpdate).map(({ id, lastUpdate }) => ({
1309
+ lastUpdate,
1310
+ id,
1311
+ label: `Saved at ${(0, import_vuu_utils5.formatDate)(new Date(lastUpdate), "kk:mm:ss")}`
1312
+ }));
1313
+ console.log({ sortedHistory });
1314
+ setHistory(sortedHistory);
1315
+ }
1316
+ getHistory();
1317
+ }, [user]);
1318
+ const handleHisorySelected = (0, import_react13.useCallback)(
1319
+ (evt, selected2) => {
1320
+ if (selected2) {
1321
+ onNavigate(selected2.id);
1322
+ }
1323
+ },
1324
+ [onNavigate]
1325
+ );
1326
+ const handleLogout = (0, import_react13.useCallback)(() => {
1327
+ logout(loginUrl);
1328
+ }, [loginUrl]);
1329
+ const selected = history.length === 0 ? null : layoutId === "latest" ? history[0] : history.find((i) => i.id === layoutId);
1330
+ return /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("div", { className: "vuuUserPanel", ref: forwardedRef, children: [
1331
+ /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
1332
+ import_lab2.List,
1333
+ {
1334
+ ListItem: HistoryListItem,
1335
+ className: "vuuUserPanel-history",
1336
+ onSelect: handleHisorySelected,
1337
+ selected,
1338
+ source: history
1339
+ }
1340
+ ),
1341
+ /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("div", { className: "vuuUserPanel-buttonBar", children: /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)(import_core5.Button, { "aria-label": "logout", onClick: handleLogout, children: [
1342
+ /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(import_icons.ExportIcon, {}),
1343
+ " Logout"
1344
+ ] }) })
1345
+ ] });
1346
+ });
1347
+
1348
+ // src/user-profile/UserProfile.tsx
1349
+ var import_jsx_runtime16 = require("react/jsx-runtime");
1350
+ var UserProfile = ({
1351
+ layoutId,
1352
+ loginUrl,
1353
+ onNavigate,
1354
+ user
1355
+ }) => {
1356
+ const handleNavigate = (id) => {
1357
+ onNavigate(id);
1358
+ };
1359
+ return /* @__PURE__ */ (0, import_jsx_runtime16.jsxs)(import_lab3.DropdownBase, { className: "vuuUserProfile", placement: "bottom-end", children: [
1360
+ /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(import_core6.Button, { variant: "secondary", children: /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(import_icons2.UserSolidIcon, {}) }),
1361
+ /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
1362
+ UserPanel,
1363
+ {
1364
+ layoutId,
1365
+ loginUrl,
1366
+ onNavigate: handleNavigate,
1367
+ user
1368
+ }
1369
+ )
1370
+ ] });
1371
+ };
1372
+
1373
+ // src/theme-switch/ThemeSwitch.tsx
1374
+ var import_classnames6 = __toESM(require("classnames"));
1375
+ var import_core7 = require("@salt-ds/core");
1376
+ var import_react14 = require("react");
1377
+ var import_jsx_runtime17 = require("react/jsx-runtime");
1378
+ var classBase8 = "vuuThemeSwitch";
1379
+ var ThemeSwitch = ({
1380
+ className: classNameProp,
1381
+ defaultMode: defaultModeProp,
1382
+ mode: modeProp,
1383
+ onChange,
1384
+ ...htmlAttributes
1385
+ }) => {
1386
+ const [mode, setMode] = (0, import_core7.useControlled)({
1387
+ controlled: modeProp,
1388
+ default: defaultModeProp != null ? defaultModeProp : "light",
1389
+ name: "ThemeSwitch",
1390
+ state: "mode"
1391
+ });
1392
+ const handleChangeSecondary = (0, import_react14.useCallback)(
1393
+ (evt) => {
1394
+ const { value } = evt.target;
1395
+ setMode(value);
1396
+ onChange(value);
1397
+ },
1398
+ [onChange, setMode]
1399
+ );
1400
+ const className = (0, import_classnames6.default)(classBase8, classNameProp);
1401
+ return /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)(
1402
+ import_core7.ToggleButtonGroup,
1403
+ {
1404
+ className,
1405
+ ...htmlAttributes,
1406
+ onChange: handleChangeSecondary,
1407
+ value: mode,
1408
+ children: [
1409
+ /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(import_core7.ToggleButton, { "aria-label": "alert", "data-icon": "light", value: "dark" }),
1410
+ /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(import_core7.ToggleButton, { "aria-label": "home", "data-icon": "dark", value: "light" })
1411
+ ]
1412
+ }
1413
+ );
1414
+ };
1415
+
1416
+ // src/app-header/AppHeader.tsx
1417
+ var import_classnames7 = __toESM(require("classnames"));
1418
+ var import_jsx_runtime18 = require("react/jsx-runtime");
1419
+ var classBase9 = "vuuAppHeader";
1420
+ var AppHeader = ({
1421
+ className: classNameProp,
1422
+ layoutId,
1423
+ loginUrl,
1424
+ onNavigate,
1425
+ onSwitchTheme,
1426
+ themeMode = "light",
1427
+ user,
1428
+ ...htmlAttributes
1429
+ }) => {
1430
+ const className = (0, import_classnames7.default)(classBase9, classNameProp);
1431
+ const handleSwitchTheme = (0, import_react15.useCallback)(
1432
+ (mode) => onSwitchTheme == null ? void 0 : onSwitchTheme(mode),
1433
+ [onSwitchTheme]
1434
+ );
1435
+ return /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)("header", { className, ...htmlAttributes, children: [
1436
+ /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(ThemeSwitch, { defaultMode: themeMode, onChange: handleSwitchTheme }),
1437
+ /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
1438
+ UserProfile,
1439
+ {
1440
+ layoutId,
1441
+ loginUrl,
1442
+ onNavigate,
1443
+ user
1444
+ }
1445
+ )
1446
+ ] });
1447
+ };
1448
+
1449
+ // src/shell.tsx
1450
+ var import_vuu_utils6 = require("@vuu-ui/vuu-utils");
1451
+
1452
+ // src/shell-layouts/context-panel/ContextPanel.tsx
1453
+ var import_core8 = require("@salt-ds/core");
1454
+ var import_classnames8 = __toESM(require("classnames"));
1455
+ var import_react16 = require("react");
1456
+ var import_vuu_layout5 = require("@vuu-ui/vuu-layout");
1457
+ var import_jsx_runtime19 = require("react/jsx-runtime");
1458
+ var classBase10 = "vuuContextPanel";
1459
+ var ContextPanel = ({
1460
+ className: classNameProp,
1461
+ expanded = false,
1462
+ content: contentProp,
1463
+ overlay = false,
1464
+ title
1465
+ }) => {
1466
+ const dispatchLayoutAction = (0, import_vuu_layout5.useLayoutProviderDispatch)();
1467
+ const handleClose = (0, import_react16.useCallback)(() => {
1468
+ dispatchLayoutAction({
1469
+ path: "#context-panel",
1470
+ propName: "expanded",
1471
+ propValue: false,
1472
+ type: "set-prop"
1473
+ });
1474
+ }, [dispatchLayoutAction]);
1475
+ const className = (0, import_classnames8.default)(classBase10, classNameProp, {
1476
+ [`${classBase10}-expanded`]: expanded,
1477
+ [`${classBase10}-inline`]: overlay !== true,
1478
+ [`${classBase10}-overlay`]: overlay
1479
+ });
1480
+ const content = (0, import_react16.useMemo)(
1481
+ () => contentProp ? (0, import_vuu_layout5.layoutFromJson)(contentProp, "context-0") : null,
1482
+ [contentProp]
1483
+ );
1484
+ return /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("div", { className: (0, import_classnames8.default)(classBase10, className), children: /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)("div", { className: `${classBase10}-inner`, children: [
1485
+ /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)("div", { className: `${classBase10}-header`, children: [
1486
+ /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("h2", { className: `${classBase10}-title`, children: title }),
1487
+ /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
1488
+ import_core8.Button,
1489
+ {
1490
+ className: `${classBase10}-close`,
1491
+ "data-icon": "close",
1492
+ onClick: handleClose,
1493
+ variant: "secondary"
1494
+ }
1495
+ )
1496
+ ] }),
1497
+ /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("div", { className: `${classBase10}-content`, children: content })
1498
+ ] }) });
1499
+ };
1500
+
1501
+ // src/shell-layouts/useFullHeightLeftPanel.tsx
1502
+ var import_vuu_layout6 = require("@vuu-ui/vuu-layout");
1503
+ var import_jsx_runtime20 = require("react/jsx-runtime");
1504
+ var useFullHeightLeftPanel = ({
1505
+ appHeader,
1506
+ leftSidePanel
1507
+ }) => {
1508
+ return /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(
1509
+ import_vuu_layout6.Flexbox,
1510
+ {
1511
+ className: "App",
1512
+ style: {
1513
+ flexDirection: "row",
1514
+ height: "100%",
1515
+ width: "100%"
1516
+ },
1517
+ children: [
1518
+ leftSidePanel,
1519
+ /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(
1520
+ import_vuu_layout6.Flexbox,
1521
+ {
1522
+ className: "vuuShell-content",
1523
+ style: { flex: 1, flexDirection: "column" },
1524
+ children: [
1525
+ appHeader,
1526
+ /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(import_vuu_layout6.DraggableLayout, { dropTarget: true, style: { flex: 1 } }, "main-content")
1527
+ ]
1528
+ }
1529
+ ),
1530
+ /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
1531
+ ContextPanel,
1532
+ {
1533
+ id: "context-panel",
1534
+ overlay: true,
1535
+ title: "Column Settings"
1536
+ }
1537
+ )
1538
+ ]
1539
+ }
1540
+ );
1541
+ };
1542
+
1543
+ // src/shell-layouts/useInlayLeftPanel.tsx
1544
+ var import_vuu_layout7 = require("@vuu-ui/vuu-layout");
1545
+ var import_react17 = require("react");
1546
+ var import_jsx_runtime21 = require("react/jsx-runtime");
1547
+ var useInlayLeftPanel = ({
1548
+ appHeader,
1549
+ leftSidePanel
1550
+ }) => {
1551
+ const paletteView = (0, import_react17.useRef)(null);
1552
+ const [open, setOpen] = (0, import_react17.useState)(true);
1553
+ const handleDrawerClick = (0, import_react17.useCallback)(
1554
+ (e) => {
1555
+ var _a;
1556
+ const target = e.target;
1557
+ if (!((_a = paletteView.current) == null ? void 0 : _a.contains(target))) {
1558
+ setOpen(!open);
1559
+ }
1560
+ },
1561
+ [open]
1562
+ );
1563
+ const getDrawers = (0, import_react17.useCallback)(
1564
+ (leftSidePanel2) => {
1565
+ const drawers = [];
1566
+ drawers.push(
1567
+ /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
1568
+ import_vuu_layout7.Drawer,
1569
+ {
1570
+ onClick: handleDrawerClick,
1571
+ open,
1572
+ position: "left",
1573
+ inline: true,
1574
+ peekaboo: true,
1575
+ sizeOpen: 200,
1576
+ toggleButton: "end",
1577
+ children: /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
1578
+ import_vuu_layout7.View,
1579
+ {
1580
+ className: "vuuShell-palette",
1581
+ id: "vw-app-palette",
1582
+ ref: paletteView,
1583
+ style: { height: "100%" },
1584
+ children: leftSidePanel2
1585
+ },
1586
+ "app-palette"
1587
+ )
1588
+ },
1589
+ "left-panel"
1590
+ )
1591
+ );
1592
+ return drawers;
1593
+ },
1594
+ [handleDrawerClick, open]
1595
+ );
1596
+ return /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)(
1597
+ import_vuu_layout7.Flexbox,
1598
+ {
1599
+ className: "App",
1600
+ style: { flexDirection: "column", height: "100%", width: "100%" },
1601
+ children: [
1602
+ appHeader,
1603
+ /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(import_vuu_layout7.DockLayout, { style: { flex: 1 }, children: getDrawers(leftSidePanel).concat(
1604
+ /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
1605
+ import_vuu_layout7.DraggableLayout,
1606
+ {
1607
+ dropTarget: true,
1608
+ style: { width: "100%", height: "100%" }
1609
+ },
1610
+ "main-content"
1611
+ )
1612
+ ) })
1613
+ ]
1614
+ }
1615
+ );
1616
+ };
1617
+
1618
+ // src/shell-layouts/useShellLayout.ts
1619
+ var useShellLayout = ({
1620
+ leftSidePanelLayout = "inlay",
1621
+ ...props
1622
+ }) => {
1623
+ const useLayoutHook = leftSidePanelLayout === "inlay" ? useInlayLeftPanel : useFullHeightLeftPanel;
1624
+ return useLayoutHook(props);
1625
+ };
1626
+
1627
+ // src/shell.tsx
1628
+ var import_jsx_runtime22 = require("react/jsx-runtime");
1629
+ var { error } = (0, import_vuu_utils6.logger)("Shell");
1630
+ var warningLayout = {
1631
+ type: "View",
1632
+ props: {
1633
+ style: { height: "calc(100% - 6px)" }
1634
+ },
1635
+ children: [
1636
+ {
1637
+ props: {
1638
+ className: "vuuShell-warningPlaceholder"
1639
+ },
1640
+ type: "Placeholder"
1641
+ }
1642
+ ]
1643
+ };
1644
+ var Shell = ({
1645
+ LayoutProps,
1646
+ children,
1647
+ className: classNameProp,
1648
+ defaultLayout = warningLayout,
1649
+ leftSidePanel,
1650
+ leftSidePanelLayout,
1651
+ loginUrl,
1652
+ saveLocation = "remote",
1653
+ saveUrl,
1654
+ serverUrl,
1655
+ user,
1656
+ ...htmlAttributes
1657
+ }) => {
1658
+ const rootRef = (0, import_react18.useRef)(null);
1659
+ const layoutId = (0, import_react18.useRef)("latest");
1660
+ const [layout, saveLayoutConfig, loadLayoutById] = useLayoutConfig({
1661
+ defaultLayout,
1662
+ saveLocation,
1663
+ saveUrl,
1664
+ user
1665
+ });
1666
+ const handleLayoutChange = (0, import_react18.useCallback)(
1667
+ (layout2, layoutChangeReason) => {
1668
+ try {
1669
+ console.log(`handle layout changed ${layoutChangeReason}`);
1670
+ saveLayoutConfig(layout2);
1671
+ } catch {
1672
+ error == null ? void 0 : error("Failed to save layout");
1673
+ }
1674
+ },
1675
+ [saveLayoutConfig]
1676
+ );
1677
+ const handleSwitchTheme = (0, import_react18.useCallback)((mode) => {
1678
+ if (rootRef.current) {
1679
+ rootRef.current.dataset.mode = mode;
1680
+ }
1681
+ }, []);
1682
+ const handleNavigate = (0, import_react18.useCallback)(
1683
+ (id) => {
1684
+ layoutId.current = id;
1685
+ loadLayoutById(id);
1686
+ },
1687
+ [loadLayoutById]
1688
+ );
1689
+ (0, import_react18.useEffect)(() => {
1690
+ if (serverUrl && user.token) {
1691
+ (0, import_vuu_data2.connectToServer)({
1692
+ authToken: user.token,
1693
+ url: serverUrl,
1694
+ username: user.username
1695
+ });
1696
+ }
1697
+ }, [serverUrl, user.token, user.username]);
1698
+ const [themeClass, densityClass, dataMode] = useThemeAttributes();
1699
+ const className = (0, import_classnames9.default)("vuuShell", classNameProp, themeClass, densityClass);
1700
+ const shellLayout = useShellLayout({
1701
+ leftSidePanelLayout,
1702
+ appHeader: /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(
1703
+ AppHeader,
1704
+ {
1705
+ layoutId: layoutId.current,
1706
+ loginUrl,
1707
+ user,
1708
+ onNavigate: handleNavigate,
1709
+ onSwitchTheme: handleSwitchTheme
1710
+ }
1711
+ ),
1712
+ leftSidePanel
1713
+ });
1714
+ return /* @__PURE__ */ (0, import_jsx_runtime22.jsxs)(ThemeProvider, { children: [
1715
+ /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(
1716
+ import_vuu_layout8.LayoutProvider,
1717
+ {
1718
+ ...LayoutProps,
1719
+ layout,
1720
+ onLayoutChange: handleLayoutChange,
1721
+ children: /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(
1722
+ import_vuu_layout8.DraggableLayout,
1723
+ {
1724
+ className,
1725
+ "data-mode": dataMode,
1726
+ ref: rootRef,
1727
+ ...htmlAttributes,
1728
+ children: shellLayout
1729
+ }
1730
+ )
1731
+ }
1732
+ ),
1733
+ children
1734
+ ] });
1735
+ };
1736
+
1737
+ // src/ShellContextProvider.tsx
1738
+ var import_react19 = require("react");
1739
+ var import_jsx_runtime23 = require("react/jsx-runtime");
1740
+ var defaultConfig = {};
1741
+ var ShellContext = (0, import_react19.createContext)(defaultConfig);
1742
+ var Provider = ({
1743
+ children,
1744
+ context,
1745
+ inheritedContext
1746
+ }) => {
1747
+ const mergedContext = {
1748
+ ...inheritedContext,
1749
+ ...context
1750
+ };
1751
+ return /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(ShellContext.Provider, { value: mergedContext, children });
1752
+ };
1753
+ var ShellContextProvider = ({
1754
+ children,
1755
+ value
1756
+ }) => {
1757
+ return /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(ShellContext.Consumer, { children: (context) => /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(Provider, { context: value, inheritedContext: context, children }) });
1758
+ };
1759
+ var useShellContext = () => {
1760
+ return (0, import_react19.useContext)(ShellContext);
1761
+ };
18
1762
  //# sourceMappingURL=index.js.map