@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/cjs/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict";var rd=Object.create;var Rr=Object.defineProperty;var od=Object.getOwnPropertyDescriptor;var sd=Object.getOwnPropertyNames;var id=Object.getPrototypeOf,ld=Object.prototype.hasOwnProperty;var ad=(n,e)=>{for(var t in e)Rr(n,t,{get:e[t],enumerable:!0})},js=(n,e,t,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of sd(e))!ld.call(n,o)&&o!==t&&Rr(n,o,{get:()=>e[o],enumerable:!(r=od(e,o))||r.enumerable});return n};var V=(n,e,t)=>(t=n!=null?rd(id(n)):{},js(e||!n||!n.__esModule?Rr(t,"default",{value:n,enumerable:!0}):t,n)),cd=n=>js(Rr({},"__esModule",{value:!0}),n);var qs=(n,e,t)=>{if(!e.has(n))throw TypeError("Cannot "+t)};var nt=(n,e,t)=>(qs(n,e,"read from private field"),t?t.call(n):e.get(n)),Js=(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)},Po=(n,e,t,r)=>(qs(n,e,"write to private field"),r?r.call(n,t):e.set(n,t),t);var Ch={};ad(Ch,{ColumnResizer:()=>zt,Table:()=>Ym,TableNext:()=>Ju,buildContextMenuDescriptors:()=>Xn,isShowColumnSettings:()=>Gs,isShowTableSettings:()=>Us,useMeasuredContainer:()=>xr,useSelection:()=>Cr,useTableColumnResize:()=>Zt,useTableContextMenu:()=>Qn,useTableModel:()=>Xs,useTableViewport:()=>Tr});module.exports=cd(Ch);var ln=require("react");var ti=require("react/jsx-runtime"),ei=()=>{},ud="vuuColumnResizer",zt=({onDrag:n,onDragEnd:e=ei,onDragStart:t=ei})=>{let r=(0,ln.useRef)(0),o=(0,ln.useCallback)(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=(0,ln.useCallback)(l=>{window.removeEventListener("mouseup",s),window.removeEventListener("mousemove",o),e(l)},[e,o]),i=(0,ln.useCallback)(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(0,ti.jsx)("div",{className:ud,"data-align":"end",onMouseDown:i})};var ni=require("@vuu-ui/vuu-utils"),Xn=n=>(e,t)=>{let r=[];if(n===void 0)return r;if(e==="header"||e==="column-menu")r.push(...dd(t,n)),r.push(...md(t,n)),r.push(...pd(t,n)),r.push(...fd(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 dd(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 pd(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((0,ni.isNumericColumn)(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 Ao=(n,e)=>({label:`Pin ${e}`,action:`column-pin-${e}`,options:n}),Lo=n=>Ao(n,"left"),ko=n=>Ao(n,"floating"),Io=n=>Ao(n,"right");function fd(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:[Lo(n),ko(n),Io(n)]}):t==="left"?r.push({label:"Unpin column",action:"column-unpin",options:n},{label:"Pin column",children:[ko(n),Io(n)]}):t==="right"?r.push({label:"Unpin column",action:"column-unpin",options:n},{label:"Pin column",children:[Lo(n),ko(n)]}):t==="floating"&&r.push({label:"Unpin column",action:"column-unpin",options:n},{label:"Pin column",children:[Lo(n),Io(n)]}),r}function md(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}var ri=require("@vuu-ui/vuu-utils"),ue=require("@vuu-ui/vuu-utils"),hd=(n,e)=>{if(n.filterStruct&&e){let[t,r]=(0,ri.removeColumnFromFilter)(e,n.filterStruct);return{filter:r,filterStruct:t}}else return n},{Average:gd,Count:bd,Distinct:yd,High:xd,Low:vd,Sum:Cd}=ue.AggregationType,Qn=({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=(0,ue.setSortColumn)(n.sort,s,"A"),!0;case"sort-dsc":return n.sort=(0,ue.setSortColumn)(n.sort,s,"D"),!0;case"sort-add-asc":return n.sort=(0,ue.addSortColumn)(n.sort,s,"A"),!0;case"sort-add-dsc":return n.sort=(0,ue.addSortColumn)(n.sort,s,"D"),!0;case"group":return n.groupBy=(0,ue.addGroupColumn)(n.groupBy,s),!0;case"group-add":return n.groupBy=(0,ue.addGroupColumn)(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=hd(n.filter,s),!0;case"remove-filters":return n.filter={filter:""},!0;case"agg-avg":return n.aggregations=(0,ue.setAggregations)(n.aggregations,s,gd),!0;case"agg-high":return n.aggregations=(0,ue.setAggregations)(n.aggregations,s,xd),!0;case"agg-low":return n.aggregations=(0,ue.setAggregations)(n.aggregations,s,vd),!0;case"agg-count":return n.aggregations=(0,ue.setAggregations)(n.aggregations,s,bd),!0;case"agg-distinct":return n.aggregations=(0,ue.setAggregations)(n.aggregations,s,yd),!0;case"agg-sum":return n.aggregations=(0,ue.setAggregations)(n.aggregations,s,Cd),!0;case"column-pin-floating":return e({type:"pinColumn",column:s,pin:"floating"}),!0;case"column-pin-left":return e({type:"pinColumn",column:s,pin:"left"}),!0;case"column-pin-right":return e({type:"pinColumn",column:s,pin:"right"}),!0;case"column-unpin":return e({type:"pinColumn",column:s,pin:void 0}),!0;case"column-settings":return e({type:"columnSettings",column:s}),!0;case"table-settings":return e({type:"tableSettings"}),!0;default:}}return!1};var bu=require("@vuu-ui/vuu-popups"),To=require("@salt-ds/core");var Be=require("@vuu-ui/vuu-utils"),Pn=require("react");var Ye=require("@vuu-ui/vuu-utils"),mc=V(require("classnames")),dr=require("react");var co=require("@vuu-ui/vuu-utils");var an=require("react"),Ed=require("react/jsx-runtime"),Td={isDragSource:!1,isDropTarget:!1,register:()=>{}},wd=()=>console.log("have you forgotten to provide a DragDrop Provider ?"),Sd=(0,an.createContext)({registerDragDropParty:wd});var oi=n=>{var o,s;let{dragSources:e,dropTargets:t,registerDragDropParty:r}=(0,an.useContext)(Sd);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 Td};var de=require("react");var We=require("react");var Rd=["left","right"],Dd=["top","bottom"],Dr=":not(.wrapped)",si=':not([aria-hidden="true"])',ii=n=>{let e=n.cloneNode(!0);return e.removeAttribute("id"),e.dataset.index="-1",e},Md=(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"?Rd:Dd,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]},Pd={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"}},Ne=n=>Pd[n],li=(n,e)=>{let t=n.find(r=>r.id===e);if(t)return t},ai=(n,e)=>{n.splice(e,1);for(let t=e;t<n.length;t++)n[t].currentIndex-=1},cn=(n,e,t,r,o)=>{var p;let s=[],{DIMENSION:i}=Ne(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]=Md(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},Zn=n=>n.findIndex(e=>e.isDraggedItem),Oo=(n,e)=>{let t=Zn(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)}},un=(n,e,t)=>{let r=n.length,o=Zn(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 ci(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 ui=(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}}};var pi=require("@salt-ds/core");function di(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=di(n[e]))&&(r&&(r+=" "),r+=t);else for(e in n)n[e]&&(r&&(r+=" "),r+=e);return r}function Mr(){for(var n,e,t=0,r="";t<arguments.length;)(n=arguments[t++])&&(e=di(n))&&(r&&(r+=" "),r+=e);return r}var Pr=require("react"),fi=require("@vuu-ui/vuu-popups");var Ho=require("react/jsx-runtime"),Ld=n=>n.split(" ").map(e=>`vuuDraggable-${e}`),Lr=(0,Pr.forwardRef)(function({wrapperClassName:e,element:t,onTransitionEnd:r,style:o,scale:s=1},i){let l=(0,Pr.useCallback)(c=>{c&&(c.innerHTML="",c.appendChild(t),s!==1&&(c.style.transform=`scale(${s},${s})`))},[t,s]),a=(0,pi.useForkRef)(i,l);return(0,Ho.jsx)(fi.Portal,{children:(0,Ho.jsx)("div",{className:Mr("vuuDraggable",...Ld(e)),ref:a,onTransitionEnd:r,style:o})})}),No=n=>{let e=document.createElement("div");return e.className="vuuDraggable-spacer",n&&e.addEventListener("transitionend",()=>{n.current=!1}),e},mi=()=>{let n=document.createElement("div");return n.className="vuuDraggable-dropIndicatorPosition",n},hi=n=>{let e=document.createElement("div");return e.className="vuuDraggable-dropIndicator",n&&e.addEventListener("transitionend",()=>{n.current=!1}),e};var gi=()=>{let n=(0,We.useRef)(0),e=(0,We.useRef)(!1),t=(0,We.useMemo)(()=>[No(e),No()],[]),r=(0,We.useCallback)(()=>t.forEach(a=>a.remove()),[t]),o=(0,We.useCallback)((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=(0,We.useCallback)(()=>{n.current&&(cancelAnimationFrame(n.current),n.current=0)},[]),i=(0,We.useCallback)((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"&&Oo(a,d)}},[o,s,r,t]),l=(0,We.useCallback)((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"&&Oo(a,d)},[o,s,r,t]);return{displaceItem:i,displaceLastItem:l,clearSpacers:r}};var bi=({draggableRef:n,onDrop:e,orientation:t="horizontal",containerRef:r,itemQuery:o="*",selected:s,viewportRange:i})=>{let l=(0,de.useRef)(),a=(0,de.useRef)(!1),c=(0,de.useRef)(-1),u=(0,de.useRef)([]),p=(0,de.useRef)(!1),[d,f]=(0,de.useState)(!1),{clearSpacers:m,displaceItem:h,displaceLastItem:x}=gi(),v=(0,de.useRef)(),C=`:is(${o}${Dr}${si},.vuuOverflowContainer-OverflowIndicator)`,y=S=>u.current.findIndex(M=>M.id===S.id),b=(0,de.useRef)();b.current=i;let T=(0,de.useCallback)(()=>{m()},[m]),g=(0,de.useCallback)((S,M,I)=>{let{current:L}=r,{current:k}=v;if(L&&k){u.current=cn(L,t,C,b.current);let{size:O}=k,N=c.current+O/2,{current:H}=u,B=un(H,N,"fwd");if(B){let K=y(B),_=H[K];I&&S==="fwd"?x(H,H[H.length-1],O,!1,"static",t):h(H,_,O,!0,"static",t)}}},[r,h,x,C,t]),w=(0,de.useCallback)(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}=Ne(t),{id:A}=I,{[k]:N,[O]:H}=L;a.current=N>H;let B=u.current=cn(L,t,C,i,A);console.log({dropTargets:B});let z=Zn(B),K=B[z];K&&L&&(v.current=K,(K.isLast?x:h)(B,K,K.size,!1,"static",t))}},[r,h,x,C,o,t,s,i]),[D,P]=(0,de.useMemo)(()=>{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=(0,de.useCallback)((S,M)=>{let{current:I}=v;if(I&&n.current&&r.current){c.current=S;let{current:L}=u,k=un(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=(0,de.useCallback)(()=>{var L;m();let{current:S}=u,M=Zn(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}};var le=require("react");var Yn=require("react");var yi=()=>{let n=(0,Yn.useMemo)(()=>mi(),[]),e=(0,Yn.useCallback)(()=>n.remove(),[n]);return{positionDropIndicator:(0,Yn.useCallback)((r,o="end")=>(o==="end"?r.element.after(n):r.element.before(n),n),[n]),clearSpacer:e}};var vi=require("react/jsx-runtime"),kd=':not([data-overflowed="true"])',Id=':not([aria-hidden="true"])',xi=({draggableRef:n,onDrop:e,orientation:t="horizontal",containerRef:r,itemQuery:o="*",selected:s,viewportRange:i})=>{let l=(0,le.useRef)(),a=(0,le.useRef)(null),c=(0,le.useRef)(null),u=(0,le.useRef)(""),p=(0,le.useRef)(!1),d=(0,le.useRef)(-1),f=(0,le.useRef)([]),m=(0,le.useRef)(!1),[h,x]=(0,le.useState)(!1),[v,C]=(0,le.useState)(),{clearSpacer:y,positionDropIndicator:b}=yi(),T=(0,le.useRef)(),g=`:is(${o}${kd}${Id},[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=(0,le.useRef)();P.current=i;let E=(0,le.useCallback)(()=>{y()},[y]),R=(0,le.useCallback)((L,k,O)=>{let{current:A}=r,{current:N}=T;if(A&&N){f.current=cn(A,t,g,P.current);let{size:H}=N,z=d.current+H/2,{current:K}=f,_=un(K,z,"fwd");_&&b(O&&L==="fwd"?K[K.length-1]:_,"start")}},[r,b,g,t]),S=(0,le.useCallback)(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}=Ne(t),{id:B}=O,{[N]:z,[H]:K}=A;p.current=z>K;let _=f.current=cn(A,t,g,i),q=li(_,B);if(q&&A){let F=w(q);ai(_,F),T.current=q;let{current:$}=P;if($!=null&&$.atEnd)for(let J=0;J<_.length;J++)D(_[J],q.size);for(let J=F;J<_.length;J++)D(_[J],-q.size,-1);let[Q,ge]=q.isLast?[_[_.length-1],"end"]:[_[F],"start"];c.current=Q,u.current=ge;let tt=b(Q,ge),{top:U,left:Z,width:se}=tt.getBoundingClientRect(),re={top:q.isLast?$!=null&&$.atEnd&&!$.atStart?U+q.size-2:U-2:U-q.size-2,left:Z,width:se,height:2};C((0,vi.jsx)(Lr,{wrapperClassName:"dropIndicatorContainer",style:re,ref:a,element:hi()}))}}},[o,s,r,t,g,i,b]),M=(0,le.useCallback)((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,B=un(H,L,k);if(B&&B.index!==(O==null?void 0:O.index)){if(B.isOverflowIndicator)x(m.current=!0);else if(a.current){if(w(B)===H.length-1){let K=H[H.length-1],q=b(K,"start").getBoundingClientRect();a.current.style[N]=`${q.top}px`}else{let _=b(B,"start").getBoundingClientRect();a.current.style[N]=`${_.top}px`}x(m.current=!1)}c.current=B,l.current=k}}},[n,r,t,b]),I=(0,le.useCallback)(()=>{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:B,currentIndex:z}=k;c.current=null,l.current=void 0,m.current?e(N,-1):N<B?e(N,H?z:z+1):e(N,H?B:B+1),C(void 0)}x(!1)},[y,e]);return{beginDrag:S,drag:M,drop:I,dropIndicator:v,handleScrollStart:E,handleScrollStop:R,revealOverflowedItems:h}};var Y=require("react");var yt=require("react");var Ci=({containerRef:n,onScrollingStopped:e,orientation:t="vertical"})=>{let r=(0,yt.useRef)(null),o=(0,yt.useRef)(!1),s=(0,yt.useRef)(0),i=(0,yt.useRef)("fwd"),l=(0,yt.useCallback)((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=(0,yt.useCallback)((c,u,p=30)=>{let{current:d}=n;if(d){let{SCROLL_POS:f,SCROLL_SIZE:m,CLIENT_SIZE:h}=Ne(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}};var wi=require("react/jsx-runtime"),Ad={beginDrag:()=>{},drag:()=>{},draggableRef:{current:null},drop:()=>{},isDragging:!1,isScrolling:!1,handleScrollStart:()=>{},handleScrollStop:()=>{},revealOverflowedItems:!1},Ti={start:0,end:1e3,contraStart:0,contraEnd:1e3},Od=()=>Ad,Hd=3,Nd=(n,e)=>n.closest(e),zd=n=>n.dataset.index==="overflow"&&n.parentElement!==null&&n.parentElement.classList.contains("overflowed"),Fd=(n,e)=>{let t=`:is(${e}${Dr},.vuuOverflowContainer-OverflowIndicator)`,o=Array.from(n.querySelectorAll(t)).pop();return[o,zd(o)]},kr=({allowDragDrop:n,containerRef:e,draggableClassName:t,itemQuery:r="*",onDragStart:o,onDrop:s,onDropSettle:i,orientation:l,...a})=>{let c=(0,Y.useRef)({start:0,end:0,contraStart:0,contraEnd:0}),[u,p]=(0,Y.useState)({draggable:void 0,draggedItemIndex:-1,isDragging:!1}),d=(0,Y.useRef)(null),f=(0,Y.useRef)(),m=(0,Y.useRef)(null),h=(0,Y.useRef)(!1),x=(0,Y.useRef)({x:0,y:0}),v=(0,Y.useRef)({x:0,y:0}),C=(0,Y.useRef)({x:0,y:0}),y=(0,Y.useRef)(null),b=(0,Y.useRef)(-1),T=(0,Y.useRef)(-1),g=(0,Y.useRef)(),{isDragSource:w,isDropTarget:D,register:P}=oi(a.id);a.id&&(w||D)&&P(a.id);let E=(0,Y.useCallback)(()=>{var se;let{current:U}=T,Z=(se=e.current)==null?void 0:se.querySelector(`${r}[data-index="${U}"]`);Z&&Z.classList.remove("vuuDropTarget-settling"),T.current=-1,i==null||i(U),p(re=>({...re,draggable:void 0}))},[e,r,i]),R=(0,Y.useCallback)(U=>{if(e.current){let{POS:Z,SCROLL_POS:se,SCROLL_SIZE:re,CLIENT_SIZE:J}=Ne(l),{[se]:W,[re]:ee,[J]:ce}=e.current,te=ee-ce,be=W<te,ke=c.current.end,ye=W>0&&U-x.current[Z]<=c.current.start,Ie=be&&U-x.current[Z]>=ke;return ye?"bwd":Ie?"fwd":""}},[e,l]),S=n===!0||n==="natural-movement"?bi:n==="drop-indicator"?xi:Od,M=(0,Y.useCallback)((U,Z,se)=>{var re;(re=g.current)==null||re.call(g,U,Z,se)},[]),{isScrolling:I,startScrolling:L,stopScrolling:k}=Ci({containerRef:e,onScrollingStopped:M,orientation:l}),O=(0,Y.useCallback)((U,Z)=>{b.current=Z,s==null||s(U,Z),T.current=Z},[s]),{beginDrag:A,drag:N,drop:H,handleScrollStart:B,handleScrollStop:z,...K}=S({...a,containerRef:e,draggableRef:d,isDragSource:w,isDropTarget:D,itemQuery:r,onDrop:O,orientation:l});g.current=z;let _=(0,Y.useCallback)(U=>{let{CLIENT_POS:Z,CONTRA_CLIENT_POS:se,CONTRA_POS:re,POS:J}=Ne(l),{clientX:W,clientY:ee}=U,{[Z]:ce,[se]:te}=U,be=v.current[J],ke=v.current[re],ye=Math.abs(be-ce);if((w?Math.abs(ke-te):0)-ye>5&&(c.current=Ti),v.current.x=W,v.current.y=ee,c.current===Ti&&d.current){let Nt=v.current.x-x.current.x,lt=v.current.y-x.current.y;d.current.style.top=`${lt}px`,d.current.style.left=`${Nt}px`}else if(ye>0&&d.current){let Nt=be<ce?"fwd":"bwd",lt=R(ce),Gn=v.current[J]-x.current[J];if(lt&&h.current&&!I.current?(B(),L(lt,1)):!lt&&I.current&&k(),!I.current){let on=Math.round(Math.max(c.current.start,Math.min(c.current.end,Gn))),Ke=l==="horizontal"?"left":"top";d.current.style[Ke]=`${on}px`,N(on,Nt)}}},[N,d,R,B,w,I,l,L,k]),q=(0,Y.useCallback)(()=>{document.removeEventListener("mousemove",_,!1),document.removeEventListener("mouseup",q,!1),y.current=d.current,H(),p(U=>({...U,draggedItemIndex:-1,isDragging:!1})),f.current=void 0},[_,d,H]),F=(0,Y.useCallback)(U=>{let{clientX:Z,clientY:se,target:re}=U,J=Nd(re,r),{current:W}=e;if(W&&J){let{CONTRA:ee,CONTRA_END:ce,DIMENSION:te,END:be,SCROLL_SIZE:ke,CLIENT_SIZE:ye,START:Ie}=Ne(l);f.current=J;let{[ke]:Nt,[ye]:lt}=W;h.current=Nt>lt;let[Gn,on]=Fd(W,r),Ke=W.getBoundingClientRect(),sn=J.getBoundingClientRect(),Un=sn[te],{[Ie]:ed,[be]:td}=Gn.getBoundingClientRect();x.current.x=Z-sn.left,x.current.y=se-sn.top,c.current.start=Ke[Ie],c.current.end=on?Math.max(ed,Ke.right-Un):h.current?Ke[Ie]+Ke[te]-Un:td-Un,c.current.contraStart=Ke[ee],c.current.contraEnd=Ke[ce],A(U);let{dataset:{index:nd="-1"}}=J;p({isDragging:!0,draggable:(0,wi.jsx)(Lr,{element:ii(J),onTransitionEnd:E,ref:d,style:ci(sn,Ke),wrapperClassName:t}),draggedItemIndex:parseInt(nd)}),o==null||o(),document.addEventListener("mousemove",_,!1),document.addEventListener("mouseup",q,!1)}},[A,e,_,q,t,d,r,o,l,E]),$=(0,Y.useCallback)(U=>{let{CLIENT_POS:Z,POS:se}=Ne(l),{[Z]:re}=U;Math.abs(re-C.current[se])>Hd&&e.current&&(m.current&&(window.clearTimeout(m.current),m.current=null),document.removeEventListener("mousemove",$),document.removeEventListener("mouseup",Q,!1),F(U))},[e,A,l]),Q=(0,Y.useCallback)(()=>{m.current&&(window.clearTimeout(m.current),m.current=null),document.removeEventListener("mousemove",$,!1),document.removeEventListener("mouseup",Q,!1)},[$]),ge=(0,Y.useCallback)(U=>{console.log("useDragDropNext onMouseDown");let{current:Z}=e;if(Z&&!U.defaultPrevented){let{clientX:se,clientY:re}=U;v.current.x=C.current.x=se,v.current.y=C.current.y=re,document.addEventListener("mousemove",$,!1),document.addEventListener("mouseup",Q,!1),U.persist(),m.current=window.setTimeout(()=>{document.removeEventListener("mousemove",$,!1),document.removeEventListener("mouseup",Q,!1),F(U.nativeEvent)},500)}},[e,F,$,Q]),{current:tt}=y;return(0,Y.useLayoutEffect)(()=>{if(tt&&e.current){let U=b.current,Z=e.current.querySelector(`${r}[data-index="${U}"]`);Z?(Z.classList.add("vuuDropTarget-settling"),requestAnimationFrame(()=>{let{top:se,left:re}=Z.getBoundingClientRect(),{top:J,left:W}=tt.getBoundingClientRect();W!==re||J!==se?(tt.classList.add("vuuDraggable-settling"),tt.style.top=`${se}px`,tt.style.left=`${re}px`):E()})):console.log(`dont have the dropped item (at ${U})`),y.current=null}},[e,r,tt,E]),{...K,...u,isScrolling:I,onMouseDown:n?ge:void 0}};var _e=require("react"),jn=require("@salt-ds/core");var Fo=require("react/jsx-runtime"),zo="vuuEditableLabel",dn=(0,_e.forwardRef)(function({className:e,defaultEditing:t,defaultValue:r,editing:o,onChange:s,onEnterEditMode:i,onExitEditMode:l,value:a,...c},u){let p=(0,_e.useRef)(null),d=(0,_e.useRef)(!1),[f,m]=(0,jn.useControlled)({controlled:a,default:r!=null?r:"",name:"EditableLabel",state:"value"}),[h,x]=(0,jn.useControlled)({controlled:o,default:t!=null?t:!1,name:"EditableLabel",state:"editing"}),v=(0,_e.useCallback)(E=>{x(d.current=E)},[]),C=(0,_e.useRef)(f);(0,_e.useLayoutEffect)(()=>{h&&p.current!==null&&(p.current.select(),p.current.focus())},[h,p]);let y=(0,_e.useCallback)(()=>{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=Mr(zo,e,{[`${zo}-editing`]:h});return(0,Fo.jsx)("div",{...c,className:P,onDoubleClick:g,"data-text":f,ref:u,children:h?(0,Fo.jsx)(jn.Input,{inputProps:{className:`${zo}-input`},value:f,onBlur:w,onChange:T,onKeyDown:D,inputRef:p,style:{padding:0},textAlign:"left",variant:"secondary"}):f})});var Bo=require("@vuu-ui/vuu-utils"),Di=V(require("classnames"));var $d={},Vd={},Ir={};function pe(n,e,t="component"){Ir[n]=e,t==="container"?$d[n]=!0:t==="view"&&(Vd[n]=!0)}var qn=require("@salt-ds/core"),$o=V(require("classnames")),Ei=require("react");var vt=require("react/jsx-runtime"),xt="vuuDrawer",Si=n=>typeof n=="string"?n:n+"px",Bd=(n,e,t)=>{let r=e!==void 0,o=t!==void 0;if(!(!n&&!o&&!r))return!o&&!r?n:{...n,"--drawer-size":r?Si(e):void 0,"--drawer-peek-size":o?Si(t):void 0}},Ri=({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]=(0,qn.useControlled)({controlled:l,default:r!=null?r:!1,name:"Drawer",state:"open"}),x=(0,$o.default)(xt,e,`${xt}-${a}`,{[`${xt}-open`]:m,[`${xt}-inline`]:c,[`${xt}-over`]:!c,[`${xt}-peekaboo`]:p}),v=(0,Ei.useCallback)(()=>{h(!m)},[m,h]),C=Bd(i,o,s),y=t?v:u,b=()=>(0,vt.jsx)("div",{className:(0,$o.default)("vuuToggleButton-container"),children:m?(0,vt.jsx)(qn.Button,{"aria-label":"close",onClick:v,"data-icon":"close",variant:"secondary"}):(0,vt.jsx)(qn.Button,{"aria-label":"open",onClick:v,"data-icon":"close",variant:"secondary"})});return(0,vt.jsxs)("div",{...f,className:x,onClick:y,style:C,children:[d=="start"?b():null,(0,vt.jsx)("div",{className:`${xt}-liner`,children:(0,vt.jsx)("div",{className:`${xt}-content`,children:n})}),d=="end"?b():null]})};Ri.displayName="Drawer";var Vo=Ri;var Ar=require("react/jsx-runtime"),Kd=n=>n.type===Vo,Wd=({props:{position:n="left"}})=>n.match(/top|bottom/),Mi=n=>{let{children:e,className:t,id:r,style:o}=n,s="vuuDockLayout",[i,l]=(0,Bo.partition)(e,Kd),[a,c]=(0,Bo.partition)(i,Wd),u=a.length===0?"horizontal":c.length===0?"vertical":"both",p=(0,Di.default)(s,t,`${s}-${u}`);return(0,Ar.jsxs)("div",{className:p,id:r,style:o,children:[i,(0,Ar.jsx)("div",{className:`${s}-content`,children:l})]})};Mi.displayName="DockLayout";pe("DockLayout",Mi,"container");var Pi=require("react");var Li=require("react/jsx-runtime"),Ko=(0,Pi.forwardRef)(function({resizeable:e,...t},r){return(0,Li.jsx)("div",{...t,className:"Component",ref:r})});Ko.displayName="Component";var Wo=Ko;pe("Component",Ko);var ki=V(require("react"));var _d={},at=(n,e)=>{var r;let t=ve(n);return(r=t[e])!=null?r:t[`data-${e}`]},ve=n=>(n==null?void 0:n.props)||n||_d;var Ge=require("react"),Gd=[],Ud=0,pn=n=>{let e=Array.isArray(n),t=e?n.length:Ge.Children.count(n);return e&&n.every(Ge.isValidElement)?n:t===1&&!e&&(0,Ge.isValidElement)(n)?[n]:t>1?n:Gd},Ii=(n,e)=>{let t=(0,Ge.useRef)(!1);(0,Ge.useLayoutEffect)(()=>{t.current?n():t.current=!0},e)},Or=n=>(0,Ge.useMemo)(()=>n!=null?n:`vuu-${++Ud}`,[n]);var Go={north:1,east:2,south:4,west:8,header:16,centre:32,absolute:64},Uo={AFTER:"after",BEFORE:"before"},Ct=Object.freeze({North:Ft("north"),East:Ft("east"),South:Ft("south"),West:Ft("west"),Header:Ft("header"),Centre:Ft("centre"),Absolute:Ft("absolute")});function Ft(n){return Object.freeze({offset:n==="north"||n==="west"?0:n==="south"||n==="east"?1:NaN,valueOf:function(){return Go[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 Mb=Ct.North,Pb=Ct.South,Lb=Ct.East,kb=Ct.West,Ib=Ct.Header,Ab=Ct.Centre;var{north:Qd,south:Zd,east:Yd,west:jd}=Go,Kb=Yd+jd,Wb=Qd+Zd;var Hr=require("@vuu-ui/vuu-popups");var Ai=V(require("classnames"));var Qo=require("react/jsx-runtime");function Oi(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 Xo="vuuDropMenu",Hi=({className:n,dropTarget:e,onHover:t,orientation:r})=>{let o=e.toArray();return(0,Qo.jsx)("div",{className:(0,Ai.default)(Xo,n,`${Xo}-${r}`),onMouseLeave:()=>t(null),children:o.map((s,i)=>(0,Qo.jsx)("div",{className:`${Xo}-item`,"data-icon":i===0?"column-2A":"column-2B",onMouseEnter:()=>t(s)},i))})};var $i=require("react/jsx-runtime"),Zo=!1,Jn=null,Ue=null,qd=n=>Jn=n,Jd=([n,e])=>`M${n},${e}`,ep=([n,e])=>`L${n},${e}`,Ni=([n,...e])=>`${Jd(n)} ${e.map(ep)}Z`,tp=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 np(){if(document.getElementById("hw-drag-canvas")===null){let n=document.getElementById("root"),e=document.createElement("div");e.id="hw-drag-canvas",e.innerHTML=`
|
|
1
|
+
"use strict";var Dm=Object.create;var yr=Object.defineProperty;var Mm=Object.getOwnPropertyDescriptor;var Im=Object.getOwnPropertyNames;var Pm=Object.getPrototypeOf,Lm=Object.prototype.hasOwnProperty;var km=(t,e)=>{for(var n in e)yr(t,n,{get:e[n],enumerable:!0})},xl=(t,e,n,o)=>{if(e&&typeof e=="object"||typeof e=="function")for(let r of Im(e))!Lm.call(t,r)&&r!==n&&yr(t,r,{get:()=>e[r],enumerable:!(o=Mm(e,r))||o.enumerable});return t};var _=(t,e,n)=>(n=t!=null?Dm(Pm(t)):{},xl(e||!t||!t.__esModule?yr(n,"default",{value:t,enumerable:!0}):n,t)),Hm=t=>xl(yr({},"__esModule",{value:!0}),t);var Cl=(t,e,n)=>{if(!e.has(t))throw TypeError("Cannot "+n)};var yt=(t,e,n)=>(Cl(t,e,"read from private field"),n?n.call(t):e.get(t)),vl=(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)},zs=(t,e,n,o)=>(Cl(t,e,"write to private field"),o?o.call(t,n):e.set(t,n),n);var zy={};km(zy,{ColumnResizer:()=>Io,Table:()=>dy,TableNext:()=>Cm,buildContextMenuDescriptors:()=>Po,isShowColumnSettings:()=>jb,isShowTableSettings:()=>Yb,updateTableConfig:()=>Hs,useMeasuredContainer:()=>cr,useSelection:()=>dr,useTableColumnResize:()=>nr,useTableContextMenu:()=>Lo,useTableModel:()=>ml,useTableViewport:()=>pr});module.exports=Hm(zy);var Hn=require("react");var Sl=require("react/jsx-runtime"),Tl=()=>{},Am="vuuColumnResizer",Io=({onDrag:t,onDragEnd:e=Tl,onDragStart:n=Tl})=>{let o=(0,Hn.useRef)(0),r=(0,Hn.useCallback)(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=(0,Hn.useCallback)(l=>{window.removeEventListener("mouseup",s),window.removeEventListener("mousemove",r),e(l)},[e,r]),i=(0,Hn.useCallback)(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(0,Sl.jsx)("div",{className:Am,"data-align":"end",onMouseDown:i})};var wl=require("@vuu-ui/vuu-utils"),Po=t=>(e,n)=>{let o=[];if(t===void 0)return o;if(e==="header"||e==="column-menu")o.push(...Om(n,t)),o.push(...Fm(n,t)),o.push(...Nm(n,t)),o.push(...zm(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 Om(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 Nm(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((0,wl.isNumericColumn)(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 Bs=(t,e)=>({label:`Pin ${e}`,action:`column-pin-${e}`,options:t}),Fs=t=>Bs(t,"left"),Vs=t=>Bs(t,"floating"),$s=t=>Bs(t,"right");function zm(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:[Fs(t),Vs(t),$s(t)]}):n==="left"?o.push({label:"Unpin column",action:"column-unpin",options:t},{label:"Pin column",children:[Vs(t),$s(t)]}):n==="right"?o.push({label:"Unpin column",action:"column-unpin",options:t},{label:"Pin column",children:[Fs(t),Vs(t)]}):n==="floating"&&o.push({label:"Unpin column",action:"column-unpin",options:t},{label:"Pin column",children:[Fs(t),$s(t)]}),o}function Fm(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}var El=require("@vuu-ui/vuu-utils"),we=require("@vuu-ui/vuu-utils"),Vm=(t,e)=>{if(t.filterStruct&&e){let[n,o]=(0,El.removeColumnFromFilter)(e,t.filterStruct);return{filter:o,filterStruct:n}}else return t},{Average:$m,Count:Bm,Distinct:Km,High:Wm,Low:_m,Sum:Gm}=we.AggregationType,Lo=({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=(0,we.setSortColumn)(t.sort,s,"A"),!0;case"sort-dsc":return t.sort=(0,we.setSortColumn)(t.sort,s,"D"),!0;case"sort-add-asc":return t.sort=(0,we.addSortColumn)(t.sort,s,"A"),!0;case"sort-add-dsc":return t.sort=(0,we.addSortColumn)(t.sort,s,"D"),!0;case"group":return t.groupBy=(0,we.addGroupColumn)(t.groupBy,s),!0;case"group-add":return t.groupBy=(0,we.addGroupColumn)(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=Vm(t.filter,s),!0;case"remove-filters":return t.filter={filter:""},!0;case"agg-avg":return t.aggregations=(0,we.setAggregations)(t.aggregations,s,$m),!0;case"agg-high":return t.aggregations=(0,we.setAggregations)(t.aggregations,s,Wm),!0;case"agg-low":return t.aggregations=(0,we.setAggregations)(t.aggregations,s,_m),!0;case"agg-count":return t.aggregations=(0,we.setAggregations)(t.aggregations,s,Bm),!0;case"agg-distinct":return t.aggregations=(0,we.setAggregations)(t.aggregations,s,Km),!0;case"agg-sum":return t.aggregations=(0,we.setAggregations)(t.aggregations,s,Gm),!0;case"column-pin-floating":return e({type:"pinColumn",column:s,pin:"floating"}),!0;case"column-pin-left":return e({type:"pinColumn",column:s,pin:"left"}),!0;case"column-pin-right":return e({type:"pinColumn",column:s,pin:"right"}),!0;case"column-unpin":return e({type:"pinColumn",column:s,pin:void 0}),!0;case"column-settings":return e({type:"columnSettings",column:s}),!0;case"table-settings":return e({type:"tableSettings"}),!0;default:}}return!1};var Ap=require("@vuu-ui/vuu-popups"),Ms=require("@salt-ds/core");var rt=require("@vuu-ui/vuu-utils"),co=require("react");var mt=require("@vuu-ui/vuu-utils"),Ld=_(require("classnames")),er=require("react");var gs=require("@vuu-ui/vuu-utils");var An=require("react"),jm=require("react/jsx-runtime"),Um={isDragSource:!1,isDropTarget:!1,register:()=>{}},Xm=()=>console.log("have you forgotten to provide a DragDrop Provider ?"),Qm=(0,An.createContext)({registerDragDropParty:Xm});var Rl=t=>{var r,s;let{dragSources:e,dropTargets:n,registerDragDropParty:o}=(0,An.useContext)(Qm);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 Um};var Ee=require("react");var it=require("react");var Ym=["left","right"],Zm=["top","bottom"],xr=":not(.wrapped)",Dl=':not([aria-hidden="true"])',Ml=t=>{let e=t.cloneNode(!0);return e.removeAttribute("id"),e.dataset.index="-1",e},qm=(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"?Ym:Zm,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]},Jm={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"}},qe=t=>Jm[t],Il=(t,e)=>{let n=t.find(o=>o.id===e);if(n)return n},Pl=(t,e)=>{t.splice(e,1);for(let n=e;n<t.length;n++)t[n].currentIndex-=1},On=(t,e,n,o,r)=>{var d;let s=[],{DIMENSION:i}=qe(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]=qm(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},Nn=(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},Ks=(t,e)=>{let n=Nn(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)}},zn=(t,e,n)=>{let o=t.length,r=Nn(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 Ll(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 kl=(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}}};var Hl=require("@salt-ds/core"),Al=_(require("classnames")),Cr=require("react"),Ol=require("@vuu-ui/vuu-popups");var Ws=require("react/jsx-runtime"),ef=t=>t.split(" ").map(e=>`vuuDraggable-${e}`),vr=(0,Cr.forwardRef)(function({wrapperClassName:e,element:n,onTransitionEnd:o,style:r,scale:s=1},i){let l=(0,Cr.useCallback)(c=>{c&&(c.innerHTML="",c.appendChild(n),s!==1&&(c.style.transform=`scale(${s},${s})`))},[n,s]),a=(0,Hl.useForkRef)(i,l);return(0,Ws.jsx)(Ol.Portal,{children:(0,Ws.jsx)("div",{className:(0,Al.default)("vuuDraggable",...ef(e)),ref:a,onTransitionEnd:o,style:r})})}),_s=t=>{let e=document.createElement("div");return e.className="vuuDraggable-spacer",t&&e.addEventListener("transitionend",()=>{t.current=!1}),e},Nl=()=>{let t=document.createElement("div");return t.className="vuuDraggable-dropIndicatorPosition",t},zl=t=>{let e=document.createElement("div");return e.className="vuuDraggable-dropIndicator",t&&e.addEventListener("transitionend",()=>{t.current=!1}),e};var Fl=()=>{let t=(0,it.useRef)(0),e=(0,it.useRef)(!1),n=(0,it.useMemo)(()=>[_s(e),_s()],[]),o=(0,it.useCallback)(()=>n.forEach(a=>a.remove()),[n]),r=(0,it.useCallback)((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=(0,it.useCallback)(()=>{t.current&&(cancelAnimationFrame(t.current),t.current=0)},[]),i=(0,it.useCallback)((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"&&Ks(a,p)}},[r,s,o,n]),l=(0,it.useCallback)((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"&&Ks(a,p)},[r,s,o,n]);return{displaceItem:i,displaceLastItem:l,clearSpacers:o}};var Vl=({draggableRef:t,onDrop:e,orientation:n="horizontal",containerRef:o,itemQuery:r="*",selected:s,viewportRange:i})=>{let l=(0,Ee.useRef)(),a=(0,Ee.useRef)(!1),c=(0,Ee.useRef)(-1),u=(0,Ee.useRef)([]),d=(0,Ee.useRef)(!1),[p,m]=(0,Ee.useState)(!1),{clearSpacers:f,displaceItem:h,displaceLastItem:g}=Fl(),y=(0,Ee.useRef)(),v=`:is(${r}${xr}${Dl},.vuuOverflowContainer-OverflowIndicator)`,C=S=>u.current.findIndex(D=>D.id===S.id),b=(0,Ee.useRef)();b.current=i;let T=(0,Ee.useCallback)(()=>{f()},[f]),x=(0,Ee.useCallback)((S,D,L)=>{let{current:A}=o,{current:H}=y;if(A&&H){u.current=On(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=zn(O,N,"fwd");if(F){let U=C(F),W=O[U];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=(0,Ee.useCallback)(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}=qe(n),{id:k}=L,{[H]:N,[P]:O}=A;a.current=N>O;let F=u.current=On(A,n,v,i,k),$=Nn(F),U=F[$];if(U&&A){y.current=U;let W=U.isLast?g:h;console.log({indexOfDraggedItem:$,draggedItem:U}),W(F,U,U.size,!1,"static",n)}}},[o,h,g,v,r,n,s,i]),[R,M]=(0,Ee.useMemo)(()=>{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=(0,Ee.useCallback)((S,D)=>{let{current:L}=y;if(L&&t.current&&o.current){c.current=S;let{current:A}=u,H=zn(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=(0,Ee.useCallback)(()=>{var A;f();let{current:S}=u,D=Nn(S),L=S[D];if(L)if(l.current=void 0,d.current)e(L.index,-1);else{let H=Nn(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}};var xe=require("react");var ko=require("react");var $l=()=>{let t=(0,ko.useMemo)(()=>Nl(),[]),e=(0,ko.useCallback)(()=>t.remove(),[t]);return{positionDropIndicator:(0,ko.useCallback)((o,r="end")=>(r==="end"?o.element.after(t):o.element.before(t),t),[t]),clearSpacer:e}};var Kl=require("react/jsx-runtime"),tf=':not([data-overflowed="true"])',nf=':not([aria-hidden="true"])',Bl=({draggableRef:t,onDrop:e,orientation:n="horizontal",containerRef:o,itemQuery:r="*",selected:s,viewportRange:i})=>{let l=(0,xe.useRef)(),a=(0,xe.useRef)(null),c=(0,xe.useRef)(null),u=(0,xe.useRef)(""),d=(0,xe.useRef)(!1),p=(0,xe.useRef)(-1),m=(0,xe.useRef)([]),f=(0,xe.useRef)(!1),[h,g]=(0,xe.useState)(!1),[y,v]=(0,xe.useState)(),{clearSpacer:C,positionDropIndicator:b}=$l(),T=(0,xe.useRef)(),x=`:is(${r}${tf}${nf},[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=(0,xe.useRef)();M.current=i;let E=(0,xe.useCallback)(()=>{C()},[C]),I=(0,xe.useCallback)((A,H,P)=>{let{current:k}=o,{current:N}=T;if(k&&N){m.current=On(k,n,x,M.current);let{size:O}=N,$=p.current+O/2,{current:U}=m,W=zn(U,$,"fwd");W&&b(P&&A==="fwd"?U[U.length-1]:W,"start")}},[o,b,x,n]),S=(0,xe.useCallback)(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}=qe(n),{id:F}=P,{[N]:$,[O]:U}=k;d.current=$>U;let W=m.current=On(k,n,x,i),Z=Il(W,F);if(Z&&k){let V=w(Z);Pl(W,V),T.current=Z;let{current:z}=M;if(z!=null&&z.atEnd)for(let J=0;J<W.length;J++)R(W[J],Z.size);for(let J=V;J<W.length;J++)R(W[J],-Z.size,-1);let[K,G]=Z.isLast?[W[W.length-1],"end"]:[W[V],"start"];c.current=K,u.current=G;let se=b(K,G),{top:X,left:Y,width:q}=se.getBoundingClientRect(),ne={top:Z.isLast?z!=null&&z.atEnd&&!z.atStart?X+Z.size-2:X-2:X-Z.size-2,left:Y,width:q,height:2};v((0,Kl.jsx)(vr,{wrapperClassName:"dropIndicatorContainer",style:ne,ref:a,element:zl()}))}}},[r,s,o,n,x,i,b]),D=(0,xe.useCallback)((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=zn(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 U=O[O.length-1],Z=b(U,"start").getBoundingClientRect();a.current.style[N]=`${Z.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=(0,xe.useCallback)(()=>{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}};var ae=require("react");var Vt=require("react");var Wl=({containerRef:t,onScrollingStopped:e,orientation:n="vertical"})=>{let o=(0,Vt.useRef)(null),r=(0,Vt.useRef)(!1),s=(0,Vt.useRef)(0),i=(0,Vt.useRef)("fwd"),l=(0,Vt.useCallback)((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=(0,Vt.useCallback)((c,u,d=30)=>{let{current:p}=t;if(p){let{SCROLL_POS:m,SCROLL_SIZE:f,CLIENT_SIZE:h}=qe(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}};var Gl=require("react/jsx-runtime"),of={beginDrag:()=>{},drag:()=>{},draggableRef:{current:null},drop:()=>{},isDragging:!1,isScrolling:!1,handleScrollStart:()=>{},handleScrollStop:()=>{},revealOverflowedItems:!1},_l={start:0,end:1e3,contraStart:0,contraEnd:1e3},rf=()=>of,sf=3,lf=(t,e)=>t.closest(e),af=t=>t.dataset.index==="overflow"&&t.parentElement!==null&&t.parentElement.classList.contains("overflowed"),cf=(t,e)=>{let n=`:is(${e}${xr},.vuuOverflowContainer-OverflowIndicator)`,r=Array.from(t.querySelectorAll(n)).pop();return[r,af(r)]},Fn=({allowDragDrop:t,containerRef:e,draggableClassName:n,itemQuery:o="*",onDragStart:r,onDrop:s,onDropSettle:i,orientation:l,...a})=>{let c=(0,ae.useRef)({start:0,end:0,contraStart:0,contraEnd:0}),[u,d]=(0,ae.useState)({draggable:void 0,draggedItemIndex:-1,isDragging:!1}),p=(0,ae.useRef)(null),m=(0,ae.useRef)(),f=(0,ae.useRef)(null),h=(0,ae.useRef)(!1),g=(0,ae.useRef)({x:0,y:0}),y=(0,ae.useRef)({x:0,y:0}),v=(0,ae.useRef)({x:0,y:0}),C=(0,ae.useRef)(null),b=(0,ae.useRef)(-1),T=(0,ae.useRef)(-1),x=(0,ae.useRef)(),{isDragSource:w,isDropTarget:R,register:M}=Rl(a.id);a.id&&(w||R)&&M(a.id);let E=(0,ae.useCallback)(()=>{var q;let{current:X}=T,Y=(q=e.current)==null?void 0:q.querySelector(`${o}[data-index="${X}"]`);Y&&Y.classList.remove("vuuDropTarget-settling"),T.current=-1,i==null||i(X),d(ne=>({...ne,draggable:void 0}))},[e,o,i]),I=(0,ae.useCallback)(X=>{if(e.current){let{POS:Y,SCROLL_POS:q,SCROLL_SIZE:ne,CLIENT_SIZE:J}=qe(l),{[q]:B,[ne]:te,[J]:ue}=e.current,ie=te-ue,pe=B<ie,be=c.current.end,fe=B>0&&X-g.current[Y]<=c.current.start,Te=pe&&X-g.current[Y]>=be;return fe?"bwd":Te?"fwd":""}},[e,l]),S=t===!0||t==="natural-movement"?Vl:t==="drop-indicator"?Bl:rf,D=(0,ae.useCallback)((X,Y,q)=>{var ne;(ne=x.current)==null||ne.call(x,X,Y,q)},[]),{isScrolling:L,startScrolling:A,stopScrolling:H}=Wl({containerRef:e,onScrollingStopped:D,orientation:l}),P=(0,ae.useCallback)((X,Y)=>{b.current=Y,s==null||s(X,Y),T.current=Y},[s]),{beginDrag:k,drag:N,drop:O,handleScrollStart:F,handleScrollStop:$,...U}=S({...a,containerRef:e,draggableRef:p,isDragSource:w,isDropTarget:R,itemQuery:o,onDrop:P,orientation:l});x.current=$;let W=(0,ae.useCallback)(X=>{let{CLIENT_POS:Y,CONTRA_CLIENT_POS:q,CONTRA_POS:ne,POS:J}=qe(l),{clientX:B,clientY:te}=X,{[Y]:ue,[q]:ie}=X,pe=y.current[J],be=y.current[ne],fe=Math.abs(pe-ue);if((w?Math.abs(be-ie):0)-fe>5&&(c.current=_l),y.current.x=B,y.current.y=te,c.current===_l&&p.current){let Q=y.current.x-g.current.x,j=y.current.y-g.current.y;p.current.style.top=`${j}px`,p.current.style.left=`${Q}px`}else if(fe>0&&p.current){let Q=pe<ue?"fwd":"bwd",j=I(ue),oe=y.current[J]-g.current[J];if(j&&h.current&&!L.current?(F(),A(j,1)):!j&&L.current&&H(),!L.current){let le=Math.round(Math.max(c.current.start,Math.min(c.current.end,oe))),Se=l==="horizontal"?"left":"top";p.current.style[Se]=`${le}px`,N(le,Q)}}},[N,p,I,F,w,L,l,A,H]),Z=(0,ae.useCallback)(()=>{document.removeEventListener("mousemove",W,!1),document.removeEventListener("mouseup",Z,!1),C.current=p.current,O(),d(X=>({...X,draggedItemIndex:-1,isDragging:!1})),m.current=void 0},[W,p,O]),V=(0,ae.useCallback)(X=>{let{clientX:Y,clientY:q,target:ne}=X,J=lf(ne,o),{current:B}=e;if(B&&J){let{CONTRA:te,CONTRA_END:ue,DIMENSION:ie,END:pe,SCROLL_SIZE:be,CLIENT_SIZE:fe,START:Te}=qe(l);m.current=J;let{[be]:Q,[fe]:j}=B;h.current=Q>j;let[oe,le]=cf(B,o),Se=B.getBoundingClientRect(),Ye=J.getBoundingClientRect(),Ze=Ye[ie],{[Te]:Ft,[pe]:rn}=oe.getBoundingClientRect();g.current.x=Y-Ye.left,g.current.y=q-Ye.top,c.current.start=Se[Te],c.current.end=le?Math.max(Ft,Se.right-Ze):h.current?Se[Te]+Se[ie]-Ze:rn-Ze,c.current.contraStart=Se[te],c.current.contraEnd=Se[ue],k(X);let{dataset:{index:Rt="-1"}}=J;d({isDragging:!0,draggable:(0,Gl.jsx)(vr,{element:Ml(J),onTransitionEnd:E,ref:p,style:Ll(Ye,Se),wrapperClassName:n}),draggedItemIndex:parseInt(Rt)}),r==null||r(),document.addEventListener("mousemove",W,!1),document.addEventListener("mouseup",Z,!1)}},[k,e,W,Z,n,p,o,r,l,E]),z=(0,ae.useCallback)(X=>{let{CLIENT_POS:Y,POS:q}=qe(l),{[Y]:ne}=X;Math.abs(ne-v.current[q])>sf&&e.current&&(f.current&&(window.clearTimeout(f.current),f.current=null),document.removeEventListener("mousemove",z),document.removeEventListener("mouseup",K,!1),V(X))},[e,k,l]),K=(0,ae.useCallback)(()=>{f.current&&(window.clearTimeout(f.current),f.current=null),document.removeEventListener("mousemove",z,!1),document.removeEventListener("mouseup",K,!1)},[z]),G=(0,ae.useCallback)(X=>{let{current:Y}=e;if(Y&&!X.defaultPrevented){let{clientX:q,clientY:ne}=X;y.current.x=v.current.x=q,y.current.y=v.current.y=ne,document.addEventListener("mousemove",z,!1),document.addEventListener("mouseup",K,!1),X.persist(),f.current=window.setTimeout(()=>{document.removeEventListener("mousemove",z,!1),document.removeEventListener("mouseup",K,!1),V(X.nativeEvent)},500)}},[e,V,z,K]),{current:se}=C;return(0,ae.useLayoutEffect)(()=>{if(se&&e.current){let X=b.current,Y=e.current.querySelector(`${o}[data-index="${X}"]`);Y?(Y.classList.add("vuuDropTarget-settling"),requestAnimationFrame(()=>{let{top:q,left:ne}=Y.getBoundingClientRect(),{top:J,left:B}=se.getBoundingClientRect();B!==ne||J!==q?(se.classList.add("vuuDraggable-settling"),se.style.top=`${q}px`,se.style.left=`${ne}px`):E()})):console.log(`dont have the dropped item (at ${X})`),C.current=null}},[e,o,se,E]),{...U,...u,isScrolling:L,onMouseDown:t?G:void 0}};var Ul=_(require("classnames")),lt=require("react"),Ho=require("@salt-ds/core");var Us=require("react/jsx-runtime"),Gs="vuuEditableLabel",Vn=(0,lt.forwardRef)(function({className:e,defaultEditing:n,defaultValue:o,editing:r,onChange:s,onEnterEditMode:i,onExitEditMode:l,value:a,...c},u){let d=(0,lt.useRef)(null),p=(0,lt.useRef)(!1),[m,f]=(0,Ho.useControlled)({controlled:a,default:o!=null?o:"",name:"EditableLabel",state:"value"}),[h,g]=(0,Ho.useControlled)({controlled:r,default:n!=null?n:!1,name:"EditableLabel",state:"editing"}),y=(0,lt.useCallback)(E=>{g(p.current=E)},[]),v=(0,lt.useRef)(m);(0,lt.useLayoutEffect)(()=>{h&&d.current!==null&&(d.current.select(),d.current.focus())},[h,d]);let C=(0,lt.useCallback)(()=>{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=(0,Ul.default)(Gs,e,{[`${Gs}-editing`]:h});return(0,Us.jsx)("div",{...c,className:M,onDoubleClick:x,"data-text":m,ref:u,children:h?(0,Us.jsx)(Ho.Input,{inputProps:{className:`${Gs}-input`},value:m,onBlur:w,onChange:T,onKeyDown:R,inputRef:d,style:{padding:0},textAlign:"left",variant:"secondary"}):m})});var Xl=require("@salt-ds/core");var uf=/[.*+?^${}()|[\]\\]/g;function Tr(t){return t.replace(uf,"\\$&")}var $n=require("react/jsx-runtime"),df=(0,Xl.makePrefixer)("saltHighlighter"),Ql=t=>{let{matchPattern:e,text:n=""}=t,o=typeof e=="string"?new RegExp(`(${Tr(e)})`,"gi"):e;return o===void 0?(0,$n.jsx)($n.Fragment,{children:n}):(0,$n.jsx)("span",{children:n.split(o).map((r,s)=>r.match(o)?(0,$n.jsx)("strong",{className:df("highlight"),children:r},`${s}-${r}`):r)})};var Xs=require("react"),Qs=_(require("classnames"));var Yl=_(require("classnames"));var ql=require("react/jsx-runtime"),jl="vuuCheckboxIcon",Zl=({checked:t=!1,...e})=>(0,ql.jsx)("span",{...e,className:(0,Yl.default)(jl,{[`${jl}-checked`]:t})});var ln=require("react/jsx-runtime"),Ao="vuuListItem",Sr=(0,Xs.forwardRef)(function(e,n){return(0,ln.jsx)("div",{"aria-hidden":!0,className:(0,Qs.default)(Ao,`${Ao}-proxy`),ref:n})}),wr=(0,Xs.forwardRef)(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=(0,Qs.default)(Ao,n,{vuuDisabled:o,[`${Ao}-checkbox`]:d}),g=i!==void 0?{...p,height:i}:p;return(0,ln.jsxs)("div",{className:h,...m,"aria-disabled":o||void 0,"aria-selected":u||void 0,ref:f,style:g,children:[d&&(0,ln.jsx)(Zl,{"aria-hidden":!0,checked:u}),e&&typeof e!="string"?e:l==null?(0,ln.jsx)("span",{className:`${Ao}-textWrapper`,children:a||e}):(0,ln.jsx)(Ql,{matchPattern:l,text:a||e})]})});var Zs=require("@vuu-ui/vuu-utils"),na=_(require("classnames"));var pf={},mf={},Er={};function Re(t,e,n="component"){Er[t]=e,n==="container"?pf[t]=!0:n==="view"&&(mf[t]=!0)}var Oo=require("@salt-ds/core"),js=_(require("classnames")),ea=require("react");var Bt=require("react/jsx-runtime"),$t="vuuDrawer",Jl=t=>typeof t=="string"?t:t+"px",ff=(t,e,n)=>{let o=e!==void 0,r=n!==void 0;if(!(!t&&!r&&!o))return!r&&!o?t:{...t,"--drawer-size":o?Jl(e):void 0,"--drawer-peek-size":r?Jl(n):void 0}},ta=({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]=(0,Oo.useControlled)({controlled:l,default:o!=null?o:!1,name:"Drawer",state:"open"}),g=(0,js.default)($t,e,`${$t}-${a}`,{[`${$t}-open`]:f,[`${$t}-inline`]:c,[`${$t}-over`]:!c,[`${$t}-peekaboo`]:d}),y=(0,ea.useCallback)(()=>{h(!f)},[f,h]),v=ff(i,r,s),C=n?y:u,b=()=>(0,Bt.jsx)("div",{className:(0,js.default)("vuuToggleButton-container"),children:f?(0,Bt.jsx)(Oo.Button,{"aria-label":"close",onClick:y,"data-icon":"close",variant:"secondary"}):(0,Bt.jsx)(Oo.Button,{"aria-label":"open",onClick:y,"data-icon":"close",variant:"secondary"})});return(0,Bt.jsxs)("div",{...m,className:g,onClick:C,style:v,children:[p=="start"?b():null,(0,Bt.jsx)("div",{className:`${$t}-liner`,children:(0,Bt.jsx)("div",{className:`${$t}-content`,children:t})}),p=="end"?b():null]})};ta.displayName="Drawer";var Ys=ta;var Rr=require("react/jsx-runtime"),hf=t=>t.type===Ys,gf=({props:{position:t="left"}})=>t.match(/top|bottom/),oa=t=>{let{children:e,className:n,id:o,style:r}=t,s="vuuDockLayout",[i,l]=(0,Zs.partition)(e,hf),[a,c]=(0,Zs.partition)(i,gf),u=a.length===0?"horizontal":c.length===0?"vertical":"both",d=(0,na.default)(s,n,`${s}-${u}`);return(0,Rr.jsxs)("div",{className:d,id:o,style:r,children:[i,(0,Rr.jsx)("div",{className:`${s}-content`,children:l})]})};oa.displayName="DockLayout";Re("DockLayout",oa,"container");var ra=require("react");var sa=require("react/jsx-runtime"),qs=(0,ra.forwardRef)(function({resizeable:e,...n},o){return(0,sa.jsx)("div",{...n,className:"Component",ref:o})});qs.displayName="Component";var Js=qs;Re("Component",qs);var ia=_(require("react"));var bf={},Mt=(t,e)=>{var o;let n=He(t);return(o=n[e])!=null?o:n[`data-${e}`]},He=t=>(t==null?void 0:t.props)||t||bf;var at=require("react"),yf=[],xf=0,Bn=t=>{let e=Array.isArray(t),n=e?t.length:at.Children.count(t);return e&&t.every(at.isValidElement)?t:n===1&&!e&&(0,at.isValidElement)(t)?[t]:n>1?t:yf},Dr=(t,e)=>{let n=(0,at.useRef)(!1);(0,at.useLayoutEffect)(()=>{n.current?t():n.current=!0},e)},Kn=t=>(0,at.useMemo)(()=>t!=null?t:`vuu-${++xf}`,[t]);var ti={north:1,east:2,south:4,west:8,header:16,centre:32,absolute:64},ni={AFTER:"after",BEFORE:"before"},Kt=Object.freeze({North:an("north"),East:an("east"),South:an("south"),West:an("west"),Header:an("header"),Centre:an("centre"),Absolute:an("absolute")});function an(t){return Object.freeze({offset:t==="north"||t==="west"?0:t==="south"||t==="east"?1:NaN,valueOf:function(){return ti[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 cv=Kt.North,uv=Kt.South,dv=Kt.East,pv=Kt.West,mv=Kt.Header,fv=Kt.Centre;var{north:vf,south:Tf,east:Sf,west:wf}=ti,Sv=Sf+wf,wv=vf+Tf;var Mr=require("@vuu-ui/vuu-popups");var la=_(require("classnames"));var ri=require("react/jsx-runtime");function aa(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 oi="vuuDropMenu",ca=({className:t,dropTarget:e,onHover:n,orientation:o})=>{let r=e.toArray();return(0,ri.jsx)("div",{className:(0,la.default)(oi,t,`${oi}-${o}`),onMouseLeave:()=>n(null),children:r.map((s,i)=>(0,ri.jsx)("div",{className:`${oi}-item`,"data-icon":i===0?"column-2A":"column-2B",onMouseEnter:()=>n(s)},i))})};var ma=require("react/jsx-runtime"),si=!1,No=null,ct=null,Ef=t=>No=t,Rf=([t,e])=>`M${t},${e}`,Df=([t,e])=>`L${t},${e}`,ua=([t,...e])=>`${Rf(t)} ${e.map(Df)}Z`,Mf=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 If(){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 @@
|
|
|
14
14
|
/>
|
|
15
15
|
</path>
|
|
16
16
|
</svg>
|
|
17
|
-
`,document.body.insertBefore(e,n)}}var er=class{constructor(){this.currentPath=null;this.tabMode=null;np()}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=Ni(r),s=document.getElementById("vuu-drop-outline");s==null||s.setAttribute("d",o),this.currentPath=o}clear(){Jn=null,Nr(),document.body.classList.remove("drawing"),Hr.PopupService.hidePopup()}get hoverDropTarget(){return Jn}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=Zo;if(Jn!==null)this.drawTarget(Jn);else if(Zo=e.nextDropTarget!=null,e.pos.tab?rp(e):Ue&&Nr(),this.drawTarget(e,t),Zo){let[s,i,l]=Oi(e);{let a=(0,$i.jsx)(Hi,{dropTarget:e,onHover:qd,orientation:l});Hr.PopupService.showPopup({left:s,top:i,component:a})}}else Hr.PopupService.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=Ni(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",tp(d))}}},zi="transition:margin-left .4s ease-out;margin-left: 63px",Fi="transition:margin-left .4s ease-out;margin-left: 0px";function rp(n){var l,a;let{AFTER:e,BEFORE:t}=Uo,{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?(Ue===null||Ue!==i)&&(i.style.cssText=zi,Ue&&(Ue.style.cssText=Fi),Ue=i):Nr()}else if((o==null?void 0:o.positionRelativeToTab)===t){if(Ue===null){let c=".vuuHeader-title";i=(a=document.getElementById(s))==null?void 0:a.querySelector(c),i.style.cssText=zi,Ue=i}}else Nr()}function Nr(){Ue&&(Ue.style.cssText=Fi,Ue=null)}var dy=new er;var Bi=V(require("classnames")),Ki=require("react");var Gi=require("react/jsx-runtime"),Wi=(0,Ki.forwardRef)(function({children:e,className:t,dropTarget:r,resizeable:o,...s},i){let l=(0,Bi.default)("DraggableLayout",t);return(0,Gi.jsx)("div",{className:l,ref:i,...s,children:e})}),_i="DraggableLayout";Wi.displayName=_i;pe(_i,Wi,"container");var il=require("@salt-ds/core"),ll=V(require("classnames")),al=require("react");var ol=require("@vuu-ui/vuu-utils"),ie=V(require("react"));var Xi=V(require("classnames"));var Qi=require("react/jsx-runtime"),Ui="vuuPlaceholder",zr=({className:n,closeable:e,flexFill:t,resizeable:r,shim:o,...s})=>(0,Qi.jsx)("div",{className:(0,Xi.default)(Ui,n,{[`${Ui}-shim`]:o}),...s,"data-placeholder":!0,"data-resizeable":!0});zr.displayName="Placeholder";pe("Placeholder",zr);var Zi=V(require("classnames")),Ce=V(require("react"));var Yo=require("react/jsx-runtime"),Yi=Ce.default.memo(function({column:e,index:t,onDrag:r,onDragEnd:o,onDragStart:s,style:i}){let l=(0,Ce.useRef)(),a=(0,Ce.useRef)(null),c=(0,Ce.useRef)(0),[u,p]=(0,Ce.useState)(!1),d=(0,Ce.useCallback)(({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=(0,Ce.useCallback)(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=(0,Ce.useRef)(f),h=g=>m.current(g),x=(0,Ce.useCallback)(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=(0,Ce.useCallback)(()=>{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=(0,Ce.useCallback)(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=(0,Zi.default)("Splitter","focusable",{active:u,column:e});return(0,Yo.jsx)("div",{className:T,"data-splitter":!0,ref:a,role:"separator",style:i,onBlur:b,onClick:y,onKeyDown:h,onMouseDown:C,tabIndex:0,children:(0,Yo.jsx)("div",{className:"grab-zone"})})});var op=require("@vuu-ui/vuu-utils"),sp=V(require("react"));var qi={},ji="auto";var fn=n=>{let{style:{width:e=ji,height:t=ji}=qi}=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 Ji(n){let{style:{flex:e,flexGrow:t,flexShrink:r,flexBasis:o}=qi}=n.props;return typeof e=="number"||o===0&&t===1&&r===1?!0:typeof o!="number"}var ip={},nr=1,rr=2,lp=n=>typeof n.intrinsicSize=="number",ap=(n,e)=>{let t={};return n.forEach(r=>{t[r]=at(e,r)}),t},Fr=(n,e,t)=>n.map((r,o)=>{var a;let s=at(r,"resizeable"),{[e]:i}=(a=fn(r))!=null?a:ip,l=Ji(r);return t?{index:o,flexOpen:l,intrinsicSize:i,resizeable:s,...ap(t,r)}:{index:o,flexOpen:l,intrinsicSize:i,resizeable:s}}),el=n=>{let e=n.length,t=n.every(lp),r=Array(e).fill(0);if(t&&e>0&&(r[0]=rr,r[e-1]=rr),e<2)return r;for(let o=0,s=0;o<e-1;o++)n[o].resizeable&&!s&&(s=nr),r[o]+=s;for(let o=e-1;o>0&&(r[o]&nr&&(r[o]-=nr),!n[o].resizeable);o--);return r},tl=(n,e)=>{let t=up(n,e),r=dp(n,e),o=t!==-1&&r!==-1?[t,r]:void 0,s=cp(n,o);return[o,s]};function cp(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 up(n,e){let t=e,r=!1;for(;t>=1&&!r;)t=t-1,r=nl(n,t);return t}function dp(n,e){let t=e,r=!1,o=n.length;for(;t<o-1&&!r;)t=t+1,r=nl(n,t);return t===o?-1:t}function nl(n,e){let{placeholder:t,splitter:r,resizeable:o,intrinsicSize:s}=n[e];return!!(!r&&!s&&(t||o))}var pp=n=>!n.splitter&&!n.placeholder,sl=({children:n,onSplitterMoved:e,style:t})=>{let r=(0,ie.useRef)(null),o=(0,ie.useRef)(),s=(0,ie.useRef)(),i=(0,ie.useRef)([]),[,l]=(0,ie.useState)({}),a=x=>{s.current=x,l({})},c=(t==null?void 0:t.flexDirection)==="column",u=c?"height":"width",p=(0,ie.useMemo)(()=>Array.isArray(n)?n:ie.default.isValidElement(n)?[n]:[],[n]),d=(0,ie.useCallback)(x=>{let{current:v}=o;if(v){let[C,y]=tl(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}=gp(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=(0,ie.useCallback)((x,v)=>{s.current&&o.current&&a(mp(s.current,o.current,v,u))},[u]),m=(0,ie.useCallback)(()=>{let x=o.current;x&&(e==null||e(x.filter(pp))),x==null||x.forEach(v=>{v.currentSize=void 0,v.flexBasis=void 0,v.flexOpen=!1})},[e]),h=(0,ie.useCallback)(x=>ie.default.createElement(Yi,{column:c,index:x,key:`splitter-${x}`,onDrag:f,onDragEnd:m,onDragStart:d}),[f,m,d,c]);return(0,ie.useMemo)(()=>{let[x,v]=fp(p,u,h,i.current);o.current=v,s.current=x},[p,h,u]),{content:s.current||[],rootRef:r}};function fp(n,e,t,r){let o=Fr(n,e),s=el(o),i=[],l=[];for(let a=0;a<n.length;a++){let c=n[a];if(a===0&&s[a]&rr&&(i.push(rl(a)),l.push({placeholder:!0,shim:!0})),c.key==null){let u=r[a]||(r[a]=(0,ol.getUniqueId)());i.push(ie.default.cloneElement(c,{key:u}))}else i.push(c);l.push(o[a]),a>0&&s[a]&rr?(i.push(rl(a)),l.push({placeholder:!0})):s[a]&nr&&(i.push(t(i.length)),l.push({splitter:!0}))}return[i,l]}function mp(n,e,t,r){return hp(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?ie.default.cloneElement(s,{style:{...s.props.style,flexBasis:f,[r]:"auto"}}):s}else return s}):n}function hp(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 rl(n){return ie.default.createElement(zr,{shim:n===0,key:`placeholder-${n}`})}function gp(n,e){let{[e]:t}=n.getBoundingClientRect(),o=getComputedStyle(n).getPropertyValue(`min-${e}`),s=o.endsWith("px")?parseInt(o,10):0;return{size:t,minSize:s}}var ul=require("react/jsx-runtime"),qo="hwFlexbox",cl=(0,al.forwardRef)(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}=sl({children:o,onSplitterMoved:p,style:x}),b=(0,ll.default)(qo,i,{[`${qo}-column`]:s,[`${qo}-row`]:f,"flex-fill":l,"full-page":c});return(0,ul.jsx)("div",{...v,className:b,"data-resizeable":d||void 0,id:u,ref:(0,il.useForkRef)(y,t),style:{...x,gap:a,"--spacing":m},children:C})});cl.displayName="Flexbox";var Jo=cl;var gl=require("react");var $r={ADD:"add",BLUR:"blur",BLUR_SPLITTER:"blur-splitter",DRAG_START:"drag-start",DRAG_STARTED:"drag-started",DRAG_DROP:"drag-drop",FOCUS:"focus",FOCUS_SPLITTER:"focus-splitter",INITIALIZE:"initialize",LAYOUT_RESIZE:"layout-resize",MAXIMIZE:"maximize",MINIMIZE:"minimize",REMOVE:"remove",REPLACE:"replace",RESTORE:"restore",SAVE:"save",SET_TITLE:"set-title",SPLITTER_RESIZE:"splitter-resize",SWITCH_TAB:"switch-tab",TEAR_OUT:"tear-out"};var hn=require("react");var Lp=V(require("react"));var xp=require("@vuu-ui/vuu-utils"),vp=V(require("react"));var bp=require("@vuu-ui/vuu-utils"),dl=V(require("react"));var $t=require("react"),ze=new Map,Fe=new Map;var mn=()=>{let n=(0,$t.useCallback)((i,l)=>{let a=Fe.get(i);if(a)return l!==void 0&&a[l]!==void 0?a[l]:l!==void 0?void 0:a},[]),e=(0,$t.useCallback)((i,l,a)=>{if(l===void 0)Fe.set(i,a);else if(Fe.has(i)){let c=Fe.get(i);Fe.set(i,{...c,[l]:a})}else Fe.set(i,{[l]:a})},[]),t=(0,$t.useCallback)((i,l)=>{if(Fe.has(i)){if(l===void 0)Fe.delete(i);else if(Fe.get(i)[l]){let{[l]:c,...u}=Fe.get(i);Object.keys(u).length>0?Fe.set(i,u):Fe.delete(i)}}},[]),r=(0,$t.useCallback)((i,l)=>{let a=ze.get(i);if(a)return l!==void 0?a[l]:a},[]),o=(0,$t.useCallback)((i,l,a)=>{if(l===void 0)ze.set(i,a);else if(ze.has(i)){let c=ze.get(i);ze.set(i,{...c,[l]:a})}else ze.set(i,{[l]:a})},[]),s=(0,$t.useCallback)((i,l)=>{if(ze.has(i)){if(l===void 0)ze.delete(i);else if(ze.get(i)[l]){let{[l]:c,...u}=ze.get(i);Object.keys(u).length>0?ze.set(i,u):ze.delete(i)}}},[]);return{loadSessionState:n,loadState:r,saveSessionState:e,saveState:o,purgeState:s,purgeSessionState:t}};var wp=require("react");var Tp=V(require("react"));var Ep=V(require("react"));var Rp=V(require("react"));var Dp=require("@vuu-ui/vuu-utils"),Mp=V(require("react"));var fl=require("react"),kp=n=>console.log(`dispatch ${n.type}, have you forgotten to provide a LayoutProvider ?`),ml=(0,fl.createContext)({dispatchLayoutProvider:kp,version:-1});var hl=require("react");var Ip=require("react/jsx-runtime");var $e=()=>{let{dispatchLayoutProvider:n}=(0,hn.useContext)(ml);return n};var yl=require("react/jsx-runtime"),bl=function(e){let{path:t}=e,r=$e(),o=(0,gl.useCallback)(s=>{r({type:$r.SPLITTER_RESIZE,path:t,sizes:s})},[r,t]);return(0,yl.jsx)(Jo,{...e,onSplitterMoved:o})};bl.displayName="Flexbox";pe("Flexbox",bl,"container");var Rl=require("@salt-ds/core"),Dl=V(require("classnames")),Kr=require("react");var Xe=require("react");var Bt=require("react"),vl=["height","width"];var Vt=new WeakMap,Cl=(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}},xl=new ResizeObserver(n=>{for(let e of n){let{target:t,contentRect:r}=e,o=Vt.get(t);if(o){let{onResize:s,measurements:i}=o,l=!1;for(let[a,c]of Object.entries(i)){let u=Cl(t,r,a);u!==c&&(l=!0,i[a]=u)}l&&s&&s(i)}}});function Vr(n,e,t,r=!1){console.log("resizeObserver container",{ref:n.current});let o=(0,Bt.useRef)(e),s=(0,Bt.useCallback)(i=>{let l=i.getBoundingClientRect();return o.current.reduce((a,c)=>(a[c]=Cl(i,l,c),a),{})},[]);(0,Bt.useLayoutEffect)(()=>{let i=n.current,l=!1;async function a(){Vt.set(i,{measurements:{}}),l=!1;let{fonts:c}=document;if(c&&await c.ready,!l){let u=Vt.get(i);if(u){let p=s(i);u.measurements=p,xl.observe(i),r&&t(p)}}}if(i){if(Vt.has(i))throw Error("useResizeObserver attemping to observe same element twice");a()}return()=>{i&&Vt.has(i)&&(xl.unobserve(i),Vt.delete(i),l=!0)}},[n,s,r,t]),(0,Bt.useLayoutEffect)(()=>{let i=n.current,l=Vt.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 Ap(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 Op=([,n],[,e])=>e-n,rs=n=>Object.entries(n).sort(Op).map(([e,t],r,o)=>[e,t,r<o.length-1?o[r+1][1]:9999]),ns=null,Hp=(n="salt")=>{let{xs:e,sm:t,md:r,lg:o,xl:s}=Ap(n);return rs({xs:e,sm:t,md:r,lg:o,xl:s})},Tl=n=>(ns===null&&(ns=Hp(n)),ns);var Np=[],wl=({breakPoints:n,smallerThan:e},t)=>{let[r,o]=(0,Xe.useState)(e?!1:"lg"),s=(0,Xe.useRef)(document.body),i=(0,Xe.useRef)(n?rs(n):Tl()),l=(0,Xe.useRef)("lg"),a=(0,Xe.useCallback)(u=>{if(i.current){for(let[p,d]of i.current)if(u>=d)return p}},[i]),c=(0,Xe.useCallback)(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 Vr(t||s,i.current?["width"]:Np,({width:u})=>{let p=c(u);p!==l.current&&(l.current=p,o(p))},!0),(0,Xe.useEffect)(()=>{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 zp="data-collapsible",LC={[zp]:!0,"data-pad-start":!0,"data-pad-end":!0};var Sl=require("@vuu-ui/vuu-utils"),Ae=require("react");var Fp=["xs","sm","md","lg","xl"],$p=12,El=({children:n,cols:e,style:t})=>{let r=(0,Ae.useRef)(null),o=(0,Ae.useRef)(null),s=(0,Ae.useRef)(),i=e!=null?e:$p,a=(t==null?void 0:t.flexDirection)==="column"?"height":"width",c=(0,Ae.useMemo)(()=>Array.isArray(n)?n:(0,Ae.isValidElement)(n)?[n]:[],[n]),u=(0,Ae.useCallback)((p,d)=>{let f=Fr(p,d,Fp),m=[],h=[];for(let x=0;x<p.length;x++){let v=p[x],{style:{flex:C,...y}}=v.props;m.push((0,Ae.cloneElement)(v,{key:(0,Sl.getUniqueId)(),style:{...y,"--parent-col-count":i}})),h.push(f[x])}return[m,h]},[i]);return(0,Ae.useMemo)(()=>{let[p,d]=u(c,a);o.current=d,s.current=p},[u,c,a]),{cols:i,content:s.current,rootRef:r}};var Ml=require("react/jsx-runtime"),Br="hwFluidGrid",os=(0,Kr.forwardRef)(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=(0,Kr.useMemo)(()=>pn(o),[o]),{cols:T,content:g,rootRef:w}=El({children:b,cols:i,style:C}),D=wl({breakPoints:r},w),P=(0,Dl.default)(Br,l,{[`${Br}-column`]:s,[`${Br}-row`]:m,[`${Br}-show-grid`]:h,"flex-fill":a,"full-page":u}),E={...C,"--spacing":x,"--grid-col-count":T,"--grid-gap":c};return(0,Ml.jsx)("div",{...y,className:P,"data-breakpoint":D,"data-cols":T,"data-resizeable":f||void 0,id:p,ref:(0,Rl.useForkRef)(w,t),style:E,children:g})});os.displayName="FluidGrid";var Ll=require("react/jsx-runtime"),Pl=function(e){return(0,Ll.jsx)(os,{...e})};Pl.displayName="FluidGrid";pe("FluidGrid",Pl,"container");var zl=require("@salt-ds/core"),Ur=V(require("classnames")),wt=V(require("react"));var Tt=require("react");var Wr=(n,e,t,r)=>{var x;let{loadSessionState:o,purgeSessionState:s,purgeState:i,saveSessionState:l}=mn(),[a,c]=(0,Tt.useState)((x=o(n,"contributions"))!=null?x:[]),u=$e(),p=(0,Tt.useCallback)((v,C)=>{let y=a.concat([{location:v,content:C}]);l(n,"contributions",y),c(y)},[a,n,l]),d=(0,Tt.useCallback)(()=>{s(n,"contributions"),c([])},[n,s]),f=(0,Tt.useCallback)(()=>{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=(0,Tt.useCallback)(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[(0,Tt.useCallback)(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]};var Gr=require("@salt-ds/core"),Ol=V(require("classnames")),Te=V(require("react"));var Qe=require("react");var kl=({id:n,rootRef:e,path:t,dropTargets:r,title:o})=>{let s=$e(),{loadState:i,loadSessionState:l,purgeState:a,saveState:c,saveSessionState:u}=mn(),[p,d]=Wr(n,e,t,r),f=(0,Qe.useMemo)(()=>{var g;return(g=i("view-title"))!=null?g:o},[i,o]),m=(0,Qe.useCallback)(g=>{t&&s({type:"set-title",path:t,title:g})},[s,t]),h=(0,Qe.useMemo)(()=>i(n),[n,i]),x=(0,Qe.useCallback)(g=>i(n,g),[n,i]),v=(0,Qe.useCallback)(g=>{a(n,g),s({type:"save"})},[n,s,a]),C=(0,Qe.useCallback)((g,w)=>{c(n,w,g),s({type:"save"})},[n,s,c]),y=(0,Qe.useCallback)(g=>l(n,g),[n,l]),b=(0,Qe.useCallback)((g,w)=>u(n,w,g),[n,u]),T=(0,Qe.useCallback)(({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}};var gn=require("react"),Vp=[],Il=({mainRef:n,resize:e="responsive",rootRef:t})=>{let r=e==="defer",o=(0,gn.useRef)({}),s=(0,gn.useRef)(),i=(0,gn.useCallback)(()=>{n.current&&(n.current.style.height=o.current.height+"px",n.current.style.width=o.current.width+"px"),s.current=void 0},[n]),l=(0,gn.useCallback)(({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]);Vr(t,r?vl:Vp,l,r)};var _r=V(require("react")),Bp={dispatch:null},ss=_r.default.createContext(Bp),Al=()=>{var e;let n=(0,_r.useContext)(ss);return(e=n==null?void 0:n.dispatch)!=null?e:null};var bn=require("react/jsx-runtime"),or="vuuView",Kp=(n,e)=>n&&e?{...n,...e}:n||e,Hl=(0,Te.forwardRef)(function(e,t){let{Header:r=Nl,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=(0,Gr.useIdMemo)(f),D=(0,Te.useRef)(null),P=(0,Te.useRef)(null),[E,R]=(0,Te.useState)(),{contributions:S,dispatchViewAction:M,load:I,loadSession:L,onConfigChange:k,onEditTitle:O,purge:A,restoredState:N,save:H,saveSession:B,title:z}=kl({id:w,rootRef:D,path:x,dropTargets:u,title:T});Il({mainRef:P,resize:v,rootRef:D});let K=(0,Te.useCallback)($=>{R($)},[]),_=()=>Te.default.isValidElement(o)&&(N||E)?Te.default.cloneElement(o,Kp(N,E)):o,q=(0,Te.useMemo)(()=>({dispatch:M,id:w,path:x,title:z,load:I,loadSession:L,onConfigChange:k,purge:A,save:H,saveSession:B,setComponentProps:K}),[M,w,I,L,k,x,A,H,B,K,z]),F=typeof m=="object"?m:{};return(0,bn.jsx)("div",{...g,className:(0,Ol.default)(or,s,{[`${or}-collapsed`]:i,[`${or}-expanded`]:p,[`${or}-resize-defer`]:v==="defer"}),"data-resizeable":C,id:w,ref:(0,Gr.useForkRef)(t,D),style:b,tabIndex:-1,children:(0,bn.jsxs)(ss.Provider,{value:q,children:[m?(0,bn.jsx)(r,{...F,collapsed:i,contributions:S,expanded:p,closeable:l,onEditTitle:O,orientation:h,tearOut:y,title:z}):null,(0,bn.jsx)("div",{className:`${or}-main`,ref:P,children:_()})]})})});Hl.displayName="View";var yn=Te.default.memo(Hl);yn.displayName="View";pe("View",yn,"view");var xn=require("react/jsx-runtime"),Nl=({className:n,contributions:e,collapsed:t,closeable:r,onEditTitle:o,orientation:s="horizontal",style:i,title:l="Untitled"})=>{let a=(0,wt.useRef)(null),[c,u]=(0,wt.useState)(l),[p,d]=(0,wt.useState)(!1),f=Al(),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=(0,Ur.default)(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(wt.default.cloneElement(R.content,{key:S}));break;default:P.push(wt.default.cloneElement(R.content,{key:S}))}}),l&&D.push((0,xn.jsx)(dn,{editing:p,value:c,onChange:u,onMouseDownCapture:x,onEnterEditMode:b,onExitEditMode:g,onKeyDown:T,ref:a,tabIndex:0},"title")),r&&E.push((0,xn.jsx)(zl.Button,{"data-icon":"close",onClick:m,onMouseDown:v,variant:"secondary"},"close")),P.length>0&&D.push((0,xn.jsx)("div",{className:"vuuTooltrayProxy","data-align":"end",children:P},"contributions")),E.length>0&&D.push((0,xn.jsx)("div",{className:"vuuTooltrayProxy","data-align":"end",children:E},"actions")),(0,xn.jsx)("div",{className:(0,Ur.default)("vuuToolbarProxy",y),style:i,onMouseDown:w,children:D})};var Ql=require("@vuu-ui/vuu-popups"),ir=V(require("classnames")),Zr=V(require("react"));var Qr=require("@vuu-ui/vuu-utils"),Ze=require("react");var Wp=".vuuOverflowContainer-item:not(.wrapped)",_p=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}),is=[],sr=(n,e="horizontal")=>{let t=[],r=[],o=-1,s=!1,i=_p(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]},Fl=(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")}},Gp=(n,{overflowPriority:e})=>Math.max(n,parseInt(e)),Up=(n,{overflowPriority:e})=>Math.min(n,parseInt(e)),$l=n=>{var e;return n.length>1&&((e=n.at(-1))==null?void 0:e.index)==="overflow"},Xp=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},Vl=(n,e)=>{var o;let t=n.reduce(Up,Number.MAX_SAFE_INTEGER);return e.reduce(Gp,0)>t?!0:e.length>1&&((o=e.at(-1))==null?void 0:o.index)==="overflow"},Bl=(n,e)=>new Promise(t=>{requestAnimationFrame(()=>{let[,r]=sr(n);Yp(e,r).forEach(s=>Qp(n,s)),t(r)})}),Kl=(n,e,t)=>new Promise(r=>{requestAnimationFrame(()=>{let[,o]=sr(n),s=Xp(o);if(s){let[i,l]=ls(n,s);r([i,l])}else r([e,t])})}),Wl=(n,e)=>n.querySelector(`[data-index="${e.index}"]`),Qp=(n,e)=>{let t=Wl(n,e);if(t)t.classList.add("wrapped");else throw Error(`markElementAsWrapped element item with index ${e.index} not found`)},Zp=n=>Array.from(n.querySelectorAll(".wrapped")),Yp=(n,e)=>{let t=[];for(let r of e)n.find(({index:o})=>o===r.index)||t.push(r);return t},jp=(n,e)=>{Zp(n).forEach(r=>{let{dataset:{index:o="?"}}=r;e.find(s=>s.index===o)||r.classList.remove("wrapped")})},_l=n=>n.querySelector('[data-index="overflow"]'),qp=n=>n.querySelector(".wrapped"),Xr=n=>parseInt(getComputedStyle(n).getPropertyValue("width")),Gl=(n,e)=>{let{right:t}=n.getBoundingClientRect(),r=parseInt(getComputedStyle(n).getPropertyValue("padding-right")),{right:o}=e.getBoundingClientRect();return t-r-o},Ul=n=>{let e=_l(n),t=Gl(n,e),r=Xr(e),o=qp(n);return Xr(o)<=t+r?(n.classList.remove("overflowed"),o.classList.remove("wrapped"),!0):!1},Jp=(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)},ef=n=>Array.from(n.querySelectorAll(Wp)).sort(Jp),ls=(n,e)=>{let t=ef(n),r=Wl(n,e),o=-1,s=t.at(o),i=Xr(s),l=Xr(r),a=_l(n),c=Gl(n,a)+i;if(c>=l)tf(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]=sr(n);return jp(n,p),[u,p]},tf=(n,e)=>{if(!n||!e)throw Error("switchWrapOnElements, element undefined");n.classList.remove("wrapped"),e.classList.add("wrapped")};var Xl=({itemCount:n,onSwitchWrappedItemIntoView:e,orientation:t="horizontal"})=>{let[r,o]=(0,Ze.useState)(null),s=(0,Ze.useRef)(is),i=(0,Ze.useCallback)(async()=>{if(r){let[d,f]=sr(r,t);for(console.log({nonWrapped:d,wrapped:f}),Fl(r,f),$l(f)&&(f=await Bl(r,f));Vl(d,f);)[d,f]=await Kl(r,d,f);f.length===1&&Ul(r)&&(f=is),s.current=f}},[r,t]),l=d=>typeof d=="object"&&d!==null&&"overflowItem"in d,[a,c]=(0,Ze.useMemo)(()=>[()=>{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]=ls(r,d.overflowItem);s.current=f,e==null||e(d.overflowItem)}return!0}],[r,e]),u=(0,Ze.useMemo)(()=>{let{sizeProp:d}=Qr.MEASURES[t],f=0;return new ResizeObserver(m=>{for(let h of m){let{[d]:x}=h.contentRect;(0,Qr.isValidNumber)(x)&&f!==x&&(f=x,i())}})},[i,t]);Ii(()=>{i()},[i,n]),(0,Ze.useMemo)(()=>{r&&u.observe(r)},[r,u]);let p=(0,Ze.useCallback)(d=>{o(d)},[]);return{menuActionHandler:c,menuBuilder:a,rootRef:p}};var St=require("react/jsx-runtime"),vn="vuuOverflowContainer",Zl=Zr.default.memo(({children:n,className:e,height:t,onSwitchWrappedItemIntoView:r,orientation:o="horizontal",overflowIcon:s})=>{let i=pn(n),{menuActionHandler:l,menuBuilder:a,rootRef:c}=Xl({itemCount:i.length,onSwitchWrappedItemIntoView:r,orientation:o}),p={"--overflow-container-height":`${o==="vertical"?"100%":`${t}px`}`},d=(0,ir.default)(`${vn}-wrapContainer`,e,{[`${vn}-horizontal`]:o==="horizontal",[`${vn}-vertical`]:o==="vertical"});return(0,St.jsxs)("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(0,St.jsx)("div",{className:(0,ir.default)(`${vn}-item`),"data-index":m,"data-label":v,"data-overflow-priority":h,id:`${x}-wrapper`,children:f},m)}),(0,St.jsx)("div",{className:`${vn}-OverflowIndicator`,"data-index":"overflow",children:(0,St.jsx)(Ql.PopupMenu,{icon:s,menuBuilder:a,menuActionHandler:l})})]})});Zl.displayName="OverflowContainer.InnerContainer";var Yl=(0,Zr.forwardRef)(function({children:e,className:t,height:r=44,onSwitchWrappedItemIntoView:o,orientation:s,overflowIcon:i,...l},a){return(0,St.jsx)("div",{...l,className:(0,ir.default)((0,ir.default)(vn,t)),ref:a,children:(0,St.jsx)(Zl,{height:r,orientation:s,overflowIcon:i,onSwitchWrappedItemIntoView:o,children:e})})});var jl=require("@vuu-ui/vuu-utils"),jr=require("@salt-ds/lab"),as=V(require("classnames")),qr=require("react");var Yr=require("react/jsx-runtime"),nf=n=>{let e=n.cloneNode(!0);return e.id="",delete e.dataset.idx,e},ql=(0,qr.memo)(({className:n,children:e,idx:t,resizeable:r,header:o,closeable:s,...i})=>(0,Yr.jsx)(jr.ListItem,{className:(0,as.default)("vuuPaletteItem",n),"data-draggable":!0,...i}));ql.displayName="PaletteItem";var rf=({children:n,className:e,orientation:t="horizontal",ViewProps:r,...o})=>{let s=$e(),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=(0,jl.uuid)(),g=m?f:(0,Yr.jsx)(yn,{...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:nf(u),evt:a.nativeEvent,instructions:{DoNotRemove:!0,DoNotTransform:!0,RemoveDraggableOnDragEnd:!0,dragThreshold:10},path:"*",payload:g,type:"drag-start"})}return(0,Yr.jsx)(jr.List,{...o,borderless:!0,className:(0,as.default)(i,e,`${i}-${t}`),maxHeight:800,selected:null,children:n.map((a,c)=>a.type===ql?(0,qr.cloneElement)(a,{key:c,onMouseDown:l}):a)})};pe("Palette",rf,"view");var ea=V(require("classnames")),Et=V(require("react"));var lr=require("react/jsx-runtime"),Jl="Tabs",of=()=>{},sf=(n,e)=>{var t,r;return(r=(t=n.props)==null?void 0:t.title)!=null?r:`Tab ${e+1}`},lf=n=>{let e=[];return Et.default.Children.forEach(n,t=>{Et.default.isValidElement(t)?e.push(t):console.warn("Stack has unexpected child element type")}),e},af={allowAddTab:!1,allowCloseTab:!1,allowRenameTab:!1},cs=(0,Et.forwardRef)(function({active:e=0,children:t,className:r,getTabIcon:o=of,getTabLabel:s=sf,id:i,keyBoardActivation:l="manual",onAddTab:a,onMoveTab:c,onTabClose:u,onTabEdit:p,onTabSelectionChanged:d,showTabs:f="top",style:m,TabstripProps:h=af},x){var E;let v=Or(i),{allowCloseTab:C,allowRenameTab:y}=h,b=(0,Et.useCallback)((R,S,M,I)=>{p==null||p(I,S)},[p]),T=()=>{var R;return Et.default.isValidElement(t)?t:Array.isArray(t)&&(R=t[e])!=null?R:null},g=()=>lf(t).map((R,S)=>{let M=`${v}-${S}`,{closeable:I=C,id:L}=R.props;return(0,lr.jsx)(na,{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(0,lr.jsxs)("div",{className:(0,ea.default)(Jl,r,{[`${Jl}-horizontal`]:D}),style:m,id:v,ref:x,children:[f?(0,lr.jsx)(ta,{...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]})});cs.displayName="Stack";var ra=require("@salt-ds/core"),Rt=V(require("react"));var Jr=require("react/jsx-runtime"),cf=n=>(0,Jr.jsx)(yn,{resizeable:!0,title:`Tab ${n}`,style:{flexGrow:1,flexShrink:0,flexBasis:0},header:!0,closeable:!0,children:(0,Jr.jsx)(Wo,{style:{flex:1}})}),oa=n=>{let e=(0,Rt.useRef)(null),t=$e(),{loadState:r}=mn(),{createNewChild:o=cf,id:s,onTabSelectionChanged:i,path:l,...a}=n,{children:c}=n,u=(0,ra.useIdMemo)(s),[p]=Wr(u,e,l),d=y=>{l&&(t({type:"switch-tab",path:l,nextIdx:y}),i==null||i(y))},f=(0,Rt.useCallback)(y=>{if(Array.isArray(c)){let{props:{"data-path":b,path:T=b}}=c[y];t({type:"remove",path:T})}},[c,t]),m=(0,Rt.useCallback)(()=>{if(l){let y=Rt.default.Children.count(c),b=o(y);t({type:"add",path:l,component:b})}},[c,o,t,l]),h=(0,Rt.useCallback)((y,b)=>{l&&t({fromIndex:y,toIndex:b,path:l,type:"move-child"})},[t,l]);return(0,Jr.jsx)(cs,{...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})};oa.displayName="Stack";pe("Stack",oa,"container");var sa=V(require("react"));var ia=require("react/jsx-runtime");var la=require("@salt-ds/core"),aa=require("react/jsx-runtime");var eo="(\\d+)(?:px)?",uf=`^(?:${eo}(?:\\s${eo}(?:\\s${eo}(?:\\s${eo})?)?)?)$`,cS=new RegExp(uf);var df=V(require("react")),pf=V(require("classnames"));var ff=require("react/jsx-runtime");var wa=require("@salt-ds/core"),Sa=V(require("classnames")),Tn=V(require("react"));var xe=require("react");var ca=n=>typeof n=="object"&&n!==null&&"tabIndex"in n&&typeof n.tabIndex=="number",ua=n=>({label:"Close",location:"tab",action:"close-tab",options:n}),da=n=>({label:"Rename",location:"tab",action:"rename-tab",options:n});var hf=n=>{if(n){let e=parseInt(n.dataset.index||"");if(!isNaN(e))return e}return-1},pa=(n,e)=>{if(n){let t=n.querySelector(`[data-index]:has(${e})`);return hf(t)}return-1},us=n=>pa(n,'[aria-selected="true"]'),fa=n=>pa(n,".vuuEditableLabel-editing");var Cn=require("@vuu-ui/vuu-utils"),ut=require("react"),ma=(n,e,t="horizontal")=>{let r=(0,ut.useRef)(!1),o=(0,ut.useCallback)(()=>{r.current=!0},[]),s=(0,ut.useCallback)(()=>{r.current=!1},[]),i=(0,ut.useCallback)(()=>{var a,c;(a=n.current)==null||a.style.setProperty("--tab-thumb-transition","none"),(c=n.current)==null||c.removeEventListener("transitionend",i)},[n]),l=(0,ut.useRef)(-1);return(0,ut.useMemo)(()=>{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}=Cn.MEASURES[t];if(d&&f&&!r.current){let{[m]:x,[h]:v}=d.getBoundingClientRect(),{[m]:C}=f.getBoundingClientRect();if((0,Cn.isValidNumber)(x)&&(0,Cn.isValidNumber)(C)&&(0,Cn.isValidNumber)(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])};var ga=require("@salt-ds/core"),ba=require("@vuu-ui/vuu-utils"),fe=require("react"),we=require("@vuu-ui/vuu-utils");var ya={horizontal:{[we.Home]:"start",[we.End]:"end",[we.ArrowLeft]:"bwd",[we.ArrowRight]:"fwd"},vertical:{[we.Home]:"start",[we.End]:"end",[we.ArrowUp]:"bwd",[we.ArrowDown]:"fwd"}},gf=(n,e="horizontal")=>ya[e][n]!==void 0,bf=n=>n===we.ArrowDown;function ha(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 yf=n=>n!==null&&!n.classList.contains("wrapped"),to=(n,e)=>n?n.querySelector(`[data-index="${e}"]`):null,xa=({containerRef:n,defaultHighlightedIdx:e=-1,highlightedIdx:t,keyBoardActivation:r,orientation:o,selectedIndex:s=0})=>{let i=r==="manual",l=(0,fe.useRef)(!1),a=(0,fe.useRef)(-1),[c,u]=(0,fe.useState)(!1),[,p]=(0,fe.useState)({}),[d,f]=(0,ga.useControlled)({controlled:t,default:e,name:"UseKeyboardNavigation"}),m=(0,fe.useCallback)(S=>{f(a.current=S)},[f]),h=(0,fe.useRef)(!1),x=(0,fe.useCallback)((S,M=!1,I,L=70)=>{m(S),I===!0&&!h.current&&(h.current=!0);let k=()=>{let O=to(n.current,S);if(O){let A=(0,ba.getFocusableElement)(O);A==null||A.focus()}};M?k():setTimeout(k,L)},[n,m]),v=S=>{if(a.current===-1&&S.target.tabIndex!==-1){let M=fa(n.current);M!==-1?requestAnimationFrame(()=>{m(M)}):setTimeout(()=>{a.current===-1&&s!==null&&m(s)},200)}},C=(0,fe.useCallback)(()=>{var S,M;return(M=(S=n.current)==null?void 0:S.querySelectorAll("[data-index]").length)!=null?M:0},[n]),y=(0,fe.useCallback)((S="fwd",M)=>{let I=C(),k=ha(I,S,typeof M=="number"?M:I),O=S==="start"?"fwd":S==="end"?"bwd":S;for(;(O==="fwd"&&k<I||O==="bwd"&&k>0)&&!yf(to(n.current,k));){let A=ha(I,O,k);if(A===k)break;k=A}return k},[n,C]),b=(0,fe.useCallback)((S,M=!1)=>{let I=ya[o][S.key],L=y(I,d);L!==d?i&&x(L,!0):M&&p({})},[d,i,y,x,o]),T=(0,fe.useCallback)(()=>{let S=to(n.current,d);return S?S.querySelector(".vuuPopupMenu")!=null:!1},[n,d]),g=(0,fe.useCallback)(()=>{let S=to(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=(0,fe.useCallback)(S=>{C()>0&&gf(S.key,o)?(S.preventDefault(),h.current?b(S):(h.current=!0,b(S,!0))):bf(S.key)&&T()&&g()},[g,C,T,b,o]),D=(S,M)=>{m(M)},P=(0,fe.useCallback)(()=>{c||(u(!0),l.current?l.current=!1:h.current=!0)},[c]),E=(0,fe.useCallback)(()=>{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}};var va=require("@salt-ds/core"),ar=require("react"),xf=["Enter"," "],vf=n=>n&&n.matches('[class*="vuuTab "]'),Ca=({defaultSelected:n,highlightedIdx:e,onSelectionChange:t,selected:r})=>{let[o,s,i]=(0,va.useControlled)({controlled:r,default:n!=null?n:0,name:"Tabstrip",state:"value"}),l=(0,ar.useCallback)(p=>xf.includes(p.key),[]),a=(0,ar.useCallback)(p=>{s(p),t==null||t(p)},[t,s]),c=(0,ar.useCallback)(p=>{let d=p.target;l(p)&&e!==o&&vf(d)&&(p.stopPropagation(),p.preventDefault(),a(e))},[l,e,o,a]),u=(0,ar.useCallback)((p,d)=>{d!==o&&a(d)},[a,o]);return{activateTab:a,isControlled:i,onClick:u,onKeyDown:c,selected:o}};var Cf=new Set(["Enter"," "]),Tf=n=>Cf.has(n),wf=(n,e)=>n?n.querySelector(`[data-index="${e}"]`):null,Ta=({activeTabIndex:n,allowDragDrop:e,animateSelectionThumb:t,containerRef:r,onActiveChange:o,onAddTab:s,onCloseTab:i,onExitEditMode:l,onMoveTab:a,orientation:c,keyBoardActivation:u})=>{let p=(0,xe.useRef)(n),{focusTab:d,highlightedIdx:f,onClick:m,onKeyDown:h,setHighlightedIdx:x,...v}=xa({containerRef:r,keyBoardActivation:u,orientation:c,selectedIndex:p.current}),{activateTab:C,onClick:y,onKeyDown:b,selected:T}=Ca({highlightedIdx:f,onSelectionChange:o,selected:n});p.current=T;let{containerStyle:g,resumeAnimation:w,suspendAnimation:D}=ma(r,t?T:-1,c),P=(0,xe.useCallback)((F,$)=>{let{current:Q}=p;console.log(`useTabstrip handleDrop ${F} - ${$} ${Q}`),a==null||a(F,$);let ge=-1;$!==-1&&(Q===F?ge=$:F>Q&&$<=Q?ge=Q+1:F<Q&&$>=Q&&(ge=Q-1),ge!==-1&&(D(),C(ge),requestAnimationFrame(w)),d($,!1,!1,350))},[d,a,w,C,D]),{onMouseDown:E,...R}=kr({allowDragDrop:e,containerRef:r,draggableClassName:`tabstrip-${c}`,onDrop:P,orientation:"horizontal",itemQuery:".vuuOverflowContainer-item"}),S=(0,xe.useCallback)((F,$,Q,ge)=>{console.log(`handleExitEditMode ${F} ${$} ${Q} ${ge}`),l==null||l(F,$,Q,ge),Q||d(ge,!1,!0)},[d,l]),M=(0,xe.useCallback)((F,$)=>{m(F,$),y(F,$)},[m,y]),I=(0,xe.useCallback)((F=f)=>{let $=wf(r.current,F);if($)return $.querySelector(".vuuEditableLabel")},[r,f]),L=(0,xe.useCallback)((F=f)=>{let $=I(F);return $?$.classList.contains("vuuEditableLabel-editing"):!1},[I,f]),k=(0,xe.useCallback)((F=f)=>{let $=I(F);if($){let Q=new MouseEvent("dblclick",{view:window,bubbles:!0,cancelable:!0});$.dispatchEvent(Q)}},[I,f]),O=(0,xe.useCallback)(F=>{h(F),F.defaultPrevented||b(F),!F.defaultPrevented&&Tf(F.key)&&k()},[k,h,b]),A=(0,xe.useCallback)(F=>{let $=us(r.current),Q=$>F?$-1:$===F?0:$;return D(),i==null||i(F,Q),setTimeout(()=>{w()},200),!0},[r,i,w,D]),N=(0,xe.useCallback)(F=>(k(F),!0),[k]),H=(0,xe.useCallback)(F=>{if(ca(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]),B=(0,xe.useCallback)(()=>{L()?x(f):d(f)},[f,d,x,L]),z=(0,xe.useCallback)(F=>{let $=parseInt(F.index);isNaN($)||C($)},[C]),K={onFocus:v.onFocus,onKeyDown:O},_=(0,xe.useCallback)(()=>{s==null||s(),requestAnimationFrame(()=>{let F=us(r.current);F!==-1&&d(F)})},[r,d,s]),q={onClick:M,onKeyDown:O,onExitEditMode:S,onMenuAction:H,onMenuClose:B,onMouseDown:E};return{activeTabIndex:T,containerStyle:g,focusVisible:v.focusVisible,containerProps:{...v.containerProps,onSwitchWrappedItemIntoView:z},navigationProps:K,onClickAddTab:_,tabProps:q,...R}};var wn=require("react/jsx-runtime"),Ea=require("react"),ds="vuuTabstrip",ta=({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=(0,Tn.useRef)(null),{activeTabIndex:T,focusVisible:g,containerStyle:w,draggedItemIndex:D,onClickAddTab:P,tabProps:E,...R}=Ta({activeTabIndex:n,allowDragDrop:r,animateSelectionThumb:s,containerRef:b,keyBoardActivation:c,onActiveChange:p,onAddTab:d,onCloseTab:f,onExitEditMode:m,onMoveTab:h,orientation:x}),S=Or(a),M=(0,Sa.default)(ds,`${ds}-${x}`,l),I=C||w?{...C,...w}:void 0,L=(0,Tn.useMemo)(()=>pn(i).map((k,O)=>{let{id:A=`${S}-tab-${O}`,closeable:N=t,editable:H=o,showMenuButton:B=v}=k.props,z=O===T;return Tn.default.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:B,tabIndex:z?0:-1})}).concat(e?(0,Ea.createElement)(wa.Button,{...R.navigationProps,"aria-label":"Create Tab",className:`${ds}-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(0,wn.jsxs)(wn.Fragment,{children:[(0,wn.jsx)(Yl,{...y,...R.containerProps,className:M,height:28,id:S,orientation:x,overflowIcon:"more-horiz",ref:b,style:I,children:L}),R.draggable]})};var Ia=require("@salt-ds/core"),Aa=V(require("classnames")),_t=require("react");var Ra=require("@vuu-ui/vuu-popups"),Da=require("react"),Ma=V(require("classnames"));var La=require("react/jsx-runtime"),Sf="vuuTabMenu",Pa=({allowClose:n,allowRename:e,location:t,onMenuAction:r,onMenuClose:o,index:s})=>{let[i,l]=(0,Da.useMemo)(()=>[(a,c)=>{let u=[];return e&&u.push(da(c)),n&&u.push(ua(c)),u},{tabIndex:s}],[n,e,s]);return(0,La.jsx)(Ra.PopupMenu,{className:Sf,menuBuilder:i,menuActionHandler:r,menuLocation:(0,Ma.default)("tab",t),menuOptions:l,onMenuClose:o,tabIndex:-1})};var Wt=require("react/jsx-runtime"),Kt="vuuTab",ka=()=>{},na=(0,_t.forwardRef)(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=ka,onExitEditMode:h=ka,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=(0,_t.useRef)(null),R=(0,_t.useRef)(null),S=(0,Ia.useForkRef)(P,E),M=(0,_t.useCallback)(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?(0,Wt.jsx)(dn,{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(0,Wt.jsxs)("div",{...D,"aria-controls":e,"aria-selected":T,className:(0,Aa.default)(Kt,{[`${Kt}-closeable`]:o,"vuuDraggable-dragAway":s,[`${Kt}-editing`]:l,[`${Kt}-selected`]:T||void 0,[`${Kt}-vertical`]:b==="vertical",vuuFocusVisible:a}),onClick:M,onFocus:O,onKeyUp:L,ref:S,role:"tab",tabIndex:w,children:[(0,Wt.jsx)("div",{className:`${Kt}-main`,children:(0,Wt.jsx)("span",{className:`${Kt}-text`,"data-text":i?void 0:u,children:t!=null?t:k()})}),g?(0,Wt.jsx)(Pa,{allowClose:o,allowRename:i,location:p,onMenuAction:C,onMenuClose:y,index:c}):null]})});var lo=require("@salt-ds/core"),io=V(require("classnames")),ao=require("react");function Ef(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 ps=n=>n.closest("[data-idx],[aria-posinset]");var Oa=n=>Ef(ps(n));var Sn=require("react"),Rf=new Set(["/","-","."]),Df=n=>Rf.has(n),Ha=(n,e)=>e.startsWith(n)&&Df(e[n.length]),Na=(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=(0,Sn.useCallback)(d=>Array.isArray(o)?o.some(f=>Ha(d,f)):r,[r,o]),l=(0,Sn.useCallback)((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]=(0,Sn.useMemo)(()=>l(n,{index:0}),[l,n]),p=(0,Sn.useCallback)((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)&&Ha(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]};var Dt=require("react"),$a=require("@salt-ds/core"),za="single",Mf="checkbox",Pf="multi",Lf="extended",kf=["Enter"," "],Fa={},If=n=>n.expanded!==void 0,Va=n=>n&&n!=="none",Ba=({defaultSelected:n,highlightedIdx:e,treeNodes:t,onChange:r,selected:o,selection:s=za,selectionKeys:i=kf})=>{let l=s===za,a=s===Pf||s.startsWith(Mf),c=s===Lf,u=(0,Dt.useRef)(-1),p=(0,Dt.useCallback)(b=>i.includes(b.key),[i]),[d,f]=(0,$a.useControlled)({controlled:o,default:n!=null?n:[],name:"selected"}),m=(0,Dt.useCallback)((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=(0,Dt.useCallback)(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=(0,Dt.useCallback)((b,T)=>{if(c&&b.shiftKey){let g=t[T];m(b,T,g.id,!0)}},[c,t,m]),v=s==="none"?Fa:{onKeyDown:h,onKeyboardNavigation:x},C=(0,Dt.useCallback)(b=>{if(e!==-1){let T=t[e];If(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"?Fa:{onClick:C},selected:d,setSelected:f}};var De=require("react");var Ut=require("react");var Gt=new Map,Wa=(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 Ka=new ResizeObserver(n=>{for(let e of n){let{target:t,borderBoxSize:r,contentBoxSize:o}=e,s=Gt.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=Wa(t,{height:i,width:l,contentHeight:a,contentWidth:c},f);h!==m&&(d=!0,p[f]=h)}d&&u&&u(p)}}});function _a(n,e,t,r=!1){let o=(0,Ut.useRef)(e),s=(0,Ut.useCallback)(i=>{let{width:l,height:a}=i.getBoundingClientRect(),{clientWidth:c,clientHeight:u}=i;return o.current.reduce((p,d)=>(p[d]=Wa(i,{width:l,height:a,contentHeight:u,contentWidth:c},d),p),{})},[]);(0,Ut.useEffect)(()=>{let i=n.current;async function l(){Gt.set(i,{measurements:{}}),await document.fonts.ready;let a=Gt.get(i);if(a){let c=s(i);a.measurements=c,Ka.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(Gt.has(i))throw Error("useResizeObserver attemping to observe same element twice");l()}return()=>{i&&Gt.has(i)&&(Ka.unobserve(i),Gt.delete(i))}},[s,n]),(0,Ut.useEffect)(()=>{let i=n.current,l=Gt.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 Af=["height","scrollHeight"],Ga=(n,e,t=!1)=>{let r=(0,De.useRef)(0),o=(0,De.useRef)(!1),s=(0,De.useRef)(0),i=(0,De.useRef)(0),l=(0,De.useCallback)(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=(0,De.useCallback)(u=>{r.current=u.target.scrollTop},[]);(0,De.useEffect)(()=>{let{current:u}=n;return u&&u.addEventListener("scroll",a),()=>{u&&u.removeEventListener("scroll",a)}},[n,a]),(0,De.useLayoutEffect)(()=>{if(e!==-1&&i.current>s.current&&n.current){let u=n.current.querySelector(`
|
|
17
|
+
`,document.body.insertBefore(e,t)}}var zo=class{constructor(){this.currentPath=null;this.tabMode=null;If()}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=ua(o),s=document.getElementById("vuu-drop-outline");s==null||s.setAttribute("d",r),this.currentPath=r}clear(){No=null,Ir(),document.body.classList.remove("drawing"),Mr.PopupService.hidePopup()}get hoverDropTarget(){return No}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=si;if(No!==null)this.drawTarget(No);else if(si=e.nextDropTarget!=null,e.pos.tab?Pf(e):ct&&Ir(),this.drawTarget(e,n),si){let[s,i,l]=aa(e);{let a=(0,ma.jsx)(ca,{dropTarget:e,onHover:Ef,orientation:l});Mr.PopupService.showPopup({left:s,top:i,component:a})}}else Mr.PopupService.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=ua(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",Mf(p))}}},da="transition:margin-left .4s ease-out;margin-left: 63px",pa="transition:margin-left .4s ease-out;margin-left: 0px";function Pf(t){var l,a;let{AFTER:e,BEFORE:n}=ni,{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?(ct===null||ct!==i)&&(i.style.cssText=da,ct&&(ct.style.cssText=pa),ct=i):Ir()}else if((r==null?void 0:r.positionRelativeToTab)===n){if(ct===null){let c=".vuuHeader-title";i=(a=document.getElementById(s))==null?void 0:a.querySelector(c),i.style.cssText=da,ct=i}}else Ir()}function Ir(){ct&&(ct.style.cssText=pa,ct=null)}var Uv=new zo;var ha=_(require("classnames")),ga=require("react");var xa=require("react/jsx-runtime"),ba=(0,ga.forwardRef)(function({children:e,className:n,dropTarget:o,resizeable:r,...s},i){let l=(0,ha.default)("DraggableLayout",n);return(0,xa.jsx)("div",{className:l,ref:i,...s,children:e})}),ya="DraggableLayout";ba.displayName=ya;Re(ya,ba,"container");var Aa=require("@salt-ds/core"),Oa=_(require("classnames")),Na=require("react");var ka=require("@vuu-ui/vuu-utils"),ge=_(require("react"));var va=_(require("classnames"));var Ta=require("react/jsx-runtime"),Ca="vuuPlaceholder",Pr=({className:t,closeable:e,flexFill:n,resizeable:o,shim:r,...s})=>(0,Ta.jsx)("div",{className:(0,va.default)(Ca,t,{[`${Ca}-shim`]:r}),...s,"data-placeholder":!0,"data-resizeable":!0});Pr.displayName="Placeholder";Re("Placeholder",Pr);var Sa=_(require("classnames")),Ae=_(require("react"));var ii=require("react/jsx-runtime"),wa=Ae.default.memo(function({column:e,index:n,onDrag:o,onDragEnd:r,onDragStart:s,style:i}){let l=(0,Ae.useRef)(),a=(0,Ae.useRef)(null),c=(0,Ae.useRef)(0),[u,d]=(0,Ae.useState)(!1),p=(0,Ae.useCallback)(({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=(0,Ae.useCallback)(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=(0,Ae.useRef)(m),h=x=>f.current(x),g=(0,Ae.useCallback)(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=(0,Ae.useCallback)(()=>{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=(0,Ae.useCallback)(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=(0,Sa.default)("Splitter","focusable",{active:u,column:e});return(0,ii.jsx)("div",{className:T,"data-splitter":!0,ref:a,role:"separator",style:i,onBlur:b,onClick:C,onKeyDown:h,onMouseDown:v,tabIndex:0,children:(0,ii.jsx)("div",{className:"grab-zone"})})});var Lf=require("@vuu-ui/vuu-utils"),kf=_(require("react"));var Ra={},Ea="auto";var Wn=t=>{let{style:{width:e=Ea,height:n=Ea}=Ra}=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 Da(t){let{style:{flex:e,flexGrow:n,flexShrink:o,flexBasis:r}=Ra}=t.props;return typeof e=="number"||r===0&&n===1&&o===1?!0:typeof r!="number"}var Hf={},Vo=1,$o=2,Af=t=>typeof t.intrinsicSize=="number",Of=(t,e)=>{let n={};return t.forEach(o=>{n[o]=Mt(e,o)}),n},Lr=(t,e,n)=>t.map((o,r)=>{var a;let s=Mt(o,"resizeable"),{[e]:i}=(a=Wn(o))!=null?a:Hf,l=Da(o);return n?{index:r,flexOpen:l,intrinsicSize:i,resizeable:s,...Of(n,o)}:{index:r,flexOpen:l,intrinsicSize:i,resizeable:s}}),Ma=t=>{let e=t.length,n=t.every(Af),o=Array(e).fill(0);if(n&&e>0&&(o[0]=$o,o[e-1]=$o),e<2)return o;for(let r=0,s=0;r<e-1;r++)t[r].resizeable&&!s&&(s=Vo),o[r]+=s;for(let r=e-1;r>0&&(o[r]&Vo&&(o[r]-=Vo),!t[r].resizeable);r--);return o},Ia=(t,e)=>{let n=zf(t,e),o=Ff(t,e),r=n!==-1&&o!==-1?[n,o]:void 0,s=Nf(t,r);return[r,s]};function Nf(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 zf(t,e){let n=e,o=!1;for(;n>=1&&!o;)n=n-1,o=Pa(t,n);return n}function Ff(t,e){let n=e,o=!1,r=t.length;for(;n<r-1&&!o;)n=n+1,o=Pa(t,n);return n===r?-1:n}function Pa(t,e){let{placeholder:n,splitter:o,resizeable:r,intrinsicSize:s}=t[e];return!!(!o&&!s&&(n||r))}var Vf=t=>!t.splitter&&!t.placeholder,Ha=({children:t,onSplitterMoved:e,style:n})=>{let o=(0,ge.useRef)(null),r=(0,ge.useRef)(),s=(0,ge.useRef)(),i=(0,ge.useRef)([]),[,l]=(0,ge.useState)({}),a=g=>{s.current=g,l({})},c=(n==null?void 0:n.flexDirection)==="column",u=c?"height":"width",d=(0,ge.useMemo)(()=>Array.isArray(t)?t:ge.default.isValidElement(t)?[t]:[],[t]),p=(0,ge.useCallback)(g=>{let{current:y}=r;if(y){let[v,C]=Ia(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}=Wf(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=(0,ge.useCallback)((g,y)=>{s.current&&r.current&&a(Bf(s.current,r.current,y,u))},[u]),f=(0,ge.useCallback)(()=>{let g=r.current;g&&(e==null||e(g.filter(Vf))),g==null||g.forEach(y=>{y.currentSize=void 0,y.flexBasis=void 0,y.flexOpen=!1})},[e]),h=(0,ge.useCallback)(g=>ge.default.createElement(wa,{column:c,index:g,key:`splitter-${g}`,onDrag:m,onDragEnd:f,onDragStart:p}),[m,f,p,c]);return(0,ge.useMemo)(()=>{let[g,y]=$f(d,u,h,i.current);r.current=y,s.current=g},[d,h,u]),{content:s.current||[],rootRef:o}};function $f(t,e,n,o){let r=Lr(t,e),s=Ma(r),i=[],l=[];for(let a=0;a<t.length;a++){let c=t[a];if(a===0&&s[a]&$o&&(i.push(La(a)),l.push({placeholder:!0,shim:!0})),c.key==null){let u=o[a]||(o[a]=(0,ka.getUniqueId)());i.push(ge.default.cloneElement(c,{key:u}))}else i.push(c);l.push(r[a]),a>0&&s[a]&$o?(i.push(La(a)),l.push({placeholder:!0})):s[a]&Vo&&(i.push(n(i.length)),l.push({splitter:!0}))}return[i,l]}function Bf(t,e,n,o){return Kf(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?ge.default.cloneElement(s,{style:{...s.props.style,flexBasis:m,[o]:"auto"}}):s}else return s}):t}function Kf(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 La(t){return ge.default.createElement(Pr,{shim:t===0,key:`placeholder-${t}`})}function Wf(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}}var Fa=require("react/jsx-runtime"),ai="hwFlexbox",za=(0,Na.forwardRef)(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}=Ha({children:r,onSplitterMoved:d,style:g}),b=(0,Oa.default)(ai,i,{[`${ai}-column`]:s,[`${ai}-row`]:m,"flex-fill":l,"full-page":c});return(0,Fa.jsx)("div",{...y,className:b,"data-resizeable":p||void 0,id:u,ref:(0,Aa.useForkRef)(C,n),style:{...g,gap:a,"--spacing":f},children:v})});za.displayName="Flexbox";var ci=za;var _a=require("react");var kr={ADD:"add",BLUR:"blur",BLUR_SPLITTER:"blur-splitter",DRAG_START:"drag-start",DRAG_STARTED:"drag-started",DRAG_DROP:"drag-drop",FOCUS:"focus",FOCUS_SPLITTER:"focus-splitter",INITIALIZE:"initialize",LAYOUT_RESIZE:"layout-resize",MAXIMIZE:"maximize",MINIMIZE:"minimize",REMOVE:"remove",REPLACE:"replace",RESTORE:"restore",SAVE:"save",SET_TITLE:"set-title",SPLITTER_RESIZE:"splitter-resize",SWITCH_TAB:"switch-tab",TEAR_OUT:"tear-out"};var Gn=require("react");var oh=_(require("react"));var Uf=require("@vuu-ui/vuu-utils"),Xf=_(require("react"));var _f=require("@vuu-ui/vuu-utils"),Va=_(require("react"));var cn=require("react"),Je=new Map,et=new Map;var _n=()=>{let t=(0,cn.useCallback)((i,l)=>{let a=et.get(i);if(a)return l!==void 0&&a[l]!==void 0?a[l]:l!==void 0?void 0:a},[]),e=(0,cn.useCallback)((i,l,a)=>{if(l===void 0)et.set(i,a);else if(et.has(i)){let c=et.get(i);et.set(i,{...c,[l]:a})}else et.set(i,{[l]:a})},[]),n=(0,cn.useCallback)((i,l)=>{if(et.has(i)){if(l===void 0)et.delete(i);else if(et.get(i)[l]){let{[l]:c,...u}=et.get(i);Object.keys(u).length>0?et.set(i,u):et.delete(i)}}},[]),o=(0,cn.useCallback)((i,l)=>{let a=Je.get(i);if(a)return l!==void 0?a[l]:a},[]),r=(0,cn.useCallback)((i,l,a)=>{if(l===void 0)Je.set(i,a);else if(Je.has(i)){let c=Je.get(i);Je.set(i,{...c,[l]:a})}else Je.set(i,{[l]:a})},[]),s=(0,cn.useCallback)((i,l)=>{if(Je.has(i)){if(l===void 0)Je.delete(i);else if(Je.get(i)[l]){let{[l]:c,...u}=Je.get(i);Object.keys(u).length>0?Je.set(i,u):Je.delete(i)}}},[]);return{loadSessionState:t,loadState:o,saveSessionState:e,saveState:r,purgeState:s,purgeSessionState:n}};var Yf=require("react");var jf=_(require("react"));var qf=_(require("react"));var Jf=_(require("react"));var eh=require("@vuu-ui/vuu-utils"),th=_(require("react"));var Ba=require("react"),rh=t=>console.log(`dispatch ${t.type}, have you forgotten to provide a LayoutProvider ?`),Ka=(0,Ba.createContext)({dispatchLayoutProvider:rh,version:-1});var Wa=require("react");var sh=require("react/jsx-runtime");var tt=()=>{let{dispatchLayoutProvider:t}=(0,Gn.useContext)(Ka);return t};var Ua=require("react/jsx-runtime"),Ga=function(e){let{path:n}=e,o=tt(),r=(0,_a.useCallback)(s=>{o({type:kr.SPLITTER_RESIZE,path:n,sizes:s})},[o,n]);return(0,Ua.jsx)(ci,{...e,onSplitterMoved:r})};Ga.displayName="Flexbox";Re("Flexbox",Ga,"container");var ec=require("@salt-ds/core"),tc=_(require("classnames")),Or=require("react");var ut=require("react");var dn=require("react"),Qa=["height","width"];var un=new WeakMap,ja=(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}},Xa=new ResizeObserver(t=>{for(let e of t){let{target:n,contentRect:o}=e,r=un.get(n);if(r){let{onResize:s,measurements:i}=r,l=!1;for(let[a,c]of Object.entries(i)){let u=ja(n,o,a);u!==c&&(l=!0,i[a]=u)}l&&s&&s(i)}}});function Hr(t,e,n,o=!1){console.log("resizeObserver container",{ref:t.current});let r=(0,dn.useRef)(e),s=(0,dn.useCallback)(i=>{let l=i.getBoundingClientRect();return r.current.reduce((a,c)=>(a[c]=ja(i,l,c),a),{})},[]);(0,dn.useLayoutEffect)(()=>{let i=t.current,l=!1;async function a(){un.set(i,{measurements:{}}),l=!1;let{fonts:c}=document;if(c&&await c.ready,!l){let u=un.get(i);if(u){let d=s(i);u.measurements=d,Xa.observe(i),o&&n(d)}}}if(i){if(un.has(i))throw Error("useResizeObserver attemping to observe same element twice");a()}return()=>{i&&un.has(i)&&(Xa.unobserve(i),un.delete(i),l=!0)}},[t,s,o,n]),(0,dn.useLayoutEffect)(()=>{let i=t.current,l=un.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 ih(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 lh=([,t],[,e])=>e-t,mi=t=>Object.entries(t).sort(lh).map(([e,n],o,r)=>[e,n,o<r.length-1?r[o+1][1]:9999]),pi=null,ah=(t="salt")=>{let{xs:e,sm:n,md:o,lg:r,xl:s}=ih(t);return mi({xs:e,sm:n,md:o,lg:r,xl:s})},Ya=t=>(pi===null&&(pi=ah(t)),pi);var ch=[],Za=({breakPoints:t,smallerThan:e},n)=>{let[o,r]=(0,ut.useState)(e?!1:"lg"),s=(0,ut.useRef)(document.body),i=(0,ut.useRef)(t?mi(t):Ya()),l=(0,ut.useRef)("lg"),a=(0,ut.useCallback)(u=>{if(i.current){for(let[d,p]of i.current)if(u>=p)return d}},[i]),c=(0,ut.useCallback)(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 Hr(n||s,i.current?["width"]:ch,({width:u})=>{let d=c(u);d!==l.current&&(l.current=d,r(d))},!0),(0,ut.useEffect)(()=>{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 uh="data-collapsible",dE={[uh]:!0,"data-pad-start":!0,"data-pad-end":!0};var qa=require("@vuu-ui/vuu-utils"),Xe=require("react");var dh=["xs","sm","md","lg","xl"],ph=12,Ja=({children:t,cols:e,style:n})=>{let o=(0,Xe.useRef)(null),r=(0,Xe.useRef)(null),s=(0,Xe.useRef)(),i=e!=null?e:ph,a=(n==null?void 0:n.flexDirection)==="column"?"height":"width",c=(0,Xe.useMemo)(()=>Array.isArray(t)?t:(0,Xe.isValidElement)(t)?[t]:[],[t]),u=(0,Xe.useCallback)((d,p)=>{let m=Lr(d,p,dh),f=[],h=[];for(let g=0;g<d.length;g++){let y=d[g],{style:{flex:v,...C}}=y.props;f.push((0,Xe.cloneElement)(y,{key:(0,qa.getUniqueId)(),style:{...C,"--parent-col-count":i}})),h.push(m[g])}return[f,h]},[i]);return(0,Xe.useMemo)(()=>{let[d,p]=u(c,a);r.current=p,s.current=d},[u,c,a]),{cols:i,content:s.current,rootRef:o}};var nc=require("react/jsx-runtime"),Ar="hwFluidGrid",fi=(0,Or.forwardRef)(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=(0,Or.useMemo)(()=>Bn(r),[r]),{cols:T,content:x,rootRef:w}=Ja({children:b,cols:i,style:v}),R=Za({breakPoints:o},w),M=(0,tc.default)(Ar,l,{[`${Ar}-column`]:s,[`${Ar}-row`]:f,[`${Ar}-show-grid`]:h,"flex-fill":a,"full-page":u}),E={...v,"--spacing":g,"--grid-col-count":T,"--grid-gap":c};return(0,nc.jsx)("div",{...C,className:M,"data-breakpoint":R,"data-cols":T,"data-resizeable":m||void 0,id:d,ref:(0,ec.useForkRef)(w,n),style:E,children:x})});fi.displayName="FluidGrid";var rc=require("react/jsx-runtime"),oc=function(e){return(0,rc.jsx)(fi,{...e})};oc.displayName="FluidGrid";Re("FluidGrid",oc,"container");var dc=require("@salt-ds/core"),Vr=_(require("classnames")),_t=_(require("react"));var Wt=require("react");var Nr=(t,e,n,o)=>{var g;let{loadSessionState:r,purgeSessionState:s,purgeState:i,saveSessionState:l}=_n(),[a,c]=(0,Wt.useState)((g=r(t,"contributions"))!=null?g:[]),u=tt(),d=(0,Wt.useCallback)((y,v)=>{let C=a.concat([{location:y,content:v}]);l(t,"contributions",C),c(C)},[a,t,l]),p=(0,Wt.useCallback)(()=>{s(t,"contributions"),c([])},[t,s]),m=(0,Wt.useCallback)(()=>{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=(0,Wt.useCallback)(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[(0,Wt.useCallback)(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]};var Fr=require("@salt-ds/core"),ac=_(require("classnames")),Oe=_(require("react"));var dt=require("react");var sc=({id:t,rootRef:e,path:n,dropTargets:o,title:r})=>{let s=tt(),{loadState:i,loadSessionState:l,purgeState:a,saveState:c,saveSessionState:u}=_n(),[d,p]=Nr(t,e,n,o),m=(0,dt.useMemo)(()=>{var x;return(x=i("view-title"))!=null?x:r},[i,r]),f=(0,dt.useCallback)(x=>{n&&s({type:"set-title",path:n,title:x})},[s,n]),h=(0,dt.useMemo)(()=>i(t),[t,i]),g=(0,dt.useCallback)(x=>i(t,x),[t,i]),y=(0,dt.useCallback)(x=>{a(t,x),s({type:"save"})},[t,s,a]),v=(0,dt.useCallback)((x,w)=>{c(t,w,x),s({type:"save"})},[t,s,c]),C=(0,dt.useCallback)(x=>l(t,x),[t,l]),b=(0,dt.useCallback)((x,w)=>u(t,w,x),[t,u]),T=(0,dt.useCallback)(({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}};var Un=require("react"),mh=[],ic=({mainRef:t,resize:e="responsive",rootRef:n})=>{let o=e==="defer",r=(0,Un.useRef)({}),s=(0,Un.useRef)(),i=(0,Un.useCallback)(()=>{t.current&&(t.current.style.height=r.current.height+"px",t.current.style.width=r.current.width+"px"),s.current=void 0},[t]),l=(0,Un.useCallback)(({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]);Hr(n,o?Qa:mh,l,o)};var zr=_(require("react")),fh={dispatch:null},hi=zr.default.createContext(fh),lc=()=>{var e;let t=(0,zr.useContext)(hi);return(e=t==null?void 0:t.dispatch)!=null?e:null};var Xn=require("react/jsx-runtime"),Bo="vuuView",hh=(t,e)=>t&&e?{...t,...e}:t||e,cc=(0,Oe.forwardRef)(function(e,n){let{Header:o=uc,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=(0,Fr.useIdMemo)(m),R=(0,Oe.useRef)(null),M=(0,Oe.useRef)(null),[E,I]=(0,Oe.useState)(),{contributions:S,dispatchViewAction:D,load:L,loadSession:A,onConfigChange:H,onEditTitle:P,purge:k,restoredState:N,save:O,saveSession:F,title:$}=sc({id:w,rootRef:R,path:g,dropTargets:u,title:T});ic({mainRef:M,resize:y,rootRef:R});let U=(0,Oe.useCallback)(z=>{I(z)},[]),W=()=>Oe.default.isValidElement(r)&&(N||E)?Oe.default.cloneElement(r,hh(N,E)):r,Z=(0,Oe.useMemo)(()=>({dispatch:D,id:w,path:g,title:$,load:L,loadSession:A,onConfigChange:H,purge:k,save:O,saveSession:F,setComponentProps:U}),[D,w,L,A,H,g,k,O,F,U,$]),V=typeof f=="object"?f:{};return(0,Xn.jsx)("div",{...x,className:(0,ac.default)(Bo,s,{[`${Bo}-collapsed`]:i,[`${Bo}-expanded`]:d,[`${Bo}-resize-defer`]:y==="defer"}),"data-resizeable":v,id:w,ref:(0,Fr.useForkRef)(n,R),style:b,tabIndex:-1,children:(0,Xn.jsxs)(hi.Provider,{value:Z,children:[f?(0,Xn.jsx)(o,{...V,collapsed:i,contributions:S,expanded:d,closeable:l,onEditTitle:P,orientation:h,tearOut:C,title:$}):null,(0,Xn.jsx)("div",{className:`${Bo}-main`,ref:M,children:W()})]})})});cc.displayName="View";var Qn=Oe.default.memo(cc);Qn.displayName="View";Re("View",Qn,"view");var jn=require("react/jsx-runtime"),uc=({className:t,contributions:e,collapsed:n,closeable:o,onEditTitle:r,orientation:s="horizontal",style:i,title:l="Untitled"})=>{let a=(0,_t.useRef)(null),[c,u]=(0,_t.useState)(l),[d,p]=(0,_t.useState)(!1),m=lc(),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=(0,Vr.default)(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(_t.default.cloneElement(I.content,{key:S}));break;default:M.push(_t.default.cloneElement(I.content,{key:S}))}}),l&&R.push((0,jn.jsx)(Vn,{editing:d,value:c,onChange:u,onMouseDownCapture:g,onEnterEditMode:b,onExitEditMode:x,onKeyDown:T,ref:a,tabIndex:0},"title")),o&&E.push((0,jn.jsx)(dc.Button,{"data-icon":"close",onClick:f,onMouseDown:y,variant:"secondary"},"close")),M.length>0&&R.push((0,jn.jsx)("div",{className:"vuuTooltrayProxy","data-align":"end",children:M},"contributions")),E.length>0&&R.push((0,jn.jsx)("div",{className:"vuuTooltrayProxy","data-align":"end",children:E},"actions")),(0,jn.jsx)("div",{className:(0,Vr.default)("vuuToolbarProxy",C),style:i,onMouseDown:w,children:R})};var Tc=require("@vuu-ui/vuu-popups"),Wo=_(require("classnames")),Kr=_(require("react"));var Br=require("@vuu-ui/vuu-utils"),pt=require("react");var gh=".vuuOverflowContainer-item:not(.wrapped)",bh=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}),gi=[],Ko=(t,e="horizontal")=>{let n=[],o=[],r=-1,s=!1,i=bh(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]},pc=(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")}},yh=(t,{overflowPriority:e})=>Math.max(t,parseInt(e)),xh=(t,{overflowPriority:e})=>Math.min(t,parseInt(e)),mc=t=>{var e;return t.length>1&&((e=t.at(-1))==null?void 0:e.index)==="overflow"},Ch=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},fc=(t,e)=>{var r;let n=t.reduce(xh,Number.MAX_SAFE_INTEGER);return e.reduce(yh,0)>n?!0:e.length>1&&((r=e.at(-1))==null?void 0:r.index)==="overflow"},hc=(t,e)=>new Promise(n=>{requestAnimationFrame(()=>{let[,o]=Ko(t);Sh(e,o).forEach(s=>vh(t,s)),n(o)})}),gc=(t,e,n)=>new Promise(o=>{requestAnimationFrame(()=>{let[,r]=Ko(t),s=Ch(r);if(s){let[i,l]=bi(t,s);o([i,l])}else o([e,n])})}),bc=(t,e)=>t.querySelector(`[data-index="${e.index}"]`),vh=(t,e)=>{let n=bc(t,e);if(n)n.classList.add("wrapped");else throw Error(`markElementAsWrapped element item with index ${e.index} not found`)},Th=t=>Array.from(t.querySelectorAll(".wrapped")),Sh=(t,e)=>{let n=[];for(let o of e)t.find(({index:r})=>r===o.index)||n.push(o);return n},wh=(t,e)=>{Th(t).forEach(o=>{let{dataset:{index:r="?"}}=o;e.find(s=>s.index===r)||o.classList.remove("wrapped")})},yc=t=>t.querySelector('[data-index="overflow"]'),Eh=t=>t.querySelector(".wrapped"),$r=t=>parseInt(getComputedStyle(t).getPropertyValue("width")),xc=(t,e)=>{let{right:n}=t.getBoundingClientRect(),o=parseInt(getComputedStyle(t).getPropertyValue("padding-right")),{right:r}=e.getBoundingClientRect();return n-o-r},Cc=t=>{let e=yc(t),n=xc(t,e),o=$r(e),r=Eh(t);return $r(r)<=n+o?(t.classList.remove("overflowed"),r.classList.remove("wrapped"),!0):!1},Rh=(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)},Dh=t=>Array.from(t.querySelectorAll(gh)).sort(Rh),bi=(t,e)=>{let n=Dh(t),o=bc(t,e),r=-1,s=n.at(r),i=$r(s),l=$r(o),a=yc(t),c=xc(t,a)+i;if(c>=l)Mh(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]=Ko(t);return wh(t,d),[u,d]},Mh=(t,e)=>{if(!t||!e)throw Error("switchWrapOnElements, element undefined");t.classList.remove("wrapped"),e.classList.add("wrapped")};var vc=({itemCount:t,onSwitchWrappedItemIntoView:e,orientation:n="horizontal"})=>{let[o,r]=(0,pt.useState)(null),s=(0,pt.useRef)(gi),i=(0,pt.useCallback)(async()=>{if(o){let[p,m]=Ko(o,n);for(pc(o,m),mc(m)&&(m=await hc(o,m));fc(p,m);)[p,m]=await gc(o,p,m);m.length===1&&Cc(o)&&(m=gi),s.current=m}},[o,n]),l=p=>typeof p=="object"&&p!==null&&"overflowItem"in p,[a,c]=(0,pt.useMemo)(()=>[()=>{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]=bi(o,p.overflowItem);s.current=m,e==null||e(p.overflowItem)}return!0}],[o,e]),u=(0,pt.useMemo)(()=>{let{sizeProp:p}=Br.MEASURES[n],m=0;return new ResizeObserver(f=>{for(let h of f){let{[p]:g}=h.contentRect;(0,Br.isValidNumber)(g)&&m!==g&&(m=g,i())}})},[i,n]);Dr(()=>{i()},[i,t]),(0,pt.useMemo)(()=>{o&&u.observe(o)},[o,u]);let d=(0,pt.useCallback)(p=>{r(p)},[]);return{menuActionHandler:c,menuBuilder:a,rootRef:d}};var Gt=require("react/jsx-runtime"),Yn="vuuOverflowContainer",Sc=Kr.default.memo(({children:t,className:e,height:n,onSwitchWrappedItemIntoView:o,orientation:r="horizontal",overflowIcon:s})=>{let i=Bn(t),{menuActionHandler:l,menuBuilder:a,rootRef:c}=vc({itemCount:i.length,onSwitchWrappedItemIntoView:o,orientation:r}),d={"--overflow-container-height":`${r==="vertical"?"100%":`${n}px`}`},p=(0,Wo.default)(`${Yn}-wrapContainer`,e,{[`${Yn}-horizontal`]:r==="horizontal",[`${Yn}-vertical`]:r==="vertical"});return(0,Gt.jsxs)("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(0,Gt.jsx)("div",{className:(0,Wo.default)(`${Yn}-item`),"data-index":f,"data-label":y,"data-overflow-priority":h,id:`${g}-wrapper`,children:m},f)}),(0,Gt.jsx)("div",{className:`${Yn}-OverflowIndicator`,"data-index":"overflow",children:(0,Gt.jsx)(Tc.PopupMenu,{icon:s,menuBuilder:a,menuActionHandler:l})})]})});Sc.displayName="OverflowContainer.InnerContainer";var wc=(0,Kr.forwardRef)(function({children:e,className:n,height:o=44,onSwitchWrappedItemIntoView:r,orientation:s,overflowIcon:i,...l},a){return(0,Gt.jsx)("div",{...l,className:(0,Wo.default)((0,Wo.default)(Yn,n)),ref:a,children:(0,Gt.jsx)(Sc,{height:o,orientation:s,overflowIcon:i,onSwitchWrappedItemIntoView:r,children:e})})});var Ec=require("@vuu-ui/vuu-utils"),_r=require("@salt-ds/lab"),yi=_(require("classnames")),Gr=require("react");var Wr=require("react/jsx-runtime"),Ih=t=>{let e=t.cloneNode(!0);return e.id="",delete e.dataset.idx,e},Rc=(0,Gr.memo)(({className:t,children:e,idx:n,resizeable:o,header:r,closeable:s,...i})=>(0,Wr.jsx)(_r.ListItem,{className:(0,yi.default)("vuuPaletteItem",t),"data-draggable":!0,...i}));Rc.displayName="PaletteItem";var Ph=({children:t,className:e,orientation:n="horizontal",ViewProps:o,...r})=>{let s=tt(),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=(0,Ec.uuid)(),x=f?m:(0,Wr.jsx)(Qn,{...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:Ih(u),evt:a.nativeEvent,instructions:{DoNotRemove:!0,DoNotTransform:!0,RemoveDraggableOnDragEnd:!0,dragThreshold:10},path:"*",payload:x,type:"drag-start"})}return(0,Wr.jsx)(_r.List,{...r,borderless:!0,className:(0,yi.default)(i,e,`${i}-${n}`),maxHeight:800,selected:null,children:t.map((a,c)=>a.type===Rc?(0,Gr.cloneElement)(a,{key:c,onMouseDown:l}):a)})};Re("Palette",Ph,"view");var Mc=_(require("classnames")),Ut=_(require("react"));var _o=require("react/jsx-runtime"),Dc="Tabs",Lh=()=>{},kh=(t,e)=>{var n,o;return(o=(n=t.props)==null?void 0:n.title)!=null?o:`Tab ${e+1}`},Hh=t=>{let e=[];return Ut.default.Children.forEach(t,n=>{Ut.default.isValidElement(n)?e.push(n):console.warn("Stack has unexpected child element type")}),e},Ah={allowAddTab:!1,allowCloseTab:!1,allowRenameTab:!1},xi=(0,Ut.forwardRef)(function({active:e=0,children:n,className:o,getTabIcon:r=Lh,getTabLabel:s=kh,id:i,keyBoardActivation:l="manual",onAddTab:a,onMoveTab:c,onTabClose:u,onTabEdit:d,onTabSelectionChanged:p,showTabs:m="top",style:f,TabstripProps:h=Ah},g){var E;let y=Kn(i),{allowCloseTab:v,allowRenameTab:C}=h,b=(0,Ut.useCallback)((I,S,D,L)=>{d==null||d(L,S)},[d]),T=()=>{var I;return Ut.default.isValidElement(n)?n:Array.isArray(n)&&(I=n[e])!=null?I:null},x=()=>Hh(n).map((I,S)=>{let D=`${y}-${S}`,{closeable:L=v,id:A}=I.props;return(0,_o.jsx)(Pc,{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(0,_o.jsxs)("div",{className:(0,Mc.default)(Dc,o,{[`${Dc}-horizontal`]:R}),style:f,id:y,ref:g,children:[m?(0,_o.jsx)(Ic,{...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]})});xi.displayName="Stack";var Lc=require("@salt-ds/core"),Xt=_(require("react"));var Ur=require("react/jsx-runtime"),Oh=t=>(0,Ur.jsx)(Qn,{resizeable:!0,title:`Tab ${t}`,style:{flexGrow:1,flexShrink:0,flexBasis:0},header:!0,closeable:!0,children:(0,Ur.jsx)(Js,{style:{flex:1}})}),kc=t=>{let e=(0,Xt.useRef)(null),n=tt(),{loadState:o}=_n(),{createNewChild:r=Oh,id:s,onTabSelectionChanged:i,path:l,...a}=t,{children:c}=t,u=(0,Lc.useIdMemo)(s),[d]=Nr(u,e,l),p=C=>{l&&(n({type:"switch-tab",path:l,nextIdx:C}),i==null||i(C))},m=(0,Xt.useCallback)(C=>{if(Array.isArray(c)){let{props:{"data-path":b,path:T=b}}=c[C];n({type:"remove",path:T})}},[c,n]),f=(0,Xt.useCallback)(()=>{if(l){let C=Xt.default.Children.count(c),b=r(C);n({type:"add",path:l,component:b})}},[c,r,n,l]),h=(0,Xt.useCallback)((C,b)=>{l&&n({fromIndex:C,toIndex:b,path:l,type:"move-child"})},[n,l]);return(0,Ur.jsx)(xi,{...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})};kc.displayName="Stack";Re("Stack",kc,"container");var Hc=_(require("react"));var Ac=require("react/jsx-runtime");var Oc=require("@salt-ds/core"),Nc=require("react/jsx-runtime");var Xr="(\\d+)(?:px)?",Nh=`^(?:${Xr}(?:\\s${Xr}(?:\\s${Xr}(?:\\s${Xr})?)?)?)$`,_D=new RegExp(Nh);var zh=_(require("react")),Fh=_(require("classnames"));var Vh=require("react/jsx-runtime");var Su=require("@salt-ds/core"),ss=_(require("classnames")),vt=require("react");var Go=require("react"),Kh=require("react/jsx-runtime"),Bh=(0,Go.createContext)(void 0);function zc(){let t=(0,Go.useContext)(Bh);if(t)return t}var Wh=t=>Object.prototype.toString.call(t)==="[object Object]";function Zn(t){return typeof t=="string"?t:Wh(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 _h(t,...e){let n=new Set(t);for(let o of e)for(let r of o)n.add(r);return n}var Uo="ArrowUp",Xo="ArrowDown",Fc="ArrowLeft",Vc="ArrowRight",Ci="Enter";var Qr="Home",Qo="End",vi="PageUp",jr="PageDown",$c=" ";var Gh=new Set(["Enter","Delete"," "]),Uh=new Set(["Tab"]),Xh=new Set(["ArrowRight","ArrowLeft"]),Bc=new Set([Qr,Qo,vi,jr,Xo,Uo]),Qh=new Set(["F1","F2","F3","F4","F5","F6","F7","F8","F9","F10","F11","F12"]),jh=_h(Gh,Bc,Xh,Qh,Uh),Yr=t=>jh.has(t.key)?!1:t.key.length===1&&!t.ctrlKey&&!t.metaKey&&!t.altKey,Kc=({key:t})=>Bc.has(t);var Ti=require("react");var Yh={},Zh=t=>Array.isArray(t.childNodes),qh=t=>!0,Jh=t=>t.closest("[data-toggle],[aria-expanded]").dataset.toggle==="true",Wc=({collapsibleHeaders:t,collectionHook:e,highlightedIdx:n,onToggle:o})=>{let r=(0,Ti.useCallback)(l=>{if(l.key===Vc||l.key===Ci){let a=e.data[n];a&&a.expanded===!1&&a.value&&(l.preventDefault(),e.expandGroupItem(a),o==null||o(a.value))}if(l.key===Fc||l.key===Ci){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:(0,Ti.useCallback)(l=>{console.log(`useCollapsibleGroups idx=${n}`);let a=e.data[n];console.log(l.target,l.currentTarget),a&&Zh(a)&&(!qh(a)||Jh(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:Yh};function eg(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 tg=t=>t.closest("[data-idx],[aria-posinset]");var _c=t=>eg(tg(t));var Gc=t=>t==="none",qn=t=>Array.isArray(t)?t.length>0:t!=null,Uc=t=>Array.isArray(t)?t[0]:t;var ce=require("react");var Jn=require("react");var Xc=t=>null;var Qc=t=>null;var Si=(t,e)=>t!==null&&Object.prototype.hasOwnProperty.call(t,e),wi=t=>Si(t,"header"),jc=t=>Si(t,"childNodes"),jo=(t,e)=>t&&Object.prototype.hasOwnProperty.call(t.props,e),Yc=t=>{if((0,Jn.isValidElement)(t)){if(jo(t,"disabled"))return t.props.disabled===!0}else if(Si(t,"disabled"))return t.disabled===!0;return!1},Zc=t=>(0,Jn.isValidElement)(t)&&jo(t,"focusable")?t.props.focusable:!0,qc=(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},ng=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},Jc=t=>t.type===Qc||jo(t,"data-header"),eu=t=>t.type===Xc||jo(t,"data-group"),og=t=>jo(t,"selectable")?t.props.selectable===!0:!eu(t)&&!Jc(t),rg=t=>{if(eu(t)){let{props:{children:e}}=t;if(typeof e!="string")return Ri(e)}},sg=(t,e)=>{let n=[];return Jn.Children.forEach(t,o=>{(0,Jn.isValidElement)(o)&&n.push(e(o))}),n},Ei=(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:Ei(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:Zn(n)}});if(t)throw Error("list-child-items expects source to be an array")},Ri=t=>{if(t)return sg(t,e=>{let{"data-id":n,disabled:o,id:r=n,"data-expanded":s,expanded:i=s}=e.props;return{childNodes:rg(e),disabled:o,expanded:i,header:Jc(e),id:r,label:ng(e),selectable:og(e),value:e}})},ig=new Set(["/","-","."]),lg=t=>ig.has(t),tu=(t,e)=>e.startsWith(t)&&lg(e[t.length]),ag=new Set([".","/"]);function cg(t,e){return e.startsWith(t)?ag.has(e.charAt(t.length)):!1}function Zr(t,e,n){let o;return t.map(s=>s.id===e?{...s,...n}:cg(s.id,e)&&s.childNodes?(o=Zr(s.childNodes,e,n),{...s,childNodes:o}):s)}var ug=t=>t&&t.replace(/^\s+/g,""),Di=t=>new RegExp(`(${Tr(ug(t))})`,"gi"),nu=(t="",e=Di)=>(n="")=>!!n.length&&!!t.length&&n.match(e(t))!==null;function qr(t,e){return Array.isArray(t)?t.includes(e):t===e}var dg={},Jr=({children:t,id:e,label:n="",options:o=dg,source:r})=>{var H;let{getItemId:s}=o,[,i]=(0,ce.useState)(null),l=zc(),a=(0,ce.useRef)([]),c=(0,ce.useRef)([]),u=(0,ce.useMemo)(()=>[],[]),d=(0,ce.useRef)((H=o.filterPattern)!=null?H:""),{getFilterRegex:p=Di,noChildrenLabel:m,itemToString:f=Zn}=o,h=(0,ce.useCallback)(P=>o.defaultExpanded||!1,[o.defaultExpanded]),g=(0,ce.useCallback)((P,k,N=1,O="",F=[],$=[],U=[])=>(P.forEach((W,Z,V)=>{var J,B;let z=W.header&&o.collapsibleHeaders,K=W.childNodes&&o.collapsibleHeaders===!1,G=!W.childNodes||W.childNodes.length===0,se=K||G&&!z,X=O?`${O}.${Z}`:`item-${Z}`,Y=(J=W.id)!=null?J:s?s(Z):`${e}-${X}`,q=se?void 0:(B=W.expanded)!=null?B:h(Y),ne={...W,childNodes:void 0,count:!K&&q===void 0?0:qc(W,V,Z),description:W.description,disabled:Yc(W.value),focusable:Zc(W.value)?void 0:!1,id:Y,index:k.value,expanded:q,level:N};if(F.push(ne),$.push(ne),U.push(P[Z].value),k.value+=1,W.childNodes){let[te]=g(W.childNodes,k,N+1,X,[],$,U);ne.childNodes=te}}),[F,U,$]),[o.collapsibleHeaders,s,e,h]),y=(0,ce.useCallback)(()=>d.current?nu(d.current,p):null,[p]),v=(0,ce.useCallback)((P,k=y(),N=[],O={value:0})=>{let F=!1;for(let $ of P)F&&!wi($)||($.value!==null&&(k===null||k(f($.value)))&&(N[O.value]=$,O.value+=1),F=!1,wi($)&&$.expanded===!1?F=!0:jc($)&&$.expanded!==!1&&$.childNodes&&v($.childNodes,k,N,O));return N},[y,f]),C=(0,ce.useMemo)(()=>l?u:Ei(r,{itemToString:f,noChildrenLabel:m})||Ri(t)||[],[l,u,r,f,m,t]),[b,T,x]=(0,ce.useMemo)(()=>l?[u,u,u]:g(C,{value:0}),[u,g,l,C]);c.current=x,(0,ce.useMemo)(()=>l?u:a.current=v(b),[u,v,b,l]);let w=(0,ce.useRef)(b),R=(0,ce.useCallback)((P="")=>{typeof P=="string"&&(d.current=P,a.current=v(b),i({}))},[b,v]),M=(0,ce.useCallback)((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)&&tu(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=(0,ce.useCallback)(P=>{let k=c.current.find(N=>(0,ce.isValidElement)(N.value)?N.label===P:N.value===P);if(k)return k;throw Error("useCollectionData toCollectionItem, item not found ")},[]),I=(0,ce.useCallback)(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=(0,ce.useCallback)(P=>{let k=N=>{let O=c.current.find(F=>(0,ce.isValidElement)(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=(0,ce.useCallback)(P=>{for(let k of w.current)if(P===k.value)return k.id;throw Error("useCollectionData itemToId, item not found")},[]),L=(0,ce.useCallback)(P=>{w.current=Zr(w.current,P.id,{expanded:!1}),a.current=v(w.current),i({})},[v]),A=(0,ce.useCallback)(P=>{w.current=Zr(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}};var es=require("react"),pg={scrollToIndex:t=>{},scrollToItem:t=>{},scrollTo:t=>{}},ts=({collectionHook:t,forwardedRef:e,scrollableRef:n,scrollIntoView:o})=>{let r=(0,es.useMemo)(()=>({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]);(0,es.useImperativeHandle)(e,()=>n.current?r:pg,[r])};var su=require("@salt-ds/core"),Ne=require("react");var Ii=-2;function ou(t,e,n){return e===Uo||e===Qo?n>0?n-1:n:n===null?0:n===t-1?n:n+1}var Mi=(t,e)=>{let n=Uc(e);return n?t.indexOf(n):-1},mg=(t,e,n,o)=>t===Qo?o:t===Qr?-1:e!==-1?e:n,iu=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}`)},fg=(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=iu(n[u]);while(d.top<r&&u<a);return u}},hg=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=iu(n[c]);while(u.top>r&&c>0);a(c)})})},gg=t=>!t.header&&!t.childNodes,ru=t=>gg(t)||t.expanded!==void 0,lu=({containerRef:t,defaultHighlightedIndex:e=-1,disableHighlightOnFocus:n,highlightedIndex:o,indexPositions:r,onHighlight:s,onKeyboardNavigation:i,restoreLastFocus:l,selected:a})=>{let c=(0,Ne.useRef)(-1),[,u]=(0,Ne.useState)({}),[d,p,m]=(0,su.useControlled)({controlled:o,default:e,name:"UseKeyboardNavigation"}),f=(0,Ne.useCallback)((R,M=!1)=>{s==null||s(R),p(R),M&&(c.current=R)},[s,p]),h=(0,Ne.useCallback)(async(R,M)=>{let{id:E}=r[M],I;if(E){let S=document.getElementById(E),{current:D}=t;S&&D&&(I=R.key===jr?fg(D,S,r,M):await hg(D,S,r,M))}return I!=null?I:M},[t,r]),g=(0,Ne.useCallback)((R=Xo,M=R===Xo?-1:r.length)=>{if(r.length===0)return-1;{let E=Mi(r,a),I=mg(R,M,E,r.length),S=ou(r.length,R,I);if(S===0&&R===Uo&&!ru(r[0]))return M;for(;((R===Xo||R===Qr)&&S<r.length||(R===Uo||R===Qo)&&S>0)&&!ru(r[S]);)S=ou(r.length,R,S);return S}},[r,a]),y=(0,Ne.useRef)(!1),v=(0,Ne.useRef)(!1),C=R=>v.current=R,b=(0,Ne.useCallback)(R=>{if(v.current)v.current=!1;else if(y.current=!0,r.length===0)f(Ii);else if(d!==-1)u({});else if(l)if(c.current!==-1)f(c.current);else{let M=Mi(r,a);f(M!==-1?M:0)}else if(qn(a)){let M=Mi(r,a);f(M)}else n!==!0&&f(g())},[n,d,r,g,l,a,f]),T=(0,Ne.useCallback)(async R=>{let M=R.key===jr||R.key===vi?await h(R,d):g(R.key,d);M!==d&&f(M,!0),i==null||i(R,M)},[d,g,h,i,f]),x=(0,Ne.useCallback)(R=>{r.length>0&&Kc(R)?(R.preventDefault(),R.stopPropagation(),y.current=!0,T(R)):Yr(R)&&(y.current=!0)},[r,T]),w=(0,Ne.useMemo)(()=>({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}};var cu=require("@salt-ds/core"),Be=require("react");var bg={},yg=["Enter"," "],Pi=t=>t&&t.disabled!==!0&&t.selectable!==!1,au=(t,e)=>{var n,o;return((n=t.index)!=null?n:0)-((o=e.index)!=null?o:0)};var uu=({defaultSelected:t,disableSelection:e=!1,highlightedIdx:n,indexPositions:o,onSelect:r,onSelectionChange:s,selected:i,selectionStrategy:l,selectionKeys:a=yg,tabToSelect:c})=>{let u=l==="deselectable",d=l==="multiple",p=l==="extended",m=(0,Be.useRef)(-1),f=(0,Be.useCallback)(S=>a.includes(S.key),[a]),h=(0,Be.useCallback)(()=>d||p?[]:null,[d,p]),[g,y]=(0,cu.useControlled)({controlled:i,default:t!=null?t:h(),name:"UseSelection",state:"selected"}),v=(0,Be.useCallback)(S=>Array.isArray(g)?g.includes(S):g===S,[g]),C=(0,Be.useCallback)(S=>S,[]),b=(0,Be.useCallback)(S=>v(S)?null:S,[v]),T=(0,Be.useCallback)(S=>{let D=v(S)?g.filter(L=>L!==S):g.concat(S);return D.sort(au),D},[v,g]),x=(0,Be.useCallback)((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(au),O},[o,g]),w=(0,Be.useCallback)((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=(0,Be.useCallback)(S=>{let D=o[n];Pi(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=(0,Be.useCallback)((S,D)=>{if(p&&S.shiftKey){let L=o[D];Pi(L)&&w(S,D,L,!0)}},[p,o,w]),E=(0,Be.useCallback)(S=>{let D=o[n];!e&&Pi(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:Gc(l)?bg:{onClick:E,onKeyDown:R,onKeyboardNavigation:M},selected:g,setSelected:y}};var pn=require("react");var du=({disableTypeToSelect:t,highlightedIdx:e,highlightItemAtIndex:n,typeToNavigate:o,items:r,applyIncrementalSearch:s=!0})=>{let i=(0,pn.useRef)(null),l=(0,pn.useRef)(""),a=(0,pn.useRef)(-1),c=(0,pn.useCallback)(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=(0,pn.useCallback)(d=>{let p=a.current!==-1;(Yr(d)||p&&d.key===$c)&&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}};var xt=require("react");var fn=require("react");var mu=["height"],mn=new Map,fu=(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 pu=new ResizeObserver(t=>{for(let e of t){let{target:n,borderBoxSize:o,contentBoxSize:r}=e,s=mn.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=fu(n,{height:i,width:l,contentHeight:a,contentWidth:c},m);h!==f&&(p=!0,d[m]=h)}p&&u&&u(d)}}});function hn(t,e,n,o=!1){let r=(0,fn.useRef)(e),s=(0,fn.useCallback)(i=>{let{width:l,height:a}=i.getBoundingClientRect(),{clientWidth:c,clientHeight:u}=i;return r.current.reduce((d,p)=>(d[p]=fu(i,{width:l,height:a,contentHeight:u,contentWidth:c},p),d),{})},[]);(0,fn.useEffect)(()=>{let i=t.current;async function l(){mn.set(i,{measurements:{}}),await document.fonts.ready;let a=mn.get(i);if(a){let c=s(i);a.measurements=c,pu.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(mn.has(i))throw Error("useResizeObserver attemping to observe same element twice");l()}return()=>{i&&mn.has(i)&&(pu.unobserve(i),mn.delete(i))}},[s,t]),(0,fn.useEffect)(()=>{let i=t.current,l=mn.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 yu=require("@salt-ds/core"),hu=["height"],xg=["height","scrollHeight"],Cg=[],gu={containerOnly:[xg,Cg],withContent:[hu,hu]},vg=t=>t?gu.containerOnly:gu.withContent,bu={current:null},Tg=(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}}},xu=({containerRef:t,contentRef:e=bu,highlightedIdx:n=-1,indexPositions:o,stickyHeaders:r=!1})=>{let s=(0,xt.useRef)(!1),i=(0,xt.useRef)({height:0,contentHeight:0}),l=(0,xt.useCallback)(h=>{s.current=!0,t.current&&(t.current.scrollTop=h),setTimeout(()=>{s.current=!1})},[]),a=(0,xt.useCallback)(()=>l(0),[l]),c=(0,xt.useCallback)(()=>{l(i.current.contentHeight-i.current.height)},[l]),u=(0,xt.useCallback)(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=Tg(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]);(0,yu.useIsomorphicLayoutEffect)(()=>{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=(0,xt.useCallback)(({height:h,scrollHeight:g})=>{typeof h=="number"&&(i.current.height=h),typeof g=="number"&&(i.current.contentHeight=g)},[]),p=(0,xt.useCallback)(({height:h})=>{typeof h=="number"&&(i.current.contentHeight=h)},[]),[m,f]=vg(e===bu);return hn(t,m,d,!0),hn(e,f,p,!0),{isScrolling:s,scrollIntoView:u}};var Ce=require("react");var ns=({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=(0,Ce.useRef)(null),D=(0,Ce.useRef)(x||i),L=(Q,j)=>{var oe,le;(le=(oe=Z.listHandlers).onKeyboardNavigation)==null||le.call(oe,Q,j),g==null||g(Q,j)},A=(0,Ce.useCallback)((Q,j)=>{C&&((0,Ce.isValidElement)(j.value)?C(Q,j.label):j.value!==null&&C(Q,j.value))},[C]),H=(0,Ce.useCallback)((Q,j)=>{b&&b(Q,Array.isArray(j)?j.map(oe=>(0,Ce.isValidElement)(oe.value)?oe.label:oe.value):j&&((0,Ce.isValidElement)(j.value)?j.label:j.value))},[b]),{highlightedIndex:P,listProps:{onKeyDown:k,onMouseMove:N,...O},setHighlightedIndex:F,...$}=lu({containerRef:o,defaultHighlightedIndex:s,disableHighlightOnFocus:c,highlightedIndex:d,indexPositions:n.data,label:m,onHighlight:h,onKeyboardNavigation:L,restoreLastFocus:T,selected:D.current}),U=Wc({collapsibleHeaders:e,highlightedIdx:P,collectionHook:n}),W=(0,Ce.useCallback)(()=>{F(-1)},[F]),Z=uu({defaultSelected:i,highlightedIdx:P,indexPositions:n.data,label:m,onSelect:A,onSelectionChange:H,selected:x,selectionStrategy:w,selectionKeys:R,tabToSelect:E}),V=(0,Ce.useCallback)((Q,j,oe)=>{let le=n.data.indexOf(Q);return le===j?oe:le<Math.min(j,oe)||le>Math.max(j,oe)?le:j<le?le-1:le+1},[n.data]),z=(0,Ce.useCallback)((Q,j,oe)=>Array.isArray(Q)?Q.map(le=>V(le,j,oe)):V(Q,j,oe),[V]),K=(0,Ce.useCallback)((Q,j)=>{qn(Z.selected)&&(S.current=z(Z.selected,Q,j)),v==null||v(Q,j),F(-1)},[Z.selected,v,F,z]),G=(0,Ce.useCallback)(Q=>{F(Q)},[F]),{setSelected:se}=Z;(0,Ce.useEffect)(()=>{let{current:Q}=S;if(qn(Q)){let j=Array.isArray(Q)?Q.map(oe=>n.data[oe]):n.data[Q];se(j)}},[n.data,se]),(0,Ce.useEffect)(()=>{qn(D.current)&&se(Array.isArray(D.current)?[]:null)},[se,n.data]);let{onMouseDown:X,isDragging:Y,isScrolling:q,...ne}=Fn({allowDragDrop:t,draggableClassName:"list-item",orientation:"vertical",containerRef:o,id:p,itemQuery:".vuuListItem",onDragStart:W,onDrop:K,onDropSettle:G,viewportRange:I}),{onKeyDown:J}=du({disableTypeToSelect:u,highlightedIdx:P,highlightItemAtIndex:F,typeToNavigate:!0,items:n.data}),B=(0,Ce.useCallback)(Q=>{var j,oe,le;Q.defaultPrevented||J==null||J(Q),k(Q),Q.defaultPrevented||(oe=(j=Z.listHandlers).onKeyDown)==null||oe.call(j,Q),Q.defaultPrevented||(le=U==null?void 0:U.onKeyDown)==null||le.call(U,Q),Q.defaultPrevented||y==null||y(Q)},[U,k,y,Z.listHandlers,J]),{isScrolling:te,scrollIntoView:ue}=xu({containerRef:o,contentRef:r,highlightedIdx:P,indexPositions:n.data,stickyHeaders:M}),ie=te.current||q.current,pe=(0,Ce.useCallback)(Q=>{if(!ie&&!l&&!Y){N();let j=_c(Q.target);if(j!==-1&&j!==P){let oe=n.data[j];!oe||oe.disabled?F(-1):F(j)}}},[Y,ie,l,F,N,P,n.data]),be=()=>{var Q;return P===void 0||P===-1||a||(Q=n.data[P])==null?void 0:Q.id};D.current=Z.selected;let fe={"aria-activedescendant":be(),onBlur:O.onBlur,onFocus:O.onFocus,onKeyDown:B,onMouseDown:X,onMouseDownCapture:O.onMouseDownCapture,onMouseLeave:O.onMouseLeave},Te=f||{onClick:Z.listHandlers.onClick,onMouseMove:pe};return{focusVisible:$.focusVisible,controlledHighlighting:$.controlledHighlighting,highlightedIndex:P,keyboardNavigation:$.keyboardNavigation,listHandlers:Te,listItemHeaderHandlers:U,listControlProps:fe,scrollIntoView:ue,selected:Z.selected,setHighlightedIndex:F,setIgnoreFocus:$.setIgnoreFocus,setSelected:Z.setSelected,...ne}};var Cu=require("@salt-ds/core"),gn=require("react");var Sg=(t,e,n=0)=>t===0?0:n===0?t*e:t-1*(e+n)+e,os=({borderless:t,displayedItemCount:e,getItemHeight:n,height:o,itemCount:r,itemGapSize:s,itemHeight:i,rootRef:l,rowHeightRef:a})=>{let[c,u]=(0,gn.useState)(36),[d,p]=(0,gn.useState)(),[m,f]=(0,gn.useMemo)(()=>{let g=t?0:2,y=i!=null?i:c,v=Sg(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]);(0,Cu.useIsomorphicLayoutEffect)(()=>{if(l.current){let{clientHeight:g}=l.current;p(g)}},[l]);let h=(0,gn.useCallback)(({height:g})=>{typeof g=="number"&&u(g)},[]);return hn(a,mu,h,!0),{contentHeight:m,listClientHeight:d,listItemHeight:c,listHeight:f}};var Tu=require("@salt-ds/core"),Ct=require("react"),vu=(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}},rs=({containerSize:t,itemCount:e,itemGapSize:n=0,itemSize:o,onViewportScroll:r})=>{let s=(0,Ct.useRef)(0),i=(0,Ct.useRef)(0),l=(0,Ct.useRef)(0),a=(0,Ct.useMemo)(()=>vu(l.current,t,e,o+n),[t,e,o,n]),[c,u]=(0,Ct.useState)(a);return(0,Tu.useIsomorphicLayoutEffect)(()=>{u(a)},[a]),{onVerticalScroll:(0,Ct.useCallback)(p=>{let m=p.target.scrollTop;if(m!==l.current){l.current=m;let f=o+n,h=vu(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}};var nt=require("react/jsx-runtime"),wu=require("react"),wg="No data to display",Yo="vuuList",vP=(0,vt.forwardRef)(function({ListItem:e=wr,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=Zn,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:U,showEmptyMessage:W=!1,source:Z,style:V,stickyHeaders:z,tabToSelect:K,width:G,...se},X){let Y=Kn(b),q=(0,vt.useRef)(null),ne=(0,vt.useRef)(null),J=(0,vt.useRef)(null),B=Jr({id:Y,label:"List",source:Z,children:s,options:{collapsibleHeaders:l,getItemId:y,itemToString:R}}),{listClientHeight:te,listHeight:ue,listItemHeight:ie}=os({borderless:r,displayedItemCount:m,getItemHeight:g,height:v,itemCount:B.data.length,itemGapSize:T,itemHeight:x,rootRef:q,rowHeightRef:J}),{onVerticalScroll:pe,viewportRange:be}=rs({containerSize:te!=null?te:typeof ue=="number"?ue:0,itemCount:B.data.length,itemGapSize:T,itemSize:ie}),{draggable:fe,draggedItemIndex:Te,dropIndicator:Q,focusVisible:j,highlightedIndex:oe,listControlProps:le,listHandlers:Se,listItemHeaderHandlers:Ye,scrollIntoView:Ze,selected:Ft}=ns({allowDragDrop:o,collapsibleHeaders:l,collectionHook:B,containerRef:q,contentRef:ne,defaultHighlightedIndex:a,defaultSelected:B.itemToCollectionItem(c),disabled:u,disableTypeToSelect:p,highlightedIndex:C,id:Y,label:Y,listHandlers:M,onMoveListItem:L,onSelect:A,onSelectionChange:H,onHighlight:P,restoreLastFocus:k,selected:B.itemToCollectionItem(N),selectionStrategy:O,selectionKeys:U,stickyHeaders:z,tabToSelect:K,viewportRange:be});ts({collectionHook:B,forwardedRef:$,scrollableRef:q,scrollIntoView:Ze});let rn=h!=null?h:j,Rt=function(ye,$e,Ue,Pe){let sn=(0,wu.createElement)(e,{...Ye,className:(0,ss.default)(`${Yo}Header`,{focusVisible:l&&rn===ye.value}),"aria-expanded":Pe,"data-idx":l?ye.value:void 0,"data-index":l?ye.value:void 0,"data-highlighted":ye.value===oe||void 0,"data-sticky":z,"data-selectable":!1,id:$e,key:`header-${ye.value}`,label:Ue});return ye.value+=1,sn},Do=g===void 0?()=>x:g;function vm(Dt,ye,$e){var br,yl;let{disabled:Ue,value:Pe,id:sn,label:hr}=ye,gr=(0,vt.isValidElement)(Pe),Mo={className:(0,ss.default)((br=Pe==null?void 0:Pe.props)==null?void 0:br.className,{vuuHighlighted:$e.value===oe,vuuFocusVisible:rn===$e.value,["vuuDraggable-dragAway"]:Te===$e.value}),disabled:Ue||u,id:sn,item:gr?void 0:(yl=ye==null?void 0:ye.value)!=null?yl:void 0,itemHeight:Do($e.value),itemTextHighlightPattern:w,key:sn,"data-idx":$e.value,"data-index":$e.value,label:hr,role:"option",selected:qr(Ft,ye),showCheckbox:F};Dt.push(gr?(0,vt.cloneElement)(Pe,Mo):(0,nt.jsx)(e,{...Mo})),$e.value+=1}let Tm=function(ye,$e,Ue){let{count:Pe=0,id:sn,expanded:hr,label:gr=""}=$e[Ue.value],Mo=Rt(Ue,sn,gr,hr),br=hr!==!1?[Mo].concat(bl($e,Ue,Ue.value+Pe)||[]):Mo;ye.push((0,nt.jsx)("div",{role:"group",children:br},sn))},bl=(Dt,ye={value:0},$e=Dt.length)=>{let Ue=[];for(;ye.value<$e;){let Pe=Dt[ye.value];Pe.header?Ue.push(Rt(ye,Pe.id,Pe.label,Pe.expanded===!1)):Pe.childNodes?Tm(Ue,Dt,ye):vm(Ue,Pe,ye)}return Ue};function Sm(){return f||W?(0,nt.jsx)("span",{className:`${Yo}-empty-message`,children:f!=null?f:wg}):null}let wm=()=>{if(B.data.length){let Dt=B.data;return bl(Dt)}else Sm()},Em="auto",Rm={"--list-item-gap":T?`${T}px`:void 0,minWidth:D,minHeight:S,width:G!=null?G:"100%",height:v!=null?v:"100%",maxWidth:I!=null?I:G,maxHeight:E!=null?E:ue};return(0,nt.jsxs)("div",{"aria-multiselectable":O==="multiple"||O==="extended"||O==="extended-multi-range"||void 0,...se,...Se,...le,className:(0,ss.default)(Yo,i,{[`${Yo}-collapsible`]:l,vuuFocusVisible:oe===Ii}),id:`${Y}`,ref:(0,Su.useForkRef)(q,X),role:"listbox",onScroll:pe,style:{...V,...Rm},tabIndex:u||d?void 0:0,children:[(0,nt.jsx)(Sr,{ref:J}),B.data.length===0&&n!==void 0?(0,nt.jsx)(nt.Fragment,{children:(0,nt.jsx)(n,{})}):(0,nt.jsxs)("div",{className:`${Yo}-scrollingContentContainer`,ref:ne,style:{height:Em},children:[wm(),Q,fe]})]})});var eo=require("@salt-ds/core");function Eu(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=Eu(t[e]))&&(o&&(o+=" "),o+=n);else for(e in t)t[e]&&(o&&(o+=" "),o+=e);return o}function Li(){for(var t,e,n=0,o="";n<arguments.length;)(t=arguments[n++])&&(e=Eu(t))&&(o&&(o+=" "),o+=e);return o}var yn=require("react");var Du=require("react");var is=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 Eg=([t],[e])=>t-e,Ru=5,Mu=({data:t,listItemGapSize:e=0,listItemHeight:n,viewportRange:o})=>{let r=(0,Du.useMemo)(()=>new is(0,1),[]),s=n+e,i=Math.max(0,o.from-Ru),l=Math.min(t.length,o.to+Ru);return r.reset(i,l),t.slice(i,l).map((c,u)=>[r.keyFor(u+i),(u+i)*s,u+i+1,c]).sort(Eg)};var bn=require("react/jsx-runtime"),Rg="No data to display",ls=(0,eo.makePrefixer)("saltList"),Dg=(0,yn.memo)(wr),$P=(0,yn.forwardRef)(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:U,...W},Z){let V=(0,eo.useIdMemo)(g),z=(0,yn.useRef)(null),K=(0,yn.useRef)(null),G=Jr({id:V,label:"List",source:N,children:n,options:{collapsibleHeaders:r,getItemId:m,itemToString:b}}),{contentHeight:se,listItemHeight:X,listHeight:Y}=os({borderless:e,displayedItemCount:u,height:f,itemCount:G.data.length,itemGapSize:y,itemHeight:v,rootRef:z,rowHeightRef:K}),{focusVisible:q,highlightedIndex:ne,listControlProps:J,listHandlers:B,scrollIntoView:te,selected:ue}=ns({collapsibleHeaders:r,collectionHook:G,containerRef:z,defaultHighlightedIndex:s,defaultSelected:G.itemToCollectionItem(i),disabled:l,disableTypeToSelect:c,highlightedIndex:h,label:V,onSelect:M,onSelectionChange:E,onHighlight:S,restoreLastFocus:D,selected:G.itemToCollectionItem(L),selectionStrategy:A,selectionKeys:P,stickyHeaders:F,tabToSelect:$}),{onVerticalScroll:ie,viewportRange:pe}=rs({containerSize:typeof Y=="number"?Y:0,itemCount:G.data.length,itemGapSize:y,itemSize:X});console.log({viewPortRange:pe});let be=Mu({data:G.data,listItemGapSize:y,listItemHeight:X,viewportRange:pe});ts({collectionHook:G,forwardedRef:H,scrollableRef:z,scrollIntoView:te});function fe(le,Se,Ye){let[Ze,Ft,rn,Rt]=Se,Do=rn-1;le.push((0,bn.jsx)(Dg,{"aria-setsize":G.data.length,"aria-posinset":rn,className:Li(o,{saltHighlighted:Do===ne,saltFocusVisible:q===Do}),"data-idx":Do,item:Rt,label:Rt.label,"data-offset":Ft,role:"option",selected:qr(ue,Rt),id:Rt.id,translate3d:Ft},Ze)),Ye.value+=1}function Te(le,Se={value:0},Ye=le.length){let Ze=[];for(;Se.value<Ye;){let Ft=le[Se.value];fe(Ze,Ft,Se)}return Ze}function Q(){return d||k?(0,bn.jsx)("span",{className:ls("empty-message"),children:d!=null?d:Rg}):null}let j=()=>{if(be.length)return Te(be);Q()},oe={"--list-item-gap":y?`${y}px`:void 0,minWidth:R,minHeight:w,width:U!=null?U:"100%",height:f!=null?f:"100%",maxWidth:x!=null?x:U,maxHeight:T!=null?T:Y};return(0,bn.jsx)("div",{...W,...B,...J,className:Li(ls(),o,ls("virtualized")),id:`${V}`,ref:(0,eo.useForkRef)(z,Z),role:"listbox",onScroll:ie,style:{...O,...oe},tabIndex:l||a?void 0:0,children:(0,bn.jsxs)("div",{className:ls("scrollingContentContainer"),style:{height:se},children:[(0,bn.jsx)(Sr,{ref:K}),j()]})})});var Wu=require("@salt-ds/core"),_u=_(require("classnames")),no=_(require("react"));var Le=require("react");var Iu=t=>typeof t=="object"&&t!==null&&"tabIndex"in t&&typeof t.tabIndex=="number",Pu=t=>({label:"Close",location:"tab",action:"close-tab",options:t}),Lu=t=>({label:"Rename",location:"tab",action:"rename-tab",options:t});var Mg=t=>{if(t){let e=parseInt(t.dataset.index||"");if(!isNaN(e))return e}return-1},ku=(t,e)=>{if(t){let n=t.querySelector(`[data-index]:has(${e})`);return Mg(n)}return-1},ki=t=>ku(t,'[aria-selected="true"]'),Hu=t=>ku(t,".vuuEditableLabel-editing");var to=require("@vuu-ui/vuu-utils"),Pt=require("react"),Au=(t,e,n="horizontal")=>{let o=(0,Pt.useRef)(!1),r=(0,Pt.useCallback)(()=>{o.current=!0},[]),s=(0,Pt.useCallback)(()=>{o.current=!1},[]),i=(0,Pt.useCallback)(()=>{var a,c;(a=t.current)==null||a.style.setProperty("--tab-thumb-transition","none"),(c=t.current)==null||c.removeEventListener("transitionend",i)},[t]),l=(0,Pt.useRef)(-1);return(0,Pt.useMemo)(()=>{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}=to.MEASURES[n];if(p&&m&&!o.current){let{[f]:g,[h]:y}=p.getBoundingClientRect(),{[f]:v}=m.getBoundingClientRect();if((0,to.isValidNumber)(g)&&(0,to.isValidNumber)(v)&&(0,to.isValidNumber)(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])};var Nu=require("@salt-ds/core"),zu=require("@vuu-ui/vuu-utils"),De=require("react"),ze=require("@vuu-ui/vuu-utils");var Fu={horizontal:{[ze.Home]:"start",[ze.End]:"end",[ze.ArrowLeft]:"bwd",[ze.ArrowRight]:"fwd"},vertical:{[ze.Home]:"start",[ze.End]:"end",[ze.ArrowUp]:"bwd",[ze.ArrowDown]:"fwd"}},Ig=(t,e="horizontal")=>Fu[e][t]!==void 0,Pg=t=>t===ze.ArrowDown;function Ou(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 Lg=t=>t!==null&&!t.classList.contains("wrapped"),as=(t,e)=>t?t.querySelector(`[data-index="${e}"]`):null,Vu=({containerRef:t,defaultHighlightedIdx:e=-1,highlightedIdx:n,keyBoardActivation:o,orientation:r,selectedIndex:s=0})=>{let i=o==="manual",l=(0,De.useRef)(!1),a=(0,De.useRef)(-1),[c,u]=(0,De.useState)(!1),[,d]=(0,De.useState)({}),[p,m]=(0,Nu.useControlled)({controlled:n,default:e,name:"UseKeyboardNavigation"}),f=(0,De.useCallback)(S=>{m(a.current=S)},[m]),h=(0,De.useRef)(!1),g=(0,De.useCallback)((S,D=!1,L,A=70)=>{f(S),L===!0&&!h.current&&(h.current=!0);let H=()=>{let P=as(t.current,S);if(P){let k=(0,zu.getFocusableElement)(P);k==null||k.focus()}};D?H():setTimeout(H,A)},[t,f]),y=S=>{if(a.current===-1&&S.target.tabIndex!==-1){let D=Hu(t.current);D!==-1?requestAnimationFrame(()=>{f(D)}):setTimeout(()=>{a.current===-1&&s!==null&&f(s)},200)}},v=(0,De.useCallback)(()=>{var S,D;return(D=(S=t.current)==null?void 0:S.querySelectorAll("[data-index]").length)!=null?D:0},[t]),C=(0,De.useCallback)((S="fwd",D)=>{let L=v(),H=Ou(L,S,typeof D=="number"?D:L),P=S==="start"?"fwd":S==="end"?"bwd":S;for(;(P==="fwd"&&H<L||P==="bwd"&&H>0)&&!Lg(as(t.current,H));){let k=Ou(L,P,H);if(k===H)break;H=k}return H},[t,v]),b=(0,De.useCallback)((S,D=!1)=>{let L=Fu[r][S.key],A=C(L,p);A!==p?i&&g(A,!0):D&&d({})},[p,i,C,g,r]),T=(0,De.useCallback)(()=>{let S=as(t.current,p);return S?S.querySelector(".vuuPopupMenu")!=null:!1},[t,p]),x=(0,De.useCallback)(()=>{let S=as(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=(0,De.useCallback)(S=>{v()>0&&Ig(S.key,r)?(S.preventDefault(),h.current?b(S):(h.current=!0,b(S,!0))):Pg(S.key)&&T()&&x()},[x,v,T,b,r]),R=(S,D)=>{f(D)},M=(0,De.useCallback)(()=>{c||(u(!0),l.current?l.current=!1:h.current=!0)},[c]),E=(0,De.useCallback)(()=>{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}};var $u=require("@salt-ds/core"),Zo=require("react"),kg=["Enter"," "],Hg=t=>t&&t.matches('[class*="vuuTab "]'),Bu=({defaultSelected:t,highlightedIdx:e,onSelectionChange:n,selected:o})=>{let[r,s,i]=(0,$u.useControlled)({controlled:o,default:t!=null?t:0,name:"Tabstrip",state:"value"}),l=(0,Zo.useCallback)(d=>kg.includes(d.key),[]),a=(0,Zo.useCallback)(d=>{s(d),n==null||n(d)},[n,s]),c=(0,Zo.useCallback)(d=>{let p=d.target;l(d)&&e!==r&&Hg(p)&&(d.stopPropagation(),d.preventDefault(),a(e))},[l,e,r,a]),u=(0,Zo.useCallback)((d,p)=>{p!==r&&a(p)},[a,r]);return{activateTab:a,isControlled:i,onClick:u,onKeyDown:c,selected:r}};var Ag=new Set(["Enter"," "]),Og=t=>Ag.has(t),Ng=(t,e)=>t?t.querySelector(`[data-index="${e}"]`):null,Ku=({activeTabIndex:t,allowDragDrop:e,animateSelectionThumb:n,containerRef:o,onActiveChange:r,onAddTab:s,onCloseTab:i,onExitEditMode:l,onMoveTab:a,orientation:c,keyBoardActivation:u})=>{let d=(0,Le.useRef)(t),{focusTab:p,highlightedIdx:m,onClick:f,onKeyDown:h,setHighlightedIdx:g,...y}=Vu({containerRef:o,keyBoardActivation:u,orientation:c,selectedIndex:d.current}),{activateTab:v,onClick:C,onKeyDown:b,selected:T}=Bu({highlightedIdx:m,onSelectionChange:r,selected:t});d.current=T;let{containerStyle:x,resumeAnimation:w,suspendAnimation:R}=Au(o,n?T:-1,c),M=(0,Le.useCallback)((V,z)=>{let{current:K}=d;console.log(`useTabstrip handleDrop ${V} - ${z} ${K}`),a==null||a(V,z);let G=-1;z!==-1&&(K===V?G=z:V>K&&z<=K?G=K+1:V<K&&z>=K&&(G=K-1),G!==-1&&(R(),v(G),requestAnimationFrame(w)),p(z,!1,!1,350))},[p,a,w,v,R]),{onMouseDown:E,...I}=Fn({allowDragDrop:e,containerRef:o,draggableClassName:`tabstrip-${c}`,onDrop:M,orientation:"horizontal",itemQuery:".vuuOverflowContainer-item"}),S=(0,Le.useCallback)((V,z,K,G)=>{console.log(`handleExitEditMode ${V} ${z} ${K} ${G}`),l==null||l(V,z,K,G),K||p(G,!1,!0)},[p,l]),D=(0,Le.useCallback)((V,z)=>{f(V,z),C(V,z)},[f,C]),L=(0,Le.useCallback)((V=m)=>{let z=Ng(o.current,V);if(z)return z.querySelector(".vuuEditableLabel")},[o,m]),A=(0,Le.useCallback)((V=m)=>{let z=L(V);return z?z.classList.contains("vuuEditableLabel-editing"):!1},[L,m]),H=(0,Le.useCallback)((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=(0,Le.useCallback)(V=>{h(V),V.defaultPrevented||b(V),!V.defaultPrevented&&Og(V.key)&&H()},[H,h,b]),k=(0,Le.useCallback)(V=>{let z=ki(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=(0,Le.useCallback)(V=>(H(V),!0),[H]),O=(0,Le.useCallback)(V=>{if(Iu(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=(0,Le.useCallback)(()=>{A()?g(m):p(m)},[m,p,g,A]),$=(0,Le.useCallback)(V=>{let z=parseInt(V.index);isNaN(z)||v(z)},[v]),U={onFocus:y.onFocus,onKeyDown:P},W=(0,Le.useCallback)(()=>{s==null||s(),requestAnimationFrame(()=>{let V=ki(o.current);V!==-1&&p(V)})},[o,p,s]),Z={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:U,onClickAddTab:W,tabProps:Z,...I}};var oo=require("react/jsx-runtime"),Gu=require("react"),Hi="vuuTabstrip",Ic=({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=(0,no.useRef)(null),{activeTabIndex:T,focusVisible:x,containerStyle:w,draggedItemIndex:R,onClickAddTab:M,tabProps:E,...I}=Ku({activeTabIndex:t,allowDragDrop:o,animateSelectionThumb:s,containerRef:b,keyBoardActivation:c,onActiveChange:d,onAddTab:p,onCloseTab:m,onExitEditMode:f,onMoveTab:h,orientation:g}),S=Kn(a),D=(0,_u.default)(Hi,`${Hi}-${g}`,l),L=v||w?{...v,...w}:void 0,A=(0,no.useMemo)(()=>Bn(i).map((H,P)=>{let{id:k=`${S}-tab-${P}`,closeable:N=n,editable:O=r,showMenuButton:F=y}=H.props,$=P===T;return no.default.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?(0,Gu.createElement)(Wu.Button,{...I.navigationProps,"aria-label":"Create Tab",className:`${Hi}-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(0,oo.jsxs)(oo.Fragment,{children:[(0,oo.jsx)(wc,{...C,...I.containerProps,className:D,height:28,id:S,orientation:g,overflowIcon:"more-horiz",ref:b,style:L,children:A}),I.draggable]})};var qu=require("@salt-ds/core"),Ju=_(require("classnames")),vn=require("react");var Uu=require("@vuu-ui/vuu-popups"),Xu=require("react"),Qu=_(require("classnames"));var Yu=require("react/jsx-runtime"),zg="vuuTabMenu",ju=({allowClose:t,allowRename:e,location:n,onMenuAction:o,onMenuClose:r,index:s})=>{let[i,l]=(0,Xu.useMemo)(()=>[(a,c)=>{let u=[];return e&&u.push(Lu(c)),t&&u.push(Pu(c)),u},{tabIndex:s}],[t,e,s]);return(0,Yu.jsx)(Uu.PopupMenu,{className:zg,menuBuilder:i,menuActionHandler:o,menuLocation:(0,Qu.default)("tab",n),menuOptions:l,onMenuClose:r,tabIndex:-1})};var Cn=require("react/jsx-runtime"),xn="vuuTab",Zu=()=>{},Pc=(0,vn.forwardRef)(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=Zu,onExitEditMode:h=Zu,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=(0,vn.useRef)(null),I=(0,vn.useRef)(null),S=(0,qu.useForkRef)(M,E),D=(0,vn.useCallback)(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?(0,Cn.jsx)(Vn,{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(0,Cn.jsxs)("div",{...R,"aria-controls":e,"aria-selected":T,className:(0,Ju.default)(xn,{[`${xn}-closeable`]:r,"vuuDraggable-dragAway":s,[`${xn}-editing`]:l,[`${xn}-selected`]:T||void 0,[`${xn}-vertical`]:b==="vertical",vuuFocusVisible:a}),onClick:D,onFocus:P,onKeyUp:A,ref:S,role:"tab",tabIndex:w,children:[(0,Cn.jsx)("div",{className:`${xn}-main`,children:(0,Cn.jsx)("span",{className:`${xn}-text`,"data-text":i?void 0:u,children:n!=null?n:H()})}),x?(0,Cn.jsx)(ju,{allowClose:r,allowRename:i,location:d,onMenuAction:v,onMenuClose:C,index:c}):null]})});var fs=require("@salt-ds/core"),ms=_(require("classnames")),hs=require("react");function Fg(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 Ai=t=>t.closest("[data-idx],[aria-posinset]");var ed=t=>Fg(Ai(t));var ro=require("react"),Vg=new Set(["/","-","."]),$g=t=>Vg.has(t),td=(t,e)=>e.startsWith(t)&&$g(e[t.length]),nd=(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=(0,ro.useCallback)(p=>Array.isArray(r)?r.some(m=>td(p,m)):o,[o,r]),l=(0,ro.useCallback)((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]=(0,ro.useMemo)(()=>l(t,{index:0}),[l,t]),d=(0,ro.useCallback)((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)&&td(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]};var Qt=require("react"),sd=require("@salt-ds/core"),od="single",Bg="checkbox",Kg="multi",Wg="extended",_g=["Enter"," "],rd={},Gg=t=>t.expanded!==void 0,id=t=>t&&t!=="none",ld=({defaultSelected:t,highlightedIdx:e,treeNodes:n,onChange:o,selected:r,selection:s=od,selectionKeys:i=_g})=>{let l=s===od,a=s===Kg||s.startsWith(Bg),c=s===Wg,u=(0,Qt.useRef)(-1),d=(0,Qt.useCallback)(b=>i.includes(b.key),[i]),[p,m]=(0,sd.useControlled)({controlled:r,default:t!=null?t:[],name:"selected"}),f=(0,Qt.useCallback)((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=(0,Qt.useCallback)(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=(0,Qt.useCallback)((b,T)=>{if(c&&b.shiftKey){let x=n[T];f(b,T,x.id,!0)}},[c,n,f]),y=s==="none"?rd:{onKeyDown:h,onKeyboardNavigation:g},v=(0,Qt.useCallback)(b=>{if(e!==-1){let T=n[e];Gg(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"?rd:{onClick:v},selected:p,setSelected:m}};var Ke=require("react");var Ug=["height","scrollHeight"],ad=(t,e,n=!1)=>{let o=(0,Ke.useRef)(0),r=(0,Ke.useRef)(!1),s=(0,Ke.useRef)(0),i=(0,Ke.useRef)(0),l=(0,Ke.useCallback)(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=(0,Ke.useCallback)(u=>{o.current=u.target.scrollTop},[]);(0,Ke.useEffect)(()=>{let{current:u}=t;return u&&u.addEventListener("scroll",a),()=>{u&&u.removeEventListener("scroll",a)}},[t,a]),(0,Ke.useLayoutEffect)(()=>{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]),(0,De.useEffect)(()=>{},[t]);let c=(0,De.useCallback)(({height:u,scrollHeight:p})=>{s.current=u,i.current=p},[]);return _a(n,Af,c,!0),o};var cr=require("react");var Ve=require("react");var Ua=({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)},Xa=n=>n.childNodes!==void 0;var fs=n=>n.header===!0,Of=new Set([".","/"]),Qa=(n,e)=>e.startsWith(n.id)?Of.has(e.charAt(n.id.length)):!1,Xt=(n,e)=>{for(let t of n){if(t.id===e)return t;if(Qa(t,e))return Xt(t.childNodes,e)}},no=(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},ro=(n,e,t)=>{let r;return n.map(s=>s.id===e?{...s,...t}:Qa(s,e)?(r=ro(s.childNodes,e,t),{...s,childNodes:r}):s)};var tc=require("@salt-ds/core");function Hf(n,...e){let t=new Set(n);for(let r of e)for(let o of r)t.add(o);return t}var ms="ArrowUp",Za="ArrowDown",En="ArrowLeft";var Ya="ArrowRight",oo="Enter";var Nf="Delete",zf=new Set([oo,Nf]),Ff=new Set(["Tab"]),$f=new Set(["ArrowRight","ArrowLeft"]),ja=new Set(["Home","End","ArrowDown","ArrowUp"]),qa=new Set(["Home","End","ArrowRight","ArrowLeft"]),Vf=new Set(["F1","F2","F3","F4","F5","F6","F7","F8","F9","F10","F11","F12"]),rR=Hf(zf,qa,ja,$f,Vf,Ff);var Ja=({key:n},e="vertical")=>(e==="vertical"?ja:qa).has(n);function ec(n,e,t){return e===ms||e===En?t>0?t-1:t:t===null?0:t===n-1?t:t+1}var Bf=n=>!n.header&&!n.childNodes,Kf=n=>Bf(n)||n.expanded!==void 0,nc=({defaultHighlightedIdx:n=-1,highlightedIdx:e,treeNodes:t,onHighlight:r,onKeyboardNavigation:o,selected:s=[]})=>{let{bwd:i,fwd:l}=(0,Ve.useMemo)(()=>({bwd:ms,fwd:Za}),[]),[a,c,u]=(0,tc.useControlled)({controlled:e,default:n,name:"highlightedIdx"}),p=(0,Ve.useCallback)(b=>{r==null||r(b),c(b)},[r,c]),d=(0,Ve.useCallback)((b=l,T=b===l?-1:t.length)=>{let g=ec(t.length,b,T);for(;g!==-1&&(b===l&&g<t.length||b===i&&g>0)&&!Kf(t[g]);)g=ec(t.length,b,g);return g},[i,l,t]),f=(0,Ve.useRef)(!0),m=(0,Ve.useRef)(!1),h=b=>m.current=b,x=(0,Ve.useCallback)(()=>{if(m.current)m.current=!1;else if(s.length>0){let b=Xt(t,s[0]);if(b){let T=no(t,b);p(T)}}else p(d())},[t,d,s,p]),v=(0,Ve.useCallback)(b=>{let T=d(b.key,a);T!==a&&(p(T),o==null||o(b,T))},[a,d,o,p]),C=(0,Ve.useCallback)(b=>{t.length>0&&Ja(b,"vertical")&&(b.preventDefault(),b.stopPropagation(),f.current=!0,v(b))},[t,v]),y=(0,Ve.useMemo)(()=>({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}};var Rn=require("react");var so=(n,e=[],t={value:0})=>{let r=!1;for(let o of n)r&&!fs(o)||(e[t.value]=o,t.value+=1,r=!1,fs(o)&&o.expanded===!1?r=!0:Xa(o)&&hs(o)&&so(o.childNodes,e,t));return e},rc=n=>{let e=(0,Rn.useRef)(n),t=(0,Rn.useRef)(n),r=(0,Rn.useRef)(so(n)),[,o]=(0,Rn.useState)({});n!==e.current&&(e.current=n,t.current=n,r.current=so(n));let s=i=>{t.current=i,r.current=so(i),o({})};return{data:t.current,indexPositions:r.current,setData:s}};var dt=require("react");var Wf={},_f=n=>n&&n.hasAttribute("aria-expanded"),oc=({collapsibleHeaders:n,highlightedIdx:e,treeNodes:t,setVisibleData:r,source:o})=>{let s=(0,dt.useRef)(o),i=(0,dt.useRef)(s.current),l=(0,dt.useCallback)(m=>{r(i.current=m)},[r]),a=(0,dt.useCallback)((m,{id:h})=>ro(m,h,{expanded:!0}),[]),c=(0,dt.useCallback)((m,{id:h})=>ro(m,h,{expanded:!1}),[]),u=(0,dt.useCallback)(m=>{if(m.key===Ya||m.key===oo){let h=t[e];h&&h.expanded===!1&&(m.preventDefault(),l(a(i.current,h)))}if(m.key===En||m.key===oo){let h=t[e];h&&h.expanded&&(m.preventDefault(),l(c(i.current,h)))}},[c,a,e,t,l]),p=n?{onKeyDown:u}:Wf,f={onClick:(0,dt.useCallback)(m=>{let h=ps(m.target);if(_f(h)){m.stopPropagation(),m.preventDefault();let x=Xt(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}};var sc=require("react");var ic=({highlightedIdx:n,hiliteItemAtIndex:e,indexPositions:t,source:r})=>({listHandlers:{onKeyDown:(0,sc.useCallback)(i=>{if(i.key===En){let l=t[n],a=Ua(l);if(a){i.preventDefault();let c=Xt(r,a);if(c){let u=no(t,c);u!==void 0&&e(u)}}}},[n,e,t,r])}});var Gf=[],lc=({defaultSelected:n,sourceWithIds:e,onChange:t,onHighlight:r,selected:o,selection:s})=>{let i=(0,cr.useRef)(Gf),l=rc(e),a=(y,b)=>{var T,g;(g=(T=d.listHandlers).onKeyboardNavigation)==null||g.call(T,y,b)},{highlightedIdx:c,...u}=nc({treeNodes:l.indexPositions,onHighlight:r,onKeyboardNavigation:a,selected:i.current}),p=oc({collapsibleHeaders:!0,highlightedIdx:c,treeNodes:l.indexPositions,setVisibleData:l.setData,source:l.data}),d=Ba({defaultSelected:n,highlightedIdx:c,treeNodes:l.indexPositions,onChange:t,selected:o,selection:s}),f=ic({source:l.data,highlightedIdx:c,hiliteItemAtIndex:u.hiliteItemAtIndex,indexPositions:l.indexPositions}),m=(0,cr.useCallback)(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=(0,cr.useCallback)(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}};var Oe=require("react/jsx-runtime"),cc=require("react"),Mt="vuuTree",hs=n=>n.expanded===!0,ac=({children:n,idx:e,...t})=>(0,Oe.jsx)("li",{...t,children:n}),Uf=(0,ao.forwardRef)(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=(0,lo.useIdMemo)(s),h=(0,ao.useRef)(null),[,x,v]=Na(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}=lc({defaultSelected:r,groupSelection:o,onChange:C,onHighlight:i,selected:c,selection:u,sourceWithIds:x});Ga(h,b);let R={...{onMouseEnter:O=>{let A=O.target,N=Oa(A);T(N)}},...w,role:"treeitem"},S=Va(o);function M(O,A,N){O.push((0,Oe.jsxs)(ac,{...R,...Xf(A,N,b,D,y),children:[A.icon?(0,Oe.jsx)("span",{className:`${Mt}Node-icon`,"data-icon":A.icon}):null,(0,Oe.jsx)("span",{children:A.label})]})),N.value+=1}function I(O,A,N,H,B){let{value:z}=N;N.value+=1,O.push((0,cc.createElement)(ac,{...w,"aria-expanded":A.expanded,"aria-level":A.level,"aria-selected":D.includes(H)||void 0,className:(0,io.default)(`${Mt}Node`,{focusVisible:y===z,[`${Mt}Node-toggle`]:!S}),"data-idx":z,"data-highlighted":z===b||void 0,"data-selectable":!0,id:H,key:`header-${z}`},S?(0,Oe.jsxs)("div",{className:`${Mt}Node-label`,children:[(0,Oe.jsx)("span",{className:`${Mt}Node-toggle`}),B]}):(0,Oe.jsxs)("div",{className:`${Mt}Node-label`,children:[A.icon?(0,Oe.jsx)("span",{className:`${Mt}Node-icon`,"data-icon":A.icon}):null,(0,Oe.jsx)("span",{children:B})]}),(0,Oe.jsx)("ul",{role:"group",children:hs(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(0,Oe.jsx)("ul",{...d,...g,className:(0,io.default)(Mt,t),id:`Tree-${m}`,ref:(0,lo.useForkRef)(h,f),role:"tree",tabIndex:0,children:L(P)})}),Xf=(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:(0,io.default)("vuuTreeNode",s,{focusVisible:o===e.value})});Uf.displayName="Tree";var dc=V(require("classnames")),pt=require("react");var ur=require("react/jsx-runtime"),{KEY:uc}=co.metadataKeys,gs=(0,pt.memo)(({className:n,column:e,columnMap:t,onClick:r,row:o})=>{let s=(0,pt.useRef)(null),{align:i,CellRenderer:l,key:a,pin:c,editable:u,resizing:p,valueFormatter:d}=e,[f,m]=(0,pt.useState)(!1),h=d(o[a]),[x,v]=(0,pt.useState)(h),C=()=>{var P;(P=s.current)==null||P.focus()},y=P=>{P.key==="Enter"&&m(!0)},b=(0,pt.useCallback)(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=(0,dc.default)(n,{vuuAlignRight:i==="right",vuuPinFloating:c==="floating",vuuPinLeft:c==="left",vuuPinRight:c==="right","vuuTableCell-resizing":p})||void 0,D=(0,co.getColumnStyle)(e);return u?(0,ur.jsx)("div",{className:w,"data-editable":!0,role:"cell",style:D,onKeyDown:y,children:(0,ur.jsx)(dn,{editing:f,value:x,onChange:v,onMouseDownCapture:C,onEnterEditMode:T,onExitEditMode:g,onKeyDown:y,ref:s,tabIndex:0},"title")}):(0,ur.jsx)("div",{className:w,role:"cell",style:D,onClick:b,children:l?(0,ur.jsx)(l,{column:e,columnMap:t,row:o}):h})},Qf);gs.displayName="TableCell";function Qf(n,e){return n.column===e.column&&n.onClick===e.onClick&&n.row[uc]===e.row[uc]&&n.row[n.column.key]===e.row[e.column.key]}var Mn=require("@vuu-ui/vuu-utils"),pc=require("react");var Dn=require("react/jsx-runtime"),{IS_LEAF:Zf}=Mn.metadataKeys,fc=({column:n,onClick:e,row:t})=>{let{columns:r}=n,[o,s]=(0,Mn.getGroupValueAndOffset)(r,t),i=(0,pc.useCallback)(u=>{e==null||e(u,n)},[n,e]),l=(0,Mn.getColumnStyle)(n),a=t[Zf],c=Array(s).fill(0).map((u,p)=>(0,Dn.jsx)("span",{className:"vuuTableGroupCell-spacer"},p));return(0,Dn.jsxs)("div",{className:"vuuTableGroupCell vuuPinLeft",onClick:a?void 0:i,role:"cell",style:l,children:[c,a?null:(0,Dn.jsx)("span",{className:"vuuTableGroupCell-toggle","data-icon":"triangle-right"}),(0,Dn.jsx)("span",{children:o})]})};var pr=require("react/jsx-runtime"),{IDX:Yf,IS_EXPANDED:jf,SELECTED:qf}=Ye.metadataKeys,uo="vuuTableRow",hc=(0,dr.memo)(function({columnMap:e,columns:t,offset:r,onClick:o,onToggleGroup:s,virtualColSpan:i=0,row:l}){let{[Yf]:a,[jf]:c,[qf]:u}=l,p=(0,mc.default)(uo,{[`${uo}-even`]:a%2===0,[`${uo}-expanded`]:c,[`${uo}-preSelected`]:u===2}),d=(0,dr.useCallback)(m=>{let h=m.shiftKey,x=m.ctrlKey||m.metaKey;o==null||o(l,h,x)},[o,l]),f=(0,dr.useCallback)((m,h)=>{((0,Ye.isGroupColumn)(h)||(0,Ye.isJsonGroup)(h,l))&&(m.stopPropagation(),s==null||s(l,h))},[s,l]);return(0,pr.jsxs)("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?(0,pr.jsx)("div",{role:"cell",style:{width:i}}):null,t.filter(Ye.notHidden).map(m=>{let h=(0,Ye.isGroupColumn)(m),x=(0,Ye.isJsonColumn)(m);return(0,pr.jsx)(h?fc:gs,{column:m,columnMap:e,onClick:h||x?f:void 0,row:l},m.name)})]})});var bs=V(require("classnames")),bc=require("react");var Qt=require("react"),Zt=({column:n,onResize:e,rootRef:t})=>{let r=(0,Qt.useRef)(0),o=(0,Qt.useRef)(!1),{name:s}=n,i=(0,Qt.useCallback)(()=>{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=(0,Qt.useCallback)((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=(0,Qt.useCallback)(()=>{e&&(e("end",s,r.current),setTimeout(()=>{o.current=!1},100))},[s,e]);return{isResizing:o.current,onDrag:l,onDragStart:i,onDragEnd:a}};var je=require("react/jsx-runtime"),Pt="vuuTable-groupHeaderCell",gc=({column:n,onClick:e,...t})=>(0,je.jsx)("span",{...t,className:`${Pt}-close`,"data-icon":"close-circle",onClick:()=>e==null?void 0:e(n)}),Jf=n=>{let{children:e,column:t,className:r}=n;return(0,je.jsxs)("div",{className:(0,bs.default)(`${Pt}-col`,r),role:"columnheader",children:[(0,je.jsx)("span",{className:`${Pt}-label`,children:t.name}),e]})},yc=({column:n,className:e,onRemoveColumn:t,onResize:r,...o})=>{let s=(0,bc.useRef)(null),{isResizing:i,...l}=Zt({column:n,onResize:r,rootRef:s}),a=(0,bs.default)(Pt,e,{vuuPinLeft:n.pin==="left",[`${Pt}-right`]:n.align==="right",[`${Pt}-resizing`]:n.resizing,[`${Pt}-pending`]:n.groupConfirmed===!1}),{columns:c}=n;return(0,je.jsx)("div",{className:a,ref:s,...o,children:(0,je.jsxs)("div",{className:`${Pt}-inner`,children:[c.map(u=>(0,je.jsx)(Jf,{column:u,children:c.length>1?(0,je.jsx)(gc,{column:u,onClick:t}):null},u.key)),(0,je.jsx)(gc,{"data-align":"end",onClick:t}),n.resizeable!==!1?(0,je.jsx)(zt,{...l}):null]})})};var Ec=V(require("classnames")),Yt=require("react");var ys=V(require("classnames"));var xc="vuuSortIndicator",po=({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:(0,ys.default)(xc,"multi-col",e)},React.createElement("span",{"data-icon":`sorted-${e}`}),React.createElement("span",{className:"vuuSortPosition"},Math.abs(n))):React.createElement("div",{className:(0,ys.default)(xc,"single-col")},React.createElement("span",{"data-icon":`sorted-${e}`}))};var Rc=require("@vuu-ui/vuu-popups");var vc=require("@vuu-ui/vuu-popups"),Cc=V(require("classnames")),Tc=require("react");var Sc=require("react/jsx-runtime");var wc=({column:n,filter:e})=>{let[t]=(0,vc.useContextMenu)(),r=(0,Tc.useCallback)(o=>{o.stopPropagation(),t(o,"filter",{column:n,filter:e})},[n,e,t]);return n.filter?(0,Sc.jsx)("div",{className:(0,Cc.default)("vuuFilterIndicator"),"data-icon":"filter",onClick:r}):null};var Lt=require("react/jsx-runtime"),fr="vuuTable-headerCell",Dc=({column:n,className:e,onClick:t,onDragStart:r,onResize:o,...s})=>{let i=(0,Yt.useRef)(null),{isResizing:l,...a}=Zt({column:n,onResize:o,rootRef:i}),[c]=(0,Rc.useContextMenu)(),u=(0,Yt.useRef)(null),p=x=>{c(x,"header",{column:n})},d=(0,Yt.useCallback)(x=>!l&&(t==null?void 0:t(x)),[l,t]),f=(0,Yt.useCallback)(x=>{u.current=window.setTimeout(()=>{r==null||r(x),u.current=null},500)},[r]),m=(0,Yt.useCallback)(()=>{u.current!==null&&(window.clearTimeout(u.current),u.current=null)},[]),h=(0,Ec.default)(fr,e,{vuuPinFloating:n.pin==="floating",vuuPinLeft:n.pin==="left",vuuPinRight:n.pin==="right",vuuEndPin:n.endPin,[`${fr}-resizing`]:n.resizing,[`${fr}-right`]:n.align==="right"});return(0,Lt.jsx)("div",{className:h,...s,onClick:d,onContextMenu:p,onMouseDown:f,onMouseUp:m,ref:i,children:(0,Lt.jsxs)("div",{className:`${fr}-inner`,children:[(0,Lt.jsx)(wc,{column:n}),(0,Lt.jsx)("div",{className:`${fr}-label`,children:n.label}),(0,Lt.jsx)(po,{sorted:n.sorted}),n.resizeable!==!1?(0,Lt.jsx)(zt,{...a}):null]})})};var qe=require("react/jsx-runtime"),xs="vuuTable",{RENDER_IDX:em}=Be.metadataKeys,Mc=({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=(0,Pn.useCallback)(y=>{i==null||i(y)},[i]),x=(0,Pn.useMemo)(()=>n.filter(Be.notHidden),[n]),v=(0,Pn.useMemo)(()=>(0,Be.buildColumnMap)(n),[n]),C=(0,Pn.useCallback)(y=>{var P;let T=y.target.closest(".vuuTable-headerCell"),g=parseInt((P=T==null?void 0:T.dataset.idx)!=null?P:"-1"),w=(0,Be.visibleColumnAtIndex)(n,g),D=y.shiftKey;w&&u(w,D)},[n,u]);return(0,qe.jsxs)("div",{"aria-rowcount":m,className:`${xs}-table`,role:"table",children:[(0,qe.jsxs)("div",{className:`${xs}-headers`,role:"rowGroup",children:[o.map((y,b)=>(0,qe.jsx)("div",{className:"vuuTable-heading",children:y.map(({label:T,width:g},w)=>(0,qe.jsx)("div",{className:"vuuTable-headingCell",style:{width:g},children:T},w))},b)),(0,qe.jsx)("div",{role:"row",children:x.map((y,b)=>{let T=(0,Be.getColumnStyle)(y);return(0,Be.isGroupColumn)(y)?(0,qe.jsx)(yc,{column:y,"data-idx":b,onRemoveColumn:a,onResize:s,role:"columnHeader",style:T},b):(0,qe.jsx)(Dc,{column:y,"data-idx":b,id:`${d}-${b}`,onClick:C,onDragStart:h,onResize:s,role:"columnHeader",style:T},b)})})]}),(0,qe.jsx)("div",{className:`${xs}-body`,onContextMenu:l,role:"rowGroup",children:t==null?void 0:t.map(y=>(0,qe.jsx)(hc,{columnMap:v,columns:e,offset:r(y),onClick:c,virtualColSpan:f,onToggleGroup:p,row:y},y[em]))})]})};var hu=require("@vuu-ui/vuu-popups"),st=require("@vuu-ui/vuu-utils"),ne=require("react");var fo=require("@vuu-ui/vuu-utils"),mr=require("react"),{SELECTED:sM}=fo.metadataKeys;var vs=require("react"),tm=require("@vuu-ui/vuu-data");var Cs=require("react"),nm=require("@vuu-ui/vuu-data");var rm=require("react"),om=require("@vuu-ui/vuu-data");var sm=0,hr=class{constructor(e,t){this.from=e,this.to=t}},j=class{constructor(e={}){this.id=sm++,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=Me.match(e)),t=>{let r=e(t);return r===void 0?null:[this,r]}}};j.closedBy=new j({deserialize:n=>n.split(" ")});j.openedBy=new j({deserialize:n=>n.split(" ")});j.group=new j({deserialize:n=>n.split(" ")});j.contextHash=new j({perNode:!0});j.lookAhead=new j({perNode:!0});j.mounted=new j({perNode:!0});var im=Object.create(null),Me=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):im,r=(e.top?1:0)|(e.skipped?2:0)|(e.error?4:0)|(e.name==null?8:0),o=new Me(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(j.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(j.group),s=-1;s<(o?o.length:0);s++){let i=t[s<0?r.name:o[s]];if(i)return i}}}};Me.none=new Me("",Object.create(null),0,8);var Ln=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 Me(r.name,o,r.id,r.flags):r)}return new Ln(t)}},mo=new WeakMap,Pc=new WeakMap,me;(function(n){n[n.ExcludeBuffers=1]="ExcludeBuffers",n[n.IncludeAnonymous=2]="IncludeAnonymous",n[n.IgnoreMounts=4]="IgnoreMounts",n[n.IgnoreOverlays=8]="IgnoreOverlays"})(me||(me={}));var he=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(j.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 In(this.topNode,e)}cursorAt(e,t=0,r=0){let o=mo.get(this)||this.topNode,s=new In(o);return s.moveTo(e,t),mo.set(this,s._tree),s}get topNode(){return new Je(this,0,0,null)}resolve(e,t=0){let r=kn(mo.get(this)||this.topNode,e,t,!1);return mo.set(this,r),r}resolveInner(e,t=0){let r=kn(Pc.get(this)||this.topNode,e,t,!0);return Pc.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&me.IncludeAnonymous)>0;for(let a=this.cursor(i|me.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:Es(Me.none,this.children,this.positions,0,this.children.length,0,this.length,(t,r,o)=>new he(this.type,t,r,o,this.propValues),e.makeTree||((t,r,o)=>new he(Me.none,t,r,o)))}static build(e){return lm(e)}};he.empty=new he(Me.none,[],[],0);var gr=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 gr(this.buffer,this.index)}},ft=class{constructor(e,t,r){this.buffer=e,this.length=t,this.set=r}get type(){return Me.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&&!(kc(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 ft(s,i,this.set)}};function kc(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 Ic(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 kn(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 Je&&n.index<0?null:n.parent;if(!i)return n;n=i}let s=r?0:me.IgnoreOverlays;if(r)for(let i=n,l=i.parent;l;i=l,l=i.parent)i instanceof Je&&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 Je=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(kc(o,r,p,p+u.length)){if(u instanceof ft){if(s&me.ExcludeBuffers)continue;let d=u.findChild(0,u.buffer.length,t,r-p,o);if(d>-1)return new rt(new Ts(i,u,e,p),null,d)}else if(s&me.IncludeAnonymous||!u.type.isAnonymous||Ss(u)){let d;if(!(s&me.IgnoreMounts)&&u.props&&(d=u.prop(j.mounted))&&!d.overlay)return new Je(d.tree,p,e,i);let f=new Je(u,p,e,i);return s&me.IncludeAnonymous||!f.type.isAnonymous?f:f.nextChild(t<0?u.children.length-1:0,t,r,o)}}}if(s&me.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&me.IgnoreOverlays)&&(o=this._tree.prop(j.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 Je(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 In(this,e)}get tree(){return this._tree}toTree(){return this._tree}resolve(e,t=0){return kn(this,e,t,!1)}resolveInner(e,t=0){return kn(this,e,t,!0)}enterUnfinishedNodesBefore(e){return Ic(this,e)}getChild(e,t=null,r=null){let o=go(this,e,t,r);return o.length?o[0]:null}getChildren(e,t=null,r=null){return go(this,e,t,r)}toString(){return this._tree.toString()}get node(){return this}matchContext(e){return bo(this,e)}};function go(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 bo(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 Ts=class{constructor(e,t,r,o){this.parent=e,this.buffer=t,this.index=r,this.start=o}},rt=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 rt(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&me.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 rt(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 rt(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 rt(this.context,this._parent,e.findChild(t,this.index,-1,0,4))}cursor(e=0){return new In(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 he(this.type,e,t,this.to-this.from)}resolve(e,t=0){return kn(this,e,t,!1)}resolveInner(e,t=0){return kn(this,e,t,!0)}enterUnfinishedNodesBefore(e){return Ic(this,e)}toString(){return this.context.buffer.childString(this.index)}getChild(e,t=null,r=null){let o=go(this,e,t,r);return o.length?o[0]:null}getChildren(e,t=null,r=null){return go(this,e,t,r)}get node(){return this}matchContext(e){return bo(this,e)}},In=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 Je)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 Je?(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&me.ExcludeBuffers?!1:this.enterChild(1,e,t):this.yield(this._tree.enter(e,t,r))}parent(){if(!this.buffer)return this.yieldNode(this.mode&me.IncludeAnonymous?this._tree._parent:this._tree.parent);if(this.stack.length)return this.yieldBuf(this.stack.pop());let e=this.mode&me.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&me.IncludeAnonymous||l instanceof ft||!l.type.isAnonymous||Ss(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 rt(this.buffer,t,this.stack[o]);return this.bufferNode=new rt(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 bo(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 bo(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 Ss(n){return n.children.some(e=>e instanceof ft||!e.type.isAnonymous||Ss(e))}function lm(n){var e;let{buffer:t,nodeSet:r,maxBufferLength:o=1024,reused:s=[],minRepeatType:i=r.types.length}=n,l=Array.isArray(t)?new gr(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 ft(A,R-k.start,r),O=k.start-b}else{let A=l.pos-S;l.next();let N=[],H=[],B=P>=i?P:-1,z=0,K=R;for(;l.pos>A;)B>=0&&l.id==B&&l.size>=0?(l.end<=K-o&&(f(N,H,E,z,l.end,K,B,M),z=N.length,K=l.end),l.next()):p(E,A,N,H,B);if(B>=0&&z>0&&z<N.length&&f(N,H,E,z,E,K,B,M),N.reverse(),H.reverse(),B>-1&&z>0){let _=d(I);L=Es(I,N,H,0,N.length,0,R-E,_,_)}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 he){if(!P&&E.type==b&&E.length==w)return E;(R=E.prop(j.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=[j.contextHash,c];P=P?[E].concat(P):[E]}if(D>25){let E=[j.lookAhead,D];P=P?[E].concat(P):[E]}return new he(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 he(a[n.topID],v.reverse(),C.reverse(),y)}var Lc=new WeakMap;function ho(n,e){if(!n.isAnonymous||e instanceof ft||e.type!=n)return 1;let t=Lc.get(e);if(t==null){t=1;for(let r of e.children){if(r.type!=n||!(r instanceof he)){t=1;break}t+=ho(n,r)}Lc.set(e,t)}return t}function Es(n,e,t,r,o,s,i,l,a){let c=0;for(let m=r;m<o;m++)c+=ho(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=ho(n,m[y]);for(y++;y<v;y++){let w=ho(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(Es(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 yo=class{startParse(e,t,r){return typeof e=="string"&&(e=new ws(e)),r=r?r.length?r.map(o=>new hr(o.from,o.to)):[new hr(0,0)]:[new hr(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}}},ws=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 dM=new j({perNode:!0});var On=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 On(e,[],t,r,r,0,[],0,o?new xo(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 On(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 Ds(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 xo(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()}},xo=class{constructor(e,t){this.tracker=e,this.context=t,this.hash=e.strict?e.hash(t):0}},Ac;(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"})(Ac||(Ac={}));var Ds=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}},Hn=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 Hn(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 Hn(this.stack,this.pos,this.index)}};function br(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 An=class{constructor(){this.start=-1,this.value=-1,this.end=-1,this.extended=-1,this.lookAhead=0,this.mask=0,this.context=0}},Oc=new An,Ms=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=Oc,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=Oc,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}},kt=class{constructor(e,t){this.data=e,this.id=t}token(e,t){let{parser:r}=t.p;Bc(this.data,e,t,this.id,r.data,r.tokenPrecTable)}};kt.prototype.contextual=kt.prototype.fallback=kt.prototype.extend=!1;var Ps=class{constructor(e,t,r){this.precTable=t,this.elseToken=r,this.data=typeof e=="string"?br(e):e}token(e,t){let r=e.pos,o=0;for(;;){let s=e.next<0,i=e.resolveOffset(1,1);if(Bc(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))}};Ps.prototype.contextual=kt.prototype.fallback=kt.prototype.extend=!1;function Bc(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||cm(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 Hc(n,e,t){for(let r=e,o;(o=n[r])!=65535;r++)if(o==t)return r-e;return-1}function cm(n,e,t,r){let o=Hc(t,r,e);return o<0||Hc(t,r,n)<o}var et=typeof process<"u"&&process.env&&/\bparse\b/.test(process.env.LOG),Rs=null,Nc;(function(n){n[n.Margin=25]="Margin"})(Nc||(Nc={}));function zc(n,e,t){let r=n.cursor(me.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 Ls=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?zc(e.tree,e.from+e.offset,1)-e.offset:e.from,this.safeTo=e.openEnd?zc(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 he){if(i==e){if(i<this.safeFrom)return null;let l=i+s.length;if(l<=this.safeTo){let a=s.prop(j.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}}},ks=class{constructor(e,t){this.stream=t,this.tokens=[],this.mainToken=null,this.actions=[],this.tokens=e.tokenizers.map(r=>new An)}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 An,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 An,{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=mt(l,c+2);else{o==0&&l[c+1]==2&&(o=this.putAction(mt(l,c+2),t,r,o));break}l[c]==t&&(o=this.putAction(mt(l,c+1),t,r,o))}return o}},Fc;(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"})(Fc||(Fc={}));var Is=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 Ms(t,o),this.tokens=new ks(e,this.stream),this.topTerm=e.top[1];let{from:s}=o[0];this.stacks=[On.start(this,e.top[0],s)],this.fragments=r.length&&this.stream.end-s>e.bufferLength*4?new Ls(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&&um(o);if(i)return this.stackToTree(i);if(this.parser.strict)throw et&&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=et?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(j.contextHash)||0)==u))return e.useNode(p,d),et&&console.log(i+this.stackID(e)+` (via reuse of ${s.getName(p.type.id)})`),!0;if(!(p instanceof he)||p.children.length==0||p.positions[0]>0)break;let f=p.children[0];if(f instanceof he&&p.positions[0]==0)p=f;else break}}let l=s.stateSlot(e.state,4);if(l>0)return e.reduce(l),et&&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),et&&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 $c(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=et?this.stackID(l)+" -> ":"";if(l.deadEnd&&(s||(s=!0,l.restart(),et&&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&&(et&&console.log(d+this.stackID(p)+" (via force-reduce)"),!this.advanceFully(p,r));f++)et&&(d=this.stackID(p)+" -> ");for(let f of l.recoverByInsert(a))et&&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),et&&console.log(u+this.stackID(l)+` (via recover-delete ${this.parser.getName(a)})`),$c(l,r)):(!o||o.score<l.score)&&(o=l)}return o}stackToTree(e){return e.close(),he.build({buffer:Hn.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=(Rs||(Rs=new WeakMap)).get(e);return t||Rs.set(e,t=String.fromCodePoint(this.nextStackID++)),t+e}};function $c(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 As=class{constructor(e,t,r){this.source=e,this.flags=t,this.disabled=r}allows(e){return!this.disabled||this.disabled[e]==0}};var jt=class extends yo{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=j[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 Ln(t.map((l,a)=>Me.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=br(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(Vc),this.states=br(e.states,Uint32Array),this.data=br(e.stateData),this.goto=br(e.goto),this.maxTerm=e.maxTerm,this.tokenizers=e.tokenizers.map(l=>typeof l=="number"?new kt(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 Is(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=mt(r,s+2)];else{if(r[s+1]==2)return mt(r,s+2);break}if(i==t||i==0)return mt(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=mt(this.data,s+2);else break;o=t(mt(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=mt(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(jt.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]=Vc(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 As(e,r,o)}static deserialize(e){return new jt(e)}};function mt(n,e){return n[e]|n[e+1]<<16}function um(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 Vc(n){if(n.external){let e=n.extend?1:0;return(t,r)=>n.external(t,r)<<1|e}return n.get}var Os=jt.deserialize({version:14,states:"%QOVQPOOOOQO'#C_'#C_O_QQO'#C^OOQO'#DO'#DOOvQQO'#C|OOQO'#DR'#DROVQPO'#CuOOQO'#C}'#C}QOQPOOOOQO'#C`'#C`O!UQQO,58xO!dQPO,59VOVQPO,59]OVQPO,59_O!iQPO,59hO!nQQO,59aOOQO'#DQ'#DQOOQO1G.d1G.dO!UQQO1G.qO!yQQO1G.wOOQO1G.y1G.yOOQO'#Cw'#CwOOQO1G/S1G/SOOQO1G.{1G.{O#[QPO'#CnO#dQPO7+$]O!UQQO'#CxO#iQPO,59YOOQO<<Gw<<GwOOQO,59d,59dOOQO-E6v-E6v",stateData:"#q~OoOS~OsPOvUO~OTXOUXOVXOWXOXXOYXO`ZO~Of[Oh]Oj^OmpX~OZ`O[`O]`O^`O~OabO~OseO~Of[Oh]OwgO~Oh]Ofeijeimeiwei~OcjOdbX~OdlO~OcjOdba~O",goto:"#YvPPw}!TPPPPPPPPPPwPP!WPP!ZP!ZP!aP!g!jPPP!p!s!aP#P!aXROU[]XQOU[]RYQRibXTOU[]XVOU[]Rf^QkhRnkRWOQSOQ_UQc[Rd]QaYQhbRmj",nodeNames:"\u26A0 Filter ColumnValueExpression Column Operator Eq NotEq Gt Lt Starts Ends Number String True False ColumnSetExpression In LBrack Values Comma RBrack AndExpression And OrExpression Or ParenthesizedExpression As FilterName",maxTerm:39,skippedNodes:[0],repeatNodeCount:1,tokenData:"6p~RnXY#PYZ#P]^#Ppq#Pqr#brs#mxy$eyz$j|}$o!O!P$t!Q![%S!^!_%_!_!`%d!`!a%i!c!}%n!}#O&V#P#Q&[#R#S%n#T#U&a#U#X%n#X#Y(w#Y#Z+]#Z#]%n#]#^.]#^#c%n#c#d/e#d#g%n#g#h0m#h#i4[#i#o%n~#USo~XY#PYZ#P]^#Ppq#P~#eP!_!`#h~#mOU~~#pWOX#mZ]#m^r#mrs$Ys#O#m#P;'S#m;'S;=`$_<%lO#m~$_O[~~$bP;=`<%l#m~$jOv~~$oOw~~$tOc~~$wP!Q![$z~%PPZ~!Q![$z~%XQZ~!O!P$t!Q![%S~%dOW~~%iOT~~%nOV~P%sUsP}!O%n!O!P%n!Q![%n!c!}%n#R#S%n#T#o%n~&[Oa~~&aOd~R&fYsP}!O%n!O!P%n!Q![%n!c!}%n#R#S%n#T#b%n#b#c'U#c#g%n#g#h(^#h#o%nR'ZWsP}!O%n!O!P%n!Q![%n!c!}%n#R#S%n#T#W%n#W#X's#X#o%nR'zUfQsP}!O%n!O!P%n!Q![%n!c!}%n#R#S%n#T#o%nR(eUjQsP}!O%n!O!P%n!Q![%n!c!}%n#R#S%n#T#o%nR(|WsP}!O%n!O!P%n!Q![%n!c!}%n#R#S%n#T#b%n#b#c)f#c#o%nR)kWsP}!O%n!O!P%n!Q![%n!c!}%n#R#S%n#T#W%n#W#X*T#X#o%nR*YWsP}!O%n!O!P%n!Q![%n!c!}%n#R#S%n#T#g%n#g#h*r#h#o%nR*yUYQsP}!O%n!O!P%n!Q![%n!c!}%n#R#S%n#T#o%nR+bVsP}!O%n!O!P%n!Q![%n!c!}%n#R#S%n#T#U+w#U#o%nR+|WsP}!O%n!O!P%n!Q![%n!c!}%n#R#S%n#T#`%n#`#a,f#a#o%nR,kWsP}!O%n!O!P%n!Q![%n!c!}%n#R#S%n#T#g%n#g#h-T#h#o%nR-YWsP}!O%n!O!P%n!Q![%n!c!}%n#R#S%n#T#X%n#X#Y-r#Y#o%nR-yU^QsP}!O%n!O!P%n!Q![%n!c!}%n#R#S%n#T#o%nR.bWsP}!O%n!O!P%n!Q![%n!c!}%n#R#S%n#T#b%n#b#c.z#c#o%nR/RU`QsP}!O%n!O!P%n!Q![%n!c!}%n#R#S%n#T#o%nR/jWsP}!O%n!O!P%n!Q![%n!c!}%n#R#S%n#T#f%n#f#g0S#g#o%nR0ZUhQsP}!O%n!O!P%n!Q![%n!c!}%n#R#S%n#T#o%nR0rWsP}!O%n!O!P%n!Q![%n!c!}%n#R#S%n#T#h%n#h#i1[#i#o%nR1aVsP}!O%n!O!P%n!Q![%n!c!}%n#R#S%n#T#U1v#U#o%nR1{WsP}!O%n!O!P%n!Q![%n!c!}%n#R#S%n#T#f%n#f#g2e#g#o%nR2jWsP}!O%n!O!P%n!Q![%n!c!}%n#R#S%n#T#h%n#h#i3S#i#o%nR3XWsP}!O%n!O!P%n!Q![%n!c!}%n#R#S%n#T#g%n#g#h3q#h#o%nR3xUXQsP}!O%n!O!P%n!Q![%n!c!}%n#R#S%n#T#o%nR4aWsP}!O%n!O!P%n!Q![%n!c!}%n#R#S%n#T#f%n#f#g4y#g#o%nR5OWsP}!O%n!O!P%n!Q![%n!c!}%n#R#S%n#T#i%n#i#j5h#j#o%nR5mWsP}!O%n!O!P%n!Q![%n!c!}%n#R#S%n#T#X%n#X#Y6V#Y#o%nR6^U]QsP}!O%n!O!P%n!Q![%n!c!}%n#R#S%n#T#o%n",tokenizers:[0,1],topRules:{Filter:[0,1]},tokenPrec:0});var ot=require("@vuu-ui/vuu-utils");var Pe,Kc=class{constructor(){Js(this,Pe,void 0)}setFilterCombinatorOp(e,t=nt(this,Pe)){(0,ot.isMultiClauseFilter)(t)&&t.op===e||Po(this,Pe,{op:e,filters:[nt(this,Pe)]})}add(e){if(nt(this,Pe)===void 0)Po(this,Pe,e);else if((0,ot.isMultiClauseFilter)(nt(this,Pe)))nt(this,Pe).filters.push(e);else throw Error("Invalid filter passed to FilterExpression")}setColumn(e,t=nt(this,Pe)){if((0,ot.isMultiClauseFilter)(t)){let r=t.filters.at(-1);r&&this.setColumn(e,r)}else t&&(t.column=e)}setOp(e,t=nt(this,Pe)){if((0,ot.isMultiClauseFilter)(t)){let r=t.filters.at(-1);r&&this.setOp(e,r)}else t&&(t.op=e)}setValue(e,t=nt(this,Pe)){var r;if((0,ot.isMultiClauseFilter)(t)){let o=t.filters.at(-1);o&&this.setValue(e,o)}else(0,ot.isMultiValueFilter)(t)?((r=t.values)!=null||(t.values=[]),t.values.push(e)):(0,ot.isSingleValueFilter)(t)&&(t.value=e)}toJSON(e=nt(this,Pe)){return this.name?{...e,name:this.name}:e}};Pe=new WeakMap;var CM=Os.configure({strict:!0});var vo=require("@vuu-ui/vuu-utils"),fm=require("react");var{KEY:AM}=vo.metadataKeys;var mm=n=>n.type==="vuu-links";var hm=n=>n.type==="vuu-menu",Wc=n=>hm(n)||mm(n),_c=n=>n.type==="vuu-link-created"||n.type==="vuu-link-removed";var Hs=require("react"),gm=require("@vuu-ui/vuu-data");var It=require("@vuu-ui/vuu-utils"),oe=require("react"),{SELECTED:yr}=It.metadataKeys;function Gc({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]=(0,oe.useState)(null),u=(0,oe.useRef)(!0),p=(0,oe.useRef)(!1),d=(0,oe.useRef)({from:0,to:0}),f=(0,oe.useRef)(null),m=(0,oe.useRef)([]),h=(0,oe.useMemo)(()=>new Ns((0,It.getFullRange)(i)),[]),x=(0,oe.useCallback)(g=>{for(let w of g)h.add(w);m.current=h.data,p.current=!0},[h]),v=(0,oe.useCallback)(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)):Wc(g)?t==null||t(g):_c(g)?r==null||r(g):console.log(`useDataSource unexpected message ${g.type}`)},[h,t,r,o,s,x]);(0,oe.useEffect)(()=>()=>{f.current&&(cancelAnimationFrame(f.current),f.current=null),u.current=!1},[]);let C=(0,oe.useCallback)(()=>{u.current&&(p.current&&(c({}),p.current=!1),f.current=requestAnimationFrame(C))},[c]);(0,oe.useEffect)(()=>{f.current=requestAnimationFrame(C)},[C]);let y=(0,oe.useCallback)(g=>{let{from:w}=n.range,D={from:w,to:w+g},P=(0,It.getFullRange)(D,l);h.setRange(P),n.range=d.current=P,n.emit("range",D)},[n,h,l]),b=(0,oe.useCallback)(g=>{let w=(0,It.getFullRange)(g,l);h.setRange(w),n.range=d.current=w,n.emit("range",g)},[n,h,l]),T=(0,oe.useCallback)(()=>h.getSelectedRows(),[h]);return(0,oe.useEffect)(()=>{n==null||n.subscribe({range:d.current},v)},[n,v,e]),(0,oe.useEffect)(()=>{y(a)},[y,a]),{data:m.current,getSelectedRows:T,range:d.current,setRange:b,dataSource:n}}var Ns=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 It.WindowRange(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[yr],i=(r=this.data[o-1])==null?void 0:r[yr];i===0&&s?this.data[o-1][yr]=2:i===2&&!s&&(this.data[o-1][yr]=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[yr]===1)}};var Nn=require("react"),Uc=({onDrop:n})=>{let e=(0,Nn.useRef)(),t=(0,Nn.useRef)(null),r=(0,Nn.useCallback)(()=>{console.log("handleDropSettle"),e.current=void 0,t.current=null},[]),{draggable:o,draggedItemIndex:s,onMouseDown:i}=kr({allowDragDrop:!0,draggableClassName:"vuuTable-headerCell",orientation:"horizontal",containerRef:t,itemQuery:".vuuTable-headerCell",onDrop:n,onDropSettle:r}),l=(0,Nn.useCallback)(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}};var jc=require("@vuu-ui/vuu-utils"),ae=require("react");function bm(n,...e){let t=new Set(n);for(let r of e)for(let o of r)t.add(o);return t}var zs="ArrowUp",Fs="ArrowDown",$s="ArrowLeft",Vs="ArrowRight";var Bs="Home",Ks="End",Ws="PageUp",_s="PageDown";var ym=new Set(["Enter","Delete"," "]),xm=new Set(["Tab"]),vm=new Set(["ArrowRight","ArrowLeft"]),Xc=new Set([Bs,Ks,Ws,_s,Fs,$s,Vs,zs]),Cm=new Set(["F1","F2","F3","F4","F5","F6","F7","F8","F9","F10","F11","F12"]),jM=bm(ym,Xc,vm,Cm,xm);var Tm=["Home","End","PageUp","PageDown"],Qc=n=>Tm.includes(n),Zc=n=>Xc.has(n);var Yc=n=>`.vuuTable-headers .vuuTable-headerCell:nth-child(${n+1})`,wm=(n,e)=>`.vuuTable-body > [aria-rowindex='${n}'] > [role='cell']:nth-child(${e+1})`,Sm=[-1,-1];function Em(n,[e,t],r,o){return n===zs?e>-1?[e-1,t]:[e,t]:n===Fs?e===-1?[0,t]:e===o-1?[e,t]:[e+1,t]:n===Vs?t<r-1?[e,t+1]:[e,t]:n===$s?t>0?[e,t-1]:[e,t]:[e,t]}var qc=({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=(0,ae.useRef)([-1,-1]),u=(0,ae.useRef)(),p=(0,ae.useRef)([-1,0]),d=(0,ae.useCallback)(([E,R])=>{var M;let S=E===-1?Yc(R):wm(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 Sm},h=(0,ae.useCallback)(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()):(0,jc.withinRange)(E[0],i)||(u.current=void 0,o==null||o({type:"scroll-page",direction:"up"}))}},[e,d,o,i]),x=(0,ae.useCallback)((E,R,S=!1)=>{let M=[E,R];p.current=M,h(M),S&&(c.current=M)},[h]),v=(0,ae.useCallback)(()=>{var E;(E=u.current)==null||E.setAttribute("tabindex",""),u.current=void 0},[]),C=(0,ae.useCallback)(async(E,R)=>{switch(E){case _s:o==null||o({type:"scroll-page",direction:"down"});break;case Ws:o==null||o({type:"scroll-page",direction:"up"});break;case Bs:o==null||o({type:"scroll-end",direction:"home"});break;case Ks:o==null||o({type:"scroll-end",direction:"end"});break}return R},[o]),y=(0,ae.useCallback)(()=>{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=(0,ae.useCallback)(async E=>{let[R,S]=Qc(E)?await C(E,p.current):Em(E,p.current,n,s),[M,I]=p.current;(R!==M||S!==I)&&x(R,S,!0)},[n,C,s,x]),T=(0,ae.useCallback)(E=>{r.length>0&&Zc(E.key)&&(E.preventDefault(),E.stopPropagation(),b(E.key))},[r,b]),g=(0,ae.useCallback)(E=>{let R=E.target,S=f(R);if(S){let[M,I]=m(S);x(M,I)}},[x]),w=(0,ae.useMemo)(()=>({onClick:g,onFocus:y,onKeyDown:T}),[g,y,T]);(0,ae.useLayoutEffect)(()=>{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(0,ae.useEffect)(()=>{var E;if(D&&u.current===void 0){let R=(E=e.current)==null?void 0:E.querySelector(Yc(0));R&&(R.setAttribute("tabindex","0"),u.current=R)}},[e,D]),w};var ht=require("@vuu-ui/vuu-utils"),At=require("react");var Jt=require("react");var qt=new Map,eu=(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}},Jc=new ResizeObserver(n=>{for(let e of n){let{target:t,borderBoxSize:r,contentBoxSize:o}=e,s=qt.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=eu(t,{height:i,width:l,contentHeight:a,contentWidth:c},f);h!==m&&(d=!0,p[f]=h)}d&&u&&u(p)}}});function tu(n,e,t,r=!1){let o=(0,Jt.useRef)(e),s=(0,Jt.useCallback)(i=>{let{width:l,height:a}=i.getBoundingClientRect(),{clientWidth:c,clientHeight:u}=i;return o.current.reduce((p,d)=>(p[d]=eu(i,{width:l,height:a,contentHeight:u,contentWidth:c},d),p),{})},[]);(0,Jt.useEffect)(()=>{let i=n.current;async function l(){qt.set(i,{measurements:{}}),await document.fonts.ready;let a=qt.get(i);if(a){let c=s(i);a.measurements=c,Jc.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(qt.has(i))throw Error("useResizeObserver attemping to observe same element twice");l()}return()=>{i&&qt.has(i)&&(Jc.unobserve(i),qt.delete(i))}},[s,n]),(0,Jt.useEffect)(()=>{let i=n.current,l=qt.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 Rm=["clientHeight","clientWidth"],nu=n=>Number.isFinite(n),Dm={height:"100%",width:"100%"},Mm=(n,e)=>(0,ht.isValidNumber)(n)&&(0,ht.isValidNumber)(e)?{height:`${n}px`,width:`${e}px`}:Dm,Pm=(n,e)=>{if((0,ht.isValidNumber)(n)&&(0,ht.isValidNumber)(e))return{height:n,width:e}},xr=({defaultHeight:n=0,defaultWidth:e=0,height:t,width:r})=>{let o=(0,At.useRef)(null),[s,i]=(0,At.useState)({css:Mm(t,r),inner:Pm(t,r),outer:{height:t!=null?t:"100%",width:r!=null?r:"100%"}});(0,At.useMemo)(()=>{i(a=>{let{inner:c,outer:u}=a;if((0,ht.isValidNumber)(t)&&(0,ht.isValidNumber)(r)&&c&&u){let{height:p,width:d}=c,{height:f,width:m}=u;if(f!==t||m!==r){let h=(0,ht.isValidNumber)(f)?f-p:0,x=(0,ht.isValidNumber)(m)?m-d:0;return{...a,outer:{height:t,width:r},inner:{height:t-h,width:r-x}}}}return a})},[t,r]);let l=(0,At.useCallback)(({clientWidth:a,clientHeight:c})=>{i(u=>{let{css:p,inner:d,outer:f}=u;return nu(c)&&nu(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 tu(o,Rm,l,!0),{containerRef:o,cssSize:s.css,outerSize:s.outer,innerSize:s.inner}};var Ot=require("@vuu-ui/vuu-utils"),vr=require("react"),{IDX:Lm}=Ot.metadataKeys,km=[],Cr=({selectionModel:n,onSelectionChange:e})=>{let t=(0,vr.useRef)(-1),r=(0,vr.useRef)(km);return(0,vr.useCallback)((s,i,l)=>{let{[Lm]:a}=s,{current:c}=t,{current:u}=r,d=((0,Ot.isRowSelected)(s)?Ot.deselectItem:Ot.selectItem)(n,u,a,i,l,c);r.current=d,t.current=a,e&&e(d)},[e,n])};var G=require("@vuu-ui/vuu-utils"),ru=require("react"),Im=100,ou=G.metadataKeys.count,Am=({serverDataType:n})=>n===void 0,Om=n=>{var e;if((0,G.isTypeDescriptor)(n.type))return(0,G.getCellRenderer)((e=n.type)==null?void 0:e.renderer)},su=(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"},Hm=["int","long","double"],iu=n=>n===void 0?void 0:Hm.includes(n)?"right":"left",Gs=n=>n.type==="columnSettings",Us=n=>n.type==="tableSettings",Nm=(n,e)=>{switch(e.type){case"init":return lu(e);case"moveColumn":return Fm(n,e);case"resizeColumn":return Bm(n,e);case"setTableSchema":return Km(n,e);case"hideColumns":return $m(n,e);case"showColumns":return Vm(n,e);case"pinColumn":return Wm(n,e);case"updateColumnProp":return zn(n,e);case"tableConfig":return au(n,e);default:return console.log(`unhandled action ${e.type}`),n}},Xs=(n,e)=>{let[t,r]=(0,ru.useReducer)(Nm,{tableConfig:n,dataSourceConfig:e},lu);return{columns:t.columns,dispatchColumnAction:r,headings:t.headings}};function lu({dataSourceConfig:n,tableConfig:e}){let t=e.columns.map(Qs(e)),r=t.some(G.isPinned)?(0,G.sortPinnedColumns)(t):t,o={columns:r,headings:(0,G.getTableHeadings)(r)};if(n){let{columns:s,...i}=n;return au(o,{type:"tableConfig",...i})}else return o}var zm=(n,e)=>e==="uppercase"?n.toUpperCase():e==="capitalize"?n[0].toUpperCase()+n.slice(1).toLowerCase():n,Qs=n=>(e,t)=>{let r=su(e,n.tableSchema),{columnDefaultWidth:o=Im,columnFormatHeader:s}=n,{align:i=iu(r),key:l,name:a,label:c=a,width:u=o,...p}=e,d={...p,align:i,CellRenderer:Om(e),label:zm(c,s),key:l!=null?l:t+ou,name:a,originalIdx:t,serverDataType:r,valueFormatter:(0,G.getValueFormatter)(e),width:u};return(0,G.isGroupColumn)(d)&&(d.columns=d.columns.map(f=>Qs(n)(f,f.key))),d};function Fm(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:(0,G.moveItem)(o,e,r)};return n}function $m(n,{columns:e}){return e.some(t=>t.hidden!==!0)?e.reduce((t,r)=>r.hidden!==!0?zn(t,{type:"updateColumnProp",column:r,hidden:!0}):t,n):n}function Vm(n,{columns:e}){return e.some(t=>t.hidden)?e.reduce((t,r)=>r.hidden?zn(t,{type:"updateColumnProp",column:r,hidden:!1}):t,n):n}function Bm(n,{column:e,phase:t,width:r}){let o="updateColumnProp",s=t!=="end";switch(t){case"begin":return zn(n,{type:o,column:e,resizing:s});case"end":return zn(n,{type:o,column:e,resizing:s,width:r});case"resize":return zn(n,{type:o,column:e,width:r});default:throw Error(`useTableModel.resizeColumn, invalid resizePhase ${t}`)}}function Km(n,{tableSchema:e}){let{columns:t}=n;if(t.some(Am)){let r=t.map(o=>{var i;let s=su(o,e);return{...o,align:(i=o.align)!=null?i:iu(s),serverDataType:s}});return{...n,columns:r,tableSchema:e}}else return{...n,tableSchema:e}}function Wm(n,e){let{columns:t}=n,{column:r,pin:o}=e;return t=(0,G.updateColumn)(t,r.name,{pin:o}),t=(0,G.sortPinnedColumns)(t),console.log({withPins:t}),{...n,columns:t}}function zn(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=(0,G.updateColumn)(t,o.name,c),{...n,columns:t}}function au(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=(0,G.getColumnName)(p),m=d+ou,h=(0,G.findColumn)(u.columns,f);return h?h.key===m?h:{...h,key:m}:Qs(n)({name:p},d)})}),l&&(u={...n,columns:(0,G.applyGroupByToColumns)(u.columns,o,t)}),c&&(u={...n,columns:(0,G.applySortToColumns)(u.columns,s)}),a?u={...n,columns:(0,G.applyFilterToColumns)(u.columns,r)}:u.columns.some(G.isFilteredColumn)&&(u={...n,columns:(0,G.stripFilterFromColumns)(u.columns)}),u}var Se=require("react"),cu=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]},_m=n=>{let{clientHeight:e,clientWidth:t,scrollHeight:r,scrollWidth:o}=n;return[o-t,r-e]},uu=({onAttach:n,onDetach:e})=>{let t=(0,Se.useRef)(null);return(0,Se.useCallback)(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])},du=({onHorizontalScroll:n,onVerticalScroll:e,viewport:t})=>{let r=(0,Se.useRef)(!1),o=(0,Se.useRef)({scrollTop:0,scrollLeft:0}),s=(0,Se.useRef)(null),i=(0,Se.useRef)(null),{maxScrollContainerScrollHorizontal:l,maxScrollContainerScrollVertical:a}=t,c=(0,Se.useCallback)(()=>{let{current:C}=i,{current:y}=s,{current:b}=r;if(b)r.current=!1;else if(C&&y){let[T,g]=cu(y),[w,D]=_m(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=(0,Se.useCallback)(()=>{let{current:C}=i,{current:y}=s,{current:b}=o;if(C&&y){let{scrollLeft:T,scrollTop:g}=C,[w,D]=cu(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=(0,Se.useCallback)(C=>{s.current=C,C.addEventListener("scroll",c,{passive:!0})},[c]),d=(0,Se.useCallback)(C=>{s.current=null,C.removeEventListener("scroll",c)},[c]),f=(0,Se.useCallback)(C=>{i.current=C,C.addEventListener("scroll",u,{passive:!0})},[u]),m=(0,Se.useCallback)(C=>{i.current=null,C.removeEventListener("scroll",u)},[u]),h=uu({onAttach:f,onDetach:m}),x=uu({onAttach:p,onDetach:d}),v=(0,Se.useCallback)(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}};var gt=require("react"),Co=require("@vuu-ui/vuu-utils"),Gm=15e5,Um={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},Xm=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}},Tr=({columns:n,headerHeight:e,headings:t,rowCount:r,rowHeight:o,size:s})=>{let i=(0,gt.useRef)(0),a=Math.min(r,Gm)*o,u=r*o-a,{pinnedWidthLeft:p,pinnedWidthRight:d,unpinnedWidth:f}=(0,gt.useMemo)(()=>Xm(n),[n]),[m,h]=(0,gt.useMemo)(()=>(0,Co.actualRowPositioning)(o),[o]),[x,v]=(0,gt.useMemo)(()=>u?(0,Co.virtualRowPositioning)(o,u,i):[m,h],[h,m,u,o]),C=(0,gt.useCallback)(y=>{i.current=y},[]);return(0,gt.useMemo)(()=>{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 Um},[s,t.length,p,f,d,a,e,o,v,x,C])};var wr=require("@vuu-ui/vuu-utils"),He=require("react"),pu=({columns:n,getRowAtPosition:e,setRange:t,viewportMeasurements:r})=>{let o=(0,He.useRef)(-1),{rowCount:s,contentWidth:i,maxScrollContainerScrollHorizontal:l}=r,a=i-l,c=(0,He.useRef)(0),[u,p]=(0,He.useMemo)(()=>(0,wr.getColumnsInViewport)(n,c.current,c.current+a),[a,n]),d=(0,He.useRef)(p);(0,He.useEffect)(()=>{m(u)},[u]);let[f,m]=(0,He.useState)(u),h=(0,He.useCallback)(v=>{c.current=v;let[C,y]=(0,wr.getColumnsInViewport)(n,v,v+a);(0,wr.itemsChanged)(f,C)&&(d.current=y,m(C))},[a,n,f]),x=(0,He.useCallback)(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 Qm=[],{KEY:Zm,IS_EXPANDED:fu,IS_LEAF:mu}=st.metadataKeys,gu=({config:n,dataSource:e,headerHeight:t,onConfigChange:r,onFeatureEnabled:o,onFeatureInvocation:s,onSelectionChange:i,renderBufferSize:l=0,rowHeight:a,selectionModel:c,...u})=>{var re,J;let[p,d]=(0,ne.useState)(e.size),f=(0,ne.useRef)(!1),m=(0,ne.useRef)();if(m.current=e,e===void 0)throw Error("no data source provided to Vuu Table");let h=xr(u),x=(0,ne.useCallback)(W=>{d(W)},[]),{columns:v,dispatchColumnAction:C,headings:y}=Xs(n,e.config),{getRowAtPosition:b,getRowOffset:T,setPctScrollTop:g,...w}=Tr({columns:v,headerHeight:t,headings:y,rowCount:p,rowHeight:a,size:h.innerSize}),D=(0,ne.useCallback)(({tableSchema:W})=>{W?(f.current=!0,C({type:"setTableSchema",tableSchema:W})):console.log("usbscription message with no schema")},[C]),P=(0,ne.useCallback)(W=>{e.select(W),i==null||i(W)},[e,i]),E=Cr({onSelectionChange:P,selectionModel:c}),{data:R,getSelectedRows:S,range:M,setRange:I}=Gc({dataSource:e,onFeatureEnabled:o,onFeatureInvocation:s,onSubscribed:D,onSizeChange:x,renderBufferSize:l,viewportRowCount:w.rowCount}),L=(0,ne.useRef)();L.current=R;let k=(0,ne.useCallback)(W=>{f.current=!0,console.log("onPersistentColumnOperation, dispatchColumnAction",{action:W}),C(W)},[C]),O=Qn({dataSource:e,onPersistentColumnOperation:k}),A=(0,ne.useCallback)((W,ee=!1,ce)=>{e&&(e.sort=(0,st.applySort)(e.sort,W,ee,ce))},[e]),N=(0,ne.useCallback)((W,ee,ce)=>{let te=v.find(be=>be.name===ee);if(te)W==="end"&&(f.current=!0),C({type:"resizeColumn",phase:W,column:te,width:ce});else throw Error(`useDataTable.handleColumnResize, column ${ee} not found`)},[v,C]),H=(0,ne.useCallback)((W,ee)=>{let ce=(0,st.isJsonGroup)(ee,W),te=W[Zm];if(W[fu]){if(e.closeTreeNode(te,!0),ce){let be=v.indexOf(ee);e.getRowsAtDepth(be+1).some(ye=>ye[fu]||ye[mu])||C({type:"hideColumns",columns:v.slice(be+2)})}}else if(e.openTreeNode(te),ce){let be=e.getChildRows(te),ke=v.indexOf(ee)+1,ye=[v[ke]];be.some(Ie=>Ie[mu])&&ye.push(v[ke+1]),ye.some(Ie=>Ie.hidden)&&C({type:"showColumns",columns:ye})}},[v,e,C]),{onVerticalScroll:B,onHorizontalScroll:z,columnsWithinViewport:K,virtualColSpan:_}=pu({columns:v,getRowAtPosition:b,setRange:I,viewportMeasurements:w}),q=(0,ne.useCallback)((W,ee)=>{g(ee),B(W)},[B,g]),{requestScroll:F,...$}=du({onHorizontalScroll:z,onVerticalScroll:q,viewport:w,viewportHeight:((J=(re=h.innerSize)==null?void 0:re.height)!=null?J:0)-t}),Q=qc({columnCount:v.length,containerRef:h.containerRef,data:R,requestScroll:F,rowCount:e==null?void 0:e.size,viewportRange:M}),ge=(0,ne.useCallback)(W=>{W?e&&e.groupBy.includes(W.name)&&(e.groupBy=e.groupBy.filter(ee=>ee!==W.name)):e.groupBy=[]},[e]),tt=(0,ne.useCallback)((W,ee)=>{let ce=e.columns[W],te=(0,st.moveItem)(e.columns,ce,ee);te!==e.columns&&(e.columns=te,C({type:"tableConfig",columns:te}))},[e,C]),U=Uc({onDrop:tt});(0,ne.useEffect)(()=>{m.current&&(f.current=!0,C({type:"init",tableConfig:n,dataSourceConfig:m.current.config}))},[n,C]),(0,ne.useEffect)(()=>{e.on("config",(W,ee)=>{f.current=!0,C({type:"tableConfig",...W,confirmed:ee})})},[e,C]),(0,ne.useMemo)(()=>{f.current&&(r==null||r({...n,columns:v}),f.current=!1)},[v,n,r]);let[Z]=(0,hu.useContextMenu)(),se=(0,ne.useCallback)(W=>{var ye;let{current:ee}=L,{current:ce}=m,te=W.target,be=te==null?void 0:te.closest("div[role='cell']"),ke=te==null?void 0:te.closest(".vuuTableRow");if(be&&ke&&ee&&ce){let{columns:Ie,selectedRowsCount:Nt}=ce,lt=(0,st.buildColumnMap)(Ie),Gn=parseInt((ye=ke.ariaRowIndex)!=null?ye:"-1"),on=Array.from(ke.childNodes).indexOf(be),Ke=ee.find(([Un])=>Un===Gn),sn=Ie[on];Z(W,"grid",{columnMap:lt,columnName:sn,row:Ke,selectedRows:Nt===0?Qm:S(),viewport:e==null?void 0:e.viewport})}},[e==null?void 0:e.viewport,S,Z]);return{columns:v,columnsWithinViewport:K,containerMeasurements:h,containerProps:Q,data:R,dispatchColumnAction:C,getRowOffset:T,handleContextMenuAction:O,headings:y,onColumnResize:N,onContextMenu:se,onRemoveColumnFromGroupBy:ge,onRowClick:E,onSort:A,onToggleGroup:H,virtualColSpan:_,scrollProps:$,rowCount:p,viewportMeasurements:w,...U}};var yu=V(require("classnames"));var xu=require("@vuu-ui/vuu-utils"),bt=require("react/jsx-runtime"),en="vuuTable",Ym=({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=(0,To.useIdMemo)(i),{containerMeasurements:{containerRef:b,innerSize:T,outerSize:g},containerProps:w,dispatchColumnAction:D,draggable:P,draggedItemIndex:E,handleContextMenuAction:R,scrollProps:S,viewportMeasurements:M,...I}=gu({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=(0,yu.default)(en,e,{[`${en}-zebra`]:v,[`${en}-loading`]:(0,xu.isDataLoading)(I.columns)});return(0,bt.jsx)(bu.ContextMenuProvider,{menuActionHandler:R,menuBuilder:Xn(r),children:(0,bt.jsxs)("div",{...C,...w,className:k,id:y,ref:b,style:L,tabIndex:-1,children:[T?(0,bt.jsx)("div",{className:`${en}-scrollbarContainer`,ref:S.scrollbarContainerRef,children:(0,bt.jsx)("div",{className:`${en}-scrollbarContent`})}):null,T?(0,bt.jsxs)("div",{className:`${en}-contentContainer`,ref:S.contentContainerRef,children:[(0,bt.jsx)(Mc,{...I,headerHeight:o,tableId:y}),P]}):null,n&&T?(0,bt.jsx)(To.Button,{className:`${en}-settings`,"data-icon":"settings",onClick:p,variant:"secondary"}):null]})})};var vu=V(require("classnames")),$n=require("@vuu-ui/vuu-utils");var Fn=require("react/jsx-runtime"),Sr="vuuJsonCell",{IS_EXPANDED:jm,KEY:qm}=$n.metadataKeys,Jm=n=>{let e=n.lastIndexOf("|");return e===-1?"":n.slice(e+1)},eh=({column:n,row:e})=>{let{key:t}=n,r=e[t],o=!1;(0,$n.isJsonAttribute)(r)&&(r=r.slice(0,-1),o=!0);let s=Jm(e[qm]),i=(0,vu.default)({[`${Sr}-name`]:s===r,[`${Sr}-value`]:s!==r,[`${Sr}-group`]:o});if(o){let l=e[jm]?"minus-box":"plus-box";return(0,Fn.jsxs)("span",{className:i,children:[(0,Fn.jsx)("span",{className:`${Sr}-value`,children:r}),(0,Fn.jsx)("span",{className:`${Sr}-toggle`,"data-icon":l})]})}else return r?(0,Fn.jsx)("span",{className:i,children:r}):null};(0,$n.registerComponent)("json",eh,"cell-renderer",{});var Yu=require("@vuu-ui/vuu-popups"),ju=require("@vuu-ui/vuu-utils"),qu=require("react");var wo=require("react");var Cu=require("@vuu-ui/vuu-utils"),Tu=V(require("classnames")),wu=require("react"),Vn=(n,e,t)=>(0,wu.useMemo)(()=>{let r=(0,Tu.default)(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=(0,Cu.getColumnStyle)(n);return{className:r,style:o}},[n,e,t]);var Su=require("@vuu-ui/vuu-popups"),Eu=V(require("classnames")),tn=require("react");var Du=require("react/jsx-runtime"),th=n=>{if(n){let{bottom:e,left:t}=n.getBoundingClientRect();return{x:t,y:e+6}}},Ru=({className:n,column:e,...t})=>{let r=(0,tn.useRef)(null),[o,s]=(0,tn.useState)(!1),[i]=(0,Su.useContextMenu)(),l=(0,tn.useCallback)(()=>{s(!1)},[]),a=(0,tn.useCallback)(c=>{s(!0),i(c,"column-menu",{column:e,ContextMenuProps:{onClose:l,position:th(r.current)}})},[e,l,i]);return(0,Du.jsx)("span",{...t,className:(0,Eu.default)("vuuTable-columnMenu",n,{"vuuTable-columnMenu-open":o}),"data-icon":"more-vert",onClick:a,ref:r})};var nn=require("react/jsx-runtime"),Mu=({classBase:n,column:e,onClick:t,onResize:r,idx:o})=>{let s=(0,wo.useRef)(null),{isResizing:i,...l}=Zt({column:e,onResize:r,rootRef:s}),a=`${n}-col-header`,c=(0,wo.useCallback)(d=>!i&&(t==null?void 0:t(d)),[i,t]),{className:u,style:p}=Vn(e,a,!0);return(0,nn.jsxs)("div",{className:u,"data-idx":o,onClick:c,ref:s,role:"cell",style:p,children:[(0,nn.jsx)(Ru,{column:e}),(0,nn.jsx)("div",{className:`${a}-label`,children:e.name}),(0,nn.jsx)(po,{sorted:e.sorted}),e.resizeable!==!1?(0,nn.jsx)(zt,{...l}):null]})};var Kn=require("@vuu-ui/vuu-utils"),Au=V(require("classnames")),Ro=require("react");var Lu=require("react/jsx-runtime"),Pu=({column:n,row:e})=>{let{className:t,style:r}=Vn(n,"vuuTableNextCell");return(0,Lu.jsx)("div",{className:t,role:"cell",style:r,children:e[n.key]})};var So=require("@vuu-ui/vuu-utils"),ku=require("react");var Bn=require("react/jsx-runtime"),{IS_LEAF:nh}=So.metadataKeys,Iu=({column:n,onClick:e,row:t})=>{let{columns:r}=n,[o,s]=(0,So.getGroupValueAndOffset)(r,t),{className:i,style:l}=Vn(n,"vuuTable2-groupCell"),a=(0,ku.useCallback)(p=>{e==null||e(p,n)},[n,e]),c=t[nh],u=Array(s).fill(0).map((p,d)=>(0,Bn.jsx)("span",{className:"vuuTable2-groupCell-spacer"},d));return(0,Bn.jsxs)("div",{className:i,role:"cell",style:l,onClick:c?void 0:a,children:[u,c?null:(0,Bn.jsx)("span",{className:"vuuTable2-groupCell-toggle","data-icon":"vuu-triangle-right"}),(0,Bn.jsx)("span",{children:o})]})};var Eo=require("react/jsx-runtime"),Ou=require("react"),{IDX:rh,IS_EXPANDED:oh,SELECTED:sh}=Kn.metadataKeys,Ht="vuuTableNextRow",Zs=(0,Ro.memo)(({className:n,columnMap:e,columns:t,row:r,offset:o,onClick:s,onToggleGroup:i,...l})=>{let{[rh]:a,[oh]:c,[sh]:u}=r,p=(0,Ro.useCallback)(v=>{let C=v.shiftKey,y=v.ctrlKey||v.metaKey;s==null||s(r,C,y)},[s,r]),{True:d,First:f,Last:m}=Kn.RowSelected,h=(0,Au.default)(Ht,n,{[`${Ht}-even`]:a%2===0,[`${Ht}-expanded`]:c,[`${Ht}-selected`]:u&d,[`${Ht}-selectedStart`]:u&f,[`${Ht}-selectedEnd`]:u&m}),x=typeof o=="number"?{transform:`translate3d(0px, ${o}px, 0px)`}:void 0;return(0,Ou.createElement)("div",{...l,key:`row-${r[0]}`,role:"row",className:h,onClick:p,style:x},(0,Eo.jsx)("span",{className:`${Ht}-selectionDecorator vuuStickyLeft`}),t.map(v=>{let y=(0,Kn.isGroupColumn)(v)?Iu:Pu;return(0,Eo.jsx)(y,{column:v,row:r},v.key)}),(0,Eo.jsx)("span",{className:`${Ht}-selectionDecorator vuuStickyRight`}))});Zs.displayName="Row";var Qu=require("@vuu-ui/vuu-popups"),rn=require("@vuu-ui/vuu-utils"),Re=require("react");var Wn=require("react"),Hu=({dataSource:n,initialRange:e})=>{let[t,r]=(0,Wn.useState)([]);(0,Wn.useMemo)(()=>{n==null||n.subscribe({range:e},s=>{s.type==="viewport-update"&&s.rows&&r(s.rows)})},[n,e]);let o=(0,Wn.useCallback)(s=>{n.range=s},[n]);return{data:t,setRange:o}};var Do=require("react"),Nu=n=>{let e=(0,Do.useRef)(n);return(0,Do.useMemo)(()=>e.current,[])};var X=require("@vuu-ui/vuu-utils"),zu=require("react"),{info:Ys}=(0,X.logger)("useTableModel"),ih=100,Fu=X.metadataKeys.count,lh=({serverDataType:n})=>n===void 0,ah=n=>{var e;if((0,X.isTypeDescriptor)(n.type))return(0,X.getCellRenderer)((e=n.type)==null?void 0:e.renderer)},ch=(n,e)=>{var r;let t=e.columns.find(({name:o})=>o===n.name);return t?t.serverDataType:(r=n.serverDataType)!=null?r:"string"},uh=["int","long","double"],$u=n=>n===void 0?void 0:uh.includes(n)?"right":"left",dh=(n,e)=>{switch(Ys==null||Ys(`GridModelReducer ${e.type}`),e.type){case"init":return Bu(e);case"moveColumn":return fh(n,e);case"resizeColumn":return gh(n,e);case"setTableSchema":return bh(n,e);case"hideColumns":return mh(n,e);case"showColumns":return hh(n,e);case"pinColumn":return yh(n,e);case"updateColumnProp":return Er(n,e);case"tableConfig":return Wu(n,e);default:return console.log(`unhandled action ${e.type}`),n}},Vu=(n,e)=>{let[t,r]=(0,zu.useReducer)(dh,{tableConfig:n,dataSourceConfig:e},Bu);return{columns:t.columns,dispatchColumnAction:r,headings:t.headings}};function Bu({dataSourceConfig:n,tableConfig:e}){let t=e.columns.map(Ku(e)),r=t.some(X.isPinned)?(0,X.sortPinnedColumns)(t):t,o={columns:r,headings:(0,X.getTableHeadings)(r)};if(n){let{columns:s,...i}=n;return Wu(o,{type:"tableConfig",...i})}else return o}var ph=(n,e)=>e==="uppercase"?n.toUpperCase():e==="capitalize"?n[0].toUpperCase()+n.slice(1).toLowerCase():n,Ku=n=>(e,t)=>{let{columnDefaultWidth:r=ih,columnFormatHeader:o}=n,{align:s=$u(e.serverDataType),key:i,name:l,label:a=l,width:c=r,...u}=e,p={...u,align:s,CellRenderer:ah(e),label:ph(a,o),key:i!=null?i:t+Fu,name:l,originalIdx:t,valueFormatter:(0,X.getValueFormatter)(e),width:c};return(0,X.isGroupColumn)(p)&&(p.columns=p.columns.map(d=>Ku(n)(d,d.key))),p};function fh(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:ui(o,s,r)}}return n}function mh(n,{columns:e}){return e.some(t=>t.hidden!==!0)?e.reduce((t,r)=>r.hidden!==!0?Er(t,{type:"updateColumnProp",column:r,hidden:!0}):t,n):n}function hh(n,{columns:e}){return e.some(t=>t.hidden)?e.reduce((t,r)=>r.hidden?Er(t,{type:"updateColumnProp",column:r,hidden:!1}):t,n):n}function gh(n,{column:e,phase:t,width:r}){let o="updateColumnProp",s=t!=="end";switch(t){case"begin":case"end":return Er(n,{type:o,column:e,resizing:s});case"resize":return Er(n,{type:o,column:e,width:r});default:throw Error(`useTableModel.resizeColumn, invalid resizePhase ${t}`)}}function bh(n,{tableSchema:e}){let{columns:t}=n;if(t.some(lh)){let r=t.map(o=>{var i;let s=ch(o,e);return{...o,align:(i=o.align)!=null?i:$u(s),serverDataType:s}});return{...n,columns:r}}else return n}function yh(n,e){let{columns:t}=n,{column:r,pin:o}=e,s=t.find(i=>i.name===r.name);return s?(t=_n(t,{...s,pin:o}),t=(0,X.sortPinnedColumns)(t),{...n,columns:t}):n}function Er(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=_n(t,{...c,align:r})),typeof i=="string"&&(t=_n(t,{...c,label:i})),typeof l=="boolean"&&(t=_n(t,{...c,resizing:l})),typeof s=="boolean"&&(t=_n(t,{...c,hidden:s})),typeof a=="number"&&(t=_n(t,{...c,width:a}))),{...n,columns:t}}function Wu(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=(0,X.getColumnName)(p),m=d+Fu,h=(0,X.findColumn)(u.columns,f);if(h)return h.key===m?h:{...h,key:m};throw Error(`useTableModel column ${p} not found`)})}),l&&(u={...n,columns:(0,X.applyGroupByToColumns)(u.columns,o,t)}),c&&(u={...n,columns:(0,X.applySortToColumns)(u.columns,s)}),a?u={...n,columns:(0,X.applyFilterToColumns)(u.columns,r)}:u.columns.some(X.isFilteredColumn)&&(u={...n,columns:(0,X.stripFilterFromColumns)(u.columns)}),u}function _n(n,e){return n.map(t=>t.name===e.name?e:t)}var Ee=require("react"),_u=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]},Gu=({onAttach:n,onDetach:e})=>{let t=(0,Ee.useRef)(null);return(0,Ee.useCallback)(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])},Uu=({maxScrollLeft:n,maxScrollTop:e,onHorizontalScroll:t,onVerticalScroll:r})=>{let o=(0,Ee.useRef)(!1),s=(0,Ee.useRef)({scrollTop:0,scrollLeft:0}),i=(0,Ee.useRef)(null),l=(0,Ee.useRef)(null),a=(0,Ee.useCallback)(()=>{let{current:v}=l,{current:C}=i,{current:y}=o;if(y)o.current=!1;else if(v&&C){let[b,T]=_u(C),g=Math.round(b*n),w=Math.round(T*e);v.scrollTo({left:g,top:w,behavior:"auto"})}},[n,e]),c=(0,Ee.useCallback)(()=>{let{current:v}=l,{current:C}=i,{current:y}=s;if(v&&C){let{scrollLeft:b,scrollTop:T}=v,[g,w]=_u(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=(0,Ee.useCallback)(v=>{i.current=v,v.addEventListener("scroll",a,{passive:!0})},[a]),p=(0,Ee.useCallback)(v=>{i.current=null,v.removeEventListener("scroll",a)},[a]),d=(0,Ee.useCallback)(v=>{l.current=v,v.addEventListener("scroll",c,{passive:!0})},[c]),f=(0,Ee.useCallback)(v=>{l.current=null,v.removeEventListener("scroll",c)},[c]),m=Gu({onAttach:d,onDetach:f}),h=Gu({onAttach:u,onDetach:p}),x=(0,Ee.useCallback)(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}};var Mo=require("react"),Xu=({columns:n,getRowAtPosition:e,setRange:t,viewportMeasurements:r})=>{let o=(0,Mo.useRef)(-1),{contentWidth:s,rowCount:i}=r;return{onVerticalScroll:(0,Mo.useCallback)(a=>{let c=e(a);c!==o.current&&(o.current=c,t({from:c,to:c+i}))},[e,t,i])}};var Zu=({config:n,dataSource:e,headerHeight:t,onConfigChange:r,onFeatureEnabled:o,onFeatureInvocation:s,onSelectionChange:i,rowHeight:l,selectionModel:a,...c})=>{let[u]=(0,Re.useState)(e.size),p=$e();if(console.log({dispatchLayoutAction:p.toString()}),e===void 0)throw Error("no data source provided to Vuu Table");let d=(0,Re.useMemo)(()=>Xn(e),[e]),{containerRef:f,...m}=xr(c),{columns:h,dispatchColumnAction:x,headings:v}=Vu(n,e.config),C=(0,Re.useMemo)(()=>(0,rn.buildColumnMap)(n.columns.map(z=>z.name)),[n.columns]);(0,Re.useEffect)(()=>{e.on("config",(z,K)=>{x({type:"tableConfig",...z,confirmed:K})})},[e,x]);let{getRowAtPosition:y,getRowOffset:b,setPctScrollTop:T,...g}=Tr({columns:h,headerHeight:t,headings:v,rowCount:u,rowHeight:l,size:m.innerSize});console.log(`useTable ${g.maxScrollContainerScrollHorizontal}, ${g.maxScrollContainerScrollVertical}`);let w=Nu({from:0,to:g.rowCount+1}),{data:D,setRange:P}=Hu({dataSource:e,initialRange:w});(0,Re.useMemo)(()=>{let{range:{from:z,to:K}}=e;g.rowCount!==K-1-z&&(e.range={from:z,to:z+g.rowCount+1})},[e,g.rowCount]);let E=(0,Re.useCallback)(z=>{Gs(z)?p({type:"set-props",path:"#context-panel",props:{expanded:!0,context:"column-settings",column:z.column,title:"Column Settings"}}):Us(z)?p({type:"set-props",path:"#context-panel",props:{expanded:!0,context:"table-settings",title:"DataGrid Settings"}}):x(z)},[x,p]),R=Qn({dataSource:e,onPersistentColumnOperation:E}),{onVerticalScroll:S}=Xu({columns:h,getRowAtPosition:y,setRange:P,viewportMeasurements:g}),M=(0,Re.useCallback)(z=>{S(z)},[S]),{requestScroll:I,...L}=Uu({maxScrollLeft:g.maxScrollContainerScrollHorizontal,maxScrollTop:g.maxScrollContainerScrollVertical,onVerticalScroll:M}),[k]=(0,Qu.useContextMenu)(),O=(0,Re.useCallback)(z=>{let K=z.target,_=K==null?void 0:K.closest("div[role='cell']"),q=K==null?void 0:K.closest("div[role='row']");if(_&&q){let F=(0,rn.buildColumnMap)(h),$=Array.from(q.childNodes).indexOf(_),Q=h[$];k(z,"grid",{columnMap:F,columnName:Q})}},[h,k]),A=(0,Re.useCallback)((z,K=!1,_)=>{e&&(e.sort=(0,rn.applySort)(e.sort,z,K,_))},[e]),N=(0,Re.useCallback)(z=>{var Q;let _=z.target.closest(".TableNext-col-header"),q=parseInt((Q=_==null?void 0:_.dataset.idx)!=null?Q:"-1"),F=(0,rn.visibleColumnAtIndex)(h,q),$=z.shiftKey;F&&A(F,$)},[h,A]),H=(0,Re.useCallback)(z=>{e.select(z),i==null||i(z)},[e,i]),B=Cr({onSelectionChange:H,selectionModel:a});return{columnMap:C,columns:h,containerRef:f,containerMeasurements:m,data:D,handleContextMenuAction:R,menuBuilder:d,onContextMenu:O,onHeaderClick:N,onRowClick:B,scrollProps:L,viewportMeasurements:g}};var Le=require("react/jsx-runtime"),it="vuuTableNext",{IDX:xh,RENDER_IDX:vh}=ju.metadataKeys,Ju=({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}=Zu({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;"),(0,qu.useEffect)(()=>{console.log("%cTableNext actual render","background-color:red;color: white;font-weight:bold;")}),(0,Le.jsx)(Yu.ContextMenuProvider,{menuActionHandler:w,menuBuilder:E,children:I?(0,Le.jsx)("div",{...x,className:it,style:L(),ref:T}):(0,Le.jsxs)("div",{...x,className:it,style:L(),ref:T,children:[(0,Le.jsx)("div",{className:`${it}-scrollbarContainer`,ref:R.scrollbarContainerRef,children:(0,Le.jsx)("div",{className:`${it}-scrollbarContent`})}),(0,Le.jsx)("div",{className:`${it}-contentContainer`,ref:R.contentContainerRef,children:(0,Le.jsxs)("div",{...M,className:`${it}-table`,children:[(0,Le.jsx)("div",{className:`${it}-col-headings`,children:(0,Le.jsx)("div",{className:`${it}-col-headers`,role:"row",children:C.map((k,O)=>(0,Le.jsx)(Mu,{classBase:it,column:k,idx:O,onClick:D},k.name))})}),(0,Le.jsx)("div",{className:`${it}-body`,children:g.map(k=>(0,Le.jsx)(Zs,{columnMap:v,columns:C,onClick:P,row:k,offset:d*k[xh]+r},k[vh]))})]})})]})})};
|
|
21
|
+
`);u===null?console.log("[useViewportTracking], is this virtualised ? we're going to have to know rowHeight"):l(u)}},[e,t,l]),(0,Ke.useEffect)(()=>{},[n]);let c=(0,Ke.useCallback)(({height:u,scrollHeight:d})=>{s.current=u,i.current=d},[]);return hn(t,Ug,c,!0),r};var qo=require("react");var ot=require("react");var cd=({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)},ud=t=>t.childNodes!==void 0;var Oi=t=>t.header===!0,Xg=new Set([".","/"]),dd=(t,e)=>e.startsWith(t.id)?Xg.has(e.charAt(t.id.length)):!1,Tn=(t,e)=>{for(let n of t){if(n.id===e)return n;if(dd(n,e))return Tn(n.childNodes,e)}},cs=(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},us=(t,e,n)=>{let o;return t.map(s=>s.id===e?{...s,...n}:dd(s,e)?(o=us(s.childNodes,e,n),{...s,childNodes:o}):s)};var yd=require("@salt-ds/core");function Qg(t,...e){let n=new Set(t);for(let o of e)for(let r of o)n.add(r);return n}var Ni="ArrowUp",pd="ArrowDown",so="ArrowLeft";var md="ArrowRight",ds="Enter";var jg="Delete",Yg=new Set([ds,jg]),Zg=new Set(["Tab"]),qg=new Set(["ArrowRight","ArrowLeft"]),fd=new Set(["Home","End","ArrowDown","ArrowUp"]),hd=new Set(["Home","End","ArrowRight","ArrowLeft"]),Jg=new Set(["F1","F2","F3","F4","F5","F6","F7","F8","F9","F10","F11","F12"]),uk=Qg(Yg,hd,fd,qg,Jg,Zg);var gd=({key:t},e="vertical")=>(e==="vertical"?fd:hd).has(t);function bd(t,e,n){return e===Ni||e===so?n>0?n-1:n:n===null?0:n===t-1?n:n+1}var eb=t=>!t.header&&!t.childNodes,tb=t=>eb(t)||t.expanded!==void 0,xd=({defaultHighlightedIdx:t=-1,highlightedIdx:e,treeNodes:n,onHighlight:o,onKeyboardNavigation:r,selected:s=[]})=>{let{bwd:i,fwd:l}=(0,ot.useMemo)(()=>({bwd:Ni,fwd:pd}),[]),[a,c,u]=(0,yd.useControlled)({controlled:e,default:t,name:"highlightedIdx"}),d=(0,ot.useCallback)(b=>{o==null||o(b),c(b)},[o,c]),p=(0,ot.useCallback)((b=l,T=b===l?-1:n.length)=>{let x=bd(n.length,b,T);for(;x!==-1&&(b===l&&x<n.length||b===i&&x>0)&&!tb(n[x]);)x=bd(n.length,b,x);return x},[i,l,n]),m=(0,ot.useRef)(!0),f=(0,ot.useRef)(!1),h=b=>f.current=b,g=(0,ot.useCallback)(()=>{if(f.current)f.current=!1;else if(s.length>0){let b=Tn(n,s[0]);if(b){let T=cs(n,b);d(T)}}else d(p())},[n,p,s,d]),y=(0,ot.useCallback)(b=>{let T=p(b.key,a);T!==a&&(d(T),r==null||r(b,T))},[a,p,r,d]),v=(0,ot.useCallback)(b=>{n.length>0&&gd(b,"vertical")&&(b.preventDefault(),b.stopPropagation(),m.current=!0,y(b))},[n,y]),C=(0,ot.useMemo)(()=>({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}};var io=require("react");var ps=(t,e=[],n={value:0})=>{let o=!1;for(let r of t)o&&!Oi(r)||(e[n.value]=r,n.value+=1,o=!1,Oi(r)&&r.expanded===!1?o=!0:ud(r)&&zi(r)&&ps(r.childNodes,e,n));return e},Cd=t=>{let e=(0,io.useRef)(t),n=(0,io.useRef)(t),o=(0,io.useRef)(ps(t)),[,r]=(0,io.useState)({});t!==e.current&&(e.current=t,n.current=t,o.current=ps(t));let s=i=>{n.current=i,o.current=ps(i),r({})};return{data:n.current,indexPositions:o.current,setData:s}};var Lt=require("react");var nb={},ob=t=>t&&t.hasAttribute("aria-expanded"),vd=({collapsibleHeaders:t,highlightedIdx:e,treeNodes:n,setVisibleData:o,source:r})=>{let s=(0,Lt.useRef)(r),i=(0,Lt.useRef)(s.current),l=(0,Lt.useCallback)(f=>{o(i.current=f)},[o]),a=(0,Lt.useCallback)((f,{id:h})=>us(f,h,{expanded:!0}),[]),c=(0,Lt.useCallback)((f,{id:h})=>us(f,h,{expanded:!1}),[]),u=(0,Lt.useCallback)(f=>{if(f.key===md||f.key===ds){let h=n[e];h&&h.expanded===!1&&(f.preventDefault(),l(a(i.current,h)))}if(f.key===so||f.key===ds){let h=n[e];h&&h.expanded&&(f.preventDefault(),l(c(i.current,h)))}},[c,a,e,n,l]),d=t?{onKeyDown:u}:nb,m={onClick:(0,Lt.useCallback)(f=>{let h=Ai(f.target);if(ob(h)){f.stopPropagation(),f.preventDefault();let g=Tn(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}};var Td=require("react");var Sd=({highlightedIdx:t,hiliteItemAtIndex:e,indexPositions:n,source:o})=>({listHandlers:{onKeyDown:(0,Td.useCallback)(i=>{if(i.key===so){let l=n[t],a=cd(l);if(a){i.preventDefault();let c=Tn(o,a);if(c){let u=cs(n,c);u!==void 0&&e(u)}}}},[t,e,n,o])}});var rb=[],wd=({defaultSelected:t,sourceWithIds:e,onChange:n,onHighlight:o,selected:r,selection:s})=>{let i=(0,qo.useRef)(rb),l=Cd(e),a=(C,b)=>{var T,x;(x=(T=p.listHandlers).onKeyboardNavigation)==null||x.call(T,C,b)},{highlightedIdx:c,...u}=xd({treeNodes:l.indexPositions,onHighlight:o,onKeyboardNavigation:a,selected:i.current}),d=vd({collapsibleHeaders:!0,highlightedIdx:c,treeNodes:l.indexPositions,setVisibleData:l.setData,source:l.data}),p=ld({defaultSelected:t,highlightedIdx:c,treeNodes:l.indexPositions,onChange:n,selected:r,selection:s}),m=Sd({source:l.data,highlightedIdx:c,hiliteItemAtIndex:u.hiliteItemAtIndex,indexPositions:l.indexPositions}),f=(0,qo.useCallback)(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=(0,qo.useCallback)(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}};var Qe=require("react/jsx-runtime"),Rd=require("react"),jt="vuuTree",zi=t=>t.expanded===!0,Ed=({children:t,idx:e,...n})=>(0,Qe.jsx)("li",{...n,children:t}),sb=(0,hs.forwardRef)(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=(0,fs.useIdMemo)(s),h=(0,hs.useRef)(null),[,g,y]=nd(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}=wd({defaultSelected:o,groupSelection:r,onChange:v,onHighlight:i,selected:c,selection:u,sourceWithIds:g});ad(h,b);let I={...{onMouseEnter:P=>{let k=P.target,N=ed(k);T(N)}},...w,role:"treeitem"},S=id(r);function D(P,k,N){P.push((0,Qe.jsxs)(Ed,{...I,...ib(k,N,b,R,C),children:[k.icon?(0,Qe.jsx)("span",{className:`${jt}Node-icon`,"data-icon":k.icon}):null,(0,Qe.jsx)("span",{children:k.label})]})),N.value+=1}function L(P,k,N,O,F){let{value:$}=N;N.value+=1,P.push((0,Rd.createElement)(Ed,{...w,"aria-expanded":k.expanded,"aria-level":k.level,"aria-selected":R.includes(O)||void 0,className:(0,ms.default)(`${jt}Node`,{focusVisible:C===$,[`${jt}Node-toggle`]:!S}),"data-idx":$,"data-highlighted":$===b||void 0,"data-selectable":!0,id:O,key:`header-${$}`},S?(0,Qe.jsxs)("div",{className:`${jt}Node-label`,children:[(0,Qe.jsx)("span",{className:`${jt}Node-toggle`}),F]}):(0,Qe.jsxs)("div",{className:`${jt}Node-label`,children:[k.icon?(0,Qe.jsx)("span",{className:`${jt}Node-icon`,"data-icon":k.icon}):null,(0,Qe.jsx)("span",{children:F})]}),(0,Qe.jsx)("ul",{role:"group",children:zi(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(0,Qe.jsx)("ul",{...p,...x,className:(0,ms.default)(jt,n),id:`Tree-${f}`,ref:(0,fs.useForkRef)(h,m),role:"tree",tabIndex:0,children:A(M)})}),ib=(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:(0,ms.default)("vuuTreeNode",s,{focusVisible:r===e.value})});sb.displayName="Tree";var Md=_(require("classnames")),kt=require("react");var Jo=require("react/jsx-runtime"),{KEY:Dd}=gs.metadataKeys,Fi=(0,kt.memo)(({className:t,column:e,columnMap:n,onClick:o,row:r})=>{let s=(0,kt.useRef)(null),{align:i,CellRenderer:l,key:a,pin:c,editable:u,resizing:d,valueFormatter:p}=e,[m,f]=(0,kt.useState)(!1),h=p(r[a]),[g,y]=(0,kt.useState)(h),v=()=>{var M;(M=s.current)==null||M.focus()},C=M=>{M.key==="Enter"&&f(!0)},b=(0,kt.useCallback)(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=(0,Md.default)(t,{vuuAlignRight:i==="right",vuuPinFloating:c==="floating",vuuPinLeft:c==="left",vuuPinRight:c==="right","vuuTableCell-resizing":d})||void 0,R=(0,gs.getColumnStyle)(e);return u?(0,Jo.jsx)("div",{className:w,"data-editable":!0,role:"cell",style:R,onKeyDown:C,children:(0,Jo.jsx)(Vn,{editing:m,value:g,onChange:y,onMouseDownCapture:v,onEnterEditMode:T,onExitEditMode:x,onKeyDown:C,ref:s,tabIndex:0},"title")}):(0,Jo.jsx)("div",{className:w,role:"cell",style:R,onClick:b,children:l?(0,Jo.jsx)(l,{column:e,columnMap:n,row:r}):h})},lb);Fi.displayName="TableCell";function lb(t,e){return t.column===e.column&&t.onClick===e.onClick&&t.row[Dd]===e.row[Dd]&&t.row[t.column.key]===e.row[e.column.key]}var ao=require("@vuu-ui/vuu-utils"),Id=require("react");var lo=require("react/jsx-runtime"),{IS_LEAF:ab}=ao.metadataKeys,Pd=({column:t,onClick:e,row:n})=>{let{columns:o}=t,[r,s]=(0,ao.getGroupValueAndOffset)(o,n),i=(0,Id.useCallback)(u=>{e==null||e(u,t)},[t,e]),l=(0,ao.getColumnStyle)(t),a=n[ab],c=Array(s).fill(0).map((u,d)=>(0,lo.jsx)("span",{className:"vuuTableGroupCell-spacer"},d));return(0,lo.jsxs)("div",{className:"vuuTableGroupCell vuuPinLeft",onClick:a?void 0:i,role:"cell",style:l,children:[c,a?null:(0,lo.jsx)("span",{className:"vuuTableGroupCell-toggle","data-icon":"triangle-right"}),(0,lo.jsx)("span",{children:r})]})};var tr=require("react/jsx-runtime"),{IDX:cb,IS_EXPANDED:ub,SELECTED:db}=mt.metadataKeys,bs="vuuTableRow",kd=(0,er.memo)(function({columnMap:e,columns:n,offset:o,onClick:r,onToggleGroup:s,virtualColSpan:i=0,row:l}){let{[cb]:a,[ub]:c,[db]:u}=l,d=(0,Ld.default)(bs,{[`${bs}-even`]:a%2===0,[`${bs}-expanded`]:c,[`${bs}-preSelected`]:u===2}),p=(0,er.useCallback)(f=>{let h=f.shiftKey,g=f.ctrlKey||f.metaKey;r==null||r(l,h,g)},[r,l]),m=(0,er.useCallback)((f,h)=>{((0,mt.isGroupColumn)(h)||(0,mt.isJsonGroup)(h,l))&&(f.stopPropagation(),s==null||s(l,h))},[s,l]);return(0,tr.jsxs)("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?(0,tr.jsx)("div",{role:"cell",style:{width:i}}):null,n.filter(mt.notHidden).map(f=>{let h=(0,mt.isGroupColumn)(f),g=(0,mt.isJsonColumn)(f);return(0,tr.jsx)(h?Pd:Fi,{column:f,columnMap:e,onClick:h||g?m:void 0,row:l},f.name)})]})});var Vi=_(require("classnames")),Ad=require("react");var Sn=require("react"),nr=({column:t,onResize:e,rootRef:n})=>{let o=(0,Sn.useRef)(0),r=(0,Sn.useRef)(!1),{name:s}=t,i=(0,Sn.useCallback)(()=>{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=(0,Sn.useCallback)((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=(0,Sn.useCallback)(()=>{e&&(e("end",s,o.current),setTimeout(()=>{r.current=!1},100))},[s,e]);return{isResizing:r.current,onDrag:l,onDragStart:i,onDragEnd:a}};var ft=require("react/jsx-runtime"),Yt="vuuTable-groupHeaderCell",Hd=({column:t,onClick:e,...n})=>(0,ft.jsx)("span",{...n,className:`${Yt}-close`,"data-icon":"close-circle",onClick:()=>e==null?void 0:e(t)}),pb=t=>{let{children:e,column:n,className:o}=t;return(0,ft.jsxs)("div",{className:(0,Vi.default)(`${Yt}-col`,o),role:"columnheader",children:[(0,ft.jsx)("span",{className:`${Yt}-label`,children:n.name}),e]})},Od=({column:t,className:e,onRemoveColumn:n,onResize:o,...r})=>{let s=(0,Ad.useRef)(null),{isResizing:i,...l}=nr({column:t,onResize:o,rootRef:s}),a=(0,Vi.default)(Yt,e,{vuuPinLeft:t.pin==="left",[`${Yt}-right`]:t.align==="right",[`${Yt}-resizing`]:t.resizing,[`${Yt}-pending`]:t.groupConfirmed===!1}),{columns:c}=t;return(0,ft.jsx)("div",{className:a,ref:s,...r,children:(0,ft.jsxs)("div",{className:`${Yt}-inner`,children:[c.map(u=>(0,ft.jsx)(pb,{column:u,children:c.length>1?(0,ft.jsx)(Hd,{column:u,onClick:n}):null},u.key)),(0,ft.jsx)(Hd,{"data-align":"end",onClick:n}),t.resizeable!==!1?(0,ft.jsx)(Io,{...l}):null]})})};var Kd=_(require("classnames")),En=require("react");var $i=_(require("classnames"));var wn=require("react/jsx-runtime"),Nd="vuuSortIndicator",ys=({sorted:t})=>{if(!t)return null;let e=typeof t=="number"?t<0?"dsc":"asc":t==="A"?"asc":"dsc";return typeof t=="number"?(0,wn.jsxs)("div",{className:(0,$i.default)(Nd,"multi-col",e),children:[(0,wn.jsx)("span",{"data-icon":`sorted-${e}`}),(0,wn.jsx)("span",{className:"vuuSortPosition",children:Math.abs(t)})]}):(0,wn.jsx)("div",{className:(0,$i.default)(Nd,"single-col"),children:(0,wn.jsx)("span",{"data-icon":`sorted-${e}`})})};var Wd=require("@vuu-ui/vuu-popups");var zd=require("@vuu-ui/vuu-popups"),Fd=_(require("classnames")),Vd=require("react");var Bd=require("react/jsx-runtime");var $d=({column:t,filter:e})=>{let[n]=(0,zd.useContextMenu)(),o=(0,Vd.useCallback)(r=>{r.stopPropagation(),n(r,"filter",{column:t,filter:e})},[t,e,n]);return t.filter?(0,Bd.jsx)("div",{className:(0,Fd.default)("vuuFilterIndicator"),"data-icon":"filter",onClick:o}):null};var Zt=require("react/jsx-runtime"),or="vuuTable-headerCell",_d=({column:t,className:e,onClick:n,onDragStart:o,onResize:r,...s})=>{let i=(0,En.useRef)(null),{isResizing:l,...a}=nr({column:t,onResize:r,rootRef:i}),[c]=(0,Wd.useContextMenu)(),u=(0,En.useRef)(null),d=g=>{c(g,"header",{column:t})},p=(0,En.useCallback)(g=>!l&&(n==null?void 0:n(g)),[l,n]),m=(0,En.useCallback)(g=>{u.current=window.setTimeout(()=>{o==null||o(g),u.current=null},500)},[o]),f=(0,En.useCallback)(()=>{u.current!==null&&(window.clearTimeout(u.current),u.current=null)},[]),h=(0,Kd.default)(or,e,{vuuPinFloating:t.pin==="floating",vuuPinLeft:t.pin==="left",vuuPinRight:t.pin==="right",vuuEndPin:t.endPin,[`${or}-resizing`]:t.resizing,[`${or}-right`]:t.align==="right"});return(0,Zt.jsx)("div",{className:h,...s,onClick:p,onContextMenu:d,onMouseDown:m,onMouseUp:f,ref:i,children:(0,Zt.jsxs)("div",{className:`${or}-inner`,children:[(0,Zt.jsx)($d,{column:t}),(0,Zt.jsx)("div",{className:`${or}-label`,children:t.label}),(0,Zt.jsx)(ys,{sorted:t.sorted}),t.resizeable!==!1?(0,Zt.jsx)(Io,{...a}):null]})})};var ht=require("react/jsx-runtime"),Bi="vuuTable",{RENDER_IDX:mb}=rt.metadataKeys,Gd=({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=(0,co.useCallback)(C=>{i==null||i(C)},[i]),g=(0,co.useMemo)(()=>t.filter(rt.notHidden),[t]),y=(0,co.useMemo)(()=>(0,rt.buildColumnMap)(t),[t]),v=(0,co.useCallback)(C=>{var M;let T=C.target.closest(".vuuTable-headerCell"),x=parseInt((M=T==null?void 0:T.dataset.idx)!=null?M:"-1"),w=(0,rt.visibleColumnAtIndex)(t,x),R=C.shiftKey;w&&u(w,R)},[t,u]);return(0,ht.jsxs)("div",{"aria-rowcount":f,className:`${Bi}-table`,role:"table",children:[(0,ht.jsxs)("div",{className:`${Bi}-headers`,role:"rowGroup",children:[r.map((C,b)=>(0,ht.jsx)("div",{className:"vuuTable-heading",children:C.map(({label:T,width:x},w)=>(0,ht.jsx)("div",{className:"vuuTable-headingCell",style:{width:x},children:T},w))},b)),(0,ht.jsx)("div",{role:"row",children:g.map((C,b)=>{let T=(0,rt.getColumnStyle)(C);return(0,rt.isGroupColumn)(C)?(0,ht.jsx)(Od,{column:C,"data-idx":b,onRemoveColumn:a,onResize:s,role:"columnHeader",style:T},b):(0,ht.jsx)(_d,{column:C,"data-idx":b,id:`${p}-${b}`,onClick:v,onDragStart:h,onResize:s,role:"columnHeader",style:T},b)})})]}),(0,ht.jsx)("div",{className:`${Bi}-body`,onContextMenu:l,role:"rowGroup",children:n==null?void 0:n.map(C=>(0,ht.jsx)(kd,{columnMap:y,columns:e,offset:o(C),onClick:c,virtualColSpan:m,onToggleGroup:d,row:C},C[mb]))})]})};var kp=require("@vuu-ui/vuu-popups"),wt=require("@vuu-ui/vuu-utils"),me=require("react");var xs=require("@vuu-ui/vuu-utils"),rr=require("react"),{SELECTED:mH}=xs.metadataKeys;var Ki=require("react"),fb=require("@vuu-ui/vuu-data");var Wi=require("react"),hb=require("@vuu-ui/vuu-data");var gb=require("react"),bb=require("@vuu-ui/vuu-data");var yb=0,sr=class{constructor(e,n){this.from=e,this.to=n}},de=class{constructor(e={}){this.id=yb++,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=We.match(e)),n=>{let o=e(n);return o===void 0?null:[this,o]}}};de.closedBy=new de({deserialize:t=>t.split(" ")});de.openedBy=new de({deserialize:t=>t.split(" ")});de.group=new de({deserialize:t=>t.split(" ")});de.contextHash=new de({perNode:!0});de.lookAhead=new de({perNode:!0});de.mounted=new de({perNode:!0});var xb=Object.create(null),We=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):xb,o=(e.top?1:0)|(e.skipped?2:0)|(e.error?4:0)|(e.name==null?8:0),r=new We(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(de.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(de.group),s=-1;s<(r?r.length:0);s++){let i=n[s<0?o.name:r[s]];if(i)return i}}}};We.none=new We("",Object.create(null),0,8);var uo=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 We(o.name,r,o.id,o.flags):o)}return new uo(n)}},Cs=new WeakMap,Ud=new WeakMap,Me;(function(t){t[t.ExcludeBuffers=1]="ExcludeBuffers",t[t.IncludeAnonymous=2]="IncludeAnonymous",t[t.IgnoreMounts=4]="IgnoreMounts",t[t.IgnoreOverlays=8]="IgnoreOverlays"})(Me||(Me={}));var Ie=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(de.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 mo(this.topNode,e)}cursorAt(e,n=0,o=0){let r=Cs.get(this)||this.topNode,s=new mo(r);return s.moveTo(e,n),Cs.set(this,s._tree),s}get topNode(){return new gt(this,0,0,null)}resolve(e,n=0){let o=po(Cs.get(this)||this.topNode,e,n,!1);return Cs.set(this,o),o}resolveInner(e,n=0){let o=po(Ud.get(this)||this.topNode,e,n,!0);return Ud.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&Me.IncludeAnonymous)>0;for(let a=this.cursor(i|Me.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:Xi(We.none,this.children,this.positions,0,this.children.length,0,this.length,(n,o,r)=>new Ie(this.type,n,o,r,this.propValues),e.makeTree||((n,o,r)=>new Ie(We.none,n,o,r)))}static build(e){return Cb(e)}};Ie.empty=new Ie(We.none,[],[],0);var ir=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 ir(this.buffer,this.index)}},Ht=class{constructor(e,n,o){this.buffer=e,this.length=n,this.set=o}get type(){return We.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&&!(Qd(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 Ht(s,i,this.set)}};function Qd(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 jd(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 po(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 gt&&t.index<0?null:t.parent;if(!i)return t;t=i}let s=o?0:Me.IgnoreOverlays;if(o)for(let i=t,l=i.parent;l;i=l,l=i.parent)i instanceof gt&&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 gt=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(Qd(r,o,d,d+u.length)){if(u instanceof Ht){if(s&Me.ExcludeBuffers)continue;let p=u.findChild(0,u.buffer.length,n,o-d,r);if(p>-1)return new Tt(new _i(i,u,e,d),null,p)}else if(s&Me.IncludeAnonymous||!u.type.isAnonymous||Ui(u)){let p;if(!(s&Me.IgnoreMounts)&&u.props&&(p=u.prop(de.mounted))&&!p.overlay)return new gt(p.tree,d,e,i);let m=new gt(u,d,e,i);return s&Me.IncludeAnonymous||!m.type.isAnonymous?m:m.nextChild(n<0?u.children.length-1:0,n,o,r)}}}if(s&Me.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&Me.IgnoreOverlays)&&(r=this._tree.prop(de.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 gt(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 mo(this,e)}get tree(){return this._tree}toTree(){return this._tree}resolve(e,n=0){return po(this,e,n,!1)}resolveInner(e,n=0){return po(this,e,n,!0)}enterUnfinishedNodesBefore(e){return jd(this,e)}getChild(e,n=null,o=null){let r=Ts(this,e,n,o);return r.length?r[0]:null}getChildren(e,n=null,o=null){return Ts(this,e,n,o)}toString(){return this._tree.toString()}get node(){return this}matchContext(e){return Ss(this,e)}};function Ts(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 Ss(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 _i=class{constructor(e,n,o,r){this.parent=e,this.buffer=n,this.index=o,this.start=r}},Tt=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 Tt(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&Me.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 Tt(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 Tt(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 Tt(this.context,this._parent,e.findChild(n,this.index,-1,0,4))}cursor(e=0){return new mo(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 Ie(this.type,e,n,this.to-this.from)}resolve(e,n=0){return po(this,e,n,!1)}resolveInner(e,n=0){return po(this,e,n,!0)}enterUnfinishedNodesBefore(e){return jd(this,e)}toString(){return this.context.buffer.childString(this.index)}getChild(e,n=null,o=null){let r=Ts(this,e,n,o);return r.length?r[0]:null}getChildren(e,n=null,o=null){return Ts(this,e,n,o)}get node(){return this}matchContext(e){return Ss(this,e)}},mo=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 gt)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 gt?(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&Me.ExcludeBuffers?!1:this.enterChild(1,e,n):this.yield(this._tree.enter(e,n,o))}parent(){if(!this.buffer)return this.yieldNode(this.mode&Me.IncludeAnonymous?this._tree._parent:this._tree.parent);if(this.stack.length)return this.yieldBuf(this.stack.pop());let e=this.mode&Me.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&Me.IncludeAnonymous||l instanceof Ht||!l.type.isAnonymous||Ui(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 Tt(this.buffer,n,this.stack[r]);return this.bufferNode=new Tt(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 Ss(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 Ss(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 Ui(t){return t.children.some(e=>e instanceof Ht||!e.type.isAnonymous||Ui(e))}function Cb(t){var e;let{buffer:n,nodeSet:o,maxBufferLength:r=1024,reused:s=[],minRepeatType:i=o.types.length}=t,l=Array.isArray(n)?new ir(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 Ht(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,U=I;for(;l.pos>k;)F>=0&&l.id==F&&l.size>=0?(l.end<=U-r&&(m(N,O,E,$,l.end,U,F,D),$=N.length,U=l.end),l.next()):d(E,k,N,O,F);if(F>=0&&$>0&&$<N.length&&m(N,O,E,$,E,U,F,D),N.reverse(),O.reverse(),F>-1&&$>0){let W=p(L);A=Xi(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 Ie){if(!M&&E.type==b&&E.length==w)return E;(I=E.prop(de.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=[de.contextHash,c];M=M?[E].concat(M):[E]}if(R>25){let E=[de.lookAhead,R];M=M?[E].concat(M):[E]}return new Ie(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 Ie(a[t.topID],y.reverse(),v.reverse(),C)}var Xd=new WeakMap;function vs(t,e){if(!t.isAnonymous||e instanceof Ht||e.type!=t)return 1;let n=Xd.get(e);if(n==null){n=1;for(let o of e.children){if(o.type!=t||!(o instanceof Ie)){n=1;break}n+=vs(t,o)}Xd.set(e,n)}return n}function Xi(t,e,n,o,r,s,i,l,a){let c=0;for(let f=o;f<r;f++)c+=vs(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=vs(t,f[C]);for(C++;C<y;C++){let w=vs(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(Xi(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 ws=class{startParse(e,n,o){return typeof e=="string"&&(e=new Gi(e)),o=o?o.length?o.map(r=>new sr(r.from,r.to)):[new sr(0,0)]:[new sr(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}}},Gi=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 xH=new de({perNode:!0});var ho=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 ho(e,[],n,o,o,0,[],0,r?new Es(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 ho(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 ji(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 Es(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()}},Es=class{constructor(e,n){this.tracker=e,this.context=n,this.hash=e.strict?e.hash(n):0}},Yd;(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"})(Yd||(Yd={}));var ji=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}},go=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 go(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 go(this.stack,this.pos,this.index)}};function lr(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 fo=class{constructor(){this.start=-1,this.value=-1,this.end=-1,this.extended=-1,this.lookAhead=0,this.mask=0,this.context=0}},Zd=new fo,Yi=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=Zd,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=Zd,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}},qt=class{constructor(e,n){this.data=e,this.id=n}token(e,n){let{parser:o}=n.p;rp(this.data,e,n,this.id,o.data,o.tokenPrecTable)}};qt.prototype.contextual=qt.prototype.fallback=qt.prototype.extend=!1;var Zi=class{constructor(e,n,o){this.precTable=n,this.elseToken=o,this.data=typeof e=="string"?lr(e):e}token(e,n){let o=e.pos,r=0;for(;;){let s=e.next<0,i=e.resolveOffset(1,1);if(rp(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))}};Zi.prototype.contextual=qt.prototype.fallback=qt.prototype.extend=!1;function rp(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||Tb(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 qd(t,e,n){for(let o=e,r;(r=t[o])!=65535;o++)if(r==n)return o-e;return-1}function Tb(t,e,n,o){let r=qd(n,o,e);return r<0||qd(n,o,t)<r}var bt=typeof process<"u"&&process.env&&/\bparse\b/.test(process.env.LOG),Qi=null,Jd;(function(t){t[t.Margin=25]="Margin"})(Jd||(Jd={}));function ep(t,e,n){let o=t.cursor(Me.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 qi=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?ep(e.tree,e.from+e.offset,1)-e.offset:e.from,this.safeTo=e.openEnd?ep(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 Ie){if(i==e){if(i<this.safeFrom)return null;let l=i+s.length;if(l<=this.safeTo){let a=s.prop(de.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}}},Ji=class{constructor(e,n){this.stream=n,this.tokens=[],this.mainToken=null,this.actions=[],this.tokens=e.tokenizers.map(o=>new fo)}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 fo,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 fo,{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=At(l,c+2);else{r==0&&l[c+1]==2&&(r=this.putAction(At(l,c+2),n,o,r));break}l[c]==n&&(r=this.putAction(At(l,c+1),n,o,r))}return r}},tp;(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"})(tp||(tp={}));var el=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 Yi(n,r),this.tokens=new Ji(e,this.stream),this.topTerm=e.top[1];let{from:s}=r[0];this.stacks=[ho.start(this,e.top[0],s)],this.fragments=o.length&&this.stream.end-s>e.bufferLength*4?new qi(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&&Sb(r);if(i)return this.stackToTree(i);if(this.parser.strict)throw bt&&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=bt?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(de.contextHash)||0)==u))return e.useNode(d,p),bt&&console.log(i+this.stackID(e)+` (via reuse of ${s.getName(d.type.id)})`),!0;if(!(d instanceof Ie)||d.children.length==0||d.positions[0]>0)break;let m=d.children[0];if(m instanceof Ie&&d.positions[0]==0)d=m;else break}}let l=s.stateSlot(e.state,4);if(l>0)return e.reduce(l),bt&&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),bt&&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 np(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=bt?this.stackID(l)+" -> ":"";if(l.deadEnd&&(s||(s=!0,l.restart(),bt&&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&&(bt&&console.log(p+this.stackID(d)+" (via force-reduce)"),!this.advanceFully(d,o));m++)bt&&(p=this.stackID(d)+" -> ");for(let m of l.recoverByInsert(a))bt&&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),bt&&console.log(u+this.stackID(l)+` (via recover-delete ${this.parser.getName(a)})`),np(l,o)):(!r||r.score<l.score)&&(r=l)}return r}stackToTree(e){return e.close(),Ie.build({buffer:go.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=(Qi||(Qi=new WeakMap)).get(e);return n||Qi.set(e,n=String.fromCodePoint(this.nextStackID++)),n+e}};function np(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 tl=class{constructor(e,n,o){this.source=e,this.flags=n,this.disabled=o}allows(e){return!this.disabled||this.disabled[e]==0}};var Rn=class extends ws{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=de[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 uo(n.map((l,a)=>We.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=lr(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(op),this.states=lr(e.states,Uint32Array),this.data=lr(e.stateData),this.goto=lr(e.goto),this.maxTerm=e.maxTerm,this.tokenizers=e.tokenizers.map(l=>typeof l=="number"?new qt(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 el(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=At(o,s+2)];else{if(o[s+1]==2)return At(o,s+2);break}if(i==n||i==0)return At(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=At(this.data,s+2);else break;r=n(At(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=At(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(Rn.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]=op(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 tl(e,o,r)}static deserialize(e){return new Rn(e)}};function At(t,e){return t[e]|t[e+1]<<16}function Sb(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 op(t){if(t.external){let e=t.extend?1:0;return(n,o)=>t.external(n,o)<<1|e}return t.get}var nl=Rn.deserialize({version:14,states:"%QOVQPOOOOQO'#C_'#C_O_QQO'#C^OOQO'#DO'#DOOvQQO'#C|OOQO'#DR'#DROVQPO'#CuOOQO'#C}'#C}QOQPOOOOQO'#C`'#C`O!UQQO,58xO!dQPO,59VOVQPO,59]OVQPO,59_O!iQPO,59hO!nQQO,59aOOQO'#DQ'#DQOOQO1G.d1G.dO!UQQO1G.qO!yQQO1G.wOOQO1G.y1G.yOOQO'#Cw'#CwOOQO1G/S1G/SOOQO1G.{1G.{O#[QPO'#CnO#dQPO7+$]O!UQQO'#CxO#iQPO,59YOOQO<<Gw<<GwOOQO,59d,59dOOQO-E6v-E6v",stateData:"#q~OoOS~OsPOvUO~OTXOUXOVXOWXOXXOYXO`ZO~Of[Oh]Oj^OmpX~OZ`O[`O]`O^`O~OabO~OseO~Of[Oh]OwgO~Oh]Ofeijeimeiwei~OcjOdbX~OdlO~OcjOdba~O",goto:"#YvPPw}!TPPPPPPPPPPwPP!WPP!ZP!ZP!aP!g!jPPP!p!s!aP#P!aXROU[]XQOU[]RYQRibXTOU[]XVOU[]Rf^QkhRnkRWOQSOQ_UQc[Rd]QaYQhbRmj",nodeNames:"\u26A0 Filter ColumnValueExpression Column Operator Eq NotEq Gt Lt Starts Ends Number String True False ColumnSetExpression In LBrack Values Comma RBrack AndExpression And OrExpression Or ParenthesizedExpression As FilterName",maxTerm:39,skippedNodes:[0],repeatNodeCount:1,tokenData:"6p~RnXY#PYZ#P]^#Ppq#Pqr#brs#mxy$eyz$j|}$o!O!P$t!Q![%S!^!_%_!_!`%d!`!a%i!c!}%n!}#O&V#P#Q&[#R#S%n#T#U&a#U#X%n#X#Y(w#Y#Z+]#Z#]%n#]#^.]#^#c%n#c#d/e#d#g%n#g#h0m#h#i4[#i#o%n~#USo~XY#PYZ#P]^#Ppq#P~#eP!_!`#h~#mOU~~#pWOX#mZ]#m^r#mrs$Ys#O#m#P;'S#m;'S;=`$_<%lO#m~$_O[~~$bP;=`<%l#m~$jOv~~$oOw~~$tOc~~$wP!Q![$z~%PPZ~!Q![$z~%XQZ~!O!P$t!Q![%S~%dOW~~%iOT~~%nOV~P%sUsP}!O%n!O!P%n!Q![%n!c!}%n#R#S%n#T#o%n~&[Oa~~&aOd~R&fYsP}!O%n!O!P%n!Q![%n!c!}%n#R#S%n#T#b%n#b#c'U#c#g%n#g#h(^#h#o%nR'ZWsP}!O%n!O!P%n!Q![%n!c!}%n#R#S%n#T#W%n#W#X's#X#o%nR'zUfQsP}!O%n!O!P%n!Q![%n!c!}%n#R#S%n#T#o%nR(eUjQsP}!O%n!O!P%n!Q![%n!c!}%n#R#S%n#T#o%nR(|WsP}!O%n!O!P%n!Q![%n!c!}%n#R#S%n#T#b%n#b#c)f#c#o%nR)kWsP}!O%n!O!P%n!Q![%n!c!}%n#R#S%n#T#W%n#W#X*T#X#o%nR*YWsP}!O%n!O!P%n!Q![%n!c!}%n#R#S%n#T#g%n#g#h*r#h#o%nR*yUYQsP}!O%n!O!P%n!Q![%n!c!}%n#R#S%n#T#o%nR+bVsP}!O%n!O!P%n!Q![%n!c!}%n#R#S%n#T#U+w#U#o%nR+|WsP}!O%n!O!P%n!Q![%n!c!}%n#R#S%n#T#`%n#`#a,f#a#o%nR,kWsP}!O%n!O!P%n!Q![%n!c!}%n#R#S%n#T#g%n#g#h-T#h#o%nR-YWsP}!O%n!O!P%n!Q![%n!c!}%n#R#S%n#T#X%n#X#Y-r#Y#o%nR-yU^QsP}!O%n!O!P%n!Q![%n!c!}%n#R#S%n#T#o%nR.bWsP}!O%n!O!P%n!Q![%n!c!}%n#R#S%n#T#b%n#b#c.z#c#o%nR/RU`QsP}!O%n!O!P%n!Q![%n!c!}%n#R#S%n#T#o%nR/jWsP}!O%n!O!P%n!Q![%n!c!}%n#R#S%n#T#f%n#f#g0S#g#o%nR0ZUhQsP}!O%n!O!P%n!Q![%n!c!}%n#R#S%n#T#o%nR0rWsP}!O%n!O!P%n!Q![%n!c!}%n#R#S%n#T#h%n#h#i1[#i#o%nR1aVsP}!O%n!O!P%n!Q![%n!c!}%n#R#S%n#T#U1v#U#o%nR1{WsP}!O%n!O!P%n!Q![%n!c!}%n#R#S%n#T#f%n#f#g2e#g#o%nR2jWsP}!O%n!O!P%n!Q![%n!c!}%n#R#S%n#T#h%n#h#i3S#i#o%nR3XWsP}!O%n!O!P%n!Q![%n!c!}%n#R#S%n#T#g%n#g#h3q#h#o%nR3xUXQsP}!O%n!O!P%n!Q![%n!c!}%n#R#S%n#T#o%nR4aWsP}!O%n!O!P%n!Q![%n!c!}%n#R#S%n#T#f%n#f#g4y#g#o%nR5OWsP}!O%n!O!P%n!Q![%n!c!}%n#R#S%n#T#i%n#i#j5h#j#o%nR5mWsP}!O%n!O!P%n!Q![%n!c!}%n#R#S%n#T#X%n#X#Y6V#Y#o%nR6^U]QsP}!O%n!O!P%n!Q![%n!c!}%n#R#S%n#T#o%n",tokenizers:[0,1],topRules:{Filter:[0,1]},tokenPrec:0});var St=require("@vuu-ui/vuu-utils");var _e,sp=class{constructor(){vl(this,_e,void 0)}setFilterCombinatorOp(e,n=yt(this,_e)){(0,St.isMultiClauseFilter)(n)&&n.op===e||zs(this,_e,{op:e,filters:[yt(this,_e)]})}add(e){if(yt(this,_e)===void 0)zs(this,_e,e);else if((0,St.isMultiClauseFilter)(yt(this,_e)))yt(this,_e).filters.push(e);else throw Error("Invalid filter passed to FilterExpression")}setColumn(e,n=yt(this,_e)){if((0,St.isMultiClauseFilter)(n)){let o=n.filters.at(-1);o&&this.setColumn(e,o)}else n&&(n.column=e)}setOp(e,n=yt(this,_e)){if((0,St.isMultiClauseFilter)(n)){let o=n.filters.at(-1);o&&this.setOp(e,o)}else n&&(n.op=e)}setValue(e,n=yt(this,_e)){var o;if((0,St.isMultiClauseFilter)(n)){let r=n.filters.at(-1);r&&this.setValue(e,r)}else(0,St.isMultiValueFilter)(n)?((o=n.values)!=null||(n.values=[]),n.values.push(e)):(0,St.isSingleValueFilter)(n)&&(n.value=e)}toJSON(e=yt(this,_e)){return this.name?{...e,name:this.name}:e}};_e=new WeakMap;var IH=nl.configure({strict:!0});var Rs=require("@vuu-ui/vuu-utils"),Rb=require("react");var{KEY:BH}=Rs.metadataKeys;var Db=t=>t.type==="vuu-links";var Mb=t=>t.type==="vuu-menu",ip=t=>Mb(t)||Db(t),lp=t=>t.type==="vuu-link-created"||t.type==="vuu-link-removed";var ol=require("react"),Ib=require("@vuu-ui/vuu-data");var Jt=require("@vuu-ui/vuu-utils"),he=require("react"),{SELECTED:ar}=Jt.metadataKeys;function ap({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]=(0,he.useState)(null),u=(0,he.useRef)(!0),d=(0,he.useRef)(!1),p=(0,he.useRef)({from:0,to:0}),m=(0,he.useRef)(null),f=(0,he.useRef)([]),h=(0,he.useMemo)(()=>new rl((0,Jt.getFullRange)(i)),[]),g=(0,he.useCallback)(x=>{for(let w of x)h.add(w);f.current=h.data,d.current=!0},[h]),y=(0,he.useCallback)(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)):ip(x)?n==null||n(x):lp(x)?o==null||o(x):console.log(`useDataSource unexpected message ${x.type}`)},[h,n,o,r,s,g]);(0,he.useEffect)(()=>()=>{m.current&&(cancelAnimationFrame(m.current),m.current=null),u.current=!1},[]);let v=(0,he.useCallback)(()=>{u.current&&(d.current&&(c({}),d.current=!1),m.current=requestAnimationFrame(v))},[c]);(0,he.useEffect)(()=>{m.current=requestAnimationFrame(v)},[v]);let C=(0,he.useCallback)(x=>{let{from:w}=t.range,R={from:w,to:w+x},M=(0,Jt.getFullRange)(R,l);h.setRange(M),t.range=p.current=M,t.emit("range",R)},[t,h,l]),b=(0,he.useCallback)(x=>{let w=(0,Jt.getFullRange)(x,l);h.setRange(w),t.range=p.current=w,t.emit("range",x)},[t,h,l]),T=(0,he.useCallback)(()=>h.getSelectedRows(),[h]);return(0,he.useEffect)(()=>{t==null||t.subscribe({range:p.current},y)},[t,y,e]),(0,he.useEffect)(()=>{C(a)},[C,a]),{data:f.current,getSelectedRows:T,range:p.current,setRange:b,dataSource:t}}var rl=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 Jt.WindowRange(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[ar],i=(o=this.data[r-1])==null?void 0:o[ar];i===0&&s?this.data[r-1][ar]=2:i===2&&!s&&(this.data[r-1][ar]=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[ar]===1)}};var bo=require("react"),cp=({onDrop:t})=>{let e=(0,bo.useRef)(),n=(0,bo.useRef)(null),o=(0,bo.useCallback)(()=>{console.log("handleDropSettle"),e.current=void 0,n.current=null},[]),{draggable:r,draggedItemIndex:s,onMouseDown:i}=Fn({allowDragDrop:!0,draggableClassName:"vuuTable-headerCell",orientation:"horizontal",containerRef:n,itemQuery:".vuuTable-headerCell",onDrop:t,onDropSettle:o}),l=(0,bo.useCallback)(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}};var fp=require("@vuu-ui/vuu-utils"),ve=require("react");function Pb(t,...e){let n=new Set(t);for(let o of e)for(let r of o)n.add(r);return n}var sl="ArrowUp",il="ArrowDown",ll="ArrowLeft",al="ArrowRight";var cl="Home",ul="End",dl="PageUp",pl="PageDown";var Lb=new Set(["Enter","Delete"," "]),kb=new Set(["Tab"]),Hb=new Set(["ArrowRight","ArrowLeft"]),up=new Set([cl,ul,dl,pl,il,ll,al,sl]),Ab=new Set(["F1","F2","F3","F4","F5","F6","F7","F8","F9","F10","F11","F12"]),sA=Pb(Lb,up,Hb,Ab,kb);var Ob=["Home","End","PageUp","PageDown"],dp=t=>Ob.includes(t),pp=t=>up.has(t);var mp=t=>`.vuuTable-headers .vuuTable-headerCell:nth-child(${t+1})`,Nb=(t,e)=>`.vuuTable-body > [aria-rowindex='${t}'] > [role='cell']:nth-child(${e+1})`,zb=[-1,-1];function Fb(t,[e,n],o,r){return t===sl?e>-1?[e-1,n]:[e,n]:t===il?e===-1?[0,n]:e===r-1?[e,n]:[e+1,n]:t===al?n<o-1?[e,n+1]:[e,n]:t===ll?n>0?[e,n-1]:[e,n]:[e,n]}var hp=({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=(0,ve.useRef)([-1,-1]),u=(0,ve.useRef)(),d=(0,ve.useRef)([-1,0]),p=(0,ve.useCallback)(([E,I])=>{var D;let S=E===-1?mp(I):Nb(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 zb},h=(0,ve.useCallback)(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()):(0,fp.withinRange)(E[0],i)||(u.current=void 0,r==null||r({type:"scroll-page",direction:"up"}))}},[e,p,r,i]),g=(0,ve.useCallback)((E,I,S=!1)=>{let D=[E,I];d.current=D,h(D),S&&(c.current=D)},[h]),y=(0,ve.useCallback)(()=>{var E;(E=u.current)==null||E.setAttribute("tabindex",""),u.current=void 0},[]),v=(0,ve.useCallback)(async(E,I)=>{switch(E){case pl:r==null||r({type:"scroll-page",direction:"down"});break;case dl:r==null||r({type:"scroll-page",direction:"up"});break;case cl:r==null||r({type:"scroll-end",direction:"home"});break;case ul:r==null||r({type:"scroll-end",direction:"end"});break}return I},[r]),C=(0,ve.useCallback)(()=>{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=(0,ve.useCallback)(async E=>{let[I,S]=dp(E)?await v(E,d.current):Fb(E,d.current,t,s),[D,L]=d.current;(I!==D||S!==L)&&g(I,S,!0)},[t,v,s,g]),T=(0,ve.useCallback)(E=>{o.length>0&&pp(E.key)&&(E.preventDefault(),E.stopPropagation(),b(E.key))},[o,b]),x=(0,ve.useCallback)(E=>{let I=E.target,S=m(I);if(S){let[D,L]=f(S);g(D,L)}},[g]),w=(0,ve.useMemo)(()=>({onClick:x,onFocus:C,onKeyDown:T}),[x,C,T]);(0,ve.useLayoutEffect)(()=>{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(0,ve.useEffect)(()=>{var E;if(R&&u.current===void 0){let I=(E=e.current)==null?void 0:E.querySelector(mp(0));I&&(I.setAttribute("tabindex","0"),u.current=I)}},[e,R]),w};var Ot=require("@vuu-ui/vuu-utils"),en=require("react");var Mn=require("react");var Dn=new Map,bp=(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}},gp=new ResizeObserver(t=>{for(let e of t){let{target:n,borderBoxSize:o,contentBoxSize:r}=e,s=Dn.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=bp(n,{height:i,width:l,contentHeight:a,contentWidth:c},m);h!==f&&(p=!0,d[m]=h)}p&&u&&u(d)}}});function yp(t,e,n,o=!1){let r=(0,Mn.useRef)(e),s=(0,Mn.useCallback)(i=>{let{width:l,height:a}=i.getBoundingClientRect(),{clientWidth:c,clientHeight:u}=i;return r.current.reduce((d,p)=>(d[p]=bp(i,{width:l,height:a,contentHeight:u,contentWidth:c},p),d),{})},[]);(0,Mn.useEffect)(()=>{let i=t.current;async function l(){Dn.set(i,{measurements:{}}),await document.fonts.ready;let a=Dn.get(i);if(a){let c=s(i);a.measurements=c,gp.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(Dn.has(i))throw Error("useResizeObserver attemping to observe same element twice");l()}return()=>{i&&Dn.has(i)&&(gp.unobserve(i),Dn.delete(i))}},[s,t]),(0,Mn.useEffect)(()=>{let i=t.current,l=Dn.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 Vb=["clientHeight","clientWidth"],xp=t=>Number.isFinite(t),$b={height:"100%",width:"100%"},Bb=(t,e)=>(0,Ot.isValidNumber)(t)&&(0,Ot.isValidNumber)(e)?{height:`${t}px`,width:`${e}px`}:$b,Kb=(t,e)=>{if((0,Ot.isValidNumber)(t)&&(0,Ot.isValidNumber)(e))return{height:t,width:e}},cr=({defaultHeight:t=0,defaultWidth:e=0,height:n,width:o})=>{let r=(0,en.useRef)(null),[s,i]=(0,en.useState)({css:Bb(n,o),inner:Kb(n,o),outer:{height:n!=null?n:"100%",width:o!=null?o:"100%"}});(0,en.useMemo)(()=>{i(a=>{let{inner:c,outer:u}=a;if((0,Ot.isValidNumber)(n)&&(0,Ot.isValidNumber)(o)&&c&&u){let{height:d,width:p}=c,{height:m,width:f}=u;if(m!==n||f!==o){let h=(0,Ot.isValidNumber)(m)?m-d:0,g=(0,Ot.isValidNumber)(f)?f-p:0;return{...a,outer:{height:n,width:o},inner:{height:n-h,width:o-g}}}}return a})},[n,o]);let l=(0,en.useCallback)(({clientWidth:a,clientHeight:c})=>{i(u=>{let{css:d,inner:p,outer:m}=u;return xp(c)&&xp(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 yp(r,Vb,l,!0),{containerRef:r,cssSize:s.css,outerSize:s.outer,innerSize:s.inner}};var tn=require("@vuu-ui/vuu-utils"),ur=require("react"),{IDX:Wb}=tn.metadataKeys,_b=[],dr=({selectionModel:t,onSelectionChange:e})=>{let n=(0,ur.useRef)(-1),o=(0,ur.useRef)(_b);return(0,ur.useCallback)((s,i,l)=>{let{[Wb]:a}=s,{current:c}=n,{current:u}=o,p=((0,tn.isRowSelected)(s)?tn.deselectItem:tn.selectItem)(t,u,a,i,l,c);o.current=p,n.current=a,e&&e(p)},[e,t])};var ee=require("@vuu-ui/vuu-utils"),Cp=require("react"),Gb=100,vp=ee.metadataKeys.count,Ub=({serverDataType:t})=>t===void 0,Xb=t=>{var e;if((0,ee.isTypeDescriptor)(t.type))return(0,ee.getCellRenderer)((e=t.type)==null?void 0:e.renderer)},Tp=(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"},Qb=["int","long","double"],Sp=t=>t===void 0?void 0:Qb.includes(t)?"right":"left",jb=t=>t.type==="columnSettings",Yb=t=>t.type==="tableSettings",Zb=(t,e)=>{switch(e.type){case"init":return wp(e);case"moveColumn":return Jb(t,e);case"resizeColumn":return ny(t,e);case"setTableSchema":return oy(t,e);case"hideColumns":return ey(t,e);case"showColumns":return ty(t,e);case"pinColumn":return ry(t,e);case"updateColumnProp":return yo(t,e);case"tableConfig":return Ep(t,e);default:return console.log(`unhandled action ${e.type}`),t}},ml=(t,e)=>{let[n,o]=(0,Cp.useReducer)(Zb,{tableConfig:t,dataSourceConfig:e},wp);return{columns:n.columns,dispatchColumnAction:o,headings:n.headings}};function wp({dataSourceConfig:t,tableConfig:e}){let n=e.columns.map(fl(e)),o=n.some(ee.isPinned)?(0,ee.sortPinnedColumns)(n):n,r={columns:o,headings:(0,ee.getTableHeadings)(o)};if(t){let{columns:s,...i}=t;return Ep(r,{type:"tableConfig",...i})}else return r}var qb=(t,e)=>e==="uppercase"?t.toUpperCase():e==="capitalize"?t[0].toUpperCase()+t.slice(1).toLowerCase():t,fl=t=>(e,n)=>{let o=Tp(e,t.tableSchema),{columnDefaultWidth:r=Gb,columnFormatHeader:s}=t,{align:i=Sp(o),key:l,name:a,label:c=a,width:u=r,...d}=e,p={...d,align:i,CellRenderer:Xb(e),label:qb(c,s),key:l!=null?l:n+vp,name:a,originalIdx:n,serverDataType:o,valueFormatter:(0,ee.getValueFormatter)(e),width:u};return(0,ee.isGroupColumn)(p)&&(p.columns=p.columns.map(m=>fl(t)(m,m.key))),p};function Jb(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:(0,ee.moveItem)(r,e,o)};return t}function ey(t,{columns:e}){return e.some(n=>n.hidden!==!0)?e.reduce((n,o)=>o.hidden!==!0?yo(n,{type:"updateColumnProp",column:o,hidden:!0}):n,t):t}function ty(t,{columns:e}){return e.some(n=>n.hidden)?e.reduce((n,o)=>o.hidden?yo(n,{type:"updateColumnProp",column:o,hidden:!1}):n,t):t}function ny(t,{column:e,phase:n,width:o}){let r="updateColumnProp",s=n!=="end";switch(n){case"begin":return yo(t,{type:r,column:e,resizing:s});case"end":return yo(t,{type:r,column:e,resizing:s,width:o});case"resize":return yo(t,{type:r,column:e,width:o});default:throw Error(`useTableModel.resizeColumn, invalid resizePhase ${n}`)}}function oy(t,{tableSchema:e}){let{columns:n}=t;if(n.some(Ub)){let o=n.map(r=>{var i;let s=Tp(r,e);return{...r,align:(i=r.align)!=null?i:Sp(s),serverDataType:s}});return{...t,columns:o,tableSchema:e}}else return{...t,tableSchema:e}}function ry(t,e){let{columns:n}=t,{column:o,pin:r}=e;return n=(0,ee.updateColumn)(n,o.name,{pin:r}),n=(0,ee.sortPinnedColumns)(n),console.log({withPins:n}),{...t,columns:n}}function yo(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=(0,ee.updateColumn)(n,r.name,c),{...t,columns:n}}function Ep(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=(0,ee.getColumnName)(d),f=p+vp,h=(0,ee.findColumn)(u.columns,m);return h?h.key===f?h:{...h,key:f}:fl(t)({name:d},p)})}),l&&(u={...t,columns:(0,ee.applyGroupByToColumns)(u.columns,r,n)}),c&&(u={...t,columns:(0,ee.applySortToColumns)(u.columns,s)}),a?u={...t,columns:(0,ee.applyFilterToColumns)(u.columns,o)}:u.columns.some(ee.isFilteredColumn)&&(u={...t,columns:(0,ee.stripFilterFromColumns)(u.columns)}),u}var Fe=require("react"),Rp=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]},sy=t=>{let{clientHeight:e,clientWidth:n,scrollHeight:o,scrollWidth:r}=t;return[r-n,o-e]},Dp=({onAttach:t,onDetach:e})=>{let n=(0,Fe.useRef)(null);return(0,Fe.useCallback)(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])},Mp=({onHorizontalScroll:t,onVerticalScroll:e,viewport:n})=>{let o=(0,Fe.useRef)(!1),r=(0,Fe.useRef)({scrollTop:0,scrollLeft:0}),s=(0,Fe.useRef)(null),i=(0,Fe.useRef)(null),{maxScrollContainerScrollHorizontal:l,maxScrollContainerScrollVertical:a}=n,c=(0,Fe.useCallback)(()=>{let{current:v}=i,{current:C}=s,{current:b}=o;if(b)o.current=!1;else if(v&&C){let[T,x]=Rp(C),[w,R]=sy(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=(0,Fe.useCallback)(()=>{let{current:v}=i,{current:C}=s,{current:b}=r;if(v&&C){let{scrollLeft:T,scrollTop:x}=v,[w,R]=Rp(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=(0,Fe.useCallback)(v=>{s.current=v,v.addEventListener("scroll",c,{passive:!0})},[c]),p=(0,Fe.useCallback)(v=>{s.current=null,v.removeEventListener("scroll",c)},[c]),m=(0,Fe.useCallback)(v=>{i.current=v,v.addEventListener("scroll",u,{passive:!0})},[u]),f=(0,Fe.useCallback)(v=>{i.current=null,v.removeEventListener("scroll",u)},[u]),h=Dp({onAttach:m,onDetach:f}),g=Dp({onAttach:d,onDetach:p}),y=(0,Fe.useCallback)(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}};var Nt=require("react"),Ds=require("@vuu-ui/vuu-utils"),iy=15e5,ly={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},ay=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}},pr=({columns:t,headerHeight:e,headings:n,rowCount:o,rowHeight:r,size:s})=>{let i=(0,Nt.useRef)(0),a=Math.min(o,iy)*r,u=o*r-a,{pinnedWidthLeft:d,pinnedWidthRight:p,unpinnedWidth:m}=(0,Nt.useMemo)(()=>ay(t),[t]),[f,h]=(0,Nt.useMemo)(()=>(0,Ds.actualRowPositioning)(r),[r]),[g,y]=(0,Nt.useMemo)(()=>u?(0,Ds.virtualRowPositioning)(r,u,i):[f,h],[h,f,u,r]),v=(0,Nt.useCallback)(C=>{i.current=C},[]);return(0,Nt.useMemo)(()=>{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 ly},[s,n.length,d,m,p,a,e,r,y,g,v])};var mr=require("@vuu-ui/vuu-utils"),je=require("react"),Ip=({columns:t,getRowAtPosition:e,setRange:n,viewportMeasurements:o})=>{let r=(0,je.useRef)(-1),{rowCount:s,contentWidth:i,maxScrollContainerScrollHorizontal:l}=o,a=i-l,c=(0,je.useRef)(0),[u,d]=(0,je.useMemo)(()=>(0,mr.getColumnsInViewport)(t,c.current,c.current+a),[a,t]),p=(0,je.useRef)(d);(0,je.useEffect)(()=>{f(u)},[u]);let[m,f]=(0,je.useState)(u),h=(0,je.useCallback)(y=>{c.current=y;let[v,C]=(0,mr.getColumnsInViewport)(t,y,y+a);(0,mr.itemsChanged)(m,v)&&(p.current=C,f(v))},[a,t,m]),g=(0,je.useCallback)(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 cy=[],{KEY:uy,IS_EXPANDED:Pp,IS_LEAF:Lp}=wt.metadataKeys,Hp=({config:t,dataSource:e,headerHeight:n,onConfigChange:o,onFeatureEnabled:r,onFeatureInvocation:s,onSelectionChange:i,renderBufferSize:l=0,rowHeight:a,selectionModel:c,...u})=>{var ne,J;let[d,p]=(0,me.useState)(e.size),m=(0,me.useRef)(!1),f=(0,me.useRef)();if(f.current=e,e===void 0)throw Error("no data source provided to Vuu Table");let h=cr(u),g=(0,me.useCallback)(B=>{p(B)},[]),{columns:y,dispatchColumnAction:v,headings:C}=ml(t,e.config),{getRowAtPosition:b,getRowOffset:T,setPctScrollTop:x,...w}=pr({columns:y,headerHeight:n,headings:C,rowCount:d,rowHeight:a,size:h.innerSize}),R=(0,me.useCallback)(({tableSchema:B})=>{B?(m.current=!0,v({type:"setTableSchema",tableSchema:B})):console.log("usbscription message with no schema")},[v]),M=(0,me.useCallback)(B=>{e.select(B),i==null||i(B)},[e,i]),E=dr({onSelectionChange:M,selectionModel:c}),{data:I,getSelectedRows:S,range:D,setRange:L}=ap({dataSource:e,onFeatureEnabled:r,onFeatureInvocation:s,onSubscribed:R,onSizeChange:g,renderBufferSize:l,viewportRowCount:w.rowCount}),A=(0,me.useRef)();A.current=I;let H=(0,me.useCallback)(B=>{m.current=!0,console.log("onPersistentColumnOperation, dispatchColumnAction",{action:B}),v(B)},[v]),P=Lo({dataSource:e,onPersistentColumnOperation:H}),k=(0,me.useCallback)((B,te=!1,ue)=>{e&&(e.sort=(0,wt.applySort)(e.sort,B,te,ue))},[e]),N=(0,me.useCallback)((B,te,ue)=>{let ie=y.find(pe=>pe.name===te);if(ie)B==="end"&&(m.current=!0),v({type:"resizeColumn",phase:B,column:ie,width:ue});else throw Error(`useDataTable.handleColumnResize, column ${te} not found`)},[y,v]),O=(0,me.useCallback)((B,te)=>{let ue=(0,wt.isJsonGroup)(te,B),ie=B[uy];if(B[Pp]){if(e.closeTreeNode(ie,!0),ue){let pe=y.indexOf(te);e.getRowsAtDepth(pe+1).some(fe=>fe[Pp]||fe[Lp])||v({type:"hideColumns",columns:y.slice(pe+2)})}}else if(e.openTreeNode(ie),ue){let pe=e.getChildRows(ie),be=y.indexOf(te)+1,fe=[y[be]];pe.some(Te=>Te[Lp])&&fe.push(y[be+1]),fe.some(Te=>Te.hidden)&&v({type:"showColumns",columns:fe})}},[y,e,v]),{onVerticalScroll:F,onHorizontalScroll:$,columnsWithinViewport:U,virtualColSpan:W}=Ip({columns:y,getRowAtPosition:b,setRange:L,viewportMeasurements:w}),Z=(0,me.useCallback)((B,te)=>{x(te),F(B)},[F,x]),{requestScroll:V,...z}=Mp({onHorizontalScroll:$,onVerticalScroll:Z,viewport:w,viewportHeight:((J=(ne=h.innerSize)==null?void 0:ne.height)!=null?J:0)-n}),K=hp({columnCount:y.length,containerRef:h.containerRef,data:I,requestScroll:V,rowCount:e==null?void 0:e.size,viewportRange:D}),G=(0,me.useCallback)(B=>{B?e&&e.groupBy.includes(B.name)&&(e.groupBy=e.groupBy.filter(te=>te!==B.name)):e.groupBy=[]},[e]),se=(0,me.useCallback)((B,te)=>{let ue=e.columns[B],ie=(0,wt.moveItem)(e.columns,ue,te);ie!==e.columns&&(e.columns=ie,v({type:"tableConfig",columns:ie}))},[e,v]),X=cp({onDrop:se});(0,me.useEffect)(()=>{f.current&&(m.current=!0,v({type:"init",tableConfig:t,dataSourceConfig:f.current.config}))},[t,v]),(0,me.useEffect)(()=>{e.on("config",(B,te)=>{m.current=!0,v({type:"tableConfig",...B,confirmed:te})})},[e,v]),(0,me.useMemo)(()=>{m.current&&(o==null||o({...t,columns:y}),m.current=!1)},[y,t,o]);let[Y]=(0,kp.useContextMenu)(),q=(0,me.useCallback)(B=>{var fe;let{current:te}=A,{current:ue}=f,ie=B.target,pe=ie==null?void 0:ie.closest("div[role='cell']"),be=ie==null?void 0:ie.closest(".vuuTableRow");if(pe&&be&&te&&ue){let{columns:Te,selectedRowsCount:Q}=ue,j=(0,wt.buildColumnMap)(Te),oe=parseInt((fe=be.ariaRowIndex)!=null?fe:"-1"),le=Array.from(be.childNodes).indexOf(pe),Se=te.find(([Ze])=>Ze===oe),Ye=Te[le];Y(B,"grid",{columnMap:j,columnName:Ye,row:Se,selectedRows:Q===0?cy:S(),viewport:e==null?void 0:e.viewport})}},[e==null?void 0:e.viewport,S,Y]);return{columns:y,columnsWithinViewport:U,containerMeasurements:h,containerProps:K,data:I,dispatchColumnAction:v,getRowOffset:T,handleContextMenuAction:P,headings:C,onColumnResize:N,onContextMenu:q,onRemoveColumnFromGroupBy:G,onRowClick:E,onSort:k,onToggleGroup:O,virtualColSpan:W,scrollProps:z,rowCount:d,viewportMeasurements:w,...X}};var Op=_(require("classnames"));var Np=require("@vuu-ui/vuu-utils"),zt=require("react/jsx-runtime"),In="vuuTable",dy=({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=(0,Ms.useIdMemo)(i),{containerMeasurements:{containerRef:b,innerSize:T,outerSize:x},containerProps:w,dispatchColumnAction:R,draggable:M,draggedItemIndex:E,handleContextMenuAction:I,scrollProps:S,viewportMeasurements:D,...L}=Hp({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=(0,Op.default)(In,e,{[`${In}-zebra`]:y,[`${In}-loading`]:(0,Np.isDataLoading)(L.columns)});return(0,zt.jsx)(Ap.ContextMenuProvider,{menuActionHandler:I,menuBuilder:Po(o),children:(0,zt.jsxs)("div",{...v,...w,className:H,id:C,ref:b,style:A,tabIndex:-1,children:[T?(0,zt.jsx)("div",{className:`${In}-scrollbarContainer`,ref:S.scrollbarContainerRef,children:(0,zt.jsx)("div",{className:`${In}-scrollbarContent`})}):null,T?(0,zt.jsxs)("div",{className:`${In}-contentContainer`,ref:S.contentContainerRef,children:[(0,zt.jsx)(Gd,{...L,headerHeight:r,tableId:C}),M]}):null,t&&T?(0,zt.jsx)(Ms.Button,{className:`${In}-settings`,"data-icon":"settings",onClick:d,variant:"secondary"}):null]})})};var zp=_(require("classnames")),Co=require("@vuu-ui/vuu-utils");var xo=require("react/jsx-runtime"),fr="vuuJsonCell",{IS_EXPANDED:py,KEY:my}=Co.metadataKeys,fy=t=>{let e=t.lastIndexOf("|");return e===-1?"":t.slice(e+1)},hy=({column:t,row:e})=>{let{key:n}=t,o=e[n],r=!1;(0,Co.isJsonAttribute)(o)&&(o=o.slice(0,-1),r=!0);let s=fy(e[my]),i=(0,zp.default)({[`${fr}-name`]:s===o,[`${fr}-value`]:s!==o,[`${fr}-group`]:r});if(r){let l=e[py]?"minus-box":"plus-box";return(0,xo.jsxs)("span",{className:i,children:[(0,xo.jsx)("span",{className:`${fr}-value`,children:o}),(0,xo.jsx)("span",{className:`${fr}-toggle`,"data-icon":l})]})}else return o?(0,xo.jsx)("span",{className:i,children:o}):null};(0,Co.registerComponent)("json",hy,"cell-renderer",{});var xm=require("@vuu-ui/vuu-popups"),Ns=require("@vuu-ui/vuu-utils");var Is=require("react");var Fp=require("@vuu-ui/vuu-utils"),Vp=_(require("classnames")),$p=require("react"),vo=(t,e,n)=>(0,$p.useMemo)(()=>{let o=(0,Vp.default)(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=(0,Fp.getColumnStyle)(t);return{className:o,style:r}},[t,e,n]);var Bp=require("@vuu-ui/vuu-popups"),Kp=_(require("classnames")),Pn=require("react");var _p=require("react/jsx-runtime"),gy=t=>{if(t){let{bottom:e,left:n}=t.getBoundingClientRect();return{x:n,y:e+6}}},Wp=({className:t,column:e,...n})=>{let o=(0,Pn.useRef)(null),[r,s]=(0,Pn.useState)(!1),[i]=(0,Bp.useContextMenu)(),l=(0,Pn.useCallback)(()=>{s(!1)},[]),a=(0,Pn.useCallback)(c=>{s(!0),i(c,"column-menu",{column:e,ContextMenuProps:{onClose:l,position:gy(o.current)}})},[e,l,i]);return(0,_p.jsx)("span",{...n,className:(0,Kp.default)("vuuTable-columnMenu",t,{"vuuTable-columnMenu-open":r}),"data-icon":"more-vert",onClick:a,ref:o})};var To=require("react");var Xp=require("react/jsx-runtime"),Gp=()=>{},by="vuuColumnResizer",Up=({onDrag:t,onDragEnd:e=Gp,onDragStart:n=Gp})=>{let o=(0,To.useRef)(0),r=(0,To.useCallback)(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=(0,To.useCallback)(l=>{window.removeEventListener("mouseup",s),window.removeEventListener("mousemove",r),e(l)},[e,r]),i=(0,To.useCallback)(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(0,Xp.jsx)("div",{className:by,"data-align":"end",onMouseDown:i})};var Ln=require("react"),Qp=({column:t,onResize:e,rootRef:n})=>{let o=(0,Ln.useRef)(0),r=(0,Ln.useRef)(!1),{name:s}=t,i=(0,Ln.useCallback)(()=>{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=(0,Ln.useCallback)((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=(0,Ln.useCallback)(()=>{e&&(e("end",s,o.current),setTimeout(()=>{r.current=!1},100))},[s,e]);return{isResizing:r.current,onDrag:l,onDragStart:i,onDragEnd:a}};var kn=require("react/jsx-runtime"),jp=({classBase:t,column:e,onClick:n,onResize:o,idx:r})=>{let s=(0,Is.useRef)(null),{isResizing:i,...l}=Qp({column:e,onResize:o,rootRef:s}),a=`${t}-col-header`,c=(0,Is.useCallback)(p=>!i&&(n==null?void 0:n(p)),[i,n]),{className:u,style:d}=vo(e,a,!0);return(0,kn.jsxs)("div",{className:u,"data-idx":r,onClick:c,ref:s,role:"cell",style:d,children:[(0,kn.jsx)(Wp,{column:e}),(0,kn.jsx)("div",{className:`${a}-label`,children:e.name}),(0,kn.jsx)(ys,{sorted:e.sorted}),e.resizeable!==!1?(0,kn.jsx)(Up,{...l}):null]})};var on=require("@vuu-ui/vuu-utils"),em=_(require("classnames")),ks=require("react");var Zp=require("react/jsx-runtime"),Yp=({column:t,row:e})=>{let{className:n,style:o}=vo(t,"vuuTableNextCell");return(0,Zp.jsx)("div",{className:n,role:"cell",style:o,children:e[t.key]})};var Ps=require("@vuu-ui/vuu-utils"),qp=require("react");var So=require("react/jsx-runtime"),{IS_LEAF:yy}=Ps.metadataKeys,Jp=({column:t,onClick:e,row:n})=>{let{columns:o}=t,[r,s]=(0,Ps.getGroupValueAndOffset)(o,n),{className:i,style:l}=vo(t,"vuuTable2-groupCell"),a=(0,qp.useCallback)(d=>{e==null||e(d,t)},[t,e]),c=n[yy],u=Array(s).fill(0).map((d,p)=>(0,So.jsx)("span",{className:"vuuTable2-groupCell-spacer"},p));return(0,So.jsxs)("div",{className:i,role:"cell",style:l,onClick:c?void 0:a,children:[u,c?null:(0,So.jsx)("span",{className:"vuuTable2-groupCell-toggle","data-icon":"vuu-triangle-right"}),(0,So.jsx)("span",{children:r})]})};var Ls=require("react/jsx-runtime"),tm=require("react"),{IDX:xy,IS_EXPANDED:Cy,SELECTED:vy}=on.metadataKeys,nn="vuuTableNextRow",hl=(0,ks.memo)(({className:t,columnMap:e,columns:n,row:o,offset:r,onClick:s,onToggleGroup:i,...l})=>{let{[xy]:a,[Cy]:c,[vy]:u}=o,d=(0,ks.useCallback)(y=>{let v=y.shiftKey,C=y.ctrlKey||y.metaKey;s==null||s(o,v,C)},[s,o]),{True:p,First:m,Last:f}=on.RowSelected,h=(0,em.default)(nn,t,{[`${nn}-even`]:a%2===0,[`${nn}-expanded`]:c,[`${nn}-selected`]:u&p,[`${nn}-selectedStart`]:u&m,[`${nn}-selectedEnd`]:u&f}),g=typeof r=="number"?{transform:`translate3d(0px, ${r}px, 0px)`}:void 0;return(0,tm.createElement)("div",{...l,key:`row-${o[0]}`,role:"row",className:h,onClick:d,style:g},(0,Ls.jsx)("span",{className:`${nn}-selectionDecorator vuuStickyLeft`}),n.filter(on.notHidden).map(y=>{let C=(0,on.isGroupColumn)(y)?Jp:Yp;return(0,Ls.jsx)(C,{column:y,row:o},y.key)}),(0,Ls.jsx)("span",{className:`${nn}-selectionDecorator vuuStickyRight`}))});hl.displayName="Row";var bm=require("@vuu-ui/vuu-popups"),st=require("@vuu-ui/vuu-utils"),ke=require("react");var Hs=(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}};var wo=require("react"),nm=({dataSource:t,initialRange:e})=>{let[n,o]=(0,wo.useState)([]);(0,wo.useMemo)(()=>{t==null||t.subscribe({range:e},s=>{s.type==="viewport-update"&&s.rows&&o(s.rows)})},[t,e]);let r=(0,wo.useCallback)(s=>{t.range=s},[t]);return{data:n,setRange:r}};var As=require("react"),om=t=>{let e=(0,As.useRef)(t);return(0,As.useMemo)(()=>e.current,[])};var re=require("@vuu-ui/vuu-utils"),rm=require("react"),{info:gl}=(0,re.logger)("useTableModel"),Ty=100,sm=re.metadataKeys.count,Sy=({serverDataType:t})=>t===void 0,wy=t=>{var e;if((0,re.isTypeDescriptor)(t.type))return(0,re.getCellRenderer)((e=t.type)==null?void 0:e.renderer)},Ey=(t,e)=>{var o;let n=e.columns.find(({name:r})=>r===t.name);return n?n.serverDataType:(o=t.serverDataType)!=null?o:"string"},Ry=["int","long","double"],im=t=>t===void 0?void 0:Ry.includes(t)?"right":"left",lm=t=>t.type==="columnSettings",am=t=>t.type==="tableSettings",Dy=(t,e)=>{switch(gl==null||gl(`GridModelReducer ${e.type}`),e.type){case"init":return um(e);case"moveColumn":return Iy(t,e);case"resizeColumn":return ky(t,e);case"setTableSchema":return Hy(t,e);case"hideColumns":return Py(t,e);case"showColumns":return Ly(t,e);case"pinColumn":return Ay(t,e);case"updateColumnProp":return Ro(t,e);case"tableConfig":return pm(t,e);default:return console.log(`unhandled action ${e.type}`),t}},cm=(t,e)=>{let[n,o]=(0,rm.useReducer)(Dy,{tableConfig:t,dataSourceConfig:e},um);return{columns:n.columns,dispatchColumnAction:o,headings:n.headings}};function um({dataSourceConfig:t,tableConfig:e}){let n=e.columns.map(dm(e)),o=n.some(re.isPinned)?(0,re.sortPinnedColumns)(n):n,r={columns:o,headings:(0,re.getTableHeadings)(o)};if(t){let{columns:s,...i}=t;return pm(r,{type:"tableConfig",...i})}else return r}var My=(t,e)=>e==="uppercase"?t.toUpperCase():e==="capitalize"?t[0].toUpperCase()+t.slice(1).toLowerCase():t,dm=t=>(e,n)=>{let{columnDefaultWidth:o=Ty,columnFormatHeader:r}=t,{align:s=im(e.serverDataType),key:i,name:l,label:a=l,width:c=o,...u}=e,d={...u,align:s,CellRenderer:wy(e),label:My(a,r),key:i!=null?i:n+sm,name:l,originalIdx:n,valueFormatter:(0,re.getValueFormatter)(e),width:c};return(0,re.isGroupColumn)(d)&&(d.columns=d.columns.map(p=>dm(t)(p,p.key))),d};function Iy(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:kl(r,s,o)}}return t}function Py(t,{columns:e}){return e.some(n=>n.hidden!==!0)?e.reduce((n,o)=>o.hidden!==!0?Ro(n,{type:"updateColumnProp",column:o,hidden:!0}):n,t):t}function Ly(t,{columns:e}){return e.some(n=>n.hidden)?e.reduce((n,o)=>o.hidden?Ro(n,{type:"updateColumnProp",column:o,hidden:!1}):n,t):t}function ky(t,{column:e,phase:n,width:o}){let r="updateColumnProp",s=n!=="end";switch(n){case"begin":return Ro(t,{type:r,column:e,resizing:s});case"end":return Ro(t,{type:r,column:e,resizing:s,width:o});case"resize":return Ro(t,{type:r,column:e,width:o});default:throw Error(`useTableModel.resizeColumn, invalid resizePhase ${n}`)}}function Hy(t,{tableSchema:e}){let{columns:n}=t;if(n.some(Sy)){let o=n.map(r=>{var i;let s=Ey(r,e);return{...r,align:(i=r.align)!=null?i:im(s),serverDataType:s}});return{...t,columns:o}}else return t}function Ay(t,e){let{columns:n}=t,{column:o,pin:r}=e,s=n.find(i=>i.name===o.name);return s?(n=Eo(n,{...s,pin:r}),n=(0,re.sortPinnedColumns)(n),{...t,columns:n}):t}function Ro(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=Eo(n,{...c,align:o})),typeof i=="string"&&(n=Eo(n,{...c,label:i})),typeof l=="boolean"&&(n=Eo(n,{...c,resizing:l})),typeof s=="boolean"&&(n=Eo(n,{...c,hidden:s})),typeof a=="number"&&(n=Eo(n,{...c,width:a}))),{...t,columns:n}}function pm(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=(0,re.getColumnName)(d),f=p+sm,h=(0,re.findColumn)(u.columns,m);if(h)return h.key===f?h:{...h,key:f};throw Error(`useTableModel column ${d} not found`)})}),l&&(u={...t,columns:(0,re.applyGroupByToColumns)(u.columns,r,n)}),c&&(u={...t,columns:(0,re.applySortToColumns)(u.columns,s)}),a?u={...t,columns:(0,re.applyFilterToColumns)(u.columns,o)}:u.columns.some(re.isFilteredColumn)&&(u={...t,columns:(0,re.stripFilterFromColumns)(u.columns)}),u}function Eo(t,e){return t.map(n=>n.name===e.name?e:n)}var Ve=require("react"),mm=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]},fm=({onAttach:t,onDetach:e})=>{let n=(0,Ve.useRef)(null);return(0,Ve.useCallback)(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])},hm=({maxScrollLeft:t,maxScrollTop:e,onHorizontalScroll:n,onVerticalScroll:o})=>{let r=(0,Ve.useRef)(!1),s=(0,Ve.useRef)({scrollTop:0,scrollLeft:0}),i=(0,Ve.useRef)(null),l=(0,Ve.useRef)(null),a=(0,Ve.useCallback)(()=>{let{current:y}=l,{current:v}=i,{current:C}=r;if(C)r.current=!1;else if(y&&v){let[b,T]=mm(v),x=Math.round(b*t),w=Math.round(T*e);y.scrollTo({left:x,top:w,behavior:"auto"})}},[t,e]),c=(0,Ve.useCallback)(()=>{let{current:y}=l,{current:v}=i,{current:C}=s;if(y&&v){let{scrollLeft:b,scrollTop:T}=y,[x,w]=mm(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=(0,Ve.useCallback)(y=>{i.current=y,y.addEventListener("scroll",a,{passive:!0})},[a]),d=(0,Ve.useCallback)(y=>{i.current=null,y.removeEventListener("scroll",a)},[a]),p=(0,Ve.useCallback)(y=>{l.current=y,y.addEventListener("scroll",c,{passive:!0})},[c]),m=(0,Ve.useCallback)(y=>{l.current=null,y.removeEventListener("scroll",c)},[c]),f=fm({onAttach:p,onDetach:m}),h=fm({onAttach:u,onDetach:d}),g=(0,Ve.useCallback)(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}};var Os=require("react"),gm=({columns:t,getRowAtPosition:e,setRange:n,viewportMeasurements:o})=>{let r=(0,Os.useRef)(-1),{contentWidth:s,rowCount:i}=o;return{onVerticalScroll:(0,Os.useCallback)(a=>{let c=e(a);c!==r.current&&(r.current=c,n({from:c,to:c+i}))},[e,n,i])}};var ym=({config:t,dataSource:e,headerHeight:n,onConfigChange:o,onFeatureEnabled:r,onFeatureInvocation:s,onSelectionChange:i,rowHeight:l,selectionModel:a,...c})=>{let[u]=(0,ke.useState)(e.size),d=tt();if(e===void 0)throw Error("no data source provided to Vuu Table");let p=(0,ke.useMemo)(()=>Po(e),[e]),{containerRef:m,...f}=cr(c),{columns:h,dispatchColumnAction:g,headings:y}=cm(t,e.config);Dr(()=>{g({type:"init",dataSourceConfig:e.config,tableConfig:t})},[t,e.config,g]);let[v,C]=(0,ke.useState)(),[b,T]=(0,ke.useMemo)(()=>{let z=(K,G)=>{let se=(0,st.updateColumn)(h,K,{width:G});C(se)};return[v!=null?v:h,z]},[h,v]),x=(0,ke.useMemo)(()=>(0,st.buildColumnMap)(t.columns.map(z=>z.name)),[t.columns]),{getRowAtPosition:w,getRowOffset:R,setPctScrollTop:M,...E}=pr({columns:b,headerHeight:n,headings:y,rowCount:u,rowHeight:l,size:f.innerSize}),I=om({from:0,to:E.rowCount+1}),{data:S,setRange:D}=nm({dataSource:e,initialRange:I});(0,ke.useMemo)(()=>{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=(0,ke.useCallback)(z=>{lm(z)?d({type:"set-props",path:"#context-panel",props:{expanded:!0,context:"column-settings",column:z.column,title:"Column Settings"}}):am(z)?d({type:"set-props",path:"#context-panel",props:{expanded:!0,content:{type:"TableSettings",props:{availableColumns:t.columns.map(({name:K,serverDataType:G})=>({name:K,serverDataType:G})),onConfigChange:o,tableConfig:t}},title:"DataGrid Settings"}}):g(z)},[t,g,d,o]),A=Lo({dataSource:e,onPersistentColumnOperation:L}),{onVerticalScroll:H}=gm({columns:b,getRowAtPosition:w,setRange:D,viewportMeasurements:E}),P=(0,ke.useCallback)(z=>{H(z)},[H]),{requestScroll:k,...N}=hm({maxScrollLeft:E.maxScrollContainerScrollHorizontal,maxScrollTop:E.maxScrollContainerScrollVertical,onVerticalScroll:P}),[O]=(0,bm.useContextMenu)(),F=(0,ke.useCallback)(z=>{let K=z.target,G=K==null?void 0:K.closest("div[role='cell']"),se=K==null?void 0:K.closest("div[role='row']");if(G&&se){let X=(0,st.buildColumnMap)(b),Y=Array.from(se.childNodes).indexOf(G),q=b[Y];O(z,"grid",{columnMap:X,columnName:q})}},[b,O]),$=(0,ke.useCallback)((z,K=!1,G)=>{e&&(e.sort=(0,st.applySort)(e.sort,z,K,G))},[e]),U=(0,ke.useCallback)(z=>{var q;let G=z.target.closest(".TableNext-col-header"),se=parseInt((q=G==null?void 0:G.dataset.idx)!=null?q:"-1"),X=(0,st.visibleColumnAtIndex)(b,se),Y=z.shiftKey;X&&$(X,Y)},[b,$]),W=(0,ke.useCallback)(z=>{e.select(z),i==null||i(z)},[e,i]),Z=dr({onSelectionChange:W,selectionModel:a}),V=(0,ke.useCallback)((z,K,G)=>{let se=b.find(X=>X.name===K);if(se)z==="resize"?(0,st.isValidNumber)(G)&&T(K,G):z==="end"?(0,st.isValidNumber)(G)&&(o==null||o(Hs(t,{type:"col-size",column:se,width:G}))):(C(void 0),g({type:"resizeColumn",phase:z,column:se,width:G}));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:U,onHeaderResize:V,onRowClick:Z,scrollProps:N,viewportMeasurements:E}};var Ge=require("react/jsx-runtime"),Et="vuuTableNext",{IDX:Oy,RENDER_IDX:Ny}=Ns.metadataKeys,Cm=({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}=ym({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(0,Ge.jsx)(xm.ContextMenuProvider,{menuActionHandler:w,menuBuilder:I,children:A?(0,Ge.jsx)("div",{...g,className:Et,style:H(),ref:T}):(0,Ge.jsxs)("div",{...g,className:Et,style:H(),ref:T,children:[(0,Ge.jsx)("div",{className:`${Et}-scrollbarContainer`,ref:S.scrollbarContainerRef,children:(0,Ge.jsx)("div",{className:`${Et}-scrollbarContent`})}),(0,Ge.jsx)("div",{className:`${Et}-contentContainer`,ref:S.contentContainerRef,children:(0,Ge.jsxs)("div",{...L,className:`${Et}-table`,children:[(0,Ge.jsx)("div",{className:`${Et}-col-headings`,children:(0,Ge.jsx)("div",{className:`${Et}-col-headers`,role:"row",children:v.filter(Ns.notHidden).map((P,k)=>(0,Ge.jsx)(jp,{classBase:Et,column:P,idx:k,onClick:R,onResize:M},P.name))})}),(0,Ge.jsx)("div",{className:`${Et}-body`,children:x.map(P=>(0,Ge.jsx)(hl,{columnMap:y,columns:v,onClick:E,row:P,offset:p*P[Oy]+o},P[Ny]))})]})})]})})};
|
|
21
22
|
//# sourceMappingURL=index.js.map
|