@rio-cloud/rio-uikit 2.2.1 → 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/native/TableSettingsListContainer.js.map +1 -0
  207. package/components/table/native/TableSettingsListItem.js +100 -0
  208. package/components/table/native/TableSettingsListItem.js.map +1 -0
  209. package/components/table/parse/parseBody.d.ts +3 -0
  210. package/components/table/parse/parseBody.js +13 -0
  211. package/components/table/parse/parseBody.js.map +1 -0
  212. package/components/table/parse/parseColumns.d.ts +3 -0
  213. package/components/table/parse/parseColumns.js +81 -0
  214. package/components/table/parse/parseColumns.js.map +1 -0
  215. package/components/table/parse/parseFooter.d.ts +3 -0
  216. package/components/table/parse/parseFooter.js +39 -0
  217. package/components/table/parse/parseFooter.js.map +1 -0
  218. package/components/table/parse/parseHeaders.d.ts +4 -0
  219. package/components/table/parse/parseHeaders.js +89 -0
  220. package/components/table/parse/parseHeaders.js.map +1 -0
  221. package/components/table/parse/parseRows.d.ts +3 -0
  222. package/components/table/parse/parseRows.js +93 -0
  223. package/components/table/parse/parseRows.js.map +1 -0
  224. package/components/table/parse/tableChildGuards.d.ts +25 -0
  225. package/components/table/parse/tableChildGuards.js +29 -0
  226. package/components/table/parse/tableChildGuards.js.map +1 -0
  227. package/components/table/render/body/TableBodyRow.d.ts +16 -0
  228. package/components/table/render/body/TableBodyRow.js +84 -0
  229. package/components/table/render/body/TableBodyRow.js.map +1 -0
  230. package/components/table/render/body/TableBodySection.d.ts +20 -0
  231. package/components/table/render/body/TableBodySection.js +68 -0
  232. package/components/table/render/body/TableBodySection.js.map +1 -0
  233. package/components/table/render/body/TableDataRow.d.ts +15 -0
  234. package/components/table/render/body/TableDataRow.js +143 -0
  235. package/components/table/render/body/TableDataRow.js.map +1 -0
  236. package/components/table/render/body/TableEmptyRow.d.ts +7 -0
  237. package/components/table/render/body/TableEmptyRow.js +6 -0
  238. package/components/table/render/body/TableEmptyRow.js.map +1 -0
  239. package/components/table/render/body/TableExpandedRow.d.ts +8 -0
  240. package/components/table/render/body/TableExpandedRow.js +84 -0
  241. package/components/table/render/body/TableExpandedRow.js.map +1 -0
  242. package/components/table/render/body/TableGroupRow.d.ts +8 -0
  243. package/components/table/render/body/TableGroupRow.js +21 -0
  244. package/components/table/render/body/TableGroupRow.js.map +1 -0
  245. package/components/table/render/body/TableSpacerRow.d.ts +7 -0
  246. package/components/table/render/body/TableSpacerRow.js +15 -0
  247. package/components/table/render/body/TableSpacerRow.js.map +1 -0
  248. package/components/table/render/footer/TableFooterCell.d.ts +8 -0
  249. package/components/table/render/footer/TableFooterCell.js +31 -0
  250. package/components/table/render/footer/TableFooterCell.js.map +1 -0
  251. package/components/table/render/footer/TableFooterContent.d.ts +6 -0
  252. package/components/table/render/footer/TableFooterContent.js +6 -0
  253. package/components/table/render/footer/TableFooterContent.js.map +1 -0
  254. package/components/table/render/footer/TableFooterSection.d.ts +10 -0
  255. package/components/table/render/footer/TableFooterSection.js +28 -0
  256. package/components/table/render/footer/TableFooterSection.js.map +1 -0
  257. package/components/table/render/header/TableBatchDropdown.d.ts +9 -0
  258. package/components/table/render/header/TableBatchDropdown.js +28 -0
  259. package/components/table/render/header/TableBatchDropdown.js.map +1 -0
  260. package/components/table/render/header/TableColumnFilter.d.ts +66 -0
  261. package/components/table/render/header/TableColumnFilter.js +70 -0
  262. package/components/table/render/header/TableColumnFilter.js.map +1 -0
  263. package/components/table/render/header/TableDraggableHeaderCell.d.ts +3 -0
  264. package/components/table/render/header/TableDraggableHeaderCell.js +54 -0
  265. package/components/table/render/header/TableDraggableHeaderCell.js.map +1 -0
  266. package/components/table/render/header/TableHeader.types.d.ts +35 -0
  267. package/components/table/render/header/TableHeaderCellContent.d.ts +3 -0
  268. package/components/table/render/header/TableHeaderCellContent.js +57 -0
  269. package/components/table/render/header/TableHeaderCellContent.js.map +1 -0
  270. package/components/table/render/header/TableHeaderCellResizeHandle.d.ts +3 -0
  271. package/components/table/render/header/TableHeaderCellResizeHandle.js +22 -0
  272. package/components/table/render/header/TableHeaderCellResizeHandle.js.map +1 -0
  273. package/components/table/render/header/TableHeaderDragOverlay.d.ts +13 -0
  274. package/components/table/render/header/TableHeaderDragOverlay.js +35 -0
  275. package/components/table/render/header/TableHeaderDragOverlay.js.map +1 -0
  276. package/components/table/render/header/TableHeaderSection.d.ts +3 -0
  277. package/components/table/render/header/TableHeaderSection.js +104 -0
  278. package/components/table/render/header/TableHeaderSection.js.map +1 -0
  279. package/components/table/render/header/TableHeaderSelectionCell.d.ts +9 -0
  280. package/components/table/render/header/TableHeaderSelectionCell.js +41 -0
  281. package/components/table/render/header/TableHeaderSelectionCell.js.map +1 -0
  282. package/components/table/render/header/TableStaticHeaderCell.d.ts +3 -0
  283. package/components/table/render/header/TableStaticHeaderCell.js +36 -0
  284. package/components/table/render/header/TableStaticHeaderCell.js.map +1 -0
  285. package/components/table/render/header/resolveAriaSort.d.ts +2 -0
  286. package/components/table/render/header/resolveAriaSort.js +8 -0
  287. package/components/table/render/header/resolveAriaSort.js.map +1 -0
  288. package/components/table/render/header/resolveColumnCollisionDetection.d.ts +2 -0
  289. package/components/table/render/header/resolveColumnCollisionDetection.js +9 -0
  290. package/components/table/render/header/resolveColumnCollisionDetection.js.map +1 -0
  291. package/components/table/render/header/resolveHeaderCellClassName.d.ts +10 -0
  292. package/components/table/render/header/resolveHeaderCellClassName.js +22 -0
  293. package/components/table/render/header/resolveHeaderCellClassName.js.map +1 -0
  294. package/components/table/render/header/resolveHeaderCellStyle.d.ts +829 -0
  295. package/components/table/render/header/resolveHeaderCellStyle.js +9 -0
  296. package/components/table/render/header/resolveHeaderCellStyle.js.map +1 -0
  297. package/components/table/selection/useTableSelection.d.ts +82 -0
  298. package/components/table/selection/useTableSelection.js +35 -0
  299. package/components/table/selection/useTableSelection.js.map +1 -0
  300. package/components/table/settings/TableColumnsDropdown.d.ts +90 -0
  301. package/components/table/settings/TableColumnsDropdown.js +137 -0
  302. package/components/table/settings/TableColumnsDropdown.js.map +1 -0
  303. package/components/table/settings/TableColumnsDropdownItem.d.ts +8 -0
  304. package/components/table/settings/TableColumnsDropdownItem.js +66 -0
  305. package/components/table/settings/TableColumnsDropdownItem.js.map +1 -0
  306. package/components/table/shared/getAlignClassName.d.ts +3 -0
  307. package/components/table/shared/getAlignClassName.js +6 -0
  308. package/components/table/shared/getAlignClassName.js.map +1 -0
  309. package/components/table/shared/getInteractiveRowProps.d.ts +14 -0
  310. package/components/table/shared/getInteractiveRowProps.js +15 -0
  311. package/components/table/shared/getInteractiveRowProps.js.map +1 -0
  312. package/components/table/shared/resolveTableAria.d.ts +2 -0
  313. package/components/table/shared/resolveTableAria.js +6 -0
  314. package/components/table/shared/resolveTableAria.js.map +1 -0
  315. package/components/table/tableSizing.constants.d.ts +4 -0
  316. package/components/table/tableSizing.constants.js +8 -0
  317. package/components/table/tableSizing.constants.js.map +1 -0
  318. package/components/teaser/TeaserContainer.js +3 -3
  319. package/components/teaser/TeaserContainer.js.map +1 -1
  320. package/components/virtualList/VirtualList.js +16 -13
  321. package/components/virtualList/VirtualList.js.map +1 -1
  322. package/googleAnalyticsUtils.d.ts +1 -0
  323. package/googleAnalyticsUtils.js +9 -0
  324. package/googleAnalyticsUtils.js.map +1 -0
  325. package/hooks/useCookies.js +17 -17
  326. package/hooks/useCookies.js.map +1 -1
  327. package/hooks/useDraggableElement.d.ts +35 -0
  328. package/hooks/useDraggableElement.js +49 -0
  329. package/hooks/useDraggableElement.js.map +1 -0
  330. package/hooks/useElapsedTime.js +4 -4
  331. package/hooks/useElapsedTime.js.map +1 -1
  332. package/hooks/useLocationSuggestions.js +13 -10
  333. package/hooks/useLocationSuggestions.js.map +1 -1
  334. package/hooks/useMergeRefs.js +12 -12
  335. package/hooks/useMergeRefs.js.map +1 -1
  336. package/hooks/usePrevious.d.ts +1 -1
  337. package/hooks/usePrevious.js.map +1 -1
  338. package/hooks/useResizeObserver.js +25 -10
  339. package/hooks/useResizeObserver.js.map +1 -1
  340. package/hooks/useRioCookieConsent.js +7 -4
  341. package/hooks/useRioCookieConsent.js.map +1 -1
  342. package/hooks/useSorting.js +10 -10
  343. package/hooks/useSorting.js.map +1 -1
  344. package/hooks/useStorage.js +12 -12
  345. package/hooks/useStorage.js.map +1 -1
  346. package/hooks/useSum.js +10 -7
  347. package/hooks/useSum.js.map +1 -1
  348. package/hooks/useTableSelection.js.map +1 -1
  349. package/hooks/useTimeout.js +6 -3
  350. package/hooks/useTimeout.js.map +1 -1
  351. package/package.json +3 -3
  352. package/routeUtils.js +12 -10
  353. package/utils/analytics/analyticsAnalysisUtils.d.ts +27 -0
  354. package/utils/analytics/analyticsAnalysisUtils.js +161 -0
  355. package/utils/analytics/analyticsAnalysisUtils.js.map +1 -0
  356. package/utils/analytics/autoTracking.d.ts +14 -0
  357. package/utils/analytics/autoTracking.js +19 -0
  358. package/utils/analytics/autoTracking.js.map +1 -0
  359. package/utils/analytics/createAnalyticsOverlayTooltip.d.ts +36 -0
  360. package/utils/analytics/createAnalyticsOverlayTooltip.js +203 -0
  361. package/utils/analytics/createAnalyticsOverlayTooltip.js.map +1 -0
  362. package/utils/analytics/googleAnalyticsUtils.d.ts +37 -0
  363. package/utils/analytics/googleAnalyticsUtils.js +37 -0
  364. package/utils/analytics/googleAnalyticsUtils.js.map +1 -0
  365. package/utils/analytics/logAnalyticsOverlayUnmatchedEntries.d.ts +8 -0
  366. package/utils/analytics/logAnalyticsOverlayUnmatchedEntries.js +61 -0
  367. package/utils/analytics/logAnalyticsOverlayUnmatchedEntries.js.map +1 -0
  368. package/utils/analytics/useAnalyticsOverlayDom.d.ts +11 -0
  369. package/utils/analytics/useAnalyticsOverlayDom.js +120 -0
  370. package/utils/analytics/useAnalyticsOverlayDom.js.map +1 -0
  371. package/utils/arrayMove.js +11 -0
  372. package/utils/arrayMove.js.map +1 -0
  373. package/utils/cssuseragent.js +2 -2
  374. package/utils/cssuseragent.js.map +1 -1
  375. package/utils/deviceUtils.js.map +1 -1
  376. package/utils/formatUtils.js.map +1 -1
  377. package/utils/hasUtilityClass.js +3 -3
  378. package/utils/hasUtilityClass.js.map +1 -1
  379. package/utils/hidePiiData.js.map +1 -1
  380. package/utils/init/checkForReleaseVersion.js +4 -4
  381. package/utils/init/checkForReleaseVersion.js.map +1 -1
  382. package/utils/init/styledLogs.js.map +1 -1
  383. package/utils/mergeRefs.js +3 -3
  384. package/utils/mergeRefs.js.map +1 -1
  385. package/utils/routeUtils.d.ts +32 -1
  386. package/utils/routeUtils.js +85 -67
  387. package/utils/routeUtils.js.map +1 -1
  388. package/utils/storageUtils.js +9 -9
  389. package/utils/storageUtils.js.map +1 -1
  390. package/version.d.ts +1 -1
  391. package/version.js +2 -2
  392. package/version.js.map +1 -1
  393. package/components/table/TableCol.js.map +0 -1
  394. package/components/table/TableHead.js.map +0 -1
  395. package/components/table/TableSettingsColumnButtons.js +0 -45
  396. package/components/table/TableSettingsColumnButtons.js.map +0 -1
  397. package/components/table/TableSettingsColumnDetails.js.map +0 -1
  398. package/components/table/TableSettingsDialog.js +0 -208
  399. package/components/table/TableSettingsDialog.js.map +0 -1
  400. package/components/table/TableSettingsDialogFooter.js.map +0 -1
  401. package/components/table/TableSettingsListContainer.js.map +0 -1
  402. package/components/table/TableSettingsListItem.js +0 -96
  403. package/components/table/TableSettingsListItem.js.map +0 -1
  404. /package/components/table/{TableCol.d.ts → native/TableCol.d.ts} +0 -0
  405. /package/components/table/{TableCol.js → native/TableCol.js} +0 -0
  406. /package/components/table/{TableHead.d.ts → native/TableHead.d.ts} +0 -0
  407. /package/components/table/{TableSettingsColumnButtons.d.ts → native/TableSettingsColumnButtons.d.ts} +0 -0
  408. /package/components/table/{TableSettingsColumnDetails.d.ts → native/TableSettingsColumnDetails.d.ts} +0 -0
  409. /package/components/table/{TableSettingsDialogFooter.d.ts → native/TableSettingsDialogFooter.d.ts} +0 -0
  410. /package/components/table/{TableSettingsListContainer.d.ts → native/TableSettingsListContainer.d.ts} +0 -0
  411. /package/components/table/{TableSettingsListContainer.js → native/TableSettingsListContainer.js} +0 -0
  412. /package/components/table/{TableSettingsListItem.d.ts → native/TableSettingsListItem.d.ts} +0 -0
