@vuu-ui/vuu-popups 0.8.1 → 0.8.2

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,4 +1,4 @@
1
- "use strict";var Ma=Object.create;var cr=Object.defineProperty;var Da=Object.getOwnPropertyDescriptor;var La=Object.getOwnPropertyNames;var ka=Object.getPrototypeOf,Ia=Object.prototype.hasOwnProperty;var Oa=(n,e)=>{for(var t in e)cr(n,t,{get:e[t],enumerable:!0})},io=(n,e,t,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of La(e))!Ia.call(n,o)&&o!==t&&cr(n,o,{get:()=>e[o],enumerable:!(r=Da(e,o))||r.enumerable});return n};var M=(n,e,t)=>(t=n!=null?Ma(ka(n)):{},io(e||!n||!n.__esModule?cr(t,"default",{value:n,enumerable:!0}):t,n)),Va=n=>io(cr({},"__esModule",{value:!0}),n);var ao=(n,e,t)=>{if(!e.has(n))throw TypeError("Cannot "+t)};var h=(n,e,t)=>(ao(n,e,"read from private field"),t?t.call(n):e.get(n)),N=(n,e,t)=>{if(e.has(n))throw TypeError("Cannot add the same private member more than once");e instanceof WeakSet?e.add(n):e.set(n,t)},D=(n,e,t,r)=>(ao(n,e,"write to private field"),r?r.call(n,t):e.set(n,t),t),lo=(n,e,t,r)=>({set _(o){D(n,e,o,t)},get _(){return h(n,e,r)}});var dp={};Oa(dp,{ContextMenu:()=>Jr,ContextMenuContext:()=>ir,ContextMenuProvider:()=>np,Dialog:()=>Bc,DialogService:()=>ar,MenuItem:()=>Qr,MenuItemGroup:()=>nr,Popup:()=>up,PopupService:()=>X,Portal:()=>rr,Separator:()=>ro,createContainer:()=>en,installTheme:()=>Nc,renderPortal:()=>_t,useContextMenu:()=>cp});module.exports=Va(dp);var It=require("@heswell/salt-lab"),ra=require("@salt-ds/core"),na=M(require("classnames")),et=require("react");var tr=require("react"),ea=M(require("react-dom"));var uo=M(require("react-dom")),co=M(require("classnames")),Aa=1,_a=({className:n,dataMode:e,x:t=0,y:r=0,win:o=window})=>{let s=o.document.createElement("div");return s.className=(0,co.default)(`vuuPopup ${Aa++}`,n),s.style.cssText=`left:${t}px; top:${r}px;`,e&&(s.dataset.mode=e),o.document.body.appendChild(s),s},en=n=>_a(n),_t=(n,e,t,r,o)=>{e.style.cssText=`left:${t}px; top:${r}px;position: absolute;`,uo.render(n,e,o)};var tn=M(require("react")),Na=M(require("classnames"));var rn=require("react/jsx-runtime");var Ba=require("@heswell/salt-lab"),Fa=require("react"),za=M(require("classnames")),$a=require("react/jsx-runtime");var Ge=M(require("react"));var on=require("@vuu-ui/vuu-utils"),mo=M(require("classnames"));var Ua={},Ha={},pr={};function z(n,e,t="component"){pr[n]=e,t==="container"?Ua[n]=!0:t==="view"&&(Ha[n]=!0)}var Nt=require("@salt-ds/core"),nn=M(require("classnames")),ho=require("react");var Fe=require("react/jsx-runtime"),Be="vuuDrawer",po=n=>typeof n=="string"?n:n+"px",Wa=(n,e,t)=>{let r=e!==void 0,o=t!==void 0;if(!(!n&&!o&&!r))return!o&&!r?n:{...n,"--drawer-size":r?po(e):void 0,"--drawer-peek-size":o?po(t):void 0}},fo=({children:n,className:e,clickToOpen:t,defaultOpen:r,sizeOpen:o,sizeClosed:s,style:i,open:a,position:l="left",inline:u,onClick:c,peekaboo:p=!1,toggleButton:d,...g})=>{let[S,v]=(0,Nt.useControlled)({controlled:a,default:r!=null?r:!1,name:"Drawer",state:"open"}),x=(0,nn.default)(Be,e,`${Be}-${l}`,{[`${Be}-open`]:S,[`${Be}-inline`]:u,[`${Be}-over`]:!u,[`${Be}-peekaboo`]:p}),y=(0,ho.useCallback)(()=>{v(!S)},[S,v]),E=Wa(i,o,s),m=t?y:c,b=()=>(0,Fe.jsx)("div",{className:(0,nn.default)("vuuToggleButton-container"),children:S?(0,Fe.jsx)(Nt.Button,{"aria-label":"close",onClick:y,"data-icon":"close",variant:"secondary"}):(0,Fe.jsx)(Nt.Button,{"aria-label":"open",onClick:y,"data-icon":"close",variant:"secondary"})});return(0,Fe.jsxs)("div",{...g,className:x,onClick:m,style:E,children:[d=="start"?b():null,(0,Fe.jsx)("div",{className:`${Be}-liner`,children:(0,Fe.jsx)("div",{className:`${Be}-content`,children:n})}),d=="end"?b():null]})};fo.displayName="Drawer";var hr=fo;var dr=require("react/jsx-runtime"),Ga=n=>n.type===hr,qa=({props:{position:n="left"}})=>n.match(/top|bottom/),go=n=>{let{children:e,className:t,id:r,style:o}=n,s="vuuDockLayout",[i,a]=(0,on.partition)(e,Ga),[l,u]=(0,on.partition)(i,qa),c=l.length===0?"horizontal":u.length===0?"vertical":"both",p=(0,mo.default)(s,t,`${s}-${c}`);return(0,dr.jsxs)("div",{className:p,id:r,style:o,children:[i,(0,dr.jsx)("div",{className:`${s}-content`,children:a})]})};go.displayName="DockLayout";z("DockLayout",go,"container");var bo=require("react");var yo=require("react/jsx-runtime"),sn=(0,bo.forwardRef)(function({resizeable:e,...t},r){return(0,yo.jsx)("div",{...t,className:"Component",ref:r})});sn.displayName="Component";var an=sn;z("Component",sn);var So=M(require("react"));var Ka={},Pe=(n,e)=>{var r;let t=ee(n);return(r=t[e])!=null?r:t[`data-${e}`]},ee=n=>(n==null?void 0:n.props)||n||Ka;var un={north:1,east:2,south:4,west:8,header:16,centre:32,absolute:64},cn={AFTER:"after",BEFORE:"before"},ze=Object.freeze({North:rt("north"),East:rt("east"),South:rt("south"),West:rt("west"),Header:rt("header"),Centre:rt("centre"),Absolute:rt("absolute")});function rt(n){return Object.freeze({offset:n==="north"||n==="west"?0:n==="south"||n==="east"?1:NaN,valueOf:function(){return un[n]},toString:function(){return n},North:n==="north",South:n==="south",East:n==="east",West:n==="west",Header:n==="header",Centre:n==="centre",NorthOrSouth:n==="north"||n==="south",EastOrWest:n==="east"||n==="west",NorthOrWest:n==="north"||n==="west",SouthOrEast:n==="east"||n==="south",Absolute:n==="absolute"})}var hh=ze.North,dh=ze.South,fh=ze.East,mh=ze.West,gh=ze.Header,bh=ze.Centre;var{north:Xa,south:ja,east:Ya,west:Za}=un,Th=Ya+Za,Ph=Xa+ja;var wo=M(require("classnames"));var hn=require("react/jsx-runtime");function Ro(n,e=0,t=0){let{pos:r,clientRect:o}=n,s=20;return r.position.West?[o.left-t+s,r.y-e,"left"]:r.position.South?[r.x-t,o.bottom-e-s,"bottom"]:r.position.East?[o.right-t-s,r.y-e,"right"]:[r.x-t,o.top-e+s,"top"]}var pn="vuuDropMenu",xo=({className:n,dropTarget:e,onHover:t,orientation:r})=>{let o=e.toArray();return(0,hn.jsx)("div",{className:(0,wo.default)(pn,n,`${pn}-${r}`),onMouseLeave:()=>t(null),children:o.map((s,i)=>(0,hn.jsx)("div",{className:`${pn}-item`,"data-icon":i===0?"column-2A":"column-2B",onMouseEnter:()=>t(s)},i))})};var To=require("react/jsx-runtime"),dn=!1,Bt=null,me=null,el=n=>Bt=n,tl=([n,e])=>`M${n},${e}`,rl=([n,e])=>`L${n},${e}`,vo=([n,...e])=>`${tl(n)} ${e.map(rl)}Z`,nl=n=>{if(n){let[e,t,r,o,s,i,a,l]=n;return`M${e},${t} L${r},${o} M${s},${i} L${a},${l}`}else return""};function ol(){if(document.getElementById("hw-drag-canvas")===null){let n=document.getElementById("root"),e=document.createElement("div");e.id="hw-drag-canvas",e.innerHTML=`
1
+ "use strict";var Aa=Object.create;var dr=Object.defineProperty;var _a=Object.getOwnPropertyDescriptor;var Na=Object.getOwnPropertyNames;var Ba=Object.getPrototypeOf,Fa=Object.prototype.hasOwnProperty;var za=(n,e)=>{for(var t in e)dr(n,t,{get:e[t],enumerable:!0})},uo=(n,e,t,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of Na(e))!Fa.call(n,o)&&o!==t&&dr(n,o,{get:()=>e[o],enumerable:!(r=_a(e,o))||r.enumerable});return n};var M=(n,e,t)=>(t=n!=null?Aa(Ba(n)):{},uo(e||!n||!n.__esModule?dr(t,"default",{value:n,enumerable:!0}):t,n)),$a=n=>uo(dr({},"__esModule",{value:!0}),n);var co=(n,e,t)=>{if(!e.has(n))throw TypeError("Cannot "+t)};var h=(n,e,t)=>(co(n,e,"read from private field"),t?t.call(n):e.get(n)),N=(n,e,t)=>{if(e.has(n))throw TypeError("Cannot add the same private member more than once");e instanceof WeakSet?e.add(n):e.set(n,t)},D=(n,e,t,r)=>(co(n,e,"write to private field"),r?r.call(n,t):e.set(n,t),t),po=(n,e,t,r)=>({set _(o){D(n,e,o,t)},get _(){return h(n,e,r)}});var xp={};za(xp,{ContextMenu:()=>Yr,ContextMenuContext:()=>lr,ContextMenuProvider:()=>pp,Dialog:()=>qc,DialogService:()=>ur,MenuItem:()=>Xr,MenuItemGroup:()=>sr,Popup:()=>bp,PopupMenu:()=>Rp,PopupService:()=>X,Portal:()=>or,Separator:()=>so,createContainer:()=>nn,installTheme:()=>Gc,renderPortal:()=>Bt,useContextMenu:()=>lo});module.exports=$a(xp);var Vt=require("@heswell/salt-lab"),ia=require("@salt-ds/core"),aa=M(require("classnames")),tt=require("react");var nr=require("react"),oa=M(require("react-dom"));var ho=M(require("react-dom")),fo=M(require("classnames")),Ha=1,Ua=({className:n,dataMode:e,x:t=0,y:r=0,win:o=window})=>{let i=o.document.createElement("div");return i.className=(0,fo.default)(`vuuPopup ${Ha++}`,n),i.style.cssText=`left:${t}px; top:${r}px;`,e&&(i.dataset.mode=e),o.document.body.appendChild(i),i},nn=n=>Ua(n),Bt=(n,e,t,r,o)=>{e.style.cssText=`left:${t}px; top:${r}px;position: absolute;`,ho.render(n,e,o)};var on=M(require("react")),Wa=M(require("classnames"));var sn=require("react/jsx-runtime");var Ga=require("@heswell/salt-lab"),qa=require("react"),Qa=M(require("classnames")),Ka=require("react/jsx-runtime");var qe=M(require("react"));var ln=require("@vuu-ui/vuu-utils"),yo=M(require("classnames"));var Ja={},Xa={},fr={};function z(n,e,t="component"){fr[n]=e,t==="container"?Ja[n]=!0:t==="view"&&(Xa[n]=!0)}var Ft=require("@salt-ds/core"),an=M(require("classnames")),go=require("react");var ze=require("react/jsx-runtime"),Fe="vuuDrawer",mo=n=>typeof n=="string"?n:n+"px",ja=(n,e,t)=>{let r=e!==void 0,o=t!==void 0;if(!(!n&&!o&&!r))return!o&&!r?n:{...n,"--drawer-size":r?mo(e):void 0,"--drawer-peek-size":o?mo(t):void 0}},bo=({children:n,className:e,clickToOpen:t,defaultOpen:r,sizeOpen:o,sizeClosed:i,style:s,open:a,position:l="left",inline:u,onClick:c,peekaboo:p=!1,toggleButton:d,...g})=>{let[y,v]=(0,Ft.useControlled)({controlled:a,default:r!=null?r:!1,name:"Drawer",state:"open"}),x=(0,an.default)(Fe,e,`${Fe}-${l}`,{[`${Fe}-open`]:y,[`${Fe}-inline`]:u,[`${Fe}-over`]:!u,[`${Fe}-peekaboo`]:p}),S=(0,go.useCallback)(()=>{v(!y)},[y,v]),E=ja(s,o,i),m=t?S:c,b=()=>(0,ze.jsx)("div",{className:(0,an.default)("vuuToggleButton-container"),children:y?(0,ze.jsx)(Ft.Button,{"aria-label":"close",onClick:S,"data-icon":"close",variant:"secondary"}):(0,ze.jsx)(Ft.Button,{"aria-label":"open",onClick:S,"data-icon":"close",variant:"secondary"})});return(0,ze.jsxs)("div",{...g,className:x,onClick:m,style:E,children:[d=="start"?b():null,(0,ze.jsx)("div",{className:`${Fe}-liner`,children:(0,ze.jsx)("div",{className:`${Fe}-content`,children:n})}),d=="end"?b():null]})};bo.displayName="Drawer";var mr=bo;var gr=require("react/jsx-runtime"),Ya=n=>n.type===mr,Za=({props:{position:n="left"}})=>n.match(/top|bottom/),So=n=>{let{children:e,className:t,id:r,style:o}=n,i="vuuDockLayout",[s,a]=(0,ln.partition)(e,Ya),[l,u]=(0,ln.partition)(s,Za),c=l.length===0?"horizontal":u.length===0?"vertical":"both",p=(0,yo.default)(i,t,`${i}-${c}`);return(0,gr.jsxs)("div",{className:p,id:r,style:o,children:[s,(0,gr.jsx)("div",{className:`${i}-content`,children:a})]})};So.displayName="DockLayout";z("DockLayout",So,"container");var wo=require("react");var Ro=require("react/jsx-runtime"),un=(0,wo.forwardRef)(function({resizeable:e,...t},r){return(0,Ro.jsx)("div",{...t,className:"Component",ref:r})});un.displayName="Component";var cn=un;z("Component",un);var xo=M(require("react"));var tl={},De=(n,e)=>{var r;let t=ee(n);return(r=t[e])!=null?r:t[`data-${e}`]},ee=n=>(n==null?void 0:n.props)||n||tl;var hn={north:1,east:2,south:4,west:8,header:16,centre:32,absolute:64},dn={AFTER:"after",BEFORE:"before"},$e=Object.freeze({North:nt("north"),East:nt("east"),South:nt("south"),West:nt("west"),Header:nt("header"),Centre:nt("centre"),Absolute:nt("absolute")});function nt(n){return Object.freeze({offset:n==="north"||n==="west"?0:n==="south"||n==="east"?1:NaN,valueOf:function(){return hn[n]},toString:function(){return n},North:n==="north",South:n==="south",East:n==="east",West:n==="west",Header:n==="header",Centre:n==="centre",NorthOrSouth:n==="north"||n==="south",EastOrWest:n==="east"||n==="west",NorthOrWest:n==="north"||n==="west",SouthOrEast:n==="east"||n==="south",Absolute:n==="absolute"})}var Rh=$e.North,xh=$e.South,vh=$e.East,Ch=$e.West,Eh=$e.Header,Th=$e.Centre;var{north:nl,south:ol,east:sl,west:il}=hn,Ah=sl+il,_h=nl+ol;var vo=M(require("classnames"));var mn=require("react/jsx-runtime");function Co(n,e=0,t=0){let{pos:r,clientRect:o}=n,i=20;return r.position.West?[o.left-t+i,r.y-e,"left"]:r.position.South?[r.x-t,o.bottom-e-i,"bottom"]:r.position.East?[o.right-t-i,r.y-e,"right"]:[r.x-t,o.top-e+i,"top"]}var fn="vuuDropMenu",Eo=({className:n,dropTarget:e,onHover:t,orientation:r})=>{let o=e.toArray();return(0,mn.jsx)("div",{className:(0,vo.default)(fn,n,`${fn}-${r}`),onMouseLeave:()=>t(null),children:o.map((i,s)=>(0,mn.jsx)("div",{className:`${fn}-item`,"data-icon":s===0?"column-2A":"column-2B",onMouseEnter:()=>t(i)},s))})};var Do=require("react/jsx-runtime"),gn=!1,zt=null,ge=null,al=n=>zt=n,ll=([n,e])=>`M${n},${e}`,ul=([n,e])=>`L${n},${e}`,To=([n,...e])=>`${ll(n)} ${e.map(ul)}Z`,cl=n=>{if(n){let[e,t,r,o,i,s,a,l]=n;return`M${e},${t} L${r},${o} M${i},${s} L${a},${l}`}else return""};function pl(){if(document.getElementById("hw-drag-canvas")===null){let n=document.getElementById("root"),e=document.createElement("div");e.id="hw-drag-canvas",e.innerHTML=`
2
2
  <svg width="100%" height="100%">
3
3
  <path id="hw-drop-guides" />
4
4
  <path
@@ -14,7 +14,7 @@
14
14
  />
15
15
  </path>
16
16
  </svg>
17
- `,document.body.insertBefore(e,n)}}var Ft=class{constructor(){this.currentPath=null;this.tabMode=null;ol()}prepare(e,t="full-view"){document.body.classList.add("drawing"),this.currentPath=null,this.tabMode=t;let r=this.getPoints(0,0,0,0),o=vo(r),s=document.getElementById("vuu-drop-outline");s==null||s.setAttribute("d",o),this.currentPath=o}clear(){Bt=null,fr(),document.body.classList.remove("drawing"),X.hidePopup()}get hoverDropTarget(){return Bt}getPoints(e,t,r,o,s=0,i=0,a=0){let l=this.tabMode==="tab-only";if(i===0)return[[e,t+a],[e,t+a],[e,t],[e+i,t],[e+i,t],[e+r,t],[e+r,t+o],[e,t+o]];if(l){let u=s;return[[u,t],[u,t],[u+i,t],[u+i,t],[u+i,t+a],[u+i,t+a],[u,t+a],[u,t+a]]}else return s===0?[[e,t+a],[e,t+a],[e,t],[e+i,t],[e+i,t+a],[e+r,t+a],[e+r,t+o],[e,t+o]]:[[e,t+a],[e+s,t+a],[e+s,t],[e+s,t],[e+s,t+a],[e+r,t+a],[e+r,t+o],[e,t+o]]}draw(e,t){let o=dn;if(Bt!==null)this.drawTarget(Bt);else if(dn=e.nextDropTarget!=null,e.pos.tab?sl(e):me&&fr(),this.drawTarget(e,t),dn){let[s,i,a]=Ro(e);{let l=(0,To.jsx)(xo,{dropTarget:e,onHover:el,orientation:a});X.showPopup({left:s,top:i,component:l})}}else X.hidePopup()}drawTarget(e,t){let o=e.getTargetDropOutline(6,t);if(o){let{l:s,t:i,r:a,b:l,tabLeft:u,tabWidth:c,tabHeight:p,guideLines:d}=o,g=a-s,S=l-i;if(this.currentPath){let m=document.getElementById("vuu-drop-outline");m==null||m.setAttribute("d",this.currentPath)}let v=this.getPoints(s,i,g,S,u,c,p),x=vo(v),y=document.getElementById("hw-drop-outline-animate");y==null||y.setAttribute("to",x),y==null||y.beginElement(),this.currentPath=x;let E=document.getElementById("hw-drop-guides");E==null||E.setAttribute("d",nl(d))}}},Co="transition:margin-left .4s ease-out;margin-left: 63px",Eo="transition:margin-left .4s ease-out;margin-left: 0px";function sl(n){var a,l;let{AFTER:e,BEFORE:t}=cn,{clientRect:{Stack:r},pos:{tab:o}}=n,{id:s}=n.component.props,i=null;if(r&&o&&o.positionRelativeToTab!==e){let u=o.positionRelativeToTab===t?1:2,c=`:scope .hwTabstrip > .hwTabstrip-inner > .hwTab:nth-child(${o.index+u})`;i=(a=document.getElementById(s))==null?void 0:a.querySelector(c),i?(me===null||me!==i)&&(i.style.cssText=Co,me&&(me.style.cssText=Eo),me=i):fr()}else if((o==null?void 0:o.positionRelativeToTab)===t){if(me===null){let u=".vuuHeader-title";i=(l=document.getElementById(s))==null?void 0:l.querySelector(u),i.style.cssText=Co,me=i}}else fr()}function fr(){me&&(me.style.cssText=Eo,me=null)}var Xh=new Ft;var Mo=M(require("classnames")),Do=require("react");var ko=require("react/jsx-runtime"),zt=(0,Do.forwardRef)(function({children:e,className:t,dropTarget:r,resizeable:o,...s},i){let a=(0,Mo.default)("DraggableLayout",t);return(0,ko.jsx)("div",{className:a,ref:i,...s,children:e})}),Lo="DraggableLayout";zt.displayName=Lo;z(Lo,zt,"container");var qo=require("@salt-ds/core"),Qo=M(require("classnames")),Ko=require("react");var Wo=require("@vuu-ui/vuu-utils"),$=M(require("react"));var Oo=M(require("classnames"));var Vo=require("react/jsx-runtime"),Io="vuuPlaceholder",gr=({className:n,closeable:e,flexFill:t,resizeable:r,shim:o,...s})=>(0,Vo.jsx)("div",{className:(0,Oo.default)(Io,n,{[`${Io}-shim`]:o}),...s,"data-placeholder":!0,"data-resizeable":!0});gr.displayName="Placeholder";z("Placeholder",gr);var Ao=M(require("classnames")),j=M(require("react"));var fn=require("react/jsx-runtime"),_o=j.default.memo(function({column:e,index:t,onDrag:r,onDragEnd:o,onDragStart:s,style:i}){let a=(0,j.useRef)(),l=(0,j.useRef)(null),u=(0,j.useRef)(0),[c,p]=(0,j.useState)(!1),d=(0,j.useCallback)(({key:f,shiftKey:R})=>{let L=R?10:1;e&&f==="ArrowDown"?r(t,L):e&&f==="ArrowUp"||!e&&f==="ArrowLeft"?r(t,-L):!e&&f==="ArrowRight"&&r(t,L)},[e,t,r]),g=(0,j.useCallback)(f=>{let{key:R}=f;(e&&(R==="ArrowUp"||R==="ArrowDown")||!e&&(R==="ArrowLeft"||R==="ArrowRIght"))&&(s(t),d(f),S.current=d)},[e,d,t,s]),S=(0,j.useRef)(g),v=f=>S.current(f),x=(0,j.useCallback)(f=>{a.current=!0;let R=f[e?"clientY":"clientX"],L=R-u.current;R&&R!==u.current&&r(t,L),u.current=R},[e,t,r]),y=(0,j.useCallback)(()=>{var f;window.removeEventListener("mousemove",x,!1),window.removeEventListener("mouseup",y,!1),o(),p(!1),(f=l.current)==null||f.focus()},[x,o,p]),E=(0,j.useCallback)(f=>{u.current=e?f.clientY:f.clientX,s(t),window.addEventListener("mousemove",x,!1),window.addEventListener("mouseup",y,!1),f.preventDefault(),p(!0)},[e,x,y,t,s,p]),m=()=>{var f;a.current?a.current=!1:(f=l.current)==null||f.focus()},b=()=>{S.current=g},w=(0,Ao.default)("Splitter","focusable",{active:c,column:e});return(0,fn.jsx)("div",{className:w,"data-splitter":!0,ref:l,role:"separator",style:i,onBlur:b,onClick:m,onKeyDown:v,onMouseDown:E,tabIndex:0,children:(0,fn.jsx)("div",{className:"grab-zone"})})});var il=require("@vuu-ui/vuu-utils"),al=M(require("react"));var Bo={},No="auto";var ft=n=>{let{style:{width:e=No,height:t=No}=Bo}=n.props,r=typeof t=="number",o=typeof e=="number";return r&&o?{height:t,width:e}:r?{height:t}:o?{width:e}:void 0};function Fo(n){let{style:{flex:e,flexGrow:t,flexShrink:r,flexBasis:o}=Bo}=n.props;return typeof e=="number"||o===0&&t===1&&r===1?!0:typeof o!="number"}var ll={},$t=1,Ut=2,ul=n=>typeof n.intrinsicSize=="number",cl=(n,e)=>{let t={};return n.forEach(r=>{t[r]=Pe(e,r)}),t},br=(n,e,t)=>n.map((r,o)=>{var l;let s=Pe(r,"resizeable"),{[e]:i}=(l=ft(r))!=null?l:ll,a=Fo(r);return t?{index:o,flexOpen:a,intrinsicSize:i,resizeable:s,...cl(t,r)}:{index:o,flexOpen:a,intrinsicSize:i,resizeable:s}}),zo=n=>{let e=n.length,t=n.every(ul),r=Array(e).fill(0);if(t&&(r[0]=Ut,r[e-1]=Ut),e<2)return r;for(let o=0,s=0;o<e-1;o++)n[o].resizeable&&!s&&(s=$t),r[o]+=s;for(let o=e-1;o>0&&(r[o]&$t&&(r[o]-=$t),!n[o].resizeable);o--);return r},$o=(n,e)=>{let t=hl(n,e),r=dl(n,e),o=t!==-1&&r!==-1?[t,r]:void 0,s=pl(n,o);return[o,s]};function pl(n,e){if(e){let t=[];for(let r=0;r<n.length;r++)n[r].flexOpen&&!e.includes(r)&&t.push(r);return t}}function hl(n,e){let t=e,r=!1;for(;t>=1&&!r;)t=t-1,r=Uo(n,t);return t}function dl(n,e){let t=e,r=!1,o=n.length;for(;t<o-1&&!r;)t=t+1,r=Uo(n,t);return t===o?-1:t}function Uo(n,e){let{placeholder:t,splitter:r,resizeable:o,intrinsicSize:s}=n[e];return!!(!r&&!s&&(t||o))}var fl=n=>!n.splitter&&!n.placeholder,Go=({children:n,onSplitterMoved:e,style:t})=>{let r=(0,$.useRef)(null),o=(0,$.useRef)(),s=(0,$.useRef)(),i=(0,$.useRef)([]),[,a]=(0,$.useState)({}),l=x=>{s.current=x,a({})},u=(t==null?void 0:t.flexDirection)==="column",c=u?"height":"width",p=(0,$.useMemo)(()=>Array.isArray(n)?n:$.default.isValidElement(n)?[n]:[],[n]),d=(0,$.useCallback)(x=>{let{current:y}=o;if(y){let[E,m]=$o(y,x);E&&(E.forEach(b=>{var f;let w=(f=r.current)==null?void 0:f.childNodes[b];if(w){let{size:R,minSize:L}=yl(w,c);y[b].currentSize=R,y[b].minSize=L}}),m&&m.forEach(b=>{var f;let w=(f=r.current)==null?void 0:f.childNodes[b];if(w){let{[c]:R}=w.getBoundingClientRect();y[b].flexBasis=R}}))}},[c]),g=(0,$.useCallback)((x,y)=>{s.current&&o.current&&l(gl(s.current,o.current,y,c))},[c]),S=(0,$.useCallback)(()=>{let x=o.current;x&&(e==null||e(x.filter(fl))),x==null||x.forEach(y=>{y.currentSize=void 0,y.flexBasis=void 0,y.flexOpen=!1})},[e]),v=(0,$.useCallback)(x=>$.default.createElement(_o,{column:u,index:x,key:`splitter-${x}`,onDrag:g,onDragEnd:S,onDragStart:d}),[g,S,d,u]);return(0,$.useMemo)(()=>{let[x,y]=ml(p,c,v,i.current);o.current=y,s.current=x},[p,v,c]),{content:s.current||[],rootRef:r}};function ml(n,e,t,r){let o=br(n,e),s=zo(o),i=[],a=[];for(let l=0;l<n.length;l++){let u=n[l];if(l===0&&s[l]&Ut&&(i.push(Ho(l)),a.push({placeholder:!0,shim:!0})),u.key==null){let c=r[l]||(r[l]=(0,Wo.getUniqueId)());i.push($.default.cloneElement(u,{key:c}))}else i.push(u);a.push(o[l]),l>0&&s[l]&Ut?(i.push(Ho(l)),a.push({placeholder:!0})):s[l]&$t&&(i.push(t(i.length)),a.push({splitter:!0}))}return[i,a]}function gl(n,e,t,r){return bl(e,t)?n.map((s,i)=>{let a=e[i],{currentSize:l,flexOpen:u,flexBasis:c}=a,p=l!==void 0;if(p||u){let{flexBasis:d}=s.props.style||{},g=p?a.currentSize:c;return g!==d?$.default.cloneElement(s,{style:{...s.props.style,flexBasis:g,[r]:"auto"}}):s}else return s}):n}function bl(n,e){let t=[];n.forEach((c,p)=>{c.currentSize!==void 0&&t.push(p)});let r=e<0?t[0]:t[1],{currentSize:o=0,minSize:s=0}=n[r];if(o===s)return!1;if(Math.abs(e)>o-s){let c=e<0?-1:1;e=Math.max(0,o-s)*c}let i=n[t[0]],{currentSize:a=0}=i;i.currentSize=a+e;let l=n[t[1]],{currentSize:u=0}=l;return l.currentSize=u-e,!0}function Ho(n){return $.default.createElement(gr,{shim:n===0,key:`placeholder-${n}`})}function yl(n,e){let{[e]:t}=n.getBoundingClientRect(),o=getComputedStyle(n).getPropertyValue(`min-${e}`),s=o.endsWith("px")?parseInt(o,10):0;return{size:t,minSize:s}}var Xo=require("react/jsx-runtime"),gn="hwFlexbox",Jo=(0,Ko.forwardRef)(function(e,t){let{breakPoints:r,children:o,column:s,className:i,flexFill:a,gap:l,fullPage:u,id:c,onSplitterMoved:p,resizeable:d,row:g,spacing:S,splitterSize:v,style:x,...y}=e,{content:E,rootRef:m}=Go({children:o,onSplitterMoved:p,style:x}),b=(0,Qo.default)(gn,i,{[`${gn}-column`]:s,[`${gn}-row`]:g,"flex-fill":a,"full-page":u});return(0,Xo.jsx)("div",{...y,className:b,"data-resizeable":d||void 0,id:c,ref:(0,qo.useForkRef)(m,t),style:{...x,gap:l,"--spacing":S},children:E})});Jo.displayName="Flexbox";var Ht=Jo;var ns=require("react");var Wt={ADD:"add",BLUR:"blur",BLUR_SPLITTER:"blur-splitter",DRAG_START:"drag-start",DRAG_STARTED:"drag-started",DRAG_DROP:"drag-drop",FOCUS:"focus",FOCUS_SPLITTER:"focus-splitter",INITIALIZE:"initialize",LAYOUT_RESIZE:"layout-resize",MAXIMIZE:"maximize",MINIMIZE:"minimize",REMOVE:"remove",REPLACE:"replace",RESTORE:"restore",SAVE:"save",SET_TITLE:"set-title",SPLITTER_RESIZE:"splitter-resize",SWITCH_TAB:"switch-tab",TEAR_OUT:"tear-out"};var gt=require("react");var kl=M(require("react"));var Rl=require("@vuu-ui/vuu-utils"),xl=M(require("react"));var Sl=require("@vuu-ui/vuu-utils"),jo=M(require("react"));var nt=require("react"),ue=new Map,ce=new Map;var mt=()=>{let n=(0,nt.useCallback)((i,a)=>{let l=ce.get(i);if(l)return a!==void 0&&l[a]!==void 0?l[a]:a!==void 0?void 0:l},[]),e=(0,nt.useCallback)((i,a,l)=>{if(a===void 0)ce.set(i,l);else if(ce.has(i)){let u=ce.get(i);ce.set(i,{...u,[a]:l})}else ce.set(i,{[a]:l})},[]),t=(0,nt.useCallback)((i,a)=>{if(ce.has(i)){if(a===void 0)ce.delete(i);else if(ce.get(i)[a]){let{[a]:u,...c}=ce.get(i);Object.keys(c).length>0?ce.set(i,c):ce.delete(i)}}},[]),r=(0,nt.useCallback)((i,a)=>{let l=ue.get(i);if(l)return a!==void 0?l[a]:l},[]),o=(0,nt.useCallback)((i,a,l)=>{if(a===void 0)ue.set(i,l);else if(ue.has(i)){let u=ue.get(i);ue.set(i,{...u,[a]:l})}else ue.set(i,{[a]:l})},[]),s=(0,nt.useCallback)((i,a)=>{if(ue.has(i)){if(a===void 0)ue.delete(i);else if(ue.get(i)[a]){let{[a]:u,...c}=ue.get(i);Object.keys(c).length>0?ue.set(i,c):ue.delete(i)}}},[]);return{loadSessionState:n,loadState:r,saveSessionState:e,saveState:o,purgeState:s,purgeSessionState:t}};var Tl=M(require("react"));var Cl=M(require("react"));var Pl=M(require("react"));var Ml=require("@vuu-ui/vuu-utils"),Dl=M(require("react"));var es=require("react"),Il=n=>console.log(`dispatch ${n.type}, have you forgotten to provide a LayoutProvider ?`),ts=(0,es.createContext)({dispatchLayoutProvider:Il,version:-1});var rs=require("react");var Ol=require("react/jsx-runtime");var se=()=>{let{dispatchLayoutProvider:n}=(0,gt.useContext)(ts);return n};var ss=require("react/jsx-runtime"),os=function(e){let{path:t}=e,r=se(),o=(0,ns.useCallback)(s=>{r({type:Wt.SPLITTER_RESIZE,path:t,sizes:s})},[r,t]);return(0,ss.jsx)(Ht,{...e,onSplitterMoved:o})};os.displayName="Flexbox";z("Flexbox",os,"container");var ds=require("@salt-ds/core"),fs=M(require("classnames")),ms=require("react");var ge=require("react");var st=require("react");var ot=new WeakMap,as=(n,e,t)=>{switch(t){case"height":return e.height;case"scrollHeight":return n.scrollHeight;case"scrollWidth":return n.scrollWidth;case"width":return e.width;default:return 0}},is=new ResizeObserver(n=>{for(let e of n){let{target:t,contentRect:r}=e,o=ot.get(t);if(o){let{onResize:s,measurements:i}=o,a=!1;for(let[l,u]of Object.entries(i)){let c=as(t,r,l);c!==u&&(a=!0,i[l]=c)}a&&s&&s(i)}}});function ls(n,e,t,r=!1){let o=(0,st.useRef)(e),s=(0,st.useCallback)(i=>{let a=i.getBoundingClientRect();return o.current.reduce((l,u)=>(l[u]=as(i,a,u),l),{})},[]);(0,st.useLayoutEffect)(()=>{let i=n.current,a=!1;async function l(){ot.set(i,{measurements:{}}),a=!1;let{fonts:u}=document;if(u&&await u.ready,!a){let c=ot.get(i);if(c){let p=s(i);c.measurements=p,is.observe(i),r&&t(p)}}}if(i){if(ot.has(i))throw Error("useResizeObserver attemping to observe same element twice");l()}return()=>{i&&ot.has(i)&&(is.unobserve(i),ot.delete(i),a=!0)}},[n,s]),(0,st.useLayoutEffect)(()=>{let i=n.current,a=ot.get(i);if(a){if(o.current!==e){o.current=e;let l=s(i);a.measurements=l}a.onResize=t}},[e,s,n,t])}function Vl(n,e){let t=document.body.querySelector(`.${n}`),r={get:function(o,s){let i=o.getPropertyValue(`--${n}-breakpoint-${s}`);return i?parseInt(i):void 0}};return t?new Proxy(getComputedStyle(t),r):e!=null?e:{}}var Al=([,n],[,e])=>e-n,Sn=n=>Object.entries(n).sort(Al).map(([e,t],r,o)=>[e,t,r<o.length-1?o[r+1][1]:9999]),yn=null,_l=(n="salt")=>{let{xs:e,sm:t,md:r,lg:o,xl:s}=Vl(n);return Sn({xs:e,sm:t,md:r,lg:o,xl:s})},us=n=>(yn===null&&(yn=_l(n)),yn);var Nl=[],cs=({breakPoints:n,smallerThan:e},t)=>{let[r,o]=(0,ge.useState)(e?!1:"lg"),s=(0,ge.useRef)(document.body),i=(0,ge.useRef)(n?Sn(n):us()),a=(0,ge.useRef)("lg"),l=(0,ge.useCallback)(c=>{if(i.current){for(let[p,d]of i.current)if(c>=d)return p}},[i]),u=(0,ge.useCallback)(c=>{if(e){let p=i.current.find(([d])=>d===e);if(p){let[,,d]=p;return c<d}}else return l(c);return c},[e,l]);return ls(t||s,i.current?["width"]:Nl,({width:c})=>{let p=u(c);p!==a.current&&(a.current=p,o(p))},!0),(0,ge.useEffect)(()=>{let c=t||s;if(c.current){let p=a.current;if(i.current){let{clientWidth:d}=c.current,g=u(d);a.current=g,g!==p&&o(g)}}},[o,u,t]),r};var Bl="data-collapsible",cg={[Bl]:!0,"data-pad-start":!0,"data-pad-end":!0};var ps=require("@vuu-ui/vuu-utils"),ie=require("react");var Fl=["xs","sm","md","lg","xl"],zl=12,hs=({children:n,cols:e,style:t})=>{let r=(0,ie.useRef)(null),o=(0,ie.useRef)(null),s=(0,ie.useRef)(),i=e!=null?e:zl,l=(t==null?void 0:t.flexDirection)==="column"?"height":"width",u=(0,ie.useMemo)(()=>Array.isArray(n)?n:(0,ie.isValidElement)(n)?[n]:[],[n]),c=(0,ie.useCallback)((p,d)=>{let g=br(p,d,Fl),S=[],v=[];for(let x=0;x<p.length;x++){let y=p[x],{style:{flex:E,...m}}=y.props;S.push((0,ie.cloneElement)(y,{key:(0,ps.getUniqueId)(),style:{...m,"--parent-col-count":i}})),v.push(g[x])}return[S,v]},[i]);return(0,ie.useMemo)(()=>{let[p,d]=c(u,l);o.current=d,s.current=p},[c,u,l]),{cols:i,content:s.current,rootRef:r}};var gs=require("react/jsx-runtime"),yr="hwFluidGrid",wn=(0,ms.forwardRef)(function(e,t){let{breakPoints:r,children:o,column:s,cols:i=12,className:a,flexFill:l,gap:u=3,fullPage:c,id:p,onSplitterMoved:d,resizeable:g,row:S,showGrid:v,spacing:x,splitterSize:y,style:E,...m}=e,{cols:b,content:w,rootRef:f}=hs({children:o,cols:i,style:E}),R=cs({breakPoints:r},f),L=(0,fs.default)(yr,a,{[`${yr}-column`]:s,[`${yr}-row`]:S,[`${yr}-show-grid`]:v,"flex-fill":l,"full-page":c}),P={...E,"--spacing":x,"--grid-col-count":b,"--grid-gap":u};return(0,gs.jsx)("div",{...m,className:L,"data-breakpoint":R,"data-cols":b,"data-resizeable":g||void 0,id:p,ref:(0,ds.useForkRef)(f,t),style:P,children:w})});wn.displayName="FluidGrid";var ys=require("react/jsx-runtime"),bs=function(e){return(0,ys.jsx)(wn,{...e})};bs.displayName="FluidGrid";z("FluidGrid",bs,"container");var Es=M(require("classnames")),He=M(require("react"));var $e=require("react");var Sr=(n,e,t,r)=>{var x;let{loadSessionState:o,purgeSessionState:s,purgeState:i,saveSessionState:a}=mt(),[l,u]=(0,$e.useState)((x=o(n,"contributions"))!=null?x:[]),c=se(),p=(0,$e.useCallback)((y,E)=>{let m=l.concat([{location:y,content:E}]);a(n,"contributions",m),u(m)},[l,n,a]),d=(0,$e.useCallback)(()=>{s(n,"contributions"),u([])},[n,s]),g=(0,$e.useCallback)(()=>{let y=o(n,"data-source");y&&y.unsubscribe(),s(n),i(n),c({type:"remove",path:t})},[c,n,o,s,i,t]),S=(0,$e.useCallback)(async(y,E,m)=>{var w;y.stopPropagation();let b=(w=e.current)==null?void 0:w.getBoundingClientRect();return new Promise((f,R)=>{c({type:"drag-start",evt:y,path:E===void 0?t:`${t}.${E}`,dragRect:b,preDragActivity:m,dropTargets:r,resolveDragStart:f,rejectDragStart:R})})},[e,c,t,r]);return[(0,$e.useCallback)(async(y,E)=>{var b;let{type:m}=y;switch(m){case"maximize":case"minimize":case"restore":return c({type:m,path:(b=y.path)!=null?b:t});case"remove":return g();case"mousedown":return S(E,y.index,y.preDragActivity);case"add-toolbar-contribution":return p(y.location,y.content);case"remove-toolbar-contribution":return d();default:return}},[c,t,g,S,p,d]),l]};var xr=require("@salt-ds/core"),xs=M(require("classnames")),Y=M(require("react"));var be=require("react");var Ss=({id:n,rootRef:e,path:t,dropTargets:r,title:o})=>{let s=se(),{loadState:i,loadSessionState:a,purgeState:l,saveState:u,saveSessionState:c}=mt(),[p,d]=Sr(n,e,t,r),g=(0,be.useMemo)(()=>{var f;return(f=i("view-title"))!=null?f:o},[i,o]),S=(0,be.useCallback)(f=>{t&&s({type:"set-title",path:t,title:f})},[s,t]),v=(0,be.useMemo)(()=>i(n),[n,i]),x=(0,be.useCallback)(f=>i(n,f),[n,i]),y=(0,be.useCallback)(f=>{l(n,f),s({type:"save"})},[n,s,l]),E=(0,be.useCallback)((f,R)=>{u(n,R,f),s({type:"save"})},[n,s,u]),m=(0,be.useCallback)(f=>a(n,f),[n,a]),b=(0,be.useCallback)((f,R)=>c(n,R,f),[n,c]),w=(0,be.useCallback)(({type:f,...R})=>{let{[f]:L}=R;E(L,f)},[E]);return{contributions:d,dispatchViewAction:p,load:x,loadSession:m,onConfigChange:w,onEditTitle:S,purge:y,restoredState:v,save:E,saveSession:b,title:g}};var wr=require("@heswell/salt-lab"),bt=require("react"),$l=[],ws=({mainRef:n,resize:e="responsive",rootRef:t})=>{let r=e==="defer",o=(0,bt.useRef)({}),s=(0,bt.useRef)(),i=(0,bt.useCallback)(()=>{n.current&&(n.current.style.height=o.current.height+"px",n.current.style.width=o.current.width+"px"),s.current=void 0},[n]),a=(0,bt.useCallback)(({height:l,width:u})=>{o.current.height=l,o.current.width=u,s.current!==null&&clearTimeout(s.current),s.current=window.setTimeout(i,40)},[i]);(0,wr.useResizeObserver)(t,r?wr.WidthHeight:$l,a,r)};var Rr=M(require("react")),Ul={dispatch:null},Rn=Rr.default.createContext(Ul),Rs=()=>{var e;let n=(0,Rr.useContext)(Rn);return(e=n==null?void 0:n.dispatch)!=null?e:null};var yt=require("react/jsx-runtime"),Gt="vuuView",Hl=(n,e)=>n&&e?{...n,...e}:n||e,vs=(0,Y.forwardRef)(function(e,t){let{Header:r=Cs,children:o,className:s,collapsed:i,closeable:a,"data-resizeable":l,dropTargets:u,expanded:c,flexFill:p,id:d,header:g,orientation:S="horizontal",path:v,resize:x="responsive",resizeable:y=l,tearOut:E,style:m={},title:b,...w}=e,f=(0,xr.useIdMemo)(d),R=(0,Y.useRef)(null),L=(0,Y.useRef)(null),[P,T]=(0,Y.useState)(),{contributions:C,dispatchViewAction:O,load:k,loadSession:V,onConfigChange:A,onEditTitle:U,purge:Z,restoredState:K,save:q,saveSession:J,title:oe}=Ss({id:f,rootRef:R,path:v,dropTargets:u,title:b});ws({mainRef:L,resize:x,rootRef:R});let fe=(0,Y.useCallback)(Zr=>{T(Zr)},[]),_e=()=>Y.default.isValidElement(o)&&(K||P)?Y.default.cloneElement(o,Hl(K,P)):o,Ne=(0,Y.useMemo)(()=>({dispatch:O,id:f,path:v,title:oe,load:k,loadSession:V,onConfigChange:A,purge:Z,save:q,saveSession:J,setComponentProps:fe}),[O,f,k,V,A,v,Z,q,J,fe,oe]),ur=typeof g=="object"?g:{};return(0,yt.jsx)("div",{...w,className:(0,xs.default)(Gt,s,{[`${Gt}-collapsed`]:i,[`${Gt}-expanded`]:c,[`${Gt}-resize-defer`]:x==="defer"}),"data-resizeable":y,id:f,ref:(0,xr.useForkRef)(t,R),style:m,tabIndex:-1,children:(0,yt.jsxs)(Rn.Provider,{value:Ne,children:[g?(0,yt.jsx)(r,{...ur,collapsed:i,contributions:C,expanded:c,closeable:a,onEditTitle:U,orientation:S,tearOut:E,title:oe}):null,(0,yt.jsx)("div",{className:`${Gt}-main`,ref:L,children:_e()})]})})});vs.displayName="View";var Ue=Y.default.memo(vs);Ue.displayName="View";z("View",Ue,"view");var ye=require("@heswell/salt-lab"),Ts=require("@salt-ds/icons");var De=require("react/jsx-runtime"),Cs=({className:n,contributions:e,collapsed:t,closeable:r,onEditTitle:o,orientation:s="horizontal",style:i,title:a="Untitled"})=>{let l=(0,He.useRef)(null),[u,c]=(0,He.useState)(a),[p,d]=(0,He.useState)(!1),g=Rs(),S=C=>g==null?void 0:g({type:"remove"},C),v="vuuHeader",x=()=>{var C;(C=l.current)==null||C.focus()},y=C=>{C.stopPropagation()},m=(0,Es.default)(v,n,`${v}-${t||s}`),b=()=>{d(!0)},w=C=>{C.key==="Enter"&&d(!0)},f=(C="",O="",k=!0,V=!1)=>{var A;d(!1),V?c(C):O!==C&&(c(O),o==null||o(O)),k===!1&&((A=l.current)==null||A.focus())},R=C=>{g==null||g({type:"mousedown"},C)},L=[],P=[],T=[];return e==null||e.forEach((C,O)=>{switch(C.location){case"pre-title":L.push(He.default.cloneElement(C.content,{key:O}));break;default:P.push(He.default.cloneElement(C.content,{key:O}))}}),a&&L.push((0,De.jsx)(ye.ToolbarField,{className:"vuuHeader-title",children:(0,De.jsx)(ye.EditableLabel,{editing:p,value:u,onChange:c,onMouseDownCapture:x,onEnterEditMode:b,onExitEditMode:f,onKeyDown:w,ref:l,tabIndex:0},"title")},"title")),r&&T.push((0,De.jsxs)(ye.ToolbarButton,{onClick:S,onMouseDown:y,children:[(0,De.jsx)(Ts.CloseIcon,{})," Close"]},"close")),P.length>0&&L.push((0,De.jsx)(ye.Tooltray,{"data-align-end":!0,children:P},"contributions")),T.length>0&&L.push((0,De.jsx)(ye.Tooltray,{"data-align-end":!0,children:T},"actions")),(0,De.jsx)(ye.Toolbar,{className:m,orientation:s,style:i,onMouseDown:R,children:L})};var Ps=require("@vuu-ui/vuu-utils"),Cr=require("@heswell/salt-lab"),xn=M(require("classnames")),Er=require("react");var vr=require("react/jsx-runtime"),Wl=n=>{let e=n.cloneNode(!0);return e.id="",delete e.dataset.idx,e},Ms=(0,Er.memo)(({className:n,children:e,idx:t,resizeable:r,header:o,closeable:s,...i})=>(0,vr.jsx)(Cr.ListItem,{className:(0,xn.default)("vuuPaletteItem",n),"data-draggable":!0,...i}));Ms.displayName="PaletteItem";var Gl=({children:n,className:e,orientation:t="horizontal",ViewProps:r,...o})=>{let s=se(),i="vuuPalette";function a(l){var R;let c=l.target.closest(".vuuPaletteItem"),p=parseInt((R=c.dataset.idx)!=null?R:"-1");p!==-1&&console.log({children:n,idx:p,listItemElement:c});let{props:{caption:d,children:g,template:S,...v}}=n[p],{height:x,left:y,top:E,width:m}=c.getBoundingClientRect(),b=(0,Ps.uuid)(),f=S?g:(0,vr.jsx)(Ue,{...r,...{id:b,key:b},...v,title:v.label,children:g});s({dragRect:{left:y,top:E,right:y+m,bottom:E+150,width:m,height:x},dragElement:Wl(c),evt:l.nativeEvent,instructions:{DoNotRemove:!0,DoNotTransform:!0,RemoveDraggableOnDragEnd:!0,dragThreshold:10},path:"*",payload:f,type:"drag-start"})}return(0,vr.jsx)(Cr.List,{...o,borderless:!0,className:(0,xn.default)(i,e,`${i}-${t}`),maxHeight:800,selected:null,children:n.map((l,u)=>l.type===Ms?(0,Er.cloneElement)(l,{key:u,onMouseDown:a}):l)})};z("Palette",Gl,"view");var ql=require("@vuu-ui/vuu-utils"),vn=require("@heswell/salt-lab"),Ds=M(require("classnames"));var Ls=require("react/jsx-runtime"),Ql="vuuPalette";var Kl=({className:n,...e})=>(0,Ls.jsx)(vn.List,{...e,className:(0,Ds.default)(Ql,n),height:"100%",selectionStrategy:"none"});z("PaletteSalt",Kl,"view");var We=require("@heswell/salt-lab"),Is=require("@salt-ds/core"),Os=M(require("classnames")),Le=M(require("react"));var it=require("react/jsx-runtime"),ks="Tabs",Jl=()=>{},Xl=(n,e)=>{var t,r;return(r=(t=n.props)==null?void 0:t.title)!=null?r:`Tab ${e+1}`},jl=n=>{let e=[];return Le.default.Children.forEach(n,t=>{Le.default.isValidElement(t)?e.push(t):console.warn("Stack has unexpected child element type")}),e},Cn=(0,Le.forwardRef)(function({active:e=0,children:t,className:r,enableAddTab:o,enableCloseTabs:s,getTabIcon:i=Jl,getTabLabel:a=Xl,id:l,keyBoardActivation:u="manual",onMouseDown:c,onTabAdd:p,onTabClose:d,onTabEdit:g,onTabSelectionChanged:S,showTabs:v,style:x,TabstripProps:y},E){var O;let m=(0,Is.useIdMemo)(l),b=k=>{S==null||S(k)},w=k=>{d==null||d(k)},f=()=>{p==null||p(Le.default.Children.count(t))},R=k=>{var Z;let A=k.target.closest('[role^="tab"]');if((A==null?void 0:A.getAttribute("role"))==="tab"){let K=parseInt((Z=A.dataset.idx)!=null?Z:"-1");if(K===-1)throw Error("Stack: mousedown on tab with unknown index");c==null||c(k,K)}},L=(0,Le.useCallback)((k,V,A,U)=>{g==null||g(U,V)},[g]),P=()=>{var k;return Le.default.isValidElement(t)?t:Array.isArray(t)&&(k=t[e])!=null?k:null},T=()=>jl(t).map((k,V)=>{let A=`${m}-${V}`,{closeable:U,id:Z}=k.props;return(0,it.jsx)(We.Tab,{ariaControls:`${A}-tab`,"data-icon":i(k,V),draggable:!0,id:A,label:a(k,V),closeable:U&&(y==null?void 0:y.enableCloseTab)!==!1,editable:(y==null?void 0:y.enableRenameTab)!==!1},Z!=null?Z:V)}),C=P();return(0,it.jsxs)("div",{className:(0,Os.default)(ks,r,{[`${ks}-horizontal`]:(y==null?void 0:y.orientation)==="vertical"}),style:x,id:m,ref:E,children:[v?(0,it.jsx)(We.Toolbar,{className:"vuuTabHeader vuuHeader",orientation:y==null?void 0:y.orientation,children:(0,it.jsx)(We.ToolbarField,{disableFocusRing:!0,"data-collapsible":"dynamic","data-priority":"3",style:{alignSelf:"flex-end"},children:(0,it.jsx)(We.Tabstrip,{...y,activeTabIndex:(O=y==null?void 0:y.activeTabIndex)!=null?O:C===null?-1:e,enableRenameTab:(y==null?void 0:y.enableRenameTab)!==!1,enableAddTab:o,enableCloseTab:s,keyBoardActivation:u,onActiveChange:b,onAddTab:f,onCloseTab:w,onExitEditMode:L,onMouseDown:R,children:T()})})}):null,C]})});Cn.displayName="Stack";var Vs=require("@salt-ds/core"),Pr=M(require("react"));var Tr=require("react/jsx-runtime"),Yl=n=>(0,Tr.jsx)(Ue,{resizeable:!0,title:`Tab ${n}`,style:{flexGrow:1,flexShrink:0,flexBasis:0},header:!0,closeable:!0,children:(0,Tr.jsx)(an,{style:{flex:1}})}),As=n=>{let e=(0,Pr.useRef)(null),t=se(),{loadState:r}=mt(),{createNewChild:o=Yl,id:s,onTabSelectionChanged:i,path:a,...l}=n,{children:u}=n,c=(0,Vs.useIdMemo)(s),[p]=Sr(c,e,a);return(0,Tr.jsx)(Cn,{...l,id:c,getTabLabel:(E,m)=>{let{id:b,title:w}=E.props;return r(b,"view-title")||w||`Tab ${m+1}`},onMouseDown:async(E,m)=>{let b;await p({type:"mousedown",index:m,preDragActivity:async()=>new Promise(R=>{console.log("preDragActivity: Ok, gonna release the drag"),b=R})},E)&&(b==null||b(void 0))},onTabAdd:(E,m=Pr.default.Children.count(u))=>{if(a){console.log("[StackLayout] handleTabAdd");let b=o(m);console.log({component:b}),t({type:"add",path:a,component:b})}},onTabClose:E=>{if(Array.isArray(u)){let{props:{"data-path":m,path:b=m}}=u[E];t({type:"remove",path:b})}},onTabEdit:(E,m)=>{t({type:"set-title",path:`${a}.${E}`,title:m})},onTabSelectionChanged:E=>{console.log(`StackLayout handleTabSelection nextTab = ${E}`),a&&(t({type:"switch-tab",path:a,nextIdx:E}),i==null||i(E))},ref:e})};As.displayName="Stack";z("Stack",As,"container");var _s=M(require("react"));var Ns=require("react/jsx-runtime");var Bs=require("@heswell/salt-lab"),Fs=require("react/jsx-runtime");var Mr="(\\d+)(?:px)?",Zl=`^(?:${Mr}(?:\\s${Mr}(?:\\s${Mr}(?:\\s${Mr})?)?)?)$`,Ly=new RegExp(Zl);var eu=M(require("react")),tu=M(require("classnames"));var ru=require("@heswell/salt-lab"),nu=require("react/jsx-runtime");var zs=M(require("react")),at=require("react/jsx-runtime"),Dr=class extends zs.default.Component{constructor(e){super(e),this.state={errorMessage:null}}static getDerivedStateFromError(e){return{errorMessage:e.message}}componentDidCatch(e,t){console.log(e,t)}render(){return this.state.errorMessage?(0,at.jsxs)(at.Fragment,{children:[(0,at.jsx)("h1",{children:"Something went wrong."}),(0,at.jsx)("p",{children:this.state.errorMessage})]}):this.props.children}};var Us=require("react/jsx-runtime"),$s=()=>(0,Us.jsx)("div",{className:"hwLoader",children:"loading"});var qt=require("react/jsx-runtime"),Lr=new Map,ou=n=>((0,Ge.useEffect)(()=>()=>{Lr.delete(n)},[n]),Lr.has(n)||Lr.set(n,Ge.default.lazy(()=>import(n))),Lr.get(n));function su({url:n,css:e,params:t,...r}){console.log("Feature render",{css:e,url:n,props:r}),(0,Ge.useEffect)(()=>(console.log("%cFeature mount","color: green;"),()=>{console.log("%cFeature unmount","color:red;")}),[]),e&&import(e).then(s=>{console.log("%cInject Styles","color: blue;font-weight: bold"),document.adoptedStyleSheets=[...document.adoptedStyleSheets,s.default]});let o=ou(n);return(0,qt.jsx)(Dr,{children:(0,qt.jsx)(Ge.Suspense,{fallback:(0,qt.jsx)($s,{}),children:(0,qt.jsx)(o,{...r,...t})})})}var Hs=Ge.default.memo(su);Hs.displayName="Feature";z("Feature",Hs,"view");var iu=require("react"),au=require("@salt-ds/core"),Ws=require("@heswell/salt-lab");var Gs=require("react/jsx-runtime");var lu=require("@vuu-ui/vuu-utils");var uu=(n="login.html")=>{window.location.href=n},qs=n=>{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",uu(n)};var Zt=require("react"),pc=M(require("classnames")),hc=require("@salt-ds/core"),dc=require("@salt-ds/core");var wt=require("@vuu-ui/vuu-utils");var Qs=n=>n.type==="viewport-update"&&n.mode==="size-only";var Qt=(n,e)=>n===e?!0:n===void 0&&e===void 0,cu=({filter:n},{filter:e})=>n===void 0&&(e==null?void 0:e.filter)===""||e===void 0&&(n==null?void 0:n.filter)==="",pu=(n,e)=>{var t,r;return cu(n,e)?!1:((t=n.filter)==null?void 0:t.filter)!==((r=e.filter)==null?void 0:r.filter)},hu=({sort:n},{sort:e})=>n===void 0&&(e==null?void 0:e.sortDefs.length)===0||e===void 0&&(n==null?void 0:n.sortDefs.length)===0,du=(n,e)=>{let{sort:t}=n,{sort:r}=e;return Qt(t,r)||hu(n,e)?!1:t===void 0||r===void 0||(t==null?void 0:t.sortDefs.length)!==(r==null?void 0:r.sortDefs.length)?!0:t.sortDefs.some(({column:o,sortType:s},i)=>o!==r.sortDefs[i].column||s!==r.sortDefs[i].sortType)};var fu=({groupBy:n},{groupBy:e})=>n===void 0&&(e==null?void 0:e.length)===0||e===void 0&&(n==null?void 0:n.length)===0,mu=(n,e)=>{let{groupBy:t}=n,{groupBy:r}=e;return Qt(t,r)||fu(n,e)?!1:t===void 0||r===void 0||(t==null?void 0:t.length)!==(r==null?void 0:r.length)?!0:t.some((o,s)=>o!==(r==null?void 0:r[s]))},gu=({columns:n},{columns:e})=>n===void 0&&(e==null?void 0:e.length)===0||e===void 0&&(n==null?void 0:n.length)===0,bu=(n,e)=>{let{columns:t}=n,{columns:r}=e;return Qt(t,r)||gu(n,e)?!1:t===void 0||r===void 0||(t==null?void 0:t.length)!==(r==null?void 0:r.length)?!0:t.some((o,s)=>o!==(r==null?void 0:r[s]))},yu=({aggregations:n},{aggregations:e})=>n===void 0&&(e==null?void 0:e.length)===0||e===void 0&&(n==null?void 0:n.length)===0,Su=(n,e)=>{let{aggregations:t}=n,{aggregations:r}=e;return Qt(t,r)||yu(n,e)?!1:t===void 0||r===void 0||t.length!==r.length?!0:t.some(({column:o,aggType:s},i)=>o!==r[i].column||s!==r[i].aggType)},wu=()=>!1,Ks=(n,e)=>Qt(n,e)?!1:n===void 0||e===void 0?!0:bu(n,e)||pu(n,e)||du(n,e)||mu(n,e)||Su(n,e)||wu(n,e),Ru=["config","aggregate","viewport-update","columns","debounce-begin","disabled","enabled","filter","groupBy","vuu-link-created","vuu-link-removed","vuu-links","vuu-menu","sort","subscribed"],Js=n=>{let e=n.type;return Ru.includes(e)},Xs=n=>["config","aggregate","columns","filter","groupBy","sort"].includes(n.type),xu={filter:""},vu={sortDefs:[]},kr={aggregations:[],columns:[],filter:xu,groupBy:[],sort:vu},js=n=>{if(n.aggregations&&n.columns&&n.filter&&n.groupBy&&n.sort)return n;{let{aggregations:e=[],columns:t=[],filter:r={filter:""},groupBy:o=[],sort:s={sortDefs:[]},visualLink:i}=n;return{aggregations:e,columns:t,filter:r,groupBy:o,sort:s,visualLink:i}}};var Ys="GET_TABLE_LIST",Zs="GET_TABLE_META";var En=n=>n.type==="connection-status",ei=n=>n.type==="connection-metrics",ti=n=>typeof n.result<"u",ri=n=>n.type==="TABLE_META_RESP";var ni='\nvar ge=(r,e,t)=>{if(!e.has(r))throw TypeError("Cannot "+t)};var c=(r,e,t)=>(ge(r,e,"read from private field"),t?t.call(r):e.get(r)),N=(r,e,t)=>{if(e.has(r))throw TypeError("Cannot add the same private member more than once");e instanceof WeakSet?e.add(r):e.set(r,t)},de=(r,e,t,n)=>(ge(r,e,"write to private field"),n?n.call(r,t):e.set(r,t),t);function fe(r,e,t=[],n=[]){for(let s=0,o=r.length;s<o;s++)(e(r[s],s)?t:n).push(r[s]);return[t,n]}var w={IDX:0,RENDER_IDX:1,IS_LEAF:2,IS_EXPANDED:3,DEPTH:4,COUNT:5,KEY:6,SELECTED:7,count:8,PARENT_IDX:"parent_idx",IDX_POINTER:"idx_pointer",FILTER_COUNT:"filter_count",NEXT_FILTER_IDX:"next_filter_idx"};var{DEPTH:$t,IS_LEAF:Gt}=w;var he=r=>{var e,t;if(((e=globalThis.document)==null?void 0:e.cookie)!==void 0)return(t=globalThis.document.cookie.split("; ").find(n=>n.startsWith(`${r}=`)))==null?void 0:t.split("=")[1]};function z({from:r,to:e},t=0,n=Number.MAX_SAFE_INTEGER){if(t===0)return n<r?{from:0,to:0}:{from:r,to:Math.min(e,n)};if(r===0)return{from:r,to:Math.min(e+t,n)};{let s=e-r,o=Math.round(t/2),i=r-o<0,u=n-(e+o)<0;return i&&u?{from:0,to:n}:i?{from:0,to:s+t}:u?{from:Math.max(0,n-(s+t)),to:n}:{from:r-o,to:e+o}}}var rt=(r,{from:e,to:t})=>r>=e&&r<t;var I=class{constructor(e,t){this.from=e,this.to=t}isWithin(e){return rt(e,this)}overlap(e,t){return e>=this.to||t<this.from?[0,0]:[Math.max(e,this.from),Math.min(t,this.to)]}copy(){return new I(this.from,this.to)}};var{KEY:Yt}=w;var ot=["error","warn","info","debug"],it=r=>typeof r=="string"&&ot.includes(r),at="error",F=()=>{},ut="error",{loggingLevel:W=ut}=lt(),T=r=>{let e=W==="debug",t=e||W==="info",n=t||W==="warn",s=n||W==="error",o=t?f=>console.info(`[${r}] ${f}`):F,i=n?f=>console.warn(`[${r}] ${f}`):F,u=e?f=>console.debug(`[${r}] ${f}`):F;return{errorEnabled:s,error:s?f=>console.error(`[${r}] ${f}`):F}};function lt(){return typeof loggingSettings<"u"?loggingSettings:{loggingLevel:ct()}}function ct(){let r=he("vuu-logging-level");return it(r)?r:at}var{debug:pt,debugEnabled:gt}=T("range-monitor"),q=class{constructor(e){this.source=e;this.range={from:0,to:0};this.timestamp=0}isSet(){return this.timestamp!==0}set({from:e,to:t}){let{timestamp:n}=this;if(this.range.from=e,this.range.to=t,this.timestamp=performance.now(),n)gt&&pt(`<${this.source}> [${e}-${t}], ${(this.timestamp-n).toFixed(0)} ms elapsed`);else return 0}};function me(r){return Array.isArray(r)}function dt(r){return!Array.isArray(r)}var S,Ce=class{constructor(){N(this,S,new Map)}addListener(e,t){let n=c(this,S).get(e);n?me(n)?n.push(t):dt(n)&&c(this,S).set(e,[n,t]):c(this,S).set(e,t)}removeListener(e,t){if(!c(this,S).has(e))return;let n=c(this,S).get(e),s=-1;if(n===t)c(this,S).delete(e);else if(Array.isArray(n)){for(let o=length;o-- >0;)if(n[o]===t){s=o;break}if(s<0)return;n.length===1?(n.length=0,c(this,S).delete(e)):n.splice(s,1)}}removeAllListeners(e){e&&c(this,S).has(e)?c(this,S).delete(e):e===void 0&&c(this,S).clear()}emit(e,...t){if(c(this,S)){let n=c(this,S).get(e);n&&this.invokeHandler(n,t)}}once(e,t){let n=(...s)=>{this.removeListener(e,n),t(...s)};this.on(e,n)}on(e,t){this.addListener(e,t)}invokeHandler(e,t){if(me(e))e.slice().forEach(n=>this.invokeHandler(n,t));else switch(t.length){case 0:e();break;case 1:e(t[0]);break;case 2:e(t[0],t[1]);break;default:e.call(null,...t)}}};S=new WeakMap;var $=String.fromCharCode(8200),h=String.fromCharCode(8199);var un={DIGIT:h,TWO_DIGITS:h+h,THREE_DIGITS:h+h+h,FULL_PADDING:[null,$+h,$+h+h,$+h+h+h,$+h+h+h+h]};var ln=h+h+h+h+h+h+h+h+h;var ft={Enter:"Enter",Delete:"Delete"},ht={Home:"Home",End:"End",ArrowRight:"ArrowRight",ArrowLeft:"ArrowLeft",ArrowDown:"ArrowDown",ArrowUp:"ArrowUp",Tab:"Tab"},mt={F1:"F1",F2:"F2",F3:"F3",F4:"F4",F5:"F5",F6:"F6",F7:"F7",F8:"F8",F9:"F9",F10:"F10",F11:"F11",F12:"F12"},En={...ft,...ht,...mt};var{COUNT:vn}=w;var G=class{constructor(e){this.keys=new Map,this.free=[],this.nextKeyValue=0,this.reset(e)}next(){return this.free.length>0?this.free.pop():this.nextKeyValue++}reset({from:e,to:t}){this.keys.forEach((s,o)=>{(o<e||o>=t)&&(this.free.push(s),this.keys.delete(o))});let n=t-e;this.keys.size+this.free.length>n&&(this.free.length=Math.max(0,n-this.keys.size));for(let s=e;s<t;s++)if(!this.keys.has(s)){let o=this.next();this.keys.set(s,o)}this.nextKeyValue>this.keys.size&&(this.nextKeyValue=this.keys.size)}keyFor(e){let t=this.keys.get(e);if(t===void 0)throw console.log(`key not found\n keys: ${this.toDebugString()}\n free : ${this.free.join(",")} \n `),Error(`KeySet, no key found for rowIndex ${e}`);return t}toDebugString(){return Array.from(this.keys.entries()).map((e,t)=>`${e}=>${t}`).join(",")}};var{IDX:kn}=w;var{SELECTED:Nn}=w,v={False:0,True:1,First:2,Last:4};var Fn=v.True+v.First+v.Last,Wn=v.True+v.First,qn=v.True+v.Last;var be=r=>{if(r.every(t=>typeof t=="number"))return r;let e=[];for(let t of r)if(typeof t=="number")e.push(t);else for(let n=t[0];n<=t[1];n++)e.push(n);return e};var{debug:Vs,debugEnabled:Es,error:Se,info:V,infoEnabled:Ct,warn:x}=T("websocket-connection"),Re="ws",bt=r=>r.startsWith(Re+"://")||r.startsWith(Re+"s://"),Te={},Z=Symbol("setWebsocket"),A=Symbol("connectionCallback");async function Ee(r,e,t){return X(r,e,t)}async function Y(r){X(r.url,r.protocol,r[A],r)}async function X(r,e,t,n){let s=Te[r]||(Te[r]={attemptsRemaining:5,status:"disconnected"});try{t({type:"connection-status",status:"connecting"});let o=typeof n<"u",i=await Rt(r,e);console.info("%c\u26A1 %cconnected","font-size: 24px;color: green;font-weight: bold;","color:green; font-size: 14px;"),n!==void 0&&n[Z](i);let u=n!=null?n:new Q(i,r,e,t),g=o?"reconnected":"connection-open-awaiting-session";return t({type:"connection-status",status:g}),u.status=g,u}catch(o){console.log({evt:o});let i=--s.attemptsRemaining>0;if(t({type:"connection-status",status:"disconnected",reason:"failed to connect",retry:i}),i)return St(r,e,t,n,1e4);throw Error("Failed to establish connection")}}var St=(r,e,t,n,s)=>new Promise(o=>{setTimeout(()=>{o(X(r,e,t,n))},s)}),Rt=(r,e)=>new Promise((t,n)=>{let s=bt(r)?r:`wss://${r}`;Ct&&e!==void 0&&V(`WebSocket Protocol ${e==null?void 0:e.toString()}`);let o=new WebSocket(s,e);o.onopen=()=>t(o),o.onerror=i=>n(i)}),ye=()=>{x==null||x("Connection cannot be closed, socket not yet opened")},Ve=r=>{x==null||x(`Message cannot be sent, socket closed ${r.body.type}`)},Tt=r=>{try{return JSON.parse(r)}catch{throw Error(`Error parsing JSON response from server ${r}`)}},Q=class{constructor(e,t,n,s){this.close=ye;this.requiresLogin=!0;this.send=Ve;this.status="ready";this.messagesCount=0;this.connectionMetricsInterval=null;this.handleWebsocketMessage=e=>{let t=Tt(e.data);this.messagesCount+=1,this[A](t)};this.url=t,this.protocol=n,this[A]=s,this[Z](e)}reconnect(){Y(this)}[(A,Z)](e){let t=this[A];e.onmessage=o=>{this.status="connected",e.onmessage=this.handleWebsocketMessage,this.handleWebsocketMessage(o)},this.connectionMetricsInterval=setInterval(()=>{t({type:"connection-metrics",messagesLength:this.messagesCount}),this.messagesCount=0},1e3),e.onerror=()=>{Se("\u26A1 connection error"),t({type:"connection-status",status:"disconnected",reason:"error"}),this.connectionMetricsInterval&&(clearInterval(this.connectionMetricsInterval),this.connectionMetricsInterval=null),this.status==="connection-open-awaiting-session"?Se("Websocket connection lost before Vuu session established, check websocket configuration"):this.status!=="closed"&&(Y(this),this.send=s)},e.onclose=()=>{V==null||V("\u26A1 connection close"),t({type:"connection-status",status:"disconnected",reason:"close"}),this.connectionMetricsInterval&&(clearInterval(this.connectionMetricsInterval),this.connectionMetricsInterval=null),this.status!=="closed"&&(Y(this),this.send=s)};let n=o=>{e.send(JSON.stringify(o))},s=o=>{V==null||V(`TODO queue message until websocket reconnected ${o.body.type}`)};this.send=n,this.close=()=>{this.status="closed",e.close(),this.close=ye,this.send=Ve,V==null||V("close websocket")}}};var yt=["VIEW_PORT_MENUS_SELECT_RPC","VIEW_PORT_MENU_TABLE_RPC","VIEW_PORT_MENU_ROW_RPC","VIEW_PORT_MENU_CELL_RPC","VP_EDIT_CELL_RPC","VP_EDIT_ROW_RPC","VP_EDIT_ADD_ROW_RPC","VP_EDIT_DELETE_CELL_RPC","VP_EDIT_DELETE_ROW_RPC","VP_EDIT_SUBMIT_FORM_RPC"],we=r=>yt.includes(r.type),ee=({requestId:r,...e})=>[r,e],Me=r=>{let e=r.at(0);if(e.updateType==="SIZE"){if(r.length===1)return r;e=r.at(1)}let t=r.at(-1);return[e,t]},Ie=r=>{let e={};for(let t of r)(e[t.viewPortId]||(e[t.viewPortId]=[])).push(t);return e},te=({columns:r,dataTypes:e,key:t,table:n})=>({table:n,columns:r.map((s,o)=>({name:s,serverDataType:e[o]})),key:t});var ve=r=>r.type==="connection-status",_e=r=>r.type==="connection-metrics";var De=r=>"viewport"in r,xe=r=>r.type==="VIEW_PORT_MENU_RESP"&&r.action!==null&&B(r.action.table),B=r=>r!==null&&typeof r=="object"&&"table"in r&&"module"in r?r.table.startsWith("session"):!1;var Pe="CHANGE_VP_SUCCESS",Oe="CHANGE_VP_RANGE_SUCCESS",Le="CLOSE_TREE_NODE",ke="CLOSE_TREE_SUCCESS";var Ae="CREATE_VP",Ue="CREATE_VP_SUCCESS",Ne="DISABLE_VP",Fe="DISABLE_VP_SUCCESS";var We="ENABLE_VP",qe="ENABLE_VP_SUCCESS";var ne="GET_VP_VISUAL_LINKS",$e="GET_VIEW_PORT_MENUS";var Ge="HB",Be="HB_RESP",Ke="LOGIN",He="LOGIN_SUCCESS",Je="OPEN_TREE_NODE",je="OPEN_TREE_SUCCESS";var ze="REMOVE_VP";var se="RPC_RESP";var Ye="SET_SELECTION_SUCCESS",re="TABLE_META_RESP",oe="TABLE_LIST_RESP",Ze="TABLE_ROW";var Xe=r=>{switch(r){case"TypeAheadRpcHandler":return"TYPEAHEAD";default:return"SIMUL"}};var et=[],y=T("array-backed-moving-window"),C,K=class{constructor({from:e,to:t},{from:n,to:s},o){N(this,C,void 0);this.setRowCount=e=>{var t;if((t=y.info)==null||t.call(y,`setRowCount ${e}`),e<this.internalData.length&&(this.internalData.length=e),e<this.rowCount){this.rowsWithinRange=0;let n=Math.min(e,this.clientRange.to);for(let s=this.clientRange.from;s<n;s++){let o=s-c(this,C).from;this.internalData[o]!==void 0&&(this.rowsWithinRange+=1)}}this.rowCount=e};this.bufferBreakout=(e,t)=>{let n=this.bufferSize*.25;return c(this,C).to-t<n?!0:c(this,C).from>0&&e-c(this,C).from<n};this.bufferSize=o,this.clientRange=new I(e,t),de(this,C,new I(n,s)),this.internalData=new Array(o),this.rowsWithinRange=0,this.rowCount=0}get range(){return c(this,C)}get hasAllRowsWithinRange(){return this.rowsWithinRange===this.clientRange.to-this.clientRange.from||this.rowCount>0&&this.clientRange.from+this.rowsWithinRange===this.rowCount}outOfRange(e,t){let{from:n,to:s}=this.range;if(t<n||e>=s)return!0}setAtIndex(e){let{rowIndex:t}=e,n=this.isWithinClientRange(t);if(n||this.isWithinRange(t)){let s=t-c(this,C).from;!this.internalData[s]&&n&&(this.rowsWithinRange+=1),this.internalData[s]=e}return n}getAtIndex(e){return c(this,C).isWithin(e)&&this.internalData[e-c(this,C).from]!=null?this.internalData[e-c(this,C).from]:void 0}isWithinRange(e){return c(this,C).isWithin(e)}isWithinClientRange(e){return this.clientRange.isWithin(e)}setClientRange(e,t){var f;(f=y.debug)==null||f.call(y,`setClientRange ${e} - ${t}`);let n=this.clientRange.from,s=Math.min(this.clientRange.to,this.rowCount);if(e===n&&t===s)return[!1,et];let o=this.clientRange.copy();this.clientRange.from=e,this.clientRange.to=t,this.rowsWithinRange=0;for(let a=e;a<t;a++){let l=a-c(this,C).from;this.internalData[l]&&(this.rowsWithinRange+=1)}let i=et,u=c(this,C).from;if(this.hasAllRowsWithinRange)if(t>o.to){let a=Math.max(e,o.to);i=this.internalData.slice(a-u,t-u)}else{let a=Math.min(o.from,t);i=this.internalData.slice(e-u,a-u)}return[this.bufferBreakout(e,t),i]}setRange(e,t){var i;(i=y.debug)==null||i.call(y,`setRange ${e} - ${t}`);let[n,s]=c(this,C).overlap(e,t),o=new Array(t-e+this.bufferSize);this.rowsWithinRange=0;for(let u=n;u<s;u++){let g=this.getAtIndex(u);if(g){let f=u-e;o[f]=g,this.isWithinClientRange(u)&&(this.rowsWithinRange+=1)}}this.internalData=o,c(this,C).from=e,c(this,C).to=t}getData(){var u;let{from:e,to:t}=c(this,C),{from:n,to:s}=this.clientRange,o=Math.max(0,n-e),i=Math.min(t-e,t,s-e,(u=this.rowCount)!=null?u:t);return this.internalData.slice(o,i)}clear(){var e;(e=y.debug)==null||e.call(y,"clear"),this.internalData.length=0,this.rowsWithinRange=0,this.setRowCount(0)}getCurrentDataRange(){let e=this.internalData,t=e.length,[n]=this.internalData,s=this.internalData[t-1];if(n&&s)return[n.rowIndex,s.rowIndex];for(let o=0;o<t;o++)if(e[o]!==void 0){n=e[o];break}for(let o=t-1;o>=0;o--)if(e[o]!==void 0){s=e[o];break}return n&&s?[n.rowIndex,s.rowIndex]:[-1,-1]}};C=new WeakMap;var Vt=[],{debug:m,debugEnabled:H,error:Et,info:p,infoEnabled:wt,warn:P}=T("viewport"),Mt=({rowKey:r,updateType:e})=>e==="U"&&!r.startsWith("$root"),J=class{constructor({aggregations:e,bufferSize:t=50,columns:n,filter:s,groupBy:o=[],table:i,range:u,sort:g,title:f,viewport:a,visualLink:l}){this.dataWindow=void 0;this.hasUpdates=!1;this.pendingUpdates=[];this.pendingOperations=new Map;this.pendingRangeRequests=[];this.rowCountChanged=!1;this.tableSchema=null;this.batchMode=!0;this.useBatchMode=!0;this.rangeMonitor=new q("ViewPort");this.disabled=!1;this.isTree=!1;this.status="";this.suspended=!1;this.rangeRequestAlreadyPending=e=>{let{bufferSize:t}=this,n=t*.25,{from:s}=e;for(let{from:o,to:i}of this.pendingRangeRequests)if(s>=o&&s<i){if(e.to+n<=i)return!0;s=i}return!1};this.getNewRowCount=()=>{if(this.rowCountChanged&&this.dataWindow)return this.rowCountChanged=!1,this.dataWindow.rowCount};this.aggregations=e,this.bufferSize=t,this.clientRange=u,this.clientViewportId=a,this.columns=n,this.filter=s,this.groupBy=o,this.keys=new G(u),this.pendingLinkedParent=l,this.table=i,this.sort=g,this.title=f,wt&&(p==null||p(`constructor #${a} ${i.table} bufferSize=${t}`))}get hasUpdatesToProcess(){return this.suspended?!1:this.rowCountChanged||this.hasUpdates}get size(){var e,t;return(t=(e=this.dataWindow)==null?void 0:e.rowCount)!=null?t:0}subscribe(){let{filter:e}=this.filter;return this.status=this.status==="subscribed"?"resubscribing":"subscribing",{type:Ae,table:this.table,range:z(this.clientRange,this.bufferSize),aggregations:this.aggregations,columns:this.columns,sort:this.sort,groupBy:this.groupBy,filterSpec:{filter:e}}}handleSubscribed({viewPortId:e,aggregations:t,columns:n,filterSpec:s,range:o,sort:i,groupBy:u}){return this.serverViewportId=e,this.status="subscribed",this.aggregations=t,this.columns=n,this.groupBy=u,this.isTree=u&&u.length>0,this.dataWindow=new K(this.clientRange,o,this.bufferSize),{aggregations:t,type:"subscribed",clientViewportId:this.clientViewportId,columns:n,filter:s,groupBy:u,range:o,sort:i,tableSchema:this.tableSchema}}awaitOperation(e,t){this.pendingOperations.set(e,t)}completeOperation(e,...t){var u;let{clientViewportId:n,pendingOperations:s}=this,o=s.get(e);if(!o){Et("no matching operation found to complete");return}let{type:i}=o;if(p==null||p(`completeOperation ${i}`),s.delete(e),i==="CHANGE_VP_RANGE"){let[g,f]=t;(u=this.dataWindow)==null||u.setRange(g,f);for(let a=this.pendingRangeRequests.length-1;a>=0;a--){let l=this.pendingRangeRequests[a];if(l.requestId===e){l.acked=!0;break}else P==null||P("range requests sent faster than they are being ACKed")}}else if(i==="config"){let{aggregations:g,columns:f,filter:a,groupBy:l,sort:d}=o.data;return this.aggregations=g,this.columns=f,this.filter=a,this.groupBy=l,this.sort=d,l.length>0?this.isTree=!0:this.isTree&&(this.isTree=!1),m==null||m(`config change confirmed, isTree : ${this.isTree}`),{clientViewportId:n,type:i,config:o.data}}else{if(i==="groupBy")return this.isTree=o.data.length>0,this.groupBy=o.data,m==null||m(`groupBy change confirmed, isTree : ${this.isTree}`),{clientViewportId:n,type:i,groupBy:o.data};if(i==="columns")return this.columns=o.data,{clientViewportId:n,type:i,columns:o.data};if(i==="filter")return this.filter=o.data,{clientViewportId:n,type:i,filter:o.data};if(i==="aggregate")return this.aggregations=o.data,{clientViewportId:n,type:"aggregate",aggregations:this.aggregations};if(i==="sort")return this.sort=o.data,{clientViewportId:n,type:i,sort:this.sort};if(i!=="selection"){if(i==="disable")return this.disabled=!0,{type:"disabled",clientViewportId:n};if(i==="enable")return this.disabled=!1,{type:"enabled",clientViewportId:n};if(i==="CREATE_VISUAL_LINK"){let[g,f,a]=t;return this.linkedParent={colName:g,parentViewportId:f,parentColName:a},this.pendingLinkedParent=void 0,{type:"vuu-link-created",clientViewportId:n,colName:g,parentViewportId:f,parentColName:a}}else if(i==="REMOVE_VISUAL_LINK")return this.linkedParent=void 0,{type:"vuu-link-removed",clientViewportId:n}}}}rangeRequest(e,t){H&&this.rangeMonitor.set(t);let n="CHANGE_VP_RANGE";if(this.dataWindow){let[s,o]=this.dataWindow.setClientRange(t.from,t.to),i,u=this.dataWindow.rowCount||void 0,g=s&&!this.rangeRequestAlreadyPending(t)?{type:n,viewPortId:this.serverViewportId,...z(t,this.bufferSize,u)}:null;if(g){H&&(m==null||m(`create CHANGE_VP_RANGE: [${g.from} - ${g.to}]`)),this.awaitOperation(e,{type:n});let a=this.pendingRangeRequests.at(-1);if(a)if(a.acked)console.warn("Range Request before previous request is filled");else{let{from:l,to:d}=a;this.dataWindow.outOfRange(l,d)?i={clientViewportId:this.clientViewportId,type:"debounce-begin"}:P==null||P("Range Request before previous request is acked")}this.pendingRangeRequests.push({...g,requestId:e}),this.useBatchMode&&(this.batchMode=!0)}else o.length>0&&(this.batchMode=!1);this.keys.reset(this.dataWindow.clientRange);let f=this.isTree?ae:ie;return o.length?[g,o.map(a=>f(a,this.keys))]:i?[g,void 0,i]:[g]}else return[null]}setLinks(e){return this.links=e,[{type:"vuu-links",links:e,clientViewportId:this.clientViewportId},this.pendingLinkedParent]}setMenu(e){return{type:"vuu-menu",menu:e,clientViewportId:this.clientViewportId}}setTableSchema(e){this.tableSchema=e}openTreeNode(e,t){return this.useBatchMode&&(this.batchMode=!0),{type:Je,vpId:this.serverViewportId,treeKey:t.key}}closeTreeNode(e,t){return this.useBatchMode&&(this.batchMode=!0),{type:Le,vpId:this.serverViewportId,treeKey:t.key}}createLink(e,t,n,s){let o={type:"CREATE_VISUAL_LINK",parentVpId:n,childVpId:this.serverViewportId,parentColumnName:s,childColumnName:t};return this.awaitOperation(e,o),this.useBatchMode&&(this.batchMode=!0),o}removeLink(e){let t={type:"REMOVE_VISUAL_LINK",childVpId:this.serverViewportId};return this.awaitOperation(e,t),t}suspend(){this.suspended=!0,p==null||p("suspend")}resume(){return this.suspended=!1,H&&(m==null||m(`resume: ${this.currentData()}`)),this.currentData()}currentData(){let e=[];if(this.dataWindow){let t=this.dataWindow.getData(),{keys:n}=this,s=this.isTree?ae:ie;for(let o of t)o&&e.push(s(o,n))}return e}enable(e){return this.awaitOperation(e,{type:"enable"}),p==null||p(`enable: ${this.serverViewportId}`),{type:We,viewPortId:this.serverViewportId}}disable(e){return this.awaitOperation(e,{type:"disable"}),p==null||p(`disable: ${this.serverViewportId}`),{type:Ne,viewPortId:this.serverViewportId}}columnRequest(e,t){return this.awaitOperation(e,{type:"columns",data:t}),m==null||m(`columnRequest: ${t}`),this.createRequest({columns:t})}filterRequest(e,t){this.awaitOperation(e,{type:"filter",data:t}),this.useBatchMode&&(this.batchMode=!0);let{filter:n}=t;return p==null||p(`filterRequest: ${n}`),this.createRequest({filterSpec:{filter:n}})}setConfig(e,t){this.awaitOperation(e,{type:"config",data:t});let{filter:n,...s}=t;return this.useBatchMode&&(this.batchMode=!0),H?m==null||m(`setConfig ${JSON.stringify(t)}`):p==null||p("setConfig"),this.createRequest({...s,filterSpec:typeof(n==null?void 0:n.filter)=="string"?{filter:n.filter}:{filter:""}},!0)}aggregateRequest(e,t){return this.awaitOperation(e,{type:"aggregate",data:t}),p==null||p(`aggregateRequest: ${t}`),this.createRequest({aggregations:t})}sortRequest(e,t){return this.awaitOperation(e,{type:"sort",data:t}),p==null||p(`sortRequest: ${JSON.stringify(t.sortDefs)}`),this.createRequest({sort:t})}groupByRequest(e,t=Vt){var n;return this.awaitOperation(e,{type:"groupBy",data:t}),this.useBatchMode&&(this.batchMode=!0),this.isTree||(n=this.dataWindow)==null||n.clear(),this.createRequest({groupBy:t})}selectRequest(e,t){return this.awaitOperation(e,{type:"selection",data:t}),p==null||p(`selectRequest: ${t}`),{type:"SET_SELECTION",vpId:this.serverViewportId,selection:be(t)}}removePendingRangeRequest(e,t){for(let n=this.pendingRangeRequests.length-1;n>=0;n--){let{from:s,to:o}=this.pendingRangeRequests[n],i=!0;if(e>=s&&e<o||t>s&&t<o){i||console.warn("removePendingRangeRequest TABLE_ROWS are not for latest request"),this.pendingRangeRequests.splice(n,1);break}else i=!1}}updateRows(e){var s,o,i;let[t,n]=Me(e);if(t&&n&&this.removePendingRangeRequest(t.rowIndex,n.rowIndex),e.length===1&&t.vpSize===0&&this.disabled){m==null||m(`ignore a SIZE=0 message on disabled viewport (${e.length} rows)`);return}for(let u of e)this.isTree&&Mt(u)||((u.updateType==="SIZE"||((s=this.dataWindow)==null?void 0:s.rowCount)!==u.vpSize)&&((o=this.dataWindow)==null||o.setRowCount(u.vpSize),this.rowCountChanged=!0),u.updateType==="U"&&(i=this.dataWindow)!=null&&i.setAtIndex(u)&&(this.hasUpdates=!0,this.batchMode||this.pendingUpdates.push(u)))}getClientRows(){let e,t="size-only";if(this.hasUpdates&&this.dataWindow){let{keys:n}=this,s=this.isTree?ae:ie;if(this.pendingUpdates.length>0){e=[],t="update";for(let o of this.pendingUpdates)e.push(s(o,n));this.pendingUpdates.length=0}else{let o=this.dataWindow.getData();if(this.dataWindow.hasAllRowsWithinRange){e=[],t="batch";for(let i of o)e.push(s(i,n));this.batchMode=!1}}this.hasUpdates=!1}return[e,t]}createRequest(e,t=!1){return t?{type:"CHANGE_VP",viewPortId:this.serverViewportId,...e}:{type:"CHANGE_VP",viewPortId:this.serverViewportId,aggregations:this.aggregations,columns:this.columns,sort:this.sort,groupBy:this.groupBy,filterSpec:{filter:this.filter.filter},...e}}},ie=({rowIndex:r,rowKey:e,sel:t,data:n},s)=>[r,s.keyFor(r),!0,!1,0,0,e,t].concat(n),ae=({rowIndex:r,rowKey:e,sel:t,data:n},s)=>{let[o,i,,u,,g,...f]=n;return[r,s.keyFor(r),u,i,o,g,e,t].concat(f)};var tt=1;var{debug:M,debugEnabled:O,error:L,info:_,infoEnabled:It,warn:k}=T("server-proxy"),b=()=>`${tt++}`,vt={},_t=r=>r.disabled!==!0&&r.suspended!==!0,Dt={type:"NO_ACTION"},xt=(r,e,t)=>r.map(n=>n.parentVpId===e?{...n,label:t}:n);function Pt(r,e){return r.map(t=>{let{parentVpId:n}=t,s=e.get(n);if(s)return{...t,parentClientVpId:s.clientViewportId,label:s.title};throw Error("addLabelsToLinks viewport not found")})}var j=class{constructor(e,t){this.authToken="";this.user="user";this.pendingTableMetaRequests=new Map;this.pendingRequests=new Map;this.queuedRequests=[];this.cachedTableSchemas=new Map;this.connection=e,this.postMessageToClient=t,this.viewports=new Map,this.mapClientToServerViewport=new Map}async reconnect(){await this.login(this.authToken);let[e,t]=fe(Array.from(this.viewports.values()),_t);this.viewports.clear(),this.mapClientToServerViewport.clear();let n=s=>{s.forEach(o=>{let{clientViewportId:i}=o;this.viewports.set(i,o),this.sendMessageToServer(o.subscribe(),i)})};n(e),setTimeout(()=>{n(t)},2e3)}async login(e,t="user"){if(e)return this.authToken=e,this.user=t,new Promise((n,s)=>{this.sendMessageToServer({type:Ke,token:this.authToken,user:t},""),this.pendingLogin={resolve:n,reject:s}});this.authToken===""&&L("login, cannot login until auth token has been obtained")}subscribe(e){if(this.mapClientToServerViewport.has(e.viewport))L(`spurious subscribe call ${e.viewport}`);else{if(!this.hasSchemaForTable(e.table)&&!B(e.table)){_==null||_(`subscribe to ${e.table.table}, no metadata yet, request metadata`);let n=b();this.sendMessageToServer({type:"GET_TABLE_META",table:e.table},n),this.pendingTableMetaRequests.set(n,e.viewport)}let t=new J(e);this.viewports.set(e.viewport,t),this.sendIfReady(t.subscribe(),e.viewport,this.sessionId!=="")}}unsubscribe(e){let t=this.mapClientToServerViewport.get(e);t?(_==null||_(`Unsubscribe Message (Client to Server):\n ${t}`),this.sendMessageToServer({type:ze,viewPortId:t})):L(`failed to unsubscribe client viewport ${e}, viewport not found`)}getViewportForClient(e,t=!0){let n=this.mapClientToServerViewport.get(e);if(n){let s=this.viewports.get(n);if(s)return s;if(t)throw Error(`Viewport not found for client viewport ${e}`);return null}else{if(this.viewports.has(e))return this.viewports.get(e);if(t)throw Error(`Viewport server id not found for client viewport ${e}`);return null}}setViewRange(e,t){let n=b(),[s,o,i]=e.rangeRequest(n,t.range);s&&this.sendIfReady(s,n,e.status==="subscribed"),o?this.postMessageToClient({mode:"batch",type:"viewport-update",clientViewportId:e.clientViewportId,rows:o}):i&&this.postMessageToClient(i)}setConfig(e,t){let n=b(),s=e.setConfig(n,t.config);this.sendIfReady(s,n,e.status==="subscribed")}aggregate(e,t){let n=b(),s=e.aggregateRequest(n,t.aggregations);this.sendIfReady(s,n,e.status==="subscribed")}sort(e,t){let n=b(),s=e.sortRequest(n,t.sort);this.sendIfReady(s,n,e.status==="subscribed")}groupBy(e,t){let n=b(),s=e.groupByRequest(n,t.groupBy);this.sendIfReady(s,n,e.status==="subscribed")}filter(e,t){let n=b(),{filter:s}=t,o=e.filterRequest(n,s);this.sendIfReady(o,n,e.status==="subscribed")}setColumns(e,t){let n=b(),{columns:s}=t,o=e.columnRequest(n,s);this.sendIfReady(o,n,e.status==="subscribed")}setTitle(e,t){e&&(e.title=t.title,this.updateTitleOnVisualLinks(e))}select(e,t){let n=b(),{selected:s}=t,o=e.selectRequest(n,s);this.sendIfReady(o,n,e.status==="subscribed")}disableViewport(e){let t=b(),n=e.disable(t);this.sendIfReady(n,t,e.status==="subscribed")}enableViewport(e){if(e.disabled){let t=b(),n=e.enable(t);this.sendIfReady(n,t,e.status==="subscribed")}}resumeViewport(e){let t=e.resume();this.postMessageToClient({clientViewportId:e.clientViewportId,rows:t,type:"viewport-update"})}openTreeNode(e,t){if(e.serverViewportId){let n=b();this.sendIfReady(e.openTreeNode(n,t),n,e.status==="subscribed")}}closeTreeNode(e,t){if(e.serverViewportId){let n=b();this.sendIfReady(e.closeTreeNode(n,t),n,e.status==="subscribed")}}createLink(e,t){let{parentClientVpId:n,parentColumnName:s,childColumnName:o}=t,i=b(),u=this.mapClientToServerViewport.get(n);if(u){let g=e.createLink(i,o,u,s);this.sendMessageToServer(g,i)}else L("ServerProxy unable to create link, viewport not found")}removeLink(e){let t=b(),n=e.removeLink(t);this.sendMessageToServer(n,t)}updateTitleOnVisualLinks(e){var s;let{serverViewportId:t,title:n}=e;for(let o of this.viewports.values())if(o!==e&&o.links&&t&&n&&(s=o.links)!=null&&s.some(i=>i.parentVpId===t)){let[i]=o.setLinks(xt(o.links,t,n));this.postMessageToClient(i)}}removeViewportFromVisualLinks(e){var t;for(let n of this.viewports.values())if((t=n.links)!=null&&t.some(({parentVpId:s})=>s===e)){let[s]=n.setLinks(n.links.filter(({parentVpId:o})=>o!==e));this.postMessageToClient(s)}}menuRpcCall(e){let t=this.getViewportForClient(e.vpId,!1);if(t!=null&&t.serverViewportId){let[n,s]=ee(e);this.sendMessageToServer({...s,vpId:t.serverViewportId},n)}}rpcCall(e){let[t,n]=ee(e),s=Xe(n.service);this.sendMessageToServer(n,t,{module:s})}handleMessageFromClient(e){if(M==null||M(`handleMessageFromClient: ${e.type}`),De(e))if(e.type==="disable"){let t=this.getViewportForClient(e.viewport,!1);return t!==null?this.disableViewport(t):void 0}else{let t=this.getViewportForClient(e.viewport);switch(e.type){case"setViewRange":return this.setViewRange(t,e);case"config":return this.setConfig(t,e);case"aggregate":return this.aggregate(t,e);case"sort":return this.sort(t,e);case"groupBy":return this.groupBy(t,e);case"filter":return this.filter(t,e);case"select":return this.select(t,e);case"suspend":return t.suspend();case"resume":return this.resumeViewport(t);case"enable":return this.enableViewport(t);case"openTreeNode":return this.openTreeNode(t,e);case"closeTreeNode":return this.closeTreeNode(t,e);case"createLink":return this.createLink(t,e);case"removeLink":return this.removeLink(t);case"setColumns":return this.setColumns(t,e);case"setTitle":return this.setTitle(t,e);default:}}else{if(we(e))return this.menuRpcCall(e);{let{type:t,requestId:n}=e;switch(t){case"GET_TABLE_LIST":return this.sendMessageToServer({type:t},n);case"GET_TABLE_META":return this.sendMessageToServer({type:t,table:e.table},n);case"RPC_CALL":return this.rpcCall(e);default:}}}L(`Vuu ServerProxy Unexpected message from client ${JSON.stringify(e)}`)}awaitResponseToMessage(e){return new Promise((t,n)=>{let s=b();this.sendMessageToServer(e,s),this.pendingRequests.set(s,{reject:n,resolve:t})})}sendIfReady(e,t,n=!0){return n?this.sendMessageToServer(e,t):this.queuedRequests.push(e),n}sendMessageToServer(e,t=`${tt++}`,n=vt){let{module:s="CORE"}=n;this.authToken&&this.connection.send({requestId:t,sessionId:this.sessionId,token:this.authToken,user:this.user,module:s,body:e})}handleMessageFromServer(e){var u;let{body:t,requestId:n,sessionId:s}=e,o=this.pendingRequests.get(n);if(o){let{resolve:a}=o;this.pendingRequests.delete(n),a(t);return}let{viewports:i}=this;switch(t.type){case Ge:this.sendMessageToServer({type:Be,ts:+new Date},"NA");break;case He:if(s)this.sessionId=s,(u=this.pendingLogin)==null||u.resolve(s),this.pendingLogin=void 0;else throw Error("LOGIN_SUCCESS did not provide sessionId");break;case Ue:{let a=i.get(n);if(a){let{status:l}=a,{viewPortId:d}=t;n!==d&&(i.delete(n),i.set(d,a)),this.mapClientToServerViewport.set(n,d);let R=a.handleSubscribed(t);R&&(this.postMessageToClient(R),O&&M(`post DataSourceSubscribedMessage to client: ${JSON.stringify(R)}`)),a.disabled&&this.disableViewport(a),l==="subscribing"&&!B(a.table)&&(this.sendMessageToServer({type:ne,vpId:d}),this.sendMessageToServer({type:$e,vpId:d}),Array.from(i.entries()).filter(([E,{disabled:U}])=>E!==d&&!U).forEach(([E])=>{this.sendMessageToServer({type:ne,vpId:E})}))}}break;case"REMOVE_VP_SUCCESS":{let a=this.viewports.get(t.viewPortId);a&&(this.mapClientToServerViewport.delete(a.clientViewportId),i.delete(t.viewPortId),this.removeViewportFromVisualLinks(t.viewPortId))}break;case Ye:{let a=this.viewports.get(t.vpId);a&&a.completeOperation(n)}break;case Pe:case Fe:if(i.has(t.viewPortId)){let a=this.viewports.get(t.viewPortId);if(a){let l=a.completeOperation(n);l!==void 0&&(this.postMessageToClient(l),O&&M(`postMessageToClient ${JSON.stringify(l)}`))}}break;case qe:{let a=this.viewports.get(t.viewPortId);if(a){let l=a.completeOperation(n);if(l){this.postMessageToClient(l);let d=a.currentData();O&&M(`Enable Response (ServerProxy to Client): ${JSON.stringify(l)}`),a.size===0?O&&M("Viewport Enabled but size 0, resend to server"):(this.postMessageToClient({clientViewportId:a.clientViewportId,mode:"batch",rows:d,size:a.size,type:"viewport-update"}),O&&M(`Enable Response (ServerProxy to Client): send size ${a.size} ${d.length} rows from cache`))}}}break;case Ze:{let a=Ie(t.rows);for(let[l,d]of Object.entries(a)){let R=i.get(l);R?R.updateRows(d):k==null||k(`TABLE_ROW message received for non registered viewport ${l}`)}this.processUpdates()}break;case Oe:{let a=this.viewports.get(t.viewPortId);if(a){let{from:l,to:d}=t;a.completeOperation(n,l,d)}}break;case je:case ke:break;case"CREATE_VISUAL_LINK_SUCCESS":{let a=this.viewports.get(t.childVpId),l=this.viewports.get(t.parentVpId);if(a&&l){let{childColumnName:d,parentColumnName:R}=t,E=a.completeOperation(n,d,l.clientViewportId,R);E&&this.postMessageToClient(E)}}break;case"REMOVE_VISUAL_LINK_SUCCESS":{let a=this.viewports.get(t.childVpId);if(a){let l=a.completeOperation(n);l&&this.postMessageToClient(l)}}break;case oe:this.postMessageToClient({type:oe,tables:t.tables,requestId:n});break;case re:{let a=this.cacheTableMeta(t),l=this.pendingTableMetaRequests.get(n);if(l){this.pendingTableMetaRequests.delete(n);let d=this.viewports.get(l);d?d.setTableSchema(a):k==null||k("Message has come back AFTER CREATE_VP_SUCCESS, what do we do now")}else this.postMessageToClient({type:re,tableSchema:a,requestId:n})}break;case"VP_VISUAL_LINKS_RESP":{let a=this.getActiveLinks(t.links),l=this.viewports.get(t.vpId);if(a.length&&l){let d=Pt(a,this.viewports),[R,E]=l.setLinks(d);if(this.postMessageToClient(R),E){let{link:U,parentClientVpId:nt}=E,ce=b(),pe=this.mapClientToServerViewport.get(nt);if(pe){let st=l.createLink(ce,U.fromColumn,pe,U.toColumn);this.sendMessageToServer(st,ce)}}}}break;case"VIEW_PORT_MENUS_RESP":if(t.menu.name){let a=this.viewports.get(t.vpId);if(a){let l=a.setMenu(t.menu);this.postMessageToClient(l)}}break;case"VP_EDIT_RPC_RESPONSE":this.postMessageToClient({action:t.action,requestId:n,rpcName:t.rpcName,type:"VP_EDIT_RPC_RESPONSE"});break;case"VP_EDIT_RPC_REJECT":this.viewports.get(t.vpId)&&this.postMessageToClient({requestId:n,type:"VP_EDIT_RPC_REJECT",error:t.error});break;case"VIEW_PORT_MENU_RESP":if(xe(t)){let{action:a,rpcName:l}=t;this.awaitResponseToMessage({type:"GET_TABLE_META",table:a.table}).then(d=>{let R=te(d);this.postMessageToClient({rpcName:l,type:"VIEW_PORT_MENU_RESP",action:{...a,tableSchema:R},tableAlreadyOpen:this.isTableOpen(a.table),requestId:n})})}else{let{action:a}=t;this.postMessageToClient({type:"VIEW_PORT_MENU_RESP",action:a||Dt,tableAlreadyOpen:a!==null&&this.isTableOpen(a.table),requestId:n})}break;case se:{let{method:a,result:l}=t;this.postMessageToClient({type:se,method:a,result:l,requestId:n})}break;case"ERROR":L(t.msg);break;default:It&&_(`handleMessageFromServer ${t.type}.`)}}hasSchemaForTable(e){return this.cachedTableSchemas.has(`${e.module}:${e.table}`)}cacheTableMeta(e){let{module:t,table:n}=e.table,s=`${t}:${n}`,o=this.cachedTableSchemas.get(s);return o||(o=te(e),this.cachedTableSchemas.set(s,o)),o}isTableOpen(e){if(e){let t=e.table;for(let n of this.viewports.values())if(!n.suspended&&n.table.table===t)return!0}}getActiveLinks(e){return e.filter(t=>{let n=this.viewports.get(t.parentVpId);return n&&!n.suspended})}processUpdates(){this.viewports.forEach(e=>{var t;if(e.hasUpdatesToProcess){let[n,s]=e.getClientRows(),o=e.getNewRowCount();(o!==void 0||n&&n.length>0)&&(O&&M(`postMessageToClient #${e.clientViewportId} viewport-update ${s}, ${(t=n==null?void 0:n.length)!=null?t:"no"} rows, size ${o}`),this.postMessageToClient({clientViewportId:e.clientViewportId,mode:s,rows:n,size:o,type:"viewport-update"}))}})}};var D,{info:ue,infoEnabled:le}=T("worker");async function Ot(r,e,t,n,s){let o=await Ee(r,e,i=>{_e(i)?postMessage({type:"connection-metrics",messages:i}):ve(i)?(s(i),i.status==="reconnected"&&D.reconnect()):D.handleMessageFromServer(i)});D=new j(o,i=>Lt(i)),o.requiresLogin&&await D.login(t,n)}function Lt(r){postMessage(r)}var kt=async({data:r})=>{switch(r.type){case"connect":await Ot(r.url,r.protocol,r.token,r.username,postMessage),postMessage({type:"connected"});break;case"subscribe":le&&ue(`client subscribe: ${JSON.stringify(r)}`),D.subscribe(r);break;case"unsubscribe":le&&ue(`client unsubscribe: ${JSON.stringify(r)}`),D.unsubscribe(r.viewport);break;default:le&&ue(`client message: ${JSON.stringify(r)}`),D.handleMessageFromClient(r)}};self.addEventListener("message",kt);postMessage({type:"ready"});\n\n';var Eu=new Blob([(0,wt.getLoggingConfigForWorker)()+ni],{type:"text/javascript"}),Tu=URL.createObjectURL(Eu),St,Tn,Pn=[],Pu,Mu,Du=new Promise((n,e)=>{Pu=n,Mu=e}),si=()=>Du,Ir=new Map,Or=new Map,Lu=async({handleConnectionStatusChange:n,protocol:e,token:t="",username:r,url:o})=>t===""&&Tn===void 0?new Promise(s=>{Pn.push({resolve:s})}):Tn||(Tn=new Promise(s=>{let i=new Worker(Tu),a=window.setTimeout(()=>{console.error("timed out waiting for worker to load")},1e3);i.onmessage=l=>{let{data:u}=l;if(u.type==="ready")window.clearTimeout(a),i.postMessage({protocol:e,token:t,type:"connect",url:o,username:r});else if(u.type==="connected"){i.onmessage=ii,s(i);for(let c of Pn)c.resolve(i);Pn.length=0}else En(u)?n({data:u}):console.warn("ConnectionManager: Unexpected message from the worker")}}));function ii({data:n}){if(Js(n)){let e=Ir.get(n.clientViewportId);e?e.postMessageToClientDataSource(n):console.error(`[ConnectionManager] ${n.type} message received, viewport not found`)}else if(En(n))oi.emit("connection-status",n);else if(ei(n))oi.emit("connection-metrics",n);else{let e=n.requestId;if(Or.has(e)){let{resolve:t}=Or.get(e);Or.delete(e);let{type:r,requestId:o,...s}=n;ti(n)?t(n.result):ri(n)?t(n.tableSchema):t(s)}else console.warn("%cConnectionManager Unexpected message from the worker","color:red;font-weight:bold;")}}var Mn=n=>{let e=(0,wt.uuid)();return St.postMessage({requestId:e,...n}),new Promise((t,r)=>{Or.set(e,{resolve:t,reject:r})})},ku={subscribe:(n,e)=>{Ir.set(n.viewport,{status:"subscribing",request:n,postMessageToClientDataSource:e}),St.postMessage({type:"subscribe",...n})},unsubscribe:n=>{St.postMessage({type:"unsubscribe",viewport:n})},send:n=>{St.postMessage(n)},destroy:n=>{n&&Ir.has(n)&&Ir.delete(n)},rpcCall:async n=>Mn(n),getTableList:async()=>Mn({type:Ys}),getTableSchema:async n=>Mn({type:Zs,table:n})},Dn=class extends wt.EventEmitter{async connect({url:e,authToken:t,username:r,protocol:o}){return St=await Lu({protocol:o,url:e,token:t,username:r,handleConnectionStatusChange:ii}),ku}destroy(){St.terminate()}},oi=new Dn;var Iu=0,Kt=class{constructor(e,t){this.from=e,this.to=t}},B=class{constructor(e={}){this.id=Iu++,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=te.match(e)),t=>{let r=e(t);return r===void 0?null:[this,r]}}};B.closedBy=new B({deserialize:n=>n.split(" ")});B.openedBy=new B({deserialize:n=>n.split(" ")});B.group=new B({deserialize:n=>n.split(" ")});B.contextHash=new B({perNode:!0});B.lookAhead=new B({perNode:!0});B.mounted=new B({perNode:!0});var Ou=Object.create(null),te=class{constructor(e,t,r,o=0){this.name=e,this.props=t,this.id=r,this.flags=o}static define(e){let t=e.props&&e.props.length?Object.create(null):Ou,r=(e.top?1:0)|(e.skipped?2:0)|(e.error?4:0)|(e.name==null?8:0),o=new te(e.name||"",t,e.id,r);if(e.props){for(let s of e.props)if(Array.isArray(s)||(s=s(o)),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 o}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(B.group);return t?t.indexOf(e)>-1:!1}return this.id==e}static match(e){let t=Object.create(null);for(let r in e)for(let o of r.split(" "))t[o]=e[r];return r=>{for(let o=r.prop(B.group),s=-1;s<(o?o.length:0);s++){let i=t[s<0?r.name:o[s]];if(i)return i}}}};te.none=new te("",Object.create(null),0,8);var Rt=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 r of this.types){let o=null;for(let s of e){let i=s(r);i&&(o||(o=Object.assign({},r.props)),o[i[0].id]=i[1])}t.push(o?new te(r.name,o,r.id,r.flags):r)}return new Rt(t)}},Vr=new WeakMap,ai=new WeakMap,W;(function(n){n[n.ExcludeBuffers=1]="ExcludeBuffers",n[n.IncludeAnonymous=2]="IncludeAnonymous",n[n.IgnoreMounts=4]="IgnoreMounts",n[n.IgnoreOverlays=8]="IgnoreOverlays"})(W||(W={}));var Q=class{constructor(e,t,r,o,s){if(this.type=e,this.children=t,this.positions=r,this.length=o,this.props=null,s&&s.length){this.props=Object.create(null);for(let[i,a]of s)this.props[typeof i=="number"?i:i.id]=a}}toString(){let e=this.prop(B.mounted);if(e&&!e.overlay)return e.tree.toString();let t="";for(let r of this.children){let o=r.toString();o&&(t&&(t+=","),t+=o)}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 vt(this.topNode,e)}cursorAt(e,t=0,r=0){let o=Vr.get(this)||this.topNode,s=new vt(o);return s.moveTo(e,t),Vr.set(this,s._tree),s}get topNode(){return new Se(this,0,0,null)}resolve(e,t=0){let r=xt(Vr.get(this)||this.topNode,e,t,!1);return Vr.set(this,r),r}resolveInner(e,t=0){let r=xt(ai.get(this)||this.topNode,e,t,!0);return ai.set(this,r),r}iterate(e){let{enter:t,leave:r,from:o=0,to:s=this.length}=e,i=e.mode||0,a=(i&W.IncludeAnonymous)>0;for(let l=this.cursor(i|W.IncludeAnonymous);;){let u=!1;if(l.from<=s&&l.to>=o&&(!a&&l.type.isAnonymous||t(l)!==!1)){if(l.firstChild())continue;u=!0}for(;u&&r&&(a||!l.type.isAnonymous)&&r(l),!l.nextSibling();){if(!l.parent())return;u=!0}}}prop(e){return e.perNode?this.props?this.props[e.id]:void 0:this.type.prop(e)}get propValues(){let e=[];if(this.props)for(let t in this.props)e.push([+t,this.props[t]]);return e}balance(e={}){return this.children.length<=8?this:On(te.none,this.children,this.positions,0,this.children.length,0,this.length,(t,r,o)=>new Q(this.type,t,r,o,this.propValues),e.makeTree||((t,r,o)=>new Q(te.none,t,r,o)))}static build(e){return Vu(e)}};Q.empty=new Q(te.none,[],[],0);var Jt=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 Jt(this.buffer,this.index)}},ke=class{constructor(e,t,r){this.buffer=e,this.length=t,this.set=r}get type(){return te.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],r=this.buffer[e+3],o=this.set.types[t],s=o.name;if(/\W/.test(s)&&!o.isError&&(s=JSON.stringify(s)),e+=4,r==e)return s;let i=[];for(;e<r;)i.push(this.childString(e)),e=this.buffer[e+3];return s+"("+i.join(",")+")"}findChild(e,t,r,o,s){let{buffer:i}=this,a=-1;for(let l=e;l!=t&&!(ui(s,o,i[l+1],i[l+2])&&(a=l,r>0));l=i[l+3]);return a}slice(e,t,r){let o=this.buffer,s=new Uint16Array(t-e),i=0;for(let a=e,l=0;a<t;){s[l++]=o[a++],s[l++]=o[a++]-r;let u=s[l++]=o[a++]-r;s[l++]=o[a++]-e,i=Math.max(i,u)}return new ke(s,i,this.set)}};function ui(n,e,t,r){switch(n){case-2:return t<e;case-1:return r>=e&&t<e;case 0:return t<e&&r>e;case 1:return t<=e&&r>e;case 2:return r>e;case 4:return!0}}function ci(n,e){let t=n.childBefore(e);for(;t;){let r=t.lastChild;if(!r||r.to!=t.to)break;r.type.isError&&r.from==r.to?(n=t,t=r.prevSibling):t=r}return n}function xt(n,e,t,r){for(var o;n.from==n.to||(t<1?n.from>=e:n.from>e)||(t>-1?n.to<=e:n.to<e);){let i=!r&&n instanceof Se&&n.index<0?null:n.parent;if(!i)return n;n=i}let s=r?0:W.IgnoreOverlays;if(r)for(let i=n,a=i.parent;a;i=a,a=i.parent)i instanceof Se&&i.index<0&&((o=a.enter(e,t,s))===null||o===void 0?void 0:o.from)!=i.from&&(n=a);for(;;){let i=n.enter(e,t,s);if(!i)return n;n=i}}var Se=class{constructor(e,t,r,o){this._tree=e,this.from=t,this.index=r,this._parent=o}get type(){return this._tree.type}get name(){return this._tree.type.name}get to(){return this.from+this._tree.length}nextChild(e,t,r,o,s=0){for(let i=this;;){for(let{children:a,positions:l}=i._tree,u=t>0?a.length:-1;e!=u;e+=t){let c=a[e],p=l[e]+i.from;if(ui(o,r,p,p+c.length)){if(c instanceof ke){if(s&W.ExcludeBuffers)continue;let d=c.findChild(0,c.buffer.length,t,r-p,o);if(d>-1)return new ve(new Ln(i,c,e,p),null,d)}else if(s&W.IncludeAnonymous||!c.type.isAnonymous||In(c)){let d;if(!(s&W.IgnoreMounts)&&c.props&&(d=c.prop(B.mounted))&&!d.overlay)return new Se(d.tree,p,e,i);let g=new Se(c,p,e,i);return s&W.IncludeAnonymous||!g.type.isAnonymous?g:g.nextChild(t<0?c.children.length-1:0,t,r,o)}}}if(s&W.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,r=0){let o;if(!(r&W.IgnoreOverlays)&&(o=this._tree.prop(B.mounted))&&o.overlay){let s=e-this.from;for(let{from:i,to:a}of o.overlay)if((t>0?i<=s:i<s)&&(t<0?a>=s:a>s))return new Se(o.tree,o.overlay[0].from+this.from,-1,this)}return this.nextChild(0,1,e,t,r)}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 vt(this,e)}get tree(){return this._tree}toTree(){return this._tree}resolve(e,t=0){return xt(this,e,t,!1)}resolveInner(e,t=0){return xt(this,e,t,!0)}enterUnfinishedNodesBefore(e){return ci(this,e)}getChild(e,t=null,r=null){let o=_r(this,e,t,r);return o.length?o[0]:null}getChildren(e,t=null,r=null){return _r(this,e,t,r)}toString(){return this._tree.toString()}get node(){return this}matchContext(e){return Nr(this,e)}};function _r(n,e,t,r){let o=n.cursor(),s=[];if(!o.firstChild())return s;if(t!=null){for(;!o.type.is(t);)if(!o.nextSibling())return s}for(;;){if(r!=null&&o.type.is(r))return s;if(o.type.is(e)&&s.push(o.node),!o.nextSibling())return r==null?s:[]}}function Nr(n,e,t=e.length-1){for(let r=n.parent;t>=0;r=r.parent){if(!r)return!1;if(!r.type.isAnonymous){if(e[t]&&e[t]!=r.name)return!1;t--}}return!0}var Ln=class{constructor(e,t,r,o){this.parent=e,this.buffer=t,this.index=r,this.start=o}},ve=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,r){this.context=e,this._parent=t,this.index=r,this.type=e.buffer.set.types[e.buffer.buffer[r]]}child(e,t,r){let{buffer:o}=this.context,s=o.findChild(this.index+4,o.buffer[this.index+3],e,t-this.context.start,r);return s<0?null:new ve(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,r=0){if(r&W.ExcludeBuffers)return null;let{buffer:o}=this.context,s=o.findChild(this.index+4,o.buffer[this.index+3],t>0?1:-1,e-this.context.start,t);return s<0?null:new ve(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 ve(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 ve(this.context,this._parent,e.findChild(t,this.index,-1,0,4))}cursor(e=0){return new vt(this,e)}get tree(){return null}toTree(){let e=[],t=[],{buffer:r}=this.context,o=this.index+4,s=r.buffer[this.index+3];if(s>o){let i=r.buffer[this.index+1];e.push(r.slice(o,s,i)),t.push(0)}return new Q(this.type,e,t,this.to-this.from)}resolve(e,t=0){return xt(this,e,t,!1)}resolveInner(e,t=0){return xt(this,e,t,!0)}enterUnfinishedNodesBefore(e){return ci(this,e)}toString(){return this.context.buffer.childString(this.index)}getChild(e,t=null,r=null){let o=_r(this,e,t,r);return o.length?o[0]:null}getChildren(e,t=null,r=null){return _r(this,e,t,r)}get node(){return this}matchContext(e){return Nr(this,e)}},vt=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 Se)this.yieldNode(e);else{this._tree=e.context.parent,this.buffer=e.context;for(let r=e._parent;r;r=r._parent)this.stack.unshift(r.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:r,buffer:o}=this.buffer;return this.type=t||o.set.types[o.buffer[e]],this.from=r+o.buffer[e+1],this.to=r+o.buffer[e+2],!0}yield(e){return e?e instanceof Se?(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,r){if(!this.buffer)return this.yield(this._tree.nextChild(e<0?this._tree._tree.children.length-1:0,e,t,r,this.mode));let{buffer:o}=this.buffer,s=o.findChild(this.index+4,o.buffer[this.index+3],e,t-this.buffer.start,r);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,r=this.mode){return this.buffer?r&W.ExcludeBuffers?!1:this.enterChild(1,e,t):this.yield(this._tree.enter(e,t,r))}parent(){if(!this.buffer)return this.yieldNode(this.mode&W.IncludeAnonymous?this._tree._parent:this._tree.parent);if(this.stack.length)return this.yieldBuf(this.stack.pop());let e=this.mode&W.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,r=this.stack.length-1;if(e<0){let o=r<0?0:this.stack[r]+4;if(this.index!=o)return this.yieldBuf(t.findChild(o,this.index,-1,0,4))}else{let o=t.buffer[this.index+3];if(o<(r<0?t.buffer.length:t.buffer[this.stack[r]+3]))return this.yieldBuf(o)}return r<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,r,{buffer:o}=this;if(o){if(e>0){if(this.index<o.buffer.buffer.length)return!1}else for(let s=0;s<this.index;s++)if(o.buffer.buffer[s+3]<this.index)return!1;({index:t,parent:r}=o)}else({index:t,_parent:r}=this._tree);for(;r;{index:t,_parent:r}=r)if(t>-1)for(let s=t+e,i=e<0?-1:r._tree.children.length;s!=i;s+=e){let a=r._tree.children[s];if(this.mode&W.IncludeAnonymous||a instanceof ke||!a.type.isAnonymous||In(a))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,r=0;if(e&&e.context==this.buffer)e:for(let o=this.index,s=this.stack.length;s>=0;){for(let i=e;i;i=i._parent)if(i.index==o){if(o==this.index)return i;t=i,r=s+1;break e}o=this.stack[--s]}for(let o=r;o<this.stack.length;o++)t=new ve(this.buffer,t,this.stack[o]);return this.bufferNode=new ve(this.buffer,t,this.index)}get tree(){return this.buffer?null:this._tree._tree}iterate(e,t){for(let r=0;;){let o=!1;if(this.type.isAnonymous||e(this)!==!1){if(this.firstChild()){r++;continue}this.type.isAnonymous||(o=!0)}for(;o&&t&&t(this),o=this.type.isAnonymous,!this.nextSibling();){if(!r)return;this.parent(),r--,o=!0}}}matchContext(e){if(!this.buffer)return Nr(this.node,e);let{buffer:t}=this.buffer,{types:r}=t.set;for(let o=e.length-1,s=this.stack.length-1;o>=0;s--){if(s<0)return Nr(this.node,e,o);let i=r[t.buffer[this.stack[s]]];if(!i.isAnonymous){if(e[o]&&e[o]!=i.name)return!1;o--}}return!0}};function In(n){return n.children.some(e=>e instanceof ke||!e.type.isAnonymous||In(e))}function Vu(n){var e;let{buffer:t,nodeSet:r,maxBufferLength:o=1024,reused:s=[],minRepeatType:i=r.types.length}=n,a=Array.isArray(t)?new Jt(t,t.length):t,l=r.types,u=0,c=0;function p(b,w,f,R,L){let{id:P,start:T,end:C,size:O}=a,k=c;for(;O<0;)if(a.next(),O==-1){let K=s[P];f.push(K),R.push(T-b);return}else if(O==-3){u=P;return}else if(O==-4){c=P;return}else throw new RangeError(`Unrecognized record size: ${O}`);let V=l[P],A,U,Z=T-b;if(C-T<=o&&(U=v(a.pos-w,L))){let K=new Uint16Array(U.size-U.skip),q=a.pos-U.size,J=K.length;for(;a.pos>q;)J=x(U.start,K,J);A=new ke(K,C-U.start,r),Z=U.start-b}else{let K=a.pos-O;a.next();let q=[],J=[],oe=P>=i?P:-1,fe=0,_e=C;for(;a.pos>K;)oe>=0&&a.id==oe&&a.size>=0?(a.end<=_e-o&&(g(q,J,T,fe,a.end,_e,oe,k),fe=q.length,_e=a.end),a.next()):p(T,K,q,J,oe);if(oe>=0&&fe>0&&fe<q.length&&g(q,J,T,fe,T,_e,oe,k),q.reverse(),J.reverse(),oe>-1&&fe>0){let Ne=d(V);A=On(V,q,J,0,q.length,0,C-T,Ne,Ne)}else A=S(V,q,J,C-T,k-C)}f.push(A),R.push(Z)}function d(b){return(w,f,R)=>{let L=0,P=w.length-1,T,C;if(P>=0&&(T=w[P])instanceof Q){if(!P&&T.type==b&&T.length==R)return T;(C=T.prop(B.lookAhead))&&(L=f[P]+T.length+C)}return S(b,w,f,R,L)}}function g(b,w,f,R,L,P,T,C){let O=[],k=[];for(;b.length>R;)O.push(b.pop()),k.push(w.pop()+f-L);b.push(S(r.types[T],O,k,P-L,C-P)),w.push(L-f)}function S(b,w,f,R,L=0,P){if(u){let T=[B.contextHash,u];P=P?[T].concat(P):[T]}if(L>25){let T=[B.lookAhead,L];P=P?[T].concat(P):[T]}return new Q(b,w,f,R,P)}function v(b,w){let f=a.fork(),R=0,L=0,P=0,T=f.end-o,C={size:0,start:0,skip:0};e:for(let O=f.pos-b;f.pos>O;){let k=f.size;if(f.id==w&&k>=0){C.size=R,C.start=L,C.skip=P,P+=4,R+=4,f.next();continue}let V=f.pos-k;if(k<0||V<O||f.start<T)break;let A=f.id>=i?4:0,U=f.start;for(f.next();f.pos>V;){if(f.size<0)if(f.size==-3)A+=4;else break e;else f.id>=i&&(A+=4);f.next()}L=U,R+=k,P+=A}return(w<0||R==b)&&(C.size=R,C.start=L,C.skip=P),C.size>4?C:void 0}function x(b,w,f){let{id:R,start:L,end:P,size:T}=a;if(a.next(),T>=0&&R<i){let C=f;if(T>4){let O=a.pos-(T-4);for(;a.pos>O;)f=x(b,w,f)}w[--f]=C,w[--f]=P-b,w[--f]=L-b,w[--f]=R}else T==-3?u=R:T==-4&&(c=R);return f}let y=[],E=[];for(;a.pos>0;)p(n.start||0,n.bufferStart||0,y,E,-1);let m=(e=n.length)!==null&&e!==void 0?e:y.length?E[0]+y[0].length:0;return new Q(l[n.topID],y.reverse(),E.reverse(),m)}var li=new WeakMap;function Ar(n,e){if(!n.isAnonymous||e instanceof ke||e.type!=n)return 1;let t=li.get(e);if(t==null){t=1;for(let r of e.children){if(r.type!=n||!(r instanceof Q)){t=1;break}t+=Ar(n,r)}li.set(e,t)}return t}function On(n,e,t,r,o,s,i,a,l){let u=0;for(let S=r;S<o;S++)u+=Ar(n,e[S]);let c=Math.ceil(u*1.5/8),p=[],d=[];function g(S,v,x,y,E){for(let m=x;m<y;){let b=m,w=v[m],f=Ar(n,S[m]);for(m++;m<y;m++){let R=Ar(n,S[m]);if(f+R>=c)break;f+=R}if(m==b+1){if(f>c){let R=S[b];g(R.children,R.positions,0,R.children.length,v[b]+E);continue}p.push(S[b])}else{let R=v[m-1]+S[m-1].length-w;p.push(On(n,S,v,b,m,w,R,null,l))}d.push(w+E-s)}}return g(e,t,r,o,0),(a||l)(p,d,i)}var Br=class{startParse(e,t,r){return typeof e=="string"&&(e=new kn(e)),r=r?r.length?r.map(o=>new Kt(o.from,o.to)):[new Kt(0,0)]:[new Kt(0,e.length)],this.createParse(e,t||[],r)}parse(e,t,r){let o=this.startParse(e,t,r);for(;;){let s=o.advance();if(s)return s}}},kn=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 US=new B({perNode:!0});var Et=class{constructor(e,t,r,o,s,i,a,l,u,c=0,p){this.p=e,this.stack=t,this.state=r,this.reducePos=o,this.pos=s,this.score=i,this.buffer=a,this.bufferBase=l,this.curContext=u,this.lookAhead=c,this.parent=p}toString(){return`[${this.stack.filter((e,t)=>t%3==0).concat(this.state)}]@${this.pos}${this.score?"!"+this.score:""}`}static start(e,t,r=0){let o=e.parser.context;return new Et(e,[],t,r,r,0,[],0,o?new Fr(o,o.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 r=e>>19,o=e&65535,{parser:s}=this.p,i=s.dynamicPrecedence(o);if(i&&(this.score+=i),r==0){this.pushState(s.getGoto(this.state,o,!0),this.reducePos),o<s.minRepeatTerm&&this.storeNode(o,this.reducePos,this.reducePos,4,!0),this.reduceContext(o,this.reducePos);return}let a=this.stack.length-(r-1)*3-(e&262144?6:0),l=a?this.stack[a-2]:this.p.ranges[0].from,u=this.reducePos-l;u>=2e3&&!(!((t=this.p.parser.nodeSet.types[o])===null||t===void 0)&&t.isAnonymous)&&(l==this.p.lastBigReductionStart?(this.p.bigReductionCount++,this.p.lastBigReductionSize=u):this.p.lastBigReductionSize<u&&(this.p.bigReductionCount=1,this.p.lastBigReductionStart=l,this.p.lastBigReductionSize=u));let c=a?this.stack[a-1]:0,p=this.bufferBase+this.buffer.length-c;if(o<s.minRepeatTerm||e&131072){let d=s.stateFlag(this.state,1)?this.pos:this.reducePos;this.storeNode(o,l,d,p+4,!0)}if(e&262144)this.state=this.stack[a];else{let d=this.stack[a-3];this.state=s.getGoto(d,o,!0)}for(;this.stack.length>a;)this.stack.pop();this.reduceContext(o,l)}storeNode(e,t,r,o=4,s=!1){if(e==0&&(!this.stack.length||this.stack[this.stack.length-1]<this.buffer.length+this.bufferBase)){let i=this,a=this.buffer.length;if(a==0&&i.parent&&(a=i.bufferBase-i.parent.bufferBase,i=i.parent),a>0&&i.buffer[a-4]==0&&i.buffer[a-1]>-1){if(t==r)return;if(i.buffer[a-2]>=t){i.buffer[a-2]=r;return}}}if(!s||this.pos==r)this.buffer.push(e,t,r,o);else{let i=this.buffer.length;if(i>0&&this.buffer[i-4]!=0)for(;i>0&&this.buffer[i-2]>r;)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,o>4&&(o-=4);this.buffer[i]=e,this.buffer[i+1]=t,this.buffer[i+2]=r,this.buffer[i+3]=o}}shift(e,t,r){let o=this.pos;if(e&131072)this.pushState(e&65535,this.pos);else if(e&262144)this.pos=r,this.shiftContext(t,o),t<=this.p.parser.maxNode&&this.buffer.push(t,o,r,4);else{let s=e,{parser:i}=this.p;(r>this.pos||t<=i.maxNode)&&(this.pos=r,i.stateFlag(s,1)||(this.reducePos=r)),this.pushState(s,o),this.shiftContext(t,o),t<=i.maxNode&&this.buffer.push(t,o,r,4)}}apply(e,t,r){e&65536?this.reduce(e):this.shift(e,t,r)}useNode(e,t){let r=this.p.reused.length-1;(r<0||this.p.reused[r]!=e)&&(this.p.reused.push(e),r++);let o=this.pos;this.reducePos=this.pos=o+e.length,this.pushState(t,o),this.buffer.push(r,o,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 r=e.buffer.slice(t),o=e.bufferBase+t;for(;e&&o==e.bufferBase;)e=e.parent;return new Et(this.p,this.stack.slice(),this.state,this.reducePos,this.pos,this.score,r,o,this.curContext,this.lookAhead,e)}recoverByDelete(e,t){let r=e<=this.p.parser.maxNode;r&&this.storeNode(e,this.pos,t,4),this.storeNode(0,this.pos,t,r?8:4),this.pos=this.reducePos=t,this.score-=190}canShift(e){for(let t=new An(this);;){let r=this.p.parser.stateSlot(t.state,4)||this.p.parser.hasAction(t.state,e);if(r==0)return!1;if(!(r&65536))return!0;t.reduce(r)}}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 o=[];for(let s=0,i;s<t.length;s+=2)(i=t[s+1])!=this.state&&this.p.parser.hasAction(i,e)&&o.push(t[s],i);if(this.stack.length<120)for(let s=0;o.length<4<<1&&s<t.length;s+=2){let i=t[s+1];o.some((a,l)=>l&1&&a==i)||o.push(t[s],i)}t=o}let r=[];for(let o=0;o<t.length&&r.length<4;o+=2){let s=t[o+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[o],this.pos),i.score-=200,r.push(i)}return r}forceReduce(){let{parser:e}=this.p,t=e.stateSlot(this.state,5);if(!(t&65536))return!1;if(!e.validAction(this.state,t)){let r=t>>19,o=t&65535,s=this.stack.length-r*3;if(s<0||e.getGoto(this.stack[s],o,!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=[],r=(o,s)=>{if(!t.includes(o))return t.push(o),e.allActions(o,i=>{if(!(i&393216))if(i&65536){let a=(i>>19)-s;if(a>1){let l=i&65535,u=this.stack.length-a*3;if(u>=0&&e.getGoto(this.stack[u],l,!1)>=0)return a<<19|65536|l}}else{let a=r(i,s+1);if(a!=null)return a}})};return r(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 Fr(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()}},Fr=class{constructor(e,t){this.tracker=e,this.context=t,this.hash=e.strict?e.hash(t):0}},pi;(function(n){n[n.Insert=200]="Insert",n[n.Delete=190]="Delete",n[n.Reduce=100]="Reduce",n[n.MaxNext=4]="MaxNext",n[n.MaxInsertStackDepth=300]="MaxInsertStackDepth",n[n.DampenInsertStackDepth=120]="DampenInsertStackDepth",n[n.MinBigReduction=2e3]="MinBigReduction"})(pi||(pi={}));var An=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,r=e>>19;r==0?(this.stack==this.start.stack&&(this.stack=this.stack.slice()),this.stack.push(this.state,0,0),this.base+=3):this.base-=(r-1)*3;let o=this.start.p.parser.getGoto(this.stack[this.base-3],t,!0);this.state=o}},Tt=class{constructor(e,t,r){this.stack=e,this.pos=t,this.index=r,this.buffer=e.buffer,this.index==0&&this.maybeNext()}static create(e,t=e.bufferBase+e.buffer.length){return new Tt(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 Tt(this.stack,this.pos,this.index)}};function Xt(n,e=Uint16Array){if(typeof n!="string")return n;let t=null;for(let r=0,o=0;r<n.length;){let s=0;for(;;){let i=n.charCodeAt(r++),a=!1;if(i==126){s=65535;break}i>=92&&i--,i>=34&&i--;let l=i-32;if(l>=46&&(l-=46,a=!0),s+=l,a)break;s*=46}t?t[o++]=s:t=new e(s)}return t}var Ct=class{constructor(){this.start=-1,this.value=-1,this.end=-1,this.extended=-1,this.lookAhead=0,this.mask=0,this.context=0}},hi=new Ct,_n=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=hi,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 r=this.range,o=this.rangeIndex,s=this.pos+e;for(;s<r.from;){if(!o)return null;let i=this.ranges[--o];s-=r.from-i.to,r=i}for(;t<0?s>r.to:s>=r.to;){if(o==this.ranges.length-1)return null;let i=this.ranges[++o];s+=i.from-r.to,r=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,r,o;if(t>=0&&t<this.chunk.length)r=this.pos+e,o=this.chunk.charCodeAt(t);else{let s=this.resolveOffset(e,1);if(s==null)return-1;if(r=s,r>=this.chunk2Pos&&r<this.chunk2Pos+this.chunk2.length)o=this.chunk2.charCodeAt(r-this.chunk2Pos);else{let i=this.rangeIndex,a=this.range;for(;a.to<=r;)a=this.ranges[++i];this.chunk2=this.input.chunk(this.chunk2Pos=r),r+this.chunk2.length>a.to&&(this.chunk2=this.chunk2.slice(0,a.to-r)),o=this.chunk2.charCodeAt(0)}}return r>=this.token.lookAhead&&(this.token.lookAhead=r+1),o}acceptToken(e,t=0){let r=t?this.resolveOffset(t,-1):this.pos;if(r==null||r<this.token.start)throw new RangeError("Token end out of bounds");this.token.value=e,this.token.end=r}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=hi,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 r="";for(let o of this.ranges){if(o.from>=t)break;o.to>e&&(r+=this.input.read(Math.max(o.from,e),Math.min(o.to,t)))}return r}},qe=class{constructor(e,t){this.data=e,this.id=t}token(e,t){let{parser:r}=t.p;Si(this.data,e,t,this.id,r.data,r.tokenPrecTable)}};qe.prototype.contextual=qe.prototype.fallback=qe.prototype.extend=!1;var Nn=class{constructor(e,t,r){this.precTable=t,this.elseToken=r,this.data=typeof e=="string"?Xt(e):e}token(e,t){let r=e.pos,o=0;for(;;){let s=e.next<0,i=e.resolveOffset(1,1);if(Si(this.data,e,t,0,this.data,this.precTable),e.token.value>-1)break;if(this.elseToken==null)return;if(s||o++,i==null)break;e.reset(i,e.token)}o&&(e.reset(r,e.token),e.acceptToken(this.elseToken,o))}};Nn.prototype.contextual=qe.prototype.fallback=qe.prototype.extend=!1;function Si(n,e,t,r,o,s){let i=0,a=1<<r,{dialect:l}=t.p.parser;e:for(;a&n[i];){let u=n[i+1];for(let g=i+3;g<u;g+=2)if((n[g+1]&a)>0){let S=n[g];if(l.allows(S)&&(e.token.value==-1||e.token.value==S||_u(S,e.token.value,o,s))){e.acceptToken(S);break}}let c=e.next,p=0,d=n[i+2];if(e.next<0&&d>p&&n[u+d*3-3]==65535&&n[u+d*3-3]==65535){i=n[u+d*3-1];continue e}for(;p<d;){let g=p+d>>1,S=u+g+(g<<1),v=n[S],x=n[S+1]||65536;if(c<v)d=g;else if(c>=x)p=g+1;else{i=n[S+2],e.advance();continue e}}break}}function di(n,e,t){for(let r=e,o;(o=n[r])!=65535;r++)if(o==t)return r-e;return-1}function _u(n,e,t,r){let o=di(t,r,e);return o<0||di(t,r,n)<o}var we=typeof process<"u"&&process.env&&/\bparse\b/.test(process.env.LOG),Vn=null,fi;(function(n){n[n.Margin=25]="Margin"})(fi||(fi={}));function mi(n,e,t){let r=n.cursor(W.IncludeAnonymous);for(r.moveTo(e);;)if(!(t<0?r.childBefore(e):r.childAfter(e)))for(;;){if((t<0?r.to<e:r.from>e)&&!r.type.isError)return t<0?Math.max(0,Math.min(r.to-1,e-25)):Math.min(n.length,Math.max(r.from+1,e+25));if(t<0?r.prevSibling():r.nextSibling())break;if(!r.parent())return t<0?0:n.length}}var Bn=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?mi(e.tree,e.from+e.offset,1)-e.offset:e.from,this.safeTo=e.openEnd?mi(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 r=this.trees[t],o=this.index[t];if(o==r.children.length){this.trees.pop(),this.start.pop(),this.index.pop();continue}let s=r.children[o],i=this.start[t]+r.positions[o];if(i>e)return this.nextStart=i,null;if(s instanceof Q){if(i==e){if(i<this.safeFrom)return null;let a=i+s.length;if(a<=this.safeTo){let l=s.prop(B.lookAhead);if(!l||a+l<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}}},Fn=class{constructor(e,t){this.stream=t,this.tokens=[],this.mainToken=null,this.actions=[],this.tokens=e.tokenizers.map(r=>new Ct)}getActions(e){let t=0,r=null,{parser:o}=e.p,{tokenizers:s}=o,i=o.stateSlot(e.state,3),a=e.curContext?e.curContext.hash:0,l=0;for(let u=0;u<s.length;u++){if(!(1<<u&i))continue;let c=s[u],p=this.tokens[u];if(!(r&&!c.fallback)&&((c.contextual||p.start!=e.pos||p.mask!=i||p.context!=a)&&(this.updateCachedToken(p,c,e),p.mask=i,p.context=a),p.lookAhead>p.end+25&&(l=Math.max(p.lookAhead,l)),p.value!=0)){let d=t;if(p.extended>-1&&(t=this.addActions(e,p.extended,p.end,t)),t=this.addActions(e,p.value,p.end,t),!c.extend&&(r=p,t>d))break}}for(;this.actions.length>t;)this.actions.pop();return l&&e.setLookAhead(l),!r&&e.pos==this.stream.end&&(r=new Ct,r.value=e.p.parser.eofTerm,r.start=r.end=e.pos,t=this.addActions(e,r.value,r.end,t)),this.mainToken=r,this.actions}getMainToken(e){if(this.mainToken)return this.mainToken;let t=new Ct,{pos:r,p:o}=e;return t.start=r,t.end=Math.min(r+1,o.stream.end),t.value=r==o.stream.end?o.parser.eofTerm:0,t}updateCachedToken(e,t,r){let o=this.stream.clipPos(r.pos);if(t.token(this.stream.reset(o,e),r),e.value>-1){let{parser:s}=r.p;for(let i=0;i<s.specialized.length;i++)if(s.specialized[i]==e.value){let a=s.specializers[i](this.stream.read(e.start,e.end),r);if(a>=0&&r.p.parser.dialect.allows(a>>1)){a&1?e.extended=a>>1:e.value=a>>1;break}}}else e.value=0,e.end=this.stream.clipPos(o+1)}putAction(e,t,r,o){for(let s=0;s<o;s+=3)if(this.actions[s]==e)return o;return this.actions[o++]=e,this.actions[o++]=t,this.actions[o++]=r,o}addActions(e,t,r,o){let{state:s}=e,{parser:i}=e.p,{data:a}=i;for(let l=0;l<2;l++)for(let u=i.stateSlot(s,l?2:1);;u+=3){if(a[u]==65535)if(a[u+1]==1)u=Ie(a,u+2);else{o==0&&a[u+1]==2&&(o=this.putAction(Ie(a,u+2),t,r,o));break}a[u]==t&&(o=this.putAction(Ie(a,u+1),t,r,o))}return o}},gi;(function(n){n[n.Distance=5]="Distance",n[n.MaxRemainingPerStep=3]="MaxRemainingPerStep",n[n.MinBufferLengthPrune=500]="MinBufferLengthPrune",n[n.ForceReduceLimit=10]="ForceReduceLimit",n[n.CutDepth=15e3]="CutDepth",n[n.CutTo=9e3]="CutTo",n[n.MaxLeftAssociativeReductionCount=300]="MaxLeftAssociativeReductionCount",n[n.MaxStackCount=12]="MaxStackCount"})(gi||(gi={}));var zn=class{constructor(e,t,r,o){this.parser=e,this.input=t,this.ranges=o,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 _n(t,o),this.tokens=new Fn(e,this.stream),this.topTerm=e.top[1];let{from:s}=o[0];this.stacks=[Et.start(this,e.top[0],s)],this.fragments=r.length&&this.stream.end-s>e.bufferLength*4?new Bn(r,e.nodeSet):null}get parsedPos(){return this.minStackPos}advance(){let e=this.stacks,t=this.minStackPos,r=this.stacks=[],o,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 a=e[i];for(;;){if(this.tokens.mainToken=null,a.pos>t)r.push(a);else{if(this.advanceStack(a,r,e))continue;{o||(o=[],s=[]),o.push(a);let l=this.tokens.getMainToken(a);s.push(l.value,l.end)}}break}}if(!r.length){let i=o&&Nu(o);if(i)return this.stackToTree(i);if(this.parser.strict)throw we&&o&&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&&o){let i=this.stoppedAt!=null&&o[0].pos>this.stoppedAt?o[0]:this.runRecovery(o,s,r);if(i)return this.stackToTree(i.forceAll())}if(this.recovering){let i=this.recovering==1?1:this.recovering*3;if(r.length>i)for(r.sort((a,l)=>l.score-a.score);r.length>i;)r.pop();r.some(a=>a.reducePos>t)&&this.recovering--}else if(r.length>1){e:for(let i=0;i<r.length-1;i++){let a=r[i];for(let l=i+1;l<r.length;l++){let u=r[l];if(a.sameState(u)||a.buffer.length>500&&u.buffer.length>500)if((a.score-u.score||a.buffer.length-u.buffer.length)>0)r.splice(l--,1);else{r.splice(i--,1);continue e}}}r.length>12&&r.splice(12,r.length-12)}this.minStackPos=r[0].pos;for(let i=1;i<r.length;i++)r[i].pos<this.minStackPos&&(this.minStackPos=r[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,r){let o=e.pos,{parser:s}=this,i=we?this.stackID(e)+" -> ":"";if(this.stoppedAt!=null&&o>this.stoppedAt)return e.forceReduce()?e:null;if(this.fragments){let u=e.curContext&&e.curContext.tracker.strict,c=u?e.curContext.hash:0;for(let p=this.fragments.nodeAt(o);p;){let d=this.parser.nodeSet.types[p.type.id]==p.type?s.getGoto(e.state,p.type.id):-1;if(d>-1&&p.length&&(!u||(p.prop(B.contextHash)||0)==c))return e.useNode(p,d),we&&console.log(i+this.stackID(e)+` (via reuse of ${s.getName(p.type.id)})`),!0;if(!(p instanceof Q)||p.children.length==0||p.positions[0]>0)break;let g=p.children[0];if(g instanceof Q&&p.positions[0]==0)p=g;else break}}let a=s.stateSlot(e.state,4);if(a>0)return e.reduce(a),we&&console.log(i+this.stackID(e)+` (via always-reduce ${s.getName(a&65535)})`),!0;if(e.stack.length>=15e3)for(;e.stack.length>9e3&&e.forceReduce(););let l=this.tokens.getActions(e);for(let u=0;u<l.length;){let c=l[u++],p=l[u++],d=l[u++],g=u==l.length||!r,S=g?e:e.split();if(S.apply(c,p,d),we&&console.log(i+this.stackID(S)+` (via ${c&65536?`reduce of ${s.getName(c&65535)}`:"shift"} for ${s.getName(p)} @ ${o}${S==e?"":", split"})`),g)return!0;S.pos>o?t.push(S):r.push(S)}return!1}advanceFully(e,t){let r=e.pos;for(;;){if(!this.advanceStack(e,null,null))return!1;if(e.pos>r)return bi(e,t),!0}}runRecovery(e,t,r){let o=null,s=!1;for(let i=0;i<e.length;i++){let a=e[i],l=t[i<<1],u=t[(i<<1)+1],c=we?this.stackID(a)+" -> ":"";if(a.deadEnd&&(s||(s=!0,a.restart(),we&&console.log(c+this.stackID(a)+" (restarted)"),this.advanceFully(a,r))))continue;let p=a.split(),d=c;for(let g=0;p.forceReduce()&&g<10&&(we&&console.log(d+this.stackID(p)+" (via force-reduce)"),!this.advanceFully(p,r));g++)we&&(d=this.stackID(p)+" -> ");for(let g of a.recoverByInsert(l))we&&console.log(c+this.stackID(g)+" (via recover-insert)"),this.advanceFully(g,r);this.stream.end>a.pos?(u==a.pos&&(u++,l=0),a.recoverByDelete(l,u),we&&console.log(c+this.stackID(a)+` (via recover-delete ${this.parser.getName(l)})`),bi(a,r)):(!o||o.score<a.score)&&(o=a)}return o}stackToTree(e){return e.close(),Q.build({buffer:Tt.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=(Vn||(Vn=new WeakMap)).get(e);return t||Vn.set(e,t=String.fromCodePoint(this.nextStackID++)),t+e}};function bi(n,e){for(let t=0;t<e.length;t++){let r=e[t];if(r.pos==n.pos&&r.sameState(n)){e[t].score<n.score&&(e[t]=n);return}}e.push(n)}var $n=class{constructor(e,t,r){this.source=e,this.flags=t,this.disabled=r}allows(e){return!this.disabled||this.disabled[e]==0}};var lt=class extends Br{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 a=0;a<e.repeatNodeCount;a++)t.push("");let r=Object.keys(e.topRules).map(a=>e.topRules[a][1]),o=[];for(let a=0;a<t.length;a++)o.push([]);function s(a,l,u){o[a].push([l,l.deserialize(String(u))])}if(e.nodeProps)for(let a of e.nodeProps){let l=a[0];typeof l=="string"&&(l=B[l]);for(let u=1;u<a.length;){let c=a[u++];if(c>=0)s(c,l,a[u++]);else{let p=a[u+-c];for(let d=-c;d>0;d--)s(a[u++],l,p);u++}}}this.nodeSet=new Rt(t.map((a,l)=>te.define({name:l>=this.minRepeatTerm?void 0:a,id:l,props:o[l],top:r.indexOf(l)>-1,error:l==0,skipped:e.skippedNodes&&e.skippedNodes.indexOf(l)>-1}))),e.propSources&&(this.nodeSet=this.nodeSet.extend(...e.propSources)),this.strict=!1,this.bufferLength=1024;let i=Xt(e.tokenData);this.context=e.context,this.specializerSpecs=e.specialized||[],this.specialized=new Uint16Array(this.specializerSpecs.length);for(let a=0;a<this.specializerSpecs.length;a++)this.specialized[a]=this.specializerSpecs[a].term;this.specializers=this.specializerSpecs.map(yi),this.states=Xt(e.states,Uint32Array),this.data=Xt(e.stateData),this.goto=Xt(e.goto),this.maxTerm=e.maxTerm,this.tokenizers=e.tokenizers.map(a=>typeof a=="number"?new qe(i,a):a),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,r){let o=new zn(this,e,t,r);for(let s of this.wrappers)o=s(o,e,t,r);return o}getGoto(e,t,r=!1){let o=this.goto;if(t>=o[0])return-1;for(let s=o[t+1];;){let i=o[s++],a=i&1,l=o[s++];if(a&&r)return l;for(let u=s+(i>>1);s<u;s++)if(o[s]==e)return l;if(a)return-1}}hasAction(e,t){let r=this.data;for(let o=0;o<2;o++)for(let s=this.stateSlot(e,o?2:1),i;;s+=3){if((i=r[s])==65535)if(r[s+1]==1)i=r[s=Ie(r,s+2)];else{if(r[s+1]==2)return Ie(r,s+2);break}if(i==t||i==0)return Ie(r,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,r=>r==t?!0:null)}allActions(e,t){let r=this.stateSlot(e,4),o=r?t(r):void 0;for(let s=this.stateSlot(e,1);o==null;s+=3){if(this.data[s]==65535)if(this.data[s+1]==1)s=Ie(this.data,s+2);else break;o=t(Ie(this.data,s+1))}return o}nextStates(e){let t=[];for(let r=this.stateSlot(e,1);;r+=3){if(this.data[r]==65535)if(this.data[r+1]==1)r=Ie(this.data,r+2);else break;if(!(this.data[r+2]&1)){let o=this.data[r+1];t.some((s,i)=>i&1&&s==o)||t.push(this.data[r],o)}}return t}configure(e){let t=Object.assign(Object.create(lt.prototype),this);if(e.props&&(t.nodeSet=this.nodeSet.extend(...e.props)),e.top){let r=this.topRules[e.top];if(!r)throw new RangeError(`Invalid top rule name ${e.top}`);t.top=r}return e.tokenizers&&(t.tokenizers=this.tokenizers.map(r=>{let o=e.tokenizers.find(s=>s.from==r);return o?o.to:r})),e.specializers&&(t.specializers=this.specializers.slice(),t.specializerSpecs=this.specializerSpecs.map((r,o)=>{let s=e.specializers.find(a=>a.from==r.external);if(!s)return r;let i=Object.assign(Object.assign({},r),{external:s.to});return t.specializers[o]=yi(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),r=t.map(()=>!1);if(e)for(let s of e.split(" ")){let i=t.indexOf(s);i>=0&&(r[i]=!0)}let o=null;for(let s=0;s<t.length;s++)if(!r[s])for(let i=this.dialects[t[s]],a;(a=this.data[i++])!=65535;)(o||(o=new Uint8Array(this.maxTerm+1)))[a]=1;return new $n(e,r,o)}static deserialize(e){return new lt(e)}};function Ie(n,e){return n[e]|n[e+1]<<16}function Nu(n){let e=null;for(let t of n){let r=t.p.stoppedAt;(t.pos==t.p.stream.end||r!=null&&t.pos>r)&&t.p.parser.stateFlag(t.state,2)&&(!e||e.score<t.score)&&(e=t)}return e}function yi(n){if(n.external){let e=n.extend?1:0;return(t,r)=>n.external(t,r)<<1|e}return n.get}var Un=lt.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 Ce=require("@vuu-ui/vuu-utils");var re,Hn=class{constructor(){N(this,re,void 0)}setFilterCombinatorOp(e,t=h(this,re)){(0,Ce.isMultiClauseFilter)(t)&&t.op===e||D(this,re,{op:e,filters:[h(this,re)]})}add(e){if(h(this,re)===void 0)D(this,re,e);else if((0,Ce.isMultiClauseFilter)(h(this,re)))h(this,re).filters.push(e);else throw Error("Invalid filter passed to FilterExpression")}setColumn(e,t=h(this,re)){if((0,Ce.isMultiClauseFilter)(t)){let r=t.filters.at(-1);r&&this.setColumn(e,r)}else t&&(t.column=e)}setOp(e,t=h(this,re)){if((0,Ce.isMultiClauseFilter)(t)){let r=t.filters.at(-1);r&&this.setOp(e,r)}else t&&(t.op=e)}setValue(e,t=h(this,re)){var r;if((0,Ce.isMultiClauseFilter)(t)){let o=t.filters.at(-1);o&&this.setValue(e,o)}else(0,Ce.isMultiValueFilter)(t)?((r=t.values)!=null||(t.values=[]),t.values.push(e)):(0,Ce.isSingleValueFilter)(t)&&(t.value=e)}toJSON(e=h(this,re)){return this.name?{...e,name:this.name}:e}};re=new WeakMap;var Wn=(n,e)=>{let t=new Hn,r=n.cursor();do{let{name:o,from:s,to:i}=r;switch(o){case"ColumnValueExpression":t.add({});break;case"ColumnSetExpression":t.add({op:"in"});break;case"Or":case"And":t.setFilterCombinatorOp(e.substring(s,i));break;case"Column":t.setColumn(e.substring(s,i));break;case"Operator":t.setOp(e.substring(s,i));break;case"String":t.setValue(e.substring(s+1,i-1));break;case"Number":t.setValue(parseFloat(e.substring(s,i)));break;case"True":t.setValue(!0);break;case"False":t.setValue(!1);break;case"FilterName":t.name=e.substring(s,i);break;default:}}while(r.next());return t.toJSON()};var Bu=Un.configure({strict:!0}),zr=n=>{let e=Bu.parse(n);return Wn(e,n)};function $r(n,e){switch(e.op){case"in":return Fu(n,e);case"=":return zu(n,e);case">":return $u(n,e);case">=":return Uu(n,e);case"<":return Hu(n,e);case"<=":return Wu(n,e);case"starts":return Gu(n,e);case"and":return qu(n,e);case"or":return Qu(n,e);default:return console.log(`unrecognized filter type ${e.op}`),()=>!0}}var Fu=(n,e)=>t=>e.values.indexOf(t[n[e.column]])!==-1,zu=(n,e)=>t=>t[n[e.column]]===e.value,$u=(n,e)=>t=>t[n[e.column]]>e.value,Uu=(n,e)=>t=>t[n[e.column]]>=e.value,Hu=(n,e)=>t=>t[n[e.column]]<e.value,Wu=(n,e)=>t=>t[n[e.column]]<=e.value,Gu=(n,e)=>{let t=e.value;if(typeof t!="string")throw Error("string filter applied to value of wrong type");return r=>{let o=r[n[e.column]];if(typeof o!="string")throw Error("string filter applied to value of wrong type");return o.toLowerCase().startsWith(t.toLowerCase())}},qu=(n,e)=>{let t=e.filters.map(r=>$r(n,r));return r=>t.every(o=>o(r))};function Qu(n,e){let t=e.filters.map(r=>$r(n,r));return r=>t.some(o=>o(r))}var F=require("@vuu-ui/vuu-utils");var wi=require("@vuu-ui/vuu-utils"),{DEPTH:Gn,IS_EXPANDED:Ri,KEY:qn}=wi.metadataKeys,xi=(n,e)=>{let t=[];for(let r=0,o=0,s=!1,i=e.length;r<i;r++){let a=e[r],{[Gn]:l,[qn]:u}=a;if(u===n){let c=a.slice();for(c[Ri]=!1,t.push(c),o+=1,s=!0;r<i-1&&e[r+1][Gn]>l;)r+=1}else if(s){let c=a.slice();c[0]=o,c[1]=o,t.push(c),o+=1}else t.push(a),o+=1}return t},vi=(n,e,t,r,o)=>{let s=t.map(i=>r[i]);return Ci(o,s,n,e)},Ci=(n,e,t,r=[],o="$root",s=1,i=[])=>{let a=Object.keys(n).sort();for(let l of a){let u=i.length,c=`${o}|${l}`,p=[u,u,!1,!1,s,0,c,0];p[e[s-1]]=l,i.push(p),t.includes(c)&&(p[Ri]=!0,Array.isArray(n[l])?Ku(i,n[l],r,c,s+1):Ci(n[l],e,t,r,c,s+1,i))}return i},Ku=(n,e,t,r,o)=>{for(let s of e){let i=n.length,a=t[s].slice();a[0]=i,a[1]=i,a[Gn]=o,a[qn]=`${r}|${a[qn]}`,n.push(a)}},Ei=(n,e,t)=>{let r=e.map(i=>t[i]),o=Xu(n,r);return[Ju(o,r),o]},Ju=(n,e)=>{let r=[],o=0,s=Object.keys(n).sort();for(let i of s){let a=[o,o,!1,!1,1,0,`$root|${i}`,0];a[e[0]]=i,r.push(a),o+=1}return r};function Xu(n,e){let t={},r=e.length,o=r-1;for(let s=0,i=n.length;s<i;s++){let a=n[s],l=t,u,c;for(let p=0;p<r;p++){let d=e[p];c=a[d].toString(),u=l[c],u&&p===o?u.push(s):u?l=u:!u&&p<o?l=l[c]={}:u||(l[c]=[s])}}return t}var ju=(n,e,[t,r])=>{let o=r==="D"?e[t]:n[t],s=r==="D"?n[t]:e[t];return o===s?0:s===null||o>s?1:-1},Yu=n=>n.length===1?Zu(n):n.length===2?ec(n):tc(n),Zu=([[n,e]])=>(t,r)=>{let o=e==="D"?r[n]:t[n],s=e==="D"?t[n]:r[n];return o>s?1:s>o?-1:0},ec=([[n,e],[t,r]])=>(o,s)=>{let i=e==="D"?s[n]:o[n],a=e==="D"?o[n]:s[n],l=r==="D"?s[t]:o[t],u=r==="D"?o[t]:s[t];return i>a?1:a>i?-1:l>u?1:u>l?-1:0},tc=(n,e=ju)=>(t,r)=>{for(let o of n){let s=e(t,r,o);if(s!==0)return s}return 0},Ti=(n,{sortDefs:e},t)=>{let r=e.map(({column:s,sortType:i})=>[t[s],i]),o=Yu(r);return n.slice().sort(o)};var{debug:pe}=(0,F.logger)("ArrayDataSource"),{RENDER_IDX:rc,SELECTED:nc}=F.metadataKeys,Pi={from:0,to:0},oc=(n,e)=>[e,e,!0,!1,1,0,n[0].toString(),0,...n],sc=n=>({columns:n.map(({name:t,serverDataType:r="string"})=>({name:t,serverDataType:r})),key:n[0].name,table:{module:"",table:"Array"}}),ic=(n,e,t)=>{let[r]=n,o=n.slice();return o[rc]=e.keyFor(r),o[nc]=(0,F.getSelectionStatus)(t,r),o},ut,Oe,_,he,H,Ur,jt,Pt,Mi=class extends F.EventEmitter{constructor({aggregations:t,columnDescriptors:r,data:o,filter:s,groupBy:i,rangeChangeRowset:a="delta",sort:l,title:u,viewport:c}){super();this.status="initialising";this.disabled=!1;this.selectedRows=[];this.suspended=!1;this.lastRangeServed={from:0,to:0};this.openTreeNodes=[];N(this,ut,[]);N(this,Oe,void 0);N(this,_,kr);N(this,he,void 0);N(this,H,Pi);N(this,Ur,0);N(this,jt,0);N(this,Pt,void 0);this.keys=new F.KeySet(h(this,H));if(!o||!r)throw Error("ArrayDataSource constructor called without data or without columnDescriptors");D(this,_,{...h(this,_),aggregations:t||h(this,_).aggregations,columns:r.map(p=>p.name),filter:s||h(this,_).filter,groupBy:i||h(this,_).groupBy,sort:l||h(this,_).sort}),this.columnDescriptors=r,D(this,ut,r.map(p=>p.name)),D(this,Oe,(0,F.buildColumnMap)(h(this,ut))),this.rangeChangeRowset=a,this.tableSchema=sc(r),D(this,he,o.map(oc)),this.viewport=c||(0,F.uuid)(),D(this,jt,o.length),D(this,Pt,u),pe==null||pe(`columnMap: ${JSON.stringify(h(this,Oe))}`)}async subscribe({viewport:t=(c=>(c=this.viewport)!=null?c:(0,F.uuid)())(),columns:r,aggregations:o,range:s,sort:i,groupBy:a,filter:l},u){var p;this.clientCallback=u,(o||r||l||a||i)&&D(this,_,{...h(this,_),aggregations:o||h(this,_).aggregations,columns:r||h(this,_).columns,filter:l||h(this,_).filter,groupBy:a||h(this,_).groupBy,sort:i||h(this,_).sort}),this.status==="initialising"&&(this.viewport=t,this.status="subscribed",(p=this.clientCallback)==null||p.call(this,{...h(this,_),type:"subscribed",clientViewportId:this.viewport,range:h(this,H),tableSchema:this.tableSchema}),this.clientCallback({clientViewportId:this.viewport,type:"viewport-update",size:h(this,he).length}),s?this.range=s:h(this,H)!==Pi&&this.sendRowsToClient())}unsubscribe(){console.log("noop")}suspend(){return console.log("noop"),this}resume(){return console.log("noop"),this}disable(){return console.log("noop"),this}enable(){return console.log("noop"),this}select(t){pe==null||pe(`select ${JSON.stringify(t)}`),this.selectedRows=t,this.setRange((0,F.resetRange)(h(this,H)),!0)}openTreeNode(t){this.openTreeNodes.push(t),this.groupedData=vi(this.openTreeNodes,h(this,he),h(this,_).groupBy,h(this,Oe),this.groupMap),this.setRange((0,F.resetRange)(h(this,H)),!0)}closeTreeNode(t){this.openTreeNodes=this.openTreeNodes.filter(r=>r!==t),this.groupedData&&(this.groupedData=xi(t,this.groupedData),this.setRange((0,F.resetRange)(h(this,H)),!0))}get data(){return h(this,he)}get config(){}get selectedRowsCount(){return h(this,Ur)}get size(){return h(this,jt)}get range(){return h(this,H)}set range(t){(t.from!==h(this,H).from||t.to!==h(this,H).to)&&this.setRange(t)}setRange(t,r=!1){D(this,H,t),this.keys.reset(t),this.sendRowsToClient(r)}sendRowsToClient(t=!1){var i,a,l,u;let r=this.rangeChangeRowset==="delta"&&!t?(0,F.rangeNewItems)(this.lastRangeServed,h(this,H)):h(this,H),o=(l=(a=(i=this.sortedData)!=null?i:this.groupedData)!=null?a:this.filteredData)!=null?l:h(this,he),s=o.slice(r.from,r.to).map(c=>ic(c,this.keys,this.selectedRows));(u=this.clientCallback)==null||u.call(this,{clientViewportId:this.viewport,mode:"batch",rows:s,size:o.length,type:"viewport-update"}),this.lastRangeServed=h(this,H)}get columns(){return h(this,ut)}set columns(t){D(this,ut,t),console.log(`ArrayDataSource setColumns ${t.join(",")}`)}get aggregations(){return h(this,_).aggregations}set aggregations(t){}get sort(){return h(this,_).sort}set sort(t){pe==null||pe(`sort ${JSON.stringify(t)}`),D(this,_,{...h(this,_),sort:t}),this.sortedData=Ti(h(this,he),t,h(this,Oe)).map((r,o)=>{let s=r.slice();return s[0]=o,s[1]=o,s}),this.setRange((0,F.resetRange)(h(this,H)),!0),this.emit("config",h(this,_))}get filter(){return h(this,_).filter}set filter(t){pe==null||pe(`filter ${JSON.stringify(t)}`),D(this,_,{...h(this,_),filter:t});let{filterStruct:r}=t;if(r){let o=$r(h(this,Oe),r);this.filteredData=h(this,he).filter(o).map((s,i)=>{let a=s.slice();return a[0]=i,a[1]=i,a})}else this.filteredData=void 0;this.setRange((0,F.resetRange)(h(this,H)),!0),this.emit("config",h(this,_))}get groupBy(){return h(this,_).groupBy}set groupBy(t){if(D(this,_,{...h(this,_),groupBy:t}),t.length){console.time("group");let[r,o]=Ei(h(this,he),t,h(this,Oe));this.groupMap=o,this.groupedData=r,console.timeEnd("group")}else this.groupedData=void 0;this.setRange((0,F.resetRange)(h(this,H)),!0),this.emit("config",h(this,_))}get title(){return h(this,Pt)}set title(t){D(this,Pt,t)}createLink({parentVpId:t,link:{fromColumn:r,toColumn:o}}){console.log("create link",{parentVpId:t,fromColumn:r,toColumn:o})}removeLink(){console.log("remove link")}findRow(t){let r=h(this,he)[t];if(r)return r;throw`no row found for key ${t}`}updateRow(t,r,o){let s=this.findRow(parseInt(t));console.log({row:s,colName:r,value:o})}async menuRpcCall(t){return new Promise(r=>{let{type:o}=t;switch(o){case"VP_EDIT_CELL_RPC":{let{rowKey:s,field:i,value:a}=t;try{this.updateRow(s,i,a),r(void 0)}catch(l){r({error:String(l),type:"VP_EDIT_RPC_REJECT"})}}break;default:r(void 0)}})}};ut=new WeakMap,Oe=new WeakMap,_=new WeakMap,he=new WeakMap,H=new WeakMap,Ur=new WeakMap,jt=new WeakMap,Pt=new WeakMap;var ae=require("@vuu-ui/vuu-utils");var ac={columns:[],key:"",table:{module:"",table:""}},{DEPTH:Mt,IDX:Di,IS_EXPANDED:lc,IS_LEAF:uc,KEY:Vi,SELECTED:Li}=ae.metadataKeys,ki=(n,e)=>{let[t]=n,r=n.slice();return r[1]=e.keyFor(t),r},Qe,Ke,ne,Je,Xe,Ee,Hr,Wr,je,Dt,Ii=class extends ae.EventEmitter{constructor({aggregations:t,data:r,filter:o,groupBy:s,sort:i,title:a,viewport:l}){super();this.status="initialising";this.expandedRows=new Set;this.visibleRows=[];N(this,Qe,[]);N(this,Ke,[]);N(this,ne,void 0);N(this,Je,{filter:""});N(this,Xe,[]);N(this,Ee,{from:0,to:0});N(this,Hr,0);N(this,Wr,0);N(this,je,{sortDefs:[]});N(this,Dt,void 0);this.keys=new ae.KeySet(h(this,Ee));if(!r)throw Error("JsonDataSource constructor called without data");[this.columnDescriptors,lo(this,ne)._]=(0,ae.jsonToDataSourceRows)(r),this.visibleRows=h(this,ne).filter(u=>u[Mt]===0).map((u,c)=>[c,c].concat(u.slice(2))),this.viewport=l||(0,ae.uuid)(),t&&D(this,Qe,t),this.columnDescriptors&&D(this,Ke,this.columnDescriptors.map(u=>u.name)),o&&D(this,Je,o),s&&D(this,Xe,s),i&&D(this,je,i),D(this,Dt,a)}async subscribe({viewport:t=(c=>(c=this.viewport)!=null?c:(0,ae.uuid)())(),columns:r,aggregations:o,range:s,sort:i,groupBy:a,filter:l},u){var p;this.clientCallback=u,console.log(`subscribe range ${s==null?void 0:s.from} ${s==null?void 0:s.to}`),o&&D(this,Qe,o),r&&D(this,Ke,r),l&&D(this,Je,l),a&&D(this,Xe,a),s&&D(this,Ee,s),i&&D(this,je,i),this.status==="initialising"&&(this.viewport=t,this.status="subscribed",(p=this.clientCallback)==null||p.call(this,{aggregations:h(this,Qe),type:"subscribed",clientViewportId:this.viewport,columns:h(this,Ke),filter:h(this,Je),groupBy:h(this,Xe),range:h(this,Ee),sort:h(this,je),tableSchema:ac}),this.clientCallback({clientViewportId:this.viewport,type:"viewport-update",size:this.visibleRows.length}))}unsubscribe(){console.log("noop")}suspend(){return console.log("noop"),this}resume(){return console.log("noop"),this}disable(){return console.log("noop"),this}enable(){return console.log("noop"),this}select(t){var o;let r=[];for(let s of h(this,ne)){let{[Di]:i,[Li]:a}=s,l=a===1,u=(0,ae.isSelected)(t,i);if(u!==l){let c=s.slice();c[Li]=u?1:0,h(this,ne)[i]=c,r.push(c)}}r.length>0&&((o=this.clientCallback)==null||o.call(this,{clientViewportId:this.viewport,mode:"update",type:"viewport-update",rows:r}))}openTreeNode(t){var s;this.expandedRows.add(t),this.visibleRows=Oi(h(this,ne),this.expandedRows);let{from:r,to:o}=h(this,Ee);(s=this.clientCallback)==null||s.call(this,{clientViewportId:this.viewport,rows:this.visibleRows.slice(r,o).map(i=>ki(i,this.keys)),size:this.visibleRows.length,type:"viewport-update"}),console.log(this.expandedRows)}closeTreeNode(t,r=!1){if(this.expandedRows.delete(t),r)for(let o of this.expandedRows.keys())o.startsWith(t)&&this.expandedRows.delete(o);this.visibleRows=Oi(h(this,ne),this.expandedRows),this.sendRowsToClient()}get config(){}get selectedRowsCount(){return h(this,Hr)}get size(){return h(this,Wr)}get range(){return h(this,Ee)}set range(t){D(this,Ee,t),this.keys.reset(t),requestAnimationFrame(()=>{this.sendRowsToClient()})}sendRowsToClient(){var o;let{from:t,to:r}=h(this,Ee);(o=this.clientCallback)==null||o.call(this,{clientViewportId:this.viewport,rows:this.visibleRows.slice(t,r).map(s=>ki(s,this.keys)),size:this.visibleRows.length,type:"viewport-update"})}get columns(){return h(this,Ke)}set columns(t){D(this,Ke,t),console.log(`ArrayDataSource setColumns ${t.join(",")}`)}get aggregations(){return h(this,Qe)}set aggregations(t){D(this,Qe,t)}get sort(){return h(this,je)}set sort(t){D(this,je,t)}get filter(){return h(this,Je)}set filter(t){D(this,Je,t),console.log(`RemoteDataSource ${JSON.stringify(t)}`)}get groupBy(){return h(this,Xe)}set groupBy(t){D(this,Xe,t)}get title(){return h(this,Dt)}set title(t){D(this,Dt,t)}createLink({parentVpId:t,link:{fromColumn:r,toColumn:o}}){console.log("create link",{parentVpId:t,fromColumn:r,toColumn:o})}removeLink(){console.log("remove link")}async menuRpcCall(t){console.log("rmenuRpcCall",{rpcRequest:t})}getChildRows(t){let r=h(this,ne).find(s=>s[Vi]===t);if(r){let{[Di]:s,[Mt]:i}=r,a=s+1,l=[];do{let{[Mt]:u}=h(this,ne)[a];if(u===i+1)l.push(h(this,ne)[a]);else if(u<=i)break;a+=1}while(a<h(this,ne).length);return l}else console.warn(`JsonDataSource getChildRows row not found for key ${t}`);let o=t.split("|").slice(1);return console.log({sections:o,parentRow:r}),[]}getRowsAtDepth(t,r=!0){return(r?this.visibleRows:h(this,ne)).filter(s=>s[Mt]===t)}};Qe=new WeakMap,Ke=new WeakMap,ne=new WeakMap,Je=new WeakMap,Xe=new WeakMap,Ee=new WeakMap,Hr=new WeakMap,Wr=new WeakMap,je=new WeakMap,Dt=new WeakMap;function Oi(n,e){let t=[],r={value:0};for(let o=0;o<n.length;o++){let s=n[o],{[Mt]:i,[Vi]:a,[uc]:l}=s,u=e.has(a);if(t.push(cc(s,r,u)),!l&&!u)do o+=1;while(o<n.length-1&&n[o+1][Mt]>i)}return t}var cc=(n,e,t)=>{let r=n.slice();return r[0]=e.value,r[1]=e.value,t&&(r[lc]=!0),e.value+=1,r};var de=require("@vuu-ui/vuu-utils");var I,Gr,Lt,ct,Yt,kt,pt,Qn=class extends de.EventEmitter{constructor({bufferSize:t=100,aggregations:r,columns:o,filter:s,groupBy:i,sort:a,table:l,title:u,viewport:c,visualLink:p}){super();this.server=null;this.status="initialising";this.disabled=!1;this.suspended=!1;N(this,I,kr);N(this,Gr,[]);N(this,Lt,"throttle");N(this,ct,{from:0,to:0});N(this,Yt,0);N(this,kt,0);N(this,pt,void 0);this.handleMessageFromServer=t=>{var r,o,s;if(t.type==="subscribed")this.status="subscribed",(r=this.clientCallback)==null||r.call(this,t);else if(t.type==="disabled")this.status="disabled";else if(t.type==="enabled")this.status="enabled";else{if(Xs(t))return;t.type==="debounce-begin"?this.optimize="debounce":(t.type==="viewport-update"&&t.size!==void 0&&t.size!==h(this,kt)&&(D(this,kt,t.size),this.emit("resize",t.size)),this.configChangePending&&this.setConfigPending(),Qs(t)?t.size>100?this.throttleSizeCallback(t):(o=this.clientCallback)==null||o.call(this,t):((s=this.clientCallback)==null||s.call(this,t),this.optimize==="debounce"&&this.revertDebounce()))}};this.revertDebounce=(0,de.debounce)(()=>{this.optimize="throttle"},100);this.throttleSizeCallback=(0,de.throttle)(t=>{var r;(r=this.clientCallback)==null||r.call(this,t)},2e3);this.rawRangeRequest=t=>{this.viewport&&this.server&&this.server.send({viewport:this.viewport,type:"setViewRange",range:t})};this.debounceRangeRequest=(0,de.debounce)(t=>{this.viewport&&this.server&&this.server.send({viewport:this.viewport,type:"setViewRange",range:t})},50);this.throttleRangeRequest=(0,de.throttle)(t=>{this.viewport&&this.server&&this.server.send({viewport:this.viewport,type:"setViewRange",range:t})},80);if(!l)throw Error("RemoteDataSource constructor called without table");this.bufferSize=t,this.table=l,this.viewport=c,D(this,I,{...h(this,I),aggregations:r||h(this,I).aggregations,columns:o||h(this,I).columns,filter:s||h(this,I).filter,groupBy:i||h(this,I).groupBy,sort:a||h(this,I).sort,visualLink:p||h(this,I).visualLink}),D(this,pt,u),this.rangeRequest=this.throttleRangeRequest}async subscribe({viewport:t=(c=>(c=this.viewport)!=null?c:(0,de.uuid)())(),columns:r,aggregations:o,range:s,sort:i,groupBy:a,filter:l},u){var d;if(this.clientCallback=u,(o||r||l||a||i)&&D(this,I,{...h(this,I),aggregations:o||h(this,I).aggregations,columns:r||h(this,I).columns,filter:l||h(this,I).filter,groupBy:a||h(this,I).groupBy,sort:i||h(this,I).sort}),s&&D(this,ct,s),this.status!=="initialising")return;this.status="subscribing",this.viewport=t,this.server=await si();let{bufferSize:p}=this;(d=this.server)==null||d.subscribe({...h(this,I),bufferSize:p,viewport:t,table:this.table,range:h(this,ct),title:h(this,pt)},this.handleMessageFromServer)}unsubscribe(){var t,r;this.viewport&&((t=this.server)==null||t.unsubscribe(this.viewport)),(r=this.server)==null||r.destroy(this.viewport),this.removeAllListeners()}suspend(){var t;return this.viewport&&(this.suspended=!0,(t=this.server)==null||t.send({type:"suspend",viewport:this.viewport})),this}resume(){var t;return this.viewport&&this.suspended&&((t=this.server)==null||t.send({type:"resume",viewport:this.viewport}),this.suspended=!1),this}disable(){var t;return this.viewport&&(this.status="disabling",this.disabled=!0,(t=this.server)==null||t.send({viewport:this.viewport,type:"disable"})),this}enable(){var t;return this.viewport&&this.disabled&&(this.status="enabling",(t=this.server)==null||t.send({viewport:this.viewport,type:"enable"}),this.disabled=!1),this}select(t){var r;D(this,Yt,t.length),this.viewport&&((r=this.server)==null||r.send({viewport:this.viewport,type:"select",selected:t}))}openTreeNode(t){var r;this.viewport&&((r=this.server)==null||r.send({viewport:this.viewport,type:"openTreeNode",key:t}))}closeTreeNode(t){var r;this.viewport&&((r=this.server)==null||r.send({viewport:this.viewport,type:"closeTreeNode",key:t}))}get optimize(){return h(this,Lt)}set optimize(t){if(t!==h(this,Lt)){switch(D(this,Lt,t),t){case"none":this.rangeRequest=this.rawRangeRequest;break;case"debounce":this.rangeRequest=this.debounceRangeRequest;break;case"throttle":this.rangeRequest=this.throttleRangeRequest;break}this.emit("optimize",t)}}get selectedRowsCount(){return h(this,Yt)}get size(){return h(this,kt)}get range(){return h(this,ct)}set range(t){D(this,ct,t),this.rangeRequest(t)}get config(){return h(this,I)}set config(t){var r,o;if(Ks(h(this,I),t)&&t){let s=(r=t==null?void 0:t.filter)!=null&&r.filter&&(t==null?void 0:t.filter.filterStruct)===void 0?{...t,filter:{filter:t.filter.filter,filterStruct:zr(t.filter.filter)}}:t;D(this,I,js(s)),h(this,I)&&this.viewport&&this.server&&t&&((o=this.server)==null||o.send({viewport:this.viewport,type:"config",config:h(this,I)})),this.emit("config",h(this,I))}}get columns(){return h(this,I).columns}set columns(t){if(D(this,I,{...h(this,I),columns:t}),this.viewport){let r={viewport:this.viewport,type:"setColumns",columns:t};this.server&&this.server.send(r)}this.emit("config",h(this,I))}get aggregations(){return h(this,I).aggregations}set aggregations(t){var r;D(this,I,{...h(this,I),aggregations:t}),this.viewport&&((r=this.server)==null||r.send({viewport:this.viewport,type:"aggregate",aggregations:t})),this.emit("config",h(this,I))}get sort(){return h(this,I).sort}set sort(t){if(D(this,I,{...h(this,I),sort:t}),this.viewport){let r={viewport:this.viewport,type:"sort",sort:t};this.server&&this.server.send(r)}this.emit("config",h(this,I))}get filter(){return h(this,I).filter}set filter(t){if(D(this,I,{...h(this,I),filter:t}),this.viewport){let r={viewport:this.viewport,type:"filter",filter:t};this.server&&this.server.send(r)}this.emit("config",h(this,I))}get groupBy(){return h(this,I).groupBy}set groupBy(t){var r;if((0,de.itemsOrOrderChanged)(this.groupBy,t)){let o=h(this,Gr).length>0;if(D(this,I,{...h(this,I),groupBy:t}),this.viewport){let s={viewport:this.viewport,type:"groupBy",groupBy:h(this,I).groupBy};this.server&&this.server.send(s)}!o&&t.length>0&&this.viewport&&((r=this.clientCallback)==null||r.call(this,{clientViewportId:this.viewport,type:"viewport-update",size:0,rows:[]})),this.emit("config",h(this,I)),this.setConfigPending({groupBy:t})}}get title(){return h(this,pt)}set title(t){var r;D(this,pt,t),this.viewport&&t&&((r=this.server)==null||r.send({type:"setTitle",title:t,viewport:this.viewport}))}get visualLink(){return h(this,I).visualLink}set visualLink(t){var r,o;if(D(this,I,{...h(this,I),visualLink:t}),t){let{parentClientVpId:s,link:{fromColumn:i,toColumn:a}}=t;this.viewport&&((r=this.server)==null||r.send({viewport:this.viewport,type:"createLink",parentClientVpId:s,parentColumnName:a,childColumnName:i}))}else this.viewport&&((o=this.server)==null||o.send({type:"removeLink",viewport:this.viewport}));this.emit("config",h(this,I))}setConfigPending(t){let r=this.configChangePending;this.configChangePending=t,t!==void 0?this.emit("config",t,!1):this.emit("config",r,!0)}async menuRpcCall(t){var r;if(this.viewport)return(r=this.server)==null?void 0:r.rpcCall({vpId:this.viewport,...t})}};I=new WeakMap,Gr=new WeakMap,Lt=new WeakMap,ct=new WeakMap,Yt=new WeakMap,kt=new WeakMap,pt=new WeakMap;var Kn=require("@vuu-ui/vuu-utils");var Ai=require("react/jsx-runtime");var Vc=M(require("classnames")),Yn=require("react");var Jn=require("react");var vc=require("react");var bc=require("@salt-ds/core"),yc=require("@heswell/salt-lab"),Sc=require("@salt-ds/icons");var Ni=require("@vuu-ui/vuu-utils"),qr=require("@heswell/salt-lab"),Bi=require("@salt-ds/core"),Fi=require("@salt-ds/icons"),Ve=require("react");var _i=async n=>await fetch(`api/vui/${n.username}`,{}).then(t=>t.ok?t.json():null).catch(()=>{console.log("error getting history")});var Ye=require("react/jsx-runtime"),fc=({lastUpdate:n},{lastUpdate:e})=>e===n?0:e<n?-1:1,mc=n=>(0,Ye.jsx)(qr.ListItem,{...n}),gc=(0,Ve.forwardRef)(function({loginUrl:e,onNavigate:t,user:r,layoutId:o="latest"},s){let[i,a]=(0,Ve.useState)([]);(0,Ve.useEffect)(()=>{async function p(){let g=(await _i(r)).filter(S=>S.id!=="latest").sort(fc).map(({id:S,lastUpdate:v})=>({lastUpdate:v,id:S,label:`Saved at ${(0,Ni.formatDate)(new Date(v),"kk:mm:ss")}`}));console.log({sortedHistory:g}),a(g)}p()},[r]);let l=(0,Ve.useCallback)((p,d)=>{d&&t(d.id)},[t]),u=(0,Ve.useCallback)(()=>{qs(e)},[e]),c=i.length===0?null:o==="latest"?i[0]:i.find(p=>p.id===o);return(0,Ye.jsxs)("div",{className:"vuuUserPanel",ref:s,children:[(0,Ye.jsx)(qr.List,{ListItem:mc,className:"vuuUserPanel-history",onSelect:l,selected:c,source:i}),(0,Ye.jsx)("div",{className:"vuuUserPanel-buttonBar",children:(0,Ye.jsxs)(Bi.Button,{"aria-label":"logout",onClick:u,children:[(0,Ye.jsx)(Fi.ExportIcon,{})," Logout"]})})]})});var zi=require("react/jsx-runtime");var $i=require("@heswell/salt-lab"),wc=M(require("classnames")),Rc=require("@salt-ds/core"),xc=require("react");var Ui=require("react/jsx-runtime");var Cc=M(require("classnames"));var Hi=require("react/jsx-runtime");var Ae=require("react"),Wi=M(require("classnames")),qi=require("react/jsx-runtime"),Ec="medium",Tc="salt-theme",Pc="light",Xn=(0,Ae.createContext)({density:"high",theme:"salt",themeMode:"light"}),Mc=["salt","salt-density-high","light"],er=()=>{let n=(0,Ae.useContext)(Xn);return n?[`${n.theme}-theme`,`salt-density-${n.density}`,n.themeMode]:Mc},Dc=(n,e,t,r)=>{var o;return console.log("create themed children"),(0,Ae.isValidElement)(n)?(0,Ae.cloneElement)(n,{className:(0,Wi.default)((o=n.props)==null?void 0:o.className,`${e}-theme`,`${e}-density-${r}`),"data-mode":t}):(console.warn(`
17
+ `,document.body.insertBefore(e,n)}}var $t=class{constructor(){this.currentPath=null;this.tabMode=null;pl()}prepare(e,t="full-view"){document.body.classList.add("drawing"),this.currentPath=null,this.tabMode=t;let r=this.getPoints(0,0,0,0),o=To(r),i=document.getElementById("vuu-drop-outline");i==null||i.setAttribute("d",o),this.currentPath=o}clear(){zt=null,br(),document.body.classList.remove("drawing"),X.hidePopup()}get hoverDropTarget(){return zt}getPoints(e,t,r,o,i=0,s=0,a=0){let l=this.tabMode==="tab-only";if(s===0)return[[e,t+a],[e,t+a],[e,t],[e+s,t],[e+s,t],[e+r,t],[e+r,t+o],[e,t+o]];if(l){let u=i;return[[u,t],[u,t],[u+s,t],[u+s,t],[u+s,t+a],[u+s,t+a],[u,t+a],[u,t+a]]}else return i===0?[[e,t+a],[e,t+a],[e,t],[e+s,t],[e+s,t+a],[e+r,t+a],[e+r,t+o],[e,t+o]]:[[e,t+a],[e+i,t+a],[e+i,t],[e+i,t],[e+i,t+a],[e+r,t+a],[e+r,t+o],[e,t+o]]}draw(e,t){let o=gn;if(zt!==null)this.drawTarget(zt);else if(gn=e.nextDropTarget!=null,e.pos.tab?hl(e):ge&&br(),this.drawTarget(e,t),gn){let[i,s,a]=Co(e);{let l=(0,Do.jsx)(Eo,{dropTarget:e,onHover:al,orientation:a});X.showPopup({left:i,top:s,component:l})}}else X.hidePopup()}drawTarget(e,t){let o=e.getTargetDropOutline(6,t);if(o){let{l:i,t:s,r:a,b:l,tabLeft:u,tabWidth:c,tabHeight:p,guideLines:d}=o,g=a-i,y=l-s;if(this.currentPath){let m=document.getElementById("vuu-drop-outline");m==null||m.setAttribute("d",this.currentPath)}let v=this.getPoints(i,s,g,y,u,c,p),x=To(v),S=document.getElementById("hw-drop-outline-animate");S==null||S.setAttribute("to",x),S==null||S.beginElement(),this.currentPath=x;let E=document.getElementById("hw-drop-guides");E==null||E.setAttribute("d",cl(d))}}},Po="transition:margin-left .4s ease-out;margin-left: 63px",Mo="transition:margin-left .4s ease-out;margin-left: 0px";function hl(n){var a,l;let{AFTER:e,BEFORE:t}=dn,{clientRect:{Stack:r},pos:{tab:o}}=n,{id:i}=n.component.props,s=null;if(r&&o&&o.positionRelativeToTab!==e){let u=o.positionRelativeToTab===t?1:2,c=`:scope .hwTabstrip > .hwTabstrip-inner > .hwTab:nth-child(${o.index+u})`;s=(a=document.getElementById(i))==null?void 0:a.querySelector(c),s?(ge===null||ge!==s)&&(s.style.cssText=Po,ge&&(ge.style.cssText=Mo),ge=s):br()}else if((o==null?void 0:o.positionRelativeToTab)===t){if(ge===null){let u=".vuuHeader-title";s=(l=document.getElementById(i))==null?void 0:l.querySelector(u),s.style.cssText=Po,ge=s}}else br()}function br(){ge&&(ge.style.cssText=Mo,ge=null)}var sd=new $t;var ko=M(require("classnames")),Io=require("react");var Vo=require("react/jsx-runtime"),Ht=(0,Io.forwardRef)(function({children:e,className:t,dropTarget:r,resizeable:o,...i},s){let a=(0,ko.default)("DraggableLayout",t);return(0,Vo.jsx)("div",{className:a,ref:s,...i,children:e})}),Oo="DraggableLayout";Ht.displayName=Oo;z(Oo,Ht,"container");var Jo=require("@salt-ds/core"),Xo=M(require("classnames")),jo=require("react");var Qo=require("@vuu-ui/vuu-utils"),$=M(require("react"));var _o=M(require("classnames"));var No=require("react/jsx-runtime"),Ao="vuuPlaceholder",Sr=({className:n,closeable:e,flexFill:t,resizeable:r,shim:o,...i})=>(0,No.jsx)("div",{className:(0,_o.default)(Ao,n,{[`${Ao}-shim`]:o}),...i,"data-placeholder":!0,"data-resizeable":!0});Sr.displayName="Placeholder";z("Placeholder",Sr);var Bo=M(require("classnames")),j=M(require("react"));var bn=require("react/jsx-runtime"),Fo=j.default.memo(function({column:e,index:t,onDrag:r,onDragEnd:o,onDragStart:i,style:s}){let a=(0,j.useRef)(),l=(0,j.useRef)(null),u=(0,j.useRef)(0),[c,p]=(0,j.useState)(!1),d=(0,j.useCallback)(({key:f,shiftKey:R})=>{let L=R?10:1;e&&f==="ArrowDown"?r(t,L):e&&f==="ArrowUp"||!e&&f==="ArrowLeft"?r(t,-L):!e&&f==="ArrowRight"&&r(t,L)},[e,t,r]),g=(0,j.useCallback)(f=>{let{key:R}=f;(e&&(R==="ArrowUp"||R==="ArrowDown")||!e&&(R==="ArrowLeft"||R==="ArrowRIght"))&&(i(t),d(f),y.current=d)},[e,d,t,i]),y=(0,j.useRef)(g),v=f=>y.current(f),x=(0,j.useCallback)(f=>{a.current=!0;let R=f[e?"clientY":"clientX"],L=R-u.current;R&&R!==u.current&&r(t,L),u.current=R},[e,t,r]),S=(0,j.useCallback)(()=>{var f;window.removeEventListener("mousemove",x,!1),window.removeEventListener("mouseup",S,!1),o(),p(!1),(f=l.current)==null||f.focus()},[x,o,p]),E=(0,j.useCallback)(f=>{u.current=e?f.clientY:f.clientX,i(t),window.addEventListener("mousemove",x,!1),window.addEventListener("mouseup",S,!1),f.preventDefault(),p(!0)},[e,x,S,t,i,p]),m=()=>{var f;a.current?a.current=!1:(f=l.current)==null||f.focus()},b=()=>{y.current=g},w=(0,Bo.default)("Splitter","focusable",{active:c,column:e});return(0,bn.jsx)("div",{className:w,"data-splitter":!0,ref:l,role:"separator",style:s,onBlur:b,onClick:m,onKeyDown:v,onMouseDown:E,tabIndex:0,children:(0,bn.jsx)("div",{className:"grab-zone"})})});var dl=require("@vuu-ui/vuu-utils"),fl=M(require("react"));var $o={},zo="auto";var gt=n=>{let{style:{width:e=zo,height:t=zo}=$o}=n.props,r=typeof t=="number",o=typeof e=="number";return r&&o?{height:t,width:e}:r?{height:t}:o?{width:e}:void 0};function Ho(n){let{style:{flex:e,flexGrow:t,flexShrink:r,flexBasis:o}=$o}=n.props;return typeof e=="number"||o===0&&t===1&&r===1?!0:typeof o!="number"}var ml={},Ut=1,Wt=2,gl=n=>typeof n.intrinsicSize=="number",bl=(n,e)=>{let t={};return n.forEach(r=>{t[r]=De(e,r)}),t},wr=(n,e,t)=>n.map((r,o)=>{var l;let i=De(r,"resizeable"),{[e]:s}=(l=gt(r))!=null?l:ml,a=Ho(r);return t?{index:o,flexOpen:a,intrinsicSize:s,resizeable:i,...bl(t,r)}:{index:o,flexOpen:a,intrinsicSize:s,resizeable:i}}),Uo=n=>{let e=n.length,t=n.every(gl),r=Array(e).fill(0);if(t&&(r[0]=Wt,r[e-1]=Wt),e<2)return r;for(let o=0,i=0;o<e-1;o++)n[o].resizeable&&!i&&(i=Ut),r[o]+=i;for(let o=e-1;o>0&&(r[o]&Ut&&(r[o]-=Ut),!n[o].resizeable);o--);return r},Wo=(n,e)=>{let t=Sl(n,e),r=wl(n,e),o=t!==-1&&r!==-1?[t,r]:void 0,i=yl(n,o);return[o,i]};function yl(n,e){if(e){let t=[];for(let r=0;r<n.length;r++)n[r].flexOpen&&!e.includes(r)&&t.push(r);return t}}function Sl(n,e){let t=e,r=!1;for(;t>=1&&!r;)t=t-1,r=Go(n,t);return t}function wl(n,e){let t=e,r=!1,o=n.length;for(;t<o-1&&!r;)t=t+1,r=Go(n,t);return t===o?-1:t}function Go(n,e){let{placeholder:t,splitter:r,resizeable:o,intrinsicSize:i}=n[e];return!!(!r&&!i&&(t||o))}var Rl=n=>!n.splitter&&!n.placeholder,Ko=({children:n,onSplitterMoved:e,style:t})=>{let r=(0,$.useRef)(null),o=(0,$.useRef)(),i=(0,$.useRef)(),s=(0,$.useRef)([]),[,a]=(0,$.useState)({}),l=x=>{i.current=x,a({})},u=(t==null?void 0:t.flexDirection)==="column",c=u?"height":"width",p=(0,$.useMemo)(()=>Array.isArray(n)?n:$.default.isValidElement(n)?[n]:[],[n]),d=(0,$.useCallback)(x=>{let{current:S}=o;if(S){let[E,m]=Wo(S,x);E&&(E.forEach(b=>{var f;let w=(f=r.current)==null?void 0:f.childNodes[b];if(w){let{size:R,minSize:L}=El(w,c);S[b].currentSize=R,S[b].minSize=L}}),m&&m.forEach(b=>{var f;let w=(f=r.current)==null?void 0:f.childNodes[b];if(w){let{[c]:R}=w.getBoundingClientRect();S[b].flexBasis=R}}))}},[c]),g=(0,$.useCallback)((x,S)=>{i.current&&o.current&&l(vl(i.current,o.current,S,c))},[c]),y=(0,$.useCallback)(()=>{let x=o.current;x&&(e==null||e(x.filter(Rl))),x==null||x.forEach(S=>{S.currentSize=void 0,S.flexBasis=void 0,S.flexOpen=!1})},[e]),v=(0,$.useCallback)(x=>$.default.createElement(Fo,{column:u,index:x,key:`splitter-${x}`,onDrag:g,onDragEnd:y,onDragStart:d}),[g,y,d,u]);return(0,$.useMemo)(()=>{let[x,S]=xl(p,c,v,s.current);o.current=S,i.current=x},[p,v,c]),{content:i.current||[],rootRef:r}};function xl(n,e,t,r){let o=wr(n,e),i=Uo(o),s=[],a=[];for(let l=0;l<n.length;l++){let u=n[l];if(l===0&&i[l]&Wt&&(s.push(qo(l)),a.push({placeholder:!0,shim:!0})),u.key==null){let c=r[l]||(r[l]=(0,Qo.getUniqueId)());s.push($.default.cloneElement(u,{key:c}))}else s.push(u);a.push(o[l]),l>0&&i[l]&Wt?(s.push(qo(l)),a.push({placeholder:!0})):i[l]&Ut&&(s.push(t(s.length)),a.push({splitter:!0}))}return[s,a]}function vl(n,e,t,r){return Cl(e,t)?n.map((i,s)=>{let a=e[s],{currentSize:l,flexOpen:u,flexBasis:c}=a,p=l!==void 0;if(p||u){let{flexBasis:d}=i.props.style||{},g=p?a.currentSize:c;return g!==d?$.default.cloneElement(i,{style:{...i.props.style,flexBasis:g,[r]:"auto"}}):i}else return i}):n}function Cl(n,e){let t=[];n.forEach((c,p)=>{c.currentSize!==void 0&&t.push(p)});let r=e<0?t[0]:t[1],{currentSize:o=0,minSize:i=0}=n[r];if(o===i)return!1;if(Math.abs(e)>o-i){let c=e<0?-1:1;e=Math.max(0,o-i)*c}let s=n[t[0]],{currentSize:a=0}=s;s.currentSize=a+e;let l=n[t[1]],{currentSize:u=0}=l;return l.currentSize=u-e,!0}function qo(n){return $.default.createElement(Sr,{shim:n===0,key:`placeholder-${n}`})}function El(n,e){let{[e]:t}=n.getBoundingClientRect(),o=getComputedStyle(n).getPropertyValue(`min-${e}`),i=o.endsWith("px")?parseInt(o,10):0;return{size:t,minSize:i}}var Zo=require("react/jsx-runtime"),Sn="hwFlexbox",Yo=(0,jo.forwardRef)(function(e,t){let{breakPoints:r,children:o,column:i,className:s,flexFill:a,gap:l,fullPage:u,id:c,onSplitterMoved:p,resizeable:d,row:g,spacing:y,splitterSize:v,style:x,...S}=e,{content:E,rootRef:m}=Ko({children:o,onSplitterMoved:p,style:x}),b=(0,Xo.default)(Sn,s,{[`${Sn}-column`]:i,[`${Sn}-row`]:g,"flex-fill":a,"full-page":u});return(0,Zo.jsx)("div",{...S,className:b,"data-resizeable":d||void 0,id:c,ref:(0,Jo.useForkRef)(m,t),style:{...x,gap:l,"--spacing":y},children:E})});Yo.displayName="Flexbox";var Gt=Yo;var is=require("react");var qt={ADD:"add",BLUR:"blur",BLUR_SPLITTER:"blur-splitter",DRAG_START:"drag-start",DRAG_STARTED:"drag-started",DRAG_DROP:"drag-drop",FOCUS:"focus",FOCUS_SPLITTER:"focus-splitter",INITIALIZE:"initialize",LAYOUT_RESIZE:"layout-resize",MAXIMIZE:"maximize",MINIMIZE:"minimize",REMOVE:"remove",REPLACE:"replace",RESTORE:"restore",SAVE:"save",SET_TITLE:"set-title",SPLITTER_RESIZE:"splitter-resize",SWITCH_TAB:"switch-tab",TEAR_OUT:"tear-out"};var yt=require("react");var Bl=M(require("react"));var Ml=require("@vuu-ui/vuu-utils"),Dl=M(require("react"));var Tl=require("@vuu-ui/vuu-utils"),es=M(require("react"));var ot=require("react"),he=new Map,de=new Map;var bt=()=>{let n=(0,ot.useCallback)((s,a)=>{let l=de.get(s);if(l)return a!==void 0&&l[a]!==void 0?l[a]:a!==void 0?void 0:l},[]),e=(0,ot.useCallback)((s,a,l)=>{if(a===void 0)de.set(s,l);else if(de.has(s)){let u=de.get(s);de.set(s,{...u,[a]:l})}else de.set(s,{[a]:l})},[]),t=(0,ot.useCallback)((s,a)=>{if(de.has(s)){if(a===void 0)de.delete(s);else if(de.get(s)[a]){let{[a]:u,...c}=de.get(s);Object.keys(c).length>0?de.set(s,c):de.delete(s)}}},[]),r=(0,ot.useCallback)((s,a)=>{let l=he.get(s);if(l)return a!==void 0?l[a]:l},[]),o=(0,ot.useCallback)((s,a,l)=>{if(a===void 0)he.set(s,l);else if(he.has(s)){let u=he.get(s);he.set(s,{...u,[a]:l})}else he.set(s,{[a]:l})},[]),i=(0,ot.useCallback)((s,a)=>{if(he.has(s)){if(a===void 0)he.delete(s);else if(he.get(s)[a]){let{[a]:u,...c}=he.get(s);Object.keys(c).length>0?he.set(s,c):he.delete(s)}}},[]);return{loadSessionState:n,loadState:r,saveSessionState:e,saveState:o,purgeState:i,purgeSessionState:t}};var Ol=M(require("react"));var kl=M(require("react"));var Vl=M(require("react"));var Al=require("@vuu-ui/vuu-utils"),_l=M(require("react"));var ns=require("react"),Fl=n=>console.log(`dispatch ${n.type}, have you forgotten to provide a LayoutProvider ?`),os=(0,ns.createContext)({dispatchLayoutProvider:Fl,version:-1});var ss=require("react");var zl=require("react/jsx-runtime");var ie=()=>{let{dispatchLayoutProvider:n}=(0,yt.useContext)(os);return n};var ls=require("react/jsx-runtime"),as=function(e){let{path:t}=e,r=ie(),o=(0,is.useCallback)(i=>{r({type:qt.SPLITTER_RESIZE,path:t,sizes:i})},[r,t]);return(0,ls.jsx)(Gt,{...e,onSplitterMoved:o})};as.displayName="Flexbox";z("Flexbox",as,"container");var gs=require("@salt-ds/core"),bs=M(require("classnames")),ys=require("react");var be=require("react");var it=require("react");var st=new WeakMap,cs=(n,e,t)=>{switch(t){case"height":return e.height;case"scrollHeight":return n.scrollHeight;case"scrollWidth":return n.scrollWidth;case"width":return e.width;default:return 0}},us=new ResizeObserver(n=>{for(let e of n){let{target:t,contentRect:r}=e,o=st.get(t);if(o){let{onResize:i,measurements:s}=o,a=!1;for(let[l,u]of Object.entries(s)){let c=cs(t,r,l);c!==u&&(a=!0,s[l]=c)}a&&i&&i(s)}}});function ps(n,e,t,r=!1){let o=(0,it.useRef)(e),i=(0,it.useCallback)(s=>{let a=s.getBoundingClientRect();return o.current.reduce((l,u)=>(l[u]=cs(s,a,u),l),{})},[]);(0,it.useLayoutEffect)(()=>{let s=n.current,a=!1;async function l(){st.set(s,{measurements:{}}),a=!1;let{fonts:u}=document;if(u&&await u.ready,!a){let c=st.get(s);if(c){let p=i(s);c.measurements=p,us.observe(s),r&&t(p)}}}if(s){if(st.has(s))throw Error("useResizeObserver attemping to observe same element twice");l()}return()=>{s&&st.has(s)&&(us.unobserve(s),st.delete(s),a=!0)}},[n,i,r,t]),(0,it.useLayoutEffect)(()=>{let s=n.current,a=st.get(s);if(a){if(o.current!==e){o.current=e;let l=i(s);a.measurements=l}a.onResize=t}},[e,i,n,t])}function $l(n,e){let t=document.body.querySelector(`.${n}`),r={get:function(o,i){let s=o.getPropertyValue(`--${n}-breakpoint-${i}`);return s?parseInt(s):void 0}};return t?new Proxy(getComputedStyle(t),r):e!=null?e:{}}var Hl=([,n],[,e])=>e-n,xn=n=>Object.entries(n).sort(Hl).map(([e,t],r,o)=>[e,t,r<o.length-1?o[r+1][1]:9999]),Rn=null,Ul=(n="salt")=>{let{xs:e,sm:t,md:r,lg:o,xl:i}=$l(n);return xn({xs:e,sm:t,md:r,lg:o,xl:i})},hs=n=>(Rn===null&&(Rn=Ul(n)),Rn);var Wl=[],ds=({breakPoints:n,smallerThan:e},t)=>{let[r,o]=(0,be.useState)(e?!1:"lg"),i=(0,be.useRef)(document.body),s=(0,be.useRef)(n?xn(n):hs()),a=(0,be.useRef)("lg"),l=(0,be.useCallback)(c=>{if(s.current){for(let[p,d]of s.current)if(c>=d)return p}},[s]),u=(0,be.useCallback)(c=>{if(e){let p=s.current.find(([d])=>d===e);if(p){let[,,d]=p;return c<d}}else return l(c);return c},[e,l]);return ps(t||i,s.current?["width"]:Wl,({width:c})=>{let p=u(c);p!==a.current&&(a.current=p,o(p))},!0),(0,be.useEffect)(()=>{let c=t||i;if(c.current){let p=a.current;if(s.current){let{clientWidth:d}=c.current,g=u(d);a.current=g,g!==p&&o(g)}}},[o,u,t]),r};var Gl="data-collapsible",Sg={[Gl]:!0,"data-pad-start":!0,"data-pad-end":!0};var fs=require("@vuu-ui/vuu-utils"),ae=require("react");var ql=["xs","sm","md","lg","xl"],Ql=12,ms=({children:n,cols:e,style:t})=>{let r=(0,ae.useRef)(null),o=(0,ae.useRef)(null),i=(0,ae.useRef)(),s=e!=null?e:Ql,l=(t==null?void 0:t.flexDirection)==="column"?"height":"width",u=(0,ae.useMemo)(()=>Array.isArray(n)?n:(0,ae.isValidElement)(n)?[n]:[],[n]),c=(0,ae.useCallback)((p,d)=>{let g=wr(p,d,ql),y=[],v=[];for(let x=0;x<p.length;x++){let S=p[x],{style:{flex:E,...m}}=S.props;y.push((0,ae.cloneElement)(S,{key:(0,fs.getUniqueId)(),style:{...m,"--parent-col-count":s}})),v.push(g[x])}return[y,v]},[s]);return(0,ae.useMemo)(()=>{let[p,d]=c(u,l);o.current=d,i.current=p},[c,u,l]),{cols:s,content:i.current,rootRef:r}};var Ss=require("react/jsx-runtime"),Rr="hwFluidGrid",vn=(0,ys.forwardRef)(function(e,t){let{breakPoints:r,children:o,column:i,cols:s=12,className:a,flexFill:l,gap:u=3,fullPage:c,id:p,onSplitterMoved:d,resizeable:g,row:y,showGrid:v,spacing:x,splitterSize:S,style:E,...m}=e,{cols:b,content:w,rootRef:f}=ms({children:o,cols:s,style:E}),R=ds({breakPoints:r},f),L=(0,bs.default)(Rr,a,{[`${Rr}-column`]:i,[`${Rr}-row`]:y,[`${Rr}-show-grid`]:v,"flex-fill":l,"full-page":c}),P={...E,"--spacing":x,"--grid-col-count":b,"--grid-gap":u};return(0,Ss.jsx)("div",{...m,className:L,"data-breakpoint":R,"data-cols":b,"data-resizeable":g||void 0,id:p,ref:(0,gs.useForkRef)(f,t),style:P,children:w})});vn.displayName="FluidGrid";var Rs=require("react/jsx-runtime"),ws=function(e){return(0,Rs.jsx)(vn,{...e})};ws.displayName="FluidGrid";z("FluidGrid",ws,"container");var Ms=M(require("classnames")),We=M(require("react"));var He=require("react");var xr=(n,e,t,r)=>{var x;let{loadSessionState:o,purgeSessionState:i,purgeState:s,saveSessionState:a}=bt(),[l,u]=(0,He.useState)((x=o(n,"contributions"))!=null?x:[]),c=ie(),p=(0,He.useCallback)((S,E)=>{let m=l.concat([{location:S,content:E}]);a(n,"contributions",m),u(m)},[l,n,a]),d=(0,He.useCallback)(()=>{i(n,"contributions"),u([])},[n,i]),g=(0,He.useCallback)(()=>{let S=o(n,"data-source");S&&S.unsubscribe(),i(n),s(n),c({type:"remove",path:t})},[c,n,o,i,s,t]),y=(0,He.useCallback)(async(S,E,m)=>{var w;S.stopPropagation();let b=(w=e.current)==null?void 0:w.getBoundingClientRect();return new Promise((f,R)=>{c({type:"drag-start",evt:S,path:E===void 0?t:`${t}.${E}`,dragRect:b,preDragActivity:m,dropTargets:r,resolveDragStart:f,rejectDragStart:R})})},[e,c,t,r]);return[(0,He.useCallback)(async(S,E)=>{var b;let{type:m}=S;switch(m){case"maximize":case"minimize":case"restore":return c({type:m,path:(b=S.path)!=null?b:t});case"remove":return g();case"mousedown":return y(E,S.index,S.preDragActivity);case"add-toolbar-contribution":return p(S.location,S.content);case"remove-toolbar-contribution":return d();default:return}},[c,t,g,y,p,d]),l]};var Er=require("@salt-ds/core"),Es=M(require("classnames")),Y=M(require("react"));var ye=require("react");var xs=({id:n,rootRef:e,path:t,dropTargets:r,title:o})=>{let i=ie(),{loadState:s,loadSessionState:a,purgeState:l,saveState:u,saveSessionState:c}=bt(),[p,d]=xr(n,e,t,r),g=(0,ye.useMemo)(()=>{var f;return(f=s("view-title"))!=null?f:o},[s,o]),y=(0,ye.useCallback)(f=>{t&&i({type:"set-title",path:t,title:f})},[i,t]),v=(0,ye.useMemo)(()=>s(n),[n,s]),x=(0,ye.useCallback)(f=>s(n,f),[n,s]),S=(0,ye.useCallback)(f=>{l(n,f),i({type:"save"})},[n,i,l]),E=(0,ye.useCallback)((f,R)=>{u(n,R,f),i({type:"save"})},[n,i,u]),m=(0,ye.useCallback)(f=>a(n,f),[n,a]),b=(0,ye.useCallback)((f,R)=>c(n,R,f),[n,c]),w=(0,ye.useCallback)(({type:f,...R})=>{let{[f]:L}=R;E(L,f)},[E]);return{contributions:d,dispatchViewAction:p,load:x,loadSession:m,onConfigChange:w,onEditTitle:y,purge:S,restoredState:v,save:E,saveSession:b,title:g}};var vr=require("@heswell/salt-lab"),St=require("react"),Kl=[],vs=({mainRef:n,resize:e="responsive",rootRef:t})=>{let r=e==="defer",o=(0,St.useRef)({}),i=(0,St.useRef)(),s=(0,St.useCallback)(()=>{n.current&&(n.current.style.height=o.current.height+"px",n.current.style.width=o.current.width+"px"),i.current=void 0},[n]),a=(0,St.useCallback)(({height:l,width:u})=>{o.current.height=l,o.current.width=u,i.current!==null&&clearTimeout(i.current),i.current=window.setTimeout(s,40)},[s]);(0,vr.useResizeObserver)(t,r?vr.WidthHeight:Kl,a,r)};var Cr=M(require("react")),Jl={dispatch:null},Cn=Cr.default.createContext(Jl),Cs=()=>{var e;let n=(0,Cr.useContext)(Cn);return(e=n==null?void 0:n.dispatch)!=null?e:null};var wt=require("react/jsx-runtime"),Qt="vuuView",Xl=(n,e)=>n&&e?{...n,...e}:n||e,Ts=(0,Y.forwardRef)(function(e,t){let{Header:r=Ps,children:o,className:i,collapsed:s,closeable:a,"data-path":l,"data-resizeable":u,dropTargets:c,expanded:p,flexFill:d,id:g,header:y,orientation:v="horizontal",path:x=l,resize:S="responsive",resizeable:E=u,tearOut:m,style:b={},title:w,...f}=e,R=(0,Er.useIdMemo)(g),L=(0,Y.useRef)(null),P=(0,Y.useRef)(null),[T,C]=(0,Y.useState)(),{contributions:O,dispatchViewAction:k,load:V,loadSession:A,onConfigChange:H,onEditTitle:se,purge:K,restoredState:q,save:J,saveSession:ce,title:pe}=xs({id:R,rootRef:L,path:x,dropTargets:c,title:w});vs({mainRef:P,resize:S,rootRef:L});let Me=(0,Y.useCallback)(hr=>{C(hr)},[]),Be=()=>Y.default.isValidElement(o)&&(q||T)?Y.default.cloneElement(o,Xl(q,T)):o,pr=(0,Y.useMemo)(()=>({dispatch:k,id:R,path:x,title:pe,load:V,loadSession:A,onConfigChange:H,purge:K,save:J,saveSession:ce,setComponentProps:Me}),[k,R,V,A,H,x,K,J,ce,Me,pe]),rn=typeof y=="object"?y:{};return(0,wt.jsx)("div",{...f,className:(0,Es.default)(Qt,i,{[`${Qt}-collapsed`]:s,[`${Qt}-expanded`]:p,[`${Qt}-resize-defer`]:S==="defer"}),"data-resizeable":E,id:R,ref:(0,Er.useForkRef)(t,L),style:b,tabIndex:-1,children:(0,wt.jsxs)(Cn.Provider,{value:pr,children:[y?(0,wt.jsx)(r,{...rn,collapsed:s,contributions:O,expanded:p,closeable:a,onEditTitle:se,orientation:v,tearOut:m,title:pe}):null,(0,wt.jsx)("div",{className:`${Qt}-main`,ref:P,children:Be()})]})})});Ts.displayName="View";var Ue=Y.default.memo(Ts);Ue.displayName="View";z("View",Ue,"view");var Se=require("@heswell/salt-lab"),Ds=require("@salt-ds/icons");var ke=require("react/jsx-runtime"),Ps=({className:n,contributions:e,collapsed:t,closeable:r,onEditTitle:o,orientation:i="horizontal",style:s,title:a="Untitled"})=>{let l=(0,We.useRef)(null),[u,c]=(0,We.useState)(a),[p,d]=(0,We.useState)(!1),g=Cs(),y=C=>g==null?void 0:g({type:"remove"},C),v="vuuHeader",x=()=>{var C;(C=l.current)==null||C.focus()},S=C=>{C.stopPropagation()},m=(0,Ms.default)(v,n,`${v}-${t||i}`),b=()=>{d(!0)},w=C=>{C.key==="Enter"&&d(!0)},f=(C="",O="",k=!0,V=!1)=>{var A;d(!1),V?c(C):O!==C&&(c(O),o==null||o(O)),k===!1&&((A=l.current)==null||A.focus())},R=C=>{g==null||g({type:"mousedown"},C)},L=[],P=[],T=[];return e==null||e.forEach((C,O)=>{switch(C.location){case"pre-title":L.push(We.default.cloneElement(C.content,{key:O}));break;default:P.push(We.default.cloneElement(C.content,{key:O}))}}),a&&L.push((0,ke.jsx)(Se.ToolbarField,{className:"vuuHeader-title",children:(0,ke.jsx)(Se.EditableLabel,{editing:p,value:u,onChange:c,onMouseDownCapture:x,onEnterEditMode:b,onExitEditMode:f,onKeyDown:w,ref:l,tabIndex:0},"title")},"title")),r&&T.push((0,ke.jsxs)(Se.ToolbarButton,{onClick:y,onMouseDown:S,children:[(0,ke.jsx)(Ds.CloseIcon,{})," Close"]},"close")),P.length>0&&L.push((0,ke.jsx)(Se.Tooltray,{"data-align-end":!0,children:P},"contributions")),T.length>0&&L.push((0,ke.jsx)(Se.Tooltray,{"data-align-end":!0,children:T},"actions")),(0,ke.jsx)(Se.Toolbar,{className:m,orientation:i,style:s,onMouseDown:R,children:L})};var Ls=require("@vuu-ui/vuu-utils"),Pr=require("@heswell/salt-lab"),En=M(require("classnames")),Mr=require("react");var Tr=require("react/jsx-runtime"),jl=n=>{let e=n.cloneNode(!0);return e.id="",delete e.dataset.idx,e},ks=(0,Mr.memo)(({className:n,children:e,idx:t,resizeable:r,header:o,closeable:i,...s})=>(0,Tr.jsx)(Pr.ListItem,{className:(0,En.default)("vuuPaletteItem",n),"data-draggable":!0,...s}));ks.displayName="PaletteItem";var Yl=({children:n,className:e,orientation:t="horizontal",ViewProps:r,...o})=>{let i=ie(),s="vuuPalette";function a(l){var R;let c=l.target.closest(".vuuPaletteItem"),p=parseInt((R=c.dataset.idx)!=null?R:"-1");p!==-1&&console.log({children:n,idx:p,listItemElement:c});let{props:{caption:d,children:g,template:y,...v}}=n[p],{height:x,left:S,top:E,width:m}=c.getBoundingClientRect(),b=(0,Ls.uuid)(),f=y?g:(0,Tr.jsx)(Ue,{...r,...{id:b,key:b},...v,title:v.label,children:g});i({dragRect:{left:S,top:E,right:S+m,bottom:E+150,width:m,height:x},dragElement:jl(c),evt:l.nativeEvent,instructions:{DoNotRemove:!0,DoNotTransform:!0,RemoveDraggableOnDragEnd:!0,dragThreshold:10},path:"*",payload:f,type:"drag-start"})}return(0,Tr.jsx)(Pr.List,{...o,borderless:!0,className:(0,En.default)(s,e,`${s}-${t}`),maxHeight:800,selected:null,children:n.map((l,u)=>l.type===ks?(0,Mr.cloneElement)(l,{key:u,onMouseDown:a}):l)})};z("Palette",Yl,"view");var Zl=require("@vuu-ui/vuu-utils"),Tn=require("@heswell/salt-lab"),Is=M(require("classnames"));var Os=require("react/jsx-runtime"),eu="vuuPalette";var tu=({className:n,...e})=>(0,Os.jsx)(Tn.List,{...e,className:(0,Is.default)(eu,n),height:"100%",selectionStrategy:"none"});z("PaletteSalt",tu,"view");var Ge=require("@heswell/salt-lab"),As=require("@salt-ds/core"),_s=M(require("classnames")),Ie=M(require("react"));var at=require("react/jsx-runtime"),Vs="Tabs",ru=()=>{},nu=(n,e)=>{var t,r;return(r=(t=n.props)==null?void 0:t.title)!=null?r:`Tab ${e+1}`},ou=n=>{let e=[];return Ie.default.Children.forEach(n,t=>{Ie.default.isValidElement(t)?e.push(t):console.warn("Stack has unexpected child element type")}),e},Pn=(0,Ie.forwardRef)(function({active:e=0,children:t,className:r,enableAddTab:o,enableCloseTabs:i,getTabIcon:s=ru,getTabLabel:a=nu,id:l,keyBoardActivation:u="manual",onMouseDown:c,onTabAdd:p,onTabClose:d,onTabEdit:g,onTabSelectionChanged:y,showTabs:v,style:x,TabstripProps:S},E){var O;let m=(0,As.useIdMemo)(l),b=k=>{y==null||y(k)},w=k=>{d==null||d(k)},f=()=>{p==null||p(Ie.default.Children.count(t))},R=k=>{var se;let A=k.target.closest('[role^="tab"]');if((A==null?void 0:A.getAttribute("role"))==="tab"){let K=parseInt((se=A.dataset.idx)!=null?se:"-1");if(K===-1)throw Error("Stack: mousedown on tab with unknown index");c==null||c(k,K)}},L=(0,Ie.useCallback)((k,V,A,H)=>{g==null||g(H,V)},[g]),P=()=>{var k;return Ie.default.isValidElement(t)?t:Array.isArray(t)&&(k=t[e])!=null?k:null},T=()=>ou(t).map((k,V)=>{let A=`${m}-${V}`,{closeable:H,id:se}=k.props;return(0,at.jsx)(Ge.Tab,{ariaControls:`${A}-tab`,"data-icon":s(k,V),draggable:!0,id:A,label:a(k,V),closeable:H&&(S==null?void 0:S.enableCloseTab)!==!1,editable:(S==null?void 0:S.enableRenameTab)!==!1},se!=null?se:V)}),C=P();return(0,at.jsxs)("div",{className:(0,_s.default)(Vs,r,{[`${Vs}-horizontal`]:(S==null?void 0:S.orientation)==="vertical"}),style:x,id:m,ref:E,children:[v?(0,at.jsx)(Ge.Toolbar,{className:"vuuTabHeader vuuHeader",orientation:S==null?void 0:S.orientation,children:(0,at.jsx)(Ge.ToolbarField,{disableFocusRing:!0,"data-collapsible":"dynamic","data-priority":"3",style:{alignSelf:"flex-end"},children:(0,at.jsx)(Ge.Tabstrip,{...S,activeTabIndex:(O=S==null?void 0:S.activeTabIndex)!=null?O:C===null?-1:e,enableRenameTab:(S==null?void 0:S.enableRenameTab)!==!1,enableAddTab:o,enableCloseTab:i,keyBoardActivation:u,onActiveChange:b,onAddTab:f,onCloseTab:w,onExitEditMode:L,onMouseDown:R,children:T()})})}):null,C]})});Pn.displayName="Stack";var Ns=require("@salt-ds/core"),Lr=M(require("react"));var Dr=require("react/jsx-runtime"),su=n=>(0,Dr.jsx)(Ue,{resizeable:!0,title:`Tab ${n}`,style:{flexGrow:1,flexShrink:0,flexBasis:0},header:!0,closeable:!0,children:(0,Dr.jsx)(cn,{style:{flex:1}})}),Bs=n=>{let e=(0,Lr.useRef)(null),t=ie(),{loadState:r}=bt(),{createNewChild:o=su,id:i,onTabSelectionChanged:s,path:a,...l}=n,{children:u}=n,c=(0,Ns.useIdMemo)(i),[p]=xr(c,e,a);return(0,Dr.jsx)(Pn,{...l,id:c,getTabLabel:(E,m)=>{let{id:b,title:w}=E.props;return r(b,"view-title")||w||`Tab ${m+1}`},onMouseDown:async(E,m)=>{let b;await p({type:"mousedown",index:m,preDragActivity:async()=>new Promise(R=>{console.log("preDragActivity: Ok, gonna release the drag"),b=R})},E)&&(b==null||b(void 0))},onTabAdd:(E,m=Lr.default.Children.count(u))=>{if(a){console.log("[StackLayout] handleTabAdd");let b=o(m);console.log({component:b}),t({type:"add",path:a,component:b})}},onTabClose:E=>{if(Array.isArray(u)){let{props:{"data-path":m,path:b=m}}=u[E];t({type:"remove",path:b})}},onTabEdit:(E,m)=>{t({type:"set-title",path:`${a}.${E}`,title:m})},onTabSelectionChanged:E=>{console.log(`StackLayout handleTabSelection nextTab = ${E}`),a&&(t({type:"switch-tab",path:a,nextIdx:E}),s==null||s(E))},ref:e})};Bs.displayName="Stack";z("Stack",Bs,"container");var Fs=M(require("react"));var zs=require("react/jsx-runtime");var $s=require("@heswell/salt-lab"),Hs=require("react/jsx-runtime");var kr="(\\d+)(?:px)?",iu=`^(?:${kr}(?:\\s${kr}(?:\\s${kr}(?:\\s${kr})?)?)?)$`,Fy=new RegExp(iu);var au=M(require("react")),lu=M(require("classnames"));var uu=require("@heswell/salt-lab"),cu=require("react/jsx-runtime");var Us=M(require("react")),lt=require("react/jsx-runtime"),Ir=class extends Us.default.Component{constructor(e){super(e),this.state={errorMessage:null}}static getDerivedStateFromError(e){return{errorMessage:e.message}}componentDidCatch(e,t){console.log(e,t)}render(){return this.state.errorMessage?(0,lt.jsxs)(lt.Fragment,{children:[(0,lt.jsx)("h1",{children:"Something went wrong."}),(0,lt.jsx)("p",{children:this.state.errorMessage})]}):this.props.children}};var Gs=require("react/jsx-runtime"),Ws=()=>(0,Gs.jsx)("div",{className:"hwLoader",children:"loading"});var Kt=require("react/jsx-runtime"),Or=new Map,pu=n=>((0,qe.useEffect)(()=>()=>{Or.delete(n)},[n]),Or.has(n)||Or.set(n,qe.default.lazy(()=>import(n))),Or.get(n));function hu({url:n,css:e,params:t,...r}){console.log("Feature render",{css:e,url:n,props:r}),(0,qe.useEffect)(()=>(console.log("%cFeature mount","color: green;"),()=>{console.log("%cFeature unmount","color:red;")}),[]),e&&import(e).then(i=>{console.log("%cInject Styles","color: blue;font-weight: bold"),document.adoptedStyleSheets=[...document.adoptedStyleSheets,i.default]});let o=pu(n);return(0,Kt.jsx)(Ir,{children:(0,Kt.jsx)(qe.Suspense,{fallback:(0,Kt.jsx)(Ws,{}),children:(0,Kt.jsx)(o,{...r,...t})})})}var qs=qe.default.memo(hu);qs.displayName="Feature";z("Feature",qs,"view");var du=require("react"),fu=require("@salt-ds/core"),Qs=require("@heswell/salt-lab");var Ks=require("react/jsx-runtime");var Js=require("@vuu-ui/vuu-utils"),mu=()=>{let n=(0,Js.getCookieValue)("vuu-auth-mode");return n!=null?n:""};var gu=()=>mu()==="login"?"login.html":"demo.html",bu=(n=gu())=>{window.location.href=n},Xs=n=>{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",bu(n)};var tr=require("react"),Sc=M(require("classnames")),wc=require("@salt-ds/core"),Rc=require("@salt-ds/core");var xt=require("@vuu-ui/vuu-utils");var js=n=>n.type==="viewport-update"&&n.mode==="size-only";var Jt=(n,e)=>n===e?!0:n===void 0&&e===void 0,yu=({filter:n},{filter:e})=>n===void 0&&(e==null?void 0:e.filter)===""||e===void 0&&(n==null?void 0:n.filter)==="",Su=(n,e)=>{var t,r;return yu(n,e)?!1:((t=n.filter)==null?void 0:t.filter)!==((r=e.filter)==null?void 0:r.filter)},wu=({sort:n},{sort:e})=>n===void 0&&(e==null?void 0:e.sortDefs.length)===0||e===void 0&&(n==null?void 0:n.sortDefs.length)===0,Ru=(n,e)=>{let{sort:t}=n,{sort:r}=e;return Jt(t,r)||wu(n,e)?!1:t===void 0||r===void 0||(t==null?void 0:t.sortDefs.length)!==(r==null?void 0:r.sortDefs.length)?!0:t.sortDefs.some(({column:o,sortType:i},s)=>o!==r.sortDefs[s].column||i!==r.sortDefs[s].sortType)};var xu=({groupBy:n},{groupBy:e})=>n===void 0&&(e==null?void 0:e.length)===0||e===void 0&&(n==null?void 0:n.length)===0,vu=(n,e)=>{let{groupBy:t}=n,{groupBy:r}=e;return Jt(t,r)||xu(n,e)?!1:t===void 0||r===void 0||(t==null?void 0:t.length)!==(r==null?void 0:r.length)?!0:t.some((o,i)=>o!==(r==null?void 0:r[i]))},Cu=({columns:n},{columns:e})=>n===void 0&&(e==null?void 0:e.length)===0||e===void 0&&(n==null?void 0:n.length)===0,Eu=(n,e)=>{let{columns:t}=n,{columns:r}=e;return Jt(t,r)||Cu(n,e)?!1:t===void 0||r===void 0||(t==null?void 0:t.length)!==(r==null?void 0:r.length)?!0:t.some((o,i)=>o!==(r==null?void 0:r[i]))},Tu=({aggregations:n},{aggregations:e})=>n===void 0&&(e==null?void 0:e.length)===0||e===void 0&&(n==null?void 0:n.length)===0,Pu=(n,e)=>{let{aggregations:t}=n,{aggregations:r}=e;return Jt(t,r)||Tu(n,e)?!1:t===void 0||r===void 0||t.length!==r.length?!0:t.some(({column:o,aggType:i},s)=>o!==r[s].column||i!==r[s].aggType)},Mu=()=>!1,Ys=(n,e)=>Jt(n,e)?!1:n===void 0||e===void 0?!0:Eu(n,e)||Su(n,e)||Ru(n,e)||vu(n,e)||Pu(n,e)||Mu(n,e),Du=["config","aggregate","viewport-update","columns","debounce-begin","disabled","enabled","filter","groupBy","vuu-link-created","vuu-link-removed","vuu-links","vuu-menu","sort","subscribed"],Zs=n=>{let e=n.type;return Du.includes(e)},ei=n=>["config","aggregate","columns","filter","groupBy","sort"].includes(n.type),Lu={filter:""},ku={sortDefs:[]},Vr={aggregations:[],columns:[],filter:Lu,groupBy:[],sort:ku},ti=n=>{if(n.aggregations&&n.columns&&n.filter&&n.groupBy&&n.sort)return n;{let{aggregations:e=[],columns:t=[],filter:r={filter:""},groupBy:o=[],sort:i={sortDefs:[]},visualLink:s}=n;return{aggregations:e,columns:t,filter:r,groupBy:o,sort:i,visualLink:s}}};var ri="GET_TABLE_LIST",ni="GET_TABLE_META";var Mn=n=>n.type==="connection-status",oi=n=>n.type==="connection-metrics",si=n=>typeof n.result<"u",ii=n=>n.type==="TABLE_META_RESP";var ai='\nvar ge=(r,e,t)=>{if(!e.has(r))throw TypeError("Cannot "+t)};var c=(r,e,t)=>(ge(r,e,"read from private field"),t?t.call(r):e.get(r)),N=(r,e,t)=>{if(e.has(r))throw TypeError("Cannot add the same private member more than once");e instanceof WeakSet?e.add(r):e.set(r,t)},de=(r,e,t,s)=>(ge(r,e,"write to private field"),s?s.call(r,t):e.set(r,t),t);function fe(r,e,t=[],s=[]){for(let n=0,o=r.length;n<o;n++)(e(r[n],n)?t:s).push(r[n]);return[t,s]}var I={IDX:0,RENDER_IDX:1,IS_LEAF:2,IS_EXPANDED:3,DEPTH:4,COUNT:5,KEY:6,SELECTED:7,count:8,PARENT_IDX:"parent_idx",IDX_POINTER:"idx_pointer",FILTER_COUNT:"filter_count",NEXT_FILTER_IDX:"next_filter_idx"};var{DEPTH:$t,IS_LEAF:Gt}=I;var he=r=>{var e,t;if(((e=globalThis.document)==null?void 0:e.cookie)!==void 0)return(t=globalThis.document.cookie.split("; ").find(s=>s.startsWith(`${r}=`)))==null?void 0:t.split("=")[1]};function z({from:r,to:e},t=0,s=Number.MAX_SAFE_INTEGER){if(t===0)return s<r?{from:0,to:0}:{from:r,to:Math.min(e,s)};if(r===0)return{from:r,to:Math.min(e+t,s)};{let n=e-r,o=Math.round(t/2),i=r-o<0,u=s-(e+o)<0;return i&&u?{from:0,to:s}:i?{from:0,to:n+t}:u?{from:Math.max(0,s-(n+t)),to:s}:{from:r-o,to:e+o}}}var rt=(r,{from:e,to:t})=>r>=e&&r<t;var v=class{constructor(e,t){this.from=e,this.to=t}isWithin(e){return rt(e,this)}overlap(e,t){return e>=this.to||t<this.from?[0,0]:[Math.max(e,this.from),Math.min(t,this.to)]}copy(){return new v(this.from,this.to)}};var{KEY:Yt}=I;var ot=["error","warn","info","debug"],it=r=>typeof r=="string"&&ot.includes(r),at="error",F=()=>{},ut="error",{loggingLevel:W=ut}=lt(),T=r=>{let e=W==="debug",t=e||W==="info",s=t||W==="warn",n=s||W==="error",o=t?f=>console.info(`[${r}] ${f}`):F,i=s?f=>console.warn(`[${r}] ${f}`):F,u=e?f=>console.debug(`[${r}] ${f}`):F;return{errorEnabled:n,error:n?f=>console.error(`[${r}] ${f}`):F}};function lt(){return typeof loggingSettings<"u"?loggingSettings:{loggingLevel:ct()}}function ct(){let r=he("vuu-logging-level");return it(r)?r:at}var{debug:pt,debugEnabled:gt}=T("range-monitor"),q=class{constructor(e){this.source=e;this.range={from:0,to:0};this.timestamp=0}isSet(){return this.timestamp!==0}set({from:e,to:t}){let{timestamp:s}=this;if(this.range.from=e,this.range.to=t,this.timestamp=performance.now(),s)gt&&pt(`<${this.source}> [${e}-${t}], ${(this.timestamp-s).toFixed(0)} ms elapsed`);else return 0}};function me(r){return Array.isArray(r)}function dt(r){return!Array.isArray(r)}var S,Ce=class{constructor(){N(this,S,new Map)}addListener(e,t){let s=c(this,S).get(e);s?me(s)?s.push(t):dt(s)&&c(this,S).set(e,[s,t]):c(this,S).set(e,t)}removeListener(e,t){if(!c(this,S).has(e))return;let s=c(this,S).get(e),n=-1;if(s===t)c(this,S).delete(e);else if(Array.isArray(s)){for(let o=length;o-- >0;)if(s[o]===t){n=o;break}if(n<0)return;s.length===1?(s.length=0,c(this,S).delete(e)):s.splice(n,1)}}removeAllListeners(e){e&&c(this,S).has(e)?c(this,S).delete(e):e===void 0&&c(this,S).clear()}emit(e,...t){if(c(this,S)){let s=c(this,S).get(e);s&&this.invokeHandler(s,t)}}once(e,t){let s=(...n)=>{this.removeListener(e,s),t(...n)};this.on(e,s)}on(e,t){this.addListener(e,t)}invokeHandler(e,t){if(me(e))e.slice().forEach(s=>this.invokeHandler(s,t));else switch(t.length){case 0:e();break;case 1:e(t[0]);break;case 2:e(t[0],t[1]);break;default:e.call(null,...t)}}};S=new WeakMap;var $=String.fromCharCode(8200),h=String.fromCharCode(8199);var as={DIGIT:h,TWO_DIGITS:h+h,THREE_DIGITS:h+h+h,FULL_PADDING:[null,$+h,$+h+h,$+h+h+h,$+h+h+h+h]};var us=h+h+h+h+h+h+h+h+h;var ft={Enter:"Enter",Delete:"Delete"},ht={Home:"Home",End:"End",ArrowRight:"ArrowRight",ArrowLeft:"ArrowLeft",ArrowDown:"ArrowDown",ArrowUp:"ArrowUp",Tab:"Tab"},mt={F1:"F1",F2:"F2",F3:"F3",F4:"F4",F5:"F5",F6:"F6",F7:"F7",F8:"F8",F9:"F9",F10:"F10",F11:"F11",F12:"F12"},Vs={...ft,...ht,...mt};var{COUNT:Is}=I;var G=class{constructor(e){this.keys=new Map,this.free=[],this.nextKeyValue=0,this.reset(e)}next(){return this.free.length>0?this.free.pop():this.nextKeyValue++}reset({from:e,to:t}){this.keys.forEach((n,o)=>{(o<e||o>=t)&&(this.free.push(n),this.keys.delete(o))});let s=t-e;this.keys.size+this.free.length>s&&(this.free.length=Math.max(0,s-this.keys.size));for(let n=e;n<t;n++)if(!this.keys.has(n)){let o=this.next();this.keys.set(n,o)}this.nextKeyValue>this.keys.size&&(this.nextKeyValue=this.keys.size)}keyFor(e){let t=this.keys.get(e);if(t===void 0)throw console.log(`key not found\n keys: ${this.toDebugString()}\n free : ${this.free.join(",")} \n `),Error(`KeySet, no key found for rowIndex ${e}`);return t}toDebugString(){return Array.from(this.keys.entries()).map((e,t)=>`${e}=>${t}`).join(",")}};var{IDX:Ls}=I;var{SELECTED:Us}=I,_={False:0,True:1,First:2,Last:4};var Ns=_.True+_.First+_.Last,Fs=_.True+_.First,Ws=_.True+_.Last;var be=r=>{if(r.every(t=>typeof t=="number"))return r;let e=[];for(let t of r)if(typeof t=="number")e.push(t);else for(let s=t[0];s<=t[1];s++)e.push(s);return e};var{debug:Vn,debugEnabled:En,error:Se,info:E,infoEnabled:Ct,warn:x}=T("websocket-connection"),Re="ws",bt=r=>r.startsWith(Re+"://")||r.startsWith(Re+"s://"),Te={},Z=Symbol("setWebsocket"),A=Symbol("connectionCallback");async function Ee(r,e,t){return X(r,e,t)}async function Y(r){X(r.url,r.protocol,r[A],r)}async function X(r,e,t,s){let n=Te[r]||(Te[r]={attemptsRemaining:5,status:"disconnected"});try{t({type:"connection-status",status:"connecting"});let o=typeof s<"u",i=await Rt(r,e);console.info("%c\u26A1 %cconnected","font-size: 24px;color: green;font-weight: bold;","color:green; font-size: 14px;"),s!==void 0&&s[Z](i);let u=s!=null?s:new Q(i,r,e,t),g=o?"reconnected":"connection-open-awaiting-session";return t({type:"connection-status",status:g}),u.status=g,u}catch(o){console.log({evt:o});let i=--n.attemptsRemaining>0;if(t({type:"connection-status",status:"disconnected",reason:"failed to connect",retry:i}),i)return St(r,e,t,s,1e4);throw Error("Failed to establish connection")}}var St=(r,e,t,s,n)=>new Promise(o=>{setTimeout(()=>{o(X(r,e,t,s))},n)}),Rt=(r,e)=>new Promise((t,s)=>{let n=bt(r)?r:`wss://${r}`;Ct&&e!==void 0&&E(`WebSocket Protocol ${e==null?void 0:e.toString()}`);let o=new WebSocket(n,e);o.onopen=()=>t(o),o.onerror=i=>s(i)}),ye=()=>{x==null||x("Connection cannot be closed, socket not yet opened")},Ve=r=>{x==null||x(`Message cannot be sent, socket closed ${r.body.type}`)},Tt=r=>{try{return JSON.parse(r)}catch{throw Error(`Error parsing JSON response from server ${r}`)}},Q=class{constructor(e,t,s,n){this.close=ye;this.requiresLogin=!0;this.send=Ve;this.status="ready";this.messagesCount=0;this.connectionMetricsInterval=null;this.handleWebsocketMessage=e=>{let t=Tt(e.data);this.messagesCount+=1,this[A](t)};this.url=t,this.protocol=s,this[A]=n,this[Z](e)}reconnect(){Y(this)}[(A,Z)](e){let t=this[A];e.onmessage=o=>{this.status="connected",e.onmessage=this.handleWebsocketMessage,this.handleWebsocketMessage(o)},this.connectionMetricsInterval=setInterval(()=>{t({type:"connection-metrics",messagesLength:this.messagesCount}),this.messagesCount=0},1e3),e.onerror=()=>{Se("\u26A1 connection error"),t({type:"connection-status",status:"disconnected",reason:"error"}),this.connectionMetricsInterval&&(clearInterval(this.connectionMetricsInterval),this.connectionMetricsInterval=null),this.status==="connection-open-awaiting-session"?Se("Websocket connection lost before Vuu session established, check websocket configuration"):this.status!=="closed"&&(Y(this),this.send=n)},e.onclose=()=>{E==null||E("\u26A1 connection close"),t({type:"connection-status",status:"disconnected",reason:"close"}),this.connectionMetricsInterval&&(clearInterval(this.connectionMetricsInterval),this.connectionMetricsInterval=null),this.status!=="closed"&&(Y(this),this.send=n)};let s=o=>{e.send(JSON.stringify(o))},n=o=>{E==null||E(`TODO queue message until websocket reconnected ${o.body.type}`)};this.send=s,this.close=()=>{this.status="closed",e.close(),this.close=ye,this.send=Ve,E==null||E("close websocket")}}};var yt=["VIEW_PORT_MENUS_SELECT_RPC","VIEW_PORT_MENU_TABLE_RPC","VIEW_PORT_MENU_ROW_RPC","VIEW_PORT_MENU_CELL_RPC","VP_EDIT_CELL_RPC","VP_EDIT_ROW_RPC","VP_EDIT_ADD_ROW_RPC","VP_EDIT_DELETE_CELL_RPC","VP_EDIT_DELETE_ROW_RPC","VP_EDIT_SUBMIT_FORM_RPC"],we=r=>yt.includes(r.type),ee=({requestId:r,...e})=>[r,e],Me=r=>{let e=r.at(0);if(e.updateType==="SIZE"){if(r.length===1)return r;e=r.at(1)}let t=r.at(-1);return[e,t]},Ie=r=>{let e={};for(let t of r)(e[t.viewPortId]||(e[t.viewPortId]=[])).push(t);return e},te=({columns:r,dataTypes:e,key:t,table:s})=>({table:s,columns:r.map((n,o)=>({name:n,serverDataType:e[o]})),key:t});var ve=r=>r.type==="connection-status",_e=r=>r.type==="connection-metrics";var De=r=>"viewport"in r,xe=r=>r.type==="VIEW_PORT_MENU_RESP"&&r.action!==null&&B(r.action.table),B=r=>r!==null&&typeof r=="object"&&"table"in r&&"module"in r?r.table.startsWith("session"):!1;var Pe="CHANGE_VP_SUCCESS",Oe="CHANGE_VP_RANGE_SUCCESS",Le="CLOSE_TREE_NODE",ke="CLOSE_TREE_SUCCESS";var Ae="CREATE_VP",Ue="CREATE_VP_SUCCESS",Ne="DISABLE_VP",Fe="DISABLE_VP_SUCCESS";var We="ENABLE_VP",qe="ENABLE_VP_SUCCESS";var se="GET_VP_VISUAL_LINKS",$e="GET_VIEW_PORT_MENUS";var Ge="HB",Be="HB_RESP",Ke="LOGIN",He="LOGIN_SUCCESS",Je="OPEN_TREE_NODE",je="OPEN_TREE_SUCCESS";var ze="REMOVE_VP";var ne="RPC_RESP";var Ye="SET_SELECTION_SUCCESS",re="TABLE_META_RESP",oe="TABLE_LIST_RESP",Ze="TABLE_ROW";var Xe=r=>{switch(r){case"TypeAheadRpcHandler":return"TYPEAHEAD";default:return"SIMUL"}};var et=[],y=T("array-backed-moving-window"),C,K=class{constructor({from:e,to:t},{from:s,to:n},o){N(this,C,void 0);this.setRowCount=e=>{var t;if((t=y.info)==null||t.call(y,`setRowCount ${e}`),e<this.internalData.length&&(this.internalData.length=e),e<this.rowCount){this.rowsWithinRange=0;let s=Math.min(e,this.clientRange.to);for(let n=this.clientRange.from;n<s;n++){let o=n-c(this,C).from;this.internalData[o]!==void 0&&(this.rowsWithinRange+=1)}}this.rowCount=e};this.bufferBreakout=(e,t)=>{let s=this.bufferSize*.25;return c(this,C).to-t<s?!0:c(this,C).from>0&&e-c(this,C).from<s};this.bufferSize=o,this.clientRange=new v(e,t),de(this,C,new v(s,n)),this.internalData=new Array(o),this.rowsWithinRange=0,this.rowCount=0}get range(){return c(this,C)}get hasAllRowsWithinRange(){return this.rowsWithinRange===this.clientRange.to-this.clientRange.from||this.rowCount>0&&this.clientRange.from+this.rowsWithinRange===this.rowCount}outOfRange(e,t){let{from:s,to:n}=this.range;if(t<s||e>=n)return!0}setAtIndex(e){let{rowIndex:t}=e,s=this.isWithinClientRange(t);if(s||this.isWithinRange(t)){let n=t-c(this,C).from;!this.internalData[n]&&s&&(this.rowsWithinRange+=1),this.internalData[n]=e}return s}getAtIndex(e){return c(this,C).isWithin(e)&&this.internalData[e-c(this,C).from]!=null?this.internalData[e-c(this,C).from]:void 0}isWithinRange(e){return c(this,C).isWithin(e)}isWithinClientRange(e){return this.clientRange.isWithin(e)}setClientRange(e,t){var f;(f=y.debug)==null||f.call(y,`setClientRange ${e} - ${t}`);let s=this.clientRange.from,n=Math.min(this.clientRange.to,this.rowCount);if(e===s&&t===n)return[!1,et];let o=this.clientRange.copy();this.clientRange.from=e,this.clientRange.to=t,this.rowsWithinRange=0;for(let a=e;a<t;a++){let l=a-c(this,C).from;this.internalData[l]&&(this.rowsWithinRange+=1)}let i=et,u=c(this,C).from;if(this.hasAllRowsWithinRange)if(t>o.to){let a=Math.max(e,o.to);i=this.internalData.slice(a-u,t-u)}else{let a=Math.min(o.from,t);i=this.internalData.slice(e-u,a-u)}return[this.bufferBreakout(e,t),i]}setRange(e,t){var i;(i=y.debug)==null||i.call(y,`setRange ${e} - ${t}`);let[s,n]=c(this,C).overlap(e,t),o=new Array(t-e+this.bufferSize);this.rowsWithinRange=0;for(let u=s;u<n;u++){let g=this.getAtIndex(u);if(g){let f=u-e;o[f]=g,this.isWithinClientRange(u)&&(this.rowsWithinRange+=1)}}this.internalData=o,c(this,C).from=e,c(this,C).to=t}getData(){var u;let{from:e,to:t}=c(this,C),{from:s,to:n}=this.clientRange,o=Math.max(0,s-e),i=Math.min(t-e,t,n-e,(u=this.rowCount)!=null?u:t);return this.internalData.slice(o,i)}clear(){var e;(e=y.debug)==null||e.call(y,"clear"),this.internalData.length=0,this.rowsWithinRange=0,this.setRowCount(0)}getCurrentDataRange(){let e=this.internalData,t=e.length,[s]=this.internalData,n=this.internalData[t-1];if(s&&n)return[s.rowIndex,n.rowIndex];for(let o=0;o<t;o++)if(e[o]!==void 0){s=e[o];break}for(let o=t-1;o>=0;o--)if(e[o]!==void 0){n=e[o];break}return s&&n?[s.rowIndex,n.rowIndex]:[-1,-1]}};C=new WeakMap;var Vt=[],{debug:m,debugEnabled:H,error:Et,info:p,infoEnabled:wt,warn:P}=T("viewport"),Mt=({rowKey:r,updateType:e})=>e==="U"&&!r.startsWith("$root"),J=class{constructor({aggregations:e,bufferSize:t=50,columns:s,filter:n,groupBy:o=[],table:i,range:u,sort:g,title:f,viewport:a,visualLink:l}){this.dataWindow=void 0;this.hasUpdates=!1;this.pendingUpdates=[];this.pendingOperations=new Map;this.pendingRangeRequests=[];this.rowCountChanged=!1;this.tableSchema=null;this.batchMode=!0;this.useBatchMode=!0;this.rangeMonitor=new q("ViewPort");this.disabled=!1;this.isTree=!1;this.status="";this.suspended=!1;this.suspendTimer=null;this.rangeRequestAlreadyPending=e=>{let{bufferSize:t}=this,s=t*.25,{from:n}=e;for(let{from:o,to:i}of this.pendingRangeRequests)if(n>=o&&n<i){if(e.to+s<=i)return!0;n=i}return!1};this.getNewRowCount=()=>{if(this.rowCountChanged&&this.dataWindow)return this.rowCountChanged=!1,this.dataWindow.rowCount};this.aggregations=e,this.bufferSize=t,this.clientRange=u,this.clientViewportId=a,this.columns=s,this.filter=n,this.groupBy=o,this.keys=new G(u),this.pendingLinkedParent=l,this.table=i,this.sort=g,this.title=f,wt&&(p==null||p(`constructor #${a} ${i.table} bufferSize=${t}`))}get hasUpdatesToProcess(){return this.suspended?!1:this.rowCountChanged||this.hasUpdates}get size(){var e,t;return(t=(e=this.dataWindow)==null?void 0:e.rowCount)!=null?t:0}subscribe(){let{filter:e}=this.filter;return this.status=this.status==="subscribed"?"resubscribing":"subscribing",{type:Ae,table:this.table,range:z(this.clientRange,this.bufferSize),aggregations:this.aggregations,columns:this.columns,sort:this.sort,groupBy:this.groupBy,filterSpec:{filter:e}}}handleSubscribed({viewPortId:e,aggregations:t,columns:s,filterSpec:n,range:o,sort:i,groupBy:u}){return this.serverViewportId=e,this.status="subscribed",this.aggregations=t,this.columns=s,this.groupBy=u,this.isTree=u&&u.length>0,this.dataWindow=new K(this.clientRange,o,this.bufferSize),{aggregations:t,type:"subscribed",clientViewportId:this.clientViewportId,columns:s,filter:n,groupBy:u,range:o,sort:i,tableSchema:this.tableSchema}}awaitOperation(e,t){this.pendingOperations.set(e,t)}completeOperation(e,...t){var u;let{clientViewportId:s,pendingOperations:n}=this,o=n.get(e);if(!o){Et("no matching operation found to complete");return}let{type:i}=o;if(p==null||p(`completeOperation ${i}`),n.delete(e),i==="CHANGE_VP_RANGE"){let[g,f]=t;(u=this.dataWindow)==null||u.setRange(g,f);for(let a=this.pendingRangeRequests.length-1;a>=0;a--){let l=this.pendingRangeRequests[a];if(l.requestId===e){l.acked=!0;break}else P==null||P("range requests sent faster than they are being ACKed")}}else if(i==="config"){let{aggregations:g,columns:f,filter:a,groupBy:l,sort:d}=o.data;return this.aggregations=g,this.columns=f,this.filter=a,this.groupBy=l,this.sort=d,l.length>0?this.isTree=!0:this.isTree&&(this.isTree=!1),m==null||m(`config change confirmed, isTree : ${this.isTree}`),{clientViewportId:s,type:i,config:o.data}}else{if(i==="groupBy")return this.isTree=o.data.length>0,this.groupBy=o.data,m==null||m(`groupBy change confirmed, isTree : ${this.isTree}`),{clientViewportId:s,type:i,groupBy:o.data};if(i==="columns")return this.columns=o.data,{clientViewportId:s,type:i,columns:o.data};if(i==="filter")return this.filter=o.data,{clientViewportId:s,type:i,filter:o.data};if(i==="aggregate")return this.aggregations=o.data,{clientViewportId:s,type:"aggregate",aggregations:this.aggregations};if(i==="sort")return this.sort=o.data,{clientViewportId:s,type:i,sort:this.sort};if(i!=="selection"){if(i==="disable")return this.disabled=!0,{type:"disabled",clientViewportId:s};if(i==="enable")return this.disabled=!1,{type:"enabled",clientViewportId:s};if(i==="CREATE_VISUAL_LINK"){let[g,f,a]=t;return this.linkedParent={colName:g,parentViewportId:f,parentColName:a},this.pendingLinkedParent=void 0,{type:"vuu-link-created",clientViewportId:s,colName:g,parentViewportId:f,parentColName:a}}else if(i==="REMOVE_VISUAL_LINK")return this.linkedParent=void 0,{type:"vuu-link-removed",clientViewportId:s}}}}rangeRequest(e,t){H&&this.rangeMonitor.set(t);let s="CHANGE_VP_RANGE";if(this.dataWindow){let[n,o]=this.dataWindow.setClientRange(t.from,t.to),i,u=this.dataWindow.rowCount||void 0,g=n&&!this.rangeRequestAlreadyPending(t)?{type:s,viewPortId:this.serverViewportId,...z(t,this.bufferSize,u)}:null;if(g){H&&(m==null||m(`create CHANGE_VP_RANGE: [${g.from} - ${g.to}]`)),this.awaitOperation(e,{type:s});let a=this.pendingRangeRequests.at(-1);if(a)if(a.acked)console.warn("Range Request before previous request is filled");else{let{from:l,to:d}=a;this.dataWindow.outOfRange(l,d)?i={clientViewportId:this.clientViewportId,type:"debounce-begin"}:P==null||P("Range Request before previous request is acked")}this.pendingRangeRequests.push({...g,requestId:e}),this.useBatchMode&&(this.batchMode=!0)}else o.length>0&&(this.batchMode=!1);this.keys.reset(this.dataWindow.clientRange);let f=this.isTree?ae:ie;return o.length?[g,o.map(a=>f(a,this.keys))]:i?[g,void 0,i]:[g]}else return[null]}setLinks(e){return this.links=e,[{type:"vuu-links",links:e,clientViewportId:this.clientViewportId},this.pendingLinkedParent]}setMenu(e){return{type:"vuu-menu",menu:e,clientViewportId:this.clientViewportId}}setTableSchema(e){this.tableSchema=e}openTreeNode(e,t){return this.useBatchMode&&(this.batchMode=!0),{type:Je,vpId:this.serverViewportId,treeKey:t.key}}closeTreeNode(e,t){return this.useBatchMode&&(this.batchMode=!0),{type:Le,vpId:this.serverViewportId,treeKey:t.key}}createLink(e,t,s,n){let o={type:"CREATE_VISUAL_LINK",parentVpId:s,childVpId:this.serverViewportId,parentColumnName:n,childColumnName:t};return this.awaitOperation(e,o),this.useBatchMode&&(this.batchMode=!0),o}removeLink(e){let t={type:"REMOVE_VISUAL_LINK",childVpId:this.serverViewportId};return this.awaitOperation(e,t),t}suspend(){this.suspended=!0,p==null||p("suspend")}resume(){return this.suspended=!1,H&&(m==null||m(`resume: ${this.currentData()}`)),this.currentData()}currentData(){let e=[];if(this.dataWindow){let t=this.dataWindow.getData(),{keys:s}=this,n=this.isTree?ae:ie;for(let o of t)o&&e.push(n(o,s))}return e}enable(e){return this.awaitOperation(e,{type:"enable"}),p==null||p(`enable: ${this.serverViewportId}`),{type:We,viewPortId:this.serverViewportId}}disable(e){return this.awaitOperation(e,{type:"disable"}),p==null||p(`disable: ${this.serverViewportId}`),this.suspended=!1,{type:Ne,viewPortId:this.serverViewportId}}columnRequest(e,t){return this.awaitOperation(e,{type:"columns",data:t}),m==null||m(`columnRequest: ${t}`),this.createRequest({columns:t})}filterRequest(e,t){this.awaitOperation(e,{type:"filter",data:t}),this.useBatchMode&&(this.batchMode=!0);let{filter:s}=t;return p==null||p(`filterRequest: ${s}`),this.createRequest({filterSpec:{filter:s}})}setConfig(e,t){this.awaitOperation(e,{type:"config",data:t});let{filter:s,...n}=t;return this.useBatchMode&&(this.batchMode=!0),H?m==null||m(`setConfig ${JSON.stringify(t)}`):p==null||p("setConfig"),this.createRequest({...n,filterSpec:typeof(s==null?void 0:s.filter)=="string"?{filter:s.filter}:{filter:""}},!0)}aggregateRequest(e,t){return this.awaitOperation(e,{type:"aggregate",data:t}),p==null||p(`aggregateRequest: ${t}`),this.createRequest({aggregations:t})}sortRequest(e,t){return this.awaitOperation(e,{type:"sort",data:t}),p==null||p(`sortRequest: ${JSON.stringify(t.sortDefs)}`),this.createRequest({sort:t})}groupByRequest(e,t=Vt){var s;return this.awaitOperation(e,{type:"groupBy",data:t}),this.useBatchMode&&(this.batchMode=!0),this.isTree||(s=this.dataWindow)==null||s.clear(),this.createRequest({groupBy:t})}selectRequest(e,t){return this.awaitOperation(e,{type:"selection",data:t}),p==null||p(`selectRequest: ${t}`),{type:"SET_SELECTION",vpId:this.serverViewportId,selection:be(t)}}removePendingRangeRequest(e,t){for(let s=this.pendingRangeRequests.length-1;s>=0;s--){let{from:n,to:o}=this.pendingRangeRequests[s],i=!0;if(e>=n&&e<o||t>n&&t<o){i||console.warn("removePendingRangeRequest TABLE_ROWS are not for latest request"),this.pendingRangeRequests.splice(s,1);break}else i=!1}}updateRows(e){var n,o,i;let[t,s]=Me(e);if(t&&s&&this.removePendingRangeRequest(t.rowIndex,s.rowIndex),e.length===1&&t.vpSize===0&&this.disabled){m==null||m(`ignore a SIZE=0 message on disabled viewport (${e.length} rows)`);return}for(let u of e)this.isTree&&Mt(u)||((u.updateType==="SIZE"||((n=this.dataWindow)==null?void 0:n.rowCount)!==u.vpSize)&&((o=this.dataWindow)==null||o.setRowCount(u.vpSize),this.rowCountChanged=!0),u.updateType==="U"&&(i=this.dataWindow)!=null&&i.setAtIndex(u)&&(this.hasUpdates=!0,this.batchMode||this.pendingUpdates.push(u)))}getClientRows(){let e,t="size-only";if(this.hasUpdates&&this.dataWindow){let{keys:s}=this,n=this.isTree?ae:ie;if(this.pendingUpdates.length>0){e=[],t="update";for(let o of this.pendingUpdates)e.push(n(o,s));this.pendingUpdates.length=0}else{let o=this.dataWindow.getData();if(this.dataWindow.hasAllRowsWithinRange){e=[],t="batch";for(let i of o)e.push(n(i,s));this.batchMode=!1}}this.hasUpdates=!1}return[e,t]}createRequest(e,t=!1){return t?{type:"CHANGE_VP",viewPortId:this.serverViewportId,...e}:{type:"CHANGE_VP",viewPortId:this.serverViewportId,aggregations:this.aggregations,columns:this.columns,sort:this.sort,groupBy:this.groupBy,filterSpec:{filter:this.filter.filter},...e}}},ie=({rowIndex:r,rowKey:e,sel:t,data:s},n)=>[r,n.keyFor(r),!0,!1,0,0,e,t].concat(s),ae=({rowIndex:r,rowKey:e,sel:t,data:s},n)=>{let[o,i,,u,,g,...f]=s;return[r,n.keyFor(r),u,i,o,g,e,t].concat(f)};var tt=1;var{debug:V,debugEnabled:O,error:L,info:w,infoEnabled:It,warn:k}=T("server-proxy"),b=()=>`${tt++}`,vt={},_t=r=>r.disabled!==!0&&r.suspended!==!0,Dt={type:"NO_ACTION"},xt=(r,e,t)=>r.map(s=>s.parentVpId===e?{...s,label:t}:s);function Pt(r,e){return r.map(t=>{let{parentVpId:s}=t,n=e.get(s);if(n)return{...t,parentClientVpId:n.clientViewportId,label:n.title};throw Error("addLabelsToLinks viewport not found")})}var j=class{constructor(e,t){this.authToken="";this.user="user";this.pendingTableMetaRequests=new Map;this.pendingRequests=new Map;this.queuedRequests=[];this.cachedTableSchemas=new Map;this.connection=e,this.postMessageToClient=t,this.viewports=new Map,this.mapClientToServerViewport=new Map}async reconnect(){await this.login(this.authToken);let[e,t]=fe(Array.from(this.viewports.values()),_t);this.viewports.clear(),this.mapClientToServerViewport.clear();let s=n=>{n.forEach(o=>{let{clientViewportId:i}=o;this.viewports.set(i,o),this.sendMessageToServer(o.subscribe(),i)})};s(e),setTimeout(()=>{s(t)},2e3)}async login(e,t="user"){if(e)return this.authToken=e,this.user=t,new Promise((s,n)=>{this.sendMessageToServer({type:Ke,token:this.authToken,user:t},""),this.pendingLogin={resolve:s,reject:n}});this.authToken===""&&L("login, cannot login until auth token has been obtained")}subscribe(e){if(this.mapClientToServerViewport.has(e.viewport))L(`spurious subscribe call ${e.viewport}`);else{if(!this.hasSchemaForTable(e.table)&&!B(e.table)){w==null||w(`subscribe to ${e.table.table}, no metadata yet, request metadata`);let s=b();this.sendMessageToServer({type:"GET_TABLE_META",table:e.table},s),this.pendingTableMetaRequests.set(s,e.viewport)}let t=new J(e);this.viewports.set(e.viewport,t),this.sendIfReady(t.subscribe(),e.viewport,this.sessionId!=="")}}unsubscribe(e){let t=this.mapClientToServerViewport.get(e);t?(w==null||w(`Unsubscribe Message (Client to Server):\n ${t}`),this.sendMessageToServer({type:ze,viewPortId:t})):L(`failed to unsubscribe client viewport ${e}, viewport not found`)}getViewportForClient(e,t=!0){let s=this.mapClientToServerViewport.get(e);if(s){let n=this.viewports.get(s);if(n)return n;if(t)throw Error(`Viewport not found for client viewport ${e}`);return null}else{if(this.viewports.has(e))return this.viewports.get(e);if(t)throw Error(`Viewport server id not found for client viewport ${e}`);return null}}setViewRange(e,t){let s=b(),[n,o,i]=e.rangeRequest(s,t.range);n&&this.sendIfReady(n,s,e.status==="subscribed"),o?this.postMessageToClient({mode:"batch",type:"viewport-update",clientViewportId:e.clientViewportId,rows:o}):i&&this.postMessageToClient(i)}setConfig(e,t){let s=b(),n=e.setConfig(s,t.config);this.sendIfReady(n,s,e.status==="subscribed")}aggregate(e,t){let s=b(),n=e.aggregateRequest(s,t.aggregations);this.sendIfReady(n,s,e.status==="subscribed")}sort(e,t){let s=b(),n=e.sortRequest(s,t.sort);this.sendIfReady(n,s,e.status==="subscribed")}groupBy(e,t){let s=b(),n=e.groupByRequest(s,t.groupBy);this.sendIfReady(n,s,e.status==="subscribed")}filter(e,t){let s=b(),{filter:n}=t,o=e.filterRequest(s,n);this.sendIfReady(o,s,e.status==="subscribed")}setColumns(e,t){let s=b(),{columns:n}=t,o=e.columnRequest(s,n);this.sendIfReady(o,s,e.status==="subscribed")}setTitle(e,t){e&&(e.title=t.title,this.updateTitleOnVisualLinks(e))}select(e,t){let s=b(),{selected:n}=t,o=e.selectRequest(s,n);this.sendIfReady(o,s,e.status==="subscribed")}disableViewport(e){let t=b(),s=e.disable(t);this.sendIfReady(s,t,e.status==="subscribed")}enableViewport(e){if(e.disabled){let t=b(),s=e.enable(t);this.sendIfReady(s,t,e.status==="subscribed")}}suspendViewport(e){e.suspend(),e.suspendTimer=setTimeout(()=>{w==null||w("suspendTimer expired, escalate suspend to disable"),this.disableViewport(e)},3e3)}resumeViewport(e){e.suspendTimer&&(V==null||V("clear suspend timer"),clearTimeout(e.suspendTimer),e.suspendTimer=null);let t=e.resume();this.postMessageToClient({clientViewportId:e.clientViewportId,rows:t,type:"viewport-update"})}openTreeNode(e,t){if(e.serverViewportId){let s=b();this.sendIfReady(e.openTreeNode(s,t),s,e.status==="subscribed")}}closeTreeNode(e,t){if(e.serverViewportId){let s=b();this.sendIfReady(e.closeTreeNode(s,t),s,e.status==="subscribed")}}createLink(e,t){let{parentClientVpId:s,parentColumnName:n,childColumnName:o}=t,i=b(),u=this.mapClientToServerViewport.get(s);if(u){let g=e.createLink(i,o,u,n);this.sendMessageToServer(g,i)}else L("ServerProxy unable to create link, viewport not found")}removeLink(e){let t=b(),s=e.removeLink(t);this.sendMessageToServer(s,t)}updateTitleOnVisualLinks(e){var n;let{serverViewportId:t,title:s}=e;for(let o of this.viewports.values())if(o!==e&&o.links&&t&&s&&(n=o.links)!=null&&n.some(i=>i.parentVpId===t)){let[i]=o.setLinks(xt(o.links,t,s));this.postMessageToClient(i)}}removeViewportFromVisualLinks(e){var t;for(let s of this.viewports.values())if((t=s.links)!=null&&t.some(({parentVpId:n})=>n===e)){let[n]=s.setLinks(s.links.filter(({parentVpId:o})=>o!==e));this.postMessageToClient(n)}}menuRpcCall(e){let t=this.getViewportForClient(e.vpId,!1);if(t!=null&&t.serverViewportId){let[s,n]=ee(e);this.sendMessageToServer({...n,vpId:t.serverViewportId},s)}}rpcCall(e){let[t,s]=ee(e),n=Xe(s.service);this.sendMessageToServer(s,t,{module:n})}handleMessageFromClient(e){if(V==null||V(`handleMessageFromClient: ${e.type}`),De(e))if(e.type==="disable"){let t=this.getViewportForClient(e.viewport,!1);return t!==null?this.disableViewport(t):void 0}else{let t=this.getViewportForClient(e.viewport);switch(e.type){case"setViewRange":return this.setViewRange(t,e);case"config":return this.setConfig(t,e);case"aggregate":return this.aggregate(t,e);case"sort":return this.sort(t,e);case"groupBy":return this.groupBy(t,e);case"filter":return this.filter(t,e);case"select":return this.select(t,e);case"suspend":return this.suspendViewport(t);case"resume":return this.resumeViewport(t);case"enable":return this.enableViewport(t);case"openTreeNode":return this.openTreeNode(t,e);case"closeTreeNode":return this.closeTreeNode(t,e);case"createLink":return this.createLink(t,e);case"removeLink":return this.removeLink(t);case"setColumns":return this.setColumns(t,e);case"setTitle":return this.setTitle(t,e);default:}}else{if(we(e))return this.menuRpcCall(e);{let{type:t,requestId:s}=e;switch(t){case"GET_TABLE_LIST":return this.sendMessageToServer({type:t},s);case"GET_TABLE_META":return this.sendMessageToServer({type:t,table:e.table},s);case"RPC_CALL":return this.rpcCall(e);default:}}}L(`Vuu ServerProxy Unexpected message from client ${JSON.stringify(e)}`)}awaitResponseToMessage(e){return new Promise((t,s)=>{let n=b();this.sendMessageToServer(e,n),this.pendingRequests.set(n,{reject:s,resolve:t})})}sendIfReady(e,t,s=!0){return s?this.sendMessageToServer(e,t):this.queuedRequests.push(e),s}sendMessageToServer(e,t=`${tt++}`,s=vt){let{module:n="CORE"}=s;this.authToken&&this.connection.send({requestId:t,sessionId:this.sessionId,token:this.authToken,user:this.user,module:n,body:e})}handleMessageFromServer(e){var u;let{body:t,requestId:s,sessionId:n}=e,o=this.pendingRequests.get(s);if(o){let{resolve:a}=o;this.pendingRequests.delete(s),a(t);return}let{viewports:i}=this;switch(t.type){case Ge:this.sendMessageToServer({type:Be,ts:+new Date},"NA");break;case He:if(n)this.sessionId=n,(u=this.pendingLogin)==null||u.resolve(n),this.pendingLogin=void 0;else throw Error("LOGIN_SUCCESS did not provide sessionId");break;case Ue:{let a=i.get(s);if(a){let{status:l}=a,{viewPortId:d}=t;s!==d&&(i.delete(s),i.set(d,a)),this.mapClientToServerViewport.set(s,d);let R=a.handleSubscribed(t);R&&(this.postMessageToClient(R),O&&V(`post DataSourceSubscribedMessage to client: ${JSON.stringify(R)}`)),a.disabled&&this.disableViewport(a),l==="subscribing"&&!B(a.table)&&(this.sendMessageToServer({type:se,vpId:d}),this.sendMessageToServer({type:$e,vpId:d}),Array.from(i.entries()).filter(([M,{disabled:U}])=>M!==d&&!U).forEach(([M])=>{this.sendMessageToServer({type:se,vpId:M})}))}}break;case"REMOVE_VP_SUCCESS":{let a=this.viewports.get(t.viewPortId);a&&(this.mapClientToServerViewport.delete(a.clientViewportId),i.delete(t.viewPortId),this.removeViewportFromVisualLinks(t.viewPortId))}break;case Ye:{let a=this.viewports.get(t.vpId);a&&a.completeOperation(s)}break;case Pe:case Fe:if(i.has(t.viewPortId)){let a=this.viewports.get(t.viewPortId);if(a){let l=a.completeOperation(s);l!==void 0&&(this.postMessageToClient(l),O&&V(`postMessageToClient ${JSON.stringify(l)}`))}}break;case qe:{let a=this.viewports.get(t.viewPortId);if(a){let l=a.completeOperation(s);if(l){this.postMessageToClient(l);let d=a.currentData();O&&V(`Enable Response (ServerProxy to Client): ${JSON.stringify(l)}`),a.size===0?O&&V("Viewport Enabled but size 0, resend to server"):(this.postMessageToClient({clientViewportId:a.clientViewportId,mode:"batch",rows:d,size:a.size,type:"viewport-update"}),O&&V(`Enable Response (ServerProxy to Client): send size ${a.size} ${d.length} rows from cache`))}}}break;case Ze:{let a=Ie(t.rows);for(let[l,d]of Object.entries(a)){let R=i.get(l);R?R.updateRows(d):k==null||k(`TABLE_ROW message received for non registered viewport ${l}`)}this.processUpdates()}break;case Oe:{let a=this.viewports.get(t.viewPortId);if(a){let{from:l,to:d}=t;a.completeOperation(s,l,d)}}break;case je:case ke:break;case"CREATE_VISUAL_LINK_SUCCESS":{let a=this.viewports.get(t.childVpId),l=this.viewports.get(t.parentVpId);if(a&&l){let{childColumnName:d,parentColumnName:R}=t,M=a.completeOperation(s,d,l.clientViewportId,R);M&&this.postMessageToClient(M)}}break;case"REMOVE_VISUAL_LINK_SUCCESS":{let a=this.viewports.get(t.childVpId);if(a){let l=a.completeOperation(s);l&&this.postMessageToClient(l)}}break;case oe:this.postMessageToClient({type:oe,tables:t.tables,requestId:s});break;case re:{let a=this.cacheTableMeta(t),l=this.pendingTableMetaRequests.get(s);if(l){this.pendingTableMetaRequests.delete(s);let d=this.viewports.get(l);d?d.setTableSchema(a):k==null||k("Message has come back AFTER CREATE_VP_SUCCESS, what do we do now")}else this.postMessageToClient({type:re,tableSchema:a,requestId:s})}break;case"VP_VISUAL_LINKS_RESP":{let a=this.getActiveLinks(t.links),l=this.viewports.get(t.vpId);if(a.length&&l){let d=Pt(a,this.viewports),[R,M]=l.setLinks(d);if(this.postMessageToClient(R),M){let{link:U,parentClientVpId:st}=M,ce=b(),pe=this.mapClientToServerViewport.get(st);if(pe){let nt=l.createLink(ce,U.fromColumn,pe,U.toColumn);this.sendMessageToServer(nt,ce)}}}}break;case"VIEW_PORT_MENUS_RESP":if(t.menu.name){let a=this.viewports.get(t.vpId);if(a){let l=a.setMenu(t.menu);this.postMessageToClient(l)}}break;case"VP_EDIT_RPC_RESPONSE":this.postMessageToClient({action:t.action,requestId:s,rpcName:t.rpcName,type:"VP_EDIT_RPC_RESPONSE"});break;case"VP_EDIT_RPC_REJECT":this.viewports.get(t.vpId)&&this.postMessageToClient({requestId:s,type:"VP_EDIT_RPC_REJECT",error:t.error});break;case"VIEW_PORT_MENU_RESP":if(xe(t)){let{action:a,rpcName:l}=t;this.awaitResponseToMessage({type:"GET_TABLE_META",table:a.table}).then(d=>{let R=te(d);this.postMessageToClient({rpcName:l,type:"VIEW_PORT_MENU_RESP",action:{...a,tableSchema:R},tableAlreadyOpen:this.isTableOpen(a.table),requestId:s})})}else{let{action:a}=t;this.postMessageToClient({type:"VIEW_PORT_MENU_RESP",action:a||Dt,tableAlreadyOpen:a!==null&&this.isTableOpen(a.table),requestId:s})}break;case ne:{let{method:a,result:l}=t;this.postMessageToClient({type:ne,method:a,result:l,requestId:s})}break;case"ERROR":L(t.msg);break;default:It&&w(`handleMessageFromServer ${t.type}.`)}}hasSchemaForTable(e){return this.cachedTableSchemas.has(`${e.module}:${e.table}`)}cacheTableMeta(e){let{module:t,table:s}=e.table,n=`${t}:${s}`,o=this.cachedTableSchemas.get(n);return o||(o=te(e),this.cachedTableSchemas.set(n,o)),o}isTableOpen(e){if(e){let t=e.table;for(let s of this.viewports.values())if(!s.suspended&&s.table.table===t)return!0}}getActiveLinks(e){return e.filter(t=>{let s=this.viewports.get(t.parentVpId);return s&&!s.suspended})}processUpdates(){this.viewports.forEach(e=>{var t;if(e.hasUpdatesToProcess){let[s,n]=e.getClientRows(),o=e.getNewRowCount();(o!==void 0||s&&s.length>0)&&(O&&V(`postMessageToClient #${e.clientViewportId} viewport-update ${n}, ${(t=s==null?void 0:s.length)!=null?t:"no"} rows, size ${o}`),this.postMessageToClient({clientViewportId:e.clientViewportId,mode:n,rows:s,size:o,type:"viewport-update"}))}})}};var D,{info:ue,infoEnabled:le}=T("worker");async function Ot(r,e,t,s,n){let o=await Ee(r,e,i=>{_e(i)?postMessage({type:"connection-metrics",messages:i}):ve(i)?(n(i),i.status==="reconnected"&&D.reconnect()):D.handleMessageFromServer(i)});D=new j(o,i=>Lt(i)),o.requiresLogin&&await D.login(t,s)}function Lt(r){postMessage(r)}var kt=async({data:r})=>{switch(r.type){case"connect":await Ot(r.url,r.protocol,r.token,r.username,postMessage),postMessage({type:"connected"});break;case"subscribe":le&&ue(`client subscribe: ${JSON.stringify(r)}`),D.subscribe(r);break;case"unsubscribe":le&&ue(`client unsubscribe: ${JSON.stringify(r)}`),D.unsubscribe(r.viewport);break;default:le&&ue(`client message: ${JSON.stringify(r)}`),D.handleMessageFromClient(r)}};self.addEventListener("message",kt);postMessage({type:"ready"});\n\n';var Ou=new Blob([(0,xt.getLoggingConfigForWorker)()+ai],{type:"text/javascript"}),Vu=URL.createObjectURL(Ou),Rt,Dn,Ln=[],Au,_u,Nu=new Promise((n,e)=>{Au=n,_u=e}),ui=()=>Nu,Ar=new Map,_r=new Map,Bu=async({handleConnectionStatusChange:n,protocol:e,token:t="",username:r,url:o})=>t===""&&Dn===void 0?new Promise(i=>{Ln.push({resolve:i})}):Dn||(Dn=new Promise(i=>{let s=new Worker(Vu),a=window.setTimeout(()=>{console.error("timed out waiting for worker to load")},1e3);s.onmessage=l=>{let{data:u}=l;if(u.type==="ready")window.clearTimeout(a),s.postMessage({protocol:e,token:t,type:"connect",url:o,username:r});else if(u.type==="connected"){s.onmessage=ci,i(s);for(let c of Ln)c.resolve(s);Ln.length=0}else Mn(u)?n({data:u}):console.warn("ConnectionManager: Unexpected message from the worker")}}));function ci({data:n}){if(Zs(n)){let e=Ar.get(n.clientViewportId);e?e.postMessageToClientDataSource(n):console.error(`[ConnectionManager] ${n.type} message received, viewport not found`)}else if(Mn(n))li.emit("connection-status",n);else if(oi(n))li.emit("connection-metrics",n);else{let e=n.requestId;if(_r.has(e)){let{resolve:t}=_r.get(e);_r.delete(e);let{type:r,requestId:o,...i}=n;si(n)?t(n.result):ii(n)?t(n.tableSchema):t(i)}else console.warn("%cConnectionManager Unexpected message from the worker","color:red;font-weight:bold;")}}var kn=n=>{let e=(0,xt.uuid)();return Rt.postMessage({requestId:e,...n}),new Promise((t,r)=>{_r.set(e,{resolve:t,reject:r})})},Fu={subscribe:(n,e)=>{Ar.set(n.viewport,{status:"subscribing",request:n,postMessageToClientDataSource:e}),Rt.postMessage({type:"subscribe",...n})},unsubscribe:n=>{Rt.postMessage({type:"unsubscribe",viewport:n})},send:n=>{Rt.postMessage(n)},destroy:n=>{n&&Ar.has(n)&&Ar.delete(n)},rpcCall:async n=>kn(n),getTableList:async()=>kn({type:ri}),getTableSchema:async n=>kn({type:ni,table:n})},In=class extends xt.EventEmitter{async connect({url:e,authToken:t,username:r,protocol:o}){return Rt=await Bu({protocol:o,url:e,token:t,username:r,handleConnectionStatusChange:ci}),Fu}destroy(){Rt.terminate()}},li=new In;var zu=0,Xt=class{constructor(e,t){this.from=e,this.to=t}},B=class{constructor(e={}){this.id=zu++,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=te.match(e)),t=>{let r=e(t);return r===void 0?null:[this,r]}}};B.closedBy=new B({deserialize:n=>n.split(" ")});B.openedBy=new B({deserialize:n=>n.split(" ")});B.group=new B({deserialize:n=>n.split(" ")});B.contextHash=new B({perNode:!0});B.lookAhead=new B({perNode:!0});B.mounted=new B({perNode:!0});var $u=Object.create(null),te=class{constructor(e,t,r,o=0){this.name=e,this.props=t,this.id=r,this.flags=o}static define(e){let t=e.props&&e.props.length?Object.create(null):$u,r=(e.top?1:0)|(e.skipped?2:0)|(e.error?4:0)|(e.name==null?8:0),o=new te(e.name||"",t,e.id,r);if(e.props){for(let i of e.props)if(Array.isArray(i)||(i=i(o)),i){if(i[0].perNode)throw new RangeError("Can't store a per-node prop on a node type");t[i[0].id]=i[1]}}return o}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(B.group);return t?t.indexOf(e)>-1:!1}return this.id==e}static match(e){let t=Object.create(null);for(let r in e)for(let o of r.split(" "))t[o]=e[r];return r=>{for(let o=r.prop(B.group),i=-1;i<(o?o.length:0);i++){let s=t[i<0?r.name:o[i]];if(s)return s}}}};te.none=new te("",Object.create(null),0,8);var vt=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 r of this.types){let o=null;for(let i of e){let s=i(r);s&&(o||(o=Object.assign({},r.props)),o[s[0].id]=s[1])}t.push(o?new te(r.name,o,r.id,r.flags):r)}return new vt(t)}},Nr=new WeakMap,pi=new WeakMap,W;(function(n){n[n.ExcludeBuffers=1]="ExcludeBuffers",n[n.IncludeAnonymous=2]="IncludeAnonymous",n[n.IgnoreMounts=4]="IgnoreMounts",n[n.IgnoreOverlays=8]="IgnoreOverlays"})(W||(W={}));var Q=class{constructor(e,t,r,o,i){if(this.type=e,this.children=t,this.positions=r,this.length=o,this.props=null,i&&i.length){this.props=Object.create(null);for(let[s,a]of i)this.props[typeof s=="number"?s:s.id]=a}}toString(){let e=this.prop(B.mounted);if(e&&!e.overlay)return e.tree.toString();let t="";for(let r of this.children){let o=r.toString();o&&(t&&(t+=","),t+=o)}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 Et(this.topNode,e)}cursorAt(e,t=0,r=0){let o=Nr.get(this)||this.topNode,i=new Et(o);return i.moveTo(e,t),Nr.set(this,i._tree),i}get topNode(){return new we(this,0,0,null)}resolve(e,t=0){let r=Ct(Nr.get(this)||this.topNode,e,t,!1);return Nr.set(this,r),r}resolveInner(e,t=0){let r=Ct(pi.get(this)||this.topNode,e,t,!0);return pi.set(this,r),r}iterate(e){let{enter:t,leave:r,from:o=0,to:i=this.length}=e,s=e.mode||0,a=(s&W.IncludeAnonymous)>0;for(let l=this.cursor(s|W.IncludeAnonymous);;){let u=!1;if(l.from<=i&&l.to>=o&&(!a&&l.type.isAnonymous||t(l)!==!1)){if(l.firstChild())continue;u=!0}for(;u&&r&&(a||!l.type.isAnonymous)&&r(l),!l.nextSibling();){if(!l.parent())return;u=!0}}}prop(e){return e.perNode?this.props?this.props[e.id]:void 0:this.type.prop(e)}get propValues(){let e=[];if(this.props)for(let t in this.props)e.push([+t,this.props[t]]);return e}balance(e={}){return this.children.length<=8?this:_n(te.none,this.children,this.positions,0,this.children.length,0,this.length,(t,r,o)=>new Q(this.type,t,r,o,this.propValues),e.makeTree||((t,r,o)=>new Q(te.none,t,r,o)))}static build(e){return Hu(e)}};Q.empty=new Q(te.none,[],[],0);var jt=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 jt(this.buffer,this.index)}},Oe=class{constructor(e,t,r){this.buffer=e,this.length=t,this.set=r}get type(){return te.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],r=this.buffer[e+3],o=this.set.types[t],i=o.name;if(/\W/.test(i)&&!o.isError&&(i=JSON.stringify(i)),e+=4,r==e)return i;let s=[];for(;e<r;)s.push(this.childString(e)),e=this.buffer[e+3];return i+"("+s.join(",")+")"}findChild(e,t,r,o,i){let{buffer:s}=this,a=-1;for(let l=e;l!=t&&!(di(i,o,s[l+1],s[l+2])&&(a=l,r>0));l=s[l+3]);return a}slice(e,t,r){let o=this.buffer,i=new Uint16Array(t-e),s=0;for(let a=e,l=0;a<t;){i[l++]=o[a++],i[l++]=o[a++]-r;let u=i[l++]=o[a++]-r;i[l++]=o[a++]-e,s=Math.max(s,u)}return new Oe(i,s,this.set)}};function di(n,e,t,r){switch(n){case-2:return t<e;case-1:return r>=e&&t<e;case 0:return t<e&&r>e;case 1:return t<=e&&r>e;case 2:return r>e;case 4:return!0}}function fi(n,e){let t=n.childBefore(e);for(;t;){let r=t.lastChild;if(!r||r.to!=t.to)break;r.type.isError&&r.from==r.to?(n=t,t=r.prevSibling):t=r}return n}function Ct(n,e,t,r){for(var o;n.from==n.to||(t<1?n.from>=e:n.from>e)||(t>-1?n.to<=e:n.to<e);){let s=!r&&n instanceof we&&n.index<0?null:n.parent;if(!s)return n;n=s}let i=r?0:W.IgnoreOverlays;if(r)for(let s=n,a=s.parent;a;s=a,a=s.parent)s instanceof we&&s.index<0&&((o=a.enter(e,t,i))===null||o===void 0?void 0:o.from)!=s.from&&(n=a);for(;;){let s=n.enter(e,t,i);if(!s)return n;n=s}}var we=class{constructor(e,t,r,o){this._tree=e,this.from=t,this.index=r,this._parent=o}get type(){return this._tree.type}get name(){return this._tree.type.name}get to(){return this.from+this._tree.length}nextChild(e,t,r,o,i=0){for(let s=this;;){for(let{children:a,positions:l}=s._tree,u=t>0?a.length:-1;e!=u;e+=t){let c=a[e],p=l[e]+s.from;if(di(o,r,p,p+c.length)){if(c instanceof Oe){if(i&W.ExcludeBuffers)continue;let d=c.findChild(0,c.buffer.length,t,r-p,o);if(d>-1)return new Ce(new On(s,c,e,p),null,d)}else if(i&W.IncludeAnonymous||!c.type.isAnonymous||An(c)){let d;if(!(i&W.IgnoreMounts)&&c.props&&(d=c.prop(B.mounted))&&!d.overlay)return new we(d.tree,p,e,s);let g=new we(c,p,e,s);return i&W.IncludeAnonymous||!g.type.isAnonymous?g:g.nextChild(t<0?c.children.length-1:0,t,r,o)}}}if(i&W.IncludeAnonymous||!s.type.isAnonymous||(s.index>=0?e=s.index+t:e=t<0?-1:s._parent._tree.children.length,s=s._parent,!s))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,r=0){let o;if(!(r&W.IgnoreOverlays)&&(o=this._tree.prop(B.mounted))&&o.overlay){let i=e-this.from;for(let{from:s,to:a}of o.overlay)if((t>0?s<=i:s<i)&&(t<0?a>=i:a>i))return new we(o.tree,o.overlay[0].from+this.from,-1,this)}return this.nextChild(0,1,e,t,r)}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 Et(this,e)}get tree(){return this._tree}toTree(){return this._tree}resolve(e,t=0){return Ct(this,e,t,!1)}resolveInner(e,t=0){return Ct(this,e,t,!0)}enterUnfinishedNodesBefore(e){return fi(this,e)}getChild(e,t=null,r=null){let o=Fr(this,e,t,r);return o.length?o[0]:null}getChildren(e,t=null,r=null){return Fr(this,e,t,r)}toString(){return this._tree.toString()}get node(){return this}matchContext(e){return zr(this,e)}};function Fr(n,e,t,r){let o=n.cursor(),i=[];if(!o.firstChild())return i;if(t!=null){for(;!o.type.is(t);)if(!o.nextSibling())return i}for(;;){if(r!=null&&o.type.is(r))return i;if(o.type.is(e)&&i.push(o.node),!o.nextSibling())return r==null?i:[]}}function zr(n,e,t=e.length-1){for(let r=n.parent;t>=0;r=r.parent){if(!r)return!1;if(!r.type.isAnonymous){if(e[t]&&e[t]!=r.name)return!1;t--}}return!0}var On=class{constructor(e,t,r,o){this.parent=e,this.buffer=t,this.index=r,this.start=o}},Ce=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,r){this.context=e,this._parent=t,this.index=r,this.type=e.buffer.set.types[e.buffer.buffer[r]]}child(e,t,r){let{buffer:o}=this.context,i=o.findChild(this.index+4,o.buffer[this.index+3],e,t-this.context.start,r);return i<0?null:new Ce(this.context,this,i)}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,r=0){if(r&W.ExcludeBuffers)return null;let{buffer:o}=this.context,i=o.findChild(this.index+4,o.buffer[this.index+3],t>0?1:-1,e-this.context.start,t);return i<0?null:new Ce(this.context,this,i)}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 Ce(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 Ce(this.context,this._parent,e.findChild(t,this.index,-1,0,4))}cursor(e=0){return new Et(this,e)}get tree(){return null}toTree(){let e=[],t=[],{buffer:r}=this.context,o=this.index+4,i=r.buffer[this.index+3];if(i>o){let s=r.buffer[this.index+1];e.push(r.slice(o,i,s)),t.push(0)}return new Q(this.type,e,t,this.to-this.from)}resolve(e,t=0){return Ct(this,e,t,!1)}resolveInner(e,t=0){return Ct(this,e,t,!0)}enterUnfinishedNodesBefore(e){return fi(this,e)}toString(){return this.context.buffer.childString(this.index)}getChild(e,t=null,r=null){let o=Fr(this,e,t,r);return o.length?o[0]:null}getChildren(e,t=null,r=null){return Fr(this,e,t,r)}get node(){return this}matchContext(e){return zr(this,e)}},Et=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 we)this.yieldNode(e);else{this._tree=e.context.parent,this.buffer=e.context;for(let r=e._parent;r;r=r._parent)this.stack.unshift(r.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:r,buffer:o}=this.buffer;return this.type=t||o.set.types[o.buffer[e]],this.from=r+o.buffer[e+1],this.to=r+o.buffer[e+2],!0}yield(e){return e?e instanceof we?(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,r){if(!this.buffer)return this.yield(this._tree.nextChild(e<0?this._tree._tree.children.length-1:0,e,t,r,this.mode));let{buffer:o}=this.buffer,i=o.findChild(this.index+4,o.buffer[this.index+3],e,t-this.buffer.start,r);return i<0?!1:(this.stack.push(this.index),this.yieldBuf(i))}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,r=this.mode){return this.buffer?r&W.ExcludeBuffers?!1:this.enterChild(1,e,t):this.yield(this._tree.enter(e,t,r))}parent(){if(!this.buffer)return this.yieldNode(this.mode&W.IncludeAnonymous?this._tree._parent:this._tree.parent);if(this.stack.length)return this.yieldBuf(this.stack.pop());let e=this.mode&W.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,r=this.stack.length-1;if(e<0){let o=r<0?0:this.stack[r]+4;if(this.index!=o)return this.yieldBuf(t.findChild(o,this.index,-1,0,4))}else{let o=t.buffer[this.index+3];if(o<(r<0?t.buffer.length:t.buffer[this.stack[r]+3]))return this.yieldBuf(o)}return r<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,r,{buffer:o}=this;if(o){if(e>0){if(this.index<o.buffer.buffer.length)return!1}else for(let i=0;i<this.index;i++)if(o.buffer.buffer[i+3]<this.index)return!1;({index:t,parent:r}=o)}else({index:t,_parent:r}=this._tree);for(;r;{index:t,_parent:r}=r)if(t>-1)for(let i=t+e,s=e<0?-1:r._tree.children.length;i!=s;i+=e){let a=r._tree.children[i];if(this.mode&W.IncludeAnonymous||a instanceof Oe||!a.type.isAnonymous||An(a))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,r=0;if(e&&e.context==this.buffer)e:for(let o=this.index,i=this.stack.length;i>=0;){for(let s=e;s;s=s._parent)if(s.index==o){if(o==this.index)return s;t=s,r=i+1;break e}o=this.stack[--i]}for(let o=r;o<this.stack.length;o++)t=new Ce(this.buffer,t,this.stack[o]);return this.bufferNode=new Ce(this.buffer,t,this.index)}get tree(){return this.buffer?null:this._tree._tree}iterate(e,t){for(let r=0;;){let o=!1;if(this.type.isAnonymous||e(this)!==!1){if(this.firstChild()){r++;continue}this.type.isAnonymous||(o=!0)}for(;o&&t&&t(this),o=this.type.isAnonymous,!this.nextSibling();){if(!r)return;this.parent(),r--,o=!0}}}matchContext(e){if(!this.buffer)return zr(this.node,e);let{buffer:t}=this.buffer,{types:r}=t.set;for(let o=e.length-1,i=this.stack.length-1;o>=0;i--){if(i<0)return zr(this.node,e,o);let s=r[t.buffer[this.stack[i]]];if(!s.isAnonymous){if(e[o]&&e[o]!=s.name)return!1;o--}}return!0}};function An(n){return n.children.some(e=>e instanceof Oe||!e.type.isAnonymous||An(e))}function Hu(n){var e;let{buffer:t,nodeSet:r,maxBufferLength:o=1024,reused:i=[],minRepeatType:s=r.types.length}=n,a=Array.isArray(t)?new jt(t,t.length):t,l=r.types,u=0,c=0;function p(b,w,f,R,L){let{id:P,start:T,end:C,size:O}=a,k=c;for(;O<0;)if(a.next(),O==-1){let K=i[P];f.push(K),R.push(T-b);return}else if(O==-3){u=P;return}else if(O==-4){c=P;return}else throw new RangeError(`Unrecognized record size: ${O}`);let V=l[P],A,H,se=T-b;if(C-T<=o&&(H=v(a.pos-w,L))){let K=new Uint16Array(H.size-H.skip),q=a.pos-H.size,J=K.length;for(;a.pos>q;)J=x(H.start,K,J);A=new Oe(K,C-H.start,r),se=H.start-b}else{let K=a.pos-O;a.next();let q=[],J=[],ce=P>=s?P:-1,pe=0,Me=C;for(;a.pos>K;)ce>=0&&a.id==ce&&a.size>=0?(a.end<=Me-o&&(g(q,J,T,pe,a.end,Me,ce,k),pe=q.length,Me=a.end),a.next()):p(T,K,q,J,ce);if(ce>=0&&pe>0&&pe<q.length&&g(q,J,T,pe,T,Me,ce,k),q.reverse(),J.reverse(),ce>-1&&pe>0){let Be=d(V);A=_n(V,q,J,0,q.length,0,C-T,Be,Be)}else A=y(V,q,J,C-T,k-C)}f.push(A),R.push(se)}function d(b){return(w,f,R)=>{let L=0,P=w.length-1,T,C;if(P>=0&&(T=w[P])instanceof Q){if(!P&&T.type==b&&T.length==R)return T;(C=T.prop(B.lookAhead))&&(L=f[P]+T.length+C)}return y(b,w,f,R,L)}}function g(b,w,f,R,L,P,T,C){let O=[],k=[];for(;b.length>R;)O.push(b.pop()),k.push(w.pop()+f-L);b.push(y(r.types[T],O,k,P-L,C-P)),w.push(L-f)}function y(b,w,f,R,L=0,P){if(u){let T=[B.contextHash,u];P=P?[T].concat(P):[T]}if(L>25){let T=[B.lookAhead,L];P=P?[T].concat(P):[T]}return new Q(b,w,f,R,P)}function v(b,w){let f=a.fork(),R=0,L=0,P=0,T=f.end-o,C={size:0,start:0,skip:0};e:for(let O=f.pos-b;f.pos>O;){let k=f.size;if(f.id==w&&k>=0){C.size=R,C.start=L,C.skip=P,P+=4,R+=4,f.next();continue}let V=f.pos-k;if(k<0||V<O||f.start<T)break;let A=f.id>=s?4:0,H=f.start;for(f.next();f.pos>V;){if(f.size<0)if(f.size==-3)A+=4;else break e;else f.id>=s&&(A+=4);f.next()}L=H,R+=k,P+=A}return(w<0||R==b)&&(C.size=R,C.start=L,C.skip=P),C.size>4?C:void 0}function x(b,w,f){let{id:R,start:L,end:P,size:T}=a;if(a.next(),T>=0&&R<s){let C=f;if(T>4){let O=a.pos-(T-4);for(;a.pos>O;)f=x(b,w,f)}w[--f]=C,w[--f]=P-b,w[--f]=L-b,w[--f]=R}else T==-3?u=R:T==-4&&(c=R);return f}let S=[],E=[];for(;a.pos>0;)p(n.start||0,n.bufferStart||0,S,E,-1);let m=(e=n.length)!==null&&e!==void 0?e:S.length?E[0]+S[0].length:0;return new Q(l[n.topID],S.reverse(),E.reverse(),m)}var hi=new WeakMap;function Br(n,e){if(!n.isAnonymous||e instanceof Oe||e.type!=n)return 1;let t=hi.get(e);if(t==null){t=1;for(let r of e.children){if(r.type!=n||!(r instanceof Q)){t=1;break}t+=Br(n,r)}hi.set(e,t)}return t}function _n(n,e,t,r,o,i,s,a,l){let u=0;for(let y=r;y<o;y++)u+=Br(n,e[y]);let c=Math.ceil(u*1.5/8),p=[],d=[];function g(y,v,x,S,E){for(let m=x;m<S;){let b=m,w=v[m],f=Br(n,y[m]);for(m++;m<S;m++){let R=Br(n,y[m]);if(f+R>=c)break;f+=R}if(m==b+1){if(f>c){let R=y[b];g(R.children,R.positions,0,R.children.length,v[b]+E);continue}p.push(y[b])}else{let R=v[m-1]+y[m-1].length-w;p.push(_n(n,y,v,b,m,w,R,null,l))}d.push(w+E-i)}}return g(e,t,r,o,0),(a||l)(p,d,s)}var $r=class{startParse(e,t,r){return typeof e=="string"&&(e=new Vn(e)),r=r?r.length?r.map(o=>new Xt(o.from,o.to)):[new Xt(0,0)]:[new Xt(0,e.length)],this.createParse(e,t||[],r)}parse(e,t,r){let o=this.startParse(e,t,r);for(;;){let i=o.advance();if(i)return i}}},Vn=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 jS=new B({perNode:!0});var Pt=class{constructor(e,t,r,o,i,s,a,l,u,c=0,p){this.p=e,this.stack=t,this.state=r,this.reducePos=o,this.pos=i,this.score=s,this.buffer=a,this.bufferBase=l,this.curContext=u,this.lookAhead=c,this.parent=p}toString(){return`[${this.stack.filter((e,t)=>t%3==0).concat(this.state)}]@${this.pos}${this.score?"!"+this.score:""}`}static start(e,t,r=0){let o=e.parser.context;return new Pt(e,[],t,r,r,0,[],0,o?new Hr(o,o.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 r=e>>19,o=e&65535,{parser:i}=this.p,s=i.dynamicPrecedence(o);if(s&&(this.score+=s),r==0){this.pushState(i.getGoto(this.state,o,!0),this.reducePos),o<i.minRepeatTerm&&this.storeNode(o,this.reducePos,this.reducePos,4,!0),this.reduceContext(o,this.reducePos);return}let a=this.stack.length-(r-1)*3-(e&262144?6:0),l=a?this.stack[a-2]:this.p.ranges[0].from,u=this.reducePos-l;u>=2e3&&!(!((t=this.p.parser.nodeSet.types[o])===null||t===void 0)&&t.isAnonymous)&&(l==this.p.lastBigReductionStart?(this.p.bigReductionCount++,this.p.lastBigReductionSize=u):this.p.lastBigReductionSize<u&&(this.p.bigReductionCount=1,this.p.lastBigReductionStart=l,this.p.lastBigReductionSize=u));let c=a?this.stack[a-1]:0,p=this.bufferBase+this.buffer.length-c;if(o<i.minRepeatTerm||e&131072){let d=i.stateFlag(this.state,1)?this.pos:this.reducePos;this.storeNode(o,l,d,p+4,!0)}if(e&262144)this.state=this.stack[a];else{let d=this.stack[a-3];this.state=i.getGoto(d,o,!0)}for(;this.stack.length>a;)this.stack.pop();this.reduceContext(o,l)}storeNode(e,t,r,o=4,i=!1){if(e==0&&(!this.stack.length||this.stack[this.stack.length-1]<this.buffer.length+this.bufferBase)){let s=this,a=this.buffer.length;if(a==0&&s.parent&&(a=s.bufferBase-s.parent.bufferBase,s=s.parent),a>0&&s.buffer[a-4]==0&&s.buffer[a-1]>-1){if(t==r)return;if(s.buffer[a-2]>=t){s.buffer[a-2]=r;return}}}if(!i||this.pos==r)this.buffer.push(e,t,r,o);else{let s=this.buffer.length;if(s>0&&this.buffer[s-4]!=0)for(;s>0&&this.buffer[s-2]>r;)this.buffer[s]=this.buffer[s-4],this.buffer[s+1]=this.buffer[s-3],this.buffer[s+2]=this.buffer[s-2],this.buffer[s+3]=this.buffer[s-1],s-=4,o>4&&(o-=4);this.buffer[s]=e,this.buffer[s+1]=t,this.buffer[s+2]=r,this.buffer[s+3]=o}}shift(e,t,r){let o=this.pos;if(e&131072)this.pushState(e&65535,this.pos);else if(e&262144)this.pos=r,this.shiftContext(t,o),t<=this.p.parser.maxNode&&this.buffer.push(t,o,r,4);else{let i=e,{parser:s}=this.p;(r>this.pos||t<=s.maxNode)&&(this.pos=r,s.stateFlag(i,1)||(this.reducePos=r)),this.pushState(i,o),this.shiftContext(t,o),t<=s.maxNode&&this.buffer.push(t,o,r,4)}}apply(e,t,r){e&65536?this.reduce(e):this.shift(e,t,r)}useNode(e,t){let r=this.p.reused.length-1;(r<0||this.p.reused[r]!=e)&&(this.p.reused.push(e),r++);let o=this.pos;this.reducePos=this.pos=o+e.length,this.pushState(t,o),this.buffer.push(r,o,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 r=e.buffer.slice(t),o=e.bufferBase+t;for(;e&&o==e.bufferBase;)e=e.parent;return new Pt(this.p,this.stack.slice(),this.state,this.reducePos,this.pos,this.score,r,o,this.curContext,this.lookAhead,e)}recoverByDelete(e,t){let r=e<=this.p.parser.maxNode;r&&this.storeNode(e,this.pos,t,4),this.storeNode(0,this.pos,t,r?8:4),this.pos=this.reducePos=t,this.score-=190}canShift(e){for(let t=new Bn(this);;){let r=this.p.parser.stateSlot(t.state,4)||this.p.parser.hasAction(t.state,e);if(r==0)return!1;if(!(r&65536))return!0;t.reduce(r)}}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 o=[];for(let i=0,s;i<t.length;i+=2)(s=t[i+1])!=this.state&&this.p.parser.hasAction(s,e)&&o.push(t[i],s);if(this.stack.length<120)for(let i=0;o.length<4<<1&&i<t.length;i+=2){let s=t[i+1];o.some((a,l)=>l&1&&a==s)||o.push(t[i],s)}t=o}let r=[];for(let o=0;o<t.length&&r.length<4;o+=2){let i=t[o+1];if(i==this.state)continue;let s=this.split();s.pushState(i,this.pos),s.storeNode(0,s.pos,s.pos,4,!0),s.shiftContext(t[o],this.pos),s.score-=200,r.push(s)}return r}forceReduce(){let{parser:e}=this.p,t=e.stateSlot(this.state,5);if(!(t&65536))return!1;if(!e.validAction(this.state,t)){let r=t>>19,o=t&65535,i=this.stack.length-r*3;if(i<0||e.getGoto(this.stack[i],o,!1)<0){let s=this.findForcedReduction();if(s==null)return!1;t=s}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=[],r=(o,i)=>{if(!t.includes(o))return t.push(o),e.allActions(o,s=>{if(!(s&393216))if(s&65536){let a=(s>>19)-i;if(a>1){let l=s&65535,u=this.stack.length-a*3;if(u>=0&&e.getGoto(this.stack[u],l,!1)>=0)return a<<19|65536|l}}else{let a=r(s,i+1);if(a!=null)return a}})};return r(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 Hr(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()}},Hr=class{constructor(e,t){this.tracker=e,this.context=t,this.hash=e.strict?e.hash(t):0}},mi;(function(n){n[n.Insert=200]="Insert",n[n.Delete=190]="Delete",n[n.Reduce=100]="Reduce",n[n.MaxNext=4]="MaxNext",n[n.MaxInsertStackDepth=300]="MaxInsertStackDepth",n[n.DampenInsertStackDepth=120]="DampenInsertStackDepth",n[n.MinBigReduction=2e3]="MinBigReduction"})(mi||(mi={}));var Bn=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,r=e>>19;r==0?(this.stack==this.start.stack&&(this.stack=this.stack.slice()),this.stack.push(this.state,0,0),this.base+=3):this.base-=(r-1)*3;let o=this.start.p.parser.getGoto(this.stack[this.base-3],t,!0);this.state=o}},Mt=class{constructor(e,t,r){this.stack=e,this.pos=t,this.index=r,this.buffer=e.buffer,this.index==0&&this.maybeNext()}static create(e,t=e.bufferBase+e.buffer.length){return new Mt(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 Mt(this.stack,this.pos,this.index)}};function Yt(n,e=Uint16Array){if(typeof n!="string")return n;let t=null;for(let r=0,o=0;r<n.length;){let i=0;for(;;){let s=n.charCodeAt(r++),a=!1;if(s==126){i=65535;break}s>=92&&s--,s>=34&&s--;let l=s-32;if(l>=46&&(l-=46,a=!0),i+=l,a)break;i*=46}t?t[o++]=i:t=new e(i)}return t}var Tt=class{constructor(){this.start=-1,this.value=-1,this.end=-1,this.extended=-1,this.lookAhead=0,this.mask=0,this.context=0}},gi=new Tt,Fn=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=gi,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 r=this.range,o=this.rangeIndex,i=this.pos+e;for(;i<r.from;){if(!o)return null;let s=this.ranges[--o];i-=r.from-s.to,r=s}for(;t<0?i>r.to:i>=r.to;){if(o==this.ranges.length-1)return null;let s=this.ranges[++o];i+=s.from-r.to,r=s}return i}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,r,o;if(t>=0&&t<this.chunk.length)r=this.pos+e,o=this.chunk.charCodeAt(t);else{let i=this.resolveOffset(e,1);if(i==null)return-1;if(r=i,r>=this.chunk2Pos&&r<this.chunk2Pos+this.chunk2.length)o=this.chunk2.charCodeAt(r-this.chunk2Pos);else{let s=this.rangeIndex,a=this.range;for(;a.to<=r;)a=this.ranges[++s];this.chunk2=this.input.chunk(this.chunk2Pos=r),r+this.chunk2.length>a.to&&(this.chunk2=this.chunk2.slice(0,a.to-r)),o=this.chunk2.charCodeAt(0)}}return r>=this.token.lookAhead&&(this.token.lookAhead=r+1),o}acceptToken(e,t=0){let r=t?this.resolveOffset(t,-1):this.pos;if(r==null||r<this.token.start)throw new RangeError("Token end out of bounds");this.token.value=e,this.token.end=r}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=gi,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 r="";for(let o of this.ranges){if(o.from>=t)break;o.to>e&&(r+=this.input.read(Math.max(o.from,e),Math.min(o.to,t)))}return r}},Qe=class{constructor(e,t){this.data=e,this.id=t}token(e,t){let{parser:r}=t.p;vi(this.data,e,t,this.id,r.data,r.tokenPrecTable)}};Qe.prototype.contextual=Qe.prototype.fallback=Qe.prototype.extend=!1;var zn=class{constructor(e,t,r){this.precTable=t,this.elseToken=r,this.data=typeof e=="string"?Yt(e):e}token(e,t){let r=e.pos,o=0;for(;;){let i=e.next<0,s=e.resolveOffset(1,1);if(vi(this.data,e,t,0,this.data,this.precTable),e.token.value>-1)break;if(this.elseToken==null)return;if(i||o++,s==null)break;e.reset(s,e.token)}o&&(e.reset(r,e.token),e.acceptToken(this.elseToken,o))}};zn.prototype.contextual=Qe.prototype.fallback=Qe.prototype.extend=!1;function vi(n,e,t,r,o,i){let s=0,a=1<<r,{dialect:l}=t.p.parser;e:for(;a&n[s];){let u=n[s+1];for(let g=s+3;g<u;g+=2)if((n[g+1]&a)>0){let y=n[g];if(l.allows(y)&&(e.token.value==-1||e.token.value==y||Wu(y,e.token.value,o,i))){e.acceptToken(y);break}}let c=e.next,p=0,d=n[s+2];if(e.next<0&&d>p&&n[u+d*3-3]==65535&&n[u+d*3-3]==65535){s=n[u+d*3-1];continue e}for(;p<d;){let g=p+d>>1,y=u+g+(g<<1),v=n[y],x=n[y+1]||65536;if(c<v)d=g;else if(c>=x)p=g+1;else{s=n[y+2],e.advance();continue e}}break}}function bi(n,e,t){for(let r=e,o;(o=n[r])!=65535;r++)if(o==t)return r-e;return-1}function Wu(n,e,t,r){let o=bi(t,r,e);return o<0||bi(t,r,n)<o}var Re=typeof process<"u"&&process.env&&/\bparse\b/.test(process.env.LOG),Nn=null,yi;(function(n){n[n.Margin=25]="Margin"})(yi||(yi={}));function Si(n,e,t){let r=n.cursor(W.IncludeAnonymous);for(r.moveTo(e);;)if(!(t<0?r.childBefore(e):r.childAfter(e)))for(;;){if((t<0?r.to<e:r.from>e)&&!r.type.isError)return t<0?Math.max(0,Math.min(r.to-1,e-25)):Math.min(n.length,Math.max(r.from+1,e+25));if(t<0?r.prevSibling():r.nextSibling())break;if(!r.parent())return t<0?0:n.length}}var $n=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?Si(e.tree,e.from+e.offset,1)-e.offset:e.from,this.safeTo=e.openEnd?Si(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 r=this.trees[t],o=this.index[t];if(o==r.children.length){this.trees.pop(),this.start.pop(),this.index.pop();continue}let i=r.children[o],s=this.start[t]+r.positions[o];if(s>e)return this.nextStart=s,null;if(i instanceof Q){if(s==e){if(s<this.safeFrom)return null;let a=s+i.length;if(a<=this.safeTo){let l=i.prop(B.lookAhead);if(!l||a+l<this.fragment.to)return i}}this.index[t]++,s+i.length>=Math.max(this.safeFrom,e)&&(this.trees.push(i),this.start.push(s),this.index.push(0))}else this.index[t]++,this.nextStart=s+i.length}}},Hn=class{constructor(e,t){this.stream=t,this.tokens=[],this.mainToken=null,this.actions=[],this.tokens=e.tokenizers.map(r=>new Tt)}getActions(e){let t=0,r=null,{parser:o}=e.p,{tokenizers:i}=o,s=o.stateSlot(e.state,3),a=e.curContext?e.curContext.hash:0,l=0;for(let u=0;u<i.length;u++){if(!(1<<u&s))continue;let c=i[u],p=this.tokens[u];if(!(r&&!c.fallback)&&((c.contextual||p.start!=e.pos||p.mask!=s||p.context!=a)&&(this.updateCachedToken(p,c,e),p.mask=s,p.context=a),p.lookAhead>p.end+25&&(l=Math.max(p.lookAhead,l)),p.value!=0)){let d=t;if(p.extended>-1&&(t=this.addActions(e,p.extended,p.end,t)),t=this.addActions(e,p.value,p.end,t),!c.extend&&(r=p,t>d))break}}for(;this.actions.length>t;)this.actions.pop();return l&&e.setLookAhead(l),!r&&e.pos==this.stream.end&&(r=new Tt,r.value=e.p.parser.eofTerm,r.start=r.end=e.pos,t=this.addActions(e,r.value,r.end,t)),this.mainToken=r,this.actions}getMainToken(e){if(this.mainToken)return this.mainToken;let t=new Tt,{pos:r,p:o}=e;return t.start=r,t.end=Math.min(r+1,o.stream.end),t.value=r==o.stream.end?o.parser.eofTerm:0,t}updateCachedToken(e,t,r){let o=this.stream.clipPos(r.pos);if(t.token(this.stream.reset(o,e),r),e.value>-1){let{parser:i}=r.p;for(let s=0;s<i.specialized.length;s++)if(i.specialized[s]==e.value){let a=i.specializers[s](this.stream.read(e.start,e.end),r);if(a>=0&&r.p.parser.dialect.allows(a>>1)){a&1?e.extended=a>>1:e.value=a>>1;break}}}else e.value=0,e.end=this.stream.clipPos(o+1)}putAction(e,t,r,o){for(let i=0;i<o;i+=3)if(this.actions[i]==e)return o;return this.actions[o++]=e,this.actions[o++]=t,this.actions[o++]=r,o}addActions(e,t,r,o){let{state:i}=e,{parser:s}=e.p,{data:a}=s;for(let l=0;l<2;l++)for(let u=s.stateSlot(i,l?2:1);;u+=3){if(a[u]==65535)if(a[u+1]==1)u=Ve(a,u+2);else{o==0&&a[u+1]==2&&(o=this.putAction(Ve(a,u+2),t,r,o));break}a[u]==t&&(o=this.putAction(Ve(a,u+1),t,r,o))}return o}},wi;(function(n){n[n.Distance=5]="Distance",n[n.MaxRemainingPerStep=3]="MaxRemainingPerStep",n[n.MinBufferLengthPrune=500]="MinBufferLengthPrune",n[n.ForceReduceLimit=10]="ForceReduceLimit",n[n.CutDepth=15e3]="CutDepth",n[n.CutTo=9e3]="CutTo",n[n.MaxLeftAssociativeReductionCount=300]="MaxLeftAssociativeReductionCount",n[n.MaxStackCount=12]="MaxStackCount"})(wi||(wi={}));var Un=class{constructor(e,t,r,o){this.parser=e,this.input=t,this.ranges=o,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 Fn(t,o),this.tokens=new Hn(e,this.stream),this.topTerm=e.top[1];let{from:i}=o[0];this.stacks=[Pt.start(this,e.top[0],i)],this.fragments=r.length&&this.stream.end-i>e.bufferLength*4?new $n(r,e.nodeSet):null}get parsedPos(){return this.minStackPos}advance(){let e=this.stacks,t=this.minStackPos,r=this.stacks=[],o,i;if(this.bigReductionCount>300&&e.length==1){let[s]=e;for(;s.forceReduce()&&s.stack.length&&s.stack[s.stack.length-2]>=this.lastBigReductionStart;);this.bigReductionCount=this.lastBigReductionSize=0}for(let s=0;s<e.length;s++){let a=e[s];for(;;){if(this.tokens.mainToken=null,a.pos>t)r.push(a);else{if(this.advanceStack(a,r,e))continue;{o||(o=[],i=[]),o.push(a);let l=this.tokens.getMainToken(a);i.push(l.value,l.end)}}break}}if(!r.length){let s=o&&Gu(o);if(s)return this.stackToTree(s);if(this.parser.strict)throw Re&&o&&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&&o){let s=this.stoppedAt!=null&&o[0].pos>this.stoppedAt?o[0]:this.runRecovery(o,i,r);if(s)return this.stackToTree(s.forceAll())}if(this.recovering){let s=this.recovering==1?1:this.recovering*3;if(r.length>s)for(r.sort((a,l)=>l.score-a.score);r.length>s;)r.pop();r.some(a=>a.reducePos>t)&&this.recovering--}else if(r.length>1){e:for(let s=0;s<r.length-1;s++){let a=r[s];for(let l=s+1;l<r.length;l++){let u=r[l];if(a.sameState(u)||a.buffer.length>500&&u.buffer.length>500)if((a.score-u.score||a.buffer.length-u.buffer.length)>0)r.splice(l--,1);else{r.splice(s--,1);continue e}}}r.length>12&&r.splice(12,r.length-12)}this.minStackPos=r[0].pos;for(let s=1;s<r.length;s++)r[s].pos<this.minStackPos&&(this.minStackPos=r[s].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,r){let o=e.pos,{parser:i}=this,s=Re?this.stackID(e)+" -> ":"";if(this.stoppedAt!=null&&o>this.stoppedAt)return e.forceReduce()?e:null;if(this.fragments){let u=e.curContext&&e.curContext.tracker.strict,c=u?e.curContext.hash:0;for(let p=this.fragments.nodeAt(o);p;){let d=this.parser.nodeSet.types[p.type.id]==p.type?i.getGoto(e.state,p.type.id):-1;if(d>-1&&p.length&&(!u||(p.prop(B.contextHash)||0)==c))return e.useNode(p,d),Re&&console.log(s+this.stackID(e)+` (via reuse of ${i.getName(p.type.id)})`),!0;if(!(p instanceof Q)||p.children.length==0||p.positions[0]>0)break;let g=p.children[0];if(g instanceof Q&&p.positions[0]==0)p=g;else break}}let a=i.stateSlot(e.state,4);if(a>0)return e.reduce(a),Re&&console.log(s+this.stackID(e)+` (via always-reduce ${i.getName(a&65535)})`),!0;if(e.stack.length>=15e3)for(;e.stack.length>9e3&&e.forceReduce(););let l=this.tokens.getActions(e);for(let u=0;u<l.length;){let c=l[u++],p=l[u++],d=l[u++],g=u==l.length||!r,y=g?e:e.split();if(y.apply(c,p,d),Re&&console.log(s+this.stackID(y)+` (via ${c&65536?`reduce of ${i.getName(c&65535)}`:"shift"} for ${i.getName(p)} @ ${o}${y==e?"":", split"})`),g)return!0;y.pos>o?t.push(y):r.push(y)}return!1}advanceFully(e,t){let r=e.pos;for(;;){if(!this.advanceStack(e,null,null))return!1;if(e.pos>r)return Ri(e,t),!0}}runRecovery(e,t,r){let o=null,i=!1;for(let s=0;s<e.length;s++){let a=e[s],l=t[s<<1],u=t[(s<<1)+1],c=Re?this.stackID(a)+" -> ":"";if(a.deadEnd&&(i||(i=!0,a.restart(),Re&&console.log(c+this.stackID(a)+" (restarted)"),this.advanceFully(a,r))))continue;let p=a.split(),d=c;for(let g=0;p.forceReduce()&&g<10&&(Re&&console.log(d+this.stackID(p)+" (via force-reduce)"),!this.advanceFully(p,r));g++)Re&&(d=this.stackID(p)+" -> ");for(let g of a.recoverByInsert(l))Re&&console.log(c+this.stackID(g)+" (via recover-insert)"),this.advanceFully(g,r);this.stream.end>a.pos?(u==a.pos&&(u++,l=0),a.recoverByDelete(l,u),Re&&console.log(c+this.stackID(a)+` (via recover-delete ${this.parser.getName(l)})`),Ri(a,r)):(!o||o.score<a.score)&&(o=a)}return o}stackToTree(e){return e.close(),Q.build({buffer:Mt.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=(Nn||(Nn=new WeakMap)).get(e);return t||Nn.set(e,t=String.fromCodePoint(this.nextStackID++)),t+e}};function Ri(n,e){for(let t=0;t<e.length;t++){let r=e[t];if(r.pos==n.pos&&r.sameState(n)){e[t].score<n.score&&(e[t]=n);return}}e.push(n)}var Wn=class{constructor(e,t,r){this.source=e,this.flags=t,this.disabled=r}allows(e){return!this.disabled||this.disabled[e]==0}};var ut=class extends $r{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 a=0;a<e.repeatNodeCount;a++)t.push("");let r=Object.keys(e.topRules).map(a=>e.topRules[a][1]),o=[];for(let a=0;a<t.length;a++)o.push([]);function i(a,l,u){o[a].push([l,l.deserialize(String(u))])}if(e.nodeProps)for(let a of e.nodeProps){let l=a[0];typeof l=="string"&&(l=B[l]);for(let u=1;u<a.length;){let c=a[u++];if(c>=0)i(c,l,a[u++]);else{let p=a[u+-c];for(let d=-c;d>0;d--)i(a[u++],l,p);u++}}}this.nodeSet=new vt(t.map((a,l)=>te.define({name:l>=this.minRepeatTerm?void 0:a,id:l,props:o[l],top:r.indexOf(l)>-1,error:l==0,skipped:e.skippedNodes&&e.skippedNodes.indexOf(l)>-1}))),e.propSources&&(this.nodeSet=this.nodeSet.extend(...e.propSources)),this.strict=!1,this.bufferLength=1024;let s=Yt(e.tokenData);this.context=e.context,this.specializerSpecs=e.specialized||[],this.specialized=new Uint16Array(this.specializerSpecs.length);for(let a=0;a<this.specializerSpecs.length;a++)this.specialized[a]=this.specializerSpecs[a].term;this.specializers=this.specializerSpecs.map(xi),this.states=Yt(e.states,Uint32Array),this.data=Yt(e.stateData),this.goto=Yt(e.goto),this.maxTerm=e.maxTerm,this.tokenizers=e.tokenizers.map(a=>typeof a=="number"?new Qe(s,a):a),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,r){let o=new Un(this,e,t,r);for(let i of this.wrappers)o=i(o,e,t,r);return o}getGoto(e,t,r=!1){let o=this.goto;if(t>=o[0])return-1;for(let i=o[t+1];;){let s=o[i++],a=s&1,l=o[i++];if(a&&r)return l;for(let u=i+(s>>1);i<u;i++)if(o[i]==e)return l;if(a)return-1}}hasAction(e,t){let r=this.data;for(let o=0;o<2;o++)for(let i=this.stateSlot(e,o?2:1),s;;i+=3){if((s=r[i])==65535)if(r[i+1]==1)s=r[i=Ve(r,i+2)];else{if(r[i+1]==2)return Ve(r,i+2);break}if(s==t||s==0)return Ve(r,i+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,r=>r==t?!0:null)}allActions(e,t){let r=this.stateSlot(e,4),o=r?t(r):void 0;for(let i=this.stateSlot(e,1);o==null;i+=3){if(this.data[i]==65535)if(this.data[i+1]==1)i=Ve(this.data,i+2);else break;o=t(Ve(this.data,i+1))}return o}nextStates(e){let t=[];for(let r=this.stateSlot(e,1);;r+=3){if(this.data[r]==65535)if(this.data[r+1]==1)r=Ve(this.data,r+2);else break;if(!(this.data[r+2]&1)){let o=this.data[r+1];t.some((i,s)=>s&1&&i==o)||t.push(this.data[r],o)}}return t}configure(e){let t=Object.assign(Object.create(ut.prototype),this);if(e.props&&(t.nodeSet=this.nodeSet.extend(...e.props)),e.top){let r=this.topRules[e.top];if(!r)throw new RangeError(`Invalid top rule name ${e.top}`);t.top=r}return e.tokenizers&&(t.tokenizers=this.tokenizers.map(r=>{let o=e.tokenizers.find(i=>i.from==r);return o?o.to:r})),e.specializers&&(t.specializers=this.specializers.slice(),t.specializerSpecs=this.specializerSpecs.map((r,o)=>{let i=e.specializers.find(a=>a.from==r.external);if(!i)return r;let s=Object.assign(Object.assign({},r),{external:i.to});return t.specializers[o]=xi(s),s})),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),r=t.map(()=>!1);if(e)for(let i of e.split(" ")){let s=t.indexOf(i);s>=0&&(r[s]=!0)}let o=null;for(let i=0;i<t.length;i++)if(!r[i])for(let s=this.dialects[t[i]],a;(a=this.data[s++])!=65535;)(o||(o=new Uint8Array(this.maxTerm+1)))[a]=1;return new Wn(e,r,o)}static deserialize(e){return new ut(e)}};function Ve(n,e){return n[e]|n[e+1]<<16}function Gu(n){let e=null;for(let t of n){let r=t.p.stoppedAt;(t.pos==t.p.stream.end||r!=null&&t.pos>r)&&t.p.parser.stateFlag(t.state,2)&&(!e||e.score<t.score)&&(e=t)}return e}function xi(n){if(n.external){let e=n.extend?1:0;return(t,r)=>n.external(t,r)<<1|e}return n.get}var Gn=ut.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 Ee=require("@vuu-ui/vuu-utils");var re,qn=class{constructor(){N(this,re,void 0)}setFilterCombinatorOp(e,t=h(this,re)){(0,Ee.isMultiClauseFilter)(t)&&t.op===e||D(this,re,{op:e,filters:[h(this,re)]})}add(e){if(h(this,re)===void 0)D(this,re,e);else if((0,Ee.isMultiClauseFilter)(h(this,re)))h(this,re).filters.push(e);else throw Error("Invalid filter passed to FilterExpression")}setColumn(e,t=h(this,re)){if((0,Ee.isMultiClauseFilter)(t)){let r=t.filters.at(-1);r&&this.setColumn(e,r)}else t&&(t.column=e)}setOp(e,t=h(this,re)){if((0,Ee.isMultiClauseFilter)(t)){let r=t.filters.at(-1);r&&this.setOp(e,r)}else t&&(t.op=e)}setValue(e,t=h(this,re)){var r;if((0,Ee.isMultiClauseFilter)(t)){let o=t.filters.at(-1);o&&this.setValue(e,o)}else(0,Ee.isMultiValueFilter)(t)?((r=t.values)!=null||(t.values=[]),t.values.push(e)):(0,Ee.isSingleValueFilter)(t)&&(t.value=e)}toJSON(e=h(this,re)){return this.name?{...e,name:this.name}:e}};re=new WeakMap;var Qn=(n,e)=>{let t=new qn,r=n.cursor();do{let{name:o,from:i,to:s}=r;switch(o){case"ColumnValueExpression":t.add({});break;case"ColumnSetExpression":t.add({op:"in"});break;case"Or":case"And":t.setFilterCombinatorOp(e.substring(i,s));break;case"Column":t.setColumn(e.substring(i,s));break;case"Operator":t.setOp(e.substring(i,s));break;case"String":t.setValue(e.substring(i+1,s-1));break;case"Number":t.setValue(parseFloat(e.substring(i,s)));break;case"True":t.setValue(!0);break;case"False":t.setValue(!1);break;case"FilterName":t.name=e.substring(i,s);break;default:}}while(r.next());return t.toJSON()};var qu=Gn.configure({strict:!0}),Ur=n=>{let e=qu.parse(n);return Qn(e,n)};function Wr(n,e){switch(e.op){case"in":return Qu(n,e);case"=":return Ku(n,e);case">":return Ju(n,e);case">=":return Xu(n,e);case"<":return ju(n,e);case"<=":return Yu(n,e);case"starts":return Zu(n,e);case"and":return ec(n,e);case"or":return tc(n,e);default:return console.log(`unrecognized filter type ${e.op}`),()=>!0}}var Qu=(n,e)=>t=>e.values.indexOf(t[n[e.column]])!==-1,Ku=(n,e)=>t=>t[n[e.column]]===e.value,Ju=(n,e)=>t=>t[n[e.column]]>e.value,Xu=(n,e)=>t=>t[n[e.column]]>=e.value,ju=(n,e)=>t=>t[n[e.column]]<e.value,Yu=(n,e)=>t=>t[n[e.column]]<=e.value,Zu=(n,e)=>{let t=e.value;if(typeof t!="string")throw Error("string filter applied to value of wrong type");return r=>{let o=r[n[e.column]];if(typeof o!="string")throw Error("string filter applied to value of wrong type");return o.toLowerCase().startsWith(t.toLowerCase())}},ec=(n,e)=>{let t=e.filters.map(r=>Wr(n,r));return r=>t.every(o=>o(r))};function tc(n,e){let t=e.filters.map(r=>Wr(n,r));return r=>t.some(o=>o(r))}var F=require("@vuu-ui/vuu-utils");var Ci=require("@vuu-ui/vuu-utils"),{DEPTH:Kn,IS_EXPANDED:Ei,KEY:Jn}=Ci.metadataKeys,Ti=(n,e)=>{let t=[];for(let r=0,o=0,i=!1,s=e.length;r<s;r++){let a=e[r],{[Kn]:l,[Jn]:u}=a;if(u===n){let c=a.slice();for(c[Ei]=!1,t.push(c),o+=1,i=!0;r<s-1&&e[r+1][Kn]>l;)r+=1}else if(i){let c=a.slice();c[0]=o,c[1]=o,t.push(c),o+=1}else t.push(a),o+=1}return t},Pi=(n,e,t,r,o)=>{let i=t.map(s=>r[s]);return Mi(o,i,n,e)},Mi=(n,e,t,r=[],o="$root",i=1,s=[])=>{let a=Object.keys(n).sort();for(let l of a){let u=s.length,c=`${o}|${l}`,p=[u,u,!1,!1,i,0,c,0];p[e[i-1]]=l,s.push(p),t.includes(c)&&(p[Ei]=!0,Array.isArray(n[l])?rc(s,n[l],r,c,i+1):Mi(n[l],e,t,r,c,i+1,s))}return s},rc=(n,e,t,r,o)=>{for(let i of e){let s=n.length,a=t[i].slice();a[0]=s,a[1]=s,a[Kn]=o,a[Jn]=`${r}|${a[Jn]}`,n.push(a)}},Di=(n,e,t)=>{let r=e.map(s=>t[s]),o=oc(n,r);return[nc(o,r),o]},nc=(n,e)=>{let r=[],o=0,i=Object.keys(n).sort();for(let s of i){let a=[o,o,!1,!1,1,0,`$root|${s}`,0];a[e[0]]=s,r.push(a),o+=1}return r};function oc(n,e){let t={},r=e.length,o=r-1;for(let i=0,s=n.length;i<s;i++){let a=n[i],l=t,u,c;for(let p=0;p<r;p++){let d=e[p];c=a[d].toString(),u=l[c],u&&p===o?u.push(i):u?l=u:!u&&p<o?l=l[c]={}:u||(l[c]=[i])}}return t}var sc=(n,e,[t,r])=>{let o=r==="D"?e[t]:n[t],i=r==="D"?n[t]:e[t];return o===i?0:i===null||o>i?1:-1},ic=n=>n.length===1?ac(n):n.length===2?lc(n):uc(n),ac=([[n,e]])=>(t,r)=>{let o=e==="D"?r[n]:t[n],i=e==="D"?t[n]:r[n];return o>i?1:i>o?-1:0},lc=([[n,e],[t,r]])=>(o,i)=>{let s=e==="D"?i[n]:o[n],a=e==="D"?o[n]:i[n],l=r==="D"?i[t]:o[t],u=r==="D"?o[t]:i[t];return s>a?1:a>s?-1:l>u?1:u>l?-1:0},uc=(n,e=sc)=>(t,r)=>{for(let o of n){let i=e(t,r,o);if(i!==0)return i}return 0},Li=(n,{sortDefs:e},t)=>{let r=e.map(({column:i,sortType:s})=>[t[i],s]),o=ic(r);return n.slice().sort(o)};var{debug:fe}=(0,F.logger)("ArrayDataSource"),{RENDER_IDX:cc,SELECTED:pc}=F.metadataKeys,ki={from:0,to:0},hc=(n,e)=>[e,e,!0,!1,1,0,n[0].toString(),0,...n],dc=n=>({columns:n.map(({name:t,serverDataType:r="string"})=>({name:t,serverDataType:r})),key:n[0].name,table:{module:"",table:"Array"}}),fc=(n,e,t)=>{let[r]=n,o=n.slice();return o[cc]=e.keyFor(r),o[pc]=(0,F.getSelectionStatus)(t,r),o},ct,Ae,_,me,U,Gr,Zt,Dt,Ii=class extends F.EventEmitter{constructor({aggregations:t,columnDescriptors:r,data:o,filter:i,groupBy:s,rangeChangeRowset:a="delta",sort:l,title:u,viewport:c}){super();this.status="initialising";this.disabled=!1;this.selectedRows=[];this.suspended=!1;this.lastRangeServed={from:0,to:0};this.openTreeNodes=[];N(this,ct,[]);N(this,Ae,void 0);N(this,_,Vr);N(this,me,void 0);N(this,U,ki);N(this,Gr,0);N(this,Zt,0);N(this,Dt,void 0);this.keys=new F.KeySet(h(this,U));if(!o||!r)throw Error("ArrayDataSource constructor called without data or without columnDescriptors");D(this,_,{...h(this,_),aggregations:t||h(this,_).aggregations,columns:r.map(p=>p.name),filter:i||h(this,_).filter,groupBy:s||h(this,_).groupBy,sort:l||h(this,_).sort}),this.columnDescriptors=r,D(this,ct,r.map(p=>p.name)),D(this,Ae,(0,F.buildColumnMap)(h(this,ct))),this.rangeChangeRowset=a,this.tableSchema=dc(r),D(this,me,o.map(hc)),this.viewport=c||(0,F.uuid)(),D(this,Zt,o.length),D(this,Dt,u),fe==null||fe(`columnMap: ${JSON.stringify(h(this,Ae))}`)}async subscribe({viewport:t=(c=>(c=this.viewport)!=null?c:(0,F.uuid)())(),columns:r,aggregations:o,range:i,sort:s,groupBy:a,filter:l},u){var p;this.clientCallback=u,(o||r||l||a||s)&&D(this,_,{...h(this,_),aggregations:o||h(this,_).aggregations,columns:r||h(this,_).columns,filter:l||h(this,_).filter,groupBy:a||h(this,_).groupBy,sort:s||h(this,_).sort}),this.status==="initialising"&&(this.viewport=t,this.status="subscribed",(p=this.clientCallback)==null||p.call(this,{...h(this,_),type:"subscribed",clientViewportId:this.viewport,range:h(this,U),tableSchema:this.tableSchema}),this.clientCallback({clientViewportId:this.viewport,type:"viewport-update",size:h(this,me).length}),i?this.range=i:h(this,U)!==ki&&this.sendRowsToClient())}unsubscribe(){console.log("noop")}suspend(){return console.log("noop"),this}resume(){return console.log("noop"),this}disable(){return console.log("noop"),this}enable(){return console.log("noop"),this}select(t){fe==null||fe(`select ${JSON.stringify(t)}`),this.selectedRows=t,this.setRange((0,F.resetRange)(h(this,U)),!0)}openTreeNode(t){this.openTreeNodes.push(t),this.groupedData=Pi(this.openTreeNodes,h(this,me),h(this,_).groupBy,h(this,Ae),this.groupMap),this.setRange((0,F.resetRange)(h(this,U)),!0)}closeTreeNode(t){this.openTreeNodes=this.openTreeNodes.filter(r=>r!==t),this.groupedData&&(this.groupedData=Ti(t,this.groupedData),this.setRange((0,F.resetRange)(h(this,U)),!0))}get data(){return h(this,me)}get config(){}get selectedRowsCount(){return h(this,Gr)}get size(){return h(this,Zt)}get range(){return h(this,U)}set range(t){(t.from!==h(this,U).from||t.to!==h(this,U).to)&&this.setRange(t)}setRange(t,r=!1){D(this,U,t),this.keys.reset(t),this.sendRowsToClient(r)}sendRowsToClient(t=!1){var s,a,l,u;let r=this.rangeChangeRowset==="delta"&&!t?(0,F.rangeNewItems)(this.lastRangeServed,h(this,U)):h(this,U),o=(l=(a=(s=this.sortedData)!=null?s:this.groupedData)!=null?a:this.filteredData)!=null?l:h(this,me),i=o.slice(r.from,r.to).map(c=>fc(c,this.keys,this.selectedRows));(u=this.clientCallback)==null||u.call(this,{clientViewportId:this.viewport,mode:"batch",rows:i,size:o.length,type:"viewport-update"}),this.lastRangeServed=h(this,U)}get columns(){return h(this,ct)}set columns(t){D(this,ct,t),console.log(`ArrayDataSource setColumns ${t.join(",")}`)}get aggregations(){return h(this,_).aggregations}set aggregations(t){}get sort(){return h(this,_).sort}set sort(t){fe==null||fe(`sort ${JSON.stringify(t)}`),D(this,_,{...h(this,_),sort:t}),this.sortedData=Li(h(this,me),t,h(this,Ae)).map((r,o)=>{let i=r.slice();return i[0]=o,i[1]=o,i}),this.setRange((0,F.resetRange)(h(this,U)),!0),this.emit("config",h(this,_))}get filter(){return h(this,_).filter}set filter(t){fe==null||fe(`filter ${JSON.stringify(t)}`),D(this,_,{...h(this,_),filter:t});let{filterStruct:r}=t;if(r){let o=Wr(h(this,Ae),r);this.filteredData=h(this,me).filter(o).map((i,s)=>{let a=i.slice();return a[0]=s,a[1]=s,a})}else this.filteredData=void 0;this.setRange((0,F.resetRange)(h(this,U)),!0),this.emit("config",h(this,_))}get groupBy(){return h(this,_).groupBy}set groupBy(t){if(D(this,_,{...h(this,_),groupBy:t}),t.length){console.time("group");let[r,o]=Di(h(this,me),t,h(this,Ae));this.groupMap=o,this.groupedData=r,console.timeEnd("group")}else this.groupedData=void 0;this.setRange((0,F.resetRange)(h(this,U)),!0),this.emit("config",h(this,_))}get title(){return h(this,Dt)}set title(t){D(this,Dt,t)}createLink({parentVpId:t,link:{fromColumn:r,toColumn:o}}){console.log("create link",{parentVpId:t,fromColumn:r,toColumn:o})}removeLink(){console.log("remove link")}findRow(t){let r=h(this,me)[t];if(r)return r;throw`no row found for key ${t}`}updateRow(t,r,o){let i=this.findRow(parseInt(t));console.log({row:i,colName:r,value:o})}async menuRpcCall(t){return new Promise(r=>{let{type:o}=t;switch(o){case"VP_EDIT_CELL_RPC":{let{rowKey:i,field:s,value:a}=t;try{this.updateRow(i,s,a),r(void 0)}catch(l){r({error:String(l),type:"VP_EDIT_RPC_REJECT"})}}break;default:r(void 0)}})}};ct=new WeakMap,Ae=new WeakMap,_=new WeakMap,me=new WeakMap,U=new WeakMap,Gr=new WeakMap,Zt=new WeakMap,Dt=new WeakMap;var le=require("@vuu-ui/vuu-utils");var mc={columns:[],key:"",table:{module:"",table:""}},{DEPTH:Lt,IDX:Oi,IS_EXPANDED:gc,IS_LEAF:bc,KEY:Bi,SELECTED:Vi}=le.metadataKeys,Ai=(n,e)=>{let[t]=n,r=n.slice();return r[1]=e.keyFor(t),r},Ke,Je,ne,Xe,je,Te,qr,Qr,Ye,kt,_i=class extends le.EventEmitter{constructor({aggregations:t,data:r,filter:o,groupBy:i,sort:s,title:a,viewport:l}){super();this.status="initialising";this.expandedRows=new Set;this.visibleRows=[];N(this,Ke,[]);N(this,Je,[]);N(this,ne,void 0);N(this,Xe,{filter:""});N(this,je,[]);N(this,Te,{from:0,to:0});N(this,qr,0);N(this,Qr,0);N(this,Ye,{sortDefs:[]});N(this,kt,void 0);this.keys=new le.KeySet(h(this,Te));if(!r)throw Error("JsonDataSource constructor called without data");[this.columnDescriptors,po(this,ne)._]=(0,le.jsonToDataSourceRows)(r),this.visibleRows=h(this,ne).filter(u=>u[Lt]===0).map((u,c)=>[c,c].concat(u.slice(2))),this.viewport=l||(0,le.uuid)(),t&&D(this,Ke,t),this.columnDescriptors&&D(this,Je,this.columnDescriptors.map(u=>u.name)),o&&D(this,Xe,o),i&&D(this,je,i),s&&D(this,Ye,s),D(this,kt,a)}async subscribe({viewport:t=(c=>(c=this.viewport)!=null?c:(0,le.uuid)())(),columns:r,aggregations:o,range:i,sort:s,groupBy:a,filter:l},u){var p;this.clientCallback=u,console.log(`subscribe range ${i==null?void 0:i.from} ${i==null?void 0:i.to}`),o&&D(this,Ke,o),r&&D(this,Je,r),l&&D(this,Xe,l),a&&D(this,je,a),i&&D(this,Te,i),s&&D(this,Ye,s),this.status==="initialising"&&(this.viewport=t,this.status="subscribed",(p=this.clientCallback)==null||p.call(this,{aggregations:h(this,Ke),type:"subscribed",clientViewportId:this.viewport,columns:h(this,Je),filter:h(this,Xe),groupBy:h(this,je),range:h(this,Te),sort:h(this,Ye),tableSchema:mc}),this.clientCallback({clientViewportId:this.viewport,type:"viewport-update",size:this.visibleRows.length}))}unsubscribe(){console.log("noop")}suspend(){return console.log("noop"),this}resume(){return console.log("noop"),this}disable(){return console.log("noop"),this}enable(){return console.log("noop"),this}select(t){var o;let r=[];for(let i of h(this,ne)){let{[Oi]:s,[Vi]:a}=i,l=a===1,u=(0,le.isSelected)(t,s);if(u!==l){let c=i.slice();c[Vi]=u?1:0,h(this,ne)[s]=c,r.push(c)}}r.length>0&&((o=this.clientCallback)==null||o.call(this,{clientViewportId:this.viewport,mode:"update",type:"viewport-update",rows:r}))}openTreeNode(t){var i;this.expandedRows.add(t),this.visibleRows=Ni(h(this,ne),this.expandedRows);let{from:r,to:o}=h(this,Te);(i=this.clientCallback)==null||i.call(this,{clientViewportId:this.viewport,rows:this.visibleRows.slice(r,o).map(s=>Ai(s,this.keys)),size:this.visibleRows.length,type:"viewport-update"}),console.log(this.expandedRows)}closeTreeNode(t,r=!1){if(this.expandedRows.delete(t),r)for(let o of this.expandedRows.keys())o.startsWith(t)&&this.expandedRows.delete(o);this.visibleRows=Ni(h(this,ne),this.expandedRows),this.sendRowsToClient()}get config(){}get selectedRowsCount(){return h(this,qr)}get size(){return h(this,Qr)}get range(){return h(this,Te)}set range(t){D(this,Te,t),this.keys.reset(t),requestAnimationFrame(()=>{this.sendRowsToClient()})}sendRowsToClient(){var o;let{from:t,to:r}=h(this,Te);(o=this.clientCallback)==null||o.call(this,{clientViewportId:this.viewport,rows:this.visibleRows.slice(t,r).map(i=>Ai(i,this.keys)),size:this.visibleRows.length,type:"viewport-update"})}get columns(){return h(this,Je)}set columns(t){D(this,Je,t),console.log(`ArrayDataSource setColumns ${t.join(",")}`)}get aggregations(){return h(this,Ke)}set aggregations(t){D(this,Ke,t)}get sort(){return h(this,Ye)}set sort(t){D(this,Ye,t)}get filter(){return h(this,Xe)}set filter(t){D(this,Xe,t),console.log(`RemoteDataSource ${JSON.stringify(t)}`)}get groupBy(){return h(this,je)}set groupBy(t){D(this,je,t)}get title(){return h(this,kt)}set title(t){D(this,kt,t)}createLink({parentVpId:t,link:{fromColumn:r,toColumn:o}}){console.log("create link",{parentVpId:t,fromColumn:r,toColumn:o})}removeLink(){console.log("remove link")}async menuRpcCall(t){console.log("rmenuRpcCall",{rpcRequest:t})}getChildRows(t){let r=h(this,ne).find(i=>i[Bi]===t);if(r){let{[Oi]:i,[Lt]:s}=r,a=i+1,l=[];do{let{[Lt]:u}=h(this,ne)[a];if(u===s+1)l.push(h(this,ne)[a]);else if(u<=s)break;a+=1}while(a<h(this,ne).length);return l}else console.warn(`JsonDataSource getChildRows row not found for key ${t}`);let o=t.split("|").slice(1);return console.log({sections:o,parentRow:r}),[]}getRowsAtDepth(t,r=!0){return(r?this.visibleRows:h(this,ne)).filter(i=>i[Lt]===t)}};Ke=new WeakMap,Je=new WeakMap,ne=new WeakMap,Xe=new WeakMap,je=new WeakMap,Te=new WeakMap,qr=new WeakMap,Qr=new WeakMap,Ye=new WeakMap,kt=new WeakMap;function Ni(n,e){let t=[],r={value:0};for(let o=0;o<n.length;o++){let i=n[o],{[Lt]:s,[Bi]:a,[bc]:l}=i,u=e.has(a);if(t.push(yc(i,r,u)),!l&&!u)do o+=1;while(o<n.length-1&&n[o+1][Lt]>s)}return t}var yc=(n,e,t)=>{let r=n.slice();return r[0]=e.value,r[1]=e.value,t&&(r[gc]=!0),e.value+=1,r};var oe=require("@vuu-ui/vuu-utils");var{info:Z}=(0,oe.logger)("RemoteDataSource"),I,Kr,It,pt,er,Ot,ht,Xn=class extends oe.EventEmitter{constructor({bufferSize:t=100,aggregations:r,columns:o,filter:i,groupBy:s,sort:a,table:l,title:u,viewport:c,visualLink:p}){super();this.server=null;this.status="initialising";N(this,I,Vr);N(this,Kr,[]);N(this,It,"throttle");N(this,pt,{from:0,to:0});N(this,er,0);N(this,Ot,0);N(this,ht,void 0);this.handleMessageFromServer=t=>{var r,o,i;if(t.type==="subscribed")this.status="subscribed",(r=this.clientCallback)==null||r.call(this,t);else if(t.type==="disabled")this.status="disabled";else if(t.type==="enabled")this.status="enabled";else{if(ei(t))return;t.type==="debounce-begin"?this.optimize="debounce":(t.type==="viewport-update"&&t.size!==void 0&&t.size!==h(this,Ot)&&(D(this,Ot,t.size),this.emit("resize",t.size)),this.configChangePending&&this.setConfigPending(),js(t)?t.size>100?this.throttleSizeCallback(t):(o=this.clientCallback)==null||o.call(this,t):((i=this.clientCallback)==null||i.call(this,t),this.optimize==="debounce"&&this.revertDebounce()))}};this.revertDebounce=(0,oe.debounce)(()=>{this.optimize="throttle"},100);this.throttleSizeCallback=(0,oe.throttle)(t=>{var r;(r=this.clientCallback)==null||r.call(this,t)},2e3);this.rawRangeRequest=t=>{this.viewport&&this.server&&this.server.send({viewport:this.viewport,type:"setViewRange",range:t})};this.debounceRangeRequest=(0,oe.debounce)(t=>{this.viewport&&this.server&&this.server.send({viewport:this.viewport,type:"setViewRange",range:t})},50);this.throttleRangeRequest=(0,oe.throttle)(t=>{this.viewport&&this.server&&this.server.send({viewport:this.viewport,type:"setViewRange",range:t})},80);if(!l)throw Error("RemoteDataSource constructor called without table");this.bufferSize=t,this.table=l,this.viewport=c,D(this,I,{...h(this,I),aggregations:r||h(this,I).aggregations,columns:o||h(this,I).columns,filter:i||h(this,I).filter,groupBy:s||h(this,I).groupBy,sort:a||h(this,I).sort,visualLink:p||h(this,I).visualLink}),D(this,ht,u),this.rangeRequest=this.throttleRangeRequest}async subscribe({viewport:t=(c=>(c=this.viewport)!=null?c:(0,oe.uuid)())(),columns:r,aggregations:o,range:i,sort:s,groupBy:a,filter:l},u){var d;if(this.clientCallback=u,(o||r||l||a||s)&&D(this,I,{...h(this,I),aggregations:o||h(this,I).aggregations,columns:r||h(this,I).columns,filter:l||h(this,I).filter,groupBy:a||h(this,I).groupBy,sort:s||h(this,I).sort}),i&&D(this,pt,i),this.status!=="initialising")return;this.status="subscribing",this.viewport=t,this.server=await ui();let{bufferSize:p}=this;(d=this.server)==null||d.subscribe({...h(this,I),bufferSize:p,viewport:t,table:this.table,range:h(this,pt),title:h(this,ht)},this.handleMessageFromServer)}unsubscribe(){var t,r;Z==null||Z(`unsubscribe #${this.viewport}`),this.viewport&&((t=this.server)==null||t.unsubscribe(this.viewport)),(r=this.server)==null||r.destroy(this.viewport),this.removeAllListeners()}suspend(){var t;return Z==null||Z(`suspend #${this.viewport}, current status ${this.status}`),this.viewport&&(this.status="suspended",(t=this.server)==null||t.send({type:"suspend",viewport:this.viewport})),this}resume(){var t;return Z==null||Z(`resume #${this.viewport}, current status ${this.status}`),this.viewport&&(this.status==="disabled"||this.status==="disabling"?this.enable():this.status==="suspended"&&((t=this.server)==null||t.send({type:"resume",viewport:this.viewport}),this.status="subscribed")),this}disable(){var t;return Z==null||Z(`disable #${this.viewport}, current status ${this.status}`),this.viewport&&(this.status="disabling",(t=this.server)==null||t.send({viewport:this.viewport,type:"disable"})),this}enable(){var t;return Z==null||Z(`enable #${this.viewport}, current status ${this.status}`),this.viewport&&(this.status==="disabled"||this.status==="disabling")&&(this.status="enabling",(t=this.server)==null||t.send({viewport:this.viewport,type:"enable"})),this}select(t){var r;D(this,er,t.length),this.viewport&&((r=this.server)==null||r.send({viewport:this.viewport,type:"select",selected:t}))}openTreeNode(t){var r;this.viewport&&((r=this.server)==null||r.send({viewport:this.viewport,type:"openTreeNode",key:t}))}closeTreeNode(t){var r;this.viewport&&((r=this.server)==null||r.send({viewport:this.viewport,type:"closeTreeNode",key:t}))}get optimize(){return h(this,It)}set optimize(t){if(t!==h(this,It)){switch(D(this,It,t),t){case"none":this.rangeRequest=this.rawRangeRequest;break;case"debounce":this.rangeRequest=this.debounceRangeRequest;break;case"throttle":this.rangeRequest=this.throttleRangeRequest;break}this.emit("optimize",t)}}get selectedRowsCount(){return h(this,er)}get size(){return h(this,Ot)}get range(){return h(this,pt)}set range(t){D(this,pt,t),this.rangeRequest(t)}get config(){return h(this,I)}set config(t){var r,o;if(Ys(h(this,I),t)&&t){let i=(r=t==null?void 0:t.filter)!=null&&r.filter&&(t==null?void 0:t.filter.filterStruct)===void 0?{...t,filter:{filter:t.filter.filter,filterStruct:Ur(t.filter.filter)}}:t;D(this,I,ti(i)),h(this,I)&&this.viewport&&this.server&&t&&((o=this.server)==null||o.send({viewport:this.viewport,type:"config",config:h(this,I)})),this.emit("config",h(this,I))}}get columns(){return h(this,I).columns}set columns(t){if(D(this,I,{...h(this,I),columns:t}),this.viewport){let r={viewport:this.viewport,type:"setColumns",columns:t};this.server&&this.server.send(r)}this.emit("config",h(this,I))}get aggregations(){return h(this,I).aggregations}set aggregations(t){var r;D(this,I,{...h(this,I),aggregations:t}),this.viewport&&((r=this.server)==null||r.send({viewport:this.viewport,type:"aggregate",aggregations:t})),this.emit("config",h(this,I))}get sort(){return h(this,I).sort}set sort(t){if(D(this,I,{...h(this,I),sort:t}),this.viewport){let r={viewport:this.viewport,type:"sort",sort:t};this.server&&this.server.send(r)}this.emit("config",h(this,I))}get filter(){return h(this,I).filter}set filter(t){if(D(this,I,{...h(this,I),filter:t}),this.viewport){let r={viewport:this.viewport,type:"filter",filter:t};this.server&&this.server.send(r)}this.emit("config",h(this,I))}get groupBy(){return h(this,I).groupBy}set groupBy(t){var r;if((0,oe.itemsOrOrderChanged)(this.groupBy,t)){let o=h(this,Kr).length>0;if(D(this,I,{...h(this,I),groupBy:t}),this.viewport){let i={viewport:this.viewport,type:"groupBy",groupBy:h(this,I).groupBy};this.server&&this.server.send(i)}!o&&t.length>0&&this.viewport&&((r=this.clientCallback)==null||r.call(this,{clientViewportId:this.viewport,type:"viewport-update",size:0,rows:[]})),this.emit("config",h(this,I)),this.setConfigPending({groupBy:t})}}get title(){return h(this,ht)}set title(t){var r;D(this,ht,t),this.viewport&&t&&((r=this.server)==null||r.send({type:"setTitle",title:t,viewport:this.viewport}))}get visualLink(){return h(this,I).visualLink}set visualLink(t){var r,o;if(D(this,I,{...h(this,I),visualLink:t}),t){let{parentClientVpId:i,link:{fromColumn:s,toColumn:a}}=t;this.viewport&&((r=this.server)==null||r.send({viewport:this.viewport,type:"createLink",parentClientVpId:i,parentColumnName:a,childColumnName:s}))}else this.viewport&&((o=this.server)==null||o.send({type:"removeLink",viewport:this.viewport}));this.emit("config",h(this,I))}setConfigPending(t){let r=this.configChangePending;this.configChangePending=t,t!==void 0?this.emit("config",t,!1):this.emit("config",r,!0)}async menuRpcCall(t){var r;if(this.viewport)return(r=this.server)==null?void 0:r.rpcCall({vpId:this.viewport,...t})}};I=new WeakMap,Kr=new WeakMap,It=new WeakMap,pt=new WeakMap,er=new WeakMap,Ot=new WeakMap,ht=new WeakMap;var jn=require("@vuu-ui/vuu-utils");var Fi=require("react/jsx-runtime");var Hc=M(require("classnames")),to=require("react");var Yn=require("react");var kc=require("react");var Ec=require("@salt-ds/core"),Tc=require("@heswell/salt-lab"),Pc=require("@salt-ds/icons");var $i=require("@vuu-ui/vuu-utils"),Jr=require("@heswell/salt-lab"),Hi=require("@salt-ds/core"),Ui=require("@salt-ds/icons"),_e=require("react");var zi=async n=>await fetch(`api/vui/${n.username}`,{}).then(t=>t.ok?t.json():null).catch(()=>{console.log("error getting history")});var Ze=require("react/jsx-runtime"),xc=({lastUpdate:n},{lastUpdate:e})=>e===n?0:e<n?-1:1,vc=n=>(0,Ze.jsx)(Jr.ListItem,{...n}),Cc=(0,_e.forwardRef)(function({loginUrl:e,onNavigate:t,user:r,layoutId:o="latest"},i){let[s,a]=(0,_e.useState)([]);(0,_e.useEffect)(()=>{async function p(){let g=(await zi(r)).filter(y=>y.id!=="latest").sort(xc).map(({id:y,lastUpdate:v})=>({lastUpdate:v,id:y,label:`Saved at ${(0,$i.formatDate)(new Date(v),"kk:mm:ss")}`}));console.log({sortedHistory:g}),a(g)}p()},[r]);let l=(0,_e.useCallback)((p,d)=>{d&&t(d.id)},[t]),u=(0,_e.useCallback)(()=>{Xs(e)},[e]),c=s.length===0?null:o==="latest"?s[0]:s.find(p=>p.id===o);return(0,Ze.jsxs)("div",{className:"vuuUserPanel",ref:i,children:[(0,Ze.jsx)(Jr.List,{ListItem:vc,className:"vuuUserPanel-history",onSelect:l,selected:c,source:s}),(0,Ze.jsx)("div",{className:"vuuUserPanel-buttonBar",children:(0,Ze.jsxs)(Hi.Button,{"aria-label":"logout",onClick:u,children:[(0,Ze.jsx)(Ui.ExportIcon,{})," Logout"]})})]})});var Wi=require("react/jsx-runtime");var Gi=require("@heswell/salt-lab"),Mc=M(require("classnames")),Dc=require("@salt-ds/core"),Lc=require("react");var qi=require("react/jsx-runtime");var Ic=M(require("classnames"));var Qi=require("react/jsx-runtime");var Ne=require("react"),Ki=M(require("classnames")),Xi=require("react/jsx-runtime"),Oc="medium",Vc="salt-theme",Ac="light",Zn=(0,Ne.createContext)({density:"high",theme:"salt",themeMode:"light"}),_c=["salt","salt-density-high","light"],rr=()=>{let n=(0,Ne.useContext)(Zn);return n?[`${n.theme}-theme`,`salt-density-${n.density}`,n.themeMode]:_c},Nc=(n,e,t,r)=>{var o;return console.log("create themed children"),(0,Ne.isValidElement)(n)?(0,Ne.cloneElement)(n,{className:(0,Ki.default)((o=n.props)==null?void 0:o.className,`${e}-theme`,`${e}-density-${r}`),"data-mode":t}):(console.warn(`
18
18
  ThemeProvider can only apply CSS classes for theming to a single nested child element of the ThemeProvider.
19
- Wrap elements with a single container`),n)},Gi=({applyThemeClasses:n=!1,children:e,theme:t,themeMode:r,density:o})=>{var d,g,S;let{density:s,themeMode:i,theme:a}=(0,Ae.useContext)(Xn),l=(d=o!=null?o:s)!=null?d:Ec,u=(g=r!=null?r:i)!=null?g:Pc,c=(S=t!=null?t:a)!=null?S:Tc,p=n?Dc(e,c,u,l):e;return(0,qi.jsx)(Xn.Provider,{value:{themeMode:u,density:l,theme:c},children:p})};Gi.displayName="ThemeProvider";var Yi=require("@vuu-ui/vuu-utils");var Lc=require("@salt-ds/core"),kc=M(require("classnames")),Ic=require("react");var Qi=require("react/jsx-runtime");var Oc=M(require("classnames")),Ki=require("react");var Ji=require("react/jsx-runtime");var Xi=require("react/jsx-runtime");var jn=require("react"),ji=require("react/jsx-runtime");var Zi=require("react/jsx-runtime"),{error:lv}=(0,Yi.logger)("Shell");var Zn=require("react"),_c=require("react/jsx-runtime"),Ac={},hv=(0,Zn.createContext)(Ac);var ta=M(require("classnames")),rr=function({children:e,x:t=0,y:r=0,onRender:o}){let[s,i,a]=er(),l=(0,tr.useMemo)(()=>en({className:(0,ta.default)(s,i),dataMode:a}),[]);return(0,tr.useLayoutEffect)(()=>{_t(e,l,t,r,o)},[e,o,l,t,r]),(0,tr.useLayoutEffect)(()=>()=>{var u;l&&(ea.unmountComponentAtNode(l),l.classList.contains("vuuPopup")&&((u=l.parentElement)==null||u.removeChild(l)))},[l]),null};var Nc=n=>{let e=getComputedStyle(document.body).getPropertyValue("--installed-themes");document.body.style.setProperty("--installed-themes",`${e} ${n}`)};var Ze=require("react/jsx-runtime"),eo="vuuDialog",Bc=({children:n,className:e,isOpen:t=!1,onClose:r,title:o,...s})=>{let i=(0,et.useRef)(null),[a]=(0,et.useState)(0),[l]=(0,et.useState)(0),u=(0,et.useCallback)(()=>{r==null||r()},[r]),c=(0,et.useCallback)(()=>{},[]);return t?(0,Ze.jsx)(rr,{onRender:c,x:a,y:l,children:(0,Ze.jsx)(It.Scrim,{className:`${eo}-scrim`,open:t,children:(0,Ze.jsxs)("div",{...s,className:(0,na.default)(eo,e),ref:i,children:[(0,Ze.jsxs)(It.Toolbar,{className:`${eo}-header`,children:[(0,Ze.jsx)(ra.Text,{children:o}),(0,Ze.jsx)(It.ToolbarButton,{onClick:u,"data-align-end":!0,"data-icon":"close"},"close")]}),n]})})}):null};var wa=require("@salt-ds/core"),Te=require("react");var tt=M(require("react")),no=M(require("classnames")),ha=require("@salt-ds/core");var le=require("react");var oa=n=>n.closest("[data-root='true']")!==null,sa=(n,e)=>{var t;return n.ariaHasPopup==="true"&&((t=n.dataset)==null?void 0:t.idx)===`${e}`||n.querySelector(`:scope > [data-idx='${e}'][aria-haspopup='true']`)!==null};function Fc(n,...e){let t=new Set(n);for(let r of e)for(let o of r)t.add(o);return t}var zc="Enter";var $c="Delete",Uc=new Set([zc,$c]),Hc=new Set(["Tab"]),Wc=new Set(["ArrowRight","ArrowLeft"]),ia=new Set(["Home","End","ArrowDown","ArrowUp"]),aa=new Set(["Home","End","ArrowRight","ArrowLeft"]),Gc=new Set(["F1","F2","F3","F4","F5","F6","F7","F8","F9","F10","F11","F12"]),Hv=Fc(Uc,aa,ia,Wc,Gc,Hc);var la=({key:n},e="vertical")=>(e==="vertical"?ia:aa).has(n);var ua=({autoHighlightFirstItem:n=!1,count:e,highlightedIndex:t,onActivate:r,onHighlight:o,onCloseMenu:s,onOpenMenu:i})=>{let a=(0,le.useRef)((t!=null?t:n)?0:-1),[,l]=(0,le.useState)(null),u=t!==void 0,c=(0,le.useCallback)(m=>{a.current=m,o==null||o(m),l({})},[o]),p=(0,le.useCallback)(m=>{m!==a.current&&(u||c(m))},[u,c]),d=(0,le.useRef)(!0),g=(0,le.useRef)(!1),S=m=>g.current=m,v=u?t:a.current,x=(0,le.useCallback)(m=>{let b=qc(e,m.key,a.current);b!==a.current&&p(b)},[e,p]),y=(0,le.useCallback)(m=>{la(m)?(m.preventDefault(),m.stopPropagation(),d.current=!0,x(m)):(m.key==="ArrowRight"||m.key==="Enter")&&sa(m.target,v)?i(v):m.key==="ArrowLeft"&&!oa(m.target)?s(v):m.key==="Enter"&&r&&r(v)},[v,x,r,s,i]),E=(0,le.useMemo)(()=>({onFocus:()=>{v===-1&&c(0)},onKeyDown:y,onMouseDownCapture:()=>{d.current=!1,S(!0)},onMouseMove:()=>{d.current&&(d.current=!1)},onMouseLeave:()=>{d.current=!0,S(!1),p(-1)}}),[v,p,x,r,s,i,c]);return{focusVisible:d.current?v:-1,controlledHighlighting:u,highlightedIndex:v,setHighlightedIndex:p,listProps:E,setIgnoreFocus:S}};function qc(n,e,t){return e==="ArrowUp"?t>0?t-1:t:t===null?0:t===n-1?t:t+1}var ht=M(require("react"));var to=n=>n.type===nr||!!n.props["data-group"],ca=n=>{let e=(0,ht.useCallback)(()=>{let o=(i,a="root",l={},u={})=>{let c=l[a]=[],p=0,d=!1;return ht.default.Children.forEach(i,g=>{if(g.type===ro)d=!0;else{let S=to(g),v=a==="root"?`${p}`:`${a}.${p}`,{props:{action:x,options:y}}=g,{childWithId:E,grandChildren:m}=s(g,v,S,d);c.push(E),m?o(m,v,l,u):u[v]={action:x,options:y},p+=1,d=!1}}),[l,u]},s=(i,a,l,u=!1)=>{let{props:{children:c}}=i;return{childWithId:ht.default.cloneElement(i,{hasSeparator:u,id:`${a}`,key:a,children:l?void 0:c}),grandChildren:l?c:void 0}};return o(n)},[n]),[t,r]=(0,ht.useMemo)(()=>e(),[e]);return[t,r]};var Ot=require("react/jsx-runtime"),pa="vuuMenuList",ro=()=>(0,Ot.jsx)("li",{className:"vuuMenuItem-divider"}),nr=()=>null,Qr=({children:n,idx:e,...t})=>(0,Ot.jsx)("div",{...t,children:n}),Qc=n=>n.props["data-icon"],da=({activatedByKeyboard:n,childMenuShowing:e=-1,children:t,className:r,highlightedIdx:o,id:s,isRoot:i,listItemProps:a,menuId:l,onHighlightMenuItem:u,onActivate:c,onCloseMenu:p,onOpenMenu:d,...g})=>{let S=(0,ha.useIdMemo)(s),v=(0,tt.useRef)(null),x=(0,tt.useMemo)(()=>new Map,[]),y=P=>{var C;let T=(C=v.current)==null?void 0:C.querySelector(`:scope > [data-idx='${P}']`);T!=null&&T.id&&(d==null||d(T.id))},E=P=>{var C;let T=(C=v.current)==null?void 0:C.querySelector(`:scope > [data-idx='${P}']`);T!=null&&T.id&&(c==null||c(T.id))},{focusVisible:m,highlightedIndex:b,listProps:w}=ua({count:tt.default.Children.count(t),highlightedIndex:o,onActivate:E,onHighlight:u,onOpenMenu:y,onCloseMenu:p}),f=e==-1?m:-1;return(0,tt.useLayoutEffect)(()=>{var P;e===-1&&n&&((P=v.current)==null||P.focus())},[n,e]),(0,Ot.jsx)("div",{...g,...w,"aria-activedescendant":(()=>b===void 0||b===-1?void 0:x.get(b))(),className:(0,no.default)(pa,r,{[`${pa}-childMenuShowing`]:e!==-1}),"data-root":i||void 0,id:`${S}-${l}`,ref:v,role:"menu",tabIndex:0,children:L()});function L(){let P={...a,role:"menuitem"},T=(k,V,A)=>V?[(0,Ot.jsx)("span",{className:"vuuIconContainer","data-icon":A},"icon")].concat(k):k;function C(k,V,A,U){var so;let{children:Z,className:K,"data-icon":q,id:J,hasSeparator:oe,label:fe,..._e}=V.props,Ne=to(V),ur=Ne&&e===A,Zr=ur?`${S}-${J}`:void 0;k.push((0,Ot.jsx)(Qr,{..._e,...P,...Kc(`${S}-${l}`,J,A,(so=V.key)!=null?so:J,b,f,K,oe),"aria-controls":Zr,"aria-haspopup":Ne||void 0,"aria-expanded":ur||void 0,children:T(Ne?fe:Z,U,q)}))}let O=[];if(t.length>0){let k=t.some(Qc);t.forEach((V,A)=>{C(O,V,A,k)})}return O}},Kc=(n,e,t,r,o,s,i,a)=>({id:`${n}-${e}`,key:r!=null?r:t,"data-idx":t,"data-highlighted":t===o||void 0,className:(0,no.default)("vuuMenuItem",i,{"vuuMenuItem-separator":a,focusVisible:s===t})});da.displayName="MenuList";var fa=da;var G=require("react");function ma(n){if(n){let e=n.dataset.idx;if(e)return parseInt(e,10);if(n.ariaPosInSet)return parseInt(n.ariaPosInSet,10)-1}}var oo=n=>n==null?void 0:n.closest("[data-idx],[aria-posinset]");var ga=(n,e,t)=>n.map((r,o)=>o===n.length-1?{...r,[t]:r[t]-e}:r),Jc=(n,e)=>ga(n,e,"left"),Xc=(n,e)=>ga(n,e,"top"),jc=(n,e)=>{let[t,r]=e.slice(-2),o=document.getElementById(`${n}-${r.id}`);if(o===null)throw Error(`useCascade.flipSides element with id ${r.id} not found`);let{width:s}=o.getBoundingClientRect();return e.map(i=>i===r?{...i,left:t.left-(s-2)}:i)},Yc=(n,e)=>{let[{left:t,top:r}]=e.slice(-1),{offsetWidth:o,offsetTop:s}=n;return{left:t+o,top:s+r}},or=n=>{let e=n.lastIndexOf("-");return e===-1?n:n.slice(e+1)},Kr=n=>{let e=or(n),t=e.lastIndexOf(".");return t>-1?e.slice(0,t):"root"},Zc=n=>{let e=0,t=n.indexOf(".",0);for(;t!==-1;)e+=1,t=n.indexOf(".",t+1);return e},ep=n=>({menuId:Kr(n.id),itemId:or(n.id),isGroup:n.ariaHasPopup==="true",isOpen:n.ariaExpanded==="true",level:Zc(n.id)}),ba=({id:n,onActivate:e,onMouseEnterItem:t,position:{x:r,y:o}})=>{let[,s]=(0,G.useState)({}),i=(0,G.useRef)([{id:"root",left:r,top:o}]),a=(0,G.useCallback)(m=>{i.current=m,s({})},[]),l=(0,G.useRef)(),u=(0,G.useRef)(),c=(0,G.useRef)({root:"no-popup"}),p=(0,G.useRef)(0),d=(0,G.useCallback)((m="root",b=null,w=null)=>{if(m==="root"&&b===null)a([{id:"root",left:r,top:o}]);else{c.current[m]="popup-open";let R=(w?w.ownerDocument:document).getElementById(`${n}-${m}-${b}`),{left:L,top:P}=Yc(R,i.current);a(i.current.concat({id:b,left:L,top:P}))}},[n,r,o,a]),g=(0,G.useCallback)(m=>{a(m==="root"?[]:i.current.slice(0,-1))},[a]),S=(0,G.useCallback)((m,b)=>{let w=i.current.slice(),{id:f}=w[w.length-1];for(;w.length>1&&!b.startsWith(f);){let R=Kr(f);w.pop(),c.current[f]="no-popup",c.current[R]="no-popup",{id:f}=w[w.length-1]}w.length<i.current.length&&a(w)},[a]),v=(0,G.useCallback)((m,b,w)=>{l.current&&clearTimeout(l.current),l.current=window.setTimeout(()=>{console.log(`scheduleOpen timed out opening ${b}`),S(m,b),c.current[m]="popup-open",c.current[b]="no-popup",d(m,b,w)},400)},[S,d]),x=(0,G.useCallback)((m,b,w)=>{console.log(`scheduleClose openMenuId ${m} menuId ${b} itemId ${w}`),c.current[m]="pending-close",u.current=window.setTimeout(()=>{S(b,w)},400)},[S]),y=(0,G.useCallback)(()=>{let{current:m}=i,[b]=m.slice(-1),w=document.getElementById(`${n}-${b.id}`);if(w){let{right:f,bottom:R}=w.getBoundingClientRect(),{clientHeight:L,clientWidth:P}=document.body;if(f>P){let T=m.length>1?jc(n,m):Jc(m,f-P);a(T)}else if(R>L){let T=Xc(m,R-L);a(T)}}},[n,a]),E=(0,G.useMemo)(()=>({onMouseEnter:m=>{let b=oo(m.target),{menuId:w,itemId:f,isGroup:R,isOpen:L,level:P}=ep(b),T=p.current===P,{current:{[w]:C}}=c;if(p.current=P,C==="no-popup"&&R)c.current[w]="popup-pending",v(w,f,b);else if(C==="popup-pending"&&!R)c.current[w]="no-popup",clearTimeout(l.current),l.current=void 0;else if(C==="popup-pending"&&R)clearTimeout(l.current),v(w,f,b);else if(C==="popup-open"){let[{id:O},{id:k}]=i.current.slice(-2);O===w&&c.current[k]!=="pending-close"&&T?(x(k,w,f),R&&!L&&v(w,f,b)):O===w&&R&&f!==k&&c.current[k]==="pending-close"?v(w,f,b):R?(S(w,f),v(w,f,b)):c.current[k]==="pending-close"&&T||S(w,f)}C==="pending-close"&&(l.current&&(clearTimeout(l.current),l.current=void 0),clearTimeout(u.current),u.current=void 0,c.current[w]="popup-open"),t(m,f)},onClick:m=>{let b=m.target,w=oo(b),f=ma(w);console.log(`list item click [${f}] hasPopup ${w.ariaHasPopup}`),w.ariaHasPopup==="true"?w.ariaExpanded!=="true"&&d(f):e(or(w.id))}}),[S,e,t,d,x,v]);return{closeMenu:g,handleRender:y,listItemProps:E,openMenu:d,openMenus:i.current}};var ya=require("react"),Sa=({containerClassName:n,isOpen:e,onClose:t})=>{(0,ya.useEffect)(()=>{let r;return e&&(r=o=>{o.target.closest(`.${n}`)===null&&(t==null||t("root"))},document.body.addEventListener("click",r,!0)),()=>{r&&document.body.removeEventListener("click",r,!0)}},[n,e,t])};var sr=require("react/jsx-runtime"),Ra=require("react"),tp=()=>{},Jr=({activatedByKeyboard:n,children:e,className:t,id:r,onClose:o=()=>{},position:s={x:0,y:0},style:i,...a})=>{let l=(0,Te.useRef)(o);l.current=o;let u=(0,wa.useIdMemo)(r),c=(0,Te.useRef)(tp),[p,d]=ca(e),g=(0,Te.useRef)(n),S=(0,Te.useCallback)(()=>{g.current=!1},[]),v=(0,Te.useCallback)(C=>{let{action:O,options:k}=d[C];c.current("root"),o(O,k)},[d,o]),{closeMenu:x,listItemProps:y,openMenu:E,openMenus:m,handleRender:b}=ba({id:u,onActivate:v,onMouseEnterItem:S,position:s});c.current=x,console.log({openMenus:m});let w=(0,Te.useCallback)(()=>{x(),o()},[x,o]);Sa({containerClassName:"vuuMenuList",onClose:w,isOpen:m.length>0});let f=C=>{let O=or(C),k=Kr(O);g.current=!0,E(k,O)},R=()=>{g.current=!0,x()},L=()=>{},P=m.length-1,T=C=>{if(C>=P)return-1;{let{id:O}=m[C+1],k=O.lastIndexOf(".");return parseInt(k===-1?O:O.slice(-k),10)}};return(0,Te.useEffect)(()=>()=>o==null?void 0:o(),[o]),(0,sr.jsx)(sr.Fragment,{children:m.map(({id:C,left:O,top:k},V)=>{let A=T(V);return(0,sr.jsx)(rr,{x:O,y:k,onRender:b,children:(0,Ra.createElement)(fa,{...a,activatedByKeyboard:g.current,childMenuShowing:A,className:t,id:u,menuId:C,isRoot:V===0,key:V,listItemProps:y,onActivate:v,onHighlightMenuItem:L,onCloseMenu:R,onOpenMenu:f,style:i},p[C])},V)})})};Jr.displayName="ContextMenu";var Vt=require("react"),Xr=require("react/jsx-runtime"),ir=(0,Vt.createContext)(null),rp=({children:n,context:e,menuActionHandler:t,menuBuilder:r})=>{let o=(0,Vt.useMemo)(()=>e!=null&&e.menuBuilders&&r?e.menuBuilders.concat(r):r?[r]:(e==null?void 0:e.menuBuilders)||[],[e,r]),s=(0,Vt.useCallback)((i,a)=>{var l;if(t!=null&&t(i,a)||(l=e==null?void 0:e.menuActionHandler)!=null&&l.call(e,i,a))return!0},[e,t]);return(0,Xr.jsx)(ir.Provider,{value:{menuActionHandler:s,menuBuilders:o},children:n})},np=({children:n,label:e,menuActionHandler:t,menuBuilder:r})=>(0,Xr.jsx)(ir.Consumer,{children:o=>(0,Xr.jsx)(rp,{context:o,label:e,menuActionHandler:t,menuBuilder:r,children:n})});var Ta=require("@vuu-ui/vuu-utils"),Pa=M(require("classnames")),lr=require("react");var xa=M(require("classnames")),xe=M(require("react")),At=M(require("react-dom"));var dt=!1,Re=[];function jr(n){if(n.key==="Esc"){if(Re.length)Ca();else if(dt){let e=document.body.querySelector(".vuuDialog");e&&At.default.unmountComponentAtNode(e)}}}function va(n){if(Re.length){let e=document.body.querySelectorAll(".vuuPopup");for(let t=0;t<e.length;t++)if(e[t].contains(n.target))return;Ca()}}function Ca(){if(Re.length){let n=document.body.querySelectorAll(".vuuPopup");for(let e=0;e<n.length;e++)At.default.unmountComponentAtNode(n[e]);Ea("*")}}function op(){dt===!1&&(dt=!0,window.addEventListener("keydown",jr,!0))}function sp(){dt&&(dt=!1,window.removeEventListener("keydown",jr,!0))}function ip(n){Re.indexOf(n)===-1&&(Re.push(n),dt===!1&&(window.addEventListener("keydown",jr,!0),window.addEventListener("click",va,!0)))}function Ea(n){if(Re.length){if(n==="*")Re.length=0;else{let e=Re.indexOf(n);e!==-1&&Re.splice(e,1)}Re.length===0&&dt===!1&&(window.removeEventListener("keydown",jr,!0),window.removeEventListener("click",va,!0))}}var ap=({children:n,position:e,style:t})=>{let r=(0,xa.default)("hwPopup","hwPopupContainer",e);return(0,xe.createElement)("div",{className:r,style:t},n)},lp=1,X=class{static showPopup({name:e="anon",group:t="all",position:r="",left:o=0,right:s="auto",top:i=0,width:a="auto",component:l}){if(!l)throw Error("PopupService showPopup, no component supplied");ip(e);let u=document.body.querySelector(".vuuPopup."+t);u===null&&(u=document.createElement("div"),u.className="vuuPopup "+t,document.body.appendChild(u));let c={width:a};_t((0,xe.createElement)(ap,{key:lp++,position:r,style:c},l),u,o,i,()=>{X.keepWithinThePage(u,s)})}static hidePopup(e="anon",t="all"){if(Re.indexOf(e)!==-1){Ea(e);let r=document.body.querySelector(`.vuuPopup.${t}`);r&&At.default.unmountComponentAtNode(r)}}static keepWithinThePage(e,t="auto"){let r=e.querySelector(".vuuPopupContainer > *");if(r){let{top:o,left:s,width:i,height:a,right:l}=r.getBoundingClientRect(),u=window.innerWidth,p=window.innerHeight-(o+a);p<0&&(r.style.top=Math.round(o)+p+"px");let d=u-(s+i);if(d<0&&(r.style.left=Math.round(s)+d+"px"),typeof t=="number"&&t!==l){let g=t-l;r.style.left=s+g+"px"}}}},ar=class{static showDialog(e){let t=".vuuDialog",r=e.props.onClose;op(),At.default.render(xe.default.cloneElement(e,{container:t,onClose:()=>{ar.closeDialog(),r&&r()}}),document.body.querySelector(t))}static closeDialog(){sp();let e=document.body.querySelector(".vuuDialog");e&&At.default.unmountComponentAtNode(e)}},up=n=>{let e=(0,xe.useRef)(),t=(0,xe.useRef)(null),r=(o,s)=>{let{name:i,group:a,depth:l,width:u}=o,c,p;if(e.current&&(window.clearTimeout(e.current),e.current=void 0),o.close===!0)X.hidePopup(i,a);else{let{position:d,children:g}=o,{left:S,top:v,width:x,bottom:y}=s;d==="below"?(c=S,p=y):d==="above"&&(c=S,p=v),e.current=window.setTimeout(()=>{X.showPopup({name:i,group:a,depth:l,position:d,left:c,top:p,width:u||x,component:g})},10)}};return(0,xe.useEffect)(()=>{if(t.current){let o=t.current.parentElement,s=o==null?void 0:o.getBoundingClientRect();s&&r(n,s)}return()=>{X.hidePopup(n.name,n.group)}},[n]),xe.default.createElement("div",{className:"popup-proxy",ref:t})};var Yr=require("react/jsx-runtime"),cp=n=>{let e=(0,lr.useContext)(ir),[t,r,o]=er(),s=(0,lr.useCallback)((a,l,u)=>{let c=[];for(let p of a)c=c.concat(p(l,u));return c},[]);return(0,lr.useCallback)((a,l,{ContextMenuProps:u,...c})=>{var d;a.stopPropagation(),a.preventDefault();let p=(d=e==null?void 0:e.menuBuilders)!=null?d:n?[n]:void 0;if(Array.isArray(p)&&p.length>0){let g=s(p,l,c);console.log({menuItemDescriptors:g}),g.length&&(e!=null&&e.menuActionHandler)&&(console.log(`showContextMenu ${l}`,{options:c}),hp(a,g,e.menuActionHandler,{...u,className:(0,Pa.default)(u==null?void 0:u.className,t,r),"data-mode":o}))}else console.warn("useContextMenu, no menuBuilders configured. These should be supplied via the ContextMenuProvider(s)")},[s,e==null?void 0:e.menuActionHandler,e==null?void 0:e.menuBuilders,o,r,n,t])},pp={},hp=(n,e,t,{position:r,...o}=pp)=>{let s=u=>{let c=(p,d)=>(0,Ta.isGroupMenuItemDescriptor)(p)?(0,Yr.jsx)(nr,{label:p.label,children:p.children.map(c)},d):(0,Yr.jsx)(Qr,{action:p.action,"data-icon":p.icon,options:p.options,children:p.label},d);return u.map(c)},i=(u,c)=>{var p;u&&(t(u,c),X.hidePopup()),(p=o==null?void 0:o.onClose)==null||p.call(o,u)},a=r!=null?r:{x:n.clientX,y:n.clientY},l=(0,Yr.jsx)(Jr,{...o,onClose:i,position:a,children:s(e)});X.showPopup({left:0,top:0,component:l})};
19
+ Wrap elements with a single container`),n)},Ji=({applyThemeClasses:n=!1,children:e,theme:t,themeMode:r,density:o})=>{var d,g,y;let{density:i,themeMode:s,theme:a}=(0,Ne.useContext)(Zn),l=(d=o!=null?o:i)!=null?d:Oc,u=(g=r!=null?r:s)!=null?g:Ac,c=(y=t!=null?t:a)!=null?y:Vc,p=n?Nc(e,c,u,l):e;return(0,Xi.jsx)(Zn.Provider,{value:{themeMode:u,density:l,theme:c},children:p})};Ji.displayName="ThemeProvider";var ra=require("@vuu-ui/vuu-utils");var Bc=require("@salt-ds/core"),Fc=M(require("classnames")),zc=require("react");var ji=require("react/jsx-runtime");var $c=M(require("classnames")),Yi=require("react");var Zi=require("react/jsx-runtime");var ea=require("react/jsx-runtime");var eo=require("react"),ta=require("react/jsx-runtime");var na=require("react/jsx-runtime"),{error:bv}=(0,ra.logger)("Shell");var ro=require("react"),Wc=require("react/jsx-runtime"),Uc={},Rv=(0,ro.createContext)(Uc);var sa=M(require("classnames")),or=function({children:e,x:t=0,y:r=0,onRender:o}){let[i,s,a]=rr(),l=(0,nr.useMemo)(()=>nn({className:(0,sa.default)(i,s),dataMode:a}),[]);return(0,nr.useLayoutEffect)(()=>{Bt(e,l,t,r,o)},[e,o,l,t,r]),(0,nr.useLayoutEffect)(()=>()=>{var u;l&&(oa.unmountComponentAtNode(l),l.classList.contains("vuuPopup")&&((u=l.parentElement)==null||u.removeChild(l)))},[l]),null};var Gc=n=>{let e=getComputedStyle(document.body).getPropertyValue("--installed-themes");document.body.style.setProperty("--installed-themes",`${e} ${n}`)};var et=require("react/jsx-runtime"),no="vuuDialog",qc=({children:n,className:e,isOpen:t=!1,onClose:r,title:o,...i})=>{let s=(0,tt.useRef)(null),[a]=(0,tt.useState)(0),[l]=(0,tt.useState)(0),u=(0,tt.useCallback)(()=>{r==null||r()},[r]),c=(0,tt.useCallback)(()=>{},[]);return t?(0,et.jsx)(or,{onRender:c,x:a,y:l,children:(0,et.jsx)(Vt.Scrim,{className:`${no}-scrim`,open:t,children:(0,et.jsxs)("div",{...i,className:(0,aa.default)(no,e),ref:s,children:[(0,et.jsxs)(Vt.Toolbar,{className:`${no}-header`,children:[(0,et.jsx)(ia.Text,{children:o}),(0,et.jsx)(Vt.ToolbarButton,{onClick:u,"data-align-end":!0,"data-icon":"close"},"close")]}),n]})})}):null};var Ca=require("@salt-ds/core"),Pe=require("react");var rt=M(require("react")),io=M(require("classnames")),ga=require("@salt-ds/core");var ue=require("react");var la=n=>n.closest("[data-root='true']")!==null,ua=(n,e)=>{var t;return n.ariaHasPopup==="true"&&((t=n.dataset)==null?void 0:t.idx)===`${e}`||n.querySelector(`:scope > [data-idx='${e}'][aria-haspopup='true']`)!==null};function Qc(n,...e){let t=new Set(n);for(let r of e)for(let o of r)t.add(o);return t}var Kc="Enter";var Jc="Delete",Xc=new Set([Kc,Jc]),jc=new Set(["Tab"]),Yc=new Set(["ArrowRight","ArrowLeft"]),ca=new Set(["Home","End","ArrowDown","ArrowUp"]),pa=new Set(["Home","End","ArrowRight","ArrowLeft"]),Zc=new Set(["F1","F2","F3","F4","F5","F6","F7","F8","F9","F10","F11","F12"]),Yv=Qc(Xc,pa,ca,Yc,Zc,jc);var ha=({key:n},e="vertical")=>(e==="vertical"?ca:pa).has(n);var da=({autoHighlightFirstItem:n=!1,count:e,highlightedIndex:t,onActivate:r,onHighlight:o,onCloseMenu:i,onOpenMenu:s})=>{let a=(0,ue.useRef)((t!=null?t:n)?0:-1),[,l]=(0,ue.useState)(null),u=t!==void 0,c=(0,ue.useCallback)(m=>{a.current=m,o==null||o(m),l({})},[o]),p=(0,ue.useCallback)(m=>{m!==a.current&&(u||c(m))},[u,c]),d=(0,ue.useRef)(!0),g=(0,ue.useRef)(!1),y=m=>g.current=m,v=u?t:a.current,x=(0,ue.useCallback)(m=>{let b=ep(e,m.key,a.current);b!==a.current&&p(b)},[e,p]),S=(0,ue.useCallback)(m=>{ha(m)?(m.preventDefault(),m.stopPropagation(),d.current=!0,x(m)):(m.key==="ArrowRight"||m.key==="Enter")&&ua(m.target,v)?s(v):m.key==="ArrowLeft"&&!la(m.target)?i(v):m.key==="Enter"&&r&&r(v)},[v,x,r,i,s]),E=(0,ue.useMemo)(()=>({onFocus:()=>{v===-1&&c(0)},onKeyDown:S,onMouseDownCapture:()=>{d.current=!1,y(!0)},onMouseMove:()=>{d.current&&(d.current=!1)},onMouseLeave:()=>{d.current=!0,y(!1),p(-1)}}),[v,p,x,r,i,s,c]);return{focusVisible:d.current?v:-1,controlledHighlighting:u,highlightedIndex:v,setHighlightedIndex:p,listProps:E,setIgnoreFocus:y}};function ep(n,e,t){return e==="ArrowUp"?t>0?t-1:t:t===null?0:t===n-1?t:t+1}var dt=M(require("react"));var oo=n=>n.type===sr||!!n.props["data-group"],fa=n=>{let e=(0,dt.useCallback)(()=>{let o=(s,a="root",l={},u={})=>{let c=l[a]=[],p=0,d=!1;return dt.default.Children.forEach(s,g=>{if(g.type===so)d=!0;else{let y=oo(g),v=a==="root"?`${p}`:`${a}.${p}`,{props:{action:x,options:S}}=g,{childWithId:E,grandChildren:m}=i(g,v,y,d);c.push(E),m?o(m,v,l,u):u[v]={action:x,options:S},p+=1,d=!1}}),[l,u]},i=(s,a,l,u=!1)=>{let{props:{children:c}}=s;return{childWithId:dt.default.cloneElement(s,{hasSeparator:u,id:`${a}`,key:a,children:l?void 0:c}),grandChildren:l?c:void 0}};return o(n)},[n]),[t,r]=(0,dt.useMemo)(()=>e(),[e]);return[t,r]};var At=require("react/jsx-runtime"),ma="vuuMenuList",so=()=>(0,At.jsx)("li",{className:"vuuMenuItem-divider"}),sr=()=>null,Xr=({children:n,idx:e,...t})=>(0,At.jsx)("div",{...t,children:n}),tp=n=>n.props["data-icon"],ba=({activatedByKeyboard:n,childMenuShowing:e=-1,children:t,className:r,highlightedIdx:o,id:i,isRoot:s,listItemProps:a,menuId:l,onHighlightMenuItem:u,onActivate:c,onCloseMenu:p,onOpenMenu:d,...g})=>{let y=(0,ga.useIdMemo)(i),v=(0,rt.useRef)(null),x=(0,rt.useMemo)(()=>new Map,[]),S=P=>{var C;let T=(C=v.current)==null?void 0:C.querySelector(`:scope > [data-idx='${P}']`);T!=null&&T.id&&(d==null||d(T.id))},E=P=>{var C;let T=(C=v.current)==null?void 0:C.querySelector(`:scope > [data-idx='${P}']`);T!=null&&T.id&&(c==null||c(T.id))},{focusVisible:m,highlightedIndex:b,listProps:w}=da({count:rt.default.Children.count(t),highlightedIndex:o,onActivate:E,onHighlight:u,onOpenMenu:S,onCloseMenu:p}),f=e==-1?m:-1;return(0,rt.useLayoutEffect)(()=>{var P;e===-1&&n&&((P=v.current)==null||P.focus())},[n,e]),(0,At.jsx)("div",{...g,...w,"aria-activedescendant":(()=>b===void 0||b===-1?void 0:x.get(b))(),className:(0,io.default)(ma,r,{[`${ma}-childMenuShowing`]:e!==-1}),"data-root":s||void 0,id:`${y}-${l}`,ref:v,role:"menu",tabIndex:0,children:L()});function L(){let P={...a,role:"menuitem"},T=(k,V,A)=>V?[(0,At.jsx)("span",{className:"vuuIconContainer","data-icon":A},"icon")].concat(k):k;function C(k,V,A,H){var hr;let{children:se,className:K,"data-icon":q,id:J,hasSeparator:ce,label:pe,...Me}=V.props,Be=oo(V),pr=Be&&e===A,rn=pr?`${y}-${J}`:void 0;k.push((0,At.jsx)(Xr,{...Me,...P,...rp(`${y}-${l}`,J,A,(hr=V.key)!=null?hr:J,b,f,K,ce),"aria-controls":rn,"aria-haspopup":Be||void 0,"aria-expanded":pr||void 0,children:T(Be?pe:se,H,q)}))}let O=[];if(t.length>0){let k=t.some(tp);t.forEach((V,A)=>{C(O,V,A,k)})}return O}},rp=(n,e,t,r,o,i,s,a)=>({id:`${n}-${e}`,key:r!=null?r:t,"data-idx":t,"data-highlighted":t===o||void 0,className:(0,io.default)("vuuMenuItem",s,{"vuuMenuItem-separator":a,focusVisible:i===t})});ba.displayName="MenuList";var ya=ba;var G=require("react");function Sa(n){if(n){let e=n.dataset.idx;if(e)return parseInt(e,10);if(n.ariaPosInSet)return parseInt(n.ariaPosInSet,10)-1}}var ao=n=>n==null?void 0:n.closest("[data-idx],[aria-posinset]");var wa=(n,e,t)=>n.map((r,o)=>o===n.length-1?{...r,[t]:r[t]-e}:r),np=(n,e)=>wa(n,e,"left"),op=(n,e)=>wa(n,e,"top"),sp=(n,e)=>{let[t,r]=e.slice(-2),o=document.getElementById(`${n}-${r.id}`);if(o===null)throw Error(`useCascade.flipSides element with id ${r.id} not found`);let{width:i}=o.getBoundingClientRect();return e.map(s=>s===r?{...s,left:t.left-(i-2)}:s)},ip=(n,e)=>{let[{left:t,top:r}]=e.slice(-1),{offsetWidth:o,offsetTop:i}=n;return{left:t+o,top:i+r}},ir=n=>{let e=n.lastIndexOf("-");return e===-1?n:n.slice(e+1)},jr=n=>{let e=ir(n),t=e.lastIndexOf(".");return t>-1?e.slice(0,t):"root"},ap=n=>{let e=0,t=n.indexOf(".",0);for(;t!==-1;)e+=1,t=n.indexOf(".",t+1);return e},lp=n=>({menuId:jr(n.id),itemId:ir(n.id),isGroup:n.ariaHasPopup==="true",isOpen:n.ariaExpanded==="true",level:ap(n.id)}),Ra=({id:n,onActivate:e,onMouseEnterItem:t,position:{x:r,y:o}})=>{let[,i]=(0,G.useState)({}),s=(0,G.useRef)([{id:"root",left:r,top:o}]),a=(0,G.useCallback)(m=>{s.current=m,i({})},[]),l=(0,G.useRef)(),u=(0,G.useRef)(),c=(0,G.useRef)({root:"no-popup"}),p=(0,G.useRef)(0),d=(0,G.useCallback)((m="root",b=null,w=null)=>{if(m==="root"&&b===null)a([{id:"root",left:r,top:o}]);else{c.current[m]="popup-open";let R=(w?w.ownerDocument:document).getElementById(`${n}-${m}-${b}`),{left:L,top:P}=ip(R,s.current);a(s.current.concat({id:b,left:L,top:P}))}},[n,r,o,a]),g=(0,G.useCallback)(m=>{a(m==="root"?[]:s.current.slice(0,-1))},[a]),y=(0,G.useCallback)((m,b)=>{let w=s.current.slice(),{id:f}=w[w.length-1];for(;w.length>1&&!b.startsWith(f);){let R=jr(f);w.pop(),c.current[f]="no-popup",c.current[R]="no-popup",{id:f}=w[w.length-1]}w.length<s.current.length&&a(w)},[a]),v=(0,G.useCallback)((m,b,w)=>{l.current&&clearTimeout(l.current),l.current=window.setTimeout(()=>{console.log(`scheduleOpen timed out opening ${b}`),y(m,b),c.current[m]="popup-open",c.current[b]="no-popup",d(m,b,w)},400)},[y,d]),x=(0,G.useCallback)((m,b,w)=>{console.log(`scheduleClose openMenuId ${m} menuId ${b} itemId ${w}`),c.current[m]="pending-close",u.current=window.setTimeout(()=>{y(b,w)},400)},[y]),S=(0,G.useCallback)(()=>{let{current:m}=s,[b]=m.slice(-1),w=document.getElementById(`${n}-${b.id}`);if(w){let{right:f,bottom:R}=w.getBoundingClientRect(),{clientHeight:L,clientWidth:P}=document.body;if(f>P){let T=m.length>1?sp(n,m):np(m,f-P);a(T)}else if(R>L){let T=op(m,R-L);a(T)}}},[n,a]),E=(0,G.useMemo)(()=>({onMouseEnter:m=>{let b=ao(m.target),{menuId:w,itemId:f,isGroup:R,isOpen:L,level:P}=lp(b),T=p.current===P,{current:{[w]:C}}=c;if(p.current=P,C==="no-popup"&&R)c.current[w]="popup-pending",v(w,f,b);else if(C==="popup-pending"&&!R)c.current[w]="no-popup",clearTimeout(l.current),l.current=void 0;else if(C==="popup-pending"&&R)clearTimeout(l.current),v(w,f,b);else if(C==="popup-open"){let[{id:O},{id:k}]=s.current.slice(-2);O===w&&c.current[k]!=="pending-close"&&T?(x(k,w,f),R&&!L&&v(w,f,b)):O===w&&R&&f!==k&&c.current[k]==="pending-close"?v(w,f,b):R?(y(w,f),v(w,f,b)):c.current[k]==="pending-close"&&T||y(w,f)}C==="pending-close"&&(l.current&&(clearTimeout(l.current),l.current=void 0),clearTimeout(u.current),u.current=void 0,c.current[w]="popup-open"),t(m,f)},onClick:m=>{let b=m.target,w=ao(b),f=Sa(w);console.log(`list item click [${f}] hasPopup ${w.ariaHasPopup}`),w.ariaHasPopup==="true"?w.ariaExpanded!=="true"&&d(f):e(ir(w.id))}}),[y,e,t,d,x,v]);return{closeMenu:g,handleRender:S,listItemProps:E,openMenu:d,openMenus:s.current}};var xa=require("react"),va=({containerClassName:n,isOpen:e,onClose:t})=>{(0,xa.useEffect)(()=>{let r;return e&&(r=o=>{o.target.closest(`.${n}`)===null&&(t==null||t("root"))},document.body.addEventListener("click",r,!0)),()=>{r&&document.body.removeEventListener("click",r,!0)}},[n,e,t])};var ar=require("react/jsx-runtime"),Ea=require("react"),up=()=>{},Yr=({activatedByKeyboard:n,children:e,className:t,id:r,onClose:o=()=>{},position:i={x:0,y:0},style:s,...a})=>{let l=(0,Pe.useRef)(o);l.current=o;let u=(0,Ca.useIdMemo)(r),c=(0,Pe.useRef)(up),[p,d]=fa(e),g=(0,Pe.useRef)(n),y=(0,Pe.useCallback)(()=>{g.current=!1},[]),v=(0,Pe.useCallback)(C=>{let{action:O,options:k}=d[C];c.current("root"),o(O,k)},[d,o]),{closeMenu:x,listItemProps:S,openMenu:E,openMenus:m,handleRender:b}=Ra({id:u,onActivate:v,onMouseEnterItem:y,position:i});c.current=x,console.log({openMenus:m});let w=(0,Pe.useCallback)(()=>{x(),o()},[x,o]);va({containerClassName:"vuuMenuList",onClose:w,isOpen:m.length>0});let f=C=>{let O=ir(C),k=jr(O);g.current=!0,E(k,O)},R=()=>{g.current=!0,x()},L=()=>{},P=m.length-1,T=C=>{if(C>=P)return-1;{let{id:O}=m[C+1],k=O.lastIndexOf(".");return parseInt(k===-1?O:O.slice(-k),10)}};return(0,Pe.useEffect)(()=>()=>o==null?void 0:o(),[o]),(0,ar.jsx)(ar.Fragment,{children:m.map(({id:C,left:O,top:k},V)=>{let A=T(V);return(0,ar.jsx)(or,{x:O,y:k,onRender:b,children:(0,Ea.createElement)(ya,{...a,activatedByKeyboard:g.current,childMenuShowing:A,className:t,id:u,menuId:C,isRoot:V===0,key:V,listItemProps:S,onActivate:v,onHighlightMenuItem:L,onCloseMenu:R,onOpenMenu:f,style:s},p[C])},V)})})};Yr.displayName="ContextMenu";var _t=require("react"),Zr=require("react/jsx-runtime"),lr=(0,_t.createContext)(null),cp=({children:n,context:e,menuActionHandler:t,menuBuilder:r})=>{let o=(0,_t.useMemo)(()=>e!=null&&e.menuBuilders&&r?e.menuBuilders.concat(r):r?[r]:(e==null?void 0:e.menuBuilders)||[],[e,r]),i=(0,_t.useCallback)((s,a)=>{var l;if(t!=null&&t(s,a)||(l=e==null?void 0:e.menuActionHandler)!=null&&l.call(e,s,a))return!0},[e,t]);return(0,Zr.jsx)(lr.Provider,{value:{menuActionHandler:i,menuBuilders:o},children:n})},pp=({children:n,label:e,menuActionHandler:t,menuBuilder:r})=>(0,Zr.jsx)(lr.Consumer,{children:o=>(0,Zr.jsx)(cp,{context:o,label:e,menuActionHandler:t,menuBuilder:r,children:n})});var La=require("@vuu-ui/vuu-utils"),ka=M(require("classnames")),cr=require("react");var Ta=M(require("classnames")),ve=M(require("react")),Nt=M(require("react-dom"));var ft=!1,xe=[];function en(n){if(n.key==="Esc"){if(xe.length)Ma();else if(ft){let e=document.body.querySelector(".vuuDialog");e&&Nt.default.unmountComponentAtNode(e)}}}function Pa(n){if(xe.length){let e=document.body.querySelectorAll(".vuuPopup");for(let t=0;t<e.length;t++)if(e[t].contains(n.target))return;Ma()}}function Ma(){if(xe.length){let n=document.body.querySelectorAll(".vuuPopup");for(let e=0;e<n.length;e++)Nt.default.unmountComponentAtNode(n[e]);Da("*")}}function hp(){ft===!1&&(ft=!0,window.addEventListener("keydown",en,!0))}function dp(){ft&&(ft=!1,window.removeEventListener("keydown",en,!0))}function fp(n){xe.indexOf(n)===-1&&(xe.push(n),ft===!1&&(window.addEventListener("keydown",en,!0),window.addEventListener("click",Pa,!0)))}function Da(n){if(xe.length){if(n==="*")xe.length=0;else{let e=xe.indexOf(n);e!==-1&&xe.splice(e,1)}xe.length===0&&ft===!1&&(window.removeEventListener("keydown",en,!0),window.removeEventListener("click",Pa,!0))}}var mp=({children:n,position:e,style:t})=>{let r=(0,Ta.default)("hwPopup","hwPopupContainer",e);return(0,ve.createElement)("div",{className:r,style:t},n)},gp=1,X=class{static showPopup({name:e="anon",group:t="all",position:r="",left:o=0,right:i="auto",top:s=0,width:a="auto",component:l}){if(!l)throw Error("PopupService showPopup, no component supplied");fp(e);let u=document.body.querySelector(".vuuPopup."+t);u===null&&(u=document.createElement("div"),u.className="vuuPopup "+t,document.body.appendChild(u));let c={width:a};Bt((0,ve.createElement)(mp,{key:gp++,position:r,style:c},l),u,o,s,()=>{X.keepWithinThePage(u,i)})}static hidePopup(e="anon",t="all"){if(xe.indexOf(e)!==-1){Da(e);let r=document.body.querySelector(`.vuuPopup.${t}`);r&&Nt.default.unmountComponentAtNode(r)}}static keepWithinThePage(e,t="auto"){let r=e.querySelector(".vuuPopupContainer > *");if(r){let{top:o,left:i,width:s,height:a,right:l}=r.getBoundingClientRect(),u=window.innerWidth,p=window.innerHeight-(o+a);p<0&&(r.style.top=Math.round(o)+p+"px");let d=u-(i+s);if(d<0&&(r.style.left=Math.round(i)+d+"px"),typeof t=="number"&&t!==l){let g=t-l;r.style.left=i+g+"px"}}}},ur=class{static showDialog(e){let t=".vuuDialog",r=e.props.onClose;hp(),Nt.default.render(ve.default.cloneElement(e,{container:t,onClose:()=>{ur.closeDialog(),r&&r()}}),document.body.querySelector(t))}static closeDialog(){dp();let e=document.body.querySelector(".vuuDialog");e&&Nt.default.unmountComponentAtNode(e)}},bp=n=>{let e=(0,ve.useRef)(),t=(0,ve.useRef)(null),r=(o,i)=>{let{name:s,group:a,depth:l,width:u}=o,c,p;if(e.current&&(window.clearTimeout(e.current),e.current=void 0),o.close===!0)X.hidePopup(s,a);else{let{position:d,children:g}=o,{left:y,top:v,width:x,bottom:S}=i;d==="below"?(c=y,p=S):d==="above"&&(c=y,p=v),e.current=window.setTimeout(()=>{X.showPopup({name:s,group:a,depth:l,position:d,left:c,top:p,width:u||x,component:g})},10)}};return(0,ve.useEffect)(()=>{if(t.current){let o=t.current.parentElement,i=o==null?void 0:o.getBoundingClientRect();i&&r(n,i)}return()=>{X.hidePopup(n.name,n.group)}},[n]),ve.default.createElement("div",{className:"popup-proxy",ref:t})};var tn=require("react/jsx-runtime"),lo=(n,e)=>{let t=(0,cr.useContext)(lr),[r,o,i]=rr(),s=(0,cr.useCallback)((l,u,c)=>{let p=[];for(let d of l)p=p.concat(d(u,c));return p},[]);return(0,cr.useCallback)((l,u,{ContextMenuProps:c,...p})=>{var g;l.stopPropagation(),l.preventDefault();let d=(g=t==null?void 0:t.menuBuilders)!=null?g:n?[n]:void 0;if(Array.isArray(d)&&d.length>0){let y=s(d,u,p);console.log({menuItemDescriptors:y});let v=e!=null?e:t==null?void 0:t.menuActionHandler;y.length&&v&&(console.log(`showContextMenu ${u}`,{options:p}),Sp(l,y,v,{...c,className:(0,ka.default)(c==null?void 0:c.className,r,o),"data-mode":i}))}else console.warn("useContextMenu, no menuBuilders configured. These should be supplied via the ContextMenuProvider(s)")},[s,t==null?void 0:t.menuActionHandler,t==null?void 0:t.menuBuilders,i,o,e,n,r])},yp={},Sp=(n,e,t,{position:r,...o}=yp)=>{let i=u=>{let c=(p,d)=>(0,La.isGroupMenuItemDescriptor)(p)?(0,tn.jsx)(sr,{label:p.label,children:p.children.map(c)},d):(0,tn.jsx)(Xr,{action:p.action,"data-icon":p.icon,options:p.options,children:p.label},d);return u.map(c)},s=(u,c)=>{var p;u&&(t(u,c),X.hidePopup()),(p=o==null?void 0:o.onClose)==null||p.call(o,u)},a=r!=null?r:{x:n.clientX,y:n.clientY},l=(0,tn.jsx)(Yr,{...o,onClose:s,position:a,children:i(e)});X.showPopup({left:0,top:0,component:l})};var mt=require("react");var Oa=M(require("classnames"));var Va=require("react/jsx-runtime"),Ia="vuuPopupMenu",wp=n=>{if(n){let{bottom:e,left:t}=n.getBoundingClientRect();return{x:t,y:e+6}}},Rp=({className:n,menuActionHandler:e,menuBuilder:t,menuLocation:r="header",...o})=>{let i=(0,mt.useRef)(null),[s,a]=(0,mt.useState)(!1),l=lo(t,e),u=(0,mt.useCallback)(()=>{a(!1)},[]),c=(0,mt.useCallback)(p=>{a(!0),l(p,r,{ContextMenuProps:{onClose:u,position:wp(i.current)}})},[u,r,l]);return(0,Va.jsx)("span",{...o,className:(0,Oa.default)(Ia,n,{[`${Ia}-open`]:s}),"data-icon":"more-vert",onClick:c,ref:i})};
20
20
  //# sourceMappingURL=index.js.map