@vuu-ui/vuu-table 0.8.11 → 0.8.12
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/index.css +1 -1
- package/index.css.map +2 -2
- package/package.json +9 -9
- package/types/vuu-layout/src/Component.d.ts +7 -0
- package/types/vuu-layout/src/DraggableLayout.d.ts +7 -0
- package/types/vuu-layout/src/dock-layout/DockLayout.d.ts +10 -0
- package/types/vuu-layout/src/dock-layout/Drawer.d.ts +18 -0
- package/types/vuu-layout/src/dock-layout/index.d.ts +2 -0
- package/types/vuu-layout/src/drag-drop/BoxModel.d.ts +143 -0
- package/types/vuu-layout/src/drag-drop/DragState.d.ts +46 -0
- package/types/vuu-layout/src/drag-drop/Draggable.d.ts +24 -0
- package/types/vuu-layout/src/drag-drop/DropMenu.d.ts +10 -0
- package/types/vuu-layout/src/drag-drop/DropTarget.d.ts +61 -0
- package/types/vuu-layout/src/drag-drop/DropTargetRenderer.d.ts +18 -0
- package/types/vuu-layout/src/drag-drop/dragDropTypes.d.ts +51 -0
- package/types/vuu-layout/src/drag-drop/index.d.ts +4 -0
- package/types/vuu-layout/src/flexbox/Flexbox.d.ts +5 -0
- package/types/vuu-layout/src/flexbox/FlexboxLayout.d.ts +6 -0
- package/types/vuu-layout/src/flexbox/FluidGrid.d.ts +7 -0
- package/types/vuu-layout/src/flexbox/FluidGridLayout.d.ts +6 -0
- package/types/vuu-layout/src/flexbox/Splitter.d.ts +13 -0
- package/types/vuu-layout/src/flexbox/flexbox-utils.d.ts +12 -0
- package/types/vuu-layout/src/flexbox/flexboxTypes.d.ts +51 -0
- package/types/vuu-layout/src/flexbox/index.d.ts +4 -0
- package/types/vuu-layout/src/flexbox/useResponsiveSizing.d.ts +10 -0
- package/types/vuu-layout/src/flexbox/useSplitterResizing.d.ts +2 -0
- package/types/vuu-layout/src/index.d.ts +22 -0
- package/types/vuu-layout/src/layout-action.d.ts +22 -0
- package/types/vuu-layout/src/layout-header/Header.d.ts +13 -0
- package/types/vuu-layout/src/layout-header/index.d.ts +1 -0
- package/types/vuu-layout/src/layout-persistence/LayoutPersistenceManager.d.ts +53 -0
- package/types/vuu-layout/src/layout-persistence/LocalLayoutPersistenceManager.d.ts +18 -0
- package/types/vuu-layout/src/layout-persistence/data.d.ts +3 -0
- package/types/vuu-layout/src/layout-persistence/index.d.ts +4 -0
- package/types/vuu-layout/src/layout-persistence/useLayoutContextMenuItems.d.ts +8 -0
- package/types/vuu-layout/src/layout-provider/LayoutProvider.d.ts +15 -0
- package/types/vuu-layout/src/layout-provider/LayoutProviderContext.d.ts +9 -0
- package/types/vuu-layout/src/layout-provider/index.d.ts +2 -0
- package/types/vuu-layout/src/layout-provider/useLayoutDragDrop.d.ts +4 -0
- package/types/vuu-layout/src/layout-reducer/flexUtils.d.ts +22 -0
- package/types/vuu-layout/src/layout-reducer/index.d.ts +4 -0
- package/types/vuu-layout/src/layout-reducer/insert-layout-element.d.ts +8 -0
- package/types/vuu-layout/src/layout-reducer/layout-reducer.d.ts +3 -0
- package/types/vuu-layout/src/layout-reducer/layoutTypes.d.ts +168 -0
- package/types/vuu-layout/src/layout-reducer/layoutUtils.d.ts +31 -0
- package/types/vuu-layout/src/layout-reducer/move-layout-element.d.ts +3 -0
- package/types/vuu-layout/src/layout-reducer/remove-layout-element.d.ts +3 -0
- package/types/vuu-layout/src/layout-reducer/replace-layout-element.d.ts +6 -0
- package/types/vuu-layout/src/layout-reducer/resize-flex-children.d.ts +4 -0
- package/types/vuu-layout/src/layout-reducer/wrap-layout-element.d.ts +9 -0
- package/types/vuu-layout/src/layout-view/View.d.ts +11 -0
- package/types/vuu-layout/src/layout-view/ViewContext.d.ts +30 -0
- package/types/vuu-layout/src/layout-view/index.d.ts +4 -0
- package/types/vuu-layout/src/layout-view/useView.d.ts +21 -0
- package/types/vuu-layout/src/layout-view/useViewActionDispatcher.d.ts +9 -0
- package/types/vuu-layout/src/layout-view/useViewResize.d.ts +7 -0
- package/types/vuu-layout/src/layout-view/viewTypes.d.ts +21 -0
- package/types/vuu-layout/src/measured-container/MeasuredContainer.d.ts +9 -0
- package/types/vuu-layout/src/measured-container/index.d.ts +2 -0
- package/types/{table → vuu-layout/src/measured-container}/useMeasuredContainer.d.ts +6 -14
- package/types/vuu-layout/src/measured-container/useResizeObserver.d.ts +15 -0
- package/types/vuu-layout/src/overflow-container/OverflowContainer.d.ts +17 -0
- package/types/vuu-layout/src/overflow-container/index.d.ts +2 -0
- package/types/vuu-layout/src/overflow-container/overflow-utils.d.ts +49 -0
- package/types/vuu-layout/src/overflow-container/useOverflowContainer.d.ts +20 -0
- package/types/vuu-layout/src/palette/Palette.d.ts +22 -0
- package/types/vuu-layout/src/palette/index.d.ts +1 -0
- package/types/vuu-layout/src/placeholder/Placeholder.d.ts +12 -0
- package/types/vuu-layout/src/placeholder/index.d.ts +1 -0
- package/types/vuu-layout/src/registry/ComponentRegistry.d.ts +13 -0
- package/types/vuu-layout/src/registry/index.d.ts +1 -0
- package/types/vuu-layout/src/responsive/breakpoints.d.ts +4 -0
- package/types/vuu-layout/src/responsive/index.d.ts +3 -0
- package/types/vuu-layout/src/responsive/use-breakpoints.d.ts +7 -0
- package/types/vuu-layout/src/responsive/useResizeObserver.d.ts +13 -0
- package/types/vuu-layout/src/responsive/utils.d.ts +6 -0
- package/types/vuu-layout/src/stack/Stack.d.ts +4 -0
- package/types/vuu-layout/src/stack/StackLayout.d.ts +7 -0
- package/types/vuu-layout/src/stack/index.d.ts +3 -0
- package/types/vuu-layout/src/stack/stackTypes.d.ts +21 -0
- package/types/vuu-layout/src/toolbar/Toolbar.d.ts +19 -0
- package/types/vuu-layout/src/toolbar/index.d.ts +1 -0
- package/types/vuu-layout/src/toolbar/toolbar-dom-utils.d.ts +3 -0
- package/types/vuu-layout/src/toolbar/useKeyboardNavigation.d.ts +32 -0
- package/types/vuu-layout/src/toolbar/useSelection.d.ts +22 -0
- package/types/vuu-layout/src/toolbar/useToolbar.d.ts +28 -0
- package/types/vuu-layout/src/tools/config-wrapper/ConfigWrapper.d.ts +2 -0
- package/types/vuu-layout/src/tools/config-wrapper/index.d.ts +1 -0
- package/types/vuu-layout/src/tools/devtools-box/layout-configurator.d.ts +31 -0
- package/types/vuu-layout/src/tools/devtools-tree/layout-tree-viewer.d.ts +5 -0
- package/types/vuu-layout/src/tools/index.d.ts +3 -0
- package/types/vuu-layout/src/use-persistent-state.d.ts +11 -0
- package/types/vuu-layout/src/utils/index.d.ts +6 -0
- package/types/vuu-layout/src/utils/pathUtils.d.ts +31 -0
- package/types/vuu-layout/src/utils/propUtils.d.ts +5 -0
- package/types/vuu-layout/src/utils/react-utils.d.ts +4 -0
- package/types/vuu-layout/src/utils/refUtils.d.ts +2 -0
- package/types/vuu-layout/src/utils/styleUtils.d.ts +3 -0
- package/types/vuu-layout/src/utils/typeOf.d.ts +4 -0
- package/types/{table → vuu-table/src/table}/Table.d.ts +5 -1
- package/types/{table → vuu-table/src/table}/dataTableTypes.d.ts +9 -4
- package/types/{table-next → vuu-table/src/table-next}/useKeyboardNavigation.d.ts +4 -2
- package/types/{table-next → vuu-table/src/table-next}/useTableModel.d.ts +1 -0
- package/types/{table-next → vuu-table/src/table-next}/useTableNext.d.ts +3 -2
- /package/types/{index.d.ts → vuu-table/src/index.d.ts} +0 -0
- /package/types/{table → vuu-table/src/table}/ColumnResizer.d.ts +0 -0
- /package/types/{table → vuu-table/src/table}/DragVisualizer.d.ts +0 -0
- /package/types/{table → vuu-table/src/table}/RowBasedTable.d.ts +0 -0
- /package/types/{table → vuu-table/src/table}/SortIndicator.d.ts +0 -0
- /package/types/{table → vuu-table/src/table}/TableCell.d.ts +0 -0
- /package/types/{table → vuu-table/src/table}/TableGroupCell.d.ts +0 -0
- /package/types/{table → vuu-table/src/table}/TableGroupHeaderCell.d.ts +0 -0
- /package/types/{table → vuu-table/src/table}/TableHeaderCell.d.ts +0 -0
- /package/types/{table → vuu-table/src/table}/TableRow.d.ts +0 -0
- /package/types/{table → vuu-table/src/table}/cell-renderers/index.d.ts +0 -0
- /package/types/{table → vuu-table/src/table}/cell-renderers/json-cell/JsonCell.d.ts +0 -0
- /package/types/{table → vuu-table/src/table}/cell-renderers/json-cell/index.d.ts +0 -0
- /package/types/{table → vuu-table/src/table}/context-menu/buildContextMenuDescriptors.d.ts +0 -0
- /package/types/{table → vuu-table/src/table}/context-menu/index.d.ts +0 -0
- /package/types/{table → vuu-table/src/table}/context-menu/useTableContextMenu.d.ts +0 -0
- /package/types/{table → vuu-table/src/table}/filter-indicator.d.ts +0 -0
- /package/types/{table → vuu-table/src/table}/index.d.ts +0 -0
- /package/types/{table → vuu-table/src/table}/keyUtils.d.ts +0 -0
- /package/types/{table → vuu-table/src/table}/useDataSource.d.ts +0 -0
- /package/types/{table → vuu-table/src/table}/useDraggableColumn.d.ts +0 -0
- /package/types/{table → vuu-table/src/table}/useKeyboardNavigation.d.ts +0 -0
- /package/types/{table-next → vuu-table/src/table}/useMeasuredContainer.d.ts +0 -0
- /package/types/{table → vuu-table/src/table}/useMeasuredSize.d.ts +0 -0
- /package/types/{table → vuu-table/src/table}/useResizeObserver.d.ts +0 -0
- /package/types/{table → vuu-table/src/table}/useSelection.d.ts +0 -0
- /package/types/{table → vuu-table/src/table}/useTable.d.ts +0 -0
- /package/types/{table → vuu-table/src/table}/useTableColumnResize.d.ts +0 -0
- /package/types/{table → vuu-table/src/table}/useTableModel.d.ts +0 -0
- /package/types/{table → vuu-table/src/table}/useTableScroll.d.ts +0 -0
- /package/types/{table → vuu-table/src/table}/useVirtualViewport.d.ts +0 -0
- /package/types/{table-next → vuu-table/src/table-next}/Row.d.ts +0 -0
- /package/types/{table-next → vuu-table/src/table-next}/TableNext.d.ts +0 -0
- /package/types/{table-next → vuu-table/src/table-next}/cell-renderers/dropdown-cell/DropdownCell.d.ts +0 -0
- /package/types/{table-next → vuu-table/src/table-next}/cell-renderers/dropdown-cell/index.d.ts +0 -0
- /package/types/{table-next → vuu-table/src/table-next}/cell-renderers/index.d.ts +0 -0
- /package/types/{table-next → vuu-table/src/table-next}/cell-renderers/input-cell/InputCell.d.ts +0 -0
- /package/types/{table-next → vuu-table/src/table-next}/cell-renderers/input-cell/index.d.ts +0 -0
- /package/types/{table-next → vuu-table/src/table-next}/column-header-pill/ColumnHeaderPill.d.ts +0 -0
- /package/types/{table-next → vuu-table/src/table-next}/column-header-pill/GroupColumnPill.d.ts +0 -0
- /package/types/{table-next → vuu-table/src/table-next}/column-header-pill/SortIndicator.d.ts +0 -0
- /package/types/{table-next → vuu-table/src/table-next}/column-header-pill/index.d.ts +0 -0
- /package/types/{table-next → vuu-table/src/table-next}/column-menu/ColumnMenu.d.ts +0 -0
- /package/types/{table-next → vuu-table/src/table-next}/column-menu/index.d.ts +0 -0
- /package/types/{table-next → vuu-table/src/table-next}/column-resizing/ColumnResizer.d.ts +0 -0
- /package/types/{table-next → vuu-table/src/table-next}/column-resizing/index.d.ts +0 -0
- /package/types/{table-next → vuu-table/src/table-next}/column-resizing/useTableColumnResize.d.ts +0 -0
- /package/types/{table-next → vuu-table/src/table-next}/context-menu/buildContextMenuDescriptors.d.ts +0 -0
- /package/types/{table-next → vuu-table/src/table-next}/context-menu/index.d.ts +0 -0
- /package/types/{table-next → vuu-table/src/table-next}/context-menu/useTableContextMenu.d.ts +0 -0
- /package/types/{table-next → vuu-table/src/table-next}/header-cell/GroupHeaderCell.d.ts +0 -0
- /package/types/{table-next → vuu-table/src/table-next}/header-cell/GroupHeaderCellNext.d.ts +0 -0
- /package/types/{table-next → vuu-table/src/table-next}/header-cell/HeaderCell.d.ts +0 -0
- /package/types/{table-next → vuu-table/src/table-next}/header-cell/index.d.ts +0 -0
- /package/types/{table-next → vuu-table/src/table-next}/index.d.ts +0 -0
- /package/types/{table-next → vuu-table/src/table-next}/moving-window.d.ts +0 -0
- /package/types/{table-next → vuu-table/src/table-next}/table-cell/TableCell.d.ts +0 -0
- /package/types/{table-next → vuu-table/src/table-next}/table-cell/TableGroupCell.d.ts +0 -0
- /package/types/{table-next → vuu-table/src/table-next}/table-cell/index.d.ts +0 -0
- /package/types/{table-next → vuu-table/src/table-next}/table-config.d.ts +0 -0
- /package/types/{table-next → vuu-table/src/table-next}/table-dom-utils.d.ts +0 -0
- /package/types/{table-next → vuu-table/src/table-next}/useCell.d.ts +0 -0
- /package/types/{table-next → vuu-table/src/table-next}/useCellEditing.d.ts +0 -0
- /package/types/{table-next → vuu-table/src/table-next}/useDataSource.d.ts +0 -0
- /package/types/{table-next → vuu-table/src/table-next}/useInitialValue.d.ts +0 -0
- /package/types/{table-next → vuu-table/src/table-next}/useResizeObserver.d.ts +0 -0
- /package/types/{table-next → vuu-table/src/table-next}/useTableContextMenu.d.ts +0 -0
- /package/types/{table-next → vuu-table/src/table-next}/useTableScroll.d.ts +0 -0
- /package/types/{table-next → vuu-table/src/table-next}/useTableViewport.d.ts +0 -0
- /package/types/{table-next → vuu-table/src/table-next}/useVirtualViewport.d.ts +0 -0
package/cjs/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";var pl=Object.create;var Ft=Object.defineProperty;var dl=Object.getOwnPropertyDescriptor;var fl=Object.getOwnPropertyNames;var Cl=Object.getPrototypeOf,bl=Object.prototype.hasOwnProperty;var gl=(e,t)=>{for(var o in t)Ft(e,o,{get:t[o],enumerable:!0})},Qo=(e,t,o,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let r of fl(t))!bl.call(e,r)&&r!==o&&Ft(e,r,{get:()=>t[r],enumerable:!(n=dl(t,r))||n.enumerable});return e};var W=(e,t,o)=>(o=e!=null?pl(Cl(e)):{},Qo(t||!e||!e.__esModule?Ft(o,"default",{value:e,enumerable:!0}):o,e)),hl=e=>Qo(Ft({},"__esModule",{value:!0}),e);var bi={};gl(bi,{ColumnResizer:()=>Ct,GroupHeaderCellNext:()=>Lt,Table:()=>ys,TableNext:()=>ol,buildContextMenuDescriptors:()=>bt,isShowColumnSettings:()=>rs,isShowTableSettings:()=>ls,updateTableConfig:()=>Yt,useMeasuredContainer:()=>ko,useSelection:()=>Rt,useTableColumnResize:()=>Tt,useTableContextMenu:()=>gt,useTableModel:()=>No,useTableViewport:()=>xt});module.exports=hl(bi);var We=require("react");var Zo=require("react/jsx-runtime"),Yo=()=>{},vl="vuuColumnResizer",Ct=({onDrag:e,onDragEnd:t=Yo,onDragStart:o=Yo})=>{let n=(0,We.useRef)(0),r=(0,We.useCallback)(i=>{i.stopPropagation&&i.stopPropagation(),i.preventDefault&&i.preventDefault();let a=Math.round(i.clientX),c=a-n.current;n.current=a,c!==0&&e(i,c)},[e]),l=(0,We.useCallback)(i=>{window.removeEventListener("mouseup",l),window.removeEventListener("mousemove",r),t(i)},[t,r]),s=(0,We.useCallback)(i=>{o(i),n.current=Math.round(i.clientX),window.addEventListener("mouseup",l),window.addEventListener("mousemove",r),i.stopPropagation&&i.stopPropagation(),i.preventDefault&&i.preventDefault()},[o,r,l]);return(0,Zo.jsx)("div",{className:vl,"data-align":"end",onMouseDown:s})};var jo=require("@vuu-ui/vuu-utils"),bt=e=>(t,o)=>{let n=[];if(e===void 0)return n;if(t==="header"||t==="column-menu")n.push(...yl(o,e)),n.push(...Dl(o,e)),n.push(...Tl(o,e)),n.push(...wl(o)),n.push({action:"column-settings",icon:"cog",label:"Column Settings",options:o}),n.push({action:"table-settings",icon:"cog",label:"DataGrid Settings",options:o});else if(t==="filter"){let{column:r,filter:l}=o,s=(l==null?void 0:l.column)===(r==null?void 0:r.name);n.push({label:"Edit filter",action:"filter-edit",options:o}),n.push({label:"Remove filter",action:"filter-remove-column",options:o}),r&&!s&&n.push({label:"Remove all filters",action:"remove-filters",options:o})}return n};function yl(e,{sort:{sortDefs:t}}){let{column:o}=e,n=[];if(o===void 0)return n;let r=t.length>0;return o.sorted==="A"?n.push({label:"Reverse Sort (DSC)",action:"sort-dsc",options:e}):o.sorted==="D"?n.push({label:"Reverse Sort (ASC)",action:"sort-asc",options:e}):typeof o.sorted=="number"?(o.sorted>0?n.push({label:"Reverse Sort (DSC)",action:"sort-add-dsc",options:e}):n.push({label:"Reverse Sort (ASC)",action:"sort-add-asc",options:e}),r&&Math.abs(o.sorted)<t.length&&n.push({label:"Remove from sort",action:"sort-remove",options:e}),n.push({label:"New Sort",children:[{label:"Ascending",action:"sort-asc",options:e},{label:"Descending",action:"sort-dsc",options:e}]})):r?(n.push({label:"Add to sort",children:[{label:"Ascending",action:"sort-add-asc",options:e},{label:"Descending",action:"sort-add-dsc",options:e}]}),n.push({label:"New Sort",children:[{label:"Ascending",action:"sort-asc",options:e},{label:"Descending",action:"sort-dsc",options:e}]})):n.push({label:"Sort",children:[{label:"Ascending",action:"sort-asc",options:e},{label:"Descending",action:"sort-dsc",options:e}]}),n}function Tl(e,t){let{column:o}=e;if(o===void 0||t.groupBy.length===0)return[];let{name:n,label:r=n}=o;return[{label:`Aggregate ${r}`,children:[{label:"Count",action:"agg-count",options:e},{label:"Distinct",action:"agg-distinct",options:e}].concat((0,jo.isNumericColumn)(o)?[{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 yo=(e,t)=>({label:`Pin ${t}`,action:`column-pin-${t}`,options:e}),go=e=>yo(e,"left"),ho=e=>yo(e,"floating"),vo=e=>yo(e,"right");function wl(e){let{column:t}=e;if(t===void 0)return[];let{pin:o}=t,n=[{label:"Hide column",action:"column-hide",options:e},{label:"Remove column",action:"column-remove",options:e}];return o===void 0?n.push({label:"Pin column",children:[go(e),ho(e),vo(e)]}):o==="left"?n.push({label:"Unpin column",action:"column-unpin",options:e},{label:"Pin column",children:[ho(e),vo(e)]}):o==="right"?n.push({label:"Unpin column",action:"column-unpin",options:e},{label:"Pin column",children:[go(e),ho(e)]}):o==="floating"&&n.push({label:"Unpin column",action:"column-unpin",options:e},{label:"Pin column",children:[go(e),vo(e)]}),n}function Dl(e,{groupBy:t}){let{column:o}=e,n=[];if(o===void 0)return n;let{name:r,label:l=r}=o;return t.length===0?n.push({label:`Group by ${l}`,action:"group",options:e}):n.push({label:`Add ${l} to group by`,action:"group-add",options:e}),n}var qo=require("@vuu-ui/vuu-utils"),B=require("@vuu-ui/vuu-utils"),Ml=(e,t)=>{if(e.filterStruct&&t){let[o,n]=(0,qo.removeColumnFromFilter)(t,e.filterStruct);return{filter:n,filterStruct:o}}else return e},{Average:Rl,Count:xl,Distinct:Pl,High:Hl,Low:El,Sum:Sl}=B.AggregationType,gt=({dataSource:e,onPersistentColumnOperation:t})=>n=>{let r=n.options;if(r.column&&e){let{column:l}=r;switch(n.menuId){case"sort-asc":return e.sort=(0,B.setSortColumn)(e.sort,l,"A"),!0;case"sort-dsc":return e.sort=(0,B.setSortColumn)(e.sort,l,"D"),!0;case"sort-add-asc":return e.sort=(0,B.addSortColumn)(e.sort,l,"A"),!0;case"sort-add-dsc":return e.sort=(0,B.addSortColumn)(e.sort,l,"D"),!0;case"group":return e.groupBy=(0,B.addGroupColumn)(e.groupBy,l),!0;case"group-add":return e.groupBy=(0,B.addGroupColumn)(e.groupBy,l),!0;case"column-hide":return t({type:"hideColumns",columns:[l]}),!0;case"column-remove":return e.columns=e.columns.filter(s=>s!==l.name),!0;case"filter-remove-column":return e.filter=Ml(e.filter,l),!0;case"remove-filters":return e.filter={filter:""},!0;case"agg-avg":return e.aggregations=(0,B.setAggregations)(e.aggregations,l,Rl),!0;case"agg-high":return e.aggregations=(0,B.setAggregations)(e.aggregations,l,Hl),!0;case"agg-low":return e.aggregations=(0,B.setAggregations)(e.aggregations,l,El),!0;case"agg-count":return e.aggregations=(0,B.setAggregations)(e.aggregations,l,xl),!0;case"agg-distinct":return e.aggregations=(0,B.setAggregations)(e.aggregations,l,Pl),!0;case"agg-sum":return e.aggregations=(0,B.setAggregations)(e.aggregations,l,Sl),!0;case"column-pin-floating":return t({type:"pinColumn",column:l,pin:"floating"}),!0;case"column-pin-left":return t({type:"pinColumn",column:l,pin:"left"}),!0;case"column-pin-right":return t({type:"pinColumn",column:l,pin:"right"}),!0;case"column-unpin":return t({type:"pinColumn",column:l,pin:void 0}),!0;case"column-settings":return t({type:"columnSettings",column:l}),!0;case"table-settings":return t({type:"tableSettings"}),!0;default:}}return!1};var Qn=require("@vuu-ui/vuu-popups"),Bt=require("@salt-ds/core");var le=require("@vuu-ui/vuu-utils"),Je=require("react");var j=require("@vuu-ui/vuu-utils"),sn=W(require("classnames")),vt=require("react");var Ot=require("@vuu-ui/vuu-utils"),tn=require("@vuu-ui/vuu-ui-controls"),on=W(require("classnames")),he=require("react");var ht=require("react/jsx-runtime"),{KEY:en}=Ot.metadataKeys,To=(0,he.memo)(({className:e,column:t,columnMap:o,onClick:n,row:r})=>{let l=(0,he.useRef)(null),{align:s,CellRenderer:i,key:a,pin:c,editable:u,resizing:d,valueFormatter:m}=t,[b,y]=(0,he.useState)(!1),h=m(r[a]),[T,x]=(0,he.useState)(h),v=()=>{var P;(P=l.current)==null||P.focus()},C=P=>{P.key==="Enter"&&y(!0)},D=(0,he.useCallback)(P=>{n==null||n(P,t)},[t,n]),w=()=>{y(!0)},p=(P="",g="",E=!0,L=!1)=>{var H;y(!1),L?x(P):g!==P&&x(g),E===!1&&((H=l.current)==null||H.focus())},f=(0,on.default)(e,{vuuAlignRight:s==="right",vuuPinFloating:c==="floating",vuuPinLeft:c==="left",vuuPinRight:c==="right","vuuTableCell-resizing":d})||void 0,M=(0,Ot.getColumnStyle)(t);return u?(0,ht.jsx)("div",{className:f,"data-editable":!0,role:"cell",style:M,onKeyDown:C,children:(0,ht.jsx)(tn.EditableLabel,{editing:b,value:T,onChange:x,onMouseDownCapture:v,onEnterEditMode:w,onExitEditMode:p,onKeyDown:C,ref:l,tabIndex:0},"title")}):(0,ht.jsx)("div",{className:f,role:"cell",style:M,onClick:D,children:i?(0,ht.jsx)(i,{column:t,columnMap:o,row:r}):h})},Al);To.displayName="TableCell";function Al(e,t){return e.column===t.column&&e.onClick===t.onClick&&e.row[en]===t.row[en]&&e.row[e.column.key]===t.row[t.column.key]}var Ue=require("@vuu-ui/vuu-utils"),nn=require("react");var Be=require("react/jsx-runtime"),{IS_LEAF:Ll}=Ue.metadataKeys,rn=({column:e,onClick:t,row:o})=>{let{columns:n}=e,[r,l]=(0,Ue.getGroupValueAndOffset)(n,o),s=(0,nn.useCallback)(u=>{t==null||t(u,e)},[e,t]),i=(0,Ue.getColumnStyle)(e),a=o[Ll],c=Array(l).fill(0).map((u,d)=>(0,Be.jsx)("span",{className:"vuuTableGroupCell-spacer"},d));return(0,Be.jsxs)("div",{className:"vuuTableGroupCell vuuPinLeft",onClick:a?void 0:s,role:"cell",style:i,children:[c,a?null:(0,Be.jsx)("span",{className:"vuuTableGroupCell-toggle","data-icon":"triangle-right"}),(0,Be.jsx)("span",{children:r})]})};var yt=require("react/jsx-runtime"),{IDX:Kl,IS_EXPANDED:kl,SELECTED:Nl}=j.metadataKeys,{True:ln,First:zl,Last:Il}=j.RowSelected,_e="vuuTableRow",an=(0,vt.memo)(function({columnMap:t,columns:o,offset:n,onClick:r,onToggleGroup:l,virtualColSpan:s=0,row:i}){let{[Kl]:a,[kl]:c,[Nl]:u}=i,d=(0,sn.default)(_e,{[`${_e}-even`]:a%2===0,[`${_e}-expanded`]:c,[`${_e}-selected`]:u&ln,[`${_e}-selectedStart`]:u&zl,[`${_e}-selectedEnd`]:u&Il}),m=(0,vt.useCallback)(y=>{let h=y.shiftKey,T=y.ctrlKey||y.metaKey;r==null||r(i,h,T)},[r,i]),b=(0,vt.useCallback)((y,h)=>{((0,j.isGroupColumn)(h)||(0,j.isJsonGroup)(h,i))&&(y.stopPropagation(),l==null||l(i,h))},[l,i]);return(0,yt.jsxs)("div",{"aria-selected":u&ln?!0:void 0,"aria-rowindex":a,className:d,onClick:m,role:"row",style:{transform:`translate3d(0px, ${n}px, 0px)`},children:[s>0?(0,yt.jsx)("div",{role:"cell",style:{width:s}}):null,o.filter(j.notHidden).map(y=>{let h=(0,j.isGroupColumn)(y),T=(0,j.isJsonColumn)(y);return(0,yt.jsx)(h?rn:To,{column:y,columnMap:t,onClick:h||T?b:void 0,row:i},y.name)})]})});var wo=W(require("classnames")),un=require("react");var Ke=require("react"),Tt=({column:e,onResize:t,rootRef:o})=>{let n=(0,Ke.useRef)(0),r=(0,Ke.useRef)(!1),{name:l}=e,s=(0,Ke.useCallback)(()=>{if(t&&o.current){console.log("handleResizeStart");let{width:c}=o.current.getBoundingClientRect();n.current=Math.round(c),r.current=!0,t==null||t("begin",l)}},[l,t,o]),i=(0,Ke.useCallback)((c,u)=>{if(o.current&&t){let{width:d}=o.current.getBoundingClientRect(),m=Math.round(d)+u;m!==n.current&&m>0&&(t("resize",l,m),n.current=m)}},[l,t,o]),a=(0,Ke.useCallback)(()=>{t&&(t("end",l,n.current),setTimeout(()=>{r.current=!1},100))},[l,t]);return{isResizing:r.current,onDrag:i,onDragStart:s,onDragEnd:a}};var ae=require("react/jsx-runtime"),Me="vuuTable-groupHeaderCell",cn=({column:e,onClick:t,...o})=>(0,ae.jsx)("span",{...o,className:`${Me}-close`,"data-icon":"close-circle",onClick:()=>t==null?void 0:t(e)}),Vl=e=>{let{children:t,column:o,className:n}=e;return(0,ae.jsxs)("div",{className:(0,wo.default)(`${Me}-col`,n),role:"columnheader",children:[(0,ae.jsx)("span",{className:`${Me}-label`,children:o.name}),t]})},mn=({column:e,className:t,onRemoveColumn:o,onResize:n,...r})=>{let l=(0,un.useRef)(null),{isResizing:s,...i}=Tt({column:e,onResize:n,rootRef:l}),a=(0,wo.default)(Me,t,{vuuPinLeft:e.pin==="left",[`${Me}-right`]:e.align==="right",[`${Me}-resizing`]:e.resizing,[`${Me}-pending`]:e.groupConfirmed===!1}),{columns:c}=e;return(0,ae.jsx)("div",{className:a,ref:l,...r,children:(0,ae.jsxs)("div",{className:`${Me}-inner`,children:[c.map(u=>(0,ae.jsx)(Vl,{column:u,children:c.length>1?(0,ae.jsx)(cn,{column:u,onClick:o}):null},u.key)),(0,ae.jsx)(cn,{"data-align":"end",onClick:o}),e.resizeable!==!1?(0,ae.jsx)(Ct,{...i}):null]})})};var vn=W(require("classnames")),Ne=require("react");var Do=W(require("classnames"));var ke=require("react/jsx-runtime"),pn="vuuSortIndicator",dn=({sorted:e})=>{if(!e)return null;let t=typeof e=="number"?e<0?"dsc":"asc":e==="A"?"asc":"dsc";return typeof e=="number"?(0,ke.jsxs)("div",{className:(0,Do.default)(pn,"multi-col",t),children:[(0,ke.jsx)("span",{"data-icon":`sorted-${t}`}),(0,ke.jsx)("span",{className:"vuuSortPosition",children:Math.abs(e)})]}):(0,ke.jsx)("div",{className:(0,Do.default)(pn,"single-col"),children:(0,ke.jsx)("span",{"data-icon":`sorted-${t}`})})};var yn=require("@vuu-ui/vuu-popups");var fn=require("@vuu-ui/vuu-popups"),Cn=W(require("classnames")),bn=require("react");var hn=require("react/jsx-runtime");var gn=({column:e,filter:t})=>{let[o]=(0,fn.useContextMenu)(),n=(0,bn.useCallback)(r=>{r.stopPropagation(),o(r,"filter",{column:e,filter:t})},[e,t,o]);return e.filter?(0,hn.jsx)("div",{className:(0,Cn.default)("vuuFilterIndicator"),"data-icon":"filter",onClick:n}):null};var Re=require("react/jsx-runtime"),wt="vuuTable-headerCell",Tn=({column:e,className:t,onClick:o,onDragStart:n,onResize:r,...l})=>{let s=(0,Ne.useRef)(null),{isResizing:i,...a}=Tt({column:e,onResize:r,rootRef:s}),[c]=(0,yn.useContextMenu)(),u=(0,Ne.useRef)(null),d=T=>{c(T,"header",{column:e})},m=(0,Ne.useCallback)(T=>!i&&(o==null?void 0:o(T)),[i,o]),b=(0,Ne.useCallback)(T=>{u.current=window.setTimeout(()=>{n==null||n(T),u.current=null},500)},[n]),y=(0,Ne.useCallback)(()=>{u.current!==null&&(window.clearTimeout(u.current),u.current=null)},[]),h=(0,vn.default)(wt,t,{vuuPinFloating:e.pin==="floating",vuuPinLeft:e.pin==="left",vuuPinRight:e.pin==="right",vuuEndPin:e.endPin,[`${wt}-resizing`]:e.resizing,[`${wt}-right`]:e.align==="right"});return(0,Re.jsx)("div",{className:h,...l,onClick:m,onContextMenu:d,onMouseDown:b,onMouseUp:y,ref:s,children:(0,Re.jsxs)("div",{className:`${wt}-inner`,children:[(0,Re.jsx)(gn,{column:e}),(0,Re.jsx)("div",{className:`${wt}-label`,children:e.label}),(0,Re.jsx)(dn,{sorted:e.sorted}),e.resizeable!==!1?(0,Re.jsx)(Ct,{...a}):null]})})};var ce=require("react/jsx-runtime"),Mo="vuuTable",{RENDER_IDX:$l}=le.metadataKeys,wn=({columns:e,columnsWithinViewport:t,data:o,getRowOffset:n,headings:r,onColumnResize:l,onHeaderCellDragStart:s,onContextMenu:i,onRemoveColumnFromGroupBy:a,onRowClick:c,onSort:u,onToggleGroup:d,tableId:m,virtualColSpan:b=0,rowCount:y})=>{let h=(0,Je.useCallback)(C=>{s==null||s(C)},[s]),T=(0,Je.useMemo)(()=>e.filter(le.notHidden),[e]),x=(0,Je.useMemo)(()=>(0,le.buildColumnMap)(e),[e]),v=(0,Je.useCallback)(C=>{var P;let w=C.target.closest(".vuuTable-headerCell"),p=parseInt((P=w==null?void 0:w.dataset.idx)!=null?P:"-1"),f=(0,le.visibleColumnAtIndex)(e,p),M=C.shiftKey;f&&u(f,M)},[e,u]);return(0,ce.jsxs)("div",{"aria-rowcount":y,className:`${Mo}-table`,role:"table",children:[(0,ce.jsxs)("div",{className:`${Mo}-headers`,role:"rowGroup",children:[r.map((C,D)=>(0,ce.jsx)("div",{className:"vuuTable-heading",children:C.map(({label:w,width:p},f)=>(0,ce.jsx)("div",{className:"vuuTable-headingCell",style:{width:p},children:w},f))},D)),(0,ce.jsx)("div",{role:"row",children:T.map((C,D)=>{let w=(0,le.getColumnStyle)(C);return(0,le.isGroupColumn)(C)?(0,ce.jsx)(mn,{column:C,"data-idx":D,onRemoveColumn:a,onResize:l,role:"columnHeader",style:w},D):(0,ce.jsx)(Tn,{column:C,"data-idx":D,id:`${m}-${D}`,onClick:v,onDragStart:h,onResize:l,role:"columnHeader",style:w},D)})})]}),(0,ce.jsx)("div",{className:`${Mo}-body`,onContextMenu:i,role:"rowGroup",children:o==null?void 0:o.map(C=>(0,ce.jsx)(an,{columnMap:x,columns:t,offset:n(C),onClick:c,virtualColSpan:b,onToggleGroup:d,row:C},C[$l]))})]})};var Jn=require("@vuu-ui/vuu-popups"),pe=require("@vuu-ui/vuu-utils"),I=require("react");var Gt=require("@vuu-ui/vuu-data-react"),xe=require("@vuu-ui/vuu-utils"),V=require("react"),{SELECTED:Dt}=xe.metadataKeys;function Dn({dataSource:e,onConfigChange:t,onFeatureEnabled:o,onFeatureInvocation:n,onSizeChange:r,onSubscribed:l,range:s={from:0,to:0},renderBufferSize:i=0,viewportRowCount:a}){let[,c]=(0,V.useState)(null),u=(0,V.useRef)(!0),d=(0,V.useRef)(!1),m=(0,V.useRef)({from:0,to:0}),b=(0,V.useRef)(null),y=(0,V.useRef)([]),h=(0,V.useMemo)(()=>new Ro((0,xe.getFullRange)(s)),[]),T=(0,V.useCallback)(p=>{for(let f of p)h.add(f);y.current=h.data,d.current=!0},[h]),x=(0,V.useCallback)(p=>{p.type==="subscribed"?l==null||l(p):p.type==="viewport-update"?(typeof p.size=="number"&&(r==null||r(p.size),h.setRowCount(p.size)),p.rows?T(p.rows):typeof p.size=="number"&&(y.current=h.data,d.current=!0)):(0,Gt.isVuuFeatureAction)(p)?o==null||o(p):(0,Gt.isVuuFeatureInvocation)(p)?n==null||n(p):console.log(`useDataSource unexpected message ${p.type}`)},[h,o,n,r,l,T]);(0,V.useEffect)(()=>()=>{b.current&&(cancelAnimationFrame(b.current),b.current=null),u.current=!1},[]);let v=(0,V.useCallback)(()=>{u.current&&(d.current&&(c({}),d.current=!1),b.current=requestAnimationFrame(v))},[c]);(0,V.useEffect)(()=>{b.current=requestAnimationFrame(v)},[v]);let C=(0,V.useCallback)(p=>{let{from:f}=e.range,M={from:f,to:f+p},P=(0,xe.getFullRange)(M,i);h.setRange(P),e.range=m.current=P,e.emit("range",M)},[e,h,i]),D=(0,V.useCallback)(p=>{let f=(0,xe.getFullRange)(p,i);h.setRange(f),e.range=m.current=f,e.emit("range",p)},[e,h,i]),w=(0,V.useCallback)(()=>h.getSelectedRows(),[h]);return(0,V.useEffect)(()=>{e==null||e.subscribe({range:m.current},x)},[e,x,t]),(0,V.useEffect)(()=>{console.log(`adjust range as rowCount chnaged ${a}`),C(a)},[C,a]),{data:y.current,getSelectedRows:w,range:m.current,setRange:D,dataSource:e}}var Ro=class{constructor({from:t,to:o}){this.rowCount=0;this.setRowCount=t=>{t<this.data.length&&(this.data.length=t),this.rowCount=t};this.range=new xe.WindowRange(t,o),this.data=new Array(o-t),this.rowCount=0}add(t){var n;let[o]=t;if(this.isWithinRange(o)){let r=o-this.range.from;this.data[r]=t;let l=t[Dt],s=(n=this.data[r-1])==null?void 0:n[Dt];s===0&&l?this.data[r-1][Dt]=2:s===2&&!l&&(this.data[r-1][Dt]=0)}}getAtIndex(t){return this.range.isWithin(t)&&this.data[t-this.range.from]!=null?this.data[t-this.range.from]:void 0}isWithinRange(t){return this.range.isWithin(t)}setRange({from:t,to:o}){if(t!==this.range.from||o!==this.range.to){let[n,r]=this.range.overlap(t,o),l=new Array(Math.max(0,o-t));for(let s=n;s<r;s++){let i=this.getAtIndex(s);if(i){let a=s-t;l[a]=i}}this.data=l,this.range.from=t,this.range.to=o}}getSelectedRows(){return this.data.filter(t=>t[Dt]!==0)}};var Mn=require("@vuu-ui/vuu-ui-controls"),Xe=require("react"),Rn=({onDrop:e})=>{let t=(0,Xe.useRef)(),o=(0,Xe.useRef)(null),n=(0,Xe.useCallback)(()=>{console.log("handleDropSettle"),t.current=void 0,o.current=null},[]),{draggable:r,draggedItemIndex:l,onMouseDown:s}=(0,Mn.useDragDropNext)({allowDragDrop:!0,draggableClassName:"vuuTable-headerCell",orientation:"horizontal",containerRef:o,itemQuery:".vuuTable-headerCell",onDrop:e,onDropSettle:n}),i=(0,Xe.useCallback)(a=>{let{clientX:c,clientY:u}=a;console.log("useDraggableColumn handleHeaderCellDragStart means mouseDown fired on a column in RowBasedTable");let m=a.target.closest(".vuuTable-headerCell");o.current=m==null?void 0:m.closest("[role='row']");let{dataset:{idx:b="-1"}}=m;t.current={clientX:c,clientY:u,idx:b},s==null||s(a)},[s]);return{draggable:r,draggedItemIndex:l,onHeaderCellDragStart:i}};var Sn=require("@vuu-ui/vuu-utils"),F=require("react");function Fl(e,...t){let o=new Set(e);for(let n of t)for(let r of n)o.add(r);return o}var xo="ArrowUp",Po="ArrowDown",Ho="ArrowLeft",Eo="ArrowRight";var So="Home",Ao="End",Lo="PageUp",Ko="PageDown";var Ol=new Set(["Enter","Delete"," "]),Gl=new Set(["Tab"]),Wl=new Set(["ArrowRight","ArrowLeft"]),xn=new Set([So,Ao,Lo,Ko,Po,Ho,Eo,xo]),Bl=new Set(["F1","F2","F3","F4","F5","F6","F7","F8","F9","F10","F11","F12"]),Ka=Fl(Ol,xn,Wl,Bl,Gl);var Ul=["Home","End","PageUp","PageDown"],Pn=e=>Ul.includes(e),Hn=e=>xn.has(e);var En=e=>`.vuuTable-headers .vuuTable-headerCell:nth-child(${e+1})`,_l=(e,t)=>`.vuuTable-body > [aria-rowindex='${e}'] > [role='cell']:nth-child(${t+1})`,Jl=[-1,-1];function Xl(e,[t,o],n,r){return e===xo?t>-1?[t-1,o]:[t,o]:e===Po?t===-1?[0,o]:t===r-1?[t,o]:[t+1,o]:e===Eo?o<n-1?[t,o+1]:[t,o]:e===Ho?o>0?[t,o-1]:[t,o]:[t,o]}var An=({columnCount:e=0,containerRef:t,disableHighlightOnFocus:o,data:n,requestScroll:r,rowCount:l=0,viewportRange:s})=>{var P;let{from:i,to:a}=s,c=(0,F.useRef)([-1,-1]),u=(0,F.useRef)(),d=(0,F.useRef)([-1,0]),m=(0,F.useCallback)(([g,E])=>{var H;let L=g===-1?En(E):_l(g,E);return(H=t.current)==null?void 0:H.querySelector(L)},[t]),b=g=>g==null?void 0:g.closest("[role='columnHeader'],[role='cell']"),y=g=>{var E,L;if(g.role==="columnHeader")return[-1,parseInt((E=g.dataset.idx)!=null?E:"-1",10)];{let H=g.closest("[role='row']");if(H){let O=parseInt((L=H.ariaRowIndex)!=null?L:"-1",10),me=Array.from(H.childNodes).indexOf(g);return[O,me]}}return Jl},h=(0,F.useCallback)(g=>{var E;if(t.current){let L=m(g);L?(L!==u.current&&((E=u.current)==null||E.setAttribute("tabindex",""),u.current=L,L.setAttribute("tabindex","0")),L.focus()):(0,Sn.withinRange)(g[0],s)||(u.current=void 0,r==null||r({type:"scroll-page",direction:"up"}))}},[t,m,r,s]),T=(0,F.useCallback)((g,E,L=!1)=>{let H=[g,E];d.current=H,h(H),L&&(c.current=H)},[h]),x=(0,F.useCallback)(()=>{var g;(g=u.current)==null||g.setAttribute("tabindex",""),u.current=void 0},[]),v=(0,F.useCallback)(async(g,E)=>{switch(g){case Ko:r==null||r({type:"scroll-page",direction:"down"});break;case Lo:r==null||r({type:"scroll-page",direction:"up"});break;case So:r==null||r({type:"scroll-end",direction:"home"});break;case Ao:r==null||r({type:"scroll-end",direction:"end"});break}return E},[r]),C=(0,F.useCallback)(()=>{var g;if(o!==!0&&(g=t.current)!=null&&g.contains(document.activeElement)){let E=b(document.activeElement);E&&(c.current=y(E))}},[o,t]),D=(0,F.useCallback)(async g=>{let[E,L]=Pn(g)?await v(g,d.current):Xl(g,d.current,e,l),[H,O]=d.current;(E!==H||L!==O)&&T(E,L,!0)},[e,v,l,T]),w=(0,F.useCallback)(g=>{n.length>0&&Hn(g.key)&&(g.preventDefault(),g.stopPropagation(),D(g.key))},[n,D]),p=(0,F.useCallback)(g=>{let E=g.target,L=b(E);if(L){let[H,O]=y(L);T(H,O)}},[T]),f=(0,F.useMemo)(()=>({onClick:p,onFocus:C,onKeyDown:w}),[p,C,w]);(0,F.useLayoutEffect)(()=>{let{current:g}=d,E=g[0]>=i&&g[0]<=a;u.current&&!E?x():!u.current&&E&&h(g)},[h,i,a,x]);let M=((P=t.current)==null?void 0:P.firstChild)!=null;return(0,F.useEffect)(()=>{var g;if(M&&u.current===void 0){let E=(g=t.current)==null?void 0:g.querySelector(En(0));E&&(E.setAttribute("tabindex","0"),u.current=E)}},[t,M]),f};var ve=require("@vuu-ui/vuu-utils"),Pe=require("react");var Ie=require("react");var ze=new Map,Kn=(e,t,o)=>{switch(o){case"height":return t.height;case"clientHeight":return e.clientHeight;case"clientWidth":return e.clientWidth;case"contentHeight":return t.contentHeight;case"contentWidth":return t.contentWidth;case"scrollHeight":return Math.ceil(e.scrollHeight);case"scrollWidth":return Math.ceil(e.scrollWidth);case"width":return t.width;default:return 0}},Ln=new ResizeObserver(e=>{for(let t of e){let{target:o,borderBoxSize:n,contentBoxSize:r}=t,l=ze.get(o);if(l){let[{blockSize:s,inlineSize:i}]=n,[{blockSize:a,inlineSize:c}]=r,{onResize:u,measurements:d}=l,m=!1;for(let[b,y]of Object.entries(d)){let h=Kn(o,{height:s,width:i,contentHeight:a,contentWidth:c},b);h!==y&&(m=!0,d[b]=h)}m&&u&&u(d)}}});function kn(e,t,o,n=!1){let r=(0,Ie.useRef)(t),l=(0,Ie.useCallback)(s=>{let{width:i,height:a}=s.getBoundingClientRect(),{clientWidth:c,clientHeight:u}=s;return r.current.reduce((d,m)=>(d[m]=Kn(s,{width:i,height:a,contentHeight:u,contentWidth:c},m),d),{})},[]);(0,Ie.useEffect)(()=>{let s=e.current;async function i(){ze.set(s,{measurements:{}}),await document.fonts.ready;let a=ze.get(s);if(a){let c=l(s);a.measurements=c,Ln.observe(s),n&&o(c)}else console.log("%cuseResizeObserver an target expected to be under observation wa snot found. This warrants investigation","font-weight:bold; color:red;")}if(s){if(ze.has(s))throw Error("useResizeObserver attemping to observe same element twice");i()}return()=>{s&&ze.has(s)&&(Ln.unobserve(s),ze.delete(s))}},[l,e]),(0,Ie.useEffect)(()=>{let s=e.current,i=ze.get(s);if(i){if(r.current!==t){r.current=t;let a=l(s);i.measurements=a}i.onResize=o}},[t,l,e,o])}var Ql=["clientHeight","clientWidth"],Nn=e=>Number.isFinite(e),Yl={height:"100%",width:"100%"},Zl=(e,t)=>(0,ve.isValidNumber)(e)&&(0,ve.isValidNumber)(t)?{height:`${e}px`,width:`${t}px`}:Yl,jl=(e,t)=>{if((0,ve.isValidNumber)(e)&&(0,ve.isValidNumber)(t))return{height:e,width:t}},ko=({defaultHeight:e=0,defaultWidth:t=0,height:o,width:n})=>{let r=(0,Pe.useRef)(null),[l,s]=(0,Pe.useState)({css:Zl(o,n),inner:jl(o,n),outer:{height:o!=null?o:"100%",width:n!=null?n:"100%"}});(0,Pe.useMemo)(()=>{s(a=>{let{inner:c,outer:u}=a;if((0,ve.isValidNumber)(o)&&(0,ve.isValidNumber)(n)&&c&&u){let{height:d,width:m}=c,{height:b,width:y}=u;if(b!==o||y!==n){let h=(0,ve.isValidNumber)(b)?b-d:0,T=(0,ve.isValidNumber)(y)?y-m:0;return{...a,outer:{height:o,width:n},inner:{height:o-h,width:n-T}}}}return a})},[o,n]);let i=(0,Pe.useCallback)(({clientWidth:a,clientHeight:c})=>{s(u=>{let{css:d,inner:m,outer:b}=u;return Nn(c)&&Nn(a)&&(a!==(m==null?void 0:m.width)||c!==(m==null?void 0:m.height))?{css:d,outer:b,inner:{width:Math.floor(a)||t,height:Math.floor(c)||e}}:u})},[e,t]);return kn(r,Ql,i,!0),{containerRef:r,cssSize:l.css,outerSize:l.outer,innerSize:l.inner}};var He=require("@vuu-ui/vuu-utils"),Mt=require("react"),{IDX:ql}=He.metadataKeys,es=[],Rt=({selectionModel:e,onSelect:t,onSelectionChange:o})=>{let n=(0,Mt.useRef)(-1),r=(0,Mt.useRef)(es);return(0,Mt.useCallback)((s,i,a)=>{let{[ql]:c}=s,{current:u}=n,{current:d}=r,b=((0,He.isRowSelected)(s)?He.deselectItem:He.selectItem)(e,d,c,i,a,u);r.current=b,n.current=c,t==null||t(s),o==null||o(b)},[t,o,e])};var S=require("@vuu-ui/vuu-utils"),zn=require("react"),ts=100,In=S.metadataKeys.count,os=({serverDataType:e})=>e===void 0,ns=e=>{var t;if((0,S.isTypeDescriptor)(e.type))return(0,S.getCellRenderer)((t=e.type)==null?void 0:t.renderer)},Vn=(e,t)=>{if(e.serverDataType)return e.serverDataType;if(t){let o=t.columns.find(n=>n.name===e.name);if(o)return o.serverDataType}return"string"},rs=e=>e.type==="columnSettings",ls=e=>e.type==="tableSettings",ss=(e,t)=>{switch(t.type){case"init":return $n(t);case"moveColumn":return as(e,t);case"resizeColumn":return ms(e,t);case"setTableSchema":return ps(e,t);case"hideColumns":return cs(e,t);case"showColumns":return us(e,t);case"pinColumn":return ds(e,t);case"updateColumnProp":return Qe(e,t);case"tableConfig":return Fn(e,t);default:return console.log(`unhandled action ${t.type}`),e}},No=(e,t)=>{let[o,n]=(0,zn.useReducer)(ss,{tableConfig:e,dataSourceConfig:t},$n);return{columns:o.columns,dispatchColumnAction:n,headings:o.headings}};function $n({dataSourceConfig:e,tableConfig:t}){let o=t.columns.map(zo(t)),n=o.some(S.isPinned)?(0,S.sortPinnedColumns)(o):o,r={columns:n,headings:(0,S.getTableHeadings)(n)};if(e){let{columns:l,...s}=e;return Fn(r,{type:"tableConfig",...s})}else return r}var is=(e,t)=>t==="uppercase"?e.toUpperCase():t==="capitalize"?e[0].toUpperCase()+e.slice(1).toLowerCase():e,zo=e=>(t,o)=>{let n=Vn(t,e.tableSchema),{columnDefaultWidth:r=ts,columnFormatHeader:l}=e,{align:s=(0,S.getDefaultAlignment)(n),key:i,name:a,label:c=a,width:u=r,...d}=t,m={...d,align:s,CellRenderer:ns(t),label:is(c,l),key:i!=null?i:o+In,name:a,originalIdx:o,serverDataType:n,valueFormatter:(0,S.getValueFormatter)(t),width:u};return(0,S.isGroupColumn)(m)&&(m.columns=m.columns.map(b=>zo(e)(b,b.key))),m};function as(e,{column:t,moveBy:o,moveTo:n}){let{columns:r}=e;if(typeof o=="number"){let l=r.indexOf(t),s=r.slice(),[i]=s.splice(l,1);return s.splice(l+o,0,i),{...e,columns:s}}else if(typeof n=="number")return{...e,columns:(0,S.moveItemDeprecated)(r,t,n)};return e}function cs(e,{columns:t}){return t.some(o=>o.hidden!==!0)?t.reduce((o,n)=>n.hidden!==!0?Qe(o,{type:"updateColumnProp",column:n,hidden:!0}):o,e):e}function us(e,{columns:t}){return t.some(o=>o.hidden)?t.reduce((o,n)=>n.hidden?Qe(o,{type:"updateColumnProp",column:n,hidden:!1}):o,e):e}function ms(e,{column:t,phase:o,width:n}){let r="updateColumnProp",l=o!=="end";switch(o){case"begin":return Qe(e,{type:r,column:t,resizing:l});case"end":return Qe(e,{type:r,column:t,resizing:l,width:n});case"resize":return Qe(e,{type:r,column:t,width:n});default:throw Error(`useTableModel.resizeColumn, invalid resizePhase ${o}`)}}function ps(e,{tableSchema:t}){let{columns:o}=e;if(o.some(os)){let n=o.map(r=>{var s;let l=Vn(r,t);return{...r,align:(s=r.align)!=null?s:(0,S.getDefaultAlignment)(l),serverDataType:l}});return{...e,columns:n,tableSchema:t}}else return{...e,tableSchema:t}}function ds(e,t){let{columns:o}=e,{column:n,pin:r}=t;return o=(0,S.updateColumn)(o,n.name,{pin:r}),o=(0,S.sortPinnedColumns)(o),console.log({withPins:o}),{...e,columns:o}}function Qe(e,t){let{columns:o}=e,{align:n,column:r,hidden:l,label:s,resizing:i,width:a}=t,c={};return(n==="left"||n==="right")&&(c.align=n),typeof s=="string"&&(c.label=s),typeof i=="boolean"&&(c.resizing=i),typeof l=="boolean"&&(c.hidden=l),typeof a=="number"&&(c.width=a),o=(0,S.updateColumn)(o,r.name,c),{...e,columns:o}}function Fn(e,{columns:t,confirmed:o,filter:n,groupBy:r,sort:l}){let s=t&&t.length>0,i=r!==void 0,a=typeof(n==null?void 0:n.filter)=="string",c=l&&l.sortDefs.length>0,u=e;return s&&(u={...e,columns:t.map((d,m)=>{let b=(0,S.getColumnName)(d),y=m+In,h=(0,S.findColumn)(u.columns,b);return h?h.key===y?h:{...h,key:y}:zo(e)({name:d},m)})}),i&&(u={...e,columns:(0,S.applyGroupByToColumns)(u.columns,r,o)}),c&&(u={...e,columns:(0,S.applySortToColumns)(u.columns,l)}),a?u={...e,columns:(0,S.applyFilterToColumns)(u.columns,n)}:u.columns.some(S.isFilteredColumn)&&(u={...e,columns:(0,S.stripFilterFromColumns)(u.columns)}),u}var X=require("react"),On=e=>{let{scrollLeft:t,scrollTop:o}=e,{clientHeight:n,clientWidth:r,scrollHeight:l,scrollWidth:s}=e,i=t/(s-r),a=o/(l-n);return[i,a]},fs=e=>{let{clientHeight:t,clientWidth:o,scrollHeight:n,scrollWidth:r}=e;return[r-o,n-t]},Gn=({onAttach:e,onDetach:t})=>{let o=(0,X.useRef)(null);return(0,X.useCallback)(r=>{if(r)o.current=r,e==null||e(r);else if(o.current){let{current:l}=o;o.current=r,t==null||t(l)}},[e,t])},Wn=({onHorizontalScroll:e,onVerticalScroll:t,viewport:o})=>{let n=(0,X.useRef)(!1),r=(0,X.useRef)({scrollTop:0,scrollLeft:0}),l=(0,X.useRef)(null),s=(0,X.useRef)(null),{maxScrollContainerScrollHorizontal:i,maxScrollContainerScrollVertical:a}=o,c=(0,X.useCallback)(()=>{let{current:v}=s,{current:C}=l,{current:D}=n;if(D)n.current=!1;else if(v&&C){let[w,p]=On(C),[f,M]=fs(v),P=Math.round(w*f),g=Math.round(p*M);console.log(`pctScrollTop ${p}, maxScrollTop ${M} rootScrollTop ${g}`),v.scrollTo({left:P,top:g,behavior:"auto"})}},[]),u=(0,X.useCallback)(()=>{let{current:v}=s,{current:C}=l,{current:D}=r;if(v&&C){let{scrollLeft:w,scrollTop:p}=v,[f,M]=On(v);n.current=!0,C.scrollLeft=Math.round(f*i),C.scrollTop=Math.round(M*a),D.scrollTop!==p&&(D.scrollTop=p,t==null||t(p,M)),D.scrollLeft!==w&&(D.scrollLeft=w,e==null||e(w))}},[i,a,e,t]),d=(0,X.useCallback)(v=>{l.current=v,v.addEventListener("scroll",c,{passive:!0})},[c]),m=(0,X.useCallback)(v=>{l.current=null,v.removeEventListener("scroll",c)},[c]),b=(0,X.useCallback)(v=>{s.current=v,v.addEventListener("scroll",u,{passive:!0})},[u]),y=(0,X.useCallback)(v=>{s.current=null,v.removeEventListener("scroll",u)},[u]),h=Gn({onAttach:b,onDetach:y}),T=Gn({onAttach:d,onDetach:m}),x=(0,X.useCallback)(v=>{let{current:C}=s;if(C){if(n.current=!1,v.type==="scroll-page"){let{clientHeight:D,scrollLeft:w,scrollTop:p}=C,{direction:f}=v,M=f==="down"?D:-D,P=Math.min(Math.max(0,p+M),a);C.scrollTo({top:P,left:w,behavior:"auto"})}else if(v.type==="scroll-end"){let{direction:D}=v,w=D==="end"?a:0;C.scrollTo({top:w,left:C.scrollLeft,behavior:"auto"})}}},[a]);return{scrollbarContainerRef:T,contentContainerRef:h,requestScroll:x}};var ye=require("react"),Wt=require("@vuu-ui/vuu-utils"),Cs=15e5,bs={contentHeight:0,contentWidth:0,getRowAtPosition:()=>-1,getRowOffset:()=>-1,horizontalScrollbarHeight:0,maxScrollContainerScrollHorizontal:0,maxScrollContainerScrollVertical:0,pinnedWidthLeft:0,pinnedWidthRight:0,rowCount:0,setPctScrollTop:()=>{},totalHeaderHeight:0,verticalScrollbarWidth:0,viewportBodyHeight:0},gs=e=>{let t=0,o=0,n=0;for(let r of e){let{hidden:l,pin:s,width:i}=r,a=l?0:i;s==="left"?t+=a:s==="right"?o+=a:n+=a}return{pinnedWidthLeft:t+4,pinnedWidthRight:o+4,unpinnedWidth:n}},xt=({columns:e,headerHeight:t,headings:o,rowCount:n,rowHeight:r,size:l})=>{let s=(0,ye.useRef)(0),a=Math.min(n,Cs)*r,u=n*r-a,{pinnedWidthLeft:d,pinnedWidthRight:m,unpinnedWidth:b}=(0,ye.useMemo)(()=>gs(e),[e]),[y,h]=(0,ye.useMemo)(()=>(0,Wt.actualRowPositioning)(r),[r]),[T,x]=(0,ye.useMemo)(()=>u?(0,Wt.virtualRowPositioning)(r,u,s):[y,h],[h,y,u,r]),v=(0,ye.useCallback)(C=>{s.current=C},[]);return(0,ye.useMemo)(()=>{var C;if(l){let D=o.length,w=15,p=d+b+m,f=p>l.width?w:0,M=t*(1+D),P=a-(((C=l==null?void 0:l.height)!=null?C:0)-f)+M,g=p-l.width+d,E=(l.height-t)/r,L=Number.isInteger(E)?E+1:Math.ceil(E),H=l.height-M,O=a>H?w:0;return{contentHeight:a,getRowAtPosition:x,getRowOffset:T,horizontalScrollbarHeight:f,maxScrollContainerScrollHorizontal:g,maxScrollContainerScrollVertical:P,pinnedWidthLeft:d,pinnedWidthRight:m,rowCount:L,contentWidth:p,setPctScrollTop:v,totalHeaderHeight:M,verticalScrollbarWidth:O,viewportBodyHeight:H}}else return bs},[l,o.length,d,b,m,a,t,r,x,T,v])};var Pt=require("@vuu-ui/vuu-utils"),q=require("react"),Bn=({columns:e,getRowAtPosition:t,setRange:o,viewportMeasurements:n})=>{let r=(0,q.useRef)(-1),{rowCount:l,contentWidth:s,maxScrollContainerScrollHorizontal:i}=n,a=s-i,c=(0,q.useRef)(0),[u,d]=(0,q.useMemo)(()=>(0,Pt.getColumnsInViewport)(e,c.current,c.current+a),[a,e]),m=(0,q.useRef)(d);(0,q.useEffect)(()=>{y(u)},[u]);let[b,y]=(0,q.useState)(u),h=(0,q.useCallback)(x=>{c.current=x;let[v,C]=(0,Pt.getColumnsInViewport)(e,x,x+a);(0,Pt.itemsChanged)(b,v)&&(m.current=C,y(v))},[a,e,b]),T=(0,q.useCallback)(x=>{let v=t(x);v!==r.current&&(r.current=v,console.log("setRange from handleVerticalScroll"),o({from:v,to:v+l}))},[t,o,l]);return{columnsWithinViewport:b,onHorizontalScroll:h,onVerticalScroll:T,virtualColSpan:m.current}};var hs=[],{KEY:vs,IS_EXPANDED:Un,IS_LEAF:_n}=pe.metadataKeys,Xn=({config:e,dataSource:t,headerHeight:o,onConfigChange:n,onFeatureEnabled:r,onFeatureInvocation:l,onSelectionChange:s,renderBufferSize:i=0,rowHeight:a,selectionModel:c,...u})=>{var Vt,dt;let[d,m]=(0,I.useState)(t.size),b=(0,I.useRef)(!1),y=(0,I.useRef)();if(y.current=t,t===void 0)throw Error("no data source provided to Vuu Table");let h=ko(u),T=(0,I.useCallback)(K=>{m(K)},[]),{columns:x,dispatchColumnAction:v,headings:C}=No(e,t.config),{getRowAtPosition:D,getRowOffset:w,setPctScrollTop:p,...f}=xt({columns:x,headerHeight:o,headings:C,rowCount:d,rowHeight:a,size:h.innerSize}),M=(0,I.useCallback)(({tableSchema:K})=>{K?(b.current=!0,v({type:"setTableSchema",tableSchema:K})):console.log("usbscription message with no schema")},[v]),P=(0,I.useCallback)(K=>{t.select(K),s==null||s(K)},[t,s]),g=Rt({onSelectionChange:P,selectionModel:c}),{data:E,getSelectedRows:L,range:H,setRange:O}=Dn({dataSource:t,onFeatureEnabled:r,onFeatureInvocation:l,onSubscribed:M,onSizeChange:T,renderBufferSize:i,viewportRowCount:f.rowCount}),me=(0,I.useRef)();me.current=E;let Ae=(0,I.useCallback)(K=>{b.current=!0,console.log("onPersistentColumnOperation, dispatchColumnAction",{action:K}),v(K)},[v]),Nt=gt({dataSource:t,onPersistentColumnOperation:Ae}),zt=(0,I.useCallback)((K,$=!1,Z)=>{t&&(t.sort=(0,pe.applySort)(t.sort,K,$,Z))},[t]),ie=(0,I.useCallback)((K,$,Z)=>{let G=x.find(oe=>oe.name===$);if(G)K==="end"&&(b.current=!0),v({type:"resizeColumn",phase:K,column:G,width:Z});else throw Error(`useDataTable.handleColumnResize, column ${$} not found`)},[x,v]),at=(0,I.useCallback)((K,$)=>{let Z=(0,pe.isJsonGroup)($,K),G=K[vs];if(K[Un]){if(t.closeTreeNode(G,!0),Z){let oe=x.indexOf($);t.getRowsAtDepth(oe+1).some(ne=>ne[Un]||ne[_n])||v({type:"hideColumns",columns:x.slice(oe+2)})}}else if(t.openTreeNode(G),Z){let oe=t.getChildRows(G),Ce=x.indexOf($)+1,ne=[x[Ce]];oe.some(De=>De[_n])&&ne.push(x[Ce+1]),ne.some(De=>De.hidden)&&v({type:"showColumns",columns:ne})}},[x,t,v]),{onVerticalScroll:Le,onHorizontalScroll:de,columnsWithinViewport:te,virtualColSpan:ct}=Bn({columns:x,getRowAtPosition:D,setRange:O,viewportMeasurements:f}),ut=(0,I.useCallback)((K,$)=>{p($),Le(K)},[Le,p]),{requestScroll:mt,...Y}=Wn({onHorizontalScroll:de,onVerticalScroll:ut,viewport:f,viewportHeight:((dt=(Vt=h.innerSize)==null?void 0:Vt.height)!=null?dt:0)-o}),fe=An({columnCount:x.length,containerRef:h.containerRef,data:E,requestScroll:mt,rowCount:t==null?void 0:t.size,viewportRange:H}),It=(0,I.useCallback)(K=>{K?t&&t.groupBy.includes(K.name)&&(t.groupBy=t.groupBy.filter($=>$!==K.name)):t.groupBy=[]},[t]),so=(0,I.useCallback)((K,$)=>{let Z=t.columns[K],G=(0,pe.moveItemDeprecated)(t.columns,Z,$);G!==t.columns&&(t.columns=G,v({type:"tableConfig",columns:G}))},[t,v]),io=Rn({onDrop:so});(0,I.useEffect)(()=>{y.current&&(b.current=!0,v({type:"init",tableConfig:e,dataSourceConfig:y.current.config}))},[e,v]),(0,I.useEffect)(()=>{t.on("config",(K,$)=>{b.current=!0,v({type:"tableConfig",...K,confirmed:$})})},[t,v]),(0,I.useMemo)(()=>{b.current&&(n==null||n({...e,columns:x}),b.current=!1)},[x,e,n]);let[pt]=(0,Jn.useContextMenu)(),ao=(0,I.useCallback)(K=>{var ne;let{current:$}=me,{current:Z}=y,G=K.target,oe=G==null?void 0:G.closest("div[role='cell']"),Ce=G==null?void 0:G.closest(".vuuTableRow");if(oe&&Ce&&$&&Z){let{columns:De,selectedRowsCount:co}=Z,uo=(0,pe.buildColumnMap)(De),mo=parseInt((ne=Ce.ariaRowIndex)!=null?ne:"-1"),po=Array.from(Ce.childNodes).indexOf(oe),$t=$.find(([Co])=>Co===mo),fo=De[po];pt(K,"grid",{columnMap:uo,columnName:fo,row:$t,selectedRows:co===0?hs:L(),viewport:t==null?void 0:t.viewport})}},[t==null?void 0:t.viewport,L,pt]);return{columns:x,columnsWithinViewport:te,containerMeasurements:h,containerProps:fe,data:E,dispatchColumnAction:v,getRowOffset:w,handleContextMenuAction:Nt,headings:C,onColumnResize:ie,onContextMenu:ao,onRemoveColumnFromGroupBy:It,onRowClick:g,onSort:zt,onToggleGroup:at,virtualColSpan:ct,scrollProps:Y,rowCount:d,viewportMeasurements:f,...io}};var Yn=W(require("classnames"));var Zn=require("@vuu-ui/vuu-utils"),Te=require("react/jsx-runtime"),Ve="vuuTable",ys=({allowConfigEditing:e=!1,className:t,config:o,dataSource:n,headerHeight:r=25,height:l,id:s,onConfigChange:i,onFeatureEnabled:a,onFeatureInvocation:c,onSelect:u,onSelectionChange:d,onShowConfigEditor:m,renderBufferSize:b=0,rowHeight:y=20,selectionModel:h="extended",style:T,width:x,...v})=>{let C=(0,Bt.useIdMemo)(s),{containerMeasurements:{containerRef:D,innerSize:w,outerSize:p},containerProps:f,dispatchColumnAction:M,draggable:P,draggedItemIndex:g,handleContextMenuAction:E,scrollProps:L,viewportMeasurements:H,...O}=Xn({config:o,dataSource:n,renderBufferSize:b,headerHeight:r,height:l,onConfigChange:i,onFeatureEnabled:a,onFeatureInvocation:c,onSelectionChange:d,rowHeight:y,selectionModel:h,width:x});console.log({tableProps:O});let me={...p,"--content-height":`${H.contentHeight}px`,"--horizontal-scrollbar-height":`${H.horizontalScrollbarHeight}px`,"--content-width":`${H.contentWidth}px`,"--pinned-width-left":`${H.pinnedWidthLeft}px`,"--pinned-width-right":`${H.pinnedWidthRight}px`,"--header-height":`${r}px`,"--row-height":`${y}px`,"--table-height":`${w==null?void 0:w.height}px`,"--table-width":`${w==null?void 0:w.width}px`,"--total-header-height":`${H.totalHeaderHeight}px`,"--vertical-scrollbar-width":`${H.verticalScrollbarWidth}px`,"--viewport-body-height":`${H.viewportBodyHeight}px`},Ae=(0,Yn.default)(Ve,t,{[`${Ve}-zebra`]:o.zebraStripes,[`${Ve}-loading`]:(0,Zn.isDataLoading)(O.columns)});return(0,Te.jsx)(Qn.ContextMenuProvider,{menuActionHandler:E,menuBuilder:bt(n),children:(0,Te.jsxs)("div",{...v,...f,className:Ae,id:C,ref:D,style:me,tabIndex:-1,children:[w?(0,Te.jsx)("div",{className:`${Ve}-scrollbarContainer`,ref:L.scrollbarContainerRef,children:(0,Te.jsx)("div",{className:`${Ve}-scrollbarContent`})}):null,w?(0,Te.jsxs)("div",{className:`${Ve}-contentContainer`,ref:L.contentContainerRef,children:[(0,Te.jsx)(wn,{...O,headerHeight:r,tableId:C}),P]}):null,e&&w?(0,Te.jsx)(Bt.Button,{className:`${Ve}-settings`,"data-icon":"settings",onClick:m,variant:"secondary"}):null]})})};var jn=W(require("classnames")),Ze=require("@vuu-ui/vuu-utils");var Ye=require("react/jsx-runtime"),Ht="vuuJsonCell",{IS_EXPANDED:Ts,KEY:ws}=Ze.metadataKeys,Ds=e=>{let t=e.lastIndexOf("|");return t===-1?"":e.slice(t+1)},Ms=({column:e,row:t})=>{let{key:o}=e,n=t[o],r=!1;(0,Ze.isJsonAttribute)(n)&&(n=n.slice(0,-1),r=!0);let l=Ds(t[ws]),s=(0,jn.default)({[`${Ht}-name`]:l===n,[`${Ht}-value`]:l!==n,[`${Ht}-group`]:r});if(r){let i=t[Ts]?"minus-box":"plus-box";return(0,Ye.jsxs)("span",{className:s,children:[(0,Ye.jsx)("span",{className:`${Ht}-value`,children:n}),(0,Ye.jsx)("span",{className:`${Ht}-toggle`,"data-icon":i})]})}else return n?(0,Ye.jsx)("span",{className:s,children:n}):null};console.log("register JsonCell");(0,Ze.registerComponent)("json",Ms,"cell-renderer",{description:"JSON formatter",label:"JSON formatter",serverDataType:"json"});var xs=W(require("classnames")),Ps=require("react");var je=require("react");var er=require("react/jsx-runtime"),qn=()=>{},Rs="vuuColumnResizerNext",Et=({onDrag:e,onDragEnd:t=qn,onDragStart:o=qn})=>{let n=(0,je.useRef)(0),r=(0,je.useCallback)(i=>{i.stopPropagation&&i.stopPropagation(),i.preventDefault&&i.preventDefault();let a=Math.round(i.clientX),c=a-n.current;n.current=a,c!==0&&e(i,c)},[e]),l=(0,je.useCallback)(i=>{window.removeEventListener("mouseup",l),window.removeEventListener("mousemove",r),t(i)},[t,r]),s=(0,je.useCallback)(i=>{o(i),n.current=Math.round(i.clientX),window.addEventListener("mouseup",l),window.addEventListener("mousemove",r),i.stopPropagation&&i.stopPropagation(),i.preventDefault&&i.preventDefault()},[o,r,l]);return(0,er.jsx)("div",{className:Rs,onMouseDown:s})};var Ee=require("react"),St=({column:e,onResize:t,rootRef:o})=>{let n=(0,Ee.useRef)(0),[r,l]=(0,Ee.useState)(!1),{name:s}=e,i=(0,Ee.useCallback)(()=>{if(console.log("onResizeStart"),t&&o.current){console.log("handleResizeStart");let{width:u}=o.current.getBoundingClientRect();n.current=Math.round(u),l(!0),t==null||t("begin",s)}},[s,t,o]),a=(0,Ee.useCallback)((u,d)=>{if(o.current&&t){let{width:m}=o.current.getBoundingClientRect(),b=Math.round(m)+d;b!==n.current&&b>0&&(t("resize",s,b),n.current=b)}},[s,t,o]),c=(0,Ee.useCallback)(()=>{t&&(t("end",s,n.current),setTimeout(()=>{l(!1)},80))},[s,t]);return{isResizing:r,onDrag:a,onDragStart:i,onDragEnd:c}};var tr=require("@vuu-ui/vuu-utils"),or=W(require("classnames")),nr=require("react"),we=(e,t,o)=>(0,nr.useMemo)(()=>{let n=(0,or.default)(t,{vuuPinFloating:e.pin==="floating",vuuPinLeft:e.pin==="left",vuuPinRight:e.pin==="right",vuuEndPin:o&&e.endPin,[`${t}-editable`]:e.editable,[`${t}-right`]:e.align==="right"}),r=(0,tr.getColumnStyle)(e);return{className:n,style:r}},[e,t,o]);var lr=W(require("classnames")),sr=require("react");var Ut=require("react/jsx-runtime"),rr="vuuColumnHeaderPill",$e=({children:e,className:t,column:o,onRemove:n,removable:r,...l})=>{if(r&&typeof n!="function")throw Error("ColumnHeaderPill onRemove prop must be provided if Pill is removable");let s=(0,sr.useCallback)(i=>{i.preventDefault(),i.stopPropagation(),n==null||n(o)},[o,n]);return(0,Ut.jsxs)("div",{...l,className:(0,lr.default)(rr,t),children:[e,r?(0,Ut.jsx)("span",{className:`${rr}-removeButton`,role:"button","data-icon":"cross",onClick:s}):null]})};var qe=require("react/jsx-runtime"),Io=({column:e,...t})=>{let{name:o,sorted:n}=e,r=typeof n=="number"?n<0?"arrow-down":"arrow-up":n==="A"?"arrow-up":n==="D"?"arrow-down":void 0;return(0,qe.jsxs)($e,{...t,column:e,children:[(0,qe.jsx)("span",{className:"vuuGroupColumnPill-label",children:o}),r!==void 0?(0,qe.jsx)("span",{"data-icon":r}):null,typeof n=="number"?(0,qe.jsx)("span",{className:"vuuSortPosition",children:Math.abs(n)}):null]})};var At=require("react/jsx-runtime"),ir=({column:e})=>{if(!e.sorted)return null;let t=typeof e.sorted=="number"?e.sorted<0?"arrow-down":"arrow-up":e.sorted==="A"?"arrow-up":"arrow-down";return(0,At.jsxs)($e,{column:e,children:[(0,At.jsx)("span",{"data-icon":t}),typeof e.sorted=="number"?(0,At.jsx)("span",{className:"vuuSortPosition",children:Math.abs(e.sorted)}):null]})};var ar=require("react/jsx-runtime"),Hs=require("react");var cr=W(require("classnames")),tt=require("react");var _t=require("@vuu-ui/vuu-layout");var et=require("react/jsx-runtime"),ur=require("react"),Vo="vuuTableNextGroupHeaderCell",Es=(e,t)=>e===t?e:t,Lt=({column:e,className:t,onRemoveColumn:o,onResize:n,...r})=>{let l=(0,tt.useRef)(null),{isResizing:s,...i}=St({column:e,onResize:n,rootRef:l}),[a,c]=(0,tt.useState)(e.columns),{className:u,style:d}=we(e,Vo,!0),m=a.length>1?{removable:!0,onRemove:o}:void 0,b=(0,tt.useCallback)((y,h)=>{c(T=>{let x=T.slice(),[v]=x.splice(y,1);return h===-1?x.concat(v):(x.splice(h,0,v),x)})},[]);return(0,_t.useLayoutEffectSkipFirst)(()=>{c(y=>Es(y,e.columns))},[e.columns]),(0,et.jsxs)("div",{...r,className:(0,cr.default)(u,"vuuTableNextHeaderCell",t,{[`${Vo}-pending`]:e.groupConfirmed===!1}),ref:l,role:"columnheader",style:d,children:[(0,et.jsx)(_t.OverflowContainer,{allowDragDrop:!0,className:`${Vo}-inner`,height:24,onMoveItem:b,overflowPosition:"start",children:a.map(y=>(0,ur.createElement)(Io,{...m,column:y,key:y.key}))}),(0,et.jsx)($e,{column:e,removable:!0,onRemove:o}),e.resizeable!==!1?(0,et.jsx)(Et,{...i}):null]})};var Jt=require("react");var mr=require("@vuu-ui/vuu-popups"),pr=W(require("classnames")),Fe=require("react");var fr=require("react/jsx-runtime"),Ss=e=>{if(e){let{bottom:t,left:o}=e.getBoundingClientRect();return{x:o,y:t+6}}},dr=({className:e,column:t,...o})=>{let n=(0,Fe.useRef)(null),[r,l]=(0,Fe.useState)(!1),[s]=(0,mr.useContextMenu)(),i=(0,Fe.useCallback)(()=>{l(!1)},[]),a=(0,Fe.useCallback)(c=>{l(!0),s(c,"column-menu",{column:t,ContextMenuProps:{onClose:i,position:Ss(n.current)}})},[t,i,s]);return(0,fr.jsx)("span",{...o,className:(0,pr.default)("vuuTable-columnMenu",e,{"vuuTable-columnMenu-open":r}),"data-icon":"more-vert",onClick:a,ref:n})};var Cr=W(require("classnames"));var Oe=require("react/jsx-runtime"),$o="vuuTableNextHeaderCell",br=({className:e,column:t,onClick:o,onResize:n,...r})=>{var h;let l=(0,Jt.useRef)(null),{isResizing:s,...i}=St({column:t,onResize:n,rootRef:l}),a=(0,Jt.useCallback)(T=>{console.log(`click isResizing ${s}`),!s&&(o==null||o(T))},[s,o]),{className:c,style:u}=we(t,$o,!0),d=(0,Oe.jsx)(dr,{column:t}),m=(0,Oe.jsx)("div",{className:`${$o}-label`,children:(h=t.label)!=null?h:t.name}),b=(0,Oe.jsx)(ir,{column:t}),y=t.align==="right"?[b,m,d]:[d,m,b];return(0,Oe.jsxs)("div",{...r,className:(0,Cr.default)(c,e,{[`${$o}-resizing`]:s}),onClick:a,ref:l,role:"columnheader",style:u,children:[...y,t.resizeable!==!1?(0,Oe.jsx)(Et,{...i}):null]})};var el=require("@vuu-ui/vuu-popups"),st=require("@vuu-ui/vuu-utils"),Jo=W(require("classnames")),to=require("react");var ee=require("@vuu-ui/vuu-utils"),wr=W(require("classnames")),Kt=require("react");var gr=require("@vuu-ui/vuu-utils"),Fo=require("react");var Oo=require("react/jsx-runtime"),{IDX:As}=gr.metadataKeys,Ls="vuuTableNextCell",hr=({column:e,columnMap:t,onClick:o,onDataEdited:n,row:r})=>{let{className:l,style:s}=we(e,Ls),{CellRenderer:i,name:a,valueFormatter:c}=e,u=t[a],d=(0,Fo.useCallback)(b=>(n==null||n(r[As],a,b),!0),[a,n,r]),m=(0,Fo.useCallback)(b=>{o==null||o(b,e)},[e,o]);return(0,Oo.jsx)("div",{className:l,onClick:o?m:void 0,role:"cell",style:s,children:i?(0,Oo.jsx)(i,{column:e,columnMap:t,onCommit:d,row:r}):c(r[u])})};var Xt=require("@vuu-ui/vuu-utils"),vr=require("react");var yr=W(require("classnames"));var ot=require("react/jsx-runtime"),{IS_LEAF:Ks}=Xt.metadataKeys,Go="vuuTableNextGroupCell",Tr=({column:e,onClick:t,row:o})=>{let{columns:n}=e,[r,l]=(0,Xt.getGroupValueAndOffset)(n,o),{className:s,style:i}=we(e,Go),a=(0,vr.useCallback)(d=>{t==null||t(d,e)},[e,t]),c=o[Ks],u=Array(l).fill(0).map((d,m)=>(0,ot.jsx)("span",{className:`${Go}-spacer`},m));return(0,ot.jsxs)("div",{className:(0,yr.default)(s,"vuuTableNextCell"),role:"cell",style:i,onClick:c?void 0:a,children:[u,c?null:(0,ot.jsx)("span",{className:`${Go}-toggle`,"data-icon":"triangle-right"}),(0,ot.jsx)("span",{children:r})]})};var Qt=require("react/jsx-runtime"),Dr=require("react"),{IDX:ks,IS_EXPANDED:Ns,SELECTED:zs}=ee.metadataKeys,Se="vuuTableNextRow",Wo=(0,Kt.memo)(({className:e,columnMap:t,columns:o,row:n,offset:r,onClick:l,onDataEdited:s,onToggleGroup:i,zebraStripes:a=!1,...c})=>{let{[ks]:u,[Ns]:d,[zs]:m}=n,b=(0,Kt.useCallback)(D=>{let w=D.shiftKey,p=D.ctrlKey||D.metaKey;l==null||l(n,w,p)},[l,n]),{True:y,First:h,Last:T}=ee.RowSelected,x=(0,wr.default)(Se,e,{[`${Se}-even`]:a&&u%2===0,[`${Se}-expanded`]:d,[`${Se}-selected`]:m&y,[`${Se}-selectedStart`]:m&h,[`${Se}-selectedEnd`]:m&T}),v={transform:`translate3d(0px, ${r}px, 0px)`},C=(0,Kt.useCallback)((D,w)=>{((0,ee.isGroupColumn)(w)||(0,ee.isJsonGroup)(w,n))&&(D.stopPropagation(),i==null||i(n,w))},[i,n]);return(0,Dr.createElement)("div",{...c,"aria-rowindex":n[0],key:`row-${n[0]}`,role:"row",className:x,onClick:b,style:v},(0,Qt.jsx)("span",{className:`${Se}-selectionDecorator vuuStickyLeft`}),o.filter(ee.notHidden).map(D=>{let w=(0,ee.isGroupColumn)(D),p=(0,ee.isJsonColumn)(D);return(0,Qt.jsx)(w?Tr:hr,{column:D,columnMap:t,onClick:w||p?C:void 0,onDataEdited:s,row:n},D.key)}),(0,Qt.jsx)("span",{className:`${Se}-selectionDecorator vuuStickyRight`}))});Wo.displayName="Row";var Yr=require("@vuu-ui/vuu-layout"),Zr=require("@vuu-ui/vuu-table-extras"),jr=require("@vuu-ui/vuu-ui-controls");var U=require("react");var Bo=e=>`.vuuTableNext-col-headers .vuuTableNextHeaderCell:nth-child(${e})`,Uo=(e,t)=>`.vuuTableNext-body > [aria-rowindex='${e}'] > [role='cell']:nth-child(${t+1})`,Mr=(e,[t,o])=>{var l;let n=t===-1?Bo(o):Uo(t,o),r=(l=e.current)==null?void 0:l.querySelector(n);return Is(r)&&r.querySelector("button")||r},Is=e=>e.classList.contains("vuuTableNextCell-editable"),Rr=e=>e.querySelector(".vuuTableInputCell")!==null;var Vs=new Set(["Home","End","PageUp","PageDown","ArrowDown","ArrowLeft","ArrowRight","ArrowUp"]),$s=e=>Vs.has(e),Fs=["Home","End","PageUp","PageDown"],Os=e=>Fs.includes(e),Gs=[-1,-1],Ws=[void 0,void 0],Bs=e=>{var o,n;let t=(o=e.closest(".vuuTableNext"))==null?void 0:o.querySelector(".vuuTableNext-scrollbarContainer");if(t){let r=t==null?void 0:t.getBoundingClientRect(),l=(n=e.closest(".vuuTableNextCell"))==null?void 0:n.getBoundingClientRect();if(l)return l.bottom>r.bottom?["down",l.bottom-r.bottom]:l.top<r.top?["up",l.top-r.top]:l.right<r.right?["right",l.right-r.right]:l.left<r.left?["left",l.left-r.left]:Ws;throw Error("Whats going on, cell not found")}else throw Error("Whats going on, scrollbar container not found")};function Us(e,[t,o],n,r){return e==="ArrowUp"?t>-1?[t-1,o]:[t,o]:e==="ArrowDown"?t===-1?[0,o]:t===r-1?[t,o]:[t+1,o]:e==="ArrowRight"?o<n-1?[t,o+1]:[t,o]:e==="ArrowLeft"?o>1?[t,o-1]:[t,o]:[t,o]}var xr=({columnCount:e=0,containerRef:t,disableHighlightOnFocus:o,requestScroll:n,rowCount:r=0,viewportRowCount:l})=>{var w;let s=(0,U.useRef)([-1,-1]),i=(0,U.useRef)(),a=(0,U.useRef)([-1,0]),c=p=>p==null?void 0:p.closest("[role='columnHeader'],[role='cell']"),u=p=>{var f,M;if(p.role==="columnHeader")return[-1,parseInt((f=p.dataset.idx)!=null?f:"-1",10)];{let P=p.closest("[role='row']");if(P){let g=parseInt((M=P.ariaRowIndex)!=null?M:"-1",10),E=Array.from(P.childNodes).indexOf(p);return[g,E]}}return Gs},d=(0,U.useCallback)(p=>{var f;if(t.current){let M=Mr(t,p);if(M){M!==i.current&&((f=i.current)==null||f.removeAttribute("tabindex"),i.current=M,M.setAttribute("tabindex","0"));let[P,g]=Bs(M);P&&g&&(n==null||n({type:"scroll-distance",distance:g,direction:P})),M.focus()}}},[t,n]),m=(0,U.useCallback)((p,f,M=!1)=>{let P=[p,f];a.current=P,d(P),M&&(s.current=P)},[d]),b=(0,U.useCallback)((p,[f,M])=>new Promise(P=>{let g=f;switch(p){case"PageDown":g=Math.min(r-1,f+l),n==null||n({type:"scroll-page",direction:"down"});break;case"PageUp":g=Math.max(0,f-l),n==null||n({type:"scroll-page",direction:"up"});break;case"Home":g=0,n==null||n({type:"scroll-end",direction:"home"});break;case"End":g=r-1,n==null||n({type:"scroll-end",direction:"end"});break}setTimeout(()=>{P([g,M])},90)}),[n,r,l]),y=(0,U.useCallback)(()=>{var p;if(o!==!0&&(p=t.current)!=null&&p.contains(document.activeElement)){let f=c(document.activeElement);f&&(console.log({focusedCell:f}),s.current=u(f))}},[o,t]),h=(0,U.useCallback)(async p=>{console.log(`navigate child items ${p}`);let[f,M]=Os(p)?await b(p,a.current):Us(p,a.current,e,r);console.log(`nextRowIdx ${f} nextColIdx ${M}`);let[P,g]=a.current;(f!==P||M!==g)&&m(f,M,!0)},[e,b,r,m]),T=(0,U.useCallback)(p=>{r>0&&$s(p.key)&&(p.preventDefault(),p.stopPropagation(),h(p.key))},[r,h]),x=(0,U.useCallback)(p=>{let f=p.target,M=c(f);if(M){let[P,g]=u(M);m(P,g)}},[m]),v=(0,U.useCallback)(()=>{h("ArrowDown")},[h]),C=(0,U.useMemo)(()=>({navigate:v,onClick:x,onFocus:y,onKeyDown:T}),[x,y,T,v]),D=((w=t.current)==null?void 0:w.firstChild)!=null;return(0,U.useEffect)(()=>{if(D&&i.current===void 0){let{current:p}=t,f=(p==null?void 0:p.querySelector(Bo(0)))||(p==null?void 0:p.querySelector(Uo(0,0)));f&&(f.setAttribute("tabindex","0"),i.current=f)}},[t,D]),C};var _=require("@vuu-ui/vuu-utils"),k=require("react");var Yt=(e,t)=>{switch(t.type){case"col-size":return{...e,columns:e.columns.map(o=>o.name===t.column.name?{...o,width:t.width}:o)};case"column-prop":return{...e,columns:e.columns.map(o=>o.name===t.column.name?{...o,[t.property]:t.value}:o)};default:return e}};var qt=require("@vuu-ui/vuu-data-react/src"),Ge=require("@vuu-ui/vuu-utils"),J=require("react");var jt=require("@vuu-ui/vuu-utils"),{SELECTED:_s}=jt.metadataKeys,Zt=class{constructor({from:t,to:o}){this.rowCount=0;this.setRowCount=t=>{t<this.data.length&&(this.data.length=t),this.rowCount=t};this.range=new jt.WindowRange(t,o),this.data=new Array(o-t),this.rowCount=0}add(t){let[o]=t;if(this.isWithinRange(o)){let n=o-this.range.from;this.data[n]=t}}getAtIndex(t){return this.range.isWithin(t)&&this.data[t-this.range.from]!=null?this.data[t-this.range.from]:void 0}isWithinRange(t){return this.range.isWithin(t)}setRange({from:t,to:o}){if(t!==this.range.from||o!==this.range.to){let[n,r]=this.range.overlap(t,o),l=new Array(Math.max(0,o-t));for(let s=n;s<r;s++){let i=this.getAtIndex(s);if(i){let a=s-t;l[a]=i}}this.data=l,this.range.from=t,this.range.to=o}}getSelectedRows(){return this.data.filter(t=>t[_s]!==0)}};var Pr=({dataSource:e,onFeatureEnabled:t,onFeatureInvocation:o,onSizeChange:n,onSubscribed:r,range:l=Ge.NULL_RANGE,renderBufferSize:s=0})=>{let[,i]=(0,J.useState)(null),a=(0,J.useRef)([]),c=(0,J.useRef)(!0),u=(0,J.useRef)(!1),d=(0,J.useRef)(Ge.NULL_RANGE),m=(0,J.useMemo)(()=>new Zt((0,Ge.getFullRange)(l,s)),[]),b=(0,J.useCallback)(T=>{for(let x of T)m.add(x);a.current=m.data,c.current&&i({})},[m]),y=(0,J.useCallback)(T=>{T.type==="subscribed"?r==null||r(T):T.type==="viewport-update"?(typeof T.size=="number"&&(n==null||n(T.size),m.setRowCount(T.size)),T.rows?b(T.rows):typeof T.size=="number"&&(a.current=m.data,u.current=!0)):(0,qt.isVuuFeatureAction)(T)?t==null||t(T):(0,qt.isVuuFeatureInvocation)(T)?o==null||o(T):console.log(`useDataSource unexpected message ${T.type}`)},[m,t,o,n,r,b]);(0,J.useEffect)(()=>()=>{c.current=!0,c.current=!1},[]),(0,J.useEffect)(()=>{e==null||e.subscribe({range:(0,Ge.getFullRange)(l,s)},y)},[e,y,l,s]);let h=(0,J.useCallback)(T=>{let x=(0,Ge.getFullRange)(T,s);m.setRange(x),e.range=d.current=x,e.emit("range",T)},[e,m,s]);return{data:a.current,range:d.current,setRange:h}};var eo=require("react"),Hr=e=>{let t=(0,eo.useRef)(e);return(0,eo.useMemo)(()=>t.current,[])};var Er=require("@vuu-ui/vuu-utils"),Sr=require("react"),Ar=require("@vuu-ui/vuu-popups"),Lr=({columns:e,data:t})=>{let[o]=(0,Ar.useContextMenu)();return(0,Sr.useCallback)(r=>{var a;let l=r.target,s=l==null?void 0:l.closest("div[role='cell']"),i=l==null?void 0:l.closest("div[role='row']");if(s&&i){let c=(0,Er.buildColumnMap)(e),u=parseInt((a=i.ariaRowIndex)!=null?a:"-1"),d=Array.from(i.childNodes).indexOf(s),m=t.find(([y])=>y===u),b=e[d];o(r,"grid",{columnMap:c,columnName:b,row:m})}},[e,t,o])};var Kr=require("@vuu-ui/vuu-utils"),kt=require("react");var kr=({navigate:e})=>{let t=(0,kt.useCallback)(()=>{e()},[e]),o=(0,kt.useCallback)(l=>{let s=l.target,i=s.querySelector("input");i&&(i.focus(),i.select()),s.addEventListener("vuu-commit",t,!0)},[t]),n=(0,kt.useCallback)(l=>{let s=l.target,i=s.querySelector("input");i&&(i.focus(),i.select()),s.addEventListener("vuu-commit",t,!0)},[t]);return{onKeyDown:(0,kt.useCallback)(l=>{Rr(l.target)&&((0,Kr.isCharacterKey)(l.key)?o(l):l.key==="Enter"&&n(l))},[o,n])}};var A=require("@vuu-ui/vuu-utils"),Nr=require("@vuu-ui/vuu-ui-controls"),zr=require("react"),{info:_o}=(0,A.logger)("useTableModel"),Js=100,Xs=A.metadataKeys.count,Qs=({serverDataType:e})=>e===void 0,Ys=e=>{var t;if((0,A.isTypeDescriptor)(e.type))return(0,A.getCellRenderer)((t=e.type)==null?void 0:t.renderer)},Zs=(e,t)=>{var n;let o=t.columns.find(({name:r})=>r===e.name);return o?o.serverDataType:(n=e.serverDataType)!=null?n:"string"},js=["int","long","double"],Ir=e=>e===void 0?void 0:js.includes(e)?"right":"left",Vr=e=>e.type==="columnSettings",$r=e=>e.type==="tableSettings",qs=(e,t)=>{switch(_o==null||_o(`TableModelReducer ${t.type}`),console.log(`TableModelReducer ${t.type}`),t.type){case"init":return console.log({init:t}),Or(t);case"moveColumn":return ti(e,t);case"resizeColumn":return ri(e,t);case"setTableSchema":return li(e,t);case"hideColumns":return oi(e,t);case"showColumns":return ni(e,t);case"pinColumn":return si(e,t);case"updateColumnProp":return rt(e,t);case"tableConfig":return Wr(e,t);default:return console.log(`unhandled action ${t.type}`),e}},Fr=(e,t)=>{let[o,n]=(0,zr.useReducer)(qs,{tableConfig:e,dataSourceConfig:t},Or),{columns:r,headings:l,tableConfig:s,...i}=o;return{columns:r,dispatchColumnAction:n,headings:l,tableAttributes:i,tableConfig:s}};function Or({dataSourceConfig:e,tableConfig:t}){let{columns:o,...n}=t,r=o.filter((0,A.subscribedOnly)(e==null?void 0:e.columns)).map(Gr(n)),l=r.some(A.isPinned)?(0,A.sortPinnedColumns)(r):r,s={columns:l,headings:(0,A.getTableHeadings)(l),tableConfig:t,...n};if(e){let{columns:i,...a}=e;s=Wr(s,{type:"tableConfig",...a})}return s}var ei=(e,t)=>t==="uppercase"?e.toUpperCase():t==="capitalize"?e[0].toUpperCase()+e.slice(1).toLowerCase():e,Gr=e=>(t,o)=>{let{columnDefaultWidth:n=Js,columnFormatHeader:r}=e,{align:l=Ir(t.serverDataType),key:s,name:i,label:a=i,width:c=n,...u}=t,d={...u,align:l,CellRenderer:Ys(t),clientSideEditValidationCheck:(0,A.hasValidationRules)(t.type)?(0,Nr.buildValidationChecker)(t.type.renderer.rules):void 0,label:ei(a,r),key:s!=null?s:o+Xs,name:i,originalIdx:o,valueFormatter:(0,A.getValueFormatter)(t),width:c};return(0,A.isGroupColumn)(d)&&(d.columns=d.columns.map(m=>Gr(e)(m,m.key))),d};function ti(e,{column:t,moveBy:o,moveTo:n}){let{columns:r}=e;if(typeof o=="number"){let l=r.indexOf(t),s=r.slice(),[i]=s.splice(l,1);return s.splice(l+o,0,i),{...e,columns:s}}else if(typeof n=="number"){let l=r.indexOf(t);return{...e,columns:(0,A.moveItem)(r,l,n)}}return e}function oi(e,{columns:t}){return t.some(o=>o.hidden!==!0)?t.reduce((o,n)=>n.hidden!==!0?rt(o,{type:"updateColumnProp",column:n,hidden:!0}):o,e):e}function ni(e,{columns:t}){return t.some(o=>o.hidden)?t.reduce((o,n)=>n.hidden?rt(o,{type:"updateColumnProp",column:n,hidden:!1}):o,e):e}function ri(e,{column:t,phase:o,width:n}){let r="updateColumnProp",l=o!=="end";switch(o){case"begin":return rt(e,{type:r,column:t,resizing:l});case"end":return rt(e,{type:r,column:t,resizing:l,width:n});case"resize":return rt(e,{type:r,column:t,width:n});default:throw Error(`useTableModel.resizeColumn, invalid resizePhase ${o}`)}}function li(e,{tableSchema:t}){let{columns:o}=e;if(o.some(Qs)){let n=o.map(r=>{var s;let l=Zs(r,t);return{...r,align:(s=r.align)!=null?s:Ir(l),serverDataType:l}});return{...e,columns:n}}else return e}function si(e,t){let{columns:o}=e,{column:n,pin:r}=t,l=o.find(s=>s.name===n.name);return l?(o=nt(o,{...l,pin:r}),o=(0,A.sortPinnedColumns)(o),{...e,columns:o}):e}function rt(e,t){let{columns:o}=e,{align:n,column:r,hidden:l,label:s,resizing:i,width:a}=t,c=o.find(u=>u.name===r.name);return c&&((n==="left"||n==="right")&&(o=nt(o,{...c,align:n})),typeof s=="string"&&(o=nt(o,{...c,label:s})),typeof i=="boolean"&&(o=nt(o,{...c,resizing:i})),typeof l=="boolean"&&(o=nt(o,{...c,hidden:l})),typeof a=="number"&&(o=nt(o,{...c,width:a}))),{...e,columns:o}}function Wr(e,{confirmed:t,filter:o,groupBy:n,sort:r}){let l=n!==void 0,s=typeof(o==null?void 0:o.filter)=="string",i=r&&r.sortDefs.length>0,a=e;return l&&(a={...e,columns:(0,A.applyGroupByToColumns)(a.columns,n,t)}),i&&(a={...e,columns:(0,A.applySortToColumns)(a.columns,r)}),s?a={...e,columns:(0,A.applyFilterToColumns)(a.columns,o)}:a.columns.some(A.isFilteredColumn)&&(a={...e,columns:(0,A.stripFilterFromColumns)(a.columns)}),a}function nt(e,t){return e.map(o=>o.name===t.name?t:o)}var Q=require("react"),Br=e=>{let{scrollLeft:t,scrollTop:o}=e,{clientHeight:n,clientWidth:r,scrollHeight:l,scrollWidth:s}=e,i=t/(s-r),a=o/(l-n);return[i,a]},Ur=({onAttach:e,onDetach:t})=>{let o=(0,Q.useRef)(null);return(0,Q.useCallback)(r=>{if(r)o.current=r,e==null||e(r);else if(o.current){let{current:l}=o;o.current=r,t==null||t(l)}},[e,t])},_r=({maxScrollLeft:e,maxScrollTop:t,onHorizontalScroll:o,onVerticalScroll:n,rowHeight:r,viewportRowCount:l})=>{let s=(0,Q.useRef)(!1),i=(0,Q.useRef)({scrollTop:0,scrollLeft:0}),a=(0,Q.useRef)(null),c=(0,Q.useRef)(null),u=(0,Q.useCallback)(()=>{let{current:C}=c,{current:D}=a,{current:w}=s;if(w)s.current=!1;else if(C&&D){let[p,f]=Br(D),M=Math.round(p*e),P=Math.round(f*t);C.scrollTo({left:M,top:P,behavior:"auto"})}},[e,t]),d=(0,Q.useCallback)(()=>{let{current:C}=c,{current:D}=a,{current:w}=i;if(C&&D){let{scrollLeft:p,scrollTop:f}=C,[M,P]=Br(C);s.current=!0,D.scrollLeft=Math.round(M*e),D.scrollTop=Math.round(P*t),w.scrollTop!==f&&(w.scrollTop=f,n==null||n(f,P)),w.scrollLeft!==p&&(w.scrollLeft=p,o==null||o(p))}},[e,t,o,n]),m=(0,Q.useCallback)(C=>{a.current=C,C.addEventListener("scroll",u,{passive:!0})},[u]),b=(0,Q.useCallback)(C=>{a.current=null,C.removeEventListener("scroll",u)},[u]),y=(0,Q.useCallback)(C=>{c.current=C,C.addEventListener("scroll",d,{passive:!0})},[d]),h=(0,Q.useCallback)(C=>{c.current=null,C.removeEventListener("scroll",d)},[d]),T=Ur({onAttach:y,onDetach:h}),x=Ur({onAttach:m,onDetach:b}),v=(0,Q.useCallback)(C=>{let{current:D}=c;if(D){let{scrollLeft:w,scrollTop:p}=D;if(s.current=!1,C.type==="scroll-distance"){let f=w,M=p;C.direction==="up"||C.direction==="down"?M=Math.min(Math.max(0,p+C.distance),t):f=Math.min(Math.max(0,w+C.distance),e),D.scrollTo({top:M,left:f,behavior:"auto"})}else if(C.type==="scroll-page"){let{direction:f}=C,M=l*(f==="down"?r:-r),P=Math.min(Math.max(0,p+M),t);D.scrollTo({top:P,left:w,behavior:"auto"})}else if(C.type==="scroll-end"){let{direction:f}=C,M=f==="end"?t:0;D.scrollTo({top:M,left:D.scrollLeft,behavior:"auto"})}}},[e,t,r,l]);return{scrollbarContainerRef:x,contentContainerRef:T,requestScroll:v}};var lt=require("react"),Jr=({columns:e,getRowAtPosition:t,setRange:o,viewportMeasurements:n})=>{let r=(0,lt.useRef)(0),{contentWidth:l,rowCount:s}=n,i=(0,lt.useCallback)(a=>{let c=t(a);c!==r.current&&(r.current=c,o({from:c,to:c+s}))},[t,o,s]);return(0,lt.useEffect)(()=>{let{current:a}=r,c={from:a,to:a+s};o(c)},[o,s]),{onVerticalScroll:i}};var{KEY:ii,IS_EXPANDED:Xr,IS_LEAF:Qr}=_.metadataKeys,ai=(e,t)=>({...e,columns:e.columns.concat(t)}),qr=({availableColumns:e,config:t,containerRef:o,dataSource:n,headerHeight:r=25,onAvailableColumnsChange:l,onConfigChange:s,onFeatureEnabled:i,onFeatureInvocation:a,onRowClick:c,onSelect:u,onSelectionChange:d,renderBufferSize:m=0,rowHeight:b=20,selectionModel:y})=>{let[h,T]=(0,k.useState)(n.size);if(n===void 0)throw Error("no data source provided to Vuu Table");let[x,v]=(0,k.useState)(),C=(0,k.useCallback)(R=>{v(R)},[]),D=(0,k.useMemo)(()=>bt(n),[n]),w=(0,k.useCallback)(R=>{T(R)},[]),{columns:p,dispatchColumnAction:f,headings:M,tableAttributes:P,tableConfig:g}=Fr(t,n.config);(0,Yr.useLayoutEffectSkipFirst)(()=>{f({type:"init",dataSourceConfig:n.config,tableConfig:g})},[g,n.config,f]);let[E,L]=(0,k.useState)(),[H,O]=(0,k.useMemo)(()=>{let R=(N,z)=>{let re=(0,_.updateColumn)(p,N,{width:z});L(re)};return[E!=null?E:p,R]},[p,E]),me=(0,k.useMemo)(()=>(0,_.buildColumnMap)(n.columns),[n.columns]),{getRowAtPosition:Ae,getRowOffset:Nt,setPctScrollTop:zt,...ie}=xt({columns:H,headerHeight:r,headings:M,rowCount:h,rowHeight:b,size:x}),at=Hr({from:0,to:ie.rowCount}),Le=(0,k.useCallback)(({tableSchema:R})=>{R||console.log("usbscription message with no schema")},[]),{data:de,range:te,setRange:ct}=Pr({dataSource:n,onFeatureEnabled:i,onFeatureInvocation:a,renderBufferSize:m,onSizeChange:w,onSubscribed:Le,range:at}),ut=(0,k.useCallback)(R=>{f({type:"init",tableConfig:R,dataSourceConfig:n.config}),s==null||s(R)},[n.config,f,s]),mt=(0,k.useCallback)(R=>{n.config={...n.config,...R}},[n]),Y=(0,k.useCallback)(R=>{n.columns=n.columns.concat(R.name);let N=ai(g,R);f({type:"init",tableConfig:N,dataSourceConfig:n.config}),s==null||s(N)},[n,f,s,g]);(0,k.useEffect)(()=>{n.on("config",(R,N)=>{f({type:"tableConfig",...R,confirmed:N})})},[n,f]);let{showColumnSettingsPanel:fe,showTableSettingsPanel:It}=(0,Zr.useTableAndColumnSettings)({availableColumns:e!=null?e:g.columns.map(({name:R,serverDataType:N="string"})=>({name:R,serverDataType:N})),onAvailableColumnsChange:l,onConfigChange:ut,onCreateCalculatedColumn:Y,onDataSourceConfigChange:mt,tableConfig:g}),so=(0,k.useCallback)(R=>{Vr(R)?fe(R):$r(R)?It():f(R)},[f,fe,It]),io=gt({dataSource:n,onPersistentColumnOperation:so}),pt=(0,k.useCallback)((R,N=!1,z)=>{n&&(n.sort=(0,_.applySort)(n.sort,R,N,z))},[n]),ao=(0,k.useCallback)((R,N,z)=>{let re=H.find(be=>be.name===N);if(re)R==="resize"?(0,_.isValidNumber)(z)&&O(N,z):R==="end"?(0,_.isValidNumber)(z)&&(f({type:"resizeColumn",phase:R,column:re,width:z}),s==null||s(Yt(g,{type:"col-size",column:re,width:z}))):(L(void 0),f({type:"resizeColumn",phase:R,column:re,width:z}));else throw Error(`useDataTable.handleColumnResize, column ${N} not found`)},[H,g,f,s,O]),Vt=(0,k.useCallback)((R,N)=>{let z=(0,_.isJsonGroup)(N,R),re=R[ii];if(R[Xr]){if(n.closeTreeNode(re,!0),z){let be=H.indexOf(N);n.getRowsAtDepth(be+1).some(ge=>ge[Xr]||ge[Qr])||f({type:"hideColumns",columns:H.slice(be+2)})}}else if(n.openTreeNode(re),z){let be=n.getChildRows(re),ft=H.indexOf(N)+1,ge=[H[ft]];be.some(bo=>bo[Qr])&&ge.push(H[ft+1]),ge.some(bo=>bo.hidden)&&f({type:"showColumns",columns:ge})}},[H,n,f]),{onVerticalScroll:dt}=Jr({columns:H,getRowAtPosition:Ae,setRange:ct,viewportMeasurements:ie}),K=(0,k.useCallback)(R=>{dt(R)},[dt]),{requestScroll:$,...Z}=_r({maxScrollLeft:ie.maxScrollContainerScrollHorizontal,maxScrollTop:ie.maxScrollContainerScrollVertical,rowHeight:b,onVerticalScroll:K,viewportRowCount:ie.rowCount}),{navigate:G,onKeyDown:oe,...Ce}=xr({columnCount:H.filter(R=>R.hidden!==!0).length,containerRef:o,requestScroll:$,rowCount:n==null?void 0:n.size,viewportRange:te,viewportRowCount:ie.rowCount}),{onKeyDown:ne}=kr({navigate:G}),De=(0,k.useCallback)(R=>{oe(R),R.defaultPrevented||ne(R)},[oe,ne]),co=Lr({columns:H,data:de}),uo=(0,k.useCallback)(R=>{var ge;let z=R.target.closest(".vuuTableNextHeaderCell"),re=parseInt((ge=z==null?void 0:z.dataset.index)!=null?ge:"-1"),be=(0,_.visibleColumnAtIndex)(H,re),ft=R.shiftKey;be&&pt(be,ft)},[H,pt]),mo=(0,k.useCallback)(R=>{(0,_.isGroupColumn)(R)?n.groupBy=[]:n&&n.groupBy.includes(R.name)&&(n.groupBy=n.groupBy.filter(N=>N!==R.name))},[n]),po=(0,k.useCallback)(R=>{n.select(R),d==null||d(R)},[n,d]),$t=Rt({onSelect:u,onSelectionChange:po,selectionModel:y}),fo=(0,k.useCallback)((R,N,z)=>{$t(R,N,z),c==null||c(R)},[c,$t]);(0,k.useEffect)(()=>{n.on("config",(R,N)=>{f({type:"tableConfig",...R,confirmed:N})})},[n,f]);let Co=(0,k.useCallback)((R,N)=>{let z=H[R];f({type:"moveColumn",column:z,moveTo:N})},[H,f]),cl=(0,k.useCallback)((R,N,z)=>n.applyEdit(R,N,z),[n]),{onMouseDown:ul,...ml}=(0,jr.useDragDropNext)({allowDragDrop:!0,containerRef:o,draggableClassName:"vuuTableNext",onDrop:Co,orientation:"horizontal",itemQuery:".vuuTableNextHeaderCell"});return{...Ce,onKeyDown:De,columnMap:me,columns:H,data:de,handleContextMenuAction:io,headerProps:{onClick:uo,onMouseDown:ul,onResize:ao},menuBuilder:D,onContextMenu:co,onDataEdited:cl,onRemoveGroupColumn:mo,onResize:C,onRowClick:fo,onToggleGroup:Vt,scrollProps:Z,tableAttributes:P,viewportMeasurements:ie,dragDropHook:ml}};var oo=require("@vuu-ui/vuu-layout"),tl=require("@salt-ds/core");var se=require("react/jsx-runtime"),Xo=require("react"),ue="vuuTableNext",{IDX:ci,RENDER_IDX:ui}=st.metadataKeys,ol=(0,to.forwardRef)(function({Row:t=Wo,availableColumns:o,className:n,config:r,dataSource:l,id:s,onAvailableColumnsChange:i,onConfigChange:a,onFeatureEnabled:c,onFeatureInvocation:u,onRowClick:d,onSelect:m,onSelectionChange:b,onShowConfigEditor:y,renderBufferSize:h=0,rowHeight:T=20,selectionModel:x="extended",showColumnHeaders:v=!0,headerHeight:C=v?25:0,style:D,...w},p){let f=(0,oo.useId)(s),M=(0,to.useRef)(null),{columnMap:P,columns:g,data:E,dragDropHook:L,handleContextMenuAction:H,headerProps:O,onDataEdited:me,onRemoveGroupColumn:Ae,onResize:Nt,onRowClick:zt,onToggleGroup:ie,menuBuilder:at,scrollProps:Le,tableAttributes:de,viewportMeasurements:te,...ct}=qr({availableColumns:o,config:r,containerRef:M,dataSource:l,headerHeight:C,onAvailableColumnsChange:i,onConfigChange:a,onFeatureEnabled:c,onFeatureInvocation:u,onRowClick:d,onSelect:m,onSelectionChange:b,renderBufferSize:h,rowHeight:T,selectionModel:x}),ut=()=>({...D,"--content-height":`${te.contentHeight}px`,"--horizontal-scrollbar-height":`${te.horizontalScrollbarHeight}px`,"--content-width":`${te.contentWidth}px`,"--pinned-width-left":`${te.pinnedWidthLeft}px`,"--pinned-width-right":`${te.pinnedWidthRight}px`,"--header-height":`${C}px`,"--row-height":`${T}px`,"--total-header-height":`${te.totalHeaderHeight}px`,"--vertical-scrollbar-width":`${te.verticalScrollbarWidth}px`,"--viewport-body-height":`${te.viewportBodyHeight}px`}),mt=(0,Jo.default)(ue,n,{[`${ue}-colLines`]:de.columnSeparators,[`${ue}-rowLines`]:de.rowSeparators,[`${ue}-zebra`]:de.zebraStripes});return(0,se.jsx)(el.ContextMenuProvider,{menuActionHandler:H,menuBuilder:at,children:(0,se.jsxs)(oo.MeasuredContainer,{...w,className:mt,onResize:Nt,ref:(0,tl.useForkRef)(M,p),style:ut(),children:[(0,se.jsx)("div",{className:`${ue}-scrollbarContainer`,ref:Le.scrollbarContainerRef,children:(0,se.jsx)("div",{className:`${ue}-scrollbarContent`})}),(0,se.jsx)("div",{className:`${ue}-contentContainer`,ref:Le.contentContainerRef,children:(0,se.jsxs)("div",{...ct,className:`${ue}-table`,tabIndex:-1,children:[v?(0,se.jsx)("div",{className:`${ue}-col-headings`,children:(0,se.jsxs)("div",{className:`${ue}-col-headers`,role:"row",children:[g.filter(st.notHidden).map((Y,fe)=>(0,st.isGroupColumn)(Y)?(0,Xo.createElement)(Lt,{...O,column:Y,"data-index":fe,key:Y.name,onRemoveColumn:Ae}):(0,Xo.createElement)(br,{...O,className:(0,Jo.default)({"vuuDraggable-dragAway":fe===L.draggedItemIndex}),column:Y,"data-index":fe,id:`${f}-col-${fe}`,key:Y.name})),L.draggable]})}):null,(0,se.jsx)("div",{className:`${ue}-body`,children:E.map(Y=>(0,se.jsx)(t,{columnMap:P,columns:g,onClick:zt,onDataEdited:me,row:Y,offset:T*Y[ci]+C,onToggleGroup:ie,zebraStripes:de.zebraStripes},Y[ui]))})]})})]})})});var nl=require("@vuu-ui/vuu-ui-controls"),it=require("@vuu-ui/vuu-utils");var no=require("react"),rl=require("react/jsx-runtime"),mi="vuuTableDropdownCell",pi=["Enter"," "],di=({column:e,columnMap:t,row:o})=>{var a,c,u;let n=(0,it.isTypeDescriptor)(e.type)&&(0,it.isColumnTypeRenderer)((a=e.type)==null?void 0:a.renderer)?(u=(c=e.type)==null?void 0:c.renderer)==null?void 0:u.values:[],r=t[e.name],[l,s]=(0,no.useState)(o[r]),i=(0,no.useCallback)((d,m)=>{m&&s(m)},[]);return(0,rl.jsx)(nl.Dropdown,{className:mi,onSelectionChange:i,openKeys:pi,selected:l,source:n,width:e.width-17})};(0,it.registerComponent)("dropdown-cell",di,"cell-renderer",{});var ll=require("@vuu-ui/vuu-utils"),sl=require("@salt-ds/core"),il=require("@vuu-ui/vuu-ui-controls"),al=W(require("classnames"));var lo=require("react/jsx-runtime"),ro="vuuTableInputCell",fi=()=>(console.warn("onCommit handler has not been provided to InputCell cell renderer"),!0),Ci=({column:e,columnMap:t,onCommit:o=fi,row:n})=>{let r=t[e.name],{align:l="left",clientSideEditValidationCheck:s,valueFormatter:i}=e,{warningMessage:a,...c}=(0,il.useEditableText)({initialValue:i(n[r]),onCommit:o,clientSideEditValidationCheck:s}),u=a&&l==="left"?(0,lo.jsx)("span",{className:`${ro}-icon`,"data-icon":"error"}):void 0,d=a&&l==="right"?(0,lo.jsx)("span",{className:`${ro}-icon`,"data-icon":"error"}):void 0;return(0,lo.jsx)(sl.Input,{...c,className:(0,al.default)(ro,{[`${ro}-error`]:a!==void 0}),endAdornment:u,startAdornment:d})};(0,ll.registerComponent)("input-cell",Ci,"cell-renderer",{});
|
|
1
|
+
"use strict";var Cl=Object.create;var Gt=Object.defineProperty;var bl=Object.getOwnPropertyDescriptor;var gl=Object.getOwnPropertyNames;var hl=Object.getPrototypeOf,vl=Object.prototype.hasOwnProperty;var yl=(e,t)=>{for(var o in t)Gt(e,o,{get:t[o],enumerable:!0})},Yo=(e,t,o,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let r of gl(t))!vl.call(e,r)&&r!==o&&Gt(e,r,{get:()=>t[r],enumerable:!(n=bl(t,r))||n.enumerable});return e};var W=(e,t,o)=>(o=e!=null?Cl(hl(e)):{},Yo(t||!e||!e.__esModule?Gt(o,"default",{value:e,enumerable:!0}):o,e)),Tl=e=>Yo(Gt({},"__esModule",{value:!0}),e);var vi={};yl(vi,{ColumnResizer:()=>ft,GroupHeaderCellNext:()=>At,Table:()=>Ms,TableNext:()=>rl,buildContextMenuDescriptors:()=>Ct,isShowColumnSettings:()=>is,isShowTableSettings:()=>as,updateTableConfig:()=>jt,useMeasuredContainer:()=>ko,useSelection:()=>Mt,useTableColumnResize:()=>yt,useTableContextMenu:()=>bt,useTableModel:()=>No,useTableViewport:()=>Rt});module.exports=Tl(vi);var Be=require("react");var jo=require("react/jsx-runtime"),Zo=()=>{},wl="vuuColumnResizer",ft=({onDrag:e,onDragEnd:t=Zo,onDragStart:o=Zo})=>{let n=(0,Be.useRef)(0),r=(0,Be.useCallback)(i=>{i.stopPropagation&&i.stopPropagation(),i.preventDefault&&i.preventDefault();let a=Math.round(i.clientX),c=a-n.current;n.current=a,c!==0&&e(i,c)},[e]),l=(0,Be.useCallback)(i=>{window.removeEventListener("mouseup",l),window.removeEventListener("mousemove",r),t(i)},[t,r]),s=(0,Be.useCallback)(i=>{o(i),n.current=Math.round(i.clientX),window.addEventListener("mouseup",l),window.addEventListener("mousemove",r),i.stopPropagation&&i.stopPropagation(),i.preventDefault&&i.preventDefault()},[o,r,l]);return(0,jo.jsx)("div",{className:wl,"data-align":"end",onMouseDown:s})};var qo=require("@vuu-ui/vuu-utils"),Ct=e=>(t,o)=>{let n=[];if(e===void 0)return n;if(t==="header"||t==="column-menu")n.push(...Dl(o,e)),n.push(...xl(o,e)),n.push(...Ml(o,e)),n.push(...Rl(o)),n.push({action:"column-settings",icon:"cog",label:"Column Settings",options:o}),n.push({action:"table-settings",icon:"cog",label:"DataGrid Settings",options:o});else if(t==="filter"){let{column:r,filter:l}=o,s=(l==null?void 0:l.column)===(r==null?void 0:r.name);n.push({label:"Edit filter",action:"filter-edit",options:o}),n.push({label:"Remove filter",action:"filter-remove-column",options:o}),r&&!s&&n.push({label:"Remove all filters",action:"remove-filters",options:o})}return n};function Dl(e,{sort:{sortDefs:t}}){let{column:o}=e,n=[];if(o===void 0)return n;let r=t.length>0;return o.sorted==="A"?n.push({label:"Reverse Sort (DSC)",action:"sort-dsc",options:e}):o.sorted==="D"?n.push({label:"Reverse Sort (ASC)",action:"sort-asc",options:e}):typeof o.sorted=="number"?(o.sorted>0?n.push({label:"Reverse Sort (DSC)",action:"sort-add-dsc",options:e}):n.push({label:"Reverse Sort (ASC)",action:"sort-add-asc",options:e}),r&&Math.abs(o.sorted)<t.length&&n.push({label:"Remove from sort",action:"sort-remove",options:e}),n.push({label:"New Sort",children:[{label:"Ascending",action:"sort-asc",options:e},{label:"Descending",action:"sort-dsc",options:e}]})):r?(n.push({label:"Add to sort",children:[{label:"Ascending",action:"sort-add-asc",options:e},{label:"Descending",action:"sort-add-dsc",options:e}]}),n.push({label:"New Sort",children:[{label:"Ascending",action:"sort-asc",options:e},{label:"Descending",action:"sort-dsc",options:e}]})):n.push({label:"Sort",children:[{label:"Ascending",action:"sort-asc",options:e},{label:"Descending",action:"sort-dsc",options:e}]}),n}function Ml(e,t){let{column:o}=e;if(o===void 0||t.groupBy.length===0)return[];let{name:n,label:r=n}=o;return[{label:`Aggregate ${r}`,children:[{label:"Count",action:"agg-count",options:e},{label:"Distinct",action:"agg-distinct",options:e}].concat((0,qo.isNumericColumn)(o)?[{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 yo=(e,t)=>({label:`Pin ${t}`,action:`column-pin-${t}`,options:e}),go=e=>yo(e,"left"),ho=e=>yo(e,"floating"),vo=e=>yo(e,"right");function Rl(e){let{column:t}=e;if(t===void 0)return[];let{pin:o}=t,n=[{label:"Hide column",action:"column-hide",options:e},{label:"Remove column",action:"column-remove",options:e}];return o===void 0?n.push({label:"Pin column",children:[go(e),ho(e),vo(e)]}):o==="left"?n.push({label:"Unpin column",action:"column-unpin",options:e},{label:"Pin column",children:[ho(e),vo(e)]}):o==="right"?n.push({label:"Unpin column",action:"column-unpin",options:e},{label:"Pin column",children:[go(e),ho(e)]}):o==="floating"&&n.push({label:"Unpin column",action:"column-unpin",options:e},{label:"Pin column",children:[go(e),vo(e)]}),n}function xl(e,{groupBy:t}){let{column:o}=e,n=[];if(o===void 0)return n;let{name:r,label:l=r}=o;return t.length===0?n.push({label:`Group by ${l}`,action:"group",options:e}):n.push({label:`Add ${l} to group by`,action:"group-add",options:e}),n}var en=require("@vuu-ui/vuu-utils"),B=require("@vuu-ui/vuu-utils"),Pl=(e,t)=>{if(e.filterStruct&&t){let[o,n]=(0,en.removeColumnFromFilter)(t,e.filterStruct);return{filter:n,filterStruct:o}}else return e},{Average:Hl,Count:El,Distinct:Sl,High:Al,Low:Ll,Sum:Kl}=B.AggregationType,bt=({dataSource:e,onPersistentColumnOperation:t})=>n=>{let r=n.options;if(r.column&&e){let{column:l}=r;switch(n.menuId){case"sort-asc":return e.sort=(0,B.setSortColumn)(e.sort,l,"A"),!0;case"sort-dsc":return e.sort=(0,B.setSortColumn)(e.sort,l,"D"),!0;case"sort-add-asc":return e.sort=(0,B.addSortColumn)(e.sort,l,"A"),!0;case"sort-add-dsc":return e.sort=(0,B.addSortColumn)(e.sort,l,"D"),!0;case"group":return e.groupBy=(0,B.addGroupColumn)(e.groupBy,l),!0;case"group-add":return e.groupBy=(0,B.addGroupColumn)(e.groupBy,l),!0;case"column-hide":return t({type:"hideColumns",columns:[l]}),!0;case"column-remove":return e.columns=e.columns.filter(s=>s!==l.name),!0;case"filter-remove-column":return e.filter=Pl(e.filter,l),!0;case"remove-filters":return e.filter={filter:""},!0;case"agg-avg":return e.aggregations=(0,B.setAggregations)(e.aggregations,l,Hl),!0;case"agg-high":return e.aggregations=(0,B.setAggregations)(e.aggregations,l,Al),!0;case"agg-low":return e.aggregations=(0,B.setAggregations)(e.aggregations,l,Ll),!0;case"agg-count":return e.aggregations=(0,B.setAggregations)(e.aggregations,l,El),!0;case"agg-distinct":return e.aggregations=(0,B.setAggregations)(e.aggregations,l,Sl),!0;case"agg-sum":return e.aggregations=(0,B.setAggregations)(e.aggregations,l,Kl),!0;case"column-pin-floating":return t({type:"pinColumn",column:l,pin:"floating"}),!0;case"column-pin-left":return t({type:"pinColumn",column:l,pin:"left"}),!0;case"column-pin-right":return t({type:"pinColumn",column:l,pin:"right"}),!0;case"column-unpin":return t({type:"pinColumn",column:l,pin:void 0}),!0;case"column-settings":return t({type:"columnSettings",column:l}),!0;case"table-settings":return t({type:"tableSettings"}),!0;default:}}return!1};var Yn=require("@vuu-ui/vuu-popups"),_t=require("@salt-ds/core");var re=require("@vuu-ui/vuu-utils"),Xe=require("react");var j=require("@vuu-ui/vuu-utils"),an=W(require("classnames")),ht=require("react");var Wt=require("@vuu-ui/vuu-utils"),on=require("@vuu-ui/vuu-ui-controls"),nn=W(require("classnames")),ve=require("react");var gt=require("react/jsx-runtime"),{KEY:tn}=Wt.metadataKeys,To=(0,ve.memo)(({className:e,column:t,columnMap:o,onClick:n,row:r})=>{let l=(0,ve.useRef)(null),{align:s,CellRenderer:i,key:a,pin:c,editable:u,resizing:p,valueFormatter:m}=t,[C,h]=(0,ve.useState)(!1),v=m(r[a]),[T,x]=(0,ve.useState)(v),g=()=>{var H;(H=l.current)==null||H.focus()},f=H=>{H.key==="Enter"&&h(!0)},M=(0,ve.useCallback)(H=>{n==null||n(H,t)},[t,n]),D=()=>{h(!0)},w=(H="",y="",R=!0,A=!1)=>{var S;h(!1),A?x(H):y!==H&&x(y),R===!1&&((S=l.current)==null||S.focus())},d=(0,nn.default)(e,{vuuAlignRight:s==="right",vuuPinFloating:c==="floating",vuuPinLeft:c==="left",vuuPinRight:c==="right","vuuTableCell-resizing":p})||void 0,b=(0,Wt.getColumnStyle)(t);return u?(0,gt.jsx)("div",{className:d,"data-editable":!0,role:"cell",style:b,onKeyDown:f,children:(0,gt.jsx)(on.EditableLabel,{editing:C,value:T,onChange:x,onMouseDownCapture:g,onEnterEditMode:D,onExitEditMode:w,onKeyDown:f,ref:l,tabIndex:0},"title")}):(0,gt.jsx)("div",{className:d,role:"cell",style:b,onClick:M,children:i?(0,gt.jsx)(i,{column:t,columnMap:o,row:r}):v})},kl);To.displayName="TableCell";function kl(e,t){return e.column===t.column&&e.onClick===t.onClick&&e.row[tn]===t.row[tn]&&e.row[e.column.key]===t.row[t.column.key]}var _e=require("@vuu-ui/vuu-utils"),rn=require("react");var Ue=require("react/jsx-runtime"),{IS_LEAF:Nl}=_e.metadataKeys,ln=({column:e,onClick:t,row:o})=>{let{columns:n}=e,[r,l]=(0,_e.getGroupValueAndOffset)(n,o),s=(0,rn.useCallback)(u=>{t==null||t(u,e)},[e,t]),i=(0,_e.getColumnStyle)(e),a=o[Nl],c=Array(l).fill(0).map((u,p)=>(0,Ue.jsx)("span",{className:"vuuTableGroupCell-spacer"},p));return(0,Ue.jsxs)("div",{className:"vuuTableGroupCell vuuPinLeft",onClick:a?void 0:s,role:"cell",style:i,children:[c,a?null:(0,Ue.jsx)("span",{className:"vuuTableGroupCell-toggle","data-icon":"triangle-right"}),(0,Ue.jsx)("span",{children:r})]})};var vt=require("react/jsx-runtime"),{IDX:zl,IS_EXPANDED:Il,SELECTED:Vl}=j.metadataKeys,{True:sn,First:$l,Last:Fl}=j.RowSelected,Je="vuuTableRow",cn=(0,ht.memo)(function({columnMap:t,columns:o,offset:n,onClick:r,onToggleGroup:l,virtualColSpan:s=0,row:i}){let{[zl]:a,[Il]:c,[Vl]:u}=i,p=(0,an.default)(Je,{[`${Je}-even`]:a%2===0,[`${Je}-expanded`]:c,[`${Je}-selected`]:u&sn,[`${Je}-selectedStart`]:u&$l,[`${Je}-selectedEnd`]:u&Fl}),m=(0,ht.useCallback)(h=>{let v=h.shiftKey,T=h.ctrlKey||h.metaKey;r==null||r(i,v,T)},[r,i]),C=(0,ht.useCallback)((h,v)=>{((0,j.isGroupColumn)(v)||(0,j.isJsonGroup)(v,i))&&(h.stopPropagation(),l==null||l(i,v))},[l,i]);return(0,vt.jsxs)("div",{"aria-selected":u&sn?!0:void 0,"aria-rowindex":a,className:p,onClick:m,role:"row",style:{transform:`translate3d(0px, ${n}px, 0px)`},children:[s>0?(0,vt.jsx)("div",{role:"cell",style:{width:s}}):null,o.filter(j.notHidden).map(h=>{let v=(0,j.isGroupColumn)(h),T=(0,j.isJsonColumn)(h);return(0,vt.jsx)(v?ln:To,{column:h,columnMap:t,onClick:v||T?C:void 0,row:i},h.name)})]})});var wo=W(require("classnames")),mn=require("react");var Le=require("react"),yt=({column:e,onResize:t,rootRef:o})=>{let n=(0,Le.useRef)(0),r=(0,Le.useRef)(!1),{name:l}=e,s=(0,Le.useCallback)(()=>{if(t&&o.current){console.log("handleResizeStart");let{width:c}=o.current.getBoundingClientRect();n.current=Math.round(c),r.current=!0,t==null||t("begin",l)}},[l,t,o]),i=(0,Le.useCallback)((c,u)=>{if(o.current&&t){let{width:p}=o.current.getBoundingClientRect(),m=Math.round(p)+u;m!==n.current&&m>0&&(t("resize",l,m),n.current=m)}},[l,t,o]),a=(0,Le.useCallback)(()=>{t&&(t("end",l,n.current),setTimeout(()=>{r.current=!1},100))},[l,t]);return{isResizing:r.current,onDrag:i,onDragStart:s,onDragEnd:a}};var ue=require("react/jsx-runtime"),Me="vuuTable-groupHeaderCell",un=({column:e,onClick:t,...o})=>(0,ue.jsx)("span",{...o,className:`${Me}-close`,"data-icon":"close-circle",onClick:()=>t==null?void 0:t(e)}),Ol=e=>{let{children:t,column:o,className:n}=e;return(0,ue.jsxs)("div",{className:(0,wo.default)(`${Me}-col`,n),role:"columnheader",children:[(0,ue.jsx)("span",{className:`${Me}-label`,children:o.name}),t]})},pn=({column:e,className:t,onRemoveColumn:o,onResize:n,...r})=>{let l=(0,mn.useRef)(null),{isResizing:s,...i}=yt({column:e,onResize:n,rootRef:l}),a=(0,wo.default)(Me,t,{vuuPinLeft:e.pin==="left",[`${Me}-right`]:e.align==="right",[`${Me}-resizing`]:e.resizing,[`${Me}-pending`]:e.groupConfirmed===!1}),{columns:c}=e;return(0,ue.jsx)("div",{className:a,ref:l,...r,children:(0,ue.jsxs)("div",{className:`${Me}-inner`,children:[c.map(u=>(0,ue.jsx)(Ol,{column:u,children:c.length>1?(0,ue.jsx)(un,{column:u,onClick:o}):null},u.key)),(0,ue.jsx)(un,{"data-align":"end",onClick:o}),e.resizeable!==!1?(0,ue.jsx)(ft,{...i}):null]})})};var yn=W(require("classnames")),ke=require("react");var Do=W(require("classnames"));var Ke=require("react/jsx-runtime"),dn="vuuSortIndicator",fn=({sorted:e})=>{if(!e)return null;let t=typeof e=="number"?e<0?"dsc":"asc":e==="A"?"asc":"dsc";return typeof e=="number"?(0,Ke.jsxs)("div",{className:(0,Do.default)(dn,"multi-col",t),children:[(0,Ke.jsx)("span",{"data-icon":`sorted-${t}`}),(0,Ke.jsx)("span",{className:"vuuSortPosition",children:Math.abs(e)})]}):(0,Ke.jsx)("div",{className:(0,Do.default)(dn,"single-col"),children:(0,Ke.jsx)("span",{"data-icon":`sorted-${t}`})})};var Tn=require("@vuu-ui/vuu-popups");var Cn=require("@vuu-ui/vuu-popups"),bn=W(require("classnames")),gn=require("react");var vn=require("react/jsx-runtime");var hn=({column:e,filter:t})=>{let[o]=(0,Cn.useContextMenu)(),n=(0,gn.useCallback)(r=>{r.stopPropagation(),o(r,"filter",{column:e,filter:t})},[e,t,o]);return e.filter?(0,vn.jsx)("div",{className:(0,bn.default)("vuuFilterIndicator"),"data-icon":"filter",onClick:n}):null};var Re=require("react/jsx-runtime"),Tt="vuuTable-headerCell",wn=({column:e,className:t,onClick:o,onDragStart:n,onResize:r,...l})=>{let s=(0,ke.useRef)(null),{isResizing:i,...a}=yt({column:e,onResize:r,rootRef:s}),[c]=(0,Tn.useContextMenu)(),u=(0,ke.useRef)(null),p=T=>{c(T,"header",{column:e})},m=(0,ke.useCallback)(T=>!i&&(o==null?void 0:o(T)),[i,o]),C=(0,ke.useCallback)(T=>{u.current=window.setTimeout(()=>{n==null||n(T),u.current=null},500)},[n]),h=(0,ke.useCallback)(()=>{u.current!==null&&(window.clearTimeout(u.current),u.current=null)},[]),v=(0,yn.default)(Tt,t,{vuuPinFloating:e.pin==="floating",vuuPinLeft:e.pin==="left",vuuPinRight:e.pin==="right",vuuEndPin:e.endPin,[`${Tt}-resizing`]:e.resizing,[`${Tt}-right`]:e.align==="right"});return(0,Re.jsx)("div",{className:v,...l,onClick:m,onContextMenu:p,onMouseDown:C,onMouseUp:h,ref:s,children:(0,Re.jsxs)("div",{className:`${Tt}-inner`,children:[(0,Re.jsx)(hn,{column:e}),(0,Re.jsx)("div",{className:`${Tt}-label`,children:e.label}),(0,Re.jsx)(fn,{sorted:e.sorted}),e.resizeable!==!1?(0,Re.jsx)(ft,{...a}):null]})})};var me=require("react/jsx-runtime"),Mo="vuuTable",{RENDER_IDX:Gl}=re.metadataKeys,Dn=({columns:e,columnsWithinViewport:t,data:o,getRowOffset:n,headings:r,onColumnResize:l,onHeaderCellDragStart:s,onContextMenu:i,onRemoveColumnFromGroupBy:a,onRowClick:c,onSort:u,onToggleGroup:p,tableId:m,virtualColSpan:C=0,rowCount:h})=>{let v=(0,Xe.useCallback)(f=>{s==null||s(f)},[s]),T=(0,Xe.useMemo)(()=>e.filter(re.notHidden),[e]),x=(0,Xe.useMemo)(()=>(0,re.buildColumnMap)(e),[e]),g=(0,Xe.useCallback)(f=>{var H;let D=f.target.closest(".vuuTable-headerCell"),w=parseInt((H=D==null?void 0:D.dataset.idx)!=null?H:"-1"),d=(0,re.visibleColumnAtIndex)(e,w),b=f.shiftKey;d&&u(d,b)},[e,u]);return(0,me.jsxs)("div",{"aria-rowcount":h,className:`${Mo}-table`,role:"table",children:[(0,me.jsxs)("div",{className:`${Mo}-headers`,role:"rowGroup",children:[r.map((f,M)=>(0,me.jsx)("div",{className:"vuuTable-heading",children:f.map(({label:D,width:w},d)=>(0,me.jsx)("div",{className:"vuuTable-headingCell",style:{width:w},children:D},d))},M)),(0,me.jsx)("div",{role:"row",children:T.map((f,M)=>{let D=(0,re.getColumnStyle)(f);return(0,re.isGroupColumn)(f)?(0,me.jsx)(pn,{column:f,"data-idx":M,onRemoveColumn:a,onResize:l,role:"columnHeader",style:D},M):(0,me.jsx)(wn,{column:f,"data-idx":M,id:`${m}-${M}`,onClick:g,onDragStart:v,onResize:l,role:"columnHeader",style:D},M)})})]}),(0,me.jsx)("div",{className:`${Mo}-body`,onContextMenu:i,role:"rowGroup",children:o==null?void 0:o.map(f=>(0,me.jsx)(cn,{columnMap:x,columns:t,offset:n(f),onClick:c,virtualColSpan:C,onToggleGroup:p,row:f},f[Gl]))})]})};var Xn=require("@vuu-ui/vuu-popups"),fe=require("@vuu-ui/vuu-utils"),V=require("react");var Bt=require("@vuu-ui/vuu-data-react"),xe=require("@vuu-ui/vuu-utils"),$=require("react"),{SELECTED:wt}=xe.metadataKeys;function Mn({dataSource:e,onConfigChange:t,onFeatureEnabled:o,onFeatureInvocation:n,onSizeChange:r,onSubscribed:l,range:s={from:0,to:0},renderBufferSize:i=0,viewportRowCount:a}){let[,c]=(0,$.useState)(null),u=(0,$.useRef)(!0),p=(0,$.useRef)(!1),m=(0,$.useRef)({from:0,to:0}),C=(0,$.useRef)(null),h=(0,$.useRef)([]),v=(0,$.useMemo)(()=>new Ro((0,xe.getFullRange)(s)),[]),T=(0,$.useCallback)(w=>{for(let d of w)v.add(d);h.current=v.data,p.current=!0},[v]),x=(0,$.useCallback)(w=>{w.type==="subscribed"?l==null||l(w):w.type==="viewport-update"?(typeof w.size=="number"&&(r==null||r(w.size),v.setRowCount(w.size)),w.rows?T(w.rows):typeof w.size=="number"&&(h.current=v.data,p.current=!0)):(0,Bt.isVuuFeatureAction)(w)?o==null||o(w):(0,Bt.isVuuFeatureInvocation)(w)?n==null||n(w):console.log(`useDataSource unexpected message ${w.type}`)},[v,o,n,r,l,T]);(0,$.useEffect)(()=>()=>{C.current&&(cancelAnimationFrame(C.current),C.current=null),u.current=!1},[]);let g=(0,$.useCallback)(()=>{u.current&&(p.current&&(c({}),p.current=!1),C.current=requestAnimationFrame(g))},[c]);(0,$.useEffect)(()=>{C.current=requestAnimationFrame(g)},[g]);let f=(0,$.useCallback)(w=>{let{from:d}=e.range,b={from:d,to:d+w},H=(0,xe.getFullRange)(b,i);v.setRange(H),e.range=m.current=H,e.emit("range",b)},[e,v,i]),M=(0,$.useCallback)(w=>{let d=(0,xe.getFullRange)(w,i);v.setRange(d),e.range=m.current=d,e.emit("range",w)},[e,v,i]),D=(0,$.useCallback)(()=>v.getSelectedRows(),[v]);return(0,$.useEffect)(()=>{e==null||e.subscribe({range:m.current},x)},[e,x,t]),(0,$.useEffect)(()=>{console.log(`adjust range as rowCount chnaged ${a}`),f(a)},[f,a]),{data:h.current,getSelectedRows:D,range:m.current,setRange:M,dataSource:e}}var Ro=class{constructor({from:t,to:o}){this.rowCount=0;this.setRowCount=t=>{t<this.data.length&&(this.data.length=t),this.rowCount=t};this.range=new xe.WindowRange(t,o),this.data=new Array(o-t),this.rowCount=0}add(t){var n;let[o]=t;if(this.isWithinRange(o)){let r=o-this.range.from;this.data[r]=t;let l=t[wt],s=(n=this.data[r-1])==null?void 0:n[wt];s===0&&l?this.data[r-1][wt]=2:s===2&&!l&&(this.data[r-1][wt]=0)}}getAtIndex(t){return this.range.isWithin(t)&&this.data[t-this.range.from]!=null?this.data[t-this.range.from]:void 0}isWithinRange(t){return this.range.isWithin(t)}setRange({from:t,to:o}){if(t!==this.range.from||o!==this.range.to){let[n,r]=this.range.overlap(t,o),l=new Array(Math.max(0,o-t));for(let s=n;s<r;s++){let i=this.getAtIndex(s);if(i){let a=s-t;l[a]=i}}this.data=l,this.range.from=t,this.range.to=o}}getSelectedRows(){return this.data.filter(t=>t[wt]!==0)}};var Rn=require("@vuu-ui/vuu-ui-controls"),Qe=require("react"),xn=({onDrop:e})=>{let t=(0,Qe.useRef)(),o=(0,Qe.useRef)(null),n=(0,Qe.useCallback)(()=>{console.log("handleDropSettle"),t.current=void 0,o.current=null},[]),{draggable:r,draggedItemIndex:l,onMouseDown:s}=(0,Rn.useDragDropNext)({allowDragDrop:!0,draggableClassName:"vuuTable-headerCell",orientation:"horizontal",containerRef:o,itemQuery:".vuuTable-headerCell",onDrop:e,onDropSettle:n}),i=(0,Qe.useCallback)(a=>{let{clientX:c,clientY:u}=a;console.log("useDraggableColumn handleHeaderCellDragStart means mouseDown fired on a column in RowBasedTable");let m=a.target.closest(".vuuTable-headerCell");o.current=m==null?void 0:m.closest("[role='row']");let{dataset:{idx:C="-1"}}=m;t.current={clientX:c,clientY:u,idx:C},s==null||s(a)},[s]);return{draggable:r,draggedItemIndex:l,onHeaderCellDragStart:i}};var An=require("@vuu-ui/vuu-utils"),O=require("react");function Wl(e,...t){let o=new Set(e);for(let n of t)for(let r of n)o.add(r);return o}var xo="ArrowUp",Po="ArrowDown",Ho="ArrowLeft",Eo="ArrowRight";var So="Home",Ao="End",Lo="PageUp",Ko="PageDown";var Bl=new Set(["Enter","Delete"," "]),Ul=new Set(["Tab"]),_l=new Set(["ArrowRight","ArrowLeft"]),Pn=new Set([So,Ao,Lo,Ko,Po,Ho,Eo,xo]),Jl=new Set(["F1","F2","F3","F4","F5","F6","F7","F8","F9","F10","F11","F12"]),za=Wl(Bl,Pn,_l,Jl,Ul);var Xl=["Home","End","PageUp","PageDown"],Hn=e=>Xl.includes(e),En=e=>Pn.has(e);var Sn=e=>`.vuuTable-headers .vuuTable-headerCell:nth-child(${e+1})`,Ql=(e,t)=>`.vuuTable-body > [aria-rowindex='${e}'] > [role='cell']:nth-child(${t+1})`,Yl=[-1,-1];function Zl(e,[t,o],n,r){return e===xo?t>-1?[t-1,o]:[t,o]:e===Po?t===-1?[0,o]:t===r-1?[t,o]:[t+1,o]:e===Eo?o<n-1?[t,o+1]:[t,o]:e===Ho?o>0?[t,o-1]:[t,o]:[t,o]}var Ln=({columnCount:e=0,containerRef:t,disableHighlightOnFocus:o,data:n,requestScroll:r,rowCount:l=0,viewportRange:s})=>{var H;let{from:i,to:a}=s,c=(0,O.useRef)([-1,-1]),u=(0,O.useRef)(),p=(0,O.useRef)([-1,0]),m=(0,O.useCallback)(([y,R])=>{var S;let A=y===-1?Sn(R):Ql(y,R);return(S=t.current)==null?void 0:S.querySelector(A)},[t]),C=y=>y==null?void 0:y.closest("[role='columnHeader'],[role='cell']"),h=y=>{var R,A;if(y.role==="columnHeader")return[-1,parseInt((R=y.dataset.idx)!=null?R:"-1",10)];{let S=y.closest("[role='row']");if(S){let k=parseInt((A=S.ariaRowIndex)!=null?A:"-1",10),te=Array.from(S.childNodes).indexOf(y);return[k,te]}}return Yl},v=(0,O.useCallback)(y=>{var R;if(t.current){let A=m(y);A?(A!==u.current&&((R=u.current)==null||R.setAttribute("tabindex",""),u.current=A,A.setAttribute("tabindex","0")),A.focus()):(0,An.withinRange)(y[0],s)||(u.current=void 0,r==null||r({type:"scroll-page",direction:"up"}))}},[t,m,r,s]),T=(0,O.useCallback)((y,R,A=!1)=>{let S=[y,R];p.current=S,v(S),A&&(c.current=S)},[v]),x=(0,O.useCallback)(()=>{var y;(y=u.current)==null||y.setAttribute("tabindex",""),u.current=void 0},[]),g=(0,O.useCallback)(async(y,R)=>{switch(y){case Ko:r==null||r({type:"scroll-page",direction:"down"});break;case Lo:r==null||r({type:"scroll-page",direction:"up"});break;case So:r==null||r({type:"scroll-end",direction:"home"});break;case Ao:r==null||r({type:"scroll-end",direction:"end"});break}return R},[r]),f=(0,O.useCallback)(()=>{var y;if(o!==!0&&(y=t.current)!=null&&y.contains(document.activeElement)){let R=C(document.activeElement);R&&(c.current=h(R))}},[o,t]),M=(0,O.useCallback)(async y=>{let[R,A]=Hn(y)?await g(y,p.current):Zl(y,p.current,e,l),[S,k]=p.current;(R!==S||A!==k)&&T(R,A,!0)},[e,g,l,T]),D=(0,O.useCallback)(y=>{n.length>0&&En(y.key)&&(y.preventDefault(),y.stopPropagation(),M(y.key))},[n,M]),w=(0,O.useCallback)(y=>{let R=y.target,A=C(R);if(A){let[S,k]=h(A);T(S,k)}},[T]),d=(0,O.useMemo)(()=>({onClick:w,onFocus:f,onKeyDown:D}),[w,f,D]);(0,O.useLayoutEffect)(()=>{let{current:y}=p,R=y[0]>=i&&y[0]<=a;u.current&&!R?x():!u.current&&R&&v(y)},[v,i,a,x]);let b=((H=t.current)==null?void 0:H.firstChild)!=null;return(0,O.useEffect)(()=>{var y;if(b&&u.current===void 0){let R=(y=t.current)==null?void 0:y.querySelector(Sn(0));R&&(R.setAttribute("tabindex","0"),u.current=R)}},[t,b]),d};var ye=require("@vuu-ui/vuu-utils"),Pe=require("react");var ze=require("react");var Ne=new Map,kn=(e,t,o)=>{switch(o){case"height":return t.height;case"clientHeight":return e.clientHeight;case"clientWidth":return e.clientWidth;case"contentHeight":return t.contentHeight;case"contentWidth":return t.contentWidth;case"scrollHeight":return Math.ceil(e.scrollHeight);case"scrollWidth":return Math.ceil(e.scrollWidth);case"width":return t.width;default:return 0}},Kn=new ResizeObserver(e=>{for(let t of e){let{target:o,borderBoxSize:n,contentBoxSize:r}=t,l=Ne.get(o);if(l){let[{blockSize:s,inlineSize:i}]=n,[{blockSize:a,inlineSize:c}]=r,{onResize:u,measurements:p}=l,m=!1;for(let[C,h]of Object.entries(p)){let v=kn(o,{height:s,width:i,contentHeight:a,contentWidth:c},C);v!==h&&(m=!0,p[C]=v)}m&&u&&u(p)}}});function Nn(e,t,o,n=!1){let r=(0,ze.useRef)(t),l=(0,ze.useCallback)(s=>{let{width:i,height:a}=s.getBoundingClientRect(),{clientWidth:c,clientHeight:u}=s;return r.current.reduce((p,m)=>(p[m]=kn(s,{width:i,height:a,contentHeight:u,contentWidth:c},m),p),{})},[]);(0,ze.useEffect)(()=>{let s=e.current;async function i(){Ne.set(s,{measurements:{}}),await document.fonts.ready;let a=Ne.get(s);if(a){let c=l(s);a.measurements=c,Kn.observe(s),n&&o(c)}else console.log("%cuseResizeObserver an target expected to be under observation wa snot found. This warrants investigation","font-weight:bold; color:red;")}if(s){if(Ne.has(s))throw Error("useResizeObserver attemping to observe same element twice");i()}return()=>{s&&Ne.has(s)&&(Kn.unobserve(s),Ne.delete(s))}},[l,e]),(0,ze.useEffect)(()=>{let s=e.current,i=Ne.get(s);if(i){if(r.current!==t){r.current=t;let a=l(s);i.measurements=a}i.onResize=o}},[t,l,e,o])}var jl=["clientHeight","clientWidth"],zn=e=>Number.isFinite(e),ql={height:"100%",width:"100%"},es=(e,t)=>(0,ye.isValidNumber)(e)&&(0,ye.isValidNumber)(t)?{height:`${e}px`,width:`${t}px`}:ql,ts=(e,t)=>{if((0,ye.isValidNumber)(e)&&(0,ye.isValidNumber)(t))return{height:e,width:t}},ko=({defaultHeight:e=0,defaultWidth:t=0,height:o,width:n})=>{let r=(0,Pe.useRef)(null),[l,s]=(0,Pe.useState)({css:es(o,n),inner:ts(o,n),outer:{height:o!=null?o:"100%",width:n!=null?n:"100%"}});(0,Pe.useMemo)(()=>{s(a=>{let{inner:c,outer:u}=a;if((0,ye.isValidNumber)(o)&&(0,ye.isValidNumber)(n)&&c&&u){let{height:p,width:m}=c,{height:C,width:h}=u;if(C!==o||h!==n){let v=(0,ye.isValidNumber)(C)?C-p:0,T=(0,ye.isValidNumber)(h)?h-m:0;return{...a,outer:{height:o,width:n},inner:{height:o-v,width:n-T}}}}return a})},[o,n]);let i=(0,Pe.useCallback)(({clientWidth:a,clientHeight:c})=>{s(u=>{let{css:p,inner:m,outer:C}=u;return zn(c)&&zn(a)&&(a!==(m==null?void 0:m.width)||c!==(m==null?void 0:m.height))?{css:p,outer:C,inner:{width:Math.floor(a)||t,height:Math.floor(c)||e}}:u})},[e,t]);return Nn(r,jl,i,!0),{containerRef:r,cssSize:l.css,outerSize:l.outer,innerSize:l.inner}};var He=require("@vuu-ui/vuu-utils"),Dt=require("react"),{IDX:os}=He.metadataKeys,ns=[],Mt=({selectionModel:e,onSelect:t,onSelectionChange:o})=>{let n=(0,Dt.useRef)(-1),r=(0,Dt.useRef)(ns);return(0,Dt.useCallback)((s,i,a)=>{let{[os]:c}=s,{current:u}=n,{current:p}=r,C=((0,He.isRowSelected)(s)?He.deselectItem:He.selectItem)(e,p,c,i,a,u);r.current=C,n.current=c,t==null||t(s),o==null||o(C)},[t,o,e])};var E=require("@vuu-ui/vuu-utils"),In=require("react"),rs=100,Vn=E.metadataKeys.count,ls=({serverDataType:e})=>e===void 0,ss=e=>{var t;if((0,E.isTypeDescriptor)(e.type))return(0,E.getCellRenderer)((t=e.type)==null?void 0:t.renderer)},$n=(e,t)=>{if(e.serverDataType)return e.serverDataType;if(t){let o=t.columns.find(n=>n.name===e.name);if(o)return o.serverDataType}return"string"},is=e=>e.type==="columnSettings",as=e=>e.type==="tableSettings",cs=(e,t)=>{switch(t.type){case"init":return Fn(t);case"moveColumn":return ps(e,t);case"resizeColumn":return Cs(e,t);case"setTableSchema":return bs(e,t);case"hideColumns":return ds(e,t);case"showColumns":return fs(e,t);case"pinColumn":return gs(e,t);case"updateColumnProp":return Ye(e,t);case"tableConfig":return On(e,t);default:return console.log(`unhandled action ${t.type}`),e}},No=(e,t)=>{let[o,n]=(0,In.useReducer)(cs,{tableConfig:e,dataSourceConfig:t},Fn);return{columns:o.columns,dispatchColumnAction:n,headings:o.headings}};function Fn({dataSourceConfig:e,tableConfig:t}){let o=t.columns.map(zo(t)),n=o.some(E.isPinned)?(0,E.sortPinnedColumns)(o):o,r={columns:n,headings:(0,E.getTableHeadings)(n)};if(e){let{columns:l,...s}=e;return On(r,{type:"tableConfig",...s})}else return r}var us=e=>(0,E.isCalculatedColumn)(e.name)?(0,E.getCalculatedColumnName)(e):e.name,ms=(e,t)=>t==="uppercase"?e.toUpperCase():t==="capitalize"?e[0].toUpperCase()+e.slice(1).toLowerCase():e,zo=e=>(t,o)=>{let n=$n(t,e.tableSchema),{columnDefaultWidth:r=rs,columnFormatHeader:l}=e,{align:s=(0,E.getDefaultAlignment)(n),key:i,name:a,label:c=us(t),width:u=r,...p}=t,m={...p,align:s,CellRenderer:ss(t),label:ms(c,l),key:i!=null?i:o+Vn,name:a,originalIdx:o,serverDataType:n,valueFormatter:(0,E.getValueFormatter)(t),width:u};return(0,E.isGroupColumn)(m)&&(m.columns=m.columns.map(C=>zo(e)(C,C.key))),m};function ps(e,{column:t,moveBy:o,moveTo:n}){let{columns:r}=e;if(typeof o=="number"){let l=r.indexOf(t),s=r.slice(),[i]=s.splice(l,1);return s.splice(l+o,0,i),{...e,columns:s}}else if(typeof n=="number")return{...e,columns:(0,E.moveItemDeprecated)(r,t,n)};return e}function ds(e,{columns:t}){return t.some(o=>o.hidden!==!0)?t.reduce((o,n)=>n.hidden!==!0?Ye(o,{type:"updateColumnProp",column:n,hidden:!0}):o,e):e}function fs(e,{columns:t}){return t.some(o=>o.hidden)?t.reduce((o,n)=>n.hidden?Ye(o,{type:"updateColumnProp",column:n,hidden:!1}):o,e):e}function Cs(e,{column:t,phase:o,width:n}){let r="updateColumnProp",l=o!=="end";switch(o){case"begin":return Ye(e,{type:r,column:t,resizing:l});case"end":return Ye(e,{type:r,column:t,resizing:l,width:n});case"resize":return Ye(e,{type:r,column:t,width:n});default:throw Error(`useTableModel.resizeColumn, invalid resizePhase ${o}`)}}function bs(e,{tableSchema:t}){let{columns:o}=e;if(o.some(ls)){let n=o.map(r=>{var s;let l=$n(r,t);return{...r,align:(s=r.align)!=null?s:(0,E.getDefaultAlignment)(l),serverDataType:l}});return{...e,columns:n,tableSchema:t}}else return{...e,tableSchema:t}}function gs(e,t){let{columns:o}=e,{column:n,pin:r}=t;return o=(0,E.updateColumn)(o,n.name,{pin:r}),o=(0,E.sortPinnedColumns)(o),console.log({withPins:o}),{...e,columns:o}}function Ye(e,t){let{columns:o}=e,{align:n,column:r,hidden:l,label:s,resizing:i,width:a}=t,c={};return(n==="left"||n==="right")&&(c.align=n),typeof s=="string"&&(c.label=s),typeof i=="boolean"&&(c.resizing=i),typeof l=="boolean"&&(c.hidden=l),typeof a=="number"&&(c.width=a),o=(0,E.updateColumn)(o,r.name,c),{...e,columns:o}}function On(e,{columns:t,confirmed:o,filter:n,groupBy:r,sort:l}){let s=t&&t.length>0,i=r!==void 0,a=typeof(n==null?void 0:n.filter)=="string",c=l&&l.sortDefs.length>0,u=e;return s&&(u={...e,columns:t.map((p,m)=>{let C=(0,E.getColumnName)(p),h=m+Vn,v=(0,E.findColumn)(u.columns,C);return v?v.key===h?v:{...v,key:h}:zo(e)({name:p},m)})}),i&&(u={...e,columns:(0,E.applyGroupByToColumns)(u.columns,r,o)}),c&&(u={...e,columns:(0,E.applySortToColumns)(u.columns,l)}),a?u={...e,columns:(0,E.applyFilterToColumns)(u.columns,n)}:u.columns.some(E.isFilteredColumn)&&(u={...e,columns:(0,E.stripFilterFromColumns)(u.columns)}),u}var X=require("react"),Gn=e=>{let{scrollLeft:t,scrollTop:o}=e,{clientHeight:n,clientWidth:r,scrollHeight:l,scrollWidth:s}=e,i=t/(s-r),a=o/(l-n);return[i,a]},hs=e=>{let{clientHeight:t,clientWidth:o,scrollHeight:n,scrollWidth:r}=e;return[r-o,n-t]},Wn=({onAttach:e,onDetach:t})=>{let o=(0,X.useRef)(null);return(0,X.useCallback)(r=>{if(r)o.current=r,e==null||e(r);else if(o.current){let{current:l}=o;o.current=r,t==null||t(l)}},[e,t])},Bn=({onHorizontalScroll:e,onVerticalScroll:t,viewport:o})=>{let n=(0,X.useRef)(!1),r=(0,X.useRef)({scrollTop:0,scrollLeft:0}),l=(0,X.useRef)(null),s=(0,X.useRef)(null),{maxScrollContainerScrollHorizontal:i,maxScrollContainerScrollVertical:a}=o,c=(0,X.useCallback)(()=>{let{current:g}=s,{current:f}=l,{current:M}=n;if(M)n.current=!1;else if(g&&f){let[D,w]=Gn(f),[d,b]=hs(g),H=Math.round(D*d),y=Math.round(w*b);console.log(`pctScrollTop ${w}, maxScrollTop ${b} rootScrollTop ${y}`),g.scrollTo({left:H,top:y,behavior:"auto"})}},[]),u=(0,X.useCallback)(()=>{let{current:g}=s,{current:f}=l,{current:M}=r;if(g&&f){let{scrollLeft:D,scrollTop:w}=g,[d,b]=Gn(g);n.current=!0,f.scrollLeft=Math.round(d*i),f.scrollTop=Math.round(b*a),M.scrollTop!==w&&(M.scrollTop=w,t==null||t(w,b)),M.scrollLeft!==D&&(M.scrollLeft=D,e==null||e(D))}},[i,a,e,t]),p=(0,X.useCallback)(g=>{l.current=g,g.addEventListener("scroll",c,{passive:!0})},[c]),m=(0,X.useCallback)(g=>{l.current=null,g.removeEventListener("scroll",c)},[c]),C=(0,X.useCallback)(g=>{s.current=g,g.addEventListener("scroll",u,{passive:!0})},[u]),h=(0,X.useCallback)(g=>{s.current=null,g.removeEventListener("scroll",u)},[u]),v=Wn({onAttach:C,onDetach:h}),T=Wn({onAttach:p,onDetach:m}),x=(0,X.useCallback)(g=>{let{current:f}=s;if(f){if(n.current=!1,g.type==="scroll-page"){let{clientHeight:M,scrollLeft:D,scrollTop:w}=f,{direction:d}=g,b=d==="down"?M:-M,H=Math.min(Math.max(0,w+b),a);f.scrollTo({top:H,left:D,behavior:"auto"})}else if(g.type==="scroll-end"){let{direction:M}=g,D=M==="end"?a:0;f.scrollTo({top:D,left:f.scrollLeft,behavior:"auto"})}}},[a]);return{scrollbarContainerRef:T,contentContainerRef:v,requestScroll:x}};var Te=require("react"),Ut=require("@vuu-ui/vuu-utils"),vs=15e5,ys={contentHeight:0,contentWidth:0,getRowAtPosition:()=>-1,getRowOffset:()=>-1,horizontalScrollbarHeight:0,maxScrollContainerScrollHorizontal:0,maxScrollContainerScrollVertical:0,pinnedWidthLeft:0,pinnedWidthRight:0,rowCount:0,setPctScrollTop:()=>{},totalHeaderHeight:0,verticalScrollbarWidth:0,viewportBodyHeight:0},Ts=e=>{let t=0,o=0,n=0;for(let r of e){let{hidden:l,pin:s,width:i}=r,a=l?0:i;s==="left"?t+=a:s==="right"?o+=a:n+=a}return{pinnedWidthLeft:t+4,pinnedWidthRight:o+4,unpinnedWidth:n}},Rt=({columns:e,headerHeight:t,headings:o,rowCount:n,rowHeight:r,size:l})=>{let s=(0,Te.useRef)(0),a=Math.min(n,vs)*r,u=n*r-a,{pinnedWidthLeft:p,pinnedWidthRight:m,unpinnedWidth:C}=(0,Te.useMemo)(()=>Ts(e),[e]),[h,v]=(0,Te.useMemo)(()=>(0,Ut.actualRowPositioning)(r),[r]),[T,x]=(0,Te.useMemo)(()=>u?(0,Ut.virtualRowPositioning)(r,u,s):[h,v],[v,h,u,r]),g=(0,Te.useCallback)(f=>{s.current=f},[]);return(0,Te.useMemo)(()=>{var f;if(l){let M=o.length,D=15,w=p+C+m,d=w>l.width?D:0,b=t*(1+M),H=a-(((f=l==null?void 0:l.height)!=null?f:0)-d)+b,y=w-l.width+p,R=(l.height-t)/r,A=Number.isInteger(R)?R+1:Math.ceil(R),S=l.height-b,k=a>S?D:0;return{contentHeight:a,getRowAtPosition:x,getRowOffset:T,horizontalScrollbarHeight:d,maxScrollContainerScrollHorizontal:y,maxScrollContainerScrollVertical:H,pinnedWidthLeft:p,pinnedWidthRight:m,rowCount:A,contentWidth:w,setPctScrollTop:g,totalHeaderHeight:b,verticalScrollbarWidth:k,viewportBodyHeight:S}}else return ys},[l,o.length,p,C,m,a,t,r,x,T,g])};var xt=require("@vuu-ui/vuu-utils"),q=require("react"),Un=({columns:e,getRowAtPosition:t,setRange:o,viewportMeasurements:n})=>{let r=(0,q.useRef)(-1),{rowCount:l,contentWidth:s,maxScrollContainerScrollHorizontal:i}=n,a=s-i,c=(0,q.useRef)(0),[u,p]=(0,q.useMemo)(()=>(0,xt.getColumnsInViewport)(e,c.current,c.current+a),[a,e]),m=(0,q.useRef)(p);(0,q.useEffect)(()=>{h(u)},[u]);let[C,h]=(0,q.useState)(u),v=(0,q.useCallback)(x=>{c.current=x;let[g,f]=(0,xt.getColumnsInViewport)(e,x,x+a);(0,xt.itemsChanged)(C,g)&&(m.current=f,h(g))},[a,e,C]),T=(0,q.useCallback)(x=>{let g=t(x);g!==r.current&&(r.current=g,console.log("setRange from handleVerticalScroll"),o({from:g,to:g+l}))},[t,o,l]);return{columnsWithinViewport:C,onHorizontalScroll:v,onVerticalScroll:T,virtualColSpan:m.current}};var ws=[],{KEY:Ds,IS_EXPANDED:_n,IS_LEAF:Jn}=fe.metadataKeys,Qn=({config:e,dataSource:t,headerHeight:o,onConfigChange:n,onFeatureEnabled:r,onFeatureInvocation:l,onSelectionChange:s,renderBufferSize:i=0,rowHeight:a,selectionModel:c,...u})=>{var $t,Ft;let[p,m]=(0,V.useState)(t.size),C=(0,V.useRef)(!1),h=(0,V.useRef)();if(h.current=t,t===void 0)throw Error("no data source provided to Vuu Table");let v=ko(u),T=(0,V.useCallback)(K=>{m(K)},[]),{columns:x,dispatchColumnAction:g,headings:f}=No(e,t.config),{getRowAtPosition:M,getRowOffset:D,setPctScrollTop:w,...d}=Rt({columns:x,headerHeight:o,headings:f,rowCount:p,rowHeight:a,size:v.innerSize}),b=(0,V.useCallback)(({tableSchema:K})=>{K?(C.current=!0,g({type:"setTableSchema",tableSchema:K})):console.log("usbscription message with no schema")},[g]),H=(0,V.useCallback)(K=>{t.select(K),s==null||s(K)},[t,s]),y=Mt({onSelectionChange:H,selectionModel:c}),{data:R,getSelectedRows:A,range:S,setRange:k}=Mn({dataSource:t,onFeatureEnabled:r,onFeatureInvocation:l,onSubscribed:b,onSizeChange:T,renderBufferSize:i,viewportRowCount:d.rowCount}),te=(0,V.useRef)();te.current=R;let Ae=(0,V.useCallback)(K=>{C.current=!0,console.log("onPersistentColumnOperation, dispatchColumnAction",{action:K}),g(K)},[g]),ct=bt({dataSource:t,onPersistentColumnOperation:Ae}),kt=(0,V.useCallback)((K,F=!1,Z)=>{t&&(t.sort=(0,fe.applySort)(t.sort,K,F,Z))},[t]),Nt=(0,V.useCallback)((K,F,Z)=>{let G=x.find(ae=>ae.name===F);if(G)K==="end"&&(C.current=!0),g({type:"resizeColumn",phase:K,column:G,width:Z});else throw Error(`useDataTable.handleColumnResize, column ${F} not found`)},[x,g]),ie=(0,V.useCallback)((K,F)=>{let Z=(0,fe.isJsonGroup)(F,K),G=K[Ds];if(K[_n]){if(t.closeTreeNode(G,!0),Z){let ae=x.indexOf(F);t.getRowsAtDepth(ae+1).some(ce=>ce[_n]||ce[Jn])||g({type:"hideColumns",columns:x.slice(ae+2)})}}else if(t.openTreeNode(G),Z){let ae=t.getChildRows(G),de=x.indexOf(F)+1,ce=[x[de]];ae.some(be=>be[Jn])&&ce.push(x[de+1]),ce.some(be=>be.hidden)&&g({type:"showColumns",columns:ce})}},[x,t,g]),{onVerticalScroll:Ge,onHorizontalScroll:We,columnsWithinViewport:pe,virtualColSpan:oe}=Un({columns:x,getRowAtPosition:M,setRange:k,viewportMeasurements:d}),ut=(0,V.useCallback)((K,F)=>{w(F),Ge(K)},[Ge,w]),{requestScroll:mt,...pt}=Bn({onHorizontalScroll:We,onVerticalScroll:ut,viewport:d,viewportHeight:((Ft=($t=v.innerSize)==null?void 0:$t.height)!=null?Ft:0)-o}),Y=Ln({columnCount:x.length,containerRef:v.containerRef,data:R,requestScroll:mt,rowCount:t==null?void 0:t.size,viewportRange:S}),Ce=(0,V.useCallback)(K=>{K?t&&t.groupBy.includes(K.name)&&(t.groupBy=t.groupBy.filter(F=>F!==K.name)):t.groupBy=[]},[t]),zt=(0,V.useCallback)((K,F)=>{let Z=t.columns[K],G=(0,fe.moveItemDeprecated)(t.columns,Z,F);G!==t.columns&&(t.columns=G,g({type:"tableConfig",columns:G}))},[t,g]),ao=xn({onDrop:zt});(0,V.useEffect)(()=>{h.current&&(C.current=!0,g({type:"init",tableConfig:e,dataSourceConfig:h.current.config}))},[e,g]),(0,V.useEffect)(()=>{t.on("config",(K,F)=>{C.current=!0,g({type:"tableConfig",...K,confirmed:F})})},[t,g]),(0,V.useMemo)(()=>{C.current&&(n==null||n({...e,columns:x}),C.current=!1)},[x,e,n]);let[It]=(0,Xn.useContextMenu)(),Vt=(0,V.useCallback)(K=>{var ce;let{current:F}=te,{current:Z}=h,G=K.target,ae=G==null?void 0:G.closest("div[role='cell']"),de=G==null?void 0:G.closest(".vuuTableRow");if(ae&&de&&F&&Z){let{columns:be,selectedRowsCount:co}=Z,uo=(0,fe.buildColumnMap)(be),mo=parseInt((ce=de.ariaRowIndex)!=null?ce:"-1"),po=Array.from(de.childNodes).indexOf(ae),fo=F.find(([Co])=>Co===mo),Ot=be[po];It(K,"grid",{columnMap:uo,columnName:Ot,row:fo,selectedRows:co===0?ws:A(),viewport:t==null?void 0:t.viewport})}},[t==null?void 0:t.viewport,A,It]);return{columns:x,columnsWithinViewport:pe,containerMeasurements:v,containerProps:Y,data:R,dispatchColumnAction:g,getRowOffset:D,handleContextMenuAction:ct,headings:f,onColumnResize:Nt,onContextMenu:Vt,onRemoveColumnFromGroupBy:Ce,onRowClick:y,onSort:kt,onToggleGroup:ie,virtualColSpan:oe,scrollProps:pt,rowCount:p,viewportMeasurements:d,...ao}};var Zn=W(require("classnames"));var jn=require("@vuu-ui/vuu-utils"),we=require("react/jsx-runtime"),Ie="vuuTable",Ms=({allowConfigEditing:e=!1,className:t,config:o,dataSource:n,headerHeight:r=25,height:l,id:s,onConfigChange:i,onFeatureEnabled:a,onFeatureInvocation:c,onSelect:u,onSelectionChange:p,onShowConfigEditor:m,renderBufferSize:C=0,rowHeight:h=20,selectionModel:v="extended",style:T,width:x,...g})=>{let f=(0,_t.useIdMemo)(s),{containerMeasurements:{containerRef:M,innerSize:D,outerSize:w},containerProps:d,dispatchColumnAction:b,draggable:H,draggedItemIndex:y,handleContextMenuAction:R,scrollProps:A,viewportMeasurements:S,...k}=Qn({config:o,dataSource:n,renderBufferSize:C,headerHeight:r,height:l,onConfigChange:i,onFeatureEnabled:a,onFeatureInvocation:c,onSelectionChange:p,rowHeight:h,selectionModel:v,width:x});console.log({tableProps:k});let te={...w,"--content-height":`${S.contentHeight}px`,"--horizontal-scrollbar-height":`${S.horizontalScrollbarHeight}px`,"--content-width":`${S.contentWidth}px`,"--pinned-width-left":`${S.pinnedWidthLeft}px`,"--pinned-width-right":`${S.pinnedWidthRight}px`,"--header-height":`${r}px`,"--row-height":`${h}px`,"--table-height":`${D==null?void 0:D.height}px`,"--table-width":`${D==null?void 0:D.width}px`,"--total-header-height":`${S.totalHeaderHeight}px`,"--vertical-scrollbar-width":`${S.verticalScrollbarWidth}px`,"--viewport-body-height":`${S.viewportBodyHeight}px`},Ae=(0,Zn.default)(Ie,t,{[`${Ie}-zebra`]:o.zebraStripes,[`${Ie}-loading`]:(0,jn.isDataLoading)(k.columns)});return(0,we.jsx)(Yn.ContextMenuProvider,{menuActionHandler:R,menuBuilder:Ct(n),children:(0,we.jsxs)("div",{...g,...d,className:Ae,id:f,ref:M,style:te,tabIndex:-1,children:[D?(0,we.jsx)("div",{className:`${Ie}-scrollbarContainer`,ref:A.scrollbarContainerRef,children:(0,we.jsx)("div",{className:`${Ie}-scrollbarContent`})}):null,D?(0,we.jsxs)("div",{className:`${Ie}-contentContainer`,ref:A.contentContainerRef,children:[(0,we.jsx)(Dn,{...k,headerHeight:r,tableId:f}),H]}):null,e&&D?(0,we.jsx)(_t.Button,{className:`${Ie}-settings`,"data-icon":"settings",onClick:m,variant:"secondary"}):null]})})};var qn=W(require("classnames")),je=require("@vuu-ui/vuu-utils");var Ze=require("react/jsx-runtime"),Pt="vuuJsonCell",{IS_EXPANDED:Rs,KEY:xs}=je.metadataKeys,Ps=e=>{let t=e.lastIndexOf("|");return t===-1?"":e.slice(t+1)},Hs=({column:e,row:t})=>{let{key:o}=e,n=t[o],r=!1;(0,je.isJsonAttribute)(n)&&(n=n.slice(0,-1),r=!0);let l=Ps(t[xs]),s=(0,qn.default)({[`${Pt}-name`]:l===n,[`${Pt}-value`]:l!==n,[`${Pt}-group`]:r});if(r){let i=t[Rs]?"minus-box":"plus-box";return(0,Ze.jsxs)("span",{className:s,children:[(0,Ze.jsx)("span",{className:`${Pt}-value`,children:n}),(0,Ze.jsx)("span",{className:`${Pt}-toggle`,"data-icon":i})]})}else return n?(0,Ze.jsx)("span",{className:s,children:n}):null};console.log("register JsonCell");(0,je.registerComponent)("json",Hs,"cell-renderer",{description:"JSON formatter",label:"JSON formatter",serverDataType:"json"});var Ss=W(require("classnames")),As=require("react");var qe=require("react");var tr=require("react/jsx-runtime"),er=()=>{},Es="vuuColumnResizerNext",Ht=({onDrag:e,onDragEnd:t=er,onDragStart:o=er})=>{let n=(0,qe.useRef)(0),r=(0,qe.useCallback)(i=>{i.stopPropagation&&i.stopPropagation(),i.preventDefault&&i.preventDefault();let a=Math.round(i.clientX),c=a-n.current;n.current=a,c!==0&&e(i,c)},[e]),l=(0,qe.useCallback)(i=>{window.removeEventListener("mouseup",l),window.removeEventListener("mousemove",r),t(i)},[t,r]),s=(0,qe.useCallback)(i=>{o(i),n.current=Math.round(i.clientX),window.addEventListener("mouseup",l),window.addEventListener("mousemove",r),i.stopPropagation&&i.stopPropagation(),i.preventDefault&&i.preventDefault()},[o,r,l]);return(0,tr.jsx)("div",{className:Es,onMouseDown:s})};var Ee=require("react"),Et=({column:e,onResize:t,rootRef:o})=>{let n=(0,Ee.useRef)(0),[r,l]=(0,Ee.useState)(!1),{name:s}=e,i=(0,Ee.useCallback)(()=>{if(console.log("onResizeStart"),t&&o.current){console.log("handleResizeStart");let{width:u}=o.current.getBoundingClientRect();n.current=Math.round(u),l(!0),t==null||t("begin",s)}},[s,t,o]),a=(0,Ee.useCallback)((u,p)=>{if(o.current&&t){let{width:m}=o.current.getBoundingClientRect(),C=Math.round(m)+p;C!==n.current&&C>0&&(t("resize",s,C),n.current=C)}},[s,t,o]),c=(0,Ee.useCallback)(()=>{t&&(t("end",s,n.current),setTimeout(()=>{l(!1)},80))},[s,t]);return{isResizing:r,onDrag:a,onDragStart:i,onDragEnd:c}};var or=require("@vuu-ui/vuu-utils"),nr=W(require("classnames")),rr=require("react"),De=(e,t,o)=>(0,rr.useMemo)(()=>{let n=(0,nr.default)(t,{vuuPinFloating:e.pin==="floating",vuuPinLeft:e.pin==="left",vuuPinRight:e.pin==="right",vuuEndPin:o&&e.endPin,[`${t}-editable`]:e.editable,[`${t}-right`]:e.align==="right"}),r=(0,or.getColumnStyle)(e);return{className:n,style:r}},[e,t,o]);var sr=W(require("classnames")),ir=require("react");var Jt=require("react/jsx-runtime"),lr="vuuColumnHeaderPill",Ve=({children:e,className:t,column:o,onRemove:n,removable:r,...l})=>{if(r&&typeof n!="function")throw Error("ColumnHeaderPill onRemove prop must be provided if Pill is removable");let s=(0,ir.useCallback)(i=>{i.preventDefault(),i.stopPropagation(),n==null||n(o)},[o,n]);return(0,Jt.jsxs)("div",{...l,className:(0,sr.default)(lr,t),children:[e,r?(0,Jt.jsx)("span",{className:`${lr}-removeButton`,role:"button","data-icon":"cross",onClick:s}):null]})};var et=require("react/jsx-runtime"),Io=({column:e,...t})=>{let{name:o,sorted:n}=e,r=typeof n=="number"?n<0?"arrow-down":"arrow-up":n==="A"?"arrow-up":n==="D"?"arrow-down":void 0;return(0,et.jsxs)(Ve,{...t,column:e,children:[(0,et.jsx)("span",{className:"vuuGroupColumnPill-label",children:o}),r!==void 0?(0,et.jsx)("span",{"data-icon":r}):null,typeof n=="number"?(0,et.jsx)("span",{className:"vuuSortPosition",children:Math.abs(n)}):null]})};var St=require("react/jsx-runtime"),ar=({column:e})=>{if(!e.sorted)return null;let t=typeof e.sorted=="number"?e.sorted<0?"arrow-down":"arrow-up":e.sorted==="A"?"arrow-up":"arrow-down";return(0,St.jsxs)(Ve,{column:e,children:[(0,St.jsx)("span",{"data-icon":t}),typeof e.sorted=="number"?(0,St.jsx)("span",{className:"vuuSortPosition",children:Math.abs(e.sorted)}):null]})};var cr=require("react/jsx-runtime"),Ls=require("react");var ur=W(require("classnames")),ot=require("react");var Xt=require("@vuu-ui/vuu-layout");var tt=require("react/jsx-runtime"),mr=require("react"),Vo="vuuTableNextGroupHeaderCell",Ks=(e,t)=>e===t?e:t,At=({column:e,className:t,onRemoveColumn:o,onResize:n,...r})=>{let l=(0,ot.useRef)(null),{isResizing:s,...i}=Et({column:e,onResize:n,rootRef:l}),[a,c]=(0,ot.useState)(e.columns),{className:u,style:p}=De(e,Vo,!0),m=a.length>1?{removable:!0,onRemove:o}:void 0,C=(0,ot.useCallback)((h,v)=>{c(T=>{let x=T.slice(),[g]=x.splice(h,1);return v===-1?x.concat(g):(x.splice(v,0,g),x)})},[]);return(0,Xt.useLayoutEffectSkipFirst)(()=>{c(h=>Ks(h,e.columns))},[e.columns]),(0,tt.jsxs)("div",{...r,className:(0,ur.default)(u,"vuuTableNextHeaderCell",t,{[`${Vo}-pending`]:e.groupConfirmed===!1}),ref:l,role:"columnheader",style:p,children:[(0,tt.jsx)(Xt.OverflowContainer,{allowDragDrop:!0,className:`${Vo}-inner`,height:24,onMoveItem:C,overflowPosition:"start",children:a.map(h=>(0,mr.createElement)(Io,{...m,column:h,key:h.key}))}),(0,tt.jsx)(Ve,{column:e,removable:!0,onRemove:o}),e.resizeable!==!1?(0,tt.jsx)(Ht,{...i}):null]})};var Qt=require("react");var pr=require("@vuu-ui/vuu-popups"),dr=W(require("classnames")),$e=require("react");var Cr=require("react/jsx-runtime"),ks=e=>{if(e){let{bottom:t,left:o}=e.getBoundingClientRect();return{x:o,y:t+6}}},fr=({className:e,column:t,...o})=>{let n=(0,$e.useRef)(null),[r,l]=(0,$e.useState)(!1),[s]=(0,pr.useContextMenu)(),i=(0,$e.useCallback)(()=>{l(!1)},[]),a=(0,$e.useCallback)(c=>{l(!0),s(c,"column-menu",{column:t,ContextMenuProps:{onClose:i,position:ks(n.current)}})},[t,i,s]);return(0,Cr.jsx)("span",{...o,className:(0,dr.default)("vuuTable-columnMenu",e,{"vuuTable-columnMenu-open":r}),"data-icon":"more-vert",onClick:a,ref:n})};var br=W(require("classnames"));var Fe=require("react/jsx-runtime"),$o="vuuTableNextHeaderCell",gr=({className:e,column:t,onClick:o,onResize:n,...r})=>{var v;let l=(0,Qt.useRef)(null),{isResizing:s,...i}=Et({column:t,onResize:n,rootRef:l}),a=(0,Qt.useCallback)(T=>{console.log(`click isResizing ${s}`),!s&&(o==null||o(T))},[s,o]),{className:c,style:u}=De(t,$o,!0),p=(0,Fe.jsx)(fr,{column:t}),m=(0,Fe.jsx)("div",{className:`${$o}-label`,children:(v=t.label)!=null?v:t.name}),C=(0,Fe.jsx)(ar,{column:t}),h=t.align==="right"?[C,m,p]:[p,m,C];return(0,Fe.jsxs)("div",{...r,className:(0,br.default)(c,e,{[`${$o}-resizing`]:s}),onClick:a,ref:l,role:"columnheader",style:u,children:[...h,t.resizeable!==!1?(0,Fe.jsx)(Ht,{...i}):null]})};var ol=require("@vuu-ui/vuu-popups"),it=require("@vuu-ui/vuu-utils"),Xo=W(require("classnames")),no=require("react");var ee=require("@vuu-ui/vuu-utils"),Dr=W(require("classnames")),Lt=require("react");var hr=require("@vuu-ui/vuu-utils"),Fo=require("react");var Oo=require("react/jsx-runtime"),{IDX:Ns}=hr.metadataKeys,zs="vuuTableNextCell",vr=({column:e,columnMap:t,onClick:o,onDataEdited:n,row:r})=>{let{className:l,style:s}=De(e,zs),{CellRenderer:i,name:a,valueFormatter:c}=e,u=t[a],p=(0,Fo.useCallback)(C=>(n==null||n(r[Ns],a,C),!0),[a,n,r]),m=(0,Fo.useCallback)(C=>{o==null||o(C,e)},[e,o]);return(0,Oo.jsx)("div",{className:l,onClick:o?m:void 0,role:"cell",style:s,children:i?(0,Oo.jsx)(i,{column:e,columnMap:t,onCommit:p,row:r}):c(r[u])})};var Yt=require("@vuu-ui/vuu-utils"),yr=require("react");var Tr=W(require("classnames"));var nt=require("react/jsx-runtime"),{IS_LEAF:Is}=Yt.metadataKeys,Go="vuuTableNextGroupCell",wr=({column:e,onClick:t,row:o})=>{let{columns:n}=e,[r,l]=(0,Yt.getGroupValueAndOffset)(n,o),{className:s,style:i}=De(e,Go),a=(0,yr.useCallback)(p=>{t==null||t(p,e)},[e,t]),c=o[Is],u=Array(l).fill(0).map((p,m)=>(0,nt.jsx)("span",{className:`${Go}-spacer`},m));return(0,nt.jsxs)("div",{className:(0,Tr.default)(s,"vuuTableNextCell"),role:"cell",style:i,onClick:c?void 0:a,children:[u,c?null:(0,nt.jsx)("span",{className:`${Go}-toggle`,"data-icon":"triangle-right"}),(0,nt.jsx)("span",{children:r})]})};var Zt=require("react/jsx-runtime"),Mr=require("react"),{IDX:Vs,IS_EXPANDED:$s,SELECTED:Fs}=ee.metadataKeys,Se="vuuTableNextRow",Wo=(0,Lt.memo)(({className:e,columnMap:t,columns:o,row:n,offset:r,onClick:l,onDataEdited:s,onToggleGroup:i,zebraStripes:a=!1,...c})=>{let{[Vs]:u,[$s]:p,[Fs]:m}=n,C=(0,Lt.useCallback)(M=>{let D=M.shiftKey,w=M.ctrlKey||M.metaKey;l==null||l(n,D,w)},[l,n]),{True:h,First:v,Last:T}=ee.RowSelected,x=(0,Dr.default)(Se,e,{[`${Se}-even`]:a&&u%2===0,[`${Se}-expanded`]:p,[`${Se}-selected`]:m&h,[`${Se}-selectedStart`]:m&v,[`${Se}-selectedEnd`]:m&T}),g={transform:`translate3d(0px, ${r}px, 0px)`},f=(0,Lt.useCallback)((M,D)=>{((0,ee.isGroupColumn)(D)||(0,ee.isJsonGroup)(D,n))&&(M.stopPropagation(),i==null||i(n,D))},[i,n]);return(0,Mr.createElement)("div",{...c,"aria-rowindex":n[0],key:`row-${n[0]}`,role:"row",className:x,onClick:C,style:g},(0,Zt.jsx)("span",{className:`${Se}-selectionDecorator vuuStickyLeft`}),o.filter(ee.notHidden).map(M=>{let D=(0,ee.isGroupColumn)(M),w=(0,ee.isJsonColumn)(M);return(0,Zt.jsx)(D?wr:vr,{column:M,columnMap:t,onClick:D||w?f:void 0,onDataEdited:s,row:n},M.key)}),(0,Zt.jsx)("span",{className:`${Se}-selectionDecorator vuuStickyRight`}))});Wo.displayName="Row";var jr=require("@vuu-ui/vuu-layout"),qr=require("@vuu-ui/vuu-table-extras"),el=require("@vuu-ui/vuu-ui-controls");var U=require("react");var Bo=e=>`.vuuTableNext-col-headers .vuuTableNextHeaderCell:nth-child(${e})`,Uo=(e,t)=>`.vuuTableNext-body > [aria-rowindex='${e}'] > [role='cell']:nth-child(${t+1})`,Rr=(e,[t,o])=>{var l;let n=t===-1?Bo(o):Uo(t,o),r=(l=e.current)==null?void 0:l.querySelector(n);return Os(r)&&r.querySelector("button")||r},Os=e=>e.classList.contains("vuuTableNextCell-editable"),xr=e=>e.querySelector(".vuuTableInputCell")!==null;var Pr=new Set(["Home","End","PageUp","PageDown","ArrowDown","ArrowUp"]),_o=new Set(Pr);_o.add("ArrowLeft");_o.add("ArrowRight");var Gs=(e,t)=>{switch(t){case"cell":return _o.has(e);case"row":return Pr.has(e);default:return!1}},Ws=["Home","End","PageUp","PageDown"],Bs=e=>Ws.includes(e),Us=[-1,-1],_s=[void 0,void 0],Js=e=>{var o,n;let t=(o=e.closest(".vuuTableNext"))==null?void 0:o.querySelector(".vuuTableNext-scrollbarContainer");if(t){let r=t==null?void 0:t.getBoundingClientRect(),l=(n=e.closest(".vuuTableNextCell"))==null?void 0:n.getBoundingClientRect();if(l)return l.bottom>r.bottom?["down",l.bottom-r.bottom]:l.top<r.top?["up",l.top-r.top]:l.right<r.right?["right",l.right-r.right]:l.left<r.left?["left",l.left-r.left]:_s;throw Error("Whats going on, cell not found")}else throw Error("Whats going on, scrollbar container not found")};function Xs(e,[t,o],n,r){return e==="ArrowUp"?t>-1?[t-1,o]:[t,o]:e==="ArrowDown"?t===-1?[0,o]:t===r-1?[t,o]:[t+1,o]:e==="ArrowRight"?o<n-1?[t,o+1]:[t,o]:e==="ArrowLeft"?o>1?[t,o-1]:[t,o]:[t,o]}var Hr=({columnCount:e=0,containerRef:t,disableHighlightOnFocus:o,navigationStyle:n,requestScroll:r,rowCount:l=0,viewportRowCount:s})=>{var w;let i=(0,U.useRef)([-1,-1]),a=(0,U.useRef)(),c=(0,U.useRef)([-1,0]),u=d=>d==null?void 0:d.closest("[role='columnHeader'],[role='cell']"),p=d=>{var b,H;if(d.role==="columnHeader")return[-1,parseInt((b=d.dataset.idx)!=null?b:"-1",10)];{let y=d.closest("[role='row']");if(y){let R=parseInt((H=y.ariaRowIndex)!=null?H:"-1",10),A=Array.from(y.childNodes).indexOf(d);return[R,A]}}return Us},m=(0,U.useCallback)(d=>{var b;if(t.current){let H=Rr(t,d);if(H){H!==a.current&&((b=a.current)==null||b.removeAttribute("tabindex"),a.current=H,H.setAttribute("tabindex","0"));let[y,R]=Js(H);y&&R&&(r==null||r({type:"scroll-distance",distance:R,direction:y})),H.focus()}}},[t,r]),C=(0,U.useCallback)((d,b,H=!1)=>{let y=[d,b];c.current=y,m(y),H&&(i.current=y)},[m]),h=(0,U.useCallback)((d,[b,H])=>new Promise(y=>{let R=b;switch(d){case"PageDown":R=Math.min(l-1,b+s),r==null||r({type:"scroll-page",direction:"down"});break;case"PageUp":R=Math.max(0,b-s),r==null||r({type:"scroll-page",direction:"up"});break;case"Home":R=0,r==null||r({type:"scroll-end",direction:"home"});break;case"End":R=l-1,r==null||r({type:"scroll-end",direction:"end"});break}setTimeout(()=>{y([R,H])},90)}),[r,l,s]),v=(0,U.useCallback)(()=>{var d;if(o!==!0&&(d=t.current)!=null&&d.contains(document.activeElement)){let b=u(document.activeElement);b&&(i.current=p(b))}},[o,t]),T=(0,U.useCallback)(async d=>{let[b,H]=Bs(d)?await h(d,c.current):Xs(d,c.current,e,l);console.log(`nextRowIdx ${b} nextColIdx ${H}`);let[y,R]=c.current;(b!==y||H!==R)&&C(b,H,!0)},[e,h,l,C]),x=(0,U.useCallback)(d=>{l>0&&Gs(d.key,n)&&(d.preventDefault(),d.stopPropagation(),T(d.key))},[l,n,T]),g=(0,U.useCallback)(d=>{let b=d.target,H=u(b);if(H){let[y,R]=p(H);C(y,R)}},[C]),f=(0,U.useCallback)(()=>{T("ArrowDown")},[T]),M=(0,U.useMemo)(()=>({navigate:f,onClick:g,onFocus:v,onKeyDown:x}),[g,v,x,f]),D=((w=t.current)==null?void 0:w.firstChild)!=null;return(0,U.useEffect)(()=>{if(D&&a.current===void 0){let{current:d}=t,b=(d==null?void 0:d.querySelector(Bo(0)))||(d==null?void 0:d.querySelector(Uo(0,0)));b&&(b.setAttribute("tabindex","0"),a.current=b)}},[t,D]),M};var _=require("@vuu-ui/vuu-utils"),z=require("react");var jt=(e,t)=>{switch(t.type){case"col-size":return{...e,columns:e.columns.map(o=>o.name===t.column.name?{...o,width:t.width}:o)};case"column-prop":return{...e,columns:e.columns.map(o=>o.name===t.column.name?{...o,[t.property]:t.value}:o)};default:return e}};var to=require("@vuu-ui/vuu-data-react/src"),Oe=require("@vuu-ui/vuu-utils"),J=require("react");var eo=require("@vuu-ui/vuu-utils"),{SELECTED:Qs}=eo.metadataKeys,qt=class{constructor({from:t,to:o}){this.rowCount=0;this.setRowCount=t=>{t<this.data.length&&(this.data.length=t),this.rowCount=t};this.range=new eo.WindowRange(t,o),this.data=new Array(o-t),this.rowCount=0}add(t){let[o]=t;if(this.isWithinRange(o)){let n=o-this.range.from;this.data[n]=t}}getAtIndex(t){return this.range.isWithin(t)&&this.data[t-this.range.from]!=null?this.data[t-this.range.from]:void 0}isWithinRange(t){return this.range.isWithin(t)}setRange({from:t,to:o}){if(t!==this.range.from||o!==this.range.to){let[n,r]=this.range.overlap(t,o),l=new Array(Math.max(0,o-t));for(let s=n;s<r;s++){let i=this.getAtIndex(s);if(i){let a=s-t;l[a]=i}}this.data=l,this.range.from=t,this.range.to=o}}getSelectedRows(){return this.data.filter(t=>t[Qs]!==0)}};var Er=({dataSource:e,onFeatureEnabled:t,onFeatureInvocation:o,onSizeChange:n,onSubscribed:r,range:l=Oe.NULL_RANGE,renderBufferSize:s=0})=>{let[,i]=(0,J.useState)(null),a=(0,J.useRef)([]),c=(0,J.useRef)(!0),u=(0,J.useRef)(!1),p=(0,J.useRef)(Oe.NULL_RANGE),m=(0,J.useMemo)(()=>new qt((0,Oe.getFullRange)(l,s)),[]),C=(0,J.useCallback)(T=>{for(let x of T)m.add(x);a.current=m.data,c.current&&i({})},[m]),h=(0,J.useCallback)(T=>{T.type==="subscribed"?r==null||r(T):T.type==="viewport-update"?(typeof T.size=="number"&&(n==null||n(T.size),m.setRowCount(T.size)),T.rows?C(T.rows):typeof T.size=="number"&&(a.current=m.data,u.current=!0)):(0,to.isVuuFeatureAction)(T)?t==null||t(T):(0,to.isVuuFeatureInvocation)(T)?o==null||o(T):console.log(`useDataSource unexpected message ${T.type}`)},[m,t,o,n,r,C]);(0,J.useEffect)(()=>()=>{c.current=!0,c.current=!1},[]),(0,J.useEffect)(()=>{e==null||e.subscribe({range:(0,Oe.getFullRange)(l,s)},h)},[e,h,l,s]);let v=(0,J.useCallback)(T=>{let x=(0,Oe.getFullRange)(T,s);m.setRange(x),e.range=p.current=x,e.emit("range",T)},[e,m,s]);return{data:a.current,range:p.current,setRange:v}};var oo=require("react"),Sr=e=>{let t=(0,oo.useRef)(e);return(0,oo.useMemo)(()=>t.current,[])};var Ar=require("@vuu-ui/vuu-utils"),Lr=require("react"),Kr=require("@vuu-ui/vuu-popups"),kr=({columns:e,data:t})=>{let[o]=(0,Kr.useContextMenu)();return(0,Lr.useCallback)(r=>{var a;let l=r.target,s=l==null?void 0:l.closest("div[role='cell']"),i=l==null?void 0:l.closest("div[role='row']");if(s&&i){let c=(0,Ar.buildColumnMap)(e),u=parseInt((a=i.ariaRowIndex)!=null?a:"-1"),p=Array.from(i.childNodes).indexOf(s),m=t.find(([h])=>h===u),C=e[p];o(r,"grid",{columnMap:c,columnName:C,row:m})}},[e,t,o])};var Nr=require("@vuu-ui/vuu-utils"),Kt=require("react");var zr=({navigate:e})=>{let t=(0,Kt.useCallback)(()=>{e()},[e]),o=(0,Kt.useCallback)(l=>{let s=l.target,i=s.querySelector("input");i&&(i.focus(),i.select()),s.addEventListener("vuu-commit",t,!0)},[t]),n=(0,Kt.useCallback)(l=>{let s=l.target,i=s.querySelector("input");i&&(i.focus(),i.select()),s.addEventListener("vuu-commit",t,!0)},[t]);return{onKeyDown:(0,Kt.useCallback)(l=>{xr(l.target)&&((0,Nr.isCharacterKey)(l.key)?o(l):l.key==="Enter"&&n(l))},[o,n])}};var L=require("@vuu-ui/vuu-utils"),Ir=require("@vuu-ui/vuu-ui-controls"),Vr=require("react"),{info:Jo}=(0,L.logger)("useTableModel"),Ys=100,Zs=L.metadataKeys.count,js=({serverDataType:e})=>e===void 0,qs=e=>{var t;if((0,L.isTypeDescriptor)(e.type))return(0,L.getCellRenderer)((t=e.type)==null?void 0:t.renderer)},ei=(e,t)=>{var n;let o=t.columns.find(({name:r})=>r===e.name);return o?o.serverDataType:(n=e.serverDataType)!=null?n:"string"},ti=["int","long","double"],$r=e=>e===void 0?void 0:ti.includes(e)?"right":"left",Fr=e=>e.type==="columnSettings",Or=e=>e.type==="tableSettings",oi=(e,t)=>{switch(Jo==null||Jo(`TableModelReducer ${t.type}`),t.type){case"init":return Wr(t);case"moveColumn":return ri(e,t);case"resizeColumn":return ii(e,t);case"setTableSchema":return ai(e,t);case"hideColumns":return li(e,t);case"showColumns":return si(e,t);case"pinColumn":return ci(e,t);case"updateColumnProp":return lt(e,t);case"tableConfig":return Ur(e,t);default:return console.log(`unhandled action ${t.type}`),e}},Gr=(e,t)=>{let[o,n]=(0,Vr.useReducer)(oi,{tableConfig:e,dataSourceConfig:t},Wr),{columns:r,headings:l,tableConfig:s,...i}=o;return{columns:r,dispatchColumnAction:n,headings:l,tableAttributes:i,tableConfig:s}};function Wr({dataSourceConfig:e,tableConfig:t}){let{columns:o,...n}=t,r=o.filter((0,L.subscribedOnly)(e==null?void 0:e.columns)).map(Br(n)),l=r.some(L.isPinned)?(0,L.sortPinnedColumns)(r):r,s={columns:l,headings:(0,L.getTableHeadings)(l),tableConfig:t,...n};if(e){let{columns:i,...a}=e;s=Ur(s,{type:"tableConfig",...a})}return s}var ni=(e,t)=>t==="uppercase"?e.toUpperCase():t==="capitalize"?e[0].toUpperCase()+e.slice(1).toLowerCase():e,Br=e=>(t,o)=>{let{columnDefaultWidth:n=Ys,columnFormatHeader:r}=e,{align:l=$r(t.serverDataType),key:s,name:i,label:a=(0,L.getColumnLabel)(t),width:c=n,...u}=t,p={...u,align:l,CellRenderer:qs(t),clientSideEditValidationCheck:(0,L.hasValidationRules)(t.type)?(0,Ir.buildValidationChecker)(t.type.renderer.rules):void 0,label:ni(a,r),key:s!=null?s:o+Zs,name:i,originalIdx:o,valueFormatter:(0,L.getValueFormatter)(t),width:c};return(0,L.isGroupColumn)(p)&&(p.columns=p.columns.map(m=>Br(e)(m,m.key))),p};function ri(e,{column:t,moveBy:o,moveTo:n}){let{columns:r}=e;if(typeof o=="number"){let l=r.indexOf(t),s=r.slice(),[i]=s.splice(l,1);return s.splice(l+o,0,i),{...e,columns:s}}else if(typeof n=="number"){let l=r.indexOf(t);return{...e,columns:(0,L.moveItem)(r,l,n)}}return e}function li(e,{columns:t}){return t.some(o=>o.hidden!==!0)?t.reduce((o,n)=>n.hidden!==!0?lt(o,{type:"updateColumnProp",column:n,hidden:!0}):o,e):e}function si(e,{columns:t}){return t.some(o=>o.hidden)?t.reduce((o,n)=>n.hidden?lt(o,{type:"updateColumnProp",column:n,hidden:!1}):o,e):e}function ii(e,{column:t,phase:o,width:n}){let r="updateColumnProp",l=o!=="end";switch(o){case"begin":return lt(e,{type:r,column:t,resizing:l});case"end":return lt(e,{type:r,column:t,resizing:l,width:n});case"resize":return lt(e,{type:r,column:t,width:n});default:throw Error(`useTableModel.resizeColumn, invalid resizePhase ${o}`)}}function ai(e,{tableSchema:t}){let{columns:o}=e;if(o.some(js)){let n=o.map(r=>{var s;let l=ei(r,t);return{...r,align:(s=r.align)!=null?s:$r(l),serverDataType:l}});return{...e,columns:n}}else return e}function ci(e,t){let{columns:o}=e,{column:n,pin:r}=t,l=o.find(s=>s.name===n.name);return l?(o=rt(o,{...l,pin:r}),o=(0,L.sortPinnedColumns)(o),{...e,columns:o}):e}function lt(e,t){let{columns:o}=e,{align:n,column:r,hidden:l,label:s,resizing:i,width:a}=t,c=o.find(u=>u.name===r.name);return c&&((n==="left"||n==="right")&&(o=rt(o,{...c,align:n})),typeof s=="string"&&(o=rt(o,{...c,label:s})),typeof i=="boolean"&&(o=rt(o,{...c,resizing:i})),typeof l=="boolean"&&(o=rt(o,{...c,hidden:l})),typeof a=="number"&&(o=rt(o,{...c,width:a}))),{...e,columns:o}}function Ur(e,{confirmed:t,filter:o,groupBy:n,sort:r}){let l=n!==void 0,s=typeof(o==null?void 0:o.filter)=="string",i=r&&r.sortDefs.length>0,a=e;return l&&(a={...e,columns:(0,L.applyGroupByToColumns)(a.columns,n,t)}),i&&(a={...e,columns:(0,L.applySortToColumns)(a.columns,r)}),s?a={...e,columns:(0,L.applyFilterToColumns)(a.columns,o)}:a.columns.some(L.isFilteredColumn)&&(a={...e,columns:(0,L.stripFilterFromColumns)(a.columns)}),a}function rt(e,t){return e.map(o=>o.name===t.name?t:o)}var Q=require("react"),_r=e=>{let{scrollLeft:t,scrollTop:o}=e,{clientHeight:n,clientWidth:r,scrollHeight:l,scrollWidth:s}=e,i=t/(s-r),a=o/(l-n);return[i,a]},Jr=({onAttach:e,onDetach:t})=>{let o=(0,Q.useRef)(null);return(0,Q.useCallback)(r=>{if(r)o.current=r,e==null||e(r);else if(o.current){let{current:l}=o;o.current=r,t==null||t(l)}},[e,t])},Xr=({maxScrollLeft:e,maxScrollTop:t,onHorizontalScroll:o,onVerticalScroll:n,rowHeight:r,viewportRowCount:l})=>{let s=(0,Q.useRef)(!1),i=(0,Q.useRef)({scrollTop:0,scrollLeft:0}),a=(0,Q.useRef)(null),c=(0,Q.useRef)(null),u=(0,Q.useCallback)(()=>{let{current:f}=c,{current:M}=a,{current:D}=s;if(D)s.current=!1;else if(f&&M){let[w,d]=_r(M),b=Math.round(w*e),H=Math.round(d*t);f.scrollTo({left:b,top:H,behavior:"auto"})}},[e,t]),p=(0,Q.useCallback)(()=>{let{current:f}=c,{current:M}=a,{current:D}=i;if(f&&M){let{scrollLeft:w,scrollTop:d}=f,[b,H]=_r(f);s.current=!0,M.scrollLeft=Math.round(b*e),M.scrollTop=Math.round(H*t),D.scrollTop!==d&&(D.scrollTop=d,n==null||n(d,H)),D.scrollLeft!==w&&(D.scrollLeft=w,o==null||o(w))}},[e,t,o,n]),m=(0,Q.useCallback)(f=>{a.current=f,f.addEventListener("scroll",u,{passive:!0})},[u]),C=(0,Q.useCallback)(f=>{a.current=null,f.removeEventListener("scroll",u)},[u]),h=(0,Q.useCallback)(f=>{c.current=f,f.addEventListener("scroll",p,{passive:!0})},[p]),v=(0,Q.useCallback)(f=>{c.current=null,f.removeEventListener("scroll",p)},[p]),T=Jr({onAttach:h,onDetach:v}),x=Jr({onAttach:m,onDetach:C}),g=(0,Q.useCallback)(f=>{let{current:M}=c;if(M){let{scrollLeft:D,scrollTop:w}=M;if(s.current=!1,f.type==="scroll-distance"){let d=D,b=w;f.direction==="up"||f.direction==="down"?b=Math.min(Math.max(0,w+f.distance),t):d=Math.min(Math.max(0,D+f.distance),e),M.scrollTo({top:b,left:d,behavior:"auto"})}else if(f.type==="scroll-page"){let{direction:d}=f,b=l*(d==="down"?r:-r),H=Math.min(Math.max(0,w+b),t);M.scrollTo({top:H,left:D,behavior:"auto"})}else if(f.type==="scroll-end"){let{direction:d}=f,b=d==="end"?t:0;M.scrollTo({top:b,left:M.scrollLeft,behavior:"auto"})}}},[e,t,r,l]);return{scrollbarContainerRef:x,contentContainerRef:T,requestScroll:g}};var st=require("react"),Qr=({columns:e,getRowAtPosition:t,setRange:o,viewportMeasurements:n})=>{let r=(0,st.useRef)(0),{contentWidth:l,rowCount:s}=n,i=(0,st.useCallback)(a=>{let c=t(a);c!==r.current&&(r.current=c,o({from:c,to:c+s}))},[t,o,s]);return(0,st.useEffect)(()=>{let{current:a}=r,c={from:a,to:a+s};o(c)},[o,s]),{onVerticalScroll:i}};var{KEY:ui,IS_EXPANDED:Yr,IS_LEAF:Zr}=_.metadataKeys,mi=(e,t)=>({...e,columns:e.columns.concat(t)}),tl=({availableColumns:e,config:t,containerRef:o,dataSource:n,headerHeight:r=25,navigationStyle:l="cell",onAvailableColumnsChange:s,onConfigChange:i,onFeatureEnabled:a,onFeatureInvocation:c,onRowClick:u,onSelect:p,onSelectionChange:m,renderBufferSize:C=0,rowHeight:h=20,selectionModel:v})=>{let[T,x]=(0,z.useState)(n.size);if(n===void 0)throw Error("no data source provided to Vuu Table");let[g,f]=(0,z.useState)(),M=(0,z.useCallback)(P=>{f(P)},[]),D=(0,z.useMemo)(()=>Ct(n),[n]),w=(0,z.useCallback)(P=>{x(P)},[]),{columns:d,dispatchColumnAction:b,headings:H,tableAttributes:y,tableConfig:R}=Gr(t,n.config);(0,jr.useLayoutEffectSkipFirst)(()=>{b({type:"init",dataSourceConfig:n.config,tableConfig:R})},[R,n.config,b]);let[A,S]=(0,z.useState)(),[k,te]=(0,z.useMemo)(()=>{let P=(N,I)=>{let ne=(0,_.updateColumn)(d,N,{width:I});S(ne)};return[A!=null?A:d,P]},[d,A]),Ae=(0,z.useMemo)(()=>(0,_.buildColumnMap)(n.columns),[n.columns]),{getRowAtPosition:ct,getRowOffset:kt,setPctScrollTop:Nt,...ie}=Rt({columns:k,headerHeight:r,headings:H,rowCount:T,rowHeight:h,size:g}),Ge=Sr({from:0,to:ie.rowCount}),We=(0,z.useCallback)(({tableSchema:P})=>{P||console.log("usbscription message with no schema")},[]),{data:pe,range:oe,setRange:ut}=Er({dataSource:n,onFeatureEnabled:a,onFeatureInvocation:c,renderBufferSize:C,onSizeChange:w,onSubscribed:We,range:Ge}),mt=(0,z.useCallback)(P=>{b({type:"init",tableConfig:P,dataSourceConfig:n.config}),i==null||i(P)},[n.config,b,i]),pt=(0,z.useCallback)(P=>{n.config={...n.config,...P}},[n]),Y=(0,z.useCallback)(P=>{n.columns=n.columns.concat(P.name);let N=mi(R,P);b({type:"init",tableConfig:N,dataSourceConfig:n.config}),console.log("dispatch onConfigChange",{newTableConfig:N}),i==null||i(N)},[n,b,i,R]);(0,z.useEffect)(()=>{n.on("config",(P,N)=>{b({type:"tableConfig",...P,confirmed:N})})},[n,b]);let{showColumnSettingsPanel:Ce,showTableSettingsPanel:zt}=(0,qr.useTableAndColumnSettings)({availableColumns:e!=null?e:R.columns.map(({name:P,serverDataType:N="string"})=>({name:P,serverDataType:N})),onAvailableColumnsChange:s,onConfigChange:mt,onCreateCalculatedColumn:Y,onDataSourceConfigChange:pt,tableConfig:R}),ao=(0,z.useCallback)(P=>{Fr(P)?Ce(P):Or(P)?zt():b(P)},[b,Ce,zt]),It=bt({dataSource:n,onPersistentColumnOperation:ao}),Vt=(0,z.useCallback)((P,N=!1,I)=>{n&&(n.sort=(0,_.applySort)(n.sort,P,N,I))},[n]),$t=(0,z.useCallback)((P,N,I)=>{let ne=k.find(ge=>ge.name===N);if(ne)P==="resize"?(0,_.isValidNumber)(I)&&te(N,I):P==="end"?(0,_.isValidNumber)(I)&&(b({type:"resizeColumn",phase:P,column:ne,width:I}),i==null||i(jt(R,{type:"col-size",column:ne,width:I}))):(S(void 0),b({type:"resizeColumn",phase:P,column:ne,width:I}));else throw Error(`useDataTable.handleColumnResize, column ${N} not found`)},[k,R,b,i,te]),Ft=(0,z.useCallback)((P,N)=>{let I=(0,_.isJsonGroup)(N,P),ne=P[ui];if(P[Yr]){if(n.closeTreeNode(ne,!0),I){let ge=k.indexOf(N);n.getRowsAtDepth(ge+1).some(he=>he[Yr]||he[Zr])||b({type:"hideColumns",columns:k.slice(ge+2)})}}else if(n.openTreeNode(ne),I){let ge=n.getChildRows(ne),dt=k.indexOf(N)+1,he=[k[dt]];ge.some(bo=>bo[Zr])&&he.push(k[dt+1]),he.some(bo=>bo.hidden)&&b({type:"showColumns",columns:he})}},[k,n,b]),{onVerticalScroll:K}=Qr({columns:k,getRowAtPosition:ct,setRange:ut,viewportMeasurements:ie}),F=(0,z.useCallback)(P=>{K(P)},[K]),{requestScroll:Z,...G}=Xr({maxScrollLeft:ie.maxScrollContainerScrollHorizontal,maxScrollTop:ie.maxScrollContainerScrollVertical,rowHeight:h,onVerticalScroll:F,viewportRowCount:ie.rowCount}),{navigate:ae,onKeyDown:de,...ce}=Hr({columnCount:k.filter(P=>P.hidden!==!0).length,containerRef:o,navigationStyle:l,requestScroll:Z,rowCount:n==null?void 0:n.size,viewportRange:oe,viewportRowCount:ie.rowCount}),{onKeyDown:be}=zr({navigate:ae}),co=(0,z.useCallback)(P=>{de(P),P.defaultPrevented||be(P)},[de,be]),uo=kr({columns:k,data:pe}),mo=(0,z.useCallback)(P=>{var he;let I=P.target.closest(".vuuTableNextHeaderCell"),ne=parseInt((he=I==null?void 0:I.dataset.index)!=null?he:"-1"),ge=(0,_.visibleColumnAtIndex)(k,ne),dt=P.shiftKey;ge&&Vt(ge,dt)},[k,Vt]),po=(0,z.useCallback)(P=>{(0,_.isGroupColumn)(P)?n.groupBy=[]:n&&n.groupBy.includes(P.name)&&(n.groupBy=n.groupBy.filter(N=>N!==P.name))},[n]),fo=(0,z.useCallback)(P=>{n.select(P),m==null||m(P)},[n,m]),Ot=Mt({onSelect:p,onSelectionChange:fo,selectionModel:v}),Co=(0,z.useCallback)((P,N,I)=>{Ot(P,N,I),u==null||u(P)},[u,Ot]);(0,z.useEffect)(()=>{n.on("config",(P,N)=>{b({type:"tableConfig",...P,confirmed:N})})},[n,b]);let ml=(0,z.useCallback)((P,N)=>{let I=k[P];b({type:"moveColumn",column:I,moveTo:N})},[k,b]),pl=(0,z.useCallback)((P,N,I)=>n.applyEdit(P,N,I),[n]),{onMouseDown:dl,...fl}=(0,el.useDragDropNext)({allowDragDrop:!0,containerRef:o,draggableClassName:"vuuTableNext",onDrop:ml,orientation:"horizontal",itemQuery:".vuuTableNextHeaderCell"});return{...ce,onKeyDown:co,columnMap:Ae,columns:k,data:pe,handleContextMenuAction:It,headerProps:{onClick:mo,onMouseDown:dl,onResize:$t},menuBuilder:D,onContextMenu:uo,onDataEdited:pl,onRemoveGroupColumn:po,onResize:M,onRowClick:Co,onToggleGroup:Ft,scrollProps:G,tableAttributes:y,viewportMeasurements:ie,dragDropHook:fl}};var ro=require("@vuu-ui/vuu-layout"),nl=require("@salt-ds/core");var se=require("react/jsx-runtime"),Qo=require("react"),le="vuuTableNext",{IDX:pi,RENDER_IDX:di}=it.metadataKeys,rl=(0,no.forwardRef)(function({Row:t=Wo,availableColumns:o,className:n,config:r,dataSource:l,id:s,navigationStyle:i="cell",onAvailableColumnsChange:a,onConfigChange:c,onFeatureEnabled:u,onFeatureInvocation:p,onRowClick:m,onSelect:C,onSelectionChange:h,onShowConfigEditor:v,renderBufferSize:T=0,rowHeight:x=20,selectionModel:g="extended",showColumnHeaders:f=!0,headerHeight:M=f?25:0,style:D,...w},d){let b=(0,ro.useId)(s),H=(0,no.useRef)(null),{columnMap:y,columns:R,data:A,dragDropHook:S,handleContextMenuAction:k,headerProps:te,onDataEdited:Ae,onRemoveGroupColumn:ct,onResize:kt,onRowClick:Nt,onToggleGroup:ie,menuBuilder:Ge,scrollProps:We,tableAttributes:pe,viewportMeasurements:oe,...ut}=tl({availableColumns:o,config:r,containerRef:H,dataSource:l,headerHeight:M,navigationStyle:i,onAvailableColumnsChange:a,onConfigChange:c,onFeatureEnabled:u,onFeatureInvocation:p,onRowClick:m,onSelect:C,onSelectionChange:h,renderBufferSize:T,rowHeight:x,selectionModel:g}),mt=()=>({...D,"--content-height":`${oe.contentHeight}px`,"--horizontal-scrollbar-height":`${oe.horizontalScrollbarHeight}px`,"--content-width":`${oe.contentWidth}px`,"--pinned-width-left":`${oe.pinnedWidthLeft}px`,"--pinned-width-right":`${oe.pinnedWidthRight}px`,"--header-height":`${M}px`,"--row-height":`${x}px`,"--total-header-height":`${oe.totalHeaderHeight}px`,"--vertical-scrollbar-width":`${oe.verticalScrollbarWidth}px`,"--viewport-body-height":`${oe.viewportBodyHeight}px`}),pt=(0,Xo.default)(le,n,{[`${le}-colLines`]:pe.columnSeparators,[`${le}-rowLines`]:pe.rowSeparators,[`${le}-highlight`]:pe.showHighlightedRow,[`${le}-zebra`]:pe.zebraStripes});return(0,se.jsx)(ol.ContextMenuProvider,{menuActionHandler:k,menuBuilder:Ge,children:(0,se.jsxs)(ro.MeasuredContainer,{...w,className:pt,onResize:kt,ref:(0,nl.useForkRef)(H,d),style:mt(),children:[(0,se.jsx)("div",{className:`${le}-scrollbarContainer`,ref:We.scrollbarContainerRef,children:(0,se.jsx)("div",{className:`${le}-scrollbarContent`})}),(0,se.jsx)("div",{className:`${le}-contentContainer`,ref:We.contentContainerRef,children:(0,se.jsxs)("div",{...ut,className:`${le}-table`,tabIndex:-1,children:[f?(0,se.jsx)("div",{className:`${le}-col-headings`,children:(0,se.jsxs)("div",{className:`${le}-col-headers`,role:"row",children:[R.filter(it.notHidden).map((Y,Ce)=>(0,it.isGroupColumn)(Y)?(0,Qo.createElement)(At,{...te,column:Y,"data-index":Ce,key:Y.name,onRemoveColumn:ct}):(0,Qo.createElement)(gr,{...te,className:(0,Xo.default)({"vuuDraggable-dragAway":Ce===S.draggedItemIndex}),column:Y,"data-index":Ce,id:`${b}-col-${Ce}`,key:Y.name})),S.draggable]})}):null,(0,se.jsx)("div",{className:`${le}-body`,children:A.map(Y=>(0,se.jsx)(t,{columnMap:y,columns:R,onClick:Nt,onDataEdited:Ae,row:Y,offset:x*Y[pi]+M,onToggleGroup:ie,zebraStripes:pe.zebraStripes},Y[di]))})]})})]})})});var ll=require("@vuu-ui/vuu-ui-controls"),at=require("@vuu-ui/vuu-utils");var lo=require("react"),sl=require("react/jsx-runtime"),fi="vuuTableDropdownCell",Ci=["Enter"," "],bi=({column:e,columnMap:t,row:o})=>{var a,c,u;let n=(0,at.isTypeDescriptor)(e.type)&&(0,at.isColumnTypeRenderer)((a=e.type)==null?void 0:a.renderer)?(u=(c=e.type)==null?void 0:c.renderer)==null?void 0:u.values:[],r=t[e.name],[l,s]=(0,lo.useState)(o[r]),i=(0,lo.useCallback)((p,m)=>{m&&s(m)},[]);return(0,sl.jsx)(ll.Dropdown,{className:fi,onSelectionChange:i,openKeys:Ci,selected:l,source:n,width:e.width-17})};(0,at.registerComponent)("dropdown-cell",bi,"cell-renderer",{});var il=require("@vuu-ui/vuu-utils"),al=require("@salt-ds/core"),cl=require("@vuu-ui/vuu-ui-controls"),ul=W(require("classnames"));var io=require("react/jsx-runtime"),so="vuuTableInputCell",gi=()=>(console.warn("onCommit handler has not been provided to InputCell cell renderer"),!0),hi=({column:e,columnMap:t,onCommit:o=gi,row:n})=>{let r=t[e.name],{align:l="left",clientSideEditValidationCheck:s,valueFormatter:i}=e,{warningMessage:a,...c}=(0,cl.useEditableText)({initialValue:i(n[r]),onCommit:o,clientSideEditValidationCheck:s}),u=a&&l==="left"?(0,io.jsx)("span",{className:`${so}-icon`,"data-icon":"error"}):void 0,p=a&&l==="right"?(0,io.jsx)("span",{className:`${so}-icon`,"data-icon":"error"}):void 0;return(0,io.jsx)(al.Input,{...c,className:(0,ul.default)(so,{[`${so}-error`]:a!==void 0}),endAdornment:u,startAdornment:p})};(0,il.registerComponent)("input-cell",hi,"cell-renderer",{});
|
|
2
2
|
//# sourceMappingURL=index.js.map
|