@vuu-ui/vuu-table 0.8.12 → 0.8.13

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.
Files changed (199) hide show
  1. package/cjs/index.js +1 -1
  2. package/cjs/index.js.map +4 -4
  3. package/esm/index.js +1 -1
  4. package/esm/index.js.map +4 -4
  5. package/index.css +1 -1
  6. package/index.css.map +3 -3
  7. package/package.json +9 -9
  8. package/types/vuu-table/src/{table-next/Row.d.ts → Row.d.ts} +5 -5
  9. package/types/vuu-table/src/Table.d.ts +72 -0
  10. package/types/vuu-table/src/cell-renderers/cell-utils.d.ts +7 -0
  11. package/types/vuu-table/src/cell-renderers/checkbox-cell/CheckboxCell.d.ts +3 -0
  12. package/types/vuu-table/src/cell-renderers/checkbox-cell/index.d.ts +1 -0
  13. package/types/vuu-table/src/cell-renderers/dropdown-cell/DropdownCell.d.ts +4 -0
  14. package/types/vuu-table/src/cell-renderers/index.d.ts +5 -0
  15. package/types/vuu-table/src/{table-next/cell-renderers → cell-renderers}/input-cell/InputCell.d.ts +1 -1
  16. package/types/vuu-table/src/cell-renderers/lookup-cell/LookupCell.d.ts +3 -0
  17. package/types/vuu-table/src/cell-renderers/lookup-cell/index.d.ts +1 -0
  18. package/types/vuu-table/src/cell-renderers/toggle-cell/ToggleCell.d.ts +4 -0
  19. package/types/vuu-table/src/cell-renderers/toggle-cell/index.d.ts +1 -0
  20. package/types/vuu-table/src/{table-next/column-header-pill → column-header-pill}/ColumnHeaderPill.d.ts +3 -3
  21. package/types/vuu-table/src/{table-next/column-header-pill → column-header-pill}/GroupColumnPill.d.ts +2 -2
  22. package/types/vuu-table/src/{table-next/column-header-pill → column-header-pill}/SortIndicator.d.ts +2 -2
  23. package/types/vuu-table/src/{table-next/column-menu → column-menu}/ColumnMenu.d.ts +2 -2
  24. package/types/vuu-table/src/{table-next/column-resizing → column-resizing}/useTableColumnResize.d.ts +2 -2
  25. package/types/vuu-table/src/{table-next/context-menu → context-menu}/index.d.ts +1 -1
  26. package/types/vuu-table/src/{table-next/context-menu/useTableContextMenu.d.ts → context-menu/useHandleTableContextMenu.d.ts} +3 -3
  27. package/types/vuu-table/src/header-cell/GroupHeaderCellNext.d.ts +10 -0
  28. package/types/vuu-table/src/{table-next/header-cell → header-cell}/HeaderCell.d.ts +2 -2
  29. package/types/vuu-table/src/{table-next/header-cell → header-cell}/index.d.ts +0 -1
  30. package/types/vuu-table/src/index.d.ts +9 -4
  31. package/types/vuu-table/src/{table-next/table-cell → table-cell}/TableCell.d.ts +1 -1
  32. package/types/vuu-table/src/{table-next/table-cell → table-cell}/TableGroupCell.d.ts +1 -1
  33. package/types/vuu-table/src/{table-next/table-config.d.ts → table-config.d.ts} +1 -1
  34. package/types/vuu-table/src/{table-next/table-dom-utils.d.ts → table-dom-utils.d.ts} +3 -1
  35. package/types/vuu-table/src/table-header/TableHeader.d.ts +18 -0
  36. package/types/vuu-table/src/table-header/useTableHeader.d.ts +15 -0
  37. package/types/vuu-table/src/useCell.d.ts +6 -0
  38. package/types/vuu-table/src/useCellEditing.d.ts +10 -0
  39. package/types/vuu-table/src/useControlledTableNavigation.d.ts +7 -0
  40. package/types/vuu-table/src/{table-next/useDataSource.d.ts → useDataSource.d.ts} +5 -3
  41. package/types/vuu-table/src/{table-next/useKeyboardNavigation.d.ts → useKeyboardNavigation.d.ts} +9 -2
  42. package/types/vuu-table/src/useSelection.d.ts +14 -0
  43. package/types/vuu-table/src/useTable.d.ts +66 -0
  44. package/types/vuu-table/src/useTableContextMenu.d.ts +11 -0
  45. package/types/vuu-table/src/{table-next/useTableModel.d.ts → useTableModel.d.ts} +12 -14
  46. package/types/vuu-table/src/{table-next/useTableViewport.d.ts → useTableViewport.d.ts} +2 -2
  47. package/types/vuu-table/src/{table-next/useVirtualViewport.d.ts → useVirtualViewport.d.ts} +2 -2
  48. package/types/vuu-ui-controls/src/drag-drop/DragDropState.d.ts +15 -0
  49. package/types/vuu-ui-controls/src/drag-drop/dragDropTypesNext.d.ts +91 -0
  50. package/types/vuu-layout/src/Component.d.ts +0 -7
  51. package/types/vuu-layout/src/DraggableLayout.d.ts +0 -7
  52. package/types/vuu-layout/src/dock-layout/DockLayout.d.ts +0 -10
  53. package/types/vuu-layout/src/dock-layout/Drawer.d.ts +0 -18
  54. package/types/vuu-layout/src/dock-layout/index.d.ts +0 -2
  55. package/types/vuu-layout/src/drag-drop/BoxModel.d.ts +0 -143
  56. package/types/vuu-layout/src/drag-drop/DragState.d.ts +0 -46
  57. package/types/vuu-layout/src/drag-drop/Draggable.d.ts +0 -24
  58. package/types/vuu-layout/src/drag-drop/DropMenu.d.ts +0 -10
  59. package/types/vuu-layout/src/drag-drop/DropTarget.d.ts +0 -61
  60. package/types/vuu-layout/src/drag-drop/DropTargetRenderer.d.ts +0 -18
  61. package/types/vuu-layout/src/drag-drop/dragDropTypes.d.ts +0 -51
  62. package/types/vuu-layout/src/drag-drop/index.d.ts +0 -4
  63. package/types/vuu-layout/src/flexbox/Flexbox.d.ts +0 -5
  64. package/types/vuu-layout/src/flexbox/FlexboxLayout.d.ts +0 -6
  65. package/types/vuu-layout/src/flexbox/FluidGrid.d.ts +0 -7
  66. package/types/vuu-layout/src/flexbox/FluidGridLayout.d.ts +0 -6
  67. package/types/vuu-layout/src/flexbox/Splitter.d.ts +0 -13
  68. package/types/vuu-layout/src/flexbox/flexbox-utils.d.ts +0 -12
  69. package/types/vuu-layout/src/flexbox/flexboxTypes.d.ts +0 -51
  70. package/types/vuu-layout/src/flexbox/index.d.ts +0 -4
  71. package/types/vuu-layout/src/flexbox/useResponsiveSizing.d.ts +0 -10
  72. package/types/vuu-layout/src/flexbox/useSplitterResizing.d.ts +0 -2
  73. package/types/vuu-layout/src/index.d.ts +0 -22
  74. package/types/vuu-layout/src/layout-action.d.ts +0 -22
  75. package/types/vuu-layout/src/layout-header/Header.d.ts +0 -13
  76. package/types/vuu-layout/src/layout-header/index.d.ts +0 -1
  77. package/types/vuu-layout/src/layout-persistence/LayoutPersistenceManager.d.ts +0 -53
  78. package/types/vuu-layout/src/layout-persistence/LocalLayoutPersistenceManager.d.ts +0 -18
  79. package/types/vuu-layout/src/layout-persistence/data.d.ts +0 -3
  80. package/types/vuu-layout/src/layout-persistence/index.d.ts +0 -4
  81. package/types/vuu-layout/src/layout-persistence/useLayoutContextMenuItems.d.ts +0 -8
  82. package/types/vuu-layout/src/layout-provider/LayoutProvider.d.ts +0 -15
  83. package/types/vuu-layout/src/layout-provider/LayoutProviderContext.d.ts +0 -9
  84. package/types/vuu-layout/src/layout-provider/index.d.ts +0 -2
  85. package/types/vuu-layout/src/layout-provider/useLayoutDragDrop.d.ts +0 -4
  86. package/types/vuu-layout/src/layout-reducer/flexUtils.d.ts +0 -22
  87. package/types/vuu-layout/src/layout-reducer/index.d.ts +0 -4
  88. package/types/vuu-layout/src/layout-reducer/insert-layout-element.d.ts +0 -8
  89. package/types/vuu-layout/src/layout-reducer/layout-reducer.d.ts +0 -3
  90. package/types/vuu-layout/src/layout-reducer/layoutTypes.d.ts +0 -168
  91. package/types/vuu-layout/src/layout-reducer/layoutUtils.d.ts +0 -31
  92. package/types/vuu-layout/src/layout-reducer/move-layout-element.d.ts +0 -3
  93. package/types/vuu-layout/src/layout-reducer/remove-layout-element.d.ts +0 -3
  94. package/types/vuu-layout/src/layout-reducer/replace-layout-element.d.ts +0 -6
  95. package/types/vuu-layout/src/layout-reducer/resize-flex-children.d.ts +0 -4
  96. package/types/vuu-layout/src/layout-reducer/wrap-layout-element.d.ts +0 -9
  97. package/types/vuu-layout/src/layout-view/View.d.ts +0 -11
  98. package/types/vuu-layout/src/layout-view/ViewContext.d.ts +0 -30
  99. package/types/vuu-layout/src/layout-view/index.d.ts +0 -4
  100. package/types/vuu-layout/src/layout-view/useView.d.ts +0 -21
  101. package/types/vuu-layout/src/layout-view/useViewActionDispatcher.d.ts +0 -9
  102. package/types/vuu-layout/src/layout-view/useViewResize.d.ts +0 -7
  103. package/types/vuu-layout/src/layout-view/viewTypes.d.ts +0 -21
  104. package/types/vuu-layout/src/measured-container/MeasuredContainer.d.ts +0 -9
  105. package/types/vuu-layout/src/measured-container/index.d.ts +0 -2
  106. package/types/vuu-layout/src/measured-container/useMeasuredContainer.d.ts +0 -22
  107. package/types/vuu-layout/src/measured-container/useResizeObserver.d.ts +0 -15
  108. package/types/vuu-layout/src/overflow-container/OverflowContainer.d.ts +0 -17
  109. package/types/vuu-layout/src/overflow-container/index.d.ts +0 -2
  110. package/types/vuu-layout/src/overflow-container/overflow-utils.d.ts +0 -49
  111. package/types/vuu-layout/src/overflow-container/useOverflowContainer.d.ts +0 -20
  112. package/types/vuu-layout/src/palette/Palette.d.ts +0 -22
  113. package/types/vuu-layout/src/palette/index.d.ts +0 -1
  114. package/types/vuu-layout/src/placeholder/Placeholder.d.ts +0 -12
  115. package/types/vuu-layout/src/placeholder/index.d.ts +0 -1
  116. package/types/vuu-layout/src/registry/ComponentRegistry.d.ts +0 -13
  117. package/types/vuu-layout/src/registry/index.d.ts +0 -1
  118. package/types/vuu-layout/src/responsive/breakpoints.d.ts +0 -4
  119. package/types/vuu-layout/src/responsive/index.d.ts +0 -3
  120. package/types/vuu-layout/src/responsive/use-breakpoints.d.ts +0 -7
  121. package/types/vuu-layout/src/responsive/useResizeObserver.d.ts +0 -13
  122. package/types/vuu-layout/src/responsive/utils.d.ts +0 -6
  123. package/types/vuu-layout/src/stack/Stack.d.ts +0 -4
  124. package/types/vuu-layout/src/stack/StackLayout.d.ts +0 -7
  125. package/types/vuu-layout/src/stack/index.d.ts +0 -3
  126. package/types/vuu-layout/src/stack/stackTypes.d.ts +0 -21
  127. package/types/vuu-layout/src/toolbar/Toolbar.d.ts +0 -19
  128. package/types/vuu-layout/src/toolbar/index.d.ts +0 -1
  129. package/types/vuu-layout/src/toolbar/toolbar-dom-utils.d.ts +0 -3
  130. package/types/vuu-layout/src/toolbar/useKeyboardNavigation.d.ts +0 -32
  131. package/types/vuu-layout/src/toolbar/useSelection.d.ts +0 -22
  132. package/types/vuu-layout/src/toolbar/useToolbar.d.ts +0 -28
  133. package/types/vuu-layout/src/tools/config-wrapper/ConfigWrapper.d.ts +0 -2
  134. package/types/vuu-layout/src/tools/config-wrapper/index.d.ts +0 -1
  135. package/types/vuu-layout/src/tools/devtools-box/layout-configurator.d.ts +0 -31
  136. package/types/vuu-layout/src/tools/devtools-tree/layout-tree-viewer.d.ts +0 -5
  137. package/types/vuu-layout/src/tools/index.d.ts +0 -3
  138. package/types/vuu-layout/src/use-persistent-state.d.ts +0 -11
  139. package/types/vuu-layout/src/utils/index.d.ts +0 -6
  140. package/types/vuu-layout/src/utils/pathUtils.d.ts +0 -31
  141. package/types/vuu-layout/src/utils/propUtils.d.ts +0 -5
  142. package/types/vuu-layout/src/utils/react-utils.d.ts +0 -4
  143. package/types/vuu-layout/src/utils/refUtils.d.ts +0 -2
  144. package/types/vuu-layout/src/utils/styleUtils.d.ts +0 -3
  145. package/types/vuu-layout/src/utils/typeOf.d.ts +0 -4
  146. package/types/vuu-table/src/table/ColumnResizer.d.ts +0 -8
  147. package/types/vuu-table/src/table/DragVisualizer.d.ts +0 -8
  148. package/types/vuu-table/src/table/RowBasedTable.d.ts +0 -4
  149. package/types/vuu-table/src/table/SortIndicator.d.ts +0 -7
  150. package/types/vuu-table/src/table/Table.d.ts +0 -9
  151. package/types/vuu-table/src/table/TableCell.d.ts +0 -4
  152. package/types/vuu-table/src/table/TableGroupCell.d.ts +0 -4
  153. package/types/vuu-table/src/table/TableGroupHeaderCell.d.ts +0 -13
  154. package/types/vuu-table/src/table/TableHeaderCell.d.ts +0 -11
  155. package/types/vuu-table/src/table/TableRow.d.ts +0 -16
  156. package/types/vuu-table/src/table/cell-renderers/index.d.ts +0 -1
  157. package/types/vuu-table/src/table/cell-renderers/json-cell/JsonCell.d.ts +0 -1
  158. package/types/vuu-table/src/table/cell-renderers/json-cell/index.d.ts +0 -1
  159. package/types/vuu-table/src/table/context-menu/buildContextMenuDescriptors.d.ts +0 -4
  160. package/types/vuu-table/src/table/context-menu/index.d.ts +0 -2
  161. package/types/vuu-table/src/table/context-menu/useTableContextMenu.d.ts +0 -16
  162. package/types/vuu-table/src/table/dataTableTypes.d.ts +0 -109
  163. package/types/vuu-table/src/table/filter-indicator.d.ts +0 -13
  164. package/types/vuu-table/src/table/index.d.ts +0 -10
  165. package/types/vuu-table/src/table/keyUtils.d.ts +0 -19
  166. package/types/vuu-table/src/table/useDataSource.d.ts +0 -41
  167. package/types/vuu-table/src/table/useDraggableColumn.d.ts +0 -9
  168. package/types/vuu-table/src/table/useKeyboardNavigation.d.ts +0 -22
  169. package/types/vuu-table/src/table/useMeasuredContainer.d.ts +0 -30
  170. package/types/vuu-table/src/table/useMeasuredSize.d.ts +0 -26
  171. package/types/vuu-table/src/table/useResizeObserver.d.ts +0 -15
  172. package/types/vuu-table/src/table/useSelection.d.ts +0 -9
  173. package/types/vuu-table/src/table/useTable.d.ts +0 -62
  174. package/types/vuu-table/src/table/useTableColumnResize.d.ts +0 -17
  175. package/types/vuu-table/src/table/useTableModel.d.ts +0 -80
  176. package/types/vuu-table/src/table/useTableScroll.d.ts +0 -29
  177. package/types/vuu-table/src/table/useVirtualViewport.d.ts +0 -17
  178. package/types/vuu-table/src/table-next/TableNext.d.ts +0 -4
  179. package/types/vuu-table/src/table-next/cell-renderers/dropdown-cell/DropdownCell.d.ts +0 -4
  180. package/types/vuu-table/src/table-next/cell-renderers/index.d.ts +0 -2
  181. package/types/vuu-table/src/table-next/header-cell/GroupHeaderCell.d.ts +0 -9
  182. package/types/vuu-table/src/table-next/header-cell/GroupHeaderCellNext.d.ts +0 -9
  183. package/types/vuu-table/src/table-next/index.d.ts +0 -5
  184. package/types/vuu-table/src/table-next/useCell.d.ts +0 -6
  185. package/types/vuu-table/src/table-next/useCellEditing.d.ts +0 -7
  186. package/types/vuu-table/src/table-next/useTableContextMenu.d.ts +0 -8
  187. package/types/vuu-table/src/table-next/useTableNext.d.ts +0 -66
  188. /package/types/vuu-table/src/{table-next/cell-renderers → cell-renderers}/dropdown-cell/index.d.ts +0 -0
  189. /package/types/vuu-table/src/{table-next/cell-renderers → cell-renderers}/input-cell/index.d.ts +0 -0
  190. /package/types/vuu-table/src/{table-next/column-header-pill → column-header-pill}/index.d.ts +0 -0
  191. /package/types/vuu-table/src/{table-next/column-menu → column-menu}/index.d.ts +0 -0
  192. /package/types/vuu-table/src/{table-next/column-resizing → column-resizing}/ColumnResizer.d.ts +0 -0
  193. /package/types/vuu-table/src/{table-next/column-resizing → column-resizing}/index.d.ts +0 -0
  194. /package/types/vuu-table/src/{table-next/context-menu → context-menu}/buildContextMenuDescriptors.d.ts +0 -0
  195. /package/types/vuu-table/src/{table-next/moving-window.d.ts → moving-window.d.ts} +0 -0
  196. /package/types/vuu-table/src/{table-next/table-cell → table-cell}/index.d.ts +0 -0
  197. /package/types/vuu-table/src/{table-next/useInitialValue.d.ts → useInitialValue.d.ts} +0 -0
  198. /package/types/vuu-table/src/{table-next/useResizeObserver.d.ts → useResizeObserver.d.ts} +0 -0
  199. /package/types/vuu-table/src/{table-next/useTableScroll.d.ts → useTableScroll.d.ts} +0 -0
