@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":"virtualised.js","sources":["../../../../../../../../src/components/Table3/strategies/virtualised.tsx"],"sourcesContent":["import React from 'react';\nimport { flexRender, Row as RTRow, Table as RTable, TableMeta } from '@tanstack/react-table';\nimport { useVirtual } from 'react-virtual';\nimport { Row } from '../components/rows/Row';\nimport { Table3Props, Table3RowExpansionRenderer, TableStrategy } from '../types';\nimport { ExpandedRow } from '../components/rows/ExpandedRow';\nimport { rowHeightSizeEstimates } from '../components/rows/styles';\nimport { SkeletonRow } from '../components/rows/SkeletonRow';\n\nfunction createBodyRenderer<TType = unknown>(\n props: Table3Props<TType>,\n rows: RTRow<TType>[],\n table: RTable<TType>,\n tableRef: React.RefObject<HTMLDivElement>,\n virtualiser: ReturnType<typeof useVirtual>,\n setExpandedRowSizes: React.Dispatch<React.SetStateAction<Record<string, number>>>\n) {\n return () => {\n if (rows.length) {\n const paddingTop = virtualiser.virtualItems.length > 0 ? virtualiser.virtualItems[0]?.start ?? 0 : 0;\n const paddingBottom =\n virtualiser.virtualItems.length > 0\n ? virtualiser.totalSize - (virtualiser.virtualItems[virtualiser.virtualItems.length - 1]?.end ?? 0)\n : 0;\n\n const createSetSizeHandler = (index: number) => (size: number) => {\n setExpandedRowSizes(sizes => {\n if (size !== sizes[index]) {\n return { ...sizes, [index]: size };\n }\n\n return sizes;\n });\n };\n\n return (\n <>\n {paddingTop ? <div style={{ height: paddingTop }} className=\"col-span-full\" /> : null}\n {virtualiser.virtualItems.map(virtualRow => {\n const row = rows[virtualRow.index];\n\n if (row.original === undefined && props.pageSize) {\n const pageIndex = (Math.floor(virtualRow.index / props.pageSize) * props.pageSize) / props.pageSize;\n\n return (\n <SkeletonRow<TType>\n key={row.id}\n columns={table.getVisibleLeafColumns()}\n loadPage={props.loadPage}\n pageIndex={pageIndex}\n table={table}\n />\n );\n }\n\n return (\n <React.Fragment key={row.id}>\n <Row<TType>\n index={virtualRow.index}\n isLastRow={virtualRow.index === rows.length - 1}\n row={row}\n table={table}\n tableRef={tableRef}>\n {row.getVisibleCells().map((cell, index) => (\n <React.Fragment key={cell.id}>\n {flexRender(cell.column.columnDef.cell, { ...cell.getContext(), index, tableRef })}\n </React.Fragment>\n ))}\n </Row>\n {row.getIsExpanded() ? (\n <ExpandedRow\n data={row.original}\n renderer={props.expandedRowRenderer as Table3RowExpansionRenderer}\n registerSize={createSetSizeHandler(virtualRow.index)}\n />\n ) : null}\n </React.Fragment>\n );\n })}\n {paddingBottom ? <div style={{ height: paddingBottom }} className=\"col-span-full\" /> : null}\n </>\n );\n }\n\n return null;\n };\n}\n\nexport function useTableRenderStrategy<TType = unknown>(\n props: Table3Props<TType>,\n table: RTable<TType>,\n tableRef: React.RefObject<HTMLDivElement>\n): TableStrategy {\n const meta = table.options.meta as TableMeta<TType>;\n const rows = table.getRowModel().rows;\n const expandedState = table.getState().expanded;\n\n const [expandedRowSizes, setExpandedRowSizes] = React.useState<Record<string, number>>({});\n\n const firstAvailableExpandedRowHeight = React.useMemo(() => {\n const values: number[] = Object.values(expandedRowSizes);\n return values.length ? values.reduce((a, b) => a + b, 0) / values.length : 0;\n }, [expandedRowSizes]);\n\n const estimateSize = React.useCallback(\n index => {\n const rowHeight = meta.rowHeight.height\n ? rowHeightSizeEstimates[meta.rowHeight.height]\n : rowHeightSizeEstimates.medium;\n\n if (expandedState === true || expandedState?.[index]) {\n return rowHeight + (expandedRowSizes[index] ?? firstAvailableExpandedRowHeight ?? 0);\n }\n\n return rowHeight;\n },\n [meta.rowHeight.height, expandedRowSizes, expandedState]\n );\n\n const virtualiser = useVirtual({\n parentRef: tableRef,\n size: rows.length,\n estimateSize,\n });\n\n const scrollToIndex = React.useCallback(\n (index: number, options?: { align: 'start' | 'center' | 'end' | 'auto' }) => {\n if (tableRef.current) {\n if (index <= 0) {\n tableRef.current.scrollTo(tableRef.current.scrollLeft, 0);\n } else if (index >= rows.length - 1) {\n tableRef.current?.scrollTo(0, tableRef.current.scrollHeight);\n } else {\n virtualiser.scrollToIndex(index, options);\n }\n }\n },\n [rows.length, tableRef.current]\n );\n\n return {\n renderBody: createBodyRenderer(props, rows, table, tableRef, virtualiser, setExpandedRowSizes),\n scrollToIndex,\n };\n}\n"],"names":["createBodyRenderer","props","rows","table","tableRef","virtualiser","setExpandedRowSizes","length","paddingTop","virtualItems","start","paddingBottom","totalSize","end","createSetSizeHandler","index","size","sizes","React","style","height","className","map","virtualRow","row","original","undefined","pageSize","pageIndex","Math","floor","SkeletonRow","key","id","columns","getVisibleLeafColumns","loadPage","Fragment","Row","isLastRow","getVisibleCells","cell","flexRender","column","columnDef","getContext","getIsExpanded","ExpandedRow","data","renderer","expandedRowRenderer","registerSize","useTableRenderStrategy","meta","options","getRowModel","expandedState","getState","expanded","expandedRowSizes","useState","firstAvailableExpandedRowHeight","useMemo","values","Object","reduce","a","b","estimateSize","useCallback","rowHeight","rowHeightSizeEstimates","medium","useVirtual","parentRef","scrollToIndex","current","scrollTo","scrollLeft","scrollHeight","renderBody"],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ var Table3FilterComparator;
2
+ (function (Table3FilterComparator) {
3
+ Table3FilterComparator[Table3FilterComparator["Contains"] = 0] = "Contains";
4
+ Table3FilterComparator[Table3FilterComparator["DoesNotContain"] = 1] = "DoesNotContain";
5
+ Table3FilterComparator[Table3FilterComparator["IsEqualTo"] = 2] = "IsEqualTo";
6
+ Table3FilterComparator[Table3FilterComparator["IsNotEqualTo"] = 3] = "IsNotEqualTo";
7
+ Table3FilterComparator[Table3FilterComparator["IsGreaterThan"] = 4] = "IsGreaterThan";
8
+ Table3FilterComparator[Table3FilterComparator["IsLessThan"] = 5] = "IsLessThan";
9
+ Table3FilterComparator[Table3FilterComparator["IsBetween"] = 6] = "IsBetween";
10
+ Table3FilterComparator[Table3FilterComparator["IsOneOf"] = 7] = "IsOneOf";
11
+ Table3FilterComparator[Table3FilterComparator["IsNoneOf"] = 8] = "IsNoneOf";
12
+ Table3FilterComparator[Table3FilterComparator["IsAllOf"] = 9] = "IsAllOf";
13
+ Table3FilterComparator[Table3FilterComparator["IsEmpty"] = 10] = "IsEmpty";
14
+ Table3FilterComparator[Table3FilterComparator["IsNotEmpty"] = 11] = "IsNotEmpty";
15
+ })(Table3FilterComparator || (Table3FilterComparator = {}));
16
+
17
+ export { Table3FilterComparator };
18
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sources":["../../../../../../../src/components/Table3/types.ts"],"sourcesContent":["import {\n ColumnFilter as RTColumnFilter,\n ColumnFiltersState,\n ColumnOrderState,\n ColumnPinningState,\n ColumnSizingState,\n ColumnSort as RTTableColumnSort,\n SortingState,\n VisibilityState,\n BuiltInSortingFn,\n} from '@tanstack/react-table';\nimport { MenuProps } from '../Menu/Menu';\n\nexport type Table3SortDirection = 'asc' | 'desc';\nexport type Table3SortFn<TType = unknown> =\n | ((rowA: TType, rowB: TType, columnId: string) => -1 | 0 | 1)\n | BuiltInSortingFn\n | 'auto';\n\n// columns\nexport type Table3ColumnRenderer<TValue = unknown, TType = unknown> = (value: TValue, row: TType) => JSX.Element | string | null;\nexport type Table3ColumnFooterRenderer<TValue = unknown> = (values: TValue[]) => JSX.Element | string | null;\nexport type Table3ColumnClassNameHandler<TType = unknown> = string | ((row: TType) => string);\nexport type Table3ColumnAlignment = 'left' | 'center' | 'right';\nexport type Table3ColumnDataType = 'auto' | 'alphanumeric' | 'alphanumericCaseSensitive' | 'datetime' | 'boolean';\nexport type Table3ColumnHeaderMenu = (props: Partial<MenuProps>) => JSX.Element;\n\nexport type Table3ColumnControlProps = {\n className?: string;\n disabled?: boolean;\n invalid?: boolean;\n onBlur?: (value: any) => void;\n onFocus?: React.FocusEventHandler;\n readOnly?: boolean;\n ref: React.RefObject<HTMLElement>;\n setValue: (value: any) => void;\n value: any;\n};\nexport type Table3ColumnControlRenderer<TType = unknown> =\n | ((props: Table3ColumnControlProps, row?: TType) => JSX.Element)\n | 'datepicker'\n | 'input'\n | 'switch';\n\nexport type Table3ColumnProps<TType = unknown> = {\n accessor: string;\n align?: Table3ColumnAlignment;\n className?: Table3ColumnClassNameHandler<TType>;\n control?: Table3ColumnControlRenderer<TType>;\n dataType?: Table3ColumnDataType;\n defaultHidden?: boolean;\n defaultWidth?: number | 'grow';\n enableFiltering?: boolean;\n enableHiding?: boolean;\n enableOrdering?: boolean;\n enableResizing?: boolean;\n enableSearch?: boolean;\n enableSorting?: boolean;\n enableTruncate?: boolean;\n footer?: Table3ColumnFooterRenderer;\n header: string;\n headerClassName?: string;\n menu?: Table3ColumnHeaderMenu;\n renderer?: Table3ColumnRenderer<unknown, TType>;\n sort?: Table3SortDirection;\n sortFn?: Table3SortFn<TType>;\n tooltip?: string;\n};\n\n// rows\nexport type DeprecatedRowDensity = 'compact' | 'normal' | 'comfortable' | 'spacious';\nexport type Table3RowHeight = 'short' | 'medium' | 'tall' | 'extra-tall';\nexport type Table3FontSize = 'small' | 'medium' | 'large';\nexport type Table3RowClickHandler<TType = unknown> = (row: TType) => void;\nexport type Table3RowDragHandler<TType = unknown> = (\n rows: TType[],\n showPlaceholder: (string) => void,\n setDataTransfer: (data: string) => void\n) => void;\nexport type Table3RowDropHandler<TType = any> = (event: React.DragEvent, row: TType) => void;\nexport type Table3RowExpansionRenderer<TType = unknown> = (row: TType) => (() => JSX.Element) | null;\nexport type Table3RowSelectionHandler<TType = unknown> = (rows: TType[]) => void;\nexport type Table3RowActionRenderer<TType = unknown> = (row: TType) => JSX.Element;\n\n// table\nexport type Table3Preset = 'display' | 'editable';\nexport type Table3Settings = {\n columnFilters?: ColumnFiltersState;\n columnFreezingIndex?: number;\n columnOrder?: ColumnOrderState;\n columnPinning?: ColumnPinningState;\n columnSizing?: ColumnSizingState;\n columnVisibility?: VisibilityState;\n excludeUnmatchedRecordsInSearch?: boolean;\n fontSize?: Table3FontSize;\n // deprecated - here to map existing settings across to new settings\n rowDensity?: DeprecatedRowDensity;\n rowHeight?: Table3RowHeight;\n sorting?: SortingState;\n};\nexport type Table3SettingsAdapter = (settings: Table3Settings) => void;\n\nexport enum Table3FilterComparator {\n Contains,\n DoesNotContain,\n IsEqualTo,\n IsNotEqualTo,\n IsGreaterThan,\n IsLessThan,\n IsBetween,\n IsOneOf,\n IsNoneOf,\n IsAllOf,\n IsEmpty,\n IsNotEmpty,\n}\n\nexport type Table3FilterValue = {\n comparator: Table3FilterComparator;\n value: any;\n};\n\nexport type Table3Filter = { id: string; value: Table3FilterValue };\n\nexport type ColumnFilter = RTColumnFilter;\nexport type Table3FilterHandler = (filters: ColumnFilter[]) => void;\nexport type Table3SearchHandler = (query: string | undefined) => Promise<void>;\nexport type Table3LoadPageHandler = (\n pageIndex: number,\n sorting: Table3ColumnSort[],\n filters: ColumnFilter[],\n search: string | undefined\n) => Promise<void>;\nexport type Table3LoadAllHandler = (\n sorting: Table3ColumnSort[],\n filters: ColumnFilter[],\n search: string | undefined\n) => Promise<void>;\nexport type Table3RowGotoHandler = (\n column: string,\n query: string,\n sorting: Table3ColumnSort[],\n filters: ColumnFilter[],\n search: string | undefined\n) => Promise<number>;\nexport type Table3ColumnSort = RTTableColumnSort;\nexport type Table3SortHandler = (sorting: Table3ColumnSort[]) => void;\nexport type TableStrategy = {\n renderBody: () => JSX.Element | JSX.Element[] | null;\n scrollToIndex: (index: number, options?: { align: 'start' | 'center' | 'end' | 'auto' }) => void;\n};\nexport type Table3ShortcutHandlerFn<TType = unknown> = (row: TType) => void;\nexport type Table3ShortcutHandlerObject<TType = unknown> = {\n handler: Table3ShortcutHandlerFn<TType>;\n meta?: boolean;\n shift?: boolean;\n};\nexport type Table3Shortcuts<TType = unknown> = Record<\n string,\n Table3ShortcutHandlerFn<TType> | Table3ShortcutHandlerObject<TType>\n>;\nexport type Table3SaveHandler<TType = unknown> = (data: TType) => Promise<void>;\n\nexport type Table3Options = {\n enableColumnFreezing: boolean;\n enableColumnHiding: boolean;\n enableColumnOrdering: boolean;\n enableColumnResizing: boolean;\n enableFontSize: boolean;\n enablePrinting: boolean;\n enableRowDrag: boolean;\n enableRowDrop: boolean;\n enableRowExpansion: boolean;\n enableRowGoto: boolean;\n enableRowHeight: boolean;\n enableRowSelection: boolean;\n enableRowSelectionSingle: boolean;\n enableEditing: boolean;\n enableFiltering: boolean;\n enableSearch: boolean;\n enableSorting: boolean;\n};\n\nexport type Table3CommonProps<TType = unknown> = Partial<Table3Options> & {\n actionsForRow?: Table3RowActionRenderer<TType>[];\n actionsForRowLength?: number;\n children: (React.ReactElement<Table3ColumnProps<TType>> | boolean | null | undefined)[];\n data: TType[];\n defaultColumnFreezingIndex?: number;\n defaultCurrentRowIndex?: number;\n defaultSettings?: Table3Settings;\n emptyState?: () => JSX.Element;\n expandedRowRenderer?: Table3RowExpansionRenderer<TType>;\n id: string;\n onChangeSettings?: Table3SettingsAdapter;\n onRowClick?: Table3RowClickHandler<TType>;\n onRowDrag?: Table3RowDragHandler<TType>;\n onRowDrop?: Table3RowDropHandler<TType>;\n onRowGoto?: Table3RowGotoHandler;\n onRowSelect?: Table3RowSelectionHandler<TType>;\n onFilter?: Table3FilterHandler;\n onSave?: Table3SaveHandler;\n onSearch?: Table3SearchHandler;\n onSort?: Table3SortHandler;\n preset?: Table3Preset;\n shortcuts?: Table3Shortcuts<TType>;\n toolbarLeft?: JSX.Element;\n toolbarRight?: JSX.Element;\n};\n\ninterface Table3ClientProps<TType = unknown> extends Table3CommonProps<TType> {\n length?: never;\n loadPage?: never;\n loadAll?: never;\n pageSize?: never;\n}\n\ninterface Table3ServerProps<TType = unknown> extends Table3CommonProps<TType> {\n length: number | undefined;\n loadPage: Table3LoadPageHandler;\n loadAll: Table3LoadAllHandler;\n pageSize?: number;\n}\n\nexport type Table3Props<TType = unknown> = Table3ClientProps<TType> | Table3ServerProps<TType>;\n\nexport type Table3Ref = HTMLDivElement & {\n instance: {\n resetFiltering: () => void;\n resetRowExpansion: () => void;\n resetRowSelection: () => void;\n resetSorting: () => void;\n toggleEditing: (enabled: boolean | undefined) => void;\n };\n};\n\nexport type Table3Texts = {\n columns: {\n actions: {\n tooltip: string;\n };\n drag: {\n tooltip: string;\n };\n expansion: {\n collapse: string;\n collapseAll: string;\n expand: string;\n expandAll: string;\n };\n menu: {\n freezeFirstColumn: string;\n freezeUptoColumn: string;\n gotoRow: string;\n hideColumn: string;\n unfreezeColumns: string;\n };\n resize: {\n tooltip: string;\n };\n select: {\n deselect: string;\n deselectAll: string;\n select: string;\n selectAll: string;\n };\n };\n columnSettings: {\n button: string;\n noResults: string;\n search: string;\n tooltip: string;\n };\n editing: {\n actions: {\n tooltip: string;\n save: string;\n clear: string;\n exit: string;\n };\n buttons: {\n edit: {\n text: string;\n tooltip: string;\n };\n };\n rowIndicator: {\n rowWillMove: string;\n rowWillBeHidden: string;\n rowWillMoveReasonSearch: string;\n rowWillMoveReasonFilter: string;\n rowWillMoveReasonSorting: string;\n };\n saving: {\n progress: string;\n complete: string;\n };\n };\n filters: {\n button: string;\n buttons: {\n addFilter: string;\n clearFilters: string;\n };\n comparators: {\n contains: string;\n doesNotContain: string;\n isEqualTo: string;\n isNotEqualTo: string;\n isGreaterThan: string;\n isLessThan: string;\n isBetween: string;\n isOneOf: string;\n isNoneOf: string;\n isAllOf: string;\n isEmpty: string;\n isNotEmpty: string;\n };\n conditions: {\n and: string;\n where: string;\n };\n emptyFilter: {\n condition: string;\n value: string;\n };\n tooltip: string;\n total: string;\n };\n fontSize: {\n tooltip: string;\n sizes: {\n small: string;\n medium: string;\n large: string;\n };\n };\n footer: {\n summary: {\n count: string;\n records: string;\n selected: string;\n };\n };\n print: {\n error: string;\n loading: string;\n tooltip: string;\n };\n rowHeight: {\n tooltip: string;\n sizes: {\n short: string;\n medium: string;\n tall: string;\n extraTall: string;\n };\n };\n search: {\n excludeUnmatchedResults: string;\n placeholder: string;\n };\n};\n"],"names":["Table3FilterComparator"],"mappings":"IAsGYA;AAAZ,WAAYA,sBAAsB;EAC9BA,2EAAQ;EACRA,uFAAc;EACdA,6EAAS;EACTA,mFAAY;EACZA,qFAAa;EACbA,+EAAU;EACVA,6EAAS;EACTA,yEAAO;EACPA,2EAAQ;EACRA,yEAAO;EACPA,0EAAO;EACPA,gFAAU;AACd,CAAC,EAbWA,sBAAsB,KAAtBA,sBAAsB;;;;"}
@@ -0,0 +1,39 @@
1
+ import { isDate } from 'date-fns';
2
+
3
+ const isInternalColumn = id => id.startsWith('__');
4
+ const isFrozenColumn = (index, table) => {
5
+ const tableMeta = table.options.meta;
6
+ if (!tableMeta.columnFreezing.isEnabled || tableMeta.columnFreezing.frozenColumnIndex === undefined) {
7
+ return false;
8
+ }
9
+ return tableMeta.columnFreezing.frozenColumnIndex >= index;
10
+ };
11
+ const getCurrentRowCellElement = (index, table) => {
12
+ const cellSelector = `[data-current="true"] [data-column-index="${index}"`;
13
+ return table.querySelector(cellSelector);
14
+ };
15
+ function scrollColumnIntoView(columnIndex, frozenColumnIndex, column, table) {
16
+ if (frozenColumnIndex !== undefined && columnIndex > frozenColumnIndex) {
17
+ const lastFrozenColumnElement = getCurrentRowCellElement(frozenColumnIndex, table);
18
+ const highlightRef = column === null || column === void 0 ? void 0 : column.getBoundingClientRect();
19
+ const lastFrozenRect = lastFrozenColumnElement === null || lastFrozenColumnElement === void 0 ? void 0 : lastFrozenColumnElement.getBoundingClientRect();
20
+ // offset the width of frozen columns so that the column being scrolled to is not hidden behind them
21
+ if (highlightRef && lastFrozenRect && highlightRef.left < lastFrozenRect.left + lastFrozenRect.width) {
22
+ const pinnedColumnsWidth = lastFrozenRect.left + lastFrozenRect.width;
23
+ table === null || table === void 0 ? void 0 : table.scrollTo(highlightRef.left - pinnedColumnsWidth, table.scrollTop);
24
+ }
25
+ } else {
26
+ column.scrollIntoView({
27
+ block: 'nearest',
28
+ inline: 'nearest'
29
+ });
30
+ }
31
+ }
32
+ function isCellHighlighted(query, value, children) {
33
+ // if we just stringify date, we get the full object with "Greenwich Meantime" etc in
34
+ const highlightValue = isDate(value) ? children : value;
35
+ return String(highlightValue).toLocaleLowerCase().includes(query.toLocaleLowerCase());
36
+ }
37
+
38
+ export { getCurrentRowCellElement, isCellHighlighted, isFrozenColumn, isInternalColumn, scrollColumnIntoView };
39
+ //# sourceMappingURL=columns.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"columns.js","sources":["../../../../../../../../src/components/Table3/util/columns.ts"],"sourcesContent":["import { Table as RTable, TableMeta } from '@tanstack/react-table';\nimport { isDate } from 'date-fns';\n\nexport const isInternalColumn = (id: string) => id.startsWith('__');\n\nexport const isFrozenColumn = <TType = unknown>(index: number, table: RTable<TType>) => {\n const tableMeta = table.options.meta as TableMeta<TType>;\n\n if (!tableMeta.columnFreezing.isEnabled || tableMeta.columnFreezing.frozenColumnIndex === undefined) {\n return false;\n }\n\n return tableMeta.columnFreezing.frozenColumnIndex >= index;\n};\n\nexport const getCurrentRowCellElement = (index: number, table: HTMLElement) => {\n const cellSelector = `[data-current=\"true\"] [data-column-index=\"${index}\"`;\n return table.querySelector(cellSelector);\n};\n\nexport function scrollColumnIntoView(columnIndex: number, frozenColumnIndex: number, column: HTMLElement, table: HTMLElement) {\n if (frozenColumnIndex !== undefined && columnIndex > frozenColumnIndex) {\n const lastFrozenColumnElement = getCurrentRowCellElement(frozenColumnIndex, table);\n const highlightRef = column?.getBoundingClientRect();\n const lastFrozenRect = lastFrozenColumnElement?.getBoundingClientRect();\n\n // offset the width of frozen columns so that the column being scrolled to is not hidden behind them\n if (highlightRef && lastFrozenRect && highlightRef.left < lastFrozenRect.left + lastFrozenRect.width) {\n const pinnedColumnsWidth = lastFrozenRect.left + lastFrozenRect.width;\n table?.scrollTo(highlightRef.left - pinnedColumnsWidth, table.scrollTop);\n }\n } else {\n column.scrollIntoView({ block: 'nearest', inline: 'nearest' });\n }\n}\n\nexport function isCellHighlighted(query: string, value: unknown, children: JSX.Element | string | null) {\n // if we just stringify date, we get the full object with \"Greenwich Meantime\" etc in\n const highlightValue = isDate(value) ? children : value;\n return String(highlightValue).toLocaleLowerCase().includes(query.toLocaleLowerCase());\n}\n"],"names":["isInternalColumn","id","startsWith","isFrozenColumn","index","table","tableMeta","options","meta","columnFreezing","isEnabled","frozenColumnIndex","undefined","getCurrentRowCellElement","cellSelector","querySelector","scrollColumnIntoView","columnIndex","column","lastFrozenColumnElement","highlightRef","getBoundingClientRect","lastFrozenRect","left","width","pinnedColumnsWidth","scrollTo","scrollTop","scrollIntoView","block","inline","isCellHighlighted","query","value","children","highlightValue","isDate","String","toLocaleLowerCase","includes"],"mappings":";;MAGaA,gBAAgB,GAAIC,EAAU,IAAKA,EAAE,CAACC,UAAU,CAAC,IAAI;MAErDC,cAAc,GAAG,CAAkBC,KAAa,EAAEC,KAAoB;EAC/E,MAAMC,SAAS,GAAGD,KAAK,CAACE,OAAO,CAACC,IAAwB;EAExD,IAAI,CAACF,SAAS,CAACG,cAAc,CAACC,SAAS,IAAIJ,SAAS,CAACG,cAAc,CAACE,iBAAiB,KAAKC,SAAS,EAAE;IACjG,OAAO,KAAK;;EAGhB,OAAON,SAAS,CAACG,cAAc,CAACE,iBAAiB,IAAIP,KAAK;AAC9D;MAEaS,wBAAwB,GAAG,CAACT,KAAa,EAAEC,KAAkB;EACtE,MAAMS,YAAY,gDAAgDV,QAAQ;EAC1E,OAAOC,KAAK,CAACU,aAAa,CAACD,YAAY,CAAC;AAC5C;SAEgBE,oBAAoB,CAACC,WAAmB,EAAEN,iBAAyB,EAAEO,MAAmB,EAAEb,KAAkB;EACxH,IAAIM,iBAAiB,KAAKC,SAAS,IAAIK,WAAW,GAAGN,iBAAiB,EAAE;IACpE,MAAMQ,uBAAuB,GAAGN,wBAAwB,CAACF,iBAAiB,EAAEN,KAAK,CAAC;IAClF,MAAMe,YAAY,GAAGF,MAAM,aAANA,MAAM,uBAANA,MAAM,CAAEG,qBAAqB,EAAE;IACpD,MAAMC,cAAc,GAAGH,uBAAuB,aAAvBA,uBAAuB,uBAAvBA,uBAAuB,CAAEE,qBAAqB,EAAE;;IAGvE,IAAID,YAAY,IAAIE,cAAc,IAAIF,YAAY,CAACG,IAAI,GAAGD,cAAc,CAACC,IAAI,GAAGD,cAAc,CAACE,KAAK,EAAE;MAClG,MAAMC,kBAAkB,GAAGH,cAAc,CAACC,IAAI,GAAGD,cAAc,CAACE,KAAK;MACrEnB,KAAK,aAALA,KAAK,uBAALA,KAAK,CAAEqB,QAAQ,CAACN,YAAY,CAACG,IAAI,GAAGE,kBAAkB,EAAEpB,KAAK,CAACsB,SAAS,CAAC;;GAE/E,MAAM;IACHT,MAAM,CAACU,cAAc,CAAC;MAAEC,KAAK,EAAE,SAAS;MAAEC,MAAM,EAAE;KAAW,CAAC;;AAEtE;SAEgBC,iBAAiB,CAACC,KAAa,EAAEC,KAAc,EAAEC,QAAqC;;EAElG,MAAMC,cAAc,GAAGC,MAAM,CAACH,KAAK,CAAC,GAAGC,QAAQ,GAAGD,KAAK;EACvD,OAAOI,MAAM,CAACF,cAAc,CAAC,CAACG,iBAAiB,EAAE,CAACC,QAAQ,CAACP,KAAK,CAACM,iBAAiB,EAAE,CAAC;AACzF;;;;"}
@@ -0,0 +1,41 @@
1
+ import { isDate } from 'date-fns';
2
+ import { isWeakEqual } from '../../../utils/date.js';
3
+
4
+ const focussableNodeNames = ['A', 'BUTTON', 'INPUT', 'TEXTAREA', 'SELECT', 'DETAILS'];
5
+ const focusableSelector = /*#__PURE__*/focussableNodeNames.join(', ');
6
+ const hasChanged = (value, newValue) => {
7
+ if (isDate(value) && isDate(newValue)) {
8
+ return !isWeakEqual(value, newValue);
9
+ } else if (Array.isArray(value)) {
10
+ return JSON.stringify(value) !== JSON.stringify(newValue);
11
+ }
12
+ return value !== newValue;
13
+ };
14
+ const willRowMoveAfterSorting = (value, cell, rowIndex, rows, desc) => {
15
+ var _resortedRows$index;
16
+ const miniSortRows = [{
17
+ ...cell.row,
18
+ original: {
19
+ ...cell.row.original,
20
+ [cell.column.id]: value
21
+ }
22
+ }];
23
+ // getValue is used by the built-in sort functons, so we need to make sure it returns the changed value
24
+ miniSortRows[0].getValue = () => value;
25
+ let index = 0;
26
+ if (rowIndex > 0) {
27
+ miniSortRows.unshift(rows[rowIndex - 1]);
28
+ index = 1;
29
+ }
30
+ if (rowIndex < rows.length - 1) {
31
+ miniSortRows.push(rows[rowIndex + 1]);
32
+ }
33
+ let resortedRows = [...miniSortRows].sort((a, b) => cell.column.getSortingFn()(a, b, cell.column.id));
34
+ if (desc) {
35
+ resortedRows = resortedRows.reverse();
36
+ }
37
+ return ((_resortedRows$index = resortedRows[index]) === null || _resortedRows$index === void 0 ? void 0 : _resortedRows$index.id) !== cell.row.id;
38
+ };
39
+
40
+ export { focusableSelector, focussableNodeNames, hasChanged, willRowMoveAfterSorting };
41
+ //# sourceMappingURL=editing.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"editing.js","sources":["../../../../../../../../src/components/Table3/util/editing.ts"],"sourcesContent":["import { isDate } from 'date-fns';\nimport { isWeakEqual as isWeakEqualDate } from '../../../utils/date';\n\nexport const focussableNodeNames = ['A', 'BUTTON', 'INPUT', 'TEXTAREA', 'SELECT', 'DETAILS'];\nexport const focusableSelector = focussableNodeNames.join(', ');\n\nexport const hasChanged = (value, newValue) => {\n if (isDate(value) && isDate(newValue)) {\n return !isWeakEqualDate(value, newValue);\n } else if (Array.isArray(value)) {\n return JSON.stringify(value) !== JSON.stringify(newValue);\n }\n\n return value !== newValue;\n};\n\nexport const willRowMoveAfterSorting = (value, cell, rowIndex, rows, desc): boolean => {\n const miniSortRows = [{ ...cell.row, original: { ...cell.row.original, [cell.column.id]: value } }];\n // getValue is used by the built-in sort functons, so we need to make sure it returns the changed value\n miniSortRows[0].getValue = () => value;\n\n let index = 0;\n\n if (rowIndex > 0) {\n miniSortRows.unshift(rows[rowIndex - 1]);\n index = 1;\n }\n\n if (rowIndex < rows.length - 1) {\n miniSortRows.push(rows[rowIndex + 1]);\n }\n\n let resortedRows = [...miniSortRows].sort((a, b) => cell.column.getSortingFn()(a, b, cell.column.id));\n\n if (desc) {\n resortedRows = resortedRows.reverse();\n }\n\n return resortedRows[index]?.id !== cell.row.id;\n};\n"],"names":["focussableNodeNames","focusableSelector","join","hasChanged","value","newValue","isDate","isWeakEqualDate","Array","isArray","JSON","stringify","willRowMoveAfterSorting","cell","rowIndex","rows","desc","miniSortRows","row","original","column","id","getValue","index","unshift","length","push","resortedRows","sort","a","b","getSortingFn","reverse"],"mappings":";;;MAGaA,mBAAmB,GAAG,CAAC,GAAG,EAAE,QAAQ,EAAE,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,SAAS;MAC9EC,iBAAiB,gBAAGD,mBAAmB,CAACE,IAAI,CAAC,IAAI;MAEjDC,UAAU,GAAG,CAACC,KAAK,EAAEC,QAAQ;EACtC,IAAIC,MAAM,CAACF,KAAK,CAAC,IAAIE,MAAM,CAACD,QAAQ,CAAC,EAAE;IACnC,OAAO,CAACE,WAAe,CAACH,KAAK,EAAEC,QAAQ,CAAC;GAC3C,MAAM,IAAIG,KAAK,CAACC,OAAO,CAACL,KAAK,CAAC,EAAE;IAC7B,OAAOM,IAAI,CAACC,SAAS,CAACP,KAAK,CAAC,KAAKM,IAAI,CAACC,SAAS,CAACN,QAAQ,CAAC;;EAG7D,OAAOD,KAAK,KAAKC,QAAQ;AAC7B;MAEaO,uBAAuB,GAAG,CAACR,KAAK,EAAES,IAAI,EAAEC,QAAQ,EAAEC,IAAI,EAAEC,IAAI;;EACrE,MAAMC,YAAY,GAAG,CAAC;IAAE,GAAGJ,IAAI,CAACK,GAAG;IAAEC,QAAQ,EAAE;MAAE,GAAGN,IAAI,CAACK,GAAG,CAACC,QAAQ;MAAE,CAACN,IAAI,CAACO,MAAM,CAACC,EAAE,GAAGjB;;GAAS,CAAC;;EAEnGa,YAAY,CAAC,CAAC,CAAC,CAACK,QAAQ,GAAG,MAAMlB,KAAK;EAEtC,IAAImB,KAAK,GAAG,CAAC;EAEb,IAAIT,QAAQ,GAAG,CAAC,EAAE;IACdG,YAAY,CAACO,OAAO,CAACT,IAAI,CAACD,QAAQ,GAAG,CAAC,CAAC,CAAC;IACxCS,KAAK,GAAG,CAAC;;EAGb,IAAIT,QAAQ,GAAGC,IAAI,CAACU,MAAM,GAAG,CAAC,EAAE;IAC5BR,YAAY,CAACS,IAAI,CAACX,IAAI,CAACD,QAAQ,GAAG,CAAC,CAAC,CAAC;;EAGzC,IAAIa,YAAY,GAAG,CAAC,GAAGV,YAAY,CAAC,CAACW,IAAI,CAAC,CAACC,CAAC,EAAEC,CAAC,KAAKjB,IAAI,CAACO,MAAM,CAACW,YAAY,EAAE,CAACF,CAAC,EAAEC,CAAC,EAAEjB,IAAI,CAACO,MAAM,CAACC,EAAE,CAAC,CAAC;EAErG,IAAIL,IAAI,EAAE;IACNW,YAAY,GAAGA,YAAY,CAACK,OAAO,EAAE;;EAGzC,OAAO,wBAAAL,YAAY,CAACJ,KAAK,CAAC,wDAAnB,oBAAqBF,EAAE,MAAKR,IAAI,CAACK,GAAG,CAACG,EAAE;AAClD;;;;"}
@@ -0,0 +1,102 @@
1
+ import { isDate, isBefore, isAfter } from 'date-fns';
2
+ import { isWeakEqual as isWeakEqual$1 } from '../../../utils/date.js';
3
+ import { Table3FilterComparator } from '../types.js';
4
+
5
+ const toLowerCase = value => String(value !== null && value !== void 0 ? value : '').toLocaleLowerCase();
6
+ const isWeakContains = (left, right) => toLowerCase(left).includes(toLowerCase(right));
7
+ const isWeakEqual = (left, right) => toLowerCase(left) === toLowerCase(right);
8
+ function globalFilterFn(value, query) {
9
+ return isWeakContains(value, query);
10
+ }
11
+ // the filter type is only settable on the column definition, which would re-render all columns
12
+ // so instead we store it in the filter value, but that means we also have to destructure that
13
+ // before we filter - that's why this custom filter function exists
14
+ function columnFilterFn(value, filter) {
15
+ try {
16
+ if (filter.comparator === Table3FilterComparator.IsEmpty || filter.comparator === Table3FilterComparator.IsNotEmpty) {
17
+ const isEmpty = value === undefined || value === null || value === '';
18
+ return filter.comparator === Table3FilterComparator.IsEmpty ? isEmpty : !isEmpty;
19
+ }
20
+ if (filter.value === undefined || filter.value === null || filter.value === '') {
21
+ return true;
22
+ }
23
+ switch (filter.comparator) {
24
+ case Table3FilterComparator.Contains:
25
+ return isWeakContains(value, filter.value);
26
+ case Table3FilterComparator.DoesNotContain:
27
+ return !isWeakContains(value, filter.value);
28
+ case Table3FilterComparator.IsEqualTo:
29
+ {
30
+ if (isDate(value)) {
31
+ return isDate(filter.value) && isWeakEqual$1(value, filter.value);
32
+ } else if (typeof filter.value === 'boolean') {
33
+ return value === filter.value;
34
+ }
35
+ return isWeakEqual(value, filter.value);
36
+ }
37
+ case Table3FilterComparator.IsNotEqualTo:
38
+ {
39
+ if (isDate(value)) {
40
+ return isDate(filter.value) && isWeakEqual$1(value, filter.value) === false;
41
+ } else if (typeof filter.value === 'boolean') {
42
+ return value !== filter.value;
43
+ }
44
+ return !isWeakEqual(value, filter.value);
45
+ }
46
+ case Table3FilterComparator.IsGreaterThan:
47
+ {
48
+ if (isDate(value)) {
49
+ return isDate(filter.value) && isAfter(value, filter.value);
50
+ } else {
51
+ const valueAsNumber = parseInt(value);
52
+ return !isNaN(valueAsNumber) && filter.value !== undefined && valueAsNumber > filter.value;
53
+ }
54
+ }
55
+ case Table3FilterComparator.IsLessThan:
56
+ {
57
+ if (isDate(value)) {
58
+ return isDate(filter.value) && isBefore(value, filter.value);
59
+ } else {
60
+ const valueAsNumber = parseInt(value);
61
+ return !isNaN(valueAsNumber) && filter.value !== undefined && valueAsNumber < filter.value;
62
+ }
63
+ }
64
+ case Table3FilterComparator.IsBetween:
65
+ {
66
+ const [fromValue, toValue] = filter.value;
67
+ if (isDate(value)) {
68
+ if (isDate(fromValue) && isBefore(value, fromValue)) {
69
+ return false;
70
+ } else if (isDate(toValue) && isAfter(value, toValue)) {
71
+ return false;
72
+ }
73
+ return true;
74
+ } else {
75
+ const valueAsNumber = parseInt(value);
76
+ if (isNaN(valueAsNumber)) {
77
+ return false;
78
+ }
79
+ if (fromValue !== undefined && valueAsNumber < fromValue) {
80
+ return false;
81
+ } else if (toValue !== undefined && valueAsNumber > toValue) {
82
+ return false;
83
+ }
84
+ return true;
85
+ }
86
+ }
87
+ case Table3FilterComparator.IsOneOf:
88
+ return Array.isArray(filter.value) ? filter.value.includes(value) : false;
89
+ case Table3FilterComparator.IsNoneOf:
90
+ return Array.isArray(filter.value) ? filter.value.includes(value) === false : false;
91
+ case Table3FilterComparator.IsAllOf:
92
+ return Array.isArray(filter.value) && Array.isArray(value) ? filter.value.filter(v => value.includes(v)).length === filter.value.length : false;
93
+ }
94
+ return false;
95
+ } catch (e) {
96
+ console.error(e);
97
+ return true;
98
+ }
99
+ }
100
+
101
+ export { columnFilterFn, globalFilterFn };
102
+ //# sourceMappingURL=filtering.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"filtering.js","sources":["../../../../../../../../src/components/Table3/util/filtering.ts"],"sourcesContent":["import { isDate, isAfter as isAfterDate, isBefore as isBeforeDate } from 'date-fns';\nimport { isWeakEqual as isWeakEqualDate } from '../../../utils/date';\nimport { Table3FilterValue, Table3FilterComparator } from '../types';\n\nconst toLowerCase = (value: string | number) => String(value ?? '').toLocaleLowerCase();\nconst isWeakContains = (left: string | number, right: string | number) => toLowerCase(left).includes(toLowerCase(right));\nconst isWeakEqual = (left: string | number, right: string | number) => toLowerCase(left) === toLowerCase(right);\n\nexport function globalFilterFn(value: string, query: string) {\n return isWeakContains(value, query);\n}\n\n// the filter type is only settable on the column definition, which would re-render all columns\n// so instead we store it in the filter value, but that means we also have to destructure that\n// before we filter - that's why this custom filter function exists\nexport function columnFilterFn(value: any, filter: Table3FilterValue) {\n try {\n if (filter.comparator === Table3FilterComparator.IsEmpty || filter.comparator === Table3FilterComparator.IsNotEmpty) {\n const isEmpty = value === undefined || value === null || value === '';\n return filter.comparator === Table3FilterComparator.IsEmpty ? isEmpty : !isEmpty;\n }\n\n if (filter.value === undefined || filter.value === null || filter.value === '') {\n return true;\n }\n\n switch (filter.comparator) {\n case Table3FilterComparator.Contains:\n return isWeakContains(value, filter.value);\n\n case Table3FilterComparator.DoesNotContain:\n return !isWeakContains(value, filter.value);\n\n case Table3FilterComparator.IsEqualTo: {\n if (isDate(value)) {\n return isDate(filter.value) && isWeakEqualDate(value, filter.value);\n } else if (typeof filter.value === 'boolean') {\n return value === filter.value;\n }\n\n return isWeakEqual(value, filter.value);\n }\n\n case Table3FilterComparator.IsNotEqualTo: {\n if (isDate(value)) {\n return isDate(filter.value) && isWeakEqualDate(value, filter.value) === false;\n } else if (typeof filter.value === 'boolean') {\n return value !== filter.value;\n }\n\n return !isWeakEqual(value, filter.value);\n }\n\n case Table3FilterComparator.IsGreaterThan: {\n if (isDate(value)) {\n return isDate(filter.value) && isAfterDate(value, filter.value);\n } else {\n const valueAsNumber = parseInt(value);\n return !isNaN(valueAsNumber) && filter.value !== undefined && valueAsNumber > filter.value;\n }\n }\n\n case Table3FilterComparator.IsLessThan: {\n if (isDate(value)) {\n return isDate(filter.value) && isBeforeDate(value, filter.value);\n } else {\n const valueAsNumber = parseInt(value);\n return !isNaN(valueAsNumber) && filter.value !== undefined && valueAsNumber < filter.value;\n }\n }\n\n case Table3FilterComparator.IsBetween: {\n const [fromValue, toValue] = filter.value;\n\n if (isDate(value)) {\n if (isDate(fromValue) && isBeforeDate(value, fromValue)) {\n return false;\n } else if (isDate(toValue) && isAfterDate(value, toValue)) {\n return false;\n }\n\n return true;\n } else {\n const valueAsNumber = parseInt(value);\n\n if (isNaN(valueAsNumber)) {\n return false;\n }\n\n if (fromValue !== undefined && valueAsNumber < fromValue) {\n return false;\n } else if (toValue !== undefined && valueAsNumber > toValue) {\n return false;\n }\n\n return true;\n }\n }\n\n case Table3FilterComparator.IsOneOf:\n return Array.isArray(filter.value) ? filter.value.includes(value) : false;\n\n case Table3FilterComparator.IsNoneOf:\n return Array.isArray(filter.value) ? filter.value.includes(value) === false : false;\n\n case Table3FilterComparator.IsAllOf:\n return Array.isArray(filter.value) && Array.isArray(value)\n ? filter.value.filter(v => value.includes(v)).length === filter.value.length\n : false;\n }\n\n return false;\n } catch (e) {\n console.error(e);\n return true;\n }\n}\n"],"names":["toLowerCase","value","String","toLocaleLowerCase","isWeakContains","left","right","includes","isWeakEqual","globalFilterFn","query","columnFilterFn","filter","comparator","Table3FilterComparator","IsEmpty","IsNotEmpty","isEmpty","undefined","Contains","DoesNotContain","IsEqualTo","isDate","isWeakEqualDate","IsNotEqualTo","IsGreaterThan","isAfterDate","valueAsNumber","parseInt","isNaN","IsLessThan","isBeforeDate","IsBetween","fromValue","toValue","IsOneOf","Array","isArray","IsNoneOf","IsAllOf","v","length","e","console","error"],"mappings":"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"}
@@ -1,14 +1,19 @@
1
1
  import React__default from 'react';
2
2
  import { createShortcutKeyDownHandler } from '../utils/keyboard.js';
3
3
 
4
- const useGlobalKeyDown = (key, handler) => {
4
+ const useGlobalKeyDown = (shortcut, handler) => {
5
5
  React__default.useEffect(() => {
6
- const handleKeyDown = createShortcutKeyDownHandler(key, handler);
7
- document.addEventListener('keydown', handleKeyDown);
6
+ let handleKeyDown;
7
+ if (shortcut) {
8
+ handleKeyDown = createShortcutKeyDownHandler(shortcut, handler);
9
+ document.addEventListener('keydown', handleKeyDown);
10
+ }
8
11
  return () => {
9
- document.removeEventListener('keydown', handleKeyDown);
12
+ if (handleKeyDown) {
13
+ document.removeEventListener('keydown', handleKeyDown);
14
+ }
10
15
  };
11
- }, [handler]);
16
+ }, [shortcut]);
12
17
  };
13
18
 
14
19
  export { useGlobalKeyDown };
@@ -1 +1 @@
1
- {"version":3,"file":"useGlobalKeyDown.js","sources":["../../../../../../src/hooks/useGlobalKeyDown.ts"],"sourcesContent":["import React from 'react';\nimport { createShortcutKeyDownHandler, KeyDownHandlerOptions } from '../utils/keyboard';\n\nexport const useGlobalKeyDown = (key: string | KeyDownHandlerOptions, handler: (event: KeyboardEvent) => void) => {\n React.useEffect(() => {\n const handleKeyDown = createShortcutKeyDownHandler(key, handler as (event: KeyboardEvent | React.KeyboardEvent) => void);\n document.addEventListener('keydown', handleKeyDown);\n\n return () => {\n document.removeEventListener('keydown', handleKeyDown);\n };\n }, [handler]);\n};\n"],"names":["useGlobalKeyDown","key","handler","React","useEffect","handleKeyDown","createShortcutKeyDownHandler","document","addEventListener","removeEventListener"],"mappings":";;;MAGaA,gBAAgB,GAAG,CAACC,GAAmC,EAAEC,OAAuC;EACzGC,cAAK,CAACC,SAAS,CAAC;IACZ,MAAMC,aAAa,GAAGC,4BAA4B,CAACL,GAAG,EAAEC,OAA+D,CAAC;IACxHK,QAAQ,CAACC,gBAAgB,CAAC,SAAS,EAAEH,aAAa,CAAC;IAEnD,OAAO;MACHE,QAAQ,CAACE,mBAAmB,CAAC,SAAS,EAAEJ,aAAa,CAAC;KACzD;GACJ,EAAE,CAACH,OAAO,CAAC,CAAC;AACjB;;;;"}
1
+ {"version":3,"file":"useGlobalKeyDown.js","sources":["../../../../../../src/hooks/useGlobalKeyDown.ts"],"sourcesContent":["import React from 'react';\nimport { createShortcutKeyDownHandler, KeyDownHandlerOptions } from '../utils/keyboard';\n\nexport const useGlobalKeyDown = (\n shortcut: string | KeyDownHandlerOptions | undefined,\n handler: (event: KeyboardEvent) => void\n) => {\n React.useEffect(() => {\n let handleKeyDown;\n\n if (shortcut) {\n handleKeyDown = createShortcutKeyDownHandler(\n shortcut,\n handler as (event: KeyboardEvent | React.KeyboardEvent) => void\n );\n\n document.addEventListener('keydown', handleKeyDown);\n }\n\n return () => {\n if (handleKeyDown) {\n document.removeEventListener('keydown', handleKeyDown);\n }\n };\n }, [shortcut]);\n};\n"],"names":["useGlobalKeyDown","shortcut","handler","React","useEffect","handleKeyDown","createShortcutKeyDownHandler","document","addEventListener","removeEventListener"],"mappings":";;;MAGaA,gBAAgB,GAAG,CAC5BC,QAAoD,EACpDC,OAAuC;EAEvCC,cAAK,CAACC,SAAS,CAAC;IACZ,IAAIC,aAAa;IAEjB,IAAIJ,QAAQ,EAAE;MACVI,aAAa,GAAGC,4BAA4B,CACxCL,QAAQ,EACRC,OAA+D,CAClE;MAEDK,QAAQ,CAACC,gBAAgB,CAAC,SAAS,EAAEH,aAAa,CAAC;;IAGvD,OAAO;MACH,IAAIA,aAAa,EAAE;QACfE,QAAQ,CAACE,mBAAmB,CAAC,SAAS,EAAEJ,aAAa,CAAC;;KAE7D;GACJ,EAAE,CAACJ,QAAQ,CAAC,CAAC;AAClB;;;;"}
@@ -0,0 +1,16 @@
1
+ import React__default from 'react';
2
+
3
+ // augments useEffect to not run on the initial mount
4
+ function useLazyEffect(effect, deps) {
5
+ const readyRef = React__default.useRef(false);
6
+ React__default.useEffect(() => {
7
+ if (readyRef.current) {
8
+ effect();
9
+ } else {
10
+ readyRef.current = true;
11
+ }
12
+ }, deps);
13
+ }
14
+
15
+ export { useLazyEffect };
16
+ //# sourceMappingURL=useLazyEffect.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useLazyEffect.js","sources":["../../../../../../src/hooks/useLazyEffect.ts"],"sourcesContent":["import React from 'react';\n\n// augments useEffect to not run on the initial mount\nexport function useLazyEffect(effect: React.EffectCallback, deps?: React.DependencyList | undefined) {\n const readyRef = React.useRef(false);\n\n React.useEffect(() => {\n if (readyRef.current) {\n effect();\n } else {\n readyRef.current = true;\n }\n }, deps);\n}\n"],"names":["useLazyEffect","effect","deps","readyRef","React","useRef","useEffect","current"],"mappings":";;AAEA;SACgBA,aAAa,CAACC,MAA4B,EAAEC,IAAuC;EAC/F,MAAMC,QAAQ,GAAGC,cAAK,CAACC,MAAM,CAAC,KAAK,CAAC;EAEpCD,cAAK,CAACE,SAAS,CAAC;IACZ,IAAIH,QAAQ,CAACI,OAAO,EAAE;MAClBN,MAAM,EAAE;KACX,MAAM;MACHE,QAAQ,CAACI,OAAO,GAAG,IAAI;;GAE9B,EAAEL,IAAI,CAAC;AACZ;;;;"}
@@ -8,8 +8,8 @@ export { AlertDialog } from './components/AlertDialog/AlertDialog.js';
8
8
  export { Accordion } from './components/Accordion/Accordion.js';
9
9
  export { VisuallyHidden } from './components/VisuallyHidden/VisuallyHidden.js';
10
10
  export { Badge } from './components/Badge/Badge.js';
11
- export { createShortcutKeyDownHandler, isMacOs } from './utils/keyboard.js';
12
11
  export { useMergedRef } from './hooks/useMergedRef.js';
12
+ export { createShortcutKeyDownHandler, isMacOs } from './utils/keyboard.js';
13
13
  export { Tooltip } from './components/Tooltip/Tooltip.js';
14
14
  export { Base, IconButton } from './components/IconButton/IconButton.js';
15
15
  export { LocalizationContext, LocalizationProvider, defaultLocalisationTexts, defaultLocalizationContext, useLocalization } from './components/Provider/Localization.js';
@@ -50,6 +50,7 @@ export { Progress } from './components/Progress/Progress.js';
50
50
  export { ToastProvider, useToast } from './components/Toast/Toaster.js';
51
51
  export { Provider } from './components/Provider/Provider.js';
52
52
  export { SearchInput } from './components/SearchInput/SearchInput.js';
53
+ export { SearchInput2 } from './components/SearchInput2/SearchInput2.js';
53
54
  import * as Collection from './primitives/Collection/Collection.js';
54
55
  export { Collection as CollectionPrimitive };
55
56
  export { Tag } from './components/Tag/Tag.js';
@@ -62,6 +63,9 @@ export { convertRowIndexPathToNumberArray, getByRowIndexPath, getParentRowIndexP
62
63
  export { insertChildTableRow, removeChildTableRow, useTableRowCreation } from './components/Table/hooks/useRowCreation.js';
63
64
  export { useBoundaryOverflowDetection } from './hooks/useBoundaryOverflowDetection.js';
64
65
  export { Table2 } from './components/Table2/Table2.js';
66
+ export { useLazyEffect } from './hooks/useLazyEffect.js';
67
+ export { useTableData } from './components/Table3/hooks/useTableData.js';
68
+ export { Table3 } from './components/Table3/Table3.js';
65
69
  export { Tabs } from './components/Tabs/Tabs.js';
66
70
  export { Textarea } from './components/Textarea/Textarea.js';
67
71
  export { Tour, TourStep } from './components/Tour/Tour.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -1,6 +1,6 @@
1
- import { forwardRef, useEffect, createElement, Children } from 'react';
2
- import { createShortcutKeyDownHandler } from '../utils/keyboard.js';
1
+ import { forwardRef, createElement, Children } from 'react';
3
2
  import { useMergedRef } from '../hooks/useMergedRef.js';
3
+ import { useGlobalKeyDown } from '../hooks/useGlobalKeyDown.js';
4
4
 
5
5
  const Button = /*#__PURE__*/forwardRef(function Button(props, ref) {
6
6
  const {
@@ -11,21 +11,10 @@ const Button = /*#__PURE__*/forwardRef(function Button(props, ref) {
11
11
  ...otherProps
12
12
  } = props;
13
13
  const internalRef = useMergedRef(ref);
14
- useEffect(() => {
15
- let handleKeyDown;
16
- if (shortcut) {
17
- handleKeyDown = createShortcutKeyDownHandler(shortcut, () => {
18
- var _internalRef$current;
19
- (_internalRef$current = internalRef.current) === null || _internalRef$current === void 0 ? void 0 : _internalRef$current.click();
20
- });
21
- document.addEventListener('keydown', handleKeyDown);
22
- }
23
- return () => {
24
- if (handleKeyDown) {
25
- document.removeEventListener('keydown', handleKeyDown);
26
- }
27
- };
28
- }, [shortcut]);
14
+ useGlobalKeyDown(shortcut, () => {
15
+ var _internalRef$current;
16
+ (_internalRef$current = internalRef.current) === null || _internalRef$current === void 0 ? void 0 : _internalRef$current.click();
17
+ });
29
18
  const Tag = props.href ? 'a' : 'button';
30
19
  return /*#__PURE__*/createElement(Tag, Object.assign({}, otherProps, {
31
20
  "aria-disabled": disabled ? 'true' : undefined,
@@ -1 +1 @@
1
- {"version":3,"file":"Button.js","sources":["../../../../../../src/primitives/Button.tsx"],"sourcesContent":["import * as React from 'react';\nimport { KeyDownHandlerOptions, createShortcutKeyDownHandler } from '../utils/keyboard';\nimport { useMergedRef } from '../hooks/useMergedRef';\n\ntype ButtonProps = React.ButtonHTMLAttributes<HTMLButtonElement | HTMLAnchorElement> & {\n /** Content should be a text */\n children: React.ReactNode;\n /** Provides url for buttons being used as a link */\n href?: string;\n shortcut?: string | KeyDownHandlerOptions;\n /** Provides target for buttons being used as a link */\n target?: '_self' | '_blank' | '_parent' | '_top';\n};\n\nconst Button = React.forwardRef(function Button(props: ButtonProps, ref: React.Ref<HTMLButtonElement | HTMLAnchorElement>) {\n const { disabled, shortcut, target, type = 'button', ...otherProps } = props;\n const internalRef = useMergedRef<HTMLButtonElement | HTMLAnchorElement>(ref);\n\n React.useEffect(() => {\n let handleKeyDown;\n\n if (shortcut) {\n handleKeyDown = createShortcutKeyDownHandler(shortcut, () => {\n internalRef.current?.click();\n });\n\n document.addEventListener('keydown', handleKeyDown);\n }\n\n return () => {\n if (handleKeyDown) {\n document.removeEventListener('keydown', handleKeyDown);\n }\n };\n }, [shortcut]);\n\n const Tag = props.href ? 'a' : 'button';\n\n return (\n <Tag\n {...otherProps}\n aria-disabled={disabled ? 'true' : undefined}\n disabled={disabled}\n target={Tag === 'a' ? target : undefined}\n type={Tag !== 'a' ? type : undefined}\n ref={internalRef as any}>\n {React.Children.count(props.children) > 1\n ? React.Children.map(props.children, child => (typeof child === 'string' ? <span>{child}</span> : child))\n : props.children}\n </Tag>\n );\n});\n\nexport { Button };\nexport type { ButtonProps };\n"],"names":["Button","React","props","ref","disabled","shortcut","target","type","otherProps","internalRef","useMergedRef","handleKeyDown","createShortcutKeyDownHandler","current","click","document","addEventListener","removeEventListener","Tag","href","undefined","count","children","map","child"],"mappings":";;;;MAcMA,MAAM,gBAAGC,UAAgB,CAAC,SAASD,MAAM,CAACE,KAAkB,EAAEC,GAAqD;EACrH,MAAM;IAAEC,QAAQ;IAAEC,QAAQ;IAAEC,MAAM;IAAEC,IAAI,GAAG,QAAQ;IAAE,GAAGC;GAAY,GAAGN,KAAK;EAC5E,MAAMO,WAAW,GAAGC,YAAY,CAAwCP,GAAG,CAAC;EAE5EF,SAAe,CAAC;IACZ,IAAIU,aAAa;IAEjB,IAAIN,QAAQ,EAAE;MACVM,aAAa,GAAGC,4BAA4B,CAACP,QAAQ,EAAE;;QACnD,wBAAAI,WAAW,CAACI,OAAO,yDAAnB,qBAAqBC,KAAK,EAAE;OAC/B,CAAC;MAEFC,QAAQ,CAACC,gBAAgB,CAAC,SAAS,EAAEL,aAAa,CAAC;;IAGvD,OAAO;MACH,IAAIA,aAAa,EAAE;QACfI,QAAQ,CAACE,mBAAmB,CAAC,SAAS,EAAEN,aAAa,CAAC;;KAE7D;GACJ,EAAE,CAACN,QAAQ,CAAC,CAAC;EAEd,MAAMa,GAAG,GAAGhB,KAAK,CAACiB,IAAI,GAAG,GAAG,GAAG,QAAQ;EAEvC,oBACIlB,cAACiB,GAAG,oBACIV,UAAU;qBACCJ,QAAQ,GAAG,MAAM,GAAGgB,SAAS;IAC5ChB,QAAQ,EAAEA,QAAQ;IAClBE,MAAM,EAAEY,GAAG,KAAK,GAAG,GAAGZ,MAAM,GAAGc,SAAS;IACxCb,IAAI,EAAEW,GAAG,KAAK,GAAG,GAAGX,IAAI,GAAGa,SAAS;IACpCjB,GAAG,EAAEM;MACJR,QAAc,CAACoB,KAAK,CAACnB,KAAK,CAACoB,QAAQ,CAAC,GAAG,CAAC,GACnCrB,QAAc,CAACsB,GAAG,CAACrB,KAAK,CAACoB,QAAQ,EAAEE,KAAK,IAAK,OAAOA,KAAK,KAAK,QAAQ,gBAAGvB,4BAAOuB,KAAK,CAAQ,GAAGA,KAAM,CAAC,GACvGtB,KAAK,CAACoB,QAAQ,CAClB;AAEd,CAAC;;;;"}
1
+ {"version":3,"file":"Button.js","sources":["../../../../../../src/primitives/Button.tsx"],"sourcesContent":["import * as React from 'react';\nimport { KeyDownHandlerOptions } from '../utils/keyboard';\nimport { useMergedRef } from '../hooks/useMergedRef';\nimport { useGlobalKeyDown } from '../hooks/useGlobalKeyDown';\n\ntype ButtonProps = React.ButtonHTMLAttributes<HTMLButtonElement | HTMLAnchorElement> & {\n /** Content should be a text */\n children: React.ReactNode;\n /** Provides url for buttons being used as a link */\n href?: string;\n shortcut?: string | KeyDownHandlerOptions;\n /** Provides target for buttons being used as a link */\n target?: '_self' | '_blank' | '_parent' | '_top';\n};\n\nconst Button = React.forwardRef(function Button(props: ButtonProps, ref: React.Ref<HTMLButtonElement | HTMLAnchorElement>) {\n const { disabled, shortcut, target, type = 'button', ...otherProps } = props;\n const internalRef = useMergedRef<HTMLButtonElement | HTMLAnchorElement>(ref);\n\n useGlobalKeyDown(shortcut, () => {\n internalRef.current?.click();\n });\n\n const Tag = props.href ? 'a' : 'button';\n\n return (\n <Tag\n {...otherProps}\n aria-disabled={disabled ? 'true' : undefined}\n disabled={disabled}\n target={Tag === 'a' ? target : undefined}\n type={Tag !== 'a' ? type : undefined}\n ref={internalRef as any}>\n {React.Children.count(props.children) > 1\n ? React.Children.map(props.children, child => (typeof child === 'string' ? <span>{child}</span> : child))\n : props.children}\n </Tag>\n );\n});\n\nexport { Button };\nexport type { ButtonProps };\n"],"names":["Button","React","props","ref","disabled","shortcut","target","type","otherProps","internalRef","useMergedRef","useGlobalKeyDown","current","click","Tag","href","undefined","count","children","map","child"],"mappings":";;;;MAeMA,MAAM,gBAAGC,UAAgB,CAAC,SAASD,MAAM,CAACE,KAAkB,EAAEC,GAAqD;EACrH,MAAM;IAAEC,QAAQ;IAAEC,QAAQ;IAAEC,MAAM;IAAEC,IAAI,GAAG,QAAQ;IAAE,GAAGC;GAAY,GAAGN,KAAK;EAC5E,MAAMO,WAAW,GAAGC,YAAY,CAAwCP,GAAG,CAAC;EAE5EQ,gBAAgB,CAACN,QAAQ,EAAE;;IACvB,wBAAAI,WAAW,CAACG,OAAO,yDAAnB,qBAAqBC,KAAK,EAAE;GAC/B,CAAC;EAEF,MAAMC,GAAG,GAAGZ,KAAK,CAACa,IAAI,GAAG,GAAG,GAAG,QAAQ;EAEvC,oBACId,cAACa,GAAG,oBACIN,UAAU;qBACCJ,QAAQ,GAAG,MAAM,GAAGY,SAAS;IAC5CZ,QAAQ,EAAEA,QAAQ;IAClBE,MAAM,EAAEQ,GAAG,KAAK,GAAG,GAAGR,MAAM,GAAGU,SAAS;IACxCT,IAAI,EAAEO,GAAG,KAAK,GAAG,GAAGP,IAAI,GAAGS,SAAS;IACpCb,GAAG,EAAEM;MACJR,QAAc,CAACgB,KAAK,CAACf,KAAK,CAACgB,QAAQ,CAAC,GAAG,CAAC,GACnCjB,QAAc,CAACkB,GAAG,CAACjB,KAAK,CAACgB,QAAQ,EAAEE,KAAK,IAAK,OAAOA,KAAK,KAAK,QAAQ,gBAAGnB,4BAAOmB,KAAK,CAAQ,GAAGA,KAAM,CAAC,GACvGlB,KAAK,CAACgB,QAAQ,CAClB;AAEd,CAAC;;;;"}
@@ -1,12 +1,12 @@
1
1
  import React__default from 'react';
2
2
 
3
+ const isTruncated = targetElement => {
4
+ if (targetElement !== null) {
5
+ return targetElement.offsetWidth < targetElement.scrollWidth;
6
+ }
7
+ return false;
8
+ };
3
9
  const useTruncated = (element, deps = []) => {
4
- const isTruncated = targetElement => {
5
- if (targetElement !== null) {
6
- return targetElement.offsetWidth < targetElement.scrollWidth;
7
- }
8
- return false;
9
- };
10
10
  const [truncated, setTruncated] = React__default.useState(isTruncated(element));
11
11
  React__default.useEffect(() => {
12
12
  setTruncated(isTruncated(element));
@@ -1 +1 @@
1
- {"version":3,"file":"useTruncated.js","sources":["../../../../../../../src/utils/hooks/useTruncated.tsx"],"sourcesContent":["import React from 'react';\n\nexport const useTruncated = (element: HTMLElement | null, deps: any[] = []) => {\n const isTruncated = (targetElement: HTMLElement | null) => {\n if (targetElement !== null) {\n return targetElement.offsetWidth < targetElement.scrollWidth;\n }\n\n return false;\n };\n const [truncated, setTruncated] = React.useState<boolean>(isTruncated(element));\n\n React.useEffect(() => {\n setTruncated(isTruncated(element));\n }, [element, ...deps]);\n\n return { truncated };\n};\n"],"names":["useTruncated","element","deps","isTruncated","targetElement","offsetWidth","scrollWidth","truncated","setTruncated","React","useState","useEffect"],"mappings":";;MAEaA,YAAY,GAAG,CAACC,OAA2B,EAAEC,OAAc,EAAE;EACtE,MAAMC,WAAW,GAAIC,aAAiC;IAClD,IAAIA,aAAa,KAAK,IAAI,EAAE;MACxB,OAAOA,aAAa,CAACC,WAAW,GAAGD,aAAa,CAACE,WAAW;;IAGhE,OAAO,KAAK;GACf;EACD,MAAM,CAACC,SAAS,EAAEC,YAAY,CAAC,GAAGC,cAAK,CAACC,QAAQ,CAAUP,WAAW,CAACF,OAAO,CAAC,CAAC;EAE/EQ,cAAK,CAACE,SAAS,CAAC;IACZH,YAAY,CAACL,WAAW,CAACF,OAAO,CAAC,CAAC;GACrC,EAAE,CAACA,OAAO,EAAE,GAAGC,IAAI,CAAC,CAAC;EAEtB,OAAO;IAAEK;GAAW;AACxB;;;;"}
1
+ {"version":3,"file":"useTruncated.js","sources":["../../../../../../../src/utils/hooks/useTruncated.tsx"],"sourcesContent":["import React from 'react';\n\nconst isTruncated = (targetElement: HTMLElement | null) => {\n if (targetElement !== null) {\n return targetElement.offsetWidth < targetElement.scrollWidth;\n }\n\n return false;\n};\n\nexport const useTruncated = (element: HTMLElement | null, deps: any[] = []) => {\n const [truncated, setTruncated] = React.useState<boolean>(isTruncated(element));\n\n React.useEffect(() => {\n setTruncated(isTruncated(element));\n }, [element, ...deps]);\n\n return { truncated };\n};\n"],"names":["isTruncated","targetElement","offsetWidth","scrollWidth","useTruncated","element","deps","truncated","setTruncated","React","useState","useEffect"],"mappings":";;AAEA,MAAMA,WAAW,GAAIC,aAAiC;EAClD,IAAIA,aAAa,KAAK,IAAI,EAAE;IACxB,OAAOA,aAAa,CAACC,WAAW,GAAGD,aAAa,CAACE,WAAW;;EAGhE,OAAO,KAAK;AAChB,CAAC;MAEYC,YAAY,GAAG,CAACC,OAA2B,EAAEC,OAAc,EAAE;EACtE,MAAM,CAACC,SAAS,EAAEC,YAAY,CAAC,GAAGC,cAAK,CAACC,QAAQ,CAAUV,WAAW,CAACK,OAAO,CAAC,CAAC;EAE/EI,cAAK,CAACE,SAAS,CAAC;IACZH,YAAY,CAACR,WAAW,CAACK,OAAO,CAAC,CAAC;GACrC,EAAE,CAACA,OAAO,EAAE,GAAGC,IAAI,CAAC,CAAC;EAEtB,OAAO;IAAEC;GAAW;AACxB;;;;"}
@@ -37,6 +37,19 @@ const setInputValueByRef = (input, value, event = 'change') => {
37
37
  // 'change' instead of 'input', see https://github.com/facebook/react/issues/11488#issuecomment-381590324
38
38
  input.dispatchEvent(createCustomEvent(event));
39
39
  };
40
+ const deselectInputValue = input => {
41
+ var _input$setSelectionRa, _input$value, _input$value2;
42
+ // input type="number" doesn't support "setSelectionRange",
43
+ // easiest way is to switch input type to text, deselect value, and switch it back to number.
44
+ const isNumber = input.type === 'number';
45
+ if (isNumber) {
46
+ input.type = 'text';
47
+ }
48
+ (_input$setSelectionRa = input.setSelectionRange) === null || _input$setSelectionRa === void 0 ? void 0 : _input$setSelectionRa.call(input, (_input$value = input.value) === null || _input$value === void 0 ? void 0 : _input$value.length, (_input$value2 = input.value) === null || _input$value2 === void 0 ? void 0 : _input$value2.length);
49
+ if (isNumber) {
50
+ input.type = 'number';
51
+ }
52
+ };
40
53
 
41
- export { createCustomEvent, createCustomKeyboardEvent, setInputValueByRef };
54
+ export { createCustomEvent, createCustomKeyboardEvent, deselectInputValue, setInputValueByRef };
42
55
  //# sourceMappingURL=input.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"input.js","sources":["../../../../../../src/utils/input.ts"],"sourcesContent":["// returns a custom event compatible with all browsers\nexport const createCustomEvent = (eventType: string) => {\n let customEvent;\n\n if (typeof Event === 'function') {\n customEvent = new Event(eventType, { bubbles: true });\n } else {\n customEvent = document.createEvent('Event');\n customEvent.initEvent(eventType, true, true);\n }\n return customEvent;\n};\n\n// returns a custom keyboard event compatible with all browsers\nexport const createCustomKeyboardEvent = (event: React.KeyboardEvent<HTMLInputElement>) => {\n let customKeyboardEvent;\n\n if (typeof KeyboardEvent === 'function') {\n customKeyboardEvent = new KeyboardEvent(event.type, event as any);\n } else {\n customKeyboardEvent = document.createEvent('Event') as any;\n customKeyboardEvent.initEvent(event.type, true, true);\n customKeyboardEvent.key = event.key;\n customKeyboardEvent.charCode = event.charCode;\n }\n\n return customKeyboardEvent;\n};\n\nexport const setInputValueByRef = (input: HTMLInputElement | null, value: string | undefined, event = 'change'): void => {\n if (!input) {\n return;\n }\n\n const previousValue = input.value;\n input.value = value || '';\n\n const tracker = (input as any)._valueTracker;\n\n if (tracker) {\n tracker.setValue(previousValue);\n }\n\n // 'change' instead of 'input', see https://github.com/facebook/react/issues/11488#issuecomment-381590324\n input.dispatchEvent(createCustomEvent(event));\n};\n"],"names":["createCustomEvent","eventType","customEvent","Event","bubbles","document","createEvent","initEvent","createCustomKeyboardEvent","event","customKeyboardEvent","KeyboardEvent","type","key","charCode","setInputValueByRef","input","value","previousValue","tracker","_valueTracker","setValue","dispatchEvent"],"mappings":"AAAA;MACaA,iBAAiB,GAAIC,SAAiB;EAC/C,IAAIC,WAAW;EAEf,IAAI,OAAOC,KAAK,KAAK,UAAU,EAAE;IAC7BD,WAAW,GAAG,IAAIC,KAAK,CAACF,SAAS,EAAE;MAAEG,OAAO,EAAE;KAAM,CAAC;GACxD,MAAM;IACHF,WAAW,GAAGG,QAAQ,CAACC,WAAW,CAAC,OAAO,CAAC;IAC3CJ,WAAW,CAACK,SAAS,CAACN,SAAS,EAAE,IAAI,EAAE,IAAI,CAAC;;EAEhD,OAAOC,WAAW;AACtB;AAEA;MACaM,yBAAyB,GAAIC,KAA4C;EAClF,IAAIC,mBAAmB;EAEvB,IAAI,OAAOC,aAAa,KAAK,UAAU,EAAE;IACrCD,mBAAmB,GAAG,IAAIC,aAAa,CAACF,KAAK,CAACG,IAAI,EAAEH,KAAY,CAAC;GACpE,MAAM;IACHC,mBAAmB,GAAGL,QAAQ,CAACC,WAAW,CAAC,OAAO,CAAQ;IAC1DI,mBAAmB,CAACH,SAAS,CAACE,KAAK,CAACG,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC;IACrDF,mBAAmB,CAACG,GAAG,GAAGJ,KAAK,CAACI,GAAG;IACnCH,mBAAmB,CAACI,QAAQ,GAAGL,KAAK,CAACK,QAAQ;;EAGjD,OAAOJ,mBAAmB;AAC9B;MAEaK,kBAAkB,GAAG,CAACC,KAA8B,EAAEC,KAAyB,EAAER,KAAK,GAAG,QAAQ;EAC1G,IAAI,CAACO,KAAK,EAAE;IACR;;EAGJ,MAAME,aAAa,GAAGF,KAAK,CAACC,KAAK;EACjCD,KAAK,CAACC,KAAK,GAAGA,KAAK,IAAI,EAAE;EAEzB,MAAME,OAAO,GAAIH,KAAa,CAACI,aAAa;EAE5C,IAAID,OAAO,EAAE;IACTA,OAAO,CAACE,QAAQ,CAACH,aAAa,CAAC;;;EAInCF,KAAK,CAACM,aAAa,CAACtB,iBAAiB,CAACS,KAAK,CAAC,CAAC;AACjD;;;;"}
1
+ {"version":3,"file":"input.js","sources":["../../../../../../src/utils/input.ts"],"sourcesContent":["// returns a custom event compatible with all browsers\nexport const createCustomEvent = (eventType: string) => {\n let customEvent;\n\n if (typeof Event === 'function') {\n customEvent = new Event(eventType, { bubbles: true });\n } else {\n customEvent = document.createEvent('Event');\n customEvent.initEvent(eventType, true, true);\n }\n return customEvent;\n};\n\n// returns a custom keyboard event compatible with all browsers\nexport const createCustomKeyboardEvent = (event: React.KeyboardEvent<HTMLInputElement>) => {\n let customKeyboardEvent;\n\n if (typeof KeyboardEvent === 'function') {\n customKeyboardEvent = new KeyboardEvent(event.type, event as any);\n } else {\n customKeyboardEvent = document.createEvent('Event') as any;\n customKeyboardEvent.initEvent(event.type, true, true);\n customKeyboardEvent.key = event.key;\n customKeyboardEvent.charCode = event.charCode;\n }\n\n return customKeyboardEvent;\n};\n\nexport const setInputValueByRef = (input: HTMLInputElement | null, value: string | undefined, event = 'change'): void => {\n if (!input) {\n return;\n }\n\n const previousValue = input.value;\n input.value = value || '';\n\n const tracker = (input as any)._valueTracker;\n\n if (tracker) {\n tracker.setValue(previousValue);\n }\n\n // 'change' instead of 'input', see https://github.com/facebook/react/issues/11488#issuecomment-381590324\n input.dispatchEvent(createCustomEvent(event));\n};\n\nexport const deselectInputValue = (input: HTMLInputElement) => {\n // input type=\"number\" doesn't support \"setSelectionRange\",\n // easiest way is to switch input type to text, deselect value, and switch it back to number.\n const isNumber = input.type === 'number';\n if (isNumber) {\n input.type = 'text';\n }\n input.setSelectionRange?.(input.value?.length, input.value?.length);\n if (isNumber) {\n input.type = 'number';\n }\n};\n"],"names":["createCustomEvent","eventType","customEvent","Event","bubbles","document","createEvent","initEvent","createCustomKeyboardEvent","event","customKeyboardEvent","KeyboardEvent","type","key","charCode","setInputValueByRef","input","value","previousValue","tracker","_valueTracker","setValue","dispatchEvent","deselectInputValue","isNumber","setSelectionRange","length"],"mappings":"AAAA;MACaA,iBAAiB,GAAIC,SAAiB;EAC/C,IAAIC,WAAW;EAEf,IAAI,OAAOC,KAAK,KAAK,UAAU,EAAE;IAC7BD,WAAW,GAAG,IAAIC,KAAK,CAACF,SAAS,EAAE;MAAEG,OAAO,EAAE;KAAM,CAAC;GACxD,MAAM;IACHF,WAAW,GAAGG,QAAQ,CAACC,WAAW,CAAC,OAAO,CAAC;IAC3CJ,WAAW,CAACK,SAAS,CAACN,SAAS,EAAE,IAAI,EAAE,IAAI,CAAC;;EAEhD,OAAOC,WAAW;AACtB;AAEA;MACaM,yBAAyB,GAAIC,KAA4C;EAClF,IAAIC,mBAAmB;EAEvB,IAAI,OAAOC,aAAa,KAAK,UAAU,EAAE;IACrCD,mBAAmB,GAAG,IAAIC,aAAa,CAACF,KAAK,CAACG,IAAI,EAAEH,KAAY,CAAC;GACpE,MAAM;IACHC,mBAAmB,GAAGL,QAAQ,CAACC,WAAW,CAAC,OAAO,CAAQ;IAC1DI,mBAAmB,CAACH,SAAS,CAACE,KAAK,CAACG,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC;IACrDF,mBAAmB,CAACG,GAAG,GAAGJ,KAAK,CAACI,GAAG;IACnCH,mBAAmB,CAACI,QAAQ,GAAGL,KAAK,CAACK,QAAQ;;EAGjD,OAAOJ,mBAAmB;AAC9B;MAEaK,kBAAkB,GAAG,CAACC,KAA8B,EAAEC,KAAyB,EAAER,KAAK,GAAG,QAAQ;EAC1G,IAAI,CAACO,KAAK,EAAE;IACR;;EAGJ,MAAME,aAAa,GAAGF,KAAK,CAACC,KAAK;EACjCD,KAAK,CAACC,KAAK,GAAGA,KAAK,IAAI,EAAE;EAEzB,MAAME,OAAO,GAAIH,KAAa,CAACI,aAAa;EAE5C,IAAID,OAAO,EAAE;IACTA,OAAO,CAACE,QAAQ,CAACH,aAAa,CAAC;;;EAInCF,KAAK,CAACM,aAAa,CAACtB,iBAAiB,CAACS,KAAK,CAAC,CAAC;AACjD;MAEac,kBAAkB,GAAIP,KAAuB;;;;EAGtD,MAAMQ,QAAQ,GAAGR,KAAK,CAACJ,IAAI,KAAK,QAAQ;EACxC,IAAIY,QAAQ,EAAE;IACVR,KAAK,CAACJ,IAAI,GAAG,MAAM;;EAEvB,yBAAAI,KAAK,CAACS,iBAAiB,0DAAvB,2BAAAT,KAAK,kBAAqBA,KAAK,CAACC,KAAK,iDAAX,aAAaS,MAAM,mBAAEV,KAAK,CAACC,KAAK,kDAAX,cAAaS,MAAM,CAAC;EACnE,IAAIF,QAAQ,EAAE;IACVR,KAAK,CAACJ,IAAI,GAAG,QAAQ;;AAE7B;;;;"}
@@ -1,2 +1,2 @@
1
1
  import { KeyDownHandlerOptions } from '../utils/keyboard';
2
- export declare const useGlobalKeyDown: (key: string | KeyDownHandlerOptions, handler: (event: KeyboardEvent) => void) => void;
2
+ export declare const useGlobalKeyDown: (shortcut: string | KeyDownHandlerOptions | undefined, handler: (event: KeyboardEvent) => void) => void;
@@ -0,0 +1,2 @@
1
+ import React from 'react';
2
+ export declare function useLazyEffect(effect: React.EffectCallback, deps?: React.DependencyList | undefined): void;