@ynput/ayon-frontend-shared 0.2.45 → 0.3.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 (411) hide show
  1. package/dist/DetailsPanel.cjs.js +1 -1
  2. package/dist/DetailsPanel.es.js +72 -65
  3. package/dist/DetailsPanel.es.js.map +1 -1
  4. package/dist/ProjectTreeTable.cjs.js +1 -1
  5. package/dist/ProjectTreeTable.es.js +104 -102
  6. package/dist/Slicer.cjs.js +1 -1
  7. package/dist/Slicer.es.js +113 -4
  8. package/dist/Slicer.es.js.map +1 -1
  9. package/dist/Views.cjs.js.map +1 -1
  10. package/dist/Views.es.js.map +1 -1
  11. package/dist/_virtual/index.cjs4.js +1 -1
  12. package/dist/_virtual/index.cjs5.js +1 -1
  13. package/dist/_virtual/index.es4.js +2 -5
  14. package/dist/_virtual/index.es4.js.map +1 -1
  15. package/dist/_virtual/index.es5.js +5 -2
  16. package/dist/_virtual/index.es5.js.map +1 -1
  17. package/dist/components.cjs.js +1 -1
  18. package/dist/components.es.js +141 -139
  19. package/dist/components.es.js.map +1 -1
  20. package/dist/index.cjs.js +1 -1
  21. package/dist/index.es.js +61 -54
  22. package/dist/index.es.js.map +1 -1
  23. package/dist/node_modules/@reduxjs/toolkit/dist/query/rtk-query.modern.cjs.js +5 -5
  24. package/dist/node_modules/@reduxjs/toolkit/dist/query/rtk-query.modern.cjs.js.map +1 -1
  25. package/dist/node_modules/@reduxjs/toolkit/dist/query/rtk-query.modern.es.js +313 -305
  26. package/dist/node_modules/@reduxjs/toolkit/dist/query/rtk-query.modern.es.js.map +1 -1
  27. package/dist/node_modules/remove-accents/index.cjs.js +1 -1
  28. package/dist/node_modules/remove-accents/index.es.js +1 -1
  29. package/dist/shared/node_modules/react-transition-group/esm/CSSTransition.cjs.js +1 -1
  30. package/dist/shared/node_modules/react-transition-group/esm/CSSTransition.es.js +1 -1
  31. package/dist/shared/node_modules/react-transition-group/esm/Transition.cjs.js +1 -1
  32. package/dist/shared/node_modules/react-transition-group/esm/Transition.es.js +1 -1
  33. package/dist/shared/node_modules/react-transition-group/esm/utils/PropTypes.cjs.js +1 -1
  34. package/dist/shared/node_modules/react-transition-group/esm/utils/PropTypes.es.js +1 -1
  35. package/dist/shared/src/api/queries/overview/getOverview.cjs.js +1 -1
  36. package/dist/shared/src/api/queries/overview/getOverview.cjs.js.map +1 -1
  37. package/dist/shared/src/api/queries/overview/getOverview.es.js +95 -95
  38. package/dist/shared/src/api/queries/overview/getOverview.es.js.map +1 -1
  39. package/dist/shared/src/api/queries/views/updateViews.cjs.js +1 -1
  40. package/dist/shared/src/api/queries/views/updateViews.cjs.js.map +1 -1
  41. package/dist/shared/src/api/queries/views/updateViews.es.js +1 -1
  42. package/dist/shared/src/api/queries/views/updateViews.es.js.map +1 -1
  43. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.cjs.js +1 -1
  44. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.cjs.js.map +1 -1
  45. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.es.js +57 -50
  46. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.es.js.map +1 -1
  47. package/dist/shared/src/components/LinksManager/AddNewLinks.cjs.js +1 -1
  48. package/dist/shared/src/components/LinksManager/AddNewLinks.cjs.js.map +1 -1
  49. package/dist/shared/src/components/LinksManager/AddNewLinks.es.js +45 -38
  50. package/dist/shared/src/components/LinksManager/AddNewLinks.es.js.map +1 -1
  51. package/dist/shared/src/components/LinksManager/hooks/useUpdateLinks.cjs.js +1 -1
  52. package/dist/shared/src/components/LinksManager/hooks/useUpdateLinks.cjs.js.map +1 -1
  53. package/dist/shared/src/components/LinksManager/hooks/useUpdateLinks.es.js +47 -40
  54. package/dist/shared/src/components/LinksManager/hooks/useUpdateLinks.es.js.map +1 -1
  55. package/dist/shared/src/components/Powerpack/PowerpackDialog.cjs.js +1 -1
  56. package/dist/shared/src/components/Powerpack/PowerpackDialog.cjs.js.map +1 -1
  57. package/dist/shared/src/components/Powerpack/PowerpackDialog.es.js +49 -42
  58. package/dist/shared/src/components/Powerpack/PowerpackDialog.es.js.map +1 -1
  59. package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.cjs.js +1 -1
  60. package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.cjs.js.map +1 -1
  61. package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.es.js +44 -37
  62. package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.es.js.map +1 -1
  63. package/dist/shared/src/components/ProjectTableSettings/TableSettingsFallback.cjs.js +1 -1
  64. package/dist/shared/src/components/ProjectTableSettings/TableSettingsFallback.cjs.js.map +1 -1
  65. package/dist/shared/src/components/ProjectTableSettings/TableSettingsFallback.es.js +48 -41
  66. package/dist/shared/src/components/ProjectTableSettings/TableSettingsFallback.es.js.map +1 -1
  67. package/dist/shared/src/components/RemotePage/RemotePageWrapper.cjs.js +2 -0
  68. package/dist/shared/src/components/RemotePage/RemotePageWrapper.cjs.js.map +1 -0
  69. package/dist/shared/src/components/RemotePage/RemotePageWrapper.es.js +282 -0
  70. package/dist/shared/src/components/RemotePage/RemotePageWrapper.es.js.map +1 -0
  71. package/dist/shared/src/components/RenameForm/RenameForm.cjs.js +1 -1
  72. package/dist/shared/src/components/RenameForm/RenameForm.cjs.js.map +1 -1
  73. package/dist/shared/src/components/RenameForm/RenameForm.es.js +48 -41
  74. package/dist/shared/src/components/RenameForm/RenameForm.es.js.map +1 -1
  75. package/dist/shared/src/components/ReviewablesList/ReviewablesList.cjs.js +1 -1
  76. package/dist/shared/src/components/ReviewablesList/ReviewablesList.cjs.js.map +1 -1
  77. package/dist/shared/src/components/ReviewablesList/ReviewablesList.es.js +64 -57
  78. package/dist/shared/src/components/ReviewablesList/ReviewablesList.es.js.map +1 -1
  79. package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.cjs.js +1 -1
  80. package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.cjs.js.map +1 -1
  81. package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.es.js +54 -47
  82. package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.es.js.map +1 -1
  83. package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.cjs.js +1 -1
  84. package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.cjs.js.map +1 -1
  85. package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.es.js +53 -46
  86. package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.es.js.map +1 -1
  87. package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.cjs.js +1 -1
  88. package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.cjs.js.map +1 -1
  89. package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.es.js +42 -41
  90. package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.es.js.map +1 -1
  91. package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.cjs.js +1 -1
  92. package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.cjs.js.map +1 -1
  93. package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.es.js +52 -45
  94. package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.es.js.map +1 -1
  95. package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.cjs.js +2 -2
  96. package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.cjs.js.map +1 -1
  97. package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.es.js +56 -49
  98. package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.es.js.map +1 -1
  99. package/dist/shared/src/containers/Actions/ActionConfigDialog.cjs.js +1 -1
  100. package/dist/shared/src/containers/Actions/ActionConfigDialog.cjs.js.map +1 -1
  101. package/dist/shared/src/containers/Actions/ActionConfigDialog.es.js +53 -46
  102. package/dist/shared/src/containers/Actions/ActionConfigDialog.es.js.map +1 -1
  103. package/dist/shared/src/containers/Actions/InteractiveActionDialog.cjs.js +1 -1
  104. package/dist/shared/src/containers/Actions/InteractiveActionDialog.cjs.js.map +1 -1
  105. package/dist/shared/src/containers/Actions/InteractiveActionDialog.es.js +54 -47
  106. package/dist/shared/src/containers/Actions/InteractiveActionDialog.es.js.map +1 -1
  107. package/dist/shared/src/containers/DetailsPanel/DetailsPanel.cjs.js +1 -1
  108. package/dist/shared/src/containers/DetailsPanel/DetailsPanel.cjs.js.map +1 -1
  109. package/dist/shared/src/containers/DetailsPanel/DetailsPanel.es.js +93 -86
  110. package/dist/shared/src/containers/DetailsPanel/DetailsPanel.es.js.map +1 -1
  111. package/dist/shared/src/containers/DetailsPanel/DetailsPanelFiles/DetailsPanelFiles.cjs.js +1 -1
  112. package/dist/shared/src/containers/DetailsPanel/DetailsPanelFiles/DetailsPanelFiles.cjs.js.map +1 -1
  113. package/dist/shared/src/containers/DetailsPanel/DetailsPanelFiles/DetailsPanelFiles.es.js +49 -42
  114. package/dist/shared/src/containers/DetailsPanel/DetailsPanelFiles/DetailsPanelFiles.es.js.map +1 -1
  115. package/dist/shared/src/containers/DetailsPanel/DetailsPanelFloating/DetailsPanelFloating.cjs.js +1 -1
  116. package/dist/shared/src/containers/DetailsPanel/DetailsPanelFloating/DetailsPanelFloating.cjs.js.map +1 -1
  117. package/dist/shared/src/containers/DetailsPanel/DetailsPanelFloating/DetailsPanelFloating.es.js +68 -61
  118. package/dist/shared/src/containers/DetailsPanel/DetailsPanelFloating/DetailsPanelFloating.es.js.map +1 -1
  119. package/dist/shared/src/containers/DetailsPanel/DetailsPanelHeader/DetailsPanelHeader.cjs.js +1 -1
  120. package/dist/shared/src/containers/DetailsPanel/DetailsPanelHeader/DetailsPanelHeader.cjs.js.map +1 -1
  121. package/dist/shared/src/containers/DetailsPanel/DetailsPanelHeader/DetailsPanelHeader.es.js +93 -86
  122. package/dist/shared/src/containers/DetailsPanel/DetailsPanelHeader/DetailsPanelHeader.es.js.map +1 -1
  123. package/dist/shared/src/containers/DetailsPanel/FeedContextWrapper.cjs.js +1 -1
  124. package/dist/shared/src/containers/DetailsPanel/FeedContextWrapper.cjs.js.map +1 -1
  125. package/dist/shared/src/containers/DetailsPanel/FeedContextWrapper.es.js +47 -40
  126. package/dist/shared/src/containers/DetailsPanel/FeedContextWrapper.es.js.map +1 -1
  127. package/dist/shared/src/containers/EntityPickerDialog/EntityPickerDialog.cjs.js +1 -1
  128. package/dist/shared/src/containers/EntityPickerDialog/EntityPickerDialog.cjs.js.map +1 -1
  129. package/dist/shared/src/containers/EntityPickerDialog/EntityPickerDialog.es.js +46 -43
  130. package/dist/shared/src/containers/EntityPickerDialog/EntityPickerDialog.es.js.map +1 -1
  131. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTable.cjs.js +1 -1
  132. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTable.cjs.js.map +1 -1
  133. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTable.es.js +49 -46
  134. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTable.es.js.map +1 -1
  135. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableHeader.cjs.js +1 -1
  136. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableHeader.cjs.js.map +1 -1
  137. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableHeader.es.js +49 -46
  138. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableHeader.es.js.map +1 -1
  139. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableSearch.cjs.js +1 -1
  140. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableSearch.cjs.js.map +1 -1
  141. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableSearch.es.js +49 -46
  142. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableSearch.es.js.map +1 -1
  143. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.cjs.js +1 -1
  144. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.cjs.js.map +1 -1
  145. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.es.js +50 -42
  146. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.es.js.map +1 -1
  147. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityCommentMenu.cjs.js +1 -1
  148. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityCommentMenu.cjs.js.map +1 -1
  149. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityCommentMenu.es.js +55 -48
  150. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityCommentMenu.es.js.map +1 -1
  151. package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.cjs.js +2 -2
  152. package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.cjs.js.map +1 -1
  153. package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.es.js +70 -63
  154. package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.es.js.map +1 -1
  155. package/dist/shared/src/containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.cjs.js +1 -1
  156. package/dist/shared/src/containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.cjs.js.map +1 -1
  157. package/dist/shared/src/containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.es.js +47 -40
  158. package/dist/shared/src/containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.es.js.map +1 -1
  159. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.cjs.js +1 -1
  160. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.cjs.js.map +1 -1
  161. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.es.js +483 -462
  162. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.es.js.map +1 -1
  163. package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.cjs.js +1 -1
  164. package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.cjs.js.map +1 -1
  165. package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.es.js +105 -98
  166. package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.es.js.map +1 -1
  167. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnHeaderMenu.cjs.js +1 -1
  168. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnHeaderMenu.cjs.js.map +1 -1
  169. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnHeaderMenu.es.js +47 -40
  170. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnHeaderMenu.es.js.map +1 -1
  171. package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.cjs.js +1 -1
  172. package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.cjs.js.map +1 -1
  173. package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.es.js +57 -50
  174. package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.es.js.map +1 -1
  175. package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingProvider.cjs.js +1 -1
  176. package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingProvider.cjs.js.map +1 -1
  177. package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingProvider.es.js +54 -47
  178. package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingProvider.es.js.map +1 -1
  179. package/dist/shared/src/containers/ProjectTreeTable/context/ClipboardContext.cjs.js +3 -3
  180. package/dist/shared/src/containers/ProjectTreeTable/context/ClipboardContext.cjs.js.map +1 -1
  181. package/dist/shared/src/containers/ProjectTreeTable/context/ClipboardContext.es.js +142 -146
  182. package/dist/shared/src/containers/ProjectTreeTable/context/ClipboardContext.es.js.map +1 -1
  183. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectTableContext.cjs.js.map +1 -1
  184. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectTableContext.es.js.map +1 -1
  185. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectTableProvider.cjs.js +1 -1
  186. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectTableProvider.cjs.js.map +1 -1
  187. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectTableProvider.es.js +63 -68
  188. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectTableProvider.es.js.map +1 -1
  189. package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.cjs.js +1 -1
  190. package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.cjs.js.map +1 -1
  191. package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.es.js +49 -41
  192. package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.es.js.map +1 -1
  193. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.cjs.js +1 -1
  194. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.cjs.js.map +1 -1
  195. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.es.js +74 -67
  196. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.es.js.map +1 -1
  197. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildProjectDataTable.cjs.js +1 -1
  198. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildProjectDataTable.cjs.js.map +1 -1
  199. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildProjectDataTable.es.js +48 -41
  200. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildProjectDataTable.es.js.map +1 -1
  201. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.cjs.js +1 -1
  202. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.cjs.js.map +1 -1
  203. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.es.js +55 -48
  204. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.es.js.map +1 -1
  205. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.cjs.js +1 -1
  206. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.cjs.js.map +1 -1
  207. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.es.js +54 -47
  208. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.es.js.map +1 -1
  209. package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnGroupBy.cjs.js +1 -1
  210. package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnGroupBy.cjs.js.map +1 -1
  211. package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnGroupBy.es.js +51 -44
  212. package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnGroupBy.es.js.map +1 -1
  213. package/dist/shared/src/containers/ProjectTreeTable/hooks/useFetchOverviewData.cjs.js +1 -1
  214. package/dist/shared/src/containers/ProjectTreeTable/hooks/useFetchOverviewData.cjs.js.map +1 -1
  215. package/dist/shared/src/containers/ProjectTreeTable/hooks/useFetchOverviewData.es.js +141 -132
  216. package/dist/shared/src/containers/ProjectTreeTable/hooks/useFetchOverviewData.es.js.map +1 -1
  217. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.cjs.js +1 -1
  218. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.cjs.js.map +1 -1
  219. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.es.js +51 -44
  220. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.es.js.map +1 -1
  221. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGroupBySettings.cjs.js +1 -1
  222. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGroupBySettings.cjs.js.map +1 -1
  223. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGroupBySettings.es.js +51 -44
  224. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGroupBySettings.es.js.map +1 -1
  225. package/dist/shared/src/containers/ProjectTreeTable/hooks/useKeyboardNavigation.cjs.js +1 -1
  226. package/dist/shared/src/containers/ProjectTreeTable/hooks/useKeyboardNavigation.cjs.js.map +1 -1
  227. package/dist/shared/src/containers/ProjectTreeTable/hooks/useKeyboardNavigation.es.js +54 -47
  228. package/dist/shared/src/containers/ProjectTreeTable/hooks/useKeyboardNavigation.es.js.map +1 -1
  229. package/dist/shared/src/containers/ProjectTreeTable/hooks/useMoveEntities.cjs.js +1 -1
  230. package/dist/shared/src/containers/ProjectTreeTable/hooks/useMoveEntities.cjs.js.map +1 -1
  231. package/dist/shared/src/containers/ProjectTreeTable/hooks/useMoveEntities.es.js +46 -39
  232. package/dist/shared/src/containers/ProjectTreeTable/hooks/useMoveEntities.es.js.map +1 -1
  233. package/dist/shared/src/containers/ProjectTreeTable/hooks/usePasteLinks.cjs.js +1 -1
  234. package/dist/shared/src/containers/ProjectTreeTable/hooks/usePasteLinks.cjs.js.map +1 -1
  235. package/dist/shared/src/containers/ProjectTreeTable/hooks/usePasteLinks.es.js +46 -39
  236. package/dist/shared/src/containers/ProjectTreeTable/hooks/usePasteLinks.es.js.map +1 -1
  237. package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.cjs.js +1 -1
  238. package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.cjs.js.map +1 -1
  239. package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.es.js +81 -67
  240. package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.es.js.map +1 -1
  241. package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.cjs.js +1 -1
  242. package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.cjs.js.map +1 -1
  243. package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.es.js +62 -55
  244. package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.es.js.map +1 -1
  245. package/dist/shared/src/containers/ProjectTreeTable/utils/restrictedEntity.cjs.js +1 -1
  246. package/dist/shared/src/containers/ProjectTreeTable/utils/restrictedEntity.cjs.js.map +1 -1
  247. package/dist/shared/src/containers/ProjectTreeTable/utils/restrictedEntity.es.js +11 -6
  248. package/dist/shared/src/containers/ProjectTreeTable/utils/restrictedEntity.es.js.map +1 -1
  249. package/dist/shared/src/containers/ProjectTreeTable/widgets/BooleanWidget.cjs.js +2 -2
  250. package/dist/shared/src/containers/ProjectTreeTable/widgets/BooleanWidget.cjs.js.map +1 -1
  251. package/dist/shared/src/containers/ProjectTreeTable/widgets/BooleanWidget.es.js +16 -13
  252. package/dist/shared/src/containers/ProjectTreeTable/widgets/BooleanWidget.es.js.map +1 -1
  253. package/dist/shared/src/containers/ProjectTreeTable/widgets/CellWidget.cjs.js +2 -2
  254. package/dist/shared/src/containers/ProjectTreeTable/widgets/CellWidget.cjs.js.map +1 -1
  255. package/dist/shared/src/containers/ProjectTreeTable/widgets/CellWidget.es.js +342 -116
  256. package/dist/shared/src/containers/ProjectTreeTable/widgets/CellWidget.es.js.map +1 -1
  257. package/dist/shared/src/containers/ProjectTreeTable/widgets/DateWidgetInput.cjs.js +2 -2
  258. package/dist/shared/src/containers/ProjectTreeTable/widgets/DateWidgetInput.cjs.js.map +1 -1
  259. package/dist/shared/src/containers/ProjectTreeTable/widgets/DateWidgetInput.es.js +47 -40
  260. package/dist/shared/src/containers/ProjectTreeTable/widgets/DateWidgetInput.es.js.map +1 -1
  261. package/dist/shared/src/containers/ProjectTreeTable/widgets/EnumWidget.cjs.js +2 -2
  262. package/dist/shared/src/containers/ProjectTreeTable/widgets/EnumWidget.cjs.js.map +1 -1
  263. package/dist/shared/src/containers/ProjectTreeTable/widgets/EnumWidget.es.js +7 -7
  264. package/dist/shared/src/containers/ProjectTreeTable/widgets/EnumWidget.es.js.map +1 -1
  265. package/dist/shared/src/containers/ProjectTreeTable/widgets/LinksWidget.cjs.js +1 -1
  266. package/dist/shared/src/containers/ProjectTreeTable/widgets/LinksWidget.cjs.js.map +1 -1
  267. package/dist/shared/src/containers/ProjectTreeTable/widgets/LinksWidget.es.js +69 -62
  268. package/dist/shared/src/containers/ProjectTreeTable/widgets/LinksWidget.es.js.map +1 -1
  269. package/dist/shared/src/containers/ProjectTreeTable/widgets/NameWidget.cjs.js +1 -1
  270. package/dist/shared/src/containers/ProjectTreeTable/widgets/NameWidget.cjs.js.map +1 -1
  271. package/dist/shared/src/containers/ProjectTreeTable/widgets/NameWidget.es.js +51 -44
  272. package/dist/shared/src/containers/ProjectTreeTable/widgets/NameWidget.es.js.map +1 -1
  273. package/dist/shared/src/containers/ProjectTreeTable/widgets/TextWidgetInput.cjs.js +2 -2
  274. package/dist/shared/src/containers/ProjectTreeTable/widgets/TextWidgetInput.cjs.js.map +1 -1
  275. package/dist/shared/src/containers/ProjectTreeTable/widgets/TextWidgetInput.es.js +29 -33
  276. package/dist/shared/src/containers/ProjectTreeTable/widgets/TextWidgetInput.es.js.map +1 -1
  277. package/dist/shared/src/containers/RepresentationsList/RepresentationsList.cjs.js +1 -1
  278. package/dist/shared/src/containers/RepresentationsList/RepresentationsList.cjs.js.map +1 -1
  279. package/dist/shared/src/containers/RepresentationsList/RepresentationsList.es.js +118 -111
  280. package/dist/shared/src/containers/RepresentationsList/RepresentationsList.es.js.map +1 -1
  281. package/dist/shared/src/containers/SimpleTable/SimpleTable.cjs.js +1 -1
  282. package/dist/shared/src/containers/SimpleTable/SimpleTable.cjs.js.map +1 -1
  283. package/dist/shared/src/containers/SimpleTable/SimpleTable.es.js +49 -46
  284. package/dist/shared/src/containers/SimpleTable/SimpleTable.es.js.map +1 -1
  285. package/dist/shared/src/containers/Slicer/components/Slicer.cjs.js +2 -0
  286. package/dist/shared/src/containers/Slicer/components/Slicer.cjs.js.map +1 -0
  287. package/dist/shared/src/containers/Slicer/components/Slicer.es.js +82 -0
  288. package/dist/shared/src/containers/Slicer/components/Slicer.es.js.map +1 -0
  289. package/dist/shared/src/containers/Slicer/components/SlicerDropdownFallback.cjs.js +27 -0
  290. package/dist/shared/src/containers/Slicer/components/SlicerDropdownFallback.cjs.js.map +1 -0
  291. package/dist/shared/src/containers/Slicer/components/SlicerDropdownFallback.es.js +71 -0
  292. package/dist/shared/src/containers/Slicer/components/SlicerDropdownFallback.es.js.map +1 -0
  293. package/dist/shared/src/containers/Slicer/components/SlicerSearch.cjs.js +10 -0
  294. package/dist/shared/src/containers/Slicer/components/SlicerSearch.cjs.js.map +1 -0
  295. package/dist/shared/src/containers/Slicer/components/SlicerSearch.es.js +294 -0
  296. package/dist/shared/src/containers/Slicer/components/SlicerSearch.es.js.map +1 -0
  297. package/dist/shared/src/containers/Slicer/context/SlicerContext.cjs.js +2 -0
  298. package/dist/shared/src/containers/Slicer/context/SlicerContext.cjs.js.map +1 -0
  299. package/dist/shared/src/containers/Slicer/context/SlicerContext.es.js +215 -0
  300. package/dist/shared/src/containers/Slicer/context/SlicerContext.es.js.map +1 -0
  301. package/dist/shared/src/containers/Slicer/hooks/useFiltersWithHierarchy.cjs.js.map +1 -0
  302. package/dist/shared/src/containers/Slicer/hooks/useFiltersWithHierarchy.es.js.map +1 -0
  303. package/dist/shared/src/containers/Slicer/hooks/useProjectAnatomySlices.cjs.js +2 -0
  304. package/dist/shared/src/containers/Slicer/hooks/useProjectAnatomySlices.cjs.js.map +1 -0
  305. package/dist/shared/src/containers/Slicer/hooks/useProjectAnatomySlices.es.js +25 -0
  306. package/dist/shared/src/containers/Slicer/hooks/useProjectAnatomySlices.es.js.map +1 -0
  307. package/dist/shared/src/containers/Slicer/hooks/useSlicerAttributesData.cjs.js +2 -0
  308. package/dist/shared/src/containers/Slicer/hooks/useSlicerAttributesData.cjs.js.map +1 -0
  309. package/dist/shared/src/containers/Slicer/hooks/useSlicerAttributesData.es.js +28 -0
  310. package/dist/shared/src/containers/Slicer/hooks/useSlicerAttributesData.es.js.map +1 -0
  311. package/dist/shared/src/containers/Slicer/hooks/useTableDataBySlice.cjs.js +2 -0
  312. package/dist/shared/src/containers/Slicer/hooks/useTableDataBySlice.cjs.js.map +1 -0
  313. package/dist/shared/src/containers/Slicer/hooks/useTableDataBySlice.es.js +304 -0
  314. package/dist/shared/src/containers/Slicer/hooks/useTableDataBySlice.es.js.map +1 -0
  315. package/dist/shared/src/containers/Slicer/hooks/useUsersTable.cjs.js +2 -0
  316. package/dist/shared/src/containers/Slicer/hooks/useUsersTable.cjs.js.map +1 -0
  317. package/dist/shared/src/containers/Slicer/hooks/useUsersTable.es.js +99 -0
  318. package/dist/shared/src/containers/Slicer/hooks/useUsersTable.es.js.map +1 -0
  319. package/dist/shared/src/containers/Slicer/util/createFilterFromSlicer.cjs.js.map +1 -0
  320. package/dist/shared/src/containers/Slicer/util/createFilterFromSlicer.es.js.map +1 -0
  321. package/dist/shared/src/containers/Views/ViewsMenuContainer/BaseViewsTags.cjs.js +1 -1
  322. package/dist/shared/src/containers/Views/ViewsMenuContainer/BaseViewsTags.cjs.js.map +1 -1
  323. package/dist/shared/src/containers/Views/ViewsMenuContainer/BaseViewsTags.es.js +95 -88
  324. package/dist/shared/src/containers/Views/ViewsMenuContainer/BaseViewsTags.es.js.map +1 -1
  325. package/dist/shared/src/containers/Views/ViewsMenuContainer/ViewsMenuContainer.cjs.js +2 -2
  326. package/dist/shared/src/containers/Views/ViewsMenuContainer/ViewsMenuContainer.cjs.js.map +1 -1
  327. package/dist/shared/src/containers/Views/ViewsMenuContainer/ViewsMenuContainer.es.js +32 -31
  328. package/dist/shared/src/containers/Views/ViewsMenuContainer/ViewsMenuContainer.es.js.map +1 -1
  329. package/dist/shared/src/containers/Views/context/ViewsContext.cjs.js +1 -1
  330. package/dist/shared/src/containers/Views/context/ViewsContext.cjs.js.map +1 -1
  331. package/dist/shared/src/containers/Views/context/ViewsContext.es.js +125 -121
  332. package/dist/shared/src/containers/Views/context/ViewsContext.es.js.map +1 -1
  333. package/dist/shared/src/containers/Views/hooks/pages/useOverviewViewSettings.cjs.js +1 -1
  334. package/dist/shared/src/containers/Views/hooks/pages/useOverviewViewSettings.cjs.js.map +1 -1
  335. package/dist/shared/src/containers/Views/hooks/pages/useOverviewViewSettings.es.js +47 -49
  336. package/dist/shared/src/containers/Views/hooks/pages/useOverviewViewSettings.es.js.map +1 -1
  337. package/dist/shared/src/containers/Views/utils/viewUpdateHelper.cjs.js +1 -1
  338. package/dist/shared/src/containers/Views/utils/viewUpdateHelper.cjs.js.map +1 -1
  339. package/dist/shared/src/containers/Views/utils/viewUpdateHelper.es.js +6 -5
  340. package/dist/shared/src/containers/Views/utils/viewUpdateHelper.es.js.map +1 -1
  341. package/dist/shared/src/context/AddonContext.cjs.js.map +1 -1
  342. package/dist/shared/src/context/AddonContext.es.js.map +1 -1
  343. package/dist/shared/src/context/AddonProjectContext.cjs.js.map +1 -1
  344. package/dist/shared/src/context/AddonProjectContext.es.js.map +1 -1
  345. package/dist/shared/src/context/ProjectFoldersContext.cjs.js +1 -1
  346. package/dist/shared/src/context/ProjectFoldersContext.cjs.js.map +1 -1
  347. package/dist/shared/src/context/ProjectFoldersContext.es.js +62 -49
  348. package/dist/shared/src/context/ProjectFoldersContext.es.js.map +1 -1
  349. package/dist/shared/src/context/WebsocketContext.cjs.js +1 -1
  350. package/dist/shared/src/context/WebsocketContext.cjs.js.map +1 -1
  351. package/dist/shared/src/context/WebsocketContext.es.js +51 -44
  352. package/dist/shared/src/context/WebsocketContext.es.js.map +1 -1
  353. package/dist/shared/src/hooks/useGroupByRemoteModules.cjs.js.map +1 -1
  354. package/dist/shared/src/hooks/useGroupByRemoteModules.es.js.map +1 -1
  355. package/dist/shared/src/hooks/useLoadModules.cjs.js +1 -1
  356. package/dist/shared/src/hooks/useLoadModules.cjs.js.map +1 -1
  357. package/dist/shared/src/hooks/useLoadModules.es.js +7 -7
  358. package/dist/shared/src/hooks/useLoadModules.es.js.map +1 -1
  359. package/dist/shared/src/util/columnConfigConverter.cjs.js +1 -1
  360. package/dist/shared/src/util/columnConfigConverter.cjs.js.map +1 -1
  361. package/dist/shared/src/util/columnConfigConverter.es.js +69 -46
  362. package/dist/shared/src/util/columnConfigConverter.es.js.map +1 -1
  363. package/dist/shared/src/util/getGroupByDataType.cjs.js +1 -1
  364. package/dist/shared/src/util/getGroupByDataType.cjs.js.map +1 -1
  365. package/dist/shared/src/util/getGroupByDataType.es.js +4 -4
  366. package/dist/shared/src/util/getGroupByDataType.es.js.map +1 -1
  367. package/dist/types/api/queries/activities/getActivities.d.ts +1 -1
  368. package/dist/types/api/queries/entityLists/getLists.d.ts +183 -183
  369. package/dist/types/api/queries/links/getLinks.d.ts +1 -1
  370. package/dist/types/api/queries/overview/getOverview.d.ts +2 -1
  371. package/dist/types/api/queries/versions/getVersionsProducts.d.ts +2 -2
  372. package/dist/types/components/RemotePage/RemotePageWrapper.d.ts +29 -0
  373. package/dist/types/components/RemotePage/index.d.ts +1 -0
  374. package/dist/types/components/SearchFilter/useBuildFilterOptions.d.ts +1 -0
  375. package/dist/types/components/index.d.ts +31 -30
  376. package/dist/types/containers/ProjectTreeTable/context/ProjectTableContext.d.ts +0 -2
  377. package/dist/types/containers/ProjectTreeTable/context/ProjectTableProvider.d.ts +1 -4
  378. package/dist/types/containers/ProjectTreeTable/hooks/useFetchOverviewData.d.ts +2 -1
  379. package/dist/types/containers/ProjectTreeTable/hooks/useQueryFilters.d.ts +4 -1
  380. package/dist/types/containers/ProjectTreeTable/utils/restrictedEntity.d.ts +3 -3
  381. package/dist/types/containers/Slicer/components/Slicer.d.ts +9 -0
  382. package/dist/types/containers/Slicer/components/SlicerDropdownFallback.d.ts +7 -0
  383. package/dist/types/containers/Slicer/components/SlicerSearch.d.ts +6 -0
  384. package/dist/types/containers/Slicer/context/SlicerContext.d.ts +48 -0
  385. package/dist/types/containers/Slicer/hooks/index.d.ts +5 -0
  386. package/dist/types/containers/Slicer/{useFiltersWithHierarchy.d.ts → hooks/useFiltersWithHierarchy.d.ts} +1 -1
  387. package/dist/types/containers/Slicer/hooks/useProjectAnatomySlices.d.ts +51 -0
  388. package/dist/types/containers/Slicer/hooks/useSlicerAttributesData.d.ts +7 -0
  389. package/dist/types/containers/Slicer/hooks/useTableDataBySlice.d.ts +8 -0
  390. package/dist/types/containers/Slicer/hooks/useUsersTable.d.ts +10 -0
  391. package/dist/types/containers/Slicer/index.d.ts +4 -2
  392. package/dist/types/containers/Slicer/types.d.ts +35 -0
  393. package/dist/types/containers/Slicer/{createFilterFromSlicer.d.ts → util/createFilterFromSlicer.d.ts} +2 -2
  394. package/dist/types/containers/Slicer/util/index.d.ts +1 -0
  395. package/dist/types/containers/Views/ViewsMenuContainer/BaseViewsTags.d.ts +4 -1
  396. package/dist/types/containers/Views/hooks/pages/useOverviewViewSettings.d.ts +7 -1
  397. package/dist/types/containers/Views/index.d.ts +1 -1
  398. package/dist/types/containers/Views/utils/viewUpdateHelper.d.ts +1 -1
  399. package/dist/types/context/AddonContext.d.ts +10 -1
  400. package/dist/types/context/AddonProjectContext.d.ts +7 -12
  401. package/dist/types/context/ProjectFoldersContext.d.ts +1 -0
  402. package/dist/types/hooks/useGroupByRemoteModules.d.ts +2 -1
  403. package/package.json +1 -1
  404. package/dist/shared/src/containers/Slicer/createFilterFromSlicer.cjs.js.map +0 -1
  405. package/dist/shared/src/containers/Slicer/createFilterFromSlicer.es.js.map +0 -1
  406. package/dist/shared/src/containers/Slicer/useFiltersWithHierarchy.cjs.js.map +0 -1
  407. package/dist/shared/src/containers/Slicer/useFiltersWithHierarchy.es.js.map +0 -1
  408. /package/dist/shared/src/containers/Slicer/{useFiltersWithHierarchy.cjs.js → hooks/useFiltersWithHierarchy.cjs.js} +0 -0
  409. /package/dist/shared/src/containers/Slicer/{useFiltersWithHierarchy.es.js → hooks/useFiltersWithHierarchy.es.js} +0 -0
  410. /package/dist/shared/src/containers/Slicer/{createFilterFromSlicer.cjs.js → util/createFilterFromSlicer.cjs.js} +0 -0
  411. /package/dist/shared/src/containers/Slicer/{createFilterFromSlicer.es.js → util/createFilterFromSlicer.es.js} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"useLoadModules.cjs.js","sources":["../../../../src/hooks/useLoadModules.ts"],"sourcesContent":["import { loadRemote } from '@module-federation/enhanced/runtime'\nimport { useEffect, useRef, useState } from 'react'\nimport semver from 'semver'\nimport { FrontendModuleListItem } from '@shared/api'\n\nexport interface ModuleSpec<T> {\n addon: string\n remote: string\n module: string\n fallback?: T\n debug?: boolean\n minVersion?: string\n}\n\ntype ModuleResult<T> = [\n T,\n {\n isLoaded: boolean\n addon: string\n remote: string\n module: string\n minVersion?: string\n outdated?: {\n current: string\n required: string\n }\n },\n]\n\nexport const useLoadModules = <T extends any[]>(\n moduleSpecs: ModuleSpec<T[number]>[],\n modules: FrontendModuleListItem[],\n skip: boolean,\n): { modules: ModuleResult<T[number]>[]; isLoading: boolean } => {\n // Use a ref to track which modules have been processed\n const processedModules = useRef<Set<string>>(new Set())\n\n // Initialize results state\n const [results, setResults] = useState<ModuleResult<T[number]>[]>(() =>\n initializeResults(moduleSpecs),\n )\n const [isLoading, setIsLoading] = useState(modules.length > 0 && !skip)\n\n // Reset and reinitialize when moduleSpecs change\n useEffect(() => {\n if (skip) return\n // Reset the processed modules tracker\n processedModules.current = new Set()\n\n // Initialize results with proper structure\n setResults(initializeResults(moduleSpecs))\n }, [JSON.stringify(moduleSpecs), skip])\n\n const loadModule = async (\n remote: string,\n module: string,\n addon: string,\n fallback: T[number] | undefined,\n minVersion?: string,\n ) => {\n try {\n const result = await loadRemote<{ default: T[number] }>(`${remote}/${module}`, {\n from: 'runtime',\n })\n updateResultWithLoaded(addon, remote, module, result?.default || fallback, minVersion)\n } catch (error) {\n console.error('Error loading remote module', remote, module, error)\n throw error\n }\n }\n\n // Load modules when remotes are initialized\n useEffect(() => {\n if (skip) {\n setIsLoading(false)\n return\n }\n\n console.log('loading modules')\n\n const promises: Promise<void>[] = []\n moduleSpecs.forEach((spec, index) => {\n const { addon, remote, module, fallback, minVersion } = spec\n\n if (!addon || !remote || !module) return\n\n // Create a unique key for this module\n const moduleKey = `${addon}/${remote}/${module}`\n\n // Skip if already processed\n if (processedModules.current.has(moduleKey)) return\n\n // Check if this module is already loaded in our results\n if (results[index]?.[1]?.isLoaded) {\n processedModules.current.add(moduleKey)\n return\n }\n\n // Mark as processed\n processedModules.current.add(moduleKey)\n\n const addonInfo = modules.find((m) => m.addonName === addon)\n\n // Handle missing addon\n if (!addonInfo) {\n console.log('Addon not found', { addon, remote, module })\n return\n }\n\n // Check version requirements\n if (minVersion && !semver.gte(addonInfo.addonVersion, minVersion)) {\n updateResultWithOutdated(\n index,\n addon,\n remote,\n module,\n fallback,\n minVersion,\n addonInfo.addonVersion,\n )\n return\n }\n\n // Check if module exists\n if (!addonInfo.modules[remote]) {\n console.log('Module not found', { addon, remote, module })\n return\n }\n\n promises.push(loadModule(remote, module, addon, fallback, minVersion))\n })\n\n if (!promises.length) {\n setIsLoading(false)\n return\n }\n\n // Wait for all promises to resolve\n setIsLoading(true)\n Promise.all(promises)\n .then(() => {\n // all modules loaded\n setIsLoading(false)\n })\n .catch((error) => {\n console.error('Error loading modules', error)\n setIsLoading(false)\n })\n }, [skip, modules, JSON.stringify(moduleSpecs)])\n\n // Helper function to initialize results\n function initializeResults(specs: ModuleSpec<T[number]>[]): ModuleResult<T[number]>[] {\n return specs.map(\n ({ addon = '', remote = '', module = '', fallback, minVersion }): ModuleResult<T[number]> => [\n fallback as T[number],\n {\n isLoaded: false,\n addon,\n remote,\n module,\n minVersion,\n outdated: undefined,\n },\n ],\n )\n }\n\n // Helper to update a result with outdated status\n function updateResultWithOutdated(\n index: number,\n addon: string,\n remote: string,\n module: string,\n fallback: T[number] | undefined,\n requiredVersion: string,\n currentVersion: string,\n ) {\n setResults((prev) => {\n const updated = [...prev]\n if (index >= 0 && index < updated.length) {\n updated[index] = [\n fallback,\n {\n isLoaded: false,\n addon,\n remote,\n module,\n minVersion: requiredVersion,\n outdated: {\n current: currentVersion,\n required: requiredVersion,\n },\n },\n ]\n }\n return updated\n })\n }\n\n // Helper to update a result when module is loaded\n function updateResultWithLoaded(\n addon: string,\n remote: string,\n module: string,\n loadedModule: T[number] | undefined,\n minVersion?: string,\n ) {\n setResults((prev) => {\n const updated = [...prev]\n // Find the corresponding module spec\n const index = moduleSpecs.findIndex(\n (spec) => spec.addon === addon && spec.remote === remote && spec.module === module,\n )\n\n if (index >= 0 && index < updated.length) {\n updated[index] = [\n loadedModule,\n {\n isLoaded: true,\n addon,\n remote,\n module,\n minVersion,\n outdated: undefined,\n },\n ]\n }\n return updated\n })\n }\n\n return { modules: results, isLoading }\n}\n"],"names":["useLoadModules","moduleSpecs","modules","skip","processedModules","useRef","results","setResults","useState","initializeResults","isLoading","setIsLoading","useEffect","loadModule","remote","module","addon","fallback","minVersion","result","loadRemote","updateResultWithLoaded","error","promises","spec","index","moduleKey","addonInfo","m","semver","updateResultWithOutdated","specs","requiredVersion","currentVersion","prev","updated","loadedModule"],"mappings":"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"}
