@rio-cloud/rio-uikit 2.2.0 → 2.3.0-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (412) hide show
  1. package/AnalyticsAnalysisOverlay.d.ts +1 -0
  2. package/AnalyticsAnalysisOverlay.js +5 -0
  3. package/AnalyticsAnalysisOverlay.js.map +1 -0
  4. package/Table.d.ts +2 -0
  5. package/Table.js +23 -0
  6. package/Table.js.map +1 -0
  7. package/TableCol.d.ts +2 -2
  8. package/TableCol.js +1 -1
  9. package/TableHead.d.ts +2 -2
  10. package/TableHead.js +1 -1
  11. package/TableSettingsDialog.d.ts +2 -2
  12. package/TableSettingsDialog.js +1 -1
  13. package/TableToolbar.js +3 -2
  14. package/analyticsAnalysisUtils.d.ts +1 -0
  15. package/analyticsAnalysisUtils.js +13 -0
  16. package/analyticsAnalysisUtils.js.map +1 -0
  17. package/components/analyticsAnalysisOverlay/AnalyticsAnalysisBanner.d.ts +18 -0
  18. package/components/analyticsAnalysisOverlay/AnalyticsAnalysisBanner.js +128 -0
  19. package/components/analyticsAnalysisOverlay/AnalyticsAnalysisBanner.js.map +1 -0
  20. package/components/analyticsAnalysisOverlay/AnalyticsAnalysisOverlay.d.ts +9 -0
  21. package/components/analyticsAnalysisOverlay/AnalyticsAnalysisOverlay.js +73 -0
  22. package/components/analyticsAnalysisOverlay/AnalyticsAnalysisOverlay.js.map +1 -0
  23. package/components/applicationHeader/AppMenuContent.js.map +1 -1
  24. package/components/applicationHeader/ApplicationActionBar.js +4 -4
  25. package/components/applicationHeader/ApplicationActionBar.js.map +1 -1
  26. package/components/applicationHeader/CollapsedNavItem.js +5 -14
  27. package/components/applicationHeader/CollapsedNavItem.js.map +1 -1
  28. package/components/applicationHeader/NavItems.js +10 -10
  29. package/components/applicationHeader/NavItems.js.map +1 -1
  30. package/components/assetTree/AssetTree.js +23 -23
  31. package/components/assetTree/AssetTree.js.map +1 -1
  32. package/components/assetTree/TreeNothingFound.js +2 -2
  33. package/components/assetTree/TreeNothingFound.js.map +1 -1
  34. package/components/assetTree/treeUtils.js.map +1 -1
  35. package/components/autosuggest/AutoSuggest.js +31 -31
  36. package/components/autosuggest/AutoSuggest.js.map +1 -1
  37. package/components/autosuggest/AutoSuggestAddons.js +9 -9
  38. package/components/autosuggest/AutoSuggestAddons.js.map +1 -1
  39. package/components/banner/BannerActions.js +2 -2
  40. package/components/banner/BannerActions.js.map +1 -1
  41. package/components/banner/BannerIcon.js +3 -3
  42. package/components/banner/BannerIcon.js.map +1 -1
  43. package/components/banner/BannerPage.js +4 -4
  44. package/components/banner/BannerPage.js.map +1 -1
  45. package/components/button/Button.d.ts +7 -0
  46. package/components/button/Button.js +73 -65
  47. package/components/button/Button.js.map +1 -1
  48. package/components/checkbox/Checkbox.js +18 -17
  49. package/components/checkbox/Checkbox.js.map +1 -1
  50. package/components/datepicker/DateRangePicker.js +0 -2
  51. package/components/datepicker/DateRangePicker.js.map +1 -1
  52. package/components/datepicker/DayPicker.js +16 -16
  53. package/components/datepicker/DayPicker.js.map +1 -1
  54. package/components/dialog/Dialog.js.map +1 -1
  55. package/components/dialog/DialogHeader.js +23 -20
  56. package/components/dialog/DialogHeader.js.map +1 -1
  57. package/components/dialog/MediaDialog.js +1 -1
  58. package/components/dialog/MediaDialog.js.map +1 -1
  59. package/components/editableContent/EditableContent.js +7 -7
  60. package/components/editableContent/EditableContent.js.map +1 -1
  61. package/components/expander/ExpanderList.d.ts +5 -0
  62. package/components/expander/ExpanderList.js +25 -16
  63. package/components/expander/ExpanderList.js.map +1 -1
  64. package/components/expander/ExpanderPanel.d.ts +5 -0
  65. package/components/expander/ExpanderPanel.js +29 -28
  66. package/components/expander/ExpanderPanel.js.map +1 -1
  67. package/components/fade/FadeExpander.js +1 -1
  68. package/components/fade/FadeExpander.js.map +1 -1
  69. package/components/filepicker/FilePicker.js.map +1 -1
  70. package/components/loadMore/LoadMoreButton.d.ts +5 -0
  71. package/components/loadMore/LoadMoreButton.js +33 -29
  72. package/components/loadMore/LoadMoreButton.js.map +1 -1
  73. package/components/map/components/features/ContextMenu.js +13 -13
  74. package/components/map/components/features/ContextMenu.js.map +1 -1
  75. package/components/map/components/features/basics/InfoBubble.js.map +1 -1
  76. package/components/map/components/features/settings/MapSettingsTile.js.map +1 -1
  77. package/components/map/components/features/settings/builtinSettings/MapTypeSettings.js +6 -6
  78. package/components/map/components/features/settings/builtinSettings/MapTypeSettings.js.map +1 -1
  79. package/components/map/utils/eventHandling.js +18 -18
  80. package/components/map/utils/eventHandling.js.map +1 -1
  81. package/components/map/utils/positions.d.ts +1 -1
  82. package/components/map/utils/positions.js +15 -12
  83. package/components/map/utils/positions.js.map +1 -1
  84. package/components/map/utils/rendering.d.ts +1 -1
  85. package/components/menuItems/MenuItems.js +6 -6
  86. package/components/menuItems/MenuItems.js.map +1 -1
  87. package/components/notification/NotificationsContainer.js.map +1 -1
  88. package/components/numberInput/NumberInput.js +57 -56
  89. package/components/numberInput/NumberInput.js.map +1 -1
  90. package/components/popover/Popover.js +4 -4
  91. package/components/popover/Popover.js.map +1 -1
  92. package/components/resizer/Resizer.js +6 -3
  93. package/components/resizer/Resizer.js.map +1 -1
  94. package/components/selects/BaseSelectDropdown.js +34 -32
  95. package/components/selects/BaseSelectDropdown.js.map +1 -1
  96. package/components/selects/MultiselectTogglePlaceholder.js.map +1 -1
  97. package/components/selects/MultiselectToggleSelection.js +11 -11
  98. package/components/selects/MultiselectToggleSelection.js.map +1 -1
  99. package/components/sidebars/Sidebar.js +12 -12
  100. package/components/sidebars/Sidebar.js.map +1 -1
  101. package/components/sidebars/SidebarCloseButton.js +2 -2
  102. package/components/sidebars/SidebarCloseButton.js.map +1 -1
  103. package/components/smoothScrollbars/SmoothScrollbars.d.ts +4 -3
  104. package/components/smoothScrollbars/SmoothScrollbars.js +11 -11
  105. package/components/smoothScrollbars/SmoothScrollbars.js.map +1 -1
  106. package/components/states/CustomState.js.map +1 -1
  107. package/components/svgImage/svgConverter.js.map +1 -1
  108. package/components/table/Table.d.ts +267 -0
  109. package/components/table/Table.js +233 -0
  110. package/components/table/Table.js.map +1 -0
  111. package/components/table/Table.types.d.ts +207 -0
  112. package/components/table/TableBody.d.ts +10 -0
  113. package/components/table/TableBody.js +5 -0
  114. package/components/table/TableBody.js.map +1 -0
  115. package/components/table/TableCard.d.ts +63 -0
  116. package/components/table/TableCard.js +150 -0
  117. package/components/table/TableCard.js.map +1 -0
  118. package/components/table/TableColumn.d.ts +47 -0
  119. package/components/table/TableColumn.js +5 -0
  120. package/components/table/TableColumn.js.map +1 -0
  121. package/components/table/TableExpandedContentRow.d.ts +22 -0
  122. package/components/table/TableExpandedContentRow.js +5 -0
  123. package/components/table/TableExpandedContentRow.js.map +1 -0
  124. package/components/table/TableExpandedRow.d.ts +17 -0
  125. package/components/table/TableExpandedRow.js +5 -0
  126. package/components/table/TableExpandedRow.js.map +1 -0
  127. package/components/table/TableExpanderButton.d.ts +25 -0
  128. package/components/table/TableExpanderButton.js +22 -0
  129. package/components/table/TableExpanderButton.js.map +1 -0
  130. package/components/table/TableFooter.d.ts +13 -0
  131. package/components/table/TableFooter.js +5 -0
  132. package/components/table/TableFooter.js.map +1 -0
  133. package/components/table/TableGroupFooterRow.d.ts +18 -0
  134. package/components/table/TableGroupFooterRow.js +5 -0
  135. package/components/table/TableGroupFooterRow.js.map +1 -0
  136. package/components/table/TableGroupRow.d.ts +24 -0
  137. package/components/table/TableGroupRow.js +5 -0
  138. package/components/table/TableGroupRow.js.map +1 -0
  139. package/components/table/TableHeader.d.ts +9 -0
  140. package/components/table/TableHeader.js +5 -0
  141. package/components/table/TableHeader.js.map +1 -0
  142. package/components/table/TableHeaderColumn.d.ts +70 -0
  143. package/components/table/TableHeaderColumn.js +5 -0
  144. package/components/table/TableHeaderColumn.js.map +1 -0
  145. package/components/table/TableHeaderRow.d.ts +9 -0
  146. package/components/table/TableHeaderRow.js +5 -0
  147. package/components/table/TableHeaderRow.js.map +1 -0
  148. package/components/table/TableRow.d.ts +19 -0
  149. package/components/table/TableRow.js +5 -0
  150. package/components/table/TableRow.js.map +1 -0
  151. package/components/table/TableSpacerRow.d.ts +12 -0
  152. package/components/table/TableSpacerRow.js +5 -0
  153. package/components/table/TableSpacerRow.js.map +1 -0
  154. package/components/table/TableToolbar.d.ts +23 -1
  155. package/components/table/TableToolbar.js +38 -4
  156. package/components/table/TableToolbar.js.map +1 -1
  157. package/components/table/TableViewToggles.d.ts +18 -0
  158. package/components/table/TableViewToggles.js +59 -87
  159. package/components/table/TableViewToggles.js.map +1 -1
  160. package/components/table/layout/columnSizing.d.ts +3 -0
  161. package/components/table/layout/columnSizing.js +23 -0
  162. package/components/table/layout/columnSizing.js.map +1 -0
  163. package/components/table/layout/useDraggableColumns.d.ts +14 -0
  164. package/components/table/layout/useDraggableColumns.js +47 -0
  165. package/components/table/layout/useDraggableColumns.js.map +1 -0
  166. package/components/table/layout/useHorizontalSectionSync.d.ts +11 -0
  167. package/components/table/layout/useHorizontalSectionSync.js +39 -0
  168. package/components/table/layout/useHorizontalSectionSync.js.map +1 -0
  169. package/components/table/layout/useMeasuredColumnMaxWidths.d.ts +12 -0
  170. package/components/table/layout/useMeasuredColumnMaxWidths.js +85 -0
  171. package/components/table/layout/useMeasuredColumnMaxWidths.js.map +1 -0
  172. package/components/table/layout/useResizableColumns.d.ts +14 -0
  173. package/components/table/layout/useResizableColumns.js +91 -0
  174. package/components/table/layout/useResizableColumns.js.map +1 -0
  175. package/components/table/layout/useTableLayout.d.ts +25 -0
  176. package/components/table/layout/useTableLayout.js +56 -0
  177. package/components/table/layout/useTableLayout.js.map +1 -0
  178. package/components/table/layout/useTableVirtualization.d.ts +22 -0
  179. package/components/table/layout/useTableVirtualization.js +125 -0
  180. package/components/table/layout/useTableVirtualization.js.map +1 -0
  181. package/components/table/model/buildTableViewModel.d.ts +28 -0
  182. package/components/table/model/buildTableViewModel.js +221 -0
  183. package/components/table/model/buildTableViewModel.js.map +1 -0
  184. package/components/table/model/resolveCellContent.d.ts +2 -0
  185. package/components/table/model/resolveCellContent.js +5 -0
  186. package/components/table/model/resolveCellContent.js.map +1 -0
  187. package/components/table/model/resolveRowMeta.d.ts +2 -0
  188. package/components/table/model/resolveRowMeta.js +15 -0
  189. package/components/table/model/resolveRowMeta.js.map +1 -0
  190. package/components/table/model/resolveTableClassConfig.d.ts +48 -0
  191. package/components/table/model/resolveTableClassConfig.js +64 -0
  192. package/components/table/model/resolveTableClassConfig.js.map +1 -0
  193. package/components/table/model/tableViewModel.types.d.ts +153 -0
  194. package/components/table/native/TableCol.js.map +1 -0
  195. package/components/table/{TableHead.js → native/TableHead.js} +2 -2
  196. package/components/table/native/TableHead.js.map +1 -0
  197. package/components/table/native/TableSettingsColumnButtons.js +59 -0
  198. package/components/table/native/TableSettingsColumnButtons.js.map +1 -0
  199. package/components/table/{TableSettingsColumnDetails.js → native/TableSettingsColumnDetails.js} +2 -2
  200. package/components/table/native/TableSettingsColumnDetails.js.map +1 -0
  201. package/components/table/{TableSettingsDialog.d.ts → native/TableSettingsDialog.d.ts} +2 -3
  202. package/components/table/native/TableSettingsDialog.js +216 -0
  203. package/components/table/native/TableSettingsDialog.js.map +1 -0
  204. package/components/table/{TableSettingsDialogFooter.js → native/TableSettingsDialogFooter.js} +2 -2
  205. package/components/table/native/TableSettingsDialogFooter.js.map +1 -0
  206. package/components/table/{TableSettingsListContainer.js → native/TableSettingsListContainer.js} +8 -8
  207. package/components/table/native/TableSettingsListContainer.js.map +1 -0
  208. package/components/table/native/TableSettingsListItem.js +100 -0
  209. package/components/table/native/TableSettingsListItem.js.map +1 -0
  210. package/components/table/parse/parseBody.d.ts +3 -0
  211. package/components/table/parse/parseBody.js +13 -0
  212. package/components/table/parse/parseBody.js.map +1 -0
  213. package/components/table/parse/parseColumns.d.ts +3 -0
  214. package/components/table/parse/parseColumns.js +81 -0
  215. package/components/table/parse/parseColumns.js.map +1 -0
  216. package/components/table/parse/parseFooter.d.ts +3 -0
  217. package/components/table/parse/parseFooter.js +39 -0
  218. package/components/table/parse/parseFooter.js.map +1 -0
  219. package/components/table/parse/parseHeaders.d.ts +4 -0
  220. package/components/table/parse/parseHeaders.js +89 -0
  221. package/components/table/parse/parseHeaders.js.map +1 -0
  222. package/components/table/parse/parseRows.d.ts +3 -0
  223. package/components/table/parse/parseRows.js +93 -0
  224. package/components/table/parse/parseRows.js.map +1 -0
  225. package/components/table/parse/tableChildGuards.d.ts +25 -0
  226. package/components/table/parse/tableChildGuards.js +29 -0
  227. package/components/table/parse/tableChildGuards.js.map +1 -0
  228. package/components/table/render/body/TableBodyRow.d.ts +16 -0
  229. package/components/table/render/body/TableBodyRow.js +84 -0
  230. package/components/table/render/body/TableBodyRow.js.map +1 -0
  231. package/components/table/render/body/TableBodySection.d.ts +20 -0
  232. package/components/table/render/body/TableBodySection.js +68 -0
  233. package/components/table/render/body/TableBodySection.js.map +1 -0
  234. package/components/table/render/body/TableDataRow.d.ts +15 -0
  235. package/components/table/render/body/TableDataRow.js +143 -0
  236. package/components/table/render/body/TableDataRow.js.map +1 -0
  237. package/components/table/render/body/TableEmptyRow.d.ts +7 -0
  238. package/components/table/render/body/TableEmptyRow.js +6 -0
  239. package/components/table/render/body/TableEmptyRow.js.map +1 -0
  240. package/components/table/render/body/TableExpandedRow.d.ts +8 -0
  241. package/components/table/render/body/TableExpandedRow.js +84 -0
  242. package/components/table/render/body/TableExpandedRow.js.map +1 -0
  243. package/components/table/render/body/TableGroupRow.d.ts +8 -0
  244. package/components/table/render/body/TableGroupRow.js +21 -0
  245. package/components/table/render/body/TableGroupRow.js.map +1 -0
  246. package/components/table/render/body/TableSpacerRow.d.ts +7 -0
  247. package/components/table/render/body/TableSpacerRow.js +15 -0
  248. package/components/table/render/body/TableSpacerRow.js.map +1 -0
  249. package/components/table/render/footer/TableFooterCell.d.ts +8 -0
  250. package/components/table/render/footer/TableFooterCell.js +31 -0
  251. package/components/table/render/footer/TableFooterCell.js.map +1 -0
  252. package/components/table/render/footer/TableFooterContent.d.ts +6 -0
  253. package/components/table/render/footer/TableFooterContent.js +6 -0
  254. package/components/table/render/footer/TableFooterContent.js.map +1 -0
  255. package/components/table/render/footer/TableFooterSection.d.ts +10 -0
  256. package/components/table/render/footer/TableFooterSection.js +28 -0
  257. package/components/table/render/footer/TableFooterSection.js.map +1 -0
  258. package/components/table/render/header/TableBatchDropdown.d.ts +9 -0
  259. package/components/table/render/header/TableBatchDropdown.js +28 -0
  260. package/components/table/render/header/TableBatchDropdown.js.map +1 -0
  261. package/components/table/render/header/TableColumnFilter.d.ts +66 -0
  262. package/components/table/render/header/TableColumnFilter.js +70 -0
  263. package/components/table/render/header/TableColumnFilter.js.map +1 -0
  264. package/components/table/render/header/TableDraggableHeaderCell.d.ts +3 -0
  265. package/components/table/render/header/TableDraggableHeaderCell.js +54 -0
  266. package/components/table/render/header/TableDraggableHeaderCell.js.map +1 -0
  267. package/components/table/render/header/TableHeader.types.d.ts +35 -0
  268. package/components/table/render/header/TableHeaderCellContent.d.ts +3 -0
  269. package/components/table/render/header/TableHeaderCellContent.js +57 -0
  270. package/components/table/render/header/TableHeaderCellContent.js.map +1 -0
  271. package/components/table/render/header/TableHeaderCellResizeHandle.d.ts +3 -0
  272. package/components/table/render/header/TableHeaderCellResizeHandle.js +22 -0
  273. package/components/table/render/header/TableHeaderCellResizeHandle.js.map +1 -0
  274. package/components/table/render/header/TableHeaderDragOverlay.d.ts +13 -0
  275. package/components/table/render/header/TableHeaderDragOverlay.js +35 -0
  276. package/components/table/render/header/TableHeaderDragOverlay.js.map +1 -0
  277. package/components/table/render/header/TableHeaderSection.d.ts +3 -0
  278. package/components/table/render/header/TableHeaderSection.js +104 -0
  279. package/components/table/render/header/TableHeaderSection.js.map +1 -0
  280. package/components/table/render/header/TableHeaderSelectionCell.d.ts +9 -0
  281. package/components/table/render/header/TableHeaderSelectionCell.js +41 -0
  282. package/components/table/render/header/TableHeaderSelectionCell.js.map +1 -0
  283. package/components/table/render/header/TableStaticHeaderCell.d.ts +3 -0
  284. package/components/table/render/header/TableStaticHeaderCell.js +36 -0
  285. package/components/table/render/header/TableStaticHeaderCell.js.map +1 -0
  286. package/components/table/render/header/resolveAriaSort.d.ts +2 -0
  287. package/components/table/render/header/resolveAriaSort.js +8 -0
  288. package/components/table/render/header/resolveAriaSort.js.map +1 -0
  289. package/components/table/render/header/resolveColumnCollisionDetection.d.ts +2 -0
  290. package/components/table/render/header/resolveColumnCollisionDetection.js +9 -0
  291. package/components/table/render/header/resolveColumnCollisionDetection.js.map +1 -0
  292. package/components/table/render/header/resolveHeaderCellClassName.d.ts +10 -0
  293. package/components/table/render/header/resolveHeaderCellClassName.js +22 -0
  294. package/components/table/render/header/resolveHeaderCellClassName.js.map +1 -0
  295. package/components/table/render/header/resolveHeaderCellStyle.d.ts +829 -0
  296. package/components/table/render/header/resolveHeaderCellStyle.js +9 -0
  297. package/components/table/render/header/resolveHeaderCellStyle.js.map +1 -0
  298. package/components/table/selection/useTableSelection.d.ts +82 -0
  299. package/components/table/selection/useTableSelection.js +35 -0
  300. package/components/table/selection/useTableSelection.js.map +1 -0
  301. package/components/table/settings/TableColumnsDropdown.d.ts +90 -0
  302. package/components/table/settings/TableColumnsDropdown.js +137 -0
  303. package/components/table/settings/TableColumnsDropdown.js.map +1 -0
  304. package/components/table/settings/TableColumnsDropdownItem.d.ts +8 -0
  305. package/components/table/settings/TableColumnsDropdownItem.js +66 -0
  306. package/components/table/settings/TableColumnsDropdownItem.js.map +1 -0
  307. package/components/table/shared/getAlignClassName.d.ts +3 -0
  308. package/components/table/shared/getAlignClassName.js +6 -0
  309. package/components/table/shared/getAlignClassName.js.map +1 -0
  310. package/components/table/shared/getInteractiveRowProps.d.ts +14 -0
  311. package/components/table/shared/getInteractiveRowProps.js +15 -0
  312. package/components/table/shared/getInteractiveRowProps.js.map +1 -0
  313. package/components/table/shared/resolveTableAria.d.ts +2 -0
  314. package/components/table/shared/resolveTableAria.js +6 -0
  315. package/components/table/shared/resolveTableAria.js.map +1 -0
  316. package/components/table/tableSizing.constants.d.ts +4 -0
  317. package/components/table/tableSizing.constants.js +8 -0
  318. package/components/table/tableSizing.constants.js.map +1 -0
  319. package/components/teaser/TeaserContainer.js +3 -3
  320. package/components/teaser/TeaserContainer.js.map +1 -1
  321. package/components/virtualList/VirtualList.js +16 -13
  322. package/components/virtualList/VirtualList.js.map +1 -1
  323. package/googleAnalyticsUtils.d.ts +1 -0
  324. package/googleAnalyticsUtils.js +9 -0
  325. package/googleAnalyticsUtils.js.map +1 -0
  326. package/hooks/useCookies.js +17 -17
  327. package/hooks/useCookies.js.map +1 -1
  328. package/hooks/useDraggableElement.d.ts +35 -0
  329. package/hooks/useDraggableElement.js +49 -0
  330. package/hooks/useDraggableElement.js.map +1 -0
  331. package/hooks/useElapsedTime.js +4 -4
  332. package/hooks/useElapsedTime.js.map +1 -1
  333. package/hooks/useLocationSuggestions.js +13 -10
  334. package/hooks/useLocationSuggestions.js.map +1 -1
  335. package/hooks/useMergeRefs.js +12 -12
  336. package/hooks/useMergeRefs.js.map +1 -1
  337. package/hooks/usePrevious.d.ts +1 -1
  338. package/hooks/usePrevious.js.map +1 -1
  339. package/hooks/useResizeObserver.js +25 -10
  340. package/hooks/useResizeObserver.js.map +1 -1
  341. package/hooks/useRioCookieConsent.js +7 -4
  342. package/hooks/useRioCookieConsent.js.map +1 -1
  343. package/hooks/useSorting.js +10 -10
  344. package/hooks/useSorting.js.map +1 -1
  345. package/hooks/useStorage.js +12 -12
  346. package/hooks/useStorage.js.map +1 -1
  347. package/hooks/useSum.js +10 -7
  348. package/hooks/useSum.js.map +1 -1
  349. package/hooks/useTableSelection.js.map +1 -1
  350. package/hooks/useTimeout.js +6 -3
  351. package/hooks/useTimeout.js.map +1 -1
  352. package/package.json +3 -3
  353. package/routeUtils.js +12 -10
  354. package/utils/analytics/analyticsAnalysisUtils.d.ts +27 -0
  355. package/utils/analytics/analyticsAnalysisUtils.js +161 -0
  356. package/utils/analytics/analyticsAnalysisUtils.js.map +1 -0
  357. package/utils/analytics/autoTracking.d.ts +14 -0
  358. package/utils/analytics/autoTracking.js +19 -0
  359. package/utils/analytics/autoTracking.js.map +1 -0
  360. package/utils/analytics/createAnalyticsOverlayTooltip.d.ts +36 -0
  361. package/utils/analytics/createAnalyticsOverlayTooltip.js +203 -0
  362. package/utils/analytics/createAnalyticsOverlayTooltip.js.map +1 -0
  363. package/utils/analytics/googleAnalyticsUtils.d.ts +37 -0
  364. package/utils/analytics/googleAnalyticsUtils.js +37 -0
  365. package/utils/analytics/googleAnalyticsUtils.js.map +1 -0
  366. package/utils/analytics/logAnalyticsOverlayUnmatchedEntries.d.ts +8 -0
  367. package/utils/analytics/logAnalyticsOverlayUnmatchedEntries.js +61 -0
  368. package/utils/analytics/logAnalyticsOverlayUnmatchedEntries.js.map +1 -0
  369. package/utils/analytics/useAnalyticsOverlayDom.d.ts +11 -0
  370. package/utils/analytics/useAnalyticsOverlayDom.js +120 -0
  371. package/utils/analytics/useAnalyticsOverlayDom.js.map +1 -0
  372. package/utils/arrayMove.js +11 -0
  373. package/utils/arrayMove.js.map +1 -0
  374. package/utils/cssuseragent.js +2 -2
  375. package/utils/cssuseragent.js.map +1 -1
  376. package/utils/deviceUtils.js.map +1 -1
  377. package/utils/formatUtils.js.map +1 -1
  378. package/utils/hasUtilityClass.js +3 -3
  379. package/utils/hasUtilityClass.js.map +1 -1
  380. package/utils/hidePiiData.js.map +1 -1
  381. package/utils/init/checkForReleaseVersion.js +4 -4
  382. package/utils/init/checkForReleaseVersion.js.map +1 -1
  383. package/utils/init/styledLogs.js.map +1 -1
  384. package/utils/mergeRefs.js +3 -3
  385. package/utils/mergeRefs.js.map +1 -1
  386. package/utils/routeUtils.d.ts +32 -1
  387. package/utils/routeUtils.js +85 -67
  388. package/utils/routeUtils.js.map +1 -1
  389. package/utils/storageUtils.js +9 -9
  390. package/utils/storageUtils.js.map +1 -1
  391. package/version.d.ts +1 -1
  392. package/version.js +2 -2
  393. package/version.js.map +1 -1
  394. package/components/table/TableCol.js.map +0 -1
  395. package/components/table/TableHead.js.map +0 -1
  396. package/components/table/TableSettingsColumnButtons.js +0 -45
  397. package/components/table/TableSettingsColumnButtons.js.map +0 -1
  398. package/components/table/TableSettingsColumnDetails.js.map +0 -1
  399. package/components/table/TableSettingsDialog.js +0 -208
  400. package/components/table/TableSettingsDialog.js.map +0 -1
  401. package/components/table/TableSettingsDialogFooter.js.map +0 -1
  402. package/components/table/TableSettingsListContainer.js.map +0 -1
  403. package/components/table/TableSettingsListItem.js +0 -96
  404. package/components/table/TableSettingsListItem.js.map +0 -1
  405. /package/components/table/{TableCol.d.ts → native/TableCol.d.ts} +0 -0
  406. /package/components/table/{TableCol.js → native/TableCol.js} +0 -0
  407. /package/components/table/{TableHead.d.ts → native/TableHead.d.ts} +0 -0
  408. /package/components/table/{TableSettingsColumnButtons.d.ts → native/TableSettingsColumnButtons.d.ts} +0 -0
  409. /package/components/table/{TableSettingsColumnDetails.d.ts → native/TableSettingsColumnDetails.d.ts} +0 -0
  410. /package/components/table/{TableSettingsDialogFooter.d.ts → native/TableSettingsDialogFooter.d.ts} +0 -0
  411. /package/components/table/{TableSettingsListContainer.d.ts → native/TableSettingsListContainer.d.ts} +0 -0
  412. /package/components/table/{TableSettingsListItem.d.ts → native/TableSettingsListItem.d.ts} +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useResizableColumns.js","sources":["../../../../src/components/table/layout/useResizableColumns.ts"],"sourcesContent":["import { useEffect, useState, type PointerEvent as ReactPointerEvent } from 'react';\n\nimport type { TableColumnDefinition } from '../Table.types';\nimport {\n DEFAULT_MAX_RESIZE_WIDTH_PX,\n DEFAULT_MIN_RESIZE_WIDTH_PX,\n MIN_COLUMN_WIDTH_PX,\n} from '../tableSizing.constants';\n\ntype ResizeSession = {\n columnKey: string;\n maxResizeWidth: number;\n minResizeWidth: number;\n startWidth: number;\n startX: number;\n};\n\ntype UseResizableColumnsProps<RowType extends Record<string, unknown>> = {\n columns: TableColumnDefinition<RowType>[];\n enabled: boolean;\n onColumnResize?: (columnKey: string, width?: number) => void;\n};\n\nconst parsePixelWidth = (width?: number | string) => {\n const normalizedWidth = typeof width === 'number' ? `${width}px` : width;\n const match = normalizedWidth?.trim().match(/^(-?\\d+(?:\\.\\d+)?)px$/);\n\n if (!match) {\n return;\n }\n\n return Math.round(Number(match[1]));\n};\n\nexport const useResizableColumns = <RowType extends Record<string, unknown>>(\n props: UseResizableColumnsProps<RowType>\n) => {\n const { columns, enabled, onColumnResize } = props;\n const [resizedColumnWidths, setResizedColumnWidths] = useState<Record<string, number>>({});\n const [resizeSession, setResizeSession] = useState<ResizeSession | undefined>(undefined);\n\n useEffect(() => {\n if (!onColumnResize) {\n return;\n }\n\n setResizedColumnWidths(previousWidths => {\n const nextWidths = Object.fromEntries(\n Object.entries(previousWidths).flatMap(([columnKey]) => {\n const currentColumn = columns.find(column => column.key === columnKey);\n const currentPixelWidth = parsePixelWidth(currentColumn?.width);\n\n return currentPixelWidth === undefined ? [] : [[columnKey, currentPixelWidth]];\n })\n );\n\n return JSON.stringify(previousWidths) === JSON.stringify(nextWidths) ? previousWidths : nextWidths;\n });\n }, [columns, onColumnResize]);\n\n useEffect(() => {\n if (!resizeSession) {\n return;\n }\n\n const previousBodyCursor = document.body.style.cursor;\n const previousBodyUserSelect = document.body.style.userSelect;\n\n document.body.style.cursor = 'col-resize';\n document.body.style.userSelect = 'none';\n\n const handlePointerMove = (event: PointerEvent) => {\n const nextWidth = Math.min(\n resizeSession.maxResizeWidth,\n Math.max(\n resizeSession.minResizeWidth,\n Math.round(resizeSession.startWidth + event.clientX - resizeSession.startX)\n )\n );\n\n onColumnResize?.(resizeSession.columnKey, nextWidth);\n\n setResizedColumnWidths(previousWidths =>\n previousWidths[resizeSession.columnKey] === nextWidth\n ? previousWidths\n : {\n ...previousWidths,\n [resizeSession.columnKey]: nextWidth,\n }\n );\n };\n\n const stopResize = () => {\n setResizeSession(undefined);\n };\n\n window.addEventListener('pointermove', handlePointerMove);\n window.addEventListener('pointerup', stopResize);\n window.addEventListener('pointercancel', stopResize);\n\n return () => {\n document.body.style.cursor = previousBodyCursor;\n document.body.style.userSelect = previousBodyUserSelect;\n window.removeEventListener('pointermove', handlePointerMove);\n window.removeEventListener('pointerup', stopResize);\n window.removeEventListener('pointercancel', stopResize);\n };\n }, [onColumnResize, resizeSession]);\n\n const handleColumnResizeStart = (columnKey: string, event: ReactPointerEvent<HTMLDivElement>) => {\n if (!enabled || event.button !== 0) {\n return;\n }\n\n const column = columns.find(currentColumn => currentColumn.key === columnKey);\n const headerCellElement = event.currentTarget.closest<HTMLElement>('.table-head-cell');\n\n if (!column || !headerCellElement) {\n return;\n }\n\n event.preventDefault();\n event.stopPropagation();\n\n const minResizeWidth = Math.max(column.minResizeWidth ?? DEFAULT_MIN_RESIZE_WIDTH_PX, MIN_COLUMN_WIDTH_PX);\n const maxResizeWidth = Math.max(column.maxResizeWidth ?? DEFAULT_MAX_RESIZE_WIDTH_PX, minResizeWidth);\n\n setResizeSession({\n columnKey,\n maxResizeWidth,\n minResizeWidth,\n startWidth: headerCellElement.getBoundingClientRect().width,\n startX: event.clientX,\n });\n };\n\n const handleColumnResizeReset = (columnKey: string) => {\n const column = columns.find(currentColumn => currentColumn.key === columnKey);\n const resetWidth =\n column?.minResizeWidth !== undefined ? Math.max(column.minResizeWidth, MIN_COLUMN_WIDTH_PX) : undefined;\n\n setResizeSession(undefined);\n onColumnResize?.(columnKey, resetWidth);\n setResizedColumnWidths(previousWidths => {\n if (resetWidth === undefined) {\n if (!(columnKey in previousWidths)) {\n return previousWidths;\n }\n\n const nextWidths = { ...previousWidths };\n delete nextWidths[columnKey];\n\n return nextWidths;\n }\n\n return previousWidths[columnKey] === resetWidth\n ? previousWidths\n : {\n ...previousWidths,\n [columnKey]: resetWidth,\n };\n });\n };\n\n const resizedColumns = columns.map(column => {\n const resizedWidth = resizedColumnWidths[column.key];\n\n return resizedWidth === undefined\n ? column\n : {\n ...column,\n width: resizedWidth,\n };\n });\n\n return {\n handleColumnResizeReset,\n handleColumnResizeStart,\n lastResizableColumnKey: columns.at(-1)?.key,\n resizedColumns,\n };\n};\n"],"names":["parsePixelWidth","width","match","useResizableColumns","props","columns","enabled","onColumnResize","resizedColumnWidths","setResizedColumnWidths","useState","resizeSession","setResizeSession","useEffect","previousWidths","nextWidths","columnKey","currentColumn","column","currentPixelWidth","previousBodyCursor","previousBodyUserSelect","handlePointerMove","event","nextWidth","stopResize","handleColumnResizeStart","headerCellElement","minResizeWidth","DEFAULT_MIN_RESIZE_WIDTH_PX","MIN_COLUMN_WIDTH_PX","maxResizeWidth","DEFAULT_MAX_RESIZE_WIDTH_PX","handleColumnResizeReset","resetWidth","resizedColumns","resizedWidth"],"mappings":"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"}
