@economic/taco 1.41.0 → 2.0.0-alpha.5

Sign up to get free protection for your applications and to get access to all the features.
Files changed (310) 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/Input/Input.d.ts +1 -1
  4. package/dist/components/Menu/Menu.d.ts +2 -0
  5. package/dist/components/Menu/components/Item.d.ts +6 -1
  6. package/dist/components/Menu/components/Link.d.ts +1 -1
  7. package/dist/components/Menu/components/SubMenu.d.ts +8 -0
  8. package/dist/components/Navigation2/components/Link.d.ts +1 -1
  9. package/dist/components/Popover/Popover.d.ts +3 -0
  10. package/dist/components/Provider/Localization.d.ts +148 -0
  11. package/dist/components/SearchInput/SearchInput.d.ts +2 -0
  12. package/dist/components/SearchInput2/SearchInput2.d.ts +23 -0
  13. package/dist/components/Select2/components/Option.d.ts +1 -1
  14. package/dist/components/Select2/components/Search.d.ts +1 -1
  15. package/dist/components/Table2/hooks/useTable.d.ts +1 -1
  16. package/dist/components/Table3/Table3.d.ts +12 -0
  17. package/dist/components/Table3/components/columns/cell/Cell.d.ts +6 -0
  18. package/dist/components/Table3/components/columns/cell/DisplayCell.d.ts +22 -0
  19. package/dist/components/Table3/components/columns/cell/EditingCell.d.ts +7 -0
  20. package/dist/components/Table3/components/columns/cell/Indicator.d.ts +17 -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/Table3/components/toolbar/ColumnSettings.d.ts +6 -0
  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 +310 -0
  88. package/dist/components/Table3/util/columns.d.ts +7 -0
  89. package/dist/components/Table3/util/editing.d.ts +4 -0
  90. package/dist/components/Table3/util/filtering.d.ts +3 -0
  91. package/dist/components/Tag/Tag.d.ts +1 -1
  92. package/dist/esm/index.css +130 -2
  93. package/dist/esm/node_modules/babel-plugin-transform-async-to-promises/helpers.mjs.js +2 -2
  94. package/dist/esm/node_modules/babel-plugin-transform-async-to-promises/helpers.mjs.js.map +1 -1
  95. package/dist/esm/packages/taco/src/components/Checkbox/Checkbox.js +2 -1
  96. package/dist/esm/packages/taco/src/components/Checkbox/Checkbox.js.map +1 -1
  97. package/dist/esm/packages/taco/src/components/Datepicker/useDatepicker.js +4 -1
  98. package/dist/esm/packages/taco/src/components/Datepicker/useDatepicker.js.map +1 -1
  99. package/dist/esm/packages/taco/src/components/Drawer/components/Content.js +1 -1
  100. package/dist/esm/packages/taco/src/components/Icon/components/FontSize.js +19 -0
  101. package/dist/esm/packages/taco/src/components/Icon/components/FontSize.js.map +1 -0
  102. package/dist/esm/packages/taco/src/components/Icon/components/{DensitySpacious.js → HeightExtraTall.js} +4 -4
  103. package/dist/esm/packages/taco/src/components/Icon/components/{DensitySpacious.js.map → HeightExtraTall.js.map} +1 -1
  104. package/dist/esm/packages/taco/src/components/Icon/components/{DensityNormal.js → HeightMedium.js} +4 -4
  105. package/dist/esm/packages/taco/src/components/Icon/components/HeightMedium.js.map +1 -0
  106. package/dist/esm/packages/taco/src/components/Icon/components/{DensityCompact.js → HeightShort.js} +4 -4
  107. package/dist/esm/packages/taco/src/components/Icon/components/HeightShort.js.map +1 -0
  108. package/dist/esm/packages/taco/src/components/Icon/components/{DensityComfortable.js → HeightTall.js} +4 -4
  109. package/dist/esm/packages/taco/src/components/Icon/components/HeightTall.js.map +1 -0
  110. package/dist/esm/packages/taco/src/components/Icon/components/index.js +10 -8
  111. package/dist/esm/packages/taco/src/components/Icon/components/index.js.map +1 -1
  112. package/dist/esm/packages/taco/src/components/Menu/Menu.js +2 -0
  113. package/dist/esm/packages/taco/src/components/Menu/Menu.js.map +1 -1
  114. package/dist/esm/packages/taco/src/components/Menu/components/Item.js +20 -2
  115. package/dist/esm/packages/taco/src/components/Menu/components/Item.js.map +1 -1
  116. package/dist/esm/packages/taco/src/components/Menu/components/SubMenu.js +22 -0
  117. package/dist/esm/packages/taco/src/components/Menu/components/SubMenu.js.map +1 -0
  118. package/dist/esm/packages/taco/src/components/Popover/Popover.js +11 -3
  119. package/dist/esm/packages/taco/src/components/Popover/Popover.js.map +1 -1
  120. package/dist/esm/packages/taco/src/components/Provider/Localization.js +145 -0
  121. package/dist/esm/packages/taco/src/components/Provider/Localization.js.map +1 -1
  122. package/dist/esm/packages/taco/src/components/SearchInput/SearchInput.js.map +1 -1
  123. package/dist/esm/packages/taco/src/components/SearchInput2/SearchInput2.js +196 -0
  124. package/dist/esm/packages/taco/src/components/SearchInput2/SearchInput2.js.map +1 -0
  125. package/dist/esm/packages/taco/src/components/Shortcut/Shortcut.js.map +1 -1
  126. package/dist/esm/packages/taco/src/components/Switch/Switch.js +3 -1
  127. package/dist/esm/packages/taco/src/components/Switch/Switch.js.map +1 -1
  128. package/dist/esm/packages/taco/src/components/Table2/components/EditModeButton.js +1 -1
  129. package/dist/esm/packages/taco/src/components/Table2/components/RowDensityButton.js +13 -1
  130. package/dist/esm/packages/taco/src/components/Table2/components/RowDensityButton.js.map +1 -1
  131. package/dist/esm/packages/taco/src/components/Table2/components/Search.js +1 -1
  132. package/dist/esm/packages/taco/src/components/Table2/components/filters/FiltersButton.js +1 -1
  133. package/dist/esm/packages/taco/src/components/Table3/Table3.js +145 -0
  134. package/dist/esm/packages/taco/src/components/Table3/Table3.js.map +1 -0
  135. package/dist/esm/packages/taco/src/components/Table3/components/columns/cell/Cell.js +27 -0
  136. package/dist/esm/packages/taco/src/components/Table3/components/columns/cell/Cell.js.map +1 -0
  137. package/dist/esm/packages/taco/src/components/Table3/components/columns/cell/DisplayCell.js +131 -0
  138. package/dist/esm/packages/taco/src/components/Table3/components/columns/cell/DisplayCell.js.map +1 -0
  139. package/dist/esm/packages/taco/src/components/Table3/components/columns/cell/EditingCell.js +286 -0
  140. package/dist/esm/packages/taco/src/components/Table3/components/columns/cell/EditingCell.js.map +1 -0
  141. package/dist/esm/packages/taco/src/components/Table3/components/columns/cell/Indicator.js +74 -0
  142. package/dist/esm/packages/taco/src/components/Table3/components/columns/cell/Indicator.js.map +1 -0
  143. package/dist/esm/packages/taco/src/components/Table3/components/columns/footer/Footer.js +50 -0
  144. package/dist/esm/packages/taco/src/components/Table3/components/columns/footer/Footer.js.map +1 -0
  145. package/dist/esm/packages/taco/src/components/Table3/components/columns/footer/Summary.js +30 -0
  146. package/dist/esm/packages/taco/src/components/Table3/components/columns/footer/Summary.js.map +1 -0
  147. package/dist/esm/packages/taco/src/components/Table3/components/columns/header/Goto.js +27 -0
  148. package/dist/esm/packages/taco/src/components/Table3/components/columns/header/Goto.js.map +1 -0
  149. package/dist/esm/packages/taco/src/components/Table3/components/columns/header/Header.js +134 -0
  150. package/dist/esm/packages/taco/src/components/Table3/components/columns/header/Header.js.map +1 -0
  151. package/dist/esm/packages/taco/src/components/Table3/components/columns/header/Menu.js +156 -0
  152. package/dist/esm/packages/taco/src/components/Table3/components/columns/header/Menu.js.map +1 -0
  153. package/dist/esm/packages/taco/src/components/Table3/components/columns/header/Resizer.js +42 -0
  154. package/dist/esm/packages/taco/src/components/Table3/components/columns/header/Resizer.js.map +1 -0
  155. package/dist/esm/packages/taco/src/components/Table3/components/columns/header/SortIndicator.js +38 -0
  156. package/dist/esm/packages/taco/src/components/Table3/components/columns/header/SortIndicator.js.map +1 -0
  157. package/dist/esm/packages/taco/src/components/Table3/components/columns/internal/Actions.js +108 -0
  158. package/dist/esm/packages/taco/src/components/Table3/components/columns/internal/Actions.js.map +1 -0
  159. package/dist/esm/packages/taco/src/components/Table3/components/columns/internal/Drag.js +86 -0
  160. package/dist/esm/packages/taco/src/components/Table3/components/columns/internal/Drag.js.map +1 -0
  161. package/dist/esm/packages/taco/src/components/Table3/components/columns/internal/EditingActions.js +124 -0
  162. package/dist/esm/packages/taco/src/components/Table3/components/columns/internal/EditingActions.js.map +1 -0
  163. package/dist/esm/packages/taco/src/components/Table3/components/columns/internal/Expansion.js +103 -0
  164. package/dist/esm/packages/taco/src/components/Table3/components/columns/internal/Expansion.js.map +1 -0
  165. package/dist/esm/packages/taco/src/components/Table3/components/columns/internal/Selection.js +121 -0
  166. package/dist/esm/packages/taco/src/components/Table3/components/columns/internal/Selection.js.map +1 -0
  167. package/dist/esm/packages/taco/src/components/Table3/components/columns/styles.js +17 -0
  168. package/dist/esm/packages/taco/src/components/Table3/components/columns/styles.js.map +1 -0
  169. package/dist/esm/packages/taco/src/components/Table3/components/rows/ExpandedRow.js +27 -0
  170. package/dist/esm/packages/taco/src/components/Table3/components/rows/ExpandedRow.js.map +1 -0
  171. package/dist/esm/packages/taco/src/components/Table3/components/rows/Row.js +255 -0
  172. package/dist/esm/packages/taco/src/components/Table3/components/rows/Row.js.map +1 -0
  173. package/dist/esm/packages/taco/src/components/Table3/components/rows/RowContext.js +13 -0
  174. package/dist/esm/packages/taco/src/components/Table3/components/rows/RowContext.js.map +1 -0
  175. package/dist/esm/packages/taco/src/components/Table3/components/rows/SkeletonRow.js +43 -0
  176. package/dist/esm/packages/taco/src/components/Table3/components/rows/SkeletonRow.js.map +1 -0
  177. package/dist/esm/packages/taco/src/components/Table3/components/rows/styles.js +9 -0
  178. package/dist/esm/packages/taco/src/components/Table3/components/rows/styles.js.map +1 -0
  179. package/dist/esm/packages/taco/src/components/Table3/components/toolbar/ColumnSettings.js +105 -0
  180. package/dist/esm/packages/taco/src/components/Table3/components/toolbar/ColumnSettings.js.map +1 -0
  181. package/dist/esm/packages/taco/src/components/Table3/components/toolbar/EditButton.js +45 -0
  182. package/dist/esm/packages/taco/src/components/Table3/components/toolbar/EditButton.js.map +1 -0
  183. package/dist/esm/packages/taco/src/components/Table3/components/toolbar/Filter/filters/Filters.js +148 -0
  184. package/dist/esm/packages/taco/src/components/Table3/components/toolbar/Filter/filters/Filters.js.map +1 -0
  185. package/dist/esm/packages/taco/src/components/Table3/components/toolbar/Filter/filters/components/Filter.js +107 -0
  186. package/dist/esm/packages/taco/src/components/Table3/components/toolbar/Filter/filters/components/Filter.js.map +1 -0
  187. package/dist/esm/packages/taco/src/components/Table3/components/toolbar/Filter/filters/components/FilterColumn.js +28 -0
  188. package/dist/esm/packages/taco/src/components/Table3/components/toolbar/Filter/filters/components/FilterColumn.js.map +1 -0
  189. package/dist/esm/packages/taco/src/components/Table3/components/toolbar/Filter/filters/components/FilterComparator.js +60 -0
  190. package/dist/esm/packages/taco/src/components/Table3/components/toolbar/Filter/filters/components/FilterComparator.js.map +1 -0
  191. package/dist/esm/packages/taco/src/components/Table3/components/toolbar/Filter/filters/components/FilterValue.js +89 -0
  192. package/dist/esm/packages/taco/src/components/Table3/components/toolbar/Filter/filters/components/FilterValue.js.map +1 -0
  193. package/dist/esm/packages/taco/src/components/Table3/components/toolbar/Filter/filters/components/Placeholder.js +45 -0
  194. package/dist/esm/packages/taco/src/components/Table3/components/toolbar/Filter/filters/components/Placeholder.js.map +1 -0
  195. package/dist/esm/packages/taco/src/components/Table3/components/toolbar/FontSize.js +25 -0
  196. package/dist/esm/packages/taco/src/components/Table3/components/toolbar/FontSize.js.map +1 -0
  197. package/dist/esm/packages/taco/src/components/Table3/components/toolbar/PrintButton/PrintButton.js +99 -0
  198. package/dist/esm/packages/taco/src/components/Table3/components/toolbar/PrintButton/PrintButton.js.map +1 -0
  199. package/dist/esm/packages/taco/src/components/Table3/components/toolbar/PrintButton/PrintIFrame.js +224 -0
  200. package/dist/esm/packages/taco/src/components/Table3/components/toolbar/PrintButton/PrintIFrame.js.map +1 -0
  201. package/dist/esm/packages/taco/src/components/Table3/components/toolbar/PrintButton/hooks/useParentStylesheets.js +88 -0
  202. package/dist/esm/packages/taco/src/components/Table3/components/toolbar/PrintButton/hooks/useParentStylesheets.js.map +1 -0
  203. package/dist/esm/packages/taco/src/components/Table3/components/toolbar/RowHeight.js +26 -0
  204. package/dist/esm/packages/taco/src/components/Table3/components/toolbar/RowHeight.js.map +1 -0
  205. package/dist/esm/packages/taco/src/components/Table3/components/toolbar/Search.js +137 -0
  206. package/dist/esm/packages/taco/src/components/Table3/components/toolbar/Search.js.map +1 -0
  207. package/dist/esm/packages/taco/src/components/Table3/components/toolbar/Toolbar.js +85 -0
  208. package/dist/esm/packages/taco/src/components/Table3/components/toolbar/Toolbar.js.map +1 -0
  209. package/dist/esm/packages/taco/src/components/Table3/hooks/features/useColumnFreezing.js +87 -0
  210. package/dist/esm/packages/taco/src/components/Table3/hooks/features/useColumnFreezing.js.map +1 -0
  211. package/dist/esm/packages/taco/src/components/Table3/hooks/features/useColumnOrdering.js +45 -0
  212. package/dist/esm/packages/taco/src/components/Table3/hooks/features/useColumnOrdering.js.map +1 -0
  213. package/dist/esm/packages/taco/src/components/Table3/hooks/features/useCurrentRow.js +52 -0
  214. package/dist/esm/packages/taco/src/components/Table3/hooks/features/useCurrentRow.js.map +1 -0
  215. package/dist/esm/packages/taco/src/components/Table3/hooks/features/useEditing.js +197 -0
  216. package/dist/esm/packages/taco/src/components/Table3/hooks/features/useEditing.js.map +1 -0
  217. package/dist/esm/packages/taco/src/components/Table3/hooks/features/useFontSize.js +13 -0
  218. package/dist/esm/packages/taco/src/components/Table3/hooks/features/useFontSize.js.map +1 -0
  219. package/dist/esm/packages/taco/src/components/Table3/hooks/features/usePauseHoverState.js +19 -0
  220. package/dist/esm/packages/taco/src/components/Table3/hooks/features/usePauseHoverState.js.map +1 -0
  221. package/dist/esm/packages/taco/src/components/Table3/hooks/features/usePrinting.js +9 -0
  222. package/dist/esm/packages/taco/src/components/Table3/hooks/features/usePrinting.js.map +1 -0
  223. package/dist/esm/packages/taco/src/components/Table3/hooks/features/useRowClick.js +25 -0
  224. package/dist/esm/packages/taco/src/components/Table3/hooks/features/useRowClick.js.map +1 -0
  225. package/dist/esm/packages/taco/src/components/Table3/hooks/features/useRowDrag.js +13 -0
  226. package/dist/esm/packages/taco/src/components/Table3/hooks/features/useRowDrag.js.map +1 -0
  227. package/dist/esm/packages/taco/src/components/Table3/hooks/features/useRowDrop.js +9 -0
  228. package/dist/esm/packages/taco/src/components/Table3/hooks/features/useRowDrop.js.map +1 -0
  229. package/dist/esm/packages/taco/src/components/Table3/hooks/features/useRowGoto.js +9 -0
  230. package/dist/esm/packages/taco/src/components/Table3/hooks/features/useRowGoto.js.map +1 -0
  231. package/dist/esm/packages/taco/src/components/Table3/hooks/features/useRowHeight.js +27 -0
  232. package/dist/esm/packages/taco/src/components/Table3/hooks/features/useRowHeight.js.map +1 -0
  233. package/dist/esm/packages/taco/src/components/Table3/hooks/features/useRowSelection.js +29 -0
  234. package/dist/esm/packages/taco/src/components/Table3/hooks/features/useRowSelection.js.map +1 -0
  235. package/dist/esm/packages/taco/src/components/Table3/hooks/features/useSearch.js +27 -0
  236. package/dist/esm/packages/taco/src/components/Table3/hooks/features/useSearch.js.map +1 -0
  237. package/dist/esm/packages/taco/src/components/Table3/hooks/listeners/useCurrentRowListener.js +14 -0
  238. package/dist/esm/packages/taco/src/components/Table3/hooks/listeners/useCurrentRowListener.js.map +1 -0
  239. package/dist/esm/packages/taco/src/components/Table3/hooks/listeners/useEditingStateListener.js +24 -0
  240. package/dist/esm/packages/taco/src/components/Table3/hooks/listeners/useEditingStateListener.js.map +1 -0
  241. package/dist/esm/packages/taco/src/components/Table3/hooks/listeners/useFilteringStateListener.js +19 -0
  242. package/dist/esm/packages/taco/src/components/Table3/hooks/listeners/useFilteringStateListener.js.map +1 -0
  243. package/dist/esm/packages/taco/src/components/Table3/hooks/listeners/useRowSelectionListener.js +19 -0
  244. package/dist/esm/packages/taco/src/components/Table3/hooks/listeners/useRowSelectionListener.js.map +1 -0
  245. package/dist/esm/packages/taco/src/components/Table3/hooks/listeners/useSearchStateListener.js +51 -0
  246. package/dist/esm/packages/taco/src/components/Table3/hooks/listeners/useSearchStateListener.js.map +1 -0
  247. package/dist/esm/packages/taco/src/components/Table3/hooks/listeners/useServerLoadingListener.js +16 -0
  248. package/dist/esm/packages/taco/src/components/Table3/hooks/listeners/useServerLoadingListener.js.map +1 -0
  249. package/dist/esm/packages/taco/src/components/Table3/hooks/listeners/useSettingsStateListener.js +26 -0
  250. package/dist/esm/packages/taco/src/components/Table3/hooks/listeners/useSettingsStateListener.js.map +1 -0
  251. package/dist/esm/packages/taco/src/components/Table3/hooks/listeners/useShortcutsListener.js +49 -0
  252. package/dist/esm/packages/taco/src/components/Table3/hooks/listeners/useShortcutsListener.js.map +1 -0
  253. package/dist/esm/packages/taco/src/components/Table3/hooks/listeners/useSortingStateListener.js +17 -0
  254. package/dist/esm/packages/taco/src/components/Table3/hooks/listeners/useSortingStateListener.js.map +1 -0
  255. package/dist/esm/packages/taco/src/components/Table3/hooks/useConvertChildrenToColumns.js +116 -0
  256. package/dist/esm/packages/taco/src/components/Table3/hooks/useConvertChildrenToColumns.js.map +1 -0
  257. package/dist/esm/packages/taco/src/components/Table3/hooks/useCssGrid.js +56 -0
  258. package/dist/esm/packages/taco/src/components/Table3/hooks/useCssGrid.js.map +1 -0
  259. package/dist/esm/packages/taco/src/components/Table3/hooks/useCssVars.js +61 -0
  260. package/dist/esm/packages/taco/src/components/Table3/hooks/useCssVars.js.map +1 -0
  261. package/dist/esm/packages/taco/src/components/Table3/hooks/useTable.js +154 -0
  262. package/dist/esm/packages/taco/src/components/Table3/hooks/useTable.js.map +1 -0
  263. package/dist/esm/packages/taco/src/components/Table3/hooks/useTableData.js +128 -0
  264. package/dist/esm/packages/taco/src/components/Table3/hooks/useTableData.js.map +1 -0
  265. package/dist/esm/packages/taco/src/components/Table3/hooks/useTablePreset.js +98 -0
  266. package/dist/esm/packages/taco/src/components/Table3/hooks/useTablePreset.js.map +1 -0
  267. package/dist/esm/packages/taco/src/components/Table3/hooks/useTableRefInstanceSetup.js +19 -0
  268. package/dist/esm/packages/taco/src/components/Table3/hooks/useTableRefInstanceSetup.js.map +1 -0
  269. package/dist/esm/packages/taco/src/components/Table3/strategies/index.js +8 -0
  270. package/dist/esm/packages/taco/src/components/Table3/strategies/index.js.map +1 -0
  271. package/dist/esm/packages/taco/src/components/Table3/strategies/virtualised.js +113 -0
  272. package/dist/esm/packages/taco/src/components/Table3/strategies/virtualised.js.map +1 -0
  273. package/dist/esm/packages/taco/src/components/Table3/types.js +18 -0
  274. package/dist/esm/packages/taco/src/components/Table3/types.js.map +1 -0
  275. package/dist/esm/packages/taco/src/components/Table3/util/columns.js +39 -0
  276. package/dist/esm/packages/taco/src/components/Table3/util/columns.js.map +1 -0
  277. package/dist/esm/packages/taco/src/components/Table3/util/editing.js +41 -0
  278. package/dist/esm/packages/taco/src/components/Table3/util/editing.js.map +1 -0
  279. package/dist/esm/packages/taco/src/components/Table3/util/filtering.js +102 -0
  280. package/dist/esm/packages/taco/src/components/Table3/util/filtering.js.map +1 -0
  281. package/dist/esm/packages/taco/src/hooks/useGlobalKeyDown.js +10 -5
  282. package/dist/esm/packages/taco/src/hooks/useGlobalKeyDown.js.map +1 -1
  283. package/dist/esm/packages/taco/src/hooks/useLazyEffect.js +16 -0
  284. package/dist/esm/packages/taco/src/hooks/useLazyEffect.js.map +1 -0
  285. package/dist/esm/packages/taco/src/index.js +5 -1
  286. package/dist/esm/packages/taco/src/index.js.map +1 -1
  287. package/dist/esm/packages/taco/src/primitives/Button.js +6 -17
  288. package/dist/esm/packages/taco/src/primitives/Button.js.map +1 -1
  289. package/dist/esm/packages/taco/src/utils/hooks/useTruncated.js +6 -6
  290. package/dist/esm/packages/taco/src/utils/hooks/useTruncated.js.map +1 -1
  291. package/dist/esm/packages/taco/src/utils/input.js +14 -1
  292. package/dist/esm/packages/taco/src/utils/input.js.map +1 -1
  293. package/dist/hooks/useGlobalKeyDown.d.ts +1 -1
  294. package/dist/hooks/useLazyEffect.d.ts +2 -0
  295. package/dist/index.css +130 -2
  296. package/dist/index.d.ts +3 -0
  297. package/dist/taco.cjs.development.js +5171 -240
  298. package/dist/taco.cjs.development.js.map +1 -1
  299. package/dist/taco.cjs.production.min.js +1 -1
  300. package/dist/taco.cjs.production.min.js.map +1 -1
  301. package/dist/utils/input.d.ts +1 -0
  302. package/package.json +2 -2
  303. package/types.json +2322 -25
  304. package/dist/esm/packages/taco/src/components/Icon/components/DensityComfortable.js.map +0 -1
  305. package/dist/esm/packages/taco/src/components/Icon/components/DensityCompact.js.map +0 -1
  306. package/dist/esm/packages/taco/src/components/Icon/components/DensityNormal.js.map +0 -1
  307. /package/dist/components/Icon/components/{DensityComfortable.d.ts → FontSize.d.ts} +0 -0
  308. /package/dist/components/Icon/components/{DensityCompact.d.ts → HeightExtraTall.d.ts} +0 -0
  309. /package/dist/components/Icon/components/{DensityNormal.d.ts → HeightMedium.d.ts} +0 -0
  310. /package/dist/components/Icon/components/{DensitySpacious.d.ts → HeightShort.d.ts} +0 -0
