@box-kite/react 1.0.0 → 2.0.0

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 (179) hide show
  1. package/.claude/rules/box-kite-rules.md +23 -1
  2. package/.claude/skills/box-kite/SKILL.md +134 -427
  3. package/.claude/skills/box-kite/references/components.md +235 -0
  4. package/.claude/skills/box-kite/references/extending.md +42 -0
  5. package/.claude/skills/box-kite/references/patterns.md +27 -0
  6. package/.claude/skills/box-kite/references/styling.md +222 -0
  7. package/.cursor/rules/box-kite.mdc +73 -0
  8. package/AGENTS.md +102 -0
  9. package/BOX_AI_CONTEXT.md +1124 -153
  10. package/BOX_KITE_AI_CONTEXT.md +1124 -153
  11. package/README.md +36 -2
  12. package/a11y.cjs +1 -1
  13. package/a11y.d.ts +1 -1
  14. package/a11y.mjs +3 -2
  15. package/anchor.cjs +1 -0
  16. package/anchor.d.ts +14 -0
  17. package/anchor.mjs +3 -0
  18. package/behavior.cjs +1 -1
  19. package/behavior.mjs +118 -136
  20. package/box.cjs +1 -1
  21. package/box.mjs +1 -1
  22. package/client.cjs +1 -1
  23. package/client.mjs +15 -14
  24. package/components/accordion.cjs +1 -0
  25. package/components/accordion.d.ts +114 -0
  26. package/components/accordion.mjs +251 -0
  27. package/components/button.cjs +1 -1
  28. package/components/button.d.ts +3 -0
  29. package/components/button.mjs +1 -1
  30. package/components/chart.cjs +1 -1
  31. package/components/chart.d.ts +2 -1
  32. package/components/chart.mjs +159 -184
  33. package/components/checkbox.cjs +1 -1
  34. package/components/checkbox.d.ts +8 -0
  35. package/components/checkbox.mjs +1 -1
  36. package/components/combobox/comboboxChips.d.ts +21 -0
  37. package/components/combobox/comboboxListbox.d.ts +47 -0
  38. package/components/combobox.cjs +1 -0
  39. package/components/combobox.d.ts +121 -0
  40. package/components/combobox.mjs +563 -0
  41. package/components/dataGrid/components/dataGridAggregateValue.d.ts +10 -0
  42. package/components/dataGrid/components/dataGridCell.d.ts +2 -1
  43. package/components/dataGrid/components/dataGridCellEditor.d.ts +15 -0
  44. package/components/dataGrid/components/dataGridCellPlaceholder.d.ts +14 -0
  45. package/components/dataGrid/components/dataGridCellTree.d.ts +16 -0
  46. package/components/dataGrid/components/dataGridDataSourceError.d.ts +12 -0
  47. package/components/dataGrid/components/dataGridExport.d.ts +10 -0
  48. package/components/dataGrid/components/dataGridFooter.d.ts +11 -0
  49. package/components/dataGrid/contracts/dataGridContract.d.ts +474 -16
  50. package/components/dataGrid/export/gridExport.d.ts +10 -0
  51. package/components/dataGrid/gridNavigationContext.d.ts +9 -1
  52. package/components/dataGrid/models/aggregateCellModel.d.ts +34 -0
  53. package/components/dataGrid/models/aggregationModel.d.ts +32 -0
  54. package/components/dataGrid/models/cellKeys.d.ts +11 -0
  55. package/components/dataGrid/models/cellModel.d.ts +27 -1
  56. package/components/dataGrid/models/columnModel.d.ts +12 -2
  57. package/components/dataGrid/models/dataSourceModel.d.ts +177 -0
  58. package/components/dataGrid/models/editModel.d.ts +77 -0
  59. package/components/dataGrid/models/exportModel.d.ts +51 -0
  60. package/components/dataGrid/models/gridModel.d.ts +108 -21
  61. package/components/dataGrid/models/groupRowCellModel.d.ts +11 -3
  62. package/components/dataGrid/models/groupRowModel.d.ts +22 -2
  63. package/components/dataGrid/models/rowModel.d.ts +13 -1
  64. package/components/dataGrid/models/sourceGroupRowModel.d.ts +45 -0
  65. package/components/dataGrid/models/sourceLevel.d.ts +71 -0
  66. package/components/dataGrid/models/sourceRowModel.d.ts +29 -0
  67. package/components/dataGrid/models/sourceTreeRowModel.d.ts +23 -0
  68. package/components/dataGrid/models/treeModel.d.ts +94 -0
  69. package/components/dataGrid/models/treeRow.d.ts +22 -0
  70. package/components/dataGrid/models/treeRowModel.d.ts +50 -0
  71. package/components/dataGrid.cjs +1 -1
  72. package/components/dataGrid.d.ts +4 -2
  73. package/components/dataGrid.mjs +4484 -2755
  74. package/components/dialog.cjs +1 -0
  75. package/components/dialog.d.ts +151 -0
  76. package/components/dialog.mjs +223 -0
  77. package/components/dropdown.cjs +1 -1
  78. package/components/dropdown.d.ts +30 -0
  79. package/components/dropdown.mjs +256 -244
  80. package/components/icon.cjs +1 -1
  81. package/components/icon.d.ts +2 -1
  82. package/components/icon.mjs +3 -3
  83. package/components/menu.cjs +1 -0
  84. package/components/menu.d.ts +234 -0
  85. package/components/menu.mjs +422 -0
  86. package/components/overlay.cjs +1 -1
  87. package/components/overlay.d.ts +30 -26
  88. package/components/overlay.mjs +45 -75
  89. package/components/popover.cjs +1 -0
  90. package/components/popover.d.ts +100 -0
  91. package/components/popover.mjs +69 -0
  92. package/components/presence.d.ts +6 -0
  93. package/components/progress.cjs +1 -0
  94. package/components/progress.d.ts +47 -0
  95. package/components/progress.mjs +28 -0
  96. package/components/radioButton.cjs +1 -1
  97. package/components/radioButton.d.ts +8 -0
  98. package/components/radioButton.mjs +1 -1
  99. package/components/radioGroup.cjs +1 -1
  100. package/components/radioGroup.d.ts +15 -2
  101. package/components/radioGroup.mjs +34 -30
  102. package/components/select.d.ts +9 -0
  103. package/components/semantics.cjs +1 -1
  104. package/components/semantics.d.ts +33 -28
  105. package/components/semantics.mjs +3 -3
  106. package/components/slider.cjs +1 -0
  107. package/components/slider.d.ts +98 -0
  108. package/components/slider.mjs +250 -0
  109. package/components/svg.cjs +1 -1
  110. package/components/svg.d.ts +25 -23
  111. package/components/svg.mjs +3 -3
  112. package/components/switch.cjs +1 -1
  113. package/components/switch.d.ts +9 -0
  114. package/components/switch.mjs +1 -1
  115. package/components/tabs.cjs +1 -0
  116. package/components/tabs.d.ts +87 -0
  117. package/components/tabs.mjs +324 -0
  118. package/components/textarea.cjs +1 -1
  119. package/components/textarea.d.ts +14 -0
  120. package/components/textarea.mjs +1 -1
  121. package/components/textbox.cjs +1 -1
  122. package/components/textbox.d.ts +12 -0
  123. package/components/textbox.mjs +1 -1
  124. package/components/toaster.cjs +1 -0
  125. package/components/toaster.d.ts +106 -0
  126. package/components/toaster.mjs +295 -0
  127. package/components/tooltip.cjs +1 -1
  128. package/components/tooltip.d.ts +39 -4
  129. package/components/tooltip.mjs +56 -54
  130. package/docs/a11y.md +199 -0
  131. package/docs/anchor.md +139 -0
  132. package/docs/components.md +48 -0
  133. package/docs/index.md +11 -0
  134. package/docs/props.md +1777 -0
  135. package/effects.cjs +1 -1
  136. package/effects.mjs +1 -1
  137. package/gridExport.cjs +2 -0
  138. package/gridExport.mjs +244 -0
  139. package/identity.cjs +1 -0
  140. package/identity.mjs +12 -0
  141. package/keyboard.cjs +1 -0
  142. package/keyboard.mjs +30 -0
  143. package/layer.cjs +1 -0
  144. package/layer.mjs +127 -0
  145. package/motion.cjs +1 -1
  146. package/motion.mjs +1 -1
  147. package/package.json +134 -10
  148. package/placement.cjs +1 -0
  149. package/placement.mjs +180 -0
  150. package/platform.cjs +1 -1
  151. package/platform.mjs +18 -5
  152. package/react/anchor/useAnchorPosition.d.ts +79 -0
  153. package/react/dialog/useScrollLock.d.ts +12 -0
  154. package/react/hooks/usePortalContainer.d.ts +6 -1
  155. package/react/hooks/useVirtualization.d.ts +24 -35
  156. package/react/popover/usePopoverLayer.d.ts +87 -0
  157. package/react-shared.cjs +1 -1
  158. package/react-shared.mjs +19 -2
  159. package/rsc.cjs +1 -1
  160. package/rsc.mjs +1 -1
  161. package/utils/accordion/accordionUtils.d.ts +48 -0
  162. package/utils/anchor/anchorUtils.d.ts +79 -0
  163. package/utils/array/lazyList.d.ts +10 -0
  164. package/utils/chart/chartPalette.d.ts +15 -0
  165. package/utils/chart/chartUtils.d.ts +2 -8
  166. package/utils/combobox/comboboxUtils.d.ts +89 -0
  167. package/utils/dom/domUtils.d.ts +6 -0
  168. package/utils/environment/environmentUtils.d.ts +10 -0
  169. package/utils/export/csvUtils.d.ts +23 -0
  170. package/utils/export/downloadUtils.d.ts +12 -0
  171. package/utils/export/xlsxUtils.d.ts +56 -0
  172. package/utils/export/zipUtils.d.ts +26 -0
  173. package/utils/keyboard/typeaheadUtils.d.ts +31 -0
  174. package/utils/menu/menuUtils.d.ts +25 -0
  175. package/utils/slider/sliderUtils.d.ts +67 -0
  176. package/utils/tabs/tabsUtils.d.ts +75 -0
  177. package/utils/toast/toastStore.d.ts +73 -0
  178. package/utils/virtual/virtualUtils.d.ts +47 -0
  179. /package/react/{a11y → identity}/useIdentifier.d.ts +0 -0
