@economic/taco 2.15.0 → 2.17.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (291) hide show
  1. package/dist/components/Drawer/Drawer.d.ts +5 -1
  2. package/dist/components/Provider/Localization.d.ts +19 -0
  3. package/dist/components/SearchInput2/SearchInput2.d.ts +1 -0
  4. package/dist/components/Table3/Table3.d.ts +0 -2
  5. package/dist/components/Table3/components/alert/ErrorAlert.d.ts +10 -0
  6. package/dist/components/Table3/components/columns/cell/DisplayCell.d.ts +5 -2
  7. package/dist/components/Table3/components/columns/cell/EditingCell.d.ts +3 -0
  8. package/dist/components/Table3/components/columns/cell/EditingControl.d.ts +1 -1
  9. package/dist/components/Table3/components/columns/cell/Highlight.d.ts +2 -0
  10. package/dist/components/Table3/components/columns/header/Header.d.ts +1 -1
  11. package/dist/components/Table3/components/columns/internal/EditingActions.d.ts +1 -1
  12. package/dist/components/Table3/components/columns/styles.d.ts +2 -2
  13. package/dist/components/Table3/components/rows/Row.d.ts +5 -1
  14. package/dist/components/Table3/components/rows/RowContext.d.ts +1 -0
  15. package/dist/components/Table3/hooks/features/useEditing.d.ts +12 -11
  16. package/dist/components/Table3/hooks/features/{usePauseHoverState.d.ts → usePauseShortcuts.d.ts} +1 -2
  17. package/dist/components/Table3/hooks/features/useSearch.d.ts +3 -3
  18. package/dist/components/Table3/hooks/features/useValidation.d.ts +13 -0
  19. package/dist/components/Table3/hooks/useTable.d.ts +25 -20
  20. package/dist/components/Table3/types.d.ts +41 -19
  21. package/dist/components/Table3/util/editing.d.ts +6 -0
  22. package/dist/components/Table3/util/scrolling.d.ts +2 -0
  23. package/dist/esm/index.css +108 -33
  24. package/dist/esm/packages/taco/src/components/Banner/Banner.js +2 -2
  25. package/dist/esm/packages/taco/src/components/Banner/Banner.js.map +1 -1
  26. package/dist/esm/packages/taco/src/components/Calendar/Calendar.js +4 -4
  27. package/dist/esm/packages/taco/src/components/Calendar/Calendar.js.map +1 -1
  28. package/dist/esm/packages/taco/src/components/Combobox/Combobox.js +3 -3
  29. package/dist/esm/packages/taco/src/components/Combobox/Combobox.js.map +1 -1
  30. package/dist/esm/packages/taco/src/components/Combobox/useCombobox.js +2 -1
  31. package/dist/esm/packages/taco/src/components/Combobox/useCombobox.js.map +1 -1
  32. package/dist/esm/packages/taco/src/components/Datepicker/Datepicker.js +6 -6
  33. package/dist/esm/packages/taco/src/components/Datepicker/Datepicker.js.map +1 -1
  34. package/dist/esm/packages/taco/src/components/Dialog/components/Content.js +3 -3
  35. package/dist/esm/packages/taco/src/components/Dialog/components/Content.js.map +1 -1
  36. package/dist/esm/packages/taco/src/components/Drawer/Drawer.js +7 -2
  37. package/dist/esm/packages/taco/src/components/Drawer/Drawer.js.map +1 -1
  38. package/dist/esm/packages/taco/src/components/Drawer/components/Content.js +7 -7
  39. package/dist/esm/packages/taco/src/components/Drawer/components/Content.js.map +1 -1
  40. package/dist/esm/packages/taco/src/components/Field/Field.js +2 -2
  41. package/dist/esm/packages/taco/src/components/Field/Field.js.map +1 -1
  42. package/dist/esm/packages/taco/src/components/Header/components/Agreement/Item.js +2 -2
  43. package/dist/esm/packages/taco/src/components/Header/components/Agreement/Item.js.map +1 -1
  44. package/dist/esm/packages/taco/src/components/Header/components/AgreementSelector.js +4 -4
  45. package/dist/esm/packages/taco/src/components/Header/components/AgreementSelector.js.map +1 -1
  46. package/dist/esm/packages/taco/src/components/Header/components/Link.js +2 -2
  47. package/dist/esm/packages/taco/src/components/Header/components/Link.js.map +1 -1
  48. package/dist/esm/packages/taco/src/components/Icon/Icon.js +2 -2
  49. package/dist/esm/packages/taco/src/components/Icon/Icon.js.map +1 -1
  50. package/dist/esm/packages/taco/src/components/Layout/components/Sidebar.js +2 -2
  51. package/dist/esm/packages/taco/src/components/Layout/components/Sidebar.js.map +1 -1
  52. package/dist/esm/packages/taco/src/components/Listbox/ScrollableList.js +6 -6
  53. package/dist/esm/packages/taco/src/components/Listbox/ScrollableList.js.map +1 -1
  54. package/dist/esm/packages/taco/src/components/Menu/components/Item.js +4 -4
  55. package/dist/esm/packages/taco/src/components/Menu/components/Item.js.map +1 -1
  56. package/dist/esm/packages/taco/src/components/Navigation/Navigation.js +2 -2
  57. package/dist/esm/packages/taco/src/components/Navigation/Navigation.js.map +1 -1
  58. package/dist/esm/packages/taco/src/components/Navigation2/components/Link.js +3 -3
  59. package/dist/esm/packages/taco/src/components/Navigation2/components/Link.js.map +1 -1
  60. package/dist/esm/packages/taco/src/components/Navigation2/components/Section.js +2 -2
  61. package/dist/esm/packages/taco/src/components/Navigation2/components/Section.js.map +1 -1
  62. package/dist/esm/packages/taco/src/components/OverflowGroup/OverflowGroup.js +1 -1
  63. package/dist/esm/packages/taco/src/components/OverflowGroup/OverflowGroup.js.map +1 -1
  64. package/dist/esm/packages/taco/src/components/Pagination/PageNumbers.js +2 -2
  65. package/dist/esm/packages/taco/src/components/Pagination/PageNumbers.js.map +1 -1
  66. package/dist/esm/packages/taco/src/components/Pagination/Pagination.js +5 -5
  67. package/dist/esm/packages/taco/src/components/Pagination/Pagination.js.map +1 -1
  68. package/dist/esm/packages/taco/src/components/Popover/Popover.js +2 -2
  69. package/dist/esm/packages/taco/src/components/Popover/Popover.js.map +1 -1
  70. package/dist/esm/packages/taco/src/components/Provider/Localization.js +19 -0
  71. package/dist/esm/packages/taco/src/components/Provider/Localization.js.map +1 -1
  72. package/dist/esm/packages/taco/src/components/SearchInput/SearchInput.js +2 -2
  73. package/dist/esm/packages/taco/src/components/SearchInput/SearchInput.js.map +1 -1
  74. package/dist/esm/packages/taco/src/components/SearchInput2/SearchInput2.js +12 -8
  75. package/dist/esm/packages/taco/src/components/SearchInput2/SearchInput2.js.map +1 -1
  76. package/dist/esm/packages/taco/src/components/Select/useSelect.js +2 -2
  77. package/dist/esm/packages/taco/src/components/Select/useSelect.js.map +1 -1
  78. package/dist/esm/packages/taco/src/components/Select2/Select2.js +7 -7
  79. package/dist/esm/packages/taco/src/components/Select2/Select2.js.map +1 -1
  80. package/dist/esm/packages/taco/src/components/Select2/components/Edit.js +8 -8
  81. package/dist/esm/packages/taco/src/components/Select2/components/Edit.js.map +1 -1
  82. package/dist/esm/packages/taco/src/components/Select2/components/Option.js +5 -5
  83. package/dist/esm/packages/taco/src/components/Select2/components/Option.js.map +1 -1
  84. package/dist/esm/packages/taco/src/components/Select2/components/Trigger.js +10 -10
  85. package/dist/esm/packages/taco/src/components/Select2/components/Trigger.js.map +1 -1
  86. package/dist/esm/packages/taco/src/components/Shortcut/Shortcut.js +2 -2
  87. package/dist/esm/packages/taco/src/components/Shortcut/Shortcut.js.map +1 -1
  88. package/dist/esm/packages/taco/src/components/Table/components/BaseTable.js +3 -3
  89. package/dist/esm/packages/taco/src/components/Table/components/BaseTable.js.map +1 -1
  90. package/dist/esm/packages/taco/src/components/Table/components/WindowedTable.js +2 -2
  91. package/dist/esm/packages/taco/src/components/Table/components/WindowedTable.js.map +1 -1
  92. package/dist/esm/packages/taco/src/components/Table/hooks/plugins/useRowActions.js +10 -10
  93. package/dist/esm/packages/taco/src/components/Table/hooks/plugins/useRowActions.js.map +1 -1
  94. package/dist/esm/packages/taco/src/components/Table/util/renderColumn.js +2 -2
  95. package/dist/esm/packages/taco/src/components/Table/util/renderColumn.js.map +1 -1
  96. package/dist/esm/packages/taco/src/components/Table3/Table3.js +37 -30
  97. package/dist/esm/packages/taco/src/components/Table3/Table3.js.map +1 -1
  98. package/dist/esm/packages/taco/src/components/Table3/components/alert/ErrorAlert.js +154 -0
  99. package/dist/esm/packages/taco/src/components/Table3/components/alert/ErrorAlert.js.map +1 -0
  100. package/dist/esm/packages/taco/src/components/Table3/components/columns/cell/Cell.js +54 -9
  101. package/dist/esm/packages/taco/src/components/Table3/components/columns/cell/Cell.js.map +1 -1
  102. package/dist/esm/packages/taco/src/components/Table3/components/columns/cell/DisplayCell.js +9 -57
  103. package/dist/esm/packages/taco/src/components/Table3/components/columns/cell/DisplayCell.js.map +1 -1
  104. package/dist/esm/packages/taco/src/components/Table3/components/columns/cell/EditingCell.js +72 -41
  105. package/dist/esm/packages/taco/src/components/Table3/components/columns/cell/EditingCell.js.map +1 -1
  106. package/dist/esm/packages/taco/src/components/Table3/components/columns/cell/EditingControl.js +41 -17
  107. package/dist/esm/packages/taco/src/components/Table3/components/columns/cell/EditingControl.js.map +1 -1
  108. package/dist/esm/packages/taco/src/components/Table3/components/columns/cell/Highlight.js +41 -0
  109. package/dist/esm/packages/taco/src/components/Table3/components/columns/cell/Highlight.js.map +1 -0
  110. package/dist/esm/packages/taco/src/components/Table3/components/columns/cell/controls/TextareaControl.js +23 -14
  111. package/dist/esm/packages/taco/src/components/Table3/components/columns/cell/controls/TextareaControl.js.map +1 -1
  112. package/dist/esm/packages/taco/src/components/Table3/components/columns/footer/Footer.js +3 -3
  113. package/dist/esm/packages/taco/src/components/Table3/components/columns/footer/Footer.js.map +1 -1
  114. package/dist/esm/packages/taco/src/components/Table3/components/columns/header/Group.js +1 -1
  115. package/dist/esm/packages/taco/src/components/Table3/components/columns/header/Group.js.map +1 -1
  116. package/dist/esm/packages/taco/src/components/Table3/components/columns/header/Header.js +9 -9
  117. package/dist/esm/packages/taco/src/components/Table3/components/columns/header/Header.js.map +1 -1
  118. package/dist/esm/packages/taco/src/components/Table3/components/columns/header/Menu.js +37 -6
  119. package/dist/esm/packages/taco/src/components/Table3/components/columns/header/Menu.js.map +1 -1
  120. package/dist/esm/packages/taco/src/components/Table3/components/columns/internal/Actions.js +12 -12
  121. package/dist/esm/packages/taco/src/components/Table3/components/columns/internal/Actions.js.map +1 -1
  122. package/dist/esm/packages/taco/src/components/Table3/components/columns/internal/Drag.js +2 -2
  123. package/dist/esm/packages/taco/src/components/Table3/components/columns/internal/Drag.js.map +1 -1
  124. package/dist/esm/packages/taco/src/components/Table3/components/columns/internal/EditingActions.js +63 -23
  125. package/dist/esm/packages/taco/src/components/Table3/components/columns/internal/EditingActions.js.map +1 -1
  126. package/dist/esm/packages/taco/src/components/Table3/components/columns/internal/Expansion.js +3 -3
  127. package/dist/esm/packages/taco/src/components/Table3/components/columns/internal/Expansion.js.map +1 -1
  128. package/dist/esm/packages/taco/src/components/Table3/components/columns/internal/Selection.js +3 -3
  129. package/dist/esm/packages/taco/src/components/Table3/components/columns/internal/Selection.js.map +1 -1
  130. package/dist/esm/packages/taco/src/components/Table3/components/columns/styles.js +2 -13
  131. package/dist/esm/packages/taco/src/components/Table3/components/columns/styles.js.map +1 -1
  132. package/dist/esm/packages/taco/src/components/Table3/components/rows/Row.js +67 -57
  133. package/dist/esm/packages/taco/src/components/Table3/components/rows/Row.js.map +1 -1
  134. package/dist/esm/packages/taco/src/components/Table3/components/rows/RowContext.js +2 -1
  135. package/dist/esm/packages/taco/src/components/Table3/components/rows/RowContext.js.map +1 -1
  136. package/dist/esm/packages/taco/src/components/Table3/components/rows/SkeletonRow.js +2 -2
  137. package/dist/esm/packages/taco/src/components/Table3/components/rows/SkeletonRow.js.map +1 -1
  138. package/dist/esm/packages/taco/src/components/Table3/components/toolbar/ColumnSettings.js +8 -6
  139. package/dist/esm/packages/taco/src/components/Table3/components/toolbar/ColumnSettings.js.map +1 -1
  140. package/dist/esm/packages/taco/src/components/Table3/components/toolbar/Filter/filters/Filters.js +23 -8
  141. package/dist/esm/packages/taco/src/components/Table3/components/toolbar/Filter/filters/Filters.js.map +1 -1
  142. package/dist/esm/packages/taco/src/components/Table3/components/toolbar/Filter/filters/components/FilterColumn.js +2 -2
  143. package/dist/esm/packages/taco/src/components/Table3/components/toolbar/Filter/filters/components/FilterColumn.js.map +1 -1
  144. package/dist/esm/packages/taco/src/components/Table3/components/toolbar/Filter/filters/components/FilterComparator.js +2 -2
  145. package/dist/esm/packages/taco/src/components/Table3/components/toolbar/Filter/filters/components/FilterComparator.js.map +1 -1
  146. package/dist/esm/packages/taco/src/components/Table3/components/toolbar/PrintButton/PrintButton.js +16 -16
  147. package/dist/esm/packages/taco/src/components/Table3/components/toolbar/PrintButton/PrintButton.js.map +1 -1
  148. package/dist/esm/packages/taco/src/components/Table3/components/toolbar/PrintButton/PrintIFrame.js +1 -0
  149. package/dist/esm/packages/taco/src/components/Table3/components/toolbar/PrintButton/PrintIFrame.js.map +1 -1
  150. package/dist/esm/packages/taco/src/components/Table3/components/toolbar/Search.js +53 -4
  151. package/dist/esm/packages/taco/src/components/Table3/components/toolbar/Search.js.map +1 -1
  152. package/dist/esm/packages/taco/src/components/Table3/components/toolbar/Settings.js +8 -8
  153. package/dist/esm/packages/taco/src/components/Table3/components/toolbar/Settings.js.map +1 -1
  154. package/dist/esm/packages/taco/src/components/Table3/hooks/features/useEditing.js +185 -101
  155. package/dist/esm/packages/taco/src/components/Table3/hooks/features/useEditing.js.map +1 -1
  156. package/dist/esm/packages/taco/src/components/Table3/hooks/features/usePauseShortcuts.js +12 -0
  157. package/dist/esm/packages/taco/src/components/Table3/hooks/features/usePauseShortcuts.js.map +1 -0
  158. package/dist/esm/packages/taco/src/components/Table3/hooks/features/useSearch.js +4 -2
  159. package/dist/esm/packages/taco/src/components/Table3/hooks/features/useSearch.js.map +1 -1
  160. package/dist/esm/packages/taco/src/components/Table3/hooks/features/useValidation.js +178 -0
  161. package/dist/esm/packages/taco/src/components/Table3/hooks/features/useValidation.js.map +1 -0
  162. package/dist/esm/packages/taco/src/components/Table3/hooks/listeners/useEditingStateListener.js +3 -3
  163. package/dist/esm/packages/taco/src/components/Table3/hooks/listeners/useEditingStateListener.js.map +1 -1
  164. package/dist/esm/packages/taco/src/components/Table3/hooks/listeners/useSettingsStateListener.js +1 -49
  165. package/dist/esm/packages/taco/src/components/Table3/hooks/listeners/useSettingsStateListener.js.map +1 -1
  166. package/dist/esm/packages/taco/src/components/Table3/hooks/useConvertChildrenToColumns.js +1 -2
  167. package/dist/esm/packages/taco/src/components/Table3/hooks/useConvertChildrenToColumns.js.map +1 -1
  168. package/dist/esm/packages/taco/src/components/Table3/hooks/useCssVars.js +0 -2
  169. package/dist/esm/packages/taco/src/components/Table3/hooks/useCssVars.js.map +1 -1
  170. package/dist/esm/packages/taco/src/components/Table3/hooks/useTable.js +135 -111
  171. package/dist/esm/packages/taco/src/components/Table3/hooks/useTable.js.map +1 -1
  172. package/dist/esm/packages/taco/src/components/Table3/strategies/virtualised.js +4 -4
  173. package/dist/esm/packages/taco/src/components/Table3/strategies/virtualised.js.map +1 -1
  174. package/dist/esm/packages/taco/src/components/Table3/types.js.map +1 -1
  175. package/dist/esm/packages/taco/src/components/Table3/util/editing.js +21 -1
  176. package/dist/esm/packages/taco/src/components/Table3/util/editing.js.map +1 -1
  177. package/dist/esm/packages/taco/src/components/Table3/util/scrolling.js +53 -0
  178. package/dist/esm/packages/taco/src/components/Table3/util/scrolling.js.map +1 -0
  179. package/dist/esm/packages/taco/src/components/Tag/Tag.js +4 -4
  180. package/dist/esm/packages/taco/src/components/Tag/Tag.js.map +1 -1
  181. package/dist/esm/packages/taco/src/components/Toast/Toaster.js +2 -2
  182. package/dist/esm/packages/taco/src/components/Toast/Toaster.js.map +1 -1
  183. package/dist/esm/packages/taco/src/components/Tour/Tour.js +4 -4
  184. package/dist/esm/packages/taco/src/components/Tour/Tour.js.map +1 -1
  185. package/dist/esm/packages/taco/src/components/Treeview/Treeview.js +2 -2
  186. package/dist/esm/packages/taco/src/components/Treeview/Treeview.js.map +1 -1
  187. package/dist/esm/packages/taco/src/index.js +2 -1
  188. package/dist/esm/packages/taco/src/index.js.map +1 -1
  189. package/dist/esm/packages/taco/src/primitives/Table/types.js +10 -0
  190. package/dist/esm/packages/taco/src/primitives/Table/types.js.map +1 -0
  191. package/dist/esm/packages/taco/src/primitives/Table/useTable/features/useTableColumnOrdering.js +8 -0
  192. package/dist/esm/packages/taco/src/primitives/Table/useTable/features/useTableColumnOrdering.js.map +1 -0
  193. package/dist/esm/packages/taco/src/{components/Table3/hooks/features/useFontSize.js → primitives/Table/useTable/features/useTableFontSize.js} +3 -3
  194. package/dist/esm/packages/taco/src/primitives/Table/useTable/features/useTableFontSize.js.map +1 -0
  195. package/dist/esm/packages/taco/src/primitives/Table/useTable/features/useTablePrinting.js +14 -0
  196. package/dist/esm/packages/taco/src/primitives/Table/useTable/features/useTablePrinting.js.map +1 -0
  197. package/dist/esm/packages/taco/src/primitives/Table/useTable/features/useTableRowActive.js +100 -0
  198. package/dist/esm/packages/taco/src/primitives/Table/useTable/features/useTableRowActive.js.map +1 -0
  199. package/dist/esm/packages/taco/src/primitives/Table/useTable/features/useTableRowClick.js +30 -0
  200. package/dist/esm/packages/taco/src/primitives/Table/useTable/features/useTableRowClick.js.map +1 -0
  201. package/dist/esm/packages/taco/src/primitives/Table/useTable/features/useTableRowGoto.js +9 -0
  202. package/dist/esm/packages/taco/src/primitives/Table/useTable/features/useTableRowGoto.js.map +1 -0
  203. package/dist/esm/packages/taco/src/primitives/Table/useTable/features/useTableRowHeight.js +13 -0
  204. package/dist/esm/packages/taco/src/primitives/Table/useTable/features/useTableRowHeight.js.map +1 -0
  205. package/dist/esm/packages/taco/src/primitives/Table/useTable/features/useTableRowSelection.js +32 -0
  206. package/dist/esm/packages/taco/src/primitives/Table/useTable/features/useTableRowSelection.js.map +1 -0
  207. package/dist/esm/packages/taco/src/primitives/Table/useTable/features/useTableServerLoading.js +11 -0
  208. package/dist/esm/packages/taco/src/primitives/Table/useTable/features/useTableServerLoading.js.map +1 -0
  209. package/dist/esm/packages/taco/src/primitives/Table/useTable/listeners/useTableDataListener.js +15 -0
  210. package/dist/esm/packages/taco/src/primitives/Table/useTable/listeners/useTableDataListener.js.map +1 -0
  211. package/dist/esm/packages/taco/src/{components/Table3/hooks/listeners/useFilteringStateListener.js → primitives/Table/useTable/listeners/useTableFilterListener.js} +3 -3
  212. package/dist/esm/packages/taco/src/primitives/Table/useTable/listeners/useTableFilterListener.js.map +1 -0
  213. package/dist/esm/packages/taco/src/primitives/Table/useTable/listeners/useTableFontSizeListener.js +40 -0
  214. package/dist/esm/packages/taco/src/primitives/Table/useTable/listeners/useTableFontSizeListener.js.map +1 -0
  215. package/dist/esm/packages/taco/src/{components/Table3/hooks/listeners/useRowSelectionListener.js → primitives/Table/useTable/listeners/useTableRowSelectionListener.js} +5 -6
  216. package/dist/esm/packages/taco/src/primitives/Table/useTable/listeners/useTableRowSelectionListener.js.map +1 -0
  217. package/dist/esm/packages/taco/src/{components/Table3/hooks/listeners/useServerLoadingListener.js → primitives/Table/useTable/listeners/useTableServerLoadingListener.js} +3 -3
  218. package/dist/esm/packages/taco/src/primitives/Table/useTable/listeners/useTableServerLoadingListener.js.map +1 -0
  219. package/dist/esm/packages/taco/src/{components/Table3/hooks/listeners/useShortcutsListener.js → primitives/Table/useTable/listeners/useTableShortcutsListener.js} +7 -7
  220. package/dist/esm/packages/taco/src/primitives/Table/useTable/listeners/useTableShortcutsListener.js.map +1 -0
  221. package/dist/esm/packages/taco/src/{components/Table3/hooks/listeners/useSortingStateListener.js → primitives/Table/useTable/listeners/useTableSortingListener.js} +6 -4
  222. package/dist/esm/packages/taco/src/primitives/Table/useTable/listeners/useTableSortingListener.js.map +1 -0
  223. package/dist/esm/packages/taco/src/{components/Table3/hooks/features/useColumnOrdering.js → primitives/Table/useTable/util/columns.js} +24 -15
  224. package/dist/esm/packages/taco/src/primitives/Table/useTable/util/columns.js.map +1 -0
  225. package/dist/esm/packages/taco/src/types.js +6 -0
  226. package/dist/esm/packages/taco/src/types.js.map +1 -0
  227. package/dist/esm/packages/taco/src/utils/date.js +0 -1
  228. package/dist/esm/packages/taco/src/utils/date.js.map +1 -1
  229. package/dist/index.css +108 -33
  230. package/dist/primitives/Table/types.d.ts +35 -0
  231. package/dist/primitives/Table/useTable/features/useTableColumnOrdering.d.ts +3 -0
  232. package/dist/primitives/Table/useTable/features/useTableFontSize.d.ts +7 -0
  233. package/dist/primitives/Table/useTable/features/useTablePrinting.d.ts +7 -0
  234. package/dist/primitives/Table/useTable/features/useTableRowActive.d.ts +12 -0
  235. package/dist/primitives/Table/useTable/features/useTableRowClick.d.ts +7 -0
  236. package/dist/primitives/Table/useTable/features/useTableRowGoto.d.ts +5 -0
  237. package/dist/primitives/Table/useTable/features/useTableRowHeight.d.ts +7 -0
  238. package/dist/primitives/Table/useTable/features/useTableRowSelection.d.ts +6 -0
  239. package/dist/primitives/Table/useTable/features/useTableServerLoading.d.ts +6 -0
  240. package/dist/primitives/Table/useTable/listeners/useTableDataListener.d.ts +2 -0
  241. package/dist/primitives/Table/useTable/listeners/useTableFilterListener.d.ts +3 -0
  242. package/dist/primitives/Table/useTable/listeners/useTableFontSizeListener.d.ts +2 -0
  243. package/dist/primitives/Table/useTable/listeners/useTableRowSelectionListener.d.ts +3 -0
  244. package/dist/primitives/Table/useTable/listeners/useTableServerLoadingListener.d.ts +3 -0
  245. package/dist/primitives/Table/useTable/listeners/useTableShortcutsListener.d.ts +3 -0
  246. package/dist/primitives/Table/useTable/listeners/useTableSortingListener.d.ts +3 -0
  247. package/dist/primitives/Table/useTable/util/columns.d.ts +4 -0
  248. package/dist/taco.cjs.development.js +2294 -1543
  249. package/dist/taco.cjs.development.js.map +1 -1
  250. package/dist/taco.cjs.production.min.js +1 -1
  251. package/dist/taco.cjs.production.min.js.map +1 -1
  252. package/dist/types.d.ts +5 -0
  253. package/package.json +3 -3
  254. package/types.json +13547 -12953
  255. package/dist/components/Table3/hooks/features/useColumnOrdering.d.ts +0 -6
  256. package/dist/components/Table3/hooks/features/useCurrentRow.d.ts +0 -11
  257. package/dist/components/Table3/hooks/features/useFontSize.d.ts +0 -7
  258. package/dist/components/Table3/hooks/features/usePrinting.d.ts +0 -8
  259. package/dist/components/Table3/hooks/features/useRowClick.d.ts +0 -6
  260. package/dist/components/Table3/hooks/features/useRowGoto.d.ts +0 -5
  261. package/dist/components/Table3/hooks/features/useRowHeight.d.ts +0 -7
  262. package/dist/components/Table3/hooks/features/useRowSelection.d.ts +0 -6
  263. package/dist/components/Table3/hooks/listeners/useCurrentRowListener.d.ts +0 -2
  264. package/dist/components/Table3/hooks/listeners/useFilteringStateListener.d.ts +0 -3
  265. package/dist/components/Table3/hooks/listeners/useRowSelectionListener.d.ts +0 -3
  266. package/dist/components/Table3/hooks/listeners/useServerLoadingListener.d.ts +0 -3
  267. package/dist/components/Table3/hooks/listeners/useShortcutsListener.d.ts +0 -3
  268. package/dist/components/Table3/hooks/listeners/useSortingStateListener.d.ts +0 -3
  269. package/dist/esm/packages/taco/src/components/Table3/hooks/features/useColumnOrdering.js.map +0 -1
  270. package/dist/esm/packages/taco/src/components/Table3/hooks/features/useCurrentRow.js +0 -93
  271. package/dist/esm/packages/taco/src/components/Table3/hooks/features/useCurrentRow.js.map +0 -1
  272. package/dist/esm/packages/taco/src/components/Table3/hooks/features/useFontSize.js.map +0 -1
  273. package/dist/esm/packages/taco/src/components/Table3/hooks/features/usePauseHoverState.js +0 -22
  274. package/dist/esm/packages/taco/src/components/Table3/hooks/features/usePauseHoverState.js.map +0 -1
  275. package/dist/esm/packages/taco/src/components/Table3/hooks/features/usePrinting.js +0 -14
  276. package/dist/esm/packages/taco/src/components/Table3/hooks/features/usePrinting.js.map +0 -1
  277. package/dist/esm/packages/taco/src/components/Table3/hooks/features/useRowClick.js +0 -25
  278. package/dist/esm/packages/taco/src/components/Table3/hooks/features/useRowClick.js.map +0 -1
  279. package/dist/esm/packages/taco/src/components/Table3/hooks/features/useRowGoto.js +0 -9
  280. package/dist/esm/packages/taco/src/components/Table3/hooks/features/useRowGoto.js.map +0 -1
  281. package/dist/esm/packages/taco/src/components/Table3/hooks/features/useRowHeight.js +0 -27
  282. package/dist/esm/packages/taco/src/components/Table3/hooks/features/useRowHeight.js.map +0 -1
  283. package/dist/esm/packages/taco/src/components/Table3/hooks/features/useRowSelection.js +0 -32
  284. package/dist/esm/packages/taco/src/components/Table3/hooks/features/useRowSelection.js.map +0 -1
  285. package/dist/esm/packages/taco/src/components/Table3/hooks/listeners/useCurrentRowListener.js +0 -15
  286. package/dist/esm/packages/taco/src/components/Table3/hooks/listeners/useCurrentRowListener.js.map +0 -1
  287. package/dist/esm/packages/taco/src/components/Table3/hooks/listeners/useFilteringStateListener.js.map +0 -1
  288. package/dist/esm/packages/taco/src/components/Table3/hooks/listeners/useRowSelectionListener.js.map +0 -1
  289. package/dist/esm/packages/taco/src/components/Table3/hooks/listeners/useServerLoadingListener.js.map +0 -1
  290. package/dist/esm/packages/taco/src/components/Table3/hooks/listeners/useShortcutsListener.js.map +0 -1
  291. package/dist/esm/packages/taco/src/components/Table3/hooks/listeners/useSortingStateListener.js.map +0 -1
