@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 @@
1
+ {"version":3,"file":"EditingCell.js","sources":["../../../../../../../../../../src/components/Table3/components/columns/cell/EditingCell.tsx"],"sourcesContent":["import React from 'react';\nimport cn from 'classnames';\nimport _ from 'lodash';\nimport { TableMeta, CellContext, ColumnMeta, Cell as RTCell, Table as RTTable } from '@tanstack/react-table';\nimport { Input } from '../../../../Input/Input';\nimport { Switch } from '../../../../Switch/Switch';\nimport { Datepicker } from '../../../../Datepicker/Datepicker';\nimport { getCellAlignmentClasses, getInputAppearanceClassnames } from '../styles';\nimport { Indicator, IndicatorReason } from './Indicator';\nimport { columnFilterFn, globalFilterFn } from '../../../util/filtering';\nimport { Table3FilterValue } from '../../../types';\nimport { hasChanged, willRowMoveAfterSorting } from '../../../util/editing';\nimport { getCurrentRowCellElement } from '../../../util/columns';\nimport { deselectInputValue } from '../../../../../utils/input';\nimport { EDITING_ACTIONS_WIDTH } from '../internal/EditingActions';\n\nexport type EditingCellProps<TType = unknown> = CellContext<TType, unknown> & {\n children?: string | JSX.Element;\n};\n\nexport function EditingCell<TType = unknown>(props: EditingCellProps<TType>) {\n return <MemoedEditingCell<TType> {...props} />;\n}\n\n// Memoization\nexport type MemoedEditingCellProps<TType = unknown> = EditingCellProps<TType>;\n\nconst MemoedEditingCell = React.memo(function MemoedEditingCell<TType = unknown>(props: MemoedEditingCellProps<TType>) {\n const { cell, column, index, getValue, table, tableRef, row } = props;\n const tableMeta = table.options.meta as TableMeta<unknown>;\n const columnMeta = column.columnDef.meta as ColumnMeta<TType, unknown>;\n\n const cellRef = React.useRef<HTMLDivElement>(null);\n const controlRef = React.useRef<HTMLElement>(null);\n\n const handleChange = (value: unknown) => tableMeta.editing.setCellValue(cell, value);\n const value = tableMeta.editing.getCellValue(cell) ?? getValue();\n\n const handleFocus = event => {\n // Check if cell is hidden behind pinned columns or edititng actions, and scroll to it.\n const frozenColumnIndex = tableMeta.columnFreezing.frozenColumnIndex;\n const tableElement = tableRef.current;\n\n if (tableElement && frozenColumnIndex !== undefined && index > frozenColumnIndex) {\n const lastFrozenColumnElement = getCurrentRowCellElement(frozenColumnIndex, tableElement);\n const cellRect = cellRef.current?.getBoundingClientRect();\n const lastFrozenRect = lastFrozenColumnElement?.getBoundingClientRect();\n const tableRect = tableElement.getBoundingClientRect();\n\n // Check for pinned columns overlap\n if (cellRect && lastFrozenRect && cellRect.left < lastFrozenRect.left + lastFrozenRect.width) {\n const pinnedColumnsWidth = lastFrozenRect.left + lastFrozenRect.width;\n tableElement.scrollTo(cellRect.left - pinnedColumnsWidth, tableElement.scrollTop);\n // Check for editing actions overlap\n } else if (cellRect && tableRect && cellRect.right > tableRect.right - EDITING_ACTIONS_WIDTH) {\n const spaceBetweenCellAndEditingActions = 10;\n tableElement.scrollTo(\n // Need to take into account if table has been already scrolled.\n tableElement.scrollLeft + EDITING_ACTIONS_WIDTH + spaceBetweenCellAndEditingActions,\n tableElement.scrollTop\n );\n }\n }\n\n if (event.target?.select) {\n requestAnimationFrame(() => {\n event.target.select();\n });\n }\n };\n\n const handleBlur = () => {\n tableMeta.editing.setDetailModeEditing(false);\n };\n\n // row move indicator\n const moveReason = tableMeta.editing.rowMoveReason[cell.column.id] ?? null;\n const rows = table.getRowModel().rows;\n const isCurrentRow = rows[tableMeta.currentRow.currentRowIndex]?.id === row.id;\n const mountNode = React.useMemo(() => {\n if (moveReason) {\n return cellRef.current?.parentElement?.firstChild as Element | null;\n }\n return null;\n }, [moveReason, cellRef]);\n\n const removeMoveReason = () => {\n tableMeta.editing.removeRowMoveReason(cell.column.id);\n };\n\n React.useEffect(() => {\n // To avoid reseting move reason on another row hover,\n // we need to check for changes only if value got changed in the current row.\n if (!isCurrentRow) {\n return;\n }\n\n if (hasChanged(getValue(), value)) {\n const moveReason = getRowMoveReason(table, row.index, row.original, cell, value);\n tableMeta.editing.setRowMoveReason({ [cell.column.id]: moveReason });\n } else {\n removeMoveReason();\n }\n return removeMoveReason;\n }, [value]);\n\n const className = cn(\n '!px-2 py-[var(--table3-row-padding)]',\n // component overrides - grayscale for editing hover\n '[[role=\"row\"][data-current=\"false\"]:hover_&>*]:!grayscale [[role=\"row\"][data-current=\"false\"]:hover_&_.bg-white]:!bg-grey-100',\n // we alias to any because className conflicts with the Table2 definition,\n // when Table2 is gone, remove this as any\n typeof columnMeta.className === 'function' ? (columnMeta.className as any)(row.original) : columnMeta.className\n );\n\n return (\n <>\n {moveReason !== null && mountNode && (\n <Indicator\n reason={moveReason}\n columnName={String(cell.column.columnDef.header)}\n mountNode={mountNode}\n validationErrors={[]}\n />\n )}\n <div className={className} data-column-index={index} role=\"cell\" ref={cellRef}>\n <Control\n align={columnMeta.align}\n column={cell.column}\n data={cell.row.original}\n initialValue={getValue()}\n onBlur={handleBlur}\n onFocus={handleFocus}\n onChange={handleChange}\n ref={controlRef}\n table={table}\n tableRef={tableRef}\n value={value}\n cell={cell}\n />\n </div>\n </>\n );\n}) as <TType = unknown>(props: MemoedEditingCellProps<TType>) => JSX.Element;\n\nconst Control = React.forwardRef<HTMLElement, any>(function Control(props, ref) {\n const { align, column, data, initialValue, onChange: handleChange, table, tableRef, value, cell, ...attributes } = props;\n const tableMeta = table.options.meta as TableMeta<unknown>;\n\n const controlRenderer = column.columnDef.meta?.control;\n\n const isCellInDetailMode =\n tableMeta.editing.detailModeEditing && (ref as React.RefObject<HTMLElement>)?.current?.contains(document.activeElement);\n\n const handleKeyDown = (event: React.KeyboardEvent) => {\n const target = event.target as HTMLInputElement;\n\n if (target.readOnly) {\n return;\n }\n\n // prevent row arrow shortcuts triggering when in detail mode\n if (tableMeta.editing.detailModeEditing && (event.key === 'ArrowUp' || event.key === 'ArrowDown')) {\n event.preventDefault();\n event.stopPropagation();\n }\n\n if (event.key === 'Escape') {\n event.preventDefault();\n\n // Revert to initial value if escape was pressed in detail mode.\n if (tableMeta.editing.detailModeEditing) {\n tableMeta.editing.setDetailModeEditing(false);\n\n if (value !== initialValue) {\n // Before reseting to initial value, we need to check if edited row with cell initial value is the same as original row,\n // and in this case we need to completely remove row from editing state to avoid saving the same data as original.\n const changedRow: any = tableMeta.editing.changes ? tableMeta.editing.changes[cell.row.id] : {};\n const rowEdtitingDataWithInitialValue = { ...changedRow, [cell.column.id]: initialValue };\n if (_.isEqual(cell.row.original, rowEdtitingDataWithInitialValue)) {\n tableMeta.editing.resetChange(cell.row.id);\n } else {\n handleChange(initialValue);\n }\n }\n } else {\n tableMeta.editing.toggleEditing(false);\n tableRef.current?.focus();\n }\n\n return;\n }\n\n // Should enable/disable editing mode if Enter was clicked\n if (event.key === 'Enter') {\n event.preventDefault();\n\n if (!tableMeta.editing.detailModeEditing) {\n deselectInputValue(target);\n } else {\n target?.select?.();\n }\n\n // Ketydown \"Enter\" should toggle edititng mode\n tableMeta.editing.setDetailModeEditing(!tableMeta.editing.detailModeEditing);\n\n return;\n }\n };\n\n const handleDatepickerChange = event => {\n // When datepicker looses focus, it triggers change event, even if date wasn't changed,\n // so adding additional check here to prevent adding change to the edititng state.\n const originalDate = cell.row.original[cell.column.id];\n const changedDate = (event as any).detail;\n if (hasChanged(originalDate, changedDate)) {\n handleChange(changedDate);\n }\n };\n\n if (typeof controlRenderer === 'function') {\n return controlRenderer(\n {\n ...attributes,\n ref,\n setValue: nextValue => {\n if (nextValue !== value) {\n handleChange(nextValue);\n }\n },\n value,\n },\n data\n );\n } else if (controlRenderer === 'datepicker') {\n const handleDatepickerKeyDown = (event: React.KeyboardEvent<HTMLInputElement>) => {\n handleKeyDown(event);\n\n if (/^[a-z0-9]$/i.test(event.key)) {\n tableMeta.editing.setDetailModeEditing(true);\n return;\n }\n };\n\n return (\n <Datepicker\n {...attributes}\n className={cn({\n '[&_input]:!yt-focus-dark': isCellInDetailMode,\n })}\n onChange={handleDatepickerChange}\n onKeyDown={handleDatepickerKeyDown}\n ref={ref}\n value={value as Date}\n />\n );\n } else if (controlRenderer === 'switch') {\n return <Switch {...attributes} className=\"mx-2 mt-1.5\" checked={Boolean(value)} onChange={handleChange} ref={ref} />;\n }\n\n const isNumber = typeof value === 'number';\n const handleInputKeyDown = (event: React.KeyboardEvent<HTMLInputElement>) => {\n handleKeyDown(event);\n\n // Switching to editing mode, when key pressed any alphabetical character or number\n if (/^[a-z0-9]$/i.test(event.key)) {\n tableMeta.editing.setDetailModeEditing(true);\n return;\n }\n };\n\n return (\n <Input\n {...attributes}\n className={cn(getInputAppearanceClassnames(), getCellAlignmentClasses(align), {\n '!yt-focus-dark': isCellInDetailMode,\n })}\n onChange={event => {\n handleChange(event.target.value);\n }}\n onKeyDown={handleInputKeyDown}\n ref={ref as React.Ref<HTMLInputElement>}\n type={isNumber ? 'number' : undefined}\n value={isNumber ? value : String(value ?? '')}\n />\n );\n});\n\nfunction getRowMoveReason<TType>(\n table: RTTable<any>,\n rowIndex: number,\n rowValues: TType,\n cell: RTCell<any, unknown>,\n newValue: any\n) {\n let rowMoveReason: IndicatorReason | null = null;\n const { globalFilter } = table.getState();\n\n const isFilteredByGlobalFilter = Object.values<unknown>({ ...rowValues, [cell.id]: newValue }).some(cellValue =>\n // Global filter can be undefined when there is no text being searched so we pass an empty string to\n // globalFilterFn as query in that case.\n globalFilterFn(String(cellValue), globalFilter ? String(globalFilter) : '')\n );\n\n if (!isFilteredByGlobalFilter) {\n rowMoveReason = IndicatorReason.SEARCH;\n } else if (cell.column.getIsFiltered() && !columnFilterFn(newValue, cell.column.getFilterValue() as Table3FilterValue)) {\n rowMoveReason = IndicatorReason.FILTER;\n } else if (\n !rowMoveReason &&\n cell.column.getIsSorted() &&\n willRowMoveAfterSorting(\n newValue,\n cell,\n rowIndex,\n table.getRowModel().rows,\n !!table.getState().sorting.find(s => s.id === cell.column.id)?.desc\n )\n ) {\n rowMoveReason = IndicatorReason.SORTING;\n }\n\n return rowMoveReason;\n}\n"],"names":["EditingCell","props","React","MemoedEditingCell","memo","cell","column","index","getValue","table","tableRef","row","tableMeta","options","meta","columnMeta","columnDef","cellRef","useRef","controlRef","handleChange","value","editing","setCellValue","getCellValue","handleFocus","event","frozenColumnIndex","columnFreezing","tableElement","current","undefined","lastFrozenColumnElement","getCurrentRowCellElement","cellRect","getBoundingClientRect","lastFrozenRect","tableRect","left","width","pinnedColumnsWidth","scrollTo","scrollTop","right","EDITING_ACTIONS_WIDTH","spaceBetweenCellAndEditingActions","scrollLeft","target","select","requestAnimationFrame","handleBlur","setDetailModeEditing","moveReason","rowMoveReason","id","rows","getRowModel","isCurrentRow","currentRow","currentRowIndex","mountNode","useMemo","parentElement","firstChild","removeMoveReason","removeRowMoveReason","useEffect","hasChanged","getRowMoveReason","original","setRowMoveReason","className","cn","Indicator","reason","columnName","String","header","validationErrors","role","ref","Control","align","data","initialValue","onBlur","onFocus","onChange","forwardRef","attributes","controlRenderer","control","isCellInDetailMode","detailModeEditing","contains","document","activeElement","handleKeyDown","readOnly","key","preventDefault","stopPropagation","changedRow","changes","rowEdtitingDataWithInitialValue","_","isEqual","resetChange","toggleEditing","focus","deselectInputValue","handleDatepickerChange","originalDate","changedDate","detail","setValue","nextValue","handleDatepickerKeyDown","test","Datepicker","onKeyDown","Switch","checked","Boolean","isNumber","handleInputKeyDown","Input","getInputAppearanceClassnames","getCellAlignmentClasses","type","rowIndex","rowValues","newValue","globalFilter","getState","isFilteredByGlobalFilter","Object","values","some","cellValue","globalFilterFn","IndicatorReason","SEARCH","getIsFiltered","columnFilterFn","getFilterValue","FILTER","getIsSorted","willRowMoveAfterSorting","sorting","find","s","desc","SORTING"],"mappings":";;;;;;;;;;;;;;SAoBgBA,WAAW,CAAkBC,KAA8B;EACvE,oBAAOC,6BAACC,iBAAiB,oBAAYF,KAAK,EAAI;AAClD;AAKA,MAAME,iBAAiB,gBAAGD,cAAK,CAACE,IAAI,CAAC,SAASD,iBAAiB,CAAkBF,KAAoC;;EACjH,MAAM;IAAEI,IAAI;IAAEC,MAAM;IAAEC,KAAK;IAAEC,QAAQ;IAAEC,KAAK;IAAEC,QAAQ;IAAEC;GAAK,GAAGV,KAAK;EACrE,MAAMW,SAAS,GAAGH,KAAK,CAACI,OAAO,CAACC,IAA0B;EAC1D,MAAMC,UAAU,GAAGT,MAAM,CAACU,SAAS,CAACF,IAAkC;EAEtE,MAAMG,OAAO,GAAGf,cAAK,CAACgB,MAAM,CAAiB,IAAI,CAAC;EAClD,MAAMC,UAAU,GAAGjB,cAAK,CAACgB,MAAM,CAAc,IAAI,CAAC;EAElD,MAAME,YAAY,GAAIC,KAAc,IAAKT,SAAS,CAACU,OAAO,CAACC,YAAY,CAAClB,IAAI,EAAEgB,KAAK,CAAC;EACpF,MAAMA,KAAK,4BAAGT,SAAS,CAACU,OAAO,CAACE,YAAY,CAACnB,IAAI,CAAC,yEAAIG,QAAQ,EAAE;EAEhE,MAAMiB,WAAW,GAAGC,KAAK;;;IAErB,MAAMC,iBAAiB,GAAGf,SAAS,CAACgB,cAAc,CAACD,iBAAiB;IACpE,MAAME,YAAY,GAAGnB,QAAQ,CAACoB,OAAO;IAErC,IAAID,YAAY,IAAIF,iBAAiB,KAAKI,SAAS,IAAIxB,KAAK,GAAGoB,iBAAiB,EAAE;MAAA;MAC9E,MAAMK,uBAAuB,GAAGC,wBAAwB,CAACN,iBAAiB,EAAEE,YAAY,CAAC;MACzF,MAAMK,QAAQ,uBAAGjB,OAAO,CAACa,OAAO,qDAAf,iBAAiBK,qBAAqB,EAAE;MACzD,MAAMC,cAAc,GAAGJ,uBAAuB,aAAvBA,uBAAuB,uBAAvBA,uBAAuB,CAAEG,qBAAqB,EAAE;MACvE,MAAME,SAAS,GAAGR,YAAY,CAACM,qBAAqB,EAAE;;MAGtD,IAAID,QAAQ,IAAIE,cAAc,IAAIF,QAAQ,CAACI,IAAI,GAAGF,cAAc,CAACE,IAAI,GAAGF,cAAc,CAACG,KAAK,EAAE;QAC1F,MAAMC,kBAAkB,GAAGJ,cAAc,CAACE,IAAI,GAAGF,cAAc,CAACG,KAAK;QACrEV,YAAY,CAACY,QAAQ,CAACP,QAAQ,CAACI,IAAI,GAAGE,kBAAkB,EAAEX,YAAY,CAACa,SAAS,CAAC;;OAEpF,MAAM,IAAIR,QAAQ,IAAIG,SAAS,IAAIH,QAAQ,CAACS,KAAK,GAAGN,SAAS,CAACM,KAAK,GAAGC,qBAAqB,EAAE;QAC1F,MAAMC,iCAAiC,GAAG,EAAE;QAC5ChB,YAAY,CAACY,QAAQ;;QAEjBZ,YAAY,CAACiB,UAAU,GAAGF,qBAAqB,GAAGC,iCAAiC,EACnFhB,YAAY,CAACa,SAAS,CACzB;;;IAIT,qBAAIhB,KAAK,CAACqB,MAAM,0CAAZ,cAAcC,MAAM,EAAE;MACtBC,qBAAqB,CAAC;QAClBvB,KAAK,CAACqB,MAAM,CAACC,MAAM,EAAE;OACxB,CAAC;;GAET;EAED,MAAME,UAAU,GAAG;IACftC,SAAS,CAACU,OAAO,CAAC6B,oBAAoB,CAAC,KAAK,CAAC;GAChD;;EAGD,MAAMC,UAAU,4BAAGxC,SAAS,CAACU,OAAO,CAAC+B,aAAa,CAAChD,IAAI,CAACC,MAAM,CAACgD,EAAE,CAAC,yEAAI,IAAI;EAC1E,MAAMC,IAAI,GAAG9C,KAAK,CAAC+C,WAAW,EAAE,CAACD,IAAI;EACrC,MAAME,YAAY,GAAG,0BAAAF,IAAI,CAAC3C,SAAS,CAAC8C,UAAU,CAACC,eAAe,CAAC,0DAA1C,sBAA4CL,EAAE,MAAK3C,GAAG,CAAC2C,EAAE;EAC9E,MAAMM,SAAS,GAAG1D,cAAK,CAAC2D,OAAO,CAAC;IAC5B,IAAIT,UAAU,EAAE;MAAA;MACZ,4BAAOnC,OAAO,CAACa,OAAO,+EAAf,kBAAiBgC,aAAa,0DAA9B,sBAAgCC,UAA4B;;IAEvE,OAAO,IAAI;GACd,EAAE,CAACX,UAAU,EAAEnC,OAAO,CAAC,CAAC;EAEzB,MAAM+C,gBAAgB,GAAG;IACrBpD,SAAS,CAACU,OAAO,CAAC2C,mBAAmB,CAAC5D,IAAI,CAACC,MAAM,CAACgD,EAAE,CAAC;GACxD;EAEDpD,cAAK,CAACgE,SAAS,CAAC;;;IAGZ,IAAI,CAACT,YAAY,EAAE;MACf;;IAGJ,IAAIU,UAAU,CAAC3D,QAAQ,EAAE,EAAEa,KAAK,CAAC,EAAE;MAC/B,MAAM+B,UAAU,GAAGgB,gBAAgB,CAAC3D,KAAK,EAAEE,GAAG,CAACJ,KAAK,EAAEI,GAAG,CAAC0D,QAAQ,EAAEhE,IAAI,EAAEgB,KAAK,CAAC;MAChFT,SAAS,CAACU,OAAO,CAACgD,gBAAgB,CAAC;QAAE,CAACjE,IAAI,CAACC,MAAM,CAACgD,EAAE,GAAGF;OAAY,CAAC;KACvE,MAAM;MACHY,gBAAgB,EAAE;;IAEtB,OAAOA,gBAAgB;GAC1B,EAAE,CAAC3C,KAAK,CAAC,CAAC;EAEX,MAAMkD,SAAS,GAAGC,EAAE,CAChB,sCAAsC;;EAEtC,+HAA+H;;;EAG/H,OAAOzD,UAAU,CAACwD,SAAS,KAAK,UAAU,GAAIxD,UAAU,CAACwD,SAAiB,CAAC5D,GAAG,CAAC0D,QAAQ,CAAC,GAAGtD,UAAU,CAACwD,SAAS,CAClH;EAED,oBACIrE,4DACKkD,UAAU,KAAK,IAAI,IAAIQ,SAAS,iBAC7B1D,6BAACuE,SAAS;IACNC,MAAM,EAAEtB,UAAU;IAClBuB,UAAU,EAAEC,MAAM,CAACvE,IAAI,CAACC,MAAM,CAACU,SAAS,CAAC6D,MAAM,CAAC;IAChDjB,SAAS,EAAEA,SAAS;IACpBkB,gBAAgB,EAAE;IAEzB,eACD5E;IAAKqE,SAAS,EAAEA,SAAS;yBAAqBhE,KAAK;IAAEwE,IAAI,EAAC,MAAM;IAACC,GAAG,EAAE/D;kBAClEf,6BAAC+E,OAAO;IACJC,KAAK,EAAEnE,UAAU,CAACmE,KAAK;IACvB5E,MAAM,EAAED,IAAI,CAACC,MAAM;IACnB6E,IAAI,EAAE9E,IAAI,CAACM,GAAG,CAAC0D,QAAQ;IACvBe,YAAY,EAAE5E,QAAQ,EAAE;IACxB6E,MAAM,EAAEnC,UAAU;IAClBoC,OAAO,EAAE7D,WAAW;IACpB8D,QAAQ,EAAEnE,YAAY;IACtB4D,GAAG,EAAE7D,UAAU;IACfV,KAAK,EAAEA,KAAK;IACZC,QAAQ,EAAEA,QAAQ;IAClBW,KAAK,EAAEA,KAAK;IACZhB,IAAI,EAAEA;IACR,CACA,CACP;AAEX,CAAC,CAA2E;AAE5E,MAAM4E,OAAO,gBAAG/E,cAAK,CAACsF,UAAU,CAAmB,SAASP,OAAO,CAAChF,KAAK,EAAE+E,GAAG;;EAC1E,MAAM;IAAEE,KAAK;IAAE5E,MAAM;IAAE6E,IAAI;IAAEC,YAAY;IAAEG,QAAQ,EAAEnE,YAAY;IAAEX,KAAK;IAAEC,QAAQ;IAAEW,KAAK;IAAEhB,IAAI;IAAE,GAAGoF;GAAY,GAAGxF,KAAK;EACxH,MAAMW,SAAS,GAAGH,KAAK,CAACI,OAAO,CAACC,IAA0B;EAE1D,MAAM4E,eAAe,4BAAGpF,MAAM,CAACU,SAAS,CAACF,IAAI,0DAArB,sBAAuB6E,OAAO;EAEtD,MAAMC,kBAAkB,GACpBhF,SAAS,CAACU,OAAO,CAACuE,iBAAiB,KAAKb,GAAoC,aAApCA,GAAoC,uCAApCA,GAAoC,CAAElD,OAAO,iDAA7C,aAA+CgE,QAAQ,CAACC,QAAQ,CAACC,aAAa,CAAC;EAE3H,MAAMC,aAAa,GAAIvE,KAA0B;IAC7C,MAAMqB,MAAM,GAAGrB,KAAK,CAACqB,MAA0B;IAE/C,IAAIA,MAAM,CAACmD,QAAQ,EAAE;MACjB;;;IAIJ,IAAItF,SAAS,CAACU,OAAO,CAACuE,iBAAiB,KAAKnE,KAAK,CAACyE,GAAG,KAAK,SAAS,IAAIzE,KAAK,CAACyE,GAAG,KAAK,WAAW,CAAC,EAAE;MAC/FzE,KAAK,CAAC0E,cAAc,EAAE;MACtB1E,KAAK,CAAC2E,eAAe,EAAE;;IAG3B,IAAI3E,KAAK,CAACyE,GAAG,KAAK,QAAQ,EAAE;MACxBzE,KAAK,CAAC0E,cAAc,EAAE;;MAGtB,IAAIxF,SAAS,CAACU,OAAO,CAACuE,iBAAiB,EAAE;QACrCjF,SAAS,CAACU,OAAO,CAAC6B,oBAAoB,CAAC,KAAK,CAAC;QAE7C,IAAI9B,KAAK,KAAK+D,YAAY,EAAE;;;UAGxB,MAAMkB,UAAU,GAAQ1F,SAAS,CAACU,OAAO,CAACiF,OAAO,GAAG3F,SAAS,CAACU,OAAO,CAACiF,OAAO,CAAClG,IAAI,CAACM,GAAG,CAAC2C,EAAE,CAAC,GAAG,EAAE;UAC/F,MAAMkD,+BAA+B,GAAG;YAAE,GAAGF,UAAU;YAAE,CAACjG,IAAI,CAACC,MAAM,CAACgD,EAAE,GAAG8B;WAAc;UACzF,IAAIqB,CAAC,CAACC,OAAO,CAACrG,IAAI,CAACM,GAAG,CAAC0D,QAAQ,EAAEmC,+BAA+B,CAAC,EAAE;YAC/D5F,SAAS,CAACU,OAAO,CAACqF,WAAW,CAACtG,IAAI,CAACM,GAAG,CAAC2C,EAAE,CAAC;WAC7C,MAAM;YACHlC,YAAY,CAACgE,YAAY,CAAC;;;OAGrC,MAAM;QAAA;QACHxE,SAAS,CAACU,OAAO,CAACsF,aAAa,CAAC,KAAK,CAAC;QACtC,qBAAAlG,QAAQ,CAACoB,OAAO,sDAAhB,kBAAkB+E,KAAK,EAAE;;MAG7B;;;IAIJ,IAAInF,KAAK,CAACyE,GAAG,KAAK,OAAO,EAAE;MACvBzE,KAAK,CAAC0E,cAAc,EAAE;MAEtB,IAAI,CAACxF,SAAS,CAACU,OAAO,CAACuE,iBAAiB,EAAE;QACtCiB,kBAAkB,CAAC/D,MAAM,CAAC;OAC7B,MAAM;QAAA;QACHA,MAAM,aAANA,MAAM,yCAANA,MAAM,CAAEC,MAAM,mDAAd,oBAAAD,MAAM,CAAY;;;MAItBnC,SAAS,CAACU,OAAO,CAAC6B,oBAAoB,CAAC,CAACvC,SAAS,CAACU,OAAO,CAACuE,iBAAiB,CAAC;MAE5E;;GAEP;EAED,MAAMkB,sBAAsB,GAAGrF,KAAK;;;IAGhC,MAAMsF,YAAY,GAAG3G,IAAI,CAACM,GAAG,CAAC0D,QAAQ,CAAChE,IAAI,CAACC,MAAM,CAACgD,EAAE,CAAC;IACtD,MAAM2D,WAAW,GAAIvF,KAAa,CAACwF,MAAM;IACzC,IAAI/C,UAAU,CAAC6C,YAAY,EAAEC,WAAW,CAAC,EAAE;MACvC7F,YAAY,CAAC6F,WAAW,CAAC;;GAEhC;EAED,IAAI,OAAOvB,eAAe,KAAK,UAAU,EAAE;IACvC,OAAOA,eAAe,CAClB;MACI,GAAGD,UAAU;MACbT,GAAG;MACHmC,QAAQ,EAAEC,SAAS;QACf,IAAIA,SAAS,KAAK/F,KAAK,EAAE;UACrBD,YAAY,CAACgG,SAAS,CAAC;;OAE9B;MACD/F;KACH,EACD8D,IAAI,CACP;GACJ,MAAM,IAAIO,eAAe,KAAK,YAAY,EAAE;IACzC,MAAM2B,uBAAuB,GAAI3F,KAA4C;MACzEuE,aAAa,CAACvE,KAAK,CAAC;MAEpB,IAAI,aAAa,CAAC4F,IAAI,CAAC5F,KAAK,CAACyE,GAAG,CAAC,EAAE;QAC/BvF,SAAS,CAACU,OAAO,CAAC6B,oBAAoB,CAAC,IAAI,CAAC;QAC5C;;KAEP;IAED,oBACIjD,6BAACqH,UAAU,oBACH9B,UAAU;MACdlB,SAAS,EAAEC,EAAE,CAAC;QACV,0BAA0B,EAAEoB;OAC/B,CAAC;MACFL,QAAQ,EAAEwB,sBAAsB;MAChCS,SAAS,EAAEH,uBAAuB;MAClCrC,GAAG,EAAEA,GAAG;MACR3D,KAAK,EAAEA;OACT;GAET,MAAM,IAAIqE,eAAe,KAAK,QAAQ,EAAE;IACrC,oBAAOxF,6BAACuH,MAAM,oBAAKhC,UAAU;MAAElB,SAAS,EAAC,aAAa;MAACmD,OAAO,EAAEC,OAAO,CAACtG,KAAK,CAAC;MAAEkE,QAAQ,EAAEnE,YAAY;MAAE4D,GAAG,EAAEA;OAAO;;EAGxH,MAAM4C,QAAQ,GAAG,OAAOvG,KAAK,KAAK,QAAQ;EAC1C,MAAMwG,kBAAkB,GAAInG,KAA4C;IACpEuE,aAAa,CAACvE,KAAK,CAAC;;IAGpB,IAAI,aAAa,CAAC4F,IAAI,CAAC5F,KAAK,CAACyE,GAAG,CAAC,EAAE;MAC/BvF,SAAS,CAACU,OAAO,CAAC6B,oBAAoB,CAAC,IAAI,CAAC;MAC5C;;GAEP;EAED,oBACIjD,6BAAC4H,KAAK,oBACErC,UAAU;IACdlB,SAAS,EAAEC,EAAE,CAACuD,4BAA4B,EAAE,EAAEC,uBAAuB,CAAC9C,KAAK,CAAC,EAAE;MAC1E,gBAAgB,EAAEU;KACrB,CAAC;IACFL,QAAQ,EAAE7D,KAAK;MACXN,YAAY,CAACM,KAAK,CAACqB,MAAM,CAAC1B,KAAK,CAAC;KACnC;IACDmG,SAAS,EAAEK,kBAAkB;IAC7B7C,GAAG,EAAEA,GAAkC;IACvCiD,IAAI,EAAEL,QAAQ,GAAG,QAAQ,GAAG7F,SAAS;IACrCV,KAAK,EAAEuG,QAAQ,GAAGvG,KAAK,GAAGuD,MAAM,CAACvD,KAAK,aAALA,KAAK,cAALA,KAAK,GAAI,EAAE;KAC9C;AAEV,CAAC,CAAC;AAEF,SAAS+C,gBAAgB,CACrB3D,KAAmB,EACnByH,QAAgB,EAChBC,SAAgB,EAChB9H,IAA0B,EAC1B+H,QAAa;;EAEb,IAAI/E,aAAa,GAA2B,IAAI;EAChD,MAAM;IAAEgF;GAAc,GAAG5H,KAAK,CAAC6H,QAAQ,EAAE;EAEzC,MAAMC,wBAAwB,GAAGC,MAAM,CAACC,MAAM,CAAU;IAAE,GAAGN,SAAS;IAAE,CAAC9H,IAAI,CAACiD,EAAE,GAAG8E;GAAU,CAAC,CAACM,IAAI,CAACC,SAAS;;;EAGzGC,cAAc,CAAChE,MAAM,CAAC+D,SAAS,CAAC,EAAEN,YAAY,GAAGzD,MAAM,CAACyD,YAAY,CAAC,GAAG,EAAE,CAAC,CAC9E;EAED,IAAI,CAACE,wBAAwB,EAAE;IAC3BlF,aAAa,GAAGwF,eAAe,CAACC,MAAM;GACzC,MAAM,IAAIzI,IAAI,CAACC,MAAM,CAACyI,aAAa,EAAE,IAAI,CAACC,cAAc,CAACZ,QAAQ,EAAE/H,IAAI,CAACC,MAAM,CAAC2I,cAAc,EAAuB,CAAC,EAAE;IACpH5F,aAAa,GAAGwF,eAAe,CAACK,MAAM;GACzC,MAAM,IACH,CAAC7F,aAAa,IACdhD,IAAI,CAACC,MAAM,CAAC6I,WAAW,EAAE,IACzBC,uBAAuB,CACnBhB,QAAQ,EACR/H,IAAI,EACJ6H,QAAQ,EACRzH,KAAK,CAAC+C,WAAW,EAAE,CAACD,IAAI,EACxB,CAAC,2BAAC9C,KAAK,CAAC6H,QAAQ,EAAE,CAACe,OAAO,CAACC,IAAI,CAACC,CAAC,IAAIA,CAAC,CAACjG,EAAE,KAAKjD,IAAI,CAACC,MAAM,CAACgD,EAAE,CAAC,kDAA3D,sBAA6DkG,IAAI,EACtE,EACH;IACEnG,aAAa,GAAGwF,eAAe,CAACY,OAAO;;EAG3C,OAAOpG,aAAa;AACxB;;;;"}
@@ -0,0 +1,74 @@
1
+ import React__default from 'react';
2
+ import { Icon } from '../../../../Icon/Icon.js';
3
+ import { Tooltip } from '../../../../Tooltip/Tooltip.js';
4
+ import { useLocalization } from '../../../../Provider/Localization.js';
5
+ import ReactDOM from 'react-dom';
6
+
7
+ var IndicatorReason;
8
+ (function (IndicatorReason) {
9
+ IndicatorReason["SEARCH"] = "SEARCH";
10
+ IndicatorReason["SORTING"] = "SORTING";
11
+ IndicatorReason["FILTER"] = "FILTER";
12
+ })(IndicatorReason || (IndicatorReason = {}));
13
+ const useIndicatorText = reason => {
14
+ let title = '';
15
+ let description = '';
16
+ const {
17
+ texts
18
+ } = useLocalization();
19
+ switch (reason) {
20
+ case IndicatorReason.FILTER:
21
+ title = texts.table3.editing.rowIndicator.rowWillBeHidden;
22
+ description = texts.table3.editing.rowIndicator.rowWillMoveReasonFilter;
23
+ break;
24
+ case IndicatorReason.SEARCH:
25
+ title = texts.table3.editing.rowIndicator.rowWillBeHidden;
26
+ description = texts.table3.editing.rowIndicator.rowWillMoveReasonSearch;
27
+ break;
28
+ case IndicatorReason.SORTING:
29
+ title = texts.table3.editing.rowIndicator.rowWillMove;
30
+ description = texts.table3.editing.rowIndicator.rowWillMoveReasonSorting;
31
+ break;
32
+ }
33
+ return {
34
+ title,
35
+ description
36
+ };
37
+ };
38
+ const Indicator = ({
39
+ reason,
40
+ columnName,
41
+ mountNode,
42
+ validationErrors
43
+ }) => {
44
+ const container = React__default.useMemo(() => {
45
+ const element = document.createElement('div');
46
+ element.className += 'rounded-b-md items-center wcag-blue-500 absolute left-0 top-full ml-1 whitespace-nowrap px-1 py-0.5 text-xs font-bold shadow-sm';
47
+ return element;
48
+ }, []);
49
+ const indicatorText = useIndicatorText(reason);
50
+ const hasValidationErrorsInRow = !!validationErrors;
51
+ React__default.useEffect(() => {
52
+ // mountNode could be null when rows are filtered
53
+ // Pinned columns has z-20 class assigned, which overlaps indicator element, need to add z-21 to overlap pinned columns.
54
+ mountNode === null || mountNode === void 0 ? void 0 : mountNode.classList.add('!z-[21]', 'relative');
55
+ mountNode === null || mountNode === void 0 ? void 0 : mountNode.appendChild(container);
56
+ return () => {
57
+ mountNode === null || mountNode === void 0 ? void 0 : mountNode.classList.remove('!z-[21]', 'relative');
58
+ mountNode === null || mountNode === void 0 ? void 0 : mountNode.removeChild(container);
59
+ };
60
+ }, [hasValidationErrorsInRow, mountNode]);
61
+ // Using react portal inside a react tree component is an unorthodox way, but in order to avoid much code refactoring
62
+ // and being able to use Taco Tooltip component in side the visual indicator, portal is used.
63
+ return /*#__PURE__*/ReactDOM.createPortal( /*#__PURE__*/React__default.createElement(Tooltip, {
64
+ title: indicatorText.description.replace('[COLUMN]', columnName)
65
+ }, /*#__PURE__*/React__default.createElement("span", {
66
+ className: "flex gap-1 hover:cursor-pointer"
67
+ }, /*#__PURE__*/React__default.createElement(Icon, {
68
+ name: "info",
69
+ className: "!h-4 !w-4 rounded-full bg-white !p-0 text-blue-500"
70
+ }), indicatorText.title)), container);
71
+ };
72
+
73
+ export { Indicator, IndicatorReason, useIndicatorText };
74
+ //# sourceMappingURL=Indicator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Indicator.js","sources":["../../../../../../../../../../src/components/Table3/components/columns/cell/Indicator.tsx"],"sourcesContent":["import React from 'react';\nimport ReactDOM from 'react-dom';\nimport { useLocalization } from '../../../../Provider/Localization';\nimport { Tooltip } from '../../../../Tooltip/Tooltip';\nimport { Icon } from '../../../../Icon/Icon';\n\nexport enum IndicatorReason {\n SEARCH = 'SEARCH',\n SORTING = 'SORTING',\n FILTER = 'FILTER',\n}\n\nexport const useIndicatorText = reason => {\n let title = '';\n let description = '';\n\n const { texts } = useLocalization();\n\n switch (reason) {\n case IndicatorReason.FILTER:\n title = texts.table3.editing.rowIndicator.rowWillBeHidden;\n description = texts.table3.editing.rowIndicator.rowWillMoveReasonFilter;\n break;\n case IndicatorReason.SEARCH:\n title = texts.table3.editing.rowIndicator.rowWillBeHidden;\n description = texts.table3.editing.rowIndicator.rowWillMoveReasonSearch;\n break;\n case IndicatorReason.SORTING:\n title = texts.table3.editing.rowIndicator.rowWillMove;\n description = texts.table3.editing.rowIndicator.rowWillMoveReasonSorting;\n break;\n }\n\n return { title, description };\n};\n\nexport type IndicatorProps = {\n reason: IndicatorReason;\n columnName: string;\n mountNode: Element | null;\n validationErrors: any;\n};\nexport const Indicator = ({ reason, columnName, mountNode, validationErrors }: IndicatorProps) => {\n const container = React.useMemo(() => {\n const element = document.createElement('div');\n element.className +=\n 'rounded-b-md items-center wcag-blue-500 absolute left-0 top-full ml-1 whitespace-nowrap px-1 py-0.5 text-xs font-bold shadow-sm';\n\n return element;\n }, []);\n\n const indicatorText = useIndicatorText(reason);\n\n const hasValidationErrorsInRow = !!validationErrors;\n\n React.useEffect(() => {\n // mountNode could be null when rows are filtered\n // Pinned columns has z-20 class assigned, which overlaps indicator element, need to add z-21 to overlap pinned columns.\n mountNode?.classList.add('!z-[21]', 'relative');\n mountNode?.appendChild(container);\n\n return () => {\n mountNode?.classList.remove('!z-[21]', 'relative');\n mountNode?.removeChild(container);\n };\n }, [hasValidationErrorsInRow, mountNode]);\n\n // Using react portal inside a react tree component is an unorthodox way, but in order to avoid much code refactoring\n // and being able to use Taco Tooltip component in side the visual indicator, portal is used.\n return ReactDOM.createPortal(\n <Tooltip title={indicatorText.description.replace('[COLUMN]', columnName)}>\n <span className=\"flex gap-1 hover:cursor-pointer\">\n <Icon name=\"info\" className=\"!h-4 !w-4 rounded-full bg-white !p-0 text-blue-500\" />\n {indicatorText.title}\n </span>\n </Tooltip>,\n container\n );\n};\n"],"names":["IndicatorReason","useIndicatorText","reason","title","description","texts","useLocalization","FILTER","table3","editing","rowIndicator","rowWillBeHidden","rowWillMoveReasonFilter","SEARCH","rowWillMoveReasonSearch","SORTING","rowWillMove","rowWillMoveReasonSorting","Indicator","columnName","mountNode","validationErrors","container","React","useMemo","element","document","createElement","className","indicatorText","hasValidationErrorsInRow","useEffect","classList","add","appendChild","remove","removeChild","ReactDOM","createPortal","Tooltip","replace","Icon","name"],"mappings":";;;;;;IAMYA;AAAZ,WAAYA,eAAe;EACvBA,oCAAiB;EACjBA,sCAAmB;EACnBA,oCAAiB;AACrB,CAAC,EAJWA,eAAe,KAAfA,eAAe;MAMdC,gBAAgB,GAAGC,MAAM;EAClC,IAAIC,KAAK,GAAG,EAAE;EACd,IAAIC,WAAW,GAAG,EAAE;EAEpB,MAAM;IAAEC;GAAO,GAAGC,eAAe,EAAE;EAEnC,QAAQJ,MAAM;IACV,KAAKF,eAAe,CAACO,MAAM;MACvBJ,KAAK,GAAGE,KAAK,CAACG,MAAM,CAACC,OAAO,CAACC,YAAY,CAACC,eAAe;MACzDP,WAAW,GAAGC,KAAK,CAACG,MAAM,CAACC,OAAO,CAACC,YAAY,CAACE,uBAAuB;MACvE;IACJ,KAAKZ,eAAe,CAACa,MAAM;MACvBV,KAAK,GAAGE,KAAK,CAACG,MAAM,CAACC,OAAO,CAACC,YAAY,CAACC,eAAe;MACzDP,WAAW,GAAGC,KAAK,CAACG,MAAM,CAACC,OAAO,CAACC,YAAY,CAACI,uBAAuB;MACvE;IACJ,KAAKd,eAAe,CAACe,OAAO;MACxBZ,KAAK,GAAGE,KAAK,CAACG,MAAM,CAACC,OAAO,CAACC,YAAY,CAACM,WAAW;MACrDZ,WAAW,GAAGC,KAAK,CAACG,MAAM,CAACC,OAAO,CAACC,YAAY,CAACO,wBAAwB;MACxE;;EAGR,OAAO;IAAEd,KAAK;IAAEC;GAAa;AACjC;MAQac,SAAS,GAAG,CAAC;EAAEhB,MAAM;EAAEiB,UAAU;EAAEC,SAAS;EAAEC;CAAkC;EACzF,MAAMC,SAAS,GAAGC,cAAK,CAACC,OAAO,CAAC;IAC5B,MAAMC,OAAO,GAAGC,QAAQ,CAACC,aAAa,CAAC,KAAK,CAAC;IAC7CF,OAAO,CAACG,SAAS,IACb,iIAAiI;IAErI,OAAOH,OAAO;GACjB,EAAE,EAAE,CAAC;EAEN,MAAMI,aAAa,GAAG5B,gBAAgB,CAACC,MAAM,CAAC;EAE9C,MAAM4B,wBAAwB,GAAG,CAAC,CAACT,gBAAgB;EAEnDE,cAAK,CAACQ,SAAS,CAAC;;;IAGZX,SAAS,aAATA,SAAS,uBAATA,SAAS,CAAEY,SAAS,CAACC,GAAG,CAAC,SAAS,EAAE,UAAU,CAAC;IAC/Cb,SAAS,aAATA,SAAS,uBAATA,SAAS,CAAEc,WAAW,CAACZ,SAAS,CAAC;IAEjC,OAAO;MACHF,SAAS,aAATA,SAAS,uBAATA,SAAS,CAAEY,SAAS,CAACG,MAAM,CAAC,SAAS,EAAE,UAAU,CAAC;MAClDf,SAAS,aAATA,SAAS,uBAATA,SAAS,CAAEgB,WAAW,CAACd,SAAS,CAAC;KACpC;GACJ,EAAE,CAACQ,wBAAwB,EAAEV,SAAS,CAAC,CAAC;;;EAIzC,oBAAOiB,QAAQ,CAACC,YAAY,eACxBf,6BAACgB,OAAO;IAACpC,KAAK,EAAE0B,aAAa,CAACzB,WAAW,CAACoC,OAAO,CAAC,UAAU,EAAErB,UAAU;kBACpEI;IAAMK,SAAS,EAAC;kBACZL,6BAACkB,IAAI;IAACC,IAAI,EAAC,MAAM;IAACd,SAAS,EAAC;IAAuD,EAClFC,aAAa,CAAC1B,KAAK,CACjB,CACD,EACVmB,SAAS,CACZ;AACL;;;;"}
@@ -0,0 +1,50 @@
1
+ import React__default from 'react';
2
+ import cn from 'classnames';
3
+ import { isFrozenColumn } from '../../../util/columns.js';
4
+
5
+ function Footer(props) {
6
+ const {
7
+ column,
8
+ header,
9
+ table
10
+ } = props;
11
+ const meta = React__default.useMemo(() => column.columnDef.meta, []);
12
+ // Footers are heavily memoized because performance in our table is critical
13
+ // be careful and selective about props that you pass to the Footer
14
+ const memoedProps = {
15
+ align: meta.align,
16
+ id: header.id,
17
+ index: header.index,
18
+ isFrozen: isFrozenColumn(header.index, table),
19
+ meta,
20
+ table
21
+ };
22
+ return /*#__PURE__*/React__default.createElement(MemoedFooter, Object.assign({}, memoedProps));
23
+ }
24
+ const MemoedFooter = /*#__PURE__*/React__default.memo(function MemoedFooter(props) {
25
+ const {
26
+ align,
27
+ id,
28
+ index,
29
+ isFrozen,
30
+ meta,
31
+ table
32
+ } = props;
33
+ const className = cn('sticky bottom-0 border-t-2 font-bold h-10 box-content items-center group/column relative', {
34
+ 'z-30': isFrozen
35
+ });
36
+ if (table.options.debugAll) {
37
+ console.log('footer render', id);
38
+ }
39
+ return /*#__PURE__*/React__default.createElement("div", {
40
+ className: className,
41
+ "data-align": align,
42
+ "data-column-index": index,
43
+ role: "cell"
44
+ }, typeof meta.footer === 'function' ? /*#__PURE__*/React__default.createElement("span", {
45
+ className: "flex-grow truncate"
46
+ }, meta.footer(table.getRowModel().rows.map(row => row.original[id]))) : null);
47
+ });
48
+
49
+ export { Footer };
50
+ //# sourceMappingURL=Footer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Footer.js","sources":["../../../../../../../../../../src/components/Table3/components/columns/footer/Footer.tsx"],"sourcesContent":["import React from 'react';\nimport cn from 'classnames';\nimport { ColumnMeta, HeaderContext } from '@tanstack/react-table';\nimport { isFrozenColumn } from '../../../util/columns';\nimport { Table3ColumnAlignment, Table3ColumnFooterRenderer } from '../../../types';\n\nexport type FooterProps<TType = unknown> = HeaderContext<TType, unknown> & {\n renderer?: Table3ColumnFooterRenderer<TType>;\n};\n\nexport function Footer<TType = unknown>(props: FooterProps<TType>) {\n const { column, header, table } = props;\n const meta = React.useMemo(() => column.columnDef.meta, []) as ColumnMeta<TType, unknown>;\n\n // Footers are heavily memoized because performance in our table is critical\n // be careful and selective about props that you pass to the Footer\n const memoedProps = {\n align: meta.align,\n id: header.id,\n index: header.index,\n isFrozen: isFrozenColumn(header.index, table),\n meta,\n table,\n };\n\n return <MemoedFooter<TType> {...memoedProps} />;\n}\n\n// Memoization\nexport type MemoedFooterProps<TType = unknown> = Omit<FooterProps<TType>, 'header' | 'column' | 'scrollToIndex'> & {\n align?: Table3ColumnAlignment;\n id: string;\n index: number;\n isFrozen: boolean;\n meta: ColumnMeta<TType, unknown>;\n};\n\nconst MemoedFooter = React.memo(function MemoedFooter<TType = unknown>(props: MemoedFooterProps<TType>) {\n const { align, id, index, isFrozen, meta, table } = props;\n\n const className = cn('sticky bottom-0 border-t-2 font-bold h-10 box-content items-center group/column relative', {\n 'z-30': isFrozen,\n });\n\n if (table.options.debugAll) {\n console.log('footer render', id);\n }\n\n return (\n <div className={className} data-align={align} data-column-index={index} role=\"cell\">\n {typeof meta.footer === 'function' ? (\n <span className=\"flex-grow truncate\">{meta.footer(table.getRowModel().rows.map(row => row.original[id]))}</span>\n ) : null}\n </div>\n );\n}) as <TType = unknown>(props: MemoedFooterProps<TType>) => JSX.Element;\n"],"names":["Footer","props","column","header","table","meta","React","useMemo","columnDef","memoedProps","align","id","index","isFrozen","isFrozenColumn","MemoedFooter","memo","className","cn","options","debugAll","console","log","role","footer","getRowModel","rows","map","row","original"],"mappings":";;;;SAUgBA,MAAM,CAAkBC,KAAyB;EAC7D,MAAM;IAAEC,MAAM;IAAEC,MAAM;IAAEC;GAAO,GAAGH,KAAK;EACvC,MAAMI,IAAI,GAAGC,cAAK,CAACC,OAAO,CAAC,MAAML,MAAM,CAACM,SAAS,CAACH,IAAI,EAAE,EAAE,CAA+B;;;EAIzF,MAAMI,WAAW,GAAG;IAChBC,KAAK,EAAEL,IAAI,CAACK,KAAK;IACjBC,EAAE,EAAER,MAAM,CAACQ,EAAE;IACbC,KAAK,EAAET,MAAM,CAACS,KAAK;IACnBC,QAAQ,EAAEC,cAAc,CAACX,MAAM,CAACS,KAAK,EAAER,KAAK,CAAC;IAC7CC,IAAI;IACJD;GACH;EAED,oBAAOE,6BAACS,YAAY,oBAAYN,WAAW,EAAI;AACnD;AAWA,MAAMM,YAAY,gBAAGT,cAAK,CAACU,IAAI,CAAC,SAASD,YAAY,CAAkBd,KAA+B;EAClG,MAAM;IAAES,KAAK;IAAEC,EAAE;IAAEC,KAAK;IAAEC,QAAQ;IAAER,IAAI;IAAED;GAAO,GAAGH,KAAK;EAEzD,MAAMgB,SAAS,GAAGC,EAAE,CAAC,0FAA0F,EAAE;IAC7G,MAAM,EAAEL;GACX,CAAC;EAEF,IAAIT,KAAK,CAACe,OAAO,CAACC,QAAQ,EAAE;IACxBC,OAAO,CAACC,GAAG,CAAC,eAAe,EAAEX,EAAE,CAAC;;EAGpC,oBACIL;IAAKW,SAAS,EAAEA,SAAS;kBAAcP,KAAK;yBAAqBE,KAAK;IAAEW,IAAI,EAAC;KACxE,OAAOlB,IAAI,CAACmB,MAAM,KAAK,UAAU,gBAC9BlB;IAAMW,SAAS,EAAC;KAAsBZ,IAAI,CAACmB,MAAM,CAACpB,KAAK,CAACqB,WAAW,EAAE,CAACC,IAAI,CAACC,GAAG,CAACC,GAAG,IAAIA,GAAG,CAACC,QAAQ,CAAClB,EAAE,CAAC,CAAC,CAAC,CAAQ,GAChH,IAAI,CACN;AAEd,CAAC,CAAsE;;;;"}
@@ -0,0 +1,30 @@
1
+ import React__default from 'react';
2
+ import { useLocalization } from '../../../../Provider/Localization.js';
3
+
4
+ function Summary(props) {
5
+ const {
6
+ length,
7
+ table
8
+ } = props;
9
+ const {
10
+ locale,
11
+ texts
12
+ } = useLocalization();
13
+ let label;
14
+ let count;
15
+ // row selection
16
+ const rowsSelectedLength = table.getIsAllRowsSelected() ? length : table.getSelectedRowModel().rows.length;
17
+ if (rowsSelectedLength > 0) {
18
+ label = texts.table3.footer.summary.selected;
19
+ count = /*#__PURE__*/React__default.createElement(React__default.Fragment, null, /*#__PURE__*/React__default.createElement("strong", null, new Intl.NumberFormat(locale).format(rowsSelectedLength)), "\u00A0", texts.table3.footer.summary.count, "\u00A0", /*#__PURE__*/React__default.createElement("strong", null, length));
20
+ } else {
21
+ label = texts.table3.footer.summary.records;
22
+ count = /*#__PURE__*/React__default.createElement("strong", null, new Intl.NumberFormat(locale).format(length));
23
+ }
24
+ return /*#__PURE__*/React__default.createElement("div", {
25
+ className: "sticky bottom-0 left-0 z-40 -mt-10 flex h-10 w-fit items-center whitespace-nowrap bg-white px-4 !pr-3 shadow-[6px_0px_6px_theme(colors.white)]"
26
+ }, label, "\u00A0", count);
27
+ }
28
+
29
+ export { Summary };
30
+ //# sourceMappingURL=Summary.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Summary.js","sources":["../../../../../../../../../../src/components/Table3/components/columns/footer/Summary.tsx"],"sourcesContent":["import React from 'react';\nimport { Table as RTable } from '@tanstack/react-table';\nimport { useLocalization } from '../../../../Provider/Localization';\n\nexport type FooterSummaryProps<TType = unknown> = {\n length: number;\n table: RTable<TType>;\n};\n\nexport function Summary<TType = unknown>(props: FooterSummaryProps<TType>) {\n const { length, table } = props;\n const { locale, texts } = useLocalization();\n\n let label;\n let count;\n\n // row selection\n const rowsSelectedLength = table.getIsAllRowsSelected() ? length : table.getSelectedRowModel().rows.length;\n\n if (rowsSelectedLength > 0) {\n label = texts.table3.footer.summary.selected;\n count = (\n <>\n <strong>{new Intl.NumberFormat(locale).format(rowsSelectedLength)}</strong>&nbsp;\n {texts.table3.footer.summary.count}&nbsp;\n <strong>{length}</strong>\n </>\n );\n } else {\n label = texts.table3.footer.summary.records;\n count = <strong>{new Intl.NumberFormat(locale).format(length)}</strong>;\n }\n\n return (\n <div className=\"sticky bottom-0 left-0 z-40 -mt-10 flex h-10 w-fit items-center whitespace-nowrap bg-white px-4 !pr-3 shadow-[6px_0px_6px_theme(colors.white)]\">\n {label}&nbsp;{count}\n </div>\n );\n}\n"],"names":["Summary","props","length","table","locale","texts","useLocalization","label","count","rowsSelectedLength","getIsAllRowsSelected","getSelectedRowModel","rows","table3","footer","summary","selected","React","Intl","NumberFormat","format","records","className"],"mappings":";;;SASgBA,OAAO,CAAkBC,KAAgC;EACrE,MAAM;IAAEC,MAAM;IAAEC;GAAO,GAAGF,KAAK;EAC/B,MAAM;IAAEG,MAAM;IAAEC;GAAO,GAAGC,eAAe,EAAE;EAE3C,IAAIC,KAAK;EACT,IAAIC,KAAK;;EAGT,MAAMC,kBAAkB,GAAGN,KAAK,CAACO,oBAAoB,EAAE,GAAGR,MAAM,GAAGC,KAAK,CAACQ,mBAAmB,EAAE,CAACC,IAAI,CAACV,MAAM;EAE1G,IAAIO,kBAAkB,GAAG,CAAC,EAAE;IACxBF,KAAK,GAAGF,KAAK,CAACQ,MAAM,CAACC,MAAM,CAACC,OAAO,CAACC,QAAQ;IAC5CR,KAAK,gBACDS,yEACIA,6CAAS,IAAIC,IAAI,CAACC,YAAY,CAACf,MAAM,CAAC,CAACgB,MAAM,CAACX,kBAAkB,CAAC,CAAU,YAC1EJ,KAAK,CAACQ,MAAM,CAACC,MAAM,CAACC,OAAO,CAACP,KAAK,yBAClCS,6CAASf,MAAM,CAAU,CAEhC;GACJ,MAAM;IACHK,KAAK,GAAGF,KAAK,CAACQ,MAAM,CAACC,MAAM,CAACC,OAAO,CAACM,OAAO;IAC3Cb,KAAK,gBAAGS,6CAAS,IAAIC,IAAI,CAACC,YAAY,CAACf,MAAM,CAAC,CAACgB,MAAM,CAAClB,MAAM,CAAC,CAAU;;EAG3E,oBACIe;IAAKK,SAAS,EAAC;KACVf,KAAK,YAAQC,KAAK,CACjB;AAEd;;;;"}
@@ -0,0 +1,27 @@
1
+ import React__default from 'react';
2
+ import { useLocalization } from '../../../../Provider/Localization.js';
3
+ import { Popover } from '../../../../Popover/Popover.js';
4
+ import { SearchInput } from '../../../../SearchInput/SearchInput.js';
5
+
6
+ function GotoPopover(props) {
7
+ const {
8
+ onGoto: handleGoto,
9
+ trigger,
10
+ ...popoverProps
11
+ } = props;
12
+ const {
13
+ texts
14
+ } = useLocalization();
15
+ const handleSearch = value => handleGoto(value);
16
+ return /*#__PURE__*/React__default.createElement(Popover, Object.assign({}, popoverProps, {
17
+ anchor: trigger
18
+ }), /*#__PURE__*/React__default.createElement(Popover.Content, null, /*#__PURE__*/React__default.createElement(SearchInput, {
19
+ "aria-label": texts.table3.columns.menu.gotoRow,
20
+ name: "query",
21
+ onSearch: handleSearch,
22
+ placeholder: `${texts.table3.columns.menu.gotoRow}...`
23
+ })));
24
+ }
25
+
26
+ export { GotoPopover };
27
+ //# sourceMappingURL=Goto.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Goto.js","sources":["../../../../../../../../../../src/components/Table3/components/columns/header/Goto.tsx"],"sourcesContent":["import React from 'react';\nimport { useLocalization } from '../../../../Provider/Localization';\nimport { Popover, PopoverProps } from '../../../../Popover/Popover';\nimport { SearchInput } from '../../../../SearchInput/SearchInput';\n\nexport type GotoProps = PopoverProps & {\n onGoto: (query: string) => Promise<void>;\n};\nexport function GotoPopover(props: GotoProps) {\n const { onGoto: handleGoto, trigger, ...popoverProps } = props;\n const { texts } = useLocalization();\n\n const handleSearch = value => handleGoto(value);\n\n return (\n <Popover {...popoverProps} anchor={trigger}>\n <Popover.Content>\n <SearchInput\n aria-label={texts.table3.columns.menu.gotoRow}\n name=\"query\"\n onSearch={handleSearch}\n placeholder={`${texts.table3.columns.menu.gotoRow}...`}\n />\n </Popover.Content>\n </Popover>\n );\n}\n"],"names":["GotoPopover","props","onGoto","handleGoto","trigger","popoverProps","texts","useLocalization","handleSearch","value","React","Popover","anchor","Content","SearchInput","table3","columns","menu","gotoRow","name","onSearch","placeholder"],"mappings":";;;;;SAQgBA,WAAW,CAACC,KAAgB;EACxC,MAAM;IAAEC,MAAM,EAAEC,UAAU;IAAEC,OAAO;IAAE,GAAGC;GAAc,GAAGJ,KAAK;EAC9D,MAAM;IAAEK;GAAO,GAAGC,eAAe,EAAE;EAEnC,MAAMC,YAAY,GAAGC,KAAK,IAAIN,UAAU,CAACM,KAAK,CAAC;EAE/C,oBACIC,6BAACC,OAAO,oBAAKN,YAAY;IAAEO,MAAM,EAAER;mBAC/BM,6BAACC,OAAO,CAACE,OAAO,qBACZH,6BAACI,WAAW;kBACIR,KAAK,CAACS,MAAM,CAACC,OAAO,CAACC,IAAI,CAACC,OAAO;IAC7CC,IAAI,EAAC,OAAO;IACZC,QAAQ,EAAEZ,YAAY;IACtBa,WAAW,KAAKf,KAAK,CAACS,MAAM,CAACC,OAAO,CAACC,IAAI,CAACC;IAC5C,CACY,CACZ;AAElB;;;;"}
@@ -0,0 +1,134 @@
1
+ import React__default from 'react';
2
+ import cn from 'classnames';
3
+ import { Tooltip } from '../../../../Tooltip/Tooltip.js';
4
+ import { isFrozenColumn, isInternalColumn } from '../../../util/columns.js';
5
+ import { isGotoAvailable, isMenuAvailable, Menu } from './Menu.js';
6
+ import { Resizer } from './Resizer.js';
7
+ import { getSortAttributes, SortIndicator } from './SortIndicator.js';
8
+
9
+ function Header(props) {
10
+ const {
11
+ children,
12
+ column,
13
+ header,
14
+ scrollToIndex,
15
+ table
16
+ } = props;
17
+ const tableMeta = table.options.meta;
18
+ const columnMeta = React__default.useMemo(() => column.columnDef.meta, []);
19
+ const canSort = column.getCanSort();
20
+ // passing header or column results in re-renders on scroll, so anything from those objects as memoed props
21
+ const handleResize = React__default.useMemo(() => header.getResizeHandler(), []);
22
+ const handleSort = React__default.useMemo(() => header.column.getToggleSortingHandler(), []);
23
+ const handleHide = React__default.useMemo(() => header.column.getToggleVisibilityHandler(), []);
24
+ const hasGoto = isGotoAvailable(table, header);
25
+ const sorting = table.getState().sorting;
26
+ const filters = table.getState().columnFilters;
27
+ const search = table.getState().globalFilter;
28
+ const handleGoto = React__default.useMemo(() => {
29
+ if (hasGoto) {
30
+ return query => tableMeta.rowGoto.handleGoto(header.id, query, sorting, filters, search);
31
+ }
32
+ return undefined;
33
+ }, [hasGoto, JSON.stringify(sorting), JSON.stringify(filters), search]);
34
+ const memoedProps = {
35
+ align: columnMeta.align,
36
+ canFreeze: tableMeta.columnFreezing.isEnabled,
37
+ canHide: column.getCanHide(),
38
+ canResize: column.getCanResize(),
39
+ canSort,
40
+ children: children !== null && children !== void 0 ? children : columnMeta.header,
41
+ hasMenu: isMenuAvailable(table, header),
42
+ id: header.id,
43
+ index: header.index,
44
+ isFrozen: isFrozenColumn(header.index, table),
45
+ isResizing: column.getIsResizing(),
46
+ length: table.getRowModel().rows.length,
47
+ meta: columnMeta,
48
+ onGoto: handleGoto,
49
+ onHide: handleHide,
50
+ onResize: handleResize,
51
+ onSort: handleSort,
52
+ scrollToIndex,
53
+ sortDirection: column.getIsSorted(),
54
+ table
55
+ };
56
+ return /*#__PURE__*/React__default.createElement(MemoedHeader, Object.assign({}, memoedProps));
57
+ }
58
+ const MemoedHeader = /*#__PURE__*/React__default.memo(function MemoedHeader(props) {
59
+ var _meta$tooltip;
60
+ const {
61
+ align,
62
+ children,
63
+ canFreeze,
64
+ canHide,
65
+ canResize,
66
+ canSort,
67
+ hasMenu,
68
+ id,
69
+ index,
70
+ isFrozen,
71
+ isResizing,
72
+ length,
73
+ meta,
74
+ onGoto: handleGoto,
75
+ onHide: handleHide,
76
+ onResize: handleResize,
77
+ onSort: handleSort,
78
+ scrollToIndex,
79
+ sortDirection,
80
+ table
81
+ } = props;
82
+ const className = cn('sticky top-0 border-b-2 font-bold h-10 box-content items-center group/column relative', '[[role="table"][data-resizing="true"]_&]:pointer-events-none', {
83
+ 'cursor-pointer select-none': canSort,
84
+ 'hover:bg-grey-100': canSort || canResize || hasMenu,
85
+ '!pointer-events-all !bg-grey-100': isResizing,
86
+ // z-indexes
87
+ 'z-10 hover:z-20': !isFrozen && !isResizing,
88
+ 'z-20': !isFrozen && isResizing,
89
+ '!z-30': isFrozen,
90
+ '!z-40': isFrozen && isResizing
91
+ }, meta.headerClassName);
92
+ const [internalRef, setInternalRef] = React__default.useState(null);
93
+ React__default.useLayoutEffect(() => {
94
+ if (internalRef && length) {
95
+ table.setColumnSizing(sizes => ({
96
+ ...sizes,
97
+ [id]: internalRef.getBoundingClientRect().width
98
+ }));
99
+ }
100
+ }, [internalRef, length]);
101
+ if (table.options.debugAll) {
102
+ console.log('header render', id);
103
+ }
104
+ return /*#__PURE__*/React__default.createElement("div", Object.assign({}, canSort ? getSortAttributes(handleSort, sortDirection) : undefined, {
105
+ className: className,
106
+ "data-align": align,
107
+ "data-column-index": index,
108
+ role: "columnheader",
109
+ ref: setInternalRef
110
+ }), isInternalColumn(id) ? children : /*#__PURE__*/React__default.createElement(Tooltip, {
111
+ title: String((_meta$tooltip = meta === null || meta === void 0 ? void 0 : meta.tooltip) !== null && _meta$tooltip !== void 0 ? _meta$tooltip : children),
112
+ placement: "top"
113
+ }, /*#__PURE__*/React__default.createElement("span", {
114
+ className: "truncate"
115
+ }, children)), canSort ? /*#__PURE__*/React__default.createElement(SortIndicator, {
116
+ direction: sortDirection
117
+ }) : null, hasMenu ? /*#__PURE__*/React__default.createElement(Menu, {
118
+ canFreeze: canFreeze,
119
+ canHide: canHide,
120
+ className: "ml-auto hidden group-hover/column:flex aria-expanded:!flex",
121
+ index: index,
122
+ menu: meta.menu,
123
+ onGoto: handleGoto,
124
+ onHide: handleHide,
125
+ scrollToIndex: scrollToIndex,
126
+ table: table
127
+ }) : null, canResize ? /*#__PURE__*/React__default.createElement(Resizer, {
128
+ isResizing: isResizing,
129
+ onResize: handleResize
130
+ }) : null);
131
+ });
132
+
133
+ export { Header };
134
+ //# sourceMappingURL=Header.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Header.js","sources":["../../../../../../../../../../src/components/Table3/components/columns/header/Header.tsx"],"sourcesContent":["import React from 'react';\nimport cn from 'classnames';\nimport { ColumnMeta, HeaderContext, TableMeta } from '@tanstack/react-table';\nimport { Menu, isMenuAvailable, isGotoAvailable } from './Menu';\nimport { Resizer } from './Resizer';\nimport { Table3ColumnAlignment, Table3SortDirection, TableStrategy } from '../../../types';\nimport { getSortAttributes, SortIndicator } from './SortIndicator';\nimport { isFrozenColumn, isInternalColumn } from '../../../util/columns';\nimport { Tooltip } from '../../../../Tooltip/Tooltip';\n\nexport type HeaderProps<TType = unknown> = HeaderContext<TType, unknown> & {\n children?: string | JSX.Element;\n};\n\nexport function Header<TType = unknown>(props: HeaderProps<TType>) {\n const { children, column, header, scrollToIndex, table } = props;\n const tableMeta = table.options.meta as TableMeta<TType>;\n const columnMeta = React.useMemo(() => column.columnDef.meta, []) as ColumnMeta<TType, unknown>;\n const canSort = column.getCanSort();\n\n // passing header or column results in re-renders on scroll, so anything from those objects as memoed props\n const handleResize = React.useMemo(() => header.getResizeHandler(), []);\n const handleSort = React.useMemo(() => header.column.getToggleSortingHandler(), []);\n const handleHide = React.useMemo(() => header.column.getToggleVisibilityHandler(), []);\n const hasGoto = isGotoAvailable(table, header);\n\n const sorting = table.getState().sorting;\n const filters = table.getState().columnFilters;\n const search = table.getState().globalFilter;\n\n const handleGoto = React.useMemo(() => {\n if (hasGoto) {\n return ((query: string) => tableMeta.rowGoto.handleGoto(header.id, query, sorting, filters, search)) as (\n query: string\n ) => Promise<number>;\n }\n\n return undefined;\n }, [hasGoto, JSON.stringify(sorting), JSON.stringify(filters), search]);\n\n const memoedProps = {\n align: columnMeta.align,\n canFreeze: tableMeta.columnFreezing.isEnabled,\n canHide: column.getCanHide(),\n canResize: column.getCanResize(),\n canSort,\n children: children ?? columnMeta.header,\n hasMenu: isMenuAvailable<TType>(table, header),\n id: header.id,\n index: header.index,\n isFrozen: isFrozenColumn(header.index, table),\n isResizing: column.getIsResizing(),\n length: table.getRowModel().rows.length,\n meta: columnMeta,\n onGoto: handleGoto,\n onHide: handleHide,\n onResize: handleResize,\n onSort: handleSort as (event: unknown) => void,\n scrollToIndex,\n sortDirection: column.getIsSorted(),\n table,\n };\n\n return <MemoedHeader<TType> {...memoedProps} />;\n}\n\n// Memoization\nexport type MemoedHeaderProps<TType = unknown> = Omit<HeaderProps<TType>, 'column' | 'header'> & {\n align?: Table3ColumnAlignment;\n canFreeze: boolean;\n canHide: boolean;\n canResize: boolean;\n canSort: boolean;\n hasMenu: boolean;\n id: string;\n index: number;\n isFrozen: boolean;\n isResizing: boolean;\n length: number;\n meta: ColumnMeta<TType, unknown>;\n onGoto?: (query: string) => Promise<number>;\n onHide: (event: unknown) => void;\n onResize: (event: unknown) => void;\n onSort: (event: unknown) => void;\n scrollToIndex: TableStrategy['scrollToIndex'];\n sortDirection: false | Table3SortDirection;\n};\n\nconst MemoedHeader = React.memo(function MemoedHeader<TType = unknown>(props: MemoedHeaderProps<TType>) {\n const {\n align,\n children,\n canFreeze,\n canHide,\n canResize,\n canSort,\n hasMenu,\n id,\n index,\n isFrozen,\n isResizing,\n length,\n meta,\n onGoto: handleGoto,\n onHide: handleHide,\n onResize: handleResize,\n onSort: handleSort,\n scrollToIndex,\n sortDirection,\n table,\n } = props;\n\n const className = cn(\n 'sticky top-0 border-b-2 font-bold h-10 box-content items-center group/column relative',\n '[[role=\"table\"][data-resizing=\"true\"]_&]:pointer-events-none',\n {\n 'cursor-pointer select-none': canSort,\n 'hover:bg-grey-100': canSort || canResize || hasMenu,\n '!pointer-events-all !bg-grey-100': isResizing,\n // z-indexes\n 'z-10 hover:z-20': !isFrozen && !isResizing,\n 'z-20': !isFrozen && isResizing,\n '!z-30': isFrozen,\n '!z-40': isFrozen && isResizing,\n },\n meta.headerClassName\n );\n\n const [internalRef, setInternalRef] = React.useState<HTMLDivElement | null>(null);\n\n React.useLayoutEffect(() => {\n if (internalRef && length) {\n table.setColumnSizing(sizes => ({\n ...sizes,\n [id]: internalRef.getBoundingClientRect().width,\n }));\n }\n }, [internalRef, length]);\n\n if (table.options.debugAll) {\n console.log('header render', id);\n }\n\n return (\n <div\n {...(canSort ? getSortAttributes(handleSort, sortDirection) : undefined)}\n className={className}\n data-align={align}\n data-column-index={index}\n role=\"columnheader\"\n ref={setInternalRef}>\n {isInternalColumn(id) ? (\n children\n ) : (\n <Tooltip title={String(meta?.tooltip ?? children)} placement=\"top\">\n <span className=\"truncate\">{children}</span>\n </Tooltip>\n )}\n {canSort ? <SortIndicator direction={sortDirection} /> : null}\n {hasMenu ? (\n <Menu\n canFreeze={canFreeze}\n canHide={canHide}\n className=\"ml-auto hidden group-hover/column:flex aria-expanded:!flex\"\n index={index}\n menu={meta.menu}\n onGoto={handleGoto}\n onHide={handleHide}\n scrollToIndex={scrollToIndex}\n table={table}\n />\n ) : null}\n {canResize ? <Resizer isResizing={isResizing} onResize={handleResize} /> : null}\n </div>\n );\n}) as <TType = unknown>(props: MemoedHeaderProps<TType>) => JSX.Element;\n"],"names":["Header","props","children","column","header","scrollToIndex","table","tableMeta","options","meta","columnMeta","React","useMemo","columnDef","canSort","getCanSort","handleResize","getResizeHandler","handleSort","getToggleSortingHandler","handleHide","getToggleVisibilityHandler","hasGoto","isGotoAvailable","sorting","getState","filters","columnFilters","search","globalFilter","handleGoto","query","rowGoto","id","undefined","JSON","stringify","memoedProps","align","canFreeze","columnFreezing","isEnabled","canHide","getCanHide","canResize","getCanResize","hasMenu","isMenuAvailable","index","isFrozen","isFrozenColumn","isResizing","getIsResizing","length","getRowModel","rows","onGoto","onHide","onResize","onSort","sortDirection","getIsSorted","MemoedHeader","memo","className","cn","headerClassName","internalRef","setInternalRef","useState","useLayoutEffect","setColumnSizing","sizes","getBoundingClientRect","width","debugAll","console","log","getSortAttributes","role","ref","isInternalColumn","Tooltip","title","String","tooltip","placement","SortIndicator","direction","Menu","menu","Resizer"],"mappings":"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"}
@@ -0,0 +1,156 @@
1
+ import React__default from 'react';
2
+ import cn from 'classnames';
3
+ import { IconButton } from '../../../../IconButton/IconButton.js';
4
+ import { useLocalization } from '../../../../Provider/Localization.js';
5
+ import { Menu as Menu$1 } from '../../../../Menu/Menu.js';
6
+ import { _finallyRethrows, _catch } from '../../../../../../../../node_modules/babel-plugin-transform-async-to-promises/helpers.mjs.js';
7
+ import { isInternalColumn } from '../../../util/columns.js';
8
+ import { GotoPopover } from './Goto.js';
9
+
10
+ function isGotoAvailable(table, header) {
11
+ if (isInternalColumn(header.id)) {
12
+ return false;
13
+ }
14
+ const tableMeta = table.options.meta;
15
+ return !!(tableMeta.rowGoto.isEnabled && header.column.getCanSort() && header.column.getIsSorted());
16
+ }
17
+ function isMenuAvailable(table, header) {
18
+ var _header$column$column;
19
+ if (isInternalColumn(header.id)) {
20
+ return false;
21
+ }
22
+ const tableMeta = table.options.meta;
23
+ return !!((_header$column$column = header.column.columnDef.meta) !== null && _header$column$column !== void 0 && _header$column$column.menu) || !!tableMeta.columnFreezing.isEnabled || !!table.options.enableHiding && !!header.column.getCanHide() || isGotoAvailable(table, header);
24
+ }
25
+ function getInitialFrozenIndex(table) {
26
+ const tableMeta = table.options.meta;
27
+ let index = 0;
28
+ if (tableMeta.rowDrag.isEnabled) {
29
+ index++;
30
+ }
31
+ if (table.options.enableRowSelection) {
32
+ index++;
33
+ }
34
+ if (table.options.enableExpanding) {
35
+ index++;
36
+ }
37
+ return index;
38
+ }
39
+ function Menu(props) {
40
+ const {
41
+ canFreeze,
42
+ canHide,
43
+ index,
44
+ menu,
45
+ onGoto: handleGoto,
46
+ onHide: handleHide,
47
+ scrollToIndex,
48
+ table
49
+ } = props;
50
+ const tableMeta = table.options.meta;
51
+ const {
52
+ texts
53
+ } = useLocalization();
54
+ const [popover, setPopover] = React__default.useState(undefined);
55
+ let popoverElement;
56
+ if (popover) {
57
+ const handleClosePopover = () => setPopover(undefined);
58
+ switch (popover) {
59
+ case 'goto':
60
+ {
61
+ if (handleGoto) {
62
+ const goto = function (query) {
63
+ try {
64
+ const _temp = _finallyRethrows(function () {
65
+ return _catch(function () {
66
+ return Promise.resolve(handleGoto(query)).then(function (index) {
67
+ tableMeta.currentRow.setCurrentRowIndex(index);
68
+ scrollToIndex(index + 2, {
69
+ align: 'center'
70
+ });
71
+ });
72
+ }, function () {});
73
+ }, function (_wasThrown, _result) {
74
+ handleClosePopover();
75
+ if (_wasThrown) throw _result;
76
+ return _result;
77
+ });
78
+ return Promise.resolve(_temp && _temp.then ? _temp.then(function () {}) : void 0);
79
+ } catch (e) {
80
+ return Promise.reject(e);
81
+ }
82
+ };
83
+ popoverElement = props => /*#__PURE__*/React__default.createElement(GotoPopover, Object.assign({}, props, {
84
+ open: true,
85
+ onChange: handleClosePopover,
86
+ onGoto: goto
87
+ }));
88
+ }
89
+ }
90
+ }
91
+ }
92
+ const className = cn('-my-0.5 -mr-1 -ml-0.5 !h-6 !min-h-[theme(spacing.6)] !w-6 !min-w-[theme(spacing.6)] flex-shrink-0 justify-end', {
93
+ '!flex': !!popoverElement
94
+ }, props.className);
95
+ const memoedMenuItems = React__default.useMemo(() => {
96
+ const menuItems = [];
97
+ if (handleGoto) {
98
+ menuItems.push( /*#__PURE__*/React__default.createElement(Menu$1.Item, {
99
+ icon: "move",
100
+ onClick: () => setPopover('goto')
101
+ }, texts.table3.columns.menu.gotoRow, "..."));
102
+ }
103
+ if (canHide) {
104
+ // we do this in the next tick, otherwise the menu closes and react throws a "state update on unmounted component" error
105
+ const handleClick = event => setTimeout(() => handleHide(event), 1);
106
+ menuItems.push( /*#__PURE__*/React__default.createElement(Menu$1.Item, {
107
+ icon: "unreconciled",
108
+ onClick: handleClick
109
+ }, texts.table3.columns.menu.hideColumn));
110
+ }
111
+ if (canFreeze) {
112
+ const handleClick = () => {
113
+ tableMeta.columnFreezing.setFrozenColumnIndex(index);
114
+ };
115
+ const frozenIndex = index - getInitialFrozenIndex(table);
116
+ menuItems.push( /*#__PURE__*/React__default.createElement(Menu$1.Item, {
117
+ icon: "column-freeze",
118
+ onClick: handleClick
119
+ }, frozenIndex === 0 ? texts.table3.columns.menu.freezeFirstColumn : texts.table3.columns.menu.freezeUptoColumn.replace('[TOTAL]', String(frozenIndex + 1))));
120
+ if (tableMeta.columnFreezing.frozenColumnIndex !== undefined) {
121
+ const handleClick = () => {
122
+ tableMeta.columnFreezing.setFrozenColumnIndex(undefined);
123
+ };
124
+ menuItems.push( /*#__PURE__*/React__default.createElement(Menu$1.Item, {
125
+ icon: "column-unfreeze",
126
+ onClick: handleClick
127
+ }, texts.table3.columns.menu.unfreezeColumns));
128
+ }
129
+ }
130
+ if (menu) {
131
+ const customMenu = menu({
132
+ trigger: undefined
133
+ });
134
+ const customItems = React__default.Children.toArray(customMenu.props.children.props.children);
135
+ if (customItems.length) {
136
+ if (menuItems.length) {
137
+ menuItems.push( /*#__PURE__*/React__default.createElement(Menu$1.Separator, null));
138
+ }
139
+ menuItems.push(...customItems);
140
+ }
141
+ }
142
+ return menuItems.map((item, key) => /*#__PURE__*/React__default.cloneElement(item, {
143
+ key
144
+ }));
145
+ }, [menu, index, canFreeze, canHide, tableMeta.columnFreezing.frozenColumnIndex]);
146
+ return /*#__PURE__*/React__default.createElement(IconButton, {
147
+ className: className,
148
+ icon: "more",
149
+ menu: popoverElement ? undefined : menuProps => /*#__PURE__*/React__default.createElement(Menu$1, Object.assign({}, menuProps), /*#__PURE__*/React__default.createElement(Menu$1.Content, null, memoedMenuItems)),
150
+ popover: popoverElement,
151
+ onClickCapture: event => event.preventDefault()
152
+ });
153
+ }
154
+
155
+ export { Menu, isGotoAvailable, isMenuAvailable };
156
+ //# sourceMappingURL=Menu.js.map