@economic/taco 1.40.3 → 2.0.0-alpha.173

Sign up to get free protection for your applications and to get access to all the features.
Files changed (435) hide show
  1. package/dist/components/Icon/components/HeightTall.d.ts +3 -0
  2. package/dist/components/Icon/components/index.d.ts +1 -1
  3. package/dist/components/IconButton/IconButton.d.ts +3 -3
  4. package/dist/components/Input/Input.d.ts +1 -1
  5. package/dist/components/Menu/Menu.d.ts +2 -0
  6. package/dist/components/Menu/components/Item.d.ts +6 -1
  7. package/dist/components/Menu/components/Link.d.ts +1 -1
  8. package/dist/components/Menu/components/SubMenu.d.ts +8 -0
  9. package/dist/components/Navigation2/components/Link.d.ts +1 -1
  10. package/dist/components/Popover/Popover.d.ts +3 -0
  11. package/dist/components/Provider/Localization.d.ts +55 -20
  12. package/dist/components/RadioGroup/util.d.ts +1 -0
  13. package/dist/components/SearchInput/SearchInput.d.ts +2 -0
  14. package/dist/components/SearchInput2/SearchInput2.d.ts +23 -0
  15. package/dist/components/Select2/components/Option.d.ts +1 -1
  16. package/dist/components/Select2/components/Search.d.ts +1 -1
  17. package/dist/components/Table3/Table3.d.ts +11 -0
  18. package/dist/components/Table3/components/columns/cell/Cell.d.ts +6 -0
  19. package/dist/components/Table3/components/columns/cell/DisplayCell.d.ts +22 -0
  20. package/dist/components/Table3/components/columns/cell/EditingCell.d.ts +7 -0
  21. package/dist/components/Table3/components/columns/footer/Footer.d.ts +14 -0
  22. package/dist/components/Table3/components/columns/footer/Summary.d.ts +7 -0
  23. package/dist/components/Table3/components/columns/header/Goto.d.ts +6 -0
  24. package/dist/components/Table3/components/columns/header/Header.d.ts +27 -0
  25. package/dist/components/Table3/components/columns/header/Menu.d.ts +16 -0
  26. package/dist/components/Table3/components/columns/header/Resizer.d.ts +7 -0
  27. package/dist/components/Table3/components/columns/header/SortIndicator.d.ts +12 -0
  28. package/dist/components/Table3/components/columns/internal/Actions.d.ts +4 -0
  29. package/dist/components/Table3/components/columns/internal/Drag.d.ts +4 -0
  30. package/dist/components/Table3/components/columns/internal/EditingActions.d.ts +8 -0
  31. package/dist/components/Table3/components/columns/internal/Expansion.d.ts +4 -0
  32. package/dist/components/Table3/components/columns/internal/Selection.d.ts +4 -0
  33. package/dist/components/Table3/components/columns/styles.d.ts +4 -0
  34. package/dist/components/Table3/components/rows/ExpandedRow.d.ts +8 -0
  35. package/dist/components/Table3/components/rows/Row.d.ts +21 -0
  36. package/dist/components/Table3/components/rows/RowContext.d.ts +9 -0
  37. package/dist/components/Table3/components/rows/SkeletonRow.d.ts +10 -0
  38. package/dist/components/Table3/components/rows/styles.d.ts +6 -0
  39. package/dist/components/{Table2/components/ColumnSettingsButton.d.ts → Table3/components/toolbar/ColumnSettings.d.ts} +1 -1
  40. package/dist/components/Table3/components/toolbar/EditButton.d.ts +7 -0
  41. package/dist/components/Table3/components/toolbar/Filter/filters/Filters.d.ts +7 -0
  42. package/dist/components/Table3/components/toolbar/Filter/filters/components/Comparator.d.ts +11 -0
  43. package/dist/components/Table3/components/toolbar/Filter/filters/components/Filter.d.ts +13 -0
  44. package/dist/components/Table3/components/toolbar/Filter/filters/components/FilterColumn.d.ts +8 -0
  45. package/dist/components/Table3/components/toolbar/Filter/filters/components/FilterComparator.d.ts +7 -0
  46. package/dist/components/Table3/components/toolbar/Filter/filters/components/FilterValue.d.ts +10 -0
  47. package/dist/components/Table3/components/toolbar/Filter/filters/components/Placeholder.d.ts +11 -0
  48. package/dist/components/Table3/components/toolbar/FontSize.d.ts +7 -0
  49. package/dist/components/Table3/components/toolbar/PrintButton/PrintButton.d.ts +8 -0
  50. package/dist/components/Table3/components/toolbar/PrintButton/PrintIFrame.d.ts +8 -0
  51. package/dist/components/Table3/components/toolbar/PrintButton/hooks/useParentStylesheets.d.ts +1 -0
  52. package/dist/components/Table3/components/toolbar/RowHeight.d.ts +7 -0
  53. package/dist/components/Table3/components/toolbar/Search.d.ts +8 -0
  54. package/dist/components/Table3/components/toolbar/Toolbar.d.ts +12 -0
  55. package/dist/components/Table3/hooks/features/useColumnFreezing.d.ts +12 -0
  56. package/dist/components/Table3/hooks/features/useColumnOrdering.d.ts +6 -0
  57. package/dist/components/Table3/hooks/features/useCurrentRow.d.ts +9 -0
  58. package/dist/components/Table3/hooks/features/useEditing.d.ts +31 -0
  59. package/dist/components/Table3/hooks/features/useFontSize.d.ts +7 -0
  60. package/dist/components/Table3/hooks/features/usePauseHoverState.d.ts +6 -0
  61. package/dist/components/Table3/hooks/features/usePrinting.d.ts +5 -0
  62. package/dist/components/Table3/hooks/features/useRowClick.d.ts +7 -0
  63. package/dist/components/Table3/hooks/features/useRowDrag.d.ts +6 -0
  64. package/dist/components/Table3/hooks/features/useRowDrop.d.ts +5 -0
  65. package/dist/components/Table3/hooks/features/useRowGoto.d.ts +5 -0
  66. package/dist/components/Table3/hooks/features/useRowHeight.d.ts +7 -0
  67. package/dist/components/Table3/hooks/features/useRowSelection.d.ts +6 -0
  68. package/dist/components/Table3/hooks/features/useSearch.d.ts +16 -0
  69. package/dist/components/Table3/hooks/listeners/useCurrentRowListener.d.ts +2 -0
  70. package/dist/components/Table3/hooks/listeners/useEditingStateListener.d.ts +2 -0
  71. package/dist/components/Table3/hooks/listeners/useFilteringStateListener.d.ts +3 -0
  72. package/dist/components/Table3/hooks/listeners/useRowSelectionListener.d.ts +3 -0
  73. package/dist/components/Table3/hooks/listeners/useSearchStateListener.d.ts +3 -0
  74. package/dist/components/Table3/hooks/listeners/useServerLoadingListener.d.ts +3 -0
  75. package/dist/components/Table3/hooks/listeners/useSettingsStateListener.d.ts +3 -0
  76. package/dist/components/Table3/hooks/listeners/useShortcutsListener.d.ts +3 -0
  77. package/dist/components/Table3/hooks/listeners/useSortingStateListener.d.ts +3 -0
  78. package/dist/components/Table3/hooks/useConvertChildrenToColumns.d.ts +9 -0
  79. package/dist/components/Table3/hooks/useCssGrid.d.ts +5 -0
  80. package/dist/components/Table3/hooks/useCssVars.d.ts +6 -0
  81. package/dist/components/Table3/hooks/useTable.d.ts +63 -0
  82. package/dist/components/Table3/hooks/useTableData.d.ts +23 -0
  83. package/dist/components/Table3/hooks/useTablePreset.d.ts +2 -0
  84. package/dist/components/Table3/hooks/useTableRefInstanceSetup.d.ts +4 -0
  85. package/dist/components/Table3/strategies/index.d.ts +4 -0
  86. package/dist/components/Table3/strategies/virtualised.d.ts +4 -0
  87. package/dist/components/Table3/types.d.ts +311 -0
  88. package/dist/components/Table3/util/columns.d.ts +7 -0
  89. package/dist/components/{Table2/components/column/utils.d.ts → Table3/util/editing.d.ts} +2 -1
  90. package/dist/components/Table3/util/filtering.d.ts +3 -0
  91. package/dist/components/Tabs/Tabs.d.ts +2 -0
  92. package/dist/components/Tag/Tag.d.ts +1 -1
  93. package/dist/esm/index.css +130 -2
  94. package/dist/esm/node_modules/babel-plugin-transform-async-to-promises/helpers.mjs.js +2 -2
  95. package/dist/esm/node_modules/babel-plugin-transform-async-to-promises/helpers.mjs.js.map +1 -1
  96. package/dist/esm/packages/taco/src/components/Alert/Alert.js +1 -0
  97. package/dist/esm/packages/taco/src/components/Alert/Alert.js.map +1 -1
  98. package/dist/esm/packages/taco/src/components/Checkbox/Checkbox.js +3 -1
  99. package/dist/esm/packages/taco/src/components/Checkbox/Checkbox.js.map +1 -1
  100. package/dist/esm/packages/taco/src/components/Datepicker/useDatepicker.js +4 -1
  101. package/dist/esm/packages/taco/src/components/Datepicker/useDatepicker.js.map +1 -1
  102. package/dist/esm/packages/taco/src/components/Drawer/components/Content.js +1 -1
  103. package/dist/esm/packages/taco/src/components/Icon/components/FontSize.js +19 -0
  104. package/dist/esm/packages/taco/src/components/Icon/components/FontSize.js.map +1 -0
  105. package/dist/esm/packages/taco/src/components/Icon/components/{DensitySpacious.js → HeightExtraTall.js} +4 -4
  106. package/dist/esm/packages/taco/src/components/Icon/components/{DensitySpacious.js.map → HeightExtraTall.js.map} +1 -1
  107. package/dist/esm/packages/taco/src/components/Icon/components/{DensityNormal.js → HeightMedium.js} +4 -4
  108. package/dist/esm/packages/taco/src/components/Icon/components/HeightMedium.js.map +1 -0
  109. package/dist/esm/packages/taco/src/components/Icon/components/{DensityCompact.js → HeightShort.js} +4 -4
  110. package/dist/esm/packages/taco/src/components/Icon/components/HeightShort.js.map +1 -0
  111. package/dist/esm/packages/taco/src/components/Icon/components/{DensityComfortable.js → HeightTall.js} +4 -4
  112. package/dist/esm/packages/taco/src/components/Icon/components/HeightTall.js.map +1 -0
  113. package/dist/esm/packages/taco/src/components/Icon/components/index.js +10 -8
  114. package/dist/esm/packages/taco/src/components/Icon/components/index.js.map +1 -1
  115. package/dist/esm/packages/taco/src/components/IconButton/IconButton.js.map +1 -1
  116. package/dist/esm/packages/taco/src/components/Input/Input.js +1 -1
  117. package/dist/esm/packages/taco/src/components/Input/Input.js.map +1 -1
  118. package/dist/esm/packages/taco/src/components/Menu/Menu.js +2 -0
  119. package/dist/esm/packages/taco/src/components/Menu/Menu.js.map +1 -1
  120. package/dist/esm/packages/taco/src/components/Menu/components/Item.js +20 -2
  121. package/dist/esm/packages/taco/src/components/Menu/components/Item.js.map +1 -1
  122. package/dist/esm/packages/taco/src/components/Menu/components/SubMenu.js +22 -0
  123. package/dist/esm/packages/taco/src/components/Menu/components/SubMenu.js.map +1 -0
  124. package/dist/esm/packages/taco/src/components/Popover/Popover.js +11 -3
  125. package/dist/esm/packages/taco/src/components/Popover/Popover.js.map +1 -1
  126. package/dist/esm/packages/taco/src/components/Provider/Localization.js +56 -21
  127. package/dist/esm/packages/taco/src/components/Provider/Localization.js.map +1 -1
  128. package/dist/esm/packages/taco/src/components/RadioGroup/RadioGroup.js +2 -7
  129. package/dist/esm/packages/taco/src/components/RadioGroup/RadioGroup.js.map +1 -1
  130. package/dist/esm/packages/taco/src/components/RadioGroup/util.js +14 -0
  131. package/dist/esm/packages/taco/src/components/RadioGroup/util.js.map +1 -0
  132. package/dist/esm/packages/taco/src/components/SearchInput/SearchInput.js +4 -0
  133. package/dist/esm/packages/taco/src/components/SearchInput/SearchInput.js.map +1 -1
  134. package/dist/esm/packages/taco/src/components/SearchInput2/SearchInput2.js +196 -0
  135. package/dist/esm/packages/taco/src/components/SearchInput2/SearchInput2.js.map +1 -0
  136. package/dist/esm/packages/taco/src/components/Shortcut/Shortcut.js +3 -1
  137. package/dist/esm/packages/taco/src/components/Shortcut/Shortcut.js.map +1 -1
  138. package/dist/esm/packages/taco/src/components/Switch/Switch.js +3 -1
  139. package/dist/esm/packages/taco/src/components/Switch/Switch.js.map +1 -1
  140. package/dist/esm/packages/taco/src/components/Table3/Table3.js +145 -0
  141. package/dist/esm/packages/taco/src/components/Table3/Table3.js.map +1 -0
  142. package/dist/esm/packages/taco/src/components/Table3/components/columns/cell/Cell.js +27 -0
  143. package/dist/esm/packages/taco/src/components/Table3/components/columns/cell/Cell.js.map +1 -0
  144. package/dist/esm/packages/taco/src/components/Table3/components/columns/cell/DisplayCell.js +128 -0
  145. package/dist/esm/packages/taco/src/components/Table3/components/columns/cell/DisplayCell.js.map +1 -0
  146. package/dist/esm/packages/taco/src/components/Table3/components/columns/cell/EditingCell.js +283 -0
  147. package/dist/esm/packages/taco/src/components/Table3/components/columns/cell/EditingCell.js.map +1 -0
  148. package/dist/esm/packages/taco/src/components/{Table2/components/column → Table3/components/columns/cell}/Indicator.js +14 -13
  149. package/dist/esm/packages/taco/src/components/Table3/components/columns/cell/Indicator.js.map +1 -0
  150. package/dist/esm/packages/taco/src/components/Table3/components/columns/footer/Footer.js +50 -0
  151. package/dist/esm/packages/taco/src/components/Table3/components/columns/footer/Footer.js.map +1 -0
  152. package/dist/esm/packages/taco/src/components/Table3/components/columns/footer/Summary.js +30 -0
  153. package/dist/esm/packages/taco/src/components/Table3/components/columns/footer/Summary.js.map +1 -0
  154. package/dist/esm/packages/taco/src/components/Table3/components/columns/header/Goto.js +27 -0
  155. package/dist/esm/packages/taco/src/components/Table3/components/columns/header/Goto.js.map +1 -0
  156. package/dist/esm/packages/taco/src/components/Table3/components/columns/header/Header.js +134 -0
  157. package/dist/esm/packages/taco/src/components/Table3/components/columns/header/Header.js.map +1 -0
  158. package/dist/esm/packages/taco/src/components/Table3/components/columns/header/Menu.js +156 -0
  159. package/dist/esm/packages/taco/src/components/Table3/components/columns/header/Menu.js.map +1 -0
  160. package/dist/esm/packages/taco/src/components/Table3/components/columns/header/Resizer.js +42 -0
  161. package/dist/esm/packages/taco/src/components/Table3/components/columns/header/Resizer.js.map +1 -0
  162. package/dist/esm/packages/taco/src/components/Table3/components/columns/header/SortIndicator.js +38 -0
  163. package/dist/esm/packages/taco/src/components/Table3/components/columns/header/SortIndicator.js.map +1 -0
  164. package/dist/esm/packages/taco/src/components/Table3/components/columns/internal/Actions.js +108 -0
  165. package/dist/esm/packages/taco/src/components/Table3/components/columns/internal/Actions.js.map +1 -0
  166. package/dist/esm/packages/taco/src/components/Table3/components/columns/internal/Drag.js +86 -0
  167. package/dist/esm/packages/taco/src/components/Table3/components/columns/internal/Drag.js.map +1 -0
  168. package/dist/esm/packages/taco/src/components/Table3/components/columns/internal/EditingActions.js +124 -0
  169. package/dist/esm/packages/taco/src/components/Table3/components/columns/internal/EditingActions.js.map +1 -0
  170. package/dist/esm/packages/taco/src/components/Table3/components/columns/internal/Expansion.js +103 -0
  171. package/dist/esm/packages/taco/src/components/Table3/components/columns/internal/Expansion.js.map +1 -0
  172. package/dist/esm/packages/taco/src/components/Table3/components/columns/internal/Selection.js +121 -0
  173. package/dist/esm/packages/taco/src/components/Table3/components/columns/internal/Selection.js.map +1 -0
  174. package/dist/esm/packages/taco/src/components/Table3/components/columns/styles.js +17 -0
  175. package/dist/esm/packages/taco/src/components/Table3/components/columns/styles.js.map +1 -0
  176. package/dist/esm/packages/taco/src/components/Table3/components/rows/ExpandedRow.js +27 -0
  177. package/dist/esm/packages/taco/src/components/Table3/components/rows/ExpandedRow.js.map +1 -0
  178. package/dist/esm/packages/taco/src/components/Table3/components/rows/Row.js +255 -0
  179. package/dist/esm/packages/taco/src/components/Table3/components/rows/Row.js.map +1 -0
  180. package/dist/esm/packages/taco/src/components/Table3/components/rows/RowContext.js +13 -0
  181. package/dist/esm/packages/taco/src/components/Table3/components/rows/RowContext.js.map +1 -0
  182. package/dist/esm/packages/taco/src/components/Table3/components/rows/SkeletonRow.js +43 -0
  183. package/dist/esm/packages/taco/src/components/Table3/components/rows/SkeletonRow.js.map +1 -0
  184. package/dist/esm/packages/taco/src/components/Table3/components/rows/styles.js +9 -0
  185. package/dist/esm/packages/taco/src/components/Table3/components/rows/styles.js.map +1 -0
  186. package/dist/esm/packages/taco/src/components/Table3/components/toolbar/ColumnSettings.js +105 -0
  187. package/dist/esm/packages/taco/src/components/Table3/components/toolbar/ColumnSettings.js.map +1 -0
  188. package/dist/esm/packages/taco/src/components/Table3/components/toolbar/EditButton.js +45 -0
  189. package/dist/esm/packages/taco/src/components/Table3/components/toolbar/EditButton.js.map +1 -0
  190. package/dist/esm/packages/taco/src/components/Table3/components/toolbar/Filter/filters/Filters.js +148 -0
  191. package/dist/esm/packages/taco/src/components/Table3/components/toolbar/Filter/filters/Filters.js.map +1 -0
  192. package/dist/esm/packages/taco/src/components/Table3/components/toolbar/Filter/filters/components/Filter.js +107 -0
  193. package/dist/esm/packages/taco/src/components/Table3/components/toolbar/Filter/filters/components/Filter.js.map +1 -0
  194. package/dist/esm/packages/taco/src/components/Table3/components/toolbar/Filter/filters/components/FilterColumn.js +28 -0
  195. package/dist/esm/packages/taco/src/components/Table3/components/toolbar/Filter/filters/components/FilterColumn.js.map +1 -0
  196. package/dist/esm/packages/taco/src/components/Table3/components/toolbar/Filter/filters/components/FilterComparator.js +60 -0
  197. package/dist/esm/packages/taco/src/components/Table3/components/toolbar/Filter/filters/components/FilterComparator.js.map +1 -0
  198. package/dist/esm/packages/taco/src/components/Table3/components/toolbar/Filter/filters/components/FilterValue.js +89 -0
  199. package/dist/esm/packages/taco/src/components/Table3/components/toolbar/Filter/filters/components/FilterValue.js.map +1 -0
  200. package/dist/esm/packages/taco/src/components/Table3/components/toolbar/Filter/filters/components/Placeholder.js +45 -0
  201. package/dist/esm/packages/taco/src/components/Table3/components/toolbar/Filter/filters/components/Placeholder.js.map +1 -0
  202. package/dist/esm/packages/taco/src/components/Table3/components/toolbar/FontSize.js +25 -0
  203. package/dist/esm/packages/taco/src/components/Table3/components/toolbar/FontSize.js.map +1 -0
  204. package/dist/esm/packages/taco/src/components/Table3/components/toolbar/PrintButton/PrintButton.js +99 -0
  205. package/dist/esm/packages/taco/src/components/Table3/components/toolbar/PrintButton/PrintButton.js.map +1 -0
  206. package/dist/esm/packages/taco/src/components/Table3/components/toolbar/PrintButton/PrintIFrame.js +223 -0
  207. package/dist/esm/packages/taco/src/components/Table3/components/toolbar/PrintButton/PrintIFrame.js.map +1 -0
  208. package/dist/esm/packages/taco/src/components/Table3/components/toolbar/PrintButton/hooks/useParentStylesheets.js +88 -0
  209. package/dist/esm/packages/taco/src/components/Table3/components/toolbar/PrintButton/hooks/useParentStylesheets.js.map +1 -0
  210. package/dist/esm/packages/taco/src/components/Table3/components/toolbar/RowHeight.js +26 -0
  211. package/dist/esm/packages/taco/src/components/Table3/components/toolbar/RowHeight.js.map +1 -0
  212. package/dist/esm/packages/taco/src/components/Table3/components/toolbar/Search.js +137 -0
  213. package/dist/esm/packages/taco/src/components/Table3/components/toolbar/Search.js.map +1 -0
  214. package/dist/esm/packages/taco/src/components/Table3/components/toolbar/Toolbar.js +85 -0
  215. package/dist/esm/packages/taco/src/components/Table3/components/toolbar/Toolbar.js.map +1 -0
  216. package/dist/esm/packages/taco/src/components/Table3/hooks/features/useColumnFreezing.js +87 -0
  217. package/dist/esm/packages/taco/src/components/Table3/hooks/features/useColumnFreezing.js.map +1 -0
  218. package/dist/esm/packages/taco/src/components/Table3/hooks/features/useColumnOrdering.js +45 -0
  219. package/dist/esm/packages/taco/src/components/Table3/hooks/features/useColumnOrdering.js.map +1 -0
  220. package/dist/esm/packages/taco/src/components/Table3/hooks/features/useCurrentRow.js +52 -0
  221. package/dist/esm/packages/taco/src/components/Table3/hooks/features/useCurrentRow.js.map +1 -0
  222. package/dist/esm/packages/taco/src/components/Table3/hooks/features/useEditing.js +197 -0
  223. package/dist/esm/packages/taco/src/components/Table3/hooks/features/useEditing.js.map +1 -0
  224. package/dist/esm/packages/taco/src/components/Table3/hooks/features/useFontSize.js +13 -0
  225. package/dist/esm/packages/taco/src/components/Table3/hooks/features/useFontSize.js.map +1 -0
  226. package/dist/esm/packages/taco/src/components/Table3/hooks/features/usePauseHoverState.js +19 -0
  227. package/dist/esm/packages/taco/src/components/Table3/hooks/features/usePauseHoverState.js.map +1 -0
  228. package/dist/esm/packages/taco/src/components/Table3/hooks/features/usePrinting.js +9 -0
  229. package/dist/esm/packages/taco/src/components/Table3/hooks/features/usePrinting.js.map +1 -0
  230. package/dist/esm/packages/taco/src/components/Table3/hooks/features/useRowClick.js +25 -0
  231. package/dist/esm/packages/taco/src/components/Table3/hooks/features/useRowClick.js.map +1 -0
  232. package/dist/esm/packages/taco/src/components/Table3/hooks/features/useRowDrag.js +13 -0
  233. package/dist/esm/packages/taco/src/components/Table3/hooks/features/useRowDrag.js.map +1 -0
  234. package/dist/esm/packages/taco/src/components/Table3/hooks/features/useRowDrop.js +9 -0
  235. package/dist/esm/packages/taco/src/components/Table3/hooks/features/useRowDrop.js.map +1 -0
  236. package/dist/esm/packages/taco/src/components/Table3/hooks/features/useRowGoto.js +9 -0
  237. package/dist/esm/packages/taco/src/components/Table3/hooks/features/useRowGoto.js.map +1 -0
  238. package/dist/esm/packages/taco/src/components/Table3/hooks/features/useRowHeight.js +27 -0
  239. package/dist/esm/packages/taco/src/components/Table3/hooks/features/useRowHeight.js.map +1 -0
  240. package/dist/esm/packages/taco/src/components/Table3/hooks/features/useRowSelection.js +29 -0
  241. package/dist/esm/packages/taco/src/components/Table3/hooks/features/useRowSelection.js.map +1 -0
  242. package/dist/esm/packages/taco/src/components/Table3/hooks/features/useSearch.js +27 -0
  243. package/dist/esm/packages/taco/src/components/Table3/hooks/features/useSearch.js.map +1 -0
  244. package/dist/esm/packages/taco/src/components/Table3/hooks/listeners/useCurrentRowListener.js +14 -0
  245. package/dist/esm/packages/taco/src/components/Table3/hooks/listeners/useCurrentRowListener.js.map +1 -0
  246. package/dist/esm/packages/taco/src/components/Table3/hooks/listeners/useEditingStateListener.js +24 -0
  247. package/dist/esm/packages/taco/src/components/Table3/hooks/listeners/useEditingStateListener.js.map +1 -0
  248. package/dist/esm/packages/taco/src/components/Table3/hooks/listeners/useFilteringStateListener.js +19 -0
  249. package/dist/esm/packages/taco/src/components/Table3/hooks/listeners/useFilteringStateListener.js.map +1 -0
  250. package/dist/esm/packages/taco/src/components/Table3/hooks/listeners/useRowSelectionListener.js +19 -0
  251. package/dist/esm/packages/taco/src/components/Table3/hooks/listeners/useRowSelectionListener.js.map +1 -0
  252. package/dist/esm/packages/taco/src/components/Table3/hooks/listeners/useSearchStateListener.js +51 -0
  253. package/dist/esm/packages/taco/src/components/Table3/hooks/listeners/useSearchStateListener.js.map +1 -0
  254. package/dist/esm/packages/taco/src/components/Table3/hooks/listeners/useServerLoadingListener.js +16 -0
  255. package/dist/esm/packages/taco/src/components/Table3/hooks/listeners/useServerLoadingListener.js.map +1 -0
  256. package/dist/esm/packages/taco/src/components/Table3/hooks/listeners/useSettingsStateListener.js +26 -0
  257. package/dist/esm/packages/taco/src/components/Table3/hooks/listeners/useSettingsStateListener.js.map +1 -0
  258. package/dist/esm/packages/taco/src/components/{Table2/hooks/useTableShortcuts.js → Table3/hooks/listeners/useShortcutsListener.js} +9 -6
  259. package/dist/esm/packages/taco/src/components/Table3/hooks/listeners/useShortcutsListener.js.map +1 -0
  260. package/dist/esm/packages/taco/src/components/Table3/hooks/listeners/useSortingStateListener.js +17 -0
  261. package/dist/esm/packages/taco/src/components/Table3/hooks/listeners/useSortingStateListener.js.map +1 -0
  262. package/dist/esm/packages/taco/src/components/Table3/hooks/useConvertChildrenToColumns.js +116 -0
  263. package/dist/esm/packages/taco/src/components/Table3/hooks/useConvertChildrenToColumns.js.map +1 -0
  264. package/dist/esm/packages/taco/src/components/Table3/hooks/useCssGrid.js +56 -0
  265. package/dist/esm/packages/taco/src/components/Table3/hooks/useCssGrid.js.map +1 -0
  266. package/dist/esm/packages/taco/src/components/Table3/hooks/useCssVars.js +61 -0
  267. package/dist/esm/packages/taco/src/components/Table3/hooks/useCssVars.js.map +1 -0
  268. package/dist/esm/packages/taco/src/components/Table3/hooks/useTable.js +154 -0
  269. package/dist/esm/packages/taco/src/components/Table3/hooks/useTable.js.map +1 -0
  270. package/dist/esm/packages/taco/src/components/Table3/hooks/useTableData.js +128 -0
  271. package/dist/esm/packages/taco/src/components/Table3/hooks/useTableData.js.map +1 -0
  272. package/dist/esm/packages/taco/src/components/Table3/hooks/useTablePreset.js +98 -0
  273. package/dist/esm/packages/taco/src/components/Table3/hooks/useTablePreset.js.map +1 -0
  274. package/dist/esm/packages/taco/src/components/Table3/hooks/useTableRefInstanceSetup.js +19 -0
  275. package/dist/esm/packages/taco/src/components/Table3/hooks/useTableRefInstanceSetup.js.map +1 -0
  276. package/dist/esm/packages/taco/src/components/Table3/strategies/index.js +8 -0
  277. package/dist/esm/packages/taco/src/components/Table3/strategies/index.js.map +1 -0
  278. package/dist/esm/packages/taco/src/components/Table3/strategies/virtualised.js +113 -0
  279. package/dist/esm/packages/taco/src/components/Table3/strategies/virtualised.js.map +1 -0
  280. package/dist/esm/packages/taco/src/components/Table3/types.js +18 -0
  281. package/dist/esm/packages/taco/src/components/Table3/types.js.map +1 -0
  282. package/dist/esm/packages/taco/src/components/Table3/util/columns.js +39 -0
  283. package/dist/esm/packages/taco/src/components/Table3/util/columns.js.map +1 -0
  284. package/dist/esm/packages/taco/src/components/{Table2/components/column/utils.js → Table3/util/editing.js} +7 -5
  285. package/dist/esm/packages/taco/src/components/Table3/util/editing.js.map +1 -0
  286. package/dist/esm/packages/taco/src/components/{Table2/utilities/filterFn.js → Table3/util/filtering.js} +19 -17
  287. package/dist/esm/packages/taco/src/components/Table3/util/filtering.js.map +1 -0
  288. package/dist/esm/packages/taco/src/components/Tabs/Tabs.js +9 -1
  289. package/dist/esm/packages/taco/src/components/Tabs/Tabs.js.map +1 -1
  290. package/dist/esm/packages/taco/src/hooks/useGlobalKeyDown.js +10 -5
  291. package/dist/esm/packages/taco/src/hooks/useGlobalKeyDown.js.map +1 -1
  292. package/dist/esm/packages/taco/src/hooks/useLazyEffect.js +16 -0
  293. package/dist/esm/packages/taco/src/hooks/useLazyEffect.js.map +1 -0
  294. package/dist/esm/packages/taco/src/index.js +6 -3
  295. package/dist/esm/packages/taco/src/index.js.map +1 -1
  296. package/dist/esm/packages/taco/src/primitives/Button.js +6 -17
  297. package/dist/esm/packages/taco/src/primitives/Button.js.map +1 -1
  298. package/dist/esm/packages/taco/src/utils/dom.js +1 -2
  299. package/dist/esm/packages/taco/src/utils/dom.js.map +1 -1
  300. package/dist/esm/packages/taco/src/utils/input.js +14 -1
  301. package/dist/esm/packages/taco/src/utils/input.js.map +1 -1
  302. package/dist/hooks/useGlobalKeyDown.d.ts +1 -1
  303. package/dist/hooks/useLazyEffect.d.ts +2 -0
  304. package/dist/index.css +130 -2
  305. package/dist/index.d.ts +3 -1
  306. package/dist/taco.cjs.development.js +4654 -3365
  307. package/dist/taco.cjs.development.js.map +1 -1
  308. package/dist/taco.cjs.production.min.js +1 -1
  309. package/dist/taco.cjs.production.min.js.map +1 -1
  310. package/dist/utils/input.d.ts +1 -0
  311. package/package.json +8 -10
  312. package/tailwind.config.js +0 -1
  313. package/types.json +1874 -1408
  314. package/dist/components/Table2/Table2.d.ts +0 -130
  315. package/dist/components/Table2/components/BatchActionsMenu.d.ts +0 -10
  316. package/dist/components/Table2/components/EditModeButton.d.ts +0 -8
  317. package/dist/components/Table2/components/RowDensityButton.d.ts +0 -7
  318. package/dist/components/Table2/components/Search.d.ts +0 -3
  319. package/dist/components/Table2/components/ShortcutsGuideButton.d.ts +0 -7
  320. package/dist/components/Table2/components/column/Base.d.ts +0 -14
  321. package/dist/components/Table2/components/column/Cell.d.ts +0 -15
  322. package/dist/components/Table2/components/column/Footer.d.ts +0 -9
  323. package/dist/components/Table2/components/column/Header.d.ts +0 -11
  324. package/dist/components/Table2/components/column/ValidationError.d.ts +0 -5
  325. package/dist/components/Table2/components/filters/FiltersButton.d.ts +0 -7
  326. package/dist/components/Table2/components/filters/components/Column.d.ts +0 -11
  327. package/dist/components/Table2/components/filters/components/ColumnFilter.d.ts +0 -10
  328. package/dist/components/Table2/components/filters/components/Comparator.d.ts +0 -11
  329. package/dist/components/Table2/components/filters/components/EmptyFilter.d.ts +0 -13
  330. package/dist/components/Table2/components/filters/components/InferredControl.d.ts +0 -10
  331. package/dist/components/Table2/components/row/Context.d.ts +0 -24
  332. package/dist/components/Table2/components/row/ExpandedRow.d.ts +0 -6
  333. package/dist/components/Table2/components/row/Row.d.ts +0 -2
  334. package/dist/components/Table2/hooks/listeners/useActiveCellStateListener.d.ts +0 -3
  335. package/dist/components/Table2/hooks/listeners/useActiveRowStateListener.d.ts +0 -3
  336. package/dist/components/Table2/hooks/listeners/useColumnOffsetStateListener.d.ts +0 -3
  337. package/dist/components/Table2/hooks/listeners/useFilterStateListener.d.ts +0 -3
  338. package/dist/components/Table2/hooks/listeners/useRowSelectionListener.d.ts +0 -3
  339. package/dist/components/Table2/hooks/listeners/useSettingsStateListener.d.ts +0 -3
  340. package/dist/components/Table2/hooks/useActiveCell.d.ts +0 -26
  341. package/dist/components/Table2/hooks/useActiveRow.d.ts +0 -10
  342. package/dist/components/Table2/hooks/useColumnDefinitions.d.ts +0 -37
  343. package/dist/components/Table2/hooks/useEditMode.d.ts +0 -28
  344. package/dist/components/Table2/hooks/useGridTemplate.d.ts +0 -2
  345. package/dist/components/Table2/hooks/useTable.d.ts +0 -46
  346. package/dist/components/Table2/hooks/useTableShortcuts.d.ts +0 -2
  347. package/dist/components/Table2/hooks/useVirtualiser.d.ts +0 -23
  348. package/dist/components/Table2/types.d.ts +0 -148
  349. package/dist/components/Table2/utilities/cell.d.ts +0 -14
  350. package/dist/components/Table2/utilities/columns.d.ts +0 -16
  351. package/dist/components/Table2/utilities/filterFn.d.ts +0 -3
  352. package/dist/esm/packages/taco/src/components/Icon/components/DensityComfortable.js.map +0 -1
  353. package/dist/esm/packages/taco/src/components/Icon/components/DensityCompact.js.map +0 -1
  354. package/dist/esm/packages/taco/src/components/Icon/components/DensityNormal.js.map +0 -1
  355. package/dist/esm/packages/taco/src/components/Table2/Table2.js +0 -422
  356. package/dist/esm/packages/taco/src/components/Table2/Table2.js.map +0 -1
  357. package/dist/esm/packages/taco/src/components/Table2/components/BatchActionsMenu.js +0 -83
  358. package/dist/esm/packages/taco/src/components/Table2/components/BatchActionsMenu.js.map +0 -1
  359. package/dist/esm/packages/taco/src/components/Table2/components/ColumnSettingsButton.js +0 -116
  360. package/dist/esm/packages/taco/src/components/Table2/components/ColumnSettingsButton.js.map +0 -1
  361. package/dist/esm/packages/taco/src/components/Table2/components/EditModeButton.js +0 -81
  362. package/dist/esm/packages/taco/src/components/Table2/components/EditModeButton.js.map +0 -1
  363. package/dist/esm/packages/taco/src/components/Table2/components/RowDensityButton.js +0 -35
  364. package/dist/esm/packages/taco/src/components/Table2/components/RowDensityButton.js.map +0 -1
  365. package/dist/esm/packages/taco/src/components/Table2/components/Search.js +0 -62
  366. package/dist/esm/packages/taco/src/components/Table2/components/Search.js.map +0 -1
  367. package/dist/esm/packages/taco/src/components/Table2/components/column/Base.js +0 -32
  368. package/dist/esm/packages/taco/src/components/Table2/components/column/Base.js.map +0 -1
  369. package/dist/esm/packages/taco/src/components/Table2/components/column/Cell.js +0 -600
  370. package/dist/esm/packages/taco/src/components/Table2/components/column/Cell.js.map +0 -1
  371. package/dist/esm/packages/taco/src/components/Table2/components/column/Footer.js +0 -32
  372. package/dist/esm/packages/taco/src/components/Table2/components/column/Footer.js.map +0 -1
  373. package/dist/esm/packages/taco/src/components/Table2/components/column/Header.js +0 -243
  374. package/dist/esm/packages/taco/src/components/Table2/components/column/Header.js.map +0 -1
  375. package/dist/esm/packages/taco/src/components/Table2/components/column/Indicator.js.map +0 -1
  376. package/dist/esm/packages/taco/src/components/Table2/components/column/ValidationError.js +0 -30
  377. package/dist/esm/packages/taco/src/components/Table2/components/column/ValidationError.js.map +0 -1
  378. package/dist/esm/packages/taco/src/components/Table2/components/column/utils.js.map +0 -1
  379. package/dist/esm/packages/taco/src/components/Table2/components/filters/FiltersButton.js +0 -155
  380. package/dist/esm/packages/taco/src/components/Table2/components/filters/FiltersButton.js.map +0 -1
  381. package/dist/esm/packages/taco/src/components/Table2/components/filters/components/Column.js +0 -31
  382. package/dist/esm/packages/taco/src/components/Table2/components/filters/components/Column.js.map +0 -1
  383. package/dist/esm/packages/taco/src/components/Table2/components/filters/components/ColumnFilter.js +0 -129
  384. package/dist/esm/packages/taco/src/components/Table2/components/filters/components/ColumnFilter.js.map +0 -1
  385. package/dist/esm/packages/taco/src/components/Table2/components/filters/components/Comparator.js +0 -68
  386. package/dist/esm/packages/taco/src/components/Table2/components/filters/components/Comparator.js.map +0 -1
  387. package/dist/esm/packages/taco/src/components/Table2/components/filters/components/EmptyFilter.js +0 -63
  388. package/dist/esm/packages/taco/src/components/Table2/components/filters/components/EmptyFilter.js.map +0 -1
  389. package/dist/esm/packages/taco/src/components/Table2/components/filters/components/InferredControl.js +0 -99
  390. package/dist/esm/packages/taco/src/components/Table2/components/filters/components/InferredControl.js.map +0 -1
  391. package/dist/esm/packages/taco/src/components/Table2/components/row/Context.js +0 -58
  392. package/dist/esm/packages/taco/src/components/Table2/components/row/Context.js.map +0 -1
  393. package/dist/esm/packages/taco/src/components/Table2/components/row/ExpandedRow.js +0 -36
  394. package/dist/esm/packages/taco/src/components/Table2/components/row/ExpandedRow.js.map +0 -1
  395. package/dist/esm/packages/taco/src/components/Table2/components/row/Row.js +0 -43
  396. package/dist/esm/packages/taco/src/components/Table2/components/row/Row.js.map +0 -1
  397. package/dist/esm/packages/taco/src/components/Table2/hooks/listeners/useActiveRowStateListener.js +0 -19
  398. package/dist/esm/packages/taco/src/components/Table2/hooks/listeners/useActiveRowStateListener.js.map +0 -1
  399. package/dist/esm/packages/taco/src/components/Table2/hooks/listeners/useColumnOffsetStateListener.js +0 -28
  400. package/dist/esm/packages/taco/src/components/Table2/hooks/listeners/useColumnOffsetStateListener.js.map +0 -1
  401. package/dist/esm/packages/taco/src/components/Table2/hooks/listeners/useFilterStateListener.js +0 -12
  402. package/dist/esm/packages/taco/src/components/Table2/hooks/listeners/useFilterStateListener.js.map +0 -1
  403. package/dist/esm/packages/taco/src/components/Table2/hooks/listeners/useRowSelectionListener.js +0 -18
  404. package/dist/esm/packages/taco/src/components/Table2/hooks/listeners/useRowSelectionListener.js.map +0 -1
  405. package/dist/esm/packages/taco/src/components/Table2/hooks/listeners/useSettingsStateListener.js +0 -25
  406. package/dist/esm/packages/taco/src/components/Table2/hooks/listeners/useSettingsStateListener.js.map +0 -1
  407. package/dist/esm/packages/taco/src/components/Table2/hooks/useActiveRow.js +0 -33
  408. package/dist/esm/packages/taco/src/components/Table2/hooks/useActiveRow.js.map +0 -1
  409. package/dist/esm/packages/taco/src/components/Table2/hooks/useColumnDefinitions.js +0 -122
  410. package/dist/esm/packages/taco/src/components/Table2/hooks/useColumnDefinitions.js.map +0 -1
  411. package/dist/esm/packages/taco/src/components/Table2/hooks/useEditMode.js +0 -112
  412. package/dist/esm/packages/taco/src/components/Table2/hooks/useEditMode.js.map +0 -1
  413. package/dist/esm/packages/taco/src/components/Table2/hooks/useGridTemplate.js +0 -34
  414. package/dist/esm/packages/taco/src/components/Table2/hooks/useGridTemplate.js.map +0 -1
  415. package/dist/esm/packages/taco/src/components/Table2/hooks/useTable.js +0 -222
  416. package/dist/esm/packages/taco/src/components/Table2/hooks/useTable.js.map +0 -1
  417. package/dist/esm/packages/taco/src/components/Table2/hooks/useTableShortcuts.js.map +0 -1
  418. package/dist/esm/packages/taco/src/components/Table2/hooks/useVirtualiser.js +0 -48
  419. package/dist/esm/packages/taco/src/components/Table2/hooks/useVirtualiser.js.map +0 -1
  420. package/dist/esm/packages/taco/src/components/Table2/types.js +0 -18
  421. package/dist/esm/packages/taco/src/components/Table2/types.js.map +0 -1
  422. package/dist/esm/packages/taco/src/components/Table2/utilities/cell.js +0 -41
  423. package/dist/esm/packages/taco/src/components/Table2/utilities/cell.js.map +0 -1
  424. package/dist/esm/packages/taco/src/components/Table2/utilities/columns.js +0 -387
  425. package/dist/esm/packages/taco/src/components/Table2/utilities/columns.js.map +0 -1
  426. package/dist/esm/packages/taco/src/components/Table2/utilities/filterFn.js.map +0 -1
  427. package/dist/esm/packages/taco/src/components/Truncate/Truncate.js +0 -32
  428. package/dist/esm/packages/taco/src/components/Truncate/Truncate.js.map +0 -1
  429. package/dist/esm/packages/taco/src/utils/hooks/useTruncated.js +0 -20
  430. package/dist/esm/packages/taco/src/utils/hooks/useTruncated.js.map +0 -1
  431. /package/dist/components/Icon/components/{DensityComfortable.d.ts → FontSize.d.ts} +0 -0
  432. /package/dist/components/Icon/components/{DensityCompact.d.ts → HeightExtraTall.d.ts} +0 -0
  433. /package/dist/components/Icon/components/{DensityNormal.d.ts → HeightMedium.d.ts} +0 -0
  434. /package/dist/components/Icon/components/{DensitySpacious.d.ts → HeightShort.d.ts} +0 -0
  435. /package/dist/components/{Table2/components/column → Table3/components/columns/cell}/Indicator.d.ts +0 -0