@@ -68,6 +68,7 @@ import '../../../../Textarea/Textarea.js';
68
68
  import '../../../../../hooks/useMatchMedia.js';
69
69
  import '../../../../../hooks/useIsLargeScreen.js';
70
70
  import { useParentStylesheets } from './hooks/useParentStylesheets.js';
71
+ import '../../../../../types.js';
71
72
  import '../../../hooks/useTableDataLoader.js';
72
73
  import { Table3 } from '../../../Table3.js';
73
74
  import '../../../../Tabs/Tabs.js';
@@ -1 +1 @@
1
- {"version":3,"file":"PrintIFrame.js","sources":["../../../../../../../../../../src/components/Table3/components/toolbar/PrintButton/PrintIFrame.tsx"],"sourcesContent":["import React from 'react';\nimport ReactDOM from 'react-dom';\n\nimport { Table3 } from '../../../../..';\nimport { Table3Props } from '../../../types';\nimport { useParentStylesheets } from './hooks/useParentStylesheets';\n\nexport type PrintIFrameProps<TType = unknown> = {\n onAfterPrint?: () => void;\n onBeforePrint?: () => void;\n tableProps: Table3Props<TType>;\n};\n\nexport function PrintIFrame<TType = unknown>({ onAfterPrint, onBeforePrint, tableProps }: PrintIFrameProps<TType>) {\n const [contentRef, setContentRef] = React.useState<HTMLIFrameElement | null>(null);\n const [mountNode, setMountNode] = React.useState<HTMLElement | null>(null);\n\n const isFirefoxBrowser = React.useMemo(() => navigator.userAgent.toLowerCase().includes('firefox'), []);\n const isSafariBrowser = React.useMemo(\n () => navigator.userAgent.toLowerCase().includes('safari') && !navigator.userAgent.toLowerCase().includes('chrome'),\n []\n );\n\n const iframeWindow = contentRef?.contentWindow;\n\n const stylesReady = useParentStylesheets(iframeWindow);\n\n // Calls print method when table has loaded in the iframe.\n React.useEffect(() => {\n let intervalId: NodeJS.Timer;\n let timeoutId: NodeJS.Timer;\n\n // Invoke the print functionality on the window once the table has finished rendering and all print styles are\n // added.\n if (mountNode && stylesReady) {\n intervalId = setInterval(async () => {\n const tableWrapper = mountNode;\n const table = tableWrapper.querySelector('[role=\"table\"]') as HTMLElement;\n const hasTableRendered = !!table;\n\n if (hasTableRendered && intervalId) {\n clearInterval(intervalId);\n\n // Calling the onBeforePrint method here as a fallback because certain browsers, like Safari,\n // do not call the beforeprint event.\n // Bug - Even though onBeforePrint is called before printing, the execution doesn't finish before\n // the print dialog shows up, which results into having a visible loading toast.\n onBeforePrint?.();\n\n // By adding height to the tableWrapper, we make sure the content below absolutely positioned table\n // doesn't hide\n if (isFirefoxBrowser) {\n const tableHeight = `${table.offsetHeight}px`;\n tableWrapper.style.height = tableHeight;\n }\n\n contentRef?.contentWindow?.print();\n\n // Calling the onAfterPrint method here as a fallback to do the cleanup, as certain browsers,\n // like Safari, do not trigger the beforeprint or afterprint events when a confirmation dialog\n // asking if the user wants to print the document, is cancelled.\n\n // Added a setTimeout to prevent calling onAfterPrint immediately after the print function\n // to ensure that the print dialog doesn't close abruptly. Although this behavior is uncommon,\n // there are cases where the print function may not run synchronously, causing onAfterPrint to be\n // invoked right after it.\n timeoutId = setTimeout(() => {\n onAfterPrint?.();\n }, 0);\n }\n }, 1000);\n }\n\n return () => {\n clearInterval(intervalId);\n clearTimeout(timeoutId);\n };\n }, [mountNode, stylesReady]);\n\n React.useEffect(() => {\n if (!contentRef || !iframeWindow || !stylesReady) {\n return;\n }\n\n // get the closest parent/container of the table, and the table itself\n const parentElement = contentRef?.closest('[role=dialog], [data-taco=drawer], main') ?? iframeWindow.parent.document.body;\n\n const iframeDocument = iframeWindow.document;\n iframeDocument.body.innerHTML = parentElement?.innerHTML ?? '';\n\n const tableElement = iframeDocument.querySelector('[role=\"table\"]');\n const tableColumnFreezingStyles = iframeDocument.querySelector('[data-taco=\"table3-column-freezing-styles\"]');\n const tableWrapper = iframeDocument.createElement('div');\n\n tableWrapper.setAttribute('data-role', 'table-wrapper');\n // Adding h-fit class makes sure that table is rendered with the whole content.\n tableWrapper.classList.add('h-fit');\n tableWrapper.classList.add('[&>[role=\"table\"]]:!h-fit');\n\n if (isFirefoxBrowser) {\n // Fix for firefox bug which adds page-long whitespace between page's top content and table.\n tableWrapper.classList.add('[&>[role=\"table\"]]:!absolute');\n }\n\n // Makes sure table takes the full screen width.\n if (isSafariBrowser) {\n // Safari browser doesn't apply correct width to the columns when w-screen is used.\n tableWrapper.classList.add('w-full');\n } else {\n tableWrapper.classList.add('w-screen');\n }\n\n if (tableElement) {\n tableElement.parentNode?.insertBefore(tableWrapper, tableElement);\n tableElement.remove();\n } else {\n iframeDocument.body.append(tableWrapper);\n }\n\n // Remove the already existing column freezing styles.\n if (tableColumnFreezingStyles) {\n tableColumnFreezingStyles.remove();\n }\n\n let currentNode = tableWrapper.parentNode as HTMLElement | null;\n\n while (currentNode !== null && currentNode !== iframeDocument.body) {\n // Add the 'h-fit' class to the 'table-wrapper' element's parent chain.\n // This ensures that the table is not cropped and fits within its container.\n currentNode?.classList.add('!h-fit');\n currentNode = currentNode.parentNode as HTMLElement | null;\n }\n\n setMountNode(tableWrapper);\n }, [iframeWindow, stylesReady]);\n\n const printTableProps: Table3Props<TType> = {\n ...tableProps,\n actionsForRow: undefined,\n // Not the best way to remove the active/current row styles, but a temporary solution for now\n defaultCurrentRowIndex: -1,\n defaultSettings: {\n ...tableProps?.defaultSettings,\n rowHeight: 'short',\n },\n enableColumnFreezing: false,\n enableRowHeight: true,\n enableRowSelection: false,\n enableEditing: false,\n enablePrinting: false,\n enableRowDrag: false,\n enableRowDrop: false,\n enableRowSelectionSingle: false,\n preset: undefined,\n // The presence of the onChangeSettings prop ensures that settings won't be stored in local storage.\n onChangeSettings: () => undefined,\n };\n\n // -top-60 -left-60 styles make sure that iframe is added outside of the viewport\n return (\n <iframe\n className=\"fixed -left-[6000px] -top-[6000px] -z-50 !h-0 !w-0\"\n ref={setContentRef}\n // Temporary fix to support printing in firefox: Find another solution while upgrading React\n src=\"javascript:void(0);\">\n {mountNode && stylesReady ? ReactDOM.createPortal(<Table3 {...printTableProps} />, mountNode) : null}\n </iframe>\n );\n}\n"],"names":["PrintIFrame","onAfterPrint","onBeforePrint","tableProps","contentRef","setContentRef","React","useState","mountNode","setMountNode","isFirefoxBrowser","useMemo","navigator","userAgent","toLowerCase","includes","isSafariBrowser","iframeWindow","contentWindow","stylesReady","useParentStylesheets","useEffect","intervalId","timeoutId","setInterval","tableWrapper","table","querySelector","hasTableRendered","_contentRef$contentWi","clearInterval","tableHeight","offsetHeight","style","height","print","setTimeout","Promise","resolve","e","reject","clearTimeout","parentElement","_contentRef$closest","closest","parent","document","body","iframeDocument","innerHTML","_parentElement$innerH","tableElement","tableColumnFreezingStyles","createElement","setAttribute","classList","add","_tableElement$parentN","parentNode","insertBefore","remove","append","currentNode","_currentNode","printTableProps","actionsForRow","undefined","defaultCurrentRowIndex","defaultSettings","rowHeight","enableColumnFreezing","enableRowHeight","enableRowSelection","enableEditing","enablePrinting","enableRowDrag","enableRowDrop","enableRowSelectionSingle","preset","onChangeSettings","className","ref","src","ReactDOM","createPortal","Table3"],"mappings":"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"}
1
+ {"version":3,"file":"PrintIFrame.js","sources":["../../../../../../../../../../src/components/Table3/components/toolbar/PrintButton/PrintIFrame.tsx"],"sourcesContent":["import React from 'react';\nimport ReactDOM from 'react-dom';\n\nimport { Table3 } from '../../../../..';\nimport { Table3Props } from '../../../types';\nimport { useParentStylesheets } from './hooks/useParentStylesheets';\n\nexport type PrintIFrameProps<TType = unknown> = {\n onAfterPrint?: () => void;\n onBeforePrint?: () => void;\n tableProps: Table3Props<TType>;\n};\n\nexport function PrintIFrame<TType = unknown>({ onAfterPrint, onBeforePrint, tableProps }: PrintIFrameProps<TType>) {\n const [contentRef, setContentRef] = React.useState<HTMLIFrameElement | null>(null);\n const [mountNode, setMountNode] = React.useState<HTMLElement | null>(null);\n\n const isFirefoxBrowser = React.useMemo(() => navigator.userAgent.toLowerCase().includes('firefox'), []);\n const isSafariBrowser = React.useMemo(\n () => navigator.userAgent.toLowerCase().includes('safari') && !navigator.userAgent.toLowerCase().includes('chrome'),\n []\n );\n\n const iframeWindow = contentRef?.contentWindow;\n\n const stylesReady = useParentStylesheets(iframeWindow);\n\n // Calls print method when table has loaded in the iframe.\n React.useEffect(() => {\n let intervalId: NodeJS.Timer;\n let timeoutId: NodeJS.Timer;\n\n // Invoke the print functionality on the window once the table has finished rendering and all print styles are\n // added.\n if (mountNode && stylesReady) {\n intervalId = setInterval(async () => {\n const tableWrapper = mountNode;\n const table = tableWrapper.querySelector('[role=\"table\"]') as HTMLElement;\n const hasTableRendered = !!table;\n\n if (hasTableRendered && intervalId) {\n clearInterval(intervalId);\n\n // Calling the onBeforePrint method here as a fallback because certain browsers, like Safari,\n // do not call the beforeprint event.\n // Bug - Even though onBeforePrint is called before printing, the execution doesn't finish before\n // the print dialog shows up, which results into having a visible loading toast.\n onBeforePrint?.();\n\n // By adding height to the tableWrapper, we make sure the content below absolutely positioned table\n // doesn't hide\n if (isFirefoxBrowser) {\n const tableHeight = `${table.offsetHeight}px`;\n tableWrapper.style.height = tableHeight;\n }\n\n contentRef?.contentWindow?.print();\n\n // Calling the onAfterPrint method here as a fallback to do the cleanup, as certain browsers,\n // like Safari, do not trigger the beforeprint or afterprint events when a confirmation dialog\n // asking if the user wants to print the document, is cancelled.\n\n // Added a setTimeout to prevent calling onAfterPrint immediately after the print function\n // to ensure that the print dialog doesn't close abruptly. Although this behavior is uncommon,\n // there are cases where the print function may not run synchronously, causing onAfterPrint to be\n // invoked right after it.\n timeoutId = setTimeout(() => {\n onAfterPrint?.();\n }, 0);\n }\n }, 1000);\n }\n\n return () => {\n clearInterval(intervalId);\n clearTimeout(timeoutId);\n };\n }, [mountNode, stylesReady]);\n\n React.useEffect(() => {\n if (!contentRef || !iframeWindow || !stylesReady) {\n return;\n }\n\n // get the closest parent/container of the table, and the table itself\n const parentElement = contentRef?.closest('[role=dialog], [data-taco=drawer], main') ?? iframeWindow.parent.document.body;\n\n const iframeDocument = iframeWindow.document;\n iframeDocument.body.innerHTML = parentElement?.innerHTML ?? '';\n\n const tableElement = iframeDocument.querySelector('[role=\"table\"]');\n const tableColumnFreezingStyles = iframeDocument.querySelector('[data-taco=\"table3-column-freezing-styles\"]');\n const tableWrapper = iframeDocument.createElement('div');\n\n tableWrapper.setAttribute('data-role', 'table-wrapper');\n // Adding h-fit class makes sure that table is rendered with the whole content.\n tableWrapper.classList.add('h-fit');\n tableWrapper.classList.add('[&>[role=\"table\"]]:!h-fit');\n\n if (isFirefoxBrowser) {\n // Fix for firefox bug which adds page-long whitespace between page's top content and table.\n tableWrapper.classList.add('[&>[role=\"table\"]]:!absolute');\n }\n\n // Makes sure table takes the full screen width.\n if (isSafariBrowser) {\n // Safari browser doesn't apply correct width to the columns when w-screen is used.\n tableWrapper.classList.add('w-full');\n } else {\n tableWrapper.classList.add('w-screen');\n }\n\n if (tableElement) {\n tableElement.parentNode?.insertBefore(tableWrapper, tableElement);\n tableElement.remove();\n } else {\n iframeDocument.body.append(tableWrapper);\n }\n\n // Remove the already existing column freezing styles.\n if (tableColumnFreezingStyles) {\n tableColumnFreezingStyles.remove();\n }\n\n let currentNode = tableWrapper.parentNode as HTMLElement | null;\n\n while (currentNode !== null && currentNode !== iframeDocument.body) {\n // Add the 'h-fit' class to the 'table-wrapper' element's parent chain.\n // This ensures that the table is not cropped and fits within its container.\n currentNode?.classList.add('!h-fit');\n currentNode = currentNode.parentNode as HTMLElement | null;\n }\n\n setMountNode(tableWrapper);\n }, [iframeWindow, stylesReady]);\n\n const printTableProps: Table3Props<TType> = {\n ...tableProps,\n actionsForRow: undefined,\n // Not the best way to remove the active/current row styles, but a temporary solution for now\n defaultCurrentRowIndex: -1,\n defaultSettings: {\n ...tableProps?.defaultSettings,\n rowHeight: 'short',\n },\n enableColumnFreezing: false,\n enableRowHeight: true,\n enableRowSelection: false,\n enableEditing: false,\n enablePrinting: false,\n enableRowDrag: false,\n enableRowDrop: false,\n enableRowSelectionSingle: false,\n preset: undefined,\n // The presence of the onChangeSettings prop ensures that settings won't be stored in local storage.\n onChangeSettings: () => undefined,\n };\n\n // -top-60 -left-60 styles make sure that iframe is added outside of the viewport\n return (\n <iframe\n className=\"fixed -left-[6000px] -top-[6000px] -z-50 !h-0 !w-0\"\n ref={setContentRef}\n // Temporary fix to support printing in firefox: Find another solution while upgrading React\n src=\"javascript:void(0);\">\n {mountNode && stylesReady ? ReactDOM.createPortal(<Table3 {...printTableProps} />, mountNode) : null}\n </iframe>\n );\n}\n"],"names":["PrintIFrame","onAfterPrint","onBeforePrint","tableProps","contentRef","setContentRef","React","useState","mountNode","setMountNode","isFirefoxBrowser","useMemo","navigator","userAgent","toLowerCase","includes","isSafariBrowser","iframeWindow","contentWindow","stylesReady","useParentStylesheets","useEffect","intervalId","timeoutId","setInterval","tableWrapper","table","querySelector","hasTableRendered","_contentRef$contentWi","clearInterval","tableHeight","offsetHeight","style","height","print","setTimeout","Promise","resolve","e","reject","clearTimeout","parentElement","_contentRef$closest","closest","parent","document","body","iframeDocument","innerHTML","_parentElement$innerH","tableElement","tableColumnFreezingStyles","createElement","setAttribute","classList","add","_tableElement$parentN","parentNode","insertBefore","remove","append","currentNode","_currentNode","printTableProps","actionsForRow","undefined","defaultCurrentRowIndex","defaultSettings","rowHeight","enableColumnFreezing","enableRowHeight","enableRowSelection","enableEditing","enablePrinting","enableRowDrag","enableRowDrop","enableRowSelectionSingle","preset","onChangeSettings","className","ref","src","ReactDOM","createPortal","Table3"],"mappings":"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"}
@@ -4,6 +4,7 @@ import { SearchInput2 } from '../../../SearchInput2/SearchInput2.js';
4
4
  import { Switch } from '../../../Switch/Switch.js';
