@vuu-ui/vuu-table 0.8.26 → 0.8.27

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/cjs/index.js CHANGED
@@ -1,2 +1,2 @@
1
- "use strict";var mr=Object.create;var Je=Object.defineProperty;var dr=Object.getOwnPropertyDescriptor;var pr=Object.getOwnPropertyNames;var br=Object.getPrototypeOf,fr=Object.prototype.hasOwnProperty;var gr=(e,o)=>{for(var t in o)Je(e,t,{get:o[t],enumerable:!0})},nt=(e,o,t,r)=>{if(o&&typeof o=="object"||typeof o=="function")for(let n of pr(o))!fr.call(e,n)&&n!==t&&Je(e,n,{get:()=>o[n],enumerable:!(r=dr(o,n))||r.enumerable});return e};var de=(e,o,t)=>(t=e!=null?mr(br(e)):{},nt(o||!e||!e.__esModule?Je(t,"default",{value:e,enumerable:!0}):t,e)),Cr=e=>nt(Je({},"__esModule",{value:!0}),e);var Tl={};gr(Tl,{CheckboxCell:()=>Uo,GroupHeaderCell:()=>qe,GroupHeaderCellNext:()=>qe,HeaderCell:()=>ho,InputCell:()=>Ln,Table:()=>vl,TableCell:()=>To,TableGroupCell:()=>yo,ToggleCell:()=>Fn,isShowColumnSettings:()=>Go,isShowTableSettings:()=>Ko,noScrolling:()=>mn,updateTableConfig:()=>Lo,useControlledTableNavigation:()=>xl,useTableModel:()=>Oo,useTableScroll:()=>$o,useTableViewport:()=>Bo});module.exports=Cr(Tl);var bt=require("@vuu-ui/vuu-ui-controls"),ft=require("@vuu-ui/vuu-utils"),gt=de(require("clsx")),Fe=require("react");var lt=de(require("clsx")),it=require("react");var Ze=require("react/jsx-runtime"),rt="vuuColumnHeaderPill",Ae=({children:e,className:o,column:t,onRemove:r,removable:n,...l})=>{if(n&&typeof r!="function")throw Error("ColumnHeaderPill onRemove prop must be provided if Pill is removable");let a=(0,it.useCallback)(i=>{i.preventDefault(),i.stopPropagation(),r==null||r(t)},[t,r]);return(0,Ze.jsxs)("div",{...l,className:(0,lt.default)(rt,o),children:[e,n?(0,Ze.jsx)("span",{className:`${rt}-removeButton`,role:"button","data-icon":"cross",onClick:a}):null]})};var Ie=require("react/jsx-runtime"),at=({column:e,...o})=>{let{name:t,sorted:r}=e,n=typeof r=="number"?r<0?"arrow-down":"arrow-up":r==="A"?"arrow-up":r==="D"?"arrow-down":void 0;return(0,Ie.jsxs)(Ae,{...o,column:e,children:[(0,Ie.jsx)("span",{className:"vuuGroupColumnPill-label",children:t}),n!==void 0?(0,Ie.jsx)("span",{"data-icon":n}):null,typeof r=="number"?(0,Ie.jsx)("span",{className:"vuuSortPosition",children:Math.abs(r)}):null]})};var _e=require("react/jsx-runtime"),st=({column:e})=>{if(!e.sorted)return null;let o=typeof e.sorted=="number"?e.sorted<0?"arrow-down":"arrow-up":e.sorted==="A"?"arrow-up":"arrow-down";return(0,_e.jsxs)(Ae,{column:e,children:[(0,_e.jsx)("span",{"data-icon":o}),typeof e.sorted=="number"?(0,_e.jsx)("span",{className:"vuuSortPosition",children:Math.abs(e.sorted)}):null]})};var ze=require("react");var ct=require("react/jsx-runtime"),ut=()=>{},vr="vuuColumnResizerNext",Ye=({onDrag:e,onDragEnd:o=ut,onDragStart:t=ut})=>{let r=(0,ze.useRef)({start:0,now:0}),n=(0,ze.useCallback)(i=>{i.stopPropagation&&i.stopPropagation(),i.preventDefault&&i.preventDefault();let{current:s}=r,u=Math.round(i.clientX),d=u-s.now,m=s.now-s.start;r.current.now=u,d!==0&&e(i,d,m)},[e]),l=(0,ze.useCallback)(i=>{window.removeEventListener("mouseup",l),window.removeEventListener("mousemove",n);let{current:s}=r,u=s.now-s.start;o(i,u)},[o,n]),a=(0,ze.useCallback)(i=>{let{current:s}=r;t(i),s.now=s.start=Math.round(i.clientX),window.addEventListener("mouseup",l),window.addEventListener("mousemove",n),i.stopPropagation&&i.stopPropagation(),i.preventDefault&&i.preventDefault()},[t,n,l]);return(0,ct.jsx)("div",{className:vr,onMouseDown:a})};var we=require("react"),je=({column:e,onResize:o,rootRef:t})=>{let r=(0,we.useRef)({start:0,now:0}),[n,l]=(0,we.useState)(!1),{name:a}=e,i=(0,we.useCallback)(()=>{if(o&&t.current){let{current:d}=r,{width:m}=t.current.getBoundingClientRect();d.start=d.now=Math.round(m),l(!0),o==null||o("begin",a)}},[a,o,t]),s=(0,we.useCallback)((d,m,b)=>{if(t.current&&o){let{current:C}=r,h=C.start+b;h!==C.now&&h>0&&(o("resize",a,h),C.now=h)}},[a,o,t]),u=(0,we.useCallback)(()=>{if(o){let{current:d}=r;o("end",a,d.now),setTimeout(()=>{l(!1)},80)}},[a,o]);return{isResizing:n,onDrag:s,onDragStart:i,onDragEnd:u}};var mt=require("@vuu-ui/vuu-utils"),dt=de(require("clsx")),pt=require("react"),xe=(e,o,t)=>(0,pt.useMemo)(()=>{let r=(0,dt.default)(o,{vuuPinFloating:e.pin==="floating",vuuPinLeft:e.pin==="left",vuuPinRight:e.pin==="right",vuuEndPin:t&&e.endPin,[`${o}-editable`]:e.editable,[`${o}-right`]:e.align==="right"}),n=(0,mt.getColumnStyle)(e);return{className:r,style:n}},[e,o,t]);var Ne=require("react/jsx-runtime"),Ct=require("react"),vo="vuuTableGroupHeaderCell",hr=(e,o)=>e===o?e:o,qe=({column:e,className:o,onMoveColumn:t,onRemoveColumn:r,onResize:n,...l})=>{let a=(0,Fe.useRef)(null),{isResizing:i,...s}=je({column:e,onResize:n,rootRef:a}),[u,d]=(0,Fe.useState)(e.columns),{className:m,style:b}=xe(e,vo,!0),C=u.length>1?{removable:!0,onRemove:r}:void 0,h=(0,Fe.useCallback)((x,c)=>{d(v=>{let T=v.slice(),[k]=T.splice(x,1);if(c===-1){let D=T.concat(k);return t==null||t(D),D}else return T.splice(c,0,k),t==null||t(T),T})},[t]);return(0,ft.useLayoutEffectSkipFirst)(()=>{d(x=>hr(x,e.columns))},[e.columns]),(0,Ne.jsxs)("div",{...l,className:(0,gt.default)(m,o,{[`${vo}-pending`]:e.groupConfirmed===!1}),ref:a,role:"columnheader",style:b,children:[(0,Ne.jsx)(bt.OverflowContainer,{allowDragDrop:!0,className:`${vo}-inner`,onMoveItem:h,overflowPosition:"start",children:u.map(x=>(0,Ct.createElement)(at,{...C,column:x,key:x.name}))}),(0,Ne.jsx)(Ae,{column:e,removable:!0,onRemove:r}),e.resizeable!==!1?(0,Ne.jsx)(Ye,{...s}):null]})};var Tt=de(require("clsx")),oo=require("react");var vt=require("@vuu-ui/vuu-popups"),ht=de(require("clsx"));var xt=require("react/jsx-runtime"),wr="vuuColumnMenu",wt=({className:e,column:o})=>(0,xt.jsx)(vt.PopupMenu,{className:(0,ht.default)(wr,e),"data-embedded":!0,menuLocation:"column-menu",menuOptions:{column:o}});var ge=require("react/jsx-runtime"),eo="vuuTableHeaderCell",ho=({className:e,column:o,onClick:t,onResize:r,...n})=>{var T;let{HeaderCellContentRenderer:l,HeaderCellLabelRenderer:a}=o,i=(0,oo.useRef)(null),{isResizing:s,...u}=je({column:o,onResize:r,rootRef:i}),d=(0,oo.useCallback)(k=>{!s&&(t==null||t(k))},[s,t]),{className:m,style:b}=xe(o,eo,!0),C=(0,ge.jsx)(wt,{column:o}),h=a?(0,ge.jsx)(a,{className:`${eo}-label`,column:o}):(0,ge.jsx)("div",{className:`${eo}-label`,children:(T=o.label)!=null?T:o.name}),x=l?[(0,ge.jsx)(l,{column:o},"content")]:[],c=(0,ge.jsx)(st,{column:o}),v=o.align==="right"?[c,h].concat(x).concat(C):[C,h,c].concat(x);return(0,ge.jsxs)("div",{...n,className:(0,Tt.default)(m,e,{[`${eo}-resizing`]:s}),onClick:d,ref:i,role:"columnheader",style:b,children:[...v,o.resizeable!==!1?(0,ge.jsx)(Ye,{...u}):null]})};var yn=require("@vuu-ui/vuu-popups"),Dn=require("@vuu-ui/vuu-ui-controls"),so=require("@vuu-ui/vuu-utils"),Hn=require("@salt-ds/core"),Vo=de(require("clsx")),Ve=require("react");var le=require("@vuu-ui/vuu-utils"),Do=de(require("clsx")),Pe=require("react");var Rt=require("@vuu-ui/vuu-utils"),wo=require("react");var xo=require("react/jsx-runtime"),xr="vuuTableCell",To=({column:e,columnMap:o,onClick:t,onDataEdited:r,row:n})=>{let{className:l,style:a}=xe(e,xr),{CellRenderer:i,index:s,name:u,valueFormatter:d}=e,m=o[u],b=(0,wo.useCallback)(h=>{if(r){let x=h;return(0,Rt.isNumericColumn)(e)&&typeof h=="string"&&(x=e.serverDataType==="double"?parseFloat(h):parseInt(h)),r==null?void 0:r(n,u,x)}else throw Error("TableCell onDataEdited prop not supplied for an editable cell")},[e,u,r,n]),C=(0,wo.useCallback)(h=>{t==null||t(h,e)},[e,t]);return(0,xo.jsx)("div",{"aria-colindex":s,className:l,onClick:t?C:void 0,role:"cell",style:a,children:i?(0,xo.jsx)(i,{column:e,columnMap:o,onCommit:b,row:n}):d(n[m])})};var to=require("@vuu-ui/vuu-utils"),yt=require("react");var Dt=de(require("clsx"));var Ge=require("react/jsx-runtime"),{IS_LEAF:Tr}=to.metadataKeys,Ro="vuuTableGroupCell",yo=({column:e,columnMap:o,onClick:t,row:r})=>{let{columns:n}=e,[l,a]=(0,to.getGroupValueAndOffset)(n,r,o),{className:i,style:s}=xe(e,Ro),u=(0,yt.useCallback)(b=>{t==null||t(b,e)},[e,t]),d=r[Tr],m=Array(a).fill(0).map((b,C)=>(0,Ge.jsx)("span",{className:`${Ro}-spacer`},C));return(0,Ge.jsxs)("div",{className:(0,Dt.default)(i,"vuuTableCell"),role:"cell",style:s,onClick:d?void 0:u,children:[m,d?null:(0,Ge.jsx)("span",{className:`${Ro}-toggle`,"data-icon":"triangle-right"}),(0,Ge.jsx)("span",{children:l})]})};var Te=require("react/jsx-runtime"),{IDX:Rr,IS_EXPANDED:yr,SELECTED:Dr}=le.metadataKeys,pe="vuuTableRow",Ht=(0,Pe.forwardRef)(function({height:o},t){return(0,Te.jsx)("div",{"aria-hidden":!0,className:(0,Do.default)(pe,`${pe}-proxy`),ref:t,style:{height:o}})}),Ho=(0,Pe.memo)(({className:e,classNameGenerator:o,columnMap:t,columns:r,highlighted:n,row:l,offset:a,onClick:i,onDataEdited:s,onToggleGroup:u,virtualColSpan:d=0,zebraStripes:m=!1,...b})=>{let{[Rr]:C,[yr]:h,[Dr]:x}=l,c=(0,Pe.useCallback)(P=>{let z=P.shiftKey,G=P.ctrlKey||P.metaKey;i==null||i(P,l,z,G)},[i,l]),{True:v,First:T,Last:k}=le.RowSelected,D=(0,Do.default)(pe,e,o==null?void 0:o(l,t),{[`${pe}-even`]:m&&C%2===0,[`${pe}-expanded`]:h,[`${pe}-highlighted`]:n,[`${pe}-selected`]:x&v,[`${pe}-selectedStart`]:x&T,[`${pe}-selectedEnd`]:x&k}),A={transform:`translate3d(0px, ${a}px, 0px)`},F=(0,Pe.useCallback)((P,z)=>{((0,le.isGroupColumn)(z)||(0,le.isJsonGroup)(z,l,t))&&(P.stopPropagation(),u==null||u(l,z))},[t,u,l]);return(0,Te.jsxs)("div",{...b,role:"row",className:D,onClick:c,style:A,children:[(0,Te.jsx)("span",{className:`${pe}-selectionDecorator vuuStickyLeft`}),d>0?(0,Te.jsx)("div",{className:"vuuTableCell",style:{width:d}}):null,r.filter(le.isNotHidden).map(P=>{let z=(0,le.isGroupColumn)(P),G=(0,le.isJsonColumn)(P);return(0,Te.jsx)(z?yo:To,{column:P,columnMap:t,onClick:z||G?F:void 0,onDataEdited:s,row:l},P.name)}),(0,Te.jsx)("span",{className:`${pe}-selectionDecorator vuuStickyRight`})]})});Ho.displayName="Row";var no=require("@vuu-ui/vuu-utils"),Et=de(require("clsx")),kt=require("react");var Mt=require("@vuu-ui/vuu-ui-controls"),Ke=require("@vuu-ui/vuu-utils"),Ee=require("react"),Pt=({columns:e,onMoveColumn:o,onSortColumn:t,tableConfig:r})=>{let n=(0,Ee.useRef)(null),l=(0,Ee.useRef)(null),a=(0,Ee.useCallback)(b=>{n.current=b,b?l.current=b.closest(".vuuTable-contentContainer"):l.current=null},[]),i=(0,Ee.useCallback)(({fromIndex:b,toIndex:C})=>{let h=e[b],x=(0,Ke.moveColumnTo)(e,h,C),c=({name:D})=>A=>A.name===D,v=x.findIndex(c(h)),T=x[v+1],k=T?r.columns.findIndex(c(T)):-1;C>b&&k!==-1?o((0,Ke.moveColumnTo)(r.columns,h,k-1)):o((0,Ke.moveColumnTo)(r.columns,h,k))},[e,o,r.columns]),s=(0,Ee.useCallback)(b=>{var T;let h=b.target.closest(".vuuTableHeaderCell"),x=parseInt((T=h==null?void 0:h.dataset.index)!=null?T:"-1"),c=(0,Ke.visibleColumnAtIndex)(e,x),v=b.shiftKey;c&&t(c,v)},[e,t]),{onMouseDown:u,draggable:d,...m}=(0,Mt.useDragDrop)({allowDragDrop:!0,containerRef:n,draggableClassName:"vuuTable",itemQuery:".vuuTableHeaderCell",onDrop:i,orientation:"horizontal",scrollingContainerRef:l});return{draggableColumn:d,draggedColumnIndex:m.draggedItemIndex,onClick:s,onMouseDown:u,setContainerRef:a}};var Ce=require("react/jsx-runtime"),Mo=(0,kt.memo)(({classBase:e="vuuTable",columns:o,headings:t,onMoveColumn:r,onMoveGroupColumn:n,onRemoveGroupColumn:l,onResizeColumn:a,onSortColumn:i,tableConfig:s,tableId:u,virtualColSpan:d=0})=>{let{draggableColumn:m,draggedColumnIndex:b,onClick:C,onMouseDown:h,setContainerRef:x}=Pt({columns:o,onMoveColumn:r,onSortColumn:i,tableConfig:s});return(0,Ce.jsxs)("div",{className:`${e}-col-headings`,ref:x,children:[t.map((c,v)=>(0,Ce.jsx)("div",{className:"vuuTable-heading",children:c.map(({label:T,width:k},D)=>(0,Ce.jsx)("div",{className:"vuuTable-headingCell",style:{width:k},children:T},D))},v)),(0,Ce.jsxs)("div",{className:`${e}-col-headers`,role:"row",children:[d>0?(0,Ce.jsx)("div",{role:"cell",className:"vuuTableCell",style:{width:d}}):null,o.filter(no.isNotHidden).map((c,v)=>(0,no.isGroupColumn)(c)?(0,Ce.jsx)(qe,{"aria-colindex":c.index,column:c,"data-index":v,onMoveColumn:n,onRemoveColumn:l,onResize:a},c.name):(0,Ce.jsx)(ho,{"aria-colindex":c.index,className:(0,Et.default)({"vuuDraggable-dragAway":v===b}),column:c,"data-index":v,id:`${u}-col-${v}`,onClick:C,onMouseDown:h,onResize:a},c.name)),m]})]})});Mo.displayName="TableHeader";var wn=require("@vuu-ui/vuu-ui-controls"),B=require("@vuu-ui/vuu-utils"),M=require("react");var St=require("@vuu-ui/vuu-utils"),Lt=e=>(o,t)=>{let r=[];return e===void 0||(o==="header"||o==="column-menu")&&(r.push(...Hr(t,e)),r.push(...Er(t,e)),r.push(...Mr(t,e)),r.push(...Pr(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})),r};function Hr(e,{sort:{sortDefs:o}}){let{column:t}=e,r=[];if(t===void 0)return r;let n=o.length>0;return t.sorted==="A"?r.push({label:"Reverse Sort (DSC)",action:"sort-dsc",options:e}):t.sorted==="D"?r.push({label:"Reverse Sort (ASC)",action:"sort-asc",options:e}):typeof t.sorted=="number"?(t.sorted>0?r.push({label:"Reverse Sort (DSC)",action:"sort-add-dsc",options:e}):r.push({label:"Reverse Sort (ASC)",action:"sort-add-asc",options:e}),n&&Math.abs(t.sorted)<o.length&&r.push({label:"Remove from sort",action:"sort-remove",options:e}),r.push({label:"New Sort",children:[{label:"Ascending",action:"sort-asc",options:e},{label:"Descending",action:"sort-dsc",options:e}]})):n?(r.push({label:"Add to sort",children:[{label:"Ascending",action:"sort-add-asc",options:e},{label:"Descending",action:"sort-add-dsc",options:e}]}),r.push({label:"New Sort",children:[{label:"Ascending",action:"sort-asc",options:e},{label:"Descending",action:"sort-dsc",options:e}]})):r.push({label:"Sort",children:[{label:"Ascending",action:"sort-asc",options:e},{label:"Descending",action:"sort-dsc",options:e}]}),r}function Mr(e,o){let{column:t}=e;if(t===void 0||o.groupBy.length===0)return[];let{name:r,label:n=r}=t;return[{label:`Aggregate ${n}`,children:[{label:"Count",action:"agg-count",options:e},{label:"Distinct",action:"agg-distinct",options:e}].concat((0,St.isNumericColumn)(t)?[{label:"Sum",action:"agg-sum",options:e},{label:"Avg",action:"agg-avg",options:e},{label:"High",action:"agg-high",options:e},{label:"Low",action:"agg-low",options:e}]:[])}]}var So=(e,o)=>({label:`Pin ${o}`,action:`column-pin-${o}`,options:e}),Po=e=>So(e,"left"),Eo=e=>So(e,"floating"),ko=e=>So(e,"right");function Pr(e){let{column:o}=e;if(o===void 0)return[];let{pin:t}=o,r=[{label:"Hide column",action:"column-hide",options:e},{label:"Remove column",action:"column-remove",options:e}];return t===void 0?r.push({label:"Pin column",children:[Po(e),Eo(e),ko(e)]}):t==="left"?r.push({label:"Unpin column",action:"column-unpin",options:e},{label:"Pin column",children:[Eo(e),ko(e)]}):t==="right"?r.push({label:"Unpin column",action:"column-unpin",options:e},{label:"Pin column",children:[Po(e),Eo(e)]}):t==="floating"&&r.push({label:"Unpin column",action:"column-unpin",options:e},{label:"Pin column",children:[Po(e),ko(e)]}),r}function Er(e,{groupBy:o}){let{column:t}=e,r=[];if(t===void 0)return r;let{name:n,label:l=n}=t;return o.length===0?r.push({label:`Group by ${l}`,action:"group",options:e}):r.push({label:`Add ${l} to group by`,action:"group-add",options:e}),r}var At=require("@vuu-ui/vuu-utils"),_=require("@vuu-ui/vuu-utils"),kr=(e,o)=>{if(e.filterStruct&&o){let[t,r]=(0,At.removeColumnFromFilter)(o,e.filterStruct);return{filter:r,filterStruct:t}}else return e},{Average:Sr,Count:Lr,Distinct:Ar,High:Ir,Low:zr,Sum:Nr}=_.AggregationType,It=({dataSource:e,onPersistentColumnOperation:o})=>r=>{let n=r.options;if(n.column&&e){let{column:l}=n;switch(r.menuId){case"sort-asc":return e.sort=(0,_.setSortColumn)(e.sort,l,"A"),!0;case"sort-dsc":return e.sort=(0,_.setSortColumn)(e.sort,l,"D"),!0;case"sort-add-asc":return e.sort=(0,_.addSortColumn)(e.sort,l,"A"),!0;case"sort-add-dsc":return e.sort=(0,_.addSortColumn)(e.sort,l,"D"),!0;case"group":return e.groupBy=(0,_.addGroupColumn)(e.groupBy,l),!0;case"group-add":return e.groupBy=(0,_.addGroupColumn)(e.groupBy,l),!0;case"column-hide":return o({type:"hideColumns",columns:[l]}),!0;case"column-remove":return e.columns=e.columns.filter(a=>a!==l.name),!0;case"filter-remove-column":return e.filter=kr(e.filter,l),!0;case"remove-filters":return e.filter={filter:""},!0;case"agg-avg":return e.aggregations=(0,_.setAggregations)(e.aggregations,l,Sr),!0;case"agg-high":return e.aggregations=(0,_.setAggregations)(e.aggregations,l,Ir),!0;case"agg-low":return e.aggregations=(0,_.setAggregations)(e.aggregations,l,zr),!0;case"agg-count":return e.aggregations=(0,_.setAggregations)(e.aggregations,l,Lr),!0;case"agg-distinct":return e.aggregations=(0,_.setAggregations)(e.aggregations,l,Ar),!0;case"agg-sum":return e.aggregations=(0,_.setAggregations)(e.aggregations,l,Nr),!0;case"column-pin-floating":return o({type:"pinColumn",column:l,pin:"floating"}),!0;case"column-pin-left":return o({type:"pinColumn",column:l,pin:"left"}),!0;case"column-pin-right":return o({type:"pinColumn",column:l,pin:"right"}),!0;case"column-unpin":return o({type:"pinColumn",column:l,pin:void 0}),!0;case"column-settings":return o({type:"columnSettings",column:l}),!0;case"table-settings":return o({type:"tableSettings"}),!0;default:}}return!1};var Lo=(e,o)=>{switch(o.type){case"col-size":return{...e,columns:e.columns.map(t=>t.name===o.column.name?{...t,width:o.width}:t)};case"column-prop":return{...e,columns:e.columns.map(t=>t.name===o.column.name?{...t,[o.property]:o.value}:t)};default:return e}};var Kt=require("@vuu-ui/vuu-utils"),Re=require("react");var Ao=e=>`.vuuTable-col-headers .vuuTableHeaderCell:nth-child(${e})`,Io=(e,o)=>`.vuuTable-body > [aria-rowindex='${e+1}'] > [role='cell']:nth-child(${o+1})`,zt=(e,[o,t])=>{var l;let r=o===-1?Ao(t):Io(o,t),n=(l=e.current)==null?void 0:l.querySelector(r);return Fr(n)&&n.querySelector("button")||n},Fr=e=>e==null?void 0:e.classList.contains("vuuTableCell-editable"),Nt=e=>e.querySelector(".vuuTableInputCell")!==null;function Gr(e){if(e){let o=e.ariaRowIndex;if(o!==null)return parseInt(o,10)-1}return-1}var Kr=e=>e.closest('[role="row"]'),Ft=e=>Gr(Kr(e)),Or=[void 0,void 0],Gt=(e,o,t=e.closest(".vuuTable-contentContainer"))=>{if(t){let r=t==null?void 0:t.getBoundingClientRect(),n=r.top+o,l=e.getBoundingClientRect();if(l)return l.bottom>r.bottom?["down",l.bottom-r.bottom]:l.top<n?["up",l.top-n]:Or;throw Error("Whats going on, row not found")}else throw Error("Whats going on, scrollbar container not found")};var Ot=({navigate:e})=>{let o=(0,Re.useCallback)(()=>{e()},[e]),t=(0,Re.useCallback)(s=>{let u=s.target,d=u.matches("input")?u:u.querySelector("input");d&&(d.focus(),d.select())},[]),r=(0,Re.useCallback)(s=>{let d=s.target.querySelector("input");d&&(d.focus(),d.select())},[]),n=(0,Re.useCallback)(s=>{let u=s.target;Nt(u)&&((0,Kt.isCharacterKey)(s.key)?t(s):s.key==="Enter"&&r(s))},[t,r]),l=(0,Re.useCallback)(s=>{let u=s.target;(u.matches("input")||u.querySelector("input"))&&(t(s),s.stopPropagation())},[t]),a=(0,Re.useCallback)(s=>{s.target.removeEventListener("vuu-commit",o,!0)},[o]),i=(0,Re.useCallback)(s=>{s.target.addEventListener("vuu-commit",o,!0)},[o]);return{onBlur:a,onDoubleClick:l,onFocus:i,onKeyDown:n}};var ye=require("@vuu-ui/vuu-utils"),Q=require("react");var Oe=require("@vuu-ui/vuu-utils"),{SELECTED:zo}=Oe.metadataKeys,ro=class{constructor({from:o,to:t}){this.rowCount=0;this.setRowCount=o=>{o<this.data.length&&(this.data.length=o),this.rowCount=o};this.range=new Oe.WindowRange(o,t),this.data=new Array(Math.max(0,t-o)),this.rowCount=0}add(o){let[t]=o;if(this.isWithinRange(t)){let r=t-this.range.from;if(this.data[r]=o,o[zo]){let n=this.data[r-1];(0,Oe.isRowSelectedLast)(n)&&(this.data[r-1]=n.slice(),this.data[r-1][zo]-=4)}}}getAtIndex(o){return this.range.isWithin(o)&&this.data[o-this.range.from]!=null?this.data[o-this.range.from]:void 0}isWithinRange(o){return this.range.isWithin(o)}setRange({from:o,to:t}){if(o!==this.range.from||t!==this.range.to){let[r,n]=this.range.overlap(o,t),l=new Array(Math.max(0,t-o));for(let a=r;a<n;a++){let i=this.getAtIndex(a);if(i){let s=a-o;l[s]=i}}this.data=l,this.range.from=o,this.range.to=t}}getSelectedRows(){return this.data.filter(o=>o[zo]!==0)}};var $r=e=>e.type==="vuu-link-created"||e.type==="vuu-link-removed",$t=({dataSource:e,onFeatureInvocation:o,onSizeChange:t,onSubscribed:r,range:n=ye.NULL_RANGE,renderBufferSize:l=0})=>{let[,a]=(0,Q.useState)(null),i=(0,Q.useRef)([]),s=(0,Q.useRef)(!0),u=(0,Q.useRef)(!1),d=(0,Q.useRef)(n),m=(0,Q.useMemo)(()=>new ro((0,ye.getFullRange)(n,l)),[]),b=(0,Q.useCallback)(c=>{for(let v of c)m.add(v);i.current=m.data,s.current&&a({})},[m]),C=(0,Q.useCallback)(c=>{c.type==="subscribed"?r==null||r(c):c.type==="viewport-update"?(typeof c.size=="number"&&(t==null||t(c.size),m.setRowCount(c.size)),c.rows?b(c.rows):typeof c.size=="number"&&(i.current=m.data,u.current=!0)):$r(c)?o==null||o(c):console.log(`useDataSource unexpected message ${c.type}`)},[m,o,t,r,b]),h=(0,Q.useCallback)(()=>m.getSelectedRows(),[m]);(0,Q.useEffect)(()=>{var c;return s.current=!0,(c=e.resume)==null||c.call(e),()=>{var v;s.current=!1,(v=e.suspend)==null||v.call(e)}},[e]),(0,Q.useEffect)(()=>{var c;e.status==="disabled"?(c=e.enable)==null||c.call(e,C):e==null||e.subscribe({range:(0,ye.getFullRange)(n,l)},C)},[e,C,n,l]);let x=(0,Q.useCallback)(c=>{if(!(0,ye.rangesAreSame)(c,d.current)){let v=(0,ye.getFullRange)(c,l);m.setRange(v),e.range=d.current=v,e.emit("range",c)}},[e,m,l]);return{data:i.current,dataRef:i,getSelectedRows:h,range:d.current,setRange:x}};var lo=require("react"),Bt=e=>{let o=(0,lo.useRef)(e);return(0,lo.useMemo)(()=>o.current,[])};var Ut=require("@vuu-ui/vuu-utils"),_t=require("@salt-ds/core"),$=require("react");var Xt=new Set(["Home","End","PageUp","PageDown","ArrowDown","ArrowUp"]),No=new Set(Xt);No.add("ArrowLeft");No.add("ArrowRight");var Br=(e,o)=>{switch(o){case"cell":return No.has(e);case"row":return Xt.has(e);default:return!1}},Vr=["Home","End","PageUp","PageDown"],Vt=e=>Vr.includes(e),Wr=[-1,-1];function Wt(e,[o,t],r,n){return e==="ArrowUp"?o>-1?[o-1,t]:[o,t]:e==="ArrowDown"?o===-1?[0,t]:o===n-1?[o,t]:[o+1,t]:e==="ArrowRight"?t<r?[o,t+1]:[o,t]:e==="ArrowLeft"?t>1?[o,t-1]:[o,t]:[o,t]}var Qt=({columnCount:e=0,containerRef:o,disableFocus:t=!1,defaultHighlightedIndex:r,disableHighlightOnFocus:n,highlightedIndex:l,navigationStyle:a,requestScroll:i,onHighlight:s,rowCount:u=0,viewportRowCount:d})=>{var be;let m=(0,$.useRef)([-1,-1]),b=(0,$.useRef)(),C=(0,$.useRef)([-1,0]),h=(0,$.useRef)(),[x,c]=(0,_t.useControlled)({controlled:l,default:r,name:"UseKeyboardNavigation"});h.current=x;let v=(0,$.useCallback)((f,w=!1)=>{s==null||s(f),c(f)},[s,c]),T=f=>f==null?void 0:f.closest("[role='columnHeader'],[role='cell']"),k=f=>{var w;if(f.role==="columnHeader")return[-1,parseInt((w=f.dataset.idx)!=null?w:"-1",10)];{let y=f.closest("[role='row']");if(y){let W=(0,Ut.getIndexFromRowElement)(y),g=Array.from(y.childNodes).indexOf(f);return[W,g]}}return Wr},D=(0,$.useCallback)(f=>{var w;if(o.current){let y=zt(o,f);y&&(y!==b.current&&((w=b.current)==null||w.removeAttribute("tabindex"),b.current=y,y.setAttribute("tabindex","0")),i==null||i({type:"scroll-row",rowIndex:f[0]}),y.focus({preventScroll:!0}))}},[o,i]),A=(0,$.useCallback)((f,w,y=!1)=>{let W=[f,w];C.current=W,a==="row"?c(f):D(W),y&&(m.current=W)},[D,a,c]),F=(0,$.useCallback)((f,[w,y])=>new Promise(W=>{let g=w;switch(f){case"PageDown":{g=Math.min(u-1,w+d),g!==w&&(i==null||i({type:"scroll-page",direction:"down"}));break}case"PageUp":{g=Math.max(0,w-d),g!==w&&(i==null||i({type:"scroll-page",direction:"up"}));break}case"Home":{g=0,g!==w&&(i==null||i({type:"scroll-end",direction:"home"}));break}case"End":{g=u-1,g!==w&&(i==null||i({type:"scroll-end",direction:"end"}));break}}setTimeout(()=>{W([g,y])},35)}),[i,u,d]),P=(0,$.useCallback)(()=>{var f;if(n!==!0&&(f=o.current)!=null&&f.contains(document.activeElement)){let w=T(document.activeElement);w&&(m.current=k(w),a==="row"&&c(m.current[0]))}},[n,o,a,c]),z=(0,$.useCallback)(async f=>{let[w,y]=Vt(f)?await F(f,C.current):Wt(f,C.current,e,u),[W,g]=C.current;(w!==W||y!==g)&&A(w,y,!0)},[e,F,u,A]),G=(0,$.useCallback)(f=>{i==null||i({type:"scroll-row",rowIndex:f})},[i]),Z=(0,$.useCallback)(async f=>{let{current:w}=h,[y]=Vt(f)?await F(f,[w!=null?w:-1,0]):Wt(f,[w!=null?w:-1,0],e,u);y!==w&&(v(y),G(y))},[e,F,u,G,v]);(0,$.useEffect)(()=>{l!==void 0&&l!==-1&&G(l)},[l,G]);let ee=(0,$.useCallback)(f=>{u>0&&Br(f.key,a)&&(f.preventDefault(),f.stopPropagation(),a==="row"?Z(f.key):z(f.key))},[u,a,Z,z]),oe=(0,$.useCallback)(f=>{let w=f.target,y=T(w);if(y){let[W,g]=k(y);A(W,g)}},[A]),Y=(0,$.useCallback)(()=>{v(-1)},[v]),K=(0,$.useCallback)(f=>{let w=Ft(f.target);w!==-1&&w!==h.current&&v(w)},[v]),S=(0,$.useCallback)(()=>{z("ArrowDown")},[z]),te=((be=o.current)==null?void 0:be.firstChild)!=null;return(0,$.useEffect)(()=>{if(te&&b.current===void 0&&!t){let{current:f}=o,w=(f==null?void 0:f.querySelector(Ao(0)))||(f==null?void 0:f.querySelector(Io(0,0)));w&&(w.setAttribute("tabindex","0"),b.current=w)}},[o,t,te]),{highlightedIndexRef:h,navigate:S,onClick:oe,onFocus:P,onKeyDown:ee,onMouseLeave:a==="row"?Y:void 0,onMouseMove:a==="row"?K:void 0}};var ie=require("@vuu-ui/vuu-utils"),ke=require("react"),{IDX:Ur}=ie.metadataKeys,_r=[],Xr=["Enter"," "],Jt=({highlightedIndexRef:e,selectionKeys:o=Xr,selectionModel:t,onSelect:r,onSelectionChange:n})=>{let l=(0,ke.useRef)(-1),a=(0,ke.useRef)(_r),i=(0,ke.useCallback)(d=>o.includes(d.key),[o]),s=(0,ke.useCallback)((d,m,b,C)=>{let{[Ur]:h}=m,{current:x}=l,{current:c}=a,v=(0,ie.isRowSelected)(m)?ie.deselectItem:ie.selectItem,T=v(t,c,h,b,C,x);a.current=T,l.current=h,r==null||r(v===ie.selectItem?m:null),n==null||n(T)},[r,n,t]);return{onKeyDown:(0,ke.useCallback)(d=>{if(i(d)){let{current:m}=e;if(m!==void 0&&m!==-1){let b=(0,ie.getRowElementAtIndex)(d.target,m);b&&(0,ie.dispatchMouseEvent)(b,"click")}}},[e,i]),onRowClick:s}};var Zt=require("@vuu-ui/vuu-popups"),io=require("@vuu-ui/vuu-utils"),Yt=require("react"),Qr=[],jt=({columns:e,data:o,dataSource:t,getSelectedRows:r})=>{let[n]=(0,Zt.useContextMenu)();return(0,Yt.useCallback)(a=>{let i=a.target,s=i==null?void 0:i.closest("div[role='cell']"),u=i==null?void 0:i.closest("div[role='row']");if(s&&u){let{selectedRowsCount:d}=t,m=(0,io.buildColumnMap)(e),b=(0,io.getIndexFromRowElement)(u),C=Array.from(u.childNodes).indexOf(s),h=o.find(([c])=>c===b),x=e[C];n(a,"grid",{columnMap:m,columnName:x,row:h,selectedRows:d===0?Qr:r(),viewport:t.viewport})}},[e,o,t,r,n])};var R=require("@vuu-ui/vuu-utils"),qt=require("@vuu-ui/vuu-ui-controls"),en=require("react"),{info:Fo}=(0,R.logger)("useTableModel"),Jr=100,Zr=({serverDataType:e})=>e===void 0,on=(e,o)=>{let t=o==null?void 0:o.columns.find(({name:r})=>r===e.name);return t?t.serverDataType:e.serverDataType},Yr=["int","long","double"],tn=e=>e===void 0?void 0:Yr.includes(e)?"right":"left",Go=e=>e.type==="columnSettings",Ko=e=>e.type==="tableSettings",jr=(e,o)=>{switch(Fo==null||Fo(`TableModelReducer ${o.type}`),o.type){case"init":return nn(o);case"moveColumn":return el(e,o);case"resizeColumn":return nl(e,o);case"setTableSchema":return rl(e,o);case"hideColumns":return ol(e,o);case"showColumns":return tl(e,o);case"pinColumn":return ll(e,o);case"updateColumnProp":return $e(e,o);case"tableConfig":return ln(e,o);default:return console.log(`unhandled action ${o.type}`),e}},Oo=(e,o)=>{let[t,r]=(0,en.useReducer)(jr,{tableConfig:e,dataSource:o},nn),{columns:n,headings:l,tableConfig:a,...i}=t;return{columns:n,dispatchTableModelAction:r,headings:l,tableAttributes:i,tableConfig:a}};function nn({dataSource:e,tableConfig:o}){let{columns:t,...r}=o,{config:n,tableSchema:l}=e,a=t.filter((0,R.subscribedOnly)(n==null?void 0:n.columns)).map(rn(r,l)),i=a.some(R.isPinned)?(0,R.sortPinnedColumns)(a):a,s={columns:i,headings:(0,R.getTableHeadings)(i),tableConfig:o,...r};if(n){let{columns:u,...d}=n;s=ln(s,{type:"tableConfig",...d})}return s}var qr=(e,o)=>o==="uppercase"?e.toUpperCase():o==="capitalize"?e[0].toUpperCase()+e.slice(1).toLowerCase():e,rn=(e,o)=>(t,r)=>{let{columnDefaultWidth:n=Jr,columnFormatHeader:l}=e,a=on(t,o),{align:i=tn(a),name:s,label:u=(0,R.getColumnLabel)(t),width:d=n,...m}=t,b={...m,align:i,CellRenderer:(0,R.getCellRenderer)(t),HeaderCellContentRenderer:(0,R.getColumnHeaderContentRenderer)(t),HeaderCellLabelRenderer:(0,R.getColumnHeaderLabelRenderer)(t),clientSideEditValidationCheck:(0,R.hasValidationRules)(t.type)?(0,qt.buildValidationChecker)(t.type.renderer.rules):void 0,index:r+1,label:qr(u,l),name:s,originalIdx:r,serverDataType:a,valueFormatter:(0,R.getValueFormatter)(t,a),width:d};return(0,R.isGroupColumn)(b)&&(b.columns=b.columns.map(C=>rn(e)(C,r))),b};function el(e,{column:o,moveBy:t}){let{columns:r}=e;if(typeof t=="number"){let n=r.indexOf(o),l=r.slice(),[a]=l.splice(n,1);return l.splice(n+t,0,a),{...e,columns:l}}return e}function ol(e,{columns:o}){return o.some(t=>t.hidden!==!0)?o.reduce((t,r)=>r.hidden!==!0?$e(t,{type:"updateColumnProp",column:r,hidden:!0}):t,e):e}function tl(e,{columns:o}){return o.some(t=>t.hidden)?o.reduce((t,r)=>r.hidden?$e(t,{type:"updateColumnProp",column:r,hidden:!1}):t,e):e}function nl(e,{column:o,phase:t,width:r}){let n="updateColumnProp",l=t!=="end";switch(t){case"begin":return $e(e,{type:n,column:o,resizing:l});case"end":return $e(e,{type:n,column:o,resizing:l,width:r});case"resize":return $e(e,{type:n,column:o,width:r});default:throw Error(`useTableModel.resizeColumn, invalid resizePhase ${t}`)}}function rl(e,{tableSchema:o}){let{columns:t}=e;if(t.some(Zr)){let r=t.map(n=>{var a;let l=on(n,o);return{...n,align:(a=n.align)!=null?a:tn(l),serverDataType:l}});return{...e,columns:r}}else return e}function ll(e,o){let{columns:t}=e,{column:r,pin:n}=o,l=t.find(a=>a.name===r.name);return l?(t=(0,R.replaceColumn)(t,{...l,pin:n}),t=(0,R.sortPinnedColumns)(t),{...e,columns:t}):e}function $e(e,o){let{columns:t,tableConfig:r}=e,{align:n,column:l,hidden:a,label:i,resizing:s,width:u}=o,d=t.find(m=>m.name===l.name);if(d&&((n==="left"||n==="right")&&(t=(0,R.replaceColumn)(t,{...d,align:n})),typeof i=="string"&&(t=(0,R.replaceColumn)(t,{...d,label:i})),typeof s=="boolean"&&(t=(0,R.replaceColumn)(t,{...d,resizing:s})),typeof a=="boolean"&&(t=(0,R.replaceColumn)(t,{...d,hidden:a})),typeof u=="number")){t=(0,R.replaceColumn)(t,{...d,width:u});let m=r.columns.find(b=>b.name===l.name);m&&(r={...r,columns:(0,R.replaceColumn)(r.columns,{...m,width:u})})}return{...e,columns:t,tableConfig:r}}function ln(e,{confirmed:o,filter:t,groupBy:r,sort:n}){let l=r!==void 0,a=typeof(t==null?void 0:t.filter)=="string",i=n&&n.sortDefs.length>0,s=e;return l&&(s={...e,columns:(0,R.applyGroupByToColumns)(s.columns,r,o)}),i&&(s={...e,columns:(0,R.applySortToColumns)(s.columns,n)}),a?s={...e,columns:(0,R.applyFilterToColumns)(s.columns,t)}:s.columns.some(R.isFilteredColumn)&&(s={...e,columns:(0,R.stripFilterFromColumns)(s.columns)}),s}var Se=require("@vuu-ui/vuu-utils"),H=require("react");var il=100,an=200,sn=e=>{let{clientHeight:o,clientWidth:t,scrollHeight:r,scrollWidth:n}=e;return[n-t,r-o]},al=(e,o)=>{if(e!==void 0){let{scrollTop:t}=e;return o>t?"fwd":"bwd"}},un=(e,o)=>{let{clientHeight:t,clientWidth:r,scrollHeight:n,scrollLeft:l,scrollTop:a,scrollWidth:i}=e,s=i-r,u=l/(i-r),d=n-t,m=a/(n-t),b=al(o,a);return b==="fwd"&&m>.99?m=1:b==="bwd"&&m<.02&&(m=0),[l,u,s,a,m,d]},mn={scrollToIndex:()=>{},scrollToKey:()=>{}},cn=({onAttach:e,onDetach:o})=>{let t=(0,H.useRef)(null);return(0,H.useCallback)(n=>{if(n)t.current=n,e==null||e(n);else if(t.current){let{current:l}=t;t.current=n,o==null||o(l)}},[e,o])},$o=({columns:e,getRowAtPosition:o,onHorizontalScroll:t,onVerticalScroll:r,onVerticalScrollInSitu:n,rowHeight:l,scrollingApiRef:a,setRange:i,viewportMeasurements:s})=>{let u=(0,H.useRef)(0),d=(0,H.useRef)(l),m=(0,H.useRef)(!1),b=(0,H.useRef)({scrollTop:0,scrollLeft:0}),C=(0,H.useRef)(!1),h=(0,H.useRef)({scrollTop:0,scrollLeft:0}),x=(0,H.useRef)(null),c=(0,H.useRef)(null),v=(0,H.useRef)(0),{appliedPageSize:T,isVirtualScroll:k,rowCount:D,totalHeaderHeight:A,viewportWidth:F}=s,P=(0,H.useRef)([]),[,z]=(0,H.useState)({}),G=(0,H.useRef)(0);(0,H.useMemo)(()=>{let[g,E]=(0,Se.getColumnsInViewport)(e,b.current.scrollLeft,b.current.scrollLeft+F+an);G.current=E,P.current=g},[F,e]);let Z=(0,H.useCallback)(g=>{if(b.current.scrollLeft=g,t==null||t(g),Math.abs(g-v.current)>il){v.current=g;let[E,U]=(0,Se.getColumnsInViewport)(e,g,g+F+an);(0,Se.itemsChanged)(P.current,E)&&(G.current=U,P.current=E,z({}))}},[e,t,F]),ee=(0,H.useCallback)((g,E)=>{b.current.scrollTop=g,r==null||r(g,E);let U=o(g);U!==u.current&&(u.current=U,i({from:U,to:U+D})),n==null||n(0)},[o,r,n,i,D]),oe=(0,H.useCallback)(()=>{let{current:g}=c,{current:E}=x,{current:U}=m,{current:q}=h;if(U)m.current=!1;else if(g&&E){C.current=!0;let[j,me,,J,I]=un(E,q);q.scrollLeft=j,q.scrollTop=J;let[O,ne]=sn(E),V=Math.round(me*O),He=I*ne;g.scrollTo({left:V,top:He,behavior:"auto"})}n==null||n(0)},[n]),Y=(0,H.useCallback)(()=>{let{current:g}=C,{current:E}=c,{current:U}=x,{current:q}=b;if(E&&U){let[j,me,J,I,O,ne]=un(E);m.current=!0,g?C.current=!1:(U.scrollLeft=Math.round(me*J),U.scrollTop=O*ne),q.scrollTop!==I&&ee(I,O),q.scrollLeft!==j&&Z(j)}},[ee,Z]),K=(0,H.useCallback)(g=>{x.current=g,g.addEventListener("scroll",oe,{passive:!0})},[oe]),S=(0,H.useCallback)(g=>{x.current=null,g.removeEventListener("scroll",oe)},[oe]),te=(0,H.useCallback)(g=>{c.current=g,g.addEventListener("scroll",Y,{passive:!0})},[Y]),be=(0,H.useCallback)(g=>{c.current=null,g.removeEventListener("scroll",Y)},[Y]),f=cn({onAttach:te,onDetach:be}),w=cn({onAttach:K,onDetach:S}),y=(0,H.useCallback)(g=>{let{current:E}=c;if(E){let[U,q]=sn(E),{scrollLeft:j,scrollTop:me}=E;if(m.current=!1,g.type==="scroll-row"){let J=(0,Se.getRowElementAtIndex)(E,g.rowIndex);if(J!==null){let[I,O]=Gt(J,A);if(console.log(`outside viewport ? ${I} ${O}`),I&&O)if(k){let ne=I==="down"?1:-1;n==null||n(ne);let V=u.current+ne;u.current=V,i({from:V,to:V+D})}else{let ne=j,V=me;I==="up"||I==="down"?V=Math.min(Math.max(0,me+O),q):ne=Math.min(Math.max(0,j+O),U),E.scrollTo({top:V,left:ne,behavior:"smooth"})}}}else if(g.type==="scroll-page"){let{direction:J}=g;if(k){let I=J==="down"?D:-D;n==null||n(I);let O=u.current+I;u.current=O,i({from:O,to:O+D})}else{let I=J==="down"?T:-T,O=Math.min(Math.max(0,me+I),q);E.scrollTo({top:O,left:j,behavior:"auto"})}}else if(g.type==="scroll-end"){let{direction:J}=g,I=J==="end"?q:0;E.scrollTo({top:I,left:E.scrollLeft,behavior:"auto"})}}},[T,k,n,i,A,D]),W=(0,H.useMemo)(()=>({scrollToIndex:g=>{if(x.current){let E=(g-30)*20;x.current.scrollTop=E}},scrollToKey:g=>{console.log(`scrollToKey ${g}`)}}),[]);return(0,H.useImperativeHandle)(a,()=>x.current?W:mn,[W]),(0,H.useEffect)(()=>{if(l!==d.current)d.current=l,b.current.scrollTop>0&&c.current&&(c.current.scrollTop=0);else{let{current:g}=u,E={from:g,to:g+D};i(E)}},[l,i,D]),{columnsWithinViewport:P.current,scrollbarContainerRef:w,contentContainerRef:f,requestScroll:y,virtualColSpan:G.current}};var Be=require("@vuu-ui/vuu-utils"),ue=require("react"),sl=1e7,ul={appliedPageSize:0,contentHeight:0,contentWidth:0,getRowAtPosition:()=>-1,getRowOffset:()=>-1,horizontalScrollbarHeight:0,isVirtualScroll:!1,pinnedWidthLeft:0,pinnedWidthRight:0,rowCount:0,setInSituRowOffset:()=>{},setScrollTop:()=>{},totalHeaderHeight:0,verticalScrollbarWidth:0,viewportBodyHeight:0,viewportWidth:0},Bo=({columns:e,headerHeight:o,headings:t,rowCount:r,rowHeight:n,selectionEndSize:l=4,size:a})=>{let i=(0,ue.useRef)(0),s=(0,ue.useRef)(0),u=Math.min(n*r,sl),d=r*n,m=d-u,{pinnedWidthLeft:b,pinnedWidthRight:C,unpinnedWidth:h}=(0,ue.useMemo)(()=>(0,Be.measurePinnedColumns)(e,l),[e,l]),x=(0,ue.useRef)(o);(0,ue.useMemo)(()=>{x.current=o*(1+t.length)},[o,t.length]);let[c,v,T]=(0,ue.useMemo)(()=>{if(m){let[A,F,P]=(0,Be.virtualRowPositioning)(n,m,s);return[G=>A(G,i.current),F,P]}else return(0,Be.actualRowPositioning)(n)},[m,n]),k=(0,ue.useCallback)((A,F)=>{s.current=F},[]),D=(0,ue.useCallback)(A=>{A===0?i.current=0:i.current=Math.max(0,i.current+A)},[]);return(0,ue.useMemo)(()=>{if(a){let{current:A}=x,F=15,P=b+h+C,z=P>a.width?F:0,G=(a.height-o)/n,Z=Number.isInteger(G)?G:Math.ceil(G),ee=a.height-A,oe=u>ee?F:0,Y=Z*n*(u/d),K=a.width;return{appliedPageSize:Y,contentHeight:u,contentWidth:P,getRowAtPosition:v,getRowOffset:c,isVirtualScroll:T,horizontalScrollbarHeight:z,pinnedWidthLeft:b,pinnedWidthRight:C,rowCount:Z,setInSituRowOffset:D,setScrollTop:k,totalHeaderHeight:A,verticalScrollbarWidth:oe,viewportBodyHeight:ee,viewportWidth:K}}else return ul},[v,c,o,T,b,h,C,u,n,D,k,a,d])};var dn=require("@vuu-ui/vuu-layout"),pn=require("@vuu-ui/vuu-utils"),ce=require("react"),bn=({availableColumns:e,onAvailableColumnsChange:o,onConfigChange:t,onCreateCalculatedColumn:r,onDataSourceConfigChange:n,tableConfig:l})=>{let a=(0,dn.useLayoutProviderDispatch)(),i=(0,ce.useRef)(),[s,u]=(0,ce.useState)(e),d=(0,ce.useCallback)((c,v,T)=>{a({type:"set-props",path:"#context-panel",props:{expanded:!0,content:{type:c,props:T},title:v}})},[a]),m=(0,ce.useCallback)(()=>{requestAnimationFrame(()=>{var c;(c=i.current)==null||c.call(i)})},[]),b=(0,ce.useCallback)(c=>{let v=s.concat({name:c.name,serverDataType:(0,pn.getCalculatedColumnType)(c)});u(v),o==null||o(v),requestAnimationFrame(()=>{var T;(T=i.current)==null||T.call(i)}),r(c)},[s,o,r]),C=(0,ce.useCallback)(c=>{d("ColumnSettings","Column Settings",{column:c.column,onCancelCreateColumn:m,onConfigChange:t,onCreateCalculatedColumn:b,tableConfig:l,vuuTable:c.vuuTable})},[m,b,t,d,l]),h=(0,ce.useCallback)(()=>{C({column:{name:"::",serverDataType:"string"},type:"columnSettings",vuuTable:{module:"SIMUL",table:"instruments"}})},[C]),x=(0,ce.useCallback)(c=>{let v=l.columns.find(T=>T.name===c);v&&C({type:"columnSettings",column:v,vuuTable:{module:"SIMUL",table:"instruments"}})},[C,l.columns]);return i.current=(0,ce.useCallback)(()=>{d("TableSettings","DataGrid Settings",{availableColumns:s!=null?s:l.columns.map(({name:c,serverDataType:v})=>({name:c,serverDataType:v})),onAddCalculatedColumn:h,onConfigChange:t,onDataSourceConfigChange:n,onNavigateToColumn:x,tableConfig:l})},[s,h,x,t,n,d,l]),{showColumnSettingsPanel:C,showTableSettingsPanel:i.current}};var fn=require("@vuu-ui/vuu-utils"),gn=require("react"),cl=e=>{let o=[];return e==null||e.forEach(t=>{let r=(0,fn.getRowClassNameGenerator)(t);r&&o.push(r.fn)}),(t,r)=>{let n=[];return o==null||o.forEach(l=>{let a=l(t,r);a&&n.push(a)}),n.join(" ")}},Cn=({rowClassNameGenerators:e})=>(0,gn.useMemo)(()=>cl(e),[e]);var ao=e=>e,{KEY:ml,IS_EXPANDED:vn,IS_LEAF:hn}=B.metadataKeys,dl={draggable:void 0,onMouseDown:void 0},pl=()=>dl,bl=(e,o)=>({...e,columns:e.columns.concat(o)}),xn=({allowDragDrop:e=!1,availableColumns:o,config:t,containerRef:r,dataSource:n,disableFocus:l,headerHeight:a=25,highlightedIndex:i,id:s,navigationStyle:u="cell",onAvailableColumnsChange:d,onConfigChange:m,onDragStart:b,onDrop:C,onFeatureInvocation:h,onHighlight:x,onRowClick:c,onSelect:v,onSelectionChange:T,renderBufferSize:k=0,rowHeight:D=20,scrollingApiRef:A,selectionModel:F,size:P})=>{let[z,G]=(0,M.useState)(n.size);if(n===void 0)throw Error("no data source provided to Vuu Table");let Z=Cn(t),ee=e?wn.useDragDrop:pl,oe=(0,M.useMemo)(()=>Lt(n),[n]),Y=(0,M.useCallback)(p=>{G(p)},[]),{columns:K,dispatchTableModelAction:S,headings:te,tableAttributes:be,tableConfig:f}=Oo(t,n);(0,B.useLayoutEffectSkipFirst)(()=>{S({type:"init",tableConfig:t,dataSource:n})},[t,n,S]);let w=(0,M.useCallback)(p=>{S({type:"init",tableConfig:p,dataSource:n}),m==null||m(ao(p))},[n,S,m]),y=(0,M.useMemo)(()=>(0,B.buildColumnMap)(n.columns),[n.columns]),W=(0,M.useCallback)(({tableSchema:p})=>{p?S({type:"setTableSchema",tableSchema:p}):console.log("subscription message with no schema")},[S]),{getRowAtPosition:g,getRowOffset:E,setInSituRowOffset:U,setScrollTop:q,...j}=Bo({columns:K,headerHeight:a,headings:te,rowCount:z,rowHeight:D,size:P}),me=Bt({from:0,to:j.rowCount}),{data:J,dataRef:I,getSelectedRows:O,range:ne,setRange:V}=$t({dataSource:n,onFeatureInvocation:h,renderBufferSize:k,onSizeChange:Y,onSubscribed:W,range:me}),{requestScroll:He,...fo}=$o({columns:K,getRowAtPosition:g,rowHeight:D,scrollingApiRef:A,setRange:V,onVerticalScroll:q,onVerticalScrollInSitu:U,viewportMeasurements:j}),Qe=(0,M.useCallback)(p=>{S({type:"init",tableConfig:p,dataSource:n}),m==null||m(ao(p))},[n,S,m]),Me=(0,M.useCallback)(p=>{n.config={...n.config,...p}},[n]);(0,M.useEffect)(()=>{n.on("config",(p,L,N)=>{((N==null?void 0:N.filterChanged)||(N==null?void 0:N.groupByChanged))&&n.range.from>0&&He({type:"scroll-end",direction:"home"}),S({type:"tableConfig",...p,confirmed:L})})},[n,S,He]);let $n=(0,M.useCallback)(p=>{n.columns=n.columns.concat(p.name),w(bl(f,p))},[n,f,w]),_o=(0,M.useCallback)(p=>{let{columns:L}=p,N=L.map(re=>re.name),X={...f,columns:f.columns.map(re=>N.includes(re.name)?{...re,hidden:!0}:re)};w(X)},[f,w]),Xo=(0,M.useCallback)(p=>{w({...f,columns:(0,B.updateColumn)(f.columns,{...p.column,pin:p.pin})})},[f,w]),{showColumnSettingsPanel:Qo,showTableSettingsPanel:Jo}=bn({availableColumns:o!=null?o:f.columns.map(({name:p,serverDataType:L="string"})=>({name:p,serverDataType:L})),onAvailableColumnsChange:d,onConfigChange:Qe,onCreateCalculatedColumn:$n,onDataSourceConfigChange:Me,tableConfig:f}),Bn=(0,M.useCallback)(p=>{if(Go(p))Qo(p);else if(Ko(p))Jo();else switch(p.type){case"hideColumns":return _o(p);case"pinColumn":return Xo(p);default:S(p)}},[S,_o,Xo,Qo,Jo]),Vn=It({dataSource:n,onPersistentColumnOperation:Bn}),Wn=(0,M.useCallback)((p,L=!1,N)=>{n&&(n.sort=(0,B.applySort)(n.sort,p,L,N))},[n]),go=(0,M.useRef)(),Un=(0,M.useCallback)((p,L,N)=>{var re,Ue,he;let X=K.find(se=>se.name===L);if(X)if(p==="resize")(re=go.current)==null||re.forEach(se=>{se.style.width=`${N}px`});else if(p==="end")go.current=void 0,(0,B.isValidNumber)(N)&&(S({type:"resizeColumn",phase:p,column:X,width:N}),m==null||m(ao(Lo(f,{type:"col-size",column:X,width:N}))));else{let se=`[aria-colindex='${X.index}']`;go.current=Array.from((he=(Ue=r.current)==null?void 0:Ue.querySelectorAll(`.vuuTableCell${se},.vuuTableHeaderCell${se}`))!=null?he:[]),S({type:"resizeColumn",phase:p,column:X,width:N})}else throw Error(`useDataTable.handleColumnResize, column ${L} not found`)},[K,S,m,f,r]),_n=(0,M.useCallback)((p,L)=>{var re,Ue;let N=(0,B.isJsonGroup)(L,p,y),X=p[ml];if(p[vn]){if(n.closeTreeNode(X,!0),N){let he=K.indexOf(L),se=(re=n.getRowsAtDepth)==null?void 0:re.call(n,he+1);se&&!se.some(Le=>Le[vn]||Le[hn])&&S({type:"hideColumns",columns:K.slice(he+2)})}}else if(n.openTreeNode(X),N){let he=(Ue=n.getChildRows)==null?void 0:Ue.call(n,X),se=K.indexOf(L)+1,Le=[K[se]];he&&he.some(Co=>Co[hn])&&Le.push(K[se+1]),Le.some(Co=>Co.hidden)&&S({type:"showColumns",columns:Le})}},[y,K,n,S]),{highlightedIndexRef:Zo,navigate:Xn,onFocus:Yo,onKeyDown:jo,...Qn}=Qt({columnCount:K.filter(p=>p.hidden!==!0).length,containerRef:r,disableFocus:l,highlightedIndex:i,navigationStyle:u,requestScroll:He,rowCount:n==null?void 0:n.size,onHighlight:x,viewportRange:ne,viewportRowCount:j.rowCount}),{onBlur:Jn,onDoubleClick:Zn,onKeyDown:qo,onFocus:et}=Ot({navigate:Xn}),Yn=(0,M.useCallback)(p=>{Yo(),p.defaultPrevented||et(p)},[et,Yo]),jn=jt({columns:K,data:J,dataSource:n,getSelectedRows:O}),qn=(0,M.useCallback)(p=>{n.groupBy=p.map(L=>L.name)},[n]),er=(0,M.useCallback)(p=>{(0,B.isGroupColumn)(p)?n.groupBy=[]:n&&n.groupBy.includes(p.name)&&(n.groupBy=n.groupBy.filter(L=>L!==p.name))},[n]),or=(0,M.useCallback)(p=>{n.select(p),T==null||T(p)},[n,T]),tr=(0,M.useCallback)(p=>{v&&v(p===null?null:(0,B.asDataSourceRowObject)(p,y))},[y,v]),{onKeyDown:ot,onRowClick:tt}=Jt({highlightedIndexRef:Zo,onSelect:tr,onSelectionChange:or,selectionModel:F}),nr=(0,M.useCallback)((p,L,N,X)=>{tt(p,L,N,X),c==null||c(p,(0,B.asDataSourceRowObject)(L,y))},[y,c,tt]),rr=(0,M.useCallback)(p=>{jo(p),p.defaultPrevented||qo(p),p.defaultPrevented||ot(p)},[jo,qo,ot]),lr=(0,M.useCallback)(p=>{let L={...f,columns:p};S({type:"init",tableConfig:L,dataSource:n}),m==null||m(ao(L))},[n,S,m,f]),ir=(0,M.useCallback)(p=>{C==null||C(p)},[C]),ar=(0,M.useCallback)(async(p,L,N)=>n.applyEdit(p,L,N),[n]),sr=(0,M.useCallback)(p=>{let{initialDragElement:L}=p,N=(0,B.getIndexFromRowElement)(L),X=I.current.find(re=>re[0]===N);X&&p.setPayload(X),b==null||b(p)},[I,b]),{onMouseDown:ur,draggable:cr}=ee({allowDragDrop:e,containerRef:r,draggableClassName:"vuuTable",id:s,onDragStart:sr,onDrop:ir,orientation:"vertical",itemQuery:".vuuTableRow"});return{...Qn,"aria-rowcount":n.size,rowClassNameGenerator:Z,draggableRow:cr,onBlur:Jn,onDoubleClick:Zn,onFocus:Yn,onKeyDown:rr,onMouseDown:ur,columnMap:y,columns:K,data:J,getRowOffset:E,handleContextMenuAction:Vn,headings:te,highlightedIndex:Zo.current,menuBuilder:oe,onContextMenu:jn,onDataEdited:ar,onMoveColumn:lr,onMoveGroupColumn:qn,onRemoveGroupColumn:er,onRowClick:nr,onSortColumn:Wn,onResizeColumn:Un,onToggleGroup:_n,scrollProps:fo,tableAttributes:be,tableConfig:f,viewportMeasurements:j}};var Tn=require("@vuu-ui/vuu-utils"),De=require("react"),Rn=({rowHeight:e=0})=>{let[o,t]=(0,De.useState)(e),r=(0,De.useRef)(o),n=(0,De.useMemo)(()=>new ResizeObserver(a=>{for(let i of a){let[{blockSize:s}]=i.borderBoxSize,u=Math.round(s);(0,Tn.isValidNumber)(u)&&r.current!==u&&(r.current=u,t(u))}}),[]),l=(0,De.useCallback)(a=>{if(a){if(e===0){let{height:i}=a.getBoundingClientRect();console.log({boundingClientHeight:i}),console.log(`measured rowHeight = ${i} (${e})`),n.observe(a),t(i)}}else n.disconnect()},[n,e]);return{rowHeight:o,rowRef:l}};var ae=require("react/jsx-runtime"),ve="vuuTable",{IDX:fl,RENDER_IDX:gl}=so.metadataKeys,Cl=({Row:e=Ho,allowDragDrop:o,availableColumns:t,config:r,containerRef:n,dataSource:l,disableFocus:a=!1,highlightedIndex:i,id:s,navigationStyle:u="cell",onAvailableColumnsChange:d,onConfigChange:m,onDragStart:b,onDrop:C,onFeatureInvocation:h,onHighlight:x,onRowClick:c,onSelect:v,onSelectionChange:T,renderBufferSize:k=5,rowHeight:D,scrollingApiRef:A,selectionModel:F="extended",showColumnHeaders:P=!0,headerHeight:z=P?D*1.25:0,size:G})=>{let Z=(0,so.useId)(s),{columnMap:ee,columns:oe,data:Y,draggableRow:K,getRowOffset:S,handleContextMenuAction:te,headings:be,highlightedIndex:f,menuBuilder:w,onDataEdited:y,onMoveColumn:W,onMoveGroupColumn:g,onRemoveGroupColumn:E,onResizeColumn:U,onRowClick:q,onSortColumn:j,onToggleGroup:me,rowClassNameGenerator:J,scrollProps:I,tableAttributes:O,tableConfig:ne,viewportMeasurements:V,...He}=xn({allowDragDrop:o,availableColumns:t,config:r,containerRef:n,dataSource:l,disableFocus:a,headerHeight:z,highlightedIndex:i,id:Z,navigationStyle:u,onAvailableColumnsChange:d,onConfigChange:m,onDragStart:b,onDrop:C,onFeatureInvocation:h,onHighlight:x,onRowClick:c,onSelect:v,onSelectionChange:T,renderBufferSize:Math.max(5,k),rowHeight:D,scrollingApiRef:A,selectionModel:F,size:G}),fo=(0,Vo.default)(`${ve}-contentContainer`,{[`${ve}-colLines`]:O.columnSeparators,[`${ve}-rowLines`]:O.rowSeparators,[`${ve}-zebra`]:O.zebraStripes}),Qe={"--content-height":`${V.contentHeight}px`,"--content-width":`${V.contentWidth}px`,"--horizontal-scrollbar-height":`${V.horizontalScrollbarHeight}px`,"--pinned-width-left":`${V.pinnedWidthLeft}px`,"--pinned-width-right":`${V.pinnedWidthRight}px`,"--header-height":`${z}px`,"--row-height-prop":`${D}px`,"--total-header-height":`${V.totalHeaderHeight}px`,"--vertical-scrollbar-width":`${V.verticalScrollbarWidth}px`,"--viewport-body-height":`${V.viewportBodyHeight}px`};return(0,ae.jsxs)(yn.ContextMenuProvider,{menuActionHandler:te,menuBuilder:w,children:[(0,ae.jsx)("div",{className:`${ve}-scrollbarContainer`,ref:I.scrollbarContainerRef,style:Qe,children:(0,ae.jsx)("div",{className:`${ve}-scrollbarContent`})}),(0,ae.jsx)("div",{className:fo,ref:I.contentContainerRef,style:Qe,children:(0,ae.jsxs)("div",{...He,className:`${ve}-table`,role:"table",tabIndex:a?void 0:-1,children:[P?(0,ae.jsx)(Mo,{columns:I.columnsWithinViewport,headings:be,onMoveColumn:W,onMoveGroupColumn:g,onRemoveGroupColumn:E,onResizeColumn:U,onSortColumn:j,tableConfig:ne,tableId:Z,virtualColSpan:I.virtualColSpan}):null,(0,ae.jsx)("div",{className:`${ve}-body`,children:Y.map(Me=>(0,ae.jsx)(e,{"aria-rowindex":Me[0]+1,classNameGenerator:J,columnMap:ee,columns:I.columnsWithinViewport,highlighted:f===Me[fl],onClick:q,onDataEdited:y,row:Me,offset:S(Me),onToggleGroup:me,virtualColSpan:I.virtualColSpan,zebraStripes:O.zebraStripes},Me[gl]))})]})}),K]})},vl=(0,Ve.forwardRef)(function({Row:o,allowDragDrop:t,availableColumns:r,className:n,config:l,dataSource:a,disableFocus:i,highlightedIndex:s,id:u,navigationStyle:d,onAvailableColumnsChange:m,onConfigChange:b,onDragStart:C,onDrop:h,onFeatureInvocation:x,onHighlight:c,onRowClick:v,onSelect:T,onSelectionChange:k,renderBufferSize:D,rowHeight:A,scrollingApiRef:F,selectionModel:P,showColumnHeaders:z,headerHeight:G,style:Z,...ee},oe){let Y=(0,Ve.useRef)(null),[K,S]=(0,Ve.useState)(),{rowHeight:te,rowRef:be}=Rn({rowHeight:A});if(l===void 0)throw Error("vuu Table requires config prop. Minimum config is list of Column Descriptors");if(a===void 0)throw Error("vuu Table requires dataSource prop");return console.log({rowHeight:te}),(0,ae.jsxs)(Dn.MeasuredContainer,{...ee,className:(0,Vo.default)(ve,n),id:u,onResize:S,ref:(0,Hn.useForkRef)(Y,oe),children:[(0,ae.jsx)(Ht,{ref:be,height:A}),K&&te?(0,ae.jsx)(Cl,{Row:o,allowDragDrop:t,availableColumns:r,config:l,containerRef:Y,dataSource:a,disableFocus:i,headerHeight:G,highlightedIndex:s,id:u,navigationStyle:d,onAvailableColumnsChange:m,onConfigChange:b,onDragStart:C,onDrop:h,onFeatureInvocation:x,onHighlight:c,onRowClick:v,onSelect:T,onSelectionChange:k,renderBufferSize:D,rowHeight:te,scrollingApiRef:F,selectionModel:P,showColumnHeaders:z,size:K}):null]})});var uo=require("react"),co=require("@vuu-ui/vuu-ui-controls"),Mn=require("@salt-ds/core"),We=require("@vuu-ui/vuu-utils");var Wo=require("react/jsx-runtime"),Uo=(0,uo.memo)(({column:e,columnMap:o,onCommit:t=co.WarnCommit,row:r})=>{let n=o[e.name],l=!!r[n],a=(0,uo.useCallback)(i=>async s=>{let u=await t(i);return u===!0&&(0,We.dispatchCustomEvent)(s.target,"vuu-commit"),u},[t]);return e.editable?(0,Wo.jsx)(Mn.Checkbox,{checked:l,onClick:a(!l)}):(0,Wo.jsx)(co.CheckboxIcon,{checked:l,disabled:!0})},We.dataColumnAndKeyUnchanged);Uo.displayName="CheckboxCell";(0,We.registerComponent)("checkbox-cell",Uo,"cell-renderer",{serverDataType:"boolean"});var Pn=require("@vuu-ui/vuu-utils"),En=require("@salt-ds/core"),kn=require("@vuu-ui/vuu-ui-controls"),Sn=de(require("clsx"));var po=require("react/jsx-runtime"),mo="vuuTableInputCell",hl=()=>(console.warn("onCommit handler has not been provided to InputCell cell renderer"),Promise.resolve(!0)),Ln=({column:e,columnMap:o,onCommit:t=hl,row:r})=>{let n=o[e.name],l=r[n],{align:a="left",clientSideEditValidationCheck:i}=e,{warningMessage:s,...u}=(0,kn.useEditableText)({initialValue:l,onCommit:t,clientSideEditValidationCheck:i}),d=s&&a==="left"?(0,po.jsx)("span",{className:`${mo}-icon`,"data-icon":"error"}):void 0,m=s&&a==="right"?(0,po.jsx)("span",{className:`${mo}-icon`,"data-icon":"error"}):void 0;return(0,po.jsx)(En.Input,{...u,className:(0,Sn.default)(mo,{[`${mo}-error`]:s!==void 0}),endAdornment:d,startAdornment:m})};(0,Pn.registerComponent)("input-cell",Ln,"cell-renderer",{userCanAssign:!1});var In=require("@vuu-ui/vuu-ui-controls"),fe=require("@vuu-ui/vuu-utils"),zn=de(require("clsx")),bo=require("react"),Nn=require("@vuu-ui/vuu-ui-controls");var Gn=require("react/jsx-runtime"),An="vuuTableToggleCell",wl=({name:e,type:o})=>{if((0,fe.isTypeDescriptor)(o)&&(0,fe.isValueListRenderer)(o.renderer))return o.renderer.values;throw Error(`useLookupValues column ${e} has not been configured with a values list`)},Fn=(0,bo.memo)(function({column:o,columnMap:t,onCommit:r=In.WarnCommit,row:n}){let l=wl(o),a=t[o.name],i=n[a],s=(0,bo.useCallback)((u,d)=>r(d).then(m=>(m===!0&&(0,fe.dispatchCustomEvent)(u.target,"vuu-commit"),m)),[r]);return(0,Gn.jsx)(Nn.CycleStateButton,{className:(0,zn.default)(An,`${An}-${o.name}`),onCommit:s,value:i,values:l,variant:"cta",children:i})},fe.dataColumnAndKeyUnchanged);(0,fe.registerComponent)("toggle-cell",Fn,"cell-renderer",{userCanAssign:!1});var Kn=require("@vuu-ui/vuu-ui-controls"),On=require("@vuu-ui/vuu-utils"),Xe=require("react"),xl=(e,o)=>{let t=(0,Xe.useRef)(null),[r,n]=(0,Kn.useStateRef)(e),l=(0,Xe.useCallback)(i=>{var s;if(i.key==="ArrowDown")n((u=-1)=>Math.min(o-1,u+1));else if(i.key==="ArrowUp")n((u=-1)=>Math.max(0,u-1));else if(i.key==="Enter"||i.key===" "){let{current:u}=r,d=(s=t.current)==null?void 0:s.querySelector(`[aria-rowindex="${u}"]`);d&&(0,On.dispatchMouseEvent)(d,"click")}},[r,o,n]),a=(0,Xe.useCallback)(i=>{n(i)},[n]);return{highlightedIndexRef:r,onHighlight:a,onKeyDown:l,tableRef:t}};
1
+ "use strict";var dr=Object.create;var Ye=Object.defineProperty;var pr=Object.getOwnPropertyDescriptor;var br=Object.getOwnPropertyNames;var fr=Object.getPrototypeOf,gr=Object.prototype.hasOwnProperty;var Cr=(e,o)=>{for(var t in o)Ye(e,t,{get:o[t],enumerable:!0})},rt=(e,o,t,r)=>{if(o&&typeof o=="object"||typeof o=="function")for(let n of br(o))!gr.call(e,n)&&n!==t&&Ye(e,n,{get:()=>o[n],enumerable:!(r=pr(o,n))||r.enumerable});return e};var be=(e,o,t)=>(t=e!=null?dr(fr(e)):{},rt(o||!e||!e.__esModule?Ye(t,"default",{value:e,enumerable:!0}):t,e)),vr=e=>rt(Ye({},"__esModule",{value:!0}),e);var Rl={};Cr(Rl,{CheckboxCell:()=>_o,GroupHeaderCell:()=>oo,GroupHeaderCellNext:()=>oo,HeaderCell:()=>wo,InputCell:()=>In,Table:()=>hl,TableCell:()=>Ro,TableGroupCell:()=>Do,ToggleCell:()=>Gn,isShowColumnSettings:()=>Go,isShowTableSettings:()=>Oo,noScrolling:()=>pn,updateTableConfig:()=>Lo,useControlledTableNavigation:()=>Tl,useTableModel:()=>$o,useTableScroll:()=>Bo,useTableViewport:()=>Vo});module.exports=vr(Rl);var ft=require("@vuu-ui/vuu-ui-controls"),gt=require("@vuu-ui/vuu-utils"),Ct=be(require("clsx")),Ge=require("react");var it=be(require("clsx")),at=require("react");var je=require("react/jsx-runtime"),lt="vuuColumnHeaderPill",ze=({children:e,className:o,column:t,onRemove:r,removable:n,...l})=>{if(n&&typeof r!="function")throw Error("ColumnHeaderPill onRemove prop must be provided if Pill is removable");let a=(0,at.useCallback)(i=>{i.preventDefault(),i.stopPropagation(),r==null||r(t)},[t,r]);return(0,je.jsxs)("div",{...l,className:(0,it.default)(lt,o),children:[e,n?(0,je.jsx)("span",{className:`${lt}-removeButton`,role:"button","data-icon":"cross",onClick:a}):null]})};var Ne=require("react/jsx-runtime"),st=({column:e,...o})=>{let{name:t,sorted:r}=e,n=typeof r=="number"?r<0?"arrow-down":"arrow-up":r==="A"?"arrow-up":r==="D"?"arrow-down":void 0;return(0,Ne.jsxs)(ze,{...o,column:e,children:[(0,Ne.jsx)("span",{className:"vuuGroupColumnPill-label",children:t}),n!==void 0?(0,Ne.jsx)("span",{"data-icon":n}):null,typeof r=="number"?(0,Ne.jsx)("span",{className:"vuuSortPosition",children:Math.abs(r)}):null]})};var Xe=require("react/jsx-runtime"),ut=({column:e})=>{if(!e.sorted)return null;let o=typeof e.sorted=="number"?e.sorted<0?"arrow-down":"arrow-up":e.sorted==="A"?"arrow-up":"arrow-down";return(0,Xe.jsxs)(ze,{column:e,children:[(0,Xe.jsx)("span",{"data-icon":o}),typeof e.sorted=="number"?(0,Xe.jsx)("span",{className:"vuuSortPosition",children:Math.abs(e.sorted)}):null]})};var Ke=require("react");var mt=require("react/jsx-runtime"),ct=()=>{},hr="vuuColumnResizer",qe=({onDrag:e,onDragEnd:o=ct,onDragStart:t=ct})=>{let r=(0,Ke.useRef)({start:0,now:0}),n=(0,Ke.useCallback)(i=>{i.stopPropagation&&i.stopPropagation(),i.preventDefault&&i.preventDefault();let{current:s}=r,u=Math.round(i.clientX),m=u-s.now,c=s.now-s.start;r.current.now=u,m!==0&&e(i,m,c)},[e]),l=(0,Ke.useCallback)(i=>{window.removeEventListener("mouseup",l),window.removeEventListener("mousemove",n);let{current:s}=r,u=s.now-s.start;o(i,u)},[o,n]),a=(0,Ke.useCallback)(i=>{let{current:s}=r;t(i),s.now=s.start=Math.round(i.clientX),window.addEventListener("mouseup",l),window.addEventListener("mousemove",n),i.stopPropagation&&i.stopPropagation(),i.preventDefault&&i.preventDefault()},[t,n,l]);return(0,mt.jsx)("div",{className:hr,onMouseDown:a})};var xe=require("react"),eo=({column:e,onResize:o,rootRef:t})=>{let r=(0,xe.useRef)({start:0,now:0}),[n,l]=(0,xe.useState)(!1),{name:a}=e,i=(0,xe.useCallback)(()=>{if(o&&t.current){let{current:m}=r,{width:c}=t.current.getBoundingClientRect();m.start=m.now=Math.round(c),l(!0),o==null||o("begin",a)}},[a,o,t]),s=(0,xe.useCallback)((m,c,b)=>{if(t.current&&o){let{current:v}=r,w=v.start+b;w!==v.now&&w>0&&(o("resize",a,w),v.now=w)}},[a,o,t]),u=(0,xe.useCallback)(()=>{if(o){let{current:m}=r;o("end",a,m.now),setTimeout(()=>{l(!1)},80)}},[a,o]);return{isResizing:n,onDrag:s,onDragStart:i,onDragEnd:u}};var dt=require("@vuu-ui/vuu-utils"),pt=be(require("clsx")),bt=require("react"),Te=(e,o,t)=>(0,bt.useMemo)(()=>{let r=(0,pt.default)(o,{vuuPinFloating:e.pin==="floating",vuuPinLeft:e.pin==="left",vuuPinRight:e.pin==="right",vuuEndPin:t&&e.endPin,[`${o}-editable`]:e.editable,[`${o}-right`]:e.align==="right"}),n=(0,dt.getColumnStyle)(e);return{className:r,style:n}},[e,o,t]);var Fe=require("react/jsx-runtime"),vt=require("react"),ho="vuuTableGroupHeaderCell",wr=(e,o)=>e===o?e:o,oo=({column:e,className:o,onMoveColumn:t,onRemoveColumn:r,onResize:n,...l})=>{let a=(0,Ge.useRef)(null),{isResizing:i,...s}=eo({column:e,onResize:n,rootRef:a}),[u,m]=(0,Ge.useState)(e.columns),{className:c,style:b}=Te(e,ho,!0),v=u.length>1?{removable:!0,onRemove:r}:void 0,w=(0,Ge.useCallback)((T,d)=>{m(g=>{let h=g.slice(),[E]=h.splice(T,1);if(d===-1){let y=h.concat(E);return t==null||t(y),y}else return h.splice(d,0,E),t==null||t(h),h})},[t]);return(0,gt.useLayoutEffectSkipFirst)(()=>{m(T=>wr(T,e.columns))},[e.columns]),(0,Fe.jsxs)("div",{...l,className:(0,Ct.default)(c,o,{[`${ho}-pending`]:e.groupConfirmed===!1}),ref:a,role:"columnheader",style:b,children:[(0,Fe.jsx)(ft.OverflowContainer,{allowDragDrop:!0,className:`${ho}-inner`,onMoveItem:w,overflowPosition:"start",children:u.map(T=>(0,vt.createElement)(st,{...v,column:T,key:T.name}))}),(0,Fe.jsx)(ze,{column:e,removable:!0,onRemove:r}),e.resizeable!==!1?(0,Fe.jsx)(qe,{...s}):null]})};var Rt=require("@vuu-ui/vuu-popups"),yt=be(require("clsx")),Re=require("react");var ht=require("@vuu-ui/vuu-popups"),wt=be(require("clsx"));var Tt=require("react/jsx-runtime"),xr="vuuColumnMenu",xt=({className:e,column:o})=>(0,Tt.jsx)(ht.PopupMenu,{className:(0,wt.default)(xr,e),"data-embedded":!0,menuLocation:"column-menu",menuOptions:{column:o}});var Ce=require("react/jsx-runtime"),Qe="vuuTableHeaderCell",wo=({className:e,column:o,onClick:t,onResize:r,showMenu:n=!0,...l})=>{let{HeaderCellContentRenderer:a,HeaderCellLabelRenderer:i}=o,s=(0,Re.useRef)(null),{isResizing:u,...m}=eo({column:o,onResize:r,rootRef:s}),[c]=(0,Rt.useContextMenu)(),b=(0,Re.useMemo)(()=>{if(!n)return h=>c(h,"column-menu",{column:o})},[o,c,n]),v=(0,Re.useMemo)(()=>{var P;let h=(0,Ce.jsx)(ut,{column:o}),E=i?(0,Ce.jsx)(i,{className:`${Qe}-label`,column:o}):(0,Ce.jsx)("div",{className:`${Qe}-label`,children:(P=o.label)!=null?P:o.name}),y=a?[(0,Ce.jsx)(a,{column:o},"content")]:[];if(n){let I=(0,Ce.jsx)(xt,{column:o});return o.align==="right"?[h,E,y,I]:[I,E,h,y]}else return o.align==="right"?[h,E,y]:[E,h,y]},[a,i,o,n]),w=(0,Re.useCallback)(h=>{!u&&(t==null||t(h))},[u,t]),T=(0,Re.useCallback)(h=>{h.key==="Enter"&&(t==null||t(h))},[t]),{className:d,style:g}=Te(o,Qe,!0);return(0,Ce.jsxs)("div",{...l,className:(0,yt.default)(d,e,{[`${Qe}-resizing`]:u,[`${Qe}-noMenu`]:n===!1}),onClick:w,onContextMenu:b,onKeyDown:T,ref:s,role:"columnheader",style:g,children:[...v,o.resizeable!==!1?(0,Ce.jsx)(qe,{...m}):null]})};var Hn=require("@vuu-ui/vuu-popups"),Mn=require("@vuu-ui/vuu-ui-controls"),so=require("@vuu-ui/vuu-utils"),Pn=require("@salt-ds/core"),Wo=be(require("clsx")),We=require("react");var re=require("@vuu-ui/vuu-utils"),Ho=be(require("clsx")),Se=require("react");var Dt=require("@vuu-ui/vuu-utils"),xo=require("react");var To=require("react/jsx-runtime"),Tr="vuuTableCell",Ro=({column:e,columnMap:o,onClick:t,onDataEdited:r,row:n})=>{let{className:l,style:a}=Te(e,Tr),{CellRenderer:i,index:s,name:u,valueFormatter:m}=e,c=o[u],b=(0,xo.useCallback)(w=>{if(r){let T=w;return(0,Dt.isNumericColumn)(e)&&typeof w=="string"&&(T=e.serverDataType==="double"?parseFloat(w):parseInt(w)),r==null?void 0:r(n,u,T)}else throw Error("TableCell onDataEdited prop not supplied for an editable cell")},[e,u,r,n]),v=(0,xo.useCallback)(w=>{t==null||t(w,e)},[e,t]);return(0,To.jsx)("div",{"aria-colindex":s,className:l,onClick:t?v:void 0,role:"cell",style:a,children:i?(0,To.jsx)(i,{column:e,columnMap:o,onCommit:b,row:n}):m(n[c])})};var to=require("@vuu-ui/vuu-utils"),Ht=require("react");var Mt=be(require("clsx"));var Oe=require("react/jsx-runtime"),{IS_LEAF:Rr}=to.metadataKeys,yo="vuuTableGroupCell",Do=({column:e,columnMap:o,onClick:t,row:r})=>{let{columns:n}=e,[l,a]=(0,to.getGroupValueAndOffset)(n,r,o),{className:i,style:s}=Te(e,yo),u=(0,Ht.useCallback)(b=>{t==null||t(b,e)},[e,t]),m=r[Rr],c=Array(a).fill(0).map((b,v)=>(0,Oe.jsx)("span",{className:`${yo}-spacer`},v));return(0,Oe.jsxs)("div",{className:(0,Mt.default)(i,"vuuTableCell"),role:"cell",style:s,onClick:m?void 0:u,children:[c,m?null:(0,Oe.jsx)("span",{className:`${yo}-toggle`,"data-icon":"triangle-right"}),(0,Oe.jsx)("span",{children:l})]})};var ye=require("react/jsx-runtime"),{IDX:yr,IS_EXPANDED:Dr,SELECTED:Hr}=re.metadataKeys,fe="vuuTableRow",Pt=(0,Se.forwardRef)(function({height:o},t){return(0,ye.jsx)("div",{"aria-hidden":!0,className:(0,Ho.default)(fe,`${fe}-proxy`),ref:t,style:{height:o}})}),Mo=(0,Se.memo)(({className:e,classNameGenerator:o,columnMap:t,columns:r,highlighted:n,row:l,offset:a,onClick:i,onDataEdited:s,onToggleGroup:u,virtualColSpan:m=0,zebraStripes:c=!1,...b})=>{let{[yr]:v,[Dr]:w,[Hr]:T}=l,d=(0,Se.useCallback)(S=>{let K=S.shiftKey,z=S.ctrlKey||S.metaKey;i==null||i(S,l,K,z)},[i,l]),{True:g,First:h,Last:E}=re.RowSelected,y=(0,Ho.default)(fe,e,o==null?void 0:o(l,t),{[`${fe}-even`]:c&&v%2===0,[`${fe}-expanded`]:w,[`${fe}-highlighted`]:n,[`${fe}-selected`]:T&g,[`${fe}-selectedStart`]:T&h,[`${fe}-selectedEnd`]:T&E}),P={transform:`translate3d(0px, ${a}px, 0px)`},I=(0,Se.useCallback)((S,K)=>{((0,re.isGroupColumn)(K)||(0,re.isJsonGroup)(K,l,t))&&(S.stopPropagation(),u==null||u(l,K))},[t,u,l]);return(0,ye.jsxs)("div",{...b,role:"row",className:y,onClick:d,style:P,children:[(0,ye.jsx)("span",{className:`${fe}-selectionDecorator vuuStickyLeft`}),m>0?(0,ye.jsx)("div",{className:"vuuTableCell",style:{width:m}}):null,r.filter(re.isNotHidden).map(S=>{let K=(0,re.isGroupColumn)(S),z=(0,re.isJsonColumn)(S);return(0,ye.jsx)(K?Do:Ro,{column:S,columnMap:t,onClick:K||z?I:void 0,onDataEdited:s,row:l},S.name)}),(0,ye.jsx)("span",{className:`${fe}-selectionDecorator vuuStickyRight`})]})});Mo.displayName="Row";var no=require("@vuu-ui/vuu-utils"),kt=be(require("clsx")),At=require("react");var Et=require("@vuu-ui/vuu-ui-controls"),De=require("@vuu-ui/vuu-utils"),ke=require("react"),St=({columns:e,onMoveColumn:o,onSortColumn:t,tableConfig:r})=>{let n=(0,ke.useRef)(null),l=(0,ke.useRef)(null),a=(0,ke.useCallback)(b=>{n.current=b,b?l.current=b.closest(".vuuTable-contentContainer"):l.current=null},[]),i=(0,ke.useCallback)(({fromIndex:b,toIndex:v})=>{let w=e[b],T=(0,De.moveColumnTo)(e,w,v),d=({name:y})=>P=>P.name===y,g=T.findIndex(d(w)),h=T[g+1],E=h?r.columns.findIndex(d(h)):-1;v>b&&E!==-1?o((0,De.moveColumnTo)(r.columns,w,E-1)):o((0,De.moveColumnTo)(r.columns,w,E))},[e,o,r.columns]),s=(0,ke.useCallback)(b=>{var g;let v=(0,De.queryClosest)(b.target,".vuuTableHeaderCell"),w=parseInt((g=v==null?void 0:v.dataset.index)!=null?g:"-1"),T=(0,De.visibleColumnAtIndex)(e,w),d=b.shiftKey;T&&t(T,d)},[e,t]),{onMouseDown:u,draggable:m,...c}=(0,Et.useDragDrop)({allowDragDrop:!0,containerRef:n,draggableClassName:"vuuTable",itemQuery:".vuuTableHeaderCell",onDrop:i,orientation:"horizontal",scrollingContainerRef:l});return{draggableColumn:m,draggedColumnIndex:c.draggedItemIndex,onClick:s,onMouseDown:u,setContainerRef:a}};var ve=require("react/jsx-runtime"),Po=(0,At.memo)(({classBase:e="vuuTable",columns:o,headings:t,onMoveColumn:r,onMoveGroupColumn:n,onRemoveGroupColumn:l,onResizeColumn:a,onSortColumn:i,showColumnHeaderMenus:s,tableConfig:u,tableId:m,virtualColSpan:c=0})=>{let{draggableColumn:b,draggedColumnIndex:v,onClick:w,onMouseDown:T,setContainerRef:d}=St({columns:o,onMoveColumn:r,onSortColumn:i,tableConfig:u});return(0,ve.jsxs)("div",{className:`${e}-col-headings`,ref:d,children:[t.map((g,h)=>(0,ve.jsx)("div",{className:"vuuTable-heading",children:g.map(({label:E,width:y},P)=>(0,ve.jsx)("div",{className:"vuuTable-headingCell",style:{width:y},children:E},P))},h)),(0,ve.jsxs)("div",{className:`${e}-col-headers`,role:"row",children:[c>0?(0,ve.jsx)("div",{role:"cell",className:"vuuTableCell",style:{width:c}}):null,o.filter(no.isNotHidden).map((g,h)=>(0,no.isGroupColumn)(g)?(0,ve.jsx)(oo,{"aria-colindex":g.index,column:g,"data-index":h,onMoveColumn:n,onRemoveColumn:l,onResize:a},g.name):(0,ve.jsx)(wo,{"aria-colindex":g.index,className:(0,kt.default)({"vuuDraggable-dragAway":h===v}),column:g,"data-index":h,id:`${m}-col-${h}`,onClick:w,onMouseDown:T,onResize:a,showMenu:s},g.name)),b]})]})});Po.displayName="TableHeader";var Tn=require("@vuu-ui/vuu-ui-controls"),B=require("@vuu-ui/vuu-utils"),M=require("react");var Lt=require("@vuu-ui/vuu-utils"),It=e=>(o,t)=>{let r=[];return e===void 0||(o==="header"||o==="column-menu")&&(r.push(...Mr(t,e)),r.push(...Sr(t,e)),r.push(...Pr(t,e)),r.push(...Er(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})),r};function Mr(e,{sort:{sortDefs:o}}){let{column:t}=e,r=[];if(t===void 0)return r;let n=o.length>0;return t.sorted==="A"?r.push({label:"Reverse Sort (DSC)",action:"sort-dsc",options:e}):t.sorted==="D"?r.push({label:"Reverse Sort (ASC)",action:"sort-asc",options:e}):typeof t.sorted=="number"?(t.sorted>0?r.push({label:"Reverse Sort (DSC)",action:"sort-add-dsc",options:e}):r.push({label:"Reverse Sort (ASC)",action:"sort-add-asc",options:e}),n&&Math.abs(t.sorted)<o.length&&r.push({label:"Remove from sort",action:"sort-remove",options:e}),r.push({label:"New Sort",children:[{label:"Ascending",action:"sort-asc",options:e},{label:"Descending",action:"sort-dsc",options:e}]})):n?(r.push({label:"Add to sort",children:[{label:"Ascending",action:"sort-add-asc",options:e},{label:"Descending",action:"sort-add-dsc",options:e}]}),r.push({label:"New Sort",children:[{label:"Ascending",action:"sort-asc",options:e},{label:"Descending",action:"sort-dsc",options:e}]})):r.push({label:"Sort",children:[{label:"Ascending",action:"sort-asc",options:e},{label:"Descending",action:"sort-dsc",options:e}]}),r}function Pr(e,o){let{column:t}=e;if(t===void 0||o.groupBy.length===0)return[];let{name:r,label:n=r}=t;return[{label:`Aggregate ${n}`,children:[{label:"Count",action:"agg-count",options:e},{label:"Distinct",action:"agg-distinct",options:e}].concat((0,Lt.isNumericColumn)(t)?[{label:"Sum",action:"agg-sum",options:e},{label:"Avg",action:"agg-avg",options:e},{label:"High",action:"agg-high",options:e},{label:"Low",action:"agg-low",options:e}]:[])}]}var Ao=(e,o)=>({label:`Pin ${o}`,action:`column-pin-${o}`,options:e}),Eo=e=>Ao(e,"left"),So=e=>Ao(e,"floating"),ko=e=>Ao(e,"right");function Er(e){let{column:o}=e;if(o===void 0)return[];let{pin:t}=o,r=[{label:"Hide column",action:"column-hide",options:e},{label:"Remove column",action:"column-remove",options:e}];return t===void 0?r.push({label:"Pin column",children:[Eo(e),So(e),ko(e)]}):t==="left"?r.push({label:"Unpin column",action:"column-unpin",options:e},{label:"Pin column",children:[So(e),ko(e)]}):t==="right"?r.push({label:"Unpin column",action:"column-unpin",options:e},{label:"Pin column",children:[Eo(e),So(e)]}):t==="floating"&&r.push({label:"Unpin column",action:"column-unpin",options:e},{label:"Pin column",children:[Eo(e),ko(e)]}),r}function Sr(e,{groupBy:o}){let{column:t}=e,r=[];if(t===void 0)return r;let{name:n,label:l=n}=t;return o.length===0?r.push({label:`Group by ${l}`,action:"group",options:e}):r.push({label:`Add ${l} to group by`,action:"group-add",options:e}),r}var zt=require("@vuu-ui/vuu-utils"),U=require("@vuu-ui/vuu-utils"),kr=(e,o)=>{if(e.filterStruct&&o){let[t,r]=(0,zt.removeColumnFromFilter)(o,e.filterStruct);return{filter:r,filterStruct:t}}else return e},{Average:Ar,Count:Lr,Distinct:Ir,High:zr,Low:Nr,Sum:Kr}=U.AggregationType,Nt=({dataSource:e,onPersistentColumnOperation:o})=>r=>{let n=r.options;if(n.column&&e){let{column:l}=n;switch(r.menuId){case"sort-asc":return e.sort=(0,U.setSortColumn)(e.sort,l,"A"),!0;case"sort-dsc":return e.sort=(0,U.setSortColumn)(e.sort,l,"D"),!0;case"sort-add-asc":return e.sort=(0,U.addSortColumn)(e.sort,l,"A"),!0;case"sort-add-dsc":return e.sort=(0,U.addSortColumn)(e.sort,l,"D"),!0;case"group":return e.groupBy=(0,U.addGroupColumn)(e.groupBy,l),!0;case"group-add":return e.groupBy=(0,U.addGroupColumn)(e.groupBy,l),!0;case"column-hide":return o({type:"hideColumns",columns:[l]}),!0;case"column-remove":return e.columns=e.columns.filter(a=>a!==l.name),!0;case"filter-remove-column":return e.filter=kr(e.filter,l),!0;case"remove-filters":return e.filter={filter:""},!0;case"agg-avg":return e.aggregations=(0,U.setAggregations)(e.aggregations,l,Ar),!0;case"agg-high":return e.aggregations=(0,U.setAggregations)(e.aggregations,l,zr),!0;case"agg-low":return e.aggregations=(0,U.setAggregations)(e.aggregations,l,Nr),!0;case"agg-count":return e.aggregations=(0,U.setAggregations)(e.aggregations,l,Lr),!0;case"agg-distinct":return e.aggregations=(0,U.setAggregations)(e.aggregations,l,Ir),!0;case"agg-sum":return e.aggregations=(0,U.setAggregations)(e.aggregations,l,Kr),!0;case"column-pin-floating":return o({type:"pinColumn",column:l,pin:"floating"}),!0;case"column-pin-left":return o({type:"pinColumn",column:l,pin:"left"}),!0;case"column-pin-right":return o({type:"pinColumn",column:l,pin:"right"}),!0;case"column-unpin":return o({type:"pinColumn",column:l,pin:void 0}),!0;case"column-settings":return o({type:"columnSettings",column:l}),!0;case"table-settings":return o({type:"tableSettings"}),!0;default:}}return!1};var Lo=(e,o)=>{switch(o.type){case"col-size":return{...e,columns:e.columns.map(t=>t.name===o.column.name?{...t,width:o.width}:t)};case"column-prop":return{...e,columns:e.columns.map(t=>t.name===o.column.name?{...t,[o.property]:o.value}:t)};default:return e}};var $t=require("@vuu-ui/vuu-utils"),He=require("react");var Io=e=>`.vuuTable-col-headers .vuuTableHeaderCell:nth-child(${e})`,zo=(e,o)=>`.vuuTable-body > [aria-rowindex='${e+1}'] > [role='cell']:nth-child(${o+1})`,Kt=(e,[o,t])=>{var l;let r=o===-1?Io(t):zo(o,t),n=(l=e.current)==null?void 0:l.querySelector(r);return Fr(n)&&n.querySelector("button")||n},Fr=e=>e==null?void 0:e.classList.contains("vuuTableCell-editable"),Ft=e=>e.querySelector(".vuuTableInputCell")!==null;function Gr(e){if(e){let o=e.ariaRowIndex;if(o!==null)return parseInt(o,10)-1}return-1}var Or=e=>e.closest('[role="row"]'),Gt=e=>Gr(Or(e)),$r=[void 0,void 0],Ot=(e,o,t=e.closest(".vuuTable-contentContainer"))=>{if(t){let r=t==null?void 0:t.getBoundingClientRect(),n=r.top+o,l=e.getBoundingClientRect();if(l)return l.bottom>r.bottom?["down",l.bottom-r.bottom]:l.top<n?["up",l.top-n]:$r;throw Error("Whats going on, row not found")}else throw Error("Whats going on, scrollbar container not found")};var Bt=({navigate:e})=>{let o=(0,He.useCallback)(()=>{e()},[e]),t=(0,He.useCallback)(s=>{let u=s.target,m=u.matches("input")?u:u.querySelector("input");m&&(m.focus(),m.select())},[]),r=(0,He.useCallback)(s=>{let m=s.target.querySelector("input");m&&(m.focus(),m.select())},[]),n=(0,He.useCallback)(s=>{let u=s.target;Ft(u)&&((0,$t.isCharacterKey)(s.key)?t(s):s.key==="Enter"&&r(s))},[t,r]),l=(0,He.useCallback)(s=>{let u=s.target;(u.matches("input")||u.querySelector("input"))&&(t(s),s.stopPropagation())},[t]),a=(0,He.useCallback)(s=>{s.target.removeEventListener("vuu-commit",o,!0)},[o]),i=(0,He.useCallback)(s=>{s.target.addEventListener("vuu-commit",o,!0)},[o]);return{onBlur:a,onDoubleClick:l,onFocus:i,onKeyDown:n}};var Me=require("@vuu-ui/vuu-utils"),X=require("react");var $e=require("@vuu-ui/vuu-utils"),{SELECTED:No}=$e.metadataKeys,ro=class{constructor({from:o,to:t}){this.rowCount=0;this.setRowCount=o=>{o<this.data.length&&(this.data.length=o),this.rowCount=o};this.range=new $e.WindowRange(o,t),this.data=new Array(Math.max(0,t-o)),this.rowCount=0}add(o){let[t]=o;if(this.isWithinRange(t)){let r=t-this.range.from;if(this.data[r]=o,o[No]){let n=this.data[r-1];(0,$e.isRowSelectedLast)(n)&&(this.data[r-1]=n.slice(),this.data[r-1][No]-=4)}}}getAtIndex(o){return this.range.isWithin(o)&&this.data[o-this.range.from]!=null?this.data[o-this.range.from]:void 0}isWithinRange(o){return this.range.isWithin(o)}setRange({from:o,to:t}){if(o!==this.range.from||t!==this.range.to){let[r,n]=this.range.overlap(o,t),l=new Array(Math.max(0,t-o));for(let a=r;a<n;a++){let i=this.getAtIndex(a);if(i){let s=a-o;l[s]=i}}this.data=l,this.range.from=o,this.range.to=t}}getSelectedRows(){return this.data.filter(o=>o[No]!==0)}};var Br=e=>e.type==="vuu-link-created"||e.type==="vuu-link-removed",Vt=({dataSource:e,onFeatureInvocation:o,onSizeChange:t,onSubscribed:r,range:n=Me.NULL_RANGE,renderBufferSize:l=0})=>{let[,a]=(0,X.useState)(null),i=(0,X.useRef)([]),s=(0,X.useRef)(!0),u=(0,X.useRef)(!1),m=(0,X.useRef)(n),c=(0,X.useMemo)(()=>new ro((0,Me.getFullRange)(n,l)),[]),b=(0,X.useCallback)(d=>{for(let g of d)c.add(g);i.current=c.data,s.current&&a({})},[c]),v=(0,X.useCallback)(d=>{d.type==="subscribed"?r==null||r(d):d.type==="viewport-update"?(typeof d.size=="number"&&(t==null||t(d.size),c.setRowCount(d.size)),d.rows?b(d.rows):typeof d.size=="number"&&(i.current=c.data,u.current=!0)):Br(d)?o==null||o(d):console.log(`useDataSource unexpected message ${d.type}`)},[c,o,t,r,b]),w=(0,X.useCallback)(()=>c.getSelectedRows(),[c]);(0,X.useEffect)(()=>{var d;return s.current=!0,(d=e.resume)==null||d.call(e),()=>{var g;s.current=!1,(g=e.suspend)==null||g.call(e)}},[e]),(0,X.useEffect)(()=>{var d;e.status==="disabled"?(d=e.enable)==null||d.call(e,v):e==null||e.subscribe({range:(0,Me.getFullRange)(n,l)},v)},[e,v,n,l]);let T=(0,X.useCallback)(d=>{if(!(0,Me.rangesAreSame)(d,m.current)){let g=(0,Me.getFullRange)(d,l);c.setRange(g),e.range=m.current=g,e.emit("range",d)}},[e,c,l]);return{data:i.current,dataRef:i,getSelectedRows:w,range:m.current,setRange:T}};var lo=require("react"),Wt=e=>{let o=(0,lo.useRef)(e);return(0,lo.useMemo)(()=>o.current,[])};var Xt=require("@vuu-ui/vuu-utils"),Qt=require("@salt-ds/core"),$=require("react");var Jt=new Set(["Home","End","PageUp","PageDown","ArrowDown","ArrowUp"]),Ko=new Set(Jt);Ko.add("ArrowLeft");Ko.add("ArrowRight");var Vr=(e,o)=>{switch(o){case"cell":return Ko.has(e);case"row":return Jt.has(e);default:return!1}},Wr=["Home","End","PageUp","PageDown"],Ut=e=>Wr.includes(e),Ur=[-1,-1];function _t(e,[o,t],r,n){return e==="ArrowUp"?o>-1?[o-1,t]:[o,t]:e==="ArrowDown"?o===-1?[0,t]:o===n-1?[o,t]:[o+1,t]:e==="ArrowRight"?t<r?[o,t+1]:[o,t]:e==="ArrowLeft"?t>1?[o,t-1]:[o,t]:[o,t]}var Zt=({columnCount:e=0,containerRef:o,disableFocus:t=!1,defaultHighlightedIndex:r,disableHighlightOnFocus:n,highlightedIndex:l,navigationStyle:a,requestScroll:i,onHighlight:s,rowCount:u=0,viewportRowCount:m})=>{var de;let c=(0,$.useRef)([-1,-1]),b=(0,$.useRef)(),v=(0,$.useRef)([-1,0]),w=(0,$.useRef)(),[T,d]=(0,Qt.useControlled)({controlled:l,default:r,name:"UseKeyboardNavigation"});w.current=T;let g=(0,$.useCallback)((f,x=!1)=>{s==null||s(f),d(f)},[s,d]),h=f=>f==null?void 0:f.closest("[role='columnHeader'],[role='cell']"),E=f=>{var x;if(f.role==="columnHeader")return[-1,parseInt((x=f.dataset.idx)!=null?x:"-1",10)];{let D=f.closest("[role='row']");if(D){let V=(0,Xt.getIndexFromRowElement)(D),C=Array.from(D.childNodes).indexOf(f);return[V,C]}}return Ur},y=(0,$.useCallback)(f=>{var x;if(o.current){let D=Kt(o,f);D&&(D!==b.current&&((x=b.current)==null||x.removeAttribute("tabindex"),b.current=D,D.setAttribute("tabindex","0")),i==null||i({type:"scroll-row",rowIndex:f[0]}),D.focus({preventScroll:!0}))}},[o,i]),P=(0,$.useCallback)((f,x,D=!1)=>{let V=[f,x];v.current=V,a==="row"?d(f):y(V),D&&(c.current=V)},[y,a,d]),I=(0,$.useCallback)((f,[x,D])=>new Promise(V=>{let C=x;switch(f){case"PageDown":{C=Math.min(u-1,x+m),C!==x&&(i==null||i({type:"scroll-page",direction:"down"}));break}case"PageUp":{C=Math.max(0,x-m),C!==x&&(i==null||i({type:"scroll-page",direction:"up"}));break}case"Home":{C=0,C!==x&&(i==null||i({type:"scroll-end",direction:"home"}));break}case"End":{C=u-1,C!==x&&(i==null||i({type:"scroll-end",direction:"end"}));break}}setTimeout(()=>{V([C,D])},35)}),[i,u,m]),S=(0,$.useCallback)(()=>{var f;if(n!==!0&&(f=o.current)!=null&&f.contains(document.activeElement)){let x=h(document.activeElement);x&&(c.current=E(x),a==="row"&&d(c.current[0]))}},[n,o,a,d]),K=(0,$.useCallback)(async f=>{let[x,D]=Ut(f)?await I(f,v.current):_t(f,v.current,e,u),[V,C]=v.current;(x!==V||D!==C)&&P(x,D,!0)},[e,I,u,P]),z=(0,$.useCallback)(f=>{i==null||i({type:"scroll-row",rowIndex:f})},[i]),Z=(0,$.useCallback)(async f=>{let{current:x}=w,[D]=Ut(f)?await I(f,[x!=null?x:-1,0]):_t(f,[x!=null?x:-1,0],e,u);D!==x&&(g(D),z(D))},[e,I,u,z,g]);(0,$.useEffect)(()=>{l!==void 0&&l!==-1&&z(l)},[l,z]);let oe=(0,$.useCallback)(f=>{u>0&&Vr(f.key,a)&&(f.preventDefault(),f.stopPropagation(),a==="row"?Z(f.key):K(f.key))},[u,a,Z,K]),j=(0,$.useCallback)(f=>{let x=f.target,D=h(x);if(D){let[V,C]=E(D);P(V,C)}},[P]),te=(0,$.useCallback)(()=>{g(-1)},[g]),F=(0,$.useCallback)(f=>{let x=Gt(f.target);x!==-1&&x!==w.current&&g(x)},[g]),A=(0,$.useCallback)(()=>{K("ArrowDown")},[K]),me=((de=o.current)==null?void 0:de.firstChild)!=null;return(0,$.useEffect)(()=>{if(me&&b.current===void 0&&!t){let{current:f}=o,x=(f==null?void 0:f.querySelector(Io(0)))||(f==null?void 0:f.querySelector(zo(0,0)));x&&(x.setAttribute("tabindex","0"),b.current=x)}},[o,t,me]),{highlightedIndexRef:w,navigate:A,onClick:j,onFocus:S,onKeyDown:oe,onMouseLeave:a==="row"?te:void 0,onMouseMove:a==="row"?F:void 0}};var le=require("@vuu-ui/vuu-utils"),Ae=require("react"),{IDX:_r}=le.metadataKeys,Xr=[],Qr=["Enter"," "],Yt=({highlightedIndexRef:e,selectionKeys:o=Qr,selectionModel:t,onSelect:r,onSelectionChange:n})=>{let l=(0,Ae.useRef)(-1),a=(0,Ae.useRef)(Xr),i=(0,Ae.useCallback)(m=>o.includes(m.key),[o]),s=(0,Ae.useCallback)((m,c,b,v)=>{let{[_r]:w}=c,{current:T}=l,{current:d}=a,g=(0,le.isRowSelected)(c)?le.deselectItem:le.selectItem,h=g(t,d,w,b,v,T);a.current=h,l.current=w,r==null||r(g===le.selectItem?c:null),n==null||n(h)},[r,n,t]);return{onKeyDown:(0,Ae.useCallback)(m=>{if(i(m)){let{current:c}=e;if(c!==void 0&&c!==-1){let b=(0,le.getRowElementAtIndex)(m.target,c);b&&(0,le.dispatchMouseEvent)(b,"click")}}},[e,i]),onRowClick:s}};var jt=require("@vuu-ui/vuu-popups"),io=require("@vuu-ui/vuu-utils"),qt=require("react"),Jr=[],en=({columns:e,data:o,dataSource:t,getSelectedRows:r})=>{let[n]=(0,jt.useContextMenu)();return(0,qt.useCallback)(a=>{let i=a.target,s=i==null?void 0:i.closest("div[role='cell']"),u=i==null?void 0:i.closest("div[role='row']");if(s&&u){let{selectedRowsCount:m}=t,c=(0,io.buildColumnMap)(e),b=(0,io.getIndexFromRowElement)(u),v=Array.from(u.childNodes).indexOf(s),w=o.find(([d])=>d===b),T=e[v];n(a,"grid",{columnMap:c,columnName:T,row:w,selectedRows:m===0?Jr:r(),viewport:t.viewport})}},[e,o,t,r,n])};var R=require("@vuu-ui/vuu-utils"),on=require("@vuu-ui/vuu-ui-controls"),tn=require("react"),{info:Fo}=(0,R.logger)("useTableModel"),Zr=100,Yr=({serverDataType:e})=>e===void 0,nn=(e,o)=>{let t=o==null?void 0:o.columns.find(({name:r})=>r===e.name);return t?t.serverDataType:e.serverDataType},jr=["int","long","double"],rn=e=>e===void 0?void 0:jr.includes(e)?"right":"left",Go=e=>e.type==="columnSettings",Oo=e=>e.type==="tableSettings",qr=(e,o)=>{switch(Fo==null||Fo(`TableModelReducer ${o.type}`),o.type){case"init":return ln(o);case"moveColumn":return ol(e,o);case"resizeColumn":return rl(e,o);case"setTableSchema":return ll(e,o);case"hideColumns":return tl(e,o);case"showColumns":return nl(e,o);case"pinColumn":return il(e,o);case"updateColumnProp":return Be(e,o);case"tableConfig":return sn(e,o);default:return console.log(`unhandled action ${o.type}`),e}},$o=(e,o)=>{let[t,r]=(0,tn.useReducer)(qr,{tableConfig:e,dataSource:o},ln),{columns:n,headings:l,tableConfig:a,...i}=t;return{columns:n,dispatchTableModelAction:r,headings:l,tableAttributes:i,tableConfig:a}};function ln({dataSource:e,tableConfig:o}){let{columns:t,...r}=o,{config:n,tableSchema:l}=e,a=t.filter((0,R.subscribedOnly)(n==null?void 0:n.columns)).map(an(r,l)),i=a.some(R.isPinned)?(0,R.sortPinnedColumns)(a):a,s={columns:i,headings:(0,R.getTableHeadings)(i),tableConfig:o,...r};if(n){let{columns:u,...m}=n;s=sn(s,{type:"tableConfig",...m})}return s}var el=(e,o)=>o==="uppercase"?e.toUpperCase():o==="capitalize"?e[0].toUpperCase()+e.slice(1).toLowerCase():e,an=(e,o)=>(t,r)=>{let{columnDefaultWidth:n=Zr,columnFormatHeader:l}=e,a=nn(t,o),{align:i=rn(a),name:s,label:u=(0,R.getColumnLabel)(t),width:m=n,...c}=t,b={...c,align:i,CellRenderer:(0,R.getCellRenderer)(t),HeaderCellContentRenderer:(0,R.getColumnHeaderContentRenderer)(t),HeaderCellLabelRenderer:(0,R.getColumnHeaderLabelRenderer)(t),clientSideEditValidationCheck:(0,R.hasValidationRules)(t.type)?(0,on.buildValidationChecker)(t.type.renderer.rules):void 0,index:r+1,label:el(u,l),name:s,originalIdx:r,serverDataType:a,valueFormatter:(0,R.getValueFormatter)(t,a),width:m};return(0,R.isGroupColumn)(b)&&(b.columns=b.columns.map(v=>an(e)(v,r))),b};function ol(e,{column:o,moveBy:t}){let{columns:r}=e;if(typeof t=="number"){let n=r.indexOf(o),l=r.slice(),[a]=l.splice(n,1);return l.splice(n+t,0,a),{...e,columns:l}}return e}function tl(e,{columns:o}){return o.some(t=>t.hidden!==!0)?o.reduce((t,r)=>r.hidden!==!0?Be(t,{type:"updateColumnProp",column:r,hidden:!0}):t,e):e}function nl(e,{columns:o}){return o.some(t=>t.hidden)?o.reduce((t,r)=>r.hidden?Be(t,{type:"updateColumnProp",column:r,hidden:!1}):t,e):e}function rl(e,{column:o,phase:t,width:r}){let n="updateColumnProp",l=t!=="end";switch(t){case"begin":return Be(e,{type:n,column:o,resizing:l});case"end":return Be(e,{type:n,column:o,resizing:l,width:r});case"resize":return Be(e,{type:n,column:o,width:r});default:throw Error(`useTableModel.resizeColumn, invalid resizePhase ${t}`)}}function ll(e,{tableSchema:o}){let{columns:t}=e;if(t.some(Yr)){let r=t.map(n=>{var a;let l=nn(n,o);return{...n,align:(a=n.align)!=null?a:rn(l),serverDataType:l}});return{...e,columns:r}}else return e}function il(e,o){let{columns:t}=e,{column:r,pin:n}=o,l=t.find(a=>a.name===r.name);return l?(t=(0,R.replaceColumn)(t,{...l,pin:n}),t=(0,R.sortPinnedColumns)(t),{...e,columns:t}):e}function Be(e,o){let{columns:t,tableConfig:r}=e,{align:n,column:l,hidden:a,label:i,resizing:s,width:u}=o,m=t.find(c=>c.name===l.name);if(m&&((n==="left"||n==="right")&&(t=(0,R.replaceColumn)(t,{...m,align:n})),typeof i=="string"&&(t=(0,R.replaceColumn)(t,{...m,label:i})),typeof s=="boolean"&&(t=(0,R.replaceColumn)(t,{...m,resizing:s})),typeof a=="boolean"&&(t=(0,R.replaceColumn)(t,{...m,hidden:a})),typeof u=="number")){t=(0,R.replaceColumn)(t,{...m,width:u});let c=r.columns.find(b=>b.name===l.name);c&&(r={...r,columns:(0,R.replaceColumn)(r.columns,{...c,width:u})})}return{...e,columns:t,tableConfig:r}}function sn(e,{confirmed:o,filter:t,groupBy:r,sort:n}){let l=r!==void 0,a=typeof(t==null?void 0:t.filter)=="string",i=n&&n.sortDefs.length>0,s=e;return l&&(s={...e,columns:(0,R.applyGroupByToColumns)(s.columns,r,o)}),i?s={...e,columns:(0,R.applySortToColumns)(s.columns,n)}:(0,R.existingSort)(s.columns)&&(s={...e,columns:(0,R.removeSort)(s.columns)}),a?s={...e,columns:(0,R.applyFilterToColumns)(s.columns,t)}:s.columns.some(R.isFilteredColumn)&&(s={...e,columns:(0,R.stripFilterFromColumns)(s.columns)}),s}var Le=require("@vuu-ui/vuu-utils"),H=require("react");var al=100,un=200,cn=e=>{let{clientHeight:o,clientWidth:t,scrollHeight:r,scrollWidth:n}=e;return[n-t,r-o]},sl=(e,o)=>{if(e!==void 0){let{scrollTop:t}=e;return o>t?"fwd":"bwd"}},mn=(e,o)=>{let{clientHeight:t,clientWidth:r,scrollHeight:n,scrollLeft:l,scrollTop:a,scrollWidth:i}=e,s=i-r,u=l/(i-r),m=n-t,c=a/(n-t),b=sl(o,a);return b==="fwd"&&c>.99?c=1:b==="bwd"&&c<.02&&(c=0),[l,u,s,a,c,m]},pn={scrollToIndex:()=>{},scrollToKey:()=>{}},dn=({onAttach:e,onDetach:o})=>{let t=(0,H.useRef)(null);return(0,H.useCallback)(n=>{if(n)t.current=n,e==null||e(n);else if(t.current){let{current:l}=t;t.current=n,o==null||o(l)}},[e,o])},Bo=({columns:e,getRowAtPosition:o,onHorizontalScroll:t,onVerticalScroll:r,onVerticalScrollInSitu:n,rowHeight:l,scrollingApiRef:a,setRange:i,viewportMeasurements:s})=>{let u=(0,H.useRef)(0),m=(0,H.useRef)(l),c=(0,H.useRef)(!1),b=(0,H.useRef)({scrollTop:0,scrollLeft:0}),v=(0,H.useRef)(!1),w=(0,H.useRef)({scrollTop:0,scrollLeft:0}),T=(0,H.useRef)(null),d=(0,H.useRef)(null),g=(0,H.useRef)(0),{appliedPageSize:h,isVirtualScroll:E,rowCount:y,totalHeaderHeight:P,viewportWidth:I}=s,S=(0,H.useRef)([]),[,K]=(0,H.useState)({}),z=(0,H.useRef)(0);(0,H.useMemo)(()=>{let[C,k]=(0,Le.getColumnsInViewport)(e,b.current.scrollLeft,b.current.scrollLeft+I+un);z.current=k,S.current=C},[I,e]);let Z=(0,H.useCallback)(C=>{if(b.current.scrollLeft=C,t==null||t(C),Math.abs(C-g.current)>al){g.current=C;let[k,W]=(0,Le.getColumnsInViewport)(e,C,C+I+un);(0,Le.itemsChanged)(S.current,k)&&(z.current=W,S.current=k,K({}))}},[e,t,I]),oe=(0,H.useCallback)((C,k)=>{b.current.scrollTop=C,r==null||r(C,k);let W=o(C);W!==u.current&&(u.current=W,i({from:W,to:W+y})),n==null||n(0)},[o,r,n,i,y]),j=(0,H.useCallback)(()=>{let{current:C}=d,{current:k}=T,{current:W}=c,{current:q}=w;if(W)c.current=!1;else if(C&&k){v.current=!0;let[Y,pe,,Q,O]=mn(k,q);q.scrollLeft=Y,q.scrollTop=Q;let[G,J]=cn(k),ae=Math.round(pe*G),ee=O*J;C.scrollTo({left:ae,top:ee,behavior:"auto"})}n==null||n(0)},[n]),te=(0,H.useCallback)(()=>{let{current:C}=v,{current:k}=d,{current:W}=T,{current:q}=b;if(k&&W){let[Y,pe,Q,O,G,J]=mn(k);c.current=!0,C?v.current=!1:(W.scrollLeft=Math.round(pe*Q),W.scrollTop=G*J),q.scrollTop!==O&&oe(O,G),q.scrollLeft!==Y&&Z(Y)}},[oe,Z]),F=(0,H.useCallback)(C=>{T.current=C,C.addEventListener("scroll",j,{passive:!0})},[j]),A=(0,H.useCallback)(C=>{T.current=null,C.removeEventListener("scroll",j)},[j]),me=(0,H.useCallback)(C=>{d.current=C,C.addEventListener("scroll",te,{passive:!0})},[te]),de=(0,H.useCallback)(C=>{d.current=null,C.removeEventListener("scroll",te)},[te]),f=dn({onAttach:me,onDetach:de}),x=dn({onAttach:F,onDetach:A}),D=(0,H.useCallback)(C=>{let{current:k}=d;if(k){let[W,q]=cn(k),{scrollLeft:Y,scrollTop:pe}=k;if(c.current=!1,C.type==="scroll-row"){let Q=(0,Le.getRowElementAtIndex)(k,C.rowIndex);if(Q!==null){let[O,G]=Ot(Q,P);if(console.log(`outside viewport ? ${O} ${G}`),O&&G)if(E){let J=O==="down"?1:-1;n==null||n(J);let ae=u.current+J;u.current=ae,i({from:ae,to:ae+y})}else{let J=Y,ae=pe;O==="up"||O==="down"?ae=Math.min(Math.max(0,pe+G),q):J=Math.min(Math.max(0,Y+G),W),k.scrollTo({top:ae,left:J,behavior:"smooth"})}}}else if(C.type==="scroll-page"){let{direction:Q}=C;if(E){let O=Q==="down"?y:-y;n==null||n(O);let G=u.current+O;u.current=G,i({from:G,to:G+y})}else{let O=Q==="down"?h:-h,G=Math.min(Math.max(0,pe+O),q);k.scrollTo({top:G,left:Y,behavior:"auto"})}}else if(C.type==="scroll-end"){let{direction:Q}=C,O=Q==="end"?q:0;k.scrollTo({top:O,left:k.scrollLeft,behavior:"auto"})}}},[h,E,n,i,P,y]),V=(0,H.useMemo)(()=>({scrollToIndex:C=>{if(T.current){let k=(C-30)*20;T.current.scrollTop=k}},scrollToKey:C=>{console.log(`scrollToKey ${C}`)}}),[]);return(0,H.useImperativeHandle)(a,()=>T.current?V:pn,[V]),(0,H.useEffect)(()=>{if(l!==m.current)m.current=l,b.current.scrollTop>0&&d.current&&(d.current.scrollTop=0);else{let{current:C}=u,k={from:C,to:C+y};i(k)}},[l,i,y]),{columnsWithinViewport:S.current,scrollbarContainerRef:x,contentContainerRef:f,requestScroll:D,virtualColSpan:z.current}};var Ve=require("@vuu-ui/vuu-utils"),ue=require("react"),ul=1e7,cl={appliedPageSize:0,contentHeight:0,contentWidth:0,getRowAtPosition:()=>-1,getRowOffset:()=>-1,horizontalScrollbarHeight:0,isVirtualScroll:!1,pinnedWidthLeft:0,pinnedWidthRight:0,rowCount:0,setInSituRowOffset:()=>{},setScrollTop:()=>{},totalHeaderHeight:0,verticalScrollbarWidth:0,viewportBodyHeight:0,viewportWidth:0},Vo=({columns:e,headerHeight:o,headings:t,rowCount:r,rowHeight:n,selectionEndSize:l=4,size:a})=>{let i=(0,ue.useRef)(0),s=(0,ue.useRef)(0),u=Math.min(n*r,ul),m=r*n,c=m-u,{pinnedWidthLeft:b,pinnedWidthRight:v,unpinnedWidth:w}=(0,ue.useMemo)(()=>(0,Ve.measurePinnedColumns)(e,l),[e,l]),T=(0,ue.useRef)(o);(0,ue.useMemo)(()=>{T.current=o*(1+t.length)},[o,t.length]);let[d,g,h]=(0,ue.useMemo)(()=>{if(c){let[P,I,S]=(0,Ve.virtualRowPositioning)(n,c,s);return[z=>P(z,i.current),I,S]}else return(0,Ve.actualRowPositioning)(n)},[c,n]),E=(0,ue.useCallback)((P,I)=>{s.current=I},[]),y=(0,ue.useCallback)(P=>{P===0?i.current=0:i.current=Math.max(0,i.current+P)},[]);return(0,ue.useMemo)(()=>{if(a){let{current:P}=T,I=15,S=b+w+v,K=S>a.width?I:0,z=(a.height-o)/n,Z=Number.isInteger(z)?z:Math.ceil(z),oe=a.height-P,j=u>oe?I:0,te=Z*n*(u/m),F=a.width;return{appliedPageSize:te,contentHeight:u,contentWidth:S,getRowAtPosition:g,getRowOffset:d,isVirtualScroll:h,horizontalScrollbarHeight:K,pinnedWidthLeft:b,pinnedWidthRight:v,rowCount:Z,setInSituRowOffset:y,setScrollTop:E,totalHeaderHeight:P,verticalScrollbarWidth:j,viewportBodyHeight:oe,viewportWidth:F}}else return cl},[g,d,o,h,b,w,v,u,n,y,E,a,m])};var bn=require("@vuu-ui/vuu-layout"),fn=require("@vuu-ui/vuu-utils"),ce=require("react"),gn=({availableColumns:e,onAvailableColumnsChange:o,onConfigChange:t,onCreateCalculatedColumn:r,onDataSourceConfigChange:n,tableConfig:l})=>{let a=(0,bn.useLayoutProviderDispatch)(),i=(0,ce.useRef)(),[s,u]=(0,ce.useState)(e),m=(0,ce.useCallback)((d,g,h)=>{a({type:"set-props",path:"#context-panel",props:{expanded:!0,content:{type:d,props:h},title:g}})},[a]),c=(0,ce.useCallback)(()=>{requestAnimationFrame(()=>{var d;(d=i.current)==null||d.call(i)})},[]),b=(0,ce.useCallback)(d=>{let g=s.concat({name:d.name,serverDataType:(0,fn.getCalculatedColumnType)(d)});u(g),o==null||o(g),requestAnimationFrame(()=>{var h;(h=i.current)==null||h.call(i)}),r(d)},[s,o,r]),v=(0,ce.useCallback)(d=>{m("ColumnSettings","Column Settings",{column:d.column,onCancelCreateColumn:c,onConfigChange:t,onCreateCalculatedColumn:b,tableConfig:l,vuuTable:d.vuuTable})},[c,b,t,m,l]),w=(0,ce.useCallback)(()=>{v({column:{name:"::",serverDataType:"string"},type:"columnSettings",vuuTable:{module:"SIMUL",table:"instruments"}})},[v]),T=(0,ce.useCallback)(d=>{let g=l.columns.find(h=>h.name===d);g&&v({type:"columnSettings",column:g,vuuTable:{module:"SIMUL",table:"instruments"}})},[v,l.columns]);return i.current=(0,ce.useCallback)(()=>{m("TableSettings","DataGrid Settings",{availableColumns:s!=null?s:l.columns.map(({name:d,serverDataType:g})=>({name:d,serverDataType:g})),onAddCalculatedColumn:w,onConfigChange:t,onDataSourceConfigChange:n,onNavigateToColumn:T,tableConfig:l})},[s,w,T,t,n,m,l]),{showColumnSettingsPanel:v,showTableSettingsPanel:i.current}};var Cn=require("@vuu-ui/vuu-utils"),vn=require("react"),ml=e=>{let o=[];return e==null||e.forEach(t=>{let r=(0,Cn.getRowClassNameGenerator)(t);r&&o.push(r.fn)}),(t,r)=>{let n=[];return o==null||o.forEach(l=>{let a=l(t,r);a&&n.push(a)}),n.join(" ")}},hn=({rowClassNameGenerators:e})=>(0,vn.useMemo)(()=>ml(e),[e]);var ao=e=>e,{KEY:dl,IS_EXPANDED:wn,IS_LEAF:xn}=B.metadataKeys,pl={draggable:void 0,onMouseDown:void 0},bl=()=>pl,fl=(e,o)=>({...e,columns:e.columns.concat(o)}),Rn=({allowDragDrop:e=!1,availableColumns:o,config:t,containerRef:r,dataSource:n,disableFocus:l,headerHeight:a=25,highlightedIndex:i,id:s,navigationStyle:u="cell",onAvailableColumnsChange:m,onConfigChange:c,onDragStart:b,onDrop:v,onFeatureInvocation:w,onHighlight:T,onRowClick:d,onSelect:g,onSelectionChange:h,renderBufferSize:E=0,rowHeight:y=20,scrollingApiRef:P,selectionModel:I,size:S})=>{let[K,z]=(0,M.useState)(n.size);if(n===void 0)throw Error("no data source provided to Vuu Table");let Z=hn(t),oe=e?Tn.useDragDrop:bl,j=(0,M.useMemo)(()=>It(n),[n]),te=(0,M.useCallback)(p=>{z(p)},[]),{columns:F,dispatchTableModelAction:A,headings:me,tableAttributes:de,tableConfig:f}=$o(t,n);(0,B.useLayoutEffectSkipFirst)(()=>{A({type:"init",tableConfig:t,dataSource:n})},[t,n,A]);let x=(0,M.useCallback)(p=>{A({type:"init",tableConfig:p,dataSource:n}),c==null||c(ao(p))},[n,A,c]),D=(0,M.useMemo)(()=>(0,B.buildColumnMap)(n.columns),[n.columns]),V=(0,M.useCallback)(({tableSchema:p})=>{p?A({type:"setTableSchema",tableSchema:p}):console.log("subscription message with no schema")},[A]),{getRowAtPosition:C,getRowOffset:k,setInSituRowOffset:W,setScrollTop:q,...Y}=Vo({columns:F,headerHeight:a,headings:me,rowCount:K,rowHeight:y,size:S}),pe=Wt({from:0,to:Y.rowCount}),{data:Q,dataRef:O,getSelectedRows:G,range:J,setRange:ae}=Vt({dataSource:n,onFeatureInvocation:w,renderBufferSize:E,onSizeChange:te,onSubscribed:V,range:pe}),{requestScroll:ee,...fo}=Bo({columns:F,getRowAtPosition:C,rowHeight:y,scrollingApiRef:P,setRange:ae,onVerticalScroll:q,onVerticalScrollInSitu:W,viewportMeasurements:Y}),go=(0,M.useCallback)(p=>{A({type:"init",tableConfig:p,dataSource:n}),c==null||c(ao(p))},[n,A,c]),Ze=(0,M.useCallback)(p=>{n.config={...n.config,...p}},[n]);(0,M.useEffect)(()=>{n.on("config",(p,L,N)=>{((N==null?void 0:N.filterChanged)||(N==null?void 0:N.groupByChanged))&&n.range.from>0&&ee({type:"scroll-end",direction:"home"}),A({type:"tableConfig",...p,confirmed:L})})},[n,A,ee]);let Ee=(0,M.useCallback)(p=>{n.columns=n.columns.concat(p.name),x(fl(f,p))},[n,f,x]),Xo=(0,M.useCallback)(p=>{let{columns:L}=p,N=L.map(ne=>ne.name),_={...f,columns:f.columns.map(ne=>N.includes(ne.name)?{...ne,hidden:!0}:ne)};x(_)},[f,x]),Qo=(0,M.useCallback)(p=>{x({...f,columns:(0,B.updateColumn)(f.columns,{...p.column,pin:p.pin})})},[f,x]),{showColumnSettingsPanel:Jo,showTableSettingsPanel:Zo}=gn({availableColumns:o!=null?o:f.columns.map(({name:p,serverDataType:L="string"})=>({name:p,serverDataType:L})),onAvailableColumnsChange:m,onConfigChange:go,onCreateCalculatedColumn:Ee,onDataSourceConfigChange:Ze,tableConfig:f}),Vn=(0,M.useCallback)(p=>{if(Go(p))Jo(p);else if(Oo(p))Zo();else switch(p.type){case"hideColumns":return Xo(p);case"pinColumn":return Qo(p);default:A(p)}},[A,Xo,Qo,Jo,Zo]),Wn=Nt({dataSource:n,onPersistentColumnOperation:Vn}),Un=(0,M.useCallback)((p,L=!1,N)=>{n&&(n.sort=(0,B.toggleOrApplySort)(n.sort,p,L,N))},[n]),Co=(0,M.useRef)(),_n=(0,M.useCallback)((p,L,N)=>{var ne,_e,we;let _=F.find(se=>se.name===L);if(_)if(p==="resize")(ne=Co.current)==null||ne.forEach(se=>{se.style.width=`${N}px`});else if(p==="end")Co.current=void 0,(0,B.isValidNumber)(N)&&(A({type:"resizeColumn",phase:p,column:_,width:N}),c==null||c(ao(Lo(f,{type:"col-size",column:_,width:N}))));else{let se=`[aria-colindex='${_.index}']`;Co.current=Array.from((we=(_e=r.current)==null?void 0:_e.querySelectorAll(`.vuuTableCell${se},.vuuTableHeaderCell${se}`))!=null?we:[]),A({type:"resizeColumn",phase:p,column:_,width:N})}else throw Error(`useDataTable.handleColumnResize, column ${L} not found`)},[F,A,c,f,r]),Xn=(0,M.useCallback)((p,L)=>{var ne,_e;let N=(0,B.isJsonGroup)(L,p,D),_=p[dl];if(p[wn]){if(n.closeTreeNode(_,!0),N){let we=F.indexOf(L),se=(ne=n.getRowsAtDepth)==null?void 0:ne.call(n,we+1);se&&!se.some(Ie=>Ie[wn]||Ie[xn])&&A({type:"hideColumns",columns:F.slice(we+2)})}}else if(n.openTreeNode(_),N){let we=(_e=n.getChildRows)==null?void 0:_e.call(n,_),se=F.indexOf(L)+1,Ie=[F[se]];we&&we.some(vo=>vo[xn])&&Ie.push(F[se+1]),Ie.some(vo=>vo.hidden)&&A({type:"showColumns",columns:Ie})}},[D,F,n,A]),{highlightedIndexRef:Yo,navigate:Qn,onFocus:jo,onKeyDown:qo,...Jn}=Zt({columnCount:F.filter(p=>p.hidden!==!0).length,containerRef:r,disableFocus:l,highlightedIndex:i,navigationStyle:u,requestScroll:ee,rowCount:n==null?void 0:n.size,onHighlight:T,viewportRange:J,viewportRowCount:Y.rowCount}),{onBlur:Zn,onDoubleClick:Yn,onKeyDown:et,onFocus:ot}=Bt({navigate:Qn}),jn=(0,M.useCallback)(p=>{jo(),p.defaultPrevented||ot(p)},[ot,jo]),qn=en({columns:F,data:Q,dataSource:n,getSelectedRows:G}),er=(0,M.useCallback)(p=>{n.groupBy=p.map(L=>L.name)},[n]),or=(0,M.useCallback)(p=>{(0,B.isGroupColumn)(p)?n.groupBy=[]:n&&n.groupBy.includes(p.name)&&(n.groupBy=n.groupBy.filter(L=>L!==p.name))},[n]),tr=(0,M.useCallback)(p=>{n.select(p),h==null||h(p)},[n,h]),nr=(0,M.useCallback)(p=>{g&&g(p===null?null:(0,B.asDataSourceRowObject)(p,D))},[D,g]),{onKeyDown:tt,onRowClick:nt}=Yt({highlightedIndexRef:Yo,onSelect:nr,onSelectionChange:tr,selectionModel:I}),rr=(0,M.useCallback)((p,L,N,_)=>{nt(p,L,N,_),d==null||d(p,(0,B.asDataSourceRowObject)(L,D))},[D,d,nt]),lr=(0,M.useCallback)(p=>{qo(p),p.defaultPrevented||et(p),p.defaultPrevented||tt(p)},[qo,et,tt]),ir=(0,M.useCallback)(p=>{let L={...f,columns:p};A({type:"init",tableConfig:L,dataSource:n}),c==null||c(ao(L))},[n,A,c,f]),ar=(0,M.useCallback)(p=>{v==null||v(p)},[v]),sr=(0,M.useCallback)(async(p,L,N)=>n.applyEdit(p,L,N),[n]),ur=(0,M.useCallback)(p=>{let{initialDragElement:L}=p,N=(0,B.getIndexFromRowElement)(L),_=O.current.find(ne=>ne[0]===N);_&&p.setPayload(_),b==null||b(p)},[O,b]),{onMouseDown:cr,draggable:mr}=oe({allowDragDrop:e,containerRef:r,draggableClassName:"vuuTable",id:s,onDragStart:ur,onDrop:ar,orientation:"vertical",itemQuery:".vuuTableRow"});return{...Jn,"aria-rowcount":n.size,rowClassNameGenerator:Z,draggableRow:mr,onBlur:Zn,onDoubleClick:Yn,onFocus:jn,onKeyDown:lr,onMouseDown:cr,columnMap:D,columns:F,data:Q,getRowOffset:k,handleContextMenuAction:Wn,headings:me,highlightedIndex:Yo.current,menuBuilder:j,onContextMenu:qn,onDataEdited:sr,onMoveColumn:ir,onMoveGroupColumn:er,onRemoveGroupColumn:or,onRowClick:rr,onSortColumn:Un,onResizeColumn:_n,onToggleGroup:Xn,scrollProps:fo,tableAttributes:de,tableConfig:f,viewportMeasurements:Y}};var yn=require("@vuu-ui/vuu-utils"),Pe=require("react"),Dn=({rowHeight:e=0})=>{let[o,t]=(0,Pe.useState)(e),r=(0,Pe.useRef)(o),n=(0,Pe.useMemo)(()=>new ResizeObserver(a=>{for(let i of a){let[{blockSize:s}]=i.borderBoxSize,u=Math.round(s);(0,yn.isValidNumber)(u)&&r.current!==u&&(r.current=u,t(u))}}),[]),l=(0,Pe.useCallback)(a=>{if(a){if(e===0){let{height:i}=a.getBoundingClientRect();console.log({boundingClientHeight:i}),console.log(`measured rowHeight = ${i} (${e})`),n.observe(a),t(i)}}else n.disconnect()},[n,e]);return{rowHeight:o,rowRef:l}};var ie=require("react/jsx-runtime"),he="vuuTable",{IDX:gl,RENDER_IDX:Cl}=so.metadataKeys,vl=({Row:e=Mo,allowDragDrop:o,availableColumns:t,config:r,containerRef:n,dataSource:l,disableFocus:a=!1,highlightedIndex:i,id:s,navigationStyle:u="cell",onAvailableColumnsChange:m,onConfigChange:c,onDragStart:b,onDrop:v,onFeatureInvocation:w,onHighlight:T,onRowClick:d,onSelect:g,onSelectionChange:h,renderBufferSize:E=5,rowHeight:y,scrollingApiRef:P,selectionModel:I="extended",showColumnHeaders:S=!0,showColumnHeaderMenus:K=!0,headerHeight:z=S?y*1.25:0,size:Z})=>{let oe=(0,so.useId)(s),{columnMap:j,columns:te,data:F,draggableRow:A,getRowOffset:me,handleContextMenuAction:de,headings:f,highlightedIndex:x,menuBuilder:D,onDataEdited:V,onMoveColumn:C,onMoveGroupColumn:k,onRemoveGroupColumn:W,onResizeColumn:q,onRowClick:Y,onSortColumn:pe,onToggleGroup:Q,rowClassNameGenerator:O,scrollProps:G,tableAttributes:J,tableConfig:ae,viewportMeasurements:ee,...fo}=Rn({allowDragDrop:o,availableColumns:t,config:r,containerRef:n,dataSource:l,disableFocus:a,headerHeight:z,highlightedIndex:i,id:oe,navigationStyle:u,onAvailableColumnsChange:m,onConfigChange:c,onDragStart:b,onDrop:v,onFeatureInvocation:w,onHighlight:T,onRowClick:d,onSelect:g,onSelectionChange:h,renderBufferSize:Math.max(5,E),rowHeight:y,scrollingApiRef:P,selectionModel:I,size:Z}),go=(0,Wo.default)(`${he}-contentContainer`,{[`${he}-colLines`]:J.columnSeparators,[`${he}-rowLines`]:J.rowSeparators,[`${he}-zebra`]:J.zebraStripes}),Ze={"--content-height":`${ee.contentHeight}px`,"--content-width":`${ee.contentWidth}px`,"--horizontal-scrollbar-height":`${ee.horizontalScrollbarHeight}px`,"--pinned-width-left":`${ee.pinnedWidthLeft}px`,"--pinned-width-right":`${ee.pinnedWidthRight}px`,"--header-height":`${z}px`,"--row-height-prop":`${y}px`,"--total-header-height":`${ee.totalHeaderHeight}px`,"--vertical-scrollbar-width":`${ee.verticalScrollbarWidth}px`,"--viewport-body-height":`${ee.viewportBodyHeight}px`};return(0,ie.jsxs)(Hn.ContextMenuProvider,{menuActionHandler:de,menuBuilder:D,children:[(0,ie.jsx)("div",{className:`${he}-scrollbarContainer`,ref:G.scrollbarContainerRef,style:Ze,children:(0,ie.jsx)("div",{className:`${he}-scrollbarContent`})}),(0,ie.jsx)("div",{className:go,ref:G.contentContainerRef,style:Ze,children:(0,ie.jsxs)("div",{...fo,className:`${he}-table`,role:"table",tabIndex:a?void 0:-1,children:[S?(0,ie.jsx)(Po,{columns:G.columnsWithinViewport,headings:f,onMoveColumn:C,onMoveGroupColumn:k,onRemoveGroupColumn:W,onResizeColumn:q,onSortColumn:pe,showColumnHeaderMenus:K,tableConfig:ae,tableId:oe,virtualColSpan:G.virtualColSpan}):null,(0,ie.jsx)("div",{className:`${he}-body`,children:F.map(Ee=>(0,ie.jsx)(e,{"aria-rowindex":Ee[0]+1,classNameGenerator:O,columnMap:j,columns:G.columnsWithinViewport,highlighted:x===Ee[gl],onClick:Y,onDataEdited:V,row:Ee,offset:me(Ee),onToggleGroup:Q,virtualColSpan:G.virtualColSpan,zebraStripes:J.zebraStripes},Ee[Cl]))})]})}),A]})},hl=(0,We.forwardRef)(function({Row:o,allowDragDrop:t,availableColumns:r,className:n,config:l,dataSource:a,disableFocus:i,highlightedIndex:s,id:u,navigationStyle:m,onAvailableColumnsChange:c,onConfigChange:b,onDragStart:v,onDrop:w,onFeatureInvocation:T,onHighlight:d,onRowClick:g,onSelect:h,onSelectionChange:E,renderBufferSize:y,rowHeight:P,scrollingApiRef:I,selectionModel:S,showColumnHeaders:K,showColumnHeaderMenus:z,headerHeight:Z,style:oe,...j},te){let F=(0,We.useRef)(null),[A,me]=(0,We.useState)(),{rowHeight:de,rowRef:f}=Dn({rowHeight:P});if(l===void 0)throw Error("vuu Table requires config prop. Minimum config is list of Column Descriptors");if(a===void 0)throw Error("vuu Table requires dataSource prop");return(0,ie.jsxs)(Mn.MeasuredContainer,{...j,className:(0,Wo.default)(he,n),id:u,onResize:me,ref:(0,Pn.useForkRef)(F,te),children:[(0,ie.jsx)(Pt,{ref:f,height:P}),A&&de?(0,ie.jsx)(vl,{Row:o,allowDragDrop:t,availableColumns:r,config:l,containerRef:F,dataSource:a,disableFocus:i,headerHeight:Z,highlightedIndex:s,id:u,navigationStyle:m,onAvailableColumnsChange:c,onConfigChange:b,onDragStart:v,onDrop:w,onFeatureInvocation:T,onHighlight:d,onRowClick:g,onSelect:h,onSelectionChange:E,renderBufferSize:y,rowHeight:de,scrollingApiRef:I,selectionModel:S,showColumnHeaders:K,showColumnHeaderMenus:z,size:A}):null]})});var uo=require("react"),co=require("@vuu-ui/vuu-ui-controls"),En=require("@salt-ds/core"),Ue=require("@vuu-ui/vuu-utils");var Uo=require("react/jsx-runtime"),_o=(0,uo.memo)(({column:e,columnMap:o,onCommit:t=co.WarnCommit,row:r})=>{let n=o[e.name],l=!!r[n],a=(0,uo.useCallback)(i=>async s=>{let u=await t(i);return u===!0&&(0,Ue.dispatchCustomEvent)(s.target,"vuu-commit"),u},[t]);return e.editable?(0,Uo.jsx)(En.Checkbox,{checked:l,onClick:a(!l)}):(0,Uo.jsx)(co.CheckboxIcon,{checked:l,disabled:!0})},Ue.dataColumnAndKeyUnchanged);_o.displayName="CheckboxCell";(0,Ue.registerComponent)("checkbox-cell",_o,"cell-renderer",{serverDataType:"boolean"});var Sn=require("@vuu-ui/vuu-utils"),kn=require("@salt-ds/core"),An=require("@vuu-ui/vuu-ui-controls"),Ln=be(require("clsx"));var po=require("react/jsx-runtime"),mo="vuuTableInputCell",wl=()=>(console.warn("onCommit handler has not been provided to InputCell cell renderer"),Promise.resolve(!0)),In=({column:e,columnMap:o,onCommit:t=wl,row:r})=>{let n=o[e.name],l=r[n],{align:a="left",clientSideEditValidationCheck:i}=e,{warningMessage:s,...u}=(0,An.useEditableText)({initialValue:l,onCommit:t,clientSideEditValidationCheck:i}),m=s&&a==="left"?(0,po.jsx)("span",{className:`${mo}-icon`,"data-icon":"error"}):void 0,c=s&&a==="right"?(0,po.jsx)("span",{className:`${mo}-icon`,"data-icon":"error"}):void 0;return(0,po.jsx)(kn.Input,{...u,className:(0,Ln.default)(mo,{[`${mo}-error`]:s!==void 0}),endAdornment:m,startAdornment:c})};(0,Sn.registerComponent)("input-cell",In,"cell-renderer",{userCanAssign:!1});var Nn=require("@vuu-ui/vuu-ui-controls"),ge=require("@vuu-ui/vuu-utils"),Kn=be(require("clsx")),bo=require("react"),Fn=require("@vuu-ui/vuu-ui-controls");var On=require("react/jsx-runtime"),zn="vuuTableToggleCell",xl=({name:e,type:o})=>{if((0,ge.isTypeDescriptor)(o)&&(0,ge.isValueListRenderer)(o.renderer))return o.renderer.values;throw Error(`useLookupValues column ${e} has not been configured with a values list`)},Gn=(0,bo.memo)(function({column:o,columnMap:t,onCommit:r=Nn.WarnCommit,row:n}){let l=xl(o),a=t[o.name],i=n[a],s=(0,bo.useCallback)((u,m)=>r(m).then(c=>(c===!0&&(0,ge.dispatchCustomEvent)(u.target,"vuu-commit"),c)),[r]);return(0,On.jsx)(Fn.CycleStateButton,{className:(0,Kn.default)(zn,`${zn}-${o.name}`),onCommit:s,value:i,values:l,variant:"cta",children:i})},ge.dataColumnAndKeyUnchanged);(0,ge.registerComponent)("toggle-cell",Gn,"cell-renderer",{userCanAssign:!1});var $n=require("@vuu-ui/vuu-ui-controls"),Bn=require("@vuu-ui/vuu-utils"),Je=require("react"),Tl=(e,o)=>{let t=(0,Je.useRef)(null),[r,n]=(0,$n.useStateRef)(e),l=(0,Je.useCallback)(i=>{var s;if(i.key==="ArrowDown")n((u=-1)=>Math.min(o-1,u+1));else if(i.key==="ArrowUp")n((u=-1)=>Math.max(0,u-1));else if(i.key==="Enter"||i.key===" "){let{current:u}=r,m=(s=t.current)==null?void 0:s.querySelector(`[aria-rowindex="${u}"]`);m&&(0,Bn.dispatchMouseEvent)(m,"click")}},[r,o,n]),a=(0,Je.useCallback)(i=>{n(i)},[n]);return{highlightedIndexRef:r,onHighlight:a,onKeyDown:l,tableRef:t}};
2
2
  //# sourceMappingURL=index.js.map