1
+ {"version":3,"file":"useLoadModules.cjs.js","sources":["../../../../src/hooks/useLoadModules.ts"],"sourcesContent":["import { loadRemote } from '@module-federation/enhanced/runtime'\nimport { useEffect, useRef, useState } from 'react'\nimport semver from 'semver'\nimport { FrontendModuleListItem } from '@shared/api'\n\nexport interface ModuleSpec<T> {\n addon: string\n remote: string\n module: string\n fallback?: T\n debug?: boolean\n minVersion?: string\n}\n\ntype ModuleResult<T> = [\n T,\n {\n isLoaded: boolean\n addon: string\n remote: string\n module: string\n minVersion?: string\n outdated?: {\n current: string\n required: string\n }\n },\n]\n\nexport const useLoadModules = <T extends any[]>(\n moduleSpecs: ModuleSpec<T[number]>[],\n modules: FrontendModuleListItem[],\n skip: boolean,\n): { modules: ModuleResult<T[number]>[]; isLoading: boolean } => {\n // Use a ref to track which modules have been processed\n const processedModules = useRef<Set<string>>(new Set())\n\n // Initialize results state\n const [results, setResults] = useState<ModuleResult<T[number]>[]>(() =>\n initializeResults(moduleSpecs),\n )\n const [isLoading, setIsLoading] = useState(modules.length > 0 && !skip)\n\n // Reset and reinitialize when moduleSpecs change\n useEffect(() => {\n if (skip) return\n // Reset the processed modules tracker\n processedModules.current = new Set()\n\n // Initialize results with proper structure\n setResults(initializeResults(moduleSpecs))\n }, [JSON.stringify(moduleSpecs), skip])\n\n const loadModule = async (\n remote: string,\n module: string,\n addon: string,\n fallback: T[number] | undefined,\n minVersion?: string,\n ) => {\n try {\n const result = await loadRemote<{ default: T[number] }>(`${remote}/${module}`, {\n from: 'runtime',\n })\n updateResultWithLoaded(addon, remote, module, result?.default || fallback, minVersion)\n } catch (error) {\n console.error('Error loading remote module', remote, module, error)\n throw error\n }\n }\n\n // Load modules when remotes are initialized\n useEffect(() => {\n if (skip) {\n setIsLoading(false)\n return\n }\n\n console.log('loading modules')\n\n const promises: Promise<void>[] = []\n moduleSpecs.forEach((spec, index) => {\n const { addon, remote, module, fallback, minVersion } = spec\n\n if (!addon || !remote || !module) return\n\n // Create a unique key for this module\n const moduleKey = `${addon}/${remote}/${module}`\n\n // Skip if already processed\n if (processedModules.current.has(moduleKey)) return\n\n // Check if this module is already loaded in our results\n if (results[index]?.[1]?.isLoaded) {\n processedModules.current.add(moduleKey)\n return\n }\n\n // Mark as processed\n processedModules.current.add(moduleKey)\n\n const addonInfo = modules.find((m) => m.addonName === addon)\n\n // Handle missing addon\n if (!addonInfo) {\n console.log('Addon not found', { addon, remote, module })\n return\n }\n\n // Check version requirements\n if (minVersion && !semver.gte(addonInfo.addonVersion, minVersion)) {\n updateResultWithOutdated(\n index,\n addon,\n remote,\n module,\n fallback,\n minVersion,\n addonInfo.addonVersion,\n )\n return\n }\n\n // Check if module exists\n if (!addonInfo.modules[remote]) {\n console.log('Module not found', { addon, remote, module })\n return\n }\n\n promises.push(loadModule(remote, module, addon, fallback, minVersion))\n })\n\n if (!promises.length) {\n setIsLoading(false)\n return\n }\n\n // Wait for all promises to resolve\n setIsLoading(true)\n Promise.all(promises)\n .then(() => {\n // all modules loaded\n setIsLoading(false)\n })\n .catch((error) => {\n console.error('Error loading modules', error)\n setIsLoading(false)\n })\n }, [skip, modules, JSON.stringify(moduleSpecs), results])\n\n // Helper function to initialize results\n function initializeResults(specs: ModuleSpec<T[number]>[]): ModuleResult<T[number]>[] {\n return specs.map(\n ({ addon = '', remote = '', module = '', fallback, minVersion }): ModuleResult<T[number]> => [\n fallback as T[number],\n {\n isLoaded: false,\n addon,\n remote,\n module,\n minVersion,\n outdated: undefined,\n },\n ],\n )\n }\n\n // Helper to update a result with outdated status\n function updateResultWithOutdated(\n index: number,\n addon: string,\n remote: string,\n module: string,\n fallback: T[number] | undefined,\n requiredVersion: string,\n currentVersion: string,\n ) {\n setResults((prev) => {\n const updated = [...prev]\n if (index >= 0 && index < updated.length) {\n updated[index] = [\n fallback,\n {\n isLoaded: false,\n addon,\n remote,\n module,\n minVersion: requiredVersion,\n outdated: {\n current: currentVersion,\n required: requiredVersion,\n },\n },\n ]\n }\n return updated\n })\n }\n\n // Helper to update a result when module is loaded\n function updateResultWithLoaded(\n addon: string,\n remote: string,\n module: string,\n loadedModule: T[number] | undefined,\n minVersion?: string,\n ) {\n setResults((prev) => {\n const updated = [...prev]\n // Find the corresponding module spec\n const index = moduleSpecs.findIndex(\n (spec) => spec.addon === addon && spec.remote === remote && spec.module === module,\n )\n\n if (index >= 0 && index < updated.length) {\n updated[index] = [\n loadedModule,\n {\n isLoaded: true,\n addon,\n remote,\n module,\n minVersion,\n outdated: undefined,\n },\n ]\n }\n return updated\n })\n }\n\n return { modules: results, isLoading }\n}\n"],"names":["useLoadModules","moduleSpecs","modules","skip","processedModules","useRef","results","setResults","useState","initializeResults","isLoading","setIsLoading","useEffect","loadModule","remote","module","addon","fallback","minVersion","result","loadRemote","updateResultWithLoaded","error","promises","spec","index","moduleKey","addonInfo","m","semver","updateResultWithOutdated","specs","requiredVersion","currentVersion","prev","updated","loadedModule"],"mappings":"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"}
@@ -2,11 +2,11 @@ import { r as N } from "../../../_virtual/runtime.es.js";
2
2
  import { useRef as O, useState as y, useEffect as E } from "react";