@@ -0,0 +1,88 @@
1
+ import React__default from 'react';
2
+
3
+ const PRINT_STYLES = `
4
+ @page {
5
+ margin: 16px;
6
+ }
7
+
8
+ @media print {
9
+ #root, html, body {
10
+ overflow: auto !important;
11
+ height: auto !important;
12
+ width: auto !important;
13
+ }
14
+
15
+ [role="table"] {
16
+ border-width: 0 !important;
17
+ overflow-y: hidden !important;
18
+ }
19
+
20
+ [role="table"] [role="columnheader"] {
21
+ border-bottom-width: 1px !important;
22
+ }
23
+
24
+ /*
25
+ * Summary row cells
26
+ */
27
+ [role="table"] [role="rowgroup"]:last-child [role="cell"] {
28
+ border-top-width: 1px !important;
29
+ }
30
+
31
+ [role="table"] a {
32
+ color: rgb(28 28 28);
33
+ }
34
+
35
+ [data-taco="alert"],
36
+ [data-taco="banner"],
37
+ [data-taco="hanger"],
38
+ [data-taco="toast"],
39
+ [data-taco="table3-toolbar"],
40
+ [data-taco="tooltip"],
41
+ /*
42
+ * Tour components
43
+ */
44
+ [id^="react-joyride"]
45
+ {
46
+ display: none !important;
47
+ }
48
+ }
49
+ `;
50
+ function useParentStylesheets(iframeWindow) {
51
+ const [ready, setReady] = React__default.useState(false);
52
+ React__default.useEffect(() => {
53
+ if (!iframeWindow) {
54
+ return;
55
+ }
56
+ const parentDocument = iframeWindow.parent.document;
57
+ const iframeDocument = iframeWindow.document;
58
+ // add our custom print styles
59
+ const customPrintStyles = iframeDocument.createElement('style');
60
+ if (customPrintStyles) {
61
+ customPrintStyles.innerHTML = PRINT_STYLES;
62
+ iframeDocument.head.appendChild(customPrintStyles);
63
+ }
64
+ // Get style tags from the parent
65
+ const parentStylesheets = Array.from(parentDocument.querySelectorAll('style:not([data-taco="table3-column-freezing-styles"])'));
66
+ // Get linked stylesheets from the parent
67
+ const linkStylesheets = Array.from(parentDocument.querySelectorAll('[rel="stylesheet"]'));
68
+ // We want to add tailwind styles specifically but there is no guarenteed way to know which style tag has
69
+ // tailwind styles, so we add all the styles present in the parent frame
70
+ parentStylesheets.forEach(parentStyle => {
71
+ const styleTag = iframeDocument.createElement('style');
72
+ styleTag.innerHTML = parentStyle.innerHTML;
73
+ iframeDocument.head.appendChild(styleTag);
74
+ });
75
+ // Add all link tags that are stylesheets, to the iframe head, so that we include the taco and client styles
76
+ linkStylesheets.forEach(linkStylesheet => {
77
+ const linkTag = iframeDocument.createElement('link');
78
+ linkTag.setAttribute('rel', 'stylesheet');
79
+ linkTag.innerHTML = linkStylesheet.innerHTML;
80
+ iframeDocument.head.appendChild(linkTag);
81
+ });
82
+ setReady(true);
83
+ }, [iframeWindow]);
84
+ return ready;
85
+ }
86
+
87
+ export { useParentStylesheets };
88
+ //# sourceMappingURL=useParentStylesheets.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useParentStylesheets.js","sources":["../../../../../../../../../../../src/components/Table3/components/toolbar/PrintButton/hooks/useParentStylesheets.ts"],"sourcesContent":["import React from 'react';\n\nconst PRINT_STYLES = `\n@page {\n margin: 16px;\n}\n\n@media print {\n #root, html, body {\n overflow: auto !important;\n height: auto !important;\n width: auto !important;\n }\n\n [role=\"table\"] {\n border-width: 0 !important;\n overflow-y: hidden !important;\n }\n\n [role=\"table\"] [role=\"columnheader\"] {\n border-bottom-width: 1px !important;\n }\n\n /*\n * Summary row cells\n */\n [role=\"table\"] [role=\"rowgroup\"]:last-child [role=\"cell\"] {\n border-top-width: 1px !important;\n }\n\n [role=\"table\"] a {\n color: rgb(28 28 28);\n }\n\n [data-taco=\"alert\"],\n [data-taco=\"banner\"],\n [data-taco=\"hanger\"],\n [data-taco=\"toast\"],\n [data-taco=\"table3-toolbar\"],\n [data-taco=\"tooltip\"],\n /*\n * Tour components\n */\n [id^=\"react-joyride\"]\n {\n display: none !important;\n }\n}\n`;\n\nexport function useParentStylesheets(iframeWindow: Window | null | undefined) {\n const [ready, setReady] = React.useState(false);\n\n React.useEffect(() => {\n if (!iframeWindow) {\n return;\n }\n\n const parentDocument = iframeWindow.parent.document;\n const iframeDocument = iframeWindow.document;\n\n // add our custom print styles\n const customPrintStyles = iframeDocument.createElement('style');\n\n if (customPrintStyles) {\n customPrintStyles.innerHTML = PRINT_STYLES;\n iframeDocument.head.appendChild(customPrintStyles);\n }\n\n // Get style tags from the parent\n const parentStylesheets = Array.from(\n parentDocument.querySelectorAll('style:not([data-taco=\"table3-column-freezing-styles\"])')\n );\n // Get linked stylesheets from the parent\n const linkStylesheets = Array.from(parentDocument.querySelectorAll('[rel=\"stylesheet\"]'));\n\n // We want to add tailwind styles specifically but there is no guarenteed way to know which style tag has\n // tailwind styles, so we add all the styles present in the parent frame\n parentStylesheets.forEach(parentStyle => {\n const styleTag = iframeDocument.createElement('style');\n\n styleTag.innerHTML = parentStyle.innerHTML;\n iframeDocument.head.appendChild(styleTag);\n });\n\n // Add all link tags that are stylesheets, to the iframe head, so that we include the taco and client styles\n linkStylesheets.forEach(linkStylesheet => {\n const linkTag = iframeDocument.createElement('link');\n\n linkTag.setAttribute('rel', 'stylesheet');\n\n linkTag.innerHTML = linkStylesheet.innerHTML;\n iframeDocument.head.appendChild(linkTag);\n });\n\n setReady(true);\n }, [iframeWindow]);\n\n return ready;\n}\n"],"names":["PRINT_STYLES","useParentStylesheets","iframeWindow","ready","setReady","React","useState","useEffect","parentDocument","parent","document","iframeDocument","customPrintStyles","createElement","innerHTML","head","appendChild","parentStylesheets","Array","from","querySelectorAll","linkStylesheets","forEach","parentStyle","styleTag","linkStylesheet","linkTag","setAttribute"],"mappings":";;AAEA,MAAMA,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA8CjB;SAEeC,oBAAoB,CAACC,YAAuC;EACxE,MAAM,CAACC,KAAK,EAAEC,QAAQ,CAAC,GAAGC,cAAK,CAACC,QAAQ,CAAC,KAAK,CAAC;EAE/CD,cAAK,CAACE,SAAS,CAAC;IACZ,IAAI,CAACL,YAAY,EAAE;MACf;;IAGJ,MAAMM,cAAc,GAAGN,YAAY,CAACO,MAAM,CAACC,QAAQ;IACnD,MAAMC,cAAc,GAAGT,YAAY,CAACQ,QAAQ;;IAG5C,MAAME,iBAAiB,GAAGD,cAAc,CAACE,aAAa,CAAC,OAAO,CAAC;IAE/D,IAAID,iBAAiB,EAAE;MACnBA,iBAAiB,CAACE,SAAS,GAAGd,YAAY;MAC1CW,cAAc,CAACI,IAAI,CAACC,WAAW,CAACJ,iBAAiB,CAAC;;;IAItD,MAAMK,iBAAiB,GAAGC,KAAK,CAACC,IAAI,CAChCX,cAAc,CAACY,gBAAgB,CAAC,wDAAwD,CAAC,CAC5F;;IAED,MAAMC,eAAe,GAAGH,KAAK,CAACC,IAAI,CAACX,cAAc,CAACY,gBAAgB,CAAC,oBAAoB,CAAC,CAAC;;;IAIzFH,iBAAiB,CAACK,OAAO,CAACC,WAAW;MACjC,MAAMC,QAAQ,GAAGb,cAAc,CAACE,aAAa,CAAC,OAAO,CAAC;MAEtDW,QAAQ,CAACV,SAAS,GAAGS,WAAW,CAACT,SAAS;MAC1CH,cAAc,CAACI,IAAI,CAACC,WAAW,CAACQ,QAAQ,CAAC;KAC5C,CAAC;;IAGFH,eAAe,CAACC,OAAO,CAACG,cAAc;MAClC,MAAMC,OAAO,GAAGf,cAAc,CAACE,aAAa,CAAC,MAAM,CAAC;MAEpDa,OAAO,CAACC,YAAY,CAAC,KAAK,EAAE,YAAY,CAAC;MAEzCD,OAAO,CAACZ,SAAS,GAAGW,cAAc,CAACX,SAAS;MAC5CH,cAAc,CAACI,IAAI,CAACC,WAAW,CAACU,OAAO,CAAC;KAC3C,CAAC;IAEFtB,QAAQ,CAAC,IAAI,CAAC;GACjB,EAAE,CAACF,YAAY,CAAC,CAAC;EAElB,OAAOC,KAAK;AAChB;;;;"}
@@ -0,0 +1,26 @@
1
+ import React__default from 'react';
2
+ import { useLocalization } from '../../../Provider/Localization.js';
3
+ import { Menu } from '../../../Menu/Menu.js';
4
+
5
+ function RowHeight(props) {
6
+ const {
7
+ texts
8
+ } = useLocalization();
9
+ const meta = props.table.options.meta;
10
+ const handleChange = value => meta.rowHeight.setHeight(value);
11
+ return /*#__PURE__*/React__default.createElement(Menu.SubMenu, null, /*#__PURE__*/React__default.createElement(Menu.RadioGroup, {
12
+ onChange: handleChange,
13
+ value: meta.rowHeight.height
14
+ }, /*#__PURE__*/React__default.createElement(Menu.RadioGroup.Item, {
15
+ value: "short"
16
+ }, texts.table3.rowHeight.sizes.short), /*#__PURE__*/React__default.createElement(Menu.RadioGroup.Item, {
17
+ value: "medium"
18
+ }, texts.table3.rowHeight.sizes.medium), /*#__PURE__*/React__default.createElement(Menu.RadioGroup.Item, {
19
+ value: "tall"
20
+ }, texts.table3.rowHeight.sizes.tall), /*#__PURE__*/React__default.createElement(Menu.RadioGroup.Item, {
21
+ value: "extra-tall"
22
+ }, texts.table3.rowHeight.sizes.extraTall)));
23
+ }
24
+
25
+ export { RowHeight };
26
+ //# sourceMappingURL=RowHeight.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RowHeight.js","sources":["../../../../../../../../../src/components/Table3/components/toolbar/RowHeight.tsx"],"sourcesContent":["import React from 'react';\nimport { Table as RTable, TableMeta } from '@tanstack/react-table';\nimport { Menu } from '../../../Menu/Menu';\nimport { useLocalization } from '../../../Provider/Localization';\nimport { Table3RowHeight } from '../../types';\nimport { RadioGroupItemValue } from '../../../..';\n\ntype RowHeightButtonProps<TType = unknown> = {\n table: RTable<TType>;\n};\n\nexport function RowHeight<TType = unknown>(props: RowHeightButtonProps<TType>) {\n const { texts } = useLocalization();\n const meta = props.table.options.meta as TableMeta<unknown>;\n const handleChange = (value: RadioGroupItemValue) => meta.rowHeight.setHeight(value as Table3RowHeight);\n\n return (\n <Menu.SubMenu>\n <Menu.RadioGroup onChange={handleChange} value={meta.rowHeight.height}>\n <Menu.RadioGroup.Item value=\"short\">{texts.table3.rowHeight.sizes.short}</Menu.RadioGroup.Item>\n <Menu.RadioGroup.Item value=\"medium\">{texts.table3.rowHeight.sizes.medium}</Menu.RadioGroup.Item>\n <Menu.RadioGroup.Item value=\"tall\">{texts.table3.rowHeight.sizes.tall}</Menu.RadioGroup.Item>\n <Menu.RadioGroup.Item value=\"extra-tall\">{texts.table3.rowHeight.sizes.extraTall}</Menu.RadioGroup.Item>\n </Menu.RadioGroup>\n </Menu.SubMenu>\n );\n}\n"],"names":["RowHeight","props","texts","useLocalization","meta","table","options","handleChange","value","rowHeight","setHeight","React","Menu","SubMenu","RadioGroup","onChange","height","Item","table3","sizes","short","medium","tall","extraTall"],"mappings":";;;;SAWgBA,SAAS,CAAkBC,KAAkC;EACzE,MAAM;IAAEC;GAAO,GAAGC,eAAe,EAAE;EACnC,MAAMC,IAAI,GAAGH,KAAK,CAACI,KAAK,CAACC,OAAO,CAACF,IAA0B;EAC3D,MAAMG,YAAY,GAAIC,KAA0B,IAAKJ,IAAI,CAACK,SAAS,CAACC,SAAS,CAACF,KAAwB,CAAC;EAEvG,oBACIG,6BAACC,IAAI,CAACC,OAAO,qBACTF,6BAACC,IAAI,CAACE,UAAU;IAACC,QAAQ,EAAER,YAAY;IAAEC,KAAK,EAAEJ,IAAI,CAACK,SAAS,CAACO;kBAC3DL,6BAACC,IAAI,CAACE,UAAU,CAACG,IAAI;IAACT,KAAK,EAAC;KAASN,KAAK,CAACgB,MAAM,CAACT,SAAS,CAACU,KAAK,CAACC,KAAK,CAAwB,eAC/FT,6BAACC,IAAI,CAACE,UAAU,CAACG,IAAI;IAACT,KAAK,EAAC;KAAUN,KAAK,CAACgB,MAAM,CAACT,SAAS,CAACU,KAAK,CAACE,MAAM,CAAwB,eACjGV,6BAACC,IAAI,CAACE,UAAU,CAACG,IAAI;IAACT,KAAK,EAAC;KAAQN,KAAK,CAACgB,MAAM,CAACT,SAAS,CAACU,KAAK,CAACG,IAAI,CAAwB,eAC7FX,6BAACC,IAAI,CAACE,UAAU,CAACG,IAAI;IAACT,KAAK,EAAC;KAAcN,KAAK,CAACgB,MAAM,CAACT,SAAS,CAACU,KAAK,CAACI,SAAS,CAAwB,CAC1F,CACP;AAEvB;;;;"}
@@ -0,0 +1,137 @@
1
+ import React__default from 'react';
2
+ import { useLocalization } from '../../../Provider/Localization.js';
3
+ import { isDate } from 'date-fns';
4
+ import { format } from '../../../../utils/date.js';
5
+ import { SearchInput2 } from '../../../SearchInput2/SearchInput2.js';
6
+ import { Switch } from '../../../Switch/Switch.js';
7
+ import { globalFilterFn } from '../../util/filtering.js';
8
+
9
+ function Search(props) {
10
+ const {
11
+ scrollToIndex,
12
+ table
13
+ } = props;
14
+ const {
15
+ texts
16
+ } = useLocalization();
17
+ const ref = React__default.useRef(null);
18
+ const tableMeta = table.options.meta;
19
+ const scrollTo = rowIndex => scrollToIndex(rowIndex, {
20
+ align: 'center'
21
+ });
22
+ // update the indexes if the row length changes (e.g. when filtering)
23
+ React__default.useEffect(() => {
24
+ var _ref$current;
25
+ const firstRowIndex = resetHighlightedColumnIndexes(tableMeta.search.isHighlightingEnabled, (_ref$current = ref.current) === null || _ref$current === void 0 ? void 0 : _ref$current.value, table);
26
+ if (firstRowIndex) {
27
+ scrollTo(firstRowIndex);
28
+ }
29
+ }, [table.getRowModel().rows.length, JSON.stringify(table.getState().sorting), JSON.stringify(table.getState().columnVisibility)]);
30
+ const handleSearch = query => {
31
+ const value = String(query !== null && query !== void 0 ? query : '');
32
+ tableMeta.search.setQuery(value);
33
+ if (tableMeta.search.excludeUnmatchedResults) {
34
+ if (value !== null && value !== void 0 && value.length) {
35
+ table.setGlobalFilter(value);
36
+ } else {
37
+ table.resetGlobalFilter();
38
+ }
39
+ } else if (tableMeta.search.loadAll) {
40
+ // don't pass the search query because filters when loading all, we need all - not filtered data
41
+ tableMeta.search.loadAll(table.getState().sorting, table.getState().columnFilters, undefined);
42
+ }
43
+ const firstRowIndex = resetHighlightedColumnIndexes(tableMeta.search.isHighlightingEnabled, value, table);
44
+ if (firstRowIndex) {
45
+ scrollTo(firstRowIndex);
46
+ }
47
+ };
48
+ const handleToggleExcludeUnmatchedResults = enabled => {
49
+ tableMeta.search.toggleExcludeUnmatchedResults(enabled);
50
+ if (enabled) {
51
+ if (tableMeta.search.query) {
52
+ table.setGlobalFilter(tableMeta.search.query);
53
+ } else {
54
+ table.resetGlobalFilter();
55
+ }
56
+ } else {
57
+ table.resetGlobalFilter();
58
+ }
59
+ requestAnimationFrame(() => {
60
+ var _ref$current2;
61
+ return (_ref$current2 = ref.current) === null || _ref$current2 === void 0 ? void 0 : _ref$current2.focus();
62
+ });
63
+ };
64
+ const handleNextResult = () => {
65
+ if (!tableMeta.search.highlightedColumnIndexes.length) {
66
+ return;
67
+ }
68
+ const nextIndex = tableMeta.search.currentHighlightColumnIndex === undefined || tableMeta.search.currentHighlightColumnIndex === tableMeta.search.highlightedColumnIndexes.length - 1 ? 0 : tableMeta.search.currentHighlightColumnIndex + 1;
69
+ tableMeta.search.setCurrentHighlightColumnIndex(nextIndex);
70
+ // we scroll to the row here, the cell scrolls itself into view
71
+ scrollTo(tableMeta.search.highlightedColumnIndexes[nextIndex][0]);
72
+ };
73
+ const handlePreviousResult = () => {
74
+ if (!tableMeta.search.highlightedColumnIndexes.length) {
75
+ return;
76
+ }
77
+ const nextIndex = tableMeta.search.currentHighlightColumnIndex === undefined ? 0 : tableMeta.search.currentHighlightColumnIndex === 0 ? tableMeta.search.highlightedColumnIndexes.length - 1 : tableMeta.search.currentHighlightColumnIndex - 1;
78
+ tableMeta.search.setCurrentHighlightColumnIndex(nextIndex);
79
+ // we scroll to the row here, the cell scrolls itself into view
80
+ scrollTo(tableMeta.search.highlightedColumnIndexes[nextIndex][0]);
81
+ };
82
+ const settings = /*#__PURE__*/React__default.createElement(Switch, {
83
+ label: texts.table3.search.excludeUnmatchedResults,
84
+ checked: tableMeta.search.excludeUnmatchedResults,
85
+ onChange: handleToggleExcludeUnmatchedResults
86
+ });
87
+ return /*#__PURE__*/React__default.createElement(React__default.Fragment, null, /*#__PURE__*/React__default.createElement(SearchInput2, {
88
+ findCurrent: tableMeta.search.currentHighlightColumnIndex !== undefined ? tableMeta.search.currentHighlightColumnIndex + 1 : null,
89
+ findTotal: tableMeta.search.highlightedColumnIndexes ? tableMeta.search.highlightedColumnIndexes.length : null,
90
+ onClickFindPrevious: handlePreviousResult,
91
+ onClickFindNext: handleNextResult,
92
+ onSearch: handleSearch,
93
+ placeholder: texts.table3.search.placeholder,
94
+ settingsContent: settings,
95
+ ref: ref,
96
+ shortcut: {
97
+ key: 'f',
98
+ meta: true,
99
+ shift: false
100
+ },
101
+ value: tableMeta.search.query
102
+ }));
103
+ }
104
+ function resetHighlightedColumnIndexes(enabled, value, table) {
105
+ const tableMeta = table.options.meta;
106
+ let firstRowIndex;
107
+ if (enabled && value) {
108
+ const indexes = [];
109
+ const columns = table.getVisibleLeafColumns();
110
+ table.getRowModel().rows.forEach((row, rowIndex) => {
111
+ columns.forEach((column, columnIndex) => {
112
+ try {
113
+ var _column$columnDef$met, _format;
114
+ if ((_column$columnDef$met = column.columnDef.meta) !== null && _column$columnDef$met !== void 0 && _column$columnDef$met.enableSearch && row.original !== undefined && globalFilterFn(isDate(row.original[column.id]) ? (_format = format(row.original[column.id])) !== null && _format !== void 0 ? _format : '' : String(row.original[column.id]), value)) {
115
+ indexes.push([rowIndex, columnIndex]);
116
+ }
117
+ } catch (e) {
118
+ //
119
+ }
120
+ });
121
+ });
122
+ tableMeta.search.setHighlightedColumnIndexes(indexes);
123
+ if (indexes.length) {
124
+ firstRowIndex = indexes[0][0];
125
+ tableMeta.search.setCurrentHighlightColumnIndex(0);
126
+ } else {
127
+ tableMeta.search.setCurrentHighlightColumnIndex(undefined);
128
+ }
129
+ } else {
130
+ tableMeta.search.setHighlightedColumnIndexes([]);
131
+ tableMeta.search.setCurrentHighlightColumnIndex(undefined);
132
+ }
133
+ return firstRowIndex;
134
+ }
135
+
136
+ export { Search };
137
+ //# sourceMappingURL=Search.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Search.js","sources":["../../../../../../../../../src/components/Table3/components/toolbar/Search.tsx"],"sourcesContent":["import React from 'react';\nimport { Table as RTable, TableMeta } from '@tanstack/react-table';\nimport { useLocalization } from '../../../Provider/Localization';\nimport { Switch } from '../../../Switch/Switch';\nimport { globalFilterFn } from '../../util/filtering';\nimport { isDate } from 'date-fns';\nimport { format } from '../../../../utils/date';\nimport { SearchInput2 } from '../../../SearchInput2/SearchInput2';\n\ntype SearchProps<TType = unknown> = {\n scrollToIndex: any;\n table: RTable<TType>;\n};\n\nexport function Search<TType = unknown>(props: SearchProps<TType>) {\n const { scrollToIndex, table } = props;\n const { texts } = useLocalization();\n const ref = React.useRef<HTMLInputElement>(null);\n const tableMeta = table.options.meta as TableMeta<TType>;\n\n const scrollTo = (rowIndex: number) => scrollToIndex(rowIndex, { align: 'center' });\n\n // update the indexes if the row length changes (e.g. when filtering)\n React.useEffect(() => {\n const firstRowIndex = resetHighlightedColumnIndexes(tableMeta.search.isHighlightingEnabled, ref.current?.value, table);\n\n if (firstRowIndex) {\n scrollTo(firstRowIndex);\n }\n }, [\n table.getRowModel().rows.length,\n JSON.stringify(table.getState().sorting),\n JSON.stringify(table.getState().columnVisibility),\n ]);\n\n const handleSearch = (query: any) => {\n const value = String(query ?? '');\n tableMeta.search.setQuery(value);\n\n if (tableMeta.search.excludeUnmatchedResults) {\n if (value?.length) {\n table.setGlobalFilter(value);\n } else {\n table.resetGlobalFilter();\n }\n } else if (tableMeta.search.loadAll) {\n // don't pass the search query because filters when loading all, we need all - not filtered data\n tableMeta.search.loadAll(table.getState().sorting, table.getState().columnFilters, undefined);\n }\n\n const firstRowIndex = resetHighlightedColumnIndexes(tableMeta.search.isHighlightingEnabled, value, table);\n\n if (firstRowIndex) {\n scrollTo(firstRowIndex);\n }\n };\n\n const handleToggleExcludeUnmatchedResults = (enabled: boolean) => {\n tableMeta.search.toggleExcludeUnmatchedResults(enabled);\n\n if (enabled) {\n if (tableMeta.search.query) {\n table.setGlobalFilter(tableMeta.search.query);\n } else {\n table.resetGlobalFilter();\n }\n } else {\n table.resetGlobalFilter();\n }\n\n requestAnimationFrame(() => ref.current?.focus());\n };\n\n const handleNextResult = () => {\n if (!tableMeta.search.highlightedColumnIndexes.length) {\n return;\n }\n\n const nextIndex =\n tableMeta.search.currentHighlightColumnIndex === undefined ||\n tableMeta.search.currentHighlightColumnIndex === tableMeta.search.highlightedColumnIndexes.length - 1\n ? 0\n : tableMeta.search.currentHighlightColumnIndex + 1;\n\n tableMeta.search.setCurrentHighlightColumnIndex(nextIndex);\n // we scroll to the row here, the cell scrolls itself into view\n scrollTo(tableMeta.search.highlightedColumnIndexes[nextIndex][0]);\n };\n\n const handlePreviousResult = () => {\n if (!tableMeta.search.highlightedColumnIndexes.length) {\n return;\n }\n\n const nextIndex =\n tableMeta.search.currentHighlightColumnIndex === undefined\n ? 0\n : tableMeta.search.currentHighlightColumnIndex === 0\n ? tableMeta.search.highlightedColumnIndexes.length - 1\n : tableMeta.search.currentHighlightColumnIndex - 1;\n\n tableMeta.search.setCurrentHighlightColumnIndex(nextIndex);\n // we scroll to the row here, the cell scrolls itself into view\n scrollTo(tableMeta.search.highlightedColumnIndexes[nextIndex][0]);\n };\n\n const settings = (\n <Switch\n label={texts.table3.search.excludeUnmatchedResults}\n checked={tableMeta.search.excludeUnmatchedResults}\n onChange={handleToggleExcludeUnmatchedResults}\n />\n );\n\n return (\n <>\n <SearchInput2\n findCurrent={\n tableMeta.search.currentHighlightColumnIndex !== undefined\n ? tableMeta.search.currentHighlightColumnIndex + 1\n : null\n }\n findTotal={tableMeta.search.highlightedColumnIndexes ? tableMeta.search.highlightedColumnIndexes.length : null}\n onClickFindPrevious={handlePreviousResult}\n onClickFindNext={handleNextResult}\n onSearch={handleSearch}\n placeholder={texts.table3.search.placeholder}\n settingsContent={settings}\n ref={ref}\n shortcut={{ key: 'f', meta: true, shift: false }}\n value={tableMeta.search.query}\n />\n </>\n );\n}\n\nfunction resetHighlightedColumnIndexes<TType = unknown>(enabled: boolean, value: string | undefined, table: RTable<TType>) {\n const tableMeta = table.options.meta as TableMeta<TType>;\n let firstRowIndex: undefined | number;\n\n if (enabled && value) {\n const rowIndexes: number[] = [];\n const indexes: number[][] = [];\n const columns = table.getVisibleLeafColumns();\n\n table.getRowModel().rows.forEach((row, rowIndex) => {\n columns.forEach((column, columnIndex) => {\n try {\n if (\n column.columnDef.meta?.enableSearch &&\n row.original !== undefined &&\n globalFilterFn(\n isDate(row.original[column.id])\n ? format(row.original[column.id]) ?? ''\n : String(row.original[column.id]),\n value\n )\n ) {\n indexes.push([rowIndex, columnIndex]);\n }\n } catch (e) {\n //\n }\n });\n\n if (indexes.length) {\n rowIndexes.push(rowIndex);\n }\n });\n\n tableMeta.search.setHighlightedColumnIndexes(indexes);\n\n if (indexes.length) {\n firstRowIndex = indexes[0][0];\n tableMeta.search.setCurrentHighlightColumnIndex(0);\n } else {\n tableMeta.search.setCurrentHighlightColumnIndex(undefined);\n }\n } else {\n tableMeta.search.setHighlightedColumnIndexes([]);\n tableMeta.search.setCurrentHighlightColumnIndex(undefined);\n }\n\n return firstRowIndex;\n}\n"],"names":["Search","props","scrollToIndex","table","texts","useLocalization","ref","React","useRef","tableMeta","options","meta","scrollTo","rowIndex","align","useEffect","firstRowIndex","resetHighlightedColumnIndexes","search","isHighlightingEnabled","current","value","getRowModel","rows","length","JSON","stringify","getState","sorting","columnVisibility","handleSearch","query","String","setQuery","excludeUnmatchedResults","setGlobalFilter","resetGlobalFilter","loadAll","columnFilters","undefined","handleToggleExcludeUnmatchedResults","enabled","toggleExcludeUnmatchedResults","requestAnimationFrame","focus","handleNextResult","highlightedColumnIndexes","nextIndex","currentHighlightColumnIndex","setCurrentHighlightColumnIndex","handlePreviousResult","settings","Switch","label","table3","checked","onChange","SearchInput2","findCurrent","findTotal","onClickFindPrevious","onClickFindNext","onSearch","placeholder","settingsContent","shortcut","key","shift","indexes","columns","getVisibleLeafColumns","forEach","row","column","columnIndex","columnDef","enableSearch","original","globalFilterFn","isDate","id","format","push","e","setHighlightedColumnIndexes"],"mappings":"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"}
@@ -0,0 +1,85 @@
1
+ import React__default from 'react';
2
+ import { IconButton } from '../../../IconButton/IconButton.js';
3
+ import { useLocalization } from '../../../Provider/Localization.js';
4
+ import { Group } from '../../../Group/Group.js';
5
+ import { Menu } from '../../../Menu/Menu.js';
6
+ import { RowHeight } from './RowHeight.js';
7
+ import { Search } from './Search.js';
8
+ import { Filters } from './Filter/filters/Filters.js';
9
+ import { ColumnSettings } from './ColumnSettings.js';
10
+ import { EditButton } from './EditButton.js';
11
+ import { PrintButton } from './PrintButton/PrintButton.js';
12
+ import { FontSize } from './FontSize.js';
13
+
14
+ function Toolbar(props) {
15
+ const {
16
+ left,
17
+ right,
18
+ scrollToIndex,
19
+ table,
20
+ tableProps,
21
+ total
22
+ } = props;
23
+ const {
24
+ texts
25
+ } = useLocalization();
26
+ if (!isToolbarVisible(props)) {
27
+ return null;
28
+ }
29
+ const tableMeta = table.options.meta;
30
+ return /*#__PURE__*/React__default.createElement("div", {
31
+ className: "mb-4 flex flex-shrink flex-grow-0 gap-2",
32
+ "data-taco": "table3-toolbar"
33
+ }, left, /*#__PURE__*/React__default.createElement(Group, {
34
+ className: "ml-auto flex-shrink-0 print:hidden"
35
+ }, tableMeta.editing.isEnabled ? /*#__PURE__*/React__default.createElement(EditButton, {
36
+ table: table
37
+ }) : null, table.options.enableColumnFilters ? /*#__PURE__*/React__default.createElement(Filters, {
38
+ table: table,
39
+ total: total
40
+ }) : null, table.options.enableHiding || tableMeta.columnOrdering.isEnabled ? /*#__PURE__*/React__default.createElement(ColumnSettings, {
41
+ table: table
42
+ }) : null, tableMeta.printing.isEnabled ? /*#__PURE__*/React__default.createElement(PrintButton, {
43
+ table: table,
44
+ tableProps: tableProps
45
+ }) : null, right, isMoreVisible(props) ? /*#__PURE__*/React__default.createElement(IconButton, {
46
+ icon: "more",
47
+ menu: menuProps => /*#__PURE__*/React__default.createElement(Menu, Object.assign({}, menuProps), /*#__PURE__*/React__default.createElement(Menu.Content, {
48
+ align: "end"
49
+ }, tableMeta.rowHeight.isEnabled ? /*#__PURE__*/React__default.createElement(Menu.Item, {
50
+ icon: `height-${tableMeta.rowHeight.height}`,
51
+ subMenu: () => /*#__PURE__*/React__default.createElement(RowHeight, {
52
+ table: table
53
+ })
54
+ }, texts.table3.rowHeight.tooltip) : null, tableMeta.fontSize.isEnabled ? /*#__PURE__*/React__default.createElement(Menu.Item, {
55
+ icon: "font-size",
56
+ subMenu: () => /*#__PURE__*/React__default.createElement(FontSize, {
57
+ table: table
58
+ })
59
+ }, texts.table3.fontSize.tooltip) : null))
60
+ }) : null, tableMeta.search.isEnabled ? /*#__PURE__*/React__default.createElement(Search, {
61
+ scrollToIndex: scrollToIndex,
62
+ table: table
63
+ }) : null));
64
+ }
65
+ function isMoreVisible(props) {
66
+ const {
67
+ table
68
+ } = props;
69
+ const tableMeta = table.options.meta;
70
+ return tableMeta.fontSize.isEnabled || tableMeta.rowHeight.isEnabled;
71
+ }
72
+ function isToolbarVisible(props) {
73
+ const {
74
+ left,
75
+ right,
76
+ table
77
+ } = props;
78
+ const tableMeta = table.options.meta;
79
+ const enableSettingsButton = table.options.enableHiding || tableMeta.columnOrdering.isEnabled;
80
+ const hasInternalToolbar = enableSettingsButton || tableMeta.editing.isEnabled || tableMeta.printing.isEnabled || table.options.enableColumnFilters || tableMeta.fontSize.isEnabled || tableMeta.rowHeight.isEnabled || tableMeta.search.isEnabled;
81
+ return hasInternalToolbar || !!left || !!right;
82
+ }
83
+
84
+ export { Toolbar };
85
+ //# sourceMappingURL=Toolbar.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Toolbar.js","sources":["../../../../../../../../../src/components/Table3/components/toolbar/Toolbar.tsx"],"sourcesContent":["import React from 'react';\nimport { Table as RTable, TableMeta } from '@tanstack/react-table';\nimport { RowHeight } from './RowHeight';\nimport { Search } from './Search';\nimport { Group } from '../../../Group/Group';\nimport { Filters } from './Filter/filters/Filters';\nimport { ColumnSettings } from './ColumnSettings';\nimport { EditButton } from './EditButton';\nimport { PrintButton } from './PrintButton/PrintButton';\nimport { Table3Props } from '../../types';\nimport { IconButton } from '../../../IconButton/IconButton';\nimport { Menu } from '../../../Menu/Menu';\nimport { useLocalization } from '../../../Provider/Localization';\nimport { IconName } from '../../../Icon/Icon';\nimport { FontSize } from './FontSize';\n\nexport type ToolbarProps<TType = unknown> = {\n left?: JSX.Element;\n right?: JSX.Element;\n scrollToIndex: any;\n table: RTable<TType>;\n tableProps: Table3Props<TType>;\n total: number;\n};\nexport function Toolbar<TType = unknown>(props: ToolbarProps<TType>) {\n const { left, right, scrollToIndex, table, tableProps, total } = props;\n const { texts } = useLocalization();\n\n if (!isToolbarVisible(props)) {\n return null;\n }\n\n const tableMeta = table.options.meta as TableMeta<TType>;\n\n return (\n <div className=\"mb-4 flex flex-shrink flex-grow-0 gap-2\" data-taco=\"table3-toolbar\">\n {left}\n <Group className=\"ml-auto flex-shrink-0 print:hidden\">\n {tableMeta.editing.isEnabled ? <EditButton table={table} /> : null}\n {table.options.enableColumnFilters ? <Filters table={table} total={total} /> : null}\n {table.options.enableHiding || tableMeta.columnOrdering.isEnabled ? <ColumnSettings table={table} /> : null}\n {tableMeta.printing.isEnabled ? <PrintButton table={table} tableProps={tableProps} /> : null}\n {right}\n {isMoreVisible(props) ? (\n <IconButton\n icon=\"more\"\n menu={menuProps => (\n <Menu {...menuProps}>\n <Menu.Content align=\"end\">\n {tableMeta.rowHeight.isEnabled ? (\n <Menu.Item\n icon={`height-${tableMeta.rowHeight.height}` as IconName}\n subMenu={() => <RowHeight table={table} />}>\n {texts.table3.rowHeight.tooltip}\n </Menu.Item>\n ) : null}\n {tableMeta.fontSize.isEnabled ? (\n <Menu.Item icon=\"font-size\" subMenu={() => <FontSize table={table} />}>\n {texts.table3.fontSize.tooltip}\n </Menu.Item>\n ) : null}\n </Menu.Content>\n </Menu>\n )}\n />\n ) : null}\n {tableMeta.search.isEnabled ? <Search scrollToIndex={scrollToIndex} table={table} /> : null}\n </Group>\n </div>\n );\n}\n\nfunction isMoreVisible<TType = unknown>(props: ToolbarProps<TType>) {\n const { table } = props;\n const tableMeta = table.options.meta as TableMeta<TType>;\n\n return tableMeta.fontSize.isEnabled || tableMeta.rowHeight.isEnabled;\n}\n\nfunction isToolbarVisible<TType = unknown>(props: ToolbarProps<TType>) {\n const { left, right, table } = props;\n const tableMeta = table.options.meta as TableMeta<TType>;\n\n const enableSettingsButton = table.options.enableHiding || tableMeta.columnOrdering.isEnabled;\n const hasInternalToolbar =\n enableSettingsButton ||\n tableMeta.editing.isEnabled ||\n tableMeta.printing.isEnabled ||\n table.options.enableColumnFilters ||\n tableMeta.fontSize.isEnabled ||\n tableMeta.rowHeight.isEnabled ||\n tableMeta.search.isEnabled;\n\n return hasInternalToolbar || !!left || !!right;\n}\n"],"names":["Toolbar","props","left","right","scrollToIndex","table","tableProps","total","texts","useLocalization","isToolbarVisible","tableMeta","options","meta","React","className","Group","editing","isEnabled","EditButton","enableColumnFilters","Filters","enableHiding","columnOrdering","ColumnSettings","printing","PrintButton","isMoreVisible","IconButton","icon","menu","menuProps","Menu","Content","align","rowHeight","Item","height","subMenu","RowHeight","table3","tooltip","fontSize","FontSize","search","Search","enableSettingsButton","hasInternalToolbar"],"mappings":"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"}
@@ -0,0 +1,87 @@
1
+ import React__default from 'react';
2
+ import { isInternalColumn } from '../../util/columns.js';
3
+
4
+ function getDefaultFrozenIndex(options, defaultFrozenIndex = -1) {
5
+ let index = defaultFrozenIndex;
6
+ if (options.enableRowDrag) {
7
+ index++;
8
+ }
9
+ if (options.enableRowSelection) {
10
+ index++;
11
+ }
12
+ if (options.enableRowExpansion) {
13
+ index++;
14
+ }
15
+ return index >= 0 ? index : undefined;
16
+ }
17
+ /*
18
+ Because of the desired behaviour of column freezing we use custom state and just an index.
19
+ If a frozen column is, for example, hidden, then the desired behaviour is that the next available column gets frozen.
20
+ If this behaviour were different we would just use the native column pinning functionality
21
+ */
22
+ function useColumnFreezing(defaultFrozenIndex, options) {
23
+ const [frozenColumnIndex, _setFrozenColumnIndex] = React__default.useState(getDefaultFrozenIndex(options, defaultFrozenIndex));
24
+ const [horizontallyScrolled, setHorizontallyScrolled] = React__default.useState(false);
25
+ const onScroll = event => {
26
+ if (event.currentTarget.scrollLeft > 0 && !horizontallyScrolled) {
27
+ setHorizontallyScrolled(true);
28
+ } else if (event.currentTarget.scrollLeft === 0 && horizontallyScrolled) {
29
+ setHorizontallyScrolled(false);
30
+ }
31
+ };
32
+ const setFrozenColumnIndex = index => {
33
+ _setFrozenColumnIndex(index !== null && index !== void 0 ? index : getDefaultFrozenIndex(options));
34
+ };
35
+ return {
36
+ isEnabled: options.enableColumnFreezing,
37
+ frozenColumnIndex,
38
+ setFrozenColumnIndex,
39
+ horizontallyScrolled,
40
+ handleScroll: onScroll
41
+ };
42
+ }
43
+ function useColumnFreezingStyle(tableId, table) {
44
+ const {
45
+ columnOrder,
46
+ columnSizing,
47
+ columnSizingInfo,
48
+ columnVisibility
49
+ } = table.getState();
50
+ const tableMeta = table.options.meta;
51
+ const style = React__default.useMemo(() => {
52
+ if (tableMeta.columnFreezing.isEnabled && tableMeta.columnFreezing.frozenColumnIndex !== undefined) {
53
+ const visibleFrozenColumns = table.getVisibleLeafColumns().slice(0, tableMeta.columnFreezing.frozenColumnIndex + 1).map(column => column.id);
54
+ // if all frozen columns haven't had their size set yet, then abort
55
+ if (visibleFrozenColumns.every(id => columnSizing[id] === undefined)) {
56
+ return undefined;
57
+ }
58
+ const offsets = {};
59
+ visibleFrozenColumns.reduce((offset, columnId) => {
60
+ offsets[columnId] = offset;
61
+ return offset + columnSizing[columnId];
62
+ }, 0);
63
+ const styles = [Object.values(offsets).map((offset, index) => `#${tableId} [role="row"] > :nth-child(${index + 1}) { left: ${offset}px }`).join('\n'), `#${tableId} [role="row"] > :not(:nth-child(n+${tableMeta.columnFreezing.frozenColumnIndex + 2})) {
64
+ position: sticky;
65
+ z-index: 20;
66
+ }`, `#${tableId}[data-horizontally-scrolled="true"] [role="row"] > :nth-child(${tableMeta.columnFreezing.frozenColumnIndex + 1}) {
67
+ box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), 6px 0px 6px rgb(0 0 0/8%), 1px 0px 0px #DDDDDD;
68
+ }`];
69
+ const columnId = visibleFrozenColumns[tableMeta.columnFreezing.frozenColumnIndex];
70
+ // frozenColumnIndex could not be in the visible frozen column so it is important to check if columnId
71
+ // exists before checking if it is internal.
72
+ //
73
+ // only add a border to the edge column if it isn't an internal column
74
+ if (columnId && !isInternalColumn(columnId)) {
75
+ styles.push(`#${tableId}[data-horizontally-scrolled="false"] [role="row"] > :nth-child(${tableMeta.columnFreezing.frozenColumnIndex + 1}) {
76
+ box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), 1px 0px 0px #DDDDDD;
77
+ }`);
78
+ }
79
+ return styles.join('\n');
80
+ }
81
+ return undefined;
82
+ }, [columnOrder, columnSizing, columnSizingInfo, columnVisibility, tableMeta.columnFreezing.isEnabled, tableMeta.columnFreezing.frozenColumnIndex]);
83
+ return style;
84
+ }
85
+
86
+ export { getDefaultFrozenIndex, useColumnFreezing, useColumnFreezingStyle };
87
+ //# sourceMappingURL=useColumnFreezing.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useColumnFreezing.js","sources":["../../../../../../../../../src/components/Table3/hooks/features/useColumnFreezing.ts"],"sourcesContent":["import { Table, TableMeta } from '@tanstack/react-table';\nimport React from 'react';\nimport { Table3Options } from '../../types';\nimport { isInternalColumn } from '../../util/columns';\n\nexport function getDefaultFrozenIndex(options: Table3Options, defaultFrozenIndex = -1) {\n let index = defaultFrozenIndex;\n\n if (options.enableRowDrag) {\n index++;\n }\n\n if (options.enableRowSelection) {\n index++;\n }\n\n if (options.enableRowExpansion) {\n index++;\n }\n\n return index >= 0 ? index : undefined;\n}\n\n/*\nBecause of the desired behaviour of column freezing we use custom state and just an index.\nIf a frozen column is, for example, hidden, then the desired behaviour is that the next available column gets frozen.\nIf this behaviour were different we would just use the native column pinning functionality\n*/\nexport function useColumnFreezing(defaultFrozenIndex: number | undefined, options: Table3Options) {\n const [frozenColumnIndex, _setFrozenColumnIndex] = React.useState<number | undefined>(\n getDefaultFrozenIndex(options, defaultFrozenIndex)\n );\n\n const [horizontallyScrolled, setHorizontallyScrolled] = React.useState(false);\n\n const onScroll = (event: React.MouseEvent<HTMLDivElement>) => {\n if (event.currentTarget.scrollLeft > 0 && !horizontallyScrolled) {\n setHorizontallyScrolled(true);\n } else if (event.currentTarget.scrollLeft === 0 && horizontallyScrolled) {\n setHorizontallyScrolled(false);\n }\n };\n\n const setFrozenColumnIndex = (index: number | undefined) => {\n _setFrozenColumnIndex(index ?? getDefaultFrozenIndex(options));\n };\n\n return {\n isEnabled: options.enableColumnFreezing,\n frozenColumnIndex,\n setFrozenColumnIndex,\n horizontallyScrolled,\n handleScroll: onScroll,\n };\n}\n\nexport function useColumnFreezingStyle<TType = unknown>(tableId: string, table: Table<TType>) {\n const { columnOrder, columnSizing, columnSizingInfo, columnVisibility } = table.getState();\n const tableMeta = table.options.meta as TableMeta<TType>;\n\n const style = React.useMemo(() => {\n if (tableMeta.columnFreezing.isEnabled && tableMeta.columnFreezing.frozenColumnIndex !== undefined) {\n const visibleFrozenColumns = table\n .getVisibleLeafColumns()\n .slice(0, tableMeta.columnFreezing.frozenColumnIndex + 1)\n .map(column => column.id);\n\n // if all frozen columns haven't had their size set yet, then abort\n if (visibleFrozenColumns.every(id => columnSizing[id] === undefined)) {\n return undefined;\n }\n\n const offsets = {};\n\n visibleFrozenColumns.reduce((offset, columnId) => {\n offsets[columnId] = offset;\n return offset + columnSizing[columnId];\n }, 0);\n\n const styles = [\n Object.values(offsets)\n .map((offset, index) => `#${tableId} [role=\"row\"] > :nth-child(${index + 1}) { left: ${offset}px }`)\n .join('\\n'),\n `#${tableId} [role=\"row\"] > :not(:nth-child(n+${tableMeta.columnFreezing.frozenColumnIndex + 2})) {\n position: sticky;\n z-index: 20; \n }`,\n `#${tableId}[data-horizontally-scrolled=\"true\"] [role=\"row\"] > :nth-child(${\n tableMeta.columnFreezing.frozenColumnIndex + 1\n }) {\n box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), 6px 0px 6px rgb(0 0 0/8%), 1px 0px 0px #DDDDDD;\n }`,\n ];\n\n const columnId = visibleFrozenColumns[tableMeta.columnFreezing.frozenColumnIndex];\n\n // frozenColumnIndex could not be in the visible frozen column so it is important to check if columnId\n // exists before checking if it is internal.\n //\n // only add a border to the edge column if it isn't an internal column\n if (columnId && !isInternalColumn(columnId)) {\n styles.push(`#${tableId}[data-horizontally-scrolled=\"false\"] [role=\"row\"] > :nth-child(${\n tableMeta.columnFreezing.frozenColumnIndex + 1\n }) {\n box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), 1px 0px 0px #DDDDDD;\n }`);\n }\n\n return styles.join('\\n');\n }\n\n return undefined;\n }, [\n columnOrder,\n columnSizing,\n columnSizingInfo,\n columnVisibility,\n tableMeta.columnFreezing.isEnabled,\n tableMeta.columnFreezing.frozenColumnIndex,\n ]);\n\n return style;\n}\n"],"names":["getDefaultFrozenIndex","options","defaultFrozenIndex","index","enableRowDrag","enableRowSelection","enableRowExpansion","undefined","useColumnFreezing","frozenColumnIndex","_setFrozenColumnIndex","React","useState","horizontallyScrolled","setHorizontallyScrolled","onScroll","event","currentTarget","scrollLeft","setFrozenColumnIndex","isEnabled","enableColumnFreezing","handleScroll","useColumnFreezingStyle","tableId","table","columnOrder","columnSizing","columnSizingInfo","columnVisibility","getState","tableMeta","meta","style","useMemo","columnFreezing","visibleFrozenColumns","getVisibleLeafColumns","slice","map","column","id","every","offsets","reduce","offset","columnId","styles","Object","values","join","isInternalColumn","push"],"mappings":"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"}
@@ -0,0 +1,45 @@
1
+ import { COLUMN_ID } from '../../components/columns/internal/Actions.js';
2
+ import { COLUMN_ID as COLUMN_ID$1 } from '../../components/columns/internal/EditingActions.js';
3
+
4
+ function useColumnOrdering(options) {
5
+ return {
6
+ isEnabled: options.enableColumnOrdering
7
+ };
8
+ }
9
+ function ensureOrdering(columns, settingsOrder) {
10
+ // internal column come with a defined order
11
+ const internalColumns = columns.filter(column => {
12
+ var _column$id;
13
+ return ((_column$id = column.id) === null || _column$id === void 0 ? void 0 : _column$id.startsWith('__')) && column.id !== COLUMN_ID && column.id !== COLUMN_ID$1;
14
+ }).map(column => column.id);
15
+ // columns with ordering disabled should be moved to the front
16
+ const orderingDisabled = [];
17
+ const orderingEnabled = [];
18
+ let orderedColumns = columns;
19
+ // if settings is defined, make sure the columns that are actual children are sorted by it
20
+ if (Array.isArray(settingsOrder)) {
21
+ orderedColumns = columns.slice().sort(
22
+ // the magic >>> 0 here ensures that columns that aren't found in settings, but are children, are pushed to the end
23
+ (a, b) => (settingsOrder.indexOf(a.id) >>> 0) - (settingsOrder.indexOf(b.id) >>> 0));
24
+ }
25
+ orderedColumns.forEach(column => {
26
+ var _column$id2, _column$meta;
27
+ if ((_column$id2 = column.id) !== null && _column$id2 !== void 0 && _column$id2.startsWith('__')) {
28
+ return;
29
+ }
30
+ if ((_column$meta = column.meta) !== null && _column$meta !== void 0 && _column$meta.enableOrdering) {
31
+ orderingEnabled.push(column.id);
32
+ } else {
33
+ orderingDisabled.push(column.id);
34
+ }
35
+ });
36
+ const order = [...internalColumns, ...orderingDisabled, ...orderingEnabled];
37
+ // actions should always be last, enforce that
38
+ if (columns.findIndex(column => column.id === COLUMN_ID || column.id === COLUMN_ID$1) > -1) {
39
+ order.push(COLUMN_ID);
40
+ }
41
+ return order;
42
+ }
43
+
44
+ export { ensureOrdering, useColumnOrdering };
45
+ //# sourceMappingURL=useColumnOrdering.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useColumnOrdering.js","sources":["../../../../../../../../../src/components/Table3/hooks/features/useColumnOrdering.ts"],"sourcesContent":["import { ColumnDef } from '@tanstack/react-table';\nimport { Table3Options } from '../../types';\nimport { COLUMN_ID as ACTIONS_COLUMN_ID } from '../../components/columns/internal/Actions';\nimport { COLUMN_ID as EDITING_ACTIONS_COLUMN_ID } from '../../components/columns/internal/EditingActions';\n\nexport function useColumnOrdering(options: Table3Options) {\n return {\n isEnabled: options.enableColumnOrdering,\n };\n}\nexport function ensureOrdering<TType = unknown>(columns: ColumnDef<TType>[], settingsOrder: string[] | undefined): string[] {\n // internal column come with a defined order\n const internalColumns = columns\n .filter(\n column => column.id?.startsWith('__') && column.id !== ACTIONS_COLUMN_ID && column.id !== EDITING_ACTIONS_COLUMN_ID\n )\n .map(column => column.id) as string[];\n\n // columns with ordering disabled should be moved to the front\n const orderingDisabled: string[] = [];\n const orderingEnabled: string[] = [];\n\n let orderedColumns = columns;\n\n // if settings is defined, make sure the columns that are actual children are sorted by it\n if (Array.isArray(settingsOrder)) {\n orderedColumns = columns.slice().sort(\n // the magic >>> 0 here ensures that columns that aren't found in settings, but are children, are pushed to the end\n (a, b) => (settingsOrder.indexOf(a.id as string) >>> 0) - (settingsOrder.indexOf(b.id as string) >>> 0)\n );\n }\n\n orderedColumns.forEach(column => {\n if (column.id?.startsWith('__')) {\n return;\n }\n\n if (column.meta?.enableOrdering) {\n orderingEnabled.push(column.id as string);\n } else {\n orderingDisabled.push(column.id as string);\n }\n });\n\n const order = [...internalColumns, ...orderingDisabled, ...orderingEnabled];\n\n // actions should always be last, enforce that\n if (columns.findIndex(column => column.id === ACTIONS_COLUMN_ID || column.id === EDITING_ACTIONS_COLUMN_ID) > -1) {\n order.push(ACTIONS_COLUMN_ID);\n }\n\n return order;\n}\n"],"names":["useColumnOrdering","options","isEnabled","enableColumnOrdering","ensureOrdering","columns","settingsOrder","internalColumns","filter","column","id","startsWith","ACTIONS_COLUMN_ID","EDITING_ACTIONS_COLUMN_ID","map","orderingDisabled","orderingEnabled","orderedColumns","Array","isArray","slice","sort","a","b","indexOf","forEach","meta","enableOrdering","push","order","findIndex"],"mappings":";;;SAKgBA,iBAAiB,CAACC,OAAsB;EACpD,OAAO;IACHC,SAAS,EAAED,OAAO,CAACE;GACtB;AACL;SACgBC,cAAc,CAAkBC,OAA2B,EAAEC,aAAmC;;EAE5G,MAAMC,eAAe,GAAGF,OAAO,CAC1BG,MAAM,CACHC,MAAM;IAAA;IAAA,OAAI,eAAAA,MAAM,CAACC,EAAE,+CAAT,WAAWC,UAAU,CAAC,IAAI,CAAC,KAAIF,MAAM,CAACC,EAAE,KAAKE,SAAiB,IAAIH,MAAM,CAACC,EAAE,KAAKG,WAAyB;IACtH,CACAC,GAAG,CAACL,MAAM,IAAIA,MAAM,CAACC,EAAE,CAAa;;EAGzC,MAAMK,gBAAgB,GAAa,EAAE;EACrC,MAAMC,eAAe,GAAa,EAAE;EAEpC,IAAIC,cAAc,GAAGZ,OAAO;;EAG5B,IAAIa,KAAK,CAACC,OAAO,CAACb,aAAa,CAAC,EAAE;IAC9BW,cAAc,GAAGZ,OAAO,CAACe,KAAK,EAAE,CAACC,IAAI;;IAEjC,CAACC,CAAC,EAAEC,CAAC,KAAK,CAACjB,aAAa,CAACkB,OAAO,CAACF,CAAC,CAACZ,EAAY,CAAC,KAAK,CAAC,KAAKJ,aAAa,CAACkB,OAAO,CAACD,CAAC,CAACb,EAAY,CAAC,KAAK,CAAC,CAAC,CAC1G;;EAGLO,cAAc,CAACQ,OAAO,CAAChB,MAAM;;IACzB,mBAAIA,MAAM,CAACC,EAAE,wCAAT,YAAWC,UAAU,CAAC,IAAI,CAAC,EAAE;MAC7B;;IAGJ,oBAAIF,MAAM,CAACiB,IAAI,yCAAX,aAAaC,cAAc,EAAE;MAC7BX,eAAe,CAACY,IAAI,CAACnB,MAAM,CAACC,EAAY,CAAC;KAC5C,MAAM;MACHK,gBAAgB,CAACa,IAAI,CAACnB,MAAM,CAACC,EAAY,CAAC;;GAEjD,CAAC;EAEF,MAAMmB,KAAK,GAAG,CAAC,GAAGtB,eAAe,EAAE,GAAGQ,gBAAgB,EAAE,GAAGC,eAAe,CAAC;;EAG3E,IAAIX,OAAO,CAACyB,SAAS,CAACrB,MAAM,IAAIA,MAAM,CAACC,EAAE,KAAKE,SAAiB,IAAIH,MAAM,CAACC,EAAE,KAAKG,WAAyB,CAAC,GAAG,CAAC,CAAC,EAAE;IAC9GgB,KAAK,CAACD,IAAI,CAAChB,SAAiB,CAAC;;EAGjC,OAAOiB,KAAK;AAChB;;;;"}
@@ -0,0 +1,52 @@
1
+ import React__default from 'react';
2
+
3
+ function useCurrentRow(defaultCurrentRowIndex = 0) {
4
+ const [currentRowIndex, setCurrentRowIndex] = React__default.useState(defaultCurrentRowIndex);
5
+ const move = (direction, length, scrollToIndex) => setCurrentRowIndex(currentIndex => {
6
+ const nextIndex = currentIndex !== undefined ? getNextIndex(direction, currentIndex, length) : 0;
7
+ scrollToIndex(direction === -1 ? nextIndex : nextIndex + 3);
8
+ return nextIndex;
9
+ });
10
+ const moveUp = (length, callback) => move(-1, length, callback);
11
+ const moveDown = (length, callback) => move(1, length, callback);
12
+ const onKeyDown = React__default.useCallback((event, length, scrollToIndex) => {
13
+ if (event.isDefaultPrevented() || event.isPropagationStopped()) {
14
+ return;
15
+ }
16
+ if (event.key === 'ArrowUp') {
17
+ event.preventDefault();
18
+ if (event.ctrlKey || event.metaKey) {
19
+ const newIndex = 0;
20
+ setCurrentRowIndex(newIndex);
21
+ scrollToIndex(newIndex);
22
+ } else {
23
+ moveUp(length, scrollToIndex);
24
+ }
25
+ return;
26
+ } else if (event.key === 'ArrowDown') {
27
+ event.preventDefault();
28
+ if (event.ctrlKey || event.metaKey) {
29
+ const newIndex = length - 1;
30
+ setCurrentRowIndex(newIndex);
31
+ scrollToIndex(newIndex);
32
+ } else {
33
+ moveDown(length, scrollToIndex);
34
+ }
35
+ return;
36
+ }
37
+ }, []);
38
+ return {
39
+ currentRowIndex,
40
+ setCurrentRowIndex,
41
+ handleKeyDown: onKeyDown
42
+ };
43
+ }
44
+ const getNextIndex = (direction, currentIndex, length) => {
45
+ if (direction === -1) {
46
+ return currentIndex - 1 > 0 ? currentIndex - 1 : 0;
47
+ }
48
+ return currentIndex + 1 < length ? currentIndex + 1 : currentIndex;
49
+ };
50
+
51
+ export { useCurrentRow };
52
+ //# sourceMappingURL=useCurrentRow.js.map