@@ -0,0 +1,116 @@
1
+ import React__default from 'react';
2
+ import { createColumnHelper } from '@tanstack/react-table';
3
+ import { MIN_COLUMN_SIZE } from '../components/columns/styles.js';
4
+ import { Header } from '../components/columns/header/Header.js';
5
+ import { Footer } from '../components/columns/footer/Footer.js';
6
+ import { createRowActionsColumn } from '../components/columns/internal/Actions.js';
7
+ import { createRowEditingActionsColumn } from '../components/columns/internal/EditingActions.js';
8
+ import { Cell } from '../components/columns/cell/Cell.js';
9
+ import { createRowSelectionColumn } from '../components/columns/internal/Selection.js';
10
+ import { createRowExpansionColumn } from '../components/columns/internal/Expansion.js';
11
+ import { createRowDragColumn } from '../components/columns/internal/Drag.js';
12
+
13
+ function getSortingFn(dataType, customFnOrBuiltIn) {
14
+ if (typeof customFnOrBuiltIn === 'function') {
15
+ return (rowA, rowB, columnId) => customFnOrBuiltIn(rowA.original, rowB.original, columnId);
16
+ }
17
+ // if a built in is being used, just return that
18
+ if (customFnOrBuiltIn) {
19
+ return customFnOrBuiltIn;
20
+ }
21
+ // some times we alias based on the type
22
+ if (dataType && dataType !== 'boolean') {
23
+ return dataType;
24
+ }
25
+ // otherwise fall back to auto
26
+ return 'auto';
27
+ }
28
+ function useConvertChildrenToColumns(props, options, editing) {
29
+ var _props$actionsForRow;
30
+ const columnHelper = createColumnHelper();
31
+ const columns = [];
32
+ const defaultColumnSizing = {};
33
+ const defaultColumnVisibility = {};
34
+ const defaultSorting = [];
35
+ React__default.Children.toArray(props.children).filter(child => !!child) // remove falsey children
36
+ .forEach(child => {
37
+ if ( /*#__PURE__*/React__default.isValidElement(child) && child.props.accessor) {
38
+ var _child$props$enableRe, _child$props$enableFi, _child$props$enableSo, _child$props$enableHi, _child$props$enableOr, _child$props$enableSe, _child$props$enableTr;
39
+ if (child.props.defaultWidth) {
40
+ defaultColumnSizing[child.props.accessor] = child.props.defaultWidth === 'grow' ? '1fr' : child.props.defaultWidth;
41
+ }
42
+ if (child.props.defaultHidden && options.enableColumnHiding) {
43
+ defaultColumnVisibility[child.props.accessor] = false;
44
+ }
45
+ if (child.props.sort !== undefined) {
46
+ defaultSorting.push({
47
+ id: child.props.accessor,
48
+ desc: child.props.sort === 'desc'
49
+ });
50
+ }
51
+ columns.push({
52
+ accessorKey: child.props.accessor,
53
+ id: child.props.accessor,
54
+ header: Header,
55
+ cell: Cell,
56
+ footer: Footer,
57
+ // sizing
58
+ minSize: MIN_COLUMN_SIZE,
59
+ enableResizing: (_child$props$enableRe = child.props.enableResizing) !== null && _child$props$enableRe !== void 0 ? _child$props$enableRe : true,
60
+ // filtering
61
+ enableColumnFilter: (_child$props$enableFi = child.props.enableFiltering) !== null && _child$props$enableFi !== void 0 ? _child$props$enableFi : true,
62
+ filterFn: options.enableFiltering ? 'tacoFilter' : undefined,
63
+ // sorting
64
+ enableSorting: (_child$props$enableSo = child.props.enableSorting) !== null && _child$props$enableSo !== void 0 ? _child$props$enableSo : true,
65
+ sortingFn: getSortingFn(child.props.dataType, child.props.sortFn),
66
+ sortDescFirst: false,
67
+ sortUndefined: 1,
68
+ // visibility
69
+ enableHiding: (_child$props$enableHi = child.props.enableHiding) !== null && _child$props$enableHi !== void 0 ? _child$props$enableHi : true,
70
+ // custom options
71
+ meta: {
72
+ align: child.props.align,
73
+ className: child.props.className,
74
+ control: child.props.control,
75
+ dataType: child.props.dataType,
76
+ enableOrdering: (_child$props$enableOr = child.props.enableOrdering) !== null && _child$props$enableOr !== void 0 ? _child$props$enableOr : true,
77
+ // react-table global filtering only samples from row 0 in a dataset for filtering and this
78
+ // leads to some columns being disabled if, e.g., a column in row 0 has an undefined value
79
+ // so we do not use the native enableGlobalFilter property and instead use our own enableSearch
80
+ enableSearch: (_child$props$enableSe = child.props.enableSearch) !== null && _child$props$enableSe !== void 0 ? _child$props$enableSe : true,
81
+ enableTruncate: (_child$props$enableTr = child.props.enableTruncate) !== null && _child$props$enableTr !== void 0 ? _child$props$enableTr : false,
82
+ footer: child.props.footer,
83
+ header: child.props.header,
84
+ headerClassName: child.props.headerClassName,
85
+ menu: child.props.menu,
86
+ renderer: child.props.renderer,
87
+ tooltip: child.props.tooltip
88
+ }
89
+ });
90
+ }
91
+ });
92
+ if (options.enableRowExpansion && props.expandedRowRenderer) {
93
+ columns.unshift(columnHelper.display(createRowExpansionColumn(props.expandedRowRenderer)));
94
+ }
95
+ if (options.enableRowSelection) {
96
+ columns.unshift(columnHelper.display(createRowSelectionColumn(options.enableRowDrag ? props.onRowDrag : undefined)));
97
+ }
98
+ if (options.enableRowDrag && props.onRowDrag) {
99
+ columns.unshift(columnHelper.display(createRowDragColumn(props.onRowDrag)));
100
+ }
101
+ if ((_props$actionsForRow = props.actionsForRow) !== null && _props$actionsForRow !== void 0 && _props$actionsForRow.length) {
102
+ columns.push(columnHelper.display(createRowActionsColumn(props.actionsForRow, props.actionsForRowLength)));
103
+ }
104
+ if (editing.isEnabled && editing.isEditing) {
105
+ columns.push(columnHelper.display(createRowEditingActionsColumn()));
106
+ }
107
+ return {
108
+ columns,
109
+ defaultColumnSizing,
110
+ defaultColumnVisibility,
111
+ defaultSorting
112
+ };
113
+ }
114
+
115
+ export { useConvertChildrenToColumns };
116
+ //# sourceMappingURL=useConvertChildrenToColumns.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useConvertChildrenToColumns.js","sources":["../../../../../../../../src/components/Table3/hooks/useConvertChildrenToColumns.tsx"],"sourcesContent":["import React from 'react';\nimport { ColumnDef, ColumnSizingState, createColumnHelper, ColumnSort, VisibilityState } from '@tanstack/react-table';\nimport { Table3ColumnProps, Table3Props, Table3Options, ColumnDataType, SortFn } from '../types';\nimport { Header } from '../components/columns/header/Header';\nimport { Footer } from '../components/columns/footer/Footer';\nimport { Cell } from '../components/columns/cell/Cell';\nimport { createRowSelectionColumn } from '../components/columns/internal/Selection';\nimport { MIN_COLUMN_SIZE } from '../components/columns/styles';\nimport { createRowActionsColumn } from '../components/columns/internal/Actions';\nimport { createRowExpansionColumn } from '../components/columns/internal/Expansion';\nimport { createRowDragColumn } from '../components/columns/internal/Drag';\nimport { createRowEditingActionsColumn } from '../components/columns/internal/EditingActions';\nimport { useEditing } from './features/useEditing';\n\nfunction getSortingFn<TType = unknown>(dataType?: ColumnDataType, customFnOrBuiltIn?: SortFn<TType>) {\n if (typeof customFnOrBuiltIn === 'function') {\n return (rowA, rowB, columnId) => customFnOrBuiltIn(rowA.original, rowB.original, columnId);\n }\n\n // if a built in is being used, just return that\n if (customFnOrBuiltIn) {\n return customFnOrBuiltIn;\n }\n\n // some times we alias based on the type\n if (dataType && dataType !== 'boolean') {\n return dataType;\n }\n\n // otherwise fall back to auto\n return 'auto';\n}\n\nexport function useConvertChildrenToColumns<TType = unknown>(\n props: Table3Props<TType>,\n options: Table3Options,\n editing: ReturnType<typeof useEditing>\n) {\n const columnHelper = createColumnHelper<TType>();\n\n const columns: ColumnDef<TType>[] = [];\n const defaultColumnSizing: ColumnSizingState = {};\n const defaultColumnVisibility: VisibilityState = {};\n const defaultSorting: ColumnSort[] = [];\n\n (React.Children.toArray(props.children) as React.ReactElement<Table3ColumnProps<TType>>[])\n .filter(child => !!child) // remove falsey children\n .forEach(child => {\n if (React.isValidElement<Table3ColumnProps<TType>>(child) && child.props.accessor) {\n if (child.props.defaultWidth) {\n defaultColumnSizing[child.props.accessor] =\n child.props.defaultWidth === 'grow' ? '1fr' : (child.props.defaultWidth as any);\n }\n\n if (child.props.defaultHidden && options.enableColumnHiding) {\n defaultColumnVisibility[child.props.accessor] = false;\n }\n\n if (child.props.sort !== undefined) {\n defaultSorting.push({\n id: child.props.accessor,\n desc: child.props.sort === 'desc',\n });\n }\n\n columns.push({\n accessorKey: child.props.accessor,\n id: child.props.accessor,\n header: Header,\n cell: Cell,\n footer: Footer,\n // sizing\n minSize: MIN_COLUMN_SIZE,\n enableResizing: child.props.enableResizing ?? true,\n // filtering\n enableColumnFilter: child.props.enableFiltering ?? true,\n filterFn: options.enableFiltering ? ('tacoFilter' as any) : undefined,\n // sorting\n enableSorting: child.props.enableSorting ?? true,\n sortingFn: getSortingFn<TType>(child.props.dataType, child.props.sortFn),\n sortDescFirst: false,\n sortUndefined: 1,\n // visibility\n enableHiding: child.props.enableHiding ?? true,\n // custom options\n meta: {\n align: child.props.align,\n className: child.props.className,\n control: child.props.control,\n dataType: child.props.dataType,\n enableOrdering: child.props.enableOrdering ?? true,\n // react-table global filtering only samples from row 0 in a dataset for filtering and this\n // leads to some columns being disabled if, e.g., a column in row 0 has an undefined value\n // so we do not use the native enableGlobalFilter property and instead use our own enableSearch\n enableSearch: child.props.enableSearch ?? true,\n enableTruncate: child.props.enableTruncate ?? false,\n footer: child.props.footer,\n header: child.props.header,\n headerClassName: child.props.headerClassName,\n menu: child.props.menu,\n renderer: child.props.renderer,\n tooltip: child.props.tooltip,\n },\n });\n }\n });\n\n if (options.enableRowExpansion && props.expandedRowRenderer) {\n columns.unshift(columnHelper.display(createRowExpansionColumn(props.expandedRowRenderer)));\n }\n\n if (options.enableRowSelection) {\n columns.unshift(\n columnHelper.display(createRowSelectionColumn<TType>(options.enableRowDrag ? props.onRowDrag : undefined))\n );\n }\n\n if (options.enableRowDrag && props.onRowDrag) {\n columns.unshift(columnHelper.display(createRowDragColumn(props.onRowDrag)));\n }\n\n if (props.actionsForRow?.length) {\n columns.push(columnHelper.display(createRowActionsColumn<TType>(props.actionsForRow, props.actionsForRowLength)));\n }\n\n if (editing.isEnabled && editing.isEditing) {\n columns.push(columnHelper.display(createRowEditingActionsColumn<TType>()));\n }\n\n return { columns, defaultColumnSizing, defaultColumnVisibility, defaultSorting };\n}\n"],"names":["getSortingFn","dataType","customFnOrBuiltIn","rowA","rowB","columnId","original","useConvertChildrenToColumns","props","options","editing","columnHelper","createColumnHelper","columns","defaultColumnSizing","defaultColumnVisibility","defaultSorting","React","Children","toArray","children","filter","child","forEach","isValidElement","accessor","defaultWidth","defaultHidden","enableColumnHiding","sort","undefined","push","id","desc","accessorKey","header","Header","cell","Cell","footer","Footer","minSize","MIN_COLUMN_SIZE","enableResizing","enableColumnFilter","enableFiltering","filterFn","enableSorting","sortingFn","sortFn","sortDescFirst","sortUndefined","enableHiding","meta","align","className","control","enableOrdering","enableSearch","enableTruncate","headerClassName","menu","renderer","tooltip","enableRowExpansion","expandedRowRenderer","unshift","display","createRowExpansionColumn","enableRowSelection","createRowSelectionColumn","enableRowDrag","onRowDrag","createRowDragColumn","actionsForRow","length","createRowActionsColumn","actionsForRowLength","isEnabled","isEditing","createRowEditingActionsColumn"],"mappings":"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"}
@@ -0,0 +1,56 @@
1
+ import React__default from 'react';
2
+ import { isInternalColumn } from '../util/columns.js';
3
+ import { MIN_COLUMN_SIZE } from '../components/columns/styles.js';
4
+ import { COLUMN_ID } from '../components/columns/internal/Actions.js';
5
+
6
+ const useCssGrid = table => {
7
+ const allVisibleColumns = table.getVisibleLeafColumns();
8
+ const columnSizing = table.getState().columnSizing;
9
+ const length = table.getRowModel().rows.length;
10
+ const gridTemplateColumns = React__default.useMemo(() => {
11
+ return allVisibleColumns.reduce((accum, column, index) => {
12
+ let size;
13
+ const isLastColumn = index === allVisibleColumns.length - 1;
14
+ // column has a getSize function, but it always returns a default value (150), and we want the
15
+ // first render to use auto layout - so we get the size directly from table state where it is undefined
16
+ const width = columnSizing[column.id];
17
+ if (isInternalColumn(column.id)) {
18
+ if (column.id === COLUMN_ID) {
19
+ // it's important to set a min width so that when the the column width is maintained
20
+ // when the current row is scrolled out of the virtualisation view
21
+ size = `minmax(${column.getSize()}px, auto)`;
22
+ } else {
23
+ size = `${column.getSize()}px`;
24
+ }
25
+ } else if (width !== undefined) {
26
+ if (width === '1fr') {
27
+ size = 'minmax(max-content, 1fr)';
28
+ } else if (isLastColumn) {
29
+ size = `minmax(${width}px, auto)`;
30
+ } else if (width < MIN_COLUMN_SIZE) {
31
+ // the react-table getResizeHandler function does not respect the minSize property on columns, it is possible
32
+ // to go below the minSize - so we have to prevent it entirely on the grid layout
33
+ size = `${MIN_COLUMN_SIZE}px`;
34
+ } else {
35
+ size = `${width}px`;
36
+ }
37
+ } else {
38
+ size = 'minmax(max-content, auto)';
39
+ }
40
+ return `${accum} ${size}`.trim();
41
+ }, '');
42
+ }, [allVisibleColumns, columnSizing]);
43
+ const gridTemplateRows = React__default.useMemo(() => {
44
+ return `min-content repeat(${length}, min-content) 1fr min-content`;
45
+ }, [length]);
46
+ const style = {
47
+ gridTemplateColumns,
48
+ gridTemplateRows
49
+ };
50
+ return {
51
+ style
52
+ };
53
+ };
54
+
55
+ export { useCssGrid };
56
+ //# sourceMappingURL=useCssGrid.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useCssGrid.js","sources":["../../../../../../../../src/components/Table3/hooks/useCssGrid.ts"],"sourcesContent":["import React from 'react';\nimport { Table as RTable } from '@tanstack/react-table';\nimport { isInternalColumn } from '../util/columns';\nimport { MIN_COLUMN_SIZE } from '../components/columns/styles';\nimport { COLUMN_ID as ACTIONS_COLUMN_ID } from '../components/columns/internal/Actions';\n\nexport const useCssGrid = <TType = unknown>(table: RTable<TType>) => {\n const allVisibleColumns = table.getVisibleLeafColumns();\n const columnSizing = table.getState().columnSizing;\n const length = table.getRowModel().rows.length;\n\n const gridTemplateColumns = React.useMemo(() => {\n return allVisibleColumns.reduce((accum, column, index) => {\n let size;\n const isLastColumn = index === allVisibleColumns.length - 1;\n // column has a getSize function, but it always returns a default value (150), and we want the\n // first render to use auto layout - so we get the size directly from table state where it is undefined\n const width = columnSizing[column.id] as number | '1fr';\n\n if (isInternalColumn(column.id)) {\n if (column.id === ACTIONS_COLUMN_ID) {\n // it's important to set a min width so that when the the column width is maintained\n // when the current row is scrolled out of the virtualisation view\n size = `minmax(${column.getSize()}px, auto)`;\n } else {\n size = `${column.getSize()}px`;\n }\n } else if (width !== undefined) {\n if (width === '1fr') {\n size = 'minmax(max-content, 1fr)';\n } else if (isLastColumn) {\n size = `minmax(${width}px, auto)`;\n } else if (width < MIN_COLUMN_SIZE) {\n // the react-table getResizeHandler function does not respect the minSize property on columns, it is possible\n // to go below the minSize - so we have to prevent it entirely on the grid layout\n size = `${MIN_COLUMN_SIZE}px`;\n } else {\n size = `${width}px`;\n }\n } else {\n size = 'minmax(max-content, auto)';\n }\n\n return `${accum} ${size}`.trim();\n }, '');\n }, [allVisibleColumns, columnSizing]);\n\n const gridTemplateRows = React.useMemo(() => {\n return `min-content repeat(${length}, min-content) 1fr min-content`;\n }, [length]);\n\n const style: React.CSSProperties = {\n gridTemplateColumns,\n gridTemplateRows,\n };\n\n return { style };\n};\n"],"names":["useCssGrid","table","allVisibleColumns","getVisibleLeafColumns","columnSizing","getState","length","getRowModel","rows","gridTemplateColumns","React","useMemo","reduce","accum","column","index","size","isLastColumn","width","id","isInternalColumn","ACTIONS_COLUMN_ID","getSize","undefined","MIN_COLUMN_SIZE","trim","gridTemplateRows","style"],"mappings":";;;;;MAMaA,UAAU,GAAqBC,KAAoB;EAC5D,MAAMC,iBAAiB,GAAGD,KAAK,CAACE,qBAAqB,EAAE;EACvD,MAAMC,YAAY,GAAGH,KAAK,CAACI,QAAQ,EAAE,CAACD,YAAY;EAClD,MAAME,MAAM,GAAGL,KAAK,CAACM,WAAW,EAAE,CAACC,IAAI,CAACF,MAAM;EAE9C,MAAMG,mBAAmB,GAAGC,cAAK,CAACC,OAAO,CAAC;IACtC,OAAOT,iBAAiB,CAACU,MAAM,CAAC,CAACC,KAAK,EAAEC,MAAM,EAAEC,KAAK;MACjD,IAAIC,IAAI;MACR,MAAMC,YAAY,GAAGF,KAAK,KAAKb,iBAAiB,CAACI,MAAM,GAAG,CAAC;;;MAG3D,MAAMY,KAAK,GAAGd,YAAY,CAACU,MAAM,CAACK,EAAE,CAAmB;MAEvD,IAAIC,gBAAgB,CAACN,MAAM,CAACK,EAAE,CAAC,EAAE;QAC7B,IAAIL,MAAM,CAACK,EAAE,KAAKE,SAAiB,EAAE;;;UAGjCL,IAAI,aAAaF,MAAM,CAACQ,OAAO,aAAa;SAC/C,MAAM;UACHN,IAAI,MAAMF,MAAM,CAACQ,OAAO,MAAM;;OAErC,MAAM,IAAIJ,KAAK,KAAKK,SAAS,EAAE;QAC5B,IAAIL,KAAK,KAAK,KAAK,EAAE;UACjBF,IAAI,GAAG,0BAA0B;SACpC,MAAM,IAAIC,YAAY,EAAE;UACrBD,IAAI,aAAaE,gBAAgB;SACpC,MAAM,IAAIA,KAAK,GAAGM,eAAe,EAAE;;;UAGhCR,IAAI,MAAMQ,mBAAmB;SAChC,MAAM;UACHR,IAAI,MAAME,SAAS;;OAE1B,MAAM;QACHF,IAAI,GAAG,2BAA2B;;MAGtC,UAAUH,SAASG,MAAM,CAACS,IAAI,EAAE;KACnC,EAAE,EAAE,CAAC;GACT,EAAE,CAACvB,iBAAiB,EAAEE,YAAY,CAAC,CAAC;EAErC,MAAMsB,gBAAgB,GAAGhB,cAAK,CAACC,OAAO,CAAC;IACnC,6BAA6BL,sCAAsC;GACtE,EAAE,CAACA,MAAM,CAAC,CAAC;EAEZ,MAAMqB,KAAK,GAAwB;IAC/BlB,mBAAmB;IACnBiB;GACH;EAED,OAAO;IAAEC;GAAO;AACpB;;;;"}
@@ -0,0 +1,61 @@
1
+ // we cannot just use a fixed height because our rows need to grow in height (images, edit mode validation etc)
2
+ const getRowHeightSizing = (height, fontSize) => {
3
+ // TODO: can we get the rem values from tailwind
4
+ switch (height) {
5
+ case 'short':
6
+ {
7
+ switch (fontSize) {
8
+ case 'small':
9
+ return '8px';
10
+ default:
11
+ return '6px';
12
+ // py-1.5
13
+ }
14
+ }
15
+
16
+ case 'tall':
17
+ {
18
+ switch (fontSize) {
19
+ case 'small':
20
+ return '16px';
21
+ case 'large':
22
+ return '12px';
23
+ default:
24
+ return '14px';
25
+ }
26
+ }
27
+ case 'extra-tall':
28
+ {
29
+ switch (fontSize) {
30
+ case 'small':
31
+ return '22px';
32
+ case 'large':
33
+ return '18px';
34
+ default:
35
+ return '20px';
36
+ }
37
+ }
38
+ default:
39
+ {
40
+ switch (fontSize) {
41
+ case 'small':
42
+ return '12px';
43
+ case 'large':
44
+ return '8px';
45
+ default:
46
+ return '10px';
47
+ }
48
+ }
49
+ }
50
+ };
51
+ const useCssVars = (height, fontSize) => {
52
+ const style = {
53
+ '--table3-row-padding': getRowHeightSizing(height, fontSize)
54
+ };
55
+ return {
56
+ style
57
+ };
58
+ };
59
+
60
+ export { useCssVars };
61
+ //# sourceMappingURL=useCssVars.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useCssVars.js","sources":["../../../../../../../../src/components/Table3/hooks/useCssVars.ts"],"sourcesContent":["import { Table3FontSize, Table3RowHeight } from '../types';\n\n// we cannot just use a fixed height because our rows need to grow in height (images, edit mode validation etc)\nconst getRowHeightSizing = (height: Table3RowHeight, fontSize: Table3FontSize) => {\n // TODO: can we get the rem values from tailwind\n switch (height) {\n case 'short': {\n switch (fontSize) {\n case 'small':\n return '8px';\n\n default:\n return '6px'; // py-1.5\n }\n }\n\n case 'tall': {\n switch (fontSize) {\n case 'small':\n return '16px';\n\n case 'large':\n return '12px';\n\n default:\n return '14px';\n }\n }\n\n case 'extra-tall': {\n switch (fontSize) {\n case 'small':\n return '22px';\n\n case 'large':\n return '18px';\n\n default:\n return '20px';\n }\n }\n\n default: {\n switch (fontSize) {\n case 'small':\n return '12px';\n\n case 'large':\n return '8px';\n\n default:\n return '10px';\n }\n }\n }\n};\n\nexport const useCssVars = (height: Table3RowHeight, fontSize: Table3FontSize) => {\n const style = {\n '--table3-row-padding': getRowHeightSizing(height, fontSize),\n };\n\n return { style };\n};\n"],"names":["getRowHeightSizing","height","fontSize","useCssVars","style"],"mappings":"AAEA;AACA,MAAMA,kBAAkB,GAAG,CAACC,MAAuB,EAAEC,QAAwB;;EAEzE,QAAQD,MAAM;IACV,KAAK,OAAO;MAAE;QACV,QAAQC,QAAQ;UACZ,KAAK,OAAO;YACR,OAAO,KAAK;UAEhB;YACI,OAAO,KAAK;;;;;IAIxB,KAAK,MAAM;MAAE;QACT,QAAQA,QAAQ;UACZ,KAAK,OAAO;YACR,OAAO,MAAM;UAEjB,KAAK,OAAO;YACR,OAAO,MAAM;UAEjB;YACI,OAAO,MAAM;;;IAIzB,KAAK,YAAY;MAAE;QACf,QAAQA,QAAQ;UACZ,KAAK,OAAO;YACR,OAAO,MAAM;UAEjB,KAAK,OAAO;YACR,OAAO,MAAM;UAEjB;YACI,OAAO,MAAM;;;IAIzB;MAAS;QACL,QAAQA,QAAQ;UACZ,KAAK,OAAO;YACR,OAAO,MAAM;UAEjB,KAAK,OAAO;YACR,OAAO,KAAK;UAEhB;YACI,OAAO,MAAM;;;;AAIjC,CAAC;MAEYC,UAAU,GAAG,CAACF,MAAuB,EAAEC,QAAwB;EACxE,MAAME,KAAK,GAAG;IACV,sBAAsB,EAAEJ,kBAAkB,CAACC,MAAM,EAAEC,QAAQ;GAC9D;EAED,OAAO;IAAEE;GAAO;AACpB;;;;"}
@@ -0,0 +1,154 @@
1
+ import React__default from 'react';
2
+ import { getFilteredRowModel, getSortedRowModel, useReactTable, getCoreRowModel } from '@tanstack/react-table';
3
+ import { useCurrentRow } from './features/useCurrentRow.js';
4
+ import { usePauseHoverState } from './features/usePauseHoverState.js';
5
+ import { useTablePreset } from './useTablePreset.js';
6
+ import { useRowHeight } from './features/useRowHeight.js';
7
+ import { useFontSize } from './features/useFontSize.js';
8
+ import { useRowSelectionListener } from './listeners/useRowSelectionListener.js';
9
+ import { useRowDrag } from './features/useRowDrag.js';
10
+ import { useSettingsStateListener } from './listeners/useSettingsStateListener.js';
11
+ import { columnFilterFn, globalFilterFn } from '../util/filtering.js';
12
+ import { useSortingStateListener } from './listeners/useSortingStateListener.js';
13
+ import { useFilteringStateListener } from './listeners/useFilteringStateListener.js';
14
+ import { useCurrentRowListener } from './listeners/useCurrentRowListener.js';
15
+ import { useColumnFreezing } from './features/useColumnFreezing.js';
16
+ import { useRowSelection } from './features/useRowSelection.js';
17
+ import { useRowClick } from './features/useRowClick.js';
18
+ import { useSearchStateListener } from './listeners/useSearchStateListener.js';
19
+ import { useEditing } from './features/useEditing.js';
20
+ import { ensureOrdering, useColumnOrdering } from './features/useColumnOrdering.js';
21
+ import { useRowDrop } from './features/useRowDrop.js';
22
+ import { useConvertChildrenToColumns } from './useConvertChildrenToColumns.js';
23
+ import { usePrinting } from './features/usePrinting.js';
24
+ import { useShortcutsListener } from './listeners/useShortcutsListener.js';
25
+ import { useRowGoto } from './features/useRowGoto.js';
26
+ import { useServerLoadingListener } from './listeners/useServerLoadingListener.js';
27
+ import { useEditingStateListener } from './listeners/useEditingStateListener.js';
28
+ import { useSearch } from './features/useSearch.js';
29
+
30
+ function useTable(props) {
31
+ var _props$defaultSetting, _props$defaultSetting2, _props$defaultSetting3, _props$defaultSetting4, _props$defaultSetting5, _props$defaultSetting6, _props$defaultSetting7, _props$length;
32
+ // options
33
+ const options = useTablePreset(props);
34
+ const tableOptions = {
35
+ enableColumnFilters: options.enableFiltering,
36
+ enableColumnResizing: options.enableColumnResizing,
37
+ enableExpanding: options.enableRowExpansion,
38
+ enableGlobalFilter: options.enableSearch,
39
+ enableHiding: options.enableColumnHiding,
40
+ enableRowSelection: options.enableRowSelection,
41
+ enableMultiRowSelection: !options.enableRowSelectionSingle,
42
+ enableSorting: options.enableSorting
43
+ };
44
+ // resizing
45
+ if (tableOptions.enableColumnResizing) {
46
+ tableOptions.columnResizeMode = 'onChange';
47
+ }
48
+ // filtering
49
+ if (tableOptions.enableColumnFilters) {
50
+ if (props.onFilter) {
51
+ tableOptions.manualFiltering = true;
52
+ // onFilter is called as a listener to let the consumer update their data, so we don't use onColumnFiltersChange
53
+ } else {
54
+ tableOptions.filterFns = {
55
+ tacoFilter: (row, columnId, filter) => columnFilterFn(row.getValue(columnId), filter)
56
+ };
57
+ tableOptions.getFilteredRowModel = getFilteredRowModel();
58
+ }
59
+ }
60
+ // search
61
+ if (tableOptions.enableGlobalFilter) {
62
+ if (props.onSearch) {
63
+ tableOptions.manualFiltering = true;
64
+ // onSearch is called as a listener to let the consumer update their data, so we don't use onColumnFiltersChange
65
+ } else {
66
+ tableOptions.globalFilterFn = (row, columnId, searchQuery) => globalFilterFn(row.getValue(columnId), searchQuery);
67
+ tableOptions.getFilteredRowModel = getFilteredRowModel();
68
+ }
69
+ }
70
+ // sorting
71
+ if (options.enableSorting) {
72
+ if (props.onSort) {
73
+ tableOptions.manualSorting = true;
74
+ // onSort is called as a listener to let the consumer update their data, so we don't use onSortingChange
75
+ } else {
76
+ tableOptions.getSortedRowModel = getSortedRowModel();
77
+ }
78
+ }
79
+ // custom features
80
+ const columnFreezing = useColumnFreezing((_props$defaultSetting = (_props$defaultSetting2 = props.defaultSettings) === null || _props$defaultSetting2 === void 0 ? void 0 : _props$defaultSetting2.columnFreezingIndex) !== null && _props$defaultSetting !== void 0 ? _props$defaultSetting : props.defaultColumnFreezingIndex, options);
81
+ const columnOrdering = useColumnOrdering(options);
82
+ const currentRow = useCurrentRow(props.defaultCurrentRowIndex);
83
+ const editing = useEditing(options.enableEditing, props.onSave);
84
+ const fontSize = useFontSize(options.enableFontSize, (_props$defaultSetting3 = props.defaultSettings) === null || _props$defaultSetting3 === void 0 ? void 0 : _props$defaultSetting3.fontSize);
85
+ const hoverState = usePauseHoverState();
86
+ const printing = usePrinting(options.enablePrinting, props.loadAll);
87
+ const rowClick = useRowClick(props.onRowClick);
88
+ const rowDrag = useRowDrag(options.enableRowDrag);
89
+ const rowDrop = useRowDrop(options.enableRowDrop, props.onRowDrop);
90
+ const rowGoto = useRowGoto(options.enableRowGoto, props.onRowGoto);
91
+ const rowHeight = useRowHeight(options.enableRowHeight, (_props$defaultSetting4 = (_props$defaultSetting5 = props.defaultSettings) === null || _props$defaultSetting5 === void 0 ? void 0 : _props$defaultSetting5.rowHeight) !== null && _props$defaultSetting4 !== void 0 ? _props$defaultSetting4 : (_props$defaultSetting6 = props.defaultSettings) === null || _props$defaultSetting6 === void 0 ? void 0 : _props$defaultSetting6.rowDensity);
92
+ const rowSelection = useRowSelection();
93
+ const search = useSearch(options.enableSearch, (_props$defaultSetting7 = props.defaultSettings) === null || _props$defaultSetting7 === void 0 ? void 0 : _props$defaultSetting7.excludeUnmatchedRecordsInSearch, props.loadAll);
94
+ // columns
95
+ const {
96
+ columns,
97
+ defaultColumnSizing,
98
+ defaultColumnVisibility,
99
+ defaultSorting
100
+ } = useConvertChildrenToColumns(props, options, editing);
101
+ // built-in features
102
+ const initialState = React__default.useMemo(() => {
103
+ var _props$defaultSetting8, _props$defaultSetting9, _props$defaultSetting10, _props$defaultSetting11, _props$defaultSetting12, _props$defaultSetting13, _props$defaultSetting14;
104
+ const sanitizeSortedColumns = column => columns.find(definedColumn => definedColumn.id === column.id);
105
+ return {
106
+ columnOrder: ensureOrdering(columns, (_props$defaultSetting8 = props.defaultSettings) === null || _props$defaultSetting8 === void 0 ? void 0 : _props$defaultSetting8.columnOrder),
107
+ columnSizing: (_props$defaultSetting9 = (_props$defaultSetting10 = props.defaultSettings) === null || _props$defaultSetting10 === void 0 ? void 0 : _props$defaultSetting10.columnSizing) !== null && _props$defaultSetting9 !== void 0 ? _props$defaultSetting9 : defaultColumnSizing,
108
+ columnVisibility: (_props$defaultSetting11 = (_props$defaultSetting12 = props.defaultSettings) === null || _props$defaultSetting12 === void 0 ? void 0 : _props$defaultSetting12.columnVisibility) !== null && _props$defaultSetting11 !== void 0 ? _props$defaultSetting11 : defaultColumnVisibility,
109
+ sorting: (_props$defaultSetting13 = props.defaultSettings) !== null && _props$defaultSetting13 !== void 0 && _props$defaultSetting13.sorting ? (_props$defaultSetting14 = props.defaultSettings) === null || _props$defaultSetting14 === void 0 ? void 0 : _props$defaultSetting14.sorting.filter(sanitizeSortedColumns) : defaultSorting
110
+ };
111
+ }, []);
112
+ const table = useReactTable({
113
+ data: props.data,
114
+ columns,
115
+ getCoreRowModel: getCoreRowModel(),
116
+ initialState,
117
+ ...tableOptions,
118
+ //debugAll: true,
119
+ meta: {
120
+ columnFreezing,
121
+ columnOrdering,
122
+ currentRow,
123
+ editing,
124
+ fontSize,
125
+ hoverState,
126
+ isUsingServer: !!props.loadPage,
127
+ printing,
128
+ rowClick: rowClick,
129
+ rowDrag,
130
+ rowDrop,
131
+ rowGoto,
132
+ rowHeight,
133
+ rowSelection,
134
+ search
135
+ }
136
+ });
137
+ // listeners
138
+ useCurrentRowListener(table);
139
+ useEditingStateListener(table);
140
+ useFilteringStateListener(table, props.onFilter);
141
+ useRowSelectionListener(table, props.onRowSelect);
142
+ useSearchStateListener(table, props.onSearch);
143
+ useSettingsStateListener(table, props.onChangeSettings);
144
+ useShortcutsListener(table, props.shortcuts);
145
+ useServerLoadingListener(table, props.loadPage);
146
+ useSortingStateListener(table, props.onSort);
147
+ return {
148
+ table,
149
+ length: (_props$length = props.length) !== null && _props$length !== void 0 ? _props$length : props.data.length
150
+ };
151
+ }
152
+
153
+ export { useTable };
154
+ //# sourceMappingURL=useTable.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useTable.js","sources":["../../../../../../../../src/components/Table3/hooks/useTable.tsx"],"sourcesContent":["import React from 'react';\nimport {\n getCoreRowModel,\n useReactTable,\n Row as RTRow,\n RowData,\n TableOptions as RTableOptions,\n TableState,\n getSortedRowModel,\n getFilteredRowModel,\n} from '@tanstack/react-table';\nimport {\n ColumnAlignment,\n Table3ColumnRenderer,\n Table3Props,\n Table3ColumnHeaderMenu,\n Table3ColumnControlRenderer,\n ColumnDataType,\n Table3ColumnClassNameHandler,\n Table3ColumnFooterRenderer,\n TableStrategy,\n} from '../types';\nimport { useCurrentRow } from './features/useCurrentRow';\nimport { usePauseHoverState } from './features/usePauseHoverState';\nimport { useTablePreset } from './useTablePreset';\nimport { useRowHeight } from './features/useRowHeight';\nimport { useFontSize } from './features/useFontSize';\nimport { useRowSelectionListener } from './listeners/useRowSelectionListener';\nimport { useRowDrag } from './features/useRowDrag';\nimport { useSettingsStateListener } from './listeners/useSettingsStateListener';\nimport { columnFilterFn, globalFilterFn } from '../util/filtering';\nimport { useSortingStateListener } from './listeners/useSortingStateListener';\nimport { useFilteringStateListener } from './listeners/useFilteringStateListener';\nimport { useCurrentRowListener } from './listeners/useCurrentRowListener';\nimport { useColumnFreezing } from './features/useColumnFreezing';\nimport { useRowSelection } from './features/useRowSelection';\nimport { useRowClick } from './features/useRowClick';\nimport { useSearchStateListener } from './listeners/useSearchStateListener';\nimport { ensureOrdering, useColumnOrdering } from './features/useColumnOrdering';\nimport { useRowDrop } from './features/useRowDrop';\nimport { useConvertChildrenToColumns } from './useConvertChildrenToColumns';\nimport { useEditing } from './features/useEditing';\nimport { usePrinting } from './features/usePrinting';\nimport { useShortcutsListener } from './listeners/useShortcutsListener';\nimport { useRowGoto } from './features/useRowGoto';\nimport { useServerLoadingListener } from './listeners/useServerLoadingListener';\nimport { useEditingStateListener } from './listeners/useEditingStateListener';\nimport { useSearch } from './features/useSearch';\n\ndeclare module '@tanstack/table-core' {\n interface TableMeta<TData extends RowData> {\n columnFreezing: ReturnType<typeof useColumnFreezing>;\n columnOrdering: ReturnType<typeof useColumnOrdering>;\n currentRow: ReturnType<typeof useCurrentRow>;\n editing: ReturnType<typeof useEditing>;\n fontSize: ReturnType<typeof useFontSize>;\n hoverState: ReturnType<typeof usePauseHoverState>;\n isUsingServer: boolean;\n printing: ReturnType<typeof usePrinting>;\n rowClick: ReturnType<typeof useRowClick>;\n rowDrag: ReturnType<typeof useRowDrag>;\n rowDrop: ReturnType<typeof useRowDrop>;\n rowGoto: ReturnType<typeof useRowGoto>;\n rowHeight: ReturnType<typeof useRowHeight>;\n rowSelection: ReturnType<typeof useRowSelection>;\n search: ReturnType<typeof useSearch>;\n }\n\n interface ColumnMeta<TData extends RowData, TValue> {\n align?: ColumnAlignment;\n className?: Table3ColumnClassNameHandler<TData>;\n control?: Table3ColumnControlRenderer<TData>;\n dataType?: ColumnDataType;\n defaultWidth?: number;\n enableOrdering: boolean;\n enableSearch: boolean;\n enableTruncate: boolean;\n footer?: Table3ColumnFooterRenderer;\n header: string;\n headerClassName?: string;\n menu?: Table3ColumnHeaderMenu;\n renderer?: Table3ColumnRenderer<TValue, TData>;\n tooltip?: string;\n }\n\n interface CellContext<TData extends RowData, TValue> {\n index: number;\n tableRef: React.RefObject<HTMLDivElement>;\n }\n\n interface HeaderContext<TData extends RowData, TValue> {\n scrollToIndex: TableStrategy['scrollToIndex'];\n }\n}\n\nexport function useTable<TType = unknown>(props: Table3Props<TType>) {\n // options\n const options = useTablePreset(props);\n\n const tableOptions: Partial<RTableOptions<TType>> = {\n enableColumnFilters: options.enableFiltering,\n enableColumnResizing: options.enableColumnResizing,\n enableExpanding: options.enableRowExpansion,\n enableGlobalFilter: options.enableSearch,\n enableHiding: options.enableColumnHiding,\n enableRowSelection: options.enableRowSelection,\n enableMultiRowSelection: !options.enableRowSelectionSingle,\n enableSorting: options.enableSorting,\n };\n\n // resizing\n if (tableOptions.enableColumnResizing) {\n tableOptions.columnResizeMode = 'onChange';\n }\n\n // filtering\n if (tableOptions.enableColumnFilters) {\n if (props.onFilter) {\n tableOptions.manualFiltering = true;\n // onFilter is called as a listener to let the consumer update their data, so we don't use onColumnFiltersChange\n } else {\n tableOptions.filterFns = {\n tacoFilter: (row: RTRow<TType>, columnId: string, filter: any) => columnFilterFn(row.getValue(columnId), filter),\n };\n tableOptions.getFilteredRowModel = getFilteredRowModel();\n }\n }\n\n // search\n if (tableOptions.enableGlobalFilter) {\n if (props.onSearch) {\n tableOptions.manualFiltering = true;\n // onSearch is called as a listener to let the consumer update their data, so we don't use onColumnFiltersChange\n } else {\n tableOptions.globalFilterFn = (row: RTRow<TType>, columnId: string, searchQuery: string) =>\n globalFilterFn(row.getValue(columnId), searchQuery);\n tableOptions.getFilteredRowModel = getFilteredRowModel();\n }\n }\n\n // sorting\n if (options.enableSorting) {\n if (props.onSort) {\n tableOptions.manualSorting = true;\n // onSort is called as a listener to let the consumer update their data, so we don't use onSortingChange\n } else {\n tableOptions.getSortedRowModel = getSortedRowModel();\n }\n }\n\n // custom features\n const columnFreezing = useColumnFreezing(\n props.defaultSettings?.columnFreezingIndex ?? props.defaultColumnFreezingIndex,\n options\n );\n const columnOrdering = useColumnOrdering(options);\n const currentRow = useCurrentRow(props.defaultCurrentRowIndex);\n const editing = useEditing(options.enableEditing, props.onSave);\n const fontSize = useFontSize(options.enableFontSize, props.defaultSettings?.fontSize);\n const hoverState = usePauseHoverState();\n const printing = usePrinting(options.enablePrinting, props.loadAll);\n const rowClick = useRowClick<TType>(props.onRowClick);\n const rowDrag = useRowDrag(options.enableRowDrag);\n const rowDrop = useRowDrop(options.enableRowDrop, props.onRowDrop);\n const rowGoto = useRowGoto(options.enableRowGoto, props.onRowGoto);\n const rowHeight = useRowHeight(\n options.enableRowHeight,\n props.defaultSettings?.rowHeight ?? props.defaultSettings?.rowDensity\n );\n const rowSelection = useRowSelection();\n const search = useSearch(options.enableSearch, props.defaultSettings?.excludeUnmatchedRecordsInSearch, props.loadAll);\n\n // columns\n const { columns, defaultColumnSizing, defaultColumnVisibility, defaultSorting } = useConvertChildrenToColumns<TType>(\n props,\n options,\n editing\n );\n\n // built-in features\n const initialState: Partial<TableState> = React.useMemo(() => {\n const sanitizeSortedColumns = column => columns.find(definedColumn => definedColumn.id === column.id);\n\n return {\n columnOrder: ensureOrdering<TType>(columns, props.defaultSettings?.columnOrder),\n columnSizing: props.defaultSettings?.columnSizing ?? defaultColumnSizing,\n columnVisibility: props.defaultSettings?.columnVisibility ?? defaultColumnVisibility,\n sorting: props.defaultSettings?.sorting\n ? props.defaultSettings?.sorting.filter(sanitizeSortedColumns)\n : defaultSorting,\n };\n }, []);\n\n const table = useReactTable<TType>({\n data: props.data,\n columns,\n getCoreRowModel: getCoreRowModel(),\n initialState,\n ...tableOptions,\n //debugAll: true,\n meta: {\n columnFreezing,\n columnOrdering,\n currentRow,\n editing,\n fontSize,\n hoverState,\n isUsingServer: !!props.loadPage,\n printing,\n rowClick: rowClick as any,\n rowDrag,\n rowDrop,\n rowGoto,\n rowHeight,\n rowSelection,\n search,\n },\n });\n\n // listeners\n useCurrentRowListener(table);\n useEditingStateListener(table);\n useFilteringStateListener(table, props.onFilter);\n useRowSelectionListener(table, props.onRowSelect);\n useSearchStateListener(table, props.onSearch);\n useSettingsStateListener(table, props.onChangeSettings);\n useShortcutsListener(table, props.shortcuts);\n useServerLoadingListener(table, props.loadPage);\n useSortingStateListener(table, props.onSort);\n\n return { table, length: props.length ?? props.data.length };\n}\n"],"names":["useTable","props","options","useTablePreset","tableOptions","enableColumnFilters","enableFiltering","enableColumnResizing","enableExpanding","enableRowExpansion","enableGlobalFilter","enableSearch","enableHiding","enableColumnHiding","enableRowSelection","enableMultiRowSelection","enableRowSelectionSingle","enableSorting","columnResizeMode","onFilter","manualFiltering","filterFns","tacoFilter","row","columnId","filter","columnFilterFn","getValue","getFilteredRowModel","onSearch","globalFilterFn","searchQuery","onSort","manualSorting","getSortedRowModel","columnFreezing","useColumnFreezing","defaultSettings","columnFreezingIndex","defaultColumnFreezingIndex","columnOrdering","useColumnOrdering","currentRow","useCurrentRow","defaultCurrentRowIndex","editing","useEditing","enableEditing","onSave","fontSize","useFontSize","enableFontSize","hoverState","usePauseHoverState","printing","usePrinting","enablePrinting","loadAll","rowClick","useRowClick","onRowClick","rowDrag","useRowDrag","enableRowDrag","rowDrop","useRowDrop","enableRowDrop","onRowDrop","rowGoto","useRowGoto","enableRowGoto","onRowGoto","rowHeight","useRowHeight","enableRowHeight","rowDensity","rowSelection","useRowSelection","search","useSearch","excludeUnmatchedRecordsInSearch","columns","defaultColumnSizing","defaultColumnVisibility","defaultSorting","useConvertChildrenToColumns","initialState","React","useMemo","sanitizeSortedColumns","column","find","definedColumn","id","columnOrder","ensureOrdering","columnSizing","columnVisibility","sorting","table","useReactTable","data","getCoreRowModel","meta","isUsingServer","loadPage","useCurrentRowListener","useEditingStateListener","useFilteringStateListener","useRowSelectionListener","onRowSelect","useSearchStateListener","useSettingsStateListener","onChangeSettings","useShortcutsListener","shortcuts","useServerLoadingListener","useSortingStateListener","length"],"mappings":"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"}
@@ -0,0 +1,128 @@
1
+ import React__default from 'react';
2
+ import { _finallyRethrows, _catch } from '../../../../../../node_modules/babel-plugin-transform-async-to-promises/helpers.mjs.js';
3
+
4
+ function useTableData(fetch, fetchAll, options = {
5
+ pageSize: 100
6
+ }) {
7
+ const {
8
+ pageSize
9
+ } = options;
10
+ // track the data length, we don't know it until the first request
11
+ const length = React__default.useRef(undefined);
12
+ // data will be filled after the first request, then we'll update values in place
13
+ const [data, setData] = React__default.useState([]);
14
+ // track which pages have been loaded to dedupe requests
15
+ const _pendingPageRequests = React__default.useRef({});
16
+ const lastUsedSorting = React__default.useRef([]);
17
+ const lastUsedFilters = React__default.useRef([]);
18
+ const lastUsedSearch = React__default.useRef();
19
+ const loadPage = function (pageIndex, sorting, filters, search) {
20
+ try {
21
+ let reset = false;
22
+ // sorting or filters changed, reset everything
23
+ if (JSON.stringify(sorting) !== JSON.stringify(lastUsedSorting.current) || JSON.stringify(filters) !== JSON.stringify(lastUsedFilters.current) || search !== lastUsedSearch.current) {
24
+ _pendingPageRequests.current = {};
25
+ // nuke the dataset so that we "start again" after sorting
26
+ reset = true;
27
+ }
28
+ if (_pendingPageRequests.current[pageIndex]) {
29
+ // if page is already loaded/loading, abort, otherwise mark it as loading
30
+ return Promise.resolve();
31
+ } else {
32
+ _pendingPageRequests.current[pageIndex] = true;
33
+ }
34
+ // set the sorting so we can track if it changed between loads
35
+ lastUsedSorting.current = sorting;
36
+ // set the filters so we can track if it changed between loads
37
+ lastUsedFilters.current = filters;
38
+ // set the search so we can track if it changed between loads
39
+ lastUsedSearch.current = search;
40
+ const _temp = _finallyRethrows(function () {
41
+ return _catch(function () {
42
+ return Promise.resolve(fetch(pageIndex, pageSize, sorting, filters, search)).then(function (response) {
43
+ // update state, here we do some "magic" to support "load in place"
44
+ setData(currentData => {
45
+ let nextData;
46
+ // reset table state if:
47
+ // - the length isn't set at all (first load)
48
+ // - the client length and server length are different (the data changed)
49
+ if (reset || length.current !== response.length) {
50
+ length.current = response.length;
51
+ nextData = Array(length.current).fill(undefined);
52
+ } else {
53
+ nextData = [...currentData];
54
+ }
55
+ const startIndex = pageIndex * pageSize;
56
+ nextData.splice(startIndex, pageSize, ...response.data);
57
+ return nextData;
58
+ });
59
+ });
60
+ }, function () {});
61
+ }, function (_wasThrown, _result) {
62
+ _pendingPageRequests.current[pageIndex] = false;
63
+ if (_wasThrown) throw _result;
64
+ return _result;
65
+ });
66
+ return Promise.resolve(_temp && _temp.then ? _temp.then(function () {}) : void 0);
67
+ } catch (e) {
68
+ return Promise.reject(e);
69
+ }
70
+ };
71
+ const loadAll = function (sorting, filters, search) {
72
+ try {
73
+ const _temp2 = _catch(function () {
74
+ return Promise.resolve(fetchAll(sorting, filters, search)).then(function (response) {
75
+ length.current = response.length;
76
+ setData(() => {
77
+ let nextData;
78
+ if (response.data.length !== response.length) {
79
+ nextData = Array(response.length).fill(undefined);
80
+ nextData.splice(0, response.data.length, ...response.data);
81
+ } else {
82
+ nextData = [...response.data];
83
+ }
84
+ return nextData;
85
+ });
86
+ });
87
+ }, function () {});
88
+ return Promise.resolve(_temp2 && _temp2.then ? _temp2.then(function () {}) : void 0);
89
+ } catch (e) {
90
+ return Promise.reject(e);
91
+ }
92
+ };
93
+ // we reset the page to 0 whenever sorting, filtering or search changes
94
+ const handleSort = function (sorting) {
95
+ try {
96
+ return loadPage(0, sorting, lastUsedFilters.current, lastUsedSearch.current);
97
+ } catch (e) {
98
+ return Promise.reject(e);
99
+ }
100
+ };
101
+ const handleFilter = function (filters) {
102
+ try {
103
+ return loadPage(0, lastUsedSorting.current, filters, lastUsedSearch.current);
104
+ } catch (e) {
105
+ return Promise.reject(e);
106
+ }
107
+ };
108
+ const handleSearch = function (query) {
109
+ try {
110
+ return loadAll(lastUsedSorting.current, lastUsedFilters.current, query);
111
+ } catch (e) {
112
+ return Promise.reject(e);
113
+ }
114
+ };
115
+ return {
116
+ data,
117
+ length: length.current,
118
+ loadAll,
119
+ loadPage,
120
+ onFilter: handleFilter,
121
+ onSearch: handleSearch,
122
+ onSort: handleSort,
123
+ pageSize
124
+ };
125
+ }
126
+
127
+ export { useTableData };
128
+ //# sourceMappingURL=useTableData.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useTableData.js","sources":["../../../../../../../../src/components/Table3/hooks/useTableData.ts"],"sourcesContent":["import React from 'react';\nimport {\n ColumnFilter,\n ColumnSort,\n Table3FilterHandler,\n Table3LoadAllHandler,\n Table3LoadPageHandler,\n Table3SearchHandler,\n Table3SortHandler,\n} from '../types';\n\nexport type useTable3DataFetcher<TType = unknown> = (\n pageIndex: number,\n pageSize: number,\n sorting: ColumnSort[],\n filters: ColumnFilter[],\n search: string | undefined\n) => Promise<{ data: TType[]; length: number }>;\n\nexport type useTable3AllDataFetcher<TType = unknown> = (\n sorting: ColumnSort[],\n filters: ColumnFilter[],\n search: string | undefined\n) => Promise<{ data: TType[]; length: number }>;\n\nexport type useTable3DataOptions = { pageSize: number };\n\nexport type useTableDataValues<TType = unknown> = {\n data: TType[];\n length: number | undefined;\n loadAll: Table3LoadAllHandler;\n loadPage: Table3LoadPageHandler;\n onFilter: Table3FilterHandler;\n onSearch: Table3SearchHandler;\n onSort: Table3SortHandler;\n pageSize: number;\n};\n\nexport function useTableData<TType = unknown>(\n fetch: useTable3DataFetcher<TType>,\n fetchAll: useTable3AllDataFetcher<TType>,\n options: useTable3DataOptions = { pageSize: 100 }\n): useTableDataValues<TType> {\n const { pageSize } = options;\n\n // track the data length, we don't know it until the first request\n const length = React.useRef<number | undefined>(undefined);\n // data will be filled after the first request, then we'll update values in place\n const [data, setData] = React.useState<any[]>([]);\n // track which pages have been loaded to dedupe requests\n const _pendingPageRequests = React.useRef({});\n const lastUsedSorting = React.useRef<ColumnSort[]>([]);\n const lastUsedFilters = React.useRef<ColumnFilter[]>([]);\n const lastUsedSearch = React.useRef<string>();\n\n const loadPage = async (pageIndex: number, sorting: ColumnSort[], filters: ColumnFilter[], search: string | undefined) => {\n let reset = false;\n\n // sorting or filters changed, reset everything\n if (\n JSON.stringify(sorting) !== JSON.stringify(lastUsedSorting.current) ||\n JSON.stringify(filters) !== JSON.stringify(lastUsedFilters.current) ||\n search !== lastUsedSearch.current\n ) {\n _pendingPageRequests.current = {};\n // nuke the dataset so that we \"start again\" after sorting\n reset = true;\n }\n\n if (_pendingPageRequests.current[pageIndex]) {\n // if page is already loaded/loading, abort, otherwise mark it as loading\n return;\n } else {\n _pendingPageRequests.current[pageIndex] = true;\n }\n\n // set the sorting so we can track if it changed between loads\n lastUsedSorting.current = sorting;\n // set the filters so we can track if it changed between loads\n lastUsedFilters.current = filters;\n // set the search so we can track if it changed between loads\n lastUsedSearch.current = search;\n\n try {\n const response = await fetch(pageIndex, pageSize, sorting, filters, search);\n\n // update state, here we do some \"magic\" to support \"load in place\"\n setData(currentData => {\n let nextData;\n\n // reset table state if:\n // - the length isn't set at all (first load)\n // - the client length and server length are different (the data changed)\n if (reset || length.current !== response.length) {\n length.current = response.length;\n nextData = Array(length.current).fill(undefined);\n } else {\n nextData = [...currentData];\n }\n\n const startIndex = pageIndex * pageSize;\n nextData.splice(startIndex, pageSize, ...response.data);\n return nextData;\n });\n } catch {\n //\n } finally {\n _pendingPageRequests.current[pageIndex] = false;\n }\n };\n\n const loadAll = async (sorting: ColumnSort[], filters: ColumnFilter[], search: string | undefined) => {\n try {\n const response = await fetchAll(sorting, filters, search);\n length.current = response.length;\n\n setData(() => {\n let nextData;\n\n if (response.data.length !== response.length) {\n nextData = Array(response.length).fill(undefined);\n nextData.splice(0, response.data.length, ...response.data);\n } else {\n nextData = [...response.data];\n }\n\n return nextData;\n });\n } catch {\n //\n }\n };\n\n // we reset the page to 0 whenever sorting, filtering or search changes\n const handleSort = async (sorting: ColumnSort[]) => loadPage(0, sorting, lastUsedFilters.current, lastUsedSearch.current);\n const handleFilter = async (filters: ColumnFilter[]) => loadPage(0, lastUsedSorting.current, filters, lastUsedSearch.current);\n const handleSearch = async (query: string) => loadAll(lastUsedSorting.current, lastUsedFilters.current, query);\n\n return {\n data,\n length: length.current,\n loadAll,\n loadPage,\n onFilter: handleFilter,\n onSearch: handleSearch as any,\n onSort: handleSort,\n pageSize,\n };\n}\n"],"names":["useTableData","fetch","fetchAll","options","pageSize","length","React","useRef","undefined","data","setData","useState","_pendingPageRequests","lastUsedSorting","lastUsedFilters","lastUsedSearch","loadPage","pageIndex","sorting","filters","search","reset","JSON","stringify","current","response","currentData","nextData","Array","fill","startIndex","splice","loadAll","handleSort","handleFilter","handleSearch","query","onFilter","onSearch","onSort"],"mappings":"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"}