@@ -0,0 +1,25 @@
1
+ import { CSSProperties } from 'react';
2
+ import { TableCardsStyleSettings } from '../TableCard';
3
+ import { TableColumnDefinition, TableStyle } from '../Table.types';
4
+ export type TableColumnWithArea<RowType extends Record<string, unknown>> = {
5
+ column: TableColumnDefinition<RowType>;
6
+ columnIndex: number;
7
+ areaName: string;
8
+ };
9
+ type UseTableLayoutProps<RowType extends Record<string, unknown>> = {
10
+ bodyMaxHeight?: string;
11
+ cardsStyle?: TableCardsStyleSettings;
12
+ columns: TableColumnDefinition<RowType>[];
13
+ showSelectionColumn?: boolean;
14
+ style?: CSSProperties;
15
+ };
16
+ export declare const useTableLayout: <RowType extends Record<string, unknown>>(props: UseTableLayoutProps<RowType>) => {
17
+ columnsWithAreas: TableColumnWithArea<RowType>[];
18
+ handleBodyScroll: (event: import('react').UIEvent<HTMLElement> | undefined) => void;
19
+ tableUseOverflow: boolean;
20
+ tableWrapperRef: import('react').MutableRefObject<HTMLDivElement | null>;
21
+ tableFooterRowRef: import('react').RefObject<HTMLDivElement>;
22
+ tableHeadRowRef: import('react').RefObject<HTMLDivElement>;
23
+ wrapperStyle: TableStyle;
24
+ };
25
+ export {};
@@ -0,0 +1,56 @@
1
+ import { useMeasuredColumnMaxWidths as v } from "./useMeasuredColumnMaxWidths.js";
2
+ import { MIN_COLUMN_WIDTH_PX as N } from "../tableSizing.constants.js";
3
+ import { toCssSize as c, getColumnTrack as R } from "./columnSizing.js";
4
+ import { useHorizontalSectionSync as z } from "./useHorizontalSectionSync.js";
5
+ import H from "../../../hooks/useResizeObserver.js";
6
+ const u = 50, L = (r) => {
7
+ if (!r)
8
+ return;
9
+ const n = r.trim().match(/^(-?\d+(?:\.\d+)?)px$/);
10
+ if (n)
11
+ return Number(n[1]);
12
+ }, I = (r) => {
13
+ const { bodyMaxHeight: n, cardsStyle: d, columns: a, showSelectionColumn: i, style: h } = r, [l, , { inlineSize: p }] = H(), t = a.map((e, o) => ({
14
+ column: e,
15
+ columnIndex: o,
16
+ areaName: `table-col-${o + 1}`
17
+ })), s = p ?? l.current?.clientWidth, b = (i ? u : 0) + a.reduce((e, o) => {
18
+ if (o.width === void 0)
19
+ return e + N;
20
+ const _ = L(c(o.width));
21
+ return e + (_ ?? 0);
22
+ }, 0), m = s !== void 0 && b > s, f = s !== void 0 ? `${s}px` : "100%", { handleBodyScroll: W, tableFooterRowRef: x, tableHeadRowRef: S } = z({
23
+ enabled: !!n
24
+ }), w = v({
25
+ columns: a,
26
+ enabled: m,
27
+ tableWrapperRef: l
28
+ }), C = t.length > 0 ? [
29
+ i ? `${u}px` : void 0,
30
+ ...t.map(({ column: e }) => R(e, w[e.key]))
31
+ ].filter(Boolean).join(" ") : "minmax(0, 1fr)", M = t.length > 0 ? `"${[
32
+ i ? "table-selection" : void 0,
33
+ ...t.map(({ areaName: e }) => e)
34
+ ].filter(Boolean).join(" ")}"` : "none", T = c(d?.minWidth) ?? "280px", g = c(d?.maxWidth) ?? "1fr", y = {
35
+ ...h ?? {},
36
+ "--table-columns": C,
37
+ "--table-areas": M,
38
+ "--table-cards-min": T,
39
+ "--table-cards-max": g,
40
+ "--table-column-count": String(a.length + (i ? 1 : 0)),
41
+ "--table-width": f
42
+ };
43
+ return {
44
+ columnsWithAreas: t,
45
+ handleBodyScroll: W,
46
+ tableUseOverflow: m,
47
+ tableWrapperRef: l,
48
+ tableFooterRowRef: x,
49
+ tableHeadRowRef: S,
50
+ wrapperStyle: y
51
+ };
52
+ };
53
+ export {
54
+ I as useTableLayout
55
+ };
56
+ //# sourceMappingURL=useTableLayout.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useTableLayout.js","sources":["../../../../src/components/table/layout/useTableLayout.ts"],"sourcesContent":["import type { CSSProperties } from 'react';\n\nimport type { TableCardsStyleSettings } from '../TableCard';\nimport type { TableColumnDefinition, TableStyle } from '../Table.types';\nimport { useMeasuredColumnMaxWidths } from './useMeasuredColumnMaxWidths';\nimport { MIN_COLUMN_WIDTH_PX } from '../tableSizing.constants';\nimport { getColumnTrack, toCssSize } from './columnSizing';\nimport { useHorizontalSectionSync } from './useHorizontalSectionSync';\nimport useResizeObserver from '../../../useResizeObserver';\n\nconst TABLE_SELECTION_COLUMN_WIDTH_PX = 50;\n\nconst parsePixelSize = (value?: string) => {\n if (!value) {\n return;\n }\n\n const match = value.trim().match(/^(-?\\d+(?:\\.\\d+)?)px$/);\n\n if (!match) {\n return;\n }\n\n return Number(match[1]);\n};\n\nexport type TableColumnWithArea<RowType extends Record<string, unknown>> = {\n column: TableColumnDefinition<RowType>;\n columnIndex: number;\n areaName: string;\n};\n\ntype UseTableLayoutProps<RowType extends Record<string, unknown>> = {\n bodyMaxHeight?: string;\n cardsStyle?: TableCardsStyleSettings;\n columns: TableColumnDefinition<RowType>[];\n showSelectionColumn?: boolean;\n style?: CSSProperties;\n};\n\nexport const useTableLayout = <RowType extends Record<string, unknown>>(props: UseTableLayoutProps<RowType>) => {\n const { bodyMaxHeight, cardsStyle, columns, showSelectionColumn, style } = props;\n const [tableWrapperRef, , { inlineSize }] = useResizeObserver<HTMLDivElement>();\n\n const columnsWithAreas: TableColumnWithArea<RowType>[] = columns.map((column, columnIndex) => ({\n column,\n columnIndex,\n areaName: `table-col-${columnIndex + 1}`,\n }));\n const wrapperWidth = inlineSize ?? tableWrapperRef.current?.clientWidth;\n const minWidthTotal =\n (showSelectionColumn ? TABLE_SELECTION_COLUMN_WIDTH_PX : 0) +\n columns.reduce((totalWidth, column) => {\n if (column.width === undefined) {\n return totalWidth + MIN_COLUMN_WIDTH_PX;\n }\n\n const columnWidth = parsePixelSize(toCssSize(column.width));\n\n return totalWidth + (columnWidth ?? 0);\n }, 0);\n const tableUseOverflow = wrapperWidth !== undefined && minWidthTotal > wrapperWidth;\n const tableWidth = wrapperWidth !== undefined ? `${wrapperWidth}px` : '100%';\n\n const { handleBodyScroll, tableFooterRowRef, tableHeadRowRef } = useHorizontalSectionSync({\n enabled: !!bodyMaxHeight,\n });\n const measuredColumnMaxWidths = useMeasuredColumnMaxWidths({\n columns,\n enabled: tableUseOverflow,\n tableWrapperRef,\n });\n\n const gridTemplateColumns =\n columnsWithAreas.length > 0\n ? [\n showSelectionColumn ? `${TABLE_SELECTION_COLUMN_WIDTH_PX}px` : undefined,\n ...columnsWithAreas.map(({ column }) => getColumnTrack(column, measuredColumnMaxWidths[column.key])),\n ]\n .filter(Boolean)\n .join(' ')\n : 'minmax(0, 1fr)';\n\n const gridTemplateAreas =\n columnsWithAreas.length > 0\n ? `\"${[\n showSelectionColumn ? 'table-selection' : undefined,\n ...columnsWithAreas.map(({ areaName }) => areaName),\n ]\n .filter(Boolean)\n .join(' ')}\"`\n : 'none';\n\n const cardsMinWidth = toCssSize(cardsStyle?.minWidth) ?? '280px';\n const cardsMaxWidth = toCssSize(cardsStyle?.maxWidth) ?? '1fr';\n\n const wrapperStyle: TableStyle = {\n ...(style ?? {}),\n '--table-columns': gridTemplateColumns,\n '--table-areas': gridTemplateAreas,\n '--table-cards-min': cardsMinWidth,\n '--table-cards-max': cardsMaxWidth,\n '--table-column-count': String(columns.length + (showSelectionColumn ? 1 : 0)),\n '--table-width': tableWidth,\n };\n\n return {\n columnsWithAreas,\n handleBodyScroll,\n tableUseOverflow,\n tableWrapperRef,\n tableFooterRowRef,\n tableHeadRowRef,\n wrapperStyle,\n };\n};\n"],"names":["TABLE_SELECTION_COLUMN_WIDTH_PX","parsePixelSize","value","match","useTableLayout","props","bodyMaxHeight","cardsStyle","columns","showSelectionColumn","style","tableWrapperRef","inlineSize","useResizeObserver","columnsWithAreas","column","columnIndex","wrapperWidth","minWidthTotal","totalWidth","MIN_COLUMN_WIDTH_PX","columnWidth","toCssSize","tableUseOverflow","tableWidth","handleBodyScroll","tableFooterRowRef","tableHeadRowRef","useHorizontalSectionSync","measuredColumnMaxWidths","useMeasuredColumnMaxWidths","gridTemplateColumns","getColumnTrack","gridTemplateAreas","areaName","cardsMinWidth","cardsMaxWidth","wrapperStyle"],"mappings":";;;;;AAUA,MAAMA,IAAkC,IAElCC,IAAiB,CAACC,MAAmB;AACvC,MAAI,CAACA;AACD;AAGJ,QAAMC,IAAQD,EAAM,KAAA,EAAO,MAAM,uBAAuB;AAExD,MAAKC;AAIL,WAAO,OAAOA,EAAM,CAAC,CAAC;AAC1B,GAgBaC,IAAiB,CAA0CC,MAAwC;AAC5G,QAAM,EAAE,eAAAC,GAAe,YAAAC,GAAY,SAAAC,GAAS,qBAAAC,GAAqB,OAAAC,MAAUL,GACrE,CAACM,GAAA,EAAmB,EAAE,YAAAC,EAAA,CAAY,IAAIC,EAAA,GAEtCC,IAAmDN,EAAQ,IAAI,CAACO,GAAQC,OAAiB;AAAA,IAC3F,QAAAD;AAAA,IACA,aAAAC;AAAA,IACA,UAAU,aAAaA,IAAc,CAAC;AAAA,EAAA,EACxC,GACIC,IAAeL,KAAcD,EAAgB,SAAS,aACtDO,KACDT,IAAsBT,IAAkC,KACzDQ,EAAQ,OAAO,CAACW,GAAYJ,MAAW;AACnC,QAAIA,EAAO,UAAU;AACjB,aAAOI,IAAaC;AAGxB,UAAMC,IAAcpB,EAAeqB,EAAUP,EAAO,KAAK,CAAC;AAE1D,WAAOI,KAAcE,KAAe;AAAA,EACxC,GAAG,CAAC,GACFE,IAAmBN,MAAiB,UAAaC,IAAgBD,GACjEO,IAAaP,MAAiB,SAAY,GAAGA,CAAY,OAAO,QAEhE,EAAE,kBAAAQ,GAAkB,mBAAAC,GAAmB,iBAAAC,EAAA,IAAoBC,EAAyB;AAAA,IACtF,SAAS,CAAC,CAACtB;AAAA,EAAA,CACd,GACKuB,IAA0BC,EAA2B;AAAA,IACvD,SAAAtB;AAAA,IACA,SAASe;AAAA,IACT,iBAAAZ;AAAA,EAAA,CACH,GAEKoB,IACFjB,EAAiB,SAAS,IACpB;AAAA,IACIL,IAAsB,GAAGT,CAA+B,OAAO;AAAA,IAC/D,GAAGc,EAAiB,IAAI,CAAC,EAAE,QAAAC,EAAA,MAAaiB,EAAejB,GAAQc,EAAwBd,EAAO,GAAG,CAAC,CAAC;AAAA,EAAA,EAElG,OAAO,OAAO,EACd,KAAK,GAAG,IACb,kBAEJkB,IACFnB,EAAiB,SAAS,IACpB,IAAI;AAAA,IACAL,IAAsB,oBAAoB;AAAA,IAC1C,GAAGK,EAAiB,IAAI,CAAC,EAAE,UAAAoB,EAAA,MAAeA,CAAQ;AAAA,EAAA,EAEjD,OAAO,OAAO,EACd,KAAK,GAAG,CAAC,MACd,QAEJC,IAAgBb,EAAUf,GAAY,QAAQ,KAAK,SACnD6B,IAAgBd,EAAUf,GAAY,QAAQ,KAAK,OAEnD8B,IAA2B;AAAA,IAC7B,GAAI3B,KAAS,CAAA;AAAA,IACb,mBAAmBqB;AAAA,IACnB,iBAAiBE;AAAA,IACjB,qBAAqBE;AAAA,IACrB,qBAAqBC;AAAA,IACrB,wBAAwB,OAAO5B,EAAQ,UAAUC,IAAsB,IAAI,EAAE;AAAA,IAC7E,iBAAiBe;AAAA,EAAA;AAGrB,SAAO;AAAA,IACH,kBAAAV;AAAA,IACA,kBAAAW;AAAA,IACA,kBAAAF;AAAA,IACA,iBAAAZ;AAAA,IACA,mBAAAe;AAAA,IACA,iBAAAC;AAAA,IACA,cAAAU;AAAA,EAAA;AAER;"}
@@ -0,0 +1,22 @@
1
+ import { TableViewRow } from '../model/tableViewModel.types';
2
+ type TableVirtualScrollContainer = {
3
+ view?: HTMLDivElement | null;
4
+ };
5
+ type TableVirtualRow<RowType extends Record<string, unknown>> = {
6
+ index: number;
7
+ row: TableViewRow<RowType>;
8
+ };
9
+ type UseTableVirtualizationOptions<RowType extends Record<string, unknown>> = {
10
+ enabled: boolean;
11
+ overscan: number;
12
+ rows: TableViewRow<RowType>[];
13
+ scrollContainer: TableVirtualScrollContainer | null;
14
+ };
15
+ declare const useTableVirtualization: <RowType extends Record<string, unknown>>(options: UseTableVirtualizationOptions<RowType>) => {
16
+ isVirtualized: boolean;
17
+ measureRow: (index: number, element: HTMLElement | null) => void;
18
+ paddingBottom: number;
19
+ paddingTop: number;
20
+ virtualRows: TableVirtualRow<RowType>[];
21
+ };
22
+ export default useTableVirtualization;
@@ -0,0 +1,125 @@
1
+ import { useState as O, useCallback as c, useEffect as p, useMemo as V } from "react";
2
+ const k = 50, T = (m, i) => m.start === i.start && m.end === i.end, F = (m) => {
3
+ const { enabled: i, overscan: d, rows: r, scrollContainer: v } = m, [l, H] = O({
4
+ itemHeights: {},
5
+ scrollTop: 0,
6
+ viewportHeight: 0,
7
+ visibleRange: { start: 0, end: 10 }
8
+ }), b = c(() => v?.view ?? null, [v]), w = c(() => {
9
+ const e = Object.values(l.itemHeights);
10
+ return e.length === 0 ? k : e.reduce((t, n) => t + n, 0) / e.length;
11
+ }, [l.itemHeights]), g = c(
12
+ (e) => l.itemHeights[e] ?? w(),
13
+ [w, l.itemHeights]
14
+ ), f = c(
15
+ (e) => {
16
+ let t = 0;
17
+ for (let n = 0; n < e; n++)
18
+ t += g(n);
19
+ return t;
20
+ },
21
+ [g]
22
+ ), E = c(() => {
23
+ let e = 0;
24
+ for (let t = 0; t < r.length; t++)
25
+ e += g(t);
26
+ return e;
27
+ }, [g, r.length]), h = c(
28
+ (e, t) => {
29
+ if (!i || r.length === 0)
30
+ return { start: 0, end: r.length };
31
+ let n = 0, a = 0;
32
+ for (; n < r.length; ) {
33
+ const o = g(n);
34
+ if (a + o > e - d * o)
35
+ break;
36
+ a += o, n++;
37
+ }
38
+ let s = n;
39
+ for (; s < r.length; ) {
40
+ const o = g(s);
41
+ if (a > e + t + d * o)
42
+ break;
43
+ a += o, s++;
44
+ }
45
+ return {
46
+ start: Math.max(0, n - d),
47
+ end: Math.min(r.length, s + d)
48
+ };
49
+ },
50
+ [i, g, d, r.length]
51
+ ), u = c(() => {
52
+ const e = b();
53
+ if (!e)
54
+ return;
55
+ const t = e.clientHeight, n = e.scrollTop, a = h(n, t);
56
+ H(
57
+ (s) => s.scrollTop === n && s.viewportHeight === t && T(s.visibleRange, a) ? s : {
58
+ ...s,
59
+ scrollTop: n,
60
+ viewportHeight: t,
61
+ visibleRange: a
62
+ }
63
+ );
64
+ }, [h, b]);
65
+ p(() => {
66
+ if (!i)
67
+ return;
68
+ const e = b();
69
+ if (!e)
70
+ return;
71
+ u(), e.addEventListener("scroll", u, { passive: !0 });
72
+ const t = new ResizeObserver(u);
73
+ return t.observe(e), () => {
74
+ e.removeEventListener("scroll", u), t.disconnect();
75
+ };
76
+ }, [i, b, u]), p(() => {
77
+ i && H((e) => {
78
+ const t = h(e.scrollTop, e.viewportHeight);
79
+ return T(e.visibleRange, t) ? e : {
80
+ ...e,
81
+ visibleRange: t
82
+ };
83
+ });
84
+ }, [h, i, r]);
85
+ const x = c(
86
+ (e, t) => {
87
+ if (!t)
88
+ return;
89
+ const n = t.getBoundingClientRect(), a = window.getComputedStyle(t), s = n.height + Number.parseFloat(a.marginTop || "0") + Number.parseFloat(a.marginBottom || "0");
90
+ H((o) => {
91
+ if (o.itemHeights[e] === s)
92
+ return o;
93
+ const R = {
94
+ ...o,
95
+ itemHeights: {
96
+ ...o.itemHeights,
97
+ [e]: s
98
+ }
99
+ };
100
+ return {
101
+ ...R,
102
+ visibleRange: h(R.scrollTop, R.viewportHeight)
103
+ };
104
+ });
105
+ },
106
+ [h]
107
+ ), z = V(
108
+ () => i ? r.slice(l.visibleRange.start, l.visibleRange.end).map((e, t) => ({
109
+ index: l.visibleRange.start + t,
110
+ row: e
111
+ })) : [],
112
+ [i, r, l.visibleRange.end, l.visibleRange.start]
113
+ ), C = i ? f(l.visibleRange.start) : 0, M = i ? Math.max(0, E() - f(l.visibleRange.end)) : 0;
114
+ return {
115
+ isVirtualized: i,
116
+ measureRow: x,
117
+ paddingBottom: M,
118
+ paddingTop: C,
119
+ virtualRows: z
120
+ };
121
+ };
122
+ export {
123
+ F as default
124
+ };
125
+ //# sourceMappingURL=useTableVirtualization.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useTableVirtualization.js","sources":["../../../../src/components/table/layout/useTableVirtualization.ts"],"sourcesContent":["import { useCallback, useEffect, useMemo, useState } from 'react';\n\nimport type { TableViewRow } from '../model/tableViewModel.types';\n\ntype TableVirtualScrollContainer = {\n view?: HTMLDivElement | null;\n};\n\ntype TableVirtualRow<RowType extends Record<string, unknown>> = {\n index: number;\n row: TableViewRow<RowType>;\n};\n\ntype UseTableVirtualizationOptions<RowType extends Record<string, unknown>> = {\n enabled: boolean;\n overscan: number;\n rows: TableViewRow<RowType>[];\n scrollContainer: TableVirtualScrollContainer | null;\n};\n\ntype TableVirtualizationState = {\n itemHeights: Record<number, number>;\n scrollTop: number;\n viewportHeight: number;\n visibleRange: {\n start: number;\n end: number;\n };\n};\n\nconst DEFAULT_ROW_HEIGHT = 50;\n\nconst areVisibleRangesEqual = (\n left: TableVirtualizationState['visibleRange'],\n right: TableVirtualizationState['visibleRange']\n) => left.start === right.start && left.end === right.end;\n\nconst useTableVirtualization = <RowType extends Record<string, unknown>>(\n options: UseTableVirtualizationOptions<RowType>\n) => {\n const { enabled, overscan, rows, scrollContainer } = options;\n const [state, setState] = useState<TableVirtualizationState>({\n itemHeights: {},\n scrollTop: 0,\n viewportHeight: 0,\n visibleRange: { start: 0, end: 10 },\n });\n\n const getScrollElement = useCallback(() => scrollContainer?.view ?? null, [scrollContainer]);\n\n const getEstimatedRowHeight = useCallback(() => {\n const measuredHeights = Object.values(state.itemHeights);\n\n if (measuredHeights.length === 0) {\n return DEFAULT_ROW_HEIGHT;\n }\n\n return measuredHeights.reduce((sum, height) => sum + height, 0) / measuredHeights.length;\n }, [state.itemHeights]);\n\n const getRowHeight = useCallback(\n (index: number) => state.itemHeights[index] ?? getEstimatedRowHeight(),\n [getEstimatedRowHeight, state.itemHeights]\n );\n\n const getItemPosition = useCallback(\n (index: number) => {\n let position = 0;\n\n for (let currentIndex = 0; currentIndex < index; currentIndex++) {\n position += getRowHeight(currentIndex);\n }\n\n return position;\n },\n [getRowHeight]\n );\n\n const getTotalHeight = useCallback(() => {\n let totalHeight = 0;\n\n for (let index = 0; index < rows.length; index++) {\n totalHeight += getRowHeight(index);\n }\n\n return totalHeight;\n }, [getRowHeight, rows.length]);\n\n const calculateVisibleRange = useCallback(\n (scrollTop: number, viewportHeight: number) => {\n if (!enabled || rows.length === 0) {\n return { start: 0, end: rows.length };\n }\n\n let start = 0;\n let currentPosition = 0;\n\n while (start < rows.length) {\n const rowHeight = getRowHeight(start);\n\n if (currentPosition + rowHeight > scrollTop - overscan * rowHeight) {\n break;\n }\n\n currentPosition += rowHeight;\n start++;\n }\n\n let end = start;\n\n while (end < rows.length) {\n const rowHeight = getRowHeight(end);\n\n if (currentPosition > scrollTop + viewportHeight + overscan * rowHeight) {\n break;\n }\n\n currentPosition += rowHeight;\n end++;\n }\n\n return {\n start: Math.max(0, start - overscan),\n end: Math.min(rows.length, end + overscan),\n };\n },\n [enabled, getRowHeight, overscan, rows.length]\n );\n\n const handleScroll = useCallback(() => {\n const scrollElement = getScrollElement();\n\n if (!scrollElement) {\n return;\n }\n\n const viewportHeight = scrollElement.clientHeight;\n const scrollTop = scrollElement.scrollTop;\n const visibleRange = calculateVisibleRange(scrollTop, viewportHeight);\n\n setState(previousState =>\n previousState.scrollTop === scrollTop &&\n previousState.viewportHeight === viewportHeight &&\n areVisibleRangesEqual(previousState.visibleRange, visibleRange)\n ? previousState\n : {\n ...previousState,\n scrollTop,\n viewportHeight,\n visibleRange,\n }\n );\n }, [calculateVisibleRange, getScrollElement]);\n\n useEffect(() => {\n if (!enabled) {\n return;\n }\n\n const scrollElement = getScrollElement();\n\n if (!scrollElement) {\n return;\n }\n\n handleScroll();\n scrollElement.addEventListener('scroll', handleScroll, { passive: true });\n\n const resizeObserver = new ResizeObserver(handleScroll);\n resizeObserver.observe(scrollElement);\n\n return () => {\n scrollElement.removeEventListener('scroll', handleScroll);\n resizeObserver.disconnect();\n };\n }, [enabled, getScrollElement, handleScroll]);\n\n useEffect(() => {\n if (!enabled) {\n return;\n }\n\n setState(previousState => {\n const visibleRange = calculateVisibleRange(previousState.scrollTop, previousState.viewportHeight);\n\n return areVisibleRangesEqual(previousState.visibleRange, visibleRange)\n ? previousState\n : {\n ...previousState,\n visibleRange,\n };\n });\n }, [calculateVisibleRange, enabled, rows]);\n\n const measureRow = useCallback(\n (index: number, element: HTMLElement | null) => {\n if (!element) {\n return;\n }\n\n const rect = element.getBoundingClientRect();\n const computedStyle = window.getComputedStyle(element);\n const height =\n rect.height +\n Number.parseFloat(computedStyle.marginTop || '0') +\n Number.parseFloat(computedStyle.marginBottom || '0');\n\n setState(previousState => {\n if (previousState.itemHeights[index] === height) {\n return previousState;\n }\n\n const nextState = {\n ...previousState,\n itemHeights: {\n ...previousState.itemHeights,\n [index]: height,\n },\n };\n\n return {\n ...nextState,\n visibleRange: calculateVisibleRange(nextState.scrollTop, nextState.viewportHeight),\n };\n });\n },\n [calculateVisibleRange]\n );\n\n const virtualRows = useMemo<TableVirtualRow<RowType>[]>(\n () =>\n enabled\n ? rows.slice(state.visibleRange.start, state.visibleRange.end).map((row, offset) => {\n const index = state.visibleRange.start + offset;\n\n return {\n index,\n row,\n };\n })\n : [],\n [enabled, rows, state.visibleRange.end, state.visibleRange.start]\n );\n\n const paddingTop = enabled ? getItemPosition(state.visibleRange.start) : 0;\n const paddingBottom = enabled ? Math.max(0, getTotalHeight() - getItemPosition(state.visibleRange.end)) : 0;\n\n return {\n isVirtualized: enabled,\n measureRow,\n paddingBottom,\n paddingTop,\n virtualRows,\n };\n};\n\nexport default useTableVirtualization;\n"],"names":["DEFAULT_ROW_HEIGHT","areVisibleRangesEqual","left","right","useTableVirtualization","options","enabled","overscan","rows","scrollContainer","state","setState","useState","getScrollElement","useCallback","getEstimatedRowHeight","measuredHeights","sum","height","getRowHeight","index","getItemPosition","position","currentIndex","getTotalHeight","totalHeight","calculateVisibleRange","scrollTop","viewportHeight","start","currentPosition","rowHeight","end","handleScroll","scrollElement","visibleRange","previousState","useEffect","resizeObserver","measureRow","element","rect","computedStyle","nextState","virtualRows","useMemo","row","offset","paddingTop","paddingBottom"],"mappings":"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"}
@@ -0,0 +1,28 @@
1
+ import { ReactNode } from 'react';
2
+ import { TableColumnWithArea } from '../layout/useTableLayout';
3
+ import { TableCellClassName, TableParsedFooter, TableParsedHeaderColumn, TableRowId, TableParsedRow, TableRowClassName, TableSortDirection } from '../Table.types';
4
+ import { TableViewModel } from './tableViewModel.types';
5
+ type BuildTableViewModelProps<RowType extends Record<string, unknown>> = {
6
+ columnsWithAreas: TableColumnWithArea<RowType>[];
7
+ resolvedHeaderColumns: TableParsedHeaderColumn<RowType>[];
8
+ resolvedRows: TableParsedRow<RowType>[];
9
+ resolvedFooter?: TableParsedFooter;
10
+ rowKey?: keyof RowType | ((row: RowType, rowIndex: number) => string | number);
11
+ rowClassName?: TableRowClassName<RowType>;
12
+ cellClassName?: TableCellClassName<RowType>;
13
+ activeRowId?: TableRowId;
14
+ noRowsState: ReactNode;
15
+ isClickable: boolean;
16
+ isTableView: boolean;
17
+ selectedRowIds?: TableRowId[];
18
+ sortBy?: string | string[];
19
+ sortDirection?: TableSortDirection;
20
+ cardClasses: {
21
+ rowClassName?: string;
22
+ cellClassName?: string;
23
+ labelClassName?: string;
24
+ contentClassName?: string;
25
+ };
26
+ };
27
+ export declare const buildTableViewModel: <RowType extends Record<string, unknown>>(props: BuildTableViewModelProps<RowType>) => TableViewModel<RowType>;
28
+ export {};
@@ -0,0 +1,221 @@
1
+ import k from "../../../utils/classNames.js";
2
+ import { getMobileLabel as m } from "./resolveCellContent.js";
3
+ import { resolveRowKey as W, resolveRowClassName as j } from "./resolveRowMeta.js";
4
+ const f = (g, s) => g.cellsByKey?.[s], P = (g) => {
5
+ const {
6
+ columnsWithAreas: s,
7
+ resolvedHeaderColumns: v,
8
+ resolvedRows: b,
9
+ resolvedFooter: d,
10
+ rowKey: O,
11
+ rowClassName: R,
12
+ cellClassName: N,
13
+ activeRowId: H,
14
+ noRowsState: u,
15
+ isClickable: B,
16
+ isTableView: L,
17
+ selectedRowIds: D,
18
+ sortBy: y,
19
+ sortDirection: S,
20
+ cardClasses: w
21
+ } = g, F = new Set(D), K = new Set(Array.isArray(y) ? y : y ? [y] : []), T = s.map(({ column: e, areaName: n }) => ({
22
+ key: e.key,
23
+ label: e.label,
24
+ mobileLabel: m(e),
25
+ horizontalAlign: e.horizontalAlign,
26
+ className: e.className,
27
+ headerClassName: e.headerClassName,
28
+ hideOnMobile: e.hideOnMobile,
29
+ sortable: e.sortable,
30
+ sortDirection: K.has(e.key) ? S : void 0,
31
+ areaName: n,
32
+ source: e
33
+ })), p = new Map(s.map(({ column: e }, n) => [e.key, n + 1])), A = (() => {
34
+ if (v.length === 0)
35
+ return;
36
+ const e = Math.max(...v.map((a) => a.row + a.rowSpan - 1)), n = Array.from({ length: e }, () => Array(s.length).fill(!1)), i = (a, r) => {
37
+ for (let t = 1; t <= s.length - r + 1; t += 1)
38
+ if (n[a - 1].slice(t - 1, t - 1 + r).every((o) => !o))
39
+ return t;
40
+ return 1;
41
+ }, l = v.map((a) => {
42
+ const r = a.columnKey ? p.get(a.columnKey) ?? 1 : i(a.row, a.colSpan);
43
+ for (let t = a.row - 1; t < a.row - 1 + a.rowSpan; t += 1)
44
+ for (let c = r - 1; c < r - 1 + a.colSpan; c += 1)
45
+ n[t]?.[c] !== void 0 && (n[t][c] = !0);
46
+ return {
47
+ key: a.key,
48
+ columnKey: a.columnKey,
49
+ label: a.label,
50
+ icon: a.icon,
51
+ filter: a.filter,
52
+ hideLabel: a.hideLabel,
53
+ horizontalAlign: a.horizontalAlign,
54
+ verticalAlign: a.verticalAlign,
55
+ className: a.className,
56
+ headerClassName: a.headerClassName,
57
+ hideOnMobile: a.hideOnMobile,
58
+ draggable: a.draggable,
59
+ resizeable: a.resizeable,
60
+ sortable: a.sortable,
61
+ sortDirection: a.columnKey && K.has(a.columnKey) ? S : void 0,
62
+ rowStart: a.row,
63
+ rowSpan: a.rowSpan,
64
+ columnStart: r,
65
+ colSpan: a.colSpan,
66
+ source: a.columnKey ? s.find(({ column: t }) => t.key === a.columnKey)?.column : void 0
67
+ };
68
+ });
69
+ return {
70
+ rowCount: e,
71
+ totalColumnCount: s.length,
72
+ columns: l
73
+ };
74
+ })(), V = new Map(
75
+ A?.columns.filter((e) => !!e.columnKey).map((e) => [
76
+ e.columnKey,
77
+ {
78
+ horizontalAlign: e.horizontalAlign,
79
+ verticalAlign: e.verticalAlign
80
+ }
81
+ ]) ?? []
82
+ ), h = (e) => e ? V.get(e) : void 0, E = (e, n) => {
83
+ const i = W(e.data, n, O), l = e.cellsByKey && (() => {
84
+ const a = [];
85
+ let r = -1;
86
+ return s.forEach(({ column: t, columnIndex: c }) => {
87
+ if (c <= r)
88
+ return;
89
+ const o = f(e, t.key), C = h(t.key), M = o?.colSpan ?? 1;
90
+ o && (r = c + M - 1), a.push({
91
+ key: String(o?.key ?? t.key),
92
+ mobileLabel: m(t),
93
+ content: o?.content ?? "",
94
+ horizontalAlign: o?.horizontalAlign ?? C?.horizontalAlign ?? t.horizontalAlign,
95
+ verticalAlign: o?.verticalAlign ?? C?.verticalAlign,
96
+ className: k(t.className, o?.className),
97
+ contentClassName: o?.contentClassName,
98
+ resolvedClassName: N?.(e.data, t, n, c),
99
+ hideOnMobile: t.hideOnMobile,
100
+ columnStart: c + 1,
101
+ colSpan: M,
102
+ preventRowClick: o?.preventRowClick
103
+ });
104
+ }), a;
105
+ })();
106
+ return {
107
+ kind: e.kind,
108
+ key: i,
109
+ parentKey: e.kind === "expanded" ? e.parentKey : void 0,
110
+ rowIndex: n,
111
+ data: e.data,
112
+ active: i === H,
113
+ disabled: e.disabled,
114
+ className: e.className,
115
+ noHover: e.noHover,
116
+ resolvedClassName: j(R, e.data, n),
117
+ selected: F.has(i),
118
+ cells: l && l.length > 0 ? l : s.map(({ column: a, columnIndex: r }) => {
119
+ const t = h(a.key);
120
+ return {
121
+ key: a.key,
122
+ mobileLabel: m(a),
123
+ content: "",
124
+ horizontalAlign: t?.horizontalAlign ?? a.horizontalAlign,
125
+ verticalAlign: t?.verticalAlign,
126
+ className: a.className,
127
+ contentClassName: void 0,
128
+ resolvedClassName: N?.(e.data, a, n, r),
129
+ hideOnMobile: a.hideOnMobile,
130
+ columnStart: r + 1,
131
+ colSpan: 1,
132
+ preventRowClick: !1
133
+ };
134
+ })
135
+ };
136
+ }, U = b.length > 0 ? b.map((e, n) => {
137
+ switch (e.kind) {
138
+ case "spacer":
139
+ return e;
140
+ case "group":
141
+ return {
142
+ kind: "group",
143
+ key: e.key,
144
+ content: e.content,
145
+ sticky: e.sticky,
146
+ className: e.className,
147
+ noHover: e.noHover
148
+ };
149
+ case "group-footer":
150
+ return {
151
+ kind: "group-footer",
152
+ key: e.key,
153
+ content: e.content,
154
+ className: e.className,
155
+ noHover: e.noHover
156
+ };
157
+ case "expanded-full-width":
158
+ return {
159
+ kind: "expanded-full-width",
160
+ key: e.key,
161
+ parentKey: e.parentKey,
162
+ content: e.content,
163
+ className: e.className,
164
+ noHover: e.noHover
165
+ };
166
+ default:
167
+ return E(e, n);
168
+ }
169
+ }) : [
170
+ {
171
+ kind: "empty",
172
+ key: "empty",
173
+ content: u
174
+ }
175
+ ], z = d ? {
176
+ className: d.className,
177
+ content: d.content,
178
+ cells: d.cells ? d.cells.map((e, n) => {
179
+ const i = e.columnKey ? (p.get(e.columnKey) ?? n + 1) - 1 : n, l = s[i]?.column, a = h(e.columnKey ?? l?.key);
180
+ return {
181
+ key: String(e.key ?? l?.key ?? n),
182
+ content: e.content,
183
+ horizontalAlign: e.horizontalAlign ?? a?.horizontalAlign ?? l?.horizontalAlign,
184
+ verticalAlign: e.verticalAlign ?? a?.verticalAlign,
185
+ className: k(l?.className, e.className),
186
+ hideOnMobile: l?.hideOnMobile,
187
+ columnStart: e.columnKey ? p.get(e.columnKey) ?? n + 1 : n + 1,
188
+ colSpan: e.colSpan
189
+ };
190
+ }) : d.cellsByIndex || d.cellsByKey ? s.map(({ column: e, columnIndex: n }) => {
191
+ const i = f(d, e.key), l = h(e.key);
192
+ return {
193
+ key: e.key,
194
+ content: i?.content ?? "",
195
+ horizontalAlign: i?.horizontalAlign ?? l?.horizontalAlign ?? e.horizontalAlign,
196
+ verticalAlign: i?.verticalAlign ?? l?.verticalAlign,
197
+ className: k(e.className, i?.className),
198
+ hideOnMobile: e.hideOnMobile,
199
+ columnStart: n + 1,
200
+ colSpan: 1
201
+ };
202
+ }) : void 0
203
+ } : void 0;
204
+ return {
205
+ columns: T,
206
+ header: A,
207
+ rows: U,
208
+ footer: z,
209
+ flags: {
210
+ hasHeader: !!A,
211
+ hasFooter: !!z,
212
+ isClickable: B,
213
+ isTableView: L
214
+ },
215
+ cardClasses: w
216
+ };
217
+ };
218
+ export {
219
+ P as buildTableViewModel
220
+ };
221
+ //# sourceMappingURL=buildTableViewModel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"buildTableViewModel.js","sources":["../../../../src/components/table/model/buildTableViewModel.ts"],"sourcesContent":["import type { ReactNode } from 'react';\n\nimport classNames from '../../../utils/classNames';\nimport type { TableColumnWithArea } from '../layout/useTableLayout';\nimport { getMobileLabel } from './resolveCellContent';\nimport { resolveRowClassName, resolveRowKey } from './resolveRowMeta';\nimport type {\n TableCellClassName,\n TableParsedDataRow,\n TableParsedExpandedDataRow,\n TableParsedCells,\n TableParsedFooter,\n TableParsedHeaderColumn,\n TableRowId,\n TableParsedRow,\n TableRowClassName,\n TableSortDirection,\n} from '../Table.types';\nimport type {\n TableDataViewRow,\n TableExpandedContentViewRow,\n TableExpandedDataViewRow,\n TableGroupFooterViewRow,\n TableGroupViewRow,\n TableViewHeader,\n TableViewHeaderColumn,\n TableViewCell,\n TableViewFooter,\n TableViewFooterCell,\n TableViewModel,\n TableViewRow,\n} from './tableViewModel.types';\n\nconst resolveDeclarativeCell = (resolvedCells: TableParsedCells, columnKey: string) =>\n resolvedCells.cellsByKey?.[columnKey];\n\ntype BuildTableViewModelProps<RowType extends Record<string, unknown>> = {\n columnsWithAreas: TableColumnWithArea<RowType>[];\n resolvedHeaderColumns: TableParsedHeaderColumn<RowType>[];\n resolvedRows: TableParsedRow<RowType>[];\n resolvedFooter?: TableParsedFooter;\n rowKey?: keyof RowType | ((row: RowType, rowIndex: number) => string | number);\n rowClassName?: TableRowClassName<RowType>;\n cellClassName?: TableCellClassName<RowType>;\n activeRowId?: TableRowId;\n noRowsState: ReactNode;\n isClickable: boolean;\n isTableView: boolean;\n selectedRowIds?: TableRowId[];\n sortBy?: string | string[];\n sortDirection?: TableSortDirection;\n cardClasses: {\n rowClassName?: string;\n cellClassName?: string;\n labelClassName?: string;\n contentClassName?: string;\n };\n};\n\nexport const buildTableViewModel = <RowType extends Record<string, unknown>>(\n props: BuildTableViewModelProps<RowType>\n): TableViewModel<RowType> => {\n const {\n columnsWithAreas,\n resolvedHeaderColumns,\n resolvedRows,\n resolvedFooter,\n rowKey,\n rowClassName,\n cellClassName,\n activeRowId,\n noRowsState,\n isClickable,\n isTableView,\n selectedRowIds,\n sortBy,\n sortDirection,\n cardClasses,\n } = props;\n\n const selectedRowIdSet = new Set(selectedRowIds);\n const sortedColumnKeys = new Set(Array.isArray(sortBy) ? sortBy : sortBy ? [sortBy] : []);\n\n const columns = columnsWithAreas.map(({ column, areaName }) => ({\n key: column.key,\n label: column.label,\n mobileLabel: getMobileLabel(column),\n horizontalAlign: column.horizontalAlign,\n className: column.className,\n headerClassName: column.headerClassName,\n hideOnMobile: column.hideOnMobile,\n sortable: column.sortable,\n sortDirection: sortedColumnKeys.has(column.key) ? sortDirection : undefined,\n areaName,\n source: column,\n }));\n\n const columnStartByKey = new Map(columnsWithAreas.map(({ column }, index) => [column.key, index + 1]));\n\n const header = (() => {\n if (resolvedHeaderColumns.length === 0) {\n return;\n }\n\n const rowCount = Math.max(...resolvedHeaderColumns.map(column => column.row + column.rowSpan - 1));\n const occupied = Array.from({ length: rowCount }, () => Array(columnsWithAreas.length).fill(false));\n\n const findColumnStart = (rowStart: number, colSpan: number) => {\n for (let candidate = 1; candidate <= columnsWithAreas.length - colSpan + 1; candidate += 1) {\n const hasFreeSlot = occupied[rowStart - 1]\n .slice(candidate - 1, candidate - 1 + colSpan)\n .every(isUsed => !isUsed);\n\n if (hasFreeSlot) {\n return candidate;\n }\n }\n\n return 1;\n };\n\n const columns = resolvedHeaderColumns.map<TableViewHeaderColumn<RowType>>(column => {\n const columnStart = column.columnKey\n ? (columnStartByKey.get(column.columnKey) ?? 1)\n : findColumnStart(column.row, column.colSpan);\n\n for (let rowIndex = column.row - 1; rowIndex < column.row - 1 + column.rowSpan; rowIndex += 1) {\n for (\n let columnIndex = columnStart - 1;\n columnIndex < columnStart - 1 + column.colSpan;\n columnIndex += 1\n ) {\n if (occupied[rowIndex]?.[columnIndex] !== undefined) {\n occupied[rowIndex][columnIndex] = true;\n }\n }\n }\n\n return {\n key: column.key,\n columnKey: column.columnKey,\n label: column.label,\n icon: column.icon,\n filter: column.filter,\n hideLabel: column.hideLabel,\n horizontalAlign: column.horizontalAlign,\n verticalAlign: column.verticalAlign,\n className: column.className,\n headerClassName: column.headerClassName,\n hideOnMobile: column.hideOnMobile,\n draggable: column.draggable,\n resizeable: column.resizeable,\n sortable: column.sortable,\n sortDirection: column.columnKey && sortedColumnKeys.has(column.columnKey) ? sortDirection : undefined,\n rowStart: column.row,\n rowSpan: column.rowSpan,\n columnStart,\n colSpan: column.colSpan,\n source: column.columnKey\n ? columnsWithAreas.find(({ column: sourceColumn }) => sourceColumn.key === column.columnKey)?.column\n : undefined,\n };\n });\n\n return {\n rowCount,\n totalColumnCount: columnsWithAreas.length,\n columns,\n } satisfies TableViewHeader<RowType>;\n })();\n\n const headerAlignmentByColumnKey = new Map(\n header?.columns\n .filter((column): column is TableViewHeaderColumn<RowType> & { columnKey: string } => !!column.columnKey)\n .map(column => [\n column.columnKey,\n {\n horizontalAlign: column.horizontalAlign,\n verticalAlign: column.verticalAlign,\n },\n ]) ?? []\n );\n\n const resolveHeaderAlignment = (columnKey?: string) =>\n columnKey ? headerAlignmentByColumnKey.get(columnKey) : undefined;\n\n const createDataRow = (\n row: TableParsedDataRow<RowType> | TableParsedExpandedDataRow<RowType>,\n rowIndex: number\n ): TableDataViewRow<RowType> | TableExpandedDataViewRow<RowType> => {\n const resolvedRowId = resolveRowKey(row.data, rowIndex, rowKey);\n const declarativeCells =\n row.cellsByKey &&\n (() => {\n const nextCells: TableViewCell[] = [];\n let coveredUntilColumnIndex = -1;\n\n columnsWithAreas.forEach(({ column, columnIndex }) => {\n if (columnIndex <= coveredUntilColumnIndex) {\n return;\n }\n\n const declarativeCell = resolveDeclarativeCell(row, column.key);\n const headerAlignment = resolveHeaderAlignment(column.key);\n const colSpan = declarativeCell?.colSpan ?? 1;\n\n if (declarativeCell) {\n coveredUntilColumnIndex = columnIndex + colSpan - 1;\n }\n\n nextCells.push({\n key: String(declarativeCell?.key ?? column.key),\n mobileLabel: getMobileLabel(column),\n content: declarativeCell?.content ?? '',\n horizontalAlign:\n declarativeCell?.horizontalAlign ??\n headerAlignment?.horizontalAlign ??\n column.horizontalAlign,\n verticalAlign: declarativeCell?.verticalAlign ?? headerAlignment?.verticalAlign,\n className: classNames(column.className, declarativeCell?.className),\n contentClassName: declarativeCell?.contentClassName,\n resolvedClassName: cellClassName?.(row.data, column, rowIndex, columnIndex),\n hideOnMobile: column.hideOnMobile,\n columnStart: columnIndex + 1,\n colSpan,\n preventRowClick: declarativeCell?.preventRowClick,\n });\n });\n\n return nextCells;\n })();\n\n return {\n kind: row.kind,\n key: resolvedRowId,\n parentKey: row.kind === 'expanded' ? row.parentKey : undefined,\n rowIndex,\n data: row.data,\n active: resolvedRowId === activeRowId,\n disabled: row.disabled,\n className: row.className,\n noHover: row.noHover,\n resolvedClassName: resolveRowClassName(rowClassName, row.data, rowIndex),\n selected: selectedRowIdSet.has(resolvedRowId),\n cells:\n declarativeCells && declarativeCells.length > 0\n ? declarativeCells\n : columnsWithAreas.map(({ column, columnIndex }) => {\n const headerAlignment = resolveHeaderAlignment(column.key);\n\n return {\n key: column.key,\n mobileLabel: getMobileLabel(column),\n content: '',\n horizontalAlign: headerAlignment?.horizontalAlign ?? column.horizontalAlign,\n verticalAlign: headerAlignment?.verticalAlign,\n className: column.className,\n contentClassName: undefined,\n resolvedClassName: cellClassName?.(row.data, column, rowIndex, columnIndex),\n hideOnMobile: column.hideOnMobile,\n columnStart: columnIndex + 1,\n colSpan: 1,\n preventRowClick: false,\n };\n }),\n };\n };\n\n const rows: TableViewRow<RowType>[] =\n resolvedRows.length > 0\n ? resolvedRows.map((row, rowIndex) => {\n switch (row.kind) {\n case 'spacer':\n return row;\n case 'group':\n return {\n kind: 'group',\n key: row.key,\n content: row.content,\n sticky: row.sticky,\n className: row.className,\n noHover: row.noHover,\n } satisfies TableGroupViewRow;\n case 'group-footer':\n return {\n kind: 'group-footer',\n key: row.key,\n content: row.content,\n className: row.className,\n noHover: row.noHover,\n } satisfies TableGroupFooterViewRow;\n case 'expanded-full-width':\n return {\n kind: 'expanded-full-width',\n key: row.key,\n parentKey: row.parentKey,\n content: row.content,\n className: row.className,\n noHover: row.noHover,\n } satisfies TableExpandedContentViewRow<RowType>;\n default:\n return createDataRow(row, rowIndex);\n }\n })\n : [\n {\n kind: 'empty',\n key: 'empty',\n content: noRowsState,\n },\n ];\n\n const footer: TableViewFooter | undefined = resolvedFooter\n ? {\n className: resolvedFooter.className,\n content: resolvedFooter.content,\n cells: resolvedFooter.cells\n ? resolvedFooter.cells.map((footerCell, footerCellIndex) => {\n const baseColumnIndex = footerCell.columnKey\n ? (columnStartByKey.get(footerCell.columnKey) ?? footerCellIndex + 1) - 1\n : footerCellIndex;\n const sourceColumn = columnsWithAreas[baseColumnIndex]?.column;\n const headerAlignment = resolveHeaderAlignment(footerCell.columnKey ?? sourceColumn?.key);\n\n return {\n key: String(footerCell.key ?? sourceColumn?.key ?? footerCellIndex),\n content: footerCell.content,\n horizontalAlign:\n footerCell.horizontalAlign ??\n headerAlignment?.horizontalAlign ??\n sourceColumn?.horizontalAlign,\n verticalAlign: footerCell.verticalAlign ?? headerAlignment?.verticalAlign,\n className: classNames(sourceColumn?.className, footerCell.className),\n hideOnMobile: sourceColumn?.hideOnMobile,\n columnStart: footerCell.columnKey\n ? (columnStartByKey.get(footerCell.columnKey) ?? footerCellIndex + 1)\n : footerCellIndex + 1,\n colSpan: footerCell.colSpan,\n } satisfies TableViewFooterCell;\n })\n : resolvedFooter.cellsByIndex || resolvedFooter.cellsByKey\n ? columnsWithAreas.map(({ column, columnIndex }) => {\n const footerCell = resolveDeclarativeCell(resolvedFooter, column.key);\n const headerAlignment = resolveHeaderAlignment(column.key);\n\n return {\n key: column.key,\n content: footerCell?.content ?? '',\n horizontalAlign:\n footerCell?.horizontalAlign ??\n headerAlignment?.horizontalAlign ??\n column.horizontalAlign,\n verticalAlign: footerCell?.verticalAlign ?? headerAlignment?.verticalAlign,\n className: classNames(column.className, footerCell?.className),\n hideOnMobile: column.hideOnMobile,\n columnStart: columnIndex + 1,\n colSpan: 1,\n } satisfies TableViewFooterCell;\n })\n : undefined,\n }\n : undefined;\n\n return {\n columns,\n header,\n rows,\n footer,\n flags: {\n hasHeader: !!header,\n hasFooter: !!footer,\n isClickable,\n isTableView,\n },\n cardClasses,\n };\n};\n"],"names":["resolveDeclarativeCell","resolvedCells","columnKey","buildTableViewModel","props","columnsWithAreas","resolvedHeaderColumns","resolvedRows","resolvedFooter","rowKey","rowClassName","cellClassName","activeRowId","noRowsState","isClickable","isTableView","selectedRowIds","sortBy","sortDirection","cardClasses","selectedRowIdSet","sortedColumnKeys","columns","column","areaName","getMobileLabel","columnStartByKey","index","header","rowCount","occupied","findColumnStart","rowStart","colSpan","candidate","isUsed","columnStart","rowIndex","columnIndex","sourceColumn","headerAlignmentByColumnKey","resolveHeaderAlignment","createDataRow","row","resolvedRowId","resolveRowKey","declarativeCells","nextCells","coveredUntilColumnIndex","declarativeCell","headerAlignment","classNames","resolveRowClassName","rows","footer","footerCell","footerCellIndex","baseColumnIndex"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import { TableColumnDefinition } from '../Table.types';
2
+ export declare const getMobileLabel: <RowType extends Record<string, unknown>>(column: TableColumnDefinition<RowType>) => string;
@@ -0,0 +1,5 @@
1
+ const b = (e) => e.mobileLabel !== void 0 ? e.mobileLabel : typeof e.label == "string" ? e.label : "";
2
+ export {
3
+ b as getMobileLabel
4
+ };
5
+ //# sourceMappingURL=resolveCellContent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolveCellContent.js","sources":["../../../../src/components/table/model/resolveCellContent.ts"],"sourcesContent":["import type { TableColumnDefinition } from '../Table.types';\n\nexport const getMobileLabel = <RowType extends Record<string, unknown>>(column: TableColumnDefinition<RowType>) => {\n if (column.mobileLabel !== undefined) {\n return column.mobileLabel;\n }\n\n return typeof column.label === 'string' ? column.label : '';\n};\n"],"names":["getMobileLabel","column"],"mappings":"AAEO,MAAMA,IAAiB,CAA0CC,MAChEA,EAAO,gBAAgB,SAChBA,EAAO,cAGX,OAAOA,EAAO,SAAU,WAAWA,EAAO,QAAQ;"}
@@ -0,0 +1,2 @@
1
+ export declare const resolveRowClassName: <RowType extends Record<string, unknown>>(rowClassName: string | ((row: RowType, rowIndex: number) => string) | undefined, row: RowType, rowIndex: number) => string | undefined;
2
+ export declare const resolveRowKey: <RowType extends Record<string, unknown>>(row: RowType, rowIndex: number, rowKey: keyof RowType | ((row: RowType, rowIndex: number) => string | number) | undefined) => string | number;
@@ -0,0 +1,15 @@
1
+ const r = (t, e, n) => typeof t == "function" ? t(e, n) : t, u = (t, e, n) => {
2
+ if (typeof n == "function")
3
+ return n(t, e);
4
+ if (n) {
5
+ const f = t[n];
6
+ if (typeof f == "string" || typeof f == "number")
7
+ return f;
8
+ }
9
+ return e;
10
+ };
11
+ export {
12
+ r as resolveRowClassName,
13
+ u as resolveRowKey
14
+ };
15
+ //# sourceMappingURL=resolveRowMeta.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolveRowMeta.js","sources":["../../../../src/components/table/model/resolveRowMeta.ts"],"sourcesContent":["export const resolveRowClassName = <RowType extends Record<string, unknown>>(\n rowClassName: string | ((row: RowType, rowIndex: number) => string) | undefined,\n row: RowType,\n rowIndex: number\n) => {\n if (typeof rowClassName === 'function') {\n return rowClassName(row, rowIndex);\n }\n\n return rowClassName;\n};\n\nexport const resolveRowKey = <RowType extends Record<string, unknown>>(\n row: RowType,\n rowIndex: number,\n rowKey: keyof RowType | ((row: RowType, rowIndex: number) => string | number) | undefined\n) => {\n if (typeof rowKey === 'function') {\n return rowKey(row, rowIndex);\n }\n\n if (rowKey) {\n const rowValue = row[rowKey];\n if (typeof rowValue === 'string' || typeof rowValue === 'number') {\n return rowValue;\n }\n }\n\n return rowIndex;\n};\n"],"names":["resolveRowClassName","rowClassName","row","rowIndex","resolveRowKey","rowKey","rowValue"],"mappings":"AAAO,MAAMA,IAAsB,CAC/BC,GACAC,GACAC,MAEI,OAAOF,KAAiB,aACjBA,EAAaC,GAAKC,CAAQ,IAG9BF,GAGEG,IAAgB,CACzBF,GACAC,GACAE,MACC;AACD,MAAI,OAAOA,KAAW;AAClB,WAAOA,EAAOH,GAAKC,CAAQ;AAG/B,MAAIE,GAAQ;AACR,UAAMC,IAAWJ,EAAIG,CAAM;AAC3B,QAAI,OAAOC,KAAa,YAAY,OAAOA,KAAa;AACpD,aAAOA;AAAA,EAEf;AAEA,SAAOH;AACX;"}