@vuu-ui/vuu-table 0.8.25 → 0.8.26
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 +1 -1
- package/cjs/index.js.map +3 -3
- package/esm/index.js +1 -1
- package/esm/index.js.map +3 -3
- package/package.json +8 -8
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 me=(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=me(require("clsx")),Fe=require("react");var lt=me(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=me(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(),[S]=T.splice(x,1);if(c===-1){let D=T.concat(S);return t==null||t(D),D}else return T.splice(c,0,S),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=me(require("clsx")),oo=require("react");var vt=require("@vuu-ui/vuu-popups"),ht=me(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)(S=>{!s&&(t==null||t(S))},[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=me(require("clsx")),Ve=require("react");var le=require("@vuu-ui/vuu-utils"),Do=me(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=me(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,de="vuuTableRow",Ht=(0,Pe.forwardRef)(function({height:o},t){return(0,Te.jsx)("div",{"aria-hidden":!0,className:(0,Do.default)(de,`${de}-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:S}=le.RowSelected,D=(0,Do.default)(de,e,o==null?void 0:o(l,t),{[`${de}-even`]:m&&C%2===0,[`${de}-expanded`]:h,[`${de}-highlighted`]:n,[`${de}-selected`]:x&v,[`${de}-selectedStart`]:x&T,[`${de}-selectedEnd`]:x&S}),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:`${de}-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:`${de}-selectionDecorator vuuStickyRight`})]})});Ho.displayName="Row";var no=require("@vuu-ui/vuu-utils"),Et=me(require("clsx")),St=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],S=T?r.columns.findIndex(c(T)):-1;C>b&&S!==-1?o((0,Ke.moveColumnTo)(r.columns,h,S-1)):o((0,Ke.moveColumnTo)(r.columns,h,S))},[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,St.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:S},D)=>(0,Ce.jsx)("div",{className:"vuuTable-headingCell",style:{width:S},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 kt=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,kt.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 ko=(e,o)=>({label:`Pin ${o}`,action:`column-pin-${o}`,options:e}),Po=e=>ko(e,"left"),Eo=e=>ko(e,"floating"),So=e=>ko(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),So(e)]}):t==="left"?r.push({label:"Unpin column",action:"column-unpin",options:e},{label:"Pin column",children:[Eo(e),So(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),So(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"),Sr=(e,o)=>{if(e.filterStruct&&o){let[t,r]=(0,At.removeColumnFromFilter)(o,e.filterStruct);return{filter:r,filterStruct:t}}else return e},{Average:kr,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=Sr(e.filter,l),!0;case"remove-filters":return e.filter={filter:""},!0;case"agg-avg":return e.aggregations=(0,_.setAggregations)(e.aggregations,l,kr),!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 pe;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']"),S=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=S(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]=S(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]),k=(0,$.useCallback)(()=>{z("ArrowDown")},[z]),te=((pe=o.current)==null?void 0:pe.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:k,onClick:oe,onFocus:P,onKeyDown:ee,onMouseLeave:a==="row"?Y:void 0,onMouseMove:a==="row"?K:void 0}};var be=require("@vuu-ui/vuu-utils"),Se=require("react"),{IDX:Ur}=be.metadataKeys,_r=[],Xr=["Enter"," "],Jt=({highlightedIndexRef:e,selectionKeys:o=Xr,selectionModel:t,onSelect:r,onSelectionChange:n})=>{let l=(0,Se.useRef)(-1),a=(0,Se.useRef)(_r),i=(0,Se.useCallback)(d=>o.includes(d.key),[o]),s=(0,Se.useCallback)((d,m,b,C)=>{let{[Ur]:h}=m,{current:x}=l,{current:c}=a,T=((0,be.isRowSelected)(m)?be.deselectItem:be.selectItem)(t,c,h,b,C,x);a.current=T,l.current=h,r==null||r(m),n==null||n(T)},[r,n,t]);return{onKeyDown:(0,Se.useCallback)(d=>{if(i(d)){let{current:m}=e;if(m!==void 0&&m!==-1){let b=d.target.querySelector(`[aria-rowindex="${m}"]`);b&&(0,be.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 ke=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:S,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,ke.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,ke.getColumnsInViewport)(e,g,g+F+an);(0,ke.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,ce,,J,I]=un(E,q);q.scrollLeft=j,q.scrollTop=J;let[O,ne]=sn(E),V=Math.round(ce*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,ce,J,I,O,ne]=un(E);m.current=!0,g?C.current=!1:(U.scrollLeft=Math.round(ce*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]),k=(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]),pe=(0,H.useCallback)(g=>{c.current=null,g.removeEventListener("scroll",Y)},[Y]),f=cn({onAttach:te,onDetach:pe}),w=cn({onAttach:K,onDetach:k}),y=(0,H.useCallback)(g=>{let{current:E}=c;if(E){let[U,q]=sn(E),{scrollLeft:j,scrollTop:ce}=E;if(m.current=!1,g.type==="scroll-row"){let J=(0,ke.getRowElementAtIndex)(E,g.rowIndex);if(J!==null){let[I,O]=Gt(J,A);if(console.log(`outside viewport ? ${I} ${O}`),I&&O)if(S){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=ce;I==="up"||I==="down"?V=Math.min(Math.max(0,ce+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(S){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,ce+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,S,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"),se=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,se.useRef)(0),s=(0,se.useRef)(0),u=Math.min(n*r,sl),d=r*n,m=d-u,{pinnedWidthLeft:b,pinnedWidthRight:C,unpinnedWidth:h}=(0,se.useMemo)(()=>(0,Be.measurePinnedColumns)(e,l),[e,l]),x=(0,se.useRef)(o);(0,se.useMemo)(()=>{x.current=o*(1+t.length)},[o,t.length]);let[c,v,T]=(0,se.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]),S=(0,se.useCallback)((A,F)=>{s.current=F},[]),D=(0,se.useCallback)(A=>{A===0?i.current=0:i.current=Math.max(0,i.current+A)},[]);return(0,se.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:S,totalHeaderHeight:A,verticalScrollbarWidth:oe,viewportBodyHeight:ee,viewportWidth:K}}else return ul},[v,c,o,T,b,h,C,u,n,D,S,a,d])};var dn=require("@vuu-ui/vuu-layout"),pn=require("@vuu-ui/vuu-utils"),ue=require("react"),bn=({availableColumns:e,onAvailableColumnsChange:o,onConfigChange:t,onCreateCalculatedColumn:r,onDataSourceConfigChange:n,tableConfig:l})=>{let a=(0,dn.useLayoutProviderDispatch)(),i=(0,ue.useRef)(),[s,u]=(0,ue.useState)(e),d=(0,ue.useCallback)((c,v,T)=>{a({type:"set-props",path:"#context-panel",props:{expanded:!0,content:{type:c,props:T},title:v}})},[a]),m=(0,ue.useCallback)(()=>{requestAnimationFrame(()=>{var c;(c=i.current)==null||c.call(i)})},[]),b=(0,ue.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,ue.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,ue.useCallback)(()=>{C({column:{name:"::",serverDataType:"string"},type:"columnSettings",vuuTable:{module:"SIMUL",table:"instruments"}})},[C]),x=(0,ue.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,ue.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:S=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:k,headings:te,tableAttributes:pe,tableConfig:f}=Oo(t,n);(0,B.useLayoutEffectSkipFirst)(()=>{k({type:"init",tableConfig:t,dataSource:n})},[t,n,k]);let w=(0,M.useCallback)(p=>{k({type:"init",tableConfig:p,dataSource:n}),m==null||m(ao(p))},[n,k,m]),y=(0,M.useMemo)(()=>(0,B.buildColumnMap)(n.columns),[n.columns]),W=(0,M.useCallback)(({tableSchema:p})=>{p?k({type:"setTableSchema",tableSchema:p}):console.log("subscription message with no schema")},[k]),{getRowAtPosition:g,getRowOffset:E,setInSituRowOffset:U,setScrollTop:q,...j}=Bo({columns:K,headerHeight:a,headings:te,rowCount:z,rowHeight:D,size:P}),ce=Bt({from:0,to:j.rowCount}),{data:J,dataRef:I,getSelectedRows:O,range:ne,setRange:V}=$t({dataSource:n,onFeatureInvocation:h,renderBufferSize:S,onSizeChange:Y,onSubscribed:W,range:ce}),{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=>{k({type:"init",tableConfig:p,dataSource:n}),m==null||m(ao(p))},[n,k,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"}),k({type:"tableConfig",...p,confirmed:L})})},[n,k,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:k(p)}},[k,_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(ae=>ae.name===L);if(X)if(p==="resize")(re=go.current)==null||re.forEach(ae=>{ae.style.width=`${N}px`});else if(p==="end")go.current=void 0,(0,B.isValidNumber)(N)&&(k({type:"resizeColumn",phase:p,column:X,width:N}),m==null||m(ao(Lo(f,{type:"col-size",column:X,width:N}))));else{let ae=`[aria-colindex='${X.index}']`;go.current=Array.from((he=(Ue=r.current)==null?void 0:Ue.querySelectorAll(`.vuuTableCell${ae},.vuuTableHeaderCell${ae}`))!=null?he:[]),k({type:"resizeColumn",phase:p,column:X,width:N})}else throw Error(`useDataTable.handleColumnResize, column ${L} not found`)},[K,k,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),ae=(re=n.getRowsAtDepth)==null?void 0:re.call(n,he+1);ae&&!ae.some(Le=>Le[vn]||Le[hn])&&k({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),ae=K.indexOf(L)+1,Le=[K[ae]];he&&he.some(Co=>Co[hn])&&Le.push(K[ae+1]),Le.some(Co=>Co.hidden)&&k({type:"showColumns",columns:Le})}},[y,K,n,k]),{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};k({type:"init",tableConfig:L,dataSource:n}),m==null||m(ao(L))},[n,k,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:pe,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 ie=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:S=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:k,handleContextMenuAction:te,headings:pe,highlightedIndex:f,menuBuilder:w,onDataEdited:y,onMoveColumn:W,onMoveGroupColumn:g,onRemoveGroupColumn:E,onResizeColumn:U,onRowClick:q,onSortColumn:j,onToggleGroup:ce,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,S),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,ie.jsxs)(yn.ContextMenuProvider,{menuActionHandler:te,menuBuilder:w,children:[(0,ie.jsx)("div",{className:`${ve}-scrollbarContainer`,ref:I.scrollbarContainerRef,style:Qe,children:(0,ie.jsx)("div",{className:`${ve}-scrollbarContent`})}),(0,ie.jsx)("div",{className:fo,ref:I.contentContainerRef,style:Qe,children:(0,ie.jsxs)("div",{...He,className:`${ve}-table`,role:"table",tabIndex:a?void 0:-1,children:[P?(0,ie.jsx)(Mo,{columns:I.columnsWithinViewport,headings:pe,onMoveColumn:W,onMoveGroupColumn:g,onRemoveGroupColumn:E,onResizeColumn:U,onSortColumn:j,tableConfig:ne,tableId:Z,virtualColSpan:I.virtualColSpan}):null,(0,ie.jsx)("div",{className:`${ve}-body`,children:Y.map(Me=>(0,ie.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:k(Me),onToggleGroup:ce,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:S,renderBufferSize:D,rowHeight:A,scrollingApiRef:F,selectionModel:P,showColumnHeaders:z,headerHeight:G,style:Z,...ee},oe){let Y=(0,Ve.useRef)(null),[K,k]=(0,Ve.useState)(),{rowHeight:te,rowRef:pe}=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,ie.jsxs)(Dn.MeasuredContainer,{...ee,className:(0,Vo.default)(ve,n),id:u,onResize:k,ref:(0,Hn.useForkRef)(Y,oe),children:[(0,ie.jsx)(Ht,{ref:pe,height:A}),K&&te?(0,ie.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:S,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"),Sn=require("@vuu-ui/vuu-ui-controls"),kn=me(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,Sn.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,kn.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=me(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 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}};
|
|
2
2
|
//# sourceMappingURL=index.js.map
|