5
5
  import { getCellValueAsString } from '../../util/columns.js';
6
6
  import { globalFilterFn } from '../../util/filtering.js';
7
+ import { lastCellIndex } from '../rows/Row.js';
7
8
  import { useDebouncedEffect } from '../../../../hooks/useDebouncedEffect.js';
8
9
 
9
10
  var LoadingState;
@@ -24,6 +25,7 @@ function Search(props) {
24
25
  const tableMeta = table.options.meta;
25
26
  const [query, setQuery] = React__default.useState(tableMeta.search.query);
26
27
  const [loading, setLoading] = React__default.useState(LoadingState.Incomplete);
28
+ const [rowIdToNavigate, setRowIdToNavigate] = React__default.useState(null);
27
29
  const scrollTo = rowIndex => scrollToIndex(rowIndex, {
28
30
  align: 'center'
29
31
  });
@@ -35,6 +37,12 @@ function Search(props) {
35
37
  scrollTo(firstRowIndex);
36
38
  }
37
39
  }, [tableMeta.search.query, tableMeta.search.excludeUnmatchedResults, table.getRowModel().rows.length, JSON.stringify(table.getState().sorting), JSON.stringify(table.getState().columnVisibility), loading]);
40
+ // Reseting internal search state if search.query is changed from the outside.
41
+ React__default.useEffect(() => {
42
+ if (tableMeta.search.query !== query) {
43
+ setQuery(tableMeta.search.query);
44
+ }
45
+ }, [tableMeta.search.query]);
38
46
  // update the table search and filtering on a debounce