@@ -1,8 +1,13 @@
1
1
  import { isEqual } from 'es-toolkit';
2
2
  import { SortDirectionType } from './SortUtils';
3
- import { TableColumnDetailsMap, TableColumnsSettings } from '../components/table/TableSettingsDialog';
3
+ import { TableColumnDetailsMap, TableColumnsSettings } from '../components/table/native/TableSettingsDialog';
4
4
  export { isEqual };
5
5
  export type ColumnsSettings = TableColumnsSettings;
6
+ export type TableColumnConfigItem = {
7
+ key: string;
8
+ visible?: boolean;
9
+ width?: number | string;
10
+ };
6
11
  /**
7
12
  * Returns a compact sort direction prefix for use in URL params.
8
13
  * Serialize: Ascending = "", Descending = "-"
@@ -38,6 +43,9 @@ export declare const parseSorting: (sortValueShort: string | null | undefined) =
38
43
  * Serializes column settings into compact strings for a URL param.
39
44
  * Useful to keep table configuration URLs short and readable.
40
45
  *
46
+ * Note: This utility function is intended for the TableSettingsDialog working with the
47
+ * native table elements.
48
+ *
41
49
  * @example
42
50
  * mapColumnsSettingsToStrings({ columnOrder: ['name'], hiddenColumns: [], columnsDetails: { name: { width: 120 } } })
43
51
  * // ['name:120']
@@ -47,10 +55,33 @@ export declare const mapColumnsSettingsToStrings: ({ columnOrder, hiddenColumns,
47
55
  * Parses compact column strings into column settings using defaults.
48
56
  * Useful to restore table settings from URL state.
49
57
  *
58
+ * Note: This utility function is intended for the TableSettingsDialog working with the
59
+ * native table elements.
60
+ *
50
61
  * @example
51
62
  * parseColumnsSettingsStrings(['-name:200'], { name: { width: 120, defaultWidth: 120 } })
52
63
  */
53
64
  export declare const parseColumnsSettingsStrings: (settings: string[], defaultColumnsDetails: TableColumnDetailsMap) => TableColumnsSettings;