3
3
  import V from "../../../_virtual/semver.es.js";
4
4
  const b = (i, m, f) => {
5
- const c = O(/* @__PURE__ */ new Set()), [L, h] = y(
5
+ const c = O(/* @__PURE__ */ new Set()), [h, L] = y(
6
6
  () => R(i)
7
7
  ), [$, l] = y(m.length > 0 && !f);
8
8
  E(() => {
9
- f || (c.current = /* @__PURE__ */ new Set(), h(R(i)));
9
+ f || (c.current = /* @__PURE__ */ new Set(), L(R(i)));
10
10
  }, [JSON.stringify(i), f]);
11
11
  const w = async (e, n, d, o, r) => {
12
12
  try {
@@ -30,7 +30,7 @@ const b = (i, m, f) => {
30
30
  if (!o || !r || !t) return;
31
31
  const s = `${o}/${r}/${t}`;
32
32
  if (c.current.has(s)) return;
33
- if (L[d]?.[1]?.isLoaded) {
33
+ if (h[d]?.[1]?.isLoaded) {
34
34
  c.current.add(s);
35
35
  return;
36
36
  }
@@ -66,7 +66,7 @@ const b = (i, m, f) => {
66
66
  }).catch((n) => {
67
67
  console.error("Error loading modules", n), l(!1);
68
68
  });
69
- }, [f, m, JSON.stringify(i)]);
69
+ }, [f, m, JSON.stringify(i), h]);
70
70
  function R(e) {
71
71
  return e.map(
72
72
  ({ addon: n = "", remote: d = "", module: o = "", fallback: r, minVersion: t }) => [
@@ -83,7 +83,7 @@ const b = (i, m, f) => {
83
83
  );
84
84
  }
85
85
  function M(e, n, d, o, r, t, u) {
86
- h((a) => {
86
+ L((a) => {
87
87
  const s = [...a];
88
88
  return e >= 0 && e < s.length && (s[e] = [
89
89
  r,
@@ -102,7 +102,7 @@ const b = (i, m, f) => {
102
102
  });
103
103
  }
104
104
  function v(e, n, d, o, r) {
105
- h((t) => {
105
+ L((t) => {
106
106
  const u = [...t], a = i.findIndex(
107
107
  (s) => s.addon === e && s.remote === n && s.module === d
108
108
  );
@@ -119,7 +119,7 @@ const b = (i, m, f) => {
119
119
  ]), u;
120
120
  });
121
121
  }
122
- return { modules: L, isLoading: $ };
122
+ return { modules: h, isLoading: $ };
123
123
  };
124
124
  export {
125
125
  b as useLoadModules
@@ -1 +1 @@
1
- {"version":3,"file":"useLoadModules.es.js","sources":["../../../../src/hooks/useLoadModules.ts"],"sourcesContent":["import { loadRemote } from '@module-federation/enhanced/runtime'\nimport { useEffect, useRef, useState } from 'react'\nimport semver from 'semver'\nimport { FrontendModuleListItem } from '@shared/api'\n\nexport interface ModuleSpec<T> {\n addon: string\n remote: string\n module: string\n fallback?: T\n debug?: boolean\n minVersion?: string\n}\n\ntype ModuleResult<T> = [\n T,\n {\n isLoaded: boolean\n addon: string\n remote: string\n module: string\n minVersion?: string\n outdated?: {\n current: string\n required: string\n }\n },\n]\n\nexport const useLoadModules = <T extends any[]>(\n moduleSpecs: ModuleSpec<T[number]>[],\n modules: FrontendModuleListItem[],\n skip: boolean,\n): { modules: ModuleResult<T[number]>[]; isLoading: boolean } => {\n // Use a ref to track which modules have been processed\n const processedModules = useRef<Set<string>>(new Set())\n\n // Initialize results state\n const [results, setResults] = useState<ModuleResult<T[number]>[]>(() =>\n initializeResults(moduleSpecs),\n )\n const [isLoading, setIsLoading] = useState(modules.length > 0 && !skip)\n\n // Reset and reinitialize when moduleSpecs change\n useEffect(() => {\n if (skip) return\n // Reset the processed modules tracker\n processedModules.current = new Set()\n\n // Initialize results with proper structure\n setResults(initializeResults(moduleSpecs))\n }, [JSON.stringify(moduleSpecs), skip])\n\n const loadModule = async (\n remote: string,\n module: string,\n addon: string,\n fallback: T[number] | undefined,\n minVersion?: string,\n ) => {\n try {\n const result = await loadRemote<{ default: T[number] }>(`${remote}/${module}`, {\n from: 'runtime',\n })\n updateResultWithLoaded(addon, remote, module, result?.default || fallback, minVersion)\n } catch (error) {\n console.error('Error loading remote module', remote, module, error)\n throw error\n }\n }\n\n // Load modules when remotes are initialized\n useEffect(() => {\n if (skip) {\n setIsLoading(false)\n return\n }\n\n console.log('loading modules')\n\n const promises: Promise<void>[] = []\n moduleSpecs.forEach((spec, index) => {\n const { addon, remote, module, fallback, minVersion } = spec\n\n if (!addon || !remote || !module) return\n\n // Create a unique key for this module\n const moduleKey = `${addon}/${remote}/${module}`\n\n // Skip if already processed\n if (processedModules.current.has(moduleKey)) return\n\n // Check if this module is already loaded in our results\n if (results[index]?.[1]?.isLoaded) {\n processedModules.current.add(moduleKey)\n return\n }\n\n // Mark as processed\n processedModules.current.add(moduleKey)\n\n const addonInfo = modules.find((m) => m.addonName === addon)\n\n // Handle missing addon\n if (!addonInfo) {\n console.log('Addon not found', { addon, remote, module })\n return\n }\n\n // Check version requirements\n if (minVersion && !semver.gte(addonInfo.addonVersion, minVersion)) {\n updateResultWithOutdated(\n index,\n addon,\n remote,\n module,\n fallback,\n minVersion,\n addonInfo.addonVersion,\n )\n return\n }\n\n // Check if module exists\n if (!addonInfo.modules[remote]) {\n console.log('Module not found', { addon, remote, module })\n return\n }\n\n promises.push(loadModule(remote, module, addon, fallback, minVersion))\n })\n\n if (!promises.length) {\n setIsLoading(false)\n return\n }\n\n // Wait for all promises to resolve\n setIsLoading(true)\n Promise.all(promises)\n .then(() => {\n // all modules loaded\n setIsLoading(false)\n })\n .catch((error) => {\n console.error('Error loading modules', error)\n setIsLoading(false)\n })\n }, [skip, modules, JSON.stringify(moduleSpecs)])\n\n // Helper function to initialize results\n function initializeResults(specs: ModuleSpec<T[number]>[]): ModuleResult<T[number]>[] {\n return specs.map(\n ({ addon = '', remote = '', module = '', fallback, minVersion }): ModuleResult<T[number]> => [\n fallback as T[number],\n {\n isLoaded: false,\n addon,\n remote,\n module,\n minVersion,\n outdated: undefined,\n },\n ],\n )\n }\n\n // Helper to update a result with outdated status\n function updateResultWithOutdated(\n index: number,\n addon: string,\n remote: string,\n module: string,\n fallback: T[number] | undefined,\n requiredVersion: string,\n currentVersion: string,\n ) {\n setResults((prev) => {\n const updated = [...prev]\n if (index >= 0 && index < updated.length) {\n updated[index] = [\n fallback,\n {\n isLoaded: false,\n addon,\n remote,\n module,\n minVersion: requiredVersion,\n outdated: {\n current: currentVersion,\n required: requiredVersion,\n },\n },\n ]\n }\n return updated\n })\n }\n\n // Helper to update a result when module is loaded\n function updateResultWithLoaded(\n addon: string,\n remote: string,\n module: string,\n loadedModule: T[number] | undefined,\n minVersion?: string,\n ) {\n setResults((prev) => {\n const updated = [...prev]\n // Find the corresponding module spec\n const index = moduleSpecs.findIndex(\n (spec) => spec.addon === addon && spec.remote === remote && spec.module === module,\n )\n\n if (index >= 0 && index < updated.length) {\n updated[index] = [\n loadedModule,\n {\n isLoaded: true,\n addon,\n remote,\n module,\n minVersion,\n outdated: undefined,\n },\n ]\n }\n return updated\n })\n }\n\n return { modules: results, isLoading }\n}\n"],"names":["useLoadModules","moduleSpecs","modules","skip","processedModules","useRef","results","setResults","useState","initializeResults","isLoading","setIsLoading","useEffect","loadModule","remote","module","addon","fallback","minVersion","result","loadRemote","updateResultWithLoaded","error","promises","spec","index","moduleKey","addonInfo","m","semver","updateResultWithOutdated","specs","requiredVersion","currentVersion","prev","updated","loadedModule"],"mappings":"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"}
1
+ {"version":3,"file":"useLoadModules.es.js","sources":["../../../../src/hooks/useLoadModules.ts"],"sourcesContent":["import { loadRemote } from '@module-federation/enhanced/runtime'\nimport { useEffect, useRef, useState } from 'react'\nimport semver from 'semver'\nimport { FrontendModuleListItem } from '@shared/api'\n\nexport interface ModuleSpec<T> {\n addon: string\n remote: string\n module: string\n fallback?: T\n debug?: boolean\n minVersion?: string\n}\n\ntype ModuleResult<T> = [\n T,\n {\n isLoaded: boolean\n addon: string\n remote: string\n module: string\n minVersion?: string\n outdated?: {\n current: string\n required: string\n }\n },\n]\n\nexport const useLoadModules = <T extends any[]>(\n moduleSpecs: ModuleSpec<T[number]>[],\n modules: FrontendModuleListItem[],\n skip: boolean,\n): { modules: ModuleResult<T[number]>[]; isLoading: boolean } => {\n // Use a ref to track which modules have been processed\n const processedModules = useRef<Set<string>>(new Set())\n\n // Initialize results state\n const [results, setResults] = useState<ModuleResult<T[number]>[]>(() =>\n initializeResults(moduleSpecs),\n )\n const [isLoading, setIsLoading] = useState(modules.length > 0 && !skip)\n\n // Reset and reinitialize when moduleSpecs change\n useEffect(() => {\n if (skip) return\n // Reset the processed modules tracker\n processedModules.current = new Set()\n\n // Initialize results with proper structure\n setResults(initializeResults(moduleSpecs))\n }, [JSON.stringify(moduleSpecs), skip])\n\n const loadModule = async (\n remote: string,\n module: string,\n addon: string,\n fallback: T[number] | undefined,\n minVersion?: string,\n ) => {\n try {\n const result = await loadRemote<{ default: T[number] }>(`${remote}/${module}`, {\n from: 'runtime',\n })\n updateResultWithLoaded(addon, remote, module, result?.default || fallback, minVersion)\n } catch (error) {\n console.error('Error loading remote module', remote, module, error)\n throw error\n }\n }\n\n // Load modules when remotes are initialized\n useEffect(() => {\n if (skip) {\n setIsLoading(false)\n return\n }\n\n console.log('loading modules')\n\n const promises: Promise<void>[] = []\n moduleSpecs.forEach((spec, index) => {\n const { addon, remote, module, fallback, minVersion } = spec\n\n if (!addon || !remote || !module) return\n\n // Create a unique key for this module\n const moduleKey = `${addon}/${remote}/${module}`\n\n // Skip if already processed\n if (processedModules.current.has(moduleKey)) return\n\n // Check if this module is already loaded in our results\n if (results[index]?.[1]?.isLoaded) {\n processedModules.current.add(moduleKey)\n return\n }\n\n // Mark as processed\n processedModules.current.add(moduleKey)\n\n const addonInfo = modules.find((m) => m.addonName === addon)\n\n // Handle missing addon\n if (!addonInfo) {\n console.log('Addon not found', { addon, remote, module })\n return\n }\n\n // Check version requirements\n if (minVersion && !semver.gte(addonInfo.addonVersion, minVersion)) {\n updateResultWithOutdated(\n index,\n addon,\n remote,\n module,\n fallback,\n minVersion,\n addonInfo.addonVersion,\n )\n return\n }\n\n // Check if module exists\n if (!addonInfo.modules[remote]) {\n console.log('Module not found', { addon, remote, module })\n return\n }\n\n promises.push(loadModule(remote, module, addon, fallback, minVersion))\n })\n\n if (!promises.length) {\n setIsLoading(false)\n return\n }\n\n // Wait for all promises to resolve\n setIsLoading(true)\n Promise.all(promises)\n .then(() => {\n // all modules loaded\n setIsLoading(false)\n })\n .catch((error) => {\n console.error('Error loading modules', error)\n setIsLoading(false)\n })\n }, [skip, modules, JSON.stringify(moduleSpecs), results])\n\n // Helper function to initialize results\n function initializeResults(specs: ModuleSpec<T[number]>[]): ModuleResult<T[number]>[] {\n return specs.map(\n ({ addon = '', remote = '', module = '', fallback, minVersion }): ModuleResult<T[number]> => [\n fallback as T[number],\n {\n isLoaded: false,\n addon,\n remote,\n module,\n minVersion,\n outdated: undefined,\n },\n ],\n )\n }\n\n // Helper to update a result with outdated status\n function updateResultWithOutdated(\n index: number,\n addon: string,\n remote: string,\n module: string,\n fallback: T[number] | undefined,\n requiredVersion: string,\n currentVersion: string,\n ) {\n setResults((prev) => {\n const updated = [...prev]\n if (index >= 0 && index < updated.length) {\n updated[index] = [\n fallback,\n {\n isLoaded: false,\n addon,\n remote,\n module,\n minVersion: requiredVersion,\n outdated: {\n current: currentVersion,\n required: requiredVersion,\n },\n },\n ]\n }\n return updated\n })\n }\n\n // Helper to update a result when module is loaded\n function updateResultWithLoaded(\n addon: string,\n remote: string,\n module: string,\n loadedModule: T[number] | undefined,\n minVersion?: string,\n ) {\n setResults((prev) => {\n const updated = [...prev]\n // Find the corresponding module spec\n const index = moduleSpecs.findIndex(\n (spec) => spec.addon === addon && spec.remote === remote && spec.module === module,\n )\n\n if (index >= 0 && index < updated.length) {\n updated[index] = [\n loadedModule,\n {\n isLoaded: true,\n addon,\n remote,\n module,\n minVersion,\n outdated: undefined,\n },\n ]\n }\n return updated\n })\n }\n\n return { modules: results, isLoading }\n}\n"],"names":["useLoadModules","moduleSpecs","modules","skip","processedModules","useRef","results","setResults","useState","initializeResults","isLoading","setIsLoading","useEffect","loadModule","remote","module","addon","fallback","minVersion","result","loadRemote","updateResultWithLoaded","error","promises","spec","index","moduleKey","addonInfo","m","semver","updateResultWithOutdated","specs","requiredVersion","currentVersion","prev","updated","loadedModule"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});function v(n){const{columns:i=[],groupBy:s,showEmptyGroups:e,sortBy:o,sortDesc:t,rowHeight:c}=n||{},d={},f={left:[],right:[]},l=[],a={};return i.forEach(u=>{const{name:g,visible:m,pinned:C,width:h}=u;d[g]=m!==!1,l.push(g),C&&f.left?.push(g),h!==void 0&&(a[g]=h)}),{columnVisibility:d,columnPinning:f,columnOrder:l,columnSizing:a,sorting:o?[{id:o,desc:t||!1}]:[],groupBy:s?{id:s,desc:!1}:void 0,groupByConfig:{showEmpty:e||!1},rowHeight:c??34}}function w(n,i,s){const e=[...n],o=i.filter(t=>!n.includes(t)&&s.has(t));return[...e,...o]}function B(n,i,s,e){const o=new Set;return Object.keys(n).forEach(t=>o.add(t)),Object.keys(i).forEach(t=>o.add(t)),s.left?.forEach(t=>o.add(t)),s.right?.forEach(t=>o.add(t)),e?.forEach(t=>o.add(t)),o}function S(n,i,s,e){const o={name:n};i.hasOwnProperty(n)&&(o.visible=i[n]);const t=s.left?.includes(n),c=s.right?.includes(n);return(t||c)&&(o.pinned=!0),e[n]!==void 0&&(o.width=e[n]),o}function E(n,i){const{columnVisibility:s,columnPinning:e,columnOrder:o,columnSizing:t,sorting:c,groupBy:d,groupByConfig:f,rowHeight:l}=n,a=B(s,t,e,i||[]),r={columns:w(o,i||[],a).map(u=>S(u,s,e,t))};if(d?r.groupBy=d.id:r.groupBy=void 0,f?.showEmpty!==void 0&&(r.showEmptyGroups=f.showEmpty),c)if(c.length>0){const u=c[0];r.sortBy=u.id,r.sortDesc=u.desc}else r.sortBy=void 0,r.sortDesc=void 0;return l!==void 0&&(r.rowHeight=l),r}exports.convertColumnConfigToTanstackStates=v;exports.convertTanstackStatesToColumnConfig=E;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});function v(n){const{columns:e=[],groupBy:i,showEmptyGroups:s,sortBy:o,sortDesc:t,rowHeight:d}=n||{},f={},a={left:[],right:[]},g=[],h={};e.forEach(r=>{const{name:l,visible:m,pinned:C,width:p}=r;f[l]=m!==!1,g.push(l),C&&a.left?.push(l),p!==void 0&&(h[l]=p)});const y=o?[{id:o,desc:t||!1}]:[];let u;if(typeof i=="string"&&i.length>0)u={id:i,desc:!1};else if(Array.isArray(i)){const r=i.find(l=>typeof l=="string"&&l.length>0);r?u={id:r,desc:!1}:u=void 0}else u=void 0;return{columnVisibility:f,columnPinning:a,columnOrder:g,columnSizing:h,sorting:y,groupBy:u,groupByConfig:{showEmpty:s||!1,entityType:""},rowHeight:d??34}}function w(n,e,i){const s=[...n],o=e.filter(t=>!n.includes(t)&&i.has(t));return[...s,...o]}function B(n,e,i,s){const o=new Set;return Object.keys(n).forEach(t=>o.add(t)),Object.keys(e).forEach(t=>o.add(t)),i.left?.forEach(t=>o.add(t)),i.right?.forEach(t=>o.add(t)),s?.forEach(t=>o.add(t)),o}function S(n,e,i,s){const o={name:n};e.hasOwnProperty(n)&&(o.visible=e[n]);const t=i.left?.includes(n),d=i.right?.includes(n);return(t||d)&&(o.pinned=!0),s[n]!==void 0&&(o.width=s[n]),o}function E(n,e){const{columnVisibility:i,columnPinning:s,columnOrder:o,columnSizing:t,sorting:d,groupBy:f,groupByConfig:a,rowHeight:g}=n,h=B(i,t,s,e||[]),c={columns:w(o,e||[],h).map(r=>S(r,i,s,t))};if(f){const r=Array.isArray(f.id)?f.id[0]:f.id;c.groupBy=r||void 0}else c.groupBy=void 0;if(a?.showEmpty!==void 0&&(c.showEmptyGroups=a.showEmpty),d)if(d.length>0){const r=d[0];c.sortBy=r.id,c.sortDesc=r.desc}else c.sortBy=void 0,c.sortDesc=void 0;return g!==void 0&&(c.rowHeight=g),c}exports.convertColumnConfigToTanstackStates=v;exports.convertTanstackStatesToColumnConfig=E;
2
2
  //# sourceMappingURL=columnConfigConverter.cjs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"columnConfigConverter.cjs.js","sources":["../../../../src/util/columnConfigConverter.ts"],"sourcesContent":["import {\n VisibilityState,\n ColumnPinningState,\n ColumnOrderState,\n ColumnSizingState,\n SortingState,\n} from '@tanstack/react-table'\nimport { ColumnItemModel, OverviewSettings } from '@shared/api/generated/views'\nimport { ColumnsConfig, TableGroupBy } from '@shared/containers'\nimport { GroupByConfig } from '@shared/containers/ProjectTreeTable/components/GroupSettingsFallback'\n\n/**\n * Converts ColumnItemModel array from OverviewSettings to TanStack table states\n */\nexport function convertColumnConfigToTanstackStates(settings: OverviewSettings): ColumnsConfig {\n const { columns = [], groupBy: groupByField, showEmptyGroups, sortBy, sortDesc, rowHeight } = settings || {}\n\n // Initialize state objects\n const columnVisibility: VisibilityState = {}\n const columnPinning: ColumnPinningState = { left: [], right: [] }\n const columnOrder: ColumnOrderState = []\n const columnSizing: ColumnSizingState = {}\n\n // Process each column from the settings\n columns.forEach((column) => {\n const { name, visible, pinned, width } = column\n\n // Column visibility: if visible is undefined, default to true\n columnVisibility[name] = visible !== false\n\n // Column order: maintain the order from the settings\n columnOrder.push(name)\n\n // Column pinning: assuming pinned: true means left pinning\n if (pinned) {\n columnPinning.left?.push(name)\n }\n\n // Column sizing: set width if provided\n if (width !== undefined) {\n columnSizing[name] = width\n }\n })\n\n // Handle sorting\n const sorting: SortingState = sortBy ? [{ id: sortBy, desc: sortDesc || false }] : []\n\n // Handle grouping\n const groupBy: TableGroupBy | undefined = groupByField\n ? { id: groupByField, desc: false }\n : undefined\n\n const groupByConfig: GroupByConfig = {\n showEmpty: showEmptyGroups || false,\n }\n\n return {\n columnVisibility,\n columnPinning,\n columnOrder,\n columnSizing,\n sorting,\n groupBy,\n groupByConfig,\n rowHeight: rowHeight ?? 34,\n }\n}\n\n/**\n * Determines the final column order based on columnOrder and allColumnIds\n * - Columns in columnOrder come first (in their specified order)\n * - Remaining columns follow the order from allColumnIds\n */\nfunction determineColumnOrder(\n columnOrder: ColumnOrderState,\n allColumnIds: string[],\n columnsWithState: Set<string>,\n): string[] {\n // Start with columns from columnOrder (these have explicit positioning)\n const orderedColumns = [...columnOrder]\n\n // Add remaining columns from allColumnIds that aren't already in columnOrder\n const remainingColumns = allColumnIds.filter(\n (columnId) => !columnOrder.includes(columnId) && columnsWithState.has(columnId),\n )\n\n return [...orderedColumns, ...remainingColumns]\n}\n\n/**\n * Collects all columns that have any state (visibility, sizing, pinning, etc.)\n */\nfunction collectColumnsWithState(\n columnVisibility: VisibilityState,\n columnSizing: ColumnSizingState,\n columnPinning: ColumnPinningState,\n allColumnIds: string[],\n): Set<string> {\n const columnsWithState = new Set<string>()\n\n // Add columns with visibility state\n Object.keys(columnVisibility).forEach((col) => columnsWithState.add(col))\n\n // Add columns with sizing state\n Object.keys(columnSizing).forEach((col) => columnsWithState.add(col))\n\n // Add pinned columns\n columnPinning.left?.forEach((col) => columnsWithState.add(col))\n columnPinning.right?.forEach((col) => columnsWithState.add(col))\n\n // Add any additional columns from allColumnIds\n allColumnIds?.forEach((col) => columnsWithState.add(col))\n\n return columnsWithState\n}\n\n/**\n * Creates a ColumnItemModel for a given column name with all applicable state\n */\nfunction createColumnItem(\n columnName: string,\n columnVisibility: VisibilityState,\n columnPinning: ColumnPinningState,\n columnSizing: ColumnSizingState,\n): ColumnItemModel {\n const column: ColumnItemModel = {\n name: columnName,\n }\n\n // Set visibility if defined in state\n if (columnVisibility.hasOwnProperty(columnName)) {\n column.visible = columnVisibility[columnName]\n }\n\n // Set pinning if column is pinned\n const isPinnedLeft = columnPinning.left?.includes(columnName)\n const isPinnedRight = columnPinning.right?.includes(columnName)\n\n if (isPinnedLeft || isPinnedRight) {\n column.pinned = true\n }\n\n // Set width if defined in state\n if (columnSizing[columnName] !== undefined) {\n column.width = columnSizing[columnName]\n }\n\n return column\n}\n\n/**\n * Converts TanStack table states back to OverviewSettings format\n *\n * Column ordering logic:\n * 1. Columns in columnOrder appear first (in their specified order)\n * 2. Remaining columns follow the order from allColumnIds\n * 3. Only columns with state (visibility, sizing, pinning) or in allColumnIds are included\n */\nexport function convertTanstackStatesToColumnConfig(\n states: ColumnsConfig,\n allColumnIds?: string[],\n): OverviewSettings {\n const {\n columnVisibility,\n columnPinning,\n columnOrder,\n columnSizing,\n sorting,\n groupBy,\n groupByConfig,\n rowHeight,\n } = states\n\n // Collect all columns that have any state\n const columnsWithState = collectColumnsWithState(\n columnVisibility,\n columnSizing,\n columnPinning,\n allColumnIds || [],\n )\n\n // Determine the final column order\n const finalColumnOrder = determineColumnOrder(columnOrder, allColumnIds || [], columnsWithState)\n\n // Create ColumnItemModel for each column in the determined order\n const columns: ColumnItemModel[] = finalColumnOrder.map((columnName) =>\n createColumnItem(columnName, columnVisibility, columnPinning, columnSizing),\n )\n\n // Build the result object\n const result: OverviewSettings = {\n columns,\n }\n\n // Add grouping information if present\n if (groupBy) {\n result.groupBy = groupBy.id\n } else {\n result.groupBy = undefined\n }\n\n if (groupByConfig?.showEmpty !== undefined) {\n result.showEmptyGroups = groupByConfig.showEmpty\n }\n\n // Add sorting information if present\n if (sorting) {\n if (sorting.length > 0) {\n // find the column that is being sorted\n const firstSort = sorting[0]\n result.sortBy = firstSort.id\n result.sortDesc = firstSort.desc\n } else {\n // remove sorting\n result.sortBy = undefined\n result.sortDesc = undefined\n }\n }\n\n // Add row height if present\n if (rowHeight !== undefined) {\n result.rowHeight = rowHeight\n }\n\n return result\n}\n"],"names":["convertColumnConfigToTanstackStates","settings","columns","groupByField","showEmptyGroups","sortBy","sortDesc","rowHeight","columnVisibility","columnPinning","columnOrder","columnSizing","column","name","visible","pinned","width","determineColumnOrder","allColumnIds","columnsWithState","orderedColumns","remainingColumns","columnId","collectColumnsWithState","col","createColumnItem","columnName","isPinnedLeft","isPinnedRight","convertTanstackStatesToColumnConfig","states","sorting","groupBy","groupByConfig","result","firstSort"],"mappings":"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"}
1
+ {"version":3,"file":"columnConfigConverter.cjs.js","sources":["../../../../src/util/columnConfigConverter.ts"],"sourcesContent":["import {\n VisibilityState,\n ColumnPinningState,\n ColumnOrderState,\n ColumnSizingState,\n SortingState,\n} from '@tanstack/react-table'\nimport { ColumnItemModel, OverviewSettings } from '@shared/api/generated/views'\nimport { ColumnsConfig, TableGroupBy } from '@shared/containers'\nimport { GroupByConfig } from '@shared/containers/ProjectTreeTable/components/GroupSettingsFallback'\n\n/**\n * Converts ColumnItemModel array from OverviewSettings to TanStack table states\n */\nexport function convertColumnConfigToTanstackStates(settings: OverviewSettings): ColumnsConfig {\n const {\n columns = [],\n groupBy: groupByField,\n showEmptyGroups,\n sortBy,\n sortDesc,\n rowHeight,\n } = settings || {}\n\n // Initialize state objects\n const columnVisibility: VisibilityState = {}\n const columnPinning: ColumnPinningState = { left: [], right: [] }\n const columnOrder: ColumnOrderState = []\n const columnSizing: ColumnSizingState = {}\n\n // Process each column from the settings\n columns.forEach((column) => {\n const { name, visible, pinned, width } = column\n\n // Column visibility: if visible is undefined, default to true\n columnVisibility[name] = visible !== false\n\n // Column order: maintain the order from the settings\n columnOrder.push(name)\n\n // Column pinning: assuming pinned: true means left pinning\n if (pinned) {\n columnPinning.left?.push(name)\n }\n\n // Column sizing: set width if provided\n if (width !== undefined) {\n columnSizing[name] = width\n }\n })\n\n // Handle sorting\n const sorting: SortingState = sortBy ? [{ id: sortBy, desc: sortDesc || false }] : []\n\n // Handle grouping\n let groupBy: TableGroupBy | undefined\n if (typeof groupByField === 'string' && groupByField.length > 0) {\n groupBy = { id: groupByField, desc: false }\n } else if (Array.isArray(groupByField)) {\n const first = groupByField.find((v) => typeof v === 'string' && v.length > 0)\n if (first) {\n groupBy = { id: first, desc: false }\n } else {\n groupBy = undefined\n }\n } else {\n groupBy = undefined\n }\n\n const groupByConfig: GroupByConfig = {\n showEmpty: showEmptyGroups || false,\n entityType: '',\n }\n\n return {\n columnVisibility,\n columnPinning,\n columnOrder,\n columnSizing,\n sorting,\n groupBy,\n groupByConfig,\n rowHeight: rowHeight ?? 34,\n }\n}\n\n/**\n * Determines the final column order based on columnOrder and allColumnIds\n * - Columns in columnOrder come first (in their specified order)\n * - Remaining columns follow the order from allColumnIds\n */\nfunction determineColumnOrder(\n columnOrder: ColumnOrderState,\n allColumnIds: string[],\n columnsWithState: Set<string>,\n): string[] {\n // Start with columns from columnOrder (these have explicit positioning)\n const orderedColumns = [...columnOrder]\n\n // Add remaining columns from allColumnIds that aren't already in columnOrder\n const remainingColumns = allColumnIds.filter(\n (columnId) => !columnOrder.includes(columnId) && columnsWithState.has(columnId),\n )\n\n return [...orderedColumns, ...remainingColumns]\n}\n\n/**\n * Collects all columns that have any state (visibility, sizing, pinning, etc.)\n */\nfunction collectColumnsWithState(\n columnVisibility: VisibilityState,\n columnSizing: ColumnSizingState,\n columnPinning: ColumnPinningState,\n allColumnIds: string[],\n): Set<string> {\n const columnsWithState = new Set<string>()\n\n // Add columns with visibility state\n Object.keys(columnVisibility).forEach((col) => columnsWithState.add(col))\n\n // Add columns with sizing state\n Object.keys(columnSizing).forEach((col) => columnsWithState.add(col))\n\n // Add pinned columns\n columnPinning.left?.forEach((col) => columnsWithState.add(col))\n columnPinning.right?.forEach((col) => columnsWithState.add(col))\n\n // Add any additional columns from allColumnIds\n allColumnIds?.forEach((col) => columnsWithState.add(col))\n\n return columnsWithState\n}\n\n/**\n * Creates a ColumnItemModel for a given column name with all applicable state\n */\nfunction createColumnItem(\n columnName: string,\n columnVisibility: VisibilityState,\n columnPinning: ColumnPinningState,\n columnSizing: ColumnSizingState,\n): ColumnItemModel {\n const column: ColumnItemModel = {\n name: columnName,\n }\n\n // Set visibility if defined in state\n if (columnVisibility.hasOwnProperty(columnName)) {\n column.visible = columnVisibility[columnName]\n }\n\n // Set pinning if column is pinned\n const isPinnedLeft = columnPinning.left?.includes(columnName)\n const isPinnedRight = columnPinning.right?.includes(columnName)\n\n if (isPinnedLeft || isPinnedRight) {\n column.pinned = true\n }\n\n // Set width if defined in state\n if (columnSizing[columnName] !== undefined) {\n column.width = columnSizing[columnName]\n }\n\n return column\n}\n\n/**\n * Converts TanStack table states back to OverviewSettings format\n *\n * Column ordering logic:\n * 1. Columns in columnOrder appear first (in their specified order)\n * 2. Remaining columns follow the order from allColumnIds\n * 3. Only columns with state (visibility, sizing, pinning) or in allColumnIds are included\n */\nexport function convertTanstackStatesToColumnConfig(\n states: ColumnsConfig,\n allColumnIds?: string[],\n): OverviewSettings {\n const {\n columnVisibility,\n columnPinning,\n columnOrder,\n columnSizing,\n sorting,\n groupBy,\n groupByConfig,\n rowHeight,\n } = states\n\n // Collect all columns that have any state\n const columnsWithState = collectColumnsWithState(\n columnVisibility,\n columnSizing,\n columnPinning,\n allColumnIds || [],\n )\n\n // Determine the final column order\n const finalColumnOrder = determineColumnOrder(columnOrder, allColumnIds || [], columnsWithState)\n\n // Create ColumnItemModel for each column in the determined order\n const columns: ColumnItemModel[] = finalColumnOrder.map((columnName) =>\n createColumnItem(columnName, columnVisibility, columnPinning, columnSizing),\n )\n\n // Build the result object\n const result: OverviewSettings = {\n columns,\n }\n\n // Add grouping information if present\n if (groupBy) {\n const id = Array.isArray(groupBy.id) ? groupBy.id[0] : groupBy.id\n result.groupBy = id || undefined\n } else {\n result.groupBy = undefined\n }\n\n if (groupByConfig?.showEmpty !== undefined) {\n result.showEmptyGroups = groupByConfig.showEmpty\n }\n\n // Add sorting information if present\n if (sorting) {\n if (sorting.length > 0) {\n // find the column that is being sorted\n const firstSort = sorting[0]\n result.sortBy = firstSort.id\n result.sortDesc = firstSort.desc\n } else {\n // remove sorting\n result.sortBy = undefined\n result.sortDesc = undefined\n }\n }\n\n // Add row height if present\n if (rowHeight !== undefined) {\n result.rowHeight = rowHeight\n }\n\n return result\n}\n"],"names":["convertColumnConfigToTanstackStates","settings","columns","groupByField","showEmptyGroups","sortBy","sortDesc","rowHeight","columnVisibility","columnPinning","columnOrder","columnSizing","column","name","visible","pinned","width","sorting","groupBy","first","v","determineColumnOrder","allColumnIds","columnsWithState","orderedColumns","remainingColumns","columnId","collectColumnsWithState","col","createColumnItem","columnName","isPinnedLeft","isPinnedRight","convertTanstackStatesToColumnConfig","states","groupByConfig","result","id","firstSort"],"mappings":"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"}
@@ -1,66 +1,89 @@
1
- function E(n) {
2
- const { columns: i = [], groupBy: s, showEmptyGroups: e, sortBy: t, sortDesc: o, rowHeight: c } = n || {}, f = {}, u = { left: [], right: [] }, l = [], g = {};
3
- return i.forEach((d) => {
4
- const { name: h, visible: m, pinned: w, width: a } = d;
5
- f[h] = m !== !1, l.push(h), w && u.left?.push(h), a !== void 0 && (g[h] = a);
6
- }), {
1
+ function E(i) {
2
+ const {
3
+ columns: s = [],
4
+ groupBy: n,
5
+ showEmptyGroups: e,
6
+ sortBy: o,
7
+ sortDesc: t,
8
+ rowHeight: d
9
+ } = i || {}, f = {}, a = { left: [], right: [] }, g = [], h = {};
10
+ s.forEach((r) => {
11
+ const { name: l, visible: m, pinned: v, width: p } = r;
12
+ f[l] = m !== !1, g.push(l), v && a.left?.push(l), p !== void 0 && (h[l] = p);
13
+ });
14
+ const y = o ? [{ id: o, desc: t || !1 }] : [];
15
+ let u;
16
+ if (typeof n == "string" && n.length > 0)
17
+ u = { id: n, desc: !1 };
18
+ else if (Array.isArray(n)) {
19
+ const r = n.find((l) => typeof l == "string" && l.length > 0);
20
+ r ? u = { id: r, desc: !1 } : u = void 0;
21
+ } else
22
+ u = void 0;
23
+ return {
7
24
  columnVisibility: f,
8
- columnPinning: u,
9
- columnOrder: l,
10
- columnSizing: g,
11
- sorting: t ? [{ id: t, desc: o || !1 }] : [],
12
- groupBy: s ? { id: s, desc: !1 } : void 0,
25
+ columnPinning: a,
26
+ columnOrder: g,
27
+ columnSizing: h,
28
+ sorting: y,
29
+ groupBy: u,
13
30
  groupByConfig: {
14
- showEmpty: e || !1
31
+ showEmpty: e || !1,
32
+ entityType: ""
15
33
  },
16
- rowHeight: c ?? 34
34
+ rowHeight: d ?? 34
17
35
  };
18
36
  }
19
- function B(n, i, s) {
20
- const e = [...n], t = i.filter(
21
- (o) => !n.includes(o) && s.has(o)
37
+ function w(i, s, n) {
38
+ const e = [...i], o = s.filter(
39
+ (t) => !i.includes(t) && n.has(t)
22
40
  );
23
- return [...e, ...t];
41
+ return [...e, ...o];
24
42
  }
25
- function C(n, i, s, e) {
26
- const t = /* @__PURE__ */ new Set();
27
- return Object.keys(n).forEach((o) => t.add(o)), Object.keys(i).forEach((o) => t.add(o)), s.left?.forEach((o) => t.add(o)), s.right?.forEach((o) => t.add(o)), e?.forEach((o) => t.add(o)), t;
43
+ function C(i, s, n, e) {
44
+ const o = /* @__PURE__ */ new Set();
45
+ return Object.keys(i).forEach((t) => o.add(t)), Object.keys(s).forEach((t) => o.add(t)), n.left?.forEach((t) => o.add(t)), n.right?.forEach((t) => o.add(t)), e?.forEach((t) => o.add(t)), o;
28
46
  }
29
- function v(n, i, s, e) {
30
- const t = {
31
- name: n
47
+ function B(i, s, n, e) {
48
+ const o = {
49
+ name: i
32
50
  };
33
- i.hasOwnProperty(n) && (t.visible = i[n]);
34
- const o = s.left?.includes(n), c = s.right?.includes(n);
35
- return (o || c) && (t.pinned = !0), e[n] !== void 0 && (t.width = e[n]), t;
51
+ s.hasOwnProperty(i) && (o.visible = s[i]);
52
+ const t = n.left?.includes(i), d = n.right?.includes(i);
53
+ return (t || d) && (o.pinned = !0), e[i] !== void 0 && (o.width = e[i]), o;
36
54
  }
37
- function S(n, i) {
55
+ function S(i, s) {
38
56
  const {
39
- columnVisibility: s,
57
+ columnVisibility: n,
40
58
  columnPinning: e,
41
- columnOrder: t,
42
- columnSizing: o,
43
- sorting: c,
59
+ columnOrder: o,
60
+ columnSizing: t,
61
+ sorting: d,
44
62
  groupBy: f,
45
- groupByConfig: u,
46
- rowHeight: l
47
- } = n, g = C(
48
- s,
49
- o,
63
+ groupByConfig: a,
64
+ rowHeight: g
65
+ } = i, h = C(
66
+ n,
67
+ t,
50
68
  e,
51
- i || []
52
- ), r = {
53
- columns: B(t, i || [], g).map(
54
- (d) => v(d, s, e, o)
69
+ s || []
70
+ ), c = {
71
+ columns: w(o, s || [], h).map(
72
+ (r) => B(r, n, e, t)
55
73
  )
56
74
  };
57
- if (f ? r.groupBy = f.id : r.groupBy = void 0, u?.showEmpty !== void 0 && (r.showEmptyGroups = u.showEmpty), c)
58
- if (c.length > 0) {
59
- const d = c[0];
60
- r.sortBy = d.id, r.sortDesc = d.desc;
75
+ if (f) {
76
+ const r = Array.isArray(f.id) ? f.id[0] : f.id;
77
+ c.groupBy = r || void 0;
78
+ } else
79
+ c.groupBy = void 0;
80
+ if (a?.showEmpty !== void 0 && (c.showEmptyGroups = a.showEmpty), d)
81
+ if (d.length > 0) {
82
+ const r = d[0];
83
+ c.sortBy = r.id, c.sortDesc = r.desc;
61
84
  } else
62
- r.sortBy = void 0, r.sortDesc = void 0;
63
- return l !== void 0 && (r.rowHeight = l), r;
85
+ c.sortBy = void 0, c.sortDesc = void 0;
86
+ return g !== void 0 && (c.rowHeight = g), c;
64
87
  }
65
88
  export {
66
89
  E as convertColumnConfigToTanstackStates,
@@ -1 +1 @@
1
- {"version":3,"file":"columnConfigConverter.es.js","sources":["../../../../src/util/columnConfigConverter.ts"],"sourcesContent":["import {\n VisibilityState,\n ColumnPinningState,\n ColumnOrderState,\n ColumnSizingState,\n SortingState,\n} from '@tanstack/react-table'\nimport { ColumnItemModel, OverviewSettings } from '@shared/api/generated/views'\nimport { ColumnsConfig, TableGroupBy } from '@shared/containers'\nimport { GroupByConfig } from '@shared/containers/ProjectTreeTable/components/GroupSettingsFallback'\n\n/**\n * Converts ColumnItemModel array from OverviewSettings to TanStack table states\n */\nexport function convertColumnConfigToTanstackStates(settings: OverviewSettings): ColumnsConfig {\n const { columns = [], groupBy: groupByField, showEmptyGroups, sortBy, sortDesc, rowHeight } = settings || {}\n\n // Initialize state objects\n const columnVisibility: VisibilityState = {}\n const columnPinning: ColumnPinningState = { left: [], right: [] }\n const columnOrder: ColumnOrderState = []\n const columnSizing: ColumnSizingState = {}\n\n // Process each column from the settings\n columns.forEach((column) => {\n const { name, visible, pinned, width } = column\n\n // Column visibility: if visible is undefined, default to true\n columnVisibility[name] = visible !== false\n\n // Column order: maintain the order from the settings\n columnOrder.push(name)\n\n // Column pinning: assuming pinned: true means left pinning\n if (pinned) {\n columnPinning.left?.push(name)\n }\n\n // Column sizing: set width if provided\n if (width !== undefined) {\n columnSizing[name] = width\n }\n })\n\n // Handle sorting\n const sorting: SortingState = sortBy ? [{ id: sortBy, desc: sortDesc || false }] : []\n\n // Handle grouping\n const groupBy: TableGroupBy | undefined = groupByField\n ? { id: groupByField, desc: false }\n : undefined\n\n const groupByConfig: GroupByConfig = {\n showEmpty: showEmptyGroups || false,\n }\n\n return {\n columnVisibility,\n columnPinning,\n columnOrder,\n columnSizing,\n sorting,\n groupBy,\n groupByConfig,\n rowHeight: rowHeight ?? 34,\n }\n}\n\n/**\n * Determines the final column order based on columnOrder and allColumnIds\n * - Columns in columnOrder come first (in their specified order)\n * - Remaining columns follow the order from allColumnIds\n */\nfunction determineColumnOrder(\n columnOrder: ColumnOrderState,\n allColumnIds: string[],\n columnsWithState: Set<string>,\n): string[] {\n // Start with columns from columnOrder (these have explicit positioning)\n const orderedColumns = [...columnOrder]\n\n // Add remaining columns from allColumnIds that aren't already in columnOrder\n const remainingColumns = allColumnIds.filter(\n (columnId) => !columnOrder.includes(columnId) && columnsWithState.has(columnId),\n )\n\n return [...orderedColumns, ...remainingColumns]\n}\n\n/**\n * Collects all columns that have any state (visibility, sizing, pinning, etc.)\n */\nfunction collectColumnsWithState(\n columnVisibility: VisibilityState,\n columnSizing: ColumnSizingState,\n columnPinning: ColumnPinningState,\n allColumnIds: string[],\n): Set<string> {\n const columnsWithState = new Set<string>()\n\n // Add columns with visibility state\n Object.keys(columnVisibility).forEach((col) => columnsWithState.add(col))\n\n // Add columns with sizing state\n Object.keys(columnSizing).forEach((col) => columnsWithState.add(col))\n\n // Add pinned columns\n columnPinning.left?.forEach((col) => columnsWithState.add(col))\n columnPinning.right?.forEach((col) => columnsWithState.add(col))\n\n // Add any additional columns from allColumnIds\n allColumnIds?.forEach((col) => columnsWithState.add(col))\n\n return columnsWithState\n}\n\n/**\n * Creates a ColumnItemModel for a given column name with all applicable state\n */\nfunction createColumnItem(\n columnName: string,\n columnVisibility: VisibilityState,\n columnPinning: ColumnPinningState,\n columnSizing: ColumnSizingState,\n): ColumnItemModel {\n const column: ColumnItemModel = {\n name: columnName,\n }\n\n // Set visibility if defined in state\n if (columnVisibility.hasOwnProperty(columnName)) {\n column.visible = columnVisibility[columnName]\n }\n\n // Set pinning if column is pinned\n const isPinnedLeft = columnPinning.left?.includes(columnName)\n const isPinnedRight = columnPinning.right?.includes(columnName)\n\n if (isPinnedLeft || isPinnedRight) {\n column.pinned = true\n }\n\n // Set width if defined in state\n if (columnSizing[columnName] !== undefined) {\n column.width = columnSizing[columnName]\n }\n\n return column\n}\n\n/**\n * Converts TanStack table states back to OverviewSettings format\n *\n * Column ordering logic:\n * 1. Columns in columnOrder appear first (in their specified order)\n * 2. Remaining columns follow the order from allColumnIds\n * 3. Only columns with state (visibility, sizing, pinning) or in allColumnIds are included\n */\nexport function convertTanstackStatesToColumnConfig(\n states: ColumnsConfig,\n allColumnIds?: string[],\n): OverviewSettings {\n const {\n columnVisibility,\n columnPinning,\n columnOrder,\n columnSizing,\n sorting,\n groupBy,\n groupByConfig,\n rowHeight,\n } = states\n\n // Collect all columns that have any state\n const columnsWithState = collectColumnsWithState(\n columnVisibility,\n columnSizing,\n columnPinning,\n allColumnIds || [],\n )\n\n // Determine the final column order\n const finalColumnOrder = determineColumnOrder(columnOrder, allColumnIds || [], columnsWithState)\n\n // Create ColumnItemModel for each column in the determined order\n const columns: ColumnItemModel[] = finalColumnOrder.map((columnName) =>\n createColumnItem(columnName, columnVisibility, columnPinning, columnSizing),\n )\n\n // Build the result object\n const result: OverviewSettings = {\n columns,\n }\n\n // Add grouping information if present\n if (groupBy) {\n result.groupBy = groupBy.id\n } else {\n result.groupBy = undefined\n }\n\n if (groupByConfig?.showEmpty !== undefined) {\n result.showEmptyGroups = groupByConfig.showEmpty\n }\n\n // Add sorting information if present\n if (sorting) {\n if (sorting.length > 0) {\n // find the column that is being sorted\n const firstSort = sorting[0]\n result.sortBy = firstSort.id\n result.sortDesc = firstSort.desc\n } else {\n // remove sorting\n result.sortBy = undefined\n result.sortDesc = undefined\n }\n }\n\n // Add row height if present\n if (rowHeight !== undefined) {\n result.rowHeight = rowHeight\n }\n\n return result\n}\n"],"names":["convertColumnConfigToTanstackStates","settings","columns","groupByField","showEmptyGroups","sortBy","sortDesc","rowHeight","columnVisibility","columnPinning","columnOrder","columnSizing","column","name","visible","pinned","width","determineColumnOrder","allColumnIds","columnsWithState","orderedColumns","remainingColumns","columnId","collectColumnsWithState","col","createColumnItem","columnName","isPinnedLeft","isPinnedRight","convertTanstackStatesToColumnConfig","states","sorting","groupBy","groupByConfig","result","firstSort"],"mappings":"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"}
1
+ {"version":3,"file":"columnConfigConverter.es.js","sources":["../../../../src/util/columnConfigConverter.ts"],"sourcesContent":["import {\n VisibilityState,\n ColumnPinningState,\n ColumnOrderState,\n ColumnSizingState,\n SortingState,\n} from '@tanstack/react-table'\nimport { ColumnItemModel, OverviewSettings } from '@shared/api/generated/views'\nimport { ColumnsConfig, TableGroupBy } from '@shared/containers'\nimport { GroupByConfig } from '@shared/containers/ProjectTreeTable/components/GroupSettingsFallback'\n\n/**\n * Converts ColumnItemModel array from OverviewSettings to TanStack table states\n */\nexport function convertColumnConfigToTanstackStates(settings: OverviewSettings): ColumnsConfig {\n const {\n columns = [],\n groupBy: groupByField,\n showEmptyGroups,\n sortBy,\n sortDesc,\n rowHeight,\n } = settings || {}\n\n // Initialize state objects\n const columnVisibility: VisibilityState = {}\n const columnPinning: ColumnPinningState = { left: [], right: [] }\n const columnOrder: ColumnOrderState = []\n const columnSizing: ColumnSizingState = {}\n\n // Process each column from the settings\n columns.forEach((column) => {\n const { name, visible, pinned, width } = column\n\n // Column visibility: if visible is undefined, default to true\n columnVisibility[name] = visible !== false\n\n // Column order: maintain the order from the settings\n columnOrder.push(name)\n\n // Column pinning: assuming pinned: true means left pinning\n if (pinned) {\n columnPinning.left?.push(name)\n }\n\n // Column sizing: set width if provided\n if (width !== undefined) {\n columnSizing[name] = width\n }\n })\n\n // Handle sorting\n const sorting: SortingState = sortBy ? [{ id: sortBy, desc: sortDesc || false }] : []\n\n // Handle grouping\n let groupBy: TableGroupBy | undefined\n if (typeof groupByField === 'string' && groupByField.length > 0) {\n groupBy = { id: groupByField, desc: false }\n } else if (Array.isArray(groupByField)) {\n const first = groupByField.find((v) => typeof v === 'string' && v.length > 0)\n if (first) {\n groupBy = { id: first, desc: false }\n } else {\n groupBy = undefined\n }\n } else {\n groupBy = undefined\n }\n\n const groupByConfig: GroupByConfig = {\n showEmpty: showEmptyGroups || false,\n entityType: '',\n }\n\n return {\n columnVisibility,\n columnPinning,\n columnOrder,\n columnSizing,\n sorting,\n groupBy,\n groupByConfig,\n rowHeight: rowHeight ?? 34,\n }\n}\n\n/**\n * Determines the final column order based on columnOrder and allColumnIds\n * - Columns in columnOrder come first (in their specified order)\n * - Remaining columns follow the order from allColumnIds\n */\nfunction determineColumnOrder(\n columnOrder: ColumnOrderState,\n allColumnIds: string[],\n columnsWithState: Set<string>,\n): string[] {\n // Start with columns from columnOrder (these have explicit positioning)\n const orderedColumns = [...columnOrder]\n\n // Add remaining columns from allColumnIds that aren't already in columnOrder\n const remainingColumns = allColumnIds.filter(\n (columnId) => !columnOrder.includes(columnId) && columnsWithState.has(columnId),\n )\n\n return [...orderedColumns, ...remainingColumns]\n}\n\n/**\n * Collects all columns that have any state (visibility, sizing, pinning, etc.)\n */\nfunction collectColumnsWithState(\n columnVisibility: VisibilityState,\n columnSizing: ColumnSizingState,\n columnPinning: ColumnPinningState,\n allColumnIds: string[],\n): Set<string> {\n const columnsWithState = new Set<string>()\n\n // Add columns with visibility state\n Object.keys(columnVisibility).forEach((col) => columnsWithState.add(col))\n\n // Add columns with sizing state\n Object.keys(columnSizing).forEach((col) => columnsWithState.add(col))\n\n // Add pinned columns\n columnPinning.left?.forEach((col) => columnsWithState.add(col))\n columnPinning.right?.forEach((col) => columnsWithState.add(col))\n\n // Add any additional columns from allColumnIds\n allColumnIds?.forEach((col) => columnsWithState.add(col))\n\n return columnsWithState\n}\n\n/**\n * Creates a ColumnItemModel for a given column name with all applicable state\n */\nfunction createColumnItem(\n columnName: string,\n columnVisibility: VisibilityState,\n columnPinning: ColumnPinningState,\n columnSizing: ColumnSizingState,\n): ColumnItemModel {\n const column: ColumnItemModel = {\n name: columnName,\n }\n\n // Set visibility if defined in state\n if (columnVisibility.hasOwnProperty(columnName)) {\n column.visible = columnVisibility[columnName]\n }\n\n // Set pinning if column is pinned\n const isPinnedLeft = columnPinning.left?.includes(columnName)\n const isPinnedRight = columnPinning.right?.includes(columnName)\n\n if (isPinnedLeft || isPinnedRight) {\n column.pinned = true\n }\n\n // Set width if defined in state\n if (columnSizing[columnName] !== undefined) {\n column.width = columnSizing[columnName]\n }\n\n return column\n}\n\n/**\n * Converts TanStack table states back to OverviewSettings format\n *\n * Column ordering logic:\n * 1. Columns in columnOrder appear first (in their specified order)\n * 2. Remaining columns follow the order from allColumnIds\n * 3. Only columns with state (visibility, sizing, pinning) or in allColumnIds are included\n */\nexport function convertTanstackStatesToColumnConfig(\n states: ColumnsConfig,\n allColumnIds?: string[],\n): OverviewSettings {\n const {\n columnVisibility,\n columnPinning,\n columnOrder,\n columnSizing,\n sorting,\n groupBy,\n groupByConfig,\n rowHeight,\n } = states\n\n // Collect all columns that have any state\n const columnsWithState = collectColumnsWithState(\n columnVisibility,\n columnSizing,\n columnPinning,\n allColumnIds || [],\n )\n\n // Determine the final column order\n const finalColumnOrder = determineColumnOrder(columnOrder, allColumnIds || [], columnsWithState)\n\n // Create ColumnItemModel for each column in the determined order\n const columns: ColumnItemModel[] = finalColumnOrder.map((columnName) =>\n createColumnItem(columnName, columnVisibility, columnPinning, columnSizing),\n )\n\n // Build the result object\n const result: OverviewSettings = {\n columns,\n }\n\n // Add grouping information if present\n if (groupBy) {\n const id = Array.isArray(groupBy.id) ? groupBy.id[0] : groupBy.id\n result.groupBy = id || undefined\n } else {\n result.groupBy = undefined\n }\n\n if (groupByConfig?.showEmpty !== undefined) {\n result.showEmptyGroups = groupByConfig.showEmpty\n }\n\n // Add sorting information if present\n if (sorting) {\n if (sorting.length > 0) {\n // find the column that is being sorted\n const firstSort = sorting[0]\n result.sortBy = firstSort.id\n result.sortDesc = firstSort.desc\n } else {\n // remove sorting\n result.sortBy = undefined\n result.sortDesc = undefined\n }\n }\n\n // Add row height if present\n if (rowHeight !== undefined) {\n result.rowHeight = rowHeight\n }\n\n return result\n}\n"],"names":["convertColumnConfigToTanstackStates","settings","columns","groupByField","showEmptyGroups","sortBy","sortDesc","rowHeight","columnVisibility","columnPinning","columnOrder","columnSizing","column","name","visible","pinned","width","sorting","groupBy","first","v","determineColumnOrder","allColumnIds","columnsWithState","orderedColumns","remainingColumns","columnId","collectColumnsWithState","col","createColumnItem","columnName","isPinnedLeft","isPinnedRight","convertTanstackStatesToColumnConfig","states","groupByConfig","result","id","firstSort"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const a=(e,r)=>{if(!e?.id)return"string";const t=e.id;if(t==="assignees"||t==="tags")return"list_of_strings";if(t.startsWith("attrib.")){const i=t.split(".")[1];return r.find(s=>s.name===i)?.data?.type||"string"}return"string"};exports.getGroupByDataType=a;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const n=(e,i)=>{if(!e?.id||typeof e.id!="string")return"string";const t=e.id;if(t==="assignees"||t==="tags")return"list_of_strings";if(t.startsWith("attrib.")){const r=t.split(".")[1];return i.find(s=>s.name===r)?.data?.type||"string"}return"string"};exports.getGroupByDataType=n;
2
2
  //# sourceMappingURL=getGroupByDataType.cjs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"getGroupByDataType.cjs.js","sources":["../../../../src/util/getGroupByDataType.ts"],"sourcesContent":["import { ProjectTableAttribute } from '@shared/containers'\nimport type { TableGroupBy } from '../containers/ProjectTreeTable/context'\nimport { AttributeModel } from '@shared/api'\n\ntype DataType = 'string' | 'list_of_strings' | string\n\n/**\n * Determines the data type for a groupBy field.\n * Handles special cases for built-in group types (assignees, tags) and attribute-based grouping.\n *\n * @param groupBy - The group by configuration\n * @param attribFields - Array of available attribute fields\n * @returns The data type as a string ('string', 'list_of_strings', or the attribute type)\n *\n * @example\n * const dataType = getGroupByDataType(groupBy, attribFields)\n * // Returns 'list_of_strings' for assignees/tags\n * // Returns the attribute type for 'attrib.attributeName'\n * // Returns 'string' as default fallback\n */\nexport const getGroupByDataType = (\n groupBy: TableGroupBy | undefined,\n attribFields: (ProjectTableAttribute | AttributeModel)[],\n): DataType => {\n if (!groupBy?.id) return 'string'\n\n const groupById = groupBy.id\n\n // Handle special cases for built-in group types\n if (groupById === 'assignees' || groupById === 'tags') {\n return 'list_of_strings'\n }\n\n // Handle attribute-based grouping (format: \"attrib.attributeName\")\n if (groupById.startsWith('attrib.')) {\n const attributeName = groupById.split('.')[1]\n const attribute = attribFields.find((field) => field.name === attributeName)\n return attribute?.data?.type || 'string'\n }\n\n // Default fallback\n return 'string'\n}\n"],"names":["getGroupByDataType","groupBy","attribFields","groupById","attributeName","field"],"mappings":"gFAoBO,MAAMA,EAAqB,CAChCC,EACAC,IACa,CACb,GAAI,CAACD,GAAS,GAAI,MAAO,SAEzB,MAAME,EAAYF,EAAQ,GAG1B,GAAIE,IAAc,aAAeA,IAAc,OAC7C,MAAO,kBAIT,GAAIA,EAAU,WAAW,SAAS,EAAG,CACnC,MAAMC,EAAgBD,EAAU,MAAM,GAAG,EAAE,CAAC,EAE5C,OADkBD,EAAa,KAAMG,GAAUA,EAAM,OAASD,CAAa,GACzD,MAAM,MAAQ,QAClC,CAGA,MAAO,QACT"}
1
+ {"version":3,"file":"getGroupByDataType.cjs.js","sources":["../../../../src/util/getGroupByDataType.ts"],"sourcesContent":["import { ProjectTableAttribute } from '@shared/containers'\nimport type { TableGroupBy } from '../containers/ProjectTreeTable/context'\nimport { AttributeModel } from '@shared/api'\n\ntype DataType = 'string' | 'list_of_strings' | string\n\n/**\n * Determines the data type for a groupBy field.\n * Handles special cases for built-in group types (assignees, tags) and attribute-based grouping.\n *\n * @param groupBy - The group by configuration\n * @param attribFields - Array of available attribute fields\n * @returns The data type as a string ('string', 'list_of_strings', or the attribute type)\n *\n * @example\n * const dataType = getGroupByDataType(groupBy, attribFields)\n * // Returns 'list_of_strings' for assignees/tags\n * // Returns the attribute type for 'attrib.attributeName'\n * // Returns 'string' as default fallback\n */\nexport const getGroupByDataType = (\n groupBy: TableGroupBy | undefined,\n attribFields: (ProjectTableAttribute | AttributeModel)[],\n): DataType => {\n if (!groupBy?.id || typeof groupBy.id !== 'string') return 'string'\n\n const groupById = groupBy.id\n\n // Handle special cases for built-in group types\n if (groupById === 'assignees' || groupById === 'tags') {\n return 'list_of_strings'\n }\n\n // Handle attribute-based grouping (format: \"attrib.attributeName\")\n if (groupById.startsWith('attrib.')) {\n const attributeName = groupById.split('.')[1]\n const attribute = attribFields.find((field) => field.name === attributeName)\n return attribute?.data?.type || 'string'\n }\n\n // Default fallback\n return 'string'\n}\n"],"names":["getGroupByDataType","groupBy","attribFields","groupById","attributeName","field"],"mappings":"gFAoBO,MAAMA,EAAqB,CAChCC,EACAC,IACa,CACb,GAAI,CAACD,GAAS,IAAM,OAAOA,EAAQ,IAAO,SAAU,MAAO,SAE3D,MAAME,EAAYF,EAAQ,GAG1B,GAAIE,IAAc,aAAeA,IAAc,OAC7C,MAAO,kBAIT,GAAIA,EAAU,WAAW,SAAS,EAAG,CACnC,MAAMC,EAAgBD,EAAU,MAAM,GAAG,EAAE,CAAC,EAE5C,OADkBD,EAAa,KAAMG,GAAUA,EAAM,OAASD,CAAa,GACzD,MAAM,MAAQ,QAClC,CAGA,MAAO,QACT"}
@@ -1,11 +1,11 @@
1
- const a = (r, i) => {
2
- if (!r?.id) return "string";
3
- const t = r.id;
1
+ const a = (i, r) => {
2
+ if (!i?.id || typeof i.id != "string") return "string";
3
+ const t = i.id;
4
4
  if (t === "assignees" || t === "tags")
5
5
  return "list_of_strings";
6
6
  if (t.startsWith("attrib.")) {
7
7
  const s = t.split(".")[1];
8
- return i.find((e) => e.name === s)?.data?.type || "string";
8
+ return r.find((e) => e.name === s)?.data?.type || "string";
9
9
  }
10
10
  return "string";
11
11
  };
@@ -1 +1 @@
1
- {"version":3,"file":"getGroupByDataType.es.js","sources":["../../../../src/util/getGroupByDataType.ts"],"sourcesContent":["import { ProjectTableAttribute } from '@shared/containers'\nimport type { TableGroupBy } from '../containers/ProjectTreeTable/context'\nimport { AttributeModel } from '@shared/api'\n\ntype DataType = 'string' | 'list_of_strings' | string\n\n/**\n * Determines the data type for a groupBy field.\n * Handles special cases for built-in group types (assignees, tags) and attribute-based grouping.\n *\n * @param groupBy - The group by configuration\n * @param attribFields - Array of available attribute fields\n * @returns The data type as a string ('string', 'list_of_strings', or the attribute type)\n *\n * @example\n * const dataType = getGroupByDataType(groupBy, attribFields)\n * // Returns 'list_of_strings' for assignees/tags\n * // Returns the attribute type for 'attrib.attributeName'\n * // Returns 'string' as default fallback\n */\nexport const getGroupByDataType = (\n groupBy: TableGroupBy | undefined,\n attribFields: (ProjectTableAttribute | AttributeModel)[],\n): DataType => {\n if (!groupBy?.id) return 'string'\n\n const groupById = groupBy.id\n\n // Handle special cases for built-in group types\n if (groupById === 'assignees' || groupById === 'tags') {\n return 'list_of_strings'\n }\n\n // Handle attribute-based grouping (format: \"attrib.attributeName\")\n if (groupById.startsWith('attrib.')) {\n const attributeName = groupById.split('.')[1]\n const attribute = attribFields.find((field) => field.name === attributeName)\n return attribute?.data?.type || 'string'\n }\n\n // Default fallback\n return 'string'\n}\n"],"names":["getGroupByDataType","groupBy","attribFields","groupById","attributeName","field"],"mappings":"AAoBO,MAAMA,IAAqB,CAChCC,GACAC,MACa;AACb,MAAI,CAACD,GAAS,GAAI,QAAO;AAEzB,QAAME,IAAYF,EAAQ;AAG1B,MAAIE,MAAc,eAAeA,MAAc;AAC7C,WAAO;AAIT,MAAIA,EAAU,WAAW,SAAS,GAAG;AACnC,UAAMC,IAAgBD,EAAU,MAAM,GAAG,EAAE,CAAC;AAE5C,WADkBD,EAAa,KAAK,CAACG,MAAUA,EAAM,SAASD,CAAa,GACzD,MAAM,QAAQ;AAAA,EAClC;AAGA,SAAO;AACT;"}
1
+ {"version":3,"file":"getGroupByDataType.es.js","sources":["../../../../src/util/getGroupByDataType.ts"],"sourcesContent":["import { ProjectTableAttribute } from '@shared/containers'\nimport type { TableGroupBy } from '../containers/ProjectTreeTable/context'\nimport { AttributeModel } from '@shared/api'\n\ntype DataType = 'string' | 'list_of_strings' | string\n\n/**\n * Determines the data type for a groupBy field.\n * Handles special cases for built-in group types (assignees, tags) and attribute-based grouping.\n *\n * @param groupBy - The group by configuration\n * @param attribFields - Array of available attribute fields\n * @returns The data type as a string ('string', 'list_of_strings', or the attribute type)\n *\n * @example\n * const dataType = getGroupByDataType(groupBy, attribFields)\n * // Returns 'list_of_strings' for assignees/tags\n * // Returns the attribute type for 'attrib.attributeName'\n * // Returns 'string' as default fallback\n */\nexport const getGroupByDataType = (\n groupBy: TableGroupBy | undefined,\n attribFields: (ProjectTableAttribute | AttributeModel)[],\n): DataType => {\n if (!groupBy?.id || typeof groupBy.id !== 'string') return 'string'\n\n const groupById = groupBy.id\n\n // Handle special cases for built-in group types\n if (groupById === 'assignees' || groupById === 'tags') {\n return 'list_of_strings'\n }\n\n // Handle attribute-based grouping (format: \"attrib.attributeName\")\n if (groupById.startsWith('attrib.')) {\n const attributeName = groupById.split('.')[1]\n const attribute = attribFields.find((field) => field.name === attributeName)\n return attribute?.data?.type || 'string'\n }\n\n // Default fallback\n return 'string'\n}\n"],"names":["getGroupByDataType","groupBy","attribFields","groupById","attributeName","field"],"mappings":"AAoBO,MAAMA,IAAqB,CAChCC,GACAC,MACa;AACb,MAAI,CAACD,GAAS,MAAM,OAAOA,EAAQ,MAAO,SAAU,QAAO;AAE3D,QAAME,IAAYF,EAAQ;AAG1B,MAAIE,MAAc,eAAeA,MAAc;AAC7C,WAAO;AAIT,MAAIA,EAAU,WAAW,SAAS,GAAG;AACnC,UAAMC,IAAgBD,EAAU,MAAM,GAAG,EAAE,CAAC;AAE5C,WADkBD,EAAa,KAAK,CAACG,MAAUA,EAAM,SAASD,CAAa,GACzD,MAAM,QAAQ;AAAA,EAClC;AAGA,SAAO;AACT;"}
@@ -2577,7 +2577,7 @@ export declare const useGetEntityTooltipQuery: <R extends Record<string, any> =
2577
2577
  first?: number;
2578
2578
  last?: number;
2579
2579
  }, import('@reduxjs/toolkit/query').BaseQueryFn<string | import('@reduxjs/toolkit/query').FetchArgs, unknown, FetchBaseQueryError>, string, ActivitiesResult, "restApi", unknown>>;
2580
- }, "refetch"> & Pick<{
2580
+ }, "refetch" | "fetchNextPage" | "fetchPreviousPage"> & Pick<{
2581
2581
  refetch: (options?: Pick<import('@reduxjs/toolkit/query').SubscriptionOptions & {
2582
2582
  skip?: boolean;
2583
2583
  refetchOnMountOrArgChange?: boolean | number;