39
47
  useDebouncedEffect(() => {
40
48
  tableMeta.search.setQuery(query);
@@ -48,24 +56,62 @@ function Search(props) {
48
56
  }, [query]);
49
57
  const handleFocus = function () {
50
58
  try {
59
+ // While Search input is focused, we'll switch into searching mode
60
+ tableMeta.search.setIsSearching(true);
61
+ // load all data if that is possible
51
62
  const _temp = function () {
52
- if (tableMeta.search.loadAll && loading === LoadingState.Incomplete) {
63
+ if (tableMeta.server.loadAll && loading === LoadingState.Incomplete) {
53
64
  setLoading(LoadingState.Loading);
54
65
  // don't pass the search query because we need all data - not filtered data
55
- return Promise.resolve(tableMeta.search.loadAll(table.getState().sorting, table.getState().columnFilters, undefined)).then(function () {
66
+ return Promise.resolve(tableMeta.server.loadAll(table.getState().sorting, table.getState().columnFilters, undefined)).then(function () {
56
67
  setLoading(LoadingState.Completed);
57
68
  });
58
69
  }
59
70
  }();
60
- // load all data if that is possible
61
71
  return Promise.resolve(_temp && _temp.then ? _temp.then(function () {}) : void 0);
62
72
  } catch (e) {
63
73
  return Promise.reject(e);
64
74
  }
65
75
  };
76
+ const handleBlur = () => {
77
+ // As soon as search input loose a focus, we'll turn of searching mode.
78
+ tableMeta.search.setIsSearching(false);
79
+ };
66
80
  const handleChange = query => {
67
81
  setQuery(String(query !== null && query !== void 0 ? query : ''));
68
82
  };
83
+ const handleClear = () => {
84
+ const [rowIndex = null, cellIndex = null] = tableMeta.search.highlightedColumnIndexes[tableMeta.search.currentHighlightColumnIndex || 0];
85
+ const rows = table.getRowModel().rows;
86
+ tableMeta.search.setQuery('');
87
+ // Need to save row id and cell index, to be able to find the row in the table with updated indexes, after global filter will be reset.
88
+ lastCellIndex.value = String(cellIndex);
89
+ if (rowIndex !== null) {
90
+ var _rows$rowIndex;
91
+ const rowId = ((_rows$rowIndex = rows[rowIndex]) === null || _rows$rowIndex === void 0 ? void 0 : _rows$rowIndex.id) || null;
92
+ setRowIdToNavigate(rowId);
93
+ }
94
+ };
95
+ const handleKeyDown = event => {
96
+ if (event.key === 'Escape') {
97
+ handleClear();
98
+ event.preventDefault();
99
+ }
100
+ };
101
+ const {
102
+ globalFilter
103
+ } = table.getState();
104
+ React__default.useEffect(() => {
105
+ // need to wait when table global filter will be reset and rows will be re-rendered
106
+ if (rowIdToNavigate !== null && !globalFilter) {
107
+ const rows = table.getRowModel().rows;
108
+ const rowIndex = rows.findIndex(row => row.id === rowIdToNavigate);
109
+ tableMeta.search.setIsSearching(false);
110
+ tableMeta.rowActive.setRowActiveIndex(rowIndex);
111
+ scrollTo(rowIndex);
112
+ setRowIdToNavigate(null);
113
+ }
114
+ }, [rowIdToNavigate, globalFilter]);
69
115
  const handleToggleExcludeUnmatchedResults = enabled => {
70
116
  tableMeta.search.toggleExcludeUnmatchedResults(enabled);
71
117
  if (enabled) {
@@ -115,6 +161,9 @@ function Search(props) {
115
161
  onClickFindNext: handleNextResult,
116
162
  onChange: handleChange,
117
163
  onFocus: handleFocus,
164
+ onBlur: handleBlur,
165
+ onKeyDown: handleKeyDown,
166
+ onClear: handleClear,
118
167
  placeholder: texts.table3.search.placeholder,
119
168
  settingsContent: settings,
120
169
  ref: ref,
@@ -160,7 +209,7 @@ function resetHighlightedColumnIndexes(enabled, value, table) {
160
209
  tableMeta.search.setCurrentHighlightColumnIndex(undefined);
161
210
  }
162
211
  if (firstRowIndex !== undefined) {
163
- tableMeta.currentRow.setCurrentRowIndex(firstRowIndex);
212
+ tableMeta.rowActive.setRowActiveIndex(firstRowIndex);
164
213
  }
165
214
  return firstRowIndex;
166
215
  }
@@ -1 +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 { SearchInput2 } from '../../../SearchInput2/SearchInput2';\nimport { useDebouncedEffect } from '../../../../hooks/useDebouncedEffect';\nimport { getCellValueAsString } from '../../util/columns';\n\ntype SearchProps<TType = unknown> = {\n scrollToIndex: any;\n table: RTable<TType>;\n};\n\nenum LoadingState {\n Incomplete,\n Loading,\n Completed,\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 const [query, setQuery] = React.useState(tableMeta.search.query);\n const [loading, setLoading] = React.useState<LoadingState>(LoadingState.Incomplete);\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 tableMeta.search.query,\n tableMeta.search.excludeUnmatchedResults,\n table.getRowModel().rows.length,\n JSON.stringify(table.getState().sorting),\n JSON.stringify(table.getState().columnVisibility),\n loading,\n ]);\n\n // update the table search and filtering on a debounce\n useDebouncedEffect(() => {\n tableMeta.search.setQuery(query);\n\n if (tableMeta.search.excludeUnmatchedResults) {\n if (query?.length) {\n table.setGlobalFilter(query);\n } else {\n table.resetGlobalFilter();\n }\n }\n }, [query]);\n\n const handleFocus = async () => {\n // load all data if that is possible\n if (tableMeta.search.loadAll && loading === LoadingState.Incomplete) {\n setLoading(LoadingState.Loading);\n // don't pass the search query because we need all data - not filtered data\n await tableMeta.search.loadAll(table.getState().sorting, table.getState().columnFilters, undefined);\n setLoading(LoadingState.Completed);\n }\n };\n\n const handleChange = (query: any) => {\n setQuery(String(query ?? ''));\n };\n\n const handleToggleExcludeUnmatchedResults = (enabled: boolean) => {\n tableMeta.search.toggleExcludeUnmatchedResults(enabled);\n\n if (enabled) {\n if (ref.current?.value) {\n table.setGlobalFilter(ref.current?.value);\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 loading={loading === LoadingState.Loading}\n onClickFindPrevious={handlePreviousResult}\n onClickFindNext={handleNextResult}\n onChange={handleChange}\n onFocus={handleFocus}\n placeholder={texts.table3.search.placeholder}\n settingsContent={settings}\n ref={ref}\n shortcut={{ key: 'f', meta: true, shift: false }}\n value={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 (column.getIsVisible() && column.columnDef.meta?.enableSearch) {\n const cellValue = getCellValueAsString(row.original?.[column.id], column.columnDef.meta?.dataType);\n\n if (cellValue !== undefined && globalFilterFn(cellValue, value)) {\n indexes.push([rowIndex, columnIndex]);\n }\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 if (firstRowIndex !== undefined) {\n tableMeta.currentRow.setCurrentRowIndex(firstRowIndex);\n }\n\n return firstRowIndex;\n}\n"],"names":["LoadingState","Search","props","scrollToIndex","table","texts","useLocalization","ref","React","useRef","tableMeta","options","meta","query","setQuery","useState","search","loading","setLoading","Incomplete","scrollTo","rowIndex","align","useEffect","firstRowIndex","resetHighlightedColumnIndexes","isHighlightingEnabled","_ref$current","current","value","excludeUnmatchedResults","getRowModel","rows","length","JSON","stringify","getState","sorting","columnVisibility","useDebouncedEffect","setGlobalFilter","resetGlobalFilter","handleFocus","loadAll","Loading","Promise","resolve","columnFilters","undefined","then","Completed","_temp","e","reject","handleChange","String","handleToggleExcludeUnmatchedResults","enabled","toggleExcludeUnmatchedResults","_ref$current2","_ref$current3","requestAnimationFrame","_ref$current4","focus","handleNextResult","highlightedColumnIndexes","nextIndex","currentHighlightColumnIndex","setCurrentHighlightColumnIndex","handlePreviousResult","settings","Switch","label","table3","checked","onChange","SearchInput2","findCurrent","findTotal","onClickFindPrevious","onClickFindNext","onFocus","placeholder","settingsContent","shortcut","key","shift","indexes","columns","getVisibleLeafColumns","forEach","row","column","columnIndex","_column$columnDef$met","getIsVisible","columnDef","enableSearch","_row$original","_column$columnDef$met2","cellValue","getCellValueAsString","original","id","dataType","globalFilterFn","push","setHighlightedColumnIndexes","currentRow","setCurrentRowIndex"],"mappings":"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"}
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 { SearchInput2 } from '../../../SearchInput2/SearchInput2';\nimport { useDebouncedEffect } from '../../../../hooks/useDebouncedEffect';\nimport { getCellValueAsString } from '../../util/columns';\nimport { lastCellIndex } from '../rows/Row';\n\ntype SearchProps<TType = unknown> = {\n scrollToIndex: any;\n table: RTable<TType>;\n};\n\nenum LoadingState {\n Incomplete,\n Loading,\n Completed,\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 const [query, setQuery] = React.useState(tableMeta.search.query);\n const [loading, setLoading] = React.useState<LoadingState>(LoadingState.Incomplete);\n const [rowIdToNavigate, setRowIdToNavigate] = React.useState<string | null>(null);\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 tableMeta.search.query,\n tableMeta.search.excludeUnmatchedResults,\n table.getRowModel().rows.length,\n JSON.stringify(table.getState().sorting),\n JSON.stringify(table.getState().columnVisibility),\n loading,\n ]);\n\n // Reseting internal search state if search.query is changed from the outside.\n React.useEffect(() => {\n if (tableMeta.search.query !== query) {\n setQuery(tableMeta.search.query);\n }\n }, [tableMeta.search.query]);\n\n // update the table search and filtering on a debounce\n useDebouncedEffect(() => {\n tableMeta.search.setQuery(query);\n\n if (tableMeta.search.excludeUnmatchedResults) {\n if (query?.length) {\n table.setGlobalFilter(query);\n } else {\n table.resetGlobalFilter();\n }\n }\n }, [query]);\n\n const handleFocus = async () => {\n // While Search input is focused, we'll switch into searching mode\n tableMeta.search.setIsSearching(true);\n // load all data if that is possible\n if (tableMeta.server.loadAll && loading === LoadingState.Incomplete) {\n setLoading(LoadingState.Loading);\n // don't pass the search query because we need all data - not filtered data\n await tableMeta.server.loadAll(table.getState().sorting, table.getState().columnFilters, undefined);\n setLoading(LoadingState.Completed);\n }\n };\n\n const handleBlur = () => {\n // As soon as search input loose a focus, we'll turn of searching mode.\n tableMeta.search.setIsSearching(false);\n };\n\n const handleChange = (query: any) => {\n setQuery(String(query ?? ''));\n };\n\n const handleClear = () => {\n const [rowIndex = null, cellIndex = null] =\n tableMeta.search.highlightedColumnIndexes[tableMeta.search.currentHighlightColumnIndex || 0];\n const rows = table.getRowModel().rows;\n\n tableMeta.search.setQuery('');\n\n // Need to save row id and cell index, to be able to find the row in the table with updated indexes, after global filter will be reset.\n lastCellIndex.value = String(cellIndex);\n\n if (rowIndex !== null) {\n const rowId = rows[rowIndex]?.id || null;\n setRowIdToNavigate(rowId);\n }\n };\n\n const handleKeyDown = event => {\n if (event.key === 'Escape') {\n handleClear();\n event.preventDefault();\n }\n };\n\n const { globalFilter } = table.getState();\n\n React.useEffect(() => {\n // need to wait when table global filter will be reset and rows will be re-rendered\n if (rowIdToNavigate !== null && !globalFilter) {\n const rows = table.getRowModel().rows;\n const rowIndex = rows.findIndex(row => row.id === rowIdToNavigate);\n tableMeta.search.setIsSearching(false);\n tableMeta.rowActive.setRowActiveIndex(rowIndex);\n scrollTo(rowIndex);\n setRowIdToNavigate(null);\n }\n }, [rowIdToNavigate, globalFilter]);\n\n const handleToggleExcludeUnmatchedResults = (enabled: boolean) => {\n tableMeta.search.toggleExcludeUnmatchedResults(enabled);\n\n if (enabled) {\n if (ref.current?.value) {\n table.setGlobalFilter(ref.current?.value);\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 loading={loading === LoadingState.Loading}\n onClickFindPrevious={handlePreviousResult}\n onClickFindNext={handleNextResult}\n onChange={handleChange}\n onFocus={handleFocus}\n onBlur={handleBlur}\n onKeyDown={handleKeyDown}\n onClear={handleClear}\n placeholder={texts.table3.search.placeholder}\n settingsContent={settings}\n ref={ref}\n shortcut={{ key: 'f', meta: true, shift: false }}\n value={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 (column.getIsVisible() && column.columnDef.meta?.enableSearch) {\n const cellValue = getCellValueAsString(row.original?.[column.id], column.columnDef.meta?.dataType);\n\n if (cellValue !== undefined && globalFilterFn(cellValue, value)) {\n indexes.push([rowIndex, columnIndex]);\n }\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 if (firstRowIndex !== undefined) {\n tableMeta.rowActive.setRowActiveIndex(firstRowIndex);\n }\n\n return firstRowIndex;\n}\n"],"names":["LoadingState","Search","props","scrollToIndex","table","texts","useLocalization","ref","React","useRef","tableMeta","options","meta","query","setQuery","useState","search","loading","setLoading","Incomplete","rowIdToNavigate","setRowIdToNavigate","scrollTo","rowIndex","align","useEffect","firstRowIndex","resetHighlightedColumnIndexes","isHighlightingEnabled","_ref$current","current","value","excludeUnmatchedResults","getRowModel","rows","length","JSON","stringify","getState","sorting","columnVisibility","useDebouncedEffect","setGlobalFilter","resetGlobalFilter","handleFocus","setIsSearching","_temp","server","loadAll","Loading","Promise","resolve","columnFilters","undefined","then","Completed","e","reject","handleBlur","handleChange","String","handleClear","cellIndex","highlightedColumnIndexes","currentHighlightColumnIndex","lastCellIndex","_rows$rowIndex","rowId","id","handleKeyDown","event","key","preventDefault","globalFilter","findIndex","row","rowActive","setRowActiveIndex","handleToggleExcludeUnmatchedResults","enabled","toggleExcludeUnmatchedResults","_ref$current2","_ref$current3","requestAnimationFrame","_ref$current4","focus","handleNextResult","nextIndex","setCurrentHighlightColumnIndex","handlePreviousResult","settings","Switch","label","table3","checked","onChange","SearchInput2","findCurrent","findTotal","onClickFindPrevious","onClickFindNext","onFocus","onBlur","onKeyDown","onClear","placeholder","settingsContent","shortcut","shift","indexes","columns","getVisibleLeafColumns","forEach","column","columnIndex","_column$columnDef$met","getIsVisible","columnDef","enableSearch","_row$original","_column$columnDef$met2","cellValue","getCellValueAsString","original","dataType","globalFilterFn","push","setHighlightedColumnIndexes"],"mappings":"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"}
@@ -24,11 +24,11 @@ function SettingsButton(props) {
24
24
  case 'columnSettings':
25
25
  {
26
26
  if (hasColumnSettings) {
27
- popoverElement = props => /*#__PURE__*/React__default.createElement(ColumnSettingsPopover, Object.assign({}, props, {
27
+ popoverElement = props => ( /*#__PURE__*/React__default.createElement(ColumnSettingsPopover, Object.assign({}, props, {
28
28
  open: true,
29
29
  onChange: handleClosePopover,
30
30
  table: table
31
- }));
31
+ })));
32
32
  }
33
33
  }
34
34
  }
@@ -36,25 +36,25 @@ function SettingsButton(props) {
36
36
  return /*#__PURE__*/React__default.createElement(IconButton, {
37
37
  "aria-label": texts.table3.otherOptions.tooltip,
38
38
  icon: "sliders",
39
- menu: popoverElement ? undefined : menuProps => /*#__PURE__*/React__default.createElement(Menu, Object.assign({}, menuProps), /*#__PURE__*/React__default.createElement(Menu.Content, {
39
+ menu: popoverElement ? undefined : menuProps => ( /*#__PURE__*/React__default.createElement(Menu, Object.assign({}, menuProps), /*#__PURE__*/React__default.createElement(Menu.Content, {
40
40
  align: "end"
41
- }, table.options.enableHiding || tableMeta.columnOrdering.isEnabled ? /*#__PURE__*/React__default.createElement(Menu.Item, {
41
+ }, table.options.enableHiding || tableMeta.columnOrdering.isEnabled ? ( /*#__PURE__*/React__default.createElement(Menu.Item, {
42
42
  icon: "columns",
43
43
  onClick: () => setPopover('columnSettings')
44
- }, texts.table3.columnSettings.button) : null, tableMeta.rowHeight.isEnabled || tableMeta.fontSize.isEnabled ? /*#__PURE__*/React__default.createElement(Menu.Separator, null) : null, tableMeta.rowHeight.isEnabled ? /*#__PURE__*/React__default.createElement(Menu.Item, {
44
+ }, texts.table3.columnSettings.button)) : null, tableMeta.rowHeight.isEnabled || tableMeta.fontSize.isEnabled ? /*#__PURE__*/React__default.createElement(Menu.Separator, null) : null, tableMeta.rowHeight.isEnabled ? ( /*#__PURE__*/React__default.createElement(Menu.Item, {
45
45
  icon: `height-${tableMeta.rowHeight.height}`,
46
46
  subMenu: () => /*#__PURE__*/React__default.createElement(RowHeight, {
47
47
  table: table
48
48
  })
49
- }, texts.table3.rowHeight.tooltip) : null, tableMeta.fontSize.isEnabled ? /*#__PURE__*/React__default.createElement(Menu.Item, {
49
+ }, texts.table3.rowHeight.tooltip)) : null, tableMeta.fontSize.isEnabled ? ( /*#__PURE__*/React__default.createElement(Menu.Item, {
50
50
  icon: "font-size",
51
51
  subMenu: () => /*#__PURE__*/React__default.createElement(FontSize, {
52
52
  table: table
53
53
  })
54
- }, texts.table3.fontSize.tooltip) : null, customSettings ? /*#__PURE__*/React__default.createElement(React__default.Fragment, null, /*#__PURE__*/React__default.createElement(Menu.Separator, null), customSettings.map(customSetting => {
54
+ }, texts.table3.fontSize.tooltip)) : null, customSettings ? ( /*#__PURE__*/React__default.createElement(React__default.Fragment, null, /*#__PURE__*/React__default.createElement(Menu.Separator, null), customSettings.map(customSetting => {
55
55
  const props = tableMeta.getSettings();
56
56
  return customSetting(props);
57
- })) : null)),
57
+ }))) : null))),
58
58
  popover: popoverElement,
59
59
  onClickCapture: event => event.preventDefault(),
60
60
  tooltip: texts.table3.otherOptions.tooltip
@@ -1 +1 @@
1
- {"version":3,"file":"Settings.js","sources":["../../../../../../../../../src/components/Table3/components/toolbar/Settings.tsx"],"sourcesContent":["import React from 'react';\nimport { Table as RTable, TableMeta } from '@tanstack/react-table';\nimport { RowHeight } from './RowHeight';\nimport { ColumnSettingsPopover } from './ColumnSettings';\nimport { IconButton } from '../../../IconButton/IconButton';\nimport { Menu } from '../../../Menu/Menu';\nimport { useLocalization } from '../../../Provider/Localization';\nimport { IconName } from '../../../Icon/Icon';\nimport { FontSize } from './FontSize';\nimport { Table3CustomSettingRenderer } from '../../types';\n\nexport type SettingsButtonProps<TType = unknown> = {\n customSettings?: Table3CustomSettingRenderer[];\n table: RTable<TType>;\n};\nexport function SettingsButton<TType = unknown>(props: SettingsButtonProps<TType>) {\n const { customSettings, table } = props;\n const { texts } = useLocalization();\n const [popover, setPopover] = React.useState<string | undefined>(undefined);\n const tableMeta = table.options.meta as TableMeta<TType>;\n\n const hasColumnSettings = table.options.enableHiding || tableMeta.columnOrdering.isEnabled;\n\n let popoverElement;\n\n if (popover) {\n const handleClosePopover = () => setPopover(undefined);\n\n switch (popover) {\n case 'columnSettings': {\n if (hasColumnSettings) {\n popoverElement = props => (\n <ColumnSettingsPopover {...props} open onChange={handleClosePopover} table={table} />\n );\n }\n }\n }\n }\n\n return (\n <IconButton\n aria-label={texts.table3.otherOptions.tooltip}\n icon=\"sliders\"\n menu={\n popoverElement\n ? undefined\n : menuProps => (\n <Menu {...menuProps}>\n <Menu.Content align=\"end\">\n {table.options.enableHiding || tableMeta.columnOrdering.isEnabled ? (\n <Menu.Item icon=\"columns\" onClick={() => setPopover('columnSettings')}>\n {texts.table3.columnSettings.button}\n </Menu.Item>\n ) : null}\n {tableMeta.rowHeight.isEnabled || tableMeta.fontSize.isEnabled ? <Menu.Separator /> : null}\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 {customSettings ? (\n <>\n <Menu.Separator />\n {customSettings.map(customSetting => {\n const props = tableMeta.getSettings();\n return customSetting(props);\n })}\n </>\n ) : null}\n </Menu.Content>\n </Menu>\n )\n }\n popover={popoverElement}\n onClickCapture={event => event.preventDefault()}\n tooltip={texts.table3.otherOptions.tooltip}\n />\n );\n}\n"],"names":["SettingsButton","props","customSettings","table","texts","useLocalization","popover","setPopover","React","useState","undefined","tableMeta","options","meta","hasColumnSettings","enableHiding","columnOrdering","isEnabled","popoverElement","handleClosePopover","ColumnSettingsPopover","open","onChange","IconButton","table3","otherOptions","tooltip","icon","menu","menuProps","Menu","Content","align","Item","onClick","columnSettings","button","rowHeight","fontSize","Separator","height","subMenu","RowHeight","FontSize","map","customSetting","getSettings","onClickCapture","event","preventDefault"],"mappings":";;;;;;;;SAegBA,cAAcA,CAAkBC,KAAiC;EAC7E,MAAM;IAAEC,cAAc;IAAEC;GAAO,GAAGF,KAAK;EACvC,MAAM;IAAEG;GAAO,GAAGC,eAAe,EAAE;EACnC,MAAM,CAACC,OAAO,EAAEC,UAAU,CAAC,GAAGC,cAAK,CAACC,QAAQ,CAAqBC,SAAS,CAAC;EAC3E,MAAMC,SAAS,GAAGR,KAAK,CAACS,OAAO,CAACC,IAAwB;EAExD,MAAMC,iBAAiB,GAAGX,KAAK,CAACS,OAAO,CAACG,YAAY,IAAIJ,SAAS,CAACK,cAAc,CAACC,SAAS;EAE1F,IAAIC,cAAc;EAElB,IAAIZ,OAAO,EAAE;IACT,MAAMa,kBAAkB,GAAGA,MAAMZ,UAAU,CAACG,SAAS,CAAC;IAEtD,QAAQJ,OAAO;MACX,KAAK,gBAAgB;QAAE;UACnB,IAAIQ,iBAAiB,EAAE;YACnBI,cAAc,GAAGjB,KAAK,iBAClBO,6BAACY,qBAAqB,oBAAKnB,KAAK;cAAEoB,IAAI;cAACC,QAAQ,EAAEH,kBAAkB;cAAEhB,KAAK,EAAEA;eAC/E;;;;;EAMjB,oBACIK,6BAACe,UAAU;kBACKnB,KAAK,CAACoB,MAAM,CAACC,YAAY,CAACC,OAAO;IAC7CC,IAAI,EAAC,SAAS;IACdC,IAAI,EACAV,cAAc,GACRR,SAAS,GACTmB,SAAS,iBACLrB,6BAACsB,IAAI,oBAAKD,SAAS,gBACfrB,6BAACsB,IAAI,CAACC,OAAO;MAACC,KAAK,EAAC;OACf7B,KAAK,CAACS,OAAO,CAACG,YAAY,IAAIJ,SAAS,CAACK,cAAc,CAACC,SAAS,gBAC7DT,6BAACsB,IAAI,CAACG,IAAI;MAACN,IAAI,EAAC,SAAS;MAACO,OAAO,EAAEA,MAAM3B,UAAU,CAAC,gBAAgB;OAC/DH,KAAK,CAACoB,MAAM,CAACW,cAAc,CAACC,MAAM,CAC3B,GACZ,IAAI,EACPzB,SAAS,CAAC0B,SAAS,CAACpB,SAAS,IAAIN,SAAS,CAAC2B,QAAQ,CAACrB,SAAS,gBAAGT,6BAACsB,IAAI,CAACS,SAAS,OAAG,GAAG,IAAI,EACzF5B,SAAS,CAAC0B,SAAS,CAACpB,SAAS,gBAC1BT,6BAACsB,IAAI,CAACG,IAAI;MACNN,IAAI,YAAYhB,SAAS,CAAC0B,SAAS,CAACG,QAAoB;MACxDC,OAAO,EAAEA,mBAAMjC,6BAACkC,SAAS;QAACvC,KAAK,EAAEA;;OAChCC,KAAK,CAACoB,MAAM,CAACa,SAAS,CAACX,OAAO,CACvB,GACZ,IAAI,EACPf,SAAS,CAAC2B,QAAQ,CAACrB,SAAS,gBACzBT,6BAACsB,IAAI,CAACG,IAAI;MAACN,IAAI,EAAC,WAAW;MAACc,OAAO,EAAEA,mBAAMjC,6BAACmC,QAAQ;QAACxC,KAAK,EAAEA;;OACvDC,KAAK,CAACoB,MAAM,CAACc,QAAQ,CAACZ,OAAO,CACtB,GACZ,IAAI,EACPxB,cAAc,gBACXM,yEACIA,6BAACsB,IAAI,CAACS,SAAS,OAAG,EACjBrC,cAAc,CAAC0C,GAAG,CAACC,aAAa;MAC7B,MAAM5C,KAAK,GAAGU,SAAS,CAACmC,WAAW,EAAE;MACrC,OAAOD,aAAa,CAAC5C,KAAK,CAAC;KAC9B,CAAC,CACH,GACH,IAAI,CACG,CAEtB;IAEXK,OAAO,EAAEY,cAAc;IACvB6B,cAAc,EAAEC,KAAK,IAAIA,KAAK,CAACC,cAAc,EAAE;IAC/CvB,OAAO,EAAEtB,KAAK,CAACoB,MAAM,CAACC,YAAY,CAACC;IACrC;AAEV;;;;"}
1
+ {"version":3,"file":"Settings.js","sources":["../../../../../../../../../src/components/Table3/components/toolbar/Settings.tsx"],"sourcesContent":["import React from 'react';\nimport { Table as RTable, TableMeta } from '@tanstack/react-table';\nimport { RowHeight } from './RowHeight';\nimport { ColumnSettingsPopover } from './ColumnSettings';\nimport { IconButton } from '../../../IconButton/IconButton';\nimport { Menu } from '../../../Menu/Menu';\nimport { useLocalization } from '../../../Provider/Localization';\nimport { IconName } from '../../../Icon/Icon';\nimport { FontSize } from './FontSize';\nimport { Table3CustomSettingRenderer } from '../../types';\n\nexport type SettingsButtonProps<TType = unknown> = {\n customSettings?: Table3CustomSettingRenderer[];\n table: RTable<TType>;\n};\nexport function SettingsButton<TType = unknown>(props: SettingsButtonProps<TType>) {\n const { customSettings, table } = props;\n const { texts } = useLocalization();\n const [popover, setPopover] = React.useState<string | undefined>(undefined);\n const tableMeta = table.options.meta as TableMeta<TType>;\n\n const hasColumnSettings = table.options.enableHiding || tableMeta.columnOrdering.isEnabled;\n\n let popoverElement;\n\n if (popover) {\n const handleClosePopover = () => setPopover(undefined);\n\n switch (popover) {\n case 'columnSettings': {\n if (hasColumnSettings) {\n popoverElement = props => (\n <ColumnSettingsPopover {...props} open onChange={handleClosePopover} table={table} />\n );\n }\n }\n }\n }\n\n return (\n <IconButton\n aria-label={texts.table3.otherOptions.tooltip}\n icon=\"sliders\"\n menu={\n popoverElement\n ? undefined\n : menuProps => (\n <Menu {...menuProps}>\n <Menu.Content align=\"end\">\n {table.options.enableHiding || tableMeta.columnOrdering.isEnabled ? (\n <Menu.Item icon=\"columns\" onClick={() => setPopover('columnSettings')}>\n {texts.table3.columnSettings.button}\n </Menu.Item>\n ) : null}\n {tableMeta.rowHeight.isEnabled || tableMeta.fontSize.isEnabled ? <Menu.Separator /> : null}\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 {customSettings ? (\n <>\n <Menu.Separator />\n {customSettings.map(customSetting => {\n const props = tableMeta.getSettings();\n return customSetting(props);\n })}\n </>\n ) : null}\n </Menu.Content>\n </Menu>\n )\n }\n popover={popoverElement}\n onClickCapture={event => event.preventDefault()}\n tooltip={texts.table3.otherOptions.tooltip}\n />\n );\n}\n"],"names":["SettingsButton","props","customSettings","table","texts","useLocalization","popover","setPopover","React","useState","undefined","tableMeta","options","meta","hasColumnSettings","enableHiding","columnOrdering","isEnabled","popoverElement","handleClosePopover","ColumnSettingsPopover","open","onChange","IconButton","table3","otherOptions","tooltip","icon","menu","menuProps","Menu","Content","align","Item","onClick","columnSettings","button","rowHeight","fontSize","Separator","height","subMenu","RowHeight","FontSize","map","customSetting","getSettings","onClickCapture","event","preventDefault"],"mappings":";;;;;;;;SAegBA,cAAcA,CAAkBC,KAAiC;EAC7E,MAAM;IAAEC,cAAc;IAAEC;GAAO,GAAGF,KAAK;EACvC,MAAM;IAAEG;GAAO,GAAGC,eAAe,EAAE;EACnC,MAAM,CAACC,OAAO,EAAEC,UAAU,CAAC,GAAGC,cAAK,CAACC,QAAQ,CAAqBC,SAAS,CAAC;EAC3E,MAAMC,SAAS,GAAGR,KAAK,CAACS,OAAO,CAACC,IAAwB;EAExD,MAAMC,iBAAiB,GAAGX,KAAK,CAACS,OAAO,CAACG,YAAY,IAAIJ,SAAS,CAACK,cAAc,CAACC,SAAS;EAE1F,IAAIC,cAAc;EAElB,IAAIZ,OAAO,EAAE;IACT,MAAMa,kBAAkB,GAAGA,MAAMZ,UAAU,CAACG,SAAS,CAAC;IAEtD,QAAQJ,OAAO;MACX,KAAK,gBAAgB;QAAE;UACnB,IAAIQ,iBAAiB,EAAE;YACnBI,cAAc,GAAGjB,KAAK,mBAClBO,6BAACY,qBAAqB,oBAAKnB,KAAK;cAAEoB,IAAI;cAACC,QAAQ,EAAEH,kBAAkB;cAAEhB,KAAK,EAAEA;eAAS,CACxF;;;;;EAMjB,oBACIK,6BAACe,UAAU;kBACKnB,KAAK,CAACoB,MAAM,CAACC,YAAY,CAACC,OAAO;IAC7CC,IAAI,EAAC,SAAS;IACdC,IAAI,EACAV,cAAc,GACRR,SAAS,GACTmB,SAAS,mBACLrB,6BAACsB,IAAI,oBAAKD,SAAS,gBACfrB,6BAACsB,IAAI,CAACC,OAAO;MAACC,KAAK,EAAC;OACf7B,KAAK,CAACS,OAAO,CAACG,YAAY,IAAIJ,SAAS,CAACK,cAAc,CAACC,SAAS,kBAC7DT,6BAACsB,IAAI,CAACG,IAAI;MAACN,IAAI,EAAC,SAAS;MAACO,OAAO,EAAEA,MAAM3B,UAAU,CAAC,gBAAgB;OAC/DH,KAAK,CAACoB,MAAM,CAACW,cAAc,CAACC,MAAM,CAC3B,IACZ,IAAI,EACPzB,SAAS,CAAC0B,SAAS,CAACpB,SAAS,IAAIN,SAAS,CAAC2B,QAAQ,CAACrB,SAAS,gBAAGT,6BAACsB,IAAI,CAACS,SAAS,OAAG,GAAG,IAAI,EACzF5B,SAAS,CAAC0B,SAAS,CAACpB,SAAS,kBAC1BT,6BAACsB,IAAI,CAACG,IAAI;MACNN,IAAI,YAAYhB,SAAS,CAAC0B,SAAS,CAACG,QAAoB;MACxDC,OAAO,EAAEA,mBAAMjC,6BAACkC,SAAS;QAACvC,KAAK,EAAEA;;OAChCC,KAAK,CAACoB,MAAM,CAACa,SAAS,CAACX,OAAO,CACvB,IACZ,IAAI,EACPf,SAAS,CAAC2B,QAAQ,CAACrB,SAAS,kBACzBT,6BAACsB,IAAI,CAACG,IAAI;MAACN,IAAI,EAAC,WAAW;MAACc,OAAO,EAAEA,mBAAMjC,6BAACmC,QAAQ;QAACxC,KAAK,EAAEA;;OACvDC,KAAK,CAACoB,MAAM,CAACc,QAAQ,CAACZ,OAAO,CACtB,IACZ,IAAI,EACPxB,cAAc,kBACXM,yEACIA,6BAACsB,IAAI,CAACS,SAAS,OAAG,EACjBrC,cAAc,CAAC0C,GAAG,CAACC,aAAa;MAC7B,MAAM5C,KAAK,GAAGU,SAAS,CAACmC,WAAW,EAAE;MACrC,OAAOD,aAAa,CAAC5C,KAAK,CAAC;KAC9B,CAAC,CACH,IACH,IAAI,CACG,CACZ,CACV;IAEXK,OAAO,EAAEY,cAAc;IACvB6B,cAAc,EAAEC,KAAK,IAAIA,KAAK,CAACC,cAAc,EAAE;IAC/CvB,OAAO,EAAEtB,KAAK,CAACoB,MAAM,CAACC,YAAY,CAACC;IACrC;AAEV;;;;"}