package/cjs/index.js CHANGED
@@ -1,2 +1,2 @@
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",{});
1
+ "use strict";var dr=Object.create;var Fe=Object.defineProperty;var fr=Object.getOwnPropertyDescriptor;var Cr=Object.getOwnPropertyNames;var br=Object.getPrototypeOf,gr=Object.prototype.hasOwnProperty;var hr=(e,o)=>{for(var t in o)Fe(e,t,{get:o[t],enumerable:!0})},jo=(e,o,t,r)=>{if(o&&typeof o=="object"||typeof o=="function")for(let n of Cr(o))!gr.call(e,n)&&n!==t&&Fe(e,n,{get:()=>o[n],enumerable:!(r=fr(o,n))||r.enumerable});return e};var Z=(e,o,t)=>(t=e!=null?dr(br(e)):{},jo(o||!e||!e.__esModule?Fe(t,"default",{value:e,enumerable:!0}):t,e)),vr=e=>jo(Fe({},"__esModule",{value:!0}),e);var wl={};hr(wl,{CheckboxCell:()=>Vo,DropdownCell:()=>vn,GroupHeaderCellNext:()=>Ge,HeaderCell:()=>fo,InputCell:()=>Mn,LookupCell:()=>En,Table:()=>gl,ToggleCell:()=>Nn,isShowColumnSettings:()=>So,isShowTableSettings:()=>Ao,updateTableConfig:()=>wo,useControlledTableNavigation:()=>Dl,useTableModel:()=>Lo,useTableViewport:()=>ko});module.exports=vr(wl);var ut=Z(require("classnames")),De=require("react");var he=require("react");var et=require("react/jsx-runtime"),qo=()=>{},Rr="vuuColumnResizerNext",$e=({onDrag:e,onDragEnd:o=qo,onDragStart:t=qo})=>{let r=(0,he.useRef)(0),n=(0,he.useCallback)(a=>{a.stopPropagation&&a.stopPropagation(),a.preventDefault&&a.preventDefault();let s=Math.round(a.clientX),u=s-r.current;r.current=s,u!==0&&e(a,u)},[e]),l=(0,he.useCallback)(a=>{window.removeEventListener("mouseup",l),window.removeEventListener("mousemove",n),o(a)},[o,n]),i=(0,he.useCallback)(a=>{t(a),r.current=Math.round(a.clientX),window.addEventListener("mouseup",l),window.addEventListener("mousemove",n),a.stopPropagation&&a.stopPropagation(),a.preventDefault&&a.preventDefault()},[t,n,l]);return(0,et.jsx)("div",{className:Rr,onMouseDown:i})};var ie=require("react"),Oe=({column:e,onResize:o,rootRef:t})=>{let r=(0,ie.useRef)(0),[n,l]=(0,ie.useState)(!1),{name:i}=e,a=(0,ie.useCallback)(()=>{if(o&&t.current){let{width:m}=t.current.getBoundingClientRect();r.current=Math.round(m),l(!0),o==null||o("begin",i)}},[i,o,t]),s=(0,ie.useCallback)((m,c)=>{if(t.current&&o){let{width:C}=t.current.getBoundingClientRect(),f=Math.round(C)+c;f!==r.current&&f>0&&(o("resize",i,f),r.current=f)}},[i,o,t]),u=(0,ie.useCallback)(()=>{o&&(o("end",i,r.current),setTimeout(()=>{l(!1)},80))},[i,o]);return{isResizing:n,onDrag:s,onDragStart:a,onDragEnd:u}};var ot=require("@vuu-ui/vuu-utils"),tt=Z(require("classnames")),nt=require("react"),se=(e,o,t)=>(0,nt.useMemo)(()=>{let r=(0,tt.default)(o,{vuuPinFloating:e.pin==="floating",vuuPinLeft:e.pin==="left",vuuPinRight:e.pin==="right",vuuEndPin:t&&e.endPin,[`${o}-editable`]:e.editable,[`${o}-right`]:e.align==="right"}),n=(0,ot.getColumnStyle)(e);return{className:r,style:n}},[e,o,t]);var lt=Z(require("classnames")),it=require("react");var Be=require("react/jsx-runtime"),rt="vuuColumnHeaderPill",ve=({children:e,className:o,column:t,onRemove:r,removable:n,...l})=>{if(n&&typeof r!="function")throw Error("ColumnHeaderPill onRemove prop must be provided if Pill is removable");let i=(0,it.useCallback)(a=>{a.preventDefault(),a.stopPropagation(),r==null||r(t)},[t,r]);return(0,Be.jsxs)("div",{...l,className:(0,lt.default)(rt,o),children:[e,n?(0,Be.jsx)("span",{className:`${rt}-removeButton`,role:"button","data-icon":"cross",onClick:i}):null]})};var Re=require("react/jsx-runtime"),st=({column:e,...o})=>{let{name:t,sorted:r}=e,n=typeof r=="number"?r<0?"arrow-down":"arrow-up":r==="A"?"arrow-up":r==="D"?"arrow-down":void 0;return(0,Re.jsxs)(ve,{...o,column:e,children:[(0,Re.jsx)("span",{className:"vuuGroupColumnPill-label",children:t}),n!==void 0?(0,Re.jsx)("span",{"data-icon":n}):null,typeof r=="number"?(0,Re.jsx)("span",{className:"vuuSortPosition",children:Math.abs(r)}):null]})};var Le=require("react/jsx-runtime"),at=({column:e})=>{if(!e.sorted)return null;let o=typeof e.sorted=="number"?e.sorted<0?"arrow-down":"arrow-up":e.sorted==="A"?"arrow-up":"arrow-down";return(0,Le.jsxs)(ve,{column:e,children:[(0,Le.jsx)("span",{"data-icon":o}),typeof e.sorted=="number"?(0,Le.jsx)("span",{className:"vuuSortPosition",children:Math.abs(e.sorted)}):null]})};var We=require("@vuu-ui/vuu-layout");var Te=require("react/jsx-runtime"),ct=require("react"),po="vuuTableGroupHeaderCell",Tr=(e,o)=>e===o?e:o,Ge=({column:e,className:o,onMoveColumn:t,onRemoveColumn:r,onResize:n,...l})=>{let i=(0,De.useRef)(null),{isResizing:a,...s}=Oe({column:e,onResize:n,rootRef:i}),[u,m]=(0,De.useState)(e.columns),{className:c,style:C}=se(e,po,!0),f=u.length>1?{removable:!0,onRemove:r}:void 0,R=(0,De.useCallback)((T,d)=>{m(w=>{let E=w.slice(),[g]=E.splice(T,1);if(d===-1){let H=E.concat(g);return t==null||t(H),H}else return E.splice(d,0,g),t==null||t(E),E})},[t]);return(0,We.useLayoutEffectSkipFirst)(()=>{m(T=>Tr(T,e.columns))},[e.columns]),(0,Te.jsxs)("div",{...l,className:(0,ut.default)(c,o,{[`${po}-pending`]:e.groupConfirmed===!1}),ref:i,role:"columnheader",style:C,children:[(0,Te.jsx)(We.OverflowContainer,{allowDragDrop:!0,className:`${po}-inner`,height:24,onMoveItem:R,overflowPosition:"start",children:u.map(T=>(0,ct.createElement)(st,{...f,column:T,key:T.key}))}),(0,Te.jsx)(ve,{column:e,removable:!0,onRemove:r}),e.resizeable!==!1?(0,Te.jsx)($e,{...s}):null]})};var _e=require("react");var mt=require("@vuu-ui/vuu-popups"),pt=Z(require("classnames")),pe=require("react");var ft=require("react/jsx-runtime"),Dr=e=>{if(e){let{bottom:o,left:t}=e.getBoundingClientRect();return{x:t,y:o+6}}},dt=({className:e,column:o,...t})=>{let r=(0,pe.useRef)(null),[n,l]=(0,pe.useState)(!1),[i]=(0,mt.useContextMenu)(),a=(0,pe.useCallback)(()=>{l(!1)},[]),s=(0,pe.useCallback)(u=>{l(!0),i(u,"column-menu",{column:o,ContextMenuProps:{onClose:a,position:Dr(r.current)}})},[o,a,i]);return(0,ft.jsx)("span",{...t,className:(0,pt.default)("vuuTable-columnMenu",e,{"vuuTable-columnMenu-open":n}),"data-icon":"more-vert",onClick:s,ref:r})};var Ct=Z(require("classnames"));var te=require("react/jsx-runtime"),Ue="vuuTableHeaderCell",fo=({className:e,column:o,onClick:t,onResize:r,...n})=>{var E;let{HeaderCellContentRenderer:l,HeaderCellLabelRenderer:i}=o,a=(0,_e.useRef)(null),{isResizing:s,...u}=Oe({column:o,onResize:r,rootRef:a}),m=(0,_e.useCallback)(g=>{!s&&(t==null||t(g))},[s,t]),{className:c,style:C}=se(o,Ue,!0),f=(0,te.jsx)(dt,{column:o}),R=i?(0,te.jsx)(i,{className:`${Ue}-label`,column:o}):(0,te.jsx)("div",{className:`${Ue}-label`,children:(E=o.label)!=null?E:o.name}),T=l?[(0,te.jsx)(l,{column:o},"content")]:[],d=(0,te.jsx)(at,{column:o}),w=o.align==="right"?[d,R].concat(T).concat(f):[f,R,d].concat(T);return(0,te.jsxs)("div",{...n,className:(0,Ct.default)(c,e,{[`${Ue}-resizing`]:s}),onClick:m,ref:a,role:"columnheader",style:C,children:[...w,o.resizeable!==!1?(0,te.jsx)($e,{...u}):null]})};var eo=require("@vuu-ui/vuu-layout"),fn=require("@vuu-ui/vuu-popups"),Cn=require("@vuu-ui/vuu-utils"),bn=require("@salt-ds/core"),No=Z(require("classnames")),He=require("react");var U=require("@vuu-ui/vuu-utils"),Tt=Z(require("classnames")),ke=require("react");var bt=require("@vuu-ui/vuu-utils"),Co=require("react");var bo=require("react/jsx-runtime"),wr="vuuTableCell",gt=({column:e,columnMap:o,onClick:t,onDataEdited:r,row:n})=>{let{className:l,style:i}=se(e,wr),{CellRenderer:a,name:s,valueFormatter:u}=e,m=o[s],c=(0,Co.useCallback)(f=>{if(r){let R=f;return(0,bt.isNumericColumn)(e)&&typeof f=="string"&&(R=e.serverDataType==="double"?parseFloat(f):parseInt(f)),r==null?void 0:r(n,s,R)}else throw Error("TableCell onDataEdited prop not supplied for an editable cell")},[e,s,r,n]),C=(0,Co.useCallback)(f=>{t==null||t(f,e)},[e,t]);return(0,bo.jsx)("div",{className:l,onClick:t?C:void 0,role:"cell",style:i,children:a?(0,bo.jsx)(a,{column:e,columnMap:o,onCommit:c,row:n}):u(n[m])})};var Je=require("@vuu-ui/vuu-utils"),ht=require("react");var vt=Z(require("classnames"));var we=require("react/jsx-runtime"),{IS_LEAF:yr}=Je.metadataKeys,go="vuuTableGroupCell",Rt=({column:e,onClick:o,row:t})=>{let{columns:r}=e,[n,l]=(0,Je.getGroupValueAndOffset)(r,t),{className:i,style:a}=se(e,go),s=(0,ht.useCallback)(c=>{o==null||o(c,e)},[e,o]),u=t[yr],m=Array(l).fill(0).map((c,C)=>(0,we.jsx)("span",{className:`${go}-spacer`},C));return(0,we.jsxs)("div",{className:(0,vt.default)(i,"vuuTableCell"),role:"cell",style:a,onClick:u?void 0:s,children:[m,u?null:(0,we.jsx)("span",{className:`${go}-toggle`,"data-icon":"triangle-right"}),(0,we.jsx)("span",{children:n})]})};var Xe=require("react/jsx-runtime"),Dt=require("react"),{IDX:Mr,IS_EXPANDED:xr,SELECTED:Hr}=U.metadataKeys,ne="vuuTableRow",ho=(0,ke.memo)(({className:e,columnMap:o,columns:t,highlighted:r,row:n,offset:l,onClick:i,onDataEdited:a,onToggleGroup:s,zebraStripes:u=!1,...m})=>{let{[Mr]:c,[xr]:C,[Hr]:f}=n,R=(0,ke.useCallback)(y=>{let M=y.shiftKey,A=y.ctrlKey||y.metaKey;i==null||i(n,M,A)},[i,n]),{True:T,First:d,Last:w}=U.RowSelected,E=(0,Tt.default)(ne,e,{[`${ne}-even`]:u&&c%2===0,[`${ne}-expanded`]:C,[`${ne}-highlighted`]:r,[`${ne}-selected`]:f&T,[`${ne}-selectedStart`]:f&d,[`${ne}-selectedEnd`]:f&w}),g={transform:`translate3d(0px, ${l}px, 0px)`},H=(0,ke.useCallback)((y,M)=>{((0,U.isGroupColumn)(M)||(0,U.isJsonGroup)(M,n))&&(y.stopPropagation(),s==null||s(n,M))},[s,n]);return(0,Dt.createElement)("div",{...m,"aria-rowindex":n[0],key:`row-${n[0]}`,role:"row",className:E,onClick:R,style:g},(0,Xe.jsx)("span",{className:`${ne}-selectionDecorator vuuStickyLeft`}),t.filter(U.isNotHidden).map(y=>{let M=(0,U.isGroupColumn)(y),A=(0,U.isJsonColumn)(y);return(0,Xe.jsx)(M?Rt:gt,{column:y,columnMap:o,onClick:M||A?H:void 0,onDataEdited:a,row:n},y.key)}),(0,Xe.jsx)("span",{className:`${ne}-selectionDecorator vuuStickyRight`}))});ho.displayName="Row";var Io=require("@vuu-ui/vuu-layout"),ln=require("@vuu-ui/vuu-table-extras"),sn=require("@vuu-ui/vuu-ui-controls"),O=require("@vuu-ui/vuu-utils"),x=require("react");var wt=require("@vuu-ui/vuu-utils"),yt=e=>(o,t)=>{let r=[];if(e===void 0)return r;if(o==="header"||o==="column-menu")r.push(...Pr(t,e)),r.push(...Ar(t,e)),r.push(...Er(t,e)),r.push(...Sr(t)),r.push({action:"column-settings",icon:"cog",label:"Column Settings",options:t}),r.push({action:"table-settings",icon:"cog",label:"DataGrid Settings",options:t});else if(o==="filter"){let{column:n,filter:l}=t,i=(l==null?void 0:l.column)===(n==null?void 0:n.name);r.push({label:"Edit filter",action:"filter-edit",options:t}),r.push({label:"Remove filter",action:"filter-remove-column",options:t}),n&&!i&&r.push({label:"Remove all filters",action:"remove-filters",options:t})}return r};function Pr(e,{sort:{sortDefs:o}}){let{column:t}=e,r=[];if(t===void 0)return r;let n=o.length>0;return t.sorted==="A"?r.push({label:"Reverse Sort (DSC)",action:"sort-dsc",options:e}):t.sorted==="D"?r.push({label:"Reverse Sort (ASC)",action:"sort-asc",options:e}):typeof t.sorted=="number"?(t.sorted>0?r.push({label:"Reverse Sort (DSC)",action:"sort-add-dsc",options:e}):r.push({label:"Reverse Sort (ASC)",action:"sort-add-asc",options:e}),n&&Math.abs(t.sorted)<o.length&&r.push({label:"Remove from sort",action:"sort-remove",options:e}),r.push({label:"New Sort",children:[{label:"Ascending",action:"sort-asc",options:e},{label:"Descending",action:"sort-dsc",options:e}]})):n?(r.push({label:"Add to sort",children:[{label:"Ascending",action:"sort-add-asc",options:e},{label:"Descending",action:"sort-add-dsc",options:e}]}),r.push({label:"New Sort",children:[{label:"Ascending",action:"sort-asc",options:e},{label:"Descending",action:"sort-dsc",options:e}]})):r.push({label:"Sort",children:[{label:"Ascending",action:"sort-asc",options:e},{label:"Descending",action:"sort-dsc",options:e}]}),r}function Er(e,o){let{column:t}=e;if(t===void 0||o.groupBy.length===0)return[];let{name:r,label:n=r}=t;return[{label:`Aggregate ${n}`,children:[{label:"Count",action:"agg-count",options:e},{label:"Distinct",action:"agg-distinct",options:e}].concat((0,wt.isNumericColumn)(t)?[{label:"Sum",action:"agg-sum",options:e},{label:"Avg",action:"agg-avg",options:e},{label:"High",action:"agg-high",options:e},{label:"Low",action:"agg-low",options:e}]:[])}]}var Do=(e,o)=>({label:`Pin ${o}`,action:`column-pin-${o}`,options:e}),vo=e=>Do(e,"left"),Ro=e=>Do(e,"floating"),To=e=>Do(e,"right");function Sr(e){let{column:o}=e;if(o===void 0)return[];let{pin:t}=o,r=[{label:"Hide column",action:"column-hide",options:e},{label:"Remove column",action:"column-remove",options:e}];return t===void 0?r.push({label:"Pin column",children:[vo(e),Ro(e),To(e)]}):t==="left"?r.push({label:"Unpin column",action:"column-unpin",options:e},{label:"Pin column",children:[Ro(e),To(e)]}):t==="right"?r.push({label:"Unpin column",action:"column-unpin",options:e},{label:"Pin column",children:[vo(e),Ro(e)]}):t==="floating"&&r.push({label:"Unpin column",action:"column-unpin",options:e},{label:"Pin column",children:[vo(e),To(e)]}),r}function Ar(e,{groupBy:o}){let{column:t}=e,r=[];if(t===void 0)return r;let{name:n,label:l=n}=t;return o.length===0?r.push({label:`Group by ${l}`,action:"group",options:e}):r.push({label:`Add ${l} to group by`,action:"group-add",options:e}),r}var Mt=require("@vuu-ui/vuu-utils"),F=require("@vuu-ui/vuu-utils"),Lr=(e,o)=>{if(e.filterStruct&&o){let[t,r]=(0,Mt.removeColumnFromFilter)(o,e.filterStruct);return{filter:r,filterStruct:t}}else return e},{Average:kr,Count:Ir,Distinct:Nr,High:zr,Low:Vr,Sum:Kr}=F.AggregationType,xt=({dataSource:e,onPersistentColumnOperation:o})=>r=>{let n=r.options;if(n.column&&e){let{column:l}=n;switch(r.menuId){case"sort-asc":return e.sort=(0,F.setSortColumn)(e.sort,l,"A"),!0;case"sort-dsc":return e.sort=(0,F.setSortColumn)(e.sort,l,"D"),!0;case"sort-add-asc":return e.sort=(0,F.addSortColumn)(e.sort,l,"A"),!0;case"sort-add-dsc":return e.sort=(0,F.addSortColumn)(e.sort,l,"D"),!0;case"group":return e.groupBy=(0,F.addGroupColumn)(e.groupBy,l),!0;case"group-add":return e.groupBy=(0,F.addGroupColumn)(e.groupBy,l),!0;case"column-hide":return o({type:"hideColumns",columns:[l]}),!0;case"column-remove":return e.columns=e.columns.filter(i=>i!==l.name),!0;case"filter-remove-column":return e.filter=Lr(e.filter,l),!0;case"remove-filters":return e.filter={filter:""},!0;case"agg-avg":return e.aggregations=(0,F.setAggregations)(e.aggregations,l,kr),!0;case"agg-high":return e.aggregations=(0,F.setAggregations)(e.aggregations,l,zr),!0;case"agg-low":return e.aggregations=(0,F.setAggregations)(e.aggregations,l,Vr),!0;case"agg-count":return e.aggregations=(0,F.setAggregations)(e.aggregations,l,Ir),!0;case"agg-distinct":return e.aggregations=(0,F.setAggregations)(e.aggregations,l,Nr),!0;case"agg-sum":return e.aggregations=(0,F.setAggregations)(e.aggregations,l,Kr),!0;case"column-pin-floating":return o({type:"pinColumn",column:l,pin:"floating"}),!0;case"column-pin-left":return o({type:"pinColumn",column:l,pin:"left"}),!0;case"column-pin-right":return o({type:"pinColumn",column:l,pin:"right"}),!0;case"column-unpin":return o({type:"pinColumn",column:l,pin:void 0}),!0;case"column-settings":return o({type:"columnSettings",column:l}),!0;case"table-settings":return o({type:"tableSettings"}),!0;default:}}return!1};var wo=(e,o)=>{switch(o.type){case"col-size":return{...e,columns:e.columns.map(t=>t.name===o.column.name?{...t,width:o.width}:t)};case"column-prop":return{...e,columns:e.columns.map(t=>t.name===o.column.name?{...t,[o.property]:o.value}:t)};default:return e}};var St=require("@vuu-ui/vuu-utils"),ae=require("react");var yo=e=>`.vuuTable-col-headers .vuuTableHeaderCell:nth-child(${e})`,Mo=(e,o)=>`.vuuTable-body > [aria-rowindex='${e}'] > [role='cell']:nth-child(${o+1})`,Ht=(e,[o,t])=>{var l;let r=o===-1?yo(t):Mo(o,t),n=(l=e.current)==null?void 0:l.querySelector(r);return Fr(n)&&n.querySelector("button")||n},Fr=e=>e.classList.contains("vuuTableCell-editable"),Pt=e=>e.querySelector(".vuuTableInputCell")!==null;function $r(e){if(e){let o=e.ariaRowIndex;if(o!==null)return parseInt(o,10)}return-1}var Or=e=>e.closest('[role="row"]'),Et=e=>$r(Or(e));var At=({navigate:e})=>{let o=(0,ae.useCallback)(()=>{e()},[e]),t=(0,ae.useCallback)(s=>{let u=s.target,m=u.matches("input")?u:u.querySelector("input");m&&(m.focus(),m.select())},[]),r=(0,ae.useCallback)(s=>{let m=s.target.querySelector("input");m&&(m.focus(),m.select())},[]),n=(0,ae.useCallback)(s=>{let u=s.target;Pt(u)&&((0,St.isCharacterKey)(s.key)?t(s):s.key==="Enter"&&r(s))},[t,r]),l=(0,ae.useCallback)(s=>{let u=s.target;(u.matches("input")||u.querySelector("input"))&&(t(s),s.stopPropagation())},[t]),i=(0,ae.useCallback)(s=>{s.target.removeEventListener("vuu-commit",o,!0)},[o]),a=(0,ae.useCallback)(s=>{s.target.addEventListener("vuu-commit",o,!0)},[o]);return{onBlur:i,onDoubleClick:l,onFocus:a,onKeyDown:n}};var Lt=require("@vuu-ui/vuu-data"),de=require("@vuu-ui/vuu-utils"),$=require("react");var ye=require("@vuu-ui/vuu-utils"),{SELECTED:xo}=ye.metadataKeys,Qe=class{constructor({from:o,to:t}){this.rowCount=0;this.setRowCount=o=>{o<this.data.length&&(this.data.length=o),this.rowCount=o};this.range=new ye.WindowRange(o,t),this.data=new Array(Math.max(0,t-o)),this.rowCount=0}add(o){let[t]=o;if(this.isWithinRange(t)){let r=t-this.range.from;if(this.data[r]=o,o[xo]){let n=this.data[r-1];(0,ye.isRowSelectedLast)(n)&&(this.data[r-1]=n.slice(),this.data[r-1][xo]-=4)}}}getAtIndex(o){return this.range.isWithin(o)&&this.data[o-this.range.from]!=null?this.data[o-this.range.from]:void 0}isWithinRange(o){return this.range.isWithin(o)}setRange({from:o,to:t}){if(o!==this.range.from||t!==this.range.to){let[r,n]=this.range.overlap(o,t),l=new Array(Math.max(0,t-o));for(let i=r;i<n;i++){let a=this.getAtIndex(i);if(a){let s=i-o;l[s]=a}}this.data=l,this.range.from=o,this.range.to=t}}getSelectedRows(){return this.data.filter(o=>o[xo]!==0)}};var kt=({dataSource:e,onFeatureInvocation:o,onSizeChange:t,onSubscribed:r,range:n=de.NULL_RANGE,renderBufferSize:l=0})=>{let[,i]=(0,$.useState)(null),a=(0,$.useRef)([]),s=(0,$.useRef)(!0),u=(0,$.useRef)(!1),m=(0,$.useRef)(de.NULL_RANGE),c=(0,$.useMemo)(()=>new Qe((0,de.getFullRange)(n,l)),[]),C=(0,$.useCallback)(d=>{for(let w of d)c.add(w);a.current=c.data,s.current?i({}):console.log("ignore update as we're not mounted")},[c]),f=(0,$.useCallback)(d=>{d.type==="subscribed"?r==null||r(d):d.type==="viewport-update"?(typeof d.size=="number"&&(t==null||t(d.size),c.setRowCount(d.size)),d.rows?C(d.rows):typeof d.size=="number"&&(a.current=c.data,u.current=!0)):(0,Lt.isVuuFeatureInvocation)(d)?o==null||o(d):console.log(`useDataSource unexpected message ${d.type}`)},[c,o,t,r,C]),R=(0,$.useCallback)(()=>c.getSelectedRows(),[c]);(0,$.useEffect)(()=>{var d;return s.current=!0,(d=e.resume)==null||d.call(e),()=>{var w;s.current=!1,(w=e.suspend)==null||w.call(e)}},[e]),(0,$.useEffect)(()=>{var d;e.status==="disabled"?(d=e.enable)==null||d.call(e,f):e==null||e.subscribe({range:(0,de.getFullRange)(n,l)},f)},[e,f,n,l]);let T=(0,$.useCallback)(d=>{let w=(0,de.getFullRange)(d,l);c.setRange(w),e.range=m.current=w,e.emit("range",d)},[e,c,l]);return{data:a.current,dataRef:a,getSelectedRows:R,range:m.current,setRange:T}};var Ye=require("react"),It=e=>{let o=(0,Ye.useRef)(e);return(0,Ye.useMemo)(()=>o.current,[])};var Vt=require("@salt-ds/core"),z=require("react");var Kt=new Set(["Home","End","PageUp","PageDown","ArrowDown","ArrowUp"]),Po=new Set(Kt);Po.add("ArrowLeft");Po.add("ArrowRight");var Br=(e,o)=>{switch(o){case"cell":return Po.has(e);case"row":return Kt.has(e);default:return!1}},Wr=["Home","End","PageUp","PageDown"],Nt=e=>Wr.includes(e),Gr=[-1,-1],Ho=[void 0,void 0],Ft=(e,o=e.closest(".vuuTable-contentContainer"))=>{if(o){let t=o==null?void 0:o.getBoundingClientRect(),r=e.getBoundingClientRect();if(r)return r.bottom>t.bottom?["down",r.bottom-t.bottom]:r.top<t.top?["up",r.top-t.top]:Ho;throw Error("Whats going on, row not found")}else throw Error("Whats going on, scrollbar container not found")},Ur=e=>{var t;let o=e.closest(".vuuTable-contentContainer");if(o){let r=e.closest(".vuuTableRow");if(r){let n=Ft(r,o);if(n!==Ho)return n;let l=o==null?void 0:o.getBoundingClientRect(),i=(t=e.closest(".vuuTableCell"))==null?void 0:t.getBoundingClientRect();if(i){if(i.right>l.right)return["right",i.right+6-l.right];if(i.left<l.left)return["left",i.left-l.left]}else throw Error("Whats going on, cell not found")}}return Ho};function zt(e,[o,t],r,n){return e==="ArrowUp"?o>-1?[o-1,t]:[o,t]:e==="ArrowDown"?o===-1?[0,t]:o===n-1?[o,t]:[o+1,t]:e==="ArrowRight"?t<r?[o,t+1]:[o,t]:e==="ArrowLeft"?t>1?[o,t-1]:[o,t]:[o,t]}var $t=({columnCount:e=0,containerRef:o,disableFocus:t=!1,defaultHighlightedIndex:r,disableHighlightOnFocus:n,highlightedIndex:l,navigationStyle:i,requestScroll:a,onHighlight:s,rowCount:u=0,viewportRowCount:m})=>{var Y;let c=(0,z.useRef)([-1,-1]),C=(0,z.useRef)(),f=(0,z.useRef)([-1,0]),R=(0,z.useRef)(),[T,d]=(0,Vt.useControlled)({controlled:l,default:r,name:"UseKeyboardNavigation"});R.current=T;let w=(0,z.useCallback)((b,h=!1)=>{s==null||s(b),d(b)},[s,d]),E=b=>b==null?void 0:b.closest("[role='columnHeader'],[role='cell']"),g=b=>{var h,D;if(b.role==="columnHeader")return[-1,parseInt((h=b.dataset.idx)!=null?h:"-1",10)];{let k=b.closest("[role='row']");if(k){let V=parseInt((D=k.ariaRowIndex)!=null?D:"-1",10),Se=Array.from(k.childNodes).indexOf(b);return[V,Se]}}return Gr},H=(0,z.useCallback)(b=>{var h;if(o.current){let D=Ht(o,b);if(D){D!==C.current&&((h=C.current)==null||h.removeAttribute("tabindex"),C.current=D,D.setAttribute("tabindex","0"));let[k,V]=Ur(D);k&&V&&(a==null||a({type:"scroll-distance",distance:V,direction:k})),console.log("activeCell focus"),D.focus({preventScroll:!0})}}},[o,a]),y=(0,z.useCallback)((b,h,D=!1)=>{let k=[b,h];f.current=k,i==="row"?d(b):H(k),D&&(c.current=k)},[H,i,d]),M=(0,z.useCallback)((b,[h,D])=>new Promise(k=>{let V=h;switch(b){case"PageDown":V=Math.min(u-1,h+m),a==null||a({type:"scroll-page",direction:"down"});break;case"PageUp":V=Math.max(0,h-m),a==null||a({type:"scroll-page",direction:"up"});break;case"Home":V=0,a==null||a({type:"scroll-end",direction:"home"});break;case"End":V=u-1,a==null||a({type:"scroll-end",direction:"end"});break}setTimeout(()=>{k([V,D])},90)}),[a,u,m]),A=(0,z.useCallback)(()=>{var b;if(n!==!0&&(b=o.current)!=null&&b.contains(document.activeElement)){let h=E(document.activeElement);h&&(c.current=g(h),i==="row"&&d(c.current[0]))}},[n,o,i,d]),L=(0,z.useCallback)(async b=>{let[h,D]=Nt(b)?await M(b,f.current):zt(b,f.current,e,u),[k,V]=f.current;(h!==k||D!==V)&&y(h,D,!0)},[e,M,u,y]),K=(0,z.useCallback)(b=>{let{current:h}=o,D=h==null?void 0:h.querySelector(`[aria-rowindex="${b}"]`);if(D){let[k,V]=Ft(D);k&&V&&(a==null||a({type:"scroll-distance",distance:V,direction:k}))}},[o,a]),j=(0,z.useCallback)(async b=>{let{current:h}=R,[D]=Nt(b)?await M(b,[h!=null?h:-1,0]):zt(b,[h!=null?h:-1,0],e,u);D!==h&&(w(D),K(D))},[e,M,u,K,w]);(0,z.useEffect)(()=>{l!==void 0&&l!==-1&&K(l)},[l,K]);let _=(0,z.useCallback)(b=>{u>0&&Br(b.key,i)&&(b.preventDefault(),b.stopPropagation(),i==="row"?j(b.key):L(b.key))},[u,i,j,L]),J=(0,z.useCallback)(b=>{let h=b.target,D=E(h);if(D){let[k,V]=g(D);y(k,V)}},[y]),P=(0,z.useCallback)(()=>{w(-1)},[w]),q=(0,z.useCallback)(b=>{let h=Et(b.target);h!==-1&&h!==R.current&&w(h)},[w]),Ee=(0,z.useCallback)(()=>{L("ArrowDown")},[L]),I=((Y=o.current)==null?void 0:Y.firstChild)!=null;return(0,z.useEffect)(()=>{if(I&&C.current===void 0&&!t){let{current:b}=o,h=(b==null?void 0:b.querySelector(yo(0)))||(b==null?void 0:b.querySelector(Mo(0,0)));h&&(h.setAttribute("tabindex","0"),C.current=h)}},[o,t,I]),{highlightedIndexRef:R,navigate:Ee,onClick:J,onFocus:A,onKeyDown:_,onMouseLeave:i==="row"?P:void 0,onMouseMove:i==="row"?q:void 0}};var oe=require("@vuu-ui/vuu-utils"),fe=require("react"),{IDX:_r}=oe.metadataKeys,Jr=[],Xr=["Enter"," "],Ot=({highlightedIndexRef:e,selectionKeys:o=Xr,selectionModel:t,onSelect:r,onSelectionChange:n})=>{let l=(0,fe.useRef)(-1),i=(0,fe.useRef)(Jr),a=(0,fe.useCallback)(m=>o.includes(m.key),[o]),s=(0,fe.useCallback)((m,c,C)=>{let{[_r]:f}=m,{current:R}=l,{current:T}=i,w=((0,oe.isRowSelected)(m)?oe.deselectItem:oe.selectItem)(t,T,f,c,C,R);i.current=w,l.current=f,r==null||r(m),n==null||n(w)},[r,n,t]);return{onKeyDown:(0,fe.useCallback)(m=>{if(a(m)){let{current:c}=e;if(c!==void 0&&c!==-1){let C=m.target.querySelector(`[aria-rowindex="${c}"]`);C&&(0,oe.dispatchMouseEvent)(C,"click")}}},[e,a]),onRowClick:s}};var Bt=require("@vuu-ui/vuu-popups"),Wt=require("@vuu-ui/vuu-utils"),Gt=require("react"),Qr=[],Ut=({columns:e,data:o,dataSource:t,getSelectedRows:r})=>{let[n]=(0,Bt.useContextMenu)();return(0,Gt.useCallback)(i=>{var m;let a=i.target,s=a==null?void 0:a.closest("div[role='cell']"),u=a==null?void 0:a.closest("div[role='row']");if(s&&u){let{selectedRowsCount:c}=t,C=(0,Wt.buildColumnMap)(e),f=parseInt((m=u.ariaRowIndex)!=null?m:"-1"),R=Array.from(u.childNodes).indexOf(s),T=o.find(([w])=>w===f),d=e[R];n(i,"grid",{columnMap:C,columnName:d,row:T,selectedRows:c===0?Qr:r(),viewport:t.viewport})}},[e,o,t,r,n])};var v=require("@vuu-ui/vuu-utils"),_t=require("@vuu-ui/vuu-ui-controls"),Jt=require("react"),{info:Eo}=(0,v.logger)("useTableModel"),Yr=100,Zr=v.metadataKeys.count,jr=({serverDataType:e})=>e===void 0,Xt=(e,o)=>{let t=o==null?void 0:o.columns.find(({name:r})=>r===e.name);return t?t.serverDataType:e.serverDataType},qr=["int","long","double"],Qt=e=>e===void 0?void 0:qr.includes(e)?"right":"left",So=e=>e.type==="columnSettings",Ao=e=>e.type==="tableSettings",el=(e,o)=>{switch(Eo==null||Eo(`TableModelReducer ${o.type}`),o.type){case"init":return Yt(o);case"moveColumn":return tl(e,o);case"resizeColumn":return ll(e,o);case"setTableSchema":return il(e,o);case"hideColumns":return nl(e,o);case"showColumns":return rl(e,o);case"pinColumn":return sl(e,o);case"updateColumnProp":return Me(e,o);case"tableConfig":return jt(e,o);default:return console.log(`unhandled action ${o.type}`),e}},Lo=(e,o)=>{let[t,r]=(0,Jt.useReducer)(el,{tableConfig:e,dataSource:o},Yt),{columns:n,headings:l,tableConfig:i,...a}=t;return{columns:n,dispatchColumnAction:r,headings:l,tableAttributes:a,tableConfig:i}};function Yt({dataSource:e,tableConfig:o}){let{columns:t,...r}=o;console.log(JSON.stringify(r,null,2));let{config:n,tableSchema:l}=e,i=t.filter((0,v.subscribedOnly)(n==null?void 0:n.columns)).map(Zt(r,l)),a=i.some(v.isPinned)?(0,v.sortPinnedColumns)(i):i,s={columns:a,headings:(0,v.getTableHeadings)(a),tableConfig:o,...r};if(n){let{columns:u,...m}=n;s=jt(s,{type:"tableConfig",...m})}return s}var ol=(e,o)=>o==="uppercase"?e.toUpperCase():o==="capitalize"?e[0].toUpperCase()+e.slice(1).toLowerCase():e,Zt=(e,o)=>(t,r)=>{let{columnDefaultWidth:n=Yr,columnFormatHeader:l}=e,i=Xt(t,o),{align:a=Qt(i),key:s,name:u,label:m=(0,v.getColumnLabel)(t),width:c=n,...C}=t,f={...C,align:a,CellRenderer:(0,v.getCellRenderer)(t),HeaderCellLabelRenderer:(0,v.getCellRenderer)(t,"col-label"),HeaderCellContentRenderer:(0,v.getCellRenderer)(t,"col-content"),clientSideEditValidationCheck:(0,v.hasValidationRules)(t.type)?(0,_t.buildValidationChecker)(t.type.renderer.rules):void 0,label:ol(m,l),key:s!=null?s:r+Zr,name:u,originalIdx:r,serverDataType:i,valueFormatter:(0,v.getValueFormatter)(t,i),width:c};return(0,v.isGroupColumn)(f)&&(f.columns=f.columns.map(R=>Zt(e)(R,R.key))),f};function tl(e,{column:o,moveBy:t}){let{columns:r}=e;if(typeof t=="number"){let n=r.indexOf(o),l=r.slice(),[i]=l.splice(n,1);return l.splice(n+t,0,i),{...e,columns:l}}return e}function nl(e,{columns:o}){return o.some(t=>t.hidden!==!0)?o.reduce((t,r)=>r.hidden!==!0?Me(t,{type:"updateColumnProp",column:r,hidden:!0}):t,e):e}function rl(e,{columns:o}){return o.some(t=>t.hidden)?o.reduce((t,r)=>r.hidden?Me(t,{type:"updateColumnProp",column:r,hidden:!1}):t,e):e}function ll(e,{column:o,phase:t,width:r}){let n="updateColumnProp",l=t!=="end";switch(t){case"begin":return Me(e,{type:n,column:o,resizing:l});case"end":return Me(e,{type:n,column:o,resizing:l,width:r});case"resize":return Me(e,{type:n,column:o,width:r});default:throw Error(`useTableModel.resizeColumn, invalid resizePhase ${t}`)}}function il(e,{tableSchema:o}){let{columns:t}=e;if(t.some(jr)){let r=t.map(n=>{var i;let l=Xt(n,o);return{...n,align:(i=n.align)!=null?i:Qt(l),serverDataType:l}});return{...e,columns:r}}else return e}function sl(e,o){let{columns:t}=e,{column:r,pin:n}=o,l=t.find(i=>i.name===r.name);return l?(t=(0,v.replaceColumn)(t,{...l,pin:n}),t=(0,v.sortPinnedColumns)(t),{...e,columns:t}):e}function Me(e,o){let{columns:t,tableConfig:r}=e,{align:n,column:l,hidden:i,label:a,resizing:s,width:u}=o,m=t.find(c=>c.name===l.name);if(m&&((n==="left"||n==="right")&&(t=(0,v.replaceColumn)(t,{...m,align:n})),typeof a=="string"&&(t=(0,v.replaceColumn)(t,{...m,label:a})),typeof s=="boolean"&&(t=(0,v.replaceColumn)(t,{...m,resizing:s})),typeof i=="boolean"&&(t=(0,v.replaceColumn)(t,{...m,hidden:i})),typeof u=="number")){t=(0,v.replaceColumn)(t,{...m,width:u});let c=r.columns.find(C=>C.name===l.name);c&&(r={...r,columns:(0,v.replaceColumn)(r.columns,{...c,width:u})})}return{...e,columns:t,tableConfig:r}}function jt(e,{confirmed:o,filter:t,groupBy:r,sort:n}){let l=r!==void 0,i=typeof(t==null?void 0:t.filter)=="string",a=n&&n.sortDefs.length>0,s=e;return l&&(s={...e,columns:(0,v.applyGroupByToColumns)(s.columns,r,o)}),a&&(s={...e,columns:(0,v.applySortToColumns)(s.columns,n)}),i?s={...e,columns:(0,v.applyFilterToColumns)(s.columns,t)}:s.columns.some(v.isFilteredColumn)&&(s={...e,columns:(0,v.stripFilterFromColumns)(s.columns)}),s}var W=require("react"),qt=e=>{let{scrollLeft:o,scrollTop:t}=e,{clientHeight:r,clientWidth:n,scrollHeight:l,scrollWidth:i}=e,a=o/(i-n),s=t/(l-r);return[a,s]},en=({onAttach:e,onDetach:o})=>{let t=(0,W.useRef)(null);return(0,W.useCallback)(n=>{if(n)t.current=n,e==null||e(n);else if(t.current){let{current:l}=t;t.current=n,o==null||o(l)}},[e,o])},on=({maxScrollLeft:e,maxScrollTop:o,onHorizontalScroll:t,onVerticalScroll:r,rowHeight:n,viewportRowCount:l})=>{let i=(0,W.useRef)(!1),a=(0,W.useRef)({scrollTop:0,scrollLeft:0}),s=(0,W.useRef)(null),u=(0,W.useRef)(null),m=(0,W.useCallback)(()=>{let{current:g}=u,{current:H}=s,{current:y}=i;if(y)i.current=!1;else if(g&&H){let[M,A]=qt(H),L=Math.round(M*e),K=Math.round(A*o);g.scrollTo({left:L,top:K,behavior:"auto"})}},[e,o]),c=(0,W.useCallback)(()=>{let{current:g}=u,{current:H}=s,{current:y}=a;if(g&&H){let{scrollLeft:M,scrollTop:A}=g,[L,K]=qt(g);i.current=!0,H.scrollLeft=Math.round(L*e),H.scrollTop=Math.round(K*o),y.scrollTop!==A&&(y.scrollTop=A,r==null||r(A,K)),y.scrollLeft!==M&&(y.scrollLeft=M,t==null||t(M))}},[e,o,t,r]),C=(0,W.useCallback)(g=>{s.current=g,g.addEventListener("scroll",m,{passive:!0})},[m]),f=(0,W.useCallback)(g=>{s.current=null,g.removeEventListener("scroll",m)},[m]),R=(0,W.useCallback)(g=>{u.current=g,g.addEventListener("scroll",c,{passive:!0})},[c]),T=(0,W.useCallback)(g=>{u.current=null,g.removeEventListener("scroll",c)},[c]),d=en({onAttach:R,onDetach:T}),w=en({onAttach:C,onDetach:f}),E=(0,W.useCallback)(g=>{let{current:H}=u;if(H){let{scrollLeft:y,scrollTop:M}=H;if(i.current=!1,g.type==="scroll-distance"){let A=y,L=M;g.direction==="up"||g.direction==="down"?L=Math.min(Math.max(0,M+g.distance),o):A=Math.min(Math.max(0,y+g.distance),e),H.scrollTo({top:L,left:A,behavior:"smooth"})}else if(g.type==="scroll-page"){let{direction:A}=g,L=l*(A==="down"?n:-n),K=Math.min(Math.max(0,M+L),o);H.scrollTo({top:K,left:y,behavior:"auto"})}else if(g.type==="scroll-end"){let{direction:A}=g,L=A==="end"?o:0;H.scrollTo({top:L,left:H.scrollLeft,behavior:"auto"})}}},[e,o,n,l]);return{scrollbarContainerRef:w,contentContainerRef:d,requestScroll:E}};var re=require("react"),Ze=require("@vuu-ui/vuu-utils"),al=15e5,ul={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},cl=e=>{let o=0,t=0,r=0;for(let n of e){let{hidden:l,pin:i,width:a}=n,s=l?0:a;i==="left"?o+=s:i==="right"?t+=s:r+=s}return{pinnedWidthLeft:o+4,pinnedWidthRight:t+4,unpinnedWidth:r}},ko=({columns:e,headerHeight:o,headings:t,rowCount:r,rowHeight:n,size:l})=>{let i=(0,re.useRef)(0),s=Math.min(r,al)*n,m=r*n-s,{pinnedWidthLeft:c,pinnedWidthRight:C,unpinnedWidth:f}=(0,re.useMemo)(()=>cl(e),[e]),[R,T]=(0,re.useMemo)(()=>(0,Ze.actualRowPositioning)(n),[n]),[d,w]=(0,re.useMemo)(()=>m?(0,Ze.virtualRowPositioning)(n,m,i):[R,T],[T,R,m,n]),E=(0,re.useCallback)(g=>{i.current=g},[]);return(0,re.useMemo)(()=>{var g;if(l){let H=t.length,y=15,M=c+f+C,A=M>l.width?y:0,L=o*(1+H),K=s-(((g=l==null?void 0:l.height)!=null?g:0)-A)+L,j=M-l.width+c,_=(l.height-o)/n,J=Number.isInteger(_)?_+1:Math.ceil(_),P=l.height-L,q=s>P?y:0;return{contentHeight:s,getRowAtPosition:w,getRowOffset:d,horizontalScrollbarHeight:A,maxScrollContainerScrollHorizontal:j,maxScrollContainerScrollVertical:K,pinnedWidthLeft:c,pinnedWidthRight:C,rowCount:J,contentWidth:M,setPctScrollTop:E,totalHeaderHeight:L,verticalScrollbarWidth:q,viewportBodyHeight:P}}else return ul},[l,t.length,c,f,C,s,o,n,w,d,E])};var xe=require("react"),tn=({columns:e,getRowAtPosition:o,setRange:t,viewportMeasurements:r})=>{let n=(0,xe.useRef)(0),{contentWidth:l,rowCount:i}=r,a=(0,xe.useCallback)(s=>{let u=o(s);u!==n.current&&(n.current=u,t({from:u,to:u+i}))},[o,t,i]);return(0,xe.useEffect)(()=>{let{current:s}=n,u={from:s,to:s+i};t(u)},[t,i]),{onVerticalScroll:a}};var je=e=>e,{KEY:ml,IS_EXPANDED:nn,IS_LEAF:rn}=O.metadataKeys,pl={draggable:void 0,onMouseDown:void 0},dl=()=>pl,fl=(e,o)=>({...e,columns:e.columns.concat(o)}),an=({allowDragDrop:e=!1,availableColumns:o,config:t,containerRef:r,dataSource:n,disableFocus:l,headerHeight:i=25,highlightedIndex:a,id:s,navigationStyle:u="cell",onAvailableColumnsChange:m,onConfigChange:c,onDragStart:C,onDrop:f,onFeatureInvocation:R,onHighlight:T,onRowClick:d,onSelect:w,onSelectionChange:E,renderBufferSize:g=0,rowHeight:H=20,selectionModel:y,size:M})=>{let[A,L]=(0,x.useState)(n.size);if(n===void 0)throw Error("no data source provided to Vuu Table");let K=e?sn.useDragDropNext:dl,j=(0,x.useMemo)(()=>yt(n),[n]),_=(0,x.useCallback)(p=>{L(p)},[]),{columns:J,dispatchColumnAction:P,headings:q,tableAttributes:Ee,tableConfig:I}=Lo(t,n);(0,Io.useLayoutEffectSkipFirst)(()=>{P({type:"init",dataSource:n,tableConfig:I})},[I,n,P]);let Y=(0,x.useCallback)(p=>{P({type:"init",tableConfig:p,dataSource:n}),c==null||c(je(p))},[n,P,c]),[b,h]=(0,x.useState)(),[D,k]=(0,x.useMemo)(()=>{let p=(S,N)=>{let G=(0,O.updateColumn)(J,S,{width:N});h(G)};return[b!=null?b:J,p]},[J,b]),V=(0,x.useMemo)(()=>(0,O.buildColumnMap)(n.columns),[n.columns]),{getRowAtPosition:Se,getRowOffset:Ko,setPctScrollTop:Fo,...ee}=ko({columns:D,headerHeight:i,headings:q,rowCount:A,rowHeight:H,size:M}),Ce=It({from:0,to:ee.rowCount}),uo=(0,x.useCallback)(({tableSchema:p})=>{p?P({type:"setTableSchema",tableSchema:p}):console.log("subscription message with no schema")},[P]),{data:X,dataRef:Ve,getSelectedRows:co,range:Ke,setRange:be}=kt({dataSource:n,onFeatureInvocation:R,renderBufferSize:g,onSizeChange:_,onSubscribed:uo,range:Ce}),Fn=(0,x.useCallback)(p=>{console.log("settings changed"),P({type:"init",tableConfig:p,dataSource:n}),c==null||c(je(p))},[n,P,c]),$n=(0,x.useCallback)(p=>{n.config={...n.config,...p}},[n]);(0,x.useEffect)(()=>{n.on("config",(p,S)=>{P({type:"tableConfig",...p,confirmed:S})})},[n,P]);let On=(0,x.useCallback)(p=>{n.columns=n.columns.concat(p.name),Y(fl(I,p))},[n,I,Y]),$o=(0,x.useCallback)(p=>{let{columns:S}=p,N=S.map(B=>B.name),G={...I,columns:I.columns.map(B=>N.includes(B.name)?{...B,hidden:!0}:B)};Y(G)},[I,Y]),Oo=(0,x.useCallback)(p=>{Y({...I,columns:(0,O.updateColumn)(I.columns,{...p.column,pin:p.pin})})},[I,Y]),{showColumnSettingsPanel:Bo,showTableSettingsPanel:Wo}=(0,ln.useTableAndColumnSettings)({availableColumns:o!=null?o:I.columns.map(({name:p,serverDataType:S="string"})=>({name:p,serverDataType:S})),onAvailableColumnsChange:m,onConfigChange:Fn,onCreateCalculatedColumn:On,onDataSourceConfigChange:$n,tableConfig:I}),Bn=(0,x.useCallback)(p=>{if(So(p))Bo(p);else if(Ao(p))Wo();else switch(p.type){case"hideColumns":return $o(p);case"pinColumn":return Oo(p);default:P(p)}},[P,$o,Oo,Bo,Wo]),Wn=xt({dataSource:n,onPersistentColumnOperation:Bn}),Gn=(0,x.useCallback)((p,S=!1,N)=>{n&&(n.sort=(0,O.applySort)(n.sort,p,S,N))},[n]),Un=(0,x.useCallback)((p,S,N)=>{let G=D.find(B=>B.name===S);if(G)p==="resize"?(0,O.isValidNumber)(N)&&k(S,N):p==="end"?(0,O.isValidNumber)(N)&&(P({type:"resizeColumn",phase:p,column:G,width:N}),h(void 0),c==null||c(je(wo(I,{type:"col-size",column:G,width:N})))):(h(void 0),P({type:"resizeColumn",phase:p,column:G,width:N}));else throw Error(`useDataTable.handleColumnResize, column ${S} not found`)},[D,I,P,c,k]),_n=(0,x.useCallback)((p,S)=>{let N=(0,O.isJsonGroup)(S,p),G=p[ml];if(p[nn]){if(n.closeTreeNode(G,!0),N){let B=D.indexOf(S);n.getRowsAtDepth(B+1).some(ge=>ge[nn]||ge[rn])||P({type:"hideColumns",columns:D.slice(B+2)})}}else if(n.openTreeNode(G),N){let B=n.getChildRows(G),Ae=D.indexOf(S)+1,ge=[D[Ae]];B.some(mo=>mo[rn])&&ge.push(D[Ae+1]),ge.some(mo=>mo.hidden)&&P({type:"showColumns",columns:ge})}},[D,n,P]),{onVerticalScroll:Go}=tn({columns:D,getRowAtPosition:Se,setRange:be,viewportMeasurements:ee}),Jn=(0,x.useCallback)(p=>{Go(p)},[Go]),{requestScroll:Xn,...Qn}=on({maxScrollLeft:ee.maxScrollContainerScrollHorizontal,maxScrollTop:ee.maxScrollContainerScrollVertical,rowHeight:H,onVerticalScroll:Jn,viewportRowCount:ee.rowCount}),{highlightedIndexRef:Uo,navigate:Yn,onFocus:_o,onKeyDown:Jo,...Zn}=$t({columnCount:D.filter(p=>p.hidden!==!0).length,containerRef:r,disableFocus:l,highlightedIndex:a,navigationStyle:u,requestScroll:Xn,rowCount:n==null?void 0:n.size,onHighlight:T,viewportRange:Ke,viewportRowCount:ee.rowCount}),{onBlur:jn,onDoubleClick:qn,onKeyDown:Xo,onFocus:Qo}=At({navigate:Yn}),er=(0,x.useCallback)(p=>{_o(),p.defaultPrevented||Qo(p)},[Qo,_o]),or=Ut({columns:D,data:X,dataSource:n,getSelectedRows:co}),tr=(0,x.useCallback)(p=>{n.groupBy=p.map(S=>S.name)},[n]),nr=(0,x.useCallback)(p=>{(0,O.isGroupColumn)(p)?n.groupBy=[]:n&&n.groupBy.includes(p.name)&&(n.groupBy=n.groupBy.filter(S=>S!==p.name))},[n]),rr=(0,x.useCallback)(p=>{n.select(p),E==null||E(p)},[n,E]),{onKeyDown:Yo,onRowClick:Zo}=Ot({highlightedIndexRef:Uo,onSelect:w,onSelectionChange:rr,selectionModel:y}),lr=(0,x.useCallback)(p=>{Jo(p),p.defaultPrevented||Xo(p),p.defaultPrevented||Yo(p)},[Jo,Xo,Yo]),ir=(0,x.useCallback)((p,S,N)=>{Zo(p,S,N),d==null||d(p)},[d,Zo]);(0,Io.useLayoutEffectSkipFirst)(()=>{P({type:"init",tableConfig:t,dataSource:n})},[t,n,P]);let sr=(0,x.useCallback)(p=>{let S={...I,columns:p};P({type:"init",tableConfig:S,dataSource:n}),c==null||c(je(S))},[n,P,c,I]),ar=(0,x.useCallback)(p=>{f==null||f(p)},[f]),ur=(0,x.useCallback)(async(p,S,N)=>n.applyEdit(p,S,N),[n]),cr=(0,x.useCallback)(p=>{let{initialDragElement:S}=p,N=S.ariaRowIndex;if(N){let G=parseInt(N),B=Ve.current.find(Ae=>Ae[0]===G);B&&p.setPayload(B)}C==null||C(p)},[Ve,C]),{onMouseDown:mr,draggable:pr}=K({allowDragDrop:e,containerRef:r,draggableClassName:"vuuTable",id:s,onDragStart:cr,onDrop:ar,orientation:"vertical",itemQuery:".vuuTableRow"});return{...Zn,draggableRow:pr,onBlur:jn,onDoubleClick:qn,onFocus:er,onKeyDown:lr,onMouseDown:mr,columnMap:V,columns:D,data:X,handleContextMenuAction:Wn,headings:q,highlightedIndex:Uo.current,menuBuilder:j,onContextMenu:or,onDataEdited:ur,onMoveColumn:sr,onMoveGroupColumn:tr,onRemoveGroupColumn:nr,onRowClick:ir,onSortColumn:Gn,onResizeColumn:Un,onToggleGroup:_n,scrollProps:Qn,tableAttributes:Ee,tableConfig:I,viewportMeasurements:ee}};var qe=require("@vuu-ui/vuu-utils"),mn=Z(require("classnames"));var un=require("@vuu-ui/vuu-ui-controls"),Ie=require("@vuu-ui/vuu-utils"),Ne=require("react"),cn=({columns:e,onMoveColumn:o,onSortColumn:t,tableConfig:r})=>{let n=(0,Ne.useRef)(null),l=(0,Ne.useCallback)((m,c)=>{let C=e[m],f=(0,Ie.moveColumnTo)(e,C,c),R=({name:E})=>g=>g.name===E,T=f.findIndex(R(C)),d=f[T+1],w=d?r.columns.findIndex(R(d)):-1;o((0,Ie.moveColumnTo)(r.columns,C,w))},[e,o,r.columns]),i=(0,Ne.useCallback)(m=>{var d;let C=m.target.closest(".vuuTableHeaderCell"),f=parseInt((d=C==null?void 0:C.dataset.index)!=null?d:"-1"),R=(0,Ie.visibleColumnAtIndex)(e,f),T=m.shiftKey;R&&t(R,T)},[e,t]),{onMouseDown:a,draggable:s,...u}=(0,un.useDragDropNext)({allowDragDrop:!0,containerRef:n,draggableClassName:"vuuTable",onDrop:l,orientation:"horizontal",itemQuery:".vuuTableHeaderCell"});return{containerRef:n,draggableColumn:s,draggedColumnIndex:u.draggedItemIndex,onClick:i,onMouseDown:a}};var ue=require("react/jsx-runtime"),pn=({classBase:e="vuuTable",columns:o,headings:t,onMoveColumn:r,onMoveGroupColumn:n,onRemoveGroupColumn:l,onResizeColumn:i,onSortColumn:a,tableConfig:s,tableId:u})=>{let{containerRef:m,draggableColumn:c,draggedColumnIndex:C,onClick:f,onMouseDown:R}=cn({columns:o,onMoveColumn:r,onSortColumn:a,tableConfig:s});return(0,ue.jsxs)("div",{className:`${e}-col-headings`,ref:m,children:[t.map((T,d)=>(0,ue.jsx)("div",{className:"vuuTable-heading",children:T.map(({label:w,width:E},g)=>(0,ue.jsx)("div",{className:"vuuTable-headingCell",style:{width:E},children:w},g))},d)),(0,ue.jsxs)("div",{className:`${e}-col-headers`,role:"row",children:[o.filter(qe.isNotHidden).map((T,d)=>(0,qe.isGroupColumn)(T)?(0,ue.jsx)(Ge,{column:T,"data-index":d,onMoveColumn:n,onRemoveColumn:l,onResize:i},T.name):(0,ue.jsx)(fo,{className:(0,mn.default)({"vuuDraggable-dragAway":d===C}),column:T,"data-index":d,id:`${u}-col-${d}`,onClick:f,onMouseDown:R,onResize:i},T.name)),c]})]})};var Q=require("react/jsx-runtime"),le="vuuTable",{IDX:dn,RENDER_IDX:Cl}=Cn.metadataKeys,bl=({Row:e=ho,allowDragDrop:o,availableColumns:t,config:r,containerRef:n,dataSource:l,disableFocus:i=!1,highlightedIndex:a,id:s,navigationStyle:u="cell",onAvailableColumnsChange:m,onConfigChange:c,onDragStart:C,onDrop:f,onFeatureInvocation:R,onHighlight:T,onRowClick:d,onSelect:w,onSelectionChange:E,renderBufferSize:g=0,rowHeight:H=20,selectionModel:y="extended",showColumnHeaders:M=!0,headerHeight:A=M?25:0,size:L})=>{let K=(0,eo.useId)(s),{columnMap:j,columns:_,data:J,draggableRow:P,handleContextMenuAction:q,headings:Ee,highlightedIndex:I,onDataEdited:Y,onMoveColumn:b,onMoveGroupColumn:h,onRemoveGroupColumn:D,onResizeColumn:k,onRowClick:V,onSortColumn:Se,onToggleGroup:Ko,menuBuilder:Fo,scrollProps:ee,tableAttributes:Ce,tableConfig:uo,viewportMeasurements:X,...Ve}=an({allowDragDrop:o,availableColumns:t,config:r,containerRef:n,dataSource:l,disableFocus:i,headerHeight:A,highlightedIndex:a,id:K,navigationStyle:u,onAvailableColumnsChange:m,onConfigChange:c,onDragStart:C,onDrop:f,onFeatureInvocation:R,onHighlight:T,onRowClick:d,onSelect:w,onSelectionChange:E,renderBufferSize:g,rowHeight:H,selectionModel:y,size:L}),co=(0,No.default)(`${le}-contentContainer`,{[`${le}-colLines`]:Ce.columnSeparators,[`${le}-rowLines`]:Ce.rowSeparators,[`${le}-zebra`]:Ce.zebraStripes}),Ke={"--content-height":`${X.contentHeight}px`,"--content-width":`${X.contentWidth}px`,"--horizontal-scrollbar-height":`${X.horizontalScrollbarHeight}px`,"--pinned-width-left":`${X.pinnedWidthLeft}px`,"--pinned-width-right":`${X.pinnedWidthRight}px`,"--header-height":`${A}px`,"--row-height":`${H}px`,"--total-header-height":`${X.totalHeaderHeight}px`,"--vertical-scrollbar-width":`${X.verticalScrollbarWidth}px`,"--viewport-body-height":`${X.viewportBodyHeight}px`};return(0,Q.jsxs)(fn.ContextMenuProvider,{menuActionHandler:q,menuBuilder:Fo,children:[(0,Q.jsx)("div",{className:`${le}-scrollbarContainer`,ref:ee.scrollbarContainerRef,style:Ke,children:(0,Q.jsx)("div",{className:`${le}-scrollbarContent`})}),(0,Q.jsx)("div",{className:co,ref:ee.contentContainerRef,style:Ke,children:(0,Q.jsxs)("div",{...Ve,className:`${le}-table`,tabIndex:i?void 0:-1,children:[M?(0,Q.jsx)(pn,{columns:_,headings:Ee,onMoveColumn:b,onMoveGroupColumn:h,onRemoveGroupColumn:D,onResizeColumn:k,onSortColumn:Se,tableConfig:uo,tableId:K}):null,(0,Q.jsx)("div",{className:`${le}-body`,children:J.map(be=>(0,Q.jsx)(e,{columnMap:j,columns:_,highlighted:I===be[dn],onClick:V,onDataEdited:Y,row:be,offset:H*be[dn]+X.totalHeaderHeight,onToggleGroup:Ko,zebraStripes:Ce.zebraStripes},be[Cl]))})]})}),P]})},gl=(0,He.forwardRef)(function({Row:o,allowDragDrop:t,availableColumns:r,className:n,config:l,dataSource:i,disableFocus:a,highlightedIndex:s,id:u,navigationStyle:m,onAvailableColumnsChange:c,onConfigChange:C,onDragStart:f,onDrop:R,onFeatureInvocation:T,onHighlight:d,onRowClick:w,onSelect:E,onSelectionChange:g,renderBufferSize:H,rowHeight:y,selectionModel:M,showColumnHeaders:A,headerHeight:L,style:K,...j},_){let J=(0,He.useRef)(null),[P,q]=(0,He.useState)();return(0,Q.jsx)(eo.MeasuredContainer,{...j,className:(0,No.default)(le,n),id:u,onResize:q,ref:(0,bn.useForkRef)(J,_),children:P?(0,Q.jsx)(bl,{Row:o,allowDragDrop:t,availableColumns:r,config:l,containerRef:J,dataSource:i,disableFocus:a,headerHeight:L,highlightedIndex:s,id:u,navigationStyle:m,onAvailableColumnsChange:c,onConfigChange:C,onDragStart:f,onDrop:R,onFeatureInvocation:T,onHighlight:d,onRowClick:w,onSelect:E,onSelectionChange:g,renderBufferSize:H,rowHeight:y,selectionModel:M,showColumnHeaders:A,size:P}):null})});var oo=require("react"),to=require("@vuu-ui/vuu-ui-controls"),gn=require("@salt-ds/core");var ce=(e,o)=>e.column===o.column&&e.row[e.columnMap[e.column.name]]===o.row[o.columnMap[o.column.name]];var no=require("@vuu-ui/vuu-utils"),zo=require("react/jsx-runtime"),Vo=(0,oo.memo)(({column:e,columnMap:o,onCommit:t=to.WarnCommit,row:r})=>{let n=o[e.name],l=r[n],i=(0,oo.useCallback)(a=>async s=>{let u=await t(a);return u===!0&&(0,no.dispatchCustomEvent)(s.target,"vuu-commit"),u},[t]);return e.editable?(0,zo.jsx)(gn.Checkbox,{checked:l,onClick:i(!l)}):(0,zo.jsx)(to.CheckboxIcon,{checked:l,disabled:!0})},ce);Vo.displayName="CheckboxCell";(0,no.registerComponent)("checkbox-cell",Vo,"cell-renderer",{serverDataType:"boolean"});var hn=require("@vuu-ui/vuu-data-react"),ro=require("@vuu-ui/vuu-ui-controls"),lo=require("@vuu-ui/vuu-utils"),Pe=require("react");var Rn=require("react/jsx-runtime"),hl="vuuTableDropdownCell",vl=["Enter"," "],vn=(0,Pe.memo)(function({column:o,columnMap:t,onCommit:r=ro.WarnCommit,row:n}){let l=t[o.name],{initialValue:i,values:a}=(0,hn.useLookupValues)(o,n[l]),[s,u]=(0,Pe.useState)(null),m=(0,Pe.useCallback)((c,C)=>{C&&(u(C),r(C.value).then(f=>{f===!0&&c&&(0,lo.dispatchCustomEvent)(c.target,"vuu-commit")}))},[r]);return(0,Rn.jsx)(ro.Dropdown,{className:hl,onSelectionChange:m,openKeys:vl,selected:s!=null?s:i,source:a,width:o.width-17})},ce);(0,lo.registerComponent)("dropdown-cell",vn,"cell-renderer",{});var Tn=require("@vuu-ui/vuu-utils"),Dn=require("@salt-ds/core"),wn=require("@vuu-ui/vuu-ui-controls"),yn=Z(require("classnames"));var so=require("react/jsx-runtime"),io="vuuTableInputCell",Rl=()=>(console.warn("onCommit handler has not been provided to InputCell cell renderer"),Promise.resolve(!0)),Mn=({column:e,columnMap:o,onCommit:t=Rl,row:r})=>{let n=o[e.name],{align:l="left",clientSideEditValidationCheck:i,valueFormatter:a}=e,{warningMessage:s,...u}=(0,wn.useEditableText)({initialValue:a(r[n]),onCommit:t,clientSideEditValidationCheck:i}),m=s&&l==="left"?(0,so.jsx)("span",{className:`${io}-icon`,"data-icon":"error"}):void 0,c=s&&l==="right"?(0,so.jsx)("span",{className:`${io}-icon`,"data-icon":"error"}):void 0;return(0,so.jsx)(Dn.Input,{...u,className:(0,yn.default)(io,{[`${io}-error`]:s!==void 0}),endAdornment:m,startAdornment:c})};(0,Tn.registerComponent)("input-cell",Mn,"cell-renderer",{});var xn=require("@vuu-ui/vuu-data-react"),Hn=require("@vuu-ui/vuu-utils"),Pn=require("react");var Sn=require("react/jsx-runtime"),En=(0,Pn.memo)(function({column:o,columnMap:t,row:r}){let n=t[o.name],{initialValue:l}=(0,xn.useLookupValues)(o,r[n]);return(0,Sn.jsx)("span",{children:l==null?void 0:l.label})},ce);(0,Hn.registerComponent)("lookup-cell",En,"cell-renderer",{});var Ln=require("@vuu-ui/vuu-ui-controls"),me=require("@vuu-ui/vuu-utils"),kn=Z(require("classnames")),ao=require("react");var In=require("@vuu-ui/vuu-ui-controls");var zn=require("react/jsx-runtime"),An="vuuTableToggleCell",Tl=({name:e,type:o})=>{if((0,me.isTypeDescriptor)(o)&&(0,me.isValueListRenderer)(o.renderer))return o.renderer.values;throw Error(`useLookupValues column ${e} has not been configured with a values list`)},Nn=(0,ao.memo)(function({column:o,columnMap:t,onCommit:r=Ln.WarnCommit,row:n}){let l=Tl(o),i=t[o.name],a=n[i],s=(0,ao.useCallback)((u,m)=>r(m).then(c=>(c===!0&&(0,me.dispatchCustomEvent)(u.target,"vuu-commit"),c)),[r]);return(0,zn.jsx)(In.CycleStateButton,{className:(0,kn.default)(An,`${An}-${o.name}`),onCommit:s,value:a,values:l,variant:"cta",children:a})},ce);(0,me.registerComponent)("toggle-cell",Nn,"cell-renderer",{});var Vn=require("@vuu-ui/vuu-ui-controls"),Kn=require("@vuu-ui/vuu-utils"),ze=require("react"),Dl=(e,o)=>{let t=(0,ze.useRef)(null),[r,n]=(0,Vn.useStateRef)(e),l=(0,ze.useCallback)(a=>{var s;if(a.key==="ArrowDown")n((u=-1)=>Math.min(o-1,u+1));else if(a.key==="ArrowUp")n((u=-1)=>Math.max(0,u-1));else if(a.key==="Enter"||a.key===" "){let{current:u}=r,m=(s=t.current)==null?void 0:s.querySelector(`[aria-rowindex="${u}"]`);m&&(0,Kn.dispatchMouseEvent)(m,"click")}},[r,o,n]),i=(0,ze.useCallback)(a=>{n(a)},[n]);return{highlightedIndexRef:r,onHighlight:i,onKeyDown:l,tableRef:t}};
2
2
  //# sourceMappingURL=index.js.map