@vuu-ui/vuu-table 0.8.7 → 0.8.8
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 +4 -3
- package/cjs/index.js.map +4 -4
- package/esm/index.js +4 -3
- package/esm/index.js.map +4 -4
- package/index.css +1 -1
- package/index.css.map +3 -3
- package/package.json +7 -7
- package/types/index.d.ts +1 -0
- package/types/table/dataTableTypes.d.ts +3 -2
- package/types/table-next/HeaderCell.d.ts +1 -1
- package/types/table-next/column-resizing/ColumnResizer.d.ts +8 -0
- package/types/table-next/column-resizing/index.d.ts +2 -0
- package/types/table-next/column-resizing/useTableColumnResize.d.ts +18 -0
- package/types/table-next/context-menu/buildContextMenuDescriptors.d.ts +4 -0
- package/types/table-next/context-menu/index.d.ts +2 -0
- package/types/table-next/context-menu/useTableContextMenu.d.ts +16 -0
- package/types/table-next/index.d.ts +1 -0
- package/types/table-next/table-config.d.ts +25 -0
- package/types/table-next/useTableModel.d.ts +15 -6
- package/types/table-next/useTableNext.d.ts +4 -2
package/esm/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
var _o=(n,e,t)=>{if(!e.has(n))throw TypeError("Cannot "+t)};var Se=(n,e,t)=>(_o(n,e,"read from private field"),t?t.call(n):e.get(n)),Go=(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)},sr=(n,e,t,r)=>(_o(n,e,"write to private field"),r?r.call(n,t):e.set(n,t),t);import{useCallback as ir,useRef as Rc}from"react";import{jsx as Mc}from"react/jsx-runtime";var Uo=()=>{},Dc="vuuColumnResizer",at=({onDrag:n,onDragEnd:e=Uo,onDragStart:t=Uo})=>{let r=Rc(0),o=ir(l=>{l.stopPropagation&&l.stopPropagation(),l.preventDefault&&l.preventDefault();let a=Math.round(l.clientX),c=a-r.current;r.current=a,c!==0&&n(l,c)},[n]),s=ir(l=>{window.removeEventListener("mouseup",s),window.removeEventListener("mousemove",o),e(l)},[e,o]),i=ir(l=>{t(l),r.current=Math.round(l.clientX),window.addEventListener("mouseup",s),window.addEventListener("mousemove",o),l.stopPropagation&&l.stopPropagation(),l.preventDefault&&l.preventDefault()},[t,o,s]);return Mc("div",{className:Dc,"data-align":"end",onMouseDown:i})};import{isNumericColumn as Pc}from"@vuu-ui/vuu-utils";var mn=n=>(e,t)=>{let r=[];if(n===void 0)return r;if(e==="header"||e==="column-menu")r.push(...Lc(t,n)),r.push(...Ac(t,n)),r.push(...kc(t,n)),r.push(...Ic(t)),r.push({action:"column-settings",icon:"cog",label:"Column Settings",options:t}),r.push({action:"table-settings",icon:"cog",label:"DataGrid Settings",options:t});else if(e==="filter"){let{column:o,filter:s}=t,i=(s==null?void 0:s.column)===(o==null?void 0:o.name);r.push({label:"Edit filter",action:"filter-edit",options:t}),r.push({label:"Remove filter",action:"filter-remove-column",options:t}),o&&!i&&r.push({label:"Remove all filters",action:"remove-filters",options:t})}return r};function Lc(n,{sort:{sortDefs:e}}){let{column:t}=n,r=[];if(t===void 0)return r;let o=e.length>0;return t.sorted==="A"?r.push({label:"Reverse Sort (DSC)",action:"sort-dsc",options:n}):t.sorted==="D"?r.push({label:"Reverse Sort (ASC)",action:"sort-asc",options:n}):typeof t.sorted=="number"?(t.sorted>0?r.push({label:"Reverse Sort (DSC)",action:"sort-add-dsc",options:n}):r.push({label:"Reverse Sort (ASC)",action:"sort-add-asc",options:n}),o&&Math.abs(t.sorted)<e.length&&r.push({label:"Remove from sort",action:"sort-remove",options:n}),r.push({label:"New Sort",children:[{label:"Ascending",action:"sort-asc",options:n},{label:"Descending",action:"sort-dsc",options:n}]})):o?(r.push({label:"Add to sort",children:[{label:"Ascending",action:"sort-add-asc",options:n},{label:"Descending",action:"sort-add-dsc",options:n}]}),r.push({label:"New Sort",children:[{label:"Ascending",action:"sort-asc",options:n},{label:"Descending",action:"sort-dsc",options:n}]})):r.push({label:"Sort",children:[{label:"Ascending",action:"sort-asc",options:n},{label:"Descending",action:"sort-dsc",options:n}]}),r}function kc(n,e){let{column:t}=n;if(t===void 0||e.groupBy.length===0)return[];let{name:r,label:o=r}=t;return[{label:`Aggregate ${o}`,children:[{label:"Count",action:"agg-count",options:n},{label:"Distinct",action:"agg-distinct",options:n}].concat(Pc(t)?[{label:"Sum",action:"agg-sum",options:n},{label:"Avg",action:"agg-avg",options:n},{label:"High",action:"agg-high",options:n},{label:"Low",action:"agg-low",options:n}]:[])}]}var ur=(n,e)=>({label:`Pin ${e}`,action:`column-pin-${e}`,options:n}),lr=n=>ur(n,"left"),ar=n=>ur(n,"floating"),cr=n=>ur(n,"right");function Ic(n){let{column:e}=n;if(e===void 0)return[];let{pin:t}=e,r=[{label:"Hide column",action:"column-hide",options:n},{label:"Remove column",action:"column-remove",options:n}];return t===void 0?r.push({label:"Pin column",children:[lr(n),ar(n),cr(n)]}):t==="left"?r.push({label:"Unpin column",action:"column-unpin",options:n},{label:"Pin column",children:[ar(n),cr(n)]}):t==="right"?r.push({label:"Unpin column",action:"column-unpin",options:n},{label:"Pin column",children:[lr(n),ar(n)]}):t==="floating"&&r.push({label:"Unpin column",action:"column-unpin",options:n},{label:"Pin column",children:[lr(n),cr(n)]}),r}function Ac(n,{groupBy:e}){let{column:t}=n,r=[];if(t===void 0)return r;let{name:o,label:s=o}=t;return e.length===0?r.push({label:`Group by ${s}`,action:"group",options:n}):r.push({label:`Add ${s} to group by`,action:"group-add",options:n}),r}import{removeColumnFromFilter as Oc}from"@vuu-ui/vuu-utils";import{addGroupColumn as Xo,addSortColumn as Qo,AggregationType as Hc,setAggregations as ct,setSortColumn as Zo}from"@vuu-ui/vuu-utils";var Nc=(n,e)=>{if(n.filterStruct&&e){let[t,r]=Oc(e,n.filterStruct);return{filter:r,filterStruct:t}}else return n},{Average:zc,Count:Fc,Distinct:$c,High:Vc,Low:Bc,Sum:Kc}=Hc,hn=({dataSource:n,onPersistentColumnOperation:e})=>r=>{let o=r.options;if(o.column&&n){let{column:s}=o;switch(r.menuId){case"sort-asc":return n.sort=Zo(n.sort,s,"A"),!0;case"sort-dsc":return n.sort=Zo(n.sort,s,"D"),!0;case"sort-add-asc":return n.sort=Qo(n.sort,s,"A"),!0;case"sort-add-dsc":return n.sort=Qo(n.sort,s,"D"),!0;case"group":return n.groupBy=Xo(n.groupBy,s),!0;case"group-add":return n.groupBy=Xo(n.groupBy,s),!0;case"column-hide":return e({type:"hideColumns",columns:[s]}),!0;case"column-remove":return n.columns=n.columns.filter(i=>i!==s.name),!0;case"filter-remove-column":return n.filter=Nc(n.filter,s),!0;case"remove-filters":return n.filter={filter:""},!0;case"agg-avg":return n.aggregations=ct(n.aggregations,s,zc),!0;case"agg-high":return n.aggregations=ct(n.aggregations,s,Vc),!0;case"agg-low":return n.aggregations=ct(n.aggregations,s,Bc),!0;case"agg-count":return n.aggregations=ct(n.aggregations,s,Fc),!0;case"agg-distinct":return n.aggregations=ct(n.aggregations,s,$c),!0;case"agg-sum":return n.aggregations=ct(n.aggregations,s,Kc),!0;case"column-pin-floating":return e({type:"pinColumn",column:s,pin:"floating"}),!0;case"column-pin-left":return e({type:"pinColumn",column:s,pin:"left"}),!0;case"column-pin-right":return e({type:"pinColumn",column:s,pin:"right"}),!0;case"column-unpin":return e({type:"pinColumn",column:s,pin:void 0}),!0;case"column-settings":return e({type:"columnSettings",column:s}),!0;case"table-settings":return e({type:"tableSettings"}),!0;default:}}return!1};import{ContextMenuProvider as sb}from"@vuu-ui/vuu-popups";import{Button as ib,useIdMemo as lb}from"@salt-ds/core";import{buildColumnMap as ah,getColumnStyle as ch,isGroupColumn as uh,metadataKeys as dh,notHidden as ph,visibleColumnAtIndex as fh}from"@vuu-ui/vuu-utils";import{useCallback as ea,useMemo as ta}from"react";import{isGroupColumn as Vl,isJsonColumn as Wm,isJsonGroup as _m,metadataKeys as Gm,notHidden as Um}from"@vuu-ui/vuu-utils";import Xm from"classnames";import{memo as Qm,useCallback as Bl}from"react";import{getColumnStyle as Lm,metadataKeys as km}from"@vuu-ui/vuu-utils";import{createContext as Wc,useCallback as ox,useContext as _c,useMemo as sx}from"react";import{jsx as lx}from"react/jsx-runtime";var Gc={isDragSource:!1,isDropTarget:!1,register:()=>{}},Uc=()=>console.log("have you forgotten to provide a DragDrop Provider ?"),Xc=Wc({registerDragDropParty:Uc});var Yo=n=>{var o,s;let{dragSources:e,dropTargets:t,registerDragDropParty:r}=_c(Xc);if(n){let i=(o=e==null?void 0:e.has(n))!=null?o:!1,l=(s=t==null?void 0:t.has(n))!=null?s:!1;return{isDragSource:i,isDropTarget:l,register:r}}else return Gc};import{useCallback as Nt,useMemo as ou,useRef as Qe,useState as su}from"react";import{useCallback as Ht,useMemo as ru,useRef as ls}from"react";var Qc=["left","right"],Zc=["top","bottom"],gn=":not(.wrapped)",jo=':not([aria-hidden="true"])',qo=n=>{let e=n.cloneNode(!0);return e.removeAttribute("id"),e.dataset.index="-1",e},Yc=(n,e="width",t=!1)=>{let r=e==="width"?"left":"top",{[e]:o,[r]:s}=n.getBoundingClientRect(),{padEnd:i=!1,padStart:l=!1}=n.dataset,a=getComputedStyle(n),[c,u]=e==="width"?Qc:Zc,p=l&&!t?0:parseInt(a.getPropertyValue(`margin-${c}`),10),d=i&&!t?0:parseInt(a.getPropertyValue(`margin-${u}`),10),f=o;if(parseInt(a.getPropertyValue("flex-shrink"),10)>0){let h=parseInt(a.getPropertyValue("flex-basis"),10);!isNaN(h)&&h>0&&(f=h)}return[s,p+f+d]},jc={horizontal:{CLIENT_POS:"clientX",CLIENT_SIZE:"clientWidth",CONTRA:"top",CONTRA_CLIENT_POS:"clientY",CONTRA_END:"bottom",CONTRA_POS:"y",DIMENSION:"width",END:"right",POS:"x",SCROLL_POS:"scrollLeft",SCROLL_SIZE:"scrollWidth",START:"left"},vertical:{CLIENT_POS:"clientY",CLIENT_SIZE:"clientHeight",CONTRA:"left",CONTRA_CLIENT_POS:"clientX",CONTRA_END:"right",CONTRA_POS:"x",DIMENSION:"height",END:"bottom",POS:"y",SCROLL_POS:"scrollTop",SCROLL_SIZE:"scrollHeight",START:"top"}},fe=n=>jc[n],Jo=(n,e)=>{let t=n.find(r=>r.id===e);if(t)return t},es=(n,e)=>{n.splice(e,1);for(let t=e;t<n.length;t++)n[t].currentIndex-=1},ut=(n,e,t,r,o)=>{var p;let s=[],{DIMENSION:i}=fe(e),l=Array.from(t?n.querySelectorAll(t):n.children),a=l.length,c=typeof(r==null?void 0:r.from)=="number"?r.atEnd?Math.max(0,r.from-1):r.from:0,u=typeof(r==null?void 0:r.to)=="number"?Math.min(r.to+2,a-1):a-1;for(let d=c;d<=u;d++){let f=l[d],[m,h]=Yc(f,i),x=d===a-1,v=f.id,C=parseInt((p=f.dataset.index)!=null?p:"-1");s.push({currentIndex:d,dataIndex:isNaN(C)?-1:C,id:v,index:d,isDraggedItem:o===v,isLast:x,isOverflowIndicator:f.dataset.index==="overflow",element:f,start:m,end:m+h,size:h,mid:m+h/2})}return s},Ot=n=>n.findIndex(e=>e.isDraggedItem),dr=(n,e)=>{let t=Ot(n),r=e==="fwd"?t+1:t-1;if(r<0||r>=n.length)throw Error("switchDropTargetPosition index out of range");let o=n.at(t),s=n.at(r),i=s.size-o.size;if(e==="fwd"){let l=s.start+i,a=s.end,c={...o,start:l,mid:Math.floor(l+(a-l)/2),end:a},u=o.start,p=o.end+i,d={...s,start:u,mid:Math.floor(u+(p-u)/2),end:p};n.splice(t,2,d,c)}else{let l=s.start,a=s.end-i,c={...o,start:l,mid:Math.floor(l+(a-l)/2),end:a},u=o.start-i,p=o.end,d={...s,start:u,mid:Math.floor(u+(p-u)/2),end:p};n.splice(r,2,c,d)}},dt=(n,e,t)=>{let r=n.length,o=Ot(n),s=n[o];if(t==="fwd"){let i=Math.round(e+s.size);for(let l=r-1;l>=0;l--){let a=n[l];if(i>a.mid)return l<o?s:a}}else{let i=Math.round(e);for(let l=0;l<r;l++){let a=n[l];if(i<a.mid)return l>o?s:a}}throw Error("no dropTraget identified")};function ts(n,e){let{height:t,left:r,top:o,width:s}=n,{height:i,width:l}=e;return{height:Math.min(t,i),left:r,top:o,width:Math.min(s,l)}}var ns=(n,e,t)=>{if(e===t)return n;{let r=n.slice(),[o]=r.splice(e,1);if(t===-1)return r.concat(o);{let s=(t>e,0);return r.splice(t+s,0,o),r}}};import{useForkRef as qc}from"@salt-ds/core";function rs(n){var e,t,r="";if(typeof n=="string"||typeof n=="number")r+=n;else if(typeof n=="object")if(Array.isArray(n))for(e=0;e<n.length;e++)n[e]&&(t=rs(n[e]))&&(r&&(r+=" "),r+=t);else for(e in n)n[e]&&(r&&(r+=" "),r+=e);return r}function bn(){for(var n,e,t=0,r="";t<arguments.length;)(n=arguments[t++])&&(e=rs(n))&&(r&&(r+=" "),r+=e);return r}import{forwardRef as Jc,useCallback as eu}from"react";import{Portal as tu}from"@vuu-ui/vuu-popups";import{jsx as os}from"react/jsx-runtime";var nu=n=>n.split(" ").map(e=>`vuuDraggable-${e}`),yn=Jc(function({wrapperClassName:e,element:t,onTransitionEnd:r,style:o,scale:s=1},i){let l=eu(c=>{c&&(c.innerHTML="",c.appendChild(t),s!==1&&(c.style.transform=`scale(${s},${s})`))},[t,s]),a=qc(i,l);return os(tu,{children:os("div",{className:bn("vuuDraggable",...nu(e)),ref:a,onTransitionEnd:r,style:o})})}),pr=n=>{let e=document.createElement("div");return e.className="vuuDraggable-spacer",n&&e.addEventListener("transitionend",()=>{n.current=!1}),e},ss=()=>{let n=document.createElement("div");return n.className="vuuDraggable-dropIndicatorPosition",n},is=n=>{let e=document.createElement("div");return e.className="vuuDraggable-dropIndicator",n&&e.addEventListener("transitionend",()=>{n.current=!1}),e};var as=()=>{let n=ls(0),e=ls(!1),t=ru(()=>[pr(e),pr()],[]),r=Ht(()=>t.forEach(a=>a.remove()),[t]),o=Ht((a,c="width")=>{let[u,p]=t;n.current=requestAnimationFrame(()=>{e.current=!0,u.style.cssText=`${c}: 0px`,p.style.cssText=`${c}: ${a}px`,t[0]=p,t[1]=u})},[t]),s=Ht(()=>{n.current&&(cancelAnimationFrame(n.current),n.current=0)},[]),i=Ht((a,c,u,p=!1,d="static",f="horizontal")=>{if(c){let m=f==="horizontal"?"width":"height",[h,x]=t;if(s(),p)e.current?(r(),h.style.cssText=`${m}: ${u}px`,x.style.cssText=`${m}: 0px`,d==="fwd"?(c.element.before(h),c.element.after(x)):(c.element.after(h),c.element.before(x))):d==="fwd"?c.element.after(x):c.element.before(x),o(u,m);else if(d==="static")h.style.cssText=`${m}: ${u}px`,c.element.before(h);else throw Error("useDragDisplacers currently only supports noTransition for static displacement");d!=="static"&&dr(a,d)}},[o,s,r,t]),l=Ht((a,c,u,p=!1,d="static",f="horizontal")=>{let m=f==="horizontal"?"width":"height",[h,x]=t;s(),p?(e.current?(r(),h.style.cssText=`${m}: ${u}px`,x.style.cssText=`${m}: 0px`,c.element.before(h),c.element.after(x)):d==="fwd"?c.element.after(x):c.element.before(x),o(u,m)):(h.style.cssText=`${m}: ${u}px`,c.element.after(h)),d!=="static"&&dr(a,d)},[o,s,r,t]);return{displaceItem:i,displaceLastItem:l,clearSpacers:r}};var cs=({draggableRef:n,onDrop:e,orientation:t="horizontal",containerRef:r,itemQuery:o="*",selected:s,viewportRange:i})=>{let l=Qe(),a=Qe(!1),c=Qe(-1),u=Qe([]),p=Qe(!1),[d,f]=su(!1),{clearSpacers:m,displaceItem:h,displaceLastItem:x}=as(),v=Qe(),C=`:is(${o}${gn}${jo},.vuuOverflowContainer-OverflowIndicator)`,y=S=>u.current.findIndex(M=>M.id===S.id),b=Qe();b.current=i;let T=Nt(()=>{m()},[m]),g=Nt((S,M,I)=>{let{current:L}=r,{current:k}=v;if(L&&k){u.current=ut(L,t,C,b.current);let{size:O}=k,N=c.current+O/2,{current:H}=u,V=dt(H,N,"fwd");if(V){let B=y(V),W=H[B];I&&S==="fwd"?x(H,H[H.length-1],O,!1,"static",t):h(H,W,O,!0,"static",t)}}},[r,h,x,C,t]),w=Nt(S=>{let I=S.target.closest(o);I.ariaSelected&&Array.isArray(s)&&s.length>1&&console.log("its a selected element, and we have a multi select");let{current:L}=r;if(L&&I){let{SCROLL_SIZE:k,CLIENT_SIZE:O}=fe(t),{id:A}=I,{[k]:N,[O]:H}=L;a.current=N>H;let V=u.current=ut(L,t,C,i,A);console.log({dropTargets:V});let z=Ot(V),B=V[z];B&&L&&(v.current=B,(B.isLast?x:h)(V,B,B.size,!1,"static",t))}},[r,h,x,C,o,t,s,i]),[D,P]=ou(()=>{let S=!1;return[L=>{if(!S){S=!0;let k=L.element.querySelector(".vuuPopupMenu");if(k){let O=new MouseEvent("click",{view:window,bubbles:!0,cancelable:!0});k.dispatchEvent(O)}}},L=>{if(S){S=!1;let k=L.element.querySelector(".vuuPopupMenu");if(k){let O=new MouseEvent("click",{view:window,bubbles:!0,cancelable:!0});k.dispatchEvent(O)}}}]},[]),E=Nt((S,M)=>{let{current:I}=v;if(I&&n.current&&r.current){c.current=S;let{current:L}=u,k=dt(L,S,M);if(k&&!k.isDraggedItem)if(k.isOverflowIndicator)f(p.current=!0),D(k);else{let{size:O}=I;(y(k)===L.length-1?x:h)(L,k,O,!0,M,t);let H=L.at(-1);P(H),f(p.current=!1)}l.current=M}},[r,h,x,n,P,t,D]),R=Nt(()=>{var L;m();let{current:S}=u,M=Ot(S),I=S[M];if(I&&(l.current=void 0,p.current?e(I.index,-1):e(I.index,M)),f(!1),r.current){let k=(L=r.current)==null?void 0:L.scrollTop;M<S.length&&(r.current.scrollTop=k)}},[m,r,e]);return{beginDrag:w,drag:E,drop:R,handleScrollStart:T,handleScrollStop:g,revealOverflowedItems:d}};import{useCallback as zt,useRef as Ee,useState as ps}from"react";import{useCallback as us,useMemo as iu}from"react";var ds=()=>{let n=iu(()=>ss(),[]),e=us(()=>n.remove(),[n]);return{positionDropIndicator:us((r,o="end")=>(o==="end"?r.element.after(n):r.element.before(n),n),[n]),clearSpacer:e}};import{jsx as cu}from"react/jsx-runtime";var lu=':not([data-overflowed="true"])',au=':not([aria-hidden="true"])',fs=({draggableRef:n,onDrop:e,orientation:t="horizontal",containerRef:r,itemQuery:o="*",selected:s,viewportRange:i})=>{let l=Ee(),a=Ee(null),c=Ee(null),u=Ee(""),p=Ee(!1),d=Ee(-1),f=Ee([]),m=Ee(!1),[h,x]=ps(!1),[v,C]=ps(),{clearSpacer:y,positionDropIndicator:b}=ds(),T=Ee(),g=`:is(${o}${lu}${au},[data-overflow-indicator])`,w=L=>f.current.findIndex(k=>k.id===L.id),D=(L,k,O)=>{L.start+=k,L.mid+=k,L.end+=k,typeof O=="number"&&(L.currentIndex+=O)},P=Ee();P.current=i;let E=zt(()=>{y()},[y]),R=zt((L,k,O)=>{let{current:A}=r,{current:N}=T;if(A&&N){f.current=ut(A,t,g,P.current);let{size:H}=N,z=d.current+H/2,{current:B}=f,W=dt(B,z,"fwd");W&&b(O&&L==="fwd"?B[B.length-1]:W,"start")}},[r,b,g,t]),S=zt(L=>{let O=L.target.closest(o);O.ariaSelected&&Array.isArray(s)&&s.length>1&&console.log("its a selected element, and we have a multi select");let{current:A}=r;if(A&&O){let{SCROLL_SIZE:N,CLIENT_SIZE:H}=fe(t),{id:V}=O,{[N]:z,[H]:B}=A;p.current=z>B;let W=f.current=ut(A,t,g,i),Q=Jo(W,V);if(Q&&A){let F=w(Q);es(W,F),T.current=Q;let{current:$}=P;if($!=null&&$.atEnd)for(let Z=0;Z<W.length;Z++)D(W[Z],Q.size);for(let Z=F;Z<W.length;Z++)D(W[Z],-Q.size,-1);let[G,oe]=Q.isLast?[W[W.length-1],"end"]:[W[F],"start"];c.current=G,u.current=oe;let we=b(G,oe),{top:_,left:U,width:J}=we.getBoundingClientRect(),q={top:Q.isLast?$!=null&&$.atEnd&&!$.atStart?_+Q.size-2:_-2:_-Q.size-2,left:U,width:J,height:2};C(cu(yn,{wrapperClassName:"dropIndicatorContainer",style:q,ref:a,element:is()}))}}},[o,s,r,t,g,i,b]),M=zt((L,k)=>{let{current:O}=c,{current:A}=T;if(A&&n.current&&r.current){let N=t==="horizontal"?"left":"top";d.current=L;let{current:H}=f,V=dt(H,L,k);if(V&&V.index!==(O==null?void 0:O.index)){if(V.isOverflowIndicator)x(m.current=!0);else if(a.current){if(w(V)===H.length-1){let B=H[H.length-1],Q=b(B,"start").getBoundingClientRect();a.current.style[N]=`${Q.top}px`}else{let W=b(V,"start").getBoundingClientRect();a.current.style[N]=`${W.top}px`}x(m.current=!1)}c.current=V,l.current=k}}},[n,r,t,b]),I=zt(()=>{y();let{current:L}=T,{current:k}=c,{current:O}=u,{current:A}=P;if(L&&A&&k){let{index:N}=L,H=O==="start",{index:V,currentIndex:z}=k;c.current=null,l.current=void 0,m.current?e(N,-1):N<V?e(N,H?z:z+1):e(N,H?V:V+1),C(void 0)}x(!1)},[y,e]);return{beginDrag:S,drag:M,drop:I,dropIndicator:v,handleScrollStart:E,handleScrollStop:R,revealOverflowedItems:h}};import{useCallback as Re,useLayoutEffect as uu,useRef as me,useState as du}from"react";import{useCallback as ms,useRef as xn}from"react";var hs=({containerRef:n,onScrollingStopped:e,orientation:t="vertical"})=>{let r=xn(null),o=xn(!1),s=xn(0),i=xn("fwd"),l=ms((c=!1)=>{console.log("[useAutoScroll] stopScrolling"),r.current!==null&&(clearTimeout(r.current),r.current=null),o.current=!1,e==null||e(i.current,s.current,c)},[e]),a=ms((c,u,p=30)=>{let{current:d}=n;if(d){let{SCROLL_POS:f,SCROLL_SIZE:m,CLIENT_SIZE:h}=fe(t),{[f]:x,[m]:v,[h]:C}=d,y=c==="fwd"?v-C-x:x,b=Math.min(y,p);c==="fwd"?(i.current="fwd",d[f]=s.current=x+b):(i.current="bwd",d[f]=s.current=x-b),b===y?l(!0):(o.current=!0,r.current=window.setTimeout(()=>{a(c,u,p)},100))}},[n,t,l]);return{isScrolling:o,startScrolling:a,stopScrolling:l}};import{jsx as yu}from"react/jsx-runtime";var pu={beginDrag:()=>{},drag:()=>{},draggableRef:{current:null},drop:()=>{},isDragging:!1,isScrolling:!1,handleScrollStart:()=>{},handleScrollStop:()=>{},revealOverflowedItems:!1},gs={start:0,end:1e3,contraStart:0,contraEnd:1e3},fu=()=>pu,mu=3,hu=(n,e)=>n.closest(e),gu=n=>n.dataset.index==="overflow"&&n.parentElement!==null&&n.parentElement.classList.contains("overflowed"),bu=(n,e)=>{let t=`:is(${e}${gn},.vuuOverflowContainer-OverflowIndicator)`,o=Array.from(n.querySelectorAll(t)).pop();return[o,gu(o)]},vn=({allowDragDrop:n,containerRef:e,draggableClassName:t,itemQuery:r="*",onDragStart:o,onDrop:s,onDropSettle:i,orientation:l,...a})=>{let c=me({start:0,end:0,contraStart:0,contraEnd:0}),[u,p]=du({draggable:void 0,draggedItemIndex:-1,isDragging:!1}),d=me(null),f=me(),m=me(null),h=me(!1),x=me({x:0,y:0}),v=me({x:0,y:0}),C=me({x:0,y:0}),y=me(null),b=me(-1),T=me(-1),g=me(),{isDragSource:w,isDropTarget:D,register:P}=Yo(a.id);a.id&&(w||D)&&P(a.id);let E=Re(()=>{var J;let{current:_}=T,U=(J=e.current)==null?void 0:J.querySelector(`${r}[data-index="${_}"]`);U&&U.classList.remove("vuuDropTarget-settling"),T.current=-1,i==null||i(_),p(q=>({...q,draggable:void 0}))},[e,r,i]),R=Re(_=>{if(e.current){let{POS:U,SCROLL_POS:J,SCROLL_SIZE:q,CLIENT_SIZE:Z}=fe(l),{[J]:K,[q]:Y,[Z]:ee}=e.current,j=Y-ee,se=K<j,ue=c.current.end,ie=K>0&&_-x.current[U]<=c.current.start,de=se&&_-x.current[U]>=ue;return ie?"bwd":de?"fwd":""}},[e,l]),S=n===!0||n==="natural-movement"?cs:n==="drop-indicator"?fs:fu,M=Re((_,U,J)=>{var q;(q=g.current)==null||q.call(g,_,U,J)},[]),{isScrolling:I,startScrolling:L,stopScrolling:k}=hs({containerRef:e,onScrollingStopped:M,orientation:l}),O=Re((_,U)=>{b.current=U,s==null||s(_,U),T.current=U},[s]),{beginDrag:A,drag:N,drop:H,handleScrollStart:V,handleScrollStop:z,...B}=S({...a,containerRef:e,draggableRef:d,isDragSource:w,isDropTarget:D,itemQuery:r,onDrop:O,orientation:l});g.current=z;let W=Re(_=>{let{CLIENT_POS:U,CONTRA_CLIENT_POS:J,CONTRA_POS:q,POS:Z}=fe(l),{clientX:K,clientY:Y}=_,{[U]:ee,[J]:j}=_,se=v.current[Z],ue=v.current[q],ie=Math.abs(se-ee);if((w?Math.abs(ue-j):0)-ie>5&&(c.current=gs),v.current.x=K,v.current.y=Y,c.current===gs&&d.current){let Xe=v.current.x-x.current.x,ke=v.current.y-x.current.y;d.current.style.top=`${ke}px`,d.current.style.left=`${Xe}px`}else if(ie>0&&d.current){let Xe=se<ee?"fwd":"bwd",ke=R(ee),It=v.current[Z]-x.current[Z];if(ke&&h.current&&!I.current?(V(),L(ke,1)):!ke&&I.current&&k(),!I.current){let it=Math.round(Math.max(c.current.start,Math.min(c.current.end,It))),ye=l==="horizontal"?"left":"top";d.current.style[ye]=`${it}px`,N(it,Xe)}}},[N,d,R,V,w,I,l,L,k]),Q=Re(()=>{document.removeEventListener("mousemove",W,!1),document.removeEventListener("mouseup",Q,!1),y.current=d.current,H(),p(_=>({..._,draggedItemIndex:-1,isDragging:!1})),f.current=void 0},[W,d,H]),F=Re(_=>{let{clientX:U,clientY:J,target:q}=_,Z=hu(q,r),{current:K}=e;if(K&&Z){let{CONTRA:Y,CONTRA_END:ee,DIMENSION:j,END:se,SCROLL_SIZE:ue,CLIENT_SIZE:ie,START:de}=fe(l);f.current=Z;let{[ue]:Xe,[ie]:ke}=K;h.current=Xe>ke;let[It,it]=bu(K,r),ye=K.getBoundingClientRect(),lt=Z.getBoundingClientRect(),At=lt[j],{[de]:wc,[se]:Sc}=It.getBoundingClientRect();x.current.x=U-lt.left,x.current.y=J-lt.top,c.current.start=ye[de],c.current.end=it?Math.max(wc,ye.right-At):h.current?ye[de]+ye[j]-At:Sc-At,c.current.contraStart=ye[Y],c.current.contraEnd=ye[ee],A(_);let{dataset:{index:Ec="-1"}}=Z;p({isDragging:!0,draggable:yu(yn,{element:qo(Z),onTransitionEnd:E,ref:d,style:ts(lt,ye),wrapperClassName:t}),draggedItemIndex:parseInt(Ec)}),o==null||o(),document.addEventListener("mousemove",W,!1),document.addEventListener("mouseup",Q,!1)}},[A,e,W,Q,t,d,r,o,l,E]),$=Re(_=>{let{CLIENT_POS:U,POS:J}=fe(l),{[U]:q}=_;Math.abs(q-C.current[J])>mu&&e.current&&(m.current&&(window.clearTimeout(m.current),m.current=null),document.removeEventListener("mousemove",$),document.removeEventListener("mouseup",G,!1),F(_))},[e,A,l]),G=Re(()=>{m.current&&(window.clearTimeout(m.current),m.current=null),document.removeEventListener("mousemove",$,!1),document.removeEventListener("mouseup",G,!1)},[$]),oe=Re(_=>{console.log("useDragDropNext onMouseDown");let{current:U}=e;if(U&&!_.defaultPrevented){let{clientX:J,clientY:q}=_;v.current.x=C.current.x=J,v.current.y=C.current.y=q,document.addEventListener("mousemove",$,!1),document.addEventListener("mouseup",G,!1),_.persist(),m.current=window.setTimeout(()=>{document.removeEventListener("mousemove",$,!1),document.removeEventListener("mouseup",G,!1),F(_.nativeEvent)},500)}},[e,F,$,G]),{current:we}=y;return uu(()=>{if(we&&e.current){let _=b.current,U=e.current.querySelector(`${r}[data-index="${_}"]`);U?(U.classList.add("vuuDropTarget-settling"),requestAnimationFrame(()=>{let{top:J,left:q}=U.getBoundingClientRect(),{top:Z,left:K}=we.getBoundingClientRect();K!==q||Z!==J?(we.classList.add("vuuDraggable-settling"),we.style.top=`${J}px`,we.style.left=`${q}px`):E()})):console.log(`dont have the dropped item (at ${_})`),y.current=null}},[e,r,we,E]),{...B,...u,isScrolling:I,onMouseDown:n?oe:void 0}};import{useCallback as bs,useLayoutEffect as xu,forwardRef as vu,useRef as fr}from"react";import{Input as Cu,useControlled as ys}from"@salt-ds/core";import{jsx as xs}from"react/jsx-runtime";var mr="vuuEditableLabel",pt=vu(function({className:e,defaultEditing:t,defaultValue:r,editing:o,onChange:s,onEnterEditMode:i,onExitEditMode:l,value:a,...c},u){let p=fr(null),d=fr(!1),[f,m]=ys({controlled:a,default:r!=null?r:"",name:"EditableLabel",state:"value"}),[h,x]=ys({controlled:o,default:t!=null?t:!1,name:"EditableLabel",state:"editing"}),v=bs(E=>{x(d.current=E)},[]),C=fr(f);xu(()=>{h&&p.current!==null&&(p.current.select(),p.current.focus())},[h,p]);let y=bs(()=>{v(!0),i&&i()},[i,v]),b=({cancelEdit:E=!1,allowDeactivation:R=!1}={})=>{v(!1);let S=C.current;S!==f&&(E?m(S):C.current=f),l&&l(S,f,R,E)},T=E=>{let{value:R}=E.target;m(R),s&&s(R)},g=()=>{y()},w=()=>{d.current&&b({allowDeactivation:!0})},D=E=>{h&&E.key==="Enter"?(E.stopPropagation(),b()):E.key==="ArrowRight"||E.key==="ArrowLeft"?E.stopPropagation():E.key==="Escape"&&b({cancelEdit:!0})},P=bn(mr,e,{[`${mr}-editing`]:h});return xs("div",{...c,className:P,onDoubleClick:g,"data-text":f,ref:u,children:h?xs(Cu,{inputProps:{className:`${mr}-input`},value:f,onBlur:w,onChange:T,onKeyDown:D,inputRef:p,style:{padding:0},textAlign:"left",variant:"secondary"}):f})});import{partition as Ss}from"@vuu-ui/vuu-utils";import Mu from"classnames";var Tu={},wu={},Cn={};function te(n,e,t="component"){Cn[n]=e,t==="container"?Tu[n]=!0:t==="view"&&(wu[n]=!0)}import{Button as vs,useControlled as Su}from"@salt-ds/core";import Cs from"classnames";import{useCallback as Eu}from"react";import{jsx as Ft,jsxs as Du}from"react/jsx-runtime";var ze="vuuDrawer",Ts=n=>typeof n=="string"?n:n+"px",Ru=(n,e,t)=>{let r=e!==void 0,o=t!==void 0;if(!(!n&&!o&&!r))return!o&&!r?n:{...n,"--drawer-size":r?Ts(e):void 0,"--drawer-peek-size":o?Ts(t):void 0}},ws=({children:n,className:e,clickToOpen:t,defaultOpen:r,sizeOpen:o,sizeClosed:s,style:i,open:l,position:a="left",inline:c,onClick:u,peekaboo:p=!1,toggleButton:d,...f})=>{let[m,h]=Su({controlled:l,default:r!=null?r:!1,name:"Drawer",state:"open"}),x=Cs(ze,e,`${ze}-${a}`,{[`${ze}-open`]:m,[`${ze}-inline`]:c,[`${ze}-over`]:!c,[`${ze}-peekaboo`]:p}),v=Eu(()=>{h(!m)},[m,h]),C=Ru(i,o,s),y=t?v:u,b=()=>Ft("div",{className:Cs("vuuToggleButton-container"),children:m?Ft(vs,{"aria-label":"close",onClick:v,"data-icon":"close",variant:"secondary"}):Ft(vs,{"aria-label":"open",onClick:v,"data-icon":"close",variant:"secondary"})});return Du("div",{...f,className:x,onClick:y,style:C,children:[d=="start"?b():null,Ft("div",{className:`${ze}-liner`,children:Ft("div",{className:`${ze}-content`,children:n})}),d=="end"?b():null]})};ws.displayName="Drawer";var hr=ws;import{jsx as ku,jsxs as Iu}from"react/jsx-runtime";var Pu=n=>n.type===hr,Lu=({props:{position:n="left"}})=>n.match(/top|bottom/),Es=n=>{let{children:e,className:t,id:r,style:o}=n,s="vuuDockLayout",[i,l]=Ss(e,Pu),[a,c]=Ss(i,Lu),u=a.length===0?"horizontal":c.length===0?"vertical":"both",p=Mu(s,t,`${s}-${u}`);return Iu("div",{className:p,id:r,style:o,children:[i,ku("div",{className:`${s}-content`,children:l})]})};Es.displayName="DockLayout";te("DockLayout",Es,"container");import{forwardRef as Au}from"react";import{jsx as Ou}from"react/jsx-runtime";var gr=Au(function({resizeable:e,...t},r){return Ou("div",{...t,className:"Component",ref:r})});gr.displayName="Component";var br=gr;te("Component",gr);import iC,{isValidElement as lC}from"react";var Hu={},Ie=(n,e)=>{var r;let t=le(n);return(r=t[e])!=null?r:t[`data-${e}`]},le=n=>(n==null?void 0:n.props)||n||Hu;import{Children as Nu,isValidElement as Rs,useLayoutEffect as zu,useMemo as Fu,useRef as $u}from"react";var Vu=[],Bu=0,ft=n=>{let e=Array.isArray(n),t=e?n.length:Nu.count(n);return e&&n.every(Rs)?n:t===1&&!e&&Rs(n)?[n]:t>1?n:Vu},Ds=(n,e)=>{let t=$u(!1);zu(()=>{t.current?n():t.current=!0},e)},Tn=n=>Fu(()=>n!=null?n:`vuu-${++Bu}`,[n]);var xr={north:1,east:2,south:4,west:8,header:16,centre:32,absolute:64},vr={AFTER:"after",BEFORE:"before"},Fe=Object.freeze({North:Ze("north"),East:Ze("east"),South:Ze("south"),West:Ze("west"),Header:Ze("header"),Centre:Ze("centre"),Absolute:Ze("absolute")});function Ze(n){return Object.freeze({offset:n==="north"||n==="west"?0:n==="south"||n==="east"?1:NaN,valueOf:function(){return xr[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 LC=Fe.North,kC=Fe.South,IC=Fe.East,AC=Fe.West,OC=Fe.Header,HC=Fe.Centre;var{north:Wu,south:_u,east:Gu,west:Uu}=xr,_C=Gu+Uu,GC=Wu+_u;import{PopupService as Tr}from"@vuu-ui/vuu-popups";import Xu from"classnames";import{jsx as Ms}from"react/jsx-runtime";function Ps(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 Cr="vuuDropMenu",Ls=({className:n,dropTarget:e,onHover:t,orientation:r})=>{let o=e.toArray();return Ms("div",{className:Xu(Cr,n,`${Cr}-${r}`),onMouseLeave:()=>t(null),children:o.map((s,i)=>Ms("div",{className:`${Cr}-item`,"data-icon":i===0?"column-2A":"column-2B",onMouseEnter:()=>t(s)},i))})};import{jsx as ed}from"react/jsx-runtime";var wr=!1,$t=null,xe=null,Qu=n=>$t=n,Zu=([n,e])=>`M${n},${e}`,Yu=([n,e])=>`L${n},${e}`,ks=([n,...e])=>`${Zu(n)} ${e.map(Yu)}Z`,ju=n=>{if(n){let[e,t,r,o,s,i,l,a]=n;return`M${e},${t} L${r},${o} M${s},${i} L${l},${a}`}else return""};function qu(){if(document.getElementById("hw-drag-canvas")===null){let n=document.getElementById("root"),e=document.createElement("div");e.id="hw-drag-canvas",e.innerHTML=`
|
|
1
|
+
var ai=(t,e,n)=>{if(!e.has(t))throw TypeError("Cannot "+n)};var Ne=(t,e,n)=>(ai(t,e,"read from private field"),n?n.call(t):e.get(t)),ci=(t,e,n)=>{if(e.has(t))throw TypeError("Cannot add the same private member more than once");e instanceof WeakSet?e.add(t):e.set(t,n)},tr=(t,e,n,o)=>(ai(t,e,"write to private field"),o?o.call(t,n):e.set(t,n),n);import{useCallback as nr,useRef as Ud}from"react";import{jsx as Qd}from"react/jsx-runtime";var ui=()=>{},Xd="vuuColumnResizer",Wn=({onDrag:t,onDragEnd:e=ui,onDragStart:n=ui})=>{let o=Ud(0),r=nr(l=>{l.stopPropagation&&l.stopPropagation(),l.preventDefault&&l.preventDefault();let a=Math.round(l.clientX),c=a-o.current;o.current=a,c!==0&&t(l,c)},[t]),s=nr(l=>{window.removeEventListener("mouseup",s),window.removeEventListener("mousemove",r),e(l)},[e,r]),i=nr(l=>{n(l),o.current=Math.round(l.clientX),window.addEventListener("mouseup",s),window.addEventListener("mousemove",r),l.stopPropagation&&l.stopPropagation(),l.preventDefault&&l.preventDefault()},[n,r,s]);return Qd("div",{className:Xd,"data-align":"end",onMouseDown:i})};import{isNumericColumn as jd}from"@vuu-ui/vuu-utils";var _n=t=>(e,n)=>{let o=[];if(t===void 0)return o;if(e==="header"||e==="column-menu")o.push(...Yd(n,t)),o.push(...Jd(n,t)),o.push(...Zd(n,t)),o.push(...qd(n)),o.push({action:"column-settings",icon:"cog",label:"Column Settings",options:n}),o.push({action:"table-settings",icon:"cog",label:"DataGrid Settings",options:n});else if(e==="filter"){let{column:r,filter:s}=n,i=(s==null?void 0:s.column)===(r==null?void 0:r.name);o.push({label:"Edit filter",action:"filter-edit",options:n}),o.push({label:"Remove filter",action:"filter-remove-column",options:n}),r&&!i&&o.push({label:"Remove all filters",action:"remove-filters",options:n})}return o};function Yd(t,{sort:{sortDefs:e}}){let{column:n}=t,o=[];if(n===void 0)return o;let r=e.length>0;return n.sorted==="A"?o.push({label:"Reverse Sort (DSC)",action:"sort-dsc",options:t}):n.sorted==="D"?o.push({label:"Reverse Sort (ASC)",action:"sort-asc",options:t}):typeof n.sorted=="number"?(n.sorted>0?o.push({label:"Reverse Sort (DSC)",action:"sort-add-dsc",options:t}):o.push({label:"Reverse Sort (ASC)",action:"sort-add-asc",options:t}),r&&Math.abs(n.sorted)<e.length&&o.push({label:"Remove from sort",action:"sort-remove",options:t}),o.push({label:"New Sort",children:[{label:"Ascending",action:"sort-asc",options:t},{label:"Descending",action:"sort-dsc",options:t}]})):r?(o.push({label:"Add to sort",children:[{label:"Ascending",action:"sort-add-asc",options:t},{label:"Descending",action:"sort-add-dsc",options:t}]}),o.push({label:"New Sort",children:[{label:"Ascending",action:"sort-asc",options:t},{label:"Descending",action:"sort-dsc",options:t}]})):o.push({label:"Sort",children:[{label:"Ascending",action:"sort-asc",options:t},{label:"Descending",action:"sort-dsc",options:t}]}),o}function Zd(t,e){let{column:n}=t;if(n===void 0||e.groupBy.length===0)return[];let{name:o,label:r=o}=n;return[{label:`Aggregate ${r}`,children:[{label:"Count",action:"agg-count",options:t},{label:"Distinct",action:"agg-distinct",options:t}].concat(jd(n)?[{label:"Sum",action:"agg-sum",options:t},{label:"Avg",action:"agg-avg",options:t},{label:"High",action:"agg-high",options:t},{label:"Low",action:"agg-low",options:t}]:[])}]}var ir=(t,e)=>({label:`Pin ${e}`,action:`column-pin-${e}`,options:t}),or=t=>ir(t,"left"),rr=t=>ir(t,"floating"),sr=t=>ir(t,"right");function qd(t){let{column:e}=t;if(e===void 0)return[];let{pin:n}=e,o=[{label:"Hide column",action:"column-hide",options:t},{label:"Remove column",action:"column-remove",options:t}];return n===void 0?o.push({label:"Pin column",children:[or(t),rr(t),sr(t)]}):n==="left"?o.push({label:"Unpin column",action:"column-unpin",options:t},{label:"Pin column",children:[rr(t),sr(t)]}):n==="right"?o.push({label:"Unpin column",action:"column-unpin",options:t},{label:"Pin column",children:[or(t),rr(t)]}):n==="floating"&&o.push({label:"Unpin column",action:"column-unpin",options:t},{label:"Pin column",children:[or(t),sr(t)]}),o}function Jd(t,{groupBy:e}){let{column:n}=t,o=[];if(n===void 0)return o;let{name:r,label:s=r}=n;return e.length===0?o.push({label:`Group by ${s}`,action:"group",options:t}):o.push({label:`Add ${s} to group by`,action:"group-add",options:t}),o}import{removeColumnFromFilter as ep}from"@vuu-ui/vuu-utils";import{addGroupColumn as di,addSortColumn as pi,AggregationType as tp,setAggregations as wt,setSortColumn as mi}from"@vuu-ui/vuu-utils";var np=(t,e)=>{if(t.filterStruct&&e){let[n,o]=ep(e,t.filterStruct);return{filter:o,filterStruct:n}}else return t},{Average:op,Count:rp,Distinct:sp,High:ip,Low:lp,Sum:ap}=tp,Gn=({dataSource:t,onPersistentColumnOperation:e})=>o=>{let r=o.options;if(r.column&&t){let{column:s}=r;switch(o.menuId){case"sort-asc":return t.sort=mi(t.sort,s,"A"),!0;case"sort-dsc":return t.sort=mi(t.sort,s,"D"),!0;case"sort-add-asc":return t.sort=pi(t.sort,s,"A"),!0;case"sort-add-dsc":return t.sort=pi(t.sort,s,"D"),!0;case"group":return t.groupBy=di(t.groupBy,s),!0;case"group-add":return t.groupBy=di(t.groupBy,s),!0;case"column-hide":return e({type:"hideColumns",columns:[s]}),!0;case"column-remove":return t.columns=t.columns.filter(i=>i!==s.name),!0;case"filter-remove-column":return t.filter=np(t.filter,s),!0;case"remove-filters":return t.filter={filter:""},!0;case"agg-avg":return t.aggregations=wt(t.aggregations,s,op),!0;case"agg-high":return t.aggregations=wt(t.aggregations,s,ip),!0;case"agg-low":return t.aggregations=wt(t.aggregations,s,lp),!0;case"agg-count":return t.aggregations=wt(t.aggregations,s,rp),!0;case"agg-distinct":return t.aggregations=wt(t.aggregations,s,sp),!0;case"agg-sum":return t.aggregations=wt(t.aggregations,s,ap),!0;case"column-pin-floating":return e({type:"pinColumn",column:s,pin:"floating"}),!0;case"column-pin-left":return e({type:"pinColumn",column:s,pin:"left"}),!0;case"column-pin-right":return e({type:"pinColumn",column:s,pin:"right"}),!0;case"column-unpin":return e({type:"pinColumn",column:s,pin:void 0}),!0;case"column-settings":return e({type:"columnSettings",column:s}),!0;case"table-settings":return e({type:"tableSettings"}),!0;default:}}return!1};import{ContextMenuProvider as qC}from"@vuu-ui/vuu-popups";import{Button as JC,useIdMemo as ev}from"@salt-ds/core";import{buildColumnMap as tx,getColumnStyle as nx,isGroupColumn as ox,metadataKeys as rx,notHidden as sx,visibleColumnAtIndex as ix}from"@vuu-ui/vuu-utils";import{useCallback as du,useMemo as pu}from"react";import{isGroupColumn as Zc,isJsonColumn as Ny,isJsonGroup as zy,metadataKeys as Fy,notHidden as Vy}from"@vuu-ui/vuu-utils";import $y from"classnames";import{memo as By,useCallback as qc}from"react";import{getColumnStyle as Sy,metadataKeys as wy}from"@vuu-ui/vuu-utils";import{createContext as cp,useCallback as tS,useContext as up,useMemo as nS}from"react";import{jsx as rS}from"react/jsx-runtime";var dp={isDragSource:!1,isDropTarget:!1,register:()=>{}},pp=()=>console.log("have you forgotten to provide a DragDrop Provider ?"),mp=cp({registerDragDropParty:pp});var fi=t=>{var r,s;let{dragSources:e,dropTargets:n,registerDragDropParty:o}=up(mp);if(t){let i=(r=e==null?void 0:e.has(t))!=null?r:!1,l=(s=n==null?void 0:n.has(t))!=null?s:!1;return{isDragSource:i,isDropTarget:l,register:o}}else return dp};import{useCallback as on,useMemo as Ep,useRef as ut,useState as Rp}from"react";import{useCallback as nn,useMemo as wp,useRef as wi}from"react";var fp=["left","right"],hp=["top","bottom"],Un=":not(.wrapped)",hi=':not([aria-hidden="true"])',gi=t=>{let e=t.cloneNode(!0);return e.removeAttribute("id"),e.dataset.index="-1",e},gp=(t,e="width",n=!1)=>{let o=e==="width"?"left":"top",{[e]:r,[o]:s}=t.getBoundingClientRect(),{padEnd:i=!1,padStart:l=!1}=t.dataset,a=getComputedStyle(t),[c,u]=e==="width"?fp:hp,d=l&&!n?0:parseInt(a.getPropertyValue(`margin-${c}`),10),p=i&&!n?0:parseInt(a.getPropertyValue(`margin-${u}`),10),m=r;if(parseInt(a.getPropertyValue("flex-shrink"),10)>0){let h=parseInt(a.getPropertyValue("flex-basis"),10);!isNaN(h)&&h>0&&(m=h)}return[s,d+m+p]},bp={horizontal:{CLIENT_POS:"clientX",CLIENT_SIZE:"clientWidth",CONTRA:"top",CONTRA_CLIENT_POS:"clientY",CONTRA_END:"bottom",CONTRA_POS:"y",DIMENSION:"width",END:"right",POS:"x",SCROLL_POS:"scrollLeft",SCROLL_SIZE:"scrollWidth",START:"left"},vertical:{CLIENT_POS:"clientY",CLIENT_SIZE:"clientHeight",CONTRA:"left",CONTRA_CLIENT_POS:"clientX",CONTRA_END:"right",CONTRA_POS:"x",DIMENSION:"height",END:"bottom",POS:"y",SCROLL_POS:"scrollTop",SCROLL_SIZE:"scrollHeight",START:"top"}},Ee=t=>bp[t],bi=(t,e)=>{let n=t.find(o=>o.id===e);if(n)return n},yi=(t,e)=>{t.splice(e,1);for(let n=e;n<t.length;n++)t[n].currentIndex-=1},Et=(t,e,n,o,r)=>{var d;let s=[],{DIMENSION:i}=Ee(e),l=Array.from(n?t.querySelectorAll(n):t.children),a=l.length,c=typeof(o==null?void 0:o.from)=="number"?o.atEnd?Math.max(0,o.from-1):o.from:0,u=typeof(o==null?void 0:o.to)=="number"?Math.min(o.to+2,a-1):a-1;for(let p=c;p<=u;p++){let m=l[p],[f,h]=gp(m,i),g=p===a-1,y=m.id,v=parseInt((d=m.dataset.index)!=null?d:"-1");s.push({currentIndex:p,dataIndex:isNaN(v)?-1:v,id:y,index:p,isDraggedItem:r===y,isLast:g,isOverflowIndicator:m.dataset.index==="overflow",element:m,start:f,end:f+h,size:h,mid:f+h/2})}return s},Rt=(t,e=!1)=>{let n=t.findIndex(r=>r.isDraggedItem),{index:o}=t[n];if(e){let r=t.filter(i=>!i.isDraggedItem).reduce((i,l)=>Math.min(i,l.index),Number.MAX_SAFE_INTEGER);if(r>0&&!(o===0&&r===1))return r+n}return n},lr=(t,e)=>{let n=Rt(t),o=e==="fwd"?n+1:n-1;if(o<0||o>=t.length)throw Error("switchDropTargetPosition index out of range");let r=t.at(n),s=t.at(o),i=s.size-r.size;if(e==="fwd"){let l=s.start+i,a=s.end,c={...r,start:l,mid:Math.floor(l+(a-l)/2),end:a},u=r.start,d=r.end+i,p={...s,start:u,mid:Math.floor(u+(d-u)/2),end:d};t.splice(n,2,p,c)}else{let l=s.start,a=s.end-i,c={...r,start:l,mid:Math.floor(l+(a-l)/2),end:a},u=r.start-i,d=r.end,p={...s,start:u,mid:Math.floor(u+(d-u)/2),end:d};t.splice(o,2,c,p)}},Dt=(t,e,n)=>{let o=t.length,r=Rt(t),s=t[r];if(n==="fwd"){let i=Math.round(e+s.size);for(let l=o-1;l>=0;l--){let a=t[l];if(i>a.mid)return l<r?s:a}}else{let i=Math.round(e);for(let l=0;l<o;l++){let a=t[l];if(i<a.mid)return l>r?s:a}}throw Error("no dropTraget identified")};function xi(t,e){let{height:n,left:o,top:r,width:s}=t,{height:i,width:l}=e;return{height:Math.min(n,i),left:o,top:r,width:Math.min(s,l)}}var Ci=(t,e,n)=>{if(e===n)return t;{let o=t.slice(),[r]=o.splice(e,1);if(n===-1)return o.concat(r);{let s=(n>e,0);return o.splice(n+s,0,r),o}}};import{useForkRef as yp}from"@salt-ds/core";import xp from"classnames";import{forwardRef as Cp,useCallback as vp}from"react";import{Portal as Tp}from"@vuu-ui/vuu-popups";import{jsx as vi}from"react/jsx-runtime";var Sp=t=>t.split(" ").map(e=>`vuuDraggable-${e}`),Xn=Cp(function({wrapperClassName:e,element:n,onTransitionEnd:o,style:r,scale:s=1},i){let l=vp(c=>{c&&(c.innerHTML="",c.appendChild(n),s!==1&&(c.style.transform=`scale(${s},${s})`))},[n,s]),a=yp(i,l);return vi(Tp,{children:vi("div",{className:xp("vuuDraggable",...Sp(e)),ref:a,onTransitionEnd:o,style:r})})}),ar=t=>{let e=document.createElement("div");return e.className="vuuDraggable-spacer",t&&e.addEventListener("transitionend",()=>{t.current=!1}),e},Ti=()=>{let t=document.createElement("div");return t.className="vuuDraggable-dropIndicatorPosition",t},Si=t=>{let e=document.createElement("div");return e.className="vuuDraggable-dropIndicator",t&&e.addEventListener("transitionend",()=>{t.current=!1}),e};var Ei=()=>{let t=wi(0),e=wi(!1),n=wp(()=>[ar(e),ar()],[]),o=nn(()=>n.forEach(a=>a.remove()),[n]),r=nn((a,c="width")=>{let[u,d]=n;t.current=requestAnimationFrame(()=>{e.current=!0,u.style.cssText=`${c}: 0px`,d.style.cssText=`${c}: ${a}px`,n[0]=d,n[1]=u})},[n]),s=nn(()=>{t.current&&(cancelAnimationFrame(t.current),t.current=0)},[]),i=nn((a,c,u,d=!1,p="static",m="horizontal")=>{if(c){let f=m==="horizontal"?"width":"height",[h,g]=n;if(s(),d)e.current?(o(),h.style.cssText=`${f}: ${u}px`,g.style.cssText=`${f}: 0px`,p==="fwd"?(c.element.before(h),c.element.after(g)):(c.element.after(h),c.element.before(g))):p==="fwd"?c.element.after(g):c.element.before(g),r(u,f);else if(p==="static")h.style.cssText=`${f}: ${u}px`,c.element.before(h);else throw Error("useDragDisplacers currently only supports noTransition for static displacement");p!=="static"&&lr(a,p)}},[r,s,o,n]),l=nn((a,c,u,d=!1,p="static",m="horizontal")=>{let f=m==="horizontal"?"width":"height",[h,g]=n;s(),d?(e.current?(o(),h.style.cssText=`${f}: ${u}px`,g.style.cssText=`${f}: 0px`,c.element.before(h),c.element.after(g)):p==="fwd"?c.element.after(g):c.element.before(g),r(u,f)):(h.style.cssText=`${f}: ${u}px`,c.element.after(h)),p!=="static"&&lr(a,p)},[r,s,o,n]);return{displaceItem:i,displaceLastItem:l,clearSpacers:o}};var Ri=({draggableRef:t,onDrop:e,orientation:n="horizontal",containerRef:o,itemQuery:r="*",selected:s,viewportRange:i})=>{let l=ut(),a=ut(!1),c=ut(-1),u=ut([]),d=ut(!1),[p,m]=Rp(!1),{clearSpacers:f,displaceItem:h,displaceLastItem:g}=Ei(),y=ut(),v=`:is(${r}${Un}${hi},.vuuOverflowContainer-OverflowIndicator)`,C=S=>u.current.findIndex(D=>D.id===S.id),b=ut();b.current=i;let T=on(()=>{f()},[f]),x=on((S,D,L)=>{let{current:A}=o,{current:H}=y;if(A&&H){u.current=Et(A,n,v,b.current),S==="fwd"?u.current.push(H):u.current.unshift(H);let{size:P}=H,N=c.current+P/2,{current:O}=u,F=Dt(O,N,"fwd");if(F){let G=C(F),W=O[G];L&&S==="fwd"?g(O,O[O.length-1],P,!1,"static",n):h(O,W,P,!0,"static",n)}}},[o,h,g,v,n]),w=on(S=>{let L=S.target.closest(r);L.ariaSelected&&Array.isArray(s)&&s.length>1&&console.log("its a selected element, and we have a multi select");let{current:A}=o;if(A&&L){let{SCROLL_SIZE:H,CLIENT_SIZE:P}=Ee(n),{id:k}=L,{[H]:N,[P]:O}=A;a.current=N>O;let F=u.current=Et(A,n,v,i,k),$=Rt(F),G=F[$];if(G&&A){y.current=G;let W=G.isLast?g:h;console.log({indexOfDraggedItem:$,draggedItem:G}),W(F,G,G.size,!1,"static",n)}}},[o,h,g,v,r,n,s,i]),[R,M]=Ep(()=>{let S=!1;return[A=>{if(!S){S=!0;let H=A.element.querySelector(".vuuPopupMenu");if(H){let P=new MouseEvent("click",{view:window,bubbles:!0,cancelable:!0});H.dispatchEvent(P)}}},A=>{if(S){S=!1;let H=A.element.querySelector(".vuuPopupMenu");if(H){let P=new MouseEvent("click",{view:window,bubbles:!0,cancelable:!0});H.dispatchEvent(P)}}}]},[]),E=on((S,D)=>{let{current:L}=y;if(L&&t.current&&o.current){c.current=S;let{current:A}=u,H=Dt(A,S,D);if(H&&!H.isDraggedItem)if(H.isOverflowIndicator)m(d.current=!0),R(H);else{let{size:P}=L;(C(H)===A.length-1?g:h)(A,H,P,!0,D,n);let O=A.at(-1);M(O),m(d.current=!1)}l.current=D}},[o,h,g,t,M,n,R]),I=on(()=>{var A;f();let{current:S}=u,D=Rt(S),L=S[D];if(L)if(l.current=void 0,d.current)e(L.index,-1);else{let H=Rt(S,!0);e(L.index,H)}if(m(!1),o.current){let H=(A=o.current)==null?void 0:A.scrollTop;D<S.length&&(o.current.scrollTop=H)}},[f,o,e]);return{beginDrag:w,drag:E,drop:I,handleScrollStart:T,handleScrollStop:x,revealOverflowedItems:p}};import{useCallback as rn,useRef as ze,useState as Ii}from"react";import{useCallback as Di,useMemo as Dp}from"react";var Mi=()=>{let t=Dp(()=>Ti(),[]),e=Di(()=>t.remove(),[t]);return{positionDropIndicator:Di((o,r="end")=>(r==="end"?o.element.after(t):o.element.before(t),t),[t]),clearSpacer:e}};import{jsx as Pp}from"react/jsx-runtime";var Mp=':not([data-overflowed="true"])',Ip=':not([aria-hidden="true"])',Pi=({draggableRef:t,onDrop:e,orientation:n="horizontal",containerRef:o,itemQuery:r="*",selected:s,viewportRange:i})=>{let l=ze(),a=ze(null),c=ze(null),u=ze(""),d=ze(!1),p=ze(-1),m=ze([]),f=ze(!1),[h,g]=Ii(!1),[y,v]=Ii(),{clearSpacer:C,positionDropIndicator:b}=Mi(),T=ze(),x=`:is(${r}${Mp}${Ip},[data-overflow-indicator])`,w=A=>m.current.findIndex(H=>H.id===A.id),R=(A,H,P)=>{A.start+=H,A.mid+=H,A.end+=H,typeof P=="number"&&(A.currentIndex+=P)},M=ze();M.current=i;let E=rn(()=>{C()},[C]),I=rn((A,H,P)=>{let{current:k}=o,{current:N}=T;if(k&&N){m.current=Et(k,n,x,M.current);let{size:O}=N,$=p.current+O/2,{current:G}=m,W=Dt(G,$,"fwd");W&&b(P&&A==="fwd"?G[G.length-1]:W,"start")}},[o,b,x,n]),S=rn(A=>{let P=A.target.closest(r);P.ariaSelected&&Array.isArray(s)&&s.length>1&&console.log("its a selected element, and we have a multi select");let{current:k}=o;if(k&&P){let{SCROLL_SIZE:N,CLIENT_SIZE:O}=Ee(n),{id:F}=P,{[N]:$,[O]:G}=k;d.current=$>G;let W=m.current=Et(k,n,x,i),Y=bi(W,F);if(Y&&k){let V=w(Y);yi(W,V),T.current=Y;let{current:z}=M;if(z!=null&&z.atEnd)for(let q=0;q<W.length;q++)R(W[q],Y.size);for(let q=V;q<W.length;q++)R(W[q],-Y.size,-1);let[K,_]=Y.isLast?[W[W.length-1],"end"]:[W[V],"start"];c.current=K,u.current=_;let ne=b(K,_),{top:U,left:j,width:Z}=ne.getBoundingClientRect(),ee={top:Y.isLast?z!=null&&z.atEnd&&!z.atStart?U+Y.size-2:U-2:U-Y.size-2,left:j,width:Z,height:2};v(Pp(Xn,{wrapperClassName:"dropIndicatorContainer",style:ee,ref:a,element:Si()}))}}},[r,s,o,n,x,i,b]),D=rn((A,H)=>{let{current:P}=c,{current:k}=T;if(k&&t.current&&o.current){let N=n==="horizontal"?"left":"top";p.current=A;let{current:O}=m,F=Dt(O,A,H);if(F&&F.index!==(P==null?void 0:P.index)){if(F.isOverflowIndicator)g(f.current=!0);else if(a.current){if(w(F)===O.length-1){let G=O[O.length-1],Y=b(G,"start").getBoundingClientRect();a.current.style[N]=`${Y.top}px`}else{let W=b(F,"start").getBoundingClientRect();a.current.style[N]=`${W.top}px`}g(f.current=!1)}c.current=F,l.current=H}}},[t,o,n,b]),L=rn(()=>{C();let{current:A}=T,{current:H}=c,{current:P}=u,{current:k}=M;if(A&&k&&H){let{index:N}=A,O=P==="start",{index:F,currentIndex:$}=H;c.current=null,l.current=void 0,f.current?e(N,-1):N<F?e(N,O?$:$+1):e(N,O?F:F+1),v(void 0)}g(!1)},[C,e]);return{beginDrag:S,drag:D,drop:L,dropIndicator:y,handleScrollStart:E,handleScrollStop:I,revealOverflowedItems:h}};import{useCallback as Fe,useLayoutEffect as Lp,useRef as Re,useState as kp}from"react";import{useCallback as Li,useRef as Qn}from"react";var ki=({containerRef:t,onScrollingStopped:e,orientation:n="vertical"})=>{let o=Qn(null),r=Qn(!1),s=Qn(0),i=Qn("fwd"),l=Li((c=!1)=>{console.log("[useAutoScroll] stopScrolling"),o.current!==null&&(clearTimeout(o.current),o.current=null),r.current=!1,e==null||e(i.current,s.current,c)},[e]),a=Li((c,u,d=30)=>{let{current:p}=t;if(p){let{SCROLL_POS:m,SCROLL_SIZE:f,CLIENT_SIZE:h}=Ee(n),{[m]:g,[f]:y,[h]:v}=p,C=c==="fwd"?y-v-g:g,b=Math.min(C,d);c==="fwd"?(i.current="fwd",p[m]=s.current=g+b):(i.current="bwd",p[m]=s.current=g-b),b===C?l(!0):(r.current=!0,o.current=window.setTimeout(()=>{a(c,u,d)},100))}},[t,n,l]);return{isScrolling:r,startScrolling:a,stopScrolling:l}};import{jsx as Vp}from"react/jsx-runtime";var Hp={beginDrag:()=>{},drag:()=>{},draggableRef:{current:null},drop:()=>{},isDragging:!1,isScrolling:!1,handleScrollStart:()=>{},handleScrollStop:()=>{},revealOverflowedItems:!1},Hi={start:0,end:1e3,contraStart:0,contraEnd:1e3},Ap=()=>Hp,Op=3,Np=(t,e)=>t.closest(e),zp=t=>t.dataset.index==="overflow"&&t.parentElement!==null&&t.parentElement.classList.contains("overflowed"),Fp=(t,e)=>{let n=`:is(${e}${Un},.vuuOverflowContainer-OverflowIndicator)`,r=Array.from(t.querySelectorAll(n)).pop();return[r,zp(r)]},Mt=({allowDragDrop:t,containerRef:e,draggableClassName:n,itemQuery:o="*",onDragStart:r,onDrop:s,onDropSettle:i,orientation:l,...a})=>{let c=Re({start:0,end:0,contraStart:0,contraEnd:0}),[u,d]=kp({draggable:void 0,draggedItemIndex:-1,isDragging:!1}),p=Re(null),m=Re(),f=Re(null),h=Re(!1),g=Re({x:0,y:0}),y=Re({x:0,y:0}),v=Re({x:0,y:0}),C=Re(null),b=Re(-1),T=Re(-1),x=Re(),{isDragSource:w,isDropTarget:R,register:M}=fi(a.id);a.id&&(w||R)&&M(a.id);let E=Fe(()=>{var Z;let{current:U}=T,j=(Z=e.current)==null?void 0:Z.querySelector(`${o}[data-index="${U}"]`);j&&j.classList.remove("vuuDropTarget-settling"),T.current=-1,i==null||i(U),d(ee=>({...ee,draggable:void 0}))},[e,o,i]),I=Fe(U=>{if(e.current){let{POS:j,SCROLL_POS:Z,SCROLL_SIZE:ee,CLIENT_SIZE:q}=Ee(l),{[Z]:B,[ee]:J,[q]:se}=e.current,oe=J-se,le=B<oe,ce=c.current.end,ae=B>0&&U-g.current[j]<=c.current.start,de=le&&U-g.current[j]>=ce;return ae?"bwd":de?"fwd":""}},[e,l]),S=t===!0||t==="natural-movement"?Ri:t==="drop-indicator"?Pi:Ap,D=Fe((U,j,Z)=>{var ee;(ee=x.current)==null||ee.call(x,U,j,Z)},[]),{isScrolling:L,startScrolling:A,stopScrolling:H}=ki({containerRef:e,onScrollingStopped:D,orientation:l}),P=Fe((U,j)=>{b.current=j,s==null||s(U,j),T.current=j},[s]),{beginDrag:k,drag:N,drop:O,handleScrollStart:F,handleScrollStop:$,...G}=S({...a,containerRef:e,draggableRef:p,isDragSource:w,isDropTarget:R,itemQuery:o,onDrop:P,orientation:l});x.current=$;let W=Fe(U=>{let{CLIENT_POS:j,CONTRA_CLIENT_POS:Z,CONTRA_POS:ee,POS:q}=Ee(l),{clientX:B,clientY:J}=U,{[j]:se,[Z]:oe}=U,le=y.current[q],ce=y.current[ee],ae=Math.abs(le-se);if((w?Math.abs(ce-oe):0)-ae>5&&(c.current=Hi),y.current.x=B,y.current.y=J,c.current===Hi&&p.current){let X=y.current.x-g.current.x,Q=y.current.y-g.current.y;p.current.style.top=`${Q}px`,p.current.style.left=`${X}px`}else if(ae>0&&p.current){let X=le<se?"fwd":"bwd",Q=I(se),te=y.current[q]-g.current[q];if(Q&&h.current&&!L.current?(F(),A(Q,1)):!Q&&L.current&&H(),!L.current){let re=Math.round(Math.max(c.current.start,Math.min(c.current.end,te))),pe=l==="horizontal"?"left":"top";p.current.style[pe]=`${re}px`,N(re,X)}}},[N,p,I,F,w,L,l,A,H]),Y=Fe(()=>{document.removeEventListener("mousemove",W,!1),document.removeEventListener("mouseup",Y,!1),C.current=p.current,O(),d(U=>({...U,draggedItemIndex:-1,isDragging:!1})),m.current=void 0},[W,p,O]),V=Fe(U=>{let{clientX:j,clientY:Z,target:ee}=U,q=Np(ee,o),{current:B}=e;if(B&&q){let{CONTRA:J,CONTRA_END:se,DIMENSION:oe,END:le,SCROLL_SIZE:ce,CLIENT_SIZE:ae,START:de}=Ee(l);m.current=q;let{[ce]:X,[ae]:Q}=B;h.current=X>Q;let[te,re]=Fp(B,o),pe=B.getBoundingClientRect(),Se=q.getBoundingClientRect(),we=Se[oe],{[de]:Ze,[le]:at}=te.getBoundingClientRect();g.current.x=j-Se.left,g.current.y=Z-Se.top,c.current.start=pe[de],c.current.end=re?Math.max(Ze,pe.right-we):h.current?pe[de]+pe[oe]-we:at-we,c.current.contraStart=pe[J],c.current.contraEnd=pe[se],k(U);let{dataset:{index:We="-1"}}=q;d({isDragging:!0,draggable:Vp(Xn,{element:gi(q),onTransitionEnd:E,ref:p,style:xi(Se,pe),wrapperClassName:n}),draggedItemIndex:parseInt(We)}),r==null||r(),document.addEventListener("mousemove",W,!1),document.addEventListener("mouseup",Y,!1)}},[k,e,W,Y,n,p,o,r,l,E]),z=Fe(U=>{let{CLIENT_POS:j,POS:Z}=Ee(l),{[j]:ee}=U;Math.abs(ee-v.current[Z])>Op&&e.current&&(f.current&&(window.clearTimeout(f.current),f.current=null),document.removeEventListener("mousemove",z),document.removeEventListener("mouseup",K,!1),V(U))},[e,k,l]),K=Fe(()=>{f.current&&(window.clearTimeout(f.current),f.current=null),document.removeEventListener("mousemove",z,!1),document.removeEventListener("mouseup",K,!1)},[z]),_=Fe(U=>{let{current:j}=e;if(j&&!U.defaultPrevented){let{clientX:Z,clientY:ee}=U;y.current.x=v.current.x=Z,y.current.y=v.current.y=ee,document.addEventListener("mousemove",z,!1),document.addEventListener("mouseup",K,!1),U.persist(),f.current=window.setTimeout(()=>{document.removeEventListener("mousemove",z,!1),document.removeEventListener("mouseup",K,!1),V(U.nativeEvent)},500)}},[e,V,z,K]),{current:ne}=C;return Lp(()=>{if(ne&&e.current){let U=b.current,j=e.current.querySelector(`${o}[data-index="${U}"]`);j?(j.classList.add("vuuDropTarget-settling"),requestAnimationFrame(()=>{let{top:Z,left:ee}=j.getBoundingClientRect(),{top:q,left:B}=ne.getBoundingClientRect();B!==ee||q!==Z?(ne.classList.add("vuuDraggable-settling"),ne.style.top=`${Z}px`,ne.style.left=`${ee}px`):E()})):console.log(`dont have the dropped item (at ${U})`),C.current=null}},[e,o,ne,E]),{...G,...u,isScrolling:L,onMouseDown:t?_:void 0}};import $p from"classnames";import{useCallback as Ai,useLayoutEffect as Bp,forwardRef as Kp,useRef as cr}from"react";import{Input as Wp,useControlled as Oi}from"@salt-ds/core";import{jsx as Ni}from"react/jsx-runtime";var ur="vuuEditableLabel",It=Kp(function({className:e,defaultEditing:n,defaultValue:o,editing:r,onChange:s,onEnterEditMode:i,onExitEditMode:l,value:a,...c},u){let d=cr(null),p=cr(!1),[m,f]=Oi({controlled:a,default:o!=null?o:"",name:"EditableLabel",state:"value"}),[h,g]=Oi({controlled:r,default:n!=null?n:!1,name:"EditableLabel",state:"editing"}),y=Ai(E=>{g(p.current=E)},[]),v=cr(m);Bp(()=>{h&&d.current!==null&&(d.current.select(),d.current.focus())},[h,d]);let C=Ai(()=>{y(!0),i&&i()},[i,y]),b=({cancelEdit:E=!1,allowDeactivation:I=!1}={})=>{y(!1);let S=v.current;S!==m&&(E?f(S):v.current=m),l&&l(S,m,I,E)},T=E=>{let{value:I}=E.target;f(I),s&&s(I)},x=()=>{C()},w=()=>{p.current&&b({allowDeactivation:!0})},R=E=>{h&&E.key==="Enter"?(E.stopPropagation(),b()):E.key==="ArrowRight"||E.key==="ArrowLeft"?E.stopPropagation():E.key==="Escape"&&b({cancelEdit:!0})},M=$p(ur,e,{[`${ur}-editing`]:h});return Ni("div",{...c,className:M,onDoubleClick:x,"data-text":m,ref:u,children:h?Ni(Wp,{inputProps:{className:`${ur}-input`},value:m,onBlur:w,onChange:T,onKeyDown:R,inputRef:d,style:{padding:0},textAlign:"left",variant:"secondary"}):m})});import{makePrefixer as Gp}from"@salt-ds/core";var _p=/[.*+?^${}()|[\]\\]/g;function jn(t){return t.replace(_p,"\\$&")}import{Fragment as Xp,jsx as dr}from"react/jsx-runtime";var Up=Gp("saltHighlighter"),zi=t=>{let{matchPattern:e,text:n=""}=t,o=typeof e=="string"?new RegExp(`(${jn(e)})`,"gi"):e;return o===void 0?dr(Xp,{children:n}):dr("span",{children:n.split(o).map((r,s)=>r.match(o)?dr("strong",{className:Up("highlight"),children:r},`${s}-${r}`):r)})};import{forwardRef as $i}from"react";import Bi from"classnames";import Qp from"classnames";import{jsx as jp}from"react/jsx-runtime";var Fi="vuuCheckboxIcon",Vi=({checked:t=!1,...e})=>jp("span",{...e,className:Qp(Fi,{[`${Fi}-checked`]:t})});import{jsx as Yn,jsxs as Yp}from"react/jsx-runtime";var sn="vuuListItem",Zn=$i(function(e,n){return Yn("div",{"aria-hidden":!0,className:Bi(sn,`${sn}-proxy`),ref:n})}),qn=$i(function({children:e,className:n,disabled:o,tabIndex:r,item:s,itemHeight:i,itemTextHighlightPattern:l,label:a,selectable:c,selected:u,showCheckbox:d,style:p,...m},f){let h=Bi(sn,n,{vuuDisabled:o,[`${sn}-checkbox`]:d}),g=i!==void 0?{...p,height:i}:p;return Yp("div",{className:h,...m,"aria-disabled":o||void 0,"aria-selected":u||void 0,ref:f,style:g,children:[d&&Yn(Vi,{"aria-hidden":!0,checked:u}),e&&typeof e!="string"?e:l==null?Yn("span",{className:`${sn}-textWrapper`,children:a||e}):Yn(zi,{matchPattern:l,text:a||e})]})});import{partition as Ui}from"@vuu-ui/vuu-utils";import om from"classnames";var Zp={},qp={},Jn={};function me(t,e,n="component"){Jn[t]=e,n==="container"?Zp[t]=!0:n==="view"&&(qp[t]=!0)}import{Button as Ki,useControlled as Jp}from"@salt-ds/core";import Wi from"classnames";import{useCallback as em}from"react";import{jsx as ln,jsxs as nm}from"react/jsx-runtime";var qe="vuuDrawer",_i=t=>typeof t=="string"?t:t+"px",tm=(t,e,n)=>{let o=e!==void 0,r=n!==void 0;if(!(!t&&!r&&!o))return!r&&!o?t:{...t,"--drawer-size":o?_i(e):void 0,"--drawer-peek-size":r?_i(n):void 0}},Gi=({children:t,className:e,clickToOpen:n,defaultOpen:o,sizeOpen:r,sizeClosed:s,style:i,open:l,position:a="left",inline:c,onClick:u,peekaboo:d=!1,toggleButton:p,...m})=>{let[f,h]=Jp({controlled:l,default:o!=null?o:!1,name:"Drawer",state:"open"}),g=Wi(qe,e,`${qe}-${a}`,{[`${qe}-open`]:f,[`${qe}-inline`]:c,[`${qe}-over`]:!c,[`${qe}-peekaboo`]:d}),y=em(()=>{h(!f)},[f,h]),v=tm(i,r,s),C=n?y:u,b=()=>ln("div",{className:Wi("vuuToggleButton-container"),children:f?ln(Ki,{"aria-label":"close",onClick:y,"data-icon":"close",variant:"secondary"}):ln(Ki,{"aria-label":"open",onClick:y,"data-icon":"close",variant:"secondary"})});return nm("div",{...m,className:g,onClick:C,style:v,children:[p=="start"?b():null,ln("div",{className:`${qe}-liner`,children:ln("div",{className:`${qe}-content`,children:t})}),p=="end"?b():null]})};Gi.displayName="Drawer";var pr=Gi;import{jsx as im,jsxs as lm}from"react/jsx-runtime";var rm=t=>t.type===pr,sm=({props:{position:t="left"}})=>t.match(/top|bottom/),Xi=t=>{let{children:e,className:n,id:o,style:r}=t,s="vuuDockLayout",[i,l]=Ui(e,rm),[a,c]=Ui(i,sm),u=a.length===0?"horizontal":c.length===0?"vertical":"both",d=om(s,n,`${s}-${u}`);return lm("div",{className:d,id:o,style:r,children:[i,im("div",{className:`${s}-content`,children:l})]})};Xi.displayName="DockLayout";me("DockLayout",Xi,"container");import{forwardRef as am}from"react";import{jsx as cm}from"react/jsx-runtime";var mr=am(function({resizeable:e,...n},o){return cm("div",{...n,className:"Component",ref:o})});mr.displayName="Component";var fr=mr;me("Component",mr);import PE,{isValidElement as LE}from"react";var um={},Ge=(t,e)=>{var o;let n=be(t);return(o=n[e])!=null?o:n[`data-${e}`]},be=t=>(t==null?void 0:t.props)||t||um;import{Children as dm,isValidElement as Qi,useLayoutEffect as pm,useMemo as mm,useRef as fm}from"react";var hm=[],gm=0,Pt=t=>{let e=Array.isArray(t),n=e?t.length:dm.count(t);return e&&t.every(Qi)?t:n===1&&!e&&Qi(t)?[t]:n>1?t:hm},eo=(t,e)=>{let n=fm(!1);pm(()=>{n.current?t():n.current=!0},e)},Lt=t=>mm(()=>t!=null?t:`vuu-${++gm}`,[t]);var gr={north:1,east:2,south:4,west:8,header:16,centre:32,absolute:64},br={AFTER:"after",BEFORE:"before"},Je=Object.freeze({North:dt("north"),East:dt("east"),South:dt("south"),West:dt("west"),Header:dt("header"),Centre:dt("centre"),Absolute:dt("absolute")});function dt(t){return Object.freeze({offset:t==="north"||t==="west"?0:t==="south"||t==="east"?1:NaN,valueOf:function(){return gr[t]},toString:function(){return t},North:t==="north",South:t==="south",East:t==="east",West:t==="west",Header:t==="header",Centre:t==="centre",NorthOrSouth:t==="north"||t==="south",EastOrWest:t==="east"||t==="west",NorthOrWest:t==="north"||t==="west",SouthOrEast:t==="east"||t==="south",Absolute:t==="absolute"})}var eR=Je.North,tR=Je.South,nR=Je.East,oR=Je.West,rR=Je.Header,sR=Je.Centre;var{north:ym,south:xm,east:Cm,west:vm}=gr,fR=Cm+vm,hR=ym+xm;import{PopupService as xr}from"@vuu-ui/vuu-popups";import Tm from"classnames";import{jsx as ji}from"react/jsx-runtime";function Yi(t,e=0,n=0){let{pos:o,clientRect:r}=t,s=20;return o.position.West?[r.left-n+s,o.y-e,"left"]:o.position.South?[o.x-n,r.bottom-e-s,"bottom"]:o.position.East?[r.right-n-s,o.y-e,"right"]:[o.x-n,r.top-e+s,"top"]}var yr="vuuDropMenu",Zi=({className:t,dropTarget:e,onHover:n,orientation:o})=>{let r=e.toArray();return ji("div",{className:Tm(yr,t,`${yr}-${o}`),onMouseLeave:()=>n(null),children:r.map((s,i)=>ji("div",{className:`${yr}-item`,"data-icon":i===0?"column-2A":"column-2B",onMouseEnter:()=>n(s)},i))})};import{jsx as Im}from"react/jsx-runtime";var Cr=!1,an=null,Le=null,Sm=t=>an=t,wm=([t,e])=>`M${t},${e}`,Em=([t,e])=>`L${t},${e}`,qi=([t,...e])=>`${wm(t)} ${e.map(Em)}Z`,Rm=t=>{if(t){let[e,n,o,r,s,i,l,a]=t;return`M${e},${n} L${o},${r} M${s},${i} L${l},${a}`}else return""};function Dm(){if(document.getElementById("hw-drag-canvas")===null){let t=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,8 +14,9 @@ var _o=(n,e,t)=>{if(!e.has(n))throw TypeError("Cannot "+t)};var Se=(n,e,t)=>(_o(
|
|
|
14
14
|
/>
|
|
15
15
|
</path>
|
|
16
16
|
</svg>
|
|
17
|
-
`,document.body.insertBefore(e,n)}}var Vt=class{constructor(){this.currentPath=null;this.tabMode=null;qu()}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=ks(r),s=document.getElementById("vuu-drop-outline");s==null||s.setAttribute("d",o),this.currentPath=o}clear(){$t=null,wn(),document.body.classList.remove("drawing"),Tr.hidePopup()}get hoverDropTarget(){return $t}getPoints(e,t,r,o,s=0,i=0,l=0){let a=this.tabMode==="tab-only";if(i===0)return[[e,t+l],[e,t+l],[e,t],[e+i,t],[e+i,t],[e+r,t],[e+r,t+o],[e,t+o]];if(a){let c=s;return[[c,t],[c,t],[c+i,t],[c+i,t],[c+i,t+l],[c+i,t+l],[c,t+l],[c,t+l]]}else return s===0?[[e,t+l],[e,t+l],[e,t],[e+i,t],[e+i,t+l],[e+r,t+l],[e+r,t+o],[e,t+o]]:[[e,t+l],[e+s,t+l],[e+s,t],[e+s,t],[e+s,t+l],[e+r,t+l],[e+r,t+o],[e,t+o]]}draw(e,t){let o=wr;if($t!==null)this.drawTarget($t);else if(wr=e.nextDropTarget!=null,e.pos.tab?Ju(e):xe&&wn(),this.drawTarget(e,t),wr){let[s,i,l]=Ps(e);{let a=ed(Ls,{dropTarget:e,onHover:Qu,orientation:l});Tr.showPopup({left:s,top:i,component:a})}}else Tr.hidePopup()}drawTarget(e,t){let o=e.getTargetDropOutline(6,t);if(o){let{l:s,t:i,r:l,b:a,tabLeft:c,tabWidth:u,tabHeight:p,guideLines:d}=o,f=l-s,m=a-i;if(this.currentPath){let y=document.getElementById("vuu-drop-outline");y==null||y.setAttribute("d",this.currentPath)}let h=this.getPoints(s,i,f,m,c,u,p),x=ks(h),v=document.getElementById("hw-drop-outline-animate");v==null||v.setAttribute("to",x),v==null||v.beginElement(),this.currentPath=x;let C=document.getElementById("hw-drop-guides");C==null||C.setAttribute("d",ju(d))}}},Is="transition:margin-left .4s ease-out;margin-left: 63px",As="transition:margin-left .4s ease-out;margin-left: 0px";function Ju(n){var l,a;let{AFTER:e,BEFORE:t}=vr,{clientRect:{Stack:r},pos:{tab:o}}=n,{id:s}=n.component.props,i=null;if(r&&o&&o.positionRelativeToTab!==e){let c=o.positionRelativeToTab===t?1:2,u=`:scope .hwTabstrip > .hwTabstrip-inner > .hwTab:nth-child(${o.index+c})`;i=(l=document.getElementById(s))==null?void 0:l.querySelector(u),i?(xe===null||xe!==i)&&(i.style.cssText=Is,xe&&(xe.style.cssText=As),xe=i):wn()}else if((o==null?void 0:o.positionRelativeToTab)===t){if(xe===null){let c=".vuuHeader-title";i=(a=document.getElementById(s))==null?void 0:a.querySelector(c),i.style.cssText=Is,xe=i}}else wn()}function wn(){xe&&(xe.style.cssText=As,xe=null)}var bT=new Vt;import td from"classnames";import{forwardRef as nd}from"react";import{jsx as rd}from"react/jsx-runtime";var Hs=nd(function({children:e,className:t,dropTarget:r,resizeable:o,...s},i){let l=td("DraggableLayout",t);return rd("div",{className:l,ref:i,...s,children:e})}),Ns="DraggableLayout";Hs.displayName=Ns;te(Ns,Hs,"container");import{useForkRef as Td}from"@salt-ds/core";import wd from"classnames";import{forwardRef as Sd}from"react";import{getUniqueId as hd}from"@vuu-ui/vuu-utils";import Gt,{useCallback as Dn,useMemo as Us,useRef as Mn,useState as gd}from"react";import od from"classnames";import{jsx as sd}from"react/jsx-runtime";var zs="vuuPlaceholder",Sn=({className:n,closeable:e,flexFill:t,resizeable:r,shim:o,...s})=>sd("div",{className:od(zs,n,{[`${zs}-shim`]:o}),...s,"data-placeholder":!0,"data-resizeable":!0});Sn.displayName="Placeholder";te("Placeholder",Sn);import id from"classnames";import ld,{useCallback as Kt,useRef as En,useState as ad}from"react";import{jsx as Fs}from"react/jsx-runtime";var $s=ld.memo(function({column:e,index:t,onDrag:r,onDragEnd:o,onDragStart:s,style:i}){let l=En(),a=En(null),c=En(0),[u,p]=ad(!1),d=Kt(({key:g,shiftKey:w})=>{let D=w?10:1;e&&g==="ArrowDown"?r(t,D):e&&g==="ArrowUp"||!e&&g==="ArrowLeft"?r(t,-D):!e&&g==="ArrowRight"&&r(t,D)},[e,t,r]),f=Kt(g=>{let{key:w}=g;(e&&(w==="ArrowUp"||w==="ArrowDown")||!e&&(w==="ArrowLeft"||w==="ArrowRIght"))&&(s(t),d(g),m.current=d)},[e,d,t,s]),m=En(f),h=g=>m.current(g),x=Kt(g=>{l.current=!0;let w=g[e?"clientY":"clientX"],D=w-c.current;w&&w!==c.current&&r(t,D),c.current=w},[e,t,r]),v=Kt(()=>{var g;window.removeEventListener("mousemove",x,!1),window.removeEventListener("mouseup",v,!1),o(),p(!1),(g=a.current)==null||g.focus()},[x,o,p]),C=Kt(g=>{c.current=e?g.clientY:g.clientX,s(t),window.addEventListener("mousemove",x,!1),window.addEventListener("mouseup",v,!1),g.preventDefault(),p(!0)},[e,x,v,t,s,p]),y=()=>{var g;l.current?l.current=!1:(g=a.current)==null||g.focus()},b=()=>{m.current=f},T=id("Splitter","focusable",{active:u,column:e});return Fs("div",{className:T,"data-splitter":!0,ref:a,role:"separator",style:i,onBlur:b,onClick:y,onKeyDown:h,onMouseDown:C,tabIndex:0,children:Fs("div",{className:"grab-zone"})})});import{uuid as JT}from"@vuu-ui/vuu-utils";import tw from"react";var Bs={},Vs="auto";var mt=n=>{let{style:{width:e=Vs,height:t=Vs}=Bs}=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 Ks(n){let{style:{flex:e,flexGrow:t,flexShrink:r,flexBasis:o}=Bs}=n.props;return typeof e=="number"||o===0&&t===1&&r===1?!0:typeof o!="number"}var cd={},Wt=1,_t=2,ud=n=>typeof n.intrinsicSize=="number",dd=(n,e)=>{let t={};return n.forEach(r=>{t[r]=Ie(e,r)}),t},Rn=(n,e,t)=>n.map((r,o)=>{var a;let s=Ie(r,"resizeable"),{[e]:i}=(a=mt(r))!=null?a:cd,l=Ks(r);return t?{index:o,flexOpen:l,intrinsicSize:i,resizeable:s,...dd(t,r)}:{index:o,flexOpen:l,intrinsicSize:i,resizeable:s}}),Ws=n=>{let e=n.length,t=n.every(ud),r=Array(e).fill(0);if(t&&e>0&&(r[0]=_t,r[e-1]=_t),e<2)return r;for(let o=0,s=0;o<e-1;o++)n[o].resizeable&&!s&&(s=Wt),r[o]+=s;for(let o=e-1;o>0&&(r[o]&Wt&&(r[o]-=Wt),!n[o].resizeable);o--);return r},_s=(n,e)=>{let t=fd(n,e),r=md(n,e),o=t!==-1&&r!==-1?[t,r]:void 0,s=pd(n,o);return[o,s]};function pd(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 fd(n,e){let t=e,r=!1;for(;t>=1&&!r;)t=t-1,r=Gs(n,t);return t}function md(n,e){let t=e,r=!1,o=n.length;for(;t<o-1&&!r;)t=t+1,r=Gs(n,t);return t===o?-1:t}function Gs(n,e){let{placeholder:t,splitter:r,resizeable:o,intrinsicSize:s}=n[e];return!!(!r&&!s&&(t||o))}var bd=n=>!n.splitter&&!n.placeholder,Qs=({children:n,onSplitterMoved:e,style:t})=>{let r=Mn(null),o=Mn(),s=Mn(),i=Mn([]),[,l]=gd({}),a=x=>{s.current=x,l({})},c=(t==null?void 0:t.flexDirection)==="column",u=c?"height":"width",p=Us(()=>Array.isArray(n)?n:Gt.isValidElement(n)?[n]:[],[n]),d=Dn(x=>{let{current:v}=o;if(v){let[C,y]=_s(v,x);C&&(C.forEach(b=>{var g;let T=(g=r.current)==null?void 0:g.childNodes[b];if(T){let{size:w,minSize:D}=Cd(T,u);v[b].currentSize=w,v[b].minSize=D}}),y&&y.forEach(b=>{var g;let T=(g=r.current)==null?void 0:g.childNodes[b];if(T){let{[u]:w}=T.getBoundingClientRect();v[b].flexBasis=w}}))}},[u]),f=Dn((x,v)=>{s.current&&o.current&&a(xd(s.current,o.current,v,u))},[u]),m=Dn(()=>{let x=o.current;x&&(e==null||e(x.filter(bd))),x==null||x.forEach(v=>{v.currentSize=void 0,v.flexBasis=void 0,v.flexOpen=!1})},[e]),h=Dn(x=>Gt.createElement($s,{column:c,index:x,key:`splitter-${x}`,onDrag:f,onDragEnd:m,onDragStart:d}),[f,m,d,c]);return Us(()=>{let[x,v]=yd(p,u,h,i.current);o.current=v,s.current=x},[p,h,u]),{content:s.current||[],rootRef:r}};function yd(n,e,t,r){let o=Rn(n,e),s=Ws(o),i=[],l=[];for(let a=0;a<n.length;a++){let c=n[a];if(a===0&&s[a]&_t&&(i.push(Xs(a)),l.push({placeholder:!0,shim:!0})),c.key==null){let u=r[a]||(r[a]=hd());i.push(Gt.cloneElement(c,{key:u}))}else i.push(c);l.push(o[a]),a>0&&s[a]&_t?(i.push(Xs(a)),l.push({placeholder:!0})):s[a]&Wt&&(i.push(t(i.length)),l.push({splitter:!0}))}return[i,l]}function xd(n,e,t,r){return vd(e,t)?n.map((s,i)=>{let l=e[i],{currentSize:a,flexOpen:c,flexBasis:u}=l,p=a!==void 0;if(p||c){let{flexBasis:d}=s.props.style||{},f=p?l.currentSize:u;return f!==d?Gt.cloneElement(s,{style:{...s.props.style,flexBasis:f,[r]:"auto"}}):s}else return s}):n}function vd(n,e){let t=[];n.forEach((u,p)=>{u.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 u=e<0?-1:1;e=Math.max(0,o-s)*u}let i=n[t[0]],{currentSize:l=0}=i;i.currentSize=l+e;let a=n[t[1]],{currentSize:c=0}=a;return a.currentSize=c-e,!0}function Xs(n){return Gt.createElement(Sn,{shim:n===0,key:`placeholder-${n}`})}function Cd(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}}import{jsx as Ed}from"react/jsx-runtime";var Er="hwFlexbox",Zs=Sd(function(e,t){let{breakPoints:r,children:o,column:s,className:i,flexFill:l,gap:a,fullPage:c,id:u,onSplitterMoved:p,resizeable:d,row:f,spacing:m,splitterSize:h,style:x,...v}=e,{content:C,rootRef:y}=Qs({children:o,onSplitterMoved:p,style:x}),b=wd(Er,i,{[`${Er}-column`]:s,[`${Er}-row`]:f,"flex-fill":l,"full-page":c});return Ed("div",{...v,className:b,"data-resizeable":d||void 0,id:u,ref:Td(y,t),style:{...x,gap:a,"--spacing":m},children:C})});Zs.displayName="Flexbox";var Rr=Zs;import{useCallback as Ad}from"react";var Pn={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"};import{useCallback as sR,useContext as Id,useEffect as iR,useRef as lR,useState as aR}from"react";import cE from"react";import{uuid as Jw}from"@vuu-ui/vuu-utils";import tS from"react";import{uuid as Fw}from"@vuu-ui/vuu-utils";import Vw,{cloneElement as Bw}from"react";import{useCallback as ht}from"react";var he=new Map,ge=new Map;var gt=()=>{let n=ht((i,l)=>{let a=ge.get(i);if(a)return l!==void 0&&a[l]!==void 0?a[l]:l!==void 0?void 0:a},[]),e=ht((i,l,a)=>{if(l===void 0)ge.set(i,a);else if(ge.has(i)){let c=ge.get(i);ge.set(i,{...c,[l]:a})}else ge.set(i,{[l]:a})},[]),t=ht((i,l)=>{if(ge.has(i)){if(l===void 0)ge.delete(i);else if(ge.get(i)[l]){let{[l]:c,...u}=ge.get(i);Object.keys(u).length>0?ge.set(i,u):ge.delete(i)}}},[]),r=ht((i,l)=>{let a=he.get(i);if(a)return l!==void 0?a[l]:a},[]),o=ht((i,l,a)=>{if(l===void 0)he.set(i,a);else if(he.has(i)){let c=he.get(i);he.set(i,{...c,[l]:a})}else he.set(i,{[l]:a})},[]),s=ht((i,l)=>{if(he.has(i)){if(l===void 0)he.delete(i);else if(he.get(i)[l]){let{[l]:c,...u}=he.get(i);Object.keys(u).length>0?he.set(i,u):he.delete(i)}}},[]);return{loadSessionState:n,loadState:r,saveSessionState:e,saveState:o,purgeState:s,purgeSessionState:t}};import{cloneElement as yS}from"react";import uS from"react";import ES from"react";import IS from"react";import{uuid as BS}from"@vuu-ui/vuu-utils";import WS from"react";import{createContext as Ld}from"react";var kd=n=>console.log(`dispatch ${n.type}, have you forgotten to provide a LayoutProvider ?`),js=Ld({dispatchLayoutProvider:kd,version:-1});import{useCallback as BE,useRef as KE}from"react";import{jsx as bR}from"react/jsx-runtime";var be=()=>{let{dispatchLayoutProvider:n}=Id(js);return n};import{jsx as Od}from"react/jsx-runtime";var qs=function(e){let{path:t}=e,r=be(),o=Ad(s=>{r({type:Pn.SPLITTER_RESIZE,path:t,sizes:s})},[r,t]);return Od(Rr,{...e,onSplitterMoved:o})};qs.displayName="Flexbox";te("Flexbox",qs,"container");import{useForkRef as Yd}from"@salt-ds/core";import jd from"classnames";import{forwardRef as qd,useMemo as Jd}from"react";import{useCallback as oi,useEffect as Vd,useRef as kr,useState as Bd}from"react";import{useCallback as Hd,useLayoutEffect as Js,useRef as Nd}from"react";var ti=["height","width"];var Ye=new WeakMap,ni=(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}},ei=new ResizeObserver(n=>{for(let e of n){let{target:t,contentRect:r}=e,o=Ye.get(t);if(o){let{onResize:s,measurements:i}=o,l=!1;for(let[a,c]of Object.entries(i)){let u=ni(t,r,a);u!==c&&(l=!0,i[a]=u)}l&&s&&s(i)}}});function Ln(n,e,t,r=!1){console.log("resizeObserver container",{ref:n.current});let o=Nd(e),s=Hd(i=>{let l=i.getBoundingClientRect();return o.current.reduce((a,c)=>(a[c]=ni(i,l,c),a),{})},[]);Js(()=>{let i=n.current,l=!1;async function a(){Ye.set(i,{measurements:{}}),l=!1;let{fonts:c}=document;if(c&&await c.ready,!l){let u=Ye.get(i);if(u){let p=s(i);u.measurements=p,ei.observe(i),r&&t(p)}}}if(i){if(Ye.has(i))throw Error("useResizeObserver attemping to observe same element twice");a()}return()=>{i&&Ye.has(i)&&(ei.unobserve(i),Ye.delete(i),l=!0)}},[n,s,r,t]),Js(()=>{let i=n.current,l=Ye.get(i);if(l){if(o.current!==e){o.current=e;let a=s(i);l.measurements=a}l.onResize=t}},[e,s,n,t])}function zd(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 Fd=([,n],[,e])=>e-n,Lr=n=>Object.entries(n).sort(Fd).map(([e,t],r,o)=>[e,t,r<o.length-1?o[r+1][1]:9999]),Pr=null,$d=(n="salt")=>{let{xs:e,sm:t,md:r,lg:o,xl:s}=zd(n);return Lr({xs:e,sm:t,md:r,lg:o,xl:s})},ri=n=>(Pr===null&&(Pr=$d(n)),Pr);var Kd=[],si=({breakPoints:n,smallerThan:e},t)=>{let[r,o]=Bd(e?!1:"lg"),s=kr(document.body),i=kr(n?Lr(n):ri()),l=kr("lg"),a=oi(u=>{if(i.current){for(let[p,d]of i.current)if(u>=d)return p}},[i]),c=oi(u=>{if(e){let p=i.current.find(([d])=>d===e);if(p){let[,,d]=p;return u<d}}else return a(u);return u},[e,a]);return Ln(t||s,i.current?["width"]:Kd,({width:u})=>{let p=c(u);p!==l.current&&(l.current=p,o(p))},!0),Vd(()=>{let u=t||s;if(u.current){let p=l.current;if(i.current){let{clientWidth:d}=u.current,f=c(d);l.current=f,f!==p&&o(f)}}},[o,c,t]),r};var Wd="data-collapsible",$R={[Wd]:!0,"data-pad-start":!0,"data-pad-end":!0};import{getUniqueId as _d}from"@vuu-ui/vuu-utils";import{cloneElement as Gd,isValidElement as Ud,useCallback as Xd,useMemo as ii,useRef as Ir}from"react";var Qd=["xs","sm","md","lg","xl"],Zd=12,li=({children:n,cols:e,style:t})=>{let r=Ir(null),o=Ir(null),s=Ir(),i=e!=null?e:Zd,a=(t==null?void 0:t.flexDirection)==="column"?"height":"width",c=ii(()=>Array.isArray(n)?n:Ud(n)?[n]:[],[n]),u=Xd((p,d)=>{let f=Rn(p,d,Qd),m=[],h=[];for(let x=0;x<p.length;x++){let v=p[x],{style:{flex:C,...y}}=v.props;m.push(Gd(v,{key:_d(),style:{...y,"--parent-col-count":i}})),h.push(f[x])}return[m,h]},[i]);return ii(()=>{let[p,d]=u(c,a);o.current=d,s.current=p},[u,c,a]),{cols:i,content:s.current,rootRef:r}};import{jsx as ep}from"react/jsx-runtime";var kn="hwFluidGrid",Ar=qd(function(e,t){let{breakPoints:r,children:o,column:s,cols:i=12,className:l,flexFill:a,gap:c=3,fullPage:u,id:p,onSplitterMoved:d,resizeable:f,row:m,showGrid:h,spacing:x,splitterSize:v,style:C,...y}=e,b=Jd(()=>ft(o),[o]),{cols:T,content:g,rootRef:w}=li({children:b,cols:i,style:C}),D=si({breakPoints:r},w),P=jd(kn,l,{[`${kn}-column`]:s,[`${kn}-row`]:m,[`${kn}-show-grid`]:h,"flex-fill":a,"full-page":u}),E={...C,"--spacing":x,"--grid-col-count":T,"--grid-gap":c};return ep("div",{...y,className:P,"data-breakpoint":D,"data-cols":T,"data-resizeable":f||void 0,id:p,ref:Yd(w,t),style:E,children:g})});Ar.displayName="FluidGrid";import{jsx as tp}from"react/jsx-runtime";var ai=function(e){return tp(Ar,{...e})};ai.displayName="FluidGrid";te("FluidGrid",ai,"container");import{Button as gp}from"@salt-ds/core";import{default as bp,default as yp}from"classnames";import yi,{useRef as xp,useState as xi}from"react";import{useCallback as Ut,useState as np}from"react";var In=(n,e,t,r)=>{var x;let{loadSessionState:o,purgeSessionState:s,purgeState:i,saveSessionState:l}=gt(),[a,c]=np((x=o(n,"contributions"))!=null?x:[]),u=be(),p=Ut((v,C)=>{let y=a.concat([{location:v,content:C}]);l(n,"contributions",y),c(y)},[a,n,l]),d=Ut(()=>{s(n,"contributions"),c([])},[n,s]),f=Ut(()=>{let v=o(n,"data-source");v&&v.unsubscribe(),s(n),i(n),u({type:"remove",path:t})},[u,n,o,s,i,t]),m=Ut(async(v,C,y)=>{var T;v.stopPropagation();let b=(T=e.current)==null?void 0:T.getBoundingClientRect();return new Promise((g,w)=>{u({type:"drag-start",evt:v,path:C===void 0?t:`${t}.${C}`,dragRect:b,preDragActivity:y,dropTargets:r,resolveDragStart:g,rejectDragStart:w})})},[e,u,t,r]);return[Ut(async(v,C)=>{var b;let{type:y}=v;switch(y){case"maximize":case"minimize":case"restore":return u({type:y,path:(b=v.path)!=null?b:t});case"remove":return f();case"mousedown":return m(C,v.index,v.preDragActivity);case"add-toolbar-contribution":return p(v.location,v.content);case"remove-toolbar-contribution":return d();default:return}},[u,t,f,m,p,d]),a]};import{useForkRef as lp,useIdMemo as ap}from"@salt-ds/core";import cp from"classnames";import Nr,{forwardRef as up,useCallback as dp,useMemo as pp,useRef as hi,useState as fp}from"react";import{useCallback as je,useMemo as ci}from"react";var ui=({id:n,rootRef:e,path:t,dropTargets:r,title:o})=>{let s=be(),{loadState:i,loadSessionState:l,purgeState:a,saveState:c,saveSessionState:u}=gt(),[p,d]=In(n,e,t,r),f=ci(()=>{var g;return(g=i("view-title"))!=null?g:o},[i,o]),m=je(g=>{t&&s({type:"set-title",path:t,title:g})},[s,t]),h=ci(()=>i(n),[n,i]),x=je(g=>i(n,g),[n,i]),v=je(g=>{a(n,g),s({type:"save"})},[n,s,a]),C=je((g,w)=>{c(n,w,g),s({type:"save"})},[n,s,c]),y=je(g=>l(n,g),[n,l]),b=je((g,w)=>u(n,w,g),[n,u]),T=je(({type:g,...w})=>{let{[g]:D}=w;C(D,g)},[C]);return{contributions:d,dispatchViewAction:p,load:x,loadSession:y,onConfigChange:T,onEditTitle:m,purge:v,restoredState:h,save:C,saveSession:b,title:f}};import{useCallback as di,useRef as pi}from"react";var rp=[],fi=({mainRef:n,resize:e="responsive",rootRef:t})=>{let r=e==="defer",o=pi({}),s=pi(),i=di(()=>{n.current&&(n.current.style.height=o.current.height+"px",n.current.style.width=o.current.width+"px"),s.current=void 0},[n]),l=di(({height:a,width:c})=>{o.current.height=a,o.current.width=c,s.current!==null&&clearTimeout(s.current),s.current=window.setTimeout(i,40)},[i]);Ln(t,r?ti:rp,l,r)};import op,{useContext as sp}from"react";var ip={dispatch:null},Or=op.createContext(ip),mi=()=>{var e;let n=sp(Or);return(e=n==null?void 0:n.dispatch)!=null?e:null};import{jsx as Hr,jsxs as hp}from"react/jsx-runtime";var Xt="vuuView",mp=(n,e)=>n&&e?{...n,...e}:n||e,gi=up(function(e,t){let{Header:r=bi,children:o,className:s,collapsed:i,closeable:l,"data-path":a,"data-resizeable":c,dropTargets:u,expanded:p,flexFill:d,id:f,header:m,orientation:h="horizontal",path:x=a,resize:v="responsive",resizeable:C=c,tearOut:y,style:b={},title:T,...g}=e,w=ap(f),D=hi(null),P=hi(null),[E,R]=fp(),{contributions:S,dispatchViewAction:M,load:I,loadSession:L,onConfigChange:k,onEditTitle:O,purge:A,restoredState:N,save:H,saveSession:V,title:z}=ui({id:w,rootRef:D,path:x,dropTargets:u,title:T});fi({mainRef:P,resize:v,rootRef:D});let B=dp($=>{R($)},[]),W=()=>Nr.isValidElement(o)&&(N||E)?Nr.cloneElement(o,mp(N,E)):o,Q=pp(()=>({dispatch:M,id:w,path:x,title:z,load:I,loadSession:L,onConfigChange:k,purge:A,save:H,saveSession:V,setComponentProps:B}),[M,w,I,L,k,x,A,H,V,B,z]),F=typeof m=="object"?m:{};return Hr("div",{...g,className:cp(Xt,s,{[`${Xt}-collapsed`]:i,[`${Xt}-expanded`]:p,[`${Xt}-resize-defer`]:v==="defer"}),"data-resizeable":C,id:w,ref:lp(t,D),style:b,tabIndex:-1,children:hp(Or.Provider,{value:Q,children:[m?Hr(r,{...F,collapsed:i,contributions:S,expanded:p,closeable:l,onEditTitle:O,orientation:h,tearOut:y,title:z}):null,Hr("div",{className:`${Xt}-main`,ref:P,children:W()})]})})});gi.displayName="View";var bt=Nr.memo(gi);bt.displayName="View";te("View",bt,"view");import{jsx as Qt}from"react/jsx-runtime";var bi=({className:n,contributions:e,collapsed:t,closeable:r,onEditTitle:o,orientation:s="horizontal",style:i,title:l="Untitled"})=>{let a=xp(null),[c,u]=xi(l),[p,d]=xi(!1),f=mi(),m=R=>f==null?void 0:f({type:"remove"},R),h="vuuHeader",x=()=>{var R;(R=a.current)==null||R.focus()},v=R=>{R.stopPropagation()},y=bp(h,n,`${h}-${t||s}`),b=()=>{d(!0)},T=R=>{R.key==="Enter"&&d(!0)},g=(R="",S="",M=!0,I=!1)=>{var L;d(!1),I?u(R):S!==R&&(u(S),o==null||o(S)),M===!1&&((L=a.current)==null||L.focus())},w=R=>{f==null||f({type:"mousedown"},R)},D=[],P=[],E=[];return e==null||e.forEach((R,S)=>{switch(R.location){case"pre-title":D.push(yi.cloneElement(R.content,{key:S}));break;default:P.push(yi.cloneElement(R.content,{key:S}))}}),l&&D.push(Qt(pt,{editing:p,value:c,onChange:u,onMouseDownCapture:x,onEnterEditMode:b,onExitEditMode:g,onKeyDown:T,ref:a,tabIndex:0},"title")),r&&E.push(Qt(gp,{"data-icon":"close",onClick:m,onMouseDown:v,variant:"secondary"},"close")),P.length>0&&D.push(Qt("div",{className:"vuuTooltrayProxy","data-align":"end",children:P},"contributions")),E.length>0&&D.push(Qt("div",{className:"vuuTooltrayProxy","data-align":"end",children:E},"actions")),Qt("div",{className:yp("vuuToolbarProxy",y),style:i,onMouseDown:w,children:D})};import{PopupMenu as zp}from"@vuu-ui/vuu-popups";import On from"classnames";import Fp,{forwardRef as $p}from"react";import{isValidNumber as Ap,MEASURES as Op}from"@vuu-ui/vuu-utils";import{useCallback as Pi,useMemo as $r,useRef as Hp,useState as Np}from"react";var vp=".vuuOverflowContainer-item:not(.wrapped)",Cp=n=>n.sort((e,t)=>{let{dataset:{index:r="?"}}=e,{dataset:{index:o="?"}}=t,s=e.classList.contains("wrapped"),i=t.classList.contains("wrapped"),l=r==="overflow",a=o==="overflow";return s&&!i?1:!s&&i?-1:l?1:a?-1:parseInt(r)>parseInt(o)?1:-1}),zr=[],Zt=(n,e="horizontal")=>{let t=[],r=[],o=-1,s=!1,i=Cp(Array.from(n.children)),l=e==="vertical"?"top":"left";for(let a of i){let c=a,{dataset:{index:u="?",label:p="?",overflowPriority:d="0"}}=c,{[l]:f}=c.getBoundingClientRect();f<=o?(u==="overflow"?r.push(t.pop()):r.push({index:u,label:p,overflowPriority:d}),s=!0):s?r.push({index:u,label:p,overflowPriority:d}):t.push({index:u,label:p,overflowPriority:d}),o=f}return[t,r]},vi=(n,e)=>{let t=!1;e.find(({index:r})=>r==="overflow")&&e.length===1&&(t=!0);for(let r of n.children){let{dataset:{index:o="?"}}=r;e.length===0||t?n.classList.remove("overflowed"):n.classList.add("overflowed"),o!=="overflow"&&e.find(s=>s.index===o)?r.classList.add("wrapped"):r.classList.remove("wrapped")}},Tp=(n,{overflowPriority:e})=>Math.max(n,parseInt(e)),wp=(n,{overflowPriority:e})=>Math.min(n,parseInt(e)),Ci=n=>{var e;return n.length>1&&((e=n.at(-1))==null?void 0:e.index)==="overflow"},Sp=n=>{let[e]=n;for(let t=1;t<n.length;t++){let r=n[t];parseInt(r.overflowPriority)>parseInt(e.overflowPriority)&&(e=r)}return e},Ti=(n,e)=>{var o;let t=n.reduce(wp,Number.MAX_SAFE_INTEGER);return e.reduce(Tp,0)>t?!0:e.length>1&&((o=e.at(-1))==null?void 0:o.index)==="overflow"},wi=(n,e)=>new Promise(t=>{requestAnimationFrame(()=>{let[,r]=Zt(n);Dp(e,r).forEach(s=>Ep(n,s)),t(r)})}),Si=(n,e,t)=>new Promise(r=>{requestAnimationFrame(()=>{let[,o]=Zt(n),s=Sp(o);if(s){let[i,l]=Fr(n,s);r([i,l])}else r([e,t])})}),Ei=(n,e)=>n.querySelector(`[data-index="${e.index}"]`),Ep=(n,e)=>{let t=Ei(n,e);if(t)t.classList.add("wrapped");else throw Error(`markElementAsWrapped element item with index ${e.index} not found`)},Rp=n=>Array.from(n.querySelectorAll(".wrapped")),Dp=(n,e)=>{let t=[];for(let r of e)n.find(({index:o})=>o===r.index)||t.push(r);return t},Mp=(n,e)=>{Rp(n).forEach(r=>{let{dataset:{index:o="?"}}=r;e.find(s=>s.index===o)||r.classList.remove("wrapped")})},Ri=n=>n.querySelector('[data-index="overflow"]'),Pp=n=>n.querySelector(".wrapped"),An=n=>parseInt(getComputedStyle(n).getPropertyValue("width")),Di=(n,e)=>{let{right:t}=n.getBoundingClientRect(),r=parseInt(getComputedStyle(n).getPropertyValue("padding-right")),{right:o}=e.getBoundingClientRect();return t-r-o},Mi=n=>{let e=Ri(n),t=Di(n,e),r=An(e),o=Pp(n);return An(o)<=t+r?(n.classList.remove("overflowed"),o.classList.remove("wrapped"),!0):!1},Lp=(n,e)=>{let{dataset:{index:t="0",overflowPriority:r="0"}}=n,{dataset:{index:o="0",overflowPriority:s="0"}}=e;return r>s?-1:r<s?1:parseInt(t)-parseInt(o)},kp=n=>Array.from(n.querySelectorAll(vp)).sort(Lp),Fr=(n,e)=>{let t=kp(n),r=Ei(n,e),o=-1,s=t.at(o),i=An(s),l=An(r),a=Ri(n),c=Di(n,a)+i;if(c>=l)Ip(r,s);else{let{left:d}=s.getBoundingClientRect(),f=c,m=[s];for(;c<l;){o-=1,s=t.at(o),m.push(s);let{left:h}=s.getBoundingClientRect(),x=d-h;c=f+x}r==null||r.classList.remove("wrapped"),m.forEach(h=>{h.classList.add("wrapped")})}let[u,p]=Zt(n);return Mp(n,p),[u,p]},Ip=(n,e)=>{if(!n||!e)throw Error("switchWrapOnElements, element undefined");n.classList.remove("wrapped"),e.classList.add("wrapped")};var Li=({itemCount:n,onSwitchWrappedItemIntoView:e,orientation:t="horizontal"})=>{let[r,o]=Np(null),s=Hp(zr),i=Pi(async()=>{if(r){let[d,f]=Zt(r,t);for(console.log({nonWrapped:d,wrapped:f}),vi(r,f),Ci(f)&&(f=await wi(r,f));Ti(d,f);)[d,f]=await Si(r,d,f);f.length===1&&Mi(r)&&(f=zr),s.current=f}},[r,t]),l=d=>typeof d=="object"&&d!==null&&"overflowItem"in d,[a,c]=$r(()=>[()=>{let{current:d}=s;return d.map(f=>({label:f.label,action:`activate-item-${f.index}`,options:{overflowItem:f}}))},({options:d})=>{if(r&&l(d)){let[,f]=Fr(r,d.overflowItem);s.current=f,e==null||e(d.overflowItem)}return!0}],[r,e]),u=$r(()=>{let{sizeProp:d}=Op[t],f=0;return new ResizeObserver(m=>{for(let h of m){let{[d]:x}=h.contentRect;Ap(x)&&f!==x&&(f=x,i())}})},[i,t]);Ds(()=>{i()},[i,n]),$r(()=>{r&&u.observe(r)},[r,u]);let p=Pi(d=>{o(d)},[]);return{menuActionHandler:c,menuBuilder:a,rootRef:p}};import{jsx as Yt,jsxs as Vp}from"react/jsx-runtime";var yt="vuuOverflowContainer",ki=Fp.memo(({children:n,className:e,height:t,onSwitchWrappedItemIntoView:r,orientation:o="horizontal",overflowIcon:s})=>{let i=ft(n),{menuActionHandler:l,menuBuilder:a,rootRef:c}=Li({itemCount:i.length,onSwitchWrappedItemIntoView:r,orientation:o}),p={"--overflow-container-height":`${o==="vertical"?"100%":`${t}px`}`},d=On(`${yt}-wrapContainer`,e,{[`${yt}-horizontal`]:o==="horizontal",[`${yt}-vertical`]:o==="vertical"});return Vp("div",{className:d,ref:c,style:p,children:[i.map((f,m)=>{let{"data-overflow-priority":h="0",id:x,label:v=`Item ${m+1}`}=f.props;return Yt("div",{className:On(`${yt}-item`),"data-index":m,"data-label":v,"data-overflow-priority":h,id:`${x}-wrapper`,children:f},m)}),Yt("div",{className:`${yt}-OverflowIndicator`,"data-index":"overflow",children:Yt(zp,{icon:s,menuBuilder:a,menuActionHandler:l})})]})});ki.displayName="OverflowContainer.InnerContainer";var Ii=$p(function({children:e,className:t,height:r=44,onSwitchWrappedItemIntoView:o,orientation:s,overflowIcon:i,...l},a){return Yt("div",{...l,className:On(On(yt,t)),ref:a,children:Yt(ki,{height:r,orientation:s,overflowIcon:i,onSwitchWrappedItemIntoView:o,children:e})})});import{uuid as Bp}from"@vuu-ui/vuu-utils";import{List as Kp,ListItem as Wp}from"@salt-ds/lab";import Ai from"classnames";import{cloneElement as _p,memo as Gp}from"react";import{jsx as Vr}from"react/jsx-runtime";var Up=n=>{let e=n.cloneNode(!0);return e.id="",delete e.dataset.idx,e},Oi=Gp(({className:n,children:e,idx:t,resizeable:r,header:o,closeable:s,...i})=>Vr(Wp,{className:Ai("vuuPaletteItem",n),"data-draggable":!0,...i}));Oi.displayName="PaletteItem";var Xp=({children:n,className:e,orientation:t="horizontal",ViewProps:r,...o})=>{let s=be(),i="vuuPalette";function l(a){var w;let u=a.target.closest(".vuuPaletteItem"),p=parseInt((w=u.dataset.idx)!=null?w:"-1");p!==-1&&console.log({children:n,idx:p,listItemElement:u});let{props:{caption:d,children:f,template:m,...h}}=n[p],{height:x,left:v,top:C,width:y}=u.getBoundingClientRect(),b=Bp(),g=m?f:Vr(bt,{...r,...{id:b,key:b},...h,title:h.label,children:f});s({dragRect:{left:v,top:C,right:v+y,bottom:C+150,width:y,height:x},dragElement:Up(u),evt:a.nativeEvent,instructions:{DoNotRemove:!0,DoNotTransform:!0,RemoveDraggableOnDragEnd:!0,dragThreshold:10},path:"*",payload:g,type:"drag-start"})}return Vr(Kp,{...o,borderless:!0,className:Ai(i,e,`${i}-${t}`),maxHeight:800,selected:null,children:n.map((a,c)=>a.type===Oi?_p(a,{key:c,onMouseDown:l}):a)})};te("Palette",Xp,"view");import Qp from"classnames";import Br,{forwardRef as Zp,useCallback as Yp}from"react";import{jsx as Ni,jsxs as tf}from"react/jsx-runtime";var Hi="Tabs",jp=()=>{},qp=(n,e)=>{var t,r;return(r=(t=n.props)==null?void 0:t.title)!=null?r:`Tab ${e+1}`},Jp=n=>{let e=[];return Br.Children.forEach(n,t=>{Br.isValidElement(t)?e.push(t):console.warn("Stack has unexpected child element type")}),e},ef={allowAddTab:!1,allowCloseTab:!1,allowRenameTab:!1},Kr=Zp(function({active:e=0,children:t,className:r,getTabIcon:o=jp,getTabLabel:s=qp,id:i,keyBoardActivation:l="manual",onAddTab:a,onMoveTab:c,onTabClose:u,onTabEdit:p,onTabSelectionChanged:d,showTabs:f="top",style:m,TabstripProps:h=ef},x){var E;let v=Tn(i),{allowCloseTab:C,allowRenameTab:y}=h,b=Yp((R,S,M,I)=>{p==null||p(I,S)},[p]),T=()=>{var R;return Br.isValidElement(t)?t:Array.isArray(t)&&(R=t[e])!=null?R:null},g=()=>Jp(t).map((R,S)=>{let M=`${v}-${S}`,{closeable:I=C,id:L}=R.props;return Ni(Fi,{ariaControls:`${M}-tab`,"data-icon":o(R,S),id:M,index:S,label:s(R,S),closeable:I,editable:y},L!=null?L:S)}),w=T(),D=f==="left"||f==="right",P=D?"vertical":"horizontal";return tf("div",{className:Qp(Hi,r,{[`${Hi}-horizontal`]:D}),style:m,id:v,ref:x,children:[f?Ni(zi,{...h,activeTabIndex:(E=h==null?void 0:h.activeTabIndex)!=null?E:w===null?-1:e,allowDragDrop:h.allowDragDrop!==!1,animateSelectionThumb:!0,className:"vuuTabHeader",keyBoardActivation:l,onActiveChange:d,onAddTab:a,onCloseTab:u,onExitEditMode:b,onMoveTab:c,orientation:P,children:g()}):null,w]})});Kr.displayName="Stack";import{useIdMemo as nf}from"@salt-ds/core";import rf,{useCallback as Wr,useRef as of}from"react";import{jsx as _r}from"react/jsx-runtime";var sf=n=>_r(bt,{resizeable:!0,title:`Tab ${n}`,style:{flexGrow:1,flexShrink:0,flexBasis:0},header:!0,closeable:!0,children:_r(br,{style:{flex:1}})}),$i=n=>{let e=of(null),t=be(),{loadState:r}=gt(),{createNewChild:o=sf,id:s,onTabSelectionChanged:i,path:l,...a}=n,{children:c}=n,u=nf(s),[p]=In(u,e,l),d=y=>{l&&(t({type:"switch-tab",path:l,nextIdx:y}),i==null||i(y))},f=Wr(y=>{if(Array.isArray(c)){let{props:{"data-path":b,path:T=b}}=c[y];t({type:"remove",path:T})}},[c,t]),m=Wr(()=>{if(l){let y=rf.Children.count(c),b=o(y);t({type:"add",path:l,component:b})}},[c,o,t,l]),h=Wr((y,b)=>{l&&t({fromIndex:y,toIndex:b,path:l,type:"move-child"})},[t,l]);return _r(Kr,{...a,id:u,getTabLabel:(y,b)=>{let{id:T,title:g}=y.props;return r(T,"view-title")||g||`Tab ${b+1}`},onMouseDown:async(y,b)=>{let T;await p({type:"mousedown",index:b,preDragActivity:async()=>new Promise(D=>{console.log("preDragActivity: Ok, gonna release the drag"),T=D})},y)&&(T==null||T(void 0))},onMoveTab:h,onAddTab:m,onTabClose:f,onTabEdit:(y,b)=>{t({type:"set-title",path:`${l}.${y}`,title:b})},onTabSelectionChanged:d,ref:e})};$i.displayName="Stack";te("Stack",$i,"container");import GP,{useState as UP}from"react";import{jsx as YP,jsxs as jP}from"react/jsx-runtime";import{FormField as lL,Input as aL}from"@salt-ds/core";import{jsx as dL,jsxs as pL}from"react/jsx-runtime";var Hn="(\\d+)(?:px)?",lf=`^(?:${Hn}(?:\\s${Hn}(?:\\s${Hn}(?:\\s${Hn})?)?)?)$`,cL=new RegExp(lf);import bL from"react";import xL from"classnames";import{jsx as SL}from"react/jsx-runtime";import{Button as Df}from"@salt-ds/core";import Mf from"classnames";import Pf,{useMemo as Lf,useRef as kf}from"react";import{useCallback as pe,useRef as wf}from"react";var Vi=n=>typeof n=="object"&&n!==null&&"tabIndex"in n&&typeof n.tabIndex=="number",Bi=n=>({label:"Close",location:"tab",action:"close-tab",options:n}),Ki=n=>({label:"Rename",location:"tab",action:"rename-tab",options:n});var cf=n=>{if(n){let e=parseInt(n.dataset.index||"");if(!isNaN(e))return e}return-1},Wi=(n,e)=>{if(n){let t=n.querySelector(`[data-index]:has(${e})`);return cf(t)}return-1},Gr=n=>Wi(n,'[aria-selected="true"]'),_i=n=>Wi(n,".vuuEditableLabel-editing");import{isValidNumber as Ur,MEASURES as uf}from"@vuu-ui/vuu-utils";import{useCallback as Xr,useMemo as df,useRef as Gi}from"react";var Ui=(n,e,t="horizontal")=>{let r=Gi(!1),o=Xr(()=>{r.current=!0},[]),s=Xr(()=>{r.current=!1},[]),i=Xr(()=>{var a,c;(a=n.current)==null||a.style.setProperty("--tab-thumb-transition","none"),(c=n.current)==null||c.removeEventListener("transitionend",i)},[n]),l=Gi(-1);return df(()=>{var u,p;let a=0,c=0;if(l.current!==-1){let d=(u=n.current)==null?void 0:u.querySelector(".vuuTab-selected"),f=(p=n.current)==null?void 0:p.querySelector(`[data-index="${e}"] .vuuTab`),{positionProp:m,sizeProp:h}=uf[t];if(d&&f&&!r.current){let{[m]:x,[h]:v}=d.getBoundingClientRect(),{[m]:C}=f.getBoundingClientRect();if(Ur(x)&&Ur(C)&&Ur(v)){console.log({orientation:t,positionProp:m,oldPosition:x,newPosition:C}),a=x-C,c=v;let b=Math.abs(a/(t==="horizontal"?1100:700));requestAnimationFrame(()=>{var T,g,w,D;(T=n.current)==null||T.style.setProperty("--tab-thumb-offset","0px"),(g=n.current)==null||g.style.setProperty("--tab-thumb-size","100%"),(w=n.current)==null||w.style.setProperty("--tab-thumb-transition",`all ${b}s ease`),(D=n.current)==null||D.addEventListener("transitionend",i)})}}}return l.current=e,r.current?{containerStyle:{"--tab-thumb-offset":"0px","--tab-thumb-size":"100%"},resumeAnimation:s,suspendAnimation:o}:{containerStyle:{"--tab-thumb-offset":`${a}px`,"--tab-thumb-size":c?`${c}px`:void 0},resumeAnimation:s,suspendAnimation:o}},[e,n,t,i,s,o])};import{useControlled as pf}from"@salt-ds/core";import{getFocusableElement as ff}from"@vuu-ui/vuu-utils";import{useCallback as De,useRef as Qr,useState as Xi}from"react";import{ArrowDown as ji,ArrowUp as mf,ArrowLeft as hf,ArrowRight as gf,Home as Qi,End as Zi}from"@vuu-ui/vuu-utils";var qi={horizontal:{[Qi]:"start",[Zi]:"end",[hf]:"bwd",[gf]:"fwd"},vertical:{[Qi]:"start",[Zi]:"end",[mf]:"bwd",[ji]:"fwd"}},bf=(n,e="horizontal")=>qi[e][n]!==void 0,yf=n=>n===ji;function Yi(n,e,t){return e==="start"?0:e==="end"?n-1:e==="bwd"?t>0?t-1:t:t===null?0:t===n-1?t:t+1}var xf=n=>n!==null&&!n.classList.contains("wrapped"),Nn=(n,e)=>n?n.querySelector(`[data-index="${e}"]`):null,Ji=({containerRef:n,defaultHighlightedIdx:e=-1,highlightedIdx:t,keyBoardActivation:r,orientation:o,selectedIndex:s=0})=>{let i=r==="manual",l=Qr(!1),a=Qr(-1),[c,u]=Xi(!1),[,p]=Xi({}),[d,f]=pf({controlled:t,default:e,name:"UseKeyboardNavigation"}),m=De(S=>{f(a.current=S)},[f]),h=Qr(!1),x=De((S,M=!1,I,L=70)=>{m(S),I===!0&&!h.current&&(h.current=!0);let k=()=>{let O=Nn(n.current,S);if(O){let A=ff(O);A==null||A.focus()}};M?k():setTimeout(k,L)},[n,m]),v=S=>{if(a.current===-1&&S.target.tabIndex!==-1){let M=_i(n.current);M!==-1?requestAnimationFrame(()=>{m(M)}):setTimeout(()=>{a.current===-1&&s!==null&&m(s)},200)}},C=De(()=>{var S,M;return(M=(S=n.current)==null?void 0:S.querySelectorAll("[data-index]").length)!=null?M:0},[n]),y=De((S="fwd",M)=>{let I=C(),k=Yi(I,S,typeof M=="number"?M:I),O=S==="start"?"fwd":S==="end"?"bwd":S;for(;(O==="fwd"&&k<I||O==="bwd"&&k>0)&&!xf(Nn(n.current,k));){let A=Yi(I,O,k);if(A===k)break;k=A}return k},[n,C]),b=De((S,M=!1)=>{let I=qi[o][S.key],L=y(I,d);L!==d?i&&x(L,!0):M&&p({})},[d,i,y,x,o]),T=De(()=>{let S=Nn(n.current,d);return S?S.querySelector(".vuuPopupMenu")!=null:!1},[n,d]),g=De(()=>{let S=Nn(n.current,d),M=S==null?void 0:S.querySelector(".vuuPopupMenu");if(M){let I=new MouseEvent("click",{view:window,bubbles:!0,cancelable:!0});M.dispatchEvent(I)}return!1},[n,d]),w=De(S=>{C()>0&&bf(S.key,o)?(S.preventDefault(),h.current?b(S):(h.current=!0,b(S,!0))):yf(S.key)&&T()&&g()},[g,C,T,b,o]),D=(S,M)=>{m(M)},P=De(()=>{c||(u(!0),l.current?l.current=!1:h.current=!0)},[c]),E=De(()=>{c||(l.current=!0),h.current=!1},[c]);return{containerProps:{onBlur:S=>{let M=S.target.closest(".vuuTabstrip"),I=S.relatedTarget;M&&!(M!=null&&M.contains(I))&&(m(-1),u(!1))},onMouseDownCapture:E,onFocus:P,onMouseLeave:()=>{h.current=!0,m(-1),l.current=!1}},focusVisible:h.current?d:-1,focusIsWithinComponent:c,highlightedIdx:d,focusTab:x,onClick:D,onFocus:v,onKeyDown:w,setHighlightedIdx:m}};import{useControlled as vf}from"@salt-ds/core";import{useCallback as zn}from"react";var Cf=["Enter"," "],Tf=n=>n&&n.matches('[class*="vuuTab "]'),el=({defaultSelected:n,highlightedIdx:e,onSelectionChange:t,selected:r})=>{let[o,s,i]=vf({controlled:r,default:n!=null?n:0,name:"Tabstrip",state:"value"}),l=zn(p=>Cf.includes(p.key),[]),a=zn(p=>{s(p),t==null||t(p)},[t,s]),c=zn(p=>{let d=p.target;l(p)&&e!==o&&Tf(d)&&(p.stopPropagation(),p.preventDefault(),a(e))},[l,e,o,a]),u=zn((p,d)=>{d!==o&&a(d)},[a,o]);return{activateTab:a,isControlled:i,onClick:u,onKeyDown:c,selected:o}};var Sf=new Set(["Enter"," "]),Ef=n=>Sf.has(n),Rf=(n,e)=>n?n.querySelector(`[data-index="${e}"]`):null,tl=({activeTabIndex:n,allowDragDrop:e,animateSelectionThumb:t,containerRef:r,onActiveChange:o,onAddTab:s,onCloseTab:i,onExitEditMode:l,onMoveTab:a,orientation:c,keyBoardActivation:u})=>{let p=wf(n),{focusTab:d,highlightedIdx:f,onClick:m,onKeyDown:h,setHighlightedIdx:x,...v}=Ji({containerRef:r,keyBoardActivation:u,orientation:c,selectedIndex:p.current}),{activateTab:C,onClick:y,onKeyDown:b,selected:T}=el({highlightedIdx:f,onSelectionChange:o,selected:n});p.current=T;let{containerStyle:g,resumeAnimation:w,suspendAnimation:D}=Ui(r,t?T:-1,c),P=pe((F,$)=>{let{current:G}=p;console.log(`useTabstrip handleDrop ${F} - ${$} ${G}`),a==null||a(F,$);let oe=-1;$!==-1&&(G===F?oe=$:F>G&&$<=G?oe=G+1:F<G&&$>=G&&(oe=G-1),oe!==-1&&(D(),C(oe),requestAnimationFrame(w)),d($,!1,!1,350))},[d,a,w,C,D]),{onMouseDown:E,...R}=vn({allowDragDrop:e,containerRef:r,draggableClassName:`tabstrip-${c}`,onDrop:P,orientation:"horizontal",itemQuery:".vuuOverflowContainer-item"}),S=pe((F,$,G,oe)=>{console.log(`handleExitEditMode ${F} ${$} ${G} ${oe}`),l==null||l(F,$,G,oe),G||d(oe,!1,!0)},[d,l]),M=pe((F,$)=>{m(F,$),y(F,$)},[m,y]),I=pe((F=f)=>{let $=Rf(r.current,F);if($)return $.querySelector(".vuuEditableLabel")},[r,f]),L=pe((F=f)=>{let $=I(F);return $?$.classList.contains("vuuEditableLabel-editing"):!1},[I,f]),k=pe((F=f)=>{let $=I(F);if($){let G=new MouseEvent("dblclick",{view:window,bubbles:!0,cancelable:!0});$.dispatchEvent(G)}},[I,f]),O=pe(F=>{h(F),F.defaultPrevented||b(F),!F.defaultPrevented&&Ef(F.key)&&k()},[k,h,b]),A=pe(F=>{let $=Gr(r.current),G=$>F?$-1:$===F?0:$;return D(),i==null||i(F,G),setTimeout(()=>{w()},200),!0},[r,i,w,D]),N=pe(F=>(k(F),!0),[k]),H=pe(F=>{if(Vi(F.options))switch(F.menuId){case"close-tab":return A(F.options.tabIndex);case"rename-tab":return N(F.options.tabIndex);default:console.log(`tab menu action ${F.menuId}`)}return!1},[A,N]),V=pe(()=>{L()?x(f):d(f)},[f,d,x,L]),z=pe(F=>{let $=parseInt(F.index);isNaN($)||C($)},[C]),B={onFocus:v.onFocus,onKeyDown:O},W=pe(()=>{s==null||s(),requestAnimationFrame(()=>{let F=Gr(r.current);F!==-1&&d(F)})},[r,d,s]),Q={onClick:M,onKeyDown:O,onExitEditMode:S,onMenuAction:H,onMenuClose:V,onMouseDown:E};return{activeTabIndex:T,containerStyle:g,focusVisible:v.focusVisible,containerProps:{...v.containerProps,onSwitchWrappedItemIntoView:z},navigationProps:B,onClickAddTab:W,tabProps:Q,...R}};import{Fragment as Of,jsx as Af,jsxs as Hf}from"react/jsx-runtime";import{createElement as If}from"react";var Zr="vuuTabstrip",zi=({activeTabIndex:n,allowAddTab:e,allowCloseTab:t,allowDragDrop:r=!1,allowRenameTab:o=!1,animateSelectionThumb:s=!1,children:i,className:l,id:a,keyBoardActivation:c="manual",location:u,onActiveChange:p,onAddTab:d,onCloseTab:f,onExitEditMode:m,onMoveTab:h,orientation:x="horizontal",showTabMenuButton:v,style:C,...y})=>{let b=kf(null),{activeTabIndex:T,focusVisible:g,containerStyle:w,draggedItemIndex:D,onClickAddTab:P,tabProps:E,...R}=tl({activeTabIndex:n,allowDragDrop:r,animateSelectionThumb:s,containerRef:b,keyBoardActivation:c,onActiveChange:p,onAddTab:d,onCloseTab:f,onExitEditMode:m,onMoveTab:h,orientation:x}),S=Tn(a),M=Mf(Zr,`${Zr}-${x}`,l),I=C||w?{...C,...w}:void 0,L=Lf(()=>ft(i).map((k,O)=>{let{id:A=`${S}-tab-${O}`,closeable:N=t,editable:H=o,showMenuButton:V=v}=k.props,z=O===T;return Pf.cloneElement(k,{...E,...R.navigationProps,closeable:N,"data-overflow-priority":z?"1":void 0,dragging:D===O,editable:H,focusVisible:g===O,id:A,index:O,key:O,location:u,selected:z,showMenuButton:V,tabIndex:z?0:-1})}).concat(e?If(Df,{...R.navigationProps,"aria-label":"Create Tab",className:`${Zr}-addTabButton`,"data-icon":"add","data-overflow-priority":"1",key:"addButton",onClick:P,variant:"secondary",tabIndex:-1}):[]),[T,e,t,o,i,g,S,u,P,v,E,D,R.navigationProps]);return Hf(Of,{children:[Af(Ii,{...y,...R.containerProps,className:M,height:28,id:S,orientation:x,overflowIcon:"more-horiz",ref:b,style:I,children:L}),R.draggable]})};import{useForkRef as Bf}from"@salt-ds/core";import Kf from"classnames";import{forwardRef as Wf,useCallback as _f,useRef as rl}from"react";import{PopupMenu as Nf}from"@vuu-ui/vuu-popups";import{useMemo as zf}from"react";import Ff from"classnames";import{jsx as Vf}from"react/jsx-runtime";var $f="vuuTabMenu",nl=({allowClose:n,allowRename:e,location:t,onMenuAction:r,onMenuClose:o,index:s})=>{let[i,l]=zf(()=>[(a,c)=>{let u=[];return e&&u.push(Ki(c)),n&&u.push(Bi(c)),u},{tabIndex:s}],[n,e,s]);return Vf(Nf,{className:$f,menuBuilder:i,menuActionHandler:r,menuLocation:Ff("tab",t),menuOptions:l,onMenuClose:o,tabIndex:-1})};import{jsx as Fn,jsxs as Gf}from"react/jsx-runtime";var qe="vuuTab",ol=()=>{},Fi=Wf(function({ariaControls:e,children:t,className:r,closeable:o=!1,dragging:s,editable:i=!1,editing:l,focusVisible:a,index:c=-1,label:u,location:p,onClick:d,onClose:f,onEnterEditMode:m=ol,onExitEditMode:h=ol,onFocus:x,onKeyUp:v,onMenuAction:C,onMenuClose:y,orientation:b,selected:T,showMenuButton:g=o||i,tabIndex:w,...D},P){if(g&&typeof C!="function")throw Error("Tab onMenuAction must be provided if showMenuButton is set");let E=rl(null),R=rl(null),S=Bf(P,E),M=_f(A=>{l||(A.preventDefault(),d==null||d(A,c))},[l,c,d]),I=(A="",N="",H=!0)=>h(A,N,H,c),L=A=>{switch(A.key){case"Backspace":case"Delete":o&&(A.stopPropagation(),f&&f(c));break;default:v&&v(A,c)}},k=()=>i?Fn(pt,{editing:l,defaultValue:u,onEnterEditMode:m,onExitEditMode:I,ref:R},u):u,O=A=>{if(R.current){let H=R.current.querySelector(".vuuEditableLabel-input");H==null||H.focus()}x==null||x(A)};return Gf("div",{...D,"aria-controls":e,"aria-selected":T,className:Kf(qe,{[`${qe}-closeable`]:o,"vuuDraggable-dragAway":s,[`${qe}-editing`]:l,[`${qe}-selected`]:T||void 0,[`${qe}-vertical`]:b==="vertical",vuuFocusVisible:a}),onClick:M,onFocus:O,onKeyUp:L,ref:S,role:"tab",tabIndex:w,children:[Fn("div",{className:`${qe}-main`,children:Fn("span",{className:`${qe}-text`,"data-text":i?void 0:u,children:t!=null?t:k()})}),g?Fn(nl,{allowClose:o,allowRename:i,location:p,onMenuAction:C,onMenuClose:y,index:c}):null]})});import{useForkRef as wm,useIdMemo as Sm}from"@salt-ds/core";import oo from"classnames";import{forwardRef as Em,useRef as Rm}from"react";function Uf(n){var e;if(n){let t=n.dataset.idx;if(t)return parseInt(t,10);if(t=(e=n.ariaPosInSet)!=null?e:"-1")return parseInt(t,10)-1}}var Yr=n=>n.closest("[data-idx],[aria-posinset]");var sl=n=>Uf(Yr(n));import{useCallback as jr,useMemo as Xf}from"react";var Qf=new Set(["/","-","."]),Zf=n=>Qf.has(n),il=(n,e)=>e.startsWith(n)&&Zf(e[n.length]),ll=(n,e="root",{collapsibleHeaders:t=void 0,defaultExpanded:r=!1,revealSelected:o=!1}={})=>{let s=(d,f,m)=>{if(d.childNodes)return d.childNodes.length;if(d.header){let h=m+1,x=0;for(;h<f.length&&!f[h].header;)x++,h++;return x}else return 0},i=jr(d=>Array.isArray(o)?o.some(f=>il(d,f)):r,[r,o]),l=jr((d,f,m=1,h="",x=[],v=[])=>{let C=0;return d.forEach((y,b,T)=>{var I;let g=y.header&&t,w=y.childNodes&&t===!1,D=!y.childNodes||y.childNodes.length===0,P=w||D&&!g,E=h?`${h}.${b}`:`${b}`,R=(I=y.id)!=null?I:`${e}-${E}`,S=P?void 0:i(R),M={...y,childNodes:void 0,id:R,count:!w&&S===void 0?0:s(y,T,b),expanded:S,index:f.index,level:m};if(x.push(M),v.push(d[b]),C+=1,f.index+=1,y.childNodes){let[L,k]=l(y.childNodes,f,m+1,E,[],v);M.childNodes=k,(S===!0||w)&&(C+=L)}}),[C,x,v]},[t,e,i]),[a,c,u]=Xf(()=>l(n,{index:0}),[l,n]),p=jr((d,f=c)=>{let m=f.find(h=>{var x;return h.id===d||((x=h==null?void 0:h.childNodes)==null?void 0:x.length)&&il(h.id,d)});if((m==null?void 0:m.id)===d)return u[m.index];if(m)return p(d,m.childNodes)},[u,c]);return[a,c,p]};import{useCallback as jt,useRef as Yf}from"react";import{useControlled as jf}from"@salt-ds/core";var al="single",qf="checkbox",Jf="multi",em="extended",tm=["Enter"," "],cl={},nm=n=>n.expanded!==void 0,ul=n=>n&&n!=="none",dl=({defaultSelected:n,highlightedIdx:e,treeNodes:t,onChange:r,selected:o,selection:s=al,selectionKeys:i=tm})=>{let l=s===al,a=s===Jf||s.startsWith(qf),c=s===em,u=Yf(-1),p=jt(b=>i.includes(b.key),[i]),[d,f]=jf({controlled:o,default:n!=null?n:[],name:"selected"}),m=jt((b,T,g,w,D=!1)=>{let{current:P}=u,E=d==null?void 0:d.includes(g),S=l||c&&!D&&(!w||P===-1),M=a||c&&D&&!w,I=[];if(S&&E)I=[];else if(S)I=[g];else if(M&&E)I=d.filter(L=>L!==g);else if(M)I=d.concat(g);else if(c){let[L,k]=T>P?[P,T]:[T,P];I=d.slice();for(let O=L;O<=k;O++){let{id:A}=t[O];d.includes(A)||I.push(A)}}f(I),r&&r(b,I)},[c,t,a,r,d,f,l]),h=jt(b=>{if(~e&&p(b)){b.preventDefault();let T=t[e];m(b,e,T.id,!1,b.ctrlKey||b.metaKey),c&&(u.current=e)}},[c,e,t,p,m]),x=jt((b,T)=>{if(c&&b.shiftKey){let g=t[T];m(b,T,g.id,!0)}},[c,t,m]),v=s==="none"?cl:{onKeyDown:h,onKeyboardNavigation:x},C=jt(b=>{if(e!==-1){let T=t[e];nm(T)||(b.preventDefault(),b.stopPropagation(),m(b,e,T.id,b.shiftKey,b.ctrlKey||b.metaKey),c&&(u.current=e))}},[c,e,t,m]);return{listHandlers:v,listItemHandlers:s==="none"?cl:{onClick:C},selected:d,setSelected:f}};import{useCallback as qr,useEffect as gl,useLayoutEffect as sm,useRef as $n}from"react";import{useCallback as rm,useEffect as pl,useRef as om}from"react";var Je=new Map,ml=(n,e,t)=>{switch(t){case"height":return e.height;case"clientHeight":return n.clientHeight;case"clientWidth":return n.clientWidth;case"contentHeight":return e.contentHeight;case"contentWidth":return e.contentWidth;case"scrollHeight":return Math.ceil(n.scrollHeight);case"scrollWidth":return Math.ceil(n.scrollWidth);case"width":return e.width;default:return 0}};var fl=new ResizeObserver(n=>{for(let e of n){let{target:t,borderBoxSize:r,contentBoxSize:o}=e,s=Je.get(t);if(s){let[{blockSize:i,inlineSize:l}]=r,[{blockSize:a,inlineSize:c}]=o,{onResize:u,measurements:p}=s,d=!1;for(let[f,m]of Object.entries(p)){let h=ml(t,{height:i,width:l,contentHeight:a,contentWidth:c},f);h!==m&&(d=!0,p[f]=h)}d&&u&&u(p)}}});function hl(n,e,t,r=!1){let o=om(e),s=rm(i=>{let{width:l,height:a}=i.getBoundingClientRect(),{clientWidth:c,clientHeight:u}=i;return o.current.reduce((p,d)=>(p[d]=ml(i,{width:l,height:a,contentHeight:u,contentWidth:c},d),p),{})},[]);pl(()=>{let i=n.current;async function l(){Je.set(i,{measurements:{}}),await document.fonts.ready;let a=Je.get(i);if(a){let c=s(i);a.measurements=c,fl.observe(i),r&&t(c)}else console.log("%cuseResizeObserver an target expected to be under observation wa snot found. This warrants investigation","font-weight:bold; color:red;")}if(i){if(Je.has(i))throw Error("useResizeObserver attemping to observe same element twice");l()}return()=>{i&&Je.has(i)&&(fl.unobserve(i),Je.delete(i))}},[s,n]),pl(()=>{let i=n.current,l=Je.get(i);if(l){if(o.current!==e){o.current=e;let a=s(i);l.measurements=a}l.onResize=t}},[e,s,n,t])}var im=["height","scrollHeight"],bl=(n,e,t=!1)=>{let r=$n(0),o=$n(!1),s=$n(0),i=$n(0),l=qr(u=>{let p=u.ariaExpanded?u.firstChild:u,d=t?30:0,f=p.offsetTop,m=p.offsetHeight,h=r.current+d,x=h+s.current-d;(f+m>x||f<h)&&(r.current=f+m>x?r.current+(f+m)-x:f-d,o.current=!0,n.current&&(n.current.scrollTop=r.current),setTimeout(()=>{o.current=!1}))},[n,t]),a=qr(u=>{r.current=u.target.scrollTop},[]);gl(()=>{let{current:u}=n;return u&&u.addEventListener("scroll",a),()=>{u&&u.removeEventListener("scroll",a)}},[n,a]),sm(()=>{if(e!==-1&&i.current>s.current&&n.current){let u=n.current.querySelector(`
|
|
17
|
+
`,document.body.insertBefore(e,t)}}var cn=class{constructor(){this.currentPath=null;this.tabMode=null;Dm()}prepare(e,n="full-view"){document.body.classList.add("drawing"),this.currentPath=null,this.tabMode=n;let o=this.getPoints(0,0,0,0),r=qi(o),s=document.getElementById("vuu-drop-outline");s==null||s.setAttribute("d",r),this.currentPath=r}clear(){an=null,to(),document.body.classList.remove("drawing"),xr.hidePopup()}get hoverDropTarget(){return an}getPoints(e,n,o,r,s=0,i=0,l=0){let a=this.tabMode==="tab-only";if(i===0)return[[e,n+l],[e,n+l],[e,n],[e+i,n],[e+i,n],[e+o,n],[e+o,n+r],[e,n+r]];if(a){let c=s;return[[c,n],[c,n],[c+i,n],[c+i,n],[c+i,n+l],[c+i,n+l],[c,n+l],[c,n+l]]}else return s===0?[[e,n+l],[e,n+l],[e,n],[e+i,n],[e+i,n+l],[e+o,n+l],[e+o,n+r],[e,n+r]]:[[e,n+l],[e+s,n+l],[e+s,n],[e+s,n],[e+s,n+l],[e+o,n+l],[e+o,n+r],[e,n+r]]}draw(e,n){let r=Cr;if(an!==null)this.drawTarget(an);else if(Cr=e.nextDropTarget!=null,e.pos.tab?Mm(e):Le&&to(),this.drawTarget(e,n),Cr){let[s,i,l]=Yi(e);{let a=Im(Zi,{dropTarget:e,onHover:Sm,orientation:l});xr.showPopup({left:s,top:i,component:a})}}else xr.hidePopup()}drawTarget(e,n){let r=e.getTargetDropOutline(6,n);if(r){let{l:s,t:i,r:l,b:a,tabLeft:c,tabWidth:u,tabHeight:d,guideLines:p}=r,m=l-s,f=a-i;if(this.currentPath){let C=document.getElementById("vuu-drop-outline");C==null||C.setAttribute("d",this.currentPath)}let h=this.getPoints(s,i,m,f,c,u,d),g=qi(h),y=document.getElementById("hw-drop-outline-animate");y==null||y.setAttribute("to",g),y==null||y.beginElement(),this.currentPath=g;let v=document.getElementById("hw-drop-guides");v==null||v.setAttribute("d",Rm(p))}}},Ji="transition:margin-left .4s ease-out;margin-left: 63px",el="transition:margin-left .4s ease-out;margin-left: 0px";function Mm(t){var l,a;let{AFTER:e,BEFORE:n}=br,{clientRect:{Stack:o},pos:{tab:r}}=t,{id:s}=t.component.props,i=null;if(o&&r&&r.positionRelativeToTab!==e){let c=r.positionRelativeToTab===n?1:2,u=`:scope .hwTabstrip > .hwTabstrip-inner > .hwTab:nth-child(${r.index+c})`;i=(l=document.getElementById(s))==null?void 0:l.querySelector(u),i?(Le===null||Le!==i)&&(i.style.cssText=Ji,Le&&(Le.style.cssText=el),Le=i):to()}else if((r==null?void 0:r.positionRelativeToTab)===n){if(Le===null){let c=".vuuHeader-title";i=(a=document.getElementById(s))==null?void 0:a.querySelector(c),i.style.cssText=Ji,Le=i}}else to()}function to(){Le&&(Le.style.cssText=el,Le=null)}var BR=new cn;import Pm from"classnames";import{forwardRef as Lm}from"react";import{jsx as km}from"react/jsx-runtime";var nl=Lm(function({children:e,className:n,dropTarget:o,resizeable:r,...s},i){let l=Pm("DraggableLayout",n);return km("div",{className:l,ref:i,...s,children:e})}),ol="DraggableLayout";nl.displayName=ol;me(ol,nl,"container");import{useForkRef as Zm}from"@salt-ds/core";import qm from"classnames";import{forwardRef as Jm}from"react";import{getUniqueId as _m}from"@vuu-ui/vuu-utils";import fn,{useCallback as so,useMemo as ml,useRef as io,useState as Gm}from"react";import Hm from"classnames";import{jsx as Am}from"react/jsx-runtime";var rl="vuuPlaceholder",no=({className:t,closeable:e,flexFill:n,resizeable:o,shim:r,...s})=>Am("div",{className:Hm(rl,t,{[`${rl}-shim`]:r}),...s,"data-placeholder":!0,"data-resizeable":!0});no.displayName="Placeholder";me("Placeholder",no);import Om from"classnames";import Nm,{useCallback as dn,useRef as oo,useState as zm}from"react";import{jsx as sl}from"react/jsx-runtime";var il=Nm.memo(function({column:e,index:n,onDrag:o,onDragEnd:r,onDragStart:s,style:i}){let l=oo(),a=oo(null),c=oo(0),[u,d]=zm(!1),p=dn(({key:x,shiftKey:w})=>{let R=w?10:1;e&&x==="ArrowDown"?o(n,R):e&&x==="ArrowUp"||!e&&x==="ArrowLeft"?o(n,-R):!e&&x==="ArrowRight"&&o(n,R)},[e,n,o]),m=dn(x=>{let{key:w}=x;(e&&(w==="ArrowUp"||w==="ArrowDown")||!e&&(w==="ArrowLeft"||w==="ArrowRIght"))&&(s(n),p(x),f.current=p)},[e,p,n,s]),f=oo(m),h=x=>f.current(x),g=dn(x=>{l.current=!0;let w=x[e?"clientY":"clientX"],R=w-c.current;w&&w!==c.current&&o(n,R),c.current=w},[e,n,o]),y=dn(()=>{var x;window.removeEventListener("mousemove",g,!1),window.removeEventListener("mouseup",y,!1),r(),d(!1),(x=a.current)==null||x.focus()},[g,r,d]),v=dn(x=>{c.current=e?x.clientY:x.clientX,s(n),window.addEventListener("mousemove",g,!1),window.addEventListener("mouseup",y,!1),x.preventDefault(),d(!0)},[e,g,y,n,s,d]),C=()=>{var x;l.current?l.current=!1:(x=a.current)==null||x.focus()},b=()=>{f.current=m},T=Om("Splitter","focusable",{active:u,column:e});return sl("div",{className:T,"data-splitter":!0,ref:a,role:"separator",style:i,onBlur:b,onClick:C,onKeyDown:h,onMouseDown:v,tabIndex:0,children:sl("div",{className:"grab-zone"})})});import{uuid as SD}from"@vuu-ui/vuu-utils";import ED from"react";var al={},ll="auto";var kt=t=>{let{style:{width:e=ll,height:n=ll}=al}=t.props,o=typeof n=="number",r=typeof e=="number";return o&&r?{height:n,width:e}:o?{height:n}:r?{width:e}:void 0};function cl(t){let{style:{flex:e,flexGrow:n,flexShrink:o,flexBasis:r}=al}=t.props;return typeof e=="number"||r===0&&n===1&&o===1?!0:typeof r!="number"}var Fm={},pn=1,mn=2,Vm=t=>typeof t.intrinsicSize=="number",$m=(t,e)=>{let n={};return t.forEach(o=>{n[o]=Ge(e,o)}),n},ro=(t,e,n)=>t.map((o,r)=>{var a;let s=Ge(o,"resizeable"),{[e]:i}=(a=kt(o))!=null?a:Fm,l=cl(o);return n?{index:r,flexOpen:l,intrinsicSize:i,resizeable:s,...$m(n,o)}:{index:r,flexOpen:l,intrinsicSize:i,resizeable:s}}),ul=t=>{let e=t.length,n=t.every(Vm),o=Array(e).fill(0);if(n&&e>0&&(o[0]=mn,o[e-1]=mn),e<2)return o;for(let r=0,s=0;r<e-1;r++)t[r].resizeable&&!s&&(s=pn),o[r]+=s;for(let r=e-1;r>0&&(o[r]&pn&&(o[r]-=pn),!t[r].resizeable);r--);return o},dl=(t,e)=>{let n=Km(t,e),o=Wm(t,e),r=n!==-1&&o!==-1?[n,o]:void 0,s=Bm(t,r);return[r,s]};function Bm(t,e){if(e){let n=[];for(let o=0;o<t.length;o++)t[o].flexOpen&&!e.includes(o)&&n.push(o);return n}}function Km(t,e){let n=e,o=!1;for(;n>=1&&!o;)n=n-1,o=pl(t,n);return n}function Wm(t,e){let n=e,o=!1,r=t.length;for(;n<r-1&&!o;)n=n+1,o=pl(t,n);return n===r?-1:n}function pl(t,e){let{placeholder:n,splitter:o,resizeable:r,intrinsicSize:s}=t[e];return!!(!o&&!s&&(n||r))}var Um=t=>!t.splitter&&!t.placeholder,hl=({children:t,onSplitterMoved:e,style:n})=>{let o=io(null),r=io(),s=io(),i=io([]),[,l]=Gm({}),a=g=>{s.current=g,l({})},c=(n==null?void 0:n.flexDirection)==="column",u=c?"height":"width",d=ml(()=>Array.isArray(t)?t:fn.isValidElement(t)?[t]:[],[t]),p=so(g=>{let{current:y}=r;if(y){let[v,C]=dl(y,g);v&&(v.forEach(b=>{var x;let T=(x=o.current)==null?void 0:x.childNodes[b];if(T){let{size:w,minSize:R}=Ym(T,u);y[b].currentSize=w,y[b].minSize=R}}),C&&C.forEach(b=>{var x;let T=(x=o.current)==null?void 0:x.childNodes[b];if(T){let{[u]:w}=T.getBoundingClientRect();y[b].flexBasis=w}}))}},[u]),m=so((g,y)=>{s.current&&r.current&&a(Qm(s.current,r.current,y,u))},[u]),f=so(()=>{let g=r.current;g&&(e==null||e(g.filter(Um))),g==null||g.forEach(y=>{y.currentSize=void 0,y.flexBasis=void 0,y.flexOpen=!1})},[e]),h=so(g=>fn.createElement(il,{column:c,index:g,key:`splitter-${g}`,onDrag:m,onDragEnd:f,onDragStart:p}),[m,f,p,c]);return ml(()=>{let[g,y]=Xm(d,u,h,i.current);r.current=y,s.current=g},[d,h,u]),{content:s.current||[],rootRef:o}};function Xm(t,e,n,o){let r=ro(t,e),s=ul(r),i=[],l=[];for(let a=0;a<t.length;a++){let c=t[a];if(a===0&&s[a]&mn&&(i.push(fl(a)),l.push({placeholder:!0,shim:!0})),c.key==null){let u=o[a]||(o[a]=_m());i.push(fn.cloneElement(c,{key:u}))}else i.push(c);l.push(r[a]),a>0&&s[a]&mn?(i.push(fl(a)),l.push({placeholder:!0})):s[a]&pn&&(i.push(n(i.length)),l.push({splitter:!0}))}return[i,l]}function Qm(t,e,n,o){return jm(e,n)?t.map((s,i)=>{let l=e[i],{currentSize:a,flexOpen:c,flexBasis:u}=l,d=a!==void 0;if(d||c){let{flexBasis:p}=s.props.style||{},m=d?l.currentSize:u;return m!==p?fn.cloneElement(s,{style:{...s.props.style,flexBasis:m,[o]:"auto"}}):s}else return s}):t}function jm(t,e){let n=[];t.forEach((u,d)=>{u.currentSize!==void 0&&n.push(d)});let o=e<0?n[0]:n[1],{currentSize:r=0,minSize:s=0}=t[o];if(r===s)return!1;if(Math.abs(e)>r-s){let u=e<0?-1:1;e=Math.max(0,r-s)*u}let i=t[n[0]],{currentSize:l=0}=i;i.currentSize=l+e;let a=t[n[1]],{currentSize:c=0}=a;return a.currentSize=c-e,!0}function fl(t){return fn.createElement(no,{shim:t===0,key:`placeholder-${t}`})}function Ym(t,e){let{[e]:n}=t.getBoundingClientRect(),r=getComputedStyle(t).getPropertyValue(`min-${e}`),s=r.endsWith("px")?parseInt(r,10):0;return{size:n,minSize:s}}import{jsx as ef}from"react/jsx-runtime";var Tr="hwFlexbox",gl=Jm(function(e,n){let{breakPoints:o,children:r,column:s,className:i,flexFill:l,gap:a,fullPage:c,id:u,onSplitterMoved:d,resizeable:p,row:m,spacing:f,splitterSize:h,style:g,...y}=e,{content:v,rootRef:C}=hl({children:r,onSplitterMoved:d,style:g}),b=qm(Tr,i,{[`${Tr}-column`]:s,[`${Tr}-row`]:m,"flex-fill":l,"full-page":c});return ef("div",{...y,className:b,"data-resizeable":p||void 0,id:u,ref:Zm(C,n),style:{...g,gap:a,"--spacing":f},children:v})});gl.displayName="Flexbox";var Sr=gl;import{useCallback as cf}from"react";var lo={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"};import{useCallback as IP,useContext as af,useEffect as PP,useRef as LP,useState as kP}from"react";import HI from"react";import{uuid as SM}from"@vuu-ui/vuu-utils";import EM from"react";import{uuid as aM}from"@vuu-ui/vuu-utils";import uM,{cloneElement as dM}from"react";import{useCallback as Ht}from"react";var De=new Map,Me=new Map;var At=()=>{let t=Ht((i,l)=>{let a=Me.get(i);if(a)return l!==void 0&&a[l]!==void 0?a[l]:l!==void 0?void 0:a},[]),e=Ht((i,l,a)=>{if(l===void 0)Me.set(i,a);else if(Me.has(i)){let c=Me.get(i);Me.set(i,{...c,[l]:a})}else Me.set(i,{[l]:a})},[]),n=Ht((i,l)=>{if(Me.has(i)){if(l===void 0)Me.delete(i);else if(Me.get(i)[l]){let{[l]:c,...u}=Me.get(i);Object.keys(u).length>0?Me.set(i,u):Me.delete(i)}}},[]),o=Ht((i,l)=>{let a=De.get(i);if(a)return l!==void 0?a[l]:a},[]),r=Ht((i,l,a)=>{if(l===void 0)De.set(i,a);else if(De.has(i)){let c=De.get(i);De.set(i,{...c,[l]:a})}else De.set(i,{[l]:a})},[]),s=Ht((i,l)=>{if(De.has(i)){if(l===void 0)De.delete(i);else if(De.get(i)[l]){let{[l]:c,...u}=De.get(i);Object.keys(u).length>0?De.set(i,u):De.delete(i)}}},[]);return{loadSessionState:t,loadState:o,saveSessionState:e,saveState:r,purgeState:s,purgeSessionState:n}};import{cloneElement as KM}from"react";import AM from"react";import jM from"react";import nI from"react";import{uuid as dI}from"@vuu-ui/vuu-utils";import mI from"react";import{createContext as sf}from"react";var lf=t=>console.log(`dispatch ${t.type}, have you forgotten to provide a LayoutProvider ?`),yl=sf({dispatchLayoutProvider:lf,version:-1});import{useCallback as dP,useRef as pP}from"react";import{jsx as BP}from"react/jsx-runtime";var Ie=()=>{let{dispatchLayoutProvider:t}=af(yl);return t};import{jsx as uf}from"react/jsx-runtime";var xl=function(e){let{path:n}=e,o=Ie(),r=cf(s=>{o({type:lo.SPLITTER_RESIZE,path:n,sizes:s})},[o,n]);return uf(Sr,{...e,onSplitterMoved:r})};xl.displayName="Flexbox";me("Flexbox",xl,"container");import{useForkRef as Rf}from"@salt-ds/core";import Df from"classnames";import{forwardRef as Mf,useMemo as If}from"react";import{useCallback as El,useEffect as gf,useRef as Mr,useState as bf}from"react";import{useCallback as df,useLayoutEffect as Cl,useRef as pf}from"react";var Tl=["height","width"];var pt=new WeakMap,Sl=(t,e,n)=>{switch(n){case"height":return e.height;case"scrollHeight":return t.scrollHeight;case"scrollWidth":return t.scrollWidth;case"width":return e.width;default:return 0}},vl=new ResizeObserver(t=>{for(let e of t){let{target:n,contentRect:o}=e,r=pt.get(n);if(r){let{onResize:s,measurements:i}=r,l=!1;for(let[a,c]of Object.entries(i)){let u=Sl(n,o,a);u!==c&&(l=!0,i[a]=u)}l&&s&&s(i)}}});function ao(t,e,n,o=!1){console.log("resizeObserver container",{ref:t.current});let r=pf(e),s=df(i=>{let l=i.getBoundingClientRect();return r.current.reduce((a,c)=>(a[c]=Sl(i,l,c),a),{})},[]);Cl(()=>{let i=t.current,l=!1;async function a(){pt.set(i,{measurements:{}}),l=!1;let{fonts:c}=document;if(c&&await c.ready,!l){let u=pt.get(i);if(u){let d=s(i);u.measurements=d,vl.observe(i),o&&n(d)}}}if(i){if(pt.has(i))throw Error("useResizeObserver attemping to observe same element twice");a()}return()=>{i&&pt.has(i)&&(vl.unobserve(i),pt.delete(i),l=!0)}},[t,s,o,n]),Cl(()=>{let i=t.current,l=pt.get(i);if(l){if(r.current!==e){r.current=e;let a=s(i);l.measurements=a}l.onResize=n}},[e,s,t,n])}function mf(t,e){let n=document.body.querySelector(`.${t}`),o={get:function(r,s){let i=r.getPropertyValue(`--${t}-breakpoint-${s}`);return i?parseInt(i):void 0}};return n?new Proxy(getComputedStyle(n),o):e!=null?e:{}}var ff=([,t],[,e])=>e-t,Dr=t=>Object.entries(t).sort(ff).map(([e,n],o,r)=>[e,n,o<r.length-1?r[o+1][1]:9999]),Rr=null,hf=(t="salt")=>{let{xs:e,sm:n,md:o,lg:r,xl:s}=mf(t);return Dr({xs:e,sm:n,md:o,lg:r,xl:s})},wl=t=>(Rr===null&&(Rr=hf(t)),Rr);var yf=[],Rl=({breakPoints:t,smallerThan:e},n)=>{let[o,r]=bf(e?!1:"lg"),s=Mr(document.body),i=Mr(t?Dr(t):wl()),l=Mr("lg"),a=El(u=>{if(i.current){for(let[d,p]of i.current)if(u>=p)return d}},[i]),c=El(u=>{if(e){let d=i.current.find(([p])=>p===e);if(d){let[,,p]=d;return u<p}}else return a(u);return u},[e,a]);return ao(n||s,i.current?["width"]:yf,({width:u})=>{let d=c(u);d!==l.current&&(l.current=d,r(d))},!0),gf(()=>{let u=n||s;if(u.current){let d=l.current;if(i.current){let{clientWidth:p}=u.current,m=c(p);l.current=m,m!==d&&r(m)}}},[r,c,n]),o};var xf="data-collapsible",cL={[xf]:!0,"data-pad-start":!0,"data-pad-end":!0};import{getUniqueId as Cf}from"@vuu-ui/vuu-utils";import{cloneElement as vf,isValidElement as Tf,useCallback as Sf,useMemo as Dl,useRef as Ir}from"react";var wf=["xs","sm","md","lg","xl"],Ef=12,Ml=({children:t,cols:e,style:n})=>{let o=Ir(null),r=Ir(null),s=Ir(),i=e!=null?e:Ef,a=(n==null?void 0:n.flexDirection)==="column"?"height":"width",c=Dl(()=>Array.isArray(t)?t:Tf(t)?[t]:[],[t]),u=Sf((d,p)=>{let m=ro(d,p,wf),f=[],h=[];for(let g=0;g<d.length;g++){let y=d[g],{style:{flex:v,...C}}=y.props;f.push(vf(y,{key:Cf(),style:{...C,"--parent-col-count":i}})),h.push(m[g])}return[f,h]},[i]);return Dl(()=>{let[d,p]=u(c,a);r.current=p,s.current=d},[u,c,a]),{cols:i,content:s.current,rootRef:o}};import{jsx as Pf}from"react/jsx-runtime";var co="hwFluidGrid",Pr=Mf(function(e,n){let{breakPoints:o,children:r,column:s,cols:i=12,className:l,flexFill:a,gap:c=3,fullPage:u,id:d,onSplitterMoved:p,resizeable:m,row:f,showGrid:h,spacing:g,splitterSize:y,style:v,...C}=e,b=If(()=>Pt(r),[r]),{cols:T,content:x,rootRef:w}=Ml({children:b,cols:i,style:v}),R=Rl({breakPoints:o},w),M=Df(co,l,{[`${co}-column`]:s,[`${co}-row`]:f,[`${co}-show-grid`]:h,"flex-fill":a,"full-page":u}),E={...v,"--spacing":g,"--grid-col-count":T,"--grid-gap":c};return Pf("div",{...C,className:M,"data-breakpoint":R,"data-cols":T,"data-resizeable":m||void 0,id:d,ref:Rf(w,n),style:E,children:x})});Pr.displayName="FluidGrid";import{jsx as Lf}from"react/jsx-runtime";var Il=function(e){return Lf(Pr,{...e})};Il.displayName="FluidGrid";me("FluidGrid",Il,"container");import{Button as Uf}from"@salt-ds/core";import{default as Xf,default as Qf}from"classnames";import Vl,{useRef as jf,useState as $l}from"react";import{useCallback as hn,useState as kf}from"react";var uo=(t,e,n,o)=>{var g;let{loadSessionState:r,purgeSessionState:s,purgeState:i,saveSessionState:l}=At(),[a,c]=kf((g=r(t,"contributions"))!=null?g:[]),u=Ie(),d=hn((y,v)=>{let C=a.concat([{location:y,content:v}]);l(t,"contributions",C),c(C)},[a,t,l]),p=hn(()=>{s(t,"contributions"),c([])},[t,s]),m=hn(()=>{let y=r(t,"data-source");y&&y.unsubscribe(),s(t),i(t),u({type:"remove",path:n})},[u,t,r,s,i,n]),f=hn(async(y,v,C)=>{var T;y.stopPropagation();let b=(T=e.current)==null?void 0:T.getBoundingClientRect();return new Promise((x,w)=>{u({type:"drag-start",evt:y,path:v===void 0?n:`${n}.${v}`,dragRect:b,preDragActivity:C,dropTargets:o,resolveDragStart:x,rejectDragStart:w})})},[e,u,n,o]);return[hn(async(y,v)=>{var b;let{type:C}=y;switch(C){case"maximize":case"minimize":case"restore":return u({type:C,path:(b=y.path)!=null?b:n});case"remove":return m();case"mousedown":return f(v,y.index,y.preDragActivity);case"add-toolbar-contribution":return d(y.location,y.content);case"remove-toolbar-contribution":return p();default:return}},[u,n,m,f,d,p]),a]};import{useForkRef as zf,useIdMemo as Ff}from"@salt-ds/core";import Vf from"classnames";import Hr,{forwardRef as $f,useCallback as Bf,useMemo as Kf,useRef as Nl,useState as Wf}from"react";import{useCallback as mt,useMemo as Pl}from"react";var Ll=({id:t,rootRef:e,path:n,dropTargets:o,title:r})=>{let s=Ie(),{loadState:i,loadSessionState:l,purgeState:a,saveState:c,saveSessionState:u}=At(),[d,p]=uo(t,e,n,o),m=Pl(()=>{var x;return(x=i("view-title"))!=null?x:r},[i,r]),f=mt(x=>{n&&s({type:"set-title",path:n,title:x})},[s,n]),h=Pl(()=>i(t),[t,i]),g=mt(x=>i(t,x),[t,i]),y=mt(x=>{a(t,x),s({type:"save"})},[t,s,a]),v=mt((x,w)=>{c(t,w,x),s({type:"save"})},[t,s,c]),C=mt(x=>l(t,x),[t,l]),b=mt((x,w)=>u(t,w,x),[t,u]),T=mt(({type:x,...w})=>{let{[x]:R}=w;v(R,x)},[v]);return{contributions:p,dispatchViewAction:d,load:g,loadSession:C,onConfigChange:T,onEditTitle:f,purge:y,restoredState:h,save:v,saveSession:b,title:m}};import{useCallback as kl,useRef as Hl}from"react";var Hf=[],Al=({mainRef:t,resize:e="responsive",rootRef:n})=>{let o=e==="defer",r=Hl({}),s=Hl(),i=kl(()=>{t.current&&(t.current.style.height=r.current.height+"px",t.current.style.width=r.current.width+"px"),s.current=void 0},[t]),l=kl(({height:a,width:c})=>{r.current.height=a,r.current.width=c,s.current!==null&&clearTimeout(s.current),s.current=window.setTimeout(i,40)},[i]);ao(n,o?Tl:Hf,l,o)};import Af,{useContext as Of}from"react";var Nf={dispatch:null},Lr=Af.createContext(Nf),Ol=()=>{var e;let t=Of(Lr);return(e=t==null?void 0:t.dispatch)!=null?e:null};import{jsx as kr,jsxs as Gf}from"react/jsx-runtime";var gn="vuuView",_f=(t,e)=>t&&e?{...t,...e}:t||e,zl=$f(function(e,n){let{Header:o=Fl,children:r,className:s,collapsed:i,closeable:l,"data-path":a,"data-resizeable":c,dropTargets:u,expanded:d,flexFill:p,id:m,header:f,orientation:h="horizontal",path:g=a,resize:y="responsive",resizeable:v=c,tearOut:C,style:b={},title:T,...x}=e,w=Ff(m),R=Nl(null),M=Nl(null),[E,I]=Wf(),{contributions:S,dispatchViewAction:D,load:L,loadSession:A,onConfigChange:H,onEditTitle:P,purge:k,restoredState:N,save:O,saveSession:F,title:$}=Ll({id:w,rootRef:R,path:g,dropTargets:u,title:T});Al({mainRef:M,resize:y,rootRef:R});let G=Bf(z=>{I(z)},[]),W=()=>Hr.isValidElement(r)&&(N||E)?Hr.cloneElement(r,_f(N,E)):r,Y=Kf(()=>({dispatch:D,id:w,path:g,title:$,load:L,loadSession:A,onConfigChange:H,purge:k,save:O,saveSession:F,setComponentProps:G}),[D,w,L,A,H,g,k,O,F,G,$]),V=typeof f=="object"?f:{};return kr("div",{...x,className:Vf(gn,s,{[`${gn}-collapsed`]:i,[`${gn}-expanded`]:d,[`${gn}-resize-defer`]:y==="defer"}),"data-resizeable":v,id:w,ref:zf(n,R),style:b,tabIndex:-1,children:Gf(Lr.Provider,{value:Y,children:[f?kr(o,{...V,collapsed:i,contributions:S,expanded:d,closeable:l,onEditTitle:P,orientation:h,tearOut:C,title:$}):null,kr("div",{className:`${gn}-main`,ref:M,children:W()})]})})});zl.displayName="View";var Ot=Hr.memo(zl);Ot.displayName="View";me("View",Ot,"view");import{jsx as bn}from"react/jsx-runtime";var Fl=({className:t,contributions:e,collapsed:n,closeable:o,onEditTitle:r,orientation:s="horizontal",style:i,title:l="Untitled"})=>{let a=jf(null),[c,u]=$l(l),[d,p]=$l(!1),m=Ol(),f=I=>m==null?void 0:m({type:"remove"},I),h="vuuHeader",g=()=>{var I;(I=a.current)==null||I.focus()},y=I=>{I.stopPropagation()},C=Xf(h,t,`${h}-${n||s}`),b=()=>{p(!0)},T=I=>{I.key==="Enter"&&p(!0)},x=(I="",S="",D=!0,L=!1)=>{var A;p(!1),L?u(I):S!==I&&(u(S),r==null||r(S)),D===!1&&((A=a.current)==null||A.focus())},w=I=>{m==null||m({type:"mousedown"},I)},R=[],M=[],E=[];return e==null||e.forEach((I,S)=>{switch(I.location){case"pre-title":R.push(Vl.cloneElement(I.content,{key:S}));break;default:M.push(Vl.cloneElement(I.content,{key:S}))}}),l&&R.push(bn(It,{editing:d,value:c,onChange:u,onMouseDownCapture:g,onEnterEditMode:b,onExitEditMode:x,onKeyDown:T,ref:a,tabIndex:0},"title")),o&&E.push(bn(Uf,{"data-icon":"close",onClick:f,onMouseDown:y,variant:"secondary"},"close")),M.length>0&&R.push(bn("div",{className:"vuuTooltrayProxy","data-align":"end",children:M},"contributions")),E.length>0&&R.push(bn("div",{className:"vuuTooltrayProxy","data-align":"end",children:E},"actions")),bn("div",{className:Qf("vuuToolbarProxy",C),style:i,onMouseDown:w,children:R})};import{PopupMenu as mh}from"@vuu-ui/vuu-popups";import mo from"classnames";import fh,{forwardRef as hh}from"react";import{isValidNumber as ch,MEASURES as uh}from"@vuu-ui/vuu-utils";import{useCallback as Yl,useMemo as Nr,useRef as dh,useState as ph}from"react";var Yf=".vuuOverflowContainer-item:not(.wrapped)",Zf=t=>t.sort((e,n)=>{let{dataset:{index:o="?"}}=e,{dataset:{index:r="?"}}=n,s=e.classList.contains("wrapped"),i=n.classList.contains("wrapped"),l=o==="overflow",a=r==="overflow";return s&&!i?1:!s&&i?-1:l?1:a?-1:parseInt(o)>parseInt(r)?1:-1}),Ar=[],yn=(t,e="horizontal")=>{let n=[],o=[],r=-1,s=!1,i=Zf(Array.from(t.children)),l=e==="vertical"?"top":"left";for(let a of i){let c=a,{dataset:{index:u="?",label:d="?",overflowPriority:p="0"}}=c,{[l]:m}=c.getBoundingClientRect();m<=r?(u==="overflow"?o.push(n.pop()):o.push({index:u,label:d,overflowPriority:p}),s=!0):s?o.push({index:u,label:d,overflowPriority:p}):n.push({index:u,label:d,overflowPriority:p}),r=m}return[n,o]},Bl=(t,e)=>{let n=!1;e.find(({index:o})=>o==="overflow")&&e.length===1&&(n=!0);for(let o of t.children){let{dataset:{index:r="?"}}=o;e.length===0||n?t.classList.remove("overflowed"):t.classList.add("overflowed"),r!=="overflow"&&e.find(s=>s.index===r)?o.classList.add("wrapped"):o.classList.remove("wrapped")}},qf=(t,{overflowPriority:e})=>Math.max(t,parseInt(e)),Jf=(t,{overflowPriority:e})=>Math.min(t,parseInt(e)),Kl=t=>{var e;return t.length>1&&((e=t.at(-1))==null?void 0:e.index)==="overflow"},eh=t=>{let[e]=t;for(let n=1;n<t.length;n++){let o=t[n];parseInt(o.overflowPriority)>parseInt(e.overflowPriority)&&(e=o)}return e},Wl=(t,e)=>{var r;let n=t.reduce(Jf,Number.MAX_SAFE_INTEGER);return e.reduce(qf,0)>n?!0:e.length>1&&((r=e.at(-1))==null?void 0:r.index)==="overflow"},_l=(t,e)=>new Promise(n=>{requestAnimationFrame(()=>{let[,o]=yn(t);oh(e,o).forEach(s=>th(t,s)),n(o)})}),Gl=(t,e,n)=>new Promise(o=>{requestAnimationFrame(()=>{let[,r]=yn(t),s=eh(r);if(s){let[i,l]=Or(t,s);o([i,l])}else o([e,n])})}),Ul=(t,e)=>t.querySelector(`[data-index="${e.index}"]`),th=(t,e)=>{let n=Ul(t,e);if(n)n.classList.add("wrapped");else throw Error(`markElementAsWrapped element item with index ${e.index} not found`)},nh=t=>Array.from(t.querySelectorAll(".wrapped")),oh=(t,e)=>{let n=[];for(let o of e)t.find(({index:r})=>r===o.index)||n.push(o);return n},rh=(t,e)=>{nh(t).forEach(o=>{let{dataset:{index:r="?"}}=o;e.find(s=>s.index===r)||o.classList.remove("wrapped")})},Xl=t=>t.querySelector('[data-index="overflow"]'),sh=t=>t.querySelector(".wrapped"),po=t=>parseInt(getComputedStyle(t).getPropertyValue("width")),Ql=(t,e)=>{let{right:n}=t.getBoundingClientRect(),o=parseInt(getComputedStyle(t).getPropertyValue("padding-right")),{right:r}=e.getBoundingClientRect();return n-o-r},jl=t=>{let e=Xl(t),n=Ql(t,e),o=po(e),r=sh(t);return po(r)<=n+o?(t.classList.remove("overflowed"),r.classList.remove("wrapped"),!0):!1},ih=(t,e)=>{let{dataset:{index:n="0",overflowPriority:o="0"}}=t,{dataset:{index:r="0",overflowPriority:s="0"}}=e;return o>s?-1:o<s?1:parseInt(n)-parseInt(r)},lh=t=>Array.from(t.querySelectorAll(Yf)).sort(ih),Or=(t,e)=>{let n=lh(t),o=Ul(t,e),r=-1,s=n.at(r),i=po(s),l=po(o),a=Xl(t),c=Ql(t,a)+i;if(c>=l)ah(o,s);else{let{left:p}=s.getBoundingClientRect(),m=c,f=[s];for(;c<l;){r-=1,s=n.at(r),f.push(s);let{left:h}=s.getBoundingClientRect(),g=p-h;c=m+g}o==null||o.classList.remove("wrapped"),f.forEach(h=>{h.classList.add("wrapped")})}let[u,d]=yn(t);return rh(t,d),[u,d]},ah=(t,e)=>{if(!t||!e)throw Error("switchWrapOnElements, element undefined");t.classList.remove("wrapped"),e.classList.add("wrapped")};var Zl=({itemCount:t,onSwitchWrappedItemIntoView:e,orientation:n="horizontal"})=>{let[o,r]=ph(null),s=dh(Ar),i=Yl(async()=>{if(o){let[p,m]=yn(o,n);for(Bl(o,m),Kl(m)&&(m=await _l(o,m));Wl(p,m);)[p,m]=await Gl(o,p,m);m.length===1&&jl(o)&&(m=Ar),s.current=m}},[o,n]),l=p=>typeof p=="object"&&p!==null&&"overflowItem"in p,[a,c]=Nr(()=>[()=>{let{current:p}=s;return p.map(m=>({label:m.label,action:`activate-item-${m.index}`,options:{overflowItem:m}}))},({options:p})=>{if(o&&l(p)){let[,m]=Or(o,p.overflowItem);s.current=m,e==null||e(p.overflowItem)}return!0}],[o,e]),u=Nr(()=>{let{sizeProp:p}=uh[n],m=0;return new ResizeObserver(f=>{for(let h of f){let{[p]:g}=h.contentRect;ch(g)&&m!==g&&(m=g,i())}})},[i,n]);eo(()=>{i()},[i,t]),Nr(()=>{o&&u.observe(o)},[o,u]);let d=Yl(p=>{r(p)},[]);return{menuActionHandler:c,menuBuilder:a,rootRef:d}};import{jsx as xn,jsxs as gh}from"react/jsx-runtime";var Nt="vuuOverflowContainer",ql=fh.memo(({children:t,className:e,height:n,onSwitchWrappedItemIntoView:o,orientation:r="horizontal",overflowIcon:s})=>{let i=Pt(t),{menuActionHandler:l,menuBuilder:a,rootRef:c}=Zl({itemCount:i.length,onSwitchWrappedItemIntoView:o,orientation:r}),d={"--overflow-container-height":`${r==="vertical"?"100%":`${n}px`}`},p=mo(`${Nt}-wrapContainer`,e,{[`${Nt}-horizontal`]:r==="horizontal",[`${Nt}-vertical`]:r==="vertical"});return gh("div",{className:p,ref:c,style:d,children:[i.map((m,f)=>{let{"data-overflow-priority":h="0",id:g,label:y=`Item ${f+1}`}=m.props;return xn("div",{className:mo(`${Nt}-item`),"data-index":f,"data-label":y,"data-overflow-priority":h,id:`${g}-wrapper`,children:m},f)}),xn("div",{className:`${Nt}-OverflowIndicator`,"data-index":"overflow",children:xn(mh,{icon:s,menuBuilder:a,menuActionHandler:l})})]})});ql.displayName="OverflowContainer.InnerContainer";var Jl=hh(function({children:e,className:n,height:o=44,onSwitchWrappedItemIntoView:r,orientation:s,overflowIcon:i,...l},a){return xn("div",{...l,className:mo(mo(Nt,n)),ref:a,children:xn(ql,{height:o,orientation:s,overflowIcon:i,onSwitchWrappedItemIntoView:r,children:e})})});import{uuid as bh}from"@vuu-ui/vuu-utils";import{List as yh,ListItem as xh}from"@salt-ds/lab";import ea from"classnames";import{cloneElement as Ch,memo as vh}from"react";import{jsx as zr}from"react/jsx-runtime";var Th=t=>{let e=t.cloneNode(!0);return e.id="",delete e.dataset.idx,e},ta=vh(({className:t,children:e,idx:n,resizeable:o,header:r,closeable:s,...i})=>zr(xh,{className:ea("vuuPaletteItem",t),"data-draggable":!0,...i}));ta.displayName="PaletteItem";var Sh=({children:t,className:e,orientation:n="horizontal",ViewProps:o,...r})=>{let s=Ie(),i="vuuPalette";function l(a){var w;let u=a.target.closest(".vuuPaletteItem"),d=parseInt((w=u.dataset.idx)!=null?w:"-1");d!==-1&&console.log({children:t,idx:d,listItemElement:u});let{props:{caption:p,children:m,template:f,...h}}=t[d],{height:g,left:y,top:v,width:C}=u.getBoundingClientRect(),b=bh(),x=f?m:zr(Ot,{...o,...{id:b,key:b},...h,title:h.label,children:m});s({dragRect:{left:y,top:v,right:y+C,bottom:v+150,width:C,height:g},dragElement:Th(u),evt:a.nativeEvent,instructions:{DoNotRemove:!0,DoNotTransform:!0,RemoveDraggableOnDragEnd:!0,dragThreshold:10},path:"*",payload:x,type:"drag-start"})}return zr(yh,{...r,borderless:!0,className:ea(i,e,`${i}-${n}`),maxHeight:800,selected:null,children:t.map((a,c)=>a.type===ta?Ch(a,{key:c,onMouseDown:l}):a)})};me("Palette",Sh,"view");import wh from"classnames";import Fr,{forwardRef as Eh,useCallback as Rh}from"react";import{jsx as oa,jsxs as Lh}from"react/jsx-runtime";var na="Tabs",Dh=()=>{},Mh=(t,e)=>{var n,o;return(o=(n=t.props)==null?void 0:n.title)!=null?o:`Tab ${e+1}`},Ih=t=>{let e=[];return Fr.Children.forEach(t,n=>{Fr.isValidElement(n)?e.push(n):console.warn("Stack has unexpected child element type")}),e},Ph={allowAddTab:!1,allowCloseTab:!1,allowRenameTab:!1},Vr=Eh(function({active:e=0,children:n,className:o,getTabIcon:r=Dh,getTabLabel:s=Mh,id:i,keyBoardActivation:l="manual",onAddTab:a,onMoveTab:c,onTabClose:u,onTabEdit:d,onTabSelectionChanged:p,showTabs:m="top",style:f,TabstripProps:h=Ph},g){var E;let y=Lt(i),{allowCloseTab:v,allowRenameTab:C}=h,b=Rh((I,S,D,L)=>{d==null||d(L,S)},[d]),T=()=>{var I;return Fr.isValidElement(n)?n:Array.isArray(n)&&(I=n[e])!=null?I:null},x=()=>Ih(n).map((I,S)=>{let D=`${y}-${S}`,{closeable:L=v,id:A}=I.props;return oa(sa,{ariaControls:`${D}-tab`,"data-icon":r(I,S),id:D,index:S,label:s(I,S),closeable:L,editable:C},A!=null?A:S)}),w=T(),R=m==="left"||m==="right",M=R?"vertical":"horizontal";return Lh("div",{className:wh(na,o,{[`${na}-horizontal`]:R}),style:f,id:y,ref:g,children:[m?oa(ra,{...h,activeTabIndex:(E=h==null?void 0:h.activeTabIndex)!=null?E:w===null?-1:e,allowDragDrop:h.allowDragDrop!==!1,animateSelectionThumb:!0,className:"vuuTabHeader",keyBoardActivation:l,onActiveChange:p,onAddTab:a,onCloseTab:u,onExitEditMode:b,onMoveTab:c,orientation:M,children:x()}):null,w]})});Vr.displayName="Stack";import{useIdMemo as kh}from"@salt-ds/core";import Hh,{useCallback as $r,useRef as Ah}from"react";import{jsx as Br}from"react/jsx-runtime";var Oh=t=>Br(Ot,{resizeable:!0,title:`Tab ${t}`,style:{flexGrow:1,flexShrink:0,flexBasis:0},header:!0,closeable:!0,children:Br(fr,{style:{flex:1}})}),ia=t=>{let e=Ah(null),n=Ie(),{loadState:o}=At(),{createNewChild:r=Oh,id:s,onTabSelectionChanged:i,path:l,...a}=t,{children:c}=t,u=kh(s),[d]=uo(u,e,l),p=C=>{l&&(n({type:"switch-tab",path:l,nextIdx:C}),i==null||i(C))},m=$r(C=>{if(Array.isArray(c)){let{props:{"data-path":b,path:T=b}}=c[C];n({type:"remove",path:T})}},[c,n]),f=$r(()=>{if(l){let C=Hh.Children.count(c),b=r(C);n({type:"add",path:l,component:b})}},[c,r,n,l]),h=$r((C,b)=>{l&&n({fromIndex:C,toIndex:b,path:l,type:"move-child"})},[n,l]);return Br(Vr,{...a,id:u,getTabLabel:(C,b)=>{let{id:T,title:x}=C.props;return o(T,"view-title")||x||`Tab ${b+1}`},onMouseDown:async(C,b)=>{let T;await d({type:"mousedown",index:b,preDragActivity:async()=>new Promise(R=>{console.log("preDragActivity: Ok, gonna release the drag"),T=R})},C)&&(T==null||T(void 0))},onMoveTab:h,onAddTab:f,onTabClose:m,onTabEdit:(C,b)=>{n({type:"set-title",path:`${l}.${C}`,title:b})},onTabSelectionChanged:p,ref:e})};ia.displayName="Stack";me("Stack",ia,"container");import hH,{useState as gH}from"react";import{jsx as CH,jsxs as vH}from"react/jsx-runtime";import{FormField as LH,Input as kH}from"@salt-ds/core";import{jsx as OH,jsxs as NH}from"react/jsx-runtime";var fo="(\\d+)(?:px)?",Nh=`^(?:${fo}(?:\\s${fo}(?:\\s${fo}(?:\\s${fo})?)?)?)$`,HH=new RegExp(Nh);import BH from"react";import WH from"classnames";import{jsx as QH}from"react/jsx-runtime";import{useForkRef as Bg}from"@salt-ds/core";import os from"classnames";import{cloneElement as Kg,forwardRef as Wg,isValidElement as _g,useRef as rs}from"react";import{cloneElement as TA,createContext as Fh,useContext as Vh}from"react";import{jsx as EA}from"react/jsx-runtime";var $h=Fh(void 0);function la(){let t=Vh($h);if(t)return t}var Bh=t=>Object.prototype.toString.call(t)==="[object Object]";function zt(t){return typeof t=="string"?t:Bh(t)?Object.prototype.hasOwnProperty.call(t,"label")?String(t.label):(console.warn(["itemToString: you've likely forgotten to set the label prop on the item object.","You can also provide your own `itemToString` implementation."].join(`
|
|
18
|
+
`)),""):String(t)}function Kh(t,...e){let n=new Set(t);for(let o of e)for(let r of o)n.add(r);return n}var Cn="ArrowUp",vn="ArrowDown",aa="ArrowLeft",ca="ArrowRight",Kr="Enter";var ho="Home",Tn="End",Wr="PageUp",go="PageDown",ua=" ";var Wh=new Set(["Enter","Delete"," "]),_h=new Set(["Tab"]),Gh=new Set(["ArrowRight","ArrowLeft"]),da=new Set([ho,Tn,Wr,go,vn,Cn]),Uh=new Set(["F1","F2","F3","F4","F5","F6","F7","F8","F9","F10","F11","F12"]),Xh=Kh(Wh,da,Gh,Uh,_h),bo=t=>Xh.has(t.key)?!1:t.key.length===1&&!t.ctrlKey&&!t.metaKey&&!t.altKey,pa=({key:t})=>da.has(t);import{useCallback as ma}from"react";var Qh={},jh=t=>Array.isArray(t.childNodes),Yh=t=>!0,Zh=t=>t.closest("[data-toggle],[aria-expanded]").dataset.toggle==="true",fa=({collapsibleHeaders:t,collectionHook:e,highlightedIdx:n,onToggle:o})=>{let r=ma(l=>{if(l.key===ca||l.key===Kr){let a=e.data[n];a&&a.expanded===!1&&a.value&&(l.preventDefault(),e.expandGroupItem(a),o==null||o(a.value))}if(l.key===aa||l.key===Kr){let a=e.data[n];a&&a.expanded&&a.value&&(l.preventDefault(),e.collapseGroupItem(a),o==null||o(a.value))}},[e.collapseGroupItem,e.data,e.expandGroupItem,n]),i={onClick:ma(l=>{console.log(`useCollapsibleGroups idx=${n}`);let a=e.data[n];console.log(l.target,l.currentTarget),a&&jh(a)&&(!Yh(a)||Zh(l.target))&&(l.stopPropagation(),l.preventDefault(),a.expanded===!1&&a.value?(e.expandGroupItem(a),o==null||o(a.value)):a.expanded===!0&&a.value&&(e.collapseGroupItem(a),o==null||o(a.value)))},[e.collapseGroupItem,e.data,e.expandGroupItem,n]),onKeyDown:r};return t?i:Qh};function qh(t){if(t){let e=t.dataset.idx;if(e)return parseInt(e,10);if(e=t.ariaPosInSet)return parseInt(e,10)-1}return-1}var Jh=t=>t.closest("[data-idx],[aria-posinset]");var ha=t=>qh(Jh(t));var ga=t=>t==="none",Ft=t=>Array.isArray(t)?t.length>0:t!=null,ba=t=>Array.isArray(t)?t[0]:t;import{useCallback as Pe,useMemo as Co,useRef as vo,useState as ug,isValidElement as Ma}from"react";import{isValidElement as _r,Children as eg}from"react";var ya=t=>null;var xa=t=>null;var Gr=(t,e)=>t!==null&&Object.prototype.hasOwnProperty.call(t,e),Ur=t=>Gr(t,"header"),Ca=t=>Gr(t,"childNodes"),Sn=(t,e)=>t&&Object.prototype.hasOwnProperty.call(t.props,e),va=t=>{if(_r(t)){if(Sn(t,"disabled"))return t.props.disabled===!0}else if(Gr(t,"disabled"))return t.disabled===!0;return!1},Ta=t=>_r(t)&&Sn(t,"focusable")?t.props.focusable:!0,Sa=(t,e,n)=>{if(t.childNodes)return t.childNodes.length;if(t.header){let o=n+1,r=0;for(;o<e.length&&!e[o].header;)r++,o++;return r}else return 0},tg=t=>{if(typeof t.props.children=="string")return t.props.children;if(t.props.title)return t.props.title;if(t.props.label)return t.props.label},wa=t=>t.type===xa||Sn(t,"data-header"),Ea=t=>t.type===ya||Sn(t,"data-group"),ng=t=>Sn(t,"selectable")?t.props.selectable===!0:!Ea(t)&&!wa(t),og=t=>{if(Ea(t)){let{props:{children:e}}=t;if(typeof e!="string")return Qr(e)}},rg=(t,e)=>{let n=[];return eg.forEach(t,o=>{_r(o)&&n.push(e(o))}),n},Xr=(t,e)=>{if(Array.isArray(t))return t.length===0&&(e!=null&&e.noChildrenLabel)?[{label:e.noChildrenLabel,value:null}]:t.map((n,o)=>{var r,s;return{childNodes:Xr(n.childNodes,e),description:n.description,expanded:n.expanded,value:n,label:(s=(r=e==null?void 0:e.itemToString)==null?void 0:r.call(e,n))!=null?s:zt(n)}});if(t)throw Error("list-child-items expects source to be an array")},Qr=t=>{if(t)return rg(t,e=>{let{"data-id":n,disabled:o,id:r=n,"data-expanded":s,expanded:i=s}=e.props;return{childNodes:og(e),disabled:o,expanded:i,header:wa(e),id:r,label:tg(e),selectable:ng(e),value:e}})},sg=new Set(["/","-","."]),ig=t=>sg.has(t),Ra=(t,e)=>e.startsWith(t)&&ig(e[t.length]),lg=new Set([".","/"]);function ag(t,e){return e.startsWith(t)?lg.has(e.charAt(t.length)):!1}function yo(t,e,n){let o;return t.map(s=>s.id===e?{...s,...n}:ag(s.id,e)&&s.childNodes?(o=yo(s.childNodes,e,n),{...s,childNodes:o}):s)}var cg=t=>t&&t.replace(/^\s+/g,""),jr=t=>new RegExp(`(${jn(cg(t))})`,"gi"),Da=(t="",e=jr)=>(n="")=>!!n.length&&!!t.length&&n.match(e(t))!==null;function xo(t,e){return Array.isArray(t)?t.includes(e):t===e}var dg={},To=({children:t,id:e,label:n="",options:o=dg,source:r})=>{var H;let{getItemId:s}=o,[,i]=ug(null),l=la(),a=vo([]),c=vo([]),u=Co(()=>[],[]),d=vo((H=o.filterPattern)!=null?H:""),{getFilterRegex:p=jr,noChildrenLabel:m,itemToString:f=zt}=o,h=Pe(P=>o.defaultExpanded||!1,[o.defaultExpanded]),g=Pe((P,k,N=1,O="",F=[],$=[],G=[])=>(P.forEach((W,Y,V)=>{var q,B;let z=W.header&&o.collapsibleHeaders,K=W.childNodes&&o.collapsibleHeaders===!1,_=!W.childNodes||W.childNodes.length===0,ne=K||_&&!z,U=O?`${O}.${Y}`:`item-${Y}`,j=(q=W.id)!=null?q:s?s(Y):`${e}-${U}`,Z=ne?void 0:(B=W.expanded)!=null?B:h(j),ee={...W,childNodes:void 0,count:!K&&Z===void 0?0:Sa(W,V,Y),description:W.description,disabled:va(W.value),focusable:Ta(W.value)?void 0:!1,id:j,index:k.value,expanded:Z,level:N};if(F.push(ee),$.push(ee),G.push(P[Y].value),k.value+=1,W.childNodes){let[J]=g(W.childNodes,k,N+1,U,[],$,G);ee.childNodes=J}}),[F,G,$]),[o.collapsibleHeaders,s,e,h]),y=Pe(()=>d.current?Da(d.current,p):null,[p]),v=Pe((P,k=y(),N=[],O={value:0})=>{let F=!1;for(let $ of P)F&&!Ur($)||($.value!==null&&(k===null||k(f($.value)))&&(N[O.value]=$,O.value+=1),F=!1,Ur($)&&$.expanded===!1?F=!0:Ca($)&&$.expanded!==!1&&$.childNodes&&v($.childNodes,k,N,O));return N},[y,f]),C=Co(()=>l?u:Xr(r,{itemToString:f,noChildrenLabel:m})||Qr(t)||[],[l,u,r,f,m,t]),[b,T,x]=Co(()=>l?[u,u,u]:g(C,{value:0}),[u,g,l,C]);c.current=x,Co(()=>l?u:a.current=v(b),[u,v,b,l]);let w=vo(b),R=Pe((P="")=>{typeof P=="string"&&(d.current=P,a.current=v(b),i({}))},[b,v]),M=Pe((P,k=b)=>{let N=k.find(O=>{var F;return O.id===P||((F=O==null?void 0:O.childNodes)==null?void 0:F.length)&&Ra(O.id,P)});if((N==null?void 0:N.id)===P)return T==null?void 0:T[N.index];if(N)return M(P,N.childNodes);throw Error(`useCollectionData itemById, id ${P} not found `)},[T,b]),E=Pe(P=>{let k=c.current.find(N=>Ma(N.value)?N.label===P:N.value===P);if(k)return k;throw Error("useCollectionData toCollectionItem, item not found ")},[]),I=Pe(P=>{if(P===null)return null;if(Array.isArray(P)){let k=[];for(let N of P){let O=E(N);k.push(O)}return k}else if(P!==void 0)return E(P)},[E]),S=Pe(P=>{let k=N=>{let O=c.current.find(F=>Ma(F.value)?F.label===N:F.value!==null&&f(F.value)===N);if(O)return O};if(P===null)return null;if(Array.isArray(P)){let N=[];for(let O of P){let F=k(O);F&&N.push(F)}return N}else if(P!==void 0)return k(P)},[f]),D=Pe(P=>{for(let k of w.current)if(P===k.value)return k.id;throw Error("useCollectionData itemToId, item not found")},[]),L=Pe(P=>{w.current=yo(w.current,P.id,{expanded:!1}),a.current=v(w.current),i({})},[v]),A=Pe(P=>{w.current=yo(w.current,P.id,{expanded:!0}),a.current=v(w.current),i({})},[v]);return l||{collapseGroupItem:L,data:a.current,expandGroupItem:A,setFilterPattern:R,itemById:M,itemToId:D,toCollectionItem:E,itemToCollectionItem:I,stringToCollectionItem:S}};import{useImperativeHandle as pg,useMemo as mg}from"react";var fg={scrollToIndex:t=>{},scrollToItem:t=>{},scrollTo:t=>{}},So=({collectionHook:t,forwardedRef:e,scrollableRef:n,scrollIntoView:o})=>{let r=mg(()=>({scrollToIndex:s=>{let i=t.data[s];i&&(o==null||o(i))},scrollToItem:s=>{let i=t.toCollectionItem(s);i&&(o==null||o(i))},scrollTo:s=>{n!=null&&n.current&&(n.current.scrollTop=s)}}),[t.data,t.toCollectionItem,o]);pg(e,()=>n.current?r:fg,[r])};import{useControlled as hg}from"@salt-ds/core";import{useCallback as Vt,useMemo as gg,useRef as Yr,useState as bg}from"react";var qr=-2;function Ia(t,e,n){return e===Cn||e===Tn?n>0?n-1:n:n===null?0:n===t-1?n:n+1}var Zr=(t,e)=>{let n=ba(e);return n?t.indexOf(n):-1},yg=(t,e,n,o)=>t===Tn?o:t===ho?-1:e!==-1?e:n,La=t=>{let e=document.getElementById(t.id);if(e)return e.getBoundingClientRect();throw Error(`useKeyboardNavigation.getItemRect no element found for item #${t==null?void 0:t.id}`)},xg=(t,e,n,o)=>{let{top:r}=e.getBoundingClientRect(),{scrollTop:s,clientHeight:i,scrollHeight:l}=t,a=n.length-1,c=Math.min(s+i,l-i);if(c!==s&&o<a){t.scrollTo(0,c);let u=o,d;do u+=1,d=La(n[u]);while(d.top<r&&u<a);return u}},Cg=async(t,e,n,o)=>{let{top:r}=e.getBoundingClientRect(),{scrollTop:s,clientHeight:i}=t,l=Math.max(s-i,0);if(l!==s&&o>0)return t.scrollTo(0,l),new Promise(a=>{requestAnimationFrame(()=>{let c=o,u;do c-=1,u=La(n[c]);while(u.top>r&&c>0);a(c)})})},vg=t=>!t.header&&!t.childNodes,Pa=t=>vg(t)||t.expanded!==void 0,ka=({containerRef:t,defaultHighlightedIndex:e=-1,disableHighlightOnFocus:n,highlightedIndex:o,indexPositions:r,onHighlight:s,onKeyboardNavigation:i,restoreLastFocus:l,selected:a})=>{let c=Yr(-1),[,u]=bg({}),[d,p,m]=hg({controlled:o,default:e,name:"UseKeyboardNavigation"}),f=Vt((R,M=!1)=>{s==null||s(R),p(R),M&&(c.current=R)},[s,p]),h=Vt(async(R,M)=>{let{id:E}=r[M],I;if(E){let S=document.getElementById(E),{current:D}=t;S&&D&&(I=R.key===go?xg(D,S,r,M):await Cg(D,S,r,M))}return I!=null?I:M},[t,r]),g=Vt((R=vn,M=R===vn?-1:r.length)=>{if(r.length===0)return-1;{let E=Zr(r,a),I=yg(R,M,E,r.length),S=Ia(r.length,R,I);if(S===0&&R===Cn&&!Pa(r[0]))return M;for(;((R===vn||R===ho)&&S<r.length||(R===Cn||R===Tn)&&S>0)&&!Pa(r[S]);)S=Ia(r.length,R,S);return S}},[r,a]),y=Yr(!1),v=Yr(!1),C=R=>v.current=R,b=Vt(R=>{if(v.current)v.current=!1;else if(y.current=!0,r.length===0)f(qr);else if(d!==-1)u({});else if(l)if(c.current!==-1)f(c.current);else{let M=Zr(r,a);f(M!==-1?M:0)}else if(Ft(a)){let M=Zr(r,a);f(M)}else n!==!0&&f(g())},[n,d,r,g,l,a,f]),T=Vt(async R=>{let M=R.key===go||R.key===Wr?await h(R,d):g(R.key,d);M!==d&&f(M,!0),i==null||i(R,M)},[d,g,h,i,f]),x=Vt(R=>{r.length>0&&pa(R)?(R.preventDefault(),R.stopPropagation(),y.current=!0,T(R)):bo(R)&&(y.current=!0)},[r,T]),w=gg(()=>({onBlur:R=>{let M=R.target.closest(".saltList"),E=R.relatedTarget;M&&!(M!=null&&M.contains(E))&&(y.current=!1,p(-1),l||(c.current=-1))},onFocus:b,onKeyDown:x,onMouseDownCapture:()=>{y.current=!1,C(!0)},onMouseMove:()=>{y.current&&(y.current=!1)},onMouseLeave:()=>{y.current=!1,C(!1),f(-1)}}),[b,x,l,p,f]);return{focusVisible:y.current?d:-1,controlledHighlighting:m,highlightedIndex:d,setHighlightedIndex:f,keyboardNavigation:y,listProps:w,setIgnoreFocus:C}};import{useControlled as Tg}from"@salt-ds/core";import{useCallback as ke,useRef as Sg}from"react";var wg={},Eg=["Enter"," "],Jr=t=>t&&t.disabled!==!0&&t.selectable!==!1,Ha=(t,e)=>{var n,o;return((n=t.index)!=null?n:0)-((o=e.index)!=null?o:0)};var Aa=({defaultSelected:t,disableSelection:e=!1,highlightedIdx:n,indexPositions:o,onSelect:r,onSelectionChange:s,selected:i,selectionStrategy:l,selectionKeys:a=Eg,tabToSelect:c})=>{let u=l==="deselectable",d=l==="multiple",p=l==="extended",m=Sg(-1),f=ke(S=>a.includes(S.key),[a]),h=ke(()=>d||p?[]:null,[d,p]),[g,y]=Tg({controlled:i,default:t!=null?t:h(),name:"UseSelection",state:"selected"}),v=ke(S=>Array.isArray(g)?g.includes(S):g===S,[g]),C=ke(S=>S,[]),b=ke(S=>v(S)?null:S,[v]),T=ke(S=>{let D=v(S)?g.filter(L=>L!==S):g.concat(S);return D.sort(Ha),D},[v,g]),x=ke((S,D)=>{let L=D?g:[],[A]=g.slice(-1),H=A?o.indexOf(A):0,P=Math.min(S,H),k=Math.max(S,H),N=o.slice(P,k+1),O=[...new Set([...L,...N])];return O.sort(Ha),O},[o,g]),w=ke((S,D,L,A,H)=>{let P;d?P=T(L):p?H&&!A?P=T(L):A?P=x(D,H):P=[L]:u?P=b(L):P=C(L),P!==g&&y(P),r==null||r(S,L),P!==g&&s&&s(S,P)},[d,p,u,g,r,T,x,b,C,y,s]),R=ke(S=>{let D=o[n];Jr(D)&&(f(S)||c&&S.key==="Tab")&&(S.key!=="Tab"&&S.preventDefault(),w(S,n,D,!1,S.ctrlKey||S.metaKey),p&&(m.current=n))},[o,n,f,c,w,p]),M=ke((S,D)=>{if(p&&S.shiftKey){let L=o[D];Jr(L)&&w(S,D,L,!0)}},[p,o,w]),E=ke(S=>{let D=o[n];!e&&Jr(D)&&(S.preventDefault(),S.stopPropagation(),w(S,n,D,S.shiftKey,S.ctrlKey||S.metaKey),p&&(m.current=n))},[e,p,n,o,w]);return{listHandlers:ga(l)?wg:{onClick:E,onKeyDown:R,onKeyboardNavigation:M},selected:g,setSelected:y}};import{useCallback as Oa,useRef as es}from"react";var Na=({disableTypeToSelect:t,highlightedIdx:e,highlightItemAtIndex:n,typeToNavigate:o,items:r,applyIncrementalSearch:s=!0})=>{let i=es(null),l=es(""),a=es(-1),c=Oa(d=>{if(d||!s){let p=new RegExp(`^${l.current}`,"i"),m=r.findIndex(({label:f},h)=>h>a.current&&p.test(f));m===-1&&(m=r.findIndex(({label:f},h)=>h<=a.current&&p.test(f))),m!==-1&&n(m)}else l.current="",i.current=null,a.current=-1},[s,n,r]),u=Oa(d=>{let p=a.current!==-1;(bo(d)||p&&d.key===ua)&&o&&(d.preventDefault(),d.stopPropagation(),(a.current===-1||d.key===l.current)&&(a.current=e),i.current!==null&&(clearTimeout(i.current),i.current=null),d.key!==l.current&&(l.current+=d.key),s&&c(!0),i.current=window.setTimeout(()=>{c()},100))},[o,s,e,c]);return{onKeyDown:t?void 0:u}};import{useCallback as $t,useRef as Ba}from"react";import{useCallback as Rg,useEffect as za,useRef as Dg}from"react";var Va=["height"],ft=new Map,$a=(t,e,n)=>{switch(n){case"height":return e.height;case"clientHeight":return t.clientHeight;case"clientWidth":return t.clientWidth;case"contentHeight":return e.contentHeight;case"contentWidth":return e.contentWidth;case"scrollHeight":return Math.ceil(t.scrollHeight);case"scrollWidth":return Math.ceil(t.scrollWidth);case"width":return e.width;default:return 0}};var Fa=new ResizeObserver(t=>{for(let e of t){let{target:n,borderBoxSize:o,contentBoxSize:r}=e,s=ft.get(n);if(s){let[{blockSize:i,inlineSize:l}]=o,[{blockSize:a,inlineSize:c}]=r,{onResize:u,measurements:d}=s,p=!1;for(let[m,f]of Object.entries(d)){let h=$a(n,{height:i,width:l,contentHeight:a,contentWidth:c},m);h!==f&&(p=!0,d[m]=h)}p&&u&&u(d)}}});function ht(t,e,n,o=!1){let r=Dg(e),s=Rg(i=>{let{width:l,height:a}=i.getBoundingClientRect(),{clientWidth:c,clientHeight:u}=i;return r.current.reduce((d,p)=>(d[p]=$a(i,{width:l,height:a,contentHeight:u,contentWidth:c},p),d),{})},[]);za(()=>{let i=t.current;async function l(){ft.set(i,{measurements:{}}),await document.fonts.ready;let a=ft.get(i);if(a){let c=s(i);a.measurements=c,Fa.observe(i),o&&n(c)}else console.log("%cuseResizeObserver an target expected to be under observation wa snot found. This warrants investigation","font-weight:bold; color:red;")}if(i){if(ft.has(i))throw Error("useResizeObserver attemping to observe same element twice");l()}return()=>{i&&ft.has(i)&&(Fa.unobserve(i),ft.delete(i))}},[s,t]),za(()=>{let i=t.current,l=ft.get(i);if(l){if(r.current!==e){r.current=e;let a=s(i);l.measurements=a}l.onResize=n}},[e,s,t,n])}import{useIsomorphicLayoutEffect as Mg}from"@salt-ds/core";var Ka=["height"],Ig=["height","scrollHeight"],Pg=[],Wa={containerOnly:[Ig,Pg],withContent:[Ka,Ka]},Lg=t=>t?Wa.containerOnly:Wa.withContent,_a={current:null},kg=(t,e)=>{let{transform:n="none"}=getComputedStyle(t);if(n.startsWith("matrix")){let o=n.lastIndexOf(",");return parseInt(n.slice(o+1))}else{let o=t.offsetParent;if(o===e||e===null)return t.offsetTop;{let r=t.offsetTop;for(;o!==null&&o!==e;)r+=o.offsetTop,o=o.offsetParent;return r}}},Ga=({containerRef:t,contentRef:e=_a,highlightedIdx:n=-1,indexPositions:o,stickyHeaders:r=!1})=>{let s=Ba(!1),i=Ba({height:0,contentHeight:0}),l=$t(h=>{s.current=!0,t.current&&(t.current.scrollTop=h),setTimeout(()=>{s.current=!1})},[]),a=$t(()=>l(0),[l]),c=$t(()=>{l(i.current.contentHeight-i.current.height)},[l]),u=$t(h=>{let g=e.current||t.current;if(h.id){let y=document.getElementById(h.id);if(y&&t.current){let{height:v}=i.current,C=y.ariaExpanded&&y.firstChild?y.firstChild:y,b=r?36:0,T=kg(C,g),x=C.offsetHeight,{scrollTop:w}=t.current,R=w+b,M=R+v-b;if(T+x>M||T<R){let E=T+x>M?w+(T+x)-M:T-b;l(E)}}}},[t,e,l,r]);Mg(()=>{let{height:h,contentHeight:g}=i.current,y=o[n];if(g>h&&y){let[v]=o,[C]=o.slice(-1);y===v?a():y===C?c():u(o[n])}},[n,o,u,c,a]);let d=$t(({height:h,scrollHeight:g})=>{typeof h=="number"&&(i.current.height=h),typeof g=="number"&&(i.current.contentHeight=g)},[]),p=$t(({height:h})=>{typeof h=="number"&&(i.current.contentHeight=h)},[]),[m,f]=Lg(e===_a);return ht(t,m,d,!0),ht(e,f,p,!0),{isScrolling:s,scrollIntoView:u}};import{isValidElement as ts,useCallback as Xe,useEffect as Ua,useRef as Xa}from"react";var wo=({allowDragDrop:t=!1,collapsibleHeaders:e,collectionHook:n,containerRef:o,contentRef:r,defaultHighlightedIndex:s,defaultSelected:i,disabled:l,disableAriaActiveDescendant:a,disableHighlightOnFocus:c,disableTypeToSelect:u,highlightedIndex:d,id:p,label:m="",listHandlers:f,onHighlight:h,onKeyboardNavigation:g,onKeyDown:y,onMoveListItem:v,onSelect:C,onSelectionChange:b,restoreLastFocus:T,selected:x,selectionStrategy:w,selectionKeys:R,stickyHeaders:M,tabToSelect:E,viewportRange:I})=>{let S=Xa(null),D=Xa(x||i),L=(X,Q)=>{var te,re;(re=(te=Y.listHandlers).onKeyboardNavigation)==null||re.call(te,X,Q),g==null||g(X,Q)},A=Xe((X,Q)=>{C&&(ts(Q.value)?C(X,Q.label):Q.value!==null&&C(X,Q.value))},[C]),H=Xe((X,Q)=>{b&&b(X,Array.isArray(Q)?Q.map(te=>ts(te.value)?te.label:te.value):Q&&(ts(Q.value)?Q.label:Q.value))},[b]),{highlightedIndex:P,listProps:{onKeyDown:k,onMouseMove:N,...O},setHighlightedIndex:F,...$}=ka({containerRef:o,defaultHighlightedIndex:s,disableHighlightOnFocus:c,highlightedIndex:d,indexPositions:n.data,label:m,onHighlight:h,onKeyboardNavigation:L,restoreLastFocus:T,selected:D.current}),G=fa({collapsibleHeaders:e,highlightedIdx:P,collectionHook:n}),W=Xe(()=>{F(-1)},[F]),Y=Aa({defaultSelected:i,highlightedIdx:P,indexPositions:n.data,label:m,onSelect:A,onSelectionChange:H,selected:x,selectionStrategy:w,selectionKeys:R,tabToSelect:E}),V=Xe((X,Q,te)=>{let re=n.data.indexOf(X);return re===Q?te:re<Math.min(Q,te)||re>Math.max(Q,te)?re:Q<re?re-1:re+1},[n.data]),z=Xe((X,Q,te)=>Array.isArray(X)?X.map(re=>V(re,Q,te)):V(X,Q,te),[V]),K=Xe((X,Q)=>{Ft(Y.selected)&&(S.current=z(Y.selected,X,Q)),v==null||v(X,Q),F(-1)},[Y.selected,v,F,z]),_=Xe(X=>{F(X)},[F]),{setSelected:ne}=Y;Ua(()=>{let{current:X}=S;if(Ft(X)){let Q=Array.isArray(X)?X.map(te=>n.data[te]):n.data[X];ne(Q)}},[n.data,ne]),Ua(()=>{Ft(D.current)&&ne(Array.isArray(D.current)?[]:null)},[ne,n.data]);let{onMouseDown:U,isDragging:j,isScrolling:Z,...ee}=Mt({allowDragDrop:t,draggableClassName:"list-item",orientation:"vertical",containerRef:o,id:p,itemQuery:".vuuListItem",onDragStart:W,onDrop:K,onDropSettle:_,viewportRange:I}),{onKeyDown:q}=Na({disableTypeToSelect:u,highlightedIdx:P,highlightItemAtIndex:F,typeToNavigate:!0,items:n.data}),B=Xe(X=>{var Q,te,re;X.defaultPrevented||q==null||q(X),k(X),X.defaultPrevented||(te=(Q=Y.listHandlers).onKeyDown)==null||te.call(Q,X),X.defaultPrevented||(re=G==null?void 0:G.onKeyDown)==null||re.call(G,X),X.defaultPrevented||y==null||y(X)},[G,k,y,Y.listHandlers,q]),{isScrolling:J,scrollIntoView:se}=Ga({containerRef:o,contentRef:r,highlightedIdx:P,indexPositions:n.data,stickyHeaders:M}),oe=J.current||Z.current,le=Xe(X=>{if(!oe&&!l&&!j){N();let Q=ha(X.target);if(Q!==-1&&Q!==P){let te=n.data[Q];!te||te.disabled?F(-1):F(Q)}}},[j,oe,l,F,N,P,n.data]),ce=()=>{var X;return P===void 0||P===-1||a||(X=n.data[P])==null?void 0:X.id};D.current=Y.selected;let ae={"aria-activedescendant":ce(),onBlur:O.onBlur,onFocus:O.onFocus,onKeyDown:B,onMouseDown:U,onMouseDownCapture:O.onMouseDownCapture,onMouseLeave:O.onMouseLeave},de=f||{onClick:Y.listHandlers.onClick,onMouseMove:le};return{focusVisible:$.focusVisible,controlledHighlighting:$.controlledHighlighting,highlightedIndex:P,keyboardNavigation:$.keyboardNavigation,listHandlers:de,listItemHeaderHandlers:G,listControlProps:ae,scrollIntoView:se,selected:Y.selected,setHighlightedIndex:F,setIgnoreFocus:$.setIgnoreFocus,setSelected:Y.setSelected,...ee}};import{useIsomorphicLayoutEffect as Hg}from"@salt-ds/core";import{useCallback as Ag,useMemo as Og,useState as Qa}from"react";var Ng=(t,e,n=0)=>t===0?0:n===0?t*e:t-1*(e+n)+e,Eo=({borderless:t,displayedItemCount:e,getItemHeight:n,height:o,itemCount:r,itemGapSize:s,itemHeight:i,rootRef:l,rowHeightRef:a})=>{let[c,u]=Qa(36),[d,p]=Qa(),[m,f]=Og(()=>{let g=t?0:2,y=i!=null?i:c,v=Ng(r,y,s);if(o!==void 0&&typeof o=="number"||typeof o=="string")return[v,o];let C=Math.min(e,r)||e;return typeof n=="function"?g+=Array(C).fill(0).reduce((T,x,w)=>T+n(w)+s,0)-s:g+=C*Number(y)+(C-1)*s,[v,g,d]},[t,d,e,n,o,r,s,i,c]);Hg(()=>{if(l.current){let{clientHeight:g}=l.current;p(g)}},[l]);let h=Ag(({height:g})=>{typeof g=="number"&&u(g)},[]);return ht(a,Va,h,!0),{contentHeight:m,listClientHeight:d,listItemHeight:c,listHeight:f}};import{useIsomorphicLayoutEffect as zg}from"@salt-ds/core";import{useCallback as Fg,useMemo as Vg,useRef as ns,useState as $g}from"react";var ja=(t,e,n,o)=>{let r=Math.ceil(e/o),s=Math.floor(t/o),i=Math.ceil(s+r-1);return{atStart:s===0,atEnd:i===n-1,from:s,to:i}},Ro=({containerSize:t,itemCount:e,itemGapSize:n=0,itemSize:o,onViewportScroll:r})=>{let s=ns(0),i=ns(0),l=ns(0),a=Vg(()=>ja(l.current,t,e,o+n),[t,e,o,n]),[c,u]=$g(a);return zg(()=>{u(a)},[a]),{onVerticalScroll:Fg(p=>{let m=p.target.scrollTop;if(m!==l.current){l.current=m;let f=o+n,h=ja(m,t,e,f);(h.from!==s.current||h.to!==i.current)&&(s.current=h.from,i.current=h.to,r==null||r(h.from,h.to),u(h))}},[o,n,t,e,r]),viewportRange:c}};import{Fragment as Xg,jsx as Bt,jsxs as Ya}from"react/jsx-runtime";import{createElement as Ug}from"react";var Gg="No data to display",wn="vuuList",WN=Wg(function({ListItem:e=qn,ListPlaceholder:n,allowDragDrop:o,borderless:r,children:s,className:i,collapsibleHeaders:l=!1,defaultHighlightedIndex:a,defaultSelected:c,disabled:u=!1,disableFocus:d=!1,disableTypeToSelect:p,displayedItemCount:m=10,emptyMessage:f,focusVisible:h,getItemHeight:g,getItemId:y,height:v,highlightedIndex:C,id:b,itemGapSize:T=0,itemHeight:x,itemTextHighlightPattern:w,itemToString:R=zt,listHandlers:M,maxHeight:E,maxWidth:I,minHeight:S,minWidth:D,onMoveListItem:L,onSelect:A,onSelectionChange:H,onHighlight:P,restoreLastFocus:k,selected:N,selectionStrategy:O,checkable:F=O==="multiple",scrollingApiRef:$,selectionKeys:G,showEmptyMessage:W=!1,source:Y,style:V,stickyHeaders:z,tabToSelect:K,width:_,...ne},U){let j=Lt(b),Z=rs(null),ee=rs(null),q=rs(null),B=To({id:j,label:"List",source:Y,children:s,options:{collapsibleHeaders:l,getItemId:y,itemToString:R}}),{listClientHeight:J,listHeight:se,listItemHeight:oe}=Eo({borderless:r,displayedItemCount:m,getItemHeight:g,height:v,itemCount:B.data.length,itemGapSize:T,itemHeight:x,rootRef:Z,rowHeightRef:q}),{onVerticalScroll:le,viewportRange:ce}=Ro({containerSize:J!=null?J:typeof se=="number"?se:0,itemCount:B.data.length,itemGapSize:T,itemSize:oe}),{draggable:ae,draggedItemIndex:de,dropIndicator:X,focusVisible:Q,highlightedIndex:te,listControlProps:re,listHandlers:pe,listItemHeaderHandlers:Se,scrollIntoView:we,selected:Ze}=wo({allowDragDrop:o,collapsibleHeaders:l,collectionHook:B,containerRef:Z,contentRef:ee,defaultHighlightedIndex:a,defaultSelected:B.itemToCollectionItem(c),disabled:u,disableTypeToSelect:p,highlightedIndex:C,id:j,label:j,listHandlers:M,onMoveListItem:L,onSelect:A,onSelectionChange:H,onHighlight:P,restoreLastFocus:k,selected:B.itemToCollectionItem(N),selectionStrategy:O,selectionKeys:G,stickyHeaders:z,tabToSelect:K,viewportRange:ce});So({collectionHook:B,forwardedRef:$,scrollableRef:Z,scrollIntoView:we});let at=h!=null?h:Q,We=function(ue,ye,ve,ge){let ct=Ug(e,{...Se,className:os(`${wn}Header`,{focusVisible:l&&at===ue.value}),"aria-expanded":ge,"data-idx":l?ue.value:void 0,"data-index":l?ue.value:void 0,"data-highlighted":ue.value===te||void 0,"data-sticky":z,"data-selectable":!1,id:ye,key:`header-${ue.value}`,label:ve});return ue.value+=1,ct},en=g===void 0?()=>x:g;function $d(_e,ue,ye){var Kn,li;let{disabled:ve,value:ge,id:ct,label:$n}=ue,Bn=_g(ge),tn={className:os((Kn=ge==null?void 0:ge.props)==null?void 0:Kn.className,{vuuHighlighted:ye.value===te,vuuFocusVisible:at===ye.value,["vuuDraggable-dragAway"]:de===ye.value}),disabled:ve||u,id:ct,item:Bn?void 0:(li=ue==null?void 0:ue.value)!=null?li:void 0,itemHeight:en(ye.value),itemTextHighlightPattern:w,key:ct,"data-idx":ye.value,"data-index":ye.value,label:$n,role:"option",selected:xo(Ze,ue),showCheckbox:F};_e.push(Bn?Kg(ge,tn):Bt(e,{...tn})),ye.value+=1}let Bd=function(ue,ye,ve){let{count:ge=0,id:ct,expanded:$n,label:Bn=""}=ye[ve.value],tn=We(ve,ct,Bn,$n),Kn=$n!==!1?[tn].concat(ii(ye,ve,ve.value+ge)||[]):tn;ue.push(Bt("div",{role:"group",children:Kn},ct))},ii=(_e,ue={value:0},ye=_e.length)=>{let ve=[];for(;ue.value<ye;){let ge=_e[ue.value];ge.header?ve.push(We(ue,ge.id,ge.label,ge.expanded===!1)):ge.childNodes?Bd(ve,_e,ue):$d(ve,ge,ue)}return ve};function Kd(){return f||W?Bt("span",{className:`${wn}-empty-message`,children:f!=null?f:Gg}):null}let Wd=()=>{if(B.data.length){let _e=B.data;return ii(_e)}else Kd()},_d="auto",Gd={"--list-item-gap":T?`${T}px`:void 0,minWidth:D,minHeight:S,width:_!=null?_:"100%",height:v!=null?v:"100%",maxWidth:I!=null?I:_,maxHeight:E!=null?E:se};return Ya("div",{"aria-multiselectable":O==="multiple"||O==="extended"||O==="extended-multi-range"||void 0,...ne,...pe,...re,className:os(wn,i,{[`${wn}-collapsible`]:l,vuuFocusVisible:te===qr}),id:`${j}`,ref:Bg(Z,U),role:"listbox",onScroll:le,style:{...V,...Gd},tabIndex:u||d?void 0:0,children:[Bt(Zn,{ref:q}),B.data.length===0&&n!==void 0?Bt(Xg,{children:Bt(n,{})}):Ya("div",{className:`${wn}-scrollingContentContainer`,ref:ee,style:{height:_d},children:[Wd(),X,ae]})]})});import{makePrefixer as Yg,useForkRef as Zg,useIdMemo as qg}from"@salt-ds/core";function Za(t){var e,n,o="";if(typeof t=="string"||typeof t=="number")o+=t;else if(typeof t=="object")if(Array.isArray(t))for(e=0;e<t.length;e++)t[e]&&(n=Za(t[e]))&&(o&&(o+=" "),o+=n);else for(e in t)t[e]&&(o&&(o+=" "),o+=e);return o}function ss(){for(var t,e,n=0,o="";n<arguments.length;)(t=arguments[n++])&&(e=Za(t))&&(o&&(o+=" "),o+=e);return o}import{forwardRef as Jg,memo as eb,useRef as ec}from"react";import{useMemo as Qg}from"react";var Do=class{constructor(e=0,n=0){this.keys=new Map,this.free=[],this.nextKeyValue=0,this.reset(e,n)}next(){return this.free.length?this.free.pop():this.nextKeyValue++}reset(e,n){this.keys.forEach((r,s)=>{(s<e||s>=n)&&(this.free.push(r),this.keys.delete(s))});let o=n-e;this.keys.size+this.free.length>o&&(this.free.length=o-this.keys.size);for(let r=e;r<n;r++)if(!this.keys.has(r)){let s=this.next();this.keys.set(r,s)}}keyFor(e){return this.keys.get(e)}};var jg=([t],[e])=>t-e,qa=5,Ja=({data:t,listItemGapSize:e=0,listItemHeight:n,viewportRange:o})=>{let r=Qg(()=>new Do(0,1),[]),s=n+e,i=Math.max(0,o.from-qa),l=Math.min(t.length,o.to+qa);return r.reset(i,l),t.slice(i,l).map((c,u)=>[r.keyFor(u+i),(u+i)*s,u+i+1,c]).sort(jg)};import{jsx as Io,jsxs as ob}from"react/jsx-runtime";var tb="No data to display",Mo=Yg("saltList"),nb=eb(qn),m1=Jg(function({borderless:e,children:n,className:o,collapsibleHeaders:r=!1,defaultHighlightedIndex:s,defaultSelected:i,disabled:l=!1,disableFocus:a=!1,disableTypeToSelect:c,displayedItemCount:u=10,emptyMessage:d,getItemHeight:p,getItemId:m,height:f,highlightedIndex:h,id:g,itemGapSize:y=0,itemHeight:v,itemTextHighlightPattern:C,itemToString:b,maxHeight:T,maxWidth:x,minHeight:w,minWidth:R,onSelect:M,onSelectionChange:E,onViewportScroll:I,onHighlight:S,restoreLastFocus:D,selected:L,selectionStrategy:A,scrollingApiRef:H,selectionKeys:P,showEmptyMessage:k=!1,source:N,style:O,stickyHeaders:F,tabToSelect:$,width:G,...W},Y){let V=qg(g),z=ec(null),K=ec(null),_=To({id:V,label:"List",source:N,children:n,options:{collapsibleHeaders:r,getItemId:m,itemToString:b}}),{contentHeight:ne,listItemHeight:U,listHeight:j}=Eo({borderless:e,displayedItemCount:u,height:f,itemCount:_.data.length,itemGapSize:y,itemHeight:v,rootRef:z,rowHeightRef:K}),{focusVisible:Z,highlightedIndex:ee,listControlProps:q,listHandlers:B,scrollIntoView:J,selected:se}=wo({collapsibleHeaders:r,collectionHook:_,containerRef:z,defaultHighlightedIndex:s,defaultSelected:_.itemToCollectionItem(i),disabled:l,disableTypeToSelect:c,highlightedIndex:h,label:V,onSelect:M,onSelectionChange:E,onHighlight:S,restoreLastFocus:D,selected:_.itemToCollectionItem(L),selectionStrategy:A,selectionKeys:P,stickyHeaders:F,tabToSelect:$}),{onVerticalScroll:oe,viewportRange:le}=Ro({containerSize:typeof j=="number"?j:0,itemCount:_.data.length,itemGapSize:y,itemSize:U});console.log({viewPortRange:le});let ce=Ja({data:_.data,listItemGapSize:y,listItemHeight:U,viewportRange:le});So({collectionHook:_,forwardedRef:H,scrollableRef:z,scrollIntoView:J});function ae(re,pe,Se){let[we,Ze,at,We]=pe,en=at-1;re.push(Io(nb,{"aria-setsize":_.data.length,"aria-posinset":at,className:ss(o,{saltHighlighted:en===ee,saltFocusVisible:Z===en}),"data-idx":en,item:We,label:We.label,"data-offset":Ze,role:"option",selected:xo(se,We),id:We.id,translate3d:Ze},we)),Se.value+=1}function de(re,pe={value:0},Se=re.length){let we=[];for(;pe.value<Se;){let Ze=re[pe.value];ae(we,Ze,pe)}return we}function X(){return d||k?Io("span",{className:Mo("empty-message"),children:d!=null?d:tb}):null}let Q=()=>{if(ce.length)return de(ce);X()},te={"--list-item-gap":y?`${y}px`:void 0,minWidth:R,minHeight:w,width:G!=null?G:"100%",height:f!=null?f:"100%",maxWidth:x!=null?x:G,maxHeight:T!=null?T:j};return Io("div",{...W,...B,...q,className:ss(Mo(),o,Mo("virtualized")),id:`${V}`,ref:Zg(z,Y),role:"listbox",onScroll:oe,style:{...O,...te},tabIndex:l||a?void 0:0,children:ob("div",{className:Mo("scrollingContentContainer"),style:{height:ne},children:[Io(Zn,{ref:K}),Q()]})})});import{Button as Tb}from"@salt-ds/core";import Sb from"classnames";import wb,{useMemo as Eb,useRef as Rb}from"react";import{useCallback as Te,useRef as yb}from"react";var tc=t=>typeof t=="object"&&t!==null&&"tabIndex"in t&&typeof t.tabIndex=="number",nc=t=>({label:"Close",location:"tab",action:"close-tab",options:t}),oc=t=>({label:"Rename",location:"tab",action:"rename-tab",options:t});var rb=t=>{if(t){let e=parseInt(t.dataset.index||"");if(!isNaN(e))return e}return-1},rc=(t,e)=>{if(t){let n=t.querySelector(`[data-index]:has(${e})`);return rb(n)}return-1},is=t=>rc(t,'[aria-selected="true"]'),sc=t=>rc(t,".vuuEditableLabel-editing");import{isValidNumber as ls,MEASURES as sb}from"@vuu-ui/vuu-utils";import{useCallback as as,useMemo as ib,useRef as ic}from"react";var lc=(t,e,n="horizontal")=>{let o=ic(!1),r=as(()=>{o.current=!0},[]),s=as(()=>{o.current=!1},[]),i=as(()=>{var a,c;(a=t.current)==null||a.style.setProperty("--tab-thumb-transition","none"),(c=t.current)==null||c.removeEventListener("transitionend",i)},[t]),l=ic(-1);return ib(()=>{var u,d;let a=0,c=0;if(l.current!==-1){let p=(u=t.current)==null?void 0:u.querySelector(".vuuTab-selected"),m=(d=t.current)==null?void 0:d.querySelector(`[data-index="${e}"] .vuuTab`),{positionProp:f,sizeProp:h}=sb[n];if(p&&m&&!o.current){let{[f]:g,[h]:y}=p.getBoundingClientRect(),{[f]:v}=m.getBoundingClientRect();if(ls(g)&&ls(v)&&ls(y)){console.log({orientation:n,positionProp:f,oldPosition:g,newPosition:v}),a=g-v,c=y;let b=Math.abs(a/(n==="horizontal"?1100:700));requestAnimationFrame(()=>{var T,x,w,R;(T=t.current)==null||T.style.setProperty("--tab-thumb-offset","0px"),(x=t.current)==null||x.style.setProperty("--tab-thumb-size","100%"),(w=t.current)==null||w.style.setProperty("--tab-thumb-transition",`all ${b}s ease`),(R=t.current)==null||R.addEventListener("transitionend",i)})}}}return l.current=e,o.current?{containerStyle:{"--tab-thumb-offset":"0px","--tab-thumb-size":"100%"},resumeAnimation:s,suspendAnimation:r}:{containerStyle:{"--tab-thumb-offset":`${a}px`,"--tab-thumb-size":c?`${c}px`:void 0},resumeAnimation:s,suspendAnimation:r}},[e,t,n,i,s,r])};import{useControlled as lb}from"@salt-ds/core";import{getFocusableElement as ab}from"@vuu-ui/vuu-utils";import{useCallback as Ve,useRef as cs,useState as ac}from"react";import{ArrowDown as pc,ArrowUp as cb,ArrowLeft as ub,ArrowRight as db,Home as cc,End as uc}from"@vuu-ui/vuu-utils";var mc={horizontal:{[cc]:"start",[uc]:"end",[ub]:"bwd",[db]:"fwd"},vertical:{[cc]:"start",[uc]:"end",[cb]:"bwd",[pc]:"fwd"}},pb=(t,e="horizontal")=>mc[e][t]!==void 0,mb=t=>t===pc;function dc(t,e,n){return e==="start"?0:e==="end"?t-1:e==="bwd"?n>0?n-1:n:n===null?0:n===t-1?n:n+1}var fb=t=>t!==null&&!t.classList.contains("wrapped"),Po=(t,e)=>t?t.querySelector(`[data-index="${e}"]`):null,fc=({containerRef:t,defaultHighlightedIdx:e=-1,highlightedIdx:n,keyBoardActivation:o,orientation:r,selectedIndex:s=0})=>{let i=o==="manual",l=cs(!1),a=cs(-1),[c,u]=ac(!1),[,d]=ac({}),[p,m]=lb({controlled:n,default:e,name:"UseKeyboardNavigation"}),f=Ve(S=>{m(a.current=S)},[m]),h=cs(!1),g=Ve((S,D=!1,L,A=70)=>{f(S),L===!0&&!h.current&&(h.current=!0);let H=()=>{let P=Po(t.current,S);if(P){let k=ab(P);k==null||k.focus()}};D?H():setTimeout(H,A)},[t,f]),y=S=>{if(a.current===-1&&S.target.tabIndex!==-1){let D=sc(t.current);D!==-1?requestAnimationFrame(()=>{f(D)}):setTimeout(()=>{a.current===-1&&s!==null&&f(s)},200)}},v=Ve(()=>{var S,D;return(D=(S=t.current)==null?void 0:S.querySelectorAll("[data-index]").length)!=null?D:0},[t]),C=Ve((S="fwd",D)=>{let L=v(),H=dc(L,S,typeof D=="number"?D:L),P=S==="start"?"fwd":S==="end"?"bwd":S;for(;(P==="fwd"&&H<L||P==="bwd"&&H>0)&&!fb(Po(t.current,H));){let k=dc(L,P,H);if(k===H)break;H=k}return H},[t,v]),b=Ve((S,D=!1)=>{let L=mc[r][S.key],A=C(L,p);A!==p?i&&g(A,!0):D&&d({})},[p,i,C,g,r]),T=Ve(()=>{let S=Po(t.current,p);return S?S.querySelector(".vuuPopupMenu")!=null:!1},[t,p]),x=Ve(()=>{let S=Po(t.current,p),D=S==null?void 0:S.querySelector(".vuuPopupMenu");if(D){let L=new MouseEvent("click",{view:window,bubbles:!0,cancelable:!0});D.dispatchEvent(L)}return!1},[t,p]),w=Ve(S=>{v()>0&&pb(S.key,r)?(S.preventDefault(),h.current?b(S):(h.current=!0,b(S,!0))):mb(S.key)&&T()&&x()},[x,v,T,b,r]),R=(S,D)=>{f(D)},M=Ve(()=>{c||(u(!0),l.current?l.current=!1:h.current=!0)},[c]),E=Ve(()=>{c||(l.current=!0),h.current=!1},[c]);return{containerProps:{onBlur:S=>{let D=S.target.closest(".vuuTabstrip"),L=S.relatedTarget;D&&!(D!=null&&D.contains(L))&&(f(-1),u(!1))},onMouseDownCapture:E,onFocus:M,onMouseLeave:()=>{h.current=!0,f(-1),l.current=!1}},focusVisible:h.current?p:-1,focusIsWithinComponent:c,highlightedIdx:p,focusTab:g,onClick:R,onFocus:y,onKeyDown:w,setHighlightedIdx:f}};import{useControlled as hb}from"@salt-ds/core";import{useCallback as Lo}from"react";var gb=["Enter"," "],bb=t=>t&&t.matches('[class*="vuuTab "]'),hc=({defaultSelected:t,highlightedIdx:e,onSelectionChange:n,selected:o})=>{let[r,s,i]=hb({controlled:o,default:t!=null?t:0,name:"Tabstrip",state:"value"}),l=Lo(d=>gb.includes(d.key),[]),a=Lo(d=>{s(d),n==null||n(d)},[n,s]),c=Lo(d=>{let p=d.target;l(d)&&e!==r&&bb(p)&&(d.stopPropagation(),d.preventDefault(),a(e))},[l,e,r,a]),u=Lo((d,p)=>{p!==r&&a(p)},[a,r]);return{activateTab:a,isControlled:i,onClick:u,onKeyDown:c,selected:r}};var xb=new Set(["Enter"," "]),Cb=t=>xb.has(t),vb=(t,e)=>t?t.querySelector(`[data-index="${e}"]`):null,gc=({activeTabIndex:t,allowDragDrop:e,animateSelectionThumb:n,containerRef:o,onActiveChange:r,onAddTab:s,onCloseTab:i,onExitEditMode:l,onMoveTab:a,orientation:c,keyBoardActivation:u})=>{let d=yb(t),{focusTab:p,highlightedIdx:m,onClick:f,onKeyDown:h,setHighlightedIdx:g,...y}=fc({containerRef:o,keyBoardActivation:u,orientation:c,selectedIndex:d.current}),{activateTab:v,onClick:C,onKeyDown:b,selected:T}=hc({highlightedIdx:m,onSelectionChange:r,selected:t});d.current=T;let{containerStyle:x,resumeAnimation:w,suspendAnimation:R}=lc(o,n?T:-1,c),M=Te((V,z)=>{let{current:K}=d;console.log(`useTabstrip handleDrop ${V} - ${z} ${K}`),a==null||a(V,z);let _=-1;z!==-1&&(K===V?_=z:V>K&&z<=K?_=K+1:V<K&&z>=K&&(_=K-1),_!==-1&&(R(),v(_),requestAnimationFrame(w)),p(z,!1,!1,350))},[p,a,w,v,R]),{onMouseDown:E,...I}=Mt({allowDragDrop:e,containerRef:o,draggableClassName:`tabstrip-${c}`,onDrop:M,orientation:"horizontal",itemQuery:".vuuOverflowContainer-item"}),S=Te((V,z,K,_)=>{console.log(`handleExitEditMode ${V} ${z} ${K} ${_}`),l==null||l(V,z,K,_),K||p(_,!1,!0)},[p,l]),D=Te((V,z)=>{f(V,z),C(V,z)},[f,C]),L=Te((V=m)=>{let z=vb(o.current,V);if(z)return z.querySelector(".vuuEditableLabel")},[o,m]),A=Te((V=m)=>{let z=L(V);return z?z.classList.contains("vuuEditableLabel-editing"):!1},[L,m]),H=Te((V=m)=>{let z=L(V);if(z){let K=new MouseEvent("dblclick",{view:window,bubbles:!0,cancelable:!0});z.dispatchEvent(K)}},[L,m]),P=Te(V=>{h(V),V.defaultPrevented||b(V),!V.defaultPrevented&&Cb(V.key)&&H()},[H,h,b]),k=Te(V=>{let z=is(o.current),K=z>V?z-1:z===V?0:z;return R(),i==null||i(V,K),setTimeout(()=>{w()},200),!0},[o,i,w,R]),N=Te(V=>(H(V),!0),[H]),O=Te(V=>{if(tc(V.options))switch(V.menuId){case"close-tab":return k(V.options.tabIndex);case"rename-tab":return N(V.options.tabIndex);default:console.log(`tab menu action ${V.menuId}`)}return!1},[k,N]),F=Te(()=>{A()?g(m):p(m)},[m,p,g,A]),$=Te(V=>{let z=parseInt(V.index);isNaN(z)||v(z)},[v]),G={onFocus:y.onFocus,onKeyDown:P},W=Te(()=>{s==null||s(),requestAnimationFrame(()=>{let V=is(o.current);V!==-1&&p(V)})},[o,p,s]),Y={onClick:D,onKeyDown:P,onExitEditMode:S,onMenuAction:O,onMenuClose:F,onMouseDown:E};return{activeTabIndex:T,containerStyle:x,focusVisible:y.focusVisible,containerProps:{...y.containerProps,onSwitchWrappedItemIntoView:$},navigationProps:G,onClickAddTab:W,tabProps:Y,...I}};import{Fragment as Ib,jsx as Mb,jsxs as Pb}from"react/jsx-runtime";import{createElement as Db}from"react";var us="vuuTabstrip",ra=({activeTabIndex:t,allowAddTab:e,allowCloseTab:n,allowDragDrop:o=!1,allowRenameTab:r=!1,animateSelectionThumb:s=!1,children:i,className:l,id:a,keyBoardActivation:c="manual",location:u,onActiveChange:d,onAddTab:p,onCloseTab:m,onExitEditMode:f,onMoveTab:h,orientation:g="horizontal",showTabMenuButton:y,style:v,...C})=>{let b=Rb(null),{activeTabIndex:T,focusVisible:x,containerStyle:w,draggedItemIndex:R,onClickAddTab:M,tabProps:E,...I}=gc({activeTabIndex:t,allowDragDrop:o,animateSelectionThumb:s,containerRef:b,keyBoardActivation:c,onActiveChange:d,onAddTab:p,onCloseTab:m,onExitEditMode:f,onMoveTab:h,orientation:g}),S=Lt(a),D=Sb(us,`${us}-${g}`,l),L=v||w?{...v,...w}:void 0,A=Eb(()=>Pt(i).map((H,P)=>{let{id:k=`${S}-tab-${P}`,closeable:N=n,editable:O=r,showMenuButton:F=y}=H.props,$=P===T;return wb.cloneElement(H,{...E,...I.navigationProps,closeable:N,"data-overflow-priority":$?"1":void 0,dragging:R===P,editable:O,focusVisible:x===P,id:k,index:P,key:P,location:u,selected:$,showMenuButton:F,tabIndex:$?0:-1})}).concat(e?Db(Tb,{...I.navigationProps,"aria-label":"Create Tab",className:`${us}-addTabButton`,"data-icon":"add","data-overflow-priority":"1",key:"addButton",onClick:M,variant:"secondary",tabIndex:-1}):[]),[T,e,n,r,i,x,S,u,M,y,E,R,I.navigationProps]);return Pb(Ib,{children:[Mb(Jl,{...C,...I.containerProps,className:D,height:28,id:S,orientation:g,overflowIcon:"more-horiz",ref:b,style:L,children:A}),I.draggable]})};import{useForkRef as Nb}from"@salt-ds/core";import zb from"classnames";import{forwardRef as Fb,useCallback as Vb,useRef as yc}from"react";import{PopupMenu as Lb}from"@vuu-ui/vuu-popups";import{useMemo as kb}from"react";import Hb from"classnames";import{jsx as Ob}from"react/jsx-runtime";var Ab="vuuTabMenu",bc=({allowClose:t,allowRename:e,location:n,onMenuAction:o,onMenuClose:r,index:s})=>{let[i,l]=kb(()=>[(a,c)=>{let u=[];return e&&u.push(oc(c)),t&&u.push(nc(c)),u},{tabIndex:s}],[t,e,s]);return Ob(Lb,{className:Ab,menuBuilder:i,menuActionHandler:o,menuLocation:Hb("tab",n),menuOptions:l,onMenuClose:r,tabIndex:-1})};import{jsx as ko,jsxs as $b}from"react/jsx-runtime";var gt="vuuTab",xc=()=>{},sa=Fb(function({ariaControls:e,children:n,className:o,closeable:r=!1,dragging:s,editable:i=!1,editing:l,focusVisible:a,index:c=-1,label:u,location:d,onClick:p,onClose:m,onEnterEditMode:f=xc,onExitEditMode:h=xc,onFocus:g,onKeyUp:y,onMenuAction:v,onMenuClose:C,orientation:b,selected:T,showMenuButton:x=r||i,tabIndex:w,...R},M){if(x&&typeof v!="function")throw Error("Tab onMenuAction must be provided if showMenuButton is set");let E=yc(null),I=yc(null),S=Nb(M,E),D=Vb(k=>{l||(k.preventDefault(),p==null||p(k,c))},[l,c,p]),L=(k="",N="",O=!0)=>h(k,N,O,c),A=k=>{switch(k.key){case"Backspace":case"Delete":r&&(k.stopPropagation(),m&&m(c));break;default:y&&y(k,c)}},H=()=>i?ko(It,{editing:l,defaultValue:u,onEnterEditMode:f,onExitEditMode:L,ref:I},u):u,P=k=>{if(I.current){let O=I.current.querySelector(".vuuEditableLabel-input");O==null||O.focus()}g==null||g(k)};return $b("div",{...R,"aria-controls":e,"aria-selected":T,className:zb(gt,{[`${gt}-closeable`]:r,"vuuDraggable-dragAway":s,[`${gt}-editing`]:l,[`${gt}-selected`]:T||void 0,[`${gt}-vertical`]:b==="vertical",vuuFocusVisible:a}),onClick:D,onFocus:P,onKeyUp:A,ref:S,role:"tab",tabIndex:w,children:[ko("div",{className:`${gt}-main`,children:ko("span",{className:`${gt}-text`,"data-text":i?void 0:u,children:n!=null?n:H()})}),x?ko(bc,{allowClose:r,allowRename:i,location:d,onMenuAction:v,onMenuClose:C,index:c}):null]})});import{useForkRef as gy,useIdMemo as by}from"@salt-ds/core";import xs from"classnames";import{forwardRef as yy,useRef as xy}from"react";function Bb(t){var e;if(t){let n=t.dataset.idx;if(n)return parseInt(n,10);if(n=(e=t.ariaPosInSet)!=null?e:"-1")return parseInt(n,10)-1}}var ds=t=>t.closest("[data-idx],[aria-posinset]");var Cc=t=>Bb(ds(t));import{useCallback as ps,useMemo as Kb}from"react";var Wb=new Set(["/","-","."]),_b=t=>Wb.has(t),vc=(t,e)=>e.startsWith(t)&&_b(e[t.length]),Tc=(t,e="root",{collapsibleHeaders:n=void 0,defaultExpanded:o=!1,revealSelected:r=!1}={})=>{let s=(p,m,f)=>{if(p.childNodes)return p.childNodes.length;if(p.header){let h=f+1,g=0;for(;h<m.length&&!m[h].header;)g++,h++;return g}else return 0},i=ps(p=>Array.isArray(r)?r.some(m=>vc(p,m)):o,[o,r]),l=ps((p,m,f=1,h="",g=[],y=[])=>{let v=0;return p.forEach((C,b,T)=>{var L;let x=C.header&&n,w=C.childNodes&&n===!1,R=!C.childNodes||C.childNodes.length===0,M=w||R&&!x,E=h?`${h}.${b}`:`${b}`,I=(L=C.id)!=null?L:`${e}-${E}`,S=M?void 0:i(I),D={...C,childNodes:void 0,id:I,count:!w&&S===void 0?0:s(C,T,b),expanded:S,index:m.index,level:f};if(g.push(D),y.push(p[b]),v+=1,m.index+=1,C.childNodes){let[A,H]=l(C.childNodes,m,f+1,E,[],y);D.childNodes=H,(S===!0||w)&&(v+=A)}}),[v,g,y]},[n,e,i]),[a,c,u]=Kb(()=>l(t,{index:0}),[l,t]),d=ps((p,m=c)=>{let f=m.find(h=>{var g;return h.id===p||((g=h==null?void 0:h.childNodes)==null?void 0:g.length)&&vc(h.id,p)});if((f==null?void 0:f.id)===p)return u[f.index];if(f)return d(p,f.childNodes)},[u,c]);return[a,c,d]};import{useCallback as En,useRef as Gb}from"react";import{useControlled as Ub}from"@salt-ds/core";var Sc="single",Xb="checkbox",Qb="multi",jb="extended",Yb=["Enter"," "],wc={},Zb=t=>t.expanded!==void 0,Ec=t=>t&&t!=="none",Rc=({defaultSelected:t,highlightedIdx:e,treeNodes:n,onChange:o,selected:r,selection:s=Sc,selectionKeys:i=Yb})=>{let l=s===Sc,a=s===Qb||s.startsWith(Xb),c=s===jb,u=Gb(-1),d=En(b=>i.includes(b.key),[i]),[p,m]=Ub({controlled:r,default:t!=null?t:[],name:"selected"}),f=En((b,T,x,w,R=!1)=>{let{current:M}=u,E=p==null?void 0:p.includes(x),S=l||c&&!R&&(!w||M===-1),D=a||c&&R&&!w,L=[];if(S&&E)L=[];else if(S)L=[x];else if(D&&E)L=p.filter(A=>A!==x);else if(D)L=p.concat(x);else if(c){let[A,H]=T>M?[M,T]:[T,M];L=p.slice();for(let P=A;P<=H;P++){let{id:k}=n[P];p.includes(k)||L.push(k)}}m(L),o&&o(b,L)},[c,n,a,o,p,m,l]),h=En(b=>{if(~e&&d(b)){b.preventDefault();let T=n[e];f(b,e,T.id,!1,b.ctrlKey||b.metaKey),c&&(u.current=e)}},[c,e,n,d,f]),g=En((b,T)=>{if(c&&b.shiftKey){let x=n[T];f(b,T,x.id,!0)}},[c,n,f]),y=s==="none"?wc:{onKeyDown:h,onKeyboardNavigation:g},v=En(b=>{if(e!==-1){let T=n[e];Zb(T)||(b.preventDefault(),b.stopPropagation(),f(b,e,T.id,b.shiftKey,b.ctrlKey||b.metaKey),c&&(u.current=e))}},[c,e,n,f]);return{listHandlers:y,listItemHandlers:s==="none"?wc:{onClick:v},selected:p,setSelected:m}};import{useCallback as ms,useEffect as Dc,useLayoutEffect as qb,useRef as Ho}from"react";var Jb=["height","scrollHeight"],Mc=(t,e,n=!1)=>{let o=Ho(0),r=Ho(!1),s=Ho(0),i=Ho(0),l=ms(u=>{let d=u.ariaExpanded?u.firstChild:u,p=n?30:0,m=d.offsetTop,f=d.offsetHeight,h=o.current+p,g=h+s.current-p;(m+f>g||m<h)&&(o.current=m+f>g?o.current+(m+f)-g:m-p,r.current=!0,t.current&&(t.current.scrollTop=o.current),setTimeout(()=>{r.current=!1}))},[t,n]),a=ms(u=>{o.current=u.target.scrollTop},[]);Dc(()=>{let{current:u}=t;return u&&u.addEventListener("scroll",a),()=>{u&&u.removeEventListener("scroll",a)}},[t,a]),qb(()=>{if(e!==-1&&i.current>s.current&&t.current){let u=t.current.querySelector(`
|
|
18
19
|
[data-idx='${e}'],
|
|
19
20
|
[aria-posinset='${e+1}']
|
|
20
|
-
`);u===null?console.log("[useViewportTracking], is this virtualised ? we're going to have to know rowHeight"):l(u)}},[e,n,l]),gl(()=>{},[t]);let c=qr(({height:u,scrollHeight:p})=>{s.current=u,i.current=p},[]);return hl(n,im,c,!0),o};import{useCallback as Ol,useRef as Cm}from"react";import{useCallback as qt,useMemo as Rl,useRef as Dl}from"react";var yl=({id:n})=>{let e=n.lastIndexOf("-");if(e!==-1){let r=n.slice(e+1).split(".");return r.length===1?null:(r.pop(),`${n.slice(0,e)}-${r.join(".")}`)}else if((e=n.lastIndexOf("/"))!==-1)return n.slice(0,e)},xl=n=>n.childNodes!==void 0;var Jr=n=>n.header===!0,lm=new Set([".","/"]),vl=(n,e)=>e.startsWith(n.id)?lm.has(e.charAt(n.id.length)):!1,et=(n,e)=>{for(let t of n){if(t.id===e)return t;if(vl(t,e))return et(t.childNodes,e)}},Vn=(n,e)=>{let t=typeof e=="string"?e:e.id;for(let r=0;r<n.length;r++)if(n[r].id===t)return r},Bn=(n,e,t)=>{let r;return n.map(s=>s.id===e?{...s,...t}:vl(s,e)?(r=Bn(s.childNodes,e,t),{...s,childNodes:r}):s)};import{useControlled as mm}from"@salt-ds/core";function am(n,...e){let t=new Set(n);for(let r of e)for(let o of r)t.add(o);return t}var eo="ArrowUp",Cl="ArrowDown",xt="ArrowLeft";var Tl="ArrowRight",Kn="Enter";var cm="Delete",um=new Set([Kn,cm]),dm=new Set(["Tab"]),pm=new Set(["ArrowRight","ArrowLeft"]),wl=new Set(["Home","End","ArrowDown","ArrowUp"]),Sl=new Set(["Home","End","ArrowRight","ArrowLeft"]),fm=new Set(["F1","F2","F3","F4","F5","F6","F7","F8","F9","F10","F11","F12"]),$k=am(um,Sl,wl,pm,fm,dm);var El=({key:n},e="vertical")=>(e==="vertical"?wl:Sl).has(n);function Ml(n,e,t){return e===eo||e===xt?t>0?t-1:t:t===null?0:t===n-1?t:t+1}var hm=n=>!n.header&&!n.childNodes,gm=n=>hm(n)||n.expanded!==void 0,Pl=({defaultHighlightedIdx:n=-1,highlightedIdx:e,treeNodes:t,onHighlight:r,onKeyboardNavigation:o,selected:s=[]})=>{let{bwd:i,fwd:l}=Rl(()=>({bwd:eo,fwd:Cl}),[]),[a,c,u]=mm({controlled:e,default:n,name:"highlightedIdx"}),p=qt(b=>{r==null||r(b),c(b)},[r,c]),d=qt((b=l,T=b===l?-1:t.length)=>{let g=Ml(t.length,b,T);for(;g!==-1&&(b===l&&g<t.length||b===i&&g>0)&&!gm(t[g]);)g=Ml(t.length,b,g);return g},[i,l,t]),f=Dl(!0),m=Dl(!1),h=b=>m.current=b,x=qt(()=>{if(m.current)m.current=!1;else if(s.length>0){let b=et(t,s[0]);if(b){let T=Vn(t,b);p(T)}}else p(d())},[t,d,s,p]),v=qt(b=>{let T=d(b.key,a);T!==a&&(p(T),o==null||o(b,T))},[a,d,o,p]),C=qt(b=>{t.length>0&&El(b,"vertical")&&(b.preventDefault(),b.stopPropagation(),f.current=!0,v(b))},[t,v]),y=Rl(()=>({onBlur:()=>{p(-1)},onFocus:x,onKeyDown:C,onMouseDownCapture:()=>{f.current=!1,h(!0)},onMouseMove:()=>{f.current&&(f.current=!1)},onMouseLeave:()=>{f.current=!0,h(!1),p(-1)}}),[x,C,p]);return{focusVisible:f.current?a:-1,controlledHighlighting:u,highlightedIdx:a,hiliteItemAtIndex:p,keyBoardNavigation:f,listProps:y,setIgnoreFocus:h}};import{useRef as to,useState as bm}from"react";var Wn=(n,e=[],t={value:0})=>{let r=!1;for(let o of n)r&&!Jr(o)||(e[t.value]=o,t.value+=1,r=!1,Jr(o)&&o.expanded===!1?r=!0:xl(o)&&no(o)&&Wn(o.childNodes,e,t));return e},Ll=n=>{let e=to(n),t=to(n),r=to(Wn(n)),[,o]=bm({});n!==e.current&&(e.current=n,t.current=n,r.current=Wn(n));let s=i=>{t.current=i,r.current=Wn(i),o({})};return{data:t.current,indexPositions:r.current,setData:s}};import{useCallback as Jt,useRef as kl}from"react";var ym={},xm=n=>n&&n.hasAttribute("aria-expanded"),Il=({collapsibleHeaders:n,highlightedIdx:e,treeNodes:t,setVisibleData:r,source:o})=>{let s=kl(o),i=kl(s.current),l=Jt(m=>{r(i.current=m)},[r]),a=Jt((m,{id:h})=>Bn(m,h,{expanded:!0}),[]),c=Jt((m,{id:h})=>Bn(m,h,{expanded:!1}),[]),u=Jt(m=>{if(m.key===Tl||m.key===Kn){let h=t[e];h&&h.expanded===!1&&(m.preventDefault(),l(a(i.current,h)))}if(m.key===xt||m.key===Kn){let h=t[e];h&&h.expanded&&(m.preventDefault(),l(c(i.current,h)))}},[c,a,e,t,l]),p=n?{onKeyDown:u}:ym,f={onClick:Jt(m=>{let h=Yr(m.target);if(xm(h)){m.stopPropagation(),m.preventDefault();let x=et(o,h.id);(x==null?void 0:x.expanded)===!1?l(a(o,x)):(x==null?void 0:x.expanded)===!0&&l(c(o,x))}},[c,a,l,o])};return{listHandlers:p,listItemHandlers:f}};import{useCallback as vm}from"react";var Al=({highlightedIdx:n,hiliteItemAtIndex:e,indexPositions:t,source:r})=>({listHandlers:{onKeyDown:vm(i=>{if(i.key===xt){let l=t[n],a=yl(l);if(a){i.preventDefault();let c=et(r,a);if(c){let u=Vn(t,c);u!==void 0&&e(u)}}}},[n,e,t,r])}});var Tm=[],Hl=({defaultSelected:n,sourceWithIds:e,onChange:t,onHighlight:r,selected:o,selection:s})=>{let i=Cm(Tm),l=Ll(e),a=(y,b)=>{var T,g;(g=(T=d.listHandlers).onKeyboardNavigation)==null||g.call(T,y,b)},{highlightedIdx:c,...u}=Pl({treeNodes:l.indexPositions,onHighlight:r,onKeyboardNavigation:a,selected:i.current}),p=Il({collapsibleHeaders:!0,highlightedIdx:c,treeNodes:l.indexPositions,setVisibleData:l.setData,source:l.data}),d=dl({defaultSelected:n,highlightedIdx:c,treeNodes:l.indexPositions,onChange:t,selected:o,selection:s}),f=Al({source:l.data,highlightedIdx:c,hiliteItemAtIndex:u.hiliteItemAtIndex,indexPositions:l.indexPositions}),m=Ol(y=>{var b,T,g;(b=p.listItemHandlers)==null||b.onClick(y),y.defaultPrevented||(g=(T=d.listItemHandlers)==null?void 0:T.onClick)==null||g.call(T,y)},[p,d]),h=Ol(y=>{var b,T,g,w,D,P,E,R;(T=(b=u.listProps).onKeyDown)==null||T.call(b,y),y.defaultPrevented||(w=(g=d.listHandlers).onKeyDown)==null||w.call(g,y),y.defaultPrevented||(P=(D=p.listHandlers).onKeyDown)==null||P.call(D,y),y.defaultPrevented||(R=(E=f.listHandlers).onKeyDown)==null||R.call(E,y)},[p.listHandlers,u.listProps,d.listHandlers,f.listHandlers]),x=()=>{var y;return c===void 0||c===-1||(y=l.indexPositions[c])==null?void 0:y.id};i.current=d.selected;let v={"aria-activedescendant":x(),onBlur:u.listProps.onBlur,onFocus:u.listProps.onFocus,onKeyDown:h,onMouseDownCapture:u.listProps.onMouseDownCapture,onMouseLeave:u.listProps.onMouseLeave,onMouseMove:u.listProps.onMouseMove},C={onClick:m};return{focusVisible:u.focusVisible,highlightedIdx:c,hiliteItemAtIndex:u.hiliteItemAtIndex,listProps:v,listItemHandlers:C,selected:d.selected,visibleData:l.data}};import{jsx as Ve,jsxs as ro}from"react/jsx-runtime";import{createElement as Pm}from"react";var $e="vuuTree",no=n=>n.expanded===!0,Nl=({children:n,idx:e,...t})=>Ve("li",{...t,children:n}),Dm=Em(function({allowDragDrop:e,className:t,defaultSelected:r,groupSelection:o="none",id:s,onHighlight:i,onSelectionChange:l,revealSelected:a,selected:c,selection:u="single",source:p,...d},f){var k;let m=Sm(s),h=Rm(null),[,x,v]=ll(p,m,{revealSelected:a?(k=c!=null?c:r)!=null?k:!1:void 0}),C=(O,A)=>{if(l){let N=A.map(H=>v(H)).filter(H=>H!==void 0);l(N)}},{focusVisible:y,highlightedIdx:b,hiliteItemAtIndex:T,listProps:g,listItemHandlers:w,selected:D,visibleData:P}=Hl({defaultSelected:r,groupSelection:o,onChange:C,onHighlight:i,selected:c,selection:u,sourceWithIds:x});bl(h,b);let R={...{onMouseEnter:O=>{let A=O.target,N=sl(A);T(N)}},...w,role:"treeitem"},S=ul(o);function M(O,A,N){O.push(ro(Nl,{...R,...Mm(A,N,b,D,y),children:[A.icon?Ve("span",{className:`${$e}Node-icon`,"data-icon":A.icon}):null,Ve("span",{children:A.label})]})),N.value+=1}function I(O,A,N,H,V){let{value:z}=N;N.value+=1,O.push(Pm(Nl,{...w,"aria-expanded":A.expanded,"aria-level":A.level,"aria-selected":D.includes(H)||void 0,className:oo(`${$e}Node`,{focusVisible:y===z,[`${$e}Node-toggle`]:!S}),"data-idx":z,"data-highlighted":z===b||void 0,"data-selectable":!0,id:H,key:`header-${z}`},S?ro("div",{className:`${$e}Node-label`,children:[Ve("span",{className:`${$e}Node-toggle`}),V]}):ro("div",{className:`${$e}Node-label`,children:[A.icon?Ve("span",{className:`${$e}Node-icon`,"data-icon":A.icon}):null,Ve("span",{children:V})]}),Ve("ul",{role:"group",children:no(A)?L(A.childNodes,N):""})))}function L(O,A={value:0}){if((O==null?void 0:O.length)>0){let N=[];for(let H of O)H.childNodes?I(N,H,A,H.id,H.label):M(N,H,A);return N}}return Ve("ul",{...d,...g,className:oo($e,t),id:`Tree-${m}`,ref:wm(h,f),role:"tree",tabIndex:0,children:L(P)})}),Mm=(n,e,t,r,o,s)=>({id:n.id,key:n.id,"aria-level":n.level,"aria-selected":r.includes(n.id)||void 0,"data-idx":e.value,"data-highlighted":e.value===t||void 0,className:oo("vuuTreeNode",s,{focusVisible:o===e.value})});Dm.displayName="Tree";import Im from"classnames";import{memo as Am,useCallback as Om,useRef as Hm,useState as zl}from"react";import{jsx as _n}from"react/jsx-runtime";var{KEY:Fl}=km,so=Am(({className:n,column:e,columnMap:t,onClick:r,row:o})=>{let s=Hm(null),{align:i,CellRenderer:l,key:a,pin:c,editable:u,resizing:p,valueFormatter:d}=e,[f,m]=zl(!1),h=d(o[a]),[x,v]=zl(h),C=()=>{var P;(P=s.current)==null||P.focus()},y=P=>{P.key==="Enter"&&m(!0)},b=Om(P=>{r==null||r(P,e)},[e,r]),T=()=>{m(!0)},g=(P="",E="",R=!0,S=!1)=>{var M;m(!1),S?v(P):E!==P&&v(E),R===!1&&((M=s.current)==null||M.focus())},w=Im(n,{vuuAlignRight:i==="right",vuuPinFloating:c==="floating",vuuPinLeft:c==="left",vuuPinRight:c==="right","vuuTableCell-resizing":p})||void 0,D=Lm(e);return u?_n("div",{className:w,"data-editable":!0,role:"cell",style:D,onKeyDown:y,children:_n(pt,{editing:f,value:x,onChange:v,onMouseDownCapture:C,onEnterEditMode:T,onExitEditMode:g,onKeyDown:y,ref:s,tabIndex:0},"title")}):_n("div",{className:w,role:"cell",style:D,onClick:b,children:l?_n(l,{column:e,columnMap:t,row:o}):h})},Nm);so.displayName="TableCell";function Nm(n,e){return n.column===e.column&&n.onClick===e.onClick&&n.row[Fl]===e.row[Fl]&&n.row[n.column.key]===e.row[e.column.key]}import{getColumnStyle as zm,getGroupValueAndOffset as Fm,metadataKeys as $m}from"@vuu-ui/vuu-utils";import{useCallback as Vm}from"react";import{jsx as io,jsxs as Km}from"react/jsx-runtime";var{IS_LEAF:Bm}=$m,$l=({column:n,onClick:e,row:t})=>{let{columns:r}=n,[o,s]=Fm(r,t),i=Vm(u=>{e==null||e(u,n)},[n,e]),l=zm(n),a=t[Bm],c=Array(s).fill(0).map((u,p)=>io("span",{className:"vuuTableGroupCell-spacer"},p));return Km("div",{className:"vuuTableGroupCell vuuPinLeft",onClick:a?void 0:i,role:"cell",style:l,children:[c,a?null:io("span",{className:"vuuTableGroupCell-toggle","data-icon":"triangle-right"}),io("span",{children:o})]})};import{jsx as Kl,jsxs as qm}from"react/jsx-runtime";var{IDX:Zm,IS_EXPANDED:Ym,SELECTED:jm}=Gm,Gn="vuuTableRow",Wl=Qm(function({columnMap:e,columns:t,offset:r,onClick:o,onToggleGroup:s,virtualColSpan:i=0,row:l}){let{[Zm]:a,[Ym]:c,[jm]:u}=l,p=Xm(Gn,{[`${Gn}-even`]:a%2===0,[`${Gn}-expanded`]:c,[`${Gn}-preSelected`]:u===2}),d=Bl(m=>{let h=m.shiftKey,x=m.ctrlKey||m.metaKey;o==null||o(l,h,x)},[o,l]),f=Bl((m,h)=>{(Vl(h)||_m(h,l))&&(m.stopPropagation(),s==null||s(l,h))},[s,l]);return qm("div",{"aria-selected":u===1?!0:void 0,"aria-rowindex":a,className:p,onClick:d,role:"row",style:{transform:`translate3d(0px, ${r}px, 0px)`},children:[i>0?Kl("div",{role:"cell",style:{width:i}}):null,t.filter(Um).map(m=>{let h=Vl(m),x=Wm(m);return Kl(h?$l:so,{column:m,columnMap:e,onClick:h||x?f:void 0,row:l},m.name)})]})});import Ul from"classnames";import{useRef as Jm}from"react";import{useCallback as lo,useRef as _l}from"react";var vt=({column:n,onResize:e,rootRef:t})=>{let r=_l(0),o=_l(!1),{name:s}=n,i=lo(()=>{if(e&&t.current){console.log("handleResizeStart");let{width:c}=t.current.getBoundingClientRect();r.current=Math.round(c),o.current=!0,e==null||e("begin",s)}},[s,e,t]),l=lo((c,u)=>{if(t.current&&e){let{width:p}=t.current.getBoundingClientRect(),d=Math.round(p)+u;d!==r.current&&d>0&&(e("resize",s,d),r.current=d)}},[s,e,t]),a=lo(()=>{e&&(e("end",s,r.current),setTimeout(()=>{o.current=!1},100))},[s,e]);return{isResizing:o.current,onDrag:l,onDragStart:i,onDragEnd:a}};import{jsx as tt,jsxs as Ql}from"react/jsx-runtime";var Be="vuuTable-groupHeaderCell",Gl=({column:n,onClick:e,...t})=>tt("span",{...t,className:`${Be}-close`,"data-icon":"close-circle",onClick:()=>e==null?void 0:e(n)}),eh=n=>{let{children:e,column:t,className:r}=n;return Ql("div",{className:Ul(`${Be}-col`,r),role:"columnheader",children:[tt("span",{className:`${Be}-label`,children:t.name}),e]})},Xl=({column:n,className:e,onRemoveColumn:t,onResize:r,...o})=>{let s=Jm(null),{isResizing:i,...l}=vt({column:n,onResize:r,rootRef:s}),a=Ul(Be,e,{vuuPinLeft:n.pin==="left",[`${Be}-right`]:n.align==="right",[`${Be}-resizing`]:n.resizing,[`${Be}-pending`]:n.groupConfirmed===!1}),{columns:c}=n;return tt("div",{className:a,ref:s,...o,children:Ql("div",{className:`${Be}-inner`,children:[c.map(u=>tt(eh,{column:u,children:c.length>1?tt(Gl,{column:u,onClick:t}):null},u.key)),tt(Gl,{"data-align":"end",onClick:t}),n.resizeable!==!1?tt(at,{...l}):null]})})};import sh from"classnames";import{useCallback as ao,useRef as ql}from"react";import Zl from"classnames";var Yl="vuuSortIndicator",Un=({sorted:n})=>{if(!n)return null;let e=typeof n=="number"?n<0?"dsc":"asc":n==="A"?"asc":"dsc";return typeof n=="number"?React.createElement("div",{className:Zl(Yl,"multi-col",e)},React.createElement("span",{"data-icon":`sorted-${e}`}),React.createElement("span",{className:"vuuSortPosition"},Math.abs(n))):React.createElement("div",{className:Zl(Yl,"single-col")},React.createElement("span",{"data-icon":`sorted-${e}`}))};import{useContextMenu as ih}from"@vuu-ui/vuu-popups";import{useContextMenu as th}from"@vuu-ui/vuu-popups";import nh from"classnames";import{useCallback as rh}from"react";import{jsx as oh}from"react/jsx-runtime";var jl=({column:n,filter:e})=>{let[t]=th(),r=rh(o=>{o.stopPropagation(),t(o,"filter",{column:n,filter:e})},[n,e,t]);return n.filter?oh("div",{className:nh("vuuFilterIndicator"),"data-icon":"filter",onClick:r}):null};import{jsx as tn,jsxs as lh}from"react/jsx-runtime";var en="vuuTable-headerCell",Jl=({column:n,className:e,onClick:t,onDragStart:r,onResize:o,...s})=>{let i=ql(null),{isResizing:l,...a}=vt({column:n,onResize:o,rootRef:i}),[c]=ih(),u=ql(null),p=x=>{c(x,"header",{column:n})},d=ao(x=>!l&&(t==null?void 0:t(x)),[l,t]),f=ao(x=>{u.current=window.setTimeout(()=>{r==null||r(x),u.current=null},500)},[r]),m=ao(()=>{u.current!==null&&(window.clearTimeout(u.current),u.current=null)},[]),h=sh(en,e,{vuuPinFloating:n.pin==="floating",vuuPinLeft:n.pin==="left",vuuPinRight:n.pin==="right",vuuEndPin:n.endPin,[`${en}-resizing`]:n.resizing,[`${en}-right`]:n.align==="right"});return tn("div",{className:h,...s,onClick:d,onContextMenu:p,onMouseDown:f,onMouseUp:m,ref:i,children:lh("div",{className:`${en}-inner`,children:[tn(jl,{column:n}),tn("div",{className:`${en}-label`,children:n.label}),tn(Un,{sorted:n.sorted}),n.resizeable!==!1?tn(at,{...a}):null]})})};import{jsx as nt,jsxs as na}from"react/jsx-runtime";var co="vuuTable",{RENDER_IDX:mh}=dh,ra=({columns:n,columnsWithinViewport:e,data:t,getRowOffset:r,headings:o,onColumnResize:s,onHeaderCellDragStart:i,onContextMenu:l,onRemoveColumnFromGroupBy:a,onRowClick:c,onSort:u,onToggleGroup:p,tableId:d,virtualColSpan:f=0,rowCount:m})=>{let h=ea(y=>{i==null||i(y)},[i]),x=ta(()=>n.filter(ph),[n]),v=ta(()=>ah(n),[n]),C=ea(y=>{var P;let T=y.target.closest(".vuuTable-headerCell"),g=parseInt((P=T==null?void 0:T.dataset.idx)!=null?P:"-1"),w=fh(n,g),D=y.shiftKey;w&&u(w,D)},[n,u]);return na("div",{"aria-rowcount":m,className:`${co}-table`,role:"table",children:[na("div",{className:`${co}-headers`,role:"rowGroup",children:[o.map((y,b)=>nt("div",{className:"vuuTable-heading",children:y.map(({label:T,width:g},w)=>nt("div",{className:"vuuTable-headingCell",style:{width:g},children:T},w))},b)),nt("div",{role:"row",children:x.map((y,b)=>{let T=ch(y);return uh(y)?nt(Xl,{column:y,"data-idx":b,onRemoveColumn:a,onResize:s,role:"columnHeader",style:T},b):nt(Jl,{column:y,"data-idx":b,id:`${d}-${b}`,onClick:C,onDragStart:h,onResize:s,role:"columnHeader",style:T},b)})})]}),nt("div",{className:`${co}-body`,onContextMenu:l,role:"rowGroup",children:t==null?void 0:t.map(y=>nt(Wl,{columnMap:v,columns:e,offset:r(y),onClick:c,virtualColSpan:f,onToggleGroup:p,row:y},y[mh]))})]})};import{useContextMenu as Zg}from"@vuu-ui/vuu-popups";import{applySort as Yg,buildColumnMap as jg,isJsonGroup as qg,metadataKeys as Jg,moveItem as eb}from"@vuu-ui/vuu-utils";import{useCallback as Te,useEffect as ja,useMemo as tb,useRef as zo,useState as nb}from"react";import{getFullRange as RO,metadataKeys as hh,WindowRange as DO}from"@vuu-ui/vuu-utils";import{useCallback as PO,useEffect as LO,useMemo as kO,useRef as IO,useState as AO}from"react";var{SELECTED:OO}=hh;import{useCallback as zO,useEffect as FO,useState as $O}from"react";import{ConnectionManager as BO}from"@vuu-ui/vuu-data";import{useCallback as GO,useEffect as UO,useState as XO}from"react";import{ConnectionManager as ZO}from"@vuu-ui/vuu-data";import{useCallback as qO}from"react";import{makeRpcCall as eH}from"@vuu-ui/vuu-data";var gh=0,nn=class{constructor(e,t){this.from=e,this.to=t}},X=class{constructor(e={}){this.id=gh++,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=ae.match(e)),t=>{let r=e(t);return r===void 0?null:[this,r]}}};X.closedBy=new X({deserialize:n=>n.split(" ")});X.openedBy=new X({deserialize:n=>n.split(" ")});X.group=new X({deserialize:n=>n.split(" ")});X.contextHash=new X({perNode:!0});X.lookAhead=new X({perNode:!0});X.mounted=new X({perNode:!0});var bh=Object.create(null),ae=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):bh,r=(e.top?1:0)|(e.skipped?2:0)|(e.error?4:0)|(e.name==null?8:0),o=new ae(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(X.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(X.group),s=-1;s<(o?o.length:0);s++){let i=t[s<0?r.name:o[s]];if(i)return i}}}};ae.none=new ae("",Object.create(null),0,8);var Ct=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 ae(r.name,o,r.id,r.flags):r)}return new Ct(t)}},Xn=new WeakMap,oa=new WeakMap,ne;(function(n){n[n.ExcludeBuffers=1]="ExcludeBuffers",n[n.IncludeAnonymous=2]="IncludeAnonymous",n[n.IgnoreMounts=4]="IgnoreMounts",n[n.IgnoreOverlays=8]="IgnoreOverlays"})(ne||(ne={}));var re=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,l]of s)this.props[typeof i=="number"?i:i.id]=l}}toString(){let e=this.prop(X.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 wt(this.topNode,e)}cursorAt(e,t=0,r=0){let o=Xn.get(this)||this.topNode,s=new wt(o);return s.moveTo(e,t),Xn.set(this,s._tree),s}get topNode(){return new ve(this,0,0,null)}resolve(e,t=0){let r=Tt(Xn.get(this)||this.topNode,e,t,!1);return Xn.set(this,r),r}resolveInner(e,t=0){let r=Tt(oa.get(this)||this.topNode,e,t,!0);return oa.set(this,r),r}iterate(e){let{enter:t,leave:r,from:o=0,to:s=this.length}=e,i=e.mode||0,l=(i&ne.IncludeAnonymous)>0;for(let a=this.cursor(i|ne.IncludeAnonymous);;){let c=!1;if(a.from<=s&&a.to>=o&&(!l&&a.type.isAnonymous||t(a)!==!1)){if(a.firstChild())continue;c=!0}for(;c&&r&&(l||!a.type.isAnonymous)&&r(a),!a.nextSibling();){if(!a.parent())return;c=!0}}}prop(e){return e.perNode?this.props?this.props[e.id]:void 0:this.type.prop(e)}get propValues(){let e=[];if(this.props)for(let t in this.props)e.push([+t,this.props[t]]);return e}balance(e={}){return this.children.length<=8?this:mo(ae.none,this.children,this.positions,0,this.children.length,0,this.length,(t,r,o)=>new re(this.type,t,r,o,this.propValues),e.makeTree||((t,r,o)=>new re(ae.none,t,r,o)))}static build(e){return yh(e)}};re.empty=new re(ae.none,[],[],0);var rn=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 rn(this.buffer,this.index)}},Oe=class{constructor(e,t,r){this.buffer=e,this.length=t,this.set=r}get type(){return ae.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,l=-1;for(let a=e;a!=t&&!(ia(s,o,i[a+1],i[a+2])&&(l=a,r>0));a=i[a+3]);return l}slice(e,t,r){let o=this.buffer,s=new Uint16Array(t-e),i=0;for(let l=e,a=0;l<t;){s[a++]=o[l++],s[a++]=o[l++]-r;let c=s[a++]=o[l++]-r;s[a++]=o[l++]-e,i=Math.max(i,c)}return new Oe(s,i,this.set)}};function ia(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 la(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 Tt(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 ve&&n.index<0?null:n.parent;if(!i)return n;n=i}let s=r?0:ne.IgnoreOverlays;if(r)for(let i=n,l=i.parent;l;i=l,l=i.parent)i instanceof ve&&i.index<0&&((o=l.enter(e,t,s))===null||o===void 0?void 0:o.from)!=i.from&&(n=l);for(;;){let i=n.enter(e,t,s);if(!i)return n;n=i}}var ve=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:l,positions:a}=i._tree,c=t>0?l.length:-1;e!=c;e+=t){let u=l[e],p=a[e]+i.from;if(ia(o,r,p,p+u.length)){if(u instanceof Oe){if(s&ne.ExcludeBuffers)continue;let d=u.findChild(0,u.buffer.length,t,r-p,o);if(d>-1)return new Me(new uo(i,u,e,p),null,d)}else if(s&ne.IncludeAnonymous||!u.type.isAnonymous||fo(u)){let d;if(!(s&ne.IgnoreMounts)&&u.props&&(d=u.prop(X.mounted))&&!d.overlay)return new ve(d.tree,p,e,i);let f=new ve(u,p,e,i);return s&ne.IncludeAnonymous||!f.type.isAnonymous?f:f.nextChild(t<0?u.children.length-1:0,t,r,o)}}}if(s&ne.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&ne.IgnoreOverlays)&&(o=this._tree.prop(X.mounted))&&o.overlay){let s=e-this.from;for(let{from:i,to:l}of o.overlay)if((t>0?i<=s:i<s)&&(t<0?l>=s:l>s))return new ve(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 wt(this,e)}get tree(){return this._tree}toTree(){return this._tree}resolve(e,t=0){return Tt(this,e,t,!1)}resolveInner(e,t=0){return Tt(this,e,t,!0)}enterUnfinishedNodesBefore(e){return la(this,e)}getChild(e,t=null,r=null){let o=Zn(this,e,t,r);return o.length?o[0]:null}getChildren(e,t=null,r=null){return Zn(this,e,t,r)}toString(){return this._tree.toString()}get node(){return this}matchContext(e){return Yn(this,e)}};function Zn(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 Yn(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 uo=class{constructor(e,t,r,o){this.parent=e,this.buffer=t,this.index=r,this.start=o}},Me=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 Me(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&ne.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 Me(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 Me(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 Me(this.context,this._parent,e.findChild(t,this.index,-1,0,4))}cursor(e=0){return new wt(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 re(this.type,e,t,this.to-this.from)}resolve(e,t=0){return Tt(this,e,t,!1)}resolveInner(e,t=0){return Tt(this,e,t,!0)}enterUnfinishedNodesBefore(e){return la(this,e)}toString(){return this.context.buffer.childString(this.index)}getChild(e,t=null,r=null){let o=Zn(this,e,t,r);return o.length?o[0]:null}getChildren(e,t=null,r=null){return Zn(this,e,t,r)}get node(){return this}matchContext(e){return Yn(this,e)}},wt=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 ve)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 ve?(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&ne.ExcludeBuffers?!1:this.enterChild(1,e,t):this.yield(this._tree.enter(e,t,r))}parent(){if(!this.buffer)return this.yieldNode(this.mode&ne.IncludeAnonymous?this._tree._parent:this._tree.parent);if(this.stack.length)return this.yieldBuf(this.stack.pop());let e=this.mode&ne.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 l=r._tree.children[s];if(this.mode&ne.IncludeAnonymous||l instanceof Oe||!l.type.isAnonymous||fo(l))return!1}return!0}move(e,t){if(t&&this.enterChild(e,0,4))return!0;for(;;){if(this.sibling(e))return!0;if(this.atLastNode(e)||!this.parent())return!1}}next(e=!0){return this.move(1,e)}prev(e=!0){return this.move(-1,e)}moveTo(e,t=0){for(;(this.from==this.to||(t<1?this.from>=e:this.from>e)||(t>-1?this.to<=e:this.to<e))&&this.parent(););for(;this.enterChild(1,e,t););return this}get node(){if(!this.buffer)return this._tree;let e=this.bufferNode,t=null,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 Me(this.buffer,t,this.stack[o]);return this.bufferNode=new Me(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 Yn(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 Yn(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 fo(n){return n.children.some(e=>e instanceof Oe||!e.type.isAnonymous||fo(e))}function yh(n){var e;let{buffer:t,nodeSet:r,maxBufferLength:o=1024,reused:s=[],minRepeatType:i=r.types.length}=n,l=Array.isArray(t)?new rn(t,t.length):t,a=r.types,c=0,u=0;function p(b,T,g,w,D){let{id:P,start:E,end:R,size:S}=l,M=u;for(;S<0;)if(l.next(),S==-1){let A=s[P];g.push(A),w.push(E-b);return}else if(S==-3){c=P;return}else if(S==-4){u=P;return}else throw new RangeError(`Unrecognized record size: ${S}`);let I=a[P],L,k,O=E-b;if(R-E<=o&&(k=h(l.pos-T,D))){let A=new Uint16Array(k.size-k.skip),N=l.pos-k.size,H=A.length;for(;l.pos>N;)H=x(k.start,A,H);L=new Oe(A,R-k.start,r),O=k.start-b}else{let A=l.pos-S;l.next();let N=[],H=[],V=P>=i?P:-1,z=0,B=R;for(;l.pos>A;)V>=0&&l.id==V&&l.size>=0?(l.end<=B-o&&(f(N,H,E,z,l.end,B,V,M),z=N.length,B=l.end),l.next()):p(E,A,N,H,V);if(V>=0&&z>0&&z<N.length&&f(N,H,E,z,E,B,V,M),N.reverse(),H.reverse(),V>-1&&z>0){let W=d(I);L=mo(I,N,H,0,N.length,0,R-E,W,W)}else L=m(I,N,H,R-E,M-R)}g.push(L),w.push(O)}function d(b){return(T,g,w)=>{let D=0,P=T.length-1,E,R;if(P>=0&&(E=T[P])instanceof re){if(!P&&E.type==b&&E.length==w)return E;(R=E.prop(X.lookAhead))&&(D=g[P]+E.length+R)}return m(b,T,g,w,D)}}function f(b,T,g,w,D,P,E,R){let S=[],M=[];for(;b.length>w;)S.push(b.pop()),M.push(T.pop()+g-D);b.push(m(r.types[E],S,M,P-D,R-P)),T.push(D-g)}function m(b,T,g,w,D=0,P){if(c){let E=[X.contextHash,c];P=P?[E].concat(P):[E]}if(D>25){let E=[X.lookAhead,D];P=P?[E].concat(P):[E]}return new re(b,T,g,w,P)}function h(b,T){let g=l.fork(),w=0,D=0,P=0,E=g.end-o,R={size:0,start:0,skip:0};e:for(let S=g.pos-b;g.pos>S;){let M=g.size;if(g.id==T&&M>=0){R.size=w,R.start=D,R.skip=P,P+=4,w+=4,g.next();continue}let I=g.pos-M;if(M<0||I<S||g.start<E)break;let L=g.id>=i?4:0,k=g.start;for(g.next();g.pos>I;){if(g.size<0)if(g.size==-3)L+=4;else break e;else g.id>=i&&(L+=4);g.next()}D=k,w+=M,P+=L}return(T<0||w==b)&&(R.size=w,R.start=D,R.skip=P),R.size>4?R:void 0}function x(b,T,g){let{id:w,start:D,end:P,size:E}=l;if(l.next(),E>=0&&w<i){let R=g;if(E>4){let S=l.pos-(E-4);for(;l.pos>S;)g=x(b,T,g)}T[--g]=R,T[--g]=P-b,T[--g]=D-b,T[--g]=w}else E==-3?c=w:E==-4&&(u=w);return g}let v=[],C=[];for(;l.pos>0;)p(n.start||0,n.bufferStart||0,v,C,-1);let y=(e=n.length)!==null&&e!==void 0?e:v.length?C[0]+v[0].length:0;return new re(a[n.topID],v.reverse(),C.reverse(),y)}var sa=new WeakMap;function Qn(n,e){if(!n.isAnonymous||e instanceof Oe||e.type!=n)return 1;let t=sa.get(e);if(t==null){t=1;for(let r of e.children){if(r.type!=n||!(r instanceof re)){t=1;break}t+=Qn(n,r)}sa.set(e,t)}return t}function mo(n,e,t,r,o,s,i,l,a){let c=0;for(let m=r;m<o;m++)c+=Qn(n,e[m]);let u=Math.ceil(c*1.5/8),p=[],d=[];function f(m,h,x,v,C){for(let y=x;y<v;){let b=y,T=h[y],g=Qn(n,m[y]);for(y++;y<v;y++){let w=Qn(n,m[y]);if(g+w>=u)break;g+=w}if(y==b+1){if(g>u){let w=m[b];f(w.children,w.positions,0,w.children.length,h[b]+C);continue}p.push(m[b])}else{let w=h[y-1]+m[y-1].length-T;p.push(mo(n,m,h,b,y,T,w,null,a))}d.push(T+C-s)}}return f(e,t,r,o,0),(l||a)(p,d,i)}var jn=class{startParse(e,t,r){return typeof e=="string"&&(e=new po(e)),r=r?r.length?r.map(o=>new nn(o.from,o.to)):[new nn(0,0)]:[new nn(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}}},po=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 nH=new X({perNode:!0});var Et=class{constructor(e,t,r,o,s,i,l,a,c,u=0,p){this.p=e,this.stack=t,this.state=r,this.reducePos=o,this.pos=s,this.score=i,this.buffer=l,this.bufferBase=a,this.curContext=c,this.lookAhead=u,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 qn(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 l=this.stack.length-(r-1)*3-(e&262144?6:0),a=l?this.stack[l-2]:this.p.ranges[0].from,c=this.reducePos-a;c>=2e3&&!(!((t=this.p.parser.nodeSet.types[o])===null||t===void 0)&&t.isAnonymous)&&(a==this.p.lastBigReductionStart?(this.p.bigReductionCount++,this.p.lastBigReductionSize=c):this.p.lastBigReductionSize<c&&(this.p.bigReductionCount=1,this.p.lastBigReductionStart=a,this.p.lastBigReductionSize=c));let u=l?this.stack[l-1]:0,p=this.bufferBase+this.buffer.length-u;if(o<s.minRepeatTerm||e&131072){let d=s.stateFlag(this.state,1)?this.pos:this.reducePos;this.storeNode(o,a,d,p+4,!0)}if(e&262144)this.state=this.stack[l];else{let d=this.stack[l-3];this.state=s.getGoto(d,o,!0)}for(;this.stack.length>l;)this.stack.pop();this.reduceContext(o,a)}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,l=this.buffer.length;if(l==0&&i.parent&&(l=i.bufferBase-i.parent.bufferBase,i=i.parent),l>0&&i.buffer[l-4]==0&&i.buffer[l-1]>-1){if(t==r)return;if(i.buffer[l-2]>=t){i.buffer[l-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 go(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((l,a)=>a&1&&l==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 l=(i>>19)-s;if(l>1){let a=i&65535,c=this.stack.length-l*3;if(c>=0&&e.getGoto(this.stack[c],a,!1)>=0)return l<<19|65536|a}}else{let l=r(i,s+1);if(l!=null)return l}})};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 qn(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()}},qn=class{constructor(e,t){this.tracker=e,this.context=t,this.hash=e.strict?e.hash(t):0}},aa;(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"})(aa||(aa={}));var go=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}},Rt=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 Rt(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 Rt(this.stack,this.pos,this.index)}};function on(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++),l=!1;if(i==126){s=65535;break}i>=92&&i--,i>=34&&i--;let a=i-32;if(a>=46&&(a-=46,l=!0),s+=a,l)break;s*=46}t?t[o++]=s:t=new e(s)}return t}var St=class{constructor(){this.start=-1,this.value=-1,this.end=-1,this.extended=-1,this.lookAhead=0,this.mask=0,this.context=0}},ca=new St,bo=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=ca,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,l=this.range;for(;l.to<=r;)l=this.ranges[++i];this.chunk2=this.input.chunk(this.chunk2Pos=r),r+this.chunk2.length>l.to&&(this.chunk2=this.chunk2.slice(0,l.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=ca,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}},Ke=class{constructor(e,t){this.data=e,this.id=t}token(e,t){let{parser:r}=t.p;ga(this.data,e,t,this.id,r.data,r.tokenPrecTable)}};Ke.prototype.contextual=Ke.prototype.fallback=Ke.prototype.extend=!1;var yo=class{constructor(e,t,r){this.precTable=t,this.elseToken=r,this.data=typeof e=="string"?on(e):e}token(e,t){let r=e.pos,o=0;for(;;){let s=e.next<0,i=e.resolveOffset(1,1);if(ga(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))}};yo.prototype.contextual=Ke.prototype.fallback=Ke.prototype.extend=!1;function ga(n,e,t,r,o,s){let i=0,l=1<<r,{dialect:a}=t.p.parser;e:for(;l&n[i];){let c=n[i+1];for(let f=i+3;f<c;f+=2)if((n[f+1]&l)>0){let m=n[f];if(a.allows(m)&&(e.token.value==-1||e.token.value==m||vh(m,e.token.value,o,s))){e.acceptToken(m);break}}let u=e.next,p=0,d=n[i+2];if(e.next<0&&d>p&&n[c+d*3-3]==65535&&n[c+d*3-3]==65535){i=n[c+d*3-1];continue e}for(;p<d;){let f=p+d>>1,m=c+f+(f<<1),h=n[m],x=n[m+1]||65536;if(u<h)d=f;else if(u>=x)p=f+1;else{i=n[m+2],e.advance();continue e}}break}}function ua(n,e,t){for(let r=e,o;(o=n[r])!=65535;r++)if(o==t)return r-e;return-1}function vh(n,e,t,r){let o=ua(t,r,e);return o<0||ua(t,r,n)<o}var Ce=typeof process<"u"&&process.env&&/\bparse\b/.test(process.env.LOG),ho=null,da;(function(n){n[n.Margin=25]="Margin"})(da||(da={}));function pa(n,e,t){let r=n.cursor(ne.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 xo=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?pa(e.tree,e.from+e.offset,1)-e.offset:e.from,this.safeTo=e.openEnd?pa(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 re){if(i==e){if(i<this.safeFrom)return null;let l=i+s.length;if(l<=this.safeTo){let a=s.prop(X.lookAhead);if(!a||l+a<this.fragment.to)return s}}this.index[t]++,i+s.length>=Math.max(this.safeFrom,e)&&(this.trees.push(s),this.start.push(i),this.index.push(0))}else this.index[t]++,this.nextStart=i+s.length}}},vo=class{constructor(e,t){this.stream=t,this.tokens=[],this.mainToken=null,this.actions=[],this.tokens=e.tokenizers.map(r=>new St)}getActions(e){let t=0,r=null,{parser:o}=e.p,{tokenizers:s}=o,i=o.stateSlot(e.state,3),l=e.curContext?e.curContext.hash:0,a=0;for(let c=0;c<s.length;c++){if(!(1<<c&i))continue;let u=s[c],p=this.tokens[c];if(!(r&&!u.fallback)&&((u.contextual||p.start!=e.pos||p.mask!=i||p.context!=l)&&(this.updateCachedToken(p,u,e),p.mask=i,p.context=l),p.lookAhead>p.end+25&&(a=Math.max(p.lookAhead,a)),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),!u.extend&&(r=p,t>d))break}}for(;this.actions.length>t;)this.actions.pop();return a&&e.setLookAhead(a),!r&&e.pos==this.stream.end&&(r=new St,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 St,{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 l=s.specializers[i](this.stream.read(e.start,e.end),r);if(l>=0&&r.p.parser.dialect.allows(l>>1)){l&1?e.extended=l>>1:e.value=l>>1;break}}}else e.value=0,e.end=this.stream.clipPos(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:l}=i;for(let a=0;a<2;a++)for(let c=i.stateSlot(s,a?2:1);;c+=3){if(l[c]==65535)if(l[c+1]==1)c=He(l,c+2);else{o==0&&l[c+1]==2&&(o=this.putAction(He(l,c+2),t,r,o));break}l[c]==t&&(o=this.putAction(He(l,c+1),t,r,o))}return o}},fa;(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"})(fa||(fa={}));var Co=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 bo(t,o),this.tokens=new vo(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 xo(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 l=e[i];for(;;){if(this.tokens.mainToken=null,l.pos>t)r.push(l);else{if(this.advanceStack(l,r,e))continue;{o||(o=[],s=[]),o.push(l);let a=this.tokens.getMainToken(l);s.push(a.value,a.end)}}break}}if(!r.length){let i=o&&Ch(o);if(i)return this.stackToTree(i);if(this.parser.strict)throw Ce&&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((l,a)=>a.score-l.score);r.length>i;)r.pop();r.some(l=>l.reducePos>t)&&this.recovering--}else if(r.length>1){e:for(let i=0;i<r.length-1;i++){let l=r[i];for(let a=i+1;a<r.length;a++){let c=r[a];if(l.sameState(c)||l.buffer.length>500&&c.buffer.length>500)if((l.score-c.score||l.buffer.length-c.buffer.length)>0)r.splice(a--,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=Ce?this.stackID(e)+" -> ":"";if(this.stoppedAt!=null&&o>this.stoppedAt)return e.forceReduce()?e:null;if(this.fragments){let c=e.curContext&&e.curContext.tracker.strict,u=c?e.curContext.hash:0;for(let 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&&(!c||(p.prop(X.contextHash)||0)==u))return e.useNode(p,d),Ce&&console.log(i+this.stackID(e)+` (via reuse of ${s.getName(p.type.id)})`),!0;if(!(p instanceof re)||p.children.length==0||p.positions[0]>0)break;let f=p.children[0];if(f instanceof re&&p.positions[0]==0)p=f;else break}}let l=s.stateSlot(e.state,4);if(l>0)return e.reduce(l),Ce&&console.log(i+this.stackID(e)+` (via always-reduce ${s.getName(l&65535)})`),!0;if(e.stack.length>=15e3)for(;e.stack.length>9e3&&e.forceReduce(););let a=this.tokens.getActions(e);for(let c=0;c<a.length;){let u=a[c++],p=a[c++],d=a[c++],f=c==a.length||!r,m=f?e:e.split();if(m.apply(u,p,d),Ce&&console.log(i+this.stackID(m)+` (via ${u&65536?`reduce of ${s.getName(u&65535)}`:"shift"} for ${s.getName(p)} @ ${o}${m==e?"":", split"})`),f)return!0;m.pos>o?t.push(m):r.push(m)}return!1}advanceFully(e,t){let r=e.pos;for(;;){if(!this.advanceStack(e,null,null))return!1;if(e.pos>r)return ma(e,t),!0}}runRecovery(e,t,r){let o=null,s=!1;for(let i=0;i<e.length;i++){let l=e[i],a=t[i<<1],c=t[(i<<1)+1],u=Ce?this.stackID(l)+" -> ":"";if(l.deadEnd&&(s||(s=!0,l.restart(),Ce&&console.log(u+this.stackID(l)+" (restarted)"),this.advanceFully(l,r))))continue;let p=l.split(),d=u;for(let f=0;p.forceReduce()&&f<10&&(Ce&&console.log(d+this.stackID(p)+" (via force-reduce)"),!this.advanceFully(p,r));f++)Ce&&(d=this.stackID(p)+" -> ");for(let f of l.recoverByInsert(a))Ce&&console.log(u+this.stackID(f)+" (via recover-insert)"),this.advanceFully(f,r);this.stream.end>l.pos?(c==l.pos&&(c++,a=0),l.recoverByDelete(a,c),Ce&&console.log(u+this.stackID(l)+` (via recover-delete ${this.parser.getName(a)})`),ma(l,r)):(!o||o.score<l.score)&&(o=l)}return o}stackToTree(e){return e.close(),re.build({buffer:Rt.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=(ho||(ho=new WeakMap)).get(e);return t||ho.set(e,t=String.fromCodePoint(this.nextStackID++)),t+e}};function ma(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 To=class{constructor(e,t,r){this.source=e,this.flags=t,this.disabled=r}allows(e){return!this.disabled||this.disabled[e]==0}};var rt=class extends jn{constructor(e){if(super(),this.wrappers=[],e.version!=14)throw new RangeError(`Parser version (${e.version}) doesn't match runtime version (14)`);let t=e.nodeNames.split(" ");this.minRepeatTerm=t.length;for(let l=0;l<e.repeatNodeCount;l++)t.push("");let r=Object.keys(e.topRules).map(l=>e.topRules[l][1]),o=[];for(let l=0;l<t.length;l++)o.push([]);function s(l,a,c){o[l].push([a,a.deserialize(String(c))])}if(e.nodeProps)for(let l of e.nodeProps){let a=l[0];typeof a=="string"&&(a=X[a]);for(let c=1;c<l.length;){let u=l[c++];if(u>=0)s(u,a,l[c++]);else{let p=l[c+-u];for(let d=-u;d>0;d--)s(l[c++],a,p);c++}}}this.nodeSet=new Ct(t.map((l,a)=>ae.define({name:a>=this.minRepeatTerm?void 0:l,id:a,props:o[a],top:r.indexOf(a)>-1,error:a==0,skipped:e.skippedNodes&&e.skippedNodes.indexOf(a)>-1}))),e.propSources&&(this.nodeSet=this.nodeSet.extend(...e.propSources)),this.strict=!1,this.bufferLength=1024;let i=on(e.tokenData);this.context=e.context,this.specializerSpecs=e.specialized||[],this.specialized=new Uint16Array(this.specializerSpecs.length);for(let l=0;l<this.specializerSpecs.length;l++)this.specialized[l]=this.specializerSpecs[l].term;this.specializers=this.specializerSpecs.map(ha),this.states=on(e.states,Uint32Array),this.data=on(e.stateData),this.goto=on(e.goto),this.maxTerm=e.maxTerm,this.tokenizers=e.tokenizers.map(l=>typeof l=="number"?new Ke(i,l):l),this.topRules=e.topRules,this.dialects=e.dialects||{},this.dynamicPrecedences=e.dynamicPrecedences||null,this.tokenPrecTable=e.tokenPrec,this.termNames=e.termNames||null,this.maxNode=this.nodeSet.types.length-1,this.dialect=this.parseDialect(),this.top=this.topRules[Object.keys(this.topRules)[0]]}createParse(e,t,r){let o=new Co(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++],l=i&1,a=o[s++];if(l&&r)return a;for(let c=s+(i>>1);s<c;s++)if(o[s]==e)return a;if(l)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=He(r,s+2)];else{if(r[s+1]==2)return He(r,s+2);break}if(i==t||i==0)return He(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=He(this.data,s+2);else break;o=t(He(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=He(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(rt.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(l=>l.from==r.external);if(!s)return r;let i=Object.assign(Object.assign({},r),{external:s.to});return t.specializers[o]=ha(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]],l;(l=this.data[i++])!=65535;)(o||(o=new Uint8Array(this.maxTerm+1)))[l]=1;return new To(e,r,o)}static deserialize(e){return new rt(e)}};function He(n,e){return n[e]|n[e+1]<<16}function Ch(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 ha(n){if(n.external){let e=n.extend?1:0;return(t,r)=>n.external(t,r)<<1|e}return n.get}var wo=rt.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});import{isMultiClauseFilter as sn,isMultiValueFilter as Th,isSingleValueFilter as wh}from"@vuu-ui/vuu-utils";var ce,ba=class{constructor(){Go(this,ce,void 0)}setFilterCombinatorOp(e,t=Se(this,ce)){sn(t)&&t.op===e||sr(this,ce,{op:e,filters:[Se(this,ce)]})}add(e){if(Se(this,ce)===void 0)sr(this,ce,e);else if(sn(Se(this,ce)))Se(this,ce).filters.push(e);else throw Error("Invalid filter passed to FilterExpression")}setColumn(e,t=Se(this,ce)){if(sn(t)){let r=t.filters.at(-1);r&&this.setColumn(e,r)}else t&&(t.column=e)}setOp(e,t=Se(this,ce)){if(sn(t)){let r=t.filters.at(-1);r&&this.setOp(e,r)}else t&&(t.op=e)}setValue(e,t=Se(this,ce)){var r;if(sn(t)){let o=t.filters.at(-1);o&&this.setValue(e,o)}else Th(t)?((r=t.values)!=null||(t.values=[]),t.values.push(e)):wh(t)&&(t.value=e)}toJSON(e=Se(this,ce)){return this.name?{...e,name:this.name}:e}};ce=new WeakMap;var fH=wo.configure({strict:!0});import{getRowRecord as RH,isGroupMenuItemDescriptor as DH,metadataKeys as Rh}from"@vuu-ui/vuu-utils";import{useCallback as PH}from"react";var{KEY:LH}=Rh;var Dh=n=>n.type==="vuu-links";var Mh=n=>n.type==="vuu-menu",ya=n=>Mh(n)||Dh(n),xa=n=>n.type==="vuu-link-created"||n.type==="vuu-link-removed";import{useCallback as AH,useEffect as OH,useState as HH}from"react";import{getServerAPI as zH}from"@vuu-ui/vuu-data";import{getFullRange as So,metadataKeys as Ph,WindowRange as Lh}from"@vuu-ui/vuu-utils";import{useCallback as Dt,useEffect as Jn,useMemo as kh,useRef as ln,useState as Ih}from"react";var{SELECTED:an}=Ph;function va({dataSource:n,onConfigChange:e,onFeatureEnabled:t,onFeatureInvocation:r,onSizeChange:o,onSubscribed:s,range:i={from:0,to:0},renderBufferSize:l=0,viewportRowCount:a}){let[,c]=Ih(null),u=ln(!0),p=ln(!1),d=ln({from:0,to:0}),f=ln(null),m=ln([]),h=kh(()=>new Eo(So(i)),[]),x=Dt(g=>{for(let w of g)h.add(w);m.current=h.data,p.current=!0},[h]),v=Dt(g=>{g.type==="subscribed"?s==null||s(g):g.type==="viewport-update"?(typeof g.size=="number"&&(o==null||o(g.size),h.setRowCount(g.size)),g.rows?x(g.rows):typeof g.size=="number"&&(m.current=h.data,p.current=!0)):ya(g)?t==null||t(g):xa(g)?r==null||r(g):console.log(`useDataSource unexpected message ${g.type}`)},[h,t,r,o,s,x]);Jn(()=>()=>{f.current&&(cancelAnimationFrame(f.current),f.current=null),u.current=!1},[]);let C=Dt(()=>{u.current&&(p.current&&(c({}),p.current=!1),f.current=requestAnimationFrame(C))},[c]);Jn(()=>{f.current=requestAnimationFrame(C)},[C]);let y=Dt(g=>{let{from:w}=n.range,D={from:w,to:w+g},P=So(D,l);h.setRange(P),n.range=d.current=P,n.emit("range",D)},[n,h,l]),b=Dt(g=>{let w=So(g,l);h.setRange(w),n.range=d.current=w,n.emit("range",g)},[n,h,l]),T=Dt(()=>h.getSelectedRows(),[h]);return Jn(()=>{n==null||n.subscribe({range:d.current},v)},[n,v,e]),Jn(()=>{y(a)},[y,a]),{data:m.current,getSelectedRows:T,range:d.current,setRange:b,dataSource:n}}var Eo=class{constructor({from:e,to:t}){this.rowCount=0;this.setRowCount=e=>{e<this.data.length&&(this.data.length=e),this.rowCount=e};this.range=new Lh(e,t),this.data=new Array(t-e),this.rowCount=0}add(e){var r;let[t]=e;if(this.isWithinRange(t)){let o=t-this.range.from;this.data[o]=e;let s=e[an],i=(r=this.data[o-1])==null?void 0:r[an];i===0&&s?this.data[o-1][an]=2:i===2&&!s&&(this.data[o-1][an]=0)}}getAtIndex(e){return this.range.isWithin(e)&&this.data[e-this.range.from]!=null?this.data[e-this.range.from]:void 0}isWithinRange(e){return this.range.isWithin(e)}setRange({from:e,to:t}){if(e!==this.range.from||t!==this.range.to){let[r,o]=this.range.overlap(e,t),s=new Array(Math.max(0,t-e));for(let i=r;i<o;i++){let l=this.getAtIndex(i);if(l){let a=i-e;s[a]=l}}this.data=s,this.range.from=e,this.range.to=t}}getSelectedRows(){return this.data.filter(e=>e[an]===1)}};import{useCallback as Ca,useRef as Ta}from"react";var wa=({onDrop:n})=>{let e=Ta(),t=Ta(null),r=Ca(()=>{console.log("handleDropSettle"),e.current=void 0,t.current=null},[]),{draggable:o,draggedItemIndex:s,onMouseDown:i}=vn({allowDragDrop:!0,draggableClassName:"vuuTable-headerCell",orientation:"horizontal",containerRef:t,itemQuery:".vuuTable-headerCell",onDrop:n,onDropSettle:r}),l=Ca(a=>{let{clientX:c,clientY:u}=a;console.log("useDraggableColumn handleHeaderCellDragStart means mouseDown fired on a column in RowBasedTable");let d=a.target.closest(".vuuTable-headerCell");t.current=d==null?void 0:d.closest("[role='row']");let{dataset:{idx:f="-1"}}=d;e.current={clientX:c,clientY:u,idx:f},i==null||i(a)},[i]);return{draggable:o,draggedItemIndex:s,onHeaderCellDragStart:l}};import{withinRange as $h}from"@vuu-ui/vuu-utils";import{useCallback as Ne,useEffect as Vh,useLayoutEffect as Bh,useMemo as Kh,useRef as Oo}from"react";function Ah(n,...e){let t=new Set(n);for(let r of e)for(let o of r)t.add(o);return t}var Ro="ArrowUp",Do="ArrowDown",Mo="ArrowLeft",Po="ArrowRight";var Lo="Home",ko="End",Io="PageUp",Ao="PageDown";var Oh=new Set(["Enter","Delete"," "]),Hh=new Set(["Tab"]),Nh=new Set(["ArrowRight","ArrowLeft"]),Sa=new Set([Lo,ko,Io,Ao,Do,Mo,Po,Ro]),zh=new Set(["F1","F2","F3","F4","F5","F6","F7","F8","F9","F10","F11","F12"]),rN=Ah(Oh,Sa,Nh,zh,Hh);var Fh=["Home","End","PageUp","PageDown"],Ea=n=>Fh.includes(n),Ra=n=>Sa.has(n);var Da=n=>`.vuuTable-headers .vuuTable-headerCell:nth-child(${n+1})`,Wh=(n,e)=>`.vuuTable-body > [aria-rowindex='${n}'] > [role='cell']:nth-child(${e+1})`,_h=[-1,-1];function Gh(n,[e,t],r,o){return n===Ro?e>-1?[e-1,t]:[e,t]:n===Do?e===-1?[0,t]:e===o-1?[e,t]:[e+1,t]:n===Po?t<r-1?[e,t+1]:[e,t]:n===Mo?t>0?[e,t-1]:[e,t]:[e,t]}var Ma=({columnCount:n=0,containerRef:e,disableHighlightOnFocus:t,data:r,requestScroll:o,rowCount:s=0,viewportRange:i})=>{var P;let{from:l,to:a}=i,c=Oo([-1,-1]),u=Oo(),p=Oo([-1,0]),d=Ne(([E,R])=>{var M;let S=E===-1?Da(R):Wh(E,R);return(M=e.current)==null?void 0:M.querySelector(S)},[e]),f=E=>E==null?void 0:E.closest("[role='columnHeader'],[role='cell']"),m=E=>{var R,S;if(E.role==="columnHeader")return[-1,parseInt((R=E.dataset.idx)!=null?R:"-1",10)];{let M=E.closest("[role='row']");if(M){let I=parseInt((S=M.ariaRowIndex)!=null?S:"-1",10),L=Array.from(M.childNodes).indexOf(E);return[I,L]}}return _h},h=Ne(E=>{var R;if(e.current){let S=d(E);S?(S!==u.current&&((R=u.current)==null||R.setAttribute("tabindex",""),u.current=S,S.setAttribute("tabindex","0")),S.focus()):$h(E[0],i)||(u.current=void 0,o==null||o({type:"scroll-page",direction:"up"}))}},[e,d,o,i]),x=Ne((E,R,S=!1)=>{let M=[E,R];p.current=M,h(M),S&&(c.current=M)},[h]),v=Ne(()=>{var E;(E=u.current)==null||E.setAttribute("tabindex",""),u.current=void 0},[]),C=Ne(async(E,R)=>{switch(E){case Ao:o==null||o({type:"scroll-page",direction:"down"});break;case Io:o==null||o({type:"scroll-page",direction:"up"});break;case Lo:o==null||o({type:"scroll-end",direction:"home"});break;case ko:o==null||o({type:"scroll-end",direction:"end"});break}return R},[o]),y=Ne(()=>{var E;if(t!==!0&&(E=e.current)!=null&&E.contains(document.activeElement)){let R=f(document.activeElement);R&&(c.current=m(R))}},[t,e]),b=Ne(async E=>{let[R,S]=Ea(E)?await C(E,p.current):Gh(E,p.current,n,s),[M,I]=p.current;(R!==M||S!==I)&&x(R,S,!0)},[n,C,s,x]),T=Ne(E=>{r.length>0&&Ra(E.key)&&(E.preventDefault(),E.stopPropagation(),b(E.key))},[r,b]),g=Ne(E=>{let R=E.target,S=f(R);if(S){let[M,I]=m(S);x(M,I)}},[x]),w=Kh(()=>({onClick:g,onFocus:y,onKeyDown:T}),[g,y,T]);Bh(()=>{let{current:E}=p,R=E[0]>=l&&E[0]<=a;u.current&&!R?v():!u.current&&R&&h(E)},[h,l,a,v]);let D=((P=e.current)==null?void 0:P.firstChild)!=null;return Vh(()=>{var E;if(D&&u.current===void 0){let R=(E=e.current)==null?void 0:E.querySelector(Da(0));R&&(R.setAttribute("tabindex","0"),u.current=R)}},[e,D]),w};import{isValidNumber as We}from"@vuu-ui/vuu-utils";import{useCallback as Qh,useMemo as Zh,useRef as Yh,useState as jh}from"react";import{useCallback as Uh,useEffect as Pa,useRef as Xh}from"react";var ot=new Map,ka=(n,e,t)=>{switch(t){case"height":return e.height;case"clientHeight":return n.clientHeight;case"clientWidth":return n.clientWidth;case"contentHeight":return e.contentHeight;case"contentWidth":return e.contentWidth;case"scrollHeight":return Math.ceil(n.scrollHeight);case"scrollWidth":return Math.ceil(n.scrollWidth);case"width":return e.width;default:return 0}},La=new ResizeObserver(n=>{for(let e of n){let{target:t,borderBoxSize:r,contentBoxSize:o}=e,s=ot.get(t);if(s){let[{blockSize:i,inlineSize:l}]=r,[{blockSize:a,inlineSize:c}]=o,{onResize:u,measurements:p}=s,d=!1;for(let[f,m]of Object.entries(p)){let h=ka(t,{height:i,width:l,contentHeight:a,contentWidth:c},f);h!==m&&(d=!0,p[f]=h)}d&&u&&u(p)}}});function Ia(n,e,t,r=!1){let o=Xh(e),s=Uh(i=>{let{width:l,height:a}=i.getBoundingClientRect(),{clientWidth:c,clientHeight:u}=i;return o.current.reduce((p,d)=>(p[d]=ka(i,{width:l,height:a,contentHeight:u,contentWidth:c},d),p),{})},[]);Pa(()=>{let i=n.current;async function l(){ot.set(i,{measurements:{}}),await document.fonts.ready;let a=ot.get(i);if(a){let c=s(i);a.measurements=c,La.observe(i),r&&t(c)}else console.log("%cuseResizeObserver an target expected to be under observation wa snot found. This warrants investigation","font-weight:bold; color:red;")}if(i){if(ot.has(i))throw Error("useResizeObserver attemping to observe same element twice");l()}return()=>{i&&ot.has(i)&&(La.unobserve(i),ot.delete(i))}},[s,n]),Pa(()=>{let i=n.current,l=ot.get(i);if(l){if(o.current!==e){o.current=e;let a=s(i);l.measurements=a}l.onResize=t}},[e,s,n,t])}var qh=["clientHeight","clientWidth"],Aa=n=>Number.isFinite(n),Jh={height:"100%",width:"100%"},eg=(n,e)=>We(n)&&We(e)?{height:`${n}px`,width:`${e}px`}:Jh,tg=(n,e)=>{if(We(n)&&We(e))return{height:n,width:e}},er=({defaultHeight:n=0,defaultWidth:e=0,height:t,width:r})=>{let o=Yh(null),[s,i]=jh({css:eg(t,r),inner:tg(t,r),outer:{height:t!=null?t:"100%",width:r!=null?r:"100%"}});Zh(()=>{i(a=>{let{inner:c,outer:u}=a;if(We(t)&&We(r)&&c&&u){let{height:p,width:d}=c,{height:f,width:m}=u;if(f!==t||m!==r){let h=We(f)?f-p:0,x=We(m)?m-d:0;return{...a,outer:{height:t,width:r},inner:{height:t-h,width:r-x}}}}return a})},[t,r]);let l=Qh(({clientWidth:a,clientHeight:c})=>{i(u=>{let{css:p,inner:d,outer:f}=u;return Aa(c)&&Aa(a)&&(a!==(d==null?void 0:d.width)||c!==(d==null?void 0:d.height))?{css:p,outer:f,inner:{width:Math.floor(a)||e,height:Math.floor(c)||n}}:u})},[n,e]);return Ia(o,qh,l,!0),{containerRef:o,cssSize:s.css,outerSize:s.outer,innerSize:s.inner}};import{deselectItem as ng,isRowSelected as rg,metadataKeys as og,selectItem as sg}from"@vuu-ui/vuu-utils";import{useCallback as ig,useRef as Oa}from"react";var{IDX:lg}=og,ag=[],tr=({selectionModel:n,onSelectionChange:e})=>{let t=Oa(-1),r=Oa(ag);return ig((s,i,l)=>{let{[lg]:a}=s,{current:c}=t,{current:u}=r,d=(rg(s)?ng:sg)(n,u,a,i,l,c);r.current=d,t.current=a,e&&e(d)},[e,n])};import{applyFilterToColumns as cg,applyGroupByToColumns as ug,applySortToColumns as dg,findColumn as pg,getCellRenderer as fg,getColumnName as mg,getTableHeadings as hg,getValueFormatter as gg,isFilteredColumn as bg,isGroupColumn as yg,isPinned as xg,isTypeDescriptor as vg,metadataKeys as Cg,updateColumn as Ha,sortPinnedColumns as Na,stripFilterFromColumns as Tg,moveItem as wg}from"@vuu-ui/vuu-utils";import{useReducer as Sg}from"react";var Eg=100,za=Cg.count,Rg=({serverDataType:n})=>n===void 0,Dg=n=>{var e;if(vg(n.type))return fg((e=n.type)==null?void 0:e.renderer)},Fa=(n,e)=>{if(n.serverDataType)return n.serverDataType;if(e){let t=e.columns.find(r=>r.name===n.name);if(t)return t.serverDataType}return"string"},Mg=["int","long","double"],$a=n=>n===void 0?void 0:Mg.includes(n)?"right":"left",Va=n=>n.type==="columnSettings",Ba=n=>n.type==="tableSettings",Pg=(n,e)=>{switch(e.type){case"init":return Wa(e);case"moveColumn":return kg(n,e);case"resizeColumn":return Og(n,e);case"setTableSchema":return Hg(n,e);case"hideColumns":return Ig(n,e);case"showColumns":return Ag(n,e);case"pinColumn":return Ng(n,e);case"updateColumnProp":return Mt(n,e);case"tableConfig":return _a(n,e);default:return console.log(`unhandled action ${e.type}`),n}},Ka=(n,e)=>{let[t,r]=Sg(Pg,{tableConfig:n,dataSourceConfig:e},Wa);return{columns:t.columns,dispatchColumnAction:r,headings:t.headings}};function Wa({dataSourceConfig:n,tableConfig:e}){let t=e.columns.map(Ho(e)),r=t.some(xg)?Na(t):t,o={columns:r,headings:hg(r)};if(n){let{columns:s,...i}=n;return _a(o,{type:"tableConfig",...i})}else return o}var Lg=(n,e)=>e==="uppercase"?n.toUpperCase():e==="capitalize"?n[0].toUpperCase()+n.slice(1).toLowerCase():n,Ho=n=>(e,t)=>{let r=Fa(e,n.tableSchema),{columnDefaultWidth:o=Eg,columnFormatHeader:s}=n,{align:i=$a(r),key:l,name:a,label:c=a,width:u=o,...p}=e,d={...p,align:i,CellRenderer:Dg(e),label:Lg(c,s),key:l!=null?l:t+za,name:a,originalIdx:t,serverDataType:r,valueFormatter:gg(e),width:u};return yg(d)&&(d.columns=d.columns.map(f=>Ho(n)(f,f.key))),d};function kg(n,{column:e,moveBy:t,moveTo:r}){let{columns:o}=n;if(typeof t=="number"){let s=o.indexOf(e),i=o.slice(),[l]=i.splice(s,1);return i.splice(s+t,0,l),{...n,columns:i}}else if(typeof r=="number")return{...n,columns:wg(o,e,r)};return n}function Ig(n,{columns:e}){return e.some(t=>t.hidden!==!0)?e.reduce((t,r)=>r.hidden!==!0?Mt(t,{type:"updateColumnProp",column:r,hidden:!0}):t,n):n}function Ag(n,{columns:e}){return e.some(t=>t.hidden)?e.reduce((t,r)=>r.hidden?Mt(t,{type:"updateColumnProp",column:r,hidden:!1}):t,n):n}function Og(n,{column:e,phase:t,width:r}){let o="updateColumnProp",s=t!=="end";switch(t){case"begin":return Mt(n,{type:o,column:e,resizing:s});case"end":return Mt(n,{type:o,column:e,resizing:s,width:r});case"resize":return Mt(n,{type:o,column:e,width:r});default:throw Error(`useTableModel.resizeColumn, invalid resizePhase ${t}`)}}function Hg(n,{tableSchema:e}){let{columns:t}=n;if(t.some(Rg)){let r=t.map(o=>{var i;let s=Fa(o,e);return{...o,align:(i=o.align)!=null?i:$a(s),serverDataType:s}});return{...n,columns:r,tableSchema:e}}else return{...n,tableSchema:e}}function Ng(n,e){let{columns:t}=n,{column:r,pin:o}=e;return t=Ha(t,r.name,{pin:o}),t=Na(t),console.log({withPins:t}),{...n,columns:t}}function Mt(n,e){let{columns:t}=n,{align:r,column:o,hidden:s,label:i,resizing:l,width:a}=e,c={};return(r==="left"||r==="right")&&(c.align=r),typeof i=="string"&&(c.label=i),typeof l=="boolean"&&(c.resizing=l),typeof s=="boolean"&&(c.hidden=s),typeof a=="number"&&(c.width=a),t=Ha(t,o.name,c),{...n,columns:t}}function _a(n,{columns:e,confirmed:t,filter:r,groupBy:o,sort:s}){let i=e&&e.length>0,l=o!==void 0,a=typeof(r==null?void 0:r.filter)=="string",c=s&&s.sortDefs.length>0,u=n;return i&&(u={...n,columns:e.map((p,d)=>{let f=mg(p),m=d+za,h=pg(u.columns,f);return h?h.key===m?h:{...h,key:m}:Ho(n)({name:p},d)})}),l&&(u={...n,columns:ug(u.columns,o,t)}),c&&(u={...n,columns:dg(u.columns,s)}),a?u={...n,columns:cg(u.columns,r)}:u.columns.some(bg)&&(u={...n,columns:Tg(u.columns)}),u}import{useCallback as _e,useRef as cn}from"react";var Ga=n=>{let{scrollLeft:e,scrollTop:t}=n,{clientHeight:r,clientWidth:o,scrollHeight:s,scrollWidth:i}=n,l=e/(i-o),a=t/(s-r);return[l,a]},zg=n=>{let{clientHeight:e,clientWidth:t,scrollHeight:r,scrollWidth:o}=n;return[o-t,r-e]},Ua=({onAttach:n,onDetach:e})=>{let t=cn(null);return _e(o=>{if(o)t.current=o,n==null||n(o);else if(t.current){let{current:s}=t;t.current=o,e==null||e(s)}},[n,e])},Xa=({onHorizontalScroll:n,onVerticalScroll:e,viewport:t})=>{let r=cn(!1),o=cn({scrollTop:0,scrollLeft:0}),s=cn(null),i=cn(null),{maxScrollContainerScrollHorizontal:l,maxScrollContainerScrollVertical:a}=t,c=_e(()=>{let{current:C}=i,{current:y}=s,{current:b}=r;if(b)r.current=!1;else if(C&&y){let[T,g]=Ga(y),[w,D]=zg(C),P=Math.round(T*w),E=Math.round(g*D);console.log(`pctScrollTop ${g}, maxScrollTop ${D} rootScrollTop ${E}`),C.scrollTo({left:P,top:E,behavior:"auto"})}},[]),u=_e(()=>{let{current:C}=i,{current:y}=s,{current:b}=o;if(C&&y){let{scrollLeft:T,scrollTop:g}=C,[w,D]=Ga(C);r.current=!0,y.scrollLeft=Math.round(w*l),y.scrollTop=Math.round(D*a),b.scrollTop!==g&&(b.scrollTop=g,e==null||e(g,D)),b.scrollLeft!==T&&(b.scrollLeft=T,n==null||n(T))}},[l,a,n,e]),p=_e(C=>{s.current=C,C.addEventListener("scroll",c,{passive:!0})},[c]),d=_e(C=>{s.current=null,C.removeEventListener("scroll",c)},[c]),f=_e(C=>{i.current=C,C.addEventListener("scroll",u,{passive:!0})},[u]),m=_e(C=>{i.current=null,C.removeEventListener("scroll",u)},[u]),h=Ua({onAttach:f,onDetach:m}),x=Ua({onAttach:p,onDetach:d}),v=_e(C=>{let{current:y}=i;if(y){if(r.current=!1,C.type==="scroll-page"){let{clientHeight:b,scrollLeft:T,scrollTop:g}=y,{direction:w}=C,D=w==="down"?b:-b,P=Math.min(Math.max(0,g+D),a);y.scrollTo({top:P,left:T,behavior:"auto"})}else if(C.type==="scroll-end"){let{direction:b}=C,T=b==="end"?a:0;y.scrollTo({top:T,left:y.scrollLeft,behavior:"auto"})}}},[a]);return{scrollbarContainerRef:x,contentContainerRef:h,requestScroll:v}};import{useCallback as Fg,useMemo as nr,useRef as $g}from"react";import{actualRowPositioning as Vg,virtualRowPositioning as Bg}from"@vuu-ui/vuu-utils";var Kg=15e5,Wg={contentHeight:0,contentWidth:0,getRowAtPosition:()=>-1,getRowOffset:()=>-1,horizontalScrollbarHeight:0,maxScrollContainerScrollHorizontal:0,maxScrollContainerScrollVertical:0,pinnedWidthLeft:0,pinnedWidthRight:0,rowCount:0,setPctScrollTop:()=>{},totalHeaderHeight:0,verticalScrollbarWidth:0,viewportBodyHeight:0},_g=n=>{let e=0,t=0,r=0;for(let o of n){let{hidden:s,pin:i,width:l}=o,a=s?0:l;i==="left"?e+=a:i==="right"?t+=a:r+=a}return{pinnedWidthLeft:e+4,pinnedWidthRight:t+4,unpinnedWidth:r}},rr=({columns:n,headerHeight:e,headings:t,rowCount:r,rowHeight:o,size:s})=>{let i=$g(0),a=Math.min(r,Kg)*o,u=r*o-a,{pinnedWidthLeft:p,pinnedWidthRight:d,unpinnedWidth:f}=nr(()=>_g(n),[n]),[m,h]=nr(()=>Vg(o),[o]),[x,v]=nr(()=>u?Bg(o,u,i):[m,h],[h,m,u,o]),C=Fg(y=>{i.current=y},[]);return nr(()=>{var y;if(s){let b=t.length,T=15,g=p+f+d,w=g>s.width?T:0,D=e*(1+b),P=a-(((y=s==null?void 0:s.height)!=null?y:0)-w)+D,E=g-s.width+p,R=(s.height-e)/o,S=Number.isInteger(R)?R+1:Math.ceil(R),M=s.height-D,I=a>M?T:0;return{contentHeight:a,getRowAtPosition:v,getRowOffset:x,horizontalScrollbarHeight:w,maxScrollContainerScrollHorizontal:E,maxScrollContainerScrollVertical:P,pinnedWidthLeft:p,pinnedWidthRight:d,rowCount:S,contentWidth:g,setPctScrollTop:C,totalHeaderHeight:D,verticalScrollbarWidth:I,viewportBodyHeight:M}}else return Wg},[s,t.length,p,f,d,a,e,o,v,x,C])};import{getColumnsInViewport as Qa,itemsChanged as Gg}from"@vuu-ui/vuu-utils";import{useCallback as Za,useEffect as Ug,useMemo as Xg,useRef as No,useState as Qg}from"react";var Ya=({columns:n,getRowAtPosition:e,setRange:t,viewportMeasurements:r})=>{let o=No(-1),{rowCount:s,contentWidth:i,maxScrollContainerScrollHorizontal:l}=r,a=i-l,c=No(0),[u,p]=Xg(()=>Qa(n,c.current,c.current+a),[a,n]),d=No(p);Ug(()=>{m(u)},[u]);let[f,m]=Qg(u),h=Za(v=>{c.current=v;let[C,y]=Qa(n,v,v+a);Gg(f,C)&&(d.current=y,m(C))},[a,n,f]),x=Za(v=>{let C=e(v);C!==o.current&&(o.current=C,t({from:C,to:C+s}))},[e,t,s]);return{columnsWithinViewport:f,onHorizontalScroll:h,onVerticalScroll:x,virtualColSpan:d.current}};var rb=[],{KEY:ob,IS_EXPANDED:qa,IS_LEAF:Ja}=Jg,ec=({config:n,dataSource:e,headerHeight:t,onConfigChange:r,onFeatureEnabled:o,onFeatureInvocation:s,onSelectionChange:i,renderBufferSize:l=0,rowHeight:a,selectionModel:c,...u})=>{var q,Z;let[p,d]=nb(e.size),f=zo(!1),m=zo();if(m.current=e,e===void 0)throw Error("no data source provided to Vuu Table");let h=er(u),x=Te(K=>{d(K)},[]),{columns:v,dispatchColumnAction:C,headings:y}=Ka(n,e.config),{getRowAtPosition:b,getRowOffset:T,setPctScrollTop:g,...w}=rr({columns:v,headerHeight:t,headings:y,rowCount:p,rowHeight:a,size:h.innerSize}),D=Te(({tableSchema:K})=>{K?(f.current=!0,C({type:"setTableSchema",tableSchema:K})):console.log("usbscription message with no schema")},[C]),P=Te(K=>{e.select(K),i==null||i(K)},[e,i]),E=tr({onSelectionChange:P,selectionModel:c}),{data:R,getSelectedRows:S,range:M,setRange:I}=va({dataSource:e,onFeatureEnabled:o,onFeatureInvocation:s,onSubscribed:D,onSizeChange:x,renderBufferSize:l,viewportRowCount:w.rowCount}),L=zo();L.current=R;let k=Te(K=>{f.current=!0,console.log("onPersistentColumnOperation, dispatchColumnAction",{action:K}),C(K)},[C]),O=hn({dataSource:e,onPersistentColumnOperation:k}),A=Te((K,Y=!1,ee)=>{e&&(e.sort=Yg(e.sort,K,Y,ee))},[e]),N=Te((K,Y,ee)=>{let j=v.find(se=>se.name===Y);if(j)K==="end"&&(f.current=!0),C({type:"resizeColumn",phase:K,column:j,width:ee});else throw Error(`useDataTable.handleColumnResize, column ${Y} not found`)},[v,C]),H=Te((K,Y)=>{let ee=qg(Y,K),j=K[ob];if(K[qa]){if(e.closeTreeNode(j,!0),ee){let se=v.indexOf(Y);e.getRowsAtDepth(se+1).some(ie=>ie[qa]||ie[Ja])||C({type:"hideColumns",columns:v.slice(se+2)})}}else if(e.openTreeNode(j),ee){let se=e.getChildRows(j),ue=v.indexOf(Y)+1,ie=[v[ue]];se.some(de=>de[Ja])&&ie.push(v[ue+1]),ie.some(de=>de.hidden)&&C({type:"showColumns",columns:ie})}},[v,e,C]),{onVerticalScroll:V,onHorizontalScroll:z,columnsWithinViewport:B,virtualColSpan:W}=Ya({columns:v,getRowAtPosition:b,setRange:I,viewportMeasurements:w}),Q=Te((K,Y)=>{g(Y),V(K)},[V,g]),{requestScroll:F,...$}=Xa({onHorizontalScroll:z,onVerticalScroll:Q,viewport:w,viewportHeight:((Z=(q=h.innerSize)==null?void 0:q.height)!=null?Z:0)-t}),G=Ma({columnCount:v.length,containerRef:h.containerRef,data:R,requestScroll:F,rowCount:e==null?void 0:e.size,viewportRange:M}),oe=Te(K=>{K?e&&e.groupBy.includes(K.name)&&(e.groupBy=e.groupBy.filter(Y=>Y!==K.name)):e.groupBy=[]},[e]),we=Te((K,Y)=>{let ee=e.columns[K],j=eb(e.columns,ee,Y);j!==e.columns&&(e.columns=j,C({type:"tableConfig",columns:j}))},[e,C]),_=wa({onDrop:we});ja(()=>{m.current&&(f.current=!0,C({type:"init",tableConfig:n,dataSourceConfig:m.current.config}))},[n,C]),ja(()=>{e.on("config",(K,Y)=>{f.current=!0,C({type:"tableConfig",...K,confirmed:Y})})},[e,C]),tb(()=>{f.current&&(r==null||r({...n,columns:v}),f.current=!1)},[v,n,r]);let[U]=Zg(),J=Te(K=>{var ie;let{current:Y}=L,{current:ee}=m,j=K.target,se=j==null?void 0:j.closest("div[role='cell']"),ue=j==null?void 0:j.closest(".vuuTableRow");if(se&&ue&&Y&&ee){let{columns:de,selectedRowsCount:Xe}=ee,ke=jg(de),It=parseInt((ie=ue.ariaRowIndex)!=null?ie:"-1"),it=Array.from(ue.childNodes).indexOf(se),ye=Y.find(([At])=>At===It),lt=de[it];U(K,"grid",{columnMap:ke,columnName:lt,row:ye,selectedRows:Xe===0?rb:S(),viewport:e==null?void 0:e.viewport})}},[e==null?void 0:e.viewport,S,U]);return{columns:v,columnsWithinViewport:B,containerMeasurements:h,containerProps:G,data:R,dispatchColumnAction:C,getRowOffset:T,handleContextMenuAction:O,headings:y,onColumnResize:N,onContextMenu:J,onRemoveColumnFromGroupBy:oe,onRowClick:E,onSort:A,onToggleGroup:H,virtualColSpan:W,scrollProps:$,rowCount:p,viewportMeasurements:w,..._}};import ab from"classnames";import{isDataLoading as cb}from"@vuu-ui/vuu-utils";import{jsx as un,jsxs as tc}from"react/jsx-runtime";var st="vuuTable",y1=({allowConfigEditing:n=!1,className:e,config:t,dataSource:r,headerHeight:o=25,height:s,id:i,onConfigChange:l,onFeatureEnabled:a,onFeatureInvocation:c,onSelectionChange:u,onShowConfigEditor:p,renderBufferSize:d=0,rowHeight:f=20,selectionModel:m="extended",style:h,width:x,zebraStripes:v=!1,...C})=>{let y=lb(i),{containerMeasurements:{containerRef:b,innerSize:T,outerSize:g},containerProps:w,dispatchColumnAction:D,draggable:P,draggedItemIndex:E,handleContextMenuAction:R,scrollProps:S,viewportMeasurements:M,...I}=ec({config:t,dataSource:r,renderBufferSize:d,headerHeight:o,height:s,onConfigChange:l,onFeatureEnabled:a,onFeatureInvocation:c,onSelectionChange:u,rowHeight:f,selectionModel:m,width:x}),L={...g,"--content-height":`${M.contentHeight}px`,"--horizontal-scrollbar-height":`${M.horizontalScrollbarHeight}px`,"--content-width":`${M.contentWidth}px`,"--pinned-width-left":`${M.pinnedWidthLeft}px`,"--pinned-width-right":`${M.pinnedWidthRight}px`,"--header-height":`${o}px`,"--row-height":`${f}px`,"--table-height":`${T==null?void 0:T.height}px`,"--table-width":`${T==null?void 0:T.width}px`,"--total-header-height":`${M.totalHeaderHeight}px`,"--vertical-scrollbar-width":`${M.verticalScrollbarWidth}px`,"--viewport-body-height":`${M.viewportBodyHeight}px`},k=ab(st,e,{[`${st}-zebra`]:v,[`${st}-loading`]:cb(I.columns)});return un(sb,{menuActionHandler:R,menuBuilder:mn(r),children:tc("div",{...C,...w,className:k,id:y,ref:b,style:L,tabIndex:-1,children:[T?un("div",{className:`${st}-scrollbarContainer`,ref:S.scrollbarContainerRef,children:un("div",{className:`${st}-scrollbarContent`})}):null,T?tc("div",{className:`${st}-contentContainer`,ref:S.contentContainerRef,children:[un(ra,{...I,headerHeight:o,tableId:y}),P]}):null,n&&T?un(ib,{className:`${st}-settings`,"data-icon":"settings",onClick:p,variant:"secondary"}):null]})})};import ub from"classnames";import{isJsonAttribute as db,metadataKeys as pb,registerComponent as fb}from"@vuu-ui/vuu-utils";import{jsx as Fo,jsxs as yb}from"react/jsx-runtime";var dn="vuuJsonCell",{IS_EXPANDED:mb,KEY:hb}=pb,gb=n=>{let e=n.lastIndexOf("|");return e===-1?"":n.slice(e+1)},bb=({column:n,row:e})=>{let{key:t}=n,r=e[t],o=!1;db(r)&&(r=r.slice(0,-1),o=!0);let s=gb(e[hb]),i=ub({[`${dn}-name`]:s===r,[`${dn}-value`]:s!==r,[`${dn}-group`]:o});if(o){let l=e[mb]?"minus-box":"plus-box";return yb("span",{className:i,children:[Fo("span",{className:`${dn}-value`,children:r}),Fo("span",{className:`${dn}-toggle`,"data-icon":l})]})}else return r?Fo("span",{className:i,children:r}):null};fb("json",bb,"cell-renderer",{});import{ContextMenuProvider as Oy}from"@vuu-ui/vuu-popups";import{metadataKeys as Hy}from"@vuu-ui/vuu-utils";import{useEffect as Ny}from"react";import{useCallback as Mb,useRef as Pb}from"react";import{getColumnStyle as xb}from"@vuu-ui/vuu-utils";import vb from"classnames";import{useMemo as Cb}from"react";var Pt=(n,e,t)=>Cb(()=>{let r=vb(e,{vuuPinFloating:n.pin==="floating",vuuPinLeft:n.pin==="left",vuuPinRight:n.pin==="right",vuuEndPin:t&&n.endPin,[`${e}-resizing`]:n.resizing,[`${e}-right`]:n.align==="right"}),o=xb(n);return{className:r,style:o}},[n,e,t]);import{useContextMenu as Tb}from"@vuu-ui/vuu-popups";import wb from"classnames";import{useCallback as nc,useRef as Sb,useState as Eb}from"react";import{jsx as Db}from"react/jsx-runtime";var Rb=n=>{if(n){let{bottom:e,left:t}=n.getBoundingClientRect();return{x:t,y:e+6}}},rc=({className:n,column:e,...t})=>{let r=Sb(null),[o,s]=Eb(!1),[i]=Tb(),l=nc(()=>{s(!1)},[]),a=nc(c=>{s(!0),i(c,"column-menu",{column:e,ContextMenuProps:{onClose:l,position:Rb(r.current)}})},[e,l,i]);return Db("span",{...t,className:wb("vuuTable-columnMenu",n,{"vuuTable-columnMenu-open":o}),"data-icon":"more-vert",onClick:a,ref:r})};import{jsx as or,jsxs as Lb}from"react/jsx-runtime";var oc=({classBase:n,column:e,onClick:t,onResize:r,idx:o})=>{let s=Pb(null),{isResizing:i,...l}=vt({column:e,onResize:r,rootRef:s}),a=`${n}-col-header`,c=Mb(d=>!i&&(t==null?void 0:t(d)),[i,t]),{className:u,style:p}=Pt(e,a,!0);return Lb("div",{className:u,"data-idx":o,onClick:c,ref:s,role:"cell",style:p,children:[or(rc,{column:e}),or("div",{className:`${a}-label`,children:e.name}),or(Un,{sorted:e.sorted}),e.resizeable!==!1?or(at,{...l}):null]})};import{isGroupColumn as zb,metadataKeys as Fb,RowSelected as $b}from"@vuu-ui/vuu-utils";import Vb from"classnames";import{memo as Bb,useCallback as Kb}from"react";import{jsx as kb}from"react/jsx-runtime";var sc=({column:n,row:e})=>{let{className:t,style:r}=Pt(n,"vuuTableNextCell");return kb("div",{className:t,role:"cell",style:r,children:e[n.key]})};import{getGroupValueAndOffset as Ib,metadataKeys as Ab}from"@vuu-ui/vuu-utils";import{useCallback as Ob}from"react";import{jsx as $o,jsxs as Nb}from"react/jsx-runtime";var{IS_LEAF:Hb}=Ab,ic=({column:n,onClick:e,row:t})=>{let{columns:r}=n,[o,s]=Ib(r,t),{className:i,style:l}=Pt(n,"vuuTable2-groupCell"),a=Ob(p=>{e==null||e(p,n)},[n,e]),c=t[Hb],u=Array(s).fill(0).map((p,d)=>$o("span",{className:"vuuTable2-groupCell-spacer"},d));return Nb("div",{className:i,role:"cell",style:l,onClick:c?void 0:a,children:[u,c?null:$o("span",{className:"vuuTable2-groupCell-toggle","data-icon":"vuu-triangle-right"}),$o("span",{children:o})]})};import{jsx as Vo}from"react/jsx-runtime";import{createElement as Ub}from"react";var{IDX:Wb,IS_EXPANDED:_b,SELECTED:Gb}=Fb,Ge="vuuTableNextRow",Bo=Bb(({className:n,columnMap:e,columns:t,row:r,offset:o,onClick:s,onToggleGroup:i,...l})=>{let{[Wb]:a,[_b]:c,[Gb]:u}=r,p=Kb(v=>{let C=v.shiftKey,y=v.ctrlKey||v.metaKey;s==null||s(r,C,y)},[s,r]),{True:d,First:f,Last:m}=$b,h=Vb(Ge,n,{[`${Ge}-even`]:a%2===0,[`${Ge}-expanded`]:c,[`${Ge}-selected`]:u&d,[`${Ge}-selectedStart`]:u&f,[`${Ge}-selectedEnd`]:u&m}),x=typeof o=="number"?{transform:`translate3d(0px, ${o}px, 0px)`}:void 0;return Ub("div",{...l,key:`row-${r[0]}`,role:"row",className:h,onClick:p,style:x},Vo("span",{className:`${Ge}-selectionDecorator vuuStickyLeft`}),t.map(v=>{let y=zb(v)?ic:sc;return Vo(y,{column:v,row:r},v.key)}),Vo("span",{className:`${Ge}-selectionDecorator vuuStickyRight`}))});Bo.displayName="Row";import{useContextMenu as Py}from"@vuu-ui/vuu-popups";import{applySort as Ly,buildColumnMap as vc,visibleColumnAtIndex as ky}from"@vuu-ui/vuu-utils";import{useCallback as kt,useEffect as Iy,useMemo as Wo,useState as Ay}from"react";import{useCallback as Xb,useMemo as Qb,useState as Zb}from"react";var lc=({dataSource:n,initialRange:e})=>{let[t,r]=Zb([]);Qb(()=>{n==null||n.subscribe({range:e},s=>{s.type==="viewport-update"&&s.rows&&r(s.rows)})},[n,e]);let o=Xb(s=>{n.range=s},[n]);return{data:t,setRange:o}};import{useMemo as Yb,useRef as jb}from"react";var ac=n=>{let e=jb(n);return Yb(()=>e.current,[])};import{applyFilterToColumns as qb,applyGroupByToColumns as Jb,applySortToColumns as ey,findColumn as ty,getCellRenderer as ny,getColumnName as ry,getTableHeadings as oy,getValueFormatter as sy,isFilteredColumn as iy,isGroupColumn as ly,isPinned as ay,isTypeDescriptor as cy,logger as uy,metadataKeys as dy,sortPinnedColumns as cc,stripFilterFromColumns as py}from"@vuu-ui/vuu-utils";import{useReducer as fy}from"react";var{info:Ko}=uy("useTableModel"),my=100,uc=dy.count,hy=({serverDataType:n})=>n===void 0,gy=n=>{var e;if(cy(n.type))return ny((e=n.type)==null?void 0:e.renderer)},by=(n,e)=>{var r;let t=e.columns.find(({name:o})=>o===n.name);return t?t.serverDataType:(r=n.serverDataType)!=null?r:"string"},yy=["int","long","double"],dc=n=>n===void 0?void 0:yy.includes(n)?"right":"left",xy=(n,e)=>{switch(Ko==null||Ko(`GridModelReducer ${e.type}`),e.type){case"init":return fc(e);case"moveColumn":return Cy(n,e);case"resizeColumn":return Sy(n,e);case"setTableSchema":return Ey(n,e);case"hideColumns":return Ty(n,e);case"showColumns":return wy(n,e);case"pinColumn":return Ry(n,e);case"updateColumnProp":return pn(n,e);case"tableConfig":return hc(n,e);default:return console.log(`unhandled action ${e.type}`),n}},pc=(n,e)=>{let[t,r]=fy(xy,{tableConfig:n,dataSourceConfig:e},fc);return{columns:t.columns,dispatchColumnAction:r,headings:t.headings}};function fc({dataSourceConfig:n,tableConfig:e}){let t=e.columns.map(mc(e)),r=t.some(ay)?cc(t):t,o={columns:r,headings:oy(r)};if(n){let{columns:s,...i}=n;return hc(o,{type:"tableConfig",...i})}else return o}var vy=(n,e)=>e==="uppercase"?n.toUpperCase():e==="capitalize"?n[0].toUpperCase()+n.slice(1).toLowerCase():n,mc=n=>(e,t)=>{let{columnDefaultWidth:r=my,columnFormatHeader:o}=n,{align:s=dc(e.serverDataType),key:i,name:l,label:a=l,width:c=r,...u}=e,p={...u,align:s,CellRenderer:gy(e),label:vy(a,o),key:i!=null?i:t+uc,name:l,originalIdx:t,valueFormatter:sy(e),width:c};return ly(p)&&(p.columns=p.columns.map(d=>mc(n)(d,d.key))),p};function Cy(n,{column:e,moveBy:t,moveTo:r}){let{columns:o}=n;if(typeof t=="number"){let s=o.indexOf(e),i=o.slice(),[l]=i.splice(s,1);return i.splice(s+t,0,l),{...n,columns:i}}else if(typeof r=="number"){let s=o.indexOf(e);return{...n,columns:ns(o,s,r)}}return n}function Ty(n,{columns:e}){return e.some(t=>t.hidden!==!0)?e.reduce((t,r)=>r.hidden!==!0?pn(t,{type:"updateColumnProp",column:r,hidden:!0}):t,n):n}function wy(n,{columns:e}){return e.some(t=>t.hidden)?e.reduce((t,r)=>r.hidden?pn(t,{type:"updateColumnProp",column:r,hidden:!1}):t,n):n}function Sy(n,{column:e,phase:t,width:r}){let o="updateColumnProp",s=t!=="end";switch(t){case"begin":case"end":return pn(n,{type:o,column:e,resizing:s});case"resize":return pn(n,{type:o,column:e,width:r});default:throw Error(`useTableModel.resizeColumn, invalid resizePhase ${t}`)}}function Ey(n,{tableSchema:e}){let{columns:t}=n;if(t.some(hy)){let r=t.map(o=>{var i;let s=by(o,e);return{...o,align:(i=o.align)!=null?i:dc(s),serverDataType:s}});return{...n,columns:r}}else return n}function Ry(n,e){let{columns:t}=n,{column:r,pin:o}=e,s=t.find(i=>i.name===r.name);return s?(t=Lt(t,{...s,pin:o}),t=cc(t),{...n,columns:t}):n}function pn(n,e){let{columns:t}=n,{align:r,column:o,hidden:s,label:i,resizing:l,width:a}=e,c=t.find(u=>u.name===o.name);return c&&((r==="left"||r==="right")&&(t=Lt(t,{...c,align:r})),typeof i=="string"&&(t=Lt(t,{...c,label:i})),typeof l=="boolean"&&(t=Lt(t,{...c,resizing:l})),typeof s=="boolean"&&(t=Lt(t,{...c,hidden:s})),typeof a=="number"&&(t=Lt(t,{...c,width:a}))),{...n,columns:t}}function hc(n,{columns:e,confirmed:t,filter:r,groupBy:o,sort:s}){let i=e&&e.length>0,l=o!==void 0,a=typeof(r==null?void 0:r.filter)=="string",c=s&&s.sortDefs.length>0,u=n;return i&&(u={...n,columns:e.map((p,d)=>{let f=ry(p),m=d+uc,h=ty(u.columns,f);if(h)return h.key===m?h:{...h,key:m};throw Error(`useTableModel column ${p} not found`)})}),l&&(u={...n,columns:Jb(u.columns,o,t)}),c&&(u={...n,columns:ey(u.columns,s)}),a?u={...n,columns:qb(u.columns,r)}:u.columns.some(iy)&&(u={...n,columns:py(u.columns)}),u}function Lt(n,e){return n.map(t=>t.name===e.name?e:t)}import{useCallback as Ue,useRef as fn}from"react";var gc=n=>{let{scrollLeft:e,scrollTop:t}=n,{clientHeight:r,clientWidth:o,scrollHeight:s,scrollWidth:i}=n,l=e/(i-o),a=t/(s-r);return[l,a]},bc=({onAttach:n,onDetach:e})=>{let t=fn(null);return Ue(o=>{if(o)t.current=o,n==null||n(o);else if(t.current){let{current:s}=t;t.current=o,e==null||e(s)}},[n,e])},yc=({maxScrollLeft:n,maxScrollTop:e,onHorizontalScroll:t,onVerticalScroll:r})=>{let o=fn(!1),s=fn({scrollTop:0,scrollLeft:0}),i=fn(null),l=fn(null),a=Ue(()=>{let{current:v}=l,{current:C}=i,{current:y}=o;if(y)o.current=!1;else if(v&&C){let[b,T]=gc(C),g=Math.round(b*n),w=Math.round(T*e);v.scrollTo({left:g,top:w,behavior:"auto"})}},[n,e]),c=Ue(()=>{let{current:v}=l,{current:C}=i,{current:y}=s;if(v&&C){let{scrollLeft:b,scrollTop:T}=v,[g,w]=gc(v);o.current=!0,C.scrollLeft=Math.round(g*n),C.scrollTop=Math.round(w*e),y.scrollTop!==T&&(y.scrollTop=T,r==null||r(T,w)),y.scrollLeft!==b&&(y.scrollLeft=b,t==null||t(b))}},[n,e,t,r]),u=Ue(v=>{i.current=v,v.addEventListener("scroll",a,{passive:!0})},[a]),p=Ue(v=>{i.current=null,v.removeEventListener("scroll",a)},[a]),d=Ue(v=>{l.current=v,v.addEventListener("scroll",c,{passive:!0})},[c]),f=Ue(v=>{l.current=null,v.removeEventListener("scroll",c)},[c]),m=bc({onAttach:d,onDetach:f}),h=bc({onAttach:u,onDetach:p}),x=Ue(v=>{let{current:C}=l;if(C){if(o.current=!1,v.type==="scroll-page"){let{clientHeight:y,scrollLeft:b,scrollTop:T}=C,{direction:g}=v,w=g==="down"?y:-y,D=Math.min(Math.max(0,T+w),e);C.scrollTo({top:D,left:b,behavior:"auto"})}else if(v.type==="scroll-end"){let{direction:y}=v,b=y==="end"?e:0;C.scrollTo({top:b,left:C.scrollLeft,behavior:"auto"})}}},[]);return{scrollbarContainerRef:h,contentContainerRef:m,requestScroll:x}};import{useCallback as Dy,useRef as My}from"react";var xc=({columns:n,getRowAtPosition:e,setRange:t,viewportMeasurements:r})=>{let o=My(-1),{contentWidth:s,rowCount:i}=r;return{onVerticalScroll:Dy(a=>{let c=e(a);c!==o.current&&(o.current=c,t({from:c,to:c+i}))},[e,t,i])}};var Cc=({config:n,dataSource:e,headerHeight:t,onConfigChange:r,onFeatureEnabled:o,onFeatureInvocation:s,onSelectionChange:i,rowHeight:l,selectionModel:a,...c})=>{let[u]=Ay(e.size),p=be();if(console.log({dispatchLayoutAction:p.toString()}),e===void 0)throw Error("no data source provided to Vuu Table");let d=Wo(()=>mn(e),[e]),{containerRef:f,...m}=er(c),{columns:h,dispatchColumnAction:x,headings:v}=pc(n,e.config),C=Wo(()=>vc(n.columns.map(z=>z.name)),[n.columns]);Iy(()=>{e.on("config",(z,B)=>{x({type:"tableConfig",...z,confirmed:B})})},[e,x]);let{getRowAtPosition:y,getRowOffset:b,setPctScrollTop:T,...g}=rr({columns:h,headerHeight:t,headings:v,rowCount:u,rowHeight:l,size:m.innerSize});console.log(`useTable ${g.maxScrollContainerScrollHorizontal}, ${g.maxScrollContainerScrollVertical}`);let w=ac({from:0,to:g.rowCount+1}),{data:D,setRange:P}=lc({dataSource:e,initialRange:w});Wo(()=>{let{range:{from:z,to:B}}=e;g.rowCount!==B-1-z&&(e.range={from:z,to:z+g.rowCount+1})},[e,g.rowCount]);let E=kt(z=>{Va(z)?p({type:"set-props",path:"#context-panel",props:{expanded:!0,context:"column-settings",column:z.column,title:"Column Settings"}}):Ba(z)?p({type:"set-props",path:"#context-panel",props:{expanded:!0,context:"table-settings",title:"DataGrid Settings"}}):x(z)},[x,p]),R=hn({dataSource:e,onPersistentColumnOperation:E}),{onVerticalScroll:S}=xc({columns:h,getRowAtPosition:y,setRange:P,viewportMeasurements:g}),M=kt(z=>{S(z)},[S]),{requestScroll:I,...L}=yc({maxScrollLeft:g.maxScrollContainerScrollHorizontal,maxScrollTop:g.maxScrollContainerScrollVertical,onVerticalScroll:M}),[k]=Py(),O=kt(z=>{let B=z.target,W=B==null?void 0:B.closest("div[role='cell']"),Q=B==null?void 0:B.closest("div[role='row']");if(W&&Q){let F=vc(h),$=Array.from(Q.childNodes).indexOf(W),G=h[$];k(z,"grid",{columnMap:F,columnName:G})}},[h,k]),A=kt((z,B=!1,W)=>{e&&(e.sort=Ly(e.sort,z,B,W))},[e]),N=kt(z=>{var G;let W=z.target.closest(".TableNext-col-header"),Q=parseInt((G=W==null?void 0:W.dataset.idx)!=null?G:"-1"),F=ky(h,Q),$=z.shiftKey;F&&A(F,$)},[h,A]),H=kt(z=>{e.select(z),i==null||i(z)},[e,i]),V=tr({onSelectionChange:H,selectionModel:a});return{columnMap:C,columns:h,containerRef:f,containerMeasurements:m,data:D,handleContextMenuAction:R,menuBuilder:d,onContextMenu:O,onHeaderClick:N,onRowClick:V,scrollProps:L,viewportMeasurements:g}};import{jsx as Le,jsxs as Tc}from"react/jsx-runtime";var Pe="vuuTableNext",{IDX:zy,RENDER_IDX:Fy}=Hy,$y=({className:n,config:e,dataSource:t,headerHeight:r=25,height:o,id:s,onConfigChange:i,onFeatureEnabled:l,onFeatureInvocation:a,onSelectionChange:c,onShowConfigEditor:u,renderBufferSize:p=0,rowHeight:d=20,selectionModel:f="extended",style:m,width:h,...x})=>{let{columnMap:v,columns:C,containerMeasurements:{cssSize:y,innerSize:b},containerRef:T,data:g,handleContextMenuAction:w,onHeaderClick:D,onRowClick:P,menuBuilder:E,scrollProps:R,viewportMeasurements:S,...M}=Cc({config:e,dataSource:t,renderBufferSize:p,headerHeight:r,height:o,onConfigChange:i,onFeatureEnabled:l,onFeatureInvocation:a,onSelectionChange:c,rowHeight:d,selectionModel:f,width:h}),I=b===void 0,L=()=>I?{"--table-css-height":`${y.height}`,"--table-css-width":`${y.width}`}:{...m,"--content-height":`${S.contentHeight}px`,"--horizontal-scrollbar-height":`${S.horizontalScrollbarHeight}px`,"--content-width":`${S.contentWidth}px`,"--pinned-width-left":`${S.pinnedWidthLeft}px`,"--pinned-width-right":`${S.pinnedWidthRight}px`,"--header-height":`${r}px`,"--row-height":`${d}px`,"--table-css-height":`${y==null?void 0:y.height}`,"--table-css-width":`${y==null?void 0:y.width}`,"--table-height":`${b==null?void 0:b.height}px`,"--table-width":`${b==null?void 0:b.width}px`,"--total-header-height":`${S.totalHeaderHeight}px`,"--vertical-scrollbar-width":`${S.verticalScrollbarWidth}px`,"--viewport-body-height":`${S.viewportBodyHeight}px`};return console.log("%cTableNext render","color:red;font-weight:bold;"),Ny(()=>{console.log("%cTableNext actual render","background-color:red;color: white;font-weight:bold;")}),Le(Oy,{menuActionHandler:w,menuBuilder:E,children:I?Le("div",{...x,className:Pe,style:L(),ref:T}):Tc("div",{...x,className:Pe,style:L(),ref:T,children:[Le("div",{className:`${Pe}-scrollbarContainer`,ref:R.scrollbarContainerRef,children:Le("div",{className:`${Pe}-scrollbarContent`})}),Le("div",{className:`${Pe}-contentContainer`,ref:R.contentContainerRef,children:Tc("div",{...M,className:`${Pe}-table`,children:[Le("div",{className:`${Pe}-col-headings`,children:Le("div",{className:`${Pe}-col-headers`,role:"row",children:C.map((k,O)=>Le(oc,{classBase:Pe,column:k,idx:O,onClick:D},k.name))})}),Le("div",{className:`${Pe}-body`,children:g.map(k=>Le(Bo,{columnMap:v,columns:C,onClick:P,row:k,offset:d*k[zy]+r},k[Fy]))})]})})]})})};export{at as ColumnResizer,y1 as Table,$y as TableNext,mn as buildContextMenuDescriptors,Va as isShowColumnSettings,Ba as isShowTableSettings,er as useMeasuredContainer,tr as useSelection,vt as useTableColumnResize,hn as useTableContextMenu,Ka as useTableModel,rr as useTableViewport};
|
|
21
|
+
`);u===null?console.log("[useViewportTracking], is this virtualised ? we're going to have to know rowHeight"):l(u)}},[e,t,l]),Dc(()=>{},[n]);let c=ms(({height:u,scrollHeight:d})=>{s.current=u,i.current=d},[]);return ht(t,Jb,c,!0),r};import{useCallback as Gc,useRef as fy}from"react";import{useCallback as Rn,useMemo as zc,useRef as Fc}from"react";var Ic=({id:t})=>{let e=t.lastIndexOf("-");if(e!==-1){let o=t.slice(e+1).split(".");return o.length===1?null:(o.pop(),`${t.slice(0,e)}-${o.join(".")}`)}else if((e=t.lastIndexOf("/"))!==-1)return t.slice(0,e)},Pc=t=>t.childNodes!==void 0;var fs=t=>t.header===!0,ey=new Set([".","/"]),Lc=(t,e)=>e.startsWith(t.id)?ey.has(e.charAt(t.id.length)):!1,bt=(t,e)=>{for(let n of t){if(n.id===e)return n;if(Lc(n,e))return bt(n.childNodes,e)}},Ao=(t,e)=>{let n=typeof e=="string"?e:e.id;for(let o=0;o<t.length;o++)if(t[o].id===n)return o},Oo=(t,e,n)=>{let o;return t.map(s=>s.id===e?{...s,...n}:Lc(s,e)?(o=Oo(s.childNodes,e,n),{...s,childNodes:o}):s)};import{useControlled as ly}from"@salt-ds/core";function ty(t,...e){let n=new Set(t);for(let o of e)for(let r of o)n.add(r);return n}var hs="ArrowUp",kc="ArrowDown",Kt="ArrowLeft";var Hc="ArrowRight",No="Enter";var ny="Delete",oy=new Set([No,ny]),ry=new Set(["Tab"]),sy=new Set(["ArrowRight","ArrowLeft"]),Ac=new Set(["Home","End","ArrowDown","ArrowUp"]),Oc=new Set(["Home","End","ArrowRight","ArrowLeft"]),iy=new Set(["F1","F2","F3","F4","F5","F6","F7","F8","F9","F10","F11","F12"]),uF=ty(oy,Oc,Ac,sy,iy,ry);var Nc=({key:t},e="vertical")=>(e==="vertical"?Ac:Oc).has(t);function Vc(t,e,n){return e===hs||e===Kt?n>0?n-1:n:n===null?0:n===t-1?n:n+1}var ay=t=>!t.header&&!t.childNodes,cy=t=>ay(t)||t.expanded!==void 0,$c=({defaultHighlightedIdx:t=-1,highlightedIdx:e,treeNodes:n,onHighlight:o,onKeyboardNavigation:r,selected:s=[]})=>{let{bwd:i,fwd:l}=zc(()=>({bwd:hs,fwd:kc}),[]),[a,c,u]=ly({controlled:e,default:t,name:"highlightedIdx"}),d=Rn(b=>{o==null||o(b),c(b)},[o,c]),p=Rn((b=l,T=b===l?-1:n.length)=>{let x=Vc(n.length,b,T);for(;x!==-1&&(b===l&&x<n.length||b===i&&x>0)&&!cy(n[x]);)x=Vc(n.length,b,x);return x},[i,l,n]),m=Fc(!0),f=Fc(!1),h=b=>f.current=b,g=Rn(()=>{if(f.current)f.current=!1;else if(s.length>0){let b=bt(n,s[0]);if(b){let T=Ao(n,b);d(T)}}else d(p())},[n,p,s,d]),y=Rn(b=>{let T=p(b.key,a);T!==a&&(d(T),r==null||r(b,T))},[a,p,r,d]),v=Rn(b=>{n.length>0&&Nc(b,"vertical")&&(b.preventDefault(),b.stopPropagation(),m.current=!0,y(b))},[n,y]),C=zc(()=>({onBlur:()=>{d(-1)},onFocus:g,onKeyDown:v,onMouseDownCapture:()=>{m.current=!1,h(!0)},onMouseMove:()=>{m.current&&(m.current=!1)},onMouseLeave:()=>{m.current=!0,h(!1),d(-1)}}),[g,v,d]);return{focusVisible:m.current?a:-1,controlledHighlighting:u,highlightedIdx:a,hiliteItemAtIndex:d,keyBoardNavigation:m,listProps:C,setIgnoreFocus:h}};import{useRef as gs,useState as uy}from"react";var zo=(t,e=[],n={value:0})=>{let o=!1;for(let r of t)o&&!fs(r)||(e[n.value]=r,n.value+=1,o=!1,fs(r)&&r.expanded===!1?o=!0:Pc(r)&&bs(r)&&zo(r.childNodes,e,n));return e},Bc=t=>{let e=gs(t),n=gs(t),o=gs(zo(t)),[,r]=uy({});t!==e.current&&(e.current=t,n.current=t,o.current=zo(t));let s=i=>{n.current=i,o.current=zo(i),r({})};return{data:n.current,indexPositions:o.current,setData:s}};import{useCallback as Dn,useRef as Kc}from"react";var dy={},py=t=>t&&t.hasAttribute("aria-expanded"),Wc=({collapsibleHeaders:t,highlightedIdx:e,treeNodes:n,setVisibleData:o,source:r})=>{let s=Kc(r),i=Kc(s.current),l=Dn(f=>{o(i.current=f)},[o]),a=Dn((f,{id:h})=>Oo(f,h,{expanded:!0}),[]),c=Dn((f,{id:h})=>Oo(f,h,{expanded:!1}),[]),u=Dn(f=>{if(f.key===Hc||f.key===No){let h=n[e];h&&h.expanded===!1&&(f.preventDefault(),l(a(i.current,h)))}if(f.key===Kt||f.key===No){let h=n[e];h&&h.expanded&&(f.preventDefault(),l(c(i.current,h)))}},[c,a,e,n,l]),d=t?{onKeyDown:u}:dy,m={onClick:Dn(f=>{let h=ds(f.target);if(py(h)){f.stopPropagation(),f.preventDefault();let g=bt(r,h.id);(g==null?void 0:g.expanded)===!1?l(a(r,g)):(g==null?void 0:g.expanded)===!0&&l(c(r,g))}},[c,a,l,r])};return{listHandlers:d,listItemHandlers:m}};import{useCallback as my}from"react";var _c=({highlightedIdx:t,hiliteItemAtIndex:e,indexPositions:n,source:o})=>({listHandlers:{onKeyDown:my(i=>{if(i.key===Kt){let l=n[t],a=Ic(l);if(a){i.preventDefault();let c=bt(o,a);if(c){let u=Ao(n,c);u!==void 0&&e(u)}}}},[t,e,n,o])}});var hy=[],Uc=({defaultSelected:t,sourceWithIds:e,onChange:n,onHighlight:o,selected:r,selection:s})=>{let i=fy(hy),l=Bc(e),a=(C,b)=>{var T,x;(x=(T=p.listHandlers).onKeyboardNavigation)==null||x.call(T,C,b)},{highlightedIdx:c,...u}=$c({treeNodes:l.indexPositions,onHighlight:o,onKeyboardNavigation:a,selected:i.current}),d=Wc({collapsibleHeaders:!0,highlightedIdx:c,treeNodes:l.indexPositions,setVisibleData:l.setData,source:l.data}),p=Rc({defaultSelected:t,highlightedIdx:c,treeNodes:l.indexPositions,onChange:n,selected:r,selection:s}),m=_c({source:l.data,highlightedIdx:c,hiliteItemAtIndex:u.hiliteItemAtIndex,indexPositions:l.indexPositions}),f=Gc(C=>{var b,T,x;(b=d.listItemHandlers)==null||b.onClick(C),C.defaultPrevented||(x=(T=p.listItemHandlers)==null?void 0:T.onClick)==null||x.call(T,C)},[d,p]),h=Gc(C=>{var b,T,x,w,R,M,E,I;(T=(b=u.listProps).onKeyDown)==null||T.call(b,C),C.defaultPrevented||(w=(x=p.listHandlers).onKeyDown)==null||w.call(x,C),C.defaultPrevented||(M=(R=d.listHandlers).onKeyDown)==null||M.call(R,C),C.defaultPrevented||(I=(E=m.listHandlers).onKeyDown)==null||I.call(E,C)},[d.listHandlers,u.listProps,p.listHandlers,m.listHandlers]),g=()=>{var C;return c===void 0||c===-1||(C=l.indexPositions[c])==null?void 0:C.id};i.current=p.selected;let y={"aria-activedescendant":g(),onBlur:u.listProps.onBlur,onFocus:u.listProps.onFocus,onKeyDown:h,onMouseDownCapture:u.listProps.onMouseDownCapture,onMouseLeave:u.listProps.onMouseLeave,onMouseMove:u.listProps.onMouseMove},v={onClick:f};return{focusVisible:u.focusVisible,highlightedIdx:c,hiliteItemAtIndex:u.hiliteItemAtIndex,listProps:y,listItemHandlers:v,selected:p.selected,visibleData:l.data}};import{jsx as tt,jsxs as ys}from"react/jsx-runtime";import{createElement as Ty}from"react";var et="vuuTree",bs=t=>t.expanded===!0,Xc=({children:t,idx:e,...n})=>tt("li",{...n,children:t}),Cy=yy(function({allowDragDrop:e,className:n,defaultSelected:o,groupSelection:r="none",id:s,onHighlight:i,onSelectionChange:l,revealSelected:a,selected:c,selection:u="single",source:d,...p},m){var H;let f=by(s),h=xy(null),[,g,y]=Tc(d,f,{revealSelected:a?(H=c!=null?c:o)!=null?H:!1:void 0}),v=(P,k)=>{if(l){let N=k.map(O=>y(O)).filter(O=>O!==void 0);l(N)}},{focusVisible:C,highlightedIdx:b,hiliteItemAtIndex:T,listProps:x,listItemHandlers:w,selected:R,visibleData:M}=Uc({defaultSelected:o,groupSelection:r,onChange:v,onHighlight:i,selected:c,selection:u,sourceWithIds:g});Mc(h,b);let I={...{onMouseEnter:P=>{let k=P.target,N=Cc(k);T(N)}},...w,role:"treeitem"},S=Ec(r);function D(P,k,N){P.push(ys(Xc,{...I,...vy(k,N,b,R,C),children:[k.icon?tt("span",{className:`${et}Node-icon`,"data-icon":k.icon}):null,tt("span",{children:k.label})]})),N.value+=1}function L(P,k,N,O,F){let{value:$}=N;N.value+=1,P.push(Ty(Xc,{...w,"aria-expanded":k.expanded,"aria-level":k.level,"aria-selected":R.includes(O)||void 0,className:xs(`${et}Node`,{focusVisible:C===$,[`${et}Node-toggle`]:!S}),"data-idx":$,"data-highlighted":$===b||void 0,"data-selectable":!0,id:O,key:`header-${$}`},S?ys("div",{className:`${et}Node-label`,children:[tt("span",{className:`${et}Node-toggle`}),F]}):ys("div",{className:`${et}Node-label`,children:[k.icon?tt("span",{className:`${et}Node-icon`,"data-icon":k.icon}):null,tt("span",{children:F})]}),tt("ul",{role:"group",children:bs(k)?A(k.childNodes,N):""})))}function A(P,k={value:0}){if((P==null?void 0:P.length)>0){let N=[];for(let O of P)O.childNodes?L(N,O,k,O.id,O.label):D(N,O,k);return N}}return tt("ul",{...p,...x,className:xs(et,n),id:`Tree-${f}`,ref:gy(h,m),role:"tree",tabIndex:0,children:A(M)})}),vy=(t,e,n,o,r,s)=>({id:t.id,key:t.id,"aria-level":t.level,"aria-selected":o.includes(t.id)||void 0,"data-idx":e.value,"data-highlighted":e.value===n||void 0,className:xs("vuuTreeNode",s,{focusVisible:r===e.value})});Cy.displayName="Tree";import Ey from"classnames";import{memo as Ry,useCallback as Dy,useRef as My,useState as Qc}from"react";import{jsx as Fo}from"react/jsx-runtime";var{KEY:jc}=wy,Cs=Ry(({className:t,column:e,columnMap:n,onClick:o,row:r})=>{let s=My(null),{align:i,CellRenderer:l,key:a,pin:c,editable:u,resizing:d,valueFormatter:p}=e,[m,f]=Qc(!1),h=p(r[a]),[g,y]=Qc(h),v=()=>{var M;(M=s.current)==null||M.focus()},C=M=>{M.key==="Enter"&&f(!0)},b=Dy(M=>{o==null||o(M,e)},[e,o]),T=()=>{f(!0)},x=(M="",E="",I=!0,S=!1)=>{var D;f(!1),S?y(M):E!==M&&y(E),I===!1&&((D=s.current)==null||D.focus())},w=Ey(t,{vuuAlignRight:i==="right",vuuPinFloating:c==="floating",vuuPinLeft:c==="left",vuuPinRight:c==="right","vuuTableCell-resizing":d})||void 0,R=Sy(e);return u?Fo("div",{className:w,"data-editable":!0,role:"cell",style:R,onKeyDown:C,children:Fo(It,{editing:m,value:g,onChange:y,onMouseDownCapture:v,onEnterEditMode:T,onExitEditMode:x,onKeyDown:C,ref:s,tabIndex:0},"title")}):Fo("div",{className:w,role:"cell",style:R,onClick:b,children:l?Fo(l,{column:e,columnMap:n,row:r}):h})},Iy);Cs.displayName="TableCell";function Iy(t,e){return t.column===e.column&&t.onClick===e.onClick&&t.row[jc]===e.row[jc]&&t.row[t.column.key]===e.row[e.column.key]}import{getColumnStyle as Py,getGroupValueAndOffset as Ly,metadataKeys as ky}from"@vuu-ui/vuu-utils";import{useCallback as Hy}from"react";import{jsx as vs,jsxs as Oy}from"react/jsx-runtime";var{IS_LEAF:Ay}=ky,Yc=({column:t,onClick:e,row:n})=>{let{columns:o}=t,[r,s]=Ly(o,n),i=Hy(u=>{e==null||e(u,t)},[t,e]),l=Py(t),a=n[Ay],c=Array(s).fill(0).map((u,d)=>vs("span",{className:"vuuTableGroupCell-spacer"},d));return Oy("div",{className:"vuuTableGroupCell vuuPinLeft",onClick:a?void 0:i,role:"cell",style:l,children:[c,a?null:vs("span",{className:"vuuTableGroupCell-toggle","data-icon":"triangle-right"}),vs("span",{children:r})]})};import{jsx as Jc,jsxs as Gy}from"react/jsx-runtime";var{IDX:Ky,IS_EXPANDED:Wy,SELECTED:_y}=Fy,Vo="vuuTableRow",eu=By(function({columnMap:e,columns:n,offset:o,onClick:r,onToggleGroup:s,virtualColSpan:i=0,row:l}){let{[Ky]:a,[Wy]:c,[_y]:u}=l,d=$y(Vo,{[`${Vo}-even`]:a%2===0,[`${Vo}-expanded`]:c,[`${Vo}-preSelected`]:u===2}),p=qc(f=>{let h=f.shiftKey,g=f.ctrlKey||f.metaKey;r==null||r(l,h,g)},[r,l]),m=qc((f,h)=>{(Zc(h)||zy(h,l))&&(f.stopPropagation(),s==null||s(l,h))},[s,l]);return Gy("div",{"aria-selected":u===1?!0:void 0,"aria-rowindex":a,className:d,onClick:p,role:"row",style:{transform:`translate3d(0px, ${o}px, 0px)`},children:[i>0?Jc("div",{role:"cell",style:{width:i}}):null,n.filter(Vy).map(f=>{let h=Zc(f),g=Ny(f);return Jc(h?Yc:Cs,{column:f,columnMap:e,onClick:h||g?m:void 0,row:l},f.name)})]})});import ou from"classnames";import{useRef as Uy}from"react";import{useCallback as Ts,useRef as tu}from"react";var $o=({column:t,onResize:e,rootRef:n})=>{let o=tu(0),r=tu(!1),{name:s}=t,i=Ts(()=>{if(e&&n.current){console.log("handleResizeStart");let{width:c}=n.current.getBoundingClientRect();o.current=Math.round(c),r.current=!0,e==null||e("begin",s)}},[s,e,n]),l=Ts((c,u)=>{if(n.current&&e){let{width:d}=n.current.getBoundingClientRect(),p=Math.round(d)+u;p!==o.current&&p>0&&(e("resize",s,p),o.current=p)}},[s,e,n]),a=Ts(()=>{e&&(e("end",s,o.current),setTimeout(()=>{r.current=!1},100))},[s,e]);return{isResizing:r.current,onDrag:l,onDragStart:i,onDragEnd:a}};import{jsx as yt,jsxs as su}from"react/jsx-runtime";var nt="vuuTable-groupHeaderCell",nu=({column:t,onClick:e,...n})=>yt("span",{...n,className:`${nt}-close`,"data-icon":"close-circle",onClick:()=>e==null?void 0:e(t)}),Xy=t=>{let{children:e,column:n,className:o}=t;return su("div",{className:ou(`${nt}-col`,o),role:"columnheader",children:[yt("span",{className:`${nt}-label`,children:n.name}),e]})},ru=({column:t,className:e,onRemoveColumn:n,onResize:o,...r})=>{let s=Uy(null),{isResizing:i,...l}=$o({column:t,onResize:o,rootRef:s}),a=ou(nt,e,{vuuPinLeft:t.pin==="left",[`${nt}-right`]:t.align==="right",[`${nt}-resizing`]:t.resizing,[`${nt}-pending`]:t.groupConfirmed===!1}),{columns:c}=t;return yt("div",{className:a,ref:s,...r,children:su("div",{className:`${nt}-inner`,children:[c.map(u=>yt(Xy,{column:u,children:c.length>1?yt(nu,{column:u,onClick:n}):null},u.key)),yt(nu,{"data-align":"end",onClick:n}),t.resizeable!==!1?yt(Wn,{...l}):null]})})};import qy from"classnames";import{useCallback as Ss,useRef as cu}from"react";import iu from"classnames";var lu="vuuSortIndicator",Bo=({sorted:t})=>{if(!t)return null;let e=typeof t=="number"?t<0?"dsc":"asc":t==="A"?"asc":"dsc";return typeof t=="number"?React.createElement("div",{className:iu(lu,"multi-col",e)},React.createElement("span",{"data-icon":`sorted-${e}`}),React.createElement("span",{className:"vuuSortPosition"},Math.abs(t))):React.createElement("div",{className:iu(lu,"single-col")},React.createElement("span",{"data-icon":`sorted-${e}`}))};import{useContextMenu as Jy}from"@vuu-ui/vuu-popups";import{useContextMenu as Qy}from"@vuu-ui/vuu-popups";import jy from"classnames";import{useCallback as Yy}from"react";import{jsx as Zy}from"react/jsx-runtime";var au=({column:t,filter:e})=>{let[n]=Qy(),o=Yy(r=>{r.stopPropagation(),n(r,"filter",{column:t,filter:e})},[t,e,n]);return t.filter?Zy("div",{className:jy("vuuFilterIndicator"),"data-icon":"filter",onClick:o}):null};import{jsx as In,jsxs as ex}from"react/jsx-runtime";var Mn="vuuTable-headerCell",uu=({column:t,className:e,onClick:n,onDragStart:o,onResize:r,...s})=>{let i=cu(null),{isResizing:l,...a}=$o({column:t,onResize:r,rootRef:i}),[c]=Jy(),u=cu(null),d=g=>{c(g,"header",{column:t})},p=Ss(g=>!l&&(n==null?void 0:n(g)),[l,n]),m=Ss(g=>{u.current=window.setTimeout(()=>{o==null||o(g),u.current=null},500)},[o]),f=Ss(()=>{u.current!==null&&(window.clearTimeout(u.current),u.current=null)},[]),h=qy(Mn,e,{vuuPinFloating:t.pin==="floating",vuuPinLeft:t.pin==="left",vuuPinRight:t.pin==="right",vuuEndPin:t.endPin,[`${Mn}-resizing`]:t.resizing,[`${Mn}-right`]:t.align==="right"});return In("div",{className:h,...s,onClick:p,onContextMenu:d,onMouseDown:m,onMouseUp:f,ref:i,children:ex("div",{className:`${Mn}-inner`,children:[In(au,{column:t}),In("div",{className:`${Mn}-label`,children:t.label}),In(Bo,{sorted:t.sorted}),t.resizeable!==!1?In(Wn,{...a}):null]})})};import{jsx as xt,jsxs as mu}from"react/jsx-runtime";var ws="vuuTable",{RENDER_IDX:lx}=rx,fu=({columns:t,columnsWithinViewport:e,data:n,getRowOffset:o,headings:r,onColumnResize:s,onHeaderCellDragStart:i,onContextMenu:l,onRemoveColumnFromGroupBy:a,onRowClick:c,onSort:u,onToggleGroup:d,tableId:p,virtualColSpan:m=0,rowCount:f})=>{let h=du(C=>{i==null||i(C)},[i]),g=pu(()=>t.filter(sx),[t]),y=pu(()=>tx(t),[t]),v=du(C=>{var M;let T=C.target.closest(".vuuTable-headerCell"),x=parseInt((M=T==null?void 0:T.dataset.idx)!=null?M:"-1"),w=ix(t,x),R=C.shiftKey;w&&u(w,R)},[t,u]);return mu("div",{"aria-rowcount":f,className:`${ws}-table`,role:"table",children:[mu("div",{className:`${ws}-headers`,role:"rowGroup",children:[r.map((C,b)=>xt("div",{className:"vuuTable-heading",children:C.map(({label:T,width:x},w)=>xt("div",{className:"vuuTable-headingCell",style:{width:x},children:T},w))},b)),xt("div",{role:"row",children:g.map((C,b)=>{let T=nx(C);return ox(C)?xt(ru,{column:C,"data-idx":b,onRemoveColumn:a,onResize:s,role:"columnHeader",style:T},b):xt(uu,{column:C,"data-idx":b,id:`${p}-${b}`,onClick:v,onDragStart:h,onResize:s,role:"columnHeader",style:T},b)})})]}),xt("div",{className:`${ws}-body`,onContextMenu:l,role:"rowGroup",children:n==null?void 0:n.map(C=>xt(eu,{columnMap:y,columns:e,offset:o(C),onClick:c,virtualColSpan:m,onToggleGroup:d,row:C},C[lx]))})]})};import{useContextMenu as KC}from"@vuu-ui/vuu-popups";import{applySort as WC,buildColumnMap as _C,isJsonGroup as GC,metadataKeys as UC,moveItem as XC}from"@vuu-ui/vuu-utils";import{useCallback as Oe,useEffect as id,useMemo as QC,useRef as Zs,useState as jC}from"react";import{getFullRange as q$,metadataKeys as ax,WindowRange as J$}from"@vuu-ui/vuu-utils";import{useCallback as tB,useEffect as nB,useMemo as oB,useRef as rB,useState as sB}from"react";var{SELECTED:iB}=ax;import{useCallback as cB,useEffect as uB,useState as dB}from"react";import{ConnectionManager as mB}from"@vuu-ui/vuu-data";import{useCallback as bB,useEffect as yB,useState as xB}from"react";import{ConnectionManager as vB}from"@vuu-ui/vuu-data";import{useCallback as wB}from"react";import{makeRpcCall as RB}from"@vuu-ui/vuu-data";var cx=0,Pn=class{constructor(e,n){this.from=e,this.to=n}},ie=class{constructor(e={}){this.id=cx++,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=xe.match(e)),n=>{let o=e(n);return o===void 0?null:[this,o]}}};ie.closedBy=new ie({deserialize:t=>t.split(" ")});ie.openedBy=new ie({deserialize:t=>t.split(" ")});ie.group=new ie({deserialize:t=>t.split(" ")});ie.contextHash=new ie({perNode:!0});ie.lookAhead=new ie({perNode:!0});ie.mounted=new ie({perNode:!0});var ux=Object.create(null),xe=class{constructor(e,n,o,r=0){this.name=e,this.props=n,this.id=o,this.flags=r}static define(e){let n=e.props&&e.props.length?Object.create(null):ux,o=(e.top?1:0)|(e.skipped?2:0)|(e.error?4:0)|(e.name==null?8:0),r=new xe(e.name||"",n,e.id,o);if(e.props){for(let s of e.props)if(Array.isArray(s)||(s=s(r)),s){if(s[0].perNode)throw new RangeError("Can't store a per-node prop on a node type");n[s[0].id]=s[1]}}return r}prop(e){return this.props[e.id]}get isTop(){return(this.flags&1)>0}get isSkipped(){return(this.flags&2)>0}get isError(){return(this.flags&4)>0}get isAnonymous(){return(this.flags&8)>0}is(e){if(typeof e=="string"){if(this.name==e)return!0;let n=this.prop(ie.group);return n?n.indexOf(e)>-1:!1}return this.id==e}static match(e){let n=Object.create(null);for(let o in e)for(let r of o.split(" "))n[r]=e[o];return o=>{for(let r=o.prop(ie.group),s=-1;s<(r?r.length:0);s++){let i=n[s<0?o.name:r[s]];if(i)return i}}}};xe.none=new xe("",Object.create(null),0,8);var Wt=class{constructor(e){this.types=e;for(let n=0;n<e.length;n++)if(e[n].id!=n)throw new RangeError("Node type ids should correspond to array positions when creating a node set")}extend(...e){let n=[];for(let o of this.types){let r=null;for(let s of e){let i=s(o);i&&(r||(r=Object.assign({},o.props)),r[i[0].id]=i[1])}n.push(r?new xe(o.name,r,o.id,o.flags):o)}return new Wt(n)}},Ko=new WeakMap,hu=new WeakMap,fe;(function(t){t[t.ExcludeBuffers=1]="ExcludeBuffers",t[t.IncludeAnonymous=2]="IncludeAnonymous",t[t.IgnoreMounts=4]="IgnoreMounts",t[t.IgnoreOverlays=8]="IgnoreOverlays"})(fe||(fe={}));var he=class{constructor(e,n,o,r,s){if(this.type=e,this.children=n,this.positions=o,this.length=r,this.props=null,s&&s.length){this.props=Object.create(null);for(let[i,l]of s)this.props[typeof i=="number"?i:i.id]=l}}toString(){let e=this.prop(ie.mounted);if(e&&!e.overlay)return e.tree.toString();let n="";for(let o of this.children){let r=o.toString();r&&(n&&(n+=","),n+=r)}return this.type.name?(/\W/.test(this.type.name)&&!this.type.isError?JSON.stringify(this.type.name):this.type.name)+(n.length?"("+n+")":""):n}cursor(e=0){return new Gt(this.topNode,e)}cursorAt(e,n=0,o=0){let r=Ko.get(this)||this.topNode,s=new Gt(r);return s.moveTo(e,n),Ko.set(this,s._tree),s}get topNode(){return new He(this,0,0,null)}resolve(e,n=0){let o=_t(Ko.get(this)||this.topNode,e,n,!1);return Ko.set(this,o),o}resolveInner(e,n=0){let o=_t(hu.get(this)||this.topNode,e,n,!0);return hu.set(this,o),o}iterate(e){let{enter:n,leave:o,from:r=0,to:s=this.length}=e,i=e.mode||0,l=(i&fe.IncludeAnonymous)>0;for(let a=this.cursor(i|fe.IncludeAnonymous);;){let c=!1;if(a.from<=s&&a.to>=r&&(!l&&a.type.isAnonymous||n(a)!==!1)){if(a.firstChild())continue;c=!0}for(;c&&o&&(l||!a.type.isAnonymous)&&o(a),!a.nextSibling();){if(!a.parent())return;c=!0}}}prop(e){return e.perNode?this.props?this.props[e.id]:void 0:this.type.prop(e)}get propValues(){let e=[];if(this.props)for(let n in this.props)e.push([+n,this.props[n]]);return e}balance(e={}){return this.children.length<=8?this:Ms(xe.none,this.children,this.positions,0,this.children.length,0,this.length,(n,o,r)=>new he(this.type,n,o,r,this.propValues),e.makeTree||((n,o,r)=>new he(xe.none,n,o,r)))}static build(e){return dx(e)}};he.empty=new he(xe.none,[],[],0);var Ln=class{constructor(e,n){this.buffer=e,this.index=n}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 Ln(this.buffer,this.index)}},Qe=class{constructor(e,n,o){this.buffer=e,this.length=n,this.set=o}get type(){return xe.none}toString(){let e=[];for(let n=0;n<this.buffer.length;)e.push(this.childString(n)),n=this.buffer[n+3];return e.join(",")}childString(e){let n=this.buffer[e],o=this.buffer[e+3],r=this.set.types[n],s=r.name;if(/\W/.test(s)&&!r.isError&&(s=JSON.stringify(s)),e+=4,o==e)return s;let i=[];for(;e<o;)i.push(this.childString(e)),e=this.buffer[e+3];return s+"("+i.join(",")+")"}findChild(e,n,o,r,s){let{buffer:i}=this,l=-1;for(let a=e;a!=n&&!(bu(s,r,i[a+1],i[a+2])&&(l=a,o>0));a=i[a+3]);return l}slice(e,n,o){let r=this.buffer,s=new Uint16Array(n-e),i=0;for(let l=e,a=0;l<n;){s[a++]=r[l++],s[a++]=r[l++]-o;let c=s[a++]=r[l++]-o;s[a++]=r[l++]-e,i=Math.max(i,c)}return new Qe(s,i,this.set)}};function bu(t,e,n,o){switch(t){case-2:return n<e;case-1:return o>=e&&n<e;case 0:return n<e&&o>e;case 1:return n<=e&&o>e;case 2:return o>e;case 4:return!0}}function yu(t,e){let n=t.childBefore(e);for(;n;){let o=n.lastChild;if(!o||o.to!=n.to)break;o.type.isError&&o.from==o.to?(t=n,n=o.prevSibling):n=o}return t}function _t(t,e,n,o){for(var r;t.from==t.to||(n<1?t.from>=e:t.from>e)||(n>-1?t.to<=e:t.to<e);){let i=!o&&t instanceof He&&t.index<0?null:t.parent;if(!i)return t;t=i}let s=o?0:fe.IgnoreOverlays;if(o)for(let i=t,l=i.parent;l;i=l,l=i.parent)i instanceof He&&i.index<0&&((r=l.enter(e,n,s))===null||r===void 0?void 0:r.from)!=i.from&&(t=l);for(;;){let i=t.enter(e,n,s);if(!i)return t;t=i}}var He=class{constructor(e,n,o,r){this._tree=e,this.from=n,this.index=o,this._parent=r}get type(){return this._tree.type}get name(){return this._tree.type.name}get to(){return this.from+this._tree.length}nextChild(e,n,o,r,s=0){for(let i=this;;){for(let{children:l,positions:a}=i._tree,c=n>0?l.length:-1;e!=c;e+=n){let u=l[e],d=a[e]+i.from;if(bu(r,o,d,d+u.length)){if(u instanceof Qe){if(s&fe.ExcludeBuffers)continue;let p=u.findChild(0,u.buffer.length,n,o-d,r);if(p>-1)return new $e(new Es(i,u,e,d),null,p)}else if(s&fe.IncludeAnonymous||!u.type.isAnonymous||Ds(u)){let p;if(!(s&fe.IgnoreMounts)&&u.props&&(p=u.prop(ie.mounted))&&!p.overlay)return new He(p.tree,d,e,i);let m=new He(u,d,e,i);return s&fe.IncludeAnonymous||!m.type.isAnonymous?m:m.nextChild(n<0?u.children.length-1:0,n,o,r)}}}if(s&fe.IncludeAnonymous||!i.type.isAnonymous||(i.index>=0?e=i.index+n:e=n<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,n,o=0){let r;if(!(o&fe.IgnoreOverlays)&&(r=this._tree.prop(ie.mounted))&&r.overlay){let s=e-this.from;for(let{from:i,to:l}of r.overlay)if((n>0?i<=s:i<s)&&(n<0?l>=s:l>s))return new He(r.tree,r.overlay[0].from+this.from,-1,this)}return this.nextChild(0,1,e,n,o)}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 Gt(this,e)}get tree(){return this._tree}toTree(){return this._tree}resolve(e,n=0){return _t(this,e,n,!1)}resolveInner(e,n=0){return _t(this,e,n,!0)}enterUnfinishedNodesBefore(e){return yu(this,e)}getChild(e,n=null,o=null){let r=_o(this,e,n,o);return r.length?r[0]:null}getChildren(e,n=null,o=null){return _o(this,e,n,o)}toString(){return this._tree.toString()}get node(){return this}matchContext(e){return Go(this,e)}};function _o(t,e,n,o){let r=t.cursor(),s=[];if(!r.firstChild())return s;if(n!=null){for(;!r.type.is(n);)if(!r.nextSibling())return s}for(;;){if(o!=null&&r.type.is(o))return s;if(r.type.is(e)&&s.push(r.node),!r.nextSibling())return o==null?s:[]}}function Go(t,e,n=e.length-1){for(let o=t.parent;n>=0;o=o.parent){if(!o)return!1;if(!o.type.isAnonymous){if(e[n]&&e[n]!=o.name)return!1;n--}}return!0}var Es=class{constructor(e,n,o,r){this.parent=e,this.buffer=n,this.index=o,this.start=r}},$e=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,n,o){this.context=e,this._parent=n,this.index=o,this.type=e.buffer.set.types[e.buffer.buffer[o]]}child(e,n,o){let{buffer:r}=this.context,s=r.findChild(this.index+4,r.buffer[this.index+3],e,n-this.context.start,o);return s<0?null:new $e(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,n,o=0){if(o&fe.ExcludeBuffers)return null;let{buffer:r}=this.context,s=r.findChild(this.index+4,r.buffer[this.index+3],n>0?1:-1,e-this.context.start,n);return s<0?null:new $e(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,n=e.buffer[this.index+3];return n<(this._parent?e.buffer[this._parent.index+3]:e.buffer.length)?new $e(this.context,this._parent,n):this.externalSibling(1)}get prevSibling(){let{buffer:e}=this.context,n=this._parent?this._parent.index+4:0;return this.index==n?this.externalSibling(-1):new $e(this.context,this._parent,e.findChild(n,this.index,-1,0,4))}cursor(e=0){return new Gt(this,e)}get tree(){return null}toTree(){let e=[],n=[],{buffer:o}=this.context,r=this.index+4,s=o.buffer[this.index+3];if(s>r){let i=o.buffer[this.index+1];e.push(o.slice(r,s,i)),n.push(0)}return new he(this.type,e,n,this.to-this.from)}resolve(e,n=0){return _t(this,e,n,!1)}resolveInner(e,n=0){return _t(this,e,n,!0)}enterUnfinishedNodesBefore(e){return yu(this,e)}toString(){return this.context.buffer.childString(this.index)}getChild(e,n=null,o=null){let r=_o(this,e,n,o);return r.length?r[0]:null}getChildren(e,n=null,o=null){return _o(this,e,n,o)}get node(){return this}matchContext(e){return Go(this,e)}},Gt=class{get name(){return this.type.name}constructor(e,n=0){if(this.mode=n,this.buffer=null,this.stack=[],this.index=0,this.bufferNode=null,e instanceof He)this.yieldNode(e);else{this._tree=e.context.parent,this.buffer=e.context;for(let o=e._parent;o;o=o._parent)this.stack.unshift(o.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,n){this.index=e;let{start:o,buffer:r}=this.buffer;return this.type=n||r.set.types[r.buffer[e]],this.from=o+r.buffer[e+1],this.to=o+r.buffer[e+2],!0}yield(e){return e?e instanceof He?(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,n,o){if(!this.buffer)return this.yield(this._tree.nextChild(e<0?this._tree._tree.children.length-1:0,e,n,o,this.mode));let{buffer:r}=this.buffer,s=r.findChild(this.index+4,r.buffer[this.index+3],e,n-this.buffer.start,o);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,n,o=this.mode){return this.buffer?o&fe.ExcludeBuffers?!1:this.enterChild(1,e,n):this.yield(this._tree.enter(e,n,o))}parent(){if(!this.buffer)return this.yieldNode(this.mode&fe.IncludeAnonymous?this._tree._parent:this._tree.parent);if(this.stack.length)return this.yieldBuf(this.stack.pop());let e=this.mode&fe.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:n}=this.buffer,o=this.stack.length-1;if(e<0){let r=o<0?0:this.stack[o]+4;if(this.index!=r)return this.yieldBuf(n.findChild(r,this.index,-1,0,4))}else{let r=n.buffer[this.index+3];if(r<(o<0?n.buffer.length:n.buffer[this.stack[o]+3]))return this.yieldBuf(r)}return o<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 n,o,{buffer:r}=this;if(r){if(e>0){if(this.index<r.buffer.buffer.length)return!1}else for(let s=0;s<this.index;s++)if(r.buffer.buffer[s+3]<this.index)return!1;({index:n,parent:o}=r)}else({index:n,_parent:o}=this._tree);for(;o;{index:n,_parent:o}=o)if(n>-1)for(let s=n+e,i=e<0?-1:o._tree.children.length;s!=i;s+=e){let l=o._tree.children[s];if(this.mode&fe.IncludeAnonymous||l instanceof Qe||!l.type.isAnonymous||Ds(l))return!1}return!0}move(e,n){if(n&&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,n=0){for(;(this.from==this.to||(n<1?this.from>=e:this.from>e)||(n>-1?this.to<=e:this.to<e))&&this.parent(););for(;this.enterChild(1,e,n););return this}get node(){if(!this.buffer)return this._tree;let e=this.bufferNode,n=null,o=0;if(e&&e.context==this.buffer)e:for(let r=this.index,s=this.stack.length;s>=0;){for(let i=e;i;i=i._parent)if(i.index==r){if(r==this.index)return i;n=i,o=s+1;break e}r=this.stack[--s]}for(let r=o;r<this.stack.length;r++)n=new $e(this.buffer,n,this.stack[r]);return this.bufferNode=new $e(this.buffer,n,this.index)}get tree(){return this.buffer?null:this._tree._tree}iterate(e,n){for(let o=0;;){let r=!1;if(this.type.isAnonymous||e(this)!==!1){if(this.firstChild()){o++;continue}this.type.isAnonymous||(r=!0)}for(;r&&n&&n(this),r=this.type.isAnonymous,!this.nextSibling();){if(!o)return;this.parent(),o--,r=!0}}}matchContext(e){if(!this.buffer)return Go(this.node,e);let{buffer:n}=this.buffer,{types:o}=n.set;for(let r=e.length-1,s=this.stack.length-1;r>=0;s--){if(s<0)return Go(this.node,e,r);let i=o[n.buffer[this.stack[s]]];if(!i.isAnonymous){if(e[r]&&e[r]!=i.name)return!1;r--}}return!0}};function Ds(t){return t.children.some(e=>e instanceof Qe||!e.type.isAnonymous||Ds(e))}function dx(t){var e;let{buffer:n,nodeSet:o,maxBufferLength:r=1024,reused:s=[],minRepeatType:i=o.types.length}=t,l=Array.isArray(n)?new Ln(n,n.length):n,a=o.types,c=0,u=0;function d(b,T,x,w,R){let{id:M,start:E,end:I,size:S}=l,D=u;for(;S<0;)if(l.next(),S==-1){let k=s[M];x.push(k),w.push(E-b);return}else if(S==-3){c=M;return}else if(S==-4){u=M;return}else throw new RangeError(`Unrecognized record size: ${S}`);let L=a[M],A,H,P=E-b;if(I-E<=r&&(H=h(l.pos-T,R))){let k=new Uint16Array(H.size-H.skip),N=l.pos-H.size,O=k.length;for(;l.pos>N;)O=g(H.start,k,O);A=new Qe(k,I-H.start,o),P=H.start-b}else{let k=l.pos-S;l.next();let N=[],O=[],F=M>=i?M:-1,$=0,G=I;for(;l.pos>k;)F>=0&&l.id==F&&l.size>=0?(l.end<=G-r&&(m(N,O,E,$,l.end,G,F,D),$=N.length,G=l.end),l.next()):d(E,k,N,O,F);if(F>=0&&$>0&&$<N.length&&m(N,O,E,$,E,G,F,D),N.reverse(),O.reverse(),F>-1&&$>0){let W=p(L);A=Ms(L,N,O,0,N.length,0,I-E,W,W)}else A=f(L,N,O,I-E,D-I)}x.push(A),w.push(P)}function p(b){return(T,x,w)=>{let R=0,M=T.length-1,E,I;if(M>=0&&(E=T[M])instanceof he){if(!M&&E.type==b&&E.length==w)return E;(I=E.prop(ie.lookAhead))&&(R=x[M]+E.length+I)}return f(b,T,x,w,R)}}function m(b,T,x,w,R,M,E,I){let S=[],D=[];for(;b.length>w;)S.push(b.pop()),D.push(T.pop()+x-R);b.push(f(o.types[E],S,D,M-R,I-M)),T.push(R-x)}function f(b,T,x,w,R=0,M){if(c){let E=[ie.contextHash,c];M=M?[E].concat(M):[E]}if(R>25){let E=[ie.lookAhead,R];M=M?[E].concat(M):[E]}return new he(b,T,x,w,M)}function h(b,T){let x=l.fork(),w=0,R=0,M=0,E=x.end-r,I={size:0,start:0,skip:0};e:for(let S=x.pos-b;x.pos>S;){let D=x.size;if(x.id==T&&D>=0){I.size=w,I.start=R,I.skip=M,M+=4,w+=4,x.next();continue}let L=x.pos-D;if(D<0||L<S||x.start<E)break;let A=x.id>=i?4:0,H=x.start;for(x.next();x.pos>L;){if(x.size<0)if(x.size==-3)A+=4;else break e;else x.id>=i&&(A+=4);x.next()}R=H,w+=D,M+=A}return(T<0||w==b)&&(I.size=w,I.start=R,I.skip=M),I.size>4?I:void 0}function g(b,T,x){let{id:w,start:R,end:M,size:E}=l;if(l.next(),E>=0&&w<i){let I=x;if(E>4){let S=l.pos-(E-4);for(;l.pos>S;)x=g(b,T,x)}T[--x]=I,T[--x]=M-b,T[--x]=R-b,T[--x]=w}else E==-3?c=w:E==-4&&(u=w);return x}let y=[],v=[];for(;l.pos>0;)d(t.start||0,t.bufferStart||0,y,v,-1);let C=(e=t.length)!==null&&e!==void 0?e:y.length?v[0]+y[0].length:0;return new he(a[t.topID],y.reverse(),v.reverse(),C)}var gu=new WeakMap;function Wo(t,e){if(!t.isAnonymous||e instanceof Qe||e.type!=t)return 1;let n=gu.get(e);if(n==null){n=1;for(let o of e.children){if(o.type!=t||!(o instanceof he)){n=1;break}n+=Wo(t,o)}gu.set(e,n)}return n}function Ms(t,e,n,o,r,s,i,l,a){let c=0;for(let f=o;f<r;f++)c+=Wo(t,e[f]);let u=Math.ceil(c*1.5/8),d=[],p=[];function m(f,h,g,y,v){for(let C=g;C<y;){let b=C,T=h[C],x=Wo(t,f[C]);for(C++;C<y;C++){let w=Wo(t,f[C]);if(x+w>=u)break;x+=w}if(C==b+1){if(x>u){let w=f[b];m(w.children,w.positions,0,w.children.length,h[b]+v);continue}d.push(f[b])}else{let w=h[C-1]+f[C-1].length-T;d.push(Ms(t,f,h,b,C,T,w,null,a))}p.push(T+v-s)}}return m(e,n,o,r,0),(l||a)(d,p,i)}var Uo=class{startParse(e,n,o){return typeof e=="string"&&(e=new Rs(e)),o=o?o.length?o.map(r=>new Pn(r.from,r.to)):[new Pn(0,0)]:[new Pn(0,e.length)],this.createParse(e,n||[],o)}parse(e,n,o){let r=this.startParse(e,n,o);for(;;){let s=r.advance();if(s)return s}}},Rs=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,n){return this.string.slice(e,n)}};var MB=new ie({perNode:!0});var Xt=class{constructor(e,n,o,r,s,i,l,a,c,u=0,d){this.p=e,this.stack=n,this.state=o,this.reducePos=r,this.pos=s,this.score=i,this.buffer=l,this.bufferBase=a,this.curContext=c,this.lookAhead=u,this.parent=d}toString(){return`[${this.stack.filter((e,n)=>n%3==0).concat(this.state)}]@${this.pos}${this.score?"!"+this.score:""}`}static start(e,n,o=0){let r=e.parser.context;return new Xt(e,[],n,o,o,0,[],0,r?new Xo(r,r.start):null,0,null)}get context(){return this.curContext?this.curContext.context:null}pushState(e,n){this.stack.push(this.state,n,this.bufferBase+this.buffer.length),this.state=e}reduce(e){var n;let o=e>>19,r=e&65535,{parser:s}=this.p,i=s.dynamicPrecedence(r);if(i&&(this.score+=i),o==0){this.pushState(s.getGoto(this.state,r,!0),this.reducePos),r<s.minRepeatTerm&&this.storeNode(r,this.reducePos,this.reducePos,4,!0),this.reduceContext(r,this.reducePos);return}let l=this.stack.length-(o-1)*3-(e&262144?6:0),a=l?this.stack[l-2]:this.p.ranges[0].from,c=this.reducePos-a;c>=2e3&&!(!((n=this.p.parser.nodeSet.types[r])===null||n===void 0)&&n.isAnonymous)&&(a==this.p.lastBigReductionStart?(this.p.bigReductionCount++,this.p.lastBigReductionSize=c):this.p.lastBigReductionSize<c&&(this.p.bigReductionCount=1,this.p.lastBigReductionStart=a,this.p.lastBigReductionSize=c));let u=l?this.stack[l-1]:0,d=this.bufferBase+this.buffer.length-u;if(r<s.minRepeatTerm||e&131072){let p=s.stateFlag(this.state,1)?this.pos:this.reducePos;this.storeNode(r,a,p,d+4,!0)}if(e&262144)this.state=this.stack[l];else{let p=this.stack[l-3];this.state=s.getGoto(p,r,!0)}for(;this.stack.length>l;)this.stack.pop();this.reduceContext(r,a)}storeNode(e,n,o,r=4,s=!1){if(e==0&&(!this.stack.length||this.stack[this.stack.length-1]<this.buffer.length+this.bufferBase)){let i=this,l=this.buffer.length;if(l==0&&i.parent&&(l=i.bufferBase-i.parent.bufferBase,i=i.parent),l>0&&i.buffer[l-4]==0&&i.buffer[l-1]>-1){if(n==o)return;if(i.buffer[l-2]>=n){i.buffer[l-2]=o;return}}}if(!s||this.pos==o)this.buffer.push(e,n,o,r);else{let i=this.buffer.length;if(i>0&&this.buffer[i-4]!=0)for(;i>0&&this.buffer[i-2]>o;)this.buffer[i]=this.buffer[i-4],this.buffer[i+1]=this.buffer[i-3],this.buffer[i+2]=this.buffer[i-2],this.buffer[i+3]=this.buffer[i-1],i-=4,r>4&&(r-=4);this.buffer[i]=e,this.buffer[i+1]=n,this.buffer[i+2]=o,this.buffer[i+3]=r}}shift(e,n,o){let r=this.pos;if(e&131072)this.pushState(e&65535,this.pos);else if(e&262144)this.pos=o,this.shiftContext(n,r),n<=this.p.parser.maxNode&&this.buffer.push(n,r,o,4);else{let s=e,{parser:i}=this.p;(o>this.pos||n<=i.maxNode)&&(this.pos=o,i.stateFlag(s,1)||(this.reducePos=o)),this.pushState(s,r),this.shiftContext(n,r),n<=i.maxNode&&this.buffer.push(n,r,o,4)}}apply(e,n,o){e&65536?this.reduce(e):this.shift(e,n,o)}useNode(e,n){let o=this.p.reused.length-1;(o<0||this.p.reused[o]!=e)&&(this.p.reused.push(e),o++);let r=this.pos;this.reducePos=this.pos=r+e.length,this.pushState(n,r),this.buffer.push(o,r,this.reducePos,-1),this.curContext&&this.updateContext(this.curContext.tracker.reuse(this.curContext.context,e,this,this.p.stream.reset(this.pos-e.length)))}split(){let e=this,n=e.buffer.length;for(;n>0&&e.buffer[n-2]>e.reducePos;)n-=4;let o=e.buffer.slice(n),r=e.bufferBase+n;for(;e&&r==e.bufferBase;)e=e.parent;return new Xt(this.p,this.stack.slice(),this.state,this.reducePos,this.pos,this.score,o,r,this.curContext,this.lookAhead,e)}recoverByDelete(e,n){let o=e<=this.p.parser.maxNode;o&&this.storeNode(e,this.pos,n,4),this.storeNode(0,this.pos,n,o?8:4),this.pos=this.reducePos=n,this.score-=190}canShift(e){for(let n=new Ps(this);;){let o=this.p.parser.stateSlot(n.state,4)||this.p.parser.hasAction(n.state,e);if(o==0)return!1;if(!(o&65536))return!0;n.reduce(o)}}recoverByInsert(e){if(this.stack.length>=300)return[];let n=this.p.parser.nextStates(this.state);if(n.length>4<<1||this.stack.length>=120){let r=[];for(let s=0,i;s<n.length;s+=2)(i=n[s+1])!=this.state&&this.p.parser.hasAction(i,e)&&r.push(n[s],i);if(this.stack.length<120)for(let s=0;r.length<4<<1&&s<n.length;s+=2){let i=n[s+1];r.some((l,a)=>a&1&&l==i)||r.push(n[s],i)}n=r}let o=[];for(let r=0;r<n.length&&o.length<4;r+=2){let s=n[r+1];if(s==this.state)continue;let i=this.split();i.pushState(s,this.pos),i.storeNode(0,i.pos,i.pos,4,!0),i.shiftContext(n[r],this.pos),i.score-=200,o.push(i)}return o}forceReduce(){let{parser:e}=this.p,n=e.stateSlot(this.state,5);if(!(n&65536))return!1;if(!e.validAction(this.state,n)){let o=n>>19,r=n&65535,s=this.stack.length-o*3;if(s<0||e.getGoto(this.stack[s],r,!1)<0){let i=this.findForcedReduction();if(i==null)return!1;n=i}this.storeNode(0,this.pos,this.pos,4,!0),this.score-=100}return this.reducePos=this.pos,this.reduce(n),!0}findForcedReduction(){let{parser:e}=this.p,n=[],o=(r,s)=>{if(!n.includes(r))return n.push(r),e.allActions(r,i=>{if(!(i&393216))if(i&65536){let l=(i>>19)-s;if(l>1){let a=i&65535,c=this.stack.length-l*3;if(c>=0&&e.getGoto(this.stack[c],a,!1)>=0)return l<<19|65536|a}}else{let l=o(i,s+1);if(l!=null)return l}})};return o(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 n=0;n<this.stack.length;n+=3)if(this.stack[n]!=e.stack[n])return!1;return!0}get parser(){return this.p.parser}dialectEnabled(e){return this.p.parser.dialect.flags[e]}shiftContext(e,n){this.curContext&&this.updateContext(this.curContext.tracker.shift(this.curContext.context,e,this,this.p.stream.reset(n)))}reduceContext(e,n){this.curContext&&this.updateContext(this.curContext.tracker.reduce(this.curContext.context,e,this,this.p.stream.reset(n)))}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 n=new Xo(this.curContext.tracker,e);n.hash!=this.curContext.hash&&this.emitContext(),this.curContext=n}}setLookAhead(e){e>this.lookAhead&&(this.emitLookAhead(),this.lookAhead=e)}close(){this.curContext&&this.curContext.tracker.strict&&this.emitContext(),this.lookAhead>0&&this.emitLookAhead()}},Xo=class{constructor(e,n){this.tracker=e,this.context=n,this.hash=e.strict?e.hash(n):0}},xu;(function(t){t[t.Insert=200]="Insert",t[t.Delete=190]="Delete",t[t.Reduce=100]="Reduce",t[t.MaxNext=4]="MaxNext",t[t.MaxInsertStackDepth=300]="MaxInsertStackDepth",t[t.DampenInsertStackDepth=120]="DampenInsertStackDepth",t[t.MinBigReduction=2e3]="MinBigReduction"})(xu||(xu={}));var Ps=class{constructor(e){this.start=e,this.state=e.state,this.stack=e.stack,this.base=this.stack.length}reduce(e){let n=e&65535,o=e>>19;o==0?(this.stack==this.start.stack&&(this.stack=this.stack.slice()),this.stack.push(this.state,0,0),this.base+=3):this.base-=(o-1)*3;let r=this.start.p.parser.getGoto(this.stack[this.base-3],n,!0);this.state=r}},Qt=class{constructor(e,n,o){this.stack=e,this.pos=n,this.index=o,this.buffer=e.buffer,this.index==0&&this.maybeNext()}static create(e,n=e.bufferBase+e.buffer.length){return new Qt(e,n,n-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 Qt(this.stack,this.pos,this.index)}};function kn(t,e=Uint16Array){if(typeof t!="string")return t;let n=null;for(let o=0,r=0;o<t.length;){let s=0;for(;;){let i=t.charCodeAt(o++),l=!1;if(i==126){s=65535;break}i>=92&&i--,i>=34&&i--;let a=i-32;if(a>=46&&(a-=46,l=!0),s+=a,l)break;s*=46}n?n[r++]=s:n=new e(s)}return n}var Ut=class{constructor(){this.start=-1,this.value=-1,this.end=-1,this.extended=-1,this.lookAhead=0,this.mask=0,this.context=0}},Cu=new Ut,Ls=class{constructor(e,n){this.input=e,this.ranges=n,this.chunk="",this.chunkOff=0,this.chunk2="",this.chunk2Pos=0,this.next=-1,this.token=Cu,this.rangeIndex=0,this.pos=this.chunkPos=n[0].from,this.range=n[0],this.end=n[n.length-1].to,this.readNext()}resolveOffset(e,n){let o=this.range,r=this.rangeIndex,s=this.pos+e;for(;s<o.from;){if(!r)return null;let i=this.ranges[--r];s-=o.from-i.to,o=i}for(;n<0?s>o.to:s>=o.to;){if(r==this.ranges.length-1)return null;let i=this.ranges[++r];s+=i.from-o.to,o=i}return s}clipPos(e){if(e>=this.range.from&&e<this.range.to)return e;for(let n of this.ranges)if(n.to>e)return Math.max(e,n.from);return this.end}peek(e){let n=this.chunkOff+e,o,r;if(n>=0&&n<this.chunk.length)o=this.pos+e,r=this.chunk.charCodeAt(n);else{let s=this.resolveOffset(e,1);if(s==null)return-1;if(o=s,o>=this.chunk2Pos&&o<this.chunk2Pos+this.chunk2.length)r=this.chunk2.charCodeAt(o-this.chunk2Pos);else{let i=this.rangeIndex,l=this.range;for(;l.to<=o;)l=this.ranges[++i];this.chunk2=this.input.chunk(this.chunk2Pos=o),o+this.chunk2.length>l.to&&(this.chunk2=this.chunk2.slice(0,l.to-o)),r=this.chunk2.charCodeAt(0)}}return o>=this.token.lookAhead&&(this.token.lookAhead=o+1),r}acceptToken(e,n=0){let o=n?this.resolveOffset(n,-1):this.pos;if(o==null||o<this.token.start)throw new RangeError("Token end out of bounds");this.token.value=e,this.token.end=o}getChunk(){if(this.pos>=this.chunk2Pos&&this.pos<this.chunk2Pos+this.chunk2.length){let{chunk:e,chunkPos:n}=this;this.chunk=this.chunk2,this.chunkPos=this.chunk2Pos,this.chunk2=e,this.chunk2Pos=n,this.chunkOff=this.pos-this.chunkPos}else{this.chunk2=this.chunk,this.chunk2Pos=this.chunkPos;let e=this.input.chunk(this.pos),n=this.pos+e.length;this.chunk=n>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,n){if(n?(this.token=n,n.start=e,n.lookAhead=e+1,n.value=n.extended=-1):this.token=Cu,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,n){if(e>=this.chunkPos&&n<=this.chunkPos+this.chunk.length)return this.chunk.slice(e-this.chunkPos,n-this.chunkPos);if(e>=this.chunk2Pos&&n<=this.chunk2Pos+this.chunk2.length)return this.chunk2.slice(e-this.chunk2Pos,n-this.chunk2Pos);if(e>=this.range.from&&n<=this.range.to)return this.input.read(e,n);let o="";for(let r of this.ranges){if(r.from>=n)break;r.to>e&&(o+=this.input.read(Math.max(r.from,e),Math.min(r.to,n)))}return o}},ot=class{constructor(e,n){this.data=e,this.id=n}token(e,n){let{parser:o}=n.p;Du(this.data,e,n,this.id,o.data,o.tokenPrecTable)}};ot.prototype.contextual=ot.prototype.fallback=ot.prototype.extend=!1;var ks=class{constructor(e,n,o){this.precTable=n,this.elseToken=o,this.data=typeof e=="string"?kn(e):e}token(e,n){let o=e.pos,r=0;for(;;){let s=e.next<0,i=e.resolveOffset(1,1);if(Du(this.data,e,n,0,this.data,this.precTable),e.token.value>-1)break;if(this.elseToken==null)return;if(s||r++,i==null)break;e.reset(i,e.token)}r&&(e.reset(o,e.token),e.acceptToken(this.elseToken,r))}};ks.prototype.contextual=ot.prototype.fallback=ot.prototype.extend=!1;function Du(t,e,n,o,r,s){let i=0,l=1<<o,{dialect:a}=n.p.parser;e:for(;l&t[i];){let c=t[i+1];for(let m=i+3;m<c;m+=2)if((t[m+1]&l)>0){let f=t[m];if(a.allows(f)&&(e.token.value==-1||e.token.value==f||mx(f,e.token.value,r,s))){e.acceptToken(f);break}}let u=e.next,d=0,p=t[i+2];if(e.next<0&&p>d&&t[c+p*3-3]==65535&&t[c+p*3-3]==65535){i=t[c+p*3-1];continue e}for(;d<p;){let m=d+p>>1,f=c+m+(m<<1),h=t[f],g=t[f+1]||65536;if(u<h)p=m;else if(u>=g)d=m+1;else{i=t[f+2],e.advance();continue e}}break}}function vu(t,e,n){for(let o=e,r;(r=t[o])!=65535;o++)if(r==n)return o-e;return-1}function mx(t,e,n,o){let r=vu(n,o,e);return r<0||vu(n,o,t)<r}var Ae=typeof process<"u"&&process.env&&/\bparse\b/.test(process.env.LOG),Is=null,Tu;(function(t){t[t.Margin=25]="Margin"})(Tu||(Tu={}));function Su(t,e,n){let o=t.cursor(fe.IncludeAnonymous);for(o.moveTo(e);;)if(!(n<0?o.childBefore(e):o.childAfter(e)))for(;;){if((n<0?o.to<e:o.from>e)&&!o.type.isError)return n<0?Math.max(0,Math.min(o.to-1,e-25)):Math.min(t.length,Math.max(o.from+1,e+25));if(n<0?o.prevSibling():o.nextSibling())break;if(!o.parent())return n<0?0:t.length}}var Hs=class{constructor(e,n){this.fragments=e,this.nodeSet=n,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?Su(e.tree,e.from+e.offset,1)-e.offset:e.from,this.safeTo=e.openEnd?Su(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 n=this.trees.length-1;if(n<0)return this.nextFragment(),null;let o=this.trees[n],r=this.index[n];if(r==o.children.length){this.trees.pop(),this.start.pop(),this.index.pop();continue}let s=o.children[r],i=this.start[n]+o.positions[r];if(i>e)return this.nextStart=i,null;if(s instanceof he){if(i==e){if(i<this.safeFrom)return null;let l=i+s.length;if(l<=this.safeTo){let a=s.prop(ie.lookAhead);if(!a||l+a<this.fragment.to)return s}}this.index[n]++,i+s.length>=Math.max(this.safeFrom,e)&&(this.trees.push(s),this.start.push(i),this.index.push(0))}else this.index[n]++,this.nextStart=i+s.length}}},As=class{constructor(e,n){this.stream=n,this.tokens=[],this.mainToken=null,this.actions=[],this.tokens=e.tokenizers.map(o=>new Ut)}getActions(e){let n=0,o=null,{parser:r}=e.p,{tokenizers:s}=r,i=r.stateSlot(e.state,3),l=e.curContext?e.curContext.hash:0,a=0;for(let c=0;c<s.length;c++){if(!(1<<c&i))continue;let u=s[c],d=this.tokens[c];if(!(o&&!u.fallback)&&((u.contextual||d.start!=e.pos||d.mask!=i||d.context!=l)&&(this.updateCachedToken(d,u,e),d.mask=i,d.context=l),d.lookAhead>d.end+25&&(a=Math.max(d.lookAhead,a)),d.value!=0)){let p=n;if(d.extended>-1&&(n=this.addActions(e,d.extended,d.end,n)),n=this.addActions(e,d.value,d.end,n),!u.extend&&(o=d,n>p))break}}for(;this.actions.length>n;)this.actions.pop();return a&&e.setLookAhead(a),!o&&e.pos==this.stream.end&&(o=new Ut,o.value=e.p.parser.eofTerm,o.start=o.end=e.pos,n=this.addActions(e,o.value,o.end,n)),this.mainToken=o,this.actions}getMainToken(e){if(this.mainToken)return this.mainToken;let n=new Ut,{pos:o,p:r}=e;return n.start=o,n.end=Math.min(o+1,r.stream.end),n.value=o==r.stream.end?r.parser.eofTerm:0,n}updateCachedToken(e,n,o){let r=this.stream.clipPos(o.pos);if(n.token(this.stream.reset(r,e),o),e.value>-1){let{parser:s}=o.p;for(let i=0;i<s.specialized.length;i++)if(s.specialized[i]==e.value){let l=s.specializers[i](this.stream.read(e.start,e.end),o);if(l>=0&&o.p.parser.dialect.allows(l>>1)){l&1?e.extended=l>>1:e.value=l>>1;break}}}else e.value=0,e.end=this.stream.clipPos(r+1)}putAction(e,n,o,r){for(let s=0;s<r;s+=3)if(this.actions[s]==e)return r;return this.actions[r++]=e,this.actions[r++]=n,this.actions[r++]=o,r}addActions(e,n,o,r){let{state:s}=e,{parser:i}=e.p,{data:l}=i;for(let a=0;a<2;a++)for(let c=i.stateSlot(s,a?2:1);;c+=3){if(l[c]==65535)if(l[c+1]==1)c=je(l,c+2);else{r==0&&l[c+1]==2&&(r=this.putAction(je(l,c+2),n,o,r));break}l[c]==n&&(r=this.putAction(je(l,c+1),n,o,r))}return r}},wu;(function(t){t[t.Distance=5]="Distance",t[t.MaxRemainingPerStep=3]="MaxRemainingPerStep",t[t.MinBufferLengthPrune=500]="MinBufferLengthPrune",t[t.ForceReduceLimit=10]="ForceReduceLimit",t[t.CutDepth=15e3]="CutDepth",t[t.CutTo=9e3]="CutTo",t[t.MaxLeftAssociativeReductionCount=300]="MaxLeftAssociativeReductionCount",t[t.MaxStackCount=12]="MaxStackCount"})(wu||(wu={}));var Os=class{constructor(e,n,o,r){this.parser=e,this.input=n,this.ranges=r,this.recovering=0,this.nextStackID=9812,this.minStackPos=0,this.reused=[],this.stoppedAt=null,this.lastBigReductionStart=-1,this.lastBigReductionSize=0,this.bigReductionCount=0,this.stream=new Ls(n,r),this.tokens=new As(e,this.stream),this.topTerm=e.top[1];let{from:s}=r[0];this.stacks=[Xt.start(this,e.top[0],s)],this.fragments=o.length&&this.stream.end-s>e.bufferLength*4?new Hs(o,e.nodeSet):null}get parsedPos(){return this.minStackPos}advance(){let e=this.stacks,n=this.minStackPos,o=this.stacks=[],r,s;if(this.bigReductionCount>300&&e.length==1){let[i]=e;for(;i.forceReduce()&&i.stack.length&&i.stack[i.stack.length-2]>=this.lastBigReductionStart;);this.bigReductionCount=this.lastBigReductionSize=0}for(let i=0;i<e.length;i++){let l=e[i];for(;;){if(this.tokens.mainToken=null,l.pos>n)o.push(l);else{if(this.advanceStack(l,o,e))continue;{r||(r=[],s=[]),r.push(l);let a=this.tokens.getMainToken(l);s.push(a.value,a.end)}}break}}if(!o.length){let i=r&&fx(r);if(i)return this.stackToTree(i);if(this.parser.strict)throw Ae&&r&&console.log("Stuck with token "+(this.tokens.mainToken?this.parser.getName(this.tokens.mainToken.value):"none")),new SyntaxError("No parse at "+n);this.recovering||(this.recovering=5)}if(this.recovering&&r){let i=this.stoppedAt!=null&&r[0].pos>this.stoppedAt?r[0]:this.runRecovery(r,s,o);if(i)return this.stackToTree(i.forceAll())}if(this.recovering){let i=this.recovering==1?1:this.recovering*3;if(o.length>i)for(o.sort((l,a)=>a.score-l.score);o.length>i;)o.pop();o.some(l=>l.reducePos>n)&&this.recovering--}else if(o.length>1){e:for(let i=0;i<o.length-1;i++){let l=o[i];for(let a=i+1;a<o.length;a++){let c=o[a];if(l.sameState(c)||l.buffer.length>500&&c.buffer.length>500)if((l.score-c.score||l.buffer.length-c.buffer.length)>0)o.splice(a--,1);else{o.splice(i--,1);continue e}}}o.length>12&&o.splice(12,o.length-12)}this.minStackPos=o[0].pos;for(let i=1;i<o.length;i++)o[i].pos<this.minStackPos&&(this.minStackPos=o[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,n,o){let r=e.pos,{parser:s}=this,i=Ae?this.stackID(e)+" -> ":"";if(this.stoppedAt!=null&&r>this.stoppedAt)return e.forceReduce()?e:null;if(this.fragments){let c=e.curContext&&e.curContext.tracker.strict,u=c?e.curContext.hash:0;for(let d=this.fragments.nodeAt(r);d;){let p=this.parser.nodeSet.types[d.type.id]==d.type?s.getGoto(e.state,d.type.id):-1;if(p>-1&&d.length&&(!c||(d.prop(ie.contextHash)||0)==u))return e.useNode(d,p),Ae&&console.log(i+this.stackID(e)+` (via reuse of ${s.getName(d.type.id)})`),!0;if(!(d instanceof he)||d.children.length==0||d.positions[0]>0)break;let m=d.children[0];if(m instanceof he&&d.positions[0]==0)d=m;else break}}let l=s.stateSlot(e.state,4);if(l>0)return e.reduce(l),Ae&&console.log(i+this.stackID(e)+` (via always-reduce ${s.getName(l&65535)})`),!0;if(e.stack.length>=15e3)for(;e.stack.length>9e3&&e.forceReduce(););let a=this.tokens.getActions(e);for(let c=0;c<a.length;){let u=a[c++],d=a[c++],p=a[c++],m=c==a.length||!o,f=m?e:e.split();if(f.apply(u,d,p),Ae&&console.log(i+this.stackID(f)+` (via ${u&65536?`reduce of ${s.getName(u&65535)}`:"shift"} for ${s.getName(d)} @ ${r}${f==e?"":", split"})`),m)return!0;f.pos>r?n.push(f):o.push(f)}return!1}advanceFully(e,n){let o=e.pos;for(;;){if(!this.advanceStack(e,null,null))return!1;if(e.pos>o)return Eu(e,n),!0}}runRecovery(e,n,o){let r=null,s=!1;for(let i=0;i<e.length;i++){let l=e[i],a=n[i<<1],c=n[(i<<1)+1],u=Ae?this.stackID(l)+" -> ":"";if(l.deadEnd&&(s||(s=!0,l.restart(),Ae&&console.log(u+this.stackID(l)+" (restarted)"),this.advanceFully(l,o))))continue;let d=l.split(),p=u;for(let m=0;d.forceReduce()&&m<10&&(Ae&&console.log(p+this.stackID(d)+" (via force-reduce)"),!this.advanceFully(d,o));m++)Ae&&(p=this.stackID(d)+" -> ");for(let m of l.recoverByInsert(a))Ae&&console.log(u+this.stackID(m)+" (via recover-insert)"),this.advanceFully(m,o);this.stream.end>l.pos?(c==l.pos&&(c++,a=0),l.recoverByDelete(a,c),Ae&&console.log(u+this.stackID(l)+` (via recover-delete ${this.parser.getName(a)})`),Eu(l,o)):(!r||r.score<l.score)&&(r=l)}return r}stackToTree(e){return e.close(),he.build({buffer:Qt.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 n=(Is||(Is=new WeakMap)).get(e);return n||Is.set(e,n=String.fromCodePoint(this.nextStackID++)),n+e}};function Eu(t,e){for(let n=0;n<e.length;n++){let o=e[n];if(o.pos==t.pos&&o.sameState(t)){e[n].score<t.score&&(e[n]=t);return}}e.push(t)}var Ns=class{constructor(e,n,o){this.source=e,this.flags=n,this.disabled=o}allows(e){return!this.disabled||this.disabled[e]==0}};var Ct=class extends Uo{constructor(e){if(super(),this.wrappers=[],e.version!=14)throw new RangeError(`Parser version (${e.version}) doesn't match runtime version (14)`);let n=e.nodeNames.split(" ");this.minRepeatTerm=n.length;for(let l=0;l<e.repeatNodeCount;l++)n.push("");let o=Object.keys(e.topRules).map(l=>e.topRules[l][1]),r=[];for(let l=0;l<n.length;l++)r.push([]);function s(l,a,c){r[l].push([a,a.deserialize(String(c))])}if(e.nodeProps)for(let l of e.nodeProps){let a=l[0];typeof a=="string"&&(a=ie[a]);for(let c=1;c<l.length;){let u=l[c++];if(u>=0)s(u,a,l[c++]);else{let d=l[c+-u];for(let p=-u;p>0;p--)s(l[c++],a,d);c++}}}this.nodeSet=new Wt(n.map((l,a)=>xe.define({name:a>=this.minRepeatTerm?void 0:l,id:a,props:r[a],top:o.indexOf(a)>-1,error:a==0,skipped:e.skippedNodes&&e.skippedNodes.indexOf(a)>-1}))),e.propSources&&(this.nodeSet=this.nodeSet.extend(...e.propSources)),this.strict=!1,this.bufferLength=1024;let i=kn(e.tokenData);this.context=e.context,this.specializerSpecs=e.specialized||[],this.specialized=new Uint16Array(this.specializerSpecs.length);for(let l=0;l<this.specializerSpecs.length;l++)this.specialized[l]=this.specializerSpecs[l].term;this.specializers=this.specializerSpecs.map(Ru),this.states=kn(e.states,Uint32Array),this.data=kn(e.stateData),this.goto=kn(e.goto),this.maxTerm=e.maxTerm,this.tokenizers=e.tokenizers.map(l=>typeof l=="number"?new ot(i,l):l),this.topRules=e.topRules,this.dialects=e.dialects||{},this.dynamicPrecedences=e.dynamicPrecedences||null,this.tokenPrecTable=e.tokenPrec,this.termNames=e.termNames||null,this.maxNode=this.nodeSet.types.length-1,this.dialect=this.parseDialect(),this.top=this.topRules[Object.keys(this.topRules)[0]]}createParse(e,n,o){let r=new Os(this,e,n,o);for(let s of this.wrappers)r=s(r,e,n,o);return r}getGoto(e,n,o=!1){let r=this.goto;if(n>=r[0])return-1;for(let s=r[n+1];;){let i=r[s++],l=i&1,a=r[s++];if(l&&o)return a;for(let c=s+(i>>1);s<c;s++)if(r[s]==e)return a;if(l)return-1}}hasAction(e,n){let o=this.data;for(let r=0;r<2;r++)for(let s=this.stateSlot(e,r?2:1),i;;s+=3){if((i=o[s])==65535)if(o[s+1]==1)i=o[s=je(o,s+2)];else{if(o[s+1]==2)return je(o,s+2);break}if(i==n||i==0)return je(o,s+1)}return 0}stateSlot(e,n){return this.states[e*6+n]}stateFlag(e,n){return(this.stateSlot(e,0)&n)>0}validAction(e,n){return!!this.allActions(e,o=>o==n?!0:null)}allActions(e,n){let o=this.stateSlot(e,4),r=o?n(o):void 0;for(let s=this.stateSlot(e,1);r==null;s+=3){if(this.data[s]==65535)if(this.data[s+1]==1)s=je(this.data,s+2);else break;r=n(je(this.data,s+1))}return r}nextStates(e){let n=[];for(let o=this.stateSlot(e,1);;o+=3){if(this.data[o]==65535)if(this.data[o+1]==1)o=je(this.data,o+2);else break;if(!(this.data[o+2]&1)){let r=this.data[o+1];n.some((s,i)=>i&1&&s==r)||n.push(this.data[o],r)}}return n}configure(e){let n=Object.assign(Object.create(Ct.prototype),this);if(e.props&&(n.nodeSet=this.nodeSet.extend(...e.props)),e.top){let o=this.topRules[e.top];if(!o)throw new RangeError(`Invalid top rule name ${e.top}`);n.top=o}return e.tokenizers&&(n.tokenizers=this.tokenizers.map(o=>{let r=e.tokenizers.find(s=>s.from==o);return r?r.to:o})),e.specializers&&(n.specializers=this.specializers.slice(),n.specializerSpecs=this.specializerSpecs.map((o,r)=>{let s=e.specializers.find(l=>l.from==o.external);if(!s)return o;let i=Object.assign(Object.assign({},o),{external:s.to});return n.specializers[r]=Ru(i),i})),e.contextTracker&&(n.context=e.contextTracker),e.dialect&&(n.dialect=this.parseDialect(e.dialect)),e.strict!=null&&(n.strict=e.strict),e.wrap&&(n.wrappers=n.wrappers.concat(e.wrap)),e.bufferLength!=null&&(n.bufferLength=e.bufferLength),n}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 n=this.dynamicPrecedences;return n==null?0:n[e]||0}parseDialect(e){let n=Object.keys(this.dialects),o=n.map(()=>!1);if(e)for(let s of e.split(" ")){let i=n.indexOf(s);i>=0&&(o[i]=!0)}let r=null;for(let s=0;s<n.length;s++)if(!o[s])for(let i=this.dialects[n[s]],l;(l=this.data[i++])!=65535;)(r||(r=new Uint8Array(this.maxTerm+1)))[l]=1;return new Ns(e,o,r)}static deserialize(e){return new Ct(e)}};function je(t,e){return t[e]|t[e+1]<<16}function fx(t){let e=null;for(let n of t){let o=n.p.stoppedAt;(n.pos==n.p.stream.end||o!=null&&n.pos>o)&&n.p.parser.stateFlag(n.state,2)&&(!e||e.score<n.score)&&(e=n)}return e}function Ru(t){if(t.external){let e=t.extend?1:0;return(n,o)=>t.external(n,o)<<1|e}return t.get}var zs=Ct.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});import{isMultiClauseFilter as Hn,isMultiValueFilter as hx,isSingleValueFilter as gx}from"@vuu-ui/vuu-utils";var Ce,Mu=class{constructor(){ci(this,Ce,void 0)}setFilterCombinatorOp(e,n=Ne(this,Ce)){Hn(n)&&n.op===e||tr(this,Ce,{op:e,filters:[Ne(this,Ce)]})}add(e){if(Ne(this,Ce)===void 0)tr(this,Ce,e);else if(Hn(Ne(this,Ce)))Ne(this,Ce).filters.push(e);else throw Error("Invalid filter passed to FilterExpression")}setColumn(e,n=Ne(this,Ce)){if(Hn(n)){let o=n.filters.at(-1);o&&this.setColumn(e,o)}else n&&(n.column=e)}setOp(e,n=Ne(this,Ce)){if(Hn(n)){let o=n.filters.at(-1);o&&this.setOp(e,o)}else n&&(n.op=e)}setValue(e,n=Ne(this,Ce)){var o;if(Hn(n)){let r=n.filters.at(-1);r&&this.setValue(e,r)}else hx(n)?((o=n.values)!=null||(n.values=[]),n.values.push(e)):gx(n)&&(n.value=e)}toJSON(e=Ne(this,Ce)){return this.name?{...e,name:this.name}:e}};Ce=new WeakMap;var VB=zs.configure({strict:!0});import{getRowRecord as qB,isGroupMenuItemDescriptor as JB,metadataKeys as xx}from"@vuu-ui/vuu-utils";import{useCallback as tK}from"react";var{KEY:nK}=xx;var Cx=t=>t.type==="vuu-links";var vx=t=>t.type==="vuu-menu",Iu=t=>vx(t)||Cx(t),Pu=t=>t.type==="vuu-link-created"||t.type==="vuu-link-removed";import{useCallback as sK,useEffect as iK,useState as lK}from"react";import{getServerAPI as cK}from"@vuu-ui/vuu-data";import{getFullRange as Fs,metadataKeys as Tx,WindowRange as Sx}from"@vuu-ui/vuu-utils";import{useCallback as jt,useEffect as Qo,useMemo as wx,useRef as An,useState as Ex}from"react";var{SELECTED:On}=Tx;function Lu({dataSource:t,onConfigChange:e,onFeatureEnabled:n,onFeatureInvocation:o,onSizeChange:r,onSubscribed:s,range:i={from:0,to:0},renderBufferSize:l=0,viewportRowCount:a}){let[,c]=Ex(null),u=An(!0),d=An(!1),p=An({from:0,to:0}),m=An(null),f=An([]),h=wx(()=>new Vs(Fs(i)),[]),g=jt(x=>{for(let w of x)h.add(w);f.current=h.data,d.current=!0},[h]),y=jt(x=>{x.type==="subscribed"?s==null||s(x):x.type==="viewport-update"?(typeof x.size=="number"&&(r==null||r(x.size),h.setRowCount(x.size)),x.rows?g(x.rows):typeof x.size=="number"&&(f.current=h.data,d.current=!0)):Iu(x)?n==null||n(x):Pu(x)?o==null||o(x):console.log(`useDataSource unexpected message ${x.type}`)},[h,n,o,r,s,g]);Qo(()=>()=>{m.current&&(cancelAnimationFrame(m.current),m.current=null),u.current=!1},[]);let v=jt(()=>{u.current&&(d.current&&(c({}),d.current=!1),m.current=requestAnimationFrame(v))},[c]);Qo(()=>{m.current=requestAnimationFrame(v)},[v]);let C=jt(x=>{let{from:w}=t.range,R={from:w,to:w+x},M=Fs(R,l);h.setRange(M),t.range=p.current=M,t.emit("range",R)},[t,h,l]),b=jt(x=>{let w=Fs(x,l);h.setRange(w),t.range=p.current=w,t.emit("range",x)},[t,h,l]),T=jt(()=>h.getSelectedRows(),[h]);return Qo(()=>{t==null||t.subscribe({range:p.current},y)},[t,y,e]),Qo(()=>{C(a)},[C,a]),{data:f.current,getSelectedRows:T,range:p.current,setRange:b,dataSource:t}}var Vs=class{constructor({from:e,to:n}){this.rowCount=0;this.setRowCount=e=>{e<this.data.length&&(this.data.length=e),this.rowCount=e};this.range=new Sx(e,n),this.data=new Array(n-e),this.rowCount=0}add(e){var o;let[n]=e;if(this.isWithinRange(n)){let r=n-this.range.from;this.data[r]=e;let s=e[On],i=(o=this.data[r-1])==null?void 0:o[On];i===0&&s?this.data[r-1][On]=2:i===2&&!s&&(this.data[r-1][On]=0)}}getAtIndex(e){return this.range.isWithin(e)&&this.data[e-this.range.from]!=null?this.data[e-this.range.from]:void 0}isWithinRange(e){return this.range.isWithin(e)}setRange({from:e,to:n}){if(e!==this.range.from||n!==this.range.to){let[o,r]=this.range.overlap(e,n),s=new Array(Math.max(0,n-e));for(let i=o;i<r;i++){let l=this.getAtIndex(i);if(l){let a=i-e;s[a]=l}}this.data=s,this.range.from=e,this.range.to=n}}getSelectedRows(){return this.data.filter(e=>e[On]===1)}};import{useCallback as ku,useRef as Hu}from"react";var Au=({onDrop:t})=>{let e=Hu(),n=Hu(null),o=ku(()=>{console.log("handleDropSettle"),e.current=void 0,n.current=null},[]),{draggable:r,draggedItemIndex:s,onMouseDown:i}=Mt({allowDragDrop:!0,draggableClassName:"vuuTable-headerCell",orientation:"horizontal",containerRef:n,itemQuery:".vuuTable-headerCell",onDrop:t,onDropSettle:o}),l=ku(a=>{let{clientX:c,clientY:u}=a;console.log("useDraggableColumn handleHeaderCellDragStart means mouseDown fired on a column in RowBasedTable");let p=a.target.closest(".vuuTable-headerCell");n.current=p==null?void 0:p.closest("[role='row']");let{dataset:{idx:m="-1"}}=p;e.current={clientX:c,clientY:u,idx:m},i==null||i(a)},[i]);return{draggable:r,draggedItemIndex:s,onHeaderCellDragStart:l}};import{withinRange as kx}from"@vuu-ui/vuu-utils";import{useCallback as Ye,useEffect as Hx,useLayoutEffect as Ax,useMemo as Ox,useRef as Qs}from"react";function Rx(t,...e){let n=new Set(t);for(let o of e)for(let r of o)n.add(r);return n}var $s="ArrowUp",Bs="ArrowDown",Ks="ArrowLeft",Ws="ArrowRight";var _s="Home",Gs="End",Us="PageUp",Xs="PageDown";var Dx=new Set(["Enter","Delete"," "]),Mx=new Set(["Tab"]),Ix=new Set(["ArrowRight","ArrowLeft"]),Ou=new Set([_s,Gs,Us,Xs,Bs,Ks,Ws,$s]),Px=new Set(["F1","F2","F3","F4","F5","F6","F7","F8","F9","F10","F11","F12"]),IK=Rx(Dx,Ou,Ix,Px,Mx);var Lx=["Home","End","PageUp","PageDown"],Nu=t=>Lx.includes(t),zu=t=>Ou.has(t);var Fu=t=>`.vuuTable-headers .vuuTable-headerCell:nth-child(${t+1})`,Nx=(t,e)=>`.vuuTable-body > [aria-rowindex='${t}'] > [role='cell']:nth-child(${e+1})`,zx=[-1,-1];function Fx(t,[e,n],o,r){return t===$s?e>-1?[e-1,n]:[e,n]:t===Bs?e===-1?[0,n]:e===r-1?[e,n]:[e+1,n]:t===Ws?n<o-1?[e,n+1]:[e,n]:t===Ks?n>0?[e,n-1]:[e,n]:[e,n]}var Vu=({columnCount:t=0,containerRef:e,disableHighlightOnFocus:n,data:o,requestScroll:r,rowCount:s=0,viewportRange:i})=>{var M;let{from:l,to:a}=i,c=Qs([-1,-1]),u=Qs(),d=Qs([-1,0]),p=Ye(([E,I])=>{var D;let S=E===-1?Fu(I):Nx(E,I);return(D=e.current)==null?void 0:D.querySelector(S)},[e]),m=E=>E==null?void 0:E.closest("[role='columnHeader'],[role='cell']"),f=E=>{var I,S;if(E.role==="columnHeader")return[-1,parseInt((I=E.dataset.idx)!=null?I:"-1",10)];{let D=E.closest("[role='row']");if(D){let L=parseInt((S=D.ariaRowIndex)!=null?S:"-1",10),A=Array.from(D.childNodes).indexOf(E);return[L,A]}}return zx},h=Ye(E=>{var I;if(e.current){let S=p(E);S?(S!==u.current&&((I=u.current)==null||I.setAttribute("tabindex",""),u.current=S,S.setAttribute("tabindex","0")),S.focus()):kx(E[0],i)||(u.current=void 0,r==null||r({type:"scroll-page",direction:"up"}))}},[e,p,r,i]),g=Ye((E,I,S=!1)=>{let D=[E,I];d.current=D,h(D),S&&(c.current=D)},[h]),y=Ye(()=>{var E;(E=u.current)==null||E.setAttribute("tabindex",""),u.current=void 0},[]),v=Ye(async(E,I)=>{switch(E){case Xs:r==null||r({type:"scroll-page",direction:"down"});break;case Us:r==null||r({type:"scroll-page",direction:"up"});break;case _s:r==null||r({type:"scroll-end",direction:"home"});break;case Gs:r==null||r({type:"scroll-end",direction:"end"});break}return I},[r]),C=Ye(()=>{var E;if(n!==!0&&(E=e.current)!=null&&E.contains(document.activeElement)){let I=m(document.activeElement);I&&(c.current=f(I))}},[n,e]),b=Ye(async E=>{let[I,S]=Nu(E)?await v(E,d.current):Fx(E,d.current,t,s),[D,L]=d.current;(I!==D||S!==L)&&g(I,S,!0)},[t,v,s,g]),T=Ye(E=>{o.length>0&&zu(E.key)&&(E.preventDefault(),E.stopPropagation(),b(E.key))},[o,b]),x=Ye(E=>{let I=E.target,S=m(I);if(S){let[D,L]=f(S);g(D,L)}},[g]),w=Ox(()=>({onClick:x,onFocus:C,onKeyDown:T}),[x,C,T]);Ax(()=>{let{current:E}=d,I=E[0]>=l&&E[0]<=a;u.current&&!I?y():!u.current&&I&&h(E)},[h,l,a,y]);let R=((M=e.current)==null?void 0:M.firstChild)!=null;return Hx(()=>{var E;if(R&&u.current===void 0){let I=(E=e.current)==null?void 0:E.querySelector(Fu(0));I&&(I.setAttribute("tabindex","0"),u.current=I)}},[e,R]),w};import{isValidNumber as rt}from"@vuu-ui/vuu-utils";import{useCallback as Bx,useMemo as Kx,useRef as Wx,useState as _x}from"react";import{useCallback as Vx,useEffect as $u,useRef as $x}from"react";var vt=new Map,Ku=(t,e,n)=>{switch(n){case"height":return e.height;case"clientHeight":return t.clientHeight;case"clientWidth":return t.clientWidth;case"contentHeight":return e.contentHeight;case"contentWidth":return e.contentWidth;case"scrollHeight":return Math.ceil(t.scrollHeight);case"scrollWidth":return Math.ceil(t.scrollWidth);case"width":return e.width;default:return 0}},Bu=new ResizeObserver(t=>{for(let e of t){let{target:n,borderBoxSize:o,contentBoxSize:r}=e,s=vt.get(n);if(s){let[{blockSize:i,inlineSize:l}]=o,[{blockSize:a,inlineSize:c}]=r,{onResize:u,measurements:d}=s,p=!1;for(let[m,f]of Object.entries(d)){let h=Ku(n,{height:i,width:l,contentHeight:a,contentWidth:c},m);h!==f&&(p=!0,d[m]=h)}p&&u&&u(d)}}});function Wu(t,e,n,o=!1){let r=$x(e),s=Vx(i=>{let{width:l,height:a}=i.getBoundingClientRect(),{clientWidth:c,clientHeight:u}=i;return r.current.reduce((d,p)=>(d[p]=Ku(i,{width:l,height:a,contentHeight:u,contentWidth:c},p),d),{})},[]);$u(()=>{let i=t.current;async function l(){vt.set(i,{measurements:{}}),await document.fonts.ready;let a=vt.get(i);if(a){let c=s(i);a.measurements=c,Bu.observe(i),o&&n(c)}else console.log("%cuseResizeObserver an target expected to be under observation wa snot found. This warrants investigation","font-weight:bold; color:red;")}if(i){if(vt.has(i))throw Error("useResizeObserver attemping to observe same element twice");l()}return()=>{i&&vt.has(i)&&(Bu.unobserve(i),vt.delete(i))}},[s,t]),$u(()=>{let i=t.current,l=vt.get(i);if(l){if(r.current!==e){r.current=e;let a=s(i);l.measurements=a}l.onResize=n}},[e,s,t,n])}var Gx=["clientHeight","clientWidth"],_u=t=>Number.isFinite(t),Ux={height:"100%",width:"100%"},Xx=(t,e)=>rt(t)&&rt(e)?{height:`${t}px`,width:`${e}px`}:Ux,Qx=(t,e)=>{if(rt(t)&&rt(e))return{height:t,width:e}},jo=({defaultHeight:t=0,defaultWidth:e=0,height:n,width:o})=>{let r=Wx(null),[s,i]=_x({css:Xx(n,o),inner:Qx(n,o),outer:{height:n!=null?n:"100%",width:o!=null?o:"100%"}});Kx(()=>{i(a=>{let{inner:c,outer:u}=a;if(rt(n)&&rt(o)&&c&&u){let{height:d,width:p}=c,{height:m,width:f}=u;if(m!==n||f!==o){let h=rt(m)?m-d:0,g=rt(f)?f-p:0;return{...a,outer:{height:n,width:o},inner:{height:n-h,width:o-g}}}}return a})},[n,o]);let l=Bx(({clientWidth:a,clientHeight:c})=>{i(u=>{let{css:d,inner:p,outer:m}=u;return _u(c)&&_u(a)&&(a!==(p==null?void 0:p.width)||c!==(p==null?void 0:p.height))?{css:d,outer:m,inner:{width:Math.floor(a)||e,height:Math.floor(c)||t}}:u})},[t,e]);return Wu(r,Gx,l,!0),{containerRef:r,cssSize:s.css,outerSize:s.outer,innerSize:s.inner}};import{deselectItem as jx,isRowSelected as Yx,metadataKeys as Zx,selectItem as qx}from"@vuu-ui/vuu-utils";import{useCallback as Jx,useRef as Gu}from"react";var{IDX:eC}=Zx,tC=[],Yo=({selectionModel:t,onSelectionChange:e})=>{let n=Gu(-1),o=Gu(tC);return Jx((s,i,l)=>{let{[eC]:a}=s,{current:c}=n,{current:u}=o,p=(Yx(s)?jx:qx)(t,u,a,i,l,c);o.current=p,n.current=a,e&&e(p)},[e,t])};import{applyFilterToColumns as nC,applyGroupByToColumns as oC,applySortToColumns as rC,findColumn as sC,getCellRenderer as iC,getColumnName as lC,getTableHeadings as aC,getValueFormatter as cC,isFilteredColumn as uC,isGroupColumn as dC,isPinned as pC,isTypeDescriptor as mC,metadataKeys as fC,updateColumn as Uu,sortPinnedColumns as Xu,stripFilterFromColumns as hC,moveItem as gC}from"@vuu-ui/vuu-utils";import{useReducer as bC}from"react";var yC=100,Qu=fC.count,xC=({serverDataType:t})=>t===void 0,CC=t=>{var e;if(mC(t.type))return iC((e=t.type)==null?void 0:e.renderer)},ju=(t,e)=>{if(t.serverDataType)return t.serverDataType;if(e){let n=e.columns.find(o=>o.name===t.name);if(n)return n.serverDataType}return"string"},vC=["int","long","double"],Yu=t=>t===void 0?void 0:vC.includes(t)?"right":"left",tW=t=>t.type==="columnSettings",nW=t=>t.type==="tableSettings",TC=(t,e)=>{switch(e.type){case"init":return qu(e);case"moveColumn":return wC(t,e);case"resizeColumn":return DC(t,e);case"setTableSchema":return MC(t,e);case"hideColumns":return EC(t,e);case"showColumns":return RC(t,e);case"pinColumn":return IC(t,e);case"updateColumnProp":return Yt(t,e);case"tableConfig":return Ju(t,e);default:return console.log(`unhandled action ${e.type}`),t}},Zu=(t,e)=>{let[n,o]=bC(TC,{tableConfig:t,dataSourceConfig:e},qu);return{columns:n.columns,dispatchColumnAction:o,headings:n.headings}};function qu({dataSourceConfig:t,tableConfig:e}){let n=e.columns.map(js(e)),o=n.some(pC)?Xu(n):n,r={columns:o,headings:aC(o)};if(t){let{columns:s,...i}=t;return Ju(r,{type:"tableConfig",...i})}else return r}var SC=(t,e)=>e==="uppercase"?t.toUpperCase():e==="capitalize"?t[0].toUpperCase()+t.slice(1).toLowerCase():t,js=t=>(e,n)=>{let o=ju(e,t.tableSchema),{columnDefaultWidth:r=yC,columnFormatHeader:s}=t,{align:i=Yu(o),key:l,name:a,label:c=a,width:u=r,...d}=e,p={...d,align:i,CellRenderer:CC(e),label:SC(c,s),key:l!=null?l:n+Qu,name:a,originalIdx:n,serverDataType:o,valueFormatter:cC(e),width:u};return dC(p)&&(p.columns=p.columns.map(m=>js(t)(m,m.key))),p};function wC(t,{column:e,moveBy:n,moveTo:o}){let{columns:r}=t;if(typeof n=="number"){let s=r.indexOf(e),i=r.slice(),[l]=i.splice(s,1);return i.splice(s+n,0,l),{...t,columns:i}}else if(typeof o=="number")return{...t,columns:gC(r,e,o)};return t}function EC(t,{columns:e}){return e.some(n=>n.hidden!==!0)?e.reduce((n,o)=>o.hidden!==!0?Yt(n,{type:"updateColumnProp",column:o,hidden:!0}):n,t):t}function RC(t,{columns:e}){return e.some(n=>n.hidden)?e.reduce((n,o)=>o.hidden?Yt(n,{type:"updateColumnProp",column:o,hidden:!1}):n,t):t}function DC(t,{column:e,phase:n,width:o}){let r="updateColumnProp",s=n!=="end";switch(n){case"begin":return Yt(t,{type:r,column:e,resizing:s});case"end":return Yt(t,{type:r,column:e,resizing:s,width:o});case"resize":return Yt(t,{type:r,column:e,width:o});default:throw Error(`useTableModel.resizeColumn, invalid resizePhase ${n}`)}}function MC(t,{tableSchema:e}){let{columns:n}=t;if(n.some(xC)){let o=n.map(r=>{var i;let s=ju(r,e);return{...r,align:(i=r.align)!=null?i:Yu(s),serverDataType:s}});return{...t,columns:o,tableSchema:e}}else return{...t,tableSchema:e}}function IC(t,e){let{columns:n}=t,{column:o,pin:r}=e;return n=Uu(n,o.name,{pin:r}),n=Xu(n),console.log({withPins:n}),{...t,columns:n}}function Yt(t,e){let{columns:n}=t,{align:o,column:r,hidden:s,label:i,resizing:l,width:a}=e,c={};return(o==="left"||o==="right")&&(c.align=o),typeof i=="string"&&(c.label=i),typeof l=="boolean"&&(c.resizing=l),typeof s=="boolean"&&(c.hidden=s),typeof a=="number"&&(c.width=a),n=Uu(n,r.name,c),{...t,columns:n}}function Ju(t,{columns:e,confirmed:n,filter:o,groupBy:r,sort:s}){let i=e&&e.length>0,l=r!==void 0,a=typeof(o==null?void 0:o.filter)=="string",c=s&&s.sortDefs.length>0,u=t;return i&&(u={...t,columns:e.map((d,p)=>{let m=lC(d),f=p+Qu,h=sC(u.columns,m);return h?h.key===f?h:{...h,key:f}:js(t)({name:d},p)})}),l&&(u={...t,columns:oC(u.columns,r,n)}),c&&(u={...t,columns:rC(u.columns,s)}),a?u={...t,columns:nC(u.columns,o)}:u.columns.some(uC)&&(u={...t,columns:hC(u.columns)}),u}import{useCallback as st,useRef as Nn}from"react";var ed=t=>{let{scrollLeft:e,scrollTop:n}=t,{clientHeight:o,clientWidth:r,scrollHeight:s,scrollWidth:i}=t,l=e/(i-r),a=n/(s-o);return[l,a]},PC=t=>{let{clientHeight:e,clientWidth:n,scrollHeight:o,scrollWidth:r}=t;return[r-n,o-e]},td=({onAttach:t,onDetach:e})=>{let n=Nn(null);return st(r=>{if(r)n.current=r,t==null||t(r);else if(n.current){let{current:s}=n;n.current=r,e==null||e(s)}},[t,e])},nd=({onHorizontalScroll:t,onVerticalScroll:e,viewport:n})=>{let o=Nn(!1),r=Nn({scrollTop:0,scrollLeft:0}),s=Nn(null),i=Nn(null),{maxScrollContainerScrollHorizontal:l,maxScrollContainerScrollVertical:a}=n,c=st(()=>{let{current:v}=i,{current:C}=s,{current:b}=o;if(b)o.current=!1;else if(v&&C){let[T,x]=ed(C),[w,R]=PC(v),M=Math.round(T*w),E=Math.round(x*R);console.log(`pctScrollTop ${x}, maxScrollTop ${R} rootScrollTop ${E}`),v.scrollTo({left:M,top:E,behavior:"auto"})}},[]),u=st(()=>{let{current:v}=i,{current:C}=s,{current:b}=r;if(v&&C){let{scrollLeft:T,scrollTop:x}=v,[w,R]=ed(v);o.current=!0,C.scrollLeft=Math.round(w*l),C.scrollTop=Math.round(R*a),b.scrollTop!==x&&(b.scrollTop=x,e==null||e(x,R)),b.scrollLeft!==T&&(b.scrollLeft=T,t==null||t(T))}},[l,a,t,e]),d=st(v=>{s.current=v,v.addEventListener("scroll",c,{passive:!0})},[c]),p=st(v=>{s.current=null,v.removeEventListener("scroll",c)},[c]),m=st(v=>{i.current=v,v.addEventListener("scroll",u,{passive:!0})},[u]),f=st(v=>{i.current=null,v.removeEventListener("scroll",u)},[u]),h=td({onAttach:m,onDetach:f}),g=td({onAttach:d,onDetach:p}),y=st(v=>{let{current:C}=i;if(C){if(o.current=!1,v.type==="scroll-page"){let{clientHeight:b,scrollLeft:T,scrollTop:x}=C,{direction:w}=v,R=w==="down"?b:-b,M=Math.min(Math.max(0,x+R),a);C.scrollTo({top:M,left:T,behavior:"auto"})}else if(v.type==="scroll-end"){let{direction:b}=v,T=b==="end"?a:0;C.scrollTo({top:T,left:C.scrollLeft,behavior:"auto"})}}},[a]);return{scrollbarContainerRef:g,contentContainerRef:h,requestScroll:y}};import{useCallback as LC,useMemo as Zo,useRef as kC}from"react";import{actualRowPositioning as HC,virtualRowPositioning as AC}from"@vuu-ui/vuu-utils";var OC=15e5,NC={contentHeight:0,contentWidth:0,getRowAtPosition:()=>-1,getRowOffset:()=>-1,horizontalScrollbarHeight:0,maxScrollContainerScrollHorizontal:0,maxScrollContainerScrollVertical:0,pinnedWidthLeft:0,pinnedWidthRight:0,rowCount:0,setPctScrollTop:()=>{},totalHeaderHeight:0,verticalScrollbarWidth:0,viewportBodyHeight:0},zC=t=>{let e=0,n=0,o=0;for(let r of t){let{hidden:s,pin:i,width:l}=r,a=s?0:l;i==="left"?e+=a:i==="right"?n+=a:o+=a}return{pinnedWidthLeft:e+4,pinnedWidthRight:n+4,unpinnedWidth:o}},qo=({columns:t,headerHeight:e,headings:n,rowCount:o,rowHeight:r,size:s})=>{let i=kC(0),a=Math.min(o,OC)*r,u=o*r-a,{pinnedWidthLeft:d,pinnedWidthRight:p,unpinnedWidth:m}=Zo(()=>zC(t),[t]),[f,h]=Zo(()=>HC(r),[r]),[g,y]=Zo(()=>u?AC(r,u,i):[f,h],[h,f,u,r]),v=LC(C=>{i.current=C},[]);return Zo(()=>{var C;if(s){let b=n.length,T=15,x=d+m+p,w=x>s.width?T:0,R=e*(1+b),M=a-(((C=s==null?void 0:s.height)!=null?C:0)-w)+R,E=x-s.width+d,I=(s.height-e)/r,S=Number.isInteger(I)?I+1:Math.ceil(I),D=s.height-R,L=a>D?T:0;return{contentHeight:a,getRowAtPosition:y,getRowOffset:g,horizontalScrollbarHeight:w,maxScrollContainerScrollHorizontal:E,maxScrollContainerScrollVertical:M,pinnedWidthLeft:d,pinnedWidthRight:p,rowCount:S,contentWidth:x,setPctScrollTop:v,totalHeaderHeight:R,verticalScrollbarWidth:L,viewportBodyHeight:D}}else return NC},[s,n.length,d,m,p,a,e,r,y,g,v])};import{getColumnsInViewport as od,itemsChanged as FC}from"@vuu-ui/vuu-utils";import{useCallback as rd,useEffect as VC,useMemo as $C,useRef as Ys,useState as BC}from"react";var sd=({columns:t,getRowAtPosition:e,setRange:n,viewportMeasurements:o})=>{let r=Ys(-1),{rowCount:s,contentWidth:i,maxScrollContainerScrollHorizontal:l}=o,a=i-l,c=Ys(0),[u,d]=$C(()=>od(t,c.current,c.current+a),[a,t]),p=Ys(d);VC(()=>{f(u)},[u]);let[m,f]=BC(u),h=rd(y=>{c.current=y;let[v,C]=od(t,y,y+a);FC(m,v)&&(p.current=C,f(v))},[a,t,m]),g=rd(y=>{let v=e(y);v!==r.current&&(r.current=v,n({from:v,to:v+s}))},[e,n,s]);return{columnsWithinViewport:m,onHorizontalScroll:h,onVerticalScroll:g,virtualColSpan:p.current}};var YC=[],{KEY:ZC,IS_EXPANDED:ld,IS_LEAF:ad}=UC,cd=({config:t,dataSource:e,headerHeight:n,onConfigChange:o,onFeatureEnabled:r,onFeatureInvocation:s,onSelectionChange:i,renderBufferSize:l=0,rowHeight:a,selectionModel:c,...u})=>{var ee,q;let[d,p]=jC(e.size),m=Zs(!1),f=Zs();if(f.current=e,e===void 0)throw Error("no data source provided to Vuu Table");let h=jo(u),g=Oe(B=>{p(B)},[]),{columns:y,dispatchColumnAction:v,headings:C}=Zu(t,e.config),{getRowAtPosition:b,getRowOffset:T,setPctScrollTop:x,...w}=qo({columns:y,headerHeight:n,headings:C,rowCount:d,rowHeight:a,size:h.innerSize}),R=Oe(({tableSchema:B})=>{B?(m.current=!0,v({type:"setTableSchema",tableSchema:B})):console.log("usbscription message with no schema")},[v]),M=Oe(B=>{e.select(B),i==null||i(B)},[e,i]),E=Yo({onSelectionChange:M,selectionModel:c}),{data:I,getSelectedRows:S,range:D,setRange:L}=Lu({dataSource:e,onFeatureEnabled:r,onFeatureInvocation:s,onSubscribed:R,onSizeChange:g,renderBufferSize:l,viewportRowCount:w.rowCount}),A=Zs();A.current=I;let H=Oe(B=>{m.current=!0,console.log("onPersistentColumnOperation, dispatchColumnAction",{action:B}),v(B)},[v]),P=Gn({dataSource:e,onPersistentColumnOperation:H}),k=Oe((B,J=!1,se)=>{e&&(e.sort=WC(e.sort,B,J,se))},[e]),N=Oe((B,J,se)=>{let oe=y.find(le=>le.name===J);if(oe)B==="end"&&(m.current=!0),v({type:"resizeColumn",phase:B,column:oe,width:se});else throw Error(`useDataTable.handleColumnResize, column ${J} not found`)},[y,v]),O=Oe((B,J)=>{let se=GC(J,B),oe=B[ZC];if(B[ld]){if(e.closeTreeNode(oe,!0),se){let le=y.indexOf(J);e.getRowsAtDepth(le+1).some(ae=>ae[ld]||ae[ad])||v({type:"hideColumns",columns:y.slice(le+2)})}}else if(e.openTreeNode(oe),se){let le=e.getChildRows(oe),ce=y.indexOf(J)+1,ae=[y[ce]];le.some(de=>de[ad])&&ae.push(y[ce+1]),ae.some(de=>de.hidden)&&v({type:"showColumns",columns:ae})}},[y,e,v]),{onVerticalScroll:F,onHorizontalScroll:$,columnsWithinViewport:G,virtualColSpan:W}=sd({columns:y,getRowAtPosition:b,setRange:L,viewportMeasurements:w}),Y=Oe((B,J)=>{x(J),F(B)},[F,x]),{requestScroll:V,...z}=nd({onHorizontalScroll:$,onVerticalScroll:Y,viewport:w,viewportHeight:((q=(ee=h.innerSize)==null?void 0:ee.height)!=null?q:0)-n}),K=Vu({columnCount:y.length,containerRef:h.containerRef,data:I,requestScroll:V,rowCount:e==null?void 0:e.size,viewportRange:D}),_=Oe(B=>{B?e&&e.groupBy.includes(B.name)&&(e.groupBy=e.groupBy.filter(J=>J!==B.name)):e.groupBy=[]},[e]),ne=Oe((B,J)=>{let se=e.columns[B],oe=XC(e.columns,se,J);oe!==e.columns&&(e.columns=oe,v({type:"tableConfig",columns:oe}))},[e,v]),U=Au({onDrop:ne});id(()=>{f.current&&(m.current=!0,v({type:"init",tableConfig:t,dataSourceConfig:f.current.config}))},[t,v]),id(()=>{e.on("config",(B,J)=>{m.current=!0,v({type:"tableConfig",...B,confirmed:J})})},[e,v]),QC(()=>{m.current&&(o==null||o({...t,columns:y}),m.current=!1)},[y,t,o]);let[j]=KC(),Z=Oe(B=>{var ae;let{current:J}=A,{current:se}=f,oe=B.target,le=oe==null?void 0:oe.closest("div[role='cell']"),ce=oe==null?void 0:oe.closest(".vuuTableRow");if(le&&ce&&J&&se){let{columns:de,selectedRowsCount:X}=se,Q=_C(de),te=parseInt((ae=ce.ariaRowIndex)!=null?ae:"-1"),re=Array.from(ce.childNodes).indexOf(le),pe=J.find(([we])=>we===te),Se=de[re];j(B,"grid",{columnMap:Q,columnName:Se,row:pe,selectedRows:X===0?YC:S(),viewport:e==null?void 0:e.viewport})}},[e==null?void 0:e.viewport,S,j]);return{columns:y,columnsWithinViewport:G,containerMeasurements:h,containerProps:K,data:I,dispatchColumnAction:v,getRowOffset:T,handleContextMenuAction:P,headings:C,onColumnResize:N,onContextMenu:Z,onRemoveColumnFromGroupBy:_,onRowClick:E,onSort:k,onToggleGroup:O,virtualColSpan:W,scrollProps:z,rowCount:d,viewportMeasurements:w,...U}};import tv from"classnames";import{isDataLoading as nv}from"@vuu-ui/vuu-utils";import{jsx as zn,jsxs as ud}from"react/jsx-runtime";var Tt="vuuTable",UW=({allowConfigEditing:t=!1,className:e,config:n,dataSource:o,headerHeight:r=25,height:s,id:i,onConfigChange:l,onFeatureEnabled:a,onFeatureInvocation:c,onSelectionChange:u,onShowConfigEditor:d,renderBufferSize:p=0,rowHeight:m=20,selectionModel:f="extended",style:h,width:g,zebraStripes:y=!1,...v})=>{let C=ev(i),{containerMeasurements:{containerRef:b,innerSize:T,outerSize:x},containerProps:w,dispatchColumnAction:R,draggable:M,draggedItemIndex:E,handleContextMenuAction:I,scrollProps:S,viewportMeasurements:D,...L}=cd({config:n,dataSource:o,renderBufferSize:p,headerHeight:r,height:s,onConfigChange:l,onFeatureEnabled:a,onFeatureInvocation:c,onSelectionChange:u,rowHeight:m,selectionModel:f,width:g}),A={...x,"--content-height":`${D.contentHeight}px`,"--horizontal-scrollbar-height":`${D.horizontalScrollbarHeight}px`,"--content-width":`${D.contentWidth}px`,"--pinned-width-left":`${D.pinnedWidthLeft}px`,"--pinned-width-right":`${D.pinnedWidthRight}px`,"--header-height":`${r}px`,"--row-height":`${m}px`,"--table-height":`${T==null?void 0:T.height}px`,"--table-width":`${T==null?void 0:T.width}px`,"--total-header-height":`${D.totalHeaderHeight}px`,"--vertical-scrollbar-width":`${D.verticalScrollbarWidth}px`,"--viewport-body-height":`${D.viewportBodyHeight}px`},H=tv(Tt,e,{[`${Tt}-zebra`]:y,[`${Tt}-loading`]:nv(L.columns)});return zn(qC,{menuActionHandler:I,menuBuilder:_n(o),children:ud("div",{...v,...w,className:H,id:C,ref:b,style:A,tabIndex:-1,children:[T?zn("div",{className:`${Tt}-scrollbarContainer`,ref:S.scrollbarContainerRef,children:zn("div",{className:`${Tt}-scrollbarContent`})}):null,T?ud("div",{className:`${Tt}-contentContainer`,ref:S.contentContainerRef,children:[zn(fu,{...L,headerHeight:r,tableId:C}),M]}):null,t&&T?zn(JC,{className:`${Tt}-settings`,"data-icon":"settings",onClick:d,variant:"secondary"}):null]})})};import ov from"classnames";import{isJsonAttribute as rv,metadataKeys as sv,registerComponent as iv}from"@vuu-ui/vuu-utils";import{jsx as qs,jsxs as dv}from"react/jsx-runtime";var Fn="vuuJsonCell",{IS_EXPANDED:lv,KEY:av}=sv,cv=t=>{let e=t.lastIndexOf("|");return e===-1?"":t.slice(e+1)},uv=({column:t,row:e})=>{let{key:n}=t,o=e[n],r=!1;rv(o)&&(o=o.slice(0,-1),r=!0);let s=cv(e[av]),i=ov({[`${Fn}-name`]:s===o,[`${Fn}-value`]:s!==o,[`${Fn}-group`]:r});if(r){let l=e[lv]?"minus-box":"plus-box";return dv("span",{className:i,children:[qs("span",{className:`${Fn}-value`,children:o}),qs("span",{className:`${Fn}-toggle`,"data-icon":l})]})}else return o?qs("span",{className:i,children:o}):null};iv("json",uv,"cell-renderer",{});import{ContextMenuProvider as PT}from"@vuu-ui/vuu-popups";import{metadataKeys as LT,notHidden as kT}from"@vuu-ui/vuu-utils";import{useCallback as wv,useRef as Ev}from"react";import{getColumnStyle as pv}from"@vuu-ui/vuu-utils";import mv from"classnames";import{useMemo as fv}from"react";var Zt=(t,e,n)=>fv(()=>{let o=mv(e,{vuuPinFloating:t.pin==="floating",vuuPinLeft:t.pin==="left",vuuPinRight:t.pin==="right",vuuEndPin:n&&t.endPin,[`${e}-resizing`]:t.resizing,[`${e}-right`]:t.align==="right"}),r=pv(t);return{className:o,style:r}},[t,e,n]);import{useContextMenu as hv}from"@vuu-ui/vuu-popups";import gv from"classnames";import{useCallback as dd,useRef as bv,useState as yv}from"react";import{jsx as Cv}from"react/jsx-runtime";var xv=t=>{if(t){let{bottom:e,left:n}=t.getBoundingClientRect();return{x:n,y:e+6}}},pd=({className:t,column:e,...n})=>{let o=bv(null),[r,s]=yv(!1),[i]=hv(),l=dd(()=>{s(!1)},[]),a=dd(c=>{s(!0),i(c,"column-menu",{column:e,ContextMenuProps:{onClose:l,position:xv(o.current)}})},[e,l,i]);return Cv("span",{...n,className:gv("vuuTable-columnMenu",t,{"vuuTable-columnMenu-open":r}),"data-icon":"more-vert",onClick:a,ref:o})};import{useCallback as Js,useRef as vv}from"react";import{jsx as Sv}from"react/jsx-runtime";var md=()=>{},Tv="vuuColumnResizer",fd=({onDrag:t,onDragEnd:e=md,onDragStart:n=md})=>{let o=vv(0),r=Js(l=>{l.stopPropagation&&l.stopPropagation(),l.preventDefault&&l.preventDefault();let a=Math.round(l.clientX),c=a-o.current;o.current=a,c!==0&&t(l,c)},[t]),s=Js(l=>{window.removeEventListener("mouseup",s),window.removeEventListener("mousemove",r),e(l)},[e,r]),i=Js(l=>{n(l),o.current=Math.round(l.clientX),window.addEventListener("mouseup",s),window.addEventListener("mousemove",r),l.stopPropagation&&l.stopPropagation(),l.preventDefault&&l.preventDefault()},[n,r,s]);return Sv("div",{className:Tv,"data-align":"end",onMouseDown:i})};import{useCallback as ei,useRef as hd}from"react";var gd=({column:t,onResize:e,rootRef:n})=>{let o=hd(0),r=hd(!1),{name:s}=t,i=ei(()=>{if(e&&n.current){console.log("handleResizeStart");let{width:c}=n.current.getBoundingClientRect();o.current=Math.round(c),r.current=!0,e==null||e("begin",s)}},[s,e,n]),l=ei((c,u)=>{if(n.current&&e){let{width:d}=n.current.getBoundingClientRect(),p=Math.round(d)+u;p!==o.current&&p>0&&(e("resize",s,p),o.current=p)}},[s,e,n]),a=ei(()=>{e&&(e("end",s,o.current),setTimeout(()=>{r.current=!1},100))},[s,e]);return{isResizing:r.current,onDrag:l,onDragStart:i,onDragEnd:a}};import{jsx as Jo,jsxs as Rv}from"react/jsx-runtime";var bd=({classBase:t,column:e,onClick:n,onResize:o,idx:r})=>{let s=Ev(null),{isResizing:i,...l}=gd({column:e,onResize:o,rootRef:s}),a=`${t}-col-header`,c=wv(p=>!i&&(n==null?void 0:n(p)),[i,n]),{className:u,style:d}=Zt(e,a,!0);return Rv("div",{className:u,"data-idx":r,onClick:c,ref:s,role:"cell",style:d,children:[Jo(pd,{column:e}),Jo("div",{className:`${a}-label`,children:e.name}),Jo(Bo,{sorted:e.sorted}),e.resizeable!==!1?Jo(fd,{...l}):null]})};import{isGroupColumn as Hv,metadataKeys as Av,notHidden as Ov,RowSelected as Nv}from"@vuu-ui/vuu-utils";import zv from"classnames";import{memo as Fv,useCallback as Vv}from"react";import{jsx as Dv}from"react/jsx-runtime";var yd=({column:t,row:e})=>{let{className:n,style:o}=Zt(t,"vuuTableNextCell");return Dv("div",{className:n,role:"cell",style:o,children:e[t.key]})};import{getGroupValueAndOffset as Mv,metadataKeys as Iv}from"@vuu-ui/vuu-utils";import{useCallback as Pv}from"react";import{jsx as ti,jsxs as kv}from"react/jsx-runtime";var{IS_LEAF:Lv}=Iv,xd=({column:t,onClick:e,row:n})=>{let{columns:o}=t,[r,s]=Mv(o,n),{className:i,style:l}=Zt(t,"vuuTable2-groupCell"),a=Pv(d=>{e==null||e(d,t)},[t,e]),c=n[Lv],u=Array(s).fill(0).map((d,p)=>ti("span",{className:"vuuTable2-groupCell-spacer"},p));return kv("div",{className:i,role:"cell",style:l,onClick:c?void 0:a,children:[u,c?null:ti("span",{className:"vuuTable2-groupCell-toggle","data-icon":"vuu-triangle-right"}),ti("span",{children:r})]})};import{jsx as ni}from"react/jsx-runtime";import{createElement as Wv}from"react";var{IDX:$v,IS_EXPANDED:Bv,SELECTED:Kv}=Av,it="vuuTableNextRow",oi=Fv(({className:t,columnMap:e,columns:n,row:o,offset:r,onClick:s,onToggleGroup:i,...l})=>{let{[$v]:a,[Bv]:c,[Kv]:u}=o,d=Vv(y=>{let v=y.shiftKey,C=y.ctrlKey||y.metaKey;s==null||s(o,v,C)},[s,o]),{True:p,First:m,Last:f}=Nv,h=zv(it,t,{[`${it}-even`]:a%2===0,[`${it}-expanded`]:c,[`${it}-selected`]:u&p,[`${it}-selectedStart`]:u&m,[`${it}-selectedEnd`]:u&f}),g=typeof r=="number"?{transform:`translate3d(0px, ${r}px, 0px)`}:void 0;return Wv("div",{...l,key:`row-${o[0]}`,role:"row",className:h,onClick:d,style:g},ni("span",{className:`${it}-selectionDecorator vuuStickyLeft`}),n.filter(Ov).map(y=>{let C=Hv(y)?xd:yd;return ni(C,{column:y,row:o},y.key)}),ni("span",{className:`${it}-selectionDecorator vuuStickyRight`}))});oi.displayName="Row";import{useContextMenu as RT}from"@vuu-ui/vuu-popups";import{applySort as DT,buildColumnMap as Od,isValidNumber as Nd,updateColumn as MT,visibleColumnAtIndex as IT}from"@vuu-ui/vuu-utils";import{useCallback as St,useMemo as er,useState as zd}from"react";var ri=(t,e)=>{switch(e.type){case"col-size":return{...t,columns:t.columns.map(n=>n.name===e.column.name?{...n,width:e.width}:n)};case"column-prop":return{...t,columns:t.columns.map(n=>n.name===e.column.name?{...n,[e.property]:e.value}:n)};default:return t}};import{useCallback as _v,useMemo as Gv,useState as Uv}from"react";var Cd=({dataSource:t,initialRange:e})=>{let[n,o]=Uv([]);Gv(()=>{t==null||t.subscribe({range:e},s=>{s.type==="viewport-update"&&s.rows&&o(s.rows)})},[t,e]);let r=_v(s=>{t.range=s},[t]);return{data:n,setRange:r}};import{useMemo as Xv,useRef as Qv}from"react";var vd=t=>{let e=Qv(t);return Xv(()=>e.current,[])};import{applyFilterToColumns as jv,applyGroupByToColumns as Yv,applySortToColumns as Zv,findColumn as qv,getCellRenderer as Jv,getColumnName as eT,getTableHeadings as tT,getValueFormatter as nT,isFilteredColumn as oT,isGroupColumn as rT,isPinned as sT,isTypeDescriptor as iT,logger as lT,metadataKeys as aT,sortPinnedColumns as Td,stripFilterFromColumns as cT}from"@vuu-ui/vuu-utils";import{useReducer as uT}from"react";var{info:si}=lT("useTableModel"),dT=100,Sd=aT.count,pT=({serverDataType:t})=>t===void 0,mT=t=>{var e;if(iT(t.type))return Jv((e=t.type)==null?void 0:e.renderer)},fT=(t,e)=>{var o;let n=e.columns.find(({name:r})=>r===t.name);return n?n.serverDataType:(o=t.serverDataType)!=null?o:"string"},hT=["int","long","double"],wd=t=>t===void 0?void 0:hT.includes(t)?"right":"left",Ed=t=>t.type==="columnSettings",Rd=t=>t.type==="tableSettings",gT=(t,e)=>{switch(si==null||si(`GridModelReducer ${e.type}`),e.type){case"init":return Md(e);case"moveColumn":return yT(t,e);case"resizeColumn":return vT(t,e);case"setTableSchema":return TT(t,e);case"hideColumns":return xT(t,e);case"showColumns":return CT(t,e);case"pinColumn":return ST(t,e);case"updateColumnProp":return Jt(t,e);case"tableConfig":return Pd(t,e);default:return console.log(`unhandled action ${e.type}`),t}},Dd=(t,e)=>{let[n,o]=uT(gT,{tableConfig:t,dataSourceConfig:e},Md);return{columns:n.columns,dispatchColumnAction:o,headings:n.headings}};function Md({dataSourceConfig:t,tableConfig:e}){let n=e.columns.map(Id(e)),o=n.some(sT)?Td(n):n,r={columns:o,headings:tT(o)};if(t){let{columns:s,...i}=t;return Pd(r,{type:"tableConfig",...i})}else return r}var bT=(t,e)=>e==="uppercase"?t.toUpperCase():e==="capitalize"?t[0].toUpperCase()+t.slice(1).toLowerCase():t,Id=t=>(e,n)=>{let{columnDefaultWidth:o=dT,columnFormatHeader:r}=t,{align:s=wd(e.serverDataType),key:i,name:l,label:a=l,width:c=o,...u}=e,d={...u,align:s,CellRenderer:mT(e),label:bT(a,r),key:i!=null?i:n+Sd,name:l,originalIdx:n,valueFormatter:nT(e),width:c};return rT(d)&&(d.columns=d.columns.map(p=>Id(t)(p,p.key))),d};function yT(t,{column:e,moveBy:n,moveTo:o}){let{columns:r}=t;if(typeof n=="number"){let s=r.indexOf(e),i=r.slice(),[l]=i.splice(s,1);return i.splice(s+n,0,l),{...t,columns:i}}else if(typeof o=="number"){let s=r.indexOf(e);return{...t,columns:Ci(r,s,o)}}return t}function xT(t,{columns:e}){return e.some(n=>n.hidden!==!0)?e.reduce((n,o)=>o.hidden!==!0?Jt(n,{type:"updateColumnProp",column:o,hidden:!0}):n,t):t}function CT(t,{columns:e}){return e.some(n=>n.hidden)?e.reduce((n,o)=>o.hidden?Jt(n,{type:"updateColumnProp",column:o,hidden:!1}):n,t):t}function vT(t,{column:e,phase:n,width:o}){let r="updateColumnProp",s=n!=="end";switch(n){case"begin":return Jt(t,{type:r,column:e,resizing:s});case"end":return Jt(t,{type:r,column:e,resizing:s,width:o});case"resize":return Jt(t,{type:r,column:e,width:o});default:throw Error(`useTableModel.resizeColumn, invalid resizePhase ${n}`)}}function TT(t,{tableSchema:e}){let{columns:n}=t;if(n.some(pT)){let o=n.map(r=>{var i;let s=fT(r,e);return{...r,align:(i=r.align)!=null?i:wd(s),serverDataType:s}});return{...t,columns:o}}else return t}function ST(t,e){let{columns:n}=t,{column:o,pin:r}=e,s=n.find(i=>i.name===o.name);return s?(n=qt(n,{...s,pin:r}),n=Td(n),{...t,columns:n}):t}function Jt(t,e){let{columns:n}=t,{align:o,column:r,hidden:s,label:i,resizing:l,width:a}=e,c=n.find(u=>u.name===r.name);return c&&((o==="left"||o==="right")&&(n=qt(n,{...c,align:o})),typeof i=="string"&&(n=qt(n,{...c,label:i})),typeof l=="boolean"&&(n=qt(n,{...c,resizing:l})),typeof s=="boolean"&&(n=qt(n,{...c,hidden:s})),typeof a=="number"&&(n=qt(n,{...c,width:a}))),{...t,columns:n}}function Pd(t,{columns:e,confirmed:n,filter:o,groupBy:r,sort:s}){let i=e&&e.length>0,l=r!==void 0,a=typeof(o==null?void 0:o.filter)=="string",c=s&&s.sortDefs.length>0,u=t;return i&&(u={...t,columns:e.map((d,p)=>{let m=eT(d),f=p+Sd,h=qv(u.columns,m);if(h)return h.key===f?h:{...h,key:f};throw Error(`useTableModel column ${d} not found`)})}),l&&(u={...t,columns:Yv(u.columns,r,n)}),c&&(u={...t,columns:Zv(u.columns,s)}),a?u={...t,columns:jv(u.columns,o)}:u.columns.some(oT)&&(u={...t,columns:cT(u.columns)}),u}function qt(t,e){return t.map(n=>n.name===e.name?e:n)}import{useCallback as lt,useRef as Vn}from"react";var Ld=t=>{let{scrollLeft:e,scrollTop:n}=t,{clientHeight:o,clientWidth:r,scrollHeight:s,scrollWidth:i}=t,l=e/(i-r),a=n/(s-o);return[l,a]},kd=({onAttach:t,onDetach:e})=>{let n=Vn(null);return lt(r=>{if(r)n.current=r,t==null||t(r);else if(n.current){let{current:s}=n;n.current=r,e==null||e(s)}},[t,e])},Hd=({maxScrollLeft:t,maxScrollTop:e,onHorizontalScroll:n,onVerticalScroll:o})=>{let r=Vn(!1),s=Vn({scrollTop:0,scrollLeft:0}),i=Vn(null),l=Vn(null),a=lt(()=>{let{current:y}=l,{current:v}=i,{current:C}=r;if(C)r.current=!1;else if(y&&v){let[b,T]=Ld(v),x=Math.round(b*t),w=Math.round(T*e);y.scrollTo({left:x,top:w,behavior:"auto"})}},[t,e]),c=lt(()=>{let{current:y}=l,{current:v}=i,{current:C}=s;if(y&&v){let{scrollLeft:b,scrollTop:T}=y,[x,w]=Ld(y);r.current=!0,v.scrollLeft=Math.round(x*t),v.scrollTop=Math.round(w*e),C.scrollTop!==T&&(C.scrollTop=T,o==null||o(T,w)),C.scrollLeft!==b&&(C.scrollLeft=b,n==null||n(b))}},[t,e,n,o]),u=lt(y=>{i.current=y,y.addEventListener("scroll",a,{passive:!0})},[a]),d=lt(y=>{i.current=null,y.removeEventListener("scroll",a)},[a]),p=lt(y=>{l.current=y,y.addEventListener("scroll",c,{passive:!0})},[c]),m=lt(y=>{l.current=null,y.removeEventListener("scroll",c)},[c]),f=kd({onAttach:p,onDetach:m}),h=kd({onAttach:u,onDetach:d}),g=lt(y=>{let{current:v}=l;if(v){if(r.current=!1,y.type==="scroll-page"){let{clientHeight:C,scrollLeft:b,scrollTop:T}=v,{direction:x}=y,w=x==="down"?C:-C,R=Math.min(Math.max(0,T+w),e);v.scrollTo({top:R,left:b,behavior:"auto"})}else if(y.type==="scroll-end"){let{direction:C}=y,b=C==="end"?e:0;v.scrollTo({top:b,left:v.scrollLeft,behavior:"auto"})}}},[]);return{scrollbarContainerRef:h,contentContainerRef:f,requestScroll:g}};import{useCallback as wT,useRef as ET}from"react";var Ad=({columns:t,getRowAtPosition:e,setRange:n,viewportMeasurements:o})=>{let r=ET(-1),{contentWidth:s,rowCount:i}=o;return{onVerticalScroll:wT(a=>{let c=e(a);c!==r.current&&(r.current=c,n({from:c,to:c+i}))},[e,n,i])}};var Fd=({config:t,dataSource:e,headerHeight:n,onConfigChange:o,onFeatureEnabled:r,onFeatureInvocation:s,onSelectionChange:i,rowHeight:l,selectionModel:a,...c})=>{let[u]=zd(e.size),d=Ie();if(e===void 0)throw Error("no data source provided to Vuu Table");let p=er(()=>_n(e),[e]),{containerRef:m,...f}=jo(c),{columns:h,dispatchColumnAction:g,headings:y}=Dd(t,e.config);eo(()=>{g({type:"init",dataSourceConfig:e.config,tableConfig:t})},[t,e.config,g]);let[v,C]=zd(),[b,T]=er(()=>{let z=(K,_)=>{let ne=MT(h,K,{width:_});C(ne)};return[v!=null?v:h,z]},[h,v]),x=er(()=>Od(t.columns.map(z=>z.name)),[t.columns]),{getRowAtPosition:w,getRowOffset:R,setPctScrollTop:M,...E}=qo({columns:b,headerHeight:n,headings:y,rowCount:u,rowHeight:l,size:f.innerSize}),I=vd({from:0,to:E.rowCount+1}),{data:S,setRange:D}=Cd({dataSource:e,initialRange:I});er(()=>{let{range:{from:z,to:K}}=e;E.rowCount!==K-1-z&&(e.range={from:z,to:z+E.rowCount+1})},[e,E.rowCount]);let L=St(z=>{Ed(z)?d({type:"set-props",path:"#context-panel",props:{expanded:!0,context:"column-settings",column:z.column,title:"Column Settings"}}):Rd(z)?d({type:"set-props",path:"#context-panel",props:{expanded:!0,content:{type:"TableSettings",props:{availableColumns:t.columns.map(({name:K,serverDataType:_})=>({name:K,serverDataType:_})),onConfigChange:o,tableConfig:t}},title:"DataGrid Settings"}}):g(z)},[t,g,d,o]),A=Gn({dataSource:e,onPersistentColumnOperation:L}),{onVerticalScroll:H}=Ad({columns:b,getRowAtPosition:w,setRange:D,viewportMeasurements:E}),P=St(z=>{H(z)},[H]),{requestScroll:k,...N}=Hd({maxScrollLeft:E.maxScrollContainerScrollHorizontal,maxScrollTop:E.maxScrollContainerScrollVertical,onVerticalScroll:P}),[O]=RT(),F=St(z=>{let K=z.target,_=K==null?void 0:K.closest("div[role='cell']"),ne=K==null?void 0:K.closest("div[role='row']");if(_&&ne){let U=Od(b),j=Array.from(ne.childNodes).indexOf(_),Z=b[j];O(z,"grid",{columnMap:U,columnName:Z})}},[b,O]),$=St((z,K=!1,_)=>{e&&(e.sort=DT(e.sort,z,K,_))},[e]),G=St(z=>{var Z;let _=z.target.closest(".TableNext-col-header"),ne=parseInt((Z=_==null?void 0:_.dataset.idx)!=null?Z:"-1"),U=IT(b,ne),j=z.shiftKey;U&&$(U,j)},[b,$]),W=St(z=>{e.select(z),i==null||i(z)},[e,i]),Y=Yo({onSelectionChange:W,selectionModel:a}),V=St((z,K,_)=>{let ne=b.find(U=>U.name===K);if(ne)z==="resize"?Nd(_)&&T(K,_):z==="end"?Nd(_)&&(o==null||o(ri(t,{type:"col-size",column:ne,width:_}))):(C(void 0),g({type:"resizeColumn",phase:z,column:ne,width:_}));else throw Error(`useDataTable.handleColumnResize, column ${K} not found`)},[b,t,g,o,T]);return{columnMap:x,columns:b,containerRef:m,containerMeasurements:f,data:S,handleContextMenuAction:A,menuBuilder:p,onContextMenu:F,onHeaderClick:G,onHeaderResize:V,onRowClick:Y,scrollProps:N,viewportMeasurements:E}};import{jsx as Ke,jsxs as Vd}from"react/jsx-runtime";var Be="vuuTableNext",{IDX:HT,RENDER_IDX:AT}=LT,OT=({className:t,config:e,dataSource:n,headerHeight:o=25,height:r,id:s,onConfigChange:i,onFeatureEnabled:l,onFeatureInvocation:a,onSelectionChange:c,onShowConfigEditor:u,renderBufferSize:d=0,rowHeight:p=20,selectionModel:m="extended",style:f,width:h,...g})=>{let{columnMap:y,columns:v,containerMeasurements:{cssSize:C,innerSize:b},containerRef:T,data:x,handleContextMenuAction:w,onHeaderClick:R,onHeaderResize:M,onRowClick:E,menuBuilder:I,scrollProps:S,viewportMeasurements:D,...L}=Fd({config:e,dataSource:n,renderBufferSize:d,headerHeight:o,height:r,onConfigChange:i,onFeatureEnabled:l,onFeatureInvocation:a,onSelectionChange:c,rowHeight:p,selectionModel:m,width:h}),A=b===void 0,H=()=>A?{"--table-css-height":`${C.height}`,"--table-css-width":`${C.width}`}:{...f,"--content-height":`${D.contentHeight}px`,"--horizontal-scrollbar-height":`${D.horizontalScrollbarHeight}px`,"--content-width":`${D.contentWidth}px`,"--pinned-width-left":`${D.pinnedWidthLeft}px`,"--pinned-width-right":`${D.pinnedWidthRight}px`,"--header-height":`${o}px`,"--row-height":`${p}px`,"--table-css-height":`${C==null?void 0:C.height}`,"--table-css-width":`${C==null?void 0:C.width}`,"--table-height":`${b==null?void 0:b.height}px`,"--table-width":`${b==null?void 0:b.width}px`,"--total-header-height":`${D.totalHeaderHeight}px`,"--vertical-scrollbar-width":`${D.verticalScrollbarWidth}px`,"--viewport-body-height":`${D.viewportBodyHeight}px`};return Ke(PT,{menuActionHandler:w,menuBuilder:I,children:A?Ke("div",{...g,className:Be,style:H(),ref:T}):Vd("div",{...g,className:Be,style:H(),ref:T,children:[Ke("div",{className:`${Be}-scrollbarContainer`,ref:S.scrollbarContainerRef,children:Ke("div",{className:`${Be}-scrollbarContent`})}),Ke("div",{className:`${Be}-contentContainer`,ref:S.contentContainerRef,children:Vd("div",{...L,className:`${Be}-table`,children:[Ke("div",{className:`${Be}-col-headings`,children:Ke("div",{className:`${Be}-col-headers`,role:"row",children:v.filter(kT).map((P,k)=>Ke(bd,{classBase:Be,column:P,idx:k,onClick:R,onResize:M},P.name))})}),Ke("div",{className:`${Be}-body`,children:x.map(P=>Ke(oi,{columnMap:y,columns:v,onClick:E,row:P,offset:p*P[HT]+o},P[AT]))})]})})]})})};export{Wn as ColumnResizer,UW as Table,OT as TableNext,_n as buildContextMenuDescriptors,tW as isShowColumnSettings,nW as isShowTableSettings,ri as updateTableConfig,jo as useMeasuredContainer,Yo as useSelection,$o as useTableColumnResize,Gn as useTableContextMenu,Zu as useTableModel,qo as useTableViewport};
|
|
21
22
|
//# sourceMappingURL=index.js.map
|