65
+ /**
66
+ * Serializes new table columns config into compact strings for a URL param.
67
+ *
68
+ * Format:
69
+ * - visible column: `name`
70
+ * - hidden column: `-name`
71
+ * - width override: `name:200`
72
+ *
73
+ * @example
74
+ * serializeColumnsConfig([{ key: 'name', visible: true, width: 120 }], [{ key: 'name', width: 100 }])
75
+ * // ['name:120']
76
+ */
77
+ export declare const serializeColumnsConfig: <TColumn extends TableColumnConfigItem>(columns: TColumn[], defaultColumns?: TColumn[]) => string[];
78
+ /**
79
+ * Deserializes compact URL strings into new table columns config using defaults.
80
+ *
81
+ * @example
82
+ * deserializeColumnsConfig(['-name:200'], [{ key: 'name', width: 120, visible: true }])
83
+ */
84
+ export declare const deserializeColumnsConfig: <TColumn extends TableColumnConfigItem>(configStrings: string[], defaultColumns: TColumn[]) => TColumn[];
54
85
  export type UrlTypeMap = {
55
86
  string: string;
56
87
  number: number;
@@ -1,96 +1,114 @@
1
- import { get as l } from "es-toolkit/compat";
2
- import { isNil as p } from "es-toolkit";
1
+ import { get as d } from "es-toolkit/compat";
2
+ import { isNil as l } from "es-toolkit";
3
3
  import { isEqual as A } from "es-toolkit";
4
- import { SortDirection as g } from "./SortUtils.js";
5
- const f = (r) => r === g.DESCENDING ? "-" : "", S = (r) => r?.sortBy ? `${f(r.sortDir)}${r.sortBy}` : null, D = (r) => r ? r.startsWith("-") ? {
6
- sortBy: r.substring(1),
4
+ import { SortDirection as y } from "./SortUtils.js";
5
+ const g = (t) => t === y.DESCENDING ? "-" : "", $ = (t) => t?.sortBy ? `${g(t.sortDir)}${t.sortBy}` : null, D = (t) => t ? t.startsWith("-") ? {
6
+ sortBy: t.substring(1),
7
7
  // remove '-'
8
8
  sortDir: "DESCENDING"
9
- } : r.startsWith("+") ? {
10
- sortBy: r.substring(1).trim(),
9
+ } : t.startsWith("+") ? {
10
+ sortBy: t.substring(1).trim(),
11
11
  // remove '+' and potential space
12
12
  sortDir: "ASCENDING"
13
13
  } : {
14
- sortBy: r.trim(),
14
+ sortBy: t.trim(),
15
15
  sortDir: "ASCENDING"
16
- } : null, $ = ({
17
- columnOrder: r = [],
18
- hiddenColumns: t = [],
19
- columnsDetails: n = {}
20
- }) => r.map((e) => {
21
- const o = l(n[e], "width"), i = l(n[e], "defaultWidth"), c = o !== 0 && o !== i ? `:${o}` : "";
22
- return `${t.includes(e) ? "-" : ""}${e}${c}`;
23
- }), j = (r, t) => {
24
- const n = {
16
+ } : null, w = ({
17
+ columnOrder: t = [],
18
+ hiddenColumns: e = [],
19
+ columnsDetails: s = {}
20
+ }) => t.map((r) => {
21
+ const i = d(s[r], "width"), o = d(s[r], "defaultWidth"), c = i !== 0 && i !== o ? `:${i}` : "";
22
+ return `${e.includes(r) ? "-" : ""}${r}${c}`;
23
+ }), W = (t, e) => {
24
+ const s = {
25
25
  columnOrder: [],
26
26
  hiddenColumns: [],
27
- columnsDetails: { ...t }
27
+ columnsDetails: { ...e }
28
28
  };
29
- return r.forEach((s) => {
30
- const [e, o] = s.split(":"), i = e.startsWith("-") ? e.substr(1) : e;
31
- if (n.columnOrder = [...n.columnOrder, i], o) {
32
- const c = Number.parseInt(o, 10);
33
- Number.isFinite(c) && (n.columnsDetails[i] = { ...n.columnsDetails[i], width: c });
29
+ return t.forEach((n) => {
30
+ const [r, i] = n.split(":"), o = r.startsWith("-") ? r.substr(1) : r;
31
+ if (s.columnOrder = [...s.columnOrder, o], i) {
32
+ const c = Number.parseInt(i, 10);
33
+ Number.isFinite(c) && (s.columnsDetails[o] = { ...s.columnsDetails[o], width: c });
34
34
  } else
35
- n.columnsDetails[i] = { ...t[i] };
36
- e.startsWith("-") && (n.hiddenColumns = [...n.hiddenColumns, i]);
37
- }), n;
38
- }, a = (r) => encodeURIComponent(String(r)), m = (r) => decodeURIComponent(r), E = (r, t) => {
39
- const n = new Map(t.map((e) => [e.key, e])), s = [];
40
- return r.forEach((e, o) => {
41
- const i = n.get(o), c = encodeURIComponent(o), u = encodeURIComponent(e);
42
- if (i && ["array", "array-number", "object"].includes(i.type ?? "string")) {
43
- const d = u.replace(/%2C/g, ",").replace(/%3A/g, ":");
44
- s.push(`${c}=${d}`);
35
+ s.columnsDetails[o] = { ...e[o] };
36
+ r.startsWith("-") && (s.hiddenColumns = [...s.hiddenColumns, o]);
37
+ }), s;
38
+ }, E = (t, e = []) => {
39
+ const s = new Map(e.map((n) => [n.key, n]));
40
+ return t.map((n) => {
41
+ const r = s.get(n.key), i = !l(n.width) && n.width !== r?.width ? `:${n.width}` : "";
42
+ return `${n.visible === !1 ? "-" : ""}${n.key}${i}`;
43
+ });
44
+ }, h = (t, e) => l(t) || t === "" ? e : /^-?\d+(\.\d+)?$/.test(t) ? Number(t) : t, j = (t, e) => {
45
+ const s = new Map(e.map((i) => [i.key, i])), n = /* @__PURE__ */ new Set(), r = [];
46
+ return t.forEach((i) => {
47
+ const [o, c] = i.split(":"), u = o.startsWith("-") ? o.substring(1) : o, a = s.get(u);
48
+ a && (n.add(u), r.push({
49
+ ...a,
50
+ visible: !o.startsWith("-"),
51
+ width: h(c, a.width)
52
+ }));
53
+ }), [...r, ...e.filter((i) => !n.has(i.key))];
54
+ }, m = (t) => encodeURIComponent(String(t)), p = (t) => decodeURIComponent(t), B = (t, e) => {
55
+ const s = new Map(e.map((r) => [r.key, r])), n = [];
56
+ return t.forEach((r, i) => {
57
+ const o = s.get(i), c = encodeURIComponent(i), u = encodeURIComponent(r);
58
+ if (o && ["array", "array-number", "object"].includes(o.type ?? "string")) {
59
+ const f = u.replace(/%2C/g, ",").replace(/%3A/g, ":");
60
+ n.push(`${c}=${f}`);
45
61
  } else
46
- s.push(`${c}=${u}`);
47
- }), s.join("&");
48
- }, W = (r, t) => {
49
- if (p(r) || r === "")
62
+ n.push(`${c}=${u}`);
63
+ }), n.join("&");
64
+ }, k = (t, e) => {
65
+ if (l(t) || t === "")
50
66
  return null;
51
- switch (t) {
67
+ switch (e) {
52
68
  case "string":
53
69
  case "number":
54
- return String(r);
70
+ return String(t);
55
71
  case "boolean":
56
- return r ? "true" : "false";
72
+ return t ? "true" : "false";
57
73
  case "array":
58
74
  case "array-number":
59
- return !Array.isArray(r) || r.length === 0 ? null : r.map(String).join(",");
75
+ return !Array.isArray(t) || t.length === 0 ? null : t.map(String).join(",");
60
76
  case "object":
61
- return typeof r != "object" || Object.keys(r).length === 0 ? null : Object.entries(r).map(([n, s]) => `${a(n)}:${a(String(s))}`).join(",");
77
+ return typeof t != "object" || Object.keys(t).length === 0 ? null : Object.entries(t).map(([s, n]) => `${m(s)}:${m(String(n))}`).join(",");
62
78
  default:
63
- return String(r);
79
+ return String(t);
64
80
  }
65
- }, y = {
66
- string: (r) => r,
67
- number: (r) => {
68
- const t = Number(r);
69
- return Number.isNaN(t) ? null : t;
81
+ }, C = {
82
+ string: (t) => t,
83
+ number: (t) => {
84
+ const e = Number(t);
85
+ return Number.isNaN(e) ? null : e;
70
86
  },
71
- boolean: (r) => {
72
- const t = r.toLowerCase();
73
- return t === "true" || t === "1" || t === "yes" || t === "on";
87
+ boolean: (t) => {
88
+ const e = t.toLowerCase();
89
+ return e === "true" || e === "1" || e === "yes" || e === "on";
74
90
  },
75
- array: (r) => r.split(",").filter(Boolean),
76
- "array-number": (r) => r.split(",").map(Number).filter((t) => !Number.isNaN(t)),
77
- object: (r) => {
78
- const t = {};
79
- return r.split(",").forEach((n) => {
80
- const [s, e] = n.split(":");
81
- s && e && (t[m(s)] = m(e));
82
- }), t;
91
+ array: (t) => t.split(",").filter(Boolean),
92
+ "array-number": (t) => t.split(",").map(Number).filter((e) => !Number.isNaN(e)),
93
+ object: (t) => {
94
+ const e = {};
95
+ return t.split(",").forEach((s) => {
96
+ const [n, r] = s.split(":");
97
+ n && r && (e[p(n)] = p(r));
98
+ }), e;
83
99
  }
84
- }, w = (r, t) => p(r) ? null : y[t](r);
100
+ }, z = (t, e) => l(t) ? null : C[e](t);
85
101
  export {
86
- w as deserializeValue,
87
- f as getSortDirShort,
102
+ j as deserializeColumnsConfig,
103
+ z as deserializeValue,
104
+ g as getSortDirShort,
88
105
  A as isEqual,
89
- $ as mapColumnsSettingsToStrings,
90
- j as parseColumnsSettingsStrings,
106
+ w as mapColumnsSettingsToStrings,
107
+ W as parseColumnsSettingsStrings,
91
108
  D as parseSorting,
92
- S as serializeSorting,
93
- W as serializeValue,
94
- E as toQueryString
109
+ E as serializeColumnsConfig,
110
+ $ as serializeSorting,
111
+ k as serializeValue,
112
+ B as toQueryString
95
113
  };
96
114
  //# sourceMappingURL=routeUtils.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"routeUtils.js","sources":["../../src/utils/routeUtils.ts"],"sourcesContent":["import { get } from 'es-toolkit/compat';\nimport { isEqual, isNil } from 'es-toolkit';\n\nimport { SortDirection, type SortDirectionType } from './SortUtils';\nimport type { TableColumnDetailsMap, TableColumnsSettings } from '../components/table/TableSettingsDialog';\n\n// Re-export isEqual for use in the Consumer's useSelector\nexport { isEqual };\n\n// Moved type definition to TableSettingsDialog but reexported here for backwards compatibility\n// TODO: remove this re-export for next major release 3.0\nexport type ColumnsSettings = TableColumnsSettings;\n\n/**\n * Returns a compact sort direction prefix for use in URL params.\n * Serialize: Ascending = \"\", Descending = \"-\"\n *\n * Useful for concise sort state like `sort=-name` or `sort=name`.\n *\n * @example\n * getSortDirShort(SortDirection.DESCENDING) // '-'\n */\nexport const getSortDirShort = (sortDir: string) => (sortDir === SortDirection.DESCENDING ? '-' : '');\n\n/**\n * Returns a serialized string of the sort order and sort direction.\n *\n * @param sortInfo { sortDir: SortDirectionType; sortBy: string }\n * @returns\n */\nexport const serializeSorting = (sortInfo: { sortDir: SortDirectionType; sortBy: string }) => {\n if (!sortInfo?.sortBy) {\n return null;\n }\n return `${getSortDirShort(sortInfo.sortDir)}${sortInfo.sortBy}`;\n};\n\n/**\n * Parses a compact sort param (e.g. `name` or `-name`) into sort fields.\n * Useful when reading URL params into table state.\n *\n * @example\n * parseSorting('-createdAt') // { sortBy: 'createdAt', sortDir: 'DESCENDING' }\n */\nexport const parseSorting = (sortValueShort: string | null | undefined) => {\n if (!sortValueShort) {\n return null;\n }\n\n // Check for descending prefix\n if (sortValueShort.startsWith('-')) {\n return {\n sortBy: sortValueShort.substring(1), // remove '-'\n sortDir: 'DESCENDING',\n };\n }\n\n // Check for legacy ascending prefix (optional, for backward compat)\n // There was even a bug in qs 6.7.0 where the '+' sorting will be parsed as a\n // space by qs even though decoding is disabled\n // therefore, we need to trim the value\n if (sortValueShort.startsWith('+')) {\n return {\n sortBy: sortValueShort.substring(1).trim(), // remove '+' and potential space\n sortDir: 'ASCENDING',\n };\n }\n\n // Default: No prefix = Ascending\n return {\n sortBy: sortValueShort.trim(),\n sortDir: 'ASCENDING',\n };\n};\n\n/**\n * Serializes column settings into compact strings for a URL param.\n * Useful to keep table configuration URLs short and readable.\n *\n * @example\n * mapColumnsSettingsToStrings({ columnOrder: ['name'], hiddenColumns: [], columnsDetails: { name: { width: 120 } } })\n * // ['name:120']\n */\nexport const mapColumnsSettingsToStrings = ({\n columnOrder = [],\n hiddenColumns = [],\n columnsDetails = {},\n}: ColumnsSettings): string[] => {\n const mappedColumns = columnOrder.map(column => {\n const currentWidth = get(columnsDetails[column], 'width');\n const defaultWidth = get(columnsDetails[column], 'defaultWidth');\n\n const width = currentWidth !== 0 && currentWidth !== defaultWidth ? `:${currentWidth}` : '';\n const hiddenSign = hiddenColumns.includes(column) ? '-' : '';\n\n return `${hiddenSign}${column}${width}`;\n });\n\n return mappedColumns;\n};\n\n/**\n * Parses compact column strings into column settings using defaults.\n * Useful to restore table settings from URL state.\n *\n * @example\n * parseColumnsSettingsStrings(['-name:200'], { name: { width: 120, defaultWidth: 120 } })\n */\nexport const parseColumnsSettingsStrings = (\n settings: string[],\n defaultColumnsDetails: TableColumnDetailsMap\n): TableColumnsSettings => {\n const columns: TableColumnsSettings = {\n columnOrder: [],\n hiddenColumns: [],\n columnsDetails: { ...defaultColumnsDetails },\n };\n\n settings.forEach(setting => {\n const [column, columnWidth] = setting.split(':');\n const columnKey = column.startsWith('-') ? column.substr(1) : column;\n\n columns.columnOrder = [...columns.columnOrder, columnKey];\n\n if (columnWidth) {\n const width = Number.parseInt(columnWidth, 10);\n if (Number.isFinite(width)) {\n columns.columnsDetails[columnKey] = { ...columns.columnsDetails[columnKey], width };\n }\n } else {\n columns.columnsDetails[columnKey] = { ...defaultColumnsDetails[columnKey] };\n }\n\n if (column.startsWith('-')) {\n columns.hiddenColumns = [...columns.hiddenColumns, columnKey];\n }\n });\n\n return columns;\n};\n\n// -----------------------------------------------------------------------\n\nexport type UrlTypeMap = {\n string: string;\n number: number;\n boolean: boolean;\n array: string[]; // ?ids=a,b\n 'array-number': number[]; // ?ids=1,2\n object: Record<string, unknown>;\n};\n\nexport type UrlValueType = keyof UrlTypeMap;\n\n// TState = Redux State\n// TValue = value type transported between URL <-> store for this config item.\nexport type UrlConfigItem<TState = unknown, TValue = unknown> = {\n /**\n * The query param key in the URL (e.g., 'q', 'sort')\n */\n key: string;\n\n /**\n * Selector to retrieve the current value from Redux.\n */\n selector: (state: TState) => TValue;\n\n /**\n * Action creator to dispatch the new value to Redux.\n */\n action: (value: TValue) => unknown;\n\n /**\n * The generic type for auto-parsing/serialization\n */\n type?: UrlValueType;\n\n /**\n * Default value for the given key. Must be explicitly provided and\n * must not be `undefined`.\n *\n * 1. If URL is missing the key, this value is applied to Redux.\n * 2. If Redux matches this value, the key is removed from URL.\n */\n defaultValue: Exclude<TValue, undefined>;\n\n /**\n * Navigation behavior when this specific value changes\n *\n * Behavior in `useUrlState`:\n * - `'push'`: every change creates a new history entry.\n * - `'replace'`: changes replace the current entry, except the first\n * transition from default -> non-default, which is pushed once.\n *\n * @default 'push'\n */\n history?: 'push' | 'replace';\n\n /**\n * Optional: Custom function to convert Redux Object -> URL String\n */\n customSerialize?: (reduxValue: TValue) => string | null;\n\n /**\n * Optional: Custom function to convert URL String -> Redux Object\n */\n customDeserialize?: (urlValue: string | null) => TValue | null;\n};\n\nconst encode = (str: string | number) => encodeURIComponent(String(str));\nconst decode = (str: string) => decodeURIComponent(str);\n\n/**\n * Generates a URL query string that mimics 'qs' library behavior\n * by keeping commas and plus signs unencoded for readability.\n */\nexport const toQueryString = (params: URLSearchParams, config: readonly UrlConfigItem[]): string => {\n // Create a map for O(1) lookups\n const configMap = new Map(config.map(c => [c.key, c]));\n const pairs: string[] = [];\n\n params.forEach((value, key) => {\n const item = configMap.get(key);\n\n // 1. Strict Encoding by default (Safe for all strings)\n const encodedKey = encodeURIComponent(key);\n const encodedValue = encodeURIComponent(value);\n\n // 2. Determine if we should make it \"Pretty\"\n // We only prettify complex types where readability matters (lists/objects)\n const isComplexType = item && ['array', 'array-number', 'object'].includes(item.type ?? 'string');\n\n if (isComplexType) {\n // DECODE safe characters for readability\n const prettyValue = encodedValue\n .replace(/%2C/g, ',') // Restore Comma\n .replace(/%3A/g, ':'); // Restore Colon\n\n pairs.push(`${encodedKey}=${prettyValue}`);\n } else {\n // Keep Strict (e.g. for search inputs \"a+b\" -> \"a%2Bb\")\n pairs.push(`${encodedKey}=${encodedValue}`);\n }\n });\n\n return pairs.join('&');\n};\n\n/**\n * Converts a JS value into a string suitable for URLSearchParams.\n * Returns null if the value is empty/invalid.\n */\nexport const serializeValue = <K extends UrlValueType>(\n value: UrlTypeMap[K] | null | undefined,\n type: K\n): string | null => {\n if (isNil(value) || value === '') {\n return null;\n }\n\n switch (type) {\n case 'string':\n case 'number':\n return String(value);\n\n case 'boolean':\n // UX: Output readable \"true\"/\"false\"\n return value ? 'true' : 'false';\n\n case 'array':\n case 'array-number':\n if (!Array.isArray(value) || value.length === 0) {\n return null;\n }\n return value.map(String).join(',');\n\n case 'object':\n if (typeof value !== 'object' || Object.keys(value).length === 0) {\n return null;\n }\n // Format: key:val,key2:val2\n return Object.entries(value)\n .map(([key, objectValue]) => `${encode(key)}:${encode(String(objectValue))}`)\n .join(',');\n\n default:\n return String(value);\n }\n};\n\n/**\n * Internal parser map used by `deserializeValue`.\n *\n * For each supported URL value type key, this map provides the exact parser\n * that converts a raw query-string value into the corresponding `UrlTypeMap` value.\n *\n * This keeps parsing logic centralized and enforces the type contract:\n * a parser for `'number'` must return `number | null`, a parser for `'array'`\n * must return `string[] | null`, and so on.\n */\nconst urlValueDeserializers: { [TValueTypeKey in UrlValueType]: (value: string) => UrlTypeMap[TValueTypeKey] | null } =\n {\n string: value => value,\n\n number: value => {\n const num = Number(value);\n return Number.isNaN(num) ? null : num;\n },\n\n boolean: value => {\n const lower = value.toLowerCase();\n return lower === 'true' || lower === '1' || lower === 'yes' || lower === 'on';\n },\n\n array: value => value.split(',').filter(Boolean),\n\n 'array-number': value =>\n value\n .split(',')\n .map(Number)\n .filter(n => !Number.isNaN(n)),\n\n object: value => {\n const obj: Record<string, string> = {};\n value.split(',').forEach(pair => {\n const [key, val] = pair.split(':');\n if (key && val) {\n obj[decode(key)] = decode(val);\n }\n });\n return obj;\n },\n };\n\n/**\n * Generic deserialize function. Converts a URL string value back into a JS Primitive/Object.\n *\n * <TUrlValueType extends UrlValueType>: Capture the specific string literal passed in (e.g. 'number').\n * Returns: UrlTypeMap[TUrlValueType] | null (e.g. number | null).\n */\nexport const deserializeValue = <TUrlValueType extends UrlValueType>(\n value: string | null,\n type: TUrlValueType\n): UrlTypeMap[TUrlValueType] | null => {\n if (isNil(value)) {\n return null;\n }\n return urlValueDeserializers[type](value);\n};\n"],"names":["getSortDirShort","sortDir","SortDirection","serializeSorting","sortInfo","parseSorting","sortValueShort","mapColumnsSettingsToStrings","columnOrder","hiddenColumns","columnsDetails","column","currentWidth","get","defaultWidth","width","parseColumnsSettingsStrings","settings","defaultColumnsDetails","columns","setting","columnWidth","columnKey","encode","str","decode","toQueryString","params","config","configMap","c","pairs","value","key","item","encodedKey","encodedValue","prettyValue","serializeValue","type","isNil","objectValue","urlValueDeserializers","num","lower","n","obj","pair","val","deserializeValue"],"mappings":";;;;AAsBO,MAAMA,IAAkB,CAACC,MAAqBA,MAAYC,EAAc,aAAa,MAAM,IAQrFC,IAAmB,CAACC,MACxBA,GAAU,SAGR,GAAGJ,EAAgBI,EAAS,OAAO,CAAC,GAAGA,EAAS,MAAM,KAFlD,MAYFC,IAAe,CAACC,MACpBA,IAKDA,EAAe,WAAW,GAAG,IACtB;AAAA,EACH,QAAQA,EAAe,UAAU,CAAC;AAAA;AAAA,EAClC,SAAS;AAAA,IAQbA,EAAe,WAAW,GAAG,IACtB;AAAA,EACH,QAAQA,EAAe,UAAU,CAAC,EAAE,KAAA;AAAA;AAAA,EACpC,SAAS;AAAA,IAKV;AAAA,EACH,QAAQA,EAAe,KAAA;AAAA,EACvB,SAAS;AAAA,IAzBF,MAqCFC,IAA8B,CAAC;AAAA,EACxC,aAAAC,IAAc,CAAA;AAAA,EACd,eAAAC,IAAgB,CAAA;AAAA,EAChB,gBAAAC,IAAiB,CAAA;AACrB,MAC0BF,EAAY,IAAI,CAAAG,MAAU;AAC5C,QAAMC,IAAeC,EAAIH,EAAeC,CAAM,GAAG,OAAO,GAClDG,IAAeD,EAAIH,EAAeC,CAAM,GAAG,cAAc,GAEzDI,IAAQH,MAAiB,KAAKA,MAAiBE,IAAe,IAAIF,CAAY,KAAK;AAGzF,SAAO,GAFYH,EAAc,SAASE,CAAM,IAAI,MAAM,EAEtC,GAAGA,CAAM,GAAGI,CAAK;AACzC,CAAC,GAYQC,IAA8B,CACvCC,GACAC,MACuB;AACvB,QAAMC,IAAgC;AAAA,IAClC,aAAa,CAAA;AAAA,IACb,eAAe,CAAA;AAAA,IACf,gBAAgB,EAAE,GAAGD,EAAA;AAAA,EAAsB;AAG/C,SAAAD,EAAS,QAAQ,CAAAG,MAAW;AACxB,UAAM,CAACT,GAAQU,CAAW,IAAID,EAAQ,MAAM,GAAG,GACzCE,IAAYX,EAAO,WAAW,GAAG,IAAIA,EAAO,OAAO,CAAC,IAAIA;AAI9D,QAFAQ,EAAQ,cAAc,CAAC,GAAGA,EAAQ,aAAaG,CAAS,GAEpDD,GAAa;AACb,YAAMN,IAAQ,OAAO,SAASM,GAAa,EAAE;AAC7C,MAAI,OAAO,SAASN,CAAK,MACrBI,EAAQ,eAAeG,CAAS,IAAI,EAAE,GAAGH,EAAQ,eAAeG,CAAS,GAAG,OAAAP,EAAA;AAAA,IAEpF;AACI,MAAAI,EAAQ,eAAeG,CAAS,IAAI,EAAE,GAAGJ,EAAsBI,CAAS,EAAA;AAG5E,IAAIX,EAAO,WAAW,GAAG,MACrBQ,EAAQ,gBAAgB,CAAC,GAAGA,EAAQ,eAAeG,CAAS;AAAA,EAEpE,CAAC,GAEMH;AACX,GAsEMI,IAAS,CAACC,MAAyB,mBAAmB,OAAOA,CAAG,CAAC,GACjEC,IAAS,CAACD,MAAgB,mBAAmBA,CAAG,GAMzCE,IAAgB,CAACC,GAAyBC,MAA6C;AAEhG,QAAMC,IAAY,IAAI,IAAID,EAAO,IAAI,CAAAE,MAAK,CAACA,EAAE,KAAKA,CAAC,CAAC,CAAC,GAC/CC,IAAkB,CAAA;AAExB,SAAAJ,EAAO,QAAQ,CAACK,GAAOC,MAAQ;AAC3B,UAAMC,IAAOL,EAAU,IAAII,CAAG,GAGxBE,IAAa,mBAAmBF,CAAG,GACnCG,IAAe,mBAAmBJ,CAAK;AAM7C,QAFsBE,KAAQ,CAAC,SAAS,gBAAgB,QAAQ,EAAE,SAASA,EAAK,QAAQ,QAAQ,GAE7E;AAEf,YAAMG,IAAcD,EACf,QAAQ,QAAQ,GAAG,EACnB,QAAQ,QAAQ,GAAG;AAExB,MAAAL,EAAM,KAAK,GAAGI,CAAU,IAAIE,CAAW,EAAE;AAAA,IAC7C;AAEI,MAAAN,EAAM,KAAK,GAAGI,CAAU,IAAIC,CAAY,EAAE;AAAA,EAElD,CAAC,GAEML,EAAM,KAAK,GAAG;AACzB,GAMaO,IAAiB,CAC1BN,GACAO,MACgB;AAChB,MAAIC,EAAMR,CAAK,KAAKA,MAAU;AAC1B,WAAO;AAGX,UAAQO,GAAA;AAAA,IACJ,KAAK;AAAA,IACL,KAAK;AACD,aAAO,OAAOP,CAAK;AAAA,IAEvB,KAAK;AAED,aAAOA,IAAQ,SAAS;AAAA,IAE5B,KAAK;AAAA,IACL,KAAK;AACD,aAAI,CAAC,MAAM,QAAQA,CAAK,KAAKA,EAAM,WAAW,IACnC,OAEJA,EAAM,IAAI,MAAM,EAAE,KAAK,GAAG;AAAA,IAErC,KAAK;AACD,aAAI,OAAOA,KAAU,YAAY,OAAO,KAAKA,CAAK,EAAE,WAAW,IACpD,OAGJ,OAAO,QAAQA,CAAK,EACtB,IAAI,CAAC,CAACC,GAAKQ,CAAW,MAAM,GAAGlB,EAAOU,CAAG,CAAC,IAAIV,EAAO,OAAOkB,CAAW,CAAC,CAAC,EAAE,EAC3E,KAAK,GAAG;AAAA,IAEjB;AACI,aAAO,OAAOT,CAAK;AAAA,EAAA;AAE/B,GAYMU,IACF;AAAA,EACI,QAAQ,CAAAV,MAASA;AAAA,EAEjB,QAAQ,CAAAA,MAAS;AACb,UAAMW,IAAM,OAAOX,CAAK;AACxB,WAAO,OAAO,MAAMW,CAAG,IAAI,OAAOA;AAAA,EACtC;AAAA,EAEA,SAAS,CAAAX,MAAS;AACd,UAAMY,IAAQZ,EAAM,YAAA;AACpB,WAAOY,MAAU,UAAUA,MAAU,OAAOA,MAAU,SAASA,MAAU;AAAA,EAC7E;AAAA,EAEA,OAAO,CAAAZ,MAASA,EAAM,MAAM,GAAG,EAAE,OAAO,OAAO;AAAA,EAE/C,gBAAgB,CAAAA,MACZA,EACK,MAAM,GAAG,EACT,IAAI,MAAM,EACV,OAAO,CAAAa,MAAK,CAAC,OAAO,MAAMA,CAAC,CAAC;AAAA,EAErC,QAAQ,CAAAb,MAAS;AACb,UAAMc,IAA8B,CAAA;AACpC,WAAAd,EAAM,MAAM,GAAG,EAAE,QAAQ,CAAAe,MAAQ;AAC7B,YAAM,CAACd,GAAKe,CAAG,IAAID,EAAK,MAAM,GAAG;AACjC,MAAId,KAAOe,MACPF,EAAIrB,EAAOQ,CAAG,CAAC,IAAIR,EAAOuB,CAAG;AAAA,IAErC,CAAC,GACMF;AAAA,EACX;AACJ,GAQSG,IAAmB,CAC5BjB,GACAO,MAEIC,EAAMR,CAAK,IACJ,OAEJU,EAAsBH,CAAI,EAAEP,CAAK;"}
1
+ {"version":3,"file":"routeUtils.js","sources":["../../src/utils/routeUtils.ts"],"sourcesContent":["import { get } from 'es-toolkit/compat';\nimport { isEqual, isNil } from 'es-toolkit';\n\nimport { SortDirection, type SortDirectionType } from './SortUtils';\nimport type { TableColumnDetailsMap, TableColumnsSettings } from '../components/table/native/TableSettingsDialog';\n\n// Re-export isEqual for use in the Consumer's useSelector\nexport { isEqual };\n\n// Moved type definition to TableSettingsDialog but reexported here for backwards compatibility\n// TODO: remove this re-export for next major release 3.0\nexport type ColumnsSettings = TableColumnsSettings;\n\nexport type TableColumnConfigItem = {\n key: string;\n visible?: boolean;\n width?: number | string;\n};\n\n/**\n * Returns a compact sort direction prefix for use in URL params.\n * Serialize: Ascending = \"\", Descending = \"-\"\n *\n * Useful for concise sort state like `sort=-name` or `sort=name`.\n *\n * @example\n * getSortDirShort(SortDirection.DESCENDING) // '-'\n */\nexport const getSortDirShort = (sortDir: string) => (sortDir === SortDirection.DESCENDING ? '-' : '');\n\n/**\n * Returns a serialized string of the sort order and sort direction.\n *\n * @param sortInfo { sortDir: SortDirectionType; sortBy: string }\n * @returns\n */\nexport const serializeSorting = (sortInfo: { sortDir: SortDirectionType; sortBy: string }) => {\n if (!sortInfo?.sortBy) {\n return null;\n }\n return `${getSortDirShort(sortInfo.sortDir)}${sortInfo.sortBy}`;\n};\n\n/**\n * Parses a compact sort param (e.g. `name` or `-name`) into sort fields.\n * Useful when reading URL params into table state.\n *\n * @example\n * parseSorting('-createdAt') // { sortBy: 'createdAt', sortDir: 'DESCENDING' }\n */\nexport const parseSorting = (sortValueShort: string | null | undefined) => {\n if (!sortValueShort) {\n return null;\n }\n\n // Check for descending prefix\n if (sortValueShort.startsWith('-')) {\n return {\n sortBy: sortValueShort.substring(1), // remove '-'\n sortDir: 'DESCENDING',\n };\n }\n\n // Check for legacy ascending prefix (optional, for backward compat)\n // There was even a bug in qs 6.7.0 where the '+' sorting will be parsed as a\n // space by qs even though decoding is disabled\n // therefore, we need to trim the value\n if (sortValueShort.startsWith('+')) {\n return {\n sortBy: sortValueShort.substring(1).trim(), // remove '+' and potential space\n sortDir: 'ASCENDING',\n };\n }\n\n // Default: No prefix = Ascending\n return {\n sortBy: sortValueShort.trim(),\n sortDir: 'ASCENDING',\n };\n};\n\n/**\n * Serializes column settings into compact strings for a URL param.\n * Useful to keep table configuration URLs short and readable.\n *\n * Note: This utility function is intended for the TableSettingsDialog working with the\n * native table elements.\n *\n * @example\n * mapColumnsSettingsToStrings({ columnOrder: ['name'], hiddenColumns: [], columnsDetails: { name: { width: 120 } } })\n * // ['name:120']\n */\nexport const mapColumnsSettingsToStrings = ({\n columnOrder = [],\n hiddenColumns = [],\n columnsDetails = {},\n}: ColumnsSettings): string[] => {\n const mappedColumns = columnOrder.map(column => {\n const currentWidth = get(columnsDetails[column], 'width');\n const defaultWidth = get(columnsDetails[column], 'defaultWidth');\n\n const width = currentWidth !== 0 && currentWidth !== defaultWidth ? `:${currentWidth}` : '';\n const hiddenSign = hiddenColumns.includes(column) ? '-' : '';\n\n return `${hiddenSign}${column}${width}`;\n });\n\n return mappedColumns;\n};\n\n/**\n * Parses compact column strings into column settings using defaults.\n * Useful to restore table settings from URL state.\n *\n * Note: This utility function is intended for the TableSettingsDialog working with the\n * native table elements.\n *\n * @example\n * parseColumnsSettingsStrings(['-name:200'], { name: { width: 120, defaultWidth: 120 } })\n */\nexport const parseColumnsSettingsStrings = (\n settings: string[],\n defaultColumnsDetails: TableColumnDetailsMap\n): TableColumnsSettings => {\n const columns: TableColumnsSettings = {\n columnOrder: [],\n hiddenColumns: [],\n columnsDetails: { ...defaultColumnsDetails },\n };\n\n settings.forEach(setting => {\n const [column, columnWidth] = setting.split(':');\n const columnKey = column.startsWith('-') ? column.substr(1) : column;\n\n columns.columnOrder = [...columns.columnOrder, columnKey];\n\n if (columnWidth) {\n const width = Number.parseInt(columnWidth, 10);\n if (Number.isFinite(width)) {\n columns.columnsDetails[columnKey] = { ...columns.columnsDetails[columnKey], width };\n }\n } else {\n columns.columnsDetails[columnKey] = { ...defaultColumnsDetails[columnKey] };\n }\n\n if (column.startsWith('-')) {\n columns.hiddenColumns = [...columns.hiddenColumns, columnKey];\n }\n });\n\n return columns;\n};\n\n/**\n * Serializes new table columns config into compact strings for a URL param.\n *\n * Format:\n * - visible column: `name`\n * - hidden column: `-name`\n * - width override: `name:200`\n *\n * @example\n * serializeColumnsConfig([{ key: 'name', visible: true, width: 120 }], [{ key: 'name', width: 100 }])\n * // ['name:120']\n */\nexport const serializeColumnsConfig = <TColumn extends TableColumnConfigItem>(\n columns: TColumn[],\n defaultColumns: TColumn[] = []\n): string[] => {\n const defaultColumnsByKey = new Map(defaultColumns.map(column => [column.key, column]));\n\n return columns.map(column => {\n const defaultColumn = defaultColumnsByKey.get(column.key);\n const width = !isNil(column.width) && column.width !== defaultColumn?.width ? `:${column.width}` : '';\n const hiddenSign = column.visible === false ? '-' : '';\n\n return `${hiddenSign}${column.key}${width}`;\n });\n};\n\nconst parseColumnWidth = (widthValue: string | undefined, defaultWidth: number | string | undefined) => {\n if (isNil(widthValue) || widthValue === '') {\n return defaultWidth;\n }\n\n return /^-?\\d+(\\.\\d+)?$/.test(widthValue) ? Number(widthValue) : widthValue;\n};\n\n/**\n * Deserializes compact URL strings into new table columns config using defaults.\n *\n * @example\n * deserializeColumnsConfig(['-name:200'], [{ key: 'name', width: 120, visible: true }])\n */\nexport const deserializeColumnsConfig = <TColumn extends TableColumnConfigItem>(\n configStrings: string[],\n defaultColumns: TColumn[]\n): TColumn[] => {\n const defaultColumnsByKey = new Map(defaultColumns.map(column => [column.key, column]));\n const seenColumnKeys = new Set<string>();\n const deserializedColumns: TColumn[] = [];\n\n configStrings.forEach(configString => {\n const [column, columnWidth] = configString.split(':');\n const columnKey = column.startsWith('-') ? column.substring(1) : column;\n const defaultColumn = defaultColumnsByKey.get(columnKey);\n\n if (!defaultColumn) {\n return;\n }\n\n seenColumnKeys.add(columnKey);\n deserializedColumns.push({\n ...defaultColumn,\n visible: !column.startsWith('-'),\n width: parseColumnWidth(columnWidth, defaultColumn.width),\n });\n });\n\n return [...deserializedColumns, ...defaultColumns.filter(defaultColumn => !seenColumnKeys.has(defaultColumn.key))];\n};\n\n// -----------------------------------------------------------------------\n\nexport type UrlTypeMap = {\n string: string;\n number: number;\n boolean: boolean;\n array: string[]; // ?ids=a,b\n 'array-number': number[]; // ?ids=1,2\n object: Record<string, unknown>;\n};\n\nexport type UrlValueType = keyof UrlTypeMap;\n\n// TState = Redux State\n// TValue = value type transported between URL <-> store for this config item.\nexport type UrlConfigItem<TState = unknown, TValue = unknown> = {\n /**\n * The query param key in the URL (e.g., 'q', 'sort')\n */\n key: string;\n\n /**\n * Selector to retrieve the current value from Redux.\n */\n selector: (state: TState) => TValue;\n\n /**\n * Action creator to dispatch the new value to Redux.\n */\n action: (value: TValue) => unknown;\n\n /**\n * The generic type for auto-parsing/serialization\n */\n type?: UrlValueType;\n\n /**\n * Default value for the given key. Must be explicitly provided and\n * must not be `undefined`.\n *\n * 1. If URL is missing the key, this value is applied to Redux.\n * 2. If Redux matches this value, the key is removed from URL.\n */\n defaultValue: Exclude<TValue, undefined>;\n\n /**\n * Navigation behavior when this specific value changes\n *\n * Behavior in `useUrlState`:\n * - `'push'`: every change creates a new history entry.\n * - `'replace'`: changes replace the current entry, except the first\n * transition from default -> non-default, which is pushed once.\n *\n * @default 'push'\n */\n history?: 'push' | 'replace';\n\n /**\n * Optional: Custom function to convert Redux Object -> URL String\n */\n customSerialize?: (reduxValue: TValue) => string | null;\n\n /**\n * Optional: Custom function to convert URL String -> Redux Object\n */\n customDeserialize?: (urlValue: string | null) => TValue | null;\n};\n\nconst encode = (str: string | number) => encodeURIComponent(String(str));\nconst decode = (str: string) => decodeURIComponent(str);\n\n/**\n * Generates a URL query string that mimics 'qs' library behavior\n * by keeping commas and plus signs unencoded for readability.\n */\nexport const toQueryString = (params: URLSearchParams, config: readonly UrlConfigItem[]): string => {\n // Create a map for O(1) lookups\n const configMap = new Map(config.map(c => [c.key, c]));\n const pairs: string[] = [];\n\n params.forEach((value, key) => {\n const item = configMap.get(key);\n\n // 1. Strict Encoding by default (Safe for all strings)\n const encodedKey = encodeURIComponent(key);\n const encodedValue = encodeURIComponent(value);\n\n // 2. Determine if we should make it \"Pretty\"\n // We only prettify complex types where readability matters (lists/objects)\n const isComplexType = item && ['array', 'array-number', 'object'].includes(item.type ?? 'string');\n\n if (isComplexType) {\n // DECODE safe characters for readability\n const prettyValue = encodedValue\n .replace(/%2C/g, ',') // Restore Comma\n .replace(/%3A/g, ':'); // Restore Colon\n\n pairs.push(`${encodedKey}=${prettyValue}`);\n } else {\n // Keep Strict (e.g. for search inputs \"a+b\" -> \"a%2Bb\")\n pairs.push(`${encodedKey}=${encodedValue}`);\n }\n });\n\n return pairs.join('&');\n};\n\n/**\n * Converts a JS value into a string suitable for URLSearchParams.\n * Returns null if the value is empty/invalid.\n */\nexport const serializeValue = <K extends UrlValueType>(\n value: UrlTypeMap[K] | null | undefined,\n type: K\n): string | null => {\n if (isNil(value) || value === '') {\n return null;\n }\n\n switch (type) {\n case 'string':\n case 'number':\n return String(value);\n\n case 'boolean':\n // UX: Output readable \"true\"/\"false\"\n return value ? 'true' : 'false';\n\n case 'array':\n case 'array-number':\n if (!Array.isArray(value) || value.length === 0) {\n return null;\n }\n return value.map(String).join(',');\n\n case 'object':\n if (typeof value !== 'object' || Object.keys(value).length === 0) {\n return null;\n }\n // Format: key:val,key2:val2\n return Object.entries(value)\n .map(([key, objectValue]) => `${encode(key)}:${encode(String(objectValue))}`)\n .join(',');\n\n default:\n return String(value);\n }\n};\n\n/**\n * Internal parser map used by `deserializeValue`.\n *\n * For each supported URL value type key, this map provides the exact parser\n * that converts a raw query-string value into the corresponding `UrlTypeMap` value.\n *\n * This keeps parsing logic centralized and enforces the type contract:\n * a parser for `'number'` must return `number | null`, a parser for `'array'`\n * must return `string[] | null`, and so on.\n */\nconst urlValueDeserializers: { [TValueTypeKey in UrlValueType]: (value: string) => UrlTypeMap[TValueTypeKey] | null } =\n {\n string: value => value,\n\n number: value => {\n const num = Number(value);\n return Number.isNaN(num) ? null : num;\n },\n\n boolean: value => {\n const lower = value.toLowerCase();\n return lower === 'true' || lower === '1' || lower === 'yes' || lower === 'on';\n },\n\n array: value => value.split(',').filter(Boolean),\n\n 'array-number': value =>\n value\n .split(',')\n .map(Number)\n .filter(n => !Number.isNaN(n)),\n\n object: value => {\n const obj: Record<string, string> = {};\n value.split(',').forEach(pair => {\n const [key, val] = pair.split(':');\n if (key && val) {\n obj[decode(key)] = decode(val);\n }\n });\n return obj;\n },\n };\n\n/**\n * Generic deserialize function. Converts a URL string value back into a JS Primitive/Object.\n *\n * <TUrlValueType extends UrlValueType>: Capture the specific string literal passed in (e.g. 'number').\n * Returns: UrlTypeMap[TUrlValueType] | null (e.g. number | null).\n */\nexport const deserializeValue = <TUrlValueType extends UrlValueType>(\n value: string | null,\n type: TUrlValueType\n): UrlTypeMap[TUrlValueType] | null => {\n if (isNil(value)) {\n return null;\n }\n return urlValueDeserializers[type](value);\n};\n"],"names":["getSortDirShort","sortDir","SortDirection","serializeSorting","sortInfo","parseSorting","sortValueShort","mapColumnsSettingsToStrings","columnOrder","hiddenColumns","columnsDetails","column","currentWidth","get","defaultWidth","width","parseColumnsSettingsStrings","settings","defaultColumnsDetails","columns","setting","columnWidth","columnKey","serializeColumnsConfig","defaultColumns","defaultColumnsByKey","defaultColumn","isNil","parseColumnWidth","widthValue","deserializeColumnsConfig","configStrings","seenColumnKeys","deserializedColumns","configString","encode","str","decode","toQueryString","params","config","configMap","c","pairs","value","key","item","encodedKey","encodedValue","prettyValue","serializeValue","type","objectValue","urlValueDeserializers","num","lower","n","obj","pair","val","deserializeValue"],"mappings":"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"}
@@ -1,23 +1,23 @@
1
- const o = window.localStorage, c = "", n = (r, t, e = c) => {
1
+ const o = window.localStorage, c = "", n = (e, t, r = c) => {
2
2
  try {
3
- return o.setItem(`${e}${r}`, JSON.stringify(t)), t;
3
+ return o.setItem(`${r}${e}`, JSON.stringify(t)), t;
4
4
  } catch {
5
5
  }
6
6
  return null;
7
- }, s = (r, t = c) => {
7
+ }, s = (e, t = c) => {
8
8
  try {
9
- o.removeItem(`${t}${r}`);
9
+ o.removeItem(`${t}${e}`);
10
10
  } catch {
11
11
  }
12
- }, a = (r, t = c) => {
12
+ }, a = (e, t = c) => {
13
13
  try {
14
- const e = o.getItem(`${t}${r}`);
15
- return e && JSON.parse(e);
14
+ const r = o.getItem(`${t}${e}`);
15
+ return r && JSON.parse(r);
16
16
  } catch {
17
17
  }
18
18
  return null;
19
- }, m = { save: n, load: a, removeItem: s };
19
+ }, l = { save: n, load: a, removeItem: s };
20
20
  export {
21
- m as storage
21
+ l as storage
22
22
  };
23
23
  //# sourceMappingURL=storageUtils.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"storageUtils.js","sources":["../../src/utils/storageUtils.ts"],"sourcesContent":["const localStorage = window.localStorage;\n\nconst STORAGE_PREFIX = '';\n\nconst save = (key: string, value: string, prefix = STORAGE_PREFIX): string | null => {\n try {\n localStorage.setItem(`${prefix}${key}`, JSON.stringify(value));\n return value;\n } catch (_) {\n // Intentionally left blank\n }\n return null;\n};\n\nconst removeItem = (key: string, prefix = STORAGE_PREFIX) => {\n try {\n localStorage.removeItem(`${prefix}${key}`);\n } catch (_) {\n // Intentionally left blank\n }\n};\n\nconst load = (key: string, prefix: string = STORAGE_PREFIX): string | null => {\n try {\n const item = localStorage.getItem(`${prefix}${key}`);\n return item && JSON.parse(item);\n } catch (_) {\n // Intentionally left blank\n }\n return null;\n};\n\nexport const storage = { save, load, removeItem };\n"],"names":["localStorage","STORAGE_PREFIX","save","key","value","prefix","removeItem","load","item","storage"],"mappings":"AAAA,MAAMA,IAAe,OAAO,cAEtBC,IAAiB,IAEjBC,IAAO,CAACC,GAAaC,GAAeC,IAASJ,MAAkC;AACjF,MAAI;AACA,WAAAD,EAAa,QAAQ,GAAGK,CAAM,GAAGF,CAAG,IAAI,KAAK,UAAUC,CAAK,CAAC,GACtDA;AAAA,EACX,QAAY;AAAA,EAEZ;AACA,SAAO;AACX,GAEME,IAAa,CAACH,GAAaE,IAASJ,MAAmB;AACzD,MAAI;AACA,IAAAD,EAAa,WAAW,GAAGK,CAAM,GAAGF,CAAG,EAAE;AAAA,EAC7C,QAAY;AAAA,EAEZ;AACJ,GAEMI,IAAO,CAACJ,GAAaE,IAAiBJ,MAAkC;AAC1E,MAAI;AACA,UAAMO,IAAOR,EAAa,QAAQ,GAAGK,CAAM,GAAGF,CAAG,EAAE;AACnD,WAAOK,KAAQ,KAAK,MAAMA,CAAI;AAAA,EAClC,QAAY;AAAA,EAEZ;AACA,SAAO;AACX,GAEaC,IAAU,EAAE,MAAAP,GAAM,MAAAK,GAAM,YAAAD,EAAA;"}
1
+ {"version":3,"file":"storageUtils.js","sources":["../../src/utils/storageUtils.ts"],"sourcesContent":["const localStorage = window.localStorage;\n\nconst STORAGE_PREFIX = '';\n\nconst save = (key: string, value: string, prefix = STORAGE_PREFIX): string | null => {\n try {\n localStorage.setItem(`${prefix}${key}`, JSON.stringify(value));\n return value;\n } catch {\n // Intentionally left blank\n }\n return null;\n};\n\nconst removeItem = (key: string, prefix = STORAGE_PREFIX) => {\n try {\n localStorage.removeItem(`${prefix}${key}`);\n } catch {\n // Intentionally left blank\n }\n};\n\nconst load = (key: string, prefix: string = STORAGE_PREFIX): string | null => {\n try {\n const item = localStorage.getItem(`${prefix}${key}`);\n return item && JSON.parse(item);\n } catch {\n // Intentionally left blank\n }\n return null;\n};\n\nexport const storage = { save, load, removeItem };\n"],"names":["localStorage","STORAGE_PREFIX","save","key","value","prefix","removeItem","load","item","storage"],"mappings":"AAAA,MAAMA,IAAe,OAAO,cAEtBC,IAAiB,IAEjBC,IAAO,CAACC,GAAaC,GAAeC,IAASJ,MAAkC;AACjF,MAAI;AACA,WAAAD,EAAa,QAAQ,GAAGK,CAAM,GAAGF,CAAG,IAAI,KAAK,UAAUC,CAAK,CAAC,GACtDA;AAAA,EACX,QAAQ;AAAA,EAER;AACA,SAAO;AACX,GAEME,IAAa,CAACH,GAAaE,IAASJ,MAAmB;AACzD,MAAI;AACA,IAAAD,EAAa,WAAW,GAAGK,CAAM,GAAGF,CAAG,EAAE;AAAA,EAC7C,QAAQ;AAAA,EAER;AACJ,GAEMI,IAAO,CAACJ,GAAaE,IAAiBJ,MAAkC;AAC1E,MAAI;AACA,UAAMO,IAAOR,EAAa,QAAQ,GAAGK,CAAM,GAAGF,CAAG,EAAE;AACnD,WAAOK,KAAQ,KAAK,MAAMA,CAAI;AAAA,EAClC,QAAQ;AAAA,EAER;AACA,SAAO;AACX,GAEaC,IAAU,EAAE,MAAAP,GAAM,MAAAK,GAAM,YAAAD,EAAA;"}
package/version.d.ts CHANGED
@@ -1 +1 @@
1
- export const version: "2.2.1";
1
+ export const version: "2.3.0-beta.1";
package/version.js CHANGED
@@ -1,5 +1,5 @@
1
- const o = "2.2.1";
1
+ const e = "2.3.0-beta.1";
2
2
  export {
3
- o as version
3
+ e as version
4
4
  };
5
5
  //# sourceMappingURL=version.js.map
package/version.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"version.js","sources":["../src/version.js"],"sourcesContent":["export const version = '2.2.1';\n"],"names":["version"],"mappings":"AAAY,MAACA,IAAU;"}
1
+ {"version":3,"file":"version.js","sources":["../src/version.js"],"sourcesContent":["export const version = '2.3.0-beta.1';\n"],"names":["version"],"mappings":"AAAY,MAACA,IAAU;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"TableCol.js","sources":["../../../src/components/table/TableCol.tsx"],"sourcesContent":["export type ColumnDetails = { [key: string]: number };\nexport type ColumnDetailsMap = { [key: string]: ColumnDetails };\n\ntype TableColProps = {\n /**\n * The width of the column as part of the column details object used for the TableSettingsDialog.\n */\n columnDetails?: ColumnDetails;\n\n /**\n * Additional classes added to the col tag element.\n */\n className?: string;\n};\n\nconst TableCol = ({ columnDetails, className = '', ...remainingProps }: TableColProps) => {\n const style = columnDetails?.width\n ? {\n minWidth: columnDetails.width,\n width: columnDetails.width,\n }\n : {};\n\n return <col {...remainingProps} style={style} className={className} />;\n};\n\nexport default TableCol;\n"],"names":["TableCol","columnDetails","className","remainingProps","style","jsx"],"mappings":";AAeA,MAAMA,IAAW,CAAC,EAAE,eAAAC,GAAe,WAAAC,IAAY,IAAI,GAAGC,QAAoC;AACtF,QAAMC,IAAQH,GAAe,QACvB;AAAA,IACI,UAAUA,EAAc;AAAA,IACxB,OAAOA,EAAc;AAAA,EAAA,IAEzB,CAAA;AAEN,SAAO,gBAAAI,EAAC,OAAA,EAAK,GAAGF,GAAgB,OAAAC,GAAc,WAAAF,GAAsB;AACxE;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"TableHead.js","sources":["../../../src/components/table/TableHead.tsx"],"sourcesContent":["import type { PropsWithChildren } from 'react';\n\nimport classNames from '../../utils/classNames';\nimport SortArrows from './SortArrows';\n\ntype TableHeadProps = {\n /**\n * The unique name of the column used as identifier\n */\n column?: string;\n\n /**\n * The label that shall be rendered in the table head next to the sorting icons.\n */\n label?: string | React.ReactElement;\n\n /**\n * The string title of a column used as native title attribute on the th tag.\n */\n title?: string;\n\n /**\n * The sorting key stored as data attribute for later usage for click events.\n */\n sortBy?: string;\n\n /**\n * The column sorting direction.\n */\n sortDir?: string;\n\n /**\n * The click handler for the th tag.\n */\n onClick?: (event: React.MouseEvent<HTMLTableCellElement>) => void;\n\n /**\n * Additional class names assigned to the wrapper element.\n */\n className?: string;\n};\n\nconst TableHead = (props: PropsWithChildren<TableHeadProps>) => {\n const {\n column,\n title,\n label,\n sortBy,\n sortDir,\n onClick = () => {},\n className = '',\n children,\n ...remainingProps\n } = props;\n\n const tableHeadClassNames = classNames('user-select-none', 'sort-column', className);\n\n const labelString = typeof label === 'string' ? (label as string) : '';\n const thTitle = title ?? labelString;\n\n return (\n <th\n {...remainingProps}\n className={tableHeadClassNames}\n onClick={onClick}\n data-field={column}\n data-sortby={column}\n title={thTitle}\n >\n {label && (\n <span>\n {column !== undefined && sortBy === column ? <SortArrows direction={sortDir} /> : <SortArrows />}\n <span>{label}</span>\n </span>\n )}\n {children}\n </th>\n );\n};\n\nexport default TableHead;\n"],"names":["TableHead","props","column","title","label","sortBy","sortDir","onClick","className","children","remainingProps","tableHeadClassNames","classNames","jsxs","jsx","SortArrows"],"mappings":";;;AA0CA,MAAMA,IAAY,CAACC,MAA6C;AAC5D,QAAM;AAAA,IACF,QAAAC;AAAA,IACA,OAAAC;AAAA,IACA,OAAAC;AAAA,IACA,QAAAC;AAAA,IACA,SAAAC;AAAA,IACA,SAAAC,IAAU,MAAM;AAAA,IAAC;AAAA,IACjB,WAAAC,IAAY;AAAA,IACZ,UAAAC;AAAA,IACA,GAAGC;AAAA,EAAA,IACHT,GAEEU,IAAsBC,EAAW,oBAAoB,eAAeJ,CAAS;AAKnF,SACI,gBAAAK;AAAA,IAAC;AAAA,IAAA;AAAA,MACI,GAAGH;AAAA,MACJ,WAAWC;AAAA,MACX,SAAAJ;AAAA,MACA,cAAYL;AAAA,MACZ,eAAaA;AAAA,MACb,OATQC,MADI,OAAOC,KAAU,WAAYA,IAAmB;AAAA,MAY3D,UAAA;AAAA,QAAAA,uBACI,QAAA,EACI,UAAA;AAAA,UAAAF,MAAW,UAAaG,MAAWH,IAAS,gBAAAY,EAACC,KAAW,WAAWT,EAAA,CAAS,IAAK,gBAAAQ,EAACC,GAAA,CAAA,CAAW;AAAA,UAC9F,gBAAAD,EAAC,UAAM,UAAAV,EAAA,CAAM;AAAA,QAAA,GACjB;AAAA,QAEHK;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAGb;"}
@@ -1,45 +0,0 @@
1
- import { jsxs as C, jsx as o } from "react/jsx-runtime";
2
- import { noop as r } from "es-toolkit/compat";
3
- import e from "../../utils/classNames.js";
4
- const D = (c) => {
5
- const {
6
- column: n = "",
7
- index: l = 0,
8
- columnDetails: m,
9
- columnOrder: p = [],
10
- openColumnsDetails: d = {},
11
- disabled: a,
12
- onMoveColumn: i = r,
13
- onOpenDetails: u = r
14
- } = c, t = e("btn btn-muted btn-icon-only btn-sm"), g = e(t, l === 0 && "disabled"), h = e(t, l === p.length - 1 && "disabled"), b = e(
15
- "rioglyph",
16
- d[n] ? "rioglyph-remove" : "rioglyph-width"
17
- );
18
- return /* @__PURE__ */ C("div", { className: "table-settings-item-item-buttons", children: [
19
- !a && /* @__PURE__ */ o(
20
- "div",
21
- {
22
- className: g,
23
- onClick: (s) => {
24
- s.preventDefault(), s.stopPropagation(), i(n, l - 1, !0);
25
- },
26
- children: /* @__PURE__ */ o("span", { className: "rioglyph rioglyph-arrow-up" })
27
- }
28
- ),
29
- !a && /* @__PURE__ */ o(
30
- "div",
31
- {
32
- className: h,
33
- onClick: (s) => {
34
- s.preventDefault(), s.stopPropagation(), i(n, l + 1, !0);
35
- },
36
- children: /* @__PURE__ */ o("span", { className: "rioglyph rioglyph-arrow-down" })
37
- }
38
- ),
39
- m && /* @__PURE__ */ o("div", { className: t, onClick: () => u(n), children: /* @__PURE__ */ o("span", { className: b }) })
40
- ] });
41
- };
42
- export {
43
- D as TableSettingsColumnButtons
44
- };
45
- //# sourceMappingURL=TableSettingsColumnButtons.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"TableSettingsColumnButtons.js","sources":["../../../src/components/table/TableSettingsColumnButtons.tsx"],"sourcesContent":["import { noop } from 'es-toolkit/compat';\n\nimport classNames from '../../utils/classNames';\nimport type { TableColumnDetails } from './TableSettingsDialog';\n\nexport type TableSettingsColumnButtonsProps = {\n column: string;\n index: number;\n columnOrder: string[];\n openColumnsDetails: Record<string, string>;\n disabled?: boolean;\n columnDetails?: TableColumnDetails;\n onMoveColumn?: (columnName: string, newIndex: number, changeMovedColumn: boolean) => void;\n onOpenDetails?: (column: string) => void;\n};\n\nexport const TableSettingsColumnButtons = (props: TableSettingsColumnButtonsProps) => {\n const {\n column = '',\n index = 0,\n columnDetails,\n columnOrder = [],\n openColumnsDetails = {},\n disabled,\n onMoveColumn = noop,\n onOpenDetails = noop,\n } = props;\n\n const navButtonBase = classNames('btn btn-muted btn-icon-only btn-sm');\n\n const columnUpClasses = classNames(navButtonBase, index === 0 && 'disabled');\n\n const columnDownClasses = classNames(navButtonBase, index === columnOrder.length - 1 && 'disabled');\n\n const toggleIconClassNames = classNames(\n 'rioglyph',\n openColumnsDetails[column] ? 'rioglyph-remove' : 'rioglyph-width'\n );\n\n return (\n <div className='table-settings-item-item-buttons'>\n {!disabled && (\n <div\n className={columnUpClasses}\n onClick={event => {\n event.preventDefault();\n event.stopPropagation();\n onMoveColumn(column, index - 1, true);\n }}\n >\n <span className='rioglyph rioglyph-arrow-up' />\n </div>\n )}\n {!disabled && (\n <div\n className={columnDownClasses}\n onClick={event => {\n event.preventDefault();\n event.stopPropagation();\n onMoveColumn(column, index + 1, true);\n }}\n >\n <span className='rioglyph rioglyph-arrow-down' />\n </div>\n )}\n {columnDetails && (\n <div className={navButtonBase} onClick={() => onOpenDetails(column)}>\n <span className={toggleIconClassNames} />\n </div>\n )}\n </div>\n );\n};\n"],"names":["TableSettingsColumnButtons","props","column","index","columnDetails","columnOrder","openColumnsDetails","disabled","onMoveColumn","noop","onOpenDetails","navButtonBase","classNames","columnUpClasses","columnDownClasses","toggleIconClassNames","jsxs","jsx","event"],"mappings":";;;AAgBO,MAAMA,IAA6B,CAACC,MAA2C;AAClF,QAAM;AAAA,IACF,QAAAC,IAAS;AAAA,IACT,OAAAC,IAAQ;AAAA,IACR,eAAAC;AAAA,IACA,aAAAC,IAAc,CAAA;AAAA,IACd,oBAAAC,IAAqB,CAAA;AAAA,IACrB,UAAAC;AAAA,IACA,cAAAC,IAAeC;AAAA,IACf,eAAAC,IAAgBD;AAAA,EAAA,IAChBR,GAEEU,IAAgBC,EAAW,oCAAoC,GAE/DC,IAAkBD,EAAWD,GAAeR,MAAU,KAAK,UAAU,GAErEW,IAAoBF,EAAWD,GAAeR,MAAUE,EAAY,SAAS,KAAK,UAAU,GAE5FU,IAAuBH;AAAA,IACzB;AAAA,IACAN,EAAmBJ,CAAM,IAAI,oBAAoB;AAAA,EAAA;AAGrD,SACI,gBAAAc,EAAC,OAAA,EAAI,WAAU,oCACV,UAAA;AAAA,IAAA,CAACT,KACE,gBAAAU;AAAA,MAAC;AAAA,MAAA;AAAA,QACG,WAAWJ;AAAA,QACX,SAAS,CAAAK,MAAS;AACd,UAAAA,EAAM,eAAA,GACNA,EAAM,gBAAA,GACNV,EAAaN,GAAQC,IAAQ,GAAG,EAAI;AAAA,QACxC;AAAA,QAEA,UAAA,gBAAAc,EAAC,QAAA,EAAK,WAAU,6BAAA,CAA6B;AAAA,MAAA;AAAA,IAAA;AAAA,IAGpD,CAACV,KACE,gBAAAU;AAAA,MAAC;AAAA,MAAA;AAAA,QACG,WAAWH;AAAA,QACX,SAAS,CAAAI,MAAS;AACd,UAAAA,EAAM,eAAA,GACNA,EAAM,gBAAA,GACNV,EAAaN,GAAQC,IAAQ,GAAG,EAAI;AAAA,QACxC;AAAA,QAEA,UAAA,gBAAAc,EAAC,QAAA,EAAK,WAAU,+BAAA,CAA+B;AAAA,MAAA;AAAA,IAAA;AAAA,IAGtDb,KACG,gBAAAa,EAAC,OAAA,EAAI,WAAWN,GAAe,SAAS,MAAMD,EAAcR,CAAM,GAC9D,UAAA,gBAAAe,EAAC,QAAA,EAAK,WAAWF,GAAsB,EAAA,CAC3C;AAAA,EAAA,GAER;AAER;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"TableSettingsColumnDetails.js","sources":["../../../src/components/table/TableSettingsColumnDetails.tsx"],"sourcesContent":["import type { ChangeEvent } from 'react';\nimport { noop } from 'es-toolkit/compat';\n\nimport classNames from '../../utils/classNames';\nimport Slider from '../slider/Slider';\nimport type { TableColumnDetails, TableColumnDetailsMap } from './TableSettingsDialog';\n\nexport type TableSettingsColumnDetailsProps = TableColumnDetails & {\n column: string;\n maxColumnWidth: number;\n onColumnWidthChange?: (column: keyof TableColumnDetailsMap, value: number) => void;\n onResetColumnWidth?: (column: keyof TableColumnDetailsMap) => void;\n};\n\nexport const TableSettingsColumnDetails = (props: TableSettingsColumnDetailsProps) => {\n const {\n width = 0,\n defaultWidth = 0,\n maxWidth,\n column,\n maxColumnWidth,\n onColumnWidthChange = noop,\n onResetColumnWidth = noop,\n } = props;\n\n const handleWidthInputChange = (event: ChangeEvent<HTMLInputElement>) => {\n const parsedValue = event.target.value ? Number.parseInt(event.target.value, 10) : 0;\n const max = maxWidth || maxColumnWidth;\n const value = Math.min(parsedValue, max);\n onColumnWidthChange(column, value);\n };\n\n const handleColumnWidthChange = (value: number) => onColumnWidthChange(column, value);\n\n const handleResetColumnWidth = () => onResetColumnWidth(column);\n\n const resetWidthButtonClassNames = classNames(\n 'btn',\n 'btn-muted',\n 'btn-icon-only',\n 'btn-sm',\n 'margin-left-10',\n width === defaultWidth && 'disabled'\n );\n\n return (\n <div className='table-settings-item-body'>\n <Slider\n className='margin-bottom-0'\n value={width}\n minValue={0}\n maxValue={maxWidth || maxColumnWidth}\n step={1}\n onChange={handleColumnWidthChange}\n />\n <div className={resetWidthButtonClassNames} role='button' onClick={handleResetColumnWidth}>\n <span className='rioglyph rioglyph-revert' />\n </div>\n <div className='column-width-input'>\n <div className='input-group'>\n <input\n className='form-control text-right padding-right-5 no-controls'\n type='number'\n value={width || ''}\n min={0}\n max={maxWidth || maxColumnWidth}\n onChange={handleWidthInputChange}\n />\n <div className='input-group-addon'>px</div>\n </div>\n </div>\n </div>\n );\n};\n"],"names":["TableSettingsColumnDetails","props","width","defaultWidth","maxWidth","column","maxColumnWidth","onColumnWidthChange","noop","onResetColumnWidth","handleWidthInputChange","event","parsedValue","value","handleColumnWidthChange","handleResetColumnWidth","resetWidthButtonClassNames","classNames","jsxs","jsx","Slider"],"mappings":";;;;AAcO,MAAMA,IAA6B,CAACC,MAA2C;AAClF,QAAM;AAAA,IACF,OAAAC,IAAQ;AAAA,IACR,cAAAC,IAAe;AAAA,IACf,UAAAC;AAAA,IACA,QAAAC;AAAA,IACA,gBAAAC;AAAA,IACA,qBAAAC,IAAsBC;AAAA,IACtB,oBAAAC,IAAqBD;AAAA,EAAA,IACrBP,GAEES,IAAyB,CAACC,MAAyC;AACrE,UAAMC,IAAcD,EAAM,OAAO,QAAQ,OAAO,SAASA,EAAM,OAAO,OAAO,EAAE,IAAI,GAE7EE,IAAQ,KAAK,IAAID,GADXR,KAAYE,CACe;AACvC,IAAAC,EAAoBF,GAAQQ,CAAK;AAAA,EACrC,GAEMC,IAA0B,CAACD,MAAkBN,EAAoBF,GAAQQ,CAAK,GAE9EE,IAAyB,MAAMN,EAAmBJ,CAAM,GAExDW,IAA6BC;AAAA,IAC/B;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACAf,MAAUC,KAAgB;AAAA,EAAA;AAG9B,SACI,gBAAAe,EAAC,OAAA,EAAI,WAAU,4BACX,UAAA;AAAA,IAAA,gBAAAC;AAAA,MAACC;AAAA,MAAA;AAAA,QACG,WAAU;AAAA,QACV,OAAOlB;AAAA,QACP,UAAU;AAAA,QACV,UAAUE,KAAYE;AAAA,QACtB,MAAM;AAAA,QACN,UAAUQ;AAAA,MAAA;AAAA,IAAA;AAAA,IAEd,gBAAAK,EAAC,OAAA,EAAI,WAAWH,GAA4B,MAAK,UAAS,SAASD,GAC/D,UAAA,gBAAAI,EAAC,QAAA,EAAK,WAAU,2BAAA,CAA2B,GAC/C;AAAA,sBACC,OAAA,EAAI,WAAU,sBACX,UAAA,gBAAAD,EAAC,OAAA,EAAI,WAAU,eACX,UAAA;AAAA,MAAA,gBAAAC;AAAA,QAAC;AAAA,QAAA;AAAA,UACG,WAAU;AAAA,UACV,MAAK;AAAA,UACL,OAAOjB,KAAS;AAAA,UAChB,KAAK;AAAA,UACL,KAAKE,KAAYE;AAAA,UACjB,UAAUI;AAAA,QAAA;AAAA,MAAA;AAAA,MAEd,gBAAAS,EAAC,OAAA,EAAI,WAAU,qBAAoB,UAAA,KAAA,CAAE;AAAA,IAAA,EAAA,CACzC,EAAA,CACJ;AAAA,EAAA,GACJ;AAER;"}