@@ -1 +1 @@
1
- "use client";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:`Module`}});const e=require("../rolldown-runtime.cjs"),t=require("../platform.cjs"),n=require("../effects.cjs"),r=require("../box.cjs"),i=require("../behavior.cjs"),a=require("./svg.cjs"),o=require("./baseSvg.cjs"),s=require("./button.cjs"),c=require("./flex.cjs"),l=require("./checkbox.cjs"),u=require("./textbox.cjs"),d=require("./grid.cjs"),f=require("./overlay.cjs"),p=require("./presence.cjs"),m=require("./dropdown.cjs"),h=require("./visuallyHidden.cjs"),g=require("./semantics.cjs");let _=require("react");_=e.t(_,1);let v=require("react/jsx-runtime"),y=require("use-sync-external-store/shim");function b(e){let{grid:t}=e,{pagination:n}=t,i=n.state,a=(0,_.useCallback)(()=>n.firstPage(),[n]),o=(0,_.useCallback)(()=>n.prevPage(),[n]),s=(0,_.useCallback)(()=>n.nextPage(),[n]),l=(0,_.useCallback)(()=>n.lastPage(),[n]);if(!i)return null;let{canGoPrev:u,canGoNext:d,totalPages:f}=n;return(0,v.jsxs)(c.default,{component:`${t.componentName}.bottomBar.pagination`,gap:.5,ai:`center`,children:[(0,v.jsx)(x,{grid:t,pageSize:i.pageSize}),(0,v.jsx)(C,{componentName:t.componentName,onClick:a,disabled:!u,children:(0,v.jsx)(E,{})}),(0,v.jsx)(C,{componentName:t.componentName,onClick:o,disabled:!u,children:(0,v.jsx)(T,{})}),(0,v.jsxs)(c.default,{ai:`center`,gap:1.5,px:2,userSelect:`none`,children:[(0,v.jsx)(S,{grid:t,page:i.page,totalPages:f}),(0,v.jsxs)(r.default,{component:`${t.componentName}.bottomBar.pagination.info`,fontSize:12,opacity:.7,children:[`of `,f]})]}),(0,v.jsx)(C,{componentName:t.componentName,onClick:s,disabled:!d,children:(0,v.jsx)(ee,{})}),(0,v.jsx)(C,{componentName:t.componentName,onClick:l,disabled:!d,children:(0,v.jsx)(D,{})})]})}b.displayName=`DataGridPagination`;function x({grid:e,pageSize:t}){let n=e.pagination.pageSizeOptions;return!n||n.length===0?null:(0,v.jsx)(c.default,{ai:`center`,gap:1,me:1,children:(0,v.jsx)(r.default,{component:`${e.componentName}.bottomBar.pagination.pageSize`,tag:`select`,fontSize:12,borderRadius:4,cursor:`pointer`,props:{value:t,onChange:t=>e.pagination.changePageSize(Number(t.target.value))},children:n.map(e=>(0,v.jsxs)(`option`,{value:e,children:[e,` / page`]},e))})})}function S({grid:e,page:t,totalPages:n}){let[r,i]=(0,_.useState)(String(t)),[a,o]=(0,_.useState)(t);t!==a&&(o(t),i(String(t)));let s=(0,_.useCallback)(()=>{e.pagination.jumpToPage(r),i(String(e.pagination.page))},[e,r]),c=(0,_.useCallback)(e=>{e.key===`Enter`?s():e.key===`Escape`&&i(String(t))},[s,t]);return(0,v.jsx)(u.default,{type:`number`,variant:`compact`,value:r,onChange:e=>i(e.target.value),textAlign:`center`,fontSize:12,props:{onKeyDown:c,onBlur:s,min:1,max:n}})}function C(e){let{componentName:t,onClick:n,disabled:r,children:i}=e;return(0,v.jsx)(s.default,{component:`${t}.bottomBar.pagination.button`,clean:!0,onClick:n,cursor:r?`default`:`pointer`,p:1,borderRadius:4,opacity:r?.3:.7,hover:r?void 0:{opacity:1,bgColor:`gray-100`},theme:{dark:{hover:r?void 0:{bgColor:`gray-700`}}},transitionDuration:150,children:i})}function w(e){return(0,v.jsx)(a.Svg,{viewBox:`0 0 24 24`,width:`14`,height:`14`,fill:`none`,stroke:`currentColor`,strokeWidth:2,strokeLinecap:`round`,strokeLinejoin:`round`,children:(0,v.jsx)(a.Path,{d:e.d})})}function T(){return(0,v.jsx)(w,{d:`M15 18l-6-6 6-6`})}function ee(){return(0,v.jsx)(w,{d:`M9 18l6-6-6-6`})}function E(){return(0,v.jsx)(w,{d:`M18 18l-6-6 6-6M11 18l-6-6 6-6`})}function D(){return(0,v.jsx)(w,{d:`M6 18l6-6-6-6M13 18l6-6-6-6`})}function O(e){let{grid:t}=e,{pagination:n,filter:i}=t;if(n.state){let{totalItems:e,startItem:i,endItem:a}=n;return(0,v.jsxs)(c.default,{component:`${t.componentName}.bottomBar`,children:[(0,v.jsxs)(r.default,{component:`${t.componentName}.bottomBar.info`,children:[`Rows: `,e>0?`${i}–${a} of ${e}`:`0`]}),t.props.def.rowSelection&&(0,v.jsxs)(r.default,{component:`${t.componentName}.bottomBar.info`,children:[`Selected: `,t.selectedRows.size]}),(0,v.jsx)(b,{grid:t})]})}let{filtered:a,total:o}=i.filterStats;return(0,v.jsxs)(c.default,{component:`${t.componentName}.bottomBar`,children:[(0,v.jsxs)(r.default,{component:`${t.componentName}.bottomBar.info`,children:[`Rows: `,a===o?o:`${a} / ${o}`]}),t.props.def.rowSelection&&(0,v.jsxs)(r.default,{component:`${t.componentName}.bottomBar.info`,children:[`Selected: `,t.selectedRows.size]}),i.hasActiveFilters&&(0,v.jsx)(r.default,{component:`${t.componentName}.bottomBar.clearFilters`,color:`blue-600`,cursor:`pointer`,hover:{textDecoration:`underline`},props:{onClick:i.clearAllFilters},children:`Clear filters`})]})}var k=(0,_.createContext)(null);function A(){return(0,_.useContext)(k)}var j=`[role="gridcell"],[role="columnheader"]`,M=`a[href],button:not([disabled]),input:not([disabled]),select:not([disabled]),textarea:not([disabled]),[tabindex]:not([tabindex="-1"])`,N=2,te=[];function ne(e){let{grid:t,scrollerRef:r,scrollTop:a,onScrollTo:o}=e,s=t.headerRows.value,c=t.filter.hasFilterableColumns,l=s.length+ +!!c,u=t.viewport.isEmpty?te:t.flatRows.value,d=t.columns.value.visibleLeafs.length,f=l+u.length,p=(0,_.useCallback)(e=>{if(e<s.length)return s[e]?.length??0;if(e<l)return d;let t=u[e-l];return t?t.cellCount:0},[u,d,l,s]),m=(0,_.useCallback)((e,t)=>e<s.length?(s[e]?.[t]?.headerCell.columnIndex??t+1)-1:e<l?t:u[e-l]?.columnOf(t)??t,[u,l,s]),h=(0,_.useRef)(!1),g=(0,_.useCallback)((e,n)=>{let{viewport:i}=t,s=e-l,c=r.current;if(i.showAll||!c)return;if(s<0){n>=l&&(c.scrollTop=0,o(0));return}let{startIndex:u,take:d}=i.window(a);if(s>=u+N&&s<u+d-N)return;let f=i.rowTop(s);c.scrollTop=f,o(f)},[t,l,o,a,r]),v=(0,_.useRef)(0),y=i.t({count:f,columns:p,columnIndexOf:m,pageSize:t.viewport.pageRows,onActiveCellChange:(e,t)=>{let n=v.current;v.current=e.row,t.reason===`keyboard`&&(g(e.row,n),h.current=!0)}}),b=y.activeItem;n.n(()=>{h.current&&(h.current=!1,b()?.focus())});let x=y.onKeyDown,S=(0,_.useCallback)(e=>{let t=e.target,n=t.closest?.(j);if(n){if(t!==n){e.key===`Escape`&&!n.querySelector(`[aria-expanded="true"]`)&&(e.preventDefault(),n.focus());return}if(e.key===`Enter`||e.key===` `||e.key===`F2`){let t=s[y.activeIndex]?.[y.activeColumn];if(e.key!==`F2`&&t?.headerCell.isSortable){e.preventDefault(),t.sortColumn();return}let r=n.querySelector(M);if(r){e.preventDefault(),r.focus();return}}x(e)}},[s,y.activeColumn,y.activeIndex,x]);return{rowCount:f,columnCount:d,headerRowCount:l,cellProps:y.cellProps,onKeyDown:S}}var P;(function(e){function t(e,t,n=0){return e.slice(n,n+t)}e.take=t;function n(e,t,n=0){return e.reduce((e,n,r)=>e+t(n,r),n)}e.sumBy=n;function r(e,t,n){return[...e].sort((e,r)=>{let i=t(e),a=t(r);return i<a?n===`DESC`?1:-1:i>a?n===`DESC`?-1:1:0})}e.sortBy=r;function i(e,t){return Math.max(...e.map(t))}e.maxBy=i;function a(e,t){let n=e.find(t);if(n===void 0)throw Error(`No items satisfy the provided condition.`);return n}e.findOrThrow=a;function o(e,t){return e.reduce((e,n)=>{let r=t(n);if(!r)return e;let[i,a]=r;return e[i]=a,e},{})}e.toRecord=o;function s(e,t){let n=e.reduce((e,n,r)=>{let i=t(n,r);return e.has(i)===!1&&e.set(i,[]),e.get(i)?.push(n),e},new Map);return Array.from(n,([e,t])=>({key:e,values:t}))}e.groupBy=s})(P||={});var F=P,I=class e{grid;parentRow;constructor(e,t){this.grid=e,this.parentRow=t}kind=`detail`;get key(){return`detail-${this.parentRow.key}`}get isAutoHeight(){return this.height===`auto`}static AUTO_HEIGHT_ESTIMATE=200;get height(){let e=this.grid.props.def.rowDetail;return!e||e.height===void 0||e.height===`auto`?`auto`:typeof e.height==`function`?e.height(this.parentRow.data):e.height}get heightForOffset(){let t=this.height;return t===`auto`?e.AUTO_HEIGHT_ESTIMATE:t}count=0;cellCount=1;columnOf(){return 0}get flatRows(){return[this]}get allRows(){return[]}},L=Symbol(`memo.unset`),re=class{action;deps;cache=L;dependents=new Set;wired=!1;constructor(e,t){this.action=e,this.deps=t}wire(){if(!this.wired){this.wired=!0;for(let e of this.deps())e.dependents.add(this)}}get value(){return this.wire(),this.cache===L&&(this.cache=this.action()),this.cache}clear(){if(this.wire(),this.cache!==L){this.cache=L;for(let e of this.dependents)e.clear()}}};function R(e,t=()=>[]){return new re(e,t)}function ie(e,t){if(!e)return{score:1,matches:[]};if(!t)return null;let n=e.toLowerCase(),r=t.toLowerCase(),i=0,a=0,o=[],s=-1,c=0,l=0;for(;i<n.length&&a<r.length;)n[i]===r[a]?(s===-1&&(s=a),i++,l++,c+=l,(a===0||/\s|_|-/.test(t[a-1]))&&(c+=5),e[i-1]===t[a]&&(c+=1)):(s!==-1&&(o.push([s,a]),s=-1),l=0),a++;return s!==-1&&o.push([s,a]),i<n.length?null:(c/=t.length,{score:c,matches:o})}function ae(e,t){return ie(e,t)!==null}function z(e){return(0,v.jsx)(a.Svg,{viewBox:`4 2 16 18`,width:`1rem`,fill:`currentColor`,...e,children:(0,v.jsx)(a.Path,{fillRule:`evenodd`,d:`M12.707 14.707a1 1 0 0 1-1.414 0l-5-5a1 1 0 0 1 1.414-1.414L12 12.586l4.293-4.293a1 1 0 1 1 1.414 1.414l-5 5Z`,props:{clipRule:`evenodd`}})})}function oe(e){let{cell:t}=e,n=t.isExpanded,r=(0,_.useCallback)(e=>{e.stopPropagation(),t.toggleDetail()},[t]);return(0,v.jsx)(s.default,{component:`${t.grid.componentName}.body.cell.rowDetail`,variant:{isExpanded:n},clean:!0,type:`button`,onClick:r,cursor:`pointer`,display:`flex`,ai:`center`,jc:`center`,width:`fit`,height:`fit`,props:{"aria-label":`${n?`Collapse`:`Expand`} details for row ${t.row.rowIndex+1}`,"aria-expanded":n},children:(0,v.jsx)(z,{fill:`currentColor`,width:`14px`,height:`14px`,rotate:n?0:-90})})}oe.displayName=`DataGridCellRowDetail`;function se(e){let{cell:t}=e,n=(0,_.useCallback)(()=>{t.toggleSelection()},[t]);return(0,v.jsx)(l.default,{variant:`datagrid`,checked:t.selected,onChange:n,props:{"aria-label":`Select row ${t.row.rowIndex+1}`}})}se.displayName=`DataGridCellRowSelection`;function B(e){if(e)return e===`LEFT`?`START`:e===`RIGHT`?`END`:e}var ce=1e3,le=class{column;constructor(e){this.column=e}get grid(){return this.column.grid}get label(){let e=this.column;if(e.isRowNumber||e.isRowSelection)return null;if(e.isGrouping){if(this.grid.groupColumns.size===1){let e=this.grid.groupColumns.values().next().value,t=F.findOrThrow(this.grid.columns.value.leafs,t=>t.key===e);return t.header??t.key}return`Group`}return e.header??e.key}get hiddenLabel(){if(this.column.isRowNumber)return`Row number`;if(this.column.isRowDetail)return`Row details`}get isSortable(){let e=this.column;return e.isLeaf&&!e.isRowNumber&&!e.isRowSelection&&!e.isRowDetail&&e.sortable}get isSorted(){return this.column.key===this.grid.sortColumn}get sortDirection(){return this.grid.sortDirection}get showResizer(){let e=this.column;return!e.isRowNumber&&!e.isRowSelection&&!e.isRowDetail&&e.resizable}get showContextMenu(){let e=this.column;return!e.isRowNumber&&!e.isRowSelection&&!e.isRowDetail&&e.showContextMenu}get gridColumn(){return this.column.isLeaf?1:this.column.leafs.length}get columnIndex(){let e=this.column.leafs[0]??this.column;return this.grid.columns.value.visibleLeafs.indexOf(e)+1}get columnSpan(){let e=this.column.leafs.length;return e>1?e:void 0}get rowSpan(){let e=this.column.gridRows;return e>1?e:void 0}get ariaSort(){if(this.isSortable)return!this.isSorted||!this.sortDirection?`none`:this.sortDirection===`ASC`?`ascending`:`descending`}get resizerLabel(){return`Resize ${this.label??this.column.key}`}get width(){return this.column.inlineWidth??this.column.baseWidth}get minWidth(){return Math.max(1,this.column.leafs.length)*this.grid.MIN_COLUMN_WIDTH_PX}get maxWidth(){return Math.max(this.grid.containerWidth||ce,this.width,this.minWidth)}get paddingStart(){if(!this.column.isRowSelection)return this.column.isEndAligned?10:3}get paddingEnd(){if(!this.column.isRowSelection)return this.column.align===`center`?3:void 0}get variant(){let{isPinned:e,isFirstStartPinned:t,isLastStartPinned:n,isFirstEndPinned:r,isLastEndPinned:i}=this.column.pinFlags.value;return{isPinned:e,isFirstStartPinned:t,isLastStartPinned:n,isFirstEndPinned:r,isLastEndPinned:i,isSortable:this.isSortable,isRowNumber:this.column.isRowNumber,isFirstLeaf:this.column.isFirstLeaf,isLastLeaf:this.column.isLastLeaf}}get contextMenuButtonVariant(){let{isPinned:e,isFirstStartPinned:t,isLastStartPinned:n,isFirstEndPinned:r,isLastEndPinned:i}=this.column.pinFlags.value;return{isPinned:e,isFirstStartPinned:t,isLastStartPinned:n,isFirstEndPinned:r,isLastEndPinned:i,isSortable:this.isSortable,isRowNumber:this.column.isRowNumber}}get sections(){return this.column.contextMenuSections}get canSortAsc(){let{key:e}=this.column;return this.sections.sort&&this.column.isLeaf&&this.column.sortable&&(this.grid.sortColumn!==e||this.grid.sortDirection===`DESC`)}get canSortDesc(){let{key:e}=this.column;return this.sections.sort&&this.column.isLeaf&&this.column.sortable&&(this.grid.sortColumn!==e||this.grid.sortDirection===`ASC`)}get canClearSort(){return this.sections.sort&&this.column.isLeaf&&this.column.sortable&&this.grid.sortColumn===this.column.key}get canPinStart(){return this.sections.pin&&this.column.pin!==`START`}get canPinEnd(){return this.sections.pin&&this.column.pin!==`END`}get canUnpin(){return this.sections.pin&&!!this.column.pin}get canGroupBy(){return this.sections.group&&this.column.isLeaf&&!this.column.isGrouping}get canUnGroupAll(){return this.sections.group&&this.column.isLeaf&&this.column.isGrouping}get hasSortSection(){return this.canSortAsc||this.canSortDesc||this.canClearSort}get hasPinSection(){return this.canPinStart||this.canPinEnd||this.canUnpin}get hasGroupSection(){return this.canGroupBy||this.canUnGroupAll}},V=class e{def;grid;parent;constructor(t,n,r){if(this.def=t,this.grid=n,this.parent=r,this.columns=t.columns?.map(r=>new e(t.pin?{...r,pin:t.pin}:r,n,this))??[],this.isLeaf){let e=this.grid.columnWidths.get(this.key);this._inlineWidth=e??this.def.width??this.grid.DEFAULT_COLUMN_WIDTH_PX,this._pin=B(t.pin)}}columns=[];get kind(){switch(this.key){case U:return`rowNumber`;case W:return`rowSelection`;case K:return`rowDetail`;case G:return`grouping`;default:return`data`}}get isRowNumber(){return this.kind===`rowNumber`}get isRowSelection(){return this.kind===`rowSelection`}get isRowDetail(){return this.kind===`rowDetail`}get isGrouping(){return this.kind===`grouping`}get isData(){return this.kind===`data`}pinFlags=R(()=>{let e=this.pin===`START`,t=this.pin===`END`;return{isStartPinned:e,isEndPinned:t,isPinned:e||t,isFirstStartPinned:e&&this.startOffset===0,isLastStartPinned:e&&this.isEdge,isFirstEndPinned:t&&this.isEdge,isLastEndPinned:t&&this.endOffset===0}},()=>[this.grid.columns]);cellVariant=R(()=>{let{isPinned:e,isFirstStartPinned:t,isLastStartPinned:n,isFirstEndPinned:r,isLastEndPinned:i}=this.pinFlags.value;return{isPinned:e,isFirstStartPinned:t,isLastStartPinned:n,isFirstEndPinned:r,isLastEndPinned:i,isRowSelection:this.isRowSelection,isRowNumber:this.isRowNumber,isFirstLeaf:this.isFirstLeaf,isLastLeaf:this.isLastLeaf,isRowDetail:this.isRowDetail}},()=>[this.pinFlags]);cellStyleVars=R(()=>{let{isStartPinned:e,isEndPinned:t}=this.pinFlags.value;return{width:`var(${this.widthVarName})`,height:`var(${this.grid.rowHeightVarName})`,insetInlineStart:e?`var(${this.inlineStartVarName})`:void 0,insetInlineEnd:t?`var(${this.inlineEndVarName})`:void 0}},()=>[this.pinFlags]);_headerCell=R(()=>new le(this));get headerCell(){return this._headerCell.value}get visibleColumns(){return this.columns.filter(e=>e.isVisible)}get isFirstLeaf(){let{leafs:e}=this;return e.length>0&&e.at(0)===this}get isLastLeaf(){let{leafs:e}=this;return e.length>0&&e.at(-1)===this}get key(){return this.def.key}get header(){return this.def.header}get align(){return this.def.align}get isEndAligned(){return this.align===`end`||this.align===`right`}get hasAlign(){return`align`in this.def}get isLeaf(){return this.columns.length===0}get Cell(){return this.def.Cell}get filterable(){return this.def.filterable}get filterConfig(){let{filterable:e}=this.def;if(e)return typeof e==`object`?e:{type:`text`}}get currentFilter(){return this.grid.columnFilters[this.key]}get filterOptions(){let e=this.filterConfig;return e?.type===`multiselect`&&e.options?e.options:this.grid.getColumnUniqueValues(this.key).map(e=>({label:e===null?`(empty)`:String(e),value:e}))}setTextFilter(e){this.grid.setColumnFilter(this.key,e.trim()?{type:`text`,value:e}:void 0)}setNumberFilter(e,t,n){let r=typeof t==`number`?t:parseFloat(t);if(isNaN(r)||t===``){this.grid.setColumnFilter(this.key,void 0);return}let i={type:`number`,operator:e,value:r};if(e===`between`&&n!==void 0&&n!==``){let e=typeof n==`number`?n:parseFloat(String(n));isNaN(e)||(i.valueTo=e)}this.grid.setColumnFilter(this.key,i)}setMultiselectFilter(e){this.grid.setColumnFilter(this.key,e.length===0?void 0:{type:`multiselect`,values:e})}clearFilter(){this.grid.setColumnFilter(this.key,void 0)}get sortable(){return this.def.sortable===void 0?this.grid.props.def.sortable!==!1:this.def.sortable}get resizable(){return this.def.resizable===void 0?this.grid.props.def.resizable!==!1:this.def.resizable}get contextMenu(){return this.def.contextMenu===void 0?this.grid.props.def.contextMenu??!0:this.def.contextMenu}get showContextMenu(){let e=this.contextMenu;return typeof e==`boolean`?e:e.sort!==!1||e.pin!==!1||e.group!==!1}get contextMenuSections(){let e=this.contextMenu;return typeof e==`boolean`?{sort:e,pin:e,group:e}:{sort:e.sort!==!1,pin:e.pin!==!1,group:e.group!==!1}}get isFlexible(){return this.def.flexible!==!1}get baseWidth(){return this._inlineWidth??this.grid.DEFAULT_COLUMN_WIDTH_PX}_pin;get pin(){if(this.isLeaf)return this._pin;let e=[...new Set(this.columns.flatMap(e=>e.pin))];if(e.length===1)return e[0]}get uniqueKey(){return`${this.key}${this.pin??``}`}getPinnedColumn(t){if(this.hasPin(t)){if(this.isLeaf)return this;let n=new e({...this.def,pin:t},this.grid,this.parent);return n.columns=this.columns.filter(e=>e.hasPin(t)).map(e=>{let r=e.getPinnedColumn(t);return r.parent=n,r}).filter(e=>!!e),n}}hasPin(e){return this.isLeaf?this._pin===e:this.columns.some(t=>t.hasPin(e))}get death(){return this.parent?this.parent.death+1:0}get flatColumns(){let e=[this];return e.push(...this.columns.flatMap(e=>e.flatColumns)),e}_inlineWidth;get inlineWidth(){if(this.isLeaf)return this.grid.getFlexWidth(this.key)??this._inlineWidth;let e=this.visibleColumns.map(e=>e.inlineWidth).filter(e=>typeof e==`number`);if(e.length!==0)return F.sumBy(e,e=>e)}get startOffset(){let e=0;if(this.parent){let{visibleColumns:t,startOffset:n}=this.parent,r=t.findIndex(e=>e===this);e+=F.sumBy(t,(e,t)=>t<r?e.inlineWidth??0:0),e+=n}else{let t=this.grid.columns.value.start.filter(e=>e.isVisible),n=t.findIndex(e=>e===this);e+=F.sumBy(t,(e,t)=>t<n?e.inlineWidth??0:0)}return e}get endOffset(){let e=0;if(this.parent){let{visibleColumns:t}=this.parent,n=t.reverse(),r=n.findIndex(e=>e===this);e+=F.sumBy(n,(e,t)=>t<r?e.inlineWidth??0:0),e+=this.parent.endOffset}else{let t=this.grid.columns.value.end.filter(e=>e.isVisible).reverse(),n=t.findIndex(e=>e===this);e+=F.sumBy(t,(e,t)=>t<n?e.inlineWidth??0:0)}return e}get isEdge(){if(!this.pin)return!1;if(this.parent){let{visibleColumns:e}=this.parent;return(this.pin===`START`?e.at(-1):e.at(0))===this&&this.parent.isEdge}return(this.pin===`START`?this.grid.columns.value.start.filter(e=>e.isVisible).at(-1):this.grid.columns.value.end.filter(e=>e.isVisible).at(0))===this}get isVisible(){return this.isLeaf?!this.grid.hiddenColumns.has(this.key):this.leafs.some(e=>e.isVisible)}get leafs(){return this.isLeaf?[this]:this.visibleColumns.flatMap(e=>e.leafs)}get groupColumnWidthVarName(){return`--${this.uniqueKey}-group-width`}get widthVarName(){return`--${this.uniqueKey}-width`}get inlineStartVarName(){return`--${this.uniqueKey}-inline-start`}get inlineEndVarName(){return`--${this.uniqueKey}-inline-end`}get gridRows(){return this.isLeaf?this.grid.columns.value.maxDeath-this.death:1}_resizeStartX=0;_resizeSizes={};_resizeTotalWidth=0;beginResize=e=>{let{MIN_COLUMN_WIDTH_PX:t}=this.grid;this._resizeStartX=e,this._resizeSizes=F.toRecord(this.leafs,e=>[e.key,e.inlineWidth??e.baseWidth]),this._resizeTotalWidth=F.sumBy(this.leafs,e=>this._resizeSizes[e.key])-this.leafs.length*t};get resizeSign(){return this.pin===`END`===this.grid.isRtl?1:-1}applyResize=e=>{let{MIN_COLUMN_WIDTH_PX:t}=this.grid,n=(e-this._resizeStartX)*this.resizeSign;this.leafs.forEach(e=>{let r=this._resizeSizes[e.key],i=this._resizeTotalWidth>0?(r-t)/this._resizeTotalWidth*n:n/this.leafs.length,a=Math.round(r+i);e.setWidth(a<t?t:a)}),this.grid.flexWidths.clear()};resizeTo=e=>{this.applyResize(e),this.grid.notify()};endResize=()=>{this.grid.notify()};moveResizer=e=>{this.beginResize(0),this.applyResize(e)};resizeWidthTo=e=>{let t=this.inlineWidth??this.baseWidth;this.moveResizer((e-t)*this.resizeSign)};pinColumn=e=>{this.isLeaf?this._pin=B(e):this.columns.forEach(t=>t.pinColumn(e)),this.grid.pinColumn(this.uniqueKey,e)};toggleGrouping=()=>{this.grid.toggleGrouping(this.key)};sortColumn=(...e)=>{this.grid.setSortColumn(this.key,...e)};setWidth=e=>{if(!this.isLeaf)throw Error(`Cannot set width for a parent column.`);this._inlineWidth!==e&&(this._inlineWidth=e,this.grid.setWidth(this.key,e))};toggleVisibility=()=>{this.grid.toggleColumnVisibility(this.key)}},ue=class{grid;constructor(e){this.grid=e}get entries(){return this.grid.columns.value.leafs.filter(e=>e.isData).map(e=>({id:String(e.key),label:String(e.header??e.key),column:e,visible:e.isVisible}))}get selectedIds(){return this.entries.filter(e=>e.visible).map(e=>e.id)}get total(){return this.entries.length}get hiddenCount(){return this.entries.reduce((e,t)=>t.visible?e:e+1,0)}get hasHidden(){return this.hiddenCount>0}setVisibility=e=>{let t=new Set(e);this.entries.forEach(e=>{let n=t.has(e.id);e.visible!==n&&e.column.toggleVisibility()})}},de=class{grid;constructor(e){this.grid=e}get globalFilterValue(){return this.grid.globalFilterValue}get columnFilters(){return this.grid.columnFilters}get hasActiveFilters(){return this.grid.hasActiveFilters}get filterStats(){return this.grid.filterStats}get hasFilterableColumns(){return this.grid.columns.value.visibleLeafs.some(e=>!!e.filterable)}setGlobalFilter=e=>this.grid.setGlobalFilter(e);clearAllFilters=()=>this.grid.clearAllFilters()},fe=class{grid;constructor(e){this.grid=e}get isPaginated(){return this.grid.isPaginated}get state(){return this.grid.paginationState}get pageSizeOptions(){return this.grid.pageSizeOptions}get page(){return this.grid.page}get pageSize(){return this.grid.pageSize}get totalPages(){return this.state?.totalPages??1}get totalItems(){return this.state?.totalItems??0}get canGoPrev(){return this.page>1}get canGoNext(){return this.page<this.totalPages}get startItem(){return(this.page-1)*this.pageSize+1}get endItem(){return Math.min(this.startItem+this.pageSize-1,this.totalItems)}changePage=e=>this.grid.changePage(e);changePageSize=e=>this.grid.changePageSize(e);firstPage=()=>{this.canGoPrev&&this.grid.changePage(1)};prevPage=()=>{this.canGoPrev&&this.grid.changePage(this.page-1)};nextPage=()=>{this.canGoNext&&this.grid.changePage(this.page+1)};lastPage=()=>{this.canGoNext&&this.grid.changePage(this.totalPages)};jumpToPage=e=>{let t=parseInt(e,10);isNaN(t)||this.grid.changePage(Math.max(1,Math.min(t,this.totalPages)))}},pe=class{grid;row;column;constructor(e,t,n){this.grid=e,this.row=t,this.column=n}get value(){return this.column.isRowNumber?this.row.rowIndex+1:this.row.data[this.column.key]}get isExpanded(){return this.row.expanded}get selected(){return this.row.selected}get isFirst(){return this.row.cells[0]===this}get isLast(){let e=this.row.cells;return e[e.length-1]===this}toggleDetail=()=>{this.grid.toggleDetailRow(this.row.key)};toggleSelection=()=>{this.grid.toggleRowSelection(this.row.key)}},H=class{grid;data;rowIndex;constructor(e,t,n){this.grid=e,this.data=t,this.rowIndex=n}_key;get key(){return this._key??=this.grid.getRowKey(this.data)}parentRow;count=1;kind=`row`;get expandOnRowClick(){return this.grid.props.def.rowDetail?.expandOnRowClick??!1}toggleDetail=()=>{this.grid.toggleDetailRow(this.key)};_cells=R(()=>this.grid.columns.value.visibleLeafs.map(e=>new pe(this.grid,this,e)));get cells(){return this._cells.value}get cellCount(){return this.cells.length}columnOf(e){return e}get selected(){return this.grid.selectedRows.has(this.key)}get expanded(){return this.grid.expandedDetailRows.has(this.key)}get flatRows(){return this.grid.props.def.rowDetail&&this.expanded?[this,new I(this.grid,this)]:[this]}get allRows(){return this}},me=class e{grid;static DEFAULT_VISIBLE_ROWS_COUNT=10;static ROWS_TO_PRELOAD=20;constructor(e){this.grid=e}get showAll(){return this.grid.props.def.visibleRowsCount===`all`}get hasDetailRows(){return!!this.grid.props.def.rowDetail}get isEmpty(){return this.grid.props.data.length===0}get visibleRowsCount(){if(this.showAll)return this.grid.flatRows.value.length;let t=this.grid.props.def.visibleRowsCount;return typeof t==`number`?t:e.DEFAULT_VISIBLE_ROWS_COUNT}get pageRows(){let t=this.grid.props.def.visibleRowsCount;return typeof t==`number`?t:e.DEFAULT_VISIBLE_ROWS_COUNT}get viewHeight(){if(this.showAll)return;let{rowHeight:e}=this.grid;return e*this.visibleRowsCount+e/5}get totalHeight(){return this.hasDetailRows?this.grid.rowOffsets.value.totalHeight:this.grid.flatRows.value.length*this.grid.rowHeight}get emptyHeight(){return this.viewHeight??this.grid.rowHeight*e.DEFAULT_VISIBLE_ROWS_COUNT}rowTop(e){return this.hasDetailRows?this.grid.rowOffsets.value.offsets[e]??0:e*this.grid.rowHeight}findStartIndex(e,t){let n=0,r=e.length-1;for(;n<r;){let i=n+r+1>>>1;e[i]<=t?n=i:r=i-1}return n}window(t){let n=this.grid.flatRows.value.length;if(this.showAll)return{startIndex:0,take:n,translateY:0,totalHeight:this.totalHeight,viewHeight:void 0};let{rowHeight:r}=this.grid,i=e.ROWS_TO_PRELOAD,{offsets:a}=this.grid.rowOffsets.value,o=this.hasDetailRows?Math.max(0,this.findStartIndex(a,t)-i):Math.max(0,Math.floor(t/r)-i),s=this.hasDetailRows?a[o]??0:o*r;return{startIndex:o,take:this.visibleRowsCount+i*2,translateY:s,totalHeight:this.totalHeight,viewHeight:this.viewHeight}}},U=`row-number-cell`,W=`row-selection-cell`,G=`grouping-cell`,K=`row-detail-cell`,he=class{props;constructor(e,t){this.props=e,t&&this.listeners.add(t)}_version=0;listeners=new Set;subscribe=e=>(this.listeners.add(e),()=>this.listeners.delete(e));getSnapshot=()=>this._version;notify=()=>{this._version++,this.listeners.forEach(e=>e())};setProps(e){let t=this.props;t!==e&&(this.props=e,t.def!==e.def&&this.sourceColumns.clear(),(t.data!==e.data||t.def!==e.def||t.globalFilterValue!==e.globalFilterValue||t.columnFilters!==e.columnFilters||t.filters!==e.filters||t.expandedRowKeys!==e.expandedRowKeys||t.page!==e.page||t.pageSize!==e.pageSize)&&this.rows.clear())}get componentName(){return this.props.component||`datagrid`}_identifier=`datagrid`;get identifier(){return this._identifier}setIdentifier(e){this._identifier=e}get titleId(){return`${this._identifier}-title`}get resizerStyle(){return this.props.def.resizerStyle??`visible`}get resizeMode(){return this.props.def.resizeMode??`smooth`}sourceColumns=R(()=>{let{def:e}=this.props,t=[];if(this.groupColumns.size>0&&t.push(new V({key:G},this)),t.push(...e.columns.map(e=>new V(e,this))),e.rowSelection){let n=typeof e.rowSelection==`object`&&e.rowSelection.pinned?`START`:void 0;t.unshift(new V({key:W,pin:n,width:50,align:`center`,Cell:se},this))}if(e.showRowNumber){let n,r=70;typeof e.showRowNumber==`object`&&(e.showRowNumber.pinned&&(n=`START`),r=e.showRowNumber.width??70),t.unshift(new V({key:U,pin:n,width:r,align:`end`},this))}if(e.rowDetail){let n=e.rowDetail.pinned?`START`:void 0,r=e.rowDetail.expandColumnWidth??50,i=e.rowDetail.expandColumnHeader??``;t.unshift(new V({key:K,header:i,pin:n,width:r,align:`center`,Cell:oe},this))}return t});columns=R(()=>{let e=this.sourceColumns.value.map(e=>e.getPinnedColumn(`START`)).filter(e=>!!e),t=this.sourceColumns.value.map(e=>e.getPinnedColumn()).filter(e=>!!e),n=this.sourceColumns.value.map(e=>e.getPinnedColumn(`END`)).filter(e=>!!e),r=[...e,...t,...n].flatMap(e=>e.flatColumns),i=r.filter(e=>e.isLeaf),a=r.filter(e=>e.isLeaf&&e.isVisible);return{start:e,middle:t,end:n,flat:r,leafs:i,visibleLeafs:a,userVisibleLeafs:a.filter(e=>![U,W,G,K].includes(e.key)),maxDeath:F.maxBy(r,e=>e.death)+1}},()=>[this.sourceColumns]);headerRows=R(()=>F.sortBy(F.groupBy(this.columns.value.flat,e=>e.death),e=>e.key).map(e=>{let t=F.toRecord(F.groupBy(e.values,e=>e.pin??`NO_PIN`),e=>[e.key,e.values]);return[...t.START?.filter(e=>e.isVisible)??[],...t.NO_PIN?.filter(e=>e.isVisible)??[],...t.END?.filter(e=>e.isVisible)??[]]}),()=>[this.columns]);gridTemplateColumns=R(()=>{let{visibleLeafs:e}=this.columns.value,t=F.sumBy(e,e=>+(e.pin===`END`)),n=e.length-t;return`${n>0?`repeat(${n}, max-content)`:``} ${t>0?`repeat(${t}, max-content)`:``}`.trim()},()=>[this.columns]);_globalFilterValue=``;get globalFilterValue(){return this.props.globalFilterValue??this._globalFilterValue}_columnFilters={};get columnFilters(){return this.props.columnFilters??this._columnFilters}applyGlobalFilter(e){let t=this.globalFilterValue.trim();if(!t)return e;let{globalFilterKeys:n}=this.props.def,r=n??this.columns.value.leafs.filter(e=>e.key!==`row-number-cell`&&e.key!==`row-selection-cell`&&e.key!==`grouping-cell`&&e.key!==`row-detail-cell`).map(e=>e.key);return e.filter(e=>r.some(n=>{let r=e[n];return r!=null&&ae(t,String(r))}))}applyColumnFilters(e){let t=this.columnFilters,n=Object.keys(t);return n.length===0?e:e.filter(e=>n.every(n=>{let r=t[n];if(!r)return!0;let i=e[n];return this.matchesFilter(i,r)}))}matchesFilter(e,t){switch(t.type){case`text`:return!t.value.trim()||e!=null&&ae(t.value,String(e));case`number`:{if(e==null)return!1;let n=typeof e==`number`?e:parseFloat(String(e));if(isNaN(n))return!1;switch(t.operator){case`eq`:return n===t.value;case`ne`:return n!==t.value;case`gt`:return n>t.value;case`gte`:return n>=t.value;case`lt`:return n<t.value;case`lte`:return n<=t.value;case`between`:return t.valueTo===void 0?n>=t.value:n>=t.value&&n<=t.valueTo;default:return!0}}case`multiselect`:return t.values.length===0||t.values.includes(e);default:return!0}}applyExternalFilters(e){let t=this.props.filters;return!t||t.length===0?e:e.filter(e=>t.every(t=>t(e)))}get filteredData(){if(this.isPaginated)return this.props.data;let e=this.props.data;return e=this.applyExternalFilters(e),this.props.def.globalFilter&&(e=this.applyGlobalFilter(e)),e=this.applyColumnFilters(e),e}fireServerStateChange(e){this.props.onServerStateChange?.({page:e?.page??this.page,pageSize:e?.pageSize??this.pageSize,sortColumn:`sortColumn`in(e??{})?e.sortColumn:this._sortColumn,sortDirection:`sortDirection`in(e??{})?e.sortDirection:this._sortDirection,columnFilters:e?.columnFilters??this.columnFilters,globalFilterValue:e?.globalFilterValue??this.globalFilterValue})}setGlobalFilter=e=>{this.props.onGlobalFilterChange?this.props.onGlobalFilterChange(e):this._globalFilterValue=e;let t=this.isPaginated&&this.page!==1?1:this.page;t!==this.page&&(this.props.onPageChange?this.props.onPageChange(1,this.pageSize):this._page=1),this.fireServerStateChange({globalFilterValue:e,page:t}),this.rows.clear(),this.notify()};setColumnFilter=(e,t)=>{let n={...this.columnFilters};t===void 0?delete n[e]:n[e]=t,this.props.onColumnFiltersChange?this.props.onColumnFiltersChange(n):this._columnFilters=n;let r=this.isPaginated&&this.page!==1?1:this.page;r!==this.page&&(this.props.onPageChange?this.props.onPageChange(1,this.pageSize):this._page=1),this.fireServerStateChange({columnFilters:n,page:r}),this.rows.clear(),this.notify()};clearColumnFilters=()=>{this.props.onColumnFiltersChange?this.props.onColumnFiltersChange({}):this._columnFilters={},this.fireServerStateChange({columnFilters:{}}),this.rows.clear(),this.notify()};clearAllFilters=()=>{this.setGlobalFilter(``),this.clearColumnFilters()};getColumnUniqueValues=e=>{let t=new Set;return this.props.data.forEach(n=>{let r=n[e];r!==void 0&&t.add(r)}),Array.from(t).sort((e,t)=>e===null?1:t===null?-1:typeof e==`string`&&typeof t==`string`?e.localeCompare(t):typeof e==`number`&&typeof t==`number`?e-t:String(e).localeCompare(String(t)))};get hasActiveFilters(){return this.globalFilterValue.trim()!==``||Object.keys(this.columnFilters).length>0}get filterStats(){if(this.isPaginated){let e=this.props.def.pagination.totalCount;return{filtered:e,total:e}}return{filtered:this.filteredData.length,total:this.props.data.length}}rows=R(()=>{let e=this.filteredData;if(this._sortColumn&&!this.isPaginated&&(e=F.sortBy(e,e=>e[this._sortColumn],this._sortDirection)),this.groupColumns.size>0){let t=(e,n,r)=>{let i=n.values().next().value;n.delete(i);let a=F.findOrThrow(this.columns.value.leafs,e=>e.key===i);return this._sortColumn===`grouping-cell`&&(e=F.sortBy(e,e=>e[i],this._sortDirection)),F.groupBy(e,e=>e[i]).map(e=>{let i;i=n.size>0?t(e.values,new Set(n),r+1):e.values.map((e,t)=>new H(this,e,r+1+t));let o=new q(this,a,i,r,e.key);return r+=1,o.expanded&&(r+=i.length),o})};return t(e,new Set(this.groupColumns),0)}return e.map((e,t)=>new H(this,e,t))},()=>[this.columns]);flatRows=R(()=>this.rows.value.flatMap(e=>e.flatRows),()=>[this.rows]);get rowHeight(){return this.props.def.rowHeight??this.DEFAULT_ROW_HEIGHT_PX}sizes=R(()=>{let e=this.columns.value.flat.reduce((e,t)=>{let{inlineWidth:n}=t;return typeof n==`number`&&(e[t.widthVarName]=`${t.inlineWidth}px`),t.pin===`START`&&(e[t.inlineStartVarName]=`${t.startOffset}px`),t.pin===`END`&&(e[t.inlineEndVarName]=`${t.endOffset}px`),e},{});e[this.rowHeightVarName]=`${this.rowHeight}px`,e[this.inlineStartEdgeVarName]=`${this.inlineStartEdge}px`,this._containerWidth>0&&(e[this.viewportWidthVarName]=`${this._containerWidth}px`);let{visibleLeafs:t}=this.columns.value,n=t.find(e=>e.key===G);if(n){let r=F.sumBy(t,e=>e.pin===n.pin&&e.key!==`row-number-cell`&&e.key!==`row-selection-cell`&&e.key!==`row-detail-cell`?e.inlineWidth??0:0);e[n.groupColumnWidthVarName]=`${r}px`}return this.groupColumns.forEach(n=>{let r=F.findOrThrow(this.columns.value.leafs,e=>e.key===n);e[r.groupColumnWidthVarName]=`${F.sumBy(t,e=>e.pin===r.pin?e.inlineWidth??0:0)}px`}),e},()=>[this.columns,this.flexWidths]);_containerWidth=0;get containerWidth(){return this._containerWidth}_sizingElement=null;get sizingElement(){return this._sizingElement}setSizingElement=e=>{this._sizingElement=e};get isRtl(){return t.o(this._sizingElement)}setContainerWidth=e=>{this._containerWidth!==e&&(this._containerWidth=e,this.flexWidths.clear(),this.notify())};flexWidths=R(()=>{let e=this._containerWidth;if(e<=0)return{};let t=this.columns.value.visibleLeafs,n=e=>!e.isFlexible||this.columnWidths.has(e.key),r=F.sumBy(t.filter(n),e=>e.baseWidth),i=t.filter(e=>!n(e)),a=F.sumBy(i,e=>e.baseWidth),o=e-r;if(o<=a)return F.toRecord(i,e=>[e.key,e.baseWidth]);let s={},c=0;return i.forEach((e,t)=>{if(t===i.length-1)s[e.key]=o-c;else{let t=Math.floor(e.baseWidth/a*o);s[e.key]=t,c+=t}}),s},()=>[this.columns]);getFlexWidth(e){return this.flexWidths.value[e]}DEFAULT_ROW_HEIGHT_PX=48;MIN_COLUMN_WIDTH_PX=48;DEFAULT_COLUMN_WIDTH_PX=200;expandedGroupRow=new Set;_expandedDetailRows=new Set;get expandedDetailRows(){return this.props.expandedRowKeys?new Set(this.props.expandedRowKeys):this._expandedDetailRows}toggleDetailRow=e=>{let t=new Set(this.expandedDetailRows);t.has(e)?t.delete(e):t.add(e),this.props.onExpandedRowKeysChange?this.props.onExpandedRowKeysChange(Array.from(t)):this._expandedDetailRows=t,this.rows.clear(),this.notify()};_page=1;_pageSize;get page(){return this.props.page??this._page}get pageSize(){if(this.props.pageSize!==void 0)return this.props.pageSize;if(this._pageSize!==void 0)return this._pageSize;let e=this.props.def.pagination;if(e?.pageSize)return e.pageSize;let t=this.props.def.visibleRowsCount;return typeof t==`number`?t:10}get pageSizeOptions(){return this.props.def.pagination?.pageSizeOptions}get isPaginated(){return!!this.props.def.pagination}get paginationState(){let e=this.props.def.pagination;if(!e)return;let t=e.totalCount,n=this.pageSize;return{page:this.page,pageSize:n,totalItems:t,totalPages:Math.max(1,Math.ceil(t/n))}}changePage=e=>{let t=this.paginationState;if(!t)return;let n=Math.max(1,Math.min(e,t.totalPages));n!==this.page&&(this.props.onPageChange?this.props.onPageChange(n,t.pageSize):this._page=n,this.fireServerStateChange({page:n}),this.rows.clear(),this.notify())};changePageSize=e=>{e!==this.pageSize&&(this.props.onPageSizeChange?this.props.onPageSizeChange(e):this._pageSize=e,this.props.onPageChange?this.props.onPageChange(1,e):this._page=1,this.fireServerStateChange({page:1,pageSize:e}),this.rows.clear(),this.notify())};rowOffsets=R(()=>{let e=[],t=0;for(let n of this.flatRows.value)e.push(t),t+=n instanceof I?n.heightForOffset:this.rowHeight;return{offsets:e,totalHeight:t}},()=>[this.flatRows]);viewport=new me(this);columnVisibility=new ue(this);filter=new de(this);pagination=new fe(this);get hasVisibleColumns(){return this.columns.value.userVisibleLeafs.length>0}get isEmpty(){return this.props.data.length===0}get allRowsSelected(){return this.selectedRows.size===this.props.data.length}get someRowsSelected(){return this.selectedRows.size>0}_selectionAnnounced=!1;get selectionAnnouncement(){if(!this._selectionAnnounced)return``;let e=this.selectedRows.size;return e===0?`No rows selected`:`${e} of ${this.props.data.length} rows selected`}get groupedColumns(){return Array.from(this.groupColumns,e=>F.findOrThrow(this.columns.value.leafs,t=>t.key===e))}selectedRows=new Set;get inlineStartEdge(){return F.sumBy(this.columns.value.start,e=>e.inlineWidth??0)}get inlineEndEdge(){return F.sumBy(this.columns.value.end,e=>e.inlineWidth??0)}inlineStartEdgeVarName=`--inline-start-edge`;rowHeightVarName=`--row-height`;viewportWidthVarName=`--viewport-width`;_idMap=new WeakMap;_autoId=0;_idFactory=typeof crypto<`u`&&typeof crypto.randomUUID==`function`?()=>crypto.randomUUID():()=>`auto-row-${this._autoId++}`;getRowKey(e){let{rowKey:t}=this.props.def;return t?typeof t==`function`?t(e):e[t]:(this._idMap.has(e)||this._idMap.set(e,this._idFactory()),this._idMap.get(e))}setSortColumn=(e,...t)=>{if(t.length>0)[this._sortDirection]=t,this._sortColumn=this._sortDirection?e:void 0;else{let{_sortColumn:t,_sortDirection:n}=this;this._sortColumn=t===e&&n===`DESC`?void 0:e,this._sortDirection=t===e&&n===`ASC`?`DESC`:`ASC`}this.props.onSortChange?.(this._sortColumn,this._sortDirection);let n=this.isPaginated&&this.page!==1?1:this.page;n!==this.page&&(this.props.onPageChange?this.props.onPageChange(1,this.pageSize):this._page=1),this.fireServerStateChange({sortColumn:this._sortColumn,sortDirection:this._sortDirection,page:n}),this.rows.clear(),this.notify()};pinColumn=(e,t)=>{let n=B(t),r=F.findOrThrow(this.columns.value.flat,t=>t.uniqueKey===e);r.pin!==n&&r.pinColumn(n),this.columns.clear(),this.notify()};toggleGrouping=e=>{this.groupColumns=new Set(this.groupColumns),this.hiddenColumns=new Set(this.hiddenColumns),this.groupColumns.has(e)?(this.groupColumns.delete(e),this.hiddenColumns.delete(e)):(this.groupColumns.add(e),this.hiddenColumns.add(e)),this.sourceColumns.clear(),this.notify()};unGroupAll=()=>{let e=new Set(this.groupColumns);this.groupColumns=new Set,this.hiddenColumns=new Set(Array.from(this.hiddenColumns).filter(t=>!e.has(t))),this.sourceColumns.clear(),this.notify()};toggleGroupRow=e=>{this.expandedGroupRow=new Set(this.expandedGroupRow),this.expandedGroupRow.has(e)?this.expandedGroupRow.delete(e):this.expandedGroupRow.add(e),this.rows.clear(),this.notify()};toggleRowSelection=e=>{this.toggleRowsSelection([e])};toggleRowsSelection=e=>{this.selectedRows=new Set(this.selectedRows),this._selectionAnnounced=!0;let t=e.every(e=>this.selectedRows.has(e));t?e.forEach(e=>this.selectedRows.delete(e)):e.forEach(e=>this.selectedRows.add(e)),this.flatRows.clear(),this.notify(),this.props.onSelectionChange?.({action:t?`deselect`:`select`,affectedRowKeys:e,selectedRowKeys:Array.from(this.selectedRows),isAllSelected:this.selectedRows.size===this.props.data.length})};toggleSelectAllRows=()=>{this.toggleRowsSelection(this.props.data.map(e=>this.getRowKey(e)))};toggleColumnVisibility=e=>{this.hiddenColumns=new Set(this.hiddenColumns),this.hiddenColumns.has(e)?this.hiddenColumns.delete(e):this.hiddenColumns.add(e),this.columns.clear(),this.notify()};setWidth=(e,t)=>{this.columnWidths.set(e,t)};groupColumns=new Set;hiddenColumns=new Set;columnWidths=new Map;_sortColumn;get sortColumn(){return this._sortColumn}_sortDirection=`ASC`;get sortDirection(){return this._sortDirection}},ge=class{grid;row;column;constructor(e,t,n){this.grid=e,this.row=t,this.column=n}get value(){return this.column.isRowNumber?this.row.rowIndex+1:this.column.isGrouping?`${this.row.groupValue} (${this.row.count})`:null}get isExpanded(){return!1}get isFirst(){return!1}get isLast(){return!1}get cellKind(){if(this.column.isGrouping)return`grouping`;if(this.column.isRowSelection)return`selection`;let{groupingColumn:e}=this.row;return this.column.pin!==e.pin||this.column.isRowNumber||this.column.isRowDetail?`spacer`:`hidden`}get depthPadding(){return 4*this.row.depth}get gridColumnSpan(){return this.row.groupingColumnGridColumn}get widthVar(){return`var(${this.column.groupColumnWidthVarName})`}get isEndPinned(){return this.column.pin===`END`}get hasGroupingBorder(){return this.row.groupingColumn.pin===`START`}},q=class{grid;groupColumn;rows;rowIndex;groupValue;constructor(e,t,n,r,i){this.grid=e,this.groupColumn=t,this.rows=n,this.rowIndex=r,this.groupValue=i,n.forEach(e=>e.parentRow=this)}get key(){return`${this.parentRow?.key??``}${this.groupColumn.key}${this.groupValue}`}parentRow;_cells=R(()=>this.grid.columns.value.visibleLeafs.map(e=>new ge(this.grid,this,e)));get cells(){return this._cells.value}_renderedCells=R(()=>{let e=[];return this.cells.forEach((t,n)=>{t.cellKind!==`hidden`&&e.push({cell:t,columnIndex:n})}),e});get renderedCells(){return this._renderedCells.value}get cellCount(){return this.renderedCells.length}columnOf(e){return this.renderedCells[e]?.columnIndex??e}get selected(){return this.allRows.every(e=>e.selected)}get indeterminate(){return!this.selected&&this.allRows.some(e=>e.selected)}get expanded(){return this.grid.expandedGroupRow.has(this.key)}get depth(){return this.parentRow?this.parentRow.depth+1:0}get count(){return F.sumBy(this.rows,e=>e.count,0)}get flatRows(){return this.expanded?[this,...this.rows.flatMap(e=>e.flatRows)]:[this]}get allRows(){return this.rows.flatMap(e=>e.allRows)}get groupingColumn(){return F.findOrThrow(this.grid.columns.value.leafs,e=>e.key===G)}get groupingColumnGridColumn(){let{visibleLeafs:e}=this.grid.columns.value,{groupingColumn:t}=this;return F.sumBy(e,e=>+(e.pin===t.pin&&e.key!==`row-selection-cell`&&e.key!==`row-number-cell`&&e.key!==`row-detail-cell`))}kind=`group`;toggleRow(){this.grid.toggleGroupRow(this.key)}toggleSelectAll=()=>{this.grid.toggleRowsSelection(this.allRows.map(e=>e.key))}};function _e(e){let{row:t,index:n}=e,{grid:i,parentRow:a}=t,o=i.props.def.rowDetail,s=A(),l=(s?.headerRowCount??0)+n,{ref:u,tabIndex:d,onFocus:f}=s?.cellProps(l,0)??{},p=t.isAutoHeight;return(0,v.jsx)(c.default,{component:`${i.componentName}.body.detailRow`,props:{role:`row`,"aria-rowindex":l+1},style:{gridColumn:`1 / -1`,height:p?`auto`:`${t.height}px`},children:(0,v.jsx)(r.default,{ref:u,component:`${i.componentName}.body.detailRow.content`,position:`sticky`,insetStart:0,overflowX:`auto`,overflowY:`hidden`,props:{role:`gridcell`,"aria-colindex":1,"aria-colspan":s?.columnCount,tabIndex:d,onFocus:f},style:{width:`var(${i.viewportWidthVarName})`},children:o.content(a.data)})})}_e.displayName=`DataGridDetailRow`;function J(e){let{children:t,cell:n,row:r,columnIndex:i,ariaColIndex:a,ariaColSpan:o,style:s,...l}=e,{column:u}=n,{ref:d,tabIndex:f,onFocus:p}=A()?.cellProps(r,i)??{};u.hasAlign&&(l.jc=u.align);let m=n.isExpanded?{...u.cellVariant.value,isExpanded:!0,isExpandedFirstLeaf:n.isFirst,isExpandedLastLeaf:n.isLast}:u.cellVariant.value;return(0,v.jsx)(c.default,{ref:d,component:`${u.grid.componentName}.body.cell`,props:{role:`gridcell`,"aria-colindex":a??i+1,"aria-colspan":o,tabIndex:f,onFocus:p},variant:m,style:{...u.cellStyleVars.value,...s},...l,children:t})}J.displayName=`DataGridCell`;function ve(e){let{row:t,index:n}=e,{selected:i,indeterminate:a,expanded:o}=t,u=(A()?.headerRowCount??0)+n,d=(0,_.useCallback)(()=>t.toggleSelectAll(),[t]);return(0,v.jsx)(c.default,{component:`${t.grid.componentName}.body.groupRow`,className:`grid-row`,selected:t.grid.props.def.rowSelection?i:void 0,display:`contents`,props:{role:`row`,"aria-rowindex":u+1,"aria-expanded":o},children:t.renderedCells.map(({cell:e,columnIndex:n},c)=>{switch(e.cellKind){case`grouping`:return(0,v.jsx)(J,{cell:e,row:u,columnIndex:c,ariaColIndex:n+1,ariaColSpan:e.gridColumnSpan,style:{width:e.widthVar,insetInlineEnd:e.isEndPinned?`0`:void 0},be:e.hasGroupingBorder?1:void 0,gridColumn:e.gridColumnSpan,ps:e.depthPadding,overflow:`auto`,children:(0,v.jsx)(r.default,{textWrap:`nowrap`,px:3,children:(0,v.jsxs)(s.default,{component:`${t.grid.componentName}.body.groupRow.expandButton`,clean:!0,onClick:()=>t.toggleRow(),cursor:`pointer`,display:`flex`,gap:1,ai:`center`,props:{"aria-expanded":o},children:[(0,v.jsx)(z,{fill:`currentColor`,width:`14px`,height:`14px`,rotate:o?0:-90}),e.value]})})},e.column.key);case`selection`:return(0,v.jsx)(J,{cell:e,row:u,columnIndex:c,ariaColIndex:n+1,children:(0,v.jsx)(l.default,{variant:`datagrid`,m:1,checked:i,indeterminate:a,onChange:d,props:{"aria-label":`Select all rows in ${t.groupValue}`}})},e.column.key);case`spacer`:return(0,v.jsx)(J,{cell:e,row:u,columnIndex:c,ariaColIndex:n+1,px:e.column.isRowNumber?3:void 0,children:e.value},e.column.key);default:return null}})})}ve.displayName=`DataGridGroupRow`;function ye(e){let{cell:t}=e;return(0,v.jsx)(c.default,{component:`${t.grid.componentName}.body.cell.text`,height:`fit`,width:`fit`,overflow:`auto`,ai:`center`,jc:t.column.align,children:(0,v.jsx)(r.default,{px:3,textOverflow:`ellipsis`,overflow:`hidden`,textWrap:`nowrap`,children:t.value})})}ye.displayName=`DataGridCellText`;function be(e){let{row:t,index:n}=e,{selected:r,expandOnRowClick:i}=t,a=(A()?.headerRowCount??0)+n,o=(0,_.useCallback)(()=>{t.toggleDetail()},[t]);return(0,v.jsx)(c.default,{component:`${t.grid.componentName}.body.row`,className:`grid-row`,selected:t.grid.props.def.rowSelection?r:void 0,display:`contents`,props:{role:`row`,"aria-rowindex":a+1,onClick:i?o:void 0},cursor:i?`pointer`:void 0,children:t.cells.map((e,t)=>(0,v.jsx)(J,{cell:e,row:a,columnIndex:t,children:e.column.Cell?(0,v.jsx)(e.column.Cell,{cell:e}):(0,v.jsx)(ye,{cell:e})},e.column.key))})}be.displayName=`DataGridRow`;function xe(e,t){return e instanceof I?(0,v.jsx)(_e,{row:e,index:t},e.key):e instanceof q?(0,v.jsx)(ve,{row:e,index:t},e.key):(0,v.jsx)(be,{row:e,index:t},e.key)}function Se(e){let{grid:t,scrollTop:n}=e,{viewport:i}=t,{startIndex:a,take:o,translateY:s,totalHeight:l,viewHeight:u}=i.window(n),f=i.showAll,p=i.isEmpty,m=t.flatRows.value,h=(0,_.useMemo)(()=>p?null:F.take(m,o,a).map((e,t)=>xe(e,a+t)),[m,p,o,a]);if(p){let{noDataComponent:e}=t.props.def,n=t.props.loading?`loading...`:`empty`;return(0,v.jsx)(c.default,{component:`${t.componentName}.body.empty`,jc:`center`,ai:`center`,width:`fit`,position:`sticky`,insetStart:0,props:{role:`row`},style:{height:i.emptyHeight},children:(0,v.jsx)(r.default,{display:`contents`,props:{role:`gridcell`},children:e??n})})}return f?(0,v.jsx)(d.default,{component:`${t.componentName}.body`,width:`max-content`,minWidth:`fit`,transition:`none`,props:{role:`rowgroup`},style:{gridTemplateColumns:t.gridTemplateColumns.value},children:h}):(0,v.jsx)(r.default,{props:{role:`presentation`},style:{height:u},children:(0,v.jsx)(r.default,{props:{role:`presentation`},style:{height:`${l}px`},children:(0,v.jsx)(d.default,{component:`${t.componentName}.body`,width:`max-content`,minWidth:`fit`,transition:`none`,props:{role:`rowgroup`},style:{transform:`translate3d(0, ${s}px, 0)`,willChange:`transform`,gridTemplateColumns:t.gridTemplateColumns.value},children:h})})})}Se.displayName=`DataGridBody`;function Ce(e){let{grid:t}=e;return(0,v.jsx)(c.default,{component:`${t.componentName}.emptyColumns`,d:`column`,ai:`center`,jc:`center`,gap:4,py:16,px:6,bgColor:`gray-50`,borderRadius:4,theme:{dark:{bgColor:`gray-900`}},children:(0,v.jsxs)(c.default,{d:`column`,ai:`center`,gap:3,children:[(0,v.jsx)(r.default,{width:16,height:16,borderRadius:999,bgColor:`gray-200`,theme:{dark:{bgColor:`gray-700`}},display:`flex`,ai:`center`,jc:`center`,children:(0,v.jsx)(a.Svg,{viewBox:`0 0 24 24`,width:`40`,fill:`currentColor`,color:`gray-400`,theme:{dark:{color:`gray-500`}},children:(0,v.jsx)(a.Path,{fillRule:`evenodd`,props:{clipRule:`evenodd`},d:`M3 6a3 3 0 013-3h12a3 3 0 013 3v12a3 3 0 01-3 3H6a3 3 0 01-3-3V6zm3-1a1 1 0 00-1 1v12a1 1 0 001 1h12a1 1 0 001-1V6a1 1 0 00-1-1H6zm2 3a1 1 0 011-1h6a1 1 0 110 2H9a1 1 0 01-1-1zm0 4a1 1 0 011-1h6a1 1 0 110 2H9a1 1 0 01-1-1zm0 4a1 1 0 011-1h4a1 1 0 110 2H9a1 1 0 01-1-1z`})})}),(0,v.jsxs)(c.default,{d:`column`,ai:`center`,gap:1,children:[(0,v.jsx)(r.default,{fontSize:18,fontWeight:600,color:`gray-900`,theme:{dark:{color:`gray-50`}},children:`No Columns Selected`}),(0,v.jsx)(r.default,{fontSize:14,color:`gray-500`,textAlign:`center`,theme:{dark:{color:`gray-400`}},children:`Select at least one column from the columns menu to display data`})]})]})})}function Y(e){let{columnName:t,onClear:n}=e;return(0,v.jsx)(s.default,{clean:!0,type:`button`,position:`absolute`,insetEnd:2,top:`1/2`,translateY:`-1/2`,cursor:`pointer`,display:`flex`,ai:`center`,onClick:n,props:{"aria-label":`Clear the ${t} filter`},children:(0,v.jsx)(r.default,{fontSize:10,color:`gray-400`,hover:{color:`gray-600`},children:`✕`})})}function we({column:e}){let{currentFilter:t}=e,{componentName:n}=e.grid,r=e.header??e.key,i=t?.type===`text`?t.value:``,[a,o]=(0,_.useState)(i),s=(0,_.useRef)(null);(0,_.useEffect)(()=>()=>{s.current&&clearTimeout(s.current)},[]);let l=(0,_.useCallback)(t=>{let n=t.target.value;o(n),s.current&&clearTimeout(s.current),s.current=setTimeout(()=>{e.setTextFilter(n),s.current=null},300)},[e]),d=(0,_.useCallback)(()=>{o(``),e.clearFilter()},[e]);return(0,v.jsxs)(c.default,{component:`${n}.filter.cell.input`,children:[(0,v.jsx)(u.default,{width:`fit`,variant:`compact`,placeholder:e.filterConfig?.placeholder??`Filter...`,value:a,onChange:l,b:0,bgColor:`transparent`,focus:{outline:0},props:{"aria-label":`Filter ${r}`}}),a&&(0,v.jsx)(Y,{columnName:r,onClear:d})]})}function Te({column:e}){let{currentFilter:t}=e,{componentName:n}=e.grid,r=e.header??e.key,i=t?.type===`number`?t.value:``,a=t?.type===`number`?t.operator:`eq`,o=t?.type===`number`?t.valueTo:``,[s,l]=(0,_.useState)(i),[d,f]=(0,_.useState)(a),[p,h]=(0,_.useState)(o??``),g=(0,_.useRef)(null),y=(0,_.useRef)(null);(0,_.useEffect)(()=>()=>{g.current&&clearTimeout(g.current),y.current&&clearTimeout(y.current)},[]);let b=e.filterConfig,x=(0,_.useCallback)(t=>{let n=t.target.value;l(n),g.current&&clearTimeout(g.current),g.current=setTimeout(()=>{e.setNumberFilter(d,n,p),g.current=null},300)},[e,d,p]),S=(0,_.useCallback)(t=>{f(t),e.setNumberFilter(t,s,p)},[e,s,p]),C=(0,_.useCallback)(t=>{let n=t.target.value;h(n),y.current&&clearTimeout(y.current),y.current=setTimeout(()=>{e.setNumberFilter(d,s,n),y.current=null},300)},[e,d,s]),w=(0,_.useCallback)(()=>{l(``),h(``),f(`eq`),e.clearFilter()},[e]);return(0,v.jsxs)(c.default,{component:`${n}.filter.cell.input`,ai:d===`between`?`start`:`center`,gap:1,children:[(0,v.jsxs)(m.default,{value:d,variant:`compact`,onChange:e=>e&&S(e),minWidth:6,hideIcon:!0,b:0,bgColor:`transparent`,focus:{outline:0},props:{"aria-label":`Comparison for ${r}`},children:[(0,v.jsx)(m.default.Item,{value:`eq`,children:`=`}),(0,v.jsx)(m.default.Item,{value:`ne`,children:`≠`}),(0,v.jsx)(m.default.Item,{value:`gt`,children:`>`}),(0,v.jsx)(m.default.Item,{value:`gte`,children:`≥`}),(0,v.jsx)(m.default.Item,{value:`lt`,children:`<`}),(0,v.jsx)(m.default.Item,{value:`lte`,children:`≤`}),(0,v.jsx)(m.default.Item,{value:`between`,children:`↔`})]}),d===`between`?(0,v.jsxs)(c.default,{d:`column`,gap:1,flex1:!0,children:[(0,v.jsxs)(c.default,{ai:`center`,position:`relative`,flex1:!0,children:[(0,v.jsx)(u.default,{type:`number`,variant:`compact`,placeholder:b?.placeholder??`From`,value:s,onChange:x,width:`fit`,step:b?.step,b:0,bgColor:`transparent`,focus:{outline:0},props:{"aria-label":`Filter ${r} from`}}),(s!==``||p!==``)&&(0,v.jsx)(Y,{columnName:r,onClear:w})]}),(0,v.jsx)(c.default,{ai:`center`,flex1:!0,children:(0,v.jsx)(u.default,{type:`number`,variant:`compact`,placeholder:`To`,value:p,onChange:C,width:`fit`,step:b?.step,b:0,bgColor:`transparent`,focus:{outline:0},props:{"aria-label":`Filter ${r} to`}})})]}):(0,v.jsxs)(c.default,{ai:`center`,position:`relative`,flex1:!0,children:[(0,v.jsx)(u.default,{type:`number`,variant:`compact`,placeholder:b?.placeholder??`Value`,value:s,onChange:x,width:`fit`,step:b?.step,b:0,bgColor:`transparent`,focus:{outline:0},props:{"aria-label":`Filter ${r}`}}),s!==``&&(0,v.jsx)(Y,{columnName:r,onClear:w})]})]})}function Ee({column:e}){let{currentFilter:t}=e,{componentName:n}=e.grid,i=e.header??e.key,a=t?.type===`multiselect`?t.values:[],o=e.filterOptions,s=(0,_.useCallback)((t,n)=>{e.setMultiselectFilter(n)},[e]);return(0,v.jsx)(c.default,{component:`${n}.filter.cell.input`,children:(0,v.jsxs)(m.default,{multiple:!0,showCheckbox:!0,isSearchable:!0,searchPlaceholder:`Search...`,value:a,width:`fit`,minWidth:0,bgColor:`transparent`,onChange:s,variant:`compact`,b:0,focus:{outline:0},props:{"aria-label":`Filter ${i}`},children:[(0,v.jsx)(m.default.Display,{children:t=>t.length===0?(0,v.jsx)(r.default,{tag:`span`,color:`gray-400`,children:e.filterConfig?.placeholder??`Select...`}):t.length===1?o.find(e=>e.value===t[0])?.label??String(t[0]):`${t.length} selected`}),(0,v.jsx)(m.default.Unselect,{children:`Clear`}),(0,v.jsx)(m.default.SelectAll,{children:`Select All`}),o.map(e=>(0,v.jsx)(m.default.Item,{value:e.value,ai:`center`,gap:2,children:e.label},String(e.value)))]})})}function De(e){let{column:t}=e,n=t.filterConfig;if(!n)return null;switch(n.type){case`number`:return(0,v.jsx)(Te,{column:t});case`multiselect`:return(0,v.jsx)(Ee,{column:t});default:return(0,v.jsx)(we,{column:t})}}De.displayName=`DataGridColumnFilter`;function Oe(e){let{column:t,grid:n,row:r,columnIndex:i}=e,{widthVarName:a,inlineStartVarName:o,inlineEndVarName:s,filterable:l}=t,{isStartPinned:u,isEndPinned:d,isPinned:f,isFirstStartPinned:p,isLastStartPinned:m,isFirstEndPinned:h,isLastEndPinned:g}=t.pinFlags.value,{ref:_,tabIndex:y,onFocus:b}=A()?.cellProps(r,i)??{},x=t.isGrouping||t.isRowNumber||t.isRowSelection;return(0,v.jsx)(c.default,{ref:_,component:`${n.componentName}.filter.cell`,props:{role:`gridcell`,"aria-colindex":i+1,tabIndex:y,onFocus:b},variant:{isPinned:f,isFirstStartPinned:p,isLastStartPinned:m,isFirstEndPinned:h,isLastEndPinned:g},px:2,style:{width:`var(${a})`,insetInlineStart:u?`var(${o})`:void 0,insetInlineEnd:d?`var(${s})`:void 0},children:!x&&l&&(0,v.jsx)(De,{column:t})})}Oe.displayName=`DataGridFilterCell`;function ke(e){let{grid:t}=e;if(!t.filter.hasFilterableColumns)return null;let n=t.headerRows.value.length;return(0,v.jsx)(r.default,{display:`contents`,props:{role:`row`,"aria-rowindex":n+1},children:t.columns.value.visibleLeafs.map((e,r)=>(0,v.jsx)(Oe,{column:e,grid:t,row:n,columnIndex:r},e.uniqueKey))})}ke.displayName=`DataGridFilterRow`;function Ae(e){return(0,v.jsx)(a.Svg,{viewBox:`0 0 24 24`,width:`1.5rem`,...e,children:(0,v.jsx)(a.Path,{d:`M4 12l1.41 1.41L11 7.83V20h2V7.83l5.58 5.59L20 12l-8-8-8 8z`})})}function je(e){return(0,v.jsx)(a.Svg,{viewBox:`0 0 16 16`,width:`18`,...e,children:(0,v.jsx)(a.Path,{strokeWidth:4,d:`M7.936 12.128a.936.936 0 1 1 0 1.872.936.936 0 0 1 0-1.872ZM7.936 7.052a.936.936 0 1 1 0 1.873.936.936 0 0 1 0-1.873ZM7.936 1.977a.936.936 0 1 1 0 1.872.936.936 0 0 1 0-1.872Z`})})}function Me(e){return(0,v.jsx)(a.Svg,{viewBox:`0 0 24 24`,width:`1.5rem`,...e,children:(0,v.jsx)(a.Path,{d:`M3 5h8v2H3V5zm0 6h8v2H3v-2zm0 6h8v2H3v-2zm12-12h6v6h-6V5zm1 1v4h4V6h-4zm-1 7h6v6h-6v-6zm1 1v4h4v-4h-4z`})})}function Ne(e){return(0,v.jsx)(a.Svg,{viewBox:`0 0 1024 1024`,width:`1.5rem`,...e,children:(0,v.jsx)(a.Path,{d:`M31.997 1023.957a31.699 31.699 0 0 1-22.611-9.386C3.328 1008.556 0 1000.493 0 991.96s3.328-16.596 9.386-22.611L328.25 650.484l-152.52-152.52a95.907 95.907 0 0 1-25.087-92.152 95.31 95.31 0 0 1 44.327-58.62l.896-.512a353.464 353.464 0 0 1 176.156-47.398c20.137 0 40.36 1.749 60.283 5.205L597.71 44.54A95.224 95.224 0 0 1 678.685.085c25.64 0 49.745 9.983 67.877 28.073l249.195 249.195a95.224 95.224 0 0 1 25.897 88.74 95.139 95.139 0 0 1-42.152 60.154L719.513 591.695a352.227 352.227 0 0 1-42.663 237.292A95.395 95.395 0 0 1 594 876.514a95.523 95.523 0 0 1-67.963-28.2L373.43 695.706 54.61 1014.614a31.912 31.912 0 0 1-22.612 9.343zm340.025-660.68c-50.64 0-100.685 13.566-144.798 39.207a31.57 31.57 0 0 0-14.676 19.497 31.699 31.699 0 0 0 8.362 30.675L571.344 803.09c6.059 6.059 14.122 9.386 22.697 9.386a31.699 31.699 0 0 0 27.56-15.785 287.421 287.421 0 0 0 31.06-212.676 31.997 31.997 0 0 1 13.907-34.471l278.59-177.266a31.57 31.57 0 0 0 14.037-20.051 31.699 31.699 0 0 0-8.618-29.566l-249.28-249.28a31.912 31.912 0 0 0-49.618 5.418l-177.308 278.59a31.827 31.827 0 0 1-34.472 13.908 293.778 293.778 0 0 0-67.877-8.02z`})})}function X(e){let t=e.side===`start`?`Left`:`Right`,n=e.side===`start`?`Right`:`Left`;return(0,v.jsxs)(v.Fragment,{children:[(0,v.jsxs)(g.Span,{rtl:{display:`none`},children:[`Pin `,t]}),(0,v.jsxs)(g.Span,{ltr:{display:`none`},children:[`Pin `,n]})]})}function Pe(e){let{column:a}=e,{grid:o,isEndAligned:l,header:u,key:d}=a,m=a.headerCell,h=u??d,y=i.n(`datagrid-column-menu`),[b,x]=(0,_.useState)(!1),S=(0,_.useRef)(null),C=(0,_.useRef)(null),w=(0,_.useRef)(!1),[T,ee]=(0,_.useState)({top:0,left:0}),E=(0,_.useMemo)(()=>t.n()&&T.left>window.innerWidth/2,[T.left]),D=l?2:void 0,O=l?void 0:a.pin===`END`?2.5:4,k=(0,_.useMemo)(()=>{let e=e=>(0,v.jsx)(g.Span,{component:`${o.componentName}.header.cell.contextMenu.tooltip.item.icon`,children:e}),t=t=>e((0,v.jsx)(Ae,{width:`100%`,fill:`currentColor`,rotate:t})),n=(t,n)=>e((0,v.jsx)(Ne,{width:`100%`,fill:`currentColor`,rotate:t,rtl:{rotate:n}})),i=e((0,v.jsx)(Me,{width:`100%`,fill:`currentColor`})),s=(0,v.jsx)(r.default,{width:4});return[[m.canSortAsc&&{key:`sort-asc`,icon:t(),label:`Sort Ascending`,text:`Sort Ascending`,run:()=>a.sortColumn(`ASC`)},m.canSortDesc&&{key:`sort-desc`,icon:t(180),label:`Sort Descending`,text:`Sort Descending`,run:()=>a.sortColumn(`DESC`)},m.canClearSort&&{key:`sort-clear`,icon:s,label:`Clear Sort`,text:`Clear Sort`,run:()=>a.sortColumn(void 0)}],[m.canPinStart&&{key:`pin-start`,icon:n(0,-90),label:(0,v.jsx)(X,{side:`start`}),text:`Pin Left`,run:()=>a.pinColumn(`START`)},m.canPinEnd&&{key:`pin-end`,icon:n(-90,0),label:(0,v.jsx)(X,{side:`end`}),text:`Pin Right`,run:()=>a.pinColumn(`END`)},m.canUnpin&&{key:`unpin`,icon:s,label:`Unpin`,text:`Unpin`,run:()=>a.pinColumn()}],[m.canGroupBy&&{key:`group`,icon:i,label:(0,v.jsxs)(r.default,{textWrap:`nowrap`,children:[`Group by `,h]}),text:`Group by ${h}`,run:a.toggleGrouping},m.canUnGroupAll&&{key:`ungroup`,icon:i,label:(0,v.jsx)(r.default,{textWrap:`nowrap`,children:`Un-Group All`}),text:`Un-Group All`,run:o.unGroupAll}]].map(e=>e.filter(e=>e!==!1)).filter(e=>e.length>0).flatMap((e,t)=>e.map((e,n)=>({...e,startsSection:t>0&&n===0})))},[a,h,o,m]),A=(0,_.useCallback)((e=!0)=>{w.current=!1,x(!1),e&&S.current?.focus()},[]),j=i.t({count:k.length,textOf:e=>k[e]?.text??``,onSelect:e=>{k[e]?.run(),A()}});i.i({enabled:b,inside:[S,C],onDismiss:()=>A()}),i.r({enabled:b,returnTo:S});let M=j.setActiveIndex,N=j.activeItem,te=(0,_.useCallback)(()=>{M(0,{reason:`programmatic`}),w.current=!0,x(!0)},[M]);return n.n(()=>{if(!w.current)return;let e=N();e&&(w.current=!1,e.focus())}),(0,v.jsx)(c.default,{position:`absolute`,insetStart:D,insetEnd:O,top:`1/2`,translateY:-3,ai:`center`,children:(0,v.jsxs)(s.default,{ref:S,component:`${o.componentName}.header.cell.contextMenu`,onClick:()=>b?A(!1):te(),variant:m.contextMenuButtonVariant,type:`button`,props:{"aria-label":`Column options for ${h}`,"aria-haspopup":`menu`,"aria-expanded":b,"aria-controls":b?y:void 0},children:[(0,v.jsx)(g.Span,{component:`${o.componentName}.header.cell.contextMenu.icon`,children:(0,v.jsx)(je,{fill:`currentColor`})}),(0,v.jsx)(p.default,{present:b,children:e=>(0,v.jsx)(f.default,{component:`${o.componentName}.header.cell.contextMenu.tooltip`,variant:{closed:!e.present},onPositionChange:ee,ref:C,contentRef:e.ref,adjustTranslateX:E?`-100%`:`-21px`,adjustTranslateY:`16px`,id:y,props:{role:`menu`,"aria-label":`Column options for ${h}`,onKeyDown:j.onKeyDown,...e.props},children:k.map((e,t)=>{let{ref:n,tabIndex:i,onFocus:a}=j.itemProps(t);return(0,v.jsxs)(_.Fragment,{children:[e.startsSection&&(0,v.jsx)(r.default,{bb:1,my:2,borderColor:`gray-300`,component:`${o.componentName}.header.cell.contextMenu.tooltip.item.separator`}),(0,v.jsxs)(s.default,{component:`${o.componentName}.header.cell.contextMenu.tooltip.item`,ref:n,type:`button`,onClick:t=>{t.stopPropagation(),e.run(),A()},props:{role:`menuitem`,tabIndex:i,onFocus:a},children:[e.icon,e.label]})]},e.key)})})})]})})}Pe.displayName=`DataGridHeaderCellContextMenu`;var Z=e=>`touches`in e?e.touches[0]?.pageX??0:e.pageX,Fe=16,Ie=150;function Q(e){let t=e.sizingElement;t&&Object.entries(e.sizes.value).forEach(([e,n])=>t.style.setProperty(e,n))}function Le(e){let{column:t,controls:n}=e,i=t.grid.resizerStyle,a=t.headerCell,o=(0,_.useCallback)(e=>{let{grid:n}=t;e.type===`mousedown`&&e.preventDefault(),t.beginResize(Z(e.nativeEvent));let r=new AbortController,{signal:i}=r,a=0,o=Z(e.nativeEvent),s=()=>{t.applyResize(o),Q(n)},c=n.resizeMode===`instant`?e=>{o=Z(e),s()}:e=>{o=Z(e),a||=requestAnimationFrame(()=>{a=0,s()})},l=()=>{r.abort(),a&&cancelAnimationFrame(a),s(),t.endResize()};window.addEventListener(`mousemove`,c,{signal:i}),window.addEventListener(`touchmove`,c,{signal:i}),window.addEventListener(`mouseup`,l,{signal:i}),window.addEventListener(`touchend`,l,{signal:i})},[t]),s=(0,_.useRef)(void 0),l=(0,_.useRef)(0),u=(0,_.useCallback)(()=>{let{grid:e}=t;if(e.resizeMode===`instant`){Q(e);return}l.current||=requestAnimationFrame(()=>{l.current=0,Q(e)})},[t]),d=(0,_.useCallback)(()=>{s.current!==void 0&&(clearTimeout(s.current),s.current=void 0,l.current&&=(cancelAnimationFrame(l.current),0),t.endResize())},[t]);(0,_.useEffect)(()=>()=>{clearTimeout(s.current),l.current&&cancelAnimationFrame(l.current)},[]);let f=(0,_.useCallback)(e=>{switch(e.key){case`ArrowRight`:t.moveResizer(Fe);break;case`ArrowLeft`:t.moveResizer(-16);break;case`Home`:t.resizeWidthTo(a.minWidth);break;case`End`:t.resizeWidthTo(a.maxWidth);break;default:return}e.preventDefault(),u(),clearTimeout(s.current),s.current=setTimeout(d,Ie)},[t,d,a,u]);return(0,v.jsx)(c.default,{height:`fit`,ai:`center`,position:`absolute`,insetEnd:t.pin===`END`?void 0:0,insetStart:t.pin===`END`?0:void 0,py:3,children:(0,v.jsx)(r.default,{cursor:`col-resize`,px:.75,mt:-6,className:`resizer`,height:`fit`,props:{onMouseDown:o,onTouchStart:o},children:(0,v.jsx)(r.default,{component:`${t.grid.componentName}.header.cell.resizer`,opacity:i===`visible`?void 0:0,group:i===`hover`?{"header-cell/hover":{opacity:1}}:void 0,props:{role:`separator`,"aria-label":a.resizerLabel,"aria-controls":n,"aria-orientation":`vertical`,"aria-valuenow":a.width,"aria-valuemin":a.minWidth,"aria-valuemax":a.maxWidth,"aria-valuetext":`${a.width} pixels`,tabIndex:0,onKeyDown:f,onKeyUp:d}})})})}Le.displayName=`DataGridHeaderCellResizer`;function Re(e){let{column:t,row:n,columnIndex:a}=e,{grid:o}=t,{isStartPinned:s,isEndPinned:u}=t.pinFlags.value,d=t.headerCell,{isSortable:f,showResizer:p,showContextMenu:m,paddingStart:g,paddingEnd:y}=d,{ref:b,tabIndex:x,onFocus:S}=A()?.cellProps(n,a)??{},C=i.n(`datagrid-columnheader`),w=(0,_.useCallback)(()=>{o.toggleSelectAllRows()},[o]),T=t.isRowSelection?(0,v.jsx)(l.default,{variant:`datagrid`,m:1,indeterminate:o.someRowsSelected&&!o.allRowsSelected,checked:o.allRowsSelected,onChange:w,props:{"aria-label":`Select all rows`}}):d.hiddenLabel?(0,v.jsx)(h.default,{tag:`span`,children:d.hiddenLabel}):d.label;return(0,v.jsx)(c.default,{ref:b,id:C,props:{role:`columnheader`,"aria-colindex":d.columnIndex,"aria-colspan":d.columnSpan,"aria-rowspan":d.rowSpan,"aria-sort":d.ariaSort,tabIndex:x,onFocus:S},className:`header-cell`,component:`${o.componentName}.header.cell`,variant:d.variant,gridRow:t.gridRows,gridColumn:d.gridColumn,style:{width:`var(${t.widthVarName})`,insetInlineStart:s?`var(${t.inlineStartVarName})`:void 0,insetInlineEnd:u?`var(${t.inlineEndVarName})`:void 0},children:(0,v.jsxs)(v.Fragment,{children:[(0,v.jsx)(c.default,{width:`fit`,height:`fit`,jc:t.align,props:{onClick:f?()=>t.sortColumn():void 0},children:(0,v.jsxs)(c.default,{overflow:`hidden`,position:t.isLeaf?void 0:`sticky`,ai:`center`,transition:`none`,ps:g,pe:y,style:{insetInlineStart:t.pin?void 0:`var(${o.inlineStartEdgeVarName})`},children:[(0,v.jsx)(r.default,{overflow:`hidden`,textOverflow:`ellipsis`,textWrap:`nowrap`,children:T}),d.isSorted&&(0,v.jsx)(r.default,{ps:(t.inlineWidth??0)<58?0:2,children:(0,v.jsx)(Ae,{width:`16px`,rotate:d.sortDirection===`ASC`?0:180,fill:`currentColor`})}),m&&(0,v.jsx)(r.default,{minWidth:t.isEndAligned?4:10})]})}),p&&(0,v.jsx)(Le,{column:t,controls:C}),m&&(0,v.jsx)(Pe,{column:t})]})})}Re.displayName=`DataGridHeaderCell`;function ze(e){let{grid:t}=e;return(0,v.jsxs)(d.default,{component:`${t.componentName}.header`,props:{role:`rowgroup`},style:{gridTemplateColumns:t.gridTemplateColumns.value},children:[t.headerRows.value.map((e,t)=>(0,v.jsx)(r.default,{display:`contents`,props:{role:`row`,"aria-rowindex":t+1},children:e.map((e,n)=>(0,v.jsx)(Re,{column:e,row:t,columnIndex:n},e.uniqueKey))},t)),(0,v.jsx)(ke,{grid:t})]})}ze.displayName=`DataGridHeader`;function Be(e){let{grid:t}=e;return(0,v.jsx)(r.default,{component:`${t.componentName}.loader`,props:{"aria-hidden":!0},children:(0,v.jsx)(r.default,{component:`${t.componentName}.loader.track`,style:{height:3},children:(0,v.jsx)(r.default,{component:`${t.componentName}.loader.track.bar`,width:`2/5`})})})}Be.displayName=`DataGridLoader`;function Ve(e){let{grid:t}=e,n=(0,_.useRef)(null),[i,a]=(0,_.useState)(0),o=(0,_.useRef)(null),s=(0,_.useCallback)(e=>{o.current!==null&&cancelAnimationFrame(o.current),o.current=requestAnimationFrame(()=>{a(e.target.scrollTop),o.current=null})},[]),c=ne({grid:t,scrollerRef:n,scrollTop:i,onScrollTo:a});return t.hasVisibleColumns?(0,v.jsx)(k.Provider,{value:c,children:(0,v.jsxs)(r.default,{ref:n,component:`${t.componentName}.content`,overflowX:`scroll`,style:{willChange:`scroll-position`},props:{role:`grid`,"aria-rowcount":c.rowCount,"aria-colcount":c.columnCount,"aria-multiselectable":t.props.def.rowSelection?!0:void 0,"aria-labelledby":t.props.def.title?t.titleId:void 0,"aria-busy":t.props.loading?!0:void 0,onScroll:s,onKeyDown:c.onKeyDown},children:[(0,v.jsx)(ze,{grid:t}),t.props.loading&&(0,v.jsx)(Be,{grid:t}),(0,v.jsx)(Se,{grid:t,scrollTop:i})]})}):(0,v.jsx)(Ce,{grid:t})}Ve.displayName=`DataGridContent`;function He(e){let{grid:t}=e;return t.groupColumns.size===0?null:(0,v.jsxs)(c.default,{component:`${t.componentName}.topBar.columnGroups`,children:[(0,v.jsx)(g.Span,{component:`${t.componentName}.topBar.columnGroups.icon`,children:(0,v.jsx)(Me,{width:`100%`,fill:`currentColor`})}),t.groupedColumns.map(e=>(0,v.jsxs)(_.default.Fragment,{children:[(0,v.jsx)(z,{fill:`currentColor`,width:`14px`,height:`14px`,rotate:-90}),(0,v.jsxs)(c.default,{component:`${t.componentName}.topBar.columnGroups.item`,children:[e.header??e.key,(0,v.jsx)(s.default,{component:`${t.componentName}.topBar.columnGroups.item.icon`,onClick:()=>t.toggleGrouping(e.key),props:{"aria-label":`Stop grouping by ${e.header??e.key}`},children:(0,v.jsx)(r.default,{fontSize:10,color:`gray-400`,hover:{color:`gray-600`},children:`✕`})})]})]},e.key))]})}He.displayName=`DataGridColumnGroups`;function Ue(e){return(0,v.jsx)(a.Svg,{viewBox:`0 0 488.4 488.4`,width:`1.5rem`,...e,children:(0,v.jsx)(a.Path,{d:`M0 203.25c0 112.1 91.2 203.2 203.2 203.2 51.6 0 98.8-19.4 134.7-51.2l129.5 129.5c2.4 2.4 5.5 3.6 8.7 3.6s6.3-1.2 8.7-3.6c4.8-4.8 4.8-12.5 0-17.3l-129.6-129.5c31.8-35.9 51.2-83 51.2-134.7C406.4 91.15 315.2.05 203.2.05S0 91.15 0 203.25zm381.9 0c0 98.5-80.2 178.7-178.7 178.7s-178.7-80.2-178.7-178.7 80.2-178.7 178.7-178.7 178.7 80.1 178.7 178.7z`})})}function We(e){let{grid:t}=e,[n,i]=(0,_.useState)(t.globalFilterValue),a=(0,_.useRef)(null);(0,_.useEffect)(()=>()=>{a.current&&clearTimeout(a.current)},[]);let o=(0,_.useCallback)(e=>{let n=e.target.value;i(n),a.current&&clearTimeout(a.current),a.current=setTimeout(()=>{t.filter.setGlobalFilter(n),a.current=null},300)},[t]),s=(0,_.useCallback)(()=>{i(``),t.filter.setGlobalFilter(``)},[t]),{filtered:l,total:d}=t.filter.filterStats,f=t.filter.hasActiveFilters&&l!==d;return(0,v.jsxs)(c.default,{component:`${t.componentName}.topBar.globalFilter`,children:[f&&(0,v.jsxs)(r.default,{component:`${t.componentName}.topBar.globalFilter.stats`,children:[l,`/`,d]}),(0,v.jsxs)(c.default,{position:`relative`,ai:`center`,children:[(0,v.jsx)(c.default,{position:`absolute`,insetStart:3,pointerEvents:`none`,color:`gray-400`,theme:{dark:{color:`gray-500`}},children:(0,v.jsx)(Ue,{fill:`currentColor`,width:`14px`})}),(0,v.jsx)(u.default,{placeholder:`Search...`,variant:`compact`,value:n,onChange:o,ps:8,pe:n?8:3}),n&&(0,v.jsx)(r.default,{position:`absolute`,insetEnd:2,cursor:`pointer`,p:1,color:`gray-400`,hover:{color:`gray-600`},theme:{dark:{color:`gray-500`,hover:{color:`gray-300`}}},props:{onClick:s},children:(0,v.jsx)(r.default,{fontSize:12,fontWeight:600,children:`✕`})})]})]})}function Ge(e){let{grid:t}=e,{columnVisibility:n}=t,{entries:i,selectedIds:a,total:s,hasHidden:l}=n;return(0,v.jsxs)(m.default,{component:`${t.componentName}.topBar.columnVisibility`,multiple:!0,showCheckbox:!0,hideIcon:!0,variant:`compact`,value:a,onChange:(e,t)=>{n.setVisibility(t)},isSearchable:i.length>6,searchPlaceholder:`Search columns...`,display:`inline-flex`,props:{"aria-label":`Columns`},children:[(0,v.jsx)(m.default.Display,{children:e=>{let n=e.length===0;return(0,v.jsxs)(c.default,{ai:`center`,gap:2,children:[(0,v.jsxs)(o.default,{viewBox:`0 0 20 20`,width:`18`,height:`18`,children:[(0,v.jsx)(`rect`,{x:`2`,y:`3`,width:`4`,height:`14`,rx:`1`,fill:`currentColor`,opacity:.9}),(0,v.jsx)(`rect`,{x:`8`,y:`3`,width:`4`,height:`14`,rx:`1`,fill:`currentColor`,opacity:.6}),(0,v.jsx)(`rect`,{x:`14`,y:`3`,width:`4`,height:`14`,rx:`1`,fill:`currentColor`,opacity:.3})]}),l&&(0,v.jsxs)(r.default,{component:`${t.componentName}.topBar.columnVisibility.badge`,tag:`span`,fontSize:11,lineHeight:16,fontWeight:500,px:2,py:.5,borderRadius:1,bgColor:n?`red-100`:`amber-100`,color:n?`red-700`:`amber-700`,theme:{dark:{bgColor:n?`red-900`:`amber-900`,color:n?`red-300`:`amber-300`}},children:[e.length,`/`,s]})]})}}),(0,v.jsx)(m.default.SelectAll,{children:`Show All`}),(0,v.jsx)(m.default.Unselect,{children:`Hide All`}),i.map(e=>(0,v.jsx)(m.default.Item,{value:e.id,textWrap:`nowrap`,children:e.label},e.id))]})}Ge.displayName=`DataGridTopBarContextMenu`;function Ke(e){let{grid:t}=e,{title:n,topBarContent:i,globalFilter:a}=t.props.def;return(0,v.jsxs)(c.default,{component:`${t.componentName}.topBar`,position:`relative`,d:`column`,gap:3,children:[(0,v.jsxs)(c.default,{ai:`center`,jc:`space-between`,gap:4,flexWrap:`wrap`,width:`fit`,children:[(0,v.jsxs)(c.default,{ai:`center`,gap:3,flexWrap:`wrap`,minWidth:0,children:[(0,v.jsx)(Ge,{grid:t}),n&&(0,v.jsx)(r.default,{id:t.titleId,fontWeight:600,fontSize:16,color:`gray-800`,theme:{dark:{color:`gray-100`}},children:n}),(0,v.jsx)(He,{grid:t})]}),a&&(0,v.jsx)(We,{grid:t})]}),i&&(0,v.jsx)(r.default,{width:`fit`,children:i})]})}Ke.displayName=`DataGridTopBar`;function qe(e){let[t]=(0,_.useState)(()=>new he(e)),n=i.n(`datagrid`);return t.setProps(e),t.setIdentifier(n),(0,y.useSyncExternalStore)(t.subscribe,t.getSnapshot,t.getSnapshot),t}function $(e){let t=qe(e),n=(0,_.useRef)(null);return(0,_.useLayoutEffect)(()=>{let e=n.current;if(!e)return;t.setSizingElement(e);let r=new ResizeObserver(e=>{let n=e[0]?.contentRect.width??0;t.setContainerWidth(n)});return r.observe(e),()=>{r.disconnect(),t.setSizingElement(null)}},[t]),(0,v.jsxs)(r.default,{ref:n,component:t.componentName,style:t.sizes.value,children:[t.props.def.topBar&&(0,v.jsx)(Ke,{grid:t}),(0,v.jsx)(Ve,{grid:t}),t.props.def.bottomBar&&(0,v.jsx)(O,{grid:t}),(0,v.jsx)(h.default,{props:{role:`status`},children:t.selectionAnnouncement})]})}$.displayName=`DataGrid`,exports.default=$;
1
+ "use client";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:`Module`}});const e=require("../rolldown-runtime.cjs"),t=require("../platform.cjs"),n=require("../effects.cjs"),r=require("../box.cjs"),i=require("../behavior.cjs"),a=require("../identity.cjs"),o=require("./svg.cjs"),s=require("./baseSvg.cjs"),c=require("./button.cjs"),l=require("./flex.cjs"),u=require("./checkbox.cjs"),d=require("./overlay.cjs"),f=require("./presence.cjs"),p=require("./textbox.cjs"),m=require("./grid.cjs"),h=require("./dropdown.cjs"),g=require("./visuallyHidden.cjs"),_=require("./semantics.cjs");let v=require("react");v=e.t(v,1);let y=require("react/jsx-runtime"),b=require("use-sync-external-store/shim");function x(e){let{grid:t}=e,{pagination:n}=t,i=n.state,a=(0,v.useCallback)(()=>n.firstPage(),[n]),o=(0,v.useCallback)(()=>n.prevPage(),[n]),s=(0,v.useCallback)(()=>n.nextPage(),[n]),c=(0,v.useCallback)(()=>n.lastPage(),[n]);if(!i)return null;let{canGoPrev:u,canGoNext:d,totalPages:f}=n;return(0,y.jsxs)(l.default,{component:`${t.componentName}.bottomBar.pagination`,gap:.5,ai:`center`,children:[(0,y.jsx)(S,{grid:t,pageSize:i.pageSize}),(0,y.jsx)(w,{componentName:t.componentName,label:`First page`,onClick:a,disabled:!u,children:(0,y.jsx)(O,{})}),(0,y.jsx)(w,{componentName:t.componentName,label:`Previous page`,onClick:o,disabled:!u,children:(0,y.jsx)(E,{})}),(0,y.jsxs)(l.default,{ai:`center`,gap:1.5,px:2,userSelect:`none`,children:[(0,y.jsx)(C,{grid:t,page:i.page,totalPages:f}),(0,y.jsxs)(r.default,{component:`${t.componentName}.bottomBar.pagination.info`,fontSize:12,opacity:.7,children:[`of `,f]})]}),(0,y.jsx)(w,{componentName:t.componentName,label:`Next page`,onClick:s,disabled:!d,children:(0,y.jsx)(D,{})}),(0,y.jsx)(w,{componentName:t.componentName,label:`Last page`,onClick:c,disabled:!d,children:(0,y.jsx)(k,{})})]})}x.displayName=`DataGridPagination`;function S({grid:e,pageSize:t}){let n=e.pagination.pageSizeOptions;return!n||n.length===0?null:(0,y.jsx)(l.default,{ai:`center`,gap:1,me:1,children:(0,y.jsx)(r.default,{component:`${e.componentName}.bottomBar.pagination.pageSize`,tag:`select`,fontSize:12,borderRadius:4,cursor:`pointer`,props:{"aria-label":`Rows per page`,value:t,onChange:t=>e.pagination.changePageSize(Number(t.target.value))},children:n.map(e=>(0,y.jsxs)(`option`,{value:e,children:[e,` / page`]},e))})})}function C({grid:e,page:t,totalPages:n}){let[r,i]=(0,v.useState)(String(t)),[a,o]=(0,v.useState)(t);t!==a&&(o(t),i(String(t)));let s=(0,v.useCallback)(()=>{e.pagination.jumpToPage(r),i(String(e.pagination.page))},[e,r]),c=(0,v.useCallback)(e=>{e.key===`Enter`?s():e.key===`Escape`&&i(String(t))},[s,t]);return(0,y.jsx)(p.default,{type:`number`,variant:`compact`,value:r,onChange:e=>i(e.target.value),textAlign:`center`,fontSize:12,props:{"aria-label":`Page number`,onKeyDown:c,onBlur:s,min:1,max:n}})}function w(e){let{componentName:t,label:n,onClick:r,disabled:i,children:a}=e;return(0,y.jsx)(c.default,{component:`${t}.bottomBar.pagination.button`,props:{"aria-label":n,"aria-disabled":i||void 0},onClick:r,cursor:i?`default`:`pointer`,p:1,borderRadius:4,opacity:i?.3:.7,hover:i?void 0:{opacity:1,bgColor:`gray-100`},theme:{dark:{hover:i?void 0:{bgColor:`gray-700`}}},transitionDuration:150,children:a})}function T(e){return(0,y.jsx)(o.Svg,{viewBox:`0 0 24 24`,width:`14`,height:`14`,fill:`none`,stroke:`currentColor`,strokeWidth:2,strokeLinecap:`round`,strokeLinejoin:`round`,children:(0,y.jsx)(o.Path,{d:e.d})})}function E(){return(0,y.jsx)(T,{d:`M15 18l-6-6 6-6`})}function D(){return(0,y.jsx)(T,{d:`M9 18l6-6-6-6`})}function O(){return(0,y.jsx)(T,{d:`M18 18l-6-6 6-6M11 18l-6-6 6-6`})}function k(){return(0,y.jsx)(T,{d:`M6 18l6-6-6-6M13 18l6-6-6-6`})}function ee(e){let{grid:t}=e,{pagination:n,filter:i}=t;if(n.state){let{totalItems:e,startItem:i,endItem:a}=n;return(0,y.jsxs)(l.default,{component:`${t.componentName}.bottomBar`,children:[(0,y.jsxs)(r.default,{component:`${t.componentName}.bottomBar.info`,children:[`Rows: `,e>0?`${i}–${a} of ${e}`:`0`]}),t.props.def.rowSelection&&(0,y.jsxs)(r.default,{component:`${t.componentName}.bottomBar.info`,children:[`Selected: `,t.selectedRows.size]}),(0,y.jsx)(x,{grid:t})]})}let{filtered:a,total:o}=i.filterStats;return(0,y.jsxs)(l.default,{component:`${t.componentName}.bottomBar`,children:[(0,y.jsxs)(r.default,{component:`${t.componentName}.bottomBar.info`,children:[`Rows: `,a===o?o:`${a} / ${o}`]}),t.props.def.rowSelection&&(0,y.jsxs)(r.default,{component:`${t.componentName}.bottomBar.info`,children:[`Selected: `,t.selectedRows.size]}),i.hasActiveFilters&&(0,y.jsx)(r.default,{component:`${t.componentName}.bottomBar.clearFilters`,color:`blue-600`,cursor:`pointer`,hover:{textDecoration:`underline`},props:{onClick:i.clearAllFilters},children:`Clear filters`})]})}var A=(0,v.createContext)(null);function j(){return(0,v.useContext)(A)}var te=`Invalid value`;function ne(e,t){return JSON.stringify([e,t])}var re=1e3;function ie(e){return typeof e==`number`?`number`:typeof e==`boolean`?`checkbox`:`text`}function ae(e,t){if(e===`text`)return t;if(e!==`number`||t.trim()===``)return;let n=Number(t);return Number.isFinite(n)?n:void 0}function oe(e){return e.key.length===1&&!e.ctrlKey&&!e.metaKey&&!e.altKey}var se=class{grid;constructor(e){this.grid=e}values=new Map;_edits=[];_active;_token=0;get enabled(){let{def:e}=this.grid.props;return e.editable===!0||e.columns.some(e=>e.editable!==void 0&&e.editable!==!1)}isEditable(e,t){if(e.placeholder||!t.isData)return!1;let n=t.editable;return typeof n==`function`?!!n(e.data):n}editorFor(e,t){let{editor:n}=e.def;return typeof n==`object`?n:n?{type:n}:{type:ie(t)}}isEditing(e,t){return this._active?.rowKey===e&&this._active.columnKey===t}get draft(){return this._active?.draft}get error(){return this._active?.error}get pending(){return!!this._active?.pending}begin(e,t,n,r){let i=r===void 0?void 0:ae(this.editorFor(t,n).type,r);this._active={row:e,rowKey:e.key,columnKey:t.key,draft:i??n,token:++this._token,pending:!1},this.grid.notify()}beginAt(e,t,n){let r=this.grid.flatRows.value[e],i=this.grid.columns.value.visibleLeafs[t];if(!i||!r||r.kind!==`row`||!this.isEditable(r,i))return!1;let a=r.data[i.key];return this.begin(r,i,this.valueOf(r.key,i.key,a),n),!0}setDraft(e){this._active&&(this._active={...this._active,draft:e,error:void 0},this.grid.notify())}cancel(){this._active&&(this._token++,this._active=void 0,this.grid.notify())}commit(){let e=this._active;if(!e||e.pending)return;let{row:t,rowKey:n,columnKey:r,draft:i}=e,a=this.valueOf(n,r,t.data[r]);if(Object.is(i,a)){this.cancel();return}let o={rowKey:n,columnKey:r,row:t.data,value:i,oldValue:a},s=this.grid.props.def.onCellEdit?.(o);if(s instanceof Promise){this._active={...e,pending:!0},this.grid.notify(),s.then(t=>this.settle(e.token,o,t),t=>this.settle(e.token,o,t instanceof Error?t.message:te));return}this.settle(e.token,o,s)}settle(e,t,n){if(!(!this._active||this._active.token!==e)){if(typeof n==`string`||n===!1){this._active={...this._active,pending:!1,error:typeof n==`string`?n:te},this.grid.notify();return}this.values.set(ne(t.rowKey,t.columnKey),t.value),this._edits=[...this._edits,t],this._active=void 0,this.grid.notify(),this.grid.props.onCellEditsChange?.(this._edits,{reason:`edit`})}}valueOf(e,t,n){if(this.values.size===0)return n;let r=ne(e,t);return this.values.has(r)?this.values.get(r):n}get edits(){return this._edits}clearEdits=()=>{(this.values.size!==0||this._edits.length!==0)&&(this.values.clear(),this._edits=[],this.grid.notify(),this.grid.props.onCellEditsChange?.(this._edits,{reason:`clear`}))};nextEditable(e,t,n=!1){let r=this.grid.flatRows.value,i=this.grid.columns.value.visibleLeafs,a=n?-1:1,o=e*i.length+t+a,s=Math.min(r.length*i.length-1,o+re);for(let e=o;e>=Math.max(0,o-re)&&e<=s;e+=a){let t=Math.floor(e/i.length),n=e%i.length,a=r[t],o=i[n];if(!(!o||a?.kind!==`row`||!this.isEditable(a,o)))return{row:t,column:n}}}},M=Symbol(`memo.unset`),ce=class{action;deps;cache=M;dependents=new Set;wired=!1;constructor(e,t){this.action=e,this.deps=t}wire(){if(!this.wired){this.wired=!0;for(let e of this.deps())e.dependents.add(this)}}get value(){return this.wire(),this.cache===M&&(this.cache=this.action()),this.cache}clear(){if(this.wire(),this.cache!==M){this.cache=M;for(let e of this.dependents)e.clear()}}};function N(e,t=()=>[]){return new ce(e,t)}var le=class{grid;row;column;constructor(e,t,n){this.grid=e,this.row=t,this.column=n}get value(){if(this.column.isRowNumber)return this.row.rowIndex+1;let e=this.row.data[this.column.key];return this.grid.edits.valueOf(this.row.key,this.column.key,e)}get isExpanded(){return this.row.expanded}get selected(){return this.row.selected}get isFirst(){return this.row.cells[0]===this}get isLast(){let e=this.row.cells;return e[e.length-1]===this}toggleDetail=()=>{this.grid.toggleDetailRow(this.row.key)};get indeterminate(){return this.row.indeterminate}toggleSelection=()=>{this.row.toggleSelection()};get editable(){return this.grid.edits.isEditable(this.row,this.column)}get editing(){return this.grid.edits.isEditing(this.row.key,this.column.key)}get editor(){return this.grid.edits.editorFor(this.column,this.value)}get draft(){return this.grid.edits.draft}get error(){return this.grid.edits.error}get pending(){return this.grid.edits.pending}beginEdit=e=>{this.editable&&this.grid.edits.begin(this.row,this.column,this.value,e)};setDraft=e=>{this.grid.edits.setDraft(e)};commitEdit=()=>{this.grid.edits.commit()};cancelEdit=()=>{this.grid.edits.cancel()}},P=class e{grid;parentRow;constructor(e,t){this.grid=e,this.parentRow=t}kind=`detail`;get key(){return`detail-${this.parentRow.key}`}get isAutoHeight(){return this.height===`auto`}static AUTO_HEIGHT_ESTIMATE=200;get height(){let e=this.grid.props.def.rowDetail;return!e||e.height===void 0||e.height===`auto`?`auto`:typeof e.height==`function`?e.height(this.parentRow.data):e.height}get heightForOffset(){let t=this.height;return t===`auto`?e.AUTO_HEIGHT_ESTIMATE:t}count=0;cellCount=1;columnOf(){return 0}get flatRows(){return[this]}get allRows(){return[]}},F=class{grid;rowIndex;constructor(e,t,n){this.grid=e,this.rowIndex=n,this._data=t}_data;get data(){return this._data}_key;get key(){return this._key??=this.grid.getRowKey(this.data)}parentRow;count=1;kind=`row`;get placeholder(){return!1}get expandOnRowClick(){return this.grid.props.def.rowDetail?.expandOnRowClick??!1}toggleDetail=()=>{this.grid.toggleDetailRow(this.key)};_cells=N(()=>this.grid.columns.value.visibleLeafs.map(e=>new le(this.grid,this,e)));get cells(){return this._cells.value}get cellCount(){return this.cells.length}columnOf(e){return e}get selected(){return this.grid.selectedRows.has(this.key)}get indeterminate(){return!1}toggleSelection=()=>{this.grid.toggleRowSelection(this.key)};get expanded(){return this.grid.expandedDetailRows.has(this.key)}get flatRows(){return this.grid.props.def.rowDetail&&this.expanded?[this,new P(this.grid,this)]:[this]}get allRows(){return this}};function I(e){return!!e&&e.isTreeRow===!0}var ue=`[role="gridcell"],[role="columnheader"]`,de=`a[href],button:not([disabled]),input:not([disabled]),select:not([disabled]),textarea:not([disabled]),[tabindex]`,fe=2,pe=[];function me(e){let{grid:t,scrollerRef:r,scrollTop:a,onScrollTo:o}=e,s=t.headerRows.value,c=t.filter.hasFilterableColumns,l=s.length+ +!!c,u=t.viewport.isEmpty?pe:t.flatRows.value,d=t.columns.value.visibleLeafs.length,f=t.aggregation.hasFooter&&!t.viewport.isEmpty?1:0,p=l+u.length+f,m=(0,v.useCallback)(e=>{if(e<s.length)return s[e]?.length??0;if(e<l||e>=l+u.length)return d;let t=u[e-l];return t?t.cellCount:0},[u,d,l,s]),h=(0,v.useCallback)((e,t)=>e<s.length?(s[e]?.[t]?.headerCell.columnIndex??t+1)-1:e<l?t:u[e-l]?.columnOf(t)??t,[u,l,s]),g=(0,v.useRef)(!1),_=(0,v.useCallback)((e,n)=>{let{viewport:i}=t,s=e-l,c=r.current;if(i.showAll||!c||s>=u.length)return;if(s<0){n>=l&&(c.scrollTop=0,o(0));return}let{startIndex:d,take:f}=i.window(a);if(s>=d+fe&&s<d+f-fe)return;let p=i.rowTop(s);c.scrollTop=p,o(p)},[u.length,t,l,o,a,r]),y=(0,v.useRef)(0),b=i.t({count:p,columns:m,columnIndexOf:h,pageSize:t.viewport.pageRows,onActiveCellChange:(e,t)=>{let n=y.current;y.current=e.row,t.reason===`keyboard`&&(_(e.row,n),g.current=!0)}}),x=b.activeItem;n.n(()=>{g.current&&(g.current=!1,x()?.focus())});let S=(0,v.useCallback)((e,n,r)=>{if(!t.tree.enabled||e.key!==`ArrowRight`&&e.key!==`ArrowLeft`)return!1;let i=u[n-l];if(!I(i)||t.columns.value.visibleLeafs[r]?.key!==t.tree.columnKey)return!1;if(e.key===(t.isRtl?`ArrowLeft`:`ArrowRight`))return!i.hasChildren||i.treeExpanded?!1:(i.toggleTree(),!0);if(i.hasChildren&&i.treeExpanded)return i.toggleTree(),!0;for(let e=n-1;e>=l;e--){let t=u[e-l];if(!(!I(t)||t.level>=i.level))return b.setActiveCell(e,r,{reason:`keyboard`}),!0}return!1},[u,t,l,b]),C=(0,v.useCallback)(e=>{let{activeIndex:t,activeColumn:n}=b,r=e?-1:1,i=n+r;if(i>=0&&i<m(t))return b.setActiveCell(t,i,{reason:`keyboard`}),!0;let a=t+r;return a<0||a>=p?!1:(b.setActiveCell(a,e?Math.max(0,m(a)-1):0,{reason:`keyboard`}),!0)},[m,b,p]),w=(0,v.useCallback)((e,n)=>{if(!t.props.def.rowSelection)return!1;if(e<l)return e>=s.length||!t.columns.value.visibleLeafs[n]?.isRowSelection?!1:(t.toggleSelectAllRows(),!0);let r=t.flatRows.value[e-l];return r instanceof F&&(r.toggleSelection(),!0)},[t,l,s.length]),T=(0,v.useCallback)((e,t,n)=>{let r=Array.from(e.querySelectorAll(de));if(r.length<2)return!1;let i=r.indexOf(t);return i!==-1&&(r[(i+(n?-1:1)+r.length)%r.length].focus(),!0)},[]),E=b.onKeyDown,D=(0,v.useCallback)(e=>{let n=e.target,r=n.closest?.(ue);if(r){if(n!==r){if(e.key===`Escape`&&!r.querySelector(`[aria-expanded="true"]`)){e.preventDefault(),r.focus();return}e.key===`Tab`&&T(r,n,e.shiftKey)&&e.preventDefault();return}if(e.key===`Tab`&&t.props.def.tabNavigation===`cells`){C(e.shiftKey)&&e.preventDefault();return}if(e.key===` `&&w(b.activeIndex,b.activeColumn)){e.preventDefault();return}if(e.key===`Enter`||e.key===` `||e.key===`F2`){let n=s[b.activeIndex]?.[b.activeColumn];if(e.key!==`F2`&&n?.headerCell.isSortable){e.preventDefault(),n.sortColumn();return}if(t.edits.beginAt(b.activeIndex-l,b.activeColumn)){e.preventDefault();return}let i=r.querySelector(de);if(i){e.preventDefault(),i.focus();return}}if(t.edits.enabled&&oe(e)&&t.edits.beginAt(b.activeIndex-l,b.activeColumn,e.key)){e.preventDefault();return}if(S(e,b.activeIndex,b.activeColumn)){e.preventDefault();return}E(e)}},[t,l,s,b.activeColumn,b.activeIndex,E,C,T,w,S]);return{rowCount:p,columnCount:d,headerRowCount:l,cellProps:b.cellProps,setActiveCell:b.setActiveCell,onKeyDown:D}}var he;(function(e){function t(e,t,n=0){return e.slice(n,n+t)}e.take=t;function n(e,t,n=0){return e.reduce((e,n,r)=>e+t(n,r),n)}e.sumBy=n;function r(e,t,n){return[...e].sort((e,r)=>{let i=t(e),a=t(r);return i<a?n===`DESC`?1:-1:i>a?n===`DESC`?-1:1:0})}e.sortBy=r;function i(e,t){return Math.max(...e.map(t))}e.maxBy=i;function a(e,t){let n=e.find(t);if(n===void 0)throw Error(`No items satisfy the provided condition.`);return n}e.findOrThrow=a;function o(e,t){return e.reduce((e,n)=>{let r=t(n);if(!r)return e;let[i,a]=r;return e[i]=a,e},{})}e.toRecord=o;function s(e,t){let n=e.reduce((e,n,r)=>{let i=t(n,r);return e.has(i)===!1&&e.set(i,[]),e.get(i)?.push(n),e},new Map);return Array.from(n,([e,t])=>({key:e,values:t}))}e.groupBy=s})(he||={});var L=he,R=`row-number-cell`,z=`row-selection-cell`,B=`grouping-cell`,V=`row-detail-cell`;function H(e){return e.filter(e=>typeof e==`number`&&!Number.isNaN(e))}var ge=e=>e.reduce((e,t)=>e+t,0),_e=(e,t)=>e.reduce((e,n)=>(t?n<e:n>e)?n:e),ve={sum:e=>{let t=H(e);return t.length?ge(t):null},avg:e=>{let t=H(e);return t.length?Math.round(ge(t)/t.length*100)/100:null},min:e=>{let t=H(e);return t.length?_e(t,!0):null},max:e=>{let t=H(e);return t.length?_e(t,!1):null},count:(e,t)=>t.length};function ye(e,t,n){return typeof e==`function`?e(t,n):ve[e]?.(t,n)??null}var be=class{grid;constructor(e){this.grid=e}get columns(){return this.grid.columns.value.visibleLeafs.filter(e=>!!e.aggregate)}get hasAggregates(){return this.columns.length>0}get hasFooter(){return!!this.grid.props.def.footer&&this.hasAggregates}get footerLabel(){let{footer:e}=this.grid.props.def;return typeof e==`object`?e.label:`Total`}get footerLabelColumn(){return this.grid.columns.value.visibleLeafs.find(e=>(e.isData||e.isGrouping)&&!e.aggregate)}footerCells=N(()=>this.grid.columns.value.visibleLeafs.map(e=>new xe(this.grid,e,this.grid.filteredData,`footer`)),()=>[this.grid.rows])},xe=class{grid;column;rows;scope;given;constructor(e,t,n,r,i){this.grid=e,this.column=t,this.rows=n,this.scope=r,this.given=i}_values=N(()=>this.rows.map(e=>e[this.column.key]));get values(){return this._values.value}_value=N(()=>{let e=this.column.aggregate;return e?ye(e,this.values,this.rows):null});get value(){let e=this.given?.();return e===void 0?this._value.value:e}get isExpanded(){return!1}get isFirst(){return!1}get isLast(){return!1}},Se=class{grid;row;column;constructor(e,t,n){this.grid=e,this.row=t,this.column=n}get value(){return this.column.isRowNumber?this.row.rowIndex+1:this.column.isGrouping?this.row.label:null}get isExpanded(){return!1}get isFirst(){return!1}get isLast(){return!1}get cellKind(){return this.column.isGrouping?`grouping`:this.column.isRowSelection?this.row.selectable?`selection`:`spacer`:this.row.spans(this.column)?`hidden`:this.column.aggregate?`aggregate`:`spacer`}_aggregate=N(()=>this.column.aggregate?new xe(this.grid,this.column,this.row.allRows.map(e=>e.data),`group`,()=>this.row.aggregateValue(this.column)):null);get aggregate(){return this._aggregate.value}get depthPadding(){return 4*this.row.depth}get gridColumnSpan(){return this.row.groupingColumnGridColumn}get widthVar(){return`var(${this.column.groupColumnWidthVarName})`}get isEndPinned(){return this.column.pin===`END`}get hasGroupingBorder(){return this.row.groupingColumn.pin===`START`}},U=class{grid;groupColumn;rows;rowIndex;constructor(e,t,n,r,i){this.grid=e,this.groupColumn=t,this.rows=n,this.rowIndex=r,this._groupValue=i,n.forEach(e=>e.parentRow=this)}_groupValue;get groupValue(){return this._groupValue}get label(){return`${this.groupValue} (${this.count})`}get placeholder(){return!1}get selectable(){return!0}aggregateValue(e){}get key(){return`${this.parentRow?.key??``}${this.groupColumn.key}${this.groupValue}`}parentRow;_cells=N(()=>this.grid.columns.value.visibleLeafs.map(e=>new Se(this.grid,this,e)));get cells(){return this._cells.value}_renderedCells=N(()=>{let e=[];return this.cells.forEach((t,n)=>{t.cellKind!==`hidden`&&e.push({cell:t,columnIndex:n})}),e});get renderedCells(){return this._renderedCells.value}get cellCount(){return this.renderedCells.length}columnOf(e){return this.renderedCells[e]?.columnIndex??e}get selected(){return this.allRows.every(e=>e.selected)}get indeterminate(){return!this.selected&&this.allRows.some(e=>e.selected)}get expanded(){return this.grid.isGroupExpanded(this.key,this.depth)}get depth(){return this.parentRow?this.parentRow.depth+1:0}get count(){return L.sumBy(this.rows,e=>e.count,0)}get flatRows(){return this.expanded?[this,...this.rows.flatMap(e=>e.flatRows)]:[this]}get allRows(){return this.rows.flatMap(e=>e.allRows)}get groupingColumn(){return L.findOrThrow(this.grid.columns.value.leafs,e=>e.key===B)}get groupingColumnGridColumn(){return this.grid.groupingSpan.value.length}spans(e){return!e.isGrouping&&this.grid.groupingSpan.value.includes(e)}kind=`group`;toggleRow(){this.grid.toggleGroupRow(this.key,this.expanded)}toggleSelectAll=()=>{this.grid.toggleRowsSelection(this.allRows.map(e=>e.key))}};function Ce(e){let{row:t,index:i}=e,{grid:a,parentRow:o}=t,s=a.props.def.rowDetail,c=j(),u=(c?.headerRowCount??0)+i,{ref:d,tabIndex:f,onFocus:p}=c?.cellProps(u,0)??{},m=t.isAutoHeight,h=(0,v.useRef)(null);return n.n(()=>{a.takeDetailReveal(o.key)&&h.current?.scrollIntoView?.({block:`nearest`})}),(0,y.jsx)(l.default,{ref:h,component:`${a.componentName}.body.detailRow`,props:{role:`row`,"aria-rowindex":u+1},style:{gridColumn:`1 / -1`,height:m?`auto`:`${t.height}px`},children:(0,y.jsx)(r.default,{ref:d,component:`${a.componentName}.body.detailRow.content`,position:`sticky`,insetStart:0,overflowX:`auto`,overflowY:`hidden`,props:{role:`gridcell`,"aria-colindex":1,"aria-colspan":c?.columnCount,tabIndex:f,onFocus:p},style:{width:`var(${a.viewportWidthVarName})`},children:s.content(o.data)})})}Ce.displayName=`DataGridDetailRow`;function W(e){let{cell:t}=e,{column:n}=t;if(n.AggregateCell)return(0,y.jsx)(n.AggregateCell,{cell:t});let i=t.scope===`footer`?`footer.cell`:`body.groupRow.aggregate`;return(0,y.jsx)(r.default,{component:`${n.grid.componentName}.${i}`,px:3,textOverflow:`ellipsis`,overflow:`hidden`,textWrap:`nowrap`,children:t.value})}W.displayName=`DataGridAggregateValue`;var we=`button,a[href],input,select,textarea`;function G(e){let{children:n,cell:r,row:i,columnIndex:a,ariaColIndex:o,ariaColSpan:s,style:c,...u}=e,{column:d}=r,{ref:f,tabIndex:p,onFocus:m}=j()?.cellProps(i,a)??{};d.hasAlign&&(u.jc=d.align);let h=r.isExpanded?{...d.cellVariant.value,isExpanded:!0,isExpandedFirstLeaf:r.isFirst,isExpandedLastLeaf:r.isLast}:d.cellVariant.value;r instanceof le&&r.editing&&(h={...h,isEditing:!0,isInvalid:!!r.error});let g=r instanceof le?e=>{e.target.closest(we)||(t.o(e.currentTarget),r.beginEdit())}:void 0;return(0,y.jsx)(l.default,{ref:f,component:`${d.grid.componentName}.body.cell`,props:{role:`gridcell`,"aria-colindex":o??a+1,"aria-colspan":s,tabIndex:p,onFocus:m,onDoubleClick:g},variant:h,style:{...d.cellStyleVars.value,...c},...u,children:n})}G.displayName=`DataGridCell`;function K(e){let{grid:t}=e,{aggregation:n}=t,i=j();if(!n.hasFooter)return null;let a=(i?.rowCount??1)-1,{footerLabelColumn:o,footerLabel:s}=n;return(0,y.jsx)(m.default,{component:`${t.componentName}.footer`,props:{role:`rowgroup`},style:{gridTemplateColumns:t.gridTemplateColumns.value},children:(0,y.jsx)(r.default,{display:`contents`,props:{role:`row`,"aria-rowindex":a+1},children:n.footerCells.value.map((e,n)=>(0,y.jsx)(G,{cell:e,row:a,columnIndex:n,children:e.column.aggregate?(0,y.jsx)(W,{cell:e}):e.column===o?(0,y.jsx)(r.default,{component:`${t.componentName}.footer.label`,px:3,textWrap:`nowrap`,children:s}):null},e.column.key))})})}K.displayName=`DataGridFooter`;function q(e){return(0,y.jsx)(o.Svg,{viewBox:`4 2 16 18`,width:`1rem`,fill:`currentColor`,...e,children:(0,y.jsx)(o.Path,{fillRule:`evenodd`,d:`M12.707 14.707a1 1 0 0 1-1.414 0l-5-5a1 1 0 0 1 1.414-1.414L12 12.586l4.293-4.293a1 1 0 1 1 1.414 1.414l-5 5Z`,props:{clipRule:`evenodd`}})})}var Te=[`3/5`,`2/5`,`4/5`,`1/2`,`7/12`];function Ee(e){let{cell:t,columnIndex:n}=e,i=Te[(t.row.rowIndex+n)%Te.length];return(0,y.jsx)(l.default,{component:`${t.grid.componentName}.body.cell.placeholder`,ai:`center`,px:3,props:{"aria-hidden":!0},children:(0,y.jsx)(r.default,{component:`${t.grid.componentName}.body.cell.placeholder.bar`,width:i})})}Ee.displayName=`DataGridCellPlaceholder`;function De(e){let{row:t,index:n}=e,{selected:i,indeterminate:a,expanded:o,placeholder:s}=t,d=(j()?.headerRowCount??0)+n,f=(0,v.useCallback)(()=>t.toggleSelectAll(),[t]);return(0,y.jsx)(l.default,{component:`${t.grid.componentName}.body.groupRow`,className:`grid-row`,selected:t.grid.props.def.rowSelection?i:void 0,display:`contents`,props:{role:`row`,"aria-rowindex":d+1,"data-group-row":``,"aria-busy":s||void 0},children:t.renderedCells.map(({cell:e,columnIndex:n},l)=>{switch(e.cellKind){case`grouping`:return(0,y.jsx)(G,{cell:e,row:d,columnIndex:l,ariaColIndex:n+1,ariaColSpan:e.gridColumnSpan,style:{width:e.widthVar,insetInlineEnd:e.isEndPinned?`0`:void 0},be:e.hasGroupingBorder?1:void 0,gridColumn:e.gridColumnSpan,ps:e.depthPadding,overflow:`auto`,children:s?(0,y.jsx)(Ee,{cell:e,columnIndex:l}):(0,y.jsx)(r.default,{textWrap:`nowrap`,px:3,children:(0,y.jsxs)(c.default,{component:`${t.grid.componentName}.body.groupRow.expandButton`,onClick:()=>t.toggleRow(),cursor:`pointer`,display:`flex`,gap:1,ai:`center`,props:{tabIndex:-1,"aria-expanded":o},children:[(0,y.jsx)(q,{fill:`currentColor`,width:`14px`,height:`14px`,rotate:o?0:-90}),e.value]})})},e.column.key);case`selection`:return(0,y.jsx)(G,{cell:e,row:d,columnIndex:l,ariaColIndex:n+1,children:(0,y.jsx)(u.default,{variant:`datagrid`,m:1,checked:i,indeterminate:a,onChange:f,props:{tabIndex:-1,"aria-label":`Select all rows in ${t.groupValue}`}})},e.column.key);case`aggregate`:return(0,y.jsx)(G,{cell:e,row:d,columnIndex:l,ariaColIndex:n+1,children:e.aggregate&&(0,y.jsx)(W,{cell:e.aggregate})},e.column.key);case`spacer`:return(0,y.jsx)(G,{cell:e,row:d,columnIndex:l,ariaColIndex:n+1,px:e.column.isRowNumber?3:void 0,children:e.value},e.column.key);default:return null}})})}De.displayName=`DataGridGroupRow`;var Oe=`input,select,textarea,button`;function ke(e){let{options:t}=e.editor;return typeof t==`function`?t(e.row.data):t??[]}function Ae(e){let{cell:t,row:r,columnIndex:i}=e,{grid:o}=t,s=j(),c=(0,v.useRef)(null),u=a.t(`datagrid-cell-error`),{error:f,pending:p}=t;n.n(()=>{let e=c.current?.querySelector(Oe);e?.focus(),e instanceof HTMLInputElement&&e.type!==`checkbox`&&e.select()},[]);let m=(0,v.useCallback)(()=>{c.current?.closest(`[role="gridcell"]`)?.focus()},[]),h=(0,v.useCallback)(e=>{if(!s)return;let t=o.edits.nextEditable(r-s.headerRowCount,i,e.shiftKey);t&&(e.preventDefault(),s.setActiveCell(t.row+s.headerRowCount,t.column,{reason:`programmatic`}),o.edits.beginAt(t.row,t.column))},[i,o,s,r]),g=(0,v.useCallback)(e=>{if(e.key===`Escape`){if(c.current?.querySelector(`[aria-expanded="true"]`))return;e.preventDefault(),e.stopPropagation(),t.cancelEdit(),m();return}if(e.key===`Enter`){e.preventDefault(),e.stopPropagation(),t.commitEdit(),t.editing||m();return}if(e.key===`Tab`){if(e.stopPropagation(),t.commitEdit(),t.editing){e.preventDefault();return}h(e)}},[t,m,h]),_=(0,v.useCallback)(()=>{!t.editing||t.pending||t.commitEdit()},[t]);return(0,y.jsxs)(l.default,{ref:c,component:`${o.componentName}.body.cell.editor`,variant:{isPending:p},props:{onKeyDown:g},width:`fit`,height:`fit`,ai:`center`,children:[(0,y.jsx)(je,{cell:t,errorId:f?u:void 0,onBlur:_,onCommitted:m}),f&&(0,y.jsx)(d.default,{anchor:c,side:`bottom`,align:`start`,offset:1,matchWidth:!1,component:`${o.componentName}.body.cell.error`,id:u,props:{role:`alert`},children:f})]})}function je(e){let{cell:t,errorId:n,onBlur:r,onCommitted:i}=e,{EditCell:a}=t.column.def,{type:o,placeholder:s,step:c,min:l,max:d}=t.editor,f={"aria-label":`Edit ${t.column.header??t.column.key}`,"aria-invalid":n?!0:void 0,"aria-describedby":n};if(a)return(0,y.jsx)(a,{cell:t});if(o===`checkbox`)return(0,y.jsx)(u.default,{checked:!!t.draft,onChange:e=>{t.setDraft(e.target.checked),t.commitEdit(),i()},props:{...f,onBlur:r}});if(o===`select`)return(0,y.jsx)(h.default,{value:t.draft,defaultOpen:!0,width:`fit`,variant:`compact`,b:0,bgColor:`transparent`,focus:{outline:0},onValueChange:e=>{t.setDraft(e??null),t.commitEdit(),i()},props:f,children:ke(t).map(e=>(0,y.jsx)(h.default.Item,{value:e.value,children:e.label??String(e.value)},String(e.value)))});let m=o===`number`;return(0,y.jsx)(p.default,{type:m?`number`:`text`,value:t.draft===null||t.draft===void 0?``:String(t.draft),placeholder:s,step:c,width:`fit`,variant:`compact`,b:0,bgColor:`transparent`,focus:{outline:0},onChange:e=>{let n=e.target.value;t.setDraft(m?n===``?null:Number(n):n)},props:{...f,min:l,max:d,onBlur:r}})}Ae.displayName=`DataGridCellEditor`;function Me(e){let{cell:t}=e;return(0,y.jsx)(l.default,{component:`${t.grid.componentName}.body.cell.text`,height:`fit`,width:`fit`,overflow:`auto`,ai:`center`,jc:t.column.align,children:(0,y.jsx)(r.default,{px:3,textOverflow:`ellipsis`,overflow:`hidden`,textWrap:`nowrap`,children:t.value})})}Me.displayName=`DataGridCellText`;function Ne(e){let{cell:t,row:n,children:i}=e,{hasChildren:a,treeExpanded:o,level:s}=n,u=n.grid.componentName,d=(0,v.useCallback)(e=>{e.stopPropagation(),n.toggleTree()},[n]),f=t.value==null||t.value===``?`row ${n.rowIndex+1}`:String(t.value);return(0,y.jsxs)(l.default,{component:`${u}.body.cell.tree`,ai:`center`,ps:s*n.grid.tree.indent,children:[a?(0,y.jsx)(c.default,{component:`${u}.body.cell.tree.toggle`,variant:{isExpanded:o},type:`button`,onClick:d,cursor:`pointer`,display:`flex`,ai:`center`,jc:`center`,props:{tabIndex:-1,"aria-label":`${o?`Collapse`:`Expand`} ${f}`},children:(0,y.jsx)(q,{fill:`currentColor`,width:`14px`,height:`14px`,rotate:o?0:-90})}):(0,y.jsx)(r.default,{component:`${u}.body.cell.tree.spacer`}),(0,y.jsx)(r.default,{textOverflow:`ellipsis`,overflow:`hidden`,textWrap:`nowrap`,minWidth:0,children:i})]})}Ne.displayName=`DataGridCellTree`;function Pe(e){let{row:t,index:n}=e,{selected:r,expandOnRowClick:i}=t,a=(j()?.headerRowCount??0)+n,o=I(t)?t:void 0,s=o&&t.grid.tree.columnKey,c=(0,v.useCallback)(()=>{t.toggleDetail()},[t]),u=(e,n)=>{if(e.editing)return(0,y.jsx)(Ae,{cell:e,row:a,columnIndex:n});let r=t.placeholder&&!e.column.isRowNumber?(0,y.jsx)(Ee,{cell:e,columnIndex:n}):e.column.Cell?(0,y.jsx)(e.column.Cell,{cell:e}):(0,y.jsx)(Me,{cell:e});return!o||e.column.key!==s?r:(0,y.jsx)(Ne,{cell:e,row:o,children:r})};return(0,y.jsx)(l.default,{component:`${t.grid.componentName}.body.row`,className:`grid-row`,selected:t.grid.props.def.rowSelection?r:void 0,display:`contents`,props:{role:`row`,"aria-rowindex":a+1,"aria-busy":t.placeholder||void 0,"aria-level":o?o.level+1:void 0,"aria-posinset":o?o.position+1:void 0,"aria-setsize":o?o.siblings:void 0,"aria-expanded":o?.hasChildren?o.treeExpanded:void 0,onClick:i?c:void 0},cursor:i?`pointer`:void 0,children:t.cells.map((e,t)=>(0,y.jsx)(G,{cell:e,row:a,columnIndex:t,children:u(e,t)},e.column.key))})}Pe.displayName=`DataGridRow`;function Fe(e,t){return e instanceof P?(0,y.jsx)(Ce,{row:e,index:t},e.key):e instanceof U?(0,y.jsx)(De,{row:e,index:t},e.key):(0,y.jsx)(Pe,{row:e,index:t},e.key)}function Ie(e){let{grid:t,scrollTop:n}=e,{viewport:i}=t,{startIndex:a,take:o,translateY:s,totalHeight:c,viewHeight:u}=i.window(n),d=i.showAll,f=i.isEmpty,p=t.flatRows.value,h=(0,v.useMemo)(()=>f?null:L.take(p,o,a).map((e,t)=>Fe(e,a+t)),[p,f,o,a]);if(f){let{noDataComponent:e}=t.props.def,n=t.props.loading?`loading...`:`empty`;return(0,y.jsx)(l.default,{component:`${t.componentName}.body.empty`,jc:`center`,ai:`center`,width:`fit`,position:`sticky`,insetStart:0,props:{role:`row`},style:{height:i.emptyHeight},children:(0,y.jsx)(r.default,{display:`contents`,props:{role:`gridcell`},children:e??n})})}return d?(0,y.jsxs)(y.Fragment,{children:[(0,y.jsx)(m.default,{component:`${t.componentName}.body`,width:`max-content`,minWidth:`fit`,transition:`none`,props:{role:`rowgroup`},style:{gridTemplateColumns:t.gridTemplateColumns.value},children:h}),(0,y.jsx)(K,{grid:t})]}):(0,y.jsxs)(r.default,{props:{role:`presentation`},style:{height:u},children:[(0,y.jsx)(r.default,{props:{role:`presentation`},style:{height:`${c}px`},children:(0,y.jsx)(m.default,{component:`${t.componentName}.body`,width:`max-content`,minWidth:`fit`,transition:`none`,props:{role:`rowgroup`},style:{transform:`translate3d(0, ${s}px, 0)`,willChange:`transform`,gridTemplateColumns:t.gridTemplateColumns.value},children:h})}),(0,y.jsx)(K,{grid:t})]})}Ie.displayName=`DataGridBody`;function Le(e){let{grid:t}=e;return(0,y.jsx)(l.default,{component:`${t.componentName}.emptyColumns`,d:`column`,ai:`center`,jc:`center`,gap:4,py:16,px:6,bgColor:`gray-50`,borderRadius:4,theme:{dark:{bgColor:`gray-900`}},children:(0,y.jsxs)(l.default,{d:`column`,ai:`center`,gap:3,children:[(0,y.jsx)(r.default,{width:16,height:16,borderRadius:999,bgColor:`gray-200`,theme:{dark:{bgColor:`gray-700`}},display:`flex`,ai:`center`,jc:`center`,children:(0,y.jsx)(o.Svg,{viewBox:`0 0 24 24`,width:`40`,fill:`currentColor`,color:`gray-400`,theme:{dark:{color:`gray-500`}},children:(0,y.jsx)(o.Path,{fillRule:`evenodd`,props:{clipRule:`evenodd`},d:`M3 6a3 3 0 013-3h12a3 3 0 013 3v12a3 3 0 01-3 3H6a3 3 0 01-3-3V6zm3-1a1 1 0 00-1 1v12a1 1 0 001 1h12a1 1 0 001-1V6a1 1 0 00-1-1H6zm2 3a1 1 0 011-1h6a1 1 0 110 2H9a1 1 0 01-1-1zm0 4a1 1 0 011-1h6a1 1 0 110 2H9a1 1 0 01-1-1zm0 4a1 1 0 011-1h4a1 1 0 110 2H9a1 1 0 01-1-1z`})})}),(0,y.jsxs)(l.default,{d:`column`,ai:`center`,gap:1,children:[(0,y.jsx)(r.default,{fontSize:18,fontWeight:600,color:`gray-900`,theme:{dark:{color:`gray-50`}},children:`No Columns Selected`}),(0,y.jsx)(r.default,{fontSize:14,color:`gray-500`,textAlign:`center`,theme:{dark:{color:`gray-400`}},children:`Select at least one column from the columns menu to display data`})]})]})})}function J(e){let{columnName:t,onClear:n}=e;return(0,y.jsx)(c.default,{clean:!0,type:`button`,position:`absolute`,insetEnd:2,top:`1/2`,translateY:`-1/2`,cursor:`pointer`,display:`flex`,ai:`center`,onClick:n,props:{tabIndex:-1,"aria-label":`Clear the ${t} filter`},children:(0,y.jsx)(r.default,{fontSize:10,color:`gray-400`,hover:{color:`gray-600`},children:`✕`})})}function Re({column:e}){let{currentFilter:t}=e,{componentName:n}=e.grid,r=e.header??e.key,i=t?.type===`text`?t.value:``,[a,o]=(0,v.useState)(i),s=(0,v.useRef)(null);(0,v.useEffect)(()=>()=>{s.current&&clearTimeout(s.current)},[]);let c=(0,v.useCallback)(t=>{let n=t.target.value;o(n),s.current&&clearTimeout(s.current),s.current=setTimeout(()=>{e.setTextFilter(n),s.current=null},300)},[e]),u=(0,v.useCallback)(()=>{o(``),e.clearFilter()},[e]);return(0,y.jsxs)(l.default,{component:`${n}.filter.cell.input`,children:[(0,y.jsx)(p.default,{width:`fit`,variant:`compact`,placeholder:e.filterConfig?.placeholder??`Filter...`,value:a,onChange:c,b:0,bgColor:`transparent`,focus:{outline:0},props:{tabIndex:-1,"aria-label":`Filter ${r}`}}),a&&(0,y.jsx)(J,{columnName:r,onClear:u})]})}function ze({column:e}){let{currentFilter:t}=e,{componentName:n}=e.grid,r=e.header??e.key,i=t?.type===`number`?t.value:``,a=t?.type===`number`?t.operator:`eq`,o=t?.type===`number`?t.valueTo:``,[s,c]=(0,v.useState)(i),[u,d]=(0,v.useState)(a),[f,m]=(0,v.useState)(o??``),g=(0,v.useRef)(null),_=(0,v.useRef)(null);(0,v.useEffect)(()=>()=>{g.current&&clearTimeout(g.current),_.current&&clearTimeout(_.current)},[]);let b=e.filterConfig,x=(0,v.useCallback)(t=>{let n=t.target.value;c(n),g.current&&clearTimeout(g.current),g.current=setTimeout(()=>{e.setNumberFilter(u,n,f),g.current=null},300)},[e,u,f]),S=(0,v.useCallback)(t=>{d(t),e.setNumberFilter(t,s,f)},[e,s,f]),C=(0,v.useCallback)(t=>{let n=t.target.value;m(n),_.current&&clearTimeout(_.current),_.current=setTimeout(()=>{e.setNumberFilter(u,s,n),_.current=null},300)},[e,u,s]),w=(0,v.useCallback)(()=>{c(``),m(``),d(`eq`),e.clearFilter()},[e]);return(0,y.jsxs)(l.default,{component:`${n}.filter.cell.input`,ai:u===`between`?`start`:`center`,gap:1,children:[(0,y.jsxs)(h.default,{value:u,variant:`compact`,onChange:e=>e&&S(e),minWidth:6,hideIcon:!0,b:0,bgColor:`transparent`,focus:{outline:0},props:{tabIndex:-1,"aria-label":`Comparison for ${r}`},children:[(0,y.jsx)(h.default.Item,{value:`eq`,children:`=`}),(0,y.jsx)(h.default.Item,{value:`ne`,children:`≠`}),(0,y.jsx)(h.default.Item,{value:`gt`,children:`>`}),(0,y.jsx)(h.default.Item,{value:`gte`,children:`≥`}),(0,y.jsx)(h.default.Item,{value:`lt`,children:`<`}),(0,y.jsx)(h.default.Item,{value:`lte`,children:`≤`}),(0,y.jsx)(h.default.Item,{value:`between`,children:`↔`})]}),u===`between`?(0,y.jsxs)(l.default,{d:`column`,gap:1,flex1:!0,children:[(0,y.jsxs)(l.default,{ai:`center`,position:`relative`,flex1:!0,children:[(0,y.jsx)(p.default,{type:`number`,variant:`compact`,placeholder:b?.placeholder??`From`,value:s,onChange:x,width:`fit`,step:b?.step,b:0,bgColor:`transparent`,focus:{outline:0},props:{tabIndex:-1,"aria-label":`Filter ${r} from`}}),(s!==``||f!==``)&&(0,y.jsx)(J,{columnName:r,onClear:w})]}),(0,y.jsx)(l.default,{ai:`center`,flex1:!0,children:(0,y.jsx)(p.default,{type:`number`,variant:`compact`,placeholder:`To`,value:f,onChange:C,width:`fit`,step:b?.step,b:0,bgColor:`transparent`,focus:{outline:0},props:{tabIndex:-1,"aria-label":`Filter ${r} to`}})})]}):(0,y.jsxs)(l.default,{ai:`center`,position:`relative`,flex1:!0,children:[(0,y.jsx)(p.default,{type:`number`,variant:`compact`,placeholder:b?.placeholder??`Value`,value:s,onChange:x,width:`fit`,step:b?.step,b:0,bgColor:`transparent`,focus:{outline:0},props:{tabIndex:-1,"aria-label":`Filter ${r}`}}),s!==``&&(0,y.jsx)(J,{columnName:r,onClear:w})]})]})}function Be({column:e}){let{currentFilter:t}=e,{componentName:n}=e.grid,i=e.header??e.key,a=t?.type===`multiselect`?t.values:[],o=e.filterOptions,s=(0,v.useCallback)((t,n)=>{e.setMultiselectFilter(n)},[e]);return(0,y.jsx)(l.default,{component:`${n}.filter.cell.input`,children:(0,y.jsxs)(h.default,{multiple:!0,showCheckbox:!0,isSearchable:!0,searchPlaceholder:`Search...`,value:a,width:`fit`,minWidth:0,bgColor:`transparent`,onChange:s,variant:`compact`,b:0,focus:{outline:0},props:{tabIndex:-1,"aria-label":`Filter ${i}`},children:[(0,y.jsx)(h.default.Display,{children:t=>t.length===0?(0,y.jsx)(r.default,{tag:`span`,color:`gray-400`,children:e.filterConfig?.placeholder??`Select...`}):t.length===1?o.find(e=>e.value===t[0])?.label??String(t[0]):`${t.length} selected`}),(0,y.jsx)(h.default.Unselect,{children:`Clear`}),(0,y.jsx)(h.default.SelectAll,{children:`Select All`}),o.map(e=>(0,y.jsx)(h.default.Item,{value:e.value,ai:`center`,gap:2,children:e.label},String(e.value)))]})})}function Ve(e){let{column:t}=e,n=t.filterConfig;if(!n)return null;switch(n.type){case`number`:return(0,y.jsx)(ze,{column:t});case`multiselect`:return(0,y.jsx)(Be,{column:t});default:return(0,y.jsx)(Re,{column:t})}}Ve.displayName=`DataGridColumnFilter`;function He(e){let{column:t,grid:n,row:r,columnIndex:i}=e,{widthVarName:a,inlineStartVarName:o,inlineEndVarName:s,filterable:c}=t,{isStartPinned:u,isEndPinned:d,isPinned:f,isFirstStartPinned:p,isLastStartPinned:m,isFirstEndPinned:h,isLastEndPinned:g}=t.pinFlags.value,{ref:_,tabIndex:v,onFocus:b}=j()?.cellProps(r,i)??{},x=t.isGrouping||t.isRowNumber||t.isRowSelection;return(0,y.jsx)(l.default,{ref:_,component:`${n.componentName}.filter.cell`,props:{role:`gridcell`,"aria-colindex":i+1,tabIndex:v,onFocus:b},variant:{isPinned:f,isFirstStartPinned:p,isLastStartPinned:m,isFirstEndPinned:h,isLastEndPinned:g},px:2,style:{width:`var(${a})`,insetInlineStart:u?`var(${o})`:void 0,insetInlineEnd:d?`var(${s})`:void 0},children:!x&&c&&(0,y.jsx)(Ve,{column:t})})}He.displayName=`DataGridFilterCell`;function Ue(e){let{grid:t}=e;if(!t.filter.hasFilterableColumns)return null;let n=t.headerRows.value.length;return(0,y.jsx)(r.default,{display:`contents`,props:{role:`row`,"aria-rowindex":n+1},children:t.columns.value.visibleLeafs.map((e,r)=>(0,y.jsx)(He,{column:e,grid:t,row:n,columnIndex:r},e.uniqueKey))})}Ue.displayName=`DataGridFilterRow`;function We(e){return(0,y.jsx)(o.Svg,{viewBox:`0 0 24 24`,width:`1.5rem`,...e,children:(0,y.jsx)(o.Path,{d:`M4 12l1.41 1.41L11 7.83V20h2V7.83l5.58 5.59L20 12l-8-8-8 8z`})})}function Ge(e){return(0,y.jsx)(o.Svg,{viewBox:`0 0 16 16`,width:`18`,...e,children:(0,y.jsx)(o.Path,{strokeWidth:4,d:`M7.936 12.128a.936.936 0 1 1 0 1.872.936.936 0 0 1 0-1.872ZM7.936 7.052a.936.936 0 1 1 0 1.873.936.936 0 0 1 0-1.873ZM7.936 1.977a.936.936 0 1 1 0 1.872.936.936 0 0 1 0-1.872Z`})})}function Ke(e){return(0,y.jsx)(o.Svg,{viewBox:`0 0 24 24`,width:`1.5rem`,...e,children:(0,y.jsx)(o.Path,{d:`M3 5h8v2H3V5zm0 6h8v2H3v-2zm0 6h8v2H3v-2zm12-12h6v6h-6V5zm1 1v4h4V6h-4zm-1 7h6v6h-6v-6zm1 1v4h4v-4h-4z`})})}function qe(e){return(0,y.jsx)(o.Svg,{viewBox:`0 0 1024 1024`,width:`1.5rem`,...e,children:(0,y.jsx)(o.Path,{d:`M31.997 1023.957a31.699 31.699 0 0 1-22.611-9.386C3.328 1008.556 0 1000.493 0 991.96s3.328-16.596 9.386-22.611L328.25 650.484l-152.52-152.52a95.907 95.907 0 0 1-25.087-92.152 95.31 95.31 0 0 1 44.327-58.62l.896-.512a353.464 353.464 0 0 1 176.156-47.398c20.137 0 40.36 1.749 60.283 5.205L597.71 44.54A95.224 95.224 0 0 1 678.685.085c25.64 0 49.745 9.983 67.877 28.073l249.195 249.195a95.224 95.224 0 0 1 25.897 88.74 95.139 95.139 0 0 1-42.152 60.154L719.513 591.695a352.227 352.227 0 0 1-42.663 237.292A95.395 95.395 0 0 1 594 876.514a95.523 95.523 0 0 1-67.963-28.2L373.43 695.706 54.61 1014.614a31.912 31.912 0 0 1-22.612 9.343zm340.025-660.68c-50.64 0-100.685 13.566-144.798 39.207a31.57 31.57 0 0 0-14.676 19.497 31.699 31.699 0 0 0 8.362 30.675L571.344 803.09c6.059 6.059 14.122 9.386 22.697 9.386a31.699 31.699 0 0 0 27.56-15.785 287.421 287.421 0 0 0 31.06-212.676 31.997 31.997 0 0 1 13.907-34.471l278.59-177.266a31.57 31.57 0 0 0 14.037-20.051 31.699 31.699 0 0 0-8.618-29.566l-249.28-249.28a31.912 31.912 0 0 0-49.618 5.418l-177.308 278.59a31.827 31.827 0 0 1-34.472 13.908 293.778 293.778 0 0 0-67.877-8.02z`})})}function Je(e){let t=e.side===`start`?`Left`:`Right`,n=e.side===`start`?`Right`:`Left`;return(0,y.jsxs)(y.Fragment,{children:[(0,y.jsxs)(_.Span,{rtl:{display:`none`},children:[`Pin `,t]}),(0,y.jsxs)(_.Span,{ltr:{display:`none`},children:[`Pin `,n]})]})}function Ye(e){let{column:t}=e,{grid:o,isEndAligned:s,header:u,key:p}=t,m=t.headerCell,h=u??p,g=a.t(`datagrid-column-menu`),[b,x]=(0,v.useState)(!1),S=(0,v.useRef)(null),C=(0,v.useRef)(null),w=(0,v.useRef)(!1),T=s?2:void 0,E=s?void 0:t.pin===`END`?2.5:4,D=(0,v.useMemo)(()=>{let e=e=>(0,y.jsx)(_.Span,{component:`${o.componentName}.header.cell.contextMenu.tooltip.item.icon`,children:e}),n=t=>e((0,y.jsx)(We,{width:`100%`,fill:`currentColor`,rotate:t})),i=(t,n)=>e((0,y.jsx)(qe,{width:`100%`,fill:`currentColor`,rotate:t,rtl:{rotate:n}})),a=e((0,y.jsx)(Ke,{width:`100%`,fill:`currentColor`})),s=(0,y.jsx)(r.default,{width:4});return[[m.canSortAsc&&{key:`sort-asc`,icon:n(),label:`Sort Ascending`,text:`Sort Ascending`,run:()=>t.sortColumn(`ASC`)},m.canSortDesc&&{key:`sort-desc`,icon:n(180),label:`Sort Descending`,text:`Sort Descending`,run:()=>t.sortColumn(`DESC`)},m.canClearSort&&{key:`sort-clear`,icon:s,label:`Clear Sort`,text:`Clear Sort`,run:()=>t.sortColumn(void 0)}],[m.canPinStart&&{key:`pin-start`,icon:i(0,-90),label:(0,y.jsx)(Je,{side:`start`}),text:`Pin Left`,run:()=>t.pinColumn(`START`)},m.canPinEnd&&{key:`pin-end`,icon:i(-90,0),label:(0,y.jsx)(Je,{side:`end`}),text:`Pin Right`,run:()=>t.pinColumn(`END`)},m.canUnpin&&{key:`unpin`,icon:s,label:`Unpin`,text:`Unpin`,run:()=>t.pinColumn()}],[m.canGroupBy&&{key:`group`,icon:a,label:(0,y.jsxs)(r.default,{textWrap:`nowrap`,children:[`Group by `,h]}),text:`Group by ${h}`,run:t.toggleGrouping},m.canUnGroupAll&&{key:`ungroup`,icon:a,label:(0,y.jsx)(r.default,{textWrap:`nowrap`,children:`Un-Group All`}),text:`Un-Group All`,run:o.unGroupAll}]].map(e=>e.filter(e=>e!==!1)).filter(e=>e.length>0).flatMap((e,t)=>e.map((e,n)=>({...e,startsSection:t>0&&n===0})))},[t,h,o,m]),O=(0,v.useCallback)((e=!0)=>{w.current=!1,x(!1),e&&S.current?.focus()},[]),k=i.t({count:D.length,textOf:e=>D[e]?.text??``,onSelect:e=>{D[e]?.run(),O()}});i.r({enabled:b,inside:[S,C],onDismiss:()=>O()}),i.n({enabled:b,returnTo:S});let ee=k.setActiveIndex,A=k.activeItem,j=(0,v.useCallback)(()=>{ee(0,{reason:`programmatic`}),w.current=!0,x(!0)},[ee]);return n.n(()=>{if(!w.current)return;let e=A();e&&(w.current=!1,e.focus())}),(0,y.jsxs)(l.default,{position:`absolute`,insetStart:T,insetEnd:E,top:`1/2`,translateY:-3,ai:`center`,children:[(0,y.jsx)(c.default,{ref:S,component:`${o.componentName}.header.cell.contextMenu`,onClick:()=>b?O(!1):j(),variant:m.contextMenuButtonVariant,type:`button`,props:{tabIndex:-1,"aria-label":`Column options for ${h}`,"aria-haspopup":`menu`,"aria-expanded":b,"aria-controls":b?g:void 0},children:(0,y.jsx)(_.Span,{component:`${o.componentName}.header.cell.contextMenu.icon`,children:(0,y.jsx)(Ge,{fill:`currentColor`})})}),(0,y.jsx)(f.default,{present:b,children:e=>(0,y.jsx)(d.default,{component:`${o.componentName}.header.cell.contextMenu.tooltip`,variant:{closed:!e.present},ref:C,contentRef:e.ref,anchor:S,side:`bottom`,align:`end`,matchWidth:!1,id:g,props:{role:`menu`,"aria-label":`Column options for ${h}`,onKeyDown:k.onKeyDown,...e.props},children:D.map((e,t)=>{let{ref:n,tabIndex:i,onFocus:a}=k.itemProps(t);return(0,y.jsxs)(v.Fragment,{children:[e.startsSection&&(0,y.jsx)(r.default,{bb:1,my:2,borderColor:`gray-300`,component:`${o.componentName}.header.cell.contextMenu.tooltip.item.separator`}),(0,y.jsxs)(c.default,{component:`${o.componentName}.header.cell.contextMenu.tooltip.item`,ref:n,type:`button`,onClick:t=>{t.stopPropagation(),e.run(),O()},props:{role:`menuitem`,tabIndex:i,onFocus:a},children:[e.icon,e.label]})]},e.key)})})})]})}Ye.displayName=`DataGridHeaderCellContextMenu`;var Y=e=>`touches`in e?e.touches[0]?.pageX??0:e.pageX,Xe=16,Ze=150;function Qe(e){let t=e.sizingElement;t&&Object.entries(e.sizes.value).forEach(([e,n])=>t.style.setProperty(e,n))}function $e(e){let{column:t,controls:n}=e,i=t.grid.resizerStyle,a=t.headerCell,o=(0,v.useCallback)(e=>{let{grid:n}=t;e.type===`mousedown`&&e.preventDefault(),t.beginResize(Y(e.nativeEvent));let r=new AbortController,{signal:i}=r,a=0,o=Y(e.nativeEvent),s=()=>{t.applyResize(o),Qe(n)},c=n.resizeMode===`instant`?e=>{o=Y(e),s()}:e=>{o=Y(e),a||=requestAnimationFrame(()=>{a=0,s()})},l=()=>{r.abort(),a&&cancelAnimationFrame(a),s(),t.endResize()};window.addEventListener(`mousemove`,c,{signal:i}),window.addEventListener(`touchmove`,c,{signal:i}),window.addEventListener(`mouseup`,l,{signal:i}),window.addEventListener(`touchend`,l,{signal:i})},[t]),s=(0,v.useRef)(void 0),c=(0,v.useRef)(0),u=(0,v.useCallback)(()=>{let{grid:e}=t;if(e.resizeMode===`instant`){Qe(e);return}c.current||=requestAnimationFrame(()=>{c.current=0,Qe(e)})},[t]),d=(0,v.useCallback)(()=>{s.current!==void 0&&(clearTimeout(s.current),s.current=void 0,c.current&&=(cancelAnimationFrame(c.current),0),t.endResize())},[t]);(0,v.useEffect)(()=>()=>{clearTimeout(s.current),c.current&&cancelAnimationFrame(c.current)},[]);let f=(0,v.useCallback)(e=>{switch(e.key){case`ArrowRight`:t.moveResizer(Xe);break;case`ArrowLeft`:t.moveResizer(-16);break;case`Home`:t.resizeWidthTo(a.minWidth);break;case`End`:t.resizeWidthTo(a.maxWidth);break;default:return}e.preventDefault(),u(),clearTimeout(s.current),s.current=setTimeout(d,Ze)},[t,d,a,u]);return(0,y.jsx)(l.default,{height:`fit`,ai:`center`,position:`absolute`,insetEnd:t.pin===`END`?void 0:0,insetStart:t.pin===`END`?0:void 0,py:3,children:(0,y.jsx)(r.default,{cursor:`col-resize`,px:.75,mt:-6,className:`resizer`,height:`fit`,props:{onMouseDown:o,onTouchStart:o},children:(0,y.jsx)(r.default,{component:`${t.grid.componentName}.header.cell.resizer`,opacity:i===`visible`?void 0:0,group:i===`hover`?{"header-cell/hover":{opacity:1}}:void 0,props:{role:`separator`,"aria-label":a.resizerLabel,"aria-controls":n,"aria-orientation":`vertical`,"aria-valuenow":a.width,"aria-valuemin":a.minWidth,"aria-valuemax":a.maxWidth,"aria-valuetext":`${a.width} pixels`,tabIndex:-1,onKeyDown:f,onKeyUp:d}})})})}$e.displayName=`DataGridHeaderCellResizer`;function et(e){let{column:t,row:n,columnIndex:i}=e,{grid:o}=t,{isStartPinned:s,isEndPinned:c}=t.pinFlags.value,d=t.headerCell,{isSortable:f,showResizer:p,showContextMenu:m,paddingStart:h,paddingEnd:_}=d,{ref:b,tabIndex:x,onFocus:S}=j()?.cellProps(n,i)??{},C=a.t(`datagrid-columnheader`),w=(0,v.useCallback)(()=>{o.toggleSelectAllRows()},[o]),T=t.isRowSelection?(0,y.jsx)(u.default,{variant:`datagrid`,m:1,indeterminate:o.someRowsSelected&&!o.allRowsSelected,checked:o.allRowsSelected,onChange:w,props:{tabIndex:-1,"aria-label":`Select all rows`}}):d.hiddenLabel?(0,y.jsx)(g.default,{tag:`span`,children:d.hiddenLabel}):d.label;return(0,y.jsx)(l.default,{ref:b,id:C,props:{role:`columnheader`,"aria-colindex":d.columnIndex,"aria-colspan":d.columnSpan,"aria-rowspan":d.rowSpan,"aria-sort":d.ariaSort,tabIndex:x,onFocus:S},className:`header-cell`,component:`${o.componentName}.header.cell`,variant:d.variant,gridRow:t.gridRows,gridColumn:d.gridColumn,style:{width:`var(${t.widthVarName})`,insetInlineStart:s?`var(${t.inlineStartVarName})`:void 0,insetInlineEnd:c?`var(${t.inlineEndVarName})`:void 0},children:(0,y.jsxs)(y.Fragment,{children:[(0,y.jsx)(l.default,{width:`fit`,height:`fit`,jc:t.align,props:{onClick:f?()=>t.sortColumn():void 0},children:(0,y.jsxs)(l.default,{overflow:`hidden`,position:t.isLeaf?void 0:`sticky`,ai:`center`,transition:`none`,ps:h,pe:_,style:{insetInlineStart:t.pin?void 0:`var(${o.inlineStartEdgeVarName})`},children:[(0,y.jsx)(r.default,{overflow:`hidden`,textOverflow:`ellipsis`,textWrap:`nowrap`,children:T}),d.isSorted&&(0,y.jsx)(r.default,{ps:(t.inlineWidth??0)<58?0:2,children:(0,y.jsx)(We,{width:`16px`,rotate:d.sortDirection===`ASC`?0:180,fill:`currentColor`})}),m&&(0,y.jsx)(r.default,{minWidth:t.isEndAligned?4:10})]})}),p&&(0,y.jsx)($e,{column:t,controls:C}),m&&(0,y.jsx)(Ye,{column:t})]})})}et.displayName=`DataGridHeaderCell`;function tt(e){let{grid:t}=e;return(0,y.jsxs)(m.default,{component:`${t.componentName}.header`,props:{role:`rowgroup`},style:{gridTemplateColumns:t.gridTemplateColumns.value},children:[t.headerRows.value.map((e,t)=>(0,y.jsx)(r.default,{display:`contents`,props:{role:`row`,"aria-rowindex":t+1},children:e.map((e,n)=>(0,y.jsx)(et,{column:e,row:t,columnIndex:n},e.uniqueKey))},t)),(0,y.jsx)(Ue,{grid:t})]})}tt.displayName=`DataGridHeader`;function nt(e){let{grid:t}=e;return(0,y.jsx)(r.default,{component:`${t.componentName}.loader`,props:{"aria-hidden":!0},children:(0,y.jsx)(r.default,{component:`${t.componentName}.loader.track`,style:{height:3},children:(0,y.jsx)(r.default,{component:`${t.componentName}.loader.track.bar`,width:`2/5`})})})}nt.displayName=`DataGridLoader`;function rt(e){let{grid:t}=e,i=(0,v.useRef)(null),[a,o]=(0,v.useState)(0),s=(0,v.useRef)(null),c=(0,v.useCallback)(e=>{s.current!==null&&cancelAnimationFrame(s.current),s.current=requestAnimationFrame(()=>{o(e.target.scrollTop),s.current=null})},[]),l=me({grid:t,scrollerRef:i,scrollTop:a,onScrollTo:o}),{source:u}=t,{queryVersion:d}=u;return n.n(()=>{u.enabled&&i.current&&(i.current.scrollTop=0)},[u,d]),(0,v.useEffect)(()=>{if(!u.enabled)return;let{startIndex:e,take:n}=t.viewport.window(i.current?.scrollTop??0);u.request(e,e+n)},[t,u,d,a,t.totalRowCount,t.page,t.pageSize,t.expansionVersion]),n.n(()=>{let e=i.current;if(!e)return;let n=new ResizeObserver(()=>t.setContainerWidth(e.clientWidth));return n.observe(e),()=>n.disconnect()},[t]),t.hasVisibleColumns?(0,y.jsx)(A.Provider,{value:l,children:(0,y.jsxs)(r.default,{ref:i,component:`${t.componentName}.content`,overflowX:`auto`,scrollbarGutter:t.viewport.showAll?void 0:`stable`,style:{willChange:`scroll-position`},props:{role:t.tree.enabled?`treegrid`:`grid`,"aria-rowcount":l.rowCount,"aria-colcount":l.columnCount,"aria-multiselectable":t.props.def.rowSelection?!0:void 0,"aria-labelledby":t.props.def.title?t.titleId:void 0,"aria-busy":t.props.loading||u.isLoading?!0:void 0,onScroll:c,onKeyDown:l.onKeyDown},children:[(0,y.jsx)(tt,{grid:t}),(t.props.loading||u.isLoading)&&(0,y.jsx)(nt,{grid:t}),(0,y.jsx)(Ie,{grid:t,scrollTop:a})]})}):(0,y.jsx)(Le,{grid:t})}rt.displayName=`DataGridContent`;function it(e){let{grid:t}=e,{error:n}=t.source;if(n===void 0)return null;let i=n instanceof Error&&n.message?n.message:`Could not load rows.`;return(0,y.jsxs)(l.default,{component:`${t.componentName}.error`,props:{role:`alert`},children:[(0,y.jsx)(r.default,{component:`${t.componentName}.error.message`,children:i}),(0,y.jsx)(c.default,{component:`${t.componentName}.error.retry`,type:`button`,onClick:t.source.retry,children:`Retry`})]})}it.displayName=`DataGridDataSourceError`;function at(e){let{grid:t}=e;return t.groupColumns.size===0?null:(0,y.jsxs)(l.default,{component:`${t.componentName}.topBar.columnGroups`,children:[(0,y.jsx)(_.Span,{component:`${t.componentName}.topBar.columnGroups.icon`,children:(0,y.jsx)(Ke,{width:`100%`,fill:`currentColor`})}),t.groupedColumns.map(e=>(0,y.jsxs)(v.default.Fragment,{children:[(0,y.jsx)(q,{fill:`currentColor`,width:`14px`,height:`14px`,rotate:-90}),(0,y.jsxs)(l.default,{component:`${t.componentName}.topBar.columnGroups.item`,children:[e.header??e.key,(0,y.jsx)(c.default,{component:`${t.componentName}.topBar.columnGroups.item.icon`,onClick:()=>t.toggleGrouping(e.key),props:{"aria-label":`Stop grouping by ${e.header??e.key}`},children:(0,y.jsx)(r.default,{fontSize:10,color:`gray-400`,hover:{color:`gray-600`},children:`✕`})})]})]},e.key))]})}at.displayName=`DataGridColumnGroups`;function ot(e){let{grid:t}=e,n=t.exportConfig,r=(0,v.useCallback)(()=>void t.exportCsv(n).catch(()=>void 0),[t,n]),i=(0,v.useCallback)(()=>void t.exportXlsx(n).catch(()=>void 0),[t,n]);return n?(0,y.jsxs)(l.default,{component:`${t.componentName}.topBar.export`,ai:`center`,gap:2,children:[n.csv!==!1&&(0,y.jsx)(st,{componentName:t.componentName,onClick:r,label:`Export CSV`,children:`CSV`}),n.xlsx!==!1&&(0,y.jsx)(st,{componentName:t.componentName,onClick:i,label:`Export Excel`,children:`Excel`})]}):null}ot.displayName=`DataGridExport`;function st(e){let{componentName:t,onClick:n,label:r,children:i}=e;return(0,y.jsxs)(c.default,{component:`${t}.topBar.export.button`,onClick:n,props:{"aria-label":r},children:[(0,y.jsxs)(o.Svg,{viewBox:`0 0 20 20`,width:16,height:16,fill:`none`,stroke:`currentColor`,strokeWidth:1.6,children:[(0,y.jsx)(o.Path,{d:`M10 3v9m0 0 3.5-3.5M10 12 6.5 8.5`,strokeLinecap:`round`,strokeLinejoin:`round`}),(0,y.jsx)(o.Path,{d:`M3.5 13.5v2a1 1 0 0 0 1 1h11a1 1 0 0 0 1-1v-2`,strokeLinecap:`round`})]}),i]})}function ct(e){return(0,y.jsx)(o.Svg,{viewBox:`0 0 488.4 488.4`,width:`1.5rem`,...e,children:(0,y.jsx)(o.Path,{d:`M0 203.25c0 112.1 91.2 203.2 203.2 203.2 51.6 0 98.8-19.4 134.7-51.2l129.5 129.5c2.4 2.4 5.5 3.6 8.7 3.6s6.3-1.2 8.7-3.6c4.8-4.8 4.8-12.5 0-17.3l-129.6-129.5c31.8-35.9 51.2-83 51.2-134.7C406.4 91.15 315.2.05 203.2.05S0 91.15 0 203.25zm381.9 0c0 98.5-80.2 178.7-178.7 178.7s-178.7-80.2-178.7-178.7 80.2-178.7 178.7-178.7 178.7 80.1 178.7 178.7z`})})}function lt(e){let{grid:t}=e,[n,i]=(0,v.useState)(t.globalFilterValue),a=(0,v.useRef)(null);(0,v.useEffect)(()=>()=>{a.current&&clearTimeout(a.current)},[]);let o=(0,v.useCallback)(e=>{let n=e.target.value;i(n),a.current&&clearTimeout(a.current),a.current=setTimeout(()=>{t.filter.setGlobalFilter(n),a.current=null},300)},[t]),s=(0,v.useCallback)(()=>{i(``),t.filter.setGlobalFilter(``)},[t]),{filtered:c,total:u}=t.filter.filterStats,d=t.filter.hasActiveFilters&&c!==u;return(0,y.jsxs)(l.default,{component:`${t.componentName}.topBar.globalFilter`,children:[d&&(0,y.jsxs)(r.default,{component:`${t.componentName}.topBar.globalFilter.stats`,children:[c,`/`,u]}),(0,y.jsxs)(l.default,{position:`relative`,ai:`center`,children:[(0,y.jsx)(l.default,{position:`absolute`,insetStart:3,pointerEvents:`none`,color:`gray-400`,theme:{dark:{color:`gray-500`}},children:(0,y.jsx)(ct,{fill:`currentColor`,width:`14px`})}),(0,y.jsx)(p.default,{placeholder:`Search...`,variant:`compact`,value:n,onChange:o,ps:8,pe:n?8:3}),n&&(0,y.jsx)(r.default,{position:`absolute`,insetEnd:2,cursor:`pointer`,p:1,color:`gray-400`,hover:{color:`gray-600`},theme:{dark:{color:`gray-500`,hover:{color:`gray-300`}}},props:{onClick:s},children:(0,y.jsx)(r.default,{fontSize:12,fontWeight:600,children:`✕`})})]})]})}function ut(e){let{grid:t}=e,{columnVisibility:n}=t,{entries:i,selectedIds:a,total:o,hasHidden:c}=n;return(0,y.jsxs)(h.default,{component:`${t.componentName}.topBar.columnVisibility`,multiple:!0,showCheckbox:!0,hideIcon:!0,variant:`compact`,value:a,onChange:(e,t)=>{n.setVisibility(t)},isSearchable:i.length>6,searchPlaceholder:`Search columns...`,display:`inline-flex`,props:{"aria-label":`Columns`},children:[(0,y.jsx)(h.default.Display,{children:e=>{let n=e.length===0;return(0,y.jsxs)(l.default,{ai:`center`,gap:2,children:[(0,y.jsxs)(s.default,{viewBox:`0 0 20 20`,width:`18`,height:`18`,children:[(0,y.jsx)(`rect`,{x:`2`,y:`3`,width:`4`,height:`14`,rx:`1`,fill:`currentColor`,opacity:.9}),(0,y.jsx)(`rect`,{x:`8`,y:`3`,width:`4`,height:`14`,rx:`1`,fill:`currentColor`,opacity:.6}),(0,y.jsx)(`rect`,{x:`14`,y:`3`,width:`4`,height:`14`,rx:`1`,fill:`currentColor`,opacity:.3})]}),c&&(0,y.jsxs)(r.default,{component:`${t.componentName}.topBar.columnVisibility.badge`,tag:`span`,fontSize:11,lineHeight:16,fontWeight:500,px:2,py:.5,borderRadius:1,bgColor:n?`red-100`:`amber-100`,color:n?`red-700`:`amber-700`,theme:{dark:{bgColor:n?`red-900`:`amber-900`,color:n?`red-300`:`amber-300`}},children:[e.length,`/`,o]})]})}}),(0,y.jsx)(h.default.SelectAll,{children:`Show All`}),(0,y.jsx)(h.default.Unselect,{children:`Hide All`}),i.map(e=>(0,y.jsx)(h.default.Item,{value:e.id,textWrap:`nowrap`,children:e.label},e.id))]})}ut.displayName=`DataGridTopBarContextMenu`;function dt(e){let{grid:t}=e,{title:n,topBarContent:i,globalFilter:a}=t.props.def;return(0,y.jsxs)(l.default,{component:`${t.componentName}.topBar`,position:`relative`,d:`column`,gap:3,children:[(0,y.jsxs)(l.default,{ai:`center`,jc:`space-between`,gap:4,flexWrap:`wrap`,width:`fit`,children:[(0,y.jsxs)(l.default,{ai:`center`,gap:3,flexWrap:`wrap`,minWidth:0,children:[(0,y.jsx)(ut,{grid:t}),n&&(0,y.jsx)(r.default,{id:t.titleId,fontWeight:600,fontSize:16,color:`gray-800`,theme:{dark:{color:`gray-100`}},children:n}),(0,y.jsx)(at,{grid:t})]}),(0,y.jsxs)(l.default,{ai:`center`,gap:3,flexWrap:`wrap`,children:[a&&(0,y.jsx)(lt,{grid:t}),(0,y.jsx)(ot,{grid:t})]})]}),i&&(0,y.jsx)(r.default,{width:`fit`,children:i})]})}dt.displayName=`DataGridTopBar`;function ft(e,t){if(!e)return{score:1,matches:[]};if(!t)return null;let n=e.toLowerCase(),r=t.toLowerCase(),i=0,a=0,o=[],s=-1,c=0,l=0;for(;i<n.length&&a<r.length;)n[i]===r[a]?(s===-1&&(s=a),i++,l++,c+=l,(a===0||/\s|_|-/.test(t[a-1]))&&(c+=5),e[i-1]===t[a]&&(c+=1)):(s!==-1&&(o.push([s,a]),s=-1),l=0),a++;return s!==-1&&o.push([s,a]),i<n.length?null:(c/=t.length,{score:c,matches:o})}function pt(e,t){return ft(e,t)!==null}function mt(e){let{cell:t}=e,n=t.isExpanded,r=(0,v.useCallback)(e=>{e.stopPropagation(),t.toggleDetail()},[t]);return(0,y.jsx)(c.default,{component:`${t.grid.componentName}.body.cell.rowDetail`,variant:{isExpanded:n},type:`button`,onClick:r,cursor:`pointer`,display:`flex`,ai:`center`,jc:`center`,width:`fit`,height:`fit`,props:{tabIndex:-1,"aria-label":`${n?`Collapse`:`Expand`} details for row ${t.row.rowIndex+1}`,"aria-expanded":n},children:(0,y.jsx)(q,{fill:`currentColor`,width:`14px`,height:`14px`,rotate:n?0:-90})})}mt.displayName=`DataGridCellRowDetail`;function ht(e){let{cell:t}=e,n=(0,v.useCallback)(()=>{t.toggleSelection()},[t]);return(0,y.jsx)(u.default,{variant:`datagrid`,checked:t.selected,indeterminate:t.indeterminate,onChange:n,props:{tabIndex:-1,"aria-label":`Select row ${t.row.rowIndex+1}`}})}ht.displayName=`DataGridCellRowSelection`;function gt(e){if(e)return e===`LEFT`?`START`:e===`RIGHT`?`END`:e}var _t=1e3,vt=class{column;constructor(e){this.column=e}get grid(){return this.column.grid}get label(){let e=this.column;if(e.isRowNumber||e.isRowSelection)return null;if(e.isGrouping){if(this.grid.groupColumns.size===1){let e=this.grid.groupColumns.values().next().value,t=L.findOrThrow(this.grid.columns.value.leafs,t=>t.key===e);return t.header??t.key}return`Group`}return e.header??e.key}get hiddenLabel(){if(this.column.isRowNumber)return`Row number`;if(this.column.isRowDetail)return`Row details`}get isSortable(){let e=this.column;return e.isLeaf&&!e.isRowNumber&&!e.isRowSelection&&!e.isRowDetail&&e.sortable}get isSorted(){return this.column.key===this.grid.sortColumn}get sortDirection(){return this.grid.sortDirection}get showResizer(){let e=this.column;return!e.isRowNumber&&!e.isRowSelection&&!e.isRowDetail&&e.resizable}get showContextMenu(){let e=this.column;return!e.isRowNumber&&!e.isRowSelection&&!e.isRowDetail&&e.showContextMenu}get gridColumn(){return this.column.isLeaf?1:this.column.leafs.length}get columnIndex(){let e=this.column.leafs[0]??this.column;return this.grid.columns.value.visibleLeafs.indexOf(e)+1}get columnSpan(){let e=this.column.leafs.length;return e>1?e:void 0}get rowSpan(){let e=this.column.gridRows;return e>1?e:void 0}get ariaSort(){if(this.isSortable)return!this.isSorted||!this.sortDirection?`none`:this.sortDirection===`ASC`?`ascending`:`descending`}get resizerLabel(){return`Resize ${this.label??this.column.key}`}get width(){return this.column.inlineWidth??this.column.baseWidth}get minWidth(){return Math.max(1,this.column.leafs.length)*this.grid.MIN_COLUMN_WIDTH_PX}get maxWidth(){return Math.max(this.grid.containerWidth||_t,this.width,this.minWidth)}get paddingStart(){if(!this.column.isRowSelection)return this.column.isEndAligned?10:3}get paddingEnd(){if(!this.column.isRowSelection)return this.column.align===`center`?3:void 0}get variant(){let{isPinned:e,isFirstStartPinned:t,isLastStartPinned:n,isFirstEndPinned:r,isLastEndPinned:i}=this.column.pinFlags.value;return{isPinned:e,isFirstStartPinned:t,isLastStartPinned:n,isFirstEndPinned:r,isLastEndPinned:i,isSortable:this.isSortable,isRowNumber:this.column.isRowNumber,isFirstLeaf:this.column.isFirstLeaf,isLastLeaf:this.column.isLastLeaf}}get contextMenuButtonVariant(){let{isPinned:e,isFirstStartPinned:t,isLastStartPinned:n,isFirstEndPinned:r,isLastEndPinned:i}=this.column.pinFlags.value;return{isPinned:e,isFirstStartPinned:t,isLastStartPinned:n,isFirstEndPinned:r,isLastEndPinned:i,isSortable:this.isSortable,isRowNumber:this.column.isRowNumber}}get sections(){return this.column.contextMenuSections}get canSortAsc(){let{key:e}=this.column;return this.sections.sort&&this.column.isLeaf&&this.column.sortable&&(this.grid.sortColumn!==e||this.grid.sortDirection===`DESC`)}get canSortDesc(){let{key:e}=this.column;return this.sections.sort&&this.column.isLeaf&&this.column.sortable&&(this.grid.sortColumn!==e||this.grid.sortDirection===`ASC`)}get canClearSort(){return this.sections.sort&&this.column.isLeaf&&this.column.sortable&&this.grid.sortColumn===this.column.key}get canPinStart(){return this.sections.pin&&this.column.pin!==`START`}get canPinEnd(){return this.sections.pin&&this.column.pin!==`END`}get canUnpin(){return this.sections.pin&&!!this.column.pin}get canGroupBy(){return this.sections.group&&this.column.isLeaf&&!this.column.isGrouping}get canUnGroupAll(){return this.sections.group&&this.column.isLeaf&&this.column.isGrouping}get hasSortSection(){return this.canSortAsc||this.canSortDesc||this.canClearSort}get hasPinSection(){return this.canPinStart||this.canPinEnd||this.canUnpin}get hasGroupSection(){return this.canGroupBy||this.canUnGroupAll}},X=class e{def;grid;parent;constructor(t,n,r){if(this.def=t,this.grid=n,this.parent=r,this.columns=t.columns?.map(r=>new e(t.pin?{...r,pin:t.pin}:r,n,this))??[],this.isLeaf){let e=this.grid.columnWidths.get(this.key);this._inlineWidth=e??this.def.width??this.grid.DEFAULT_COLUMN_WIDTH_PX,this._pin=gt(t.pin)}}columns=[];get kind(){switch(this.key){case R:return`rowNumber`;case z:return`rowSelection`;case V:return`rowDetail`;case B:return`grouping`;default:return`data`}}get isRowNumber(){return this.kind===`rowNumber`}get isRowSelection(){return this.kind===`rowSelection`}get isRowDetail(){return this.kind===`rowDetail`}get isGrouping(){return this.kind===`grouping`}get isData(){return this.kind===`data`}pinFlags=N(()=>{let e=this.pin===`START`,t=this.pin===`END`;return{isStartPinned:e,isEndPinned:t,isPinned:e||t,isFirstStartPinned:e&&this.startOffset===0,isLastStartPinned:e&&this.isEdge,isFirstEndPinned:t&&this.isEdge,isLastEndPinned:t&&this.endOffset===0}},()=>[this.grid.columns]);cellVariant=N(()=>{let{isPinned:e,isFirstStartPinned:t,isLastStartPinned:n,isFirstEndPinned:r,isLastEndPinned:i}=this.pinFlags.value;return{isPinned:e,isFirstStartPinned:t,isLastStartPinned:n,isFirstEndPinned:r,isLastEndPinned:i,isRowSelection:this.isRowSelection,isRowNumber:this.isRowNumber,isFirstLeaf:this.isFirstLeaf,isLastLeaf:this.isLastLeaf,isRowDetail:this.isRowDetail}},()=>[this.pinFlags]);cellStyleVars=N(()=>{let{isStartPinned:e,isEndPinned:t}=this.pinFlags.value;return{width:`var(${this.widthVarName})`,height:`var(${this.grid.rowHeightVarName})`,insetInlineStart:e?`var(${this.inlineStartVarName})`:void 0,insetInlineEnd:t?`var(${this.inlineEndVarName})`:void 0}},()=>[this.pinFlags]);_headerCell=N(()=>new vt(this));get headerCell(){return this._headerCell.value}get visibleColumns(){return this.columns.filter(e=>e.isVisible)}get isFirstLeaf(){let{leafs:e}=this;return e.length>0&&e.at(0)===this}get isLastLeaf(){let{leafs:e}=this;return e.length>0&&e.at(-1)===this}get key(){return this.def.key}get header(){return this.def.header}get align(){return this.def.align}get isEndAligned(){return this.align===`end`||this.align===`right`}get hasAlign(){return`align`in this.def}get isLeaf(){return this.columns.length===0}get Cell(){return this.def.Cell}get aggregate(){return this.def.aggregate}get AggregateCell(){return this.def.AggregateCell}get filterable(){return this.def.filterable}get filterConfig(){let{filterable:e}=this.def;if(e)return typeof e==`object`?e:{type:`text`}}get currentFilter(){return this.grid.columnFilters[this.key]}get filterOptions(){let e=this.filterConfig;return e?.type===`multiselect`&&e.options?e.options:this.grid.getColumnUniqueValues(this.key).map(e=>({label:e===null?`(empty)`:String(e),value:e}))}setTextFilter(e){this.grid.setColumnFilter(this.key,e.trim()?{type:`text`,value:e}:void 0)}setNumberFilter(e,t,n){let r=typeof t==`number`?t:parseFloat(t);if(isNaN(r)||t===``){this.grid.setColumnFilter(this.key,void 0);return}let i={type:`number`,operator:e,value:r};if(e===`between`&&n!==void 0&&n!==``){let e=typeof n==`number`?n:parseFloat(String(n));isNaN(e)||(i.valueTo=e)}this.grid.setColumnFilter(this.key,i)}setMultiselectFilter(e){this.grid.setColumnFilter(this.key,e.length===0?void 0:{type:`multiselect`,values:e})}clearFilter(){this.grid.setColumnFilter(this.key,void 0)}get editable(){return this.def.editable===void 0?this.grid.props.def.editable??!1:this.def.editable}get sortable(){return this.def.sortable===void 0?this.grid.props.def.sortable!==!1:this.def.sortable}get resizable(){return this.def.resizable===void 0?this.grid.props.def.resizable!==!1:this.def.resizable}get contextMenu(){return this.def.contextMenu===void 0?this.grid.props.def.contextMenu??!0:this.def.contextMenu}get showContextMenu(){let e=this.contextMenu;return typeof e==`boolean`?e:e.sort!==!1||e.pin!==!1||e.group!==!1}get contextMenuSections(){let e=this.contextMenu,t=(!this.grid.source.enabled||this.grid.source.canGroup)&&!this.grid.tree.enabled;return typeof e==`boolean`?{sort:e,pin:e,group:e&&t}:{sort:e.sort!==!1,pin:e.pin!==!1,group:t&&e.group!==!1}}get isFlexible(){return this.def.flexible!==!1}get baseWidth(){return this._inlineWidth??this.grid.DEFAULT_COLUMN_WIDTH_PX}_pin;get pin(){if(this.isLeaf)return this._pin;let e=[...new Set(this.columns.flatMap(e=>e.pin))];if(e.length===1)return e[0]}get uniqueKey(){return`${this.key}${this.pin??``}`}getPinnedColumn(t){if(this.hasPin(t)){if(this.isLeaf)return this;let n=new e({...this.def,pin:t},this.grid,this.parent);return n.columns=this.columns.filter(e=>e.hasPin(t)).map(e=>{let r=e.getPinnedColumn(t);return r.parent=n,r}).filter(e=>!!e),n}}hasPin(e){return this.isLeaf?this._pin===e:this.columns.some(t=>t.hasPin(e))}get death(){return this.parent?this.parent.death+1:0}get flatColumns(){let e=[this];return e.push(...this.columns.flatMap(e=>e.flatColumns)),e}_inlineWidth;get inlineWidth(){if(this.isLeaf)return this.grid.getFlexWidth(this.key)??this._inlineWidth;let e=this.visibleColumns.map(e=>e.inlineWidth).filter(e=>typeof e==`number`);if(e.length!==0)return L.sumBy(e,e=>e)}get startOffset(){let e=0;if(this.parent){let{visibleColumns:t,startOffset:n}=this.parent,r=t.findIndex(e=>e===this);e+=L.sumBy(t,(e,t)=>t<r?e.inlineWidth??0:0),e+=n}else{let t=this.grid.columns.value.start.filter(e=>e.isVisible),n=t.findIndex(e=>e===this);e+=L.sumBy(t,(e,t)=>t<n?e.inlineWidth??0:0)}return e}get endOffset(){let e=0;if(this.parent){let{visibleColumns:t}=this.parent,n=t.reverse(),r=n.findIndex(e=>e===this);e+=L.sumBy(n,(e,t)=>t<r?e.inlineWidth??0:0),e+=this.parent.endOffset}else{let t=this.grid.columns.value.end.filter(e=>e.isVisible).reverse(),n=t.findIndex(e=>e===this);e+=L.sumBy(t,(e,t)=>t<n?e.inlineWidth??0:0)}return e}get isEdge(){if(!this.pin)return!1;if(this.parent){let{visibleColumns:e}=this.parent;return(this.pin===`START`?e.at(-1):e.at(0))===this&&this.parent.isEdge}return(this.pin===`START`?this.grid.columns.value.start.filter(e=>e.isVisible).at(-1):this.grid.columns.value.end.filter(e=>e.isVisible).at(0))===this}get isVisible(){return this.isLeaf?!this.grid.hiddenColumns.has(this.key):this.leafs.some(e=>e.isVisible)}get leafs(){return this.isLeaf?[this]:this.visibleColumns.flatMap(e=>e.leafs)}get groupColumnWidthVarName(){return`--${this.uniqueKey}-group-width`}get widthVarName(){return`--${this.uniqueKey}-width`}get inlineStartVarName(){return`--${this.uniqueKey}-inline-start`}get inlineEndVarName(){return`--${this.uniqueKey}-inline-end`}get gridRows(){return this.isLeaf?this.grid.columns.value.maxDeath-this.death:1}_resizeStartX=0;_resizeSizes={};_resizeTotalWidth=0;beginResize=e=>{let{MIN_COLUMN_WIDTH_PX:t}=this.grid;this._resizeStartX=e,this._resizeSizes=L.toRecord(this.leafs,e=>[e.key,e.inlineWidth??e.baseWidth]),this._resizeTotalWidth=L.sumBy(this.leafs,e=>this._resizeSizes[e.key])-this.leafs.length*t};get resizeSign(){return this.pin===`END`===this.grid.isRtl?1:-1}applyResize=e=>{let{MIN_COLUMN_WIDTH_PX:t}=this.grid,n=(e-this._resizeStartX)*this.resizeSign;this.leafs.forEach(e=>{let r=this._resizeSizes[e.key],i=this._resizeTotalWidth>0?(r-t)/this._resizeTotalWidth*n:n/this.leafs.length,a=Math.round(r+i);e.setWidth(a<t?t:a)}),this.grid.flexWidths.clear()};resizeTo=e=>{this.applyResize(e),this.grid.notify()};endResize=()=>{this.grid.notify()};moveResizer=e=>{this.beginResize(0),this.applyResize(e)};resizeWidthTo=e=>{let t=this.inlineWidth??this.baseWidth;this.moveResizer((e-t)*this.resizeSign)};pinColumn=e=>{this.isLeaf?this._pin=gt(e):this.columns.forEach(t=>t.pinColumn(e)),this.grid.pinColumn(this.uniqueKey,e)};toggleGrouping=()=>{this.grid.toggleGrouping(this.key)};sortColumn=(...e)=>{this.grid.setSortColumn(this.key,...e)};setWidth=e=>{if(!this.isLeaf)throw Error(`Cannot set width for a parent column.`);this._inlineWidth!==e&&(this._inlineWidth=e,this.grid.setWidth(this.key,e))};toggleVisibility=()=>{this.grid.toggleColumnVisibility(this.key)}},yt=class{grid;constructor(e){this.grid=e}get entries(){return this.grid.columns.value.leafs.filter(e=>e.isData).map(e=>({id:String(e.key),label:String(e.header??e.key),column:e,visible:e.isVisible}))}get selectedIds(){return this.entries.filter(e=>e.visible).map(e=>e.id)}get total(){return this.entries.length}get hiddenCount(){return this.entries.reduce((e,t)=>t.visible?e:e+1,0)}get hasHidden(){return this.hiddenCount>0}setVisibility=e=>{let t=new Set(e);this.entries.forEach(e=>{let n=t.has(e.id);e.visible!==n&&e.column.toggleVisibility()})}};function bt(e,t){return new Proxy([],{get(n,r,i){if(r===`length`)return e;let a=Z(r,e);return a===void 0?Reflect.get(n,r,i):t(a)},has(t,n){return Z(n,e)!==void 0||Reflect.has(t,n)},getOwnPropertyDescriptor(n,r){return Z(r,e)===void 0?Reflect.getOwnPropertyDescriptor(n,r):{value:t(Z(r,e)),writable:!0,enumerable:!0,configurable:!0}}})}function Z(e,t){if(typeof e!=`string`)return;let n=Number(e);return Number.isInteger(n)&&n>=0&&n<t?n:void 0}var Q=class e{source;path;parent;parentRowIndex;constructor(e,t,n,r=0,i){this.source=e,this.path=t,this.parent=n,this.parentRowIndex=r,this._totalCount=i}blocks=new Map;_totalCount;alive=!0;_reachedEnd=!1;static keyOf(e){return JSON.stringify(e)}get key(){return e.keyOf(this.path)}get groupKeys(){return this.source.isTree?[]:this.path}get treeKeys(){return this.source.isTree?this.path:[]}get placeholderKey(){return this.depth===0?`rb-placeholder`:`rb-placeholder-${this.key}`}get depth(){return this.path.length}get isGroupLevel(){return this.depth<this.source.groupBy.length}get rowCount(){if(this._totalCount!==void 0)return this._totalCount;let e=0;return this.blocks.forEach((t,n)=>{t.status===`loaded`&&(e=Math.max(e,n*this.source.blockSize+t.rows.length))}),this._reachedEnd?e:e+this.source.blockSize}get totalCount(){return this._totalCount}rowAt(e){let t=this.blocks.get(Math.floor(e/this.source.blockSize));if(!(!t||t.status!==`loaded`))return t.rows[e%this.source.blockSize]}groupCountAt(e){let t=this.blocks.get(Math.floor(e/this.source.blockSize));return t?.status===`loaded`?t.counts?.[e%this.source.blockSize]:void 0}statusAt(e){return this.blocks.get(Math.floor(e/this.source.blockSize))?.status??`missing`}get isLoading(){for(let e of this.blocks.values())if(e.status===`loading`)return!0;return!1}failedBlocks(){let e=[];return this.blocks.forEach((t,n)=>t.status===`error`&&e.push(n)),e}errorAt(e){return this.blocks.get(e)?.error}has(e){return this.blocks.has(e)}loadedBlocks(){let e=[];return this.blocks.forEach((t,n)=>t.status===`loaded`&&e.push({index:n,rows:t.rows})),e.sort((e,t)=>e.index-t.index)}drop(e){this.blocks.get(e)?.controller?.abort(),this.blocks.delete(e)}dispose(){this.alive=!1,this.blocks.forEach(e=>e.controller?.abort()),this.blocks.clear()}retry(){let e=this.failedBlocks();e.forEach(e=>this.blocks.delete(e)),e.forEach(e=>this.load(e))}load(e){let t=this.source.config;if(!t)return;let{grid:n}=this.source,r=this.source.blockSize,i=new AbortController,a=this.source.queryVersion;this.blocks.set(e,{status:`loading`,rows:[],controller:i});let o={startRow:e*r,endRow:(e+1)*r,page:e+1,pageSize:r,sort:n.sortColumn!==void 0&&n.sortDirection!==void 0?{columnKey:n.sortColumn,direction:n.sortDirection}:void 0,globalFilter:n.globalFilterValue,columnFilters:n.columnFilters,groupBy:this.source.groupBy,groupKeys:this.groupKeys,treeKeys:this.treeKeys,signal:i.signal};t.getRows(o).then(t=>{!this.alive||a!==this.source.queryVersion||i.signal.aborted||(this.blocks.set(e,{status:`loaded`,rows:t.rows??[],counts:t.groupCounts}),t.totalCount!==void 0&&(this._totalCount=t.totalCount),(t.rows?.length??0)<r&&(this._reachedEnd=!0),this.source.changed())},t=>{!this.alive||a!==this.source.queryVersion||i.signal.aborted||(this.blocks.set(e,{status:`error`,rows:[],error:t}),this.source.changed())})}},xt=class extends U{level;constructor(e,t,n,r){super(e,n,[],r,``),this.level=t}get row(){return this.level.rowAt(this.rowIndex)}get data(){return this.row}get placeholder(){return this.row===void 0}get groupValue(){let e=this.row;return e==null?``:e[this.groupColumn.key]}get groupKeys(){return[...this.level.groupKeys,this.groupValue]}get key(){return this.placeholder?`${this.level.placeholderKey}-group-${this.rowIndex}`:St(this.groupKeys)}get depth(){return this.level.depth}get count(){return this.level.groupCountAt(this.rowIndex)??0}get label(){if(this.placeholder)return``;let e=this.level.groupCountAt(this.rowIndex);return e===void 0?`${this.groupValue}`:`${this.groupValue} (${e})`}aggregateValue(e){let t=this.row?.[e.key];return typeof t==`number`||typeof t==`string`?t:void 0}get selectable(){return!1}get selected(){return!1}get indeterminate(){return!1}get expanded(){return!this.placeholder&&this.grid.expandedGroupRow.has(this.key)}get allRows(){return[]}toggleRow(){this.placeholder||this.grid.toggleGroupRow(this.key)}};function St(e){return`rb-group:${Q.keyOf(e)}`}var Ct={},$=class extends F{sourceLevel;constructor(e,t,n){super(e,Ct,n),this.sourceLevel=t}get row(){return this.sourceLevel.rowAt(this.rowIndex)}get data(){return this.row??Ct}get placeholder(){return this.row===void 0}get key(){let e=this.row;return e===void 0?`${this.sourceLevel.placeholderKey}-${this.rowIndex}`:this.grid.getRowKey(e)}get expandOnRowClick(){return!this.placeholder&&super.expandOnRowClick}get expanded(){return!this.placeholder&&super.expanded}get selected(){return!this.placeholder&&super.selected}},wt=class extends ${isTreeRow=!0;get level(){return this.sourceLevel.depth}get position(){return this.rowIndex}get siblings(){return this.sourceLevel.totalCount??-1}get hasChildren(){return!this.placeholder&&this.grid.tree.rowHasChildren(this.data)}get treeExpanded(){return this.hasChildren&&this.grid.tree.isExpanded(this.key,this.level)}toggleTree=()=>{this.hasChildren&&this.grid.tree.toggle(this.key,this.level)}},Tt=100,Et=40,Dt=class{grid;constructor(e){this.grid=e}root=new Q(this,[]);levels=new Map([[this.root.key,this.root]]);recent=[];_query=0;get config(){return this.grid.props.def.dataSource}get enabled(){return!!this.config}get canGroup(){return!!this.config?.grouping&&!this.isTree}get isTree(){return this.enabled&&!!this.grid.props.def.treeData}get groupBy(){return this.canGroup?[...this.grid.groupColumns]:[]}get blockSize(){let e=this.config?.blockSize;return e&&e>0?Math.floor(e):this.grid.isPaginated?this.grid.pageSize:Tt}get maxBlocks(){let e=this.config?.maxBlocks;return e&&e>0?Math.floor(e):Et}get queryVersion(){return this._query}get totalCount(){return this.root.totalCount}get isLoading(){for(let e of this.levels.values())if(e.isLoading)return!0;return!1}get error(){for(let e of this.levels.values()){let t=e.failedBlocks();if(t.length>0)return e.errorAt(t[0])}}_segments;_byLevel;segments(){if(this._segments)return this._segments;let e=[],t=new Set,n=0,r=(t,r,i)=>{i<=0||(e.push({start:n,levelStart:r,length:i,level:t}),n+=i)},i=e=>{t.add(e.key);let n=0;for(let{rowIndex:t,child:a}of this.expansionsOf(e))t<n||t>=e.rowCount||(r(e,n,t-n+1),n=t+1,i(a));r(e,n,e.rowCount-n)};return i(this.root),this.levels.forEach((e,n)=>{t.has(n)||(e.dispose(),this.levels.delete(n))}),this._segments=e,e}byLevel(){if(this._byLevel)return this._byLevel;let e=new Map;return this.segments().forEach(t=>{let n=t.level.key,r=e.get(n);r?r.push(t):e.set(n,[t])}),this._byLevel=e}expansionsOf(e){if(this.isTree)return this.treeExpansionsOf(e);let t=this.grid.expandedGroupRow;if(!e.isGroupLevel||t.size===0)return[];let n=this.blockSize,r=this.groupBy[e.depth],i=[];return e.loadedBlocks().forEach(({index:a,rows:o})=>{o.forEach((o,s)=>{let c=[...e.path,o[r]];if(!t.has(St(c)))return;let l=a*n+s;i.push({rowIndex:l,child:this.levelFor(c,e,l)})})}),i.sort((e,t)=>e.rowIndex-t.rowIndex)}treeExpansionsOf(e){let{tree:t}=this.grid;if(!t.mayExpand)return[];let n=this.blockSize,r=[];return e.loadedBlocks().forEach(({index:i,rows:a})=>{a.forEach((a,o)=>{if(!t.rowHasChildren(a))return;let s=this.grid.getRowKey(a);if(!t.isExpanded(s,e.depth))return;let c=i*n+o;r.push({rowIndex:c,child:this.levelFor([...e.path,s],e,c)})})}),r.sort((e,t)=>e.rowIndex-t.rowIndex)}openTreeKeys(){if(!this.isTree)return[];this.segments();let e=[];return this.levels.forEach(t=>t.depth>0&&e.push(t.path[t.depth-1])),e}levelFor(e,t,n){let r=Q.keyOf(e),i=this.levels.get(r);return i?i.parentRowIndex=n:this.levels.set(r,i=new Q(this,e,t,n)),i}segmentAt(e){let t=this.segments(),n=0,r=t.length-1;for(;n<r;){let i=n+r+1>>>1;t[i].start<=e?n=i:r=i-1}let i=t[n];return i&&e>=i.start&&e<i.start+i.length?i:void 0}get rowCount(){if(!this.enabled)return 0;let e=this.segments(),t=e[e.length-1];return t?t.start+t.length:0}models=new Map;listLength=-1;rowList(){let{start:e}=this.visibleRange();return this.listLength=this.visibleLength(),bt(this.listLength,t=>this.rowModelAt(e+t))}flatRowList(e){let t=this.detailPositions();return t.length===0?e:bt(e.length+t.length,n=>{let r=kt(t,n);return t[r]===n?new P(this.grid,e[n-r-1]):e[n-r]})}rowOffsets(e){let{rowHeight:t}=this.grid,n=this.detailPositions(),r=[0];return n.forEach((t,n)=>r.push(r[n]+e[t].heightForOffset)),{offsets:bt(e.length,e=>{let i=kt(n,e);return(e-i)*t+r[i]}),totalHeight:(e.length-n.length)*t+r[n.length]}}detailPositions(){let e=this.grid.expandedDetailRows;if(!this.grid.props.def.rowDetail||e.size===0)return[];let{start:t,end:n}=this.visibleRange(),r=[];return this.eachLoadedLeafRow((i,a)=>{i>=t&&i<n&&e.has(this.grid.getRowKey(a))&&r.push(i)}),r.sort((e,t)=>e-t),r.map((e,n)=>e-t+n+1)}loadedRows(){let{start:e,end:t}=this.visibleRange(),n=[];return this.eachLoadedLeafRow((r,i)=>{r>=e&&r<t&&n.push({display:r,row:i})}),n.sort((e,t)=>e.display-t.display).map(e=>e.row)}eachLoadedLeafRow(e){let t=this.blockSize;this.byLevel().forEach((n,r)=>{let i=this.levels.get(r);!i||i.isGroupLevel||i.loadedBlocks().forEach(({index:r,rows:i})=>{i.forEach((i,a)=>{let o=Ot(n,r*t+a);o!==void 0&&e(o,i)})})})}rowModelAt(e){let t=this.segmentAt(e);if(!t)return new $(this.grid,this.root,e);let{level:n}=t,r=t.levelStart+(e-t.start),i=this.models.get(n.key);i||this.models.set(n.key,i=new Map);let a=i.get(r);return a||(a=n.isGroupLevel?new xt(this.grid,n,this.groupColumnAt(n.depth),r):this.isTree?new wt(this.grid,n,r):new $(this.grid,n,r),i.set(r,a)),a}groupColumnAt(e){return L.findOrThrow(this.grid.columns.value.leafs,t=>t.key===this.groupBy[e])}visibleLength(){let{start:e,end:t}=this.visibleRange();return Math.max(0,t-e)}visibleRange(){if(!this.grid.isPaginated)return{start:0,end:this.rowCount};let{pageSize:e}=this.grid,t=(this.grid.page-1)*e;return{start:t,end:Math.min(t+e,Math.max(this.rowCount,t))}}rowAt(e){let t=this.segmentAt(e);return t?.level.rowAt(t.levelStart+(e-t.start))}statusAt(e){let t=this.segmentAt(e);return t?t.level.statusAt(t.levelStart+(e-t.start)):`missing`}request(e,t){if(!this.enabled)return;let n=this.grid.isPaginated?this.visibleRange():{start:e,end:t},r={start:n.start,end:Math.max(n.end,n.start+1)},i=this.blockSize,a=!1;for(let e of this.segments()){let t=Math.max(r.start,e.start),n=Math.min(r.end,e.start+e.length);if(n<=t)continue;let o=Math.floor((e.levelStart+(t-e.start))/i),s=Math.floor((e.levelStart+(n-1-e.start))/i);for(let t=o;t<=s;t++)this.touch(e.level,t),!e.level.has(t)&&(e.level.load(t),a=!0)}this.evict(),a&&this.changed()}expansionChanged(){this._segments=void 0,this._byLevel=void 0}retry=()=>{let e=!1;this.levels.forEach(t=>{t.failedBlocks().length!==0&&(t.retry(),e=!0)}),e&&this.changed()};invalidate(){if(!this.enabled)return;this._query++;let e=this.root.totalCount;this.levels.forEach(e=>e.dispose()),this.root=new Q(this,[],void 0,0,e),this.levels=new Map([[this.root.key,this.root]]),this.recent=[],this.models.clear(),this.changed()}touch(e,t){this.bump(e.key,t);for(let t=e.parent,n=e.parentRowIndex;t;n=t.parentRowIndex,t=t.parent)this.bump(t.key,Math.floor(n/this.blockSize))}bump(e,t){let n=this.recent.findIndex(n=>n.level===e&&n.index===t);n!==-1&&this.recent.splice(n,1),this.recent.push({level:e,index:t})}evict(){for(;this.recent.length>this.maxBlocks;){let e=this.recent.shift();this.levels.get(e.level)?.drop(e.index)}let e=this.blockSize;this.models.forEach((t,n)=>{let r=this.levels.get(n);if(!r)return this.models.delete(n);t.forEach((n,i)=>{r.has(Math.floor(i/e))||t.delete(i)})})}changed(){this._segments=void 0,this._byLevel=void 0,this.listLength!==this.visibleLength()&&this.grid.rows.clear(),this.grid.flatRows.clear(),this.grid.notify()}};function Ot(e,t){for(let n of e)if(t>=n.levelStart&&t<n.levelStart+n.length)return n.start+(t-n.levelStart)}function kt(e,t){let n=0,r=e.length;for(;n<r;){let i=n+r>>>1;e[i]<t?n=i+1:r=i}return n}var At=7,jt=class{grid;constructor(e){this.grid=e}columns(e){let t=this.grid.columns.value.leafs.filter(e=>e.isData&&(e.isVisible||this.grid.groupColumns.has(e.key)));return e?e.map(e=>t.find(t=>t.key===e)).filter(e=>!!e):t}header(e){return e.header??String(e.key)}width(e){let t=e.inlineWidth??this.grid.DEFAULT_COLUMN_WIDTH_PX;return Math.min(80,Math.max(6,Math.round(t/At*10)/10))}value(e,t){let{exportValue:n}=e.def,r=n?n(t):t[e.key];return this.grid.edits.edits.length?this.grid.edits.valueOf(this.grid.getRowKey(t),e.key,r):r}aggregateOf(e,t){let n=e.aggregate;return n?ye(n,t.map(t=>this.value(e,t)),t):null}table(e={}){let t=this.columns(e.columns),n=e.groups??!0,r=[],i=(e,a,o)=>{for(let s of e)if(s.kind===`group`){let e=!s.expanded,c=s.allRows.map(e=>e.data);n&&r.push({kind:`group`,level:a,hidden:o,collapsed:e,values:t.map(e=>e.key===s.groupColumn.key?s.groupValue:this.aggregateOf(e,c))}),i(s.rows,n?a+1:a,o||n&&e)}else{if(s.placeholder)continue;let e=I(s)?s.level:a;r.push({kind:`data`,level:e,hidden:o,collapsed:!1,values:t.map(e=>this.value(e,s.data))})}};return this.grid.tree.isEager?this.walkTree(r,t):i(this.grid.rows.value,0,!1),(e.footer??this.grid.aggregation.hasFooter)&&r.push(this.footerRow(t)),{columns:t.map(e=>({key:e.key,header:this.header(e),width:this.width(e),format:e.def.exportFormat})),rows:r}}walkTree(e,t){let{tree:n}=this.grid,r=(i,a,o)=>{i.forEach(i=>{let s=i.children.length>0&&!n.isExpanded(this.grid.getRowKey(i.data),a);e.push({kind:`data`,level:a,hidden:o,collapsed:s,values:t.map(e=>this.value(e,i.data))}),r(i.children,a+1,o||s)})};r(n.nodes.value,0,!1)}footerRow(e){let t=this.grid.filteredData,n=this.grid.aggregation.footerLabel,r=e.find(e=>!e.aggregate);return{kind:`footer`,level:0,hidden:!1,collapsed:!1,values:e.map(e=>e.aggregate?this.aggregateOf(e,t):e===r&&(typeof n==`string`||typeof n==`number`)?n:null)}}fileName(e={}){let{title:t}=this.grid.props.def,n=typeof t==`string`&&t.trim()?t.trim():`export`;return e.fileName?.trim()||n}},Mt=class{grid;constructor(e){this.grid=e}get globalFilterValue(){return this.grid.globalFilterValue}get columnFilters(){return this.grid.columnFilters}get hasActiveFilters(){return this.grid.hasActiveFilters}get filterStats(){return this.grid.filterStats}get hasFilterableColumns(){return this.grid.columns.value.visibleLeafs.some(e=>!!e.filterable)}setGlobalFilter=e=>this.grid.setGlobalFilter(e);clearAllFilters=()=>this.grid.clearAllFilters()},Nt=class{grid;constructor(e){this.grid=e}get isPaginated(){return this.grid.isPaginated}get state(){return this.grid.paginationState}get pageSizeOptions(){return this.grid.pageSizeOptions}get page(){return this.grid.page}get pageSize(){return this.grid.pageSize}get totalPages(){return this.state?.totalPages??1}get totalItems(){return this.state?.totalItems??0}get canGoPrev(){return this.page>1}get canGoNext(){return this.page<this.totalPages}get startItem(){return(this.page-1)*this.pageSize+1}get endItem(){return Math.min(this.startItem+this.pageSize-1,this.totalItems)}changePage=e=>this.grid.changePage(e);changePageSize=e=>this.grid.changePageSize(e);firstPage=()=>{this.canGoPrev&&this.grid.changePage(1)};prevPage=()=>{this.canGoPrev&&this.grid.changePage(this.page-1)};nextPage=()=>{this.canGoNext&&this.grid.changePage(this.page+1)};lastPage=()=>{this.canGoNext&&this.grid.changePage(this.totalPages)};jumpToPage=e=>{let t=parseInt(e,10);isNaN(t)||this.grid.changePage(Math.max(1,Math.min(t,this.totalPages)))}},Pt=class extends F{node;level;position;siblings;treeParent;isTreeRow=!0;constructor(e,t,n,r,i,a,o){super(e,t.data,n),this.node=t,this.level=r,this.position=i,this.siblings=a,this.treeParent=o}children=[];get hasChildren(){return this.node.children.length>0}get treeExpanded(){return this.hasChildren&&this.grid.tree.isExpanded(this.key,this.level)}toggleTree=()=>{this.grid.tree.toggle(this.key,this.level)};_subtreeKeys=N(()=>{let e=[],t=n=>{n.forEach(n=>{e.push(this.grid.getRowKey(n.data)),t(n.children)})};return e.push(this.key),t(this.node.children),e});get subtreeKeys(){return this._subtreeKeys.value}get selected(){return this.grid.tree.cascades?this.subtreeKeys.every(e=>this.grid.selectedRows.has(e)):super.selected}get indeterminate(){return this.grid.tree.cascades?!this.selected&&this.subtreeKeys.some(e=>this.grid.selectedRows.has(e)):!1}toggleSelection=()=>{if(!this.grid.tree.cascades){this.grid.toggleRowSelection(this.key);return}this.grid.toggleRowsSelection(this.subtreeKeys)};get flatRows(){let e=super.flatRows;return this.children.length===0?e:[...e,...this.children.flatMap(e=>e.flatRows)]}};function Ft(e){return JSON.stringify(e)}var It=class{grid;constructor(e){this.grid=e}get config(){return this.grid.props.def.treeData}get enabled(){return!!this.config}get isEager(){return this.enabled&&!this.grid.source.enabled}get isLazy(){return this.enabled&&this.grid.source.enabled}rowHasChildren(e){let{hasChildren:t}=this.config??{};return typeof t==`function`?!!t(e):t?!!e[t]:!1}get columnKey(){if(this.enabled)return this.config?.column??this.grid.columns.value.userVisibleLeafs[0]?.key}get indent(){return this.config?.indent??4}get cascades(){return this.config?.selection===`cascade`&&!this.isLazy}get isFlat(){return!!(this.config?.getPath||this.config?.pathKey)}childrenOf(e){let{getChildren:t,childrenKey:n}=this.config??{};return t?t(e)??[]:n?e[n]??[]:[]}pathOf(e){let{getPath:t,pathKey:n}=this.config??{};return t?t(e)??[]:n?e[n]??[]:[]}buildNested(e){return e.map(e=>({data:e,children:this.buildNested(this.childrenOf(e))}))}buildFlat(e){let t=[],n=new Map;return[...e].sort((e,t)=>this.pathOf(e).length-this.pathOf(t).length).forEach(e=>{let r=this.pathOf(e),i={data:e,children:[]};n.set(Ft(r),i);let a;for(let e=r.length-1;e>0&&!a;e--)a=n.get(Ft(r.slice(0,e)));(a?a.children:t).push(i)}),t}prune(e){let t=[];return e.forEach(e=>{let n=this.prune(e.children);(n.length>0||this.grid.rowMatchesFilters(e.data))&&t.push({data:e.data,children:n})}),t}sortNodes(e){let{sortColumn:t,sortDirection:n}=this.grid;return t===void 0?e:L.sortBy(e,e=>e.data[t],n).map(e=>({data:e.data,children:this.sortNodes(e.children)}))}nodes=N(()=>{if(!this.isEager)return[];let e=this.isFlat?this.buildFlat(this.grid.data):this.buildNested(this.grid.data);return this.sortNodes(this.grid.hasRowFilters?this.prune(e):e)});allRows=N(()=>{let e=[],t=n=>{n.forEach(n=>{e.push(n.data),t(n.children)})};return t(this.nodes.value),e},()=>[this.nodes]);everyRow(){if(!this.isEager)return[];if(this.isFlat)return this.grid.data;let e=[],t=n=>{n.forEach(n=>{e.push(n),t(this.childrenOf(n))})};return t(this.grid.data),e}rowList(){let e=0,t=(n,r,i)=>n.map((a,o)=>{let s=new Pt(this.grid,a,e++,r,o,n.length,i);return s.treeExpanded&&(s.children=t(a.children,r+1,s)),s});return t(this.nodes.value,0)}_opened=new Set;_closed=new Set;_cachedKeys;keySet(e){return this._cachedKeys?.source!==e&&(this._cachedKeys={source:e,set:new Set(e)}),this._cachedKeys.set}defaultExpanded(e,t){let n=this.config?.defaultExpanded;return Array.isArray(n)?this.keySet(n).has(e):typeof n==`number`?t<n:n===!0}get mayExpand(){if(this.grid.props.expandedTreeKeys||this._opened.size>0)return!0;let e=this.config?.defaultExpanded;return Array.isArray(e)?e.length>0:e===!0||typeof e==`number`&&e>0}isExpanded(e,t){let n=this.grid.props.expandedTreeKeys;return n?this.keySet(n).has(e):this._opened.has(e)?!0:!this._closed.has(e)&&this.defaultExpanded(e,t)}expandedKeys(){if(this.isLazy)return this.grid.source.openTreeKeys();let e=[],t=(n,r)=>{n.forEach(n=>{if(n.children.length===0)return;let i=this.grid.getRowKey(n.data);this.isExpanded(i,r)&&(e.push(i),t(n.children,r+1))})};return t(this.nodes.value,0),e}toggle=(e,t)=>{let n=!this.isExpanded(e,t);n?(this._opened.add(e),this._closed.delete(e)):(this._closed.add(e),this._opened.delete(e)),this.grid.treeExpansionChanged(),this.grid.props.onExpandedTreeKeysChange?.(this.expandedKeys(),{reason:n?`expand`:`collapse`}),this.grid.notify()}},Lt=class e{grid;static DEFAULT_VISIBLE_ROWS_COUNT=10;static ROWS_TO_PRELOAD=20;constructor(e){this.grid=e}get showAll(){return this.grid.props.def.visibleRowsCount===`all`}get hasDetailRows(){return!!this.grid.props.def.rowDetail}get isEmpty(){return this.grid.source.enabled?this.grid.flatRows.value.length===0:this.grid.data.length===0}get visibleRowsCount(){if(this.showAll)return this.grid.flatRows.value.length;let t=this.grid.props.def.visibleRowsCount;return typeof t==`number`?t:e.DEFAULT_VISIBLE_ROWS_COUNT}get pageRows(){let t=this.grid.props.def.visibleRowsCount;return typeof t==`number`?t:e.DEFAULT_VISIBLE_ROWS_COUNT}get viewHeight(){if(this.showAll)return;let{rowHeight:e}=this.grid;return e*this.visibleRowsCount+e/5}get totalHeight(){return this.hasDetailRows?this.grid.rowOffsets.value.totalHeight:this.grid.flatRows.value.length*this.grid.rowHeight}get emptyHeight(){return this.viewHeight??this.grid.rowHeight*e.DEFAULT_VISIBLE_ROWS_COUNT}rowTop(e){return this.hasDetailRows?this.grid.rowOffsets.value.offsets[e]??0:e*this.grid.rowHeight}findStartIndex(e,t){let n=0,r=e.length-1;for(;n<r;){let i=n+r+1>>>1;e[i]<=t?n=i:r=i-1}return n}window(t){let n=this.grid.flatRows.value.length;if(this.showAll)return{startIndex:0,take:n,translateY:0,totalHeight:this.totalHeight,viewHeight:void 0};let{rowHeight:r}=this.grid,i=e.ROWS_TO_PRELOAD,{offsets:a}=this.grid.rowOffsets.value,o=this.hasDetailRows?Math.max(0,this.findStartIndex(a,t)-i):Math.max(0,Math.floor(t/r)-i),s=this.hasDetailRows?a[o]??0:o*r;return{startIndex:o,take:this.visibleRowsCount+i*2,translateY:s,totalHeight:this.totalHeight,viewHeight:this.viewHeight}}},Rt={},zt=class{props;constructor(e,t){this.props=e,t&&this.listeners.add(t)}_version=0;listeners=new Set;subscribe=e=>(this.listeners.add(e),()=>this.listeners.delete(e));getSnapshot=()=>this._version;notify=()=>{this._version++,this.listeners.forEach(e=>e())};setProps(e){let t=this.props;t!==e&&(this.props=e,t.def!==e.def&&this.sourceColumns.clear(),(t.data!==e.data||t.def!==e.def||t.globalFilterValue!==e.globalFilterValue||t.columnFilters!==e.columnFilters||t.filters!==e.filters||t.expandedRowKeys!==e.expandedRowKeys||t.expandedTreeKeys!==e.expandedTreeKeys||t.page!==e.page||t.pageSize!==e.pageSize)&&this.rows.clear(),(t.data!==e.data||t.def!==e.def||t.globalFilterValue!==e.globalFilterValue||t.columnFilters!==e.columnFilters||t.filters!==e.filters)&&this.tree.nodes.clear())}get data(){return this.props.data??[]}get loadedRows(){return this.source.enabled?this.source.loadedRows():this.tree.isEager?this.tree.allRows.value:this.data}get componentName(){return this.props.component||`datagrid`}_identifier=`datagrid`;get identifier(){return this._identifier}setIdentifier(e){this._identifier=e}get titleId(){return`${this._identifier}-title`}get resizerStyle(){return this.props.def.resizerStyle??`visible`}get resizeMode(){return this.props.def.resizeMode??`smooth`}sourceColumns=N(()=>{let{def:e}=this.props,t=[];if(this.groupColumns.size>0&&t.push(new X({key:B},this)),t.push(...e.columns.map(e=>new X(e,this))),e.rowSelection){let n=typeof e.rowSelection==`object`&&e.rowSelection.pinned?`START`:void 0;t.unshift(new X({key:z,pin:n,width:50,align:`center`,Cell:ht},this))}if(e.showRowNumber){let n,r=70;typeof e.showRowNumber==`object`&&(e.showRowNumber.pinned&&(n=`START`),r=e.showRowNumber.width??70),t.unshift(new X({key:R,pin:n,width:r,align:`end`},this))}if(e.rowDetail){let n=e.rowDetail.pinned?`START`:void 0,r=e.rowDetail.expandColumnWidth??50,i=e.rowDetail.expandColumnHeader??``;t.unshift(new X({key:V,header:i,pin:n,width:r,align:`center`,Cell:mt},this))}return t});columns=N(()=>{let e=this.sourceColumns.value.map(e=>e.getPinnedColumn(`START`)).filter(e=>!!e),t=this.sourceColumns.value.map(e=>e.getPinnedColumn()).filter(e=>!!e),n=this.sourceColumns.value.map(e=>e.getPinnedColumn(`END`)).filter(e=>!!e),r=[...e,...t,...n].flatMap(e=>e.flatColumns),i=r.filter(e=>e.isLeaf),a=r.filter(e=>e.isLeaf&&e.isVisible);return{start:e,middle:t,end:n,flat:r,leafs:i,visibleLeafs:a,userVisibleLeafs:a.filter(e=>![R,z,B,V].includes(e.key)),maxDeath:L.maxBy(r,e=>e.death)+1}},()=>[this.sourceColumns]);headerRows=N(()=>L.sortBy(L.groupBy(this.columns.value.flat,e=>e.death),e=>e.key).map(e=>{let t=L.toRecord(L.groupBy(e.values,e=>e.pin??`NO_PIN`),e=>[e.key,e.values]);return[...t.START?.filter(e=>e.isVisible)??[],...t.NO_PIN?.filter(e=>e.isVisible)??[],...t.END?.filter(e=>e.isVisible)??[]]}),()=>[this.columns]);gridTemplateColumns=N(()=>{let{visibleLeafs:e}=this.columns.value,t=L.sumBy(e,e=>+(e.pin===`END`)),n=e.length-t;return`${n>0?`repeat(${n}, max-content)`:``} ${t>0?`repeat(${t}, max-content)`:``}`.trim()},()=>[this.columns]);_globalFilterValue=``;get globalFilterValue(){return this.props.globalFilterValue??this._globalFilterValue}_columnFilters={};get columnFilters(){return this.props.columnFilters??this._columnFilters}globalFilterColumns=N(()=>this.props.def.globalFilterKeys??this.columns.value.leafs.filter(e=>e.key!==`row-number-cell`&&e.key!==`row-selection-cell`&&e.key!==`grouping-cell`&&e.key!==`row-detail-cell`).map(e=>e.key),()=>[this.columns]);rowMatchesFilters(e){let{filters:t}=this.props;return t&&!t.every(t=>t(e))||this.props.def.globalFilter&&!this.matchesGlobalFilter(e)?!1:this.matchesColumnFilters(e)}get hasRowFilters(){return(this.props.filters?.length??0)>0||!!this.props.def.globalFilter&&this.globalFilterValue.trim()!==``||Object.keys(this.columnFilters).length>0}matchesGlobalFilter(e){let t=this.globalFilterValue.trim();return!t||this.globalFilterColumns.value.some(n=>{let r=e[n];return r!=null&&pt(t,String(r))})}matchesColumnFilters(e){let t=this.columnFilters;return Object.keys(t).every(n=>{let r=t[n];return!r||this.matchesFilter(e[n],r)})}matchesFilter(e,t){switch(t.type){case`text`:return!t.value.trim()||e!=null&&pt(t.value,String(e));case`number`:{if(e==null)return!1;let n=typeof e==`number`?e:parseFloat(String(e));if(isNaN(n))return!1;switch(t.operator){case`eq`:return n===t.value;case`ne`:return n!==t.value;case`gt`:return n>t.value;case`gte`:return n>=t.value;case`lt`:return n<t.value;case`lte`:return n<=t.value;case`between`:return t.valueTo===void 0?n>=t.value:n>=t.value&&n<=t.valueTo;default:return!0}}case`multiselect`:return t.values.length===0||t.values.includes(e);default:return!0}}get filteredData(){return this.source.enabled||this.isPaginated?this.data:this.tree.isEager?this.tree.allRows.value:this.hasRowFilters?this.data.filter(e=>this.rowMatchesFilters(e)):this.data}fireServerStateChange(e,t){this.props.onServerStateChange?.({page:t?.page??this.page,pageSize:t?.pageSize??this.pageSize,sortColumn:`sortColumn`in(t??{})?t.sortColumn:this._sortColumn,sortDirection:`sortDirection`in(t??{})?t.sortDirection:this._sortDirection,columnFilters:t?.columnFilters??this.columnFilters,globalFilterValue:t?.globalFilterValue??this.globalFilterValue},{reason:e})}firePaginationChange(e,t,n){this.props.onPaginationChange?.({page:e,pageSize:t},{reason:n}),this.props.onPageChange?.(e,t)}resetToFirstPage(e){return!this.isPaginated||this.page===1?this.page:(this._page=1,this.firePaginationChange(1,this.pageSize,e),1)}setGlobalFilter=e=>{let t=e===``?`clear`:`filter`;this._globalFilterValue=e,this.props.onGlobalFilterChange?.(e,{reason:t});let n=this.resetToFirstPage(t);this.fireServerStateChange(t,{globalFilterValue:e,page:n}),this.source.invalidate(),this.tree.nodes.clear(),this.rows.clear(),this.notify()};setColumnFilter=(e,t)=>{let n={...this.columnFilters},r=t===void 0?`clear`:`filter`;t===void 0?delete n[e]:n[e]=t,this._columnFilters=n,this.props.onColumnFiltersChange?.(n,{reason:r});let i=this.resetToFirstPage(r);this.fireServerStateChange(r,{columnFilters:n,page:i}),this.source.invalidate(),this.tree.nodes.clear(),this.rows.clear(),this.notify()};clearColumnFilters=()=>{this._columnFilters={},this.props.onColumnFiltersChange?.({},{reason:`clear`}),this.fireServerStateChange(`clear`,{columnFilters:{}}),this.source.invalidate(),this.tree.nodes.clear(),this.rows.clear(),this.notify()};clearAllFilters=()=>{this.setGlobalFilter(``),this.clearColumnFilters()};getColumnUniqueValues=e=>{let t=new Set;return(this.tree.isEager?this.tree.everyRow():this.data).forEach(n=>{let r=n[e];r!==void 0&&t.add(r)}),Array.from(t).sort((e,t)=>e===null?1:t===null?-1:typeof e==`string`&&typeof t==`string`?e.localeCompare(t):typeof e==`number`&&typeof t==`number`?e-t:String(e).localeCompare(String(t)))};get hasActiveFilters(){return this.globalFilterValue.trim()!==``||Object.keys(this.columnFilters).length>0}get filterStats(){if(this.source.enabled||this.isPaginated){let e=this.totalRowCount;return{filtered:e,total:e}}return{filtered:this.filteredData.length,total:this.tree.isEager?this.tree.everyRow().length:this.data.length}}get totalRowCount(){return this.source.enabled?this.source.rowCount:this.tree.isEager?this.tree.everyRow().length:this.props.def.pagination?.totalCount??this.data.length}rows=N(()=>{if(this.source.enabled)return this.source.rowList();if(this.tree.isEager)return this.tree.rowList();let e=this.filteredData;if(this._sortColumn&&!this.isPaginated&&(e=L.sortBy(e,e=>e[this._sortColumn],this._sortDirection)),this.groupColumns.size>0){let t=(e,n,r)=>{let i=n.values().next().value;n.delete(i);let a=L.findOrThrow(this.columns.value.leafs,e=>e.key===i);return this._sortColumn===`grouping-cell`&&(e=L.sortBy(e,e=>e[i],this._sortDirection)),L.groupBy(e,e=>e[i]).map(e=>{let i;i=n.size>0?t(e.values,new Set(n),r+1):e.values.map((e,t)=>new F(this,e,r+1+t));let o=new U(this,a,i,r,e.key);return r+=1,o.expanded&&(r+=i.length),o})};return t(e,new Set(this.groupColumns),0)}return e.map((e,t)=>new F(this,e,t))},()=>[this.columns]);groupingSpan=N(()=>{let{visibleLeafs:e}=this.columns.value,t=e.findIndex(e=>e.isGrouping);if(t===-1)return[];let n=(n,r)=>r>t&&n.pin===e[t].pin&&!n.isRowNumber&&!n.isRowSelection&&!n.isRowDetail,r=e.findIndex((e,t)=>n(e,t)&&!!e.aggregate),i=r===-1?e.length:r;return[e[t],...e.filter((e,t)=>t<i&&n(e,t))]},()=>[this.columns]);flatRows=N(()=>this.source.enabled?this.source.flatRowList(this.rows.value):this.rows.value.flatMap(e=>e.flatRows),()=>[this.rows]);get rowHeight(){return this.props.def.rowHeight??this.DEFAULT_ROW_HEIGHT_PX}sizes=N(()=>{let e=this.columns.value.flat.reduce((e,t)=>{let{inlineWidth:n}=t;return typeof n==`number`&&(e[t.widthVarName]=`${t.inlineWidth}px`),t.pin===`START`&&(e[t.inlineStartVarName]=`${t.startOffset}px`),t.pin===`END`&&(e[t.inlineEndVarName]=`${t.endOffset}px`),e},{});e[this.rowHeightVarName]=`${this.rowHeight}px`,e[this.inlineStartEdgeVarName]=`${this.inlineStartEdge}px`,this._containerWidth>0&&(e[this.viewportWidthVarName]=`${this._containerWidth}px`);let{visibleLeafs:t}=this.columns.value,n=t.find(e=>e.key===B);if(n){let t=L.sumBy(this.groupingSpan.value,e=>e.inlineWidth??0);e[n.groupColumnWidthVarName]=`${t}px`}return this.groupColumns.forEach(n=>{let r=L.findOrThrow(this.columns.value.leafs,e=>e.key===n);e[r.groupColumnWidthVarName]=`${L.sumBy(t,e=>e.pin===r.pin?e.inlineWidth??0:0)}px`}),e},()=>[this.columns,this.flexWidths]);_containerWidth=0;get containerWidth(){return this._containerWidth}_sizingElement=null;get sizingElement(){return this._sizingElement}setSizingElement=e=>{this._sizingElement=e};get isRtl(){return t.u(this._sizingElement)}setContainerWidth=e=>{this._containerWidth!==e&&(this._containerWidth=e,this.flexWidths.clear(),this.notify())};flexWidths=N(()=>{let e=this._containerWidth;if(e<=0)return{};let t=this.columns.value.visibleLeafs,n=e=>!e.isFlexible||this.columnWidths.has(e.key),r=L.sumBy(t.filter(n),e=>e.baseWidth),i=t.filter(e=>!n(e)),a=L.sumBy(i,e=>e.baseWidth),o=e-r;if(o<=a)return L.toRecord(i,e=>[e.key,e.baseWidth]);let s={},c=0;return i.forEach((e,t)=>{if(t===i.length-1)s[e.key]=o-c;else{let t=Math.floor(e.baseWidth/a*o);s[e.key]=t,c+=t}}),s},()=>[this.columns]);getFlexWidth(e){return this.flexWidths.value[e]}DEFAULT_ROW_HEIGHT_PX=48;MIN_COLUMN_WIDTH_PX=48;DEFAULT_COLUMN_WIDTH_PX=200;expandedGroupRow=new Set;_expandedDetailRows=new Set;get expandedDetailRows(){return this.props.expandedRowKeys?new Set(this.props.expandedRowKeys):this._expandedDetailRows}_revealDetailKey=null;takeDetailReveal(e){return this._revealDetailKey===e&&(this._revealDetailKey=null,!0)}toggleDetailRow=e=>{let t=new Set(this.expandedDetailRows);t.has(e)?t.delete(e):t.add(e);let n=t.has(e);this._revealDetailKey=n&&this.props.def.rowDetail?.scrollIntoView!==!1?e:null,this._expandedDetailRows=t,this.props.onExpandedRowKeysChange?.(Array.from(t),{reason:n?`expand`:`collapse`}),this.rows.clear(),this.notify()};_page=1;_pageSize;get page(){return this.props.page??this._page}get pageSize(){if(this.props.pageSize!==void 0)return this.props.pageSize;if(this._pageSize!==void 0)return this._pageSize;let e=this.props.def.pagination;if(e?.pageSize)return e.pageSize;let t=this.props.def.visibleRowsCount;return typeof t==`number`?t:10}get pageSizeOptions(){return this.props.def.pagination?.pageSizeOptions}get isPaginated(){return!!this.props.def.pagination}get paginationState(){let e=this.props.def.pagination;if(!e)return;let t=e.totalCount??(this.source.enabled?this.source.rowCount:0),n=this.pageSize;return{page:this.page,pageSize:n,totalItems:t,totalPages:Math.max(1,Math.ceil(t/n))}}changePage=e=>{let t=this.paginationState;if(!t)return;let n=Math.max(1,Math.min(e,t.totalPages));n!==this.page&&(this._page=n,this.firePaginationChange(n,t.pageSize,`page`),this.fireServerStateChange(`page`,{page:n}),this.rows.clear(),this.notify())};changePageSize=e=>{e!==this.pageSize&&(this._pageSize=e,this._page=1,this.props.onPageSizeChange?.(e),this.firePaginationChange(1,e,`page-size`),this.fireServerStateChange(`page-size`,{page:1,pageSize:e}),this.source.invalidate(),this.tree.nodes.clear(),this.rows.clear(),this.notify())};rowOffsets=N(()=>{if(this.source.enabled)return this.source.rowOffsets(this.flatRows.value);let e=[],t=0;for(let n of this.flatRows.value)e.push(t),t+=n instanceof P?n.heightForOffset:this.rowHeight;return{offsets:e,totalHeight:t}},()=>[this.flatRows]);viewport=new Lt(this);columnVisibility=new yt(this);filter=new Mt(this);pagination=new Nt(this);aggregation=new be(this);exporter=new jt(this);source=new Dt(this);tree=new It(this);edits=new se(this);refresh=()=>{this.edits.clearEdits(),this.source.invalidate()};get exportConfig(){let e=this.props.def.export;if(e)return typeof e==`object`?e:Rt}exportCsv=async(e={})=>{let{downloadCsv:t}=await Promise.resolve().then(()=>require("../gridExport.cjs"));t(this.exporter.table(e),this.exporter.fileName(e),e)};exportXlsx=async(e={})=>{let{downloadXlsx:t}=await Promise.resolve().then(()=>require("../gridExport.cjs"));t(this.exporter.table(e),this.exporter.fileName(e),e)};get hasVisibleColumns(){return this.columns.value.userVisibleLeafs.length>0}get isEmpty(){return this.source.enabled?this.flatRows.value.length===0:this.data.length===0}get allRowsSelected(){let e=this.loadedRows.length;return e>0&&this.selectedRows.size===e}get someRowsSelected(){return this.selectedRows.size>0}_selectionAnnounced=!1;get selectionAnnouncement(){if(!this._selectionAnnounced)return``;let e=this.selectedRows.size;return e===0?`No rows selected`:`${e} of ${this.totalRowCount} rows selected`}get groupedColumns(){return Array.from(this.groupColumns,e=>L.findOrThrow(this.columns.value.leafs,t=>t.key===e))}selectedRows=new Set;get inlineStartEdge(){return L.sumBy(this.columns.value.start,e=>e.inlineWidth??0)}get inlineEndEdge(){return L.sumBy(this.columns.value.end,e=>e.inlineWidth??0)}inlineStartEdgeVarName=`--inline-start-edge`;rowHeightVarName=`--row-height`;viewportWidthVarName=`--viewport-width`;_idMap=new WeakMap;_autoId=0;_idFactory=typeof crypto<`u`&&typeof crypto.randomUUID==`function`?()=>crypto.randomUUID():()=>`auto-row-${this._autoId++}`;getRowKey(e){let{rowKey:t}=this.props.def;return t?typeof t==`function`?t(e):e[t]:(this._idMap.has(e)||this._idMap.set(e,this._idFactory()),this._idMap.get(e))}setSortColumn=(e,...t)=>{if(t.length>0)[this._sortDirection]=t,this._sortColumn=this._sortDirection?e:void 0;else{let{_sortColumn:t,_sortDirection:n}=this;this._sortColumn=t===e&&n===`DESC`?void 0:e,this._sortDirection=t===e&&n===`ASC`?`DESC`:`ASC`}let n=this._sortColumn!==void 0&&this._sortDirection!==void 0?{columnKey:this._sortColumn,direction:this._sortDirection}:void 0;this.props.onSortingChange?.(n,{reason:n?`sort`:`clear`}),this.props.onSortChange?.(this._sortColumn,this._sortDirection);let r=this.resetToFirstPage(`sort`);this.fireServerStateChange(`sort`,{sortColumn:this._sortColumn,sortDirection:this._sortDirection,page:r}),this.source.invalidate(),this.tree.nodes.clear(),this.rows.clear(),this.notify()};pinColumn=(e,t)=>{let n=gt(t),r=L.findOrThrow(this.columns.value.flat,t=>t.uniqueKey===e);r.pin!==n&&r.pinColumn(n),this.columns.clear(),this.notify()};toggleGrouping=e=>{this.groupColumns=new Set(this.groupColumns),this.hiddenColumns=new Set(this.hiddenColumns),this.groupColumns.has(e)?(this.groupColumns.delete(e),this.hiddenColumns.delete(e)):(this.groupColumns.add(e),this.hiddenColumns.add(e)),this.collapseGroups(),this.sourceColumns.clear(),this.notify()};unGroupAll=()=>{let e=new Set(this.groupColumns);this.groupColumns=new Set,this.hiddenColumns=new Set(Array.from(this.hiddenColumns).filter(t=>!e.has(t))),this.collapseGroups(),this.sourceColumns.clear(),this.notify()};collapseGroups(){this.expandedGroupRow=new Set,this._collapsedGroupRow=new Set,this.source.expansionChanged(),this.source.invalidate()}_expansion=0;get expansionVersion(){return this._expansion}isGroupExpanded(e,t){if(this.expandedGroupRow.has(e))return!0;if(this._collapsedGroupRow.has(e))return!1;let n=this.props.def.groupDefaultExpanded;return typeof n==`number`?t<n:n===!0}_collapsedGroupRow=new Set;toggleGroupRow=(e,t=this.expandedGroupRow.has(e))=>{this._expansion++,this.expandedGroupRow=new Set(this.expandedGroupRow),this._collapsedGroupRow=new Set(this._collapsedGroupRow),t?(this.expandedGroupRow.delete(e),this._collapsedGroupRow.add(e)):(this.expandedGroupRow.add(e),this._collapsedGroupRow.delete(e)),this.source.expansionChanged(),this.rows.clear(),this.notify()};treeExpansionChanged(){this._expansion++,this.source.expansionChanged(),this.rows.clear()}toggleRowSelection=e=>{this.toggleRowsSelection([e])};toggleRowsSelection=(e,t=!1)=>{this.selectedRows=new Set(this.selectedRows),this._selectionAnnounced=!0;let n=e.every(e=>this.selectedRows.has(e));n?e.forEach(e=>this.selectedRows.delete(e)):e.forEach(e=>this.selectedRows.add(e)),this.flatRows.clear(),this.notify();let r=Array.from(this.selectedRows),i=t?n?`clear`:`select-all`:n?`deselect`:`select`;this.props.onSelectedRowKeysChange?.(r,{reason:i}),this.props.onSelectionChange?.({action:n?`deselect`:`select`,affectedRowKeys:e,selectedRowKeys:r,isAllSelected:this.selectedRows.size===this.loadedRows.length})};toggleSelectAllRows=()=>{this.toggleRowsSelection(this.loadedRows.map(e=>this.getRowKey(e)),!0)};toggleColumnVisibility=e=>{this.hiddenColumns=new Set(this.hiddenColumns),this.hiddenColumns.has(e)?this.hiddenColumns.delete(e):this.hiddenColumns.add(e),this.columns.clear(),this.notify()};setWidth=(e,t)=>{this.columnWidths.set(e,t)};_groupColumns;get groupColumns(){return this._groupColumns??=new Set(this.props.def.groupBy??[])}set groupColumns(e){this._groupColumns=e}_hiddenColumns;get hiddenColumns(){return this._hiddenColumns??=new Set(this.props.def.groupBy??[])}set hiddenColumns(e){this._hiddenColumns=e}columnWidths=new Map;_sortColumn;get sortColumn(){return this._sortColumn}_sortDirection=`ASC`;get sortDirection(){return this._sortDirection}};function Bt(e){let[t]=(0,v.useState)(()=>new zt(e)),n=a.t(`datagrid`);return t.setProps(e),t.setIdentifier(n),(0,b.useSyncExternalStore)(t.subscribe,t.getSnapshot,t.getSnapshot),t}function Vt(e,t){let n=Bt(e),i=(0,v.useRef)(null);(0,v.useImperativeHandle)(t,()=>({get element(){return i.current},exportCsv:n.exportCsv,exportXlsx:n.exportXlsx,refresh:n.refresh,clearEdits:n.edits.clearEdits}),[n]);let{component:a,data:o,def:s,loading:c,filters:l,globalFilterValue:u,columnFilters:d,expandedRowKeys:f,expandedTreeKeys:p,page:m,pageSize:h,onSelectedRowKeysChange:_,onSelectionChange:b,onGlobalFilterChange:x,onColumnFiltersChange:S,onExpandedRowKeysChange:C,onExpandedTreeKeysChange:w,onCellEditsChange:T,onPaginationChange:E,onPageChange:D,onPageSizeChange:O,onSortingChange:k,onSortChange:A,onServerStateChange:j,style:te,...ne}=e;return(0,v.useLayoutEffect)(()=>{let e=i.current;if(e)return n.setSizingElement(e),()=>n.setSizingElement(null)},[n]),(0,y.jsxs)(r.default,{ref:i,component:n.componentName,...ne,style:{...n.sizes.value,...te},children:[n.props.def.topBar&&(0,y.jsx)(dt,{grid:n}),(0,y.jsx)(it,{grid:n}),(0,y.jsx)(rt,{grid:n}),n.props.def.bottomBar&&(0,y.jsx)(ee,{grid:n}),(0,y.jsx)(g.default,{props:{role:`status`},children:n.selectionAnnouncement})]})}var Ht=(0,v.forwardRef)(Vt);Vt.displayName=`DataGrid`,exports.default=Ht;
@@ -1,2 +1,4 @@
1
- import { DataGridProps } from './dataGrid/contracts/dataGridContract';
2
- export default function DataGrid<TRow extends object>(props: DataGridProps<TRow>): import("react").JSX.Element;
1
+ import { RefAttributes } from 'react';
2
+ import { DataGridHandle, DataGridProps } from './dataGrid/contracts/dataGridContract';
3
+ declare const DataGrid: <TRow extends object>(props: DataGridProps<TRow> & RefAttributes<DataGridHandle>) => React.ReactElement | null;
4
+ export default DataGrid;